kylin-virtual-keyboard/0000775000175000017500000000000015160532634014115 5ustar fengfengkylin-virtual-keyboard/src/0000775000175000017500000000000015160532634014704 5ustar fengfengkylin-virtual-keyboard/src/virtualkeyboardsettings/0000775000175000017500000000000015160532634021674 5ustar fengfengkylin-virtual-keyboard/src/virtualkeyboardsettings/virtualkeyboardsettings.h0000664000175000017500000000421615160532634027040 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 _VIRTUALKEYBOARDSETTINGS_H_ #define _VIRTUALKEYBOARDSETTINGS_H_ #include #include #include #include "log.h" class VirtualKeyboardSettings : public QObject { Q_OBJECT public: static VirtualKeyboardSettings &getInstance(); void updateFloatButtonAvailability(bool value); bool isFloatButtonEnabled() const; bool isAnimationEnabled() const; bool isPreloadViewEnabled() const; float calculateVirtualKeyboardScaleFactor() const; const QString trayIconShow() const; private: VirtualKeyboardSettings(); ~VirtualKeyboardSettings() override = default; Q_DISABLE_COPY(VirtualKeyboardSettings) void init(); void emitFloatButtonAvailabilityChanged(); void emitTrayIconShowChanged(); signals: void requestFloatButtonEnabled(); void requestFloatButtonDisabled(); void scaleFactorChanged(); void animationAvailabilityChanged(); void neverShowTrayIcon(); void alwaysShowTrayIcon(); void showTrayIconWhenKeyboardisConnected(); private: std::unique_ptr gsettings_; const QString gsettingsId_ = "org.ukui.virtualkeyboard"; const QString floatButtonEnabledKey_ = "floatButtonEnabled"; const QString virtualKeyboardScaleFactorKey_ = "virtualKeyboardScaleFactor"; const QString animationEnabledKey_ = "animationEnabled"; const QString trayIconShowKey_ = "trayIconShowPolicy"; const QString preloadViewEnabledKey_ = "preloadViewEnabled"; }; #endif kylin-virtual-keyboard/src/virtualkeyboardsettings/virtualkeyboardsettings.cpp0000664000175000017500000001016115160532634027367 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "virtualkeyboardsettings.h" #include #include VirtualKeyboardSettings::VirtualKeyboardSettings() { init(); } void VirtualKeyboardSettings::init() { if (!QGSettings::isSchemaInstalled(gsettingsId_.toUtf8())) { KVKBD_WARN("WARNING : INCORRECT GSETTINGS ID :{}, IS NOT INSTALLED!", gsettingsId_.toStdString()); return; } gsettings_.reset(new QGSettings(gsettingsId_.toUtf8())); connect(gsettings_.get(), &QGSettings::changed, this, [this](const QString &key) { if (!gsettings_->keys().contains(key)) { return; } if (key == floatButtonEnabledKey_) { emitFloatButtonAvailabilityChanged(); } else if (key == virtualKeyboardScaleFactorKey_) { emit scaleFactorChanged(); } else if (key == trayIconShowKey_) { emitTrayIconShowChanged(); } else if (key == animationEnabledKey_) { emit animationAvailabilityChanged(); } }); } void VirtualKeyboardSettings::emitFloatButtonAvailabilityChanged() { const bool value = gsettings_->get(floatButtonEnabledKey_).toBool(); if (value) { emit requestFloatButtonEnabled(); } else { emit requestFloatButtonDisabled(); } } void VirtualKeyboardSettings::updateFloatButtonAvailability(const bool value) { if (gsettings_ == nullptr) { KVKBD_WARN("WARNING : Gsettings Objetc is NULL !"); return; } gsettings_->set(floatButtonEnabledKey_, QVariant(value)); } bool VirtualKeyboardSettings::isFloatButtonEnabled() const { if (gsettings_ == nullptr) { KVKBD_WARN("WARNING : Gsettings Objetc is NULL !"); return false; } return gsettings_->get(floatButtonEnabledKey_).toBool(); } bool VirtualKeyboardSettings::isAnimationEnabled() const { if (gsettings_ == nullptr) { KVKBD_WARN("WARNING : Gsettings Objetc is NULL !"); return false; } return gsettings_->get(animationEnabledKey_).toBool(); } bool VirtualKeyboardSettings::isPreloadViewEnabled() const { if (gsettings_ == nullptr) { KVKBD_WARN("WARNING : Gsettings Objetc is NULL !"); return false; } return gsettings_->get(preloadViewEnabledKey_).toBool(); } float VirtualKeyboardSettings::calculateVirtualKeyboardScaleFactor() const { return static_cast( gsettings_->get(virtualKeyboardScaleFactorKey_).toInt()) / 100; } const QString VirtualKeyboardSettings::trayIconShow() const { if (gsettings_ == nullptr) { KVKBD_WARN("WARNING : Gsettings Objetc is NULL !"); return "NeverShow"; } return gsettings_->get(trayIconShowKey_).toString(); } void VirtualKeyboardSettings::emitTrayIconShowChanged() { const QString value = gsettings_->get(trayIconShowKey_).toString(); if (value == "NeverShow") { emit neverShowTrayIcon(); } else if (value == "AlwaysShow") { emit alwaysShowTrayIcon(); } else if (value == "ShowWhenKeyboardIsConnected") { emit showTrayIconWhenKeyboardisConnected(); } else { KVKBD_WARN("WARNING : Gsettings Set trayIconShow Error !"); } } VirtualKeyboardSettings &VirtualKeyboardSettings::getInstance() { static VirtualKeyboardSettings virtualKeyboardSettings; return virtualKeyboardSettings; } kylin-virtual-keyboard/src/ipc/0000775000175000017500000000000015160532550015454 5ustar fengfengkylin-virtual-keyboard/src/ipc/fcitxvirtualkeyboardserviceproxy.cpp0000664000175000017500000000305215160532550025110 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "fcitxvirtualkeyboardserviceproxy.h" // static const QString FcitxVirtualKeyboardServiceProxy::serviceName_ = "org.fcitx.Fcitx5"; // static const QString FcitxVirtualKeyboardServiceProxy::servicePath_ = "/virtualkeyboard"; // static const QString FcitxVirtualKeyboardServiceProxy::serviceInterface_ = "org.fcitx.Fcitx.VirtualKeyboard1"; FcitxVirtualKeyboardServiceProxy::FcitxVirtualKeyboardServiceProxy() { virtualKeyboardService.reset( new QDBusInterface(serviceName_, servicePath_, serviceInterface_, QDBusConnection::sessionBus())); } void FcitxVirtualKeyboardServiceProxy::showVirtualKeyboard() const { virtualKeyboardService->call("ShowVirtualKeyboard"); } void FcitxVirtualKeyboardServiceProxy::hideVirtualKeyboard() const { virtualKeyboardService->call("HideVirtualKeyboard"); } kylin-virtual-keyboard/src/ipc/requestmerger.h0000664000175000017500000000414115160532550020517 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 REQUESTMERGER_H #define REQUESTMERGER_H #include #include #include #include class RequestMerger : public QObject { Q_OBJECT public: using ExecuteCallback = std::function; using ShouldActivateCallback = std::function; using ShouldDeactivateCallback = std::function; public: explicit RequestMerger(int period); ~RequestMerger() override; void init(ExecuteCallback activationExecuteCallback, ExecuteCallback deactivationExecuteCallback, ShouldActivateCallback shouldAcitvateCallback, ShouldDeactivateCallback shouldDeactivateCallback); void activate(); void deactivate(); private slots: void execute(); private: class State; class IdleState; class ActivationState; class DeactivationState; private: void enterIdleState(); void enterActivationState(); void enterDeactivationState(); void start(); void stop(); void updateCurrentState(std::shared_ptr newState); private: // 请求合并的最小周期是10ms const int LEAST_PERIOD = 10; int period_ = LEAST_PERIOD; QTimer timer_; std::shared_ptr currentState_ = nullptr; std::shared_ptr idleState_ = nullptr; std::shared_ptr activationState_ = nullptr; std::shared_ptr deactivationState_ = nullptr; }; #endif // REQUESTMERGER_H kylin-virtual-keyboard/src/ipc/keyboardserviceproxy.h0000664000175000017500000000230015160532550022103 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 _KEYBOARDSERVICEPROXY_H_ #define _KEYBOARDSERVICEPROXY_H_ #include #include #include #include #include "log.h" class KeyboardServiceProxy : public QDBusAbstractInterface { Q_OBJECT public: explicit KeyboardServiceProxy(QObject *parent = nullptr); ~KeyboardServiceProxy() override = default; Q_SIGNALS: void kbdStatusChanged(); public Q_SLOTS: QDBusPendingReply GetKbdCount(); }; #endif kylin-virtual-keyboard/src/ipc/requestmerger.cpp0000664000175000017500000001156615160532550021063 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "requestmerger.h" class RequestMerger::State { public: virtual void activate() const = 0; virtual void deactivate() const = 0; void execute() const { requestMerger_.enterIdleState(); if (!executeCallback_) { return; } executeCallback_(); } protected: State(RequestMerger &requestMerger, ExecuteCallback executeCallback) : requestMerger_(requestMerger), executeCallback_(std::move(executeCallback)) {} virtual ~State() = default; protected: RequestMerger &requestMerger_; private: ExecuteCallback executeCallback_; }; class RequestMerger::IdleState : public RequestMerger::State { public: IdleState(RequestMerger &requestMerger, ShouldActivateCallback shouldActivateCallback, ShouldDeactivateCallback shouldDeactivateCallback) : State(requestMerger, ExecuteCallback()), shouldActivateCallback_(std::move(shouldActivateCallback)), shouldDeactivateCallback_(std::move(shouldDeactivateCallback)) {} ~IdleState() override = default; void activate() const override { if (!shouldActivate()) { return; } requestMerger_.enterActivationState(); } void deactivate() const override { if (!shouldDeactivate()) { return; } requestMerger_.enterDeactivationState(); } private: bool shouldActivate() const { return shouldActivateCallback_ && shouldActivateCallback_(); } bool shouldDeactivate() const { return shouldDeactivateCallback_ && shouldDeactivateCallback_(); } private: ShouldActivateCallback shouldActivateCallback_; ShouldDeactivateCallback shouldDeactivateCallback_; }; class RequestMerger::ActivationState : public RequestMerger::State { public: ActivationState(RequestMerger &requestMerger, ExecuteCallback executeCallback) : State(requestMerger, std::move(executeCallback)) {} ~ActivationState() override = default; void activate() const override {} void deactivate() const override { requestMerger_.enterIdleState(); } }; class RequestMerger::DeactivationState : public RequestMerger::State { public: DeactivationState(RequestMerger &requestMerger, ExecuteCallback executeCallback) : State(requestMerger, std::move(executeCallback)) {} ~DeactivationState() override = default; void activate() const override { requestMerger_.enterIdleState(); } void deactivate() const override {} }; RequestMerger::RequestMerger(int period) { period_ = std::max(LEAST_PERIOD, period); timer_.setSingleShot(true); QObject::connect(&timer_, &QTimer::timeout, this, &RequestMerger::execute); } RequestMerger::~RequestMerger() = default; void RequestMerger::init(ExecuteCallback activationExecuteCallback, ExecuteCallback deactivationExecuteCallback, ShouldActivateCallback shouldAcitvateCallback, ShouldDeactivateCallback shouldDeactivateCallback) { idleState_ = std::make_shared(*this, std::move(shouldAcitvateCallback), std::move(shouldDeactivateCallback)); activationState_ = std::make_shared( *this, std::move(activationExecuteCallback)); deactivationState_ = std::make_shared( *this, std::move(deactivationExecuteCallback)); updateCurrentState(idleState_); } void RequestMerger::activate() { currentState_->activate(); } void RequestMerger::deactivate() { currentState_->deactivate(); } void RequestMerger::start() { timer_.start(period_); } void RequestMerger::stop() { timer_.stop(); } void RequestMerger::updateCurrentState(std::shared_ptr newState) { currentState_ = newState; } void RequestMerger::enterIdleState() { updateCurrentState(idleState_); stop(); } void RequestMerger::enterActivationState() { updateCurrentState(activationState_); start(); } void RequestMerger::enterDeactivationState() { updateCurrentState(deactivationState_); start(); } void RequestMerger::execute() { currentState_->execute(); } kylin-virtual-keyboard/src/ipc/fcitxcontrollerserviceproxy.cpp0000664000175000017500000000431415160532550024066 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "fcitxcontrollerserviceproxy.h" const QString g_fcitxControllerServiceName = "org.fcitx.Fcitx5"; const QString g_fcitxControllerServicePath = "/controller"; const char *g_fcitxControllerServiceInterface = "org.fcitx.Fcitx.Controller1"; FcitxControllerServiceProxy::FcitxControllerServiceProxy(QObject *parent) : QDBusAbstractInterface(g_fcitxControllerServiceName, g_fcitxControllerServicePath, g_fcitxControllerServiceInterface, QDBusConnection::sessionBus(), parent) {} QDBusPendingReply FcitxControllerServiceProxy::CurrentInputMethod() { QList argumentList; return asyncCallWithArgumentList(QStringLiteral("CurrentInputMethod"), argumentList); } QDBusPendingReply FcitxControllerServiceProxy::FullInputMethodGroupInfo( const QString &imGroupName) { QList argumentList; argumentList << QVariant::fromValue(imGroupName); return asyncCallWithArgumentList(QStringLiteral("FullInputMethodGroupInfo"), argumentList); } QDBusPendingReply<> FcitxControllerServiceProxy::SetCurrentIM(const QString &imName) { QList argumentList; argumentList << QVariant::fromValue(imName); return asyncCallWithArgumentList(QStringLiteral("SetCurrentIM"), argumentList); } kylin-virtual-keyboard/src/ipc/dbusservice.cpp0000664000175000017500000000633515160532550020505 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "dbusservice.h" #include "virtualkeyboard/virtualkeyboardmanager.h" DBusService::DBusService(VirtualKeyboardManager *virtualKeyboardManager) : virtualKeyboardManager_(virtualKeyboardManager), virtualKeyboardVisibilityRequestMerger_( VIRTUAL_KEYBOARD_VISIBILITY_PEROID) { initRequestMerger(); startService(); } DBusService::~DBusService() { stopService(); } void DBusService::initRequestMerger() { virtualKeyboardVisibilityRequestMerger_.init( [this]() { virtualKeyboardManager_->showVirtualKeyboard(); }, [this]() { virtualKeyboardManager_->hideVirtualKeyboard(); }, [this]() { return !virtualKeyboardManager_->isVirtualKeyboardVisible(); }, [this]() { return virtualKeyboardManager_->isVirtualKeyboardVisible(); }); } bool DBusService::startService() { return QDBusConnection::sessionBus().registerService(serviceName_) && QDBusConnection::sessionBus().registerObject( servicePath_, serviceInterface_, this, QDBusConnection::ExportAllSlots); } bool DBusService::stopService() { QDBusConnection::sessionBus().unregisterObject(servicePath_); return QDBusConnection::sessionBus().unregisterService(serviceName_); } void DBusService::ShowVirtualKeyboard() { virtualKeyboardVisibilityRequestMerger_.activate(); } void DBusService::HideVirtualKeyboard() { virtualKeyboardVisibilityRequestMerger_.deactivate(); } bool DBusService::IsVirtualKeyboardVisible() { return virtualKeyboardManager_->isVirtualKeyboardVisible(); } void DBusService::UpdatePreeditCaret(int preeditCursor) { virtualKeyboardManager_->updatePreeditCaret(preeditCursor); } void DBusService::UpdatePreeditArea(const QString &preeditText) { virtualKeyboardManager_->updatePreeditArea(preeditText); } void DBusService::UpdateCandidateArea(const QStringList &candidateTextList, bool hasPrev, bool hasNext, int pageIndex, int globalCursorIndex /* = -1*/) { virtualKeyboardManager_->updateCandidateArea( candidateTextList, hasPrev, hasNext, pageIndex, globalCursorIndex); } void DBusService::NotifyIMActivated(const QString &uniqueName) { virtualKeyboardManager_->notifyIMActivated(uniqueName); } void DBusService::NotifyIMDeactivated(const QString &uniqueName) { virtualKeyboardManager_->notifyIMDeactivated(uniqueName); } void DBusService::NotifyIMListChanged() { virtualKeyboardManager_->notifyIMListChanged(); } kylin-virtual-keyboard/src/ipc/fcitxcontrollerserviceproxy.h0000664000175000017500000000270115160532550023531 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 FCITXCONTROLLERSERVICEPROXY_H #define FCITXCONTROLLERSERVICEPROXY_H #include #include #include #include "fcitxqtdbustypes.h" class FcitxControllerServiceProxy : public QDBusAbstractInterface { Q_OBJECT public: explicit FcitxControllerServiceProxy(QObject *parent = nullptr); ~FcitxControllerServiceProxy() override = default; public: QDBusPendingReply CurrentInputMethod(); QDBusPendingReply FullInputMethodGroupInfo(const QString &imGroupName); QDBusPendingReply<> SetCurrentIM(const QString &imName); }; #endif // FCITXCONTROLLERSERVICEPROXY_H kylin-virtual-keyboard/src/ipc/fcitxvirtualkeyboardserviceproxy.h0000664000175000017500000000264215160532550024561 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FCITXVIRTUALKEYBOARDSERVICEPROXY_H #define FCITXVIRTUALKEYBOARDSERVICEPROXY_H #include #include #include #include "virtualkeyboardentry/fcitxvirtualkeyboardservice.h" class FcitxVirtualKeyboardServiceProxy : public FcitxVirtualKeyboardService { public: FcitxVirtualKeyboardServiceProxy(); ~FcitxVirtualKeyboardServiceProxy() override = default; void showVirtualKeyboard() const override; void hideVirtualKeyboard() const override; private: std::unique_ptr virtualKeyboardService = nullptr; static const QString serviceName_; static const QString servicePath_; static const QString serviceInterface_; }; #endif // FCITXVIRTUALKEYBOARDSERVICEPROXY_H kylin-virtual-keyboard/src/ipc/fcitxqtdbustypes.cpp0000664000175000017500000000501615160532550021607 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "fcitxqtdbustypes.h" #include #define KVKBD_FCITX5_QT_DEFINE_DBUS_TYPE(TYPE) \ qRegisterMetaType(#TYPE); \ qDBusRegisterMetaType(); \ qRegisterMetaType(#TYPE "List"); \ qDBusRegisterMetaType(); void registerKvkbdFcitxQtDBusTypes() { KVKBD_FCITX5_QT_DEFINE_DBUS_TYPE(FcitxQtFullInputMethodEntry); } QDBusArgument &operator<<(QDBusArgument &argument, const FcitxQtFullInputMethodEntry &arg) { argument.beginStructure(); argument << arg.uniqueName(); argument << arg.name(); argument << arg.nativeName(); argument << arg.icon(); argument << arg.label(); argument << arg.languageCode(); argument << arg.addon(); argument << arg.configurable(); argument << arg.layout(); argument << arg.properties(); argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, FcitxQtFullInputMethodEntry &arg) { QString uniqueName, name, nativeName, icon, label, languageCode, addon, layout; bool configurable; QVariantMap properties; argument.beginStructure(); argument >> uniqueName >> name >> nativeName >> icon >> label >> languageCode >> addon >> configurable >> layout >> properties; argument.endStructure(); arg.setUniqueName(uniqueName); arg.setName(name); arg.setNativeName(nativeName); arg.setIcon(icon); arg.setLabel(label); arg.setLanguageCode(languageCode); arg.setAddon(addon); arg.setConfigurable(configurable); arg.setLayout(layout); arg.setProperties(properties); return argument; } kylin-virtual-keyboard/src/ipc/keyboardserviceproxy.cpp0000664000175000017500000000331215160532550022442 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "keyboardserviceproxy.h" const QString g_serviceName = "org.fcitx.Fcitx5.KeyboardStatus"; const QString g_servicePath = "/"; const char *g_serviceInterface = "org.fcitx.Fcitx5.KeyboardStatus"; const QString g_kbdCountMethodName = "getKeyboardNum"; const QString g_kbdStatusSignalName = "keyboardStatusChanged"; KeyboardServiceProxy::KeyboardServiceProxy(QObject *parent) : QDBusAbstractInterface(g_serviceName, g_servicePath, g_serviceInterface, QDBusConnection::systemBus(), parent) { QDBusConnection::systemBus().connect( g_serviceName, g_servicePath, g_serviceInterface, g_kbdStatusSignalName, this, SIGNAL(kbdStatusChanged())); } QDBusPendingReply KeyboardServiceProxy::GetKbdCount() { QList argumentList; KVKBD_INFO("start get Keyboard count via dbus interface:{}, method:{}", g_serviceInterface, g_kbdCountMethodName.toStdString()); return asyncCallWithArgumentList(g_kbdCountMethodName, argumentList); } kylin-virtual-keyboard/src/ipc/ukuimenuserviceproxy.h0000664000175000017500000000200115160532550022143 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 UKUIMENUSERVICEPROXY_H #define UKUIMENUSERVICEPROXY_H #include class UkuiMenuServiceProxy : public QDBusAbstractInterface { public: explicit UkuiMenuServiceProxy(QObject *parent = nullptr); ~UkuiMenuServiceProxy() override = default; void toggle(); }; #endifkylin-virtual-keyboard/src/ipc/dbusservice.h0000664000175000017500000000432215160532550020144 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 DBUSSERVICE_H #define DBUSSERVICE_H #include #include #include "requestmerger.h" #include "virtualkeyboard/virtualkeyboardmanager.h" class DBusService : public QObject { Q_OBJECT public: explicit DBusService(VirtualKeyboardManager *virtualKeyboardManager); ~DBusService() override; private: void initRequestMerger(); bool startService(); bool stopService(); public slots: void ShowVirtualKeyboard(); void HideVirtualKeyboard(); bool IsVirtualKeyboardVisible(); void UpdatePreeditCaret(int preeditCursor); void UpdatePreeditArea(const QString &preeditText); void UpdateCandidateArea(const QStringList &candidateTextList, bool hasPrev, bool hasNext, int pageIndex, int globalCursorIndex = -1); void NotifyIMActivated(const QString &uniqueName); void NotifyIMDeactivated(const QString &uniqueName); void NotifyIMListChanged(); private: VirtualKeyboardManager *virtualKeyboardManager_ = nullptr; QString serviceName_ = "org.fcitx.Fcitx5.VirtualKeyboard"; QString servicePath_ = "/org/fcitx/virtualkeyboard/impanel"; QString serviceInterface_ = "org.fcitx.Fcitx5.VirtualKeyboard1"; // 在300ms之内的显示和隐藏虚拟键盘的请求将会被合并处理, // 避免虚拟键盘不必要的显示和隐藏及其相应的闪烁效果 const int VIRTUAL_KEYBOARD_VISIBILITY_PEROID = 300; RequestMerger virtualKeyboardVisibilityRequestMerger_; }; #endif // DBUSSERVICE_H kylin-virtual-keyboard/src/ipc/ukuimenuserviceproxy.cpp0000664000175000017500000000247415160532550022514 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "ukuimenuserviceproxy.h" const QString g_ukuiMenuServiceName = "org.ukui.menu"; const QString g_ukuiMenuServicePath = "/org/ukui/menu"; const char *g_ukuiMenuServiceInterface = "org.ukui.menu"; UkuiMenuServiceProxy::UkuiMenuServiceProxy(QObject *parent) : QDBusAbstractInterface(g_ukuiMenuServiceName, g_ukuiMenuServicePath, g_ukuiMenuServiceInterface, QDBusConnection::sessionBus(), parent) {} void UkuiMenuServiceProxy::toggle() { QList argumentList; argumentList << ""; asyncCallWithArgumentList("active", argumentList); }kylin-virtual-keyboard/src/ipc/fcitxqtdbustypes.h0000664000175000017500000001036215160532550021254 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 FCITXQTDBUSTYPES_H #define FCITXQTDBUSTYPES_H #include #include #include #include void registerKvkbdFcitxQtDBusTypes(); #define KVKBD_FCITX5_QT_BEGIN_DECLARE_DBUS_TYPE(TYPE) \ class TYPE { \ Q_GADGET #define KVKBD_FCITX5_QT_DECLARE_PROPERTY(TYPE, GETTER, SETTER) \ Q_PROPERTY(TYPE GETTER READ GETTER WRITE SETTER) #define KVKBD_FCITX5_QT_DECLARE_FIELD(TYPE, GETTER, SETTER) \ public: \ std::conditional_t::value, const TYPE &, TYPE> \ GETTER() const { \ return GETTER##_; \ } \ void SETTER( \ std::conditional_t::value, const TYPE &, TYPE> \ value) { \ GETTER##_ = value; \ } \ \ private: \ TYPE GETTER##_ = TYPE(); #define KVKBD_FCITX5_QT_END_DECLARE_DBUS_TYPE(TYPE) \ } \ ; \ typedef QList TYPE##List; \ QDBusArgument &operator<<(QDBusArgument &argument, const TYPE &value); \ const QDBusArgument &operator>>(const QDBusArgument &argument, TYPE &value); KVKBD_FCITX5_QT_BEGIN_DECLARE_DBUS_TYPE(FcitxQtFullInputMethodEntry); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, uniqueName, setUniqueName); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, name, setName); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, nativeName, setNativeName); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, icon, setIcon); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, label, setLabel); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, languageCode, setLanguageCode); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, addon, setAddon); KVKBD_FCITX5_QT_DECLARE_PROPERTY(bool, configurable, setConfigurable); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QString, layout, setLayout); KVKBD_FCITX5_QT_DECLARE_PROPERTY(QVariantMap, properties, setProperties); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, uniqueName, setUniqueName); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, name, setName); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, nativeName, setNativeName); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, icon, setIcon); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, label, setLabel); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, languageCode, setLanguageCode); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, addon, setAddon); KVKBD_FCITX5_QT_DECLARE_FIELD(bool, configurable, setConfigurable); KVKBD_FCITX5_QT_DECLARE_FIELD(QString, layout, setLayout); KVKBD_FCITX5_QT_DECLARE_FIELD(QVariantMap, properties, setProperties); KVKBD_FCITX5_QT_END_DECLARE_DBUS_TYPE(FcitxQtFullInputMethodEntry); Q_DECLARE_METATYPE(FcitxQtFullInputMethodEntry) Q_DECLARE_METATYPE(FcitxQtFullInputMethodEntryList) #endif // FCITXQTDBUSTYPES_H kylin-virtual-keyboard/src/CMakeLists.txt0000664000175000017500000000674115160532634017454 0ustar fengfenginclude_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_SOURCE_DIR}/third-party) set(HEADERS animation/animationfactory.h animation/animator.h animation/disabledanimator.h animation/enabledanimator.h animation/expansionanimationfactory.h animation/floatanimationfactory.h appinputareamanager.h geometrymanager/expansiongeometrymanager.h geometrymanager/floatgeometrymanager.h geometrymanager/geometrymanager.h ipc/dbusservice.h ipc/fcitxvirtualkeyboardserviceproxy.h ipc/requestmerger.h ipc/keyboardserviceproxy.h ipc/ukuimenuserviceproxy.h ipc/fcitxqtdbustypes.h ipc/fcitxcontrollerserviceproxy.h localsettings/localsettings.h localsettings/viewlocalsettings.h screenmanager.h virtualkeyboard/placementmodemanager.h virtualkeyboard/virtualkeyboardmanager.h virtualkeyboard/virtualkeyboardmodel.h virtualkeyboard/virtualkeyboardstrategy.h virtualkeyboard/virtualkeyboardview.h virtualkeyboardentry/fcitxvirtualkeyboardservice.h virtualkeyboardentry/floatbutton.h virtualkeyboardentry/floatbuttonmanager.h virtualkeyboardentry/floatbuttonstrategy.h virtualkeyboardentry/virtualkeyboardentrymanager.h virtualkeyboardentry/virtualkeyboardtrayicon.h virtualkeyboardentry/trayiconstrategy.h virtualkeyboardsettings/virtualkeyboardsettings.h log.h messagehandler.h commandlinehandler.h errorhandler.h ) set(SOURCES animation/animationfactory.cpp animation/disabledanimator.cpp animation/enabledanimator.cpp animation/expansionanimationfactory.cpp animation/floatanimationfactory.cpp appinputareamanager.cpp geometrymanager/expansiongeometrymanager.cpp geometrymanager/floatgeometrymanager.cpp geometrymanager/geometrymanager.cpp ipc/dbusservice.cpp ipc/fcitxvirtualkeyboardserviceproxy.cpp ipc/requestmerger.cpp ipc/keyboardserviceproxy.cpp ipc/ukuimenuserviceproxy.cpp ipc/fcitxqtdbustypes.cpp ipc/fcitxcontrollerserviceproxy.cpp localsettings/viewlocalsettings.cpp main.cpp screenmanager.cpp virtualkeyboard/placementmodemanager.cpp virtualkeyboard/virtualkeyboardmanager.cpp virtualkeyboard/virtualkeyboardmodel.cpp virtualkeyboard/virtualkeyboardview.cpp virtualkeyboard/virtualkeyboardviewstate.cpp virtualkeyboardentry/floatbutton.cpp virtualkeyboardentry/floatbuttonmanager.cpp virtualkeyboardentry/virtualkeyboardentrymanager.cpp virtualkeyboardentry/virtualkeyboardtrayicon.cpp virtualkeyboardsettings/virtualkeyboardsettings.cpp log.cpp messagehandler.cpp commandlinehandler.cpp errorhandler.cpp ) add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES} ${RESOURCES} ${TRANSLATIONS}) target_link_libraries(${PROJECT_NAME} Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Concurrent Qt${QT_VERSION_MAJOR}::DBus Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::QuickControls2 KF${QT_VERSION_MAJOR}::WindowSystem Fcitx5::Core ${GSettings_QT_LIBRARIES} qtsingleapplication spdlog::spdlog ) if (QT_VERSION_MAJOR EQUAL 6) target_link_libraries(${PROJECT_NAME} Qt${QT_VERSION_MAJOR}::Core5Compat) endif() install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) kylin-virtual-keyboard/src/main.cpp0000664000175000017500000000535515160532634016344 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 #include #include #include #include "commandlinehandler.h" #include "errorhandler.h" #include "ipc/dbusservice.h" #include "ipc/fcitxvirtualkeyboardserviceproxy.h" #include "log.h" #include "messagehandler.h" #include "qtsingleapplication/src/QtSingleApplication" #include "virtualkeyboard/virtualkeyboardmanager.h" #include "virtualkeyboardentry/virtualkeyboardentrymanager.h" const QString APP_ID = "kylin-virtual-keyboard"; const QString APP_VERSION = "4.20.1.0"; int main(int argc, char *argv[]) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QtSingleApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QtSingleApplication app(APP_ID, argc, argv); QtSingleApplication::setApplicationName(APP_ID); QtSingleApplication::setApplicationVersion(APP_VERSION); // 命令行处理器 CommandLineHandler commandHandler; commandHandler.process(app); // 检查是否应该继续执行(单实例和命令行参数检查) if (!commandHandler.shouldContinueExecution(app)) { return 0; } // 异常处理器,堆栈信息记录到:~/.log/kylin-virtual-keyboard-error.log ErrorHandler::init(); SpdlogProxy::getInstance(); KVKBD_INFO("{},---START---", APP_ID.toStdString()); // 消息处理器,绑定接收二次运行时程序发送的消息 MessageHandler messageHandler; commandHandler.bindMessageHandler(app, messageHandler); QTranslator translator; if (translator.load(QLocale::system(), "translation", "_", ":/translations")) { app.installTranslator(&translator); } FcitxVirtualKeyboardServiceProxy virtualKeyboardService; VirtualKeyboardManager virtualKeyboardManager([&virtualKeyboardService]() { virtualKeyboardService.hideVirtualKeyboard(); }); VirtualKeyboardEntryManager entryManager(virtualKeyboardManager, virtualKeyboardService); DBusService dbusService(&virtualKeyboardManager); return app.exec(); } kylin-virtual-keyboard/src/commandlinehandler.h0000664000175000017500000000260415160532550020700 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 COMMANDLINEHANDLER_H #define COMMANDLINEHANDLER_H #include #include #include #include "qtsingleapplication/src/QtSingleApplication" class MessageHandler; class CommandLineHandler : public QCommandLineParser { public: CommandLineHandler(); // 检查是否应该继续执行主程序(处理单例检查和启动命令) bool shouldContinueExecution(QtSingleApplication &app) const; // 绑定消息接收处理 void bindMessageHandler(QtSingleApplication &app, MessageHandler &messageHandler); private: QCommandLineOption m_loglevelOption; }; #endif // COMMANDLINEHANDLER_H kylin-virtual-keyboard/src/appinputareamanager.h0000664000175000017500000000273615160532634021111 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 APPINPUTAREAMANAGER_H #define APPINPUTAREAMANAGER_H #include #include #include #include class AppInputAreaManager : public QObject { Q_OBJECT public: explicit AppInputAreaManager(QObject *parent = nullptr); ~AppInputAreaManager() = default; // TODO(linyuxuan): 使用kdk重新实现该函数 void raiseInputArea(const QRect &virtualKeyboardRect); void fallInputArea(); private: void connectSignal(); private: QRect virtualKeyboardRect_; QWidget dummyWidget_; QTimer oneshotTimer_; // 经过指定时间之后顶起应用程序,避免桌面在虚拟键盘显示之前可见 // 根据使用经验,选定200毫秒作为经验值 static const int SHOW_DELAY_TIME = 200; }; #endif // APPINPUTAREAMANAGER_H kylin-virtual-keyboard/src/errorhandler.h0000664000175000017500000000323315160532550017542 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 ERRORHANDLER_H #define ERRORHANDLER_H #include #ifndef SIGUNUSED #define SIGUNUSED 29 #endif class ErrorHandler { public: ErrorHandler() = delete; ~ErrorHandler() = delete; ErrorHandler(const ErrorHandler &) = delete; ErrorHandler &operator=(const ErrorHandler &) = delete; static void init(); static void setCrashLogPath(const QString &path); private: static void createLogFile(); static void registerSignalHandler(); static void signalHandler(int sig); static void writeString(int fd, const char *str); static void writeBuffer(int fd, const char *buffer, int len); static void writeUInt64(int fd, unsigned long long number); static ssize_t writeAll(int fd, const void *buf, size_t count); static const char *getSignalName(int sig); static void generateBacktrace(int fd); private: static QString m_crashLogPath; static bool m_logDirWritable; }; #endif // ERRORHANDLER_H kylin-virtual-keyboard/src/appinputareamanager.cpp0000664000175000017500000000571215160532634021441 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "appinputareamanager.h" #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include #include #include #else #include #endif AppInputAreaManager::AppInputAreaManager(QObject *parent) : QObject(parent), dummyWidget_(nullptr), oneshotTimer_(nullptr) { #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) KX11Extras::setType(dummyWidget_.winId(), NET::Dock); #else KWindowSystem::setType(dummyWidget_.winId(), NET::Dock); #endif dummyWidget_.setWindowFlags(Qt::FramelessWindowHint); dummyWidget_.setAttribute(Qt::WA_TranslucentBackground); oneshotTimer_.setSingleShot(true); connectSignal(); } void AppInputAreaManager::connectSignal() { QObject::connect(&oneshotTimer_, &QTimer::timeout, this, [this]() { dummyWidget_.setGeometry(virtualKeyboardRect_); dummyWidget_.show(); // 使用KWin接口调整工作区域,仅在X11下有效 // 该接口对全屏应用无效 // 该接口需在winId对象显示前后调用,否则可能不生效 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) KX11Extras::setExtendedStrut(dummyWidget_.winId(), 0, 0, 0, 0, 0, 0, 0, 0, 0, virtualKeyboardRect_.height(), virtualKeyboardRect_.x(), virtualKeyboardRect_.width() - 1); #else KWindowSystem::setExtendedStrut(dummyWidget_.winId(), 0, 0, 0, 0, 0, 0, 0, 0, 0, virtualKeyboardRect_.height(), virtualKeyboardRect_.x(), virtualKeyboardRect_.width() - 1); #endif }); } void AppInputAreaManager::raiseInputArea(const QRect &virtualKeyboardRect) { virtualKeyboardRect_ = virtualKeyboardRect; oneshotTimer_.start(SHOW_DELAY_TIME); } void AppInputAreaManager::fallInputArea() { #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) KX11Extras::setExtendedStrut(dummyWidget_.winId(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); #else KWindowSystem::setExtendedStrut(dummyWidget_.winId(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); #endif dummyWidget_.hide(); oneshotTimer_.stop(); } kylin-virtual-keyboard/src/commandlinehandler.cpp0000664000175000017500000000404215160532550021231 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "commandlinehandler.h" #include #include "log.h" #include "messagehandler.h" CommandLineHandler::CommandLineHandler() : m_loglevelOption(QStringList() << "loglevel", "Set the log level \n" "(available: debug, info, warn, error).\n" "e.g. --loglevel=debug", "loglevel") { addHelpOption(); addVersionOption(); addOption(m_loglevelOption); } bool CommandLineHandler::shouldContinueExecution( QtSingleApplication &app) const { // 单实例判断 if (!app.isRunning()) { return true; } if (isSet(m_loglevelOption)) { QString level = value(m_loglevelOption); QString command = QString("loglevel %1").arg(level); app.sendMessage(command); } std::cout << "kylin-virtual-keyboard is already running!" << std::endl; return false; } void CommandLineHandler::bindMessageHandler(QtSingleApplication &app, MessageHandler &messageHandler) { QObject::connect( &app, &QtSingleApplication::messageReceived, [&](const QString &message) { messageHandler.processMessage(message, [&](const QString &result) { KVKBD_INFO("Command result: {}", result.toStdString()); }); }); } kylin-virtual-keyboard/src/messagehandler.h0000664000175000017500000000272115160532550020036 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 MESSAGEHANDLER_H #define MESSAGEHANDLER_H #include #include #include #include #include #include "log.h" class MessageHandler : public QObject { public: using ResultCallback = std::function; explicit MessageHandler(QObject *parent = nullptr); void registerCommand(const QString &command, std::function handler); void processMessage(const QString &rawMessage, ResultCallback callback = nullptr); private: QString handleLogLevel(const QStringList &args) const; private: QMap> commandHandlers; }; #endif // MESSAGEHANDLER_H kylin-virtual-keyboard/src/log.h0000664000175000017500000001117315160532550015636 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 LOG_H #define LOG_H #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG #include #include #include #include #include #include #include #define KVKBD_TRACE(...) \ do { \ if (!SpdlogProxy::isCleaned() && \ spdlog::default_logger_raw() != nullptr) { \ SPDLOG_LOGGER_TRACE(spdlog::default_logger_raw(), __VA_ARGS__); \ } \ } while (0) #define KVKBD_DEBUG(...) \ do { \ if (!SpdlogProxy::isCleaned() && \ spdlog::default_logger_raw() != nullptr) { \ SPDLOG_LOGGER_DEBUG(spdlog::default_logger_raw(), __VA_ARGS__); \ } \ } while (0) #define KVKBD_INFO(...) \ do { \ if (!SpdlogProxy::isCleaned() && \ spdlog::default_logger_raw() != nullptr) { \ SPDLOG_LOGGER_INFO(spdlog::default_logger_raw(), __VA_ARGS__); \ } \ } while (0) #define KVKBD_WARN(...) \ do { \ if (!SpdlogProxy::isCleaned() && \ spdlog::default_logger_raw() != nullptr) { \ SPDLOG_LOGGER_WARN(spdlog::default_logger_raw(), __VA_ARGS__); \ } \ } while (0) #define KVKBD_ERROR(...) \ do { \ if (!SpdlogProxy::isCleaned() && \ spdlog::default_logger_raw() != nullptr) { \ SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__); \ } \ } while (0) class SpdlogProxy { public: static SpdlogProxy &getInstance() { static SpdlogProxy instance; return instance; } SpdlogProxy(const SpdlogProxy &) = delete; SpdlogProxy &operator=(const SpdlogProxy &) = delete; class LogOption { public: long long fileSize = 1024 * 1024 * 10; int fileCounts = 1; bool rotateEnable = false; }; static bool isCleaned(); static void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); Q_INVOKABLE static void debug(const QString &msg); Q_INVOKABLE static void info(const QString &msg); Q_INVOKABLE static void warn(const QString &msg); Q_INVOKABLE static void error(const QString &msg); private: SpdlogProxy() { init(SpdlogProxy::LogOption()); } ~SpdlogProxy() { cleanUp(); } static void init(const LogOption &option); static void cleanUp(); static QString getGsettingsLogLevel(); static spdlog::level::level_enum transToSpdLogLevel(const QString &level); static QString getWritableLogFilePath(); private: static std::shared_ptr m_logger; static std::atomic m_cleaned; }; #endif // SPDLOGPROXY_H kylin-virtual-keyboard/src/localsettings/0000775000175000017500000000000015160532550017554 5ustar fengfengkylin-virtual-keyboard/src/localsettings/localsettings.h0000664000175000017500000000223415160532550022601 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 LOCALSETTINGS_H #define LOCALSETTINGS_H #include class LocalSettings { public: virtual ~LocalSettings() = default; virtual QVariant getValue(const QString &group, const QString &key, const QVariant &defaultValue = QVariant()) = 0; virtual void setValue(const QString &group, const QString &key, const QVariant &value) = 0; protected: LocalSettings() = default; }; #endif // LOCALSETTINGS_H kylin-virtual-keyboard/src/localsettings/viewlocalsettings.h0000664000175000017500000000331215160532550023472 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIEWLOCALSETTINGS_H #define VIEWLOCALSETTINGS_H #include #include #include "localsettings.h" #include "log.h" class ViewLocalSettings : public LocalSettings { public: using SettingMap = QMap; using GroupSettingMap = QMap; public: ViewLocalSettings(const QString &organization, const QString &application); ~ViewLocalSettings() override; QVariant getValue(const QString &group, const QString &key); QVariant getValue(const QString &group, const QString &key, const QVariant &defaultValue) override; void setValue(const QString &group, const QString &key, const QVariant &value) override; void remove(const QString &key); bool contains(const QString &key) const; private: void saveSettingsAsync(); private: const QString organization_; const QString application_; GroupSettingMap groupSettingMap_; QFutureWatcher futureWatcher_; }; #endif // VIEWLOCALSETTINGS_H kylin-virtual-keyboard/src/localsettings/viewlocalsettings.cpp0000664000175000017500000000742215160532550024033 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "viewlocalsettings.h" #include #include namespace { void updateSettings(QSettings &settings, const ViewLocalSettings::SettingMap &settingMap) { for (auto settingIter = settingMap.constBegin(); settingIter != settingMap.constEnd(); settingIter++) { settings.setValue(settingIter.key(), settingIter.value()); } } void saveSettings(const QString &organization, const QString &application, const ViewLocalSettings::GroupSettingMap &groupSettingMap) { QSettings settings(organization, application); for (auto groupIter = groupSettingMap.constBegin(); groupIter != groupSettingMap.constEnd(); groupIter++) { settings.beginGroup(groupIter.key()); updateSettings(settings, groupIter.value()); settings.endGroup(); } settings.sync(); } } // namespace ViewLocalSettings::ViewLocalSettings(const QString &organization, const QString &application) : organization_(organization), application_(application) { QObject::connect(&futureWatcher_, &QFutureWatcher::finished, [this]() { if (groupSettingMap_.isEmpty()) { return; } saveSettingsAsync(); }); KVKBD_DEBUG("organization_:{},application_:{}", organization_.toStdString(), application_.toStdString()); } ViewLocalSettings::~ViewLocalSettings() = default; QVariant ViewLocalSettings::getValue(const QString &group, const QString &key) { QSettings settings(organization_, application_); settings.beginGroup(group); auto value = settings.value(key); settings.endGroup(); return value; } QVariant ViewLocalSettings::getValue(const QString &group, const QString &key, const QVariant &defaultValue /*= QVariant()*/) { QSettings settings(organization_, application_); settings.beginGroup(group); auto value = settings.value(key, defaultValue); settings.endGroup(); return value; } void ViewLocalSettings::setValue(const QString &group, const QString &key, const QVariant &value) { auto &settingMap = groupSettingMap_[group]; settingMap.insert(key, value); if (futureWatcher_.isFinished()) { saveSettingsAsync(); } } void ViewLocalSettings::saveSettingsAsync() { auto oneshotGroupSettingMap(std::move(groupSettingMap_)); auto organization = organization_; auto application = application_; futureWatcher_.setFuture( QtConcurrent::run([oneshotGroupSettingMap, organization, application]() { saveSettings(organization, application, oneshotGroupSettingMap); })); } void ViewLocalSettings::remove(const QString &key) { QSettings settings(organization_, application_); settings.remove(key); } bool ViewLocalSettings::contains(const QString &key) const { QSettings settings(organization_, application_); return settings.contains(key); } kylin-virtual-keyboard/src/virtualkeyboardentry/0000775000175000017500000000000015160532634021175 5ustar fengfengkylin-virtual-keyboard/src/virtualkeyboardentry/floatbutton.cpp0000664000175000017500000001047615160532634024252 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardentry/floatbutton.h" #include #include #include FloatButton::FloatButton(MouseClickedCallback mouseClickedCallback) : mouseClickedCallback_(std::move(mouseClickedCallback)) { // 主题框架默认禁用了move消息,因此,QPushButton需要禁用主题框架 setProperty("useStyleWindowManager", QVariant(false)); initStyle(); } void FloatButton::move(int x, int y) { QPushButton::move(x, y); } void FloatButton::resize(int width, int height) { setFixedSize(width, height); setIconSize(size()); QPushButton::resize(width, height); } void FloatButton::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { startX_ = event->pos().x(); startY_ = event->pos().y(); startClickTimer(); } QPushButton::mousePressEvent(event); } bool FloatButton::shouldPerformMouseClick() const { return !isFloatButtonMoved() && clickTimer_->isActive(); } void FloatButton::processMouseReleaseEvent() { emit mouseReleased(); manhattonLength = 0; startX_ = -1; startY_ = -1; } void FloatButton::processMouseClickEvent() { if (!mouseClickedCallback_) { return; } mouseClickedCallback_(); } void FloatButton::mouseReleaseEvent(QMouseEvent *event) { QPushButton::mouseReleaseEvent(event); if (event->button() != Qt::LeftButton) { return; } bool couldPerformMouseClick = shouldPerformMouseClick(); stopClickTimer(); if (couldPerformMouseClick) { processMouseClickEvent(); return; } if (isFloatButtonMoved()) { processMouseReleaseEvent(); } } void FloatButton::updateManhattonLength(QMouseEvent *event) { int offsetX = event->pos().x() - startX_; int offsetY = event->pos().y() - startY_; manhattonLength += std::abs(offsetX) + std::abs(offsetY); } bool FloatButton::isFloatButtonMoved() const { return manhattonLength > manhattonLengthThreshold; } void FloatButton::processMouseMoveEvent(QMouseEvent *event) { if (!isFloatButtonMoved()) { updateManhattonLength(event); } else { emit mouseMoved(event->pos().x() - startX_, event->pos().y() - startY_); } } void FloatButton::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton) { processMouseMoveEvent(event); } QPushButton::mouseMoveEvent(event); } void FloatButton::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(QBrush(Qt::white)); painter.setPen(Qt::transparent); QRect rect = this->rect(); rect.setWidth(rect.width()); rect.setHeight(rect.height()); painter.drawEllipse(rect); QPushButton::paintEvent(event); } void FloatButton::initStyle() { setWindowTitle("kylin-virtual-keyboard-float-button"); setAttribute(Qt::WA_TranslucentBackground); setStyleSheet("QPushButton{border-image: " "url(:/floatbutton/img/floatbuttondefault.svg);}" "QPushButton:hover{border-image: " "url(:/floatbutton/img/floatbuttonhovered.svg);}" "QPushButton:pressed{border-image: " "url(:/floatbutton/img/floatbuttonpressed.svg);}"); setAttribute(Qt::WA_AlwaysShowToolTips, true); setToolTip(tr("Click to show virtual keyboard")); } void FloatButton::startClickTimer() { clickTimer_.reset(new QTimer()); clickTimer_->setSingleShot(true); clickTimer_->start(clickTimeThreshold_); } void FloatButton::stopClickTimer() { if (clickTimer_ == nullptr) { clickTimer_.reset(); } } kylin-virtual-keyboard/src/virtualkeyboardentry/virtualkeyboardtrayicon.h0000664000175000017500000000367115160532550026332 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDTRAYICON_H #define VIRTUALKEYBOARDTRAYICON_H #include #include #include #include #include "virtualkeyboard/virtualkeyboardmanager.h" #include "virtualkeyboardentry/fcitxvirtualkeyboardservice.h" /** * Used to manage the entrance section of the Kylin Virtual Keyboard tray icon. * 1. click to show/hide kylin virtual keyboard. * 2. register tray icon. */ class VirtualKeyboardTrayIcon : public QObject { Q_OBJECT public: VirtualKeyboardTrayIcon( VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService); ~VirtualKeyboardTrayIcon() override = default; void setContextMenu(QMenu *contextMenu); void hideContextMenu(); void initTrayIcon(); void destroyTrayIcon(); bool isInit() const; void changeTrayIconVisibility(bool enable = false); private: void toggleVirtualKeyboard(); private slots: void onTrayIconActivated(QSystemTrayIcon::ActivationReason reason); private: std::unique_ptr trayIcon_ = nullptr; VirtualKeyboardManager &virtualKeyboardManager_; const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService_; }; #endif // VIRTUALKEYBOARDTRAYICON_H kylin-virtual-keyboard/src/virtualkeyboardentry/virtualkeyboardentrymanager.h0000664000175000017500000000625315160532634027200 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDENTRYMANAGER_H #define VIRTUALKEYBOARDENTRYMANAGER_H #include #include #include #include #include "ipc/fcitxvirtualkeyboardserviceproxy.h" #include "ipc/keyboardserviceproxy.h" #include "localsettings/viewlocalsettings.h" #include "trayiconstrategy.h" #include "virtualkeyboard/virtualkeyboardmanager.h" #include "virtualkeyboardentry/floatbuttonmanager.h" #include "virtualkeyboardentry/virtualkeyboardtrayicon.h" /** * Used to manage the entrance section of the Kylin Virtual Keyboard. * 1. the entry of tray icon. * 2. the entry of float button. */ class VirtualKeyboardEntryManager : public QObject { Q_OBJECT public: VirtualKeyboardEntryManager( VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService); ~VirtualKeyboardEntryManager() override; private: using ActionTriggeredCallback = std::function; private: void connectSignals(); void moveValueFromLocalSettings(); void initFloatButtonContextMenuAndAction(); void updateFloatButtonContextMenuAction(const QString &icon, const QString &text, ActionTriggeredCallback callback); void initTrayIconStrategy(); void toggleVirtualKeyboard(); void updateStrategy(std::shared_ptr newStrategy); void updateTrayExistence(); void updateTrayVisibility(); int getKeyboardCount(const bool &sync); private: VirtualKeyboardManager &virtualKeyboardManager_; ViewLocalSettings floatButtonSettings_{"kylinsoft", "kylin float button"}; std::unique_ptr floatButtonManager_ = nullptr; std::unique_ptr trayIconEntry_ = nullptr; std::unique_ptr floatButtonContextMenu_ = nullptr; std::unique_ptr floatButtonContextMenuAction_ = nullptr; ActionTriggeredCallback actionTriggeredCallback_; // 三种策略实现托盘图标可用性和可见性 std::shared_ptr alwaysShowStrategy_ = nullptr; std::shared_ptr neverShowStrategy_ = nullptr; std::shared_ptr keyboardStatusStrategy_ = nullptr; // 当前策略 std::shared_ptr currenTrayIconStrategy_ = nullptr; // 键盘服务代理 std::unique_ptr keyboardServiceProxy_ = nullptr; }; #endif // VIRTUALKEYBOARDENTRYMANAGER_H kylin-virtual-keyboard/src/virtualkeyboardentry/virtualkeyboardtrayicon.cpp0000664000175000017500000000537215160532634026670 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardentry/virtualkeyboardtrayicon.h" #include VirtualKeyboardTrayIcon::VirtualKeyboardTrayIcon( VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService) : virtualKeyboardManager_(virtualKeyboardManager), fcitxVirtualKeyboardService_(fcitxVirtualKeyboardService) {} void VirtualKeyboardTrayIcon::setContextMenu(QMenu *contextMenu) { if (trayIcon_ == nullptr) { KVKBD_WARN("trayIcon_ is null!"); return; } trayIcon_->setContextMenu(contextMenu); } void VirtualKeyboardTrayIcon::hideContextMenu() { if (trayIcon_ == nullptr) { KVKBD_WARN("trayIcon_ is null!"); return; } trayIcon_->contextMenu()->hide(); } void VirtualKeyboardTrayIcon::toggleVirtualKeyboard() { if (virtualKeyboardManager_.isVirtualKeyboardVisible()) { fcitxVirtualKeyboardService_.hideVirtualKeyboard(); } else { fcitxVirtualKeyboardService_.showVirtualKeyboard(); } } void VirtualKeyboardTrayIcon::onTrayIconActivated( QSystemTrayIcon::ActivationReason reason) { switch (reason) { case QSystemTrayIcon::Trigger: { toggleVirtualKeyboard(); break; }; default: break; } } void VirtualKeyboardTrayIcon::initTrayIcon() { trayIcon_.reset(new QSystemTrayIcon(this)); trayIcon_->setIcon(QIcon::fromTheme("ukui-virtual-keyboard-symbolic")); trayIcon_->setToolTip(tr("kylin-virtual-keyboard")); connect(trayIcon_.get(), SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onTrayIconActivated(QSystemTrayIcon::ActivationReason))); trayIcon_->setVisible(true); } void VirtualKeyboardTrayIcon::destroyTrayIcon() { if (trayIcon_ == nullptr) { return; } trayIcon_.reset(); } bool VirtualKeyboardTrayIcon::isInit() const { return trayIcon_ != nullptr; } void VirtualKeyboardTrayIcon::changeTrayIconVisibility(bool enable) { if (trayIcon_ == nullptr) { return; } trayIcon_->setVisible(enable); } kylin-virtual-keyboard/src/virtualkeyboardentry/floatbuttonstrategy.h0000664000175000017500000000361215160532634025474 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FLOATBUTTONSTRATEGY_H #define FLOATBUTTONSTRATEGY_H #include "geometrymanager/floatgeometrymanager.h" #include "screenmanager.h" class FloatButtonStrategy : public FloatGeometryManager::Strategy { public: FloatButtonStrategy() = default; ~FloatButtonStrategy() override = default; int getDefaultRightMargin() const override { return getUnitWidth() * defaultRightMarginRatio_; } int getDefaultBottomMargin() const override { return getUnitHeight() * defaultBottomMarginRatio_; } private: int getUnitWidth() const override { const auto viewPortSize = ScreenManager::getPrimaryScreenSize(); return std::max(viewPortSize.width(), viewPortSize.height()); } int getUnitHeight() const override { const auto viewPortSize = ScreenManager::getPrimaryScreenSize(); return std::max(viewPortSize.width(), viewPortSize.height()); } float getViewWidthRatio() const override { return 56.0 / 1620.0; } float getViewHeightRatio() const override { return 56.0 / 1620.0; } private: static constexpr float defaultBottomMarginRatio_ = 0.03f; static constexpr float defaultRightMarginRatio_ = 0.02f; }; #endif // FLOATBUTTONSTRATEGY_H kylin-virtual-keyboard/src/virtualkeyboardentry/floatbuttonmanager.h0000664000175000017500000000471415160532634025250 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FLOATBUTTONMANAGER_H #define FLOATBUTTONMANAGER_H #include #include #include #include #include "localsettings/localsettings.h" #include "virtualkeyboard/virtualkeyboardmanager.h" #include "virtualkeyboardentry/fcitxvirtualkeyboardservice.h" #include "virtualkeyboardentry/floatbutton.h" /** * Used to manage the entrance section of the Kylin Virtual Keyboard float * button. * * 1. click to show/hide kylin virtual keyboard. * 2. show float button. */ class FloatButtonManager : public QObject { Q_OBJECT public: FloatButtonManager( const VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService, LocalSettings &floatButtonSettings); ~FloatButtonManager() override = default; void updateFloatButtonEnabled(bool enabled); void enableFloatButton(); void disableFloatButton(); signals: void floatButtonEnabled(); void floatButtonDisabled(); private slots: void initFloatButton(); void destroyFloatButton(); void onScreenResolutionChanged(); private: void initGeometryManager(); void initInternalSignalConnections(); void initScreenSignalConnections(); void createFloatButton(); void connectFloatButtonSignals(); void showFloatButton(); void hideFloatButton(); void setFloatButtonEnabled(bool enabled); private: bool floatButtonEnabled_ = false; const VirtualKeyboardManager &virtualKeyboardManager_; const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService_; LocalSettings &floatButtonSettings_; std::unique_ptr floatButton_ = nullptr; std::unique_ptr geometryManager_ = nullptr; }; #endif // FLOATBUTTONMANAGER_H kylin-virtual-keyboard/src/virtualkeyboardentry/floatbuttonmanager.cpp0000664000175000017500000001144415160532634025601 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardentry/floatbuttonmanager.h" #include #include #include #include #include #include #include "geometrymanager/floatgeometrymanager.h" #include "geometrymanager/geometrymanager.h" #include "virtualkeyboardentry/floatbuttonstrategy.h" FloatButtonManager::FloatButtonManager( const VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService, LocalSettings &floatButtonSettings) : virtualKeyboardManager_(virtualKeyboardManager), fcitxVirtualKeyboardService_(fcitxVirtualKeyboardService), floatButtonSettings_(floatButtonSettings) { initGeometryManager(); initInternalSignalConnections(); initScreenSignalConnections(); } void FloatButtonManager::enableFloatButton() { setFloatButtonEnabled(true); } void FloatButtonManager::disableFloatButton() { setFloatButtonEnabled(false); } void FloatButtonManager::initGeometryManager() { geometryManager_.reset(new FloatGeometryManager( std::unique_ptr( new FloatButtonStrategy()), floatButtonSettings_)); } void FloatButtonManager::initScreenSignalConnections() { connect(QGuiApplication::primaryScreen(), &QScreen::geometryChanged, this, &FloatButtonManager::onScreenResolutionChanged); } void FloatButtonManager::initInternalSignalConnections() { connect(this, &FloatButtonManager::floatButtonEnabled, this, &FloatButtonManager::initFloatButton); connect(this, &FloatButtonManager::floatButtonDisabled, this, &FloatButtonManager::destroyFloatButton); } void FloatButtonManager::initFloatButton() { fcitxVirtualKeyboardService_.hideVirtualKeyboard(); createFloatButton(); connectFloatButtonSignals(); geometryManager_->updateGeometry(); } void FloatButtonManager::destroyFloatButton() { if (floatButton_ == nullptr) { return; } // 销毁之前必须隐藏,否则会导致虚拟键盘进程 // 直接退出 floatButton_->hide(); floatButton_.reset(); } void FloatButtonManager::onScreenResolutionChanged() { if (!floatButtonEnabled_) { return; } geometryManager_->updateGeometry(); } void FloatButtonManager::showFloatButton() { if (!floatButtonEnabled_) { return; } floatButton_->show(); } void FloatButtonManager::hideFloatButton() { if (!floatButtonEnabled_) { return; } floatButton_->hide(); } void FloatButtonManager::createFloatButton() { floatButton_.reset(new FloatButton( [this]() { fcitxVirtualKeyboardService_.showVirtualKeyboard(); })); floatButton_->setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint | Qt::Tool); floatButton_->show(); } void FloatButtonManager::connectFloatButtonSignals() { connect(floatButton_.get(), &FloatButton::mouseMoved, geometryManager_.get(), &FloatGeometryManager::moveBy); connect(floatButton_.get(), &FloatButton::mouseReleased, geometryManager_.get(), &FloatGeometryManager::endDrag); connect(geometryManager_.get(), &FloatGeometryManager::viewMoved, floatButton_.get(), &FloatButton::move); connect(geometryManager_.get(), &FloatGeometryManager::viewResized, floatButton_.get(), &FloatButton::resize); connect(&virtualKeyboardManager_, &VirtualKeyboardManager::virtualKeyboardVisibiltyChanged, floatButton_.get(), [this](bool visible) { if (visible) { hideFloatButton(); } else { showFloatButton(); } }); } void FloatButtonManager::updateFloatButtonEnabled(bool enabled) { floatButtonEnabled_ = enabled; if (floatButtonEnabled_) { emit floatButtonEnabled(); } else { emit floatButtonDisabled(); } } void FloatButtonManager::setFloatButtonEnabled(bool enabled) { if (floatButtonEnabled_ == enabled) { return; } updateFloatButtonEnabled(enabled); } kylin-virtual-keyboard/src/virtualkeyboardentry/fcitxvirtualkeyboardservice.h0000664000175000017500000000204715160532550027174 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FCITXVIRTUALKEYBOARDSERVICE_H #define FCITXVIRTUALKEYBOARDSERVICE_H class FcitxVirtualKeyboardService { public: virtual ~FcitxVirtualKeyboardService() {} virtual void showVirtualKeyboard() const = 0; virtual void hideVirtualKeyboard() const = 0; protected: FcitxVirtualKeyboardService() = default; }; #endif // FCITXVIRTUALKEYBOARDSERVICE_H kylin-virtual-keyboard/src/virtualkeyboardentry/floatbutton.h0000664000175000017500000000435115160532634023712 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FLOATBUTTON_H #define FLOATBUTTON_H #include #include #include #include #include #include #include /** * Used to manage the entrance section of the Kylin Virtual Keyboard float * button. * * 1. show float button. */ class FloatButton : public QPushButton { Q_OBJECT public: using MouseClickedCallback = std::function; public: explicit FloatButton(MouseClickedCallback mouseClickedCallback); ~FloatButton() override = default; signals: void mouseMoved(int x, int y); void mouseReleased(); public slots: void move(int x, int y); void resize(int width, int height); protected: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *event) override; private: bool shouldPerformMouseClick() const; void processMouseReleaseEvent(); void processMouseClickEvent(); void processMouseMoveEvent(QMouseEvent *event); void updateManhattonLength(QMouseEvent *event); bool isFloatButtonMoved() const; void initStyle(); void startClickTimer(); void stopClickTimer(); private: int startX_ = -1; int startY_ = -1; int manhattonLength = 0; constexpr static int manhattonLengthThreshold = 10; MouseClickedCallback mouseClickedCallback_; std::unique_ptr clickTimer_ = nullptr; const int clickTimeThreshold_ = 600; }; #endif // FLOATBUTTON_H kylin-virtual-keyboard/src/virtualkeyboardentry/trayiconstrategy.h0000664000175000017500000000412715160532550024762 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 _TRAYICONSTRATEGY_H_ #define _TRAYICONSTRATEGY_H_ class TrayIconStrategy { public: virtual ~TrayIconStrategy() = default; // 控制托盘图标的可用性(是否创建) virtual bool shouldCreateTray() const = 0; // 控制托盘图标的可见性(是否显示) virtual bool shouldShowTray(int keyboardCount) const = 0; // 是否需要监听键盘状态 virtual bool needsKeyboardMonitor() const = 0; }; // 具体策略:始终显示 class AlwaysShowStrategy : public TrayIconStrategy { public: bool shouldCreateTray() const override { return true; } bool shouldShowTray(int /*keyboardCount*/) const override { return true; } bool needsKeyboardMonitor() const override { return false; } }; // 具体策略:始终不显示(不创建) class NeverShowStrategy : public TrayIconStrategy { public: bool shouldCreateTray() const override { return false; } bool shouldShowTray(int /*keyboardCount*/) const override { return false; } bool needsKeyboardMonitor() const override { return false; } }; // 具体策略:根据键盘状态来显示 class KeyboardStatusStrategy : public TrayIconStrategy { public: bool shouldCreateTray() const override { return true; } bool shouldShowTray(int keyboardCount) const override { return keyboardCount == 0; } bool needsKeyboardMonitor() const override { return true; } }; #endifkylin-virtual-keyboard/src/virtualkeyboardentry/virtualkeyboardentrymanager.cpp0000664000175000017500000002206215160532634027527 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardentry/virtualkeyboardentrymanager.h" #include #include #include "geometrymanager/geometrymanager.h" #include "virtualkeyboardentry/floatbuttonstrategy.h" #include "virtualkeyboardsettings/virtualkeyboardsettings.h" static const QString floatButtonGroup = "floatButton"; static const QString floatButtonEnabledKey = "floatButtonEnabled"; VirtualKeyboardEntryManager::VirtualKeyboardEntryManager( VirtualKeyboardManager &virtualKeyboardManager, const FcitxVirtualKeyboardService &fcitxVirtualKeyboardService) : virtualKeyboardManager_(virtualKeyboardManager), floatButtonManager_(new FloatButtonManager(virtualKeyboardManager, fcitxVirtualKeyboardService, floatButtonSettings_)), trayIconEntry_(new VirtualKeyboardTrayIcon(virtualKeyboardManager_, fcitxVirtualKeyboardService)), keyboardServiceProxy_(new KeyboardServiceProxy()) { initTrayIconStrategy(); moveValueFromLocalSettings(); initFloatButtonContextMenuAndAction(); connectSignals(); floatButtonManager_->updateFloatButtonEnabled( VirtualKeyboardSettings::getInstance().isFloatButtonEnabled()); } VirtualKeyboardEntryManager::~VirtualKeyboardEntryManager() = default; void VirtualKeyboardEntryManager::initTrayIconStrategy() { alwaysShowStrategy_ = std::make_shared(); neverShowStrategy_ = std::make_shared(); keyboardStatusStrategy_ = std::make_shared(); auto showPolicy = VirtualKeyboardSettings::getInstance().trayIconShow(); KVKBD_INFO("trayIcon showPolicy:{}", showPolicy.toStdString()); if (showPolicy == "NeverShow") { updateStrategy(neverShowStrategy_); } else if (showPolicy == "AlwaysShow") { updateStrategy(alwaysShowStrategy_); } else if (showPolicy == "ShowWhenKeyboardIsConnected") { updateStrategy(keyboardStatusStrategy_); } } void VirtualKeyboardEntryManager::initFloatButtonContextMenuAndAction() { floatButtonContextMenu_.reset(new QMenu()); floatButtonContextMenuAction_.reset(new QAction()); floatButtonContextMenu_->addAction(floatButtonContextMenuAction_.get()); trayIconEntry_->setContextMenu(floatButtonContextMenu_.get()); connect(floatButtonContextMenu_.get(), &QMenu::aboutToShow, this, [this]() { virtualKeyboardManager_.hide(); }); connect(floatButtonContextMenuAction_.get(), &QAction::triggered, this, [this](bool) { if (!actionTriggeredCallback_) { return; } actionTriggeredCallback_(); }); } void VirtualKeyboardEntryManager::connectSignals() { connect(floatButtonManager_.get(), &FloatButtonManager::floatButtonEnabled, this, [this]() { updateFloatButtonContextMenuAction( ":/floatbutton/img/disablefloatbutton.svg", tr("Disable the float button"), []() { VirtualKeyboardSettings::getInstance() .updateFloatButtonAvailability(false); }); }); connect(floatButtonManager_.get(), &FloatButtonManager::floatButtonDisabled, this, [this]() { updateFloatButtonContextMenuAction( ":/floatbutton/img/enablefloatbutton.svg", tr("Enable the float button"), []() { VirtualKeyboardSettings::getInstance() .updateFloatButtonAvailability(true); }); }); connect(&virtualKeyboardManager_, &VirtualKeyboardManager::virtualKeyboardVisibiltyChanged, this, [this](bool visible) { if (!visible) { return; } trayIconEntry_->hideContextMenu(); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::requestFloatButtonEnabled, this, [this]() { virtualKeyboardManager_.hideVirtualKeyboard(); floatButtonManager_->enableFloatButton(); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::requestFloatButtonDisabled, this, [this]() { floatButtonManager_->disableFloatButton(); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::neverShowTrayIcon, this, [this]() { updateStrategy(neverShowStrategy_); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::alwaysShowTrayIcon, this, [this]() { updateStrategy(alwaysShowStrategy_); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::showTrayIconWhenKeyboardisConnected, this, [this]() { updateStrategy(keyboardStatusStrategy_); }); connect(keyboardServiceProxy_.get(), &KeyboardServiceProxy::kbdStatusChanged, this, [this]() { updateTrayVisibility(); }); } void VirtualKeyboardEntryManager::updateFloatButtonContextMenuAction( const QString &icon, const QString &text, ActionTriggeredCallback callback) { floatButtonContextMenuAction_->setIcon(QIcon(icon)); floatButtonContextMenuAction_->setText(text); actionTriggeredCallback_ = std::move(callback); } void VirtualKeyboardEntryManager::moveValueFromLocalSettings() { if (!floatButtonSettings_.contains(floatButtonEnabledKey)) { return; } const bool value = floatButtonSettings_.getValue(floatButtonGroup, floatButtonEnabledKey) .value(); floatButtonSettings_.remove(floatButtonEnabledKey); VirtualKeyboardSettings::getInstance().updateFloatButtonAvailability(value); } void VirtualKeyboardEntryManager::updateStrategy( std::shared_ptr newStrategy) { // 更新当前策略 currenTrayIconStrategy_ = newStrategy; // 更新托盘图标可用性 updateTrayExistence(); // 更新图标可见性 updateTrayVisibility(); } void VirtualKeyboardEntryManager::updateTrayExistence() { if (trayIconEntry_ == nullptr) { KVKBD_WARN("trayIconEntry_ is null!"); return; } const bool shouldCreate = currenTrayIconStrategy_->shouldCreateTray(); if (shouldCreate && !trayIconEntry_->isInit()) { trayIconEntry_->initTrayIcon(); if (floatButtonContextMenu_) { trayIconEntry_->setContextMenu(floatButtonContextMenu_.get()); } } else if (!shouldCreate && trayIconEntry_->isInit()) { trayIconEntry_->destroyTrayIcon(); } } void VirtualKeyboardEntryManager::updateTrayVisibility() { const auto needMonitor = currenTrayIconStrategy_->needsKeyboardMonitor(); int kbdCount = 0; if (needMonitor) { kbdCount = getKeyboardCount(true); } const auto shouldShow = currenTrayIconStrategy_->shouldShowTray(kbdCount); KVKBD_INFO("need monitor keyboard:{}, should show trayIcon:{}", needMonitor, shouldShow); trayIconEntry_->changeTrayIconVisibility(shouldShow); } int VirtualKeyboardEntryManager::getKeyboardCount(const bool &sync) { if (!keyboardServiceProxy_) { KVKBD_WARN("keyboardServiceProxy_ is null!"); return 0; } int currentKbdCount = 0; auto kbdNumcall = keyboardServiceProxy_->GetKbdCount(); auto kbdNumcallwatcher = new QDBusPendingCallWatcher(kbdNumcall, this); QObject::connect(kbdNumcallwatcher, &QDBusPendingCallWatcher::finished, this, [&](QDBusPendingCallWatcher *watcher) { watcher->deleteLater(); QDBusPendingReply reply = *watcher; if (!reply.isError()) { if (currentKbdCount != reply) { currentKbdCount = reply; } } else { KVKBD_WARN("getKeyboardCount(),reply error:{}", reply.error().message().toStdString()); } }); if (sync) { kbdNumcallwatcher->waitForFinished(); } KVKBD_INFO("currentKbdCount:{}", currentKbdCount); return currentKbdCount; } kylin-virtual-keyboard/src/geometrymanager/0000775000175000017500000000000015160532634020072 5ustar fengfengkylin-virtual-keyboard/src/geometrymanager/expansiongeometrymanager.cpp0000664000175000017500000000310215160532634025705 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "expansiongeometrymanager.h" #include "screenmanager.h" ExpansionGeometryManager::ExpansionGeometryManager(Scaler &&scaler) : GeometryManager(std::move(scaler)) {} int ExpansionGeometryManager::calculateViewWidth() const { return ScreenManager::getPrimaryScreenSize().width(); } int ExpansionGeometryManager::calculateViewHeight() const { QSize viewPortSize = ScreenManager::getPrimaryScreenSize(); return std::max(viewPortSize.width(), viewPortSize.height()) * viewHeightRatio_; } QPoint ExpansionGeometryManager::calculateViewPosition() const { QRect viewPortRec = ScreenManager::getPrimaryScreenGeometry(); return QPoint(viewPortRec.left(), viewPortRec.y() + viewPortRec.height() - calculateScaledViewHeight()); } QRect ExpansionGeometryManager::getScreenGeometry() const { return ScreenManager::getPrimaryScreenGeometry(); } kylin-virtual-keyboard/src/geometrymanager/geometrymanager.h0000664000175000017500000000455015160532634023435 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 GEOMETRYMANAGER_H #define GEOMETRYMANAGER_H #include #include #include #include #include "log.h" class Scaler { public: using ScaleFactorCallback = std::function; public: Scaler() = default; Scaler(ScaleFactorCallback widthScaleFactorCallback, ScaleFactorCallback heightScaleFactorCallback, ScaleFactorCallback contentScaleFactorCallback); ~Scaler() = default; float getWidthScaleFactor() const; float getHeightScaleFactor() const; float getContentScaleFactor() const; private: static float getScaleFactor(ScaleFactorCallback callback); private: ScaleFactorCallback widthScaleFactorCallback_ = nullptr; ScaleFactorCallback heightScaleFactorCallback_ = nullptr; ScaleFactorCallback contentScaleFactorCallback_ = nullptr; }; class VirtualKeyboardManager; class GeometryManager : public QObject { Q_OBJECT public: ~GeometryManager() override = default; QRect geometry() const; QRect screenGeometry() const; int getViewContentWidth() const; int getViewContentHeight() const; public slots: void updateGeometry(); signals: void viewMoved(int x, int y); void viewResized(int width, int height); protected: explicit GeometryManager(Scaler &&scaler); QSize calculateViewSize() const; int calculateScaledViewWidth() const; int calculateScaledViewHeight() const; private: virtual int calculateViewWidth() const = 0; virtual int calculateViewHeight() const = 0; virtual QPoint calculateViewPosition() const = 0; virtual QRect getScreenGeometry() const = 0; private: Scaler scaler_; }; #endif // GEOMETRYMANAGER_H kylin-virtual-keyboard/src/geometrymanager/expansiongeometrymanager.h0000664000175000017500000000240115160532550025350 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 EXPANSIONGEOMETRYMANAGER_H #define EXPANSIONGEOMETRYMANAGER_H #include "geometrymanager.h" class ExpansionGeometryManager : public GeometryManager { public: explicit ExpansionGeometryManager(Scaler &&scaler); ~ExpansionGeometryManager() override = default; private: int calculateViewWidth() const override; int calculateViewHeight() const override; QPoint calculateViewPosition() const override; QRect getScreenGeometry() const override; private: constexpr static float viewHeightRatio_ = 512.0 / 1620.0; }; #endif // EXPANSIONGEOMETRYMANAGER_H kylin-virtual-keyboard/src/geometrymanager/geometrymanager.cpp0000664000175000017500000000532615160532634023772 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "geometrymanager.h" #include "screenmanager.h" Scaler::Scaler(ScaleFactorCallback widthScaleFactorCallback, ScaleFactorCallback heightScaleFactorCallback, ScaleFactorCallback contentScaleFactorCallback) : widthScaleFactorCallback_(std::move(widthScaleFactorCallback)), heightScaleFactorCallback_(std::move(heightScaleFactorCallback)), contentScaleFactorCallback_(std::move(contentScaleFactorCallback)) {} float Scaler::getScaleFactor(ScaleFactorCallback callback) { if (callback == nullptr) { return 1.0f; } return callback(); } float Scaler::getWidthScaleFactor() const { return getScaleFactor(widthScaleFactorCallback_); } float Scaler::getHeightScaleFactor() const { return getScaleFactor(heightScaleFactorCallback_); } float Scaler::getContentScaleFactor() const { return getScaleFactor(contentScaleFactorCallback_); } GeometryManager::GeometryManager(Scaler &&scaler) : QObject(), scaler_(std::move(scaler)) {} QSize GeometryManager::calculateViewSize() const { return QSize(calculateScaledViewWidth(), calculateScaledViewHeight()); } QRect GeometryManager::geometry() const { return QRect(calculateViewPosition(), calculateViewSize()); } QRect GeometryManager::screenGeometry() const { return getScreenGeometry(); } void GeometryManager::updateGeometry() { QPoint position = calculateViewPosition(); emit viewMoved(position.x(), position.y()); QSize size = calculateViewSize(); emit viewResized(size.width(), size.height()); } int GeometryManager::calculateScaledViewWidth() const { return calculateViewWidth() * scaler_.getWidthScaleFactor(); } int GeometryManager::calculateScaledViewHeight() const { return calculateViewHeight() * scaler_.getHeightScaleFactor(); } int GeometryManager::getViewContentWidth() const { return calculateViewWidth() * scaler_.getContentScaleFactor(); } int GeometryManager::getViewContentHeight() const { return calculateViewHeight() * scaler_.getContentScaleFactor(); } kylin-virtual-keyboard/src/geometrymanager/floatgeometrymanager.h0000664000175000017500000001004715160532634024461 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 FLOATGEOMETRYMANAGER_H #define FLOATGEOMETRYMANAGER_H #include #include #include "geometrymanager.h" #include "localsettings/localsettings.h" class FloatGeometryManager : public GeometryManager { Q_OBJECT public: class Strategy; public: FloatGeometryManager(std::unique_ptr strategy, LocalSettings &viewSettings); FloatGeometryManager(std::unique_ptr strategy, LocalSettings &viewSettings, Scaler &&scaler); ~FloatGeometryManager() override; public slots: void moveBy(int offsetX, int offsetY); void endDrag(); private: QPoint calculateViewPosition() const override; int calculateViewWidth() const override; int calculateViewHeight() const override; QRect getScreenGeometry() const override; int calculateNormalizedX(int positionX) const; int calculateNormalizedY(int positionY) const; QRect calculateProbableScreenGeometry() const; QPoint calculateNormalizedPosition(const QPoint &position) const; QPoint calculatePositionFromRatio(float leftMarginRatio, float topMarginRatio) const; QPoint calculateCurrentPosition() const; QPoint calculateNormalizedPositionFromRatio(float leftMarginRatio, float topMarginRatio) const; QSize calculateMarginSize() const; QMap getMarginRatioMap() const; QMap getLastPositionMap() const; QMap getDefaultMarginRatioMap() const; QMap getDefaultLastPositionMap() const; float calculateLeftMarginRatio(float leftMargin) const; float calculateTopMarginRatio(float topMargin) const; void updateMarginRatio(const QPoint &targetPosition); void updateCurrentPostion(const QPoint &position); void saveMarginRatioMap(); void saveLastPostionMap(); void loadMarginRatioMap(); void loadLastPostionMap(); void resetParameters(); void moveView(const QPoint &targetPoint); QRect adjustToScreenEdges(const QRect &windowRect) const; private: float leftMarginRatio_ = 0.0f; float topMarginRatio_ = 0.0f; std::unique_ptr strategy_; LocalSettings &viewSettings_; static const QString floatGeometryGroup; static const QString marginRatioMapKey; static const QString leftMarginRatioKey; static const QString topMarginRatioKey; static const QString lastPositionMapKey; static const QString lastPositionXKey; static const QString lastPositionYKey; static const int defaultCoordinate; QPoint currentPosition_; }; class FloatGeometryManager::Strategy { public: virtual ~Strategy() = default; int getViewWidth(const QRect &screenGeo) const { return screenGeo.width() * getViewWidthRatio(); } int getViewHeight(const QRect &screenGeo) const { auto height = std::max(screenGeo.width(), screenGeo.height()); return height * getViewHeightRatio(); } virtual int getDefaultRightMargin() const = 0; virtual int getDefaultBottomMargin() const = 0; protected: Strategy() = default; private: virtual int getUnitWidth() const = 0; virtual float getViewWidthRatio() const = 0; virtual int getUnitHeight() const = 0; virtual float getViewHeightRatio() const = 0; }; #endif // FLOATGEOMETRYMANAGER_H kylin-virtual-keyboard/src/geometrymanager/floatgeometrymanager.cpp0000664000175000017500000002711615160532634025021 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "floatgeometrymanager.h" #include #include "localsettings/localsettings.h" #include "screenmanager.h" // static const QString FloatGeometryManager::floatGeometryGroup = "floatGeometry"; // static const QString FloatGeometryManager::marginRatioMapKey = "marginRatioMap"; // static const QString FloatGeometryManager::leftMarginRatioKey = "leftMarginRatio"; // static const QString FloatGeometryManager::topMarginRatioKey = "topMarginRatio"; const QString FloatGeometryManager::lastPositionMapKey = "lastPositionMap"; const QString FloatGeometryManager::lastPositionXKey = "lastPositionX"; const QString FloatGeometryManager::lastPositionYKey = "lastPositionY"; const int FloatGeometryManager::defaultCoordinate = -99999999; FloatGeometryManager::FloatGeometryManager(std::unique_ptr strategy, LocalSettings &viewSettings) : FloatGeometryManager(std::move(strategy), viewSettings, Scaler()) {} FloatGeometryManager::FloatGeometryManager(std::unique_ptr strategy, LocalSettings &viewSettings, Scaler &&scaler) : GeometryManager(std::move(scaler)), strategy_(std::move(strategy)), viewSettings_(viewSettings) { loadLastPostionMap(); loadMarginRatioMap(); ScreenManager::screenRemoved([this]() { KVKBD_WARN("--- [screen removed] ---"); const auto *screenAt = QGuiApplication::screenAt(currentPosition_); if (!screenAt) { KVKBD_WARN("screen removed, will reset view to primary screen!"); resetParameters(); } }); } FloatGeometryManager::~FloatGeometryManager() { } void FloatGeometryManager::moveBy(int offsetX, int offsetY) { const QPoint offset(offsetX, offsetY); const auto currentPosition = calculateCurrentPosition(); updateCurrentPostion(currentPosition); moveView(QPoint(currentPosition + offset)); } void FloatGeometryManager::endDrag() { const QPoint currentPosition = calculateCurrentPosition(); const auto viewRect = QRect(currentPosition, calculateViewSize()); const auto adjustedPosition = adjustToScreenEdges(viewRect).topLeft(); if (adjustedPosition != currentPosition) { updateCurrentPostion(adjustedPosition); moveView(adjustedPosition); } saveMarginRatioMap(); saveLastPostionMap(); updateGeometry(); } int FloatGeometryManager::calculateViewWidth() const { return strategy_->getViewWidth(getScreenGeometry()); } int FloatGeometryManager::calculateViewHeight() const { return strategy_->getViewHeight(getScreenGeometry()); } QRect FloatGeometryManager::getScreenGeometry() const { return calculateProbableScreenGeometry(); } QRect FloatGeometryManager::calculateProbableScreenGeometry() const { const auto *screenAt = QGuiApplication::screenAt(currentPosition_); if (screenAt) { KVKBD_DEBUG("using screenAt:{}", screenAt->name().toStdString()); return screenAt->geometry(); } else { KVKBD_DEBUG("using primary screen"); return ScreenManager::getPrimaryScreenGeometry(); } } QPoint FloatGeometryManager::calculateNormalizedPosition( const QPoint &position) const { const auto viewRect = QRect(position, calculateViewSize()); const auto adjustedPosition = adjustToScreenEdges(viewRect).topLeft(); return adjustedPosition; } QPoint FloatGeometryManager::calculateCurrentPosition() const { const auto currentPosition = calculatePositionFromRatio(leftMarginRatio_, topMarginRatio_); return currentPosition; } QPoint FloatGeometryManager::calculatePositionFromRatio(float leftMarginRatio, float topMarginRatio) const { const QSize marginSize = calculateMarginSize(); return QPoint(marginSize.width() * leftMarginRatio, marginSize.height() * topMarginRatio); } QPoint FloatGeometryManager::calculateNormalizedPositionFromRatio( float leftMarginRatio, float topMarginRatio) const { return calculateNormalizedPosition( calculatePositionFromRatio(leftMarginRatio, topMarginRatio)); } QPoint FloatGeometryManager::calculateViewPosition() const { return calculateNormalizedPosition(calculateCurrentPosition()); } QSize FloatGeometryManager::calculateMarginSize() const { const auto viewPortRect = calculateProbableScreenGeometry(); const auto viewSize = calculateViewSize(); const int horizontalMargin = viewPortRect.left() + viewPortRect.width() - viewSize.width(); const int verticalMargin = viewPortRect.top() + viewPortRect.height() - viewSize.height(); return QSize(horizontalMargin, verticalMargin); } QMap FloatGeometryManager::getMarginRatioMap() const { QMap marginRatioMap = { {leftMarginRatioKey, leftMarginRatio_}, {topMarginRatioKey, topMarginRatio_}}; return marginRatioMap; } QMap FloatGeometryManager::getLastPositionMap() const { QMap lastPositionMap = { {lastPositionXKey, currentPosition_.x()}, {lastPositionYKey, currentPosition_.y()}}; return lastPositionMap; } float FloatGeometryManager::calculateLeftMarginRatio(float leftMargin) const { return leftMargin / calculateMarginSize().width(); } float FloatGeometryManager::calculateTopMarginRatio(float topMargin) const { return topMargin / calculateMarginSize().height(); } void FloatGeometryManager::updateMarginRatio(const QPoint &targetPosition) { leftMarginRatio_ = calculateLeftMarginRatio(targetPosition.x()); topMarginRatio_ = calculateTopMarginRatio(targetPosition.y()); KVKBD_DEBUG("leftMarginRatio_:{}, topMarginRatio_:{}", leftMarginRatio_, topMarginRatio_); } void FloatGeometryManager::updateCurrentPostion(const QPoint &position) { currentPosition_ = position; } void FloatGeometryManager::saveMarginRatioMap() { viewSettings_.setValue(floatGeometryGroup, marginRatioMapKey, getMarginRatioMap()); } void FloatGeometryManager::saveLastPostionMap() { viewSettings_.setValue(floatGeometryGroup, lastPositionMapKey, getLastPositionMap()); } QMap FloatGeometryManager::getDefaultMarginRatioMap() const { const QRect viewPortGeo = ScreenManager::getPrimaryScreenGeometry(); const auto viewSize = calculateViewSize(); const int leftMargin = viewPortGeo.left() + viewPortGeo.width() - (viewSize.width() + strategy_->getDefaultRightMargin()); const int topMargin = viewPortGeo.top() + viewPortGeo.height() - (viewSize.height() + strategy_->getDefaultBottomMargin()); const float defaultLeftMarginRatio = calculateLeftMarginRatio(leftMargin); const float defaultTopMarginRatio = calculateTopMarginRatio(topMargin); QMap viewDefaultMarginRatioMap = { {leftMarginRatioKey, defaultLeftMarginRatio}, {topMarginRatioKey, defaultTopMarginRatio}}; return viewDefaultMarginRatioMap; } QMap FloatGeometryManager::getDefaultLastPositionMap() const { QMap viewDefaultLastPositionMap = { {lastPositionXKey, defaultCoordinate}, {lastPositionYKey, defaultCoordinate}}; return viewDefaultLastPositionMap; } void FloatGeometryManager::loadMarginRatioMap() { const auto marginRatioMap = viewSettings_ .getValue(floatGeometryGroup, marginRatioMapKey, getDefaultMarginRatioMap()) .toMap(); const float leftMarginRatio = marginRatioMap[leftMarginRatioKey].toFloat(); const float topMarginRatio = marginRatioMap[topMarginRatioKey].toFloat(); KVKBD_DEBUG("leftMarginRatio_:{}, topMarginRatio_:{}", leftMarginRatio_, topMarginRatio_); updateMarginRatio( calculateNormalizedPositionFromRatio(leftMarginRatio, topMarginRatio)); } void FloatGeometryManager::loadLastPostionMap() { KVKBD_DEBUG("floatGeometryGroup:{}", floatGeometryGroup.toStdString()); const auto lastPositionMap = viewSettings_ .getValue(floatGeometryGroup, lastPositionMapKey, getDefaultLastPositionMap()) .toMap(); const auto lastPostionX = lastPositionMap[lastPositionXKey].toInt(); const auto lastPostionY = lastPositionMap[lastPositionYKey].toInt(); updateCurrentPostion(QPoint(lastPostionX, lastPostionY)); } void FloatGeometryManager::resetParameters() { const auto lastPositionMap = getDefaultLastPositionMap(); const auto lastPostionX = lastPositionMap[lastPositionXKey].toInt(); const auto lastPostionY = lastPositionMap[lastPositionYKey].toInt(); auto defaultPosition = QPoint(lastPostionX, lastPostionY); updateCurrentPostion(defaultPosition); saveLastPostionMap(); const auto marginRatioMap = getDefaultMarginRatioMap(); const float leftMarginRatio = marginRatioMap[leftMarginRatioKey].toFloat(); const float topMarginRatio = marginRatioMap[topMarginRatioKey].toFloat(); leftMarginRatio_ = leftMarginRatio; topMarginRatio_ = topMarginRatio; saveMarginRatioMap(); KVKBD_WARN("leftMarginRatio_:{}, topMarginRatio_:{}", leftMarginRatio, topMarginRatio); } void FloatGeometryManager::moveView(const QPoint &targetPoint) { updateMarginRatio(targetPoint); const QPoint currentPosition = calculateCurrentPosition(); emit viewMoved(currentPosition.x(), currentPosition.y()); } QRect FloatGeometryManager::adjustToScreenEdges(const QRect &windowRect) const { QScreen *targetScreen = QGuiApplication::screenAt(windowRect.center()); if (!targetScreen) { for (QScreen *screen : QGuiApplication::screens()) { if (screen->geometry().intersects(windowRect)) { targetScreen = screen; break; } } } if (!targetScreen) { QPoint windowCenter = windowRect.center(); qreal minDistance = std::numeric_limits::max(); for (QScreen *screen : QGuiApplication::screens()) { QRect screenGeo = screen->geometry(); QPoint screenCenter = screenGeo.center(); qreal distance = QLineF(windowCenter, screenCenter).length(); if (distance < minDistance) { minDistance = distance; targetScreen = screen; } } } if (!targetScreen) { targetScreen = QGuiApplication::primaryScreen(); } QRect screenGeo = targetScreen->geometry(); QRect adjusted = windowRect; if (adjusted.left() < screenGeo.left()) adjusted.moveLeft(screenGeo.left()); if (adjusted.right() > screenGeo.right()) adjusted.moveRight(screenGeo.right()); if (adjusted.top() < screenGeo.top()) adjusted.moveTop(screenGeo.top()); if (adjusted.bottom() > screenGeo.bottom()) adjusted.moveBottom(screenGeo.bottom()); return adjusted; } kylin-virtual-keyboard/src/log.cpp0000664000175000017500000001570615160532550016177 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "log.h" #include #include #include #include #include #include #include #include #include #include #include const QString APP_LOG_NAME = "kylin-virtual-keyboard.log"; const QString LOGGER_NAME = "kvkbd_log"; const QString GSETTINGS_ID = "org.ukui.virtualkeyboard"; const QString LOG_LEVEL_KEY = "logLevel"; std::shared_ptr SpdlogProxy::m_logger = nullptr; std::atomic SpdlogProxy::m_cleaned{false}; void SpdlogProxy::init(const LogOption &option) { QString logFileName = getWritableLogFilePath(); const auto logLevelString = getGsettingsLogLevel(); spdlog::level::level_enum level = transToSpdLogLevel(logLevelString); std::vector sinks; // 添加控制台 sink,捕获控制台输出,主要对qml spdlog::sink_ptr console_sink = std::make_shared(); sinks.push_back(console_sink); // 添加文件 sink,使用try-catch处理文件创建失败的情况 try { spdlog::sink_ptr file_sink = std::make_shared( logFileName.toStdString(), option.fileSize, option.fileCounts, option.rotateEnable); sinks.push_back(file_sink); } catch (const spdlog::spdlog_ex &e) { // 文件创建失败,只使用控制台输出 qWarning() << "Failed to create log file:" << logFileName << "Error:" << e.what() << "Falling back to console output only."; } m_logger = std::make_shared(LOGGER_NAME.toStdString(), sinks.begin(), sinks.end()); m_logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] [%s:%!:%#] %v"); m_logger->set_level(level); m_logger->flush_on(level); // 注册 Qt 消息处理器 qInstallMessageHandler(messageHandler); spdlog::register_logger(m_logger); spdlog::set_default_logger(m_logger); KVKBD_INFO("log file:{}", logFileName.toStdString()); } void SpdlogProxy::cleanUp() { static std::once_flag cleanup_flag; std::call_once(cleanup_flag, []() { m_cleaned.store(true); qInstallMessageHandler(nullptr); try { if (m_logger) { m_logger->flush(); } if (spdlog::get(LOGGER_NAME.toStdString())) { spdlog::drop(LOGGER_NAME.toStdString()); } if (m_logger) { m_logger.reset(); } } catch (const std::exception &e) { std::cerr << "Error during log cleanup: " << e.what() << std::endl; } catch (...) { std::cerr << "Unknown error during log cleanup" << std::endl; } }); } bool SpdlogProxy::isCleaned() { return m_cleaned.load(); } void SpdlogProxy::messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { if (m_cleaned.load() || m_logger == nullptr) return; spdlog::level::level_enum level; const char *file = context.file ? context.file : ""; const char *function = context.function ? context.function : ""; int line = context.line; switch (type) { case QtDebugMsg: level = spdlog::level::debug; break; case QtInfoMsg: level = spdlog::level::info; break; case QtWarningMsg: level = spdlog::level::warn; break; case QtCriticalMsg: level = spdlog::level::err; break; case QtFatalMsg: level = spdlog::level::critical; break; default: level = spdlog::level::info; break; } // 记录到 spdlog(包含文件名、行号、函数名) spdlog::log(spdlog::source_loc{file, line, function}, level, "{}", msg.toStdString()); } void SpdlogProxy::debug(const QString &msg) { if (m_cleaned.load() || m_logger == nullptr) return; m_logger->debug("[log-proxy] {}", msg.toStdString()); } void SpdlogProxy::info(const QString &msg) { if (m_cleaned.load() || m_logger == nullptr) return; m_logger->info("[log-proxy] {}", msg.toStdString()); } void SpdlogProxy::warn(const QString &msg) { if (m_cleaned.load() || m_logger == nullptr) return; m_logger->warn("[log-proxy] {}", msg.toStdString()); } void SpdlogProxy::error(const QString &msg) { if (m_cleaned.load() || m_logger == nullptr) return; m_logger->error("[log-proxy] {}", msg.toStdString()); } QString SpdlogProxy::getGsettingsLogLevel() { QString result = "info"; if (!QGSettings::isSchemaInstalled(GSETTINGS_ID.toUtf8())) { return result; } QGSettings gsettings = QGSettings(GSETTINGS_ID.toUtf8()); if (gsettings.keys().contains(LOG_LEVEL_KEY)) { QVariant value = gsettings.get(LOG_LEVEL_KEY); if (value.isValid()) { result = value.toString(); } } return result; } spdlog::level::level_enum SpdlogProxy::transToSpdLogLevel(const QString &level) { if (level == "debug") { return spdlog::level::debug; } else if (level == "info") { return spdlog::level::info; } else if (level == "warn") { return spdlog::level::warn; } else if (level == "error") { return spdlog::level::err; } else { return spdlog::level::info; } } QString SpdlogProxy::getWritableLogFilePath() { QString homeDir = QStandardPaths::writableLocation(QStandardPaths::HomeLocation); QStringList logPaths; QString primaryLogPath = homeDir + "/.log/"; QString fallbackLogPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation) + "/kylin-virtual-keyboard/"; logPaths << primaryLogPath << fallbackLogPath; QString logFileName; for (const QString &logPath : logPaths) { QDir logDir(logPath); if (!logDir.exists()) { logDir.mkpath("."); } if (!QFileInfo(logPath).isWritable()) { continue; } logFileName = logPath + APP_LOG_NAME; break; } return logFileName; } kylin-virtual-keyboard/src/errorhandler.cpp0000664000175000017500000001135115160532550020075 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "errorhandler.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #define MINIMAL_BUFFER_SIZE 256 #define BACKTRACE_SIZE 32 QString ErrorHandler::m_crashLogPath; bool ErrorHandler::m_logDirWritable = false; const QString fileName = "kylin-virtual-keyboard-error.log"; void ErrorHandler::init() { createLogFile(); registerSignalHandler(); void *array[BACKTRACE_SIZE] = { nullptr, }; (void)backtrace(array, BACKTRACE_SIZE); } void ErrorHandler::createLogFile() { QString homeDir = QStandardPaths::writableLocation(QStandardPaths::HomeLocation); QStringList logPaths; QString primaryLogPath = homeDir + "/.log/"; QString fallbackLogPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation) + "/kylin-virtual-keyboard/"; logPaths << primaryLogPath << fallbackLogPath; for (const QString &logPath : logPaths) { QDir logDir(logPath); if (!logDir.exists()) { logDir.mkpath("."); } if (!QFileInfo(logPath).isWritable()) { continue; } m_crashLogPath = logPath + fileName; m_logDirWritable = true; break; } } void ErrorHandler::registerSignalHandler() { // 注册信号处理器 // 只关心以下信号 signal(SIGSEGV, signalHandler); signal(SIGABRT, signalHandler); signal(SIGFPE, signalHandler); signal(SIGILL, signalHandler); } void ErrorHandler::signalHandler(int sig) { if (m_crashLogPath.isEmpty()) { return; } if (m_logDirWritable == false) { return; } int fd = open(m_crashLogPath.toLocal8Bit().constData(), O_WRONLY | O_CREAT | O_TRUNC, 0600); if (fd < 0) { return; } writeString(fd, "=========================\n"); writeString(fd, "Kylin Virtual Keyboard -- Get Signal No.: "); writeUInt64(fd, sig); writeString(fd, " ("); writeString(fd, getSignalName(sig)); writeString(fd, ")\n"); time_t t = time(nullptr); writeString(fd, "Date: "); writeUInt64(fd, t); writeString(fd, " (try \"date -d @"); writeUInt64(fd, t); writeString(fd, "\" if you are using GNU date)\n"); writeString(fd, "ProcessID: "); writeUInt64(fd, getpid()); writeString(fd, "\n"); generateBacktrace(fd); close(fd); signal(sig, SIG_DFL); raise(sig); } void ErrorHandler::writeUInt64(int fd, unsigned long long number) { char buffer[MINIMAL_BUFFER_SIZE]{0}; int len = snprintf(buffer, sizeof(buffer), "%llu", number); if (len > 0 && len < (int)sizeof(buffer)) { writeBuffer(fd, buffer, len); } } ssize_t ErrorHandler::writeAll(int fd, const void *buf, size_t count) { const char *p = (const char *)buf; while (count > 0) { ssize_t written = write(fd, p, count); if (written == -1) { if (errno == EINTR) continue; return -1; } p += written; count -= written; } return 0; } const char *ErrorHandler::getSignalName(int sig) { switch (sig) { case SIGSEGV: return "SIGSEGV"; case SIGFPE: return "SIGFPE"; case SIGILL: return "SIGILL"; case SIGABRT: return "SIGABRT"; default: return "OTHER"; } } void ErrorHandler::generateBacktrace(int fd) { void *array[BACKTRACE_SIZE]{ nullptr, }; int size = backtrace(array, BACKTRACE_SIZE); writeString(fd, "\nBacktrace:\n"); writeString(fd, "Backtrace size: "); writeUInt64(fd, size); writeString(fd, "\n"); writeString(fd, "\nBacktrace addresses:\n"); backtrace_symbols_fd(array, size, fd); } void ErrorHandler::writeString(int fd, const char *str) { writeAll(fd, str, strlen(str)); } void ErrorHandler::writeBuffer(int fd, const char *buffer, int len) { writeAll(fd, buffer, len); }kylin-virtual-keyboard/src/virtualkeyboard/0000775000175000017500000000000015160532634020113 5ustar fengfengkylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardmanager.cpp0000664000175000017500000002132015160532634025357 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardmanager.h" #include #include #include "animation/disabledanimator.h" #include "animation/enabledanimator.h" #include "animation/expansionanimationfactory.h" #include "animation/floatanimationfactory.h" #include "virtualkeyboardsettings/virtualkeyboardsettings.h" #include "virtualkeyboardstrategy.h" VirtualKeyboardManager::VirtualKeyboardManager( HideVirtualKeyboardCallback hideVirtualKeyboardCallback) : hideVirtualKeyboardCallback_(std::move(hideVirtualKeyboardCallback)) { initVirtualKeyboardModel(); initAppInputAreaManager(); initVirtualKeyboardView(); initScreenSignalConnections(); } VirtualKeyboardManager::~VirtualKeyboardManager() { hideVirtualKeyboard(); appInputAreaManager_.reset(); view_.reset(); model_.reset(); } void VirtualKeyboardManager::showVirtualKeyboard() { if (isVirtualKeyboardVisible()) { return; } view_->show(); visibiltyChanged(); } void VirtualKeyboardManager::hideVirtualKeyboard() { if (!isVirtualKeyboardVisible()) { return; } appInputAreaManager_->fallInputArea(); view_->hide(); visibiltyChanged(); } void VirtualKeyboardManager::hide() { if (!hideVirtualKeyboardCallback_) { return; } hideVirtualKeyboardCallback_(); } void VirtualKeyboardManager::flipPlacementMode() { view_->flip(); } void VirtualKeyboardManager::moveBy(int offsetX, int offsetY) { view_->moveBy(offsetX, offsetY); } void VirtualKeyboardManager::endDrag() { view_->endDrag(); } void VirtualKeyboardManager::visibiltyChanged() { emit virtualKeyboardVisibiltyChanged(isVirtualKeyboardVisible()); } bool VirtualKeyboardManager::isVirtualKeyboardVisible() const { return view_->isVisible(); } void VirtualKeyboardManager::updatePreeditCaret(int index) { model_->setPreeditCaret(index); } void VirtualKeyboardManager::updatePreeditArea(const QString &preeditText) { model_->setPreeditText(preeditText); } void VirtualKeyboardManager::updateCandidateArea( const QStringList &candidateTextList, bool hasPrev, bool hasNext, int pageIndex, int globalCursorIndex) { model_->updateCandidateArea(QVariant(candidateTextList), hasPrev, hasNext, pageIndex, globalCursorIndex); } void VirtualKeyboardManager::notifyIMActivated(const QString &uniqueName) { model_->setUniqueName(uniqueName); } void VirtualKeyboardManager::notifyIMDeactivated( const QString & /*uniqueName*/) { emit model_->imDeactivated(); } void VirtualKeyboardManager::notifyIMListChanged() { model_->syncCurrentIMList(); } void VirtualKeyboardManager::processResolutionChangedEvent() { if (isVirtualKeyboardVisible()) { view_->updateGeometry(); raiseInputAreaIfNecessary(); } } void VirtualKeyboardManager::initAppInputAreaManager() { appInputAreaManager_.reset(new AppInputAreaManager(this)); } std::unique_ptr VirtualKeyboardManager::createPlacementModeManager() { return std::unique_ptr( new PlacementModeManager(viewSettings_)); } Scaler VirtualKeyboardManager::createFloatModeScaler() { return Scaler( []() { return VirtualKeyboardSettings::getInstance() .calculateVirtualKeyboardScaleFactor(); }, []() { return VirtualKeyboardSettings::getInstance() .calculateVirtualKeyboardScaleFactor(); }, []() { return VirtualKeyboardSettings::getInstance() .calculateVirtualKeyboardScaleFactor(); }); } Scaler VirtualKeyboardManager::createExpansionModeScaler() { return Scaler([]() { return 1.0f; }, []() { return VirtualKeyboardSettings::getInstance() .calculateVirtualKeyboardScaleFactor(); }, []() { return VirtualKeyboardSettings::getInstance() .calculateVirtualKeyboardScaleFactor(); }); } std::unique_ptr VirtualKeyboardManager::createExpansionGeometryManager() { return std::unique_ptr( new ExpansionGeometryManager(createExpansionModeScaler())); } std::unique_ptr VirtualKeyboardManager::createFloatGeometryManger() { return std::unique_ptr(new FloatGeometryManager( std::unique_ptr( new VirtualKeyboardStrategy()), viewSettings_, createFloatModeScaler())); } void VirtualKeyboardManager::initVirtualKeyboardModel() { model_.reset(new VirtualKeyboardModel(this)); connect(model_.get(), SIGNAL(backendConnectionDisconnected()), this, SLOT(hideVirtualKeyboard())); } void VirtualKeyboardManager::initVirtualKeyboardView() { view_.reset(new VirtualKeyboardView( *this, *model_, createPlacementModeManager(), createExpansionGeometryManager(), createFloatGeometryManger())); view_->setAnimator(createAnimator()); connectVirtualKeyboardModelSignals(); connectVirtualKeyboardViewSignals(); connectVirtualKeyboardSettingsSignals(); } void VirtualKeyboardManager::connectVirtualKeyboardModelSignals() { connect(model_.get(), SIGNAL(updateCandidateArea(const QVariant &, int)), view_.get(), SIGNAL(updateCandidateArea(const QVariant &, int))); connect(model_.get(), SIGNAL(imDeactivated()), view_.get(), SIGNAL(imDeactivated())); } void VirtualKeyboardManager::connectVirtualKeyboardViewSignals() { connect( view_.get(), &VirtualKeyboardView::raiseAppRequested, this, [this]() { appInputAreaManager_->raiseInputArea(view_->geometry()); }); connect(view_.get(), &VirtualKeyboardView::fallAppRequested, this, [this]() { appInputAreaManager_->fallInputArea(); }); } void VirtualKeyboardManager::connectVirtualKeyboardSettingsSignals() { connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::scaleFactorChanged, view_.get(), [this]() { view_->updateGeometry(); raiseInputAreaIfNecessary(); }); connect(&VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::animationAvailabilityChanged, this, [this]() { view_->setAnimator(createAnimator()); }); } void VirtualKeyboardManager::initScreenSignalConnections() { connect(QGuiApplication::primaryScreen(), SIGNAL(geometryChanged(const QRect &)), this, SLOT(processResolutionChangedEvent())); } void VirtualKeyboardManager::raiseInputAreaIfNecessary() { if (!view_->isVisible()) { return; } if (view_->isFloatMode()) { return; } appInputAreaManager_->raiseInputArea(view_->geometry()); } std::unique_ptr VirtualKeyboardManager::createAnimationFactory() { if (view_->isFloatMode()) { return std::unique_ptr(new FloatAnimationFactory()); } else { return std::unique_ptr( new ExpansionAnimationFactory()); } } std::unique_ptr VirtualKeyboardManager::createEnabledAnimator() { auto animator = std::unique_ptr(new EnabledAnimator( [this]() { return view_->isFloatMode(); }, createAnimationFactory())); EnabledAnimator *enabledAnimator = animator.get(); connect(view_.get(), &VirtualKeyboardView::isFloatModeChanged, enabledAnimator, [this, enabledAnimator]() { enabledAnimator->setAnimationFactory(createAnimationFactory()); }); return animator; } std::unique_ptr VirtualKeyboardManager::createDisabledAnimator() { return std::unique_ptr(new DisabledAnimator()); } std::unique_ptr VirtualKeyboardManager::createAnimator() { if (VirtualKeyboardSettings::getInstance().isAnimationEnabled()) { return createEnabledAnimator(); } else { return createDisabledAnimator(); } } kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardmanager.h0000664000175000017500000000672015160532634025033 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDMANAGER_H #define VIRTUALKEYBOARDMANAGER_H #include #include #include #include "animation/animationfactory.h" #include "appinputareamanager.h" #include "geometrymanager/expansiongeometrymanager.h" #include "geometrymanager/floatgeometrymanager.h" #include "localsettings/viewlocalsettings.h" #include "placementmodemanager.h" #include "virtualkeyboardmodel.h" #include "virtualkeyboardview.h" class VirtualKeyboardManager : public QObject { Q_OBJECT public: using HideVirtualKeyboardCallback = std::function; public: explicit VirtualKeyboardManager( HideVirtualKeyboardCallback hideVirtualKeyboardCallback); ~VirtualKeyboardManager(); void showVirtualKeyboard(); Q_INVOKABLE void hide(); Q_INVOKABLE void flipPlacementMode(); Q_INVOKABLE void moveBy(int offsetX, int offsetY); Q_INVOKABLE void endDrag(); void visibiltyChanged(); bool isVirtualKeyboardVisible() const; void updatePreeditCaret(int index); void updatePreeditArea(const QString &preeditText); void updateCandidateArea(const QStringList &candidateTextList, bool hasPrev, bool hasNext, int pageIndex, int globalCursorIndex); void notifyIMActivated(const QString &uniqueName); void notifyIMDeactivated(const QString &uniqueName); void notifyIMListChanged(); signals: void virtualKeyboardVisibiltyChanged(bool isShow); public slots: void processResolutionChangedEvent(); void hideVirtualKeyboard(); private: void initAppInputAreaManager(); std::unique_ptr createPlacementModeManager(); static Scaler createExpansionModeScaler(); static Scaler createFloatModeScaler(); static std::unique_ptr createExpansionGeometryManager(); std::unique_ptr createFloatGeometryManger(); void initVirtualKeyboardModel(); void initScreenSignalConnections(); void initVirtualKeyboardView(); void connectVirtualKeyboardModelSignals(); void connectVirtualKeyboardViewSignals(); void connectVirtualKeyboardSettingsSignals(); void raiseInputAreaIfNecessary(); std::unique_ptr createAnimationFactory(); std::unique_ptr createEnabledAnimator(); std::unique_ptr createDisabledAnimator(); std::unique_ptr createAnimator(); std::unique_ptr appInputAreaManager_ = nullptr; std::unique_ptr model_ = nullptr; std::unique_ptr view_ = nullptr; HideVirtualKeyboardCallback hideVirtualKeyboardCallback_; ViewLocalSettings viewSettings_{"kylinsoft", "kylin virtual keyboard"}; }; #endif // VIRTUALKEYBOARDMANAGER_H kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardview.h0000664000175000017500000000777715160532634024410 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDVIEW_H #define VIRTUALKEYBOARDVIEW_H #include #include #include #include #include "animation/animator.h" #include "geometrymanager/expansiongeometrymanager.h" #include "geometrymanager/floatgeometrymanager.h" #include "geometrymanager/geometrymanager.h" #include "virtualkeyboard/placementmodemanager.h" class VirtualKeyboardView : public QObject { Q_OBJECT public: VirtualKeyboardView( QObject &manager, QObject &model, std::unique_ptr placementModeManager, std::unique_ptr expansionGeometryManager, std::unique_ptr floatGeometryManager); ~VirtualKeyboardView() override; void initView(); Q_PROPERTY(bool isFloatMode READ isFloatMode NOTIFY isFloatModeChanged); Q_PROPERTY( int contentHeight READ getContentHeight NOTIFY contentHeightChanged); Q_PROPERTY( int contentWidth READ getContentWidth NOTIFY contentWidthChanged); void moveBy(int offsetX, int offsetY); void endDrag(); QRect geometry() const; QRect screenGeometry() const; void updateGeometry(); void emitContentGeometrySignals(); bool isVisible() const; void show(); void hide(); void flip(); QWindow *view() { return view_.get(); } bool isFloatMode() const { return placementModeManager_->isFloatMode(); } void updateExpansionFlippingStartGeometry(); void setAnimator(std::shared_ptr animator); signals: void isFloatModeChanged(); void contentHeightChanged(); void contentWidthChanged(); void updateCandidateArea(const QVariant &candidateTextList, int globalCursorIndex); void imDeactivated(); void raiseAppRequested(); void fallAppRequested(); public slots: void move(int x, int y); void resize(); private: class State; class VisibleState; class HidingState; class ShowingState; class InvisibleState; class FlippingState; private: void initState(); QRect calculateInitialGeometry(); static int getScreenHeight(); int getScreenRelativeHeight(); void connectSignals(); void destroyView(); int getContentHeight(); int getContentWidth(); void setViewOpacity(); void updateCurrentState(std::shared_ptr newState); void enterVisibleState(); void enterHidingState(); void enterShowingState(); void enterInvisibleState(); void enterFlippingState(); GeometryManager &getCurrentGeometryManager() const; private: QObject &manager_; QObject &model_; std::unique_ptr view_ = nullptr; std::unique_ptr placementModeManager_ = nullptr; std::shared_ptr animator_ = nullptr; std::shared_ptr currentState_ = nullptr; std::shared_ptr visibleState_ = nullptr; std::shared_ptr hidingState_ = nullptr; std::shared_ptr showingState_ = nullptr; std::shared_ptr invisibleState_ = nullptr; std::shared_ptr flippingState_ = nullptr; std::unique_ptr expansionGeometryManager_ = nullptr; std::unique_ptr floatGeometryManager_ = nullptr; }; #endif // VIRTUALKEYBOARDVIEW_H kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardmodel.cpp0000664000175000017500000001416415160532550025052 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboardmodel.h" #include #include #include #include "log.h" VirtualKeyboardModel::VirtualKeyboardModel(QObject *parent) : QObject(parent) { initFcitx5Controller(); initUkuiMenuServiceProxy(); initDBusServiceWatcher(); } void VirtualKeyboardModel::updateCandidateArea( const QVariant &candidateTextList, bool /*hasPrev*/, bool /*hasNext*/, int /*pageIndex*/, int globalCursorIndex) { emit updateCandidateArea(candidateTextList, globalCursorIndex); } void VirtualKeyboardModel::selectCandidate(int index) { virtualKeyboardBackendInterface_->asyncCall("SelectCandidate", index); } void VirtualKeyboardModel::setCurrentIM(const QString &imName) { fcitx5Controller_->SetCurrentIM(imName); } void VirtualKeyboardModel::processKeyEvent(int keysym, int keycode, int state, bool isRelease, int time) { // TODO:未来支持全局快捷键之后需要把这里的逻辑全部去掉 hantengc if (keycode == 133 && isRelease && state == 64) { KVKBD_INFO("will change ukui menu visiblity."); changeUkuiMenuVisiblity(); return; } virtualKeyboardBackendInterface_->asyncCall("ProcessKeyEvent", (uint)keysym, (uint)keycode, (uint)state, isRelease, (uint)time); } void VirtualKeyboardModel::initFcitx5Controller() { registerKvkbdFcitxQtDBusTypes(); fcitx5Controller_.reset(new FcitxControllerServiceProxy(this)); } void VirtualKeyboardModel::initUkuiMenuServiceProxy() { ukuiMenuServiceProxy_.reset(new UkuiMenuServiceProxy(this)); } void VirtualKeyboardModel::initDBusServiceWatcher() { serviceWatcher_.reset(new QDBusServiceWatcher(this)); serviceWatcher_->setConnection(QDBusConnection::sessionBus()); serviceWatcher_->addWatchedService(virtualKeyboardBackendService); serviceWatcher_->setWatchMode(QDBusServiceWatcher::WatchForRegistration | QDBusServiceWatcher::WatchForUnregistration); connect(serviceWatcher_.get(), SIGNAL(serviceRegistered(const QString &)), this, SLOT(backendServiceRegistered(const QString &))); connect(serviceWatcher_.get(), SIGNAL(serviceUnregistered(const QString &)), this, SLOT(backendServiceUnregistered(const QString &))); } void VirtualKeyboardModel::initVirtualKeyboardBackendInterface() { virtualKeyboardBackendInterface_.reset(new QDBusInterface( virtualKeyboardBackendService, virtualKeyboardBackendServicePath, virtualKeyboardBackendServiceInterface, QDBusConnection::sessionBus(), this)); } void VirtualKeyboardModel::backendServiceRegistered( const QString &serviceName) { if (serviceName != virtualKeyboardBackendService) { return; } initVirtualKeyboardBackendInterface(); syncCurrentIMList(); syncUniqueName(); } void VirtualKeyboardModel::backendServiceUnregistered( const QString &serviceName) { if (serviceName != virtualKeyboardBackendService) { return; } emit backendConnectionDisconnected(); virtualKeyboardBackendInterface_.reset(); } QString VirtualKeyboardModel::getUniqueName() const { return uniqueName_; } void VirtualKeyboardModel::setUniqueName(const QString &uniqueName) { if (uniqueName_ == uniqueName) { return; } uniqueName_ = uniqueName; emit uniqueNameChanged(); } void VirtualKeyboardModel::syncUniqueName() { QDBusPendingReply reply = fcitx5Controller_->CurrentInputMethod(); reply.waitForFinished(); if (!reply.isValid()) { KVKBD_WARN("reply error:{}", reply.error().message().toStdString()); return; } setUniqueName(reply.value()); } QVariant VirtualKeyboardModel::getCurrentIMList() const { return currentIMList_; } void VirtualKeyboardModel::setCurrentIMList( const QVariant ¤tInputMethodList) { if (currentIMList_ == currentInputMethodList) { return; } currentIMList_ = currentInputMethodList; emit currentIMListChanged(); } int VirtualKeyboardModel::getPreeditCaret() const { return preeditCaret_; } void VirtualKeyboardModel::setPreeditCaret(int preeditCaret) { preeditCaret_ = preeditCaret; emit preeditCaretChanged(); } QString VirtualKeyboardModel::getPreeditText() const { return preeditText_; } void VirtualKeyboardModel::setPreeditText(const QString &preeditText) { preeditText_ = preeditText; emit preeditTextChanged(); } void VirtualKeyboardModel::syncCurrentIMList() { auto reply = fcitx5Controller_->FullInputMethodGroupInfo(""); reply.waitForFinished(); if (!reply.isValid()) { KVKBD_WARN("reply error:{}", reply.error().message().toStdString()); return; } QStringList stringList; auto inputMethodEntryList = reply.argumentAt<4>(); for (const auto &inputMethodEntry : inputMethodEntryList) { stringList.append( inputMethodEntry.uniqueName() + "|" + inputMethodEntry.name() + "|" + inputMethodEntry.label() + "|" + inputMethodEntry.icon()); } setCurrentIMList(QVariant(stringList)); } void VirtualKeyboardModel::changeUkuiMenuVisiblity() { if (ukuiMenuServiceProxy_ == nullptr) { KVKBD_INFO("ukui menu service proxy is nullptr,will return and not to " "show ukui menu."); return; } ukuiMenuServiceProxy_->toggle(); } kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardviewstate.cpp0000664000175000017500000001343015160532550025760 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "virtualkeyboard/virtualkeyboardview.h" #include "virtualkeyboardsettings/virtualkeyboardsettings.h" class VirtualKeyboardView::State { public: virtual ~State() = default; virtual bool isVirtualKeyboardVisible() = 0; virtual void show() = 0; virtual void hide() = 0; virtual void flip() = 0; virtual void onAnimationFinished() = 0; protected: explicit State(VirtualKeyboardView &virtualKeyboardView) : virtualKeyboardView_(virtualKeyboardView) {} protected: VirtualKeyboardView &virtualKeyboardView_; }; class VirtualKeyboardView::VisibleState : public VirtualKeyboardView::State { public: explicit VisibleState(VirtualKeyboardView &virtualKeyboardView) : State(virtualKeyboardView) {} ~VisibleState() override = default; bool isVirtualKeyboardVisible() override { return true; } void show() override {} void hide() override { virtualKeyboardView_.enterHidingState(); } void flip() override { virtualKeyboardView_.enterFlippingState(); } void onAnimationFinished() override {} }; class VirtualKeyboardView::HidingState : public VirtualKeyboardView::State { public: HidingState(VirtualKeyboardView &virtualKeyboardView) : State(virtualKeyboardView) {} ~HidingState() override = default; bool isVirtualKeyboardVisible() override { return false; } void show() override { virtualKeyboardView_.enterShowingState(); } void hide() override {} void flip() override {} void onAnimationFinished() override { virtualKeyboardView_.enterInvisibleState(); } }; class VirtualKeyboardView::ShowingState : public VirtualKeyboardView::State { public: ShowingState(VirtualKeyboardView &virtualKeyboardView) : State(virtualKeyboardView) {} ~ShowingState() override = default; bool isVirtualKeyboardVisible() override { return true; } void show() override {} void hide() override { virtualKeyboardView_.enterHidingState(); } void flip() override {} void onAnimationFinished() override { virtualKeyboardView_.enterVisibleState(); } }; class VirtualKeyboardView::InvisibleState : public VirtualKeyboardView::State { public: InvisibleState(VirtualKeyboardView &virtualKeyboardView) : State(virtualKeyboardView) {} ~InvisibleState() override = default; bool isVirtualKeyboardVisible() override { return false; } void show() override { virtualKeyboardView_.initView(); virtualKeyboardView_.enterShowingState(); } void hide() override {} void flip() override {} void onAnimationFinished() override {} }; class VirtualKeyboardView::FlippingState : public VirtualKeyboardView::State { public: FlippingState(VirtualKeyboardView &virtualKeyboardView) : State(virtualKeyboardView) {} ~FlippingState() override = default; bool isVirtualKeyboardVisible() override { return true; } void show() override {} void hide() override { virtualKeyboardView_.enterInvisibleState(); } void flip() override {}; void onAnimationFinished() override { if (!virtualKeyboardView_.isFloatMode()) { virtualKeyboardView_.updateGeometry(); } virtualKeyboardView_.enterVisibleState(); } }; void VirtualKeyboardView::initState() { visibleState_ = std::make_shared(*this); hidingState_ = std::make_shared(*this); showingState_ = std::make_shared(*this); invisibleState_ = std::make_shared(*this); flippingState_ = std::make_shared(*this); updateCurrentState(invisibleState_); } bool VirtualKeyboardView::isVisible() const { return currentState_->isVirtualKeyboardVisible(); } void VirtualKeyboardView::show() { currentState_->show(); } void VirtualKeyboardView::hide() { currentState_->hide(); } void VirtualKeyboardView::flip() { currentState_->flip(); } void VirtualKeyboardView::setAnimator(std::shared_ptr animator) { animator_ = animator; connect(animator_.get(), &Animator::animationFinished, this, [this]() { currentState_->onAnimationFinished(); }); } void VirtualKeyboardView::updateCurrentState(std::shared_ptr newState) { currentState_ = newState; } void VirtualKeyboardView::enterVisibleState() { updateCurrentState(visibleState_); if (!isFloatMode()) { emit raiseAppRequested(); } } void VirtualKeyboardView::enterHidingState() { updateCurrentState(hidingState_); animator_->playHideAnimation(view_.get(), calculateInitialGeometry()); } void VirtualKeyboardView::enterShowingState() { updateCurrentState(showingState_); animator_->playShowAnimation(view_.get(), geometry()); } void VirtualKeyboardView::enterInvisibleState() { updateCurrentState(invisibleState_); destroyView(); } void VirtualKeyboardView::enterFlippingState() { updateCurrentState(flippingState_); placementModeManager_->flipPlacementMode(); if (isFloatMode()) { updateExpansionFlippingStartGeometry(); emit fallAppRequested(); } animator_->playFlipAnimation(view_.get(), geometry()); } kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardmodel.h0000664000175000017500000000734615160532550024523 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDMODEL_H #define VIRTUALKEYBOARDMODEL_H #include #include #include #include #include "ipc/fcitxcontrollerserviceproxy.h" #include "ipc/ukuimenuserviceproxy.h" class VirtualKeyboardModel : public QObject { Q_OBJECT public: explicit VirtualKeyboardModel(QObject *parent = nullptr); ~VirtualKeyboardModel() override = default; public: Q_PROPERTY(QString uniqueName READ getUniqueName NOTIFY uniqueNameChanged); Q_PROPERTY(QVariant currentIMList READ getCurrentIMList NOTIFY currentIMListChanged); Q_PROPERTY(int preeditCaret READ getPreeditCaret NOTIFY preeditCaretChanged) Q_PROPERTY( QString preeditText READ getPreeditText NOTIFY preeditTextChanged); signals: void uniqueNameChanged(); void currentIMListChanged(); void preeditCaretChanged(); void preeditTextChanged(); public: void setUniqueName(const QString &uniqueName); void syncCurrentIMList(); void updateCandidateArea(const QVariant &candidateTextList, bool hasPrev, bool hasNext, int pageIndex, int globalCursorIndex); void setPreeditCaret(int preeditCaret); void setPreeditText(const QString &preeditText); public: Q_INVOKABLE void selectCandidate(int index); Q_INVOKABLE void setCurrentIM(const QString &imName); Q_INVOKABLE void processKeyEvent(int keysym, int keycode, int state, bool isRelease, int time); signals: // TODO(linyuxuan): 使用更准确的类型替换QVariant void updateCandidateArea(const QVariant &candidateTextList, int globalCursorIndex); void imDeactivated(); void backendConnectionDisconnected(); private slots: void backendServiceRegistered(const QString &serviceName); void backendServiceUnregistered(const QString &serviceName); private: void initFcitx5Controller(); void initUkuiMenuServiceProxy(); void initDBusServiceWatcher(); void initVirtualKeyboardBackendInterface(); QString getUniqueName() const; void syncUniqueName(); QVariant getCurrentIMList() const; void setCurrentIMList(const QVariant ¤tIMList); int getPreeditCaret() const; QString getPreeditText() const; void changeUkuiMenuVisiblity(); private: std::unique_ptr serviceWatcher_ = nullptr; std::unique_ptr virtualKeyboardBackendInterface_ = nullptr; std::unique_ptr fcitx5Controller_ = nullptr; std::unique_ptr ukuiMenuServiceProxy_ = nullptr; QString uniqueName_; QVariant currentIMList_; int preeditCaret_ = 0; QString preeditText_; QString virtualKeyboardBackendService = "org.fcitx.Fcitx5.VirtualKeyboardBackend"; QString virtualKeyboardBackendServicePath = "/virtualkeyboard"; QString virtualKeyboardBackendServiceInterface = "org.fcitx.Fcitx5.VirtualKeyboardBackend1"; }; #endif // VIRTUALKEYBOARDMODEL_H kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardview.cpp0000664000175000017500000001527615160532634024734 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "virtualkeyboard/virtualkeyboardview.h" #include #include #include "screenmanager.h" #include "virtualkeyboardsettings/virtualkeyboardsettings.h" VirtualKeyboardView::VirtualKeyboardView( QObject &manager, QObject &model, std::unique_ptr placementModeManager, std::unique_ptr expansionGeometryManager, std::unique_ptr floatGeometryManager) : manager_(manager), model_(model), placementModeManager_(std::move(placementModeManager)), expansionGeometryManager_(std::move(expansionGeometryManager)), floatGeometryManager_(std::move(floatGeometryManager)) { connect(placementModeManager_.get(), &PlacementModeManager::isFloatModeChanged, this, &VirtualKeyboardView::isFloatModeChanged); connect(floatGeometryManager_.get(), &FloatGeometryManager::viewMoved, this, &VirtualKeyboardView::move); connect(floatGeometryManager_.get(), &FloatGeometryManager::viewResized, this, &VirtualKeyboardView::resize); connect( &VirtualKeyboardSettings::getInstance(), &VirtualKeyboardSettings::animationAvailabilityChanged, this, [this]() { if (!VirtualKeyboardSettings::getInstance().isAnimationEnabled() && view_) { view_->setOpacity(1.0f); } }); initState(); if (VirtualKeyboardSettings::getInstance().isPreloadViewEnabled()) { KVKBD_INFO("will preload quickview"); initView(); } } VirtualKeyboardView::~VirtualKeyboardView() { destroyView(); if (view_ != nullptr) { view_.release()->deleteLater(); } currentState_.reset(); visibleState_.reset(); hidingState_.reset(); showingState_.reset(); invisibleState_.reset(); flippingState_.reset(); } void VirtualKeyboardView::moveBy(int offsetX, int offsetY) { if (!isFloatMode()) { return; } floatGeometryManager_->moveBy(offsetX, offsetY); } void VirtualKeyboardView::endDrag() { if (!isFloatMode()) { return; } floatGeometryManager_->endDrag(); } QRect VirtualKeyboardView::geometry() const { return getCurrentGeometryManager().geometry(); } QRect VirtualKeyboardView::screenGeometry() const { return getCurrentGeometryManager().screenGeometry(); } void VirtualKeyboardView::updateGeometry() { if (!isVisible()) { return; } view_->setGeometry(geometry()); emitContentGeometrySignals(); } void VirtualKeyboardView::updateExpansionFlippingStartGeometry() { auto geometry = floatGeometryManager_->geometry(); view_->setGeometry(geometry.x(), view_->y(), geometry.width(), geometry.height()); emitContentGeometrySignals(); } void VirtualKeyboardView::move(int x, int y) { if (!view_) { KVKBD_WARN("view_ is null!"); return; } view_->setX(x); view_->setY(y); } void VirtualKeyboardView::resize() { updateGeometry(); } void VirtualKeyboardView::initView() { const auto preloadViewEnabled = VirtualKeyboardSettings::getInstance().isPreloadViewEnabled(); if (view_ != nullptr && preloadViewEnabled) { return; } KVKBD_INFO("preloadViewEnabled:{}", preloadViewEnabled); view_.reset(new QQuickView()); view_->rootContext()->setContextProperty("manager", &manager_); view_->rootContext()->setContextProperty("model", &model_); view_->rootContext()->setContextProperty("view", this); view_->rootContext()->setContextProperty("QT_VERSION_MAJOR", QT_VERSION_MAJOR); view_->rootContext()->setContextProperty("QT_VERSION_MINOR", QT_VERSION_MINOR); view_->rootContext()->setContextProperty("QT_VERSION_PATCH", QT_VERSION_PATCH); view_->setTitle("kylin-virtual-keyboard"); view_->setColor(QColor(Qt::transparent)); view_->setSource(QUrl("qrc:/qml/VirtualKeyboard.qml")); view_->setFlags(Qt::Window | Qt::WindowDoesNotAcceptFocus | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint); view_->setGeometry(calculateInitialGeometry()); setViewOpacity(); connectSignals(); } QRect VirtualKeyboardView::calculateInitialGeometry() { auto geo = geometry(); auto screenHeight = getScreenRelativeHeight(); int normalizedY = std::min(screenHeight, geo.y() + geo.height()); return QRect(geo.x(), normalizedY, geo.width(), geo.height()); } int VirtualKeyboardView::getScreenHeight() { return ScreenManager::getPrimaryScreenSize().height(); } int VirtualKeyboardView::getScreenRelativeHeight() { auto screenRect = screenGeometry(); return screenRect.y() + screenRect.height(); } void VirtualKeyboardView::connectSignals() { auto *rootObject = view_->rootObject(); connect(this, SIGNAL(updateCandidateArea(const QVariant &, int)), rootObject, SIGNAL(qmlUpdateCandidateList(QVariant, int))); connect(this, SIGNAL(imDeactivated()), rootObject, SIGNAL(qmlImDeactivated())); } void VirtualKeyboardView::destroyView() { if (view_ == nullptr) { return; } if (view_->isVisible()) { view_->hide(); } if (!VirtualKeyboardSettings::getInstance().isPreloadViewEnabled()) { view_.release()->deleteLater(); } } void VirtualKeyboardView::emitContentGeometrySignals() { emit contentHeightChanged(); emit contentWidthChanged(); } int VirtualKeyboardView::getContentWidth() { return getCurrentGeometryManager().getViewContentWidth(); } int VirtualKeyboardView::getContentHeight() { return getCurrentGeometryManager().getViewContentHeight(); } void VirtualKeyboardView::setViewOpacity() { if (VirtualKeyboardSettings::getInstance().isAnimationEnabled()) { view_->setOpacity(isFloatMode() ? 0.0f : 1.0f); } } GeometryManager &VirtualKeyboardView::getCurrentGeometryManager() const { if (isFloatMode()) { return *floatGeometryManager_; } else { return *expansionGeometryManager_; } } kylin-virtual-keyboard/src/virtualkeyboard/placementmodemanager.h0000664000175000017500000000273215160532550024435 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 PLACEMENTMODEMANAGER_H #define PLACEMENTMODEMANAGER_H #include #include "localsettings/localsettings.h" class PlacementModeManager : public QObject { Q_OBJECT public: explicit PlacementModeManager(LocalSettings &viewSettings); ~PlacementModeManager() override; bool isFloatMode() const { return isFloatMode_; } signals: void isFloatModeChanged(); public: void flipPlacementMode(); private: void setPlacementMode(bool isFloatMode); void enterExpansionMode(); void enterFloatMode(); void savePlacementMode(); void loadPlacementMode(); private: bool isFloatMode_ = true; LocalSettings &viewSettings_; static const QString placementModeGroup; static const QString placementModeKey; }; #endif // PLACEMENTMODEMANAGER_H kylin-virtual-keyboard/src/virtualkeyboard/placementmodemanager.cpp0000664000175000017500000000372715160532550024775 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "placementmodemanager.h" #include "localsettings/localsettings.h" // static const QString PlacementModeManager::placementModeGroup = "placementMode"; // static const QString PlacementModeManager::placementModeKey = "placementMode"; PlacementModeManager::PlacementModeManager(LocalSettings &viewSettings) : QObject(), viewSettings_(viewSettings) { loadPlacementMode(); } PlacementModeManager::~PlacementModeManager() { savePlacementMode(); } void PlacementModeManager::flipPlacementMode() { if (isFloatMode_) { enterExpansionMode(); } else { enterFloatMode(); } } void PlacementModeManager::setPlacementMode(bool isFloatMode) { if (isFloatMode_ == isFloatMode) { return; } isFloatMode_ = isFloatMode; savePlacementMode(); emit isFloatModeChanged(); } void PlacementModeManager::enterExpansionMode() { setPlacementMode(false); } void PlacementModeManager::enterFloatMode() { setPlacementMode(true); } void PlacementModeManager::savePlacementMode() { viewSettings_.setValue(placementModeGroup, placementModeKey, isFloatMode_); } void PlacementModeManager::loadPlacementMode() { isFloatMode_ = viewSettings_.getValue(placementModeGroup, placementModeKey, true) .value(); } kylin-virtual-keyboard/src/virtualkeyboard/virtualkeyboardstrategy.h0000664000175000017500000000376015160532634025264 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 VIRTUALKEYBOARDSTRATEGY_H #define VIRTUALKEYBOARDSTRATEGY_H #include "geometrymanager/floatgeometrymanager.h" #include "screenmanager.h" class VirtualKeyboardStrategy : public FloatGeometryManager::Strategy { public: VirtualKeyboardStrategy() = default; ~VirtualKeyboardStrategy() override = default; int getDefaultRightMargin() const override { const int screenWidth = ScreenManager::getPrimaryScreenSize().width(); return screenWidth * defaultRightMarginRatio_; } int getDefaultBottomMargin() const override { const int screenHeight = ScreenManager::getPrimaryScreenSize().height(); return screenHeight * defaultBottomMarginRatio_; } private: int getUnitWidth() const override { return ScreenManager::getPrimaryScreenSize().width(); } float getViewWidthRatio() const override { return 1458.0 / 1620.0; } int getUnitHeight() const override { const auto viewPortSize = ScreenManager::getPrimaryScreenSize(); return std::max(viewPortSize.width(), viewPortSize.height()); } float getViewHeightRatio() const override { return 548.0 / 1620.0; } private: static constexpr float defaultRightMarginRatio_ = 0.25f; static constexpr float defaultBottomMarginRatio_ = 0.15f; }; #endif // VIRTUALKEYBOARDSTRATEGY_H kylin-virtual-keyboard/src/messagehandler.cpp0000664000175000017500000000615215160532550020373 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2025.All rights reserved. * * 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 "messagehandler.h" #include #include #include MessageHandler::MessageHandler(QObject *parent) : QObject(parent) { registerCommand("loglevel", [this](const QStringList &args) { return handleLogLevel(args); }); } void MessageHandler::registerCommand( const QString &command, std::function handler) { commandHandlers[command] = handler; } void MessageHandler::processMessage(const QString &rawMessage, ResultCallback callback) { QStringList parts = rawMessage.split(' ', Qt::SkipEmptyParts); if (parts.isEmpty()) { QString error = "Empty message received"; KVKBD_WARN(error.toStdString()); if (callback) callback(error); return; } QString command = parts.first().toLower(); QStringList args = parts.mid(1); if (commandHandlers.contains(command)) { try { QString result = commandHandlers[command](args); if (callback) { callback(result); } } catch (const std::exception &e) { QString error = QString("Error processing command '%1': %2") .arg(command) .arg(e.what()); KVKBD_ERROR(error.toStdString()); if (callback) callback(error); } } else { QString error = QString("Unknown command: %1").arg(command); KVKBD_WARN(error.toStdString()); if (callback) callback(error); } } QString MessageHandler::handleLogLevel(const QStringList &args) const { if (args.isEmpty()) { return "log-level command requires a level argument"; } QString level = args.first().toLower(); QString result; if (level == "debug") { spdlog::set_level(spdlog::level::debug); result = "Log level set to DEBUG"; } else if (level == "info") { spdlog::set_level(spdlog::level::info); result = "Log level set to INFO"; } else if (level == "warn") { spdlog::set_level(spdlog::level::warn); result = "Log level set to WARN"; } else if (level == "error") { spdlog::set_level(spdlog::level::err); result = "Log level set to ERROR"; } else { result = QString("Invalid log level: %1").arg(level); } return result; } kylin-virtual-keyboard/src/screenmanager.h0000664000175000017500000000235015160532634017667 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 SCREENMANAGER_H #define SCREENMANAGER_H #include #include #include #include class ScreenManager { public: ScreenManager() = default; ~ScreenManager() = default; static QRect getPrimaryScreenGeometry(); static QSize getPrimaryScreenSize(); public: template static void screenRemoved(Func&& callback) { QObject::connect( qApp, &QGuiApplication::screenRemoved, std::forward(callback) ); } }; #endif // SCREENMANAGER_H kylin-virtual-keyboard/src/screenmanager.cpp0000664000175000017500000000171415160532634020225 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 "screenmanager.h" // static QRect ScreenManager::getPrimaryScreenGeometry() { return QGuiApplication::primaryScreen()->geometry(); } // static QSize ScreenManager::getPrimaryScreenSize() { return getPrimaryScreenGeometry().size(); } kylin-virtual-keyboard/src/animation/0000775000175000017500000000000015160532634016663 5ustar fengfengkylin-virtual-keyboard/src/animation/disabledanimator.h0000664000175000017500000000223715160532550022337 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 DISABLEDANIMATOR_H #define DISABLEDANIMATOR_H #include "animation/animator.h" class DisabledAnimator : public Animator { Q_OBJECT public: DisabledAnimator(); ~DisabledAnimator() override = default; void playShowAnimation(QWindow *view, const QRect &endGeometry) override; void playHideAnimation(QWindow *view, const QRect &endGeometry) override; void playFlipAnimation(QWindow *view, const QRect &endGeometry) override; }; #endif // DISABLEDANIMATOR_H kylin-virtual-keyboard/src/animation/animationfactory.h0000664000175000017500000000352215160532550022402 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 ANIMATIONFACTORY_H #define ANIMATIONFACTORY_H #include #include #include #include class AnimationFactory { public: struct AnimationInfo { int startY; int endY; float startOpacity = 1.0f; float endOpacity = 1.0f; int duration = 200; }; AnimationFactory() = default; virtual ~AnimationFactory() = default; virtual std::unique_ptr createShowAnimation(QObject *target, const AnimationInfo &animationInfo) = 0; virtual std::unique_ptr createHideAnimation(QObject *target, const AnimationInfo &animationInfo) = 0; virtual std::unique_ptr createFlipAnimation(QObject *target, const AnimationInfo &animationInfo) = 0; protected: static std::unique_ptr createPropertyAnimation(QObject *target, const QByteArray &propertyName, const QVariant &startValue, const QVariant &endValue, int duration); }; #endif // ANIMATIONFACTORY_H kylin-virtual-keyboard/src/animation/floatanimationfactory.h0000664000175000017500000000313315160532634023431 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 FLOATANIMATIONFACTORY_H #define FLOATANIMATIONFACTORY_H #include "animation/animationfactory.h" class FloatAnimationFactory : public AnimationFactory { public: FloatAnimationFactory() = default; ~FloatAnimationFactory() override = default; std::unique_ptr createShowAnimation(QObject *target, const AnimationInfo &animationInfo) override; std::unique_ptr createHideAnimation(QObject *target, const AnimationInfo &animationInfo) override; std::unique_ptr createFlipAnimation(QObject *target, const AnimationInfo &animationInfo) override; private: static std::unique_ptr createYAndOpacityAnimationGroup(QObject *target, const AnimationInfo &animationInfo); }; #endif // FLOATANIMATIONFACTORY_H kylin-virtual-keyboard/src/animation/animationfactory.cpp0000664000175000017500000000233615160532550022737 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "animation/animationfactory.h" #include std::unique_ptr AnimationFactory::createPropertyAnimation( QObject *target, const QByteArray &propertyName, const QVariant &startValue, const QVariant &endValue, int duration) { std::unique_ptr animation( new QPropertyAnimation(target, propertyName)); animation->setStartValue(startValue); animation->setEndValue(endValue); animation->setDuration(duration); return animation; } kylin-virtual-keyboard/src/animation/floatanimationfactory.cpp0000664000175000017500000000447015160532634023771 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "animation/floatanimationfactory.h" #include std::unique_ptr FloatAnimationFactory::createShowAnimation(QObject *target, const AnimationInfo &animationInfo) { return createYAndOpacityAnimationGroup(target, animationInfo); } std::unique_ptr FloatAnimationFactory::createHideAnimation(QObject *target, const AnimationInfo &animationInfo) { return createYAndOpacityAnimationGroup(target, animationInfo); } std::unique_ptr FloatAnimationFactory::createFlipAnimation(QObject *target, const AnimationInfo &animationInfo) { return createPropertyAnimation(target, "y", animationInfo.startY, animationInfo.endY, animationInfo.duration); } std::unique_ptr FloatAnimationFactory::createYAndOpacityAnimationGroup( QObject *target, const AnimationInfo &animationInfo) { std::unique_ptr animationGroup( new QParallelAnimationGroup()); animationGroup->addAnimation( createPropertyAnimation(target, "y", animationInfo.startY, animationInfo.endY, animationInfo.duration) .release()); animationGroup->addAnimation( createPropertyAnimation(target, "opacity", animationInfo.startOpacity, animationInfo.endOpacity, animationInfo.duration) .release()); return animationGroup; } kylin-virtual-keyboard/src/animation/enabledanimator.h0000664000175000017500000000571515160532550022166 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 ENABLEDANIMATOR_H #define ENABLEDANIMATOR_H #include #include "animation/animationfactory.h" #include "animation/animator.h" class EnabledAnimator : public Animator { Q_OBJECT using IsFloatModeCallback = std::function; public: EnabledAnimator(IsFloatModeCallback isFloatModeCallback, std::unique_ptr animationFactory); ~EnabledAnimator() override; void playShowAnimation(QWindow *view, const QRect &endGeometry) override; void playHideAnimation(QWindow *view, const QRect &endGeometry) override; void playFlipAnimation(QWindow *view, const QRect &endGeometry) override; void setAnimationFactory(std::unique_ptr animationFactory); private: bool isFloatMode() const { if (isFloatModeCallback_ == nullptr) { return false; } return isFloatModeCallback_(); } void playAnimation(std::unique_ptr animation); std::unique_ptr createShowAnimation(QWindow *view, const QRect &endGeometry); std::unique_ptr createHideAnimation(QWindow *view, const QRect &endGeometry); std::unique_ptr createFlipAnimation(QWindow *view, const QRect &endGeometry); AnimationFactory::AnimationInfo createShowAnimationInfo(QWindow *view, const QRect &endGeometry); AnimationFactory::AnimationInfo createHideAnimationInfo(QWindow *view, const QRect &endGeometry); AnimationFactory::AnimationInfo createBasicAnimationInfo(QWindow *view, const QRect &endGeometry); AnimationFactory::AnimationInfo createExpansionAnimationInfo(QWindow *view, const QRect &endGeometry); AnimationFactory::AnimationInfo createFloatAnimationInfo(QWindow *view, const QRect &endGeometry, float endOpacity); int calculateAnimationDuration(int startY, int endY, int virtualKeyboardHeight); void connectAnimationFinishedSignal(); private: const int animationDuration_ = 100; IsFloatModeCallback isFloatModeCallback_; std::unique_ptr animation_ = nullptr; std::unique_ptr animationFactory_ = nullptr; }; #endif // ENABLEDANIMATOR_H kylin-virtual-keyboard/src/animation/enabledanimator.cpp0000664000175000017500000001141515160532550022513 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "animation/enabledanimator.h" EnabledAnimator::EnabledAnimator( IsFloatModeCallback isFloatModeCallback, std::unique_ptr animationFactory) : Animator(), isFloatModeCallback_(std::move(isFloatModeCallback)), animationFactory_(std::move(animationFactory)) {} EnabledAnimator::~EnabledAnimator() { animation_.reset(); } void EnabledAnimator::setAnimationFactory( std::unique_ptr animationFactory) { animationFactory_ = std::move(animationFactory); } void EnabledAnimator::playShowAnimation(QWindow *view, const QRect &endGeometry) { view->show(); playAnimation(createShowAnimation(view, endGeometry)); } void EnabledAnimator::playHideAnimation(QWindow *view, const QRect &endGeometry) { playAnimation(createHideAnimation(view, endGeometry)); } void EnabledAnimator::playFlipAnimation(QWindow *view, const QRect &endGeometry) { playAnimation(createFlipAnimation(view, endGeometry)); } void EnabledAnimator::playAnimation( std::unique_ptr animation) { animation_ = std::move(animation); animation_->start(); connectAnimationFinishedSignal(); } std::unique_ptr EnabledAnimator::createShowAnimation(QWindow *view, const QRect &endGeometry) { return animationFactory_->createShowAnimation( view, createShowAnimationInfo(view, endGeometry)); } std::unique_ptr EnabledAnimator::createHideAnimation(QWindow *view, const QRect &endGeometry) { return animationFactory_->createHideAnimation( view, createHideAnimationInfo(view, endGeometry)); } std::unique_ptr EnabledAnimator::createFlipAnimation(QWindow *view, const QRect &endGeometry) { return animationFactory_->createFlipAnimation( view, createBasicAnimationInfo(view, endGeometry)); } AnimationFactory::AnimationInfo EnabledAnimator::createShowAnimationInfo(QWindow *view, const QRect &endGeometry) { if (isFloatMode()) { return createFloatAnimationInfo(view, endGeometry, 1.0f); } else { return createExpansionAnimationInfo(view, endGeometry); } } AnimationFactory::AnimationInfo EnabledAnimator::createHideAnimationInfo(QWindow *view, const QRect &endGeometry) { if (isFloatMode()) { return createFloatAnimationInfo(view, endGeometry, 0.0f); } else { return createExpansionAnimationInfo(view, endGeometry); } } AnimationFactory::AnimationInfo EnabledAnimator::createBasicAnimationInfo(QWindow *view, const QRect &endGeometry) { AnimationFactory::AnimationInfo animationInfo; animationInfo.startY = view->y(); animationInfo.endY = endGeometry.y(); animationInfo.duration = calculateAnimationDuration( animationInfo.startY, animationInfo.endY, view->height()); return animationInfo; } AnimationFactory::AnimationInfo EnabledAnimator::createExpansionAnimationInfo(QWindow *view, const QRect &endGeometry) { return createBasicAnimationInfo(view, endGeometry); } AnimationFactory::AnimationInfo EnabledAnimator::createFloatAnimationInfo( QWindow *view, const QRect &endGeometry, float endOpacity) { AnimationFactory::AnimationInfo animationInfo = createBasicAnimationInfo(view, endGeometry); animationInfo.startOpacity = view->opacity(); animationInfo.endOpacity = endOpacity; return animationInfo; } int EnabledAnimator::calculateAnimationDuration(int startY, int endY, int virtualKeyboardHeight) { auto factor = static_cast(std::abs(endY - startY)) / virtualKeyboardHeight; return static_cast(factor * animationDuration_); } void EnabledAnimator::connectAnimationFinishedSignal() { connect(animation_.get(), &QAbstractAnimation::finished, this, &Animator::animationFinished); } kylin-virtual-keyboard/src/animation/animator.h0000664000175000017500000000231215160532550020641 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 ANIMATOR_H #define ANIMATOR_H #include #include #include class Animator : public QObject { Q_OBJECT public: Animator() = default; virtual ~Animator() override = default; virtual void playShowAnimation(QWindow *view, const QRect &endGeometry) = 0; virtual void playHideAnimation(QWindow *view, const QRect &endGeometry) = 0; virtual void playFlipAnimation(QWindow *view, const QRect &endGeometry) = 0; signals: void animationFinished(); }; #endif // ANIMATOR_H kylin-virtual-keyboard/src/animation/expansionanimationfactory.h0000664000175000017500000000311115160532634024324 0ustar fengfeng/* * Copyright 2023 KylinSoft Co., Ltd. * * 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 EXPANSIONANIMATIONFACTORY_H #define EXPANSIONANIMATIONFACTORY_H #include "animation/animationfactory.h" class ExpansionAnimationFactory : public AnimationFactory { public: explicit ExpansionAnimationFactory() = default; ~ExpansionAnimationFactory() override = default; std::unique_ptr createShowAnimation(QObject *target, const AnimationInfo &animationInfo) override; std::unique_ptr createHideAnimation(QObject *target, const AnimationInfo &animationInfo) override; std::unique_ptr createFlipAnimation(QObject *target, const AnimationInfo &animationInfo) override; private: static std::unique_ptr createYAnimation(QObject *target, const AnimationInfo &animationInfo); }; #endif // EXPANSIONANIMATIONFACTORY_H kylin-virtual-keyboard/src/animation/disabledanimator.cpp0000664000175000017500000000254115160532634022673 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "animation/disabledanimator.h" DisabledAnimator::DisabledAnimator() : Animator() {} void DisabledAnimator::playShowAnimation(QWindow *view, const QRect &endGeometry) { view->setGeometry(endGeometry); view->show(); emit animationFinished(); } void DisabledAnimator::playHideAnimation(QWindow *view, const QRect &endGeometry) { emit animationFinished(); } void DisabledAnimator::playFlipAnimation(QWindow *view, const QRect &endGeometry) { view->setGeometry(endGeometry); emit animationFinished(); } kylin-virtual-keyboard/src/animation/expansionanimationfactory.cpp0000664000175000017500000000316715160532634024672 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 "animation/expansionanimationfactory.h" std::unique_ptr ExpansionAnimationFactory::createShowAnimation( QObject *target, const AnimationInfo &animationInfo) { return createYAnimation(target, animationInfo); } std::unique_ptr ExpansionAnimationFactory::createHideAnimation( QObject *target, const AnimationInfo &animationInfo) { return createYAnimation(target, animationInfo); } std::unique_ptr ExpansionAnimationFactory::createFlipAnimation( QObject *target, const AnimationInfo &animationInfo) { return createYAnimation(target, animationInfo); } std::unique_ptr ExpansionAnimationFactory::createYAnimation( QObject *target, const AnimationInfo &animationInfo) { return createPropertyAnimation(target, "y", animationInfo.startY, animationInfo.endY, animationInfo.duration); } kylin-virtual-keyboard/.clang-format0000664000175000017500000000675315160532550016500 0ustar fengfeng--- Language: Cpp # BasedOnStyle: LLVM AccessModifierOffset: -4 ConstructorInitializerIndentWidth: 4 AlignEscapedNewlinesLeft: false AlignTrailingComments: true AllowAllParametersOfDeclarationOnNextLine: true AllowShortBlocksOnASingleLine: false AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false AllowShortFunctionsOnASingleLine: All AlwaysBreakTemplateDeclarations: true AlwaysBreakBeforeMultilineStrings: false BreakBeforeBinaryOperators: false BreakBeforeTernaryOperators: true BreakConstructorInitializersBeforeComma: false BinPackParameters: true ColumnLimit: 80 ConstructorInitializerAllOnOneLineOrOnePerLine: false DerivePointerAlignment: false ExperimentalAutoDetectBinPacking: false IndentCaseLabels: false IndentWrappedFunctionNames: false IndentFunctionDeclarationAfterType: false MaxEmptyLinesToKeep: 1 KeepEmptyLinesAtTheStartOfBlocks: true NamespaceIndentation: None ObjCSpaceAfterProperty: false ObjCSpaceBeforeProtocolList: true PenaltyBreakBeforeFirstCallParameter: 19 PenaltyBreakComment: 300 PenaltyBreakString: 1000 PenaltyBreakFirstLessLess: 120 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 60 PointerAlignment: Right SpacesBeforeTrailingComments: 1 Cpp11BracedListStyle: true Standard: Cpp11 IndentWidth: 4 TabWidth: 4 UseTab: Never BreakBeforeBraces: Attach SpacesInParentheses: false SpacesInAngles: false SpaceInEmptyParentheses: false SpacesInCStyleCastParentheses: false SpacesInContainerLiterals: true SpaceBeforeAssignmentOperators: true ContinuationIndentWidth: 4 CommentPragmas: '^ IWYU pragma:' ForEachMacros: [ Q_FOREACH, BOOST_FOREACH ] SpaceBeforeParens: ControlStatements DisableFormat: false SortIncludes: true IncludeCategories: # C system headers. - Regex: '^[<"](aio|arpa/inet|assert|complex|cpio|ctype|curses|dirent|dlfcn|errno|fcntl|fenv|float|fmtmsg|fnmatch|ftw|glob|grp|iconv|inttypes|iso646|langinfo|libgen|limits|locale|math|monetary|mqueue|ndbm|netdb|net/if|netinet/in|netinet/tcp|nl_types|poll|pthread|pwd|regex|sched|search|semaphore|setjmp|signal|spawn|stdalign|stdarg|stdatomic|stdbool|stddef|stdint|stdio|stdlib|stdnoreturn|string|strings|stropts|sys/ipc|syslog|sys/mman|sys/msg|sys/resource|sys/select|sys/sem|sys/shm|sys/socket|sys/stat|sys/statvfs|sys/time|sys/times|sys/types|sys/uio|sys/un|sys/utsname|sys/wait|tar|term|termios|tgmath|threads|time|trace|uchar|ulimit|uncntrl|unistd|utime|utmpx|wchar|wctype|wordexp)\.h[">]$' Priority: 20 # C++ system headers (as of C++17). - Regex: '^[<"](algorithm|any|array|atomic|bitset|cassert|ccomplex|cctype|cerrno|cfenv|cfloat|charconv|chrono|cinttypes|ciso646|climits|clocale|cmath|codecvt|complex|condition_variable|csetjmp|csignal|cstdalign|cstdarg|cstdbool|cstddef|cstdint|cstdio|cstdlib|cstring|ctgmath|ctime|cuchar|cwchar|cwctype|deque|exception|execution|filesystem|forward_list|fstream|functional|future|initializer_list|iomanip|ios|iosfwd|iostream|istream|iterator|limits|list|locale|map|memory|memory_resource|mutex|new|numeric|optional|ostream|queue|random|ratio|regex|scoped_allocator|set|shared_mutex|sstream|stack|stdexcept|streambuf|string|string_view|strstream|system_error|thread|tuple|type_traits|typeindex|typeinfo|unordered_map|unordered_set|utility|valarray|variant|vector)[">]$' Priority: 30 # Other libraries' h files (with angles). - Regex: '^<' Priority: 40 # Your project's h files. - Regex: '^[<"]fcitx' Priority: 45 # Other libraries' h files (with quotes). - Regex: '^"' Priority: 50 ... kylin-virtual-keyboard/translations/0000775000175000017500000000000015160532634016636 5ustar fengfengkylin-virtual-keyboard/translations/translation_kk.qm0000664000175000017500000000000015160532634022206 0ustar fengfengkylin-virtual-keyboard/translations/translation.ts0000664000175000017500000000361415160532634021550 0ustar fengfeng FloatButton Click to show virtual keyboard Click to show virtual keyboard HideButton close close PlacementModeButton Floating Mode Floating Mode Docking Mode Docking Mode VirtualKeyboardEntryManager Disable the float button Disable the float ball Enable the float button Enable the float ball VirtualKeyboardTrayIcon kylin-virtual-keyboard Kylin Virtual Keyboard kylin-virtual-keyboard/translations/translation_en.ts0000664000175000017500000000361715160532634022235 0ustar fengfeng FloatButton Click to show virtual keyboard Click to show virtual keyboard HideButton close close PlacementModeButton Floating Mode Floating Mode Docking Mode Docking Mode VirtualKeyboardEntryManager Disable the float button Disable the float ball Enable the float button Enable the float ball VirtualKeyboardTrayIcon kylin-virtual-keyboard Kylin Virtual Keyboard kylin-virtual-keyboard/translations/translation_ky.qm0000664000175000017500000000000015160532634022224 0ustar fengfengkylin-virtual-keyboard/translations/translation_mn.qm0000664000175000017500000000151015160532634022222 0ustar fengfeng FloatButton Click to show virtual keyboard 顯示虛擬鍵盤 HideButton close 關閉 PlacementModeButton Floating Mode 懸浮狀態 Docking Mode 貼邊狀態 VirtualKeyboardEntryManager Disable the float button 禁用鍵盤懸浮球 Enable the float button 啟用鍵盤懸浮球 VirtualKeyboardTrayIcon kylin-virtual-keyboard 麒麟虛擬鍵盤 kylin-virtual-keyboard/translations/translation_kk.ts0000664000175000017500000000410115160532634022225 0ustar fengfeng FloatButton Click to show virtual keyboard جاساندى كىنوپكا تاقتاسٸن كورسەتۋ ٷشٸن تالدا HideButton close جابۋ PlacementModeButton Floating Mode قالقىما بەينە Docking Mode جالعاۋ كۇيى VirtualKeyboardEntryManager Disable the float button قالقىما كىنوپكاسىن كۇشكە يە ەمەس ەتۋ Enable the float button قالقىما كىنوپكاسىن قوزعالتۋ VirtualKeyboardTrayIcon kylin-virtual-keyboard kylin- جاساندى- كىنوپكا تاقتاسى kylin-virtual-keyboard/translations/translation_ky.ts0000664000175000017500000000414715160532634022255 0ustar fengfeng FloatButton Click to show virtual keyboard جورۇما كۇنۇپكا تاقتاسىن كۅرسۅتۉۉ ۉچۉن چەگىڭ HideButton close بەكىتىش PlacementModeButton Floating Mode قالقىما ابالى Docking Mode تۇتاشتىرۇۇ ابالى VirtualKeyboardEntryManager Disable the float button قالقىما كۇنۇپكاسىن ەسەپ ەمەس جاسوو ،اتقارۇۇ Enable the float button قالقىما كۇنۇپكاسىن قوزعوتۇۇ VirtualKeyboardTrayIcon kylin-virtual-keyboard kylin- جورۇما- كۇنۇپكا تاقتاسى kylin-virtual-keyboard/translations/translation_zh_CN.ts0000664000175000017500000000357615160532634022640 0ustar fengfeng FloatButton Click to show virtual keyboard 显示虚拟键盘 HideButton close 关闭 PlacementModeButton Floating Mode 悬浮状态 Docking Mode 贴边状态 VirtualKeyboardEntryManager Disable the float button 禁用键盘悬浮球 Enable the float button 启用键盘悬浮球 VirtualKeyboardTrayIcon kylin-virtual-keyboard 麒麟虚拟键盘 kylin-virtual-keyboard/translations/translation_en.qm0000664000175000017500000000135715160532634022223 0ustar fengfeng FloatButton Click to show virtual keyboard ᠬᠡᠢᠰᠪᠦᠷᠢ ᠳᠠᠷᠤᠭᠤᠯ ᠢ᠋ ᠢᠯᠡᠷᠡᠬᠦᠯᠬᠦ HideButton close ᠬᠠᠭᠠᠬᠤ PlacementModeButton Floating Mode ᠬᠥᠪᠥᠮᠡᠯ ᠪᠠᠢᠳᠠᠯ Docking Mode ᠬᠠᠵᠠᠭᠤ ᠳ᠋ᠤ᠌ ᠨᠢ ᠨᠠᠭᠠᠬᠤ ᠪᠠᠢᠳᠠᠯ VirtualKeyboardEntryManager Disable the float button ᠳᠠᠷᠤᠭᠤᠯ ᠤ᠋ᠨ ᠬᠥᠪᠥᠮᠡᠯ ᠪᠥᠮᠪᠥᠭᠡᠯᠢᠭ ᠢ᠋ ᠴᠠᠭᠠᠵᠠᠯᠠᠬᠤ Enable the float button ᠳᠠᠷᠤᠭᠤᠯ ᠤ᠋ᠨ ᠬᠥᠪᠥᠮᠡᠯ ᠪᠦᠮᠪᠦᠬᠡᠯᠢᠭ ᠢ᠋ ᠡᠬᠢᠯᠡᠬᠦᠯᠬᠦ VirtualKeyboardTrayIcon kylin-virtual-keyboard ᠴᠢ ᠯᠢᠨ ᠬᠡᠢᠰᠪᠦᠷᠢ ᠳᠠᠷᠤᠭᠤᠯ kylin-virtual-keyboard/translations/translation_ug.qm0000664000175000017500000000000015160532634022214 0ustar fengfengkylin-virtual-keyboard/translations/translation_bo_CN.ts0000664000175000017500000000440715160532634022611 0ustar fengfeng FloatButton Click to show virtual keyboard རྟོག་བཟོའི་མཐེབ་གཞོང་མངོན་པ། HideButton close ཁ་རྒྱག PlacementModeButton Floating Mode དཔྱང་འཕྱོའི་རྣམ་པ Docking Mode མཐའ་སྦྱར་རྣམ་པ VirtualKeyboardEntryManager Disable the float button མཐེབ་གཞོང་དཔྱང་འཕྱོའི་ལྒང་བུ་སྤྱོད་འགོག Enable the float button མཐེབ་གཞོང་དཔྱང་འཕྱོའི་ལྒང་བུ་སྤྱོད་པ VirtualKeyboardTrayIcon kylin-virtual-keyboard ཆི་ལིན་རྟོག་བཟོའི་མཐེབ་གཞོང kylin-virtual-keyboard/translations/translation_ug.ts0000664000175000017500000000412115160532634022235 0ustar fengfeng FloatButton Click to show virtual keyboard مەۋھۇم كۇنۇپكا تاختىسىنى كۆرسىتىش ئۈچۈن چېكىڭ HideButton close ياپ PlacementModeButton Floating Mode لەيلىمە ھالەت Docking Mode تۇتاشتۇرۇش ھالىتى VirtualKeyboardEntryManager Disable the float button لەيلىمە كۇنۇپكىسىنى ئىناۋەتسىز قىلىش Enable the float button لەيلىمە كۇنۇپكىسىنى قوزغىتىش VirtualKeyboardTrayIcon kylin-virtual-keyboard kylin- مەۋھۇم- كۇنۇپكا تاختىسى kylin-virtual-keyboard/translations/translation.qm0000664000175000017500000000135715160532634021541 0ustar fengfengy:Zbߕ.vClick to show virtual keyboard FloatButtonQsclose HideButton4r` Docking ModePlacementModeButton`mnr` Floating ModePlacementModeButtonyu(.v`mntDisable the float buttonVirtualKeyboardEntryManagerT/u(.v`mntEnable the float buttonVirtualKeyboardEntryManager Zbߕ.vkylin-virtual-keyboardVirtualKeyboardTrayIconkylin-virtual-keyboard/LICENSE0000664000175000017500000001721015160532550015120 0ustar fengfeng GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. kylin-virtual-keyboard/README.md0000664000175000017500000000262215160532550015373 0ustar fengfeng# Kylin Virtual Keyboard ## Introduction In order to solve the problem of the lack of easy-to-use virtual keyboard input methods on Linux systems, the openKylin community InputMethod SIG and the Fcitx community work closely together. At the end of 2022, Fcitx5 support for virtual keyboards was realized for the first time, which solved the problem that the Fcitx5 input method framework could not support virtual keyboard input, making it possible to develop virtual keyboard input methods based on Fcitx5! ## Build and compile 1. Download the dependency package ``` sudo apt install cmake libkf5windowsystem-dev qtdeclarative5-dev libfcitx5-qt-dev qtbase5-dev qml-module-qtquick-controls2 libgsettings-qt-dev pkg-config qtquickcontrols2-5-dev libfcitx5core-dev ```` 2. Build the project ``` mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr make sudo make install ``` The first install needs to be executed in order to update the scheme: sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ ## How to use 1. Click the tray icon to wake up the Kylin Virtual Keyboard 2. Click the hover button to wake up the Kylin Virtual Keyboard ![Screenshot of Kylin Virtual Keyboard](./assert/kylin-virtual-keyboard.png) ## Thanks Thanks to Fcitx author Wengxt for his guidance on the development of Kylin Virtual Keyboard! Thank you to all the developers who participated in the Kylin Virtual Keyboard project!kylin-virtual-keyboard/img/0000775000175000017500000000000015160532634014671 5ustar fengfengkylin-virtual-keyboard/img/down.svg0000664000175000017500000000032415160532634016360 0ustar fengfeng kylin-virtual-keyboard/img/floatbutton_default.qrc0000664000175000017500000000004415160532550021440 0ustar fengfeng kylin-virtual-keyboard/img/super_logo_clicked.svg0000664000175000017500000000402515160532634021247 0ustar fengfengkylin-virtual-keyboard/img/downfloat.svg0000664000175000017500000000164315160532634017413 0ustar fengfeng kylin-virtual-keyboard/img/close_pressed.svg0000664000175000017500000000117115160532634020244 0ustar fengfeng kylin-virtual-keyboard/img/enter.svg0000664000175000017500000000053015160532634016525 0ustar fengfeng kylin-virtual-keyboard/img/disablefloatbutton.svg0000664000175000017500000000073415160532550021300 0ustar fengfeng kylin-virtual-keyboard/img/right.svg0000664000175000017500000000032415160532634016526 0ustar fengfeng kylin-virtual-keyboard/img/floatbuttonhovered.svg0000664000175000017500000001267715160532634021345 0ustar fengfeng kylin-virtual-keyboard/img/backspace.svg0000664000175000017500000000124415160532634017327 0ustar fengfeng kylin-virtual-keyboard/img/extend.svg0000664000175000017500000000061515160532550016700 0ustar fengfeng kylin-virtual-keyboard/img/enablefloatbutton.svg0000664000175000017500000000073715160532550021126 0ustar fengfeng kylin-virtual-keyboard/img/upfloat.svg0000664000175000017500000000165015160532634017066 0ustar fengfeng kylin-virtual-keyboard/img/up.svg0000664000175000017500000000032515160532634016036 0ustar fengfeng kylin-virtual-keyboard/img/super_logo.svg0000664000175000017500000000402515160532634017571 0ustar fengfengkylin-virtual-keyboard/img/floatbuttondefault.svg0000664000175000017500000001272715160532634021331 0ustar fengfeng kylin-virtual-keyboard/img/close.svg0000664000175000017500000000117315160532634016521 0ustar fengfeng kylin-virtual-keyboard/img/floatbuttonpressed.svg0000664000175000017500000001267715160532634021356 0ustar fengfeng kylin-virtual-keyboard/img/space.svg0000664000175000017500000000072615160532634016512 0ustar fengfeng kylin-virtual-keyboard/img/left.svg0000664000175000017500000000032515160532634016344 0ustar fengfeng kylin-virtual-keyboard/man/0000775000175000017500000000000015160532550014665 5ustar fengfengkylin-virtual-keyboard/man/kylin-virtual-keyboard-xwayland.10000664000175000017500000000105415160532550023204 0ustar fengfeng.\" Man Page for kylin-virtual-keyboard-xwayland .TH kylin-virtual-keyboard-xwayland 1 "26 July 2023" .SH "NAME" kylin-virtual-keyboard-xwayland \- The virtual keyboard based on fcitx5. .SH "SYNOPSIS" .B kylin-virtual-keyboard-xwayland .SH "DESCRIPTION" Start Virtual keyboard in different Desktop environment. .SH "BUGS" .SS Should you encounter any bugs, they may be reported at: https://gitee.com/openkylin/kylin-virtual-keyboard/issues .SH "AUTHORS" .SS This Manual Page has been written for the InputMethod team by: hanteng (2023)kylin-virtual-keyboard/man/kylin-virtual-keyboard.10000664000175000017500000000076515160532550021367 0ustar fengfeng.\" Man Page for kylin-virtual-keyboard .TH kylin-virtual-keyboard 1 "26 July 2023" .SH "NAME" kylin-virtual-keyboard \- The virtual keyboard based on fcitx5. .SH "SYNOPSIS" .B kylin-virtual-keyboard .SH "DESCRIPTION" The virtual keyboard based on fcitx5. .SH "BUGS" .SS Should you encounter any bugs, they may be reported at: https://gitee.com/openkylin/kylin-virtual-keyboard/issues .SH "AUTHORS" .SS This Manual Page has been written for the InputMethod team by: hanteng (2023)kylin-virtual-keyboard/floatbutton.qrc0000664000175000017500000000051715160532634017170 0ustar fengfeng img/enablefloatbutton.svg img/disablefloatbutton.svg img/floatbuttondefault.svg img/floatbuttonpressed.svg img/floatbuttonhovered.svg kylin-virtual-keyboard/assert/0000775000175000017500000000000015160532634015416 5ustar fengfengkylin-virtual-keyboard/assert/kylin-virtual-keyboard.png0000664000175000017500000617234415160532634022555 0ustar fengfengPNG  IHDR b pHYs+ IDATx{%G]^;3d&rH䐍\BlPz=z~DE'>>x䑭"׃>=( D+L&s:WUWWuwuC]kUWW~nWθ c(5>:|x&yFiUtU0]j}KIO"$YrU/q)"TjNķ~O,ucv[E8+nWZ?ԃiyjZ k2CmT0m;pX{GJr*ӏN쇻FD[\<胔@V;~ׇn1?6 9e_dV@_ U~ $:}]Hi[-o,;,,_Ϣ`1:Ɯ'W@%Cʥ +hzt̎2w=k}fu#)p+8 cLFMx+=@N$V}p -}z :~1è{n,+s`#ivPڸzi<с 2 ht4s@]4E?K^o(@@ =@Rb?W1lu'7 x>Nrh kSmI[h- 6]mS4.@!]4 Pr"jI_?ɩP4+`٬l *@zHKVEƕi^ Oy+Ur(W@* `>p[\!~N߀ '3*^ :J, ysh׻h#%{jؽNseUܶo/;(i{|uYU탾N~}fVMS|z\]aK<˄k&y_4u$:3KZKjࡾ5/Ȥ'*Og?b~B{@Tnlھż8d].%QSC@ ~<x[N,``Ud*PHTS^m(:@KqlNp˴MqA muL҂ q@}Ƶߎ~I)(3Q~W< g:@jCe]in603}"v^`Euc-3]t=B6kHWVnSNNWNfAildqC3M0.qfT_^K!RGS؀1} jQH'IT;@;S<I%S{r p]#eS /hݥz2lC[Twe=M_M۾qBm XQ?T jjK-\(s\B &H"?LJ_tُNghH3iEřT՘h,f!~ @;+6mmmۤ-BWU'+\Vƫ/z6uzB}9&/F|GeM4n/7V}v PDZɆ]N/.Q8WP'-oTV(Ƭh ~Y''tXU1Ė: h>p 4[]R,]/&6 If0tabj f}sYopƫf+qTr1FA4R|^Dj0$Nclvk?ϣ"%Х)pL diMbggmWײ~K_QWY7Uoip M+hn~e,`CWgA<h#f`XS]*c 8^"-Z>-ձl8iC%3׆09OeZճ5N] R"9Q *\ O (YC SU>.YaZĉe+(~P*Oj(Қ F_ǘuHz C,}Ҡk2݃?"Y+ƪ$HafV-_t] m~LRf\xQ&|8]< Ru󬍶%R>R&9r)S*4~rs]NiAS3Of NU7 V ʇP@ -ƆBP K{>vhڗ 6H< d uX[brh1hW;էԱsNݛ1ʒ魮r~_ jw. Nyی "M~.2?p.Iz`"0m]u!|Alrc+P )\ZwH^.^!!x'H8M\J8Dto7BlKͧ0hG@uOHrRLJv)YQ& Wߦ(xpl1M`7EQ s@@]bgnmcO9dp Wnh>h/rjJ-Dsj)BXDcOFxzv@S F0*X™Xh^XLhzXcJׯESB p6gFoiW4e*ۅi*Q4>, >^"|Ǧ$ ]5(z ^ ZZ_b焩6.⪽-y7ߠUE* R{{Fw|˳Hb4=?܊WJd;Wru BL9.0ae<;>f0s`C{YQH7u0۱U vLq[K7AjWl j =Wjqn<f]SmVӷe1xįn56̬ǸEʼ ֎)}>,GAy5юv\ficE;Լq.s 𬈱75Bhua9ipLShBY.ՎfxT(<'eZ?>=v_jzgW30ܦV>fU˿ȉ"qƭ4"ܙ,9%'΍Sd=JJ8V#Q مPTO2`JÔ ("F.!=SMXJTz NVظ$-R8* ץrOTZ᷽CI}m"oI"cKT+HhkY%hօʴmggRo/0c%HYtKWϖCo' ^{]~ B/P[ T2[JP ́qu1.\us䈱v8kFi(X}N[-~uNeFfft-wW%i3;/%Fi.1^&?b쾏?gnl|[ځ0#܌ى:F..xo*m9WtdH&@;'m4NdIМsssce+~! ,'>V qY қ᎝H[<hqf4[W X{'ڈ X;@ &3:#yb$0xcpğMs9d<^mlLFq'K p0sAQ\ܺ/' .a;Ov|z;AQdpu| Ky.,ZwX K_QO++g;=~8-d gac󗖗0* +;JPI:XP>BS]04%uAOP=rBAfKq FEt|;qnsgڴܲS]y:j):'o4|ᘾޖ LwZ9ؽNYVh>SW[ s3'9磵GN3wsw#iPs_p!`'$@` H)&<#vom 9Fmd6(pe ^UZޢ  WI7Md)W>sǫmF0ՆRbҲ~\Վ? rrlGؔ7e՚o?©#h#qeԉt GpL6INg3r.~qA0ֲղ0j>U'7ejp0@LE£tse[o|X_@iT[UENtMg}E: ( ZAzPlJ1?lW|,aSe-h%*<hu8c$͜$ֽheZ>ڔV? w36Z=P' NhjЇڐ]ڥW|cK׌" v=>UԼ<3b"Iܛh 7bDA6PY% :LnEjSiUVĦ2}BVGVʌdv,%ɑ45;14Rߙm:{27+k], _rmjx)Ռ_r͝Vp>h[cj9TG:V?k,TZ->߹ڬ蹀VFӬC[f`" lh,wOa>OM̃6RDl7a˧%Y+o)=L*94.PKC? ѓaw+Ze m A϶ V yA2՝ȯi"bcs"mI';BC+Gksv:mޛsͷ#hc3p݊4Iq8P_.$Ȁ`g(1[^zRPlwKR8{*UK{\:HCW5t;x]4Qx-C<؛W-e~ ]*ZJvy:y0^\{-[8Xyjg]iZ0"u']24u'l)w Lsa.4J˧x7AOfMzFh;ry[/TӅ.“dxɖa jT$Jtmv˿:ŹZH/"9j4Xf-QeT+s>54uݲ2mj2ޟMim]*r4E9ӟK<w]&W*-oώ!Mq3j63c-3ðߒ2AJF\-KrQ퓤 SAd]T[@/ri66e"EiGE%+afdr^ָ0h#~ಛ'x5t@RɔHzX}Xsd{-m}4`ĸet"<A6¶h:!N@?i0EvzT8ԛ#hKo=L]秼molB@qrɫī{LOH;0,W2\nS")؊hݘw"..ꩣ*=PP& S+lлQ!xVt]p2'7輁]{e`@g97!\];fZj +rh3b(v0 7o_z)kݶR57{hm!5: `@;ܣ@~@IԆwa7ve ult{)qH~(A*~iKM(H;G}" IDAT5 /o>T~I|Z*.Q/:oeg%W^r=ve]8>"].vuZեTE1UpI+]>Ђ~#v RFk\@ZrͪMv#)<:u M^)P'Nj{yu?v\cZUWc=lax+9 j}f.=:)﹬zGG"P@EZKVm'NND.IZNُxtjF/.c+UȜ[6TwU`\.4t'[ȮpҺSs6?_iYlK%ZzZi05p(AiyD=H-gnKP襥(5kC-US*%) pο8WRr'׹Lmz">TYCu䜾~Ǵ_h GM `@a g)j cKt^4{;|gyǘ@7@u_:5MO0 sC\Ɋl^ֻy6J'gyGYGgRVIHziMv^1Tetm$}[W[:;ՠ!8?G֊>GPS l+j@ilwNC/2Ruqq$d](TNx ihf P1,wě5Dx(mPqHto8a雋KmAKvBS{mY %^z(u^@4R5W$pL0M˛NcuȽFKW΢<: V궴D].Օs#1rf&ڐn0V́&{y`O}\` ʀr įi#* ^=6'X2i(^7B&}GN[~g%0޼}=pxٴ#ۂ_L|N1v Z9/ӉY N2K'Cxx<,׵H+ ܲ<:.l%+ZMC:Q5Q/pЕmqSws)V:0 a8.ϩJtiUAdՅ;.p>`M\M..7UYrލec!瀆}}˲5Gu?PK[W w%SD~, ~ݣSSsTxc.wpi@K$==KY0ɿNcD9Ɨgfgw5lp4 L68 :zQf~mTn}sϾZsߨ,jFD1Ƃ0%"n:HNDѐh BXZEN@%؀A=1=fB>x_ `aEacGD(")b*:0u.P6#U[8Lh5HY@?gSmsCi |{ucݪ=z]([O7#G@hA`ԉ0vEɷf쯌  ;9՟8BM'@yY-h4 $3tҳP s2@i  91N >eɕMP{v.ϳw\f s58.7n%-}+7\j2Yo-~hZѬNԥ%w[!i9cy/(7J<^7e;RGF > b?U(8*%\zK~fVˍF(zng'VEdq@ց֑۷˱iՇZX=N& A`Kxx6捆5E"8i|utl+ 9 @0m ܢ8[dY 'ҿô6A4[ܵ;xã'xdYs1;Ӟ||y_|P (X?L7JӥA #F4! HГ;P b' ťq#g=K9x%+ 53aFAGU8UfQPT!h;@'AѱEV \3 @@uD͞<b(-%|'cEʎI񯸡!}K6tO1Ν&:ʤ[_ӭ7*ym9'ǎKG=~3ƒlܛ+eť];v,ătGh[_iMz"-X|3صV~*F UI嘪ΐuMK̔{kBn-wF5 rȬU!oy'*GጦMJ ^}Bm1kHYb! h 9\{9\{3뽍PΣhS`U DͅQ|ク] X؀`>?&Ĺzހf ~'0Z+A'K +$ Ym{[2w $(r"s8m18W{T%)O@GG'FW{9+H=@EX reM̹hk)l',ʨӀg1PNcɞ9,nf:4>'9>6Ww PZR߶ m3S}@+@`v=AOBz/^QbWE AY5HR>zɭƫg$ fϑ7"~E@fղ-۠'P&*~VB]/b!!)ܦ1&6v9-1U8ڜѹ팩zҕR0ןۂmDƓ dbt;l)Ցg DĘ{B;S1g>rSC#rva3@1 0]T4d^z@A t uC[3o^` R`D]v8H%w3p.P Pn:yǜ8۲Ȳ qhɘ'4'85LcS;n1 $ba0$8'Xh2%&8N' sΔf`Cȥ8ԇ*F{+P.8o jL̕9g<G7MA8D ("qx2m*cvL&0aE q>hNa8-0OȖ=8/6wL/xYN}s Z Ҙ7@5Y16wP?]y!aF=_ g/F2IpP4PbJ+XP _EYB,6z&5;sS @_S0)@pޮʗ<#J[Jqrƣ3$D ,ym9c~xz;'OLF]p. ù 8x<Ǐ-,%I6Ʉ4kB4GD,0"Ƃ8tQ`w twi捘vYu LEנS%%NL} Vv4~$\RĄ-JrqZk +("4?#wF*V$xd->78vD<M#\Ҿݭ]ڷ"1 S$Q)W$7CQ:.)*|eT%Ƈ>WrH7=ˑ[(tDnz5u]ѓذ5YclKL $vJsM<gzXN)DX<zFf1 hkD҄ ;8E#7@sx/)=—^qU?7_vs/?oW_^5T_'˞w## iK*n:@6A9 EdUPtp5IPywEDK;(k;c8>ph~N"ApeegXa;<|WcW8LFO=xNsUO}+LyS_cΤhr} m|F{ YK8? ҮGۣO1-]PV\<aU#n5x6a51WыǓx4Z[;8}W>箻O>|;x<^C1__9uL^~wXxȑwwy|޹^|ӧNy G}l}< Y<9}⡻s hcx|G>rx2>|s{0"_ڑ؀ӹg,qO)Iru4--8{MF1R| 'X.AZ&Eq0l1`<λihNPq (G+rgsΜ8zڙkgNG㫧OyՕ}u?odrwWk~ ?6>OhM< h>^Ϭ?ro¿~&xccK`ܢLJe)IɈСPIʳc]4r/$Z: `ι1Lf ٶÉ8'Nd<&Nx|˗}w1d:mL69ǣՓ'N sٻ0|o1׼l8ѯW^ψ1bϸoK //Vtԣ雩/Hġ@zފy,"6'HB~&;yUÛ9|JE95^5w,f! PQ Sٖ IDATI dyԃʯQ E55JL k$6pV%"QC (Z9v{ggd_.@6~pT_Lh d;q,/R1O8YQU"]c3ktߡh'PxNpٚ@Uwk  쳖|cG̭;k>8ěJˌ1_?wϞ߾SO._h;oaZ8M +7 0C @@=L.R8cN L.ػ$J>|_~8(qyn4aHD}J ۽{UyNz;ަ(㘈>ퟣ+/8?/o|O1E! B\Y=fo~@ယ #+` ZPA/?QeH"M7dQ%uU[$9'hZh9VuB0<'1'y<m8ev򗽌s&3|Ν=~bӧN rGÈ(x2'#"1 ɯ[bjx @'Y_ zlӓ G,׎[< C/ҩĿZojL0Pͪg뚏KE $k¯m)*[ N9o~Vӏ.BڿDaUW^խgKCxjZ}XnD-PlkAsEv+8j#Ҋ'p{s cT~& ɓO;dsItj..[ȅN8٠vo6)'+㻗w=Y䜋WPlc/?z]wE/r̳i|`حZU_ob6sz9\@o'" ( (DD1DE9`0siy".,AVϬz.zܡ|?q1be]o}>P y߿=yxܹSgVɩ3hoau01&hcɘ'sxLuP=,ρVf? *%=G3Ig)Ҁx Ƃ`y]#DQFDp~a00'S?w׎C~_]wေ=)]v=|?_v~?Y'? g>\|E?r8-\ 6ku nw8s7wL-s4iR*։DtUWV$2u-k+~{hH 8O\LI_ƾi u'=`~~o>y۱ p%y ?+Ʉ8ĜǿKDړ_{KXA{K_م0Ү/չ;D/1狻 a4`, bL/ 7$Zp rqEȳ1h-O6fצ>{!4%Վ?G6eI"n \c `l 4S y[I/SOɻw9pnA0F, 0Aa7za"z]'\" C/yW=?Å1/|Ɖv88,,.؀zqJQ\kx=/0^OH, _wP̴e? Rͺ| ;С[R=54lX/:y)7b^AR>Ryk3`'ZyI읋ϼR"?}Ï۱,GN']9>~w"ŝA.-,>gsisM8`+u?9/|GFssO񘈞ǟ{yumM|}/sSuEᰛgjގl:'(Pj?eAɏc> /s+˨!En*G[ϓYhxV)E-" @ ey3\eu@ 1>M3d͌}y樛r#ѧ=ޘEyGԍ*mB6vvP#E|tRj@.7Ӓ4pzAP-ɷpz 3Gf\@%]Y[Y_} wsv9k07Db, ùh8$h0Dܻsi}c㟺l§/Dk7 0۱|';{/-!E"X]sg?9|cǎ_~d8{Үs Kw=(=9"oƿ7R>N ȴ Lu"Lp|W.F,*P k+j51aES_z"Zع<Ȃ{׾c'w;\XC" htӭ_X}[~di K ;(ᑕ'>;:th8`]k/wؽs{Q .ǎ=,KD H@%TfQkf F/mas.X8( :t'ƴSExO#"o>x\4#9q۱<aO&kkgN#"pHDxI"F{y" Ðs>OWѩ Ĭ;cFxcVNX[ hni--_\ D4ȓ&8W[Ӯ Z]b鼔XM(6k⪗4NL]Vr1ʔy yY B>۶uW6%ЖC8ӽpbYg9'tƇU t_w[qکv[5juo:o\5of+twVb @52+bʔj 43FV ”\@ h|\A0 ( ߢ("",`s A| 0&DQ<EDp~!c07?aDa4H""6%GssK%Q4 C"[XLv/0@+ Wv-FZGк+a +K9"NZ ߴ["O-[%MɅDD)є{}Q\*zcIW'yKb&l~y} P~(L}cZSqg{^z[E?6妱 U[RFeyY䀯4d#ksO,M {:6-D7)#U_2>qk~|| V\Qqo'xWnvWK怸TL1?+Fhg\d%@գY&'Z3en8.~cQ%]{k$jN<ϒ\BL5"t՗O;4 'i;r&BWn%{ЦLK]7Szm$F6jIkP~4ulYf2_S4 p+ciPX4rC`^Z?/1FvjjP+ҩO3"O7K]]n Jځ7tQiUI_1".Xp'~ 進8gMwս^ZM?ڈ6}6,jr.!^"-O )>J7]址s旼?z~]tI]KxI{Ύ<Y_ۜ7gWHF3McxZx)@c"W˴MyH',f TC,H.(eԴvl`mc.[/ `[;Qvy-i6 rs%8;Ye@X(47ppZN;qv9=XKϥK>B R!ޜ5 { @y8ю÷t ˀfԻ[h:集ɝ.7QB~s\DEԫf趎LMZ3J^mk3@kg.D[0dqN1[䕞Zko\@K.jMw=`]pj&[ r#nAѻ +u.j\,0R6K>M@Uή~ݸla7rq S U6D @uG E\6)'ጵSDO*]Kd߮݋sa_FƽGOةS룦ST7yJ]F\1X|$\]\k8;7B!ms3|ǃܢߑs/>pH҃|ؿ6`POx@}e 5 ca s!>b&㎊Cj쩲U(pfXyeXBgS-&WK/}̂==_)[j?r"` Ջϩo(]>kiz#PMwZsOEFȍgo{'#Y^-!Z.9 \ru-G"]ш 4O9C !isKfƘx[+,Xq^ ae? 81F+Ci\g_@H.>Y|{lڔUAiXV|8y"}4|O +S^Y(}2ubFhKqؾvG`-"Nè+H4z{[:% 2 0h"~ AsIߏ.ٷ$h7ۻ$}_~yax<4B7N<6jUeg{qtA%Gӧ<Țc|Es]^|^բ(WFuد]O! X j_a)'^ ܠV`!.GsEg26aiX~jYVۀ[GJ;v CzOI=ԟdhXch{{Gzm/f[ ƚ IDATdtzqb؀KlFUpj@<*^`BmEMl8t j@^hUn]2аX'_̐TIYf 3DgXW&h#bN@yZF,\-N8kF';:xΐN i81h0a7.~J|`~}6Ș|a/;DY}0iLr%jv[nxԃ͂7-Kviǻy7`jqT2#eĉoqy/}N#q2$7a^"ЕГ p|ßl- E<7&^9ţ`|z̗ةjg^؀TKOL%kAQOXj NF_YV>ڪvKiy칗(l{视`J||3iϕJ3|8 hlaygW\wܱE _\qsssڗ9s瞧<)ǎG>r;vL?~!9?ӧO_zMEM7W_}Q뮻w8p`޽`'N?s=wϞ=wvmzֳr׾v-\tEFÇ`8O3M{-z9%,S*(QbDx?@]F撆|6bM:,Nu>jfS8]˛uWGJo|('EAڅ;GƣɱF|: /RV…󿜈(\9|DȧsG˝o߾_ _ƒ&s]woozϼMob}>qDѣÇ="/]\\;w/ؿ:7|_{Ow}~8y{^W^|Og}ݻGѭj>O~x 78PhwB/xsSGk.E~}{_W 8p-oyK_\W믿xEzы^$oo']wuw}wnap vd2& =yozӛL[9`:Du֍U洫#|كX։%Aͬ}<9*.m ӦI5OJ:=O/_4o˿>0~n?7x[ֻСCW]ug<^xa"qM7MG?w3UW]5Fek^O~~gV򕕕?S?uСO}S7tk^|#<]xǴsЇ>}H21[nllu3zmݶ}oxU𲗽-oy˻n#pA>я^{//䏳>3Lǟ'n;?=- ȑX&8po}+yo~߿U"?7:#p 7p oP8zx~ 79r;|=+[ny _89|'~'o_^^;*/Wt "*6صbvw-*ݭkk ڭk+?Ws <ޛú{[39$y&`D-855uʕxV7nLzM6fbG[k޽M0c~\;F*ˋ[z7o\xqÆ /l޼Y9ٱcbccae8ql#'&&~=999UR… AAŋ&Lhժޔ .F>}ڿ:%DDD>}Zj'փe ƴ>;17z6lgf~7gL/v2۹n<4^ÉL-ꊥ/ѯL*# DVXdћ^U\`X& 3p< ښj\G1{G3v J9'SotLUMwW/d)O(/[X! !$=aVGߤqGlj˛zz9 > 6C.JG6p70P@eLQ>ԯOF"dw()icΐ/z+V?~u֕ ,Z7onܸ˗aÆy{{H$ұ4ܹsƍ۷oaUh[|>_ G޾} 62e NMM]n]HHHPP!ܹsIII˗/Whifj{qz_t)99nݺ͛׷o6nܘfݺu֭S>rI>@T^ܹsݺu3p1ekoe^zpԫWŋz9\p۷Seʔ ӧO/^v;vcS \]]߽{?~дi;vTV=k1 ` J?9衖A#4!I:5/kҾ u1S(Q(T2_*__ip|U|˼yV\ɪNry~?>k֬(NbN]T_mh8߿ټy3縣#G|J &(Q">>~Ŋc ={pH__ mB [nMLL4SNׯ?ydN:u*55〺Yf{uܹG;wl߾CN8WRy攔ݻ_~z^___ׯ7mK,߿'OڴiM3ftBCC+T8~݉'FFFΟ?݇k;m4Hk.39﷮ENfmT56Գzl_W{nC0*UnJZyuo_ r4gGH X S4 GZ @Zr!E,@~tT /p+'1d(Sb6T{ p멄A~M (Ȏ[ b=`VO 3(RfPeHvwsco濐 `NyضF!DˤJ([Rfݪd ]T&ʍsm >)̟?ϟE"Ƣ~ *BV =uvvvuue BN -[<|o߾3fp`ƍ ]rJJʃ8E=zӊŊ3$1TRo߾k׮MIIy+ 4,NNN%>|XlٶmJ,zݻ>WXGFEEƪMwކ$c-hnε U\ʕ+zj֬Y-Z>u-K||abbb?~\jU>ϱaeL2o߾D"ќ9sڶm;k֬ѣGuEZ1k>j(N3f8p`Æ 3fuiii;vPޞ 8pe͛l  h[nݺuZd3vz"pv lb1A/;Ag/Am#ƾagի#U!r1*[fJ8Jcw~ IIIelE"V)+g@p"mKHH(ӧϹs޼ySfͤh\%K3g=z_~qttTfyu_:000::zqqqӧOkiFO6Y^aGX/4ݡC]˗/׫W/_|WDE*D%J(lM8WZڵkݺujjΝ;]|dح[ϟs600pŊDQQQBaѣG3 #j֬9x2e\|ӓ + H؛=G4 \vmwܙ>}X,}vɒ%]]](Jɼ2kȰĻr/oذ!{O>cU %P8bĈ &0 SnݡCr,Yԩȑ#QFq- EQ NB,GFF6lذRJK.mҤ%zbeX5:ca;6`őĎ;jKԙ3g4z! 1[]LӴ\+W4kddɓ'[hÇÇ… ໍ5:rȧO"## *`… $==ƍ?ә3g8#τ_}ݻ0`7n\zرc\~e7C@9s?H̚4u+   8_ Ep"{K1BAq*'}w\y]#C6m+riɎ J"wu7UǨ3S褒  b~|8"" zbe *_R!yiBBBjG-Җ.]'&&D"Zl9bm.ٺu+k IDATkѣ &hK 4:yfxx7ow6m̙3'44̷tӧO/Z(11qʧ]LGDDϓ&MZvmtt4D>|ٺuk۶mtr̙]v;v͛ݺu_ 555,,ӧO;,,lȑg. ! 4vZ\\9VƎ1bƪAA#H:2 _+uDe-N,nɉ7Slcck\Ň 9ki*_}b-јƔ#Bss霾Z-oy}1s1ҕMEt˳|a=i@vL9%b 4f6yV #jHd2ȁaѪc< 20L&={vvʔ)s5`nz\dImyYې!C.\XxqWhѢ:\@xbҥZ2ewhhɓ۵k7y6mxxx%@\\\xxsX˗//Y|*UZpa^ʔ)˦MÜmڴQ.ã|}8kڵkAAAExNNN[l|888[nÇҥ ,H=(9󳙏:VFf h$wc!:ꂢ(G@.MȕHtBuP*M"P(I:C|s(K޿{-cJJ… ˗/?yS+$$H"Wh!Ew:t?prr?~֭Ylz><{EuҥE+VTrmeʔRJF%t199ѣ> ?P(_ٳuܹ5k6lXB͚5S/Yf۷o7nki'OlْSiii.]ڳgϥKƍ׻woŎUBvرq.]TVcǎS-sNrr2իg :>}M6&=0 㘘-[4hNNNPh-[_~͚5{mڴik֬Wu\r r ȪU0Cgi׮A[lYx1DGGGGG'J'N_  - .xpkTqժUԖC" sAL5Q.O_//)EА( //ɏ/!'\ V6pE*TIII۷ט%==}<سgOٲe̙oٲEU"""ڷoߦM%JDGG7i҄wʕ>|B z~ըQaÆ:|  0W^.]b 5&sww޽rD1cԫWO ̞=qСE4ҠAMr\ݛ@C ?~|2txkf=&$$ܻwϐ`  b8z}V.A6# o_+9B~19Ƚ㺟gȮMoko㠢O3=>t[,6V+g"9eLjRAoDJh a;R%R"7noPɳȽ?O,?nݺ'J(#و# ,8i$UÇ6liӦڵkgWAA1]X*]145 Gk8] ܍ju KCJi,\c ` BMͼðty5NͩW@oatbhyC'_6/ @ 4 $chfO !I |y/.1/&21SU.sxqɒ%MTl!? ʡ!  HduX ,CvT~ BT$g<Ƃ {zM8ܟ$4r` f*8B8;Z҈ LEF9PY ToQPֈ[t^Jg+?Ƀ IxB)L/ !R!8zjUinic 8AAAr _ b NAa1Zl-D<އ ,(L?0EY`E6ڧ72M/S!hκ9r o   -Oc [.g͉Hg;fI5PVǪW#@kZQ>mc4$Θ{pk#0L:Ѹ!Rk;(X6a`.0Eg`wXPn4vP Cik{ f `>0r}p6l5z \j!0    q; c=Bήss4yyY hσ "v=O62@﵌L1T#    MQ2A/5P^S+nqnW[AX t]ɚڤFPlmTEYAAAAlur6F]hY-EaO NͷA7*;jr1b txxVF7I O/PFMckcXӀQH}]/!3"1$_cz 8BM(a AAAAUY(Q U ͹,j j[-k魉ŪyDUwCv0:WxIʷ)}!Kz\=#`ƭ\_K談#DY=&kVz+s.ov(ЀUWXo=5Ԫ%}6m(; a{ 9Ɠ+   b4b#Z׹k ؠKw z׽co 9&Id HXIX V_?׷rhiAc5*.U4Tvn]%v܁6PΪ+H4Vz+d.#>pS^(fNqSG\Z,䬨    ch'b FݿQ^Ӽ)ijmM} ILfZ9#v:hp^.&BhcrXXU@AAAr? Heb8wr+,U2ZBMy`y,F6   bճ!."u[s~qkiC `c0 Jͥ,5߶3l!8DJ-l 7 `i    bKc]6A`[AB~5v͉"M"FD'5E8Qblzca\F][zMj\.,   0-VB,kkBz|!sjhHsYU-aޚoY|dE! CNhN45}V7 q>ff-np}bp|i wA:N5{ɘNn Z馥\*5B1`>[6i(wֶ"    / ш(B =]@    9{3B]atq?` Cv $`60Z.8L;"   ?sCbRڲMkUT@n ^L ZUBOwh?i퇱Șn     ;HUQQӪb8e8びJ[v?P7+נ6wEjbbAAAA,>vԷ(jL.cUi@R&zә7u+\T#*guc A=5.h9Gv,0-ڼQ=BBHi@ +}ا 5+9OQ:gd}g-&B!t`>]X6l>oӕOYVĒ˭X=#iܤ=ȧ[^D1]}c3v~ZL^[kȖ5OIAA={cs4dҙ@嬶 lKL-nZZ^4Զ  (Ґ@_A`1VoR#LMnOe7SߔsW F4o؏:z?7"&[X#.aѪַ'D\T_n%gÐAH@ύc_hU^]ƙ/: f;`4!?^H<)r ֞OXO?8g,5☡(\$00ngP`9~3zO;H@a~|>?WdsK'P uVr1:s%vtճމX,K$Sӫׯ=|ssR 6$Wk|Sϓrh?>l{;??ZEl\]   !bײhP bXvJGabqU-iϼ?M=!Ιϒxz >g˗B<)񱁅q[]w'xf޾wfJ_7[`/W5r]Wcbޘ_>~OXۼOܑ%{wBJ$@緌\k+'TMy_:@֝wN7o޸yC+f:5.B.y{Zof ,$rٟ[K.ܘ 6|?Re*?zbD2+ '-7L^d/㓚yq0tӏdgfj1SC0o!z)N1o n5cHS8'>}ȴYTe0%jy#wX?r_EKP|g :4"mfo-ߩI讋›zS@{NeؾgūwKxB?C4/:ȕ}KɒΟ{O];JY`!   y*#Rr nZ wP^M8,GsXwjr^|AF^]7m[xxzz*+TfE 2M;ԪT$C$æJTBPf%5=(9r^{H__=G!-C̔>.~;R`AP]p*/פ]IR!KoJ nTf%m o#qxiMQT&%U-=%D.N5@sU*ӎ^;cߪ/ʫL&eOmi4Wʅ321݈{PY.ʥxlڄWh_A *ie͔˄EZyo3;LlJ|~ˁ+d* &m1_[]  00|m{)ʹT$ST qӫǸRqiQMY®mTUN/YDYA}xZ IDATH /;rl,sݱL!ѱe"/݋T/_*aBX̗r-Z ܚOVŰG_뎬j_XrM\Fe\Mzo9w+e}6Aڍ, ;HN?m% +V|ݳQ]M@z#MRgկzdKVڧ `>H˯ОBk*_! s_|\ kv|IjqhʢQvs?u̾={v=񜤱D?E$~[͙A{7_7]  F{R{ս!`Mc7v -)0۷SLPPi/jSgJLh޼6?(Z-l9}Ew{/~^kO7@ckKoj(;XמXz͢㵤 Mpkn"Q$|'!ρOiFP 3o`P@*HL\&aRe4$Kd_P<}QW}x(ߖ}~T=U~'~axy[WsO w>/x*UwW&TTF| |7RZ/ںr;eTUr%Fk:~ʭô/oY^cW# \p~NOBKos%vv)}[w{6gxs3OܹS!p\5;xi}V&>.)Me.K ʫێ wM{({.o,H}qbiw *#Y/wr#25:>0t i0\F {jVXyRs({ơ1Se\7N~ZFcP0H.3u/wj␽]  h8.am*9 c& *Dcc,9NL1zE {8: ryXL"32\.e2L&# ! BBA_0 4ix<(W?7."(vM0qi8b͖-n^=cW֬Q͔'\\2"H"5[^.8:WΞ9zT]ҝ^%Ek5Bl0,x~̹K9}/7ϳǽzpu6|qj{-@aeά4EVȧSR\3&\̑ _o.wv1xb+2O0߾|#ZFI}GC@kzgj?iޡeh5ҕE\n;񿱥 ۸]Odi\ KSznn;|ܥoEP|] ڽ7-_o#'}Du\3?r)_b6-spvDرlQQCf`\6@8ԉ2t=T_?B!5n͌wuӸiWt]Phg'GK  El;4w%E9us N܍-$BLԀ9_HnnKo҄:Ό+`7'≜gtcU[>}9#~+(2h/gwt̶ W]s깚-H«vUFF"N,%ѩXahӂsם˽^Y71Cb~ʼnh  ^rFnlltR21B@MB]fLEX|$א-]i􀴏 ;VNKy{:;8 t@&\.r\XެAQMS@4c=@hB$3MӴIS(ʒGPi(PF'z뭐*-P_ 6*:ِ#&l_cJekXԱ؉ՖZsxɵ3՟B >P.ΐf]@d iWvq~D\k5ۯX<<|/cP`\$ɽ&+ܧ}\U\ķ~:O67k;ww|JX)Q}@ܫ-,  K;Ӛ!9RyVVy Ӏ멏M^MC@ŽJvRkD6N.TpS*y ]۞xԓذMvmekLE^ ?oU݂&IQLm LW5ȫOѸ~7'@>EBM0|Oa OE!d P"P@E CMS,C"1 0b>t֋6knYΛ ۗU^R*X=3]b ȼcnEj:dFF5J$n\@Vw>"Izޝi_}G=ҏ B.pmP`\tNqZGFxb 1rլ$QP}Ҧ䉏R~r| W$UW j\"=nթ뷱>[-3tF W;*ӮNYb|nmBrr:ݽdHz??M.UEZ8»7͔dɟ>$ >IJҾ{6@ Ҿ{%p.8b=O#@9^J}R3'ar1GT)2AAA(;ڮF21G(rɕRqvtEa %]LT&li e?U _NS *Iytlk !nF2&VJ&]}oȺ4xR&Mqp>7dk+ FNBdC݄  ïknN|"*Ue׆ܨjͿЄ!GQF e\"'G(~un]=$>^Mk:g%>9:o xXjZu;^-r6j\|?.~+׷J63"5fNޓ>8M]Cӥ;+yKhԿr}}vkXEETˤ2/}GǭǞXA.YQM"F͗Qqg2Qْuqje! <$lEܒ1CˎS|3@.ScRF AAA4u3 \VFIPj&=cM, Ondm-C@esk(&Ar(R-d8lUm sD0y1^I^ yEKx=\}mHliS%2N5>\[V7L _ˆ]w0}Κ?M)j_j%mJ HjHܻj@y L{w} G5'+7ojLҺUU+aA)n&&H}D˧WS$V)ve -EZ"/ĜUuʩHҞri$QC6KS̃o/nAA}7w_g%?j6 XsўRCTY\.ʭ zwfOOݵ٩JU@rߨ='S%]Nr~~/uwpi}x;fC4SWړ{~?XaޔuϩOD.^~n])ˇ{Ys ;*2rr2lѠ t]{ڨµȕΥ){x^i'TόHm.CAAĤ-#0v;6omWgvPic j?w0Fte/V:ȹ5˘oooTop`_ ` '621 <]Vw1{5LgՓ/pv;LT5|;F5z^PyEӮ'ث˲]{?;wxU{:_#HޘݨݪgZ~-M@T),.tjvSJY]`\$/9uD{IMM%({_`:S||^\}Kn]v_&x⻏4j4[C>,-8v?aFwGy7];7Ç,Qss mQWЖET{(ή5X~ѯtWRrɟ.9˜W>8G|rjG6vȔLT^RB1'Y/&rыKKv7*eOԌAG;x"Wjt9gmi EAAAmrsm먘u}2$Gc9hmWH0a^F "ں.=glX&xh9Cx6bTN(/KAg- Ww1C_˴}cz/Ж 4b[.^ }^=b֙wOc:ߛo wo\9sxs+̩ cvk8Ni7roetC`YG*֛;pxצgn[ݿ Q._>j^ÀWaXh^ʹpIk,TgH1c;u|*ݣtaK9mjni;qAռ)tXZ. ,cZ+;Rj!  v^j 8oh[C%ho#0@-ck{y fbW,A0rEw Y-MoeGv!~4z7vgڮ0ZlUi(0T@|#XjZƬZH9HzZ ҹY%_Mc49o@XLE^V}o_NXڣDboQBt蚝|uUIؽL` tg^qo!=j 6E_X:DWLŸi;! UK{_ѝUܯj$Y,TBYB xv!]{_.M@=xȦ?Xڏ8 kL:u`N ;ΉkΤn,,miJ+VxQ}}+*E {Џ" Ai@"MATMdLLy~Mr˙f{EAW<j4p÷4h| FF$$*u4! 0@k@MbrPZ kь4GHb,0qh=o'K~9bX    H|/T߁n`Bk@4dUk/M-W#9Xw3 TTξ,~@! mqO+:1!@Qt흲 # HBb"׺xh1AAA$Z֤!~/XzTzGGf# o{APw~=TlI ti鬚r˵CZ!gN;5 %mx,sˆ8|J K/!󘷡J[:-0r!#:10, (8?WRnW+B6tuKw-lP@f86<)Wx*xފ!n$0  O bFZAAAA'jDh~jU ̡kd8J` IDATQk DkDGLA# gvS‹w)EFcbH1LCAAA$#  9`j8<2 Y|zD%U1uBcx9D*g8a<_r * AAAiixh?o2 3*bnÓEપS[~w@Fxi/>oyH,kfi1 hxG ܲAAA1J%3 GJ'#{ӫEZ"q^*UoQuҰ.5#NP&,☺k3'݃!UT#9!Ft-OE w>" i03*Na, 2\+An0~4z<7(=]A#ʨ~iDͥaW\'LguɣBg b/ڽ-.B]njo     a`XqS[D$g@A*A<_|D .e_ {?&im S~[MmnfZKS+i0h]4n٬4 !  v iJ鈂e3AFrq;Z!b{W3x߸:HP` d$r[0ҏ8"gK[+pg3,ʻ Ce$gzMcdj)[Nð᷃T BAAAFW!P1$v: GzD6{:fׅHA|GVH@-XZ[MnFl/k,08Hj7#*B:AAA&+@aaU4pD`ٕ밦jKQcL?+J'>3ɬϦԓ^_iwjѻvEvnj$5oO."{\ I_Kv()EhaXK+k!w9^ =Div%{fiAKs=aAFw}~?<++MJJTѣG7m ݻm۶Q AC)u8'ԃl{2v÷vɔPVV}º:GffVvmt0Ltj?v_]]]ڪUS/ *38s\$CƆ3_1.1pTʴ=yvr7Y=' NpELUr3,, H7k%A[z/…o!‚x>|'%,[7l< nd%''e#M~o(ݻg͚?r߮aÆ3nO;eee+N< vp@ iQv-BU# r4׍}@^Pu8t0GTo"Y*r2 vDڅWf҂!AԃZcGv56@ X&Q* 9ňQ q=cnX?Rf_ {u+agBU0ijٳg[]]-);;g͛D6$|W:u6;v?aذ ѳg(H8qrҤI'O s̙e)//w#G=/:thc-Zlp\C0L&͖l6eFaZ;vӻe˖۷XvͫZwEڿ)SNJJ3fgYYv̙Β3gҍ ĖF~0hiH>N$pGix-_"qmHƋnl ng 67Geyj&gaKH]HMO@ r?W`25~-HBj]ͳգEQ#3]^|9QcϞ7|svv!m6Ҷm>d ~ /PJ9[zuqqq ۷EzՈo߯0jHv'OHo,oqc͛۫W( ĺuz8// 6LpUUUj˖}{=V3@)-++2LvbNNNNKK.t$;;[SRRW#111!!-'L&QQQA"Bk:))Ip)t\il6`---m֬Y"1?ȑ#z!߁wMy74p 5ľӦ=uǍS!55+`gϞu 7X5 (U:$]}PWDCԛS tqt`ZǴ p2#ENҾ˚>9Q; ّ~`~{N {9: U}a\#QPd<HFP֫QN`e8-`'{ZmO޳<T CBppmٟ~׹s~QFzـ?䓇"W^n3N=N1a]+r5:s=xD:lˇ>y}7nhڴ:ë^MgYetl_s:u&+--5kEys\W} 㟾s裃Z x7#:oImޡYR6lBI.|Okp`;I?9]ּlQ%3۷r92qX,Ν;? uّfq\JJtJiyy9!D}dlHJJ\_>qS4+VWW4LcǎU|gϴWZ5tP?  "{Z[4$>F#! $1B|-!˥!{jr_ukVU*V"!<ǘ8 k6k?NGX3ޞѧϵ T.:yɓ'yo[oYYѣ+_.[,=ӯH3 nb$$gD{.u9d1YK3ݪr݇g97gM7WXXJ/ҥ9GfPPPi }Y|yAA#zj쭤cǎOس]j4ȹڥwN.|Do2@;--۲pR(m35'{x8NBH7m Ҋ V2GD?\8HLLQ0--M9ݻ,]t֭[4V]VVvA%UY\  1Aз !MGP}kW졡ixhzQJa|WYZ W@tAb Ea.߫QaÀņNf(P%a @:G|3`W501{cǎ&㸠ϲeNwر ӗ\jW]ulbS?I߽0fuɚ_l:Z1aO.v].*))dIIŒ1BBnpxo敊 ٬dc^ojJUO?LcՇfYVѝfsiAih1YyP 9W-H6U`ȣEN%]+ JԾҵ^L<2L~e\AZI:ToOtZh5G|ԫFȂ5*!58|S_O\?>c ]m2I)5> :g>(ݛL.FGGhYQkCB:laHİC )RJWhȐ!S(:C^uŢ՞\ڣĜ6O|wG+ڶmsӋn` Tސξ%;MQDA#9π-PX5 uֿ(LO)]rU^#ƪsqv'#E (늎U?%u|MT 63#n5ŗx=~wqaSN:5|&U8PVV֣G0#)<3қͺԢbOiAY,ko{m;1gةp9}L)A$&&*?5:0 vqҼyhNе͛.--8''7oʯ.ݟmAW\VNI#~8:/>Ы־[Ǘ`p&w+eٔ D]UUx,Krr`---~3LUUU.d2б-;wYvM7 TeϞ=ǎ>|ƪm6[ׯ_/k H"FV;!O0fPE8 PKtT (UD9cZzYq\~7(L_]]6Lџ6A9[/6{jw5Gw2֎B,uⲍ#hʶ* lojbNmj9oz*O/_'iJ) lrnl{^4'N !~vMl6O M(R Ə5RMK߿bCY,?뗮[1uKk{~nNw#R+AyLVm򟧮1J4t: AQYYI) BNgyypV?6777r66 z۬Yo~ʦN>#!!aAk5jN7nl~~j۶m4# })TsbL=R_&3j齈ẇg+zn5 3LTHtqgJ W B+%2{+D#'_؀ m:Cl G$nz/K||<@ҀQ#6J,0P33 xb"BZ7%0 1lL,{KX|IGJ)usù9T{x\nmJP"0) a%sL?t_Wi˗/+_nQ7h 9bě];j壧eL5Fc$$Ė"?|Ϯwq8lζ.]3cūnڏ.r?!M*F^zN:tA.].w{ggg\kץ+˲iӦ8pcZ.}bg^?*ܭ-W>i`~Eoͺ ŭųު|d<5UU{E#Z ''a 4il6 DI)-,,t:iiinRYq:ޠ5hƘ1c-_zl[n}t5ӧOngʕ+vte˖=K,ګFA$gFK_ae &^Uʣ~TIQ7qbJ~O:w2D7YWQJկA›: 7B,8a{˖4ðu7 #vhJ5ʭ!!6+1Ra>\zXT @eW(q܏< Cih/#P#uZqG(Iъ.]:GZ6U,] -[7l[~wծ_[.\Vw:xQ,@6`RZZp8"_:X6"L&JR*KfV=EV8HYwo7o555{6l3:|zUlŊ^{݇~!^:4nSMNN>xAijcdXB`.BdB+ F:oAvmtGyxwtJR{P.׫Ddg|FF2ekt>M/[ FU(|ټeBa/0ٍ̚L^h^7#!͝(&UI"|B l[ZloI;vC`w\`6{8Ocչ?b085QE`q88J#({.qϓxc Nc ,Pk֭ׯ;v1WǦ%akoO(Ton;|G9v?f|q5.]:mSvs=V[>ÿoh >,v0^7ijZ3$'':ubֲ,+MNN.,,LHHp\N377WSSS v`b9STTrrrrl6MK`>uT9s5kV?/<}9]ta~~j+--ٱcc233g̘>dȐ^x'$vmTݶm5kV?cS>/]~6tǎl8q~}FAD AuQyD/Awt $ Xw"Td=Cix0ш'vEPZQ&gl[t]MJJH4,!Q؟R.*D Xl^7M)B"թhA8r!z57}~ 4͠A7 ,X@"ȭZ:ӕӧ#-];nؒ\4- rJn0%}lcwO۔O\0{g-tgaJ/yhɏQZĉ ]P DA8D¨Q#|Imkԩ*X8tߗL6g҇I+OGnkͺ5oswTX8)qLEarss n PUUUSScZ322DQܤIoOHH./////LII :Zt@bb鬩Clx<"gJ]-ݻ?jjj9qx@G} p{]r;[˕֡C|o'~9'ޫo H#wOBcc*gIծо+NIH-_"[c:; bJi|<χ=z7& !ln9bӧ ȧ|UɃ%IzCNHuw+lv=/0=+Oȧ( !>ɤkOJ}JEؼ *݌a%f[DuDE 0d<×Pyrl`76bb,8<sr!,0,k20,Ka2c~_E_ ]E|Wpaxdx}_H&NӧϘ>}F:tذ oeM&N_Z. 4m4J!999ժׯqqq1a[222x<'NK"M=z!knѢԫ]tE"l~pӦͮ*FA!z~ 5R*!*]WV<yq( W٪wN."{W rH Ĕ@D8(uh.Y$ 7|xzzzFAKc-B=Mj86 DUAj{3"_"RQyDDlj./?GVTi ƏtD3";HmzNϑGd\x&shG>AD:h\x4iPA90#H#'.,sq!$"aAAP2DURRTo4Hw2fv7* M5CǞoV{n@j`]{\BeӋ؟bf3HqL6   zUB lk?/_Pm Jn,$L"= f5D60Jw*d. "4WsaAQa ?33    EZl*M#'O _L; ƂFXA;DmH'q7\%ZM>ʷF@0 ole6{Gn;   KhYWbxU΀9D+!!E-nQb 82< u17@!aS҅NAZmz_ ?b^dl~c +ESBX]e#K(/3~>s\F.#& # J)/J4tFn#@<4# XAAAU HhC K$n7Z_PbA-'Zdv\!4 C!cA~% r,R /3On@#   DGP*b&A-AƳG!p£q6ͮ;ۿA._F##F[}h䄽/0h ~)SC#5G3JyN[%Ma(gJcM@NL)xJ}*°xqcAAA1Eo* \ Sʫ#T ,`o8yQ+tAN(:[˿Tz*et VK*mp:ݿ%J)1ȊkvP.7$]R kP Z:T(o4Wzl\{]TJQBҏSʯZF    b8=2 ׎ * HvihSiZ*'Za s\rBpxp ;!n &I&eMaR8\ ˲f3#zH41fayd_a     'H Dm^_bj: S'.MvD {ȴ\袈w(J6@mA_Wx )nuPc™%N(<ǚ-Xf\Ү{>zbܴy-qؓRL k2&34M;jL¯\Ս%/d(,Pm   !՗Qk(PPj/_cvU-^vR; D*T2Z\F//!T^=|oTg>ZϹ.g]vj\< 7G3r,Lfbfr8 JIMMܞF)MkԞlX 0,sѲ{6k͖${rj0<JfT3[m`f`XllK nZ,6rt:GeAAA!ZVRD-Ē"*Fk 9d<\/g`MT)ud/G] WiNcX#WB (Xip|UzXb&yNLNn?(ecujHƲ6ɫ#ĿE)ZQ9xs\ΚjRo/--]:ÎҩCs;u>U|o0v ۵~euy*/9wf,!G+>7q;Vfs~Igm䌬T`f0Y,HPzAAAѢgSb;4txWH{2&jS#fJoc. 5*DWQL}ǒ$M62 l_q IDAT`u[;Q(*'' w}(J"F} ,m {c]WK a{Sm;w=c&,sԱ{'Ntv|@{5`KI3[m krSӡn<3s;-,\ܭg7YmJ`ܶ 93ǖ›,UYb}I#zS Qa2RRRc-   Uםi PB\jpmkt07}غ5_ " 6hFu&y*F8>(`ǀ-S`8i%茈4k}_1fQ<@Y'gSJ^!1[lB޺꺚js\EQAqAckښ<צU˶[STTUݖfuֶ/8a֖j{ayȉ S_TB̧Vwl6Z&fZAAA*1PJ|فt$.1ڊTuq7 5u9[bfТoyJ4恽.H, rG)uVՔ8(!/uuκ{K.t=u?l yy7}UP㦔dfSt~0[&Q^R DXke0cAvyUZcZc-    HlQUxFHHp].D|Cޱ h cpR>@Ǖz:nܵӛ&Ti:ZܢcLSLRJ))PMy~ÕҪE̪brQw9jyRy<!l;ZsZeX/OzJGFN<2a@*.Ra$){Ao19%H4KVmofgGMf)CÛVNeҳ/)=cͦͷ|MeJNbR^Bnӊr?=N'qU?I)sP]\YlHHNl@лΔFtķmeAAAA1q1JwԞHF(j1A-h@Ci10Ӝ,<uT0)_Gn}&>2u+NyaŒYۺ^WWxxΖhd2: 3=]V_~PzYlvBÚ3LnWp7qlU(h"rpu~ܾ}nݦUt<&.yb{Co:}}sۉqt;ìG_o>+W_y֓y}\gLRη_15ܟ^]?epGjAAA#! 04Y辡$CzƗZ[*+#f֧{_mUhJt>[k&`Q{BBupV3&nN,V7Ц5'O*+?S' @)5[քݿ&l1,+TtTVWmq}9rĔTZ̘La Q1|A fzm 寿 ?u7]/2zˇ6!?~];wu=M/v~K\_O4"/{ig,_[ ofRVp_3${rggN`qq\AAA$NQ󾀓?@G'#H=t>$vPɏr6B*ܲjc7?TN_2(Q~h4CPhobaIAng<0XRTVq j*L @-$O\{۰-[Gz9:yɚp{M)Nztv6n&7Da5W&UUU#48Q\^.b l݋zW7ܹV>9=ǶO obͯћn;wڤԵ\wkۧyuxtWLU%$͗:1}l0߰t8fCޏF_AAAҠE_A&$^KS "Tzrocゖ{uj#\`ׯyolXDD"^Dx,luZbb룬DΈJNU:ꏍ!LomV-v=%W CX&+3!,kX:Ufge◧=6wɾ7\ң]f21QO7b H%Z/^}p,F`] L໭N)aZ(}òf-!%Ֆ<ے ÜաC:gnI?ƾ^}E|m׏bXYێ,qdswECXVwڙ9~ &$Uͥ3Otk׋Χ|.=#+y߷˒:\o|.3݂J IA 7/W\~垽?AwY!{}~Uר, AAA4qH\cpU8H"?ݐG&%5j qqr !/9xl(##$`@6("_0F 0ceՎObe @yJ)Dѱ *,MKJLLMڑ:ݿ?SU5Y[l~Å--&ؓRlIIY ay[~tXɲ&*{MjbMLʚLy*ts7ѱA*oS*^{k8 .fX>ܨ+qpև]??I|닱-Ǟ)޺υ}@־&*''<S8q|=}=%_>6?}kg{9˺\fѮ[U7{f/\OVֳ߭ז{˥tg6Lh`.^ǽ_/ݻ~v܂k{G>qUKN( qG#^!Œ΀xQ ApQ H=ryIJ䩓w;jY%'Z~g_"f7O{O_y/z[~==|AD4םx?ɟ=eOzWï{ZƓ/y=KT???]x<;~?G^g~Cz>bY,ݽ|΋z+9<ʸ{xx0_Ѥw,ӹD 烺pzhh+f{gGD<{ovNw!"Z~8d!_|G=|_u~糿.W0Q#tk{x/yc;W]W<룷k~g{?\=?g/~?$+.wp8 aUV?_E>H yU+Ed!,UJFaeұ+ 41#/}}W="D]b,˥sY6;(3qy,K./ry>QYC&91F | s3G<ƿ6YyQv^~]_q=h v??uלxcW9۹lw;=ٗ7W kɿ5ߟ|~??r>yʓ0&ST9ܮM+UH`ɄӂZc}sψulR۴8HT3UABxvuINdCzòK]ZPJg1eee޲*iQDTN0~W~%HP4?v}W=Oϳn/{?gs 7(=Oz}~os'sDUDOvg|xUw?;;_y^i 9\3ѩWϾow۽h\K?~kuDD?w zZ"+#<2d{qFE+:.i4|K~{6ڢH H\R5/6Wl%[~9nxQ! tsL-&.\5'm$X`:[g|# zc?#_Dq+/T[G{|K.['qzt'S?ٹ+㓿~=G= -٧f}}3""wt-che*>k 7?^'+W~ug\g=y>ÿ+BLnڴ5߸~ ~݊ݿggS#QOu. \KٺЈǤZߠ kWNUjN#m7-vlQp]d(k5./cF9v\n\'`q7)aw9${Gә*,#2_F,#Y~2"*3j43bDԬ.iV KBy}_eHDDg7EOı9|Cf?'_7=M|_^w-xٯw.g>G~G;~;v7xxg/话?I|mO;w/ywXi?Bّ^^uͷo~׽;_xMwψ^y~?}z;垍 =]aG?:{!K4v4K\%_8~I m=G)Ʊ\ŠsxJlNm1R7i$1Udzƒ?uͯGS|QȑG^uqqo]~9ҳKr"Z~}ԓ]{?xPկ}W5狻=y/}lf>KzƫoxADtg|sn3끙O9㦛nZt?:J|C@ZSaNw(p싡@j֨hy%v7 H,ݒT c#e8)f)GMcr#$`VmCrPoLz{K~NFD?{w>}c+{_לwox]3":OW?^M8y`Y'2u{D }փ^^wQm|ǯۻ_u?,gG 5@Fލ-e2"$CD-A ^)~S~r'kv2GaUgIBqˣbH$=ցu[V>иeKz63r?)`Y}!<(VV_:?kuC^یrS,y $5zJJ)m\=-gZgZ'ԲK.ĥ:'Y7*l k(6i.7'˚O?%z0? a*H~!!{[W[q.pf,ܖM;ڏæ;]vog#O.?42`]Z@oPڜo7ńeHUj md Z Qn@o@(^VƧ^ Kw &4zMy;'f!آʌc{:Py.8o0Թhzʯ ڰ`;N;%0̈́qC`SrB0%CԶOQc&f?tط ruUq*?ವű\}C9-I1K یgJo+&ORu7C޽uu<H;Kzc+ 'ꫧqIiSյ:e`@GIgﷵo4mv{.:Uhm婰w75-lu".Y=Y `?gfՕ qNQ/D&47uGYB:?&n`ᅤͻGBN1F\6)7Vm[s NUdǡRTQџ%rvǻmwIڪ$ t?Ua1 ־rW qˆ yIdC>.tgl8j%xd/ `߉b|߀%az3Z;"tN 587L`,7a5߷֖36U N?Ւ=\oi "I$;j"}0]f`O04= 0},?B?Al`,wO?_ұwch2D:}f 99*g7yt`|<2v\` 6Ǜ+{LdG LIb;U;\;-k1O\* }9˯+ѳF! ؜kynΩu o]k!K1Y8^y5KI?KU/8W?Wlyg_-Sߠ|{T{Ё#TQ o`Sm#0kJE FFv, =+|T > I-ywIiYn;cMO|!е8F~3=VE1T_6g*Q+|yHU4!a 9ݠyߏ<FƢD&ou?cFFM`y:fR)lbgfF0$k_-6'?8\R@@lt󰌧ӤaBAvPSWo1d4GBGBϩi(M L[EbX*9tzS\r4Obm=;l"(7a)99 5`PrWu+j56.{U]ɤNHQ9pUz ŏ\v&<5uᩑx= m1ERVw0En\:Eݛ#<{O{LwG{CW~2Wzp Ŭg~y#˒]?hNsl 3dh| i\6K}#?5e 1B(9= $;x$u .ƘepS$ ]' >SƆޙgl)?MFو^`8Ze{$+Rb\:aI^L= ;n)ӏ*(epZ 497Vur^냶N|J%~? , [K&Efvh_5cMnRڵ9]rZv`~̕_h"", F*<œ=6_IbO=c77Sˬ;h͑3汫3D Y` "я]I|~۾;ƾ0N1Q4m"jZPi;_wPJ>*+8riDDD\ۻr^a}b}ByF"[tHՁ`c~W iߊd=tj 4ǜ…ͦ| m-@}}ˌR=r۩ ygBqFvǐxz$n1?ߠlv08B :Oa, ]ERUܿ,YEdo^򕞦K;yϴxsrof?aOVa|S:A/Qt?WeVϱ !m(y,Hԑ 5މta jAL=ŋ7[G@pr.֍45h~ n;P`稾2w0I_vu`B# ĥ7_}HOC@oJ XlДDϙY!WZf]{,K,E2fC=Gp2F!'OF#?3MsY#~˰5Jٛf< ҸЇؐ,! 6_˗Yިŝ OѬ(kyE Qʪ+ WB6 &qjVȈݏ&"71&bDTWDU,3 蟒׹s"_.OYǷrBD*=Q $BWq KMzF3s*ӔwoΟ9L3PeRqyBqxWyȐ8᜻TB@@l))\MP^vfRB qC]A @GԺD10,}%$$jnj3e[UlVNiA [aJ`L8.pc0 "LOGstSƓ@ߩnhLEJLJVJgIxna0^44滭<Nť|ڽ9fju YÏu.vj-m"2yqq44ǔ %b61$$BQ^9*ՌWҞb-| M_35׬2c"29MN8M?iCd1FsHr`@jK;&/T|+ks mk`\js=^4U]{0Ф9z-:h;\a=*DkחTe@Zw.t[x o1:7!MEEogv[)Z hWV߇5p<3&fQ{>)Cn=U6ɮ؃009Lc\+&v:T+<y2Lx({>y^= >179hXzT+a+h Ձ敪0ISbN͌ R؂Xܕ\gNsO1} &pvoʽ]#sϊs.\ɣȴ,v!2X?Eڳ"[cOJ d{@m/P<'`nAIfj(|泪:/{Wż0YD$?sOq7+6.YׂypV?%NDTj#zv־cz}5%b)yiloNL[aa]'/kjȗ1kٴ#X+#j٢0ܮ΋C {` 1qdᜧַsSy:Ej`xh? awP Th8m oڜM xc˧.`(O'Sa=~;:&/%pZL3y}~HUG8nc\,x1F"_+uۡZ Te!ҾB?6{t7 ~aC 0$1n(#bO0'c%@k>}g%#|Z 4죦 ʰ\u9KBN}py +0,Ɣ c`0] mENcJ/ρI51s? _MCN6ZN Z\ o:W3M㨽;տQ֯a럣z\;v\)W7QM!Bp*`$8k".M8 Z je4m\@_M`t-2 V;r')6@կo!,x̮~?޵YCbyeδ][zt9sXQfDĬ&@ylwC8QwUs+B/h]cW\Un47ʳ{-76=(?w PHOi!媟6E`R8" p;hozc!(Y=;0 f-ЏZ; w10ZT&nz)5eׄco.mmэ#ꏊh耞9sz6'A.:ǹԅnOU>jD;$O$'/NU@{Pf J)ι^?C.Z#UWBb.*ח_eچgarקo/k2v;OߵfyrvE'M2h)6ij>wcZpڼeSRPOi.o EyX˭ySB!PCW^}g? fpqqb\x`L2t~JY$+cyEz  8mJ|6YM)&+<5bm Xƹg,_3^Vk r 'D}zt]qTˆ-j3 IDATYsg \00VZ?|\A_5^K6Kw~ ߯ 7l܉^:~ N)BTWI/#&Z D=0Ep"l[ˡ7LN}]QƵ=2ZIf'xjxo֞c[ !10mzx?ujB9gЯ> 9cjAl}ZPs=; #B"1vӝ0m+fmI-|7TGQ9 FpE `Z=n`D]TbIvEV62>LFS5*̡=;~GQ. f i3 ؙCb$5X`<DvWg^^,\<7E C߿<%A Η]y0ܸkOB^vɦXu\a.;þˆNXJD(+uhj?Us΃n m*jw^\qDXE,jh|S#2^Hl7Bw1JVb6SEn,NM^ ^ުӺiެ&Rv~nkM+,ެyցNV7<\sBySK ل=.7kfms}axmkM 6ͷ080kTشdZ0@uu93S3j`Fp8tb2&FRZyGWT +{z)tnYb^&Bk,\R&􈍟G=0m0j09];Ug%{$v0 ]NP.Qqz˛ xnRMVCĵ*c+ c-symN-VWsDE]"uCc!x;3Wj>~K<˖jn\g/pϤ<:_өX|[7,i<3[, iOB<"R<qMĝH]ׇ 90K;yv! ;NQ׊H)SP !QmdZ {/2<:AM.GhruTU6~h4:7Y~Xy539T#@G> 5is~Ų>T*bw"J{#ej?!c*1,w'gېum|szm6)9ycDIJluoNo$gHZv<3R9X-gYpm UH擁8kP$1ࢱۆRn'V [ L'1\@x#ؒj 3s<Gi'S&sM"fV寥c}踍-RJ~ہ`ODDi}By@Փ ''tv'(̓CbmV-d~3\.کkN'AADx I3˲,cy\^$nzw k9@Tb*׷m 9)GN>`o2>u`D ޭP7#8gfpXr> *#_{'g1qguxON>Q_D?m1㘞_pbhQTR&V0l=plq2:3= 48wbvNe_%{.>U;~?rݽbΘ s.{@Sxù"lG9eL!0SpڡWQj@TYl퍫(mgP?gG"i9ocK|S됤|c ; am/ssM) H l³.ӲfGΝ 3_g9cf'Al&Qcߺ2&Iw+( øߒ>=%>fFTxU%iV2|YSlمcG.#ԍ'O,cY 1-lB1$>"vxm1|ryEPl7`?VAT#;3쮬ޛm֙܀s"Q ":ŭ^VrfI\WҡXaNh=l\]&uoa/VĜ N@,u&5*[·G8Sƍ&ml0bdIF}sLYD?*a폋+8t0nhʴU5CmBpN|#Uq10f?:+WƏF"%TG\ma'Dca=n bOlF!%v{?;Bq+sY,>yh8 (]X7@R`S=2B`D7+1F1N?;bLF?SJVX,|m8L0Ԋ[ H&F+eʩӛ^D04EkRHwh. !'!U[w봧RXx<~E A=lq|$uG8-peHy~]m@Ȏ.A kW~-ʶCvO ނACbV@N643,ƀiNmvT'8ۤ=[\oF/ f2"el2`ylbqû+æNkovB MJ{` ѳ^aOlDDs}I,J̹A5)[ڱ{C-iNnTGJc0D-ұ6;>9vWxL)SNFЪesj4 ^#5Y/?){lFg+3x ˤV4&}/^⓸xWp)2%6՝4~n_S6$BW M8lSɡmo7#lT~ Y'!YB.۬m{; QH;!Uɖȶ%tawS$=j4}F_BI߈M y⁔sΠ0Ǭ| C<50b58 ݿrE&ci} wՃz` m~~ U"u#WU\_b]x,HN0 1Č_nc̽}fo C܄x;DlLK҆u)Л{"8)&s/n{I#ܱ^כ7Ϥ bq VٳFQ2? +igBNے7LϦEG~v+{΍G`tcsЖ/|m֥Uq͹Ocs^TQ0W3ĐeHwvyP z7LDm }3UGR7.0ຈʝ"&ۘzǙo99{5uW =wk-|'3uh0-a-ޔuv %HW~jyZ|G~كw]K管%K 8gH@/Zqj1t6ogozO ,x[.po @)uRaOD0'1rgTHIzL *Qxя//B,ϲ,g'Oa{sDȖiJ˽ꉣH(G9ǤNJ MmKQ% =A,_4+c.Z&EK۔OjzӺEp|A5חߞb/)!TRߺ?$?UlrP*tu{N}0_+A|vC;<94&xT_AY? ̚3$ë8`'\q/2.b#aO-_A@7F 8#ZWâm(_hUwq䫂9K+G;qOim^;Exa(x͊w29 8猔1$lpujĨ־;Dx,Ķn԰wPA(f㌊xxN<ϳ\,ry[v?6;+G4'ޖ'%ݑȝ6T7V7Tm D 6*>] ]\^`?`Xs/GrlǵY5<^0$0O@ë2tAy<NvrggY&[1b9)ct8/lN?qQӯG]HVR !E&12e 0xcY跧\t񅒪(992sݦ91t%BuéG1RYU)C8gp̈/6SE|S5WEb`cy{ɂ.h^_#_[-4+ޤ5棌OڤW)=2[bVdCBI& qqXgۀF+*8#ۮ~\Ocyh "e꼸Qt_[X _ Q* X ;!>L_u-0 yX?U?=f\yD} wS~X^m,fc>jG|Uвn>'Sg:4yxc'6cw;/ɛOԿW&9;,13Y9(3ʞq| a^LҐss411Nt7 ?쌗 #5: t6q_bL^O냨ZrͱqkjӀZڵӪT Aϻfl V K[n}q/Z!Nx\_;I4`""،e,Œ/yAed,gel0G! t`$8uhkpFhc8_`O"H-fC$Kh/ZjQ{$dϪ:@^C|DݡT IDATW{zF\@ E6id,gU]dcb蝙:(ĈU(W.B9ݯioWT"❛ Ƌ5,EU7O`fn68Nm[(!ZD%<ә`bN:y7XEa1u?_G;õ$6kiPtV-YuA7vWpܝtDeb6}+/ydz!8*9nG ְʙsR5 x%0R ]Zܗ hLrLʤK c{scp`uD*1fb71tҗeԓ7{6?IKGj)-Ygv=ce^ ,gUsYΈ.V`CCM17,XD7H#yp w(yǖcs 5!QN Ig*cY_pId/1KM!ފ7*DW ԔۼEY Xy%'催6[Ba>M ˣ(eĄLEkj4Wf}xf.ebXoGlMwsUz֛hb1` F1*n8ʮ'48q?1Nˌ0TvfqF^SB2B% -ZR[~Q(iU #Es:k;t\N.氶J>SWʫXBXOVbFDn*- ȿGi=JsjX^x$^q@٥.]fp=Cd*7nG2njP]BvanS-IdZtG`ļܙoH+ -0huKWd9q&V-69,pNcg\9?I2H)E+YSRj'#}<ՍYݖyKPII|6لL$1gp(ʂbƎggy.sGE<Ֆۨ26t ON0)amx7KpAѡ{<\c eKI]PlpVá+aX"iO!GlD'U/xG=|0!@|QјwV Չ0;7a3x}?pi8Avۿ&K%4d2!V6ϳzAv-JTbp5EtfwkQ`V \p1]b/A dRO˜C'"n GF3\c,cfvb8Eq+ `"$0F]L0:c*4i9:܉4Y6S@jN["{ԙ]#;c>c 0-y0b|>-w˓z췻N\Xe,4v@;nrE՟Lp^,,νnqnQ_uL(_K^i:3zL y d:=MVڎ ~Fҩu? r aHmH%~QM+t}6ZA;\i)\\v\}3C;;3H r6K~l*Xs=^WQ[c Xuj> $?$qb߈^{Nm(ci0II90&"NbfĤU`@(g;S$ ڬŖ?Ƕ4cY^ߢ.a f硫cc Qbmoz@?7\=j eFi1[<,<3rN7\1aHs'+>*6 [<=6KuOcLn-{D Pl)X(IyI_Wb#& J%s u_'Pd+IU2ٸ|1j}Bta`rbBHaB 64rf]UImx+P)8 M. ^N<W2-(үg^NЕ{DSjZ VJ+.8A/.DL͈ f@dyq8 4 `] X VX>\џcV7 0GS_3ƌ)# t2BcZk0~QfrQتF3:Wo7$l-1o@a. ֨Gk- k튣78-FFZ:|}nsE[wѶ]r\aOٜ売h?&UZ`˾1+_qH rˉnK+!Sv*hH)ԭp[A^j ,N0Gl&x \{:(T@??/9hB+L^.{Ƅތ@I,,맱K0=ils|G7oP?ۣs,Q⪗cdYFk=OzvHT7=x )Ԣ9o[\ټ12. - e9[+ > i5f9,M 7AT,:4=\<ۥ0t {ՄPclлlAdB4W~Κo۴@Df bÓDPYB` /1Nxƿo"T8JQ{BUCWD2>U)"nRu<Ѡh8:VklOkm gCKcAͥ]kp| { ~!F>I@ԷkGhqt5c3=։*nW`ƞ<5l!k;_k{e-2j;Cͳuf TgΝ,|@)+81f/0M> In4܊.o*"J?xO#6X˱r.ƿnՁn;G_\f!;v͒V{pnȬrIՖP95e mU!݈pY0y4 #W&[yl]h_ VhP`n~kF |8{"u8 t1rPFcy@%ª0[+LPJMS@hoxݭ kv[Êʼ>g+`?xM_b9;;\jv/$REo~Wݡlo5l3+mlT d>RkE8!Py@GC^ZPayV1qy/s/֦/z)`vݯ `) ?=[:v90/t?-/d##o OY@|%OS6V s]~k67C8,b zt*R:2l9D:MdRSK.VcItS|V }HT?c3зmǭ+B@Q. ֢ůUL7?4_~*]5Z& ޅkTLrk<&°w1pj+ uʡ{?SeeoV$7]%fS6>c}4Yc thO '[ ӆ'b׌dݔ(gʋ7zh8[@ Ӷ,g )劸'g?=ybMXnn ~L1k @!%c6%_\JiB{ԱWM'.1M)&0{ lnHӐTW嬹ţωJE tHMc'۸Xt}pp إus}v2{8]aСʿRqX/}=2C:ƤU|ZWft1h1x@P^!Ƙv/\AA]b\M :lwPUPc1'=tJvD촡̉ˢ(`ĉfTDXc|"7j v>T,ٛA3ýĢhZB"(HXI Cthyk:1S?v#hgܶZe,"FsetC%pDeO{ cjR}jqE]wUܘwd=Uj\`4nc  Zqq$-ETT &(r-L6Ӻ/6l :/3YS&ƸF9sIn0-EvOL`FLMik|E]08z\7*')i[ˍ(/8_9}|Q^AY>gU▚%8qXwψռ{huf?ð<<,elu~P5BJb ejcjK;u7ڊ2}}1ŏtx@Ql7(ٲX&#.+Y(EçEZlzikv_9`U RyD|6*;Vћ ݺYͧ6F7.vuEqImү҂ѶZ _M۳BL-> {=Nm Xx95jhJS6 iA[-+sDn4"AFvNGwgGeyFDŲ 7cyelg"|r/``6_̊fQl#X*_~y!Q'?ؙCj"e7ǒ@N:G#^: R# Z$v.KJ.lOqFr93*dGW3ԩk J)Lsлzx 7GFھBeV݀mO6!4LOx 9 #oZ&n=Ĉn1%LoN qSBFdd+a1Ƌs^,g22/t?W㋝|6'9<'rID8,;iuYs9/Mċfjރ3~o;v|wv;f3J{me,|e. ai 25I˝mKv":1%mo͐bLFW` ewCeahNC)OɧK_g&^:so~K^}\uν౪wiڼozǯw/;h??{#<~Ͼ͏=zi>ǟnM6_#;}|k `ГOḅe{u glSaaaw J ɾ6h2E% >#sϷ|Y##.ӂ~3lN/6o Mug$2VW]Ez"H 4_#eHl!*CKÿ*P#EZxߊ5ΕQ7bIN NH\`i"ۋ#3͹f>x_뺪嫯];?/ڟ͜siȓ/}+o}շMuU;#]n7|?k˪SS?77_78/ϧ~9wG;N᭏^r߽mb}{~W3/;?߀byeaaah_Iim_mt PT)(H7+^9f \][E|)%$9}\DkKtDrc* 8|xMYra-6e GNnTA.*T>PqJd[(Mޅi{*OJ@o+0DI!#&&JӖ/QXyfR\]̌6wο?3?ۍ/?{͏?o|[_x?yo3_rϕn]>o׿_]]=7?} m_Ϟk&{ϾGɏ~/{޿<_:?tW^~?_oֿ/~W^po?g?2'_==xdsn_76 sN4 }m7 0 0 0mh !.3ӟ8iײYy q)VxpaDbZ>՟ %,D݋rb0K bPlVC.%mo%~!O-?^~R jwJW:|Y) |j|D$X>@ē?1YUj\Nf6isa_@K<=J/v{P-7|_?~9w}W>[~|ׯ~ɧ?ß9\5_ŋw9|Ϟms4|tܯo=Ѓ=_o5oǞx/__ׯ_;^GC;w}~׽׮]g?{˿Sٳ_y̹s^qٹ |痼?孳tꜫV:o8aaaQwDgQ`0SFY?;dmE}s|[goäɜՕ$s@>׮ndA3aXnkj-r<OOe& Y-.laW =:x%w{Ou t.6Eh@ЕV'67ܳ{ ιw_9p֍'|{.y_ӿ[7q}gΞ;:wpܹιz:sUl`7<6M~7>lo97t۷n9nܸ'3]qٳ.^'?qMx47^{͛ [!pd2Lfl2VsrP3֩]Ԁnd42}1E/ :$fI5 m<=D0 0 0 02he1y/>wX#L^WoVA-I A{6m=/PFKxڠSsZ8\)j@CƿӰ:w?y߽dr5@Kg'QݏT%{&ɎrΜ>A*ǐ`Sb#JH<Ըi!/]=mxԃye!+lnG>=k @/  ^ځ FSަ8wΩLJԽM0 rNq_e!ȁ\Z&74xBkPU1E;iҶцW/}b?Ug! 79}fRGy*Ӹy[op|>ہNzGK@Wkwキo߼[7o6UUN&Sࠪ+pULJ_{~=9W5TsO[|.LgιãUkUw}񩧟?t:ͪE\[AGޓrVDaaaF GSˌ+fז?S`k/~${aA-R٘>]VKr>%B=Una:~Fuqa&RtH.ȥk_ۆ5gYx.Ϩ@^~UhA;kcCdh9_nMde V{v5Uл*-둜$!+TU*hjo97ՓuǷηydzxtjj:ݛLu]/d2ͦz2UUU; tZuUן~sٳ;<{v_d2TT=t6[ //|l67⋿s>w~:UU]5Tu]UA%߿ħ:FyBc޹XP½uaaaqG‡$O[~C peƮd[L|J$exDzuHhrn SB P]҂/ij8fҨ"1=ޠB vp jik]jQ!m-iL;nN!Z|KJO 'V]t8欠qEM! B4%d-iprL3L> B\]O{{ιlVu'^jǓw};.Wd2'WWt7ۛfu=qAUMgdks?Qt)d  Id}Ig$~ ﮹MlKsE JF9}C&*p B@TZzd6?8tLf{P?<wS9L3*j2=8ۛfUux!~.]o_{O܏}?KO=s?x_A圫>8PG}~[`wG?so٘{&ľ(PmU=K=\o+P60 0 0 0(S /I̥YōV*6dXu,EERmJXtX >:' 0~Qm#92 ]qx; jJK(M&A7#x GF/+Ϸ0u5)83/WW i4X}>ymLfmeoKлhH#O`wNYWdo0 \/Jb47M4kW{r]t@u}Sι׮zsiǷsGG;}/_xwvl6{ᇿ;l0psΝ9w~o`2VU圃kFj7Q`_LҐ} QTaaaw4M??.R(#!KBP@+H `^`JE ^X?%/yYix-,KaClsͣ"v"E6OI7-hٵ#WVhti-U- zɎ1[M8SeE'% Gh?MVޱsn̙3gsz2ۻuk‹Եϝsӽw]U]u9l̏s7opWUιs.^}:fUUݸvw w=VƟ9~29BΞk?޺y+GG}o<8Uu/xkVnyzCUr%$2biL˓Bzo*jM;:daaaq3# M׊TՓjG~jTzI?t`JrW±;p`ŭ/eG5ד0֙ `jRA%bAqy{"'KE .LА :<Y7'3Mxlb?&ҐeI#aj}iH- !w[>8yNqOx#V*p!vHAM#QВf3sPd:]4sn7fιL&㣳[>TԓC8<:Ӗ3;+c{8gJK˃TncO.O҇~VBK[#QH%>b7W[!,PUrǕwp eP>&S׏rMӚzߺwd✫IUMsuUAU9|㪎L'S&TP9WLv٭tǺ}{GUZ97N+\=:׶;_|#<W_uޝ=sTO~셻ϜmjAb3?Aw8;<щui뗫s% pί1VݩW=daaa[P Q!d&K#iϑ \c@y}4Cы>yfjoZP;p536GIzLpUZ_*GzRw=k/>|>#اBW񍉬\&{EL^m)oqAҷՅ9&yw%nIoaaaQ5hE: Q&iAý?t/E3}`D7! G1F?vj*WvM/Q* 3 k4wJ$/-s)$h&n-U&*`צHAu <1eGc}T.OG:H"e)E%?[ t-k4Mjvy[O\}k]rq!xת]IU]yWj9/V|f\Fm96TB9LY43?x嗚97N/e]_tpx䜟fUUo>c@0Fzm9(FU[0 0 0 0 =) ?U X|H|WyG &21/O j M+{Nai2}~6 "zn?X`V#  h[.1ƭ/[ٶko#윃pi jU_GnOx H618hoڟ| V b[l 9,(d:u મtpttlo9_דBU92J;UZ 0 0 0 0:7l9ԧ0]r{,DqΝ=|Q74ϰCR#W @ggguzFG9HA9fB9C#ד?|ąʧҥ4j&*=s~5x墇N#Z]7CwvKU#ߎAV -N5Ma]3@ W _zW6 +wM{n$*0jViziwNgzR;硂Vo?`'oBА2hc3bFw#aaa P%VBDpbD_H2`2= {I-P?dxydH{D<9B5 ;^An5L&81}{Y I#ߌRMpڅI<Fw>ډ33zb.w KsxV]h>7 _gtՉďs\oAwaǶSΕq=W ? +| 3erXw)GK 2z@@HtiW "h *Tcu:# wJWrpI j Q -%LZ75,ZQycw܍_X k6$T4az uih .(h#\O=;$jp=%r@mZ^QpZۺu曧w2?jl:I2HˇU-Ctㅶ&r $ |Ӄafi# >lOxt^=\p?~N&snqh2/M`rCg@#:|a\yߠ<.WFk4 #v4DG]/9^?ոptD(SK][IL;l0 0 0 0pNcAaJ4ARl;! ;} ]ߝ{uNK6v zG/J&e]Ћ~C1#%AACg\ 5Y4zraaa; =&##b[Rnc2K!9eȱLÉ˩~Kӣ8fP| Rl#'j"sugM  խyD1:q"G \̣7qH^\̋܏ëѵI~T# ;DWPa1SmOjW7 \w); %۳,`(z3O%r׭XF['M}v$uCVi~I.p ̬e=z=[M4іSU,0 0 0 0֎ZCG7و×ӌ4D{ ^jO{DTWG=NVòoHrGskhha0@;/lauZ[f&,M(pQLndYsG4/G,@qu8e 3Thp/?* Jؐ&i ^["3/!Ռy '\2=C0 0 0 øh_3oZ`\y_ZR N. @؟ :Q<%([ӞV`tU AzYKDz<'`5dL;BR2 {mDJ4C2W*u'sU<'V'=:n"^|;i;vWΓ1;YΗ.tʆGFe4:{.6|fo-R[(#.Iqs;L5 \xJooH_u)bE5ZAIIx =NvހϞJP̹[ik%`m4~Xa]ާ1V' ``@X Aac{jBKUli8/Hz(%:(4wnFǶaaaadC5O( F6KDa2q]/D,{?nl@>|7HPHoXyO}e()5ܺ#OKRwY *~Uh@z&}RZ$#YIx=O wWS^#0^_Dd?<=K? 7[;]dQ_}q@'6 VCNUOF,+&>2nRUGJgNv1s,kp sl78x: ?~ҕa %OWapTEi*-.c\0 0 0 c't(+>C+9%yubWyD\ȯlmI:hVǔsK_26~;ŮMvlg7xxlT-XBՂ5j&N^m#{9?i"jr9)jSԉJa6t#7/K =TIucb1%UG=Sr F(X@?3iaaal wPuqx!&L%Yk"Px&^ӍȻ,e֧Zh){zIkp:xu@Qw[#>FWJ0sE7H-_]@|˰?Y*PUV$ލ;@!P1Ǒ(RmClL-ǮyR\Ԛ7 ]x)ksZAJ!bөݕ3 #e= *bV hٞ"8AXΠ=]〿ey6tTkˮmk; Ltw\zfXwuRdŴ3֒"$p'vr9sYo;IGR (p]n{aaaq2HZEl;2NއkHo_8 "xW>)寮 X ߵThS#}_K] Nu9鄏6 UKsylۓ$GZ1suGҧ3T$|_a~ИhA9S.&AOu2??H{:,AwAp-Aw#1Un]*7),'R9 OS#bJS #qx/Hk$ذx7>|_%uRvc 5&waaa-p MH0R]F ~S>ʎYʎ.x݇$% HKy ZYO2P:z4WB[bq,KZ6<]4ʣ( ixvtG}!|[r**->a|[ϥ ĽM۱̜ e +dqpZ ROK+R.)a>,~iB#FA*vڑ>;y|F5rݓ]U*>PyA;\̇XWRMA;mt Ϥ੣̵|kX d?0 0 0 8KXG[HLΑ玢n;t6|Cg㛶 W߅5o~^x9!Y8g@$Rs[Z,ĹaE:=:MH-oeԂC4RNmyrGd\L'&{]~FOaaa/%o# .o'K u0N4|H[x]EƲg 3x9I~;:a2_׆(=A9;H3FQ[0<@4Fv3`Bv$yՠG9vU?+l3"1%=Խܤ70Bj\ù8q {,S@4Bo݆aaaalrLtž&f:cV߀S]( 5O/6IATe2HiƴÄU:~n[[DF'_ Y#}ڸF4ɼEhF:5WAߔe }u/EMp1-""/IS RQ8䅺3پ%wkyE {|f80 0 0 0N(Yg=m m;߲ DBܒ/a@@Ҽ 6pg@qҫ'y};O_Gc_oBupf |t<gghgHɂ\@Y]6ӞN dK_sbm|j>t^grFv5#tvͼzX6 0 0 0; WQ]peʾ;ӷt)(O |G*xQ %`@<^(Jc2IzPK3S/RAmb!" H_=yz2.G׈wт#F_Hq,=wBP=;17.jYCӺY&?sx߃sFmuCK nI$>M9u@RojԞj_[n  N4t~6,jR^_E@8$4|D8-Jq .SǪ:mp~ɆaaaaI-qJLI؂^ƚ =@lͷc%*yPn7lCxGrD-6m׍f׈(.ϣ&).)k؅l`"A_#=-jˉxg\Ae5A maaaaGij9ܼ}neyေ;K_w-hEDiOk+=gYx;0l*eKgP6lPSln P 3G%'2+ OB^D)gB"NIh8 H@Z0KngX]v;B.~G"kcu·mIq,aaaa֦IB\3&IB'vRoܞYt1%&kiH^Dw%x"H7(T$fwyAZ/BmmmE}ŭ_{ A ߠwmL벵s לJfڰynÀG2q:* &=#oʑɸ| cZ_0 0 0 0 ҏ]&"`=lN6'1fS4B& >^IP^-h cg9*Ҵe@ S!yxfxg:l#]/?H  ύ opRdw;Cg[L|i{|8"OwrbWx%qAʋ9@)8!<B^nmV%( ]0cJlD!J W᎛9"lϪb"4;NNfaaa8s.A>}ȣ^Q5` &68.AO$NTޅxOA/O/ḙ H(@ڙ*{"Lօv$v'$&HR$}O"~QBA.G.R{Pz:B{k'_( Z$lH0a—۾uM\z*2O7+*+:Z~lG5x6M]ןm_#pq2v8?Tzȯ_f_Rcj!ӈ VO@ )s)Ә"%]{ ~J}%^zZ ϺL:x *u~>7690SP/ zPK۲jR`>(Pv1\U 5`%MNJS`Ofz$x woiz;A@j) GTaDn|#8$2OY YL oap"5OۑxFEf `_ԁ]RN/ױNd҂}Ȃz2~imRqC Xiw(xW#ߐ| 0 0 0 cg"A}> T&PV$i׊NywdSEc+b$vF+ N=|GK^WOjdO<)__Hv97uxZUIʟD_F[ie`5ka4Õ>r\FbV п1A_QQ[aaaa*|̑q&$`߿co+4ʐËO-pJS}~ݑ@H??}IDCWNK89v!"wkT 4@?3q!2 IDATa/|c@h9:rW94HQTDe*.-q+ dkʪIAfV"êC2_Ce DqO\fZCFlAZ+a,l-㉅zR_Iʈ8AeBW e^leSnGG q!_~/<; OѨk}q յaaY$0 0 0 fXb SWbAm@B!*`jn`6Vg%6u2YLPiӱaHE lP\TWW# -b>>'Uv'8HbSϽzRcu *ڈ ]l\q8W[waQѣ@?Du)ϕ2Ó_hHÏ,[x5hǮ6Cyވ'^U޾&RhW)EvES~ފ@Za{kO*d:C -V\]\Peg[,Z}]R0 0 0 8佀GMcTe9EtdedS)lAМ*9iI7}: ;<O~2";,/`bclm]mØsw%rΜ.}/I .7Wluj/~t{B~/C3sw4nqZ]aaaa'D7xĪ T;@8jN4(tS6*S^4ǔ6 }YqŤ4^TE aĘɿ-Ée:PL6'Z.ĕ6a88.<`鎑sתkD]"ޱ”E6y*3wxD( (E%Xnf)Mhu%=QFa_Ur?#:aaaaf&d@1qvGD#,B `]'/[1}q^\V@,b `g*!:<:p: #~cg~TE\WaΈǵ&QA|] E?HGjJ]0@'Io$"Nz{ ˥!E"2mTr%R |,t;jv!O(kaaaB}X hoV`Ϸѷٝ${W8d36g["guè1#ŮE˄N >A0+Ʉ*"sEqY;^ CCDCBAn`=!  j?Fc3!aaaɱ΂G/X&Օ"g~d wxS8XJqt#YB6j" ĢOƓ3_< AE/5Q  pu8" Q9Y3`y)?,P)#P:DN ?kܰZ`?6OOj 8Z\GQ @*ů ӄ:*n,xPۍwUwnw">P73|ާ.HP?@=c*4bΤcGÁw<>VZyWa-OҗлM~6N5rb!Zw%aaaa-KKZ0U.ѵT+jZFK\k~iZ6/706'R'&oOH+S')`Fq۷Ob)i5fHNtKm2w][aaa) Cs0-Æ}iCމk[NNy,pFn\x4"R6>#) GWt:o}md,wmcPuf 7H{l],†!Z˜.Xu+&Bph/pg#!oVvM-h@xd!GN.ځp)fyP[ (#_JUBl aaaak9IVz!J,-HV$=({]GLyZCO!ޠ@a+ȖZ}v(LY)5޹S1{C& { sMʿQ{݁CМq}. oJ]F<8/QS}+or{ /gױFyjd7m oLJaaaOȶh{L}'t$GG0 0 0 06IF͛yyuW+vXK,[9M+G,@t .h@<4XQ}GM"07]}~u6{H~'BM.eDX-r4XBĥ5DpK rAd+Ȋ(XJ+hK NH)[4-j6Brv~;O6|4=/V'dcaJp ;2.aaaq`_#ﻢGBf ̂\" ^o|w7';SkZ0~mB@ (9IoJ @Q_Da#:7:RCP¡RKx\i!啣LX{kм*6a/ ^|[HT9uaaaNhZ' 5y䭨{Wn H8 * T#lOn}ELa_ d1~>;m0!{_r_J0-7jK2<0P  # /1B yxLnp~5 YQg~(!nwb [EnX^0sId~[Đx&&4iv{ 60=& ~8ֆu\"tҝo &#x(Z5~Fj)^Զ?&cG*maaa0DD6e44]]}~B&&YvCp̷>qd=TQb'}yX/Eokƾ嗾SC佮A!O!AY *wW:f+XhcI#3Vl naaaTŎ Tfw߉c+P@,G|Hhz/RK@<R6.:1@ 1 s. JQbɵb'?6;aaadQ P%n"*>J9.>duW.)MV֢0vpչUc?o&ضI8GbŚ?.||Fw<~!iOm[hOdaaaF9o>"0 q<$ycwߧ] ^a-E @H<.6|g9*##l2˗1R1;'lw:YĨ[CnZ+uޔ] 2}jZ|2nl~1?q>bp6dw`aaa&ZMy," GF`uGֻ3|k#ǐ1iEDˋy)7KVO]A{EDу3C, URRfxH#93UݡA&N,\ʖH^8Nׁ (eFUɛT5 / 8qP rEs1ǘ-OyGέxo1#Qr 6@Bph>CD~Yr=;{2 0 0 0t{wZz*O/ٰPfu)!%>ֈ-)]22`,#.Vy9gk1#qxb YVuwˆBt6^ڗ8&:f|n$+[ A+ɉDR4OwXqtF} B!!Ab&4+S슢},8[&:F7"یI}|fXxcǮ+[sòaaa^|WiIُ2嶥{ZP~N:)K}G"~`R儐-._񤝧A HDy}g1ZX~᩼* dJ:${ ( TL:rC K$@7n3= kYwA#El=6ڬ^N~O~vELc"3[ 8AF,<:SHB'eUb;4lmr7z\]DoiG`X#M?G٭=0 0 0 8M,tJ~)/OXwt Q(9'- d ]H\`掆@/zx10<NEg ɺ (M{$w>u0b>WI%GJ5z5vݏ?iJ:_>>mTv!Ύ'_oTT!Mln/Z;Uohd=ɠאF ?}w FI_:,-d᡾SCm6@ZxEC7(l{)"MWY#W9ȉˇ!k$b4D&s +c5ŊrHsD,Vmx3^8Ը%'} fy,.SL>!Jl}3RoaaaF>/B7tޙsC $]6}n+*mB+t5*5᧔(Њ@u n; M/vrSyp %kfB[ï@z*8-cU@JUjyprd ;Q'URr3 :?jTt SҚa&%x1W(eMPsp*$Q6g5l)T]I 2;>m" )]ߋeR{,V$Cդaaaal}Wg.Op&&0ٽOźx _QXUWRrZqq4L.!Cw}wDQU.e{'9$;n˙!Sm8ދ#K+/I嘔n^JB#gF&KJt{;E1}(w]bL!Q(7 \ %5C3LU9/TX _ϥ=h;h'[wy ؤq$S7D|ѐa:7$|YZ"|= IDATO^{||ڸGؠ@0 0 0 "}rG %6] ,} I]~Q U|:*,h԰t]W{?" a G(BH)@Bր^}"Hm"Rp[)miL ֩@[?\6d*W*#{x塈$@ٰ]-s ӇYxu IPQ>ȚxQ/~QIXr!@fa?CL RjsVMQBĕ^Bh7zsz/8>1OSOژ=H1)'}fl*Z*U}O3/AF;gaaa&oPIE/ ѦOIϮ ⓾c~$Hk<)ڢ>2D48MP)5TɒyP@Uk _ ̘PۧiТ IҰCT3 xʀr؞(UiBnC`}"UI -GU E矮A4{7YN\(G\USFoӶ|1v] jK:f:qC h 0 0 0JA!LG JIuAK!Sa R<7bEWטEFS}JEN=@ ^(ha, f]y,]B7{"lC: qwjNf_?}oUEi>+nT[\o)){X[U!#r ڸPAŹ P%_y9rX;hfaaaۣZ|]_HΈ]8^eb)lUPv҆%P:(K 1\( ^KW"ٵ:,~\]׈]W=cq8}wM C)A d,Cgvh):d#A(]t%uvsQEj@@3_o+P{VB.^L,k"Ǜ?t ?WFэ_)S_?GpwX>K6h{PjG>.Aw/=$Q%wLڀoOp0c?6_0 0 0 0Jq5t@=yDm-PRhNK\|;W:]<[8%X~lP'<_ ]}sUF;6Oco4=1A^v^0@wQaәUc b.SIulU 6A9n.~y Fpx.?zjh#ρĻ T^!:H70AW-5N ׍^hG㐐v&FFlBiw޻ӫsNmL(s!no<^BĭעB\O[ OA;-Td?W< bݸoۯw=oqh58}Ⓩm LyM0l ] 09ҿ;j෦^^캣 0 0 0 TwψP n:1f=N&uРB0{B*{ yHQv{uS_̓_Kl)>_>߯71X]yǃaaa'J*,[/y~(=>Gr߶#i-<~:z$D YN}ק#1/ Md"Y_g'ŝjk;Ű{L;0H kR@ӑ0ߖAjIaE"g({Yr^UQpJ^@e)O0,hW!<z|_Y↦Ylca;cwM~Jd uq& 䠙M8_Okq5TUkab!߸7?ss>żen':;_~ۛ=69ǙƓ"&z?O_R3f&Eo&daaaZ|u2Rf=Bz" ,MeGJ`âKv*#Zo'##l~m "J"btvƻd >Z}<3CQNBAAC|f!uXޏ8m?ڧ?ϼ=G? ?w^񾮏]uXD^&O-/f߹0zQFQ X+5/mh% : 0 0 0 ##Z!Q6c~W_\:nueKGRғ+3ȝC$)G %݈  Eăs9Zh@of8{8o[jݢ\V.X'aã,"j|5H'ن3t^'0 :+-#* R7.M߿ {tZ$ҕZƻ[F],eז秓apb*Ρ`f"Y 01$4{hk yn _3P[P{9qWɭTzxv{vNNa\_\4I$H$D"H$ȉ u?p+<4ҒH ɨCܑBI s؜ f/`$v:c~SrKmCBa4#.j黵 *4_1BNЖm4 'ɇ5}rTl7sX2֥Ƿ.N֚ _8w~{{'VKo~'?zR~g-vxd G71FϰiTeQpOQxx13~4Kx`w8!bh@VK+B.cmc%oW40_*Z ⿾SQxZdZWAZ BE1@(^MYrEo?["6k>7Wg[[wg_YLYfj*̦!c8abQgtgw)D"H$D"H$(<*ǀ =CK+и/++I-J_aԿ@׷(sjT6Bh'k7a1bE_d8LnP35sϖ~t8x8G1f>'Xm:QV!c>zQ7(\OmeHg+zPd٩]_) }fifV/\=ИON+5%D""A֠:fYkUw+鋓eU6K{ ӯ/ }/pH]n^aJI3q!?&i:/ E\l~5Zm^>ۨdڝʴ)}w{wjn6W ;/,rr7-@#~:6,M}x{׬4l,[RקBmr3oij򳾐S,ԯ}-H$D"H$g#WuusZ2N0py!f3V}#JwR]|A]@\!~JFc5k`}'=P@Va1\"y1uvGݛét].yxfP )l$>[f̌\? W ϧQ8#ٞ 2  :>`\elfg~sY8:Xʣ_ZCPSY\٪.L-Z\igRϿ,?:YsY2dgb.5aN%xUUo^=d@%=Ga39"xY]KP#DRUbT4UMGh=s=fwPED"H$D"H$ō=.xC|3|#tg>0TV \o8@V؜5KdSB$O3z! qǠ}J~Z3&31Fӑ9 =N| ';G="F8.PQ1;zlۏk1(kP==bY1]I@VV3j)*J=q5pO/{+rT;aDLCqڗX<j%G` ^%YiJbLT.~:įXaw?/Cxýn)nW<C^=ؽy1hwF?S' et Rgp{>GOK@-ٞ4gx)8}?S grᓻ[:$ⵍbQI"^bX7X )/^61Q0W++ܜƨ#nr 8"NfӓYh4|\j@tY" a-Ԣ !*/~k c#""B- ,IBj4N`+ Ά=D"H$D"H$?8z7 )h2S{,O"w 'U.bCmHž뽞/GGNa'̋'i9BwƜCs(Ƕ+Z"?߆'};/C2p`]t缎8ePoJ9P{?ҷ!wTG]!3V7絇-Y0j-4dZ=*D1;'0Sj]ǭɅsNU<٨ɫS&RnhhUR oM$NˬĔ+V+ }_`/MD$, ڪ`4!rN )vv "dA`rxͰ$D"H$D0HpbKwHo<+q&8tM>}?:3, E8۳'{Ɖ`  7 /УWή"g[1 1"C9h?5!swg|ac@J&nllR7?>~ɝ3Y-[o_zV,ҡqswũxά+? J(dfӍ_jKd5k\Zvyvg{@xq^\;7#";ߏ̢m⺶_7R\Xpa 1!j3U8Bew`F ˆJ5,O=D䔉<|rq3%E[<޽uF]D q5]\E?w% _|N~6Mwǀ"EosGk i(vwhMCax\a8 -n%\QF+x~\waTCfS{)xި9]:Ϟ tm BA.ң==ƙ .d8uQ"@*\qv)o~뵏?UDV/!8k_拷?^32j";Ww%c1u7911S╃*~OHp~GٌUo)x)ַxne+?yxn+2뿮_W_"[[[׮]uݳ/*Çʕ+LƱ Dj}Ԟî;c[j-pЙ`[N@@TEM $)?~w6F)dU""#g#cA!`"B G X[ci͘D"H$D"y 3lM{`s1Bx(<$HRD4ZQeYxO8!!ZAj3j1\H*gX&8Cp8ăy09V>iUkZ; 9 Ou1"ȻoGc4?\wCvcEcKL[Kɏ?戄& N/?xūlM uدXik[3|~Ow.^^B?uiqL:BnsPQC?L|SE.bwww1Moo6QVɓ'L&i4EHʍp;AO(a]k9"VX!@LaGB!NJK-G?lO6ƾN@03%8cq+8CT!'d s3D :~`@~ H ,,W"H$D"H$/.=4Ҏ<DC>Q r@^t2Z6ݵ w呥4ГӖ<ϒDt-%pMq>Q?s6>AxlULymp.=^x9 _A xMu޾"z[ [؋{(L*ǟ<ٜMNL&jLᨙα\vor:Qqph=u"/"hGi&T50u:l?[|NkiB :h 4*,91T1 `핀ujDP 0.FwlD"H$D"H$gI1j[88}NKl2VLJ rHOİ{$ܱ3kzؾ=#̃h-U?]g'781ģA~e$XjtРzov^zVfg&4|~vcMj\WwVx\ c>38dUŮ! oYOp@f(Ff d 6~qwk\#ZˡPURSc8g@:lY0ad2"v߳Hp(WD"H$D"H$I|b4 V c0LUU2Їuy lp tvK`S qagcDݜld5†xjEL:3(糙ɆimՎO%=Ԯ\]Ynf&b*;|Nj*K^I:ܯSvQoJ<֬(z6j^0@95K Du/_>88Kxܝfzzŋ<777(7xT]pȮ(<}oo'OccߨmyW_ X!- Yj!12,ƀ]bYb~',S)scȈȁ !"`[VgiF$¶M"D#$"قЅK$D"H$D$+~"Ķ7PeGL5 I <6)dC@as } "2W{}9n.ס|hg;{ޡ-{d;tcvyz "Lޏ^YW֞6D Bߵ+ɱ7 "&}\c ^ag to}IQti[7_}疒iTՋ鵽J^5_rɓG/\8])W_Y|~/>\?P>yB^~/䏌ګ>^=H4yuM2^M5Eez{+J};)Jf2dz'l6(ʠbnԛak(|ojrRbLԘNĞ;RV:3Gyi"BIDퟵض- Z\v.W f&H$D"H$S 4 =">tI^ qrρߑ3$R "q-nÊwYi&0А!) 5JF2b83D 3qc"Vs LH UGS@]u沫C6lo1ƄMn-Fs\ {u-2dx[<}VܣAYd'gPL.MMv^kDR4f_/ШY|W_Y\Rɣ><ˤɏ+Ks}+& Lvtޘыol坕| j1 ]&ȉ3Vn[ }jtҫ䱧/v2'QH$D"H$dD_IQ1s8Oa14OC Dua y2hs$W S\y9Y'>#g(Ws "t![]!d3Kz @X6 d8 vhtWGCҗ|8cžD~y8 )4jGU~q1U\g\EHBLjՐ %t+8.f$(,AL0"EGuL $gÜ_-k*\V08 .u~xF!TٽL{e](z*"|pptJղvrqqέ;?yp?=4Az,ɦq˥ IDAT篞*ԌR3o|zwy\|s}771Y U+o$Νׯ֣gzn6M~?o֐>5e&ഫ:jM>yg9(\a}ƓVn33 ABD 0[( ׫CW_ˀz'( ݾjw.kޭmuNԝD"H$D"Ef|s jH4 6%u1",Ԗ7*__g_w)hwa<%[ΰ)a{4mEǚnD @ƊMGpnUjRImJL"!CDAَLLX LUpRVKJz2\RF$x 2"]tCg쇰R7SSxNh+ft M`ʎkEC9?"j&3XT4X/WֶkqUJV<1 l lk0iMK'ba../}|ы/UW~v{T̓DV335k4, ,ժ{t[ =VBFNrOo.tq֝ȏM2gD $`I+U` Yu{n=WcV,˗Q ) KD"LA@v%,,D`L6 t _a D"H$D"Cnލy#f 姯%CYp+X@68"7c/N0_uEu)\t/c7F2Nˮ# '688췢zv>J?"5lRq*:Dž~B4AA֝OK yH+M~ @"-d-RBg%%g[kOkY@4 @ r:qIahA2#[akr.RkqBE f f;Q`Bnp4u2iD@Y;]5\` gۜx2f}C"[+|y]"x/۾ Wv߆Ʊb;ܓUOi?zP&\NUVjW+LV8LD)XKkWvV7@$ OSL2!Fj:Sq'8̼2u0h{w -3VzHbmvΎV b7t{'-]59]]+)TXN2D"H$D"H0BQ1 o9~ZcEAa;s]GؘdgWT']vpuH5ND}+`8yzSxnEn"gGF+=lsP\?B ;?ń6Gݟ}3bm~-:&ZƘX(*>>l{~Jh9B0Ɛ$D$DO":V!p"Blˤ!1@$hR.~>^dqV?2V~POUtH04bh%T֣m7͝R>I68hIEitwׄI84 t&1Bp^XZ|\k5[y+3*LIW&aPH *f k7"3[0RQ;5OG1χ,.Q3ip:F[q\9gv&w`aҏE){{sK ㌄UU'՝۷/[Ш~mÏ_{go-Sj<v~oOn\]L޾Dpn~fu'_h54S鵭#PZ?1Y v][ͯ6J-S{+Ĝ4 1+]2qhf[E9+|#dh/[;vO pP ,EZk}?޽ϫ1e'٬.`?a?_r:Z!#vȀsx0~-xt2D"H$D"H"s$ŝ $~(qpqG]%'x\j ;j/Uj/OW.F :?"[_S=kNB*h_@7nsh}砻;};?p-2ȧ.TV 5X~M`U#Jj?Q}z|2T@ьAPˊD;%xoDܽUc ! q΂ũFW{aqVbTJ'pz28{}^}a13e*=aj5)tdh=BD\y99VGK7:{pC^=]+cB8#"hn[o֪>^E@aW׫zٚdb12Z0~{5zYP%LV+e]kZ:*˱XNevqU^?f^aYwf\WD|D_{q񣍥ăͩ,o(jI4ţw|<=ヨ%7_0U,عK k/2}zV7+\.gZ|ya*#7Fl # IK/ %SQHӻ9`BB72ch1D3MKGw?}[lQ& SI@j!I`*S8!`;L}7@wUUt3B""Dޗu!U M@*w CD"H$D"H$QW> s♼OH0MFFmOt0Kp@C)EzO /1.}Ӱ#hc/ !0Kl5\^J|!da6%*EK甸NY>v4yS<=n#ҝl8]uv "dE &}~0̤5M*9b8rŤZ$o$u/$*Z 4JrB M He65[pTm=Յk_7fjΑlpXno ͠xB~D]{>?J3=nuߊ;e6 N2(dxEkpe8mbNe|>MTT2Ԕ22dz˪%UZNFdQ=J*63wo}ŅF:wqǓ䤮'FRQrz*kbR?80k1Q0~||Ԭ6Ԅڬ* {_+Tt`*UTjF)qL"\cd0nPe-"o}?A}E?: A1 4#$+f@#5TTqME29#-ѭ;7Di cs@g@1p(tx| jD` `l3#2DݒX_&/X7Ih-H$D"H$!joFAA!}Gyc4ܞx;t?3bVCxdW'T7mi ne.a=Pǁ?=K-""(^4Ωo< 3k>Q =N@DUUvؿ7O ir*'weO 8k+`Bګg+c6/au@@U{m3a~J$D"H$D2Ocy[{Ϡ[ _)'Ngt\&l[VۃoĕI3]^!3<;{{X \;|yqkc`>IQdsFfᜮ+&tNtN0DD<˒OP,]ՠ)\h"i?o*Ri*"`Y'jd(B!U4cz݌k$'U?_'[:'˴1T40ShB@|R}`T'X So!8F| v?œ]כF=HFnYh1@b2G痖[[hsg~KkŴUޯW=tV<R)rQ^өtLSc8" JEӴo[sH>~; a#^ŻzӷR[]05ݵ_wB\KW/N*KSa, Vc?;9l>~ ӡ XL( \A QaQz=~'S$hL`BvH$uZ|{?etɰ7i:ߎeq't @K`D"H$D"DBƽS>󸍭?Yng&^=D$nMY8v Q;hO}cUTx)s)yÎ_D8 4pGcLx>5G@9I<8 } ]Mg[揂ZeYG4k\LG2,Pn}:Y׶~ ?]Y`J0UO;W8Gj2҄*b*)TsT ;g  $ځI &e4iY a1V5Jb_?gRXa4:4,怷z,! Ӄk`3<"D&pt Tz 0QWh` 槣5?2f!ne2Y2=ZIMd[-l^(-*PPFqb $Za)k\%LZW.?x[SS@_:wnkkݽê13-EIĴ˹NN%Ōra~jrڨWӭ9=[fxueF޿:?Wl z~o/=OfttKL"AVxLa UX z8? sѲOj[1g2x[``^up^GwwKEd h (Ɓ+`+j8G mz1=onw]ѡ{! ;3:#kʜuOJD"H$D"H Dޗ†`4 SvMTr %{юu/<.[0dhcﰡ,=bS$so} ׍K䕗wwR իT>:F{t_}ڧvԤ+hճىZݲr) fn25t*9'D!{wعb+mPՈ1 IDATPiaҝGYQ [p`8YM*D "F|Z_ `YW"2@ H(P{R,H$D"H$HѸ7@< .#RW`8t )0 gXADŽTGæv+V10IY\h0"+?0$tBD@BEQDFѠ5sd**t|{GsѯVDb+}| __``ݰ2boNO=(('Y߆"MF"kjGh\ d" ab @Ě6e7_EF# `u FD΀|}-p+P(SW+ d*VnFi$4^r(HJ%h&5*-%emӓSe$ulԘw/.լ\H^U,sl&{kOp(u]k5+uKXh65xZ\z ,SU{if4uuO_ d&sh͆h2LL=37Wb̘~rwūr 2 $M]0vݣ7 -{1Ǜy}CU[ -AXam)DȒl Ax۲~ 0X Kz5;?Wvgmmv}ɋZ9oݸyȅ w66{W6rA+q{gzg→󥂡GJ!\m?{¦<ʹ Rw޼za`Q3\Yi6j{!^ʫO?wQy _[)N46oFkņZ*T s6]*Ng8*(BV*&qzo XrD1$L:C 2dȐ!C 2J3,x.c\J–䣓O!#=)%eg~3uЅRm*6_d3Syȍ|x2$B4#x ,|KηgSe$㡭d,aEiϼ=ms&Hp80q$0 J Tb R  &InO}_!49KSs51p CRB$%#͗eo=]ۿ'v"& B2CC7$ bo2|N,Qj\\g#CC􇵟vklS[n蹜!'1mt^.4FQ+~i[N$l^rNbTV;}'˥(p5(pAdYAn+fq30 %݃JtƉm \Aq=uT*;֥+E3wɑ΄5Z3uDJHI)UM^?}XeO_}b}~S{dq'=Vif+5ʝ擏E/CO=E kTR,X(@n )R "  #c}, "5D 9 U(P}Zyx{5otN\ #0@8v P3^39tqȡܾ:L߄S-P/q(l`ȀÃ`0X~qFgȐ!C 2dȐ!CB)W>9E]Ҝy=E>w7ECR ZKg.e#"pE#o |>x=sd^^D.VxXh߶4*7wBXen.?1;s.K_5߿iBFAԁ" 8zd>N#K.Ḋ~Ꙝ ` ֞¥%,,Spl<0@) E(H(z5Ƿ*௽j#b"s.%(RYS?qo:PcЏKwat:MAzsFs:JJP(U'u:ʡӭK:-^Vӷf#f}v=7W(ٹ(p# w+օo\]_oM_(,s,'{{&m\[)ntCWA4ݎIl}}Vu:\.AZ7f׏B9}{GGW~$W^|2~zfʿ~rN"?_ȗL‰^}y_ipraW^~7@wv[. 4Iuv|]qzMӰMDqT4$ƘdH@⹜*/iG?wmt A@4f&H‚3(p&M0>?7fnضB4Z.\){!c@x}1h}cnLM9L]BU'K[ղ+D2l뗭BqeY_]ܿW^)ٶH7E+q^' Zy4A=wqg޽ʊd5"WQ L~tK_wp|fQ/zrhcJn_J^?Z\F[zNE)=_ȵ c7ܠzSw7:)ȍBGc/j٧6^~hqe+ yĝ;~|w{6 /|>FZ{z{m4/T+n'S Gc *.%#pZ9콳W|ȓp&ɸ. B.ƀ1X`fV C9Qc@Ǘ+oh;+iHzį< {qD0x8C 2dȐ!C 2 JoL^N^أT3dԳĉLs%TyY t ; >dxiL'y;@fz7 ,JoYh@:@4U^,#f8ł썾0厘,^a[g7YqZi;3|J τ~E=:xUʧRc" $ ) !D_7ɿl3KY(B\A cO^ޮ8Y 8ZL( >|,_Rn|ʢ]- ` ʬ柹ހ>񮰳vDCcxnq "+(\׋YݨT+v+D44[[7o^\K gR^p4R3] k6^o((o 'qJ +2m80~୭ZPRٰr6Uk^Z?t^{m|loȋy3t {{_ڛṧQko=yqTȽ[S[^~7 #/Ͼv˫sx筰k+A[ݦ|IvU-(I!H0{výF CO>b`jp 83Ã`3 y  >e\NJT?tQ 0Ma~hiH2Q!s pJ"`(|&Q0:cF?2dȐ!C 2dȐ|P2xLh, ?`@,&-*s-  &ϸ" )h'8-Gd,)E̎'UٔDwA q>:⩤rJ EmfpJ p tnɱW32d<-"3."0aK1$l9ܝ3N\n\I)9q $"INg=#z!r> MXAXu81?$l!82 ` '¿8mݨ &8#8ؘ9M8{ 2J"j|\M3TDz]-q1D@vc݌$O/L4.DDO<>$IOc?𓏇]"?P!# #II$Pl8Q5sgtxrftYxa}Nt /@h~L핬8|PXkp_qet[es`)T2\`v.\Kޭ7s h^XtnTwܩT* P@ E?ݒN)iksk U|ЕT2 n,4 q4K8ݭ7*`J+KPw67\mZ;_wt4t>yO|O_PY?__˷zk+NvJwjWv[ɕ"nY]9v_xq'˔Q:Ku]eꁖ3l[>5?' pO+wk_y~}Y8SSJc$80T4/rb y^ jOoƖQ:<:!c  %<|D 3;xѦc<05#3dȐ!C 2dȐ!ùdp}]^^MbQqոEo^*~Z@&-&o4Dfiv/@B!#AЦxHN6 D~^PL4yq\ ee Ș=@cMeY":[(qKk%Ɍ㾟ϛ๫R#Gq\_q㎷jЍ1 /(c*P 5-ynn<'b9yTTzɞڼ7M90QE]׫ +'axͽ?~ڽVi7mnДi(M'k@l,sH0Pl%C|;牨GS:Nn#Fw yNT 2dȐ!C 2d7D`Ƴ)CDÄ0(%J.ZNƕϲ/i' O?HO"|CC v*M T K z^i!j'&.~Ζl:3VW -|]b!z ^{!(C@DE#bH\*dF& ΜkޒĔXHP=48D!zGܔIx0l<1d>;`7XdH ;?r`pJq. ٩L1FlMnz?+w~km+%)&}@%nRe3N > @ 2.\奷sOmB=HV(I1d1*\Sw ,{Xb}i/=7L>04~ G3lrʛ.)/ƵsxT(۶}<`A(8/U[ǤkQ MF%CjFhht(0 Pgȗ8 j* ߽{^W ^E3xyRy~eu5"smT8^Rmv%`nyy[ hzBQF!g:hRDٙp,,bx   3~71=̋㕌 F :2dU# IDATȐ!C 2dȐ R2 JwJ'HKS⃤0a2"iCAooH %!Agm.ÒwP%38>]ɧgS3 d , 0|X6؛8ekZ=!NIPdD~pЍ)>s>B0O88I!(BBD Јa!g56_{ ZZk[!^6WI~<#.s;?Ӱpz֧d$d*x$)""bX9s;+m0sش18=w'/O""(v;>я|+4Jy"_d95YSYޑȎtc)0ՁIbaX;Ptxq]  7rb@*RlL% 19iR]z&݋4%h So"ΥPudHՕ7.;3A>G~Gݠl4XR0McJQF~FnsRnt3uJ cS0 MFݎB>CN# |];>2u}Eʲm d0W4JNZф.uSBTdhB!FJ/\G*,cJFS07juyS7_׺j\$H z/([|Hi6!Ha`KXhaT M{F`ݟ4_ek|IN/m`֐8t Y x˶]*1f=^2GjHQ82$I\#% I<$$DD"!S|L)"$4cAS=/~b?>Ys|K"Pɍ~3&gz,#B1 9|9 1c  YECǍ?QHfޒ3PE|P^;>}=u>sPr8~wΐ!C 2dȐ!C <~PxI)QB왔1f(vΌ@;5Z:Ky0i-*o|g.1´[^ 'pI4^n<C0MGdl&M1RTItCяx7P#D/ݐB y7PGr7\)|)3M@A2)#8>w[AZз!` JNXJ LFȔ1QF+^Uc ƗMNspzfq|B"i ǟ*I>8^׸Pozț]3$qpPԐ sY۩ؒn݋kZC½·4;~ƍ|>oK'R<9 ݲ;.7|[OoWN؅š}k^wc_+4%#" PG G(b,u Ln9l;$;m072fߚ46X:`FeAt-GD|:Eː!C 2dȐ!C fA/;I-%p A`(%ҶH[x/~tAKj$=NJd9!W֟ 6>Ք{ .0{b)@I ŀ:2HI%^9"EQ@$8@9Li^ &3`ȁpJEY'  i.g@lX_ePJpE" "0$@tY$ֶ4^)M+QqdV>jdQH΢( řƘȂn+ѥ5_]|G EcpX@vZؔ~`4PI^B0= OEHDl(R %k]6?7#t_!6eݪ.J[ (bH 4gLpIR|Tl>6,?`{?_%d'Nշor.yƖkɢiorYӭ?c?' 9|CO\P?izq4|+ 5ť"4}|3L<3WHFsf^ P*e2 QR$vJ!z!UHv.*(9 З*+x=T*~?BòzݾeZFzBB`nv̶9 vvvw\a\IbGRyFӤC!D ]Wov.fnsVW/++ڑ_;nlW|x6 ~G͐!^{~N^}`~׫խ ݓ?u~:}7 /}zO}zzsk'n A0 !ƉxjJ){G&<@k|GT xwV{ }of!C 2dȐ!C "u-xO mLrFsi)&0,Qd0̔]&J={l'C+. IE(d 0 " hV/j#գzCRj-۪5'j:ʖ+=l8Pb͡ 'x5hFZO$"T$Ǽ nd YrejgFd rI|~v;:eIqRigY_Rqq \Ca}wg&K*TL Ė8C;)=˻E)ەGY):gfZ ril&ι{ҹx };gv!w"DЕ>suE{ASR.Qr~꺮$s5ul ẮiYfs괚\^0w\Ъ7 ӔR2-`9|L<wp gW"FDΐ!C 2dȐ!C :x B'$h b13#-)]AĻT I2!1@B@D&8(x(ڟ7+_8~^:o4ԡ4FW&S3P01ɑ8S $$| .$cD$R Hwsi* \tMmV6HU YAsV_yu(0q̛0Yf:ezKbpJc (RR׋;'xe7Q^ Lɰyҋ|R H 4)d{d36!wi ݹvJ {1:@)J~㍗>n4.AD(;xH{3w I0 58\5GyN ]dPR=gfϰŢhyX=XV)`PG $:1B+tW/~+ftj-?D"ԸEYK"?-+ C]CeBW(]oZfp)ER"!kRscqQp]׭ @w=M9cju0_(J [7$Qu+J Nрr8i{sfi }fNLrB(v=DX/͒eC^eQtѳZa4|fw0ܾW炮W޾&iHƃb궩w2FAOղ`ڽf)Wo ܶe<ܥMѬ7zǏog>0h_`.7<[ @ M;L1A'y+_h>/p'ơsvC_Dƹ`1{CbD@a"ƀ1pθ` P|@mTN-5}h#5 2N|bL_Qc$dL&0&&@S&`95pvL{dL3Q\*i6Դ'bO[''+dȬ*{.HѦ_P$4@$ ˆٝax")P MWQ?;0Or Xq6Xȇc}U@/TU~>?[bݤSe Kqvp$p"9*P;o|'N_' ȅlIn|V^5"WS$ NC&ZN67I,i.aK!/W~lX<(iRB(Wl{v IDATm'؈Dc$Bfe˓>Nja#bRFѡC+5-]@bh D*jPHW-\(*W u%hJEB 4ϾtCp%^,H& iE*D 88J)$Ffj߷+΍y5DCz>Hy_z>IGx!JOғo;Tʾ.EqG9چG>{_|+n!q@zaOȉk\HSZz\DF>BmQa._v;v>9|_) RY8sv\) 4t|ZPr^Ba1%`X<޿_<_kNNwGc뛛nsZos#ܾFJps螜Ԃ'=GRiwo<تёk7zמ,{gP?>)YyW{^xvj^k~ɲnR|gepne3N9 tt:\FFw=b+۷﹂[(kp@)>&N_oO"$5hJSzy߱xǿSx#"tYgȐ!C 2dȐ!CsH?K@Ŝ84;5c/^~੭M=n:D!Jy BTaxͶ^) ΃vWL? -=JHFia t K縤saVhNzR`:cqSכfTtvR)AEQ1w={Yv\眪^g'bf0A Ea)(Z"%ӴK++Oh˒%簶>@Aii&Dd@`b^|S?/wnw_ uV~ߩq0YjMKIhmYnQZ+Ϟ?wmWr#HPCvMWk덙~1rVV9ϞLe6_+k66zsKF|uZQRPHJ&+/svc`ڐedEThN//l(A$[rB)p2Ja!8}5'lfvqysj6g''j9GwξkH@((# ww'=Ɲ@a !op_ 1bĈ#F1bĈq`֫"ՋM<:v# ޸T$xE .gjjx/M-{ي]ɻqb!;9!Q1Q;!Q"XJRJjjNZ'q 5@5!a"t5Dk;n λ@Dm7AljQ ӖG)& w҇گ6[\w.ga@`p/C؝^-z,l|} ޶Q(sv/֒E?  %\SaU!TN%W"Rg@`RJ6Фv͋[٩d媻_UXjӂ&"đ7Zd2 ߨM QxhScݙlfA ҂f`"2IV "(l-Ws'tBZDI7l60?G7]`mHp̄s) 8{y#۫,ww|I[؎K}/pDx{/n,YV*of// aۗ][2aT6G&ifƲWZrWd|Rbh$i1m#LCM2 ?i B@=DZ1fL$ft4tY$ˍV6jESV \сĤayZC@J2ͭR"Mrm$4$ i4]OHV92pp=LXVLؒ(aZNdro&m7IwLH5\'cYYKZIԉ蹭wRRIAfٶo9|rj<c.;-4y“ r7=ySm~ӭ҅`B #I#lPFz{MVfF3wٷj{{fG#F1bĈ#FWf^[ġ+ | O$}jW bKq؍pO6}}pJ)Ҥ9n;1Qj*ha|cN}^| $Ј@)`l4Mjm:=E%΢ xوH1ܡ"m+a!o[FMKd8@Ĉ:ͯ+b6#0{Ĉ6gТCK }η}}ro1{ao_/0q$J-,i5AXԡuح\a5싃> C݆??ٺh:)ee9Mk١ d )ܬ[iHF6\f& {Q ]蒨B -w_f:|ݕ##4KMS1#O?զm6 òYh+V7Dw"?mOstf H3?#w_jkvL:4Vŷo<Ԩ{~⵷||%YI@D2T*S&Vrdڨ6ɬXެ _^yɵT&i.mz&3V굵LMd$|nRwtrG.=5Sx*Ns}gϯ2L&+yӉ> 89zj2K>ܲaAҚosg5 ^]"SLL<[Hkv=9yC+.56˖a(h *ם1l~w=obxwRwbaah&-p1bĈ#F1bĸ"0Kez pվ= f(w^c>6wq [$ǩ$w,Cw|!WHYh\kŚC@Wg A>J%h`R-i'ĶZ7^SϽT28iz`v 0'3t%nG!W,o Ң#(DF"GΒW%k)!c(Ѿ;*{|%o'c,P})c|eÑ֟aGc$m9'PrƐdI4m#rzGMV%Nԍ{}ql8`{`!!LQkF D4ko~Ψ4x8~n=R-Cʗdh$g$rNxbzŇo14ݖd~CP–)-+O~ѳ&(YhZA@`tJ/AZ$/Sw;w߶oPv^} rc#5f}jD[{Eo_d|{xE[`{Zf>)W˖)BD1>Ki5T/TLVǎɗר7Ki e~)J6i ;q51PI"p?{5Ww>͇ו˥d}|ӧz?TCSu]ЁfvZMpI|G>lmm 'z*=qyo?H7}嶤ih~*h4 \ `'JL2V73ń=473lUgFR$/_^ 7Pb!{f*`+)N$׫RQ ORl5/o)?v>WX]߬oM/'ַGL~"$^5;"T*q:K.yVfrcs@*l [vr;^B3g[ͦR@ n3@ԁA¡1vt%sߐ/NwWp`FuTy#F1bĈ#FWf^#/wp#B,qa #Vj Cl?/do fXla NJG fuv0"{?y 3HRf ! 4Z?|*OòrmY4+, `,zHv= u!qC :ܑv6Y@@ 5@S=dBŒ;'  _?K=Up)so ipp1={~7춾w7/KzR"2v8x {)#\G O@)%$5Ŝ HaX@|n)=dNv@$Yk6O0װ|df+\ް1cx+`S(լACU _!40=vn}O{hO_:5%#dfDBF=U\/9?wd*< WXF_A@Q )xʭ5?6Co?_u~W]#%SfiJ@D$lU 0W]#ZIڲQf``bLhn&%8|!2G-j"0j &`X":Qkho7 V)9bdW?9:ŝk{KB̲-$Iô2)V];ilU|1̜T`f(֨NO'Lr ox7R#p[LZЈZۨ'sYPAiY)B2|)v]9?~ݑ_w{[G?[bo??O  PJps=TZsϝ}[`N RLfrFj?pƪLSb}jRY8ST3dUP\3zzМ{+k bfvZ&dRrg&Dq":#Uk:FXVRHgfkN+ 7X-Yn-^bvm}TӇrWɢM dMZ,lؾ\1S|0#(z(7+]'ݛw$~Ky ox 3bp1bĈ#F1bĸB0:a'6<ۙ[ #09`Ro $`gx8zc ub7!/npDoW* C/ <&a5hЎĴF]lηOol&1"6IpG m !Rr$k!raFNMvmBBa"!rZ4N􎘷!"B`knɪgaJÖ $Ԃ4 Ķ O!Ie{y@O8~^[/ Ka`{:>߶y_M_y2g$\waiԖCs͇&$4CI|_φ@hĶQBhHm7HؒMێ6YW>Ħ}u,S/#3~ٌ\9 ch_powr6+z >S=p8~PHhhؙog@d$f7O>^}#gR $3֢Qs zzy[ʶ :܀D ˈ0XSs"15{SF4$;Yz? &XWRD8ui "A‚Hf;hXt U)!42j@Bmkn/;@ѻnco/6vlAJZfIk,QKZ'StiɭJLP3ij-GML֫LbeR"I鵜e2ڪtƺ_ [#03} zd2|UmlPoA*h/~iL,ө`%1:Z"׽FuN_LH7] "s^=iH635VZKTpzpp@R;}?;Z:bh|ϭ3p\ojrz~q0QZ-RJeea~V۲-4ESde<==Nabb}E诮;tui!ϤW6+iJz7ּꑙ5Gsҳu<5V(]Fn?qܗy˘΀ijaO_F,ADmQ!v=yHW# {]FEOع܄]^#F1bĈ#F1A{q,FB^iJ4Z7ʩY-!#67qdZ # F5k6F(3 @ה_cc--;։j$E0@"aО` _K\_,q"p5\_Fnopkygrm0Z 8G_w}z9Mivu/!ZwS-U@*V]Yo}/7R '<ɇ&7t`g @݉s9m*7&oDߥ{SE4sgQփwdϝ" |?_??bbEEkIb֊9Ex׻/'zMGo3Ku4fܤ؟CBB@D ;E1. IDAT5;TxUq C.aVYNT (4Jv5E{i2fVZq4w Cod"YB]Su ;]1ƌov8;'&MǴ,iXYH%,E`Wdʶ3[/Vte~t?:VH&kMEql[_++#f4jt-P&a]OjLSTn`릓8_?nT¶Ο}^.ѣɉ_7o~UǞ}뵯'>{Zx܅ _8.pܥ.\:ǟkLVDV3MgXRYDtZjA6WܪZ^l<|G/-]{V~˄B*h6jezz,\^PJΜ;wĉϝ={#Mm&C~3{'݋_OXV+6.yˡZB=H!Rɭ5wdab J&pQw%[d/;6HtŝqICvUR~?:~=cĈ#F1bĈ#ƕW'!I788+Tn`jH #h.}8:9C 6TN"N3óC4G{1AfЈHvLjR>]5(􈄩'!Hay *Q4#)RaT\1d1:.R{w+} Ff 5Vt 9 )0%("Å<CȎl-~cv(>ݫ~AtrӴ|[y(.YZǃ?|Ŝ 11 DWԓ. YPK`Q Ye+bs2)_s9t֚qfD^2\%$ t}jMn1xϺ{6Cia@Fw][} ;t0\0҅ sRc^ֹ` R9Φ3 cӄj'+!~zw|f+]akvpy ˶L)l!I+K%9RJ1#F:ZDBpVsҩ5֗_~|O5o|_~S??]ު|sg.iȇ?Ͳ XZ47ꍊm^\Xqr*ݨ)"a'xso[ lY56Mf׿w|ht.#\fA&kI~t\b5vV>fٙiK&QkT~O]>%M;Jv3Ga^.oÅ3;K`v 5 ot2~l1bĈ#F1bĈ-O|}_],PyŸ- VC`g;cl|aF}jh'p$棆Uc, )S WO{_\LDJZ-(LIJ[.16.n: E2_lf#>(4&ڜ. !"FD@~A FM: R\Y4j jf3wfۺ߂bGUNljǗ{.WY-"𞛗>tt1W Wؘ}փ>2Qv{/Ms&2d.^e$D چ{懣f]DzB0'Gҧ]I=xnyOjgBf8B[i̬6Yk͝!m2$V тI?uD-p7}Zu)@M,w k@#@) AH&䁌Sկy)f2P:oBڞYLJ"!9!K"@A P#+ ȺwX5,_! ~(LQ3"TJLFPco<Ş4+$A $H`q:a䒘MiKD6i}@DX 34'yD6=f=nj^b Hs$$wb23POd6ӳŊAV|JB+߫U=@ac `Jor6!yTg3Q_UI&o~ sxjs?l&+A`TA [dSfXI")74Cs|O~泋 = F||=#}{_g4$3V:V"_‰ ߿G?]WntLAQ%C+ FJ yLຮČWZec3O?yqff.jsE*ϖ6޾i;SS)òij2dMNsyk~a7-1aO_Ϧ6I)#+m+9%y2)UZ\(!hYz:kY D)IMV|Zߚ/nV]Wy.E,UJ'lrp;zc_z:"qMԇT5XF<,}T=%x[D+h"]ѣ׹_v=&twF "F1bĈ#F1b 98CፑV`?vzWWDҰ[n>txvH542Ý'Î>xl{*c#<<þS sc/A79m:)B^{r+ZTMHd]tH i(/%anׅVy7vtQِSI5^wAwo+ւ6@$k44 *6hMM;v-.7CQ^O4Ŏw:~;]=ݴ}. ?1C!v߮hq;'#:hO?ef֚  zL,tϭ # 70 эLj лаoiREJΉDV?։R^9=6QheUjkc-?%Qc<*yGބB;L&/oֈN'= =@M?*z Hiy mh,l(}_9dk\2p{Cs9zd?5 )؜e$elO 0B*A("H@韡zU 9,TPitvW;ոg #)8sxC0bdFii8zT3 5Z}xZxJhv5F`$Բcf]EPq(JV Ro!gM$C9&tTD DRԶ" ȝ>GM8Ɏ1xL6>jebPh:-ƥk(@LZBZ8A0aS"%=+Nu-d W[JI Q\Ȳ8>n<Ň/ieWmBo0lo{umE\.^{-S<䓷xhF!]B{g84j֦X_OC]_'~^!r-)Wi׷JY(_8IX&W!0lՐuSC&[-3O_:+˗fUl7JV˜UW)"Y__K'3JrL/Un*nCS.7]w*7m&\Xz O??I(nHRl ˧%^t"'.kk5w"ㄽrse^v׏\; 7?¥< |Bҁ@xD;XLwX=vp莆$;g}M@{[#F1bĈ#FWm fhG+zg/W ?qd}ï+"n'0[4Xc%;;튄H\m:$_J@e'}?zS”dC@j0`&$dA!tikO10`EpTc&ZHm1 Ey'L0tY5,* \eɹ3[Y$5 j\] !  ٱP=z|e>g)<^{}0'.̟8+ʎҼcO/^{3kx>zn;y0-JMwS WuK5Z['lTk _t_{y,h?0d R0bn!n>ZԦzG%;O픮oCX3{ڞ'=Ž*4\:F1bĈ#F1bĸRZ8{^8q/tsh {кdm:o~g dž/! إˆ8DpZn|,+>׋$4ZbD ¹]MmoBfA{oP`Cd%'@l7>:m fHVYU`2]%`zr1F8Q@*4f^+m^_WCu%7=扻mja(F}e&S As3Rw';,6gU{Iڠpp+;gfv칥繵S3ͪ'%Kf}psLs2z\vg/FtN"0pfwAo ;ĿM<,K+Ou)]x{w& hRZR:.&_u߷GJdd|e X4@4y:Pi6`CMi)mii%LL)0@ PQkݔCf:TF'OW;5|lz55i@IP@hd bh9dY1I%Q {OmvKN$+6ӛ^ˊc֑IxIRD` ɖ!(#̹#݀BZyt*aۆ]kuSTU:σz#W,V[-T:<4w`\_\\>r`nnlMOOm ZQls9kk'2Y乳kc.[tXmAz_8u!;)X[ L&(.nM~n麅znb./!%@쑹٭ճV^qÑ嵕DT3Yׯp`UBڞ:ҲdugU/kr~f`{7+kxXx\hT;VK(C}ub]#F1bĈ#F1b\):?ch^ퟝc%C!mOֶC;1Rj9#08G1+ˡkXl]x?sG#;CG3E_x#i4.ɟ)VIn ()NQWSfxpu@sʃ)CK1B&/hRo'쭂KP=h0 _ֻW/ W"SiZ:}Ȭ9TPx3ķ;>|?gkTڱX! $ YI?)4 *B AȒ@&H@pKv)?asJ13+W6`К50 mh%MC=0`$/D-#v=6!63@ jKΏ*yp!:'_7uџj{z <1$3(4;~jIiZ PZ4N@OWCZd'j0yiu;aۘXY$d:Qo։j )6[)+asJ0LKr8 Z شέjd IDAT4]NqVC^Yx捊.]Lg%0L*O J~bjiyuymϟtŪ5tqJ-/qh@R[S%Ҳx:-t!o%S[ٸU,wC9/֏~,zdb . bw`Cڂ c}]qg^u>[eQp$ 巽t!1bĈ#F1bĈ㪢[;g^) ~o7?Ц"f' p̞̃C`ik)Qڬjo+KM5H(Ǭ6>6hOpiyZBͰM 53Ր@'ȜԽѼW/s* AwƟ0`,0кB5ɣIspse+5(@ NUjHNwt0^kOn7#w6>cplWW}F;4G`|8bj_()/O'f*\B& ڶnw!خqЮš#EDFe`SS[wL}-;H"WNM/<+yb[uĤ|jc+A[5<)5ʋ9Cܑ=0hA{#[7nHw A3h$@ҵ+o =84 S0Q(Cr[ʠZ7e'O})A,HNt" Ј|9|l"PQȌPRJTz@(lx۲ڶ*75Dd$ )~R "Mn خA1J vds׺Cw!Pі=w0JqM%`Z($0|@UW =<MIe Km*bOu Pymi' nʋߡ5-hefHNBLLϖ^Mzn_LeÅi؛ځZ( dE۶91q/ Ld K MD[~A:i6]7& I&,--ƇBO$Bie+!e %>'|osgw{N?gOvJ ʰn iJ,;P! DP*MMNԫU˴@rR̤4+T_+Uj x¼cL'd Tҥe&+|"L^8i&zsb*ݪGB1WHm]OfMwZTkZ_R,'.MsKfsfQLVT* FbT ;_8m.*nu{ "s.j$ۜs2;ƈ#F1bĈ#F1vƀNEMThGqx75zhgtf f`7HI/~A%榱ipSۖ|e)dS%@1BOH;3ېDF}`2M>ኧSX ̈PtEpLZU#-{1w"2@-OHhYǞއJy$7^ԛ~}SD]޸x:N`oO!pt8vCyM9^oh8d^*o_ߙGA;)3o,2F.,` fL7/e C${[BdI` P(PiTH ?g%6M&vZ2( Fd[4M&$ق,BȆB dޛ[\a̬o_z`0 "a9h4mIVX!)ڦ-M["AI\MM ( ,@ϠoR[f{z7ur9Y}<#Jt@8HD!")IR "TRIr8dIFRY,J4 H#БTkfݵ"1 D$"A04 *0bjF."D$#RD*Bg_~^z(LA|]l9|Yy( HH6+`(;F\q]v]t{ 8ڍފ^wxnۻ~>Tyw~_-/%i:>r쭛{ hw0( cNTh zr~GϬ^ tQ9ZfTqU\zʕã7S:-GkZ6YYz!REvT]:hEi*%ҭrt[C|z}T= ͧ޾\.W^rZf.< 3IO90Ѧ32ȉhFC ̐b1 2tσ*HK P䳌DfX ZH8R4!`!~k7Սz7i|M1٧ׯ;GvkzCV֐HPEqW&2kьqfDF(&{H!e`ŏL?38!Rf#ȹf&M|݋{k+d"aOO!e0f nGK#u D(h!ٜHwDXPnkkP9#q!ِBNC*By119ybA5STDdK/xp7>OMF8 :0S(n'@f1ɬy([P"W[j Tzf}jMW24Y1^ty9̻e-:-=}Ϯ^v陵e1LN],;B a05@r‘qJ=ʺIIh|nmjܪ便+%;fiXk$0 3?>; N^k!l~뷮R8_ l- ZgmG'?7Gg@Bq: CEB9n%Iowf6kw=NVFqS*Ui&V8^PtiУP8wVWo^w MVYFRpi@ӫT=aBjyw:Guԫq%pD%^A<|F5={9k\+G=}MO^h]K8 @ugGd$Zجv??t1h7J$*)I^[m):vq~{F/Xp , , , |]k٣r_W{ M X>[8TJqK?~jZFmw䉚L^] V$&'"[4$9CތϘ1d|h HD!8_b\߿3E}9(\23Xe *X75zȌA "A&=c,dYIX)-H!I$]\޽otz,WW:B0Ԟd# OțvMFlPg]oSĎ8ĸ2NPr߃=CAH߲V "a5Xglݠ۲}77[{|dg\dz֚{t0~^U-6XD%HLOE%& ISc,HYϯ|L7=+B88ݐ_uo8LlPa*VpfՕ6GY8{ZA9áJo7#fc%pg˲ԖVJZ[ Dԗk0KCZ5j7}GVJUUNVV6WT+^81_כ}?gW+N )?M8>H]O?8 /wlo fcV RJ]VTHB`Rf-Tkq($8QR-{z}%1|hQ^\rHw[w둽aۨw{ttcQ: ϿrZ*.uyhZ;Dңiڻz#[\A{i]ܺ}綶^yjP]7AUrursK^tӪaߪ:,VY>:u:};}`=֪' L'̶?l0|21&wאYĜs84*!+$oǷ+W{. , , ,'8'AyX;LP~~av|̂l.}Nv8τyQ8~\a @'>MMB]9}i,A$G^D{*%32ZylmwrQ8:!$w?xsj0ydy!0 A)bGh96L8AN9d)gG9NW{aVLVq~ :ߎ0*'cyffk-HZ$vAVzbGu@" ,oFш$$ D.L-J4MKFDʞGɹsޓk#y[|# 8E+KzY}3nØ}1 'cjHp`͜1ҳ;&l9'q2d^ ˓%[?NI8sr>MP*Jj~?]= @wlGTo]> EDm!1]#3t昍HP J9H;knAI6%()DF ADHOBRUz'aA0d@B<#bȅD`:gǣ9g-  1~W{Y|v$0N)VT<`fklj_B';<1a{W1+3l&S +|kѐ 6&cj]n/q-^{Jk%Y۝4앪$>n,^kvvϝ->^:[]Z^"QsiejI)+Ar]W_u_B?coP[k4K~Gg_k???m!Rۡ#߿NcPH XkA+NRW7 FBfYtz啕x #zƆrl$TiWKK+$^N/\\k5Zi~po{]9@/^~nn,ml[M9Zqh'05' J]-ݞLa/|߿7L#Vg6Pvٺ{Cg.o?#`4G+[o4d)W5G_%ĔfnCaa}5 ,;.JTHqf<8l,0HSj1{X`X`X`?x]_,u itl-:˱݋G<5+D1sEVKQy~)ou]Pbۓ(~|jlP\Mb:ɾj޽6OH 6]*aB@`XQ٤a -KsY&40J}MN_`ƅ7ϧNc=!&:_dR\/pĕ[s䢛!:.B¦(6ED)1Z:1Z*j4/q}'?S_AtQugps xĮot۶L/{*{z uElՃZ$qLy9Nh`L"3&ܯx~>ȿG~W K~U%Z1YeRt|bx;#32"ݏb9˓$rl#Qř4S,΄x(mH"t(_? _mߊkA)9 !90?9f^#gN ~ i=%jy9AO9Vٳiu?Rٍ5ikk:l֖*GaXsԘ YZ.w"8ZǷuHח F5{̺s?hV6~}iYJKH[P /^/t4z0_/gyg^CG/|ݽS~oI3) TJVPe8DRovqH(R`JnWKe` c<9vas^ R{]ō[{;)?h.MϞ9ye|tоta+٭֖0`Q$+]-U^-f쟽TJcKwYV7w!G lT` nF ~Ͽtg^NR'hZ]+^]qZr0ӗ[N=$ý}&xVQhV16ռQ(s\"/ܺwl4.4!"1'q&/3;5] %={ IDAT̑.BN`Q &€T:6._7aP()ljܝrAЄl&+0H p|ggED,ȬhAJ+n? ?x&IFS9XN?B2* 8kCq!I`eQb 3 GИUl5=a^\:ifgN'Sf-qv7v{qY&q$tZIJ@wޠ<%50 xr+H z.,xwG,@m":jJ=l0lu(6o̿d?8(a{s?;ֹkﯕer޺vZ.ւJQPDo{zJu}fZi@y&H@g<0'`G~+)Egfۏ1E=( Ux=fbN= 'I{{X`X`X`xxXhld2Ƨ{0 EӉH3fNpˁƀ5(,;@/#e $k QQ[W@f# (YP;ќf|TBFRF2 HՋEhFcNfEeq4anQ\K@v0EgaSȄZX-0'&'yM'(O1 ! $BfPJ"*թmκ dkP`AQ,L `ͪ~W;RnU?v+Qt{pӅA|zuǔz#0R+;2vfƕ8"qe+3f7cRtYy<}'xv)c"̯jƧLֲe@< <[ٙ'MjX&`0n7,̹+_F?ѕrE"1X6!B&a,! ]@Nb`$(%3 r6M 4&isYiZ$szT&`,`L7vUYrZýI-`rܻ6S`ߘF[Čϱ'w1ފ05zF&=Nת者%T0 K(fJ))Z(Y@DE.Mgl߂y`:'x{GـXGIH"c{_BDAPsƓa+ a G~Ѣ3.2_u`ZՅMn7;g+F0DLVٰQ(r!;{4]I%g= <}:Υ^/0sü+8+ȯ(~2%sǺr,/@7ژ٥A ' 'qo#w8~l eW!-hkA6HB!"0ͻ-&8/"aʹB$w>b ?(ǺPl94& 6XBkO~ngV45)81u$I<ϵư$!B)eR*DWS?FT_Rq/r[C8J"pJj%ŷBxpK.ÝJg{6jr`Paqy!V*69,r}#Fv4 ̈́ 6(,5.|Hӆ3-Ӈ=ᡚG&M܏ئ 9; lzfNyP&ւlPxh{+_ш^IVg;lL DB΍VGn3r OrÅ0"A|(B?1<l&/eoe> oa`y|W!4Ϭ@ ^vڑ7p֒@"8&F**33oȟ2_6q=g9vkF=N"Zk̬$yka:!"EB6JI3[dVnwU$jZB˕a/SQ0bTy$äT [[AURo0B?$UhF. Zy/nj;wF.RI@B HHٞn2[b"$ FJq,# aZ+MC! 8ITaEbctV:.3^$rTiX^]!a\KyglMirS:g9pxx\*uۃuڃr}`Rp}cag'߉8&ʦғby>pd"oVqH[kЎm{ ͚rDIT0 {7k˯a@  ڑkeAYf3G99j?F̶f$JBL€̠jcقekcRr8Vo.xX>L2|G=go%a\:UH4]ՒEyaח-'Il6ϝ;{pt7(+,,˸s00j+ׁjM$,$^{lTR9"I$Iiz$=U%Ξxg;|SI ̣fM$H}n1e<1! ЩA2Fk-RXkyii6XynJJDVK)pj (J+%`{]TjzAuEQZe ~XS5 i-va ݻ緎v+jt{o{fï:A;эҒ=Bf`, ZFJh`LKG0DL2 fbYM+ԃN73 # O47}o5j~"mS'ù]"%8[` $ђx+Ǭti6.P"C2~dk1h9|{^00 s]cR*/jIc >ym{*F;6-aRu\Gs+˲́ܬWsu@oY{bcp%UR2j#[q,&p ٸ- 47Avl.8'r3a x;M半>yGǧL(#E A^}w~@6Pѭ3}[ ZfDS!Eaun))0DEWJA+(G8"TH4# Qܣ,;1 32lkSmcY[ֆTTD$56%m< 3s2]<4{ Eb=:9gZ XCjI$gA$L{,v|s?9hX+KJp>$ gPȣś&Op>#O&*jqlzx#q}7#$ + L1e\Z^$qbl=Mdyi776X+yp (ʝP"VրY6 Eh,FTXR4셁GBf7 %i(9Nb %z&VtS63ݼvO\4)QXe$8ITlǟ'A!2e&%d@&!X 09"8)-(q"\fm8q8 )٢P)9+kluppfIjX3븾b_8{ttxv{Wnܼȣ09jv.]ھ^gKn8ax^eRzrʫ7VS IDAT77@ܺ۩֍Abq]~95LCy"{}ɊxzoGзa86`qYX`X`X`X`Bx@|*p9渔Q9 L`lEc"+ W~Z_r+>U=H,9wG^0/*Lru"P xN2Z*TS .m 3AŌ,yB7s :1W!e+7pLL+F6^ 6\۽Nu!5pR!!{,P ̜;@FD!ڲ㺒 qTq:IM$QFI:v'Xǩ $(QĩS&I$թNRmSTڦc>ؤh˩Xm6408ۑFE1ןtE 3 H,$ "rnLIj!4os$dAabt 6u1Ar'۶̋OoDŽ̘Pixq黾lV*r SuK,&NGJy^D2DRI ijD}rSm^9pZB!R3 2)hbu (tFCCB Rk^uUiwx:xoIY>;VЦ8v#h+pk-ZdRY蜆Fe- DZU*Bx 埞] .4}un^~?w! @T{ۻmk)ͽ,"}p9*| Z"‚sfCw`0qi I2/@AQ'e6S)D,cH(oJT[vFsYBR.K3eiO%5\ .OOY#%HFÓ)<8Gg2tڪԄa %RM\4MB>3mW?-Mvc M4m̲b{u:IIiIkeYg= z8MaE|a"} <SĠ(L21w]aq\:QHkݢ(uV{ttzh<Fo 4i GG}흿+g$AX$X@P@+RJ#@!0 TzTeT2$>ϔ1!LgW_)Ow'sl!(+{[o?ޞ/4焫FH5xi+oKל4_~A|%]aVXaVXaVXa/O_/3nO 勂OxfP+僢$RZQ}pb_i*l.q bv‚CD4L3TJ(hiu:%wuT Q% @u.0byDD2יq,WdUs,ZjD,Uk`u .dˏ\&H.ȀA;ѸCа{R@PB^MU^-%>'.+F٥| 2C俻EJ,Smh-tҼmιrU)bHP!FO&]M»{>,{SU4^|~a23?S|3_KZی#l4l'Q\6ƌvl:E]|q{k,+n];;:nNl4ϸnx+B}a}r[oSDRZgL@( `0 &K΅d:arcS_޼Y/%āHBYC`:MCxI {7Y\SLD9ˋQfv;ۭkgo #*U#زW}z>}'7,O˙2_ltE sYV|٥XaVXaVXaVXa?`|BkIOxYŽBW/ Dˉ PrLrLt?8P׻Gv 4s ]3'ul9Z+2/գQ;cx5d"QP'+kn'h˥_..$_.?eeq<_ х -l( %(~?,[Z *Rj>02,^+e"Iǣ5_dQ\dx؟nn[xltޣ+=8 ~|tB'0WEdP ŖtuR|Ů{V>u`.BD n/۩/;'I'fފv3 Q4N1Id4vǑu 2 @D_($@Y+,D$¢!jQlDD 7D{@JDLGsX[[SE9=ml{$B491`4IxwoN,h6G͙ukD: v|[;1Dtgaz[cgb}yͷ[Cչ<|O&cp1z'D6`Tے=<fŭϽyᓑsrj|?m_yrib, 6/ntN_LD^X C+ + + +Pp&\A'43\ʦ]r(R?u7ׂXs (P(D" EjSuXeKm@):\v ysyx1}Md TU_Z[ƖNj[_Mϩ%ЧWwyC%P !@a`Oz6hʑڳ!@%D%yT:B/xǗOT_*qn`EXp'LfP@+NNjR Fk@6hRֹDn;kI-6k~ak ~.2 ֽuC(k:Fw;k}N?`n!nIk+_8cG珣`pgLl:X;[ RrePInbIZ! HyǥDd5C\E;lc>7 .I_Q$a :_B^Xq! 5{( `Ynn߾ێyzxx0o.IO"w~2sT^&Y=.r;+<ˊ@"!pXB ,JrӋޭ2{i-n/tJ3U}yu_r垪UƃGD l QY1.R^L܇C !09qFDϠ.ZX\(?_ts!H4K4v;hGY`866aäin5R䣸5q؂kAMZװ`?jh:W;(, #*DNƍ$dI Sg{. O 1bgGD7bTb<5Z_^< $˜IJ\ʽ ;"i€JP7Q$8/R$Ya{υqJٌu&SRd(ڝ+<˕Vn:Fpsw)V:Bxl$ZawyE+vdI>==n5;Z_\Wz;N߸Y{]ᄉwn?lvkqw_굣GcTG~r[gm5'nn}?m2u^fڭ06e!- @@" x+ŕ|-׭&epzygb~_yP~W"_EaCX^aVXaVXaVXa/C<_l%'s?͏Wfe/W(+Sϲ8Dq @!8s !pADAY3A0?AX $TΝQXQer+kU ,,wDAJ"*Dc,m9'XZ T-Pfh-9VĄ$A LU9 p:{_q.e?Ǯ%_7\yavFZφI}0J9k:"jwǓIDPZ(ON.i{Dt֥q,MFzIsd2i!\*_ud~$:v3BDpv' IDATinm7k鯼yϽzOQS$" Ȉ*5x, 2xQRdt 2{q㈋đRsT֤5q64Z-R* ;[4;nMgx2I☔AuQxk[oܼ5MLNO"hݽ,sEf2qoI2 :%aͧ]O?zУmj {x4}|qks74dWoxv6þ< mhGY[{gnNN'gFA倂7 {U_ ".+\vT"_ib + +Ń+N?[VXaVXa/OJ<93Y ╜\RSQX" S?QlI.IB\&CDTL BbEX=,:":ERj]AȀ@'Qq4qgY$XkL 'gHN9$i89u$jp"𙝌uиM.ѣ/у|{3iFgʵ_7]rOg߇bhݝ-92nmf+fFЍHV:: sFZ5ו%XzSE4p> y~n +z֗< }]TJ}s"YDBO/y_$U]g`2He}loJs{q:f xE!9sa~Jn`.03K\# }AO7>3yR[F/E ~ʕKz O?  Hx.EK]C./x늦dOdxƆP ,BԊXE 8AIԄ9SXuy{V-b|vfN&c)Iӳӳ͍b6ؘL&ѨN R*?w7n?j4%nsdooobg[Z]((n{4enE:Ne0qȸREjZ'u[*.6-iy4S YZ-Ӊ_=@F;@*(=au(B`- (s܌f4b,('@XkZFQFe6ڝwYC0$Jf?>ʭqAoU 8"4utg6?n_OPp+yaojYvifS}gOh֛zh<:³N|VolFC:;wOzew8^m~ }뺼?|kxfQq ykw?8o ;?x]V2R X^]sssI8GU.0~+6/^?VXaVXO7~Ͽ,pWҗ]VXaVxCҤ\%YHdh.|TI0Y"7kdg^S!MZPlE !@B\ީV3R8LDJCᲯ =Y@|v hYz.ǫ-p 'B 9SV>|-_w:s*A3+ߥ .y\+1hPITq3?rE>2ZHiXk*I`)P͝ߑbY-J2z^D T}NQA@BBT!r["Lf銡rWA *&a}\fSJ}pEC `yExV6x Viu#LHЄ(\Q4 h!Y~8П/ӗ &%u(1QQXDrͲLmw{Ng44ZYm^4[(2'ڭY?M:F[E'~ggg6zHkE:m4fiEn#gEa qvGnz&S8 ڿݕE0/+ +g_[.9F^;]VXaV3 ¹O`N?[xv̼ڌST8}.t 珊|\QQT" 999:uQE^g!0@T 󆪺"\\N,6~j`;^2ľLri<) qw?Xf\(h4j]:HkI;&IFQ;7,&Q@V~_̦wS{4]xx6<|\ЁGig=6Ƚ$[~c-qagCrAlGg{{xHEk85s7ܟbN蘬MS5tj3S(0o=r#2H؋R\'竛B\ó/rO;_M"ރ6z꭭q-Uy-&P' jqyA  b@";Fy+ޝF# C.U0_(gb"|L̗.,yT'M%5~Xʫ p1 WWͣQKKR֮@YWR .~)* G4My680omo gt;3PƦ`NfYg)!d$I4v[k8vwo`$v1Ŭkq#O6dݎc3l$bY|Kf51fl ;*)2sV9>{V]j@ hՋ1#*aKQs)ܜ)QJNc)"vEjY'4"iښ2$ 4$ (B(gY ^[_;<8ƨFv7X!)2dvr:ZkFg=i}k|֨ 7^ߺ9 zz3-]_џM>QOrgwMe'nku|0X;7O񚹶GG{gwt2Z㓃7IhIaXa%WQ(|?s(f2SW3 0&}atWD(exD,REsZĉ#r#">J XjnU  !&"BFDU۸UU4/HudX\S%yz.=Q#R!85^w->4"rZ&]5TV_Cf$Wv\$DcSq|SD5rVNsPR6/]BW)d_ ѳg+y_Ns!Ϭ^b.WDua D Qwϔ)Iq BZ+Q%IX3pH $w6Qk{+HhM'M}; ]oL_'l(4Ňwݸxxn}Z'~|Ծq}MOZq6(?rJ2#3i s-h iA`+"$bJREPyg@/$/_&ʁ/|YBߊG;i.Ηn"3rݵ[jg,uXL`.Z1jGkzWa;a6)H{!0LQs-\. NӈZKrB"V(]>&PT>T.Vs k *8G%XofzZ!O~+|9}Qqz9(d@u"–1mv 7Ѝl$2 p]Q -ׇKsUw e=j H=9>n4ivg{g?3ƈn4d:1QEGVBq2f$lgVN&oݽ}<ʐZIjy1XзZDl&u v;IJOzɐ>~0kGO Tt8Km%}j֪8>?||x$iJ$ !ҬIJbTJ8 q!pl6b]ӝY JAil48xDa4Si~_!&Q"ϔ6EQlon(ljB!XF[S{0-umkooo?CDv1*C.+̥q? qWls 媷VXaVXaVXaVXO0rV/=Ϝ €\)@ʀ @E `T#om{ٙ8Rщ1yQ$Q!)XEQQD0T/aᢰH K+ZE {DZfa`u5AJmyJB)-}o@A_UҰ]DAHm. Y'b Ps ຩia%[i^]dĚ\Q2BUTq XB !"hh n"5TA6Q Gh#=0J $sVU5U.Uj[@/4O~6l>Ly`Y >*$4rbؤE5;g-: ]рIZi!Om=r67qMӁ31Ngu>|S?e>{49.oA*nvn^ӟ说͛?W{XN[4 5Pmզv:6HH60AD,"(@ #6abk-Kk^N{5}?'z.-"@a`GɿW_9;fuQVΓ Eƹ'/fH)ED%D% J֔4 J@ r+$b?:~yY YAe_ *R)9DKyq J[n!RTPUU|0Q_*ZhN!# B@JQՊ\zE-xU ]!W32#I9&H`KA $n#^Kw؎] 7#RXz("H" `DPP9T5PuT\>|\1r|i\|_tY6sݼy֭ۏ?n6D|MhBN&Vk4۝!缳uW"`K[uṲ̌)3op(y99m`ӖLjx۝+'gt#IՓ'o}k,xghiFc4.:Mt=htݎwړ<ڌN;>z{gH(Opp6lHIJκ}ܿ~z||D9PfŊTNs~|c1 5WOER~_[~!d + + + +|@tpS^L6f~Yxoj( ,Ւ $@NKQK $B!IqL mQD&5)##Vo .Y0!*,G",0< #FgJUҪUǀTJ.Yn媡i(?/9TA*%8e?Ml˟gK9 XdD6ԅYP-*f2ρ%iE /3+G9-i|i03-P"+)] `pHUu_0|~^" -=e b6Yd-2J10onڜ4U#2$$"W.!jd9xs{ð4 60I"4[8e777Z=(ǓHQ; ibk4B2"glaO^-7.⬐ț;}P~&}x"PkwGqjfNlHn gu%I(T@ | H y//#qٽv uգa9֚7b[.OO])/bY%(zb|WsP@DՒTs~|˺Fb2.^r P (ċ *J ",<>lҭIl@ IDAT74; C(A)BPDH(">xEeޛXȼuCSbi~yWKru.դUua!f-ErbWpޔ z.w l.3_hFu ԙ^Nj*3,$u5FHJr9Mx؇Cu0IĆOs].(a ‚ X`٧Hbb!Ud@5EM~^닾zAu^"\j叺$ֺfuvOQn60MBGQ8f#?G$;{_qGuWwL7C ZIV5⟢ +(, q %Fΰ{f+2n?xO?{dDfVWKannnfn>c eQnR$Y.I(wYLcVa4PG㑧8d~'1bk!\dd %BCn}7k=﷗'?y^5=c=c=c=H:;h6߈z!!{noruj kI!H eUf)Yο|rǃn!XH8Ny^IG$$7Ƅ@"DU~P9"b {$.DQ佯=yjEٵLI]9s7UetC4nALMMXM7U*).p7q{owv؞MQ~M:- {+rJorZ]ze"+ ԓ 2(`uB1mf_@;"oy>os.I<ϓ$ b("8Nʪ2IJ*NΗn u~o>uj2QTVezJ2Evt̋p0]Nfig&DD)ː/O~A4P9]=z@RB\u(w|Wq( ʕ Ȥي+Do}T 3Kz%zfTJ{ưw Bd "LJ0kc8pMݺDI\'_R?F$jw, ()*v:yx]iUexr5펒̥d8.NNOH˫C9[0J\G$ܷ]^]L&9#h8~oE]+gj=t.T'wQ2E~) x(ʲA/QUug_cxV^|Ƚyy! TiwݩC;Ifp}6n{QT՞c=c=c=c] &ojkm ?'{chnLw M @M!&ƈ!XE[V9'?^u7e'脏 $0Z43ap^k.2MS眈QMz E;ڨ$NsFVZ:BV{+vZ|-%DE@Dခ>Z_FUh֗ %ͅ_4@K?~e;Q2פ6%n uO&MQv) J\DPK &X}iK!)X[Q `YaX[XG`_ϕa΃違 (.Y)DH0Z4QdH$DZGf4vXT.IӼ/m/EEUxؼve(ѻ ۷Ws]NS/߼(rb`ٞ\F??Q6Hxu/g1OQEwHGc3_aNL/"Zz]0WXU@Q*p R,H`[ u7]Knޏ][M>p#,۹y! n-Ql}&tz lˋH8VffaF ! ee"zr0~?8FTLqBDDIAGvxrQ aDDjLj[~C#YL^|gM^u-!<KCl^U*ں{N,MtwZT@)Q p2+bNW͵\誈&Ejt{}@Gn q,B" M~vnȩGE&Zq^_OEK:jDb @S$tIu(REKV>4'er܉T:Lߜ]_^=?M>T&f=zǏ'ѱ2]jr8 QWB?WɁZq"g_=:ZElt0N޷ʋ|6^IyhL_ Dͧ19@@R@UDQx[;$ 6N3l7ibS:Jt{֖^BB.UK ӓq_BXʫ8r:Y^hz[>|Ի\{ F JH;2gѨG޾޾<?E v\q2XFG&I'R:G0ŗ .U2oO/f\GTUQ;K>x(O_ww۝ݞ$^=o~߾ܞ@{{{{{txvKPm,  aZ"L1/z2?$Pf*Lp͢2Mp6RYg!4V_D=" )ʇuNH|`mLPR,,My!Vjq09BFKHHֲT٭an [=1޸ڱ7[} L(Fl޶ۍ~oӿ?8cUV>l㑴=v萭M2 (@AA-jEi$e*=ΝL-N8}mdKI*IYQWºg?_}Oa$~z`BO#7u>)ۇXw"Nwq~&n!+-ۭ.jyCY liPsKC2 xk%€pa .ʢ=e0$Xa'qőBP!&Zn4!➍?ܬ#Y[!dPAh<"f͸ Y7j]~6Yvo:Q:wbab]%z8t7n8Ol'悕]D_\fBdUĝl2 ~_-7~~J::Leq 7[I?jPb0_]z&tVsgzR^^ƈQwnɛ;4Zj/kxZoz@MR "M03[!/L#IH"""l&%dm z `LTW٠oK&(m^hi2eYr"ãr "n9.bvd9-HWa29 1<ve2LY<;eFYzƮȩUC(b/xb5<'OF'WW:Py \$q>)>bUGI1Rk/?xȑG`3.wsgs>*J|wۼ3G'?yQ6c=c=c=c%B6=iC|IQ'|EK& Ј/[NDP6 kvQte?ЗP+H,.KR|E3֎5@%RIaleko 6 HJxR!D&*J+кx6-l`#FU[9P1142b+&P[[B'=@LcHc Wr7%٥k6 jAjݹQ !( PJB lVMjjªu2dEЂq.m8,n)Naǭf wO:wJ|g_X<b4LN=?xޜȓ*Y_΋Əu9.9O+7دWF+dP͢nꙩt܍*4!fZD)D%FDld#G6zmx[Aܓv.x*,%@}VX!6)WޔJɹxԷP9k(k0 XX38 Eб̓I G^ !V:4"5B!:^&"$j\lz~ ft K[| !WfkFkYZo+O7s6M{%om޼ZvSަMn_=bG*T )D#dR  )/*egkxk}:Ug3\:WnYA~q|~r?^_φt:w0zo?(׌D2=/k[Xs~?}]-|<= |d' 1*'^,Ë>%qz؍W+vA|rVAwx>?*?yZiW\ǿON:(H*@;(n/ڸiYaq{35h{e3|•=c=c=c=_M{hhj֑(Xo5v(v(դnF` (FD $12$?·r=z NKpJB.#BXRsNiµE\zY*BD919Rz4-kc08'DR3153 EZ jQ/Bm^E DF >+@j?Q}Volmcl[eu!.FTD}-(î1~ '8w~bht+ֿR:@Vd-H@HjD "0u'TK!νw^MRaFX?I5oVpG7$4;2 xdwɨW?8pyR=@!V]d"o9M<Fd"-EL'2tɫDE^>|5ffQg_^zz !Xt2-TtW~y=_(JaG|mL鎤*>_Oc|/͕'۠>=-~?Q+P~|ϗKP[Eb&  #)@=Q]wꂢ#P$ 4.; oo+;w%@p{^ʲ!6< . c&=FR5vsF1G0#Q ((D ! !XgQB~'qU&M"I,hSA$"EM^hW&0|=Pc-ZEzhm@Pݎ cdjxF9ܲ۴ݩ]p]'SK"4c;.a᭕<#4ښ 0DM/ $EZVfg*ӊ',B.B.RJ;X[/003 cSBz&if={]c 3GQ"eYZk{^ZTQq33!EdiU(%IuFI.,IJEY9jm\V :ı$t4,.fprU:.;>$ndQr1<_ۓ$1 ZKΣtqJpj?kHm. $)e(mŹO?d^,h$߿nB:T+閈L-_?e쬀(cY|PD*X' ,XSi\j=)U%DI\%"A@Jt/Nr"4VuD΢R^U+*OW;v4?8);vˢ ˬOg|pzT,sW}_MY?zu~3we~>?_~fj IDATB;w{MJi3Vʛٮm=h\@=c=c=c=oeIlkYi ۦ|ᝳdwGI BKԎM@H0/|UtvGOϖTʔ?y‰֊YZ@)̀h!ԞȘ $&E:6)IĘ*(,@Du`fYFaJ5ʬ҈(mXƍs跖jEDp1*B$jc"xC)m}oĸM7 CoqNͅj–v^.Z_.ʹ+UP! : `QUeWLCv͝3ʁ0U ,"Tfda6V;rOh,7)NrU6`2@`!`L2t/Fkq&#RR-(.đp c) {=^QJӋ'Ǫտju܉_=Nj9>:(:zU,2$nP|eI]g~vxW7;⥕?9\B$zUo8ϟU+y/o=N_^@e"K*}p_M"*~/ cKv.L5QHF H5"Һ o:@fe@aix=KK޸迷O=kw`2 ''"Z^JAxxsنtkdÈĵ_hR䜯Tk ̄CJi[9" ^90 ! kƐR j۪# "M [0!B(e3b3H)Gڽ&Zmsn]o8YW&-PA5?.|{t_J[;qw@|Gnbhwy Q&a(HeVI.|K(Ei&鼢"1(/b@= ]K?q\$I1$˲$Il63 $Mh4\VI""3wjʘt:8<\kq6zp9h5G|}}.dUQhdg6XMl^!3agbU+/FeQ׳MĻ:WڀGxX& /K2 p'OӷWo크~}D@0B6Am":XLcFeđ. >Yf/s]wVxOn00q($&`"P $br J}zwc-Sf&V{Sv'VoH{:ĖnzwH RN wu[ě|m%f5܉RX3@rK.+uVS1x24  fĨ[^Tkv}T%k )_`"5uڠcJ;?_U=4Dh@;Rg}k\EI ʻ*d?g*нzx!ϖGY_}3_Ϟ=_}(DFUjf{i4Yh?"|PؔgYcW{~y=VNB&1뇣v<;/ߚ4@Pxz+)UQ a/TEeb|oxeJq <>u_/`3{`RJ*o>+5 9PS)m9wz [ o@DsIBzMhb@gAAf ,HB K`(ԱCa^ ҄Q(C6{;tcCwV}/m&X%7c[E(mdhҌU7scD3724a;!nM4:M9] ۙ0DHZH~Q< R8X8[Ղ.|Nl_4UA(b D(!4* "xOlQGkZk"*2/"nEiL;0EZA9B@ű2:_|JiGPYV4KWKc3[[$_.?<Mw/ =:ƽn02!t5(V!xkIۥ$Ziˆ>Q ^RUEIZv^T _:>goe3r5~iK暥 H Dj @B.jw;"DG8M=3jq01~'i"`>TDJbDpΫH$Y'sxznUʘdZgtZYI U(:$i6]{r/~~8UY秽q^Mfv|'N'5Zb9c@5ʇI߅2+g&Ǻ]s,nSn/嬚ڣ˳ 18 ÞɛN/[{h.d)[>_ Ænjv{{{j/7Fy+A" nq +֮mo6`5V\*Bh)siΏ\$ |XOWy)gHĆIaD"ZkAMX6T"TuGK,/8IjzʪRJEQdAcgT"1"¢H!5mͦB"ЈW:/)"Ԅj!I EjGinۯ .[>u fGpC l 7{[6 6J[}]|Sέڀ †@r K6lqH܎lM=5D$ V"(a€(5o*+GJhZ3!-91IPIP 3xھklv~[q% PM g," `0G??<~dAF3YƆ 8DZ 2UtzX qvVt?aWV}z022?(=읝wP$(<_د~?>EJ-THB#ܹo ED]xR,AZHiDtkc$4l*$DsHy <Ss@!@˲sBX{.lV7.#b٭~G[T@7l܃lNm`h9s w[{0S`Ksc(f!1* @ JچEf_x_xPKW.*A9"BZ鎭Ma6sGCU˲V|ޘ,NCDz82 YWzbZDzl6˲L=8<̤itԝJ".}(Lv0]>A8䜁nI y2\& q?:^ x9;;o柎MS[(񠧮旚F u8i%J,0w: ""HM/>x1t|fZן.jFxmh j_ԬxBD9P^ Rd`> J"E9$.aHXi DH|D&Yya<:(^-Z)؇2zFzI􇸚2ZuccPryy9uxvӞ[*E%IGt=FG[t"t''g#2%O SĞJ[e>Nj.BΆ`+>|iow>pXyw 7 `hjux=c=c=c=mCZ6kh [|6pq0 S'F  h/btG/ˣ?_drgGx>g u !fŨD)E@P xB@ 5v:"231VZWRF9!=&CJk iy {QDxH YZ4!(6:ʯFQ!"R X"l"N*DRuJR&|"6j 7.( w9[])c-⍶|vo8mvII<HGt:γ|!1Y;56:[!@UO!$$қy"BJ9{"B$a`52<*FWUetDL 5MH؄m #>vMAЎNar 2ۭjxs0Л| M'N@뷫MdbicՂ}Bh4#ZiM!0^-\B,RMj^3 =`yҶ F"cIQ,,jfe.6g{RFD:LkUUxDPvP"tJJ:E>{ۧQ4FQ|!F㋳(1qN۵R²}a?tUZ,<~[$;_^޸\N(2ht`]bV*TucY/ê?yPO'\DF2,A ֻ:" FHclc0"I)A,FR,6={&MBʒ[, A&ƪ4FT,NEClT6"Yˋ(%KثOL5)QM̈U\pB(QS#a5lQbMw"`Q HIUI4 wur&+*V_^%_+_n|DZFޗI`Ej||aӨfU¸VNꦲDжSըQEDZ*)wec LQ@H*Q{R"U(ɢD2 [@hXNa>lHUp4_c_;wUĵG:SvQamyY`j:chl S m/&s~) @f`U^[Թp\H\x銿)ʀ6縞7F;ϋHi}CJNVٜOK9Y֑{i *@snA;U!Ͳ*oZd2{X3ι`P.WDdI&)7M̫L-WAb,zdꆛIY,`Xx,K@W墔芼89?Ig3?.UlL~,%ZR>Sg |x29l8_/~4]Ca^1{F^ 2 t9Lx/<|{h'yʂQE!.]a7fS`DDyd1Hj"ׄ Fi" ɬI:DUDB]'YVb0X\\UB^s"X{&I!R bXf[U| "2ӳX(A|\ggΝC:;_}~Y{aEQO̎= gÏ#? >{w8~o>7'u6?:-~<~B3.RK4^$ "a&n)5ʪ6ﵳE9Hܫu~C*FW% eT'&1 {D0 (*1YX4afa!$IBDIvv^f2D׬ 2##d&j[;`ϱUd,A"R1YѐjIY uİ(mZeU`7f[RKg IDATK^VE_)]_-п^[ߗ ,d_\t})R]XqǷeXS \L\`Ȥ o^<_nfCDQ>;6REl- o=Mո.J7 u} 3o67ܐѻ0iVq^)'9-DݔҺ6CɆLrzWOH_!x7&1OIq|NsXCDmkSJ;YLϖ|VeõARRDPF U¯_A$IVV,x<*TbПfeyL"4M_ѨiRL{ 4L1,Du>_^rXt\س2swu|xlk_g1pv6/kӣ VIK?FZ |hPS&'O/V8|yrgIF>:JLG}xϞ]oևsprDZdojۭ ւک@"d% م) lz"bh(M$a]5jY$IZ<1B ~,W0rAwr1?uki\1Gպ{YG;#~u6MhLNQpH<[NiS8:Y^\ȗSu@,՗ӋMMurdۻUqpp]ϞN׏oR[H "^2t%iݤ`k6w}mb;5;;;;@/cd(h!Ք1[YDz&R U\QU6DZ5 `%)01Ĩ*QO  "2BT :nEEDD9h 1" Yu-#j&Il𡍤@QUKЅ`mjT c MycDUfƄiE @Ľ:9~K񋆀@v(h$Q  hBX׎  :J"" :Ն.coU}&:۱6pשos5rB+hیܲe`ztE#>Xآ*j HLg&6ܑSL;!ӽ BooHZ^JGg!@;!?sH ČZ#"{{Y3⽔,!7<~}Cx-/>uC"3;IE|qW/O`/.]}qd$Zu !vMJP"RFQ @n^ϷW-_蕗׸Yî)_YCюWy,kbc!VQoڻ!U ,"[k{o,@]5MB$lks >I6sp1ƸU4H$X ؝Hw| *"ZRT5jga}4UیVOE#*)*ӵ-m9Zoښ-^2Q1vԊ#ZmEp1ĺ>tD p_)yV%knU@"Zan {Au152#ŋ{{{Mx~c *&EJqlM!ֹ B4L "Ddm]'֔2\T^_zgQ)rD{O''\n#-In+rFcf>j_ze]-]' Fjgo3O rL{!2{{jh$-=;y[̒Ac*DNQno bk) *]vekcB *QF!íeѰ*H*;N31ͲFF~SDoMXfO&ޠouMCCp/hW`2MSE~~X_\\ƮXUH}\4qMEo Fh'yUy2T}?7xaixvrNONz fFµvpof]ݿ#%7ͻO;lvavavavx>SL=E5qZ鴖2Jr z`CD:cc o Q !!h>:kWkf` mTUE[.+WD0"H_Սqso0:0s.6NIѻ$1Igc%F%2WEƒh1@bmKJ&Bfк5[&B!D[a$$ju!? p!|M"6&aDNZbZTD"` >8!&*0X'jnHW/hem>5sW?'ޝneuZJ]Qµo] QqkmasouM*iGI~Au -eYXK¾mFȧStFB$PE  ./m|# GP?/R^Edɥq;)XhHy!CDZ *mb۪LrYb^ ljr b}zjo0:2P?y4 |KMSTX?Ͽ`*8|V}}IlP,O}}ΧaQpo>s/mӥ[Z2X՚bIT ą4IJXk\㍱1zcY;G`f}l]U(u:u|٣) icC[{ ŨE X{a,lVKlvCOTA(u!M>":1mQ&vRUDRn҉ll-([UUA1 Fҥo)TUؠJk;u`aFh}V;2f$0FNێNk״<'ƣ7-_5󊮕'HA @09Ar{S| uާy,Ww^\/ʚiT"I\ǫղE1Zky~zz:s &].Q?eͲ|tɢT̼~}?K<_\-#ϊ\H -ou_Tuhy0~l*h{iz^7Ughtjժ.E4Or|H8Pkmd?7}'!_m .HTM101"d)A#"DƘ4 HD*IZ1sF|>VumARYΧYxH00xT<>;_Ƿʺ\,G/^L/ֳ'4GkPz'ԣ[2Q=8:ڏ1 1eI2*J_1Bel} "v.ͨV0ŷAsr $.;7eE2(DdF,2K85f6K emlͨj5A4_B!ltnװj\9^-g{ lY\\.Qls3z. :FykwL7ף΂@n'U(J i+ XʉbK( 2U "Mze~Gzz# h,9hrk8JWzEKҤU4M7..֞OZ`y>b8f5 \V!mVQJzt6΅)wޟw/b>??//&хg=qt4}$<Z;}Z{+)y?4 1rcS*Bw/~K6!6A޶~%*(C "jTA [3v:q73Ǡi@12"D1A7LD.g6(96Zahh})[7jxІ6/rgWZ}3Q WtQm!d:_ft_]홯ϫ?w6Zύʐs@` j !0 神켱DJQULZYjƯ$$Ŭ /$IDռU銢LlA;lW:e1"b1ht16nezes8,TloHED_diu₉3F\b<1E^M&ܺ}4rR.'u 2'wLt )7`EԧҋJe o tɋSCAZuwf9un'xt͌Y (*#K&$Uf1hl\.bXAENbllUUվٵDDBc-[Cd*QwӪO$NLRjMtH~g&-  G?+=A*rݾ9?74IbMPΧQ\-'0MEoK\:qKIF[A[Ǵ_?I|Iok]|;ׅtmeˌВ1]VwÑFbj(IGtBvg=sgK͖6 TDT$XQPe}nɕ2)W?! SGRrH i¾OY,*&2Ӻ4|b3 i5HlXFd;c3?yߑu1ai3f4YoU/r2|Z6>=+=6gU2].~i0N_,i||LjΞ]ny,仟x/#7xw{tjg|GqxG+,7E*0oҴ^Igubr:%j]lY׫B/r'dӧ/ʗ Y2v>^\\XC咍Ȥ>DBmc׈ѐlC( M@FHd jY #B,ڻ!a |SMDQji$$MCU[8HSDvs q˲Ί,,j4tքp(}Xcey #dBBŒɧX3lg}o׿H?w/|_\Fk`=ADi YDx~>NO>:Y>_'SޓiyUlASQB0 XK(؀ XKy+&B\s_-ֵWɤ Vl/*LqIU+b^m& ].Yl[nvl[^$$W @BB-bEj -O/g/g~tzP^U!J(5X(|-*nEE2DIc`2s' w IDAT@>D$FCdM@Gz[B o-Yިc/;: UUhPk=n> MrG,@7#mm@EDb"f6=hfXDYzDlT͍s-[!D!(lUDק񒞽Q.ݾroj{k"!k'lɺMBETŵ6h]Z7k"zc/4Yw^Uf䥟n~]z ;ݣ9+=?9>^_fSW秧y/i:8,e2Fe'jPd& # Ӽ |\ >M16x{$b:ZkDtU>.W8?"iD\`\x(h4Lb1Fcb۫VU(H$骩?;@{d,yaM?*pURoy>41ך.VN'~o5&~,>.B~x׿X*+Ӛ俪^YMc.ֻv{NF)wa?' ';;vْBm^"yc-݈n6?Rp5y-ґksΠQإ|&Fs&@DYUc~\Cm:!E )(%X6h 7&*2]ViǠ*a12E$c DMSk$0Z0[4 FDDW-?7~8M_`*u.B>D_H.G/ lS4鲉Z5A Xɢ,M(R M@ U"ZFQ+S.~i<^+Kj־W(F,)y͑tլuU&uq݄[iښP㦮ⶂ/p놯ҷV?Mة-,]D{ӋN}[i( !TTQ/-ɯ_ycj&UЈrU)$+~ 0$_%AcA Z[VUeXaf"A CeјG{ߙ.޿M;j.j;wa =egazE4{8IwϾ=K.ΚY=?|ṣEY.gby^;ws{+ʓ%%25`=7{Q}GKL2Y׎Hfu3b>sPԧulWKdž0dr H9tAAI@ i/KC )Glm:ݚ>|jߟ7},^r-)+(g_Ib*m.$ Tmk|qDE4M,*}M JkEڌΰ2! pض5ݍnۺ+Y_txM[!"nkgkډ`C|_e9š|Cgnpy\75U܇7d}^[o 6!pNJČĪ$|_k(jDT xiaz%U}xxX.N|]ܻwnڔd{q>@raXYӺl$y罻ϟ>yQ[G'a:۷ɳ+_s {JrdqD/;Ϟ>V Dtoi7r֛ױrE/7a#wavav'%mڅ27K eus¯UuAk7xC?1vY̺uy 9!2H-IȻ31t$ѺAZOi) >AOT45LPC0LVCfRFekrAj 1f4oqnࣳṵ؄¤ p+E/#"G`"r>Y@4Q"0hRl\5u@]U18ăB@{&1CDdröVv#qvUw;nq-}ͧ;%8.7kVQuV|wu1l06,0b[$_ƴ4 0 Q'XvkiM~J޵@XIF_n**pM4 MmmSk˲ 4M(uA]@xӸ7jG~xN|xQsk?C<=wzU@^s1|q0ۇو?~~g˥o?A>'S_?>-nn&Yz<2i*܂/`9>|%&`ֺ qZ66PDL'6scU0QTFL*fdg~t4am,!Of_=%6MQk @L#E.{w!"PݘO Jd6kQDbfccH"ĪxO"zbiY UvTluzI}ikȁ]e+:\cOq36݋[Y 扵;Cd3/'l#f{>戺uS2oėp\sm o=}>nK~u@H+j6HIot G4 2nQMMh ZWf{{[^V~O|ժnáĘgj5?V*~Sƚӳ3$"fQ͋‡*+@<88hIXdt(kx0x0xl8͝gluų,5.DE6&p*׼HX5.?*N^ǟAX߬5mh(HIf B6a2H# $ 6c<3YB{(ł ĺLӬH}a@`8Hb?蟜GټQjC}(UiM$i`0M^sWbBd?m=_@xt旋՗?~ܾ/ha1??$MBFSɧgz697ݫM7Ďa#wavav'+^َ ü+ ؓBF$Եkm{BC$"2"":Qh!Dk"IH̋=p!|VAb y@ JQP"M}iXFH 3斌!C@ Hd5o|Au_^n8\/^0q"Y֑jOSC RPEqީ(e KV \\d0O@N;ʎ,5ߺd$}!nKKB%`vmkznQWJv[vTl+L۷.[M^nܝzu WWo|.wl݌$BAD!ȤQ)<,MO=43)ȂDV29lN9KnUB&~LjoC*l̢n:MP4]V^9&MJzr9/X}O*8#gb-=?kz$;(/K}giv0|z2iߗOů>0?n%7dZ{Lw=q&ERMQ;J#J"Qr S"p e8? ?rd9dZ=ή}vڵwPY.w"ac緻 /]OÝ,^{S@ŀhNl\~ {Aq̐Q1')0HZ (Ѥ˷S~O$ro~2/A@]sK~~)h`aABZPV2}{ct HwBJu!$MDE G)"P)R*HZNN}oYpu~+g$0=Ve/ϫ_ZYѼN>ڜMeAdN7Q%'\YS"6m**lgi'ܹH1]V@tq 9)+.gD[>4I: _{ta;:jx,=Fa&җ|X.9<|7C@wC?%6l5†` 6` 6`/Ul9c_9Lڃp&߼ IZ!R~k_G&CáPgI) I+B !Q"H",I> V kR˜*tC-Db9V%!1@FjŝOmB( 1IbXRD&pC ۿqQZ!DOPBkfH40HfDIi"}`BJ3*'3 3", S/!tVS;ZQ@(xF\pL<*llGva%%7sI=fX 9tyX97 ?y%$yC[g_`ևI\5gͽZ(p"F-H$$2"D 4 3ZON(G$$YJ#9|;zMԬFaY}RS>hlz#L {g)Ɛy4m $n0N95N庮z1 Xk@L"LJZ2Ɋ//\X7csM^|Vs/>>v :񾒽aonZCFtcWw^>H^mھt^9jfTk['n`|cajvx>o_7/!6f‹ðTF;ʬ4$A'4D!(PubFdf6Q ϩ\x3ǝ-W\ssըG|ʪU\@1" o4ַ܌iT,9RAVZg4GmcX<"$QJu#R=㫵 !cb\%1cZb? "`Z e}=WW5[gk?Ks9Wx`=+_!B y{@W+'={1WWeGǑCdU/ yqծj=L=k\'ܥ)6DkW(D@^|ǘgibuY,1zgIQ`ъkb\dYBc]գɖaxtr<ښTt{X̍֩h8,&7&OvvCV q!YeHm1;h29=YhM=ֻ p 3U㑠*AdJye[NQZ9$(|q;3 ("Ad$82v<6 bD KQPb[әVm8X.IbviB@i0NׯgIj6>$K\Ʈsm&㺮|hb=*&ia]YѨKFsxLXm t,AF(EjP\/K)!7`6ll|<)ȶ_pE~l{j-(, `tPH!s |WO FpuiR c;Ƞ:/2m& ƒӉ&۱! PD&M"0J2E"E  $Iz&Kw}O1EQHXP)P=MZȈEVg  3%DcDtH$1B hI9EJHuiIQF  !À zv˥3k™Phs ;g{g9zMf>XYHέ^ZcfBg5Q^rc߭gytvbz$, gN}vYIYto H, AW1mGT"HG]|sL  pORJi5k6Z;ҭdRWV;ۉi72?Q-IldayсT ؃YZv{oxХ@Ӷ~-y~24En^r/ܑ7$ώ=D;*Y& {WC`(R syY0^ڊ_4]o_~>N B4 ޟSlIAN;Xҥ#y߾]ISw֋QA T "}1'~Y߮\u A~g6!y?_ { DI3w: ^Okk{f-4@'y@GG G>\fu+ f}T >/.**yAB®iAe<ȋXǘڤVH IDAT"eU4?>:'JN󼬫 \ Šp"0c^e8 u׹D\y-˥@uIVUun0(ڶ1rY00u8D#Pp1"` 12*>1DMq87k{B./L=lp  `<;+^كzc "+6W_V+`/ و5?{i0"90#WWӼ~g3f50 2̧>ⴆP0Bd@Y $tNq@YG(Q3o@IT+@$MGmiE;sR@vI5/޻^N:>L"Ct&iblPjwl{[̝T2I.)ߵ_27J71%E;gLJ!}e_޺֩h"}a+~}sw5G+ID@;3ђ8s.齓-@pq@+kP 3h4zޘg!ei 2(ժ!-,7M# tV'#`2*%Yj\'S_ +"Y zh<)HxTM8]IEPuѴk}acL䨵ffR E@)B hۮ!i4-ZWDDB~ Ɉ "!euzx? Bkyq>0O'ޫwvEg;y-Y ]/*\SYKγP bO5G|0,^_;T>&xvϾ횉Ġ㛎Ke& !"p@8Bơ}0tu Z5s.m;] !Mv]sD|uYl&8hk4]Veux4T:P6ppr`(D셷^d4QĤ$#soy5ԡf{_> aq:L]*kI8" "Ws= 67lll]\pM K "1FXAMo+2T WE 4sDZAXc>(gۦ&֡qX7ڀbƳ}]*r+(E TuG9Ě)u5ָ6 ")[rK-]#ǿJc!I`@I*@}Y*<ܺWm@` AGAbD`(}K1EP.Jո3Rdee㗞Lh^,h۴BJHeFJ뺮mEV8>8e!xߔAQMSh4 ǓmܚSk˪,,Rөt:GQUUƘhԴq8.f˪Zd8p>nmOՍ|hX mŪip{{XTu}|r2h0TZ5 ^ݿwcC*)M*:-s6 lZV{psɴ,Ee3VTDAb·Ÿj+EA&W*шH 1J (R1G dD +RJ14U='*C"#5ڄu;VmceͲ$I *e u]\.3C\ "eQUfv5]M7ٙuP䠻~k2]](c?޼g5pQ-QjnV0u=LExrp_~Ib;A'Gq Ɨl5?k}'~po5FgS{s֐owJ~?܋OF;/5RMCWg^3>i}߾xL'mll*pйX% s+nѢk;g(cMDtvD҈*FaPEek%F4:Rr$'9P[2 BfhMzDezZ6"-H^1);ͮqmSd6XB3"j'޻x~o}w*k|a(23"gW}"63C ,XM.0s >J1"\kCj|bּ0ѥ^ A2F-ƄEk"r'ʝ -XEKo4#Do5[S5|I7uX={ۚ66iT3:;vMLzh.=/M8e`GU"Tz elUG:Z-]Å%%9"+B`i 25I bZ1Qasf!&'_Q^_gP 0MD늩Uo$9k-kwd` "zHb-":Ƹ%l629 ~vuDCNj5[&+}ڔ5Ϳ"j}yDB8Y ׏G~^-J&/?ƣO }|q _ǐ>bȳ( Ѱ*x0u"8J!3" b5I"1@ynO9\|>뺪(8dgyY6c;熃c˲1v]gpNe5_e]5f꘍>^,dBuB8<:Ҫ ]iIpAGn3;0:6uu#Oȡ@we^}5̎eZ_KxzԳB=Ĥv~m9kʘ'*m W/a*gO}2w*dW98F02 Fdh=}M#5]IN,>8Mv'""9 &"55m>mC ! ApG Sj۔Q}p]F[Ȥȼ6TgvYEcd;9.LJ>cldo>nU6*^innWs/dQvz`ewx| y O3Așw_7ot7<;:6!WO?ܯ1gя7?oEٜM~~~O_]4~~w~gp>co⟾ڳK_şhK7` 6` 6`o(m?[xE ѕߵ6$ CDz @1 #MABCWWc(}J:vUSt"8ϻivL,vuFca$|a`T5b2J11YRyK|h栊e0{GЀЙLUãa-mk +:xa':څBkdBu!2;o.xֿqxk%Jī!DOo׾2\.C?-޴ !~QfqNfNPR Y¨t@ϖ "Z,"Zkf!~F`fŌJ=UM>{6I">2TD6Z"a3G!"@̕Mfѧϯ+l˪=UOGӵ2[Mu)%pxZ?;Zr<ں6Ɩ]: -in\jOb'iރSIKOǿ;vmPF wy @"S1 za? 0 j;"̌Ĥ@ Mmp ``T'*O(xFs"VUҦkuq,N-"w":7EVDoܟm\njvT`t)Lz0ͭeK_90c2k#tV֮ijJ3 FC]d?{Q9P"iTY@e8{zvo,~ Rk۶w׻-Oo~Vq{nn{vtGdϼ Ͼ]{׶m_+ϾϏϾ7y÷|;owSwIqxmlllUY#$E@re\Q 7P¯ H&ViMh )@i;Lis۟n3DBQ1uqwiQbB`hA4uycx\]o$Iۖ9n ,^} Ӆ=]| 0Lk6twA*8iԳڙyc?_,4Jv(n7eÐ#0񂚿N{3i KAm̽EL r0fR7> FɫݳϨELHGSlc33鯿@ޱG'zN,OTN;‘%LnJ:kWmu@Hudo듒@)Ac0`3r1VTPO+*P@Ash5 V"ZPbux aTWiȭ qVx۳֑Qe"!FsMG+g$>1n6ỦBP(F"Rԅ AD)MG 1Z)c3k{!UۤyƝ2HU6]A0:H*Ȥ0N DD=GLW\ !yz Z[@pV` gqQ$$YVE*}d`f(r)(g²vJ IDATb(4q=;J.Mz$Y +ty?DOX}ԇOA?shY(lq}{*t2_ N46IKlQIk:4Ptw$/|`ι<Ͻ(IRclgy'u]c|]"]uCY2nݾy||l GZSEU{ׯcSiv0t]gH .\CkSsY%Yv6zwt4bs<5xѧi,wйnn| 'OZQ׵Y| bg?7D 8  z `-{/svD"k):kJsNR>!*u>UMelB yĕdkH&rm,1Aы@|an۶bd 2`oryU^OCgڶ ͏MOёsI]e6q:e)dcWO̾w^/w)~q_n h/y"Bt ,I,r)|E~/J _Sܯ;Wz[@j%q{30oGTj;G__ 6` 6` 63 Q7_i oVL4={gemFD̄I13DJi%zH$"DI v,US9!zLcluM7T6a#/Κf, e" ́9%]U'6>Bщ5Vi5kd 1K]7ʟg[Ye$>R骵I{ڝDWD8 * mO# A^И|QH9RDŀB1&ƈDїw2w-ʙF'F$Q1M͆CgGŊDUOMV̷54_?׿؞. )$R@D!^AQ6ƐM XUԲ ,$x6bױlgN@@Փg/ERG>,z}d?_"O=--Kl@\*40B2X}؍Ї(qEQUUe{y>*GNamx o:tV.ӥ7wbhhy " &.vөN*.V2vMMxx틔h˗4L~Ѿ4}[ԗ^~sқ#ۦNyeIxuN{.G/LOlU5ɂT%o;+OhMo9l G򏇯nW|>K^ܿ}9KZj@A! F1*V a3Ă "s.ZL]!3&qsRC/ XۧVD<|u9g"$E={/fO:_9ĻƳHqIUZm'u&p|NٸiR3O?adnj1dAOvCgDw ߹-h X2e,cXq0Y$>0Z=/﷛,7ԅ(*8f!tRv]*FQ),m%E.j*O+ʁjw@sy$!f*#: 2IRd d)i\v@۠ʝs40}e}ӺUWe`\Kg \G$B&dFB:'cĢ38` 'G='̖QAb#[ $sqƓ )MTCaea[J"E2\|~oQt,q@?ywc?[n{#͝ hS`6 jeHB'NFYs0wY;qf״SkwQkZ)D=9=A&WE_B[D=]ux=5\GOֿ}ыc/Z$T=(2lr[o;gjwFՓ0r5P5؄t9E Dat!sɕRjD s&US,F mj8kJ(Q˒1kQyX&5lg2p%# =fNcCE^(Zy=Vޱ>G PIw։RhFі) (Io@UjuCbǸ?|4:0>0J9P֊ 0]vHꈊNAabUE*TeEL'UQbhMǁ8Xצ" x J,meB^xbɺTx, s-TqIʅ'?߈ס!WgL皟>8t[Yks%bFk Zτ"DΓ‡Zc84ZyNDQ!bQfYVpIJ鉼hyKj"R:f@"A`9{ F*vO`^;o~˼KW su s{?;Mm}Gxai={q:xO=yZ)`C)XfD3;՘Dg!iJ&C"8.P޺ڝRwr֘mV*zj-N#PJ֫Nø)sY cW0H, t +JR !en;Ps:[o1۷ '͎\.xM>69>2PWR;iTU+VNMM?(Rn TRH%MԪNV)!FGGN5<4099*2@RVÊF4rbr&_~Il-ww a({"o?x7[E> hR=U=B;RX s:B+=A`af!1$mdz]qJ1;K28 4A`%&)Q1;04i rIan,VZnfhlwwae/N'Ӳ==I TlvgڴjE5˃Cmk%iZuq.tJ*پ[j{-uNϝ6Oqg=lgo!~͇˼\pÞ)Wmu3|m[|iI/߿ 3^k?/_i,n?w_~_d7}ƪ~_y4m槮ڔ:zJ qɯ?O~抟mtǝ}޿+Xl}skk܇ʗfIC}SWt)?p)gru@@a>v꛷LÊ~ik\䁯٪rqMї뽧_g?Srˎ,;s>k~yٯ}߿M^k|[{ и}g]yxX_^x W/Q0~&O}{OK?sѷnyמ#z\ ~;~|v7]ɯ?睹^Sdoй̷\w>}}/YZ{w=]o?Eo>oL`m|rJ}i.<]i>)wg@w+M%=w\{ۧb}3sg/yuӷ\ i |9o|Z矿I~ޫV>/}Kݵ'<}ݯ8y/cX2e,c Y 'd)"1- BgB0z{!QkM0 I6 îϵA ;pw4.ѰNVKL r\I0ʬq+R$eV Hp<+X! =rY7<>u$ϺWޟQ9p"A xO@^ +ꩅZ@-zRfaN᜹G@= )1[OD:5 fʗhe%L>1CQ0HFoXԗj| ]1d+b7M7nη2 ոVQI@`KI@I=I)$B0 K)DVΞI JKBAٝzBn !伽ꃾi0 WH`N;smaAjs K|-,K_1@s\h4;<ƙ()6nuv%`)eb{)eNT*9 YZH1JI)sRLOOU(, U S))d)'IL6eP WԲiʺF+OLR)ɲ=<<Rc*QuȽo\ +Ug`UӥjvoѪ067oacuF0wVEȰmWBr y,6񍍃>l׏Lh( JF72^tI}c}a+aEnLpvuYo8CmTaY#eEZT3xʡ:Rj*Ix|ҠΆȺ\siyJ%FJq1P*'͉@ n@/)J AL&w5g[ ۝4P 4 dB8OXHRT&"J@"eKqŖ8yAh 0sN YȄ :甔,>4ϕZ):gPȢ#{VJ9(S%{&XܻbywasKG.)x{ B ՓE) s/Cɀ#\7 =X.(}ʹj $]ܿEdόRġU|rƩg>Sz#!mML68Aʑ!d9Z3>FNZ3\5L2;;qFQ޳ݻGW43EQ#4)H\"j>0 43cjպΤFk(DafY"2>(k؜Q\2$g[%<"웘*Wk4aLvPr VT*&VNekdC%%5nbj<ۻ\$yW=f{{sӏ lݜfP,9 E$yh7|GG:=HALDBJD."1Ri2tIv2"je pIMf%jc Jeiu(@䙳,WR& vbsݮ*WJh<1uvUס26zE<]'YIef8SԆ*w3Srk£^ñ9LT,c[FB m Bw}姞陱6ٷW<6oč|_=EKvMW\o9I/z/c JyoN ;yѥO9?d5gV>he_?ܶx䭗_oօy/_|Χq{u%k=o.u7+vFwgS]_̊'?ġ_|풋/_߼]K :EoVlX_isGSB%g/=]33cy^\7>E__K}髗 ;6|م_q?,~? Y4{7]{9ӯ~7tO{9=3c\7/{tI:>~K/~}K|ڿkO=} 6}y+omln_3nꢋ=wu|[~^o߾wz75gA>|'~>fGn _~_asgQǓnѥ\uN{w뒯7} :[&S+;՟wW]rɷ7i+/ >p/Wc>t{^r^ן=V|쾟~o^}ok__}Nι媻4 g_/|;Sڻ|M/9~2}X2e,c߇"E~% K />|/ `, ]'?Ӥ<7ARkkm$9-iB媕|u0RrCә)3zIK .& ġ$V*BBj$KAQ?{TUMi_X8U|F)5%'~zHxNp${a`BBgGٱD!tDl[1W2d2/$zlhJ"'C!-$->_+pNp'nuMVǓW'{{vdhR I+BS r9!$ȣ=;O=9=9O$c|nuJZU/P/"̯2 0 !XmEDQu0' 湿}:`\H;Zxii ,2 $,җXwV'hz) SEl K) Ȳ,"=+8ZHN^kNjU%)ʠT]n&]3Ye,Dd)\025F+5IǜPb@ZVBA1 ˓2HDcu {tϥٸZb{jmi Ns}=o}U/7{1s<\V)vMZy_ȍ5qV( >]3L;je{5jxxx*F N>-㟶7 C4\C%Jh8 X+i] pIk w6Ax*%Ȼvzg6ֈL!"3)%)'ʼ\t$+0j!)wnoiek!rD$0 IDATp; m.3y"L+"*%p(jI*%0LTJ Zi&RJy*]bG9Eq[RZ>565;臷Ǖg?ijs[_3u G'vۗEjnfXPfkfخ=R8, rpp8xhF:jZ7vRc<MUa 7[$֫iny!b$I8t:yLOML͢Qz+k37U0@R̵ZIZ KQe;ibr<9flj9TM&Y(nkpyժHi5 kNk<ӥ/y[_e%L  "Oc`} Qs טfL@H yf2Ck=z&"8f]&tQ)֫䮛'7 K![kP oݻQI1䣫Fm(4YIfd8PI;*ɶTPmglh-ܱcrh@_5xۡW G{Jd,9aDGBC_U޲uGSgtŦ}ғm|_u疇;~o-_8GR6o/i۶mݲGOvͥOyO)uXadpgx</~ǣn~-7}U0/^y܍]e^{M_xjYy}Û|ۧ|ǯy7]·~ '>ゅD{mݲ巏n_0k,{|k^}bԺ{7,b'nIgy\{[>z6ݻm//_y;oa#n Auj:~.۝k}_pc4C/>_8gҋ7O'w==߱l]'ˏܾ塇y']ꯣIѫw'o7uy?u!ĝ?_>ypTl7]ds+'rﭷu/8w=_Mɼ7zwo<]mhc?ҷ/M>t~zӗe,cX2e2$.- . z3IdH10Qqg`D3ZC r%Ff Jc#TXI#:돎B AD+@Lg$@a=v\: H!c=RP&R J喯l?V=- SB@^7 @._O^,9/""/d, 9Ʀ,"(/g$ 5z 2+%rw晱aIzNz"gF},Vf̉UԱ NR"xbkgJyԻL?xe2CnhW ` ZgJ*GI,gd{I,})'D“ L '{v' GX0Bb)LTGzPaY؋'z1YFdr>%D8|Ʈ(>F3Zp_ޡbIBAHUĢVT;M` C$kyÁ~O;Y!=/,E޿o/(TjQuF1=9]wMNL>n^t>9GԎZ5cx%lh)ذzڔḽ^VN'ɓ( ̲,Ԥ*uѬf<̲l~DFӥJy(Jֹv$IgCI#(GXi/BH)BѕJn2,H-AV(xldiVqY c]a_ܘJ5TQefnFN3Kt4`Y2;k;k@ci-u;|Gy^Ks ց ' .xx,~=(3Q|{90\`D !=uhTw\6n\.Bv,( АrʒuXDRIJBsNJmͺr5OMgIfIr`cB;IsC!:l4=qf6+@Ir cf/W둪%{'6u/Ňm8٣cPeF*r#8oqe\uƿ~tܹ|:ÿ##^kӏּbԷE#0Ц٢g׿їo, ?띯;1r[L? y埝2o~p*Շs6n֏0bGsݹ^xg9׾eDz2@Q?|aOYνG=qnN8<~_ ?vQ%X:浟}'G[.Oc_/?﹣ȁcninoy=#svꉛNn3S?uOJ 8Ͽr%o}ڐ5rahn{`灧('̓.֜p3?t>qeaVɭ8r}3ozʠW_7<9ܻyjQO){gwy-ɯk64}__ϽĚԣ/=v7Oe,cX2e,câ 2. >qBj Y, xcG@J pvfVOnR6ΰPx8 )A5 ̜)U: bD8KRwO۳%q4PT"IPA%VbXs.LH* !`sBW.cBOۯ_ n>7~^\**™'@R<3;AyO`Ks#rwx c5lFZBMSaE6iZ MuK0K 't;wt'L^U* x\"J!<\Şos/FD@zd={pγJc=11jRBh\Xyw^.+R  x.qQps!;{\{`!@y!40"~Q gDʙvvsէl'XI,Brk@*% I[պyh]J.9!ύ06/Eq w:sg:c0%+OUUecFyXDm1;p9;Q<$ծ 0oO,vl}LDžT:|Qa߸Mt~te f,no:I3k~T~'qiVE{Zn0R%" oXۧP Xʶ)ߍw&ĮV'Px$-t,DmQHVPtaZ%d0ܹ6%(e9\gqT0LȏZVFy$K!F{CqZ̘;DDaoIvE^{;*6nb^z%wŇx$ *;䀧&gG{ZfdR䆉s JYkZr{!/AlfRED̬y8kwNS0RZ猵f^RuHH\h{{RIAcA:wY".Xa[W} qK- ֜]6a lo_P8Nż~Fw!؟&?;p=b/˙u]X ›֝NGj-t!HBL59mߎw3۵?/::Sy 2lvV^!CY7ur;/"*`R,R/~`x/IDB4% &ɀ|eJiGl2pEi'i:aޗJ%TBzg*B4M{&DB" tZe4- &pM~@s˕F@ )Vӊ5 ut396^ tn@agٜs_zl]ezƃ'ĠY^!7ѵC}.ݻmOV*;s_gN=qBT G`f<׿p4k'_q5GS#kH&ōQdB0Y]+3؞r:9Cÿ}KqծuVQu}Crٕ~F{smqd驯8ncxshWRcibM]qwbglNN *$tż}'q8lj6o8buʲ}P{>_O}_&Jam( ^yKo{i@ <9 @ES(5  +l"jUt_\Q' 5R7{vym6vcӶ0"pˇd$nY7m~T~šv&ĝS\191B9TJAQV Z;a1}\Bxd3TIibM-FJ|eE";ퟱOD7_5 ؚڔt{3ZWsVkjgP =vmKhp[[Su39(v2f(Xkl%@8E)xR ZH`dZJr7;ߙ*[ߙXrs6!/(1iJdBGyg@I!n" 4͔؈2ae1_E J+((8`)e$I%yʥPʑ/\֣0,9km8 sQI*j%%B&gMJ)43O1鳝%<k ]Rh=`,M/Oe\[}ҡ<$f{@g\o-iEz׮]qcv2l[Q@ B=[6,U1vO9|˞04L,K2kʚf;iCZmϞ=ֳ3RR499Yםsq).Rj)1MZsNJYוVI@$Zf rk $IRZkkm!8.fhffZV)+˖E7I li=)z!rh6C"IQ3/?y̺, %81)`gqs>򗧟rƣ=9g;,nT2X;cL\gf{ y~5]b +n,XGDѻ34~;h1-Xn|Or-wX;wQVqᴵ^w_ApNvݭ g,8bp#6l~fكIĥ[׫O;z[~mMw?vfߣ{DCr~o'>sx>|aw#7\|c _[@i;=.}"*GX`pH 51L/cX2e,c>tѥQl_},v=Y,=Qqr=NVWL\VaU&)4/@D) @ |@IknՀSQ@&{zqH`T 0YB$ڸ2?bH[j;*( 繑e􀎡X<.Ľ󢅋'^_=s^^q#PO#{m(5zR߁C?w%{K/D`t-].e ~S]:_ .=A-UDbEکI}{zfzfF"d26<ƀ16Ѿ`kl3זY`2 ($4{:\qus{zzL]vU+oV))Cglgd4vVzhvq2f҅_Zwd'>U{egmmqѣK\ޠ3aEdOMN: ]DQnciVUyݲeKՊ8R[V6텥gj-.uY%ejjQʏt[PJcceVml6 &'ǬˉGjc!96H m 9PBEJC%&dc|,d0@ mA5&^/xu|ILѤpT}}{crLNDpTo7y^@hIlaνNęEy2Nש+.D9Mj6MuIF)R+]& B?3mtRJ 0isN*)"JZwsSVݤDzq_J wgg~3G}/DE lr*3[W;绁0O:=g㝅`x`<36sqZ?0 wG蒇=~d_''^ӡm\|~_qg>m-OW<̿Coz$xkή_sÖg{Wo>mG|?.yқ>s4h>s8kz 4ZeryV<:m~BὯܲǭ;?_oMݹkp +Hgd8{Ϝ/*#Sv?iMs)C86 l`Ox.vU4Yg$]g uZ)$iRK$"a[ ^L `OE,}d.nȥ  1T2]zv,<&5fjPk|_؁[ r[ ڑd_Ņ;" d(Ӧ.·`76~熒߲C"'; Cv%%XBk!),0iqsnHז0Vz!cL:`\Ȭ0eEDHhb!ˆ n$2 )Y(iq!Sjnw7(^+?uc⌱t9 5܃+@"9وVBWɬe2*iIɏZ*:bj< P, |kri_!,uCr\UrO6g@:ˍpyn ,i!j#VJgy5cʄnVD}_juy (Zis"u`0qQ`~-A~hwc31A:b5ku%j^(A27UYРzqLU{:9UhXJ4Ym'~j;Q;6׾l XR6n^M3n*uE?>o|O/NB}d[}=)"Ā4TYa iLQ{ |%4dĺ {EGr-d]YȦX(9Sj a`!c)>ecB ό@["IAh*L6M8u,X!s㎬6֐l d'R{h/8R!dox,`!~s)"9B%c9(օQJj9gLǹL1|\x"q!cP<CDt !cZ ! VRE*"kZQD$L!J!|#"TQسd9|`vzkUS4IlַE? zL- _G{H`,/'a;'7Y딹zaU1wΙ 퀐#rڀ#`#ہBO981$ipte4|ΥijFJg|dyިW< eЕ>(Ǩ ]^@]1aXi[cvGWz9& I dG~szwͷ[GX^su.IFCsT=rnoS>͊⧅/^(~?lAƯ`6yO;?z_//{y{_?iP\OawqˇrzCW /O^ӆt(ՃCdQGᝯ7<½^W|yCo}T}ֈ8G ?z+~I;>w}Bg~o|3kS.={ǧ?8mOHἁ l`6 +5S-ӏ'ٖ |ǎVV)ש|`(R9GdD'Y#pKgkˀ Q2(tA2FPWXֱ-kY($u، Dٔ`?RbwTRϯE9[,^O0>rTr)W_ +RZ:ZՁ)^@V Q#Α!l{ @Dd#ܑuX[r[fƵc c0/ta "/"ZgX&M5`v Wj' u9ǭ%`6 qA7-_`>:O}i"*:<.e0TAi^p.:t+- SO:*ݡ 924DdsD g+8.0$6bNd@`#.B.e^E/[P>fs0 n)?Jg"Cj5gʜιZ(92xKVrБ6.XBy\SXWu.qt^II ƪ8Ozw2MMd["umhCSdnamSA[ )_9-ZEPľ;)ak뻉ӞTJ;Sth8,񩺾sDz";0+'1mf{21 };xX+DjE~¯0O['h2tG把1{w]щmfS zJ<ݳHukTW˸ȕfVcqלkrJ)9䞏@{.Yjc[B!,J de ˭ Urhï?t/f2觰̯~Ĭs|@U$RXP5Xx$y1JJm4\[kZ =YKn<K߽aNn\>?g 3.n{|X-M/]@ُhk_ܾ~^n{߿wm`o?YwGvuyA͆6YfNs|:ů{5|lzW[.} x6 l`)1T"yVìqkPehtZF2^D^6K"W;DDDB2+8 ($^_$Ok~$T (altJd}4+fܟ1_$84gr `$;p1wd NTw{۔ w- g說h-R&91P !C *)%,IarN\)Ep,h4!28WZ eKS ZDMdȕKsd-sh]@$sM:tD9!X˙>>"#F9# G< I|ۄ;u?~f(WG# @H$d# t J[N5X4L7b`XL!9 @,9 wĜ%b 33KP)IƱ98$ 9j ! 8"鴆Wxehde%VKzf FCV8HjL-큙M|n5N BM&>^VpU,ˊZ(8cmf16FeVRa(A?5I{^q geF4I+QT.u41ZNg06~g[,T9MS9jnST<#da-0y'3MgWc3RpV{I m֜uo{#ϛ4)DTzp]|cg+ޑg?ۓs9K/=x(d&n/]}]%]~@_?s{^`lZ4wշJW} Vӕ?98?x瑕qo_|;ih~6 l`9NeXÂad\;Jz9爆˫hs!2fƘ#✗45V)+qIf$HܢE`POYd[[8za{6Z{PTvN0܏D]Sp|Qnٖ~_Z뉅>=JF s1 VBp׸pVUtc>ݴMֽUIpsGM1ϚUL?/P8)sN5dgE' %s` s6Kla9O6L4`dI_Ji =.-s4 EcXD0 dL1@9վ ?%]IOp+H~Y L,/218Zk!8qgg%`L^)r3u!"aO3P^$I(RZk(ڐsZ!gLpF@ƘN \1saAD!cC!I%PkSDZ YI?!"g8LZ2|DG w 5Vλj4˒a_jQ:.kFdgu3mNƽS WnkꟚxr[ tV |!+TɃw|[Da%K(ڝxc+VdI,AE m;7fzUYњ6oeYQ>~Dž ko;p|>ɒd9a8X['nMRJ)Ν;92>>^E՚< V>ch?~(0 Ztr|ܸqV@vMֹ1(vvvll,* ;EuMdq4%6y> Bygy tgjz¿|C8[.{8WGdmy!;cZW(9BўFɀ`[md9JADsg]`#9C΄sBJES!#mptIk hVEOU$cJAaGM~˅:k 0B,[3A[V9p"?^/|-M!kv`/~__ͫ^G/|ҵG+/m{_yү>y'UΞ8zKs_!|_*g^|fǯxg\3'l?碇=魝oW_Oy>qŧzU)l_}k?W/|g=|܏>O >~E~mt֚B@'qm'x|֫]o|4Ugok]O_m;M)>px373.w_w@t/+^¥uu 9w_z&ƃ{as^ŗZ7|#lW v?<9O ?oƟK l`6 l8>kS{YRwEd-!r-q,Z!,SU ,ek^}|՞d^YSup+v$QmdgQ(rM f:cكu]wdBɳEx<qBqgN~f(]anlp错s#ZFnwgʳ`  Pwܡ?w8Ϫ8W4R n;{Si\vH«nRy.nfvs-U:Цkg(jz6efiNF}'`l6LxHj*njMUq[J.?g){ с] 3ۚy:w[L g1)r-$l{$'tƚ E!y2 ТC.mj%yy"a2s 8g 忙&׿cAn>*D yƄ"u, -Y9΅E\Je8+QU)YZyV(P}kZ'H4 +~ߏ|)$9(PZyW0M2sz}#9QJIƠ_8jtQ5RJ O4N}?ι`EAKDŽ=RXkKgz8aTCDD/!S]3|spt>z-.9yǽҚ׃6YSdw + `tQ1@G(Pj PM;]]dulO;پv ^8ʶcy;klf'zDJgt/Mcvu>wK?9;=1kl۾47 Z63sl|eBvƌ1aJtZ; [nI*FZTiZFiKKKz?EdlgAW^Yժcz2{zOlE-}X~?iOp!=iR 'q&ڡ y:ͳzf DzA'`6#Gzg:w|n|Z6ڋD#AE5crgDPMx>Æ|r0H=߿oeۿݧ:2{5~% } [/*49{gg=aۉ]#v4y[|߻eg_k5UG~pRfThe广}_ǽc+kL7;O^鿽+/`'s9j^ _sĽ0-%>g+Py՟> l`6 l`'Ɣf/ g5#{HC &Z;P ~ G-obV^yy'<]|U%a|ùI:+țxG:jg<]R5S?iMTB] Sl nȭ\+(JFܬ ’~[c]Vw?D@(F]7 Z{ ˝ yDJS0 #Ǥ#!À1H!b !BISI))J\V5V>smvummG`.o9]XSu1;7JjS6m ~KŠu*O̙ŵwCny褙J$ NsnF@ 1zȅQm WcAAr+k f{5s eƸ*:xXC(ހdnUyۦ3Ync!JˋBRkPVR " cRJ2rBx&31 Pk-4I°$ eze\M{ZkL9Bdy[K:FUc( DAAcȯH*s ! * =]h!ֆD¸zWәR,R' '`2\> Njsu'}e]zZ/Гܹ"DXo Wkt>--d{"ʳsݭ[jś7+aej5dluzYRA4aJ&49mzl]mD pP iy=xS3V|wx UzXavz$I`o6iH)ssR*s*yayq\4M`B<+Qd5ZA<aAB$ǹH\=u]/jA[vͩ8 !y1]Q;x|:H]7 NgEQZEtVV&S, 88͸ ٤m, \T$fK~QkDcIXoݴ sz\xr<' `K972IHLIWhι+f2r%ٜI?&aI!׶`<Ə4 Nȡ ^HM5,TB՘惂Šta|X'75[HLOEcs) P{lV5ejb˸gYG }"܍4}Ke-u|sk]ޞ9PD77J5lޙ;ESۦj G;XsPT+wt {SG'2DNc,Y?{-)敿xgf;6<+߻᜷}Ko8Wkw?h N9kaU\gSڦG\mj9U|,:u/SX]?_7|o5'hc3ln/5~;E"Y<|S^yr| ڧ l`6 l`kܿe'81-/xww pUH YnKc- Μs!-[@* f{EɠX(g0JlK]lTf2i] iz8XptVttk394Y@# dz07_j{x*)ʹ# /Ou`ZEC($LQXcDd8ٴLl0@DbT&_$ @ 0$G$YK<K!|Y$.)9 >j\ I F %bO-"qDg,KA"!D |bB;SJ9NZ ,<; '7"#:+ HyA/~{ŝ4릖 BJ{:'P9X ,mt:K;ݺ6cҴyX))pjnT˰u- wkMtVJ\$${/9H6ұmsJ0;f&)C`cL%s-zHc Q#<1pG%ꉈ0x9Ҧ]8Rj9V{Xp3"FL#uN*nך7ej1z7a?G:v8DD _bNjTE[ "ݭ*`5)$es; $ ,u_{N'IfS_r4.Sh3XS*s=M47._ޮb:-˯}׿3W%ch<Dk$E2:d2Al$IUU 8U*nfd:,,֦L`\IDݼ;"orO}?W]xw|CRa|w<6|k{[DK7gkXoz&9mE|ᱷ ~>a.}/XYtqNtB?C4~?s9k.\z/@yPǎ~4pt7cPݍk. ԛ\m~mM<#B :a+7o\^^h#- o ]ͫ3 g8p3 phGp87'۔Z=|p;- mnS#JCR9'TdM4g*[ّDUY r`V D2rӆi ] dB:kcrWu$TcS#?s!mоOF$%#Ǝ`r^z Ȁ!0xCGe#%PKGpz$ cma>tC{" F`H )PDCm!6"phuL:4l`,PrLub0 6 @\}PGBD aNS"m+F8J )S1jGt*۳^A̽jsxI<86u3DQ4͒Bh%;gnYSsM$RNAԵRRJYEYuS|*J^p~:4(΋YgguUgY?8!4M=c&A@!))ldD,)%M~[uSw\Mݽ3"v}7绾]W!0 .P<(pCީG@9O>c㱰 D*.Ӽ'@"4HD{BĦ,Q+$L73ƙЉN=Q\QUUUbk>|{."@^zp1g4G~o' /|g)߮ʇa>+o'#ƿ?zA۾˖>DZU^;mo<%ע~}xY3 g8p3Z=ZQn2nS⸹sȉrdo>x!!و7F)@e먾c^>Z\ZK5*Nj$y=wwV*WTz櫃)\Bil^[) s_j?q/ !Ϡ=>Ei>D]*0{h s%y;#4!4ΕP%qJuL8 =;Bv9TP۴s8tuXi|6A;+J(wjUHފ;~y}lL)Ջ;-ܦYKs;N?~m$lx֭oq7WPOB;lX}kj6o[_KYdt2w^m 4"Iå|9*rQw4z:I0>L 9ྥbrsJP!Q=ޛ+fSiu݀V,Qțm*kKq^0*&q ո.v|71Jh4p PzWhMd^tORg# 4FzQSTEUQ! !|ض_|&7ł& ڛ̞;G shLSVeANXfRLjhMvbX gH`ud!sLVaI+FPZEM;D4:3NI*c=R1F1mjafZ A!y{1WJyAZna!s.`Rj%BiX?p|_:O9=t G#9>0HZHE(q0g?__Y[uWE>>޿GM'^_~?{b0[?E3x7|ŅI g8p3 gU}z}V L3NhP -Q{唄z.ޟ'Ep ur{!(@=Rڵ `s&Y΀wT;!C`fdJFH&LR[͌NHU5.0h'02Agz헪,G_'ySzZ6)]( !Y Y!m[m! ̌9 > fC02"08VI!@&=go 'ZcfvWu8D=qzoN<|ml[Y H @x e1!b{*=56 QFJ #W "$NgyN`DcL?HFbZ[ۍfmw3=J4uVD뻳w=L=yɏ|azzߓkwͅ%WcK?} _xɗVk/|*z} {|뀶9D~ΫZoh|3bw_/bk)'V;vW=꫺Ҿ)vՃ}-Sߗ87*V),_ڬ.95US^Db6;-HűMJ5RP@4M'e^i^Y69ui! 53GQRRG"B_HR'1J f&R4XuI]6A^Jeoc-q,aќ:u!3ixcra#ԯ-<,wי*6"*:8Xҹ _yc?]IZ%2:Q>.CѤ@NZt}QrQnRVJt:]T(myo`zGtlz <^.|;?ݽ$ n&[k(i8'I!n(,9ˌ{!Rjgggeee4q\F*B0ިH%qlAD‡ Φ ivRwysAt!UUTq< u0lRwӁܝ +"d_S]{{Gjop(Ɠ &ؕ}7X:jֵ}ۮenP?[ˏ;dç~=*,{Y+1)٪֗=BBJ[:I "S %,(:ӌ'k* ZLme|QWl^YJ}vƴf, FJd|:RܟᓃZY"Mqb[÷|;(Lg' w/-wg>[/ 7'z?o?\ITOWw~zM|}>.^93 g8p3|r87ZR6|lvcо.yHF|LzyAN@4Jʹى !<ެ*I ]Ul^(UoVUT(.tAY[әb65 <}ҤºfS.-݉N.&oŭ?j `˨C#ּwi>;R`Ǻ MaxCLp>Jz}BRUQ6`@@@g-3 ,df|kw!sΆRMMUͿ[Wy{jk }Ce!10$bt!?G >dg \Opy# K <"h˧//H LN`IӨ,\K-% {9r !r 4œ> CdL5Wx0{aIJ-^*=Ri9kU;Zx˺ǣ4 QR(+y{y32D/ם`2L~۪uP^܀۷'(!?C 4dqU5[3+ijX֚mvoSta8yqSvֳ_VyJE0[;E8U;6bqN_j>xbP`3X4|yS\˽Y穋~4M.]ȉ r6Ӓ`R~.~a} P05X+gU:z9dH߻^3!{rC5ׇ2Nݘ":O_{騸'gׇlL?zq{XGJ)DN>6.RR߫zZ6oruBnIjB(H k& "!ٱ<|Sv&&Dͽܿ׍NS\A*AY,#UhPuc4P`"՘76b6KZ[7XGu@eY.Yg %(1oI8RD䜋>V({TZkMDIC 8ڥAkn"B\7<8Nܩ7z=QḀ_GX ܮ,Aى^;כz6n.Of}BwwLR(dm([f f$ID}ƒ:76vsb6kVV[Ǘ,𸨆I-v ʷXzp>/n\XQQ?:{sN6\. ;+/ݟ,n`{d:x4i*@6`0(Zڥ奼,H9봊˛kkk{{{KKKEQVon>ַnm $c Ⱥ4IDʫW6^']cn[ו֊cL'g}hfVl$ %m,;;(ShjRV~'j6^<M6Vν?ҽ/{&FReHnϦBn/孩!)iMC۵X]<9[ %!GZp$%}cTiPMQ$ .xtYP1![n?i &Y¨~ܔ8MY+qAe IDATlfڗT)- WO7fwUeSTi&˓Q,Wh-7/bY|c`>?~dow{KgNzj3jTo SSV$y~?3.`w>3 g8p3 n$5ᤨk!@9|L2WJU[!Cx{dgT 1% lD(s }?#h}@Jif۝ԥ Fl'LUSbX,ֻٍ_Mals62T;f. D(+vCzq_?JPb@>EM10!9-(!D, !dDiEhM@RJh% + %L1()%" 4R`i\u<:A1At7|l_z@DQ3]\w ı2U4ivЂp-o $" PDHH[iB"MW H8WxD@Ds!D2x('h5mY\ A^ >DD>gv> Z N"7 O o9sM'V_?3'1c.8(ʪTJ1AYUu%1Dj,i\LwHXT7J$c`7LA{>z1*~]_?uݯR`Z~=W&+vBo ŃR_NGOx*=+WD^8T}Y=~N"qe=sPAWmY`e"yь'>w1Kag8M Yzku,YD@j!t_|OPxĢs#r<7ZOIڅ-Y]]A"YTcRR2 NާYg4 6Fk;cnLcMnEQ7J5Ri@P& ;Pk]EgBAQDRHml#D$!RZB(3Jjc{RJODMSQZU >B =S _J2AJ6Hp>GjKi[ 8Iؾ@㗬2I Zħ{`pw^?;w\l @@@0!ڶEKL"9H%4"@dgx" b$I@@X M(KG].ZP}|m響ݯ?isS3v 2` 3/ Y:X6 "͙]BcT!Y@Čmts3󜬠CF4F{A8v_I`C0 ILHDL@#Cr.SqG[ڄ(xޫ[u~j (4xhSZyIai8groZzW̨B,QT{Mx%bJDTCamYXIfRz6A#_WaNr6\PvrJJ}vUUOϿUO'nMkO]N~륂t]ʯl7$aW>hݔ/>> {J.]>?vWS۝.֯Lx^g"%^O_wn>}^ H30P}u/h>q9b-NnZ;[ڇsz% 755'k‍i6&0o1=rxxr}!s|x2=VNhOOhX]𔾥6`41YqβnUj!!00+)˲UUDZ뤒3D$(&K;M^H)|pIW3x+L!K48ÊE(H`<(4u:V@+UR "iݘV{裸DieB8ic(H@ B6o`ONLDHxL@s2/3`;'ubZ^=ωZF棵]5٫18~="yܓ 'NS=թa||Tsh=*$#23"y^{s~pՠcɴl?O[ۛKeQ ﱦpa'^|8DdP@>/pS?@|5fo&1OLI 2dۉղR+'e)3x8DJEJh- )ZS01 wHp$ƜWmBeo]-S'ޘ: me탙A0gf 2Ϋ< 䖾gAjGCʶpHyfΡxãc㧭&ZwHZKAH%ymA6mmnNsE tdz4ώ'wώ+k7/81/aҾux4V[wބ%R?8Xknn fG$ 8Wu;J$Ifv#bYkkLJ(4ڴڝ"7Nx< Rk0 Ɨy/ TAFf>H2,[x͂ 2X6H%t Z[aGǃdx4_F&)GSJa*yJZ϶֏^.s`(j]@ -x<ʕ_}k{A>f@(` !3G::͈"Z??7u-^J$Y `Bu(`(yk(ZQ;SEAGpPֺd INHi`4 R󵖚bGr3~lԕ|6A[r;fFi;j7Ϻ^aVXaVXaVXa_{YЄBOMw|='x"<9I; Fy!Dz1;@T9y^lS 6EѼ`m;Q.4$BofiۑqpIz{4nrllw ~ݬ$| w'9;Ш`&l俀QJdI M"vVIiѺR % &@悭Z|bpq PUuVQadlw[l,F_\Kuƃpm8FoX3%xiCmK6l=ի$O.b :e=(0@9 `ETĽ(x<1dijZ[bwd74S##TUsF I$k uQj8R2*xIyAʴ"+Jm{Z*SqRZGh dfeIEu/Lfo_Ľih,ޛTo\vuc+~%?ݫX9Qo>N͎+LzE7G;w~~)I}ofG.ٴ~jay9xȗ' nv|k. Ri Ƭ[)qSOܽ)ِC]w.7;Etv뱉v;k=>˝~6I[K%q?އGښ8y8w(BtN[U9It AQ{ݴj.ID+89D1S#s/E<B+ y^iV@ReIdm 0#UڤN]8NlHjq)uEQYVB|q1dpJ/3m3оx2.'xe4Ixa?/*7>eKyaGyͬ/8e^o u~[OAx4,ѯ<?Txo J)!`vK TȹޱeR_dB퍫W<RQ'Í ?l^>W.y4?{Wwٯ:̊?||viEQq |Y+m!@j[kǓ {D0 (r!h:^3(V"Lƭ$uR;iYU7HW$Nb!ȶ5&I[xDh8Z߼8v/ k}WR8 tv|ҵn:ðu<:(MReI:] FFGn~kWA1xZV)bmʆ}KF"?pȞ:`dh|\1]]R$U90uU{oUQQ(JLLZQ0[+S,M+bAxw'6F%lpr ^60ӍKǻGZPl}U_aVXaVXaVXaVXsqEƥGiX%/<_rw'X{&BE@\,eHSъub魉yaF "c{" RkXNǻ>fKZd+E$⥂nF$hu:Ig={gBE="km$PrbE8q ˿gR;T=Δs p//ąP4vB#1RC8SAO6r[\O d{  3#k$o idZ5qF^hl3x @K F(P‹=u FJFWeUrR'cvbQ w ZWPw.ңH-QkÄR*DZk$Ք C@ IDATf.lJP cMvOrOZ2]k?8om-fnskJ? Sn1{f.]t/~(yĿ~!AF[AJ[pc]kuwL}L<ג~?1BRn:-'U+[6tW|;| »kOWq8t{' *JGQMҼhW;D$N[mup`%9_.I[-3Cٙ?e+׻4I+;i[Aw/?nN̦!4u#=Q bOY[銚B:qؿ$86L[;As]eNpAYrN[ƀ`qz83 ~Y-޿|e3 b{AU}rsKмH9[-Rq%$1,,Z펩t%3h I.Ef `!DG)B-[UN@{aUU9c  9ޣdWᜫu-%iZ &IRH)ה@ "9+H)ZBh*6fHB46g !tfڝum&|ӶFEx^h( Ĥ D  Y" b t74;)9+5s!kzR=9j&4L8x-I~|fU y7hPů$;pd~FL@D(DB"@RD4jiHDR)05,_KXFOO|9DHlͅFFR |X<xGi59<=Uܔa=`bDnjGfE6;!T]JbZ㸮 *IӪA 0hGy uEJ*8ёY3K=2e,XV&蠒ȔZў٪Dm1ovLOcl%,/~VԞv}g޼<۝ygչ@T7i_O? PVG+G?..v_ͧ׮ V㎈VVW;O'PC\/:㲻Mݝ>zj{j:~ ii:?Hav#.~~|nN'v8]^ulWnىٜMg#T~2~ãYqvUCÛ?@$Ob݁Iz:}K[u+2hUDGn;#X I( 36YL>G9ʹ Djyfg$Kr0#87.mo4Ia VR!XZ0$PZ8Bhyd@VeTJ8aQ۲. axFKs7͞$Y)탩$<+ l n:bbf0;Dc ˻ XkRkHfsDBXkOĻh EʈJ)fG=0!jqC?-375< d7i1M3w8L˴>-TXI˲s2P6oGzt:D^ #/߹r쐉7v~7o]};T铣|_"d{;쟆*<:Ox<ȷwvgܮyFg00 geN#]W\y>TnM&[xEaQ 7,+2㧹 ML[Gzx03W*O^lRarxl%嫗/Eui|QRIKmU-Up<iRUŋZ^LJ۝.@aD4LZV*U@FnYQqiQ(t Qxgtݪ,;mLVU E1xg$cva,8@$ 7$D\iC"v'Vomt6 BWthZ,0ۋ;ᴞ( ޹εHty )Զs7}l³I`-l !P{v k"ᝓBJvdEր @LyCS*bu Sk ƠHP>ra 64i`#Rr>b{+O+zVXaVXaVXa~ipR9Fy > $wO r&Z$07DB$dF^R Us#tGvՄ"ຬkg77?YG 1zd$3 _X< o,R5u@Q* u$R5- Iȕ=`,P{K rq16RyW? ?y7quZhm/D; A|{tpT =.YlA#6δ( 6MtO>E]j8]Z>6@@˃%<` +΃06OHٳwH,n6x ǮSF0fʰ2 T0s6dh, RR YucftfgeF2 F9j .P':E4r,!3|0ųQI'8O:8GO"Qj;ۉuVoGI;}z؉T$(";[)g޹epzs]zuy䉿Э">׶:j-!\4E2^8! $ zHBfv8*ʛ#=yqRth20aeMN[ZBJ"."hJrWHe PY)R{FaTWU1"A6J*j{:hn /gqdsOngj\8CnL:;>gדϵ9't?'1!Ohs]霔yyo5E؋A9 ͭޓ_?6\ѫ>}4iYiƓcI:NF$uڝd:18/v#U1XԵ6Md&a/{ǟn%67^ڛ֎'#hܽvi <\/Dv>|βn'N2.Σm=p~ëʽ5._{t{[OGWK% GTi~q;xҷ=Mm_ίZYެc_ە]T7q;cg^/ϋ C$?=W<㉈$H [A_x~?˙\@?U@ғ|/=oQnܛ" 0ByFTqDH9kj#dA C$u+ZOȉzd::y,H`o"VXaVXaVXaV%w ׯ?υ~51/yN,qS#ac';I nE8nvú2"Vb*kM; L%Gar+ND,$x7S?ٛ<`"E/Ec_"έ?[;Ex>LȒQ!I: Ģ2. D&@R4"23ı"Rk ;:ߒΒ$߽Z䠀(F1i@uqLx-V %& _g<:'ڪG 1pJEEcjBɼ䌛b0^u-d^ llX"ʰݼH}-*)$!3@LƂ< EfeymhY$u Cj,J`LBc7[IJY *2P $,zk Վ7 ԽNt4t[ݪ[Wҽ}aAt[{6z>^L{\ ~|5t_k|ᨬ˵~GwZE?u}m_%'@c:}|xH9| }~wG5vY\>+o?0<(Rt>޽*wo%?#{-dʦaF߾~м쩝* gG-?RH_Y-҅gm`愥vb`<7elwPpW" \Kkxfv"u$I.\oo^vEU&Yh.D8 ìH%ż,p867:u2 9=>t[ʌƳuI Ml۳FF^pKUC"MZ&|0"Ȱ|Ͱ$pl< h٫ b bɓqјBH$;B3{dR:`' *Yvm=GZ[$ Jj]{$HAUB:&R蚙0d"7γT.ޤh*Mҏ&6:TQf )|j(.ly56ٵ{9AV#voz]H…w_?[6 GO7ԣv/oUUES-18nw?(ul=ZSk{!v5lƒt3&u >v?8Wߺ?|d|6plz|65ea$ Ny9m/N~KlÓ9vpWTGrM.knq<jĢM$|`4Z@*U "j%F"kGމd't+>7<_E1J?践9d;q4;.Iy6'ATJ0hFi;8lEGY]A6$QĀ!#5wBg\u+1x CkRJkl{HdXgl\ogdN{fPJ5 jzf+%N]No'xɕ#\{995 XEZ?: ޗ4Alo(9MVD(:>Acc IDAT+/\RkMkl,Y.B[ iX)X}l8ٟjFW._ObGYCʫ2$M덍~p2!@x!.+Q͞6qUj$;c;J) )QBӞOi6P:p811ܰh<7[քh< ںt..lm{Jx<ӭVli<8D(A ʲH*u.I[Yf"*u*ԉe1G2s{;'שּׂ?<*Tlpx?_:#pL$B47\ jTxZ'P}'6pp[փY^aVXaVXaVXa_2jKg>~!̳T-}I@ 5"/l]ư&܃l&zf+P*'P( u!8ZLL1pQQG G jXr-k/i\F RS)6zW330hxaTjavMJRx%YڎwAȏ O*lA5`(f}Tkős4MF\rx }4Eu7}2rp@LzժO FF(xTʫQ];gv ?~D~*rdP8kun &c`>⢌hm=+3/tKyj7!~ro\ N}(\#Q^GSn׷A8ء9{=wzLk!nu 3r<;5L`X=[UcAP脭JBB1Z?s!At6>ѾsrOQӉsR(9յ֕,H2Zy8hdQ) Z2$pt|i]`5FP+!*J(}L{.t>@5*MCPf6xs7))=E(77O>w叇 Yqڴ><|,'f2{ uչ;ށ`r֯_m^}cZ=w/|}cڭgtc[c7{kh͆8ȳj#|X]pPk{wuw!k7'1wqVު?|b OjUHJ")ʙ,[]5탉#\OfuW󵫰;/ep!n.gѩgPt D܉|6XL<_ެז$;[+tTުflZ)˖Dk -~fbA0dYEMQdjUu3=)nݺUM){H3#2vfdDdmvhw瓲5!- hHb(0Bu73W&)uW!Ev0 T\ WKCKYI2G^G6gg&(8C2KD%| (RB! lSnOsIȲ.pثꖉ,a DPQA,mtd#(*8ga"b`u* fK9,.j .d]םN9ZVb z|ūw / r]~DZ8gRQ R vzTw97խNԇGeA m!z[nnW-xz'ULl~n&'EMd:$f_.b0NgR4|^ 'ǝ,-D\ZϋE`iCΛo=9=?u_}훝NuYΟn8ʳJY|TŷL:kɇ8f fV.V`rLưΒ܎y = ԫ8+g✃v&U,ѫvsF3R@r "/\<䪒AP\#8E᫝sӟKe~q򊈀x-h%MLdfgUxp9'm`ny.P`I*d]{YֺԆ]v&^T~S85WGZ%z+Px0T(dl7s9nu[tx"4-춑|? RӓךjWoyWjƣbqVOWoFwzRo;u~w(<_c[@~'}0nâ%sVd'5T}c7)&. =tV'U&]t4r]=+^_?8(;I) Y4qAF鑛*e T%I*^̨^9w"8êVB 6`艮scĮ޻Ap%sb?'ӕOV尲Z|Ȳ*NzmZtSH;뼳"puݤ!uDBKF&b!mӲ,.D'HA[82(:Ml%QJ!kSfqLJZk4&)JӶmZ=w D>)PƘnۏ˅72 sR)BXk,< @d=ۯsWVZ |]Sϟ^>J?v^ "2@JNoW6R#1L6ɨ\z_e7Eb
/#_htxhYytv=Op]'_o*m,(emB,C+2BU݊9<^>x8Zw?z㵛y7DBuV"0`s8PH2x|p*LY^t<=BЕm㣳bQ67ggQKab>oL$d'""pܚENo}aI@R!`G.O\Qq-:| (]#XN`-$ К A )}pRku&A F -&AT܈6լqi)مEim?Q i |Dh)K5Xc5Xc5Xc5 BBLTeI-/WWҺYosqu|)|dDXz-p%Κĵa'1ZOmډx#ٵ[vS0Б ~WG#_CX-I$#<| gL@_/$&ĠQ( Ab 酰 !b63;FWZYFtnweYC6 vz0.͡u||8V=st= 4J< Jff$拶|z݈xI^VFM,f\.,`Dbhr@ cXK&9I r `Y /)++$:0$D`WjҫDd$`Ddu3e|4 (P1;`dQ*lZ!AgiTJi(6*S%gTT7M! fljvNC\*QK=k[K{[n`=N*?e-#>wP<4D=BϢwSs0k ^M_}evpy`rus;o_TsWΣq'5;EJo+!e/>x*BjVޙo[ݭ{n]|t/گ޶ zTR77lgj*j a4?W?>DAoϽRtz;SK;Oɏl=iۯdO}$çW_oaZذM}Ig%o pD%/)+"IR=?v=9$ȭX?TSJTKGRcdr;]~J_.Lӓw\E*DV]=4(c V<$m'W^Z&|z^7f-Ӽmйsrq"n`a|ӊif4Jdg` J!{ V$ң8HƥeZ .Wx<`Qx+_wQŬ: >xK7@.MbZBkd[& 5TE9N INݴ}v4M4ytZt˖MNHkTvX:*$B! "mldr!Ic$fyOT{`hjPR9s>MQ mkWo# !L f’88U ^_(p..OuzႯ˦z%pe5m+&j*iEȌ9(jQ+3~C*zލ3Iګw<> wNuk XH4< L5Z5yzZ  fT^?͍Z[CQ,RyN۷wUvT sݴer5meR:2كs玈6[_|N$;|rX<-i 0M{A_NX9ICDDUYm Mm|0zư/>|?|#pEn|&͸^ :o[wmt?x&]-Ffw2.?yH+k~NFcd\uc_ߛ7:ᤄQ {0jXDȤb.vu0@C%o_/GG IDATٵu'MVƘVցdCk]JdJԈa~`;IۉiʞN٠UhÍx*N8ӓ(~6/in*q! UJD&xkA`jdk=2VA^]3!dq4LhKMTז Ҭ(M|QT5rgzr35s|qS)uQB]pF`?I7nNz& m+FqDUS(tѣwnXMIzp{7:VHBGUr~6:5L&“'O(KNwh4Z.NƓ}_ w9@OiR$E)lFk]U$:'<5~6_,׮M:i],:sTqiTRn=Ux8%n:-zMB662[chΊ~/Ym@wD|i&"NimnQ0/޶lww6W=i^܌I-jC6a5ᏛI9ssrKBW#\yBHvSJ: <;g0XkMQҺJ+%񢣹GҸP7mUK嬱kkkƋo[[M@?+'=gޮ'}oj2d)lN{RRj ^&6fw\ {]YYG Z_}ǽScs/a+7CT=8ZDd # $H (P`r#ċSKi^ӿJ#1\ HKvyY0c1',/F[~p` 9ҥlLhupiJ3{OLU[NZ(+:0yb`di<Y n(]Φ,j,MSSi[ͭy6z,$2U1ngt\un߼fMlghoǝL=mش+y-q:k+o u'_'f5swHheL1|6%6:/o;Uowe&nCkTAx<[XF0]OiDi7ڠr~e i- |lon8Q[wPYǑ OvHڌ y 2uP;VGLnf#Ɔ]imP{܍UHhٻN8xJHHWK"n?\P d,*hָڃIE4΂e]$!i:q6kW;Ғ{}{X 49h Ӫq BB̋:b&Px:uݲ,墈!oN/~'-[OtSP[#Oa$ITh! Dɳ*(JJ{qcD!# (/t/ٮ'?kIV` %̟ _>Ust9@ )!ܻA7ϯ[?{kgr|+'iˣqXօ}gD_ׇYcumk/5Xc5Xc5Xc5w!PRn1\&_Q|YIŏsyqĕҧ@beXb@B)%m1) M 9ċeg%H Njv⼪QyfUx⌅EPj6zQA44 X=]c[7^?T7ะ@ U9FpTG5˜q!Bel}tEA*F۔Γ0z%j~N?/|q#9П;]~.u B8Pj8I$bE2լ}c"{0;#B%I PQ7qbʶqT$zp+M3fRZ&2SuAie"Nn -%Rkm$;iN'/E$R)8qQCmDOV4 s5W8σW[@z$z2W>뚌OL\z9\X\~#qk;وgvVVwG[[ $qX:2j2P@&c X4CtV I)nmݎk([mbI H"B*SJmZFY[;Ki*ٿ3/eLb;|:mm|If6ϲNxAEw6|z8~,$02ѢPYNIEɤm`MfaEӦNegg~cl+#O`JdXdi"X:1GZ(M]S4R@0Iye_~އ6+* |OtMy+RPIA^IBfbbTJ(eB%ѺQ!V!u O kX]G5kkkƿ 3>b f!Ņ5kg RfDK2$T vʁyVMÈYirEH:ҎNҏSGՙ2@JA,?'٧O% )8`/ŠHAȊ®@PっRg?~|ߜPʲ!bMgMXm}P?#_=I$i+&Pg5tcP H&Q<:jZGݒ8NՏP?{K0@<+};Z@zOaS|cCi To7o?*B]E|/>oDP6.A7;)~X<3R9=mƢDTj-_O"4hT[i? YVSreL7em^ ƏbUprl.d Xn{[uMbⲩA-6,gCYrk_ZI6ʨv/KQmv:ulں.˳kyi8A~ߵiƣhs8͊pdr>*2״n0zxrLOwon^4 xql<Ɉ|$EGmNj(ѸcɁΦpJj/ckiߛ`3WYĀ'HdbL$#jEàmmc۶vzlV,ʪ:6A*DR$:+Q%J/ $Ns3ne읧zso_wrX ZR]*>F ێ9Ĺ?47޵,7uZVQ$Kgol?x<>iolI hn͛P9Xn'L؛<ϛ[q8W/}VkD}Vx|n7^omOdOx7#ݽh zw$*oG{QhRA?woCo}(_a?h+Q؀Mx2Lɸ)Hol/[^iIGnZ@$S-EudUo݀ؠN{l#g%GAEŬvsJ:Ӆ±Mϻnk^Gެ;L+keTOtcz}6One e妕IjEy oR %c_eooQbEh|q(#^tƫ?|Og9B|˷'#T} Jh8&I*4uF}if\[Lq/Je(؁2qUQżɎg3!11aLxAY| ,oE@dKWlOW11@( ny/VKwnv7~ Bx4S?oAAn>=}I$MSomo gxѣn!̸5,3 8=>U U1>|"lt˲2Fu<1 rI޽GG|6i ~Q;Bï?.VX,<˘iQY"l$d2t'GN_ ?==ML kgc29)VIO'>`?/Djb:U)嚖m묳ʘu5MUU]&֑F뺭wjc$Dl!Yϒ߉k~ջ_zy7Rۦ&Lt*X+em^>oƵ0~ljwN\s5L0R02B!ӼO(+I@{Zk~|Xc5Xc5Xc5XGeP)?& +o͵k/ļ# "i!2Z Ҝ֜訣ymH[%&@f.|qaH Q.=px>u~w9)y?R˚y1܇qn^R x̀B#$( JD$ ^:^&^1}o R'PsNQgT Pͨɋ܊=AD`Oh!kC jD@L p~v?b8W+_TWs\^|Σr.zb˜p8P\Hw Qhzi IDATs~8z~ͬ]\y, ( ,15z/R,GVjhI3k"R")JkE:@RP w>;D4M00SffQUު$JRPr:R)&J^?u PkֳA/$0 [5p¹bpF?NW|^ s3u%8338:~F@`ތg aE"qAtA;yZۋx_!\PO0rVy`p;T #{;ͪ惋U\.Hat*s aemm[B4(Z':yԡAQ7{H(b5t^/(ngŵ.ȒB[Mac/0qQ=ȼkOaOEw` QA=>ȒŔV껣[av}ٗokFwGF(Ӻ7^K?{pO'noʼn/(,w/.z 3S2{2RNgɢEQ-駳}S\&"zxL/݌NW߹[^)#.LSʽ;#X ڃIcaq>z8uLw( Gf87 g'T,a I2nﰃc qROm8}8 >\OmA E UO3֔[I۲"M>+BC^}qK,*Nͣ(m]u7XTzٯ^  #DW<'../Wg\b#/\z?]|sOzL~#b۵ApθdPR >qiJX1kEl ; t9",p&*=H`= 㴮Lˍ~_2Q5US7bVԝu%/`iBpƣ(YB{): (IeIԶmִRO)wΩHgkUoI>xEҊ+2YɫO?usy|RpEF3,eoh3_ǿQxF8a2\*\$iVUeFw^!NgkǓ$u- }E'''R4ML!8JbL[gJJe8K{dkkkX1{nLNYvmw_3O7S!@qHe mmo-`0tzE42I˲-&bZg|mvvA|]YVM"V(y@~qs봜7GYREQ6 yY0Z7MeytFce%iݴImlDQN@t~~}PIʳ>ʀqZj;7=iq4pV&@,Yb K4l/^]P CJtAg#}wdeЍ;p,n<9RB_IWم vB~{qgq<d_Fg !A@X  UHύD@Kxxy{@B 3 G||iBB`:;k sksqDD%A03m!멶"RJb"f:5ڀJ lVgE,DVY.Ow?Z` `QGHv ӉQҨaZ"lVEbML:Mh<U|k}p63[Z݉نlޞy=9 !Qxl8(nJ2t<d|8w_|glf>w7[߬S~-|޷y4ʣ~0Y\~Fևڋťmr=-d_l_5 ݊}D8JYWvM"^=$s#(%9;0`!tpKE/87VghQUiq<_,2$[uT|$N[r28k:eEc˺ivĘc$`˲TJc8ֻ8KCX xgi"o/¿o/~˷Qn"d@ϊOW |dUy 8wyy>@#C٦ *2VF)|'avkkk91zu1.]zw:B6HȅH#F('7%o pi$((ig2dEk , |W H1`<4-w??;:ɚrY)B[3!3GSHO⸵MUž[,ڻM x<]t#JJDʳV«Y3|lwl?靥콰,Γ={pn DDH+ _AIx?PcOk|pRTDl ya:dP's-ȈgD UM @s>+"S#QIMH BlQ{DYbĚ==Ti"& >}+ \Mk/z=/M=;*OE]ƽx=oyy(KS B֫tH>:>jWoN[M؏v?p/e{yY[=|>Cp(_Bmt[2&x硿>ec3ino6w$NB/_J~k$I%x>u|G2cWi?AaME.`J7-OR/bڬHlRhz8QRed_ÙuCY uEo"#:jUIxcӕ gw@]6(d.,Lݙ[2c%w%q<:56ecS?SiJ` `@5_-|ڋ m<ֶ$&TdbgWa5 qﳳxO/ Scd-@rp26SW<|$Ĵ4j<.[Y]7K.H*A3#*p4ti4=j|\HTb{Jű rO,/hVJ4$`z01:xLK=9`*s%IC#Gΐ!cg|pcL9_,$B\0Dڄ=9')~ ^z]*LU1"J|vc^|molqc+y3/8I?ρ(+ttvY6ˆq@ɬh T{{r{vF%4-R]/ʮ3;u1H4N;_дm$6&1`>v8Q*j[r̋l>j [;Ãӝ tٶ^yt>܇"P"N>K!ow/F~p&}u=s|~X!<@WQ\wmgu]*n6qGmmBkc!D\wibLڨMɤVTl:7m[Z]76ELnjJe,s}@&P I U>8n4tqT-+ڦ(N;DGm[Bdk Q0I#GIԄvQ=Zl{ m!?) wUgG}$ ."BoN#:W8" d(8I wYˣ;}\"7]˟cdC@6|"?Xc5Xc5Xc5XOx#j9/,^j]~cm ;\a!xFSiEp#<.z"8 v&ZV?!z8Lnba㠻A @5~lsО=|}D q@m|[[}ke=$(Fw&-]YevX[o`w$"SXjÏډb i, ,Hq2Vǽω3\=O7G?i"cyϻ׮g,)C$?@/ lܵ=$>|~A"붦3nY荶q^֡CN*ԲA9 -vX·ƒfbl/MvD_WSTބ&/<*<91( |6\܎xwbeo⃙UA ]>Ht }s;ݐh(M9L+L/%GKq>x( |X2;wt0ūE7|z_ޡ2rШ8|DscLBv$Vej? !҆{8 * V̆4APSAĸԓSh\m+𺳨TG4>$:XFTtH,îj\fFH ͭI1 DS7Yc ,<$fi;q(X #D2v2W5"Y8m92!D: !Vn.g1ci.E9wubSt3"LG[u9agcX tU\7nf CȀ*%4]g^tx8KHIr.EXT{{{w/zt6Wq5Սkb1LXUUeI+fkk'e9ؘ/,Nr9uG EU/0u IDATvp׍yg1]Qvtt$#u|\m0B>W_ײ_noOKRv{I嬪׶5qe0,/ʦxz:->u 1u%yz Ҩ;(=\D4mg}PQ26:]B׭6Jk1/ f~*Тmcd Np@.V6%U@(D*L+=!"DyL`Ȥ@[5X`g:?|Oqֹu5Xc5Xc5Xc5ùo+Ƙ@@.o8d b`QqĈ!0Hbƹqt\LM'z0K&osC* 73ȳT)uǕSs <2>F^]U! H"At<7B vxXӿFۧMeLXqۆŬ\ MzV1IHm;4-2tT xYxp <ƼD O~X\~N]=/r=S2 HXK ^Hužt&39Q/goQ8)q-Q0dZDVoMo ˥&΂W(0΁.hT^333؈Bm:w9H3,A_i\02⥛޽lVViIҤ|`BrXrNYQ )iۣ{< NA0~˟cL !c666hkvx|"B(zkl:RNf[[dP e5T;wGTӯɕf_ ݏ< `?wS5Kmj,O(H&iVVe۵"KkB(1BI)$P θ3q67,86 UŒ1͗I0J@TJ5MUוX7diԕN%xL <,˪k(b׵YgYX.t>J焊(JB mqΝsH6ϔuAxX4 LbI2Nm=y}[^?J˪ҭEd 8c( xQw%ci݋q:w<.B"= !2|R! ;4B @w3?_X| `m+_c5Xc5Xc5XcQV|c {]hZrA#*MߙTxD!'ZB[6=Q,HGRtlsIA1cA#yGMJKj !~⸬xV%"GH\̠Pqu١nӟ_|z VN%)w`bL5iHey4Bz+ͻǶ$Ldf&ZL{\ԍ Aű~%|,DW,A@3JЉ'ؿpzDxuxjOI?r|UvrGɅ!`:IDBId,Rn,Ks%|>,(IdDkn8((0%!@'Uh뽏d\z=ư:MӶkqg1PJi]ey-oY >/*;'g$ !d9_-V;y!x !"lGD^$G'Ibp٥ptI1|ΧjyyMȜGD9γЅލ~/Rv?\,hC|AKY@qE g~^yab#~s̰Eh A4Y1LolfUg mYmc%z1ӘfsyaX:]|>wB8DO@JzZkl:\k͑E*>9AʺѭnX)]-G*p`w3{u'+qm0xYفYR Rd;|_.@DYI)9c̴]4L?<HD1﫺qUFH`"vo FeYf =Y =><)EXEoPu&jգm[5 F8rKNDJErY$>8mc[/ELE/Zeiug*?=_o}_?9A RG2xD~@P>./?< O> 0" 12D`Ez`rr{?n?N9Xc5Xc5Xc5X''%擂翐Bsc*`p%$rĝ!cu,!pyL>LBڗ͸,ʲ6#.A8bTۓaub)'d { `4AILuZWeh:vzzHA4n:?mq<( Ck}ӚEp# d$BODp<POlO Wg*Qy6_8{x\¥ %"a^XzYڹ-Vy&`: 9ШI 'eqk_{;H(K!ZDD`B ZE[;WQ1Z-"xBrc\-u4BF-VD״m[I"fZ7\BUŒn>nw2𼻽OOΖhKhp ٤j hYFעV8; syUTn\6|ޖEutׇ ĥ;I2<(}0ڃY{N3h5';Pwȓ:p_ܗf⧶-}p%glgҞ rVBU`6. ~xH6B Ņhqh4sm?f·ׅ?sD:6$&y=:ytրӽ(xVK%IZ/G'5^>k[tjޚW+3|=%g/gg;΃P8G{ A\ ɑA( L?)17jun&&Y\%WNm@ <# dU{\H`G7 o{/CW :MHo>rʥZ6N Yo$%Ooy$c|8`cpx1%c0`16k DʻZ6N7۹3IvyT;w\$|!635{V! ,V@34Cp%@qsoP*.jc`dk\*RBqfᾫk qvΒ5֩P:8BINB|OBVSP#%@)J۹zh3 ߁VrCpFBJYy !ԶmiN9 4ei,HZ"C9raRnb\IÌP&-QJDZ 0G̱J@Rծ/ tjmb p  u|(7ҁu1F@5UFpc:p%s/b簾e?YqhY>w}x%/0 S fD;_q3} `lӍ֍n"щj)r]NVVR&ٿzk.ٱl8;6Y^b_8Uc&Pv,f/֣ڨ \%P|h%h7>$O>. Tֲu^>B.0w)dt) cQrPWoJ]6QX`7ՠ.f%29Vm.$-{.L/V<`kQ[۳>D-(AI(%TiGX2%ͷ"nY.չ2Y.='s32{ ѦYy1ELZQJ@RbB1iXH U$M)i(-Uƙ7I"m2ZSB0c1BJڲA (d4lc0FB8^(zr\DѨ`|ĩ`hz4>UN`c޽)ip2"q]ذcw}垛Qr*tbe&68߹T*CubOkRsw6 f9~P ܥN I W nZZ $a+{Vw:yU*=s*@eFX|+bSW>2I"ʨq)A !1qdyy~RmmYsE V'썎aYo W,ҒI9۽EMLϵ v HǞ#.bwv@18 搈n1\# JF0 Ɔ A$#@\/2q!Q뺌^LYDY*(`,4:nK8Ux TimtNQ%( \f)TK%L TcgDᜡ1I1eh0d¶)N WDz2׳R)EyR,s+~a$K4FjP,5yj j`kN-؏t7.Q(ɑ"52U9'KNeABl ~A>B PvfjgoߑjugWis)!yH!yH!yH!yH 2N'10!H, }:Ž P d+0FZ%6DbJԸRėy:QaF-l(8 걂_hg e9TҮf{91`@$ Dx>xʱr02@ hH8xk*Ne_0J<;XZjfv;feM[&DaN0)涖bDJ%K/U+NE')\jhDB2|ǐZOpR h X =J:@'4R@(0B9 !tUHҵ@ױ:9^#3 -PBMg[t>j  XOj e2DRQJ1e Z3B昦ŊC ĩDAi#]P/x;Jd+@f cvil ND,3/TF*H> IDAT芏vgdg|,rYs}1TmZҬl̗1#!;-m"bRjuC9eLcBM@\?pV)`5ҳ|gmb{g-'sz0Z2!ћQbU(fw)82Vb;T'ۇhCm͔ +j~c SsvwAS` WwPuhe,oωZ:,[fUtr΄$-.!\`K7{Z3^W⨋)Io''anW^>j* q8W͖lA{ְHAd +rQ`Y ٶyi!T@8uYtڲ\f 8@*j3M\XZ۶= jK  x"R.eBZcen4@bkH 5q# >v֣`3ܹyǒFաF,|.e/KJo)Kdlgd8jރKt:qAzuhl~v.gvQN3w;z|^n;ٜOS.%&64C֊JRz|;n7[X|78T*rXp\v,&!sF Cn@()e q qBq" SИ%]~sf2e(Wq.L&JrYaKơ/6A B%&׆@%Z섧՚j%IO"Ivz&xS iӴ#%I~Dw.}H٘>?JʟgP+xO)/LLa (Өy_Hr; @ AJD E$`/⭃t߫U91O_e Dy|ǎFRs')BB\-1SzڹV,sgԊrEQ'bWFIX.`c[da&7UG!3Yv7,wFq~܊2lom̶Za߽{6$ $Kwnv ժ7;[y!XY^%nq rF8 K7 4gYTT2X=? Jd8VQDax^$R:(R%[HRhugQ[7ozih |(>ӻ"'VNۊcqJ۶7[XX\UN?j 4--K2{iVjCz~tt|bJA3A&AtsN-d~&a7<~cMALu_y,<3d{ˍ;}2pG ;^ix֟k=dr}֋sʻ7t:.t=ooəzxU[+k&> Ǻn6\}h,&+Z/7ŭWm4.T =wc/_)1gUym O]hY~k@Szς:(2q}G{߻Τ&nwxP}[zü{ku yݷkti Z0/۶oxS|Ҿ/';߾ҧOԡϾ-߯>E/xd2=h;ٿ{q,\;e1s9F}nyKܿx_șh+Ɯ&~T_xG4v~/_OzOǏ{߿13]Ok׼,W,}}kg/fo?\ówU}rǟok^Khϻ_}ӷx~;gJcO|;ޓKo|[,Gȉn`c0x"wb9#ف^/|֦ktOwѢgAwwW{*g~y*?]߼I_K*!ᗿ']@G~{9uFOy?;ح^o:"0]gϢ,m:okh;?7|_N+{G献%M H 187@@C>69J F ĎVC#6 Ε"tn^+O?HwT1dFX/4F"fBK0B5?T֤ͦͣt`?1,2)Y 7^9sDehb?P `Ȃ)ݼ/:3KI+#hiko=wD{Sc~&x)r.;CNnP߸ӽRyf,$azY:@zg[lg4p#Uurrȧi!XrFas˲݄ҐG&Iek/lwh!s16:7׻ѭ˛F+`M/I/PmʕJP>8O)cL,z1Frq]4d*B-:Kf1X\! $\UY6}_'i*,K)AaZõ剩U tRUJTF4}ߖʄiZ*6AnutOq@a<\K/F* ZTmُ8wjffKvfy>222?$IJP5V\]j!\ssrPYRn[BH̀Ya1ʅ6m;MS˲J}KӴ9CT*NǶ!R4y^ @$aFWJ$Z+4YY'j5s4j;_LRAzq|x%XJYOjVY:^#ΙT-H[9G &7>;>4sC[i# '&Q hdy0 4<q$q=.jy@̶AmP{EBxF+Ml*({z,u FTب1p} <ˬKO[s!ʺvjI-쌮(]ޗ8T{ :[iat!0?Z"ĴæWZZ[@X.NON+:h ӎ}cN 5ődleyĢ,^nZ;K/uvvYp㟛'֒SX\{SZח\oÊgn*}/P=BjqaJ(ȯ {Grer}vq])'G1Y^J o̡Vs}jۚx}ww+=ΉoN>{>n3oy!FIu*B#pz+"܃\<+߽÷qsf?7/}N3w@mS3К׽#}: FRxy7}cemrcp?g3I}ۻ.=ɮ0{T]Bp7(j;suxFqKk'X0yD팋l̇汳d{W'7_JSgm~??kYEOӳek 1)T3G :yirstv=;?}r__b~_xWo7ϰF?꛾ſc&z{~v_YiZ>Vld>,oo=O{\*#[>w^O"qSSaY'W?Ov4Cp /Dej}%޽)w6n߮;xŹO0ZY\/=O^g+'j-o]G&v>U_zGw~ey˸{fTi?lۮîw|tv0vnG>o{`T87Lx7m6HuutqWSYG|5;>2X>uݵ0}. OC=w^{o_d4zm_b"50E$  AQ4 [qbc'pN3Py Ϯiːl*ڝ?y3 .(Jey1ܻʕ=aƩr0z*g2:0k̩(("HtY!;ډuÊᜣ"J/<z2jOj^B>J麘1H IDAT!t)y6l_wN,dqܥ>v/%(F2 q͠pp-qb0`,G3x $j#Uj HJ @q5AAǫdrwVMH4"%klv.sǖJmr锺"4 S;ń2#0y73Z!UBJ hScTH%ke2|`@d>,MLTCb7e)er0?z%EL(D9pB\ƆvS%nX+ItREGx;s>Y&O"7mCbx$Cd{qH YNƆu:!݅QknzkY ?uIg|czzT$+&BetJ3TbiMX~Gf][(݇Cj/L~+cҪL,[eRg%[컦m7n&n:^h-=-n4E8QH}j!~rom1'O/1b?co Z#p84`O":z>MƫQnh_Qdl(C)u]N* lw 6aiwL]4R\EwT޴\K@SZ%3z9/򙕎 zϧSIVԽia/"ɦb4sKf6cttC51\ȹZԆ+,$%|i.wdA.6!z`:bO]Tyl~'3$` @p Hj @JW 3CsĞh#h@۬OvxZeٔ0 cPKJQ.NvNPH+ĿL]5OuwAo}zo{zxۗ~P`420f+Ca(ɲ0a_F~kbRK(7QnҐمe`c:a3JpRF<2Fs4Mpll,4-K(m,-KIljs8NRBT*gYJrK\[i6 Ae1 c?(y+ݬn`V[Y;c`P2Ҩ9Ո@ƥF(ԪCFT'׋uy50l;caYiRθ #:x -× 7՗z?{f\f"  G f~*}lբ&KOJJ@iKC(2FR2ԲO!svo~ frer"\HzsKDY> 捨po7&ݞ.CB%и9P",cPJPsz,{K=ɶ{n)}l8) }O:nN;dtK=7BmHʶ쩓\G.lmІ&rcjiW] %cΉqYWAO _ױƐXOP4Ht!x kw^" 0! nFlH OWh[f?6 7x~`zxiPA=adŏK쥏vNH !ho/1.Od[ȷVK SӶ]:Ji*DE|N"xfV* J(gNď^x"EC ^g_1:|mo~z{?x3_zכ?Iy~.}#_rV 뽱g_;;k|/yMi*[~x5>?;&ß~ů^B׾Y4uwD7o:R=D{)~+];UI[3-mRcV*OS GɴkDW!O}7s"XPG-=Z ǬqxkOC\۷~%/x.l➤[>wI#WnxR'\󏯜~ݛ_xE?:׽G=o~qY%[ƻxx]|HoىgkL~ 57'KzhoWx!D>ǞmEI0?>znadu?#HaoWu}=JkWo_|ewT*Ag<"4C/yVgh4??>x\'ɧCv\`%UzuUVSWFB V/ e y ;~xS1Rl9.T WBWA 1 I.*A4Ev W} 508 k\)H l.sL{S,Yq`ʺ,*}Aǭz(IYܹst۝8b^hmqlS PHA\^;2ia+l1 (( i(uontY8PI/pޮlh^N#%5 xa#8%R2iyZO )0mjS/Ajll­V1c!b?S%F4 #'es`]u@Ixa21q3_7]Z ۘ\_{ C6 04kaF#-ިMk)K7*V,R%=,aPKOwQXq,bVWnxӶ8T t$\Ckkk ,a˲m)%00MS(B͓$Jb] `d[{RlhF0LiVRA9w) @0Ba&dT:# lH x6u*L(Mq5/CDR-RPX6c,KO*BD@){e~eKWt7۴{BJT34(q` ` ι Y26Y/<\`MAHh(Pǖꆠ9Q,hND p f3SCb$զC#a͢J QzOk/l2Lc_*Z /C@/ܺ>Đ=wKW 03ر[2n}]yLH ]7P.c0gwp:Ejo-}+4(w,G+h=?_d3:7SgX[=B~D. (O]g@s;毘?vH#dul3$( GѼްMi/ְ.lt:̮h_N4k>D!A?a5]'ٻwж~k=ӗHQ~Α~F΋ yC;ژfkmf3J#F9cR4'sm /sKtGF m^?n"o&^r~SnWnvW$@7뢓ǥ}ܮ94uwn\vٛ :OG?h$&;Ȱ&DᇿΜ\{~0O%6_~;ϡۚmv~Q:4/XG+;}׽[_?S|oh_;ˏ>/5Zr'4Fqoܕ3||;ڳz(ٹ(sWig> ^vN{­cOYfTv%)P6 /`}?*KO|_w\p_`~yf[L]ˏBYO}s&1ǿb(3v?g.Gh+M@[ d77i|U߼HO~7?yϟ w:w޴z]r{13=k.wxm~po[)K?w<(O?/~)]_ 7]9A` rZcݮYGfsɅ$fIsN޽*OݲcՇoe_Mn'Q άo^_9:߬|4*PѮyg]h.eoU(~7Iew|쿖O}ANCw}MS>r%kѵ3׮܎WSo^7^Y_m;*Jh#_zֹV~Leyg[Wopo|}aNvϜE]$L"dJ"% 4R(Ӟ(ƺT 8Q2QH(u!-DvB5ӖZ"ool.UYn%MO/+D6B@PhIԗ.:!ie<Uԕal`)i˵KS{=J0V!0N0\ibI+E#x ۳6KPua6M\Mkk s׃&#EIHʢc>밨n d҆ F|8#Z/Dz$[)HHo` xaUK:=ڝ6qALece/$TN%kdC6:LXO4'O^۩o܁Qݪ76JgbYaR!-eC8GFRCtjq n9fChmMH˰8#Y ㎴2JCԞ b-ZP908KdhQ6]9$=-P`NDJ %hTJbcӖBD;ЙN7]5 p4vhta(R ш5$i ,0c,N'oA=6b$B$Q ')TJH#5R{J.{diq(4r 0nNR (PΓyX J!RHTBuM fpӶ]h> w;e$iki)W*-- mF#{Qk!8CK.nq\2QJBr( h IDATu8Mk2|gR~aS#|h |keŸg+ 7T`?f#cns{P-#&[TJt-UJ@U2-CN9-ԔPo߱@H$a"8F(#X ɤ(11VvkUӰViMUgb/EIl[oڎiN'+UISuJ|}?4T$rњ6w KuI[zmPj. 脬7{{KFEI&B)(a|~\(' xeWW992yφ;L Aq$TJhөS|\Ѽg@1֕MQj%%` B)%B3tD7y<"!`D9f1C)݋R4"IKCǁ(g^(X[ѬPEKIy#_ --R8$)H_TmDή=>my傏ZӿPvWZ8vNRdt3{v3jxGi!#kL?^u!cgV+3[; ͛J7zkR`߹&&|(mnDV"Io~:m';RRޛI ~nKjg{va¯Z0WH -Ǽ2`;n9/|;4mY7(?ٟ_uU,L]p{Y~¹M\Ƚ?ygq2ާ'/rTwhYR8\K 9#uCz$Zz8Ui4َoۗ%O~_KN^F18*Bna@_pk_Z[o6[}SiV[kz.}M_@{I'LZ_Ѫ>޷'P0 ջ sef>.=˻υ _+^%GV7Ilv0BTRB׽beڌFȉ-Gߚi/Xd_ ;M()4Oa H*:VH*H RD1 ` 53k#QAFe܊Lbi:")P12%q9٢-20  `)@ʳ% Ag4/UBSKr ' Ad&mK>i^xk٬JRHC$V"Z D\ Q3]6Y8Ɛ gRv"\89[V=BcZJG- @4_E14 q@JA{D Wf_ltP J%9Oo۫<]@5mЏ )  e^u͟;c# 0j*BK.ÚN% $BD5m&X:bDm1"XגuM\CdDq҈Ba1"])}Ό$teOv/&0 lrewW` !L6TJ-NӊP*@wKJvw{2e]cyB[>::)#,4E>[DY4.j.mUkZO7@ Z@vz<bYxwLr*w^F.V rA/1݃-; buA70N&VfO:"}*d x`Az'ezk3;/T@u䂴Dߪ,3J@'[У]|2Q {l Pq"YAGB`0iǽy![1Z҂]U%iGF!s'cTب IH̳t*d%eZ)\EH%Ųyw:ĚV"SJqI^g͉qrTyj$ h]2<,±Q ŒO#5vd6ԑfLZ=ԴN.jvL(F>E?V=V( ;I LdfJP\$a/빕J=NgRd%0eݰ{ϤwSN3q8F1R"@ajVNYb߯Dh@lyaPMG)c5=p"BpBB)9:Q$  %>ְliF%cŵ߭#^ݩqpLԿ<Dd@++ay GGݳrPA–xŬ֌8lQh`6e`Y|@Ja!]o'[4VH$@3%yl5hFW.fJgrtI'%Q=Ē!p=$~hU ϱ돯5x9c+ěfOFO׿ܲJ{Kt߿Z M|Vݻ?jc-y5?Q{'wt[n[xOY>~ W;Mw)V&yz^ogr֕͟io_~2sB\Uo'~+­޳8kzН1෿4B)^g<3v:W?zNrҗw.__{il艇BNyG|n*Yvɇsˎ;j|}lm'!RaUpuW^u{OrGGWlO-w]̊"wuŅK >xϷ#N5mC1D殄ey%m?oa,}yG̕LpbJ,՝鼮u߸Ig~n%]a~7ݸ쫮`aЛ_F%f)m磟@o W;`|^%oݠZr[@QƒsWv~߲igxxEueYqҳ{[۫/9W'^ 6ʖ[k?r˚mc>=wyGYyÛwW67/c.=իCTUGQzQK[pi1EظBUҘg* Ieh΢Rlqm9[piɭ==vG|JBU:9|sQ/|o?Rzտ<:tCR> O6 wjлmzT=:bژ@A(2mzs1ct?*\|l9ZOۧxIU^dI!qMe#4cLB! bfJIJB $tL*Wi[L4@CBzAǛ&Ja2!5=9G޽~Y:g/B&6OBDXIiɈs"8 .^ušn"lq" 't83}"P жj%4HQ6 ꆦ%n^39;L*% 7( 2XfqH|b5eؽ\esciHNLK6̀}r&nu*5 ݣ)a2mV54]R~FR)XM&!$j#+Ė)Jzv8fLj8tX"ˤllI&ZSږ{NXXm$V.gl]*EEyF,T3LԤ,TAy+:ucɍt^!C̩Йmq6^r2c&뮮Dӌ^wtsgQt!Nuhbkcye]zAYGh4jXѱ5[pPB6"qG:d$$2[bf^0l#r:DQ!t0/AdQ-r(OR0j)BtUNX)tFjhWbUhPA$ٻFe \}okp4Z v޼-;nˋr9Ӻ#9Xl8vFJV 16e56M˱n]s^:ևR8eHqCs"GIe-̡0FNs=(旸nu땐 x2HME{n[ݲ~d+ӚHEc&D[WGS[*U. عwm ?I[6ǍxpŪ}:nOGt/Vek ./]CbiibNT"mQVcʾ=Ծcԧ)8XoNx R `qIJ$\bn:xCIK0mݎ4B el:VJ:skPI`ע4|Օw"a%aF؞q(L۶F c;0ahKdr_ɦӞ&bL04H!BZcвd\%ql۶{m%fh p)~IFc! %00łR*4x`@4A_b"}u.Ҽm[-Ӯ?xy\CPYZfl=laa`4"bt a.咓Ƒi6L[Z Q*4M/ F0nD ؖ-^qafA9L /AdOV*TqC@\`SօLjDHMC$I4 rf0ebǑ2W( ;RTR>4VNiܭ;:F'\+=5wrD_R!͌A }jnl[evYkxVhA#9=[UʓB\>,cT7|R3;:0T"y<*ѹ:MiӞ:P J l BBٺ/;j``j֗gzF8T BdS)Ƒ)nc H*4R<"pIg,1M=8i#(v>AA, F O▖ ƒHI!XB M7j4A6wƉ&@8!cHRL>QX #|fY>Vxz`W{($35ElԿoyHqsͪnVlx XeM2d+ %j$:dxB8!R@B ! RUqM]垳.Ї`%:w.g [>_*KP#ƱzLJޤ ?q<vU%x_.dyaD5Bn8(jdi[иn Y2#h) l0v<*nz$H2{n}ӰB_=z/Ӫ4E<{~P[7W/4sγ\?G~;?n)Y#֍~9,Gez9?݋N;P0D)mSdT+n.4aΠmvqU3'{/=rzs^w<@X_'^ l_Xo\lhl}xka~C`9]޾'?Ǐ|z6|7daȐn EĭQs kK/U?ГOx$\^nmutܰu\$W~5(o}v&7>?ȹZc/دce_p+ '1Gd Y|7nBD/nrttXT\u}]߸F˲5:70לЭ'D0vl?v>W,JЖp\ȩ!QnXCi`bvN^,!d͟H=P$GXŁtCQ|\l3Ho1H9 Γ$I"'&{ʸₚBl Y%o!eS3^kmkXlZGj2ovi cx V׮$v>Ot=$/\+J|PZJnDٌ>R%ЁzBX,g*4ǪK)$UIA\;+8BIW[٤슞0U0xug-M4 hO=MBȁ@T%!(#>eZ[^XjQyv!痢WJ?7PLdb]C{[Rd1 P2PB)NF*֢6mjeD2[םQkFDx em'KB-ɢmuWR7kĈ6U,+=8Jp+gNlhx_]+OX}]3}$Bɧ;c#fG<7~u/ ǘ=R+-[ ?S7SZӺ[FG/7 Edo%ZNi-#p#cYn܍hX+uZrK-Ej<'W*5z4]cI0%w1ˮ+ŹJi(C(I &6Ѓns*Igm-ZwڙA ;ccR=a,YKxqyq /p0࣮EUZԒsʓ8 B $fYF:eGQa"B&I$YMnڵF" 8 +_(aF4MK .h^%mGqL9GQ )Bqr8RHIMa0ƅTӂ8, RR!ƘMuhGSY),R%@m'uxTlZϣ@<Ĭw|W>}筷,v\x|ƹ ๟ݳN.e6(%r_Vo_% X]QZoxŷ꺟~sL}x`^+lMSm,bzæk#EԱz?Ϝ>!TamђК~c?|֡DXm]}Imٹc&QzzB-:=`tT]ڽ* 7Üq[Y8 Gu5 ü^i̋\~[qkbXuXsǟ#,7崫rCKo;`k/!Ts[ĕv\qud4 F >87w 9mޠz翟ٌJ"Ka?=7|8H '6^ϋ"3޺CvZ|Bz竻$ |[!o3ȑ57ߵ+Ο3M<+oXC,w=3? `h@?rc vղT|? wS\^ٯ{~@QύYBb<@aDX)A"H ҉1 /X kԈ~QR"ӆ$:[!t<2Cc%%p')S½ MU˲VuCun嫸A#VRh^$*S"A "5 u bp ID`锁VwÈ[WMi3_ s#h(_aqpP!IzSB)>jj QJXnމh|Ao=}2Mp|Biiz*h8#J .P))P40m!$%V uLHMR kq*p:&BI4{KQ32V pܰ֯k ;\q79ZčDŽe^F~,P2g( D,ExRkI`#k8p,Qa )jD)ﶧc9sH;*˺zHB{qP6[&]QJ@X;\ɬQT2IjNRp_Օn<27˦5=yٙPFFܔ 龒XFl(2 }RGqjO#VksJ kM:xj`[m*9-[4BMRdX)Q-y%a/--;s,3,LcXfhPz,TktZˁe1滅$DO9˻\T63t:ͽҖt[ʢlG emG#֘#Rrf-2&<,֞\ tUU@f;GRGuw ɽ)HkNS:ݟ̦zF|S2 ~rNsi1茇"Z|KCEs'7Z6TSaL&ϜC^ fmp5d476oY<Vu>)D XwSbH1k$jhn&֛s;}"Є|0,"aZċhW!L*_MA,Ө2 ~jF,fcV_ p *N+B5 TRbJJ t4#i4#R~O}07+P\ +LG䈂G[yB:&X"嘁ANL4)jx1JGSHMPd0wbW׵`Uncb ݈ҨV!8ӣ0c4bsi A*(  8snZ^ێâbzaPBW4MBa@LJƘH(4Mӱ#PJj6F7`qn (xq 0ٟB!R t2s'&فe'l(T2::Z`I<50Lj7A+ΰ%nya0`qʪP R=pG%~b.L<%@M1?2xKsO9RN|)XvcW&DRVtւsܸ[3L찋BYp4~7]V+S@\@ GtG-VJmtQ7I*78638qIdJ:t(T-'qSh?gR咴pe2 (l#ddf3 ԬYd *e;6~ۇ;ڂ3c{g{_{.mOo:Y=s>Ϣq~pIin7ܹ W>Ʀ,|rv] *mdOhneZ?D4կi~//_v96[Vsy%h5޸SSԡzOv9:1XID'2s.Op=(v{qt_\9~W}Eз۳q;o;UcL6ZKô ]֫n9koΟ.]~P݇*o'nݿ8ϟ9c|6kކ?s|mK们gz"Y]/{tBLl?z?-S @4]__o |W{wᅥx?sUeW~n{ZEˮx˕|'m-CK4&Sy77s2 3te=SK)4}vwqo~ MskWSN;}ɡ`3>W[J8^\ܳ7u~V=;ǽ-citN'LSqqPbn^q_|s맵o5`.@FL$R  0jihYJy#͍@ }7bnƴM&!d+jqkE 5 R$xF2L_}丙KN85:iqM+Rb(WkX3 MgauHp G)+*uѢ@4zeRFRZ- )HXg UaۺT b^k# p[b2WׅYDAL%@Hĸls5jknElƢ`,^5@qہ $YHOip IDAT 1B (5(cnDmȱr9,B)) ad41(sc@ 3iJDJUz'R nA QQ@C933!)T z}{hل,+ p>+aR9Um",J|FR>U-I[ݡ?,^ hCuSF"u@X3;LM KNdg|V;RfRQdYi1 gVacdeM*)/B۰je[6rcz,eVsK8\ 4.5sss-CґGRCT)V`w ?/EFg#ٴem 䈏ۛ3F!U!Z[pfP**^ո!=^GSY(EUX̟ہh5 Fȥ|5zarЄe2HD(x.hKe z:!3;G̦zlU\ׯtLwC`LJef5=c[wBxXC:iwŚ;+{J=" sm[Òf%g\HXK3f͛ +Z(1/F|Y PRx&CUE2UU[9-;|ZiNLЃơ-S(52za cՅ0\`!5 FcZhj!tp\X|ĥd_?¡TdT""DT|)TV; 夥|԰A`XkA͔qޙ\'o=ّ 8!+tl\,#ĜJ5yA<5c)%`)Jq 'ani!ʲRdժ >gѨ`XVEeEq5MR(!0BI# 0ERx؈*Fi&h hpyb#3k$ܱ,ɘܲmdJݳ)gymC7H^ٔU `nGP۬b9"fj'u61Wti@… n ,̱#Tj4d \)@90{*Ҙ`PdPJjd"ABjZ^9Nq8'^*uݠTy8NrP*J$r"|>HAT*P ̖ !gZ',ЖvuT{ga0 bt ȕl %3MApml0e53(JɄuJʐa %w~ڦYxwӖI uȲmD(*ckZ`|>gwZy-TE9yqb=,^W:F(AX, 9Eƞ@*>nx tFs#};84xP7C֥__ʡfN>P)89+lSҁW̟yr{|5Zy5kf33G ~tZJ{Bxtk`CkY |[k/-t]?參/QWYwwe-Q%Px+ ʗ~JMG Zwq^n bY`,θ}ՙ'l̞ڜ5g}K^&,b!.hθg^sQ{_ov\o~`D2~KWok/}}'$̣V-L6.0.}{\%2rzAFuə{ԬC BG\NS`91X;~"AOGR`g޳帳sǃG<&_ct}tɓ)=ƥ17{/}d4Ws;=7d,>Dҟ}͟B6؋~1/.s{޴Ř 9ܭoV/mq/ ->9LGX *#Xi__MuvzvFgXS3=wK{eܖڧ!״G^I4W\uKyEFW?ylDVW1ӜgӇ7y%W_U>q٭ל/J|ىU*6فpt3&¾TlH43)(a + $H)U#)BJHGt B:13 C|MJ.#!JJ;pfʯVX"u PZT2 UB Fd$?l M<>yReFr4rv)sZ3N߀.Dz6trB =Die,BTrI式HEF6uL'b!*@L*Cy^ rT&Kpv2SF%d@ ^VE*&'J6vh,7jx#MFgƣ`lwj4&:FX)@H*A*EA4ƣaR )$)"FDP=yMLl_>X)2YgӶR:WuƳkВΓ" #BM^ 5bD1LR$ 1, uK8ڐl fhT{b`IύWm]G{y ac1pT}jݚcE "X.p/8hۖ(:[3 Ӓ$J-+d!-2ec!EEypQg¸ 3 gO ZwO}6i6}D)Dgjw7'x(#ۛ%1#Ojï#'.a9iD;Wyvғa p%cxkK6Cq+G1{8/Dyl>YZ!.jePxڑ…r3mo(IfEs.{_Ҧ 963oQ ,Qlئ4Nm *R-mе9(c"a6nnϣe1o((zQfs0 Ȥ#:yyr?*~W.`n궼W}1;P YG*9nhk:=fk׀rQMj3f|"!vYl0oo1QYngъY =xu靃3g{eb~3*2i-o\~Bc1mHeYup 3)w TJrU :؎5 E?-k8D*) x&-"Pei2ЮzQqr}~. ZӌjU35 )(%1Q?${"lEc?^dv ,0STD) hx0n-~4Ӑ*VRJRzsB/eR͊{ tVEQTĺFmMRݭud0d!, zƺJZ\@+ mHIi*z=T+U۶(†iQ$4 P7 /!nS1y!B1afD@QSJ14MFx_)%!+Ax(DTXLN~ysNacU9ŭq^&3j iZ8tѼ]ÅAiCB@sQsfϬpqPOGRj}X|T]H&9(=P#l0%Q jP% D6^PGMY~p.,vX] ]K$RTiGV\MC!LV\ҙT*ØAAssZa۶y^<]ri:EΟlW ~ndh` )#?F YbBZ(aʕsܷ?LxBWgKVaF(E1L!4e[-BV i BqqR! Xxgb4"Jaá*8Ҕi}bm@n6ݔHq_xP+fjXAc5C4XhmS  ;ݑ d4 =#f5)0JaŰ,hI9x^mom-G12&ʴ Ϗ8\Ȧd){×+o?#CUJvk qן9x||Sk' 2|_6c.ͷ@N+=7h =lƬ?~P=ST3k;'GGb,RG\O~BQ"3nO윛>wu_M^ny8`wDPQiWO33=KiɌl-_1RO|{QQ$xP!6֗! I#W}[7鵜7[|rGivY߽↗w/;sƥߺ$.WaLT;x1 !o_zH]~=Z;<=ؚm.}#>q˲Fvlz)C|?&ܿS'Nܱh ǽ`)u($G-Q^ K]^,XXlPAC;S^X&miZTUL0HcF! H* ͠,k[:7RCBqTBL |!(_ )CaP S@(ԋ!aBTRؙxHfQTJdnaM] A=:DStPgC(̘(P!&IEEYWqjRRJ1U(Lt@+헃##7Шea5Fd wujxJaԨQ I%A ߂4`H<7N2WRo!RncaP\$)q"JZ6)xk^'$aIYM*k@Ymp6Tu9+EZNciTYaȐ^c^KTRQ!<3clkNm$֖PTZ`aR R& bX+P6}9t\;elٝfªk꺬ѮcHx:TQz+x0PTg]e-`De3SګpQoa&X8Hf\ VgKc]j[ršݚ{+`_6 9ʉt/a+Șjo1]RffU_bA5찣 MIZI[A_ڦ]\A8ӖC9^IH(cADL`A-#%FkPJxj9nU ?2q5 @=?RQ21Vreױ x_V]ٺF*>55 5? IDATpX,)@onpI׬ecb>eieUh)6#[[:C[}S J ڱX2nց5C >5L !R"P)I)Es8Rb }-q;3q6z|Ō89B<$I 7!1ƑzqÂЗF X!i0@NXɇ4D,)a Ȝ؆{++p X Zu^[nMJ[_Ƿ.A4b5т*D,lE|?3*tc6L1!sw[8HvSiNmC! U= գhu^Y {KmpRXkWSbOP wR,&y]\h0xet5d{2 B\6!W#=:O8PFiM*FK= KbYݬix*6[XE>c=1xg}>J#j1s$'DtZh``WWʥՋ;?t$ ]c50÷9B:NEOoƦS loxt5 #@ֆw3<̪VרȚp=c})>'V̜3X0Z+knGkL-7^cڧ#a;vg~W!\O^v"س}Gަ+ydJ/=/HP<;u8ogOsr'fu?|ok0ooDoYjޕpPQNWI,?&˻v^z=?BO}u“k6)`}/M*ڻC<^]vʩq_z&N|Y0P֤ Z>_B#73{็=5Plp;*{(D>]'6-%D soQHk?55w`7e}yB}*b-Jt I_ ]K%i,E<ŔR+Hv8$(I EJo6C.nB%jӉ;rR18 U q%(ZpDy$!\^N,b<)l4Q!J!8BoOq>=Aw>d`"M6xEQO8H !1@kǭ<0G-BǂX "\4}5b xi5:xfwBgCc:[g,-<T}!˒`$ v3JqD$(7ǬtVt&$!K"6AY!B/a'49EFzu@f-woe&BNS@ 7}IA5wYf5` -e)b{'eCw#qo-AC&e8P`I;$ϕ]k=Uql荒!f#Rb sVH@vhsU1]pQ#pMjv;684)' );tB.9bQ,I"(4o (#$Lq(t(az-^@)G9neCL2 2X¢WK S|{_fMmy|&U4>TB*Cԑњ XL=Yᨁ!MCI2jY.Kh{UUʳ{-%v"L9BvF F0*+h` yt=PW3 YEonW]$yq%Yb搿;R-ţx0 )1twiDnH P$&DqD0Jl ćIh5kN|>fZR @,fa$I۾%RYaN{1*h'"#r(nĻMe-IZS(yU,L\it\-j(0Rj+ڮ2^\6@k=S7B?Rd9fZ4* 8xDcMW =B]0b)F)E1M2H5FpBT{k>X%55^HۇzG I*=3"!UH%;)qhHb$ ( wvp PJ}ǭh=RS"gXpe#h&@Pa `GP<ԔT8JmYF菭L#(?OIj}:b3P\ k܄_}$$'ll[cLd]w*%]]ʄУg{p!TVndž>Y!A6h^K:nɿz0gn Pޫ>`3M;$l8>at h+}WYٟaO)A%pOԀ_;ӣ͕֞ Xw+ zy?Geyit Uc U#4^rXqϞW~{9SSnhG\ iswgu~wqlv upV/gXlݏOqk\yƘLO1aBSf$ez 9~@XwNIg^3{y闶ƙ}'޷K>} .^vwo[צ~ؙ*~'385SP[#s.{qi,{ÍS(,C5E TH @I 3,7{ەg Bp.@pOʘ FjQN\|X~#?wȾp•Q(krqłaP^ƣ㿼캝z#ۂѡSCU??0 P`Y&$3wP"-CrrS4-.&td@0E .G\@L1@œu4H#ADȘHK0%Br8pU*0@`@q0 &kȾpELaUvVv_ŒiM6ժ1DE+TDFIXv<@ b5t@D9zNmaB#Q›2\(Pa{5TtՌQ-f>h"eƞy!BZb-;OypMw۴~hT ZblII jbk5  X!ފmhUbZjÈ!Pe6^uׯNqM$bC}k.y0)os: {͜*iA\j8\WDz9˜LxZ~zT, "s,a'!m Dy/.z-)hHւTY mAYSY1+:Ѐyh $ٰE[ |MGzyS@(J̐q+3& -9xeKb&$2ю(y&Ɏwn^AV9/R١ ӎ\ٰGfKFsIKݩhsQƝzsdOM ެVA!ag30i ˢ{r^i>aR~`t*[ ##qSϾ m" 0_ V/5mةR=k +bUK8 $ Gٍt:e;n&"!mY=*GFń` >R8< }PUS溮1eKa! È`"hm051& ,@`|'DX( 8-~E 4En,GQD)ݏ銉Lֈ0cޞ1oze#^`dR񝺙H+X؍Z.n>X5h@H=^S`р)׮i}^fɾ}{dd,fR $v8q.XkM@-/ |-Ʊq0&n]׫a eUHRd%}]|?ضZR]3A@G"(뚮1JeY0 eY_lY;|GѠ(bzW̝cABVJdžǹ9EB%7eJl~hXJ5ό%`8HGGF;:تvujJ Ad2ZGc c 1,Ӷ2!,1! `~e#Xl7\H8(R)˻+#^=#N-Ȳna`ISGguuU.\h&)R1FE1k@ C"4]jO6@`saYPܞ~S7 L*۴QDMX,ڶ#KR%ˍr(m^mL* 񱊢(1暺ެu]eFRR2koJ:Qh랗܎{ܸhd WM4E㶭Nͧ`L ?G4[S3T"a2D,II)@DĹ4Em"iPñ)=Rod$u-=#AȔqڛjDxA F==ֽMnI0֣nrQQ+Zx}$e?أ?g N@d<\C??uV4OK \gC2}uȄd͉D4 ˒+%+oܐV)ȩc?uГ e{̺~E! E _N{_|)sSqjG΍~~u~{hcrn[PԳ&to8@<~F7N|;vsw~Rb)T# 辣ݡ9^r{F-eۂ۰hxfS 8HZd:KG-JU-2+a=rf.P_eUn_kmMk?1ʆS/0+ɑuy7@/OYsYgu1 r w.9vgtC7,x$X7_Ug/?&g IDATw,>vͦ$w0O3߻Ɉ xSxȣn ֯{yXDs?  sE?/}'{3>ϤG O%Nx?:%^B(\!D0da@Ԟ[uOʗ՝Ϗ\'-^wl^GF?0'bKt緗r _lf4wҷ ,]8Y oN#{88UfD{;k.|?O-h噻NGqk}<̣|3=S5o[~L -)QȻ'X %ӑ'{0 ?_vy0q_2ӬMWnLu7IƮAp! D+M7^ ns!!L(':cerņmaT EK/) }P`#5 1M/u2 ò`1sH0[uBe[H`2R|4PB{W3ݥ) QLhjBo[eoޝq#EJxA<αsScٕ/rW4,Յi<:C$I)WeHLDv&la{.n>sV7p(JT} iM0DI\T}ZϰڞBm3uwu .Db.ckr21,MTnv8d 5 tH_U[kbU2cuAխM'ؒ@/_4ʬZXH*]M6W-) 5uZëu-!LZ2gi?l L0!Q~%MYHc8Jgq:FTXb;SF tm*ɄccFw!x4R(E,ً ^e@\UuFc 3R$Y dY&QT B IR"s!(g$ Oh5R! \0L@S)S.0$$UQ|ϓ%fLQU!qA r =0}0&22'+4I&Ywc:客54XMXz$fYR8n^b-Yp{߾ક4*Z;F7iXeȘH )mq4CZFypWt~`岡(*ɮg˲B  JJBA@17 q]9!BHFi6 MFqEQ(zkG dm^z_Fbe4'h2A93S\*;\QKL&W70$+2 UՑ1$vfueIVS(E(eDq3 3R t\.nhHD"`/?Rj !iOx^A:2Zr+fxnQQE48l6cJ0FdEx) uuHŠ6i2Vs!By=ٝ""0 M0^֭dRjfiV ”sˁE,t\ϤҸh22 #""ʹJ)YLmݷϰR4pۺw ~ض5\  ['L) / cn# &4E!8UaJg!βfTCڥמ+Rg{Ӝ\R3"tȈrn-ͷ/|CsSoenaJ-ړkrKBrgNuI~wGOb$Tb7a'~2GR#$Ut'#{Hh`79xZ ?FrBĤÔw jE`F`({%;"b,4,̬wZ?]79\|#uo7E>gj7-'/ُ1ɟkyCTq~q1VtK~1߸i| .G&u}w=Osp3:V!5/|jH.v`W|/=+W;&͛۞?Hq۵a+>~l'V}mO^ѯ^$gȝ's|B ]pu/)~'>7廈 D>/{%Y\|R};~3 s|y+LȘ7vwKޛ7ncz㼙t9@^\r⽷i.sٯ GvG[3UxoqxΛiJ֟?'i}T,Jwo8 -'W=[/>v X_ܾQ:stқP41t?bnH,X"H3yx_D?>?.yTyon1_{Hw[|wLE[葛y~ƕW_D6~ߥ־㳗maH,yggvg V쑗}d|m mG E'i  .fp߿7<,uC*<|΃#yy'o}wVY;_x\zWgΙ*,eo T89ZN7"FIx7nڎ%&\ |k* X2m"yĤ jÛq"Y7>t]2u)PHډ#@ϟ=h4c,˘FTDH,RDeD ÜgUkc;T qS^4!.[pOObp mǂp8yzڪ$E, c$XXVa AA 1@/{׺]/TvP,Uj.MN/7Pݖ#=hVE!/ WY-0-pCfb%T=16ĂlRÜ2=5wX+Nzl:NpKš[̪nmt>hTa%#F~ًRTJDF\9c9G)ƶ " I(5nG롤F(h Z3,xd$N|`c ٸtFzrPPl5q$F#m(𘖒=`G)̜\2 ,)$")dv+4S[<dԦ-yd:cxLP1f.7Ct G>gR)hk'g`b֚0}6PpL)8S(lۖ$XHcU՛MH뫪.I$0 SXjYodS70YV3L ~?De)?h*`v>ݹ1Egs6q14>T.fVKl C/RMU4Dy@%[Dtw.P֨7}8JYzi|(i굺eYAGQmWFnHAeCa,IѨgd2ʪmے S"ˆi(!d y *͌NX1u"J=$SZcW+ ܰ}k5/7eDRq$cpjai&6>V]oDiE*;۝kc\[[%,Yˍ0V,8lƹ62„ H-=} S"x#EUݔ%֓PeXJ&ӥZE*YE#{i%{"B!0 p:S@TG >0.<޺ br tr9@4G8LC.bhd5Ң"{:|&5:Ԡ% _3S+Be!b?}t2%Daӷ/m^3ruP@^aKPnه _IQ|~ahK'Txc]T!Ϗ^&d(ǣڸJ0U(2O*,a\Qx<)y^*w=LT#@–.l.{2-K}G0oOaHF8KLӊ7]3a,>{zu9j}c"|4wzR38wu~;8Rj{}ѧƕ@u8ioto_ؾ`# k/_b~~շ_s?i{O7|#.{S}_J~w8$ syM~aks=K8#L>wW]vB2KewN97]w߾Vݒ\Kտ5}ܹ3d joꑿ`8mO}3{ݧv[M_}ڗUN;qF `aoW_]|{cfs s޳. 5}(xs# ͝aD3">x_Kf}7U-_#pg>*/o̮1`;޶~H(?G߽EeD=)șof}OxJ`~<^ >}ϮqoY83S*#}}-~E?kZKg/zs=o"e*j[o?'z?|!6ç\vE'HBa}^f`oݻz ?턏k^}+ߵ8PumEl'35-ճ^t-O r'^j7n]3#ئͣsW;k w=e^/MoQ}s imݷCwN<MOAW߽|ceȳt2ǭQtdӆaU]_[>~]wk:)SS^ A1Ɯ @sNZI`X0Bd8D "t ̅@p9IX] &)j;JITpX ` &XYPw?/__܏h IDAT 3cEVIEDL )չ'vSÚCc*ǂ4+hdc&~,>ӌ(2cY]/@X Ҍ96j<6+i暎˄TL#%+&Aq3_!̃ÈrSuh@NVy͔Bj^yctow롌PJbʲ|z+Dᓽa"hESi&_hJ"6&&;Аl< .AXd "8!,Z€Z2'X("AĥegԖN&~jchy˂*:S=z) cr. a'J8POTU2[7Z<²J$"J1mT+Gwtox RfSYݙ=ߌ U(a/nKDgѯ 4xŊbv /YMV/- VR47)֤Kqg'"8$b {ND"-.WB_{lҝK{YbhDj][H$R H %ՁXH8aœ6P%'qoھ6ڧI,T:WGKsaL>׋VqR@}?11뺔RljʗeӲ DZwtY>d[K%Wݽ>B(Z}I$v"akΉZK&Ywj7 4*L&IOOzZye sٌ빶aVOOdfYVĂU2RQSk\frr,KHYL"fAm[J" в,M5-"9Wkө Q0-o[ 0(R / B6\.$~^[chhN"Zڙ y,B6bB^-Ser\Ja#e5 ˶䎩U=[-';&a I$IXI-f%7Yr[2/4-VR)A-XheƼr]0)d`Lu;g5jрt7|-Ϗ [I k'tf^v~(kv")PDM=8ᗠ0>s\sRǏUXgFPsǍy&rt z?67@)6d?9g*Ă` RTj{,;4?7m:hS ?2΄ Re}PhDgq4]VNA0

ؘϽc `/9'=toϽ |_n>ݏ7ǥa=SK6i/ F";c-YW>/=p'ٺs#2{뒧|霹agzӗ|K.? />su_p֙Zʋ+<ۭQ?k]qg.zMuv W+7|ugldCbp޻.8n'!}hw}.7{lw{\c3?{)G8O_GK?p -i@~Evv @_ݼ~r b/ X.-uicsxˊCC7_}U%7c ]Ƴt]s.:2 yݻμ_pm[/9-7s~J7wvi,^<ӫ=ϟ;_D?;?</O}=+[fl({E_ZDs*=v_;+/?j謋/6#7ͻj .n%+>2ɯ/zFhNvvtܷq$[ڲvJߌ?~5=q)/>u|ۯ {W.{?s]1[{|/\ W7uw((9ǚ[Pi9m#d84qJ pbg/jaa<-#Ѯ33DX\~˿s\にFPbW~9q߾k2P~X؏ՄVW-G;|##/{Д& >m:ȹWB{Gu͟e.{U0/n_>{a4ܕ?>1/2CTeʟ0-ss׽e6U Cۍ N֣I`_[sy4^a`A~i\m `ZV BTI) 5v$:tۏ#H0JS()EeYkDJpכ Ry- >P. tAMk"% 0$M(ǜ) I9v<㬕m9-x{jDG( `fGE0'%0Tͤިs #7ZT--yoH=GKO-Q8-1TҌ|Z͢UC#15uUg=I(Gq+.@#R"vD:%i" X + 7f g$V  Jww {M<(TEn :CzCs2SP,c"m < S#V@ntdi\e2\ ?gzZ2[-nguE8=PK0ѐ% 8ԩXs{*+%m˲]iVpVʄ~6楻uOZ=j^Φɝ.C㡓uK-[щ˲poWsYΛhM[ 4BjnF\~bnԘe8)jYvn24y=/–Jx59`+_k#{u#8YS?<Ri׋Iʖ&:>dPKr(t׼rud,aoj2kZ6Tb /FI1\Cז9NfI#;c0uxK׌/FT1Kth;A,S 0)'Ԃ5;Lhuq=PG=y<1j*UU{I{wص_Mb *s[gjwCU1Pq6G!CO󖄖3U в+9yf<.ƂV]U!:Ffw+ff=,Dxe;Y? Y؟D ikg̽?|hD?,]Ipy];w53@4d0 ޺:o#ߡIM'~xȮxԣZX)+Z!iJu%4U٬?2js&Jz:1Mhe)Pw۸:cnX0SN%oϹ[s :\ '٩nض`nZniJJ <%ň*9+0RI%J\ û`^~1EVJ^c[iJ g)ZgS>H5k&ih@u!Gfsq`Dq!b&H.aiysIM2H%^A"!NBKZ9O@ض*EQ. ܆A9b!0J imoRRHǘ8fJi @BiԐcJ)a!XrVjpe\)'dasv@%m׃c1`MYmU{[ˆ5ijt-jۓ?7v͍Re Le\ PR 5eՌ 1K߃cGP.D2 sZ*D"%4"ZL4 + UDMMMJ0 B$4MM>ښ[Ɔ#ƳMB圄n2z:H=.ul4t\. 4]g.2-Θ#Ft=1̺3M av"PT)LSB9V'm Z>{2499(J[aaMV+c(N8mSi\VV ðNT*nçT3mn dc'+ckC,:(4-TW&Z*i*9iLS1X)VM3a',#b۲tMw"F% %9qږcQ4 xqs}goh$bA(fR'/o}AŚ=`fvI52$0Uq* BMwtS%Q7-bݖG`ꖪ<8qV~- L"T Bm^ L(K6f*ےhԝG wU+ǜ/'y|M;az6{L:^z") CsgpDkL&jkjum976OCZVOik-qhy3ySu.hK`hj5$0f*/~Uߦ[t0-jbn zdp-GxEyjo ݋+uG "-dUiޥ 6o{Xsz1h X)*SNcXSF@xD bObDbNb@8qg# 5aPExb e=zΛ)6Uyz*^\0v-`-!@2z*w nzRO2/VyO;n+Z5^U<}åv;vdB?_ca  A]!@$7~F# :t8׻Ƕ.ci:ٍ|Koۭzr?7~e.Ecp\tΟǡߨTJjʺ_8ڕkg s+u-k>7qxDQ09Zh9xn;gg|,YtV'wݯ~X˲mS>qG}2(j,,X45_o򕏬'/z$uW¡k~<.|0Of9w=qϽYswEXw=:ntYz9}w v)([otCk[DG TB-掂Ќa7cӰ+lVmfd-,'zغ z|c'9ǿ z6ݨ %FPs);p]I%GLTP&s&BRB0@JM5@uFEcoOVOoc:헣 O}5,Bf Z>"H^I >m^N*Ib8vZ'ҕF%J.zBRڑf}B=AUw)($^LzjWԕy@7(1K2&+6eBHPa 4Ì#7 xWgZIV˥l:5cS a蘠0 B)1BRJ0gLt*v`B J"L LXi͛4J&C.ZkZc?CQ~Ղѱ[=6dڢ/56T7Hȁa赴Tʚm8gBr)^>),$ O^ ~ap/]}?LNqN(2La4mʇ0tmO ;g(e CjRJ۶BȲrlFZMRq.ث)߻74*~$|P_0庹au?*֔+ 5r; ]]rV+(2R)j ñ"yɔ9>6_m6 1&YlYBI?-+Q5#_՛ڢ8NASb)N뺎LڅRaږp]C7e<66m{nQI8&C,Z# c9XTQ_'xѫڼ6A^K>0p|KD3r~Ў7ނ}+V;O9lr'xC-zl|RÀf GbVՙiH=~޸)_.EBS(uC'[u:{+߾0zg 3w{3 '5 U9YG'=q_R=i3cXblFB{SZ@⩾N z)u?3`CIy|#'r0S PCS= {8ǛY@PL|qk\P߰yNbHp^/D3]lDKT5qvEqާN dY 3ޕr[]E}R4cqrY WOG&}~هh0 _o_s%?Ky֗bɲO gϟ@]]|3>7?ri!L.qlj`pO~g^UQ{F7#yGy~\E7Gc]Y ʯ#{+X×8uֿx~ዿڡ;ү! (9M_ւ|[Q.\veˑҚu5L>t14BZNx'o@[N}wy޵>~U Bl?P^`ݿϾvtq~.:SW}U.i|N>W':z|ͻNjA|o]֣ŏiD{[}}⃈C;ww}R;UzCs{Mݧ8s;%QvU=+ѭ[$Xӯݶg/< [lΜEt> zsm3gUZW>PAÜK>,Ñ25EaͤՍmo.9`9UG[qM?|=dA:NĹK=o7{DF\W5V7@fw';o@?_?w%}R*i~ F˂%E]w2!ƞ#<4@G;q˂cwqU^,kY7~~<_0Hu}BzeoLN־}MsZ;C__ sEmz}ng}s_ձU˳ .d+M#@J $(BqضQ´,NM<َ&Q!шFIlI ԀnI$PB ?k`‚!tfgVoV-ֆK`$tˆ"Zݯ+D3 qPBs 7Lb:%,}SnZ=t&حMljЄ?XC:dSR_؆ #&͓"I٦f&X0Τ`<4 M;,Mň4^->r( '((vX|Vg+wjr4 ~|w `(9EO:h;1j)Ĥ 8Bzn-߰:wLD)nd\|ߠX?spܔgwo3VL&dTL$"T!Ei)' 6`If2R؎I1FY(::hXLd2=(5YRK&s&4^l"q2P$Et^.F LYq00uCQcMy p 4t1F)E~kfR  3URuR1i)mg_>ȣmISK&3[kXnͥl0^}&5C;Ⱦ_ߵnX}E7=5}yNN BxL)P$) =3_~{Ao:'1q<߳m{9m<4R"0-s=BaR 4MFN!T9B /r|\hګB*Ǣ<;micWM} ņ/3u&X0ksV-C(o- BElkm^fBE }v ;*ʑ*ޢ^-w`}j]3Xhϊ!% rSMSLO@! S#4SkiTUJ()BDm0-}-sM$F:grLdɽ1g`»*5'+F>mLZXs q~"D=4O!~{N}Hmin&*&E$_(FJGFTϱ&\X >uD+)!Lߨ<5hdTv_qY/{Ox-r|;F"ۡjyb?vuZ(o~mGo~90yoP`ՑLSO:Vꕘ]Ju/r^/ˡYN%ui,3vX–lYT*k)*؍-Gx]| QnTcݐP"EkO7 LqZ$LbLQP* c !ahLn! K+e,jynئ4T8 P'0/iP0(36 "L AHN!nbPxOY<v7Թ_iZOB3B &S#LePB #S !A!DAJ" Xio[蚷/]V +f wQӵʏ5#Fa]iN` 'd f|EًA =p"^#"HD+LB%F סd&zS@K՟4}G9'xl09﫶wS ڏ0%, IDATS;O,s@ogr?~+˳•{Jjݕk;'gYRSyVhF4Bj5׮pu&loW] ϙ'YJ&izz|cwOOJf<ƺDID)u/ci}^%idfh`"({nw' aȹHI$B,׫QQxiO?\.&[!T5E6m &q.Mr$RyyUUeYuRL$By1-xõR tߞN&y?~>ncaK9| =I؇ز| 䃫_`}pCr4"3Ipa™$!gAr-0&JI >dk$pryTJp+ 9PƾCchnJD?gc"Fj0%.qK\%.qАBC dD:!% .((8!g!:AQJ4貋dhMHz0c*#jW"&l9ozE_[Y;l`<& "# y 85O^kϜ`c!&A݀dz`cȜ=iwH5XF쇞&9.l1!ڤ(uI5kۊ-3nC2y7[v"0/ 7R,<TH(g/C0+;gI0b( 1zB@D@)?!0"DW3Q<v{k5ꈾqw1[\!Ό--bÎH[Wgvyt,+m|+I>^Tu\?{HWFav󸇞^LiH2Y;swp}5w>\&ʅOKj0ăy[$\q*MιTƴj+}k߫\7CBz; B"Ήώ¡ţdw:sMG.+!>fOR+e=p߹??zՌC?;+5G?r-y>_%iŧW+sC}[mX/kykϽ Ƚ{c_=IdxN&j| 붽k3ƶ 절#`o/^k#}37W͗烈aXeM>߬I>s6Cxy33, "V>x&9ڏ|uYbhNg[FGk^uã7,}'inZ%XD)ĸydc! Y~~G*~df0Ƨ~z?nz:dkDZ ˠNr,x %'Ku79]tE&uRmWj::q6]~W4SmGjo.O ))bDl1.Vmgyp.RTB9ouca3 !;%%c\M޻4IM/CfЦc(% JHW;~|gv&[ٝxiu:^kzwYEn=u:J`#/=//zoOZ}} `3A# '?Z R1:I]EQuYg'Ic\YyGByoLSrksRȅ}黟5o?#vq+g_|A܋2=~9{AWV׳=~l/=N54t0:hz*Jmmk-&uʄδmSFe,`Z4Iw۳i5-A՜^_"O}\J<"*p;lN*FKt+I/\x>{ŶU?@|,4I 1ɋ"Z DHBB`=}?șJSY1P |\ͣ@73u!G.R7~ĵl b6rK\%.qK\_p()8!Wh[ #< bb>rd .Y-Z[7h|Ry*>ˊ6p +]7g BݬnO[kOT񡃖w!"č;m.*?j 0d@ <!Hр`&>7ڧw~g]:oR۶R~0\"ɼIXl*0&iҵ(krbm=3&ȥNr]'YVC n1-wQ OI.)-.0F,1D@ixv`1s҆8g$8M|?j~B-}Gfc qC}^6ka&HrC1Je÷2ſ-My>*˾N5nßE z% yDF¾T{L'Şc]k8 !F/f}k*==K-?W!4S-][LY,\ٙw>퉧7f骊og/(D=(~H;c,_[u=gWFbiq; I'g®- ̕Q!r5g BҿWvfQOz;ʩ xt‚q5$BLSAlI 4k>&YU$;Y 2zG.dM_[{b@ksIIZEf},ݩhg&<\b?rF'gJ1=%IoPWz{Nt=99^Vk9zeLWIQ/SМtBݠ2-V+niXש ^FVǬ *)[qIhT敱U=byEt}{52A1SnZ&6W"˩X.L1#L} g]]F|xo/F 緓Չ?6o CFnnŷk]yT W=t޿U=^l5oo寜^_Y\z )WGn2#9;ZgA5ׇy[+%<)_k%RݴѺғ~փ4U>&"<5Ғb;T»XNs]yC@ c['x>֞;=QĶ^jWkDb\YKoICnVg-ҴsQ$=+dB]NP[lZ&cB7Mn[k),Isthtk>{z(Ni5ƶ"Mo 1İ19B8k$u$ >Xc, %gLJ}@H 0x$Cd"(c!B"ĕ.v~(5'wԏ=wc3•їqrx^ϫ0B&EtM8WU˹@d1D:#}V49ˣq~iMn.'! 3[[]TRJ1ƬEQ֫y״m^p.a !1f<]4 "WqYhk CO'/_مcx05ðl3._OkSb.׽vL}n2䩬[$m\;w8z`ww,YӦE*U2_ueY:g_v$M,7l=|,nLWx^WY6M8gb%0ly;1bT:ϋ7Ik4u>X!Q2-${OqGIӭ'"Iҡ5}ߏG#o}k[Lɟ䭟|~xdAS lIQ^ /ףѨYWŸ5s[-4. @(sgsOk"1ƺOzYQ)C~<] Uy*ڡ(j>drlݐhٶ}`C(ȒtKW?l~jL@"ZH}1}>py7SMfKAȇmq)%m,,5E,.x2w3 " G3[4}{pp>x!K9%.qK\%.qK\_0ΔR?|չeD'!@ 9;c,>q9b.b.P0G4A h]F0x]}c|BXYs&FڔC 9# G)[nh z{•_)}}Z8t*Z䑫i;s7ޅ3d"Dιb:4-\dTzB1Duո0 D>D%8Xy@}&mgeDb!T$Cʅhޡ$7RћN%١Ar,HJX(ޒ ֕*#{R<@|  yJ56@(˳1 YBl`7f ;b½1LǞ7Gi {srQ`c 8Q",K#/LzUk=7ЇN0Hr+w{驃!|DIXG>/=_dO&x#?OI"[><_;^x7R5.{Qfg9<4av2Vƺ+ۊX;G`ţZL_7蹍1" raD-ݳvzRgl7 gz6e|J^&jd+6m2b)qZ5 ˗iqo&&hqvYUps/{dβJpuW66pc–+3>wtaҬtxz'p\RVbcfѹZ2Cd dqzt5rLUӤג-|Rz8N2S=z;Vnb4J( gCշٝh{,vx%De Ms8A'wQepL˶;܍^k82|vZWdMI~IG%Z؋;fko>~~:sT٢Arԋ6V۹xu[\),c{}OJP\I2?ʍRXW*x^wΙN X?tlZL7H(zQ\pcD=J^]^p|G/\;a޵,ҁ8K8퇉-04BF]]C4r j點XyEJ1= R.IVJ60>j '#=iJ^Lϛ3ӫVs%Ofܟn6l`¢kX\Vg,m%*˅p2 1"2F\@8 fPA`8k[ƫ?YͦE"N'o~;sdQh#$twKo䟸*%wQco~7?$iTWU3 dGֹ^'#_w^&:˒ӓѸiH8U2ϲaPU]{;wRHHCRV\Hc~P uWJg8]$DAp1xd7]1mĬ "0M9te皺T w$%OfjG@@<~`_#0(kQD"MFu<7"<!DH$1mfBMd 2\&w.n"clHF#̙ p㐑|^&D \K4]j?_n ;N9 Л3Wȣ z܍қ6W_F??|c4kz\4]h6qRq]9 ),[$T}C &؅طh1zXT[ GCV*6pg"@zN5?&asìŬ^w;z9t]6g4z%sXOGi!ݙYYb*+Љ6:H8ɋ%yfczpMʪ8`8 uv0OL$Qm ADD [x} m-彋kGk摗Inao{Qе}?)w&(&[G|:R ˗R6w}fYu^/ƒݔ ;Km18; SԆNe>-^]uo-QJ'u(3ܥ%EѭL*(}02!4C4#SSEdTK.FXq6UeEbI1*( 2".:.p)dDAh<$Lf)+Bp 2val"T9VOmxqPߖE>bf11bbeXEspLg$OLWL 6S"`vۡD(ެ8ۚIdz$1F5g1F{cD8#=@!Ƅs 0g5w2-$ sHZY/Vş~Sm]8}LgqzLʼn}w?FBcKLh xsy m,Zb]7I&IjeiZM^9u}Q]חy$"ۦR8meǺoYg\ـO_= RϫJ>!['r?cG{࿝cqvOy\3M#aGV'x>eJ#|ሁ34$[vWŕzG}JACV "K\%.qK\_X0o/zg1i@ z*)BԜ sd )Re3tNкw)s0^$㮘e ]6Ğ(zbei 2"cJ !iY&l: u?B)&Z3BE1DRJ Zu?*8`DQ(w$Yq`Jr`mnqZvpJ*ɀC۾3cNt .[W&\-3ur͢Z[PpCLA >+|`H2 $RDBFr`#@a4cOhF@-|tÁ=Ҽ}/Jt##6I0|S! ˑ@$ɋ,F?`r~6>~mYTһްNɮ=l@B$NtPas.쟿>xx=(3Gs#Q e)mtS2 j75n험Dp0C+19/-p+[r];'aW1ee{ͽ3[r< we]QH>{o,l"dU ezm̏T?ֻYRʮn=~^Ԣ,ɑD *R,&e{uos"p o? 7gDV+rUw_4Aj1) O#;sYTjڞE] UG3Sr^;hgfjWC5JQi;$'l+(E嫊_3]cenilC#J wU]禣ri̕qzxbd#*d0L@dWF9s!( tMHTQ+uRv$ġ[3;%'F0?)-:}-mK{-KX*VOl+Ȟ8zHx;֣caݢ>G:Pzkn^ |K?]_;ѷw܉;kϤoWj,3 OO'=Sɷ@ QK9>W[td.oa D4uM}ݼR_vlU+j(˴dR w.U9|*!F90$d7pxzC3+Z1 D'H}(HxR~o{Ti$f>8ظ 3'Is ۰CThݴW&:Wƍj %j&.2Y$]մ>YZג g& 4Me3nɐ@m,("q.~@Ba"J"KF{|f|=8Ty󟺶\iO>λl͂жnQl$q"T>EziOlJ$&+q Fu왗oo?bBU۶:1D|Q!Zg1D)eUUeY;ʢ>,^ ni^u!Fsg t߸M=t.SOȟy^n_OQn;wos\ D&ΪUgmS)^$ y5R1L{>SZI5 =cyӴi]''X$Z* )g޸T 0l[zBdZHκ,*U 5meu2-V%*AI57d\dDrgeRvb;<]N51X2B ^{{tR,׫4}~BmCRUU͗KZѻЛ!MnCXH1TSUI]wJtiBzT)\׉JQ'E5ʋ4q&ZΪE7*}3|%|H<=nMc( bBR& "LHar: ]Q^gGV7%:9 \:>:/|#C&7%k%.qK\%.qK\_4 CanRmI+1Hrq~F1Ap!IcmTScg,D`@'UXoH:kXQ0cu}ŇZ@,ppqib xAEnRYQ>F$^r |'n=\W+';x`L{`W&$wX%,OBwi} C?Q1!m i|k#ڒf1eͮ%-%Ӱ^.agfme>]wOvu:{G|dN,x(ب1)qre(Όr1M\h$&Fd7D M\ZZْܕ[p0ɋ+{eWNѾH1A2b%%Rh%u}|y,D_++ <2U{wcj\BkFQjto&92톾#H4Y$,aOl&cdx\+$"܈qF/|"[zz2>YQ] wese7SkgMV|7dݺ(O!ѡ3t{U<{\៵r_?<{ڽ|_Y&ϨU^Aq0֍џw7G Pwv=H1:ΰ^k}ηy0.Uq4*[\VbQg#s+.θڗFgݼ> DR uvJx\GgYr h& 5>8tTSPBilJCוe I) |],@ƘIRړ(vC@J 7?[F'W=[[ۅ:Y/OWUWfo>:wwރD޻b-&aӴ} (=uLӑr}_7!mD ))|g_{w yKV;DRY߻D$ɇ]q*~W?k9\>KG|tt|J`fO.L͛zX(CˮݭYfQ)FB WX >E!eZ!v]wJt6IyY\\^Vy悗R DSHGǣbJ!cnmZIzcMFb4tݐWCcvVR1iÓ %Xe֭;E̪n'C RRJϷW1rGx7o//[!ba3\;*[PHet/`fȬU >(U z` 0.Agi(Tx5&D[}EQQ.ա >l-oX8`B+DC70+ H;l|$7|0&@ v-& >`xr"HxZ<6ލpW < FP\@nb6Fr`SxOkypn_){UHz)ifqvjF$'#iґRL,5# o7{O7$b{) co׊@$Y \yqѳF̩zȆOŗp'+N&@8<۱4+Ͻ"?8;{?zINq'+ |Pig"\bM˶߫ >+DSzi?_Zmv2L*}0敃U$hCm. -<+L|f0M?6*}!LJ#;vҸzg<ޖh"B#wrw&1<^ɲ`yML]0Nwy:@R\ǴkTq~<>S}i}zYj8}w":EjRһ,HaZngz0U!$hLj&JH"9mPb!8(2J,w&%TQuGR"HeEQi%ā @aѕwnfϐt>ݜ.߽; _ۋuqJzNVѢWwD^GD}O%zp|v'v$b Ƅ߮EܛNc5^+|"9PaĶo_ۣ>Rqe(dٿ[#Y;Hft7o^YYU^6q~8';vjmAZPCʪ}rxU+3[E*&JF/r ʑkMkRʨDBZn&W%զ5 Q0Jԗ珧`!6V ≫o_@Dм,Ҷ0 Et֙Bt2pP(, (}H"ܚf 癬NHAnyܫb>J|I ) nWzYfy i(KcE!Z<=%@#SJ;Q^;'_]O~bRZMi]XU62lP_իzmNmׅa@2A_X\O/>w> prB&fApd``!QtCֿ+_W{S )H Jm8xgQJmk%f"\~k{k\B eR ()8 C倘bR*!ع tAwGH'pOwu?w?qvd僡wm;̷! z]EU>|0̤zUzU]pv~.4ƆFcV:DGkdztt<UCJJh.x"Q>ֶm*Qdk[x62{tr\U%m]ȷLti'+ ZkaRd2dџ] ]Yxo2*avfGeYvl^٬>369dv5 |e}qqiWebO&A%?4>9.5Ty5Cn1RO5^/=Iyq>j!bP: )٨Z4q>2T]y_{.\c~]X]!i'~vB?߈5l0>:?t >=+)`f&*B`T;k!KeȽqٷÚ|||`čbw;7 np7 Y1:懷D!01VD5iV@暔r`PqZx4ڣgH!b$$+?:Ni]1531A &11!H% #M@66@xF< ѩLvmJ ̼Z45 %m,JC$ RDHn IDAT(2U]2禗ZU*甜ϖMPi̔fe -GSn54Q,%X#E,!Yi$mfIdLji#w%D!3]k% ^C DFD~&gb#bB~mPyC D0Y z@zEUN\'SvƏtQ:[vo>C[eKD`H V>y*C͆|~~D;c[c bf!8I pZ7_ѧM?q0J">򹎿#e:AI}޽S]4~4] _Կ{t8'eo&'4U|g!cIV}J)']6B}tUߺL[֟5Pj6UEHwfi*}wG rvqvtr+8!{'\ELHaR&JˮIBE|y,?XKtd a4Ňgtk٫8yljh>+3GWa>;ÁM0Wb-wރh*fE JjH0pߤªUw`.ײ218A}QkեښX-|1ioelV: B}~$"k0D;Z(P+5$TT)B]]t&1饥K=D!Jʪ4ƭ\xmnc 8U?nMPրۡwžyk>XAipϴ\NT"לC'ݩ#&Kzic>OQ\{7ʯ--MZL/9=X[yvN:؊g2ժ`W~q<︋a}R^e3Ko-_C>KFWeWbVE5+ɃtٵkT9 = ̬iNl8ªVmݏ:$E⨬bH1Ħ d$(;B^kƞ8BfDR32QZ "U" Z@H!S !4?'Liwy*!98-0$)a 3ޯ*W3Pj r/?B)0bG{l1cl3֬V+ctYu?x7Ub^*CLE $@CYURNwi:w|-I\ܯ;_<@.9ja1nEE!CJjem6cJ1q )eseyvvZ%%{WUb̴sV.ERR BPJT6u By&.yTzZVkK )ddcܚ!EӪUu۶:jWдҚtZY3s{lݬP ԇN~nw;#Oԧ{i۸^pC2[euRi6JQUMӌm2XFfͶbZ۬Rɾ wàtJ1)yhfu QB`2>k lֶwŢ)Zi·+ͺYu L_.ůh ^@mƧ?2X]Z* P0x"T3"RGNXj0bHQ$@LY/ 2[xR6MFr"1`XiRbDA(1'e(S85!Q̱bl83P5Y|xg:ewPhZ@ $ Rm 01'ě2 k6P_ t0]Di : Q ~jcTUO}7C#^$DXQJ,B*d,>Ŀt|qzo˯Lh%"&_pL^iy5 i'$|j5AB #yx?}Є?xv~AǎOk_%<4UWKmǃ*Cl*ȝoE#39WgQ=/koe֩ڛ.W͏|"+AǸ|m__U| Bk< VIOe\N[ڹ@U-f;exF[%, d>L|lGUF-5$\Ltke0ƦZց_!rKX Cm rCfcWݥq{Ye!2J$qMkgU3ܝeC@:]8y)Ej<4,4~zfms[QsI,1T+1ԭ*K@YkAZ:ODY=v}?Ur (UƮP2TC("xtqu>CFHuZpp@wq;JGW(Jmރ蒾WF 9 [,^0a/[reZ%ZӻiԕFw;>|n}A>ݶXnSc+ Ϝcoc/A᝕ܶ nVqz|`[^)k蝣ϼ6}.vɑûm9ܴIX(&VceL_y␂: iF3_sB)Dd,($Zsk(ʍq#R0!˲#kH)]" *Ue]KI;Bi KRh 5}$ݮ$ZV"ڛα,Z̼\kUAֻRDJ(EJ@0iXBWV/L&]1ʖrZ;Ak|3"DRJjg:}oy}/#q0;κGݑa 谋4g*_4_Ewa\ M0"=~hS9Ӌ#bY{NAz/_/zl}˜ήYL|C*CD0xk(Pι:d4Řg2^ # RʲZ)U#?8M ,%^sUwKs~o;Qws*﫲8?n<MϜcYN=L!F,OΊ!|m׈!*ʲlۖJJRZ [kSP,s P VJ nXl6t<{xx<ɭjٹ構Uȉ)|^8/r%$4eLM|pN (0Ν;?BW?YօƆ}\/>{ eqkDut:[-Y %PTeض]Ume9C,E&ҘLkS7|{6 ͲfXc%tt{.Wݭ9>&UZv+٫F}gӳlٮڨXEÿ=w_QI|GN ˌxBsNFSGhKO3-NͷzVBti^Z$im۟~귇wGg狽YBYP7Տq;Ux7RJz]dQ5۞d'WQ hĈyJRQdy6RJ&lR bd"ƹ ~CV|okД[{Z]?cO1-ږ!|:CszjV Bc߻s1^/IRb"Bd6f~z'  Gi@~٣O7|>5"3$Ep[??V<:#.tO.rуz̧__ϳ< LLȤ)aIKy/,[6=Q*{g'e;d\Թc632$vɼ7=wC_Mlh>բRڶ(zPVEg)u(RQWl6iV+R( (F LMb (ix}0DJQ)ݴ6!1Yca!y0 }h[{ yN.Qv~QOsN4:#J-GezW{o4POgBz-N1J)4d4RشXXkb*;YvӃ4sW7/DFkߚϖAdBf1پzCQ( :P`y(mDҌOe?7>=_UZZq˂zU)E@TJq]*lf hA,j1ktZziYKsܽѲ{ҵq=OK=<た dP&GH*Sشjp+Q۳xͅIU UЛRpJIa_z7 np71(<_ 3l&%D$Jv B*ƨCn "2e: "E1.WlrI\ 8yRxQxh,UǏ֍S.4je>:,scgۇ7FkR˚*.=>.UkˋژRd^!Yͬ>9 﫲r(9*UA6ajp+!(BZBIcDL&QߝM,!}-{tx'v?9{duz8vkCBHOĉ@\oy_ؠ?yڅ7_#ă3C>o/o|fg{Ljol?<>ӷt)bLBh{ JhFyݍs} ȯǣ<̅51qVfշ;&LdT"|s/|\fxtE~/3ǘ@4ĔRJRȮ'nYf@J4 2dFE޶]Ɠjh{csbwYf.,/H* V(O)9dQ.K΍{BfgUpѢRenmߵ$z= n;nsF IDATnL>)a^̆j좘 Q b&*@>'oݦ>]=ʌŢ: u`JiFٻ@ 1??:`@ ]' luF1@J @hVd D#+3ze}K_$_7HH 4 i|_IaH)~7 np7?3RZkR~r {+ @<ˉ1 JdN(0=9딩X\͂JEbh1A Y}s=rU3 P}SMcC$2%@dPIAKowoM7NnrSD1E@!ED|B)"@/2ĔRB1R_kZ:@0x7)=$J R)@ѶyS)2EsRIQ=됕Mi喊:Ȩ1$*euJe*(8 )Fb!w1GJ !! b&˩@P` 82 RHD 1 B@'kƧ2(DY 1@B!XH'A%&yC"+X@a4@N&5¡R1X5 O+k޼'jWw{ӵKUԭHXUK}R6)! dLuFpL Ĵ>Ӥ?)o"@$(cc=M}^|a~v9!>͖{rѓGr;e (#롘nUÊQ; }K/ߺkިؼm~n7*]{aս'_Ft!Н9|LM5\{$;P IR-aV}1 eVm}+{HMZ!MM NV۞%YC0p{J?ײn:Ɋs.FDL#Eki5fRl(BҤ9 70/m1!zL Cd}$D($6YH#"dBDfd>E&0XOY.6^8qd*dlB62s$q4iܥ͒DJ}apddaʌqοq?~XT-;`io͢IYxz4Jf P)\Z0FRUY^&p1q TƳQtvnO٣O^4e?-$hvMb1taѥ #kv ~iǯ2S)~,~ w8 0(1$fC37N{?zwt.&z|>x1RB:k&NRV6mOE*m1pe`o{nۮ>z(nqq㽬n@JRGo|޿`r몪sDcF)%uvZ)T,Qk= 3cO&FJk'wLYoqӴT* ̄(jmYVZ9_1&#kXx.fZH)s  !0 ׮C\y2j+VJP8ϥɌzY") VՅb24CNQkeY.x7f|(f"eHCP0PSC !ܤ0 DZ :'h> kmqoorQUE5$m7˵qgE4tyʢr.&Ğ)%u(ӋQ J.8JD I\am7 a $rb b-G<&3fs#@|T̟A$ $4$1Vvlj󉤎Q2skŒA0[I"b|tBH!E*|W\qW\qW\qBAi%F+)OZBrclI \j%m;R8/xO"&ra)58>$ez;;zrfA8D.Y2R4@b,%ƔlbҐ3'z:ä ľ !DD̸p!j1;RHJ@ + !FH JھB$BJ.F&W^+a<}F Tl"0bytBxP_17;Lf GFV>e,Y!:B~k*LԀGp! B&3$Q3Rb #$|9K|[_G]DBjv A "n Q20 1zR_ꋉgs{SI6Ӎ$rPbuvŶ\nBBf{KL12E~#Sg{=W~5;[#+$EVT~=ޘ""R <yN&PWej3DQ=U7w^,Ԝ-gSdٿFMwK_zF:g Z rd?¨kF0R*0BPhc-F2Ye8ȗiY`*gY߇Fȉ B&;F$H TJ!!F K6G3qmj˱ztv(e6u:9Z:*[vz<sJlv~~^V%hMLƓuRe{DII)E3RbD1&0\;˻m.mo|2k7O5yy?_zmwgGt{SbB>rc)G>??>G/ >jBb [Qd!F1~o?7wiDX55,F]p4ڬWjUѿxttrc-|ٔeioGM-U;D6J*cbL #3>=7қr]BJd ?meAg:cLJZ[cQ)^FQ]1Ƣ(7A6Z˔c Zkk3D뭔*2熪*&hXb.LBh.j]UBI!+̚z{{J(]7!t}-ýTuvⲪuL^ϦQXv-Z)U5G}x9rRzr7~即y8H"'c~l8?6Y0BJH@H!95*m >b|ZM~-?ioϾ{5;ߢлKݿYH* )++++ I "E|?ČR D|p*7)%E0dF-; JJصD$ Hy+3/̘')3$B (T#Hoe?jv'IThh !(sr>qBb!!`c S42qޅIi}Lt~PJ3q %1$)#H)Y"'fRR6 >xxmT9E(sxK!UO-L1m+0#-9cBr1i-cJ>&DL)209b $ :`$ q,'z{wca*  @#>:X)p"&I"j*Rt#3 ([+/eYqK'Otj~c=B|5g6&YGʵPf&+mG TԽ>^e7k9Cʊ~ew>,$8K2\&ұNcY'evnɘJRa l_LޑUGnr-qhs;(6C)K|x%CZ]xpe ?s.)Kw{*w UcO*B@Ơ݀I^j{aLbd"S10rPb2@"67AH]B5 ̨Tۆ!EF+emLa[ b)@$ά1n(Ba@Q( reo@p%UdLyFrQ%Py۴2}Qefl1k ʉ϶y2g0k>.<4rx6VH'Vq~3vΩtE) m9+R7//N#(2|cnj˅? j~kLH#3ϣWnDSO/W|ݡ/b;!I D^8 z2Z˥xuZŦ} 6At_>Jo^w^٦̾'A쪓yw1P_vruu435BH9I3RT0 [rkt٬WiL䝛nrcb;I\ۺ 5 </}" 12ևn[on>MaHFzS90x1)$"lQ٬"!AdR(81 BHHLyA:'ˎE}ݹ;8ʛH n?Xx`̚T cO$>k?2yfG+|6E81'D$SCrmY\~'NNbi•YuO>K76 ګ"F~7ݻ)?RP|e:ˬ(+)]xi/?]5﫲ܬדz5 E^ Qjsij;G,lS9n297 ǯ?zBܕ?= !dYc,]\ `2CD9cVfY]y^xw6MwpT7[5382-C8D$wY<'ivZvqSwZm"C!ʲ:?="(dռ{8O޽hύ|nZ^aYf]۲,]7n \UB4*9__UONNZBi=> =kٷoΥJt0)nV!x}p!VQw1FR ՝o| )K1&{g=sp2!TYA^7ļ7#abJI!e4Ew^eFHY U42bAEG`}3l <4#p or<ُ??KJD1xiY_;)Ǻl4G~S#b V*Cle{BFTyśbh=@gR_.~~++++;' +B%DH((0Lk#; m[u]baFh\aҟt5'΃QfN'U][SDH 1)hMԿz?s23W}b.YRp!(2t??LI+̑cJIJ9!btEYag= YF !OR JxgQf 1; ZudRoȆ{J쇞NJlzW+RkUB6>Idُ}$MHGT,rgĹ!S"!&&@!0&DUK?mY.BV9" H Q6:#o % $k/_k̓'ˎ[ksBGfpĤP3k|P}C1- E xcOק*Þ;g'"+E?7&§a | r@$,Ld)%dUV~r\P_T7dtWOf8:Ζ.޺ ,]x= &eW*,Rܬ2wO.kb1BqD(Â9N0'_0@J٢I!v2CF+>gF(Vltmv=֡)Pf`!6\U6[u}~*|yxtl_:1=,tN_8٣.yu!ص>&9 xB.ӥwв4)fe[.wuS] &GbNIHcp$J1 "1r:˜sHk*;H!)H6A6B4l[Japx:6]QeNdSX' b( ʱMuGݥy=Wxu_hᇾ_s8J IDATݐ|ߜ q #-[_=}py~k~//:*Q90YiQmfKRvH)lM/\;ui>q~wYXEw݈?[y0o2M0_z{;^i^1m2j&gptl&6}o\Fg3@Z8uPF|q#ⶱ'hxSR ޽W$ZHIvJJ; ټZfi̦Ʀ]Z"R/,\:w% &B- Iyb41TdWxZf[xn'㉈(3^i6rp}gm6g|mҽۛWgcGX^/ 1MDŮBI$*zf=cECxB>߆ S@H zMwXoW~oÒC;fIT@t|yUx2NvM`5Y.7^BZkgrQ]($ ( ie@"!6A,*C7ˊBRJ,`%n"?%kX/%r&1FѧvݝM\.|qWju=ƐHkA$ھCR,ڶ1uknz@TJjmњRu]WE^ VU\.CJ 10pֽ=\d<8.KB&Rb$]^nY۾$v.VE>ttַ-AioVMAg|TFF-ʌ.r҅2Vy|sD{uHըz_Vc:B4ZZR"ƙl#uԇ8Mu]7 $E&Q5..Ȃ4N&ZJmbZMӦm#$NFֽyһm $ V Q~65}FcӵCb1a_4ivdl՟{q=X(⏝lμe1>' ;̟&|d|,"͏WRhPB?$dSvRNiGZZo$(֡)|Bxd wYz$+++?(" DTA TZ$))Sft2?E$5.iIql(#D#QHcq{vs7wUuz`RSȑ 0GNYHF.t9HRDŽ:iCH>`C1j>"bpBR$p!1 E1kCrJ.!C@ QH*F c#0> T*$@ܤ8D>6R\$ !!E @D I0`kgD,!Ю-"= ~coB4w^H PFDL@Zr&XK%QN!Do7^Q46D2VvpVYԅ YlVO1!=^LS']|x) 7; xP{6tpRObqsIՄ~w˾ EdvvؔsojN@2lc_p&Ңc9FdF9?x<ӽkhC\ygp`Uy쨠FpnU)Rb"םJDZ /_+>3h>fk?\@٨KP&0z]/Ǫ ~8g4@86}2#r,6N0TFFUE521,z5m";0 R4L1I$D$F$PI%Gd'~"I$0b^iEƱH"TBP (CJ!8O¦d \@N0-&jXYn ~m~w Ȩ_e5Lnbֽ5.[aȜ_UO9eW}w'Et>6ˡ'1R0ŋsR(HyPhsOmz-Vz۲O^ o_+&:pgߜ?X+Yn_)|ՅgО5a_ZSLʇm$GYe>&eU @dxԴ[a}fJ:)yYGy]bPR) 6: icJ&ϛ%"#0?N[;t]{m (ZM0۲ϪݶEfv@o<˶m5mtҷ BN(L HrB"bn@ܛBturdd{w6ueB+׎8G~k6nz9=;xp >4B&d>lfC1FD '36OUܭ>{<~֪&(bAo߻֛߽:3E뮝$۳hofmHхCs^-_~{W^_j ЗEqQ]pӼ [[rٗEa] cJJkLۦTU|ݶYQ~FZ&Ui}j[wg&"Hɑ}1!a,z4 ɚI)eZQն]UUillLE^7mM$0GHڢ,!hL*mE"!.3{bBr"*"ӺmZD0uO'uRJnfCڶ4M dbL"`2Z6R|T\.\]\mmrӁ",$^.0NҺS4ZEm$o8Wfw7߿M*Rm E}h|ǫhCl6D*/s%(uZ/׭&.D3#mߧb~26~z6pOgkRAߥ$_6[YۈE{_\/ϛrZƣqpf,cut0_xZswN./-.,”(c@3:Cˆ vkR@SB~bPBh q@*=X wۺ#$2Դ@یjOqlIc̀[sW\qW\qW\qW\q_Zj)s E9K0* yZu`r˗h:X}{)%ؕg> JHw `$c p Q+Mwwqp4Zg,E-xDϐHڐA MI lemm2B hv9T{!%5]D$ڹX$쬕Rz6y1 !&IT]QU2%sRC_'it.MRiCa_ Km1P.TGbutDai!$21! # &FdD] s넻]GULLQGD0 w4:` d@bDaxJ9ʅgƄ}~x;/Ͷ]@`+ 5(ASw/c l9 5$'5 >QYfg'w|Tl2wt/?3?OF$dx٩H?uK=)=QwY G,/.o}\6qW8^ӭ5q^y6sιx>x}{Qqŋ7KkG o]9>Ҋi "K <H }Prh Ot2M=tPYeEvpq܋2ry"[K8PR_Ь[/{[%G#yִ7񸌙gVMf#GZO -ENdg{0~ŋ*Cb's\R@kQ+קL4,W$+nƨBt$T Q&ӲkȤJFѡPp`&%t:n?o3 1z>#S  )%f)eIH"@R!aV2'J @zR غ4ucflөI.<.gh( [euC־5(E;-~/2]?=Z,!,.=g`Xmyw^)enEG\}bVzptQ2C ;yFV_== Z0n\:0OT,b"Cpoxi̜>ϫ2<.O.g>xn1 b` 0%kfaoK?[S>2DXn6Je1YM&NOμo~Ln흯џ+Q&3Yf%)aH]ϊ!}Wy]E)\$#bBjH1Ab<"e<3 6JHv]^]IbRB{!lj HN3N ۪apQ)vZB9iCyT]*Ġaa)ĨIF@۴yļ;fFK9 Ðl3B4YAD[m' VJ,˶ujf6 uEk)Ճ' V냃}2 R;M)޻QU&'(8_nYFaFrNiqԀRPfhսUO+?kr ˶XFc :` (ck |/ٹX"R8l I1e1 }&h|bUNuW;_j* @GDo}_++++M?iO+Q r{o#Ys~#"3rYYERIQ4)ɲ$жl(`4 0mQ!")6d") 9aյWnȬ҂`!? yo[瞸8Cu?k&UGOM!D|;$"t(A8/!a! (( &m?7/ݟ-`zئ#C /^)]$pbER$b:k8.9!)"3H6 Q{?L'afVJIrD",VֺH;kLdF"Z[/MTLI#*Hg*#y֤:BzAebyf| 1 (Mv (]dDґ%H$fd(,Xv/9Y|先@bq (Ehl!* 4K5FP  ecΰd_k6[wPX(&ON2vqoxRYǤ؏ K鋐|A~ H|`ӔM ci_5L^+|?\"㯎mnƃ:Ṵ̃wCiip U:ϟmn;z,~XVvm}1oO>ٶAjh΃*sj1C a2$ۑK\{0I]A#&JlB*>aFdd {1Agcv:WndXA%]! cJUCh&T*WiӧQTH:{sdUʐ"ƨvW{r]g )B2F+LDDTy<}LFbp뵏0l9tiE\0FgG­[cݴ퓋z \ߵ5 {|J»6%@W)xï/?"!IIBd4TA@Hk;/ϫٴk >n\6rb("Ƹݶ3ٌI\(cm 3Hq>ݶ}^> CU9Y}Ű\\dtmz]q6V+R:˳(WEHj 1̆VAYC^O9f2ݨffUef'HBWˋIQ݃hV|E2HlX^}Y1ãy]ǪخuUGMQe5UVJQeA>d,ˋ>}IͿ&O5( :jWwKt:$F@{F@aFѻtL#3';yx~K=4ҵ׸5qk\׸5q=?sZ)}D$(`Sxsj1j<[lZ qL%8!E){}$yQ`}/OfA3b8 io|/7̽j|6%HDR%#҈\`VD$IcJH@YUHII)!1&B 4* !z;m-!RCP#H I}o1m 3 IDATcBV 8&2J {Z4Z+^{N@1JmL!B+b YI(^*] co͈dNS#\E @(iABM_@M+f1 "j9pwk+[Uɛ7uq>0ȸwWᏞCw:p@z턌siT?}R@^/o§oOe^: >~O>1P|IכAf{m1C,P q^dÖxҗj ?&}k3Ud>zw >;NNku7D}p`Lӳ0Ͻ~~2T*e»{ٻ{k&=M^Ȑ[QS$s3KYs˒G;ag ^8а*!}K ϋ9[na@ZlTt6)d>92=D!)mǪϳl# ;u/H"/e7 HJ61rc] BD LY)ZRGgQ&. Ǖ,X:%$|ۿUK?\WEwq|mpRl,TT=L͐Ssջe`po7m߾5Qr;7^bPNn9<C/Zߛ}wݭo_?+wH;Gͽ}fngNn5^Gڬq%$d߲l3'jVmx~ЉHv{'SX2^[֍ٓUѳͅSrJVkal?w|n qcԤT@qfakO{E$6sęͭ]גVEu~ΚBDanp$e5Q(@JB`fI09!(F5Z +cn0KϷ?h}v^Sخ~ƽ['>6f^Uy~'o'ONg'9)^^$ q./eripզ}# |"~6'SHefa&^$j9y__޺mHp?:O%Eprz2ۛ]dYn{.ζmWVGI3DϾCHDs{e="ઢ\]-*]T: GIPR4 ( de1>c"ʲlGD̋k6!xhGc 4ʢr!V{o,(ˆ8 CSy !(&H˲, [8kPڶm,F皢NR>dY! RQXlHe0XcH)D,zf9lJ)fD]$4z;NRNb֘o~;mۢ(H H$cJ1"ZҎ-.Zo7(/6MԧgUU%V5۵NNb9"&Fk3 CLv"ک~qεXYA0KyZZRYERpX }TNՔC?ؼ@y^cY7kEԀB=޻MRN8*9ݔپn6뻡ZcDvc?)Aѵcʳ *|I'AS ˬ"`F&̌H}E[v7a?JP/īw9"BYFDLDeUgV l1al m]׸5qk\׸5q~g-RQ(N\5xf98vi^.}la`ts ċ(~jB\RgA<m*2퟾ߪj:׷~4S$i9RYbbE}Y̆HD4$1QbVZ{'eL;ӄ1rJBAk5f ֥ʼ$!yc|;$*Fff`C DILld,敆Rp29DfEmԐ,S&M @ffB M;%"iB( @bPj'DRi4E @+TĖREa!}&3C+?~w?~ ;ViڤN2-5٢ t yƫ0#=؎p{2X 2,+ڟ?˗"a7ZEܯyI%Dwgg<V-.:ҝu23Y͹|+zo2|j{V 듓淶hp'?vVvf[fuw{E0j.ieaT`qL$woNkj{;sɟcm(g~UD?r5=}ft>T84uE VAջ٦AL&rd8*K$ǔi7r+r>fSArklϔhpx:8?nޅ2=~0kj Z_ܹ{E[&̟?@fT`Im??ccyxprr4p'u3}oh ?},+t,k餙.WDp~tqq1ݫUw,ދ2mߗYcp!ez6br>6c)GĦyw]e0 J)"'mn5$ )1233yR֦¬HzI,A͜V$",wtJ%VyY;ÎefTf0y~ "\WU۶^oE^zGkXkWu߱b(v;a60{o5DQ? {cLQ!ƔΫy>:xD!Ţ(q,ِBQݶm,j],Wyf`'DD16%fc]7vkZ4ZㆄIK ^eX0y'ywV?xXzΞB )r6!6ś{_9=5l6[0yn1C)v0ia`vzr?kK̳bYbѦ0x&ژh>OB}Y#tm[Tbe Yf|Ʊ_VyQM'ܸqpqӪ ˻w_}G)Ew,N4҆`et_R~TC.|4vGL˯ A&DEjw+O*BqZdeNO6}`6?5qk\׸5qk\W_n%i΍u˅5g9$q1ڊ]1Jd1p#.C% (bѧ/kO7nzg|[`zAbI!y HDbJ1Nq!F(3c)%RBT(%8ӍB$1Q$ƨ9ĉ9NX‰c̈1R1$ C"%R@jY}Єٸ"*IN &aEM*ɪ˲q(Y`!GR "@ DJ DOVeGj@ A0и{F ++  (DZBs 7fh7k"S}|w>ҟo˿巿_ _r0$6FI)a-.~Z)m= n`d;ɫ8pSsmگ~QPu16*f{o߼<GtL[*JN6J!qPy6V|dPj4So1~ՇǙ 1.-o;=H4OYU`Av1Jh2$6CSQ|2Ln@:.K\m)d:Y|MiѭRY@J'FD0>Ǥ)c PwaaN>gf!?$S'E]΋Ο bB4c%SR$Aa1Ƥ8Fef\ EpB@TJH9F$jzFb.}4¾ mJϣjT*9Fڑ"m:,c 1尾])j1ɦ43EXpVg'm9+7>e.[e@&dZ[t&Q&.9vj:2ǵJ,J_iU tiQ}n?;-בSim/4P}llbP6xɭA3~a~fW7ﵢ(WxmWP4|R~7K1A ~7k(v(H\Z+d2!1Wfջf6CwyYkȳ,2 Q붜Ó[v-)2J;ǒBo;-87ߺB7*g%MB !zbbf N"9e';jvrbO"wP mL'?3ßҏ}"ѷ[n Ӌ{޽{>Ƈ7nzd6{|?1!%ÃÇg~gl֛BDl5DH C^@k]eb1imdҤDz6m7sޥ$7KiI2Q j@^!hLbf6)iuU7!Hq3WGO!H Egk0 8vbijlFrbMf$ E?=hZn]]Ntn4v֔vэvyד{7o~Lg8n';W4]&BTVpӓsYZ'ͧa:\m&mVCs/ _h$e+"U ʛj(Hti "WYP]Cc4rb&K}זY0'+d'~_5qk\׸5qk\72P´̉4kuY8GmŖ.qd9&}A`E(#0'O@r)2\Nݹ gI~[ךo˺>wH )i#ic@0`L`:s. $,9mGĉBRfW%AQGĐR^ԜR0H lC l%/gkssJ7k}.߾elȹ(ovµO۴Z|޾~;Mg9<п>_kn,6O԰LGYfW(MlZGtiJ5**.Q#ntH>8>o#6*1ק6G7<܈2d 1tі0 0B ;a7y2/0LQKcW7ǹlB[5%n*^oGa::o5eTc")EjL(S3 I HV%PY!~FSH1"&}p;x,*/OAةP)f~^,_A"PV @H)3?tUK1!7 Ruk5F>*h}|O&WwD5;`XgA_ˤ8DQy0We;A^tJ ˹}M`ƩFMv6"Ń铋}hNē,GZy7fye5;sßkoNY7toO޻{L[v{ ,t83U` dQ Qij>ҨmL@S+׀nBwo]ki*,TUaVXun{IYnV,D4bq[o-/l+Tv[UJq=Z;RV%7HeU.:/ Tɓb>+Ǒs{k f~'g盪2z^ 3+jym;anM%.@JB/2ULW E%E+|:>7t/.~o"D()$nro~7n^_֓,6kzn>;=y`O+Q~m7 Fjm׊t2 1<|x~Ʊm77n{U>IBMDnj͂JإXlb, bbѷTuEQ` w,Z+CdBr(vhctJ9Hʇi5)ݥ9&RZibdBBA$]d"ό1YAݎ݌[fH$J?cpZc)"'@K1 idA!0A(Jzf&E4` %, ibq!&Tp jD$L$a%lQDDbȗ?A]v#BQYdHD!h%ȀL XǠ5!2(TFJj%(FT-SH**$"J^R_u89Ezm-|/f_{x>ܺ^>Z;/EhOmM+unWw 0j (5z!77>Jb<(j\A'rƃ~:5EZׁJQB8ij;vzCގQ- <,bIAwv;aߤ1=7&ŃMd&vH<0dP I-}zfv ϷM}/T: KzgX'Y6/B ߘs)Q/>YYbR)A)di`#ˍ,Kx - m؀e"UY]do.ȈȪ ŽssbKH]C/Rʦ/>A^@/ʎvΗ˛7n|ݿ}~yQV}e^x!z|rR&bY{X/ϪTZ}/ט" Qv08ȧ {k몴GCa2@$wR)W) AHdf\uʅiUMWY>rbcD̲ZMcECخ.!DU_HǦh'sRHfn~g崨cpRf 3_,|*q.B ۥDrmK}y}`fDTƔy޶mAjew}Rz1k,DEѵJGkY:۟;%.;7ZyY[+)RPEN \ovWu5͋[;6MRֆcHLнu@BI 꺺e*Ge#"<e6e,ztq6ʬ)/Ǫ]7COGw妮qWڝoOWo6rb /m"_&v|Sb Ӊ!SBhB%$2yl~,;}kkkk毗/Fv,"ʘx'M0.Rȣ&@. hI mcΒ E?:x;Uf18K`7dZ}@&Rf}9 }D&$J>1jmfr31^M 3#! G$ ǂP +o40 2`[@$A@($ I X ,!@JI"3 z6x\B>y>zI¿'?}kr1إUDt0_M`]njxpю #lCp|=h'B`OH_gum( T~9?/|GObJ|e#E~RQq ѧpP|2K|] {I7-Ӭ/5hvfr^y{[_}ſ5Χ֨囇~Aڷ v>Ͳq#[|g=|MJ^ )fiz35t8qn/Suosq{4?iq am]B=pwna{& `v@vN h\]<;<ܦ-1Q7/G\Qfܐ!)JRBf@!~Ԍ @"HV~>O?s6'&W`EJdN1u VInH{ @Su4`rӥ"EWǏ`>PJl-Vz%L]#f%ETL fd3guW[Ӂt#ʭgǷgn>?؛渞w@y>\(D Rƽ\;M𲑟v~mƾ~Xo\R^cSF'zҩzotfjS5Cкi#e_ y3GdmRz4&Mf]FNIYWU3 f)DCQ-յʎZ*U9F*.ƸrN"/}Ç2GF'Xfy mws$Yخy[ƌ>tmbXWw!u.xcZ0Wt|1O&ǧ'7n<9=5ēko^i&p|XTe9EeYzWd21xo}a "41aJ SJ.'X~U3G"-#/` u=1q^wDkC)y%d c,+BNkm!Dq ǔB1F5l( ) )RaRJ{)$ٸRfmʪPBYkTz:]o26")Rr+"s( kmq[ Dku="t`*Ykn6i6RYsbekΘ̹yRvm[WUu]7)N&Sb\Vec,G)(TCojRFJ9!BHȲ uQ[H}̣( nUY1$l?c2Eu])^g&q483 !E#~3xʌʲl9g4^kRN1E@{c n-UQΆbgynSEbܖv!0è,Hը.SrMQM\J\6HHaR?=eJTTRܾeixROEx;.KN0lE ru+/N<_mH HHjR~A {£;OZ*IWB;PDmg{szoL xp^ .$УɅ szGDG!L&@BeeB|b5"bd!TF"'dfruä71( A)%W}8.!3wIimcJ *0#I1La^.Rp'QC\L%ZLYt$hIH4DD )•it5c""H Pˋ@6@@L!:IA1{$AA*­ᐈ1! )xIjRLzC[($ ?ᣥ;kŽIdLғSc*^%r~>݁Ot ԚLD٭asyF},g{tzz'?p_6%C(E!gմ<H/p7 `Ӭb6ᴇn}woprzz :K?y/޿'@BXgݢaVQvq(f><+ȒOhH CQ^N31eR*\v`mDr(X.fizڔ%0Zb,ɍ}sDu.&ӞQB;ϛel^%@ R&#}T]J2OlǴY])1R[,)qJRJN#!Q=|t:_e/XH)<81 !S)D2D…(s#$R !TD$JY Z88+~׺Nb%Rj]kdÞ> o~̦ 0xzKT>i?D`}^:+-E"dzu f7Sl8 }zbeXA+^9,~xqޤbh;wюew'`׍ݫT RIV>UXˬv:9,S';SNY|A׬x4NXVF[ץ\Z@$Wya{BeQ]W&fʋA墝7;~gqI(RqQ9ʼnI,Wݽ<#S{ľIHժfbqabRn_Y]lFɓ Px~_3s)X y'mֽ?7|7~7 ӢV w>S"E?8[z^w}j`t]>{‹w{Ef훷Vl6;;;;::2Ɯܿw>3r^o7*_-b"sI)L]%Ud"2e*A ~lʋf=2vUfwHw:) 6:ˍѤxڧ CY(eխ? 7G|7 S ӗ'^|'n ?-6xG7*y[ 09RBDNH1" 7{kkk暿oo7Hb+z+91:G%|)u!HC$tak!mr-Ce1>0pCdFIu/~pe?8t$8x>$,`&i A,}dR)9/&I$I—1s!2NQH!du(($A9%"11$DJY)(U] '1&)u`F t>0Е(ĨLcJ$TL wKfHp !&P䙧pZfkH։0q2cTD{A@󞀈ȇi ">>h{l BADTޭ%1k &H \p E$ N,Q4b0-^xi_y-X/|ە0ԙudɯߘ_ $fh-]zS|_8)Sؗn4X7 p~ ʟh*~ x[g3In 'S0-f5Uy\[nq=בtGӕo?كcpSL崒ى"qhݴT׶R(Íã3 *' MG/ ?'']7u0rJ)mqLĘXaۥE5Z~} yy=6?A` &TbO?KONչi^Mv.NNoݺ e;K"G<00'e)DwON/_z᥾߬dܾ㣣g&3{{{'''ېiƣ +g⋷o[JwE3  ]]SR*ACTJ 1T:Os[EJ| u,eURpcBjE<XIa(ݵ !lӴf!IZ(@]!K1Xl3tZJ"jV+孍THH5$m g$R B6 ̝ZF+0Zoaٲ,`J>h!ABaKRJy[kc)yn|S!9%o6@̓u.%>$x!L5Jkk]޺myap``{Dd`!QyRWdf3Rt. 5Ҵl;.LߵhbBu2! -V?Є(}\2e͛nً~r~A=o=*Nb=4DĘ9tdz[|y\詐V KƠ'ϟG``«1];GZh)Fkkkk(!R?YA"AN[gYEJ{{NȴULj(ܙ'y2,t4 eY'0"6rH1HXEH((IbJHs11$l[sj7l \d%U 8D2 !)I)!BB "χWRZ"0XT" $ ˜bd  D<`$"C>*}j]\.!Q㶆@d$A{$0qBJK1D [qmz㪄8@ڮO[QG3W& B $ !6h " I fd _;u %ڇ.jOJӾ7?;mwpCl~W.9Z%1"qLUݗtZ~N~ѧ/|s+K>jK2sD~z9>/" H($k|ej7g~rk, sF:v'mbWiǟUu޸QJR+%Ak8imS&?hn2s~bR_z^4o{cڡT̛t\._$z0tͰ;:uAJ̻VM DZlZq`Fg1&I̳nh$y߾zcE3B: HeA `%ȋ:px8_?xog( &/ǓsyliiVK;n O~K15'!9̘JW)Џ.sytDݰ[_zky]Gn휞̌.ס5Y-W;ҨÏ3Ƭ>JdF/ow'>ul6h[c mۊ|:[=<_̛~:_ݛ o\@R@BH"AbH"yXvIRRL!:Ocgǘ3!0R:Hlֆ@RAdQ a"7sYnTRtBb,//.Rc &F!zgm]RHF ާZ)| yDچcock-re&N)5_ʪLޖy|Ӷӝb(!"b?EfdWEaBm !UY{H@;&B">iPmUU-"M# cL)ˋt^eٴ `a֛v4.+!z$1$tCPR!5 B4ziUHDO>9[P1$"&kMwV(»avI7|>8?XPW|ga`%GEDu]yl6ݻ}ONwv``KbM;iV9袷:WjdN/wF!fu^w,&ZP̽7Ejw:OܹsY w'jw"#hdﺼ&,'ǫW|uoo8;]X SO$8J* W5*x+ ^@m)$F!}@\o/kkkkqs-N BoQ,StB1xRuaf_NWkvfv`p«;"o;?Sr*;b!rF涵&U)sJQabsc|7@Q(ae$`{bBT$S"DHo&&لEH@~GK>Z\ EdK cUP Tp.1 S0vp̘)E)Ed1&u1"E_IHDoQRJS`" IGDɉBpI&"LO xš"'B2PJI !1ςY2$B D(%a!0eɘ(r"BdWVǯ)~nʥM7Û~K!Q?[I?{4?D؄3 CiOVbGڴ;IhpHUomf3_W",[L xȽO$~р˄OG#ƣ$'#ѓ|b'ġEL?ah5$ܞAg?!!G!B.8XଛT|ʽ] [?>K&̙uϯreC,Y]yÿ)z{1;Q$>.r*ͯq3m:5a! Y3b5v"K ':.f.ە9bhRu{W6 2…C 4n+.cN7ժ]Q.:6aI(k2tnV9x)"EE. *BlL"0BpBG[c}_ A 0&LO╅Ӷtψn#Ad6-IɜQnQ#ms 1nH!1#sj3>˴[UVCKA仪]ӃLBt#{y:u1*^L*?tNL#FG~=Gå_/3Ck&gͦҕ: FxwƻmusK]dY#V?ByW37btC:ljcjy)`Ud>E(w0:?m^9;q3 ]x~٦­w/f~e&/MT 7=lS]\NwAJDŽ$hoˇޞ?*L3cUI%ۻTO{ Rk_ws_|?~΃f>VVM׻E)]>o8ƔǣUjCǿ/<ɮ?[M~  !`8EFBn;ow|kF7 غʧ|xӝo_?{0túOfu~x\1q6 ͣ#MtyzriZ!ԨWu]Vx4nv}]wy0rZ*usM'_}7ѝ_u]H>4Rm9)& ^wQʢ$2Éه(3Y]bBUU`LjF9g޺/JE6Y82`s䔴Q4"9 )!Q"tEkբ(Bɤ٬b}+%sʮVR !y> CBIf1YR)QIyZm%e(rm`k&.1MQQȲ٬c(a;DH:R*MV,3$h,I)Z{pM)dF j10؈tisIy&K{x4ݴ =D;, k:uf6^ݨK۶Z",#B<KL{@xE!!,˲,SJmׯ7lSUՒWz{TkFjγ*UckL˺֛ !b:Ewh 7wvNώ;֛Uc~4rM r謳 Q{\y @A߀o|畺fM,ĄVmQFR1닗/6b vS;~4> !];kkkoӟ$x\1vc41chCSpښSW""I&3׿Qߚ|tOLoBC ;f1sBZ> (HȬN(h(mPXk6"R`9 dt.hW C (3S*ń)<$+]@ֆȅ!FR]/I۪pRUJBDRʬS{R gBHl?q7C8^1.bdD")"FŇ$1%!%AJjFL"%A А$B@)5$J=TT"GJ)aRRr K:ܸ1Wxџ;&Z%?Po__{m;c^e`fg}d.[ڸ=]7rYf0@&6.y aLHD +.<%'B~CH2{6=|ŧxF~`c3sĩķ{ UD}_xV}tϽn)b x&U>|>H`!JaMZ\xE_Ǘv+3o㭝tJލ9BaLbɅ |MN~A__y>LgM'6yeHLb٬& ۻzaߨ2׍. !vO6pw+Bj ,bx`4`)ȹQEVdsyp 0HlGUy·>DzIdޅH*cu~Lg?n1>qOi*cOß/~{C]){)W(#+Pcoozk>΀g^4;:cw|2eB +Yb+L{sEowwivg۷o@\J1`ݶBSM[7LdMRU2ϲmy.o߽}ܹHxxxT7iRZw.|꛾+݋}`XtA`LA'@3ڞ(Q vN*CD: 11IYWYsvI$ι4lg۶"2 w}ӟ_$1]w^?ZmÑx}2DmU?w;1GQveg25I,k!sNk-t&Bh)0DubBY"kv4vHIxO,I! .FƣH qrr2VE蜓Rm鮈[Qk(I)ښfD4 뺢JiaVUU{"2,ne{kmQ1F\^J> N9緶NNkkBi "NxbLfC ɨq8KӦnLe4(=3-:dcc{6Ed% AۄO~8YĨzG!Dd:$u76s"9[nᆰfKeh%"bT٠׸([RyYWEW/Rᆵs>'=E֝Wo\:檪/^'^z$/`ɤ39kmݾy+I{F˚"UtvQo8.';\,?>ੵ^z7YW `R0D#`|V-g1_n"0D@ V*\ i"A"|{;V:F|) >C f!lpGo1Y_xlwcss<6/ⱹ|0E6Z g_Q}EID]P e}B=u pj+S,pp:!.Ïl?{!{c6ۡnu ! AKD)J+v2AVu'$Ҫ5 IDAT ZBTkcڶZw]' 2mQm Y+#q>/I% EBGA7Z`ZJ З@!ĨYĨ#y-X01@!D!d[FA@GV;!#)YF]-c߸4WR!:Qs2ZJ!FB!P@!K%VbU XSD)82%(D"bZey )D!%s&)cpD@ 2lkGYLVUWiZPI?^Oɸ/Ʒ0`ޚ~_J7'6dO}_UGb@$@cH(WR WY!Y^NW[5kW˓F5oҙ=5Hd$Ϯs<赹I>t_>Uώeeo;_~}_yre{Og ]M҇ߛ?䴙WHs>YͿ5XT rFۓVm s.3'3;s/ eEE} @Xme^v͝ RE0F z)$IdRGX4t.=3mD#Ȯkrge'&LL#tP̑Th)"G{2*RJ )x6!8r%CfsR32<to}fe$B);xRqRڬ_oˁT\/-P%q ˦zpoK4jgfhUؙ&<7yptgOrn7έvFIy`Su]l%GK'ma[٠ 6UY[we,D**5.l `{~<Kߘ./_[no ͯ?ux6٤\VU=bVĤp8*(DUVE^̹{#0O\kvVnL?xGw4CwXNfnV]L٭dʵ"JgsmvU >|s)Qmssv[Oh-=PLto^!'>Fx_IGdܿ8_G:eVNn?_X] &VgF߼|goܼqrr(pmi'xSԓO^ӍQY.{!3zgd:U0Н;OP7gYfx{\mIiz2 !AldõIY˪mo^eNcꝣ'wo߉II6 $em2Hd^uUj2Y-3IHkDʷM] h4 wڮ;Vt:{]@D!W Wd۶3I,o?sg~E<|$aҪk$E/M)XE!DZ@!>cVI!"Jx<^ p8O1JI(k$LIf\9IUz.14ZWU](2J)mbHTk֕R # 1FL ι6~cs?6#~l/nH,q{@D)DA'; &`fYl{W>yҒ=ב eeQ*B0qgYZ:j7iX&I68fJJΈVuUid쬕ir[`Ym(#*!8*HH=S !uuJ*IwRHSK)hBvJy@F62I9uZa|ڇkwSȇR @Ji轓B{D<,Q *@ x@Ȋ@!\FUf}'wgpPB}ͧ_Yo ݿzS_82lmj en"Kʵ2ZΪf-7cFsja? /$; eiwF#i-(D9r^%\SQ)p !ªP|`"$I״($<Cۼs 0"glcq q%j~ AJr>KR+ ^Q/C1YP&%\PI n_aSX nԕ<)H8Y'Gl>w7N(E'Ͽ~%ԓ'v.Ʋ-1@|1_o޹Qut/=~wu5۵]Uv^?lmnmc븁[0-) ¹BzƍW=;=O򳷖] SMkFnN(rۦ"b` &""Xд"`N{kGևHRouϞ7<}Jka2kB:[Ũih0 mh ݭsOC~ƕz]~;b]76֜&nmQι3U-J%| 3O>%זjUct]qfh\-R G)̵ׯsO?i=<6L]z RI4R@j)V6P>M:u.1$EZ6H~Q(izu Wi ~o:Y@1$JΛ./:P ۵.5tlZv/AK |ߘJ BZuSuAmn^:=(>tzQ.UKߓ" g8p&yP%u╾NǾ>/pTB$˪j_`H(9 J cRJ/ԊΜe`Zi 5\]]Oncs?6;߾cs+K=6ߑy6/}Lk1wH xz;}+;ra j%̅e8E"NN|"12Kl#{="/~b#CـΓ ]0A|)Ņ(Nk"e#9J(i'TbRK`d$UݹA yBRL9!#5D.1"HJBd B1%PZC$"#()APRsY >@qLD#b;D !DHh$23"mt18FdF`D&Z f)ZJRH@ JD `j(ъBhR EO1*捌ls( A5yOn)nO[S6rbRgeI^坅I.c5 g^oZl7FEg!0D^!e@oS!b~#)kWc,?H- ܛ)Zog$~D=l NLI +՞4 F+@1ԘsT$G>FFZ"̼UՈo #m{q u6i(r:_X}$D!P 1K|,J@JT+(ΚV)/y…__g~?o߸-k׾;ѯq IS7?'{[IS?ꇾOϊ6R+etk;mt4~_m/ARY$e]mE.*8EʓVEAB+i P,5v@I?e-ZN^=\J]͉I/5yZ봒6GEY$͔R'';{](%]iQH˦vv{xsN յ6IRp1mw7^~z\V[]|9:=YUȀOEd~~l׺_A KOP~ړpsRΪ0 ]L~6 2+qf m5^ݘO[P|Ol~L;ꋎϑjY\fX}mg1+-&f(E!" (ޮiщ=Y_Vjc7=6cs;܏}~lwWeY]"h4y6%4%xB%1JAY)R~+0# FQLb1.?cZvtL !:$#V{rg=`NL9BJB(+D=&^.,WdK=OJK"Ȕ|G!4IH JR46tEhCLMRwNi,Ldd|etDPCRQMYYQ tC&޶TyQQ)JeJ LV}pĕ :DDh"&B=E((D!$$BJ1z!eKd'%N'*e4e d2t>ئB v^a.lk}Ec[ xgL s7qJTs'XEfN&x{^iw6?'mڴ}^MU3 Cq2L1gw"bfY~~系`2=&$ 2h%x ^|217p]EVQ4x<>W.wNQ~!,rG^1QR^ul,7Ÿs<@uè |?vͥ4 );=H!mY"Ifx/rD,:NӼ%L,LDRۑ vI4MI)lbz>D?&3Үoj)0B+XlPY ^D:'XJC(P 1JMbUoWZ*WTupf,c|0@@&"ݧKN3>lýX'7^LxYi,ﮝ>z}=w.^/lIEnXu%%'2^\oT˦b=mjPxw>\vul짙RFv4{ '9InKOypu/yx4><7&ayPFkލ" 1/K^"iE˺q#!ڣt;',0z=_Ko~[ rٺk@Tr"3={}#3<ro[E<8*8 OI@YCtB#B@Ј!DhB"[?r~7hލq{g\;4 1/5#QMe ]z1WDĘM49Wٻ5Jo8_s. 1Ȯ߼9RiYzAgRdy|_hZN%1$iyQEQ׍6Zc赵dv٢<<9~n{o箬|¾N,ylm΄V1B9RTFC"P …|| k /2H{~k'~IJ(du@?~k+^z__A7^}7߼o_z][ρRJYWb,XZ,8z)Q!zBzD&%UuJ'l;eYi4ˤT]%I⃏R+Nie]"Wqb\FB(ڶ- >@v{)I|#cBkꤤZU}4Mim1FDbUYv~BAH./zZI&^.Eh(m&IwJ ۪2xfؖȍ8%3BVM^@ D.>1T^6Td`!D f |a]!Ho:?_.;bk][1F!)Kr6&-^S5JK&nhR::O^97;9²//-I᥽J%b2nڠ^~/{2Gqg/s>%=B*[Κ&2sm{T5ٻc_}f[.e݅2 \PDhF=7ƽu?·ng뽐n~W/1Blu@w~D$6!8h,BH>w+Xu'&b|GHV$ 3H>z!DDiȪ4M&CtɬL&Mc̋qF:,Q'JJ BHMg-Ed6 J+: GdUזybx*g@F( y/B)nj NII`"F)@_& RJ#)*ByJ0U,P$1!E!ziֹ; iHzJ%݇s9AKm#RC+ n׎ڞAnӅBa-4~_ӫ>e+2tbޒ~b~D=Kƽ{[V~_q|Q~ŇfRHhD^;N͸tiGY3LɔduUy'\HҲJb-\ۇN2=vRd"I âM5MHIK_<5 rk-u]vpx믥|ʮbiʲ] >xΆ?DR[c=(J퍰l:hU’IV [- m8$srYf\pul):ub@Y-Ui/2I6=TP"{8j>ƴ%vֆԈ-9eC(,tu$# @!Nc3ъ]$ 23rr_/s*?Ӥޕ52޻=iL>D5R;W[W J%( ͍,} v}K- 3*6U{;6{B.WdG.Idj]R{?4t~d͓:Y:7&Z7ɢv#}~tṽƑf3O&;õUlWyPgK0ӭݝϏ'=6?}p|eq}Ȕ;;w&l}mDdkf~f_v&w_ȮΞqV{ټݾz lNm}!HPU=;,VysO^UW?xT-I:ߣGi\UFD) Y2 $:@y3oOC䅃Ez`{((Ȫ4:%J,4Ϋɉ_~5f!i EVu5؜M˗ tSGQ6^ѻqrTd1_'%Ryd2ٙflss31w$`sC >DmۆڶͲg.j0.拼6:"kPa/}33)qYVmP'*x/L2Bei$3!FϽ5u~gU s5_~77}tx7_^JyΝoono/=E/d\E:l"@KYNH)HקK{qfb8T_8~&Lli!wܼKpAxT(erN]j*8[xd:&hA_r³W>i AWL4lXPatI(]#Bеʥ=܎MZAB}hj촃\YdhJ\PJglS 6Z&uو4S.,娕b4>ՄP`2eAf@FPU c#z@sJcZ"GB)!^Haxdg9yԽWE{RO#"eY @g9=GR)CmB$UUh+n FicPi\jIS6b\6DR&7_Mo_Y%*4r'چuJ뱡[2J;ZQ<YIk %~& Oc .Fn%)vGi=Uĺ$ԍV.|6۪++g77 ]=:zlz,Uϯ?qHש)P(2&#muC(!֍2*˘*j%{O<鳏Tsf0eI9u6y<8atxW%=ϥϻ#펲S:4rY]jDB)e :B5Hf }R_{7ox..3Uyz٘*C͇"0x7Zۿ'z0 ;;B(VV;uuskt:݇PW+E^U}}.zBnH ne9'h%޶㪗p60\PeU#8"M)U{PAUV5h;!`{k>MWW=<mAZUU< 0`a9eJFy-G~}{ƣ{~ww0ov<)| h̪9od'&Mq<+TùZXY9@m'ǵG*F\r{%ݬOI"';S7d+Z>niݞ߀dϷ?yg "ݚÅҭDfT$ؕnX#N 'F鍝bcJv2 k+l=k'RYX/u~vEp.́}%Ɵx}3lRKlcUsnuI"U5zҊcS}KΞW}vt]3u-p nGa"g%V "jl\g0Ii ݎ5qvƇjS]aV!mUa[%.Dȁ *l3Lڥ-jсK(S2i;I5.>G}]wȏ/Sֽv/5sO}s?{>v=彟ZQJt^ IDAT!ἱ❛89 Z|Tڲ*p8MYJ!d2`Bt(ci}ǔRc "Fa*k)ci*9[|*ms2t0Q FI)8y,)*˒q^V,IҪEQ&IEAӨb;';;;R4K˲DyV2,//ov r8$QJyO(=$Ze UU ! PJYk,<c !63 vYԕ2jw2f:FC)L,1 8N+ؕU4tj<@ywZN'~iMWO un1Ow:/qRx}Mk07}x/o~vt$*v+k1:޷?:y}kni_Wo/?ŕczk^ws0ӟ??{[_|qv?o ^zpMr%v_੝>_ks~hEb\Ł#w~;τ5/cL̍O'ӳJPBYѧ!>%.HXT'Pv/7E.ݿ]?jH)R xO0EZOtR TzZ0yQr!\Hhe8tgQ ng[筵\09c' 3)뢑iL6JvcfJ)I 8⹲8n3;@¥ xSBzG(Zk)p9 s"aB3!g u s9QfCJgq(EBCs 8DH dgR?o(93ZB#{(B=ʝRsl9&G+n%h|1u}ӗWv0NZeITaQrX~'ޡU,.rѠdA,emzmߚB~5w,AJao" if?~0c}x!BU{8CD^ɰ>yZ+}*_ ޶W|^)D9cR::B)"rν 9k="e@.eӴsYs\{{~z~ <: @\<""AsT EPPR:LrA&Uu\eIn}ٸ#im+R.s43RMlќG2WA1lVfVC넉 Bj!IF'id*n[m&vY)/f\es i feȃu./,x4M{#v$YܨtkyߙM+=UN+]UaxMvشjQ(("d,$èTՊ'[nXyځ{xxyyWSC³`0k%2mk7Ad;eT1Y8c<"Ce͸6=:'VWW9ubWX3:ynsS9\F(BeQHw)׽կ}k'ɯ}}O6v>t|_W?{@CH;XBLՅ_0IsHDBHX7<;M'dSCJ^WUEjgy!)Rqțz!k:FaYta7[h8JKOLhct(i9{G$J53FwFJ"z4YMM}`u1n7֥Il+4kGB90`N]4(9衪4ͪFiSՁFqVFK)XX\nj1M3d*uS~qAL'KV7EY4t: wX7u R_Պ^`I'2j7>և=ryo--hWiE$N֚8M<_-'FRicsժ1Jc HڋNm/-Fy)'@$ۣIwq5JQctj5\j/ z]1{՟^T۝^ v&әiVþZٹ SbFx%4j3GZ}.KŪn]*QF-@W\3$GV}7V*ki(;1g(7g|w[[sVj+YžayӤz/\uD@M$(%,`j'-BZĉ%42a5vۯ\!2Go2p' n WMKa␇y; q22OW Bo F[)Ζy9\E*kBT9Wp.nsA< yVn']1֟؝MBx&DtrY8jGna@^b*%qN6U;N&`!Q'cV)A VFquC ;SԥIw{ZI詑Xl2SgѬd( W2J#ʺXk3i륲T:AO8%9IuE =V\~C8O 8.~ݑdKA2Jw@`^pΕ5(ڛyӋTzԁFv!NZ_޷>yR͝~b~/GlQKh Cw,8ڸ}`0=ԋ6g6=5[[E R3 _auA\ cz~zBGն?П(DZEG&wx9Odtb6n J3\>`yxNQE"vE/b"a--yL޶ntzJrA15%%6Q@eĭJF5v{\ָZP[[$?z zoX`\sZBq7.,M|Kra'4.ؕzrB@h=8OFV-zK۷[s'yIBٷz"nmovSKq(MzG[3+})lgJnX;~766pyy9r3gz N']Nve|pÉBj ItG~2{d"./-p0Ȳ, Ch=}t$,45>B0/]  ^UkmTUU^*Dko<yNx '"$WڲE1kʪFw[N'냡O}~ʣ3ۍ㪆zi gdNH b4o,̧}wv_UW'NwOI?6'/% ~ةFdu(ރ-1yQ@D-Nh_jDhM=AD)DYUqy1r>ӑgR*r$CHl%1dDp⨮Jh%x:`,D\flYJKG([nɂdFthV+0fV5a@0ٙ匇iөgH0X8W8ϡ?v|K2 > Ł mIl0H[[p:li(6;)~G'l =Gb Pk;&\Ο# kxJW§|ኜE4|js8$ī7?o{nž"ɁWoo ޟ}uč^u>5;d&_J^wܓ~-!@mtiՙ휜.hki`-/~5n}gg'^v9'՛ܟ9}O-4ͽp?աL58s}Gtwi?\W@98j%lk{RPW|vz!΍cM9qHЁP̣jJ P@zgA4,:y]k!PSF$ZY|GHD=+ Q51nmX&ԟL.lܬjHTn%IEQi6~=p.FA͂PcŀzBV20Fytq#(9@%!sv^nB#Ӟp=2J8cz %2:OJG<AzLXk8Got mB8"AEqx 㕥:-62&K-/Z((!|׷պL)B}hD zQUǩ/K ,5$f)}dh6o- l6qvvz|CGvߩrÝ[iQh %5Z6a@v:g"x,=ǟC{>_X{{+؋G(W-$Cx.vٕ*c5r<:zAL.PPPMC`̓=Pq_Kq Z[["jD_VGN*=+.W"eXGNX(ݟd [e+`[QGtM]}|} xac:RF73BeI~gYw--7.-lcχq"q/ŇSpfr9 8%qd-7lRg-dMk 9 S)糆&&7Z#B"Lj8OU Y@؊GF.jT!d`=cQT-yQ)m#V0Һi w`,bPgq5 )e:D{9) ƣ.]KW+zJO(#(!&Gg5!d^1faUeop4q0΢0$yne5lnNt+|raZiKnuƎ3Z;5ɛc gf͑88S#06-4 jb)g|CCrü&,dl~w2(ξ gOaMcms&}nGSWI-8-|F"̝۬$6SUqkaS]O9_:9bgwh-go;/Z[gLnyaw!p γZx$O=#?F/ϩy*]'/<)!@|K #["塷ȜtJ p/wzE^8-g^o9pAϤ>v}{?+}llF+O?G9TU>z'w~7sΉu T !VνMok" q3 t@6UͅMA]לsFY:/8nTSeDxJ!Ilna2;礔ZpRj2E(v+oW~Ԧ,|gSmoj<d2YZZFB8qۭ,V IDAT((8ʢ-オVEw;AdN@e%81'60 |Vۭx$D`+*˲,$1FQn4<+2/xlq*9eϞ>p4ZQ4 Pʠs{gte+Gi+Uj276kUǓV%k "v[+UUe s rwa8:+7VE]ic{hgX{{tia;s N5 8f,ke=pwMG6AmgM+K'6n^\k`jz覃Ǐ.gсn/-{B|,q~͆cgiU+p{ӏY7^7웷7'?|6[y)`} oUH?N~ /v׽cHYל`Aঔaeg|'/ ;iF*yxƎb'Ӝ,$e?sz/л6`{?˥.y8,{MGMKҵ.O*+H^}2e& hz?)𖍣h'>'gO}KO@'C׽"O q 4FCv^L7K%[jRFX.8kn NCAKZb'U~aշ^jyش'+ԓM//lzϮ3ox7w6?K|%'['[pկ%o_mw> AV~WdL>_zS6!6V?Y>Ho=ߞ>vIç z6qm>>M{+} ۧ8"eZ~QJc#X֜Iȩ"bnv"{%4+6m<[[x]zm[﹀,`Cj'찮ϜJv>Y^R#t{onvw˕u^epP>CS˻uxmfZj޻*{fXrR1ڮԳJAqu5QDAb94ws4S!ϲ央\Y,0uә% %aVf3#RZ903gFB.͊F鄓Wn. mk'1iqYye^+nA֢F̋LS EU&/{BZ@yAsgw,iU,? ><|CuZOF1Ugr0UWW._2%މ'vvE-t. ø*KU,//ommw:r\,MӕR"Qc9(b47MsA<̲,xgN+{k<q|ԩݽlN?kVC2NYjca @˺(cZuncyi#!qclEq\ERiF(xu{lRJck52J13XgUs40J0cxYW,XD(҅귪*オ9'ZE@k}u(kì(á29_5BHk\E0R!Rjι0 4H"r{Qw ;>S?mȏW/o_?Mf~^ԸǟbRDD hndm@3/mlax8󦲓آpK{ǙŲ /]+{Ѷy TFͅhKE=e|=Rsܷ}v3=v8J Lk6HzD;7ȭ*<ƌT#!kqbΚؕ]as4\δ Ru@Y^{$K65"K͂Lmî &N]BI9cF2 #)&N8]. xĉ6G{<@ R!ƘR G(YX>n %֚GBqp0^HN<&1f5Z{0!kE2`Lvᷯ(/ '5ͳvC^J{fLDL3zxrHj`nV{4=l ?A wז3+aɋb4| LF5 seWǛCG{AG| =ؒ N/"qzXU0+RHKhb*ʴ`IfkqM6 j(Z,Q\UYamOv3[GsD !N VGkDVS;1BZL x1n<p -F6Q̎q5@`5=B0h(8I[m67wq:*hN5+Nd㌣QuHY#JY;N{4hm ^/MV^wҥ'OfN? LiըNwrxxW?~ci:?y0&={6ύ6YimllooD+l:eYbZ`n0RJt2kaxOTI4ަ" "aT5Jj#eRJk]UUY.D90F:otڊʋbYIY" M(Z][ϧ]f2W1oo90?on;|;K_G[f7UŹR,w_4ֲ )`BY9i$q΁sAh y*22ey-lHt ^K%R kP#$1ƄuM( D(qiJZ8EQxR*$R LB9a΂@8G6s1lה IDATjUM9BMC)UJBEQti=Fa❵i-1yƨcƫΙ( QJa(08¢*oE^2PI|ElWZH0O1XSʃiotʯ<;<%owpbJ@Э"wL>an~Ool=]'޽ N9-(/]4a `ra':~o+W_<%_]Gw|/޴DO:cߤSRqtכ:о>' _ȳ᫾|gqϏ_?k;_W=%I'=FN6S7|4ڪ)4d/x3:%gnjX&70\KG߹g֩ZK="AOk鑇lh㽗JZOֆ歲"D,xJ)HkmCic0ZUSVW:i|>0㼖 clyC΂8݋SXb.}?{]|GVt7u^D^2Y=O<;?D%D!<|=yIw~|R}qu{6""^.8t yWQ{-Е`g.e|Nm,C{K1翨{x4N6NQm.^sڝlӀ*%;fC=xY@eE8 43Îu*KH=lqڭ:ZWaMs/q)[j wXĭ#iBՎ#L˾PEyZ&YIc] /డm*EhBџϲ 0گx_*t7a< -ކaRdcw":1[1a~ӥ|=si}.<2/ܤ1 s))= D0F[k).z)FXK8rΊ2{d)V))dk],QJ$dxn&Vgy/H9?N6J 5YM{6:8< Ls\DAHJ2\ $&V60a4qѕ͍ݝQq0;$Nggֲ gɓ"JYx`jmyEVT.^*Ű?96̤m`|kRnB1\L=ke0)_%ad56gѻ売E0 h぀`=E|g&޻pW=ozru?V4x;% Q"~w|- xfڟ]ycx//O~U[.ۿSMCV>\k`!J.;H~<Ǧ׀h4T/g_%;wLh-⩨-粳<=v=4` @DWE.CZVJ &j&HQAx=y91Қb4k )%EVMC(wR)$/DM#l)*j"vkbޥ%^NDebZdjB޴|`Jx#uccrCbEXX*VQ|@Z^uD0L* 2%IEHpDHz,eT+6NM b۟ަ Q=\ǬՐ7oyFF p@08I*;]Lj?NґTt# +ZXƝm"ᩴ5,1f ؁;cSk5y'Lxƚ%sEVGwh>v<2)k\oس輪AP B֨8f /]H=&'O v_>4ˇNqiؠfB+'hez]T7 B! c<kиC/LSqM2M>n,8n5sQW`j檮ƚ ոA15!`2jef(Oyn1Y7DIT`$,t,jPM0DSTgdQ G:0#z; y=0JS[( hHs1!y&FKʘj(C!OR!{qdƼȦ.a~|};7O&s;gu]AksHO$XxzO0rVRxt~$]&f\˼6(H^kId#\,=|P,;"| {7I?˼>,2ym%id-qY80; m#@wކQFw: &c:`Q$i8l ƾJV\awr zg4dqvQ]|뗅ǏgY4ME2M]KHSm&Rtƾ)ݩi'i3n a-QcMzicQλVUYJjq4 mcEݸU #nl(*ʢfY*WEqL?7Z)&+ᏽ(p}v1F/uҗw]~U 1+ⵯybF93yBxO9YZa\e 0YHY K\ dYv:cÂB45!c<$wV NQafy2 Ĺj\>AUzYqepL ::p..KFmk{:A Ǽ˧pkι2M |Yn7uҊuJλ"!)eEu]Ru]GQBFy/bi8h3 (1BȂ',K!ƸVPkAUUZk!k}y;(%!, rNF#B)%Z[dYY+mu- eJ)bP ?xNf|9(@Dcޗhpzk~`T+D;Hʪ$l7X_MQ lY54DѨBdy4wx5&%֡hƜ>shIbGwmϏNաMaRƖZdjv̜.K;8uy=`WWWua,gU?3YS iґ(V:Y]{4H2?c]/(,%}C[{'t_gW>{[Ot$@Kg4_;^ Z_D=9k/lfj) oxޛd?z<ʿxogNbϡ#8>o N\߻o߿;;6ѥ-ki)I) *U]sʌTPc;O1RaLJZXYVQP@qE9xcEhcbg~̋:@aCk.oLC|?x僸ˁI$=GBuN dafM5k=\4srHm GIg3`ʨ-giaq73Wu|,Lv|ߪ\bsD;C?Z敵ah@քQcZ qi&@6"" V`AS2@LՍB{)̓5+G9j&MaM5!vͱn.94ϼo.;{om[V~~܂**(CD|O1Ey1ƈQѠ(F*ʢ{붧g{sRV7k5皿{3}v]`:{x6ޜ< Tr{:]$i=PB h^}x'7W)PXdܵ7u^_1>]5 n=g^B:=nn!r$ :}ik̛4NiJh<2WxKxgoN0͗:L4ƈI9Md<(Db}c}>5M?Y?ohVҽTF[?bOɧC;8gMm.xH r$<$MA7^.G6A\]]Z%qErV ]g8$ i0 :kehmmmkz2:;*༮+LY ˲Qvb퍷=DXA beɨeeYQX6D(9wd2e<,REpو$M8R*Z3 yȲҥKb౵07sgz}PYi.cÑӾxAix6!]e۝VK)˲t:Rq|50mEQc[t:mgmJR*INYj1A^DFiQBZ q],ceMf4M1Be4 # 3bJ kFi$ P)pNIW)/&i8xRl:uxԩSNIhD @JenUvZv'kv=NYY,ROt)jWڹ3{B 䔔6Np8,agYa1@vQVBfeP00vMB;XCFbhDve-IdY5W_3_mue%<h!pye- }}Owzv_M׾7l=UH ۿoQ~J c`)=w|1X ;zwo=1=up~&ow/_%@_vj?knGyYfY}tI$7>r.گ,u2+: sB+BHkAdAx@;5Q!4>C4H)U E03: FS cJ" b f:$>ט`qέsL}8QC㶧yEI B)z]4+Ae~Z[i/Rֵn7'Zd*ZkʚV@pB9u JzEHXqP  1[T@y8H@EX7#"8H) GQ! C\ C|lsݖu"$<˯> 09;kOd*U؆O=&a-7EPr=kho eR'it{ ],$Ƃل.na+-+S[|b\[U~u͐ƛzIE}G]sC{~Wpfހ5 mAh孏|(xRYE6HR/1?*G9F?J/j>y ?a=ᑾ4)W4J;1fhTZ!i5RߏCH P39P] H~DidY"ͺd?^w8iKO-fř/=1oVV jeUY)JX=1_DQbX][=}Ǐ6u3^>FS.n}xc9iY%InTOc)#6B&{F1AYmoqg5;r/?oz u;xߏ=IzμSwt1= }岿xS?{^_|9x/WTiL}|%^3Yav;"[_~R=ݡ='wm-/jb?pogtĕVG,᜻;?A!B'O|pѧ0'<ƒx #}jqƄAv[睔ABSkkrS leIAm3%(w!ZvD! g{e Zoi#Ѻ;!Xi߭Tׇv, )S +`ڲh2G#/B6W..4mEdYT6C!-FE(GK+9Y&H1/DKMQk X=@"t6Rn08 {1!y<!! : (tsb=8j=/Gݲ(J%Mm禍ʣתF!A9c6BtyG&aojtC5}uk¬8dCZݗHQ3my.o;Ϯ?ܘ\uK՛bof/e *d(Ȫ4w> a";,#J۹G<__||_4b_0%r`x8k%Re}j_=_cB+}!GHxLD$~kג3 k!x3?yZA=EQ_d5^xb|!ExZQ5G_O0f vV_}L2|[=e ArL@[AtZ7^^;G}[NVqGYDZ/SLܽS[SNOc)asBS>zy(K24вFl;c;hRR}QWPbN84qPmάjZ j%–E*xKSx.Z,-׭LGLkGsYDUa9J)Y:p ~%d#8!%4],b1qS5x$I]Wz a$U]sFeUS{!XAD* pYk{=DheC3 !hE0Ƅhoa4M1+%9nw:j-hoRPmNSlAKfȬ2flFg?cT>In}W~r][ʈvQlus#n^I0ڡ\mơtHh9>/7rZ!k@ [:fQ#7gDk'"q糹#P9nEhZ An@Kn>ywotAr[ 2ӛք8SJk#BSðk(F0*R,AUcʲwoje٥;NYVC,I!x@~$o8XTAD)nfBe%Dc6 pj/tEuZJűԆs68"u˲Ξ=J[<`nonw;s!D\uSU5W_{ 02v{Zrr,@3M=N/L>FX\;w\$,{ p[VYq!ZXYs٢*n묣󵵵|.Jx\מ0 T8E袩:Q҈怴Zq\`Łld4q"$eJi)5Gd[,ˀtni !I4MC(F$n'p%oeQgkgkGxJIh1aȇ?u KEn;?(vqBEaD#A<8H{1$B<9XkJ9o i pV#NAQQ$dgMܡ;!tFp)}H,qx4i@9UÂH5Mrc4{G)r޷b !RJfZX((h;keU!0<UYq9cZYY)J){m9w/ ΥIb 83v~YV=TZ\6($?+Tֺ88}Xq?5+tpk^~_s*{jdֺn0Fkٕd`S)-|_uϽO~]2K —2f7pZ%7QH"ٗ]/qB7$骹eW 5!/q⾑V ?o]{-Ao8O?r籕:Il;/ !aJ{E"y/ (Qb rlC/$|>;`_<)<{ Ç y?GsrK rC$ J!{+6@04 AGq1JҲ[YvnahQn@*@uJ%]#H]hP:zBnƉ#kCD2E~ ;1P+&{'Ϻ!Yz:D[l4?ŋdBP-bVPWwXWq7/x:,JO(F8+%M*T$ X @dtSKbqdSE ρ)F_A9G^z=ou uH*V:/6Qf_EUZQe}i{<,bc-Zс3xH0Rj1hc1B1c{BbLsYr>OjHiYeۙ'@JQ;E)?RZ`m:A ti˥iBs. H:R(뺦#֡Cłb<.p $kRrZn3N;rYir̙^Eh4!!1BB,h1X,4R;OaHHaEˋ" BuG2h,0{ ¤(ː3A5,WuEYR"8!બ(!c؃ROn0fqzqF)r/J=པ2 bUSDqƈƂ꫎#(8{KT= uXޕ7J4)#!'83CQX SB:c<[(aԍ jy,27` 1rWnq. a6;QZŚM[l@-0AqPgDTeepUU;rѤiL(**.ZJTrs{9B8C!$'H4UFJjP@t6ZI%, #Ty^t:RiR7&!,ZgӬq" e!/9!y|ǡ!el6hLBAg,սAwgȗM[1oO 'V˪/;|]?Ν 0 0^Ym{RkG/(I IDATK&RL'ìSk!Ds7mnnvO;tig(JL3xmkn+瓍#ifNGq=s'0J[ɢ\nYMe0`a-4A0pvϞ3VAmxvZѹ#n4Er<O:v#|UޏX Hû%7eEcP@ z0p eSgZ{"䑔w_}C|S?^=W}qG/lݯzf57>v]vK zCU9~ٹ_7[_}2y&q G;zǥ&95/~龜Mzre{whΟ0؋~?[?j!x_sW~Ve_gM몗~|M+ec.yϡH{w3ǿ[|HMC/~ X֛'?5S}ϸg[~MGI w>twG/_OwYkw|w y1u]Ǐ 4RSJ9@qDc6y`Äx Q^[Jv蜷0+^a4V EemYA0jfqn&(Ujl`ՖGgQ.`#*4N~Y΂[5V,)%jq2ݤ,KcZ#[;}/e* \yJ @j1!YC1@%܁)#J*!Ȱ8"V YC3 ~*d7MƳEd'K[ {hN SC2`ff 4GAk!9R3cuېeNxcZeIn9cdW.1S.7?YT12nn9wĉGtBw. fgsi i@5CxP" d ^Q SGӟE#H\{Dw C1GP:`ή*Gu~e28:=|? R-@E ;ޢ )"RJmMxjE(,Wk;7mEQo\ڶXiFnB{s$ٙ^_I>-x/kYyB~D]%#}(Y4t4k"|9C zJ/5P\FF=.-jqoT\s29{ \Hz`qV|x97Cm(̧ &ݏW2׀Frgu;qe>lk;d,8Bo֓ޜnDbjM?!ƞ 5;;u+=S+M? /t?DޖZ/QD`ĂRk">msCpm7wQ.t֥~t0r" b%GQ:ui-&j/*ӇLaVY9p˜~沱 :mAp4LA 0΋ @&EA[R*8ml38[8A ”9!z5ycDAg9! 8U霫kFNMɫxcݽҦ9њA#M &x~:rɼѴSĺ0zhV4_iqA#D:)@4vX,\{4V[$h%,0.|q ж #̵"mVu E8]BL g$tJŻu7]U bٌzR+Ų,'Sk'|,VSdzK/\`g{o< ;Y+e/I'HӔX9+U;}䑝K{I"( ýImnC/lmm'8bD&,8bY#40vVSNGi)uYYM(~;͖UJQ\7ngZJSVRV4u݈~;ϼah)nQ ""l0JۙAlMӖu="K[R^X.1hc|9(.\H4(-EQypei5Mcx3-5BXiiy9BB J)T1V(őRR˜Hg[,*#a4! H)!! 2m 8tB7pH5rba-*-Tp)Dӈ0R 68B:(0Xﵝjji?|7ttin;ozq[oW~g~] { gHoyc?-zl7K>Wx?}?]KW_~=__eu xچ\{>(}3|۾֓z?]}]o˿'=ΟO^'ϽHt^~~/ۯz|ͭ o n|*"|'zGYsxFƫ'~/ox۳*Z>O/EA8~裰֎cB!ڛo IS:#ʺA=k<ض.[u%ѭ`B @ !IHR8v\ q 18TPl)()Bԭ<{^Z~j djW{Z}k\֧]g@8k,14Mk(FDV&@惌iG a !Ǝ PAݧlbi(R+P({J@> K1Ve1K|jݳcLgdwR'RuiR/O qFԻP,ɫo;_<Bsi#"kڭ/0v7N6Tx2qoU՝r0`xB Iz :Y$i*¿(g0z+7sFp jb{^O W'' gp"c\^$B#F{aLYׂBzgr0\O;h"ha-u f^=2:*'/wk >Uvpa#Ug}Bѧ98rY6Q5x}?hHvNis~z #~ۛf! ol$*Ļ֔Pѭg]큺^eC9^JK$[_2 &Q/)5qNEٸc_^v,#nS& KX4LJS #TG@B:C@P<0 c'P1I/Ɍ,RQlLj@Q|Ɓ Φk(}>@)5F(i$sVci/1A:tb'8mv'_دmzF8fR"We; ôB'OյN{%,`Wckm~kך~ioF| mJd`{y6qI)4ZfY\meU}fDCؕ5.|8c ૺ+s}N$So[X /;6FuxkQ=ƫLxTp{{;@ [ϲ4Q\Ttر mÞʅsNC4ޚE#cd%a) 4<:yjGm[ !,+R D qƅ*cAm !tX(R:kF!t1"<̲3NκxTcT*UUfb2K!eF5!j{۶rV  !tlmm]rU.IbJHkkk8l6y4G9ّ`\UI[ksIPJ)B^1Rzo,].^Pv7ITkdQ\ (LD)&ʹSZgyu4p 0, (c${vkk(Vq8g;850Ϯ,&i޴u[kG Y/VTR DiCU;zY:XAokW/R$w"/.˦5P&I/({a4VK 8@ ]>h4IFl6cچ!>#R&Z/dQn1VA<n5Lmt]kR4iuYj"RU] !,h$i.2kME]ץid5!BJ s>7778MfT*N,Gt:,KUCPZsNTn2{N1+&2 c @ s@cQ j1Fjvwwt…c;iv7G{(V8/zٲzh!׏m7u?蒭b&våptc-&qBFi)GQӴuUm6Rx uͳcǯ^kN:أ熽ι+RiOw3Y3Z>1pp8ٔDוfcwtkb76FF5c[,굍cѴVnx$F]햋C³{ow.^lOdw'4Vڻ]'U}\!09 Kyb}9 X2r3\OLww>?<|).?ޏНG _~Ok[_C_>GogAou?7o9o䯈W}q|G%,f o_ςw |{~=l>ig>k⟿mLY% z?_ޟ7w/?q Yޯ>KCz{?z<þ9kCٹ4җ?|#ew(S+kU*L(ś;D)k1B7ufi'%$IZɦn9C!cm[*ә~Bj(V8'Z~: N"l:E}3N.v0ۈEZYNaD7,ぐiA5APQX)2](U|9Tƈ.!+7{*6I0trJ#qBBB @#1r1&8yƔ;!a?a΁pp/J%_dߣ_O#u!/|gjB)m!% tgsDP!m3EHaW /-PFqڀA/)>xr3jxbۛWG(p ΖV/SŪBӇ`cpk|G F{韜ZQEW-+IZj(Z511b+Ew+͉[ǻk|*[Ysڋ*s}>ͺVҘOz5焝oA^_]q2 @|*VhYՃ|EebxX[K>pw??`U[)x2#6hg/[ b޴.#׫LD>_02 z5inI4:;I?qܳ_sk!lmmh0rR4%0;XN Z颩#k`C_9Ӄi nIDڰEXiD PO$<R(m)auNaf\ ,,MHd5N[)DW8*c1^*@ў.`8NeN #۪FjEM+ċUG2V1I2"T, bԊ:}jtr#,:tY+'b6#:2U( H07H)ǃҸ,ZE96ýW%k1YK" M]r-g<#:q4Mn,+n?{K:Av*KӨ d}}6; kۮe޻#ƔQUYeB#!zmfUUA4RBmp8!Rh{c򴧄8Z[uכ/JcǏ_zM ek#&XVxXd*y/ZGsn{{X8]eio:2Z8άy-bHJX.Bq4ZkJi${@)[4ɵQrX"Cu IDAT,NFqs+4EƘ8ᑢpF<JrL5"]RI4Pn^z>R+ՍxRm+G,[$x)~n[Pfj<4Aʪlc2$U;6!Y(&`L:0k&MR*c)%0 E\yD)J !P%DG2˲1RNx9ע4`^lRoq?ˢJ 8 `4M8hk$ ;Օ rRz4RsRj3Pʌ1GCG`G䫔/^U52B Bp*(·6!瑔*qYyvmw;G9VJ"wR I( ލB{ vZnM_;faL Xΰ4a,MT'+i2PWk_T]Wt1yL#Qc֨XkkAo8D`mG #DqNcA hĢNH(8g9ϢtXl,Nl!q\vl;SJ az!#u"M|[M]d T9OnJ6vKqY$͕qozwlw{?QFg`}ZT_rzˉޕ9,iD!g^|j,(D_ }d۾_07UX̟55Wr6 +Rd붻7_w[W47b&!Yuȯ~[y{y׷1}'Oyw~s/ 9=ُiow?W;WL8??Sxg/+`y/~y9?m//k/}B oe^{O_7J`|/|䖷}u?]󣿑د+o|xܯszw)㯧Z;-W5wuQۛ?x9C}_[_mC!xeU?-[qQ|®^ͱm#Wۭ f%: FOule /ݱRzDG/#B,ںs3'EXdj'cm6?6Z*eٍDJ}C ona[i>/a6 RʯZ zd0J#K@}qn:\"HwC| @dOnO<7>W5t2C?> ' 衟~3rvS=gZn<# a8>@"x$2fXk\!` 1!_50X#fT`@*j#G0[Oas}ڊ_³#6St#'vW uU-u[\!'K{i|fzVj;nc)3v}|z`ot :M|!4wP?~1u<~%^39|jJZݶ喢78hDK!9e>8Nxe tqN^7N67{1 $zm<~<¨m9Yk(eL)%$6u%n6 Oʲ^7ͩӷ^rQ{xx\ʢL)#jei&OS)%a 0cs{!cRj9JxTГ8b8cqGzW5%D B 5. z xܴ]`\izaR746ԫ\5 I{I .]{?ό W\?e&'v_/}+^29jQ5zLYfB)s>IcF1JhTT"cmݶC t>P!%%"nW<˺`qd !DuF2˳aa1"E}P&8GZAfSY+W35Z3!iɲ9kۖRcu]<2Q!s#X*@w#XJEzϧ<˂1JJ%8N9$zﭵGr1)K5G$aF 8ʯ!< E{`%` !FuKʢOeR\@k8Au)p6RG-yBi,jbIGpf8cJczںYh|0̳\I(\^'q!Dևx{nO2{Z?ehk}흃H/V xà+#η~;ꦄ* z۾o|LWU|1gjzر//8g49/~?{/ZW:\(x- '?(^O g~_/`O0IBon%Y?s?[T1O~r5wV:|ٛ^tÏ>}ݏǏ7uUv3oiPZE-Bk61nzv>UYi~O)E<(4JUSBBcSn蔣X1EZ7!˜p^kLX/Z@cܛa +n[Yu-ĂazBL(VzD$12>IZjƗeaOUW-Vx<-td೛-k4) \u&pʐcBy  `s(CPXQ4sT5A-mihQo}0dc@/L>t3,a&QE/3K!Ϯsk,K Ʊ2fT c 9YQ\#!ml ;#Om䪍\=kH4s{Hy̦y+e<l^^;YA_|cw[xY!ZΘf2aMS]!eEY8o{TZK<6V+Ry6w&Xq 4u+@8=R`2._"\p4zp<~xjxإ%":fڴ 뽩Mx/:M:f:o#. 0N+j<RlFNd(:֢;\*+yUѩ|k/^yNdO??[?>ZX~8|ŏ>~W޽~^* x-J{_3}w @{؋?Ы|ۆ L5(W ?<|b_o?B~MifﳏSwl`8t7LOp}p{֟oC+9A_|wuw/@|O?8_eO'`wO}?Veo}OWGs BqSraډ2˹u(8_(2xqcml)vX|a JE#h  ·~ 8j.p܅JQjc@)p3Ni$ 71c3!+KlEgU}gQpҡpG+[Xf=Cf./Mڰ'#tC.CR!V[o= k5ȹ)"(BEcWW,4x} ~K{$bԟ93+j`\NWңr rխaiW =~b !xiR3gVCxj;?v{u#{ 犔盤 p#5a=O}v67'TO\'<նg`? 7(fI7ps}~bh-N .8냃=.&@{5z窃Zm=pdLҩpdZR z4XjUq>kvhh C,UxptyPOrh+С#26b3E?U66ra9.sP`ɗnf)Ywb;>}YeV;#**@z٫k.{_'kkUxj2?jsM̾xNWX'CAS`$yp i}(`l7+^2{7F} {};t+`,S#T.]dSskAF~ 0])@j7$b>]=ДJS2#܋1 oV:K0׫ dm1u(XGq' xӶѮVpitz /z?~wk8B/4~7y8U#HC-H)Puu5iuŪZURBX.Wlu*c{!aXH1 8RqTU" ihd*D:|Q5죏MZUr'y(O.^4UUi% TUy͍h,v?7un TA1XňCbD5vh6hhC4%~ڭdA]WsUZkq5-E;RVM9XYfR^Bvgi<0JhfvSck+.n+M|d`>qoqYe)fߡ-'smrrB޸ua7h]ApḸ2+ͧ 3!HOw6.٥Mb+/N\:jdɍ&^agƋ$h-M9rHԎôh<ו?s_uM/{V>˺}{Cg>zq[ˏX3_9W~2 NroW] Xѽ=&ܻ}o}[*}9P?wU]YFxzbwGT˾Moǯ8v=[½;3=q׾t4r5?;y3ʣʟ{/t~'/~=Ouj_18>Dǐu|ݮҖZ~=[^o<ՠ4[u]9u?np'RCߵGB> <!@)HJ\%6bpdر\uMUX.5EVGT.nU:X[68 ͬ)Ĉ:Pa~F1ZaǑ- c3$1*"N8*eVBj xVi b1Pk=8myMϥˮ`@G CdFI!PJK|`}f$"e+ԕ a=n",)Ó dz!ST4twK! 9yJU~jg%h{/JQM+]BƋ""etU7jI<s[Ԋ\}3OOҏS,? .̍ $䦩DNYFwP..]VvpA^{_< xhr)I]tǟn?~AM䅶Zj"505Cm59 !:kK?l('P1HLv|XR` k_HuU]|uca}·ΧJ睠"g?+j]L.%Fܮlqb:&:۱ z>0 Q{g7%o?JD#V "m)U\ei1:z1UteeNIjp '{[_)>gY\?Ib0wq8ZdKI0LELLP>5Yɢ5QM#٤&>ËL1=uB, J~;γ8 YJa4 XxhrםeE0ύu:D04E!# Eֳr+ͺ!$ 0,*eT+I\ Q"i &@kd,3%"fQyƵj5Vi{D9H.6v)­;)ɴ.WtpYvh5ZY|bX{VC'/YL'RaZFbfuc#jJ , V  6[U^=E2#/&'Rᴨ(lw0e-H5eV)f.m;[[O/>zyϜimLNy[)}iEGWz;UiJ/.˦yʼÃr7ZIM2C0̊,[xjRZ)3t7Vl *9}wn&eSJMsG?E8:yr}wo+ila{aF\cQѵ5 QXkDiD]]]s!SRxW%F+ G̥y.N%кr]/ ˃]ϻϳyH5c u Y!)R,=Xk%< 4+w̦^+J)!no͓۫C7a>~oxS jޘgrύi޺ZE4 )|r3grkiVS,:x}z{Ka[rnu7ÄBGzGd}\xl~~ RqS#&f8׎>0?i>o*zS_}9@; !wo(!G[ G#I:)[ex `?5S;LADS &n-I%qc5GmTW9A]3*UA sN\ <]L,={wwOa^DD@g<;H]OY}78?YPyKҨ8*?َn[`Zk]&Z@L܅Yz~t!00kHke̋Fa [~46@z|Q[N.h3:p{h ,{>Riub -dTQ N3xxW㘷h2 =-9=^#FYB^[XIEQcidЪAKn> 䥷8Π+ƓkDsQQӍLsLl{wsyyXɵ& Zpi?ĝAYfF;=f5o`҂ENRR6;.( 0dJ_[[fQqQFI!&u]kR c<t{mnz~_Wso(T#"ϕY[w6wA+cnrlc9tqB<9ؖe髡*>;MpOa?CgGg>qu>g 0=7~/dgjpy~{Ͻu ՛'z~_]4Wu:'Ͼk~GzOmr_)6~kRwW?ZUK__m{[~{_}o?'^_:so<omwϾN}0s.!!CP<$^>O^x3 ^pB.׽w?{g>0o8}NTPSoQVF[Rz~(5`VJ],l10(&501*% Dk[@Ri03j:/EB7O.Ea̡֖$[qn@'`2cIcŘ 5ڲyij"TK{ "hh 3ԙЮ:r}iW)[T&5RLk:R,d2>.{:lIUYkO#Ѭ>@G:g,7 "7 4XnuM-[lB>%unbٞiJ{DOm4ۖTUCF}lSc0G9~Kڲj]蠋SUd|y։VzZ E^`+sD5\]u2OWC#'t~"a~nz^@o|x C9r?57}zr0^S?`n"4!(̲P&/Vj0ǭVKJ1yUS'Np*vUUJJ!4]5|a-/TuŘ'xyejQ.\qY !0SwBi )%ʢ9r$sPމd>q8B@4 [{l$5P716!B=Ka\P]~2ϑܯG{~p5D'>ya%/tmG0YӴNY]`\P=BH]UMhևħwP9RPJV)5"cBaEaGQL3B)s=H)E5U]uXr oE0EZPʊx5fiV ./=^'FK֯:Zc4M1h )<WYzc X29$89o(b? s0!Dfihxݭ]]"eYs%GaaHDAhm琊Kb#u#B0)!t>L,LRh1Vu-PxAF[A4^Cɺjf.;4fnk],CBZ+WU!󚦩P4q 9Ȅ v1IvI7*[Vrm m!vap۞MNyTJ( tH(RL |ISnzF.8_~uؐ=n/}_ww|rUt3`{D?__}ů[ГY.7޺o闶nzÎ{z;OhҀo_/ {~ 'r^>]a\O߳?7/z~7G.\/7?W |_{οzZ%c/}gχ ƞL]?[le_}Z/v~y?|?W}!D'd%׿/{K={sW~`i0O;|Xb`x \@Q5cBD[Cj -#ӆBpd.@cM\B4+m:@ĀLשD*l2P!04a*ªk'7_83\(9.eQPsnRJH,X5eB/ +GoPmt䁅fePT&Rpл-,-K䶓b{wwxſ[rcaKb-RªG'v`Z;;P4XGad~sn)b]O֎" FsijceTHa>6@,4zZ)60%89?GU'x 7Ni$½ƾ<*Qu/UOjp!KqΏ~ι!rԃUn^)jV_3}4c}`Oǵ_k|l}BGo}-k" ^X'wanO2pXkU×y=yW7'|$j'7TBpm>Xp#kݬ - RFZ%\J9"ʀ z[PFj[ `\4$\U ::QW6@; >4t&>_DlXDmn| mJ8;bZKT/(m LEf)jW8jmߘ0 y .$A>%4tӴ 9 '5D>xkjh =l GͫsyUz+Y7??a\Uu~\NeDdY.R6 Ғk0)v|gLKa k4 a(M% =aB7D~zE3T榋0^BYc2s5nxZr ҈t,gw%X7{|ɪetA\eA'w?^΋N:>5i9<yy17uG#"-[mY fh<%WhY" sBkU/]z21r ֆXU0E6XdJL`R He؏0"zŁu[7wY^rWNj->нф7.Y]^ڼQ;3XJK뢦3-2Wh<5+^M`%jt])h@LJTlQ$(bggR'M'1h/Zp1_cQcyUg `VB9.*uZ_BG Dɳt>O3/%uWv+],ktz ,yEhtenij:,i:AåT.*`)% N( sιq$NMcEf]Y^R7\6 (cNUU㪪 `>K))n;ϵºsևtb<,KXUUcED8n #q1UUiDxȪy`|6E).|t3oZp+Q_ٽ|`rPi 8.Řkcc!$l8w]BxҢ%R(C& q4 ((RI9U\, -sVU;JR+ncl21 iz>0urT`,̫Ԃ;n :ܥ70`1Z$; %˲}_q(hPJ˪qB8Qq\WR1V׵MSsLe$Ѯu ZbgEMS+ca ow;:\4(,s=!J!}O) bR7OvRJQ,@+8l0OebeY;/8[k]םN`q UU)`ayߔ5@+k M>sE^*PE^Z~7ٍ=1e]9.{톭ɴ .KZ| h_z얩OhR?NB4U~ @h  0R GV3O]xt0vl,N!mL-1LfEA(fB9>9x:o-x8Ye9l1깁x\;HǗΊVR#e.9(W֥do1[]uj*ZOlf 9Mq;4t_2 VMhA%s9@4O<=Es}c.',u/;{1?Ѹ*ЈְS(s;s0 $QAU""Y`Z⽀4n8ժiznnoXvɤt_t1H{Cyf '~S`2TSmCTI3KolGȴmL0BwM$F@ G -ѰG( N.ϑ7K`{ıJU/vB* tRpGc##+dH%7l2*F,b\:Ϭ:n-ww"Upezm)<%uZ{ྍ٢ڍ,3L(r-Dv-/SRwfYw27/ۛS cGV o~VI8?XișoMF~psmށ7lVF0҄lMғa)#+a^"]ጯ |%0?}|5KQ5^d.c$5uJՉK*$5AzZRd^˝^ģјq<yYrnѕL EU! 4x0o^]6M^ϛr)xm\*(J)!DFagQL d`!p4GQ\ѶLvjq4MEaȅ Sdiyx4B%䴪?6k}ߛg& =795jiiiX86I-cDN:67BR)cC;zB0VVV&I,adQkkk{{{nw2DQ`m&"qkmt:Ʉx:]9r䰲/!d2=z0N{P܍l\wUMn!xٛ.nRJYƳw<9t6L&"oj#$\CHJÔYU18 P+#4WeBu9=ϫR8>jv]LL0TI@,uy ( u]LR{ZaśzˆE>uڂ4v;C{hKN,=zWԭZZBBq c2ca=a<ccc`4 4Xjԛz[{?nWwUu,%;y޹/nded_agUNy],gmuAs!YVDQ~i*)9|4-DXT1dAQV5 xF}'N\Mlmm MZ`Te P?z/}Gzd^>غin5ÕiW`oVm(70DEqݠk'zo?7_5 ׏٧WE/nR@?-?g/{+xcOk~xQřOsBq{ okq<:3'o>{zZ믤E,u7Ó'!d;cqG_tj47>Џ/ƫڥ@ĿMox /^cl sIquz:[Ft;/ [-5V_s3v]w>}{hmsvKPB>FםZ7:lQFpFVX͔zodUAɨg #f)oxLSX*RPB*Ƨb5h N8Hz4%!@U[Y˰3f-h* C20xD)0Nʦ.uYBc㰭= $lS-,^&u"ZuN)B0i!UC Qe| Fp |?BM"d4 *a(j xPMJl#47# X\cpKE+js!kA[>*dz"H9<û tⰾ(>w!(x>XxCFoWĩCTӓzP̛,E}!<ɟw5:ӲlCC?zޚ7fO.VlϪƾv׬I@N1y%'/a9. Wjk@6r aT_ϒ|h% ^a2CIsL94^ge˫d5_{y틬CxeK^h̻!vw#pQV|QAC<5!KrAvisR5m8pvqfuߓ}:,PHľ^c%/LJW34=?Z;vX*v8(=3) ʴrhb~ʵ EģY&^>V~z[۵6s|c7崥/m1b.q}4nW IDAThǃq67لnـ~$L&!svdۻ+;BQ 9j== vPZbg*g s|=]p0I;!1`A3aka$XQ?v`r$?IT 5zZ)ލlA/4h;|b ̚(נ6Yp$J#g+ Nȅ$B[(̑ᢨ Gu H(!shB~MiPpSx$*݈xbpXHc+\8Àf5 {boG'Et#{t{tM-me{pM4ᑯI菳E;4&y[v-W|7~h>Z}^{(3+Cߞxɭb{~v1|;ww/sR",;wfxqg>e7 RԣQ=s-xDnO>/bw_Ǜ/ӎ-?gV7/ދK(\=vrZ[pum{~?Oܓɳ-peqVӹ_PC ʪuRڶ @E-JzU) fZIU$"b.THHj7*u$.2B߫"NA5t硽FD>%!-8yk(V|DڸnI_ӊa 584D8EǭRۡGe>:ByVPJ ZGjI1q86a(ZU \#\%Vs9Dk.'BQ8R$a,AqH5s1Zo(:~;)o;֣vÇuMng(1 =J> \wn{ vt\-LNuwk6r݇m:gKNa< h|jaxԾ{~x?=7kBS=^wkek8%b0G!n~9,_sWi4CnB,yhӺrt琇>WOQKb3Ыe?j9y|cr{ {f<DZ:Vygm07BY/ 0G7 ?)=/933Io!s3y-;B:|d6-fþoR5*tZ9,1֧$np4 |xTܣF7CJ$Ҕ=}#198}~e79{>:\ݭn< ګJL& ULB؝'DgwF7Ȅz,ruf0~~oFth'>1,!!bRcU "c9 ֚V"MSG$<織s(nwшV)d͖!au&q NV~s#04Ƅaڦ5V!Hn[Tk9m[yAR+@2mq!L8qv ?8{,:qx6U}M7i)68y{}ܼpaEwSqww˟=~=$L7|w]׉bUeը9"2/<F) imEcI%1"4R)@J. M@ œeU)cBnmFTJ c8ʲD7u1gB*f}gg;Ηewr!QMI-a jvn{ygb0kkꪎP)e}:'1"9քHyQf JljsU"/J"Dڦ۶jЂ"tYk1)%:P{@+yZPDHA42d<~(v,yk$)e000VJ-s?YNEVM;ϧ_S?_dz_4ڽkxܟgW}K .^KpfW^ǿSw|yNU%1{?v8"Ej>/];{?]K,>3?uw/ 7}[+_<]6دVg"wy׽x_<{>Cooԩkms@)HmDJ !M H CY֊+ZQ깥n!-„sZ6Opd-B8"6 u!=zE>4ke䩺6mgFham321젒 cjZ@ix~-!%g-E  sBmUt0o낶z5zk=o~+NԗrL^'I+!FSgiSBtQ{# B*Zɽ…I)#LQ"Ti52"(€r=X)fJTU͌ #3e:JA@D 8Bl3Z6}_=}a3DFBDp^JߙݷJ?u;o\[=?NjǠ䣢j*S-C_|kb $l:g/},O}ze*\vyjgԹʕSۥrZ{iϬyBB{qjG ?G#g']{Χ>؋ŔS /߮v\ q8g,˿@s90„.b-D쎳1&It`y[0En ֢᪲ Bpo6k[=d MSoMs׷UhV&<G:*#agk)VVԸUdfV= zaq8Gy6 e )'M#Ƴy=׆.MZw U72\Lٍ)p'h,P3gV2Mik^`w DD$%ǻdDPb\E16VJЀ6+PBi!lUlk (S[$b }.KxgM\Rh?Exw}}[µ;r"mA5a /h@~\MIs"4R I7$VjVi^h!$ ?Ȭȥs@d,i^t,+2κ `ެ 98(umR*t>]WFc˼E3j>i>Mƴ~޻׿ujvAoZ8Ly dXwGvVAl:/'gv0bW㺵EUM[i]JCDZ)DDEDUxq,ʺi8mwƽ('qli PvSIVY{tÔR,K)B0tvGEYA]Z[ 1RJn`O,!!yZkk2W.L:qQm*12 eLIv!~UVV[ \HH)%ccB4!Z)9<8l޶m[* < qz^YN(e(t`o@!yABL6IRt6O:)at9WUB!t:KdlA Bt]sY'nkx+[g6x:/ˆGApD^@$ĉG8y8 &#c~-7% ֺ͋Z d-[ CQc,Pi p.lz("!xY !dWUUu]SBVPL0BJΘh$IkVX {#2LaAQ)x2k[]EPim 2=SJAK2[J.%y3J M'~l'?~dR [?c#yUPzo3w}{AQ=~N{08Oq3JqU<تn0F=LI^ªR)-&_oRL HZ!(!/˯_`~=/lK(%5s}ǽWy݊|7]wV?;x5s3f/?vWvwZ}7w|9ێt #_{u1Gn?ؿ;!O?yϯg W}M/Ov8_~{v&k7=zߧ{|p?_;w7:W0z?z?_!vvOڿW}׾+3?՛0 p/$!Cwz+_%}k^^e{__>~Yk8\{lᇪQGDVN-(qyij~ j!#/Tnz$Y@q8@`-hj@XöXи(c̒kB"-b! )ծU-HYiS tRc !T-H0(![Йao8y=moDNAs(sA4q|!%DS ?KF> Rz TMra5f'Tl#YmA XpF c{nM ]{tr sgܶKB g< urϵؙ\ox7bg35֦>C{AzK% [V>p5ו^ |K_9}tWƐ~%|{ɨOoW~ʜ .5/L_6c_ WX?=uz!=' xV@sM3@tA@ĈQF66v*i - TBFw鹅<٩-LGV [P9ZKA|H$N̞Y IDAT΋x㪔͞sbamDTuO; TU8iy5"aiS׶pf.ZdBxq^a|& 'hڊMOMfG`40YU<'9vvE*y2Alu{9ىO%^Mg;miۊcЪ|ݝ^UUD[;AGE=Ci`6~swlvYJݝFDZ*ex>a۶l*g,JH¸ZMaNDٴ "T,Gi1%B=΍1ae5x/rH9</_U-wꅱG}̊9Q7ԙ"'6N4 B-s% dt% >{vMd&̉U Ĥ1&Q%l><ܴeÍM}a - }k)&t܉y[,pkgxޱ`:[6*0*|\~QClB$Ig2u{)D۶QOg4Lg3yM gESJyRJ)u;m$:s2*{{ǎj40B( Cu$F"+ pA}age84M l!j udZ.)YvRgm۶ ;l6[YB,#6mCͅhR*I,9t:ɤ8TZ$ lBui4B B y^SeQ&i X,0˲յIdYvR)[|>';~_{ڪheUMi_8qoiÇvwN\wGV" Ӄt[ٙβ"Acؒ;$Xk|1c 0 Y$$<}V4-T[0V+'970ʔR%v)0`m s;g{EQ Z ״M?0ƽ8j|o!L I1Vq6S(б͍Ƴ즣kEk }% 8Ș_5yEι4RKMoMx==jKaS 8XyH52l:ә{BhLIvf{a,|0)%(ຮ(Z.#j)Riy"[t4E۟f^WI! B?v…1$8&/?})gaAY$'ښ_T&Q&ԴЍt`%$:>!㛽!Vz:W"j+=!o7Z]G}O4W{DMo[Rcu~ݱgO[Ie___ V8=Pclu6 !x(!k!m>O~+5yŻpo~+z>/_xMCT N7>޷?ˇϵrjʢA}yfA`:<6@=_^rv? OͿg0t{w|8O[{lj[ { S?񑱿ރY{ "[ !c-@KQeN;Q2M]ZHs`m+}lkpJrcu!,<̵hF!|c񸕵u vbƲٌö9 Mcqi4ǭi )Sh -# ,YVJ;βzV4aëѾ(; eBR#|81,J' )8wƱh]]LR揧VRjJElyuk)IJٜ0qتBij Y*fs%ޙyinYw<\`f4!ih"5$NyQ#f(8UJ;7GǏ,jͬeմY:ٙM;aAp)Ĺ}Q}=X!Yh *- j1$;蓥W;/Ya!{vR<[K +1>k!.ݹ+?[gVx=K<*s3rPυ}ҀgW, W$:d1t@j3ÐOa&tw]aԍp\*et~($m7^F/*:b];,$@7`Ɛn۝A82:K#oV*mDќ3tU(ngUiF,T㧎]0FÀ)#ԓ!i-Alwf{!)d-űJ.40qf#rhRB֮I-9ډZ yYi)ŀ Zh[qc5#TkV=piT^ix?BcM^ȉpҎiF 9n4[TBӾsaSRS-%̪P6袜imB~FKZk8Ř*ZY^eaՍxl6\e)kLk,4iQeX{@w >^}J wf~MF y ÑӸj%D23gdCVCCb{CRFp@e-QhM|r1<5BSZR7VWQ@h0T썳4I꺶ZI,TU*qlR8,* qd+Ei0L4h`<ϺI¹7N8Ŕ u+O$I$Z1E+^7?9dMӤiZ%!a\7 !$ SN* yKYiڢ(0,<4㞔YzbBSB8Rm4B6~@)YFo=SE'MM[;(X7av"_u4eYf%0MӪ8vZZ  B׶m'm/0˲(gY$,@ZcY C/;M"<ꖗ{<P}>z+n>{s;'oYbБݝ7e;J{$8ư;m`|"T5e:?ztm$ӏ p4!@J{'ˎ/,ܭF/C̦OƤfXRP4v=?#UIh5L?\hH/**s2~:>AbJ@B4HbH /H`)c!>Ub $$(ecpQ5WB=(!D](чS&)Ø %$ |>7>;v~ĄJ9j!XEԜR0hO_Z8}?0 x2^,{oɤL 8 ӾD^`"}LBn2 @)B DJ7A(BojiQQx<|fY8\fz&(/J6,b)Ac(φAI)þpwZl]׍F뙠n7,ѣQEMK+ŝۇmL䌱˫0ts!֮(ʋlfa ڮ2>"ŠF@4.g&['׋U01=`@Uwp8vbYn4Dh!U!jjL>Qkjt>z^e[þgڨ|ƸWUY1(C,k*iټ[FY&󋳳;mBh2lW!Lvxx."uT}"Q{ՃiLKb4̲lf$/Ȫݝ夸\NN//˖6g/w@Zv9/mģ G ior`uUXI0+cob V _Md^={No}{D&ߠ[eyr'xb7֔}] r>*5]xmr9AwSA-\v({ RH$)˓4n]iR{ ,hȗN j @,(ә\}htl„&D(!u7'#~m%"<Ee4w˃vg宩>s!25g!ISEGFkKi8̹@.Ko)\(pvLD*|(]ۉ +??e`?m:\⻧{sG2%7vĮ-?EݮzDO:av׷@#rVt@'N+JQH)&AppWp\K| վz,&8_N|z)A_$0X B⼾PCW|/x0g^/ZrW3_S}—s~ w qHG`BLZN&4$KEgX%@OQ)ުGѼyho?ٶ jeMHYD%+Νjh;*Ȧ5$|dA؅(TM(_,wnq06Lqa-qM&x}Sy=q>c˙o·[G\NY2 Ӷk>Cl*QppOq6qxљ `"c'7 +.> -@@| #z ̀b6E ɓEj4Eʛ;T:ikp|}aM??!tˮk1qum9BH#)/Vb3X PRʞdPv>ם2X4]bAWXvqTgO}c|<߹޽tͷuMIup0$Xfe`?Y)=joUڼ}EA['9Kd6ϳ:( e3z\['JT n2Ee%GyAht\=bm,v*^ʅ|>==Yo!Dʄf\7ڻ(3ˮiqZݽ3!BgJ)JiYri.8A8p__O`@|>_.4?"lda y/K(f0}[7Ug !]vŲ( )aNNN=z4%h~uue2i#@Toz|>o|>.}SElBخWټ}ؽv9*ix<;* g1Z)x!m4B{ųd7>t>ه[6j~rֽ2㋫A,Wf]#@./zn7!tbzr~~Z^<r>zN~S>2zAMe!EyDR !1.%@0)B!J!dWFs0 ǔBBƘ ཏ1 ˢ@)#PƼwLQEQxoy&1]vM1=P Yy+e)ni<ύ1e@)UJI)3ym[FigFk ! 1Ap D[%HPAgBk1(c,1Ɣ,1Y$a.z c;!eY 0qƉ1BS 1.єQB SJ#0\ C_F0@7 cGK AB \#HqSn4 ]1SLX)My^Vk$4ESJC߹}{\yg_EdX.(#>Daj&4dPz7M=['#LwX8G'eRQ >`|>f:?h>ˤ!eBcl sFc 6@cU9wqU-rT{("Ft+~w'cYrx1oY&nվV`"di|({y6;_\|2LFq nʼoqE^fţc8ôZi ރ]79n,-_ D5Ѓ7+__߼$٭Ê7F"LWjyq!;'D rcQ޺s`ľw7.7Mv/ :;s<Ϳϴq!&GnM$ZrH'[śM-x|uۿ"DZLYe(Y@ !Ru Xh8h5~ؘ41ByL)$&!B " MLC"uBBIuc$B4YF^B.2$AAG]ʼn6h>w7fsw$bY6S|ݡNIe,5d4&`L >G.mޚ]#vW[l@7,f0 n"u0o݃x]2(0{B $9K #S00~Y?g9/>Y~ QgL~y+JMn_Jxl_XK^ !ƿ~ Ҭ_ubX/}_tB`Q T;s` ) v ƝvÃ4wRKB>+Lwe0}o<`E}Q˟=]IиVHJnX)r, NծWoO"eAIcLSIv:azUC?YoyB$|=DPFQrM;^ Lȸ{a%tg"K}m+߻_>8#rFI?+D IDAT =X@X_^0ActӘw2>zO(!"\^ѤNF`7մ캀`/=V9*1/vouZ N ĸye|tF'11a.ic|N!q5ltnhAЫA6x w?999?+:CK93ΕeѶ ())`m)]_nhQ1rMjgRJ 1`l[z(r[zIAfWUrhm^Arl^ AHd:wW=φ-g DS:쬮ƙ hF˫룓f[eS7" aCLc̲Z l6)sncrpphm!tt|8 1{9;EcBd:Fmaw|>l6\kf/dbea#W۵unT}y !1F,Ѩ{rn)/iZt:M)y0yR{l61Y %"4 x41썲!yR7NRڵmUU}?㱱{B>Uk-l@ ], [i!` Cy&0L)jT:9I-WBDLݹs(C)N#ț99=>:uT ztrۋmL`owg1E5[y0JPD @CJ!؇|2 )kwRJ4xB!H!0)}-aI{:" e|ym(ʮoJۘR8'>!&UWk~ j& ðwZWU4 VڧSJs!QFi@iUe۶>F!eq'['ERcC19'LiqS+$!e4ཧjo9&V unvM &R۾(x],ƃ8x'81qι̤6&DRcuGͮ1w*4dt>/ |UU!D?Cnu1!D)FL(c<%`!&<$LѰ0ZCHRvjQh]OeLcA`Z4S sOu?٨eZ8L><Ŕ}?*}id16/ʾ!9aYjZ$kVἯjJlpڹ" `̳nPE)VH\VfW2b"ӱQcPm# xV:8>WGou `O)sdS7ƻ,zM],7ZOzKWIwYG0jp)(R?ok̿S7;4n*}#ok}#ܿq#7r ~7*@F3P lMoR\ ̬."˜d\1AU:BSr>`%AQ! 2A1 uz3yҘ - R,I=@ F&!B>ܙw|o~4oWLѼ)h&$BxBا1 )v7b{\ʀuS'qDl;Iƭp4%od[/|>'yؐ0)nHW R;abV"h2-r"F~wplb$WdWZdzh\t])'ZsoɅ73o3?(D뵵?iDt7-ݪf2-"igX400ҵ:FܲA4ɀBN(( ?+w ~^o)e^/|0ޯ7~}W<$YT-5}^_dťf_%./ypC\a BCBq{8162@"'}78d[3Ƙ`jq Wa1:fn$) j:*ko3!]Ȭn; 7#x0b`*׃S-wn킁-ZzX ]Q5 p>ƀ :r@*=E0\x78YN6SXNW4݃9;o>.JSu' =OLm#I63t0Hɢ'˫Om Su>Xw0'w?Og&z0㏺0>B4B.@5ΚJ͒ .Fzc}  &N B1T2`tYgR"FA%JP*cW>zAq^@cr,@w\٢ͺ|%{7T?z\\6۞z@p$SL $6Ɣ+0IiX0|7RTsq~ݝNrcYBU'sn;bhZ"oQ<ɏ<g@ |@B.l[ј1=`1&֘D@uFdv,Jbv( c4,b!9cLq4y%fL&}.%{O圞_0& nZk1i[!DdBvz2jX, hT1&ڶO)y>iѨT]JB4M;vBJnCRcܧ !meγ|[c|.֚&XVPFٜИRڹzBPJgYu~Us|[껮ڡCf|x^UOk'B9*pLnlj4bvmwqyg obڞM?bDt4ERC PB4JC(!k,D ! R$4:8x凜Rx圷u06$!DME1l6EQ*cRQYc,s4ueyBͲ,1B9&1N) !1™V)y9.6Ƅ11¡v.G6Z J2BD|H!B0%wcL UbbĄBv'y̲B" B0޸\Xgʂ1>@1F}e]SFFF(D5bCyBQ˳ZGBM|>l!Lf}"m }noN(Ѷ6#{Ř%pUbqbTRdH]OtvcoUob" Bef9)} ! LHSTa:xU|!xwo՛6$r1 lj6-һ2x7;4n*}#ok}#ܿq#7r ~otJA0 CT mΩT&a6%1PJaB[q$ ` 2RcF Q9? Xj1 `hͪFɻ!Iz;$Qj*^tgw?N$0NNHQ`TF(&(ϊz3$h-τq`;4j6=mljVqwN?Ao5xLr Dq$C{zDلR5z1]'#ifg0#S8}8懳Y2&< k|>iv.?O6[&"?yjGVC?w OCִhcAWvp8}ȑ#QD)}8@J϶ _){icך>oNקɾ q#| /z3bjˋ{_ɀ7HOl /GQ_/~/+^?ͼ@0~~w>g凯#|_CAt?Ƹ7֎)"ɧb Fr)jm@kc!D1/JԴIʇñԃotX&NUE1 &&s\9BVXqlpJ:@']哫) \a쭩MDg;PONjx j w@E.;!;" ,&'| q<}adNӞ8(DGDwfRksX.~X8k:ȱW>(msK7zIȄ&L?>=;0{pս^ZrF(l?y*e>yfr 5ń<(PUf!ޘ"٨X,Z&hWMp;*7bQٙe;Ǘ( +E1xz00wz(}{|gqptݮ*uw:o=G5:G)5J )L1&clă!x֘Idu",'E10Ds.f-g /%Sln<ɭzEaQg a#q?A*L*r>BI"h{1F9CsN0v0@1Fkck&nN&ciONNއvBRn6t~civRDhsQ׍RkRnp.jZ7<ƤC?]9gr2`B\1`>V+~<7M3ֺ kmY{伧EQ(cx<6R6d:1@mEae !j_x'T&eJcUU+u]e{(:L"$x:< <|p?l׫iFոjsz?kM4tX.jTu}k]<;MֻsuãqM?H՟f7+j|΢MSX5a@BABm @O?a1Bh69{qFUeVPpVfY4,cl^]1ƺs9929w!x !ܳᔒBk01B0BRԻBw[IXL)!FywcƸ6#:=PJmHA(<b8* vWgEϳr^\*S {`l]@Ɯ~e!9&Dk@{0W)&\  t d4.Vǘfi]1FJ(!dKݶVY#:0ccta\¶"rQ6% :udRm7Ve)GZbOp]`LNlЃ2!o~rMpJi!D'%Z<>p!jZcRYmk.%# tQƌ1>9ƘXkBQ<dnG%I[?ʀD$z)Jb>Ty2*˂^^ I?dX.ʲ)ra .ILj<]6;] U9*e)b„ 1O ?M1n⛝W7r}#ok}#ܿq#7k:aHFP{gt CHAJ`b`DzII] C0L)!G {ly vРiii AhG11D@N)gG:!Y hnj}bή񏿟ُ;әdH5Fh0,!8˴O "#6VθKvK$O(vF)Cv?,Wkf(8,'Yg#srXCb۵1k ]5Sjyfl 9\4#PvX:%: HO)@󲪛c @YVF,ԸR-w?<1òr vh@!aNW˥|n8CF64(19g%c@kd b=?bgN'bw,$!q.].NCm gLJm߱\kN,vu]VeiY)mLݧ;#xfܫZrI)дC P660:s"JO&U5>Rk1QJyNEU<_Bk1B˹!`6{|6WJtrnA ɤ{LB}ݦi&n;RDU1>]<ˋ<$OGw>89cT!"A  FObbz!BBBRʌZ= Bh9cyk%YY(CY.!t#1%g,P>NFe! !M d\${1X7G縔ޅ 9w#!!)qbsE!%=e @0M>0@a A\Zd@e†@B-q&mYr= BZpK)915 Ôun\N0F{ F#dwľ*뺆BHMFUlJ(m׉L`c!͜RCCh4K)5F1!)!l46uy\v\Hm &1Ԯ< eM6uS; dVnv, cM&b@1Fϋ҇`;sEQ`JBBBs{ Dp4ջDsyf8 IDAT[CQLpw,"J 8 ld\ZדPCc+Il/+A|Xc޶\r.g4C'h18l7z6 2AVHÈzKFqľҸx#ܿq#7rƍ7r7W{%$[e'11ڐn#|2㛵LEԤ̶: *`} 4Ƙj6U]rcF"irh3Iz!9:XAhAYuNI{Ui7ح(O~oCdvzkHƹO#ִ&dV;獷0HAm1Ԏ Sf#O> S%;Ba7N2 ~wOڰޛdٯd}&r\ZWvbɡ(2Lk 6l?aO~G`hI(lvwwG!I6C֭'Dĉ/O~ wO#og?:oc9 /1ӽ+Zc \Eʆ ; oL♳'ԧx.|ؘ8>lXo.ӄƿC?ok4q (۵LN7]HP=^oUUƔ`Oʬ*g] 9ʚV3ute[O xb//xsx&'KHDžY3~^+L 孾@"=w{`1 aLa#'''ҳ{VND9DKr_Z<>;ϴo']L_3 }'Ϭ O;!!ƐBRE| 1P0EP4Dlݫ CpK)>yGLEnHжBܿiN[~?2$qO1p&%if,S$l[eٸG 8,q}ѵ&٪}爍?7JDZiB1.LO$x8+5J1\Y֯TU{Pբ"`5G˽7<ؓ'M%&x5ں:4nz?ˤRm̘`M{%e LWݽbQܯoN0CW1XA,j,KgțfC2IV#b1z0 [.hU\۞P\m3ltcHewG8ȪDxf ٣ncѽ_{ml(\~ ѻŶ\CulH1"(mꢘ&b@?كW_;39,@4/˟^YA11.d˃Uʶmh,*^\B1GޒjXB*!RJdY%K>zZC^Hg5#Ŧ98_NWDg9dțϧ1\]]MgӮbLRH # QJ5MS0 y[k,)n)%B !ȋv3RL&/mv9ɴm۾wjQ`t:!eYb1(~zsRJclL)QJCH; ey}pgynmUNBPBV9w]WVwn璛ye),gyֵmQ>.jQ1F,$RB*g9췙|\kX̭;Zk=lQ]^=w?`HjnON&Ť, FĦ^~5kGL%bb|e8w|-\8}gdq:guu^WO8˃m@ѩԶmO7_+{of6 m-#Z;@Ch1 >b1t솶1!R]]"0x/̤kZIaQHLJ3\>%ch.TYcF>ƸRZpfc!b 5- (u!J#P)E?*Hy .&I Dcy0D0 iPe^)9I `L~La11BP8z:/d=X/g%Gk)%!hlLsZ3aژі`ҷmcIY_l;$*Fٺiw .tR}x;nR2>;ޫiu{K;"D h c"VRf)@.e6!ɍG竭:ƨ%jmF<υF1"Np|eL@8WWYQn%BtykBh7R i>} zBh!A̤dDuyʳYz;oi&RzVkq 5pUk5/?V0@ h) pNu&@1P SJ0  #N0a b@ Tt.”`iBhm$lȇ(^t~ όwpɴdAk[= QD)C" ]t|0"$ mI.ɕrjj랯fn1A{bQc@K#UZ}dQTۍf<^3)xpxgd7mnhzco:zoŌ` sp .+x _ߣ:v9f'Dp7=֮퟽yOޙnz܍ʤ| /Vgٴ?-6MY\'ӫ̀7tcnMcO.AE&G6@;wso[ 0% &RKfz ~V7Ͼb;OK?w))>k/B^'ON:űzϕzI/K|Y G YǞU>HCs 8gޗFYF?CY0B |  $b$E  $ '1=H8a܎P02fҐ \) a N#  ޅ#d0) Akl( qMU%PeFaIPA!U.#!B#pho 53M5DQ.z:A(Y.׽ʥ)"9&R, TM[Lk%Yw^'_dީCbs7MG5md[O l0zg]Z<&F64IY֛0,e雡h́ MYL1qlFA0FR.x,IA)s."O!4`.*PBU" !K~)xv'E(\'>% J_)Q'gˇE%7hl-)%wQ >wO|e)x]LRX hƄ|W '׳l)_ƻu!S y mzRfw?=;..j2y!2AJ9&MrPβEqІ(8oK Ƭ,BZk1t>3$ڶDvf=X%*xieo*t $AB:ek- !샃0RJ!w˃RcZ;YC& l!(Ĕ`` AdFv SW4 t NRi dBe]V( ;笳Y&R$b Ϲ6B)w"`=@0M)c eY6mK0v!;mBp!ཷ֦RJ1cMe1k, uLkg2٨uXp>/Kz5wf\ö&YVیneAʢ캾(Kk6f:uC躞2gY۶Y^}U٬'0Tу ue0c dКqB UQz5yCżSʧt˲rz)8{5 ZEA xvo1nfٌ~0ݶܓ?PHfU5p_Ukᾆp_}M_%@J1&)q1`O{"@S P;3&!001%LH 1RƔLL1EAo b@a BJ㉈t5.f_;doQW'lG,k{NJ>Pz&gW xӳbL=r<_MMnG$3LߚTP[DN)8 ѰsTSn+3gGԒ_ƵIN%N$"3FolD!B Ĉbb x&pkLagBb"zp>V6UR<ϑ:&E^2 Hz!m>+9̻4U  #)(EjQ0XoЬ筭rY?#v^"1)\7*ȣuwTŪ% w:c5Cb0nPvRNޜA~Po84m7mB)4B˨{JhYԃgrﭮt ͫ@qvl(#dtǾ,5`AԏJFRk,K/V)e]׋cl88w]9!r1RssSJw*^B!d.rC "sc6;f)| !R1ŝ7lfiۦ(pT]g8㄰T)5T pǝiOӦ'uĵ,R8pf_?7>['tms|̳L(v>[}ߵ=Fw?x(, ytB0*GɄAZ߻qtݶfS-LL|rqvn9{˲?Ǐˋe%H$4ĿQmr0c8_o_B0Gz1ACpA8+pYf);:pB)!%dfٹ4SJ!؂xlrbR@9猱EQm;kaۺN umZfEj %SƹwB(ycA ,3-7 w|N)r1&wyqY{|LI)48kTy< bK 0S B} [Ŷo~EW#=7+a|NV|?bȃ5 $/j3LsvtUҟ=(\:Mƽb[OUW[:^ L  ["BӴl5bCUɢͧJ)'B}1}Iw,|Na 9bg^~/?sg+{9B=I~lߔy$_yO[yG"sKxʲ>^%H;y?!Li.b„ D(%(>Dk e,! !>Z4¹3Ck;j#1Bh۪~,х'G)˘`?FBp)l@QGN . a EC!z4/sF S(ψ8`:Afm G Ma}ߩ"g"7,zBo~/{R#R|'&dN jFaq .Ч `O6mx^\]7ٕ *$Zk0jʯ.tA.;Y!U^ARk)CN8]΍1񘒱ViیN٤G!I.k<.!ȫڞ5ۻ1Ea0J"ZIMw^'! IDATZY:y!뵙ɨC儠5v;Wo}QV(jHrB<\ppplv3\pZ30F(s8VU]>jmLv.}rDzqa&+e,KcLa2)wc9.˝ts[LP۲,Jn>D5{_%lg@cdQ @1fY|z9cwmX/cu|>ZeY/ۺB:kgRHBh? RvTU@ 0x(QRNf?.UӘD"ttB圷]g6cyEӶG{1(OEOSgW{s臯ߺߏX/Og굃{oݹu4уP!0_r66(>?}_?7O*HYf.fS;b V!@JB1&΄n' !!H!m44Ŵb$ipHue9Bw]BJ!WU^q)eYÃ}z)B2,PN]"!#1}jRRRʸ3`; 8\{hw74;T)V<B "evlpރE,"0dvg&U[[;bLCY&~saKǘaL)͸p9k8;!1F,R1Z竺z1 F0"8/˾ "Bi@cǺ^}n1H0R@|1J0p5&xg RiH L!1_{7?d c,,;72u]ݬ!T @״d \4D0)!sSDA,kP\,aOȯVŒh3f\@r!̦PJ1!&fLJVr>ףYmt4 " iz&@P۵ ó;;o͠5[UtZ* ")_ =žcTN٦`2" 7-BX"-@X$4^ItjX3m]l&@YgP;z Em&\⛷?!޽M{=;oP-fooly{U;|4RلvެQ¨Ju5bBZ!V6ܮ< H_̈Nq6zyX_"TXQ1\զ-YDd 8VB7mKu@SD8!z01r%;o?|k>͋gHӸEaA 25u|1 Ĝb"2FW+77]W 8}s٬ s\?v^M{b`ݫ>*nJѣnPvpWõ|GG{My bc?B @C;z91s!uRy)v0/+`RuY9!&#~7NOOb<&xSo0Btz-5BB810BeJqqwoBBBH0JK)!L@)3b̄c L('3J]Js=c GDh6-2Bh @{DLRLpNJ)E JIU^Q1F<YLTe\Yuz|>]yc ɅhZ$)FTYVMh!<ύ1s1&)E;jUT]f36H&eُ~!Yv#!lTOzqh Qx]n~͸TjT>8?ϵ`]&c)hL9k= AbZYUZkXPF/ "D+=횃v_w1JH?Y.AOn[bl})s'ro/תoG E5CfeoVg5[oߘ1lN eT!FkrF㹕uY`ޗ0 t`f ~սr1|:x 5_kսkUˊO_b&|V ο W#(9c 1bJ!&=@~#!(wѕ8z(B;3)Yr( !hm !ɩ!$B \ 1PD H['e|]ӖH~Coۯ9ۛ톞nJ)D6PSw] d +JzV'LE⒙`kʫE:2fY 7(mZ1a%?z`سU[oO.Sw9JbJ{Vv{@ nza<&c\gV@lG3 h;d !ΰli/n:C:D,:ydgt:*ux[4+<.k/«8V"8 zfӺw'wՠ }qޤ%7 2@E 8|KO=e {eڧTbk~aeϋ/k.=/k پcEi/H"} =!F"CqDyO9z0 R, CKZa)HZo}gR0ƍ!DPINh ҌDXMk'0vX r#JüLƥEIm;xQ'=wnݙ~NōboJAVFc _>Z)[B$Z7:̌oZ'JT̵[\\ X% 3!գ 5!GؔB{1)E9CQ9\imX.VWY<9it2[F;B(>'?W?Ï=\?|p~?<=\.w&@|2.9S 9N 0PoY! &ۮ'Ӣ8͋lΙV0PWn+_{pi_m{w1\>PI5iI_}M{gK<,v۷g `% iGPfHAIdЃ~ӣ?Z~ï"zE-Kcgzj=g@P_{NUVVf}u*y;n];|v}𯽾/<.! C@0Zk@@HC 5 1&c,H JYD5Z1DÀ d#A{)]jk4RaLd> k, p?y?gȸ00ʔU@L62͒"FA:L(F8)c„m B[,5&aa  q{@B%Aژ`XA !Gq8y蚂\Zf8)D]&.eqo !$ jc b"Bp{k8!mdVh5NRZ !@(JcʢJqƌ1Z(W5H+E " qb(5xJ\9Hiy!h>u69]ǁ~-r@;jQ6ާqJ`!^ i$K)nS"FaD"`Yf3Ƣ`[u] $IdY: Ǭj4K<&UU!N{9 RTB{t2ABQ^i'yd~[o>9|*K"6?CB8k!酔i"vT~jg(p_)K/ᾄOY\} L7 O@?۞2J8bO (C`4XC<* 8G 0b;c\ޑ`\DT:b׊Rī@2V;l0h8A6zu~+4.Ecx8<ºC4s C6,[+F8T3_0)O 0*8'׎81wLY Δ-8iz8Ke[g0~u=eo}g.*35f)ܿ }}Q& ssԕLQ-+~B9ȸsfl{NZ+oMߙ|̚I]hK1uE aƌ,E?WX4mO,@hcB) ugYxo:%2N9B錣|̡Y3bl ( (}{L=d =4}H'7a(?.EnC a$O=y~=2".N~h32܏EOh|29#zC%n~E V6~χx}~L!\Xi BfC@,˚%QJN$3V)ljJ(͊RK `~7 1u]Ipʃw~voџ>X݂Ebu)qFxD Q̓8BeF)a wF+ƒ3lk@;Ebl^r>럹<{v|u eJʮm_~սjZuWo<99oNO4{G{^4//5-d5{BI@KXD (`0DcfIRf1V1΄&srk5(bd&qf6B(r9at{w{6`$q*xb8c"!BR)&B@1oniJ!}hcls ) BbB gu; `YH)1SL (X e1X*!u;-JTrēN !`K(RIƸ90Be)ƤYI-m IDATt\:c#뻖Ch6 tZ# Dh! sB)$I0Dk!Da8B!8h1E?-Ld{߿*Oƙu788@&y>`m&9aa#漵RJ87m0Ɯs>Sy7!Q^12k&Ƹmt2 (GAѨ"8%'*3 Mb+ ]vF~epeo'M'C!iai3 ! B^,Ø']!$bSh_)%ܗpjKOI\} 7 f &^+;#_WXVdTLʜ_Q5"+ek #ڏ'xTʻgg,a>?4~^\;!]=: 6!sAV"2@ Q۶e#H10)gg4a"Ja-(X+F ![N ]߉257_#W|sד;+)AcE^x{MgV=2E޿{>;Uh5a55 {@@ZӭBJj4B}+ނ=Gaw׏ƭȢ4TO7vI;ao0ҿx-֦wrj<`cqx,꽳R*9PA`Zw)^GD9eJ^UcF֗n/ln1{TWycҘr[DZ"ƭۣtrtUj;ESMD^ (GE~i>-j=vS+ RF[If׮힜OӪZEnbouqlJa4.r"ɳbI:8Ul6o{1,SY߷[[JkmڄGCRl0tηM_e] =AY,x(ca:b72_)Dp<eFx29L&i8/y1 =Ty[eYm;8ә1&Masmֺ( c}㤮̇A8gF,Yu]!,˲iMOhԶmQbkkKk[k1BBRڶ>b< ̲Z9Wʤi2thTiX,(r۶-0˲ê$#&𰪪Wcዋym!yCުK1x2޾} ;߾9_8NzPj5}[EQF֖zy5]4 xx4_ !᪮i[ KUUeщVi)qQk Ko_ gC8ӳɷ>s3>?3?IoO?]{gNݮVID'>g嗧oᥢfݷ> vC/( jMhFheYbBpJo>Otv1R)C0VJQJR]91<Yw:O02B1:87銭uf9q(!(D! is!F!@ f t;  "yg Rx(!b 93BSbMzaF*0; clss6:kRC1 {CgQmy}VdaBFVDy_W,LYUMQ(JMJપ$>$IDYm8ͥas5ZVYmɌl0+lؽV^; &P ZK{eqvzV0E}߁Cbc扄QPM*uk "}$"s. L8lZa̬uY9kLmexĜsSt<υX Nq]ii\X)#ĝhS{pZM5=XIF?/D JMB^Ij;t̀?0 j7M!^ȻΪ9cL庩.ϒOًE|U4,~ᅣOG\} f%OK\} &f 6BF˪196Z:Bk ٴCv";݊8e$Q`ֵE`E z#йZYz mBLDs7`;⣻gM04ht&AhVً_+ܻkCua`>w[8r`ΒBbkh,xP=MFúŴ܊{KIu2ȳv$W?f<^jLИeP ;p[Qqw\û|gVNvwnזq}iD7\xm" 㽇&>x}ZtgؾAd~$>B@>YcR c? ~}ܒ(?g?i?G i''ذыp{# ~) 2| POdGr_5!@$!1 5= @ "!B66EhK s! s!u2ڵmE a 1i#Cu[MBO) uszko9b јZ fh$>|Xf[|kkQ$"um3*F Z[E۶uf7HZRJmc5[II{*!#1j9m)f|> Ȳ{9^ c5ePFRJڶ嗫GJ)Bz޽[Ey#W-͊twVηJum$YWoϾ/k8k2)+QG)^ 4a8*n{}j_=yֶ߿gi_vrv7ݺ{V׾޿W\KЛb2vb˟>я)cz\df RIg !R7ϊL*MBdiVWh4$I!aJsD&Mge{ݚNϳ,` )<99B0 pƔT2#.$;#ƘzrKImE hŘ8 (򪭊<t2qŐ) CDEDI)rvj')0z@l|RI(%7T16M8*'0,( 1iWU`l#?/ !,Eq?qca(-x<~AZ[ƈuf<4u/RJ*6MS5!4ζZyL ~Hjj].lg\8a EomFՌ}'A!v]8BMf Mk,Tj0sB0i|>gr.1)g-!b:^$i !+t2#"~u_l٥҃TղjlL+nOΗy\9؎8n{yTĝ{ѧ4p_} ^\} %ܛK/ 7 zq|)Ts$vfw^c - m-m*m8\h,p>IP`A9K:c0Z# EY4N¯H}e'/ne^h ($źy4^.$rhmN\PL=\at!Vw_c7qq['idl.f<Wn [>{'h<8o]k8EgvzZ޵o3WiuyZ{j\0bC:I3*B 7oA<>J> !gG?c?GCoO~OD]YQ>}oOnÇF- )Zǒk6>Uۓ1xiaIJ@dyܓ pF?{|pKG?UʇD7~9g!D$#|Y,0pq Vk !Yʦ2VfQQVtٚmuu(4RPJx*!d9*3|$&nim9fV"(t{򭯼p~7~1~zVۇ̿_׾U W{7^.Ak^88YW<1px }Ώޝ_okW߼Y ZW+10!jԵ9#SeƘR[#{l}B6p1%Q6y?J DJ0 !$cܶmgf167I/kbB@c)-T޹8>ͬ3>16ó6aB qqw荚y318H+c;!Z[GM2$R#NϓK8mN"t5G,A൷RBAkEu3ƥTBΉ Yde%{ LkM)5:(r)#!)fFtO)&j6_)F R)!DE)J(Jt3҇ ossjeY0FB }ߓ` buw'XkP*ci 8g|=:=]Jwd7f?{(.YlZC5<@h 38kF<2bQ ZH=߇",xG{g.I uG@6JH~7q? d9}|D?Ӽ$Y|?S<9?>1ȏÇo2 lϏV 2|7"! > ! CQ3 @@!=p%;YF31Bb(}3C#Fhwy0;܂1ؓxtq5Ukc¨mj !NQQD60`5@0_Vs8 4 0Emdtv~6&!DBY˴A G$6\a^yl5o#+Iͫs/cG!wG$"iP] MB ҒvJ(Ѧi"[JvbeWFWf_qWNf7)On=#%|YM$ɘVI߶PolR}?r\moirM SBa-ˮ붷gULӮ 8M#ET(aB(<3Aiw>8΢@]ׅ62Cih✳"2$֬[k-cej2JQ̬Ux rY%!;\$MdYa)1B!0ڶK)wvONN>d1r2!@)!{4l6y8RbZQ9H CUaB  /(%z)J;wAϗY;g1?}kh,+eҝ}4ܾ=PNFEool o_|OKۿlgz|zW+W^wo~kG75 ^;>2ʢ` 80dŃR{LDY@dK3WʴJH lUwUYC!r,<ˆ]SO#(^{C+g4ȎYub{TJ,tӨTaow44!q[ J?{'?0uƣV!`0B$Wg{,hhu^MSq DEu])Mh:Hgi< b^GqԔ2%;b?{~芔7I2+?>X+qÓz_~e^9z ?#P™?LGx4D\k ^)K˔,uRp58ѣ4󫾧Ez_HE: H-5 |lͧyOn!g kڄ/<^7ߛ7WwGZx9[Q\8o\&-MZW+|0H{w귮'?9ANsoaY%oNLIU&0 ߹c:K(&Ȭ]9AJLޛܒa1G|oX^M]CWwWwMhIh JM/Lx#xc4 {'46)"dW]5z79ًޫ7TUSAQܛț7=qί!Ca[Gx5pF`R2 nL?6]& )xm3,;4HȶctwUF! ǩ2Pcu)D6>}͏{2?> ~=ԓ>CB8_g{T*>E}^Lͧ؟;N̞41ge}_O ?*驫˯G`XC)0Xo-Ӡ{ 8 u\8 eiƈ4yϡw".0ƴRZfِvkc=.^tr6c"14m].KJk']b A@O7(31BNSUJTNN;duU`$F*t Ie몑, Cng'8YĢUAJp]Ww׮]?̢kF{lFtrYeZ<_a6-dk{4O|9y $V(JNO67{itAo0hږ16B8Ir'Zkl]YftZ`0FB!H+$T2uTTJ)1 8 "|go9ڮBA4FQ5g{0恘N,3֭|85RNvB8a׵xl6ÐRfIA蛦YK[kpŪPwX/e7֬<`Dv̲kJiYVYYkGbK@]a/wReT]$IRR! gye]AXVu7łs$'AO pxv6 Gŋu;dl_/otׯϗ;ݸ:t>,ܒmkeK(MV v]U~,ݟ}zoQ%Y{)=:w{}j`f o {/]aawG$h\PPc!sna;wA mG9\1mFQԶVp q ΝcZkAphu7Zsi/Ѣ0 DjC)J#OUJ1ʴ^sKqZ31C@uӐ(ֹ#9ҡ`ڻjCi뜏8e-86]'b"lF|qf%AJ1YD1!iv<ڐRzqݵ0`8]K Zu]9B=ϽGQ",˺ pc>KLkvvqbhDPh(Z0 0eJ~ДV`rRnFiP#NޝLc "R{㞀B!UҴn$:/Af QJ)Tp;gY1n:˲iVAVjc|>8ߴb9:>G04W;vfӶgQjV箌RV/}*;{缱A/0>9!Fxӗ `u8<z0Ba0Ot\|ϧq>>/Wv?K! EA>^hwj떠]BdHP0Bo[Y3F{:`neW/cԵ`#Xk"RCDYmJ&IDxRsGRU7o)84ce,ú;ҏŢ޵Srnn;M-  zh~%ymoD׮tN1C'U}a3s%C0[Ҳ6U ]p^ݬ9 br7 o~ZɤKowԼY5w]"tgqT_|~ߘ;GtZkϲD֍%T D[NP-aaL&2)pח*zr<[d_53/h~fxфODGx4diVR~ׇ=e%ӏ3Џ( 6\?מ|h"ȿD`3 g怟)Yo{ /faf6@ҏV6 m;gumJ"žBp)Wwyyq/@_Q4uqpsjv+j89ei6b7bnrrO0Hxۗ/"]MnoF zʅYSK}x"7 .\]hN9`wsl:miSUguƳa={x4#5moymA[maXU<b8V`Ї/sF7 e᪨PQ",?ey^a8ܪs 佟OAbD~xb1^vrwkcQ-,ʲlۖs(m%Gǽ^i~ϋ"eUY5e)("5(SBZ $ S5c9+2M*?eWE ZBe)VU!\+ɲl-]g!El6h-^']%55 J)BWe6跭Ҫ̭Y/lng{|'liAo:[Uel0[Zk! KҲGG[㍪R7^(!Gb.)&:kbnkd{1T/Kqs89qs8~9+ic!hWBkɪ%FsZc LN6 ia&ƹ CuS*p\ƛ_zZ֭pjێtl i&}#pt:],W.AY"w?p/o)hȭu&;;d~NQ#10izjrr\xi&%'٪sÛjefֱ+xs9h淾zs>4VUUZoQؾ{_]ݰt *-W~oOup޸*߾0: {j;c-1bvOk8İC@0j` s)3{xeK/K5 |b _ӂmĂϨEF_iFMm>qk?~ov??C6n>}f{!!@;y,{{AB  ˛QHL6L鮪(Đ 꺣A09FêPiTeh XAʢL퓓c,<;+x#<],g-fo9C]7۶- w%|XgeGwb/9peQZG|D$,JkóbK]ĦG^TL\-9+ƨ2WF# Hz,M-k +j1ʗBf/O mK,cm$Ia!aa] [O?nE;G0Ai)\FmSl]˟|0'{ɢ9 Tmv},]'+OowlwwNr H{6y1cQ/xjWZ YPj8&+{rRl 0Mg)fl22V(Ymub8|6_ITey^0*4Y.IUMzc(#J5%!BjƸ19'/^5et j=LQZ)Mt>##el63lll("FHP[zjz=)2 æiֹ~Y9|->~t[Xwu`ReeY IDATJ hFq˲\{m [1º4Yyﻮ ٢ȳ_UUU՛['G{{{Junඩ4qqum 餗&rozY,V[\_|yX[̎O_^'G}uppq"Vk1:崦+-`?rȗl]r/ܽsf 7·orٕNOBxd1b AU1ko믿ѵ{ƛ{Cuͪ|O?=l:0M"𫯾~ƍleh-)! 0$༮+;.GFҔʥ˗/"OjNdu{fvp{㬏;߼2& C !aLyd}))e`"Ay( ιR*2B6"c. M jq,8 l˦e*)!@9C0z 2/5imp΍>Ah DP75%zd=NWN#$Lum0!Bm0떵6B\%" B;=Ce(Ѳn1BtJ: x!ȲD)\qC"۶Bm֔Pc,B0"/(FѵmBkm۶ah';!(QӴ8˲\˻&{GUU<Ĝ ֲi8QL,um,zQYG8uX|KqȋQmIИ{0D1CڋN5IBJk1!}Qi5Z.6 C1FIWe+)09!<9:qlqޮubs"B4 hI.ո,Q x#ykBzTÍ>r89qs89q%{u:YKt4l*dIՔ3:Uq=y –!7mUwءRR($'p_.Vi WC5x%e0+tV&0Rnm~^E!-;4d֗OAe͜I=$>XYEn[᳉}N.]@r)m+o'sq^2[ض].  jS<䉜.AרѾkE@hRL1hV.̧eAAiEQ$%{n+ΐXΑu\ sG>R\w׆֧bcRU|?G |g &fHYg ks,7&}/4vm~6GF<"vhvό~|~<>5sB(g,u> A!5 @ Z]cc{/~ѯ|f h[̪s֠(wMHu PecBNZ#1f8ɪx)%m[kjMi❋1|6]km]7Vb4꟝{ ogǣh,8uݔU];:ii#ۭMmG岴FF|{i̾[% xA;L49;[pʧ{8o߻. /ܹ]ޭ;.]}k5-/K5_L.^;Wu?xikz~zv|X9~cAy΃8Uy (E'_kY&in}pTT]Xugi?O~}[}naq֙3W~ŋ),WAcBf ZB1!bQFU]amxP%}Z66/Kerwmμr՝-@!ư1uU3Í׸߀ a!H@PvmOE=~yaKᓥá < ?C~!}ᗏ ~:iڇ#pW> >3/т?ޟ}qwa{sϜ`移B! X/Q-M{ؽA~7ۿ_” &.ɝ(N 5gs"m*F不2-k<("g kmUuFI84Hsb' B<8kE{b Χq Ox3ǰ*JiBNU;44 0):@iw63.V7 !yX$|Q+%[Km6;iV < 0FJQTDI$5hښ@/uM1 B<-[Ƃ].f4;ݹ8v,5nn<Xdٺ.0Rxøn*-xl<_va]8d ySg ʮFb-NnY^ǽa[9fy@@p dՌ(lrM`WE?M^٪my :1Fʪ1al ᠩkJTJA5CFjzUY""RZp^m۶qy>i$yPӴbg !29XkwvvFI)csn2mNY)8S*M0ƚ1|>kk| Bg,˲{^lV]6M0 >=>MbE!Tk;!*!t3V#,\K4!d͝9Rk(I}Ўw16L,M8ϋ,V˕RZl0hk9Y,JLHE a:_w5I'jY:PkN E۶u]Ol愩)T^n.+$|Wmno~x>iVU@(/hެǻJ7?0__YիNۺ˲?~t>7d·kbaDmhwgoX.[a]`aB_y5??N8YrqGeJSdaa8~Idk[/~ ŋWR~{jhc߽1 0駧ɧ͏(!/_yeg3Z5.:iFxB)cFJIB(!!C߽^o\=`W2^eE<:G ጅw]z$Bz%i69cu1bG\&ƸZ'sJi4(gxr6jBVuMP]w*yg99 !8DkyB^ H' ]U y DVS ;JR:3ZmdoWRT( =02JIX9\,s1< Pԏa1!tٺQv]Rh+4iQCcՠ/Bf]\k,0֨_^lĄ`ƺ0 NJ! LK,(y_BI.4dig(mF2"US2ϓ8VJY 3AD ð%p8Oi]h0H廻"!~_+ss=B Ռ+W3l_ͨ5Ռ+W3jy17!7n1$XZ a lX:]#%gmQzjk)1 y0M=nI_J:\6 >qE H!$ 8 `RKqqQzx=iU{i,c\?!.CF+m?9׍Mׯ\/zy]9ƥ¶4\b'j bPmu,ୂzn-1-9q7k%pPoo1Vڈþj_VbUm)~8ۑxmG_z1h4RFV{[ɌH0 zklmSsyn;|f/lf 7MkͲ['I<l5c5-gtc*j!p>s] ٲÜU锗CSCH{ޝb{;V-SWVJ)*c{gPߩbQӘЀ5Nf~6D^`REQ0zp|Ƣ X- *sD(0gy1:艃1I=;/Ęo {ƕg'Uv3qְ4C 01+v8"FoU]!v6w+ȇZj/mBvvF+~nT{4-VǫR[XN)fj eEf5؈VU[粶u]ivRyi)Yv΢e]ozO!/쎗Ꚇ@[Ubnks{(o.S0$<e@+JIxqѺ׈qwղZ8"a1_ymVc*hg3;筷?, _ɽ…ޕ{p1wW4Kx/wɏ^vuY F?zr|/C7I~z!;Pѯ/޺wfgkkO{pgoo08m7NEx˼{x BƧ~lx륔o::9߫!/{o+uy3߉3%"E 5u=Nn#H8H`I%E^A^  IݭH9 5qkIjBjU_cy! X7MZ* b=m1q !4V!J<۶Ͳl3*005kQUp8f:#k|Qp4st;O}٬5@8G?iG$)-׫|8lVZ8Zq4p(!D+CsΛ֔RkR3fƘzcqĝƘ$IBmێFպPEQbw|rzeCs(Ћ=B#9&/JQY>FQJ$Ml IDATWW7>CsuskVMg5=F!D(N('y4]5‘(I,f#"׈Q3.1u !JkqtE܏f,J:i (HpںB )Fqeݨ.rlٖ;^5v1 Dk׬CWﶷ?su됬-yeG&[nw;ojkG;mUfөEgüz)2S嬗kru!} V.ӌȭ kfRS[Ω(RMCB g[.ްd0M:SK_ne~+?vam` i-z#۽q#vkkΛ>!.?/<*u_<@fmv-<ɂ8(j~sr1k5Nh`pg14`.B~c?ea8N;8@W@A㻻{,AP `1*j>%߻e᱉q!0cqz C0 @ " u zF1vR|yRCS[ =sZ*Ϸ櫕KJl{mT𪪋"]A6Z!F:]q@lе 6A%G $NiضV/eM!X w[J:z{: ieg`1Fۮq0x'&N4Ku XYyiZl^N,x)<}e6[j '˪*r|z:twt0gQ 'abϲy)ֳ$Twr?>[j:gd N,wS 1vSH1WZ#aPmۤY,A0CYdMX&< V5:,sLRkQx2NIk!UZGl A[Gi+T"/΢rMR&bgCօ,`?%x4%1J:I*:Mm[\Eڿxa༵yv8,+B(Φ'@v]*%ưKdsQsR"u]4d\899r)e/E8Jlzr+rCE,V;?X7B{Eo^qg"]/^Nm.cv'm+oLZzqCh: Bk!B'q4N!1XDZmd"D1jq1^NhdBu !/V++XJ9 Bt1VkMdu]K?{=ŝ0@H͂MFoî랸xp:`4ØNi:gi<;;;-`&~==&۪qgo90F,+ӟ]l\ǃw7n Z~k_?W.ݾYŧitIa=:xW _hy\tYDzt~6 /\W2;.f`<\.Rۗ.퍇Ew߿uzܐȎˋ"MGDŽ8''gY?q/=$so}dg0^zzo_ubȑ.xz-ʊoyxVRJE-S цnb0ZkJ)<'q׵y^UE-:M}!O|/uUz, !"kmeMEq:=KkVkkOx{8d(X[GR;QCb!B/7M#1ZͿ/BUC!BȂD!csҶMGF[pPJEcj a+e\yOmHyǡw #E΢$I8g!J &!0"Hka 4B!7C7zh"˭1R{GMaf!!D@V>}Y*(i@?g٪ԓQd, y !M ˺lSJ3vwfLyg;Ȯ<5>^R;zy׃~:[P9&X@r 離5wQ1y7Mtz4]$I$q"Xk!B<5s&AV2rLM3*EAB@{/Dnr]98[:!Bҏz2F?O3ade61ئ$?@b G5OG>8s~~)cWy||wmp?].ޔf#EyMﱍp{~яna*afwa2 C" @bp#C؁ \Pf/w^o={v]c S$J<ϵ1u#(!¤ikqqjJ8pf^Joٺ0<:lYRvgm&I2,o AbQ&_ %[$faQ,!I8";˕/eĭli _+-5@WZҥyqNVv\\E^>Gz:[X.$!$vZc^j^\t4%{[ժzAU]`8qXTBj!T^λ8I~njgݰ?B(%!JYAk=Tk]]`85q,Bk1ZB5MSBnom-4Irxd6 !9cFP!TJqi6uӶ ƈq:kJi!x ZipzkkY85Zmcz^v1)%c `>$IYӴRTQR4MzLPYuB8!qmpbv`^yƄ8ﷶ' ;{,#t?znwj-EHEyt9/^-u?LʫOK,R{;of#W&1˟<=W:׾x+_"m9?e6(7dB1cι4M"jc$qhkEoݶN(Bm&I\.RY!D! ! "_JzPllFh؃s49pos?q9n|YZzv}!Bb31E)4My_"A1a'6]7%x ǩ |4,'`XziLJ1ނ@:o#do,1|)/6ګc` IrVT۽ѻuQ׭@,sZ4>dw(hxƃ΋h 8iE{y^5`lxb.MM̵ 츢`N$޽V۟_ ]K8^̃qB#ϖ~7w߳{n9zd8=/h;hBE"NK×? 'STE+/N[ Y |mQlT$.|P~,/B'?Kw o;N?*ф=g(_ ]цI\J RV84z8au]Zn' #];[J۶i5Ms lS,Kx8xggs^! w] moomerCI700!Ҷڶmǣt86,&kF(zm%izvvi/c,Iã#J" ʪx#!k:F$SJYk>cu{?͢(,MEjwww6JO=b0xg/_Tו!ϋrGwZ>ԅE%Q~vfs{^㢠W'[eÈme'!F=|~3o_͟u{|gwxV1j/EFֿ/?onݨhҕ|镘?y p9sz/p~t:<׿ J1^ɖi3c[2ISTW q±cmM+DP@H+%H^)1⽷1eU=m,e2i 8m11 DŽl.!Z;g Db#&!3 ,E !c*8b1RSV:g=b"hp'vHʪQh9Mwop 8'r])1޸J8|14W%XCNdY$ 5` &2ZC[?>I`54J-KhMǝ6h"*raX㫕lC5UʎMנV=?j.x ]exZ mWiU qH?9O l]{%792 K@=tJ.ll(,@C ˀN=J(YH'R™)0>-U?Š]Mabl+-ZiG6R^?1b%pCsa0yzl ]vzX~ۧV%qLnNТ/~AJl%1Ml-޳hU-z|x}0bQ>k0Cy%c?n_E{hb#{_>[a!.G[w1@azw=?cyG%|?`9g?.ûGч{.M #ܽw_ge1&Yֵk,J拨Y]6 BuS#`$MRh4c$ͳngJ{9gxVUZI@u'{:U{i]V*8x@#dv.^#zwXc(Q IDATGG(@xR1F)1n6sm &Hh[K#ն#$x:!sV%g <Re";mY~S)˜Vs!|ĶOB8GH(18(zRvB/?7(֫FqҘ9k'E(xj+rU^p$IUUSJ0]M&zM i2F)q&E \Z~.۶1Fr5V!$I,$]- @nݺOZkgpu}^xm:)&HJtm$I2Nsi:N뭭mm (X l.3P׊4M"hF:ƧkBb<'Irvz9 t]煒2xyum^rZS`0B3񲬲,Kd5_ aw;{w?%IFiϮw4Oό2IgC:s<y?7l] yk:?=^}^j{ r==7Z@?.B?zO?O9 YtA|w޿ydO&r]m[?8tC~W?Q !#H3^=̅Ӆ meokw⥦Z[)krVvvޞl`|PVecd Ǔ3/폇[g3kYRHVO,V:x!T?ʊxƟbV?zwYw6]ݣ]%1N7B(xQ%#H.x5Fk%I!I}+>/U{\C?vPB 猱O Vx* 뛖Iw=XG*ij4o>ߺxy@dZGJ@@  $ksFk3䝇Zv d"5JO{d]П֝Nh`seH}7O_ɕjg>#v_x!\)7oՋ'w\(@OưHc{J$eǯT%mW؍fIx,Yk2*p,@yMӪ3|Of h%ds$uT]ޚ E u?9 C;)úu'r@ e1oΌ#.7)J3f2jy%uTOpXz-fZ΀`r Bǹ?<£a GnU>:axƇdz1Lp Jxkh@Ǝ<`}o箏g %k$@L{yg.їg'_O偎"N'ΠRH!ɔUk9'uY9-R0#iͶvMU2R$^/VDL8D?wNe-x8]t\Jkhc䖋%yދOONv;ۋi@gsz[= ]:k(zRNv3cMGeUFaַA),ui >a!Os:m/\@5+94FHhu+6IR(BdۮGQAo~o|J%rO~kq X%dgXFPK/ [_t݆~Jtt!c3bVv<LTPY -{J+۷ [w<<$iӄKۙn{U  v)2RQ1ϚKwBQ)p8&"ZƙB;fNwRAM/kF`g\   %l*'  1TJim(Lc5UG {JH_dv]s{Jm$I6eCcAt2ERBZ!.] `ihE1:Br|rUU8nܺ|z]Ui֘`9I6Mt:cp0\Vcl]Y8AA$ںr!"`4i7g>(,˦1f2(h4^,AB䜅yhf0H)8J)Brݖ h4bBʪ>˓bSdYkubUa00Ѷ%V:Hc\x<@贱>qo|.|~|7VnF%.>s;{Epihޮ򽼷3[gw^{"g18_קz8cI|_y3W߿s45iœ/Wוn'dvդ Zזg.\zr?gkL{|t p}ۯ~kPO?s٪nKRT@°tw(e']:Nd8=UR("7#4Kz+/]o hZJw4ȳ۷ֶj "=cXJgEJ^x BcNe'$.d"XwSJGuV]z˲2>lABɺ !%0Mj$Da4%Tk',vac(>L590a8Ze-$$xK#HãzelpSFEw$Jt&9 ; !s E!sRE@Rf=JzsHyZ˜" RF#gP+Y$ y@(zS1 YAD ƬŢj-d%YI ( )MU -~Qb|:EflFy0c}sge]רwդ/Xںm$Q$Py[!5%pC@Bm( !t#H{)a`3c4!1eeJL1D "`-P$II(CeZc?7u # Tn_}$#"a5B>'pߝt9ܟ8~?>_ ??_S 2p?Oqe) iIQFqŌ͍qWB b{s_=_V]@PU>C@G }fijp< |$?$ܓoJo Ž!!@x_wX~pOChwO 88( 9=k={w;`8 )4)dG/`O~?b[(̆Yݻ>{goefZ(+<%! # [ e ``k @lX[H0q͖UBuRUE}XӓY p+4Cq6>_|0-UYxMB$P6UQiL tb05z?ͳ8Id#f!xD]mo-R4MfGGQc^^?/i1joQ{ kQdtz qQ/iUeUH2Mt a<r-FͲ@NZ?w$p!b\ )lA}XT)V8aQgrQdFmS(VUY,qQ s @1R% cIնJ$Iu^7MZkkmV$I.T\Ƹ?8VQc.p@9_.{eq2E\[$;=<{9UӘ7߾g\w_͖fB* Rm J9 A`w;@֟ttzO~z:?2;~7^{ٯz/uk7v.||8oW.^Y|c.o  wƋz=o-~xrcrrpo{Z'd'\:Wct^r٫[ɲxpʕNoWkMw`cp1NR{l_wn}x{nnp.@@ZK/ܸ^]{n]ʈ >`FAUUYԵͫɤX͗\) w]~;/j_ݽ;7~eYFBYM'*Xi P,AeiQQ1u DW.]MV5i♧.WUEŘ`Z,ϕRg\qTJɈsB.Qb8R bA( :06J'1 ˀa0XRB1ZSLje({}h+$8ySxL(,:oAEEQI(Zw-L*D%IRTTi1&Xk֔Qh]75"\#ZE042EqT5cI"6s+e %l~28u+mٻXQb1+ ?w;/hӺbvZURLsc !8C;wi5c5 hg4ZCA3%%\i}4h^A tDŽ P" d>_O)M;2%w@7&pe`Q9NMhs t23JKyaj`d 5:i?NqO_sPrIL0MZ׀%F$;34/_ 0?\},vVGݙPIM r+u|eێuF4m1xܸ@XPbx=kMx (G?cg|J}>I['Fxo8[ó}GCk?=&gGv|]N{~#|K (@)y9 !g!4uC/ ׮t+֫(M#5pd`YRQzki3j]s7&(繣#(AB(^ɠuk% LNlYguցūjm-+ն_zq:$nk6xhOج5mvG i]7Zh^띝3`DղSFsxx#!s^o RE1 o޼$)HJYQp\q UhcdLdssRe$jv@ IDAT4m D"D4:V(ι8E+1!u]w:Ji۶sEQ roo8$)uRM<%/ n'{K#BeyS5K9@SJ hFY>z{ N9Go}?{\?ˆDbrcϜ #:] R6o~{1lkl:?*W+ˤ>u!rpއlFRHU;0}༣__c{wyTeYzƓiӶn~cckVSGdnuoC]~֤,(§Hp\N!ptR!%UQBIMtZu[o~x\I{svIQL˃ߜ5ޅ}jj˛[{0_F4Dx9O6bp^3B1D`6B(dbȲo pνM]c!kt>M|6ePJ<] Q׻[sZh42ZkcIXc(:5Fz)h(` F[c8v:#6:żXO!6`FCj!0~:K+>0xYӴҢ*)=yOd]B\{K1vKZKomZ97JՒsl1a!%DI19k)%B][ףBD)  єeit:ABEJ)q6m)b}gJ+tfutb,KREj-5ʀʘEiAq1s7nd㕫;|qnwe] CλOW{s"蜋m8jԾ;3`L BӋSwJe2&pִMI_)ό>AOKX,/Y>/RSֆQ~l+FsOl{'p=x'p~|?sNqħwO_" > VF=lw;(!I8!t꘧) Vxi~zuNVn*nBUR1ǝyH5v=f'vZT7fJ?8Q.:}|\V׃n~D$ - z|vVUe3ۻ] 4zf[^cCy6nY"[! &lwӔnjWfVId/KniGt]̖mc6O q^6o٩`/__9X+Y4(TL+i(DXD<>'^̼p'`t]An:,p$Xq*1N$B%ZuKcT'( Fе(@("ÙG./ӟ~Ptc{5Jh@03A9W >Co<|O1ól~=S>{zفB.O1dHY1oRD2zR]}u_{vէ8.Gr~n vn%d@8@"–x>_`G1Ke^.<m!P8Gh]FތY,& Ԓs9 %"mJa/d Njw@^ܝM jf!IbQ؈ x<Ѷ:XT`#JZeg"\IcRr%Jl˦R(B(%Mjkq>Mlĩ&9I4IRtzIY7F+e %o'Yk 1Z D< sO{U$Iu+jG@TV%D!IU70vYDU;ZQ(+cASaA NS$,b[iOZ.J|o/Eq6^",:Y7w3r HM%!p:[i ?ge j0Da\8JK2K٤Y[;‘&RCPJ*)9BHƘa0GqNHJǑRs^<M.99Yy~Ôvݦ,,c1\r-X[7ҵmNimRbz]llnB2ƌඕI+%Ϊ( rX\}xwz imjvČBHQQ86Bv{rdcLhwfyF-cvή6Ib! cy۶16izrr C|4mllh(!u]#$ !8gRNg\r ƚ`ж1d:?IjKޟN!`zi/plnݾu3:{7wݐJmnt|띦WLn Y8o|oBW_正I'淎wx8S7˓wGӸ?֍R_y[7nRMxQ^D#:>?cT 9ywp.ocLj<{vQ.hn89 jyok,hk DV `;ڶhuQj޽S[x5Owsi~GWl[?_gbVNIPж9!te<2J$Ikcν{Ѷ[U]JRJ:P !(h$圗彿SXZk4zN]EQh8gB!E9BySՌ12*9W0L9G(!;Y%[P9GnD8m1 AauXCQN*@@DŽ(U,IIU3c)l9+„1 b^7uR4IIu !jc9eqxQ)D'B[ BxVskm,,`YmfYL)NHʖsj52 wBBVB i% 4FN'?'yo^_#vc&AE4ۦ\r{gS-V\kţbj!BBEktM !K,Emba벌Xi H( 1 C R(Nڶ6@X֖:8J_oTuU'?pޝN/u#'p=x?w< ܟmb5> po~/>?7/߼O|?WRBRޏ c M)Ѐ(4$Q: }?;CR)1'(BG㱣#&MƢ?,]jx]VkJDc {VLoSL9:wGW'M{~oI!/<wJgpu[/]20umW.0Yie^pX!eX!E2u|'<}8Oymyz{`!X1eڥBqSkkA3ߚtUQ'֏OڈE݈5˙z,w ͉rpPW_Ͽs?:)ndBړb}УAkprKYDua\-I`SK񝚤#hIտ5::kvYVlg@*#>> Wzʼ>.?Y2Lz{`xXYR_zqE'd V"&wC }'iP?w&xlBYt.uWo_7_nݴGu5#h1gǔ.Z*B(^*Ͻn=ŮNbs ODɗ2Nxt 6u-"*!ͩ7hG]23m-M'lR hh1wR'mѵ cYU4b(mMU>5K]/愦@N՛;|nJ$M5 H(DI,8 䄊:deiծVrۋX P[;LJGϟL1`> yoCmmZ\9$Rt8N}q !Νk&Q4zN!TU=Srv'h4j^oжMX罐Biwr,,[.YJ)O?mq {ns)!sci!ak)!TJ%I#.Ze!%I,X)d<B0ƄZ\I󍍑 #$x|a{yN)gXΟ_VUx.Jr|`FJsx2}kd|]͚rQ@yPJÀZcu>sTpϕ?_P[ʽ #7`g4BQo|?,|wc8Z};_仜>lLJ'd2_V|.͢s{wu xڗ/_-K/<ϰKW}rꏺd:3.fs{r[F_zv(幃d9 76RMZswdz7|(fM%XcRLXEI%*KS-Fx!69 DQe'2srBJRn%I.m9ic4%$xݴi(r!AB2F8B`Z#=%ZaʩԖUGKg!Z©EQ&B<ʁ9%d HVڦ'!z5Ys B+ucc D"1MãbZVu&w8c1>"w,RlllbŊR鄌 D9u)!k-bY)ڍ~? !0k3›zw{w]T߽S" y'7qRP'!eDUMp7hf ŮwV SL̩x'[kU+f6jT`D\TQh\WF`N:u.j#aZG~mAH3yg!\ p> %yqS;DޝyBIJܢ n9}eINvr4vظCK)B> L}HіJޯI|'*h:Ld~Tx#霒YK Gʇ~O!*G3nж|̳A O-'G[ (ѽ3{p4x_V q89j?x8~キѾEjRݙoX`Et8zf{c; k_ڹxT5E,I yԤ0߸~ b~*]yppE[&eRL.? Y?dom\:n,Fu#;;HB]բ>88B],7֯ 9/|p?FILU~k@nߞEqJ ;KSBs wFq %vEYt<`=PZ#(kl8Dr  Zzt" :A7=9ADz e8UF#L=XY(%ZcBH"Di B&]|g'pI~9>4ŭg~;g  ^_XSp &|}e_/!T8O,riC %(.a1w1wͭtźAF@FN`9Vllf뱷:ݞD>B}ҳ{TkV14N֪-԰,p+C3$8sR.Fz׷wiD+2"aE۩UuԨ:gdE%@JKvk|2PuWs^𯮡Om䋣,% u [)R)17« b Ɠ2y:T:ENQiZ]uY#^]9-ц掦f%m8I,+Wf(Ỳĵ -^ji "A`1wZ~{p!ޏ~$o)[ _yZ >=5+ g5nj>>!܃}|Pu^tgOGv%9>9|>cp]o i7tRl;B A=т |^{f7_՝}ܗ_< @cl9ݍ| &ZLcm* )$ z)mZ"56NH 8DiX/BBjUc-ZDi`!TpF6<΢9!Γ.(NG{Vb߶m"jeC4ZJp)_tRPzk#d 8Dqz99k ZiIMvMf(+W&;6aifJv)S<TB$qd=)wbAQ :Nc1Bx>]A7t|ƲG aމN׺FjeevV㙋c4ʶD+vBª^Y={Ǹj*Q"!Ҷr`M,8"%R-+1w2QO`>Mhԏ3 bQΝv7UtF"Z[gH"DUpUZ1`ݪ^)Fj!qRTg\gI^ע뭪E$êj붦˭~IH:rY*WMUQ6DBV~~VzP75D8:LJGQƇyƤAja<_x M JۈJ$y6Rvg{dnݭJ(9w2FMw9cAp0,k !@Hz8qLXcGLiZ:"VnB@Hd2MLmc\hccZBuu]})Z._x\0zrK&|:e{[cA "Iyp;X1Buݽ5uZY%uskbXg%ZnHVaö/m/ ht %QTb5gee;g?̪HJ" wy>'v7b59D(cSkrsvl-9yA֞v NK3G\{w_߱_u^2O<|>g/j{ksNi|n̾o~'^!w9WKGwߪhZk[G/޻W֭8ڻ; !9}[xo7:vsNommΧ3mV¤ӯ8k7oq߿1y|<5UF7oo9÷QG{M eݸ+U^ ediNcȝdDޚ(z~{jQeN`\ՐQ`9'V~Bгom'nsZkJn!(ì)% 5*1BRʭh9c8BHUWqNv "i4'pbYiOzNugj?q?z~S;oV>}߇S|<.z!g[fjow?w=ZJϣZE!v|ƾPUΖ tbzX*eZF(Tβ1:H'ØxY0ٲ^>D7E;鵪֪{|!zQ6Q2O]YvcF_|K/, s.w: &ȈVit aBV|Zپ"]PШ7nhwۃC 71u3=B~ ])!t339#ff^5/?Cpul,65K(/R5G So{>ԽA(KHO;.ٷޕ IoW|\=/ӋR \Rle;J5Sɼ4纤ED< =f51bB :u9 Bg'àG-?h?:%-_F?>=4)?)>xǀ+\OIo?*$} Gb}Jbc?={/"T;ag%R)-5E[!%|;.<@On?s>;/~~s`wøVNj|zQvMȊUB:8>#Fiֶ"Z;x Ycv :3F5Z h}sVxjU?r `PU(=Yp1TT MMVuMBM-D0@%dzhRg-pXݣZg-j!:%&ax-$2-^m°^uMGWK͛?q[>8}ξ?\7=w43o7 ec?DžuUr=vjw'a]쳠Ͼ۳_{?x䱋yh_/n YTԓWѷw;k[;nEAU[h/"tFwcc+E2+NU6@;kn5ֿم Uu( }u;֘$|={~3KlY9CM#V{A%e])ϟMrݳu lhQ@!7w,{Yv^cɲvEϗq*]DqH0RJ%:hB4Ny^ J L #dSc$xRVuݞ :q֚2PMZV RFiaDgh4x4Oe*u{_/j" nx^e '3Z1㓊JJ HV r0xTUEc*BJ@]1Rz @kkZ8~ .@G=!;_Q@Ui(TA/R1dc)(je;f!8IiDEj3\E" k:dk1AFg: M+E7rFĄ+4Nrn>FIEm![V$I"j 0K Bi7zE;Z51p2D!D)6MCFL'!cJugJ3 DJ y_c?k; IiL'7ΊU] hu_ky?o'4O\z͵ AeV 5U-(B@m0U mEr_7F v.wo㱟j}nx@@\ tTSMNnc57QǷ4 m;fE5Ѻ IDAT7ķok2(h%Qsi<tnr=U>|o{**lkdQ枺5Ww'.m̹n<=n2|BϞa U a$Wl2Y@s& ]]2'VEh됼|K=JovPS}&sgw[)DY~Ϋ|"tUGyN(:4ž5k|>3a!4{S???Gi%?ai@.>dMMv>꾽'~@y?qr_}Uxc#?CH!'ࣧc٤\ɝE@[gY`p%0BHɧ_}zǷ3j88^q(ZV~ZQ$jLX NK+) c@HMbx0;cwPKzU´J1`f D@t-Klg[BKKUٴT0:p=Wx0 H {[e,wpw:̧iaZN?FeY|Ѡ, U(YLqqDRhȍM# Ĝ*cAUM+"!I `%Ja4^e"ZjBr(*B0麮IؕZheAeiyxtxV6V(9O/^^t0 ˲B׫ᠿG7x~Dgόn+7w6)@Fe.+tCʵ3JŬj)ƳLJt:psY7::6_b09 ʢZj*˓_vGaQSWZ Vb`ڶ5ƥiZ|;4 jNNUUR(ʲHmhU$|;[]‚;G)SW'A)Rj51!3RadCbD%9:k_.NYGUU@R@UU5A hҶFoF(#ǘUcK@h!TCXh+$tc0!*FI(c-\;kH)(j:gZB[EF*lM@OT"44a#"XTUDJ:eZL`L<˙ 0!B1mJheB(cmuj>Lj6 @6&QX> iBV7FDA۶'Pe'R00.++uVyR6 ipmBpݚ.6h<Om^7h$gIk0(=kZc4jM t6m(!lZVkMJAZI+s?jbwSS NOh>iN}s_c?S½|_|kW?i=3k4OoO?k l+ lab3k@cc~Jxfm20e@ 20\A7a='FYsCX[3HRl/E+%zW7e=Ǒ;6{T]{0MDU9u]o,aoJTqӦeM}eE%9Aͼ8foEZ?6,DVLmt[ɰlF䕴 zx1L0k P@:#|x{VѬhp TdPiXBW|g+ &ڢMH|䷬" #wu(O`NDAi<ǂ_I Ə~V?z܏{>(}~P ?aLJM$qߏ;&iޫ,܉9tZ)imU' x ?z?x7lnͳ\jc<*VȪ tII懌в'jf1Up0򤦋A"zbQ -s"+ Q+PGUufwT-yVNYqՌN G c{Z,Ga4yιZÉvnfyfn{,Kse^mnfYct@!H:ZI/"ؓaXV4˫A6v<EV7 y "eIȡe[H"0hHEot/I~'~^xSۭ~q1ٺ 0~d>MdrFR6M#u}w|`wr׿XDwn(ūL\4R"("3Z1bi4MqFTc,6ukuQ!18kDakxBP+$;QUW aQU"<35u9cTAksZ󪺉D1Bq\UUh yZe{ԸT焲R 0uc,q!!~kn 0!hX +ܡ ,=o 0ֹ@pQ#[HxBpkB9k9VHJbmIl֔H;mj0bg$IuU'INW8g 3 9y^2J9BPaEM(ZbQnm~}/Tem<Q#Bg i$* ˛Qr.Vy<7>88Mx~`FhejδQv4RI!)u.mq++/ӟNN08]D> y_c?k; IiL ~?_~%Owo 7/4ol_ M^5V 9u-9hUKA]VXZc!a]4ȗvqVHR8>2;?to\4UpxP<}}6Z;w}SHKwӏY֭WtЕ v"<G٤Ĝd\>|{_Rj9^n;[aOꀀ3=n_酈Div#'aBj#Fw ҙyC ieͶ#u{avr}gRe ~r緻!KƉ(M_Y\lAP{lukFOAպI'~/Ag:LyLZݰwk7Kp>e0̐DՋ`kܥɞ5E Yzx8 8?$T{>@?%=`a'CFjwi:Oۇӏ!O*'˴y~([@>}pG|#p=GFvU~`' Or!<WOcNO球=ɛms1V6Vk'vz|?ҵo|pO~Yk? mTN+j#)-V^<tjœm%|YMrl4ŅY/Utbq Qf.:^{N}Us t3tIYȂ-QMqHsQ{0=\D˰:>\'hp9q&'f?n LECRh\ ޫJ AO0qeK|*qMB, . `#(R0yFQ`߿dԧiY!ϫdk|r(F>a-a$HH`ɸeÙWudЋ BB0@Zk0Q׫YbAu% @MSòlڪ &2Ƴ:wf7=Zd F$A8Nc)CUZVZ@T[e$jgUru]0&1~LF)eJ sE^ê!"1,덍AUJǣ*1`04TE1i8 !$YaNk,p?诋DXkL@4 4{n2z_TMʒ(֭\ȋndYƙ mLsRVyhT 5¢oK1n9猳!A1hA̧{ᅧ_x'_|WK[۝}?"tG/|㫟o^9tkubyᩫ.yT!mD7Z^* _fӀAWzY3󻛽 ? [߹ ?LVMJ it5?gxcs7fiaxto~썷n{~dx?S7nF㝝lA1Y,gpXSjV}஻}?&l-"Q9XJ9vuΙX(F=4uC1&SJƣU01z(Ўy8㡷TFA./N Fz\` ƌr1CkXK0B ˪oz? \Dt7/bqAy_l`+~ۗ_?Mo yB u_P\yH,agYC +*_ 3",DY:= kE A[pYLho/2=[Oe7pDYȍ4Tu( +BɁ=Xt[~pV$ŽMrf-JW3{w)w(bEPXBȘW|֐zͲ&󥹲~;{{xy[/m#7ImJFYν3;-'^ݯ= w0Eڬ&+x:i%]}:Qޔ3תGX*IoNa_ӏ:g,ʟ>w,Mِ܌2}}q0T]ޠT6Fƾt+l1 #?OW}v~sCcv!=vS  'WtZj }0ϓx"Ho|J{}r/wGY}sf)-x:=!g7Ah!;F{x5Ak^Z6(UׇWս+赭gnw7lS"&@?0N5ȫQMNpgf+$gM2HBGI8} IDAT7{U[9#JIIQֽ ~v[YcW/W"[->TA qXU(d0+fڇ^kHLYn/(J9m] dH0T8(JCZk0c"wa Oke<:)AݞSn BXcp.;!) njp** 8Pi"YZ%4/$R4 m.s,@@ 4uY0b8DHPo<&ݝʥ,l9m(%Ir:8N[uUVp4Ƃ5"h0vH+5Ӏ#yfԍLzigIgF匫&LBDpR5vrm41h: ZyO[>b>''[[Y&!HB|p$chH(tJFBhHEU.VEo?xx &8`ƆGZj]e*ˊ0˲VMɴ'ggh1j@in%ф YI$%MaE47@pBA4O V c%&a|||a;fUƺ,[$/ BH]WJ{FAQ4US"[T:AEFtrƵl4uMGeOe !TM; ng4(βR=cu$lwb9WJ !l}}|rgFĭ(d]FqH `>[r.$, l>gʺ&'q(kY7b4"l(ʢ!RJY7YAJTRkkZZW^w~\4zUdyYUV}tt ybpcރ{kT#.l9{^zӍ~/Ѹ$$L2[N:hR2]OprdI*V׶v-v7ZVjX, ~k8<-GozCf勯\=N| W6Z;Þw޿ͷM#c|Yj Ӹ:^O&uӿ}s|0>߈ڡ{JU˿|;p3oujs`#1Cl: W(Q~8[42iu; >TlRf`ij\+DP55¸r*DgNWj|ƅ( צj4@1VJiU%yM59 !LŴuDArΰiD 8 q:kc (A1cY#`gY&bt p9.C5<`CG#)v[ 8Y s ʥPeSt8"51#FTGhRgk@P-UGJJJs$YUL:<:φݞt\e$bBo$[ Jm" 2Zk1FƘi!)$NQaN+{62 iS$UaZbJ2iyaטFUidYj"\v6bUKu%j!ĸ8*t0F1Ak,"X+EH8>֞S`saٸK qAy/6t\סG}W6Xt{U,gom/"пW\ ?kJFѐ[{5B"$%N;t!y 1n ,[m`: ,8k-Kva'H`_,#@W/5Cb3ӻrAkf ;vXbw7zꃅmEasc,V2SHIC ]/uUJap - Yz& ,!8~x\سͣ_|X]8yFr ݍO"P8żiaIBk%! &_3 p!aaՁ>+*FMk24̑m?Od8=O{?Fr̟?Oz?/WX?^O}?{{kRtߏ?ʖ!>?]cAt t@ |r/Ibz<4@.ݎyXN+* Buq!:Z:&k'ijTU%;BZ}|ٸb@?xcLXJ$FvSU(~p5OG<>EgMA9ز!J* @+VJEHccumɪnD'kM㍓,˜*!d^KB`)e+gHѺvF[-հ/c]EƘ$R6R:4β"IZJ,(TJB9"˒Dܺywt:-gTGYQQ ( BLSyUZ몪2GG'v/˲٤ |U7AȋZ(JJUU%xV`LF:Xg\Bnx`J5rXD{ ?|Wݷ_y/oes9YrRUc0cb9O&TLI-%GNwսuViOώ~mNw0ɽA﹛W/֠ۖEΏhkKTMӍ޶\z{k?<*#OFkϜ{iw1wДn^' k_yqwzVI޻Ux/ɟsywG3ݻ~˪<>9(ӟt]UaNk `/`$ {r}gwt?| ]sl\GQ|vvft ÖOh ׫| 9 nm/^{x^*ط^ΦgF#B)E 9gX 1FPVVu⽣- ,)!Zڝp6YFiJBi6âg1 N0Ih4-ʒbZWu*!Iq4Ɩe `uBgc6{Z+ŘphcB!T#8!4BhiZQآ,z`o7M˲"CjZU!L^M"b.F JV$b-7ZQcSzՏ[ցAL4@Aȳnq^"JFIsv bֹՙ[[J)1!TeBD뢐d6BDN< Ѧ)às@E#cFŕRҦ !x# Y5l#\CeN瓲 Iꪶ81!V)c-DBRʴ{QZєeEJl`5cs!fB//m >o\}sA_ٷM7ͯ WE?N_w_˿"UABBlzhdɦ0 |V9̳ef(͸ s)7Wi<l%MJ F< kquy+onk<-Á`t!7RF׷,ƺJ&'+Ze]7\kIcTrO#NFT|6)_ެxs*(R;8ְ߼w7\a6Z@@cavɩ~r73e`\d/n8} ޼ oz/]n07u.RKU$ljR3r1Z0zFHY[>2~*E3jj"?w/s~v'xR!}?KK~*x:3F'V 2dz$ϸO*F'.YE!'@QOG-x :HW+UaqL/oW>mOqg`($=Y%qX)p0ۀjQj'@f<++.pV̳ڣF$W*]!d/wf;;jG1*\N;MVe)}Hµ\e$=Vkm=n˄ e]YE3͑t m "D* . T1K|9(FW~,0pPD¨;JV\jvړd>4B:yEPĘ5PJa,W#Ay[n_,sB)@D5\J qJp6!+k!^.V'p.1;D38K0VM3#HAHa9+^G 8Ehc{0֣^K<k im}YIъNS>Y(\LU]R&<@JJZ&u^Qvg˰wA3hwpYֵ0O: mu8@6XFyn ۈq?<vd£p߹`D(F ,2N“GׯL5Ƙ2Zfbg󱷐8IqPm(0Hgu#"dl=îV,ʭl^Uu$BUKM7(ʲ.׃DfVyGA,Hb̍qbsZG)bL D X.FFAA]CN@)YAX s~0Ewvbz6]gokG''G47o\wQmww>z4}㫯}ܿ}>>>y|xfe!v` "k*Y?;׮]?Mf ƣ0Uo zgg":o]z0B7xT4`.wIVuI(fzVa1a*+gmUY\(0yJi%*8!,%cvI8cE8;, #8i8.0J; Ja<o,gPCy\s`dC5R%^;뭥CPJVA,,es 1偲@HpֆX cAĹ`l'yYwF+6 Ejc eރH f`fu@9Dd9$0&6Rc4i /P^ez1b P9\)EbH0UJTЦƽ1~8lUEGEVJ^y2ro3zp>ltU IVkhS\FXPBnD9`L Or%BJǣu7y$UUxG6FABxՃGvWsKBZ63 Wc=R$:+X RzjMcE#,A@5pY)sJ)qBtzA jUYbN 뺁];P#.`#n<|.l?>9ğ;^^ހò$X[C0+Sz,!XP; &tXF-D<8_ިr^;]`FBlj\b=M՟.fRQĭah*`q+-EBJL!FT6v rI˼h4(Y`'ERiJ IDAT뀇T+oړ$ C l9ؔJmbJ;(Iy虔:G 1x UQ1BM#F:4#k,;i'Q9C87gl堣TWezJy<ϫR@4`.# a4[g\UդvSUI 8(ZKV;ɳRʹX3< ;:1aƘ4M&$Mu9GIȪZi b^gAR* úQBRAX&>y0k AUY5X?Y@4=C"dڭϽtg;w}w1GG'ESb)g!&eYSEU$ n۳\F)I(*:ºcz%8|xTdfӨȋv2VE$+_ca]{o<>}`om{ƹy(woo&óK 3x̏OvzқG/xz,/_)Ľ${׭U+i? o_tue?|+^**U Z_}Z^,Iqp|ō޽^wWj+_}ѣ7n?`77[Ik6aUVdz7/olUUHvu[.<<OYVt;*v/T:gZau5pR%yU8lyPFcF-NV;ֺzA6U$zK+0T:[\z1@;m4D?9Kc5rbBhBc `j_W{ƽp!t6_l`7.>﹠ s Ϋ}/.A[j -.ʚ!Dmw4K0JJnBhk~%r:R^͊N7;Ysc/ɋl .wI${PD9!oUw;w܍k9n" ?0߸R?yilow[ђMAW;ۉOϚ7)NZl2q/=1~ @(zoxm`xޘuS|}r;??t^)W(H )!N[lY#=k`#a\WV5^gh`ؗ%9yv6hs/) Ɨǰ<ڷֵ߸1T$")KGo)(z[Ue qh ؏K~ a2n?\)?ns,V]_>m !xܧ?m5?% X~|n@T@$=cM6yߺGo\~67;,JFԫZJ#*fZ$J4@N& Y6*Be٠/U@zT=v2= AXGӸ7zNvsoFa"fV~.t>\7RFx 55RN/wpHbqy"ox\0،ډ٢R C5agFLn˺3낅N;=AR@OQ%G$ W a9cAd:)Z!ɕJ)?ϕHxgKjnvxiǫw@%d8AԅJӮԹ#`8)L(;!4VaB7r-6yԔFJ-CPV "X dQ;ݯ~Wi0+X8 Br@7֫3aVݰM6We^)ǂ\*CB$I^g³I r] 0AFݣvg.Y988㵹Y#K@^kv\ | \ihz]a++ l]XcVeh0{iVF6LlVV;:=\c맓QaI9=oveMQ4E^?$"'nu^WB<"l4i4FNsι8eDCiX[httU/zt<1 G1mZ)%ACMY;UYz`u35Abj3%8 ׯ7g{gW/0M/BfS!GT0l@DD6 ,2.heYܹsARJʺVa8OVaQXζx!Fr͠uZJ:Updd(FG$/U˃:ۿBzl˷^ɚ|nvja?n?k&m?<"|s~;:X,ٗf%cO*~oMu3>8>^ldžk]65^ 뺓&;`ס/ݾ>^հuV:5 u᩼y+ t xtP8߯e6CZ+?~E["lM׸(DeAmC[ ]H <ɜ[&Qʪ\ yewsi4X !!"j.cb1ƚN,KD)@J()B,!\xc3#cFenuPO:B6>IjE*M" ISWBJwYÄ%aSʬsU`JfyUa!tafu鶓˝ؔ 08aƜ`FGΪs ZAj%`$& p7_5Z9.H\ݿyA {.b\qAy9_.5uŋuwqc:d`I u@Uv{284@Su/׎e]3h$ KChGh(?.YEoGˊ1~|,_L ,ϲ|\9~O.Xx_~1#Qvh6Q${okKvyx>$-6'DҲ5x!986"9y0 3 A<A`dpqFȱ[e-Kl=;{=׼敇ݷlRBa?Uj_U}ϼY^2ӄq| ˧ v}')thVx+ӣO^K4"D-aAgX-rT-@;@7^ٖ _;`_}[6@,<+8Ǟ3z>| | XE H'*nZ1sf3v&qFiGEA0@p_BtyIlYGܯt/Ty3o޺k i;[:|ǁjxßٿ7 n̴ 8 g %o4B›Vo㽿r7O;<BE7xx7JdbBo#5ZX"|p8==[i U \xQ`-&lcS HH =LugdY8ZBo0# jvR룕y]wx綜l E/k@q<k`ӂʢ -ڋ"㦃8UU0JIj~LZ|iHu1(VZԞyo|ִl6 }WuQ4I D0")!U--p0~/Z%0k3A V-&OjҘz=Pv2rG[֑ȍ5+ \.ⱖʛq!e 7]#XWZ!XCM*,%FZ FBhs-.~SGQ52V`!1u!Vcu][Z9 i֨VwZۋ;[竈ݭ:v0Բ &!#UiZRK@uU5񠛝u"Ywa;р![Fˢp]-֜wO,cV\ 6klK8̏WEAU𤿘a6=]E-!jdkeQrf=хz+i]LZ6j t:UU#1欓Kb^j,J%jk71(VBYQTǔb]Lu!PbɘNpyjI\%maLgf]pU `L 1QJN&I yŔ| vd)0GQ4M)%9`ǧgg3osX)fIYVBDҶ7nXQF8m(<ϫxV{'3 A[50<9%cgw ꜷEkA8`;,qxoKn>cW|fq`ld/(ʕáF+=OT keV-k3 !H=YQB)׫5#ij D~~|\F#c\Y.<⭭Wd;z.৞{NW&W~C&@EaB1`<ˆ`dlJqM.`CAX 5cdE1JDc8JjcDk `F8ֆJm 23a)18:& e9O AIܶ#d̦zGRJ! !B"3Q^֏s/|Ŷ6W'_}?^eq|4UIU7gջZwqBZHDm2!!DUUYezM*q$b֔e8#/V/FH8a/-+gbU`^b1)@! p]ON˶M; 9T@R am 2Ƥ1 ZŔsBW]p!0 "ƻH{yaH;3IT 0v&8&ka gU(ѲdI!eOĥ)f>Ugk`qL?"-څIFE3uƍu]ooLm^?up*+QTfT1fIHj0{mr EeQm[c Z^.4M7tG)B"F! k].5"Nvdz쵪Y0#Q BQT`]y9csk h3/~ߺF<}dJ1ƛ2{uY7m4Y {N2+ =Ńto^A7K =A~畕{Ot{]߽oAqO>2z'L("뜵ŽbWj/gg~0*f;Ĉح3y2;e*_ՆIf-Z`?5r|~ͅÞumgD7Nΰ5UmyWn5Eermײַ?L]S7!jju_%v.q'ɾ>C[_Wrk}{ry 㛶 ]B )|yfpЩ*mX"cr SѿkڽN>~PN;@TURYPnk|ԯPe?W#WnZ|oV䩇dY҄?P67Ȣȗl>wd M~toRh_\Ic̔T 3vߖ [WI{>wF- w|u#~-|o7<&]߳7X+wupcз㷟p鷻};C/!6rik"6xj -u z?^r Ek."uQ׽tj^|t|3G'eAXUW^$ruEX |AʪJ&)K A?gg-x…95'QYy`DV346Fn6CZY~6H`ӡqݙA=,ss1@YiQWO>kwfÜ83[  ])Wղp;-%daUU6f\1h^i&y?wrRk'bz7GbʲhL&''ֺ8d' DjE)[ Y[GiVmR$Id[k !]' #g"i*m12]Qjj#ٌk<4@XIC;ce9C~wX4Z.W>xDPfgSQ'릂RHIM9ZzaQVu֥B>I>|'NI;j8MOCFѝsf8I'E0brrr6~(0wWW[E"tc~1qSk.pBlmEi ;/rDe|](`m;J!d{kk6[Ir5:AE.z[Gppx69ZiiWì7(Mrc{7Dq<J"B ,WJN^//:Ksuesi6MGi[,{,:/IqHa)h4Z+xVu;؏Av/ Y!D)E)m:SLH32_K×^;vRFiݻwtxxh/qnO"tk4dZUUm"EYgƔF޹XBW^?TY IDAT>`;o fxEp)!^K%Q'~‡=z׾Oҫi68XLg,)c>xbt~򑃃ãGQ=߻sKnUI@*Vz{jv0LsV"*A_x"/APY QP#) ԺEP#hm9wv)Cl#eYAY4Mψ5Q*W@!t hk >x m`wC5Aֻ ^ n)k`uuVKY  M2EPrԪE0|Pȃ{=|གྷ]%S0β_y=}vF[7OGg_̣O]_luW8B˲l#C!1:gi\lMA!d1` ד~rsQq:k59j3tDXk(R!91t3 3cjU 0J5[ B91q /Zc)Y}ĘP|]'ŌFxr8O!vQd4jI0A(hrAJ"8xٚ\`lF#DꦉӘQZ!DDNi !uaȨF< !`m(ÁJp2uӤYVu!ܶu9q۶!RJuEi>Z&BcLQB19er (QZ);=70]1_7ǀBFVsZLfb!Xwh !ńx8ej0x +yDtpg~0_蝿*y#<+l]ua)eԋNOB9F)đڟGWGt!81 C '`q7pivR.02嗄_.Gwª>ڇxz+޼䲳l%n&48*w#{鐵l@!&I6~ݦg|rΌ0$\J?}],J%OjAQB)(WTCsj|lN _}n'=k xLKĘ]Zs}hWi GGnă>_OOMݺC!"V3d$u aCa4>%@7Soww7U~KAw|koW ~߉t޹m!/x6|!|1on| zH~7߿S ouxިߘ rR  xsFz(<+~/|cb_%H>;>%leP]v Ke'0e5eiaxsP}8o020B zmG=x:]ck[OOWyR,uЖsSzl6hl}S.\yN}yCJq|o/@-^jcPCPG5n\Mbajcյ$rdNFv00 Nn(%Y/E@Z5 D0朋㴕2B'9C%۰%ژzsHs`]I.i8iZ.i8cBU]'qZ%&9 wy0&ղ?v E +#m1f7M#0@u$˲ؼ{ ۮ+eZwPR{mRj%@,NN~?Ѕ^R%]['Y.[|JJ|h%b˲LkjrF0e1qpHi&<0a/dHi1jf{{k6`o .8BҠ)jeSJ8aFAoh2 *c7k^R7m7nL!Y;]ߙZCMcQ; AzGW7sF(JiJ6`B+C3A);IԝҖRBhgA@51TMFzg!9Aq qZ#ymG)#[ky笳2⬃vm! LۮR `#&Mh9>"1;]|O=zuVȢ\$ׯmiO|d_5WO|{V#-Ƅi7f&d+5ZAY1"7V{8/WbBٲ3AFRwEZk1&s5u*}Pkm ~\8Bjm8njkSJ75܃C8k 9UR0@Bژ<Ϥcƅ֊s]X^`(aEWK P \GUYq1e]1JJ)*MSMEeQQT%$MӺn0& !!11Bh>C@YVq8缷ABm;!w.b> !8VJ)#K)}.|x'qݳ!!P=@h(!BJ b +RT D~DtOx_'A7 y/<+җd#? ~o/r`ӻO> u*-yzO Rl#Q;D8$tό^]tGnq\g sU`U4KǠ +s/una1Fm #oAн2]cel%a^Sy1\Q/8On -ǡWE4xh q 'W1h& $.N~]!B[I@Xgu8p[ >CN;Jo}J}[-zXyv! o1x]I7ilި߲7i4~lV*8mB6à=0 8ZU/g3ÿ gO]~aS~K_yRI9kI9NXܸyS|w :@(ܺqZ '|fU؟ BD=\ rrCzTU`)z#tfS@@c[Wе&׏ 4"hYW7"U3GvutQu}LZEEQ攌6PL )oV9l> 㼔9j+q.N:ke\t]DBJiQCȳm[x4J1&h\CLqރ(Bedw!Jj!k~?/Pk,8!8JqQ8|h1BsƠ(:`?ug%RJm'CGj 2Dn5<>>vh Ν;">muiLgHPj*F[j7OXz<-w&ٽB"Ц#r|eEI0XtHѴ޿޾3ÔNnv/ua 1ڽuF$Ao,u«3ԥ{&Pm#< TerV:xvr6荚FmUU{w&w*5aeg(Ψ3Zmۦ钌,l1[azc!l&nYVm]rXeb8gްRZLt'BxcuTU1@&]ĉ1iZJ1vsq!l w]G0#ST6xMycsje},ѪS`"u1\z1cJIa@g8X,wǷab.Dm.պ0U I4ukͲ 1&S¼w^+9 g^) ] O~C_g>G},OK]Oe%nYTx2]tɭ[w8m9F6u}xp\J.^xz>e":Mvvn޼wp*EeJJh.J|<::mch!U `u8 !x?W'?uJg/|ǃUǧݲhYUM}Uh@JEu9gM:F#T+ss FXk0 VQ-09Ő78.Fi ! SJN{)`Bw@6؀ǂڦ2JNB)ΚbRJCm\$J 2bL}hsA !91h1`6 Qk=ʖpt:o;yr|j`/`^W`g5xjd|O>|jO})a s_k8,Rc 0LTZ%")Ztؽj9HCH A!ƣR S83Js ';3Wmk;Ũfo40ʘ@ńIA @(qьqcl>bU ndG0!@6g eg"5}Jfu te%]1u: EZ; ʑ"&o ҺNʢnD! zMBk<BL'WKM_# |vO:Lя>'?:7O^O|rUE;V/g'"Q7v2 Чyrٟx'g+pu];L煫u8AnI؅8IP쌸Tvz ⾞MḇıSy! Ԃp^[(i *g9ٙdC Ҹ8 ^IfzS28r=` 6Uq`H0!Gf5l2+y~~2?1&mޓ\͚(: 1YRyQYWմ7?("pUo X=EߜNO\ GKֱ'E 5;ӈ%lImC)G0ic6nVD?.`ikB)0x/>x}7w 6Rw.^QY-qeW5߻mOnB +6f[A.|0/}@ 8keg[L}}@/?wGk;[LYw/F5\-5%Trk<\.{G =?oƓtD=WYătybGpeE#a( ?;Ø]>kťI4M]rYs\u4@{;Yq`mSW;[3Ql%qm8Yʋ6#uqDDK)2$IԴݺhJ)n)ґ,zYTMMgu^RSL4YPn #Ӫ{ #""'g3`8M([k)!(z: Fs.smʪ0"@YҴ5@ABZ 弪k ,!|.㔒QK)1b-m}PAcL)Z7.[)3_s(%LcUuQHpJ!D:7 e5j9Yܻw/sƘS j$Y|:7o uAueCjq?.a/Ҟݽ۷N,,DQuY~+/vڋdU8 t^NGl:r {tZcgw2PGᨑ-:<Z9gC!@띳A 꺗ڮ3ΏPs>kPVWkuեb޴:Du#')!h{r^iVխ:c̫I<*XDJD11jm`mkB0po?I?̣_~#W<+ey|6H *1h=o„.Kd{X,(cQ$ٲ|=zxn몪8NUv-Dx<ٙ/VѠk׮q%jպ|Gw*qeUSO>/Ý/||杣{w>;|wOz0!Pt.")U0Fd=]Nא88>U+ڛ> IDAT?wʓ4o>wB~Ï׮οxX.eF{1@}hڎ1QebxIm\9BYĭ Ҙ}EY(8MONidŔesllS 2F`8 mb` Vׄb㴇1b7ZSάwI6MXcuaLJ(֔q1biyq甀D9g!RruleNj6usѬGAdZCXƲk"j)΋ztQU9 ;Ed!JX% {ض-Q)Dwzn8"Z1A|ޠj9#6Z@aV_mZ.~[/:$1 b0lc3ꬅ{EVIC/˿?~6/tO@ {>X+k;_L= =WYR<<?'~d/^v5k_{;-DHx>|ӟ~B}6zlp稠Dd"nZ=f9[+׮ԝ#W+WCf{U+p7ཅq?yI:*EƨF+|+g++nNGjWo~k~QaͣmKkgo '5` 1aad&b;k8^Nl 0$1b7HjZH^o\sՃ[6쩪UW}Չ}b0C%c-5ZТ(Zj9tD&':Ec@>`T|yǮqF AaCu4${XZ, <Շ{F]_|l̦+S*J`R@ \~i{$|vȁ33A((QHcQ0*Hd 9L^VlTZ~/xglLx!<ڧH<B,*>S{ƅϼg?A3OXş!@W' Bl@<:끂kァQ5BK`D~u}=''Siv,۝8T+ ֍N/Q!,*vN~Li(N;ܝ;:,-tĉH]`X[Paº^GnN7QոAā:{>v}N * X k? .Ns-9r5"ZS9 3v-Q+;}4yrO}m.s鸜y IX+{$yfi53Ʀq  B;0Z7MsalH {#i[Hx<,,p42)LGcm|\R6EYrVU'7=Uw|}{WBqmuܛ1 xo ,!A(BVI=edU˴UBA1Q<{JV4/9*{{N0bjD#66wF[q H󂇑`QRa[8c1veyR$̋2`YDa^Q1@wV |ȹl># fEn g,(8LiYksB$I! DR`a}0wb-n\xQ8cY0BFx0u"{$ljhP4 T9A;z$eK"=rt3sgϜ;{2w%%/y<ҤT.˵nqcviRO| fY@X^/Ea?,;Rg}h?_|Ro`2$J)i,@u&c`5/DV9BO ʠwU d2- ɴLѤϚZi|-&D1 nb !BRqi"f(gZ[ҒR,Ridm( V( "kA^ c1^ e3PJBJ)u'qB`Ay0jqF3j-8Xk8c{cLI18J81hc1Byaz!ZJ)D:DZTR BČBg_DoKKݣwܲڕ[9yH7x4jy:}ǖ[4nꩥN:,FCDK `B9g {`V*a~1[ɺ2F à-"he !0mJt烴 0  qT r:waM&YkLpN.`@T%BP @{֔R뜱# J2έwx` .v1E+!F`Q."#aJ)(**c d\E6&BQMS/eAXeQ["$-9(dUY1mD<Hm"ƅ`yUUnw:ad<9)(R0ڶ ÐlC(6@ BiPuʲDBQxH)'B(줙oC0utTkҬluQmn˺,NR9b b7^!0&گxf;:'o;n[8W~w7~'*>(~wd_; XDLܬŞ?߸t~ϒfu/|_B@ʿZ_|ܬͧ*M0tm?N.K6{+^uc˱g_0;֧7ۗ=s30M$,VX<=ye 8qBuF@qj?Ʌ&@4Fu:SvB!>ڥq ⓗNZ[u=wVYJbm@HluGz2dzrl iܴi} lMvS,>]RKrO},y{Mw.ilZe, "Jd,pD{B= #M'@[Ge>񸻵[?=*x \~3 /Y*$uEǺ~t:p$ lG?7w݊܊.Vk^+%!4Įa{xiv)DBZO ` >| BOsmAx}f_L_ O72}q8>> |.\'rF_Ȩ> stnB`A9 g@ {o,tSJq}tE}}oyלLwSSİC%ymGŜl>%IwR!3EtᤲaFy+5&뼔+Ekpq߶տ6Vʮfxy=m5ƘvܨkhOzlh4s}/X^aXa^?'3M z-+F~˳Aǯ>%-MlK8jڧ&Z#KI/퉶ImJҎT[Fy !{~]WZLh[kĘ@YcLX)Z!uX4I~bc6|8/ m+(jMDR|:3BJXӴZ.`Dm(z׉FzCoxy׼לtnvx8ƓZ,)c KVY)N3 dw`gc2ڗet\*#s;W=yJ&TudE نQvYG9x~emG9zx8&A0?Ҵ(89޻ͭM< ٜ,/ t,]Z֍yVjI 5Jy0q( e[CBJP^u18'R*g 8"2w"([1Z5{h1Νy%uB 8P,C;%̼4 UƸ1{UZCC*T{1ZFBB2V-l;)%&{6icbm%oVUUrDòm!_~} ~賗?. E^.g[KW+wy{i~N:3.𳟹r}J_xt~7\x'>saWݹaԌ1BZ@-%ʚ;m  R c\4-笩kN9BPlt:|)OS@ eyX8U Al$IZoYbzδR yaQqn1 0,܎19ge9礔ō0Ƥ`q!VA)`-m[lPwff!@+krV !tbEq٪.$PBӎP)v2ٴ!#@XUUictꪢ Thm{B4"JB8.Y<~Q%N8[\߾>诬yn:i$-@)-2˲i$aVemc+uUeaxǯO?{ Sj,@AD6BB^̿\"ܼk7r7rNc݌q3n߬0MվȲq3n͸7f|Dpz3^u[/Kx߰tcۿGO~~-Ke5;9h:nE̖Bp@L"Z;,v9в-( u&,HDf,nIvxhE:_6Z[«l)tu};_^V>>v`~"cy[oaMm H|/ʟU=s}BM<~x*ZO?|s[DPkW̹"(*iPOJQ`$k붕bI Nө+@' jݧVG?kwvH{:FKS'tO}RcE# O_M e%/yȣ%<>qNGvĶލ E)9M}U(g6W!tY2/2}/90p/&_@œzg/bj?#|BA. 'Vjh۵N__\ȇ K\!+`5ֻ̔#Swr*,teQV܆Ε]'HH !W{jTat'4;ӂ0@ތjphplcEQ'Ip1Ƹ,KH*R+c B;c,( \ZkXU֘` !Q(KS)%P9-ZDQ4B1Jj¤rHhBj"qΛ$Zm TJ!1UUA$Ȳm[1QJ!WJAZkι1ua37F6ekTU,(, nj!vC9:u06ԍ Yru(@9!x2ziO*QN)-g1hqu;c`VVxe )V"'i4XRڕG!=#zwgព;~˹/eӉfݦi)uYrP2鬭>,$C(^;(('4 w$g ¼T8Rz^]UR[PY.e |ߛ$g-Dxd4Ieox@ɰ0 M\/p<'GQX%mQm-L((R˶#E0"m63RT: NmEUcBEY%I$LҬ,+B ª^SWi5MS0")P;+P+-aaWR*Kl EQRR`gg7ªn!c]^R NDțq N- R"xzo);)IviQ*!$d4)/ *zB8VJ{gÀi]JX9rew y$ 0 1 &aH&{ӐS%Iqtkڥ4,h8VJe@;ׯGq]g^s}ƚ0hXQ\^7Mca4͉'b޶jqܶP^RnɫɍcG|;4Gm@@o|%6 `dFB$WEG<(JҤ*+m,F$JmcCjh"!|jcZc0A!%Z!k+e €n[BqVwzkR B(0h#ey2i Z&xpά:hM]P09 c@y9g΁4 [!#0!y0N.xlm =q>spE>(YA1; ۙ?uk 4KWv/&LX< u bLژ2i5t~PB MDi^~6c$ݞ ;=ꀂ@[q!fj{]Lx2 TZQÉc d) IDAT K␰n!4J[@Bqy11YcP4S`R `1bBF:LiM:0m+4cv] mEֲ%!mn;Y6+rAGmۦYJ<Ƙ(3cm+Zƙ6ZIR!{D!eAU!;ɵC5ɴH)c$IQF7̃ *rmm-/ ZCApE!5B81b̠];9zPR[c,p"hpr0p!{׊珼=[Y o2aɯ̏ؿ?'ڙֻIrKhrJy{vFoc9M]\|=y%{YDf_=m94WE4}ɳ7>|K8 V?O~ÏM_̃>^'έ/_f=~aŏ?GS[_oTw{GO/?6ۿ%/`{C? \~|;swvK'Nn/f+ROo~I~2bw~Kz8sK_>o20 dwo_%eݏ珫>B=xگ{?sr{SE-<LBXYD"؊RСAuҕa[)E{E%=vPz幭I)_ޅw_FDpBU9qϩX=O\^wʠZ=\o0vb/գ;r'YM28+ֻebU#'j:Gfq0QP>Դzlc#Et(- ceBϚ9\iȅ׸4X%C9wK[̪3kѓc[qAU2V~>>+9HȾ wXM(wϽ)6&,t  Ә3(ρ"|s/tv~@T2~a\JRq |3 :xI` @vp>)AM( y9Kb3_]tzw(+h׍Iu + 0Dx!Ywi&  R(t m R+<"13HsSʨ6C$RBy6` 5@@)Bki؞ѺP>~k{ƥ'o>G)!'Eu o?cWj%0+ɾki,5UsĪ`8Wo=~MU85[ƸsRf` -:QV3 AXiF( s`0f0fe'36b*w6 |4'ipwZ;wTc1)d+6>E !(I c`ƘoP],RJ~r.^bB7FJ e-Xc99|@R@P%8j%LkiW 9m* r#UY7cL !aa*)cZumÀe6VJi *BcR:˲iq]$Fi}VUo[ D6J)J& cT4QyνJi! "Bh֐P 轇k!L~͗sR!O/go/{?pz+7?y/o3mG_ٿ0^!X_?ޟ~ϧ'#}0|w_v__der*o߯M껿̳]?8~}ٳڏϽ?k~I+:(/~gI;~z<һ~ozñ_x'wÿ8wyLY7|7z)'`u?o>zv??~~o}u8{7[_`>{o~˱j]+S3;o#{nG'{qKY_Q廾ߎ^o%~|ngoCWґ#zһd|}^JWO[_|?F{~~zƷܳRb7MeȝweG_v`row7{77ݏ]Knsdl2=$jqk,lSBv"}l=vm%YNYExt8 "M1@-hGfR+͘r4*_y r ]]v4ݸt9w+YÖ:v%T'C+Aь^),6L CfC>C%LͷaB"vZA \8t}bitdAKݤ;XwT3cSJxL_Wfg&[ϯGPGvپ;2]Kwp\GټlGh/g}zڐa(o>BL `UHF,'-(sO|}qV"G_T U~g@ПO>k ? |^}{6qq!8|4E][?w|-'Bo*h: Xx])˘4fC\ C1RaL2!,e.JI^w3Ww,,U }Ⱥz2J& &'͛ɴ>~dµN˚dX@n;Ck93~w!u§5 eTxQMfk1&~=n9 Dkim6Bc̢ZB5%@ F &ҦxaeI!H)! [@=Ѽ$8VGh8XZy !2ε!Zgcc=gLJE³m[J޸Lōxg{1e{J5:FA]d= 76uRḎ)qTjubk|.Oд1F.qTWs̆~?)*YA .:da TRNr@$%P׹wx<҇!̒v4q5U묕 \)eڪf6u;06CRʦmq;c9iyy1ߝqu;Z " !BM+I Rt0!ERD 1fǕZbb>Ah%dp2F[UY8(ceSad1 ҭCΙT"D)޵BZ)(,.p;jc(c)E+VQ$Zws1hA[s]RZQƬq %Qm)aP%ĘsEUeX,fRJq!PQD]a Zg1[㬵ZmN շ8wȫn?-oD1:sd, Kӱa*|%kaE)-9C0dZ6Ø{D(0xjeP)!>$p^zE]8o{YvБWW6(OY!d>/Y{/[[۸GEEd6fdIǣѠ70yd2-v4˒+}B.g!i$NDS8oݬ s _M=ϫ~oSJI@)!B` yȍu,$JB.BUeJL4J2YUTEPQ%[ ƸnXetn8y!BnlFTeU URi!6Rr!BhJ0!4`0BjPrBYE뽇#Z+kA!J<JiL c\V /?FСlcPFż~εk^_“W4Rz~GNuz.bfh,ෞ믾me:4oyۿfNJZm+E3, g$ `4*J FXikeGJj!$enڅv"DUZǙsV(夂t`8t|>Q$ CA1!Ҧ,8+nu;ҶiABJb.BcX0A`[h(%1 QeDA0!JcR+h!b良@RYKC%oW"8"!j(/K™sV) ̋"`|20DVUM 97J8Bθ/{mu |/URTʲd,ٖpqi7n0LOML{hfCh06N-7$ْT\^~sOyTXFuZ>}su9'B@'`&JkLi8T"RsdZ֪,ZVBhY`GZqQ ~z=Dr(x*~w+a  X[q h `L@jg6˳z_~}_/}?w]ËA0?yt{~7~ڿo{Fߚ۟|d>O}w_߹O_8ӫm}(wrKts.>+^W`fA|K _|{O^rn?.~/K3oGWO=p}}nk߹/˚wnvO;Y}+7}}g]'vCy<J7?~m}/}#/<~#_s}8W77O|cꉍG~mD9<]]o9xcx?=祯;kKcGlK G~7~؟P0JjlN2%uH{C5Kzv$*iB5aqlC:~ݞH WWl]SCYݰ8 ylik<'&j5\Qzz?w#vױў7Usj{Gi45 YEKYy cIE[qٞ6!}Kڝ s(jic<S-la9O. ,20ʄcq׼lTA_;! 2ˏPW7P^֞{{~'3/_:/ -N6ܠ$bW;c;VX):VtP ÄL1CW2Bӵ$}>N.>}O}m]p9ΙH_ nۓ37]Yk/B`!0s٧/܅x4zSݻ7᧝LZ3Nc`Wם䷿[^+WSi`a)OE6γqn̊bTUj 14P O,ANow\qRa!}ABc(ʞ^Zd42Bf3EQYhaEA%T2Ma׳bbfkR %Ǽ8N*!F| g@XNc%`=MӱUE1g&U1VE;h֛`PZkuJ"=?v%,#ĩzcQ6.@QRs1ct4J Fњ TBk(e4B(%U+)>/A#nIJ6%* /HҴB(nZI5 BP 9Ѧ:D:[V8gœ IDAT:1SmHJ]qHa˼LdЪsZk1V[;c¤PS1Z<8J0Jz;*W6;6%bPbe^1P [ŐJu0D2^;6;=uzu `Ii\^Ʌz+L0,p0/r޽iJsPicL0HGk;(@Ry,4N7aIPFKy$ Ҏb8MB8ZQA^e~௬pH_lL/H1𞥥(J^V#[z= d 6OH#|)e9px~q(*)\žBIyT2XQ˲xUUY)VV ;kr^9YcZvHIrQ(AsN(Řg4~ 16Jp:k&F!Ƙ PPU AE2uY8RxQvsQQ'i1DLF1zG{Ewm5W^4paUe{|o;5hW\y>3v={Kl͕M H1FFg%Q\Ci( Ө,911BBBQY.GsOE",Jme ð?N8Vȅ_eFQ ǵ, Z(}cHj]FJGmD! $GUB!DBUUM΅U5/~yeșN>B8gqDV?O׽_疙=]?y_{ g/4;|ō/9K^LIp{/~?{o~\̵~ӏ>- dK_seox\v N}ޗ-K7qbm}sGԁ{L5s%Wx?c/_ェ-W<v<>Xc l w5O`>|;t3{㛁Mxկ/?b~~?fޮ/|#/EDǷC}䧎+zN^^J};]?t_Z٨{-bev{tF1 `%USeLKǎ3`8׷VkEnEү|;Slᒙr0-50d[%٩a48cyeLHn'1x5߬uS xMIx-ЗD(@NSnNTvekjTŏ.twhkF&yC9luvYeYOHyv(wNFwjCܼiQq߉xZeyż; MMnե>tMCmm ʃ:N- AA.Yf˻7ז/ ziI3};g#/Pjh%5?*K,@օ 9B2 c6JNʧ,ϗ}<~BM_ӷ+ssg&NԳ` } /H!?bI` >}sJPj0Z9JK(B|`_S[=ZgW9pr?$3L7Yb2ݢ0ڭQm3wFB/oj *2 G^J//a ӵsMQYypO3{$Ǐn; FZOjk?[=Yo*E<Լpzx?4J7ZrvW숗6%;ÒpBݥyE,☲h0 M˽XxX5QƣqZ(íFQ.u*f `{q%0,p;aV 1j)(**N)yyRkKZCvasmDŽ({~ʐR)*@)/ `48|q F NH01F*2'8u8J<VUPZ{LSQRLP1b5:gK`ga;wWl2eʡ*N(€Jf B1 Ȣ? gv 1Fa(T4G騟80wfEɸ,;ڽ4OF)0slϽͅAڥ^AwNfҙAКj.X -tZ]9\o6w^>z7εhr?# fhzEt!0!^G)UJ5[IӋZ@.̥{wYBx7$ ik?݌׶~yVlV0qh` 9(҅+JUՎ#dH=b4b=(s*ksR rN[+`!k+!Ri3qZ2ֺIQj5k5@0Zk@h6Bd"KjҔx,0FJK9WU,˘njRH* c0,4JcUQbs:Lka~T&{qb B^pji#?x* ۵Z7,)AغtT8r$P8o[UU@lR aeFIA7E}t%_Hs{7|r`=wM!I8r8kgZ qƅD1Ff`(6B3ga%8HH<CTkI)F-(op dx{'D) : |dSg{IvEse EI0cc*D3Y0 @k=)䮴brb C.p2rvu%d`О=/N.7g+GȔEa9L5ܹ4O[n-gm+_*^=ge&ŹQQ/Y:qvڶ<.-3&`l1 H[)2XZX .:]b8T$iqlUJ~0,)BIK4"|<33SEEAV\$Q:`o}ť>wٟ(]ϞUzyxMDgŽּW>xǡ''o~u}W-ۆN^;^cmmUX۸_]zxvm}7dKvoOϩ8vm?}Exkxӿ7͍7ߊОwuۃZ`N+޶xZ}Ǿwo*hGkG;U>Ʈ hNrnfO Dqs& ,Q|Qhu)ܼG{VU0GNvt)<~av%^G_]|{x)GSTꫦe :FeU7% lʑQ6aWh,g|h, g|/oZc>N1lFM_=l_z%2f)0?}]h]/$_>8bGSW`a#=um^l=Z`xwO=w~i5ƊAqzp:^ C UnaRÒ&3>4 #s3u Ii.pA~q\VѺٿƒ}&OmR}q_qO}Em@9C" qDX+/^/> HQNiִּ7ܶBG.:ozN:2l*TUFnv\Zcg|qn&}e846m+eѥɬƨxw~3_uYGj#*]d"4hCN5[B 0hL׿򍣗ZEx. gW*r6U Ao\|`l x$WNQL^֨7e.}kUgRwgZu2ʸz-X^ںOnD4v?8ALj"Taj1IeCc ՔRgRjpk#Sk1 "B8g6)Y%x"RJ^!DQ3a0BZOTs~n2=N| !JI$-1ccJ % ~;JB*cF4kkkF#3UF)r0D*"˦.lmӳxm-z0Ęjz^@ 0Iݮ&ήbAYV2Q#rOsJi$X\RJ)c&M|M1Vkc!s^a1e21O:U!1sNUJ`cBƘ9(JR1YB𤢰U%D#TosӍˋ#ZMg16/rՑ~ej}׿ك/}]_8%7[3y%O58߼犛Sá=oɷо\ڻ>zxmѯUxj '~bf+z[#[x$`_V?G9 x1t=[s]={1j xڳ:!3f#QNh?vƳ2q¼iVĖvQr:vOEXlƧ;8$'~ҍOujwAګӃ˺kB=m_Y޽Arsckw;_:{N/x&PVn\xQ8xw_*EduX܁G8}kHj^[:Z\HȐ z4Z> :cu:~`5saVSa|b`W]Z.g^ljvª!,O D.Tl`!X.;Vg&bb%`!*:"v 7XgqSx'4OKl>_4O_x  '#qgIqVmHtE8_7~~߻<;)a¦Ha?G{7hL4VZzULK?į;: :4ѕZ`c5퇆˯\5OdYNX(e9NW^ Yf7: mfs3e{fgѿ6 fca8~`l.(a/Cvolӹ m\HnVzMJqv駥̉4@٨rF"DUoֈG<ƙ2 hkk"t;J])\/l, QUY7 v[d:J- pT̷A45.NgAM/;qO;׿鶛bO[WV9Z} qHpq V3p\3Lq}ĥ;>JS3ՕahS=k\峳 `Ԛ㼨^5(;uL\Kvuq`kiwpš)/8Oxmyeaqe1JHzEs!älΜ>UdFA^a!ȲhdYaf x<`/g]wy聇0߱y8y|I[0;t*8vl5!J+'PJ3 $EQBeQj1rVj3q6 8EN hԒ4#wQOD[^0?>eZ_nԅq=F%b~AW$ɲ,Ksah G90J)B he&\XФ+!ZFcB"?uT\KjI"LG;wollbEcA[Sq5%֯5uRUo4,{vXݘH<ٞjEZViL 販7p/rqh3\nlGJ!fRXd.+(ԖGw:o>T68PnU_W_|bWgZVìl!QW^uiUn /kSn[ǽO>N<0Ns!Xn? A|e  ;yAbsh&P6z5ZFr,Yd~~JG|mdhԴ_}pӥ{w'(pK !H#7*ڔgJzjYէ 4ncY~|ȵǝa(3(u~啂$ĤY40q;.lyTfW.O[{Gί糍L@!!܀]:ozM'AҪAJ궞j5:\%j`V {>Ph$JBy&sSsOj^₝ _>M=]oO=OJ^o>g @ $9~,wA80a \ _rs7t預li !D5+JGꧪ,ek=GT M57 GpLԸm`,7xs|c{Aca yi??0mPNllq:aK1ĭIGv*c|ӕ&G}S!. %Zdv Ǖ~CYw2L0U)+hx)fMRiFt[ +0zmhFi**l0v-4OoOX-NhL08  jZ*%e8]W0>J0/bX`'D[U%DEA 8mu7iP93F;gsZ( JY󪪚LYkmX!h9b?fBɄ= /'/x띐!D695E9g'l+;dw\{;gO )UZ.4ZJh4"Zkn)8Pk;g6;CDi: Y (&ʐY>N@5X9VގuL<)DVŅ(!shlI-* V!u#ȴN !|XkR+L1J9q;.1ZcJ'Ť'i#3U!tPBa J1E4V2yk;v޽zAGN.!ffeZYeUL$󶋢FDH5LGz]`c}fsu5ew+̞:t~*-a"zZ|hVs3葵v=wz(fffWQevӕv+IN<6JQZI<)%4UFa2,roN0X*Uދ/\8DApbt.yǑb q1ehjR& <{iGJkHh7ꜫ)M-fEBʪUB%o;_ \= %oϫm_O~)x@0x[?;ϝ@kK=-[Ow__rWlxo/:?zO/څ+;_\yo$BM܊Rkz6YHHu7{[MA}#_ =wqٿ8lt#^mZS`g(i9q'{EXgFo+EW/[~Q5'|=w:g;DMyU5ܜ T}AHqXr8\tn#x*?(T3*;{̖#oDc mh*zv@o7!kWp=_>@Yh^ZMJۧ0\Ȱgl&c_\ԗ:gO^xkN8TP!ͧg`$im3 sR^:LSs."&~xȿtu3'cPGki0+3C/up&4S|ǘ9,T tHi(m& \# 9hB1c[ĺ/7U7_]KU![/6-W,ʎqZc{)yE76^IsBj'vΓ{aZ2c{DE^W3rybZ>YR3oϟY{|';Fë)y-wG'.\8hGm=r{8+{ك8U+>9Bg?{/cv2H}vokY'3-_>78]7 *ɅZ;q._ssg<yXā6𣀹 Ӕb6v^6oup]+^$6avx5Fqk}>[oG$I YVh릳i#Qp!8\-J 3V1#eG!NsM "bE?4 w E.۽nR~fU8=0Z:e *dSLYf,Su%0ѺB)@C(U8u+_[ ঎q5r{brZLB,X>#g,覠!dZg2PaCXُjZdSkZHU*Dp@z{vp1hJGGQq\aGs{UMyKO?sp } ;5_?1p3?'NLã4NWRz4Tdq4UQ1jN;eN? 'm@9q椅w<7K%moWv$v֊vG $NR(vGQE9 Q(! 8QJM&ͭ)Zm 7Gdo]MS;Qw*#v a-F2J FkR :aP !YQj0Rq(%yu]Esj"}-`Bg> =OuVHz>kyhS9[E@'84hrR6au/U@x1&skc' UYltzeQ6\ nExx}XN4x0^[m ̟惵K^][\=<'ZVVdYaV!i(LyD|J0b'O!ddG(JѕݣRIVdU,V4Th ΚN+}Tq[TBi6\r.AmX3atRLH@U{U%ʺ FNE1f1y0+adJ89VF(R1ukJ1@j{+i2QMGEUP!֢THY $ H[i4Zp6˺$Ε&{˚BH0 1X?&L#B 6b|v\Y--eӛ/<q<,Ky9¼nB?hxRIۋl Lf[ÍVK :Jk&i9Ah~hF8)V7Wb>?-?T?:7޺ pxO䯝w{w|Ce}@@סy!7j>_;̿zTw>r/[ׁ["2K_%0ne79>|xo琗?+G)n?GVhļt?\qj-U]V ͤyvwpml}(91;f/\+.* aSko?|de\?ޝ]SHۏYk=_ϖRboɅ=UH>v0OorAOc~0˷nXn_hn|Qk/ƛOc-||`o g/$E=|?#[-XŔ뻺]` KKیs]wb8 %4p섵 !XXK~/޼v;Z4ME+F=7l_ʡ:ݗr,}ѹWՃ_~%ߛzM>%/"ݸ'*tcg!1QM v&r)!u|z]m3⭪m:8<)k̕ ;ɳjG\~V/\1PQѻvpxSOY ~bۇjt|4("/z pL CM hA/fĞE^4rj%9O*[&6p#I$|ƵWe^B<C UyѬu,+BRT ~ FѬAx0&IX) )+,4dlU+SJN/PRsn"Aƈf abئ \XV9JQhqF IDATrWέ1ƕ/R;|8h):L1b5\M`!9g^tZ;2Bg!{8/>p.8{i\дTA`LY `E%1<a UՍ6+ce-NO!v{^eٲ2ٲ⼎Vo~`oɘ&GGoc;KI?J?~|I3އ>[XuYx<*[' >ˌv$U[1jQ診RLvwU>UPdjKßbJ+x|\8Lhяsf<~B-x]kDҀbq+e],SC}BPQu/. `ow?L%x'"`Lu:)`TU>]aż@&iQ4f$GΖyu >+dsAyXc(JZȺ4MWiОIRAy]Wj^r3#,Yet̲$I(%kgy:D4\41Fs~vr;wǭTlyG?{yﭮ#yoo/Ȼ?}oQeV[^'M"`'yh?qk(كEo?һ?]xھ:ě {E#]s~Wѿy_?7[{̇U\.^g7,ҾO^O%Qbyi"o3zkMoMV,'cOvtZ=.+#sg/wK6F'Qݖ{۝W2 Sxo9)TRt{v݀wĀ:|%xwØ(%Ak NQ;Kc۰:?P@C%e eqP !xk^z{9zC1ۗrڽ&?՛ЯџU ?uͯ8d:h^D# Ld58i> #ϋiV\6u/n-'oBjFFW(wm?yEM̱ J't{~ӌ* i•}'=e]/]^v{pq?|n-mO 9!xm=tٍ?~f}ߩb2q[j~Dܺ:;_vp{[];Bt[L"J_|aR40[.nS׵scD#ÍÍth'/$Ib4=88aED|ztS{8ǬxBRX ;gW#1|T!d5ZR7MoX4CR)|PBFPʤԫ"RJ51QJuՃBEimVo"18Ewn:Tv'j&31O[tgwRu ᰮkBHZ,i\4Z/pmC*ś9ߋR,eSm dڪJOO[7vcp}ݹwY1٧/ĭ#;ZHy%%W$Zʴ(.ʲf!s'q1ϔRIH.),"FYPU(yEVq͖.]2 &rl :t٢q JtVވE7ugyK)=CY$Ken\*@]w;!DYWyUOFgϞ>zɤMUusxu 1"l6# zv]UBc[ɑTGG{g,4BUii(666sŢE1ֶ*1!1m4!,*QAge1VeTi:IxEST^CZUykU ;$Y^Pgg:-^Vq@) 14@aYިZ!uE ( Fjubm80yդil*jW_ PJ2NJJ R4Rks! JQ6kj} 眔Pj(JBό6,ϣ( }hϼ7^? niKjxl4,sҩKQuksS.8cI;`Er!JiYWc¨KVHQD\ȢV1Zs,ݞNҴ_dI`Y_t_gDp_#5}Ω{uG/[~?}"U{Sr'߱^$wv:w~[ث>U__0S~9v׿c瓛ˢyS/qߕ)[;ma87AH ?~g|C?n]^h.xE qa@s`ok>/W-O/|j~{?k_~>oZ\[ ?~=[@F- Bnl@cbc ld=ۧI9;BcfX.30Qe,` r&^w9eQ١- q2to33^8z-nx/JBg=#ÞqY7#8ȭeڬStmit; ;O*C)O .ᡣ'7ly8tpM8$"A!R) q,'N"`iʺRSpB*: p@w#uүھ3U^z%\y_r^p.+V@drB쌐h2w3 рYIfcd4D \5әVdzTܞ|KzDn?w)0)ͧݽ\Y=)#oǯ'b@tD}f4gyum<6c¾l! 3I H k}nNr} υB<¸ 3ϴɼP{rg}Я͸l}ՎC-!tV]EA;R>h4IW7ߖ3]itCK*1@a <<:qD]uGVi+],8Q1hG/kPDF32#U+IG ?0VZcF΍R)D0Pi1*@Cvdvo5DY\N-,[B u>YA3OC& /O4.xj6ͦ3-"$ݽj,D6 ׊[)dtˍ`w<Q$p2J!W._fK[V[PijGǼ(ʋ`\faggw8F+(Ǐ/YY(f84oh<:~LrAl1": ,677өngy!HZ-ŒR9G H:n^b'&9yXpQySΣZq4 4\()B;g!L˦?<ܲ.^Ϲc b76C3 Q"1hhT4@4N!MA}/2J#\s{k8is^wuY{{Z'FVi ps{,y1 \q![5X5c:Wp16Z Ji)TV 1:k-L[!( ʲ8ɒ8-bt{=χLqWu픎(F./R{,g<N<I2XKӼjI% Ns] o~)?WXM u?ϺPQїy+?$NӾs,#o4Ǟ)+l]bI)gia)B D3 Xc]DDER"I(J$"ȧ ׋D,Zm; \ fFWO@ tu4d6A[5V9q>pEu{7t4}L\}Ap:.n{r3'>3zE؉}mn~=2;6;[/.O'mWHjOZ > Mk~BW㻚]ph~jKBCA wqlC_ ' "-׆"qX*SY,$xVT*r8 Ye6[־o\_R~pG{VU~dFc 5wipG]Uf?>v :wߩ~Ƭ̆rbq+?}1{ړg"bCg+ wt+E`б#NW4Ţ~L>|A;KZeM&jaStZc8M TaE-u1CK>}n7jӨ4([m$g'n)@Aq8+RԊqO: CRJi=OH0vbaDT՘ϧKK<r<91Ƅ~T)ABaL^fS@`-BVq~R!B֘GPZmBk6I8<[E;C &, ) ɤl*!Zkd{痯.B'[ؚ.,$ !"exgtqӡ̍7]3/펦kV3"g,Lj`)e>}tyy8.8l2/8u;vTYJeE?'ezfViOˤG+y|7Fԅm<88CEE(>ϳ| )Yb`Eh4ipgY! \g)VYjPUvԙ3LW j:ѨTEQXъ|hdQՌ yesc61c8c4H+r@[9 cu`J 4 °""䴁 d1#ן$ -aTY" 5[M7\9بt9,:0ΒVCkU]es4F,"ct6hk{sވ{O#>tIq:uf# dJUiUmܷo4oll.W^yCOZ@\SgPLmcwF=1kvRiJ t0jUt!6'ٿo2( BZ 假 rF8{R#n[_ȒvyvnΧ2}< El>o!!0O(iNZZ[3<ϵ6im݊wY6믴[%:!%\IE)RB9 =e!眬@ܢfMkk9ceYUŘRs& `p>\4M?Pa1BJ !r*8sZ'BPH! ! A9\1i1R|?"i:/*Eqq(]xYv&uW.wv|uho?3ꖗ߶t'>tzľKp~woxoy+y @`S+/,_g00eZFta^WOG掟xK}ϭ#??o"D$?/Wҁ]}k?oo{Ko2ΟWcK~?r%jo:5~ユ7>]_O~ǣE_]oyoqƗh 0Ə1>}+1p"k :ǠŖZSg-FT@m,p֖Nk1Z@XGYZ9I" BTiC+K3Ҝ9C#k̓+AΊ&V:t4Pi pmݤlf$Ӵ@-5V=$!IjoIIyl}ިJ;dJUWa1Xc>ҩaꞻWO+{,Ł}l+VS) vAWE=M51p)zg'{2=gqfBR#ؘ5 #a@-5ƈaXWY`kvo9.^罏/^( Hq&G~,_裟ϋPg#?w>WcEi_ EoEh B/!0+(H)r@JMwX>}9_=Pz3-+Z՝AiKc|,Ia{k>9og*_:'nY6A4vٯ*6Κ8ԉA$G1*&i9[nBkG[6*>mڝzLreUbC<+d$G!Z= k=1tg4iq:/ ϫ(`ImGl,iaYRs"Mn;F &XPՊz:͘s#y@{~Zk˜v!$JB0pZ H+鬥Q(pR0R8Z|@!1!p>'3nިZ B@d] +;4&97L0Br.Zk[AmkRaXg8!l"0`H RC"eF7_|-O1VKmcaz9v$$h %~<}j7Ϸvvl>[^^QJ) JNQʣiͲrd<ڔڝ<)ΓlU:X[Iݕ啍3QN~2HiV,T*:v$lk= pxk/z<"OϦ3,p0YVAJs*l֥0*9Ҕ4ZtBT.,v0JthȜA@LJy1ȍayt[ q҂1߃S!%|Q LuFh hc! @`u3{@hM{ϋ0{p,^yg8@Aah5bA1NJk)X_j?9 T>+桏<0ZҮtap-0^;;t:6h-zkJ}ǻn2M8 N9ӍTIE9z'ORww݈yg^Ud͸ Z=~po:x8Mp^i<+ $9tG)91ktZ%!󽭝fY3 !-~^{{jXuvd]pjGI!2@hA!BO)5!̧azJ5VjcP2bDihve- Z+;WޙM֔cZc,BD0qcg xQÂc A8 B0J(1KTwP;g6w]ӃӺ}ϫk!k!@i(E*9gRF:+ !Akư5gd' U]1F˲j}666 (lylڪ*PA*&A3[hBUB8u9'DvjɈ20d>ZSuLiZeFRnlڢHk " %C9Br4RB0వ@d;!5qo?y9 q~[{x5\^S}g_m/3~osU?5oW[p9vn|;\ '{ƫ~=[kѮWa/6=tM/}omqot(wo/'F(v~+nTOt蒍fţ^V Ѭ;~ />pK]t~]zOjg8@L>5}g1'r:9 kX@M E["q崮+ w GtRo%^nA\=S|?JO9(ZAgy@Zn6-YNLvYRFS͇ӿqk5ذS %G35D?wZ=g}sNLk1U4?hY٘V%Y6&N871Iym*`|!X9c8[jbg^~ϥ>;nE/ /(Gj~ >!YpPqb' FVL/[6y7=}4O -$GO>oΜn❹HY= E6W~xi6۪Dԝ>݁nf^N^c2N!k8zm{pJ1%fE].lv< v߷FGIVi ]-0y$A8ڝd_orRȫF:Ǔ$=&B8fV3/30Ibi1"eYyOβPoe;b(IEQUy!Pk1e݌(q$$-~ƄjIшZeY*UFQPD!: hap֚tal Bh㫵&w!B{[w'vX78PJi3O>4&I,γ7ζvgyȲ\iwgl2;t^~_kdn6(g/dajMF,hti7ijګޱ;zͺ.ӍFckkn85hk]^i^Ob6-(2B\U2ISq՚L&QVeM)3A(5IEQJFI76;<' jz>ٚ;VB/5ybM *E ŘuMF;|WU%rRJ)Xks5D:`g/0xX鿝xu9ļ,*9gqL PdA렰Q@]o`8ĝV*)c[QqKB(dPB4gVGA4'a#8{vee; ÝvVVWݮ m4;[7|?'iY{]cG&LZ98lֈ"mÇ̽++4M)e^ggggyi0NÔZG΋J:Mn]WeM܎k)" |<&12 2.;ۻAcr٥na $i40IVe+n-# y1_ۿy%pgtN9 )s`{cu(@<ۭ,J!Wu.! VUEX?^}mk>j" FPDPj  ۭ /A'TI9 B"J)8 !!DXBv2|m\-֦iMcy/jA)EM)[kC,bQoj6v9aιEbTjp΋XP#SHFl4$h:Q, _J)E1dy]מQF5gneR*Y#ynm4cczQ!!,}'2M1DŽ)#= blw\$&Y^楙b7ZVZD!q^sA-cRb bm4`\cd~b+  u͌A%#PRZ$87tJ)`A/< Ȳ "5!GFMsE:Rqn!#`RBǥJXYTs%$Ƹ+=%%X k9B)ehy8HټCbR%Z}䪃~—?5w?kxK˲ |*A~A:G~Z1>99tե ϟz_5֎<]ٿPټ |\O_>q\~3whwɵ}_+[_z|3;dye z_\k~O?%^y/3:x3^§_痜yŅpC;NjMOuwIxbx΋o|oyݙ! pvrd]/)8tsL A J#5ă8]NiZW/7<8+Gg`mFh<ͨG%EmjUj*wܣPe)N؃pEf_C7/Fsr~T1+qcwg{RjdSnl/mˠ@:BmW'w<>!|r9>}E߳9](V9)ǩauG:1YU, zMsSڦp5ɉ[9%`Ԭ!C *A)@' Ⱥ=wMY t  $s<|ϋ Y xcѧxt>kIas߂w25O "uLu[ndR⮄JSuvL\_˕}N▒k~Z!;DW: g޲ıy6UA"c,7n-/pDgPdx1P*)kӍh}ey6>cV|w0l7Z[;C̡(1s!N2/,O#TNƉFRX!H[yQj1, Ҍsg. }!BV(B;j݂y-C(5:5pPZW3aqCEfE3(xʝS [ c!I.}#z/Lrv!8ZJŒy.AKfeUևZ7v[+FEьkl>W h;qDDeYͦ&IQqγ,/<0%EUB)⍭m2<啍3gJÝ]TΒ#*h6ͣG !QU.rumi{kwey)ry%yVQ)]GYsϞNm+X}q: bX,O.|&&CgRNFDǘ#sUU3U. CA^歨1M /8;zFJ[&i!ʒRת%!vքZSAYQ!~:`/ޝM{U =z6{1jq]w@!cH kv뵃nn!L i:O>y~:gQiy.A#֢fP13gNA<4Msa'Cp]^!Zx46Bdwlsch44MAIl6`'TRhD c\EXDA|')c,j) '|ZRC f(f3 Z?psو1TEEٌj9Mi-;a-l6.|2be侯,2},˫,J$IZΌ2s2T{*$˪f ):Dcdى.bJ`mg7ڭ6 M04 #L5  { %%t1)mukM%jhQ%@L4{A8L 2kaJ9pg/?u"sR*:B@ yAc R2תQ̹w,ˢ(UuUUՑ#GΞ=Aպ֌1eiltl&A8â**BjvgA9qȑ'N 5eU1,0 ,sr*QC)c!hAW:+R &@BʚZ MNsSnck!gn,"z<HK@(kFAl1UUA`JasJ*cZ,7DaTsO.nj!EYoJ1Z➗iNj[@QEQM:G ) 6s@]UJy/:< hZ@L(@$IѴB5: 3.E}_ A)‹EXH!!8 (+Z_s2`}=VI} ew֡t۝(Xox A{>&p못㪻ǗCf>?yΗ%oeݣ7>!>nǻ_^zzݏ/# <׏wo.2<@-ܛyꃂ` o5ܓ^H9:K-r\ qs*な糃+ۯ}5d#Ŷ) }lҒ`U5dA$lASUdlQ3Á18xFep{֑[C~}=IЮx-ԙǻM>:7'x#rX^I޷<ՙ-؉D=b||^Ҁ(Lly?[ [C']>\Qgڮɠr8t[L6RMb+YU|9V%f\i\9s9z/ąIοlw,>"6:ZigT* dJ /w9㈇TJPRJqzF+3(*c4{$M =BsT&aZ(-BA@)-cL)+\JyNI ./ Œ*/rߍfsΙ1>`kkkLR1B(,ˌ1s'dF^>q&êq#Ms<56B@0MnWKEk˒lv0 wG#l:&E*Ϗq~]nQ!)X+8Ac}Ѝ7]{RJ8fI^Y-KQw{]B1R5B`>O^U;|0(ڝpx 7;v,,qS'?p`{{s66vz#G}777v4MYJ)Y@ : <+aeYf8qDJN#Z~YU 6F `qBDL|ut"tVUevNYv !Db6۝p6#|?kmiכNV(<s^0 ϋ( p$i6eQpB몒6۞њx<#Č6e~Eљ3gO8tiii2/,"+˲iXIƯ16mL]~ccbbhF:LØZ"ߗJbB V( nja9@(d/X !=&xzֵ}/T F R5c\ !1, 2m Ah/#W#"19ʨ@i8ߋj)E<{!BT)E90F7M!&Pke_SA0ZVen.d]fN=Ixp/2.2.2($o87<62.%˸'оgI;? W<=Iǥ ׁZ04 #`K7ܼn DV֣\jMuXL) I}-- (42"Ig5nxǾ hM ~?nV2.mm-Ѧ>[r%}5>h{v5CoWT~>?B#k3vO''F-i1[ ا]߮7BORWvc zuivHoD}\e7.ּ};ojv7ۖl !@"B' <()acWu |;yyv߽}>G~7T^7HQY d}gx0"PFsVDOu_Ӥn>5Sxg _3_^y'{ٗPG?$=U]A j.b}_oN9kEno\UI(tæLWW|@JՎ^~;wN巎8F>j7oͮ>9pl^X?CpK2?Ycd^^I=Tszӛ|U*#"OzQ@FSjq1Ƭ P밭j !Ԧ11RJP)`B:_.. iRIH @#Fw&F+lh,CA&$Ip #g%Vt  +i/=ĸOW粫Sj7v@N !X]($e/m~/^~sC@( W @o޹V=[ Ҹ((104]:)cM[7MIQҝ$IgE0,˂ dψ#BVt5=?x|ň4-oZao>zѣ,+!EQadι<+c'ǧ!AӔy7dk8By'MVnFLf~(fXi*hPRW%C4]-&[.&iJʤT!)5n7kKYO)y5#Y85dm) L )cA4Ymv-7^ z?ǯ^Y.tXs v׾n/,VʄnʲպlvvI䣏?G| 1B,Kz/VKvi_̗^OIO&|]%D Sƍke]~ k V4(΂iD1ly5|Ͼ9oZX !DZ[&0684FCFVG)tBT]Jvp81AI؛OJ^{heGE&`c5:lD l:8دZ1,Ot\ !z4/ )Zi(rePbo8{{{''གྷJdZ.!{.8EAkFE2!D$Z), cTTp0j:ommA@cﵜU?O{AT2zEQ8բ\UXUK<8H D, U0aSlBkE WEUV,jU+%(1m,Db`1BZ2l)F駵1Κ=?clժjmzt@i )|ߧ6uAQׁG kc$$;&m2˺|.K: !7Zu+f48FXm B j!)Z>Ynp+\ᇀ[k?+\ ?pmڬnП$lo pfYϻ5'е⧿~ލw9ZXjp`~ pZceºQ;zw΍FZ#\#kpQۢ(E& \U9# *kƔ&BgJG>`Zc|?~Z= >:i?$( kZ۝{bor 9=񢽹Ce^ F \zRQC^}d!Rw8 E)kGbΦ;qQ4bz&,B湶ҲN~j"M[Wvz?H\Y;~]-}oU9 nR12빲0f,tN{[保%'tAE^ȲѳL_>:UښWsxe'`u諎觫~_C|1¢ j :Yc1Ί"O׾2~ֲi9@}xvs5{`rXnNhM:oڒۃϋb;Xt9 BwYa뒬VNVx7boω&X͊Fq^KV cK) w)1t3@GyB.:1Vdlz7g%J%19gs2B[kebBbJ!-o1A֦ !|oKH5n^8Ck *&uAuBc,BPkC)qXEۧ`DNwRksvݺ ٟvi Bdu !XSVBp{[_խy]e;A5hJ%FɃO'u^YVi/*"tVoz׮,Yki UɃ BZ ƣ)cctZrCǺ Bhۊ(vwwpX.()ͫTRI0dYi/vY MSwmR몵V~TZ)QcPIi1Cy(4(kf4g6:ӊ>e8`jCa,l5aL8in([gaz FDj0 c !br҃C16]9T`\~up1=O"ӺۦAm|d2ZaLG+6z!F*g&:40 ]" })c4-$ kTɜtUenM[db^,g[uRfxuUv&73?B뿑[J!q2&sQ/8?>><8wpnoo:Ie(=e1 >=> ι& Wյkg D˝s'^bZ'GOn8뚷r8JZ gtмΗ+ BzݝfhMM+o7M^A:JRJv<gYQ$I}F}-q 0* `-Yߺu{YN;{:˳yn Eln|LggOd(` HpUͲ뜃X ֫MDyV`=%ڼ,QZ(xPեx{'=~rB0ƫSPh4MҢ[γAߔhkKΖI =iArXbz4JbPaYWγchBk  1`uZ5ƍѨoAώ&@4y3eӲg?q3|r!즫 BA :kB!S+E e ٝ3:'Z8g cX"jP m/NmpU: m\Vh>7Xf\YuiY?BYSGst0nw˵ű_/v~xQ4[4xdZK4MJH0x̬Q+UsnF6ERoeMPJrc!+,:-1 Dw>~JJA!Tq' /[%a뺗u[րkjmgVRʜsB Jivk0Ľz_ ~|..sJVMZ祓q=٩_}ܛ/D8wK\_jHA& HɬV7\[ZqU9TMq|wk'߬U6jU`o"tXZkzrCK,܍MȈFggeUk_Wg&w| ݉ ߏwl-bx5 IDATnNCw+Q09H ܳvyoi]N 9,t`mRs1dWԺx@{aO{'3Sh_\VÔ(Q(˲$I ժ;yo00Z<9ۭT`^?,86T5D54ј]ҁOREb j mhԙV!+*"/(t9ഐIK)۶zZk!Df;VuM)LM!D8Z`CWU$<AZ2guaAcJZ) $]9Dׁs{}v˶Dv8m NXw&E;[i蟞P @-(:]θ?[{C1!U ,|o޺e~o^{޽{M޼}ѣG嗿r1φ֖r<y{ߞEV\۝M@)~v:lq??ϴilfi쯖$N(Ne1lo]/9ӴקYhYFx6-zdkekIn4T7kM(s9M]G~PUJ42I)$pPotuUU{g!c [WqDJ"N"f<A( 2EV-IS_^l*.m|p-$Zi5@(Sъ0Z\ڣ I@ F! bAƘsXOZAuc*??`%5!!kYgB-"0RJ# Yk Ƙ` A٬(u]#i >;?\y^o1_am$1`ΧQoBu6-|ud1mA0AQlMvtO дѺ?WU0Ʈ+`0hXzSLHC;wNW󃃃nooOӶm8TEM(m6xdey6 euTUݴuQ-o[fy60eY)%|?yVQ`b)(s&yacR׵kF<9ISW(R %  eRqYZH`o0RF_eYRK$5Xd!FU(^JUJCBbEZqz8$i<lK뷢=8+`HBіx4g޻WF/ @5<8[~dphK=^k=/~[DQAdC:ܨK3^}o*ne9廑R4 hfsE_`C, CNNZh(,-ܶG XCzn-кvO]a_ g:5 ?x} }u{i%/>#@݋tE|J.^Yk(2 Rڿ7߹B;7+/Uy=\ o!୷ғiadʾ?y=YRDrM@,vyss;ۮy >9*Z )U!贸Y^aִ& XRUUHX5%ð*d>Di!D*Q14MgH)$mR2u J i+X.շ;iʲSQX2V! FiM!ϳr\KC> <'c}-v/9wɜ ϫ_|Bhă7UݖO׿tp &4خMVT:)q[mjoM|~LMfw覨F9Q-s \6S IO^\ttf2 Bxi<~(Qy-$1IZ.{i\|>a@)eZCg݃{vSB|>EQ=~]0 zee͕hcUYCnܸ5<g5E5i+єpmzoNۃQa\o<ꪤM@K)+4].ºn)1@ heA7˦JREa,Ȳ2C8 <,ZHRPƹXiM)+!KApE BBc,sc c $VApqutRsN{ØH!áX;?I Ãr~afkLdO˅e9|'yG˲D^n,(*d"Zuݽ|6Zu=li/{GGG VV4EQirRX{$&ˋ: -͠g:0H)ն &U]QYG0 4֚iTAmjFJ sDQjI<^V7*/6gqD5i|Ghj3۬UW'<)WO/~~ʿɿۿտ_/\tSm#Zʚn+[ewC2@!D^CLsxeZ$QlZgY0 1Yᅍ9u]WUBƔRu]Y%y13sX5n l "A)Vv!Bփ_~ ?X–%ks~{oNh ΓafyB?~]QdqJ@f19=ǫh;Jl8 x:bew0-PUz<ʢQAS^ j:yi\0`!u HCcZ™y@m¥"> y0|Bt׳%*\k*X@Bhֺ6pQEb/ɻ 8.K1z](*C{W|G*û/5P¥0sg_ڭ;o}ţJ7⼼u{D1\eoNUnVj6>~r 펗>}l uc )8??眑(*P^dw( ®*$IZbIh,dynl6HI q||L)]{{Of;hJGY}0 6XeZ7<"͆^oww&!k3Ц9A=ι8΁7>PʴZ+kmӴqBR9$IF#,Fh7c%AJ9J)c2uR~4?r1>*q=^^ ;$Xst'Owe\r嶬jV*1ۀրݿ}rZnN:R֎? &䘱5Sׇ߬,Bq )I,KkfVZqγcGBY{{d2qokb쬎Sh1G1U1Ϟm4AJ6`f]#Hkq:doJ[Fڏ|<OqV69v#:1648y]5V.ϓj3v'jHv潐v]9[/ꣃx4NvZh\FwG< -IƬMe¥iהΛ\ɝYTmW< Ӿo,Luya2继k.p/ w1nnA)~ t=!U ۇJx }knRd"ڽW[Im yB~#O (B1k!{Fx|7f<ucMߝBf&d\!̵3m LXQ@-=kbf(Q8z3e;oZݸz ݻsOv6Q%$B RHk=,cƘJH(jP7]gMwyv " iimR Bx:k%f;ftm<;"xODkC(IsD0{㴔&N d%#$GQ )AWqfCjۮ=>?ٶN|w /nʗ}㽻sz`v{obD+mB9)'㲕!&I/B8"bԅ:1zQv{pHZPx[Uim1423$&Wv[5! J%A a~.ϭ#"ɸB*m*@`8OgGk] U1pLqyϷc5n=̹ ۱77|;YpKzyC>L'~xm5.7oO=mT!Ɠx%d̩1 *aPLXa(A!giٙU?TU~Q;:0?>nNcZb#wrB*2/O5ϲeOt;S2}&,JM&<ؘwWaуz4G}vGHz&_=ɗ}ݛ" KZу-D "Q&lmjNL>T%$R\ i|A3 &ȟP]Ң 0B]y|N,!?).St) a އ e@(` ̜>oo}|OhۺYFfwi0EXU |u3PSgI^n(D;lu9&f;v}/q!9ݔM1#^Pںɳ\ %,)Y-LI#Z#}&;Lwa.;#BAwfz1Q]1k=!X>2i#`wݾ+餬*LsͶN9 @!D p'qR{O9XC Zmkv<e.8BRYr zNytm &l(QyĹ d$(;u#1$uҨmG]S~۶ :! c!0Ƭ1F<˟a= V0<:=1QF:Θun(;ok,!!޽dY|^`BqݶCYa [(fb;r׵m 焐rypp0C)$q:ԍH3c !x<"ﳴJe<@$!%l>Z+-Bώ)8ʲGi~w4 B6rYql8(zoE|]jgY^obkǓqMXk(RZ[#h<{Ew`Hqzveck!|NLEK!vy'SE8K7ߺ4rȲH9JѵiFO8w]KTie8#fk3&ιbptvrg:9??ƹjx%kb }8ӲnB¸Ǐ(?r~xYw&JG9N&Bsm-FfGjG!x<7 np7 np77ؾ7o_[,i ݋fM9Z!$-Wd\!Yve/Pp.%"1n۶ P j{1"ReŸKD) kPTqv]k-FT E9I%1!1,hyG3J$ s·kc J_N*׮˔ tiA|Ià3>,€B7-~7l0JtS-l|-t]wFUNxZ$&ӧOݺu>x0E^Ed+0J1tLP4U=L*9TyEI! Ez[:YD'OgiUU4M9,, )r\L^ VظR|6[c&KB{sѷYV[Ҍ>},x<~6Q竦͒X&cLuZucl3G!>?iGSu{pQw`4nJV\:/bA>nu lL⊜ŘGBºគ1vv1GC@w?9yvttlh>z#~>/j6s]pֺ> !0%cLv0hd/IaG~_귾o}/L~cg,dF uS0 NbHSRyaWJ@cq=8MEJ(JIƨsYkyYc1GR(N(4͚SJ+gvgއ_^nQÍ&? м ۱7܄gp͛pqo??юd[KB' `$LӘF\Т#Qh!j@vM/=p|r޷oܞlM@YL菟jRnȢ7 D巿JG{_3_ttmQ3{;rS& }]}4!rޞt<^H޿~a*ąIb-VՖRO;Pt({R~;;᣺+rOl8zTxLy2;iϙ]x wFRofX-(a-Fy`@!\|=8ᲦKLꕆ ֋WזR~og^~xymWE:^7?yFBu:y8 u%s/y$R}}tA烧cRoM◿pwoOI4C9= ƘV u]0Fڮ}$Uۦ٨Q&jAdXDqZk(if2EZc5n2NiRWBh>W2%VjTޙr[m/zgBGzh^Q|N;)\p֥yuͲ^As<˫ace!DuP)4SJ8)cژY3X݋_3"Edzqhs\=,.7 P'/"'zu\i D0ec |-(,Y()egbQY·ȟsΔ0BQM1-vDqqֵ cLiU|>/rpF )%~GB޹8Jۮkz3%>}u4ij}Z;mtDhkh$I샧VkLFRB#c4}(FL)噐 ʲ.u,#xb-\!!h׵A8˒ Zwo#Z- cHYo-Fm;٣|ެ,M !zʨV3h8 !>Iy!ba^)U{1BD!<0Jp|JsQEs!ʜsA@u_M|coZWPJ<{%{CPs1:c&؇(Z;pccvV[fږs()T(#ιY.Bb<:>>~7ONG"˲nRJ)!DP|zrft:=>9KCqDZv[U]F;BѫC!=cLneu?nΝ;Ve;Jt^eEO7az{tt{p{};.&iAk3gN4# !Z1.{u$M4M%1B)V%d:w!I4OONV5X-ӝzQ1-6֭2 RJ5M+]YJqovuܹ{ٳg|]b,윜ȇJ7m7G<ws|.xNX3``CP]cqiB4Qw{1b?le<=;[׏խѪ]eyRR$Ȫ$IBQ !4텠8kR{tpN^dYjWJeYvA]{YBC0#;^cͦ& np7 np76ⲑ >bgq۶X;ZY$Z5w۲ՎN l譽6fI};e;3ڌ??9&ގŦb!:>ip)8g_þq4B޺;zv WIѳK3GſiFSXhuJ91pZ!hnV(H<ӑ&V~H m>\9t7h4#}Üd;>]{V5ONpo2oN٪6@Fq@dSwYBzEiw"zd(ael3w;1$@tia俤/|=We_za&z|󟓽/l0JLeM*ዃJ&`/漎!~~rfB> dW`7ъN՛ɽ۷4 ۪<Ll8cl7cDebgg?uVQkmZJT2r9mU4XBĹr<m^JkF)!(7MQm!UUFh0OeYY51u9BHӴq#RUE`9D)4Wb*ƔR.kI_\/KOUS=~q@:l/f6AY6t=Y}Gm3NrUfEB1~w6ݞ-vTt^U{8&ώ{{'ώywGsblݲ\5MYjE:#eSJq߫xY9eZLWa4G8l)jM'"jsmJbTۦu"@"xdK֦ 2GRF)S)f`,KRwW*Xl#=44:A0dx,BRJ0alx5\q38?RJ%vp|U7kS|xMY!jid)IPI9X.ИzJh']#(v1`9c yr.?;?8MQƞmŦuĨm7|N&Aj"gye7wUF {rV~0zo'+_k]vfn?]`a@_GaV ȏ_~~u߀J1.&tb"ҵӥ5KB/+d0fPQv;FzM5zP3Bj 9'iJ4mZLIƱӪVvƸZS]z! 8sclA+i@k]ι <0 C+ b۫k@^Ҷ/Wį/|{.WHõ]\˸~ ۼ7_1? /n᥯y7 1 4;o{*Ͷtr)&(RnZ(tFyL{0t5?TU{a &H(eQ};>~bQB p|n~NMk z-uGZ(Nvۦs.y^Ut Zj,{Iݵq(<; L[CR$Q! Bagmq !c"i8gY!N"k=cc&i6t>tPQBm %Lk=FZkθaB.pyKY%Ef x 2ߞ|>{?:=u.IƍQc}/{@(b\X-ϧDIxPN'm8Y.6]oU1I)ƣI_xG^/9!|gk%~)= Ιs^ 5qgi^ۭP*M2#5!4˒$N;(ãlc<^ף8ݔ{{:Z!Q^r?:;ߦY䃓Bfy0BN;J*(tZiޔb^4e#Y$Fh[Y6M3#SAJ5XGԻPxZ,ӱq萤̙a x/b}fuv2)RYR (ͦƄsEmG1Qkh4sTn|"zgJb6mqi[FubBoorFeyaqΆ(#&eUVMCuxJs5w!ade!coFGQsBB77zoGUmcc1RBs qb1⽿qCA+4L_w-:|y:]fqhDz2UF+ţ8Ie/Zݺ!tu='Q(-3Ρ=mHt%h(]&i꼫ۦh cRJm2g41Z7hTxe-&$KXr{v'~0N8J jԄ !Bq/pJ) ~YFE(@l6#^)ű.k $X&IUeX!$ɸi(fEyrvvnMm{8Fh<* L'OM#4H2Is⭋ny{﫺Ĕ`N{u^deqRFk+e4]r37]̣Vm#Oݙ~W+o~7~{w3 tߴ]!P8>3541!H+2zK8B)1B#L) !mGq!xksy7@]/ 4?ߎ}vV&ܟo>S܄{hބ&? м Mp({! `gD*Cbn{m ъ@f–"ݛ^[B#`JGB;X8]pzw{v?xR|' @bv&lnΩWX4؟Zw87kfMl}sg^ @"HpDZeSM!)v~??aXAA.Uuz WdT'sγVɓ_v#?\%eJ<~t Ϭ"[!P+\Feoj7*_t<[k$oǀ"=D0b18"0s(z1~^ת?-9ԅQ{1Q$물@f}#"?\O?y?1>?~ >ȍ&tAIM*7h# ?Jub.0!pZbxAK(zX \pbE]/ _c(?O|2],/q| Ы/]eezr.w^}C(F@B$>Lǽ:N8*cͻo~[oZrjwߺuGȶhB,zo2BT&xf1+mCcU iڮM P6)rav}2&NNf!4K"w#<ύ1.w;ˋ|&i6H5mv;JbQ]'I61e\-% "wA8`GehߍBvY1qOIZ"J)m>Isc\{O.~2TP*Ƅ)q#Xk)0ԇC _V):k𿈙)^"/!E@"1F8@@z0{;&exvi7 ҫ"OROãH8y޵mF[H mZ  EݵF[|Yc[D`el=_um,]AYpkm[K)W xttH(JRJJrv6_BC%G`h6τ6F6Yw&QJ9<3V'I6G ޵~Pi<i 8%UVQ6I䨭E)-C 6>|D6Fb5ڇʲZD=B^ -AQB΅sٌie?-%ei a$Ŕ3,io^N&"Tň}\|C*iv2̈́Ai`-B)gZ"c{'{n*|>9'9w[k',g0dqJ<"#D˜23C/.!(:@ՄT.&M?NbN1za!b0pR鳧\*~X̬17ro/Fgiڷl6ʂS:\JiZI՗evdyVy!鬰YoUpyav&+'iZ!s.ɲQJ߿uvn|1@֛q9_D==>~ J!EE~ݺn8cku1gĐ!,qyV&cHp.DO)F, 1ii y+G#Θ>s|6rLX,|֚٬cͲ3k}"RlVqڶ.wߝTٺQ9'Ʃݽz$"PXq1m km#qI"0%MۤI:t5.MҾmqZS3MW7,Ax铺knVw;w'ݟ'_O?t;akժﺑeL]T~7,X)e|'l.g1|SŜMLq?K# x>{aJbsO/@R6i㨬/L6|/qdo޸޸8qdo^n /w>,h>cLIQTڠ*[4ݎջT?UG{p6en7.[׿~.&ijAV=9ױG}+E<^mm*b.Hmc@*էMMgkhkVj^8Zٓo& ȍ=/[{D-1HD2l޹MW>8Hxs|sF3׍=owN=f:;DL˄ ;sLw95 Zm[ !F@#P `0q 0]Q [=0e7z"y^G#.X0 !b]1$}^pm@#("! /^y+/xB,B$a1cF &F *R{G?~=Dd-M)in6Lۑ[7!F0y:.4umrzx9 v9S ,G'7Ip [B"Ed\{?Q*?1n*8=^ &ּ(•VJ{{]; l_yLuj_6 \u\FģE/P}N'_ St.|^G/}~휙 N{s!ՇB"#ymڍ*eo NyaWy?*([=}V正u*R^]ݽkv Aws"Fd\ڢR:H£O$nraصRZkt#@PvB"岮kraq}MiF1"e yZ9g!"bxœs4jȓ#66+[QÐ%Iu"M10e%Qp ~N!Ǒq1RYQl> j!qZ/ \4E[g1SC0"F >5*DHpM{̯Oe<0DcKlPLTIևG?_|ٮnqkڶK)uS?|pƓgϪS.ҬXTzsQYjo/j޸y(zjpʽ gge߹sM޼yk'O=u0>qynvXzFk,anGe׎(29 R* `.bFDVE|ZVe5,8] C|6 ΪraLʪ !$ ??;rL ]gsRYIJBѪJ]0b}%)d%kvF$>X;C}tIRSwp}m$4rTbF+QAҒ Hq]# c4` zE3$'ߐR0wn׵=&$ͳS 1Ny?}!0˜`b@0)3EBpbd!]vNBXo~tH5E(?%&1D@b:!S =!4H ӭJ}~lND7r?FZɓcFeY&(x;9kB$0t\jc{K cjC,vMflVdTԛ]"+yP„>l]aZE3bUe!9<:z"$BdYv~uS3-c{zz>N鏝\na&iu-1: cBV1&5Q˽CLdXu5ZԐ$˳a)MJ J,vs1uvX!Y~X,WF7o?yfnj>c ֚jVm#@|ޟV|J(9@H5q sǡމc)l6ovJ,IRZB8J11b~cL!p]/ ۦZ`}0 E/~p_{~{72 jv۾]$)4fJ7 !AdPcuUrwo"D|n 73~*ϳ_^!¨5B̳_~^c<9[Yz=͸u^*UdXjc]iwq޸߸=qwq/zt?/{}e~I,"O>L S1 fnc$lduovkNfo }ޚ?:O9|iw2OvbvgDjLG O}s?~tJ: ֋>fSl;ڏ?}26pnV-ǫ4Y8y?krjn,cŝCWӳk3HjkI.`"*XD%l5Hܧ=¦%Ì"aA)˼ER;"G!>\H0WTJRnWr`xD^d׀8+_]q N[^蕄׎yZ|E)@uRzhv_U!X1b1(0ػ@)!ℏх8zSG ޘ/FR*m5><ϟnr:͋=zW>z28d$z?jv%q`W[)}|R;? H^o2'I!p {BҖ`v1Gx B>¥2ycgD4e{]8^E -WF^]i|k_e_~%ٺ/z:kR\<7 q FN[{}Q(y(wgErNkuКBy>V۱eRX؛?~tU^']$\i9c{ʩ ڬQJ.E?\㧋|UT 22: D$]a÷еm(,} Ug(HPwY5tb[Xtz^6"^QA1JB#dL#6s(5ZwrVQ .>cyǘ0qDq!1ƹh0aBn,Rc@XX97qb|(+7zm@pտrz7t~!~"L ]#bXS׾r?ïN[3/?yBr4Z)JiIe2L4˞={ njk7mԇݮ߬zΈs*޳geMf͖s4]YzvzRsb^vC?8f7yB)ˋ{ +'| .= ; 0- 9F":$ B(Sba@5`' St s{W'>YoɲZm{9};|sk!2!c97aelJ20A'}U rH8?;[., !f3眔,k}?ak1!$GuxpP׵s3n$"Iq6yvv6uxNXyD ra\aZ6`ZSJ"Rr{˽g''|gNO|!*քݻuzz0^,޻gVi*Rkfh9qe)eCEUZkm>#Wr>Gy #]!g a5l6v5J$(0{H28VUU0U}߅wBm̬;YcRv}(se^β/oo}~_}_yG{9;r9 !zkii"sҢW?ozrbm+8_pޏR/W ^k;+/cqWwe^vU"xO_:ڬ !8oo7~7~/qwOn."ϜsJŢҟK<ې 4mZJƨm' "-6]B=ʳO{ܻU~tf_vr<+ż]KϲT`ostTy$@?:[>ҵ`ϛ IDAT}"r tڟqt7nڳZ Bp̷*;x([H+@D@w=Zp2˄mc+>MaU@9yː~0W8RLH=1 #TZy!q/&z^b|M[,?y5_(}1D/BE4νd/mZ]n~dЗ(e(;[3^o*3.槫r6sxֻ+Tl[M eo:t|h!IˢM?_F!ad:;خ{c4bUV8^$IJp޶uI]YvzXk1yH1bs OsFq2$BXkY0#O9gM .0!㨲LC$u6EEYZkIysi}υp:hV>Dt1yA@D9Fs>sJsa<լ/<OWbr>'H)EiSW[~on=ٜL߂z=VO袪ZkXƒnG 2Gv&i!|{cL]imXk\׌1y4yz=;_'Sd:"qx"{{{J)uQ}ߺu!;קּyI$™8ٮ\[sBmZkVdٖe.m)}ʪPԵ]DtZeiV-FD)-$LP8Ƙt) FvKT$B2MR`:@HMVUfӷ}rʂ1gh웡}]M4{' jEQUu.om߶>ޘ756 !Af9qe؞E#؍fQR=ӌD=xbQ0.@5y_׾H 3~^<'WsZ|/< ^O\zi^B#.r\L~;7o}pGaAIju]9Y,Į>S&A'@I?}pQ͞"Meg(/niW]ClӾtF3\n,͵ SFq DKE[Ym(KҀPuֹ,M<7u]URf|P`%ca^>4l6>˲k6}7JB|1r eLk"J{wV(ˮ닲#O(ʢr@ZiSkL;36FSD.mq^NKR#plTxp3NmqȊx+w5cLk-D 6PCӶ#RCv(3QbFAZDHF="<"[oHmV8u;l”pB0H'c u29Q;FZ4`)倴Rc1F|zm~ONNF)ˢTRa7ۭ6)"BC 燎.@1)ɆcelЏ1ƄKNc3K:\ŭo޹u/ޜ__PזG eS1g}11BK>0Ƽӱ;囹,!Jȴ2C-*X.뺦Xł`.RQkޕU{1$ZiY5JkS׻{}1giJRe"Achcr\7wC1Yvr97Zɡi*8rZv4In߾f}N Mi:_Tcb,1,sM]b>w&Ir~~>qeYip(ru]UQݿworR@Zׄ1$g,BuH,EyjE"^IjGqad?ݮZ{neM<qeԍV;W3)8vSoZ<>fzoQEGΝ{\.ͨݮ^orHsudYbphvoc9`1hfC0)2ϳvg, 0ƹvhdp8D) cR;3 ^mw<p^ïT#JӇo}~|2KwYZ'O ; խi-gm'}ypU>[۳hCvӯEv.Vr;8o][DjxMi$y؞|`z"GG1D s;"f`DiBDI?9<˧!/*_dō^zL >U/8+^P]V!^xSחSN;'Fu/I b+š\M.^P/n#j ^|#2>| 1!T%/},S Kk]bk 4c"6 "in "FZH[n؋Hod! (#ZpBJg3 ^0\H)%ZZJtДg9 Bp9Si /V0i=U^by"h i \^/O)t3L3~7|r (YSrgmLp]7[8;j]bȓ|quM}1jF#"t~ֶc!iEGi!r|p8pcRj>_>}z9Q+=UggEVxzrm!8c,1F0&v]C0u{kNFx5'zJiNJ(Zq 'r=;yvn7}<qv|{O1&}ߧi Iv]?gY&u+BkMydmƜog=ypbtǟ=}.l1Kb:?[fy/v:<8 wx1M98w󹶆2]IYٶ #0 ]7[,RŜPx?h= C5+WPq%SxVfЕ*(O4Zb3H"WJQʌr,MW{{{>nQDRw~oژfi`1zP4Umۄ޻ݬQE? ?h1===?;TjAv墚nFkHջ|6Cd!!@R S9!cm4UJRJ IRʆa,JK&wkvSTBE- ˼4pœ ,Kڮu! ԃi/2U{_~o}+_}pߺw+)B9mߴa&diF7x1GEf֐T )ZHt BݰA-;$ֈ^ 4.*32##^ě',7{EE'_\?f~/!tUvW!'Ɉ6j\o68^rœ/n3ٮjΗQ$^3:-'g/mwlZ,goq6ܷs9 n}pqp߆/n fW >p/\/~e 99xc^8װY(6짏;'ӇO+ի?m7(~޽{?v9<=}y= ~>wG~Fx;ʢy@Oş>\ϗs>ˀs]*Ü'lMV#brhǡœxtaq4J=|.|y%6;KA9&X{֑u^V=:  ֆLk A`1H(ю62ÀdOCB! ( g^ WFxN^;T:x k[{xH E4}Ρ@{þޅD1\_ "By@^kn/+g_]dxJ& @) !:P{ wN_F\m[P,tu9IeDFg 7(j39V$4AYktzj(&eGBҺG1tʚчs>!)ȿw~7}][_ ˯`Ix _\_s}}Fb.~r1 ޅ^H̟_~"a;ϐPBu"/F(#(91B8q@=!P$a1ux4 }[v.t^݃췿|,7=tjWW޽n9>'wGWmfZi#I*iv wyY09gTFb+1(-Ξ&tW.)&"@uPJ9ңGeinv6oוB CZF0zNh7 Cǀw0M{l>Il$EfwB .8 Q1A +!$IV"^[x#@8q>+ຎ8;CB{JKn$!u|ih4~mn bا? @0❥4SZPf|;ݿ7譇G띋x1=;Ms<9π:gz8NOٗ߾֪#BNN=93(ey5RBFBj5Ãi]ut42s!Ugb6y盏>~ѣ/" IUcp89;{vm7Ѩ:i*G{BٺiI[wiN,g!IƠge IDAT)v[?D*UP#!Q$BuKx#"b2RBzM)aVknKFd$vefI0*SJXYi m25DPԌX|;(ʅBI$u{.$NW*+FYey)ʀ"8 BPBzFR1Ƙ(_kBp:}qq9'ɳgj=YLrp-=B<F=Q<}sC0ƃ{dBIB8'/*B&PB)"B9'pʨ5 bٛHSB #:Dt6xF 1n*N\$$Q$ʲ<::nOgfyw}EA,M6m$]I))eq,./RFy8!Q%j7Lp?Q$O^BluNSkݻSԨweurr4ztA3fv!$Rf"x+2˒(CC8>:Lc)A)Bj}5iJWUӛ~(v>ǓϞ޽s#Lzm6chC$3!d|8#RȮW۟#n}76ܷ  _p\?};++dpn/>1wz܎b,Q*TE}0 9Llo|/|9 ԽDgI9 ÿx~nxfo!e떐Fu/~fiy =E睿j~ڝocY'QlGt[)U4̡ؔHزBݟrNgsw^X]0[\S~c >F; `!pB8 .@`@lؗq$$ZgF{:*^7|Ce9÷xՖD$]*+G#X 鞷ŋr';kM_1t Ezo Xm6e]_~Źɒ=;gOޛ0 b*rd9]R۶q뻡;>s~r9nEQ Ҷgm3Zg QHڶD(TNQMfmrQ+9!Xc L+fI]Qt]O9RZUUEyhTv8]e .x`(޻Q-kuF]30NHP YeŔ񺪒,>MӾ{mL*DF6IS8+ZSuB(SuP{cLyg A?Z˳_Zy"׽!bCP 7HMgWo=-Ϳv}xwtƌ_>}b2b5>˧1zBw1aoãsd|.d2n6Ggϖ9 U:MSc^JTh^-7B,Knʹ`a89jg,5ΙG1Ǧo1ƅ%rŘ퇎rNmJm;&27iC;n<#шLzZڶ@Ji(Μ(&F[q겞LƀQA$i.72}uy)w]'J&"kVpne»ASye^{oD,9u];ct\2F|>_ל2.D"ʠlK4A@ ǑR=cQy9^ RxBZ9 wa-y B/bXIO8L=G;J(8g HYGy 7FY!$At"!ؽ O ;y~<(λ^oSJ9a`ERJQC{ؠblOG_nY{z]^-޹kR}oOgS۪܍meBn;O}{40 Rk5d7s ]ث$ 7%q߼^^?~A+lf|i7B@+,at_{'$._}=gW?=Z֕/zsiۮc$S]lĺ8w2֗=+u_p?u2 ?~*L FҺ??inzyIa~)e9D ! Ð$k1~? (%RF1V uӃ"9xWۦ$6e#1ݻcǫϼ\TWG_+ w~y1$᧏'RJ|ǫba]Ӫ앲_<z9>>R<~xR\\1Z9G(JBHR*$ggQIoq1Thf{^|4M!`]7i}'#ƆQTu`zFFHg786PE? BiFY" R"QSZiB hk(꺎s":+^WWk /[ 4fx8O)6 ! ru1kwV[[m gjYQ>s"LNpUǏ?O>(4˪e,}=^}4FٳGbw{?n<7M3d6jj6RS5b\Tmb3Ōɳ;wnSW=A( jG#g.Gy."ܮãbia7WX^&ӼhL][XDMҼ۾ӻt:ΗW˥vʚ4eX }WjEAqUpR2Y:a ip 9eyP}0OUQvn4zӵѬlRUj8Jxm[)#`{m\LخIRLskBy$qTYvM>F1.1I?=x$KByyٳc@ AYk9#!98-:Ι׏j 1Ɛs G(3}ꝼ00,6{Jb+[NxD({^W)E'LRBw|Y! 滭w<>Sq?`Ad#?J5fkyju^[¢Qr^eӾmE7vD^sa#RD~ud 9e$TiK ؅*R1h 5J.xh[ McN8Fk<ׅrCn_Jo:~~Hy|:\o /|%CJ ~A8D$:`Hy׏eB᫒aW^z슕 v}cd}R  ziR?yʽI;Jf-/$OſdU;kdYi@D5šA 6hRm e%K×apKAp_Q^Ë?VuӒN'|M#괗ѯ `wG'j ^s9!Df{%rX*6=w'DjU %k;캎R ȪwgI\ɲ4V?wj'9 v:].Ÿm"!]yf4=:hm;ƌǏyF;B`?!Ao9ΟΜi v}ߵa]:BBm)T7G{:u(9F @ !MLfR+M\jDB(zPwRdZYZXք: CǃV!0$Y} T1 9Dkc{V'RjC76i#~ͯopSxq;BӈUj8{K-M}}bJ9[^6U"%"vm-TJJCVt !6{!Dv.8I$cL !4Mszpx~駓i> 23*vv>}kʪL2Q̽ʾohՒqƘ22Ξ_n$gP-t9"Z9,G\wRл#ֵ-㙐jNk'dSʛqeyHAGYkRx?'aBdRʦ8ʊ{w=))! 1Cxc>o#jJt:-hdJd^wɿj`;)ؽCZq|/$9{0Z{ƸwR Nן ?|첬kIV(m|!|ߪ{+1"x|ٟR >!bgBծ릎{t֔e[m;8뼷0hF1<~rv8P@mQUm`ux:n<.oedIRW8^a1\DrI8>>jO8l(&I8mݜVM]./ݻ[U夘FruEVjgmWO'SBR*Se<ϭEQM :5YQJEB9w;?hZ='㑱z1-0F}ƹuc)]|VXuʙxPF8p4[-nq[-nG^._wE1tmsw:Ow!u&k](*ISs\M,gx-Cl@ʚS=y{~9괶J.p|8y,fpN#}%~8}0WQqqvgݝ3cHVuٔt6mGͻNj˫MS'jNXrSiYp"q2uy6mzIӬ*wY1!eYU}k HmM㪬8Z.:Һn u~ƚX,>mcz׿wsܓmS:iԽ˳5I Q&Xr!2B胃zs%|BxP5&,6M>bSnUw:>Y\^3EBPPmQuı1fquж*rJ2vyL&OG6M@bGd\b }ONsIx{U%i嬩H?7Ivk149UIg PYLswn륔X(SJAmc.8`e]?۲3dXJO{WO>oWED?k- sA0 RDƝ\u1f` >wC崣H#Ο=yy$bm]:sYO'\Y,xeUiȔ2|qum4e1cjuu0JJ?h7~v$0Y>NgilնIh5;;E铷OOzba(!GUU]Mr0O)((9Ku]+kNn-[2wc[ߴCHbF9DqU5szxtt^{o&Eܷjqxx\" N릖2VSm:!cĄ"ezE)a)W˕1r"bRJsMp&icVi6ܬLDU]1ID~iLfyh sMQΫɳ'IM;6Uۍ,XcABꪖ"Q[bj>,[-nq[-n3l~'M:_[Sdk#aP2K,Huo}vo;ւ>ܶc'2Jjg3.?\"^GUW჻Cb(jeV52Nl_ ѠdC)tg)󦐽nSv0UVs'eoZx R`/ A(# ;5Wikn}ž^4ҟ va3x_YR}@B^>^t' x" H'("!{1o B%H $d4WX^x>|Dİߟ Y4HoiToO;ܘSj%d$R֝0OQ \4q˕'~:9i2;o^7s`x. !\Z\o^C~u / Lx\ZG_݋}Wi1z>{KPb& u604a4'9!ǒpT Q1Q$)c<\rgl:K- 'mE+DB0 aY봵uӕ4&W!^cuۨEaz кh74vY!7N3qdfTc:UV|Hd Jˈ894=S0>༐ i~{@?x<xﲫkb;oL8?D2>z ޗ|Fꬣ]~{f4W0@pU}bDY^j$vU6!>^C#IB7ܡί:4tY Dj pz7G6Ώ#=y>B`ȌuyR;¥02gSًf,bQ,O PUi?κyka(|,K^,Wic,sy|lzΚzQ0g\y>*'w+$B'\.e {Z(E` X> ʠbry bq?U+ֵ='klYTUo/Lz+c<)_כ)BmQ]7T" BaYF؈若2Aﻰޔu1!uf Ĺ1RFe-@t$MC8jc2c-!4ȅ<@\R碷kҚq!JRr!qR9'yġtB@ g?3!7VIcwBJ9_K4S+R;O)1;5 oB 4b.cTR 9ę" vnOZ&9 B:o w3q~&1D*6Y^,ޏ$ "bxt!IiN͡tӳGNOO(PuQY֝}i?O>>;{BLt:w~g:x{quocpuRdG/.V4M/^xYߍBH?㓓0$ӧOl!~ڶ@kmY\^\n۹t4Al\]w|K(aDeQjRpxIw%A)#UUi=Luugz}u}94MRć0ӫ1'O.NNϦvm\j>'ۦ0 3^)X,eYN,6~w7u]G)?6G!fXV}ߍS_U<(eX/4093g|Ջȧa|髋"<>{tuuXXc֫ŹD@_.V#F"f2{ WRk4Ǣ(vͩ, I{]]q. ϜJ%1eZ}HRRao&@7~u7T)ƾgs u?!?xCߊp?gs h&k!WnHT DJ^AgWG3yF0sA^`tUG?e?\'.L9-wYI2vWIǏϳ#}7,.T%WGu |u*;_$P$u0J+n`iGzZU&'GT B$+@sfwV b6W"t2n H$ɨ!UoJ%[_B/R:k7 ?^ n! c8(%o,m {;FB9!b 1!3N(ܑқ_\ѻ^8^dl"([SO~j<ʑ;-1 ,DŽc1bgwJvȫO/>48:iQI&śc+spS: )e'0vWWW_/ _ǽүotfyƛA$Jq8OD;7&d2Ɛ'Rdf89zouBŨ\'2&YZk1H9B e׻v#$Eϋ}Dt'I٪ e)={Y?Eq嘥+ʘ]wEJU^PvzC盽JҨԶH^_ik]E#}' !VQ篪j#};꺞 jqެmx(}bR\쮟"E1M:0M2˲Nt2M!DA)GCDPUEts!T=BJZJ5A1zVuY]וey3.a"@g}߯a/$':T a!BHsTʨC,%ޗcLdo]o[mw oPDd@cL',,w7~yzf =4a ѱqjITٓwdY}g'Mr.b9rɘ<99 xu[5fZfh3%MBvJ۶+7>)ضr !tmw=1c E~(<)!-z?nOʦmk!xϳ,Uu2C%0X%|Y__]QJ)x$M8N{/:y ,a&z{O1v.V j\Zc$JVEw=Z&!ʼJ<χarNy8 RԉrC_dyfC>~$"v}%@Rr躮kXR8EVm'vfi3fRRey[gqֻP IDATIir)crQއypb-˫s)d&Xޚjw= fY>gy9?vJ+.4 QI0 1aʲ$JcufyiƱ, 5"H0&.ί,ø\-Θ4Rd,DBt]'Hm˲tӧOCgWR,ΎyBfO>D 1MiO(ЋKΨz,D\ .>eC?t"n_7礓iWHbD8WLv0Dk( ~=}tNj~f98993!Ƈpp?g~xC w8]; >Ŀ*Ug8Fcsqiw?,R[lK'v$7'R>[GP_!z7>dN ~iȊ],5!:kq[.᳞Kz>wi0v)4wN-#@%GWHر (r"w:&Rbd<8IF|\zG$ ܛ\+Js1B"՜" RJ-~՗VZ<{%2F#ީ wlv{ymuA)M <AAkĿ1X齲<>3yws5$X&Q_G'-|&ax$ p#Ā@)YL8s_ыgBnYw_cǿuo6_Vo7{knn ɹ#!4K^p(4\,Y8#q&EJ':6U}P-JJdT'$R*%~|'= MII1zgc,c b9Pƨ.PB޺l"j(4I7Ǧl 0%3Bmߪ/>,7aC^ؤ:e*MƱ Rhp J` ǶNӄ vvsyq(uqp̓gWW;"!ϋ9WeXl^xuݎDƑ9wm(kFIeLLt}gYΚ$yd躮΅"q&M`&GC$}KsJk,*1i%j&BH R@" cHBR#JPk|!tf#"5o,M"Vk޹$QZ˫Z ֫un2RZKaxɫW/W.MӢ( l$j|2idGnw㶭iju}U- cۭ)F:/?xy8EQxݧOgmy&kk5D&:zVUuMU.$ͳS乒ʇlXzg\JBiZ XYZ)(2X׽I? ϞuYda\m,㔵MS-bgflb 4VR0jٴ !a]!ulWRomYwyY cq^v&T^ 3pz1}Yι'O1K3h\3^e)$v\ %Mbj,!3c&炙ƧO3)W"8gy!EY7Xa499=oVW`,O8#cׯWWONNi*Jq~C~C_Gq长|9D2NV)qrڟ ;It2$rS/e2'YCHˌ^Bĺ'B(F>~L|aΖй0~Z3w-x-€DLvjUǷ91Bk>ʄHp~tGq%YZ0A#F3E (mD# (u0y qB Cy6s3Up޾&|#l*R\N QG r:{;nh&)#\˖)[(}1o޼R[Ho7/RljgғFM 긁Ϧ65!ʴkJ&deӌPvjZmA~,b!2)*c$H欟-+tsd|i/ʅcn7['o_ nJi2F\?YZЛ*K,2ػO}ᓡ x$֋2>"'٩1Na/WKFXR(K҄1hv^)%(e]>~hGƸu, c4MJJud28f'U|oH)BH$gA QƜqa2Ow>"8: ИfJ*|udRzMy}{=uMiʆ)O?<;Yzt=y؅h_31K~^]lO/OmE5;(8i$ܞvm^k TuӤYݜ^^T'Pw;/1}{Ogy{y+BcR]VU5M3&(>ite"Qs;,k^k׉)Ik3>#aJ+b31p8 )m!2 R "Η-tyj"!Ro˄~o9)`8?L=j "M~NzeTvM+a\xb!}X,#ɟɟ,*xӋK<+aNO&#9g?gn?"tw}X,Zk@ۦlC? ]\o!+mlJ!@]YbD^J5ND}i&n2H $ql_?i3!G=SuvܡPYMe'frR8mpMv]׵w>MiSڶZd(]TnYsmáQRBL>vON?"O/O>ȓY۟^nK:mMc)*F(aXS iDtt7+OS8K9|ՓUF)x3aP GxcCYEDg Mg#@)c !A9?\<xdpjdV-vzpfpMĄ3BЀ_jQSaz1,'ibP1"P$yaFQ}"!=|dz-~W|[mʽol ͩٔ 1RN ň@ DEP^LʪDIL"^|0ef'ﶓ'0t2]z;X:M(!fЌz$ Z$9w4圷MK('Iud""@'ȅֺqq T^.+8M1\cieE„\; 'ti{u//`i۾5PR))T7yQvxearя_b ;K_|g}m'YG!ՋWrwuUPUY83t~srr<2ͻU:q2[J!q9 B1M3k,,2댔#r.c0*cNIHb78It!4I޻,dyhlvq9/DJ e:G9#@&99wJ)bDqdNgroŇ7w0?!l)!PJC !(0dћo<]??~7?˗~ھGB0Z)p2dE3JCQ:D j2:=i#,jYUNΧqjn09ϟ?_}/8v~WJy;zAFO7# SC01#!L )@ ,F%2D4f`, 1z;R$eՂZ;"cƾEtAN' F*u>$*.4B(! 8(P@ @pA!ė@˚2J)bHpP9 N9!ۄ(# )%s6Ýy."t8gggM5B~4# JϙP$@ݜmRȔ$(1 m aɧ/8,0ś;+ 2$!#=0F9g1Vn%)HP1cqnuȜXG>W6;!xhӓ˫r(OGk(cJ*}e@J)qv]3%)b4rONN(e,fYhg&icLto6XU"/vC20Mgk,Wi`to[c"o~8O?N(IxolE$}Q*ZJێ`,"ɣ3z\.Bb2 1~ov;v$XWͶcZZc80tXUKJ,9K$KA4tCU-^<ٮR:p8$ɋ;/cl\MwyZuv.o6Ϟ?xUU4<φq fiƩjX]gɲt_ ҶmjY׵2Lx(g]U c}4 &a?;;=Mi8g:)eMY]__懿e8M/ӿ研zM(H{x_fp70$o>0Fu>Q~!Mp|!ܯ{hnNPJEi?M{;'w'/v|| Ox);'X-^U^_IʵnB]$EB*'W|))ѹdK5QRGW !T(de7<EBg-ޫJqVR Qv;AwG}_(Kگ{/hv?;[Lв[ N@`7-R*D-(Sٲ{B &8H; !2I(RQ1/q| 37W#8、n/~e6sB`zIXF#w8Ldkz5 KcXH(B[b5=9Uw_D;w͂_M_l;{u#ED9@9Rh`$jIǏ*[v]|;;r`f:c9W2M4iU- ,MMP,82Q8ucxTeq2;tybf]-@)9ޔ1IT*yl9fYvR4>c ׉9 Hf7{>ZBz &i"֎ZY9ڮy'KιLr]]4 F-bQ>Mkmu'zWYcUB1Ӵ,_<_.14IdbD"i^]_WFx<{p8(Z犢p1Ƅ1Baʪd$05$>NӔ$I0*1η,̍1jaȋRz<48|QHsIj1MFp6SSB$q!J !p%co]$!zYs8K)O!{p{;H! AF1ę9eW9mb"H)G.Y%q.R\]]7kksPp~qyEUU9Oi4M}?|ˋ4=cʲR4u@xle^4M !D>˲L IDAT~苲Y1R*!>ˋreЏmӖb`t]ﶫegx) 4`:gaCW&m=eGc&9D~<=Y:nYݎZkƱo4'kjZ.vU228l146(„Fp1v!+ag\hdʇh'iT"OqJ\XGo%l"=0B={{4RlNNN"~:.2J%2J\{/;8J0ga܌jx~ !DK~磷(c81΄E+4o/2Aq( !w#"a )1$_J_4"8rIEvR+d857 @{l{?UYQK)@w77kİ9?n )nٚ{wieu77L4hcP.6V(d:jM/à i n^|?HҴ,/2M[eV>DbdIb>4Ͻ8x8/yspq}HBeoyvqȽ"D Y#܅u޹0 v=!_xHC6stvq[$HU1(! C<80",|vt;?,k{e?;Q_{>Jit|iy">:|RW]FQ_5?Z'S̤W<9-赉1|4@-FNFrS   [b 3_K#uuScBV0DO_bK>OS ܊6Cb&8 /PcpF'j i:YNo<O+B&7 2.G~|tW7d36,0 :ჳ\~U# 7!̊G;Z ,)FM$4H#-8PrD{? &o^ɟ͓4aDByrn㌤K:[DċHj> IhJ sz BQ}o7T0P@6 1r f( Sjج9u?4_}vv \P,bDzNV3ATv]9ZUUU0sfir着̊tZtm1m8c8R&ֺ"e2c,+mLasJ4Ɔ8i9wwbbg~y$ {&tL~1B)"M~/|;_w>R ]3NjEЍjn@F!Ccig3Uy!˲n7jl>Nk]Vw!ϳ6BH)s$I1M,ۦ}n\2BϞ}Ts!ڢ}P6QcL]qvݞw7x|;v-T QJȭ].N4RJ'2L<`B 401ԀFB"TN&:'Fҭ$rKcxw%o|w yoyED @#^_?jf.eB1t2}#҄{Xе%pnY$] r H'SpW@ yg}o}w'^Ep H ė8jed:keֻ#e 0ƆaRbeJ } !e)1ƩZh"8?@^1Q" Q?HWUk_׾A9/_mo%_]jRr qwG?/qv86DdR(H0+]VFOZV NTxOo}Ur<),OkN`U@a@ h{Rm.LL=@@2JPzZV&'hz=>}4'$B;kIwpZxznj{ŧ'- G|nbs^}1GЖCrcy֭|69BG6mXe!"y98ytYRΫbYr 8  fWtYc % Ia͊4n2m6_5av?jk2͹,Xs)0[// u]v]W!$w}mur`ڪ]VXmRƒ4k2d-拶b9+*@* c7%h%8ʹ6MٜB캾Jcs.B4upF}ʙ fIBB* %X)%CHﺪ(0&iPƘċ@Ӯ7EFD3po_7~_%")_T~9M"ApHm3eY]]y Ţi2QJ?zDvmf$Ib"N`j4YV\]fYW&{g:B16|sƐ8r&ҔL!vsx߆LG<D]!՚ I)4Ɠy5jbx|N.@>FOGCYiJI8U._D$ q1FJI !F{ !&kDɐs> ÄsN۶ReѶmU}|6/j6i:gR'i"Ʈ햫աiʲT++r v]y!F21jRIvqv?} yUU,G@ 0"8k/z[z:2I'2ʏ}V2OaT.aFַڬg`~^fbg/YM970tmW9lA !qN(Bs]&*5j>UEN)BDy>|VM>BkR֖sgY޴MaC&[˫KF,k1^Y7phuu]<+?zVU}^Hp{βt:yYd}A ʤ}?8)em$B"nyLdǏ/1aJ6g> cyeE(5;52{STcD'y/Y @ /E%tC}4oֳL˳,ko |!g!\f2;f?lpof㏎GjUEA{tA Hc;HȼϘLKKoGı%;́J,D vC1"@1 D=3 {o-v!{-8|O D OEDJ=-"PB9eq҂&RvF#;E!#L zJ 3(1(%ssxymֈzmz}n=K8nA%E赓@x6Ov"9ˈ57=]$4Fh,QD4G&7#'__u K `x|?k# bӲ IDAT'#H<]ˋ?^·7ƋG^^]`itvˆqHNE|}Nd}Cp1N>p^=pq8A9 |>_-]Zk]<8Iϖβ$B"8ݖ3>e;ƅ&z#L䔀4I""g I|"cb鹀p']}NfɷPl6xI"۶aȒ4x*/_yYͫri̸ň?֤YJUY/֋\YǜaxgQՒFʌPd oD?lVy/..MSuN;EyY=z1s,../z@ugg1mZlW/.$Fy{} !șǀq&2EU0 z> Tr^x'EIM@9ejFy"iJօh#Z |61>ztոn49?O.8C_8oNJyiCqV7yռo:Mr> ]Y(9ci.f*?x%tttz<_f_/_-o{2?ė8̌n$iFCIaɇk}$49qRFB~%Tu !G)ƄEYp"! :* 4Cea  PIo%'L'/"rqBzC#SP夾ES%'Dؽ݇N6H) DF`Rt(F$*(=Lc  #ceDF RJ'ei & ALPkD28eMBӑ 'V6QS{&ov%o]^howXTM8Ѿ#!8}X`t{tϯԷϓ3O{+-)`L` $-(rnm#Ҳ#rcS.a׽ EKH1tCt12b<"xBحx N1)Co@yo%Ķ BD@@q*! @)ad^&z=(g M}t1ٶUXvoBJJg[笥`,Ty=hH\zTy]9d&wN$˗/$q5_(;=ɾYCr۷YD^zxx\GOi 酳v.ñ< "Kx„.(?o\|),+8,^!eBTG8}q B$n<.H|TѱeUHCv{3[z>|oEb2(Z/_PZlvޒW/_ˏ/Ijw*㌏aTm F0JCAZw<0YXv{R1S-R,JެM1"=<H)LΉ$FpQN`%Lk0tԶRgMDt'2F  @JB-RSBBhc,S0019G Ow8M-fz)%PD/im'O}mw+j]aiJt$0Fo])]UyEtè80Mڋݮ(/^VsFaۮ˫WhȤ97ua^<\,70@^Dx3Q$zH~^ˏT^ډD/_)DcezP\K"$Nruhwb+2ż6e!DPĨ{מ$I68nV˶i!g:~Zh*UޣU7%xUKQHmm$o;%Ip@D++2j>j!ov.+Ka;Vu΄ 6ʔkY)\H@2!q0@XPj*!@|D  Cg(!EDH( <0 >T5mo_CƜrՈIuqO$`  MF]`~IiUUaVZ3J2&IuIR*-'sv12"F'V>BZȩ R5<F5H=2C`фk+&<{z.@Gδmy~6,K !I>UMKͱY~2o7Ɣe%!DX׳~9g[o޴,K)a}ߗev<4=UU>ϋmYU1ά1 /_^ ),;1Θ>ҩB{g1fqoKhbeQ !1i<y? l6S(٦뺾獵ZѺ(ˈ@ 'QBc3A>Z[w4ˤpXsu5hcsBx<@Q!W.8 Ҳ(,:,KtJzr%˲l۶j !3fM6h26]^@K[pRB ն:㳧ϴYs!/_]@1l1 I.5>=D.fsƘ A)BL.%}dy!N嫣VJ)Q1cR[TA?{n`_xDr^I|#a^W_l>icw9G08T~H1=yH۰5Y?|ov?\E\@zQtAI WU$oT`0mzWVBWuTP}luL7 D#!؀Iq؇9 B''p`E8Nr̈́!Ӛ睺'5gZ{sIߡ37B|Ǭ{˄ȤL)!lr}4B@d[)eH#tZN$PB JB L goP3@`E@Ivp8B)}㴏#zN\i^xv[űmCDT[/@kٯ [X1 R[c9ЉLB 0J DD*3!`LwRlC qd_oC<~t㗋Ŋ13 X/Jk >z|q=/۶Mil1/9dy*ˢmd$8YEu]Q3JVjȋL3b`&ZS3iggs!ڙP2LiZ)d]FB$,@4zݯl]-Tp̲֫;Rb86Պ #E5;$1` ecqs1]IM3?_Y1W/gm#\\u棟._IbHt암BB)dFpkmb=]Uϴ1,YmdYc"Z#;.`Jd4kCg8YAEaGM)uyǃ 1Z!V 靗2Ɓ0(c%$F>4M15+QpCtRM1$m%iP2.Ӳ }l)Fɘ$3A_( _{Bw㫮Sqhk".˧O^_oCZk)p8 c,tpuu@ >Գ~w!0۶RlY='4ME4iXk9ʲlێ1gVp8Eskk \o˲DĀY4ǖ2}}:]UqlO0$)dR(4nU:Hy_ץ=^e,=hSqjY)2#%}UU*eи/2F#b޹m˲TJ !!%Weu]2H))l\EY82V[TK)8ι늢ZPC#@?9H)" "rg(}D G@(!8?{՛isڏ?$zWsϾڷ_\\^nnl8zu}?ϣ2 ,Wfe4NWb;$س3c#!c a1F'I˲,IR<x?ӿv<x@'i"gMv^\]DNr^'亷sGc c%sXQ6JRi=x Q9$84yu0z7!@C"B&b*Pk^J7xOn wǍV;vLݻ(%w {Yz4nndH ѐ h6C ('xB(e _ʊJ R41!ѽۍ!Nv;$h-o{P[d#|KB8gwvpa{h42FzP]զF`I ""8[rU[܉pȻ[0 ǒe"XVjO.|qZa4YV]])Jt&`ĥ9YWWe^4ah=Wj4ڮYyrQĦyP3]ݡ^V8NƱR$S!x$Q{9/Q f (ily҃RJuYaFYH)bK?URf\^^;ӬvrBLӸZLH8%FdBmۮVfXc _myzv~u^.o^5Md XvߗysNqw}8)&I,?EQxy%RCJjY/C8Mgyĥ%O)pm|l&s{iȅ q1Q2sms`@jF.nwFQ$"nƌ:cRSۛ}%H8"KaBYS7,FYxt/WEŝzKB"qdfkmZ88/ 1ߵP84εAeK D.iҏ6xs.YE:],7gst@"uݱ{?M*I25۟0ιsH=&3zo}0 ф9,>w zw-|9tm~{qg[~|Z'B$owZ=ϳe]7#!./98 $(}+8- uRxUgED!.D8 Ixϯ|K!HzhPF?"JPo4@!d!"c;Qp B83gm>~m[>˒KƘ5n\^__?~8M>4M\P>d[)5sExe9gZ(s0cB$j8Lr[JvZͳ/r/^fiz91eSY \f9XT;ʲh9oF:'o{>}ryyC7}UY7me4@YvJ4K4#@Eyi&q(93ͳ1~899.Rmg̬驳v\^\am :gwj{ٙ10,4MvK(mOOTURJJU<BL0 8+bPkR:I)=EQLoGۺw7C?TU===(J:KsB ˲HkyZo6բ "Rj5Y? IDATE^2/q<4m?ʸnQ(mZ&XĜR\as(Hm!@a(Y#k8~O X<(Dc~Ip? ~?>Z]78emoi2Y$`AkJѣ8ΊGtvuΣ&FE=!! a\XyOpDBч\jR"txLʽ;#&s `S af=ߝ$ G {8z!?ő$.%z)KcZ3 A'M 5`=@8(%.&1D3DĔwWGm9QME #աVF'Y\}/ŅZ+P72ehƉ7WYau <kd#Jsz|;)k Hn﫻yy(V5~w 1{B99`$ODB BL)q5mEWRjVi(@ e,NQVkR=v(C%+U[ń(ɬVI{2yOW񋫮֚MGOX\m?ƣ7,Z^Iy 1!dGcR3AW*\PqXVy$QJzVFiB:gh؛Yg圣<(q !B RM  c`O0G|P/R;(g${w2jB#\L<"ܣGD QK -h=4 Aǻݮ( BHy4Mn| vfTe9C0Ͳ1VU`Q5M$iuqGtyQB)>8Z38I}c eY]ׄ,Ge(4MġɃoRtMe)cTsZ-q\VB q1IF !3 sG&GQ1ZK)Ƙ$M9cZn!eY5m[ csa}SqYzcOȭWRDive]iix !:8ι<{EC?đb1cᠭqy??w\ 1fQ1s6YM YT>y|2+}qS7(^p@"GOԬ6R*j&sM폗Oo>]Rp㤵A8۶ 1:I(cEY3$zScڶq㛛k]QAP'Rj,I !ЕUQpyJEG14MHn2J;DQbZ9g93q΁"5J 6Ru kib;{0M/b7?N/bʷnb?~4JeZ )PDB OR v 9@P H ĻwXp%4Fl\VMy6Jq3yyvmw`LaTkl}|~^ *~8.$-H1<~X+7cYMjX52~/x$I]-}vyEyq8,軁zWwyWdE*W_l[bGgW#x3aZ[hgΘi6s)S4Z+1Ϟ=kێ1?4qR ҳs=/^*k!K@d&d7'4fYMeFŢBĦm$eYh`Q,.[Lk缧pizkleΚ(KTiκ*|kd>r$(!YT%3n#$qeg[Spvvr]۬/JPdɣR9}<:?yӷ'SFž2[|-V?ޟeYp;n֋"7;=FG#= <(AEk/a?V< p? 27ǂ~)ga׃N3.a,٣Q WD*W?llQRIVoڣrn%xJ¬+]Ul}Q.!~ .Ђw42])-ဌCOBW  L N%(cg(A.faa[$ՆR@ۜvf].8BT$rJ\vןm67&IdzB@jبhQc}SɄG#ELdejMNx,8q6@äeX?McT,~x 2KWk͹{$H' G<$FŜG$@"2 V A8VUWoo͙o=Z3wû tnw pg.>񼿫w,G{J@1`\ʶm8fD Vo9˔:u,` ;RPqB0(0l0_qBm *!p6=J8k9=QH0d2Ɯ(M0΄sP^E2A2##hnQJ ;o(2Zkһ F .ؠGDdu!i(QyrbG̲lgp)VpZXē$nw2yfuw;m]-0 RYD"{凜3 \͉1-'==>9kURΨo b(4w=09MS$ x U?1)Nc"t#H<"zk(:P'W=8Hce}rt~qjbEb q0u56$0OHdxݮ}]'ژiVۡb9W"z_dKy}s\/"a=YSFF4Uta-fOԲ Cw chf@,()^Pwjͣ^7:m,o9R2/4;EQ۶iivC)8(SC3KV8:n/ш'r+x# s߹Sܿd͋#_zڿWgjmN4M2n ^DGQ:gˋ9[n8*ӣS4P .Bg;H{3*3-hl!MxBKT"]DH,YITT<]ҥ,<[b2OTIu,6\|+qIA3)>xGkD@ԲGBך)>xD#"y;!"(!nwgg}?$I>Bc8m6YUU=ٳgƘyV77$IpR\Fƻi ~eYYυUUm۾BmX,ߙOd IDAT_R*IHk" @p8H))It]',jpnk !ZHY5M1t[$JvբX-0O i*i*rqlY,PG}٦iB%"ńx6ׯ_e1٣,˪( \EeYԡύۃk\!8r,bG km,~Xy,l{})cTk<yn;hONN")c,|ޜg҂sf9l#F#ƪ&#QEBN6o`RFdQo<gx<=z>zH O1V)%: 1Fäs9 KM"b DrO{)ѡK`@/1=FR'wNi)AN PBg8cRcRJ(`)ħF=2$ȁgC'D`Qz]Bw281FY >J{1Hn!(S9<PhdMqQ{/USB `n@L!Bv`HI0_'Ob:hB5fW76&FKqrky] 4}C9DIzX$dĴ䳈im8Y;_H80nW?5_/o-xzrTNS #  y.NWɇճ'˓u(w =i,q+'OOeeQ/U^?y4Jj~ɚZC?>I$7U=$em[uY^_(VٹRj8B.MUJ+X$8!ǩnN"R1]J tߴd[yV\_ݔe6j>kMy.nUYi>lad轵vR:i$n4}]dY$}Mm&I[fy!1vhS8''}~>;n__ߔe)hTFi \k+D$eL)>4cgER&fXk=#fw" biS޵ kK3j"чBi8DA#4w#41yA)y4Ew<ܣZh=q'ǟ<޺&S8@Wt&wz@jF$r+/EnGoٯ_v5>7L]R_e )4o@2$AF z_m?.**c8of!y~5P|fbP|ir8vvwPvG(bcG{`T[dzv!ߕ ;cWu8e3=$DeZfEzO<Ly[Ռ15gJQrA2<6J)n,yP]:ogc1۲EdX B("HO )HDD<F"!H Ϻ5w~j̹ZkocC79JC=zѣf}}z2-C"pֶ]z(I="˲,K@cB0i4e+,q܎\%;30z%f.J8I2B!u0(%qm rN cZ[liu}'a(qypQgZkMD"%"!ػsGd nxޫ(okGikR9TU#>Ɍas($0yvcY`EY@[tXW+)xeeneY}/8jro*c眵3ȵ Qg#ϲ|$NV7H~2 A+śD YׇH7%q 4a̲:4I8BL}smJ"DL}]yy;veI):g9W [T)zu8G֌T{!fOS="oG!%󎐣1VJ9 s~D0DJ:g9!\-înތp;@==s#'۝@nwE#~sύw5h4IK[뺲, R._D00<» !c8"9="9Cd\( p<RpO QuGK)t*LT{bBHOPH!=1 rN$8 .1ex縷yXox1ƜBpFɩu(7F|nX8X>N|Ṽl6k9h2*ZQ~6r6 ]#fbFQ4 C!%2"_8ɤ뻢,"!֫Ǐx7MƘv=iEj>dpuu*M"jt `6 nȟ=lvJh&mygY@p8 !㈘,YVXs{n\wα(>ml?Pc(8NWRj6#0ι$Y &ϳm۪n:2fDI(%8VJf3)VJB"kRZb1?>xhh$JRR`ӌkF)riD,+Gy}}ɸHs*R뛛ȁ1Gip·~+}Tv߷"Ӽ{~_l:)"Y壳__яeG}ONŤO7>~q}"I1ÂChɦpemOoCo ^-G@ 0{@B$D #; G#"f0)ȥ98 a(1r,c1C(#cH0Hx"Cda5 @Hs@d[fvU @)09s#uo=QȐPuu!}G*hf8mYZ<:Di5ҮbGgxts|>Ic?^W0F 0jru~/F1f%rIfٳO''iGY3ĠM)/O<汜LScǼȀю{Ȥ1~yZfS#fY%}ǙRp/NUŒmT*}'\8Sn68Z,G=#ι|vl1gIԵ,IJZMe&I3ǜQJqw?{y%Eִ w;YLPQ$GCfIȔy2/xRR%qQqqZCcI=z7mQ1WA2]g's"Lj__GՁ8Ɗ%y Elm%eYfIccz#"k=O$ą#.8A7ܳZ|0ewY; dԘ-9ٟx?g_џQrvAoAe>ϋڕ|CHu?X 8I6|u]8ƨm8+)JkmLjxyyYUՋϾ)`٬k8ws4͓'O갯%I4-GvDyrέ$ɳLhٖe?8[qLvGt1[m #(Mھ+"jZKιl ._]18D"/bFδbՁ`#G(% $UJ(Qu׺FdYi.w,#ǢPMW{r\Ŭ7< $11Yi9oP%:NeXG9~-M;% =؛/%am~]'O 9ܸ\._)5!<wJ)<;E™Qx>$1)Dr v D8rk$ Vc9;F6Q1FCpfGn3Fao"#bQ:C"[Ml VǬ9BЎƘ‘vaPR 8Lcq\."4m(Hgq3Om]/ r.RZ3jiDL)8m[|Qu4jq|Q]J~XTM㉤RzaRG*"3t1a22Ƃ,np8=8]%7WFPpic担g2ﺎslNNMS#>}6-+ˢ뺺UUMDO< Yu]OR;m1h < =,PO{wwdw6c۟2P`@qFw,a b> ucHK !`A:9b8iDp"s)C=Sg4L"K#E1G0c92ΎOa~/8 C@·' a20J c =; ȸdȘcDZG;[?5$Q}{=ˣCcR}t[驿|SQ<ǻj3e;Ǥ`W1,0Z.ц0(NF= 0ƘnW2pp8Bt\`;1o 31zrֹ|IbϿ_N몖J1ƈ|9dߴl]Q!LtymvlTWuVr*2or&ݗ1+km;%82ڶNj^N&(fvu֔U샥լ$"y{gs8sk;@,/Hp(Trۍz\YcaRUM̗vvd:v}5_̋r?~tzT<2#ılYy|r6,N#N;0rqj=J)_x'B4wCfm[%5cdG;cd2Eám[)ꪜ$k"c(j.I2[cD .hȹ@aQIFJJ( "E9O:7BHcm(rcȅ.Im|F"uDZ(A ,c!\sE $kGs]|oSFԽ"&i٬$vgjGRmjz.8޻Q]&Il,cg⪪֙lrj)n<]fzˋ}#nهVYIuPul:0Y蝉$k>-xZ""JtB%8q8=; bňضmIo[Dt#QWUeI1i;ie̞۶M4,"cE?~4~_,ژqNOOmYNڶ`Q1@ɭw8NVJi=6M3)0L|1xR*~1_}ucd{\.`twgYuQqWiEP)u8$|/ c "w}{~vj\ūeYnK|^id2 F!sy4ɤst۶ q UϲŋB( `,H{@F:cǏw]UU޻4M~UXYjUJfS I]KwqXc$q苲X7yVpɣm85֎Fgyan.Ia4M6d:B2ʲ]?L1==;͋t\gg77S<0|?8;y/ľ?w~w|oX@Pmxg|g8г-#^_7(|W1[=ajrޒ(:1L#x~`ǂGBy 9線j$V\yd[1~ds;@Ls\+Ƙ#bEp@~q0]eZiOEUS 8 $g}g0jHITJٶmQ֘8hYEQWaˡ\5IRZ|t߶R1惛K<1o5\ G $iIG}s?~f߮Gx4O~gY57ţG/_h26mه介Bkt 5XW"m۠DM$9uF('Γ{Gzԏ=l6};rynގȑM?~>ͲbNơG$P%I 6M?X޼^M˗]`)۴Ug/_|6)^^Ία %Qm?da}Si7V4>9>B!#5?ɮ^ړe)جJ¾LNA ~Z}vnC5;NHJ9wyIޭunD>`Dtkz;N4Iw.¡Èy|~B {E)rEA~7;k13bIp̂P3y ~$)-hVr{# Yw uuROGXQ#71lti4UUmv1RADmqbNn( s}xq\8BpDȲTJѶ0 +6r>Ύj5r aD9wqq1ѣGJׯ_s!7Zt: f!hZ3*%4;Yk3pt:$IFJ=R2$L&8٩:\i|n8vySY =hRN֫f;3P*ӧO/_6Vy*<\0 CU^`}l^k< CYu]07m#8:W 0<8R#lv1A0(0EXVQ4M9v{vvG ˏ>xu$"u'hATw}qL;qH,UJ)5qSzo?gf龝>C|Oqz/r1ϼ7Y0DŽAsqM]o;$У&q~6D~>Oi=*%W7Ws|>+~{h[۶yvmϑOtMd-b6fMH)ϛ1X.//aU۶eDt݆ߪ y%m[m8AaN'[nRӢ|UuUHUUő7MERQUeYÐ$0 ϟceX(6 C"(Rf2 !"l p8Y۶294TU8N1it:N.kKđni"u>\ZRJkm1iB罔2(8Zd("Ze'~'<}Sۼn^_JWѨWWk]]w>x駟Me$77}?|'kcsTU${2b0 >#b]7RJk4C?}g׫C< RXŤ}?1P,Pжss(m 2b$Lu0d[=F &eI0v] Hx!'ϔա\mu]u]T'nF^)v>/UQuD5$Ok!E/0R%#vyoip}L}>M2~/..48uYQiZQ  1ȉ1DDĹy*R{{,$EQvv>vba4Z; C4BT/'VyJm>};?zG!ē'O akmE8y^u-{|>gD8t]m(HJ:0Ù<}K)% WFk=q>_0"l0NCϊIE}H!!7? J/GF!~ o/Dպ=~?~gemW_m?P^/}&w?˿}"c$g 9D.zK=Rr￾K};Kmvѝ=||n{x$/x/)|# @ \9cJp)YPDb1Ƹ 91mJTgqv!y).s+UI !cEۄ ޾Ր| !"]noXq|o%? y=CBIѮ??SyL%kNLD~+obbUUuPHHLښ!EJ"CdY`L980d- c9;&[t_8BxG=nUs= Qp;sލl,G-,Qb52Z+phd[FJMUR ,Rf9?Q~mu)sPJ}駳|^.NNfm%bI|r2-Â<1vEQeZU˓k$ε7t:m(^VDTeq'IR:@;R)UWa_Yyדr%pNI z8+r']7[N+{Xa<#SJ9kdeY;  F16n 0 4Mu!I8$);!]}}'O?k?O(5֟f|ӵ4#8Fq"ڎsu|6Q5vRV4Iۮ9}!(כrٶm=;_*%뵐7mKσnkn7޺Uer6 !E xE ) Gy) +RR@4yS0)'Uus>{~~N{L`x8sj  F41$Ȣdut{y^qx@Q`#y"V@1Ȩ>x\k-_ zj++L &o>yoXR^.Dc˷n-|ֵF)%1qFZz{@p;G{!w| κņw!xDNQzs3Uq1"e%|Hs!}B4['ļhq(bYKc u/:ֶ~ >\!@Hq9W9T FCUUS!J,Ío3aR;0 RnWG ]Gi&i׵p<i""oLqEYUӾڶNk=͢7CԵ܅`FJei۶G2?$ {.x|ۆ}߇0`Rp۶k\XuӶEWP$iDq?E٬۶}q]ױ'M EI) ϮVWm2ε1mmLY,MSʹ]VJn%H}}/=ebUwqϟ?㽐B`MLa!m~~wit]?2}4 USE|Lt%-\RVDONZ4u8y^`Y|Ϧ;woڟK_K/;ݩ;ۊ~ɏG_n]+gw&w탺뿾p!H7,Cqn"|rCYkȍ5Jr__"a4Jr#gv㾲!RrMAnTE%GN Jė=(!!xsyt!\&S'RاAD‰(u%2t&q9睋>[l48*&!^1f/?)tM c0m$P@b91p^[_d?I6_=[yrZOrjoUDAS~6-G" R< ! A wȌH#]SjRPJB{XqxJ_? J) z Ȯp׊a$izG''ȑ$%!y&/O@vUi]%cRj= CeIxu2n>;sjzqqc#!Ri],q*òۭ̌Bfnk[ P5؏HxTAf1}Ќ`ZLH]7&ΛD̂}߉F'2Gb6K3 (w},E68*ZGW .zQ2|tPG:22D1_ 7i|'G7k'jjwoz_v\kK^ʓ涯|$Sx|)hNk˲x<)XCDeYgёpYCo[HQ%!XkwYZ7-oCjDb&Hx$O1* 1!^^7qmÁsy ZM8gcw.zM@:{K0@"ֱ  c ! !*V?^]] =܃^քmݻW5!0VJ{NV, ܅dɱCWTk(Ec{Zxy=z6Mr˲Nv[R<;}ld]^h{+/{ܐO}kj:ra~¹¹GBi8k.M$WWeYB$t<ں!YN!cA%Iu]EQd޻*ϼ=%|Z#Ǧ+v[,aNOH L&\&qX:ݴa~\FiJQ).!b1]\ΏǺǢDCv~nbx0ڴ}׏Nϝ6}EO$YrLSvv;E*^eEVVeQN`@gBIQuScy HxG #tbFQT ͠.34ͫI^QSNhrP=eyG<i1M$$mΫV 'B9uYc)q &2MRBجHl=~4˸w{^йzsu"&Z DB7ySby,ɔi)yU]]xwsML3cٽs΅`,jj|{}L>TL糋vy2k)d2?MB >8WW/IG$Ijky^4Me ekY5(l6M_Usvvvֶ9ϳTNb' vA|^UfK$(&8Lga_Uh'ٶM&mRJ9zDߏ1o6z>=]Zk|> Jz-$/ ΛPީ2҄V\u?zkZ+,"D&@!ISD.Ic 4>Gu UQ%^Au.Hеb>IPSƨpt}gzCm]yQe)޺a8jRI61k>NӾhV]ֳr(c8OnV/.gt$H3BrJ)@HT)Eȵau:Ish!k,ˊj1ʦ28*=!AJi&Hu) 9\XدkJ*UrfI.(fXѻp.׳:+zdd2 Ŕx.iʑоIyoʲpjyJgU~܄QM6TYLQzs׃HS*tT*\P0JYCg`aP] phIIAH |@Ve jTBMx ^>EI{#ÅOP +xUix͌S,˥C&ZYT~{aԼOU0Dcs`# 뭏oB;Jxo\8 $8gt$F x!yOpA֨ǗxުZB1Iyx {h!@µ8عH@! YG)Zk[ !E{(ftP1:SqSʓd^izqq!5T);q׶=6V1v]UMuїݦi}[k !Q|Rep @6I"˲5,}c5_WMӔzqq\.$QJ0fc|Ǯ,NԱŋٌR> Cv!=85w!g?f6m(e]W`\9YZrRɔ@9g's!feiGu2_uFs)?|82{wO?w>XlyQ#w==;ݓ;N_g?{&w24)s׽ B I  z!*!N'|v#nB_+͏Pߴ$QBz!ͤv\*u^GpMouSu@ :B!JRnkݿ& %@"a)nd(QL5ޜx 5<7&_mc̣l,"2d9jTz0viDGփksitz\uޙSBj,&bja*8O5q6o64Ir,imt¤,jk]YאָdžRUU)B ajz<ϵs&ڶ-y}hH·IYv@:ﺮTk,!$r.JLR~yf dxr16Evu* rY]]&X)Li3y%"XMxt\Y:9lfZ.rm~dim%> ӌCT+tBmՈ儫q0֥inۖR޻D&A\ WY[lV/ ?E&׃7}7}p&-tSIџڙON:MSva|۵ښ">̜ "RG_n/!Í(a{qっI2"Aqb0;+AG>&M#{ PƬ 2Q"``}ZxxSqއhs{~+5e`BB=Bu1#6m{H|)ڢ(BUU!nιfQx>z[۶EēHO*uYV-$\FZ˳_pq+A|۝m;cQqJq} $^/˶mcvoQqcm+AeYn6)81^ku1*1SD~Xc4 IDAT&7}v[?ws_/ӿwuw÷ތʡHĝx /9OmIӔɝ%D""!"!x)pE fQP~~Qzkf`j\nMߌXNu_yH"C'yo}_M}KfDxoV!͐Er=CHR Qc^_ @7f5_~c[KW6 adyO$Ɩ\n}J3rkQ te#w𧾸|ę`־\̍3VPNm}2-ЙVs R?n\ucQbkD&dH!1J TSFc<0F  3H\2F p1FxH 0DQ0*8%!$oL)p~i6%>J$8~ $ MAYgAoxR-J)*AHqL,B y^us<H[l}IBFdu .hqm^Ly?*h}Yt]s<1KR0OSNQ0J/ȲYYD~3?:%NΜD XpE^L0IHuv\{h 1='lƴDl:j(L.LDPd )%TfM$,c#r󓥳yڻg?|c8n$'W/q$n[kn-rya8Yk`FiFK Fyb%<%ZqTLQ+\)ն-c1Q}s΋!y?}lřiڶͦ(iǽcFDMkDD)%hsnfI!c16I !i4M$&궙1ηHNGDTH.L,KsJ@>Ǿi ! H9!>bAL%@R"94Ee' ˲jffl~{uHx}?~GэVuQqqnjr#I8M{gcZ)ƙqB@Dk̵; RcTL Zc4D_Xruurrz8Rk~ZgYu\)%8/B󋋋$IH~:^^^.8DnZqtZuI&k|>Qn???_VBrq۬דtb" ]眛f4퇁R1 v7N ?~pzXggg㱪*y]B$Iǣ 죏>y !n븡k_k;Qj|zEݮ(Ӻn's.s ,@Į,Q0r39]$7PqimgR8==ܰ. SkKmZ!$c,Xc7jEaXl66;5jQ#$g9XіpNwʽ֏ +ݹYxԺ6yyo7Lۦi~9jf~co x)BMN{Uj Fluu+- $gh 9Gpi ^QYC\dM@Dk]<@En# ڀZKWigiL0 !c&|B< 8M,\c1 uf<I4i!/'2i,M5my.4o[9KS: G0I^5rF2&d)JInft&㠵2T]O$Y}zrouux|{-H D Ƽ0M}}ٴ"ΩfOO/CZj9c3)`&f߅ :3Uoo>YoVl>"h5Y|RqG={,ˋj:"fVJàuVVd1`><ܟ情m>?\NRCÊtCz5صjb$U6Dq=vO)r,wήWi5Y,C?\]]M~YM&U ㋊aՓ'Ol6}]-󨹒Rfs,KMӴN;)t?nWUn( ^+w(GK(ʲ Oj}rz^2` (2@8qZUCKNۮ[̖֍fmEVDkK(FK(1,G!qD}${cLXk#뜣$<ͬe9[=o?yPBTԣ~x^4ˎ͡ncn8x>P7]Ӫ{t:ߟfQ6f!ϊ/.,E,ϲw}5rPZT2&M{,p8DͦmlSކzhJ)aٴBmQJeٶm} }OJB"+vHD:z3t^mYVcfY$b޹!2y7(GO/. ɇ狏̬,KH`>($LxeTV$֦u]H +{ }'ϲa,kG$ V$ Qi):ޱ9µ'[w|U{;ގzzW~_iWUoc= ~{{7çm)8V'\.w$MxBXg,p}!}8Y}ʯܯ_"pᬛޙg×?A Bzؕ:KkTBgƋ/0IxEgIYʸ$;}p槾gTϾMJDJ@EIyGͿ{/ \Xv^)OWU@8\ 1f #!X:@Ƭusaq !JQZBB^$so iI/^x`:c,!$~ϟfq<;;Rƌ~vZJ[o=VUD{weY6ce6IcYpL,繐ۮ2ctZuPu?ze12L1HQm9Lu8k1L"a)j$32 h a,x|c!v#mVi^gY|H)eY>{l>3bs.BGηR jX,c* = NFs?HE_]]E(bٜ}s)gyj5j:Hnvb>?ֵ]Yno(&iHtp8E4s.֑Eq뺾w*rt"ϒD8mK92B9iz_t]U}Ugz&>j"ð<)۶b.aubLA!mylWnv;2gmSUEӴBDʨi@ BX&9x}:؜OiUNY9+JZ4$G}b̖Ī(Bq8DȮ`Hx'eelTdi{Cӏ&u}:ɴ`꣕čjUhw鋋g Fi7eu:t?@#'|;1V~ZUBB6\p଍ތf㜋z8_=N#Ç_\\eeZe^>V몪8$Ij}zr}@ J)\4`!0&ZNRʚVb躎bQ|^uRjZ7GJüL֕1Y%6Q{Dfq\h=RWcTJ!9g8Zx1j!ZjvR>~ ?Yb\,׿M(`Q5=V s_LʴeY$4-xsVӺۮLxNYIij}~~o{qtn7uת$竫mA$,O_diIY@ļ=|ߟwG$~\k">[̞={v~rtg0&3Fa Y덹vƾfHOx #e GKTC@YUG "Vc JIֲ*+ j BX9*-e @VRI5EU"}Y}L5@fUUsa Ɣp)iHgi:N0 ]TG;OL(|7Ms:nnn}!c9RJ!Q4kkk|cc2BYT8ٷwo35fȆiF-)e׃Q)cL+'lmm-.{}x2<<ݶ2c/c0pyō[#D1ξﺮ)U Qh3l0 \//ywqe6i\>MVVV'}ټH|ziIIY^wȑp~s.Ȳ,Igi;4ݱ%׺J.kӶ666vUUq8\@)0DuYy) Co:2 U~$͓DGV2Z!Fu]jmfČaF߷kQYaF4~7e)An )eqӕREA)YN1S?<"1?o ߸uTx“/]y+_T2qQ1ߠ=u%<o~^ A'y ~/߻zhu{q ϳuϽ)t7к"+BlBZ+%AF 7 P("&"I r'MC@!p\WCN0z+o7R>^{fygYp;Rf[pPV|uss{cZZvA 75vI㏽6}Z"|"TI1ok5@b   @ظԀ yD,2tJ[㹵` FyسWUE=r6 p%bpA`FQ !RjY`"dxE 0c¸Bo0 H9 Ela'h$D:M )tز}}JôB}2s666TCn{K+n [Ọ/,z}cot֯wc~m/Mr/ܻ~"F>ǖ[k RH^:O{?7X|M3 JYap~=ھܕGB-?\ֵBUI>@@a*HKcnƟeZbjօ@I!!&P, F h%}O4% QA(Vu>:^6yw{|ذ,cEfM $Iʲi6n򄐆-n&nEض94f)M7s-oz86}(*qγ2͛o\m3Zk0(%EYXhTB0 Rh˲\ƽy6ax<,,t+k0卍uB IR`YZ^.--i(];r[RU7 c0Rhs\߫hP" $In]׮뮯///7Qnj1D-B;DHSR[DZ8c˲ 6qY-..fy8N$J)aq$e5rFeYb Giu$aJzג4M!(ҲlLR1#4j,!uYRu[VΥD덍+ ^\gi Hl>:uao4ax>=r?~9f7}ݿMo]ھoEͯ=/־}cD~^K׏o{^7[Z/AW? /_sՋ&͟}s!zvo|~\&~!?,]'~~b߾^+(k{?@ /=-W=忪_޶1sPO7!g_o{d#AQ?Y3.[Py?OϿ!=4{f$_g0=ϼy/C~- p?ګޭ>whԚRRJN0QJaJ!BJJ5!DHI 5V$X!8XQ5k`_jJCJk!;лdI6DX0 8mZ6 5wҽSkiOjv{!H;^hw41BO~ghj` R2D a1kGCR(ڰ6qip,/*,tض@kVSJ#ԶmeQf4!YɚRL:*%0&J&13 hRrdʚWaYy'dJYsI0-BlP@h (vGkynR*4Rږǹ@3D !`i)] J&Lw6Qª[ 0ISXY>Fs@ 4Q]Ç:t6°JlQ܌۾1{QL[FC"{(Zy^Y&s94&YŇ,/VyΑڴ(5S JH[NbD"ʽB^d"|V)=.jfkk-Z rMC2i4C%hp<-;vy] q쪮 < @)5zts{yyY)=ػwţBG6ZxkCb{oGXךC؜ t߾}(+rec7(0c2R^i5oJ8mq=h`x< QiEsvgc$q,B?X__,k8a=k$q3ƴu]e>缑6UU1s{4M4)eANAT(J PlmnQ˲ p4E1vl+yBH!ZptiaPEZkP0&mZCw|3LfA-WBVys{>vPu䕃g>o|P?Gv h x |P7t l0@A _}-H)qK/:XV}~atpRQW|P 65h& % RՀ#=ӷL1ZI4ZpAQ((\T MkQRw$B{#:[UJ>!dsss$۶k繶L&nX[0P$޽{NAp 5niǮBfd2YXXlZRJ͑R676+%"Ah-aGQjYV^buv?tv Ơ\dH)%ZXXlF"I%gA(tICb-bUgywےBm?}˃wYy/5 .|^.~);ɯx/Z5EF՟{݃Oq}fg>_|@yd@u寽2iʿ݇V?+Vw}\_Ӛ/"ªNLks`e4f~xq{|ҥo<⊷gO[o}ӻ`]+ Y=׼-Wꃟ|Zԡ>gorz]&{/gpeY|O~뻽+!XV1@EVJA 3 8Ɣ㕵 z<%yVAB Wet I1µvmj<1%VS']6:zG.Ghu+OǺ'{rw֔8k6% .ĉI,ts]ܲp"fYW"W9Bl4%!NsYk"VU%ee1t][Ɉ- `&1ʵ0ZkB" B8YchamJaL.6(A%PӲ,MMvʪD@ jbm׭ˊYiZeQyTJqQ.-6qTJRb(R8[%6q8P!%<:>/tpyQeY&$X"`m[Hh<ood2Y\\V hwca61i-o٤NkLJ4ܻoM7}+( j=<*aYLu,]ػwZ+,'l|gsd1_fu RLmY8%)5H*8Sv,cMkkktgWE\%ef~ijYV]דɤ7hxdm4d vWU$={fl[ʊ²M`0ܷo`0ێm!+pNBHVEaYd<}_iUE01 (&sn.Fy^&ͤ}f1h4P{!Dd"*^&|{-Vmekyial{k;zyf/--moo3]?:/wˢX_Y]L&Ya!  d(t j}JooFi0s:,˒RZRbB뺶mG+ !k)U!ތ=٤?@ԖBBG? ǃqyۡ#Db,% j^Z͋lt,y*f(1a!R 1fUk\zu(!a95-´@Uj58 fsPu l4oxlHbΛbskJRpgѱDr2w3N')nRM[\SqV{;(;ʧomQ%Ƥ,G HɁW.rzaO6d?S8|Ыh)e1+V{MbTR)K?2w_9;Z\p7>"J)s}Ջ=F2u"ϔF!,k!Z!.;b÷~A&L4+|Sa_OADb R+"TUm !4EbxĴuRC%j-%yn֊uR&l4͆GAs @Jt($Q8mʲvh8 ðm{:$D9oq!j$y?NML4M˲677 B,..6 aLSbUUR*Iv=}oLuUT^/˲f\A...Ep8lceYE1vYd2ikq-88jdY[XL#F0@ 5M~?Eŭv#jg5II+d23m*tUUQmۃ11:˲&6hPUd tl7M<0l6s]9uɲ\Jٜ,ZVQeYkYR0&Ykݸv7~ՒJex&g_GKO{O}[?pa`}|{>Oxƽ.ڃ^CcO3A>y﫯|{Ag/N_XSyQ_Ch4/-/=iOkl YٶDqLJEP+`ѿ6Eު(1&DhG UxoMw𑻚Z5cK# 4DU]Rx>pUccĻZ`p;{J]s3'0m~J);nyWOQP#"p|1Z @Kcw%9;6 -P0 " C2 :Š95a4JRRW (00RR)e5j˴xeJ3<рSb R)8ƀ*Dq.F5猑.A0^ A@Jmٰ!00lY(#c*;mWE!YD0`0D4JϣBdpQ(QUe$ 6`[}rw2LNew< .:]tq4@k=N`YMf:lD?e] J D@XD0@=ak>/5ǯkh= >я~NE}W=ܗ/x}E{<_%n;C~.}֫nrrqg[p{r#V\?^X__ЇC:X+UWO UmIz>kOt;:Hg<]yK{Wo~c"i'P Y S-z`b8߿144Mt:뺙R6^UU1we)l6 ðyGn>( <}СCt6n\m6M3o&P:OqlBX >< 9enZL*^0M󚯟B)eYÚEy)cF̥kcfRh8r/Zy{+j[$O*,1IyȠl? ƓIF0 q_4@4M'VC$:BUe%;q(!6Od7?{Bk(~&Yp1L6  C_ɘ)%h.eYcq Z4Jap2%, @hdA2M0 a說hgYnB,JiZ`EYv=0')DCR˚IQUcv ;ѱ[3yĥ-ht\mT4]rڨ{{-F'gNko}/^z:ZQO7Fr;hC ^qdR㣃3GŗGY}ĥ38sӟғr=攨#}GaD0R1L0@0ÄaBB1B ы1Z5e#4aB5 xw=ͻ]y&M=]gz&tw'x ܹza|I0@"nߧmXZK- خa{\]8Ɂ8Ű]Ǟγ0@u a.bl00!@5,c@eUi2M%%AAF2ʀ6cJ 0FRD)J%`i3c[k 2[W9^^ bAM'Z-?Kjf,5$+kcۄrl'K cRIiY9S{aäI @i=iE^6Xy,m ,J(r](ʪƳ*%\u fhr\w<  "\n+-ǩH\9jf)B E3$ ,KB2x0n8;fR ʈRIeº(aDJSB!B(P]Wmgg c&L]f@,*6k^͓u=^WZ tǫB !(ͬp:>1Ak )ZCRjW3-@ Obw);JXT4 Mj c?M'Gw_Pcׄq1aӲʲ04z[[y7c !,*A@s$:?sO_qhz#~ "@֭\}o>bJ[E_o~YY֊c֜8Jʲ(~A&~ |/~YW!&CusWO%_x9ros~ۃsoWD\ IfH+my؏z }Y.^k1s.:{zXxXkoEl\U[R(,˔RBBeYZt6u]{Mk^ey[YQhcA;l5OE;ZΆa(afY֤6NFpl۶b27!yiL 0Mvmfa }{nooQf؎f Ͳ{^/8,^o6"kK)*yIzqqy  \ Okeyf Bp6BUU |?0 su]ku:aqj,ð5l5"cIL0F%In6LӨRK:Mè$i#GL}<K%Nk8QJ(c\UYct]qu-81"dHy0adnYv]BbL0*jjy5*˶yB,sN<#4-}'im_On5xuP ePww&B L Muӗ?K}ڣk30Pd;Wo PW?xs^ڗ_e&k_: 8Cqנ~7d塵A}@ND)vG 6Ȧq Rdy}qo+z>383?\B!;]4.ȑ{N@)Hq(#Q 4A knToBBP)  B1uh4h!D4 V;r*3!T}BRUS1BP# ^nhT @4*V䘈as&RxV$N,j3ԾZi)n jCn6h  ֺFk%@p❣zlA FB1nR,uB @RR@Z!샥͉լU92 0+i1 4PsB3)-QxG3QТuUAUa[+*A 14-$ \9nwlVa T4lR1-sNDue<-;eY3!o񞾫5vB[dQAW`U2*t" Tev5Ƥbiщfe%hړI(Bbmf2%بa\A URF7{oYZV ?v'\:tK4 :2`'"10(h fC(M "QP:tuUWխN;7}[hoZ:}v}g=k-ck Q;-?<}!9bL]ZﯕeޙkKj8HT?n/֡N^vHMׯR2O;8?s֑^E^kkLU\^t&,OQrNlI.Օ`] ˜0ֹI0#ClbT% okˊy^"h28]y-O~[:@K 85mxaH^-8&Dua2W]uۭYֈ.34QfUe/1aRVhqi6Ɯdij0h-n n-D4 poo]ˮFRJ r>_+e$ 򺪪F(p4CB-Jj,8k:.SRK0 tlyv- V|>_Yײ\.ǎgA5(mQIRV%c\jFAQWVV"CXA\k8j:`9K,J=Ҋ3*rZ3Ju=˭E~Q~IƘe0!Bl0`zq(Rb"f0*eˤ[حVTK `$ ð8/ibʬ4I=N0 e;DWE.MnLǦL$K~ 1IPեibTJ[%CfYQZf+JpΔRxWkc ܇wG еdF\\o㾄޹.n~5O{cC7P!i_8| \C$U]i'UUVUnxƣ*D@FI-"C m]gW]yyefYϵ ðEQ%/o=2Z_y+.;jx컵}gY'Oy$IZk%칮q4M qy\=׮* b4kEy.Da`փĎ[?*n}sZ_ɮyӿh/ _=} ͌8'eo3xMuE/|CӇ5~^5[W]k?}ȾOzU/{ <~G_UUӽi߸{'^{kAu}ﺵ>< yR?׶гwJWgΗ..|@YUp-r-}e?6K ?uGqI"=Qe}l l![I`2Y=# N8z$+tˋʺ.*@= vw772Ng4t;|viL-2DjkI %8RF-IC?ux_֒2HtrKC?s|T) T,wlvv.h2aR W}7/q!jvt\'_f뫽pضﻃÇ.l_XOvEYwڶcynf9Xg(((-˞fG뮻VVV,-2<]KTԂh4rPjZe$[[[;;;R)!d\nll:ujccPcg-I+nْR1f!u|ڛMcDI9RZ)8*dRʪZ-w4⸮lf[ 1hb 8EY:|R!!.V;O'viYZWzo8qsdwuFOyęyYO'cLUf(p?.d;~΅JV+vSƭ޶nF$>#G3wvv|?'|v'iX,8,eYy9m4AebX,"H#iKIwڳlj6(9sy8(jeQHiL!W kMbYV-PZ9AE] Jcd:I(, caF %2ƗeI iBͦYx$,O=+ )1TYE(u-jdLAxf1׷, %$3nYu-8eRJJ)!XUckc ܋ob} el..yN=0 3g@'2ӗ_h@l~ `) ts5nnWJ\.=% kvǒo?9s]OO|W}nz=qo?ԯ8ZwS_?Ϟ;IjQ~[one(Hֺ /_uy_ IDATz="$OBw!H6@]p-|;?S|Gn9ts ޝ`(8%R;= Y| [ow{ֻ^cΌ+ԩ~cUIB)"*cfK)+ aZp8ܾUEYX]ĭ8+rBH uLX)Eֺm\s,8Tuv=L1 ê,[]]EěoF]׳LY"CGQ,NCį} ~7P[,H)-˚f~:A9/r:*(igyy^t:pEmwaʲ̦VdKh4V$m;c)d2nZt4N&&ՠ,%N= b:Rm²$IOgsuYF*q拙|yx4(_,IJicl9M~[עRh( ˶VEd-WU> - !ѿ!Xr4<-:^eY]מ1Ѷ8iZ8q|ooHH#/6afQI)ǛNg:lul>k4]///tҀn|]Y/~M/#mb{htk_y׫ox|o_}ͯߟ_ݯ~CO.|ӓ/x哶!X>ߵIV%\~woy/k^ #.. o?яyu]gs aai8 PhCP2@@@5W4$4 #"ڊr$Rֆ ABP"5@kmm J(`I)@BDXk il,.?Bm0B6(c*x`$`1AkZ%M( L p1JcG,nI#&H`1ƨ-BR2j6Q R$@8 ֚RJSJH4B)1BΘJ!>` 1> %Q` !eƀcVpzqHa-O'KtQ(bdQY&D9PqhYN 7Vk Q)19+S\IW{nړqʩYf[oi0Q@Wim;;:$sDPbmΓZ_"M< ] |n6dUr%%ZjVݵ<|G 8ֺ+$h0QyFm{9OQخJ1SrX(ɠ ʉ<+O&a_F. J iT9;_vmϟX,Td_O_#uw"IV't}ks:GqjyqZQ̓NLp~~˲dxu]zM)`^Wn3-RM$OdF"ݍ5bp/IRf&JXl4^??SjeeTTq$rNٕWMRQpo{j[d4CogȡCEQLfvA+ GJfp2;zTq8 | Õ)eYłDzsc,d9$IdEQݔ(2\םyd2>}Qiy`0xgg'!D,[vY`0X__o4Wp10 k+]BlY.I\v]uJ(q@#!$M#GYnՎ cLsdH;s04 mT'%DwF:+"/hIZny?*-jl~ȑ;ϜB'vy]y啳\=l{{;]v,`tD@|Fu|>ʢ&ij1B͒tmuu>[b|ǫRv4MC{l;tZSAUVYIRAP,cEat=G)ꪲѶ:,\-[%k/ibccMḼ 8 - [w>{^w( yeZՒ@vQ9(!,(xUXR^[Dˢ"H)aZ]וRPJBc,emۖR~xmWzo@o (ɽ|w%gwv+yw76,T (lfӊH@ 䇾zt\"?~]x vj Q~ѪL +-_N? w/5cts?W );_>=bـ̺񽟺#C/~[nw~l;1];'|w=9Fx'~+p5Iꗽ Fmq.) . : +ho}ܣ/oWc1"EDbVu;,ZNH>{E u^poo/ C!Jw+tWVVFQØ6}a^/ͳV5ϻn}|61l^.M:}H(_k$IN)_q|nBUq+TJjǝf)!|39MDFtɖFD˲u9PJ[t: Pk$IQBԔ"cey]b~v~f?}Ba??;:wă=`#OzuϽz~> W>g̗>?{w}@M:)d}~~rx~X_h=EƗ~c]wnя~k_K uf9N&[y FVkgmJEQQj|,t٧O ^%3˱2͊u~dr6?_L}˲t8ٮ,da)EF8!b("`QǏIzxr>7RcҺkBH$Mcu !&<(2rJ)h|8bt:k70 ,Vܙg$u}J( uR1JzM]W Nӆ8# ׊Zagyz)u]1"DKQ:VQ^1ƕTR+9g,Y.6^{>BJx^EQٶ4WJ9WZ@f4+n\:^C4y1Vk2MmגJX-ܶ]ˢ<|QQX]g٥2H);]:]PJťJizyَe][+e9#>4HHlG&J r̽gc %YţLsw'&<1S?(Fxy/e&UM){Ϝ è Aۭn/3CZS4b'{l^hn$(kPHpxP@?+?|SIl6Wި :oq/fNFc&.CB9kkk'O5<PHBZ+Y+,"D$! {IױbEj{@ "R7rۀ'82Dtlh-g0 @) aUiYVL5v[JY54M14̲l0uaJu&R$j5YB\,y^GZ۶-h"il1f3˲oZ.ZFLp&|uk$ PJ K)!Dliڔ(BXxeƦԪnBjѣI$L)8Ʊ=94¶톀N묭u9RaXUXeY[r}?={N1΅姟s=Gofe~ k];u{5^{uMzi?(K}DOn^q$=%7oz֥%\%\?Jmo~{Fǃ=[SJ91 !-7ajH^]3D7~ΠQJO+!h$&h)>PJJ-0 HlV4!6 J5UT%D4@ &JSB(eS6Fk`J`1F)q-&eFV*@ @n-eLrYmV&PZmƕ֦L 3@  PF*-jm8A)BR6Zv je"Ac( 4cZ(Ʋ,rӼ\QuiVP 99#AHkAQ:,iOHi 5'utj)K٤:.j?fIQԥ}(<7UE( (rRı[eQWAK2C8 JYŮK Yl.K(KƼ,m6grUZm@0Qג,fc}nTT^d)M7wiziji晝5'6?uJ?Y,eK檫Μkmm;cu1ꊕݝwOӬ]~ǹq4 [d>/9s 3ϋpuFGiR!!$d9sWVWmD!űcG/l_VĐǣC[[RiE0 *'yƋŢՊmu,:x87&Div]q\HMټmnt>Ƙ~FRJ1Vhm(A3f<.rhE$Y b.|?nOg !Yj qG)EEfl6{Ee,duh Q7MznS#O\aoZ^KFܟWŧ SJdeelј&I7fhZjnx7_O~O%/_0m]DDBr?p`oxL;wq-FՌcl Cf#zݶBLu}S8+~7g` sBb;@8(E/yՍ+(abG}cQ;Z¾rD+҄h QT$miO}<  ]{z;3w@a6&zuuu6B6p8 Pyl:AB0̲ɓzbuu+۲g"'VH|.*,K=ϫhZZ>y>DDJiC"ADV(u]/7?0xFt<h42cԫ4C1&X!j0hi.ӈM-UTd֢"F6kM$BF%  QJʌ e RR@Bj Fk HkԀpSJ6S)BhQjh2RJ[(hB^<c,-(5HFM4!pFAbu RQJ<δ `jcqCJJC8æA)jk&YU"̀BkE@M(BPk4FSd"hAh$\iHY^YY֤.ב[.Pv$vc Yq12Zu]/UԒeJl_=[ˬ"Bn Fju)*鹼KH&u/UUs/ qP)b̋b- ֶ;=gWdRKiu P{jc% Dc22B|t%`gYU±{y;^B$[YV0jY 8XF몪h hE)VȨ/3?Y)EMmF<- ړ;[\yՊ[Z|4>}i `.+*J&^{u>I2WY*O~RIf\ߚN(kQbmem} -ǭ]˶lJ%%鴤H0\fJj7Jϒv2Q1F ag<2yADZ5}'z[3/zh4 E|2eB4b>ȒNm 6UQhK,-*˪jE bu]IPʔRRJ1$zEQ( (ͦ|6v;U]-Kuf)yV0Ʋ,}<{_yRJ!jD<TR)mYYUnR:cFyYqCbF+i$AgY!d6~(\)(HYJeڭtBhQ֣Ol[>Azn޾,͵nJf)vÐS[JX-ۮ*ToeEr1_DaTEnW*Hfe݊8Y.)%U]E9AVe3Owd20º^^I}Q:!֦*ǵgiUU;clBڎRRYjѪ,O'IӚ Cy9/3BXU PZ.EEBTuE1"EeY%*k׳<첫޿=kJU*$@ dА0Ȥ"BB *m+4|GH~mc8B#BHB%JM8I"Z}R=>g^{5̹q_zWD,R'|wh{NY}~J5'uSokVgw4nbA1&^TJ\.ip(%{SG^t|Z@sk`o4 :f3(Ô_~nZg^=/|7-o7oɟ|[7-o᷼fvr!ga_pppw%r`&c *| 5z_9ob S?X;ڼ0|DuIy[ )rM0nLƄL}qx'>n?rdY{zfĝ߼T0uy#ejE;g8VR;0墬Ki1QtFq,Vp\.KP$mqZ,)Q%6LsRf뢮U#%kv\5``\U {FXjBڢ(0M.rr&E^rR$`0̷eRUR2v;N'qוn.k{* ,(Ҍ򲬥T~OZ;nZה3LvfŽE,3VeieU Ϸ0cR !Z;g[>i~-n[/d 9«l @9 J2#S太kh,K餩8-JnBKWD BeR#fK- ?qb|kfz|Y*g.]|TֹB%Has=vru}8+O0HU盿$X8lIU f `\uݶ EuWW&`Y2Ehgv\d˭L)Au]y~jIuU*Yq9뫃ۏ& ig0ݙ]xq2(ͧږe)CwVna~gU>ϔ{|+.]NLu!B`x)ۧ0Z-P۵ X^aeuʄaX,< }%UZf\k+IHMManY@v;Y,3>|x<@e]1 ytZ֕e,q.Rzi< ;#!4Iɂ%Њccm/89qQ1Θ{1R2BkՍʪl iVJJ%Dic4(}{י,80\^~ y34c;;%V4>h]q|^x<=0e5Ye5j%YU퓧6V 펜C!mTӝL<[z#(%uUVe9ZV;Y*k\^qc2U%)jƈyR*YaaԪ(ՕdZb[\Y bphf+ lf 2FQ (B@km#뜳@j8k 9tO.8@3tgYu3u`O{o1 ȡ|pJnœ}8{{k^qW}t4ݻwo]9cZֺƉym7=?,UW_mn ohBG^|cBa;ӏjNmGy{ރ `!p30b'k0/O~5{sn/06PYܝFߵ֞pZz6{1ߑVʂ5Bh:6z+^k1uɵO?_Di^ơok}V@1kB:x${nwggen4G>mXxq$DeYK`0 4 6t<w:Bh4ehsoX Ȟ`:MC t:mf-I &> $I0,qBPJ˲h |vzduurwhBiUU558j8Fyܜ,6 hrjY7 4!d6z|6k !ucm܄&qBŢIRV+e^/(㵕dRJM`01MDsrlPRjf3tS̈́ƚ_Ujmme TK OKwhTy4MrBpk]UUYj,f\)]uyY(<7B(}F_ಗ|gI"E{D ^Gkk= Л=Zlg!;ןV7=ޞk~yULF+=옶ol5w^_z}'mk(|?|3_+x/w>fw|s}H_z|Or}坦]q/m?| k?<랸s{A\ʷO+-WSleY?l5/}}o^;׾9|AkR|! 8B!˨1(B`91Z&2#;9!VM\-Y8!F5֑FbSNjdrcQQ0Jc 4"#XXfaLCXki2~v[E9G9‚Zk,Ř`,K0 `3̘VUh$dYk@A:̨6!Dvaf#k1 5& ?/+A9V S T% `&Xt FYB"@ %!7##U |Y$6Y*0XY,3qIM(ŢJ_a21vvZZ0>a*Ċػ52%QEut!J: vʺ4t{\f׃~g1/kirwD[ٿI9R,gӍ*U) kF~Uj !0AP96!q NjMbQ8-rqוE R:gV6'*b[u |<^ɪYqn8rzǶ`wg{삭lDE>waƳW/|Gtmmxz{[Z8C?++dFs)2= ʤ,ZHkAU1M+i/(nZkldY, hbvk|q?wNM3:|hwsU[[o~HjWOb"X,08uzqdYUVɼyF3Zw:YeG0V9M1'\JJQRJeUf~?9wdEy^s:,˖%!5RJcLuZVMֆ1vر&7f(>'Ov;,K1L9ؑF1c,@'It20$<, 9(DH'0c ,2[g]FQǭȊ&tic|?D"Lf~Z4>XcY#^7-᮸q]<9:~/?/ ?5nת :ApeYb5yQewl2Z ϯ!sr9de"&<⸻\,776N:!B9ĉ^?Ms I4O(Mg c5րagY9 (ʲ0<C@`eyFI O㶔iSW$al!(%H4Jz\ukf p˲Fje%!j T)ŹH c1, lPZ+rZ(4 pwwwkkOLJD1Y5:~U-g~/ p.!B0JHZ/cBRiB5`s&,w{nவ㌕Wp^t-kOyUۯK@ }_Ϲ1IGoB !M{9 M(G1e2B_m~B| ӟ=py^K7߂0^@){ݳ^7{>?Fycg?/:gVIU.yK^_;7n? ~ek2gյV&0L[DgWP[^kw0/?o|ӮؼյIeWWMWOyď) [۟xޛU7y%^=߼oXyX%?ۯh?x徃W^Eϼ?ay(/훞zpu`k /}_q?sx |~C]=t~5?W;ӗ}#˛k琱ńJ !CH[Ki5gzZc" Yy!D)i2})s126" &9`3JT` '9Zg-r!Qs(!1IH&Ѥ0LYUZ-2O5D eVTH` JJk-cbR[eMQҦCr+y!e!{Znxba>#{']iӟ\揼xÙyxG a^Yѣq+ vv_IkiҋRnoo+1FF)Qҫb\y/rheU)kB0%7[.^[Y!eQTe !FJksJڽ*dˆP)k;=/2lRvzmd4kCkd>o[w](1%spH+K( (JB1$R:9sZFydUY;`'IwwGJl`8ƹ5!A! G,SuUH"b‡<jރ`l{~/|s_~ewoItLC{SCpCugo} |Ti|Iohǯg3rSNPJ>*8>Ṋ|켡 ząwF?'< W 8rz6oi4Q~u͗/OZk/~>I\g^g?9x OYOjszS//~Շh[N9"l\??;ϡ[qOdm+B;yW_#'?}^o]8|Uf̭^G]D8\G Nre&U5\zx}=[>W p:}|>G5h܊0Bl> ƣ0LDJj1eQ"<Ϝs4M11&{eJ)֭VQE(K|>;kR2CYEY;9ZK){^#;nJ))ea%ILZe'Ia1nCQ@jOu`'N!zxFl^W=벁޹?vpѓﭿo{=5B%!AnD:ᢸw%wD×_qxUu:>QkCVyǻ_ݥ;K/.hjPԇ~뽿|yĈ?4m }xVx1Yu-;? Nww׹:ϻ+splvg3=J튾rf78~6v{<쬭!RvS0)K`L̤-.X^%gn~w:^LJ7VgIɲ(s4bn;յ(=#m ubT2FOqg˲tM_-!M9EQeUYkXqkm<۝CY5)% rYonncVVV%FHk0~$qfxL<5 P0N;Nv"gqBЪ*֔|pjqپ}:ዴ #Xx<4MwGcFCZ[eµQk0QZq 8bŔp$lw&4 l1\.ERJ4zŲz߾}'N:2@DjejhV6De8kც8j2%Řhm(%VoFzL~Wϐv]cz7  Zksi6~xw1i<Y_ݗ>xp ^pz:kc)?s¼XfgOaL ~/dJY;Lq\_ݿ֓,`^h'ThF?|#󫫫cQ,z?Fgu}8Z.#Q$m-˱iwEKcƘp2OT^[q6a>Vb~娎 !tmXb9 jud/r/Qe0t]ם4mk=:9^ߟ8gWǏo6GǧcU4eYڡveUھ>u6ԇt:1HYcJLsw<1D:u/;99Aμ3 hh%<1H-i=&R<#//?DZ~k?Go7z޹<_y~x~?jDad|C 7F i8b$`b4R=qtO>0  &Q0|(""#bsG,0<2BD"Ll@1JC3.  !I# ιx߫ 2tAtAD9#fO5HJ*":ρ{`hr 0!C҄J+΅yȉHxp(3C`J21Dm$bsd8H`I版1r0$I R2F3Ls\ȕ5=2-RԹ^giR\Il0aFT2ߛd16"3CI>y||s;rK/}ߓO|wjfG 3ONHO6u&ɾrVJ\oNWSϻM>M1}t^ߗy1anr am{xɋˣY%y?uyy麮3V.^ޭwjy7+#+Otn7i5D 1%zi]qnxX8 [!^u @0rL"\k E0-H@ ɿL1d!FҪwދcB_eR a9uԌE?ޔH$DEKw@HH !;,IzM#l3L#d:Ͳl/1A1Qk-bC :ѻN) Bۛ,Gt0N܋zMDjBDi8`csض4i"nwH0]97T Dt4 !34}w g7&%;q7LoƗ;FDEM&!10"p QYd\8gEFo6D2(R"F1G$"ȵ֌b1,-9Ҋ! !DOEQ8;(P09G gA[gugb ˱x9wq) <"gّtc'eCGQ1 ,"0^+e>*Ŭu@K V 3ƍE9>r&ޏ,7Y۲C}hғ.xTz]DfctK6Nm; fPN25wS.viv$w놈J}e`AmgfZMY'7u?0aoC=v@+9~%y[RLJYKn=M))ɝwdi4>2D+BLd.=9M!^|8]!ϖ{O}7b*ħgO_xT!Lһn?"en4YNis_eܯ:="KZH&3zg}gιjRy:oX4yzcCu*fJ>?= SlsG'I}?svrr~Yk~-2)wWyA..Ufl2nnnLmvX̟,~Nm6 Rw}vvw!x!d緷GGG1<" PzL&}{gY^/ ~sqyu$@ c7 4I-cKT)5 Cz6UqDtwB$:#s,{)so*c ۶+IߛDλo9Cq{<~KHVnӬ3gGU:j/fǓ2-B+eu=ζd"'vuIRBKbq ,y__]ݤIˣfs?خ5bv/#䅾ZQϤ3q jd?MF7:o"kf).lw2I0жmYbD\rF, "SYgL3H$ҒK)Qԓ#LelF@LeDąHE|I$$ 2ԙ3" \jB\pΑIW$ ;@QRzD8R( BFb+"%Bu}(S'>uyyiܠt4 EѶmi|^l]eYߏcq1ƤuWJF@J5FkGs.t۝$IǴtjmDJeh̹n[,:˲4u}>dY~wwwq~(֖Euyz期o6cZW带iήʲ拋G+@m۞]]^ju\um;Zgit]㽝ϧu+Y㼏;NNNy|4^onnFxu#ZGR|?pL& 6 HVdߏ}{_Rxc:+ˮ,,)'BPrfqy<] y!D$Zn 0NHY 7v>sO$ ==x'?E? ?~L(/տc|0ny݃Z<: pqş_o`r< #WayD0%#!ghL1F!x c!FQ|!1 Rpd@#D'$p4H10`(8c< cH!(jP$>sa 1!Hδc!E 90Nޚiǀ3 1 cȽwҙH\rDW\D1Jq" >*Bޛ$IJc xC1xŹB" RRp@#19s !E =\rN#c+FRJ& GZΔef#%7J91kP'*P$Emۆ\;hQ`_gzZN1,Ϧ}!,dZ'"]`ֹ*F%JDRU+mDi>dhC!a?/ԶdU׳2Lۛݛ8ܷg竫)˲~%E 0\xZU}}K~TUB>Zt<{7Ϭ>گ78֫˷>U9ڕUwv-$z(稴&/}y|h(ب#=0ʪl˲,R 1MuUUww(Oݶً/N,s}9K"@cE"ZN~"Qe/}wXXg<}Um*h}8fɉ3oj֌7|vu}rrCZB!nEԓI9*|T9g˲XVƸs1)LJQl9Kw/WuSMu/^5uMɻzDtf+%cl\1XH9 :o<}'Ob#Zs:}S$1D՚1TrwwͧQTdp4ڮ-…0Z/}{޼[mj1zl4Meh{9]Q$prV} M#Ō1mV(M~Q\گS~l Y=*F:GߔWk훭"ſf"~|6 B&s޴m$6ۍv~X)㜈PL(\&* L'"-(dO)]P(&.4WO 2)eZY%gb..")EVq`*i)L&rt¥F&T\%\L*S<ɘP$+JKR҈(ƅĄLK2r40ȑ &8"2#R 21.+&d(5W :LdBq"2ɸ2)t"RqCo\.$u΍LR!'J c(xwy,Zk}I)˲8j!v{,"BaƘ4MBއ^{zTc<sBH|uG}0 QJ󺮕Rմvy;,nlpxժcsn NX7778Nl6GGG׷7tnr~{84cjIv(rcBkMϋ1w4b(@ks~28g瀘$I? Z]AD J眒z ZRcˣk"ZioŘ<ʈ8}e]+G󡮫Z(v΍( ^,!,Z:PD*d>xDy9DWvo/z)6/ʺiNOO7M1IwQ#dKH}Ϸ3}kh/{.C$ !Χcuwn0F UAp^Y} v=t??(7O_ǜ}s<+E#_ُ??O/|6ky8wskoO^ p%w;p?8ƺzh zB2#0,2`Dㄌ!0"  @Dd#DF0"Ȉ1! 02`1ȑI`>zKsat:ˢ**!}B̦q02Omi!mև3==_\WUoqųC7Swys}WRhM)^|s9E^-/L'SǧW!Iv%@clF +%D|7G IDATnp\6,&݆ eL~<~xZ4mI#En'Dj5N1JەIagnkGGG ,TUveYu !lɥ>Mcb>ywNON:EӴG1I!DHRwV34@1Ru]Zk0 Z+ΐba@Z]?vݦm߹v8/2OSMHvuN$M֋Q۶I}]k%I7@E^[3Iy[O~3V]x$agm5NuBw}/2""g!sJ)!^Z)%qFZKDR 34KcDӘ,ui-ޙjL[)FT>290;?zA^Qc=~-WG|W_')K'Ǫ\|DsT,)b"a:I%t2I\ʬ@(ZB ]LʹJЄ\qs&tD΅F&KZSL\%3 +@.U#  Jj.41L$RJjH23.4`l<{ss3 !ʲRJsiβll6R4GSx}f㷅1W}v'8}&i}9cy],u]Weq)Do~KzoyQt]gKy3 eF][PL*5Sz!YYF8lZJY%E Q9>,Oҡ E)mNfu#"\VNn1B> ^d,L1 q0eGpЩXdզ 젅\tWtQj$ p>615s$ FI %H% 䨐(R14ϐͺ(2xf/Nluuϔ佫zSo\8w;fXdá举֔E}'߸Y]7=y4539N.J|vie(Y!ڡ?;=5}$Bȣ#3t{hxr^Uɯ/훟hj]׻b&o!0[; +dxc,IuL֔e9x{wYsCu]þʲ;>> @\ c[.} .zk1ˊ~ȶN>L&Qgp84eYJ_"S8sl =7vVM!.m,ci۲,_@Tu5fGGD4LF[o;{o)VI!z'9ֻXs$ZWUkRLe׉"fNg_?h6}Z7ˣ/ot[E6.C42u=",K3f1;β0.]g9dpb[DzeD CD%m[뽧~2ǎ`ulٖec ۦIm3v]UU#`\1!+)!gR#څI1JP(tD.BdS 44'\&G-o)2X*&GIF9). rJr!fB!c\pƄPpR gD@ƙ1㒸dR#W+RB*F ȁ &ȄD!U'3ϲ:gJ$YݩTՇCf(] vQ;)zɲkΥR ceY#Mɤ\n,~bO>==Ziv:4) $qoۋ dLHNN it:`Xt]76ϝs$İsGwGE/Z=w^T,8 V7l%7֌Y퓓щsfa71ƣn_),IJMֹCXp?>> f>! !!2WGz3l˫'O~"lDzۗEn Jd>ҮkBp0&9yg'MхsH9;6&$q(_o|.Y2'9TUYrpl'CYTj82m(c@f <x%__~vw~'_W?u*Wo_<8>xQ` #y\T5q"E!"Cb@,90r$89 5 s"1EIH( 8R@1SB15C1ځqF"0͙ƀcBd>`5C DΆ8D 8R3(tp.(CC"iʌzu> $[]npEž=$ʔG`]γΣC4! >;g=DJY N+  O3°S͑ 4KI3E$9rJ*) w 6PFܓ3>2u-ncm@-\(s_ҳl_j!f$lRk{EeϗuJ:B1牞NRɅ|Ze]( >~fJh>__c d9MeHmGpQb lɏB.gSN*l*oqayJvصE'rC Fy{}b7m9T ժ ѻ'g͡GM' [\ax~w˥ ד<:x,21VOyý|٢-A^\FQc7/b3vt{vǿx}޼`'.n1&j#;NtmcޜsΧiNz$wvE4J93!i^}awXՊS֟:cMQ"id@]#TU\$'7wrOfDPɉ2s?Y9Y2xƜ7<޽}۶x\o޼lή."=׫5" Ūqxt{N%Bb^VyYkcVsg$4x_>}e.??rYWn>xr4*iI-ƢI}ߩyZ-i뺾Ǝ28[o~Tx~QmN}_ |l>mѯ4BiM e3728c;b&8%@|EOpLTW>J˅" /64"% !w]W!i5OS]5e!S0J#!!J)Ţ:2LXTQA{YnCYlG!:Rb R yN*mXKf_chPHH'ȝH"ES8"<P10ʝE@‘B.2DF: iS2ƨ>H `4F(\쉈OZ¹G hmb$!'QYSrE2Dr=:-!^e蕋XJ{BBO [Gy1D >qcF9@HXQda\E+mWϞ=9(eu6@$ruDc9"$֑Ų?Ne^; Pmpu'9lV-kN;Y.˩:f@TANOIt SQb[U[-8EtmH!I#qf4Rb-xAk5;2Ytu1pQJiQƙԝ@yo f=餯7tԔ霷1$Lɪ"{OșN<@wksq0^6;m>vJ|×Cv_]l^{B|/wLEn_P|no_@J닫.<ƆYWi{%r0?.iG. 1t 2e,Y?]㱿z߾~O_޼n}OR`~ه}rxP~]^=g/^> Ѕ7:;Os6_j0{Ȅ~?\^\ݯc$!1Yzb%rVه/?8EY$ sr&c (x{)"P Ӂs\,be8Ya??}:aۺ@^`9]]]+uUpΌ1Bd777#G9SQdƩ~xýzxY}߯WTT3㨍"x;ΪȋaJˋ;E$0MsYU$jIy9mL@@"ZʪmS/t¼}?@+.'lk%%A rBt'MiHeUǺbrSY|(oolj5Mͳl'B{_|2˰q˶{Y}CEC.TeQcSXJEu.0δ1"CZO'?MJ)|(<kg!x@1FAk !_"C3i!#8_d_|E/tk4owi_8yBooCz36'CK!$/k-c,ɺc! D 1D 3΃4H)c>RD%)DN-@LJq"<#!RƘ@.@Rc$#!1RF?O T#C@eFK+!)ty$H0.R !"u)2BHRW(@",FIRBLM!DJy ,_uN#s IMxRʺ(rNպ aYغHHnZ󔲪/"Զ8)L& (vcl1&, M6EQ$ Xj ID}]׷:x<^^^N܋ˢi1FkmR>l}Y@H*duZqL(˥R*/ \HfQJ}8}vvvsssuu4(90$.?OӢmTUU*5'HLs9}?es繜窪$˲TJX,, !2}RLXk} -"X,Gu8\ IDATx<Hw:F<ͅ,;N)4F2C[a< P1<R.+k0 Zvu]agYNcRM'@۶Wc^?N"?~LctL#t|SRk&Ib7Hb 1I}>x@HzJI .":c@ ޹w$6y(i>+4E]Rt)wH "Z({\Dʌ5'XOTj֣! |4vnޜ~?7u;ʇkCa1FuׇbxegW0ܾ}۴ X,^zX޾}Z-i4x<֛qx:V|yrO 4͛yiڡ﫢iˢ(߬׻~\kۦ*ɓS @Hq^K)Oӳg޾}yBsn<ۦ K("}k-Z{bp84+xx^^^az4&[| !֛çwɟ]/~9v۷OWxrðZιz ,ϋ,nN>F¹pڎٳ>xZ/ۛjjZdv} 2y\_q-pܷMs{{h,v!,-8k8ggUU Cgm("=ˍp?|r=tME bnp<1LheE=\J؆0VU5K)sfleU*&ua7]^]8BX^*˯Vܴ8z1g<D&fy}t:qν  ɲl躲69"0gEB 1áb !" 1S@B?g~>umZ6ײieKݯkKW{_ˇla-\S?E:,3$V؆ XƠ)"cbH(cc$3j$@)w5w HRBNkDa Gz7Cbj2OR1ٜCeYZBhfǪiJZkn~\ÐD茑$;XJ=(q9A6Ri뺩meBb8q=+sBZ')Ri:??WJ%ngާN(B𳔔Һ=l'Ok@)R2se)aRSBHY=<<$t^V0 "}/4gg!2 HiHG@>}ꦞ2z:N*{Gq1xLcmt?_g_[Bj|!F<D@# #D8%ʐRtV J1" = Nb.cpS- ^0Hb@@H(BΒI 4Fo8Rj(R-1:g E=)(2ps."IFG%Q>"3$$EZ1F}i{u6!Xc $,ǣ)D#mvFNV`gg 5w܎eorHZ$qz!CǑ$%#Rd4,^Ebx(h6Rmr^-+k芑U2MŲk3r! A<1#z4Whڸ>YgDAS,l8qlh7-'a5 kCNĺmSيʂy:uA"gzeTΎ OB18Gu1 S Β} k 0N98Biɯn7ʩL&'5^ Q $XDcx9‹lQͫ_BQEg#ڼIN<[ءSFjۺ醁rfbDB(hfQowwu.xI~Z+)˲ָ.ڦ!1F5\8_.p,w۟/G.=}z~wƠqn֗_̓ۛjyQ+mۦ>Da0go^yyv|x{tfEiHq˲JyMSi*u&ipv3΅1Zkm?yqڶ8|{n_,ڇb^1yQ6뺲bYi)i>)0 !iZ,8 EbQh3 p: ,sg-"N\TϟoWW!(rnDsRR"""e=E!@1n2ˋ?9ߴW׿G|{wGDޘeJ_"bwcRIF:K̳ltH ֘"aMrk-p8y9 s1ju !)eYn[ԍ1S:6g)~\IU4yc<{D(qcE7O6I ;[0?G!<hYJ1Dd!ELLy֐P wxJ1Ϲu&8Zgb!mFqz9ar !r.քaZIŹH~ѿ' MoZ4Ǟ sGyEJCYmHע?m5+Fo|F<]_,&|ݯ_U ._H?D]?y] a\JKY=N11O^s{J)Ej{b|2ENH9mHH$ew4e>tEBC,)}9bDTGH(EP1<,@"A@$v# "xS!OHD!P:J) >4 cGbON]۶{kdc̄X.CQ1!x^JUu!(2bYl}8?0Ά~lvgtrέ׫y(T5<=7݉,Rֶ~o}E?tT(F,v]NrΕe9pm<ضӧOy}Y8M1( mt*r!88E5nHb1ϳio>vjiT :NvKEYkyQ=wiJx@<9ɢc...WR5Mz{( SGKG\TMSBӧOqLs%tIYy1M".d],Df)RʙGu1X灐ϧfEO0Qƪ*8 y㌱r(ˊ16CYykk,)1뫫R>|J)>{#8ok<1ݏc3ݏc|??IN#E>4!ʹ!(Q9"XC\XPRS@ HƄ1Lʺ2˥y4.`uS@ } DTm0m E`l>u:Mlgj,gxc5YGeRR+-}"x@ϖUAAh<8WUCjj6Vt2ӣgs?wArC-$Ky6tA+_윊;~U*k~va$.{Cgw`Ȩ~!joc8*ٶs"o{Il'_v"${CO**k;|`=Q&ۇ):ʝFFk"muiR>=V~r=}Y߇[2$L l<9BLU5 g(E 4F=].?Ҋ}b]jnfUY| 4LWfwbzYyyvDPm72Ĩ*Fu:R6cx{|B!'߾}U,N4+lQ?]?//?|q]Y'~w vN6qa{xg^ڪm4نgݾ.3_<{\4QQC״yfs6 4TJk\,}x8\]^Ǿ?=yr- iJ‡"'^߾}38O#|gG7 rRZyu3+˳|mqc8焐w~~ ϳVjYΗ!,0f'??N4~~Y-/2OŢO>d^rJ)cwPry:8Ų=uDz̋|p8\__CG Ȱ,^;W|vvv{w{~vf՝~+ϟ?=eQ>|BtUUv}QNy2]4mw\ߵ풀r 3Ai8?{潙'hZ5."Ը!68Bp8pj\1] R,"!-Ps'Z4It\XJٖm1MZH i.%/ƤU]O$MJbve"$$et6~Lgy.U-$1&{q!q, )=/{8Vt(Zy`<ϑ1swXCH=;E@˳܇FƘ<ϝDcsjkmpsf];!jFȝO߾ Tk]Veuyy~< jwk/vf$KWiI iffm$0Nh^ìw2 4tzaozNLtI O^٨?ӣ {M:QB%@f fÌ]3V3Ha"gtELVغEˊTB͌02`Z䙏60oyA$*^ ej.lQ˒gho ah2XKr,o8lղXMΨ>ElVbOYղ9\3R?`]Z.'xU'˲$Eׅź)yTx*/XyyzQs6g^|{UVZ`  "o6n @[7\Mv~SקNO`FG}YYVS7j~_71rwuVͲNFy`ʬ(0Fzʣ ' e46)夎owU`[3px`4?귃|}F]<4ٻ|QdM:@#7ZG7._XgH+Dޗh a._޴ɒk̬̮^b8",6O2d0_2Qeh&4\W<VyYY{~cy=jY@Z28|ZcET\Jg5 YsE.L19iY߮Ս_2t5Wmo+F+A74[sHBr/*x;=Ld n[[fr;ROЮ nGfi'2JjI4$gh\l0TW*in䩵t \y'{}65Nfhn%INYdd&>X]L1x?C˅>҄5Co/@Ffu`zߏ@yȄ: ~곍;&ˋͱzAqggf\lnd$@Too?|涞͚(ԆMCkflkiCYF)Wʫl7~CYj;^[/Fk8b;%y:1*ly׷@Rt1_m[7/n6z«Ŭ/gajzꞠY>h0F˲ƍ)z~}sf)TetJ vݼء(Pi}2pT !Zg8Y~l%CB,C<1hz﫼ӔPJIcr@%mVU}w >I"Mì}׫0 ,hC]WuUY!pl'?2!j;/֣v?D?>Cvz]xq~_gp^="7-@)c89S+JuݩU՜s$]+!DTv<BMUU8i0q@16rcY-'L 2CvZ.׺[-|r^Ed2'o&MR1cJǪ*aʲ$BI1M#"7FY9u.K neUiRGt$8xPq P0JYl@} -|-H S/J/!VDk7*u췭fkx;7/߼~pswR~a*Daxk3ƔU9W21EhJC 2 WrߘYTH{qN ZrC@ $DS Q(lxh>0WQJ(ИGB0c!9c,e $Bss(#"`pK!~V }d9GڇA(4 ?jeDZE0r6ODo6?\.7rZ 99>$EѶm!x}sڸD%RD%/˪mۈ/O$8NQt:E)eu]/`Tj^VEyzZE~*C': JOm[e<@)] P%!x<.˾@J[a|6rez~!$xZ^0 o]8iv]7͢ se}G{Z%c, D sy$0 l6^cl>t:EƎ?}4MNJd!k#چJ%ԏgYHڶi=5JH/^NnOV֦Iju6vC`7 wz7}`5^aC~éۇU3nG~~=z|jk~߿~/{Ӄt;|v2Ƽ^@=L7S< nq`E1aV)JrR !H$pSAT撖ؗ  &DB@Ґ'@NxJۑ1KF4M8b  ^ pL,(Ie؜| wca6h{LMG,}/v Coo7GԞFsX)]3܈Ѝg }дE$l5]79.J2>ZG%wD49(Wnh]2O_ud𛁇` 9cŤi~"\Þ05#4e`RM;d׳~Hs4k$q@ AOR}H .v,Pj !7}qK0^ֳ0O|EFrU[G$vEv;\Г">Ȼ]lw0f{TUB`3uR%/7\x'3yk9H!MkmwJ%$B)91Nv )0iT!9$j߭ϻ~Bfv4M@HcfY>RJ멞U!x@Q:f*u=Mu][k1q4"R5碪ʦiG?}ei6qX"0r.9Y{uL~<7ry/{jQn76w˿ܔHUg}ˢd77_|O>M4S"bY48mtQքͳgQ:+y޹,/Lc,b8;[2 ~Bs)%!<2>J4M5I!TV$8 UZr=djۭViu C]` IG: xzXka`\ TʲǑqenobq:{NfVnno IDNBuGQ(es>J؆@"JE5ZkRkHB hoD?O*yeFW?7_yŗUjm{J@c?#c->ٳiYzQCG7?v2J#c=  z }|9gA&D1}K cwc]ץiey7M^t{C $8Oif 4=R)BHe4gs0(E{ca;"bQinWueYD_.!v[U,Kpww9t]g}p8Decl6k(xHUJeY4cQJy89GIscLir$QoT(bbo8Rʢ{D'eG9yc1jzu&IsjgY9RaomEYED\p޶J~|RJHҬiK)cY@4ٳgZaFz63:甒]u|O} cZ!ZIy}aw |~UByޏStJ-"?)߷xJw|)OS;Vr_O5aEM#d6:vomݦ3!|z_?w-fͽuCOds8OnwIwR){pӋ[}{rףlN=4@6h&7ǰvԍà:[Tw8!eӨB'SD4id4slY I8U.yr$e*I $*e"ZJAB\AƩ['( (ES8J`r[H@C0!gvҁ\C[!4MֻgLֆ@9:BH$bx.\^wJ:4(3/aMBd)axvh.XqeB.)OEsFʴUY앹俻CM*kK:>zG#/gp_ x~>S&C?*'ziQ>jӄ,=4cgEfGFD* E)Wsˈk>Z%gˬ`e * Nh\eoZRZvLJv]C~u5.PbJpiW6vjU?y۳:uǿ?au{x:Ikvby}}>+ﯧvnt0Y)Y"%?h{ݶ_g )u=L zw40O3۴,?!x9k̘c{rU0Wʀ_oNj}8n0Q(˫nGqj[k}u]$}e)9*"Q9΄s6Q3Ƅq,ʶi?~w_1RPIz\!B5"/B4B8ZkD<ڵi6 , j=q `҇G"4%ڨDIUeɳ4MmzWYU1Nqw<5Juuue\Waݞׯ_.4MOw_xI` 0izIclf1OଥU=7]BH!8 4:BxUU!.|E@zeIy嬟HWy'! 4ů^~VTvZO)K*CkACpʣHtLsy:54V+DiJ)"!sms,ȹD)Ee:d,Cֹ,4BB i~t$.RiFt:Enm >(>xJy@ {=AOd6Zkx%F~|u{RW_7owo|7οl_ ܊`diƲXbpQo,2s=G#RJBHtɍ.aZBHTF$Bde9cGhF(0b#_'Y Ht .B"utj~;8xէG=@86Rܣspz8_浚H3jEH >Oq$RN[.2!Ic@Ƞ')e;Ƹ8[5"F,-J$Y^D8i꺎rДҢȍifZbГNlg.w.'IetSyg"FdFi";zn6d۶],$tRI" DEeJioƋ">cƘHݎ3UU 4 C$Rٳ~չcok)<*?JiYksRZBBDbcι8EQ?K$qWh$mBV~Ws6B6@*e]2'"$It:yѶ]۶٬mk=}(b?kHPvRS|硍Q2#(ݷ7w[%c97N:K)w;o/1t))OSɟvCCCI)cUfy}%s%tЭ" f­z{lg_JP!]RqO6{;LpFSgKJ uArU.ZfJ'^ ٌ+B Y]SFX%N܁J8g)&)pO#S#R9Xsum\ޓ"@E'@ xN(P= R.y@0 8"p JY@B <O00ǚ~ @1NY PB)pRN`1) $>Pn=Iʸ2#'TfuEa+!&Wj52~ 6/Llg~pB'uV/%Ɠ^7,r ϶~X^wg17avF1yPs|%A 9ZN˥ֻiy Alo1Tp:ڲ(ل?d۽*(^yk'*Ei/s"4H`p H 51yqo':8tSe2d@"wݾz6[u:ˮJE :30ՂO-zg/NÔg/Ծr]~N~e',hО4 8QR"o{RJ=r\\Xg IDATqVUcU}wTr?{u瓶~/,.*"2s]@!r!Йn؀˫E?re) $Ǎ%XgrwfU>F2t8xW^X\/{p'=qV/+s-4fKӔׯ_R4ihen^$F[B@J9iVׇAH)8y9c^_zgI\q],]DžhneӶ8/NIJ#{e]GBxBdi~>GPbUUa"+ ctX&$1dE ]@HLc{< ?blm~b Hg7/c_*;"/np9LvÏ~TEgEwbׯ,:Q04xkB]Wb2"+<;NXg=pI΁ ev|vuPM))]x: z$8a@!*ȞfNzL'(l=1㨭CE[2JX-! pN8ιEu{c00=cG!!x/[c 1u]u8A%qSۦ#9 #S &H##,o7$_PRϷWj/S W!/(o2IvcRt:ZHB,g,ʋUiFH"Fo9s}yOޘF$Q (D$2F.vE{8OvTKfѓRJkm24%DQ訶PP*YK ~j<ϧiJ=M:> ުdK)#B)~Kq*b Uv3@)rpVכ.ṀBE5$I"Q(1J%D> CTF]ק"[k!|>Yk,dYWpû?YΟ⻊pԺ,2>I 8z}{aT}:d$QY|wC#?,Q9S}t?)߳xJS SBUtøD鿄 G8cCCEbW\JI$0, [Gb7h*ߛEA'Dw293m@e–&ה=4'3M#ΩHi< `HDp>R B4r`xhGk $MlƐ)N Im8YQ_ [l.=}ęT<%"!^8"UylY%s=$,L],AV0b;y3I~de Fyeˮw3ƈ7]f xOD0C;mzgg^[~EK%kL]txCI $Cr|a6 xX]jIr "ׁЬf騋*(OwVㄢHطM`!~mD. 5 3DR{i,GdblƻnBi84]R7Mdix:.ZCQEr8l,B 8~hl?ѐdc)\\?Cӏ)&mooиwW?ߧ*T?pR/ 9~}\$F"iyFI/*ן./cӜW"[m:1ffyRhnXm\.wRy\ijh4IHm)nzH%gc)Oy L )d0MP2DD 鄐@^/O)QIA*18.#z5Ӽ[λDHLӞ%U~weL@qo^ 0{^Ϗ]k|5Ms~~vN>$r?e.{8Qm[B}/n92eA)eg1ʚV;gƥlSgsMJ%p,˻Iӌ#c\)rɼZ=ǪS+F#x8E1#Ta]pY\v,)] Dk-b2* 3jΕ6:ӮuUY9o4VV#B4IJqV}Y[kLQzI"GB1,sc&Ho3E[)ZGXy`'oXZ7 8QD7<o:^aɿS#?5?EQXkiB&fӶMJ{${}7f}~c4S+,h/N! +mI0(32B,ex9%|! @ '(E΃:1 L@-} bm䝱fy޴{c`FUd˼Tl6UQ}HL2=얳7a=%IT}"9edڪP\\2)RBJc/`UǦK,K0\ph,)m?3sG @}h2'ԛn\ӤPb2r*$NvZdIc6mߏ'Xc goZK#&#O8Jjg}9(4%}ݳ?$`HB_wk>B|sB^_i /7}a@ؗG-+o_/7';/M__oc􍪶aĜ8 G-Ff:ݥ'1jh8 |J# Q PA.Xi,>k볦9Q=SFia<K)b1sE"%,i[)1( }1QQFi4e^Un<: WU4 !9Wu$[k#ttZ89BQfi4ss6F4yTz΂sh Ea[e sD4$i$MS!˲alRV0J!5@rbdjj}/T8Ui"gw(O?rTfx'$G=8籁:jGxTQ6DJHa D*pHBM(r8B4v}|Ļ1&iCw}c$Q}G~vǧ FDciU;9NQj9??6 j= i}04M7UŌ*!"&}}Gk~p^&ӋBx8nȳ4 7?f.Sc<)߃xJSc<)ߛt#nB|~N)%?0\-~ `?p]vۑg,g>L.nN .DFέuP~tƍwc?YQW;_+p"49*"*I^[HhC!ӇQ$))χ̥fz;Kn% sHq2,m'o~Q0Q$o2!gh'qsD4W<(0J),]" !.xRʀCaސ2A ENvnN#yɕ=FfiAkDN9pJ wjo[ \myeɏfO8O?GeA%qfe߀]%OюY 6_?;{}^)^Y'c00 vg鰳91 XU賋`pCMT^8[D?KD&CqFp9-3~"͙IUfIIʼnP vyرsNQdSr&,>JDpa&98)Mzt3j@gA7m`1cG<!: AJr<+n嬘p} 0#LC䈢$Z)ԓ'Gx-TA,Fv7QeG:s" ʝ9t9p:gͶ|%c׿\*8?7rZpJhxP-dQTC癴 BK0Itlá(5Mq|Pm{ %ڲ(" Ni *8gyVcmڲ96cy@TQu]'EI .9?bx"TJCZy]7u*d^m){km8.DZ( b[1Rqc"¬QzQͷ!l=7F T_{/>IeBjbYyA_| 7[S \04MM)/77ι(!Ͽx0NJM !12IqV$T+#k]BNTͫisRi2aBiZf+r A(cJiBivfƴ/ˢJ(B}{|L \8~VVa?-Y'z7(i4XcEZh @UU4MYMcy]qCwG"@ 2uN\v1 r%># x N #Л>}%nB9G]ƻ,^y)a!z ZTĤO!D0  &6 99G~8Z+ile'yw//Z-wmβl6Mc(0jZ.)vZ,Z|Ycx X)w61w#G |e4MY&1އvrlv>aJinK.L)-B) Tjʲ,'{Z%<ӆɑ;0 {& A`o~Cuot!ia_VӵYތ1f{&!6Wonxvq2[rбm/ouY IDAT6]~wW[Jcs?6csᱹ?fBF5#_qt C}r>,m{?ޟTh?Z6ؙh9-AkE|؋% *y'']J8K2(|Ƃq՜Q9͝%Co!!PbIw;X29Q֋xZ Ab`HƬ %(UDmA@̱j)`.qiy#FYbsQpv߭CBb91xqA!p/Iu |1B> F{g)a>bRVKDfU JYNEA֘1$T]7yuhVzXcgU%=ԾdRlx}lO݉?{0ɕf'V՟~rqق| }ܗKa[^zbB-\I6fS`R5"n"|}FM\i@\xQ#.#%qT!A((7eUj @[wM[5j*Jb)|6泖xj2T9FY*J,uJoG(%!naμiTY&`qta0f(4Bo#9n٪LF1=Offw}Z6,\3ryѝ9/懭Qg48<-4R0^?9 "0%Ƨ^/ִk| `)x{3_Z(^J&Tz(( 8'OϏi~n>U>!ʈq8NOϴQ1:YgM[/a Y prr: !4讦i(8e2R .ʼk>2Sn6+[JbqyyX,(~Y?,08UUY.@EQ(e6)Ƙgy׶0C_Ŭ^_W٬cp8PJ7WY:?>wFٶSOYGݎZ'#,WQӡDRf_^VŬ:Z/ a={Lnm?UWwa9}DdZ;f>v;NVAܶƸ,qAq,K! bL)3`sDp$LZ$MZba10>+&[ ofGw\7J%w;?_;;=ᅮ6 |`bY%~. F)kϔ ]^/H8B )@ )"BBEvESocJ;9u wސ!RBM^څ rw>%bmDA^ XcCI !L3V!FtL(cB;mQ!xk]JM( ) 9Sb)@)1&9Z#R۷o<#Rp1*6MM~Iu].!gY)Z8.뜣9i aB; g{?l6Eq8Rį2Xqɓ;څ0PcmJU1&1Ln^i*f<BHsRKfaHo /^6ƔeI>B$6Y4`@l6!ypw~{9oۖ Ai(_s,]EﻮKq˥1RJX1ƪbJ)D!dAeY6MJJO,uھOOO<1ߜn?{Zߍf{~&ͣ%Y&<[Uec6v8)m?|mS@ )getڸc!vl~PR_ݎ;FI"6f_cs?6csᱹۇ=6?!fwl~GeB~ˤ( qY>'sQ}8 x־bBiٝsB \Z7" !x'!D<!d11 rZ˄1z 0Z}U΂~" Q.)aBas'3qAi^ҫ(^=uK _QnUHh(EH0"`\0z)CyiZ+KkZ0#D*\8ΖMghF5FYH@3SE;GnyᮏtWX@N0QwD6_"3rІ+;$<6j>uMZŒ4`\=(F C,w(s^-՛9<%z "<}{zqjPIxhil>u-(%8?U+[.gC5I~u<]ebe%B@2IPE1̫2m`觓b{Op& b,(x/Nf:F('>`,zv}}=ex( Ϟ۫8zsjRz/.]!V}fs1f󅄀TD;uUji^Bʢ0vQϲ= ^1U4a ec"<OL4 4ALңOv;(ƈ1:MSX$c,m ҡ޻qTs2F۶~fX$G3N>$K3h 9/1f!2~t?O?PCO8pY7^ yc?ӓv1jDj^Շ:E?x/?|9/=#6|]Qi!ss'\\.Wrx8̊,BCYh#1R@ZgL@aȲijѶ-|觲,E3Bքg-49v]gɲAT8qC䜇r%M2ƵV༵NJiZ3T!˲ fkLd3B(q %JO!^p o>+f1Fk ;|>?}ea\ma$Ø1!YuCe a"hm|E(bLLj]Gz`m3Iy8x 8~o#k7G!LO,_)~Cw=||_kpwI=|A#~E $uā%CgJ#]"P1D1֛V!! wA 1`Ap}ӹRw1PHpm B_Iz%bdw0e#! }!ݚEph0>8E':qL2es# ݩ01ޥ&p5 B.D˗/CB] I:)#uR\چnooϭ}#}sQvYBLXJ J 0{:)eAoZkq 8rӵ!8Bv-9wlf}{{X,`̒V{F(t<+c}v,˒EsR&sjON$8Y:hG!8=I<&7qg2 SYeO̷1m[)eYeY朣+`MIIs @ !bRC6@rn& |dRggg]=yԚ}3FwPpv~qT2J~QqF3ɥ2Prv~Vu c"9g,>!x1/`'btx1$\Jgcs?6?pmxl6w~s#U9=]s;eGz~x杇YӵeU4L|ޡ>!)۾z갻:Z۲,i#㓓RS9'I1e>u !,X7B}7Ҳd!b-!VZS83P׵bXIZ,uTm۞C\HWz^ N./eQbiV޽2OLHjv9Y,??u[vNVm9^;/0c\-]"{ƴvM[wgC3,v{;MSQTI&e޵} ?|'EVJ5ü* /f),*˲m[181D ;3kqB8qv;+Kkmi$ !@VPmĔjtK>]٘cKɲlc `ciL`m`A.2o"%&[Ӯg۶eY6u]y>zB?wߘyx诠]*~5kŷiK^}% Cxq߄@b ".PB zbL!BZkeֹy0B>go:>6 _ǮyͅI{a~cB@l?&QR0 i8j&Cȳy? #(Y# ټ:Iz<7nKDeBH9팱]e)1˲ib\HfeaJ `M2m{vvw5|¼ZtC/E>qmVkmQLJ{/H3p`: l.$KmۗeiiF!D͹Cާ<<6:6iRIQ L@3FCԞʾȒ!X4>jԽ0$; !r 1 F89!9)RrVNjMSSz50L\20Ec`B4UU&'t4Jk `/޾{K\,(rq8$7#c,e6!.0DYr{#G<x#G<߇xA!q LhCW/??w/^ƛ0_2W*rEw׫w2:@OeOV{ ZQ|+j0 z6!k$7>RK493nٌr\g~﫼<+܍Fq̪ P]Ra,:o8", }QBdD\.LH!@H+w; @)Sb䜃 C ! %xG210D[k4x&$8{Pax#GoaU\럿?gk a0.k1c7"x~H&hk=lD\~ƽ|dd'Ŋ>v/.r9I90(rFzb>ͥV^7{L(|ot W\'$# لSىX/zX5`8g:뮮 6 O #&?tAP4)V F8 - C0Zh= 1!c?%#%WfBǮx{]c7b/tIBv ~d?p&vSzEWC=s%k7F?9=y}uY"[i [aC%q7e/}74]we~<"~ۏ5qciqގz/f賷fSFˡ̉TRkL`jc0^"&R)3G7( ֞nUi۞^mENΞǁ"&H 1a5ϺG^ C* ]>ria1c{J0!JZ &ͮ,f#j9Yuy51ZSfzTДx~vr)dvðl//)Rae&3E1k(=eDkm<yer22{RZȺv0؜qʪ&LÐkcMΊ1Vl>yԈ>˫zu}Rc3[̵U>.˦i2/>DBceZUcq.b Dk}'UӶ̧i"k)c>!Dߴ3B0<80*$CUU}XY&')޹pC0ALړwү0߯fib_BƯ? A[u%> ï7Z _>龯K.]Q O11s IDATyok|OC0R\?PhM:c"" aG˩%z!ф1Da9&8{lB e"(ڃb7c BprOHex8] DI{1yB0%pON## '/λ<ˍRf4M$0Mn"ckBH8!q(Pj !ΪY"c}%_tFu&3*rcdR&JBN1ʲ>{ci"ZOӔ9Bs޶fxccO&)Ie4!cLHyÐqqR{9gcb}jkq7cLkUR*O7M/jz! & Fg] 4FG6IJ&A$щDZðX,9M`[E@i. mcM!&C0sڗ$!)s!Xy۴!D)yAJPJLW`ű-q!1#$n3O gRxwŢmqe1ƾW0 !ȕR!DB!tsֹ}Ux#G<x#Gv4W1 8Feq"7hFi#"C!jAl/8~Y ĒѾW#7c//N6'1qb {a `>__]K.m߉,L PZ;k,Pa8==x9?LZH\߿dJ)\짯>Dyf !~]zCaZ,W#b 1Y7٬2*cc-#D mAJo !I%7mK0Y4Yme>yh>Z-ڮueY@j٬ra]L >bFL`*5A^8=iQZD@ƄIK)"Fdj-ךZ8Ɣ'"fB9g)gZYb@0 kmYRzȤsX@9Aqf0)5RGR䨵f aJBHt`cHTZaCIT 4w{@ ?~~Po䛡מP>|g~}iz} zV77~|W}?˄ߪ𯏤¯_G{}v e%*qWY(9܍g ,N1yÝ_=Oy1N+]1FL BdYc&"6 +]_ B0&>*y-i+B(B@^w^|w^D<;S.2(]:QBUShBHၐ#|_6\k=#&$q)Z$Ţm۔4Mm =\-st^.>Y OӔfs,φqH6 z-b]%i!2y8+|*a<==mV\.S*Ë/Cr'Ym:Veu Ҋ1 @21#LCzӮqLm=3ƒ|yX8!B!Ψ{1"ygMx1FlVm81#RO6ƬV+czZaӵJD{SF4MI6}7Nֹ"1F>3TNJͲ B<%Bx֎0ꇾ,K3&ϲagYE )Sv"CѶky5N(cy9~/C )M {(ɲ>31ʂ޺!_qx#G<x#G?xrҾQѼ:<5Zb qPgۦ%CLݵ+ya=} CƜ/ب#aU٩5!XVD7t]ӏ?="]dt>WsBԱ3 @An} Ca/alj<]921z8M81 ~>2 "tZ\}  Z?{.w-_8C'orsȨb#;dE}ϣ(7\\\Ov4om  shʳLgE֞/ka&\.>Ě8 -ys%aPe#;?o>Ȇ9>j(e C>]b&~p!d6zD_zO)2 rV-USQ0Ay9g&!$R M֧''}߇{Ikx<;;Ʊ, TY=KQx,d !><ϺR6uG e m^]^|~oRj>?=\jyy{!A}G5Ne͖lI0>|\Є&["|L}dzY 3H&6QfB@;fcu[Սr[Z=q<"<|t|V]k˪T2\,UULӐqy\v;9|✝7i(L^.VnG]OEB_xivƸǶ,CgIvP }YVcR3,!I`cRb,Y4GZob/>"$C:璉i0&>^~4rv $a n<}B0 cC@QJ!$y&1$ZP$73 8=9f!P#EBHnt(۱$|Wo,oJӻͥ@Gn1>O&yg0 ɩ7s<) N>_gYVu_N̋"= WpI#Ɍ}X$9ݲxEHeY&^8~1sy< !}ߡEQ)UE`,iB̳ZcL0Vu&5C}8M)%9 kaeI0TsVk]74 17'Wq2oOBm:iqy}%!oBIQJL`k"A .2]PIei|Dz,1Ƙdt)MDsB('Pae9ʘs/Z:rCBRRDHJ1("1Ĉ!f2zy FUEBJX|B$?_>tqqqqqqqS˦}b̊n4gu?ɜ峦zǃ783'+-ys~f}9#z1~'EhD7Yy`UD"Xk+01SWi+'(xlU^c^80b#cԛѹ_vqQxeEAIMA;X7G VXIAr;H#bKN ="F4Y8"gCdpGP"`%;DW0ag7Pa}p1`up0 PVJXds4eNK A{峂v/Nh:3bIFZvsrƒ<ɼݢ܎loL@,qQHWq?g}FV%,zσ1WGH8~-AqD| nce0z6֞8xYCGԅ,ԫ/ 4*#^m-,c`l1 ˑQ13B2p)/=D;K8+r"XZ~q 3o^#Bn :p\^/o qG9(բ - y{P Ub ^iO883+Of3,ƃ!a72΀dC̺jgBy6ux j//`szY&E;c"w?8k-X7K=asxw8;絞1l1 D4+R&K΅svV4/LƘr8e?1EQS?tmRdzBBqYֵ2 m>Q8Á3cDeYv;.d$ 00Dp;ooo_~Tq8彯*})/>23: %0&޻*.C:q1$ވ""$@qa(!K _2fA0vS#DR]J@u8{nԪ{í+p>DD !d&!%BjX1qcu]cbbH'r|bD%7A㱪!$dTpJ%ĚSpu= Q;[NC[N8}idu]mkYV na\ DMg^DRj&suu]OӔc`\֚skIS⪪J׳6FlPUUHhifa'1mB(!D)Q,r_V1BiZ.jT!> HU4Ai!Ju]Q-O2#ޕ{}JYc]z.}&3R1sF %K!zuX D1J %>DTCkݷ7O}qt0}hV!h&5O@ 2ɓ7Fևyֳ=?3*$KQ_obȣ,~ /2'O/E 40/>e͙ E_>=ɒm'>F׾ʌvFNR\d<],%D!S;e4yɹ\H,1uP |0 |@97j&(U/;fQ cMc.eYcゞ4K1tcNbme8]<ΩO^\x7ř/Bv1 E&OMp^~q5k'4bJKvOW[T\fiåݽjB],q'p #gٸ8%XTf.SIl?9L\>dnƲl{ ,^^ ͚<+x?bAǀ(ˣn{@HSRe~Z_8!'( 3-a0G9\x49tbn3, U gzvZp(cFGO y?Ŀ &m}Nh~d/Ξya>SOa|}?m~ٗϯgU?O/Z~2}`%/vGOG3?z?_]w6c$Pf++x<˜0!6 Bӫ/ojWv<(~M( 1:ɛ@% bfXg)z "sG7ȥu˪oۺ~fZ}Y!Ш !Iň)ql_^O1Fy2φ1.Uugo6Wp___v;F2bPJ2sΝhcU5"ÞS9??}! IDATuU-^)Nve#_|O>~ѣfK9LjsM1 !clr;:;[rZ]]8G\n(WE^ZO1-"r٬KAWoʲl{B'PIE싢 Tu<\4k61D@pql>n F@mw~~~<EQqD(y]UUjtȧa(4>ӄb!b׶gݱ uY}u=tV0"NFP!-Lϳ!pqaLƘEݐeQis#ʲ<"'eUDrb}_E(|c+\pJ5iRI"Z> K(2 PֽW*oyC//|*!‡U[}_|MqnM}ZtkOo4]zt o5m $WT˧ijLf_D.BtR2ƃO) j|sm 1fӦ|DIVbF|";_^Ӗo_^j7D{t.p bDIj )pKlj/c@t [ ,Zo7XHBX0 9tB c,nu]'Ehq }I/:m-"2)iԬBBe{ZƉ1'*!tZN✇C?,Zcp2f!1 }]Y]^],a`M #m6bzy81!Lf?.>! %~pC4rJ !ݨs>O?҈!1Z[{W9~D ,o盾8z!H~6Š<ÆVp}Y#/*q~% O?ݵYaf3⺟1JyٸhEsj~ŖNeyY#r 1c:qY1;t%{ubsyܘzYej31Gl;t-DH@ f(z 0f< b|!H1 "0&ZB94`:1bF!Q3p*&τnXaߝ.U (Bv5ʙI`ԃFΓb&"AxӢKݎEm3ʲWG"&fD"R_?Ǐtژ;[AلOs|0QLWG)]//?Ϋe@h3YN嶜<>yw-cɧ'H;liV`\*xƵ]G(-SOe\f;Z,?|dV<<\>zRjV=8?}K&+eNݰ}+K9 = CE6+aZӧϬ5F]>z !GB:ϲq7y^^_oNOOє4 %Rȇ~hfIӳb͖qIi-jRbHTھU]qZ-F?NӬ&>R`.ܫby2M {Nf4MX!%c83ԛ7WUUO3(cŪ;)1Vk4u 8S uS]_^gyuZi[]Hmj (PVLyg3 #'2Άqq!aKPjvE[F)!$ϲ,D'L6gY̳lT:/rc !<Eg}_o Gg8sNB8}<!u5Av27JQB h.Xrp<36N##Y0#eddk "hk"Bm"e%SBH !a,B#p%!ަw|{3ۀoB㷶kx[_yM=~c{_|~[:}7߷뻾nd\-| `E@ʏFo;d!5{1A(l0`H̀!@{o/@q'mBx1ɯׇ'8@SqPӖ)%Ɋ8-'{Ҥ w ! I Fx(:x$Y=aMӴm+`k174M{dyβ,"8V M,Kf@)>Yg<ȷ4p"zcWgg]!VƠ4M!DFR2,'Bs9'X,}?y)Pb-T!D&uq"\HaႻI~;?wQ۶w<o;ѬeY@2u.8gSڐBާ;vJ1QoQ !DJH3Ye',?1֩(ik'+}/ZmnF5s2nw=Ʈz=CQT.Y(948g'}'ZaLw 4NeY Ø$?m+5/KݬtҠβl0ƌ1Ƅ 4I!s{G}ƚrpWj7kC  92JHLkܾ0TJ ( C#@9?pPO9}>wLvèR !뜱3>(Bq# 8gcg|_{5Jmiro3z藯Lj&2tR (mr5g?ȫ_(딚mqR}˰EeeۃriTԋQa;s?~_4wʈXg\OOOif6eRCK0|+!RB0c0ih>3fYXaE~seUMJg@uy#ۋ mu]?=G_z<{buk(M=YEOUU5zT! Eܶ'9Ǽ(<F8!Zu]!C#"|s4/Wm˼piw,''W[ǏHZr8Ldٹ(], x2[sF)$cLIf ˜hm0c溪Pcc˳ qmQE휝&9# +0JceYɜ)5E,ɰN`#.rrB cApZC!jm2)1z< 1&g 0 -c}1D 8hGkK҈B(Fc6NZܔ&;Ȥ 7ِ`I:ɍJ HJ3_,;ww [w]~k~wa_]O'|}۵QCowmUJ&l͒B@x1H%+qxg77&) n̄4ƜRPQ1+ e#JWx38@(API8fPydtBBH2tk/ш"JHm UbMo"'P8;0%7Q]s UyE'F9q>ƤcLi ײ6IC'gxk㚀^)0 Y!6Ȱ"ՏldRJ%(1I8ihu1)n==;93Ნ|mSƫ:EY)eUz!`LK§˲4Ɩek=- d<|뺷Ǐo6P۶I{6c{l{?S^41PI(rZHBBXk gRՍY,n&Ƙ<ύ1xM)˲e 1xlF9Y#Ͳ,#B %kbyONNqRmۤ򝊤x\.]%t@{N J^{?c,ØmX,IQFdlBB&:p'C!H[C%Ci)BIgY61 MB|uB11 UEFm5}gUg6Q} J a [0 Y" @>09s}Qv2Nާokܧ>wq}qtE]0A]80:KR]'-~8uy&IW'>>_vC<[v,JJD&IDz?9uKxz>+R=\e>yPmٟWftѪ'oX]S/p*\D*JVӣ"QdiL2ׯ pݱ.h7iڈJf`K1 Te ~V^4Š1'E4TDDŽOq wz@dYI6`l \ D9&Mp(@@%8Z`;Ǥ"U!B0NKS ^{2B|JYc1^!Ą'$&d2 #;-#Z'W^篥GEmY/@&fO%>}=S~`?H(q7B/(_⧏_r5q^=heVaYNdy-{qv^^l|K+̙|%p8/c\YrEglО>{ؼz9w.X#3!.0<~ƒƒlmwOƶOΖcdD@;[m5vB@ lL8onDЫa4w*'fOC%((6,1 yf/kZeѨ_'<`" *؋VŊt~.̀R@Ut,' g]Qݾh $w:Jtf|m7b8/όzɵmtvRDgǣ2||e/E4f2G(j^,n$8 JGON>"#̳bRʕԤywy cZ/Zej{&vłbmzLZ!vwgBq0 BHԇA཭23iBz &@>Īy2c@4.k|w=p}g.lZ[V%B(0y\JmgЪY!?R0(ﳲ,8L9u/C΀Q;O<ϫ1LDH\(%Ƙø\uln e0JY>"$#guUW808ߩi%ADm?,W+MC*= Ӥ!c@8 ąqTɜcLLh@ 9餖eƸ( cl27|轗2G(H0K)6ܸ$aw woܾξ.}ۏߌ}}W * w:T|Ю nͷp}{綏-^6.|B>3N;,^?;YZP⛆ 9!mMZ !8[5cb9b!$ƈ1 @I!x 5aHUwqMGBj(: ZCb dB1%;8 UnB W!@PL/ysVw1I&nh'H82!DvvRֹ~\ZkC1WJڝ0`uBBȋ97MS4c%s֚˲ʲMGJ .щ51'X,Z'$rmDNa3ƦiC0cl'BI62k= \UbBjTCrQuu1@hyec E1#9˙~`rBI^nMU 5(|/#r-0b(g ϺV޸ 4okYdm]etc{tߧݧ>@qӽٷ{_`Mwym?Afy&3* $O>yѺֿx-@qE [T;,c\4H*7%i榥<*tv6G5h c#03G(h:L ΁4=NTrE5eEIJ"|t_^}/.W, IDAT2 M:2Zb"G3f4e9kG!:ky&F,DpQt>xyW\^{"H,aC) !e  h3f91,.(,xqG7yhQJBq褠'|}XHe͂yb@k&4(.QZ { ..+1 sSX/6^Gce(d/_+}E3(d:ןb ?z">LgXi| )막slG)!\nI_$2C_|>%E/b̆ 8@3q̓1pcyFla Je G)k2|9P< //v; E6$_B&,*elY )H"eyo?W'ZhL|RyEznI~غaw_)D/^m\Wxl'bYdzBm<}%!O#ЋEu}ubie@(#M0F'!CY}OӔh?J)q1YkʲTdar)f\.ʲڮ,KJw9B,RZ nAQJ !NBQdm{`p*qyLj"tz"8Az1g<8./^y}8tzKkխ# 1cayBe}9MkK:eAke!dyZ;<۶;uDp5+ gSIM6ae!"vm[W8 䄈 Bc0י4G@ bbcm!z0IDĚØw0 J)9{X˒4Mf3M=="##3*R,RJ F!!FÂ,Z  @52*2#|x;fY{ϟG@eTӻc3]4)E߳63˳(B8AY^:_]A=z6s#aT}8D"|D׈앒qGk7_3_|+=^AѥbIn~2^62ukn@|ŗAu:x QJ!4M>880dNpp%`!@2`)`crM)኏KSJP)QJ1B1P 1˦CJ13>KrٛXb¹R6C1e!|5)RsB}ۑٳ1ccB ̰wB AcLMDK:f"8癎/|el14ߌevdRvm&+Bg5•EFY]Wr2J:| cLU)E!x,`ыS>31錼f7T}4M Bv-˲if}y&VU>i{))d&˦Ag c B8!ZFsTa^a>m6kJsNBRT!mᜇ)m P5꺡i4MF^19b00c{p{m#a4!} >?:ѻfL>ˤ)VƏ% ; ]Zǽ:=Ʒ-y7K`Cx耇6rkKP%SכPi$fib$%McprYI%0ݞ*&P)mKb@!yLvH(B D1@ļ]tct;B%(:S@q]6:c̋Sǭc&N1 OWUNۣ3;aeJ{GG/V#'^o;_?ww姏53x|N>x(lⰑ0Nj\6جZ`0|4T^Ukʂpj?A]+tԈڡMJ%v.%ѕ7p4B֎[ʝa Rdsa9zvO>5^wÓ33!>9!G;VVNr?z<1=TIyte5/fUMǘ@On s~q ZC@M)]`/*ˆPB?9?/OI[pg袕WUݢgv2=ӏUo>< ?[wj*zr;b)Q[k./a`J)ʸ.@;k|[U/'>$ea-+SڌÔbq1AZ)wˋ4DZƳ1wclgggټ΃a2lf)qfbQ*yY!,tR҃)U\-Q54m(gJ]oFuCʬ1is|zփo7;*p.hїh^&3j1 !ML&u6ѨiJvfjBm2J Vh4=NO1BV /RJsBt:ϐgm1dR*f'IiHR,n64ka^5wj۾iywRf=ٲ,i0B*(M!q.뮭 0O'e\Ɯѻ;Ӷ"vKG"KR1L>,rk뺎$\y3ZUU3d> gz\1Ras_K) !W2cB"kR繓<2*{t{'$_]y 7F"8k+]K+3>/վ]{B޺ !_.!=)\厄at]}_Wk~AߘL&0dVeJIpaqʲφo&(#@j/g  32)>!RS>+]*Z NWĈksw'g]^!|mgo  .{( T1WsC3S6oιog،#bp>h1 6M19.8,K* YP:;2Xb2wv'H{)EFsq6+*#Ff^7hpv;/˲<9>C?(%3Q+\x9gZ,lʹRh-J1d|B5Κ18g.0 eY{&I&F3)1ƹpΕe1 B*q۵UUVaPH1I:JRk-πN]n6lʓ}vp ֦20?3[Bkmb!bc)a!{򺮳Et(cEQ$Y%( )sRB|E3S\הM)DaB8z~H mn6| >Uq=x )P->$c+o QSŭF"BMoݦ'~oVvo! R/bZm٫6޲ϺnQ`Ӳ*2_O8jx:_?~r8ze;isR ,iGFfe;lS|wO-ZmnNAP [X@ݱhO*:tzVmI2dKV yCݭ|׻wI頓%EgSҸk e!Bq (y+$.E8ظ`R(O +( (.p%Oh0F.D `/+ݿ/_K?8}v&0GplB%un;?=G,jS5^Q1&7)ir rJb?ަn _??xFStRN/泥x ɔ=3i{A߿m&&AqؠǪ:jZGKue˘.9]ޝٜoРѤ 8zE4U7 t#VR#̦x2gC*K8"xxjG [hyT2Z kYD|P.Ahӓw+=|\:4鹦dTbvg˾a# )t4Jnφ^-S7(H^l&& =D]wʾ7)B5vM9՞8_jk U-ۡ$|4k|Y4u(u^c Bbp0!2wʥhB@ >Ά< tl1?880"m\𒱦oQvy1&sɓ'OxmGCcpR<A3cy!qUՅ*c|vm[[U]-UUSl’ 7+ݷ)OOaM3*r:@bA8CZ'+݃ Rf\sF9B\n6k(AwZk!a(s._oy( b"DPvwnۍ2=;WUiwdlfjڶh4!DRv]'0Oո\|(,e-p _П?o?7#f\G1`ĥK4<&+J`0! RK10{)$FB8fBN0%$Đ/,4 bJg<$Ĉ J.J!^,ݜIF1Ƅc)+jT#BY?n W+ĕKB_8胝ϷUH&EoYdtv'6jڛG3:wFDG e+z|D!υqvzbw~Ѻkgj;O:| bE.I_Pt V6hc$陓g1''=za+H=GS=ԖDQdZF*r$Xn{B]S`] 9#CvHX2BX$R0 )\eOW]'Y@1ga@cGk+:4)[7adD,1^񩭈ĥ%gktd}B?z[-‡OORoUNwd?ơœcC7 V5gGH=^W~*'i^sqG!_imomGj_DwGO SL ŧ(uoRS%o@`o H9kT=<]t/2mbiJ>~UG"c35<0#ѵJHcEC'#ߵ\f^YMKzw*~gdKr8)cI8*m!3F yԶEj;uH[= .F6g/@ pGpԑxpoo||ޟܸQgkI@TB)YQ $쬨 FZ&Sd]wn78mەٸAfLBVۮۘHSV/N7;Uy\5j;oxHny7K>zϞw]WWLr$`-ӧGuUqJ jUe=.ݺ7)t\' "@UU׫E %tQsw DH 9 ]5t2{xH){lm=Rwwb'Ƕ7Ζ,|({o[ ~]\TE:XIf[r!X5Jk Q!QJv5juCUmͤk !m[BM\*.(oe4 rUdG#.zہ4&KD{\D)v!`F<&rhKUܬ\D1 1Tt>M['(S+’R5I(.(FĴH6 B)ew4~t-$x6{\LN+ c0fRDdCYB"d65 mFѮ۶gU~TB҂bc>bDkY( , E1 (@eU=E U'(9eTc PL # N%9 ?0<`0A7,N3BFau-›% ?K0z)A\p1! IDATE L<|ݖ+ %/Y7D^._T.şdJF93vR~!Є)`yp?)e20Ͼș\.RbVffg|.].=$ +]k@)#c) b1&7YA: Ji/ QJ@ ACJ2@;*ýy&piě|)~%\KT8e>qF @'|'W2r1 t9[Bh<^ A9 yH4b % ڶ˙*2Oa\Ji:f +fޭֺ( JzocTU1eW!fyjg#@RbLRB凜֘w{Li<B2Ν!7DHu R<czmEQn6h %0 UU!JYWZbLeU# ٵm>vvv/|ow뺘BYU`c4c,WEOD[,wWe!%Ϸz,_tվ!tf!dT1yO56osܦݦ6_a?zOn_gc6Ww_ tkmm8p $kamŭ)tҼA9Yǧ<,'g^.US.hBg~`蠶R!|lR4p= B;vu&V?X+˂%Dv?rם =[PKIY}pKp*N+VK:T|U=_w&Ց#|>ؽ lڻyQ,D YpvQssjɝ*-\Eb3VaI_lЀ贎)G#}X)Y1Dΐ$ :4F('B@ !y\XKqc)6eZӔ`YtlBN&)L[E[A6Dɟ鹻36ͪt֢|ݻn(ڤݚG]*O>()C(葃vfO*KJOýbc4%|>TX,L5֑vEPֵ N)\J=eUB !DŨ)ozDŽ9 e1aC!zuQVڲ*{=LRbU:=@zQ۶)F@K1N&kL )a蛦)Rys= UY B2nU7Uvɓl)n6a6;;;ˣ1&x/fM,SJ!0 Ѥv9LӋBBBv#*2lBsv>c8g>BUVιl-<1BRLJ)_,d]]2Je-gaι5:cRfȪ,7 B1CBҢ,c]וe}ZCFLË0&1EFP_׻;BpHR*L1x@iӌt'\pBHw" J)~[V%EILL%v+(kmYBԵL0T9YH}RZk2ʲzѢPRРu3b*EQ];!p{eE%R{ʾלa,J F=B 1J1!JіQCF"B.<>O1ɸ[fW#|!JQʸʾ+4x—//}T32)QĈH^%_QO~7VC{b_-e!1*{kžQ+p+=`~Y,~~1 VΨ6Ao0VPV~.Z\.)u]2K榔EI)])!l|)M!`!fR"dLΘqoKr/e @9DHo1R1I)^ m}/͌/K,]f(uuМqׇCRJ:1&Ju!$خ7 8CJ)P!c~Wk#hmm7͸dRʌzʺ;Ƙs~7tڶ-c e'"F+/,J4 !B(c|Ol|yBl@f{qq1N3_cfG~6Ϻ0fr·aȏ{^VΞYc,4g0etUUu]g5ϱbe|VJkJi4R.1OSw-21m6k 331|7^1S׳ c/ˢ*W3iH.<_R!1.Ƅ1FF[O\q>[g 9XǓ|1g;;)˙ }#?ߎ)^XV!jm6ݿR3;O~o췿/?XOn[7?^/R3_w4r$W6鱏$1!v. ܰ>" bdZ 7dahڒ;LBvUDB%{N;9L=ڌޛ= C@_? wO.(NG=sf.ӧg X=xkKHz41 |i^/:.}QY Q+ODAbeհb## #n":c-q> aHAq1}у3.mb"zCaB…3 El•GE: )"1P&)FoX`^Rm*t/5kgi:^/?|aMr'O~s'ȸ꿲-6?<{6wvR߫ @PNnyBͷmg˸l{w+HoOm jtb'&K0W~zad2!0BK q6mQ•m#Pi4$Dr}U[C_'?'P%/ɛayƲ^G.㋮E}yzR0d cuEt$%}߭0{x``;gݻ8Y#'Xb= =ۦr@ C'tYӶƔ|<0R%b=f Y vg4;3K7#>&p7O1`h<3 %YE{.9c~AP땩vbA,U]n6UUwnK0̾p?ґiI,iC2mwQ  %uSbDf0%fTim||>H8WFI#HUrc'є1u=BZ9O1I)Q3{1TUCf4j*b>3F|A]U< >L2i{Bd2UU~CUe֫XYG;;0deedmsj)Rr֕EY3;Y@*M۷]Y>7`5&RJ0H)cBh4=c,Sh2clvzz fQ<^-gѠP%F)E Bh=BӌbH89'@֘"BREZqw]QP꽯ꪬJA"8\5"TH&F !z< pm \J<&D>J B#kU.D6ܼ[rHuX"5$|s68C E~Ŀ6aޗB9yB4zװϟzז7ش[^/n^q_%ڐ[^)A51iB|MƄ`J^YOˢzmLJ 'o7&8*_: fT!zs/%ċc9IYw?"/_Q3ٗ?c3@H)C A@cF3bJ2]z#|栔BJ!FR$K. /F8spiJiK)!8)!J6 .dc+3H81e 8!dPDԮxpuNs}bL ;? 9( +Mbe1)}4MnBA)նmLih|l/m9ΆJ("Rvj-$:3ibQ&5g= q~ s-]Z繽ZkTYm4Pfh1Z_>Sپ>;R'bG31׾VU3gt^CRbǫjoooXx0 B'ּ$U2ʲtod:1HyNCf0s]qt[(*A$Zg,tq6ݿ؊}3۝}ÿSowOn;_ppk_{0~uosw_X-x3A۷Rooe䱬/'nguGGUbkjTO ~CyrŸ-=4%h::"c;/hFzM{uH.a3ןzY, ?x~U j=[ٻU`">D9ޝ·5Ƀ}L7_lʉੳ9ӂ!m߻}\o;UM!/zOlt,w@:2ޞnL;^)`\ֱǐbDH%.WUH3F(%Y ڡŔa}߭ N.D#nx!=EV#鰍E/&pObƷsWdJbUKb3ÒK v\5 ,c^޽wQ!x;GG̻o !44+6}Xv ?AiԶ~z_=7Xr;#-{S~Nx8}ql;\*#nߟO8ӽ|~tON,=[{gVG {pчteK mY|1<3G̟/aW&YkmE1 'K#swzn);ѓ#wRܴuM0Q"FSʫ΄Ya:2"w؅6 vtatjG a EIu0uk@߽EGO) }hS )%g֘wvۡ]^$U ($J ʾcxХ&Yn$ .SI)Ƹc }7gzկ~mZ)%s!x.%FRM3]K)nRwٹ*TEQ0tHH>ߙVMU5elZ잞 % =z(AcGճd\޽{w݆cEQA],mBL !xF9^BeQ^\\eYUf9sYo Va:@C۶Mt]݂x"RJV"B@BO4G(>A! 1F$(s.cY831!h)UR1ueŔRBe]9i[%EqC>B ccČ$j)c} !(8À{gh1P"el8SRJ|ԕ e euwN o&` x*2 !DL2ۃ2s. *o-c0N)^"9cppJSVeL)ex|(z z gG?w"r#^JYH0N1Woj8^ٟ 0~o{1vKOo \~Nu7^s_m/B_gr<¯{>_,g-MZ R1QG& f_VoRόQ@1 9%3C00\:)Se3Q8 y%h) %ΗF)s3c"g598_A)\tK\Mk~ Wl`Alz!\N܈1fBMצTQ{۶k|6ǼkUڗivǖNGN$ P""<HD@[yE< ;s]U6/caiI:vTj\s5XsUM7Bm]kuJM۴+!vMɜ66N۶MjDZ*tpaIe; C1$;Nr~u9Ca2icsGˣn^v1> Fs>NJ\:fs\WUuId<#<]<)yʲL[^_a46U$D=Bh:& k~:IlSCQBQe귢}?4﫪RJeYVnrX.mۦs!DY8ki=5 dT u'Ɵ>N8 Dʡt1zCAs.Ҍ,@L2i!tΦ.d%2B{"BzNrRg!}چpm[u[u[u[u[bǯQOTt?7~Oos.鿭ۺ#&y;>¬;d 7(,e”]߼=,_YGe+L͝?Q^^#|N [æ+9m{4[)PU~yA`2-~U yw[:5hgeZ+@k/]%AR]EE :zJy2]"b:;.?ԎdsL )\##-l0y08B!NG@7F#F7dN`"aP kKڧk=an FjvqsG̠GHuwڳݎ@Mݽ>o@SvOR-OS;ς&@5X;.t32i{bϞގ#VsZ8|V_~ƼjNgûϾ5(; +s3*sS(){ I g'[/ۆgh~bu5Λ,c IDATN: 悽=b`Xss gm*s6z [SݛT-ƨbHGqȜ9B^n[fPūޛFPRK,ר:&GC9-wMۡMkv&vqFxg6b;tTﻀaƢbj{jYm[ESFn}o13Z+;.׃spR1CZYd:M].D.)2!;(d85rsQU4 QbtDZے(ةz1m6Pgz}E<%\);L?20`LZ_2gz8c)4J]ƸmweYrΜGGfvfb6a4MU+ƘѺ,ry.$^*cn#7޸nrk]02EYm?>>_zcwZs>Hu,dnIݔ>o6E &N);Jqc="Jts@IbBcIJ %p!G)Ҵ>~:%&FI(9 B0yo[cmHD!]DR6Q,8!J)͢f#z,t1Jm2QP)̹-8;HB5c#2Lt`+cƤOcĔr!BGKYfbCdj}ZgEQg4 |N*=}eńEq1΍1޻MTsC"l" akJ\{W(Ř1J.}cIMPkq_~. <>|q/,-Mv=F _P τugdLr v+.0$z* %{felkYwNٽ9:A1\@PuCB!FJ &Pg1F!R݄">W 2@ zMHÓ!FO]` !F.C7uf6$M^Є`Lnur02Z_5Uj6a@tZQεq79B)5 ݛoٶf],aQi6" ",Bp.tIQɤ{!l6E\5VE)۬!Ƴ˳im F&l6]2Z>,trΥ#e>B]}F!S*m9RӦq3Λ麞6NB(i3ֆoq)\BbCYZ gMN#FA[c=>>vt_vqʼwhǺjaL҄N{&*D1!dnӈu2lr;BtZ$4ΉR1UUn✵m;̂GP2 n7BlYRvyh)(8N]s\~9gSAUJumnnnnI[?WO?s?{;o7O/_3S?ܿnk2/m~}YkXEgo=:_7?= _j j1wfR1_9)iU)o>_} c}x.|%}zƽRT":Pcoڵ,V; P= -<^NOGNQmYvᤔꃵ#=z1{Z}rp u}n`a#Go:jEA3.0xt/>^tNSt݊0bFz9"p>zM@1"bc xGPyj!ư^{38Έ6sߎdB% Rfs*{zV)V%^_+}-j~uvc.K0y>#<(_oЏW^O?`][ н|4sC_~)" Fק|w?AY^'߁{9ͪŷ.wON2 ]Q4/ CsUxƓBޣrۻXw2^ݳ0ŀ=۹Xdjc‹-ZKh%zx^mY~2ʲ*{?E DgG.C_&={N|ﯞzۋw?⣫tN^s4l6cWWo>|KZz)V9:N\Lgdծfse nn}!H%X|"9- `JFNOƎ6}ΝgF(@^i ~ɧ GQɢ, f}|lJ;*lL)Ϟ=#Y뫲 i8}ucsh|ed˜fYk1J7Vk3(B(e&:g\PDF)nW1c m !|uU5Q.klQʁqVWӦc#@`l`yQ1F"$c g4ʼ5ux}HT83RLxks)kF(L7ζZ碈ȍrp&vAHSfR!8F1Xs>]Fi^!"9MY7>~ϦU)5FE̘11e'r>v( 4M#nx-b7rJ!2aJo4\o8bD_(""/u-߶r| ~y"Cg_4N{>%.KQLfI#c;.]MC!$-yt Eɗ>B>xB7CHq-&Ę\t?- B:?fN'$CLWP")B{w3B1>\?@B8<0Mv;c X,msmM^ͺtw]JM-ɍ9>=;vfiBMSy1Fk aRn}ߧSQι~1U۵Emt&8ƀ1v- )0ͦkcMUUv-cKMOQyyZ;8m\61YFN6YVQxqrN})!K)<%,MSR罱6 '!1L316M<̗QŒc$.Q84$ Rƪ*REY&}HK9 !0Fo֜,A)M)RlIƶWc{ku[.F{e" FZK0VfBvΡUXkDRcoAzqmmmmֿxKxڿnw'[?sW/___B}u[]S;`Myu=ʑ/N}p>{'g2'ngW;rjN8(O(s{[O$ IjE}tiYIiVTI{c)U&oF-s-C3Y\HԱtc^yvsr:/z5:$2P:s e/ٴv+mnXU]],f#È*6A^_tj<.xz4nlhn,N._UEᜧ4&d› iBUUsJ9|g`D&8nWսQoܭ쨃wt6Vt]EWZcը=bo62!y#NJrh6ƀwRc Ql%\c6),˾grkl H)u]/ uS!:%tF)c4p!c)`ysbgs.sc & cZ1 !u34REbyb;Jn1*/aZk&|pc UYeE>;&Nid0JF<˪;cIYRƘVz軌,Z)Z#k!kDV:FY S cpL)0 ::ꇡ}]U0]?MDZij0N5ܺ*QfJ㪪6EQXĶۮԵe( x||콗R& Br%Z(yQRYRA=͔UU}9CL(0~kFk9IH)UQtsR!D<3C@GhuI9%kGU<4`eg8_gmm}68M wn;x;Np5b_ҟ:5z{9v}_/'^Em=ڿ?uf!hܿ/oGwwRu{6|;%:+`3bsEc[5e0"w^hIh3ad?rV/hB)܇c"›w0^{TXFlԄ% w<"P?g dV~O9ocY$y0͞{GdݝA}/R2sLR}%z}ټ.WR>=?~,_b#{#&4eqy~L64P=43o8S4+JH79q3}o7p޽70RPB r㚼:MxDi8kMZr@`Lp N==x 0/0icrbq[ճ:JVaZ+@Be>\P*riBƑPc,x1!u0Rʴ2w~᫓%7 <=u,/J*e^EYN,bYb!\pΆQݽ\NfϞ2A)֛d*n<%u#dI){KݾA9^#hf΃V|Vr^>~ILAbLnGˋ Bin>?UY=yȲWWR^ !wn}k&UUՓVJaVդSB0uUUUzI"1L&޻s BY0ﺞ''RJXVUB1v֔E!e5!TzXdXk1Rtl6;??gFkJ)E.i1Ps03f")oDmwQPDbLm0 IDATYp{ӕ1`Ln} 47nIfYARn^7`+>>?)%)H5%"q2$cI!B@@c$SCUULjOVJj=HYV6c\d2Veն&9OTqYVbH7F!BL)tu,KgƘrnI-y^0J֘<B0 Xs^E,]^TZZB -コi-"wn;x;Np5Z=tƣE?p_|=i-C\Q|baV֯ s$ymUYZQ#~tcjڎi7Lq,x6)ýGգ6F[{O>fNVΚb?|?l s=KUgѢ(;H7ffD[I2YnLݴbNb/wxZ)4~9# %`ߝ4ɳO:'EQu:!JbT-j۹GPM&;ޙ^11@IRxxg)A[)v tF# r ZKrIS0z "a;b (c(lFLQѓmjkQn.{yJb^BF;7(M~9U~8vlU%ޚVXÍywjM6|e}N1zqH0-'}{#\=k>!.X ruc fbAe ;G~ 3x|o+`x#{V;aY{wN=< V_]Nij]k=>961\`֘:"V;G˾0&B#hkNkJ Gx9_^\B _ym3!AΎNN)&;3.zo\WNcR6o &f:>'O^{JwmkE}/VxM31AEl,9cZq$Feo[J:CM/R m(D6 wcRm6e"cSJc2jEh q_ڶ# kz(5 RUu۶<˔5!ƪր9oMgYI))LjE%JBgà*'oT4cO8q7*Nn7!dqt q4f+cBc23(ŀ 0|aEb"ϭsyJrZ7enG(ca ^;g<` ;y&!Pb=ȕP -cŘr ~WNa gYf-{#2OJ!cL)ų !D)E1c:NʄHʱ!y1`CD}l2} FBp򬽖BSc 78$1E85Kqkbbx(9)XPf HvBT8H#tao&Bg %!TFmB(үauX⦆C 0$0&VLj?!"tAa CЯ#^ Xknc4ʲ p494fI9@2Z. $M6Yt{qy"!xJ)&9wiL0I/IܵrBA3LglKj^h8@)A'%,-c @{,9௱qD׳Ⱥ0~8$]p9S Urlfl&L0 eYvW׵clVj*'h!č׷Tc&65ι,11(YuEvysr|f~hըj{[ו1*7i&ʘ.3iqG){)n*_NӾCy]̛t2\foD}uB,KޛqBhcD}'=LRgRJR@WuE g%^yץPd@8GBlU,+yB(Dv(b&p=!"tP*?h1iGQ)%YYۺۺۺۺۺ?pѷu[/ie a#N|TˎOӗj./ͬ,j?Jii]vӇKC_W{dO&'}1jw:cf$ 'llqy gEZf޿_D;)Ww\am{ow'Ջs]u<j-փS4Xb޻OfՕ{eϲ)Vg%Q{ d%Et<a(GUg}^䗃)i\1DE LXtc9% .f SPJ5:3rK=V#*3ҫ]:Q! I\Y;\P~*hRdZJr#+ XRiHCsj!p˰;-jF"BP4Ց7ގc6R7]v|dQ/;h.rB\@wVfe2+fG̎H"_9u<_9ã6u tt_=n SxԐb\9HFоyvV#Ќb.ޛ'UvݕAF޹2YdS^lLL'y?q`GR~/Jd,+b.wptG׎}$x0Fݭv_GKLv~O/w(ЧL4no\2p45jw~E￵FL7J3g.Ȯ'ۡ"Ug|\G$|=kD$MɨyVzyEYZ=rwSg5f4Rnc(r 1:뤔y&8V몪{ mUEYV%d~Dhz$C,Ϫv-kKoq&NLn;H X>}$/*CUU0P۶B,ˮmjMw AN/rBHyӗY^<{7M3iQ\aʺܬ0b1J9Τ쫲Ei{vO`˶bvc(&ii2ZbBv;kh#`BRj6m...Jɲmۢ(wsNyG0YeG)}J1fw}R3N)J%OsƓK,us>i*ٵ%0B{)%&8;iP R/Rʤ@%PJw!R%B1υ, Ew&y$XkZg">& Dw}@PlG,E=js =c2312!g]SՂ3ABQrFqΦdȌbt+˲D1X3wID1Ɯ窲y&BeV+NqʔK)o,v<$-Jo<ύ1iRI>I7R/>D Jt|ÏoC MɕkZL FHENF'a#mu:~8:6KvJVkEӳ{88&?}~kFn~<]z  @p)$eD"|a R\nY1d)u}L8fB.N9=B(H 1bBPRJ m!&}@1bGtp[[zl@Ńy ","t3p1u${c|I& $K]973!̢?ǒJ;wȈ\Uba7nM3.@^@A`Lwiv7Y,[dv^_m7ӃEdSo8-!R 1>2'gp<bq|Aueah}֘iqvd"b8ojgcR)9$wYֹu?F7PQ]-aH)BRa꺙2 }6Rsq̖_s.8V!ﻇuӗ;H?w]p~t痏w]ӝc !⭋)F 8""RF$|p\$JQs)*s6&c\q3-F&]b#־ ]ڈlLhYH8<}sb|u\k}uGV't}q񠾞s:J^C?دN7J~}%k8kɪy]/^g+tJV {Q%wBq)~iV"|`fLZ7C07P'D"< 6Ÿ1̞?Yoަ|Ӑ%Ǘw$ZRPrZ"e0.rZd8DTVYS81#8>١s0Fmnl[qJu?gKn؀?\ݭ8=m͑7bvu0Nn8;rHtcT^g0g%fܶۦ!b Wn]*E`Xp` JfBLqSPu]WDuc!.bBFnqv9n1JkB J ~VM  )EᬫqeQ4}CRBp \70XeY1MQH.<%$E䝥.15.Bg<X1#( äiږ WvE~bO!FO(qַm5 s±*jny%*^PVMBzCh (b9e^jP(äUiB! cferV(Ke\QJMUU)&mt!U1H1T+!daU;eJդJq]sQM%,yr񣼊B2ԛJk!E>TJXpۭ\pkmUZ+}l1 )`  Ƅ @S1E.xLr`YJjwEqcp(U1!_)b R2NуB]vY~{1aPbd f3O!$3N1$?!^DŽs=27#r>g隐?aCF@@()}he݇A?G@p5{=Ggu!21&!,i˜pƝu`cG˗B>lwoCAB>J!`UXJfK7CƎsoJ ʢo誝AqNNA)ŏZȲtsVb# yV}ekBXJY,}߶-D00F9a{Qp97u{{sc(˒s˲t@Q4f! IJiCYMH)sÅQޛ'HYGB0 9Xi1ʌMCeQ(jDk3kX.CHY%!xF0J|k9k1@Yñ Pƥ,YYkvauSFQUY (Ji(Njs81EYLӔCy3: vV啔Rb 1dx8/kb!hcݑB,r4M,~`QJ(0)ai,c3m4ca;ildFθyWu?dབྷRcޢY.;c,jGFBkw25UUeSb\.jVF!ʹ !sUem1Gtg_)u˯(?w_p~t痏w]ӝF =뀂2Na2d f%م a ,G11QFqLh<`^1Lr-RU(t"q5@K>tD]'u1}}!ӳ$Qi\`0{}T{N+ʣg8*GO@C(n]/AGz lkTwU7J/.BBfeV AkReE9O _,ۛ} )6x~Xg#$uQ NIyOϞBcԶ0!a1SR 9+3L,d? ÇK;߶m~G.8B(HK4M*cB]?4muS/ Yw^ZJF)q.x< BbL PSv/J)VE!w@qL@aʪPjb!C pJ)A?%jhcL13Ν<2FHP6E@{Y &"wag d CSQPS`Fu2CRL 0:cD!5ј"YC9 cB2C"aL0ć8eJ(a< k(YY SC p21!٪m8b1FBiFRHD)I)pRQ@@)I#cFccq} 0BRD@M N!bA.W~Zt]˨e\e^2bd>K¿*R9(7&Ę?E!ćdj`!FeC l+"c&#D M1~pCˊ\/,sN)RwwJ[Sl;cwٷY)ZeWar)GWUNm {fh# >*SJ1EH0㲮1eY*(ιiBEQcBanNq5Z<}xjE\EcC Byޮ:)c|<1J)sMcV1! x8$Bc=c=c=c=c=c=c=ūYQ1QZϟjD||!L?|Y'x ^ 6\Ts8ka|9;מ"z?Aznnj=2g/&|M__9{:2}rZY/&*g[h[AS`U!}ʌwwd#MlEUv#D-SϷ{[=jx{5U8-VB(B#8̛j|л1&|KڦC5a6]𱛍T`SB\pPx2|ȍ5*譈,Lmam8| !z}jŝYI^_mt!v<*JI&ͮLx=?{?}6 }۶ HիWvR2ƺh?93U3cɫWfw]YO&'1v-$c㤔|vv9G0p !ReQ~ƺj~H)=9 ۇM|9U1N.c}Qk}vvZS%c_ȮaD`N)e0]B(K9vTƩ(DUVq}DlfY.blyӓ%/ RBUrm,!RQ[`C]#3#0:N ԅkFЬ5ln}kES!twj^,!4M!xF*g3%%d(3tC((%@!=ce]c1$N%fZc"8gItж^.cbU$xKεCEqRcof;ip !{s&8=cTRD"" 11B9ٿ+ȉYRUxrh)%ZHH.R("FB%%φZ)E jRc✧(c%uk/^Ј,sY)Äa P11{. 2 UJ\1e+c„J`km4y>STUJPJha!skAmRR@ʬs,KOc1p)1vC(2x0nK=v8gRJ0 UUfGH]F 0c$1&2s1(T% 0EU` 'Q˜q& I1A C?si/4sUU٢R-y7sXCYm|wL֔{f}vYؔ_Rփ=/g.tƂ !Y֊Rt|3X!M'lqysz!_Yf~pF1% {eG o+2ϳsR 9E [k1&Y mɚtyR:fJ 1v\PEol6bp8Teo|mk!dG.dYXWU]V]?l[jz}qqQuUUg8MYJfuZWTUu iwUU-ˌD,֜qt~i=RkmY<+1ƙZK]J<͙.b&c !$g"9ϘRj瑩caFR >(e(eC?JUU}:B0tǬ%e1+SBB`G_m+x<. xsf$wfpFW<%#<]]U{r9_ylZq(ޒ!:?}'𢡊c}H-RD\ӝ].XqYk~qFXzKI DuYыۻIh~5/xW0:]y"Nj%û;<;{ⳚW$}{$^y;~$keÝjDpϚWE~?fgAMJ/ZDŽ5vmUZPB= }w0ܑ˃Qqi޾ضx>b~?:=ᵯLE>>Co\oz+`h3/iY0.qm p*,&>=vCxN𒫋 ѫ촠lP?nާΨꉸ|=-*izXִEڈ%tߞ"@=[a ,Yp<(v"8XH(D-RaV#ea\#L~y^"ѦIs! nE!tH\) 9nEYEtbJVɻ"coj5p;ʲps}[UM}?e]`T; sF_^˫|Coݷ~0Rƭ2<{3>y֌iuj1FʢoR(榐E]7MguI~8 1JXT'YY㪲FcR=-*#6%\gMqƲ,9Z K;sFiQ,} M(m&>XzٞnoonnBeBv~ncWEg5ʂ3Nn'''c`c\0.rG) k1pwwɗeiڤm#$oɎ͹SLJYM4vá,Eprr^x1MS>Rj^ucu+cBR7͢Bl6km^CFUUE)%?;B A)WJBKk?d16f)duXr0 km"y֡#$h@Z2sQ]ҦAϛ53%g gB W~׹?i q|׭:m^u WE-׷Ѧޖ&%n^$ac”=Y-_<[s_ֲGU'Ϫ~R/-OvYз{;{\?Ikɏ~~6Nm8]Ɋ<)ͫ ; .H:ۆ m%yUlp)7)Ki۝"߼CV$,4{_ѻ0opGM(& }O G  SF+Jp #J)L`"v xhRIxQp筵>$:I)#x/)/`"%oIJ|1PKRQ ogd7 ͤE ^4:-OGO]7}8drju񗿹."no'~@L4O޲Wd\_׷ W7g-bfHY *~_zQ$M }߾qF|SSPN>9L;S?Kveudn))ܨ- q@CM䯯֫;襒ua'+fDGw+ZD';.Z5 v'al^nҏ_Twm_"wzWqZk|Lۻ鋹[ w,YF"'klx~^Y3> QД & !0MZ`t@Kl@ﯮ B-֞r6_-Qׇurhm1y6S?֒8sJV\jBjmU7e?O=gf Yu {Zˢ(aP KV'O}׏d<`!(gU7M0& |'8p=~\*KU&y^-cw)cd0 ƘL[k8#2E!eQ 9YQmLX4Kg=%tYMRr\kk 9]SVƻzSJ20)z-U` norS(;cXo%FST:y֌iSm] JySYleRaEUcFj<LrQMBFiۥj)r9cV^!&IG@B`?MY>(u )D+9UʪuBTPj#©8Һ %w]',2K0PUs.S1cRY1a0ʔmu!̤fP ESJm{o5{ IDATsjuBBUЋBUgU{m7m;MSr6s1(#)HRH')J1c$F0d4HaH?B!x'Rdr`ƱdZkd)1R{3Ƙ<$ N9a{CLeU;kgJ͈`QVU 86Mϝ Y+ mulC1<KH"$AH1DX1e4` DCb <&KC>DDL#TVp7˲bRk97}J@s../_x+C:7;+zxT5ʃNC #z7DP.fK?LLs;?#6fW >S^s7 Ƴ7^tdV#V㘘$ W32A\jE~7~! I% u*YNK%AB4sQ}[>_M^L*kh^RR|0&&-njJLMN睋-dKsgQp-'*UNUyVZȂ*GݤKŷ9mn4BrL(عbZ9Q!Ȥze`3HpҰfͳ)K渒iO[1jwhWF9@)ژCo\MS={u[0d=! C@QTmΏ1 ֲ)meu٫7?y5Z^91RBތݽ+# t6z芢8\{}Q(Y9ҳsNJ!ڶ֔e1tCօ@);1%g Q! (8BBi-SM$8BJpJY&%(8ZK)MkBoں& . ǘB9RbDܴMLAJaB1&RԳ eB]kVb5iRV U^IBݡFN\0o' ۶2缃g}Ð7Ax" ")!:"19UQ*eEWۢsS0Bu s( T΂%Z$9RL *ahR02뀈z2+fQ zQ9`L0ZtBm,\c[O7-}|^>-7'+5~i෎v ~K2ʼnxx%U[-_l΃;'7h:}AO-oOq >8V }|~olѽ ~(o'ky ' ~{C>e|wVt">Yn&!m-ܫ]r7]])%B0h]ZE 9򲘧)RUpmfSby(!eUXU~{nuƅȄ CjfFYJD8nƲ:׬W!Őj]0DO9mӄ0CL㔳cfc C^/_~+ZhnWM9#9R3{_5R~+Awv nۖ >8 ZRBƘUbᏗ_b!e! " b*wUeeZoViB}TUYS3#41Q3UT]W1a7fD s?vS'}ztuΕe|cRu s B bI euvꇡkLΙlJ\7k#!c}^}M2%9eu^g/(.Nr/#rOĿWɯH5&?/~|x&ftʈ,>-{G@I]NNql<^<.zu%+B~ m>:BP Sɨ{oʩ0{&||:B6[z %~z`' 0SC!\a 1@ef?ȇSe':~H`E :m[[(NW@ Q! +.;8~X>G6 \htk("c9L8C8 `#(0!q$JHBH$d!X DqSJY80rɈCP ȳ@)] 4.F~ë@`(HAOms.`Ͷs/va+'cIܩmS|a%1LМ1x;<~L/Ff?ߞsJc?R?Ejި*TOt, ,C0D?*5u n uuiA|S;Jރ#zc!!c|DwFF'|wn[1DqsHwxD^QNhxҘ4D7ZG|c2.L# qgcj+ 1{2ӛ "{17ՃU]~1:88%,OqstzpAFE^ށ{9<ۇ[1%`{iJSEYa>:Ro@ͺƪ,q"x`B,1ƻnݎTdt(F {RĈ "sScr !!Kc3۾ eYjm9Rk1"JJ,K.}XRJ ˆ=l9|]ar NQF3gڲ1FɅHPgre)eRh ɥF\ 5NMSRٚʙ`fu V[OzJ 8BZ0ŜJfi|- a)LuKlWK㹤ώ!Ie3!ə.6MpImS:+KsAHxfApsf(2„iu;sΙcL.J )C($BH$@!f~^OHHM*-D/ATVZ!""Ng 4S$fk#+1V(}i)rSc]U"!a1Ss9cpJQ9OY2!`B"i6dд8teU-M[)b5ej[%!ER7<&dV<L`YyY 1&gmUBYǧ8Bx띵 bXe:̹PlWjFeY8g뺴ɢnʜRhWy7wikLsZ<R:gAм840R2ΩsN, ۘ(3)EY" c. S\Ƙ_km1&2Rmۅ៦I (P 1bY<7%CZ$^6b/Jrh@UI,ߑjS)ohYYl_lS6[1 x'gku1b0MZNal)n[n %7G\'z[뤟m+J6d- >Ӌm 3nVr.gK_f"n%GoKz'oc= Jrh܋tUNے7M jS{!fg!1Ų!%ӴfarB!4+%ֹyOq(c.읫B8~Z)B){'8p)F%d8l[4M zի1%<!^zZ!1K 4MQLqd yxxJRpؗeI)st74Ms8i^]]1Vnq(RJUU/sNG@cs-sZcRBE X250Fc$9/%T8r^"xe!ֲ(YXUVEY' CK.icL01cSIDlS'O٢0hUa(wݾ7N``6Ե35ҙRr}V?%Rv`Õ0)f;Uӻt6>Z Gt {9‹?]wIO7[w D1{Ȓ{M Tz`㪺ӌ띒,>jDOPNꙁmt+U,X޸Hcƚx|"|p jo7{\`+Ӻrw$oKՈ<<ş^ᑡ7ϛ@F_:ݠ (u^>`#N3ct@aWaLܰwdm]' 1ДE?MSRLWae޼{>Ŭ̫W_қbOI-7]CAiB1%<;'eL)xrnS s8ǔ(o!Q̪]YckvlL9Q=ku|}sǸRƔ ! cdf!Di8TJ-maNN׻$H) s!}ߴ~ǘcf|uZ8bij9u]+5 c,,8WJ5Mc5J)aZB2.DȤT4á(*8Sk=ciZk]!PuiVn+2g0j!!n#Cs I(,x0sNy.tRB3alE6>]U"漠- NrBv;km4]-*uΩB91.Kz?1B=B00F(<7przW64KC`B(̟L8TUUGGGJ)™fI ,Kc 㬪*h6<)%!l HAwNrBlzӳ A9Cx/r%,mJx ! NJ!<,뺞SVCLJu1aI3r1CxBgۣp(*?O^Vz(i!Sp ~ƘrI,+ԒMUZy,pX.Ob1C>@ABNlu1F!<#5BD(UF+e8]0`]iX JƘs3d BrSJi!LjyWfvwuXk!D9Cc̲eY[ksN , 0" F,"pN9N};^7LO/`nW7_O5W677W?s?߾_ܾ`~IW]mΤTk0-e_6oo7鴔G={NY"}m/{ih)lUD;{\+gk%}G_j~0 c_y/xpƳyX=~rKT:dQ68@YٞuO.D`U1uۻ i{ѦdJ0C"(O6@08Ŋ!(**kh ɸ, C ʺi A%F ڌX#c tL ZYHD)%Qq1A !Ɯ#48XC6B f&yyqX?M} ɡA Br!Jf;X~?$=7L N0Hl]H7\0L1nw4?_Eջ[$-$ww>=9k{4[~u7|L o\N<{o^zF*ȳ(tvA7>XNT<ږ7Ȏ:k%tp"gsRS'xf[tьҏ#loK7wֹLw1^3T͓P*hLlwyVg;cQ?ڃW.Ty~9{B%zIu 7ݭuq,~&B ]Y8&mym.gࢹ4?(TNy- AwYJ c ar}ۓSl!6!ECӰ$hsVMF8We=z'NP|0B۫[^7zIcmO l$VU5GC? R./vcNNN|w{,QU 0fZ)U@ZI)hc<2!~B, q'B e:!1!3YN Ch㝻:ZQUUh=[u .Xɉ3vO"a ]w`dI!Z0j()cBʪs1 Rly̎mY)Q?8_s !{b,%J!iBI!St(.OUuuph6+uJ0 0g1#b@17XwXJ Q}L֒P A9;g1F!g)114A%e Kt61EB11s ׫0D|h 9 CV @!R M1vu% Kԣs@)"kRR5 6TuJ)#c""H0` Qc 轳&U5|tZ)f,$4!ʺ` C7"ʅ$} _‰WBPp(nj5,H9n-ęLB He~l SkLb'MZ*B#v".+ `bN}ZB {(`(!ۢ.3>Cɲp3hY2aST5B9[\աVpWe pq~p$&5rsFU2H'g[i b٬9GvmV?0M)ˢ!\B[i\PB!FkΙXb/nR%um @nV,yA^HPBnw4n%X^98Nmۄl!Ĕnj=D)G!ֆs082Ԫ\n=gmۻ;)~yZ_." ]xvkE1c4Cǹ,Q>u"R91^8Ѳ,VEօ00J%%Rpi(}]71eJqAk^%Bb[Y|RH5UY~aL)]"(e޻zu80&{hQiB }qޅńEQ,d-BR: C[B%]8(!cJ)sF1 D!rRcb^r !K}2j#/.(<[kV5&8 !\0rp8|%:\2^nkjpΏnnn˪ !, MrBJ@9SjlB5֮W+!9FSJCRE |qWJc%}wwѣnHd˜sMSicROsӋn[H%ǩ,Jܲ)B&hV'3&~* 4<_۟|ě_~՟r߅?_}{ٿt'/[܏Λ5oZ}'u3_Vzu/#?`~/_l~7wp{oŘ|B'/[׿7'-WIs䏜e$/?շ|P>΀~?иHqQ}{h| J!II+i-]~a[O On)ߙOws<|9դRp[EK2L+ڡ8iZ[qv6 2RNSw0}bz7%:mW-rY6 jRfQG B,ݮ`po|+4:E?fJ>V?{NP:+%°OX\SJ(ȴnx)zS{p0c!`UXr΂օya?iv?Һ($'X%pv\_ U_ŕڣY{}?S= s'ky=fMӏL)Xʲ.ʾ;9{?j |,˲ikH:Cubˇ?=?. 1jmCoBB ]l;%3%"0p!D4AFK1g<5pJFXQQYgm).EX,)9GKC.E1jȶd -6U]kcREo1 8gB8BTH9!c n_ڜsJRI"]#HQ<1#؏jZ1X=B1g\hRBZk)c.xJp !+ cujfLh8+մ9!OSȂ[EYRȂ:1IóbB*֪v;MB8â_Lz6T)ޟc/z꺱6.Ҷ^8n6)9Bp:V%Nwɂ/" sR4qΝwLSQWBeݐO{~_o_~g?o? }wž_䙇O?{W'"z[LzΖ+>x!lo~W}㏽/T'e|\ y]~XzΟ /cܻO!wMw.>A!]vOK6mlob@#Hڴc (׵އ=6E*öWpdk:A`"D=NfFM.1.\a2㖛*NN͖Ga00ADkXM;˾aZV#R5D2Vm}ߗt{(NOZk]^ł Zw㫗;L+1v.B0Fu](":9&vЪ# (&QfA}g!"ȅ!޹1y:;׷GH;4Rf|XׄuYJi΢0!ƹZs&x&]߯mqlǜ{e<9}&g'f'Zwi4͵6Q03BywԪWf0%Iu}c([7 p0ODmS )hUwR 2 w}0B6&x :/KإvGmp%1&2v6Osg*Yc✧Fql0Sz.B1PjLD<2 2Fj[i2K$QMFSBC!Rj$ !,΂RQ5j0b)!l[2>"Zaa5J`O3D`^}?H%'f| E< x1Bp}EJj>CPUSG>x$ 8oy TI w]C(4E)wNc#(JJsiZ].`;{swh_6B0tuE ۶-˼5&5&"wD1HlsH IDAT-GmDik]PgQ`]p>^8ڶl5FԵ]#!$8mNpfzwwwt~(r2C? :Iz['"B  'IE8Jrjr.Tճ1&cBHu,ggsL~&iJZ+L[P%}7E@HclN{1<s8 u8I^BD ƠEe9;~Si$b[㼗C b4J\(x)/'(LycrJbJaR&>A1ÊdH$˛[m@AIp]Z6׽'o__s?wK_{T[7lvvo:\5\5\5\5\5| T7=+g6B899~^ |^~O^ʗ_~3S~E;3;ݛ~W>>jqmCtDR$O<$6֯]WQp~ wӡ >Xzۑw|[|0uEr]շ2y5- ZpTYFAj78[3osH_ G 7ϹC<6U{!|mZ~A^\uw'^ƅ"(hO`'QISbraB2jCX[3paFiN`{~G-u!>~#4҄ f㶆#%BaD uoFPA9;x*%8Npܫa S@蔰#bzd@ZMx\ʱn~a h7iyr3$)؟cECxMvW7}a oa/yp ;Ъ3nֽ~ڑZ'&{ jx ]q#|s1ӻ[ u52|g?uđ+"w7D:k<$y*i{giGS7Ͼo.c%]Ô{YH..|゚2*rt[٥ xE~ۭ޳>zbwō%NW>b?ŗav,t~w]񝗻yn]WŇlMf:mG)u\+[9lR/j~nr"`;׋,8gQ"8(gE7{Tr*&Ln<늋iO`/Z.AӾD,ߛQq'՝Y>(54CeISo4MdS'5 ; y",rzL{ǩRJK%0ۮVe%!2FUdeQJ%_a]˾ߙ2&K "谮 apt c81ƶm dy\u[ʙ6`8Zˬeirv1u11 AJo>)$0D$/&#i3LbSWZJ?F+]5H DSvB$5J Ɯyudi c 6 AVUB0Mh'%nvgs-LF2N'޻r5N8Y'v][(I4 TļF 4bVbF)tSCZ` ȗiQh6N3wqi8O4,f !{ey"@0n"Qx8@!1RkmĽiS9϶(rFOvRip`o|%ɾKSf9hֺ,f 1ʲ9(A2kۦsJm8!,I 0"G"L$K8fUUMs`M4tg@~>l?ze5ݛ@@IRBl3:cD@4Ͷ,KCGSc%"x[q(zwb!gi&ն?8l!TL'JV@r7HT}5 ""Ͱ%A3f& STLs0vd#H!xg4Q^A}O&e6ƘQh$I>x&P!Jt}&m1a/4(R$IFZk!DiDqP7 |{) 4V߬Z4MUUEQlŘx‡(,K6:rT&,ϝ2)H=BJ }/D4FTUE)k`ijɓ*M1ޏl)t:UZyB1& k,F(M e(Q9Hw."gT2J)#ژk4AII(5Himb%?"HE'I2z>TQjI{O5XkJI\uUn6[EzfAY= sNp!J10sV1j!C0JdQ\*5dib@D:ڶno-0жh9NZ0ʹVQKa@FQrͦ9Ƙ1Wi2ᜇ4=Ǐe:w<Bsc-D(x_9BXk<眵m !0VI䜉C8#'ɸoXk=۶[g0Ji8 810ιǘQVaBVqqvJHcLE֘A.kڎ0kμ,)̸h&<!ć`c04$ XX]oJnxwW|?|m,9s! >R `>A~LOא;}qُglu7jDoz@?ozJ^Gu'O'}5> G\O}`컓{Vk C׽<}ѧ <}ΗZk^[;qP௼N^3&}۾?9:ɦGlo67Fy@OQ!7=lHG/{d{i7:zqr6~w}_^g3|Yt ad;'_ϋ➅N$B& D'nFtյ .9A͢[;30a.c: I Qb Ht*_JJ;|-sܑZDHXF!YLpDzC@dyZ!ѶYT,0aU~`Cy kq 1u]C[i R}XX+;`/U Dz;o*K4̝,[7gݽxR`Ň۾%$(A|][E8t28 4'7R3s9 Bo-1>r7FpYwB0u]'q]5:A]UE{4;UuSc"K$˲c8r,J4A+Θ65Z!A105| ! Eݵ~"8Q܅FJ.XqCU9,RB tt>(F 4k!,]fY:z])q,+c (g;xĕqDQ|bn J&m)GҬ|PqY!bdk%@54ó]jz,BQB)&d9i(zti[$T2xMqY W6Na1bȻŲ̦z)- T@nrT| ʼnw `X bCm ,iֹFdo"VaoGndtV  `{]ىZI*x0eWT:WaUUtRw ڴwbbI2BMZK(\!)J&ygm;gl:!a b!:NX62X]m,v:AU=[.ΝA)IBRV"*J@.FW|뽏x3n6Y)AE波g).EQ݇Mp2&sm!i$1!4 !!X,^bL4*4 19u,t8c9bMi*Nr:V5[MstxvaUUնd23zGі!89BDggkcR wEQm=LcvXo6# Vvnf̎!BKϒh3!e}s5M0SիW<LcWMEVCp!0 1Bq.`rza罔Qaӹf2zoPVΩs1;p; \JI)Ĉi, qEҶ1cR㼈,tͦSe (mL0f5F!1<ϵ:E5"[m|2P89@}?LSH]d2ϻ>9ztxXokФ(! Q,V+J)C^B)MͲmh =},WR(n97:BVc9nsI8cgi!CwX˜ w53l0!m,uEQQ}3J9B Hk9 cs;EM3rBI۶A1z)69\ N8%'s!h"mB8^l۶B0;MgDo?x/Umb٘P7ߜ.NN:׫;;>9zr'麮 g~4eM>Owo?ziQ;?}{?{m{7>Y_/g|G|鷽>O<{E7_yȯ^jSH o|7> +'˟;ͯ?=?~γ~9\y٭?끹zOz? vO?qěo?/Ͻ~Z5|`G3?sާ<| _¯*{k?x6VG݉¿#0>?xWUAۭNWcw{^U=b+S}6Փ㫧b= G^VZYy].y.^,YoCKziս7= N{ I{8 Rdf.Y^Br;UCYkB殇6+5Y w~֭a#ݚ;o!6z']iq, 6Xв ~[9.#ͭgM>YlO>{yaI4]illYL/_Fe5|? {RKm"6jRF'KAhkX.ƣ`1$f-ެQ)"'5`Pٚ$j} H,Dao6GIrz|\iB 3gWOڡKa5% /v\NvV$i&8]^NFNԴe?jgK'"=^ A۫ax IDAT;rNn*BQ';L!q$n<"Ν1(!$iFښ<#['xQQ6r:c1 씡J\~h'I۶E1Aq""$&IaTXkO5.@+W@'];P@4GB*UuenZÐ1x]I4Q56!]ێ23NJ-x,ͩQ }'$0`B}hrb5m X2o4}̞q!qD.c3އr!4 ]79t) Bnoog4Z6\pa<;J`Rod)@X)%{9O'I $hmHJ3gi0AE}icڶ>8Og!17vQJ4FQ6תʋBQ9Bc@1#(Qa !|il7( B|:n4sa:cҒ1fhzGDn,ϛβl]GQdw^ .BJ鲜hm$UJb80$IX,Ν;H)PjA{,뺑$C!pqq,Q[B"kM]ql,Ez9y :Mscl>)Bf=.AikA$J뭵E^j MfY6~;qkmM%IoM織3Όќ8 cLSZcB8^.EQJ@%}QF1ya伋(xo uhLޭ4Iڶ(}7Xkvrű@|PReif:绮TU7s]zu])i$MCY/QSʺ!91&\()!̢88VJF.!!RQJB1{8xR2JG8D>Ȇ*B2qwun2TU5ͺ}1ƺEQ׵snd9aFp$cc=WCUa DS|91Vn͓w?~}_/}7~ߐ~ego֯+ϜcP/nN?7^v~}k~5.y/x ^ç4r"?Dž4?wdz?&sϟ>P)$Zò,>NvWsFsktȯ7l?gERic,OY~~7/}/|Ͽ{jq?~m ]) <&b_$_u_v?\+w}sO r{/l/}ߏ}ۏ|wԏ|Ӓo_ϯ|Wg8}zWgx?7x;.~rB>ֻO|/߿o}+3Yϟ|~G9_y8e8N7~_)9G[*Ozy}iO{tJ988L&wuŋY>7)>ä>\n\t|{kۑ?_ɟȿ_}}y쓾>{=WI ǯΗ|ju浯/o]|˕{|ww?|` b|d?x}[mNA(_ b.f@;А,qb|CWFC)꺣1\ K [H.?JzwE/$U$h|~'y4Ob@ vin?p I^/QMǦ8Iw5r ;T0=>@=jm;$g)F ܐdl$E aK@Ѷeu}\in[ Q9PiDT$|_gHBbAH|*ŎFhPAW( f?cÌ`Ye}珽{5^}$Lk$/Yvz' O:d#/g ?X$| ɟzx)-ybsNM@; ?= la{&w&>3zQd3v_ 䞫nYatLnUwQ Jn)Awzg}e>uY?vH]v)FCY)!&W5gmi欮_ET5A; x$9{{XmTWF]S˵PA71vZY秳cvnSY%2fdy/(y^J]|Ep @\r Ð$'lg^[kGh^*yo*PZy޶ȕ1Bc>Rq`Y^\r"A5VBT͔o@\PΔ}leT@Zc;1$ !izc,B ϳ~h aMeyFN c# q1i pBfy&7mUTj"Cޛd2_.)aDzZ[Bx49sIKsI)HTmy[K{Bs6Mr1ߙNVBShV]'4=@U!b)r^oѲcm)'l+\WUVRM !$iۖ}Evڶvvv$l6BzFSauUU[{3EQfZXfh4JTI){ RrH9X̋,0˪j )e1F!6!$S],B$I1& W#?hM1F-aޔeyye8`LzB82m:KSJիWD{ualō1mwf1Bo_۾w~dmůo?ox{/2|[^|{ozO~/˾W>wz~{~WQJ?Oة|K^p7u_WߧI3+wX8x׿Ə>2׼?z~mg'W7l++oOBu}ŋ >ǀo{Csǯ-޽/wΛ^~⛾U<|,AW|C/;c'ߝ3_ҋB__)vw3g|ݗ0__=5~ٷ!wsXO;;9/Gz 67G>[/~ &%?O/aw~wz@@êo8-0<~gϾ~ _}ǫ?mǃMk~]?u7ַӛ~=7W-_i7쿼=~E{^pqyRrkJ.d-C0S"8^Y9&c{@69ea؜j_:&ݳՉG$]7VA=+q] }c<>3&jYϘ%fSg{<d_ ShyoՠJ7< gˌ$I1"icZ%@:`sZ ZyVFYl*hTJE;KQ+Yy6eX]$HQG) 8O8c18Ʃ;cNӴzK R7(K90`mu`JKB% IxEI0;JMDw- Η)>B$ ]a"`N%:1B~~0U^uc.˪zVCT):2ZF!6~كx5&~h x`.oُ8ҫG=w-峮/NsJf2c}bK3!JߘyZ{x:wjBOIL@7N+\9nCrC C{mdk`ol`}iYqG+]Bp@u p+WcA) ro#q'ͦe aef6phW/&DY;'+z8bU!~CE._ɁhcA9Ad۩SgF. J4˲n:j:bӥy1H|Ҭ(zyU)dV:$A)"ڮ~t֫y%quFҼ7aPbp%ht iS{ݱ~46ZIS㓅ukԸq9`, idDLly[{<8ͲfvM^,˼!ϋrZb^c^Ų*d2YjavY)>I8B9eI۩u&Yn)yW6O42mL3gGOFD2"VN&T=cXeQMyD}/Z:a`4M]9wƻB֚<Ͻ$IB[:)Q1O3#2\| h C,V+U]/(CuEu,<Ri #D)Eac0I$I캮)}׻ vVt]R]&ecC(` $)6^,!ՌiB1!k6BLZLeQ%{!cַuR]_!! LF1ڶ[((Jw:H1Mѧ0RB"R)BB w."8rҪMCRzU|6lgOeƤT$a )>+8oѸ\QUM[ 0'j32EvM(k k`۬WY&8KǓ=C0I $Dwz)CKrD wvj=вʆh۞eh1oMTR!cx4iR`B@al,e?3Ε7x$3!Xm ʄNwC7mbD(Y6Մ:imxl<˼`Bw>gYwDDx<2 IDAT#Tsc̨g#5etk t^o7ziT9o~6a|;ë?{~M~u<~zGF{[ͧ=~۟g7}ڨGVK_~ _?/Wg뿼Ǥc`/OA<Y>>O9}w| O?K}TX_G?s=򄗼+G~I){S7x$Eοo۫zl>ل?[^_t!N&9/y'ǟr?n{(|B۠:30=x%5t% ;r<7bKe*$m>6uh=*{ X|z9~Xbmh4IRo+`n/z]bD eYRʭ㣣c9Ѩ.Y\,j%fY]*O\M,ˬ(1]J(q2ÐRR9i)iQF".#l./r)x߶d:CHWV24m& èX}0u*J "|:Z#i3ҔWj^-AK8r-OEi ApCGOM8.O/ z ;ӱq)FDKG(Is8?u5uPʝWFY$B~d^qe!DΝ;rBxtw:_6^92]))(vhƥ@mnB@Rg'O7Fky ]3c#BIUf3VRB4khgΝM<1s,KXUWֹBUuUy PLRqka?KvvIl8B(lY2άsLJ xK4ˎ&Q1^-h]߶Ae)=ciei>p·Aql^!$Iw{" L;1Vj`&frϲLYǪ3DƸL6ZV6]O>Fv$Cc@c|!DmARLACbp! ''`kx0V9@m~8 iM(rrFۨjg8˲-tM# bpH[4MY*4s6dY-ܙɲR*"Ǫ֨`M"s;M0`xk<۶).9Td_w?_\~?}݋o}o\d/?䛧Fdx?___suW=l@y;7ܥA׽_݋]i'9 ]?C{:z_#^IVuhvϙ$A)u'kS2 ]˞c'.^[_IORE)y3/Y/x>۽o{_ *}u-ٹ][Em=s_Нĭ:e Msdoߧjj9YXzI ܇.KU>Oˏ(/Gn<4Ēw(+P{OI?[fR_.7H}T!ɳ96s.k$i!X0O9)wtO6G+o {(AzIO`QV%#$Oa1QMHp4Ք*{mM\ĮSDQTʅA*hb< QsIb1AT.F f=ʊʨz I:t֍jjuv+5Njc< 1z|l)!0Z[g]YUΠs$^]:, yqY[bNpYHVբL1S.R;E1MgU۶at<)MqXTvqaQTM[y5A~wg7N*ᩏ>ƀ0:cyj#!Z鳧N\=tPAGիWI6kVc"*6.D0ZmO6vq1Jmy*6x#8Mc,sey3κ# [ʙNpaÈ) EZKmtŚ"xP%2G$0!@CpCUDi8emdc9O wƗenV" (IS3 >Im* 3.6Mg= ' c:o\`Eb >:D1ϒQUGƇʴ&@Nie5Q )"Xnm_Lrkb,!u) e0ͦG XY'\W;1tZ{AeCھ>dEbUZ+cEZ(”#gy۶A1b3J$C NI)&c ܸM#XE+`$SgivlZL!l:7>"6-$OFR$ B9_U5(/4MWUQyk4M1&( c 6!R eLnYYwv7&MHh<6ޏ&S'RfRI1V3ƤT"H0iۮ*L {4YkSڵ`^.ҜqF8h>WU !fYٴ$a !T0ꝡ0EQXc)!qb @Ifk\"PkHSURj4)aHmpq,ex:!ֺ(ڶͲ14-%*fʲDZ um˹4(fITI1FRJ!ijCE7͆RZV?Ux{Ðe9c}n`z\ھ PJ Bb<Ɣ`UU]뺮cN1lOkkc+mm|w4mrZ;BLm(6ly0}@) o?b!…}߇[!r1FJ)v[XZk6^WmجZC!D&x\im3ƔnN1&F#a{SFcL-=׿7_֯㿝cyl?<6qCW?-߃Ɵw?Ο<=/9X{Og{,o' z{~]zg_kw@G}JÂdc~ѧtD'o=Gz I Xc(Shc K|>\O Фq9s*&{73O[QG̓O']CMnv0{y@^s ؞}M,g799YvƇ/ (HC` [}J kFCǡJk3vƇ,{:/ӇZv{됿JqI݌pn C}JWT^b.DAIQp FPI7H&HgJ^!cg 71$S-DUCsBZhc@`0%8 :j "\^`0!Jp)~瑿񟜄,O{52% 7(|&@gZq.ܥ9OM2؄(py H Pi/nM?XspA24v}'zY|cF\^pݮYC()udž>t28߯X>pW ڐ]wWetӘ1z::e<~0h.""դ$,WWWl<xz6lIӃÃl%{ŤszoXy#&hg6%` n#QFZ<&ط]&Q)pm6yF)!B!SA45HLBb=T)DuU%tQ{Ew:HXSЂR?{o+[vysϝowd@l +#+6d r$AD;@l(qH%~xHh˰ckHbS;}o敇M!)"b :UTڵ}c,ei"gƈ`}giJDNi @$1Zٕ3cM42 C!Ql>o-<\D4 j;4=/UolV~1FDQƘj9 i̙1 <8%`iϮL=ՇxiwƭX-҈0s(%'6Ҽ>ɲ:ysb2"Ƙfaѵ޻e("7䴾XoeEl(|VFAG IDAT7M/ajYB[8qq!myӵ!1P< :79$B???ofskm2I<ѻd,u~X _ *91B t]GH8 C&!T9G$Iq׮^FDi2Nr)c(@(0a 3.et]P^ ȳlG4';eO:\y 4Zcq$ڌcBAd)a:Ob!p8F"2TYU8hCPJ4AkHe-(b`fRd ( 0P|b*JL0 OaJip(sk]R# @5L8*J)5i1¢(!Į"JYs<%gFa7@QQ;e'Ib]QJBHcL۶!\ƹzkmByV2gY- F8Bs(1D5e @Qj4ˮac$2&2ƈ"B Mۆ(Y:oBjԔ2@ " d/f$rc}Yִ2`wme:FG5!x !S!R*I`>#!Bש9\.pl{?J97کo3}槦ITfM씘tr# kc089cL)()#erT !BpsB~xD2F!D%!c @t|iaiaZ#c=Ƙ"ϭˡ!S[w W}O~?c3~i~/K?c_ /.d/G?}w޶NP̟{~~'v׍3?=z;ϯ̙m6mk{*g~};>v'ݿu_+o@(? ߝ>77?/O~~6#f%RgIpU,iQ@|Ym8\R|@y,LZʤAdn8 1н&V\,|&%/̑(r= DH_h4O=~0DœY=Bܩؤ~M̓dߙ'/mzcqݪ7e>GAgf-\@ࣧS!Fyecw3^%e5 jA#w,=]HsԽ~OO_,Z?QYO+yb'uFrĮH%>?ͯ㍾]ZyZ q7-3 sF 9uu@!mtt&тo Lw@fVL9bwh˜Fmqž3Iq͞2^0vYJ8=YL#3a✇BS*a};Ͽ HttC?YV$~(eYY7֍gW%c!y:ۏݴS481kC16ͻna6΅,I*e2]8Ve9b^^\PFcǪ<˄Z5c4"FPySwM , gqx3YOLx}{Νַw|wLS(eG;oȷ|+ki_ [U|W]j.R{ΛBh tw l};!yA;:K_ogT++T&zQܶolٝGJXwHOpXf1dBa~vn^bM>Wtpeo6-~{eRxEͅj;3zp;OX4u^~.I {Эm8 R][6nr77ECV5; F!βZX*(V^'hvvw1@(Taͣ,6xQ% 1<<=/R{XȽb6#!}o`mIxgħūyoln QmyDzw)D~aHpxzr"uff 5x!Xr Qx wpW$@0BN3v՚W*Zҋvl@oկ=u2%/-i0n.`9a}/_˛Ir~\޹j&Ce/30"l.No:OI9͝Re`t?1DR~>Z6` !RH|yjȊA9F=:͘h:E jڞ Vِ&srĄ׳D ^c?&M9 Gikl^.vw$WeJF ` DLۛJ)S11缵.(cZQ,"ֻ<+gT`L c[8634&Z)Bd B0$^~|riHs>+˶cy;BL4ǽ BbDƙERDi0(mXnyiכ$IsQtA RṀ>;/ 3L!CȫfS$c a %J,M8وIj0 L`_!]KJz1f y^[|X.W{TPkEBw"K2ai?"&J%BUޫ`3 R]m^#he΅֎ T^rou \\)ё, .46:m$r0qxpt&pS*Yc!B|Qw-ة`b#~ ϱđ2m{N)0),nȲBfCy4ciS2Ƕ傧)&! $^_HT$b^2(2v<(#,-Q{%C\.q`4)l;pƋ<5G>Z߾ 8)g,iA3ֵBd8in_^\Alzk|Y2DY 9;{ QYU|y&F+u]lvkDeQX(Ldf]p&$9#a\~J~gƧ]߯NN;4M !@!,˧ !x碔e#)4ͱ*F8 !VE9|!F8/vHӄ2}9"8"&ZMLVW!{Lj'p319`:&uOr,c D$*cSpdl6eA/i`"MIͲlʝL ]e`@h  1bc 4B2}MɾlF !Pz{Ιbrf&zZ0+J|9[42O8R_ je._Cg?7? ɿscG/GRV+ ñZ܅Ǿh<_?|ćo*q7XT^3gY [ߦ[nn'~7WtamCk.wo(3*Edk@kzix r)^[l܂s ۏF{Ivٹ@ \_4!C ,F4PZ$>10셚~j2iY;+z۔!NO UvĿp]#WSΑO8͚w#{eQ$X6T}bi6vL r5Lq ;)FL&\,9,xu)0U)VR bpZ .eކ@3FqFL 3X %Ȩ}\,*5\wb2&؀1[! r3q1")$畇@Z4d9J7Y GC$iGͻzM8'=\&DZcilf 4a0K{ȫks$AtB\l%J|T7ۼ>y$q^ДOa7ՊH-NI?ޏu=~nz=ϋLE8ߨMШwٯ?/.0辿}}Kqq{ C{6ܧ^7 !tREdcx1ukdS/?٢N]C,V'hVk'²*Zd2)c,Z"5DHjЍΣxL}C($Iuh!j54qmjO zӔ>6Z+9~\FºΎخ@2nG)eu]罇Mѡ@Qsl'v]?-i+[k=}>n86(e;!JkeiCuW1R|f}zqFE8yUUכB}ۜBݾ@a=`(a@+uq !0v{JY= }pǗIڏ#gYB`\"ARjZMBi(5ֹMF`ZX$pg4,9I:=&ǐ,j>,O*uf,ZNwz CL/hR J|:`8OvR4Kq$I.gӝdl-g) @L:SL)3cQnm_^<" vFQLR@YY(/@v%gm"3 a HnhTaz!,Uw9Q ] /򧛖X)tLP'7Yq31x׵OrZd,qv쎦,i]cBaT}TyFaXgɰ IDATAs7O ן[)뢾=-EQ0! 6s)&.@0 RkH"EPʔr,Ӥp.B'Yjm:e1$iCL0%K0bTRc(+fEdƳ[/ ĜĈ-)xB%dEѺ!a ;"S"BPUT 2(B($e:bT%K)>&$ie]˜$2.z}d $eQ//4M8Y}>Ew#,u!WE* Prbnǁc(KF!,BO!f H\`Gg8gq8db[0 Y0mR!dY&`R@<*YlaaT}C.  D izl frA)&Pel^m7bJ Df!-"!feΪۥ2AS@c !X#mB!$5ZkDkEA/]dY9ZfFQ#BlYbbDOvC b8` 1x1s .V|a:Fb F(Z.YC ƻ4jL|!#@#@:‰6&Uڄ Nxt_%IͿJz7s]/$^[eg=O~{_eoZ~i_/g?/~G>lK'&}(7zg?~/o?zz7~lg<~oB O͟o0ۼܿu KRs_UJ b?$3j  s.sܼ XF?B1}+Kyu1l6ܨ+Xtи*txg5,S:\+>E=z;׆,~S+B~MBܛG_B&fǺHɭk.1IE1zФvcsKb1T5j('pf^)1_ء?A5$͔S1@KbgxK1pC7s׏%jl|چ7j^VB}OYf$FǑ$GuR&f$~EmvhfӢa C!{dv謾~{ze6lwB ~0&OA]`)ŭ12j ~?{QJI+6('🽡R{Dq!Wyᅢ ]lC~%Sѽ(ҙg=Zc7]x塚}R/GGɗApH) Ie9׏.0T%8Q#*ơk4*Svs1٠Z(Ez,C'gIV2\B(lU*-0A&voz~|z|iB)9gFH@ #=43QDL< 5U^8{gR+bt:Bv\=-c D&8ZѤ#IZtIB\temm08|#DGɤwD 2Rj=d,g|4:BbQ7(׍fuuލ.벖]nh0^q'goVUZNGEl}9}ϳzO% $Q~@\uD@rq:;*[UVyYUZQpVjVV9CeL)ڮYwH_M-O$}7r&W˓㱅i!1`b,)!H.ŨUgAcL1&! B(e0BqRsDEu}[n˄[3mc2dLJ= IYb0snTx~z B(>8%GqQVU]k@B!a>4C*L ٩unTJ%E@0U=o륔>Id'F k+1FQ3V")!“5`24IB {kNV'YKk4Q !1F0FrF11wYI2.W''w&þ$ ƈ¥<R)չ,]7iF)YgZe@J#RB0&R&S#R1 !S<=P$:$ɔck#I`Bh0ҺuM)4(f٦s@!8*M R¦\!@#ʓuHB\icVB^UIVt!βsvy-ߏCeGK̿Bg×~՟KO^O~ _nW\]_g|џxo|y_軮?~Gp?OFKy H_;}w7o~^[DxO_߸L~3/|=oW.՗~׿?}ue~L>y~ zx n! ֵ#8Otxs]ҕNt.RD) ;noĥ(4x~::cAWN5}/O!~88FeqM@o\7l̓k=D m4ޛے]{;<^U* HB*@B-掶 7 fl 6,@nL fd$$UQ7{Ngyϻ?\߷ssesrܐdF2NZ Dvnj GZz`{hÝ JY#Q a ,(R1@(fI$rS23*qufSHHkgZv(V ĦfñfR I A'u:gR(:cCPޖ(9eQb7^l ~јy4!8Qhug[OyյnW.5W_#EܾO.A t?iȽo2Cw׈,^nfS n_xlc_|IƼiQNA9|]ON} < ndo6,ln.Ac6Ĵ $ɰj((M{ՒRgt0>mw"q:&8=,է\Dx@Me!`D5$Alc8J(zYmZ摴z*+F&YeeZi>mq罳ޝWy}K?%/~}w}{x;z׾|ݝgOk^|xktK|م{'QVΦcFsx>4;8X(YV^v1 }򩛣b`ݞ*iz|^Dq4FĬW}Z!0 hd$ (qv,("EcfMFӺWZĘPc&U#-'ʑs/}miΙn~* ].Y:gn 0 Ecฉ˼4s}^F'ԝB$(!@eYvY^Hy^gZ`"/4Q3^IX $'ǣ i"J)6M"{`BVҵ1n*w<S{ݼqϮrsux$q⣨\Nw6.V-7o^5mNh4ZWlwN1zxxx%vڷEQ&J,ƔH)/] !9{F+IqdNӧQr^J)ĘZk<̙3m*iݽ]m})%|ٴm{=XkC;;;BJDw~,ه??Ź/B//7g~ '-~[>7Kk'şYo!.uÉ/ڏ~M_%_z6+3Q6XIpNMtEOr(e5mOF~"ZÛu=4XəK6)xEUt}<4ΒKhniffѨ"={㮗[`o'2F>ΥzNʔ"{QQ>2»`7OV~a߼?3όr&h5++-:ZI9 {}ۻ4@o:W,;3"OUn&ԏA{yД;"I^kYM7JRS{ty0vcHJ$L <Ri=zwAHK̃}!8若.H R0+uENR^IL)2 1(aȤy" 06q8IN4a\KA͗]3WiqnVr"F"W,9G+1X bT`[7krj f#mX;Wq uJNۧܺFǮwr'.u.U&7ͱ}ffd2dr]۠Q^qiMdQ#wlZqC |`x]Y4M(*EÈpQso5nF '9C\$<V!bx ij硱ڶCE)D4 *MYlY#tnsiY$ vFJ5ۇ$i}pOglqX;L@)= 2@7jT:JsGƬ8z-1g5`%5s ?:\i1,}'!IW}/a6Ib `d:Uxe;;{ƺtvD(  o3kوC|.*K/uU$,j`rNc䨚ΒI%DQnEEge2Nv I*rΡkscl6}adqԮy?;)ժ(Ӯ6)! nS(ׯ_Rjtݹ BZGG֜.W@eQHJ&[AIH 4{RZ8$b織Mql`4e;Q.jIaQJ4=<<xYv}EFy~ttT0 *RT7ݭs<Z*E7 qEm3e$9n9g6m!J!"Z(mq`PZSQV˓tXVdl}K 0ł1.8AMe#UG;;Dpl fSG\:LNYle:Ń$I׫ +ʮtԬ,Hb$8[,(ei׵9㪪DCO0ƛJ :ʘNժB""ͪuu>4Mκ<ϛ!qƏV auSpma$چPfa YVW+)ea\(Ryn m6<ϻK`u=D#pq8gqw}GtUs.N42BsZB)FӶ,M d91k P)Y"ցCSKC@׆ Q9P 9 QHkE @gh=Bd❯:/{ ioFTyG+o]~~؜U<釿I׾ܞħ]̇x]4'wG??<~^W&ί#NlO,>M y)4ϴG_8~׾^ vx"OZ tS?'カ?x3:?< o}w&6eC ʦ5, eUzƜ) [ 9-!ᅪrμtVkSǁmıKYxyF ]uYOFfBe5%Wد>&]6X?Fck0ʚ5xkgV}L\ܑ rJF~¹p(taiںO4k+AD-'Me+X7<fЦzs^ti(9?Zm`z6]8[ϒ-4WʬvF $aL<^yHLle" @);9((NȌ5Bx5BGRB<!{MSdpeJik'1%}TqR 5H!6P H ԝ {R=`LvKaaȍ3' F ۅmp5| c5"ٍ ԟR y̔0&DWHGDoEqH&aRNWU6)1{r x(oWK 8@G^/M~Xp:L x,qR*FqcΙ9f1jܕCSa2[7UŸ'4`5o~&GQ:ִnN]7@B8 B aX8@1 NY?t 2,Y= qm#M]!9go?}Yնu]E3.4q+ZˀzqƻC|T;uM\7J zoo(IVZD,qJSJ"λpk #jRFҺWqd]olVxdHXi wP`ysZP"8C  MQs <4b8D*ܸ{fz:Yۡ(9ux#OP>fND&,M CpbI Y"((jU={a[DD4Hc|4-S9'2B2VW,Kuκ4JʨjjѸOL֜I 3מ\%y٭ڀ@,,O,aMI!<_ !(}޼y3MSb^omm͏Y*Z bt2 g9La6mkk!MynUU͆2OYVrE)kgիO]xyZ!mۦQ꜓Ri*L,ˏrC Fd2!tZM܇Jڜs)eNj"2Bj̳,$F[!R*c1Fq͸ZH@h:c,IR9HD%t=<ĄMEpzrk6kviF5&+Ǜ-ҤqF9$[/8QfƘiNlOgk-Z{xxK{EYcFj)G#s޶x4麎 mimfnhɤT8C -BS۶C# Ξ?^(O)xxI!`9A)zB)ɣS޶CeZ+i#F1K!!rRqYW*Tʇy"IIs|F&y:hHD tmE0#겼@Yo bRC`)&l6y>\Ta1I"gH ΫX"#kK.w,ƄdYewCJd+viZzm|ME⠯j2TUD0 BVH]7i8H{u&<BJRJ妞N&zJR:B^59XpBZ;<&t[(zew BE`^)XY9 41g ΅ &n )m0:(JaP$I"qڦYpp<*yƄs6 m޻! k! BmG0Df /vx! Xc9y,,˩RV)YK@R{ѫϽFQх((F{cc~/֙cmW=X_ok{_7=]?]<g7KDpw'>?~۳\~ȯU~7~k/߹}wO}/~_} ~"'E|}W=Ww?xX|[~_Y |+/v|q܋>}8dѺw`. B'0Q_kvDAGF 9ZtD$:;hrљWxL1dWw$\Z:k!MtL{|~ї':q[:NY̝1҅|˃MgpYrwɛʅQys8N+'W7wk7CypFq< =;:`B3Y^*by[i.zxYpĽyĘs 9M0(kLZΒ<"D: T3i=E:`a q!&|1@͘eP"D`8E`!@h##9#L`%tƟ4$@HEK+7A5rb+'$IЯjnei,"J!L K9?12ujǫ"T<0rj@-HLlqɺi6Q&Rn r})' o0eH>kY#$iD edŷ=A ͽ>tcn-DŽ}vpkli޸r\B=kZABR Ϟ067$Bジ!6ƁSl*X:Xѹ; }'몲^Q,c~>ET!8yQJ)BN״rR)|'MyNEDK0ƜvzO`OrR_:N$xPZ[^("ie򢨛JpqR-8>+ k,`2 a2MeZ((( %wQ@xr&·c "x9 Nno,R cHHQImc ~H@}pjDkME*LkqS7Ba1,aEqbPF7u$"uf.cD+y۶Tjmm4ˇAcBeYu}셓\%)3F;SJф)GS,ۺۚΪRReY&R *HYLr,I8gM]WMd4.O,0s^I$I[7 'YYuqE頍5L3M'QjQ 1yZFxua4SAyUq;gIf1JuZ$ j`B@B1V Igfq^sz"&@qc)a.xnj>YX6OӘ!)&,˦(zuw/+Lp^sAD)XcQG@lrRqQYx8@<$ & #j"xB> LBEqj#!8zBPa*k 0(B[ 䠋|T[yB(Lx΅g [O#0+=ڗmӿfsX?܄Cɋ>+r7~~}Ͻr, Wo3/;q\nyùW|g[![n寧' |=yV57݇XT^񵟶Q9/K}-E'raTfn\tφ0 v-Pݱ.leY~uC lhGbru F[JmQXDv1vEK8 ԎRthĞ›!Kp@B)+Z#¤v^c0t\K iD>|H7 !DED" ظ>9tPPh@ah7 {ņ^{lCaެ>^HAGa9!#sڰtm~FT0A}e|Jc 1906s4XuRM{m|b$a,p{?Iq0Hݵr^_«yXhtk+D 2J?ʀt2\)aCtLaSܙ - ishWC FI8lMwQ~;a%ϿYhMAPGغb>TuAY&O$4h-1qbU(vc%m׬f˦"h=NI9R7BTqI4Ja4M)aZi}TA*n i1P2zE1 3+~r!@aeS(*$r6H%u[g JPU0iS 0J '(IU7ëJLovf `0H٘q \meD"Vw0'QNHI[ԭvlZD+QִX#Ūx/JE~HE}m$>lYSo.!$_" W'WWPU{~lm"3Qte=sgW 0u ժh/n6/-Wх!EqqSMti. Bdqn^ !1O#d(Юi !.FnWEewf!`H/2uN 6Mw{{+8z q})K̉ur13xupPe)4zX]>y:L"Eт aw@ !”"YDF0l!Oe!>{z!X6CY18覮EY`|qT,!,ea939gPhSf\z:? H c$*(!lVtPʙB !yI!y{~mU#g窪Ǔ(B A& )߽^.zL>Uyb0BEeG?|s8u5 5#@0A0!7R%|')0HU"Bxyw{ZA?o~٫W~Zٷoޞ]]b|؋wwϞ>Rn}zF3~u3{!R"RL1w?̿/QL3\H]5?l6BZ= i^OӠ1?<λin R.9cCV0r}}{8d˪tZm(9ɲf3}Qι@JB 0& Ck-{8/i\\J(T׵*i׫.91% @圌5ˢB $XF (Rjgi"X81ƪse] D!E@k1f{˲zƜeUUŔba]]?];/ BHC"SJ1ƔB(Ĩ/RvZ `pET3Gm۶Y$8wޮvӣҮF sN{Ji |zRXk)&cl12cUUQ^uc+)vP2B)u{8bK)!y2OqvƪYMT)_!dńq<|{UUq-Fs~:#)%N XR y8[溩by."hs1)cdk4'P7 Uy֛n۩D!iDs%h(! "js%ŲÛRڐwC#wUu|R8gX h۷mz8<(Y<:ѧiz9ˁqauaJr΂y)eyJ)!81Xy[HAcB@!%(lcrL1$km46ǁ+QUU쫺:%/vS`>͆R:S,9G1 ')&Ƙw.d^oc ^ ,K =D!<~)SeafU6xkrZ;甤b7i'|#>RGGX)AߋfG;q >WKw뫿g |t~?+Xi?|}s,[]-l4mK!/ߧgOJ- 45 1=+I]8{`8;K佹hk  !h44rv; 6ʋj˯Al&)wVOy! sQ˙PSSfwz0z㴱WIcUh?oGR#ϞJl̶v6 J9FA '0FxoeQb $W0 fé*0МA)T>DVSJ3L!xEN!ŀ1O:!R!9SdHPR91AZ @b1K'Ws0;͚sS(K&.HLJХEws>bGDBueQdOANiqiaGMΟ囓=DZA D!-2S,.Zab˂/|֖Ǯ]NGrRSf05Je@YHfvί6hXB@Ҿ< zgMF?ɵ>FWǷ$]~4xڋ}", vy;9>Ŧ !n]@$]L{gК؅^?ۂ?, NOWxLTw2p⊪D4I@﷍K)K%?F8!$D1F&sApVFd4#P 1.R;'T1LsUpc,FPB ZkAʔ B]^yo뒽Wx~?9!+q9sNK `䝳4u Ye (!]7q"L ?&gM}{sB1-Nb0g KQٻBMd3e]9U̬jZ۬sZ|&U!@ ƩPJ)}s=;}(XE0(Q.w1f3MSΙq.|xBTU7M3 bY4:7ӈRbS$9{х)&ֆeqy!:kF1`t}yy1J[jU:u!;jE:(gFMBB9RL S98S_e]յw2vsssuu> eCW??ӳkڲéKQV峗*8U  9!$C#1CJ&udcH]Yoyʢ;W]qltB]>bsΌGZSXw?r!ζmqF9!'a`0ZǔMjJ~WEsðݞvSAb) A0DY1aYc{@Tg@5c,xߴp(axG&x+ aã a) .o~6^sQC4f~nwwEQ< !"Hu; ]?5Z/gc\{E(777M)!Nٳw)T뺻{BB>XUU!,Lųo߿UuczlS1\\ղG7<nvkcS`:rΔdݭv튢1>SRI< !!i6u<!!BH9QCAPN4M&ĄQ\HDŽhcEnEkDUׇ( tݺUU/UUu<!sCYx }G8cB[ p<:몪ZYPD9va˪y,ڬa0kOYBS挕A1gƅwZpv~aDŽ:P* FfC۬B9CBhL,F(Ԕi*@`&r.JQ DlN2b^ZqRe݊$\M1nθVkK)k&h+}xxV<ۘ1J4Xuo~{uuI 2.RleI2" iLȜ!§(\Q&SZ딲* θ2 s2Ĝq=H"ԝu6\ՍPVb^mӴ!%) 1DZc,eRXMJ1Wu=k ؟Bvn QXcB㱇l6<hY "K1BueUCiBRʔREQ$D5M댍1 b̔RH,1!%QȄq]U`o,/''|(o H覱_B ;>8Ht\Ot~cҝww^~ ߩyp]a^=>ۣ>ږ\yn>4<~t?z7ˀ~x >~&a@tub.m*^ջn*SToU?E/U[,#BI{{k(ty 'Q^+Ԉo l/0N{qޖZ\ nyLĦ)'kj(F9֝)rHvQ0|N57T\x;/`A9o>=x29-QSr9Ք81!CxZ"7rCfY!6+4;Y6gF 0 ֤hZ !bLD00g!**0e@12'T IH!lHѹ1zr $ (YPRR2R`̽As NL1h5ޤUEŎ$7S$n5]bh7 $BN! $˒/hv1 }0Ww"ۯ~ $.: s)_⊱)z(ts<7m7zw_]unhRPs4 Ü֒g(DXp4ѯEEP,y[déjJM$R k@(IHSƱ.s`΅Bt-Mxv&o ,2 6Um}w8HUjmjJ ckmlUZ8-^f_F$p,g,J}{/ω/la&94`Ъws0^fBSJr0B:B1dݤ V]S)yYK5"%Eb2/3ijքPaۮ81F! ",JZ ݪ qcZ1 ʲhv3JƄs@~l)!i!O0.(%y0gBa!.neuOM*6B̤J(UmI}~)WO;;o벪W aֈ^eYUMݬL¼j)Uj[cm;kRo9u,1P4BB a֑> . *]4Yq*MP%XJA !b1Ŕ|! QJ] sBIH&' |2 )0csCS9GhtH 8ʆ5@1 G N:_poo40!8ߏGP.n*}d i/Z;Aя+p|嚽9暸тFFO6\7%(Ih]U)`{9&S~NWR)G;ߞa*^q\`U {?dmf-HNUu̘y\q0{ ZbtzfZ VV׷".C9+١ͼj[óCEcIB2t7B!Y؏Y+p}ٝˋ횃rL`/<cKO]>ECt!̔eY2AП¤uHyuz)2UY\R!7 /ĘsSJy#)RB0ƘR, !G)29hT D8eYSJјS*F58#bBUEYUUcUU91Bʠ,ROg֘|ӴE|YVy2@ #$!AfO}j>ċۛ5QΙֺj0jS޵uT1 Dr)A6{̇h]oiz|))c ҔR3R.U[#DHp~<*U xZV߾# mMmzZ BUXI)Pj2zM` C9C.SP΅;[[U R! !EQʢ'2RHI aնTR9;9RJ˲Z! D$X 9)#ySBT)H@3v<ڶBϓwr& @R*0 1A(!}C]UeU9@RaJй!v:닢8뷛DHӶê[aSc%T6ًeZ/2cC]JiV#,e!یBu3B1!E!9@#̒А r-J)Ӳٳ'k|+$;~~N'+oݿ^~No~?7>I$w*|& ݎ?p'DX~se=^~^yއ%S?1' x$>C(_Ū>~5h}4Uq)(G}9H.7L3v_P=;KmЛVz)%VXPRˌfg (?=躢D v  >$cvD* yKǣrQ(S@ȃ^>EUBv+<^;oBSD~JI2@'+CL# 1!BaJ%c J3~CHylv9@R`f29A!0c zXL "sD$ Y9oCcB(ɧ3| ƺ TGHc : Mos6S 8ơO%KA3(qƲLLza[bՃF0` "DxUQLf Nk NIR[i!_F?V12Ւ8q1/vqB/ɳn6B$o7<<{"|M\ =ab-z?݁ւ=; }ԯ>hcP>U 2-g0dͳzuf`>r2Vf*3@3gh9g1&!D81B%,(8k "!$L0Y{~~1 Rct]Us wџFi_YN`6X/K9Ř,N@J9Beݻ~3nx(!(N~a8J%Њe1'L χ +ϛeOM1sڨ-& :ӧ~aCƙ[/8Ǿ/ˊ aTՇ;UCZwݲ,fgYu)? ɽOq BR = c6>i^%1ic BHF?c!BG bD0^oNBs!aBu,A]we*UY."34mW{kqcauS!LbEY ?n) `UU}]WlBH^޽ЮɼO)!L0%DsJR6w.䭉!y`RIh6㱷 ۦYiZIUhc Dc<Q UIWlS:;? 1Vuu4 nVk;>yL=!B1=]qR{BHqQp:9ReUv1.!Sf&@qƘ juIH t.0JJ1XAf^ݾ*B8Mu[Ǫ,!!粐B`SNBJsA"٬ 87֞9#BZk9J2o71iy;cuS~g9g &@8y菟|uOMƙՋ߾{UQx<4M󨣫BRMW_}%m?}x//iFa,WxVMnOOӾw;.8X0>8|uy5M1f=;_tǸ^1BeYZ(~_\^^lOi@(Yw4)ˋ~ߴTpH9~)ŜX/z n~}4Zk>9c c!!@qaZc)֏Aߏ"UUn!ժ?BkS0&Ĕ &dB (q$j!grU" aD0? B ԟuhccB(%i&0B mI-y%t{m{I2$E2PC 55<( (KH$|/_sDc , V5]>'bo-,1cSi8cZ 1欗8:%y *gy%tb11uYJRk ʲQ11ʀbJeUY CQ>B̋j(FgUXkBhf1fژglǦmAfZ j Ҧ3e5iB>|ppAk9êmg4M3Nf9UYVec1>ڦ >Var\I4M~q붦B2yRRsϖUYzk뺞穪* @(̞^=݇wTu:UYnʪ::K)yۦK0:%(QKÄ3FBJ5 !”~BW8ϳ*,t!+uP‡_5bޝ'qΰZJɢvqBʘ#FxZ9y,R199WePbV)%R0wC]JiJ F(H6(%V)źلʢiݼ)bBjB)@Rh].)b%$|unsze"t<&RNYBR1`!#|yq1„IgB .Jkk34 )蕒2\fcjۭuRUs~^TG5sQ"~NHﷱt+8tՓWϾǥ?{N?ţ|< [ 1~[a-˒vǑ}>í1w>5o< RwQ^DiN׭_|%UX}6>WgW{-*n?Gu4%Vh|JM]jX^޹OҼ?qdK\-߽sO/ZH1[]$g/.~9fyUcw1CBn3IWi<({3/v2@Ycu\WdHmȯOx|Gk=#ZjC'ҏ*;}k3>Z& . QMro3ti e%Nr<J k \yN}"(A#ȑ|#t#dMا0DR"`B(n)G ,gF"@0>J1eB(Fƥ&,k- maB QsLjVҥ1>8rdӇͶa{3%l6CpɲƾjZ罱 Bg31Fi2l+NZ٬on0vq|l."T]\!cOTu vc٬:Ä1s>4uknؾ믮.ǃu2tqS??RLևWR8B )eۮ}]\^Nv=}뺺/_8,RnB<y1s )^UeYenWHӋy(a֘UvЮV}U=Sʙ1& 9f֪,uۤT%4 ƘR2土={eٝ:!0 EQ1Ff3]_]~(qʞ?{v8˲<^zF ('Dc[ .J]p g3cQB?+82n6f64h(8kY (뜁fBc93#QgLx9(~Q~wG\yƾS<}>|m#?b&gsIO}(? ;l?N+߮$4˜R3yB{{+= tn*&ϊ:|IOYYM-`/uzh?y%? 藻 b+7wâ )~-wξ(l^\=i燞IEbk4piM`铍"/?t>31i,JǭO,@L<3UeE6M 3Ec$ot[}7\K H $tsExJ\`H;#e)l h`L2u<%8gbULQ8;ϨrP@(PB!Gιޅ3!rFgɀ0bJBdrF!QJ@H9dG 3BgL3A#9(!Bv1 (JRĩaqJܒI}.k.I6Ű>-|pht1"*iт񹌧%Q.xsZr5Ko@a\z[^4%8$2҈{P[(oO>&yd:d_-BS}g^mͦ6>r5-sH8ᓫr6nΘDK8S󻻑)}%w_~@VZ{B8JB7EQc3< gi!ղ,;ƹ1/ `8]KC 04mu8&挼L2LIIk5҅'Ωp8Eԕ1sQ8VZ} vn;kZD s(*ΈʹxCpuS\FoBcTZs1$2BY /!yR 9c|q!, 1,u?Rb˺ ,60!#f 9M y0Bi@uvSt:e -O.ftͦ4BȇPT0Nv}UU9%rֻpyEOlʪ3G%K$8G18;o Ѣ,Vjxo6Ԯ y*w?|:0sJy_RLRf;05eE6y2J^+ifD0e9'FЋ1|~E߯~5c>T5!ԝ./vɳ'3-4&dX:9nYp޴mq'L99ѹ+JÞs1 %(@ ˂V)#$_{ynwlF#3OM]JC! leYϾRȺ 0rm}!t̑R\eZ }Z߿1)#N9r3dƸ:H)u]w΅,2%bjUhUU-|]Jk4BTpi✻ƉQv}}aiZ91a.4o[bzmjGRs~<R$Œ"2Bi0UU圹1Ʋ,!EY' @!Js!j[B(3QRʘyZ !~ZV!FΙ1*96[J !)!Bv/ϳvliETuT6|>(h.n{~r}mQ\.ӜC@6.z{c@!We!GCBW1i^\h8ZkuD8oW%.ZںCEQc)DRJ*IKhʲ3)0%c)D% WeIk68G .=Nl0Bɶ,qF!,xvՠV+xJ~#Ƅ16^N!BJqQh^IyqZ^](c1Df;ӦiחW붥!BHc,cgT%!4.؈r^,n[ 1l !tuyr9qfmQສ ] ꢤ_lI!4T5Bsr2BjY)RsYk72̵*(!} . ]8kS)#RN)q0&9$_zE191K](ASaFע>ӲYomj(DA9s.(ARfŅN OB8S7x#G<x#G<OŋpwA`ڍ7_s1ϥ$xA޷E(ӻt6i{Y~މ'UP^ePDG.jsp4)PbG',ooy/>O. R]n߸94SE"띱#CB_6ۏ.Hj?KB[%MxS ° +%Csn.g/:ss5F֤_ݱy?z &"1q̈́dO֜GG .&j,[㳏;L`J >&P*saB(s>8sw9*p+Ber L c3 28Ĝ2,)'9`4->lPY~JdFٲx VYcD\Rd^;5,.n{˿=FUINYSt;B!6Mn $bpl裗f# qW>Pzy~e Qu_|{K0! >PD|Y_?н^-o;q/?̘ǻ.iF7o)us엇0vܧoN&7%PcT!'dh]J0L؇1!\ !%9ĸZ,)G'9I"iL)FO&C;ycNl?{uop}|Q'Eξ>7ʏ3ؾ2fmv6f2Ecem]][%Hæ)/n;ɑr ūv}i1NWkJ0W7cBfW?y3.ieq:./N^)QU4!TYB+5 WWUU˲Pʬu~Rڌ2rqq,91ƭséӪ)us^֕R9Dޮ7 4OڋfHyy!ɪi Tu6Ш2`(p%hK)0ivRB`,T%IJ%lj rʔbU(ˆ1b2.`1ʪ,ʘ aPʎSӬΎRJ=ԆXٮY$avc5cZ+)B0FB ti쇲(Cv՝N9Tr9 "8cS8c!qj*ǔ ֜$ UYLb1` ę@rJ3gmJ19kR)BR;v771cLrLg Sƀ](ZSYT3%TIb !) g (L01s&bsgػB(;ve]묱Mr& Z*kz6J? c|^5 C^0+tY8Nc<|~8|<~}x|HwGϕGƾS<}>|~{wt#xBRBLJcZShȔ4›)lV"02_|ͯfMI}$ -7E~+F/ȿpwnSI4OVd[VǏjWvjB>_s+5ob|ZZrlr@ 쏞UGfS7t'>YV 4,pX%z5v+cD~DmgKq Z,%u?{g?]UQCV#g7&:`kȻ>^qp p;G1h~ᕚ!Ň9cG ZRs<J\vxI.%f#FSJ>$2yN|;@cVE9C#2J) SC:!Y(RrDId)6IJYFQ'X /KC*T KL/ |Ҥe1\nAҧNP7;fFx{fE_!K _\v~z_i5i]f"{z?'; %ҷwД@! 6`1 [R^{"E:J\x?<:Ĉ)`zW6HF_0SlD6vf vҬZq R0Ezԇ &0kiPI~4Yk,|6eÒ!Z2?yYf}bj=*2#u`ֶn'Ti)bNUS87)%ؗb> TY;[m_utXosor-a]n9d*H߼?h co)dzw8) JSGE$ NcXVbw_f&A8ެR8%0C4bYT{8)luYwY@cӶwJz!e r<EQy>wZiD0 u|@gvq)Nb搲V;2gH2 ,eUX9f1fJ)vc1L %HJ!CQPn>x {JiQҾTRaFB޿1./}۔YuJJ|RƔcۺ,i#$ oۍ gPzFh[aR)8]LҜ=sZ-$c9c5e9,RJMPB:/L1Z0`}ݴUA)m!b 9s^iw<ϐskR{P4C߻Ub2󢤲Ji2޹Fv59*..謣n7qΥS'kULcR\PWu PҌS2GdL[5vY(Px #̙t sc(FP"UJ9!1ZPF8JhUg"Dp)1F:FamK],fB!ggT%$gR20mY9zŘ!L8řT\X`8cĹH0ŒqA 9#(J8-US@?]yQ>W}H?a<}<6#oc5sQ'T1\4~V+~U/>W_ߏ[/~""[D3 ?~멨XAd.\ۓryPQ> vOX>}oq vZٓg@ C{Jo Zw*Y IDATPNYᄻ$q/^V_І&$9!R<ѧ-lvZzj>,9_I8usg%}?*P"&2I`,ؗWJ Yy|{_W>cv-G+rw,% # BܻҜ$%6ۦ.[[&pB8#!d #~U| ;YEߟKŐbJ A{i!b RN14xg@`!B('$ ){)g.G99D493@Rb/8PF3%OtauM 1AK GGebO,YBDthGc[7oG2{OG,3=y9? jwuS{͍3+&.dIwSPCaS\M^hRĽn}\办HYw8/kXx#O1 #E*ZQr(DRJ<3PYBJ2[91 b^^3Vq&#w)8$koq}v~wrQ.7Жt2O!5e:tdm߅FH~^ ݒ}\SD*}Ld$, M؆F\,p/ޣG,&\x2^jXb!  `?zH UxL]-&Hpщav#n.?U; 2i)1!iHԮmao׫ {'¤1PVvyz(ewsV}{9R0Of~prڮL\M{r.11ɹjB ZG 1ΦT.3cR2hWq)es\۶E)=3`}c7Bcn?dTs~5Bh'L|hu;eVs97B.u^|L(,Ji)Ħi~ާ)"ڹQzvSbds)]טy=m\0Ůش_2aԌu2$!Zr )Ɨ*aOSu1FT*ww KSp\o627)9SJ<]6M!\vxvp>)cL9JUv0,vma2R*Ơ)`,0"r.BYq>z9i2-Ba׫ut}\ܬ7۶CqƦqB LBX1D(۪ t~pn6S |˗/g/_p>>mӶuus?~rv= p<쫯\ݧ>>=v`|>7'oizӷ;Bpt>*Ovw:]~KЯH0x>]K)QJt<~j !+mj"9y~t^9jՠ _|s\NZe!pP^ιf{䜇8sK)Yof(%)%1e1>4mjiNeP5ֵU\===v,X,>'y! !0UJ:SJwwdnk ƹ$8 1F7׺#Wz<1|]bմ4z_̼^Rs1N(Ru+!R.TaLkۻhZ)&}u]ץ0sF1sJoVkblt㽧J)/Ku9gʙe{WJu݆Q,93Jk)~ww ϥ,,8m֛y^rLp!NH1.0mm>Bh.i4_ Wi[}Åm[%%'t(5s2\1n)!Wy,`2Dyn2!7GH-NJ~f4B(XKJ &c-t84ZnBRJ21Fyc/7 YuStvSZef6i1&.jUkt(0nF7qQe`P^JlufT܂)ݪ֠}R*\d1@JYkn_Wy` Z79"*b]# !bNR0J%ky.P} 0! ƈ3~u妔!jj)ιr) ι1F^jc!nyYjRTrNIISK-1"N/5\sfBR NEH-C J(- P`/yt,?Ƴ|mD~t_[v;3g,_[?`|Ǵ#BPbP޿Ou>]4_oo/)~rӿxF(/Fm{?~~^o>7#Dɕy&5 N(LLܘȥ\r$gWv^Į6ޑ6,4LEAo;~* xIgJ_+"?NWSXA"ԲizI([?\` 3!t"_78w!r-nyCd.w}(~s2ּeH%T )rNscB ߖum@|+ P! w/~` `BKdI"Wj0P D\jἤsi \ppYZtܸB1ffkmF\<$"%[r_a= OT) D*XҊUjNb*FM[6'A?$!?LTtG[i_z,51'[0Òm5]}550ҩ04lГE>"|ZV饄6K=Y钙.P P4K%GBeT%QR F^s".?՘wECMpq`K5'I1Gn+Ajt0Of?|+Aj<iY[k>:bLL9]삜L?~\ j1˜ij-5pVv1l){[m%̊ ,S* %RjA,BLZKΥB`$dy_q6\BhYzcDynzHJ9ϳj9%TLT)yYrɋmqί 1<@1]msN%~?_Ji6 clYvsJu`LsUk%ZcKok|:뜋!%eq·ckn1N*aZg1jjJ1v^Bŵ^#[k FJ41F:Tk)c[O #tӏsBQ@HRSM;0 s%,ZTuYps{W_icIm?f,Ʃ_2pJɌӒ3#bt:_޾},n:gN1f涔R1` ̽ns2~,vZtL5&oiglJ)y4/MZڮ9&2 n!!S>DHUc()"kl-|lPn7ӡo4?>=nۘ0yZ]?}˯Mt:ǔK p:]y1]@H_◻ݻwi8e?O_H)7otv&Q(0c߯Omj+BeZ5sֿyz^3bfz= uZ*LtmJsn'0Zy~<!xկRzsN)y̙1<0 !RJ)&xΛJk1J"m}BU's+@J)@8qWuqtMvk-D%/JJ87!RYkn RhRG%U!y$p-tZFȕVs^~8[N8׀qEŵ\,Zkx5WrGе83t4m>6Rr1zG0Q #@Zb`J%T \0뾵>IK.2wM3.TZYoiVB!bteT ü{BF)E(xu]fSZKIZ,y&礤f>V9W%v,% J8>nmKb0PY_5kXaZ9k/24Zmlnb\s+f(N!5]תԯv2mʉ2"ifx1e SZt#svPas4Zf]Y{||J9WtF8a<͍n s& ficHS%]coo4W]CP6˒j ZFp׵k2o"H޹iBLqM8XhßŖ_ %he|Ǐ?7eIzOv7޹rdK7p<㧉$nw㓛 |i!^;T>?y|~3'% !BjFh3FIE6d)&jq(;Rʋ=5r7يzߙ|?{_W6h '?MJxg/Y3k1R Z"딋xpJΩa@S,Bsѷ- PK]c~~v}\Ţw6b3 #\]/ WrE\_UP&TT!v7Zv @He('B  (.#Ĥ]Td:Y}%\3*m!Li Jo>X$8A"曳5[\P?',鞗RQsAOS޵@NC{luKϙ2Ag߷=Be4h0 0_ɊhaێY$@Akݞ1YbcMy()̋CԆ(0P~/S_)\Ѱ;'"j,E$mM *Lq8|'=<~DXZ"S<O_TݨZ0G'ʵ eI>l]Rww7 h9`s\nYj`YaoZ+sLҚK׶f1jv/FVa\r-B8J5A5SPZ.E70Ĝ.ZpI)  %B"siݭS 4 !k)u0BN|`r'TqntcdW_5E8XU栤߼?W+)2Tq6O|kSBŇJ aFaŠJxv5֙Vˠ2.}2dKRRr !\b"g_ϗ˫W/N'LQ,'0pLHzq45SeP܌uq2)9xww7O hk %OoR,#b0))\caLR(>PcL:n?u]Ji94M)e^[pxB7I!yRR.PV-!4(D#!dIigǐ1(YW v3ˢscѫ;H!az5ՀqcyzzRn[{ Ƅf*)WFiW`mZs1έWk,ۛG!0ξ :*ƕҵBӴއsJ+JMΙ3.\R jiTsBYJ1RJv0JH}9c߯0&AT*kffoP]79f3-MsI k]Vjc_3e8&98|s{7].UsLݜΧz} >0ynved !kIE+ C,Ĺ\} B8c2gXJ)^}u1T !\9MӞNBXpYkZf%zʘR*Y7M#q99 DK9#ZI)i)|vR*#QL &T!gaJ13Pq)QJ0~,֪9"ump^I16vB0&c."D AVJH59!WKdJ)s߭iË%%chB(!d5J]/6R0m -euoZ\"+cLKn8Mrrb >TO3k< ז?IgLoǾS<}}۱YwcN&q+mVL\|@pd-gpZMMpʱ ׍oKoi6BA-Z`3"A!d|1 6:ZɊˏS:F)wJoskx@nPxlfJ&8wRW(nkx_ϴ2nnjHA~_t[䤥8#Ŀ|y^tc:.Ch_M+|n IDAT!Kѫm1iaԍE/ 4jxtiC-p~<0_"ftԶpN ˜#IuE%3 Ƅ3N1&U{J!qJt`RJc1VʍlݪL)/\n*KI,N1ՆNPw{\BRTv PFNH* )v/\6z//w")Ooa Ü(PEf3Yt='@۞[k|mלS*)UkBH)SH}A2@x&BXNY41&Ƹoȅ4fow"RZ+!**!DDIiOvłCW%my^Brכ,qH)s.eֺ'5bVpBSJBpa!@8ʮUoZ㮣gsQ_kK) !c59wZ5 Rj3MK-ֺg4Vu8 ]PJJ8!efdMl% 4nR,ڶu֘e^λRbCcxx0NBJݪ/ԒB B\}4aey`H&\9v2 ڮ*׊8Ƙo$%09\lֺ֛!GcJ)õ,sBi*3R@k\JfVBZsIi%f·@, &s>gj}v˲cƘEu&Rp8(9ǣ׍5%gǗ^4/0ƖŞ/C[lΗv VkvoO4-tjB!5M3S4v}\cR0ՌFwww9ͫgv!_+:j@ u=Ñ .P0.2/74\fS˼zr9I) b֫iZk@唏D}zx?FsRՎsZ9g%s<ϫw]4wg,;O`XU#N :L_q֫<@"ox yØSb>_rr`?ݓǡ&>E[gjt=*9(TA֍4<_@Lp2_~v/$X̎[\ڵa+ׇ&?-_eSQRf'S1G 0VʻyX8ǷtZeL&;<:EkM}8=~f@(Z@U\3kPFR ҝ5.ǥф[U39gFb2Ҵ4ôST*QpW@ BrRw>.KIl#j- 0GYRdZ V œS AP%/T0G-KM0<%gMlb*1J~-"UrѓG ^7j9.bl)R8Vтe\b?n;t߁ gRQ $N3?@/(㒘N[ytRq$o,Ƥ)ThFjDTd:̖8`Ûd,j Ɇb Ɂz9VsȖ(|T(Gs\/bЉb-B,/Bpc 1hDJi)iR52[]o@7x1`iPVK)%Q5]Sr)mnbnroƦ#[9 هLXL 9DaNfke6cpJv rRWvs kalR> Cm;#J)]:zW>FB!t13%Za)%>8gBRTZ9ڶ+,U*P*b)iFWq$䜗RcFe^.QmaڳsӜ!gk9]޾};M2_mD`ҭXyY)%8T)ez> @x;g)crL9=R"e/nմ8r%Jd0 9ZwjK1 !\.BBH)qlZ+f.˒szeeB\8MA 3ZӄRi>~J|_+ kVJ}@ĘR]o`ݬj5umZ,cpzm0&Fo=J(ͥH!. ;fO1MLKL++Yl aGݾwRR?r:ͲpкB"9˼8Fq\S9)Һr98b6uHYVv?)p@U"}"ҷ]׶Jy"BjUJ{e䵢D_Kno6R#0Ƥw7{v,Q~9<)$)$F$ w^ BZgJ(+ԺS^a.l\ZsZCBbR)RZVuLc\@C)jXk9Pm4nV맧'T߭Η<ϺV1QJ\^r6vӴH)Նsg唭mŜ `Ĺȩ.Vzf3\.Zi.OPͥBJ.zwwM1QNjUbBzkRp:bU0Qjɩ֛N a#ޕZsR+yK]״5~ݯ1 &0JV"y6`rN(ajvZ4lG!@i}>_V U!Vk wmN chu|JGw=H1wvYY#J) Jqns1'OUy'8f\)Tuxo1 djTĔۦ b2OKFSVrmtk"SJc%ZQmIkYBf1Nrʍj 629P*FP+H!!W JL9`J1f jpqd)#Q*)3KNiJ̨ru\4)&%4T !JJ msIrq Zw2еmpQN㫾!4Mg5k$u>ggLoǾS<}#sYAߡҹg?C1zO:%? $m[y^޴ߗsQCcbc)ié@/,'7v4yL YJWƋ tw7Z26.΋#sy |Hձ|k.p!Memß<hՏ"Ht w}}Ea߰: %}|a{eJIAT>_?yYaao_Ę]ܛޛؒagwMUYSW(5Fq-#nk2-(RwS]CWfpm6fP@ ~cu;__,~:ʤTI&C7MSS !q}ᘣ~NUlٕw{jWWMv 7 q6!RJ%"!RrlBwOkEV Ps)%TTH$Dbhy4U%!8F%-.!Ef 0 \ryKRߊidn~tn|qp)ZܳT}?_?9`?/\ GpYIcmZ'[WP9_S<-v ďᶏ)b$F_f1W x#K_3a /$(}a.5@1T#9 )'Z>\!i8<\Yj_Geed6Z a7R\CLb`^Z9!]c.ضVk}9 {ȟL ݙtig?CWBDM;K)0B~w37>"n1 ۯ2)?qdǏW'|>^1wOcK>RټO ;yaæNE1Ptt!ϸ$y#䘨urpˑrT~}ӪGhtoX\ '! OLzQnm$OQ?śO2Os֊%WЊuP~NeTxoHNC] ֒Vs Hp˚TbM%OXkF(N)X[ `NYk g9B mp]=EBk!\WxDBR A(^RT 5i*X%VBA:%\i%2JsH8e]k k\JYQ!5e| 1rfY;DrC$s"H]Ӓ4RR)J ?%;M4ְ,[5]n6b#2nC/ dc>1qUpr>hDnZdTJR)R!#ʘ $bCY=rJ1<ȅ `%*u]rA$JBe/s&2z^(y)iɕ-JB^2 !M)B)97L')ZV*b]VZb&/OǦ6m ADD y2Pur1NVq2r.Y %`2\׵60 !s*pvUT(PHy ZMy>%[]U&GW*}.i.K9RjYctȩGvkKMx.A*TXk5o^n? BV,+ %XJ1^3%eys\fGFYNzas\c)%ZBH䜅p]SJWepʀRS>9B\}f(b2FѺV*N44R;@s#p&b%y`JF(mt<KBOȤXוRr9WqU&9elZR1^*))ZU]J*\/snUڜč{_J#3tuyUN*-y; IDATK9#bu]kJ&RK!ͫ\sٶir nRZĪֶǚeeYU1TH)q]=9fY|ǦijzzmdAShsnY~/!r4)YwRJ1c=- _J*Yk%K)aO1BsiFDJq295dhwO$"R& k~}s̹c0Ly\JsM(YrA 1H)>?7}X8˦R)]8|ˈvfoexRB\bׇsA BR $ _[KL4@p+8MnI2~y+H gu$™pkev٦ien;$5-!8ݲ6 ivYC- RKw71U.n;Đ 2#dJi: *4)HcCؙv+T#lLcSjq>T$vO()Tb.RRJmj.RRz]"hI95m 1fxQqAcHe m.iZj2g+m MJuMQrcdR88g;甒2+1mx UKMhe(R.xr<nj٭}|}:ּڵ1`\ ZC)M[!cv; H)s49f)!~eD~ֵo:L3=P&)"΄z@i(]r5]bjMEH%)O!q&lRc3Tvnݜ4 @ 9B-%'QQk]stVD}4v]֒` ;ZX^ c)!VJ.$(I.l)!8gL) CD!!"!@Pr5H(aJ}cBk:[%%R7F!bAb RJJ(֚c.)X A RJXNE*J9Z`R R)E@0ZQ@x mΩ s&`眛aM%))2RFkJ4+C߾eB˟)~ :!n0YdRgh?=k%3nLgL7Ӧ;|FC$9eu>D>ӄ A)?FOÿewHn.iJ7;͹\I~*힊7j_}JM S\kzɖP2nnaȗ\8/n3/cxs狧[mHrگ^}3t3*!>Y)bX.7^Tx';7,y0t ./ 58NqEz&2e/y NT\MUi_7EZ"v]\-\>{p g78BJXZl~˰-]x8^̷̕HR"id-OkΜ\ DCLNXU i C-WroXVJRk ZR!_b)2\ZK JTC!MeR*Th Y\-o8]]CSӔ*.(B; S% D*d^~ @1͑$*g+4.XWVcvgg0w_qR/ ŧ~ԓLD+QK%;!=Mm%.e=#Bz$dy"*8Yk^ hOg?2psنm9#uTre%&Y=Os@Wr hg딍q/ȹ0FKeko1fJp\=ԾGN*eXk& ('k-kJ2̄ !e8a(B1UpIOKb~ۜ9ȗSǣ߱!o추bXs_(Os).VdU!4MJhe>JH׺an}im{!Mz{.gZ|o/IHNE/)ׯ>}<H(Rj\O$$:jbۮvnV֏XsP+>=/٘6R}LJim7SXX 0Ok,!N1@`AyЊ5gQ779/F z#U9[o ;RK~<.^N6|uz^45xUj"K R@#TZ43r⢋}׎(S-͇ˮkH;wǧN4)e.5zk 4]&X֥e+lw.'(}zy;^QDHE7|i#`9n~ߴmUscM0OӺ.޽9>>)a߾{윯Mw39 R]RM90@%3%SJüԚc.y΄0Ms.nȇNRʄ` I7yO(իW//ǔRiVZ$w~ þ;$ 2&o=2\ojX.JoK.%p1l7{ݿBrR\m}CyEbcޞx>TiJ).6Ͳ,֫i(*@7}_r&wo A \hRcb#FyY(cL(f"*>jc^mŵ]/moe]52OOauZybΥlqY0Ma 9+RZ)e|%$cn۞1 FkFHE+5/˦wh}uiiw6Lj0(bjousrA^TR cPAqbR4JמZkZ\,b.)3$Rk$sq͇5Ɣ\Rhjcq"!m bkڜk΅J kZSK!}Œ!Ƥ0 b-%O)pΰR2RjR©O)!B3c7R\ ʰVNDA*Sd^{sS`"RkKNF)F;'8BH)K.y*0J>J) r !J1PRU@ť`\Kʔ{CI*S)SB)@ b,5d$u.0)aJ 9UD%SREbdB5Rrji$1F1ѩ#ڶƬuʐݰrM%f5tX HK!511)GقI)*+~wuumrJJɫ1b$bzz>u~g?=g? L p:kj뻦1wP!NUJiXR}4Z1jKum%Eo= 1.r_W_D|u{hv/bկ__~*Bn;o[bh R5i^ˎ/!O9ӭ复L8Ӗ*n5=OG}o^폧*$@Ыa\SQwL~GиSÅKj\!F*M~z\ ϶mG)g߲1|_jÉ&G^mIs-q?y fX$ysSvG[rBrl5چjJW*PJo5ׇ_YbgsM&`hɚMhu`׭^ԍ Ď^^AםNEld"X!R۔2{lf7bees\g354bV,%<1*s ~1%἖s`_OStN՗݋AHaW7ƺqi-TDH>,K. ہWğ)\J` v%o$wI15.L@&IRe7:`!{PTqw 5ė4fBAr04Z+"14yp_#Чs@;n/g *rq۶AWa4a:o1R<ek24ĬLMSfP*H(TST u Pk߷ӴƔxY))Z/U HO}=xe7e70zy~(])c"7]YukaaPwRVwi^R(ievnn/ϧm 9'81Q}#%h,*Sd c˺ ,pƬsmӌdLw޹v.7xrݚ`)R&$xjR䒕)RB\J 眬uM?M3cR+tHGB~'xw_vJ`Qr3_^I')S(m3Yk{WEm<(뛶SoV)F|hd]׮鐠s֪ -w̛i)Jl:۽xdk-G)H.5ˆ!R8V%"(.DH>:.t 1xWTtj]LREӰ Z痋TClFK)J+Atm. 2䬔9ڶM N)N4DJXəB !h()eEp%CJjز41۝1] :/HP3ҸFTk ^ jߙUj&y>9 K)K΍iuqB0 r!ڶ9۶IPBu9%82(!&8͝1}PR9UT2"8g^ sy^PnI9Z\kE1Kr%e *p$)DA)ZKR0F(AHV79ePʕB@40ƄJA4Lpz`^haŇi8"'SFcPO>|BB|J] g44]췧ӔwOo~)o_^ 4Z;zBi׾5WȈ8΋1w J)/ihM>Dȹ1!_C5g?>nL?Ay^'ΫM)Jߧ;| eژ?ͥe<_|h%g沦<-_|!ÍHzI3 1EOEr-]n8X/GvΊP}^O)6뺿~P;6e>>@_'>pggz H:[ТRZ{ʖ:ˋw^'(^.N5fKܜלDڭ57( S}{#?=јlR[)O/7aOq+п{j)i߮WRfU;y,>I^5@7#@햋JX|$!'|MUfTm!C9SĚ""BފPtA5e xОZ2 C4WRjM"1g(,DD&cC$c -S,61!zx2;ـ\IbTђ}0p(qr?혛75z`8=P/}mWa(?(7;#:7ClZwLaşv! ) Vg'9ot˥|y^Xre,d)Ze9!4d^. iV+dwx_rzyD+Ieg,{>D`H#N°NC2&~ 0={zv%߶MJ朅1VD)`6גsZC9nw9_J[Zpyݤ)DBHJ1s"BJyYL\K)J)prJͶ}괬%R19s!Bׂn%,#|p]XJ)|uuBȘw!R*BZu] d4d;zw)FPC) :cB9)1Fp^k)%x9j-2\5Vq3AHϩؔ\2Z_Mˡ]lϹZc+@]4DI8XsL^NMnP꺄íya{Cd R.c!~S9Rr::֦1bB/7:JY|훇gFDѧps8xӧJd]4f] ~TL1S۵(c)R]Tj]WZJ!j[g9e!8MZٯ~\T*H9Rx\bY r7="7R8ψt[_}9[kF_j//ǟrΔy۶fK)nw˼yq"*uYk? IDAT8NwwBrAJۜnϹp8Z]_ *n8PmrS&H)a0BInC(m1$11DJYJ(隶iB*S)T}ysxzFV8e{۶/bkw6=vRSy x:({♁2l!˒hR"m2v H(ogcmȈXuI/o3"*vfu]0tMbBC|.\(!S]jr)8cLNE̅X.I!ն>H!BB}e,C\`Ca)%d%4g%|48+SñR[qr09u1֨cZXD\nC}|vQx11_Wo#*Lnݾ{_]W4U9]Z䟼d i'q9,e 0Ed=qaDf[)uƳg+  /@@R8C"J)sdV2-y(LD?J! D O)D KJ9g 0"$ pD&hQY5HH8CK $ù 0̂q$,bm#s.xp Uc/D?dyao+S}Adp*B_t})$Wr8b8x_.twgݔ`bwǸZa_o~OWrI\<|g.4(!lyXn~7BmAKu]iBL4&0~?~aKFF#C#,11NdjsU3ΉY}sY1^ivbL6s_]b,NKnGq>sa! b|a@Uà]~h8a/^{\a\(x.] Ku]448,95uSJIxW~I ba5'ёS+{"u|@nVOOj49 i)-l,ҟjGзw߿{y@)Et`)IgWJJy! rYp&8B8 "RJ!4Ys3!TFH,8A qg&$\;Tf*@TY/@~0΅0tnfD !R)e.%$8BFϋڄ8K1&EM*) * Q,4tJ1 |nx"U1ѶU%rThzV mB9QrZ&9" d6*ϭS]Li\]9 hv\,J͓3rnl/ &dњba$CU? yVzg'c:~ #HjO8I)2&P]WO]]\@N%X*SCdf R< @Ă0ϓ9%R.\ )%cLSpid e m%1]@nֆPS!Bp}GOJ)Se)%d|B!lՋ]:)Qu<"t}sKǞs|n4\(eB=P6Up>D2Ue~@D!<Ϝii.%I3?WWi_Ci,u5~ñʦyzqN [1.eUb!;mp&X20n7iֹqme!1FE>瘌1ѧшML 2?>x"Xq\nK)OOOJRJ)mۧO>v۪iJ[p40Sȸ[z\ 20 {绶eWUO11>86t\Xk la"RZI 8ɶnrL)֚2jK ?5LKDŅJH`my^RIއz}<ko!B&Ev9S׶uk%c3Ni "Rz=MK! p*sbsΫ >U%jSj*8c眛\Ms,^Kefȍ֜1AH1+c Ɛ3Df2R!g9\ ʹECjj8yK΂~RəJ?_"f~N4_S?%돏0 O?8|0 >|p?ޝ޽;ӛopp|zZ/aa?C2aJ~N&pQLynPk!2Z R87BCLZb > s\lSOT2Řկ7x31OŅ |W$~q߼؎j=3J_BL3Bܽfr^~y쵎B\Xr79ԓC!#RHjHXZ' };ye#KQϟݩ{dhU*ݔs[]R|K[EU`yELFӇ?;h4U̻$DVYr0TB[Y7L(*<4ylg8A)Gِgv¯~Ѩp(8p8 %2BpfT,FT ΙTx#xA0.\K&rRf.!#9bqA0 m9!}(]oHy_]ta]s?8jS0hY&ʙ1Տq\1?>5MM·+ {)XkcUU1-Ē""d985<ڤ[x7ПV 첉HqksƘ@X01[[Cn1׊)%+*4 ]ۖOWJByT< A!iDF,L(F)iB`f12b˦Y&McC1e)5"R T55lsvއRHCm)Ŝcc,!nK 1şq;<(SA3ҹ J)4S)"Z)Pz'uEP.߽ )a`r+BH)&mqR{SJa932H[&_nԝsn^B@T? MzxܷuRZ/\^@mcXh엮]mЮ:xeιS)a8痩 )KSm}/V^i#h[0@,MӌR΃)q7M& -D4NgB$8M~WZ@Q>Li$RӴcS&*MJeGٺ[MH 9F n5sߟ5RJh}pP1C,%Bm]TrKmU{@p%q)lU=[a?UӸRV(ɧ6vvKWSpԓwLT/(8U]/#*BXT_!sN\HR1B y)L3R撱2Cb2"!\]],0,RڨqP=жqC\0n,|yuYb|8r뻗U3M|*_|~◧,އ WWk%Ͻ2x;{xч| /׋hUYss}uw1Rq~aw;\9v֌Zɮvϯ|ܿ|r7_#>3Oyއ\o~OYښW5t'iCt+#ơQxrqqzʁI ʪ|9qW>ߞپzv{Ag;4*L1#l:&NO_|UpwO.Eշ_g}᩺k72~~䟼d ?&᫟ءt]eI׷SyquOxq?<7zݧxC{߰o) J>ǣ7Jne-qW._~EO߭y\:^|ߞ 8@EO{lҐޜO/z͙}_%+)O[>eY0bȅ1ɸ!>^36&'" x2B_T)W,S@ XAb 2%9LPX 221&rLp8@`>֚qQu"_~燁1lWu[X%0_]U-9 < p ?O$3 _l|^j`)x^nV5lUwRIH}Eߗxٙc?~[NX\ c1J~.]ugĪ*C଒y;] Ͽ\^<ûٶf2D ƪ>̶j>E!vc:3=,w6?x7Ow/-i S̎ҬE0f4zs?ʮ&A!ӭB ċMa$hjs.^WovS?ƋK{aL2Myw7Kjc·|qr{q<|r'y\xiι(mC?sI2xnnە`7F?Lݾ}sk/^^~qX-SI7.޽Pt:M,R2B9!Eゥ4N,I2&4mM>KJsNX"q^)sɍeFǐ˛f+22pba QsJ6\zs8Ues*އs׵yd@1)DIETJ)RV"8ǀ !DCZ0ƦYG70iYMIyUۄyqJX%hn9_TM)pݚ 4O&S\oLpmCSI>Hc:m ɯ;Ǵê@KC惼=-c\e*1{YD,\6F&da\}ܴ% T)pIxº50 ~V S?_V\%fd\^Y:TlU]ӢXԦI~)J]\伿0!<nj)$Ii 8NR$TJ`?f]ߟ7+ۮ3HZ* )rΛ,+>SX/frVkt*E%stL, t]|47ӓ2f}fs/!ح|qu6<śG,Y(ڈɹ6fۿxNXךZkm-%{絭W1}l8uS})_> ?MFʶmcoZ\H%}1,9.r)FŇ|6/ZR8NfZwwwá[OOOuaqU")1)J䔒R: 109c9!-1()hg7Uu]$"dyqKg쳣, IDATI )!Q[W{*!V1iu<9>D608t.$I蝶 cb$)!,(sJi#WR)&*,sATuu>A#\p(֘iV\1-8{6f^sADJ 5/3@Ĕ뺊g,e)9xUbg*邜x&zUJ91sJc)E~ZT`"sZ_V)Ryr9GSc\Q1NbJ~Y禮B!y%qk s@,)#I=`1QIPjErdu&b*d!!\Bl)saL5U2eI 8JʘibUN)LP'8㙨lǔ1 km@L)I4]ǣ g J)2r+)J𐃮gB6,))(USB9q2n{M[f6x6%Q14U;骑, ]]ޕPP mE˲\^> dʻb9QHR[?R+cfpu}gJ\ ib9綳\5u)P|e;UKId `ZSa6eK(8MKDk6%{AW"`p0H)4xi(sV5˹~]KôYW99QJiʑFnrs|]NN2vᩯk(@ޭ]L~Cs,,s<> .pƘU6q4OU]s1dRʕ5eAī{{zz}q=y?竫au]]7~◗_}Z)wY[%0ƔyDZ-Yi1[b BH6)E*K5E_b !1du !tanf L}^9qYpƚ{aMԶp뺞2:HRS)EpDPRJRY`cJ `E.LtZSGJs[<q¥DR1FHJ\bi)Fɸ2X3FIυQ@dS\VݟmӍE"dYmiԏix(\ w~նqXLD+/͒BpnKa~vZ1im[!aMaZIO u]~.jzzwc[uơ 4^ ЏCmkd 0?GA3?=tM~ɧ~]}QrQ_G?[G[r7?or Pݪ%)ą%T؝U9 ~nN{jWE}kpϞfVp} 15.5QiM{^[}ؗ۲t+n><ث[ߨ맋ٟhm //i,tBڔwnRܷ_Gz84% ~ZǥĻ;xwҤ˭Q{rUW[ü^s6+㷓֚h1DZLt =o~a,2?qTZ>?ظ|>@_ye|F.|4F.k gD܊-էb3YCO՚3#RY03A@A*?m-@To'ο{藵`X pdXa!@2h+F).Kȗ+;,OR1HejJ^0U}ZO]?`%B() r6/ؕ.^iWֆ3W{i^<^ו\[-V((Q<T0jXػ]ɚ-Az۽79MvUb91dc 1U76'Nwo-)2 H)7$2_֒]h;m u2{$ qֹekQpnYm1p\6ή>q0)xH)+-IE+B\mmRP4а0ڦr38!]n?^#."WGbKʹ*ᄏ_j*bOmKΡgam/j['\1!2Rݶ>"0I,1MX`8%URb.ywpj[k~<fG CD. NuUPi޼[*yE)98hl/|s}yYGv|/mن)<#B8;1R97;UU90J^ ǧ>?ݾ3E:h\Ii<5f̠ $_M]MTEʙ`cuZB]Ulz&J)>fX7˙BhE\hj2 3p!\)%Z9G8#PJIARrŒ( eqهʲAkURX)!Q ƙavkۧ\e8aHRΔ$s> A ]0*BPԵY \Yq !eDXIJ Hc!DrZeHHIq.p9FD( !e݅"`ey <(]U1M9>?v~V<9r>[k?&BHHL1bTEH}Utc4fuS?>vc-fH)ZŘ 661Kvĭ (A31 vdTjÌѺiy|: )TR`|S>r*f-*B"2SYr.?ÂD~Ŋrɛ%d=AU|? N_e!< 5P9z֞C t):$j9h(->xx6?#YDsߣi_8.ʣ0گCs3Z?<$[ )3AաH?ݓ1).SM>4U0kQ¼:ih^< ^Kږ~Q3qtTgbIz7tE{|?ӊ>U N5&eLӊ`J)$0;J a1aќ?1 $͊3Lu7]ȏ)$L !I҄Q$>Ex/!3F8CN)`2+p)b &9a΄ychr[cXPQi"rdvPDzZԅÌķeUrZP1dHWSc2Dy>S$ETvWۮi=y;cFUGy0xHyYQ39\w66FF.SE+S(rڶm޿a.+t9At!JJjk=p|H1VeB9!pYm !Դ?LPZYR\*CΙ"LMJ32RJDLCZG՘"9jq)1CQ0#1cN)B(e9%`EAaٮ4<ό~9cZ`VŶvYBB̉ƸDL&)!"B@o6ŽɺPn+5΁J(!ڢCU)9 Η~!8X8  Jk6 s"EW,* v6 &GPȖ~6;l B#MR!b~,ˊXhmWVP'wKd[E:][9/@ჿM1FfKh$ %S\뮰L?75ѷ-+R﮸Yf˗)trPkN]{~$JiJJDPI4Sהr(|uKB c2(wki1Eপ QXg⌲%3F*R\X Bh]ㅉuu "%\l*S"pUq*(N-sy"A[wf;̋Waʉ$rc]κT˪ +%:I_Ҵl=B<_F!wBȌv̽mvVEFvKS$欥 !-f??\j%(˲l.8T:N.@Ji)"PK 285>%(7d$'@Z ]FB)$ڮK[WfY>,(UC1˲uYE(޴]imE:l 1FH\5UM䦬J.ۢuN*Z]6JM%U'EIy#"d_wҥ1%"$U($sr1 H52Fe4:=4]ux?O=}Lwo>?>\}x޾i<폿z|{/x?ǷGp2|y/Ϗ=+w]4e{g^o!RihNv}+ $ٲPT ch"Lj1eayuFć*@”3Tc4O4r;2]eFoMΩa8 m:DDBe^\BHb0y}xtU'|uu">/Lww¤ca_4u1v|9~eu4S IDAT=DBI?!e]R2FsRRf^*535e{4c'q36o*Nm,&9#cyn4+EFfdV.]pEOh" >0pu\0`tˢ`1b>oFxŋ/^xŋ/^d<.\1y?S?- >PIIK+v?/>%sJCV_A?5';o̺`i{F2ɶ-?'ّW-ܩ9WlZ& Jff>_~Γ{rQ!LYR#2~M(I68r-硾*?&ن? ÔJL=FdI,Jx&Ä㧉Uv'|mʒ|g(}F9~U}s”OD p9byc鯤Om-rPKI"ͫ Eg^P$DHa H΀ ,A@@?U24xrq8z S>CYD@E&P!@H DO9C Rt3D"DV328O;2;2ptz6:sp>1O}ZH$٦ӕJc ],>D%%5nX`?ouI_W^NKLѭ]S+- 0 q[)uufiؼu19eN71gt姵g|Ha%<3-ÌKJ!Cg|8<R0!UN!cS04Ӓ^EyWauR.S\ i۽ͶhpR]!dJ PuϾ4S7Wͥ~]uϒ5xieVlR1'YY/!g]&d" aa!2%B>fe5hSeR֙퓇 (. ]DiIIfe41zX%@@LHp^\-K~^aSeuudBCHx^$"CR,&"Bs|&ƌ>.j|}g渺DB@]Pye w_%l8Vizܴe^Cz>Rˌ-)J9\YWM~/!TٲZXM'Ʌ4/H.4K r|T% N Sf')s1xAؼj|-䌫z\yɊCᬛM(@˲) 1Յ1Z1e!fXMD>ۢϓj-|TA3. ķj,O+Ę5SKR>$ [k%U]Ů$LҔ;OU]cvtv!DLSdX븊@RJ!¬:!Ɯ{)eL)K93c,$(BL0 9hjiyN $Yu]X()"lmYOv0g|:uEbʜec ÇոzC sPrڮN4 ؾlލϻnxBPGk5ңwW;8<<<ܼ1fp!LhI]HQ*N9)Jh#PJT:7s6m nVhb6Te9(aGf:mScs}c"njk)n[g/޾)y]߈)Sdf88\]ph۵<WLӔ'n$SvS$,)roL?uǘZJTߜ?2Ibj VZ uB3GG)5$$@ $8@JEQda\ceQE1S41&]63"YlpS76bReyHA0&1LJ7re9-mRUX)cqEhLJI'@>h?{X#xŋ/^xŋ/eYVUKv&_h_ wӽ8$w+u8duSDn\nܫk^:x$"cb3*A=4oH{v(Ԧ!ϹPR=-ܯ }WP;ޯo'¡ !LՇG_k?UQQvUӷGbwG,kg?qVm :ߟءc_4W>P*w^_™P{BծW3M)x:e{ L{_?E_i烦+ #j0LX 9#|^.5wVW!RrÄ"g!#$Ȁ s@)7mm2s5Q:IJ4 Hrք*lS99I cFH DDB~92H?Vd9GIJrL0K;|#Q <,2ŧ)D׊B%'$,TeHbb@y&.Dy|7nS܀}Mub;#oicnxj,F$~- : U-&Dc ,)Od<39 9b])e]:M-F0".7rΕ1Q"@ UɅmK0UJMJ(rɥR ϤGlZf&Ha 5!}LæH)k1~uV ;sr4({gIJOOVםB cĔO~w)CjiuThPsoEx|UvKM"$- :XE9px ENRn6zyͭi^eAo>yw?[Wmk*Xfz|>3Zͦ{{n񋻦i]t3ƔA`Q)ŘK)1KR@P2N(gPD1aHx!GhVKr#Rz 3E,cޒlgQv9ycʩ.4 d-<B2! XsN932 ,!J1B۩u%!b]|]WLpJ9ɸ,eaBd̵/9Z1ƈ)NsۚHO7s&)Dy,JfZáR`-`g$UZHƘY(&%[L *Qdй\jԄ$L-1 g[#-t!Dg.Ni¹9 4IBo,`0qݗLm[/vFE.(d*N|x2EUMˌ9VQkPƴ*c Q{5c[A-'ș(JxH. b̔W%6oU4I)c91O^j[49e'C$"J @iPX{}(*ƥE)S:BkLy!F@Qʪ^f 1l9)EKr"$ne۔@̤T2 gwcW-xOS6:pz8㛛ۻ>­ 4 g%`OSt|- 0E1V%uKh[,$.Sމ3ej#pɧwuۜ!! I C%k#?eu)XօkBFpcBK7ZЅBB3k5Ƨ@'sJD.Ƣ(miYݶ82ZpZ;r !ZQ +<RTIL\pu}_Ui8 !B.c 9+~,ڕs gR "b]h̘W{vY5Մ{*\]$F&9r6KKDآU)sZXڪI!$8,(}?ˈaS5 31$׫_gkRi<5MRi^d1zF-y%Zpkoc諮{ <_^~%NnxlX7TAJ}.X0}?}fCb>ma wMwL_ ,jzjwi{/uP`<6*IMLּ9l~ ~i.nyOC e퇅2wOWo`95Z1kMU av[!ES5T)).bbBT0k[Ȳ>O_uOZiQl̓p[9jU]LxSCdfJ]|ѿՎp1jșaRJ?]YIkUZ0<_^_ۍ'2$8~f7]f+8b/$J Y]&mt~?izTeUTK,QcZ_f#?~AJ|G?ƘR3۟C>Uߎ2pOŋ/~QʤdRs1گQ!1[Gs_/[Gv.^3Ā_<ꮘ1ad[`]g @@핹IF|~_|oz%0֜_?u]NdƎϜCC̎k% $RdnKUMʎu7flIZݦ(xEgofzN)v^ggkچwVm )f*icfx~tŮuJvO,R1|9=%/o2~zEMH T"1my0Sð ?{Wj3\`+6nSOl<ײ(<` eDperB3.2YfQqϙqcrLwzߌ \?tmMc-#/x5 șA$F 13J $QZ HVSd.ęD YrsG#BE40mRġx~R/ yJUu՚bqu#5cJ56 2O).n߽{((ڧ#nx)J[y\|;O>9T\y\WپB*޾shϋ,՜OMU$go|}O ¬SdeRBi/cbS |pn0knSˤL\H[vS sQ !pt])*2mBi1MlCIJe#YR q.wIlr4MBX.J Vbl!hv9+1eYN$rHR3TW%O4Ɯ9a>睒EǧJtUP- ϢNCF!FzӞǶrF)hm改)ĜsBT w]w|zBg@Wd$ɇ0`j'U71fBC6KM̩iگ~>pP@7o/nLuWo߿GWu<_:U~ 0<\!/}Q)ek6Efq(&YD~uf7vfc+qJ/xCtd>zxo_~u~N#'.\m-_}fn'ph)pۻ4|BDSj:PYzjTo@t/?;oބ51xt>77;1 P[kKA7O ^\g Zݲf/EX{^€m)W %u"67_ѫy%.5zNq%iMMChro(d Sr7W/|fm{cuʘTcmzz2.SIԊaE`?WqWGLw"@QUfwW  r1%"b$o*{'Ntwq1Uar>"n E4}_s~Rc0FE%o$|3[1>RLI n۷,?y7mӎ/?~ϏaLhޚ7畴O?T˻2= IDATY>YLO|J(4-VC {w1}oV K+Tjk? ڦ[nn٥a}OugF}xU~em.nEo%lɃTӏ0v8(J- (U3_][]|Hb/z߼6lx7n/IWFjw_ j}qZoU.WG'N s~BvnhAu(\Vq\0+ Wbo=ZDe+̜\*l+}L)3QJIADJ(@ ^Dx.j"k8eRJWZw @`II"fn ,Bs֢P y#W+Y,O&]¨k)GSSaU= Ü^̰B˸ZۙRe \SBHYRjtdMBFVs Wٍ|.iTẄM)a vsCf I2YB絪EeͲVLt14jf_%Mjoý/T(El ^"Ri8HbE T$eLt:kejK2,ԠR 3K%bJ k !4FswVRu"pq8׵Rsh!ͼ TR! XD*G|pJv l:+FW7BWy=Eey0JtGe06~l(q,u(s< g(%k+je[g7/C4CBƜP)Ժ'WUNQkR"j)4SV1unfW ,Urb(%iS }ף7J6_|9iѺBf",y3ϑO$(4!!6N-Fd 1ܶ䉢muu˫MJJ¶:Rjv]/ޜ>8sfRӶ;8OUS> JȜBT8}le)3i,subr>e;`";g*Um:x))1՛M GJTn8O*TqS\yv2_R)R&#]ŹX(c_مޘ2337|A#bR-58t"~@(LC0Zk%wra|hJ1ú0\~ _NR>V[%oi\)S˯f7*_L.mKЊ#/&nC℥V4mB@@r->>{]!!gƘ bGϮ4l[޴Fk݉`Kڤ\WU| ;`I |^UدNy{}1Ubw|㌖wgϿWCmmmmQA`$g8+tW\2UJ$4o.w2蚫2"sG-"n_;7S"۪\V yIkLSy[1d\< yԵ&RI=D*T'H`X,@/tdMpşXAnt?T͈gaF#3 %T6BI2**7T҂bмMSR(sD2dёX'@h%Zm1w&s:+7VBrEuTI̓#Gy1kˍ7PF(zc@A7"2%\RI%!*E\Nkp)90 .fU@$2˂C#41zY :-bO5w^Fvm$r9g2ae/:YU(yJjɇ౤s)TbcWEɉ 檯2b|o65VTr*0 0b 컊X7+8#BZ)cP&Y AͮFHi㜀1ٳfu]sSol c]wT7ѭIR%G灉ywU};~ֵoopVo^֪20ʘ72PlCXV 9kcXA z%S)]BP|u}=3"PJisLfB9֭1Ҵ̹-"6fgm- B.Tik}ѣ R#HK))|FFU֭@4V 1ǘ*[Pʚi,f")UN9SBQe^j>:(QjnrTP˲d[e[I[v+,B1`*D@u]\弒R \VEIʂ KڈBBL &"@JA@U!bBLD@* }h,䌻&&1U]N[] rO!B2C I(B mxI]JYK -KE!-z7fHӊǧ{n\IY:1%9 c,:\)$K{A7Ɖ3Ս:G }cs&Slۧu1z^sqL.EL<^>1[\iT7̴12$gڊV-1֢F26&植hPzT9f5PJ(% Ce1>FeL!s*lx 9<3#NZ@IOAx< 2)S\jS5E Dlm3.n QLon7ý_rȢjFj('|)QDz>?>uy(i'9ZWKyAe4'?WDL,;STX 9}}ӪjgO:-<,q[K_/vbH%BULRIs]jx3wOGfsM#~4][䈔K׶n6KM>|իrD\‚Uo|Jq=aˁFM;{hd?ߎ&\ZA ˜3yY#~ z8G6Ɂ۫Xו@]˰nX.B)vY־[.S;o2χ}%l.^ yY/ )d5c,1Xr<1e)6N]hp*o_iY/wxǯn"BjZb̗a^Vw+CZj)dt!\ BJ;Pr6FJDg.In!TsnYaҕݿ}xn03'Ξ ~wSF&-1@g Чs6b PZ:\)jdKص#TZC@R0Cu[KϾWk[߽5wR7?/&`V:\$\yɋGGOA<|x 0efRt% ".I,,sRRHR*"LLx\J@J9 jJL%J)jW䜬BRfsZ [p.PUƭVSUVh9K>{VTt%c`!vY8[bD,LEMJQ) (BLuR7Tr&c\TȬJ*BfM(5 7hT.z0UȕYR(Us""b\@`!Z[R!&9e>rf@&HѥRUURcBKk7vkb`fTZJR a;MymoBf*EJV8Rcwr[9$["X78=iNc4^H4D(Io[MB)9Nh (FK"T4]ZqSY:]mxj?_Z(ڶ !DbR4jj2aTZ+/UCA Jq]w.Ӑ?|RJ?z+²:tS|q!" pQ*UFj)䢚!JJr>q]IJ]Y0?j||Jb~N1B/1b9 j{RT::%ova۶qnmz\Dr)1%D$)%Ka@Hjqߣ1#hܬJWf\xss3Nc~=TԵi7>G"0Row]cئ.Ji!2H9,P06Dd!c )Km@i;X6vjnIe$y7ON@Ej,K `F,!jfont>j-kcɗeٟblN`׍Vl^mUOe%.Hmy2,.=<<_W aMܩz^9#(Īy qu+QVд(i~Y[{㺠$Z! RJ؅ŐZú&R|4NcR&Y:V&p.JRZJNSfm) Xcf]ctqp+F9뾯vWEk3NJZ.(b*U]X׷asI.bZJd+nZڞgg.(ա\tnڅpZʪ۷i%  Ry*XiR2PyRJ (Y@] ż5Z1E޵ƭ+j|xڦPBĦR?Q?"z:D )u%26M,_'x=>#1 };w1j by w.g){?@1UƚwrL ۏ޿!LOOn4QW+?Mj#i*۫I]:z ${8GdJRZx]HK#jݯKrE vt ]UY9尫K642򙮷⫻)4b.9U-9">V{viX}ϑվ+q ۭ0j_Vk _~tւ>۷I DžL~x'mg&eR]압1#^ >UZpa`!@t~ [rv _Ͼw2 PmU ZШm ۆl-jWjbkYS|ޙg߳tUg7wJD]֪$T5ȆPP`%T>G涓(bV`I8a(Va]nsvsdȹp5d!)=)|)YKE}īrZ~1icVkc(KU=!,`BǶ䤌~3K6]%`J32,:Nq) Ð֬(neXJ'Eں㲼y|\}߿M%dJcBu IDAT_QnK%$Fk^Jg„&2Op5bZҖImF0Rf#y^}ܴ<.ϪǑ: Pl,Ηzu#z3 2PveZP&^ Tvq4N7uR\LޯP7mݵR.틟|g|;cTcu=ݦj (n˪],%R 5)E--T9q۴% (" H!uvFmi$A)\7Tat7U.~b,V$j.)c%DPj+/Ujk+(4KL27ΔT@L>J(bjJ̠RLB b)bʹq82#©mW֖33 %+] V P(\'@mMJE+$@R"Z}(@1Q\hcbRɔ)fkl̑ bXKL121-B " X JSfFB@@ d.Y*cJ"@&bF\PXA-$ H4M:B23`әB}B#BZ**P i8rpZ"7ޡ4BHI,Pe&J9ܦaӥp,%J)J q-BkJ7*zSf`ʙl6.!Ej:uRB `Q dh]B~YۮmaB4BR1 S)(E@. )Z["͗u ,˸=44٪K9T4nRCWOOU/뢴 ^s( J)FbB >-2TQGc)٪k 1+kP8(3TJks*_RPӺPo/OTJ[R"B¼*m\}Hdb]BeĻ<}H!Oüu(d,.'r]ۇy}q?D _%(15tNnTLdk1Yx__Jqo j3́JecsFȨ|$-axys{Uݶ7oRr&ae8_oOۊPܝom@f)\ 1!S& J"f [q%<>2| xxueEH! B9ed~v5NF߾}w]GioHTuBVapw[ 6$*hmui}sTRúj?V QxB>TOӋNUwAPwc MG'.Ҷiliv Ʌm[HtoLK۵oNY0EŌR,rv *u AF ig@ðFfq^~EDt>m= njNwrnK[ {yz~r&oOY2k2z߬B7ti|^_Mo7fvy,V*9s*7m73~4#/8߹~,[m0ך21eV{47u7.duRWT>̬o,)HcF(oP,Ėe0)3a4+ %SAOa Gkbol^/~3~Sf`"_@` W.+h >k Em띅d_7M-+ఫg==c8yJnTY%Y*m,\Czud?YæC߀<ӛik/_Ol.Gga?}.?o~󛛺7{?>\r> Ckչ!΋W0tҴ-DJ?!¨j"Rꪊ1VZyi.4u,3CX jSa:LݦZlejj=3{ޛڒey^k޺z"232I*A@ 1(h$ n $$#{n{v##2*=f-2;JrLUi V"F}ux7f0m2GTkdNP@IJ"k&B y1Td %ֹJ0JJ (*E;K1BpUKAu>TJki\K }rN RIJBĐ)PJZ2l)RRf\X*DA9Fh9 ! O~A 1 |MDLD̈\+0#S#($33\QHL\e5*S̟(!O1G׵fseWX#"ϗ%xZ5.s .aD\J>LSؔmi2֘j{H+9Ɲmk}JmZi\bL!EkFDjK!xZ7u]W1L)a}Yj;{5Umx<]~ Tr%$6ߌgsM% nno۶Em@T*?|LJNp5O6z.Sz}|moNî]CpI% PIɎa]]ikN(eTnؘRQ)8ΈbYW!T.PoNˊP2W;̤ZRʔ),]k*2JTRɔ`7ȇ)ucUُ캚64xԮQ琮f1U.VZ"kfמNaSJOՋ8ﶛRvt8S6,ee@B"㨔ڄR "I쬥6_vKLQV]:e{@s֮Duw/63To ŔiZۃ1];xߚGsm}vlUp<Ϋ״!SR~܏Zk6Z}+ϓG|P*ŇpVߠ׿9 u:em_$8fKb,n7:uKk#ƃ\rn6x{ýZ:|FnCɛky${ݭ>Nlf Q@Y|}^z_Hӗ6~tDa| ^LԕqmS{:oN,ūnNmW_jA<痳Bv3Ẑ( ?z|1S~W U3ɯIl+oû>Cs j^) ARsY碤MI늒Y"#Պ0|KGH%/'߷O[r_/_bw +!L DԈ H҉؈S{S[~ ό|Y#v o tZJ)LPk LE*RkwBRX* B@!M-q tdJ|X8gv|$uSSTѳץ32bL_-fĤ7:m˸$*}&#"J !%LlPM}Zk)|ɑ/SzV90M8x{ KҺଆ*df֊:tPTrF62FCTC.yrnQs,rrUגsZJݶL3ۍk6{k 4>zPusȕrR 5̕6Sy Xм;绗ŇTp^?wy"짟{\S̘z*PMШ0+6 r6 Rͥ³W쌽WmeYԶ\dukBL!B Rk6(D64uM^JڶmH! 8 jqyJ AXg\ΨUqɕ$1')e)rASJ&c] Y[J%fkL.RZT P-\ @(94R*]e@`-)圵29gD11 b!2֖Z* JbFfB2 )·YK%6f1N~1_o `O L5K D+)5ezDn)T)F";3ĐVB# 2r]vFQr&\RbJ(ŷ**!j1>Z!Z(BʹC.S60ϱki%iRLm '\K)5ňJֹjvWJ !hrBbU[rUJ!12ƜsΕR:t&@J2uJ!䜎>}k k6MΙL 6XJV(k,I}64_r s:*PsیxC!'H^/emna Y( J*PwUhugǻW׏sEy0֪ZiӘ31( m;U$ **#q6>NF79u){g Z)dȀ\ݸt6|ܡ}ͮoDP~͛/PRW}!z'CRhʉRZR@=\WyMݼ{m[f _^}%o3G\ L?,,.Voo!Rw}Çpn/yч}}f ~;oiݎ߁Z!b+.w!?fpf??ϫS<*]WI{Vy"J`9e^Ml>K[ [RWoqz+T e[9Jkq:|DZЇ[l@}*\䍯n) 7(g_]?Lcs+_wк -U>5q yHy/v9*!/ Բ뽾rZQ@AaL ɄIH4fp(Wk0O9]҅1f8w\~])yU`>mCj}[,zy`ǗD%r։Bs7P aI RF)Ĩ ~A@$~_ER?O.B"))W Z8& (V‚X.ŎŞx%C*2_ ss1UB@b/DB)% #εxRZ!sdi\bP ThehNbkk/}Uf,^B;&umz*U^铫~k!l.B@鲄3n4j1%!PD<ŧ̰ƂJwMɵ =۞w]RnкSm;(zkT"'vlj\J0Wi,jC%%źU)شWr]JY9X)57o0b?jtj{Om;O s*w[8>E|RL!%LxQZzmx}>Dm4Ѵs6}ګnN~myuWD!N>5|s{۶W%uۻskL2B)r]׭˲srD|4)R R˺R%)%,fq>G!HH&R+)JV 5j,{L"璈wM7v]>Z}FTr!1 T*.jcL6z]aS-$%xd rq۹HX9fc=!+; )%3#b4)njEHD!s)(rEP1碍)+J)lmcTZ]՜QjD5,BZRC/*w(OžOWOeObW]&]~Γ3?-i(g5 O5TER'W IDATZr:cZ\R)1%Ff6+5+9(|L\SB`*1`~R*&N1>9BJoO* Eh+r΅HJrvw9q)Dd))BP!\5mNQBTHK̵rΥi fbC7•P Tϩmw4I:5Y61k%T2x#0 <3H]e9W"6F4FSURƊsp@Js,I|^)=ϯ:Tۼnn:i!m ByQ) B%f 1 -[*p;*_ONeģϺF]Kmםê+vLZӸv͵kR.=J%Aq^u~]7ͺ)gd,.:/ qrRS&ݻuJHTMӄ |FPspA r ð1r8eYC,h-Uۜ & s0yq N*TTNQms>/ڈRsZPj*#B2]h`bEkşkygxI,esb4Ο=\&^~.e$$1K:%ղRWgڌ… oRM$v\QsST)Sn3^N=/ɸ&tC8 _|շĴ#SqRvC}v`mp!?>>7.JE|w "kUcw !qA"H5v~9ܿAo4rݻs[a_ _K^ΧD#UpgxW6i %luB=~3YH7[1𗏦d4MY俹IS+z^O=X[oYM^tհEZľ?#M0M~=^4/S ?Td_I"5}X4䵩;(>?Ogzt~I}|Ad4[)Y͑{#m8o$d!`Kx]/O鰑_ߗoBNptm߬:{AlYz 9rrnb>U`xoՕȡmҖΩq50qrF6+Z(JNBQ+P 2"! ""&BSyޯR?`;ʅ`fPʓ4p)Tk=ĂDL!A(-B 03TP",ErPJ4 )HH H"iRE2#䩵R-Rڦc˥ YiMI.IA[NY $OVqMҕR+\/Q!~|֗pZ^ӡќ՜jR#O ԕ|J]6;B+ϴ56C~u<\o2X2NǟAԗi<1%׶mѧma49zoP 'Dk-ً/ϚtE7Γ s<9~W~+SBp%D~uXsAħ*%"b d)d-(Q`J ھ?cVt@!SR)ĈR=9ҷ B :̥ߕ)R۶LbBZsJ1!y覥ZLsG:9Ó1 %T*\STRp)l7[!fkEtOqگk:WKl!Y ~RҺZEmEºT/h^MH`(e]RR#I?oeiH#-бuNۯΗ%U3,ӥP1^]=˩@˔0[mB4͙rbًTlxΥ47M20Qě}(ӄ@r5qMup%Woen9s]\iUILsa\@`w(,pT`LfD-k)|\HRYCh.m۝2pNKa!ȈFZj)Z{\2ALhbʠ JDLTAJSZZCziݰEqv;=L9K!PSr cXD%&Ӻse#q+QQiQ2ZX bF/KkZʫfYkTR*bMqm II<.0/7Z1Tܞ;i\8wҥ m-A/ŋ>,*YsQ}~YֶmjeADZgJT#]vMιi\Yjymܜg~ 03nojΫiJFLc}9u62ƇE[wRg&D)2C %S~|-^M70Ɯ/20ӺfIsF 9吼/_~;oJRMKz1C''-4ⳟ^` !c'~NV2.?z"TQoVc?>> f.v*8/?zDT6N71GOKW? oU8(Ov~~z5o>WחjIrt[^o_ޯWM]Sû#()UYMgnn—_ST¤ un/[HHQ?O>6suʴ}E3a%9)&s[_h %æij{wv#9}_aWMcW7>~)Eb 钴N-wg˲@yMƧ* ־;^":PWɤ6ݼx6ӵ,K|ޙ$mRFwFԔZUC_M)%7uO2^r\YUH>rkt,@ ]Xd^w/VUA%ӯ94w;|B>J!&fI^aU$n1[$'Ȉji%VZK!( +%@TV-IV%x*R)1t͵p)B8)y TdD-$@Jұ8»H_Kv_| J) 3 Qr)R* ZR})v"05>5J*k|TI* RQ=L;'Crm"54> ,rsw] QIKL9RVnZj)JRE!hDl. lV֔RaDn.%;÷ܗHisJjcպ,*9 %r"k\bؖ4qmrDEYt33S. %kcK)BH 2ⷮ'|^_b?ҿ/wfxr~~ &%F&zӶOXR\+ 0kՍ+10?qժRҲ ) )J%"(E8 DTDT#JTӌ}/9?U'AM96O9ef2!13UB5W@)+cX}R0:R1K_KjkNF$Ʀio]J2Ӓs 9FX\gqRw/jJiI+Nch.s2(w]n,g/syqߟ4m /?]=LaMK%ZS.(;b[BL~ӈ)=mi q8za\6ҽ[N9,y\T"Q =(8}\7r-Zgx٭6mna*meIfrptj>l]ݴ愒%i!1)G)dRָ\R:k !cNczޭKq-VNJJIcZÕ|c011¾N~"3딒ڙiRHYjFRz[b@bBT_aBϹvg//w}/8>޿|x\۝/iB()Z5a1?7ǩk3sXC[⤍"r|{wV5{}yxaZ_[&h8JL/^폏g8'LviG#ڊ(U]ke-25BR\D5q;Z(92%* -uU|ݺv !r|l6΄?_FAI?w;߶~}}?L\J=OQ/O_ oU8_Ivd$`ɢoo AmVzǛvR*wWMڷff+>Ƅ4t鷇%*ռ~|?9gjsЋ㩼b%el~ꂟ$&dt,"3Vu;r8#AKnS4yOg٫4@JKMӞ&_boqNoQHU [z=3|a㭳,JnK\RV׏^t Ô1Ka~ 9-9n4^ +E_ſ? Ŷr̦TX6ngTP MQtĮ2V4Ri F %[ȀDP$DD$o;Cw`{?zÿf~sO ߦ |5d`Zі)sX\E*"Xk%q4ֲ2yD%S%Wa.k Td,I\֧JT -1/RL.TȹF֙b3j7崃p&XR'snS!.R 7MH{o#IvGU5}L,w ^X r Oo~ 9Օqa^"|ȬzzfBx{OM]evΫ++ =:B2i__rRXAUjSiyV h+I90m/)Sm"RFn4sr\ 梾<ƹ\ d2I-+&!} .nQIF﷛} a!vYhӶ(\X2o>Vn7N1?=*pBU mw?!~J=` g|<Ʒ__poyys&TK<v=gB*?s!QDlyGk5.,n;=/4Nk?Ou>4 6 B"SZeۆXBX*_l4霓0'(mAFNb<cs̾e^BlRk1v= hWMf4] 4D!B)eg; 9C~<~Ue!pش͜x;Q{׏Vksﴵ)V9E8nDdT%cU=MK)}wҏSSU٪r)Fg~81v[9uR7 N󴄤DvC7!,pv=S%.\ IDATĺu4^ܼwVǰ\;cfbWK/2ڻ̚"^h@!i`ƥ4s̩XM]SXCV<9E%N/)wg\)7L?'";?u<t~xx?>|43_鬵%ZbO_\^e|vXa ֨d8t{(z"PzϯJHWlDO^F苯A:;Gg44;x8Ns|Z[yt s+f(J?ef^M*5L9dN9ʝ1ScY[,K$ #\\|J稏xU//8p)mTA T)h_Q6r3/¥I9}q< ?7b,^oTe2`_8Zk: 21s!Q3ͦ9pAaѧ\/9I+Ą{|&/->t` RmUfL SOyb x[f%A!蘊QP<|*BD E) $\_D`T@%?4yU/?oӷǷGj'="H+^_5s`0nU29l V JAEln [M^HQHZi$F! ʝZa)+i!‚sf4c(ILMϬ9 --XVw.l2e%s9-X 2]: Kh[~fD&1ν=waIE)4U@ RSgq z㹔V\&4Y)RfdR\i I9öuZy0-K2C$%ꪟb׶ۍeg䵻{wJ/d1Vf0{k¹hSSWaa# uIQf՜ZqZe?OY\m\ocCOG ?}h;oK(Fa1čRZi/o] }:siDjtۦKiTLP^< ̲۹e*sR6+H@Ιs.U8T.DZ*gC,JFϱmͶ{󾮛%W咜SΨ’RZ#FDT:g8yP aҤo㼴IH)p\U1u6KINN*9y_r"e©?W(X"(s 9BSY%EyѤQJVZYҶdM)Kac2M4Ns23(R+̥TM\YDH#U0jYGZK V3.>~|w{fe3|w|K?T#!XIX>N{"(Dz\R6Y^0 *%̏`& PU5"Nd%@ysZ\Pj:.K9#VDRJ,?g]էa8diyuYؿzw;מy] PJóRb?Ϟ?{x;Wjۺ4nDZ42&cIXW܏\j994ͣjaA)eںji^P]9gTp8PE+ ep>A,uk=#|={0 iKsZ/߸]U~sȹ|KLoO'ݦ2:_'Пb/_Hٴ˗_S_9Mr.B똮[|7)[^4wzrps?{=X}_mjkHtu1BhaPtƭ_}b8`Lԧ/r?dDlǡL>?-Q{V.kՋ/gl^l-"ǬZE.EdoR6/_A _Ys]P;1|,DPZ/ RBR DXaVIV*D{?*m8~]U ’0@̹X9İ{B, "B@$d""%II81Rb)̅RrB`R8/ TXbNi_'|QL8OgQ ħV\Ωz?9ʻc>͜ 3F[9|J.UZ"K$ѕy|35z7m,aIeה̑)Xo篝5bwdnd2쭛2HƇmEj̔UdćD+8 J2SHYU $R:.t1zxm41g"L1m,˲c*~ZC KE .6z`XdLɺ6ݎYu9%$ڽIuMeJ-]xr;t}ե/'/8ǯ_~9>Tzݽǰ0 ڞ~³ϏW[on>T۷)RPU6Qբ$TPPغ: jH)%8r1Mב~w] kɕ1FA%J,PF[34NS-dStp RĻ )唜s)%mL QkMB( C$,M 㠔nn-c1uHMB)e1&HE@V="Ņ0[kW,[kmJ Ja$\ImQ)eC52f!RJfQJeD860=@|7%,sV-9|F>nR dkR3#0Ga}My%G굯! 0τ!j, i!Z)V1rDHGB\T IHSJJ"BJ1.EiS2 Ja.X_ F+f֚Iks:^~}ssc1 4M|aV3Ͷ{x&A%V 3*U.32vgS߷mcSLS0Mu:"ئ0ƦE\W>ƨ\9/"hmuͶ)֯1WZ#&qqq>MNo<-ծnޓ^J|;c㸴US@X+czn{: a9u,˺􃈦iDZi"Sb%78ϳ0ur+Iefcl.%4&`5^ <#̥HҶ,Zk"5s]uU%RZYUUvjm/ 9hmaC׵9c16Ms!m^k\YUU)Ek}>93,˲c%_hSФeٶӲ\l٠**\qM?x?řkXI؛Na//^^o/~6_;w~XM;mksoo+O?绘44;}ܞs'|ϝĿy# /k_D6V^NWW2Nͩ_> }_)%^K*gkݲ۫VJqJ^VPSQRھܜ ŞuL/~8Jy{/͍=U)`̋8ц0;\vuYuyqġmjZBb))NŒY'_wO^塴:7TnsORy 'n'z}rhCx;= "YF˾"N8R8gؐT,(,HVi{E*DB&}.EDnC}K/t"Ts)"fSy.Q!tHQ!҈ @" 5ZkCDh+W>S42HwcʦBKsȡH*f`"vV:NŹF>)_~T@:✐*5+bc?Щ(?C~Xqf.0;3&=0ݜYCS =QeKcT(Rr4`B&ΩQZRuxͮv 19gbJ:I)2ͱ?" iVys֦18.w4r:Ɣb޷<͒QY"u]NGTjG0#.DH"Zfai68ϡWK<9klA.șـZ[0J)M$ƘR֕#x<\\\ è1Ά$IMӢ^}h MubJK^BK,1,Wak2MJ)]8Z+*?|>WU뀈Km"&e Zi۶%i%*eJaEz^&c 3m[J19q`QZðn#D)Nܗ:m>4inr|uyyFL{0M0KP%}E$9_!kr<610j%P]v&9Eж@ƺ Pa(%w] 6N\qjOu]|xáy^p491. iL>2OmȺ*V-󲴾ZEWpklaiConwEdVfg g}<]첵 nOm up)kjbJx?mþoKӔ۟d_<؁ -4S׍7wX-k̡A~v O_ek*o䴩tX8-=L~/:uU-|f=C~9|q41=0'&zPa4#Gg:kʹ1Hv]/F[ۗծqܷ\/^+nAr*Vs/?[;/ox0s j%ts/Bj.1ƧXr4>Fݸ?\s7/1WuʂAh`U*85>&W>g8Ks)_ +ECD &BI 2YWM#)# ~'OV{#DUqC4 ,(`ш5 R̫*^I0@Kb}VÒ\/Πszx%;g*]k˭*Z_sYqJNS. )BQ*Rs@ջI=d{c.4~8)5n 6ӛ0m: 9kN2#1!aʵ JSVT#G1 x%\NbĐBcJݞJ9(%Xb1TB(%Z7 42I;K eNZ[MKs6O}EY1o6}}{mtNn};.8#fZzr^Ns΄ի1O.'o[su?U%@f])2n_/4/6ch7zDU.yRseO,arVJ/TYRR`eqW>tskTUDUJ,9fm<c\XJ*J Ǥ:o,J)ƻ"BmtBLm]q)(#qfnbJK4jZjF+ku64O%e|XZ10csDYSJ0YKfB$R֘%V5*%o’zG J!ZvGXWy~~ý|K;v]mO+~[c[ȷ6ãB*^G깾*,|>BbRkjvQb A9Gn`Dհ^c "DJ)S)R 9!))b(L @D \RRJ H+0~,G- `&RX "_O]UU1#å7R8t:]\\0Z<=C%.2)a^T4wM&rL)e )1X8vyۮ? IDATk:aip:e$)4RuViJ[4<9,PJZms?lnJp!cz//Oal IFNy2P+EiYm瓵.XUtҚ9{_eYEU]׀8/n]YdUeBb*U]sHtYb%p.˸Vu)snYqkP).nap'$"}:=%n6{FW/3l7[D9Ngɍ~c1x"S^[iN7<xx ?O'Q17Bs{{TbCԟ2WeTy'g^ڭL@]{)ŻZkkoǓW3=՟^9ޟ" 椞.X521gUM_X5*?j'b0~.=݆-modtFI; /AԧW_^69ꚯGnNm?T*Jk=My}{k~GJ(JWeX~_8 z/^Z[=>'[Vj\(lg(yYOgy?|9WU$UbҤ+R)Ê">^NEX)ED*s!M,Y 0~_;n^Osc=ػ) Xф@`%hޣׄNER"JkGdB*T$ FUkrUuC[{UrցSUAW$B"n(U VIK^jMZ#\i /!{U7-p|ʥNm]mŪE['{ k5{62mp(lׂHN\ig\uK^宦ּm+S0ahj* 6?)3SrS۶1J]6A+P^T Sle1mǩJy~d`;mRȃvG>]^V}(6.Kt::O7p-lywp^a,bn'e TiA<7'h~x 9ZL1;@D!ӼȜT0 ƜNV (bRLfb&EDj7sbTJtN 3Kؗ7ƙ"b![%Z=Qs+S\Y5T*K5I8H.Xx+M\"eF _; 7*}/)n&_b;C(M3MsvU zWӴjDJ)#j]ͲRh6+$QJ :l-:+M)Z8H)bSֹU%JR )RZ  |@"{@_AAЊ|Gw]Y_3^qwU+))ݤ?Aa?cr:u;oPN#8i;g]JE[:`"<Ӝv&Rj֣HUEĀS\3yHN08niɨz ɢ*/޿OEl(%+EެG,fGDfUwUWL @< A3op@fWeU.bfUTLCMM]U}zZqr RYY9f ]I9i|N6N+΋|jэW"ww79q~Y7l"mqT╳&\tCe?4¦"\sgG&Az.zla)ʏI$נ+'41!x.sx&ֽx3ro7α/~+k l>{zrl?RmC%+RVHox4/5OMZg_TTy ʲM,ۗ_l՘r}j_<_]lW|ɺ~N7N?˯T[X+z{ek f%9'=IOzғ'=IOzғ[k:[1Aީ)<_g:5;psӛZI 3q=׶zu%+y}8 R h|'J}JgbcZ/k=iy>XDICtXyuW31_֛a{hןǂ~T/ $|YrLZzFUTR^nl4]ܯ_U&g'x"ipIl/Z"o(:B?}?+;rbk Tzc 3CKR;;S`}Է ~Y;7(Wޖ .`@@돁 H>|"߱xmAh6_@e," H &#BƲ. \> EԟwRѮ1\C\]AiM4vye9Sk-,r}}=NSqeykmۜN<=?t)7֕sa4,aV".ffemZ5xl6)efi97g]e1mW+km.˻4ͺhsHC78j2ƨwiuɵo 1m&W&Rm*5Uk0[ms>ۭR|uE5,HJyߜ'Ӭ0l7jM)Ӭt<]DHRvK5!1b;]7},-UʶSh3ŘN}E1ٳg8n[k8ιR. ^C̤h^n?2V9簮}ױ@iM)R cL)]1kxB͝wgW95n]xطzwzYc,"8k&DD9%cjKc4qUt~:ϳnq[C̨- ×/ϕvx^:pzR ?]mcǔb4v;mMaߋ f^\j ݶ\/&Xs6jKʥ2ʬY 0RT"Ham2}pp Rz]N: sءKymPִw] !tf+M#ڶ1t:m۔RJZ iri}Zn8w4 o% W圕RBJ˥ʢJ)wj@]D9gZ5ǎկ#)}~ѫ>_s}@*DX'Y#+wPy&|} uL56xp/wK~g=Ƕm/=_sM暕Rv&.ݫWobTJ1hTs)sTysHtJӰٽ0Z!Tl[y 籵9}<"'0Fk-D"jmRS*VхKjۉu*{f8қ_U)pi$| Fm,K)bZD!ES4Ӻ"~ڎ@qeY.L__pu'v)Xy$TZ+{<ιÃ9nۅ% Ðs>χo}V 6!p<E%} ~fqXbWW;8D|ғ'=IOzғ'=It9DNq85Ƈ<ͻϫ{U-Ӻ7ay p,{m7pƕZɵ%ڥfﺫ5JzSMiloW_΢uیǰl?6i?3sF\uWWw_۬+ ~9U-|)-N/,EW_v!v^FGX[TTT4ˡ3SۚRNy\^zdWl|F>F_eø_MnΙL(>-31iϷ7ۯ{VJ~[#f|Fa8zJ0gQ/8սݜJۓ %ko[^JRHJ BWf@[k I)B!f@$ ; ]H%?}_P*W xiPE@@[P/PI \,oCPmGJMR*4@`΅D,\"BT m'FWEF5`VJJh'3@XEQ5s$J)J9\ (cNǒB 20Zs$BEJIHG$ Tz<%aiΨ(* PRjov1E.SxPKUа:O, S. 7zCB[;.uCy]WWJQʬk ƺ}ɑ1UcqY`!߷ R9@kqZr!F+wjS"[,SKK)"k<6M9D2R 3VZQc2mW9_v]c\׵ﻔZEڶ <7MC4pnNi7C?(\㏧ms)F6D_&& DKP&)퉗T iJݮ H!f@ovSӶ!;OӤ*>/7. ڔ*ƚuYJZy:5K!Z2Z%:4Fsn 9Tf]!Wz/sI]],泯m*8o޴ťhkSy>˲ 5Kͥhk)DmD$Ӽx6˲Va@1\oXdG5!1׮RJָeѥnճg7Jt:~ٯ={R69YcuZ;<2MME:ϫ鴼xq'KC|YOs'=IOzr?YB>ePs$gN vfomѩl|7<^*imTv{RgQ\ܶ:DF!R2ŗAup*,!C)kV KpC{NpH]zKp0W׿+[ϳ;= xk<)R&!W0[tLjӴE9V65se\LN+MBq!EeD ِ}߽Yo_KishM#.B_Gⴎ&dɢH?mgնA㘻 "TMCq3ǭc]ZQ`뼀T" DR3ȆlURMb 1WfV  PmoMۮjAWDhX",1ol{.vq.2 ]q 7 3V p 1KHڒZk,"n\fiYPPYb"$>8Pi=/kɩi|v]/ٔ~c3dN)9keq|RڷݛV.Lr8yʥ췛qC#7iR_vC{V[iC]M5??toPRg/PDE*謉Qx] -Y6B;Y. %UR )GD31TPݱd6ٷ4M:g1.zۙ o5 ܦH;ӗ_Dt(ذCB3ͬR@m(ɖh,ua٠VV5*ڋP&Sg Y"$a@TP2PDIe!Koh狧-9yE!.^zJ3jR+#]Zo2c-dRQ+ V‚PETѵh 1+T1ʕKYZ쮂Tſ}.*l"[S 1e*d\$d\Rb.΅39X+*Tk "FѹR( HU59g ݝVQ>Vzc&Z%њk@1bn%MNLж&ƺʈZyɅqBK.B*<4f^?56]*=|NeY*1h 1Rx>/Daߴ1sxR jxTJRVkL&Do>E9sffTQD)mmU)!k5$j)D@Ĕ0+b1:zp@8eM $bt)[ªVuakT!Vaʙ6]ӴiK-˺N駟۶ !umnDPRDi<<LJ5pus\緇1Xe]EmXטTiZK7q4L4 }皰v4v岞iO?l>z%4'= ?ǪC TN%X#9fVgE)vkB%*r߉"tJ5$J=NoSj ^yล85B7ƀ=f46՝g_/W¤zO2ygVkehFVf 9v-b6(,NiTsW*%M{+e΃2e۔moR!эY%۴ҒVs*ƒO45Ԙ4>\dFbry:p[Yv[UE+dMjDS,qkRjEܑ0P`YYXE1YX $-Zr1J!V(Y Π6|4sG~!~zK>߾Kt P @% h @BJ]r4 !aADL"E!h*1HN5k=$#YRPFa紑(jH/ffBI b )Ee Qq@.%c.X+"V:@DTs!W*bjq 4bKupfI*k%16$ @#*Tk@)RHRQJ!GB Xh Q@qd CUaF"ʹĮij\ͫT@Rt*5iwv Y2"X⭉a1ΏS(T(v֤2r޴f0<4Ѥ$65N ^fvZS4%\v$CZ jnSHJ"jaUJk}0("$:H&j5֔Rk)E54YmRQi,N"$D@d!+aC:rGZSm upj9SZzA+u=kl!8c5mڮlS߶XruFe^.AD)Ef\j"iR2WZYHfDk2DRJ!!ʷ޻}mw|DE#]|s C[X۫| |/ZjყXnყ߹ۗ^>w]҇W_kMUX[ɋsژi="!)=W_520 JRJ׵ )7/^{~Ã5[BJgx⦅uݔXO_>7]PcSJJQ)%9~Ag?4ʵ]Sm&h k "an^fcu ΛeG"%"y@.)u`O>d^f@wi.YB0֦?Ƙwn>ћPJĭӼ9mmL5ųfMӼ~jr.i5hޙyK5?鬵:iiA9Eu]Ykݴ,ZX={X[ꔑ8h.êƠ~;GBN8|䫉31쳾s1=t)EY8^j*8k+#yueQ8,su|PARA%U~ cU1eXb8zP5AfE\yئh))v{iO\!n= b9#4d&.XtOF"$D9bS|_~~=_< ] ϗ@$-E@X8\" *hR822/)%)ErL(dY\!%)99GYł* )N\2pJs %~ HcLC(KH@Kc̄9bJXQd<:% uMI X!S#uƬb +(,0-YCc$B\0Jh,9 3RkhXJ K|rr.7]*)䒼s(bDeSJMhcM1"QaPA"3KD sJ68qy֏/9BC Q2,:&Yb I9 ^%FUN21s@e~hȺ2CdҚsɉKfTdfm" rb@J+K~jIjRNMXh96FD@Jۮ~,PYWyZ7R*)>vM\N3[m(hc(,M v9ۦ(\R1pQH²sZk. Z\+Xyo]Z;M&e6RJZ+iB9/>Ok8Z|!{> [gKwgm+-|0E/P_CJTs+5їwzë۞}T9U0E" eBˁœ2@ΜrTy^NDU~^G>Ҷ0um~oDV2$ {a%?~Ǽռ]+ $ʽmp6(u5vېTKk&{?MO qck߉MJ^&ěRYh] "eh*UN7KJN!hK)Z"R4jL( C0y>7 A :Qj ,  2 Be@K )8UD18aR,C4@J9D F)٣fR1d49iTTHf@" hLH9L9 LDC"YPD啷Up{)Y2dAH@ZB : MHs"B Sp) RF) "ɡ"JIKZY)Kky \W4kE[Nje1BncQA*' AA,\1& ^+B2ց6s`[kcpJт,Y abq73Α99K*E;UJbpQ1HP!)"̬BJZ뼦4Z[)$ZB&.ڹ%& sJ+ATR̅N~å Jq՝oe6ZYkR#ʛ9\UUJB6Eݬq.Hio5 k420Ɍ8/ KDDIEc.xr<.DdN bc4)gNpNWR m}Zp l#9ku}s~pEQOkUvy.»k_ IוK)b])ek}UU'0=3mN˜snp8(S{;WWW'4n\fRmKDlK)}?r<[뚺fX{K4cZo{sI>}}sSUj:47y>}r'7_8M)sn4)cmw.RGh&bqΎǣDI6u3/o$$yD44vj5ϳCkmEdSJ[ !,4 ?]\2#5m{}ueip<"cm;T~c<3iaV.Ҷ퉗뺔aZ]^^m; ænShٸ!f3MFZ1EW5,P1}c 76]םWpj?c]7J!4M#,)FTݮ*ov@n9OQ׭i1e^VMٜ=|;ge?zQiҙ+al9%,w?~zmۺ%TU%wv5|LYBX* ÷y!,޽;OggǏڃiSfkGζU]}Gw6W+@X4 usaC~2TӶ1Vj 4ώ2s[wK)zYtJi{~v<op v\wںjZR*HXU4U] mV8}u|zRuܹ;K,Y6msJeɡ8-nq[sl?H?g~} r9#")-'& $, ZwZ}`i(awS rhF)~ozfdp)*צQ,=2V+%]2E=V{M?9GB̐/%Ӻb40J9=ԛ!V0w|L3 j]C5Y4 vyzcpyP+PC.}uJ0z?B:qyߨaJLRJg~<םɈ,GH.-g*F)BdS“B6,,)imBO"<~Q3@!ɝUUo1@. P=ŴikZOp VVhQYO)b,$"Ljbs\ Ȫ2VF$UP2G.OSBx,8ǔYXbB$fp)!ͅQ)CL1r̅0jM,L9BU]bg2 ((E (\J)ZRt8GByHbH4BQF\eJDʄ JjR΀TJkg+J7s\XwaA10OsP0\JAE9?HNES$d b)\")T2 *1P)99ǜSʻ9S A3+g bR$wW.)SVU"  alRNH BiP r#{kcΨTa.s2KBP",yV U]/=B!.˲ME[#BLhB,8ϓ12 S4 )ťnJ2ϳJkTS)Z re JK]1S rN@ɠ}۶˲ĔHjEO/+E4JwY,r*sADiz=,:%.y0W> |ns}X/my_s{>#z_>-V9CHDb9oڶi!kmNӉb=~ZHDDqmyDE)eY[C 9']]9v2,!<;B>}k[ȬVJƏt2= qPD0h"d}[us5s!44%ckbwyf1)RhLZ@ħ*VSژ.υq{N*/~{?1ڶYHb~mhZ+w9[ܶw\^]Iyya18ow8hBK]BRjv~s֙s\q^h=E9UaΗ,"xf{uvq"NOh&](9B:ny祪iV|?ƺj>]IR׫<U.̧_T4d14÷mV]Z 6ڜӲƘ\7ʹhiAd^h TȲX)wyu_~VOo_Xnq[w_տ'ow(*g>}W~O)RK r_OOݡ|N#ũ֊D"Ii\Mb(UK 떶J9Ebda)۳(8W#72i+˒?va l # BۺnrM˹yɱߺw+1_wv,)X_ /7}/Te)M~te1xeBbH&, U'q<0ǪT?oQ)eRu{TP]^/6jy\Φ̈ VDd/JqV]Mwڜ`^Eʚj }?mKFFw܄ڛ[%svfQ!΍/Raѹ#+E2jĢAn31,iE d."'"zr8 _M(?P J59faa=-dM^rpuN)置 ˉ5" ,QX@P'(ْFabBB@`IA:SB'+Aa!\8VV%"6*[f%2S`3q m\h3WFU1iZƜR(S*V묛b kjnWJPA\x$EXE8h [KFԏABrfcMJ)!K]ׅd$X)V"LHFR F$QU PLYe ZND9#&TsU^YBt%m *MBFkJb9̋1Ga"bCQUa$@$*1119ZBP hcbUvݓkԐHn͒`K),bUJ-1X)4`EnT0Z!⽧̄YU&uⲴ^8)DicTS_D`.""Mp9wb|b*DIDRmmRz:_?h4yw:s9%?}^1TB4ߐO' oj hr%؇)?LWX;KM(%&m~i䜹pTC?6m׏9w}{NQD~^xq~q{AiYB(r.OYdD !ufժ_]])pɩo./tkn?LZ9BU1 R!?'ƘUIK*8]sJw}i8sqv6)Nf^f¼,nBh}<qqqmBX4(P)5K4A)Bo궀.oy0HdoVTNqلcȥ.gɉwo|gJ*)պK%p׵O.TUMj^nnZ}qwJ%71H4Mj!/f.aR]WfjMHUqWՓ'OZkPJ)R0umjcv77Uӭxhv[箮6덵x<"Rz)IxQbٞo~0sO׾ q}i"0Α\[G-nq IVy/?'}Rg?_s7?O-O?_dԷ<{=t?['yl%)%,!pVcb6Hyo1.H\"K U2/D#.m[ǹ"&<2TSK@ciw s?Rښ?c{<0j]ǂ5=9 \zݶ7(g ljֻ8\ ߭s+"@%[S#$UOL|a8vzR}l@TJ(D1C92"*F()@ ) %3FX!Fh% 8gBN) !B!ZŠT{YLh*13r*ؚr9\F[N;$BE\*KYtʩJd]1>vU)I59M h垞(A$#0(rDP`2ei%ϡ Ө@a^H'5C(1ƂӊP\ZuaFcɜ&EdE gKa R0"(%T$pVZNd>28}y ) Z4YD b3* \DkQ@C2< M7Q!:蜖|6F3[4qyB4MHSJ !ZkSQRh5sɥ@cp.6S8f}n8 Rm ""muG%SIK(,PzN1i""Ygr!_y"SW2-MӤyYIC8x_J:gEH/) * W+.kw_ͻyuWOGT~xFxΤѾo7/A\#h*_ey[R#$}K׽;|r~hC.̢)qmS~@+8*Bhv{ۦI[4?뮋1eyz.LӴݬCaT.~1&;}/"MQkLtu1!! Ues<; wdQ͍Wm02{븄U_] iiZh.RRjj1"v2m4@Hi:s/!%ec}E9JkcL:ߏsX K:sShcT5c(jW./6[u*Y_v]srg؏jRվJonDu IDAT~@TdTOUsJ1.va֗(,"\*P18Ե3ÓG`m͑~s_S7?}[V>xß_>k}?C~Ǜ}ooq[ŷO7N գ:{pT?_6~',_?4x;g?C?cǾ}+aO~}wƍV2{{+>{G$YbQZB ,ƀh6 $YY'V$"hV1(m5oV%w\HmS+Ϊ>' sfXشAאcOE?Pà$.1&C1UW н/1B*%ATD㢔B!8PYi&Ml!pPIAd@ٔ&jclcɇ$"ސʓbRs!"ҎETB%`ʈH% " Q)m!R(AaDaP "RY%krw%ɾJR jP"qڦGc4r&"!b*D@#@aQ@)9b5"rȱH*YrAR¤4Marf0眵69fAe u\bַb%jX  ( YRYI %/q)SY[pyj "b} FI)4քOu@S,"PbN)ubd [f(B1&R'Ek"r)20M1"COCCD~B{j @\  BL%ËSM"%SC|F>#sMi/͑y%~oy\MO~!k/',>.r_G?7\//OzK_sو 嫇"""mׅpӵ!8 99gqpNYkbZ6mrpsR%-˲Zbxrb|=HJD`Z]]^)ιiv7GOڶݶۏnV[sjf^fD!%ƻŝ9PUmi Yksm>,2 S]׈콅SmzjN ;^o;A@g4/Jsn| !nQZCkcBJom-{puH#""R9Ǧizz9Em^70 ͼ,C*3!41'駵뺾>;; !R0M.'CSv46U)%BofoTs4YEK)ޗwW q9KZc޻7 CJyiAou8Z{]_w,ܮ9s:B8umyzkRb8::@(s :u}rj| ]f1]… Mӌᾳ4L&ˣ`M1޻~wt۶ZELJd:" rlJ9W,kM-GvqUbg,몪0'mlΙFw3;@jj||#gdW/y޿3HZ>w#/\濽Y?o =#o9%í;7A_[g'ۿxs?_}ͽQw~/|:tWpWpW뷼Bxxϯ~(~W!U!o/ol9\}oc?˿y7;>Af?8}#F=|cc|^W[op瀻xo|^]+/ ˮ"὿qY <'2CF,9(eRΖbȜH Ӷ-"!!ܶ}Qc%BN FNG Wr: bj,S 3~hyR\8GhK }HmH)^1U$*;қ{][-JA7Ut6l4CN5|:ozĎ}$L M-:0TnC$GʐvLʚs>!JJ2b+yW] PC5!Vxͮ=Z k?8Ŵ2㛶2Q H{rF<$w]*Rs*sm[ ֺ>AE]Q4 0DDHbQX!jΒ"Q!|"@ '@  .nb#?ٶeP $(TQؐaFmRD@nSN;c0 D$8Ek(H( "D#% HB X#*3@DDVD @@D8g!!gQʉdBFd")N!gcLbΒA8I)ijJC @Z{AbEP93 Vy! t5sJIqV萩O *G2.3b&D9)$1B:;"B}$Bc0gfP:p(J+E)P0@De+Y ǔ@)Z (s&@"f1!<eu Cqh3e朳16"iH).,ÐsZkWfO9#14ƔI!)9rZY1|ιRj|r@A@ :ƈ.orJh f1"C$R"ƘZ2OdԴvUX[0X:s.K}Dcd0Qzy ӖSJ<:SsV&57 fY.[fsGj[?i8o9}br[n| s[7Sߖu-?b-~ܺ~!ebm[*9l6[V#֫tRf21چ6hDFe_[oƘ1ؕrZyC;ZB[4=74NYr LJ1w6C.m;cL|gj9r]m[V$ !9}=iwCN`*ryWo۔QihYfcY9@DeaX,%V\OɤIYpa\q4"ݶM)ђ97u0MZWe٬P+SVm۪F)j6XoͦH`J9ܶm-\ "pEY8ߵE閫lcLB|\)zo6յeQHlq:#9ެDZ"u]]9!u1z>_ 4Tcn+ʂʲ9iEN)uqVi3FuLryY6u,@ 3ZkfӃ=!Lv`bJD轟Nbgw٬7+\nZ71ZZΜ93j}r…3g1sUD}yooH:>>fD4WDѮi^~ i:isu}UU[[03y9&S)O'MU.\X,7pVe  (B+˽m9toT֖EYfu,9RLm >Ƙmi_x~ó^!WA(= w_g>Yx\m9WZ=g}W9}N?r_i_'M/z4Ae[1!P/wDq<Y=n;u銲? xu44dSXVЋq;gFH}|Lևq9(qkԹM059;ךMqRcPq6/ęE{r$rJRYo}GJ9`Z[i9y rlZGj7?AJwE"j@Nhs=d0*$Fįd b-@A E5lܡ~ ^B.ᲆ]/D~>@l>H?$RFf@,YO (ktRbtbY+ eC$ z(lt``fϐD`"$CJFNZ!h $)O^[;02 )eȲPFbƣU `XmZ+[qNԬ$qR3 mJrf@R0P(JaʠN-ӳqf`ZRuY *NQ)|Hu eRAGG勫 idVX 0]iaP[G06jQF"i<"L3"Heəs4saaG!' )3sJim \" "PHF@0))rTJrDJ![QL)f_D̒qG.?  )k)fZ.P3mێ"c?V޶kv1@@RJ# /BBBM33+E1Q@sFpIbgfアpŝd2}Lv 88ڀŋArB$,# @HĮHk$c:(_o//xyM(_p3p'ŸjC_ w])'z>sDg4inVU9Cc M=9w5^z&œ0 B3XrnVfolJ )EZoAy20zZkix,I6!Df6 ;>)}DVq. 2x6 qƞ-b0W}]岪K0Ħ|v_#Mf!&jUͬ>|gwu{ѿ絿׾ob/3o$|1p ɽ?,AwN/{A8_|ѷ=NK~l}s"/N/-!w|7=Z^\'?#O~峿Δ>g{mؔ m`~kvO!HM&\Qu7J) 9ݐsٶҪϠ fP !l),Dfާ a,Jz] Xjc6$E13)CAwk ٴZ1Q EArT\6AQ:IwU2.Fsf lSfD1˂^<ҵ5HnCSu|}Q+lTyj`K;NJ4Q*u,]IqGZ! ܢ8?S3Uv1q]^2K]aH[cVM;S&nNy%"UaЮ&d[$>I-0 9 RJD6 c@&RI!fs9 '"ޗB7s7!!oė f;u6 i,2" K5* 1jt$QM CfMMJk )™1jA@, #D3bT#SED!')'@̌@s"`)CXRY8ufyQ)za),X< j>)ZG@XgMc)1CYr~@eLks)&GQ[L IDATQy|CHH" KVT2p6Zke cZO. mC qcLJ ΜV V !R1jdVRJ s.ffI%!Ab "EBBR\9c 2*0H( 0:@@ Ȃ(@ZkL@pH AamL"R9Q^"@ĜFYcdc +R(0~ZkG! SimڶQ8tΙ1B0ƊO|Z "/\FƜr֨RJƘtNW ز,|)%(EQ=1|HE'QBB(Řhx!}9|qr' x0ySB‹7ko(MIfo2ҘR*')Wxl]s]t~ӿy> ϥjnJq4veY8uڝ<BeQ>xA UU}ߏsz6>\O&BYok9^gY]'E`֖Fq?^t,zJ>\kqkXkGJ{2uju}6a1֘v;z?4McEʚb흽vwwc''D)cY],˲[km dxWEJ뺪mbq\UU%pUnJdQJu]wԩG)%vۆyf"J)m !8[)ahlS]9>U%:QH.4{G#RcYٜ<2U]wm<^PyIӤ.DD3gΝ;g5ƎWf\=Xcb7߿bZV+mfZEe1jca=48 än*e A[ZJGGӧϤB{g~,:Xgf:O&Mx9NOO` !uk9:>pec׆HJ8Mc۶c9iRJ)4Ѧ(O1.ttt}P-7j4ܦF٫B뺮ϦN0nF(jD2!FA7]m7MSV)&"/& '7_S}ۏ}o?S?7«w_6~}_8؄ ˟ѯz_|ȅ9VL}[>f|ޣ6<$OǿO1~N/~L`]cG_-w~ ;~NQ'~[-z1Cҿ=ެ'|^gó$]w6O{0w43 c.zڗ?٫.˞'?ɗ+a}G<Fc?S_ݟ?"#}w䯖fo}k_zޗ{~;_'q?So|q<|=+F1,@ ?c,ʺs42dF=NYAD޳0kMfP>Y0l{,3${jZX CS1BV;$;BR9!BW(U!hg!{1}G(Kk_zsKA.ă(N]gn ן"LY.OPC)?4 Fa0{*; JҊ55t}5Efpbf)uR:B,Van,kJ]jzt=SOgɷԲ֚Zbf]Wjyn*oX+a`l8c(:gՀFn 9eE"-{%Fur%Jʋ_ѝHP@h:^;w6dlmRbTD8jtVĉ u%^+ cD8DFYD",,QBA!fAIY@ 9 P9P7MqH B,T,`4 h4^)S Fq0( UJHJYk`fVJǔ)B$ң4ÌD4 E$0DA$5>E>R*<u̬1jHq]cr N,Gfπ4j]a֣H.z_ΞX_f#̈D̂JDRJrNN͜1n/\I#\ZvF;k)Ƨ| -- m=\PZ.lSUUه.VMLcu]o6z]^{b&.Bhա++}zkLim^VbX7T޴=RsgϜ C (ιcYUmߡn;7D^9{Un]U3$3e )RE]Qu"ƨAThˑ0.C1*HϜ95 G犾ZB ( wu5_m[k혆Kljr Az> yu|1u,J+2<!rN9oRպN* ~~,'eYd@Rf"v|r^EQ]Vg!@Q+MD)jr D4ưͧ1xA;pXM7 *SX^JM3]o6JkSΑim ۶4vm!Sf>[m7NRNZǛ-!خV rߵ:@@9ƪt9ymhXM?"c X:alBS+ڮ뺦[ g_T(BmCLtz H]l1Ҷ<s b1VsJ9m ۽av4i&d? I$]8<4e1s̶1 8incJ[!bof!jmvbâ훜nx׻;w<~ꫮ&tcXПu9_x߽чEO#l/W>3ȅof+{C^7>3ag>_>/z5tu2\7^|/~ſ{]+++b7}=ŏ~G?vVĩk~i7<KAT1gm۶9Eyc0_,;יӳSOn#_wxtԧ= Ox⽛a_}grw8{ԣX~u?|ɍozsxޗ?ń3"Ģ(@IHYc9gCYI`JY@<1PՄLQ135(SXMNf KVcHeISV5ܰb#}R$ T0FQ0myBN@ B%0%ABROzH[ZS,Yr"G:&!]o(F&V&cb>ąsV]Fs!W9P2..lUXɐS1֨HR0er\T9NR ESjSLKܴq#vfuj4 zvK j1)! @"FW f٤( Y4͋ƤG'm )!4qFϜ:}ttR>}̅"ry^ "RU3!q£0 Y.٬:fnfúSJUմm+y[7M L]7_{G޴g3{u]:/m$1>XgaRŶia^7MenfEQHJ "Ƙ}x/ֳ٬m18ƨ"YѫxuU{ǣvQV]?m֛IU?<6EBιqQ!s)|ݮRaz⇠Ƭכ(Ɛl2Cº.+L3c8e)p;:-+HvWp̩>ãz2AEh 6!'SC׵hMSz/ |Y><<=uz^m-*uwp"MTeN1̱K&WmSU966ưlI9hwwgE=\حbzxs>ا.]8GOYZa5m6c\J ,7)B5}GD!e"WkuQm x8glf b~Oo|)=#a7K7'Wy3~C?{Iy p/۾J*=~fݯ7ޅ?ݤ+go}?;Sr|sWpa7oo%@/}4{Nn.h,3z3_W}_{6 STwkSt:|p>˞__놡}cn?c>:S1CtgMco{ ~QߗEFoz&""X֦P}'Ub LYY2sv%fR!.230hD$r$)b]KF p-]&Y&826+Qzd+ hl[m.A@LRּVN;Gsipm6M,,Yi!lє ‚ *C-g3'! |Ҝ 2#ɹ.LlŌ>| Esq: yzfc.{HjXͬje'jcT )'M 3akSerDJ%nJk5EWAium+4N%rsufff MCf`䌊Td԰`r2ȞA(+E2'E adOks MXnqN]Hq@@J@Q :y T @ ra53'N #D%0!(DDf҄4:l+(,XD4,@!d$O(%BPJZV$E+ *cœiB A ABhFRJ1PbDScnƙ.%+lsC$aA3H1bO8lb-itE!-,m?pEi$ (Eɐ(Aa80RQ)BL%g\Y/S1DZA#H 1cf?$0, X"D$912s@BDʾWʈ`b ̉rf:gTJb"Z眽Z)R4f9#٥c)^ 1,abUUGL0(h'ɗ/ǾR1Ga[D>@ 6wfG쨷i|W~'^'@omYRJò,Gs]!I>@f4t:Wy)qVJϮ!u,ýUY۶d21*TY;Ymְ^@4GUUci6>}߃"rMgR)N&S? 9g 8 Ji׭S|mƒR\i:/˜@~m`2/bkFǞޗes.%^.#o:X.ιg̓[5tt1 !$ ` lST0cTȈH H1!1`08zw3쩻ZϽAO[ٻw{58TK"IcЏm묩vrrz y#b9zXϦ iڶe8ySJRW4M8rhm"3ЏMӨj1n>P.?|ppueƍ8GUUM`9bcѪ~tMc {$fNO|ayv qS>xfv&= C]~4DrcUfuRN96[8[4W'uwH1Զ8\kR4]r|rrr,44vZ$lJD 4|>Kl6̼|>c]w:MStΟ[UUc7otDB9` ޹}GTi2;LYr̈GqfY!%wnjy"`YlSL$!JLcF&<l6)џ<<_=;SȒ׳S86,?|_&X~ |? ?vW/?AW^/?}G}ԳOoJ| ?|wЫ+^; ^<%"TDLbDM@Ld 3PQȱs x Qنj)8A4E5߶Un.|T_Ǵ7y}݄nbNJs ;L4ii:;G1kT7ȴɘe4e#UNKތ9qҌ DQ);nLgh\0Qc)sVj1Vi0hJ}<SR%"5J95FZ7`"^Ѧ k߸G]4 u5#WWUα$0cQqcB FLh=vp$M- ")O`DU!0-T vb HLWoS`]w׻Mߍ/b3ĆC@$FT+Q)"#"V\*"fH).EZIrFd3tH(5@|jff &dh NLA#etlTɘ+#j$ bBԘu僛rbf&NtUj7DՋeT;`4+وd2*zjzKF*j䐃4i$nWhBL E =rQ RR;EIa YLyؗ$TDJh ?`qʢ4Nt:Wl`{ELH@5BnGa"EL)8KZUuBZ*fn\޽F($"j{SqJƄ(fL!p?`5Slf!r9&"6(nE&Pl4b)e&B"m2fr9Hv6 WU3*%,a_B+`X.GHPܻ!}ꅀb%~O~e9|ݟX{-]GSϏ)OCO [ wv=<3p)u͈h1FU7 s%9Gw9?NS|R)3LTn+R-3+ !3c佝wuD899bZUbsZ8eb*9Mu=9q\,sn i|@&q2@UW1UQ"4HcΑFpZ7ȝ%Ǫ"6 Rsu;fDTn{sƺ Ŗ4$x_FmǘyaPM9&Ѧiã7O2g$v6n.f1FKIR,:vlj&u:vul6j@Sr}g`|a뺽yp8uƴ\VC7:l~7 }OW#׏cL%uÔB8_'jcYkF4 uyoOǟwj>4 o?ôɓ~ ~~>cwx쟿>Žx ƃ~w~>٭^<~ʏӾy*??.}ˏ/}FՅx/He_7^7!/z30 ~_7HVWI__8::O_Әo̼Oמ.""9@0F62;GHF@T XUj)Mqއ:xD4̈f^+$:e-51Mj,fuw~Va[:øUu!My k D͙#H X@Lg<S7LKYm+?.BUi`F5c6.ךEq=8zW sڰ>|XtU晇-nY-5|mn'5`Tyn-wht1Z9/Ԟ"4٦+`ؑcyU YQULTQ-.U)Fҙ^EM* j!~B?"*Zm]LW?KWZ(nɷzmm['YEKP`Ȧ@ FH4[̖@ȎJUe(^Ū*D"dj fIqY}mQBХ!AdțlHL;oЬ 5`fD!*>NI>FA4HbkQPY9OԁcԢҽU@sImFܐ"aspTd2@""4MfmUM!I@ԬW H B;s3"h*  [i.h7&9I:rDC6,Z EU.XE+~*48䜽w%"{VHhrG?%4!9G@~IU{ٗ@6=v c,VŔ  1٫z(zfcJ"S񵾭7N|.W4QΙف?xW|=2]2^zqd/]^>;+"_̧< dg!M=hcJfO)H -/ \mu {4cLmivGM]7U]xttl(TuJ{\VLTEBi*wl6+Ü *s0faSŢC0il\``9|QCbbc>TWDq,q fe9T)"ۜsyZv;KDUU. f/8X]GGG=)4E+GcLns׮vv;<88==#bvU*kP%bWU쁙Q$5fsDQӳm9+Mz7۝Arq|\$¶m=!i<[w;WG?gСtlξz>h}>jNH]0mi眭7VFp>2~sgt f~_G!oÿ?tMOo?yv&Orozs+O>m^܋{q/JqWWn>i}~_= Q|fx04M/ 񲗽lfwx;xxW_iZPsKf~hc{TZ. 5\%ln8j'SS˓w!#Ƭ*z)J 1"E1N5ȼ<':0;8HB.H@ D Pt?5v. _!()^Bvkft'wKFj`D jUL&;+D13ff `YP&f92XΚAY2j))9S)go@M j'HHX  y@9 # c*<܅w.ZF4.)#e=);GfslT, !U(cނwYd0k+ f8b~} ":VE,Kȼ eC4+tc `d*J6LHR2! Y˄DHĄ88۪@1 gL LȜy 3 jkrb9 3.p?_uvGm 9vݎ=Ä6McBp*j130 ˛fhZf)1eD`ffSIz16bIf@0`2;%;B# Ku]h 'b3-r,tpPvI#Lɞ*W:i1cf@@K5"E]C-H*zqY/-R >L֧<b2J O? lx٣Jy]iRn)CĪ̈^qPU)e`fèseu`nP5(Tu==ZONP(hm.7n4MS509xCiNONԮ sDb:Ÿ/rLqcufwpT8yS97nx1 Vw00nW0 r6D x7OQż ,t.Ii 1u;9>|vv>5ռ PfzT 6sc9EB x|su=fErS5D|^mC7Yʴ 몉q2{t.ÈD)1D)k:l*S\V]B]|>/p0&^oniN rV N)ʱ,EX,u=N)ekiRժ :iA$kȀ={ ֶ89O8TotM@*)N!hF7Yi156*lf3sތp\M1IUSv7JFqRR6$lzF|NGݶ{̬xls+WLBs0%b/V0B6@c imz<|`g>kg7uێ2mv7c*>rSw>rrNnvY(7Us~z~)'gހǺ LOiBX} ?}o|=gY?-捶o)m^~/_;|~ͫu;Jߋ{q/Ža n+5Sz_lKb7ug}k^7qXlkfgg?__t|߹)쳽2)bfƈI̵4Tm'|JL?=͌n i$t W9UeMts;G։gj]“^aat!-fUut0쮬0S~tƸCo<}y:+Z%_6npVQe帱DnP9>z;p:2j^m:8Iy"sPUq yO6ԩ4ژgc QSYHT <Az @`/SB~}Jbt9PĽT/{q:d.tup;z[.C@,QH 1U(% d& S$b9v R|V Zn` !li̩e{I:jSƲWY6@bAm Ť`¾x^dH佪M]5"{j&@Hsn%`HP5;QapUp2e"!dD0S&Ӡ-I2HlXuC$с)!ebP T<!m D 4gbUeb t_BsF]ԄȮ( }009@*{Rsdj& ;'YN9Wbw|!bR M+"nsTUCw,CA5" gQ*rZ$M9%YS@bY1hQ*  Hw1"* f=noZԺf*/"(2YIu r}b %:- jFJ_>y`+n@W~g, pkԺP2kl?ߺwz{ w[.ۿx7g' tWG~) -n6a}!4MSRN8mKit`x{rd]Ekvv\ٕr0v\t9bs^M9+S Ī礪Is]0 u]'+6`q@c"ԛPz9Xae7kf{Շ:5P"΢] yʕkgL1,)MιmwE !\zu]lv>%ћܶq ht^r|Qvz>ztjytӓmMDt{Ύ2d§6F;|+_?o/_^<S?x?=~O~'< ]?p/[_?-y|i}+>ʛ ^x/g' !31%ĬBDT.m_֔t<"Q.!8,D ᴋAq)[Vq+9K2aRWjqd IDATb'$51,ިQ z%Gr]UcLR㩩 ETE%y#W3pyr9:mascu\T!ikzhj8i^sbO<%:`>]eB*]C.\OC_-F?nA!z΋wU%(nei9 ql޳(ʠ1) V}3`"HXАBJ@"g X>y^GREx~4 ы%FZPmo IVxfwwÅ"ba_3DE\$#bQj[AAgɴaE(tud4C1#@T4cF>c4^ s8N9],^jX 2T!0@H4&$M*̘-7 wr=2U"4"!mo:qBqf0W e(@L>NqE'(=UR .(hc:qs3&% W50_9l"_Jv39f˺Xn+0=/u 6n&\׵15%b|ˆTn;ESpHqʙ\ce "!9iEnK.ym-mk^V>s.ީ]*\q/ŽFr.OI5Н#F7'wxu.eɭ]9su6=hzػ|^^.v|mSy_ifgj}_vMePu9qgY< C=k+50J1FnyDBpRI~6R\ j%9cgC6j$YL%iT&zb=:1CR5;ӳuնČf}/@J$0ݮgfޗ)%$SG}s[SM<5L0vm؏C]|ٹ^1ιY;5:Has$"1am?>Z?%WTsqP312s!isrV똙uvTSY{_4qʅSJ)]E9 ]\,T̼c l6Wqm۾ɱ`=9Tqv}U5if퉨mf&mӮ7f6s> ''jX"2M@9٬m֖e-szu@JԳrwtvsM__DJXb ” B}ճlvvvV5#8eGOYt,ƪRJHL70Nk__q{~7%C@ywi_]oU#Ž^ }~w~W?{/?zۯ|+WiV}Opνx11ox8%ݮ{~o|g}oZȏ<pU3]T,ˆDFlmF.9" `uV U;f-fAID4rQ!e ! ;)58qt @q@!"= äyZT.g,f*Rd$$|2vba(ffI)Iӆ蛬HRaHR<#{`0T7.鍼*Gi`hȀ绱mQ4o:L7ezƆMI0NuUeMET>f$9T"<;IDE*HNKhKRQn d+׊Ma\bDa4RnwiogEll@ ?o_I;7~.dX9b"&&hhV4dPD|X<  ל #e" F3P$9PD dhjFLn rL hq21,WU \=ddB6- :w# 0!xDYRJm~a·PYVmm#ӁtZ&)0SHd6 0`p(#ibP\$@ f"x#@q&ʊ (4f3H1u! 3:vR:dwQRKV !swep 3Uc wq{~؅*t9SH$s.";`JHw%3-qFosΒS"#"01Ỷ AU K#Teu;x6~k]^ܾpipʭio?r6"[ž]j@ȏ3pw=ӎ0X.4)iʭND`MSXUmͬ1y Y}䔝G"7͡ 1v!4Yڌnf9g{(l3Mqu8;;;<8!d`MیTfVD"┥wqb]r8;nfk6l4_,Ν]uRT5|:D8 jP0uUYUUu}*fy8~Iއ 1LRmnv۪)t4M][6GwfS|vv~}ۦ =rrj ,9W9!uSbfm׉dB8!!;9*h|L)*#I#X.:Ll6qbbx7MӨn;>>>==-]wX,w4f]uUc\9b>l~ȣRL̬!TqT􊺮K"|uȾ@%:0pJ#GW/LU9AXuIn׫jMS Ufa۶4xS΍yxv+fQUUumwլycSj}rNFf }gGy33L)3z\,cmۮOϏ sd{zqPdQa8nF6s U@ۮĜ4Nl."1o7/O`Y;:LbL]7!Zٝ9>"yӓU~m^\]_K| 4vu˿>i_ݿu{q/ŽЇ~G)8xiokkO'ιWoy˛ 饟)Ov-7{]ν>W}#9:?e_=}H?^|XKfʥI 9S.,F00Jn0Wjޅ #VUM!:/b`9 ;r HYT3}@sJiD"5b 26MI-lU %OƦYD 0kʒși,}Imۤ6r{&qQ(r;0zF8*qn ]J4_Q䝂׺WۺGhذ5I0y2v)Yo-jۍ@@X5U8E^޼5 )XfH``P.500*a rilNEhk . /q?{okۖhf{nuDD66nbQنDC!C"@H! 7$$%(HB KUQ޳f?cTo؟͘sn5~;P 墽l|}iR]t"{Hu8M쐍a#lHQ#"#6`jd &Y5g" hSP@'z8h3Eh !UgD=1s@,pU\Md}4#D}, ̜ @")لɈRQ̀hSɥq\JADU{UDZ&)Դ!s% ȑ5 փJϯiLUtRUXJqW$٧N96́\- #E@<!!ܿ0Dk/`=}d=ꭼ=>> x%;?|?'g8? Z7޺O^_#=:z{ޭ)Ww_A=\ͽbO>=0ǿS8rlfc]ͬsbf}5CwsM^os@K) HʟM<:MTۘ+)XvXRx1v3 ip&fT-MӧR6ɹKYy^6$Enֻ[\_m,Mb\7n~b\iqhڜK߄s1F繦IK I$CdD:Y.e.vM9u]]˭\,sV"ͻܴm'G䳳G8iQ/ 4Sc\2c`Ω<~Zγkh7lMmE8 J.$m$j:8F0,yYry/og>H_wĿ[?.>r_~G><^OY5O~K'oOKW?_{7a/_'jWxG_tyc?/O}e!O?o~om3<xِ7ؿ`?~'Ƌ?w7@''_w~'?󹋟?=>C/^Mok?o᭟ UO~S{L?{'}~g~Oj?sGo|J3bM*u(|J W8缩M` 0 ifkWG-S̙ gT`FbR1l@ȄZ Cɱ!Rb "fp~^ 96Ǹ])jVT4 ZO9aP3nH800 g2`bQIc NJz낿hw[MiAnO?o.h>z>|ѻ~q.< ۋ2<*ݔ9[f*yKU]Oebf@HZvP$V0#CD2 31~{3Hfv  K:7 Ԏ-pB4Or_h{bui@ʽp[!/n{TC5) hjF jRC{JD## ScAQ%[4FȪv@ud jo $G1QbDi4[jdň8@ D@ "x&EPx7HH!>%ffb"2a) cVQ&0$ f<& DR$5'DPȐ@b4x`JJ'{*du,<'Sě)X!c2HLoH EU1)vU}ľ[O" srNUa3!!"MKA6}&rpg#HPkDD95~tWkmC=UܯqL~5cNSQ{A|\cq{*>=kQhԗݘUWcj_Q\2m#9ՌR 1m3IU7m0B+Xn!D"-mNSg777] r^<;!z4L50뺜KN Bw%._\M[J1T܍CXG9xhgD%M[YcH8ιyJi>i"_0Yqf8墔2OSw}Kj l}9-;166OvݻC AJf 0s>d(λvrԜgbs}jpaf^"*EiBd"mBS\.sN1R *@"&9b)M)h޻P0v7Ee\h}x}) ijb"2nbyDy״<>n(%;$Q`v!D3kb ,R<`.//VY4sqdZzX,9@Hu.iҜq~uš,-CBȐ!0}OEl0An;ܵ=zC!Ӱ\)9ВIsyE44g,=2'绮9)nW0_xb7MDlXϿ(˷~OSēw]|S_y'?z޳h>(Aӷ>l˟| JYng>7+}#'S~;|ʕx"竅;, rG׽igೈ>846sS<7_ߝ=koG߿׼cGkn=g<x7 3+E]9R7.◚o,_~ >%5{i}כ37O=g廓%WT&Ms|9v =p`F'O|S?=4jVDߪxeo IDATV_[|E *l@G$zA/dEK U ꘜjuHi`uT<9!B>g>(@1MU<#@vmF5ƹ#a$Fd=&3mq֡Fg9bnHN3#, /6-ECjc4s"ޅc8k9`kZ*L\ gQ݆m)o~l {hŽ~w׻%˂jPenNֻRLCޖhRT:%PBIUsNUa37hN^EUSFQ)B҆@P3}9WD Yդ;AkP>7#<7!ipKȱDv5-JALbpǜzR89ei.#8ͼڶE!i[IEգ0Yۭhib))`l{bOޱ*Ďrxآ{~qO&Wb>zpYB*3}[7ԓPMءF}N}ib8XI U/z#mêޑP) @pw^$d^M VW<52K$0`U{V04Á(ZzXPX4k :3DbCԽ0e"%" f  & UI| Vdg[!9by w`O[،$ 3DSѶ jDdBĒvo2v&" HEaG5E10(LCEA  4{ϪzU {B$`PPiDؘ@TRJ1ɵoӷWx"9"30B"P:uZ85@:pF5>Kd_'dtJ]"m4"h!+Lfnf5h)"HTD80O*^];~g-j'3ݗpUa' MfuʱL;̕x;5"9t _t RTl2 6XhXLػݮy b8}e&yN͆p!xr2ڝ)h$2hTŢϹ M"x<xoH N4UF@Ad "bFHH`P@TU y6jP L Q=6AH1#~T["!=kȽ 0\]IyVy<ʆJ) cTsqLO2Ia|{CˠR5#04HLm1n81oecp\fh)fMH37MCڶ&\]}g2MΛ:7vsy4虨Af:`qwزW{BUi't^[5C_6'='ŻF@/{*3@nCq$fxg~GsY=@W3#(5ڭWzt>L):k]}M@ *L!"[-&frs D Dl*(ǏqtgU#kPwۗ{a؝'/8Ȧ|vtxųx-5169 ;奏PTfrEʰ2nRqTӈ~OS9#ju&bCJ\rLifZ?8$06G;\_tm;sx(97:E5)PJ)!1m"g"ڶ4X>71;Q("BM9;3h8Ms)E \)-yܳAţ&676)}Rj. R~bӤ4W1l;DM[̴lC!6bjTDi߿1kxU||s~\IjoM2g9[덪g@ (nlm j3 /i۾iݴ˓3-1ovՀaL)ŶS*b"6if.^7mѹ98EuuX,c J{TYhU&'!.s1F$R@0cAQUNv5DRP !1Mg"űssJbƎ 5S)ppȢM \;L>M}&:302 ټ@4`UrrT-:R&֦)33 \-u ƷG2"<5%$~7;TEVCC ]}% j]e; 5Ba"V@{-+@5 ;ˢ@p"I^Uih$55+ ^R b*븯n$@b"bLȜL@`ؑimƗUyð&;s z @wf٦DXDMt)TV|}h8;[N5řsqŗ)P A Uܯ}nhLlfH!#"UL$)chӀϤ"vYULr"ȑ3}bZ2#6RW;*` ldz Aq .(2Q^(OmuD2"i"h̒ƼOi| DN7+P-=yd|%4vhotE zgR+5j,ZDtvĪ= 'ϚUZp؜C{ӫ8{[Klnxt;y{Ugw|]+^o\ "DNDcU XsqZλLE;b*fRJMD)͵ɷmfs!Ʊoi 6_.j]眈4Դm)|ާyN0NSч0Nq\,9gU)&\){ui-RJ973R@Є/mZQYŊ]S<:_LSjn;WB 1f1/Vg/.yZ4읪!ڜRIEvE]N 6M/J|uuZ5MԶ̘RVjY3!0IV $3`5\qR$}_Q%0]ח27Mc()gK]OyVCT+͕rwCiX#)M}ɉkRmri&04M7#1h\"Hy1:4:狩.ambȢ̜RӶi'vX_7чm۾O2;0͉%G<;D!隘sfv RpD/WOdfc^ .0rAit@lzn紹lJ=q]ͦĀ!81ܴݘY޾N@"ӥsns7к̞ f|^&_Z"Bm>Tbo77k>`6"َ0q.Ton4cmW7f|䂙=QrB|snʒ8۬y͍<x<G\BMW~=՝jXpfR"""RD,`Ǝ*(_)HZ(I):fbNUkY5){EJ.T8v8M#.@6;f<bp*bF !h@DUU Ъb_yW賂hJ)KV3T+9FBJyVfDㄞϼu*e)Ns|4)j|iޑ`cfT2qo xt?BUʒ=hk] a/GY s{V|l=Vf/?K.>,aҁ2ĢU]] kxK*h0$l@pI@P_#> j VT2" =y˳Ѥ r?@s ``3 ,Tv}g@b(&ReaAPvui9g4C5"\hD45n&N8#3#<(CA FDk0@d5BE bftL*L {D~т/ m"Ѱb 3&bJ رٌElr&JjI``UUU">qkf3A*\gh61-\C4WUDWϮӾqW\ f,\;#\cf< !{؝2 3 <%!f\G4# 23rǫ~= >\q~"C URu#չrۦ RIuA=LvCK~Gekv=m`F\znaX~:KqMXi4D4?ymۚD$F٬?eΓvi̬9}bӵݮmeEP/.C1ͦLD]v/fw:/ pvv6M")Kkrs΢"04!XwO##~fa&3Q!fJ ȨmM)M ׏/wcV1v4bJ9)hv6nh۶@MHι~jo_\< fB`v #y IDATd‘m ] 9ІfϭiNaa=}MQRrM ixskc)3?vJׄiJ)s.7"YU9ˋV%y 45ެRJA"j˶TF#ylg獪>Y=[tv7S$=Oax<x<ڑ[>^yj{GsPb."H%TAJP=wșs(:DԐTA 9R hVnĬ)RDDH* m*L=@.TK9[כ2QWݠ{n%tmГ7{kW{{J~1(x{)\ۭzy:W@# UO($ (H HP/AălTȬJ: zI+ #`%)(+'>A V̇*9Qr1@t{`0b(Z%̌0K&>64aLX)$AuObE-٧d>= vv1*H0"USmB ` @R"OfjkL,c],’ p z2yѱCl33"@"b`J*`hƦ6eφǿJšQۧ&BFO ``*9 TRJs@9K)yf>iEAC_C.LV֌TJ)jՔ{oH] E[wȌʬPnyNsXU%"-{A pGdfdJ`PUSn mvLCF"*ZԚ7FFĊdM\PdkucoH֫kHA YrtәmZ&V3+W5ΙM2/z>-f59^&{&F\aws`<]x:w 4W4+KkZֹ1eNO'DjfjB?6@iƘk%dB\4tr! V͘y]nnSJǸ.8ZI~uJ.Cߟ47߼Lj^Jft>ba?N~Ed9✑j N)gf04~N1i:.K7b [Juh9ULSR3,:DӺtĞN!C`8iet!𚲩4a7dVwZɹVp>}ޗkc߉4ȗ8nv}/bvSYD_R@˲0kJHp\0XrBBEbDŽ92lB73&tĐ ;yaftDALb#8ZRnr.$5[J VGi:rZ&q~5wiZ@J~'b9aE ԣD/ZŅ>O)tf;MˏǒT$:b!R ƤG}24éB?bawg4(j@{rngQqa*%üiZOmePV ! 2#S*)8vh7p 7p 7p 7p֌6"ѫT =| 9-`@0CDFhщH9j;"5fD-Dhd̒cTL+"Rfjd*GWJF&2D%\9L @YB!TnNIU8,E(YuTX]a%'T hY1.Ml V#D_nؒB7hm(4EDALf}j6# 8Otʅy"MY J5UQ3MdzGoُi# x$-(q  X, lj𨈈U k"no ˈ& Z*BN;E-֠B㸯Hr1Ο@#V#0(#Ej ! `ӓ)$69MU i f`MȐQ*&FBGF"6EQ`Hq)̎%Wۊj,G(UEg**e[ؙp %Mo hFLơU I wRă(L@Nv}ǫ2jͺZBL5EF2WQAnmpκ\DBs?  h>f18۳Jo>sΕ~Eq{Usu^z{X3V~]]rv^3Wy^>~h\>u]Ju]]sr.tS}~~!D]וRT$af& ?Nށ}ofTeYB뺆VpxO;ιiK)8s&V32 w?} B(kAT9[YEwNNyJwCᄀ.vc{w|1RZ+5;lb|)KU <}Kַ fXΙ >|_>\޽{7ͧ?߿X֓s$BNӧnwO>s~ÒJ: bޅ5e<.y_=<{"1Gf^U?~~ת뺶銈<;j}???OoK^uyI~f&*r2c)jH`aߧ%qaN9;}ȵZo#V"* 23-O)5q:x:33=<a*ݺ&$b$\K0Il-9N!~iY~WQ"z>sDKZu~ !px&~w߹yTdNjϟETxwfM9r &3EFP5? \8zG!i]Oy]5'|TRu>#tǧ~7Na"q;Rr٤/Iޅop 7p 7p 7p N-/tHOm/_Mm1VKx6HnR"NDHDTĹ0O cRsM2"zb02A-RDBh͹et79%Bd7"~xE5M Y3\ϫ7_E2s׽S "փs*-zeo-ju,6xּIsRD;ΥJCi)-Jۭ'b'T,l4p_UW;/e+{7Wo*w"Sn5i6}bc;D<|7tBĔnK)u]788e1-}$R[4HJiD<߽&8òV`ft`XJqη߼|8p !S){:޽{73"XJ52/u4~:W5;]D4-y8<=O߽&>L>AEH JAe]9ɇi*1Ɯyy{x7u]b 9UAUhiͪÇ.ϟ?{??;G0!yyJVw~OT">͋2ZK Djm mj9w1B3"=Jɧ)tr-!(RűuEtqMVCkb;hW6?}zb̚pYs(u]|ɻ\ ba8n)3V0QS[Kd7hpuYOyr쉐t$C]"/. !YkH]st E1RJպ뺮݇e) 厺n9}Nrw쬙z# -w ~?p7p 7p 7p 7p4?kkADj/`L`[H,t$@T!s-͚d 9QQS3)V5R;Rzjs/"V$j qhb$Hj-bI@\*B.[-OwU`NA>.I]5fCə&&Ȃ Zy@",'!Ja.n0fkdVQǻtxyR)D5fB]HVGff͎LqP 7rx)\mz&Alv~04[0!-[ ]e&ҷ=#D㺘هvT)X9C"4ti4R HDuSV8{f bj"s}d+1!Kp12V0405@P` d)̿G$ t#HghRP2Xs>9_Cm#l *8RD x=SuӅ^A|>jGEmٱ6tɠq̵Qr LH`bJQ T(d&Dcv]x!v=!`$@ 0!;:Ph w~6i73<'L/$E"{RUbJ撽s"i-<6.,Nk5x["q|u<B['Rkiؑ&a4~oe243?Usϫ]ٚ`"1n Z#q<s;Ǵ ;'4[k&Tͥ :Bpl *iZ sR Kː:َ߫l^Btnݷf`_ъW*b|KٴYR@y&~%eƷ?*omcws)=TR9-c8k.O5'Ubձ;>?C|xDr޽CHf}眝 VJjȎD)??@{;|ԇq]]'\9ͥ1e!D\u]Bjt]_Ew;hYUeI}\޿t:(QKhkI!Z "|8xRJSbt8颪| 2w]upxwL?Bkeߙ#w~Jɏ޽+5u:~J~z> TyF"u(*O1<3uÚV|>zT5EƔ>==u]},b@Bq7Nidscdo\TseU(ւDhx)#XrΥV}ӂ$O~tєQEm<"nإ5wH.L98-:>:u]LJo1>.eY~>h\VJ@*_*j%?S*Ti^ !k 7p 7p 7p 7ǗVoۦ$;lDh?2313f-L Ѥ"FмVŪ(^\VQQ3S&3inp-rfn֚!DWĢCS6CT܍:Y~p,G w3IkJwi~]"wшI*TLճ*$`Ct.ZCy1,滾Sel f"/cٱVe^sN D!m=h]$l܎3+эm'g-:oy#6 6WSNm-/Cs˯u(Lla= E "{hHn4hSF~ Z! )8D=Ih7X6]5R"1֚lͱhu}RU f5 jXUsU%+|vj%gzd`˗Y؁۩$RC0UcU/&J RcW/,mfWm^fV+…ⱈ@L`U+b~:bjfHv1O>=Hx_ `gmw4K9"1vD H+hYL-D4H=7397LLM-M;Oe]S?uE|hjm:iܠH_X~9X/7N%}xj d@ .s@x65snoBSS!! NjsF[.D-9ƮSUO Ejiey4{%v8X׌ts֯vyQYZ+boėwyZT ywpfa|EYYBse輠5{߼v"HfѷUҺ0aV)xu}xp8H{K!u,E5SyI GfV13#5%@RrcsW k IDATǘkxwcZW4iz> 1j=Q2:0kO0I)UJu]. Pj13U%wǡB`>?ݩ)3 !h残m2s^؝.yR;ߙxx:x h|{5K.EL ϹkN׵Tݍw\kL8 C\pݝN>~z컠*9+G#^uuΉ*"H>R._ߕ"`XtA4>_Ҳ{|\>|tcey=h>$\s<Ъriqw:XxsrQ~7H"RU+Z?\?yB9}J-a)RtpM) 眻]E%ժfVFh@Kw ucew*Z01SUKOaaןsZ|&;y]u3\j$OH?-Cܣ_᧪?uf51Ԅmzbo%"~p9K{*#ǥ:"N+B)T‡sWnnnnpٗ)[*7F&6vD@DU *-5InҰZXHLNT|%AUmbfIJiOͬˉΩAJ%݀TJ? d/{WfLMWAL"/5@ fC 9T`"s+LsQE^$fȔrǾ{ɫ}z^FȚJlwS7ecx5CgF lm3SbX)7ߥO-@`KjfkK_nY]ͣ/-l H` q&C QA[ Y)Нh ڦF]<+`D\TDyu;V):bQ(jJ!VQ;uFE@m [}SP0` c=f v$_[PA6,`n(a@4P$V|7h A mW!(8Lf fLFtn6%7RcJ \ԥF"*D@ljYf M66F[] sJIĜs@6 ̺3Zs޶zCg} ٵbJ{VtU̚18 zppYg̛mNt; :hO1>Wm _>7Yiu[m0$@2*Fgf$1&54SvQ2yMPkH2Q_V{_/j /;j W"ګzoЯn_|ʥ_ I/g_M-)/\,šR,>LLff!82jDbbSBf"R51u\"ZuȮ6Iq!3ND5lLsxz~{<=! !}RQ{8nj"v 0tyWa b׭s&"zNR 97V_T)gǡaEu^Pr|XӢ>J}>}ȼ:w|ryGVAӮE4yU w%sxcG*E8%c$tV1BE.-D>/uЊhJ괬8OܚS _Oy10aSZJ뺚3!zIm^qskAbXwΉơ[>qJÙk eS`}搭 az)v#0-9GGZ1h൚c*9'fR؅sZyY*;F5Iq00?X.'Ю$4CXR:)!T3%p7:éۿ{^橸@p RsG-U#8`Oܽqec\kʹv9e1%22TxD U/%.8jZ/C7X,T/-"25fDDkTm{m2Wy+lV+W|@/Y{ƹ~aa 8mo> ?Z*^IWElڡ^S t.NW=wæmg(^ԍPQ@-QMMECA%`jmϡ̍iC @!ൄ\]d$bp ꒳xEyқU7xKq#/QҴBi* ѫ{6SmSݮj̄@jv`nvQm"?=!-+Z4@ WPǣ?\Q}O.OOݮ ιw㑙u1{y=O!3f7Oo秮1v*9O%s<?~ysNᮟH8,B>*Pk*Jߧuwf#R߻.(i>hYZyߝɅ0w}5XJ13l]7朖5}?f")*w~^B7UC]JuEU"3YJ L͌&6Ljy13*F|<1r©jܟqw]8Cu*b_,O&2tzV0l~}׳Y*ҏ= R]%EbT-ɽ)ةJ5e]0zƊ1e(/t͘5kԗܯ޽K&'^8/c8΍yF5c+5hs壟Wz] Sf^}m.z9L!E|[Yvv>W*k ƻ)d#mQ3F@ɈQ>Rvq 콢1-%*6)*_5x+%"s!2 YmIj fHd`ĬHMMeXFbfB"CVDhKp"1j[E֞Pڹ }IK?<\RE眢E`\.ūľ;̩J~IkbkQzLtʅ;RC!a2S"r1yfj^TTMŤ-VM""07\_= >\+d/ˡ/ ַl/) _o˳(_L.|RԴA5EĮr\j%b `$$%:㺮Dq|z>t]70  &RJ1S"uYNBrf_ىsKLn{IeYj;t:'~Ӊ֜0 "Msn9sp<-u4U4PT[<A])5-)iZ8˲|<`}8VT*sKnRkNbHݏ|gfcď?: pp:}Z0]~'w!z˚9bWS2#bfvSJ||\.#,tt?R9eI2?j?ٺn7M01x]RQ1d)kaYVU)j;$L4뉎yYǜs1{>M9ZS.ϟ?֚.E"{DFNkw]!R^Tkunr/q֜B =??{3CrP?0{cFb4/w}뚆cy?}s:+nx>kgо(1U).xOcrKJY}ى!>wK`k)۪Xk%0A@G,h~d\B䇟5yOwX<=G&8?OOS)NNcv އo ZTl504g8c%nnnn ݳ*3}{&w༅__IOm/Pnn]QۚȼSm1%"&VDž&m0yK)iҲie}LlH(fVU˺,!!뎇#y 12{UZτWw1vn^Oӂ寽.tvfFq.;9v]ؘcTb[_PmT_l/$ypWS]+mg>#iF-av3nYEQcgK"6$ڦ=|럿 >wW @rX̜bj6.HHhQSjYq}9zO#B݇>WnJLnxn `±dZa:D|UE }?M^?++?93дMJB`PD2Uq}7MXRfZ9 })ȲnT@Y¸sH,\վk܇,-!Dzh4:B:c9^v[[YfNw1,ˇmݫWW2we7]BVw)|{<昻]{sv11i9{sv4m~㊇ 2"RN iDQPHn؍ocb[R؎HZv˻}]M[Y#xt<+Nc4NEsab#lv*8:X>uE.r\"E.r\"Z{89) >Dz*ۧ};VUKH=ܠS&pc":bR]"2CaEt\n \R6m<-ՔrS;f 5niKbnU[,Ĕ\eFƤ^-Y gE$:0" )d djyT,@T+PAfr^ { * H,E.*"Y Qg( pj3 (! Y2 dEq'סJ!% 1UGf=0{"p@X(3E rX A6dv jTؐ֊(YpfHH<h8] ,dUU:;v(*(IQ>HbaQiˆZhw~ߔ#d_U"Jܡ{V8sRJ16<&1)%ECTHY@)eH`PE@KD k5?>i_L9'BgmYQ _,>ZHMIxnAܞ69>pxt/}Gȱ? `꼭g327~4O>XLsT/ggLphND8 bv9e6 j0甪~X>BUSJv14}4 & 09ak)ﯪHDHGɈ%ɹQwPum^mc캎eƾs*ҵqUU}/ۅHnzx/`|j+ N IDAT/sJ1-}WU5}Ӷmӄ~;f0n?ݭװXz" Z-ExW%! qX=4nfkwaon?<:ob304b7Y lS1YW1&2 զnzƻs>A멖eJ9Q6k^ݬbJMH)"UU10 ]pZYWM8 ]!AQUs*sC9P攍q.]f9#28 YbS;0lw;@4dTl65e~W~ݮV,lABDlg?CwRڪZ ڬUZ8"nۏ֚묥;vEŪFcbNBnǷkY^mՇ6>l=(sieC B#MCS^n", i=FQ^{z؏߇(TkTݺjZNᛵ0+ WpCJudݦI\.ZDZ0~e!^"E.r\"E.rǷ' Ӽx(->5z3&O=Od=ljOE9 a=8dWhVvۊ4Dd L"UI@SqAm:Ї1Xb)wE UVA1f# Ѽd&~IrfD1cL1Ԡ##Q>-np0y{SKC>>4'G }ǫl?*!@7  &zً4 |mc*Dx_JUѝ!E’f,UPL*L9<iI5dadT̀=䌡\+c)YU2ƪ1Y9P木j@Y95dL, X!U*%/s&Bj@&"D- VU"lNTAjr?PQ&,,`g8֡/(Ѷ'[P6XhGOi QڡcrְU*,*/@Y WjJ"%7f*X"SX}*/'cHaFJݒ`䀹>W {~ȭdr܀8gk/S 3U||^쟝y> pYksooǭ?}\^||aޅbʾCU-"9g]bJd(HD,X.Di=>>**2F!VU_w7W MF2'19T|QRfX-w!Z;0\2ruﶆq]WUǁB۶yytqJ*돷|cNYv9ǘC.x}s^?yGkn3u]"6ݘjnwwwwMSQTyv*жS@qz|㸎wƕ^Gmwɻ0 1ۇY-sHdU.`Pa[ku"@Y笯0 6X7Cm H<$*ˮrmmm jy{WU7hɘ5VekΦqnӻev*&s~xxpއ\UqcӵS :~;v6)DSUC/~-litU5\Ȅ (%/L ȔWiCcHUE%u""N:rVIy-:k)h2Ԗn{DmRJD T(Ibe @O{l ?f& Н:RD < '>8_پ>EK?Of)l>?d0UUCl3DBNQ<Ӫgt=(r( @{-EzRCz\kn =n]o8:YD3"K9v=]"1*DdkOV7}^/|caŊ*1ڡՊssݶo>ͣխtM~xoE=aޚF%%2Tme gچkc8s"9ǦnnVԍ0nS!Wa1 h`\W3'iW7]Lu}nڪH!37mnb{*_0F|EHaڊ@ iۏy 93唭a}TgMMĬpc 5,nDO1yuwSyy1G##OVןC/9?b 7 &jYHf</_rV?zPYϾ] *j|rt^jE.r\ EDΘER1*[?JəԄ4ڏIDTU ',O.\N BW'/`(u0g㽸=ڛqgX̦oE@U@G!&a1HcopsJWUbU08ID8c!uS*QXT%- zDdP,ay] >v'9x6oa?w3P30duB̼e‡jJN=~ɸi?u;2tNR?[f?[0qL4ӻRbt9FTFd*(g 4 0щ-H%3~,&oz4hɑ` !Ă)@.!`E/(0s4rX^@c  bg) ̇I2vڢh : :d *,42'QEˎ H`'$^DU@Kfa,u`LfA?MXQY Lj8 eT4E{Kۂ2lSD!ªB"#RV.$]$p3Ze΄(JD8/fQ{)BuPwzU*;e[۫3 6o23 ưh ~UYrNː'd KL|[SP9"*bUmaV)2Y۽=h+kyyf "ms)v뤕SxϞ>}-1i r KNr QÑq<O8xV0l mĜTHdX{f)XKS0 \nn6sL R3Ʊ]t.R״82XksΘX[vXAb4'PyiE%jV^U8v]Yf+GcL)5M(ᑬMơqֹRƐ'>6Mcy4Zk0t* ;TmEq!'jx\ba Ʒ۫Rw?x?춽C΍1m[¯* (D̆ YhJ܂q#345*1ʢv1" AB-g$jP!- -af'nn U+"¢n[jVW?}b5 :Gb,WLCMuc@A'4b)Ywc8eNbfcgC4]S >a8eY7Uw@^Gf^.cD VR"bIU,i0OLJSu`ۗQ D4ŔrVq$יR<9vh8,sa:=N8kl NЩZzuk?EhWOOjc{F ^q?k~\-TCt;vX\fAC1n@@R)Aa\C!𰮼/QSqzDZm[صaՍnv:QD&r:fpx4dXXn877UĜ z}u遌q}\.Yo6"͛N$R\.۔8F+g*qtsZ6{NT_y6gx~x)v}۴veJYv;CX#ׇU&!v##hUz{j_q>wo:*fÂ_W۷)GEUaF묰fTuSB0ƣ6xS诺f6On6 a^4m7U5wC86CmM)f΀`at&~]YjkRjQ]_wY_-Qdo#q$ Q0s$ A\>'T&4vlE}[^ZU @R~HLV)1@E5jLi,|Vc[. wb=ax|W5pϿF,WW&rnZEq-Y^-݇R.Wc׋ 8uS U9܉"Wn8uͶ#*bӳK˝E"E.rϊJt@Dl?ba,cXacd1#O\?2yF̶ {s>Ϊ=1˟½{猰ϛp <L:'\U5(N+C40s&ƨ Y) L/gQ/Gt NzB DF= ;%a_ JO8ɓ9GNG/bf8|>T: 3dŠ@\Xru.Ɉꌺ4af_*Xpwܕ jYBA2hjx|z4'`TQP &=3(u:|J}VNgA!a7uת>)u6ńQ@](jNp1L'NݜQCLQg'WW׭ 23*j{:+/۳~D韃?tsHWja8 օToh tړc4z|qNe8lN>O|tIkخBpcukmurJ1gD*Ml˙("9cpv5뫛ߨqr60PƘ8m;CS@LLSx%Azz\rz[UKD*uUqTcjG1nAmI-[HcZDrΫrlY2kմΠc\حcUu]X PUMFƸ8^}5W׏Hh!cq캮I~l !8̄8C&\&PE}SK0$n5*n{o۝4!M)cmGDCQWum}Qnoa0RQ29(aqQ rBD%D3vf[jdqB܌cl{Xyo9eeY.04SHul IDATSڹ69ocJRVsTS̓XMocpiVn7ľߪ:/9q ZVMb8N)aA0F*"5ݎhlX{DDT]PHY)YbBU6ıȚ1$PAEY4y0$כmzFlܼim7^_߼{n\^yݍf70(vLHM%N2_y~ ZrUC`UG"ۺtcQNˍ!,-=Jz\"ȩs?7#3`];釱mqDU7{gi:k5/W*10W׋Se/㑗Kw^ Qgk>'Xα5guoт?)HZjI1N9=;Ib/yѤDDX,N [rOO,1?/g3_# f8@=x@f(_&|`gD2PWg 1qBgT<=tDV ETUJ$!"M*D˅eM 5< 3ªX`h>sʨL+]c3-ʓ_]{Z^)WGv?_UA)-m"* p~biJWp"gg^<ϩ7PeFǴOekMOsh@d  MQB2!i̢6 )^3\%JAcԋnFD-لYba!uE]D8 00Dƒ*~J^|>Ž^_ϫ{_ qq:=p1xg~ϺI;p)ptٛuގi?̎Ny 9|(3ǀ:#~Y-qSb>{f qC9'͟u^q kax_3*h+Q$8Fk1fۺRe$# f  :c=XksDTytmBUy:瘘 Yk DyuXkC۶Df67nHu$Z>8bԕBvZgSʫBlU#m81M]V( 3 48*18gKm[.vm@fUyfB-3$2RrlfDzQۻ>tQ˙RbUUw0:g;7B5-s6jbc>rK܋V9̚sjJØT1kDƮBͶ_-Na+zWIk\yLyxn7d hY#fFLc `YYD )r%fPcAsYrL=YO1qO0;gQ YE iŧ0a_׺Z.ݭu8ܶ:4B.Q ND꺭qY[gH1eۏUG5KRTyV@БTL9C!m TlS?~w3 0|C%*kZrĿфe-5Yyt<*h(Co f|#_6u5rk']-Sޯ7oƟtĺΙUT 3?:T]>A~wyZO^Sު 414Ue=8m9O^|1<-J\DxxT^`y*L 3 ("*H SM%x/!5sFבL_򽰁i1EՃ#V4ϱ:3~9 RxτICP@w_`*Me-0S|0fwp#th@Z\oi-k:uiv)FHn?!٫{B8%b??lᑫ  @@w<4 ü'K)49¤sA|Lj_/ rcu]5m4C1UBBњ릉1䜽1 (U1rT)%ngQŢn*Xm$cfuƪ8FrMߵmA^QAD%+Jlkc̉ŢiB6@,14m=`أw 0VU"\eP4Zjf1!YBSո\V }fޭ׀rǐw"[v5".;Tr^oכTr*pi)i00\ydc1c9##ZѤj=$W>!!Q|iT|6ol%alƾ3Ytg5,"Y! Z2 TX9O琢_%ln59GEƥoaI0\XDD0+lMJM܎QbƪroVS l@%əSY'c Ie Y݌hG{wvYO[ )g雺 waѽfnԪnUe#kC֠Up@CguLa71 (75`HW8JaȌ7ͮLcHyQ;7;2笓gB5@tƧPRKzNYi4s~谅 Hh Y5s"sVgB&SP>""V=}sꞞYUuNOщ6^1Y}G rJ=Pzԩ^_4ϕLu{[@QC7ޣHǎ_'gK}%f~W@:Xw0*@dFWbòi ] CDaAD-Ut:sd&y8p= eŔ@*eUye'ጄhJOLpLX-^}Yf& X0d@hr  If@1P)!޻ʲ$a="2W7 @ 9А95!4hH 4@_B ИzլWf9VWPi7#nǗ-3rFnF0POY6ˏ fͪ[T|No,J|19|{^>bJ0D (|];-k'Vذ1}[3GuL vf4/y*aa3A v;\hfPhvsՎanaK&"k|Nmirpn J,? dljHsFS#cs=f>GdB[D(l>yN6NltFZEcJ{1 |R}v6O[/̀i4g.-ke[J_]THZ|: >hsP_Coie펳W6|Di|ᒏm-<c(p)qͬca<9qnuQ8*FCԢbZKvXJaZK1)Ot%2NHj9kb9]; ֮0c.>";+e8b kGܽ!ٍq)% _Iү~7ߘ;Zǜt!>}z~xےDO8j7>>~w?LE-欻gZ0yyafuv"RǩׇoXct݇kv˿s9p8Q''y@~S>jK(oY 9pG&雤5` UTjfRZ !VM)(0K@`4}3גqqOR-Yj(HY)5R~U_]ھX'&bP#1v].?[?ngj4br0&aqf~z)QVE'C%s(Zv i:9Mj÷84}#>>S-lD8ZPdf-„ZQѼfZi+"ӳwQ~13r=S.O0FDyׯTfMS>N/{"ކqG?>2ܿG7Mnr߮y)8sO~>\;ago)=~!"2qj?u)^hnW?}z9w]'A~QR8)O~wm%}ޗʶ\nQ/xz}y|uܫC7M8QJmAh/ҟ2+$;5bClj ,g-, h\u o.gy< z f7l]u6wʼnVbɵkV!1Yu*6T41I}.`6'mʡ9CD_Ksr.?=]NM}sX&'঎l4 m,\u?nPNpd~ Vs"`S*43,` "Kb18ow "8fƶ9tl_1G2'ݵUBk8ήnZ\6ovsZ+K1gD㞙rR0u=33*!LdbJZ 3??wZ5btӜsYnAcUgu(4M!j"}z}>naג `WUﺎpcJ1F61kUWA!V-)8] Z$WN!Z#&9p {a2r m cQU{73/1:͂C=qQIuשP{~݅XϯQ: jJ8bYJfAjZk4BDjj&,w)%΀~a]V(DR|x\6P1p&7M~"C==}ljzwY߮vw~cJp\O/?=|z|ЕE.on܆j+y9Ӂ/7m _L~~_|~V9iRP"bfZy~E)FWn-Cfzr?~2+9< r{z.iy{g%Ul{'|Z8t5XPSA9 7ȨnKhKAqwx?|%c6%ج~q3c>t3<}ZϺіZ\\{,|iW⟻ xi1go^?'֌ț_Q`6hkgV̼s'b#ՙ hňD}78Ƙ6]x~'-7_wU5ƈRPLՅ pNJren>H`pxwr.鸬!|n0B j7neȪ_NaD iXu1VBH bvӦke`iv84MYLޘng&H`I/gpߛח}W/gWY"~3T E:j)IEruZkqsJx|6g7|"M66ܷP/; 75xEH^o;PݽBSZKn%Y IDAT vMN+pRa xf`C@akwYD9[|17 I: eoqXU 7` z]v`z8G}AyD@gmpع-M%Ltgu N@fT՛3ޖ6X]7bH`'! 1F'Dn!bu2El;O~[/ ]&:B?tE~O:04#4'Ƌ_f0¹$%LZuWKo 8*S÷qvO7˼\z KO ¬ٱB?̽UIy`-79`'ݱn؝\ڂX_ ԞkMXJi~m\ hA':Dhn晳*8BvqU nmKD".W,SdlU?\|cjFc"1w780k)E$0}of,!>»/U%:M]JzxcAsw@)6.p<iTd]L&*j ?I"4᣻Oyr\sY֜s 14 }+6!4*DԬ{pS>Ðbgw3DZ T4qG%G%x< NНDqws.PT-w/1E隆OtVrTf3LLLCSu"TMՍZp93DO9ID4S?j A(%UaP5~n^__̼8ME͝9Rܠ]J+3vTuwZTNuj^ws12ub^0MٝrY,#1T]Xbv+ "̜*"f98p՚.眺>O1ǔtTԛ!؍ W ]>"8}^?oR{XfjQb0n0B(`F( BKP,U{t3@[$%#Bg`= _#5K^V k'lxnc6BX@"4Ͷױ|~佭Ϡ5Sc/04NcS͑<#DAܼڊĮj"BF^൭W×^@7[wѕB/]oZNAGhÿ]jړ4Lf'|B92KCF7Nq7~"]y@x*}v}1JԆ>ÔûkjHiYDDrѡ0R MV R%MSvwwefUe!|UC^Są;D4f5Ã;iJ&5SFD)<{ROA$ +!"\HIS.w^OSvB̹(;ggoQ|6jz3$h5"bqUO&F-q3' 2a ܴ&au }=up>Z㯦8r2X\ 48s O}]وYK5SjDnř !?yf0"b/0vrfǚ_DóH>Lz|>53/b>FV]O S(}YCv" IOlR2q8Ƣ~PUUn`F?,&7Mnr&7Mn'N֜D%GlO~A(_Y]x߷ʣ6vnrSL Dvvn'"jDgӳ( 'm>o'+TaNN%b7.}Y4;'J%=uDWb"ΈY!˟en2]WAS+k=&1"SW0mFs%'E3ve77X2hgΦvH | ^]GA. (2YhM>2B9\,h!8UTWqCfNKɥ/u"3P!q̚ +N| L5Xf!4"Q t-,5W`@O}R K2m:GVuټdδOWh}^el13@2-+@`8\^BHgmöC_Gf܍ R,̉wzbM_yVZ47wS;;e2`Q 5V?Qs}4{Qeͮ:` @?myRaƑ8`RJQ͉ "9O,bff:~7Ss<qLZ!㱸9y&ѫyp1zz ASLӘYj-$qۻ4M̬)%-UUSEkJ MӤ!yL43}8ZDqsawbT ҅m̪*!DJbٺc1܀(ŮjV!}cN8Ե!U 8=)S ]ljaMj]@A$M{ r즵V65͢(@[B~7<'8xP2KYUE8ǬWbR2]LB\ KBL`bbV۲ l^%KNa3٧(J`b4uUUe( DR)s3h@*bfZ8KKq'0pt]BQ\Z;L䑃◫9$LJ jB#@% H@BQ!\è+E50jQ#/!*!TEUͅVrM8i'\CȵS z?Wr&7Mnr&7Mn[V?s@B E)(_Η;.!pU1|y󭯾2.oQL.c]Ezx _0M;'~NSG z O]wm]#_(R];?Mӂ:SJX-#X.-Jb0ݮt=nYߝY]w>.T]g@t~vkDe5,7s}S7f*Jp"n`&&oM_]Snw[7f"~sagw}Rۗ6;7k0OO;KJ_fvH>\ϖ}>zo~Μ[ý 4cVuLV1Y m]J!b)V98np73QRjץ4ir㫃Eb HLJӔ a___7LS) n,Mcƾi1ΛZjw8yf9VՔbCK~G?ܵ|9 YMcJ$\JDB9C9/q%r SHdPz 8PJiVP䱖\D؍ PK=cm!N  3sGS" ΓFcbb j"8HPS*  =[R )VcR:N1gX^-u1Nu1cĪ܀"$̌Eg&0(@H)ZqCE*31K!ƒXԃĠ w>SWv"U_^zKεTS3U%2!U1S]Ywcb7Y'x^jPZü{kfafr&;1 V*tQ 9%.6D3#̞TF] tc94fAwZc1d?=ErW~Y kο!߽T[j&7Mnr&7Mnr$WA[05AA 蹳H ux(5ZYեFKva{ǛMVO2u7TX¢]%| )gn g}r^_n_<3Znta.{E+ gۧx]*tJ{ӬS=K @.@NyryVUf6ȶ뻒V9ևo>r.)E00$\Ƙ%qm H3k5Hz3{f]׮#3Zk5iv9w ZJIc1L4i, v>b6Yk1vV:sf{Uh)Ǝ%(ay.0êCDlr_? x;k /wӛ^fAs[)Rk @FDHqcG:$jo΋ff\Z+,h_BTOzT3"àzlȤĆu( Nq2&pO 8;ݼ *D4pf]|? 糍R\I˽@X\zK ^OIWgbph- jHoAxS N+yvm%ާmhN}d޶p0g.PD Yty _&;Cu@ocFI@"͊ xrWZlL|ŏf4 t'ؽ,UCKL47fyni6W 65zЬh-r)xSQkj?ؼ"ae읶*I~;CTKABf":^[/1F5S !QA1uZXs: 3;)Z$nzXCKDanLrTc9Z+#V"?($l//L}NDfc -z$"t PLdjKYkbIn#{aBj"}ǩ}Edri3jpf%zΙErͿw>\p2l.Gt6s֩;Úo}'`pn(0c ľH&~cl9!j눼9'zy.rP"9($J1";yCk#[ ;'2#\U4km(ĪI0SiiW&7UCz}SM\a۾̳vSN2K9i2l./rltra^4 ⶲ44nf=A13NQ?ۍ, in{;R8p4/F$X;b^i6VZ@?;e~1BcU3CwASg|^dY yr6m,`Wˈc޼ď4_z\Kv6O[_, _S扅 -8N! ;Ue nnܾ-HUɭfU bDWK# Zvǿy|x1ïq"\+3sr;Lš®0\EX8.ؗf3u!A lU7@jQ+L07Np%X ́_ !8[ AkM!1CND bddf )ENՔj`XP+1u_ڔ&7Mnr&7Mnr Ir>M4co,o8uxqIs9wRgg)E{5o 0o0J(.iiֳ\% [ ֧8!%N+ּ% rz6ØyŽNx_GtSXJ_ڷ5߃/dmzNS* $t9gw.ϩֶ! OW Y- zR7- woV\蒃 MMV2ܛ:?siBH޼%&f2Ӫ.N0fn0ĭũ%q4J0SrLD`LU52UUp0.p-].FDF ]җ'W)6݄OѶ __X]FycN--yLl^Z#dѡ'UJx^~B7 x]HD[ϟ~G ]veDL* t۟1neQa˒u&\>.*R6|X3ȸ8Sf;ͷ}^VW 93z}SO|[\b{k>o2 ]5-l;sRԁ4N!zeI81Q& `Vr BB,`fOcӤ8 ȹi9wC_=cTUf@AHUc8 :NDY4ΑY1!{5IRʮiZ,#c# <̙p8P8 c(,p8"Bć}Gpxo_k3[٪Im]C@B }|~͹><ܛ}g1X.}<jcQfJ$%TbDюǟ8?jqrUT Ws܃zicc6L BEpV3ᙙD!BBp#Dy|zT5YZh.uD\sE븪[ `d6a*c^յT]RT寝(HW'8*ɹQg%AKK, qv11UC qޱy=3xQg DjO 4tZ ^Ԛ'1AjwuY҃sF Ʋ-$LvcCL $3Ll643f 2 #d !Ѷo{U՟1U>ŀ-]GdV~QəUThʈg%ѩz$2^p9Fq; Fw87iG =AzЃ=AtZs~*-kt;_;?baarM 2n̖jH)ZRA!크EK kuIRN*Rs5lAQ= l"dD8p|jǧ"v4>}×_}PUy}sqsBFTU{,2Zg{w^jX˩|8jt:_Ͼ/ٗ[o} V||~:υ7.Ob*ܣT5Iix9}H9$Au0:O{8G+B2<.|RkDY^9PbeP3kR_N*V={xA*,LQ"q6M6҂/;vy"gJ4{N,,sUC2Q#K)7%.P&YBR%t|q"R˻! y><@XЂ"x;++XNcR/MT CRզ)" =BI?/~w}޸{*=gGۘ`buGŢLNbܙTs}׿qG q8ju-Y)%N$,$tvwsqIЫ4@6ce3DZBDHCϵ1zP@RJFcFDE=Y?rNIڑ5%SR1XcLRXS mG TQ5S`BUUS:(Xe4{6SUUK :t\R #IDǔRDA@rQkB$iRJ5DwUQyAaBI˅ Q[`αRTDlC(,1.EkȥPXD5*:dH(*"%ͤ:R ,£TQrWWx03ܴT/5pX| `DGƦYJRVDgiamݟ)=AzЃ=AzO~eS~"$awSݭ ewWAq4;'QU[nc;;_Y4E{FB_H]09rnBr<ѹAe3Hsůf[qk趷5酻r՟Ty1s zc4wPd`wkqh94&خ騜ق̷]1ؤpZq5!,gh-#]NA|3 5uSb{flIAFԈarsQ};&#Bh#]IkA,}[bLǰ!gY&ڨ`xל[ 7mUnHٷ||_v^T'q'jgN. R2&DrN)gw^a8V"Z6'斌l)Pj5ϧz9d J!3J- %Ia9.ͽEazae 3; H@PRZݛnRVU%"r A"Tj6"j8VRUE,=>!tvRJK)YU쳣{᧔ M$j9ED)Q!qxRy>6I< "2bSJ^<[1+#j̒g; TՑ%كC^M4+I(E* R*B $UYXRkz>hsFMOR$ "o@P m/GS^U@<䤡Sz0zACT *H ?|PT!g@r:m+g%Ju =Ofrzyk !'S)Ta|jtGD.CNL X 820h Wf(AD _?cz#̓=AzЃ=A)]b_];^eT Ǜה˽_my o}]PW[%4OmK5m͖n꺙l ZlM i[A] `7kΆ_smEyy5|_˔JL P02Y4mQ(Iݕ4c^ʢںkL2ad^=m>fS2؁ k*er PȌsz`'Zx&]*poTTRDUw[wtxjaKmc3:gxCY!c=B9=X _>}˯{Hnm..$ZVUj2k"ΒyUhAlb<o:JpzoVY&!BQU[ r{[HͦrjjZS%pնۺ}#6NB\^6\7X@T t͘W17bc4y%$:`|3y>w\=ݩcOJ]Y@"15 ڜ3u9,囏<QKfÐsDhjRk}NOYɽ^ PM&XbzC5ǗUM:rJѬRq^Ja9R.Rn˩4-9DwKdsQJ֚l𠩑4Z+CK)?=g!D`__l6_͌dD)1)ܝ;cBs& Msiig${u)PF0:W/qKl0y~~z9]`j(?s㫯?c2U5`pdC"TK9'eO/pe,(jj:(`jRE1 | ,R@xK 9 lKWC~> fqq)QTxNOAA!)/+DcZ0@TLOI㑕ϧǏ.5|rrH nCج{kQ]D0^k!ʊ:a J J.X#QC6LX# B bP *шp@`L~ެ7= H.ѿ;oH=AzЃ=AzЃS_˿E} |7=-7wӻB,p_|,m~ ٽY-[F ry= ltwMX%4eFQpvw7ܬk_v~+]y7e[& v E[ -S\r @1PXvXSH< oj)q$tYR߄|#p›E*gH2jĪIq9;" hNUxiK}K%O;}3=FxpFf[mkQ0 }GFGw3HQFEx)e0A Rad2L)'F7"WYZ_r'zm&[2GrEt/1:zxѵZ8U̫@ZƬ۫yI#I`;<ҿkMD4 `c)sblH0 SjAUtwxp PkU 9 RU^l AѤ*"bTq96,6e S)%t:|4w9'Ks:nc5!"jSwNc!؇Xj Uga_3#"y>8y<i/ġ^ŃS4Phq-DṴKhR8^=~Z.#4 afVJaH)"VJQ5TSR,eT˘C y!Pkn#憈JΠZ (&FSM-ᡪbz)^JIf \Ε!gYEM)RkUJF!C·#MO-mj^ӂ0eSHiQ1<>|`ӄ˩8QUGgC+!1狟JN2DEDEN{T~qǤԾj+"|k@ &Htt8RX:er2Ho PtG\T0>|cTC޿~82䔡0عr]1?o=AzЃ=AzЃPzb\H[ݕmuCRuu._;>uK,nFBZ'OnWOrڮuU}TFwn&}|ٯ;E m=_K'iF즭:0)Xl^*&"%dn\:Dd[B IDAT0(,\|ANjc21[ z_-*Ӎ"Oç6,9˴:|wsj*tS{=ۚd`mN`l"w.p2;*v,#^zy%WOB$L \{ o%Zy«d,vVe߉L@)ߓ6laܗ"bڲm)7$*-.QD38(tQn:@)W cxw.W_˵X "KK y[9q |pS*zX2\4dfFcíO% or'9g&nޭEZsi :[6 kyqqYUJC"(Qj %`j>^.,eLFJTC墖G`k:6>7NtV3U!)qE$Y0^"%)U"ٻ?XIS,Aċ*TqT0x^q,%3"NgvG f3PVǻPdC|80{lI0V23c3,d~R:ԠLyD8ڑ/js]#h Px(#eE/cۖ\hH-|E8@۩7ِi:ۤOM!Όp%$_yЃ=AzЃ=A?Ap?3dyk5<:5oigg3PHͧ7Tp ܽ& z$rMXv%tnu!{EN6PE\#,"oa31]͙6p +(wNEUF"f_>I2?/t3u ٶ}hcP)n ;_-Yuoc*mznC\vP$ؔI|+K7 7}.jضyO78cw׬΂O[m6͍abI2"PbCv!m8m"bӷHx3Z]=v} f U~wػ4oǝ^T]m={]]Q_ѷ\}[Z)Zלsb6xR)eXJR)UT9DrNgr X4HwrfD>q,)2>=ETFDpA2jx8(RΧ2aqϥTу4<80jEՆ!r<PJ͡.j#2 CN ,*Ykx<9ZCx 6ASfӆ܇E5 R?nQ&NRҐ=zK5RR=dr5ʩ!  fϟRǔ[XDԠMRkD=޿;~triqݽEhP7Ðr*eZ˥֧1T+Kh95tS Qin*J P'Y"%QE(ha$@kus|oS=2Omt %DEmDn%&֕$9 5f݊w(`}INQA LĜTQbmjt\l'03~vYaV vk kEK2 AzЃ=AzЃ*}8׿~T!Ďdؑ `~{e\_sOEڈrw-|- On Oc]nk `ܡڢpLn2=0wsH dw;PoYHj4|lh<&"7q$9r-} ; ' >0ʱ*ckޱy`x ueeXV|}.&cpe?D^゙Vʧ 0K@t㮻&o4xn-#T;k @؏` ]ߐdi3bƘED|'Е`aKM`AY`N׉ohD>'V^e|^Q>&>FA^ 5|f^h= 镁&v=+/-l5nIn4`qjxL/qeU& 4_[ܜzuw8dT>;f1Cr8HJ)RRJr5k:N>OShJk >kHH" 50B;C%frG7Uifpajfv:Yhƒa)4KZW4/ZeMuǜI$ܫ{tʇAbp͖@3gNtP2kDIk@'Ԭ3L)e7H/A|x fL@*TyjS RD ߗs/  9v)7G08#"<#q,LAQ Rn"c=cݫQUCOlڶG4E,{1.hիGHϪCC0-@!bEmIT"}'頷]rG)ܽd TJ'+Z`@G]@TeAD(jn(!Pp!BHZJ^*HQmD{'A6Q- b#=AzЃ=A?C__xx.oueV~, 5%덿t7꼙qbusQʶu"+,DL.6S [tб̗83kxro-,Pf?7r b6Dz! DjcPg 4|dCV=e]{-0̹Q`~ߟ$<+tgwÿupZ=3m3| $QI5#7v݂^pyZ&hM gOmpY"l{dUehg3ؼ&{u0/o+X`6%no൯MMeg~3,t'qK؅4dz|h*tf׫ձmݮkM7\O-ngD!FPRJֆ(HRf @U3IR#*YTwޙ&J?~ONBz}9f2r pFCIK LE*&i4\kgCxi).!Z=AaH xpݛ2R+CGY)go YN2(RRt,ŽXX,ffƕV(jJ+ZKe@EE{AkHCclF4B$E^8t>'&TSàjt) t*{{ LMbN 9qz\"*N;L^%M`zwA~A0ٻw=;> ) 4R&@5X1-#"/nC("j-s$A!&`HIH(dH*mU] I F1 7`"AĄ Q},jژgχϞh#Mj&?C盇=AzЃ=AzЃ!~7~OCnԗR|*&L7aOfӼKطix ;p揀π 7?^W\@u{uL8qrWԯi3@mx> |24ܹpȪΠS܄~ XBw#Sm7/xv3<bk'xS[wKfA0^tO߼ª@L;W|zn;bk5Ԥ=|hr60Z׾ox}3Ul7.)Ư62]3ЍvNrU5'$dUQ6tf#"k+":Pux~ǁz=Ի[A7o*|$3yVI[_X<6t}>Y^ǤQ-Mc O΄:'lW,WY6K9ս{8\{S_9ȜRpD{ٛiD(hj Tb]MyѶ Hy:>q^RDFdKFN`)%tH%@N'3;!C)g)Pɖ,r8-I)a$ttxSD$THPk9 ^k-km]TkSJ?2,w鬪f DRJLݽtME8t|6ӨcYLa$Eu#|G$~j{+`/w?;# Zw}4TIo%NhC wФqN+{Qz2ap93JLCN*><$#LBԱnQcx^(tPj<֗~= EuA![Ds0$VEiz}ˁ{/ :U$QO @ bm$$LjlZJ Y"Mm$)h@M$W $ǿO}?=AzЃ=AzЛDⷿwE. Ⱥw ܾ+NqK{[.k}%|Mr6].+?>ok v+d 1;LsA( ;L:W`9tk, d'H\o,!ǖq7 *_:9aݟDh':z K/:3XzS;~W4>{"`tl] Di:f{ S>XS W̯^#ʕEr7`NЋUUn vh[]> [~1>MfŠd|`mAOIAvjw=r,V]NRyNsB kJݬsY[zAε8m`),٬Eb\ZpUM?m&fx] Y˟%ʜW뙼LknLvNpRsQ+e.CC%8WDa݊#>Z0v+k)B ysm`m/kf֬H_;:4ҔRгBs^ƚSB\u&d&fꑄ4VB:8EpOpTSZ%lUZ paPRk2yp@@;XJD áВԔRrKu?8ᮢRSTJq"5 ׹~OC.=*lmi{!j"Pu!%P$QUCkHn#Cjy:NkYКнTQpx ( l*bmXD 'JmNzR&nJQ -!_LNՃBZ4dgQTQCd$&Q4"&`g?wd-v?ܴ^ts{CSsi"qsD;I:=VՁ3Ȉ`m["c˷x'$(×j0ͳY _\˴=AzЃ=AzЃw~xo׿N_gܤcw%xu@@+[Ooh2+{yE.EV0*LAw7`ea|d֮^LAik"'OsCza-PfVM` ťsr7<+"5vоtʥ{gh*wۓFlQfYϞ<ͯt]3>x86f !!2'݀WfםNFmOXJCFN]O ^!E끞髾nw|Ap'{;mAoUJ)l% AnVԲHVcq3Fzݣ c1v]^/p*O,r6jtHy\QY&y(ok[7;/%ң? $?t~8_&77(C9 Dy=Eb~$kUM^*E+7o]zܒ'+|fTkatq8 :JYͧ2E4~63wFïo2`>{~LYm+2~idh6>TE!d&SU@, L((XjqMZ+ph9d>qTDJ1SStTZMq!J$Z_|yyz~KhNpR@@* !*6b)%TS6U3˖L5YSUՔﱊI0 fO0 [-؟JBi$RgQ ־d%,hSS$Q_cм=N=AzЃ=AzЃ_2~?߻5 n=a.& Hh59wCyr9a Ґ#pW5uС|g]Rl `W_nɧ B ,:MPQ!/H'UO |G7G{X7puϽqh-S0m3.SQhMY ? v =?^ _Y.jNd֟ Ǎ6Eڿ}\o82fkX|_3d`f?=ar@lgZڰL h" E 0KgVR=j- L%hf9gw10(")%dhsD=2lDS$#RÐӳEu=,у 'AZSΨ>fksդΫ IDATU!ka\Nj+ֳGGELDRI&ʬ4UaLxskƔ3̃5zDD)B2{qdCJ3>Ot=*BHTT@i)M,0%+ݭF9+S&)Lތ -u׫8"F=@DSD`M5+yz|Ɣx\.4䈠0): 짧aݢVGH7P6;@,qXx^ט[uSܻ+k\JYQ+N٧ߴ"&g6?W{}"~MEmR<< =xˢ"&TH)\.Ƀ)ԫ>z̺q|v}©ǠYp)~[/o:TƢGjw/t#Z7ܖ3ҥN*ղ8ꉧ-94=ThPUBΜ^.P?򇯿NWbFCRaQ=B:X]ǎ3 _\tE+&T{g[)%Ӫ_jmWL7%U̲H65Nawê(A襉Щ)Q,y50jjGgRmҶЩ,'x~@l?8'tvj%5Z`,0+\Jޱ~`@a%duu'&ʞ*-ܕxB^xZ.!znZ[o}Žn*|~dz[khG?ޢO=aOz~<턫6wouO~gONo,݆ܿ/[4oqyD]|usl.چнG-3[-\fe\C~+s" 08rr"t (\nSp0"Pg2(l%}mnH1BmLI]|j\ t `ME/tCs5l*<EW0wW oY ?{ 53 &hoZw"0}x6e_o)7%_7owY?zfqeB5k+.G1Om?s~d $G8~aW'~L i_8]C&]>޹@@|ʕ.ץEs|Uڊ,1=Zܞ]i6EL. >eBoϐ}o [{/8n+Bd􍺀ĿG|Uab|nPw%og@|ǛR\ZaA[N7Mrr.P1nq/1ы?7C/,tn*{PDollהkNը9e{l㾞`Z ,h%B N5M^iI21epO5&?o.f nх[ZKWUU|xRA241|pXa "NQ-Ռin !nK!xɒH%jfu5u_:04_64!PSuueFs`P%̤0/,4y)sNÒ/ *L)|q3]Wq4nRŽR9eYRJEUrNYdYzX?!xsC{0χWx~&uw^)DHUIt l<69e_׫<"T^of)%XMNl/veT~X;KbQ잺o 9`d-¼XM+feVmA0!UB 4QqT>2dao}!= ݩԸ\.hOT[Wx hk⨂ qfcz{˶)u>ھ%ˌe=@}gCeӺ\߻&.9(q~2}{3 Wo +YƂpꎝ5{P[8C! l .((fX`M0TB݈Di4M@B|GK4V{{Rk=2}??j=K;Wu0OP` @?vx8lI0}'斳5p[hƲèA>0`7v=VhؚJ=Ȯ0|0-NG!u21:}Jnq'`GվMV#h  ޳zqlc!6wm"F~VـuۍR. uNˎvcЪO;߰go.}1j<v.];t$kThciSl.vAN;$M{o0Mᎂ]+A]YO]?8|ۯud;ߨ7lŽ;b1IXI &SugONOOp7S@nE()'R"Ey.44rM")+ﯯTo? 4r/_䕔jLdʜs겼*AAe`3Zq WY EA*i P"bgLIQ-h3w_[{V-sOԄD :Ur, u㣫19[WEzn%K☧z M+3Xs Jv<3E8VU4k\e"0Yd!) P Gr)Ɇ.p.ϑ Xy&ݫPUߪ/pk_=ÑCʌ~6 Ĥ11 ˆt&u%u ʙh&hy؉v_լ CIRro^'%jktw$U[olϳ|=j:<Yu5ss^ײ$= N^z+:R2FD9x[5I ̷kïc1cr٥7m7g}fd[vᴟgJm1bɪHV~橁Ѥ(hh>>9u6;qb\Gg'ج銮oaJz\Y]o)x\w}۶@mߡ?գ]ߨ7~_W?zzw/Oe9ߴCCmlǻˤC7N\= .{u2ѱ`p%i h0w#=ZuB$V?k wJ6HSH@NKuJto;0B3N )VlЈޝ.4Tn;\n<vF)FToojÄs#Q9-2;L7 CB4՗v 7b$MGsUWII*r]V"<(|5fQ>9&.ϵo~zuk_~ Gw`{ w#67ˋd8pF.on)[k[=4ln?Fu;g.O-zݵRλCU/K:LH]d~RUt~e<חbG5=QGS5<<\2n)۽+RƗÛwV(o,yyڅVWJ\ƀsl56; ;ڈXk ,ó@s1AN|bgR ؁bJPqGFT}d4<%̏.mAyr "F7wV$BUd?9ӳk'NPƯX5~ ~ô k`ڵ7= Akm[T[ѽ7ӻ+kO~lA[8ay3sKL"d*cCmsٳbk 3ąZ< eЫ Z0뀦 mis-wWxXyu uh4e)])numa^q_˚}p} Nv3oƾAйgrg34QmsԽo41No??z8nh 'y؊nGzsw|>^O3/u/,Cፏ拏w*iV88D}v:>x_TQFH:wwz hOoQ3fJ}6}GXNګg:F}?3 >7._e;ZH݃Yp>WX5+wk*~$t4ܕb-ptjR]u͔֜yu.Iqg˃ >[0nH?ߩ!2hV'+Wo&u])Ƿ>%jxeӐ3ѡ@KTH>;zG@.w?• !5~s㡵Jy?BӨ?$%X={MB$QE0P%5%UEUSRL'S[v %d~t&@t]ZJ" 0z n\A|-zs5 42ekC=«W F>x>U$'.Bau5XI0+-nC1JJYRsNą&3%cwd Rx+˷l߮YT\Te]LѢiyH~I۲$hH2e,TUK7 @XQvz@ێt?[:7}ޕ0[%WRV{얟ᵡ8CmA'||@qk DzI 8ZZL (\PଚE"@N&)4ۺnюGa]~13mU׮u]̻ λ4}|'ߟm/] λ>Kg$oځsYsiugSk;IYW7n n14Mf>]$|%TBǫKKYsTъAs㡫+{ĚZȭS?NoLJloL7mc` evi#[ꌧ`m81.xo',GQ!H4 64=|ӹ G @"m3j-g?8odG{wxG2hcO>O7f =}=KK_>ga8Zv 򼚱 7F_&^bVodIHڍT$CXX IDATBM6 nM~#X.0wwIOI&͢\ɁDDrX@'_ߺ'$Hpm=:6"w{\ꈟ2)}i|sJdleyބcáÄyzb׍ۛxl"lsĖs?` )F]#0)vYj*~_|YRN\'i<%vnNhii=%([)󫍯 Vquj`!U#lV9t6YCfm 6iطnkbzm/se {[YauPklNjup>?=ŷz&k~hzЄ=C+x/t'Ϲ߀^I#YP0@,N{߼_n3Z! :x;Pm=x0͂a rAgwӫsg<`in {[#C fӻ9U:DQT5l]2+LKIBnV' =J\?7!M3F8I<AgpTu9?OWr-[¥آÒW@\ZָšL#< Ppwf0"犇ŜoK$p@SVԷ^c %@ AS]Tmz_MLJ7&v1u?)S3brg(HRI0SHt\Ȥ\RXjCKuF`r}]- 4|YRo\({D L 9L(jUߥNnuVҤ. .= !$LND†-vYr"M0K(dz$L!N:74~rPiijEWs46q7Ax]x+;tRټ7L_m]تF!4B _Ţ2!U18LkLލF9yZ'Mv|yN۽7 5{PJ3u]irod߿>??=~ v$kQ-w𝉢N4ҏF&7]3C0wU} o72|\$sԋ;F)u쌌+i0;W֢ˮր wrd>Ҙ J_uJ޴a;7N#$f唰q㽻>Ue|s:mpa}CoFrH{2 =F¯Y{RGƖA`\d 難 *r35~+dC+;&WM!YlJU4V<".VNljuZ7aVpEwPPZkl@*u݃Ɔ7 75qgj۸@zyf~ڳ``ޑOo Mޭs<vy3ޞITzͰ;b'6<u~'>nMǑ=zv8ZQСGgs}F0?[7vNkdd'xy8 ߴ&; 0;ai5* 5.ms &|A#PDWvۯ2k'4@D}ZM/@b4Z5ڷa,܎?>|JXoq(7;Ӄ N+&i=;o^v:''.s_WH+3й}s74יx`8sQ0Ⴞ7yPs8,\$8[#:wTp`~8/A0f0q:"ߐ=Tgg=ޒi`y/>lcvn\98Lۨ3swtxww4w'hp_a?vGvij@"Z.Kz"`Dߣ#xUDHK)4,9'OD)'sӔU̞f)\.Ou4:KY%wWݹXTu YͿ^NK)B?vr~~~[)i.7q+R253˜,L)_.Y,yʰ$sws{y~⊯_$YIJ3%=d 3$҈GR [gD__SJqnݝ9o*jV%,yc]]M-jf9enK  RșnO*L`LkQ'ʒDdgEҔRI Us,Á__) YlkeCIHuei"ӿ'.0U2M)8IwBajfo&֤[nPFUq*⽟okckՁ;synt`Hڦ#`cX:\2]Z!Grmxm8Np+D`W9Hm Ĵ}f>r?>HvA):N$4:PBFh;. ʣ!]_ܭdwthLc'wO5>mnGHx.rwOPPpPfhARkɶOkն>9 AO:.ߛO﮳}#t5B ɢ }gwm=8J3Ũ;fFkYQ cFs9,i sԳ7ȄӪexRS<2Ջ5>{P 2@n ..\jx*?z.ˢk\$].EH9ժ/t[)n^Jn{J\]IdZ !+,dr~yy?i% eLsErSfF(tjO/t*_5I1Uy>眒L9I<0$$I*4A'ibuʗu]˅d z%fP2RxTSN䀹DY0ß+EO93Yb怛AUZTYe]E(Z\}u # N MHҼn$3O: d7 dv"]P*0pϤPFpbc!N&DP/TdUJj PU"L3vI\͐×XV x"ȦgrwyJfsNr]Jg>'j=:VGv9E$wl$ꆨmVk"i*C]5g1(Xk(cw#"4 XU jNIiYi]W-gMWcͯSlpc=qw󓬼V Xpώ~mLno8~v l_})&yN`ZT]cݫ9`nAnw=tb}7LS`~O;3Ƈ໓)~A=cm.p#mok,eZ{ L+1l'JUb$(D5 d2{[Yh 99dȬ.KCs37aQE!IEI"8p%qsQЙ!a[n*)NyܛJS\ H)E\ͥ{2e&HsAˆs[ IIS߄"ድ^h;u՜7Ǖ FP<\#16xx8*h|p7?&n24AϰQ#̱IsCt 0\зbJ=llA<օ-kCaݾ޻wN}TWGoY4 Pxʾ}??ٷøѺ?X2_vw$Pz6EfJ c+}]ړ=mssS>h1Qv9{?%[U12S:SZ֒%OL(*\զMrY%Zq%ݬKb#0LGU 92 '%(EÆswMFL<?>[o  4 o[꺃 tܗu ѷ]J)πhvLj8 l%mqӥ-ҰXuߩv5sO9ٹFC`NV& ml{@[_kXo54)y+wq{?x7XȣzKJ|ޮ=;Y$}p<U$?J힟[s)ѓY?;@ Ti1)р0LJ46^aPݰj' U ɽBtAAO-JwX4s֙w:hѮwfQ4DE.npҭhw 21ռYr}GbnV 7tN? zͿRNAank4;p`ށQ ^NuBڅ{jS[ӏȵ[h,.ot%Իߪ,¶~(ޡLH4bd ڶ?"+hr O֑#v#}v!}kM!}O)U"@n~tʢFz#߮+yNi[QS^Z 垜/9%[O)=?=O= ,s%1IN 5+̦KNI1d@Ny]˔s!p]_?^'I w_@#$Fײ y9J)9)`nf(۲x) &I1 u[~ieY"TU5mn-HfTn^|̈c1W SX_.)%V99u]py]"I449 ̾~}${x#a EC`@U].D`ߚbI()$3UU .…nn"jjfv#X9:j!n9ClAaŠa5< W"DcPAB(> ms% TmhIVXśL^j&2#ϕs]!UU?|U)e|}D+ݻ# lpSn~bfFJ^?Uwc?q$[CޝRÁ YN`'*9^i*wgٱlDcup>7[ q69&[H*\=*ik+jߨ_G¸IvENx4Qu>pUFV*ʫ۫ §)Z9l8I@+V IDATA3INƱg1cb/9|v@vqzzP?9eޝʷZ1Nz|A:wu{>"ܝ7toW<]#XyLƻc8>C:}vSW{=Ω2|F9<إM1|BDRLrF!+'tI40;TAJrࢬ0t|*Cؿ>b|YPF |颛*3vdw@|lw#}t iCOo(YU 0"f;#kHJ6|8Kqx=A) ;VqSW<|?eѦ}6FG @};%h=!jܽ%'NŃa`,V-ٔN˰&^5]:\AxQ#7NZ_+BMn܃n(.E2JhshnαGίz'FGW@PSvcwyV=`:v4(~$=:!V?cTxr-fC RJuj l9HdG}#Àf" ;j" \ ?GyoPHwǵUrVqprq5Q:@6@a{g}m~l>4lCzlpzU)~NR] tfFcVDIR 䜭O1_,a"i]< V]LȺM !p:mgY/KLy23LM@/旧'e<]TT/ϫU `07 vmy .^ϲ:RkjڂZǖQ[ "K0@LIشJͬRʦbft3c@d4eIkձz)۷ek1tD(:9I&bf6|\VЈGɪz5j(Slko<g%˵F2pIZ$Aq0&$2jt| XV]UR+}z7͇Q;Bd |WDH^ĘH4E,B҉fq]$D@hqfQ{aY-+ɜ:/SVWwϒ@QSr2?ev[M^_EM)Dtj5YE t6D$,#T*k%eJ@C8eIcV޴]Sq"{8^>Dv"i#NIUH< 2#; +]@]8]αֽ!!(8?>Exzܯˑ~>Fs~36ю [5֢9o:׃7;41YM2ojsm>CgTm;3-sG6깮<zv7BFӍ.vg&+33] ̬"5>2+ ΈS6W 5X̜9 ԰²M`B$"tTrÝDo,{.G @xd_9 'ӅV V;vs}:tÀ~n;+~s|v/V 1EekHGݖۀT'qpi  v' KwUO4gOxYd<}2urL^\ˬ%QjFX8W{YJ2c ]Ƃ6.L7L>G`vfAmWqÙH-uiu 2jT2![U-"$_ފRLr}/κ9gI o_ w}۶/b?lK3_EZ[Dhά/)$O?WUT3$IiᦪZP#e1!n֠)v,%QUXfT$7{iR?r?) ۵j*>fTjjdJIH0DO~Ui9!o `~~V7ty")E[[7UbbUj"0U3;! d6;htQQkU$SΙbfj1 vcA($]c#QM&Ԓa9i;ːz_7朷-闼'X\rv1C۸*ۋyiZMJ+Τ`8S4&F֮p? ӪV9*00\kS# aV"+/ϔ,~˗/sVfV_u쎃5*{X5Us*9=5L'7#p<tBAg)-oZ3RQLu7Ufjv5תP2@&.5`b?-Av4C+3׾$~'HK! Wфci9ah1Ԧ7fuQ*e\"h) #pD >GC6,-~_]8,>Gay98BE=↧9of21y-8ׁܰ!z+PkXgvRqm `Vþ;LZJJb -ᢉUb"M +6N?g~qɁA 5A0 p6(-{V9/"ԚHK4s)7XD!(Cp=]Bv.TFw{cմs懶j,Φ-̃# IL瘯iY>$ g:xze^Xa<:(|^ɧvf[c-/Ӓ z~_ ݡ]4]8A֊k$#hq^h&l6$.G=<4'>eN"GtVz:r3<킝\J: <+@"s jd0SǗwظcXHPDMOai)6WK%-E:PBxJUh,v5m{z3K_Ƨ_fZ%m[-_ߊnOOZq^+=?˖Lk(]{3ILFJi5rUˎbU7ɴRHΨ0 d`ڜWJ $%7䈎f]6PѸҠfux*&橅J)E5(ԐUz{v+Ra&(Zդ$*Uŵ R0NP4ѯ6͠Z%e3{ZJLjREɪ_\0sICSrP|m) `iAuKVII(5&y1̪gsEMVA$~Gn d#\(pwSJTMR\idƬ  )DTz!)I5SAeX$ 3Rn;A?A~͹)%ڈқPrc4ɮ7jKzG^Vfx{8CT'*ub>PSU5s0o؉~[p~C/v< &5{}x6g7[^r66}U#ֶ'`%*Zx.O/'v C9NrUDTIaVs [ǩ~!XWAU=IuϔK1S=*slyl1/ iq(q8㎃{Iy#˽B,!]ޠ3Ӟ:ۉgaif-W{g<a0iir2IaoQxoGպp=nseF#½ Z:qiH3l}Zwu* 4ea?*[G k!/?1gI {aБ!'6@ؐmF<\'J֎A Z *WG CDʸ i"*<cct6v$ >Ɗ#G"rkPC>#{1ѿ@ <۱-.@.7J{qc+8 êtX~J88/J9%"]fWFjwiC>z̄Z4 6506^sf/a-'fz]u1:N?",{JvA=A pNdvP)"f&bB8>bZHv =t;;7>\smu\֯Z$%IIHP^U!"4Io {$)/oo1+JM$YA%YJV$".۾גL EjU$H O^$ s˂=F܊˶ռ**s<_ڮB&QcahS)4GYU##nqI0ƅ  %i -gXQw nCk~[9lG ߁GI7sg>;5xOqS :nU_LiM PƩj@s=&h8F| b? LfJE1\ULrƴY+zBtO֬}VmfT6s\G?g^|Tw<w'wmWWNc9Α{Ƒ>7mz#4HNӚZvؘHFTb ˥W򰳱8s]Nt9rby ?7 =.򄤹3+A-.2WﺵOvMj L7lxN@ZC[ !egap-$ u٢.a;[bD@-)q tg!k(<36}t:ypdܣQơ"WC(;O?Vv2;+NGc!qǿK [`8V8m$}ޛMF;udG#8h;L~:|ԽNsWH *qI <ƿ+b2vma;1rb`x`? Fp\[loe73aUofaJ\JMʹWfz&ryzL3يАjz/_|d{#kث"۾B1$IUPHA-dZ=@ZAR5$Vo?>OӟkAz*EeE D$+/u D-NnaYhPGF{)y_nVA !,T(m[&V XlSҌrFPH*E H"ZrKNh-F U$OiS+pk]E=I`/0gؒ(Ԡ9DA$ Une%JQE5TSnOIHm13K9ޜjz+dJa;EitCHT\%LQZlW>bmؐDT)aUdBO|>ogUbsCD^{!XD U5m[)EL:P33a쬥AVIDri6V݉Qi˼ f9ߛ,"L 0jՑY1%ǿI1qj۶ۛN~eZ t%3qKW+1VuNgCIa ׃, htٰ L>` lЭ9cdĬ{N;ZLPV!Ѯ(6Np;HSg+q ޵a&A;,!t|KdH{:% RM]CtKpw-h~kI CyGֳC;imjv9;>4>aYc"֌CǦSy; 86$ 60țaScSѪu:lG"}! +5[{YdM rS|ll(̧Qoϔd}a1Z#vzc>6Ci}z%c`-& A~;LIE lYNo3M͙C;MLHڹkcOhN쀅A"S0fIn下_cHҿӏr Ow~}2=xxrh8Yf)y$L[."#񖣱{q1vw "pᄺFR1bP'ٓt˜ xjH”n0p)_rn|IhrhP}7Z1Kdz:lTΊؖ7B~ʹWaE|V|{XS,[=oW.ikjvwC݈(hl†]I h3b"w~ǩ RwO@)W~g@?_Z}%5î u备N|<.ϯ*GwjY0 fl ?#CNINfﻪ̴itR˗3}}}\.l?EQ_.[VR~~~yy{{-`?Z-]rVO"je#/_").)IJZjݶ^Zn7'Z, m__ni{~~y}{ȿ׿H>=]_^i=mbZd`E5]w`ZEH&QXewϧ*b]w5HT3UE-EF3z I p@ VCq%II0%#sU$ E5OVrN[/n33^r[Φ&drySӲnלRv(IF@ADԪj(ȭ$Uiqq.EDJ)(iWLMiL JX_" fBx'[3ZTU*= HzWY[ Mu[%TlUjI y1LL##flZL$whTXܺ0#& h(?N V"֔V=#tb^rZИ1]F[ x ɐ3zI#Ya kzhyݝcˏ~yN2kjDZ㷆 Al{#>)tl|K5fVǮ<&b2B0%&O-aU ϸZX,.iLLIǃt0ڮ!nAP9w3mia6shH%j_` sa^EXX#T ]~s#U'3z׶M`ÞN;׷W~$Ӗ+>x.NpIrRܫN 97O_{n=Tgj}g;8VHgpR?+;"s's˸hBFZmůQ$eiLf!! j#V:} ✾Q )f`'+m3xD+֌~lfF|Rnȟ^Ӳ}y.sN>-}?Z~ 29'DG=h_Cxz@Wgjڼý$ozE D/~; E AQ:!YmJI!$ 65Sb PG,r%b@MziУ; aMѰ!l̏Te^ޭdsz~ [>1?h N_O<ضrzeVÞxj0k7TLK|^b nZ4NKYa#ݺ-Zlu=qM3~oM?9Ǖ{px$JijqTw\PAYZ=^ ;Kl1ǙT<ɹ\EKU81'v ʇS <;uJBCkDڂ1JGmJN8[0ZE+18B(5~,e#=|4<~&J wCzt}ko"'fʢO^&9~w6v/~Lg/S-_{8x.R7Jt>%F&BZAeNvs{ |8ukx oS/&Rq_z)7@uCyC !,:yϵۖGǕWpqD48Ik=>ewԱ5d$VOyv7/+>lT{{vJ-4okk͙{ga tjD}K)#-jcm~k F_q C7EI3fZ[X3EibdnwjRO2,13~F*h?pj}Ë]֞# Hc1;H q0BMP"NSi߃ѬZ8ʵK|]ii{pՎ~e6mY,@gi}^'KDz:;iC1r w_\FvaYo39mJl8iPϻ[X %SUU?L9תfVRjf9y-o9rN/KӏjnZ&$^.۳YejRRM/ VP{)fZZ ))ghEmͪm9ij&TX5Dm[ڵj--U "YzS؋U%%e( OzX&rz,`PWn6hHN9CQ/_^7 XP7&9_~OS{yWMPܱK=Q 1bՊj) ן"dUfUMQi#-|VBR6+Z)fHȧPހ%I,T3aj8~Pa;kLR x8. hZG)pM޲gn>uGQh)mK?h9 )9bvK)QR5#hN1{&pQk>b4T3sG@[+hqN`A5e|t.N Ą=)k夘PhjKmBsgC8.4U"{$r) = T)SZZ`Ƽu=YA(I)ZTMxy8}_Ô0fK@EH8X.Ip巠nt0  mt `lkۻ`\Oj r\=$(LD6>]^KU?Z,|}7NHUXn1:h8ػ^5 Fm"cl6\Msdiw_}2NCt/z֨P:3$- {'+qG3Ӻ[#>o<{et>n<7sw't$#Z^z`,VT;<:8;)rs<tƓirRĆOr4ll>^~cx>_Ƈf_[3|>mA~;L{8my{ǝ̼to5ӎ_hu }g:gܸ2mf1 4 'kQ8<iLww)qnRKs^]f2yBVkfg6iwx03?>>kPku;=yGe?('Q1Ѹckc37~u&2Z[{d0d+9=8GwP;כact'4liY`dS80zfG]1S(k NVo(>&؁hMv6\gf"5h5omW5V5 }Drjܲ/BjgrX6t49VLf`?.!v?Za}NL+78Cdr$_E j <ev4}Yӽv0W}yc{yb-̶;÷F`:).7+{n^''f=e~ 3{Y5@8Cl붅B#LÛ0no8.-q & C7.H,ϡd6wzbdodb6V}<ꑠVɌ{E91&Ak~ZkJfERooo7Myުײ_///ɥ[-|SR޲>o.*E6U"}]hEANEzn}7݊V `L!m~=J%.r vƌf7U{gDX;qALC4'>`42Ĩ`Aatn>N'vw|'R@N> mbX>Ih[=xmw"A䱌g=M] i& .a[c؝7wv8 業FWe4Wx7SCP>O2 wt=> 3Ub;MO+)>=~G9O?y4o_tijFA]]G,^>϶M`m_Dr &I'N gl+Ըsl[vPXe4U ׂ&ObUhbIߦb"ez݅iՐ"ֲF% }#X3~DB0ji?zh7ak hl;ALx3> 3C>|bh{`:&]˨e6܁^#qṮϳw ZG`C|x[ |޵k `hY(i)m29>vzKigǬ4fay4<n nft]]HS4#~xX8308בuTg6c|1@M<1 z喿c~"ܪ{S r8Emt$ )^Hn<%j'`Ls9 G\A-6dmM{尪醼!V,-ggc\[ "Ш@2iGxm:ƌQ*TU"RQȭ^VHҌ$i9s]jy{XVaRRK≚/g)k~˭k-jZUDDD"Rkm <4Y}7Ibk1fI+YeW9o/mZ"I~|y=Ur㪺 )PU$0s2*V3 STRnZZTrޤbZX5f,$9 ժ2lHĖ"05SôLW-jfJ"{@(ffj&Z ̬]_oVFE0 $fZwYǒ:1J[\m` –P~PT^ZKbefJI*ȧ/,@;Tjz6JQ\)vSf/_~+L/ {)l_^{^/_׽/OZk){v^~24cLNDFÖA2BN*:-Zkt̒eϣcHd(|zV|&Hi:qy*8IEO}Z]caz{z-!3'xSqK$A ZV|.I&o.qBOB;p7N}>"7ՈjZRK9, Aw5Ӵ4'Jye 5^ޚsٺ9EvIb`ܗx.+'q=ч w!>&_Go@\c9{#[e![9k빋7jS+Uӱ&MH4d^^]\hmQhiZ®)kV41t2M 9yA9?7='qeH.rH؞2ߖiU'񖬣vȈ:ޏĿkmcE)A$]Gro\C~5=tXat=`ڑQ<I6JC.ytL@i: 6a$:fp $2}w vFK*IZspXuD3ۨaٮR'z fkcӧrvrN`Q1-sll8o 1R!ٲ9o]CBlMՍ|GVyq^uo1`ĴH3$,S-sSx5duihPfä!-u$ppd2! 0$=h' lj ܓ\݀ )fi-1DD|vGMlhitx_qU?7Ck/%L!횟C-LڱZR,cg]4uϒS;Yp烣[da]Fl }xBdPHma(Ko_dr;H< a@@!N`ݴ;/][{Z3uLU)cURsӅ)ъ 98+_V@\X[+#( jel/P)b3ϱlf@673J$v̳m&QYL+h@ ^V#waX"A3J)t7dhEj՚Gx0#0S)BM2բoZnUQI+fS2 Vorr41Ӌ Z_7OI @|ҮeUg`99 9tW"m崃y:S 6@$ہi\MN}3!;Ul FGQ/0,jJ}-SBJxd$i]F6n7+:h~+U\B _6&Z6z] ? `UnŀJ $ Uk 0F8 qc9zƷ1P:륽ёEzwpC~]~Rgfp‡_q8EgՐ 7,8G\֐Tv5H7ObR wO36B1\Hk:p!- h4`;=Tpޖ0Q1EGgm`]3KXa[KwOmx±Ir^}6ZClК|ڶqý` jhqikЭ ֢i vnӿ L6`3&6%i=poi=GW@lLU&@^V@PX$O&&nQ系pP؀~ފa 4z&YISy{Y$[XiQmtSS5kV~l}=@nGjJFG(z kmUEmv෺""YjOv5BzZ=c+؋Ձ#> pDk2M k,1j:`i>U"JB?h)[WXdh0qXQFC$462h`_g-[(iPDRS~133ENsHJ)Zhyٴ2m]~-RI[QEH3% DT1eXfXRoed3ʒDLI^,r[xժL4U/Ox++))%IZP n~Β2YQ 0^̠%_^^$0TkMœ F5R `Jn Ӟ )ׄ~]..Ɉ!F("I8%ḓnP4?|լR/*|}K[J5#CT)P#OceN}`WބYaPQchӰzZ5\x==)-G0˔LHHIvl ="*DfkUV=Mg]~?LR Aꌱ~@BI vw[=o#z-0ig6ҎH }X#T16ISN8|#欝s;20[|#F-*φxE%W>^bJ&s i?R/_olU5 pR 429ց ۷E陧h$l$zVчK"f-R޶  Y=R 54 ,3~hL[4dxk_G;{` !;;ӑ6,^~ǹ;ЇF&[V0GxtorȽ/д-9RlxC䅙[8'0!XX7s;{x1uޭu6 YUQ+w:tDh}QN5Ny RZ8eߖcL VIXYӿ7J3@"+ǂo8x>-~GQ p]rߕ{plYoߵ$nvEpv94~V_*9{j[~˱o/wߴ܁fPOv%Nv0#vqbNv8+)=-_cy IRM t;-DZ[j]` V `=+̣6 $ aQ'J67PHee FS2by őoiL6^qi8fY>Xy6G9tikjn\קw_G]_oԏ-^yYF"u!1Ԝ{|AѠwHzLwO}g׮j@x+lXQ`+|vd$&תZ~8n;*/ޤ>+~dfQq$;)bqȭzF0h hN9W5ovԋ,2Zq:;@O0XaN=X+U wX=E?HfhaشhL?I:bMVɉ50%$)"#,ʻ, 9,]2|8E)&H*|+Q]<ֻ>=XkWŻ5@E:XsC`N}mzҗL0yQo~#E<"3miffL9Yu IarW $ΕW™wi4wģdtf̝+SwZ~#=ppOS4`fz},6~}&k&Ҡ ] |Jյ@)$6+b pN \06pNS̼$tʍTi)J5[iJ+ ♍;Y /;'$mz}f[wI21 5Л?4ds9g+>=Vs;6w_Cٓ~O!$>J] 68Ҝfx]"uhTT5ux/iamd{lvm!)mk9%[,ibd3u>faXUDwCw$t"q |͗,b1ID:\=WTMgh5/_>?9o>]20 ,nyyY3[uIrdr~˂JfuLZV7N a $CK\RZ.__,7kz 4snL1ՉUi.kJDtɾ-d "JHn9e,<_ \yໂeJ$ IDATKYnN۶qC s@-Ifɸ͠4pݣn~ArV  y4&\J^|w0KkLY[Fvm.Јm 9\2+>[BmvI Z: mr@6, 36(&`p0C- 2M'KU| ~SΤ)g%ReDe |CSHhv„3Da.{*2 bKI{Qu[oH ,]6dIHM|Q$u;-rm4e\6&X骴3Vs!>bSώmv(H&o۠>~EpYbdI.vvB=u05y?95g= | \?B1 lY9@b,G=MXj.'BCm{E i<`_t/$j!Q! ?2&ࡾLC@EëͱګcpȜzYP*TKUdOړUN3,}N΄ ȃZCW{=%;s7͔*镙|mJ6>/| qW>r0oN뿹 9ӛ鞏H|ÿ:n_Iҡ|~ôwF?:cohy~eWUUaA'Ev_\3>KS ܭ̦h##<1Y]QrR| Α9|x'n]pֆ<2(Ʌ_ GAc;$dY#.r0E8s5&Uy#=Jh|naЖDΜi?٦74SPG| -UԳBQ5Վ~FOy deM'ľ&,Vd#R63Q,o:e# ɠ3*a Tx5n 7hMf9ؽģ"ǒz&qS(FR65寪{|{Txv cЅ KIA%|R ")yP. A׶#ycO%Ł P}Q)T.d\6Sw[|Գw _K+I(8vRRm|Oq\aaw׭l_Ϥ".\ 14tDs6:ϋc8fE e(F T 2uNR]G_+ݘ8WǿӨ+$90>,ל@ʘ> 9朵b)bƿ]?ꛍ;?}KR /bMXkpT7aIY6b+hPvnUK;\ ԚLћ{^jUQ¾qٞmi·xwODjspsǑa~4?8;ۮ'ÉAa0똟s5XD$O1}K #-ݿB;G;$ߏ}aBopީR{@xp\}hXnp.MEt8)LHJWjK÷sHP*3#0ycw `רʵqUVo\߶3wX~WQc;פutDLN`@' P/Y= dAvș+ܡwL6Gg3YKGY}SNEɾWFRq468n&RbNA GbUؑ1y VMAc XCbWMjZyGS%VLxJii 5zGu|Ce )D#;$C 3v50uZ1qr2 7 wЖͰZ|C:twߐvWrϸ7O١sjWSȹ8qP\ U࣎|]& m3$%=ɳ"RmqKZ.RIK!2^.'m*]$8U |_n`Z}ֿ%#%۶oeȭ(UT㳤0Ch a "["F=5?TVR"9s \%=/e)AZ\o%Km]SZ|YW tԼ2: FY2L4(&UUA2ḏ7 3.K|Bd -m9L=1%m"]K08&,kF|$'KXOj~c\PC4۵"5:tĆ9NLm)0\(-it?~ބJDێMqu$ @9W۝8rr/K$ vY'Q\E Dy]2XlĂ-*m?j|Sˉ|'-3 EZ2h2@VuIT@.CVx 5Q'0Fڞy71lݬ=cuI۷7 ס 9fe<C6G"tK\Kzuʶ"Egv]$zݪn7jTEܰb85$G&,!NXkG FO A(ȪNS@q 4+6šmΠgܰ)&K.VM1P*37'e\:~-K5L;3c'\ۉEZyu N!Z3qzt$;lj 2_c5 ;)SC( +hY'2΂HZO kr/sQ>v^G؜p\mbx?$x-ȊCJpVIPˈ Q*f=U9[S1 mMR2hɺk,Օ\#EC^~:T|hKgM+ >Mo[i]hxo1^ u,ΞM'W#lWM7SfN_G+k8)&,gmrhx;s"v%!aR=Uh2Nq\Å3?sh_Rl=t?[763t2PW,[MyG4ڨ)2 *LoťuTi0%+_]B H$ RT3W*3'~IP{\ӟ'{,O۶mYs6۶.˓^oeY y]k5gH)i1d `C"rD[O]KÆI.] fّaI]y[mIk hq(ɤ_W;m33̶-Sv'@'dB&O囊qQ'\.?i6kj݇ ;ڮsq.̩w'Zs7i[w7Ym8Lؿ~;7wηNs4]j%Tn 5)юzE9' ؙ\7g=|X{?ΠjТ{ٛIVʣ sx`T Eˎ Sa(+P 7Z:N>.jNg#]x{/JKP cѤF*b8 $ 5hUp"Tr%~Ed MZˈIY93 uAQ |,nTU?C"$ZCk}WLY"il]+'o?<`{9D(OGo8=Z9K`٪LƳN>ˉ tWA`;Zrq,oA{bc:N =+7[d$i^˅Wͨ O+mNyY<_1i*7 y"T(,$t'V1vS -mjjcϟWKOOOK9;fxF+ ,pcIvI9/O䐥 Wz ,HC㐖bO@g,ybFUrsήt>-Dny{πmnק'ݾ,t\j ۚ#M%_.) `}EomBKBg i Oepʂ;KsK?xf0K4_AZZ.)7_ç&|}r󗿬#4bCW+h1%ࡊޮsD P5Fύ vgS qs`LܲLelО □0eo7"kW88-Eㄽ5whFaU/aTev󨞔6쟌EP b58$ (P\rߌG\:g]䴬QZw}|tnYh 8vc]FUd`<0A ԡqgKd-6ɁSy?0{?|+~Y {]査to^LzY#=~oN;xXwÃ}7gUŵv\(<U]5f!Le5^, ElypI\+_ U7,jz $uBUw"Hֈ F+r0FE A3QX{ /B&zW'EwΛp@f㴳!'쳒kCs As3)O]{n8Ld(i/Yb72eRl٣Q5.Z5j)=퉳ֆMO A7_1mϮͬpZLoF ^ vF/EfIJªiK½*TQDz]\ eτNg|ޒ, I>GݔlNT9XRH'jBV2a\T.zZ>.]=0omê>OI׽}޷W9S?sLj#s.sw,lr;+/)S? F4 b#d}O~~!*|;MjOcϹ^pE)A2XǫC4`U Z#6$|VCͽ =׀,G{}FTG:o26ygY(oٹ>-YJ|iY1bv] q{yzI̞.&[V'eSj(k݂=oMcw9d˶A%ryZnn_,wy?dJkzP)YZ]?_>oj8=TJyQBZٳ@PErw]UQ(g=b Yk6bD/.͈$dWZc^7!$$Tfj(`6eSwY<["gșLkF (ӽX uP5e 4^J.rXJ~hޥBre"-H\wK IDAT-x}ضME/Ti$+I(-Cy:|:BE::|viiV`d')?'04^u{}Y o7nn(fTa"dCJdl2=ul|Q)U)Cv>4ڸw?hMqw5|24t`:<`*g!輈C58Uмaς)];@}j ԦRPWnIFGv(H4W;#yc⦫Z#K~Fx?1|%a`Z 1WJiG;z3 Wf"Wſ—j(V\X}" "m(\jYAsxZv}:Pl, 4l!V7e(Sk4q0S (b F/󰜠ʐfWM+%lyP ?f|Yk [F6Tfqf^h`_5*nKaמe#6] >$y=53#/NȀFS,c9?&1Cc7Φ=L<<'5Uß@Q K͝jdb_%vtDӯ`Qy1L۫x?w|.DRMC;;y"&rnȎ"НR<4e%MTg@"ny¯- wr\>z ">z[Rr. E`+~;fI7߬Ay ͠aGRm&@_Bx6ej1jqOh?Qkgz/`21HB`I/^ndܥ=aÜڽ>1bg⸩;PpdouIܕNmkDE*̜; Ц!;tC o?L @/pK,>|HND hj(BeTT6BٽDF\Qds#++4^3;o-}: ?w=@^?HdrnQεV\ƃ6kҚ3ӊL¸7U>>;\s-1Ʈ ufbCԽ2 dx2_L4.=0uRnhNۺ2ӇDoЏ >oVf_٣_Wå}KIeO?Iע !bN?hqAOzLbΥ=vAz4g@88I/J,)`w\F.DLthǧLrTgujH7ш46= MTL3u#5^``'J+[ ?lc彭#!QG6X wu=̱{O+1WSڣ/9c}jW[a(jv0ڝjwp{FQС}j9M{vC'P w8N(@O*;NV%kSCl[ƒK+<"h=[G 3\%VẙB[?SxaUcQ&aF 0y"SH%BH)s [w=B}2n՜byFn9^^sވ_r5dՐ7rMf[%qYeY+OulYNチ&y#&QSV|Uv2Qɟ9, WUX=/IA\'@1Xvh~(=ؕ4:ZWZ~E:= PIuto NCv L253@Dw,:#{؛+O_aQ5CW/11dj5fM Z7k]t ECnEw]5:J+P}m@im{f?g?xDid~M?~?Ƈ`dZ_7( QAۗ<7wa(1$u-MT‡*1jߢcE¹qӠ s8w|P,Axі)sLco;j}Hc;#L=[CS6Я$C (Tg7`Ѩ[x)>3 p*p`.IΰTa}NpGsX JtqF! &F@n[WLP YhA笽&=%dߛj>.;pJOb$-:^vu減؟7n5FFC<⍱]wj!ϠTL#F׈J#?n&< ??CUNns"C+tOCҚ~rZe gkO~lFTTX*[rxY&@` !1yDlTz.&q*S98BB;n`X/y6T],QKt^G"\B[S$o{i8Pl.+QcGD};|Q(0+ܔ`f~`rfXc?8jzsr1JWPy3x׏~8:KNHPjpbYuFg PdR Jʒ$A umsBRV ,hsvIGQFd̵{hL<DÛbSϠE_3GDrڏϞ7ɕIz~ G˲ t}^(\!˄l9ے*D,Im۶mN,bKZY!i'M72SW_YZ\cUcO߲g_mB:߷₨gA ey )\=w(JQ-|:&V  "/,΋+ВrKrayՎʃRy{saK\=$&KBt+ۡyʃ5dp!DH>m-R tMۭzjWV$&[7,15%d\_nL\n_>SzQ euޜrsή E˚*[նm~@rlщ5L4ȌV=^ȹ՝Ų^^QHuE2lkd.8$fM68C@ˉ\8iBao;AΠ9 ;=?jr_"hGW*u]jQB K/OeN n.XϞ{i۫!-YFZ0B?lk:٤&~TQüi}x4p#j2ԀBus<{ΩC(luU#2ކ&Pt 0#XO>־m$@e"t~C7Iax{ VO]TwDwz=>5][q~mQ߭F8=ρ'.`;{}߿}Ҏ5~ߪ{L0_LQώV7!#0n(%Kd* cwR+ (OTASqaf8`^撊pA"\\^7ܣ^P8z=[gy&>*Qo?նᖙ IDATRʁ@vj0>B˨tz_$! dzjRNGZ)k}l, s;I5K WFtD0 = 2Ah '&OA~{r9uaMjJ>-CD׋~sfpIH!+"MŨ"Ӛo۲,h$70nc-IͲRΞRre?}&ɪI(Umn;7fɥWIpjϥeI {[67]]& _:X%33KəK + ӖER\.u%epek`(R$ȃ^F)pi_t 9p,-eBXy~z2-gOϟzY}j˥coQ:NG k~%t^i7z>Gb*``݋[6ݧ#0GTCLt ؽ)z!![0"{x H%΅(MyS~ *lr.z5X.E!2XVW$mfKvd:nUxcjJH0 >C mq!0&|zzn%h KJ6П?7xٷ3@`:vp<5ޔ ѣ]mt7)$ wN׻{ 3K* cY?Ag]$uu{?;Ž>[Lw$̪g(EOV&/ ĝvl?@r~Zó4#'+D{瓾_ öo!Ef|Ԧ{&N;9|ht~=7Xb`Ŋ!{ =|C!.7B+y ~'薀rGdC~AWVcFHQ`iaeYfI1#s\l%i-r?^D'~`m-/ }XSP~!gتd]b2ƒ@@$ G/2ͻ|1sKϣ`V52.*0,u+/$o%_0Z܃B= t~Ap`~KnhAt $]fMun10d+7Hes 4No.^L\he6p, ðI߽К,5[zƛEh$M%Ɠ8|Ft ?XK^n~vְv+e=ڪ}?y;`V>)4l;B+֣=#'gf?)C+Ec8]jj+vy7y,%ejOz_ˆ;(}tqxhhx1f<<:Hqo!/`ez#.w+yJBb?2WCR ]wR^^^^^49`nԭ&L1tپFl&Bn{#૑"]5vf F!l3X PJ;KkG/J˗94,!fv{ q#U$eBmZrqtvG.n]7t,j(BiE;e^pQج ЮK :Js7?E/'k_<u:ovTj n&QqPҟYD'Z?qe{@af律,Nb|M;mA<Pӏ޴R.vztrHk-D1Okr%68[cNU!q#!UZoʿxy!9Q1?"/P zܻC o`J2ik9NO3s4? F0"UI_/ v烆%;CdACO":7\f[U˟y5駀+^l+c v;#m>P1 ʅz8rXNNoA6iitlkHD;GX(XdXa9}$Q wtGw]"%6;scxKb^ͯZdXL.1t!ŽSZp.09:uyQvDz,?R_.Dgft|~ML" 采)8+bD\L;b'qz8yM4B˶,ì1/"ȸB: {Zxmw}]JDd leA"ɰq O K?jqO,+ʥ'1bnxiIp{rdhZ Ѝ /Ս b@ENW!)h0Oi`Iz5qɯF0ux=i$S]`ѯgD?G{tkB('&Ro5jD&[܉ӬX'IVmHJvsID&ծX%ݓG=zbACuiHZ͌dkM#U{d:*pjW 7S/ fTB~+LNMi4mdz%]ozK[g\p N^㥈\?H޵j+gNrfnFy}y7_y]ohiK6O%C`ɵT/&l[G1177!}+a ΊJUޭwĘ.p`hsL>fG07W4G@q?|rnj(kkۛ& xR0* $Fb $7zzo7}}~ se=FH+uQ&|oxlKZOg!BLa6QӞW<ś~TUvieU~?\ܙg!1g̏U|3RS|g鑭?}7"llR޺/h#) 0#1,[b!C9I< +dVnvwRd%zN;pOh..ڿP?ZOlpz )e2J9o`+": L[wiDHJ{O6+jay&sx7=;"ُd '=܅p`MXs֤3 ejq fgphjE,D dcЁ+$D)nq ˓^H]JO sm/W&cb1=oh;iŇ*tC94C=%ZHXt11䅾c (f .ew`@ڸ*2o4ԜJ G3F> =q?9xJ0i3B`Gmwm)ψ~d&t:N%/7_I]`bv6(1E=fs^Yd^}|Фxxm~(\@v2#< SsSo`C"O; ԞY\3.4&]GVVQrX,~!brxry&ytFA5/D5/ "5bi;)>^Sm+@ R[ _s~eq;GGYJAB% )azNqZD&1DtY YgϘh[lZ^"W[q;{cR>$9C+-, de/2r䏆|9Z2EL0Cη;諥Rf(i#wÎ-2 %qȟѤYW0FxԈ0.i~ԗ??Uez޻3Yea/3bN Bq@q2(g~ T7? C9_Dsչ2K^eHeHpR}m]3 Ɋ@ۿwUR;E _:J`no,ֺn]HC@$\h%-*WGH(?>F]i:˓Ifh88*k̃r[К!YKdu=:x\񤗭\&맞=tfd+:RWcKL?ߛUKq3 7?jd3ӨPZ /\Fq/vy u $4fp<^TP0F":3'j,ۈdzڅnޠ]ݥovc%=V\WI&Zm|f%EAxOEx9~o^5Ϲ? {`b{Ói6rV'ne,ORL\#=]M9Gzԇ ! =XѰmȝ  aՆEV7ـvJR|Lk.TjVztRh3,y9A֫|/q+> z|wߐTKU ?*,W_TW6Te0Xz_rg;$9΁f+9ᩁ<6%d>Qnet2o&M`! fafۭ^[m[5i h5k7U@q+635vʭM=NNxV0I+Պ,*V=.`^Ϩago2d-Q$'I9V.,%)w$qS;I@k`.ᜀe J$e(tH# IDATBW¸ˢޜ)Bvhc4~X-fywU8O-a!]ӭ'8p>r {}mz sYƅt ?qѿ[8/JE ~j xvS GDe֝$ʵG,viJ1tS6`tnmߣ.nFUSwU ݠ*uY7B:L?UqS5P7S5Kn UѴp333jA77;W2\>Δ1y_:ٓ{0[\ |֥F=¤̿lKF֯x33\׿m\q}24J?? z-,x2,ɣ3 _E_D#dq8ѲNMjӐ!Cajζ;|9>4r%>pv>[k_c˿|NNo\ mo2=_D|2q$t7rln6EQR"fU–ыh>d +쨳U P2E ;y<\`0^࣡eߎ9q 2}_r99k_ݶ_Wiwwmar?=j4%'/TB8j{]hYda.rpUj9_؝0%'SIz)ϙ7a CeB$'WP?Qrc(UH[[s H]gyR? ,;jMW^AP" un$(O=Nڑj!lqk8}qӚHPyt3v#W!Lї(^+?^UoJH cz_5\__nu{K.F^ BQ( o]~<۷v}=7 S#$in7{ooz3?߿vP35FL[7M`{^S ]q|QU1bRqk0/__|y f4_j_<&ag*;O֊)xptcGD,.ZAr RR> m)v_ğ2{5C˨_^32#u偺5V9<d@0A:лQ{@7Z,^е6[a(ngY86UxT IG1'řѓdc~_6qg"y;`1K,5Wڒ.(Q܏v U% I] Q6Ȣ'%uky0WWŷBUua \r"_څm/9?fk5s+ϟiɑ+q9Qpf9q|FvueKm8AT%a'ӣie~ 3L?3/?Ù 0R*iZv -dv$׉ԋ!wlC\`0ĝH'9@hF Jf a'_$'40 6BRUWvc1:_\/j$"*+uř|9 8kFKpzf%<8 dM̴C*ClLYe@JDX酱ς嘜e: ,(5Sҡrw0WzCPo¦+ܰ_tf!oˣFۺhYج6%,#L8 ;Òl1,rÎ+Swj>*޿/}P7=>|;VNG>hr^?;#ϗm]p^1nS=9\(%PhhXs"M7Pl\?7?ͬ1hG֚D^i.f]a7#E+`*6{C^R36SQ!~[If! zp ~ ^^_[k#R3D;ȝ}:xXHmBy;hFԈpN&iHJk:@oݺ K{y{/q"V{9~_ !ZW~~{y/_~?~1;f^^z///ooof&}P3MMojݪFDpWb,5ʻGG,s]X"vN T0C QafOphUZT`_4Z7XHD gY3S|o,d`QDzwk\w2Yr>aN֭񤼈RG#ERE=~5JxaJ{fҍ|AЦ ʪᒿ [wq_>`+]s`3^͖ؒkvU>] >$d8GTt/j0&c3=oTlLʏ=w;?f8:U1+Z< T2H{j|RJb3i)*=a Gg@Lߗ.a:K;zt)HgU0`^뗙U+1W6$рԴD=@5Qb`5/ sB&94,EWn iT&4tID0xJ-4PΌJlʥ*k$׹ >kt7}#*\+jyi7B's5lyWW5$qSEW-`m\7/)mi.IͽԦ + E3ߝ\O8#HT J;zq,ho2=͞SnV>eP9;q=6sW V-;blD(VIK3/G;> |)9<#IMȵe13;pWjCQ.5 1z% 'ML7` amzb9A@K+eH[SUMp6W?cԿ-}Z|GCo=u9ϋTDZg84"$_E>қ8#o9ppmqҝ@&~ l@cqd"ڙD#`XE3$NQ<nJIS՚M{?78ޕJ3BizDij͕"+I :`jP2FP_hW=P݊N$!o"wF~u qQE`FhnkdQ*Tڏvv&"7iLq+軽`jД>&)۷71۷7${$wckf.iq(+#gC%C٧x-n_A_Mi[Mu 1td{̐>bQCIenh / _E%q] G;}&Es/nl› ,V}g{fHtr00GgO2.E"Ϝ+IaȯcZM- @Ҝ{"$n!zD|~ތ;:BppPV"b~c.[7ik-Wfa a .qsh7r2DQwll=[x;'#XRJ=cpR$X /baQ >Bfۆ R-"yY[gY?kX,6@Ƕ]RLa4(CDQ@$?iZgfe LoonY6V ]\knqo3L?{t?jLKI|9I$!$A^`UL\1ͳY p6E:Nuo;IOʃ760x4` ( "`,vс[ d7S=YvtIf@\@ʲϾIX>z^Q1i#  &,av1Q; %ٜMC{Z=I4 6Y-Qq!֍5,זgO[Pɰn3V|{Ͳ}Vچ 7G>Ñ@-wgHC"bf^]i],Sf&-f,BUZ_U"b#v=)@rb4b3 nP린 f8̔"~VeR;Bc!#8\V"~Ʃ7s]w/̠ n=2waޭ99;Loo`-V$E="f[Fztb#}ũh./⛪H!ruۯ{{#A?!??~ hr?vN]74u8:oC 뙄e }Š*_//_.BU#ybO~ jPa m%OqJߡRIvEŨ)5g#F-j8/?jHm&46Q0#oMu6ALg|K -z0:$m'ER'Oܶc0G +K[Opl*%dlZ]Rtr Rc;[*, 0a48 Qɕ4minݎąz8,v/ MfSd }&dmy ĥ}KY" PiJ<r maJ|'y9ʸ&C"]ͤIlFY!^J͟Rah)KBZe&0nIb-13!IT6ѝ1-G\\&/y?P}H^ ~g'+}]3L?eqi+AQ֑s)3Ku[YjFFFaw0 7U$T(#T`g RJI-i"I*t]1@H1*LL2z؀WKO )SQ"T9 jPAW,R`U6\kt![O5_n0Cz/+?~;Ei8[W@wӣ7Ў~W©JAȮF?߾}z޻"M}@Bdü^~֗A\|, c^Խ)To7뭿W~2PoD&[puY0רß@kI&n+}=[gk~, UX0~4|I0Y6?$t+,fd(L?__^~@/jr 8^c\ 7[wUgCop0]̍$)6JM̉-N&ǭArxXG4kBi8J^ϟ_ʆ`TH/2 _#w1v"XKg{,E~笋bdEbŠ uhhk(G?@n`?¯BlW~#Ea}=`S{=Y\\Bxn-)Q0;'Xt#2t9S}u1c21_!u un(tY>ۀs\yc |S:M|ȿ,=&4_ӂOk .{m<-t|Z[?ҟp?4}s3͗*/m(32-(H\=@3ȼc*R+4fBF%wz\Cn8s?9uX=&*!fN.{~XтTHI]MU.!SIgv=BɁAn1rAZ,' IU:p.%0@I|Pd¾8)Kި);S53;8/HJ烳WTI J;)J˛^$9MT-MKEu^o6[,NHa(א@yesݩܛ #)uG:3>rc8&Ue^x>2)0 ^rWǟ!/MBC3h}9mtsx 絉}T@J:+AZ0?_[V`y1QՍg]JGs״8!ϒxn{' +t7GO˔ĭc?o6NҸ^J,\W*X 0j]4D(244 js Etk%(JVf? IUޛ?HIvF|r]-ME"j]zwJ K'0-S1)e/ۿ߂`M'6nUFtw6 ]ߺf|]ځשan&*7 :ђ[ޞ*#jn@CH)p>Ks0P"CKZ0T1&)Hܮz-0te%UٚE7Z3Y~)=ڻ 26דXq aI^{C?lUb1U{= {7" 6/:lV KyF_<"΀wH뀉|Mڗחx{]ݗ4}wNwrV)zyZV7M}"Z}r?X?iWWx|HΈv,sd ! #Ovߪ dE-N)U&{y8Qiɜ-$MKLn[Z]:5SwA{8, ܊@wTQVddO̢Ҩsu9w?vڄtiizIz~3_/x*^}V]iAE>١هAQzAo)F2# ـHNb3,ɮ*p6992X 1agS}l>{ BW4r^@J#ڛG%"':wݼ{Qf0D:0숈clJ_wpSrsZÅHjf+, vq nɽ7㒉KE.bB~IXRtڽlkf} )׆oDpI)pRM@ ub!=W x{ 6;$L㷗QZz4j DG{O@oW5iڨ^GG#us ~yJ7m-+GԸR"qhyB2lV- ]B-F<XE?7RkQCaua!*0)0L:YƲr Ii, 7@7_3}gşg~fG8v2hV$A\!cAH1@b^"2M@PBEt}Fݑ.||lkSP1p @rju !+NRIoN3?&7p74l9sgɴ+^q[sڣ|!.)eVzq,ė異_ C9CkIN{%N[{% J6OtL̬e:%k행}"^g=u\/M^t)0`΀ˇgCf$`M3[~׺gbS֊by/mP± #`Um` 5+f7kNE+cc/ya?=̏ϧ*f#S* NY`wm.s !+wǽ;N@9!zaPȡd aj3L}@-^,Jd( %E[ *֊Q9۞zyɈX2ԇJWylt[פ8)bK>h6(d;tR^Fs <]>u T*Xv<\GbzӸf۝qk+]H䯾~gL/'Ϥf.hn$}I|]#Mk2ͦ@ õ.{G8Ɩ64J04v#  uhZőlu]NHbہ'# کܪ, .'ϒt3c~f8_F>Y)7Rێ -3`a_! #MfҊF% .e}N 1y{]K %V5t ɺg%5m!S_*.E0qɦNٿO!ڝmB6F\wbpibE(f\DWQQ1@Io'1וNӅsR!JYWNh~3j- Sɡ@4i3q/t&oNgA^Se)UKǦOEoI{OfXؼy;. n25T霍_ⴞlχLA[s3B$7t@xSm(lI}hD7R 0 n(5wzX?Z $G  Xȸv<䷂Mfť PNħp`)պhR}PITzQG-wnY4LEXYޙR3D0's''}-CF*ȅm:=?obPQ'5ߐ&b2I_A$ <>$E-;"둈,I)5)ׇ:.B|5d|U *:"YY6Mb&;em-ME(F "Q3B{Ђ*yh&`7 vFeF%3^u޸81-6{N2K#(#yݣ/ Agd-!J$K?#[ӿ=y7{SqԸֺXXL̿˛JlWؚ-aPbV>;6jڋwWU24{k@'a2 c/MU49L?z\mnrX٬sz'AKد$@zL꼩oT-(0 ?S+C;]cq|@3νNU4O$Z3h(,C&Sf MSLdLA\;tڊh1IT7j:ZOPҠĭݴ^^JpJq򠿯X;ZzIob Q(+޻M@Qd'GiT<:oHZXvr[K=BGǧvU#Oi0Q(-"m`C)0(TYd`@H@#?Cʰ,y{\g-Ö--#G|9K_"K:󓏇gXO\ AQx/!dΗ_ ݴW) Ez#ˉ=byylQ=ӳHN/Ӻn9LO:IBj|Jjҳs}UT 3㋽p`EBOu߭H7߯ ;ufP;xse;NR [mh'-H7<8N-FɐH RGj6z9?3;'& B9 "C;MjBkgT`x$$\ Q-W\ReJ+UL< w%8 b:[Uc yww+r.:IJƘ'($\9]WYF %%{%MD9C70(QXBelMPivK $G>5S .;b -r)ʹ`8/+cz|zN}qMxƈIp#E~]ޟ=ƛO0}Nu#CVuUuƇnUϗ2 š1-H@p T!84L !]Yxs_o3R޸dX[9}|pBr Ș 5~[? T߸eVf4k)_HФTO:q|Uje]ju (bi9#l,LP]z.qN֡`LwG5X(tDAp &(8G& ƀIիC@CToTѓZm,&a*1\PAv8g]܊woIN^鑯V溱#ң8c@c3l P|hJ;I6,&Bmdrhr$8d6;Əf Tٴ,ҿϜS9*xN:PrZ-12=_A|J\`LT_`ܖ8}@, RXO?[\x@`kMӛr)wXcz'Iu5')˧ГD ,X6ePE#FB(ΗYĿ`& Z\W1k%wHK1l0؞oŦ<sB4\|+LJW9$Suز) ,!'<4Jbδ)F]'*<#08'4u:5` !YJR,P} {9|4K OV ".|O3=O[^q]Z{9Y8y|_%U禟`}@a_0 ,E+]1=l8zIȥ{ yPJ1MXҐEtX|6?]ݦLH p ~\r5SjdrS/nrjd`ϹtP8n:\Mn>df˅.AT]JT#,D*9Zh2 ?]к:O`}^9Il2Y.l_kK7*b.1dDtvvl:$kM&l HwIU{.ȁ, ß$y {{+ˍ1cIgLt==N?FtZ y 3r.`S0ձbfe*Kt褵\و];eX#@썅KrhFuP/2.*ϸ1 |nKvo#2?<\Kz>91޶;tɾ҅G|LJ_:2j"r C4ZEm^(@.OWFCeA (a>`/Xgv.2FV0`uqlofN6]!RG)Esх%&\',9)51r Z1汚 i[{|~C  o]^/\n$IGaGFи//svB%[\iYf> 'n^1D نz*W<C5OХѩ~{EI-\W8Kkht{9YU 7:j,d?Ɔ$|kdm4{)π60 ߵ_'0:NqޣPH\5󍪮ő3/pBzÖw-쨇4܃|rJB;hAfb4K9Š=Ffkn`ƼQY\] (2LsNbZ0`!Ng9}9yWz]g-PN|J>n0ܘxUw~i509n}ԉm{Φ6}!3sA&k͓߳IӉAΣdx/CPtayYV/豦NRn[ Iڦҍݱ@-">OR$$2\^5*In lw¢"R rVx8O@^5"CRm)r&+SKH{VH"|GPv3 ?*3wItWť7Ϡ>b!x 2qvŠ%us 1e]j =d{'wj{@N}@R@{$6Ljmjc{t|P77P:J%!̟Rʢ6ڦ7u93gRtR/%jڊ@: ] SmHVc)()؝SBf{y9=輰yJtϓmSUg=R >'bi\_.ܦc"`WMU#g0h1;VX<% Ha3E:bt`OlݸkV`M^uT2գb~.iUygx?K4O&2+(ƅ+FjP!Iq(!hMvk&[2B!pAJD 5[%y ҁ,/ v78Ĝ[8eI c+)C<3ƭO o/xqɫ2[!6߫24L>"U,~Ř;> „3?Oc8 x IDATԗuFT ,I5xhqS<1L έ_ĽSR09BQ0eLf-ʲh3u]zrw{տZCb/!ag qČc[MG9Dd$@_1hƕCn4.vEv޶09[݃0f C!"MїhPi@Cg}W9%!w80#!r% BzYߏ} UxX/uyI.hxmg!8 $/TP!#,Lf&cC,Sn5_biӘdϞMpB(sS: 7e{oWGԝaZK9WlMz)u*HXJJxi/FQgNB5PEUNHl SsܿWdV|Xd|Vx^]Y.sFh-$Q6us9 PPԪFosm=|cGfu!T;$EfUKG(PFmo̡hO[2JzrAM/)Tݫc &9`[] lf~s,`'Uu#D)|f;u_p}c,ҦiwK5ky\g%z7t>4B? `g܌eR.ђ~Z)܎|G#< yB?;߸y8+$尳r"P̹qM.djt?"mR4)av-7j6zVtuʞ5s2-+\3-cH*= g:߾dXҼ#l*͵Ht{jթJ6Wt8\FPhg% b~B .OZ$f@.U?hJ?n a&P4C[w[|,G-i9Nq>>qH:"n=>mDCC_  kW_ "T3Uvcjo;+悧_e*ȊR`L\[sf&4둈!Q"QeL =6qbn&_ӕG>U@±&|0AkgFqqc3DŽ19koO԰rye*Zjia-bXXm2۲e>64^BDR {3#FVcjA@&سSq'Xn5;Z[{3IJBv׌љQ k?m6P+GH5$=ob)zoBkEit"(ˉP}9&OڙnvNOS=E|ok~3:,36j\ڻ(Gҥ4ߣyOP%eiCuq"ۮpE$}Vk G5XHR1BX[GLkZoWϚ ~NxqzmL9ȠN<[P3\]@.}O5AW#6Fd=n7;2W$q]`5/6 $dmPAw®+~ʦЎe$3qa&7g_CU$74'AQWhx-ժ.!4pDVZ V \C!#uUwq_H+l N,k=͘]o3Kuņ ױ/0=Z,e<-DZtJ]y9ؘP\{_\TGz\4YST|0 ‹bH?BWo:# 5k. DHL?΅Ju(BR _H&hj~Pxv=ҢXdCrn T.gVX$V-2V~2fp\&4evk}l 5.M QyX|"I35J9wr)u|4U6=% ܄,0z|$ML^ië@ҹJbŁ>Ox>W?XOU+*JqR<\O^26@ IJo{\fP zG5i|("lh z& 4"5%I6fܵA0CYa|@6Voe?(I+ȼ 8 N~pÐK+ Fڶ}ݣв:kNT z66pr7d![Tl)Wu#?k?L@um!%Z=2i@{2̪svl=([^P7"]ƒVmhXl H95 ;mYziI΍ taFY$l]/CbQVi]&Yq2(p̸{s(:U9ڄJ᳎_0y#&ouˍ|zXv'j~GUJż ܨ!rtl2RzrȄ5!nlBC+ ACq\8z *GYJM?߾y~"o; lyH:%ɈEIg}HY&]ɣqNߚlN|xxv'PjٽX f~J-8szQz'9/JZ8޴/f%$f_S>b,D]5<^uy ^:Ce\37+s{⤀".e=wԛ$oN,rQa9hߎQ^, k&Wn4.@E(#R#'y_hL_YWu#I))=|#EW!8{"uR,Yܬ)6W:e+(wYF%=%\lAe+x#y3t&r2#)L4 l|a]D @}׋+ /ܣSzwmMiǽ)? $j'Ԝ Dž@㺌lz7> *fdD|+ڒl$1.&2 Z/yc`4໙åo_{cxY)ف1pcYYgku0=CI #j; 8kmLJ3Rvl;$a+/%)#8 ˬޗlְcf_s@]q]f5}OKB*L0.ۯx{M2Y|oRf~L0|2 eSkq-MaNpSw%#㷟6=)`9w@>NxߵӺf|^+caE<ϐ ?v.XzV Zh7Tɥ (^;~Bg̕h'fmb4u qdGID$Oʨ%qWCkW+Η{g4kg/6oH&GgBU.is yF0.tb /5l$ U@sl3͊FߞtmH{lvX2LؼK1TVIlhlMڤMCcrqdR~e%AיB*" iGc)qe]VSׅ? AUț AlH )Kw.&nțF\4:>c~X*}/޹rQ[U1q&c=a>)-_2:Y1"_a'Qm~Y0;=}6[j`EQL'aO`Zr`^*M )r5["WBΆtx5a-AX*\sRazЯ<"Wm2z 91XRLY0w ~W5<= (z%BStۿ05Vm"n8|y7~zS6@z],FopHs\2<xCkʹG; B'TrsB'Qߌc 4 a>mB>Z`"MDحQbqiv \ tz!EKaMwt_%؟P+L{>MV"#34oo+lzxf4j@㋺ Tl#@ qNs3#;%0Z8nqqLsi3om#,)P˲}}JTI&,NJ-*vVW(7^mKz$mՍLx 탑z/@vBo S\DL ]`NMOǢxmIx b"Aպ+v N2E!1kI"]ry+&w{s}hu \p2_|N*?P [l5XdoU?_eEbuS?Np?g8(~DYbYrx6 eaP#WUfIͽB+y_ޏzԉVe ҤOZm d~.蠰ەSe /}W_L/:]_;EDӨ.3# Bc!D:΁}##z$! zһ~ga^J|fS5ZyKOR\jKxS%P\ps3c (zU0!]:V!lPFƩumP"p4H^tP4lO[ЍBPd ` WJpZgbq/`!|*]l+=U.ڜU%T0t R,TEό6|`ig0B;Gh{(M0%}\^b[C-t?%L$#C|ޛLzG>g_,#z_RJ? c"YmM{U(OG,VAanM=S+D‰Cr|o)x:֎.|IT[#ߎ.~N5Ww~" h%5:F+YZ$eKKn ͯm؄7PAd†M?H&%U=~ F-"8OE//ojc of2 jV|L-5!N-Ikkfʈ#[SH^N?J EȤUE\̴tJ\"J+-[*5]gŧ2xqǎx@C~c{/e )$0/̛GPiY-9kjYCIEy<ʋ#ՙv)2)䠠7`WRޭŞ=8 al AI]9W4&+*aZܶh[A.'W ~1&Jdr h5;[R>~ !֛UWI)M_!H|Ć|<>}~=}#\02Lg IDATE/fDup__B+H,}ޢ_jxRVQݺ4?Όѵn"*ТMz'j!9zXc<ةCH; {w}' ,mv&P{ nA fwCljjXr Zߓ6>>1PQ'(q}d]v'& N,Yܕ>?("" QѰ]؀\|Nhas*S0젫 搡#adjvH+B%-@OhZV&q,122:;j5| ès Xk'?7MT"C#8xBCJSz\O%dWŴ_ ~ B HfzItBDC).S.whc:gA+ 0SP"ɸϜ~a4>Q}i)y{x,Ե´4pQ_Ǧ1fSv:6nbtR:n E3#f&T9_`pճK\gzm{$Ns_}r?-[BLCNN[ t:0L(@Do f(,Z8(O.NE/l'?};r]BcR3$~Co .o폿&ShoB"{s~*,>/;^}\uTn|c3//Ä__MPu7sLOq߿}{ϳ럊OOKKhP72oMfw| o~2w{Ql|5[^U#K5՛_\:]#dT7f4g\V詽qqbϜafcx䟕K/]k5+"M~r\؀} u݀yXtH=TW}|'Yֶ^b K{i'L0YF1eyi~2}Oo{qo&7b΁kMv{ k=?M(s-Imy<*榆εu{>|ܱm>=mM([fIt֜3)v[uBp]REB%]a|`C]ZSITō$q:Ww/Z<wL]f|@qd+XR͛#? ׳icxw}ףp/j_֒zL~׶Wu-Uk&ݨn% j%um `B* yJxz EA|oNiH.+GؕmZ3vݤd}E G%2bѬg Hr"Wxa[ik59kYHE!" -1{ rVd<:|/#g_s`WBO0l'&xƇ ?CmQ;m@{*E19'KuYeŽ# P/Y{P$pM&A<08mwNߦB#g}Dgo!*wl> d"ƒM-5]ArէPoFo_u4m2`jgr7'>nH]De3ԛ}UQ#q~tF8k@Bp\HϠ<ʀm7b l>O:t[yN5/ wo5%p \ `p9S|,8ײEA rs;v 6wv9 %}/ 0d4IX@?7 SN~3ba`_6;CjI/RO9$ExE:v_1fp#yKj /-g^Zϕژ]4D1 ߈).6N^Z32w!lz7Ev'8#-1'/("c֔0ۉG⩨Uafgk +LP'Soj*ԭ- c|Zn4مX,0C>g_`f*^n4a!6IG`࢔mѾw3c!Ks9elӜ177[H`Wj̸2q[;9vA Ոo ^t.9jW,KVU6(aQ LWQ`㐣 )F2j c,P H1>"\Qdfbtsdh&2\ȷX/RuiTuHaWK'X^K<bPg?]"0eaKr\s+㟷q,ļ'|ߏ7n \_Aq[5W>en/X=~23C%Rpp!+׹?N$oaasƿYs<2!**O굾ʌj'QD]!Hwi5)g3UNM8N&cMq {Sޝ#wUbIRGW"'Ad+ˆUdzắrb$ԙa*rAmM~"ގܕ3f?b98Ǚľ2S߮f1?Av9q;>Ck_^phW%>^I )0%}\5= E|d_<@1 CZ?hT\TV@$L~jA*m=EB 7n"zDz9XSA`΃.uk%,Ik3sp圽u} _'qMu.|o(l֧l)`D4dB%3A\t5V}RNGN荘pQ=K(ڊf6]Vu2:y~/% I=Y\SpHq63ޏ2.N vY^r9*L ZC3Z _e݈7 `zg0 S9Ol‘^Icā.!y&<KZez"/-YZkjcJI[FUr I;0"Xmj8K<`k~JA1 ߶J䈴Bq7=d^!, NJ>`q^pD aWyVTEϔ}~4ck/WS/*ca*Iv~l`v#[q%'P𼲚A {3Gş3yE2D3ZmPKjE =>6,,Liq9t0N~>ב6kb jHP=79֟A~篎|w9yt'lEjw("+Q0=r%y^fs5v+y`kn[kB.5]:]=W8}O$N?: ?4=۹s~&sTY:ZER%`wmSFaA$(C~ZFJ+ l~w0bWi6WӰO!E&B0R{z>V!ݷ&`%D;+_ÿcۏOf>a]Пjj.:r&c^ Y߲c{3(_gzTXwŻȎ_2mw].sxly*V."3)سSO:q]d$zL]]K0ԅ=S ~/D }WZ+s؍SBİNw㮞xO?5=2ߝ>ϟ!74hjb=JO>NJ˛$&fRTC TllS 8]v&M h,0yy :Bvgv1+Y7Mm *CcPk/,>H<<~p eL^;*U&h6c/* W$_TO0jY$ kp*"pdࡢZ /$1d쌎Up)HN8n \h7 V&͌`G[q&L4*Xnx>J~1U`mjEµqwΙЄdo w1C;! 6֏z1\S/12O- O ${E:i'Dj]sF dEðۭk7zN*+4رqK>>/qj=^#0;/5vkG: ʼn8z-20=eU1I] n5 Ry@SJ*SR]i0j[`N: \"3^!lhbwl5 +]|9WC(F0)h$8(c9`?8`~.Ofe&`<g[f'po7C|VVeIJﲆ$$Ⱕ]B\@_:uzo:0n<`^Z^ap&M}6$)(1wvB e!U!/oTDppu@\b:q" nf%]ۖ|3oB~a Fa?a|4bL8EZ&:if]MזAvANAozAX7^tPzxi9L@=d\F ̤_cuPrzȮsj=>nVS!~c c0=t3Ŏ!Ĉ 9RU U-ό㆟S!0f`6G](rFv"om_0׆|6G&tM3 = XhL߼Ctr&e֎"NБ4bo;I!xIx(΃֚CY St2B$vH?IlWq"_ߛ}xn5[k<"gWBzy~2dsS89"e#4HU\G:mZGkSLJ>XM?C)(Y>%^.&5tK6@8FdT@CBk5G~/)"-󨹐[P l) ; IJ[:t:Qc&#͉kly%$GNhO< OCLhࢮR.hcS{+]UTB:9'2+z-j5gH]3oiK۱]] xfr޹[Ho0rV i$n,Ϥ-r@ffgC3;>}5>Lі4a#1}`57ai.tPè )~R2ԟ%>#eof_$cE=Ƹ3=h^)5_(pե0̹>}O#A5Phjbɣt3f|aPgOzTLڵ:U黭9m NZ\ QS|vt'1 9d4SUaxdH5E 6V=z@ 1NWQ4C]~J۸XS 9ZyWWȐo2C8,C|a?o5ڂ}]QEk׈:"Q9c^#o K1>eeNjjaߥA4c* +&bTMD%`xIlf&=il*# Du#A֥x/ A6^[M4K?qM,)Pl >%W飆񱝟(^EI)7:D ZBq) O24+MCj}VU"Cѣxו+5ﺴ4}3>:uZꗉB2ncF  ~qi"z%߃F)Oo>YAJ.j]ٛ7rVѴ+dK&|?!㰮 r7OfnF eNV{?}y~MVlXڻК!A8ܱߛ, Y%7p_ؚkіse-_bn*øm}A7ߣWhbF IDAT~X^N$;iñw|浺~A/epPS. 1MOgKV7#ôy04FX{g8c8f=F:,7eޚ\֘a"2~"D%|%Ex\h7tƕNQimRs*ǙQ1S'KvU_,\ 9יW"GXQo>څ`z! B6y]lYnauŻ2X%ӞWv}:Gb[|'~'HzƸK/  SnDfƎ fE^FVw<ڀ~ iM3" KҬL~ k617~{H~zp/؈i}0͛+!} TW4c&m+6o~.~< ì|z15; yUxf0zf|nEJ2oĊl9˛Ci}.qp0g!^@\v܃ ?C;6~cf q2w.Eƒ Qԫ9閝QΑv&n."t@Eޛ5'UPP$ҙM@N/f |e; '*8x9'i8/N/?I2syU\Y.7,J2ٰ?7ȯЛgwIqF:qSm/kl[ċΥKvH,Vs.9$ t*F(E2{3&f!ƹ4- *x6tWFvuͩJ72;<0z f(^ 㳨 Țc͑$D76*nZ9,0F70ԱIhY~`7S4"m$/*HXٺ 8(NH< F 1nvϼ  ѯ})7*ٽ}Nj^KN7I AbN-`rWA k彞uGg$=DL̸nPJ.X[YU}9&E9s#@Lw?Wi&$or4DAU26z|GL6ݫLHZ4_;H"ea Fc\:md`UkQ{MxqDh5uz3rTeÞ:z$y*+~nOEox-CM09ܧv+O'r y 1aܕ r *5g_:}#ώ+yqg5Yet@0A(;*^29i6;];w]wMhw_J.wg&OMˈu]w; F1쿼ø]+>~s _ l8qWz9p8"R*WrҔJ5ioDo~N!z"F0Sy;YWivCLz@QޙR `Uc:ZQ {4:DWIT}^"Y +f{̸`WY^J)6`gi^b05o6ƨ/iH |Ht:T@У楰UOG/ό ʿd #j+GJ}@5-\7HVxJ\5+X-8U}溇Crޯ& KjPui{H]Xnj,46C@gy۴ix9m5Ĵ'(JW@6@,J:f]O"ޡ2fԇ~'|OB8}ttvΈ%0%vTf&g\L~sG\|``ځ8g~"UN"ҡnyƘ_vD/$ҥ'kmFYHWnÄDzr'nx!3ZF7$ ̛M&8 p+Q/k sygoUx݁rO?M [0<';{pN񉥄!SFK*c#*AƂŴШ+T$ 'f372:2j@֚Rlz)]att6D,Ip(5bH%( |wVrѓ쑧2ӆ=W0cSD?-$. "YHZ k%].;IT3%쏖h1O߸IgvʗT M++ߗGĖ |;+NUp=|ĽKIn.QT9945PL8RÁԂ?0L*@l2ώdVq3x}_X9uNbw@7G=$Ig+w,nwJwxb_OZ}qMaCZ?UД%zd %Zoj1NөSDm`h`^6dȣ.zet&izof["p 2^( QQIz6s"k*A\ĕ변'4Ôf7 BegYNƳ9ؑd1S o`<3͕(CKOSt{2~$imD8Yڨ8Y,"45K! KL9?m)r'+ f(& Ca,3̉8 $d!VbLn_,[XzIyۮS +:4kE7K|Fm>4j AۺC O PK~K⛬:-39..'CVV<ᦝDZ4J7l^?29 Gy߳mD{@? ]I(RJtգA ) #:QÌr zqprJy\[ -4>*R@,|nuSsF?@LcL̔13{o#Ah?8a<CO0ṁ'pXFǧƱ ~} U'{?r*='ԋ} ?x>In?\BR ϟF(pٳOy)zLMMt -.ptj 9Hn$)5v9!Hc45N=+U;JU{qBfO=اٚ]QGC42$zј$@b'(霝6nϵiM Fm?Q!n;@su~"ye2Kvh}0C[` $ sޮ~q?L,oxHpCv<լrpiрSW>. 1)yY bꆍ8 t+>~ѿr7ǚ@n-eSTX2pml<{ڜEYeжra L1C˙/]D12 $ p9`us#oMቻ]ۮ)ߎpM R nWH ˼IwWj}5=$4۟S=t]φ j5QIP20\ sƒiƈτă.:C n@#Qq 9kkOzfh%ߣZfn6B Q k 0|]gH;ofܶx X|ȯd V$~;I.Ў=^Hu?îvFSRDL"s D9Ǖ޶VYNkSYF븋t+U1BH}rFtꀈiºǦvFM]LSOaW۲m3tlԄc$@@6sH7Tk* #>Q)_;-n/mdEt%vjuu&Yey\U @!GQoԄ3C\}.ྫྷG-% wAy0 7hU3a{_:nn6W@^P2nۮԇ}ϫ]/hPͣvF=cA FLGږZhș_њ:աQsbޟM\߽EVkMWdM+a1dɮ1fW-bD^G75t* ~vckUzϜ<5Wh+vקdcR9!i@lRjjd.Soy09 tOqlq3`Em%je|?8ͷT_n;_YLLWspԗ6|֦#p͹)Pg:Ac&TH4r5Ft#$cn 3*HL 蝇ة^!HfNᆪ3Iv x?3G4c:u"z39`BW'ԉ2I54oK~dc~TVՖi&vmpq8k].~PLSR@5l KClv?PpG)OfJX># ˬ>@/Ӽ0`doһ8vDI8 4 Y`Qq%Tl϶3->ՀpRՈ@-s/NV=met5x5M?{9$I.ZI],,mM$;K/pSkκBP}űL hWu0PNo,o:K;괘-Dž1 Pe[b5X-.DQ7v/`uEw'DPL:w'ڸ+wF4cujnluMsݑY^gR\ !td3%U'VA<zWi IJ^gb2.>TcSV%ϊ|~ؙƯwGW%ghjCzwFOKGqy~TGMvQGVK'}훽Bd1jKDA_պ46" adܯVįjjX]5F53وN;@zX~B /2N0?z\D ΦuVa w垛BflC%ǛRHkE<…[C eʔ~c ?UZ-#oru1ͿF\~Y|Vgïҍ;4s}S;fT9ʆ@MSy;`m d6Y dξDD#H_" ,_~UtbZËݳkz\ܴO'.wg5eOP8K Ư !NNXP"Ȫwaz|w!!:AAO~P֥:qo]pa.~0X&޺f ve,E:Ӹ8#,bhYnMlmt떻av_F@RM7_qa߇;V$;ЄTB7zr 6M*e"0Lp(.U *P纲GF[c'7΍3 %i0piä [Hy4b3#˵ -pٔUe}&i șT􂀻t8Xqzr"ݴPt$@kr80GGɓ)"5_ݶ1[N9D IDATDU P3 O*w, 7w4uJ'䘤SH$j& -Z:4&73Ԥb>CfVuft?D,`̮7{x,_?%6M$݆ 䪟t}zM0U?ozEȜ).LA}pq&5ac6*q`Rh0+(` :t 7{o%Inl OHZ>H:쮀p̪jfV;f3b-\,d7z%:Wʹ"~;Zٶ8~xx@u[k43V$qv*Op:Z>r$>" `4a@U[D/jeʍi}> p[+}8i9}Rz'60˃J7{7է|1}jb ׏RSN]  :K:ܒv{4F_B 8n+dOtNкcRR_Hm;>jL#WǬ 2E8.O3tɕa:WRUԑVN#tOCZ>{yLg f$"Nkl 3xw֤&Uj[I/V:oToH3}*?OmqTZ;O@8l_d=*_vncH&,ڧGN>(?7f_^2Wy5 uß+\j~4 /]ۥJVP'/^ca*澹µ[$^>_~n~tFU*QΝ #exlrt><.k/L8@ψZcQW wL;9ewX9[^Q["[m•E6H>\$2(2o`b2O_}r/9v(qDKg|R[WNũa|sռ̝dfZg[~̦i~}ft=:{u,Er+E$ ɲd@Ohm?'VogOo i=S[vWFnۛf6t~5=8gjI5I:L s΄_)D="@mBEsրޥ)4ʓ];m aW>\-"M<贅(t+stk~*V w'݆qY iߏD_ k:=\\G>Q^_ Sʣ" Ꙑt# [^A4CѫyEDkt!+.V-4ԚSTٗ! ZCWW^690 L94FR钮ͦsbq~Gek:%jh<@(Jw8}=ӡz ɲ)dbR۸0JffO_+9;f5< {(ԲXc<aWRجALEZ#cɓnaK\ϏzĠ|`"P~$uN04ÎTfzpe/4?޳gxh5yS)RNF?z ,vnFg+^8܈gտ~K םM$ U74ӅhL<(F1 1Ao!D=FzS`N:]S9_qp*b5FON'E-|&D:z;v3| V+M;%JTUgyߌfi >=M8@5$" D*uq*ârga%i`h+,8 b "veܽWcHi1tΈ[ڴPw(ѽR _,o4xGdQ+~bȣ+uh.HTzaױ: _ϕo$l6Lɳ"Z-g$}9FA@Ƶe^(M-455$_xJRF F}q<䇀C( һࣱ+]LK"FZG2vVeJh#FǿXw>31jA8e.$]6ߵ G\k|BFS:@gvaQh528֦ xשmyʥ;17GXj \3 ,d-BD۴mƠ q mݽ~U THJUbEM&S gbx4 |:/E2?MJ+˩IK= >'ot4;d\T* ٌj=| usYJ)k އy 2w{`0%XS ,qC{g szhTΝaaz0Q'#sDpC1Rѐi4JwNicxw(_|_>봲ոÃAFT'8`ύͥ~l "hn&"P5M_hÀ~eSu _i  ZPc^z +˵[BMGV8W- QDj[&6- v!\-ʟ}LyZ]boSDJ# _E7M [u~|vizFP"\A%\A삓 laAho /I5L:5'o-zelEmFWI3 6sŃ|_}Aog6Yz I;3۽mW,;K3Y LQ# H":t&1z843Iv//AC.? h@ HuSCU{cnE FG!Hw|="$ :Q`PN%nQ3=OCx:z$fB;".-s}9lgҭL k\m[} v ᑳƴ=\q~ب=ATCڡ=%f|z3 H&y545"3@$(~)w:qxj64^D}r7R6Wzn~4%hA>Tzm` ^2؜CW WppcNVtFR紡)$lZI1~I>JM!̐!V\¾#m> "`&,裾˔}|2H=u ڦݑY~?q2[ʐc< NfT#~?Rʺd4B/p \d U]i&CYę!Hp#CJ٬x`7O"s40`Sm'- d$i<5֯ |7}Hg"]4\ZoY':3IkC^su۽ eI븮ݷVK~wRs{Q|JnyY>gՁP-Z|ѲEUy4$IL)g4JHr(e/">O7q.Fb9a݌Corz!\N Hl]xThiWp;_wS@*OA&r^P\ڨah ZDX9>PG^3zсK 7Bv&@ fTaG(jF$Qnx(,uEA"īk m]${ ?RگʾGU[)o?޳pNoJ'G@\Sp5~ʰ-͍ػBoPlyliGzYAʜs->ua; j>J2̒eB m#$MfLaNpvsptT3Ң{Պ!D]kf@$%t?pĠo=>)4>%PHߡH6-}TpG.q)9`~T'gE6ǦYxU88koD3{wӣ;2 sϾdBxbP`NSp.~~tKG>S5s/ynXvwe*8$%_Fv47-@" DR%IFl,Әf.pᄐ2^iq5;͂Ǯ)M[ٓ[ʂ47wԟ* m@=i]_p]kwW7hq|?#9Y?5ܰkTIgїWmW9`%qγa/, PҎZ:xY`ˀqhS^M=t+(TNjakMDhThxtj $[ԷXu콻ZWkeB(V)u(nX{(!R4o9lE<I4 " nQ|eJ |=YbXZZ1)—ۮh7tWc qȶ5/QwJSk!]!w\7&p#iuNl'p/<(;]տXuoK+ pXP+K( 8*J7'.EQ &,NsᕃfX& >(fwLH41W}:۴pd l4cXfMӏs3VoPRqR`AK'Ƣ;W EEE!sY!eGʙ~/pnU( D< ~#KJ:'sw?L7i+e쿣Tas1:qA<1cO. $K57dg};D`+e=2M-KXȑ*ފ_Ͼ{eP~)<6k}p?(2n8.Dz4=hcwWŶ q1b'xzxNt#ˣ;mw -H5& @iE:5xGc:x^f\+ gM:!pVe;9sU l5[_F `z6nO:Є}lB}ivB/ tͿ(ig  *U31 C !h*~HRSR(hgZr5JқQC~79ѰgӟkkY<ƤuY&U9y$CitKb$#Q#g3[Gxr%e ?R1rHlT z'eb\a9.Gw-#eL^gү BY=v6ufDԑ O;˶J75&kNñUށ$E)s-f2<"]heBVE]s&z0H_]1TgSQF`^]s;[է eS`\5j1S# 7Ü'J\br^$]bR~+ME0]?$.Mqn4c#2H("ȥ+{+̛\mJr"7~^y}HzY_mϋo5jig:Nrk|p|+gRg1byYNZvPpp Imp~6g뾞<@M6 J*ܲ7[\b!Wdof>yI颭=8!4El 6V*"K3:-ï@j#=^CK4Tc%xUd5zr̢C ߑ?`Y5xNwQ&E`"+p%OXd>(^<^KbߨE w.-\FE B2QVxP/ݮu",Hۯ]JY],b!~zxK#jmK n{8U_`jn*J9*m6hLP8${1h ܤ~ʠVw+CE`VX$K vm9}Hl{sP7ypLrDD8KG~-d,RyTB6\҆-іI͒FD4]cPy$P6G WHSť|oYeum ӫ,˻j>hn/oN; 7/Ƙ}/F3?6wm^LIH3څC2ĭ蝦2袁zA@k~C@ 6'VJ ;u=Eh}xPB#H$-#ƾKcBx_B QL fr:.t2)/gn;8L9k;;1K}E I2,ZIsgn-(AqG'B,[¾O2:2F/)p=UPINA 3"ݵxf!d6'FD\Z] AFJиh[iɶZ#g]h W9'^?Lnտ*l"fseh3+f!Q-)@3Y}4 <,ꃠ66 h @Pc4qN &1Ky HǮ̨ͣ2gR-2\mz!&>lf6à } @CߩBΖ~`Yճdr$5p =˶?G%vW?ZiTqB$Ḡ瞺Q2:DH+_oѼg$1l"mV0~>i~S[S^ޫȐKjz_U}izu~,%|\j4ë{+蛿p̑;noށQŬ^n.~OI6j*P*00H͐OKST]PA`BP.҄"7'B1ZE .8PMߩbSټ.:Қ.Laz!MzdPoqgD\S#2N[S$'"Ħ0v~j?aCepqUw%Iߛ p6XGg#z/CBC~'t9\7 DzBz&GXu9 majZDTɉZ-TP)3Vfu~N"(iqoPD[zr7Ҧ )UxB=iB_>R+ 4m90(+VP W%bQt?$ܨhJݳE*$9!hv;ۤ{VLYoJeN V<_^莗T*wr`8odLH92Tdz*wey0k:)$uK3(E$(Z8/V6'J؃gbp2\6P$`P@cK~ L0GܽDb5tK:N;VksGiΏZS ws^.0PDW+(qyfRe2Q]}5_s i*IgSk+<;ebXfutRYrfUN Ϲ+t$ODЊ:)8Fc\0j猤c GFך^ 24>. }pd_c~| y :Jfͮ7)6o`bc"|#-OFL~N+z)н@2cyx!v\& Qa-p}nV6Mj''kO4j0}.hdQ"`2__y~pT1ز?( buNǖP(7l)/ 7PiWD=0{!2"7ݤ!mt@xĎ=\õ%"~6xdC]RK ȼw]D(ox`t8- u~ːfxrnLS eIKwRUD9J%"fq3$a}9Zi:JLk@PZUMbUi>W9oc3$kqǶuM5 r`1)n"HaX&UFWZC6OmY!Dki.nLv39&Gu.θ#] [k\g[ clM1 KoBal2MඉIfD o> 38jy/O, ҞIT>ْK"y:;Lϣ\&?N;1t'*d̾%eR:Zb@\W4QLkħ]$p3ıq 0 ^q2ژ 91ςA[uf*[W;HxVE5|YEBg6UA|F5"~#`A . AK*z!3"bhH3%i>̤ϴI`FngƔehXA}LxBk#mJ郙ݚf'QVm\[T9?3Csh5s"a\ g+aE l!+"?J;O*e7|]ጄXt&kᐫYk6D}^~c݁gJtH:ljBQȡtX]k2'I^IIciT3P'Ѥ3"zyG5'Z?^2j۴߫nFџGוS_#6|;IɒvU}_n柖(]qU_*=]]`pTzyuןoOB ĭ^iº̕=5<9o\BWٳ~ʼ&2M}㥔+wi}|'uW!juU sN \yUw"S:7 *BAf#,W+V@ggܖ_9C7@n6кW)tӮtb+=Mk. $;a|L#Utƶ=xS=CT8Yl!ꛋSV.d A]z|= "{w8t!#I&1`[L:|A#x@IaDE4 TGtVgϰ1Kメƛvg*~rhS7ǣ qMA ر`@9lJV)+(43uW!0[J bq{C!Le}åS+䈟nTvx e@ rM$oc7v9 .ͨ{'614:u\{sBE~k}GYquih?/0]mh,HOq_F2 }Y'fW=oknSn(hnX9|?-OT DT?|)]NnEdۜ͏n;\ P$(aZLQ=-A.@<S#Xgn9C~G3v"S@i͖ytfP;\`!sqY~qRWXoB3xJz[XhO__""MdxVesk{ǀ.&҇/lyoN+x@tM$"zL@)^a w-ךN7B@fUR2ZMp8d$ -tţAGMl킾/n"@ȍ|>ڝ>֫=HN6 ʹ27Iwkjwz8~|B~sZwRMGjբ鴹W?SᗦS~nY|L8E4 Ҩ_֝SW[uU!<ػP8,(M.J\{\Q\lZ Kk.SiMI_+wUQ޲.CY~ W"} U)!Q4"&u]˷ ߲p 1됮xa:?7ZeB ژҜgrZ,b` aaޚL {_$9%YCQ[Bn"VZP'c< P&{uW?lXV§tB&;Փ0^|?.^T8$9 \5X/̥f<MQ" D,ÖwN7iXB=z/}j)c[M/ V7s'o?}/ߑ[*&F+ҫ[u gJVvC'AZ zHU!_TYޫQ Bʤ$= fD4:LpyL JQCÜS_5I|d[1S AJss.<HLj$144ɔ$X ڸ%8Wm(Q b'J8  ]-S'EG/t~ScpZ=Ğvod'3ؙ2~&50L>0p#F[$PzW@M>wNAW*m,6‚{r<UFŗ ]LMIm?2ON%=^,.Y{EQ2kaY>ȧ4R2t\h,H20IZY.iʋ|?5jN֬c32 (Vht/D˝tXI}҅tzQ-| hќXo IDAT; !soC =N4p=/BEMy3) z\b&}̓o|sMB#V<ѫs5{埧&^ONg$lf{aJ~z *tK$Y^>NQk,Җ/Kv>3u_z)x) tUQFFR *(WHAu!u!ҌukSZ'6Z :VwpqMt{(W #›F ؈ w$ãT|#nn(:򢮭v*X9 H B0?%L_3_!l()":4t9[!W[S*]`&a4V9qxծ ىydNC 1P|6+[J~̇d3CEm&&e 3E^b-E]Fy5Xykd9jzN\5nV "UMiN@mYQNwe* a'NA$oi.r<@QT_\E; `s]LFhB.r܍}LC"ZZ]HQWޒOTڶPF:$TDGҮPoRnPY[uy=, Nj'Z?@1:bO,RC ~minf8UpʽWElWDBlX/+ڢpާ"663m 0%a(C)`e\"3ˣWџC@{Cq#K^K䴢c̺ڙHmQ>r҅5pHXjP+7s( jԲ/E#:J-0K:4Ps#P O=ɥ:~-I ~̊,=~؇h Hk ؋hdKI~MڅW&o#v+Y+GsP6pE2Ps;>;qYZ H(tryNQT;[l2d9 VPv<Ce0R/T$ F+1B繥@꣞`/4"޸i kWc=/e*iMd.(u7:&ȁrU`Oôad|4>Y7mEEi߰i R3L.R,Aᐐʈ $›6o% u$Eș[>W`WxIDAA7MEDt,C*n0χaV3= G b lR4_V/އ>u&I?H t_;PU;j,ǠZg1iI4`u {ݚr7I'zziKp5\\ pL1֜ɳPh<="E\J1{=UZ|3_KrBLEBw˒ ׮z Vb1::Ij B0F"!F uTlP=^~A U<:eS"pm4^л$Cd>V&&;4i]e?%t)⻃G_i.jerNdR|5L:0Ul%-",}V, @_"F/}<2ms I0Uk-.%%TzġU IL?}>kp7ftG@@æ$O#9E O0h@-uX {1oͩVCv׉5+@va׻EDG}u+ŝC3~3påҷL"@].6"G ܩTd>j1᧹(|-N\l&8)9?C ͹'CR&|q)PrHsSqpmB%!Nfzh2|sn Z EZf*,N(-!J Qhg_:y8maD!rvJWaĜk1hԫ(fFDW  A'Hwz1K빓c|*4?ed%>@M2. YNhEG59/=M_KO[ x,'~;|OKNKyfnTzANх:処tίJ=ГI:_ږ 6|m׿&O=O q)O}Fmx& p~L ]pޝ+tܠ&m I aCZC:l;4yyx^޻2]x@Р"hut z*K)4NGv\[b0j>:6j,Gt)7Q-QKw*e{<ԙmEyXB ȁ0#fZ4l{b ,]\7BL4+e)!R[*D>(%$:@+  jAF!Tv=h~ԑ #\ g&ytPh5v t^!nRɿ=lQԂTC^g&"It<'iBxݏ+.Mw fZgA4t<6nܬG;}F `]n\wzilYH'); C.Wì]t.$ R"Ck"BcM` +Wҥuc& I"o8/f~N-}w>fjE:i_%lh9MGpB|X\pa9EyΐYp2r\<]Fyk$d1&S1Kji:#W],uY&Ö+bt.=S'.%<~چ阾?jEвm" 1̙41n@ ,w3+}6u0=QT*cQҨ}zQсF#S pIvwE] vd HI Nf5t/xnB)CjCg\g>j/ l\O|JW PΒSܨ?9?vޱ9Eo8BΜ1d L9o=y'sӽ<[>:jXj d\ ` $nU)}  .t"J[[Gbcy)@ʛ;57LZAgҁo/NO4!6]N$Π3 B}̽uxČPɑ$;~\lzS0?3iY*@}Osz'#_# X?QO~\]V|}WbǕ!VD8=i@W:¶#;75a ":N)+ ܭ{z*|$g+z{|06YKa%K=s/Ub/!`ɍ .2*}X+LӐy_&\݊Wܾw.T&\f[m"*&VoTZ.)[C ;s4Dk6dC Bh/ 7FQ (84:e\q65fg4mB?ٝK>TjuL/eMΕʟ#=oIN=;ui/p_"UL1׿T\v)/PM읱5{BJD9&v|@))4D~XAa?bԻ6qӧ aljEuJBWR@Ι鄪K`1/HgP_k*9k%b>@՜923_SMкŹXw'w EtPE.zWPx19BFع`Ǽ' 0J:.]Y/.kl]$)v̊?;z 6%iwYgY fE{/3/c:̱'֬pGWb -N:z;3z.Vz/KX/ M@Zh[ZW&Ec{͡Ce^BzvJY{m<7V#*V#Zuٶt8@ALyvR ` o={L=5Xǀ?e\طeLIϝ %EP0qa4{V|Dsr ^2 r;ٽi8j}CfgiU\i݅5\AuQd5$ [{[>?T>>Z ca:2@Gw'r6MzqY2gj~'j|qgXtβ/Sm+5/ ZIWSjAODx#'}N@Ĺ5GYJ{>z1D٤ȰW>G$?|́4c,y ]ͨ/{ο~t艳-K|6ݬ<{i[%Htq5׌%9g)vUeS'Fn{)!}*OsU`4"pθ_ngf,!ӦA|ϓu$cVu8j7Ţ!bay.^(7#y:]lV -лrӟ*|Yb*$l~Z2!Pnk 'go]lZ咿F%ww%| ~IrIl|r\A KbpCU=w^ 2*Or^(H#{C7W4ƻԻ+M:ßKx;ukb",~mîHعq!ZarfZ|% s 1ćD$zljgu Uc.|PT`]1ҐW `$-ybp)Ʃ!;DlL[y^]gu0etVeaw)H8S7 9guo7RQ:fIZ')G3+ӌn-c@ D"،8/V;QW&sXs?.L" W |>QoGsm+&d]m^Ne6Ϻdýp"ǡգgֹ ̹ "N:CfkӢY,j@gMݛ!V'z\9Y~UɁ;7|l/N$VϤE V[^;.5dK* `09a.W0MhSWc(G'K)gq_oĭA-$Nt>"+ 0pi i.L&^fj'x8UBxݩ_93iK .SBn}Q` ${Fw~U$CxU{WnҜ0?ǼΝ4|+krv(T9]Ij] ^l")@k!Yel̰w+ ԁXs~p>0SdO]Boigҧ֓ $PEt5ʸb/6k>,TȖ#Yg% sף_ʸ[ӄQdu}֞!L/ ũ2X얖&>1{mfmlIcjj\C1Uk\PaW '$!)P? ,}BH覍?>^,'R`9siV`iv"Ny>kdk`BqVaGzY(_%Ν/-17'Q7bǴAj4z)O~xZ!*GL'] c`av.Q&]O=B 9*\Z"CWBty85d8$YT2e{`/6'`caf*`t ɛ`إx:L6QYNx<c)h*.ؤ%؄qA 6woM&L1돡0NDi"on1BXJ/-+diT3i6rȟMFb2slZ2T w]._]^a$&3Ú3HBDUI}Ffux~= ۔t5-)Z94TûBMplίZ%g!(xZ̯[xЄ2 ΀f¥#nDƭ@b>j,  tUcâvhxMGPsN Ź,I 9 zIKوQrނ_^k,t[.v/]gb F&iZ zy%~9@7ٟ@ܫˊx_!zv_/w=`W*ҝ7\}'7\*򙴫f&(.iZ&qs⒂OOJ쑜?B=XXtT%  5.еFfCotA;ZPS> 2H*u cUI `ޭfekҊ4e!"T-Zng: r9xIVQ>/XQTnJ*3P3חM!aĠ+t{!! tS vά`ƶ\d>&g+AU`=rȕ.TyDkkSB74B/f__y+FFs'C9] ?ǫ˱6]%.c=*I ߆VIa[BԦt06`;RBPZ]WuE["aChu2/˿;@Q"KkMDXp^ ޴ػ_@kwDmiλaջ&Bj k|h*Y/9;&Y޸.ZX|N{~IT?A,5gyN@cS,c*K>ZFp,ZͶ2plFIޒg/.2:n-~f"ayF(za吲j e4C SfVHf]jTbSV”nb239d{"jS$Wx_sүKKqa'.&oy2,_K򒜽HC0$oXvld <9ʶlLnbI6zqWx>3;0`P.A8 Ŵ37JMD7  JRr7>rC߷K2=KYTE-q~[@L_Vׁ Puym||mG};N5+)B5~}QZ LYxo\g鹚'`׭PÙWFj8%,RUQr&v8tlp'i6@vy'#;͓s-iԯOO!϶/ G%{@Dd`n &[.S^*2ÈV<ԸERΣߚ(E@lK2b4Yb񈣄PƔw/]0~!Uls1A_RJZ/Q~Q_H tuL4RD`4OUhI-5"ŐHn\,Ƴ~BOndEl]N7L?EhE7nl!@Yh᩽w21XU71⍴h^t.C/ og~ᬔo)_OWpB2Vv.z/{[5^G xNC}GXNJ܃ n5!j-)MqZ36y }!"[w g<[#wxDhX~hHaiXoUkdG3FBB^ܹzؔ5(b!Ezyκ } QS_BuG%,@q"F6_[.lsK TKQ(E.%žrK[gKc,%Xڊ<.e sf,-r cpJʸqK+H5\NjO1e7ZB2!Y9;V3R37Tz =9yG>o3)fu=-߁L ԗ'F%Z,PSH0߃&;jg=?2.E4 'ICَ}od\A`bYث:ʍ/\ Iaf +7AbZ匫y Oy4}2|j{ƒI;!V*0KĂt:w ?2]qѻ`JUlFb_5OkJ %KC<WʌsxHnMOʱw 3 +`t- AhB@"#t|%aH `F)6XeHdwIsFgɑZʼSv }{muAm`J\[*IWST%Yh,ҁ66$+>SUKOOF]<D/ @jak Hh! ar%<!u@ry|Y}+< LЎ#J :Bp|L"&"6oh %nXN L@hA+G9@{meD4D<v-Y.zGWYe7~G]o)ׯZNl WfqxMvcR_.6O~UO3Kݤ%v e] XieE$U% FAVAOPsǃD}fׂ Aq󙇈o(X'B`9g+P',MX ;e օk%#R[ ]T5%TK m@i|j,ҏqR 3Djvt4_ EQҽ ]DGhN5#0㖘ي/ ,oN۫>?wz?N8l[$;Ֆ '!N(W5!NJEU8e1]gD옆@gDՊf 尸1@p/*5lGȎd'criQ;u? 5.H{wS%,sNK)E^v6ވ nP@{;fd"ul.sBZɇc }aZ %6F$I:RlS= ̗Vat~L]*{ZGV@NDTdc3ͧw'9f7]? 3ZfCՀ-HDX  0į3+i@Rm74S?a6ˎ_W~v1czU˟0=Bwm impiz ic>/ O<5>ͩ)e?`/oL6ИY00g-Nx}`5Q^-53^sqIvtWi0=E؊vDwޡUG . 2:Uš4c#$/7eD.HA7'u[HXa0{B,eꃳHn~YW44,#NF. &l.kCpav~I3}+{RŠGuQǸj8Y#A2S;2p:~y<q8nBb_x}r򂺱 <1tk$FBb 틾x骀sI h,Zy\˦Ynե$Ѥє3 W".]ZHJN @{elTJu?ܥj)Sܾ) T>Lۉjڔ ag*gc 6 T~={~鿪9. z-T xKef߀n᫷xNYƷx; v\[:e &Y\OM-AQg);ʽג" CR[zatsCK۬*!WKVZ{OmLb{^j6ZtIP+O7hn">u#1?^S74vKɉ<ɾ 0_f~O @gt %O)`h+S%;$NM+lqBMYRh=zqxC:>l{308&^!\0~\Q'^Z=@^jAoQ1Aڹ7.(Xf~:na|%1gE '=\^P<oJYNgE„RCqkFD* ]DRK,_=Y*h'4pթ4c1BE5R -7ven/%Oy#x6"h$ޯ[oΦï csV d+$0h wn\Cp3lٜNq9;TɉRdj11\.]ӷ& % }8׋σlX ?r&ri;4G+Q.WqܭcB)lMT3ey߇)ػԼn,֗ݻ\jgT,Ƣ(}r->?ng7. yĿ>ok<]x&e'48`4X!;T"H.EЉ~]3Y6xng)LF.R95r]~SB=0 RTL_{K nٹwkYqIMh\fv2l7sU<z/ᜮiU*ch@w'CӅkA=}3 -d&x4PگyX u $f5B 1S}u IDATqf~qVتMSMc8d) tv87`@*X0g HRt| 0ΜB,Q{^M|;nU{Op(]`{ؼ5geeC 67k'@՗g?Ӫdyssn۪BO0ȥCVv!)oMlkph)AԒutD-rkc{v .9w ]&X3K l0=྾ MY{8C"j}~:|?Cwi벓פ}Tϧu!CZ6K>O 95I3L"3('|} S}24DFdg!/<^r١i3BH7w٬dE q:8k=sxIc|P'pY$j 1O)+ rzN58q~ajG%֍!-1U0eٱT$i7Td5Jt[2:Oai* +aFL6EjY˵>wT[a5н f0$*q]}@&"LnES5{5Pxye40j>I# *W+_@uzjd6pWaT_~jzn iDT!*{nGkKyH"Bt\[H͠AGdļ0]&cH5 ׻*oBU6] :E+okB>=.i3/ i(NddG* (NyTN_9\2};Fq`"wӶPL 3yac'ưhk+[K[҄b_WOgw?4tG NeՖ_rZ7{GgA2rdw{ 5Mx\~~q\-mDPAA-ɮ&ahЎEc2Mk dgp?6MCFӊDW2ur+ MߌnjƜg|G,F9* k`z[bE πu u&"IәOLZ\L/bI#dyU !O#E~ݣYU)5\=o6W,<_/l*/$9r#> 9k.JϕM ýr!{ k}XheYsa'1ͧv3+ mC%JCDF&g9po%- x@Yq`+}jV'K=;'SŋhM$9GgJ>[e${)/Q L` 7! x]F0{_&Xgf"G\F"~EX2%Db0( KxFR1D@an ^)[ՖʊLUKSM8q7aX5SD/=G㫃ODZ tҁ5X>"y vZ%K+I4ǕVTe6D#﫢:B[l}~z{J?_@#)UD@csC 4~!auoRE50@0K<ct*Yv6,N'J6ѐasNr0F[4* 3Oggb^B-.Y 4rMCˣZ,AZ3(H7 p`{{]-J.1ދIy`Ҳ]NOCB%B!1:wϿKdN+RyX6L-"Ao3֦KmV* ;s1hnWD.YT1~ 0ťxQ3^,0J ¤x^t3|p5`3}>DA7˺]Ve□LX5ʖS9`vqED+lS֩L“o>MM Ŗ7egδdY^_**IJ6BJ`s;A?e3УZA<nq3|BBV6gl8 6"s]–k= ZTaO9nOסFIxg$ES%q._CœKLp>=".m?L ';<2=Ep+*k(nߥ>՗x}8r1"uP|k8{kfC 2Mx6i17ߠ?n/4r[ǣso1=ηlKF2MJJ&-S"[N²ALvTޓO`?5SNcZ D4DcT!N%bT"#.22|И[4Uн,-v/!Jits\&K82YV5YA: NZzh w: ȼZt/*w9Ir GsQ8$͓L K^HGfB)(YJM\Фkf lRBnz)CR[w><ʰyTǼHv6Q=5F "(nY-U߄/q6$7OfTQ hŝUEH.5tvQa@!(OHmW[73ˋtvjwP. ;Suƭ)&`k+Z90J[JKo}ieu>~t# P" .O";~P-`q~ҐSL+" EY4T M?̣Woq=z"X0g$Lc]l µAo!=v gB=N -Gf-tL%D+/Q=ٜ1# Q3ic0Lw 2J>m tŘo(3ށXGӇkV=>(Z9/{"_ȩqo鍜dV/SK"; (4pc%V=6BayBgׂCA?28.gyd36_+t]|h5&ȓsb!45h&^Nm S S!Bq &Q[S/sPcFM3, _mLอf`l:p%ߒ֩d|툺Eͥ_)7j: JUb0d}rr" pR޲n#4}[ImWh%,@Sf#"~)iO!^[EtKC]yB_=a(ᳳEg4#zML,2DFBvqhN ,t܇@]zk  P7mZImxV|-\+kAMA|LI"UJ9b)h V{E# oy`9Iuw__c ~q:ᗐض1irsnn&07GC}Lq|$kHϲ/mOgǮe8V_O=3<[6⏥̿$Ml>wxO{o%(vٝ B#<'4 ?l3Tmpms+P1 !8ޕJ[^$ *q;S( tMː%TI+ݪq$(7ӄ2 No`$+t3Ahև>G! qW*zU$7PGŨ:n8c&/Sۍ* ix;  @k{J`4"qT8ck1: DBq"yVI g.R\\f] *ZR D HCϸREGz@+aɹ,ӊ:†/lLd\Q;Ccr;}^Q*;H|fUk~9w?_Dv9 !:(Ko@H{5ADDP /7y v/-$3PzJA M o1_8 /U@݂_"p7@W?`C;1íA`7@DaximӬՌ5@^.<-S=qc4Yy?0;4 +~ݞFIsqNp]<[/t~~XKpb'qٯ{v~T:~_"zṄN2D.+ˉuxud.zy F:"Nmd+WNT4MKWxaaݑr'Y#N K{N@>ܗ^ݚIÏ7}-,V?r7]} =}|/R__qt k['Ў U'emhY3?75M$T_>_o.[ H!%}҆_doKfY+7/}"U 6] D4Lj3[)Çbl]` И"To sFyc\59DU ~#xX}p2te\lj١8\_S:넜`';$lVȿWh}fbaw=%N%*ǰbR5RDZJr $FܮߨI6Qz-oMyp u<7wJrAN.ܕ#(e(e (K-.OA i+ƝhQ ʒ ql՜yI#dLӕ`67(Y3y9R([ݾ8qotHwQjn/=QCki 3k Q8Qkja` c0fjOJ)$E/(0M PwPR폄EIW$S%sHhVAƘ[ŭ٢-v*^V|bqWA#E嵧 `GmMtX(5{yq;eF*ư[ɠj8;,jZ!.SwNG{.qX=`!QHkn7K9f[ c6W> ]g>KȊR HaCUp6 뱾eXcu/8K=lo o*xۓ٥iA@UAMR>֐iֈC2a4AI)ACMtHZQ_hoY&Č$K"4]TA"h6ƹ-(0fuԌʼnlQepvƜ7򫡝ݎW*d[i)/;{'ޯ5HƜP۝fǜ_lYL q,n IDATX P3͘Ѐ0%h͂4ىH݂骘DS-ݩckDwD;ʲ2\@R:3O6@iVg-#]Dd)՗$Idüfn &m?\| qŶVS#cW/AO ]뛈ko6-ƽLk2>Ӏ7|9BCS5<݁;'9OvM^`Z|/%KQ~MH?fЏm/d>J|h9I8^m/$/:d4ADm]71,J*%7G-hf5{N!_־O"x0aJRpY䢩JuSAS֕,b0Սwg/bQ\WE²=i_H#hLrrg)FH9#4 :;`w)iPq8ȖF6B~fau5j9"CU61eGFU[r\ڿ_zwh3Ꮖ8/g8vjQꜥ3&ޠ"AutQ<ȷh=eGh=nHKI:Vg܃R0TImn\*PP[Ide^ԁ4ГnhUtVu irLk^g9\baP&Hz„sl+ױɠPLed"v]N=y=%s:JI]`EΔǧ sԟ'`4n?jKG~Tw26MICco $EJTb_@#뒎.7FaeTZa e$Lڋ#3eEO 7 `؛N~UeNSۖP +qPRl pi/^UA_CwaZ*^}SCv(݆x*ftpaACݧk#Zb c~q{F8<\+T6]q)o8cmS?<aVpb=Kn1iA<6z{gzNq1n)dN&KU)p/žx8i.@73D)(r& v=5?y5g{ uĉPxZ/̥)im$- n{@l_*x(+`U*:L tN_V==:{r_#q)1JU0 -xo?qA|3"3너Gp&҉}S>V0wnP7Ӑ4iaGތ?ޞj;+$j#,=ܥwSd&SWB%ܨ s |,٢ B-2.D5lrtJNH0j&®1i~ )0aWrt֡`%Z_.NC>yzOP^Nuūtq~HBTJ:\ ,*LJqGܚ(ƶ6J1%[Z9HLi %3l8v.JScu̕=X}s"3c7s4Ǭn=`K\ ކEjСs/LCXyHr1*:<6)׵WcR> 㕟ja8н"U& lAUN۹RƲUS#P L;}(E.PXqfV>3eL}RlnT#7c}[߇z)|=1SLksJAu)O-֨0āx'8(Lg%[aCS ӑÙ&{L:}X gYw&Uc>C<_+jVslrQLǞOF/.֔c?v|RG?O+a2~~+5ol:;pix -(^~} 60jʼg:>(ln6-N>%7VgWe ~Mo_~whr]Y)~nq[Ej_+1ى]R\)DQBE4QZsiB3__8Z{pe|fFs6fSZJ6mCtn-XGhf)@Li5UR(ɲ\EDb»?a.Re4Iz3r`(/71i-X$>@oH1m*S-ζ/*$ ]2>,ݜFou4Ks}:)79`S~b& -9>iIy5qS oSljU{z."e@E]ʥCZ'JΎnwi؉nw7@K+r[[kucV%4FÖ vgp1Sz(.m9QڟCm+.P r K:Cn'/@q! J\'Qn6i׻ QD)ȐioZfޛr1< ͟: ˆA"}0 qP 2j%AuLm=u~I6^d.v=XsTq(dz5,ZŌRwO\C@e|exFq@b*avS=K;d;Zf'Qho4s?'] ;SsDq ʚLhA$_䯻FvϮ ˞LTSl=dq8FKSDEd~iL.-7džTPzШ@0 &r^ lx0EFd`=1 RպN`^*cAO//4÷0>gB$f ]4ܷӽ՘tRDOaQ)UX^A瑱:koOs߮OG{mk[kv+JMӶ"E UPJb|yC&~5/hhG_@PovrIA7p>Q'zzHMn} P ^qlt4)(Qi*uK(פq@щu%:|"Ƈ[xʂg|ysz%RI%ˋBQ)̊d@bmͫ0; [LJH?T NTͰRt~UG ǂC/#׋#8tۍᔜF1E \:>lQaɜy3aʻ$uwԙL=4+l yN!G㋵R^k!Bo,'m?2mr.THϋE#% # z:uAc7Zs}=8ٵ<"%/sw QCKQiYkqfaNjf{!eE î1Iգ @3 a+rH4UR:p"0gDDH{S(I(—7 5MhS߿ND Nؚ:gDb$=D!2p9U+V/R}-zCyȗUw4Y-%9@oEk:)%@V"T`$EKy|H6Rk7 ,_@bbuH[M泥bPf,W|suqB_[O?>@z)_O'.)n$K7+dQ0D#9IK1e>Rb,q'V(1EC/4oy47\HܶPr]*$9OKmqg -Zr=7!-ȳ嘿jpu f'ݤ ~+ R qsS >dҐ&,?pF$/T#Č^+M /șj/ fDA6nW8-?N v}ޜ_`!AGN但}_eKnmo'L-U T'VKٿm:|[F`Y-#|ͼs[8 Hg_8 .Fdiy ?GF *&`mw} )~[3 ~ξU hN'lڃt``Kغ0OY&In!]mMCخiاs~Y_WmMxC]i#2L2TO!Ba8dŮgfmjPJT9 i!]8 ׶G)\8iT5ߖ$F i {c/x @0CBo=Bz%Bz/n @@̺N PB%ɷRAM!]P.Xp +_bnÙFC/GK:,,<8̱rU ;8ZouZ-f[ Y:2쾢/釨 t8Gg0*4M֥\o",ƶ&ˁz/^&ecX K];~"@7 XW:L,bGnċr{+MVәq IDATP]%4M6@uH}h,[l?ElЈrG娩Ġ6Xe҇u51_)qfK,ՈHUc*4&@&Ijӗ$ h'N$zG?}#\1hP#˘11pTx"PA`lLB;obb=0Ͼ$R*@qQHqKz|dU=Ls1V},#FJ r 9CXy77l 4/`؞ixN˹qdXM4i\&QP7Edy{[}H<;E\@8P˰rN+6͖<ǰ" GiOqʂsa7Ǽ^. ș/FepS䳾ꊊ5w8p-.qFcީj߷md->[4Of޸ô.hmr"0j<U^ k kbĤ(BVHr'~EcnmmjD›qҰlQ,ZK%s)bdC)GxAq :0zIZ&*{VweSD5?o@X?sx/"s\2Ux YX-CMyjpm4g$+ˋdQ>.οe?‟.-}aNl8#?Zw_fXɹ)Cw:, P! ]$ NeTIɤy-4N <0BKĊ3tLv]j9DENL/2`)J`i/tJt^nOZs.+xʀKTgO}Cx Mꊸ3ioE_(v,L EI6Pwmܪ5_W7@,4cY,6XM9ȁHpgj}O!&˞)Zj$[ R6t+֗ A cua !]@Knr?^}ջiPJ7VCC:ws] [7@}t lGyث`VˬFyI n@=PPvqԞ#bdvZ)bǃJbE7wJ]Z2 l>[0FdS1AH9bTG[!!ː0Ou^ >Kam!<4d}act{vEș Xs_X;!/<*NqڂH6Q˰zT1&ÂYϋ9r9OѰ䏥 &=) ?/?OS](O4=qls9{Vpr_9,a R oGb2/Cm?v_A#N6y@ )qeo+YCp@p&c['CzԪɊbHs34Hzl%KCz|8ks$#NB sdb7!}/Qv hqP^TOI: }UKL$)HSPʬu518%f&~K*UmgƆ=[ԕܩ 9@HɾSl!;J[)P@P<(@F/ p=s%x7s)19m؅|\_ 6,$R*&.iÑ;rl(_9T1`;ʻMH>c؏:IKrڤɈ̭t㈌U[[u: %zm[pkQsg-AO]͑WW-igxEtpF3Oڋo,`a~.me˷qH {8>#KAgg #iS9ip]VFomk|1q-Yɴ^ 㫱Xq B!K\]~dqi%}Mޜ2 = '~Üdo_r$`j:fTMm{R2`lwսuWS}Bs9CMr a]pjgoP_ܫjGNI jwXjvMRWPI辽vuqYDaEV,@z#9Rrg7hw=4Is~ҿZKt,eD \bvxyI 6bjUogyl+O<@Ǹ٤0ޥI^6s-_t sbRdr; (fWj@#xa"vryMn&HSxSik†玉aEqӐNɯ_@vjEL&Ӣg6bQ]_YX?`ǕӄkWgms^!#18~/ex>Ds56+Un+aǍywPJq]L k1HEm8H=C^,Giƻ'D[#N^TW_2.pW4a> -(sQYX̱Uy6yt[bDeԖ[L[nssI9x#2X<Gtvb\ ~1 ;dt:Yj ףN^7 t{FNPDOEt˫} b ݙAV4:.3{m]pغ%S9'c;N JϰU?Vvև0sنjy5=Fux3*x鲱oB$D6X/ƿW jKim կ ,?tf]wiv<]⇿ٞ__h|iKoN9WdSJZFu 0Z܇INN;$Ah| A|,<`>0U+&+T+ Gl Bg؜c53m ,}ܩ2BapHY1_TC}TzgLH/gė$PtfԅK!vq޲"}&JmJ)5`87`.63eou~-ͭem:yo8HJC]&1Ȕ\aB!jxgw6P JL1VԨ$B}TEI64MS5TUWq0QU4Mcd ,կ`v4@֪*  z 4yP t @O?,2LQͅzKnEM 3 ^ dj4PB7T"buq9Qg?9^~zLx wPqt(3HZ<6}~ Թ|)=2f(%Q4/=h̯Â竃 - <'0'a'|0NJ 6;JJWC}$Tg~3t@8ӕ4 h(rzK>x.o? a'P fIgWu_p/(ԖBL#JF*P^!#=^bUDy4zՂҔJ<HdH=@VwUYgh*$U,lZ^y$jh hWw:#zĺ*r xpwxkȯA$062\q Pɵđ.;zXj{jxxܮC(`©6{w\3S_L,Q O?6t'݀p\'B[  y ͎ƒp吲VFN`)f\|?Coσ0+@uR?ཻ3~˥f`;DgA~]ܵw&62urzk{2 쀳t8ĔT0b`Ht4=_ueCt`]oy=I'?5k=Gj &kީ tzZ`*MJ6c^Jx?J.͆i$vixc epI?YܝsjWw:p5Z {Wt)]Y;pdގ{x~;%a=?wO<Nj]LOLPM:.$Ѕp`Fgp]pl-? m\~-c*{ERT3A|V蹛ӧ,oIԩ+Ux~֯?C-StCjkޙD6͜U@&˴vQӈp>SA uHvLv;_ +UmL I`pv]%&Eb"E^I (Bઊ0đݹ-eN+"\gЂxհ0%tW_&#Vvvvyܼ|F p%B(_?R2wM'fG9@llK=-\7yllM=ؼmyѯTaᗚg9%{F/RmͳUTL5zTR5_28eȦmnJ29Jt*G_mv(7vܴeT_Xk cѢe{)GĊҊUU)%a\kMEK Ljb0Pg̈́t]`Xv*p?6M8Oj[8-'b?zUovP =K?u.T:z?| OFG}ENPcSk3}ĂȐÇ_ˆ9F{q,o/pCMdi8H[*)f5zh`Z:VvJbП<**(պZ'4S*[,Mdpt:ۺ*R>Ax Y&HA5R/6Я mq crg#0e +#4.n< iߟ2~p8NFw8q Pڌ =Kg3wkrFt 4cѣ끖#v}iXgv<żfCchyNRłuwue;zMM6gx+|''0v`̿)0~jL!tmk=ogT4zw{HN g/чi:L׏ C;5??}_Ha=> t*@j s ӭ?JJzѻb$w͖9YA?Ϟ.)_c+%4U.abAm-6u `S5M%TyDfۚnI#lMc)]h5ۊD_͔I yU]TLԮ7 <`u oE֜G9B c[\,z\Ev:PmK!QAlgF^ܴJ!)!p%UB Ihp@.Qa#W;;| !tLc9ŨI,ɇ'/QT9P'y!B1O'M]C/ŕXE \e9ƽHꐥ@MpFNߘ囒5Nx|6T:sN= M)8޽ԕlYV Xk܀EƍCӥkmI1y+~(5LW$q[PWOc8PRoZI!vhys]S*e@pӽƈV]A-T[煉@~n"Ũ(l8¯2 3)O[ #G#.l۳dx<* /j^0:~s-Zk,pmU Wnyhp}$[kp*GeҪ;I֢!Нq,5>B{%s>*&OXZ^3njU,&RdP*l̶6lt){ʧx8L ? O#)WwoOAR57 cpHC&tęFo9 IDAT XoSi}A[z}s?׮@(shg_QD7N1FĬwvKR=DvN, ޖۄm]Gj$]hNI=͡D$hI6K<2WgA. Ҹ*@Gtr+ZQN۔3t'/שxޕ1q?ߠFwPSs8OC寗yLj~41UO$f!6;Hr:+>wp]m9m̔gi@ȅu=KMZ[Tk[V[od|a vG¾.kǐ\Xf\3K7Ad:a|']=_ۭP MugPw҂& I|^P'bNQ2booP#5|шrha U单ɟrHf"I M:FEg@^#Xem&;P/:R"*a =Ta8?ֆ/da;̀-*c H8@w ^tEh#Cnx-%8ٷƕ{FS-81_v5 =̀;eY>,ZڻuS59肮}Y]T9Z>WQq,\,c* _h!_^`Xo9qo~iRV ߐ̩$@FXf/uvSIWN$tlM\T`r04=J_NK"ct^1 (DM .֩;]>մ0Out|A2H:i6@m>WTtk2}xR;M_3E{"yUV/mL#YTW޲>Q 6YfŹ*qll®%lQhыh?H @Ie `TVYZǫuE6<Ǭw;,jLXS5$p$-ſÓT0r >#Tك23\X,Vkַj'GS\qR7iƹɑ|7j.p"9=u+HOp/ᆮIUUTBw 7yy'(KGAPCa)rb4(y ~4- M*Ae/Us1z@6p  z^:+[@ Z@"Md5SPI%4{jw(l#ca~td墄9@u:l.)8߬DK;f1 H,x"YrT֧K~8ɪ3698ȊyPuPsklŏͲ:VG#T9QӈbF^S~XUϦ=0R}ؤ|?[OڻȮ/x<u=gS5PU}*f_^eWXnvMծ ~yX-#'6?"$`8fӔC@Aq52T%i u߲~/zPu#Ziaf@Ց&JxR9Z!6=>ov a O|¼sZќsT_[қ6JZ-8tVxWC ]{ꏫM~xR>,3e[vY<-t!>lk\wÝ>FFu=t?ɿ|G_b?ws5_cyhƯw9{-<஺|{`oc"L[֚N²CZ˟i ܭ?5k_pyS׳)-}t*wr>=\DG M5;-> JS! odDAJTupcqG硉B&P !0اx-Տ=og U, ]NLT2<+\[ѥև^U8 (]4e38ȶ[w$}C}3M>53kլ~6o")ƞ"D W&j8LhG}p!!h|Գ@WzJy[X""*!]a iw{CW /;ɧ?š ȆS_◯Y VvY`çv׉chÌ;e94@ߛ)? o$<۩e] PJl䳄9V8 3) 9xdUc1S,9_8u~: ofj`y ;~c^4g9U?c5GJa=$@rFulx4~~/IqJ0[^=O_\^}jJѐ^thn1I:L7]VQAKRZ#Wݔ }͞K|B:97#U3Q*a ~[c[QqY:dz(իz !~< aӽ9 aW_;gխ!?$[4/l(^ &+H~Au&%|n4vCl=$m, #I6+!J!@0Z[wU'I行 VxSf:d77T݂k`7?ޱ\m2l2#nCuM 55b*襖Z'k«o7wϿ|vwh<[jUHi*Pq)5W8|>ֱ:{lc9Ӛ>B`QOKɐDr~|o}?g86)--@9;V_ p~_ӽ6co=usᎽi7ߘe LBLL䯥ُK?RXp*S$^H? k!&z]"Nkb%4ip{ƖTt2tk®P`<թ){-λ+6Vڮ|iX'6WXܝ=: \aVHY2s`b}J"MR5u3n>PnK LeR' opc\ Й` 24}y"Vp}_1o%t0ڭT̗U"_=w6];K~*@43l)+ik M!l-LRM_xhujÆhFs=.a+F Fx44~i4mc?dN$(o\>"Mopsa@7JE@pHɿ7`xɼ~b?+DCґOmFڲd |fjtoU? m߉{ɞ!9EG>5͋lw$&,_)Zc h1ëE= 1` gz^ 'ԬeCs.[NSΠ]wHeY=],.1W!bl0gp7Gƶ@+#׵>?9GKYO-`PZn5 oWv 03K/W$eGE0{Li!Yb܃埊J~iDw:7CT%CrG3\Y$Z*p߬0+afeiL>떟.;_j| cvy*ԅZR"-SKHAӫST;ʬ&Ja3B87քFD3V2ofˆp5^DOO7eX Z) (^ + _{÷mf[+k=Ar<;rN_?K;ia6WF|t wċ_z F{=kZhjm<]BN=pd_'w2҃~U{ p,d,Nl7$. h,FS1=0緟ߜ6⨓:srR|JMF'5 /c nGbzV:K74Iq V 0[ &Gc}(tsi vN>OPٔ/f9ƩfUPԢ+12rë(3:ݰӥfֿXJvdFܭ H?:05?>%Blu < v E2RJ#;gy5mi ͊m(Z|ҜyT[̤GHhZxv5t;ή5PPaa!$Tָ]FK> T ĘFohxHA%z5SV13ծpQfG bn΍WS(h8//ە$.YHvb'pXb2U[ת5F1 -PB)s*(YX4g3LgSv3W1"ݤ ηtZY3j[h8Y(&B'sGF%U]-ً>eljB_L,vȦn=n[AD<6=øп6K9Y>^cEzfW7-ϻVMˊf4-La+Oc=PQ@lݒHnNN+ Z#DXGEg\`,&3^=w{ۊ>y@𑆒;ZCqse4V$VLñ-Shqoi,eMa⵼tn}"(j8Z!9&4Z˝U"Um1X*I,\TyQQ>r^pR-8y\t;4骎JeD&ǏնqZjzg;?S{Sƾc#rg ©dl~8ֿzA,4z{3z-Ym[ow;ZպuFe3}z>[xMo{igUSG_h}_n[5nZO}#M8LϦenz 7WTqh:u K<^ͤ!ηr }Єئ~⿒ UoED""K?PՅJ&pHك@P( Cø:iS 멕Αu23.6^]Bgz=9Չp)xȏd"+ 'al;cx$:ӯT_7<[3"kw=Hw};-w!p~ͮ2MH4ѵ Xlr )]|0pg;/@RCe.SʋFz.t}sLI59nQ|& SdSkҟ\c5|dZ鏢Z[8wH}43˃b& m9;PҴ3>mіHDP+ P:V1,5G%T{TӻI§W4:bGUjM-B"sF70Bk蕵qt3>#Nõl:X,>^SygTѨ<L \8g*^ b 9FxQi8I\8<f->:'{PvduNp4xl30Zmk4+;roM!ڝzuS(EVfjPH᭷E,Ɨ" ?Uq 5qZXM`U[{3{S=grv=hN{km hyZ.y]` "ab :Äǘ:2 B[" X@cmONh6ZY櫔KXs]f g.k{Tmx]%Do蜴~c㹁eLO. YZ7U(+OCrߨgG/M@X<-?Th5ӏonйB_u+4EcP`oCk3yy-_ \gՆX2_%-HH[\6PZYkM rI5m%z%ʦa|ɀWIBun+ 4TtaWcMJ/71 K Gh-2FՉ-ǡp(Z.DW@vh fM-(k-|xsQ0eV,&+.JO]\ABO%UV3}*"z$*R fW7u_?TlUZv ]J6Tֹ3*2f5lx ZdAij8Taqcԍ~̵1V#n4GD SkMLKlTrP& wzAHr ԗ QbR8f*Kj.?ҷ;x~&nϝGx/ }N+~^ 3y*|J;>L{)6pxp ftoN;"y[xp\C6i dbFc"+ꗓy6MB*!_]q!ODUی75>ٹҋ@  w*. e|j;_A}emkK +ȟ; ܴ0iҟup/i@o!aha:+ eL<.ME@Yut8ӢXK$pg~0L6+ȏ7TbCJW@p6{ \ B+)8?3&w?|3~2i|iAk}x뵛W _h[T)|uctvWKCNy~26_^v ]kXu9ެAAa$TXACUԏoƯCo'[8[\B3$[!1fWz_ ~̈́9PWQɲV!#Vz|Z1 {C%cm Ć3ΈϱU,೪e`f y<&T{B,s:%\ХߕH[_Нs-8Tż;g5hZVY):6qy]wbūKm8zevbr0&7]{y h$hKj$pzH* l5[mkJ5tf ei8oxJx 6ڽi/:Wt=9.7pCοo?Zj5xҿd;ui%ϏilQf.pGXD^Vm7:ϕH-I;@)BU6IMRAjJ%k,A$ԭESj nv@wnM{TskhhB. 2 څT8G? WF>Ne þ#Rd7 CrBO}UvsdHҮoCppP)%qG twD+11;b_N[3og/Iedb-@'06f`_o'[-!A= JUO.4m} !6w@! 3ėOI z]jmĸR ٭=p\:V T"Q`*GCs\bxb 8S^tu>R豄Fmn relpec3ʪՖ kgmFՎÖu$WzʁBZ\ 061q,7QYȉsDO#8,!1KR;,ha;cruRSw&#Դ2-{v.͘AY=ȦMF@WS}yU(&Qw祆Yu$aL<ї `|bh8mT9q)-oms- ϓS|X d ɼn}/â nU@3sQp L+։骻J0^s0F78_9X$尨kVس"\`Pa`- Hr| @،0ۍ'X~zĥrH ʅeAA[}73lHܳPdE9.Ji=gtLlh[ކOCNg4gezR}qW@w(̵/S}J6M" (ht^G}~@?У W|v;`}>e~~^OmtqxQK־=lp\A$}].ǝ\QHXZ%e]|@c@Qel+|\’zc&1SىW*,RvT5摐G2ق:O]|9MkYtJcwZD8t`=LmN.o3Y'0 (|iM#YgPLr%RhaBS^cK~^d4C&{vHmMm7 ҿ_ۼv?_6Hnxᨎb } h!^mP Tp8@TB$/XxgQe@M/ԗ@֙e,`i VIe|l pkM. \UD+]fQ~9%2Z$XSWD v R&O:tO\0ἕAů+x\z489H 5#Z5%yDM9XW 7bP-SeASLE,vQR|Ye ^⤢76bU1UϕTfp}&/_lⓕgVJ% q9b,(vj1w_Nṥ0Zʯ5?vX̙I(y.9c>?꼵v5IoT 110r3TtP+32]J"%mB+yn{k #߭C7eVtz7&uo+Jr9rs : -tx%:#f!r%RuWBL Z믗:8=[ 8(=Ni3J  (:^[8ǗiM MwIhN^@C(JEPE ܱ6Βtj ҒnTUA;هb3 XCN&6h1T" |8>ֹQM,K.f25&_0!0WjiV(Dgfct 3DMG`Ɇ4;6F :#Zr$e:ib >w52q}I9e~is`[̵-RC=Dد@/;&s+9-E)q8Zz2lm`K{qTS_IU%_vo;Nvz8̜ 8UHv{r:^=n8n)]"@ٝ[kF@UURސ-D9{RT:&~i75 W= uQE g?`ʉSTM:¿ z%?&P|~ׯP@yFB4Qil2>s'xZkC.VU6*mY@UΥN}drX+~>(%9.VWoږlN/G )qLwpafi񕇃L[ B(lmfCqdޓ W-Tl5gPV%_bZV~1tNW(煽s1F) \}97.RKjj{&ܩoXxd8yPȵKֲR9`T$i+p6@4K{[.v\'\bIiZ"CbD~ ].u*>oC缃;fuH˘m L-db |S2;Bj0bRUv@ه*˃V%Lf#.wxeqFJ}F6L/ƴЫe'CJ6|Ex"Riy(3v+L 5LyT%'G_9ٻIT>S#ӄ_OΗܖI+ `YeMo<݆~^[uVlЇ?m-Co]?zy>iqa9?zn\WY@?Xg\8sWL0x{|^DtJ+NZIÄ:~ JC;,0PWjl-}#bo(ZaqJ]BDƈ#{ZI2D]Rxwޥ$?=Tu?6FO[ )\YV'է~uRkƲN-{9lgёNϩh4=:aFt Q(_S]V!US‚Z .WpghMPZ4?9,ğl`3*TE&DsLk8Tj ^/W |)Ty55.ՔyŎ^T 5jke]a 4M)mA #(iH\L.;Oqv,I~P"$įm%h\$ T<Ĕ.q_Rȁ.sZ?D'` EҪ۞'ɷ1OO.S#ς!WXh!ohFE~{ 855a{kSS c`.1smv,0R|[aS7%tٿ`=Mo؋oT^){:(ϛ}ջ^ta|'o{sw([׮1P'zsӖ6R%YV-n=P.Bi{[|Ev,KN!Z0Q♱~\pp ݯTeW9sv^{{8v_a)"y=2A])ӹsݶb'FInp]QFZRmFD 0S}I4UaAak<` <\?n9* !E8I@WQ\aBW,o0D#TTa9u(S4F\0] ЈOs$9]Z,>Ju˔@yϳo[ŵ]K?܁΃.pfTug6!@ lu>Gi Toe>6]8KOΚO"4t걟_u¿tKtzںO/ݟ1>#LDGtSE9x  4Eu%Z%Eg;2fݤ*_/ZdQO?nR.gOKsnh2"yL1y 0L jwuBe'ޑ^k֍0̐7~]F|9X%M.?+.K/Fg=LT$-v[#u{jjk>}8ctcp-*P/孼=dZ/_C~c=#ck,Zat;_n]v~nuB mY!dxfxoOAҚo=eglcl+>oAϊF#Y N#0bF%I}׬aaDLp,`SsfWQoñϠ=w)ޡ"O HhSN5rE5]෤<.EuW~=TXv[gSҎGyz`YalԴUte,J3 P뛯/Ąk0ԯ^$`7'hhr'%#.jc8Z G|AkT`\*Phc31bf2.PկȈ:5}5n29$įUxiqIg1K=ՀbJY"_F2ZuvmcÈݧQҋ~읧޷%qVRf&a+=>uYLMZ§LjfTGy]^z}[ N+L`uLa/_vL $Jܻ.mRg,aP t9d_puA <X.шɥ IiZ;w~zD)8Mr}Ewf?e/6CC}*e)HOڞ\@U"Bm0RU 1s.5G O(gU7~nP0'5+pK񣡒G\옰 B@VU:ȶ(v^W E'L59OwÙG~ z+;øo5[oQӈin̜%j4}%DTQ4/勊x"Ÿ3*y@Uݎ j+Rdhl@EU/2/auǑou=n{iF=­3jjU'=[Ղ#:ftab%I,Ş m48, fR-d42a0)k `M9RȺ>͉nѫ傫s:ioF$iͷd8⫏ g[z^4+ӯ*(gG%r$+kPy3xn5?pFUڏ~색|6xiU~N'Kb>4 UuA;*߮y5|Ao_k"@&: B{@.-">9*+%ķ:YZ"Su?@pj, `_ Yh{ +D,t q 2mplUԺX:ݩpKCA5zRߌ lw6@H0qH)Xz+ 6>QN]b|;zf-oASyx37ܔ:M˄y[yʙZle'DJa*>, @з|x= SuINД[O_v#Mi+yr`,LbHf6?3hy`_dd8kgh>AI }@6͟{~.ë t5 !)w{bRveR 0s7̦S `J5^Kƀc_B.[E71߽aw#=ᤫ' bs܅awH/@U5"T ;"@[I:p~ׯh76;SJIvSJ VV{i 9.ہ=3® +{ށwW gS} 9@)_rb{{OPb\mpVN ? ݴvA@lO^~퉕f9do@ʢin-4Ry*f?LUx#Ws(ݬqAg&2&ӨđnHbӌm>=Օ֠h9䜶xx X0$_^0+6ZpJfLJ#bXv2Wv0F:lQ6Q{iƢ:tY6ο&]BR?9o[`f5П D܉HDE&݈XbQ}vy͝Rze_cWku?ȟz a?J?0m%;NoX@~c;k`O-P+Eޕȓ:}H{o>$bDT0Lu`xP nmq7ja׉уMi b'?Q;]1Ӥ0QHe 9/Fk¬RwRЎ[Qp2ދfavc K W ;uwRO{bTPZ'wo`2aZ>2|v hb1#v{a4o]@q 4ߦMTuJEc6O Ak8]C?*qOz jH[ƲrMuqaCc-[qwf?;*'^6O8lX ۧ$OK13&}Z1$֠FCUX >|'iS}dh-n0'偏5Z µ \&:9[F~ZϾ?֠z,WN+l(L5.pۋ 'ۇ]I.Cg]x5+WEGgq?Cx'681)r3%K]$|11 Ce:@Z&f~WEC"v \S|߯ Q[-3/LGT|bcG̐K``@1X#6xرб9Dg"1ovOB "PkzP^%TY3 I5(T6CCR4SE_hBkbZsԪ/cgtVH`hM!pX~Η=iSʀ9|.Gqrߕz-vS ABBn-idغїdiܠm#wE?'1f9\,[ {N@Ahf뱈_+W#e'0#oFXׅpz ]ZEs_Vd![оT |;#6kox^Re,5 Q槹PW Σv|ݴd29lnH'+n:8R:!L'y#S/K=wS`g]wwV]J z_}%;kq{qm~]ގ0Dhޤ Spoؘ^H  +3Բ[ިp[m?V.q{"G +_< MwR|8,[7 9󜾙dP]1D7 6NŒLi(v VG+*Y:=m_]}9Zu+TޔRۀ^ĕ^IInLӽPtUCt)Y\& k8e?2Z]qj ƀ8'3" nS@٠volB苀R7ɧ`h+9Ҿqx޷}/C B@e"Kw3 5Vqݽ y ~sjR< 9yga;<´uڑa !| l=c>"ė!jY:$Mh E%~?3kb|3J.&HS^22*5TMy.qbmm0R~rv.Ԅ:Δ1`Lyvf6=Mr=;;AEC*6"T.^mvI+„R2{R cOiZ-f~YzaZőBo"Ƈjb!s]ݧzk():NzЖیa_I46~O[_;Qm3փ6It[H㍎BSegʃɮ}B`)h{ ^EgV1o^!'}*[BH h);9|^W'f:o> |͹V6/%^Z4;t gh1&J@vh J@ G\յ46ȅhzhku?flJiB? G bc7-SҌjbT S=|/7ײַf@I4?*ԡcu "dm^)QxAgA5?1RWKDƥ6f sN~]Ի6HVDRP(RgR EnjI%.B"Xo>Ä9Ҋ9. ܚ1'JC(5.3<=?ʢV h^̚k8GxNT1c4 GSѺ7v2b.N(7pL)6x9i%Eq; ]C9bfs9uU\ɔaVl/3Լ Bhi]ezK4(GDrd2 @wi I N*a_f?Qiֱ%M9Bn%/nD\#)@7f`yN;EVuF6Vy5{}3.gڲ}i'NYvO\|L"ZGx> 'cplv5s, $ů,A|`ࡽ5sUyn7`6X|1M!׎a#UQEQD<^G5pM%cWܐ=o$>2\XlBͪ]|=t0ᕗV%4v GgTQ3 f LRˣJ:ޕAEwuR +E+/#$ IqU$r4!sӯ;OM_}'l<}p˨2ChXBp#byk,ЏkM@\YiJQ}j+N9{W /- 7Ji9Kw^\//NO1V*~l2~J)lz/ -RDAAk͛D*x,TJsqAB(BՎ咜@|X‰ .rm'曺@F mWC8o58pØʈo=c`C;B-9Q/ [ҷg5#W99 fnz" QF hPhS1rB ;jvTw5P&v6vm0[`;hmCv7'+z*S?VFN82NjAC$?]|]@kީ=_L"bDA3/C2^yGpKEUŶnLӌ58M5G4ywb#Q4W _U}Ql5@[sICY^ PTvpĨZ0aC4>, SUY{6%]hz\5`_q(HnדDf6st^WA3K.m4*[M:Y9+p kD|*t"\A ~a GwPsWR~ E*zqΩd*y~rFq(5٫"` J3F\T=}=_7CAѹlɑTUs振#TUM6 !80"Q0t.Bq`9G[X&HN7Ē5rl\ҵGZju j:66>iT!N(ig0~Q;Pq 2dFx,C̡ q_=xk"C_ CW5 !di< + 8klRvlL>cq&24my6Xh֚1DsmNHMqj L &puoMlΖ5.?ӛ:o$gC]uǮ[ QFx2>reJSP 53!2X^g0Bi@](0 ^1 s]Af2)2M`Gǟ9^߬c]//^y'uKj9v-י*&>7iCMyI nYzN?C)]W[7Q6~>䷊kpO ӯVQ?e[ߌ/56YϦHn*7c\D7D杜C.X6q>UU>Ŗr7ʯ]P[!L*BcN-PujUV9nCԈf{aN\j`s.x[<ھzk>ځ>f#pZ՗⢷MU H/m/ %|QZSX*c 4?T!B:dRi(@4}t @knn e6wP8 2<v3ɤ? mA%}7Z@hZ5 al<$Da7\n'6$Ex؏a}r(EMvkkcTe{ r<ӓj4ORC)yxѝ8f)uE""P,>wƇ(Bv4tqp%(nѯ?ŅUnxɦz9)#OܭKg/stxWfYUd< @0X(%NZvʍ$ y /a[>/Ѳp|2ƉˁbcרKU("_fB@L5M0?$NV\pc Boڏћw*9*q7v|0DvϽb؟m%MCDҨ&4Uj~})TC޸XW}0a=_zfktH ^n3ǐS%[}o(YtyWFI/v-Cq4ïaA-[ ?^ FhhF;mE뗕[ (\Hg<_L'xݯkJ>X{Wo72)7Y+mfH??o_wWQ;ߛ=a-*ܜ|¼mCbF$.nf*Whfü(|sHb Ob+jT7qL†[v9ECyR٪? 6ṢN랦&aOVv$#,U䛦QW߇PwUbD}`b1t\=cڠ6Ǧm/q,AhQ͟ wø 8ȵn†y0[\0z4g3IN#f0'dq%I $ ŕȋr >~ yH*gpX D*W6_n v4@(UWauf%Su^c7.M:ǿZ_܉eqKw # S/uk,B \.-L ' Z,.:s77[/Ûn~~5'[tFioSby 9[A`E?DxBb OR_CB-% @:Fmg7#TYG]hhƒu8À-k@ h_@L8?B2`㝾kK|[䂆A9P/? JJjw嶓ڣ~뇹:-y9 F_ _C a; 7yg:'g<?,g(b.dr0v)'4]6Ze?D['%(?H**{¹elC} ~FߑG$KW,qmI(s;ڳ7 oz(]M v8ǜ?t:9͗ 1uupn7WZmyyr\rpʼ8jʘݽB] [U7vDUyٝWխIk}} Sn6ڲkЬ,%{Fim4nRZuml"vO_nח? )刻nl{uܮ!`(*6U46Bh*3UB$HP 0c QHZ\Z#ɆZ9%@;/ 46IY%d]lՙ>z"'-¡&CQd&*UX2p1^ gp<(F}s|Ƃqůz'q[pgYRَ&llﳗp0XZe*]UN-5ْj9[ݗbtVyas!.q}r$'7ЍX؏]aKal̒w܄Kf(u,/R"'O}}LQf*>M,P6ӸIi&wkq˨UGJPF֠u)ULD4;f2`_X}"~x݄0XVo>!#jPMb< vڰQoM', iާtB,*mh~!X81РTЌ -ʺ+TEZkQT_ ٺA^_  UBWRC%pj]yPV(1Fv5 uQ!x]HkZq  BE3*E^b_JiYfTW9 ^>^*Pf;v|(a8_9̴̋wBB" }̚ꆈLgyQٯߍ ɉͺnwI+ DA]~XK^F-j"R 5? eR&5Э' go)?hQ L?4ob%:3<*#zvW)/OLfH۶PDEKAVnqT4h*q\`~wJS~DNA&~GT\$uBevrq$KQ&U$ 1ǵR6m~l0AhGr>BPi/xtY4ಟ5 #xn4JӋ*xׁ 4OÝ:ŻKP~DhlSOj'!u!l_(%X8xghkxWS!o_5')%˰Wq$ڢQyw>0 r5xK>5zX־2ҭ3 Q6M3ݒo06kMfj$Jlvn8: na6Uy;K0wqfi#{]w368hZ"N&ᔟikehgŔf͵GYl@]V&:GUe3haTl;f 5#fTypj'dFxGTm0J"=@ww/پJ wM}¯6ͼ'7' 9kc Dx@!K!mċ4xu7)6KEh@Z 'Zk¼lUb05Q'q{\h|6uqS("z9@jHkv[SE6 ͸5=͢nUA^FGHX EPOe˽fÔ(p ~*Tq]AMrPu r H. Sgˈ'5V(FofkUt֬,Nw 7?8'j,XFM -C-51#^݀aF9Q`v|Nj"NK&J?ɭua0҇'_,yYQ{T%ZW*sϻ(5 sи;C$ڑ>@MmZ`1 76H)Z(Ua[)sdwB5kMd2>|f:>ك!1O@@L %aw8HXW{ _aRO|}+V{xȁ7>ud_t^w3Dt>־W"LkӋbϵ}*LotO֜w]gGt_η{oxOߙKۤ~XM3N!Ux;8~jrǵcߵK)jr7}: _:w!y}#Ӄg3٘0WPV4qo_DkeKE5Ax%0yevCB/?.=Zz ^shdv>Df$q4iـF9876B׏r b)U( D Ҏ~ Ϣ#t@kܧ7,mVa%ҵPƶ'Pg2Ja w4ʤrtR` yqУ;[hh3Z` PF\vZFoo5Bb!D_O@n?ezpuޯ> _W @0Ur{Xb}X( Y 9Z/X92zi8pE; ƍI-0v{FܝcEFh~"0l5L}@53C; Lο??لAp^t$GEVX pB '.݃Aѱych 'Z%0 [,d3I-vH N=iٞGT{'Cvxb cAԇ4sţ4Tnq4'mSqwi&%rli~N0l\}dO?(㿛muӬ*/t=F^ҷ ?n ? Qg"&7Y_,z8}mvR6[T'YST]k)'P{Zhԧi#YLNBv/k8Cמ,k7䣨nw_(<`9Jas= !bKri/|Cbr |HUzʒ IDAT2' #[Smh HsU$DR\z3F)pCğ2,$u{ǗV+I4̰ӃGZt*5q0r߫/$ ztZ$y8 Kp*v,g1Dj&id[8rbNq@ =>#( ^  ukh8 6ttp~ì`iU^>IQcqS/,*BDNfck]i\o ;K*Q# c2и=ZNq wUTJ%90T|`-l`B(\G;2&]v Xz'7hJR/[Fv+t>oTJ4]mq4nN!"c_*mdpDK]h_i{*`M>Į>w-*k$򰛧ywLqhzs):A?W d/A*"j*w^טyETf)i۲BO2kC tzI$"ʽ: e۱˜ lUEYDsFv恍aMcfq[t`hRL=#^7. ˧w~No&fy  59=[w\ & K[>4f^C[3%ss{(6dMCdI #b6!-ƣީ9=ՁM=ulksQl~]֯?z,i;FFRToZۣ*&6勯8yuֆ/*cba A*yΑYW`M<=J*TNInI3Pn"M ]\p lWzHg ! "-8L ?#k?T1l4W:Sx8!8}HZhb{+B0GȞk2T5vG5KL`X\;tG+5E|Y/]Sg񟤎;aw3_(<|9Ҋ|9rcGFv2,^Ŵ&I`jٺp<͘`er!^qkCY(ç6M:l? n3ü5( oUm !͂-G|'L}* :ouá'h/Tw䛦_h~H)bvK;sO:*euz@clחܖXK<Gqy'T!zA*{]ʒPn0gi˶O}w}Ks~%]( w<˕k!M*1 ?nS~3{R,E ZJEڿ<λ(xlAc~xwgO/!mHw%0-<]׻x?i={n &MI"4ƽ$ )BPH " 3ԳksV/ ISs9c[wx@;ojNޟ$y:F_a5|A[3-fP'*=D=;wwib.^Ͻ_;%VQy9wFN <)Oy``h~Ӝt=vDpҊv9U"4kΧ =shcmxg'ni~oKOt=50UE18T2SYXK"R,s.E!Rf~[I)`9m{"u,.B^D3IWcq~/eEGΎ]ݻO9:ЩES (|^E?)&{|&qn^"{ur:n kuH5| t={~Z$-2eʹ{K]_´}C 99ܭm!\ʓ77z/(rUJQNO4SRY™r_¿|_|2wAqx(Wd O0'w%=MiBgm5Pd؋e{uYg>,]OoiA"9Gp2>SNZo~hx-?8nNy_{c.*%{?P5;i0Wi°4*hhx瑞Ύhnꉪ mMa0BD(/ ffldWkK= :qϬ\i@9dLqt8b+'!}ƾaSј9F?} Ocgl)tQdo1bfIQU=i/US۳桀/1A c!o),ZpTiW66݊`r8̓=v}gnv4:W4TP6P.xSL M}[|掖>&u%#;QFv|f~:5۷+(Se <:K6-_8eMK-ׄau1qi5va(<}#פg} -b>+\iu2|ʱf N?5K_9M.kzW_Hn$-$km"'wݲl+ `A_fzNlP\lwڤ|7DHXjP2b j̍פ>pަJ۝pq*Yhk x@!HwM2-y * M4@ Um 07%-ue[c1] pMMj s^ @ qH؀!Bzh%:fDxWqdv1 ,NyH׷bɝCG͖(N,OoWt=/vITvڪA{DHZ`Ek]ojyۘ?nۻ/o?=~ Tv4:o<:O+vueV&v:7CD| #jk1 Б>fZG3{(, L!؊nVHZˢ8idp3 ?H{:Ƒ؁u8,k}qޭfOCC~҃Y5 5k][[T[֗}@Q,ֳ 1_W:d4Umnq[ _ʳX[VjC8vOUG [sJtp{a1:R@z/c|dqQzi%b%4LVT ֨ޓt^hi)-}:ʄԱ7&HT}&nuM*Siwe v-#r!=deU;kG"N Au_qfcH~vtws-k!Z; 'ʹXafy -5/ϑKefǁWCK&#aـӽZq p6&8bdn\$o塐w.|&fyRm'sv}羺gPlzC&޻yUqmS+N#_֜\Hyxgv~YhByR9ԅժEbgM?>^LTggo3;VvMD9sCڻY:EzY\h↓7_WCCc9MSr{h@\IdX\U)*WB4Ì'(ys: |(~e6g$plqSdT/W?tl̐ NX~fMT] EP!ܤT<4@ %,xP🷭֦ī"R))"R*Ib< w,)]<<' _,e멝'mB3E^yJנcy#A7b'NӐ%32ms -0SO$$sWD ^.1qq@ m.7;c.(z+̱?_Իov71hp0ˉFՁC_յYлd2%SdGg'[$p8R'ICf?RW؛9D* ԝ_2 "T[?F!YdCc=1 ض '4Q"0O{t~;>P`Zlû.qi!Pj*jn&6B}"j% Sa-+<.PjcplI  620j8VufrTp8<Ei@ʙ|$G-Dߵ,8ȣ6߾rR 5B6 ב5̧cSKZ`^7|g;8SF\hd@_'b+쇧=+Γ֝fN}?2/|?~n!*HӀ.A:5ww94*xƓ)gu w7W)׷iιӨ5~Rы+LnͫOE,v6b Jtbn@"A aTlCP /azpGn"_RJuE(%F9|EvnT!S,'u)qsTQuةj5ijt#s),DiQX@ j6+3S1 ?ǷEԿ-BrXoOK+C 3~,>2z:::9ȣE?zaȷڬwk`ȼ U ^: hySd ;N&ڼ3JFZlC~i^`i}L$N>C$yLck_K' rG_\I^wy"Ear;ВCCe^4CT9 %EQ.뾛(Ӵg7GMεt M4Ac~9CZ Q;G;KS 2M&S{!ʇ5K%gyy5bL+L}qذ[;rd!X|4ltТ{f҅fXAV3F9轶oXEl`ZW.<:yf5^㥏lK4"ŭFߐ?2[a2PղD.q[E!|\[X5鸏͐8=/5p-h!,S2bWI 21d>tst 2`Zކ,A ϳ C&j[wic@)vXa%O@'*gΕK $+5=a<>;Ix<>{5NBZxr IDAT=S'X-=ݻv>r^*"nZmkH0>(ddxq@q;OI+0~wa?voL;7AGZM\|"H\ e/>(E~NZ=kMgCi+GwڀGjt|ɝV}]T|nfgíʼ如/+2WzF Js(um㲯*PeG;lNF W2uөkZ?0LO /W{:hxđ{k GfeJSUQ5Z+PP/@6q]0 /tw9&x@X+U1-7LҼD]c*hac[ u+Z!4$d,++_RJϛ1 $E9͒AHћ(-зIeҖ35vЬEqⴟ mbнdr0!dYMxgė!dfgxm$nlY'[ߌ=O2<JcZ:lj[d&߳>OV̍³1ywJ8 ~&mƢ_Jb WPS?~7 [&4h>3{ɭn#:$&C#$McW {fek2/gtM}~X(L[YѤ"M\R[-H6(\: .#nHtO:#2De0}I=5ϞPX(GY;.N% Fl%Ad7V #[.H%n ݸQ6V3 :iàK2Of1l& /-wSy.oyij%:V)Y[קᤶ妥XDG;m#aiH'픚4$UCY AVdžA(15T.@wWf0Njc<]E8ބ|-[#@8Q6HSO It0̟7R$qXyݩ:!us;#B_ާ]Kw_vPtdϏ?XG @.Dp j?, <.~婸x{iLݞӈ-=8SJ G)G=k f"iZN窏t7ʂ~<~O;~2>ط÷# ֶ3mχ\@nH"vL)ݹ ;qB!HM[tBb8Hʕ,cM jׂ(qvb`晐61w61p0߃5 S~!Aї'l9b)+-Հ `Do_CS]uqSţ+ſcCg9?8D${ ?Ng3j2K]ߘ~|?4[v=[!ۃ9Yw|@Ȱ[N,دE;ڛ~ۅ)3jXDC 5-=6_GDT-,تzCDBmPZS_BJUӸDyslM ՠٱkWӉ5.YwA>UhaC״7:97zxe =R/C:ο;sᆬMefJ@V_L'|ˠڈ4UӤEdix6[*CsfUMA08kVWtX:iLS g>YoX&>TK`749/jJ1댗q+1m0Jͬhqthm; HV`J<ł 8i#VGTRt>IXeFj|?3Yf@BY1d8= n0vJu.y -GHg5bбw&|C-۳uc,7ȅqzbȾN [`#b'$휟 _ZH^auZz>M)4~r~Qlbj"RX'կN.R"( ׍{WP`q"C8qXzYb~jWr쥡_X.bP \(nyt9~m tǀ>3wӷ9SgHoy4Xd/:b 9М+h$tH|m͚}:SC,yt'=sלg˥zZ{4cm}ԗʪ!g)JY.T\7@4j_ ?%4@ZP(C72QFL$R|KkJC;5$g nw4S 25G'T`J}HK,mxbJ:nQk`GpyP72t$;ۈWԃbW$LMh]gpXlխ.J:gݰۛ 8wzm5X/0b8kٌ't#-/[!;V!,]!ՍEɨJӠBn&@ǽMmL?+o6UeԮ$yv8(D~e:[frOmy4/Lzwsq4Z[w<~h Ax~ҵeϦ[gE@zYo;y~G@Kfd$z4~v-=A?E$騒VE?|4߸ۡWҬ5xj Rpj]M]M)* (nJhsԪDRBՎ !,Jt"!JA xK闖F399&dAC;dE R`XfY|V ]Mg$j*tp;~y1 f^Qd-oVŧz i,bk՚,l{CWס7$3zukCɪe@O?0*fܴ88 nKٛr:;p5)<=!y/[Өvn:qVk`FY5T-!VT I`.aYobo7 i3+t1YHᰁ֧ܿ|Lhk]Pd1d)px>xuc<+`7Rr~o85h'4-/_ HFy# p/e%8t=VDE0D4$K0+k(G;na%C3(CGj9&Ha)ǻa8kY[wao*mUVW8EH 9 U`zRD jR@/AaR@xWw H,VL iǝ>_{͏N9Š{"/ށYh mgLe:G/wIF$K#']B `d\l+dfxY`*BA bY"sM_!kQ &  qb(Lw=PO5{4zCa'k #6`x, }1KzD6z_R[EMGaj2WN\}a(ji#b f J%Qv>".RXk*Y:y,@XCXQXPH)RaAp n d]%U-- ]5z o 髶[u*,,bUcJ1'`,JմEւBGW{ҍR-ci+g۷HG&^?|.UkWL_+3ETsygx԰f,<{iNkuӵwǾeP`.cY0{`y줔T5Z՗ #c`{;}#{&ƴ]lv#OwKדeˏ.~`|/Ci!Ȋ3lN2+ ӛǃodؙ,I2gh[%{ RE=G9v"/?-3#"a-5 Q3/ҵ bfϟaxm,0Mpw !"%r[HV EXQ7;˩72K@U"W E,EPqXhdE!zNy[v6'8<ʎ`e\Ȼt`$SԽtz+ek1Îyb;/5 UJ_K" JoE-gU;Iur27Xo~@vǐ_ /=ஊr3Y' t~Rvn ~Lnwq IDAT=[ bezj?}> iO=y6 }[E?3]14{$e@ے.2\n4ls/׻׹򛴾 4{f8Rͷ{ZawO7A ھIr#5n,eu,Rkk6VHTCJ{WC4}Z52"EMhT(~Al3eSu" #QАHYt+LJOyB :|+P?M݃V[nNò PqnBJ1-}IL<$#-/>kW}w˜mNrϺ~ϟ0uRORA7U#;w|=xir% d`me5ؤ2 5 .$G7%і1<`/ReOoVts5;/Ywk!Eh%d8 'ʶ `Hazpt; ڥ^ęa:? zf0lD%@5]ɳ {@p KUxVs))L闞9KaŗN[kzwo5n=]~=G7II+Dch5Q-n `jM5[%[`zd3(Ҵdx.2t PKW+kEiDJ)fEV 6`lܲ}c!Nēآ ܋.݅<)0:"uxDG_o8Q663!%cW d2Vry_Ωi#0˳ )`#Z 4:n}pOz/q/FFG56CTAnYgΟƚ0rQ&ҿ̫Vp%DMU t@:>?{3[QOauFyuy'|c2vT\m>[};2I PWɾ᏾j7|r>6LED@j+xP?Cz]<: 9r(j_´"h[;hásN 7z*8VE4K):1>@Rpe;Z(Eڵi͒}`lh1=*ۆ6AD^8~͐_:Yr5sk%:+ޕ-;%]:\L:'P#/~*o9/p!ù3LOtk>+f >Cw+]oUP4)Si1r9rALϤ\>ﰵu3)dEjz䏎gA c+i\>cL ^Lgf '}0Bmz? tHBqb㱷e7]:{]tab{v޽t\Y~NT|7i;HO^?(mV߲/ KKstv@{ޜnFݻPXh?\J{[šM+|ʇȞ=~/]odY`w`t<x5ez!=9- * Wg_O{y@ilTBmok1Uh7U@NU _:\n4L\)Kڀ$HiW"8%P=my0CRjHlu`S@qPY,Vt&??Ʀ{GrIܹ>ZȣiϺ@ZV5Yd"j~-I\{ŬjxS<5|m9͝ʼn"AELSL.ngR^ ]Z3)}3K( E0Tc;Lb}nکK.f[fxts¸hֲ[ׅOM4^ڔ<%v:4#%qᬐBpEp/&F6>f<(@"ZXÛ sL;t̽=I"*x5mLsM ª$ K@M  @9C/2QL̿?yR$ ]IDae *^ ªvw) *v" kDAUT >WIuyYВaH:)~~3jImyܒ6My*k},yb=Fq]RIBlo 1+0n(CyJ[ ʛ ef>ꌿVG6ѢsuLr071myruKLi⎕vws>҂9[8;!mxT>Cَx q*]\}qY!rdYݵSrezsj="|u79}srw |K<ցU2{9 {w(z՝k'nzqo֬ۧ`[tѵ}Ŧ H{l>쟥SZt#2Z񣼻6P{]YU ,J?{Go1T.nPz{tKROTD[bQ_USTTAPQR/UkD9 9Tr#iƪHLu W[ Q?1:00 7ET{fC_TSԭuN8j?V_$)D!; LwECgN=&}hb?419Kw&:f:Vǩ~[FGigX_uU1o;Б#<~b%Xq<)kp[Tp\!ʾ);[g\e5;n{WŊKݼ&KqgUh:s;=T\Ҍ;EFJ<0K:ERܦ˞.:B:hK|H9AnM\!s|1qG<-jw!f_ݘGf ˮ]!  eQZ nʳu 7[ʻ,(vVQKXZJA> T~+UR+u"_(Y7a}/k١MWw@J4E$pk?;O8Sn?~{q+Nc ;/Ͻ0a2}@2/l33 ;1s>?W"W'+i2 o5?Y)&. ]\6l>cYLu7[?$Sqק/SN\"F}Qlvo[?nANvq;oN7Fyȶ̳WYɷoE3kWUj|VEϥS=@::C5-ư'ߏj^S&Fz?&Zr75 ,|@~")",&l#o4F]8C VfbS|PE9 Iom7;.-{vcIڻ"',9+jeȌeQ~w8)p]_O/ÃVm2o-"]2W~ޅqc_t*7~m5#80̰xІBzr[mYAeQ).jم4_qY *+5MwZۏޞ[Sn{BPC~ZT4gOWyj7E)v{`XmA AH)ŶjsQf)RbHT&I= 50(k]ɼfYuQ( T MO )`V(@ LT2BrkMQjY8+T1M~ʎ3<ΎR?zZ{UU˂ƽƐW4Ha-=e~_wz|krBHZ{ SKKUZUjOʵX̮fĝ1c2vL钽9ń iܘ&5r# o#V]q8u&_)(fpRŖ׈D7z-q7@+3[ ӈ3rkl IzJ LZ콹aw!c]Gi܇2OܻRS,3pNdAcv1w,2+R;P Y=~,u]/\}8>MW/E,8w֪yTB)M xlBPfå7Lqqx뽇/k1H8F ^Ne͒띖]r:0]{Oɝ> 5Ct&l7q4&`]~K˸KcC?5ҵk^}si8 !HY;''vguB8}]Cwݥ5}0ʏJ&t(Ϝ_s:mŠi$p}/Jq"/7?=7K_3hf\6dW }R?ЯR,BT&J%J%*RQuGq,V /W*NmYE¬dP3@ .)b59 av> VhQKKAxHQv/=uh͎[J"=ja:ߩhFL{#a|?|9zoFm缳pTjȄ}2x?=*IxA66+`|gҒ}|l| ywu![ upSwiJ  =r4z1#J\2LR76 ? =?0Qܕ&u*%VO' |V(^LJjwHISɮo N_Yu6x_j@˜ s{9?0U4'H^;Vs@J]wQzC{ͽm"lw NhFI$xD8«~mho3 ¥ i5fd@F%ˣl32e6(# OJ̴VP .. PZfPoS#RRlJdjas_AGxĬpT&œ9BG  8of7!=edDgm6lyiO%$̩!: x0h9zlmKnaݠauhk(\%q \'r݋ew{ϝ34ӱ!j)?踯9ߗ&>~  4](M?Dw=-%oحܯR.q-AȌdtGi{5h%D}5cUwZwN"]+M#z̵%Wg4)F^Z`f%<]z1e/O}n>V$*+:V _O;53r.6 uTYVXUYoVYfQa=Λ]1y.}Bw~O٩ -"Š'x:DJXDZQ_Qu8 w{QEG_oci|}''v~XU'yJ_6wTs/IP@n*~(ߢBB2, hkz1?蝹B1YVZK0-RɳB.JŚQ8ׁKށvL3|-˷l" MR5h )Ǹ|A}5c?s,v _E{n5b&VA#{𕥄q;X'l!\4ж%>fiWލbMFeW[ IDATD7JN X!(Ĝ![TA`5kCH$!M5y3-Gsh1d2l!wkYd)ǝ*FւTϵ) BnA^@HpJ/"?VJF6D,^Xlwi>g:8I|$,=<'."T3eÁZ1 HZn*n5G=[<@@P4xQ͹K* |@ӊ9J!jX >)SR O!(B;# $1&LFa[/zy4mHJ`qbi)O?8|Z(+PgF}$g2_O?E}",Tbs~Ղ݌N(o ^KE1߭AE_m%z),'x| >Ą*%hFnz(c"!v_LwGoLGr{3:Ckw-dצXN@OuKe/a8|g=fM:?nz<kPjOCY-Ӡ?_/R݅Ε SKV{p#|s:-7Sf0JP!2bi[7/kŸLG.qj5;^%p+ @>^?B;L-81 RmU$P*|J6u?"3Y|MCc㇯| =~ `13J@/Tň;\h1~0PD-t;MQʍfocJL xZ ܏A9\9]@ pfY@AAoWdDTU 䊨p{;-ܝ|%6竤4ٜ o[R-h! 4 ^7|jgR2r(q !q&7Y y&8&r.QdY"6Jښ@[JC#zG/ɢ|'gqnլ{ !M͜09N;Z'_vrv~А12~pPj/닏i$e?z: 62"z1\"),??+DFV2;I5Gs^ڶyz 1y")7EJ2L#*{V>wR(T@'1bVRD*|'T}-ِ4Nޅ〹c(~=:v\_.2_23h8Ko-vj0gJǛHH[&Z <[Ua{Gk$5~ڋ\inغώ^xTo>qrOdV[@V]|xj=eZ(pI^~jFP7W+~5jP#ZQ:Xm>*}Petd:gO!EuQ,uJ.z+4˸.[ ^øŶJ)k)Wge}=!=zei8W\U" ae-Hr.i1_5m:`bHJpge >!jFUr4DDg:젴0w;NjH G "CˋҸwh{pZjmN ϔI4T p.q(X{\;v[$d?BV vv Cz *R²ɣ* + Um#D"*u, )RwnCHGDRG$Z2-jnLP )n=@^dl Hɯ}k2wXb^}NxSc%_o]|y w!{7=fY` NWr^p=9Jݚ`]n~`Z sz/HlʸJ,p*YLԚjTU[nuMLC g(.lS޽~HJ4*q'8V[HZC@{PhMi%$],;6UM}CRᖘs=n/])xwOwLxQ)F?ҁa=aG76! feաv-O1aAxC)xoYF'lxLGA~wo)Eg>ԎFZ)B)*QB*MO[(RU("_+*v7{N\c"5Iyok`Fz2}E[r^;~Lb$ekAdh-iuk[l-;J:@QK=ZUW]L4t؊ 1-o?0_2CeQ>MEhJ79sf-rȿ'<ע'iUXuf?:+XDmzQ F>,:dT/M[ Qw2DMcqiT?J.V<{%7TH0F Gixpeo)Jn([Oy)F$> -Sl,&O$+֔a=sV9ç~ScJD.n{~oiq&`p 47K7a;'SӍ3hޛFgɀD_E`2xߚb-x&̋i[Fݎ/]ގܦwil9x 9ds*p./2fz~MQJOVRgؓ'oJ"M5(G׬4]+hk s` JӇ]u;mAQ,ջo(I_8(p}Z ѝR+MAԾn y:)#n0a t:p2uۻo 2^zbC5ͣQd~9+u;P[qNnpf Zu&/ZnmORo~:eQW#Z)R帹J]r 9%yŚi4ekJgZ?i)-p%So F6Sc -vop']o}.N"#.KԚ}GƝ Lu_m;})h{5|7ءES~3As"[qO"p3}WޥHtY<}'8lEIrw,I\v&{q3 UiyO/_?2bT#D&Gϡ@~ѿ.t;oc$S toIt:]-CevAhEPj>8cݪְSψ+{X_tSj!IYڛU oSe4R-kgs;mgx|/JEFa;+ uGq B< φ[[{I=ZJ$ڞ5ܟ9(+ꫝ_]n%ܡ_G xOly"ݤ-IyW#<M69&v^o7(LV) К^4̲GPXb4MlD~[p!jMT3 ~+e]X6 Rx)sF#PM(E 1gg\riftw8̼X@o)u$ߏa9?(Oݗġi35B{IF@gCz0lNzB><=dH_YߏiF\N"GB֠RԓYftDp^A l~9y7]}ίd' "t~ՙKnß{7? O4~ q9C0[TX5LP!"7W~kT S dԼpգV#^N_F)DRVM(zQ hwЏQbTۏ4^yϴ@C%2~<,3f*ŮLz" u)+^fFsZsnh!]΀sN/ʸHȀT& _+t.1|.I6FfigP򆅲q7VDbϲ?>9~_bZnw߾An:/ 4NFdoa#S=S?}Qe7m8b"5&T"ꂀ+JmXCAuJ+`|A;o!O>]Ը4ILҩ#oG;UHS{JtO2nV-ӟn>3y1&ӄ7AoUp}7 )}hz&V%el *;MkY͝NEQ9۝Lqֵ Y(v&H6y\ hZp547z7˖7tkI6w+ zABӞZJ ?{W&; ~'Pp֧fEA ;ZUGK'r՗iVsyS?b>k~vnϏKZsy02sys,-=;2Rn_^׸ 4DcW\n ڼcbLB:#!9[ 1$OoNeXF(=,DWAIӏ%7 G2 g DK*W-`jc5&PVH3ͬ &thtp 1V$J;C J[,d&Tv Aͫ`T IDATC }\nPt ֐Ad=ECYW%cHQڏ[aC41^cL‡c.VҐ30齻j{Ar1ghS/A2~dd68 qE{^IlbsĀoFw@/ jtv$كndY+-GXsaZ>6{=ι,SQV ?96;=jJGǽց /fy0*Mqj!zs\wQs㐼c?+x9}N %lͬn^cUW<]J]J޶iuӧńVzdtߥ9jĊeٛ_子iK}ʭGF1wZl@㖭FY$]>>@/.M8tJGYn"j̀qnIjnO](zٮ\t#jw$6hZs _`&NYnRiy⃓yt#P8¯ TХ1Y3~6'G_;;) Jg_/L]ѶWۓM=ZJnt71tʍ.ndkW:}5?[h1E.n /Z :/ˋ4Z?oK#Mg0n9 FQɿuˡ*f:6@Nj3gӯD_1F@o:9ELEJ43!,tĀ"+Ia"YW-[`u*aBN8 *- bV8ea+XNtz4͙:+q\i鏺(QD-DJ]2C*D"\Sp($Rte]j3Y@qf*PD۬G*wk?|yjX -;څ88tn[Ob ^1Fmj¨(7ǒ9cv< {!ta\4?jmZ}zDc@l|!iEc>}ܣEНZj;aN h۴JZ)Μ27E:֕Պ+[p `٘wIt62f8U7,34pWZxiZeRK\3~@5{5Vb51!kP YާcxHmupn)=A.'B06(K&UL/ݕŻYlˡ!%X̰JSӳvDk}Ηz:Wu0Y,{PT^oF-YujT=J:=Qjԧ$n4әK[&*mKO,Oك P;lF$ڨ+-YڷXigI\sk~{xD}ќB6uD=8^R]L "A.=DD)!8Jf$Jq!9F~gN@%9Q 0#E釈9$crc"LɹLӖQFR8GAeqAXwai磲&z‘wp>e}ch"1W8[hs5.eBY}EFs7J+!uy0/pġ@x8E&Kz1zIW17;yح㧷ȣ]J?ˈI?Q5ɎB&uM ԩi4̛5{n.Eyp'F?yOlώzB$h=Uiy"B<@r6/ue/|Q,7Rd'Q̶V:NUY7!),m4͖(zuMm͛>'Co3pU}\q.Kzjˊzpo,bj`2n^8lS([d7EFًrx-3Q IqQsif˜7{|$5!$rb"1FɥM!-Iy`bb E~vuOV}}T4n/Wjɩ H٥S5e&*N6ZeY+{r +킜Z\kL0smޡs h{A$y7eþhEOܥߵℑU.xlòjIz3~l`GѳLӤò; V3h. {SyuaN"#HjPbP掔+-&V5LKq* 9gES1 {pg$QgTuدP뤳+*0Ye'r-CNU[x*TNH4W>A$G"z_ܲŌ<_X P8E-[ԙVh˶En,ԯQ|8 |G_᫯a;sEXSzgl "V.n`tJqD߈QGZ`b9b]q,q7/crN3ͷtwKErK3p#JeNKf H1]Z\tF~9~}l/t`8; c~ CY& )٫ }v3YQGm Ҡɔ5^}bjs  p(>p-=o:^o1lx~S8l_4p;K/9=K~m4xzXY6oJI:AR`I$MvM;^neo7a+;)H6q%M&)IV,?ڲ%tA.]WvoQnC"#3#hHb7WK ?8h(G|GPOjc)!Aa>gߨŅp\'h}#vQqCfGI0\kR C8Q7S K?[nMq`Z+kh^v{c'Ә*p5I75LJD7" FUǕNNXRJ H(%TP~vથ),he1wpvo/[[,nTpnʛøVr%O;m6#Zb#{t47Fr0?vJCٽs _8 >v6 >egi2v6[Sruv=n;#xr :7@P F7ҼI<𵯷 |#h9Mou嬸}tsV#һE<V>U?st`fŮ 4txm>V+/p`:xn<:{O@ǿdӓ(E!CتRI 5zH!^1DC kbY=L7Wrdeݫ.)z˖+Yl-RSIܰDīl_4fm֑emvد+"o¹V|v>U $rSz\A{Qm/Oe|~eVz-GAKC fSD( @ LPd- e"gG飘R@ DH,!NDD11t:D{vGS%”>JӣW)v-, #Cu m((ƒ!#7J!YXG$d!*ID%&KUŠ?%OmrbGe:= .jvl~rECɿ\]W'qk~܇c 1 pylBjKnm$deZu|>.+ 诛='l} ';[j^wlj n}2MʇUd玴ZaM[g?B7XpT8{nxH-eҫ>  z:+ އ bH+̖^2IuK< l`&B+Knrq{d^ρ}Z-H~N s7֚=[PS\p #j=%]8[!ĬBYUkQ, :!|=@YoҴfe`J2DkqnLƓPebLwՑ6*?1WmHj xBuHk5GWΙZ߼vZumٝ+P9gm p`" Jm4 󽵁(&搷q2S:<#Ӎa7R` ͉(=rHsN؋w71ׁaILtriek9>[I )Ec[dz6[MkQɂYd~=fmkb,Q_t3a o֑B^}cjZ=ڃ; kt|pnHx,z[W7`ID_LMhݰ i_090sA;rz|  NYr)LT-ZVP|an_ݒ}RƆjhZrF q>o~jA) eving]o,τFn(nrK5AHR|Zq~ ]%`e] /PC(,Q$f@ oNOb[[)b""Q\8H/&p|/ҁ  AE\1ˁ8Jo/ u޸ sRFtUjC=_p ~˯]p5F]bfvlOpY3B9}KRpMV8AkB8 ymzS_DB5LȗLL&1RX} ۚڬlMeWYVy=j<-8'ZG0Dkco%e,G)[(eGv2)(p@(үM dJ{RDo6O$w.f4Y2D f͠X Nwr!VȠc{b(29CebjnՋ@~.6iwe.rVso+m\.2"KtWqgth ;x'y$u[ l(Ce2hb/~#&837[5~u+(e;qĬi\9ЖC@ t_Y1G0SrFLCv&3b E`(&΃k9DgP!@$X 8]֎1&N1F =-m6 bq^Љ/ LA±%`#3&8yJz|BA&1*@’k>FO%MQ.B8Pr՛[H; PbKe)ђw&)q*KEQ]z& PR76 PGXå-1{Y5%zC_~|.8 ^W%ŎM 7絽ctU n~]Gfv 4Î5{wHq%,Daylhڪ&%`Dr/ȦwZn󑉈&A:,{?YH>b8U$<[y7z9Nűke0.=1w8[K76Ck!{'MP7LQsH 9r-H@1)ygF-CG2n8)%u*$Y:Diâ9ԴZxw9? E) =fXnL[ k1PQea5e[hvJYXUmNaǘn]P˛ n2Ucp9'7M (;;TW'}Yۋ'_s=#pf\ Wh& qU0w*OFT&kR}d4 l^&s=g 0fxW_ ygyt]>{d~n9!ޔhߨXj7eȟ;q8JPA]y6KqUŜ]<I%2[X@/uJJҧK,SPuT#΃R9i$AjyRe]j3'g5˩#qvS˳Cp݄RibL\9%L_""u2AO@ۂQ$"@Llc&tD)9!NWA QӅv|2A碟|))Q,*C`jE|۔l]~3^F_L(AEAEܢfl!yl JtIy=u܅|dsՄmBxA{1#="%[+ Fz.pxy@σGoΗדXmn;T}Uq]k'l'r`I.c9 d`ۢOu;Li:wxawL[ʮ%|-TP:}yKsۮ\ lˮ,Kn3AŢW5yd~7{^'}l0d`ڐrMu ovw#?LOKJΣ}`urAYAq.lNd''Z"Y!S_}𞂵 1>jIxé-т/tjCm߰ X< YyII^Z7pB ɉ8}\ ;Ew)oC\흠-SYדi -czHtcpF5(9mr\m݈"q$7UŅjQn_Y&eGfB7dҝœJOeQHL8G8 `E2b4gKrF7oFәjHD [(Z%fc\Hn˺ %n%=1gWڙm#>6.^ ^ďEC$l8><@ Ԥ/y!݁V5]MN1:=C쓃^-:JXؘ'//!nϿ( v>PmzHlum;i:}BVcs̥8e[FIyiy9בVPs?v8 IEgt7Ȗ94Ҹ${ VߧLP&wGo\F B"{gx&S@=vfK]Jk4J:}:7\R17QyBL<`DOl^2wpn=y{.$ϺúI=7a{+uNl嵯`ԓòm$Aٰn̈́˖< e5(%!鉊ΒšDsʟ?n@@-=Iڎ,ݯ-ܭ|>xvCcypm@~}ccirr m;W£2vk+-'t/w[#}z> m( OǼ(\ljwOjAV݇?ʢPAƙ-hrU廡7<;C8N!Af@82;S pD:!@W7]`&O J7/EhRrUK.'7 f*ȹP$?[y$/v(y%Dj]WE 0jwfInjZHM.i#ƑS_RNyp%.B-}F,,C;[Ap"wջ{OB[fhGtH]@Vb5|>Z=f־n>Ym#}LEs[o[Y#O͛5mVwp:_r9/tMcA_SXg;r}ݩ-ӕ/6i߶@؅ ~'/øɎ!-;奆8t-:e)o9=.+/u WiẎ6mcodESc3ϝ@sF< V]n Zf7cO }vhja5~b|SO(>IV`d'PbP>!:䰪%x-rlgMqչ; 'Qb2΄ >+0/>Ahũ0=g ݚXs[6O0&kX3CJGMKEpmksn(W)euq̿hZ83eC\814cN++L`!E(L+YafIS;@́SRe#I*©҂E&%c!]<@*vZG({_*{>5cIj@A,%ßv0!?%*#oOI'K2c)I%nU>vmdmžvDaIxJ1؇GĿlk\>\O5=W`0 OPxú]N,n|l k$]z\nYS՜ʝk{O9BOo]w8 j8RX+8\!,XF2s\hqV?;CM4 pޡ*cvԷwivD@3ڧOxh/W[ujlb(@nRޮێhtJ(̶ `3 r^]~H[Y9U?XښݎBx1\|L'P 3UwY}5*oj#) Z34%|)6YohTJbMAjLo#\-*{y<0Xfꢼeي~WeT/1D^#I^[q;zh Z7[Xwrr:@ǘ7*J`A2 !!(đ3|O@d H)}r"g q<´K(s =4MYRRk[%#-lVeh"}/ԏV&GQ(vnŢ<~0މZ$jr5ވ(6J-5]H0O>Dž}i%muaM~FK[,Sk; ˋo  Gzomk9—DZxjDps-%ow WZ;H*.2.9;/Յl Fy8~?p5~wo@38A\8)ۂ`|IqL6[u'K!8EȚ0g`_%,]EJ4QZt!Mֽu9" 5t#;=f!7a?N8'L//2#n5著o,pRԽ9y؈eGH.!,n1O!P`}o1+@8" k,q#DD]`@ !0FC(ǿL "@@Q oEorfդ,Sʏy~nq W0HG(#8IX^Zo?RHQrW%B Qd ZFmH_% eud#hN1Gpq%bx2U]wb*y  Z1*}ถqNb#pDv^ʻ@БRvti+WmӺy$w3 ݂6Tgg]o; kU-&o!}P{eyZ5Oo^"d{/66䵤d˦r`>H<$JCTpd!tAk *TkUõsxSHFg!O" *ٚ9. wt;KKs 7_gJS^Q#tʑOwPӿ/|ap0s*;5 0s#[ bd"J27JI 1c)&b!8-}!D" 0q ""rs NG'B+fȖ1spSn ,ͥѶ^vVBy6=j=$TJ,{fRL4 pOSlR=TÉ AKIxJE;h ۱aAO @p5, s @+ (˿i4~mZߵW^k<>?Dv4Y5uF+};GB~Au`Hi&pP\*QgZ/IO6LŖy7KOCb̆M&+Qђ@0g@މ[BΝTçj75Sap١\&mm`+Cq`] GVg_JwR=9)ŧB9[jQ/[[F˲?ٗ؝g$9Yб? T'} ݎF~ *16|Mtbܣ6d4,&/ )$KY񺔊Rn*.Yؗ`f 7N\sJBbL39 fS/"G0saDA38`&qz8f"$* tD,RMe׫HX0z[tgjC0~h:fJ`hvǪ3Eh\,V"!حIh\nbF-)3nf/Qgj_Sln,ݜC6h9n[}uh-T h켞5%bV1ڬt{)18ַ5PpYhMS:4[#sv1P=["8Jir>ϺX]6nHvb4zZJ%]>xEDbz5-s;s%p<>Ie@((=sCbZɿ><) člY.2ZȬRͻ[x`yBit#ytŸz:SbcXZulU\QiZ&5 "\STHĠ"r!y4Hzn!GV;5$E)&-dpurrԇDl*Z"cn-ą& 7CoVq! NW'@0 an@mk@2h9ݺ6xcwWtFiO }8^q_x7sJlonJsW( H.>""'5,l69d`̜#8Kc>ʙHL3shG|KB9Z"/LjIѡ )~P $TnFTwN Ot˛}nC{Vu^|n.&0rpH7Rd,b9Ua]*NM|N^7kk3YC OCp{Eѹ 6xӯmb7JO<Ֆ(.,Nh qf} ssU+s32#hVGݽ{ԅPsvNf[Ih+S 8OE/7 _{2{;/v'Ǹmn512Zitr9;i'!sZwP=Y~F{.7Τpnr(tyÌȌ(E i(c3s$&@Iq3C*?H1ߘRȑnL9CM99bf0s 0"QO/#]ڲ4`}nqPVYc?5LHVRuW,}*y :v¥di,D*UEG-_*皔Rh=˨%=H?z|Ćkv1u'/U&,C6]Ol ,琢ّ]f?HYG>{'*bTR$k* aBp*B kN3˙Kf'#l{>s6lp_G(I<)oAK&&y沔:%p]^wXq$ykw!*loROOuU.= l5y~dYl`A|JMl̷R*&hJ&B&&ɜ)t Txe:-}+s2koOc@/lXg?04b[~{qY ݼsgK10Br`/#W|M Eޗ,g%"!2oD,h(0 7ef@GfW=8\D"w "s bł㽿Df= H=倔) Nsi7̼֔T?& ^X DOfϦ%ko}.?XnIm(U#;^' !r^-Ad>V^;yƟ' թo?G?bj$P %='Wg=tQnLQs 6' 紡tDD )@("hmOJhѢg={(WNTgp~r"';'Fߥ5׬v9|ܖO]⭿cm}*#Hd:1/j)y#;Wͼ٥KDs % H9L1FL!R@@`""c bGp$8 1@5pW8$$YQ;*%{+n6ZyGe&"p[HW D AעxQQ(i "syUЎ^q(k%&sF#˸Wi2!ϣ w4jJϻrbӈ5b8(=zZ'd#T\= ;z;Z @ﰽZo{=b̟{.1Ȟ0r\qH:9xgj{ο~VFO} -U%b׆Ľ!k`OrHO=Kp~;W6R%%rgGWq{p>Z)xLl*MlllbG?b zhB8?ٔZ6-4}{0PԜ3vdcE ɡ-:b"?%{4|>e .@$M̿D) B)F%&B(~'7/S@XݕNε+;GNd 7%W:&+3_Q324it #g&Rj+pRm"x6-ꑢHw Ggh'c\p^>y+{/<{P:B[.|,O67}եT| wPnHIlWGG3+ЛM(C2|5o혀!2U]n"ke݊kVsdzrNC 6hjbXξ)")>%$ؑL왟7Սadj$M5'gC6d]A}1t㈞츀)NӜSJlh.,\ o[,E¥yTy) hwT~]*9Iہ Ę@0f@71sz/&k\Artb01)߈9_n_L (%)8p$-7D`90mZ=,l*[fa-I؈ s ߕy+~J4HŒ=q4&sWH @ roŌWK8u˨t+i?bd󮩍fO*à_Fso!uνImL:!1 }z溌[slLmZ1g%/yCh~7}W] TT~uڳ<԰cރjtžpVm%!/Km?rCu]$k K7 ~R{ˮ&|Go~`r8*qLᒀ{`ҏ6/;YFH7!5?\]5΢1)1 N5x^ nd9ϸxIbPG{;ZފAOMVup)z =Yܘ~|*Cϗ_3"zqG0ojn_.Q)ᾌ[tdi mI$`vwT~k~m`+=!C+7, C3ĝk"'>aO}.B1Xb1qҠ,(*C ks0a"AO""$*QKw@/4_66 m.xzk<㑗lj),{x攃/|:8o=nK7l(tYYj_O?bỉ u 5orϽ {%oBvY fztyE/s% n= z> 8waNߓBxkz"ui98R?0f&gA+KDőLIS7d'/b䱥@`t}W~Ks9!] +@1WfjoQ!f~*Έg Ptgy+C^p+su}! l@}Ss9;EKtdw9ɉyQȨr6o#WӇ1jl Μ~2^p& AwP[7'+7H\ xT \iШdϩ أ񮾿4MT"l{Y;At\;`#\›f'_>ԃ#X>οnpdG(o eud ~\-%%ʑ=ȶc.5MΆN(6QPH"bw!-upPCij%J l' {Lđ1jnm\;_|q%nʚ@2!T>B"q_<SʩIĖIARNBH}&@)@ (Ez@^& ہrəΐ2܂Qve!"qf}PSduȨumyݻ[ޥ)ёE32*9/F^C˱|vߍh~|ue.OI;O.Il X!lbp{VcW@txۢ+b iF{qQP*VZvFlߧ^aˋ]HOF_ƞ+˙>R߅ӎwFC fZÐGYJhq@DA-ύfa՞'NcOE)-ܢ\ w؇Q}C@=Z_7Wְ 6 AS8So<gkCvKl 4f~x )ͫ=}ĵM&F L)QP%Aʎb&vo򖂸)~$p ?Gb oC|ZԾj'<1Pu]K]CbeBhw zK $IUaLy4rj9Әw};]/a<йvˤYɐ,_\[flCV13@D8rD"b.rpZg%u!EjʔN&9S}#գ{=+x[q_+uezFRAN.|J^!HQ3ϛ^ @BġPC)k%E 1 T S煘J4">3]^3ׁzh>aǺn9P|jmCK}ڼk-bXPz;) )? B']̲?}Ǐh8KU+m0Uۉ7Ǭk*еMq;roO#ɇ{`}ȸA:Vh(ya]xz8(m(?ݧ Nusnssecq4Sg̛ϧ1S,ɣMyxy/luߡn}tK߷فZIϭQ6vùVڕGQh^4zkkIb*1«~ȃ5RIgkHQw*iQ< ]UQ.JXTe(%b, YK^UFoT:<1Ղ ." uqp,2+:9/>vֺ,LD´9N<V}ҽEdlrC-_(i)tp>Y7J BTgXe{k1xm357@ɩ$HV&U.DOh'w^}mF׀Li'ywbCG|^0[qːܓyAL?e]7`U%K-#2aL6z&51Tk$w}A$JjBO-&FCO]:ʏ޼XY,8wt7-ׂm>c>9C;s תL}QYpziQ=P{yysU磷vIvacZng;y#M:g/[@Ԥ=C |r{ͶU 鎴U]'"9 #~&*n?٭n r9nYXR{ sPPGqZ3)qؑ\EhqT?9E)&siC%o2-:/~PFX@r\/fݘm?n-_Rw|bm ҏ^N5}2v׼q<ףy K(q/2+Tsazfj>] 0эr@/eubR/DD(0'1E:S_}PUJT";2m):A_ OnC1=wH:9YtMME s4/]ɿ܀DynyxvV\o zn9= M|_/0wm/<oC}8gv_W` p3z~ܧ#J]226 dqiόnhxiFz鰸Mf޷mkX k8=@òFIyK?߻J}C`28;g%?pfeMz{[4D_{y-w.pV^/jk3>cy0.64ēvWwUC9xxY#N].%D:2vul3! a>Y5-9慕3]_v?`moHl\֤WJD~:KkW>A,!K*g} \-(HDhSQ5E(fV lM~2R5=6&8`jVpvUtXeXfO&:-z: y\_^K`Ԥݑ}慿gLIKk DXc]v)rZ38PMD(͊P'c&t *]\CdoIb+8W%W<$uT(w"{ޡKtYS Bh J4 ٖu F9kDyEkS"O"S3$uuhz}l cqey^m>.yQhmvVͶf }G[}k`yqޕNnal@ .]Y3zd.nSrM&'Sh[Gl]YW E|;{ fB@̘l{]]6€l1:𓷳{ymļ#\Ŧ'i8P#9~ ԃYq!]VWS̈=zGBe =9i}cv}dͺċ|yZ ^|O7s=`` 5|A IDAT`[\T,睸 r{.4Ehi8z& lT,nyH""m Nd6?X˝_\.94v H5>bM2Q"]1۔ؚJ'-,4&]н!Rh ׷F1n?ڻl4qZ? &[Znpx!]wOѾc IdU}$rp px{Vz7`|%l8~#cgܖzAS f0!p"B 1=P$3$~A`f)_S2 DшVV`#t7X|Ցֽ+yM[<&%+ZXTMnqйj#Y ERPW!5P{ 9b`B5w1x|F(ry7ˣ8&ucWu!.Z`coConLIGp/_c3%Ԓ,'jvGqqUCުpJr/, >N1<#x|Ȁpy)Jv2DJ0O,pYdqD2)b@``"J90;pZP+VSTarM{OW좺Xb]=w]t\|~u:%($ryn`s8Mͳ߃{An8-#ێs0{ wTxw3vs9p~]:{Ϋ?<O/=hѪ"wtSzbns;љN_l~W(>`W!gүB6&-k߃}mp~ #]Vڊ8fJed ω]`* g+ݕ{\c}nFg4_jw [B߆[iaE-TzrďZǠww` k vyD.,#ٟ9=aYqsG btywq!yA!r\$jc7,3Na\1(ገHY"kkIe>!#o2rsTuszs6g;onjR 5LÜ+ )((185 9(gsj-2!nXU}`k}Q = 'KwYͦbwqʔ|5o'k#O+*8;asSZx{}ݦ@i7YYEQ诛q` ɽ[.r# |j3*h}|<<#rX\q}Z> r@'MyUq@|ZT&̋h24zBq |ڿ~ٹǀt'o).N/& gAS(BLL)0'r]r LQ Qaf,NL?@U);]U_7 w^V^7ڂUH_H_je@%̷$PZ~H}.q t8 { NHU<Ws:,Ok;B\!/-@-ї/k|/_xCxjPf>XP~\IDq @RFrܾW*AhQPhEd>8;*1y1"\|";5WzlҿwݢR4ԳvheX«O~;c}geq[ pHih2-ӿmDi7˥I$Y%E)) p3̑"FIBwC5HHU:0jݍͮ婾dImm+nIq;6k37C]E<7o/ \} w"FC  =Y^v;tdՄ&MXExY w)ڎ%7?i$ܾ:8!};l{bl0Rx]yA-%~C+ Z~YmQU].{3C㷣&Lsx[*`D5s;4g!"둍-\Ge0R?Wwz(潼ĵ9h58I35ͫ3f&O m <1.Z`?Rq^6 >%w:.IՁ&-itvIsVs֓W|\:F>\@ͬ3-ЋkzrbKK %a Cs͂ϝPGCT@o7-FLDlNw49}y5[W۔Áę b2~ͪG^|(I88' vON I@I8rY@΋N!ũox#LWG)P8P%\W*Lf~c}ĺ L9>MU5oWA$ ubUSn /f'CGiD2oT+ܟ;ѣc%]bޙqIBF (VH'K_C ,δ\ :[r;aHC%A5{8#Qu0gnIP^xJhe{?$D5H ؅m:LbL \DoejQ>M6P333S/KS/ߘ@LU!/K49_\)l!GGgqIW+έ5 78 <Ȼ^JR$k%/n0l8==nYzn3=M3Yv=^dl6e[lK%զRUT%3揼73"2һFFDFŷD:F.ܡۉ'ni 0amLD}GMB2v"'@>%?xoviaF!C+X"y:NFĐa $F ^ʻ喽v#L >cR/L5GSqԉDʮ y547]X<y^ yת6pb}b` .G *RxanϮājbYz{%Q5N+tdazY7^*W8T5{K0QTr6< +* d~dm&]Ie"##Ф0Ձ=@'a %*K*hx0@[P”P ^l"@]vbBAB)P3<ٔFQ0$ J&Ѻ1df0MtJ$'^ Q L]9x:1;^i7'HJrR+Bd?zAmj__|5K >ӸrNNKPhWgR*6Uu)I}}ᯓБ\bO IVZA!EA<bm:kaZwج@3!phT!zd0q0DND};< eBu(# ؝p9+y>6SRlM|"ZDg)wyuL݉ȿ:_JTǻX">? msRˋ5R\.Bc,X~B;Zzl T4[:Sf Cˢ$sտ fpQԅА 0|09_4\/uxѝOrNjDlqJ!X֣2xn|!9\EVaB^M#`hD[/lۂGFrFG &l:8 ґG\GdNjoqW/~~ 3%S7orJ`F KC*˥)qV%iR`yyJ%<7G)t#GR0nNRnchbDzt4=YsCǓ{P+p-Qg·Nw9BmWMQeٵ:X/*3ߍi6c.o@lR?KLu(k Rκ#F&' Dn_N_å#Egױ&جS aQa>bP3OGm6L dqQ C-.epubL`RF >:r1℥{fŔ!|:CU#N^ uъMmlHTL;o$Ԉ5lMN.LNlJ0{9'n&=vh 10+ K!J)ġ<}<R C(C"JC `n?ڗ؆ ݳFV% N*0Cn8ey@0嶃v?\ӧS+d&< K-gwFf>=!: 0!RLh٭s ؼnǵy3! Hu; OC]e:bJ1Dt!)M9Bjf6 o}uvEH".FT8(XAM:}hv$&7VyTCK}&?#F)J@2ң_&B+xEPJyt_p0k6X녗DOr5 ;(\8ݢ6}sd"X<[x4ne]`J<@k\TPz*ZvA*Xl^$YGc@ƀH/ F6 X(PƄLIĠxFCAHIpk*#$M˱\Cb&?eR"r0R$tnͯÐX|J2Vj1eޱ>(=l1}uϲV ?$n} R(q$7Ty: (%thU Aq4fE9Vա3X#6ט_G9Z.> ܢ?3`EXFcI+FEuu9 QH3 nyԬ F Sôf*Cy6%%B+-OZR("kE1e|P"moX_ڏU?wCL|:s$DrSoY(:pq}5*B~6Uy?В_sN+ƣ崠3\6e̍(v2ե|LX.SnB|J#w|n<X%pFКoZ^AU)ޜJ \S䣉~DTً3~hj㏀k"V0ԂC#{QK%7#+l@CH:a,^xmx\%_ٯPkqvԌ׻K-,o)Ve]1,>QIQ W̭o7gh̚P>Q]-:dLL*8 B J)q(R?2:_%T_Y3 oЯ qШI-J8n(Gf.r6<:8:0FBLnf}Yx$ ˫rYf%3t*`g[7'JתtniIHRC^$-GKNbɒ*!& s@L aWgioI(,%(^^*0Kta0)< xbb4#1:Lդ;aBta{j;j5zm$JfEK^V? A:LfP4- IDATlP혪Ysߔ*uOu:ؓ- yLC^dzK"#PU<y V읕eV0et\PKsA,N?2 @FĿ$IPtIwFL|c|p|/F^\Pprw I5K(!G()CR81 ' $ uqA,]7Il@9;6b: Z@,W xz FQ$Sz% cC34H87r;t[H[c:gf,W#-ncY$LPSʞP/Ґ=DLxeٰWѡ3ҟ˕4Met../C%H}KqyDEEF)Z@ v?'"_WY˒Њtn*NF3ʿpO"6TmR byOP9bn~,(L Jk3q4>=ȭxǔd6W,.ڢp. 32aF!4 4%K@x? 쨟%^ ]|G v-)')DE"qU|쵴 C;ѿDHrRGׅ9LA)a Ջ$'c>(ֵp)aU+[X{R}&vTI99:Ѻ$I<(( P_T24夜(~^Vd"tJy.Y2/F9WP18ۙ|H)%nBe e t+З< @(vZ>ǝU)ZfOv1Z{|4زh$Uܽ4% `G bA"ȏBF0jҎY#Der+4 ]X3obZ=yN}cKV43Uوdo'9'Dh$߀Ay'0b§q{VQ=UM믓ڰ7xT ù6Gݮf GKd)H7 in콏aqYGKU*F 'RXdU[vG 6PO>~Yy5(bD}fiSl37xG@÷Cby)P#_E@G' (' MIGu rjXBΜċԇDk;~Mr!}.0ʅu :%lGZ^ݰ07F _"^=~6U0ւ\6t2S}j9v2F!lP5`)1Rxq2uioR:JKR'[B~u׭t@izҒ&I*r)4'7(x}iRnb!TbU 9#miꥑLA7k_'7URL$RJ#6Rhdi43S%$,)S-;WD!GN\Sp),V 4`L'D>b<d>JƑLÛ[o^Bڦ/PDIX0YvJ /W5bj/ONH/g KEԣ`L?qz.94ԋӧ77ʮ28@&!S1 A5n81l:J }4N&}H`,1.\LMaiI$D%}SEO!)0YҺN'ŒӐ qT}Q$ـÌY;.Lp]FbS5 } Ew|AbaFvHl@7Ҳq Ne:/9\ ߐ$~Zx ^$!I%!A[Y5Be W]ќ|oWe?PzQߟ$qM[ރS8[b˓2y~?+Yq bv;Lmy_1Ҹ 6NjT(; lGycN 7P]&VW'S%^2撚`=j g ?$NɗOrNf@ d;G Iʉf1yw!rJOuwXWƈ4yV(XoSV d`9FA.I74KVpRyVn-Lv7VcVXY:^-yqNػ^PxYT*Ĭ_)3y6T>@”$9СSZbgױcs 1~=[1'_qODЅ u`-H40ld_#-@PJ |hêdƥ7\B~[&V'OlN{ҽ*ˌ{|Jb( ُRTn[94*CRR*㛌 V,*"Gx,1g7ix4HkGp:哔'(MAqBEoZ n#9$ń`%D:uLχ})s/U^ՙ T"/1sZ*ɃNWVV`]8PrД/@GPUGkn+WD8kJ34`!RePkaxuU7@XEzVۨStoMrz rLvCac~o…R6`H|z,Yg& =Y):O}aɢ{H ʨDhYk*'60F4NH VIݪ2QmKn-/ڠ{%e3IDVHEߍ(pV `W`IZ`)'J(ˇW!3dț'Eqr+^(=+T͟r?A2SybI3!oRơ&J /ډx)r0g@DY=9ϑ/Cׄq !A&7c6J a 0ecb)aeNS>93ڤM.   Bݔ|s#?AE6 oYWjM;ݕ4%7%>x"k >g05FaKp31?߹|}[oewϦٷv}dM..ӁG:Ojjl6-OG`f@afpVsbdVF(i<0G<嵢X:7(¶$ czh̄hl&uo $l| U>#\@+ihn ) BA$:isߡhp 8$E`4sx<<0?caT_WKxq"]Jo҄h2@uQ6W5OE4xљBNÕřgۿ'cIb]I/.p{8To}s6BfZ[\o ;9SM ȫovIGzf_(?`,fwIYpRnT Jt\\#*V+7ͧ\8uG6`ߌ4X` މo [ 92 ?Vsi@'Y[N2 ӛF*IQdr\2@ ArP }qsn܁ѥ2cŻSk;X^n9WkqP1d,W|v|k?cB\7>Kh4J瞽NJxm"qpGEe)+` p\4ZyU"P߬ҀEקj.emJ/AE9:,+3KJ3K SUR7F6@ݰwmaά8ǴyI M #.;'E+ǥ#(׹:72<~GvwyPk`_Qy(]'Pt**i"CR8d"b|;U_c@s0GsRUd oMB1m۳eMW[_ܱqK.Ny<}r, Nz:m޽'^8s+_~رu/w/6 a-yލ_x˗666(۶m߻o–,gΜx;>s~x0Eك(>VgOU8Z*M^x59cpʄc(6LE,! Xa'ڪ-9P?lՋNP,b5]ep47_+_B R 8!BP8A "Ҍ %+̓wżQz"PU:Lj3yy؁Q6;C_WϹO =ϻtin޽c1~ gN:Wq3پ҅'S&sϵZCn7Ν;<===77;XYYqlɒן}慅{x[G<37?n8l|h*#EUC,Lzb$)7I-cj/py8NP%ɀaT||[ݗl?koO0T}}l}e\<-r+"0͉LVKgh@#h60 |yhk]%WYgg|§K\T́H t X<4H ,|abWMd O2DUfI$ ik]*푚VFQ'0}Οʅ*]h Xy︹RG[ H9?E^Pw@De\j/}i'nNIZ,ؖ;asvs Gab[Ebp"_ %{S`8=Tr3k>b|I$ttѭn.3<_,.-y@, 5O` %W(ߙ*Z)_:P1 *9+l_cJKWi1(GS#w6"_gϞzb}r}_vj=t}әkkܼ0;;wSϟX__]]oߑ|cGڽ롇_?#Gt ^tʕ;wڳg<=իWlJ=:TgS}Ӿ“255g޽|{qϾ}-ީ vn`Eh6G醈=Q!>çUe*M ;`nZ?#,r1b½O_pRH IDAT"H*D [m1B$ ~| *Fԏ)-+`$t9|$+L 0IҨOͰmk1HsbJ'iݝ筿>+ y$yc6YxkU:o+1~&Z* }e2VR+03p| K{Ip餾}>4XЧRRPĨʾ1/YNȨ8QXN$ j`ʠv xijޱ@n,gaJ>s k ׮_z{qq zO>Vu;fg~w˗/mݶͮjvoMox?'[nL_;77l4=iӦ~ٹY  ׯ_;sT=|3Rffgw/.>cGۭMl [GϜ94lڼ[_?/_;\5xh&M14d{Bokg=tG|4VgqqO1i7--]$^\ܼyj(hmmԩS7_ߺm[>yĵ$A؝N+pm=c(&IS*VVr"#J',xa]7C]|V3dh.-նPF~RRu|B'{FTpZp2_&a'"1OJ !LO4ICuLQ(k'PjPL .(Tzɫڊ >:쎯̹)2P$>]BK5ӏjnڣ2v F+ cE(٩^mn,LULD /eLLSy(6'rr藩 KcmgNSOݸqՏ<⟐<3;;==G]JiLM5gΜ9OR: (Vk!!FcϞ–-)jgw4[N3 zрF35|S|g4M0Oᙤ͆~r< AQZ (E3U2j.H0X@f{ؕgu` cMƀ)@,%:V0r}ʌMOo=6Md4)s4 0>pvlllzo/]Zz^[Sȇ;p]z^s}ӏ}wo}]w3==mզ͛~ūxՕ=x UG|_GΞ}gXCoy뷿 oz9}ք;G`Vޘ,I{#:ffG(PSU#'5)$hYTjG2#rORg>WK2IW<Ȯ-N64:׭3OYҽM]*BƀSp/!Rͅ=PE"TAcfI ;U1 { 3GKMz*ݟWHPX)3}R@~4} JS=]I(k;߇5c&[ cO۽gaB?w3O_k^{., dVWWۭvoti鳏}яc`pu:=g8N'VIJy3*v/]ZZYY<}[m;v V Ǐ{kOuo&ʗIjzFG++eEjؠoI BHrfO1\d6R@ c(_]= 3"LU 3U&ؿKv ^y[<)/Y[[{#/^`w^С{oǎvO|Kfdƍ=w䉵Ux‹<z(ŋQJŗ^r]=8 BHܶ}݋f= ~+++{^vWczǖ\<|7/xlzs%߈Oj~h/))5K}$Cۃ,K~iADr)wR}aF>M;kDY7Mnc(*ᦡ|c)'/h%FuޠݪKbMoJo4T2^Ai|>B(I|7uH2fC={!PLb4Yid)*ElJH}/^E{ĉu)q>'렧^aT9+w٬˻y:m|x~xi%Qh{!]9y84@)慅Ns`};v>|ٳw_,K)υⅽ{n߱#H~3 Ο?wii)Y_yVg/]UviaT1e+5 BlY>S/٬D̔0ؿ2g ņ34Lz smf s/ S%Ǧk D94:4>}wmQI"+mKX41ʟRbo~=rŕعF¤䯣naWSMU+ 9Fן|$i$\X/l2FA<4 oy~.w+Zpr]UBV;e_/ /hDBRJB+ҙ$sЈ{ >6IC֫#Aq̟ypMLKi4vە+?^v7`Ln'>wtu[nٵk-^> ^޵k‚rCww~NzYr.R?M+c;A`gX,lUkD#{YD4ɾC̟@#3U #$T3j8| VE G)zFr[o¼-B&QN&Ժ!dceW7H> 5lv%^^zե p=6|0 "6/陙[w[v=lejz:Ljf:SS) ڴiW}Os}33ϟ{7y{-VntӁW5/t굫v~V|\|ѫW_ X2IBnЎ;3֟l6;N88jcqow;MOO4 rfwHՙPRGkAjgf5{GTd"B xY"t5/)#~ `0;w:t=޷c<]|‹/??+mnOڼyhR3ڽOL377nFt&!dӦM333~χc W_v[dv ՙޫN EGjȩNo+J'Mb0%:cioehAjS&pl QHEj`On8N-RJs #b"C__<:9i(|^qi>D$eqoh4MF47C</\joqg}9=u}oС`]MۜߴMGa`w;w9w^#ËkD챤F9zE[I "={τk  @톿ׯ .$?).'Fc.p;O+^w #331]R)D%OR^V Lm'Vg3{lۉ?W0: )IQ78ۚs}:5+¼{sUn@!R6M^^cwr[ l 0";IL^8S %ţgϟDIJ_hev.q*}B Ȩiϻ?ʚl_:5:/8B缿zI'8_%ppR,I N=3*f{+5"GHϴ}&@K 9Q0 >vsvP: =@fJ16%ŹjdwVCX!Lk^K)TS)Q[`f:@254Ʀ ?ET$%#O4##c({)iFL>܆waRGqs2_nH|%o,=Gz.]]gʅ۷FzXF&u g~)Zm1 hd̰atOpSx df&}t([`Uc隗VX Uî;Ǵ~tL;1ʵ(KQKTӁ<czaف#]^n}wz" !#/ҧVvg"̧jqɾc-]ZϞrwΑ ǯо` kTV_7`0@߳DP~9@cpP0Rd'Ω,Y[AsdJT1 ?1X>)Ra,68>KUCbKv1kXmJ:*Ԍ^wW؋8y6*Xl |LI_ aNB,)\#YYSUm~ՓFx#8߶uSHp =vE/¥U Evnrd я;4όVpużry/c|.!Y/ܙ"_C3ܡ!k,ƅU[J 66"(^I,w WmCN1@2)%7Ȥ%U/={qt' ckPp|ԳQ1ʉs\#BUێc_'AxEv F`;y a)$„MX=HyG؛Iã7ejD"ߎX#UcVKDJl6ͫodPJ9*ܘ]DnZ!y)LYP'LMMO@)~?xPp~.NV:G/nZyaU|!)R>nw}}]oߗsQL!ͲOxNa$ߺ)腦5nvBaRJr /W Th̥n7S$N%˔{WQdw(!`\ ;;e$j0.=FҾkzѤ,Yhqտ\!SևRjE-gHW IDATJY MQ;RU{֍ڛu|~Kta;Kn $L9UgTa΂Ɏr!GF=|˝4v>P_lNTYaBhK7$ [K uԦ\0ƌ$On9^׻YH$+nwuu?yP YowTx NG ú V mFD+)sd15)v1f2Fdl"_q87c3$dtxϞ)^=};3; len pcU"#߃w`kL=zbBJ`0llllll<PJe֧24#H yCgd*u 4DGI}BR>_$صUƳrm!qȘ$h41 4QE~H73iTjnH91RÝXH_Ǒhʥhyּ>q6u5[gr<£z/N_XiSb By뺮~`pc0rI(O'ѿ7?$G 0MZ_}jJ^>CGͧ?F~d7bJZj 8a}}RTނR'ekMIrD i`ςߤ *3wut/͜Yn]Y8h4# 랷bW;%6 +( Jr2@qu |AAyiWf,fbi+9PE 1`N'w/*ޙqԸVr6*3-[Z*Ldoe~"LGYuEJB''8b0})tmbPgO3Yζ/ru$䡿+W$ɣR$=iyx6qqp-B]9yBjѠ7Uj(c<+bũYKq+n8B|&xE$ $0R_mtR ɪ︱izk퍁6p<< RUX (x޺筹bgk}T][O`˯#DYR/26ozsBnC+QAȿ) kMJYzG+rqUFkBOR 5(V.6*/Y K5p_\qOD 劋g(Fm߈C,_)ӯ#MdX*Hezbw?enog|њ`@%fJj{e>_>A2/rs0)sxMD]GjyvL~K .%9YL\xQd(y%)~|1&T~B-8vvLg/`'5JQa@.~O]~\o[ 1zߘ 7_])?QA;Q#By98GR5Q[F'bqW C lWΨ0^^͉^, bjOK3/]+Ԛg W 7[zH}s+KRP4{hFDXdb YA:&̉s:1`#%l}TH#sS#o7ƕ 0uGK#"RbCnQ#ౢ.d\)}#(KՓO\yfxcwQJFh+kҐk#.Gq>WsZ^>*_=͈W VQbG3u*DFTD-KFܵ*RJA `ƾ[rG{q.^c}FXo5m=FC&`}$RGqʷTa^MBIAVU&)$)M;ޔ=LDWfG@݈(IbtIGW㪦TKRC<.խMy4kf¡ bhf;Qq b\2B9& {9>mNwT4+=c=?gf~=gٯz%ĩ5fu?"&F\pə_pLt3FbvɡM$潑}D*$ϗRV>xǤmh+'_#x(TMX&Ve/( k4G7!ԤC8>21 lk&X"?ei-y/繊[\ot#Ι)‰۔M֙G{܆L G@s T{VpsˋM?DNUVC$?;Ld+1iC Wd!35] Y,Em GPBQI-E!2~ '"v嵞t@yopǯ^oF Cm^;5JELYH(oTdpPJ۵C=L4u V?W ya`3:Uߟڥh|!#ȕ`X< J"A)%.e(;BY W2D'p<_2-lJnn)l/D"Rh:y9hF$_= bԘ&/"x3[ #k3TU fLvRN2N:YTG'pMTJ; xuz;\N/;^p 3W${1RF]%y$r;|F}*~}')yGeWD@j1;AAAAAAA,~5       Rx4       HX[[DoPb}AAAAA7==]X H}jHO)NIol4jgX8NtTJ#뺮 qn-IhQvUXR\)     L߰ĩ)T!2>Pϓs^拽[{+˷wosS') 8R 04~Gj5|}yFQ9'|3p a$|{_E]%t{369-fl֤?țan,w n̦לrϽ?n>I{~}{Eޙ=եԯ_Su>Cїo[)ilQzc ,G>xCW>?z'm__oJGݻ<ܥg?vEqjCs,Kgf6^ q4FtV|onZ257^y2 zk/N]Yr,W7Wֿ|Unh㭵gHi2t0..}{z7M`p=YRWuf|\#    ){A{?tf[Nx8jm?}w='~緾gOZ??oos?7c=#ۂ\~~?~7P9B4q/yaium gg \:phl鮻ovz|`do{OyNk;+M ڍ~o;Nhhh L vn9Tղa_l>X Bmv3yސ~-?&ӄ꾴S3 ճSxk}Oyw؀)ns74 @GA{@4̠M5+?߽MM#    HADJe?_?cW?DNovQ/G.zC X|/}ׅOg_;?}{ÛgfWfQ`c᧙WnY~/3yߏLat:nzٟ=;l  ?&:C`c 66 x7k"oz{zμ;ſ x08^#ޝK{:ڠh\ k٥O6$kw=߱15=6`AAAAA8Dt=r=_҇F_?nWo|[_{_%%3@bwIt5uϴLwj ~vbfpK-W0e;f6[ͷݟгOܢ#W|xeӎ&AAAAA$w ޟk2w?\|;nn{gG)o}ek=;>{d33 Lw<'d Ȍ"(ZAjqZyhVuFk- T@d BȜ!  j?/יOߵxWeev%ne/}N|ۓt0/?kh+",:~s,s責AG/,l2Q]96j|E A7BT db DU-HD/sN߮  8' 0&4 !nP]C@ Qeݫ!{QdMSpѺ_L.?}M_@rLJ1#@h8n\4Cβ쒦F@)Q- _q[ 2x9cO4P֛&9 PId }͚ax5 3٠J Q4M K%\IXV{;9pxԋ΋)n)xՕ];ebBHb"9b41ʥp#Af?@ @ M/1k,fz'#T%˩م3]!lrٲeeee'NLKK;5q_6nܸ}9sh8a]x+32ҭ-V3n?j达n[֮VXuVwƚg„ i6ZRHMHnrUMjIYY %VTx9-E%d~̸0(%ܻr`ԃ?45Fu}w=ϿfvntI['S麭ྊolz~e/>4-OϹ 5K~DGEƱ1[Y;AH`In Q)̯͵`"$΄ C: Fn'DI4%&#'9; \Cp8b (n i̢)Vc1:H IDAT9g܄bo/ViYgNح7~ho2Ɯ3452!, 4ޝ)$WLj%*~"g ܎hNH_?AP*])\:L<OHC$A_ М 9˄+^K]7HzRw$sr"b8 1y yH6oPf!7-,c'rkqF U@ @ zD DCa]c$=k^ZMcsjڼ^ ˇr뮻h|>ҥKkjj 8EEIMM=Ngwu֭Yf֬Yeoذe˖gDpΫkl6kS!++3##H$v=##cm2N4Iz].Wovqeff+Wܼy?P^^o~e-׵uϾY_l *4Yg9-(\[g66>qͺM_5Z'X %_"RJ GJJjﺋZ-D!I $/||\h̻ߜS\6M0Mz "4l*Weԉ闂^Vtk_k(- t;B,0nQUծaCY x8 @(`(,&}=:i쑝=eV}U? `*ɒTd't5'ZT0)ys.kq L̞~TEHȚNT`arH0<݈C$U!{疄ed C !GV i$'$`]jplaRr%w4.o%,s@D!Cf$^ 9 !1C gi 6+PJ5K'/^K3Pa&@ @ !_$<,ȡ@d@"A^٨J[ 9Ni P4JbGx<[l馛FUPP/^|1MӜ7o^EEEnn(ED0}'?|LRR3***ڎ{o߿G4u]-m{oڸiѢEW_=799t\999ڽ{weeՀŽ!G"oK,?Hyyyعs!Cbr]ZY֢" ޽; B\.W~~AK,y'NzCP  srZwz.䒟')X[vD53ܳۋJ|N^r'GX{^/֞MNı3$rwagS_-ӤL_=ҜZhn{?~M{|za$gBb#ng<[:HQ9/lW98b9<?&لֿx;$_|B~iii(taOQĠWy9["RW#k x&vS1D"wN"$,񌆼Tڂi| s_uZmoF=*tW}t4YVu[5V#b0HKbdHrG%ߪ C0vW&D^\Af|UiRnW,[/kL׼jy\5}Љ:"Hdw$70ҀQqC*u cgm\}9 i9bRlu 2 c 05묑;hZ+miE,I/'8knuIOs2^Ia sHDHJBGG'sΏ+ @ @ ?8Ll4I U<'y$yR(V},K15ѽZt͛/7<6vӜgZr/.ݭ$+?3z|:V\91@0@4wk/g<3:T"eCM `xk+ڶ$#)#F͊y?Y7zv2Κww۹a`@@fh̺%k0˗?s>ݥtMf&-M} &cF")@hn!`PVBL;"+_F(pMcd#+V~TH)=8d9XS?lQڹ*48d1G_,Ɍ3w"Gh?x7 '~0,Ҙi\d6sƵ+;Nvv4Z1BP6~Y:'@@(!Ɋ(R/G$DQ*ni* 2"s`  s`DNݢAPh×r=RJQ^dm%޶gS|m[‹9ޮ,ˑqdyn~@ @ K$dsƏ`ի]8 ITj́5%UQ6wdJ쌅V>^'uNt+ M>!>jf%))i<ҥK~_<׿.**Zd|0s̙3gٳ'ξRYtG͜9sԩm5 nڴ顇j+xoذ!CJJJz1xjkkCjMNNlɲlf$ QjMIIږYf-^osfU%l6kFFƾ}t8?C7n[ b8pݹmٲ&##>ׯ7o^>penŕooٲ_qۢY[ѧo.\ԓCfa-cǎ?< ^R19q$>fHEYkVe/-T[ΊOưom3u]KLIvzt۽6}.Ûw\Qhŏ攕=cyyz__q#c4 ܵ Ttc @)sO̜UUU/93iҤvpJiRRFj[Y}0UC[birYAq B* fE=|GDo2K&Ӓ%yg :hs#F{/b4$SD$M"ns('R3oȤZ2 ߽޺z#͒i. ,zeY687lr͙!|$$ڱIzwFI88HX!rp[F]"_ ACI`DrdF(DU9]dNЩtLl&u`M=e5kO a.F>p8?????BmZzdBݎwuYYY6S4`0XWW~Ǔ+unnW7|k̙Q4 '$ O)))Kxl.e[lYp)SeK5y=4qOf^x={P7!!a?KJJb0P-eУ(n:;D']EKeH{&pD#c"`'9#zO6xҽFQl~Flj*' ⡊M|Y%IE- :goggLHjyw~ʿKujLu0f-g QƖL@)U4S(1$ۉ@40`$ufsʸJ$i_cd!t꿊|ٲBMd ԃ gƑ*[y[Btk'h nLDIb4&pp! Ry犇I]+˒,[p907@ @ ~pu U&nv9eR@ZnvBPJm6$GqV  RJv:U,7\]]t /߶m۲eFB㎺SJ_ >|3v~㨙$~yg${#!lOZL*yEg\v:*MzZB䄡tb oxoZu[ε3fL຿n/ˬ#&ʱKШ>,]{c6(5a)y|R2JV`aqp0VYH G)==!M `n7f%hjYzht j6۽}'$K!1pvWՂD1`Jfk 6a 0"v@&$a0~B&wDd (B@ @ ( $ i5E)R!fHJh$F 9MaG7@ }ך2I#@x_|&MΘ1㮻ZnԩScBH^^^FFF0vh%ZY TUWQdY,~jFMM… WZ UU4-D5kr\C 9p@lpD/XohnnX~J֮?'1.w}M7۷rKRR^o||˼}]䛯zW0UU՜ݾMk駟0n[nֲCLLL([YeP__ԃHOO?׹yKօbאHy;:ΦI풿nf'?IAxBeTP$Hܔdz2vC*Hx<"v=J$ lYP05gחwZG;:\Ou2t|$Mp *aYf@$g"`aJâhVUՈDٛ)=dB9 Z@.W%6x *'+@-Q==bjqrSA^oXr.8DŪZkdƼ?M0 =iDe-jn΁qЙ,@ @ A@ X^jGpe+ߑ7ߎT"*X䄍]-e}P%%k}zhjjj}ӧgff@vv)S-Z4vX3I;PUUuw޽'5j3RyD֬!s )@M>*%LmQeהRU|cBJ 5 3 *%E-*`ԛnVi(zn~>fLP٦_m 骩,ߵ5jޘ)4:XtQ-fT6tKj  j4G!㜓b욢@I'j `!B`dG; o,n"YKI9 EAH3,2 S XOȑqy@(g5"u .)GdܫB @ @ @7hqR$)Sb4%bu$!v')7DG[N ƘGf&U c> @tY 9ꩧ&OMWkXNjժW^y[nY60EZQ$EFoQ}7_|9GZhMɓ'\?,..=ztoC0mfzk·ZxeF V“UM͘ל~|mWϝ;]Uᤴc-7nܸqcuu~xE7ݽSF'0!sRpNI. ۅԧ%OG@aJGmn޸Nj#Cw M]SVkYሴ%82-t #MU^nT^XK[8ܫ޲}½}/btR;1ܖ;rB.5 ͆u^Sqf ?{w;J]OѬnNQ*BL!3- ,B ]5QUiT7uGD0QPL@/1H!B 2"$xC x% Xh3=I.~Ch h-n[S>@Q370 DZ @ @cE7PA x42OɓmZ&6Ubٲ$)9h80%ѯ;`XlEJK_||'xm3f<g}vqqq E?]ד!7x̙3 !Æ {7UUkjjySssseY|˖-/kjjG9m4=mڴѣG:lذQUռ>z-ɧi x7M.O7뭦.Yv?v/W7>n[ pۣGNKKy IDAT=] G_@&.z#ZhOڑ0 G?Юl<&p;]?O{oMJYk 83!Q/Ҡ1.9#>x VpbILт<#w_;±$ 7Zcs=Soi zŏ3YetSy؊"bnk"$ѣWGњ@` AF-o<(N!ZWF 2BTŨ-^ : B$#]{ "ps@Nf*U7bƢ)c@ @ _jdCakGM5lÌ=Ѡ$TӬju2g!5p'1VE.wm6[ˢ_ &ym?1/k+++j1nܸHHHHHH۷?gÆ |/^|}1"555c7oIH߿; _{o!ID+:)%&3I[bM>iYMD-HjK0"lC #LYSr R"I4G(o܀paTM]V͒i ac%K΁\V5-CFZrY/&$ͦ,`'ĬꭷgJbVniMJ =aUL+I=RG\2(xBPfQ{'L8nH9;Fg۝+YU;v۷mMMM@ КnJI([nRv`]]]rrr~~ Sl_SSSaaAzz:j3{o,x7ߊU=o?cx5L??'q= 6Peefظrťʻq[3}ݷoߞmKNNNQQQssa:]vmjjjaa;bQp 67xw&MdZJ0"|֖X]]=5S:-#b-Ȱdɨk@HP8cCLE dEZaf˒,[0-uUCDw`XvaB$rd#ivHTV7,tCZ'SGNҸw> ިlX'f=SϸvšI*H$|'i䷹Rѝ {|^ I;/H1oK/=C|GnN{ݶm<0nܸ$nY^^>bĈcvg?[9W^yO>P(dٳ۞P(4o޼Wr&>p>ZZZڧO_׽Qb9JZZjVV&''Ƕ)SƍD xwĶ !'11Q`0Ľ[yh<Ϝ9[n;.a[Gy$K}͝;DtJzz5\sϽ;I&vm% {ѷM+a 2kCt>E44N,jRzMR^Nwm7XF*iMU[%1`cCRؘ3.p9m'-Rgѹ+h{r几pSOK:,Xیs/9-rƕk?'(n۫;M?4; c 0T׽UA[APAbH#&)%d%@@ADCGR@m ?8pD3Lە'9 m{`8Dug@ @ (4l4Þ螯"u) Hh%%.S4QQbS?12&%Eʃ.OlBRٍFYbbx<{lذƍr8]vz뭊rD1HII)((IЎdddlٲ%###++@Wp8|`šCFZnf^ܮ$pD _s5MMM7|~V1!$*@sssYY$IEEEݱ9w3f޽;j`0///ͽ[:zO $Ij)"IR#Νm۶ .E>^:AU2FqL(IƑFjև C?O$mӤ6-@ @ "DaH)8180hߝ#-lX 4R9g1$þB̕Uu<۲e˵^;f̘͚ϟ߿=,O>ҥKkkk 8ư$!DQ)SwyJ-IRnnnnnnۅ7o:ӻ/EQnᆌI&9#Q#ݲe XT7Κ5onXy! /CyA˕C5bĈ֟a 80:ѣG$J;!{MJJ:3ZW3&55uV322l6[ hjF(îv<vcmul=yl-1"O'^/({zp 2d>߽{+瞉'~._sNfm";FˁTFm]HF.(jJSZ3ꚦN)?4 R4 IILZ5O0X#oIJ I(جZeu_TRU\冲ں Wܙ}Ki߬ɛ_Օaʷ?Xߜ0ܹ&*l*h`\c/e\{.>#|߈h&X {Ϯ Dh  @P8e6ɈSO^XdLwA}80 s̟VWED$;pVսP@*q eΐ"SP-Y´+L's΁#EZq&%{ipD;ez'8(!dML_@ @  Ao5z'#4H/WáHIV)涄}SU5 e||t+=GlcwKF<߬sm_@p|ze5#My^v˻oㅯ2o5o{|`~_^Ր[a7<}$ .(//}muY{.EQ=M>B$JLgW }P8{Od?) ʖ[ |rΌH(:ѯKTeSbۭV+/v$Q[#ﴒR/Q@ԔӦ-6aq1 ]iZaaaCCiOAUWW#,˅YcB)KTƬ뷑0!lډ;Y̔XzńxÃk2xٗ:mO}TkvĈ'N!$=lfyeiZ%`<bl:$\&BߩM>1Z0c|NP=~̸ [L|ťI?@u)`I/q zGcWgggG`,7uTnwْ$Ymk6&,~@i JWHFc+Josrjb=<^0LC43(@}*) 6LBd \%\I6 G];uՄu@jU;dnh7c&I!,YC @ @ C)~˜B,VڋQJj?X$I!h?SѼӧ2)r7o~sISZ8P Ig\{ ]G_T,,]_]/ y헭E.{)AYѭy|$LW0DrdAPzXx=m!ݰlWea""ʻ7/G6nX ~p+ص!A;ˎ(~qSS(1>}ܴ3KH-c+o<_/.y_]O12 T3Ad2ә3N߲,yyyh~k$DѼn4>0 .y;_tk.}Z3O)gV 6ayOu ިXr"Q..(H(E.%T7#.PZ ] ]"[2*qnک wƄ\M\-*a9+ضCU&w,λiH餿w¨׈lӵ9 mj/?oTkvR'u F=Xm""2 ,?nh?hY2,DUBoXeG>Yh܈V%{iMniue=I;iբ;UQ +N6.˫cb\ X{[ZEs]OwNwf2X>8t4,~F$UUS'W(J&w`vҚH\z63K!An2{YA2 mlLN';[ &HӸk +Cf5K~HB:KH^!*7*yRv97 .[*>K/o E_:@+6}2Qf=^ݛHqo=4ui/oسS'G&"2 ӸŇmi}νKGF[pp/(%"ʸ"VSihS~w0 TTTAo8UtڧŶf+PkZI畱M Zk>(BIods29D fZg3_܂U:yCf| {LE9Ɩ?'+8FFM͌Iջ-{KlIKMUU =cKe#"3̐>\zʨ,aŜ4ɚ=m|_f%f]ScFxO35!3ĎtbD1&"d,$yTNyt9{_yeKtK q9#e#c${ߒ&8?x-+7~=?_-QF =i3c8u J~|guEe<&e"ɕO"+.KejdխiOF:R(`Ym˲z0 ðm;COǍwb;2\.kxfoL~dGG9]b 83lȹH b\*ϕk4o;s$I?iUfENoGD5zS|%kޓd\:bK6,_NDDܬ5u+TvѶ|L&JRi8gdI].(6sPa,c^m۶m0 4c(";cLQILT g\rGtUU +Jwx [U_}BE&Y$2ૅ(n˲GNbQ-ҡ泳C`b6snYeYDT=O Ȳv9wpIҽᰏOi^~.SgeqJdX&QDxNB ˲$I.+(v8H,4M.>c)n"k<&2mοO>_BO??ƓvOo2ޚsչ7̹gL"%}k_y;f}c>N:ɥ2;>Z8{րyP4/'= 9on9vt۳*a V]%o&+ kיgrGuȬIL+j:az~ ^C6CZrsZF_b s“{HR]yFgDcWzwfN*|`Eu1"[O̙_%:jّ{fk ~,\/MdߤDda|F*mwylbt¬'㚁."f5g>gV,-^棤>uwo)y[>i?d2ٲ zZ 8]ViZ0DdmLZu7/ׯNeԜ׋?0eXu;Pkm,N?תu luO,%-6k` 8>19Oӝ}.UU=_:&u#嶻sV7}V\w7_"]9oT,/[r[wG~7;!NԠ {#7 @7(%ǸUUz)@w_Q=!7mG'L¢z2N*im|2_Xf/>Ft|anfv,Iiɲ#)-;j3%]uJa|.YeY4Mu˲LӴ,ޯ'"ADQ$IEDpbɑ4N ĉO*&v~!~A2NԠջYUcӷ1")`,C C4@kّpDIENDB`kylin-virtual-keyboard/CMakeLists.txt0000664000175000017500000000436215160532634016662 0ustar fengfengcmake_minimum_required(VERSION 3.10.0) project(kylin-virtual-keyboard LANGUAGES CXX) OPTION(ENABLE_TEST "Build Test" OFF) # set something set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) # find packages find_package(spdlog REQUIRED) if (NOT spdlog_FOUND) message(FATAL_ERROR "Spdlog not found!") endif() find_package(QT NAMES Qt6 Qt5 REQUIRED) if (QT_VERSION_MAJOR EQUAL 6) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Concurrent DBus Quick QuickControls2 Core5Compat REQUIRED) else() find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Concurrent DBus Quick QuickControls2 REQUIRED) endif() if (NOT Qt${QT_VERSION_MAJOR}_FOUND) message(FATAL_ERROR "Qt${QT_VERSION_MAJOR} not found!") endif() find_package(KF${QT_VERSION_MAJOR}WindowSystem REQUIRED) if (NOT KF${QT_VERSION_MAJOR}WindowSystem_FOUND) message(FATAL_ERROR "KF${QT_VERSION_MAJOR}WindowSystem not found!") endif() find_package(Fcitx5Core REQUIRED) if (NOT Fcitx5Core_FOUND) message(FATAL_ERROR "Fcitx5Core not found!") endif() find_package(PkgConfig REQUIRED) if (QT_VERSION_MAJOR EQUAL 6) pkg_check_modules(GSettings_QT REQUIRED IMPORTED_TARGET gsettings-qt${QT_VERSION_MAJOR}) else() pkg_check_modules(GSettings_QT REQUIRED IMPORTED_TARGET gsettings-qt) endif() include_directories(${GSettings_QT_INCLUDE_DIRS}) include("${FCITX_INSTALL_CMAKECONFIG_DIR}/Fcitx5Utils/Fcitx5CompilerSettings.cmake") set(TRANSLATIONS ${CMAKE_SOURCE_DIR}/translations/translation.ts ${CMAKE_SOURCE_DIR}/translations/translation_bo_CN.ts ${CMAKE_SOURCE_DIR}/translations/translation_en.ts ${CMAKE_SOURCE_DIR}/translations/translation_zh_CN.ts ${CMAKE_SOURCE_DIR}/translations/translation_zh_HK.ts ${CMAKE_SOURCE_DIR}/translations/translation_mn.ts ${CMAKE_SOURCE_DIR}/translations/translation_kk.ts ${CMAKE_SOURCE_DIR}/translations/translation_ug.ts ${CMAKE_SOURCE_DIR}/translations/translation_ky.ts ) set(RESOURCES ${CMAKE_SOURCE_DIR}/floatbutton.qrc ${CMAKE_SOURCE_DIR}/qml.qrc ${CMAKE_SOURCE_DIR}/translations.qrc ) add_subdirectory(third-party) add_subdirectory(data) add_subdirectory(src) if (ENABLE_TEST) enable_testing() add_subdirectory(test) endif() kylin-virtual-keyboard/qml/0000775000175000017500000000000015160532634014706 5ustar fengfengkylin-virtual-keyboard/qml/Toolbar.qml0000664000175000017500000000167515160532634017034 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 Rectangle { width: parent.width height: parent.height visible: virtualKeyboard.isToolbarVisible color: virtualKeyboard.virtualKeyboardColor HideButton {id: hideButton} PlacementModeButton { alignmentRight: hideButton } } kylin-virtual-keyboard/qml/CandidateList.qml0000664000175000017500000000514215160532634020133 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle { width: parent.width height: virtualKeyboard.toolAndCandidateHeight color: virtualKeyboard.virtualKeyboardColor visible: !virtualKeyboard.isToolbarVisible Rectangle { id: candidateListRectangle width: virtualKeyboard.candidateListWidth height: virtualKeyboard.toolAndCandidateHeight - virtualKeyboard.cardinalNumber color: virtualKeyboard.candidateListBackgroundColor anchors.horizontalCenter: parent.horizontalCenter y: cardinalNumber radius: 15 ListView { x: virtualKeyboard.candidateListX width: virtualKeyboard.candidateListWidth - x height: parent.height visible: true clip: true boundsBehavior: Flickable.StopAtBounds orientation: ListView.Horizontal model: virtualKeyboard.candidateList spacing: 20 currentIndex: virtualKeyboard.globalCursorIndex delegate: Text { id: candidate text: modelData color: ListView.isCurrentItem ? virtualKeyboard.candidateHighlightColor : virtualKeyboard.candidateDefaultColor font.pointSize: virtualKeyboard.candidateFontSize // TODO(litian): 使用更好的方式使候选词居中 /*设置居中,设置anchors.verticalCenter: parent.verticalCenter会报错 TypeError: Cannot read property 'verticalCenter' of null, 因此手动计算居中位置*/ y: (candidateListRectangle.height - height)/2 MouseArea { anchors.fill: parent onClicked: { virtualKeyboard.selectCandidate(index) console.debug("点击了", index, modelData) } } } } } } kylin-virtual-keyboard/qml/Preedit.qml0000664000175000017500000000250015160532634017012 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle { property alias cursorPosition: preeditText.cursorPosition property alias text: preeditText.text width: parent.width height: virtualKeyboard.preeditHeight color: virtualKeyboard.virtualKeyboardColor x: virtualKeyboard.preeditX TextInput { id: preeditText font.pointSize: virtualKeyboard.preeditTextFontSize anchors.verticalCenter: parent.verticalCenter color: "black" cursorVisible: text.length != 0 // 暂不支持通过点击改变光标位置 MouseArea { anchors.fill: parent } } } kylin-virtual-keyboard/qml/key/0000775000175000017500000000000015160532634015476 5ustar fengfengkylin-virtual-keyboard/qml/key/TemporarySwitchKey.qml0000664000175000017500000000407115160532634022030 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils SwitchKey { signal temporarySwitchKeyReleased(string temporarySwitchKeyState) signal temporarySwitchKeyClicked() signal temporarySwitchKeyLongPressed(string temporarySwitchKeyState) multiPointTouchArea.onReleased: { longPressTimer_.stop() if(switchKeyState == "NORMAL") { switchKeyState = "OPEN" } else { switchKeyState = "NORMAL" var keysym = Utils.getKeysymByKeycode(keycode); var modifierKeyState = Utils.getModifierKeyStates() virtualKeyboard.processKeyEvent(keysym, keycode, modifierKeyState, true, Date()) temporarySwitchKeyClicked() } temporarySwitchKeyReleased(switchKeyState) } multiPointTouchArea.onPressed: { longPressTimer_.start() var keysym = Utils.getKeysymByKeycode(keycode); var modifierKeyState = Utils.getModifierKeyStates() virtualKeyboard.processKeyEvent(keysym, keycode, modifierKeyState - Utils.getKeySym(label), false, Date()) } Timer { id: longPressTimer_ interval: 600 onTriggered: { if (switchKeyState == "NORMAL") { temporarySwitchKeyLongPressed("LONG_PRESSED") } else if (switchKeyState == "OPEN") { temporarySwitchKeyLongPressed("OPEN_LONG_PRESSED") } } } } kylin-virtual-keyboard/qml/key/FnKey.qml0000775000175000017500000000277115160532634017237 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils SwitchKey { id: fn label: "Fn" switchKeyState: fn.state multiPointTouchArea.onReleased: { if(fn.state == "NORMAL") { fn.state = "OPEN" } else { fn.state = "NORMAL" } } state: "NORMAL" states: [ State { name: "NORMAL" PropertyChanges { target: virtualKeyboard fnSymbolState : virtualKeyboard.shiftState == "NORMAL" ? "NORAML" : "SHIFT" } PropertyChanges { target: keyBackground state: "NORMAL" } }, State { name: "OPEN" PropertyChanges { target: virtualKeyboard fnSymbolState : "FN" } PropertyChanges { target: keyBackground state: "OPEN" } } ] } kylin-virtual-keyboard/qml/key/BackspaceKey.qml0000664000175000017500000000161515160532634020541 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 ActionKey { width: virtualKeyboard.keyWidth*1.5+virtualKeyboard.keySpacing height: keyHeight * 3/4 alignment: Text.AlignRight label: "Backspace" actionKeyImgPath: "qrc:/img/backspace.svg" } kylin-virtual-keyboard/qml/key/ShiftKey.qml0000775000175000017500000000544715160532634017754 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils TemporarySwitchKey { id: shift label: "Shift" Binding { target: shift property: "switchKeyState" value: virtualKeyboard.shiftState } Component.onCompleted: { temporarySwitchKeyReleased.connect(updateShiftState) temporarySwitchKeyClicked.connect(virtualKeyboard.shiftClicked) temporarySwitchKeyLongPressed.connect(updateShiftState) } function updateShiftState(shiftState) { virtualKeyboard.shiftState = shiftState } state: virtualKeyboard.shiftState states: [ State { name: "NORMAL" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.capslockState == "NORMAL" ? "NORMAL" : "SHIFT" symbolState : "NORMAL" } PropertyChanges { target: keyBackground state: "NORMAL" } }, State { name: "OPEN" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.capslockState == "NORMAL" ? "SHIFT" : "NORMAL" symbolState : "SHIFT" } PropertyChanges { target: keyBackground state: "OPEN" } }, State { name: "LONG_PRESSED" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.capslockState == "NORMAL" ? "SHIFT" : "NORMAL" symbolState : "SHIFT" } PropertyChanges { target: keyBackground state: "PRESSED" } }, State { name: "OPEN_LONG_PRESSED" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.capslockState == "NORMAL" ? "SHIFT" : "NORMAL" symbolState : "SHIFT" } PropertyChanges { target: keyBackground state: "OPEN_PRESSED" } } ] } kylin-virtual-keyboard/qml/key/LetterKey.qml0000775000175000017500000000210715160532550020121 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 CharKey { state: virtualKeyboard.letterState states: [ State { name: "NORMAL" PropertyChanges { target: keyLabel text: label } }, State { name: "SHIFT" PropertyChanges { target: keyLabel text: shiftedText } } ] } kylin-virtual-keyboard/qml/key/SwitchKey.qml0000775000175000017500000001135515160532634020133 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils BaseKey { property color normalColor: virtualKeyboard.switchKeyNormalColor property color pressedColor: virtualKeyboard.switchKeyPressedColor property color openColor: virtualKeyboard.switchKeyOpenColor property color openPressedColor: virtualKeyboard.switchKeyOpenPressedColor property color hoverNormalColor: virtualKeyboard.switchKeyHoverNormalColor property color hoverOpenColor: virtualKeyboard.switchKeyHoverOpenColor property alias multiPointTouchArea: multiPointTouchArea_ property string switchKeyState fontSize: virtualKeyboard.switchKeyFontSize keyBackground.state: "NORMAL" keyBackground.states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground color: normalColor } PropertyChanges { target: dropShadow verticalOffset: virtualKeyboard.dropShadowVerticalOffset color: virtualKeyboard.switchKeyNormalDropShadowColor } }, State { name: "PRESSED" PropertyChanges { target: keyBackground color: pressedColor } PropertyChanges { target: dropShadow verticalOffset: -virtualKeyboard.dropShadowVerticalOffset color: virtualKeyboard.switchKeyNormalDropShadowColor } }, State { name: "OPEN" PropertyChanges { target: keyBackground color: openColor } PropertyChanges { target: dropShadow verticalOffset: -virtualKeyboard.dropShadowVerticalOffset color: virtualKeyboard.switchKeyOpenDropShadowColor } PropertyChanges { target: keyLabel color: "white" } }, State { name: "OPEN_PRESSED" PropertyChanges { target: keyBackground color: openPressedColor } PropertyChanges { target: dropShadow verticalOffset: -virtualKeyboard.dropShadowVerticalOffset color: virtualKeyboard.switchKeyOpenPressedDropShadowColor } PropertyChanges { target: keyLabel color: "white" } }, State { name: "HOVER_NORMAL" PropertyChanges { target: keyBackground color: hoverNormalColor } }, State { name: "HOVER_OPEN" PropertyChanges { target: keyBackground color: hoverOpenColor } PropertyChanges { target: dropShadow verticalOffset: -virtualKeyboard.dropShadowVerticalOffset color: virtualKeyboard.switchKeyOpenDropShadowColor } PropertyChanges { target: keyLabel color: "white" } } ] MouseArea { id: keyMouseArea_ anchors.fill: parent hoverEnabled: !virtualKeyboard.isShiftKeyLongPressed onEntered: { if (switchKeyState == "NORMAL") { keyBackground.state = "HOVER_NORMAL" } else if (switchKeyState == "OPEN") { keyBackground.state = "HOVER_OPEN" } } onExited: { if (switchKeyState == "NORMAL") { keyBackground.state = "NORMAL" } else if (switchKeyState == "OPEN") { keyBackground.state = "OPEN" } } } MultiPointTouchArea { id: multiPointTouchArea_ anchors.fill: parent maximumTouchPoints: 1 onPressed: { if (switchKeyState == "NORMAL") { keyBackground.state = "PRESSED" } else { keyBackground.state = "OPEN_PRESSED" } } } } kylin-virtual-keyboard/qml/key/ChangeImKey.qml0000775000175000017500000001074515160532634020347 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQml 2.1 import "../js/utils.js" as Utils SwitchKey { id: changeIm property int iconSize: 16 keyLabel.visible: false icon.name: virtualKeyboard.currentIM.split("|")[3] icon.width: iconSize icon.height: iconSize Binding { target: changeIm property: "switchKeyState" value: virtualKeyboard.changeIMState } Connections { target: virtualKeyboard onQmlImDeactivated: { imList.close() } } Connections { target: virtualKeyboard onToolbarSizeChanged: { iconSize = virtualKeyboard.toolbarSize * 1.2 } } multiPointTouchArea.onReleased: { if(virtualKeyboard.changeIMState == "NORMAL"){ virtualKeyboard.changeIMState = "OPEN" imList.open() }else { imList.close() } } multiPointTouchArea.onPressed: { imList.currentIndex = virtualKeyboard.currentIMList.indexOf(virtualKeyboard.currentIM) } state: virtualKeyboard.changeIMState states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground state: "NORMAL" } PropertyChanges { target: virtualKeyboard isCurrentIMListVisible : false } }, State { name: "OPEN" PropertyChanges { target: keyBackground state: "OPEN" } PropertyChanges { target: virtualKeyboard isCurrentIMListVisible : true } } ] Rectangle { id: imListRectangle anchors.bottom: parent.top anchors.horizontalCenter: parent.horizontalCenter visible: virtualKeyboard.isCurrentIMListVisible width: imList.width height: imList.height color: "transparent" radius: 8 Menu { id: imList visible: virtualKeyboard.isCurrentIMListVisible property var backOpacity: 1 width: virtualKeyboard.imListItemWidth + 16 //(16为左右边距) // 输入法列表的最大高度可以完整显示四个条目, // 输入法列表条目数量超过4之后输入法列表显示滚动条 height: imList.count == 0 ? 0 : imList.itemAt(0).height * Math.min(imList.count, 4) + 16 //(16为上下边距) modal: true Instantiator { id: menuInstantiator model: virtualKeyboard.currentIMList delegate: MenuItem { id: menuItem padding: 0 property string uniqueName: modelData.split("|")[0] property string localName: modelData.split("|")[1] property string label: modelData.split("|")[2] property string iconString: modelData.split("|")[3] icon.name: iconString icon.width: iconSize icon.height: iconSize text: localName MouseArea{ anchors.fill: parent onReleased: { virtualKeyboard.setCurrentIM(uniqueName) imList.close() } } Component.onCompleted: { console.info('iconString:',iconString) } } onObjectAdded: imList.insertItem(index, object) onObjectRemoved: imList.removeItem(object) } onClosed: { virtualKeyboard.changeIMState = "NORMAL" } } } } kylin-virtual-keyboard/qml/key/ActionKey.qml0000775000175000017500000000345615160532634020112 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 CharKey { normalColor: virtualKeyboard.actionKeyNormalColor pressedColor: virtualKeyboard.actionKeyPressedColor hoverColor: virtualKeyboard.actionKeyHoverColor fontSize: virtualKeyboard.actionKeyFontSize property string actionKeyImgPath keyLabel.visible: actionKeyImgPath == "" Loader { width: virtualKeyboard.toolbarSize height: virtualKeyboard.toolbarSize anchors.verticalCenter: parent.verticalCenter sourceComponent: actionKeyImgPath == "" ? undefined : actionKeyComponent anchors { horizontalCenter: alignment == Text.AlignHCenter ? parent.horizontalCenter : undefined right: alignment == Text.AlignRight ? parent.right : undefined rightMargin: alignment == Text.AlignRight ? virtualKeyboard.keyIconAlignment : undefined left: alignment == Text.AlignLeft ? parent.left : undefined leftMargin: alignment == Text.AlignLeft ? virtualKeyboard.keyIconAlignment : undefined } } Component { id: actionKeyComponent Image { source: actionKeyImgPath } } } kylin-virtual-keyboard/qml/key/GraphicalEffectsQt5.qml0000664000175000017500000000005615160532634021776 0ustar fengfengimport QtGraphicalEffects 1.0 DropShadow { } kylin-virtual-keyboard/qml/key/FnSymbolKey.qml0000775000175000017500000000243015160532550020412 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 SymbolKey { height: virtualKeyboard.firstRowKeyHeight property string fnValue property int fnKeycode property int numberKeycode keycode: virtualKeyboard.fnSymbolState == "FN" ? fnKeycode : numberKeycode fontSize: virtualKeyboard.fnSymbolKeyFontSize state: virtualKeyboard.fnSymbolState states: [ State { name: "FN" PropertyChanges { target: keyLabel text: fnValue } PropertyChanges { target: shiftLabel text: "" } } ] } kylin-virtual-keyboard/qml/key/CharKey.qml0000775000175000017500000001057615160532634017553 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 import "../js/utils.js" as Utils BaseKey { property string shiftedText property color normalColor: virtualKeyboard.charKeyNormalColor property color pressedColor: virtualKeyboard.charKeyPressedColor property color hoverColor: virtualKeyboard.charKeyHoverColor function sendKeyEvent(isRelease) { var keysym = Utils.getKeysymByKeyLabel(keyLabel.text) var modifierKeyState = Utils.getModifierKeyStates() virtualKeyboard.processKeyEvent(keysym, keycode, modifierKeyState, isRelease, Date()) } function sendKeyPressEvent() { sendKeyEvent(false) } function sendKeyReleaseEvent() { sendKeyEvent(true); } MouseArea { id: keyMouseArea anchors.fill: parent hoverEnabled: !virtualKeyboard.isShiftKeyLongPressed onEntered: { keyBackground.state = "HOVER" } onExited: { keyBackground.state = "NORMAL" } } MultiPointTouchArea { anchors.fill: parent maximumTouchPoints: 1 onReleased: { console.debug('MultiPointTouchArea,onReleased') keyBackground.state = "NORMAL" resetGlobalTimersIfNecessary() sendKeyReleaseEvent() charKeyClicked() } onPressed: { console.debug('MultiPointTouchArea,onPressed') keyBackground.state = "PRESSED" startGlobalLongPressTimer() sendKeyPressEvent() } } keyBackground.state: "NORMAL" keyBackground.states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground color: normalColor } PropertyChanges { target: dropShadow verticalOffset: virtualKeyboard.dropShadowVerticalOffset } }, State { name: "PRESSED" PropertyChanges { target: keyBackground color: pressedColor } PropertyChanges { target: dropShadow verticalOffset: -virtualKeyboard.dropShadowVerticalOffset } }, State { name: "HOVER" PropertyChanges { target: keyBackground color: hoverColor } } ] function resetGlobalLongPressTimer() { if (globalLongPressTimer) { globalLongPressTimer.stop() globalLongPressTimer = null } } function resetGlobalKeyRepeaterTimer() { if (globalKeyRepeaterTimer) { globalKeyRepeaterTimer.stop() globalKeyRepeaterTimer = null } } function resetGlobalTimersIfNecessary() { if (globalLongPressTimer === longPressTimer) { resetGlobalLongPressTimer() } if (globalKeyRepeaterTimer === keyRepeaterTimer) { resetGlobalKeyRepeaterTimer() } } function startGlobalLongPressTimer() { resetGlobalLongPressTimer() resetGlobalKeyRepeaterTimer() globalLongPressTimer = longPressTimer globalLongPressTimer.start() } function startGlobalKeyRepeaterTimer() { resetGlobalLongPressTimer() globalKeyRepeaterTimer = keyRepeaterTimer globalKeyRepeaterTimer.start() } Timer { id: longPressTimer interval: virtualKeyboard.longPressInterval repeat: false onTriggered: startGlobalKeyRepeaterTimer() } Timer { id: keyRepeaterTimer interval: 50 repeat: true onTriggered: { sendKeyPressEvent() } } }kylin-virtual-keyboard/qml/key/GraphicalEffectsQt6.qml0000664000175000017500000000006215160532634021774 0ustar fengfengimport Qt5Compat.GraphicalEffects DropShadow { } kylin-virtual-keyboard/qml/key/CtrlKey.qml0000775000175000017500000000303015160532634017565 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils TemporarySwitchKey { id: ctrl label: "Ctrl" Binding { target: ctrl property: "switchKeyState" value: virtualKeyboard.ctrlState } Component.onCompleted: { temporarySwitchKeyReleased.connect(updateCtrlState) temporarySwitchKeyClicked.connect(virtualKeyboard.ctrlClicked) } function updateCtrlState(ctrlState) { virtualKeyboard.ctrlState = ctrlState } state: virtualKeyboard.ctrlState states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground state: "NORMAL" } }, State { name: "OPEN" PropertyChanges { target: keyBackground state: "OPEN" } } ] } kylin-virtual-keyboard/qml/key/EnterKey.qml0000664000175000017500000000155315160532634017743 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 ActionKey { width: virtualKeyboard.keyWidth*2.5+virtualKeyboard.keySpacing*2 alignment: Text.AlignRight label: "Enter" actionKeyImgPath: "qrc:/img/enter.svg" } kylin-virtual-keyboard/qml/key/BaseKey.qml0000775000175000017500000000401515160532634017537 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 ToolButton { property int keycode property string label: "" property real fontSize: virtualKeyboard.fontSize property alias keyLabel: keyLabel_ property alias keyBackground: keyBackground_ property alias dropShadow: dropShadow_ //label和img对应父控件的水平对齐方式 取值为AlignHCenter:居中对齐, AlignRight:向右对齐, AlignLeft:向左对齐 property int alignment: Text.AlignHCenter width: virtualKeyboard.keyWidth height: virtualKeyboard.keyHeight ShadowWrapper { id: dropShadow_ anchors.fill: parent verticalOffset: virtualKeyboard.dropShadowVerticalOffset radius: virtualKeyboard.keyRadius color: virtualKeyboard.charKeyDropShadowColor source: keyBackground samples: 100 z: -1 //阴影保持在最下层 } Label { id: keyLabel_ text: label color: "black" font.pointSize: fontSize font.weight: Font.Light anchors.fill: parent padding: alignment == Text.AlignHCenter ? undefined : virtualKeyboard.keyLableAlignment horizontalAlignment: alignment verticalAlignment: Text.AlignVCenter visible: true } background: Rectangle { id: keyBackground_ radius: virtualKeyboard.keyRadius } } kylin-virtual-keyboard/qml/key/ShadowWrapper.qml0000664000175000017500000000340115160532634020775 0ustar fengfengimport QtQuick 2.0 Item { id: wrapper property var source property color color property real horizontalOffset: 0 property real verticalOffset: 0 property real radius: virtualKeyboard.keyRadius property int samples: 100 property int qtVersionMajor: QT_VERSION_MAJOR property bool isQt6: qtVersionMajor >= 6 anchors.fill: parent onSourceChanged: { if (effectLoader.item) effectLoader.item.source = wrapper.source; } onColorChanged: { if (effectLoader.item) effectLoader.item.color = wrapper.color; } onHorizontalOffsetChanged: { if (effectLoader.item) effectLoader.item.horizontalOffset = wrapper.horizontalOffset; } onVerticalOffsetChanged: { if (effectLoader.item) effectLoader.item.verticalOffset = wrapper.verticalOffset; } onRadiusChanged: { if (effectLoader.item) effectLoader.item.radius = wrapper.radius; } onSamplesChanged: { if (effectLoader.item) effectLoader.item.samples = wrapper.samples; } onZChanged: { if (effectLoader.item) effectLoader.item.z = wrapper.z; } Loader { id: effectLoader anchors.fill: parent source: isQt6 ? "GraphicalEffectsQt6.qml" : "GraphicalEffectsQt5.qml" onLoaded: { if (item) { item.source = wrapper.source; item.color = wrapper.color; item.horizontalOffset = wrapper.horizontalOffset; item.verticalOffset = wrapper.verticalOffset; item.radius = wrapper.radius; item.samples = wrapper.samples; item.z = wrapper.z; } } } } kylin-virtual-keyboard/qml/key/SymbolKey.qml0000775000175000017500000000362215160532634020135 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 CharKey { property alias shiftLabel: shiftLabel_ state: virtualKeyboard.symbolState states: [ State { name: "NORMAL" PropertyChanges { target: keyLabel text: label } PropertyChanges { target:shiftLabel text: shiftedText } }, State { name: "SHIFT" PropertyChanges { target: keyLabel text: shiftedText } PropertyChanges { target: shiftLabel text: "" } } ] Label { id: shiftLabel_ text: shiftedText color: "black" font.pointSize: virtualKeyboard.shiftFontSize font.weight: Font.Light anchors { left: parent.left leftMargin: virtualKeyboard.shiftLeftMargin top: parent.top topMargin: virtualKeyboard.topLeftMargin } visible: true } } kylin-virtual-keyboard/qml/key/SpaceKey.qml0000664000175000017500000000143415160532634017717 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ ActionKey { width: virtualKeyboard.spaceKeyWidth label: "space" actionKeyImgPath: "qrc:/img/space.svg" } kylin-virtual-keyboard/qml/key/WinKey.qml0000775000175000017500000000523415160532634017426 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import "../js/utils.js" as Utils import QtQuick 2.0 TemporarySwitchKey { id: win property string winKeyImgPath function updateWinState(winState) { virtualKeyboard.winState = winState; } keyLabel.visible: winKeyImgPath == "" Component.onCompleted: { temporarySwitchKeyReleased.connect(updateWinState); temporarySwitchKeyClicked.connect(virtualKeyboard.winClicked); } state: virtualKeyboard.winState states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground state: "NORMAL" } PropertyChanges { target: win winKeyImgPath: "qrc:/img/super_logo.svg" } }, State { name: "OPEN" PropertyChanges { target: keyBackground state: "OPEN" } PropertyChanges { target: win winKeyImgPath: "qrc:/img/super_logo_clicked.svg" } } ] Binding { target: win property: "switchKeyState" value: virtualKeyboard.winState } Loader { width: virtualKeyboard.toolbarSize * 1.2 height: virtualKeyboard.toolbarSize * 1.2 anchors.verticalCenter: parent.verticalCenter sourceComponent: winKeyImgPath == "" ? undefined : winKeyComponent anchors { horizontalCenter: alignment == Text.AlignHCenter ? parent.horizontalCenter : undefined right: alignment == Text.AlignRight ? parent.right : undefined rightMargin: alignment == Text.AlignRight ? virtualKeyboard.keyIconAlignment : undefined left: alignment == Text.AlignLeft ? parent.left : undefined leftMargin: alignment == Text.AlignLeft ? virtualKeyboard.keyIconAlignment : undefined } } Component { id: winKeyComponent Image { source: winKeyImgPath } } } kylin-virtual-keyboard/qml/key/AltKey.qml0000775000175000017500000000301415160532634017403 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils TemporarySwitchKey { id: alt label: "Alt" Binding { target: alt property: "switchKeyState" value: virtualKeyboard.altState } Component.onCompleted: { temporarySwitchKeyReleased.connect(updateAltState) temporarySwitchKeyClicked.connect(virtualKeyboard.altClicked) } function updateAltState(altState) { virtualKeyboard.altState = altState } state: virtualKeyboard.altState states: [ State { name: "NORMAL" PropertyChanges { target: keyBackground state: "NORMAL" } }, State { name: "OPEN" PropertyChanges { target: keyBackground state: "OPEN" } } ] } kylin-virtual-keyboard/qml/key/CapslockKey.qml0000775000175000017500000000404115160532634020423 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "../js/utils.js" as Utils SwitchKey { label: "Caps" switchKeyState: virtualKeyboard.capslockState multiPointTouchArea.onReleased: { if(virtualKeyboard.capslockState == "NORMAL") { virtualKeyboard.capslockState = "OPEN" } else { virtualKeyboard.capslockState = "NORMAL" } var keysym = Utils.getKeysymByKeyLabel(label) var modifierKeyState = Utils.getModifierKeyStates() virtualKeyboard.processKeyEvent(keysym, keycode, modifierKeyState, false, Date()) virtualKeyboard.processKeyEvent(keysym, keycode, modifierKeyState, true, Date()) } state: virtualKeyboard.capslockState states: [ State { name: "NORMAL" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.shiftState == "NORMAL" ? "NORMAL" : "SHIFT" } PropertyChanges { target: keyBackground state: "NORMAL" } }, State { name: "OPEN" PropertyChanges { target: virtualKeyboard letterState : virtualKeyboard.shiftState == "NORMAL" ? "SHIFT" : "NORMAL" } PropertyChanges { target: keyBackground state: "OPEN" } } ] } kylin-virtual-keyboard/qml/DragBar.qml0000664000175000017500000000433315160532634016726 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 Rectangle { width: parent.width height: virtualKeyboard.dragBarHeight color: virtualKeyboard.virtualKeyboardColor radius: virtualKeyboard.virtualKeyboardFloatPlacementRadius property int startX: 0; property int startY: 0; MouseArea { anchors.fill: parent onPressed: { startX = mouseX startY = mouseY } onPositionChanged: { virtualKeyboard.moveBy(mouseX - startX, mouseY - startY) } onReleased: { virtualKeyboard.endDrag() } } Rectangle { id: dragBarIndicator anchors.centerIn: parent width: virtualKeyboard.dragBarIndicatorWidth height: virtualKeyboard.dragBarIndicatorHeight color: virtualKeyboard.dragBarIndicatorColor radius: virtualKeyboard.dragBarIndicatorRadius } state: virtualKeyboard.placementMode states: [ State { name: "EXPANSION" PropertyChanges { target: dragBar visible: false } }, State { name: "FLOAT" PropertyChanges { target: dragBar visible: true } } ] } kylin-virtual-keyboard/qml/HideButton.qml0000664000175000017500000000325515160532634017473 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle { height: virtualKeyboard.toolbarSize width: virtualKeyboard.toolbarSize anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: virtualKeyboard.cardinalNumber * 3.5 color: virtualKeyboard.virtualKeyboardColor Image { id: hideButtonImg anchors.centerIn: parent sourceSize: Qt.size(parent.width, parent.width) source: "qrc:/img/close.svg" } ToolTip { id:hideButtonToolTip text: qsTr("close") property var backOpacity: 1 } MouseArea { anchors.fill: parent hoverEnabled: true onPressed: { hideButtonImg.source = "qrc:/img/close_pressed.svg" } onReleased: { virtualKeyboard.hideVirtualKeyboard() } onEntered: { hideButtonToolTip.visible = true } onExited: { hideButtonToolTip.visible = false } } } kylin-virtual-keyboard/qml/ClassicKeyboardLayout.qml0000664000175000017500000001626515160532634021673 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "key/" import "../qml/js/keycode.js" as Keycode Column { property var globalLongPressTimer property var globalKeyRepeaterTimer width: parent.width spacing: virtualKeyboard.keySpacing visible: virtualKeyboard.layout == "classic" ? true : false Row { anchors.horizontalCenter: parent.horizontalCenter spacing: virtualKeyboard.keySpacing ActionKey{ label: "Esc"; height: virtualKeyboard.keyHeight * 3/4; keycode: Keycode.KEY_ESC} SymbolKey{ label: "`"; shiftedText: "~"; height: virtualKeyboard.firstRowKeyHeight; keycode: Keycode.KEY_GRAVE } FnSymbolKey{ label: "1"; shiftedText: "!"; fnValue:"F1"; fnKeycode: Keycode.KEY_F1; numberKeycode: Keycode.KEY_1 } FnSymbolKey{ label: "2"; shiftedText: "@"; fnValue:"F2"; fnKeycode: Keycode.KEY_F2; numberKeycode: Keycode.KEY_2 } FnSymbolKey{ label: "3"; shiftedText: "#"; fnValue:"F3"; fnKeycode: Keycode.KEY_F3; numberKeycode: Keycode.KEY_3 } FnSymbolKey{ label: "4"; shiftedText: "$"; fnValue:"F4"; fnKeycode: Keycode.KEY_F4; numberKeycode: Keycode.KEY_4 } FnSymbolKey{ label: "5"; shiftedText: "%"; fnValue:"F5"; fnKeycode: Keycode.KEY_F5; numberKeycode: Keycode.KEY_5 } FnSymbolKey{ label: "6"; shiftedText: "^"; fnValue:"F6"; fnKeycode: Keycode.KEY_F6; numberKeycode: Keycode.KEY_6 } FnSymbolKey{ label: "7"; shiftedText: "&"; fnValue:"F7"; fnKeycode: Keycode.KEY_F7; numberKeycode: Keycode.KEY_7 } FnSymbolKey{ label: "8"; shiftedText: "*"; fnValue:"F8"; fnKeycode: Keycode.KEY_F8; numberKeycode: Keycode.KEY_8 } FnSymbolKey{ label: "9"; shiftedText: "("; fnValue:"F9"; fnKeycode: Keycode.KEY_F9; numberKeycode: Keycode.KEY_9 } FnSymbolKey{ label: "0"; shiftedText: ")"; fnValue:"F10"; fnKeycode: Keycode.KEY_F10; numberKeycode: Keycode.KEY_0 } FnSymbolKey{ label: "-"; shiftedText: "_"; fnValue:"F11"; fnKeycode: Keycode.KEY_F11; numberKeycode: Keycode.KEY_MINUS } FnSymbolKey{ label: "="; shiftedText: "+"; fnValue:"F12"; fnKeycode: Keycode.KEY_F12; numberKeycode: Keycode.KEY_EQUAL } BackspaceKey{ keycode: Keycode.KEY_BACKSPACE } } Row { anchors.horizontalCenter: parent.horizontalCenter spacing: virtualKeyboard.keySpacing ActionKey{ label: "Tab"; width: virtualKeyboard.keyWidth*1.5 + virtualKeyboard.keySpacing; alignment: Text.AlignLeft; keycode: Keycode.KEY_TAB } LetterKey{ label: "q"; shiftedText: "Q"; keycode: Keycode.KEY_Q } LetterKey{ label: "w"; shiftedText: "W"; keycode: Keycode.KEY_W } LetterKey{ label: "e"; shiftedText: "E"; keycode: Keycode.KEY_E } LetterKey{ label: "r"; shiftedText: "R"; keycode: Keycode.KEY_R } LetterKey{ label: "t"; shiftedText: "T"; keycode: Keycode.KEY_T } LetterKey{ label: "y"; shiftedText: "Y"; keycode: Keycode.KEY_Y } LetterKey{ label: "u"; shiftedText: "U"; keycode: Keycode.KEY_U } LetterKey{ label: "i"; shiftedText: "I"; keycode: Keycode.KEY_I } LetterKey{ label: "o"; shiftedText: "O"; keycode: Keycode.KEY_O } LetterKey{ label: "p"; shiftedText: "P"; keycode: Keycode.KEY_P } SymbolKey{ label: "["; shiftedText: "{"; keycode: Keycode.KEY_LEFTBRACE } SymbolKey{ label: "]"; shiftedText: "}"; keycode: Keycode.KEY_RIGHTBRACE } SymbolKey{ label: "\\"; shiftedText: "|"; keycode: Keycode.KEY_BACKSLASH } ActionKey{ label: "Del"; keycode: Keycode.KEY_DELETE } } Row { anchors.horizontalCenter: parent.horizontalCenter spacing: virtualKeyboard.keySpacing CapslockKey{width: virtualKeyboard.keyWidth*2 + virtualKeyboard.keySpacing; alignment: Text.AlignLeft; keycode: Keycode.KEY_CAPSLOCK } LetterKey{ label: "a"; shiftedText: "A"; keycode: Keycode.KEY_A } LetterKey{ label: "s"; shiftedText: "S"; keycode: Keycode.KEY_S } LetterKey{ label: "d"; shiftedText: "D"; keycode: Keycode.KEY_D } LetterKey{ label: "f"; shiftedText: "F"; keycode: Keycode.KEY_F } LetterKey{ label: "g"; shiftedText: "G"; keycode: Keycode.KEY_G } LetterKey{ label: "h"; shiftedText: "H"; keycode: Keycode.KEY_H } LetterKey{ label: "j"; shiftedText: "J"; keycode: Keycode.KEY_J } LetterKey{ label: "k"; shiftedText: "K"; keycode: Keycode.KEY_K } LetterKey{ label: "l"; shiftedText: "L"; keycode: Keycode.KEY_L } SymbolKey{ label: ";"; shiftedText: ":"; keycode: Keycode.KEY_SEMICOLON } SymbolKey{ label: "'"; shiftedText: "\""; keycode: Keycode.KEY_APOSTROPHE } EnterKey{ keycode: Keycode.KEY_ENTER } } Row { anchors.horizontalCenter: parent.horizontalCenter spacing: virtualKeyboard.keySpacing ShiftKey{width: virtualKeyboard.keyWidth*2.5 + virtualKeyboard.keySpacing*2; alignment: Text.AlignLeft; keycode: Keycode.KEY_LEFTSHIFT } LetterKey{ label: "z" ; shiftedText: "Z"; keycode: Keycode.KEY_Z } LetterKey{ label: "x" ; shiftedText: "X"; keycode: Keycode.KEY_X } LetterKey{ label: "c" ; shiftedText: "C"; keycode: Keycode.KEY_C } LetterKey{ label: "v" ; shiftedText: "V"; keycode: Keycode.KEY_V } LetterKey{ label: "b" ; shiftedText: "B"; keycode: Keycode.KEY_B } LetterKey{ label: "n" ; shiftedText: "N"; keycode: Keycode.KEY_N } LetterKey{ label: "m" ; shiftedText: "M"; keycode: Keycode.KEY_M } SymbolKey{ label: ", "; shiftedText: "<"; keycode: Keycode.KEY_COMMA } SymbolKey{ label: "."; shiftedText: ">"; keycode: Keycode.KEY_DOT } SymbolKey{ label: "/"; shiftedText: "?"; keycode: Keycode.KEY_SLASH } ActionKey{ label: "up"; actionKeyImgPath: "qrc:/img/up.svg"; keycode: Keycode.KEY_UP } ShiftKey{ width: virtualKeyboard.keyWidth*2 + virtualKeyboard.keySpacing; alignment: Text.AlignRight; keycode: Keycode.KEY_RIGHTSHIFT } } Row { anchors.horizontalCenter: parent.horizontalCenter spacing: virtualKeyboard.keySpacing CtrlKey{ keycode: Keycode.KEY_LEFTCTRL } FnKey{} WinKey{ label: "win"; keycode: Keycode.KEY_LEFTSUPER } AltKey{ keycode: Keycode.KEY_LEFTALT } ChangeImKey{} SpaceKey{ keycode: Keycode.KEY_SPACE } AltKey{ keycode: Keycode.KEY_RIGHTALT } ActionKey{ label: "left"; actionKeyImgPath: "qrc:/img/left.svg"; keycode: Keycode.KEY_LEFT } ActionKey{ label: "down"; actionKeyImgPath: "qrc:/img/down.svg"; keycode: Keycode.KEY_DOWN } ActionKey{ label: "right"; actionKeyImgPath: "qrc:/img/right.svg"; keycode: Keycode.KEY_RIGHT } CtrlKey{ keycode: Keycode.KEY_RIGHTCTRL } } } kylin-virtual-keyboard/qml/ToolbarAndCandidateArea.qml0000664000175000017500000000155015160532634022035 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 Rectangle { width: parent.width height: virtualKeyboard.toolAndCandidateHeight color: virtualKeyboard.virtualKeyboardColor Toolbar {} CandidateList {} } kylin-virtual-keyboard/qml/VirtualKeyboard.qml0000664000175000017500000002500215160532634020527 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import "js/utils.js" as Utils import QtQuick.Window 2.0 Rectangle { id: virtualKeyboard property bool isFloatMode : view.isFloatMode anchors.fill: parent color: virtualKeyboardColor radius: isFloatMode ? virtualKeyboardFloatPlacementRadius : 0 //候选词 property var candidateList //候选列表高亮候选的索引 property int globalCursorIndex : -1 //可用输入法列表 property var currentIMList : model.currentIMList //当前输入法名称 property string uniqueName : model.uniqueName //当前输入法,组成为"uniqueName|localName|label" //TOOD 目前以“|”分割数据 property string currentIM: "|||" //大小相关 /*设置默认值,防止报错,fontSize为0时会报错,加载qml文件时height为0,会导致fontSize为0*/ property real cardinalNumber: height == 0 ? 8 : height/(isFloatMode ? 68.5 : 64) property int dragBarHeight: cardinalNumber * 4.5 property int preeditHeight: cardinalNumber * 5 property int toolAndCandidateHeight: cardinalNumber * 8 property int keyboardLayoutHeight: cardinalNumber * 49 property int keySpacing: cardinalNumber property int keyWidth: (virtualKeyboardContent.width - 5*cardinalNumber) * 2/31 - cardinalNumber property int spaceKeyWidth: keyWidth * 5.5 + keySpacing * 5 property int keyHeight: cardinalNumber * 9 property int firstRowKeyHeight: keyHeight * 7/9 property int keyLableAlignment: keyWidth / 3 property int keyIconAlignment: keyWidth / 3 property int virtualKeyboardAvailableHeight: isFloatMode ? virtualKeyboard.height - dragBar.height : virtualKeyboard.height property int imListItemHeight: virtualKeyboardAvailableHeight * 1/10 property int imListItemWidth: virtualKeyboardAvailableHeight * 5/13 property real fontSize: keyHeight * 6/11 * 7/12 property real shiftFontSize: fontSize / 2 property real switchKeyFontSize: fontSize * 3/4 property real fnSymbolKeyFontSize: fontSize * 3/4 property real actionKeyFontSize: fontSize * 3/4 property real preeditTextFontSize: fontSize * 3/4 property real candidateFontSize: fontSize * 3/4 property real imListFontSize: fontSize * 3/4 property int preeditX: cardinalNumber * 3.5 property int candidateListWidth: virtualKeyboardContent.width - 7*cardinalNumber property int toolbarSize: cardinalNumber * 3 property int candidateListX: cardinalNumber * 2 property int candidateListSpacing: cardinalNumber * 3 property int keyRadius: cardinalNumber property int longPressInterval: 1000 property int shiftLeftMargin: cardinalNumber property int shiftTopMargin: cardinalNumber/2 property int imLeftMargin: cardinalNumber property int dropShadowVerticalOffset: cardinalNumber/4 property int dragBarIndicatorWidth: cardinalNumber * 7 property int dragBarIndicatorHeight: cardinalNumber/2 //颜色相关 property color virtualKeyboardColor: "#EBEDEF" /*虚拟键盘背景色*/ property color charKeyNormalColor: "#FFFFFF" /*字符按键默认态颜色*/ property color charKeyPressedColor: "#DDE0E4" /*字符按键按下态颜色*/ property color charKeyHoverColor: "#EDF1F5" /*字符按键悬浮态颜色*/ property color charKeyDropShadowColor: "#95A0AD" /*字符按键偏移色*/ property color actionKeyNormalColor: "#CED3D9" /*动作按键默认态*/ property color actionKeyPressedColor: "#A5ACB5" /*动作按键按下态*/ property color actionKeyHoverColor:"#C0C6CE" /*动作按键悬浮态*/ property color switchKeyNormalColor: "#CED3D9" /*开关按键默认态*/ property color switchKeyPressedColor: "#A5ACB5" /*开关按键按下态*/ property color switchKeyOpenColor: "#3690F8" /*开关按键开启态*/ property color switchKeyOpenPressedColor: "#2C73C6" /*开关按键开启_按下态*/ property color switchKeyHoverNormalColor: "#C0C6CE" /*开关按键默认hover态*/ property color switchKeyHoverOpenColor: "#328AF0" /*开关按键按下hover态*/ property color switchKeyNormalDropShadowColor: "#95A0AD" /*开关按键默认偏移色*/ property color switchKeyOpenDropShadowColor: "#1174E5" /*开关按键开启偏移色*/ property color switchKeyOpenPressedDropShadowColor: "#165FB3" /*开关按键开启_按下偏移色*/ property color currentIMColor: "#328AF0" /*输入法列表中当前输入法高亮*/ property color candidateListBackgroundColor: "#DDE0E4" /*候选词列表背景色*/ property color candidateDefaultColor: "#262626" /*候选词默认前景色*/ property color candidateHighlightColor: "#3790FA" /*候选词高亮前景色*/ property color preeditBottomColor: "#E4E6E9" /*预编辑下方分割线颜色*/ property color dragBarIndicatorColor: "#1D1D1D" /*拖拽条指示器颜色*/ //圆角相关 property int virtualKeyboardFloatPlacementRadius: 16 property int dragBarIndicatorRadius: 2 //状态相关 property string letterState: "NORMAL" property string symbolState: "NORMAL" property string fnSymbolState: "NORMAL" property string capslockState: "NORMAL" property string shiftState: "NORMAL" property string altState: "NORMAL" property string ctrlState: "NORMAL" property string winState: "NORMAL" property string changeIMState: "NORMAL" property string switchLayoutButtonState: "NORMAL" property string placementMode: isFloatMode ? "FLOAT" : "EXPANSION" //可见性相关 property bool isToolbarVisible: true property bool isToolAreaVisible: false property bool isKeyBoardLayoutVisible: true property bool isAllLayoutListVisible: false property string layout: "classic" property bool isCurrentIMListVisible: false property bool isShiftKeyLongPressed: shiftState === "LONG_PRESSED" || shiftState === "OPEN_LONG_PRESSED" //内部使用 signal showToolbar() signal showCandidateList() signal charKeyClicked() signal shiftClicked() signal altClicked() signal ctrlClicked() signal winClicked() //后台发送给前台的信号 signal qmlUpdateCandidateList(var candidateList, int globalCursorIndex) signal qmlImDeactivated() function processKeyEvent(key, keycode, modifierKeyStates, isRelease, time) { console.debug('key:', key, ',keycode:', keycode, ',modifierKeyStates:', modifierKeyStates, ',isRelease:', isRelease, ',time:', time) model.processKeyEvent(key, keycode, modifierKeyStates, isRelease, time) } function selectCandidate(index) { model.selectCandidate(index) } function setCurrentIM(imName) { model.setCurrentIM(imName) } function hideVirtualKeyboard() { manager.hide() } function flipPlacementMode() { manager.flipPlacementMode() } function moveBy(offsetX, offsetY) { manager.moveBy(offsetX, offsetY) } function endDrag() { manager.endDrag() } Connections { target: virtualKeyboard onShowToolbar: { isToolbarVisible = true } onShowCandidateList: { isToolbarVisible = false } onQmlUpdateCandidateList: (candidateList, globalCursorIndex) => { if(candidateList.length === 0) { showToolbar() } else { virtualKeyboard.candidateList = candidateList virtualKeyboard.globalCursorIndex = globalCursorIndex showCandidateList() } } } Component.onCompleted: { charKeyClicked.connect(onCharKeyClicked) shiftClicked.connect(onShiftClicked) ctrlClicked.connect(onCtrlClicked) altClicked.connect(onAltClicked) winClicked.connect(onWinClicked) } function onCharKeyClicked() { updateShiftKeyNormalState() ctrlState = "NORMAL" altState = "NORMAL" winState = "NORMAL" } function onShiftClicked() { ctrlState = "NORMAL" altState = "NORMAL" winState = "NORMAL" } function onCtrlClicked() { updateShiftKeyNormalState() altState = "NORMAL" winState = "NORMAL" } function onAltClicked() { updateShiftKeyNormalState() ctrlState = "NORMAL" winState = "NORMAL" } function onWinClicked() { updateShiftKeyNormalState() altState = "NORMAL" ctrlState = "NORMAL" } function updateShiftKeyNormalState() { if (!isShiftKeyLongPressed) { shiftState = "NORMAL" } } onUniqueNameChanged: { console.info('onUniqueNameChanged') for(var i = 0; i. */ import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle { width: parent.width height: 1 color: virtualKeyboard.preeditBottomColor }kylin-virtual-keyboard/qml/KeyboardLayoutArea.qml0000664000175000017500000000175215160532634021155 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Window 2.0 Rectangle { visible: isKeyBoardLayoutVisible width: parent.width height: virtualKeyboard.keyboardLayoutHeight radius: virtualKeyboard.radius color: virtualKeyboard.virtualKeyboardColor anchors.topMargin: keySpacing * 2 ClassicKeyboardLayout {} } kylin-virtual-keyboard/qml/js/0000775000175000017500000000000015160532634015322 5ustar fengfengkylin-virtual-keyboard/qml/js/keycode.js0000664000175000017500000000437515160532550017311 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2023.All rights reserved. * * 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 . */ const KEY_ESC = 9; const KEY_1 = 10; const KEY_2 = 11; const KEY_3 = 12; const KEY_4 = 13; const KEY_5 = 14; const KEY_6 = 15; const KEY_7 = 16; const KEY_8 = 17; const KEY_9 = 18; const KEY_0 = 19; const KEY_MINUS = 20; const KEY_EQUAL = 21; const KEY_BACKSPACE = 22; const KEY_TAB = 23; const KEY_Q = 24; const KEY_W = 25; const KEY_E = 26; const KEY_R = 27; const KEY_T = 28; const KEY_Y = 29; const KEY_U = 30; const KEY_I = 31; const KEY_O = 32; const KEY_P = 33; const KEY_LEFTBRACE = 34; const KEY_RIGHTBRACE = 35; const KEY_ENTER = 36; const KEY_LEFTCTRL = 37; const KEY_A = 38; const KEY_S = 39; const KEY_D = 40; const KEY_F = 41; const KEY_G = 42; const KEY_H = 43; const KEY_J = 44; const KEY_K = 45; const KEY_L = 46; const KEY_SEMICOLON = 47; const KEY_APOSTROPHE = 48; const KEY_GRAVE = 49; const KEY_LEFTSHIFT = 50; const KEY_BACKSLASH = 51; const KEY_Z = 52; const KEY_X = 53; const KEY_C = 54; const KEY_V = 55; const KEY_B = 56; const KEY_N = 57; const KEY_M = 58; const KEY_COMMA = 59; const KEY_DOT = 60; const KEY_SLASH = 61; const KEY_RIGHTSHIFT = 62; const KEY_LEFTALT = 64; const KEY_SPACE = 65; const KEY_CAPSLOCK = 66; const KEY_F1 = 67; const KEY_F2 = 68; const KEY_F3 = 69; const KEY_F4 = 70; const KEY_F5 = 71; const KEY_F6 = 72; const KEY_F7 = 73; const KEY_F8 = 74; const KEY_F9 = 75; const KEY_F10 = 76; const KEY_F11 = 95; const KEY_F12 = 96; const KEY_RIGHTCTRL = 105; const KEY_RIGHTALT = 108; const KEY_UP = 111; const KEY_LEFT = 113; const KEY_RIGHT = 114; const KEY_DOWN = 116; const KEY_DELETE = 119; const KEY_LEFTSUPER = 133; const KEY_RIGHTSUPER = 134; kylin-virtual-keyboard/qml/js/utils.js0000664000175000017500000000473715160532550017030 0ustar fengfeng/* * Copyright (c) KylinSoft Co., Ltd. 2022.All rights reserved. * * 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 . */ function getKeySym(keyName) { var keySymList = { "shift": 1, "caps": 2, "ctrl": 4, "alt": 8, "win": 64 } return keySymList[keyName.toLowerCase()] } function getModifierKeyStates() { var result = 0 result += shiftState == "NORMAL" ? 0 : getKeySym("shift") result += capslockState == "NORMAL" ? 0 : getKeySym("caps") result += ctrlState == "NORMAL" ? 0 : getKeySym("ctrl") result += altState == "NORMAL" ? 0 : getKeySym("alt") result += winState == "NORMAL" ? 0 : getKeySym("win") return result } function getKeysymByKeyLabel(keyLabel) { var keysymMap = { "esc": 0xff1b, "tab": 0xff09, "caps": 0xffe5, "win": 0xffeb, "backspace": 0xff08, "enter": 0xff0d, "left": 0xff51, "up": 0xff52, "right": 0xff53, "down": 0xff54, "del": 0xffff, "space": 0x0020, "f1": 0xffbe, "f2": 0xffbf, "f3": 0xffc0, "f4": 0xffc1, "f5": 0xffc2, "f6": 0xffc3, "f7": 0xffc4, "f8": 0xffc5, "f9": 0xffc6, "f10": 0xffc7, "f11": 0xffc8, "f12": 0xffc9 } if (keysymMap.hasOwnProperty(keyLabel.toLowerCase())) { return keysymMap[keyLabel.toLowerCase()] } return keyLabel[0].charCodeAt(0) } function getKeysymByKeycode(keycode) { var keysymMap = { "50": 0xffe1, // Shift_L "62": 0xffe2, // Shift_R "37": 0xffe3, // Ctrl_L "105": 0xffe4, // Ctrl_R "64": 0xffe9, // Alt_L "108": 0xffea, // Alt_R "133": 0xffeb, // Super_L "134": 0xffec, // Super_R } if (keysymMap.hasOwnProperty(keycode)) { return keysymMap[keycode] } return 0; } kylin-virtual-keyboard/qml/PlacementModeButton.qml0000664000175000017500000000454615160532634021343 0ustar fengfeng/* * Copyright 2022 KylinSoft Co., Ltd. * * 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 . */ import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle { height: virtualKeyboard.toolbarSize width: virtualKeyboard.toolbarSize property var alignmentRight anchors.verticalCenter: parent.verticalCenter anchors.right: alignmentRight.left anchors.rightMargin: virtualKeyboard.cardinalNumber * 3.5 color: virtualKeyboard.virtualKeyboardColor Image { id: placementModelButtonImg sourceSize: Qt.size(parent.width, parent.width) source: "qrc:/img/upfloat.svg" anchors.centerIn: parent } ToolTip { id: placementModelButtonToolTip text: qsTr("Floating Mode") property var backOpacity: 1 } MouseArea { anchors.fill: parent hoverEnabled: true onClicked: virtualKeyboard.flipPlacementMode() onEntered: { placementModelButtonToolTip.visible = true } onExited: { placementModelButtonToolTip.visible = false } } state: virtualKeyboard.placementMode states: [ State { name: "EXPANSION" PropertyChanges { target: placementModelButtonImg source: "qrc:/img/upfloat.svg" } PropertyChanges { target: placementModelButtonToolTip text: qsTr("Floating Mode") } }, State { name: "FLOAT" PropertyChanges { target: placementModelButtonImg source: "qrc:/img/downfloat.svg" } PropertyChanges { target: placementModelButtonToolTip text: qsTr("Docking Mode") } } ] } kylin-virtual-keyboard/translations.qrc0000664000175000017500000000102315160532634017341 0ustar fengfeng translations/translation.qm translations/translation_bo_CN.qm translations/translation_en.qm translations/translation_zh_CN.qm translations/translation_zh_HK.qm translations/translation_mn.qm translations/translation_kk.qm translations/translation_ug.qm translations/translation_ky.qm kylin-virtual-keyboard/qml.qrc0000664000175000017500000000401415160532634015414 0ustar fengfeng qml/VirtualKeyboard.qml qml/Preedit.qml qml/ToolbarAndCandidateArea.qml qml/Toolbar.qml qml/CandidateList.qml qml/KeyboardLayoutArea.qml qml/ClassicKeyboardLayout.qml qml/HideButton.qml qml/Separator.qml qml/key/ActionKey.qml qml/key/AltKey.qml qml/key/BaseKey.qml qml/key/CapslockKey.qml qml/key/ChangeImKey.qml qml/key/CharKey.qml qml/key/CtrlKey.qml qml/key/FnKey.qml qml/key/FnSymbolKey.qml qml/key/LetterKey.qml qml/key/ShiftKey.qml qml/key/SpaceKey.qml qml/key/SwitchKey.qml qml/key/SymbolKey.qml qml/key/TemporarySwitchKey.qml qml/key/WinKey.qml qml/key/GraphicalEffectsQt5.qml qml/key/GraphicalEffectsQt6.qml qml/key/ShadowWrapper.qml qml/js/utils.js qml/key/BackspaceKey.qml qml/key/EnterKey.qml qml/PlacementModeButton.qml img/upfloat.svg img/downfloat.svg qml/DragBar.qml img/space.svg img/backspace.svg img/close.svg img/close_pressed.svg img/enter.svg img/left.svg img/right.svg img/up.svg img/down.svg img/extend.svg qml/js/keycode.js img/super_logo.svg img/super_logo_clicked.svg kylin-virtual-keyboard/test/0000775000175000017500000000000015160532550015071 5ustar fengfengkylin-virtual-keyboard/test/CMakeLists.txt0000664000175000017500000000421615160532550017634 0ustar fengfengcmake_minimum_required(VERSION 3.16) project(kylin-virtual-keyboard-test VERSION 1.0.0) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(QT NAMES Qt6 Qt5 REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Concurrent DBus Quick QuickControls2 REQUIRED) if (NOT Qt${QT_VERSION_MAJOR}_FOUND) message(FATAL_ERROR "Qt${QT_VERSION_MAJOR} not found!") endif() find_package(Gettext REQUIRED) find_package(Fcitx5Core REQUIRED) find_package(Fcitx5Utils REQUIRED) # Setup some compiler option that is generally useful and compatible with Fcitx 5 (C++17) include("${FCITX_INSTALL_CMAKECONFIG_DIR}/Fcitx5Utils/Fcitx5CompilerSettings.cmake") include_directories(${CMAKE_SOURCE_DIR}/src) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage -fno-access-control") set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage -fno-access-control") add_executable(runTests test.cpp ../src/animation/animationfactory.cpp ../src/animation/animationfactory.h ../src/animation/animator.h ../src/animation/disabledanimator.cpp ../src/animation/disabledanimator.h ../src/animation/enabledanimator.cpp ../src/animation/enabledanimator.h ../src/animation/expansionanimationfactory.cpp ../src/animation/expansionanimationfactory.h ../src/animation/floatanimationfactory.cpp ../src/animation/floatanimationfactory.h ../src/screenmanager.cpp ../src/virtualkeyboardsettings/virtualkeyboardsettings.cpp ../src/appinputareamanager.cpp ../src/ipc/fcitxvirtualkeyboardserviceproxy.cpp ../src/localsettings/viewlocalsettings.cpp ) target_link_libraries(runTests Fcitx5::Core Fcitx5::Utils Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Concurrent Qt${QT_VERSION_MAJOR}::DBus Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::QuickControls2 KF${QT_VERSION_MAJOR}::WindowSystem Fcitx5::Core Fcitx5Qt${QT_VERSION_MAJOR}::DBusAddons ${GSettings_QT_LIBRARIES} ) add_test(NAME test COMMAND runTests) install(TARGETS runTests DESTINATION ${CMAKE_INSTALL_BINDIR}) kylin-virtual-keyboard/test/test.cpp0000664000175000017500000000746015160532550016563 0ustar fengfeng#include #include #include #include "animation/animationfactory.h" #include "animation/disabledanimator.h" #include "animation/enabledanimator.h" #include "animation/expansionanimationfactory.h" #include "animation/floatanimationfactory.h" #include "appinputareamanager.h" #include "ipc/dbusservice.h" #include "ipc/fcitxvirtualkeyboardserviceproxy.h" #include "localsettings/viewlocalsettings.h" #include "screenmanager.h" #include "virtualkeyboard/virtualkeyboardmanager.h" #include "virtualkeyboardentry/virtualkeyboardtrayicon.h" #include "virtualkeyboardsettings/virtualkeyboardsettings.h" void testGetPrimaryScreenGeometry() { auto rect = ScreenManager::getPrimaryScreenGeometry(); assert(!rect.isEmpty()); } void testGetPrimaryScreenSize() { auto rect = ScreenManager::getPrimaryScreenSize(); assert(!rect.isEmpty()); } void testVirtualKeyboardSettings() { auto &settings = VirtualKeyboardSettings::getInstance(); assert(settings.isAnimationEnabled()); settings.updateFloatButtonAvailability(true); assert(settings.isFloatButtonEnabled()); settings.emitFloatButtonAvailabilityChanged(); settings.updateFloatButtonAvailability(false); assert(!settings.isFloatButtonEnabled()); settings.emitFloatButtonAvailabilityChanged(); auto scaleFactor = settings.calculateVirtualKeyboardScaleFactor(); assert(scaleFactor > 0.1); } std::unique_ptr createFloatModeAnimationFactory() { return std::unique_ptr(new FloatAnimationFactory()); } std::unique_ptr createExpansionModeAnimationFactory() { return std::unique_ptr(new ExpansionAnimationFactory()); } void testAnimator(Animator *animator) { auto *view = new QQuickView(); animator->playShowAnimation(view, {0, 0, 100, 100}); animator->playHideAnimation(view, {0, 0, 0, 0}); animator->playFlipAnimation(view, {0, 0, 200, 200}); } void testVirtualKeyobardAnimation() { auto floatModeEnabledAnimator = std::unique_ptr(new EnabledAnimator( []() { return true; }, createFloatModeAnimationFactory())); testAnimator(floatModeEnabledAnimator.get()); auto expansionModeEnabledAnimator = std::unique_ptr(new EnabledAnimator( []() { return false; }, createExpansionModeAnimationFactory())); testAnimator(expansionModeEnabledAnimator.get()); auto disabledAnimator = std::unique_ptr(new DisabledAnimator()); testAnimator(disabledAnimator.get()); } void testAppInputAreaManager() { auto appInputAreaManager = std::unique_ptr(new AppInputAreaManager()); appInputAreaManager->raiseInputArea({100, 100, 100, 100}); appInputAreaManager->fallInputArea(); } void testVirtualKeyboardProxy() { auto proxy = std::unique_ptr( new FcitxVirtualKeyboardServiceProxy()); proxy->showVirtualKeyboard(); proxy->hideVirtualKeyboard(); } void testViewLocalSettings() { ViewLocalSettings localSetting("test", "test"); localSetting.setValue("test", "a", "1"); localSetting.saveSettingsAsync(); localSetting.getValue("test", "a", "1"); localSetting.getValue("test", "a"); localSetting.remove("a"); localSetting.setValue("test", "b", "2"); localSetting.saveSettingsAsync(); localSetting.getValue("test", "b", "2"); localSetting.getValue("test", "b"); localSetting.remove("b"); } int main(int argc, char *argv[]) { QApplication app(argc, argv); testGetPrimaryScreenGeometry(); testGetPrimaryScreenSize(); testVirtualKeyboardSettings(); testVirtualKeyobardAnimation(); testAppInputAreaManager(); testVirtualKeyboardProxy(); testViewLocalSettings(); return 0; } kylin-virtual-keyboard/third-party/0000775000175000017500000000000015160532634016364 5ustar fengfengkylin-virtual-keyboard/third-party/CMakeLists.txt0000664000175000017500000000004515160532634021123 0ustar fengfengadd_subdirectory(qtsingleapplication)kylin-virtual-keyboard/third-party/qtsingleapplication/0000775000175000017500000000000015160532634022436 5ustar fengfengkylin-virtual-keyboard/third-party/qtsingleapplication/src/0000775000175000017500000000000015160532550023222 5ustar fengfengkylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlocalpeer.h0000664000175000017500000000144515160532550025712 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #ifndef QTLOCALPEER_H #define QTLOCALPEER_H #include #include #include #include "qtlockedfile.h" class QtLocalPeer : public QObject { Q_OBJECT public: QtLocalPeer(QObject *parent = 0, const QString &appId = QString()); bool isClient(); bool sendMessage(const QString &message, int timeout); QString applicationId() const { return id; } Q_SIGNALS: void messageReceived(const QString &message); protected Q_SLOTS: void receiveConnection(); protected: QString id; QString socketName; QLocalServer* server; QtLP_Private::QtLockedFile lockFile; private: static const char* ack; }; #endif // QTLOCALPEER_H kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsingleapplication.pri0000664000175000017500000000111015160532550030001 0ustar fengfenginclude(../common.pri) INCLUDEPATH += $$PWD DEPENDPATH += $$PWD QT *= network greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets qtsingleapplication-uselib:!qtsingleapplication-buildlib { LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME } else { SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h } win32 { contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTSINGLEAPPLICATION_EXPORT else:qtsingleapplication-uselib:DEFINES += QT_QTSINGLEAPPLICATION_IMPORT } kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlockedfile.cpp0000664000175000017500000001020215160532550026367 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include "qtlockedfile.h" /*! \class QtLockedFile \brief The QtLockedFile class extends QFile with advisory locking functions. A file may be locked in read or write mode. Multiple instances of \e QtLockedFile, created in multiple processes running on the same machine, may have a file locked in read mode. Exactly one instance may have it locked in write mode. A read and a write lock cannot exist simultaneously on the same file. The file locks are advisory. This means that nothing prevents another process from manipulating a locked file using QFile or file system functions offered by the OS. Serialization is only guaranteed if all processes that access the file use QLockedFile. Also, while holding a lock on a file, a process must not open the same file again (through any API), or locks can be unexpectedly lost. The lock provided by an instance of \e QtLockedFile is released whenever the program terminates. This is true even when the program crashes and no destructors are called. */ /*! \enum QtLockedFile::LockMode This enum describes the available lock modes. \value ReadLock A read lock. \value WriteLock A write lock. \value NoLock Neither a read lock nor a write lock. */ /*! Constructs an unlocked \e QtLockedFile object. This constructor behaves in the same way as \e QFile::QFile(). \sa QFile::QFile() */ QtLockedFile::QtLockedFile() : QFile() { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Constructs an unlocked QtLockedFile object with file \a name. This constructor behaves in the same way as \e QFile::QFile(const QString&). \sa QFile::QFile() */ QtLockedFile::QtLockedFile(const QString &name) : QFile(name) { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Opens the file in OpenMode \a mode. This is identical to QFile::open(), with the one exception that the Truncate mode flag is disallowed. Truncation would conflict with the advisory file locking, since the file would be modified before the write lock is obtained. If truncation is required, use resize(0) after obtaining the write lock. Returns true if successful; otherwise false. \sa QFile::open(), QFile::resize() */ bool QtLockedFile::open(OpenMode mode) { if (mode & QIODevice::Truncate) { qWarning("QtLockedFile::open(): Truncate mode not allowed."); return false; } return QFile::open(mode); } /*! Returns \e true if this object has a in read or write lock; otherwise returns \e false. \sa lockMode() */ bool QtLockedFile::isLocked() const { return m_lock_mode != NoLock; } /*! Returns the type of lock currently held by this object, or \e QtLockedFile::NoLock. \sa isLocked() */ QtLockedFile::LockMode QtLockedFile::lockMode() const { return m_lock_mode; } /*! \fn bool QtLockedFile::lock(LockMode mode, bool block = true) Obtains a lock of type \a mode. The file must be opened before it can be locked. If \a block is true, this function will block until the lock is aquired. If \a block is false, this function returns \e false immediately if the lock cannot be aquired. If this object already has a lock of type \a mode, this function returns \e true immediately. If this object has a lock of a different type than \a mode, the lock is first released and then a new lock is obtained. This function returns \e true if, after it executes, the file is locked by this object, and \e false otherwise. \sa unlock(), isLocked(), lockMode() */ /*! \fn bool QtLockedFile::unlock() Releases a lock. If the object has no lock, this function returns immediately. This function returns \e true if, after it executes, the file is not locked by this object, and \e false otherwise. \sa lock(), isLocked(), lockMode() */ /*! \fn QtLockedFile::~QtLockedFile() Destroys the \e QtLockedFile object. If any locks were held, they are released. */ kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlockedfile.h0000664000175000017500000000254715160532550026051 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #ifndef QTLOCKEDFILE_H #define QTLOCKEDFILE_H #include #ifdef Q_OS_WIN #include #endif #if defined(Q_OS_WIN) # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) # define QT_QTLOCKEDFILE_EXPORT # elif defined(QT_QTLOCKEDFILE_IMPORT) # if defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # endif # define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport) # elif defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport) # endif #else # define QT_QTLOCKEDFILE_EXPORT #endif namespace QtLP_Private { class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile { public: enum LockMode { NoLock = 0, ReadLock, WriteLock }; QtLockedFile(); QtLockedFile(const QString &name); ~QtLockedFile(); bool open(OpenMode mode); bool lock(LockMode mode, bool block = true); bool unlock(); bool isLocked() const; LockMode lockMode() const; private: #ifdef Q_OS_WIN Qt::HANDLE wmutex; Qt::HANDLE rmutex; QVector rmutexes; QString mutexname; Qt::HANDLE getMutexHandle(int idx, bool doCreate); bool waitMutex(Qt::HANDLE mutex, bool doBlock); #endif LockMode m_lock_mode; }; } #endif kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsinglecoreapplication.h0000664000175000017500000000126515160532550030322 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #ifndef QTSINGLECOREAPPLICATION_H #define QTSINGLECOREAPPLICATION_H #include class QtLocalPeer; class QtSingleCoreApplication : public QCoreApplication { Q_OBJECT public: QtSingleCoreApplication(int &argc, char **argv); QtSingleCoreApplication(const QString &id, int &argc, char **argv); bool isRunning(); QString id() const; public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); Q_SIGNALS: void messageReceived(const QString &message); private: QtLocalPeer* peer; }; #endif // QTSINGLECOREAPPLICATION_H kylin-virtual-keyboard/third-party/qtsingleapplication/src/QtLockedFile0000664000175000017500000000003215160532550025446 0ustar fengfeng#include "qtlockedfile.h" kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlockedfile_unix.cpp0000664000175000017500000000305415160532550027441 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include #include #include #include #include "qtlockedfile.h" bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK; int cmd = block ? F_SETLKW : F_SETLK; int ret = fcntl(handle(), cmd, &fl); if (ret == -1) { if (errno != EINTR && errno != EAGAIN) qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = F_UNLCK; int ret = fcntl(handle(), F_SETLKW, &fl); if (ret == -1) { qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); } kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsingleapplication.cpp0000664000175000017500000002325015160532550030002 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include "qtsingleapplication.h" #include "qtlocalpeer.h" #include /*! \class QtSingleApplication qtsingleapplication.h \brief The QtSingleApplication class provides an API to detect and communicate with running instances of an application. This class allows you to create applications where only one instance should be running at a time. I.e., if the user tries to launch another instance, the already running instance will be activated instead. Another usecase is a client-server system, where the first started instance will assume the role of server, and the later instances will act as clients of that server. By default, the full path of the executable file is used to determine whether two processes are instances of the same application. You can also provide an explicit identifier string that will be compared instead. The application should create the QtSingleApplication object early in the startup phase, and call isRunning() to find out if another instance of this application is already running. If isRunning() returns false, it means that no other instance is running, and this instance has assumed the role as the running instance. In this case, the application should continue with the initialization of the application user interface before entering the event loop with exec(), as normal. The messageReceived() signal will be emitted when the running application receives messages from another instance of the same application. When a message is received it might be helpful to the user to raise the application so that it becomes visible. To facilitate this, QtSingleApplication provides the setActivationWindow() function and the activateWindow() slot. If isRunning() returns true, another instance is already running. It may be alerted to the fact that another instance has started by using the sendMessage() function. Also data such as startup parameters (e.g. the name of the file the user wanted this new instance to open) can be passed to the running instance with this function. Then, the application should terminate (or enter client mode). If isRunning() returns true, but sendMessage() fails, that is an indication that the running instance is frozen. Here's an example that shows how to convert an existing application to use QtSingleApplication. It is very simple and does not make use of all QtSingleApplication's functionality (see the examples for that). \code // Original int main(int argc, char **argv) { QApplication app(argc, argv); MyMainWidget mmw; mmw.show(); return app.exec(); } // Single instance int main(int argc, char **argv) { QtSingleApplication app(argc, argv); if (app.isRunning()) return !app.sendMessage(someDataString); MyMainWidget mmw; app.setActivationWindow(&mmw); mmw.show(); return app.exec(); } \endcode Once this QtSingleApplication instance is destroyed (normally when the process exits or crashes), when the user next attempts to run the application this instance will not, of course, be encountered. The next instance to call isRunning() or sendMessage() will assume the role as the new running instance. For console (non-GUI) applications, QtSingleCoreApplication may be used instead of this class, to avoid the dependency on the QtGui library. \sa QtSingleCoreApplication */ void QtSingleApplication::sysInit(const QString &appId) { actWin = 0; peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a GUIenabled are passed on to the QAppliation constructor. If you are creating a console application (i.e. setting \a GUIenabled to false), you may consider using QtSingleCoreApplication instead. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled) : QApplication(argc, argv, GUIenabled) { sysInit(); } /*! Creates a QtSingleApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv) : QApplication(argc, argv) { sysInit(appId); } #if QT_VERSION < 0x050000 /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a type are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type) : QApplication(argc, argv, type) { sysInit(); } # if defined(Q_WS_X11) /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be \a appId. \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(appId); } # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleApplication::id() const { return peer->applicationId(); } /*! Sets the activation window of this application to \a aw. The activation window is the widget that will be activated by activateWindow(). This is typically the application's main window. If \a activateOnMessage is true (the default), the window will be activated automatically every time a message is received, just prior to the messageReceived() signal being emitted. \sa activateWindow(), messageReceived() */ void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) { actWin = aw; if (activateOnMessage) connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); else disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); } /*! Returns the applications activation window if one has been set by calling setActivationWindow(), otherwise returns 0. \sa setActivationWindow() */ QWidget* QtSingleApplication::activationWindow() const { return actWin; } /*! De-minimizes, raises, and activates this application's activation window. This function does nothing if no activation window has been set. This is a convenience function to show the user that this application instance has been activated when he has tried to start another instance. This function should typically be called in response to the messageReceived() signal. By default, that will happen automatically, if an activation window has been set. \sa setActivationWindow(), messageReceived(), initialize() */ void QtSingleApplication::activateWindow() { if (actWin) { actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); actWin->raise(); actWin->activateWindow(); } } /*! \fn void QtSingleApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage(), setActivationWindow(), activateWindow() */ /*! \fn void QtSingleApplication::initialize(bool dummy = true) \obsolete */ kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlocalpeer.cpp0000664000175000017500000001212215160532550026237 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include "qtlocalpeer.h" #include #include #include #include #if defined(Q_OS_WIN) #include #include typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); static PProcessIdToSessionId pProcessIdToSessionId = 0; #endif #if defined(Q_OS_UNIX) #include #include #include #endif namespace QtLP_Private { #include "qtlockedfile.cpp" #if defined(Q_OS_WIN) #include "qtlockedfile_win.cpp" #else #include "qtlockedfile_unix.cpp" #endif } const char* QtLocalPeer::ack = "ack"; QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) : QObject(parent), id(appId) { QString prefix = id; if (id.isEmpty()) { id = QCoreApplication::applicationFilePath(); #if defined(Q_OS_WIN) id = id.toLower(); #endif prefix = id.section(QLatin1Char('/'), -1); } prefix.remove(QRegularExpression("[^a-zA-Z]")); prefix.truncate(6); QByteArray idc = id.toUtf8(); #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) quint16 idNum = qChecksum(QByteArrayView(idc)); #else quint16 idNum = qChecksum(idc.constData(), idc.size()); #endif socketName = QLatin1String("qtsingleapp-") + prefix + QLatin1Char('-') + QString::number(idNum, 16); #if defined(Q_OS_WIN) if (!pProcessIdToSessionId) { QLibrary lib("kernel32"); pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId"); } if (pProcessIdToSessionId) { DWORD sessionId = 0; pProcessIdToSessionId(GetCurrentProcessId(), &sessionId); socketName += QLatin1Char('-') + QString::number(sessionId, 16); } #else socketName += QLatin1Char('-') + QString::number(::getuid(), 16); #endif server = new QLocalServer(this); QString lockName = QDir(QDir::tempPath()).absolutePath() + QLatin1Char('/') + socketName + QLatin1String("-lockfile"); lockFile.setFileName(lockName); lockFile.open(QIODevice::ReadWrite); } bool QtLocalPeer::isClient() { if (lockFile.isLocked()) return false; if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) return true; bool res = server->listen(socketName); #if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) // ### Workaround if (!res && server->serverError() == QAbstractSocket::AddressInUseError) { QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName); res = server->listen(socketName); } #endif if (!res) qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString())); QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection())); return false; } bool QtLocalPeer::sendMessage(const QString &message, int timeout) { if (!isClient()) return false; QLocalSocket socket; bool connOk = false; for(int i = 0; i < 2; i++) { // Try twice, in case the other instance is just starting up socket.connectToServer(socketName); connOk = socket.waitForConnected(timeout/2); if (connOk || i) break; int ms = 250; #if defined(Q_OS_WIN) Sleep(DWORD(ms)); #else struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 }; nanosleep(&ts, NULL); #endif } if (!connOk) return false; QByteArray uMsg(message.toUtf8()); QDataStream ds(&socket); ds.writeBytes(uMsg.constData(), uMsg.size()); bool res = socket.waitForBytesWritten(timeout); if (res) { res &= socket.waitForReadyRead(timeout); // wait for ack if (res) res &= (socket.read(qstrlen(ack)) == ack); } return res; } void QtLocalPeer::receiveConnection() { QLocalSocket* socket = server->nextPendingConnection(); if (!socket) return; while (true) { if (socket->state() == QLocalSocket::UnconnectedState) { qWarning("QtLocalPeer: Peer disconnected"); delete socket; return; } if (socket->bytesAvailable() >= qint64(sizeof(quint32))) break; socket->waitForReadyRead(); } QDataStream ds(socket); QByteArray uMsg; quint32 remaining; ds >> remaining; uMsg.resize(remaining); int got = 0; char* uMsgBuf = uMsg.data(); do { got = ds.readRawData(uMsgBuf, remaining); remaining -= got; uMsgBuf += got; } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); if (got < 0) { qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); delete socket; return; } QString message(QString::fromUtf8(uMsg)); socket->write(ack, qstrlen(ack)); socket->waitForBytesWritten(1000); socket->waitForDisconnected(1000); // make sure client reads ack delete socket; emit messageReceived(message); //### (might take a long time to return) } kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsingleapplication.h0000664000175000017500000000405715160532550027453 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #ifndef QTSINGLEAPPLICATION_H #define QTSINGLEAPPLICATION_H #include class QtLocalPeer; #if defined(Q_OS_WIN) # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) # define QT_QTSINGLEAPPLICATION_EXPORT # elif defined(QT_QTSINGLEAPPLICATION_IMPORT) # if defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # endif # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport) # elif defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport) # endif #else # define QT_QTSINGLEAPPLICATION_EXPORT #endif class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication { Q_OBJECT public: QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); QtSingleApplication(const QString &id, int &argc, char **argv); #if QT_VERSION < 0x050000 QtSingleApplication(int &argc, char **argv, Type type); # if defined(Q_WS_X11) QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 bool isRunning(); QString id() const; void setActivationWindow(QWidget* aw, bool activateOnMessage = true); QWidget* activationWindow() const; // Obsolete: void initialize(bool dummy = true) { isRunning(); Q_UNUSED(dummy) } public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); void activateWindow(); Q_SIGNALS: void messageReceived(const QString &message); private: void sysInit(const QString &appId = QString()); QtLocalPeer *peer; QWidget *actWin; }; #endif // QTSINGLEAPPLICATION_H kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtlockedfile_win.cpp0000664000175000017500000001112115160532550027245 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include "qtlockedfile.h" #include #include #define MUTEX_PREFIX "QtLockedFile mutex " // Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS #define MAX_READERS MAXIMUM_WAIT_OBJECTS #if QT_VERSION >= 0x050000 #define QT_WA(unicode, ansi) unicode #endif Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) { if (mutexname.isEmpty()) { QFileInfo fi(*this); mutexname = QString::fromLatin1(MUTEX_PREFIX) + fi.absoluteFilePath().toLower(); } QString mname(mutexname); if (idx >= 0) mname += QString::number(idx); Qt::HANDLE mutex; if (doCreate) { QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); return 0; } } else { QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { if (GetLastError() != ERROR_FILE_NOT_FOUND) qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); return 0; } } return mutex; } bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock) { Q_ASSERT(mutex); DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0); switch (res) { case WAIT_OBJECT_0: case WAIT_ABANDONED: return true; break; case WAIT_TIMEOUT: break; default: qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed"); } return false; } bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); if (!wmutex && !(wmutex = getMutexHandle(-1, true))) return false; if (!waitMutex(wmutex, block)) return false; if (mode == ReadLock) { int idx = 0; for (; idx < MAX_READERS; idx++) { rmutex = getMutexHandle(idx, false); if (!rmutex || waitMutex(rmutex, false)) break; CloseHandle(rmutex); } bool ok = true; if (idx >= MAX_READERS) { qWarning("QtLockedFile::lock(): too many readers"); rmutex = 0; ok = false; } else if (!rmutex) { rmutex = getMutexHandle(idx, true); if (!rmutex || !waitMutex(rmutex, false)) ok = false; } if (!ok && rmutex) { CloseHandle(rmutex); rmutex = 0; } ReleaseMutex(wmutex); if (!ok) return false; } else { Q_ASSERT(rmutexes.isEmpty()); for (int i = 0; i < MAX_READERS; i++) { Qt::HANDLE mutex = getMutexHandle(i, false); if (mutex) rmutexes.append(mutex); } if (rmutexes.size()) { DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(), TRUE, block ? INFINITE : 0); if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) { if (res != WAIT_TIMEOUT) qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed"); m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky unlock(); return false; } } } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; if (m_lock_mode == ReadLock) { ReleaseMutex(rmutex); CloseHandle(rmutex); rmutex = 0; } else { foreach(Qt::HANDLE mutex, rmutexes) { ReleaseMutex(mutex); CloseHandle(mutex); } rmutexes.clear(); ReleaseMutex(wmutex); } m_lock_mode = QtLockedFile::NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); if (wmutex) CloseHandle(wmutex); } kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsinglecoreapplication.pri0000664000175000017500000000050415160532550030660 0ustar fengfengINCLUDEPATH += $$PWD DEPENDPATH += $$PWD HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp QT *= network win32:contains(TEMPLATE, lib):contains(CONFIG, shared) { DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport) } kylin-virtual-keyboard/third-party/qtsingleapplication/src/qtsinglecoreapplication.cpp0000664000175000017500000000661515160532550030661 0ustar fengfeng// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). // SPDX-License-Identifier: BSD-3-Clause #include "qtsinglecoreapplication.h" #include "qtlocalpeer.h" /*! \class QtSingleCoreApplication qtsinglecoreapplication.h \brief A variant of the QtSingleApplication class for non-GUI applications. This class is a variant of QtSingleApplication suited for use in console (non-GUI) applications. It is an extension of QCoreApplication (instead of QApplication). It does not require the QtGui library. The API and usage is identical to QtSingleApplication, except that functions relating to the "activation window" are not present, for obvious reasons. Please refer to the QtSingleApplication documentation for explanation of the usage. A QtSingleCoreApplication instance can communicate to a QtSingleApplication instance if they share the same application id. Hence, this class can be used to create a light-weight command-line tool that sends commands to a GUI application. \sa QtSingleApplication */ /*! Creates a QtSingleCoreApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleCoreApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleCoreApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleCoreApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleCoreApplication::id() const { return peer->applicationId(); } /*! \fn void QtSingleCoreApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage() */ kylin-virtual-keyboard/third-party/qtsingleapplication/src/QtSingleApplication0000664000175000017500000000004115160532550027052 0ustar fengfeng#include "qtsingleapplication.h" kylin-virtual-keyboard/third-party/qtsingleapplication/common.pri0000664000175000017500000000124715160532550024443 0ustar fengfengexists(config.pri):infile(config.pri, SOLUTIONS_LIBRARY, yes): CONFIG += qtsingleapplication-uselib TEMPLATE += fakelib greaterThan(QT_MAJOR_VERSION, 5)|\ if(equals(QT_MAJOR_VERSION, 5):greaterThan(QT_MINOR_VERSION, 4))|\ if(equals(QT_MAJOR_VERSION, 5):equals(QT_MINOR_VERSION, 4):greaterThan(QT_PATCH_VERSION, 1)) { QTSINGLEAPPLICATION_LIBNAME = $$qt5LibraryTarget(QtSolutions_SingleApplication-head) } else { QTSINGLEAPPLICATION_LIBNAME = $$qtLibraryTarget(QtSolutions_SingleApplication-head) } TEMPLATE -= fakelib QTSINGLEAPPLICATION_LIBDIR = $$PWD/lib unix:qtsingleapplication-uselib:!qtsingleapplication-buildlib:QMAKE_RPATHDIR += $$QTSINGLEAPPLICATION_LIBDIR kylin-virtual-keyboard/third-party/qtsingleapplication/qtsingleapplication.pro0000664000175000017500000000016515160532550027231 0ustar fengfengTEMPLATE=subdirs CONFIG += ordered include(common.pri) qtsingleapplication-uselib:SUBDIRS=buildlib SUBDIRS+=examples kylin-virtual-keyboard/third-party/qtsingleapplication/CMakeLists.txt0000664000175000017500000000132515160532550025174 0ustar fengfengcmake_minimum_required(VERSION 3.16) project(qtsingleapplication) find_package(Qt NAMES Qt6 Qt5 REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Network REQUIRED) include_directories(src) set(SRCS src/qtsingleapplication.h src/qtsingleapplication.cpp src/qtlocalpeer.h src/qtlocalpeer.cpp) add_library(${PROJECT_NAME} STATIC ${SRCS}) target_include_directories(${PROJECT_NAME} PRIVATE src) target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network) kylin-virtual-keyboard/third-party/qtsingleapplication/README.TXT0000664000175000017500000000164115160532550023773 0ustar fengfengQt Solutions Component: Single Application The QtSingleApplication component provides support for applications that can be only started once per user. Version history: 2.0: - Version 1.3 ported to Qt 4. 2.1: - Fix compilation problem on Mac. 2.2: - Really fix the Mac compilation problem. - Mac: fix crash due to wrong object releasing. - Mac: Fix memory leak. 2.3: - Windows: Force creation of internal widget to make it work with Qt 4.2. 2.4: - Fix the system for automatic window raising on message reception. NOTE: minor API change. 2.5: - Mac: Fix isRunning() to work and report correctly. 2.6: - - initialize() is now obsolete, no longer necessary to call it - - Fixed race condition where multiple instances migth be started - - QtSingleCoreApplication variant provided for non-GUI (console) usage - Complete reimplementation. Visible changes: - LGPL release. kylin-virtual-keyboard/third-party/qtsingleapplication/INSTALL.TXT0000664000175000017500000002237415160532550024152 0ustar fengfengINSTALLATION INSTRUCTIONS These instructions refer to the package you are installing as some-package.tar.gz or some-package.zip. The .zip file is intended for use on Windows. The directory you choose for the installation will be referred to as your-install-dir. Note to Qt Visual Studio Integration users: In the instructions below, instead of building from command line with nmake, you can use the menu command 'Qt->Open Solution from .pro file' on the .pro files in the example and plugin directories, and then build from within Visual Studio. Unpacking and installation -------------------------- 1. Unpacking the archive (if you have not done so already). On Unix and Mac OS X (in a terminal window): cd your-install-dir gunzip some-package.tar.gz tar xvf some-package.tar This creates the subdirectory some-package containing the files. On Windows: Unpack the .zip archive by right-clicking it in explorer and choosing "Extract All...". If your version of Windows does not have zip support, you can use the infozip tools available from www.info-zip.org. If you are using the infozip tools (in a command prompt window): cd your-install-dir unzip some-package.zip 2. Configuring the package. The configure script is called "configure" on unix/mac and "configure.bat" on Windows. It should be run from a command line after cd'ing to the package directory. You can choose whether you want to use the component by including its source code directly into your project, or build the component as a dynamic shared library (DLL) that is loaded into the application at run-time. The latter may be preferable for technical or licensing (LGPL) reasons. If you want to build a DLL, run the configure script with the argument "-library". Also see the note about usage below. (Components that are Qt plugins, e.g. styles and image formats, are by default built as a plugin DLL.) The configure script will prompt you in some cases for further information. Answer these questions and carefully read the license text before accepting the license conditions. The package cannot be used if you do not accept the license conditions. 3. Building the component and examples (when required). If a DLL is to be built, or if you would like to build the examples, next give the commands qmake make [or nmake if your are using Microsoft Visual C++] The example program(s) can be found in the directory called "examples" or "example". Components that are Qt plugins, e.g. styles and image formats, are ready to be used as soon as they are built, so the rest of this installation instruction can be skipped. 4. Building the Qt Designer plugin (optional). Some of the widget components are provided with plugins for Qt Designer. To build and install the plugin, cd into the some-package/plugin directory and give the commands qmake make [or nmake if your are using Microsoft Visual C++] Restart Qt Designer to make it load the new widget plugin. Note: If you are using the built-in Qt Designer from the Qt Visual Studio Integration, you will need to manually copy the plugin DLL file, i.e. copy %QTDIR%\plugins\designer\some-component.dll to the Qt Visual Studio Integration plugin path, typically: C:\Program Files\Trolltech\Qt VS Integration\plugins Note: If you for some reason are using a Qt Designer that is built in debug mode, you will need to build the plugin in debug mode also. Edit the file plugin.pro in the plugin directory, changing 'release' to 'debug' in the CONFIG line, before running qmake. Solutions components are intended to be used directly from the package directory during development, so there is no 'make install' procedure. Using a component in your project --------------------------------- To use this component in your project, add the following line to the project's .pro file (or do the equivalent in your IDE): include(your-install-dir/some-package/src/some-package.pri) This adds the package's sources and headers to the SOURCES and HEADERS project variables respectively (or, if the component has been configured as a DLL, it adds that library to the LIBS variable), and updates INCLUDEPATH to contain the package's src directory. Additionally, the .pri file may include some dependencies needed by the package. To include a header file from the package in your sources, you can now simply use: #include or alternatively, in pre-Qt 4 style: #include Refer to the documentation to see the classes and headers this components provides. Install documentation (optional) -------------------------------- The HTML documentation for the package's classes is located in the your-install-dir/some-package/doc/html/index.html. You can open this file and read the documentation with any web browser. To install the documentation into Qt Assistant (for Qt version 4.4 and later): 1. In Assistant, open the Edit->Preferences dialog and choose the Documentation tab. Click the Add... button and select the file your-install-dir/some-package/doc/html/some-package.qch For Qt versions prior to 4.4, do instead the following: 1. The directory your-install-dir/some-package/doc/html contains a file called some-package.dcf. Execute the following commands in a shell, command prompt or terminal window: cd your-install-dir/some-package/doc/html/ assistant -addContentFile some-package.dcf The next time you start Qt Assistant, you can access the package's documentation. Removing the documentation from assistant ----------------------------------------- If you have installed the documentation into Qt Assistant, and want to uninstall it, do as follows, for Qt version 4.4 and later: 1. In Assistant, open the Edit->Preferences dialog and choose the Documentation tab. In the list of Registered Documentation, select the item com.nokia.qtsolutions.some-package_version, and click the Remove button. For Qt versions prior to 4.4, do instead the following: 1. The directory your-install-dir/some-package/doc/html contains a file called some-package.dcf. Execute the following commands in a shell, command prompt or terminal window: cd your-install-dir/some-package/doc/html/ assistant -removeContentFile some-package.dcf Using the component as a DLL ---------------------------- 1. Normal components The shared library (DLL) is built and placed in the some-package/lib directory. It is intended to be used directly from there during development. When appropriate, both debug and release versions are built, since the run-time linker will in some cases refuse to load a debug-built DLL into a release-built application or vice versa. The following steps are taken by default to help the dynamic linker to locate the DLL at run-time (during development): Unix: The some-package.pri file will add linker instructions to add the some-package/lib directory to the rpath of the executable. (When distributing, or if your system does not support rpath, you can copy the shared library to another place that is searched by the dynamic linker, e.g. the "lib" directory of your Qt installation.) Mac: The full path to the library is hardcoded into the library itself, from where it is copied into the executable at link time, and ready by the dynamic linker at run-time. (When distributing, you will want to edit these hardcoded paths in the same way as for the Qt DLLs. Refer to the document "Deploying an Application on Mac OS X" in the Qt Reference Documentation.) Windows: the .dll file(s) are copied into the "bin" directory of your Qt installation. The Qt installation will already have set up that directory to be searched by the dynamic linker. 2. Plugins For Qt Solutions plugins (e.g. image formats), both debug and release versions of the plugin are built by default when appropriate, since in some cases the release Qt library will not load a debug plugin, and vice versa. The plugins are automatically copied into the plugins directory of your Qt installation when built, so no further setup is required. Plugins may also be built statically, i.e. as a library that will be linked into your application executable, and so will not need to be redistributed as a separate plugin DLL to end users. Static building is required if Qt itself is built statically. To do it, just add "static" to the CONFIG variable in the plugin/plugin.pro file before building. Refer to the "Static Plugins" section in the chapter "How to Create Qt Plugins" for explanation of how to use a static plugin in your application. The source code of the example program(s) will also typically contain the relevant instructions as comments. Uninstalling ------------ The following command will remove any fils that have been automatically placed outside the package directory itself during installation and building make distclean [or nmake if your are using Microsoft Visual C++] If Qt Assistant documentation or Qt Designer plugins have been installed, they can be uninstalled manually, ref. above. Enjoy! :) - The Qt Solutions Team. kylin-virtual-keyboard/third-party/qtsingleapplication/buildlib/0000775000175000017500000000000015160532550024221 5ustar fengfengkylin-virtual-keyboard/third-party/qtsingleapplication/buildlib/buildlib.pro0000664000175000017500000000072115160532550026531 0ustar fengfengTEMPLATE=lib CONFIG += qt dll qtsingleapplication-buildlib mac:CONFIG += absolute_library_soname win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all include(../src/qtsingleapplication.pri) TARGET = $$QTSINGLEAPPLICATION_LIBNAME DESTDIR = $$QTSINGLEAPPLICATION_LIBDIR win32 { DLLDESTDIR = $$[QT_INSTALL_BINS] QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QTSINGLEAPPLICATION_LIBNAME}.dll } target.path = $$DESTDIR INSTALLS += target kylin-virtual-keyboard/third-party/qtsingleapplication/configure0000664000175000017500000000126115160532634024342 0ustar fengfeng#!/bin/sh if [ "x$1" != "x" -a "x$1" != "x-library" ]; then echo "Usage: $0 [-library]" echo echo "-library: Build the component as a dynamic library (DLL). Default is to" echo " include the component source code directly in the application." echo exit 0 fi rm -f config.pri if [ "x$1" = "x-library" ]; then echo "Configuring to build this component as a dynamic library." echo "SOLUTIONS_LIBRARY = yes" > config.pri fi echo echo "This component is now configured." echo echo "To build the component library (if requested) and example(s)," echo "run qmake and your make command." echo echo "To remove or reconfigure, run make distclean." echo kylin-virtual-keyboard/data/0000775000175000017500000000000015160532634015026 5ustar fengfengkylin-virtual-keyboard/data/org.ukui.virtualkeyboard.gschema.xml0000664000175000017500000000370615160532634024135 0ustar fengfeng false

Controls the availability of float button Controls the availability of float button 50 Scale the virtual keyboard size Scale the virtual keyboard size. Its range is [20, 100] true Controls the availability of virtualkeyboard animation Controls the availability of virtualkeyboard animation 'ShowWhenKeyboardIsConnected' Controls the availability and visibility of virtualkeyboard tray icon Controls the availability and visibility of virtualkeyboard tray icon false Controls the availability of preload virtualkeyboard view Controls the availability of preload virtualkeyboard view 'info' Controls the log level Controls the log level kylin-virtual-keyboard/data/ukui-virtual-keyboard-symbolic.svg0000664000175000017500000000451715160532550023631 0ustar fengfeng kylin-virtual-keyboard/data/CMakeLists.txt0000664000175000017500000000062215160532634017566 0ustar fengfenginstall(FILES org.ukui.virtualkeyboard.gschema.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/) install(FILES ukui-virtual-keyboard-symbolic.svg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/actions) install(FILES kylin-virtual-keyboard.desktop DESTINATION /etc/xdg/autostart/) install(PROGRAMS kylin-virtual-keyboard-xwayland DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)kylin-virtual-keyboard/data/kylin-virtual-keyboard-xwayland0000775000175000017500000000037515160532634023216 0ustar fengfeng#!/bin/bash # The input method requires the use of the xcb platform environment in the wayland environment # However, it cannot affect the entire system environment export QT_QPA_PLATFORM=xcb exec /usr/bin/kylin-virtual-keyboard unset QT_QPA_PLATFORM kylin-virtual-keyboard/data/kylin-virtual-keyboard.desktop0000664000175000017500000000054515160532634023035 0ustar fengfeng[Desktop Entry] Name=kylin-virtual-keyboard Name[zh_CN]=麒麟虚拟键盘 Comment=kylin-virtual-keyboard Comment[zh_CN]=麒麟虚拟键盘 Exec=/usr/bin/kylin-virtual-keyboard-xwayland Terminal=false Type=Application X-GNOME-AutoRestart=true X-GNOME-AutoRestart-Phase=Application X-UKUI-AutoRestart=true X-UKUI-AutoRestart-Phase=Application NoDisplay=true kylin-virtual-keyboard/data/org.fcitx.Fcitx5.VirtualKeyboard.service0000664000175000017500000000013315160532550024554 0ustar fengfeng[D-BUS Service] Name=org.fcitx.Fcitx5.VirtualKeyboard Exec=/usr/bin/kylin-virtual-keyboard