From 27b6fa6a099874f52fd0629262b02b85fb913458 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 5 Sep 2018 10:52:42 +0200 Subject: [PATCH] Merge p2p repository at eb22118 --- p2p/build.gradle | 33 + p2p/gradle.properties | 2 + .../java/bisq/network/DnsLookupException.java | 28 + .../main/java/bisq/network/DnsLookupTor.java | 136 +++ .../java/bisq/network/NetworkOptionKeys.java | 32 + .../java/bisq/network/Socks5DnsDiscovery.java | 135 +++ .../bisq/network/Socks5MultiDiscovery.java | 91 ++ .../bisq/network/Socks5ProxyProvider.java | 112 ++ .../network/Socks5SeedOnionDiscovery.java | 201 ++++ .../network/crypto/DecryptedDataTuple.java | 37 + .../network/crypto/EncryptionService.java | 128 +++ .../crypto/EncryptionServiceModule.java | 36 + .../bisq/network/http/FakeDnsResolver.java | 33 + .../java/bisq/network/http/HttpClient.java | 207 ++++ .../java/bisq/network/http/HttpException.java | 24 + .../http/SocksConnectionSocketFactory.java | 57 + .../http/SocksSSLConnectionSocketFactory.java | 69 ++ .../java/bisq/network/p2p/AckMessage.java | 180 ++++ .../network/p2p/AckMessageSourceType.java | 25 + .../bisq/network/p2p/AnonymousMessage.java | 21 + .../bisq/network/p2p/BootstrapListener.java | 52 + .../network/p2p/CloseConnectionMessage.java | 59 ++ .../p2p/DecryptedDirectMessageListener.java | 23 + .../p2p/DecryptedMessageWithPubKey.java | 35 + .../java/bisq/network/p2p/DirectMessage.java | 21 + .../p2p/ExtendedDataSizePermission.java | 22 + .../java/bisq/network/p2p/MailboxMessage.java | 23 + .../bisq/network/p2p/NetworkNodeProvider.java | 55 + .../network/p2p/NetworkNotReadyException.java | 26 + .../java/bisq/network/p2p/NodeAddress.java | 95 ++ .../main/java/bisq/network/p2p/P2PModule.java | 90 ++ .../java/bisq/network/p2p/P2PService.java | 933 +++++++++++++++++ .../bisq/network/p2p/P2PServiceListener.java | 32 + .../p2p/PrefixedSealedAndSignedMessage.java | 95 ++ .../p2p/SendDirectMessageListener.java | 24 + .../p2p/SendMailboxMessageListener.java | 26 + .../p2p/SendersNodeAddressMessage.java | 22 + .../p2p/SupportedCapabilitiesMessage.java | 27 + .../java/bisq/network/p2p/UidMessage.java | 23 + p2p/src/main/java/bisq/network/p2p/Utils.java | 37 + .../messaging/DecryptedMailboxListener.java | 26 + .../p2p/network/BisqRuntimeException.java | 24 + .../p2p/network/BridgeAddressProvider.java | 27 + .../p2p/network/CloseConnectionReason.java | 65 ++ .../bisq/network/p2p/network/Connection.java | 982 ++++++++++++++++++ .../p2p/network/ConnectionListener.java | 26 + .../network/DefaultPluggableTransports.java | 63 ++ .../p2p/network/InboundConnection.java | 31 + .../p2p/network/LocalhostNetworkNode.java | 106 ++ .../network/p2p/network/MessageListener.java | 24 + .../bisq/network/p2p/network/NetworkNode.java | 456 ++++++++ .../p2p/network/OutboundConnection.java | 34 + .../p2p/network/ProtoOutputStream.java | 75 ++ .../network/p2p/network/RuleViolation.java | 34 + .../java/bisq/network/p2p/network/Server.java | 121 +++ .../network/p2p/network/SetupListener.java | 29 + .../bisq/network/p2p/network/Statistic.java | 170 +++ .../SupportedCapabilitiesListener.java | 24 + .../SynchronizedProtoOutputStream.java | 71 ++ .../network/p2p/network/TorNetworkNode.java | 303 ++++++ .../java/bisq/network/p2p/peers/BanList.java | 50 + .../network/p2p/peers/BroadcastHandler.java | 293 ++++++ .../bisq/network/p2p/peers/Broadcaster.java | 85 ++ .../bisq/network/p2p/peers/PeerManager.java | 702 +++++++++++++ .../peers/getdata/GetDataRequestHandler.java | 224 ++++ .../p2p/peers/getdata/RequestDataHandler.java | 354 +++++++ .../p2p/peers/getdata/RequestDataManager.java | 491 +++++++++ .../getdata/messages/GetDataRequest.java | 45 + .../getdata/messages/GetDataResponse.java | 140 +++ .../messages/GetUpdatedDataRequest.java | 88 ++ .../messages/PreliminaryGetDataRequest.java | 90 ++ .../p2p/peers/keepalive/KeepAliveHandler.java | 179 ++++ .../p2p/peers/keepalive/KeepAliveManager.java | 264 +++++ .../keepalive/messages/KeepAliveMessage.java | 21 + .../p2p/peers/keepalive/messages/Ping.java | 61 ++ .../p2p/peers/keepalive/messages/Pong.java | 58 ++ .../peerexchange/GetPeersRequestHandler.java | 158 +++ .../network/p2p/peers/peerexchange/Peer.java | 121 +++ .../peerexchange/PeerExchangeHandler.java | 223 ++++ .../peerexchange/PeerExchangeManager.java | 422 ++++++++ .../p2p/peers/peerexchange/PeerList.java | 53 + .../messages/GetPeersRequest.java | 100 ++ .../messages/GetPeersResponse.java | 97 ++ .../messages/PeerExchangeMessage.java | 21 + .../network/p2p/seed/SeedNodeRepository.java | 31 + .../p2p/storage/HashMapChangedListener.java | 27 + .../network/p2p/storage/P2PDataStorage.java | 892 ++++++++++++++++ .../p2p/storage/messages/AddDataMessage.java | 70 ++ .../AddPersistableNetworkPayloadMessage.java | 63 ++ .../storage/messages/BroadcastMessage.java | 29 + .../storage/messages/RefreshOfferMessage.java | 79 ++ .../storage/messages/RemoveDataMessage.java | 61 ++ .../messages/RemoveMailboxDataMessage.java | 61 ++ .../payload/CapabilityRequiringPayload.java | 35 + .../storage/payload/DateTolerantPayload.java | 26 + .../p2p/storage/payload/ExpirablePayload.java | 35 + .../storage/payload/LazyProcessedPayload.java | 27 + .../payload/MailboxStoragePayload.java | 121 +++ .../payload/PersistableNetworkPayload.java | 46 + .../payload/PersistableProtectedPayload.java | 33 + .../payload/ProtectedMailboxStorageEntry.java | 106 ++ .../payload/ProtectedStorageEntry.java | 137 +++ .../payload/ProtectedStoragePayload.java | 58 ++ .../payload/RequiresOwnerIsOnlinePayload.java | 36 + .../AppendOnlyDataStoreListener.java | 24 + .../AppendOnlyDataStoreService.java | 86 ++ .../PersistableNetworkPayloadList.java | 88 ++ .../PersistableNetworkPayloadListService.java | 125 +++ .../ProtectedDataStoreListener.java | 26 + .../ProtectedDataStoreService.java | 92 ++ .../persistence/SequenceNumberMap.java | 101 ++ .../p2p/storage/persistence/StoreService.java | 151 +++ .../AccountAgeWitnessStore_BTC_MAINNET | Bin 0 -> 543034 bytes .../TradeStatistics2Store_BTC_MAINNET | Bin 0 -> 2573821 bytes .../crypto/EncryptionServiceTests.java | 161 +++ .../java/bisq/network/p2p/DummySeedNode.java | 236 +++++ .../bisq/network/p2p/PeerServiceTest.java | 525 ++++++++++ .../test/java/bisq/network/p2p/TestUtils.java | 211 ++++ .../network/p2p/mocks/MockMailboxPayload.java | 85 ++ .../bisq/network/p2p/mocks/MockPayload.java | 78 ++ .../p2p/network/LocalhostNetworkNodeTest.java | 118 +++ .../p2p/network/TorNetworkNodeTest.java | 223 ++++ .../network/p2p/routing/PeerManagerTest.java | 486 +++++++++ .../p2p/storage/P2PDataStorageTest.java | 236 +++++ .../p2p/storage/ProtectedDataStorageTest.java | 232 +++++ .../storage/messages/AddDataMessageTest.java | 92 ++ .../network/p2p/storage/mocks/MockData.java | 90 ++ 127 files changed, 15777 insertions(+) create mode 100644 p2p/build.gradle create mode 100644 p2p/gradle.properties create mode 100644 p2p/src/main/java/bisq/network/DnsLookupException.java create mode 100644 p2p/src/main/java/bisq/network/DnsLookupTor.java create mode 100644 p2p/src/main/java/bisq/network/NetworkOptionKeys.java create mode 100644 p2p/src/main/java/bisq/network/Socks5DnsDiscovery.java create mode 100644 p2p/src/main/java/bisq/network/Socks5MultiDiscovery.java create mode 100644 p2p/src/main/java/bisq/network/Socks5ProxyProvider.java create mode 100644 p2p/src/main/java/bisq/network/Socks5SeedOnionDiscovery.java create mode 100644 p2p/src/main/java/bisq/network/crypto/DecryptedDataTuple.java create mode 100644 p2p/src/main/java/bisq/network/crypto/EncryptionService.java create mode 100644 p2p/src/main/java/bisq/network/crypto/EncryptionServiceModule.java create mode 100644 p2p/src/main/java/bisq/network/http/FakeDnsResolver.java create mode 100644 p2p/src/main/java/bisq/network/http/HttpClient.java create mode 100644 p2p/src/main/java/bisq/network/http/HttpException.java create mode 100644 p2p/src/main/java/bisq/network/http/SocksConnectionSocketFactory.java create mode 100644 p2p/src/main/java/bisq/network/http/SocksSSLConnectionSocketFactory.java create mode 100644 p2p/src/main/java/bisq/network/p2p/AckMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/AckMessageSourceType.java create mode 100644 p2p/src/main/java/bisq/network/p2p/AnonymousMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/BootstrapListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/CloseConnectionMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/DecryptedDirectMessageListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/DecryptedMessageWithPubKey.java create mode 100644 p2p/src/main/java/bisq/network/p2p/DirectMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/ExtendedDataSizePermission.java create mode 100644 p2p/src/main/java/bisq/network/p2p/MailboxMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/NetworkNodeProvider.java create mode 100644 p2p/src/main/java/bisq/network/p2p/NetworkNotReadyException.java create mode 100644 p2p/src/main/java/bisq/network/p2p/NodeAddress.java create mode 100644 p2p/src/main/java/bisq/network/p2p/P2PModule.java create mode 100644 p2p/src/main/java/bisq/network/p2p/P2PService.java create mode 100644 p2p/src/main/java/bisq/network/p2p/P2PServiceListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/PrefixedSealedAndSignedMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/SendDirectMessageListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/SendMailboxMessageListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/SendersNodeAddressMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/SupportedCapabilitiesMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/UidMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/Utils.java create mode 100644 p2p/src/main/java/bisq/network/p2p/messaging/DecryptedMailboxListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/BisqRuntimeException.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/BridgeAddressProvider.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/CloseConnectionReason.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/Connection.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/ConnectionListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/DefaultPluggableTransports.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/InboundConnection.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/LocalhostNetworkNode.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/MessageListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/OutboundConnection.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/ProtoOutputStream.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/RuleViolation.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/Server.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/SetupListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/Statistic.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/SupportedCapabilitiesListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/SynchronizedProtoOutputStream.java create mode 100644 p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/BanList.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/BroadcastHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/Broadcaster.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/GetDataRequestHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataManager.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataRequest.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataResponse.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetUpdatedDataRequest.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveManager.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/KeepAliveMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Ping.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Pong.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/Peer.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeManager.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerList.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersRequest.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersResponse.java create mode 100644 p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/PeerExchangeMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/seed/SeedNodeRepository.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/HashMapChangedListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/AddDataMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/AddPersistableNetworkPayloadMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/BroadcastMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/RefreshOfferMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveDataMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveMailboxDataMessage.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/CapabilityRequiringPayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/DateTolerantPayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/ExpirablePayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/LazyProcessedPayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/MailboxStoragePayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableNetworkPayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableProtectedPayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntry.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStorageEntry.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStoragePayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreService.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadList.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadListService.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreListener.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreService.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/SequenceNumberMap.java create mode 100644 p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java create mode 100644 p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET create mode 100644 p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET create mode 100644 p2p/src/test/java/bisq/network/crypto/EncryptionServiceTests.java create mode 100644 p2p/src/test/java/bisq/network/p2p/DummySeedNode.java create mode 100644 p2p/src/test/java/bisq/network/p2p/PeerServiceTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/TestUtils.java create mode 100644 p2p/src/test/java/bisq/network/p2p/mocks/MockMailboxPayload.java create mode 100644 p2p/src/test/java/bisq/network/p2p/mocks/MockPayload.java create mode 100644 p2p/src/test/java/bisq/network/p2p/network/LocalhostNetworkNodeTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/network/TorNetworkNodeTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/routing/PeerManagerTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/storage/ProtectedDataStorageTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/storage/messages/AddDataMessageTest.java create mode 100644 p2p/src/test/java/bisq/network/p2p/storage/mocks/MockData.java diff --git a/p2p/build.gradle b/p2p/build.gradle new file mode 100644 index 00000000000..d18c747abec --- /dev/null +++ b/p2p/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'java' + id 'maven' +} + +group = 'network.bisq' +version = '-SNAPSHOT' + +sourceCompatibility = 1.8 + +repositories { + jcenter() + maven { url 'https://jitpack.io' } + maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } +} + +dependencies { + compile 'network.bisq:bisq-common:-SNAPSHOT' + compile('com.github.JesusMcCloud.netlayer:tor.native:0.4.2') { + exclude(module: 'slf4j-api') + } + compile('org.apache.httpcomponents:httpclient:4.5.3') { + exclude(module: 'commons-logging') + } + compile 'net.sf.jopt-simple:jopt-simple:5.0.3' + compile 'org.fxmisc.easybind:easybind:1.0.3' + compileOnly 'org.projectlombok:lombok:1.16.16' + annotationProcessor 'org.projectlombok:lombok:1.16.16' + testCompile 'junit:junit:4.12' + testCompile 'org.jmockit:jmockit:1.30' + testCompileOnly 'org.projectlombok:lombok:1.16.16' + testAnnotationProcessor 'org.projectlombok:lombok:1.16.16' +} diff --git a/p2p/gradle.properties b/p2p/gradle.properties new file mode 100644 index 00000000000..e4d9a54cbc8 --- /dev/null +++ b/p2p/gradle.properties @@ -0,0 +1,2 @@ +systemProp.org.gradle.internal.http.connectionTimeout=120000 +systemProp.org.gradle.internal.http.socketTimeout=120000 diff --git a/p2p/src/main/java/bisq/network/DnsLookupException.java b/p2p/src/main/java/bisq/network/DnsLookupException.java new file mode 100644 index 00000000000..65bfa3e6b86 --- /dev/null +++ b/p2p/src/main/java/bisq/network/DnsLookupException.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +public class DnsLookupException extends Exception { + public DnsLookupException(String message) { + super(message); + } + + public DnsLookupException(Exception e) { + super(e); + } +} diff --git a/p2p/src/main/java/bisq/network/DnsLookupTor.java b/p2p/src/main/java/bisq/network/DnsLookupTor.java new file mode 100644 index 00000000000..4b457853652 --- /dev/null +++ b/p2p/src/main/java/bisq/network/DnsLookupTor.java @@ -0,0 +1,136 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import java.net.InetAddress; +import java.net.Socket; + +import java.io.IOException; + +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Performs DNS lookup over Socks5 proxy that implements the RESOLVE extension. + * At this time, Tor is only known Socks5 proxy that supports it. + *

+ * Adapted from https://github.com/btcsuite/btcd/blob/master/connmgr/tor.go + */ +public class DnsLookupTor { + private static final Logger log = LoggerFactory.getLogger(DnsLookupTor.class); + private static final Map torStatusErrors = DnsLookupTor.createMap(); + + private static Map createMap() { + HashMap map = new HashMap<>(); + map.put(b('\u0000'), "tor succeeded"); + map.put(b('\u0001'), "tor general error"); + map.put(b('\u0002'), "tor not allowed"); + map.put(b('\u0003'), "tor network is unreachable"); + map.put(b('\u0004'), "tor host is unreachable"); + map.put(b('\u0005'), "tor connection refused"); + map.put(b('\u0006'), "tor TTL expired"); + map.put(b('\u0007'), "tor command not supported"); + map.put(b('\u0008'), "tor address type not supported"); + return map; + } + + /** + * Performs DNS lookup and returns a single InetAddress + */ + public static InetAddress lookup(Socks5Proxy proxy, String host) throws DnsLookupException { + try { + // note: This is creating a new connection to our proxy, without any authentication. + // This works fine when connecting to bisq's internal Tor proxy, but + // would fail if user has configured an external proxy that requires auth. + // It would be much better to use the already connected proxy socket, but when I + // tried that I get weird errors and the lookup fails. + // + // So this is an area for future improvement. + Socket proxySocket = new Socket(proxy.getInetAddress(), proxy.getPort()); + + proxySocket.getOutputStream().write(new byte[]{b('\u0005'), b('\u0001'), b('\u0000')}); + byte[] buf = new byte[2]; + //noinspection ResultOfMethodCallIgnored + proxySocket.getInputStream().read(buf); + + if (buf[0] != b('\u0005')) { + throw new DnsLookupException("Invalid Proxy Response"); + } + if (buf[1] != b('\u0000')) { + throw new DnsLookupException("Unrecognized Tor Auth Method"); + } + + byte[] hostBytes = host.getBytes(); + buf = new byte[7 + hostBytes.length]; + buf[0] = b('\u0005'); + buf[1] = b('\u00f0'); + buf[2] = b('\u0000'); + buf[3] = b('\u0003'); + buf[4] = (byte) hostBytes.length; + System.arraycopy(hostBytes, 0, buf, 5, hostBytes.length); + buf[5 + hostBytes.length] = 0; + + proxySocket.getOutputStream().write(buf); + + buf = new byte[4]; + //noinspection UnusedAssignment + int bytesRead = proxySocket.getInputStream().read(buf); + + // TODO: Should not be a length check here as well? + /* if (bytesRead != 4) + throw new DnsLookupException("Invalid Tor Address Response");*/ + + + if (buf[0] != b('\u0005')) + throw new DnsLookupException("Invalid Tor Proxy Response"); + + if (buf[1] != b('\u0000')) { + if (!torStatusErrors.containsKey(buf[1])) { + throw new DnsLookupException("Invalid Tor Proxy Response"); + } + throw new DnsLookupException(torStatusErrors.get(buf[1]) + "(host=" + host + ")"); + } + + if (buf[3] != b('\u0001')) + throw new DnsLookupException(torStatusErrors.get(b('\u0001')) + "(host=" + host + ")"); + + buf = new byte[4]; + bytesRead = proxySocket.getInputStream().read(buf); + + if (bytesRead != 4) + throw new DnsLookupException("Invalid Tor Address Response"); + + return InetAddress.getByAddress(buf); + } catch (IOException | DnsLookupException e) { + log.warn("Error resolving " + host + ". Exception:\n" + e.toString()); + throw new DnsLookupException(e); + } + } + + /** + * so we can have prettier code without a bunch of casts. + */ + private static byte b(char c) { + return (byte) c; + } +} diff --git a/p2p/src/main/java/bisq/network/NetworkOptionKeys.java b/p2p/src/main/java/bisq/network/NetworkOptionKeys.java new file mode 100644 index 00000000000..c152441e9b8 --- /dev/null +++ b/p2p/src/main/java/bisq/network/NetworkOptionKeys.java @@ -0,0 +1,32 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +public class NetworkOptionKeys { + public static final String TOR_DIR = "torDir"; + public static final String USE_LOCALHOST_FOR_P2P = "useLocalhostForP2P"; + public static final String MAX_CONNECTIONS = "maxConnections"; + public static final String PORT_KEY = "nodePort"; + public static final String NETWORK_ID = "networkId"; + public static final String SEED_NODES_KEY = "seedNodes"; + public static final String MY_ADDRESS = "myAddress"; + public static final String BAN_LIST = "banList"; + //SOCKS_5_PROXY_BTC_ADDRESS used in network module so dont move it to BtcOptionKeys + public static final String SOCKS_5_PROXY_BTC_ADDRESS = "socks5ProxyBtcAddress"; + public static final String SOCKS_5_PROXY_HTTP_ADDRESS = "socks5ProxyHttpAddress"; +} diff --git a/p2p/src/main/java/bisq/network/Socks5DnsDiscovery.java b/p2p/src/main/java/bisq/network/Socks5DnsDiscovery.java new file mode 100644 index 00000000000..f6ee7cf7e51 --- /dev/null +++ b/p2p/src/main/java/bisq/network/Socks5DnsDiscovery.java @@ -0,0 +1,135 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +import bisq.common.util.Utilities; + +import org.bitcoinj.core.NetworkParameters; +import org.bitcoinj.net.discovery.DnsDiscovery; +import org.bitcoinj.net.discovery.MultiplexingDiscovery; +import org.bitcoinj.net.discovery.PeerDiscovery; +import org.bitcoinj.net.discovery.PeerDiscoveryException; +import org.bitcoinj.utils.ContextPropagatingThreadFactory; +import org.bitcoinj.utils.DaemonThreadFactory; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import java.net.InetSocketAddress; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +import lombok.extern.slf4j.Slf4j; + +/** + *

Supports peer discovery through DNS over Socks5 proxy with RESOLVE DNS extension.

+ *

+ * (As of this writing, only Tor is known to support the RESOLVE DNS extension.) + *

+ *

Failure to resolve individual host names will not cause an Exception to be thrown. + * However, if all hosts passed fail to resolve a PeerDiscoveryException will be thrown during getPeers(). + *

+ *

+ *

DNS seeds do not attempt to enumerate every peer on the network. {@link DnsDiscovery#getPeers(long, java.util.concurrent.TimeUnit)} + * will return up to 30 random peers from the set of those returned within the timeout period. If you want more peers + * to connect to, you need to discover them via other means (like addr broadcasts).

+ */ +@Slf4j +public class Socks5DnsDiscovery extends MultiplexingDiscovery { + + /** + * Supports finding peers through DNS A records. Community run DNS entry points will be used. + * + * @param netParams Network parameters to be used for port information. + */ + public Socks5DnsDiscovery(Socks5Proxy proxy, NetworkParameters netParams) { + this(proxy, netParams.getDnsSeeds(), netParams); + } + + /** + * Supports finding peers through DNS A records. + * + * @param dnsSeeds Host names to be examined for seed addresses. + * @param params Network parameters to be used for port information. + */ + public Socks5DnsDiscovery(Socks5Proxy proxy, String[] dnsSeeds, NetworkParameters params) { + super(params, buildDiscoveries(proxy, params, dnsSeeds)); + } + + private static List buildDiscoveries(Socks5Proxy proxy, NetworkParameters params, String[] seeds) { + List discoveries = new ArrayList<>(seeds.length); + for (String seed : seeds) + discoveries.add(new Socks5DnsSeedDiscovery(proxy, params, seed)); + + return discoveries; + } + + @Override + protected ExecutorService createExecutor() { + // Attempted workaround for reported bugs on Linux in which gethostbyname does not appear to be properly + // thread safe and can cause segfaults on some libc versions. + if (Utilities.isLinux()) + return Executors.newSingleThreadExecutor(new ContextPropagatingThreadFactory("DNS seed lookups")); + else + return Executors.newFixedThreadPool(seeds.size(), new DaemonThreadFactory("DNS seed lookups")); + } + + /** + * Implements discovery from a single DNS host over Socks5 proxy with RESOLVE DNS extension. + * With our DnsLookupTor (used to not leak at DNS lookup) version we only get one address instead a list of addresses like in DnsDiscovery. + * We get repeated the call until we have received enough addresses. + */ + public static class Socks5DnsSeedDiscovery implements PeerDiscovery { + private final String hostname; + private final NetworkParameters params; + private final Socks5Proxy proxy; + + public Socks5DnsSeedDiscovery(Socks5Proxy proxy, NetworkParameters params, String hostname) { + this.hostname = hostname; + this.params = params; + this.proxy = proxy; + } + + /** + * Returns peer addresses. The actual DNS lookup is performed here. + */ + @Override + public InetSocketAddress[] getPeers(long services, long timeoutValue, TimeUnit timeoutUnit) throws PeerDiscoveryException { + if (services != 0) + throw new PeerDiscoveryException("DNS seeds cannot filter by services: " + services); + try { + InetSocketAddress addr = new InetSocketAddress(DnsLookupTor.lookup(proxy, hostname), params.getPort()); + return new InetSocketAddress[]{addr}; + } catch (Exception e) { + throw new PeerDiscoveryException(e); + } + } + + @Override + public void shutdown() { + } + + @Override + public String toString() { + return hostname; + } + } +} diff --git a/p2p/src/main/java/bisq/network/Socks5MultiDiscovery.java b/p2p/src/main/java/bisq/network/Socks5MultiDiscovery.java new file mode 100644 index 00000000000..2d2c2c5c25c --- /dev/null +++ b/p2p/src/main/java/bisq/network/Socks5MultiDiscovery.java @@ -0,0 +1,91 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +import org.bitcoinj.core.NetworkParameters; +import org.bitcoinj.net.discovery.PeerDiscovery; +import org.bitcoinj.net.discovery.PeerDiscoveryException; +import org.bitcoinj.net.discovery.SeedPeers; +import org.bitcoinj.params.MainNetParams; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import java.net.InetSocketAddress; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.extern.slf4j.Slf4j; + +/** + * This class implements various types of discovery over Socks5, + * which can be enabled/disabled via constructor flag. + */ +@Slf4j +public class Socks5MultiDiscovery implements PeerDiscovery { + + public static final int SOCKS5_DISCOVER_ADDR = 0x0001; + public static final int SOCKS5_DISCOVER_DNS = 0x0010; + public static final int SOCKS5_DISCOVER_ONION = 0x0100; + public static final int SOCKS5_DISCOVER_ALL = 0x1111; + + private final ArrayList discoveryList = new ArrayList<>(); + + /** + * Supports finding peers by hostname over a socks5 proxy. + * + * @param proxy proxy the socks5 proxy to connect over. + * @param params param to be used for seed and port information. + * @param mode specify discovery mode, OR'd together. one or more of: + * SOCKS5_DISCOVER_ADDR + * SOCKS5_DISCOVER_DNS + * SOCKS5_DISCOVER_ONION + * SOCKS5_DISCOVER_ALL + */ + public Socks5MultiDiscovery(Socks5Proxy proxy, NetworkParameters params, int mode) { + if ((mode & SOCKS5_DISCOVER_ONION) != 0) + discoveryList.add(new Socks5SeedOnionDiscovery(proxy, params)); + + // Testnet has no addrSeeds so SeedPeers is not supported (would throw a nullPointer) + if ((mode & SOCKS5_DISCOVER_ADDR) != 0 && params == MainNetParams.get()) + // note: SeedPeers does not perform any network operations, so does not use proxy. + discoveryList.add(new SeedPeers(params)); + + if ((mode & SOCKS5_DISCOVER_DNS) != 0) + discoveryList.add(new Socks5DnsDiscovery(proxy, params)); + } + + /** + * Returns an array containing all the Bitcoin nodes that have been discovered. + */ + @Override + public InetSocketAddress[] getPeers(long services, long timeoutValue, TimeUnit timeoutUnit) throws PeerDiscoveryException { + ArrayList list = new ArrayList<>(); + for (PeerDiscovery discovery : discoveryList) { + list.addAll(Arrays.asList(discovery.getPeers(services, timeoutValue, timeoutUnit))); + } + + return list.toArray(new InetSocketAddress[list.size()]); + } + + @Override + public void shutdown() { + //TODO should we add a DnsLookupTor.shutdown() ? + } +} diff --git a/p2p/src/main/java/bisq/network/Socks5ProxyProvider.java b/p2p/src/main/java/bisq/network/Socks5ProxyProvider.java new file mode 100644 index 00000000000..e7587e182ad --- /dev/null +++ b/p2p/src/main/java/bisq/network/Socks5ProxyProvider.java @@ -0,0 +1,112 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import com.google.inject.Inject; + +import javax.inject.Named; + +import java.net.UnknownHostException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.Nullable; + +/** + * Provides Socks5Proxies for the bitcoin network and http requests + *

+ * By default there is only used the bisq internal Tor proxy, which is used for the P2P network, Btc network + * (if Tor for btc is enabled) and http requests (if Tor for http requests is enabled). + * If the user provides a socks5ProxyHttpAddress it will be used for http requests. + * If the user provides a socks5ProxyBtcAddress, this will be used for the btc network. + * If socks5ProxyBtcAddress is present but no socks5ProxyHttpAddress the socks5ProxyBtcAddress will be used for http + * requests. + * If no socks5ProxyBtcAddress and no socks5ProxyHttpAddress is defined (default) we use socks5ProxyInternal. + */ +public class Socks5ProxyProvider { + private static final Logger log = LoggerFactory.getLogger(Socks5ProxyProvider.class); + + @Nullable + private Socks5Proxy socks5ProxyInternal; + + // proxy used for btc network + @Nullable + private final Socks5Proxy socks5ProxyBtc; + + // if defined proxy used for http requests + @Nullable + private final Socks5Proxy socks5ProxyHttp; + + @Inject + public Socks5ProxyProvider(@Named(NetworkOptionKeys.SOCKS_5_PROXY_BTC_ADDRESS) String socks5ProxyBtcAddress, + @Named(NetworkOptionKeys.SOCKS_5_PROXY_HTTP_ADDRESS) String socks5ProxyHttpAddress) { + socks5ProxyBtc = getProxyFromAddress(socks5ProxyBtcAddress); + socks5ProxyHttp = getProxyFromAddress(socks5ProxyHttpAddress); + } + + @Nullable + public Socks5Proxy getSocks5Proxy() { + if (socks5ProxyBtc != null) + return socks5ProxyBtc; + else if (socks5ProxyInternal != null) + return socks5ProxyInternal; + else + return null; + } + + @Nullable + public Socks5Proxy getSocks5ProxyBtc() { + return socks5ProxyBtc; + } + + @Nullable + public Socks5Proxy getSocks5ProxyHttp() { + return socks5ProxyHttp; + } + + @Nullable + public Socks5Proxy getSocks5ProxyInternal() { + return socks5ProxyInternal; + } + + public void setSocks5ProxyInternal(@Nullable Socks5Proxy bisqSocks5Proxy) { + this.socks5ProxyInternal = bisqSocks5Proxy; + } + + @Nullable + private Socks5Proxy getProxyFromAddress(String socks5ProxyAddress) { + if (!socks5ProxyAddress.isEmpty()) { + String[] tokens = socks5ProxyAddress.split(":"); + if (tokens.length == 2) { + try { + return new Socks5Proxy(tokens[0], Integer.valueOf(tokens[1])); + } catch (UnknownHostException e) { + log.error(e.getMessage()); + e.printStackTrace(); + } + } else { + log.error("Incorrect format for socks5ProxyAddress. Should be: host:port.\n" + + "socks5ProxyAddress=" + socks5ProxyAddress); + } + } + return null; + } +} diff --git a/p2p/src/main/java/bisq/network/Socks5SeedOnionDiscovery.java b/p2p/src/main/java/bisq/network/Socks5SeedOnionDiscovery.java new file mode 100644 index 00000000000..b9c0f9f2d93 --- /dev/null +++ b/p2p/src/main/java/bisq/network/Socks5SeedOnionDiscovery.java @@ -0,0 +1,201 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network; + +import org.libdohj.params.AbstractLitecoinParams; + +import org.bitcoinj.core.NetworkParameters; +import org.bitcoinj.net.discovery.PeerDiscovery; +import org.bitcoinj.net.discovery.PeerDiscoveryException; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import java.net.InetSocketAddress; + +import java.util.concurrent.TimeUnit; + +/** + * Socks5SeedOnionDiscovery provides a list of known Bitcoin .onion seeds. + * These are nodes running as hidden services on the Tor network. + */ +public class Socks5SeedOnionDiscovery implements PeerDiscovery { + private InetSocketAddress[] seedAddrs; + + /** + * Supports finding peers by hostname over a socks5 proxy. + * + * @param proxy proxy the socks5 proxy to connect over. + * @param params param to be used for seed and port information. + */ + public Socks5SeedOnionDiscovery(@SuppressWarnings("UnusedParameters") Socks5Proxy proxy, NetworkParameters params) { + // We do this because NetworkParameters does not contain any .onion + // seeds. Perhaps someday... + String[] seedAddresses = {}; + switch (params.getId()) { + case NetworkParameters.ID_MAINNET: + seedAddresses = mainNetSeeds(); + break; + case NetworkParameters.ID_TESTNET: + seedAddresses = testNet3Seeds(); + break; + case AbstractLitecoinParams.ID_LITE_MAINNET: + seedAddresses = LitecoinMainNetSeeds(); + break; + case AbstractLitecoinParams.ID_LITE_TESTNET: + seedAddresses = LitecoinTestNet4Seeds(); + break; + } + + this.seedAddrs = convertAddrsString(seedAddresses, params.getPort()); + } + + /** + * returns .onion nodes available on mainnet + */ + private String[] mainNetSeeds() { + // List copied from bitcoin-core on 2017-11-03 + // https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/seeds/nodes_main.txt + + return new String[]{ + "226eupdnaouu4h2v.onion", + "2frgxpe5mheghyom.onion", + "3ihjnsvwc3x6dp2o.onion", + "3w77hrilg6q64opl.onion", + "4ls4o6iszcd7mkfw.onion", + "4p3abjxqppzxi7qi.onion", + "546esc6botbjfbxb.onion", + "5msftytzlsskr4ut.onion", + "5ty6rxpgrkmdnk4a.onion", + "akmqyuidrf56ip26.onion", + "alhlegtjkdmbqsvt.onion", + "bafk5ioatlgt7dgl.onion", + "bup5n5e3kurvjzf3.onion", + "cjygd7pu5lqkky5j.onion", + "cyvpgt25274i5b7c.onion", + "dekj4wacywpqsad3.onion", + "dqpxwlpnv3z3hznl.onion", + "drarzpycbtxwbcld.onion", + "drp4pvejybx2ejdr.onion", + "dxkmtmwiq7ddtgul.onion", + "e6j57zkyibu2smad.onion", + "ejcqevujcqltqn7d.onion", + "eqgbt2ghfvsshbvo.onion", + "fgizgkdnndilo6ka.onion", + "fqxup4oev33eeidg.onion", + "gb5ypqt63du3wfhn.onion", + "ggdy2pb2avlbtjwq.onion", + "hahhloezyfqh3hci.onion", + "ihdv6bzz2gx72fs7.onion", + "in7r5ieo7ogkxbne.onion", + "kvd44sw7skb5folw.onion", + "mn744hbioayn3ojs.onion", + "ms4ntrrisfxzpvmy.onion", + "n5lqwpjabqg62ihx.onion", + "o4sl5na6jeqgi3l6.onion", + "omjv24nbck4k5ud6.onion", + "po3j2hfkmf7sh36o.onion", + "psco6bxjewljrczx.onion", + "qi5yr6lvlckzffor.onion", + "qlv6py6hdtzipntn.onion", + "qynmpgdbp23xyfnj.onion", + "rhtawcs7xak4gi3t.onion", + "rjacws757ai66lre.onion", + "rjlnp3hwvrsmap6e.onion", + "rkdvqcrtfv6yt4oy.onion", + "rlafimkctvz63llg.onion", + "rlj4ppok4dnsdu5n.onion", + "seoskudzk6vn6mqz.onion", + "tayqi57tfiy7x3vk.onion", + "tchop676j6yppwwm.onion", + "trrtyp3sirmwttyu.onion", + "tx4zd7d5exonnblh.onion", + "u4ecb7txxi6l3gix.onion", + "umcxcmfycvejw264.onion", + "v7xqd42ocemalurd.onion", + "vb267mt3lnwfdmdb.onion", + "vev3n5fxfrtqj6e5.onion", + "visevrizz3quyagj.onion", + "vpg6p5e5ln33dqtp.onion", + "vr2ruasinafoy3fl.onion", + "x6pthvd5x6abyfo7.onion", + "xbwbzrspvav7u5ie.onion", + "xfcevnql2chnawko.onion", + "ycivnom44dmxx4ob.onion", + "yzdvlv5daitafekn.onion" + }; + } + + /** + * returns .onion nodes available on testnet3 + */ + private String[] testNet3Seeds() { + // this list copied from bitcoin-core on 2017-01-19 + // https://github.com/bitcoin/bitcoin/blob/57b34599b2deb179ff1bd97ffeab91ec9f904d85/contrib/seeds/nodes_test.txt + return new String[]{ + "thfsmmn2jbitcoin.onion", + "it2pj4f7657g3rhi.onion", + "nkf5e6b7pl4jfd4a.onion", + "4zhkir2ofl7orfom.onion", + "t6xj6wilh4ytvcs7.onion", + "i6y6ivorwakd7nw3.onion", + "ubqj4rsu3nqtxmtp.onion" + }; + } + + /** + * returns .onion nodes available on mainnet + */ + private String[] LitecoinMainNetSeeds() { + return new String[]{ + }; + } + + /** + * returns .onion nodes available on testnet3 + */ + private String[] LitecoinTestNet4Seeds() { + return new String[]{ + }; + } + + /** + * Returns an array containing all the Bitcoin nodes within the list. + */ + @Override + public InetSocketAddress[] getPeers(long services, long timeoutValue, TimeUnit timeoutUnit) throws PeerDiscoveryException { + if (services != 0) + throw new PeerDiscoveryException("DNS seeds cannot filter by services: " + services); + return seedAddrs; + } + + /** + * Converts an array of hostnames to array of unresolved InetSocketAddress + */ + private InetSocketAddress[] convertAddrsString(String[] addrs, int port) { + InetSocketAddress[] list = new InetSocketAddress[addrs.length]; + for (int i = 0; i < addrs.length; i++) { + list[i] = InetSocketAddress.createUnresolved(addrs[i], port); + } + return list; + } + + @Override + public void shutdown() { + //TODO should we add a DnsLookupTor.shutdown() ? + } +} diff --git a/p2p/src/main/java/bisq/network/crypto/DecryptedDataTuple.java b/p2p/src/main/java/bisq/network/crypto/DecryptedDataTuple.java new file mode 100644 index 00000000000..7cd4b613e85 --- /dev/null +++ b/p2p/src/main/java/bisq/network/crypto/DecryptedDataTuple.java @@ -0,0 +1,37 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.crypto; + +import bisq.common.proto.network.NetworkEnvelope; + +import java.security.PublicKey; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode +@Value +public final class DecryptedDataTuple { + private final NetworkEnvelope networkEnvelope; + private final PublicKey sigPublicKey; + + public DecryptedDataTuple(NetworkEnvelope networkEnvelope, PublicKey sigPublicKey) { + this.networkEnvelope = networkEnvelope; + this.sigPublicKey = sigPublicKey; + } +} diff --git a/p2p/src/main/java/bisq/network/crypto/EncryptionService.java b/p2p/src/main/java/bisq/network/crypto/EncryptionService.java new file mode 100644 index 00000000000..206354d9491 --- /dev/null +++ b/p2p/src/main/java/bisq/network/crypto/EncryptionService.java @@ -0,0 +1,128 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.crypto; + +import bisq.network.p2p.DecryptedMessageWithPubKey; + +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.Encryption; +import bisq.common.crypto.Hash; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.PubKeyRing; +import bisq.common.crypto.SealedAndSigned; +import bisq.common.crypto.Sig; +import bisq.common.proto.ProtobufferException; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.InvalidProtocolBufferException; + +import javax.inject.Inject; + +import javax.crypto.SecretKey; + +import java.security.KeyPair; +import java.security.PrivateKey; +import java.security.PublicKey; + +import lombok.extern.slf4j.Slf4j; + +import static bisq.common.crypto.Encryption.decryptSecretKey; + +@Slf4j +public class EncryptionService { + private final KeyRing keyRing; + private final NetworkProtoResolver networkProtoResolver; + + @Inject + public EncryptionService(KeyRing keyRing, NetworkProtoResolver networkProtoResolver) { + this.keyRing = keyRing; + this.networkProtoResolver = networkProtoResolver; + } + + public SealedAndSigned encryptAndSign(PubKeyRing pubKeyRing, NetworkEnvelope networkEnvelope) throws CryptoException { + return encryptHybridWithSignature(networkEnvelope, keyRing.getSignatureKeyPair(), pubKeyRing.getEncryptionPubKey()); + } + + /** + * @param sealedAndSigned The sealedAndSigned object. + * @param privateKey The private key for decryption + * @return A DecryptedPayloadWithPubKey object. + * @throws CryptoException + */ + public DecryptedDataTuple decryptHybridWithSignature(SealedAndSigned sealedAndSigned, PrivateKey privateKey) throws + CryptoException, ProtobufferException { + SecretKey secretKey = decryptSecretKey(sealedAndSigned.getEncryptedSecretKey(), privateKey); + boolean isValid = Sig.verify(sealedAndSigned.getSigPublicKey(), + Hash.getSha256Hash(sealedAndSigned.getEncryptedPayloadWithHmac()), + sealedAndSigned.getSignature()); + if (!isValid) + throw new CryptoException("Signature verification failed."); + + try { + final byte[] bytes = Encryption.decryptPayloadWithHmac(sealedAndSigned.getEncryptedPayloadWithHmac(), secretKey); + final PB.NetworkEnvelope envelope = PB.NetworkEnvelope.parseFrom(bytes); + NetworkEnvelope decryptedPayload = networkProtoResolver.fromProto(envelope); + return new DecryptedDataTuple(decryptedPayload, sealedAndSigned.getSigPublicKey()); + } catch (InvalidProtocolBufferException e) { + throw new ProtobufferException("Unable to parse protobuffer message.", e); + } + } + + public DecryptedMessageWithPubKey decryptAndVerify(SealedAndSigned sealedAndSigned) throws + CryptoException, ProtobufferException { + DecryptedDataTuple decryptedDataTuple = decryptHybridWithSignature(sealedAndSigned, + keyRing.getEncryptionKeyPair().getPrivate()); + return new DecryptedMessageWithPubKey(decryptedDataTuple.getNetworkEnvelope(), + decryptedDataTuple.getSigPublicKey()); + } + + private static byte[] encryptPayloadWithHmac(NetworkEnvelope networkEnvelope, SecretKey secretKey) throws CryptoException { + return Encryption.encryptPayloadWithHmac(networkEnvelope.toProtoNetworkEnvelope().toByteArray(), secretKey); + } + + /** + * @param payload The data to encrypt. + * @param signatureKeyPair The key pair for signing. + * @param encryptionPublicKey The public key used for encryption. + * @return A SealedAndSigned object. + * @throws CryptoException + */ + public static SealedAndSigned encryptHybridWithSignature(NetworkEnvelope payload, KeyPair signatureKeyPair, + PublicKey encryptionPublicKey) + throws CryptoException { + // Create a symmetric key + SecretKey secretKey = Encryption.generateSecretKey(256); + + // Encrypt secretKey with receiver's publicKey + byte[] encryptedSecretKey = Encryption.encryptSecretKey(secretKey, encryptionPublicKey); + + // Encrypt with sym key payload with appended hmac + byte[] encryptedPayloadWithHmac = encryptPayloadWithHmac(payload, secretKey); + + // sign hash of encryptedPayloadWithHmac + byte[] hash = Hash.getSha256Hash(encryptedPayloadWithHmac); + byte[] signature = Sig.sign(signatureKeyPair.getPrivate(), hash); + + // Pack all together + return new SealedAndSigned(encryptedSecretKey, encryptedPayloadWithHmac, signature, signatureKeyPair.getPublic()); + } +} + diff --git a/p2p/src/main/java/bisq/network/crypto/EncryptionServiceModule.java b/p2p/src/main/java/bisq/network/crypto/EncryptionServiceModule.java new file mode 100644 index 00000000000..0204443bbd1 --- /dev/null +++ b/p2p/src/main/java/bisq/network/crypto/EncryptionServiceModule.java @@ -0,0 +1,36 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.crypto; + +import bisq.common.app.AppModule; + +import org.springframework.core.env.Environment; + +import com.google.inject.Singleton; + +public class EncryptionServiceModule extends AppModule { + + public EncryptionServiceModule(Environment environment) { + super(environment); + } + + @Override + protected void configure() { + bind(EncryptionService.class).in(Singleton.class); + } +} diff --git a/p2p/src/main/java/bisq/network/http/FakeDnsResolver.java b/p2p/src/main/java/bisq/network/http/FakeDnsResolver.java new file mode 100644 index 00000000000..8c0613b73bc --- /dev/null +++ b/p2p/src/main/java/bisq/network/http/FakeDnsResolver.java @@ -0,0 +1,33 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.http; + +import org.apache.http.conn.DnsResolver; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +// This class is adapted from +// http://stackoverflow.com/a/25203021/5616248 +class FakeDnsResolver implements DnsResolver { + @Override + public InetAddress[] resolve(String host) throws UnknownHostException { + // Return some fake DNS record for every request, we won't be using it + return new InetAddress[]{InetAddress.getByAddress(new byte[]{1, 1, 1, 1})}; + } +} diff --git a/p2p/src/main/java/bisq/network/http/HttpClient.java b/p2p/src/main/java/bisq/network/http/HttpClient.java new file mode 100644 index 00000000000..3740a0977f0 --- /dev/null +++ b/p2p/src/main/java/bisq/network/http/HttpClient.java @@ -0,0 +1,207 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.http; + +import bisq.network.Socks5ProxyProvider; + +import bisq.common.app.Version; + +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.ssl.SSLContexts; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import javax.inject.Inject; + +import java.net.HttpURLConnection; +import java.net.InetSocketAddress; +import java.net.URL; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +import java.util.UUID; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkNotNull; + +// TODO close connection if failing +@Slf4j +public class HttpClient { + @Nullable + private Socks5ProxyProvider socks5ProxyProvider; + @Getter + private String baseUrl; + private boolean ignoreSocks5Proxy; + private final String uid; + + @Inject + public HttpClient(@Nullable Socks5ProxyProvider socks5ProxyProvider) { + this.socks5ProxyProvider = socks5ProxyProvider; + uid = UUID.randomUUID().toString(); + } + + public HttpClient(String baseUrl) { + this.baseUrl = baseUrl; + uid = UUID.randomUUID().toString(); + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public void setIgnoreSocks5Proxy(boolean ignoreSocks5Proxy) { + this.ignoreSocks5Proxy = ignoreSocks5Proxy; + } + + public String requestWithGET(String param, @Nullable String headerKey, @Nullable String headerValue) throws IOException { + checkNotNull(baseUrl, "baseUrl must be set before calling requestWithGET"); + + Socks5Proxy socks5Proxy = null; + if (socks5ProxyProvider != null) { + // We use the custom socks5ProxyHttp. If not set we request socks5ProxyProvider.getSocks5ProxyBtc() + // which delivers the btc proxy if set, otherwise the internal proxy. + socks5Proxy = socks5ProxyProvider.getSocks5ProxyHttp(); + if (socks5Proxy == null) + socks5Proxy = socks5ProxyProvider.getSocks5Proxy(); + } + if (ignoreSocks5Proxy || socks5Proxy == null || baseUrl.contains("localhost")) { + log.debug("Use clear net for HttpClient. socks5Proxy={}, ignoreSocks5Proxy={}, baseUrl={}", + socks5Proxy, ignoreSocks5Proxy, baseUrl); + return requestWithGETNoProxy(param, headerKey, headerValue); + } else { + log.debug("Use socks5Proxy for HttpClient: " + socks5Proxy); + return requestWithGETProxy(param, socks5Proxy, headerKey, headerValue); + } + } + + /** + * Make an HTTP Get request directly (not routed over socks5 proxy). + */ + public String requestWithGETNoProxy(String param, @Nullable String headerKey, @Nullable String headerValue) throws IOException { + HttpURLConnection connection = null; + log.debug("Executing HTTP request " + baseUrl + param + " proxy: none."); + URL url = new URL(baseUrl + param); + try { + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(10_000); + connection.setReadTimeout(10_000); + connection.setRequestProperty("User-Agent", "bisq/" + Version.VERSION); + if (headerKey != null && headerValue != null) + connection.setRequestProperty(headerKey, headerValue); + + if (connection.getResponseCode() == 200) { + return convertInputStreamToString(connection.getInputStream()); + } else { + String error = convertInputStreamToString(connection.getErrorStream()); + connection.getErrorStream().close(); + throw new HttpException(error); + } + } catch (Throwable t) { + final String message = "Error at requestWithGETNoProxy with URL: " + (baseUrl + param) + ". Throwable=" + t.getMessage(); + log.error(message); + throw new IOException(message); + } finally { + try { + if (connection != null) + connection.getInputStream().close(); + } catch (Throwable ignore) { + } + } + } + + public String getUid() { + return uid; + } + + + /** + * Make an HTTP Get request routed over socks5 proxy. + */ + private String requestWithGETProxy(String param, Socks5Proxy socks5Proxy, @Nullable String headerKey, @Nullable String headerValue) throws IOException { + log.debug("requestWithGETProxy param=" + param); + // This code is adapted from: + // http://stackoverflow.com/a/25203021/5616248 + + // Register our own SocketFactories to override createSocket() and connectSocket(). + // connectSocket does NOT resolve hostname before passing it to proxy. + Registry reg = RegistryBuilder.create() + .register("http", new SocksConnectionSocketFactory()) + .register("https", new SocksSSLConnectionSocketFactory(SSLContexts.createSystemDefault())).build(); + + // Use FakeDNSResolver if not resolving DNS locally. + // This prevents a local DNS lookup (which would be ignored anyway) + PoolingHttpClientConnectionManager cm = socks5Proxy.resolveAddrLocally() ? + new PoolingHttpClientConnectionManager(reg) : + new PoolingHttpClientConnectionManager(reg, new FakeDnsResolver()); + try (CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(cm).build()) { + InetSocketAddress socksAddress = new InetSocketAddress(socks5Proxy.getInetAddress(), socks5Proxy.getPort()); + + // remove me: Use this to test with system-wide Tor proxy, or change port for another proxy. + // InetSocketAddress socksAddress = new InetSocketAddress("127.0.0.1", 9050); + + HttpClientContext context = HttpClientContext.create(); + context.setAttribute("socks.address", socksAddress); + + HttpGet request = new HttpGet(baseUrl + param); + if (headerKey != null && headerValue != null) + request.setHeader(headerKey, headerValue); + + log.debug("Executing request " + request + " proxy: " + socksAddress); + try (CloseableHttpResponse response = httpclient.execute(request, context)) { + return convertInputStreamToString(response.getEntity().getContent()); + } + } catch (Throwable t) { + throw new IOException("Error at requestWithGETProxy with URL: " + (baseUrl + param) + ". Throwable=" + t.getMessage()); + } + } + + private String convertInputStreamToString(InputStream inputStream) throws IOException { + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + StringBuilder stringBuilder = new StringBuilder(); + String line; + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + } + return stringBuilder.toString(); + } + + @Override + public String toString() { + return "HttpClient{" + + "socks5ProxyProvider=" + socks5ProxyProvider + + ", baseUrl='" + baseUrl + '\'' + + ", ignoreSocks5Proxy=" + ignoreSocks5Proxy + + '}'; + } +} diff --git a/p2p/src/main/java/bisq/network/http/HttpException.java b/p2p/src/main/java/bisq/network/http/HttpException.java new file mode 100644 index 00000000000..9432a953933 --- /dev/null +++ b/p2p/src/main/java/bisq/network/http/HttpException.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.http; + +public class HttpException extends Exception { + public HttpException(String message) { + super(message); + } +} diff --git a/p2p/src/main/java/bisq/network/http/SocksConnectionSocketFactory.java b/p2p/src/main/java/bisq/network/http/SocksConnectionSocketFactory.java new file mode 100644 index 00000000000..8238daa31f2 --- /dev/null +++ b/p2p/src/main/java/bisq/network/http/SocksConnectionSocketFactory.java @@ -0,0 +1,57 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.http; + +import org.apache.http.HttpHost; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.protocol.HttpContext; + +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.Socket; + +import java.io.IOException; + +// This class is adapted from +// http://stackoverflow.com/a/25203021/5616248 +// +// This class routes connections over Socks, and avoids resolving hostnames locally. +class SocksConnectionSocketFactory extends PlainConnectionSocketFactory { + + /** + * creates an unconnected Socks Proxy socket + */ + @Override + public Socket createSocket(final HttpContext context) throws IOException { + InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); + Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); + return new Socket(proxy); + } + + /** + * connects a Socks Proxy socket and passes hostname to proxy without resolving it locally. + */ + @Override + public Socket connectSocket(int connectTimeout, Socket socket, HttpHost host, InetSocketAddress remoteAddress, + InetSocketAddress localAddress, HttpContext context) throws IOException { + // Convert address to unresolved + InetSocketAddress unresolvedRemote = InetSocketAddress + .createUnresolved(host.getHostName(), remoteAddress.getPort()); + return super.connectSocket(connectTimeout, socket, host, unresolvedRemote, localAddress, context); + } +} diff --git a/p2p/src/main/java/bisq/network/http/SocksSSLConnectionSocketFactory.java b/p2p/src/main/java/bisq/network/http/SocksSSLConnectionSocketFactory.java new file mode 100644 index 00000000000..a1456624faf --- /dev/null +++ b/p2p/src/main/java/bisq/network/http/SocksSSLConnectionSocketFactory.java @@ -0,0 +1,69 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.http; + +import org.apache.http.HttpHost; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.protocol.HttpContext; + +import javax.net.ssl.SSLContext; + +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.Socket; + +import java.io.IOException; + +// This class is adapted from +// http://stackoverflow.com/a/25203021/5616248 +// +// This class routes connections over Socks, and avoids resolving hostnames locally. +class SocksSSLConnectionSocketFactory extends SSLConnectionSocketFactory { + + public SocksSSLConnectionSocketFactory(final SSLContext sslContext) { + + // TODO check alternative to deprecated call + // Only allow connection's to site's with valid certs. + super(sslContext, STRICT_HOSTNAME_VERIFIER); + + // Or to allow "insecure" (eg self-signed certs) + // super(sslContext, ALLOW_ALL_HOSTNAME_VERIFIER); + } + + /** + * creates an unconnected Socks Proxy socket + */ + @Override + public Socket createSocket(final HttpContext context) throws IOException { + InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); + Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); + return new Socket(proxy); + } + + /** + * connects a Socks Proxy socket and passes hostname to proxy without resolving it locally. + */ + @Override + public Socket connectSocket(int connectTimeout, Socket socket, HttpHost host, InetSocketAddress remoteAddress, + InetSocketAddress localAddress, HttpContext context) throws IOException { + // Convert address to unresolved + InetSocketAddress unresolvedRemote = InetSocketAddress + .createUnresolved(host.getHostName(), remoteAddress.getPort()); + return super.connectSocket(connectTimeout, socket, host, unresolvedRemote, localAddress, context); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/AckMessage.java b/p2p/src/main/java/bisq/network/p2p/AckMessage.java new file mode 100644 index 00000000000..9e4f5db79c5 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/AckMessage.java @@ -0,0 +1,180 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; +import bisq.network.p2p.storage.payload.ExpirablePayload; + +import bisq.common.app.Capabilities; +import bisq.common.app.Version; +import bisq.common.proto.ProtoUtil; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.persistable.PersistablePayload; + +import io.bisq.generated.protobuffer.PB; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import lombok.EqualsAndHashCode; +import lombok.Value; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +// We exclude uid from hashcode and equals to detect duplicate entries of the same AckMessage +@EqualsAndHashCode(callSuper = true, exclude = {"uid"}) +@Value +@Slf4j +public final class AckMessage extends NetworkEnvelope implements MailboxMessage, PersistablePayload, + ExpirablePayload, CapabilityRequiringPayload { + + private final String uid; + private final NodeAddress senderNodeAddress; + private final AckMessageSourceType sourceType; + private final String sourceMsgClassName; + @Nullable + private final String sourceUid; + private final String sourceId; + private final boolean success; + @Nullable + private final String errorMessage; + + /** + * + * @param senderNodeAddress Address of sender + * @param sourceType Type of source e.g. TradeMessage, DisputeMessage,... + * @param sourceMsgClassName Class name of source msg + * @param sourceUid Optional Uid of source (TradeMessage). Can be null if we receive trades/offers from old clients + * @param sourceId Id of source (tradeId, disputeId) + * @param success True if source message was processed successfully + * @param errorMessage Optional error message if source message processing failed + */ + public AckMessage(NodeAddress senderNodeAddress, + AckMessageSourceType sourceType, + String sourceMsgClassName, + String sourceUid, + String sourceId, + boolean success, + String errorMessage) { + this(UUID.randomUUID().toString(), + senderNodeAddress, + sourceType, + sourceMsgClassName, + sourceUid, + sourceId, + success, + errorMessage, + Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private AckMessage(String uid, + NodeAddress senderNodeAddress, + AckMessageSourceType sourceType, + String sourceMsgClassName, + @Nullable String sourceUid, + String sourceId, + boolean success, + @Nullable String errorMessage, + int messageVersion) { + super(messageVersion); + this.uid = uid; + this.senderNodeAddress = senderNodeAddress; + this.sourceType = sourceType; + this.sourceMsgClassName = sourceMsgClassName; + this.sourceUid = sourceUid; + this.sourceId = sourceId; + this.success = success; + this.errorMessage = errorMessage; + } + + public PB.AckMessage toProtoMessage() { + return getBuilder().build(); + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder().setAckMessage(getBuilder()).build(); + } + + public PB.AckMessage.Builder getBuilder() { + PB.AckMessage.Builder builder = PB.AckMessage.newBuilder() + .setUid(uid) + .setSenderNodeAddress(senderNodeAddress.toProtoMessage()) + .setSourceType(sourceType.name()) + .setSourceMsgClassName(sourceMsgClassName) + .setSourceId(sourceId) + .setSuccess(success); + Optional.ofNullable(sourceUid).ifPresent(builder::setSourceUid); + Optional.ofNullable(errorMessage).ifPresent(builder::setErrorMessage); + return builder; + } + + public static AckMessage fromProto(PB.AckMessage proto, int messageVersion) { + AckMessageSourceType sourceType = ProtoUtil.enumFromProto(AckMessageSourceType.class, proto.getSourceType()); + return new AckMessage(proto.getUid(), + NodeAddress.fromProto(proto.getSenderNodeAddress()), + sourceType, + proto.getSourceMsgClassName(), + proto.getSourceUid().isEmpty() ? null : proto.getSourceUid(), + proto.getSourceId(), + proto.getSuccess(), + proto.getErrorMessage().isEmpty() ? null : proto.getErrorMessage(), + messageVersion); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public List getRequiredCapabilities() { + return new ArrayList<>(Collections.singletonList( + Capabilities.Capability.ACK_MSG.ordinal() + )); + } + + @Override + public long getTTL() { + return TimeUnit.DAYS.toMillis(10); + } + + @Override + public String toString() { + return "AckMessage{" + + "\n uid='" + uid + '\'' + + ",\n senderNodeAddress=" + senderNodeAddress + + ",\n sourceType=" + sourceType + + ",\n sourceMsgClassName='" + sourceMsgClassName + '\'' + + ",\n sourceUid='" + sourceUid + '\'' + + ",\n sourceId='" + sourceId + '\'' + + ",\n success=" + success + + ",\n errorMessage='" + errorMessage + '\'' + + "\n} " + super.toString(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/AckMessageSourceType.java b/p2p/src/main/java/bisq/network/p2p/AckMessageSourceType.java new file mode 100644 index 00000000000..adfddf681ee --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/AckMessageSourceType.java @@ -0,0 +1,25 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public enum AckMessageSourceType { + UNDEFINED, + OFFER_MESSAGE, + TRADE_MESSAGE, + DISPUTE_MESSAGE +} diff --git a/p2p/src/main/java/bisq/network/p2p/AnonymousMessage.java b/p2p/src/main/java/bisq/network/p2p/AnonymousMessage.java new file mode 100644 index 00000000000..67e83d3fdd4 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/AnonymousMessage.java @@ -0,0 +1,21 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface AnonymousMessage { +} diff --git a/p2p/src/main/java/bisq/network/p2p/BootstrapListener.java b/p2p/src/main/java/bisq/network/p2p/BootstrapListener.java new file mode 100644 index 00000000000..f3c161f5ba0 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/BootstrapListener.java @@ -0,0 +1,52 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + + +public abstract class BootstrapListener implements P2PServiceListener { + @Override + public void onTorNodeReady() { + } + + @Override + public void onHiddenServicePublished() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onDataReceived() { + } + + @Override + abstract public void onUpdatedDataReceived(); + + @Override + public void onRequestCustomBridges() { + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/CloseConnectionMessage.java b/p2p/src/main/java/bisq/network/p2p/CloseConnectionMessage.java new file mode 100644 index 00000000000..adaa4e15035 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/CloseConnectionMessage.java @@ -0,0 +1,59 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class CloseConnectionMessage extends NetworkEnvelope { + private final String reason; + + public CloseConnectionMessage(String reason) { + this(reason, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private CloseConnectionMessage(String reason, int messageVersion) { + super(messageVersion); + this.reason = reason; + } + + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setCloseConnectionMessage(PB.CloseConnectionMessage.newBuilder() + .setReason(reason)) + .build(); + } + + public static CloseConnectionMessage fromProto(PB.CloseConnectionMessage proto, int messageVersion) { + return new CloseConnectionMessage(proto.getReason(), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/DecryptedDirectMessageListener.java b/p2p/src/main/java/bisq/network/p2p/DecryptedDirectMessageListener.java new file mode 100644 index 00000000000..c3eb61e7b41 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/DecryptedDirectMessageListener.java @@ -0,0 +1,23 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface DecryptedDirectMessageListener { + + void onDirectMessage(DecryptedMessageWithPubKey decryptedMessageWithPubKey, @SuppressWarnings("UnusedParameters") NodeAddress peerNodeAddress); +} diff --git a/p2p/src/main/java/bisq/network/p2p/DecryptedMessageWithPubKey.java b/p2p/src/main/java/bisq/network/p2p/DecryptedMessageWithPubKey.java new file mode 100644 index 00000000000..f026a2fcd2b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/DecryptedMessageWithPubKey.java @@ -0,0 +1,35 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.common.proto.network.NetworkEnvelope; + +import java.security.PublicKey; + +import lombok.Value; + +@Value +public final class DecryptedMessageWithPubKey { + private final NetworkEnvelope networkEnvelope; + private final PublicKey signaturePubKey; + + public DecryptedMessageWithPubKey(NetworkEnvelope networkEnvelope, PublicKey signaturePubKey) { + this.networkEnvelope = networkEnvelope; + this.signaturePubKey = signaturePubKey; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/DirectMessage.java b/p2p/src/main/java/bisq/network/p2p/DirectMessage.java new file mode 100644 index 00000000000..38a46182592 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/DirectMessage.java @@ -0,0 +1,21 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface DirectMessage { +} diff --git a/p2p/src/main/java/bisq/network/p2p/ExtendedDataSizePermission.java b/p2p/src/main/java/bisq/network/p2p/ExtendedDataSizePermission.java new file mode 100644 index 00000000000..336795d9647 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/ExtendedDataSizePermission.java @@ -0,0 +1,22 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +// Market interface for messages with higher allowed data size +public interface ExtendedDataSizePermission { +} diff --git a/p2p/src/main/java/bisq/network/p2p/MailboxMessage.java b/p2p/src/main/java/bisq/network/p2p/MailboxMessage.java new file mode 100644 index 00000000000..719c33f6cb9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/MailboxMessage.java @@ -0,0 +1,23 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + + +public interface MailboxMessage extends DirectMessage, UidMessage { + NodeAddress getSenderNodeAddress(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/NetworkNodeProvider.java b/p2p/src/main/java/bisq/network/p2p/NetworkNodeProvider.java new file mode 100644 index 00000000000..53493d1e826 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/NetworkNodeProvider.java @@ -0,0 +1,55 @@ +/* + * This file is part of Bisq. + * + * bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.NetworkOptionKeys; +import bisq.network.p2p.network.BridgeAddressProvider; +import bisq.network.p2p.network.LocalhostNetworkNode; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.network.TorNetworkNode; + +import bisq.common.proto.network.NetworkProtoResolver; + +import com.google.inject.Provider; +import com.google.inject.name.Named; + +import javax.inject.Inject; + +import java.io.File; + +public class NetworkNodeProvider implements Provider { + + private final NetworkNode networkNode; + + @Inject + public NetworkNodeProvider(NetworkProtoResolver networkProtoResolver, + BridgeAddressProvider bridgeAddressProvider, + @Named(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P) boolean useLocalhostForP2P, + @Named(NetworkOptionKeys.MY_ADDRESS) String address, + @Named(NetworkOptionKeys.PORT_KEY) int port, + @Named(NetworkOptionKeys.TOR_DIR) File torDir) { + networkNode = useLocalhostForP2P ? + new LocalhostNetworkNode(address, port, networkProtoResolver) : + new TorNetworkNode(port, torDir, networkProtoResolver, bridgeAddressProvider); + } + + @Override + public NetworkNode get() { + return networkNode; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/NetworkNotReadyException.java b/p2p/src/main/java/bisq/network/p2p/NetworkNotReadyException.java new file mode 100644 index 00000000000..6d8fffb5aaf --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/NetworkNotReadyException.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public class NetworkNotReadyException extends RuntimeException { + + public NetworkNotReadyException() { + super("You must have bootstrapped before adding data to the P2P network."); + } + +} diff --git a/p2p/src/main/java/bisq/network/p2p/NodeAddress.java b/p2p/src/main/java/bisq/network/p2p/NodeAddress.java new file mode 100644 index 00000000000..30bb86c06d4 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/NodeAddress.java @@ -0,0 +1,95 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.common.consensus.UsedForTradeContractJson; +import bisq.common.crypto.Hash; +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.persistable.PersistablePayload; +import bisq.common.util.JsonExclude; + +import io.bisq.generated.protobuffer.PB; + +import java.util.regex.Pattern; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import static com.google.common.base.Preconditions.checkArgument; + +@Getter +@EqualsAndHashCode +@Slf4j +public final class NodeAddress implements PersistablePayload, NetworkPayload, UsedForTradeContractJson { + private final String hostName; + private final int port; + + @JsonExclude + private byte[] addressPrefixHash; + + public NodeAddress(String hostName, int port) { + this.hostName = hostName; + this.port = port; + } + + public NodeAddress(String fullAddress) { + final String[] split = fullAddress.split(Pattern.quote(":")); + checkArgument(split.length == 2, "fullAddress must contain ':'"); + this.hostName = split[0]; + this.port = Integer.parseInt(split[1]); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + public PB.NodeAddress toProtoMessage() { + return PB.NodeAddress.newBuilder().setHostName(hostName).setPort(port).build(); + } + + public static NodeAddress fromProto(PB.NodeAddress proto) { + return new NodeAddress(proto.getHostName(), proto.getPort()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public String getFullAddress() { + return hostName + ":" + port; + } + + public String getHostNameWithoutPostFix() { + return hostName.replace(".onion", ""); + } + + // We use just a few chars from the full address to blur the potential receiver for sent network_messages + public byte[] getAddressPrefixHash() { + if (addressPrefixHash == null) + addressPrefixHash = Hash.getSha256Hash(getFullAddress().substring(0, Math.min(2, getFullAddress().length()))); + return addressPrefixHash; + } + + @Override + public String toString() { + return getFullAddress(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/P2PModule.java b/p2p/src/main/java/bisq/network/p2p/P2PModule.java new file mode 100644 index 00000000000..42b6c6aae39 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/P2PModule.java @@ -0,0 +1,90 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.NetworkOptionKeys; +import bisq.network.Socks5ProxyProvider; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.BanList; +import bisq.network.p2p.peers.Broadcaster; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.getdata.RequestDataManager; +import bisq.network.p2p.peers.keepalive.KeepAliveManager; +import bisq.network.p2p.peers.peerexchange.PeerExchangeManager; +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService; +import bisq.network.p2p.storage.persistence.PersistableNetworkPayloadListService; +import bisq.network.p2p.storage.persistence.ProtectedDataStoreService; + +import bisq.common.app.AppModule; + +import org.springframework.core.env.Environment; + +import com.google.inject.Singleton; +import com.google.inject.name.Names; + +import java.io.File; + +import static com.google.inject.name.Names.named; + + +public class P2PModule extends AppModule { + + public P2PModule(Environment environment) { + super(environment); + } + + @Override + protected void configure() { + bind(P2PService.class).in(Singleton.class); + bind(PeerManager.class).in(Singleton.class); + bind(P2PDataStorage.class).in(Singleton.class); + bind(AppendOnlyDataStoreService.class).in(Singleton.class); + bind(ProtectedDataStoreService.class).in(Singleton.class); + bind(PersistableNetworkPayloadListService.class).in(Singleton.class); + bind(RequestDataManager.class).in(Singleton.class); + bind(PeerExchangeManager.class).in(Singleton.class); + bind(KeepAliveManager.class).in(Singleton.class); + bind(Broadcaster.class).in(Singleton.class); + bind(BanList.class).in(Singleton.class); + bind(NetworkNode.class).toProvider(NetworkNodeProvider.class).in(Singleton.class); + + bind(Socks5ProxyProvider.class).in(Singleton.class); + + Boolean useLocalhostForP2P = environment.getProperty(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P, boolean.class, false); + bind(boolean.class).annotatedWith(Names.named(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P)).toInstance(useLocalhostForP2P); + + File torDir = new File(environment.getRequiredProperty(NetworkOptionKeys.TOR_DIR)); + bind(File.class).annotatedWith(named(NetworkOptionKeys.TOR_DIR)).toInstance(torDir); + + // use a fixed port as arbitrator use that for his ID + Integer port = environment.getProperty(NetworkOptionKeys.PORT_KEY, int.class, 9999); + bind(int.class).annotatedWith(Names.named(NetworkOptionKeys.PORT_KEY)).toInstance(port); + + Integer maxConnections = environment.getProperty(NetworkOptionKeys.MAX_CONNECTIONS, int.class, P2PService.MAX_CONNECTIONS_DEFAULT); + bind(int.class).annotatedWith(Names.named(NetworkOptionKeys.MAX_CONNECTIONS)).toInstance(maxConnections); + + Integer networkId = environment.getProperty(NetworkOptionKeys.NETWORK_ID, int.class, 1); + bind(int.class).annotatedWith(Names.named(NetworkOptionKeys.NETWORK_ID)).toInstance(networkId); + bindConstant().annotatedWith(named(NetworkOptionKeys.SEED_NODES_KEY)).to(environment.getRequiredProperty(NetworkOptionKeys.SEED_NODES_KEY)); + bindConstant().annotatedWith(named(NetworkOptionKeys.MY_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.MY_ADDRESS)); + bindConstant().annotatedWith(named(NetworkOptionKeys.BAN_LIST)).to(environment.getRequiredProperty(NetworkOptionKeys.BAN_LIST)); + bindConstant().annotatedWith(named(NetworkOptionKeys.SOCKS_5_PROXY_BTC_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.SOCKS_5_PROXY_BTC_ADDRESS)); + bindConstant().annotatedWith(named(NetworkOptionKeys.SOCKS_5_PROXY_HTTP_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.SOCKS_5_PROXY_HTTP_ADDRESS)); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/P2PService.java b/p2p/src/main/java/bisq/network/p2p/P2PService.java new file mode 100644 index 00000000000..b0d7f26d9f3 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/P2PService.java @@ -0,0 +1,933 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.Socks5ProxyProvider; +import bisq.network.crypto.EncryptionService; +import bisq.network.p2p.messaging.DecryptedMailboxListener; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.network.SetupListener; +import bisq.network.p2p.peers.BroadcastHandler; +import bisq.network.p2p.peers.Broadcaster; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.getdata.RequestDataManager; +import bisq.network.p2p.peers.keepalive.KeepAliveManager; +import bisq.network.p2p.peers.peerexchange.Peer; +import bisq.network.p2p.peers.peerexchange.PeerExchangeManager; +import bisq.network.p2p.seed.SeedNodeRepository; +import bisq.network.p2p.storage.HashMapChangedListener; +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.messages.AddDataMessage; +import bisq.network.p2p.storage.messages.BroadcastMessage; +import bisq.network.p2p.storage.messages.RefreshOfferMessage; +import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; +import bisq.network.p2p.storage.payload.MailboxStoragePayload; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.PubKeyRing; +import bisq.common.proto.ProtobufferException; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.persistable.PersistedDataHost; +import bisq.common.util.Utilities; + +import com.google.inject.Inject; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import org.fxmisc.easybind.EasyBind; +import org.fxmisc.easybind.Subscription; +import org.fxmisc.easybind.monadic.MonadicBinding; + +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.ReadOnlyIntegerProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleIntegerProperty; + +import java.security.PublicKey; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import lombok.Getter; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +public class P2PService implements SetupListener, MessageListener, ConnectionListener, RequestDataManager.Listener, + HashMapChangedListener, PersistedDataHost { + private static final Logger log = LoggerFactory.getLogger(P2PService.class); + public static final int MAX_CONNECTIONS_DEFAULT = 12; + + private final SeedNodeRepository seedNodeRepository; + private final EncryptionService encryptionService; + private final KeyRing keyRing; + + private final NetworkNode networkNode; + private final PeerManager peerManager; + @Getter + private final Broadcaster broadcaster; + private final P2PDataStorage p2PDataStorage; + private final RequestDataManager requestDataManager; + private final PeerExchangeManager peerExchangeManager; + + @SuppressWarnings("FieldCanBeLocal") + private final MonadicBinding networkReadyBinding; + private final Set decryptedDirectMessageListeners = new CopyOnWriteArraySet<>(); + private final Set decryptedMailboxListeners = new CopyOnWriteArraySet<>(); + private final Set p2pServiceListeners = new CopyOnWriteArraySet<>(); + private final Map mailboxMap = new HashMap<>(); + private final Set shutDownResultHandlers = new CopyOnWriteArraySet<>(); + private final BooleanProperty hiddenServicePublished = new SimpleBooleanProperty(); + private final BooleanProperty preliminaryDataReceived = new SimpleBooleanProperty(); + private final IntegerProperty numConnectedPeers = new SimpleIntegerProperty(0); + + private volatile boolean shutDownInProgress; + private boolean shutDownComplete; + private final Subscription networkReadySubscription; + private boolean isBootstrapped; + private final KeepAliveManager keepAliveManager; + private final Socks5ProxyProvider socks5ProxyProvider; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + // Called also from SeedNodeP2PService + @Inject + public P2PService(NetworkNode networkNode, + PeerManager peerManager, + P2PDataStorage p2PDataStorage, + RequestDataManager requestDataManager, + PeerExchangeManager peerExchangeManager, + KeepAliveManager keepAliveManager, + Broadcaster broadcaster, + SeedNodeRepository seedNodeRepository, + Socks5ProxyProvider socks5ProxyProvider, + EncryptionService encryptionService, + KeyRing keyRing) { + this.networkNode = networkNode; + this.peerManager = peerManager; + this.p2PDataStorage = p2PDataStorage; + this.requestDataManager = requestDataManager; + this.peerExchangeManager = peerExchangeManager; + this.keepAliveManager = keepAliveManager; + this.broadcaster = broadcaster; + this.seedNodeRepository = seedNodeRepository; + this.socks5ProxyProvider = socks5ProxyProvider; + this.encryptionService = encryptionService; + this.keyRing = keyRing; + + this.networkNode.addConnectionListener(this); + this.networkNode.addMessageListener(this); + this.p2PDataStorage.addHashMapChangedListener(this); + this.requestDataManager.addListener(this); + + // We need to have both the initial data delivered and the hidden service published + networkReadyBinding = EasyBind.combine(hiddenServicePublished, preliminaryDataReceived, + (hiddenServicePublished, preliminaryDataReceived) + -> hiddenServicePublished && preliminaryDataReceived); + networkReadySubscription = networkReadyBinding.subscribe((observable, oldValue, newValue) -> { + if (newValue) + onNetworkReady(); + }); + } + + @Override + public void readPersisted() { + p2PDataStorage.readPersisted(); + peerManager.readPersisted(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void start(@Nullable P2PServiceListener listener) { + Log.traceCall(); + if (listener != null) + addP2PServiceListener(listener); + + networkNode.start(this); + } + + public void onAllServicesInitialized() { + Log.traceCall(); + if (networkNode.getNodeAddress() != null) { + p2PDataStorage.getMap().values().stream().forEach(protectedStorageEntry -> { + if (protectedStorageEntry instanceof ProtectedMailboxStorageEntry) + processProtectedMailboxStorageEntry((ProtectedMailboxStorageEntry) protectedStorageEntry); + }); + } else { + // If our HS is still not published + networkNode.nodeAddressProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + p2PDataStorage.getMap().values().stream().forEach(protectedStorageEntry -> { + if (protectedStorageEntry instanceof ProtectedMailboxStorageEntry) + processProtectedMailboxStorageEntry((ProtectedMailboxStorageEntry) protectedStorageEntry); + }); + } + }); + } + } + + public void shutDown(Runnable shutDownCompleteHandler) { + Log.traceCall(); + if (!shutDownInProgress) { + shutDownInProgress = true; + + shutDownResultHandlers.add(shutDownCompleteHandler); + + if (p2PDataStorage != null) + p2PDataStorage.shutDown(); + + if (peerManager != null) + peerManager.shutDown(); + + if (broadcaster != null) + broadcaster.shutDown(); + + if (requestDataManager != null) + requestDataManager.shutDown(); + + if (peerExchangeManager != null) + peerExchangeManager.shutDown(); + + if (keepAliveManager != null) + keepAliveManager.shutDown(); + + if (networkReadySubscription != null) + networkReadySubscription.unsubscribe(); + + if (networkNode != null) { + networkNode.shutDown(() -> { + shutDownResultHandlers.stream().forEach(Runnable::run); + shutDownComplete = true; + }); + } else { + shutDownResultHandlers.stream().forEach(Runnable::run); + shutDownComplete = true; + } + } else { + log.debug("shutDown already in progress"); + if (shutDownComplete) { + shutDownCompleteHandler.run(); + } else { + shutDownResultHandlers.add(shutDownCompleteHandler); + } + } + } + + + /** + * Startup sequence: + *

+ * Variant 1 (normal expected mode): + * onTorNodeReady -> requestDataManager.firstDataRequestFromAnySeedNode() + * RequestDataManager.Listener.onDataReceived && onHiddenServicePublished -> onNetworkReady() + *

+ * Variant 2 (no seed node available): + * onTorNodeReady -> requestDataManager.firstDataRequestFromAnySeedNode + * retry after 20-30 sec until we get at least one seed node connected + * RequestDataManager.Listener.onDataReceived && onHiddenServicePublished -> onNetworkReady() + */ + + /////////////////////////////////////////////////////////////////////////////////////////// + // SetupListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public void onTorNodeReady() { + Log.traceCall(); + + socks5ProxyProvider.setSocks5ProxyInternal(networkNode.getSocksProxy()); + + boolean seedNodesAvailable = requestDataManager.requestPreliminaryData(); + + keepAliveManager.start(); + p2pServiceListeners.stream().forEach(SetupListener::onTorNodeReady); + + if (!seedNodesAvailable) { + isBootstrapped = true; + p2pServiceListeners.stream().forEach(P2PServiceListener::onNoSeedNodeAvailable); + } + } + + @Override + public void onHiddenServicePublished() { + Log.traceCall(); + + checkArgument(networkNode.getNodeAddress() != null, "Address must be set when we have the hidden service ready"); + + hiddenServicePublished.set(true); + + p2pServiceListeners.stream().forEach(SetupListener::onHiddenServicePublished); + } + + @Override + public void onSetupFailed(Throwable throwable) { + Log.traceCall(); + p2pServiceListeners.stream().forEach(e -> e.onSetupFailed(throwable)); + } + + @Override + public void onRequestCustomBridges() { + p2pServiceListeners.stream().forEach(SetupListener::onRequestCustomBridges); + } + + // Called from networkReadyBinding + private void onNetworkReady() { + Log.traceCall(); + networkReadySubscription.unsubscribe(); + + Optional seedNodeOfPreliminaryDataRequest = requestDataManager.getNodeAddressOfPreliminaryDataRequest(); + checkArgument(seedNodeOfPreliminaryDataRequest.isPresent(), + "seedNodeOfPreliminaryDataRequest must be present"); + + requestDataManager.requestUpdateData(); + + // If we start up first time we don't have any peers so we need to request from seed node. + // As well it can be that the persisted peer list is outdated with dead peers. + UserThread.runAfter(() -> { + peerExchangeManager.requestReportedPeersFromSeedNodes(seedNodeOfPreliminaryDataRequest.get()); + }, 100, TimeUnit.MILLISECONDS); + + // If we have reported or persisted peers we try to connect to those + UserThread.runAfter(peerExchangeManager::initialRequestPeersFromReportedOrPersistedPeers, 300, TimeUnit.MILLISECONDS); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // RequestDataManager.Listener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onPreliminaryDataReceived() { + checkArgument(!preliminaryDataReceived.get(), "preliminaryDataReceived was already set before."); + + preliminaryDataReceived.set(true); + } + + @Override + public void onUpdatedDataReceived() { + if (!isBootstrapped) { + isBootstrapped = true; + p2pServiceListeners.stream().forEach(P2PServiceListener::onUpdatedDataReceived); + p2PDataStorage.onBootstrapComplete(); + } + } + + @Override + public void onNoSeedNodeAvailable() { + p2pServiceListeners.stream().forEach(P2PServiceListener::onNoSeedNodeAvailable); + } + + @Override + public void onNoPeersAvailable() { + p2pServiceListeners.stream().forEach(P2PServiceListener::onNoPeersAvailable); + } + + @Override + public void onDataReceived() { + p2pServiceListeners.stream().forEach(P2PServiceListener::onDataReceived); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + numConnectedPeers.set(networkNode.getAllConnections().size()); + //TODO check if still needed and why + UserThread.runAfter(() -> numConnectedPeers.set(networkNode.getAllConnections().size()), 3); + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + Log.traceCall(); + numConnectedPeers.set(networkNode.getAllConnections().size()); + //TODO check if still needed and why + UserThread.runAfter(() -> numConnectedPeers.set(networkNode.getAllConnections().size()), 3); + } + + @Override + public void onError(Throwable throwable) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof PrefixedSealedAndSignedMessage) { + Log.traceCall("\n\t" + networkEnvelope.toString() + "\n\tconnection=" + connection); + // Seed nodes don't have set the encryptionService + try { + PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = (PrefixedSealedAndSignedMessage) networkEnvelope; + if (verifyAddressPrefixHash(prefixedSealedAndSignedMessage)) { + // We set connectionType to that connection to avoid that is get closed when + // we get too many connection attempts. + connection.setPeerType(Connection.PeerType.DIRECT_MSG_PEER); + + log.debug("Try to decrypt..."); + DecryptedMessageWithPubKey decryptedMessageWithPubKey = encryptionService.decryptAndVerify( + prefixedSealedAndSignedMessage.getSealedAndSigned()); + + log.debug("\n\nDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n" + + "Decrypted SealedAndSignedMessage:\ndecryptedMsgWithPubKey={}" + + "\nDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n", decryptedMessageWithPubKey); + if (connection.getPeersNodeAddressOptional().isPresent()) + decryptedDirectMessageListeners.forEach( + e -> e.onDirectMessage(decryptedMessageWithPubKey, connection.getPeersNodeAddressOptional().get())); + else + log.error("peersNodeAddress is not available at onMessage."); + } else { + log.debug("Wrong receiverAddressMaskHash. The message is not intended for us."); + } + } catch (CryptoException e) { + log.debug(networkEnvelope.toString()); + log.debug(e.toString()); + log.debug("Decryption of prefixedSealedAndSignedMessage.sealedAndSigned failed. " + + "That is expected if the message is not intended for us."); + } catch (ProtobufferException e) { + log.error("Protobuffer data could not be processed: {}", e.toString()); + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // HashMapChangedListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onAdded(ProtectedStorageEntry protectedStorageEntry) { + if (protectedStorageEntry instanceof ProtectedMailboxStorageEntry) + processProtectedMailboxStorageEntry((ProtectedMailboxStorageEntry) protectedStorageEntry); + } + + @Override + public void onRemoved(ProtectedStorageEntry data) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // DirectMessages + /////////////////////////////////////////////////////////////////////////////////////////// + + // TODO OfferAvailabilityResponse is called twice! + public void sendEncryptedDirectMessage(NodeAddress peerNodeAddress, PubKeyRing pubKeyRing, NetworkEnvelope message, + SendDirectMessageListener sendDirectMessageListener) { + checkNotNull(peerNodeAddress, "PeerAddress must not be null (sendEncryptedDirectMessage)"); + if (isBootstrapped()) { + doSendEncryptedDirectMessage(peerNodeAddress, pubKeyRing, message, sendDirectMessageListener); + } else { + throw new NetworkNotReadyException(); + } + } + + private void doSendEncryptedDirectMessage(@NotNull NodeAddress peersNodeAddress, PubKeyRing pubKeyRing, NetworkEnvelope message, + SendDirectMessageListener sendDirectMessageListener) { + log.debug("Send encrypted direct message {} to peer {}", + message.getClass().getSimpleName(), peersNodeAddress); + + checkNotNull(peersNodeAddress, "Peer node address must not be null at doSendEncryptedDirectMessage"); + + checkNotNull(networkNode.getNodeAddress(), "My node address must not be null at doSendEncryptedDirectMessage"); + + if (capabilityRequiredAndCapabilityNotSupported(peersNodeAddress, message)) { + sendDirectMessageListener.onFault("We did not send the EncryptedMessage " + + "because the peer does not support the capability."); + return; + } + + try { + log.debug("\n\nEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n" + + "Encrypt message:\nmessage={}" + + "\nEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n", message); + PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = new PrefixedSealedAndSignedMessage( + networkNode.getNodeAddress(), + encryptionService.encryptAndSign(pubKeyRing, message), + peersNodeAddress.getAddressPrefixHash(), + UUID.randomUUID().toString()); + SettableFuture future = networkNode.sendMessage(peersNodeAddress, prefixedSealedAndSignedMessage); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(@Nullable Connection connection) { + sendDirectMessageListener.onArrived(); + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + log.error(throwable.toString()); + throwable.printStackTrace(); + sendDirectMessageListener.onFault(throwable.toString()); + } + }); + } catch (CryptoException e) { + e.printStackTrace(); + log.error(message.toString()); + log.error(e.toString()); + sendDirectMessageListener.onFault(e.toString()); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MailboxMessages + /////////////////////////////////////////////////////////////////////////////////////////// + + private void processProtectedMailboxStorageEntry(ProtectedMailboxStorageEntry protectedMailboxStorageEntry) { + Log.traceCall(); + final NodeAddress nodeAddress = networkNode.getNodeAddress(); + // Seed nodes don't receive mailbox network_messages + if (nodeAddress != null && !seedNodeRepository.isSeedNode(nodeAddress)) { + Log.traceCall(); + MailboxStoragePayload mailboxStoragePayload = protectedMailboxStorageEntry.getMailboxStoragePayload(); + PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = mailboxStoragePayload.getPrefixedSealedAndSignedMessage(); + if (verifyAddressPrefixHash(prefixedSealedAndSignedMessage)) { + try { + DecryptedMessageWithPubKey decryptedMessageWithPubKey = encryptionService.decryptAndVerify( + prefixedSealedAndSignedMessage.getSealedAndSigned()); + if (decryptedMessageWithPubKey.getNetworkEnvelope() instanceof MailboxMessage) { + MailboxMessage mailboxMessage = (MailboxMessage) decryptedMessageWithPubKey.getNetworkEnvelope(); + NodeAddress senderNodeAddress = mailboxMessage.getSenderNodeAddress(); + checkNotNull(senderNodeAddress, "senderAddress must not be null for mailbox network_messages"); + + mailboxMap.put(mailboxMessage.getUid(), protectedMailboxStorageEntry); + log.trace("Decryption of SealedAndSignedMessage succeeded. senderAddress=" + + senderNodeAddress + " / my address=" + getAddress()); + decryptedMailboxListeners.forEach( + e -> e.onMailboxMessageAdded(decryptedMessageWithPubKey, senderNodeAddress)); + } else { + log.warn("tryDecryptMailboxData: Expected MailboxMessage but got other type. " + + "decryptedMsgWithPubKey.message=", decryptedMessageWithPubKey.getNetworkEnvelope()); + } + } catch (CryptoException e) { + log.debug(e.toString()); + log.debug("Decryption of prefixedSealedAndSignedMessage.sealedAndSigned failed. " + + "That is expected if the message is not intended for us."); + } catch (ProtobufferException e) { + log.error("Protobuffer data could not be processed: {}", e.toString()); + } + } else { + log.debug("Wrong blurredAddressHash. The message is not intended for us."); + } + } + } + + public void sendEncryptedMailboxMessage(NodeAddress peersNodeAddress, PubKeyRing peersPubKeyRing, + NetworkEnvelope message, + SendMailboxMessageListener sendMailboxMessageListener) { + checkNotNull(peersNodeAddress, + "PeerAddress must not be null (sendEncryptedMailboxMessage)"); + checkNotNull(networkNode.getNodeAddress(), + "My node address must not be null at sendEncryptedMailboxMessage"); + checkArgument(!keyRing.getPubKeyRing().equals(peersPubKeyRing), + "We got own keyring instead of that from peer"); + + if (!isBootstrapped()) + throw new NetworkNotReadyException(); + + if (networkNode.getAllConnections().isEmpty()) { + sendMailboxMessageListener.onFault("There are no P2P network nodes connected. " + + "Please check your internet connection."); + return; + } + + if (capabilityRequiredAndCapabilityNotSupported(peersNodeAddress, message)) { + sendMailboxMessageListener.onFault("We did not send the EncryptedMailboxMessage " + + "because the peer does not support the capability."); + return; + } + + try { + log.debug("\n\nEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n" + + "Encrypt message:\nmessage={}" + + "\nEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n", message); + + PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = new PrefixedSealedAndSignedMessage( + networkNode.getNodeAddress(), + encryptionService.encryptAndSign(peersPubKeyRing, message), + peersNodeAddress.getAddressPrefixHash(), + UUID.randomUUID().toString()); + + log.debug("sendEncryptedMailboxMessage msg={}, peersNodeAddress={}", message, peersNodeAddress); + SettableFuture future = networkNode.sendMessage(peersNodeAddress, prefixedSealedAndSignedMessage); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(@Nullable Connection connection) { + sendMailboxMessageListener.onArrived(); + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + PublicKey receiverStoragePublicKey = peersPubKeyRing.getSignaturePubKey(); + addMailboxData(new MailboxStoragePayload(prefixedSealedAndSignedMessage, + keyRing.getSignatureKeyPair().getPublic(), + receiverStoragePublicKey), + receiverStoragePublicKey, + sendMailboxMessageListener); + } + }); + } catch (CryptoException e) { + log.error("sendEncryptedMessage failed"); + e.printStackTrace(); + sendMailboxMessageListener.onFault("sendEncryptedMailboxMessage failed " + e); + } + } + + private boolean capabilityRequiredAndCapabilityNotSupported(NodeAddress peersNodeAddress, NetworkEnvelope message) { + if (!(message instanceof CapabilityRequiringPayload)) + return false; + + // We only expect AckMessage so far + if (!(message instanceof AckMessage)) + log.warn("We got a CapabilityRequiringPayload for the mailbox message which is not a AckMessage. " + + "peersNodeAddress={}", peersNodeAddress); + + Set allPeers = peerManager.getPersistedPeers(); + allPeers.addAll(peerManager.getReportedPeers()); + allPeers.addAll(peerManager.getLivePeers(null)); + // We might have multiple entries of the same peer without the supportedCapabilities field set if we received + // it from old versions, so we filter those. + Optional optionalPeer = allPeers.stream() + .filter(peer -> peer.getNodeAddress().equals(peersNodeAddress)) + .filter(peer -> peer.getSupportedCapabilities() != null) + .filter(peer -> !peer.getSupportedCapabilities().isEmpty()) + .findAny(); + if (optionalPeer.isPresent()) { + Peer peer = optionalPeer.get(); + boolean result = Connection.isCapabilityRequired(message) && + !Connection.isCapabilitySupported((CapabilityRequiringPayload) message, peer.getSupportedCapabilities()); + + if (result) + log.warn("We don't send the message because the peer does not support the required capability. " + + "peersNodeAddress={}", peersNodeAddress); + + return result; + } + + log.warn("We don't have the peer in our persisted peers so we don't know his capabilities. " + + "We decide to not sent the msg. peersNodeAddress={}", peersNodeAddress); + return true; + + } + + + private void addMailboxData(MailboxStoragePayload expirableMailboxStoragePayload, + PublicKey receiversPublicKey, + SendMailboxMessageListener sendMailboxMessageListener) { + Log.traceCall(); + + if (isBootstrapped()) { + if (!networkNode.getAllConnections().isEmpty()) { + try { + ProtectedMailboxStorageEntry protectedMailboxStorageEntry = p2PDataStorage.getMailboxDataWithSignedSeqNr( + expirableMailboxStoragePayload, + keyRing.getSignatureKeyPair(), + receiversPublicKey); + + BroadcastHandler.Listener listener = new BroadcastHandler.Listener() { + @Override + public void onBroadcasted(BroadcastMessage message, int numOfCompletedBroadcasts) { + } + + @Override + public void onBroadcastedToFirstPeer(BroadcastMessage message) { + // The reason for that check was to separate different callback for different send calls. + // We only want to notify our sendMailboxMessageListener for the calls he is interested in. + if (message instanceof AddDataMessage && + ((AddDataMessage) message).getProtectedStorageEntry().equals(protectedMailboxStorageEntry)) { + // We delay a bit to give more time for sufficient propagation in the P2P network. + // This should help to avoid situations where a user closes the app too early and the msg + // does not arrive. + // We could use onBroadcastCompleted instead but it might take too long if one peer + // is very badly connected. + // TODO We could check for a certain threshold of no. of incoming network_messages of the same msg + // to see how well it is propagated. BitcoinJ uses such an approach for tx propagation. + UserThread.runAfter(() -> { + log.info("Broadcasted to first peer (3 sec. ago): Message = {}", Utilities.toTruncatedString(message)); + sendMailboxMessageListener.onStoredInMailbox(); + }, 3); + } + } + + @Override + public void onBroadcastCompleted(BroadcastMessage message, int numOfCompletedBroadcasts, int numOfFailedBroadcasts) { + log.info("Broadcast completed: Sent to {} peers (failed: {}). Message = {}", + numOfCompletedBroadcasts, numOfFailedBroadcasts, Utilities.toTruncatedString(message)); + if (numOfCompletedBroadcasts == 0) + sendMailboxMessageListener.onFault("Broadcast completed without any successful broadcast"); + } + + @Override + public void onBroadcastFailed(String errorMessage) { + // TODO investigate why not sending sendMailboxMessageListener.onFault. Related probably + // to the logic from BroadcastHandler.sendToPeer + } + }; + boolean result = p2PDataStorage.addProtectedStorageEntry(protectedMailboxStorageEntry, networkNode.getNodeAddress(), listener, true); + if (!result) { + //TODO remove and add again with a delay to ensure the data will be broadcasted + // The p2PDataStorage.remove makes probably sense but need to be analysed more. + // Don't change that if it is not 100% clear. + sendMailboxMessageListener.onFault("Data already exists in our local database"); + boolean removeResult = p2PDataStorage.remove(protectedMailboxStorageEntry, networkNode.getNodeAddress(), true); + log.debug("remove result=" + removeResult); + } + } catch (CryptoException e) { + log.error("Signing at getDataWithSignedSeqNr failed. That should never happen."); + } + } else { + sendMailboxMessageListener.onFault("There are no P2P network nodes connected. " + + "Please check your internet connection."); + } + } else { + throw new NetworkNotReadyException(); + } + } + + public void removeEntryFromMailbox(DecryptedMessageWithPubKey decryptedMessageWithPubKey) { + // We need to delay a bit to avoid that we remove our msg then get it from other peers again and reapply it again. + // If we delay the removal we have better chances that repeated network_messages we got from other peers are already filtered + // at the P2PService layer. + // Though we have to check in the client classes to not apply the same message again as there is no guarantee + // when we would get a message again from the network. + try { + UserThread.runAfter(() -> delayedRemoveEntryFromMailbox(decryptedMessageWithPubKey), 2); + } catch (NetworkNotReadyException t) { + // If we called too early it might throw a NetworkNotReadyException. We will try again + try { + UserThread.runAfter(() -> delayedRemoveEntryFromMailbox(decryptedMessageWithPubKey), 60); + } catch (NetworkNotReadyException ignore) { + log.warn("We tried to call delayedRemoveEntryFromMailbox 60 sec. after we received an " + + "NetworkNotReadyException but it failed again. We give up here."); + } + } + } + + private void delayedRemoveEntryFromMailbox(DecryptedMessageWithPubKey decryptedMessageWithPubKey) { + Log.traceCall(); + if (isBootstrapped()) { + MailboxMessage mailboxMessage = (MailboxMessage) decryptedMessageWithPubKey.getNetworkEnvelope(); + String uid = mailboxMessage.getUid(); + if (mailboxMap.containsKey(uid)) { + ProtectedMailboxStorageEntry mailboxData = mailboxMap.get(uid); + if (mailboxData != null && mailboxData.getProtectedStoragePayload() instanceof MailboxStoragePayload) { + MailboxStoragePayload expirableMailboxStoragePayload = (MailboxStoragePayload) mailboxData.getProtectedStoragePayload(); + PublicKey receiversPubKey = mailboxData.getReceiversPubKey(); + checkArgument(receiversPubKey.equals(keyRing.getSignatureKeyPair().getPublic()), + "receiversPubKey is not matching with our key. That must not happen."); + try { + ProtectedMailboxStorageEntry protectedMailboxStorageEntry = p2PDataStorage.getMailboxDataWithSignedSeqNr( + expirableMailboxStoragePayload, + keyRing.getSignatureKeyPair(), + receiversPubKey); + p2PDataStorage.removeMailboxData(protectedMailboxStorageEntry, networkNode.getNodeAddress(), true); + } catch (CryptoException e) { + log.error("Signing at getDataWithSignedSeqNr failed. That should never happen."); + } + + mailboxMap.remove(uid); + log.info("Removed successfully decryptedMsgWithPubKey. uid={}", uid); + } + } else { + log.warn("uid for mailbox entry not found in mailboxMap." + "uid={}", uid); + } + } else { + throw new NetworkNotReadyException(); + } + + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Data storage + /////////////////////////////////////////////////////////////////////////////////////////// + + public boolean addPersistableNetworkPayload(PersistableNetworkPayload payload, boolean reBroadcast) { + return p2PDataStorage.addPersistableNetworkPayload(payload, networkNode.getNodeAddress(), true, true, reBroadcast, false); + } + + public boolean addProtectedStorageEntry(ProtectedStoragePayload protectedStoragePayload, boolean isDataOwner) { + Log.traceCall(); + if (isBootstrapped()) { + try { + ProtectedStorageEntry protectedStorageEntry = p2PDataStorage.getProtectedStorageEntry(protectedStoragePayload, keyRing.getSignatureKeyPair()); + return p2PDataStorage.addProtectedStorageEntry(protectedStorageEntry, networkNode.getNodeAddress(), null, isDataOwner); + } catch (CryptoException e) { + log.error("Signing at getDataWithSignedSeqNr failed. That should never happen."); + return false; + } + } else { + throw new NetworkNotReadyException(); + } + } + + public boolean refreshTTL(ProtectedStoragePayload protectedStoragePayload, boolean isDataOwner) { + Log.traceCall(); + if (isBootstrapped()) { + try { + RefreshOfferMessage refreshTTLMessage = p2PDataStorage.getRefreshTTLMessage(protectedStoragePayload, keyRing.getSignatureKeyPair()); + return p2PDataStorage.refreshTTL(refreshTTLMessage, networkNode.getNodeAddress(), isDataOwner); + } catch (CryptoException e) { + log.error("Signing at getDataWithSignedSeqNr failed. That should never happen."); + return false; + } + } else { + throw new NetworkNotReadyException(); + } + } + + public boolean removeData(ProtectedStoragePayload protectedStoragePayload, boolean isDataOwner) { + Log.traceCall(); + if (isBootstrapped()) { + try { + ProtectedStorageEntry protectedStorageEntry = p2PDataStorage.getProtectedStorageEntry(protectedStoragePayload, keyRing.getSignatureKeyPair()); + return p2PDataStorage.remove(protectedStorageEntry, networkNode.getNodeAddress(), isDataOwner); + } catch (CryptoException e) { + log.error("Signing at getDataWithSignedSeqNr failed. That should never happen."); + return false; + } + } else { + throw new NetworkNotReadyException(); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listeners + /////////////////////////////////////////////////////////////////////////////////////////// + + public void addDecryptedDirectMessageListener(DecryptedDirectMessageListener listener) { + decryptedDirectMessageListeners.add(listener); + } + + public void removeDecryptedDirectMessageListener(DecryptedDirectMessageListener listener) { + decryptedDirectMessageListeners.remove(listener); + } + + public void addDecryptedMailboxListener(DecryptedMailboxListener listener) { + decryptedMailboxListeners.add(listener); + } + + public void addP2PServiceListener(P2PServiceListener listener) { + p2pServiceListeners.add(listener); + } + + public void removeP2PServiceListener(P2PServiceListener listener) { + if (p2pServiceListeners.contains(listener)) + p2pServiceListeners.remove(listener); + } + + public void addHashSetChangedListener(HashMapChangedListener hashMapChangedListener) { + p2PDataStorage.addHashMapChangedListener(hashMapChangedListener); + } + + public void removeHashMapChangedListener(HashMapChangedListener hashMapChangedListener) { + p2PDataStorage.removeHashMapChangedListener(hashMapChangedListener); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Getters + /////////////////////////////////////////////////////////////////////////////////////////// + + public boolean isBootstrapped() { + return isBootstrapped; + } + + public NetworkNode getNetworkNode() { + return networkNode; + } + + @Nullable + public NodeAddress getAddress() { + return networkNode.getNodeAddress(); + } + + public ReadOnlyIntegerProperty getNumConnectedPeers() { + return numConnectedPeers; + } + + public Map getDataMap() { + return p2PDataStorage.getMap(); + } + + @VisibleForTesting + public P2PDataStorage getP2PDataStorage() { + return p2PDataStorage; + } + + @VisibleForTesting + public PeerManager getPeerManager() { + return peerManager; + } + + @VisibleForTesting + public KeyRing getKeyRing() { + return keyRing; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private boolean verifyAddressPrefixHash(PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage) { + if (networkNode.getNodeAddress() != null) { + byte[] blurredAddressHash = networkNode.getNodeAddress().getAddressPrefixHash(); + return blurredAddressHash != null && + Arrays.equals(blurredAddressHash, prefixedSealedAndSignedMessage.getAddressPrefixHash()); + } else { + log.debug("myOnionAddress is null at verifyAddressPrefixHash. That is expected at startup."); + return false; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/P2PServiceListener.java b/p2p/src/main/java/bisq/network/p2p/P2PServiceListener.java new file mode 100644 index 00000000000..3f9e16a3a27 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/P2PServiceListener.java @@ -0,0 +1,32 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + + +import bisq.network.p2p.network.SetupListener; + +public interface P2PServiceListener extends SetupListener { + + void onDataReceived(); + + void onNoSeedNodeAvailable(); + + void onNoPeersAvailable(); + + void onUpdatedDataReceived(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/PrefixedSealedAndSignedMessage.java b/p2p/src/main/java/bisq/network/p2p/PrefixedSealedAndSignedMessage.java new file mode 100644 index 00000000000..7e73f9d42ad --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/PrefixedSealedAndSignedMessage.java @@ -0,0 +1,95 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.common.app.Version; +import bisq.common.crypto.SealedAndSigned; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +import static com.google.common.base.Preconditions.checkNotNull; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class PrefixedSealedAndSignedMessage extends NetworkEnvelope implements MailboxMessage, SendersNodeAddressMessage { + private final NodeAddress senderNodeAddress; + private final SealedAndSigned sealedAndSigned; + private final byte[] addressPrefixHash; + private final String uid; + + public PrefixedSealedAndSignedMessage(NodeAddress senderNodeAddress, + SealedAndSigned sealedAndSigned, + byte[] addressPrefixHash, + String uid) { + this(senderNodeAddress, sealedAndSigned, addressPrefixHash, uid, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private PrefixedSealedAndSignedMessage(NodeAddress senderNodeAddress, + SealedAndSigned sealedAndSigned, + byte[] addressPrefixHash, + String uid, + int messageVersion) { + super(messageVersion); + this.senderNodeAddress = checkNotNull(senderNodeAddress, "senderNodeAddress must not be null"); + this.sealedAndSigned = sealedAndSigned; + this.addressPrefixHash = addressPrefixHash; + this.uid = uid; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setPrefixedSealedAndSignedMessage(PB.PrefixedSealedAndSignedMessage.newBuilder() + .setNodeAddress(senderNodeAddress.toProtoMessage()) + .setSealedAndSigned(sealedAndSigned.toProtoMessage()) + .setAddressPrefixHash(ByteString.copyFrom(addressPrefixHash)) + .setUid(uid)) + .build(); + } + + public static PrefixedSealedAndSignedMessage fromProto(PB.PrefixedSealedAndSignedMessage proto, int messageVersion) { + return new PrefixedSealedAndSignedMessage(NodeAddress.fromProto(proto.getNodeAddress()), + SealedAndSigned.fromProto(proto.getSealedAndSigned()), + proto.getAddressPrefixHash().toByteArray(), + proto.getUid(), + messageVersion); + } + + public static PrefixedSealedAndSignedMessage fromPayloadProto(PB.PrefixedSealedAndSignedMessage proto) { + // We have the case that an envelope got wrapped into a payload. + // We don't check the message version here as it was checked in the carrier envelope already (in connection class) + // Payloads dont have a message version and are also used for persistence + // We set the value to -1 to indicate it is set but irrelevant + return new PrefixedSealedAndSignedMessage(NodeAddress.fromProto(proto.getNodeAddress()), + SealedAndSigned.fromProto(proto.getSealedAndSigned()), + proto.getAddressPrefixHash().toByteArray(), + proto.getUid(), + -1); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/SendDirectMessageListener.java b/p2p/src/main/java/bisq/network/p2p/SendDirectMessageListener.java new file mode 100644 index 00000000000..c4164406675 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/SendDirectMessageListener.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface SendDirectMessageListener { + void onArrived(); + + void onFault(String ErrorMessage); +} diff --git a/p2p/src/main/java/bisq/network/p2p/SendMailboxMessageListener.java b/p2p/src/main/java/bisq/network/p2p/SendMailboxMessageListener.java new file mode 100644 index 00000000000..7a603cb8831 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/SendMailboxMessageListener.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface SendMailboxMessageListener { + void onArrived(); + + void onStoredInMailbox(); + + void onFault(@SuppressWarnings("UnusedParameters") String errorMessage); +} diff --git a/p2p/src/main/java/bisq/network/p2p/SendersNodeAddressMessage.java b/p2p/src/main/java/bisq/network/p2p/SendersNodeAddressMessage.java new file mode 100644 index 00000000000..de99b6b96e9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/SendersNodeAddressMessage.java @@ -0,0 +1,22 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +public interface SendersNodeAddressMessage { + NodeAddress getSenderNodeAddress(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/SupportedCapabilitiesMessage.java b/p2p/src/main/java/bisq/network/p2p/SupportedCapabilitiesMessage.java new file mode 100644 index 00000000000..c73b72e824c --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/SupportedCapabilitiesMessage.java @@ -0,0 +1,27 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import java.util.List; + +import javax.annotation.Nullable; + +public interface SupportedCapabilitiesMessage { + @Nullable + List getSupportedCapabilities(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/UidMessage.java b/p2p/src/main/java/bisq/network/p2p/UidMessage.java new file mode 100644 index 00000000000..3260d61cc44 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/UidMessage.java @@ -0,0 +1,23 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + + +public interface UidMessage { + String getUid(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/Utils.java b/p2p/src/main/java/bisq/network/p2p/Utils.java new file mode 100644 index 00000000000..515874003c7 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/Utils.java @@ -0,0 +1,37 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import java.net.ServerSocket; + +import java.io.IOException; + +import java.util.Random; + +public class Utils { + public static int findFreeSystemPort() { + try { + ServerSocket server = new ServerSocket(0); + int port = server.getLocalPort(); + server.close(); + return port; + } catch (IOException ignored) { + return new Random().nextInt(10000) + 50000; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/messaging/DecryptedMailboxListener.java b/p2p/src/main/java/bisq/network/p2p/messaging/DecryptedMailboxListener.java new file mode 100644 index 00000000000..13b6d2e2b7c --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/messaging/DecryptedMailboxListener.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.messaging; + +import bisq.network.p2p.DecryptedMessageWithPubKey; +import bisq.network.p2p.NodeAddress; + +public interface DecryptedMailboxListener { + + void onMailboxMessageAdded(DecryptedMessageWithPubKey decryptedMessageWithPubKey, @SuppressWarnings("UnusedParameters") NodeAddress senderNodeAddress); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/BisqRuntimeException.java b/p2p/src/main/java/bisq/network/p2p/network/BisqRuntimeException.java new file mode 100644 index 00000000000..f8a2f85ecd4 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/BisqRuntimeException.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +class BisqRuntimeException extends RuntimeException { + BisqRuntimeException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/BridgeAddressProvider.java b/p2p/src/main/java/bisq/network/p2p/network/BridgeAddressProvider.java new file mode 100644 index 00000000000..6bcb9b3f0c9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/BridgeAddressProvider.java @@ -0,0 +1,27 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import java.util.List; + +import org.jetbrains.annotations.Nullable; + +public interface BridgeAddressProvider { + @Nullable + List getBridgeAddresses(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/CloseConnectionReason.java b/p2p/src/main/java/bisq/network/p2p/network/CloseConnectionReason.java new file mode 100644 index 00000000000..e87436d9ba6 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/CloseConnectionReason.java @@ -0,0 +1,65 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +public enum CloseConnectionReason { + // First block are from different exceptions + SOCKET_CLOSED(false, false), + RESET(false, false), + SOCKET_TIMEOUT(false, false), + TERMINATED(false, false), + // EOFException + CORRUPTED_DATA(false, false), + NO_PROTO_BUFFER_DATA(false, false), + NO_PROTO_BUFFER_ENV(false, false), + UNKNOWN_EXCEPTION(false, false), + + // Planned + APP_SHUT_DOWN(true, true), + CLOSE_REQUESTED_BY_PEER(false, true), + + // send msg + SEND_MSG_FAILURE(false, false), + SEND_MSG_TIMEOUT(false, false), + + // maintenance + TOO_MANY_CONNECTIONS_OPEN(true, true), + TOO_MANY_SEED_NODES_CONNECTED(true, true), + UNKNOWN_PEER_ADDRESS(true, true), + + // illegal requests + RULE_VIOLATION(true, false), + PEER_BANNED(true, false), + INVALID_CLASS_RECEIVED(false, false); + + public final boolean sendCloseMessage; + public final boolean isIntended; + + CloseConnectionReason(boolean sendCloseMessage, boolean isIntended) { + this.sendCloseMessage = sendCloseMessage; + this.isIntended = isIntended; + } + + @Override + public String toString() { + return "CloseConnectionReason{" + + "sendCloseMessage=" + sendCloseMessage + + ", isIntended=" + isIntended + + "} " + super.toString(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/Connection.java b/p2p/src/main/java/bisq/network/p2p/network/Connection.java new file mode 100644 index 00000000000..8daa6cd7fef --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/Connection.java @@ -0,0 +1,982 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.CloseConnectionMessage; +import bisq.network.p2p.ExtendedDataSizePermission; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.PrefixedSealedAndSignedMessage; +import bisq.network.p2p.SendersNodeAddressMessage; +import bisq.network.p2p.SupportedCapabilitiesMessage; +import bisq.network.p2p.peers.BanList; +import bisq.network.p2p.peers.getdata.messages.GetDataRequest; +import bisq.network.p2p.peers.getdata.messages.GetDataResponse; +import bisq.network.p2p.peers.keepalive.messages.KeepAliveMessage; +import bisq.network.p2p.peers.keepalive.messages.Ping; +import bisq.network.p2p.peers.keepalive.messages.Pong; +import bisq.network.p2p.storage.messages.AddDataMessage; +import bisq.network.p2p.storage.messages.AddPersistableNetworkPayloadMessage; +import bisq.network.p2p.storage.messages.RefreshOfferMessage; +import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import bisq.common.Proto; +import bisq.common.UserThread; +import bisq.common.app.Capabilities; +import bisq.common.app.Log; +import bisq.common.app.Version; +import bisq.common.proto.ProtobufferException; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.util.Tuple2; +import bisq.common.util.Utilities; + +import io.bisq.generated.protobuffer.PB; + +import com.google.common.util.concurrent.MoreExecutors; +import com.google.common.util.concurrent.Uninterruptibles; + +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.ReadOnlyObjectProperty; +import javafx.beans.property.SimpleObjectProperty; + +import java.net.Socket; +import java.net.SocketException; +import java.net.SocketTimeoutException; + +import java.io.EOFException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InvalidClassException; +import java.io.OptionalDataException; +import java.io.StreamCorruptedException; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.stream.Collectors; + +import java.lang.ref.WeakReference; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +/** + * Connection is created by the server thread or by sendMessage from NetworkNode. + * All handlers are called on User thread. + */ +@Slf4j +public class Connection implements MessageListener { + + /////////////////////////////////////////////////////////////////////////////////////////// + // Enums + /////////////////////////////////////////////////////////////////////////////////////////// + + public enum PeerType { + SEED_NODE, + PEER, + DIRECT_MSG_PEER, + INITIAL_DATA_REQUEST + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Static + /////////////////////////////////////////////////////////////////////////////////////////// + + // Leaving some constants package-private for tests to know limits. + static final int PERMITTED_MESSAGE_SIZE = 200 * 1024; // 200 kb + static final int MAX_PERMITTED_MESSAGE_SIZE = 10 * 1024 * 1024; // 10 MB (425 offers resulted in about 660 kb, mailbox msg will add more to it) offer has usually 2 kb, mailbox 3kb. + //TODO decrease limits again after testing + static final int MSG_THROTTLE_PER_SEC = 200; // With MAX_MSG_SIZE of 200kb results in bandwidth of 40MB/sec or 5 mbit/sec + static final int MSG_THROTTLE_PER_10_SEC = 1000; // With MAX_MSG_SIZE of 200kb results in bandwidth of 20MB/sec or 2.5 mbit/sec + private static final int SOCKET_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(120); + + public static int getPermittedMessageSize() { + return PERMITTED_MESSAGE_SIZE; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final Socket socket; + // private final MessageListener messageListener; + private final ConnectionListener connectionListener; + private final String portInfo; + private final String uid; + private final ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor(); + // holder of state shared between InputHandler and Connection + private final SharedModel sharedModel; + private final Statistic statistic; + + // set in init + private InputHandler inputHandler; + private SynchronizedProtoOutputStream protoOutputStream; + + // mutable data, set from other threads but not changed internally. + private Optional peersNodeAddressOptional = Optional.empty(); + private volatile boolean stopped; + private PeerType peerType; + private final ObjectProperty peersNodeAddressProperty = new SimpleObjectProperty<>(); + private final List> messageTimeStamps = new ArrayList<>(); + private final CopyOnWriteArraySet messageListeners = new CopyOnWriteArraySet<>(); + private volatile long lastSendTimeStamp = 0; + private final CopyOnWriteArraySet> capabilitiesListeners = new CopyOnWriteArraySet<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + Connection(Socket socket, MessageListener messageListener, ConnectionListener connectionListener, + @Nullable NodeAddress peersNodeAddress, NetworkProtoResolver networkProtoResolver) { + this.socket = socket; + this.connectionListener = connectionListener; + uid = UUID.randomUUID().toString(); + statistic = new Statistic(); + + addMessageListener(messageListener); + + sharedModel = new SharedModel(this, socket); + + if (socket.getLocalPort() == 0) + portInfo = "port=" + socket.getPort(); + else + portInfo = "localPort=" + socket.getLocalPort() + "/port=" + socket.getPort(); + + init(peersNodeAddress, networkProtoResolver); + } + + private void init(@Nullable NodeAddress peersNodeAddress, NetworkProtoResolver networkProtoResolver) { + try { + socket.setSoTimeout(SOCKET_TIMEOUT); + // Need to access first the ObjectOutputStream otherwise the ObjectInputStream would block + // See: https://stackoverflow.com/questions/5658089/java-creating-a-new-objectinputstream-blocks/5658109#5658109 + // When you construct an ObjectInputStream, in the constructor the class attempts to read a header that + // the associated ObjectOutputStream on the other end of the connection has written. + // It will not return until that header has been read. + protoOutputStream = new SynchronizedProtoOutputStream(socket.getOutputStream(), statistic); + InputStream protoInputStream = socket.getInputStream(); + // We create a thread for handling inputStream data + inputHandler = new InputHandler(sharedModel, protoInputStream, portInfo, this, networkProtoResolver); + singleThreadExecutor.submit(inputHandler); + + // Use Peer as default, in case of other types they will set it as soon as possible. + peerType = PeerType.PEER; + + if (peersNodeAddress != null) + setPeersNodeAddress(peersNodeAddress); + + log.trace("New connection created: " + this.toString()); + + UserThread.execute(() -> connectionListener.onConnection(this)); + + } catch (Throwable e) { + handleException(e); + } + } + + private void handleException(Throwable e) { + if (sharedModel != null) + sharedModel.handleConnectionException(e); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + // Called from various threads + public void sendMessage(NetworkEnvelope networkEnvelope) { + log.debug(">> Send networkEnvelope of type: " + networkEnvelope.getClass().getSimpleName()); + + if (!stopped) { + if (noCapabilityRequiredOrCapabilityIsSupported(networkEnvelope)) { + try { + Log.traceCall(); + + // Throttle outbound network_messages + long now = System.currentTimeMillis(); + long elapsed = now - lastSendTimeStamp; + if (elapsed < 20) { + log.debug("We got 2 sendMessage requests in less than 20 ms. We set the thread to sleep " + + "for 50 ms to avoid flooding our peer. lastSendTimeStamp={}, now={}, elapsed={}", + lastSendTimeStamp, now, elapsed); + Thread.sleep(50); + } + + lastSendTimeStamp = now; + String peersNodeAddress = peersNodeAddressOptional.isPresent() ? peersNodeAddressOptional.get().toString() : "null"; + + PB.NetworkEnvelope proto = networkEnvelope.toProtoNetworkEnvelope(); + log.debug("Sending message: {}", Utilities.toTruncatedString(proto.toString(), 10000)); + + if (networkEnvelope instanceof Ping | networkEnvelope instanceof RefreshOfferMessage) { + // pings and offer refresh msg we dont want to log in production + log.trace("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" + + "Sending direct message to peer" + + "Write object to outputStream to peer: {} (uid={})\ntruncated message={} / size={}" + + "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", + peersNodeAddress, uid, proto.toString(), proto.getSerializedSize()); + } else if (networkEnvelope instanceof PrefixedSealedAndSignedMessage && peersNodeAddressOptional.isPresent()) { + setPeerType(Connection.PeerType.DIRECT_MSG_PEER); + + log.debug("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" + + "Sending direct message to peer" + + "Write object to outputStream to peer: {} (uid={})\ntruncated message={} / size={}" + + "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", + peersNodeAddress, uid, Utilities.toTruncatedString(networkEnvelope), -1); + } else if (networkEnvelope instanceof GetDataResponse && ((GetDataResponse) networkEnvelope).isGetUpdatedDataResponse()) { + setPeerType(Connection.PeerType.PEER); + } else { + log.debug("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" + + "Write object to outputStream to peer: {} (uid={})\ntruncated message={} / size={}" + + "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", + peersNodeAddress, uid, Utilities.toTruncatedString(networkEnvelope), proto.getSerializedSize()); + } + + if (!stopped) { + protoOutputStream.writeEnvelope(networkEnvelope); + } + } catch (Throwable t) { + handleException(t); + } + } else { + log.info("We did not send the message because the peer does not support our required capabilities. message={}, peers supportedCapabilities={}", networkEnvelope, sharedModel.getSupportedCapabilities()); + } + } else { + log.debug("called sendMessage but was already stopped"); + } + } + + public boolean noCapabilityRequiredOrCapabilityIsSupported(Proto msg) { + return !isCapabilityRequired(msg) || isCapabilitySupported(msg); + } + + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + public static boolean isCapabilityRequired(Proto msg) { + if (msg instanceof AddDataMessage) { + final ProtectedStoragePayload protectedStoragePayload = (((AddDataMessage) msg).getProtectedStorageEntry()).getProtectedStoragePayload(); + return protectedStoragePayload instanceof CapabilityRequiringPayload; + } else if (msg instanceof AddPersistableNetworkPayloadMessage) { + final PersistableNetworkPayload persistableNetworkPayload = ((AddPersistableNetworkPayloadMessage) msg).getPersistableNetworkPayload(); + return persistableNetworkPayload instanceof CapabilityRequiringPayload; + } else { + return msg instanceof CapabilityRequiringPayload; + } + } + + private boolean isCapabilitySupported(Proto msg) { + if (msg instanceof AddDataMessage) { + final ProtectedStoragePayload protectedStoragePayload = (((AddDataMessage) msg).getProtectedStorageEntry()).getProtectedStoragePayload(); + return protectedStoragePayload instanceof CapabilityRequiringPayload && isCapabilitySupported((CapabilityRequiringPayload) protectedStoragePayload); + } else if (msg instanceof AddPersistableNetworkPayloadMessage) { + final PersistableNetworkPayload persistableNetworkPayload = ((AddPersistableNetworkPayloadMessage) msg).getPersistableNetworkPayload(); + return persistableNetworkPayload instanceof CapabilityRequiringPayload && isCapabilitySupported((CapabilityRequiringPayload) persistableNetworkPayload); + } else { + return msg instanceof CapabilityRequiringPayload && isCapabilitySupported((CapabilityRequiringPayload) msg); + } + } + + private boolean isCapabilitySupported(CapabilityRequiringPayload payload) { + return isCapabilitySupported(payload, sharedModel.getSupportedCapabilities()); + } + + public static boolean isCapabilitySupported(CapabilityRequiringPayload payload, List supportedCapabilities) { + final List requiredCapabilities = payload.getRequiredCapabilities(); + return Capabilities.isCapabilitySupported(requiredCapabilities, supportedCapabilities); + } + + @Nullable + public List getSupportedCapabilities() { + return sharedModel.getSupportedCapabilities(); + } + + public void addMessageListener(MessageListener messageListener) { + boolean isNewEntry = messageListeners.add(messageListener); + if (!isNewEntry) + log.warn("Try to add a messageListener which was already added."); + } + + public void removeMessageListener(MessageListener messageListener) { + boolean contained = messageListeners.remove(messageListener); + if (!contained) + log.debug("Try to remove a messageListener which was never added.\n\t" + + "That might happen because of async behaviour of CopyOnWriteArraySet"); + } + + public void addWeakRCapabilitiesListener(SupportedCapabilitiesListener listener) { + capabilitiesListeners.add(new WeakReference<>(listener)); + } + + @SuppressWarnings({"unused", "UnusedReturnValue"}) + public boolean reportIllegalRequest(RuleViolation ruleViolation) { + return sharedModel.reportInvalidRequest(ruleViolation); + } + + // TODO either use the argument or delete it + private boolean violatesThrottleLimit(NetworkEnvelope networkEnvelope) { + long now = System.currentTimeMillis(); + boolean violated = false; + //TODO remove message storage after network is tested stable + if (messageTimeStamps.size() >= MSG_THROTTLE_PER_SEC) { + // check if we got more than 200 (MSG_THROTTLE_PER_SEC) msg per sec. + long compareValue = messageTimeStamps.get(messageTimeStamps.size() - MSG_THROTTLE_PER_SEC).first; + // if duration < 1 sec we received too much network_messages + violated = now - compareValue < TimeUnit.SECONDS.toMillis(1); + if (violated) { + log.error("violatesThrottleLimit MSG_THROTTLE_PER_SEC "); + log.error("elapsed " + (now - compareValue)); + log.error("messageTimeStamps: \n\t" + messageTimeStamps.stream() + .map(e -> "\n\tts=" + e.first.toString() + " message=" + e.second.getClass().getName()) + .collect(Collectors.toList()).toString()); + } + } + + if (messageTimeStamps.size() >= MSG_THROTTLE_PER_10_SEC) { + if (!violated) { + // check if we got more than 50 msg per 10 sec. + long compareValue = messageTimeStamps.get(messageTimeStamps.size() - MSG_THROTTLE_PER_10_SEC).first; + // if duration < 10 sec we received too much network_messages + violated = now - compareValue < TimeUnit.SECONDS.toMillis(10); + + if (violated) { + log.error("violatesThrottleLimit MSG_THROTTLE_PER_10_SEC "); + log.error("elapsed " + (now - compareValue)); + log.error("messageTimeStamps: \n\t" + messageTimeStamps.stream() + .map(e -> "\n\tts=" + e.first.toString() + " message=" + e.second.getClass().getName()) + .collect(Collectors.toList()).toString()); + } + } + // we limit to max 1000 (MSG_THROTTLE_PER_10SEC) entries + messageTimeStamps.remove(0); + } + + messageTimeStamps.add(new Tuple2<>(now, networkEnvelope)); + return violated; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + // Only receive non - CloseConnectionMessage network_messages + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + checkArgument(connection.equals(this)); + UserThread.execute(() -> messageListeners.stream().forEach(e -> e.onMessage(networkEnvelope, connection))); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Setters + /////////////////////////////////////////////////////////////////////////////////////////// + + public void setPeerType(PeerType peerType) { + log.debug("setPeerType: peerType={}, nodeAddressOpt={}", peerType.toString(), peersNodeAddressOptional); + this.peerType = peerType; + } + + public void setPeersNodeAddress(NodeAddress peerNodeAddress) { + checkNotNull(peerNodeAddress, "peerAddress must not be null"); + peersNodeAddressOptional = Optional.of(peerNodeAddress); + + String peersNodeAddress = getPeersNodeAddressOptional().isPresent() ? getPeersNodeAddressOptional().get().getFullAddress() : ""; + if (this instanceof InboundConnection) { + log.debug("\n\n############################################################\n" + + "We got the peers node address set.\n" + + "peersNodeAddress= " + peersNodeAddress + + "\nconnection.uid=" + getUid() + + "\n############################################################\n"); + } + + peersNodeAddressProperty.set(peerNodeAddress); + + if (BanList.isBanned(peerNodeAddress)) { + log.warn("We detected a connection to a banned peer. We will close that connection. (setPeersNodeAddress)"); + sharedModel.reportInvalidRequest(RuleViolation.PEER_BANNED); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Getters + /////////////////////////////////////////////////////////////////////////////////////////// + + public Optional getPeersNodeAddressOptional() { + return peersNodeAddressOptional; + } + + public String getUid() { + return uid; + } + + public boolean hasPeersNodeAddress() { + return peersNodeAddressOptional.isPresent(); + } + + public boolean isStopped() { + return stopped; + } + + public PeerType getPeerType() { + return peerType; + } + + public ReadOnlyObjectProperty peersNodeAddressProperty() { + return peersNodeAddressProperty; + } + + public RuleViolation getRuleViolation() { + return sharedModel.getRuleViolation(); + } + + public Statistic getStatistic() { + return statistic; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ShutDown + /////////////////////////////////////////////////////////////////////////////////////////// + + public void shutDown(CloseConnectionReason closeConnectionReason) { + shutDown(closeConnectionReason, null); + } + + public void shutDown(CloseConnectionReason closeConnectionReason, @Nullable Runnable shutDownCompleteHandler) { + log.debug("shutDown: nodeAddressOpt={}, closeConnectionReason={}", this.peersNodeAddressOptional, closeConnectionReason); + if (!stopped) { + String peersNodeAddress = peersNodeAddressOptional.isPresent() ? peersNodeAddressOptional.get().toString() : "null"; + log.debug("\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n" + + "ShutDown connection:" + + "\npeersNodeAddress=" + peersNodeAddress + + "\ncloseConnectionReason=" + closeConnectionReason + + "\nuid=" + uid + + "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); + + if (closeConnectionReason.sendCloseMessage) { + new Thread(() -> { + Thread.currentThread().setName("Connection:SendCloseConnectionMessage-" + this.uid); + Log.traceCall("sendCloseConnectionMessage"); + try { + String reason = closeConnectionReason == CloseConnectionReason.RULE_VIOLATION ? + sharedModel.getRuleViolation().name() : closeConnectionReason.name(); + sendMessage(new CloseConnectionMessage(reason)); + + setStopFlags(); + + Uninterruptibles.sleepUninterruptibly(200, TimeUnit.MILLISECONDS); + } catch (Throwable t) { + log.error(t.getMessage()); + t.printStackTrace(); + } finally { + setStopFlags(); + UserThread.execute(() -> doShutDown(closeConnectionReason, shutDownCompleteHandler)); + } + }).start(); + } else { + setStopFlags(); + doShutDown(closeConnectionReason, shutDownCompleteHandler); + } + } else { + //TODO find out why we get called that + log.debug("stopped was already at shutDown call"); + UserThread.execute(() -> doShutDown(closeConnectionReason, shutDownCompleteHandler)); + } + } + + private void setStopFlags() { + stopped = true; + sharedModel.stop(); + if (inputHandler != null) + inputHandler.stop(); + } + + private void doShutDown(CloseConnectionReason closeConnectionReason, @Nullable Runnable shutDownCompleteHandler) { + // Use UserThread.execute as its not clear if that is called from a non-UserThread + UserThread.execute(() -> connectionListener.onDisconnect(closeConnectionReason, this)); + try { + sharedModel.getSocket().close(); + } catch (SocketException e) { + log.trace("SocketException at shutdown might be expected " + e.getMessage()); + } catch (IOException e) { + log.error("Exception at shutdown. " + e.getMessage()); + e.printStackTrace(); + } finally { + protoOutputStream.onConnectionShutdown(); + MoreExecutors.shutdownAndAwaitTermination(singleThreadExecutor, 500, TimeUnit.MILLISECONDS); + + log.debug("Connection shutdown complete " + this.toString()); + // Use UserThread.execute as its not clear if that is called from a non-UserThread + if (shutDownCompleteHandler != null) + UserThread.execute(shutDownCompleteHandler); + } + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Connection)) return false; + + Connection that = (Connection) o; + + return uid.equals(that.uid); + + } + + @Override + public int hashCode() { + return uid.hashCode(); + } + + @Override + public String toString() { + return "Connection{" + + "peerAddress=" + peersNodeAddressOptional + + ", peerType=" + peerType + + ", uid='" + uid + '\'' + + '}'; + } + + @SuppressWarnings("unused") + public String printDetails() { + return "Connection{" + + "peerAddress=" + peersNodeAddressOptional + + ", peerType=" + peerType + + ", portInfo=" + portInfo + + ", uid='" + uid + '\'' + + ", sharedSpace=" + sharedModel.toString() + + ", stopped=" + stopped + + '}'; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // SharedSpace + /////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Holds all shared data between Connection and InputHandler + * Runs in same thread as Connection + */ + private static class SharedModel { + private static final Logger log = LoggerFactory.getLogger(SharedModel.class); + + private final Connection connection; + private final Socket socket; + private final ConcurrentHashMap ruleViolations = new ConcurrentHashMap<>(); + + // mutable + private volatile boolean stopped; + private CloseConnectionReason closeConnectionReason; + private RuleViolation ruleViolation; + @Nullable + private List supportedCapabilities; + + + public SharedModel(Connection connection, Socket socket) { + this.connection = connection; + this.socket = socket; + } + + public boolean reportInvalidRequest(RuleViolation ruleViolation) { + log.warn("We got reported the ruleViolation {} at connection {}", ruleViolation, connection); + int numRuleViolations; + numRuleViolations = ruleViolations.getOrDefault(ruleViolation, 0); + + numRuleViolations++; + ruleViolations.put(ruleViolation, numRuleViolations); + + if (numRuleViolations >= ruleViolation.maxTolerance) { + log.warn("We close connection as we received too many corrupt requests.\n" + + "numRuleViolations={}\n\t" + + "corruptRequest={}\n\t" + + "corruptRequests={}\n\t" + + "connection={}", numRuleViolations, ruleViolation, ruleViolations.toString(), connection); + this.ruleViolation = ruleViolation; + if (ruleViolation == RuleViolation.PEER_BANNED) { + log.warn("We close connection due RuleViolation.PEER_BANNED. peersNodeAddress={}", connection.getPeersNodeAddressOptional()); + shutDown(CloseConnectionReason.PEER_BANNED); + } else if (ruleViolation == RuleViolation.INVALID_CLASS) { + log.warn("We close connection due RuleViolation.INVALID_CLASS"); + shutDown(CloseConnectionReason.INVALID_CLASS_RECEIVED); + } else { + log.warn("We close connection due RuleViolation.RULE_VIOLATION"); + shutDown(CloseConnectionReason.RULE_VIOLATION); + } + + return true; + } else { + return false; + } + } + + @Nullable + public List getSupportedCapabilities() { + return supportedCapabilities; + } + + @SuppressWarnings("NullableProblems") + public void setSupportedCapabilities(List supportedCapabilities) { + this.supportedCapabilities = supportedCapabilities; + connection.capabilitiesListeners.forEach(l -> { + SupportedCapabilitiesListener supportedCapabilitiesListener = l.get(); + if (supportedCapabilitiesListener != null) + supportedCapabilitiesListener.onChanged(supportedCapabilities); + }); + } + + public void handleConnectionException(Throwable e) { + if (e instanceof SocketException) { + if (socket.isClosed()) + closeConnectionReason = CloseConnectionReason.SOCKET_CLOSED; + else + closeConnectionReason = CloseConnectionReason.RESET; + + log.info("SocketException (expected if connection lost). closeConnectionReason={}; connection={}", closeConnectionReason, connection); + } else if (e instanceof SocketTimeoutException || e instanceof TimeoutException) { + closeConnectionReason = CloseConnectionReason.SOCKET_TIMEOUT; + log.info("Shut down caused by exception {} on connection={}", e.toString(), connection); + } else if (e instanceof EOFException) { + closeConnectionReason = CloseConnectionReason.TERMINATED; + log.warn("Shut down caused by exception {} on connection={}", e.toString(), connection); + } else if (e instanceof OptionalDataException || e instanceof StreamCorruptedException) { + closeConnectionReason = CloseConnectionReason.CORRUPTED_DATA; + log.warn("Shut down caused by exception {} on connection={}", e.toString(), connection); + } else { + // TODO sometimes we get StreamCorruptedException, OptionalDataException, IllegalStateException + closeConnectionReason = CloseConnectionReason.UNKNOWN_EXCEPTION; + log.warn("Unknown reason for exception at socket: {}\n\t" + + "connection={}\n\t" + + "Exception={}", + socket.toString(), + this, + e.toString()); + e.printStackTrace(); + } + shutDown(closeConnectionReason); + } + + public void shutDown(CloseConnectionReason closeConnectionReason) { + if (!stopped) { + stopped = true; + connection.shutDown(closeConnectionReason); + } + } + + public Socket getSocket() { + return socket; + } + + public void stop() { + this.stopped = true; + } + + public RuleViolation getRuleViolation() { + return ruleViolation; + } + + @Override + public String toString() { + return "SharedSpace{" + + "socket=" + socket + + ", ruleViolations=" + ruleViolations + + '}'; + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // InputHandler + /////////////////////////////////////////////////////////////////////////////////////////// + + // Runs in same thread as Connection, receives a message, performs several checks on it + // (including throttling limits, validity and statistics) + // and delivers it to the message listener given in the constructor. + private static class InputHandler implements Runnable { + private static final Logger log = LoggerFactory.getLogger(InputHandler.class); + + private final SharedModel sharedModel; + private final InputStream protoInputStream; + private final String portInfo; + private final MessageListener messageListener; + private final NetworkProtoResolver networkProtoResolver; + + private volatile boolean stopped; + private long lastReadTimeStamp; + private boolean threadNameSet; + + public InputHandler(SharedModel sharedModel, + InputStream protoInputStream, + String portInfo, + MessageListener messageListener, + NetworkProtoResolver networkProtoResolver) { + this.sharedModel = sharedModel; + this.protoInputStream = protoInputStream; + this.portInfo = portInfo; + this.messageListener = messageListener; + this.networkProtoResolver = networkProtoResolver; + } + + public void stop() { + if (!stopped) { + try { + protoInputStream.close(); + } catch (IOException e) { + log.error("IOException at InputHandler.stop\n" + e.getMessage()); + e.printStackTrace(); + } finally { + stopped = true; + } + } + } + + @Override + public void run() { + try { + Thread.currentThread().setName("InputHandler"); + while (!stopped && !Thread.currentThread().isInterrupted()) { + if (!threadNameSet && sharedModel.connection != null && + sharedModel.connection.getPeersNodeAddressOptional().isPresent()) { + Thread.currentThread().setName("InputHandler-" + sharedModel.connection.getPeersNodeAddressOptional().get().getFullAddress()); + threadNameSet = true; + } + try { + if (sharedModel.getSocket() != null && + sharedModel.getSocket().isClosed()) { + log.warn("Socket is null or closed socket={}", sharedModel.getSocket()); + stopAndShutDown(CloseConnectionReason.SOCKET_CLOSED); + return; + } + + Connection connection = checkNotNull(sharedModel.connection, "connection must not be null"); + log.trace("InputHandler waiting for incoming network_messages.\n\tConnection=" + connection); + + // Throttle inbound network_messages + long now = System.currentTimeMillis(); + long elapsed = now - lastReadTimeStamp; + if (elapsed < 10) { + log.debug("We got 2 network_messages received in less than 10 ms. We set the thread to sleep " + + "for 20 ms to avoid getting flooded by our peer. lastReadTimeStamp={}, now={}, elapsed={}", + lastReadTimeStamp, now, elapsed); + Thread.sleep(20); + } + + // Reading the protobuffer message from the inputstream + PB.NetworkEnvelope proto = PB.NetworkEnvelope.parseDelimitedFrom(protoInputStream); + + if (proto == null) { + if (protoInputStream.read() == -1) + log.info("proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown."); + else + log.warn("proto is null. protoInputStream.read()=" + protoInputStream.read()); + stopAndShutDown(CloseConnectionReason.NO_PROTO_BUFFER_ENV); + return; + } + + NetworkEnvelope networkEnvelope = networkProtoResolver.fromProto(proto); + lastReadTimeStamp = now; + log.debug("<< Received networkEnvelope of type: " + networkEnvelope.getClass().getSimpleName()); + + int size = proto.getSerializedSize(); + if (networkEnvelope instanceof Pong || networkEnvelope instanceof RefreshOfferMessage) { + // We only log Pong and RefreshOfferMsg when in dev environment (trace) + log.trace("\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n" + + "New data arrived at inputHandler of connection {}.\n" + + "Received object (truncated)={} / size={}" + + "\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", + connection, + Utilities.toTruncatedString(proto.toString()), + size); + } else { + // We want to log all incoming network_messages (except Pong and RefreshOfferMsg) + // so we log before the data type checks + //log.info("size={}; object={}", size, Utilities.toTruncatedString(rawInputObject.toString(), 100)); + log.debug("\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n" + + "New data arrived at inputHandler of connection {}.\n" + + "Received object (truncated)={} / size={}" + + "\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", + connection, + Utilities.toTruncatedString(proto.toString()), + size); + } + + // We want to track the size of each object even if it is invalid data + connection.statistic.addReceivedBytes(size); + + // We want to track the network_messages also before the checks, so do it early... + connection.statistic.addReceivedMessage(networkEnvelope); + + // First we check the size + boolean exceeds; + if (networkEnvelope instanceof ExtendedDataSizePermission) { + exceeds = size > MAX_PERMITTED_MESSAGE_SIZE; + log.debug("size={}; object={}", size, Utilities.toTruncatedString(proto, 100)); + } else { + exceeds = size > PERMITTED_MESSAGE_SIZE; + } + + if (networkEnvelope instanceof AddPersistableNetworkPayloadMessage && + !((AddPersistableNetworkPayloadMessage) networkEnvelope).getPersistableNetworkPayload().verifyHashSize()) { + log.warn("PersistableNetworkPayload.verifyHashSize failed. hashSize={}; object={}", + ((AddPersistableNetworkPayloadMessage) networkEnvelope).getPersistableNetworkPayload().getHash().length, + Utilities.toTruncatedString(proto)); + if (reportInvalidRequest(RuleViolation.MAX_MSG_SIZE_EXCEEDED)) + return; + } + + if (exceeds) { + log.warn("size > MAX_MSG_SIZE. size={}; object={}", size, Utilities.toTruncatedString(proto)); + + if (reportInvalidRequest(RuleViolation.MAX_MSG_SIZE_EXCEEDED)) + return; + } + + if (connection.violatesThrottleLimit(networkEnvelope) + && reportInvalidRequest(RuleViolation.THROTTLE_LIMIT_EXCEEDED)) + return; + + // Check P2P network ID + if (proto.getMessageVersion() != Version.getP2PMessageVersion() + && reportInvalidRequest(RuleViolation.WRONG_NETWORK_ID)) { + log.warn("RuleViolation.WRONG_NETWORK_ID. version of message={}, app version={}, " + + "proto.toTruncatedString={}", proto.getMessageVersion(), + Version.getP2PMessageVersion(), + Utilities.toTruncatedString(proto.toString())); + return; + } + + if (sharedModel.getSupportedCapabilities() == null && networkEnvelope instanceof SupportedCapabilitiesMessage) + sharedModel.setSupportedCapabilities(((SupportedCapabilitiesMessage) networkEnvelope).getSupportedCapabilities()); + + if (networkEnvelope instanceof CloseConnectionMessage) { + // If we get a CloseConnectionMessage we shut down + log.info("CloseConnectionMessage received. Reason={}\n\t" + + "connection={}", proto.getCloseConnectionMessage().getReason(), connection); + if (CloseConnectionReason.PEER_BANNED.name().equals(proto.getCloseConnectionMessage().getReason())) { + log.warn("We got shut down because we are banned by the other peer. (InputHandler.run CloseConnectionMessage)"); + stopAndShutDown(CloseConnectionReason.PEER_BANNED); + } else { + stopAndShutDown(CloseConnectionReason.CLOSE_REQUESTED_BY_PEER); + } + return; + } else if (!stopped) { + // We don't want to get the activity ts updated by ping/pong msg + if (!(networkEnvelope instanceof KeepAliveMessage)) + connection.statistic.updateLastActivityTimestamp(); + + if (networkEnvelope instanceof GetDataRequest) + connection.setPeerType(PeerType.INITIAL_DATA_REQUEST); + + // First a seed node gets a message from a peer (PreliminaryDataRequest using + // AnonymousMessage interface) which does not have its hidden service + // published, so it does not know its address. As the IncomingConnection does not have the + // peersNodeAddress set that connection cannot be used for outgoing network_messages until we + // get the address set. + // At the data update message (DataRequest using SendersNodeAddressMessage interface) + // after the HS is published we get the peer's address set. + + // There are only those network_messages used for new connections to a peer: + // 1. PreliminaryDataRequest + // 2. DataRequest (implements SendersNodeAddressMessage) + // 3. GetPeersRequest (implements SendersNodeAddressMessage) + // 4. DirectMessage (implements SendersNodeAddressMessage) + if (networkEnvelope instanceof SendersNodeAddressMessage) { + NodeAddress senderNodeAddress = ((SendersNodeAddressMessage) networkEnvelope).getSenderNodeAddress(); + Optional peersNodeAddressOptional = connection.getPeersNodeAddressOptional(); + if (peersNodeAddressOptional.isPresent()) { + // If we have already the peers address we check again if it matches our stored one + checkArgument(peersNodeAddressOptional.get().equals(senderNodeAddress), + "senderNodeAddress not matching connections peer address.\n\t" + + "message=" + networkEnvelope); + } else { + // We must not shut down a banned peer at that moment as it would trigger a connection termination + // and we could not send the CloseConnectionMessage. + // We check for a banned peer inside setPeersNodeAddress() and shut down if banned. + connection.setPeersNodeAddress(senderNodeAddress); + } + } + + if (networkEnvelope instanceof PrefixedSealedAndSignedMessage) + connection.setPeerType(Connection.PeerType.DIRECT_MSG_PEER); + + messageListener.onMessage(networkEnvelope, connection); + } + } catch (InvalidClassException e) { + log.error(e.getMessage()); + e.printStackTrace(); + reportInvalidRequest(RuleViolation.INVALID_CLASS); + } catch (ProtobufferException | NoClassDefFoundError e) { + log.error(e.getMessage()); + e.printStackTrace(); + reportInvalidRequest(RuleViolation.INVALID_DATA_TYPE); + } catch (Throwable t) { + handleException(t); + } + } + } catch (Throwable t) { + handleException(t); + } + } + + private void stopAndShutDown(CloseConnectionReason reason) { + stop(); + sharedModel.shutDown(reason); + } + + private void handleException(Throwable e) { + stop(); + if (sharedModel != null) + sharedModel.handleConnectionException(e); + } + + + private boolean reportInvalidRequest(RuleViolation ruleViolation) { + boolean causedShutDown = sharedModel.reportInvalidRequest(ruleViolation); + if (causedShutDown) + stop(); + return causedShutDown; + } + + @Override + public String toString() { + return "InputHandler{" + + "sharedSpace=" + sharedModel + + ", port=" + portInfo + + ", stopped=" + stopped + + '}'; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/ConnectionListener.java b/p2p/src/main/java/bisq/network/p2p/network/ConnectionListener.java new file mode 100644 index 00000000000..4e37f9c1f70 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/ConnectionListener.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +public interface ConnectionListener { + void onConnection(Connection connection); + + void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection); + + void onError(Throwable throwable); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/DefaultPluggableTransports.java b/p2p/src/main/java/bisq/network/p2p/network/DefaultPluggableTransports.java new file mode 100644 index 00000000000..e5ab8419994 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/DefaultPluggableTransports.java @@ -0,0 +1,63 @@ +/* + * This file is part of Bisq. + * + * bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import java.util.Arrays; +import java.util.List; + +// Taken from Tor Browser's bundled default entries: Browser/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js +public class DefaultPluggableTransports { + public static final List OBFS_3 = Arrays.asList( + "obfs3 83.212.101.3:80 A09D536DD1752D542E1FBB3C9CE4449D51298239", + "obfs3 169.229.59.74:31493 AF9F66B7B04F8FF6F32D455F05135250A16543C9", + "obfs3 169.229.59.75:46328 AF9F66B7B04F8FF6F32D455F05135250A16543C9", + "obfs3 109.105.109.163:38980 1E05F577A0EC0213F971D81BF4D86A9E4E8229ED", + "obfs3 109.105.109.163:47779 4C331FA9B3D1D6D8FB0D8FBBF0C259C360D97E6A"); + + public static final List OBFS_4 = Arrays.asList( + "obfs4 154.35.22.10:15937 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0", + "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0", + "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=1", + "obfs4 83.212.101.3:50002 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0", + "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=2", + "obfs4 154.35.22.11:16488 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0", + "obfs4 154.35.22.12:80 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0", + "obfs4 154.35.22.13:443 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0", + "obfs4 154.35.22.10:80 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0", + "obfs4 154.35.22.10:443 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0", + "obfs4 154.35.22.11:443 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0", + "obfs4 154.35.22.11:80 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0", + "obfs4 154.35.22.9:12166 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0", + "obfs4 154.35.22.9:80 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0", + "obfs4 154.35.22.9:443 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0", + "obfs4 154.35.22.12:4304 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0", + "obfs4 154.35.22.13:16815 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0", + "obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1", + "obfs4 85.17.30.79:443 FC259A04A328A07FED1413E9FC6526530D9FD87A cert=RutxZlu8BtyP+y0NX7bAVD41+J/qXNhHUrKjFkRSdiBAhIHIQLhKQ2HxESAKZprn/lR3KA iat-mode=0", + "obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1", + "obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1", + "obfs4 [2001:470:b381:bfff:216:3eff:fe23:d6c3]:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1", + "obfs4 37.218.240.34:40035 88CD36D45A35271963EF82E511C8827A24730913 cert=eGXYfWODcgqIdPJ+rRupg4GGvVGfh25FWaIXZkit206OSngsp7GAIiGIXOJJROMxEqFKJg iat-mode=1", + "obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0", + "obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0", + "obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0"); + + public static final List MEEK_AMAZON = Arrays.asList("meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2cly7j4zqgua7.cloudfront.net/ front=a0.awsstatic.com"); + + public static final List MEEK_AZURE = Arrays.asList("meek 0.0.2.0:3 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com"); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/InboundConnection.java b/p2p/src/main/java/bisq/network/p2p/network/InboundConnection.java new file mode 100644 index 00000000000..1e6948fab1e --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/InboundConnection.java @@ -0,0 +1,31 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.common.proto.network.NetworkProtoResolver; + +import java.net.Socket; + +public class InboundConnection extends Connection { + public InboundConnection(Socket socket, + MessageListener messageListener, + ConnectionListener connectionListener, + NetworkProtoResolver networkProtoResolver) { + super(socket, messageListener, connectionListener, null, networkProtoResolver); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/LocalhostNetworkNode.java b/p2p/src/main/java/bisq/network/p2p/network/LocalhostNetworkNode.java new file mode 100644 index 00000000000..12f2608a843 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/LocalhostNetworkNode.java @@ -0,0 +1,106 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.NodeAddress; + +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkProtoResolver; + +import java.net.ServerSocket; +import java.net.Socket; + +import java.io.IOException; + +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.Nullable; + +// Run in UserThread +public class LocalhostNetworkNode extends NetworkNode { + private static final Logger log = LoggerFactory.getLogger(LocalhostNetworkNode.class); + + private static int simulateTorDelayTorNode = 500; + private static int simulateTorDelayHiddenService = 500; + + private String address; + + public static void setSimulateTorDelayTorNode(int simulateTorDelayTorNode) { + LocalhostNetworkNode.simulateTorDelayTorNode = simulateTorDelayTorNode; + } + + public static void setSimulateTorDelayHiddenService(int simulateTorDelayHiddenService) { + LocalhostNetworkNode.simulateTorDelayHiddenService = simulateTorDelayHiddenService; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public LocalhostNetworkNode(String address, int port, NetworkProtoResolver networkProtoResolver) { + super(port, networkProtoResolver); + if (null != address && !address.trim().isEmpty()) { + this.address = address; + } + } + + public LocalhostNetworkNode(int port, NetworkProtoResolver networkProtoResolver) { + this(null, port, networkProtoResolver); + } + + @Override + public void start(@Nullable SetupListener setupListener) { + if (setupListener != null) + addSetupListener(setupListener); + + createExecutorService(); + + // simulate tor connection delay + UserThread.runAfter(() -> { + Log.traceCall("torNode created"); + setupListeners.stream().forEach(SetupListener::onTorNodeReady); + + // simulate tor HS publishing delay + UserThread.runAfter(() -> { + Log.traceCall("hiddenService created"); + try { + startServer(new ServerSocket(servicePort)); + } catch (IOException e) { + e.printStackTrace(); + log.error("Exception at startServer: " + e.getMessage()); + } + final NodeAddress nodeAddress = address == null ? + new NodeAddress("localhost", servicePort) : + new NodeAddress(address); + nodeAddressProperty.set(nodeAddress); + setupListeners.stream().forEach(SetupListener::onHiddenServicePublished); + }, simulateTorDelayTorNode, TimeUnit.MILLISECONDS); + }, simulateTorDelayHiddenService, TimeUnit.MILLISECONDS); + } + + // Called from NetworkNode thread + @Override + protected Socket createSocket(NodeAddress peerNodeAddress) throws IOException { + return new Socket(peerNodeAddress.getHostName(), peerNodeAddress.getPort()); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/MessageListener.java b/p2p/src/main/java/bisq/network/p2p/network/MessageListener.java new file mode 100644 index 00000000000..aaf4ad72235 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/MessageListener.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.common.proto.network.NetworkEnvelope; + +public interface MessageListener { + void onMessage(NetworkEnvelope networkEnvelope, Connection connection); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java b/p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java new file mode 100644 index 00000000000..ef1b97d84c0 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java @@ -0,0 +1,456 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.NodeAddress; + +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.util.Utilities; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.SettableFuture; + +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.ReadOnlyObjectProperty; +import javafx.beans.property.SimpleObjectProperty; + +import java.net.ConnectException; +import java.net.ServerSocket; +import java.net.Socket; + +import java.io.IOException; + +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkNotNull; + +// Run in UserThread +public abstract class NetworkNode implements MessageListener { + private static final Logger log = LoggerFactory.getLogger(NetworkNode.class); + private static final int CREATE_SOCKET_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(120); + + final int servicePort; + private final NetworkProtoResolver networkProtoResolver; + + private final CopyOnWriteArraySet inBoundConnections = new CopyOnWriteArraySet<>(); + private final CopyOnWriteArraySet messageListeners = new CopyOnWriteArraySet<>(); + private final CopyOnWriteArraySet connectionListeners = new CopyOnWriteArraySet<>(); + final CopyOnWriteArraySet setupListeners = new CopyOnWriteArraySet<>(); + ListeningExecutorService executorService; + private Server server; + + private volatile boolean shutDownInProgress; + // accessed from different threads + private final CopyOnWriteArraySet outBoundConnections = new CopyOnWriteArraySet<>(); + protected final ObjectProperty nodeAddressProperty = new SimpleObjectProperty<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + NetworkNode(int servicePort, NetworkProtoResolver networkProtoResolver) { + this.servicePort = servicePort; + this.networkProtoResolver = networkProtoResolver; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + // Calls this (and other registered) setup listener's ``onTorNodeReady()`` and ``onHiddenServicePublished`` + // when the events happen. + abstract public void start(@Nullable SetupListener setupListener); + + public SettableFuture sendMessage(@NotNull NodeAddress peersNodeAddress, NetworkEnvelope networkEnvelope) { + log.debug("sendMessage: peersNodeAddress=" + peersNodeAddress + "\n\tmessage=" + Utilities.toTruncatedString(networkEnvelope)); + checkNotNull(peersNodeAddress, "peerAddress must not be null"); + + Connection connection = getOutboundConnection(peersNodeAddress); + if (connection == null) + connection = getInboundConnection(peersNodeAddress); + + if (connection != null) { + return sendMessage(connection, networkEnvelope); + } else { + log.debug("We have not found any connection for peerAddress {}.\n\t" + + "We will create a new outbound connection.", peersNodeAddress); + + final SettableFuture resultFuture = SettableFuture.create(); + ListenableFuture future = executorService.submit(() -> { + Thread.currentThread().setName("NetworkNode:SendMessage-to-" + peersNodeAddress); + OutboundConnection outboundConnection = null; + try { + // can take a while when using tor + long startTs = System.currentTimeMillis(); + log.debug("Start create socket to peersNodeAddress {}", peersNodeAddress.getFullAddress()); + Socket socket = createSocket(peersNodeAddress); + long duration = System.currentTimeMillis() - startTs; + log.debug("Socket creation to peersNodeAddress {} took {} ms", peersNodeAddress.getFullAddress(), + duration); + + if (duration > CREATE_SOCKET_TIMEOUT) + throw new TimeoutException("A timeout occurred when creating a socket."); + + // Tor needs sometimes quite long to create a connection. To avoid that we get too many double + // sided connections we check again if we still don't have any connection for that node address. + Connection existingConnection = getInboundConnection(peersNodeAddress); + if (existingConnection == null) + existingConnection = getOutboundConnection(peersNodeAddress); + + if (existingConnection != null) { + log.debug("We found in the meantime a connection for peersNodeAddress {}, " + + "so we use that for sending the message.\n" + + "That can happen if Tor needs long for creating a new outbound connection.\n" + + "We might have got a new inbound or outbound connection.", + peersNodeAddress.getFullAddress()); + try { + socket.close(); + } catch (Throwable throwable) { + log.error("Error at closing socket " + throwable); + } + existingConnection.sendMessage(networkEnvelope); + return existingConnection; + } else { + final ConnectionListener connectionListener = new ConnectionListener() { + @Override + public void onConnection(Connection connection) { + if (!connection.isStopped()) { + outBoundConnections.add((OutboundConnection) connection); + printOutBoundConnections(); + connectionListeners.stream().forEach(e -> e.onConnection(connection)); + } + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + log.trace("onDisconnect connectionListener\n\tconnection={}" + connection); + //noinspection SuspiciousMethodCalls + outBoundConnections.remove(connection); + printOutBoundConnections(); + connectionListeners.stream().forEach(e -> e.onDisconnect(closeConnectionReason, connection)); + } + + @Override + public void onError(Throwable throwable) { + log.error("new OutboundConnection.ConnectionListener.onError " + throwable.getMessage()); + connectionListeners.stream().forEach(e -> e.onError(throwable)); + } + }; + outboundConnection = new OutboundConnection(socket, + NetworkNode.this, + connectionListener, + peersNodeAddress, + networkProtoResolver); + + log.debug("\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n" + + "NetworkNode created new outbound connection:" + + "\nmyNodeAddress=" + getNodeAddress() + + "\npeersNodeAddress=" + peersNodeAddress + + "\nuid=" + outboundConnection.getUid() + + "\nmessage=" + networkEnvelope + + "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); + + // can take a while when using tor + outboundConnection.sendMessage(networkEnvelope); + return outboundConnection; + } + } catch (Throwable throwable) { + if (!(throwable instanceof ConnectException || + throwable instanceof IOException || + throwable instanceof TimeoutException)) { + log.warn("Executing task failed. " + throwable.getMessage()); + } + throw throwable; + } + }); + + Futures.addCallback(future, new FutureCallback() { + public void onSuccess(Connection connection) { + UserThread.execute(() -> resultFuture.set(connection)); + } + + public void onFailure(@NotNull Throwable throwable) { + log.info("onFailure at sendMessage: peersNodeAddress=" + peersNodeAddress + "\n\tmessage=" + Utilities.toTruncatedString(networkEnvelope)); + UserThread.execute(() -> resultFuture.setException(throwable)); + } + }); + + return resultFuture; + } + } + + @Nullable + private InboundConnection getInboundConnection(@NotNull NodeAddress peersNodeAddress) { + Optional inboundConnectionOptional = lookupInBoundConnection(peersNodeAddress); + if (inboundConnectionOptional.isPresent()) { + InboundConnection connection = inboundConnectionOptional.get(); + log.trace("We have found a connection in inBoundConnections. Connection.uid=" + connection.getUid()); + if (connection.isStopped()) { + log.warn("We have a connection which is already stopped in inBoundConnections. Connection.uid=" + connection.getUid()); + inBoundConnections.remove(connection); + return null; + } else { + return connection; + } + } else { + return null; + } + } + + @Nullable + private OutboundConnection getOutboundConnection(@NotNull NodeAddress peersNodeAddress) { + Optional outboundConnectionOptional = lookupOutBoundConnection(peersNodeAddress); + if (outboundConnectionOptional.isPresent()) { + OutboundConnection connection = outboundConnectionOptional.get(); + log.trace("We have found a connection in outBoundConnections. Connection.uid=" + connection.getUid()); + if (connection.isStopped()) { + log.warn("We have a connection which is already stopped in outBoundConnections. Connection.uid=" + connection.getUid()); + outBoundConnections.remove(connection); + return null; + } else { + return connection; + } + } else { + return null; + } + } + + @Nullable + public Socks5Proxy getSocksProxy() { + return null; + } + + + public SettableFuture sendMessage(Connection connection, NetworkEnvelope networkEnvelope) { + Log.traceCall("\n\tmessage=" + Utilities.toTruncatedString(networkEnvelope) + "\n\tconnection=" + connection); + // connection.sendMessage might take a bit (compression, write to stream), so we use a thread to not block + ListenableFuture future = executorService.submit(() -> { + Thread.currentThread().setName("NetworkNode:SendMessage-to-" + connection.getUid()); + connection.sendMessage(networkEnvelope); + return connection; + }); + final SettableFuture resultFuture = SettableFuture.create(); + Futures.addCallback(future, new FutureCallback() { + public void onSuccess(Connection connection) { + UserThread.execute(() -> resultFuture.set(connection)); + } + + public void onFailure(@NotNull Throwable throwable) { + UserThread.execute(() -> resultFuture.setException(throwable)); + } + }); + return resultFuture; + } + + public ReadOnlyObjectProperty nodeAddressProperty() { + return nodeAddressProperty; + } + + public Set getAllConnections() { + // Can contain inbound and outbound connections with the same peer node address, + // as connection hashcode is using uid and port info + Set set = new HashSet<>(inBoundConnections); + set.addAll(outBoundConnections); + return set; + } + + public Set getConfirmedConnections() { + // Can contain inbound and outbound connections with the same peer node address, + // as connection hashcode is using uid and port info + return getAllConnections().stream() + .filter(Connection::hasPeersNodeAddress) + .collect(Collectors.toSet()); + } + + public Set getNodeAddressesOfConfirmedConnections() { + // Does not contain inbound and outbound connection with the same peer node address + return getConfirmedConnections().stream() + .map(e -> e.getPeersNodeAddressOptional().get()) + .collect(Collectors.toSet()); + } + + + public void shutDown(Runnable shutDownCompleteHandler) { + Log.traceCall(); + if (!shutDownInProgress) { + shutDownInProgress = true; + if (server != null) { + server.shutDown(); + server = null; + } + + getAllConnections().stream().forEach(c -> c.shutDown(CloseConnectionReason.APP_SHUT_DOWN)); + log.debug("NetworkNode shutdown complete"); + } + if (shutDownCompleteHandler != null) shutDownCompleteHandler.run(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // SetupListener + /////////////////////////////////////////////////////////////////////////////////////////// + + void addSetupListener(SetupListener setupListener) { + boolean isNewEntry = setupListeners.add(setupListener); + if (!isNewEntry) + log.warn("Try to add a setupListener which was already added."); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + messageListeners.stream().forEach(e -> e.onMessage(networkEnvelope, connection)); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listeners + /////////////////////////////////////////////////////////////////////////////////////////// + + public void addConnectionListener(ConnectionListener connectionListener) { + boolean isNewEntry = connectionListeners.add(connectionListener); + if (!isNewEntry) + log.warn("Try to add a connectionListener which was already added.\n\tconnectionListener={}\n\tconnectionListeners={}" + , connectionListener, connectionListeners); + } + + public void removeConnectionListener(ConnectionListener connectionListener) { + boolean contained = connectionListeners.remove(connectionListener); + if (!contained) + log.debug("Try to remove a connectionListener which was never added.\n\t" + + "That might happen because of async behaviour of CopyOnWriteArraySet"); + } + + public void addMessageListener(MessageListener messageListener) { + boolean isNewEntry = messageListeners.add(messageListener); + if (!isNewEntry) + log.warn("Try to add a messageListener which was already added."); + } + + public void removeMessageListener(MessageListener messageListener) { + boolean contained = messageListeners.remove(messageListener); + if (!contained) + log.debug("Try to remove a messageListener which was never added.\n\t" + + "That might happen because of async behaviour of CopyOnWriteArraySet"); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Protected + /////////////////////////////////////////////////////////////////////////////////////////// + + void createExecutorService() { + if (executorService == null) + executorService = Utilities.getListeningExecutorService("NetworkNode-" + servicePort, 15, 30, 60); + } + + void startServer(ServerSocket serverSocket) { + final ConnectionListener connectionListener = new ConnectionListener() { + @Override + public void onConnection(Connection connection) { + if (!connection.isStopped()) { + inBoundConnections.add((InboundConnection) connection); + printInboundConnections(); + connectionListeners.stream().forEach(e -> e.onConnection(connection)); + } + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + log.trace("onDisconnect at server socket connectionListener\n\tconnection={}" + connection); + //noinspection SuspiciousMethodCalls + inBoundConnections.remove(connection); + printInboundConnections(); + connectionListeners.stream().forEach(e -> e.onDisconnect(closeConnectionReason, connection)); + } + + @Override + public void onError(Throwable throwable) { + log.error("server.ConnectionListener.onError " + throwable.getMessage()); + connectionListeners.stream().forEach(e -> e.onError(throwable)); + } + }; + server = new Server(serverSocket, + NetworkNode.this, + connectionListener, + networkProtoResolver); + executorService.submit(server); + } + + private Optional lookupOutBoundConnection(NodeAddress peersNodeAddress) { + log.trace("lookupOutboundConnection for peersNodeAddress={}", peersNodeAddress.getFullAddress()); + printOutBoundConnections(); + return outBoundConnections.stream() + .filter(connection -> connection.hasPeersNodeAddress() && + peersNodeAddress.equals(connection.getPeersNodeAddressOptional().get())).findAny(); + } + + private void printOutBoundConnections() { + StringBuilder sb = new StringBuilder("outBoundConnections size()=") + .append(outBoundConnections.size()).append("\n\toutBoundConnections="); + outBoundConnections.stream().forEach(e -> sb.append(e).append("\n\t")); + log.debug(sb.toString()); + } + + private Optional lookupInBoundConnection(NodeAddress peersNodeAddress) { + log.trace("lookupInboundConnection for peersNodeAddress={}", peersNodeAddress.getFullAddress()); + printInboundConnections(); + return inBoundConnections.stream() + .filter(connection -> connection.hasPeersNodeAddress() && + peersNodeAddress.equals(connection.getPeersNodeAddressOptional().get())).findAny(); + } + + private void printInboundConnections() { + StringBuilder sb = new StringBuilder("inBoundConnections size()=") + .append(inBoundConnections.size()).append("\n\tinBoundConnections="); + inBoundConnections.stream().forEach(e -> sb.append(e).append("\n\t")); + log.debug(sb.toString()); + } + + abstract protected Socket createSocket(NodeAddress peersNodeAddress) throws IOException; + + @Nullable + public NodeAddress getNodeAddress() { + return nodeAddressProperty.get(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/OutboundConnection.java b/p2p/src/main/java/bisq/network/p2p/network/OutboundConnection.java new file mode 100644 index 00000000000..5b27d02e2d5 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/OutboundConnection.java @@ -0,0 +1,34 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.NodeAddress; + +import bisq.common.proto.network.NetworkProtoResolver; + +import java.net.Socket; + +public class OutboundConnection extends Connection { + public OutboundConnection(Socket socket, + MessageListener messageListener, + ConnectionListener connectionListener, + NodeAddress peersNodeAddress, + NetworkProtoResolver networkProtoResolver) { + super(socket, messageListener, connectionListener, peersNodeAddress, networkProtoResolver); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/ProtoOutputStream.java b/p2p/src/main/java/bisq/network/p2p/network/ProtoOutputStream.java new file mode 100644 index 00000000000..410fd5c1485 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/ProtoOutputStream.java @@ -0,0 +1,75 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.peers.keepalive.messages.KeepAliveMessage; + +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import java.io.IOException; +import java.io.OutputStream; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.concurrent.NotThreadSafe; + +@NotThreadSafe +class ProtoOutputStream { + private static final Logger log = LoggerFactory.getLogger(ProtoOutputStream.class); + + private final OutputStream delegate; + private final Statistic statistic; + + ProtoOutputStream(OutputStream delegate, Statistic statistic) { + this.delegate = delegate; + this.statistic = statistic; + } + + void writeEnvelope(NetworkEnvelope envelope) { + try { + writeEnvelopeOrThrow(envelope); + } catch (IOException e) { + log.error("Failed to write envelope", e); + throw new BisqRuntimeException("Failed to write envelope", e); + } + } + + void onConnectionShutdown() { + try { + delegate.close(); + } catch (Throwable t) { + log.error("Failed to close connection", t); + } + } + + private void writeEnvelopeOrThrow(NetworkEnvelope envelope) throws IOException { + PB.NetworkEnvelope proto = envelope.toProtoNetworkEnvelope(); + proto.writeDelimitedTo(delegate); + delegate.flush(); + + statistic.addSentBytes(proto.getSerializedSize()); + statistic.addSentMessage(envelope); + + if (!(envelope instanceof KeepAliveMessage)) { + statistic.updateLastActivityTimestamp(); + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/RuleViolation.java b/p2p/src/main/java/bisq/network/p2p/network/RuleViolation.java new file mode 100644 index 00000000000..9b162c19ce3 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/RuleViolation.java @@ -0,0 +1,34 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +public enum RuleViolation { + INVALID_DATA_TYPE(2), + WRONG_NETWORK_ID(0), + MAX_MSG_SIZE_EXCEEDED(2), + THROTTLE_LIMIT_EXCEEDED(2), + TOO_MANY_REPORTED_PEERS_SENT(2), + PEER_BANNED(0), + INVALID_CLASS(0); + + public final int maxTolerance; + + RuleViolation(int maxTolerance) { + this.maxTolerance = maxTolerance; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/Server.java b/p2p/src/main/java/bisq/network/p2p/network/Server.java new file mode 100644 index 00000000000..a7a41cbda54 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/Server.java @@ -0,0 +1,121 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkProtoResolver; + +import java.net.ServerSocket; +import java.net.Socket; +import java.net.SocketException; + +import java.io.IOException; + +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// Runs in UserThread +class Server implements Runnable { + private static final Logger log = LoggerFactory.getLogger(Server.class); + + private final MessageListener messageListener; + private final ConnectionListener connectionListener; + + // accessed from different threads + private final ServerSocket serverSocket; + private final Set connections = new CopyOnWriteArraySet<>(); + private volatile boolean stopped; + private final NetworkProtoResolver networkProtoResolver; + + + public Server(ServerSocket serverSocket, + MessageListener messageListener, + ConnectionListener connectionListener, + NetworkProtoResolver networkProtoResolver) { + this.networkProtoResolver = networkProtoResolver; + Log.traceCall(); + this.serverSocket = serverSocket; + this.messageListener = messageListener; + this.connectionListener = connectionListener; + } + + @Override + public void run() { + Log.traceCall(); + try { + // Thread created by NetworkNode + Thread.currentThread().setName("Server-" + serverSocket.getLocalPort()); + try { + while (!stopped && !Thread.currentThread().isInterrupted()) { + log.debug("Ready to accept new clients on port " + serverSocket.getLocalPort()); + final Socket socket = serverSocket.accept(); + if (!stopped && !Thread.currentThread().isInterrupted()) { + log.debug("Accepted new client on localPort/port " + socket.getLocalPort() + "/" + socket.getPort()); + InboundConnection connection = new InboundConnection(socket, + messageListener, + connectionListener, + networkProtoResolver); + + log.debug("\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n" + + "Server created new inbound connection:" + + "\nlocalPort/port=" + serverSocket.getLocalPort() + + "/" + socket.getPort() + + "\nconnection.uid=" + connection.getUid() + + "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); + + if (!stopped) + connections.add(connection); + else + connection.shutDown(CloseConnectionReason.APP_SHUT_DOWN); + } + } + } catch (IOException e) { + if (!stopped) + e.printStackTrace(); + } + } catch (Throwable t) { + log.error("Executing task failed. " + t.getMessage()); + t.printStackTrace(); + } + } + + public void shutDown() { + Log.traceCall(); + if (!stopped) { + stopped = true; + + connections.stream().forEach(c -> c.shutDown(CloseConnectionReason.APP_SHUT_DOWN)); + + try { + if (!serverSocket.isClosed()) + serverSocket.close(); + } catch (SocketException e) { + log.debug("SocketException at shutdown might be expected " + e.getMessage()); + } catch (IOException e) { + log.debug("Exception at shutdown. " + e.getMessage()); + } finally { + log.debug("Server shutdown complete"); + } + } else { + log.warn("stopped already called ast shutdown"); + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/SetupListener.java b/p2p/src/main/java/bisq/network/p2p/network/SetupListener.java new file mode 100644 index 00000000000..6b20a088ecd --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/SetupListener.java @@ -0,0 +1,29 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +public interface SetupListener { + void onTorNodeReady(); + + void onHiddenServicePublished(); + + @SuppressWarnings("unused") + void onSetupFailed(Throwable throwable); + + void onRequestCustomBridges(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/Statistic.java b/p2p/src/main/java/bisq/network/p2p/network/Statistic.java new file mode 100644 index 00000000000..0809e49f545 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/Statistic.java @@ -0,0 +1,170 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.common.UserThread; +import bisq.common.proto.network.NetworkEnvelope; + +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.LongProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleLongProperty; + +import java.util.Date; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class Statistic { + + /////////////////////////////////////////////////////////////////////////////////////////// + // Static + /////////////////////////////////////////////////////////////////////////////////////////// + + private final static LongProperty totalSentBytes = new SimpleLongProperty(0); + private final static LongProperty totalReceivedBytes = new SimpleLongProperty(0); + + public static long getTotalSentBytes() { + return totalSentBytes.get(); + } + + public static LongProperty totalSentBytesProperty() { + return totalSentBytes; + } + + public static long getTotalReceivedBytes() { + return totalReceivedBytes.get(); + } + + public static LongProperty totalReceivedBytesProperty() { + return totalReceivedBytes; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Instance fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final Date creationDate; + private long lastActivityTimestamp = System.currentTimeMillis(); + private final LongProperty sentBytes = new SimpleLongProperty(0); + private final LongProperty receivedBytes = new SimpleLongProperty(0); + private final Map receivedMessages = new ConcurrentHashMap<>(); + private final Map sentMessages = new ConcurrentHashMap<>(); + private final IntegerProperty roundTripTime = new SimpleIntegerProperty(0); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public Statistic() { + creationDate = new Date(); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Update, increment + /////////////////////////////////////////////////////////////////////////////////////////// + + public void updateLastActivityTimestamp() { + UserThread.execute(() -> lastActivityTimestamp = System.currentTimeMillis()); + } + + public void addSentBytes(int value) { + UserThread.execute(() -> { + sentBytes.set(sentBytes.get() + value); + totalSentBytes.set(totalSentBytes.get() + value); + }); + } + + public void addReceivedBytes(int value) { + UserThread.execute(() -> { + receivedBytes.set(receivedBytes.get() + value); + totalReceivedBytes.set(totalReceivedBytes.get() + value); + }); + } + + // TODO would need msg inspection to get useful information... + public void addReceivedMessage(NetworkEnvelope networkEnvelope) { + String messageClassName = networkEnvelope.getClass().getSimpleName(); + int counter = 1; + if (receivedMessages.containsKey(messageClassName)) + counter = receivedMessages.get(messageClassName) + 1; + + receivedMessages.put(messageClassName, counter); + } + + public void addSentMessage(NetworkEnvelope networkEnvelope) { + String messageClassName = networkEnvelope.getClass().getSimpleName(); + int counter = 1; + if (sentMessages.containsKey(messageClassName)) + counter = sentMessages.get(messageClassName) + 1; + + sentMessages.put(messageClassName, counter); + } + + public void setRoundTripTime(int roundTripTime) { + this.roundTripTime.set(roundTripTime); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Getters + /////////////////////////////////////////////////////////////////////////////////////////// + + public long getLastActivityTimestamp() { + return lastActivityTimestamp; + } + + public long getLastActivityAge() { + return System.currentTimeMillis() - lastActivityTimestamp; + } + + public long getSentBytes() { + return sentBytes.get(); + } + + public LongProperty sentBytesProperty() { + return sentBytes; + } + + public long getReceivedBytes() { + return receivedBytes.get(); + } + + public LongProperty receivedBytesProperty() { + return receivedBytes; + } + + public Date getCreationDate() { + return creationDate; + } + + public IntegerProperty roundTripTimeProperty() { + return roundTripTime; + } + + @Override + public String toString() { + return "Statistic{" + + "creationDate=" + creationDate + + ", lastActivityTimestamp=" + lastActivityTimestamp + + ", sentBytes=" + sentBytes + + ", receivedBytes=" + receivedBytes + + '}'; + } + +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/SupportedCapabilitiesListener.java b/p2p/src/main/java/bisq/network/p2p/network/SupportedCapabilitiesListener.java new file mode 100644 index 00000000000..1209fd3cc6b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/SupportedCapabilitiesListener.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import java.util.List; + +public interface SupportedCapabilitiesListener { + void onChanged(List supportedCapabilities); +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/SynchronizedProtoOutputStream.java b/p2p/src/main/java/bisq/network/p2p/network/SynchronizedProtoOutputStream.java new file mode 100644 index 00000000000..4614e20f79b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/SynchronizedProtoOutputStream.java @@ -0,0 +1,71 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.common.proto.network.NetworkEnvelope; + +import java.io.OutputStream; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.concurrent.ThreadSafe; + +@ThreadSafe +class SynchronizedProtoOutputStream extends ProtoOutputStream { + private static final Logger log = LoggerFactory.getLogger(SynchronizedProtoOutputStream.class); + + private final ExecutorService executorService; + + SynchronizedProtoOutputStream(OutputStream delegate, Statistic statistic) { + super(delegate, statistic); + this.executorService = Executors.newSingleThreadExecutor(); + } + + @Override + void writeEnvelope(NetworkEnvelope envelope) { + Future future = executorService.submit(() -> super.writeEnvelope(envelope)); + try { + future.get(); + } catch (InterruptedException e) { + Thread currentThread = Thread.currentThread(); + currentThread.interrupt(); + final String msg = "Thread " + currentThread + " was interrupted. InterruptedException=" + e; + log.error(msg); + throw new BisqRuntimeException(msg, e); + } catch (ExecutionException e) { + final String msg = "Failed to write envelope. ExecutionException " + e; + log.error(msg); + throw new BisqRuntimeException(msg, e); + } + } + + void onConnectionShutdown() { + try { + executorService.shutdownNow(); + super.onConnectionShutdown(); + } catch (Throwable t) { + log.error("Failed to handle connection shutdown. Throwable={}", t); + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java b/p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java new file mode 100644 index 00000000000..16adbecdb4d --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java @@ -0,0 +1,303 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.Utils; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.storage.FileUtil; +import bisq.common.util.Utilities; + +import org.berndpruenster.netlayer.tor.HiddenServiceSocket; +import org.berndpruenster.netlayer.tor.NativeTor; +import org.berndpruenster.netlayer.tor.Tor; +import org.berndpruenster.netlayer.tor.TorCtlException; +import org.berndpruenster.netlayer.tor.TorSocket; + +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; + +import org.fxmisc.easybind.EasyBind; +import org.fxmisc.easybind.monadic.MonadicBinding; + +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; + +import java.net.Socket; + +import java.nio.file.Paths; + +import java.io.File; +import java.io.IOException; + +import java.util.Date; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; + +// Run in UserThread +public class TorNetworkNode extends NetworkNode { + private static final Logger log = LoggerFactory.getLogger(TorNetworkNode.class); + + private static final int MAX_RESTART_ATTEMPTS = 5; + private static final long SHUT_DOWN_TIMEOUT = 5; + + private HiddenServiceSocket hiddenServiceSocket; + private final File torDir; + private final BridgeAddressProvider bridgeAddressProvider; + private Timer shutDownTimeoutTimer; + private int restartCounter; + @SuppressWarnings("FieldCanBeLocal") + private MonadicBinding allShutDown; + private Tor tor; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public TorNetworkNode(int servicePort, File torDir, NetworkProtoResolver networkProtoResolver, BridgeAddressProvider bridgeAddressProvider) { + super(servicePort, networkProtoResolver); + this.torDir = torDir; + this.bridgeAddressProvider = bridgeAddressProvider; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void start(@Nullable SetupListener setupListener) { + final File hiddenservice = new File(Paths.get(torDir.getAbsolutePath(), "hiddenservice").toString()); + FileUtil.rollingBackup(hiddenservice, "private_key", 20); + + if (setupListener != null) + addSetupListener(setupListener); + + createExecutorService(); + + // Create the tor node (takes about 6 sec.) + createTorAndHiddenService(torDir, Utils.findFreeSystemPort(), servicePort, bridgeAddressProvider.getBridgeAddresses()); + } + + @Override + protected Socket createSocket(NodeAddress peerNodeAddress) throws IOException { + checkArgument(peerNodeAddress.getHostName().endsWith(".onion"), "PeerAddress is not an onion address"); + // If streamId is null stream isolation gets deactivated. + // Hidden services use stream isolation by default so we pass null. + return new TorSocket(peerNodeAddress.getHostName(), peerNodeAddress.getPort(), null); + } + + // TODO handle failure more cleanly + public Socks5Proxy getSocksProxy() { + try { + tor = Tor.getDefault(); + return tor != null ? tor.getProxy() : null; + } catch (TorCtlException e) { + log.error("TorCtlException at getSocksProxy: " + e.toString()); + e.printStackTrace(); + return null; + } catch (Throwable t) { + log.error("Error at getSocksProxy: " + t.toString()); + return null; + } + } + + public void shutDown(@Nullable Runnable shutDownCompleteHandler) { + Log.traceCall(); + BooleanProperty torNetworkNodeShutDown = torNetworkNodeShutDown(); + BooleanProperty networkNodeShutDown = networkNodeShutDown(); + BooleanProperty shutDownTimerTriggered = shutDownTimerTriggered(); + + // Need to store allShutDown to not get garbage collected + allShutDown = EasyBind.combine(torNetworkNodeShutDown, networkNodeShutDown, shutDownTimerTriggered, (a, b, c) -> (a && b) || c); + allShutDown.subscribe((observable, oldValue, newValue) -> { + if (newValue) { + shutDownTimeoutTimer.stop(); + long ts = System.currentTimeMillis(); + log.debug("Shutdown executorService"); + try { + MoreExecutors.shutdownAndAwaitTermination(executorService, 500, TimeUnit.MILLISECONDS); + log.debug("Shutdown executorService done after " + (System.currentTimeMillis() - ts) + " ms."); + log.debug("Shutdown completed"); + } catch (Throwable t) { + log.error("Shutdown executorService failed with exception: " + t.getMessage()); + t.printStackTrace(); + } finally { + try { + if (shutDownCompleteHandler != null) + shutDownCompleteHandler.run(); + } catch (Throwable ignore) { + } + } + } + }); + } + + private BooleanProperty torNetworkNodeShutDown() { + final BooleanProperty done = new SimpleBooleanProperty(); + if (executorService != null) { + executorService.submit(() -> { + Utilities.setThreadName("torNetworkNodeShutDown"); + long ts = System.currentTimeMillis(); + log.debug("Shutdown torNetworkNode"); + try { + if (tor != null) + tor.shutdown(); + log.debug("Shutdown torNetworkNode done after " + (System.currentTimeMillis() - ts) + " ms."); + } catch (Throwable e) { + log.error("Shutdown torNetworkNode failed with exception: " + e.getMessage()); + e.printStackTrace(); + } finally { + UserThread.execute(() -> done.set(true)); + } + }); + } else { + done.set(true); + } + return done; + } + + private BooleanProperty networkNodeShutDown() { + final BooleanProperty done = new SimpleBooleanProperty(); + super.shutDown(() -> done.set(true)); + return done; + } + + private BooleanProperty shutDownTimerTriggered() { + final BooleanProperty done = new SimpleBooleanProperty(); + shutDownTimeoutTimer = UserThread.runAfter(() -> { + log.error("A timeout occurred at shutDown"); + done.set(true); + }, SHUT_DOWN_TIMEOUT); + return done; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // shutdown, restart + /////////////////////////////////////////////////////////////////////////////////////////// + + private void restartTor(String errorMessage) { + Log.traceCall(); + log.info("Restarting Tor"); + restartCounter++; + if (restartCounter <= MAX_RESTART_ATTEMPTS) { + UserThread.execute(() -> { + setupListeners.stream().forEach(SetupListener::onRequestCustomBridges); + }); + log.warn("We stop tor as starting tor with the default bridges failed. We request user to add custom bridges."); + shutDown(null); + } else { + String msg = "We tried to restart Tor " + restartCounter + + " times, but it continued to fail with error message:\n" + + errorMessage + "\n\n" + + "Please check your internet connection and firewall and try to start again."; + log.error(msg); + throw new RuntimeException(msg); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // create tor + /////////////////////////////////////////////////////////////////////////////////////////// + + private void createTorAndHiddenService(File torDir, int localPort, int servicePort, @Nullable List bridgeEntries) { + Log.traceCall(); + if (bridgeEntries != null) + log.info("Using bridges: {}", bridgeEntries.stream().collect(Collectors.joining(","))); + + ListenableFuture future = executorService.submit(() -> { + try { + long ts1 = new Date().getTime(); + log.info("Starting tor"); + Tor.setDefault(new NativeTor(torDir, bridgeEntries)); + log.info("\n################################################################\n" + + "Tor started after {} ms. Start publishing hidden service.\n" + + "################################################################", + (new Date().getTime() - ts1)); // takes usually a few seconds + + UserThread.execute(() -> setupListeners.stream().forEach(SetupListener::onTorNodeReady)); + + long ts2 = new Date().getTime(); + hiddenServiceSocket = new HiddenServiceSocket(localPort, "", servicePort); + hiddenServiceSocket.addReadyListener(socket -> { + try { + log.info("\n################################################################\n" + + "Tor hidden service published after {} ms. Socked={}\n" + + "################################################################", + (new Date().getTime() - ts2), socket); //takes usually 30-40 sec + new Thread() { + @Override + public void run() { + try { + Log.traceCall("hiddenService created"); + nodeAddressProperty.set(new NodeAddress(hiddenServiceSocket.getServiceName() + ":" + hiddenServiceSocket.getHiddenServicePort())); + startServer(socket); + UserThread.execute(() -> setupListeners.stream().forEach(SetupListener::onHiddenServicePublished)); + } catch (final Exception e1) { + log.error(e1.toString()); + e1.printStackTrace(); + } + } + }.start(); + } catch (final Exception e) { + log.error(e.toString()); + e.printStackTrace(); + } + return null; + }); + log.info("It will take some time for the HS to be reachable (~40 seconds). You will be notified about this"); + } catch (TorCtlException e) { + log.error("Tor node creation failed: " + (e.getCause() != null ? e.getCause().toString() : e.toString())); + restartTor(e.getMessage()); + } catch (Throwable ignore) { + } + + return null; + }); + Futures.addCallback(future, new FutureCallback() { + public void onSuccess(Void ignore) { + } + + public void onFailure(@NotNull Throwable throwable) { + UserThread.execute(() -> { + log.error("Hidden service creation failed" + throwable); + restartTor(throwable.getMessage()); + }); + } + }); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/BanList.java b/p2p/src/main/java/bisq/network/p2p/peers/BanList.java new file mode 100644 index 00000000000..ddb8622beeb --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/BanList.java @@ -0,0 +1,50 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers; + +import bisq.network.NetworkOptionKeys; +import bisq.network.p2p.NodeAddress; + +import com.google.inject.name.Named; + +import javax.inject.Inject; + +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public class BanList { + private static List list = new ArrayList<>(); + + public static void add(NodeAddress onionAddress) { + list.add(onionAddress); + } + + public static boolean isBanned(NodeAddress nodeAddress) { + return list.contains(nodeAddress); + } + + @Inject + public BanList(@Named(NetworkOptionKeys.BAN_LIST) String banList) { + if (banList != null && !banList.isEmpty()) + BanList.list = Arrays.asList(StringUtils.deleteWhitespace(banList).split(",")).stream().map(NodeAddress::new).collect(Collectors.toList()); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/BroadcastHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/BroadcastHandler.java new file mode 100644 index 00000000000..bcd3d676d16 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/BroadcastHandler.java @@ -0,0 +1,293 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.storage.messages.BroadcastMessage; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.util.Utilities; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@Slf4j +public class BroadcastHandler implements PeerManager.Listener { + private static final long TIMEOUT = 60; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + interface ResultHandler { + void onCompleted(BroadcastHandler broadcastHandler); + + void onFault(BroadcastHandler broadcastHandler); + } + + public interface Listener { + @SuppressWarnings({"EmptyMethod", "UnusedParameters"}) + void onBroadcasted(BroadcastMessage message, int numOfCompletedBroadcasts); + + void onBroadcastedToFirstPeer(BroadcastMessage message); + + void onBroadcastCompleted(BroadcastMessage message, int numOfCompletedBroadcasts, int numOfFailedBroadcasts); + + @SuppressWarnings({"EmptyMethod", "UnusedParameters"}) + void onBroadcastFailed(String errorMessage); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Instance fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + public final String uid; + private final PeerManager peerManager; + private boolean stopped = false; + private int numOfCompletedBroadcasts = 0; + private int numOfFailedBroadcasts = 0; + private BroadcastMessage message; + private ResultHandler resultHandler; + @Nullable + private Listener listener; + private int numPeers; + private Timer timeoutTimer; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public BroadcastHandler(NetworkNode networkNode, PeerManager peerManager) { + this.networkNode = networkNode; + this.peerManager = peerManager; + peerManager.addListener(this); + uid = UUID.randomUUID().toString(); + } + + public void cancel() { + stopped = true; + onFault("Broadcast canceled.", false); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void broadcast(BroadcastMessage message, @Nullable NodeAddress sender, ResultHandler resultHandler, + @Nullable Listener listener, boolean isDataOwner) { + this.message = message; + this.resultHandler = resultHandler; + this.listener = listener; + + Log.traceCall("Sender=" + sender + "\n\t" + + "Message=" + Utilities.toTruncatedString(message)); + Set connectedPeersSet = networkNode.getConfirmedConnections() + .stream() + .filter(connection -> !connection.getPeersNodeAddressOptional().get().equals(sender)) + .collect(Collectors.toSet()); + if (!connectedPeersSet.isEmpty()) { + numOfCompletedBroadcasts = 0; + + List connectedPeersList = new ArrayList<>(connectedPeersSet); + Collections.shuffle(connectedPeersList); + numPeers = connectedPeersList.size(); + int delay = 50; + if (!isDataOwner) { + // for not data owner (relay nodes) we send to max. 7 nodes and use a longer delay + numPeers = Math.min(7, connectedPeersList.size()); + delay = 100; + } + + long timeoutDelay = TIMEOUT + delay * numPeers; + timeoutTimer = UserThread.runAfter(() -> { // setup before sending to avoid race conditions + String errorMessage = "Timeout: Broadcast did not complete after " + timeoutDelay + " sec."; + + log.debug(errorMessage + "\n\t" + + "numOfPeers=" + numPeers + "\n\t" + + "numOfCompletedBroadcasts=" + numOfCompletedBroadcasts + "\n\t" + + "numOfFailedBroadcasts=" + numOfFailedBroadcasts); + onFault(errorMessage, false); + }, timeoutDelay); + + log.debug("Broadcast message to {} peers out of {} total connected peers.", numPeers, connectedPeersSet.size()); + for (int i = 0; i < numPeers; i++) { + if (stopped) + break; // do not continue sending after a timeout or a cancellation + + final long minDelay = (i + 1) * delay; + final long maxDelay = (i + 2) * delay; + final Connection connection = connectedPeersList.get(i); + UserThread.runAfterRandomDelay(() -> sendToPeer(connection, message), minDelay, maxDelay, TimeUnit.MILLISECONDS); + } + } else { + onFault("Message not broadcasted because we have no available peers yet.\n\t" + + "message = " + Utilities.toTruncatedString(message), false); + } + } + + private void sendToPeer(Connection connection, BroadcastMessage message) { + String errorMessage = "Message not broadcasted because we have stopped the handler already.\n\t" + + "message = " + Utilities.toTruncatedString(message); + if (!stopped) { + if (!connection.isStopped()) { + if (connection.noCapabilityRequiredOrCapabilityIsSupported(message)) { + NodeAddress nodeAddress = connection.getPeersNodeAddressOptional().get(); + log.trace("Broadcast message to " + nodeAddress + "."); + SettableFuture future = networkNode.sendMessage(connection, message); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + numOfCompletedBroadcasts++; + if (!stopped) { + log.trace("Broadcast to " + nodeAddress + " succeeded."); + + if (listener != null) + listener.onBroadcasted(message, numOfCompletedBroadcasts); + + if (listener != null && numOfCompletedBroadcasts == 1) + listener.onBroadcastedToFirstPeer(message); + + if (numOfCompletedBroadcasts + numOfFailedBroadcasts == numPeers) { + if (listener != null) + listener.onBroadcastCompleted(message, numOfCompletedBroadcasts, numOfFailedBroadcasts); + + cleanup(); + resultHandler.onCompleted(BroadcastHandler.this); + } + } else { + // TODO investigate why that is called very often at seed nodes + onFault("stopped at onSuccess: " + errorMessage, false); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + numOfFailedBroadcasts++; + if (!stopped) { + log.info("Broadcast to " + nodeAddress + " failed.\n\t" + + "ErrorMessage=" + throwable.getMessage()); + if (numOfCompletedBroadcasts + numOfFailedBroadcasts == numPeers) + onFault("stopped at onFailure: " + errorMessage); + } else { + onFault("stopped at onFailure: " + errorMessage); + } + } + }); + } else { + log.debug("We did not send the message because the peer does not support our required capabilities. message={}, peers supportedCapabilities={}", Utilities.toTruncatedString(message, 200), connection.getSupportedCapabilities()); + } + } else { + onFault("Connection stopped already", false); + } + } else { + onFault("stopped at sendToPeer: " + errorMessage, false); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PeerManager.Listener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onAllConnectionsLost() { + onFault("All connections lost", false); + } + + @Override + public void onNewConnectionAfterAllConnectionsLost() { + } + + @Override + public void onAwakeFromStandby() { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private void cleanup() { + stopped = true; + peerManager.removeListener(this); + if (timeoutTimer != null) { + timeoutTimer.stop(); + timeoutTimer = null; + } + } + + private void onFault(String errorMessage) { + onFault(errorMessage, true); + } + + private void onFault(String errorMessage, boolean logWarning) { + cleanup(); + + if (logWarning) + log.warn(errorMessage); + else + log.debug(errorMessage); + + if (listener != null) + listener.onBroadcastFailed(errorMessage); + + if (listener != null && (numOfCompletedBroadcasts + numOfFailedBroadcasts == numPeers || stopped)) + listener.onBroadcastCompleted(message, numOfCompletedBroadcasts, numOfFailedBroadcasts); + + resultHandler.onFault(this); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof BroadcastHandler)) return false; + + BroadcastHandler that = (BroadcastHandler) o; + + return !(uid != null ? !uid.equals(that.uid) : that.uid != null); + } + + @Override + public int hashCode() { + return uid != null ? uid.hashCode() : 0; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/Broadcaster.java b/p2p/src/main/java/bisq/network/p2p/peers/Broadcaster.java new file mode 100644 index 00000000000..004fcfae802 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/Broadcaster.java @@ -0,0 +1,85 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.storage.messages.BroadcastMessage; + +import bisq.common.app.Log; +import bisq.common.util.Utilities; + +import javax.inject.Inject; + +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + +import org.jetbrains.annotations.Nullable; + +public class Broadcaster implements BroadcastHandler.ResultHandler { + private final NetworkNode networkNode; + private final PeerManager peerManager; + + private final Set broadcastHandlers = new CopyOnWriteArraySet<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public Broadcaster(NetworkNode networkNode, PeerManager peerManager) { + this.networkNode = networkNode; + this.peerManager = peerManager; + } + + public void shutDown() { + broadcastHandlers.stream().forEach(BroadcastHandler::cancel); + broadcastHandlers.clear(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void broadcast(BroadcastMessage message, @Nullable NodeAddress sender, + @Nullable BroadcastHandler.Listener listener, boolean isDataOwner) { + Log.traceCall("Sender=" + sender + "\n\t" + + "Message=" + Utilities.toTruncatedString(message)); + + BroadcastHandler broadcastHandler = new BroadcastHandler(networkNode, peerManager); + broadcastHandler.broadcast(message, sender, this, listener, isDataOwner); + broadcastHandlers.add(broadcastHandler); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // BroadcastHandler.ResultHandler implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onCompleted(BroadcastHandler broadcastHandler) { + broadcastHandlers.remove(broadcastHandler); + } + + @Override + public void onFault(BroadcastHandler broadcastHandler) { + broadcastHandlers.remove(broadcastHandler); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java b/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java new file mode 100644 index 00000000000..ed968f98178 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java @@ -0,0 +1,702 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers; + +import bisq.network.NetworkOptionKeys; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.InboundConnection; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.network.RuleViolation; +import bisq.network.p2p.peers.peerexchange.Peer; +import bisq.network.p2p.peers.peerexchange.PeerList; +import bisq.network.p2p.seed.SeedNodeRepository; + +import bisq.common.Clock; +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.persistable.PersistedDataHost; +import bisq.common.proto.persistable.PersistenceProtoResolver; +import bisq.common.storage.Storage; + +import com.google.inject.name.Named; + +import javax.inject.Inject; + +import java.io.File; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Slf4j +public class PeerManager implements ConnectionListener, PersistedDataHost { + + /////////////////////////////////////////////////////////////////////////////////////////// + // Static + /////////////////////////////////////////////////////////////////////////////////////////// + + private static final long CHECK_MAX_CONN_DELAY_SEC = 10; + // Use a long delay as the bootstrapping peer might need a while until it knows its onion address + private static final long REMOVE_ANONYMOUS_PEER_SEC = 240; + + private static final int MAX_REPORTED_PEERS = 1000; + private static final int MAX_PERSISTED_PEERS = 500; + // max age for reported peers is 14 days + private static final long MAX_AGE = TimeUnit.DAYS.toMillis(14); + // Age of what we consider connected peers still as live peers + private static final long MAX_AGE_LIVE_PEERS = TimeUnit.MINUTES.toMillis(30); + private static final boolean PRINT_REPORTED_PEERS_DETAILS = true; + private Set latestLivePeers = new HashSet<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onAllConnectionsLost(); + + void onNewConnectionAfterAllConnectionsLost(); + + void onAwakeFromStandby(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Instance fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final Clock clock; + + private int maxConnections; + private final Set seedNodeAddresses; + + private final Storage storage; + private final HashSet persistedPeers = new HashSet<>(); + private final Set reportedPeers = new HashSet<>(); + private final Clock.Listener listener; + private final List listeners = new CopyOnWriteArrayList<>(); + private Timer checkMaxConnectionsTimer; + private boolean stopped; + private boolean lostAllConnections; + + @Getter + private int minConnections; + private int disconnectFromSeedNode; + private int maxConnectionsPeer; + private int maxConnectionsNonDirect; + private int maxConnectionsAbsolute; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public PeerManager(NetworkNode networkNode, + SeedNodeRepository seedNodeRepository, + Clock clock, + PersistenceProtoResolver persistenceProtoResolver, + @Named(NetworkOptionKeys.MAX_CONNECTIONS) int maxConnections, + @Named(Storage.STORAGE_DIR) File storageDir) { + this.networkNode = networkNode; + this.seedNodeAddresses = new HashSet<>(seedNodeRepository.getSeedNodeAddresses()); + this.clock = clock; + storage = new Storage<>(storageDir, persistenceProtoResolver); + + this.networkNode.addConnectionListener(this); + + setConnectionLimits(maxConnections); + + // we check if app was idle for more then 5 sec. + listener = new Clock.Listener() { + @Override + public void onSecondTick() { + } + + @Override + public void onMinuteTick() { + } + + @Override + public void onMissedSecondTick(long missed) { + if (missed > Clock.IDLE_TOLERANCE) { + log.info("We have been in standby mode for {} sec", missed / 1000); + stopped = false; + listeners.stream().forEach(Listener::onAwakeFromStandby); + } + } + }; + clock.addListener(listener); + } + + public void shutDown() { + Log.traceCall(); + + networkNode.removeConnectionListener(this); + clock.removeListener(listener); + stopCheckMaxConnectionsTimer(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void readPersisted() { + PeerList persistedPeerList = storage.initAndGetPersistedWithFileName("PeerList", 1000); + if (persistedPeerList != null) + this.persistedPeers.addAll(persistedPeerList.getList()); + } + + public int getMaxConnections() { + return maxConnectionsAbsolute; + } + + public void addListener(Listener listener) { + listeners.add(listener); + } + + public void removeListener(Listener listener) { + listeners.remove(listener); + } + + // Modify this to change the relationships between connection limits. + // maxConnections default 12 + private void setConnectionLimits(int maxConnections) { + this.maxConnections = maxConnections; // app node 12; seedNode 30 + minConnections = Math.max(1, (int) Math.round(maxConnections * 0.7)); // app node 1-8; seedNode 21 + disconnectFromSeedNode = maxConnections; // app node 12; seedNode 30 + maxConnectionsPeer = Math.max(4, (int) Math.round(maxConnections * 1.3)); // app node 16; seedNode 39 + maxConnectionsNonDirect = Math.max(8, (int) Math.round(maxConnections * 1.7)); // app node 20; seedNode 51 + maxConnectionsAbsolute = Math.max(12, (int) Math.round(maxConnections * 2.5)); // app node 30; seedNode 66 + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + final boolean seedNode = isSeedNode(connection); + + final Optional addressOptional = connection.getPeersNodeAddressOptional(); + log.debug("onConnection: peer = {}{}", + (addressOptional.isPresent() ? addressOptional.get().getFullAddress() : "not known yet (connection id=" + connection.getUid() + ")"), + seedNode ? " (SeedNode)" : ""); + + if (seedNode) + connection.setPeerType(Connection.PeerType.SEED_NODE); + + doHouseKeeping(); + + if (lostAllConnections) { + lostAllConnections = false; + stopped = false; + listeners.stream().forEach(Listener::onNewConnectionAfterAllConnectionsLost); + } + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + log.info("onDisconnect called: nodeAddress={}, closeConnectionReason={}", connection.getPeersNodeAddressOptional(), closeConnectionReason); + + final Optional addressOptional = connection.getPeersNodeAddressOptional(); + log.debug("onDisconnect: peer = {}{} / closeConnectionReason: {}", + (addressOptional.isPresent() ? addressOptional.get().getFullAddress() : "not known yet (connection id=" + connection.getUid() + ")"), + isSeedNode(connection) ? " (SeedNode)" : "", + closeConnectionReason); + + handleConnectionFault(connection); + + lostAllConnections = networkNode.getAllConnections().isEmpty(); + if (lostAllConnections) { + stopped = true; + log.warn("\n------------------------------------------------------------\n" + + "All connections lost\n" + + "------------------------------------------------------------"); + listeners.stream().forEach(Listener::onAllConnectionsLost); + } + + if (connection.getPeersNodeAddressOptional().isPresent() && isNodeBanned(closeConnectionReason, connection)) { + final NodeAddress nodeAddress = connection.getPeersNodeAddressOptional().get(); + seedNodeAddresses.remove(nodeAddress); + removePersistedPeer(nodeAddress); + removeReportedPeer(nodeAddress); + } + } + + public boolean isNodeBanned(CloseConnectionReason closeConnectionReason, Connection connection) { + return closeConnectionReason == CloseConnectionReason.PEER_BANNED && + connection.getPeersNodeAddressOptional().isPresent(); + } + + @Override + public void onError(Throwable throwable) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Housekeeping + /////////////////////////////////////////////////////////////////////////////////////////// + + private void doHouseKeeping() { + if (checkMaxConnectionsTimer == null) { + printConnectedPeers(); + checkMaxConnectionsTimer = UserThread.runAfter(() -> { + stopCheckMaxConnectionsTimer(); + if (!stopped) { + removeAnonymousPeers(); + removeSuperfluousSeedNodes(); + removeTooOldReportedPeers(); + removeTooOldPersistedPeers(); + checkMaxConnections(); + } else { + log.debug("We have stopped already. We ignore that checkMaxConnectionsTimer.run call."); + } + }, CHECK_MAX_CONN_DELAY_SEC); + } + } + + private boolean checkMaxConnections() { + Log.traceCall("maxConnections=" + maxConnections); + Set allConnections = networkNode.getAllConnections(); + int size = allConnections.size(); + log.info("We have {} connections open. Our limit is {}", size, maxConnections); + + if (size > maxConnections) { + log.info("We have too many connections open. " + + "Lets try first to remove the inbound connections of type PEER."); + List candidates = allConnections.stream() + .filter(e -> e instanceof InboundConnection) + .filter(e -> e.getPeerType() == Connection.PeerType.PEER) + .collect(Collectors.toList()); + + if (candidates.isEmpty()) { + log.debug("No candidates found. We check if we exceed our " + + "maxConnectionsPeer limit of {}", maxConnectionsPeer); + if (size > maxConnectionsPeer) { + log.info("Lets try to remove ANY connection of type PEER."); + candidates = allConnections.stream() + .filter(e -> e.getPeerType() == Connection.PeerType.PEER) + .collect(Collectors.toList()); + + if (candidates.isEmpty()) { + log.debug("No candidates found. We check if we exceed our " + + "maxConnectionsNonDirect limit of {}", maxConnectionsNonDirect); + if (size > maxConnectionsNonDirect) { + log.info("Lets try to remove any connection which is not of type DIRECT_MSG_PEER or INITIAL_DATA_REQUEST."); + candidates = allConnections.stream() + .filter(e -> e.getPeerType() != Connection.PeerType.DIRECT_MSG_PEER && e.getPeerType() != Connection.PeerType.INITIAL_DATA_REQUEST) + .collect(Collectors.toList()); + + if (candidates.isEmpty()) { + log.debug("No candidates found. We check if we exceed our " + + "maxConnectionsAbsolute limit of {}", maxConnectionsAbsolute); + if (size > maxConnectionsAbsolute) { + log.info("We reached abs. max. connections. Lets try to remove ANY connection."); + candidates = allConnections.stream().collect(Collectors.toList()); + } + } + } + } + } + } + + if (!candidates.isEmpty()) { + candidates.sort((o1, o2) -> ((Long) o1.getStatistic().getLastActivityTimestamp()).compareTo(((Long) o2.getStatistic().getLastActivityTimestamp()))); + Connection connection = candidates.remove(0); + log.info("checkMaxConnections: Num candidates for shut down={}. We close oldest connection: {}", candidates.size(), connection); + log.debug("We are going to shut down the oldest connection.\n\tconnection=" + connection.toString()); + if (!connection.isStopped()) + connection.shutDown(CloseConnectionReason.TOO_MANY_CONNECTIONS_OPEN, () -> UserThread.runAfter(this::checkMaxConnections, 100, TimeUnit.MILLISECONDS)); + return true; + } else { + log.warn("No candidates found to remove (That case should not be possible as we use in the " + + "last case all connections).\n\t" + + "allConnections={}", allConnections); + return false; + } + } else { + log.trace("We only have {} connections open and don't need to close any.", size); + return false; + } + } + + private void removeAnonymousPeers() { + Log.traceCall(); + networkNode.getAllConnections().stream() + .filter(connection -> !connection.hasPeersNodeAddress()) + .forEach(connection -> UserThread.runAfter(() -> { + // We give 240 seconds delay and check again if still no address is set + // Keep the delay long as we don't want to disconnect a peer in case we are a seed node just + // because he needs longer for the HS publishing + if (!connection.hasPeersNodeAddress() && !connection.isStopped()) { + log.debug("We close the connection as the peer address is still unknown.\n\t" + + "connection=" + connection); + connection.shutDown(CloseConnectionReason.UNKNOWN_PEER_ADDRESS); + } + }, REMOVE_ANONYMOUS_PEER_SEC)); + } + + private void removeSuperfluousSeedNodes() { + Log.traceCall(); + if (networkNode.getConfirmedConnections().size() > disconnectFromSeedNode) { + List seedNodes = networkNode.getConfirmedConnections().stream() + .filter(this::isSeedNode) + .collect(Collectors.toList()); + + if (!seedNodes.isEmpty()) { + seedNodes.sort((o1, o2) -> ((Long) o1.getStatistic().getLastActivityTimestamp()).compareTo(((Long) o2.getStatistic().getLastActivityTimestamp()))); + log.debug("Number of seed node connections to disconnect. Current size=" + seedNodes.size()); + Connection connection = seedNodes.get(0); + log.debug("We are going to shut down the oldest connection.\n\tconnection=" + connection.toString()); + connection.shutDown(CloseConnectionReason.TOO_MANY_SEED_NODES_CONNECTED, + () -> UserThread.runAfter(this::removeSuperfluousSeedNodes, 200, TimeUnit.MILLISECONDS)); + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Reported peers + /////////////////////////////////////////////////////////////////////////////////////////// + + private boolean removeReportedPeer(Peer reportedPeer) { + boolean contained = reportedPeers.remove(reportedPeer); + printReportedPeers(); + return contained; + } + + @SuppressWarnings("UnusedReturnValue") + @Nullable + private Peer removeReportedPeer(NodeAddress nodeAddress) { + List reportedPeersClone = new ArrayList<>(reportedPeers); + Optional reportedPeerOptional = reportedPeersClone.stream() + .filter(e -> e.getNodeAddress().equals(nodeAddress)).findAny(); + if (reportedPeerOptional.isPresent()) { + Peer reportedPeer = reportedPeerOptional.get(); + removeReportedPeer(reportedPeer); + return reportedPeer; + } else { + return null; + } + } + + private void removeTooOldReportedPeers() { + Log.traceCall(); + List reportedPeersClone = new ArrayList<>(reportedPeers); + Set reportedPeersToRemove = reportedPeersClone.stream() + .filter(reportedPeer -> new Date().getTime() - reportedPeer.getDate().getTime() > MAX_AGE) + .collect(Collectors.toSet()); + reportedPeersToRemove.forEach(this::removeReportedPeer); + } + + public Set getReportedPeers() { + return reportedPeers; + } + + public void addToReportedPeers(Set reportedPeersToAdd, Connection connection) { + printNewReportedPeers(reportedPeersToAdd); + + // We check if the reported msg is not violating our rules + if (reportedPeersToAdd.size() <= (MAX_REPORTED_PEERS + maxConnectionsAbsolute + 10)) { + reportedPeers.addAll(reportedPeersToAdd); + purgeReportedPeersIfExceeds(); + + persistedPeers.addAll(reportedPeersToAdd); + purgePersistedPeersIfExceeds(); + storage.queueUpForSave(new PeerList(new ArrayList<>(persistedPeers)), 2000); + + printReportedPeers(); + } else { + // If a node is trying to send too many list we treat it as rule violation. + // Reported list include the connected list. We use the max value and give some extra headroom. + // Will trigger a shutdown after 2nd time sending too much + connection.reportIllegalRequest(RuleViolation.TOO_MANY_REPORTED_PEERS_SENT); + } + } + + private void purgeReportedPeersIfExceeds() { + Log.traceCall(); + int size = reportedPeers.size(); + if (size > MAX_REPORTED_PEERS) { + log.info("We have already {} reported peers which exceeds our limit of {}." + + "We remove random peers from the reported peers list.", size, MAX_REPORTED_PEERS); + int diff = size - MAX_REPORTED_PEERS; + List list = new ArrayList<>(reportedPeers); + // we dont use sorting by lastActivityDate to keep it more random + for (int i = 0; i < diff; i++) { + if (!list.isEmpty()) { + Peer toRemove = list.remove(new Random().nextInt(list.size())); + removeReportedPeer(toRemove); + } + } + } else { + log.trace("No need to purge reported peers.\n\tWe don't have more then {} reported peers yet.", MAX_REPORTED_PEERS); + } + } + + private void printReportedPeers() { + if (!reportedPeers.isEmpty()) { + //noinspection ConstantConditions + if (PRINT_REPORTED_PEERS_DETAILS) { + StringBuilder result = new StringBuilder("\n\n------------------------------------------------------------\n" + + "Collected reported peers:"); + List reportedPeersClone = new ArrayList<>(reportedPeers); + reportedPeersClone.stream().forEach(e -> result.append("\n").append(e)); + result.append("\n------------------------------------------------------------\n"); + log.debug(result.toString()); + } + log.debug("Number of reported peers: {}", reportedPeers.size()); + } + } + + private void printNewReportedPeers(Set reportedPeers) { + //noinspection ConstantConditions + if (PRINT_REPORTED_PEERS_DETAILS) { + StringBuilder result = new StringBuilder("We received new reportedPeers:"); + List reportedPeersClone = new ArrayList<>(reportedPeers); + reportedPeersClone.stream().forEach(e -> result.append("\n\t").append(e)); + log.debug(result.toString()); + } + log.debug("Number of new arrived reported peers: {}", reportedPeers.size()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Persisted list + /////////////////////////////////////////////////////////////////////////////////////////// + + private boolean removePersistedPeer(Peer persistedPeer) { + if (persistedPeers.contains(persistedPeer)) { + persistedPeers.remove(persistedPeer); + storage.queueUpForSave(new PeerList(new ArrayList<>(persistedPeers)), 2000); + return true; + } else { + return false; + } + } + + @SuppressWarnings("UnusedReturnValue") + private boolean removePersistedPeer(NodeAddress nodeAddress) { + Optional persistedPeerOptional = getPersistedPeerOptional(nodeAddress); + return persistedPeerOptional.isPresent() && removePersistedPeer(persistedPeerOptional.get()); + } + + private Optional getPersistedPeerOptional(NodeAddress nodeAddress) { + return persistedPeers.stream() + .filter(e -> e.getNodeAddress().equals(nodeAddress)).findAny(); + } + + private void removeTooOldPersistedPeers() { + Log.traceCall(); + Set persistedPeersToRemove = persistedPeers.stream() + .filter(reportedPeer -> new Date().getTime() - reportedPeer.getDate().getTime() > MAX_AGE) + .collect(Collectors.toSet()); + persistedPeersToRemove.forEach(this::removePersistedPeer); + } + + private void purgePersistedPeersIfExceeds() { + Log.traceCall(); + int size = persistedPeers.size(); + int limit = MAX_PERSISTED_PEERS; + if (size > limit) { + log.trace("We have already {} persisted peers which exceeds our limit of {}." + + "We remove random peers from the persisted peers list.", size, limit); + int diff = size - limit; + List list = new ArrayList<>(persistedPeers); + // we dont use sorting by lastActivityDate to avoid attack vectors and keep it more random + for (int i = 0; i < diff; i++) { + if (!list.isEmpty()) { + Peer toRemove = list.remove(new Random().nextInt(list.size())); + removePersistedPeer(toRemove); + } + } + } else { + log.trace("No need to purge persisted peers.\n\tWe don't have more then {} persisted peers yet.", MAX_PERSISTED_PEERS); + } + } + + public Set getPersistedPeers() { + return persistedPeers; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Misc + /////////////////////////////////////////////////////////////////////////////////////////// + + public boolean hasSufficientConnections() { + return networkNode.getNodeAddressesOfConfirmedConnections().size() >= minConnections; + } + + private boolean isSeedNode(Peer reportedPeer) { + return seedNodeAddresses.contains(reportedPeer.getNodeAddress()); + } + + public boolean isSeedNode(NodeAddress nodeAddress) { + return seedNodeAddresses.contains(nodeAddress); + } + + public boolean isSeedNode(Connection connection) { + return connection.hasPeersNodeAddress() && seedNodeAddresses.contains(connection.getPeersNodeAddressOptional().get()); + } + + public boolean isSelf(Peer reportedPeer) { + return isSelf(reportedPeer.getNodeAddress()); + } + + public boolean isSelf(NodeAddress nodeAddress) { + return nodeAddress.equals(networkNode.getNodeAddress()); + } + + public boolean isConfirmed(Peer reportedPeer) { + return isConfirmed(reportedPeer.getNodeAddress()); + } + + // Checks if that connection has the peers node address + public boolean isConfirmed(NodeAddress nodeAddress) { + return networkNode.getNodeAddressesOfConfirmedConnections().contains(nodeAddress); + } + + public void handleConnectionFault(Connection connection) { + connection.getPeersNodeAddressOptional().ifPresent(nodeAddress -> handleConnectionFault(nodeAddress, connection)); + } + + public void handleConnectionFault(NodeAddress nodeAddress) { + handleConnectionFault(nodeAddress, null); + } + + public void handleConnectionFault(NodeAddress nodeAddress, @Nullable Connection connection) { + Log.traceCall("nodeAddress=" + nodeAddress); + log.debug("handleConnectionFault called: nodeAddress=" + nodeAddress); + boolean doRemovePersistedPeer = false; + removeReportedPeer(nodeAddress); + Optional persistedPeerOptional = getPersistedPeerOptional(nodeAddress); + if (persistedPeerOptional.isPresent()) { + Peer persistedPeer = persistedPeerOptional.get(); + persistedPeer.increaseFailedConnectionAttempts(); + doRemovePersistedPeer = persistedPeer.tooManyFailedConnectionAttempts(); + } + doRemovePersistedPeer = doRemovePersistedPeer || (connection != null && connection.getRuleViolation() != null); + + if (doRemovePersistedPeer) + removePersistedPeer(nodeAddress); + else + removeTooOldPersistedPeers(); + } + + public void shutDownConnection(Connection connection, CloseConnectionReason closeConnectionReason) { + if (connection.getPeerType() != Connection.PeerType.DIRECT_MSG_PEER) + connection.shutDown(closeConnectionReason); + } + + public void shutDownConnection(NodeAddress peersNodeAddress, CloseConnectionReason closeConnectionReason) { + networkNode.getAllConnections().stream() + .filter(connection -> connection.getPeersNodeAddressOptional().isPresent() && + connection.getPeersNodeAddressOptional().get().equals(peersNodeAddress) && + connection.getPeerType() != Connection.PeerType.DIRECT_MSG_PEER) + .findAny() + .ifPresent(connection -> connection.shutDown(closeConnectionReason)); + } + + // Delivers the live peers from the last 30 min (MAX_AGE_LIVE_PEERS) + // We include older peers to avoid risks for network partitioning + public Set getLivePeers(NodeAddress excludedNodeAddress) { + int oldNumLatestLivePeers = latestLivePeers.size(); + Set currentLivePeers = new HashSet<>(getConnectedReportedPeers().stream() + .filter(e -> !isSeedNode(e)) + .filter(e -> !e.getNodeAddress().equals(excludedNodeAddress)) + .collect(Collectors.toSet())); + latestLivePeers.addAll(currentLivePeers); + long maxAge = new Date().getTime() - MAX_AGE_LIVE_PEERS; + latestLivePeers = latestLivePeers.stream() + .filter(peer -> peer.getDate().getTime() > maxAge) + .collect(Collectors.toSet()); + if (oldNumLatestLivePeers != latestLivePeers.size()) + log.info("Num of latestLivePeers={}, latestLivePeers={}", latestLivePeers.size(), latestLivePeers); + return latestLivePeers; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private Set getConnectedReportedPeers() { + // networkNode.getConfirmedConnections includes: + // filter(connection -> connection.getPeersNodeAddressOptional().isPresent()) + return networkNode.getConfirmedConnections().stream() + .map((Connection connection) -> { + List supportedCapabilities = connection.getSupportedCapabilities(); + // If we have a new connection the supportedCapabilities is empty. + // We lookup if we have already stored the supportedCapabilities at the persisted or reported peers + // and if so we use that. + if (supportedCapabilities == null || supportedCapabilities.isEmpty()) { + Set allPeers = new HashSet<>(getPersistedPeers()); + allPeers.addAll(getReportedPeers()); + supportedCapabilities = allPeers.stream().filter(peer -> peer.getNodeAddress().equals(connection.getPeersNodeAddressOptional().get())) + .filter(peer -> !peer.getSupportedCapabilities().isEmpty()) + .findAny() + .map(Peer::getSupportedCapabilities) + .filter(list -> !list.isEmpty()) + .orElse(new ArrayList<>()); + } + Peer peer = new Peer(connection.getPeersNodeAddressOptional().get(), supportedCapabilities); + connection.addWeakRCapabilitiesListener(peer); + return peer; + }) + .collect(Collectors.toSet()); + } + + private void stopCheckMaxConnectionsTimer() { + if (checkMaxConnectionsTimer != null) { + checkMaxConnectionsTimer.stop(); + checkMaxConnectionsTimer = null; + } + } + + private void printConnectedPeers() { + if (!networkNode.getConfirmedConnections().isEmpty()) { + StringBuilder result = new StringBuilder("\n\n------------------------------------------------------------\n" + + "Connected peers for node " + networkNode.getNodeAddress() + ":"); + networkNode.getConfirmedConnections().stream().forEach(e -> result.append("\n") + .append(e.getPeersNodeAddressOptional().get()).append(" ").append(e.getPeerType())); + result.append("\n------------------------------------------------------------\n"); + log.debug(result.toString()); + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/GetDataRequestHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/GetDataRequestHandler.java new file mode 100644 index 00000000000..2ab9a0beac6 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/GetDataRequestHandler.java @@ -0,0 +1,224 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata; + +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.getdata.messages.GetDataRequest; +import bisq.network.p2p.peers.getdata.messages.GetDataResponse; +import bisq.network.p2p.peers.getdata.messages.GetUpdatedDataRequest; +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.util.Utilities; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.NotNull; + +@Slf4j +public class GetDataRequestHandler { + private static final long TIMEOUT = 60; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onComplete(); + + void onFault(String errorMessage, Connection connection); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final P2PDataStorage dataStorage; + private final Listener listener; + private Timer timeoutTimer; + private boolean stopped; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public GetDataRequestHandler(NetworkNode networkNode, P2PDataStorage dataStorage, Listener listener) { + this.networkNode = networkNode; + this.dataStorage = dataStorage; + this.listener = listener; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void handle(GetDataRequest getDataRequest, final Connection connection) { + Log.traceCall(getDataRequest + "\n\tconnection=" + connection); + + GetDataResponse getDataResponse = new GetDataResponse(getFilteredProtectedStorageEntries(getDataRequest, connection), + getFilteredPersistableNetworkPayload(getDataRequest, connection), + getDataRequest.getNonce(), + getDataRequest instanceof GetUpdatedDataRequest); + + if (timeoutTimer == null) { + timeoutTimer = UserThread.runAfter(() -> { // setup before sending to avoid race conditions + String errorMessage = "A timeout occurred for getDataResponse " + + " on connection:" + connection; + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_TIMEOUT, connection); + }, + TIMEOUT, TimeUnit.SECONDS); + } + + SettableFuture future = networkNode.sendMessage(connection, getDataResponse); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + if (!stopped) { + log.trace("Send DataResponse to {} succeeded. getDataResponse={}", + connection.getPeersNodeAddressOptional(), getDataResponse); + cleanup(); + listener.onComplete(); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onSuccess call."); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending getDataRequest to " + connection + + " failed. That is expected if the peer is offline. getDataResponse=" + getDataResponse + "." + + "Exception: " + throwable.getMessage(); + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_FAILURE, connection); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onFailure call."); + } + } + }); + } + + private Set getFilteredPersistableNetworkPayload(GetDataRequest getDataRequest, Connection connection) { + final Set tempLookupSet = new HashSet<>(); + Set excludedKeysAsByteArray = P2PDataStorage.ByteArray.convertBytesSetToByteArraySet(getDataRequest.getExcludedKeys()); + + return dataStorage.getAppendOnlyDataStoreMap().entrySet().stream() + .filter(e -> !excludedKeysAsByteArray.contains(e.getKey())) + .map(Map.Entry::getValue) + .filter(payload -> (connection.noCapabilityRequiredOrCapabilityIsSupported(payload))) + .filter(payload -> tempLookupSet.add(new P2PDataStorage.ByteArray(payload.getHash()))) + .collect(Collectors.toSet()); + } + + private Set getFilteredProtectedStorageEntries(GetDataRequest getDataRequest, Connection connection) { + final Set filteredDataSet = new HashSet<>(); + final Set lookupSet = new HashSet<>(); + + Set excludedKeysAsByteArray = P2PDataStorage.ByteArray.convertBytesSetToByteArraySet(getDataRequest.getExcludedKeys()); + Set filteredSet = dataStorage.getMap().entrySet().stream() + .filter(e -> !excludedKeysAsByteArray.contains(e.getKey())) + .map(Map.Entry::getValue) + .collect(Collectors.toSet()); + + for (ProtectedStorageEntry protectedStorageEntry : filteredSet) { + final ProtectedStoragePayload protectedStoragePayload = protectedStorageEntry.getProtectedStoragePayload(); + boolean doAdd = false; + if (protectedStoragePayload instanceof CapabilityRequiringPayload) { + final List requiredCapabilities = ((CapabilityRequiringPayload) protectedStoragePayload).getRequiredCapabilities(); + final List supportedCapabilities = connection.getSupportedCapabilities(); + if (supportedCapabilities != null) { + for (int messageCapability : requiredCapabilities) { + for (int connectionCapability : supportedCapabilities) { + if (messageCapability == connectionCapability) { + doAdd = true; + break; + } + } + } + if (!doAdd) + log.debug("We do not send the message to the peer because he does not support the required capability for that message type.\n" + + "Required capabilities is: " + requiredCapabilities.toString() + "\n" + + "Supported capabilities is: " + supportedCapabilities.toString() + "\n" + + "storagePayload is: " + Utilities.toTruncatedString(protectedStoragePayload)); + } else { + log.debug("We do not send the message to the peer because he uses an old version which does not support capabilities.\n" + + "Required capabilities is: " + requiredCapabilities.toString() + "\n" + + "storagePayload is: " + Utilities.toTruncatedString(protectedStoragePayload)); + } + } else { + doAdd = true; + } + if (doAdd) { + if (lookupSet.add(protectedStoragePayload.hashCode())) + filteredDataSet.add(protectedStorageEntry); + } + } + + return filteredDataSet; + } + + public void stop() { + cleanup(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private void handleFault(String errorMessage, CloseConnectionReason closeConnectionReason, Connection connection) { + if (!stopped) { + log.info(errorMessage + "\n\tcloseConnectionReason=" + closeConnectionReason); + cleanup(); + listener.onFault(errorMessage, connection); + } else { + log.warn("We have already stopped (handleFault)"); + } + } + + private void cleanup() { + stopped = true; + if (timeoutTimer != null) { + timeoutTimer.stop(); + timeoutTimer = null; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataHandler.java new file mode 100644 index 00000000000..eaac5021e56 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataHandler.java @@ -0,0 +1,354 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.getdata.messages.GetDataRequest; +import bisq.network.p2p.peers.getdata.messages.GetDataResponse; +import bisq.network.p2p.peers.getdata.messages.GetUpdatedDataRequest; +import bisq.network.p2p.peers.getdata.messages.PreliminaryGetDataRequest; +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.LazyProcessedPayload; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkPayload; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; + +@Slf4j +class RequestDataHandler implements MessageListener { + private static final long TIMEOUT = 60; + private NodeAddress peersNodeAddress; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onComplete(); + + @SuppressWarnings("UnusedParameters") + void onFault(String errorMessage, @SuppressWarnings("SameParameterValue") @Nullable Connection connection); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final P2PDataStorage dataStorage; + private final PeerManager peerManager; + private final Listener listener; + private Timer timeoutTimer; + private final int nonce = new Random().nextInt(); + private boolean stopped; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public RequestDataHandler(NetworkNode networkNode, + P2PDataStorage dataStorage, + PeerManager peerManager, + Listener listener) { + this.networkNode = networkNode; + this.dataStorage = dataStorage; + this.peerManager = peerManager; + this.listener = listener; + } + + public void cancel() { + cleanup(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void requestData(NodeAddress nodeAddress, boolean isPreliminaryDataRequest) { + Log.traceCall("nodeAddress=" + nodeAddress); + peersNodeAddress = nodeAddress; + if (!stopped) { + GetDataRequest getDataRequest; + + // We collect the keys of the PersistableNetworkPayload items so we exclude them in our request. + // PersistedStoragePayload items don't get removed, so we don't have an issue with the case that + // an object gets removed in between PreliminaryGetDataRequest and the GetUpdatedDataRequest and we would + // miss that event if we do not load the full set or use some delta handling. + Set excludedKeys = dataStorage.getAppendOnlyDataStoreMap().keySet().stream() + .map(e -> e.bytes) + .collect(Collectors.toSet()); + + Set excludedKeysFromPersistedEntryMap = dataStorage.getProtectedDataStoreMap().keySet() + .stream() + .map(e -> e.bytes) + .collect(Collectors.toSet()); + + excludedKeys.addAll(excludedKeysFromPersistedEntryMap); + + if (isPreliminaryDataRequest) + getDataRequest = new PreliminaryGetDataRequest(nonce, excludedKeys); + else + getDataRequest = new GetUpdatedDataRequest(networkNode.getNodeAddress(), nonce, excludedKeys); + + if (timeoutTimer == null) { + timeoutTimer = UserThread.runAfter(() -> { // setup before sending to avoid race conditions + if (!stopped) { + String errorMessage = "A timeout occurred at sending getDataRequest:" + getDataRequest + + " on nodeAddress:" + nodeAddress; + log.debug(errorMessage + " / RequestDataHandler=" + RequestDataHandler.this); + handleFault(errorMessage, nodeAddress, CloseConnectionReason.SEND_MSG_TIMEOUT); + } else { + log.trace("We have stopped already. We ignore that timeoutTimer.run call. " + + "Might be caused by an previous networkNode.sendMessage.onFailure."); + } + }, + TIMEOUT); + } + + log.info("We send a {} to peer {}. ", getDataRequest.getClass().getSimpleName(), nodeAddress); + networkNode.addMessageListener(this); + SettableFuture future = networkNode.sendMessage(nodeAddress, getDataRequest); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + if (!stopped) { + log.trace("Send " + getDataRequest + " to " + nodeAddress + " succeeded."); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onSuccess call." + + "Might be caused by an previous timeout."); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending getDataRequest to " + nodeAddress + + " failed. That is expected if the peer is offline.\n\t" + + "getDataRequest=" + getDataRequest + "." + + "\n\tException=" + throwable.getMessage(); + handleFault(errorMessage, nodeAddress, CloseConnectionReason.SEND_MSG_FAILURE); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onFailure call. " + + "Might be caused by an previous timeout."); + } + } + }); + } else { + log.warn("We have stopped already. We ignore that requestData call."); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof GetDataResponse) { + if (connection.getPeersNodeAddressOptional().isPresent() && connection.getPeersNodeAddressOptional().get().equals(peersNodeAddress)) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + if (!stopped) { + GetDataResponse getDataResponse = (GetDataResponse) networkEnvelope; + Map> payloadByClassName = new HashMap<>(); + final Set dataSet = getDataResponse.getDataSet(); + dataSet.stream().forEach(e -> { + final ProtectedStoragePayload protectedStoragePayload = e.getProtectedStoragePayload(); + if (protectedStoragePayload == null) { + log.warn("StoragePayload was null: {}", networkEnvelope.toString()); + return; + } + + // For logging different data types + String className = protectedStoragePayload.getClass().getSimpleName(); + if (!payloadByClassName.containsKey(className)) + payloadByClassName.put(className, new HashSet<>()); + + payloadByClassName.get(className).add(protectedStoragePayload); + }); + + + Set persistableNetworkPayloadSet = getDataResponse.getPersistableNetworkPayloadSet(); + if (persistableNetworkPayloadSet != null) { + persistableNetworkPayloadSet.stream().forEach(persistableNetworkPayload -> { + // For logging different data types + String className = persistableNetworkPayload.getClass().getSimpleName(); + if (!payloadByClassName.containsKey(className)) + payloadByClassName.put(className, new HashSet<>()); + + payloadByClassName.get(className).add(persistableNetworkPayload); + }); + } + + // Log different data types + StringBuilder sb = new StringBuilder(); + sb.append("\n#################################################################\n"); + sb.append("Connected to node: " + peersNodeAddress.getFullAddress() + "\n"); + final int items = dataSet.size() + + (persistableNetworkPayloadSet != null ? persistableNetworkPayloadSet.size() : 0); + sb.append("Received ").append(items).append(" instances\n"); + payloadByClassName.entrySet().stream().forEach(e -> sb.append(e.getKey()) + .append(": ") + .append(e.getValue().size()) + .append("\n")); + sb.append("#################################################################"); + log.info(sb.toString()); + + if (getDataResponse.getRequestNonce() == nonce) { + stopTimeoutTimer(); + checkArgument(connection.getPeersNodeAddressOptional().isPresent(), + "RequestDataHandler.onMessage: connection.getPeersNodeAddressOptional() must be present " + + "at that moment"); + + final NodeAddress sender = connection.getPeersNodeAddressOptional().get(); + + List processDelayedItems = new ArrayList<>(); + dataSet.stream().forEach(e -> { + if (e.getProtectedStoragePayload() instanceof LazyProcessedPayload) { + processDelayedItems.add(e); + } else { + // We dont broadcast here (last param) as we are only connected to the seed node and would be pointless + dataStorage.addProtectedStorageEntry(e, sender, null, false, false); + } + }); + + if (persistableNetworkPayloadSet != null) { + persistableNetworkPayloadSet.stream().forEach(e -> { + if (e instanceof LazyProcessedPayload) { + processDelayedItems.add(e); + } else { + // We dont broadcast here as we are only connected to the seed node and would be pointless + dataStorage.addPersistableNetworkPayload(e, sender, false, false, false, false); + } + }); + } + + // We process the LazyProcessedStoragePayload items (TradeStatistics) in batches with a delay in between. + // We want avoid that the UI get stuck when processing many entries. + // The dataStorage.add call is a bit expensive as sig checks is done there. + + // Using a background thread might be an alternative but it would require much more effort and + // it would also decrease user experience if the app gets under heavy load (like at startup with wallet sync). + // Beside that we mitigated the problem already as we will not get the whole TradeStatistics as we + // pass the excludeKeys and we pack the latest data dump + // into the resources, so a new user do not need to request all data. + + // In future we will probably limit by date or load on demand from user intent to not get too much data. + + // We split the list into sub lists with max 50 items and delay each batch with 200 ms. + int size = processDelayedItems.size(); + int chunkSize = 50; + int chunks = 1 + size / chunkSize; + int startIndex = 0; + for (int i = 0; i < chunks && startIndex < size; i++, startIndex += chunkSize) { + long delay = (i + 1) * 200; + int endIndex = Math.min(size, startIndex + chunkSize); + List subList = processDelayedItems.subList(startIndex, endIndex); + UserThread.runAfter(() -> subList.stream().forEach(item -> { + if (item instanceof ProtectedStorageEntry) + dataStorage.addProtectedStorageEntry((ProtectedStorageEntry) item, sender, null, false, false); + else if (item instanceof PersistableNetworkPayload) + dataStorage.addPersistableNetworkPayload((PersistableNetworkPayload) item, sender, false, false, false, false); + }), delay, TimeUnit.MILLISECONDS); + } + + cleanup(); + listener.onComplete(); + } else { + log.debug("Nonce not matching. That can happen rarely if we get a response after a canceled " + + "handshake (timeout causes connection close but peer might have sent a msg before " + + "connection was closed).\n\t" + + "We drop that message. nonce={} / requestNonce={}", + nonce, getDataResponse.getRequestNonce()); + } + } else { + log.warn("We have stopped already. We ignore that onDataRequest call."); + } + } else { + log.debug("We got the message from another connection and ignore it on that handler. That is expected if we have several requests open."); + } + } + } + + public void stop() { + cleanup(); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + + @SuppressWarnings("UnusedParameters") + private void handleFault(String errorMessage, NodeAddress nodeAddress, CloseConnectionReason closeConnectionReason) { + cleanup(); + log.info(errorMessage); + //peerManager.shutDownConnection(nodeAddress, closeConnectionReason); + peerManager.handleConnectionFault(nodeAddress); + listener.onFault(errorMessage, null); + } + + private void cleanup() { + Log.traceCall(); + stopped = true; + networkNode.removeMessageListener(this); + stopTimeoutTimer(); + } + + private void stopTimeoutTimer() { + if (timeoutTimer != null) { + timeoutTimer.stop(); + timeoutTimer = null; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataManager.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataManager.java new file mode 100644 index 00000000000..094228cbafe --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataManager.java @@ -0,0 +1,491 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata; + +import bisq.network.NetworkOptionKeys; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.getdata.messages.GetDataRequest; +import bisq.network.p2p.peers.peerexchange.Peer; +import bisq.network.p2p.seed.SeedNodeRepository; +import bisq.network.p2p.storage.P2PDataStorage; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; + +import com.google.inject.name.Named; + +import javax.inject.Inject; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; + +@Slf4j +public class RequestDataManager implements MessageListener, ConnectionListener, PeerManager.Listener { + private static final long RETRY_DELAY_SEC = 10; + private static final long CLEANUP_TIMER = 120; + // How many seeds we request the PreliminaryGetDataRequest from + private static int NUM_SEEDS_FOR_PRELIMINARY_REQUEST = 2; + // how many seeds additional to the first responding PreliminaryGetDataRequest seed we request the GetUpdatedDataRequest from + private static int NUM_ADDITIONAL_SEEDS_FOR_UPDATE_REQUEST = 1; + private boolean isPreliminaryDataRequest = true; + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onPreliminaryDataReceived(); + + void onUpdatedDataReceived(); + + void onDataReceived(); + + void onNoPeersAvailable(); + + void onNoSeedNodeAvailable(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final P2PDataStorage dataStorage; + private final PeerManager peerManager; + private final Set seedNodeAddresses; + private Listener listener; + + private final Map handlerMap = new HashMap<>(); + private final Map getDataRequestHandlers = new HashMap<>(); + private Optional nodeAddressOfPreliminaryDataRequest = Optional.empty(); + private Timer retryTimer; + private boolean dataUpdateRequested; + private boolean stopped; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public RequestDataManager(NetworkNode networkNode, + SeedNodeRepository seedNodeRepository, + P2PDataStorage dataStorage, + PeerManager peerManager, + @javax.annotation.Nullable @Named(NetworkOptionKeys.MY_ADDRESS) String myAddress) { + this.networkNode = networkNode; + this.dataStorage = dataStorage; + this.peerManager = peerManager; + + this.networkNode.addMessageListener(this); + this.networkNode.addConnectionListener(this); + this.peerManager.addListener(this); + + this.seedNodeAddresses = new HashSet<>(seedNodeRepository.getSeedNodeAddresses()); + + // If we are a seed node we use more redundancy at startup to be sure we get all data. + // We cannot use networkNode.getNodeAddress() as nodeAddress as that is null at this point, so we use + // new NodeAddress(myAddress) for checking if we are a seed node. + // seedNodeAddresses do not contain my own address as that gets filtered out + if (myAddress != null && !myAddress.isEmpty() && seedNodeRepository.isSeedNode(new NodeAddress(myAddress))) { + NUM_SEEDS_FOR_PRELIMINARY_REQUEST = 3; + NUM_ADDITIONAL_SEEDS_FOR_UPDATE_REQUEST = 2; + } + } + + public void shutDown() { + Log.traceCall(); + stopped = true; + stopRetryTimer(); + networkNode.removeMessageListener(this); + networkNode.removeConnectionListener(this); + peerManager.removeListener(this); + closeAllHandlers(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void addListener(Listener listener) { + this.listener = listener; + } + + public boolean requestPreliminaryData() { + Log.traceCall(); + ArrayList nodeAddresses = new ArrayList<>(seedNodeAddresses); + if (!nodeAddresses.isEmpty()) { + Collections.shuffle(nodeAddresses); + ArrayList finalNodeAddresses = new ArrayList<>(nodeAddresses); + final int size = Math.min(NUM_SEEDS_FOR_PRELIMINARY_REQUEST, finalNodeAddresses.size()); + for (int i = 0; i < size; i++) { + NodeAddress nodeAddress = finalNodeAddresses.get(i); + nodeAddresses.remove(nodeAddress); + UserThread.runAfter(() -> requestData(nodeAddress, nodeAddresses), (i * 200 + 1), TimeUnit.MILLISECONDS); + } + + isPreliminaryDataRequest = true; + return true; + } else { + return false; + } + } + + public void requestUpdateData() { + Log.traceCall(); + checkArgument(nodeAddressOfPreliminaryDataRequest.isPresent(), "nodeAddressOfPreliminaryDataRequest must be present"); + dataUpdateRequested = true; + isPreliminaryDataRequest = false; + List nodeAddresses = new ArrayList<>(seedNodeAddresses); + if (!nodeAddresses.isEmpty()) { + // We use the node we have already connected to to request again + nodeAddressOfPreliminaryDataRequest.ifPresent(candidate -> { + nodeAddresses.remove(candidate); + requestData(candidate, nodeAddresses); + + // For more redundancy we request as well from other random nodes. + Collections.shuffle(nodeAddresses); + ArrayList finalNodeAddresses = new ArrayList<>(nodeAddresses); + int numRequests = 0; + for (int i = 0; i < finalNodeAddresses.size() && numRequests < NUM_ADDITIONAL_SEEDS_FOR_UPDATE_REQUEST; i++) { + NodeAddress nodeAddress = finalNodeAddresses.get(i); + nodeAddresses.remove(nodeAddress); + + // It might be that we have a prelim. request open for the same seed, if so we skip to the next. + if (!handlerMap.containsKey(nodeAddress)) { + UserThread.runAfter(() -> requestData(nodeAddress, nodeAddresses), (i * 200 + 1), TimeUnit.MILLISECONDS); + numRequests++; + } + } + }); + } + } + + public Optional getNodeAddressOfPreliminaryDataRequest() { + return nodeAddressOfPreliminaryDataRequest; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + Log.traceCall(); + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + Log.traceCall(); + closeHandler(connection); + + if (peerManager.isNodeBanned(closeConnectionReason, connection) && connection.getPeersNodeAddressOptional().isPresent()) { + final NodeAddress nodeAddress = connection.getPeersNodeAddressOptional().get(); + seedNodeAddresses.remove(nodeAddress); + handlerMap.remove(nodeAddress); + } + } + + @Override + public void onError(Throwable throwable) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PeerManager.Listener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopRetryTimer(); + stopped = true; + restart(); + } + + @Override + public void onNewConnectionAfterAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + restart(); + } + + @Override + public void onAwakeFromStandby() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + if (!networkNode.getAllConnections().isEmpty()) + restart(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof GetDataRequest) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + if (!stopped) { + if (peerManager.isSeedNode(connection)) + connection.setPeerType(Connection.PeerType.SEED_NODE); + + final String uid = connection.getUid(); + if (!getDataRequestHandlers.containsKey(uid)) { + GetDataRequestHandler getDataRequestHandler = new GetDataRequestHandler(networkNode, dataStorage, + new GetDataRequestHandler.Listener() { + @Override + public void onComplete() { + getDataRequestHandlers.remove(uid); + log.trace("requestDataHandshake completed.\n\tConnection={}", connection); + } + + @Override + public void onFault(String errorMessage, @Nullable Connection connection) { + getDataRequestHandlers.remove(uid); + if (!stopped) { + log.trace("GetDataRequestHandler failed.\n\tConnection={}\n\t" + + "ErrorMessage={}", connection, errorMessage); + peerManager.handleConnectionFault(connection); + } else { + log.warn("We have stopped already. We ignore that getDataRequestHandler.handle.onFault call."); + } + } + }); + getDataRequestHandlers.put(uid, getDataRequestHandler); + getDataRequestHandler.handle((GetDataRequest) networkEnvelope, connection); + } else { + log.warn("We have already a GetDataRequestHandler for that connection started. " + + "We start a cleanup timer if the handler has not closed by itself in between 2 minutes."); + + UserThread.runAfter(() -> { + if (getDataRequestHandlers.containsKey(uid)) { + GetDataRequestHandler handler = getDataRequestHandlers.get(uid); + handler.stop(); + getDataRequestHandlers.remove(uid); + } + }, CLEANUP_TIMER); + } + } else { + log.warn("We have stopped already. We ignore that onMessage call."); + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // RequestData + /////////////////////////////////////////////////////////////////////////////////////////// + + private void requestData(NodeAddress nodeAddress, List remainingNodeAddresses) { + Log.traceCall("nodeAddress=" + nodeAddress + " / remainingNodeAddresses=" + remainingNodeAddresses); + if (!stopped) { + if (!handlerMap.containsKey(nodeAddress)) { + RequestDataHandler requestDataHandler = new RequestDataHandler(networkNode, dataStorage, peerManager, + new RequestDataHandler.Listener() { + @Override + public void onComplete() { + log.trace("RequestDataHandshake of outbound connection complete. nodeAddress={}", + nodeAddress); + stopRetryTimer(); + + // need to remove before listeners are notified as they cause the update call + handlerMap.remove(nodeAddress); + + // 1. We get a response from requestPreliminaryData + if (!nodeAddressOfPreliminaryDataRequest.isPresent()) { + nodeAddressOfPreliminaryDataRequest = Optional.of(nodeAddress); + // We delay because it can be that we get the HS published before we receive the + // preliminary data and the onPreliminaryDataReceived call triggers the + // dataUpdateRequested set to true, so we would also call the onUpdatedDataReceived. + UserThread.runAfter(listener::onPreliminaryDataReceived, 100, TimeUnit.MILLISECONDS); + } + + // 2. Later we get a response from requestUpdatesData + if (dataUpdateRequested) { + dataUpdateRequested = false; + listener.onUpdatedDataReceived(); + } + + listener.onDataReceived(); + } + + @Override + public void onFault(String errorMessage, @Nullable Connection connection) { + log.trace("requestDataHandshake with outbound connection failed.\n\tnodeAddress={}\n\t" + + "ErrorMessage={}", nodeAddress, errorMessage); + + peerManager.handleConnectionFault(nodeAddress); + handlerMap.remove(nodeAddress); + + if (!remainingNodeAddresses.isEmpty()) { + log.debug("There are remaining nodes available for requesting data. " + + "We will try requestDataFromPeers again."); + NodeAddress nextCandidate = remainingNodeAddresses.get(0); + remainingNodeAddresses.remove(nextCandidate); + requestData(nextCandidate, remainingNodeAddresses); + } else { + log.debug("There is no remaining node available for requesting data. " + + "That is expected if no other node is online.\n\t" + + "We will try to use reported peers (if no available we use persisted peers) " + + "and try again to request data from our seed nodes after a random pause."); + + // Notify listeners + if (!nodeAddressOfPreliminaryDataRequest.isPresent()) { + if (peerManager.isSeedNode(nodeAddress)) + listener.onNoSeedNodeAvailable(); + else + listener.onNoPeersAvailable(); + } + + restart(); + } + } + }); + handlerMap.put(nodeAddress, requestDataHandler); + requestDataHandler.requestData(nodeAddress, isPreliminaryDataRequest); + } else { + log.warn("We have started already a requestDataHandshake to peer. nodeAddress=" + nodeAddress + "\n" + + "We start a cleanup timer if the handler has not closed by itself in between 2 minutes."); + + UserThread.runAfter(() -> { + if (handlerMap.containsKey(nodeAddress)) { + RequestDataHandler handler = handlerMap.get(nodeAddress); + handler.stop(); + handlerMap.remove(nodeAddress); + } + }, CLEANUP_TIMER); + } + } else { + log.warn("We have stopped already. We ignore that requestData call."); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Utils + /////////////////////////////////////////////////////////////////////////////////////////// + + private void restart() { + Log.traceCall(); + if (retryTimer == null) { + retryTimer = UserThread.runAfter(() -> { + log.trace("retryTimer called"); + stopped = false; + + stopRetryTimer(); + + // We create a new list of candidates + // 1. shuffled seedNodes + // 2. reported peers sorted by last activity date + // 3. Add as last persisted peers sorted by last activity date + List list = getFilteredList(new ArrayList<>(seedNodeAddresses), new ArrayList<>()); + Collections.shuffle(list); + + List filteredReportedPeers = getFilteredNonSeedNodeList(getSortedNodeAddresses(peerManager.getReportedPeers()), list); + list.addAll(filteredReportedPeers); + + List filteredPersistedPeers = getFilteredNonSeedNodeList(getSortedNodeAddresses(peerManager.getPersistedPeers()), list); + list.addAll(filteredPersistedPeers); + + if (!list.isEmpty()) { + NodeAddress nextCandidate = list.get(0); + list.remove(nextCandidate); + requestData(nextCandidate, list); + } + }, + RETRY_DELAY_SEC); + } + } + + private List getSortedNodeAddresses(Collection collection) { + return new ArrayList<>(collection) + .stream() + .sorted((o1, o2) -> o2.getDate().compareTo(o1.getDate())) + .map(Peer::getNodeAddress) + .collect(Collectors.toList()); + } + + private List getFilteredList(Collection collection, List list) { + return collection.stream() + .filter(e -> !list.contains(e) && + !peerManager.isSelf(e)) + .collect(Collectors.toList()); + } + + private List getFilteredNonSeedNodeList(Collection collection, List list) { + return getFilteredList(collection, list).stream() + .filter(e -> !peerManager.isSeedNode(e)) + .collect(Collectors.toList()); + } + + private void stopRetryTimer() { + if (retryTimer != null) { + retryTimer.stop(); + retryTimer = null; + } + } + + private void closeHandler(Connection connection) { + Optional peersNodeAddressOptional = connection.getPeersNodeAddressOptional(); + if (peersNodeAddressOptional.isPresent()) { + NodeAddress nodeAddress = peersNodeAddressOptional.get(); + if (handlerMap.containsKey(nodeAddress)) { + handlerMap.get(nodeAddress).cancel(); + handlerMap.remove(nodeAddress); + } + } else { + log.trace("closeRequestDataHandler: nodeAddress not set in connection " + connection); + } + } + + private void closeAllHandlers() { + handlerMap.values().forEach(RequestDataHandler::cancel); + handlerMap.clear(); + } + +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataRequest.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataRequest.java new file mode 100644 index 00000000000..cfb0b301925 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataRequest.java @@ -0,0 +1,45 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata.messages; + +import bisq.network.p2p.ExtendedDataSizePermission; + +import bisq.common.proto.network.NetworkEnvelope; + +import java.util.Set; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@EqualsAndHashCode(callSuper = true) +@Getter +@ToString +public abstract class GetDataRequest extends NetworkEnvelope implements ExtendedDataSizePermission { + protected final int nonce; + // Keys for ProtectedStorageEntry items to be excluded from the request because the peer has them already + protected final Set excludedKeys; + + public GetDataRequest(int messageVersion, + int nonce, + Set excludedKeys) { + super(messageVersion); + this.nonce = nonce; + this.excludedKeys = excludedKeys; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataResponse.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataResponse.java new file mode 100644 index 00000000000..0e4b48a20a8 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetDataResponse.java @@ -0,0 +1,140 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata.messages; + +import bisq.network.p2p.ExtendedDataSizePermission; +import bisq.network.p2p.SupportedCapabilitiesMessage; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.app.Capabilities; +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; +import lombok.Value; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Slf4j +@EqualsAndHashCode(callSuper = true) +@Value +public final class GetDataResponse extends NetworkEnvelope implements SupportedCapabilitiesMessage, ExtendedDataSizePermission { + // Set of ProtectedStorageEntry objects + private final Set dataSet; + + // Set of PersistableNetworkPayload objects + // We added that in v 0.6 and we would get a null object from older peers, so keep it annotated with @Nullable + @Nullable + private final Set persistableNetworkPayloadSet; + + private final int requestNonce; + private final boolean isGetUpdatedDataResponse; + @Nullable + private final List supportedCapabilities; + + public GetDataResponse(Set dataSet, + @Nullable Set persistableNetworkPayloadSet, + int requestNonce, + boolean isGetUpdatedDataResponse) { + this(dataSet, + persistableNetworkPayloadSet, + requestNonce, + isGetUpdatedDataResponse, + Capabilities.getSupportedCapabilities(), + Version.getP2PMessageVersion()); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private GetDataResponse(Set dataSet, + @Nullable Set persistableNetworkPayloadSet, + int requestNonce, + boolean isGetUpdatedDataResponse, + @Nullable List supportedCapabilities, + int messageVersion) { + super(messageVersion); + + this.dataSet = dataSet; + this.persistableNetworkPayloadSet = persistableNetworkPayloadSet; + this.requestNonce = requestNonce; + this.isGetUpdatedDataResponse = isGetUpdatedDataResponse; + this.supportedCapabilities = supportedCapabilities; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + final PB.GetDataResponse.Builder builder = PB.GetDataResponse.newBuilder() + .addAllDataSet(dataSet.stream() + .map(protectedStorageEntry -> protectedStorageEntry instanceof ProtectedMailboxStorageEntry ? + PB.StorageEntryWrapper.newBuilder() + .setProtectedMailboxStorageEntry((PB.ProtectedMailboxStorageEntry) protectedStorageEntry.toProtoMessage()) + .build() + : + PB.StorageEntryWrapper.newBuilder() + .setProtectedStorageEntry((PB.ProtectedStorageEntry) protectedStorageEntry.toProtoMessage()) + .build()) + .collect(Collectors.toList())) + .setRequestNonce(requestNonce) + .setIsGetUpdatedDataResponse(isGetUpdatedDataResponse); + + Optional.ofNullable(supportedCapabilities).ifPresent(e -> builder.addAllSupportedCapabilities(supportedCapabilities)); + Optional.ofNullable(persistableNetworkPayloadSet).ifPresent(set -> builder.addAllPersistableNetworkPayloadItems(set.stream() + .map(PersistableNetworkPayload::toProtoMessage) + .collect(Collectors.toList()))); + + return getNetworkEnvelopeBuilder() + .setGetDataResponse(builder) + .build(); + } + + public static GetDataResponse fromProto(PB.GetDataResponse proto, NetworkProtoResolver resolver, int messageVersion) { + Set dataSet = new HashSet<>( + proto.getDataSetList().stream() + .map(entry -> (ProtectedStorageEntry) resolver.fromProto(entry)) + .collect(Collectors.toSet())); + + Set persistableNetworkPayloadSet = proto.getPersistableNetworkPayloadItemsList().isEmpty() ? + null : + new HashSet<>( + proto.getPersistableNetworkPayloadItemsList().stream() + .map(e -> (PersistableNetworkPayload) resolver.fromProto(e)) + .collect(Collectors.toSet())); + + //PersistableNetworkPayload + return new GetDataResponse(dataSet, + persistableNetworkPayloadSet, + proto.getRequestNonce(), + proto.getIsGetUpdatedDataResponse(), + proto.getSupportedCapabilitiesList().isEmpty() ? null : proto.getSupportedCapabilitiesList(), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetUpdatedDataRequest.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetUpdatedDataRequest.java new file mode 100644 index 00000000000..c99a3d665e8 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/GetUpdatedDataRequest.java @@ -0,0 +1,88 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata.messages; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.SendersNodeAddressMessage; + +import bisq.common.app.Version; +import bisq.common.proto.ProtoUtil; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import java.util.Set; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +import static com.google.common.base.Preconditions.checkNotNull; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class GetUpdatedDataRequest extends GetDataRequest implements SendersNodeAddressMessage { + private final NodeAddress senderNodeAddress; + + public GetUpdatedDataRequest(NodeAddress senderNodeAddress, + int nonce, + Set excludedKeys) { + this(senderNodeAddress, + nonce, + excludedKeys, + Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private GetUpdatedDataRequest(NodeAddress senderNodeAddress, + int nonce, + Set excludedKeys, + int messageVersion) { + super(messageVersion, + nonce, + excludedKeys); + checkNotNull(senderNodeAddress, "senderNodeAddress must not be null at GetUpdatedDataRequest"); + this.senderNodeAddress = senderNodeAddress; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + final PB.GetUpdatedDataRequest.Builder builder = PB.GetUpdatedDataRequest.newBuilder() + .setSenderNodeAddress(senderNodeAddress.toProtoMessage()) + .setNonce(nonce) + .addAllExcludedKeys(excludedKeys.stream() + .map(ByteString::copyFrom) + .collect(Collectors.toList())); + + return getNetworkEnvelopeBuilder() + .setGetUpdatedDataRequest(builder) + .build(); + } + + public static GetUpdatedDataRequest fromProto(PB.GetUpdatedDataRequest proto, int messageVersion) { + return new GetUpdatedDataRequest(NodeAddress.fromProto(proto.getSenderNodeAddress()), + proto.getNonce(), + ProtoUtil.byteSetFromProtoByteStringList(proto.getExcludedKeysList()), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java new file mode 100644 index 00000000000..58af39daa2b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java @@ -0,0 +1,90 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.getdata.messages; + +import bisq.network.p2p.AnonymousMessage; +import bisq.network.p2p.SupportedCapabilitiesMessage; + +import bisq.common.app.Capabilities; +import bisq.common.app.Version; +import bisq.common.proto.ProtoUtil; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; +import lombok.Value; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Slf4j +@EqualsAndHashCode(callSuper = true) +@Value +public final class PreliminaryGetDataRequest extends GetDataRequest implements AnonymousMessage, SupportedCapabilitiesMessage { + // ordinals of enum + @Nullable + private final List supportedCapabilities; + + public PreliminaryGetDataRequest(int nonce, + Set excludedKeys) { + this(nonce, excludedKeys, Capabilities.getSupportedCapabilities(), Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private PreliminaryGetDataRequest(int nonce, + Set excludedKeys, + @Nullable List supportedCapabilities, + int messageVersion) { + super(messageVersion, nonce, excludedKeys); + + this.supportedCapabilities = supportedCapabilities; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + final PB.PreliminaryGetDataRequest.Builder builder = PB.PreliminaryGetDataRequest.newBuilder() + .setNonce(nonce) + .addAllExcludedKeys(excludedKeys.stream() + .map(ByteString::copyFrom) + .collect(Collectors.toList())); + + Optional.ofNullable(supportedCapabilities).ifPresent(e -> builder.addAllSupportedCapabilities(supportedCapabilities)); + + return getNetworkEnvelopeBuilder() + .setPreliminaryGetDataRequest(builder) + .build(); + } + + public static PreliminaryGetDataRequest fromProto(PB.PreliminaryGetDataRequest proto, int messageVersion) { + return new PreliminaryGetDataRequest(proto.getNonce(), + ProtoUtil.byteSetFromProtoByteStringList(proto.getExcludedKeysList()), + proto.getSupportedCapabilitiesList().isEmpty() ? null : proto.getSupportedCapabilitiesList(), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveHandler.java new file mode 100644 index 00000000000..fae54bb41cf --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveHandler.java @@ -0,0 +1,179 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.keepalive; + +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.keepalive.messages.Ping; +import bisq.network.p2p.peers.keepalive.messages.Pong; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.Random; +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; + +class KeepAliveHandler implements MessageListener { + private static final Logger log = LoggerFactory.getLogger(KeepAliveHandler.class); + + private static final int DELAY_MS = 10_000; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onComplete(); + + @SuppressWarnings("UnusedParameters") + void onFault(String errorMessage); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final PeerManager peerManager; + private final Listener listener; + private final int nonce = new Random().nextInt(); + @Nullable + private Connection connection; + private boolean stopped; + private Timer delayTimer; + private long sendTs; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public KeepAliveHandler(NetworkNode networkNode, PeerManager peerManager, Listener listener) { + this.networkNode = networkNode; + this.peerManager = peerManager; + this.listener = listener; + } + + public void cancel() { + cleanup(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void sendPingAfterRandomDelay(Connection connection) { + delayTimer = UserThread.runAfterRandomDelay(() -> sendPing(connection), 1, DELAY_MS, TimeUnit.MILLISECONDS); + } + + private void sendPing(Connection connection) { + Log.traceCall("connection=" + connection + " / this=" + this); + if (!stopped) { + Ping ping = new Ping(nonce, connection.getStatistic().roundTripTimeProperty().get()); + sendTs = System.currentTimeMillis(); + SettableFuture future = networkNode.sendMessage(connection, ping); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + if (!stopped) { + log.trace("Send " + ping + " to " + connection + " succeeded."); + KeepAliveHandler.this.connection = connection; + connection.addMessageListener(KeepAliveHandler.this); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onSuccess call."); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending ping to " + connection + + " failed. That is expected if the peer is offline.\n\tping=" + ping + + ".\n\tException=" + throwable.getMessage(); + cleanup(); + //peerManager.shutDownConnection(connection, CloseConnectionReason.SEND_MSG_FAILURE); + log.info(errorMessage); + peerManager.handleConnectionFault(connection); + listener.onFault(errorMessage); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onFailure call."); + } + } + }); + } else { + log.trace("We have stopped already. We ignore that sendPing call."); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof Pong) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + if (!stopped) { + Pong pong = (Pong) networkEnvelope; + if (pong.getRequestNonce() == nonce) { + int roundTripTime = (int) (System.currentTimeMillis() - sendTs); + log.trace("roundTripTime=" + roundTripTime + "\n\tconnection=" + connection); + connection.getStatistic().setRoundTripTime(roundTripTime); + cleanup(); + listener.onComplete(); + } else { + log.warn("Nonce not matching. That should never happen.\n\t" + + "We drop that message. nonce={} / requestNonce={}", + nonce, pong.getRequestNonce()); + } + } else { + log.trace("We have stopped already. We ignore that onMessage call."); + } + } + } + + private void cleanup() { + stopped = true; + if (connection != null) + connection.removeMessageListener(this); + + if (delayTimer != null) { + delayTimer.stop(); + delayTimer = null; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveManager.java b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveManager.java new file mode 100644 index 00000000000..b8a4e26bf8b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveManager.java @@ -0,0 +1,264 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.keepalive; + +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.network.OutboundConnection; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.keepalive.messages.Ping; +import bisq.network.p2p.peers.keepalive.messages.Pong; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; + +import javax.inject.Inject; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.NotNull; + +public class KeepAliveManager implements MessageListener, ConnectionListener, PeerManager.Listener { + private static final Logger log = LoggerFactory.getLogger(KeepAliveManager.class); + + private static final int INTERVAL_SEC = new Random().nextInt(5) + 30; + private static final long LAST_ACTIVITY_AGE_MS = INTERVAL_SEC / 2; + + private final NetworkNode networkNode; + private final PeerManager peerManager; + private final Map handlerMap = new HashMap<>(); + + private boolean stopped; + private Timer keepAliveTimer; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public KeepAliveManager(NetworkNode networkNode, + PeerManager peerManager) { + this.networkNode = networkNode; + this.peerManager = peerManager; + + this.networkNode.addMessageListener(this); + this.networkNode.addConnectionListener(this); + this.peerManager.addListener(this); + } + + public void shutDown() { + Log.traceCall(); + stopped = true; + networkNode.removeMessageListener(this); + networkNode.removeConnectionListener(this); + peerManager.removeListener(this); + closeAllHandlers(); + stopKeepAliveTimer(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void start() { + restart(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof Ping) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + if (!stopped) { + Ping ping = (Ping) networkEnvelope; + + // We get from peer last measured rrt + connection.getStatistic().setRoundTripTime(ping.getLastRoundTripTime()); + + Pong pong = new Pong(ping.getNonce()); + SettableFuture future = networkNode.sendMessage(connection, pong); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + log.trace("Pong sent successfully"); + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending pong to " + connection + + " failed. That is expected if the peer is offline. " + + "Exception: " + throwable.getMessage(); + log.info(errorMessage); + peerManager.handleConnectionFault(connection); + } else { + log.warn("We have stopped already. We ignore that networkNode.sendMessage.onFailure call."); + } + } + }); + } else { + log.warn("We have stopped already. We ignore that onMessage call."); + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + Log.traceCall(); + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + Log.traceCall(); + closeHandler(connection); + } + + @Override + public void onError(Throwable throwable) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PeerManager.Listener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopKeepAliveTimer(); + stopped = true; + restart(); + } + + @Override + public void onNewConnectionAfterAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + restart(); + } + + @Override + public void onAwakeFromStandby() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + if (!networkNode.getAllConnections().isEmpty()) + restart(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private void restart() { + if (keepAliveTimer == null) + keepAliveTimer = UserThread.runPeriodically(() -> { + stopped = false; + keepAlive(); + }, INTERVAL_SEC); + } + + private void keepAlive() { + if (!stopped) { + Log.traceCall(); + networkNode.getConfirmedConnections().stream() + .filter(connection -> connection instanceof OutboundConnection && + connection.getStatistic().getLastActivityAge() > LAST_ACTIVITY_AGE_MS) + .forEach(connection -> { + final String uid = connection.getUid(); + if (!handlerMap.containsKey(uid)) { + KeepAliveHandler keepAliveHandler = new KeepAliveHandler(networkNode, peerManager, new KeepAliveHandler.Listener() { + @Override + public void onComplete() { + handlerMap.remove(uid); + } + + @Override + public void onFault(String errorMessage) { + handlerMap.remove(uid); + } + }); + handlerMap.put(uid, keepAliveHandler); + keepAliveHandler.sendPingAfterRandomDelay(connection); + } else { + // TODO check if this situation causes any issues + log.debug("Connection with id {} has not completed and is still in our map. " + + "We will try to ping that peer at the next schedule.", uid); + } + }); + + int size = handlerMap.size(); + log.debug("handlerMap size=" + size); + if (size > peerManager.getMaxConnections()) + log.warn("Seems we didn't clean up out map correctly.\n" + + "handlerMap size={}, peerManager.getMaxConnections()={}", size, peerManager.getMaxConnections()); + } else { + log.warn("We have stopped already. We ignore that keepAlive call."); + } + } + + private void stopKeepAliveTimer() { + stopped = true; + if (keepAliveTimer != null) { + keepAliveTimer.stop(); + keepAliveTimer = null; + } + } + + private void closeHandler(Connection connection) { + String uid = connection.getUid(); + if (handlerMap.containsKey(uid)) { + handlerMap.get(uid).cancel(); + handlerMap.remove(uid); + } + } + + private void closeAllHandlers() { + handlerMap.values().stream().forEach(KeepAliveHandler::cancel); + handlerMap.clear(); + } + +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/KeepAliveMessage.java b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/KeepAliveMessage.java new file mode 100644 index 00000000000..3f5703fbdc2 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/KeepAliveMessage.java @@ -0,0 +1,21 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.keepalive.messages; + +public interface KeepAliveMessage { +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Ping.java b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Ping.java new file mode 100644 index 00000000000..eb79645d51f --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Ping.java @@ -0,0 +1,61 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.keepalive.messages; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class Ping extends NetworkEnvelope implements KeepAliveMessage { + private final int nonce; + private final int lastRoundTripTime; + + public Ping(int nonce, int lastRoundTripTime) { + this(nonce, lastRoundTripTime, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private Ping(int nonce, int lastRoundTripTime, int messageVersion) { + super(messageVersion); + this.nonce = nonce; + this.lastRoundTripTime = lastRoundTripTime; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setPing(PB.Ping.newBuilder() + .setNonce(nonce) + .setLastRoundTripTime(lastRoundTripTime)) + .build(); + } + + public static Ping fromProto(PB.Ping proto, int messageVersion) { + return new Ping(proto.getNonce(), proto.getLastRoundTripTime(), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Pong.java b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Pong.java new file mode 100644 index 00000000000..4890e76c511 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/keepalive/messages/Pong.java @@ -0,0 +1,58 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.keepalive.messages; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class Pong extends NetworkEnvelope implements KeepAliveMessage { + private final int requestNonce; + + public Pong(int requestNonce) { + this(requestNonce, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private Pong(int requestNonce, int messageVersion) { + super(messageVersion); + this.requestNonce = requestNonce; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setPong(PB.Pong.newBuilder() + .setRequestNonce(requestNonce)) + .build(); + } + + public static Pong fromProto(PB.Pong proto, int messageVersion) { + return new Pong(proto.getRequestNonce(), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java new file mode 100644 index 00000000000..ee8af0db45b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java @@ -0,0 +1,158 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange; + +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.peerexchange.messages.GetPeersRequest; +import bisq.network.p2p.peers.peerexchange.messages.GetPeersResponse; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.concurrent.TimeUnit; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.NotNull; + +import static com.google.common.base.Preconditions.checkArgument; + +@Slf4j +class GetPeersRequestHandler { + // We want to keep timeout short here + private static final long TIMEOUT = 40; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onComplete(); + + void onFault(String errorMessage, Connection connection); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final PeerManager peerManager; + private final Listener listener; + private Timer timeoutTimer; + private boolean stopped; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public GetPeersRequestHandler(NetworkNode networkNode, PeerManager peerManager, Listener listener) { + this.networkNode = networkNode; + this.peerManager = peerManager; + this.listener = listener; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void handle(GetPeersRequest getPeersRequest, final Connection connection) { + Log.traceCall("getPeersRequest=" + getPeersRequest + "\n\tconnection=" + connection + "\n\tthis=" + this); + + checkArgument(connection.getPeersNodeAddressOptional().isPresent(), + "The peers address must have been already set at the moment"); + GetPeersResponse getPeersResponse = new GetPeersResponse(getPeersRequest.getNonce(), + peerManager.getLivePeers(connection.getPeersNodeAddressOptional().get())); + + checkArgument(timeoutTimer == null, "onGetPeersRequest must not be called twice."); + timeoutTimer = UserThread.runAfter(() -> { // setup before sending to avoid race conditions + if (!stopped) { + String errorMessage = "A timeout occurred at sending getPeersResponse:" + getPeersResponse + " on connection:" + connection; + log.debug(errorMessage + " / PeerExchangeHandshake=" + + GetPeersRequestHandler.this); + log.debug("timeoutTimer called. this=" + this); + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_TIMEOUT, connection); + } else { + log.trace("We have stopped already. We ignore that timeoutTimer.run call."); + } + }, + TIMEOUT, TimeUnit.SECONDS); + + SettableFuture future = networkNode.sendMessage(connection, + getPeersResponse); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + if (!stopped) { + log.trace("GetPeersResponse sent successfully"); + cleanup(); + listener.onComplete(); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onSuccess call."); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending getPeersResponse to " + connection + + " failed. That is expected if the peer is offline. getPeersResponse=" + getPeersResponse + "." + + "Exception: " + throwable.getMessage(); + log.info(errorMessage); + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_FAILURE, connection); + } else { + log.trace("We have stopped already. We ignore that networkNode.sendMessage.onFailure call."); + } + } + }); + + peerManager.addToReportedPeers(getPeersRequest.getReportedPeers(), connection); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + @SuppressWarnings("UnusedParameters") + private void handleFault(String errorMessage, CloseConnectionReason closeConnectionReason, Connection connection) { + cleanup(); + //peerManager.shutDownConnection(connection, closeConnectionReason); + listener.onFault(errorMessage, connection); + } + + private void cleanup() { + stopped = true; + if (timeoutTimer != null) { + timeoutTimer.stop(); + timeoutTimer = null; + } + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/Peer.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/Peer.java new file mode 100644 index 00000000000..bff3cb72b62 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/Peer.java @@ -0,0 +1,121 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.SupportedCapabilitiesListener; + +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.persistable.PersistablePayload; + +import io.bisq.generated.protobuffer.PB; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Getter +@EqualsAndHashCode(exclude = {"date"}) // failedConnectionAttempts is transient and therefore excluded anyway +@Slf4j +public final class Peer implements NetworkPayload, PersistablePayload, SupportedCapabilitiesListener { + private static final int MAX_FAILED_CONNECTION_ATTEMPTS = 5; + + private final NodeAddress nodeAddress; + private final long date; + // Added in v. 0.7.1 + @Setter + private List supportedCapabilities = new ArrayList<>(); + + @Setter + transient private int failedConnectionAttempts = 0; + + public Peer(NodeAddress nodeAddress, @Nullable List supportedCapabilities) { + this(nodeAddress, new Date().getTime(), + supportedCapabilities == null ? new ArrayList<>() : supportedCapabilities); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private Peer(NodeAddress nodeAddress, long date, List supportedCapabilities) { + this.nodeAddress = nodeAddress; + this.date = date; + this.supportedCapabilities = supportedCapabilities; + + if (supportedCapabilities.isEmpty()) + log.warn("SupportedCapabilities is empty. nodeAddress={}", nodeAddress); + } + + @Override + public PB.Peer toProtoMessage() { + return PB.Peer.newBuilder() + .setNodeAddress(nodeAddress.toProtoMessage()) + .setDate(date) + .addAllSupportedCapabilities(supportedCapabilities) + .build(); + } + + public static Peer fromProto(PB.Peer proto) { + return new Peer(NodeAddress.fromProto(proto.getNodeAddress()), + proto.getDate(), + proto.getSupportedCapabilitiesList().isEmpty() ? + new ArrayList<>() : new ArrayList<>(proto.getSupportedCapabilitiesList())); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void increaseFailedConnectionAttempts() { + this.failedConnectionAttempts++; + } + + public boolean tooManyFailedConnectionAttempts() { + return failedConnectionAttempts >= MAX_FAILED_CONNECTION_ATTEMPTS; + } + + public Date getDate() { + return new Date(date); + } + + @Override + public void onChanged(List supportedCapabilities) { + if (supportedCapabilities != null && !supportedCapabilities.isEmpty()) + this.supportedCapabilities = supportedCapabilities; + } + + + @Override + public String toString() { + return "Peer{" + + "\n nodeAddress=" + nodeAddress + + ",\n supportedCapabilities=" + supportedCapabilities + + ",\n failedConnectionAttempts=" + failedConnectionAttempts + + ",\n date=" + date + + "\n}"; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java new file mode 100644 index 00000000000..779d8e7ec7e --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java @@ -0,0 +1,223 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.peerexchange.messages.GetPeersRequest; +import bisq.network.p2p.peers.peerexchange.messages.GetPeersResponse; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import java.util.Random; +import java.util.concurrent.TimeUnit; + +import lombok.extern.slf4j.Slf4j; + +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; + +@Slf4j +class PeerExchangeHandler implements MessageListener { + // We want to keep timeout short here + private static final long TIMEOUT = 40; + private static final int DELAY_MS = 500; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Listener + /////////////////////////////////////////////////////////////////////////////////////////// + + public interface Listener { + void onComplete(); + + @SuppressWarnings("UnusedParameters") + void onFault(String errorMessage, @Nullable Connection connection); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Class fields + /////////////////////////////////////////////////////////////////////////////////////////// + + private final NetworkNode networkNode; + private final PeerManager peerManager; + private final Listener listener; + private final int nonce = new Random().nextInt(); + private Timer timeoutTimer; + private Connection connection; + private boolean stopped; + private Timer delayTimer; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public PeerExchangeHandler(NetworkNode networkNode, PeerManager peerManager, Listener listener) { + this.networkNode = networkNode; + this.peerManager = peerManager; + this.listener = listener; + } + + public void cancel() { + Log.traceCall(); + cleanup(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void sendGetPeersRequestAfterRandomDelay(NodeAddress nodeAddress) { + delayTimer = UserThread.runAfterRandomDelay(() -> sendGetPeersRequest(nodeAddress), 1, DELAY_MS, TimeUnit.MILLISECONDS); + } + + private void sendGetPeersRequest(NodeAddress nodeAddress) { + log.debug("sendGetPeersRequest to nodeAddress={}", nodeAddress); + if (!stopped) { + if (networkNode.getNodeAddress() != null) { + GetPeersRequest getPeersRequest = new GetPeersRequest(networkNode.getNodeAddress(), nonce, peerManager.getLivePeers(nodeAddress)); + if (timeoutTimer == null) { + timeoutTimer = UserThread.runAfter(() -> { // setup before sending to avoid race conditions + if (!stopped) { + String errorMessage = "A timeout occurred at sending getPeersRequest. nodeAddress=" + nodeAddress; + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_TIMEOUT, nodeAddress); + } else { + log.trace("We have stopped that handler already. We ignore that timeoutTimer.run call."); + } + }, + TIMEOUT, TimeUnit.SECONDS); + } + + SettableFuture future = networkNode.sendMessage(nodeAddress, getPeersRequest); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + if (!stopped) { + //TODO + /*if (!connection.getPeersNodeAddressOptional().isPresent()) { + connection.setPeersNodeAddress(nodeAddress); + log.warn("sendGetPeersRequest: !connection.getPeersNodeAddressOptional().isPresent()"); + }*/ + + PeerExchangeHandler.this.connection = connection; + connection.addMessageListener(PeerExchangeHandler.this); + log.trace("Send " + getPeersRequest + " to " + nodeAddress + " succeeded."); + } else { + log.trace("We have stopped that handler already. We ignore that sendGetPeersRequest.onSuccess call."); + } + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + if (!stopped) { + String errorMessage = "Sending getPeersRequest to " + nodeAddress + + " failed. That is expected if the peer is offline. Exception=" + throwable.getMessage(); + handleFault(errorMessage, CloseConnectionReason.SEND_MSG_FAILURE, nodeAddress); + } else { + log.trace("We have stopped that handler already. We ignore that sendGetPeersRequest.onFailure call."); + } + } + }); + } else { + log.debug("My node address is still null at sendGetPeersRequest. We ignore that call."); + } + } else { + log.trace("We have stopped that handler already. We ignore that sendGetPeersRequest call."); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof GetPeersResponse) { + if (!stopped) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + GetPeersResponse getPeersResponse = (GetPeersResponse) networkEnvelope; + if (peerManager.isSeedNode(connection)) + connection.setPeerType(Connection.PeerType.SEED_NODE); + + // Check if the response is for our request + if (getPeersResponse.getRequestNonce() == nonce) { + peerManager.addToReportedPeers(getPeersResponse.getReportedPeers(), connection); + cleanup(); + listener.onComplete(); + } else { + log.warn("Nonce not matching. That should never happen.\n\t" + + "We drop that message. nonce={} / requestNonce={}", + nonce, getPeersResponse.getRequestNonce()); + } + } else { + log.trace("We have stopped that handler already. We ignore that onMessage call."); + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + @SuppressWarnings("UnusedParameters") + private void handleFault(String errorMessage, CloseConnectionReason closeConnectionReason, NodeAddress nodeAddress) { + Log.traceCall(); + cleanup(); + /* if (connection == null) + peerManager.shutDownConnection(nodeAddress, closeConnectionReason); + else + peerManager.shutDownConnection(connection, closeConnectionReason);*/ + + peerManager.handleConnectionFault(nodeAddress, connection); + listener.onFault(errorMessage, connection); + } + + private void cleanup() { + Log.traceCall(); + stopped = true; + if (connection != null) + connection.removeMessageListener(this); + + if (timeoutTimer != null) { + timeoutTimer.stop(); + timeoutTimer = null; + } + + if (delayTimer != null) { + delayTimer.stop(); + delayTimer = null; + } + } + +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeManager.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeManager.java new file mode 100644 index 00000000000..55ad5b5e0c3 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeManager.java @@ -0,0 +1,422 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.peers.peerexchange.messages.GetPeersRequest; +import bisq.network.p2p.seed.SeedNodeRepository; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.proto.network.NetworkEnvelope; + +import javax.inject.Inject; + +import com.google.common.base.Preconditions; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Slf4j +public class PeerExchangeManager implements MessageListener, ConnectionListener, PeerManager.Listener { + private static final long RETRY_DELAY_SEC = 10; + private static final long RETRY_DELAY_AFTER_ALL_CON_LOST_SEC = 3; + private static final long REQUEST_PERIODICALLY_INTERVAL_MIN = 10; + + private final NetworkNode networkNode; + private final PeerManager peerManager; + + private final Set seedNodeAddresses; + private final Map handlerMap = new HashMap<>(); + + private Timer retryTimer, periodicTimer; + private boolean stopped; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public PeerExchangeManager(NetworkNode networkNode, + SeedNodeRepository seedNodeRepository, + PeerManager peerManager) { + this.networkNode = networkNode; + this.peerManager = peerManager; + + this.networkNode.addMessageListener(this); + this.networkNode.addConnectionListener(this); + this.peerManager.addListener(this); + + this.seedNodeAddresses = new HashSet<>(seedNodeRepository.getSeedNodeAddresses()); + } + + public void shutDown() { + Log.traceCall(); + stopped = true; + networkNode.removeMessageListener(this); + networkNode.removeConnectionListener(this); + peerManager.removeListener(this); + + stopPeriodicTimer(); + stopRetryTimer(); + closeAllHandlers(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void requestReportedPeersFromSeedNodes(NodeAddress nodeAddress) { + Preconditions.checkNotNull(networkNode.getNodeAddress(), "My node address must not be null at requestReportedPeers"); + ArrayList remainingNodeAddresses = new ArrayList<>(seedNodeAddresses); + remainingNodeAddresses.remove(nodeAddress); + Collections.shuffle(remainingNodeAddresses); + requestReportedPeers(nodeAddress, remainingNodeAddresses); + + startPeriodicTimer(); + } + + public void initialRequestPeersFromReportedOrPersistedPeers() { + if (!peerManager.getReportedPeers().isEmpty() || !peerManager.getPersistedPeers().isEmpty()) { + // We will likely get more connections as the GetPeersResponse onComplete handler triggers a new request if the confirmed + // connections have not reached the min connection target. + // So we potentially request 2 times 8 but we prefer to get fast connected + // and disconnect afterwards when we exceed max connections rather to delay connection in case many of our peers from the list are dead. + for (int i = 0; i < Math.min(8, peerManager.getMaxConnections()); i++) + requestWithAvailablePeers(); + } else { + log.info("We don't have any reported or persisted peers, so we need to wait until we receive from the seed node the initial peer list."); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + Log.traceCall(); + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + log.info("onDisconnect closeConnectionReason={}, nodeAddressOpt={}", closeConnectionReason, connection.getPeersNodeAddressOptional()); + closeHandler(connection); + + if (retryTimer == null) { + retryTimer = UserThread.runAfter(() -> { + log.trace("ConnectToMorePeersTimer called from onDisconnect code path"); + stopRetryTimer(); + requestWithAvailablePeers(); + }, RETRY_DELAY_SEC); + } + + if (peerManager.isNodeBanned(closeConnectionReason, connection)) + seedNodeAddresses.remove(connection.getPeersNodeAddressOptional().get()); + } + + @Override + public void onError(Throwable throwable) { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PeerManager.Listener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopPeriodicTimer(); + stopRetryTimer(); + stopped = true; + restart(); + } + + @Override + public void onNewConnectionAfterAllConnectionsLost() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + restart(); + } + + @Override + public void onAwakeFromStandby() { + Log.traceCall(); + closeAllHandlers(); + stopped = false; + if (!networkNode.getAllConnections().isEmpty()) + restart(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof GetPeersRequest) { + Log.traceCall(networkEnvelope.toString() + "\n\tconnection=" + connection); + if (!stopped) { + if (peerManager.isSeedNode(connection)) + connection.setPeerType(Connection.PeerType.SEED_NODE); + + GetPeersRequestHandler getPeersRequestHandler = new GetPeersRequestHandler(networkNode, + peerManager, + new GetPeersRequestHandler.Listener() { + @Override + public void onComplete() { + log.trace("PeerExchangeHandshake completed.\n\tConnection={}", connection); + } + + @Override + public void onFault(String errorMessage, Connection connection) { + log.trace("PeerExchangeHandshake failed.\n\terrorMessage={}\n\t" + + "connection={}", errorMessage, connection); + peerManager.handleConnectionFault(connection); + } + }); + getPeersRequestHandler.handle((GetPeersRequest) networkEnvelope, connection); + } else { + log.warn("We have stopped already. We ignore that onMessage call."); + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Request + /////////////////////////////////////////////////////////////////////////////////////////// + + private void requestReportedPeers(NodeAddress nodeAddress, List remainingNodeAddresses) { + log.debug("requestReportedPeers nodeAddress={}; remainingNodeAddresses.size={}", nodeAddress, remainingNodeAddresses.size()); + if (!stopped) { + if (!handlerMap.containsKey(nodeAddress)) { + PeerExchangeHandler peerExchangeHandler = new PeerExchangeHandler(networkNode, + peerManager, + new PeerExchangeHandler.Listener() { + @Override + public void onComplete() { + handlerMap.remove(nodeAddress); + requestWithAvailablePeers(); + } + + @Override + public void onFault(String errorMessage, @Nullable Connection connection) { + log.debug("PeerExchangeHandshake of outbound connection failed.\n\terrorMessage={}\n\t" + + "nodeAddress={}", errorMessage, nodeAddress); + + peerManager.handleConnectionFault(nodeAddress); + handlerMap.remove(nodeAddress); + if (!remainingNodeAddresses.isEmpty()) { + if (!peerManager.hasSufficientConnections()) { + log.debug("There are remaining nodes available for requesting peers. " + + "We will try getReportedPeers again."); + NodeAddress nextCandidate = remainingNodeAddresses.get(new Random().nextInt(remainingNodeAddresses.size())); + remainingNodeAddresses.remove(nextCandidate); + requestReportedPeers(nextCandidate, remainingNodeAddresses); + } else { + // That path will rarely be reached + log.debug("We have already sufficient connections."); + } + } else { + log.debug("There is no remaining node available for requesting peers. " + + "That is expected if no other node is online.\n\t" + + "We will try again after a pause."); + if (retryTimer == null) + retryTimer = UserThread.runAfter(() -> { + if (!stopped) { + log.trace("retryTimer called from requestReportedPeers code path"); + stopRetryTimer(); + requestWithAvailablePeers(); + } else { + stopRetryTimer(); + log.warn("We have stopped already. We ignore that retryTimer.run call."); + } + }, RETRY_DELAY_SEC); + } + } + }); + handlerMap.put(nodeAddress, peerExchangeHandler); + peerExchangeHandler.sendGetPeersRequestAfterRandomDelay(nodeAddress); + } else { + log.trace("We have started already a peerExchangeHandler. " + + "We ignore that call. nodeAddress=" + nodeAddress); + } + } else { + log.trace("We have stopped already. We ignore that requestReportedPeers call."); + } + } + + private void requestWithAvailablePeers() { + Log.traceCall(); + if (!stopped) { + if (!peerManager.hasSufficientConnections()) { + // We create a new list of not connected candidates + // 1. shuffled reported peers + // 2. shuffled persisted peers + // 3. Add as last shuffled seedNodes (least priority) + List list = getFilteredNonSeedNodeList(getNodeAddresses(peerManager.getReportedPeers()), new ArrayList<>()); + Collections.shuffle(list); + + List filteredPersistedPeers = getFilteredNonSeedNodeList(getNodeAddresses(peerManager.getPersistedPeers()), list); + Collections.shuffle(filteredPersistedPeers); + list.addAll(filteredPersistedPeers); + + List filteredSeedNodeAddresses = getFilteredList(new ArrayList<>(seedNodeAddresses), list); + Collections.shuffle(filteredSeedNodeAddresses); + list.addAll(filteredSeedNodeAddresses); + + log.debug("Number of peers in list for connectToMorePeers: {}", list.size()); + log.trace("Filtered connectToMorePeers list: list=" + list); + if (!list.isEmpty()) { + // Don't shuffle as we want the seed nodes at the last entries + NodeAddress nextCandidate = list.get(0); + list.remove(nextCandidate); + requestReportedPeers(nextCandidate, list); + } else { + log.debug("No more peers are available for requestReportedPeers. We will try again after a pause."); + if (retryTimer == null) + retryTimer = UserThread.runAfter(() -> { + if (!stopped) { + log.trace("retryTimer called from requestWithAvailablePeers code path"); + stopRetryTimer(); + requestWithAvailablePeers(); + } else { + stopRetryTimer(); + log.warn("We have stopped already. We ignore that retryTimer.run call."); + } + }, RETRY_DELAY_SEC); + } + } else { + log.debug("We have already sufficient connections."); + } + } else { + log.trace("We have stopped already. We ignore that requestWithAvailablePeers call."); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Utils + /////////////////////////////////////////////////////////////////////////////////////////// + + private void startPeriodicTimer() { + stopped = false; + if (periodicTimer == null) + periodicTimer = UserThread.runPeriodically(this::requestWithAvailablePeers, + REQUEST_PERIODICALLY_INTERVAL_MIN, TimeUnit.MINUTES); + } + + private void restart() { + startPeriodicTimer(); + + if (retryTimer == null) { + retryTimer = UserThread.runAfter(() -> { + stopped = false; + log.trace("retryTimer called from restart"); + stopRetryTimer(); + requestWithAvailablePeers(); + }, RETRY_DELAY_AFTER_ALL_CON_LOST_SEC); + } else { + log.debug("retryTimer already started"); + } + } + + private List getNodeAddresses(Collection collection) { + return collection.stream() + .map(Peer::getNodeAddress) + .collect(Collectors.toList()); + } + + private List getFilteredList(Collection collection, List list) { + return collection.stream() + .filter(e -> !list.contains(e) && + !peerManager.isSelf(e) && + !peerManager.isConfirmed(e)) + .collect(Collectors.toList()); + } + + private List getFilteredNonSeedNodeList(Collection collection, List list) { + return getFilteredList(collection, list).stream() + .filter(e -> !peerManager.isSeedNode(e)) + .collect(Collectors.toList()); + } + + private void stopPeriodicTimer() { + stopped = true; + if (periodicTimer != null) { + periodicTimer.stop(); + periodicTimer = null; + } + } + + private void stopRetryTimer() { + if (retryTimer != null) { + retryTimer.stop(); + retryTimer = null; + } + } + + private void closeHandler(Connection connection) { + Log.traceCall(); + Optional peersNodeAddressOptional = connection.getPeersNodeAddressOptional(); + if (peersNodeAddressOptional.isPresent()) { + NodeAddress nodeAddress = peersNodeAddressOptional.get(); + if (handlerMap.containsKey(nodeAddress)) { + handlerMap.get(nodeAddress).cancel(); + handlerMap.remove(nodeAddress); + } + } else { + log.trace("closeHandler: nodeAddress not set in connection " + connection); + } + } + + private void closeAllHandlers() { + Log.traceCall(); + handlerMap.values().stream().forEach(PeerExchangeHandler::cancel); + handlerMap.clear(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerList.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerList.java new file mode 100644 index 00000000000..89365d3371b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerList.java @@ -0,0 +1,53 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange; + +import bisq.common.proto.persistable.PersistableEnvelope; +import bisq.common.proto.persistable.PersistableList; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.Message; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +public class PeerList extends PersistableList { + + public PeerList(List list) { + super(list); + } + + @Override + public Message toProtoMessage() { + return PB.PersistableEnvelope.newBuilder() + .setPeerList(PB.PeerList.newBuilder() + .addAllPeer(getList().stream().map(Peer::toProtoMessage).collect(Collectors.toList()))) + .build(); + } + + public static PersistableEnvelope fromProto(PB.PeerList proto) { + return new PeerList(new ArrayList<>(proto.getPeerList().stream() + .map(Peer::fromProto) + .collect(Collectors.toList()))); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersRequest.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersRequest.java new file mode 100644 index 00000000000..8b8ab1adf4b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersRequest.java @@ -0,0 +1,100 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange.messages; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.SendersNodeAddressMessage; +import bisq.network.p2p.SupportedCapabilitiesMessage; +import bisq.network.p2p.peers.peerexchange.Peer; + +import bisq.common.app.Capabilities; +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkNotNull; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class GetPeersRequest extends NetworkEnvelope implements PeerExchangeMessage, SendersNodeAddressMessage, SupportedCapabilitiesMessage { + private final NodeAddress senderNodeAddress; + private final int nonce; + private final Set reportedPeers; + @Nullable + private final List supportedCapabilities; + + public GetPeersRequest(NodeAddress senderNodeAddress, int nonce, Set reportedPeers) { + this(senderNodeAddress, nonce, reportedPeers, Capabilities.getSupportedCapabilities(), Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private GetPeersRequest(NodeAddress senderNodeAddress, + int nonce, + Set reportedPeers, + @Nullable List supportedCapabilities, + int messageVersion) { + super(messageVersion); + checkNotNull(senderNodeAddress, "senderNodeAddress must not be null at GetPeersRequest"); + this.senderNodeAddress = senderNodeAddress; + this.nonce = nonce; + this.reportedPeers = reportedPeers; + this.supportedCapabilities = supportedCapabilities; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + final PB.GetPeersRequest.Builder builder = PB.GetPeersRequest.newBuilder() + .setSenderNodeAddress(senderNodeAddress.toProtoMessage()) + .setNonce(nonce) + .addAllReportedPeers(reportedPeers.stream() + .map(Peer::toProtoMessage) + .collect(Collectors.toList())); + + Optional.ofNullable(supportedCapabilities).ifPresent(e -> builder.addAllSupportedCapabilities(supportedCapabilities)); + + return getNetworkEnvelopeBuilder() + .setGetPeersRequest(builder) + .build(); + } + + public static GetPeersRequest fromProto(PB.GetPeersRequest proto, int messageVersion) { + return new GetPeersRequest(NodeAddress.fromProto(proto.getSenderNodeAddress()), + proto.getNonce(), + new HashSet<>(proto.getReportedPeersList().stream() + .map(Peer::fromProto) + .collect(Collectors.toSet())), + proto.getSupportedCapabilitiesList().isEmpty() ? null : proto.getSupportedCapabilitiesList(), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersResponse.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersResponse.java new file mode 100644 index 00000000000..1f6788b63c1 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersResponse.java @@ -0,0 +1,97 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange.messages; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.SupportedCapabilitiesMessage; +import bisq.network.p2p.peers.peerexchange.Peer; + +import bisq.common.app.Capabilities; +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +import javax.annotation.Nullable; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class GetPeersResponse extends NetworkEnvelope implements PeerExchangeMessage, SupportedCapabilitiesMessage { + private final int requestNonce; + private final Set reportedPeers; + @Nullable + private final List supportedCapabilities; + + public GetPeersResponse(int requestNonce, Set reportedPeers) { + this(requestNonce, reportedPeers, Capabilities.getSupportedCapabilities(), Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private GetPeersResponse(int requestNonce, + Set reportedPeers, + @Nullable List supportedCapabilities, + int messageVersion) { + super(messageVersion); + this.requestNonce = requestNonce; + this.reportedPeers = reportedPeers; + this.supportedCapabilities = supportedCapabilities; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + final PB.GetPeersResponse.Builder builder = PB.GetPeersResponse.newBuilder() + .setRequestNonce(requestNonce) + .addAllReportedPeers(reportedPeers.stream() + .map(Peer::toProtoMessage) + .collect(Collectors.toList())); + + Optional.ofNullable(supportedCapabilities).ifPresent(e -> builder.addAllSupportedCapabilities(supportedCapabilities)); + + return getNetworkEnvelopeBuilder() + .setGetPeersResponse(builder) + .build(); + } + + public static GetPeersResponse fromProto(PB.GetPeersResponse proto, int messageVersion) { + HashSet reportedPeers = proto.getReportedPeersList() + .stream() + .map(peer -> { + NodeAddress nodeAddress = new NodeAddress(peer.getNodeAddress().getHostName(), + peer.getNodeAddress().getPort()); + return new Peer(nodeAddress, peer.getSupportedCapabilitiesList()); + }) + .collect(Collectors.toCollection(HashSet::new)); + return new GetPeersResponse(proto.getRequestNonce(), + reportedPeers, + proto.getSupportedCapabilitiesList().isEmpty() ? null : proto.getSupportedCapabilitiesList(), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/PeerExchangeMessage.java b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/PeerExchangeMessage.java new file mode 100644 index 00000000000..00bb2d8a147 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/PeerExchangeMessage.java @@ -0,0 +1,21 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.peers.peerexchange.messages; + +public interface PeerExchangeMessage { +} diff --git a/p2p/src/main/java/bisq/network/p2p/seed/SeedNodeRepository.java b/p2p/src/main/java/bisq/network/p2p/seed/SeedNodeRepository.java new file mode 100644 index 00000000000..c5805af277d --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/seed/SeedNodeRepository.java @@ -0,0 +1,31 @@ +/* + * This file is part of Bisq. + * + * bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with bisq. If not, see . + */ + +package bisq.network.p2p.seed; + +import bisq.network.p2p.NodeAddress; + +import java.util.Set; + +public interface SeedNodeRepository { + + boolean isSeedNode(NodeAddress nodeAddress); + + Set getSeedNodeAddresses(); + + String getOperator(NodeAddress nodeAddress); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/HashMapChangedListener.java b/p2p/src/main/java/bisq/network/p2p/storage/HashMapChangedListener.java new file mode 100644 index 00000000000..aab352ff4e0 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/HashMapChangedListener.java @@ -0,0 +1,27 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage; + +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +public interface HashMapChangedListener { + void onAdded(ProtectedStorageEntry data); + + @SuppressWarnings("UnusedParameters") + void onRemoved(ProtectedStorageEntry data); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java b/p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java new file mode 100644 index 00000000000..8e47286fc69 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java @@ -0,0 +1,892 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.network.CloseConnectionReason; +import bisq.network.p2p.network.Connection; +import bisq.network.p2p.network.ConnectionListener; +import bisq.network.p2p.network.MessageListener; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.BroadcastHandler; +import bisq.network.p2p.peers.Broadcaster; +import bisq.network.p2p.storage.messages.AddDataMessage; +import bisq.network.p2p.storage.messages.AddPersistableNetworkPayloadMessage; +import bisq.network.p2p.storage.messages.BroadcastMessage; +import bisq.network.p2p.storage.messages.RefreshOfferMessage; +import bisq.network.p2p.storage.messages.RemoveDataMessage; +import bisq.network.p2p.storage.messages.RemoveMailboxDataMessage; +import bisq.network.p2p.storage.payload.DateTolerantPayload; +import bisq.network.p2p.storage.payload.ExpirablePayload; +import bisq.network.p2p.storage.payload.MailboxStoragePayload; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; +import bisq.network.p2p.storage.payload.RequiresOwnerIsOnlinePayload; +import bisq.network.p2p.storage.persistence.AppendOnlyDataStoreListener; +import bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService; +import bisq.network.p2p.storage.persistence.ProtectedDataStoreListener; +import bisq.network.p2p.storage.persistence.ProtectedDataStoreService; +import bisq.network.p2p.storage.persistence.SequenceNumberMap; + +import bisq.common.Timer; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.Hash; +import bisq.common.crypto.Sig; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.persistable.PersistablePayload; +import bisq.common.proto.persistable.PersistedDataHost; +import bisq.common.storage.Storage; +import bisq.common.util.Tuple2; +import bisq.common.util.Utilities; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import javax.inject.Inject; + +import com.google.common.annotations.VisibleForTesting; + +import org.apache.commons.lang3.StringUtils; + +import org.bouncycastle.util.encoders.Hex; + +import java.security.KeyPair; +import java.security.PublicKey; + +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import org.slf4j.LoggerFactory; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +@Slf4j +public class P2PDataStorage implements MessageListener, ConnectionListener, PersistedDataHost { + /** + * How many days to keep an entry before it is purged. + */ + private static final int PURGE_AGE_DAYS = 10; + + @VisibleForTesting + public static int CHECK_TTL_INTERVAL_SEC = 60; + + private final Broadcaster broadcaster; + private final AppendOnlyDataStoreService appendOnlyDataStoreService; + private final ProtectedDataStoreService protectedDataStoreService; + + @Getter + private final Map map = new ConcurrentHashMap<>(); + private final Set hashMapChangedListeners = new CopyOnWriteArraySet<>(); + private Timer removeExpiredEntriesTimer; + + private final Storage sequenceNumberMapStorage; + private final SequenceNumberMap sequenceNumberMap = new SequenceNumberMap(); + + private final Set appendOnlyDataStoreListeners = new CopyOnWriteArraySet<>(); + private final Set protectedDataStoreListeners = new CopyOnWriteArraySet<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public P2PDataStorage(NetworkNode networkNode, + Broadcaster broadcaster, + AppendOnlyDataStoreService appendOnlyDataStoreService, + ProtectedDataStoreService protectedDataStoreService, + Storage sequenceNumberMapStorage) { + this.broadcaster = broadcaster; + this.appendOnlyDataStoreService = appendOnlyDataStoreService; + this.protectedDataStoreService = protectedDataStoreService; + + networkNode.addMessageListener(this); + networkNode.addConnectionListener(this); + + this.sequenceNumberMapStorage = sequenceNumberMapStorage; + sequenceNumberMapStorage.setNumMaxBackupFiles(5); + } + + @Override + public void readPersisted() { + SequenceNumberMap persistedSequenceNumberMap = sequenceNumberMapStorage.initAndGetPersisted(sequenceNumberMap, 300); + if (persistedSequenceNumberMap != null) + sequenceNumberMap.setMap(getPurgedSequenceNumberMap(persistedSequenceNumberMap.getMap())); + } + + // This method is called at startup in a non-user thread. + // We should not have any threading issues here as the p2p network is just initializing + + public synchronized void readFromResources(String postFix) { + appendOnlyDataStoreService.readFromResources(postFix); + protectedDataStoreService.readFromResources(postFix); + + map.putAll(protectedDataStoreService.getMap()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void shutDown() { + if (removeExpiredEntriesTimer != null) + removeExpiredEntriesTimer.stop(); + } + + public void onBootstrapComplete() { + removeExpiredEntriesTimer = UserThread.runPeriodically(() -> { + log.trace("removeExpiredEntries"); + // The moment when an object becomes expired will not be synchronous in the network and we could + // get add network_messages after the object has expired. To avoid repeated additions of already expired + // object when we get it sent from new peers, we don’t remove the sequence number from the map. + // That way an ADD message for an already expired data will fail because the sequence number + // is equal and not larger as expected. + Map temp = new HashMap<>(map); + Set toRemoveSet = new HashSet<>(); + temp.entrySet().stream() + .filter(entry -> entry.getValue().isExpired()) + .forEach(entry -> { + ByteArray hashOfPayload = entry.getKey(); + ProtectedStorageEntry protectedStorageEntry = map.get(hashOfPayload); + if (!(protectedStorageEntry.getProtectedStoragePayload() instanceof PersistableNetworkPayload)) { + toRemoveSet.add(protectedStorageEntry); + log.debug("We found an expired data entry. We remove the protectedData:\n\t" + Utilities.toTruncatedString(protectedStorageEntry)); + map.remove(hashOfPayload); + } + }); + + toRemoveSet.forEach( + protectedDataToRemove -> hashMapChangedListeners.forEach( + listener -> listener.onRemoved(protectedDataToRemove))); + + if (sequenceNumberMap.size() > 1000) + sequenceNumberMap.setMap(getPurgedSequenceNumberMap(sequenceNumberMap.getMap())); + }, CHECK_TTL_INTERVAL_SEC); + } + + public Map getAppendOnlyDataStoreMap() { + return appendOnlyDataStoreService.getMap(); + } + + public Map getProtectedDataStoreMap() { + return protectedDataStoreService.getMap(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // MessageListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onMessage(NetworkEnvelope networkEnvelope, Connection connection) { + if (networkEnvelope instanceof BroadcastMessage) { + Log.traceCall(Utilities.toTruncatedString(networkEnvelope) + "\n\tconnection=" + connection); + connection.getPeersNodeAddressOptional().ifPresent(peersNodeAddress -> { + if (networkEnvelope instanceof AddDataMessage) { + addProtectedStorageEntry(((AddDataMessage) networkEnvelope).getProtectedStorageEntry(), peersNodeAddress, null, false); + } else if (networkEnvelope instanceof RemoveDataMessage) { + remove(((RemoveDataMessage) networkEnvelope).getProtectedStorageEntry(), peersNodeAddress, false); + } else if (networkEnvelope instanceof RemoveMailboxDataMessage) { + removeMailboxData(((RemoveMailboxDataMessage) networkEnvelope).getProtectedMailboxStorageEntry(), peersNodeAddress, false); + } else if (networkEnvelope instanceof RefreshOfferMessage) { + refreshTTL((RefreshOfferMessage) networkEnvelope, peersNodeAddress, false); + } else if (networkEnvelope instanceof AddPersistableNetworkPayloadMessage) { + addPersistableNetworkPayload(((AddPersistableNetworkPayloadMessage) networkEnvelope).getPersistableNetworkPayload(), + peersNodeAddress, false, true, false, true); + } + }); + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // ConnectionListener implementation + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void onConnection(Connection connection) { + } + + @Override + public void onDisconnect(CloseConnectionReason closeConnectionReason, Connection connection) { + if (connection.hasPeersNodeAddress() && !closeConnectionReason.isIntended) { + map.values() + .forEach(protectedStorageEntry -> { + NetworkPayload networkPayload = protectedStorageEntry.getProtectedStoragePayload(); + if (networkPayload instanceof ExpirablePayload && networkPayload instanceof RequiresOwnerIsOnlinePayload) { + NodeAddress ownerNodeAddress = ((RequiresOwnerIsOnlinePayload) networkPayload).getOwnerNodeAddress(); + if (ownerNodeAddress.equals(connection.getPeersNodeAddressOptional().get())) { + // We have a RequiresLiveOwnerData data object with the node address of the + // disconnected peer. We remove that data from our map. + + // Check if we have the data (e.g. OfferPayload) + ByteArray hashOfPayload = get32ByteHashAsByteArray(networkPayload); + boolean containsKey = map.containsKey(hashOfPayload); + if (containsKey) { + log.debug("We remove the data as the data owner got disconnected with " + + "closeConnectionReason=" + closeConnectionReason); + + // We only set the data back by half of the TTL and remove the data only if is has + // expired after that back dating. + // We might get connection drops which are not caused by the node going offline, so + // we give more tolerance with that approach, giving the node the change to + // refresh the TTL with a refresh message. + // We observed those issues during stress tests, but it might have been caused by the + // test set up (many nodes/connections over 1 router) + // TODO investigate what causes the disconnections. + // Usually the are: SOCKET_TIMEOUT ,TERMINATED (EOFException) + protectedStorageEntry.backDate(); + if (protectedStorageEntry.isExpired()) { + log.info("We found an expired data entry which we have already back dated. " + + "We remove the protectedStoragePayload:\n\t" + Utilities.toTruncatedString(protectedStorageEntry.getProtectedStoragePayload(), 100)); + doRemoveProtectedExpirableData(protectedStorageEntry, hashOfPayload); + } + } else { + log.debug("Remove data ignored as we don't have an entry for that data."); + } + } + } + }); + } + } + + @Override + public void onError(Throwable throwable) { + + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public boolean addPersistableNetworkPayload(PersistableNetworkPayload payload, + @Nullable NodeAddress sender, + boolean isDataOwner, + boolean allowBroadcast, + boolean reBroadcast, + boolean checkDate) { + log.debug("addPersistableNetworkPayload payload={}", payload); + final byte[] hash = payload.getHash(); + if (payload.verifyHashSize()) { + final ByteArray hashAsByteArray = new ByteArray(hash); + boolean containsKey = getAppendOnlyDataStoreMap().containsKey(hashAsByteArray); + if (!containsKey || reBroadcast) { + if (!(payload instanceof DateTolerantPayload) || !checkDate || ((DateTolerantPayload) payload).isDateInTolerance()) { + if (!containsKey) { + appendOnlyDataStoreService.put(hashAsByteArray, payload); + appendOnlyDataStoreListeners.forEach(e -> e.onAdded(payload)); + } + if (allowBroadcast) + broadcaster.broadcast(new AddPersistableNetworkPayloadMessage(payload), sender, null, isDataOwner); + + return true; + } else { + log.warn("Publish date of payload is not matching our current time and outside of our tolerance.\n" + + "Payload={}; now={}", payload.toString(), new Date()); + return false; + } + } else { + log.trace("We have that payload already in our map."); + return false; + } + } else { + log.warn("We got a hash exceeding our permitted size"); + return false; + } + } + + public boolean addProtectedStorageEntry(ProtectedStorageEntry protectedStorageEntry, @Nullable NodeAddress sender, + @Nullable BroadcastHandler.Listener listener, boolean isDataOwner) { + Log.traceCall("with allowBroadcast=true"); + return addProtectedStorageEntry(protectedStorageEntry, sender, listener, isDataOwner, true); + } + + public boolean addProtectedStorageEntry(ProtectedStorageEntry protectedStorageEntry, @Nullable NodeAddress sender, + @Nullable BroadcastHandler.Listener listener, boolean isDataOwner, boolean allowBroadcast) { + Log.traceCall("with allowBroadcast=" + allowBroadcast); + final ProtectedStoragePayload protectedStoragePayload = protectedStorageEntry.getProtectedStoragePayload(); + ByteArray hashOfPayload = get32ByteHashAsByteArray(protectedStoragePayload); + boolean sequenceNrValid = isSequenceNrValid(protectedStorageEntry.getSequenceNumber(), hashOfPayload); + boolean result = checkPublicKeys(protectedStorageEntry, true) + && checkSignature(protectedStorageEntry) + && sequenceNrValid; + + boolean containsKey = map.containsKey(hashOfPayload); + if (containsKey) + result = result && checkIfStoredDataPubKeyMatchesNewDataPubKey(protectedStorageEntry.getOwnerPubKey(), hashOfPayload); + + // printData("before add"); + if (result) { + final boolean hasSequenceNrIncreased = hasSequenceNrIncreased(protectedStorageEntry.getSequenceNumber(), hashOfPayload); + + if (!containsKey || hasSequenceNrIncreased) { + // At startup we don't have the item so we store it. At updates of the seq nr we store as well. + map.put(hashOfPayload, protectedStorageEntry); + hashMapChangedListeners.forEach(e -> e.onAdded(protectedStorageEntry)); + // printData("after add"); + } else { + log.trace("We got that version of the data already, so we don't store it."); + } + + if (hasSequenceNrIncreased) { + sequenceNumberMap.put(hashOfPayload, new MapValue(protectedStorageEntry.getSequenceNumber(), System.currentTimeMillis())); + // We set the delay higher as we might receive a batch of items + sequenceNumberMapStorage.queueUpForSave(SequenceNumberMap.clone(sequenceNumberMap), 2000); + + if (allowBroadcast) + broadcastProtectedStorageEntry(protectedStorageEntry, sender, listener, isDataOwner); + } else { + log.trace("We got that version of the data already, so we don't broadcast it."); + } + + if (protectedStoragePayload instanceof PersistablePayload) { + ByteArray compactHash = getCompactHashAsByteArray(protectedStoragePayload); + ProtectedStorageEntry previous = protectedDataStoreService.putIfAbsent(compactHash, protectedStorageEntry); + if (previous == null) + protectedDataStoreListeners.forEach(e -> e.onAdded(protectedStorageEntry)); + } + } else { + log.trace("add failed"); + } + return result; + } + + public void broadcastProtectedStorageEntry(ProtectedStorageEntry protectedStorageEntry, + @Nullable NodeAddress sender, + @Nullable BroadcastHandler.Listener broadcastListener, + boolean isDataOwner) { + broadcast(new AddDataMessage(protectedStorageEntry), sender, broadcastListener, isDataOwner); + } + + public boolean refreshTTL(RefreshOfferMessage refreshTTLMessage, @Nullable NodeAddress sender, boolean isDataOwner) { + Log.traceCall(); + + byte[] hashOfDataAndSeqNr = refreshTTLMessage.getHashOfDataAndSeqNr(); + byte[] signature = refreshTTLMessage.getSignature(); + ByteArray hashOfPayload = new ByteArray(refreshTTLMessage.getHashOfPayload()); + int sequenceNumber = refreshTTLMessage.getSequenceNumber(); + + if (map.containsKey(hashOfPayload)) { + ProtectedStorageEntry storedData = map.get(hashOfPayload); + + if (sequenceNumberMap.containsKey(hashOfPayload) && sequenceNumberMap.get(hashOfPayload).sequenceNr == sequenceNumber) { + log.trace("We got that message with that seq nr already from another peer. We ignore that message."); + return true; + } else { + PublicKey ownerPubKey = storedData.getProtectedStoragePayload().getOwnerPubKey(); + final boolean checkSignature = checkSignature(ownerPubKey, hashOfDataAndSeqNr, signature); + final boolean hasSequenceNrIncreased = hasSequenceNrIncreased(sequenceNumber, hashOfPayload); + final boolean checkIfStoredDataPubKeyMatchesNewDataPubKey = checkIfStoredDataPubKeyMatchesNewDataPubKey(ownerPubKey, + hashOfPayload); + boolean allValid = checkSignature && + hasSequenceNrIncreased && + checkIfStoredDataPubKeyMatchesNewDataPubKey; + + // printData("before refreshTTL"); + if (allValid) { + log.debug("refreshDate called for storedData:\n\t" + StringUtils.abbreviate(storedData.toString(), 100)); + storedData.refreshTTL(); + storedData.updateSequenceNumber(sequenceNumber); + storedData.updateSignature(signature); + printData("after refreshTTL"); + sequenceNumberMap.put(hashOfPayload, new MapValue(sequenceNumber, System.currentTimeMillis())); + sequenceNumberMapStorage.queueUpForSave(SequenceNumberMap.clone(sequenceNumberMap), 1000); + + broadcast(refreshTTLMessage, sender, null, isDataOwner); + } + return allValid; + } + } else { + log.debug("We don't have data for that refresh message in our map. That is expected if we missed the data publishing."); + return false; + } + } + + public boolean remove(ProtectedStorageEntry protectedStorageEntry, @Nullable NodeAddress sender, boolean isDataOwner) { + Log.traceCall(); + final ProtectedStoragePayload protectedStoragePayload = protectedStorageEntry.getProtectedStoragePayload(); + ByteArray hashOfPayload = get32ByteHashAsByteArray(protectedStoragePayload); + boolean containsKey = map.containsKey(hashOfPayload); + if (!containsKey) + log.debug("Remove data ignored as we don't have an entry for that data."); + boolean result = containsKey + && checkPublicKeys(protectedStorageEntry, false) + && isSequenceNrValid(protectedStorageEntry.getSequenceNumber(), hashOfPayload) + && checkSignature(protectedStorageEntry) + && checkIfStoredDataPubKeyMatchesNewDataPubKey(protectedStorageEntry.getOwnerPubKey(), hashOfPayload); + + // printData("before remove"); + if (result) { + doRemoveProtectedExpirableData(protectedStorageEntry, hashOfPayload); + printData("after remove"); + sequenceNumberMap.put(hashOfPayload, new MapValue(protectedStorageEntry.getSequenceNumber(), System.currentTimeMillis())); + sequenceNumberMapStorage.queueUpForSave(SequenceNumberMap.clone(sequenceNumberMap), 300); + + broadcast(new RemoveDataMessage(protectedStorageEntry), sender, null, isDataOwner); + + if (protectedStoragePayload instanceof PersistablePayload) { + ByteArray compactHash = getCompactHashAsByteArray(protectedStoragePayload); + ProtectedStorageEntry previous = protectedDataStoreService.remove(compactHash, protectedStorageEntry); + if (previous != null) { + protectedDataStoreListeners.forEach(e -> e.onRemoved(protectedStorageEntry)); + } else { + log.info("We cannot remove the protectedStorageEntry from the persistedEntryMap as it does not exist."); + } + } + } else { + log.debug("remove failed"); + } + return result; + } + + @SuppressWarnings("UnusedReturnValue") + public boolean removeMailboxData(ProtectedMailboxStorageEntry protectedMailboxStorageEntry, @Nullable NodeAddress sender, boolean isDataOwner) { + Log.traceCall(); + ByteArray hashOfData = get32ByteHashAsByteArray(protectedMailboxStorageEntry.getProtectedStoragePayload()); + boolean containsKey = map.containsKey(hashOfData); + if (!containsKey) + log.debug("Remove data ignored as we don't have an entry for that data."); + boolean result = containsKey + && checkPublicKeys(protectedMailboxStorageEntry, false) + && isSequenceNrValid(protectedMailboxStorageEntry.getSequenceNumber(), hashOfData) + && protectedMailboxStorageEntry.getMailboxStoragePayload().getOwnerPubKey().equals(protectedMailboxStorageEntry.getReceiversPubKey()) // at remove both keys are the same (only receiver is able to remove data) + && checkSignature(protectedMailboxStorageEntry) + && checkIfStoredMailboxDataMatchesNewMailboxData(protectedMailboxStorageEntry.getReceiversPubKey(), hashOfData); + + // printData("before removeMailboxData"); + if (result) { + doRemoveProtectedExpirableData(protectedMailboxStorageEntry, hashOfData); + printData("after removeMailboxData"); + sequenceNumberMap.put(hashOfData, new MapValue(protectedMailboxStorageEntry.getSequenceNumber(), System.currentTimeMillis())); + sequenceNumberMapStorage.queueUpForSave(SequenceNumberMap.clone(sequenceNumberMap), 300); + + broadcast(new RemoveMailboxDataMessage(protectedMailboxStorageEntry), sender, null, isDataOwner); + } else { + log.debug("removeMailboxData failed"); + } + return result; + } + + public ProtectedStorageEntry getProtectedStorageEntry(ProtectedStoragePayload protectedStoragePayload, KeyPair ownerStoragePubKey) + throws CryptoException { + ByteArray hashOfData = get32ByteHashAsByteArray(protectedStoragePayload); + int sequenceNumber; + if (sequenceNumberMap.containsKey(hashOfData)) + sequenceNumber = sequenceNumberMap.get(hashOfData).sequenceNr + 1; + else + sequenceNumber = 1; + + byte[] hashOfDataAndSeqNr = P2PDataStorage.get32ByteHash(new DataAndSeqNrPair(protectedStoragePayload, sequenceNumber)); + byte[] signature = Sig.sign(ownerStoragePubKey.getPrivate(), hashOfDataAndSeqNr); + return new ProtectedStorageEntry(protectedStoragePayload, ownerStoragePubKey.getPublic(), sequenceNumber, signature); + } + + public RefreshOfferMessage getRefreshTTLMessage(ProtectedStoragePayload protectedStoragePayload, KeyPair ownerStoragePubKey) + throws CryptoException { + ByteArray hashOfPayload = get32ByteHashAsByteArray(protectedStoragePayload); + int sequenceNumber; + if (sequenceNumberMap.containsKey(hashOfPayload)) + sequenceNumber = sequenceNumberMap.get(hashOfPayload).sequenceNr + 1; + else + sequenceNumber = 1; + + byte[] hashOfDataAndSeqNr = P2PDataStorage.get32ByteHash(new DataAndSeqNrPair(protectedStoragePayload, sequenceNumber)); + byte[] signature = Sig.sign(ownerStoragePubKey.getPrivate(), hashOfDataAndSeqNr); + return new RefreshOfferMessage(hashOfDataAndSeqNr, signature, hashOfPayload.bytes, sequenceNumber); + } + + public ProtectedMailboxStorageEntry getMailboxDataWithSignedSeqNr(MailboxStoragePayload expirableMailboxStoragePayload, + KeyPair storageSignaturePubKey, PublicKey receiversPublicKey) + throws CryptoException { + ByteArray hashOfData = get32ByteHashAsByteArray(expirableMailboxStoragePayload); + int sequenceNumber; + if (sequenceNumberMap.containsKey(hashOfData)) + sequenceNumber = sequenceNumberMap.get(hashOfData).sequenceNr + 1; + else + sequenceNumber = 1; + + byte[] hashOfDataAndSeqNr = P2PDataStorage.get32ByteHash(new DataAndSeqNrPair(expirableMailboxStoragePayload, sequenceNumber)); + byte[] signature = Sig.sign(storageSignaturePubKey.getPrivate(), hashOfDataAndSeqNr); + return new ProtectedMailboxStorageEntry(expirableMailboxStoragePayload, + storageSignaturePubKey.getPublic(), sequenceNumber, signature, receiversPublicKey); + } + + public void addHashMapChangedListener(HashMapChangedListener hashMapChangedListener) { + hashMapChangedListeners.add(hashMapChangedListener); + } + + public void removeHashMapChangedListener(HashMapChangedListener hashMapChangedListener) { + hashMapChangedListeners.remove(hashMapChangedListener); + } + + public void addAppendOnlyDataStoreListener(AppendOnlyDataStoreListener listener) { + appendOnlyDataStoreListeners.add(listener); + } + + public void removeAppendOnlyDataStoreListener(AppendOnlyDataStoreListener listener) { + appendOnlyDataStoreListeners.remove(listener); + } + + public void addProtectedDataStoreListener(ProtectedDataStoreListener listener) { + protectedDataStoreListeners.add(listener); + } + + public void removeProtectedDataStoreListener(ProtectedDataStoreListener listener) { + protectedDataStoreListeners.remove(listener); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private void doRemoveProtectedExpirableData(ProtectedStorageEntry protectedStorageEntry, ByteArray hashOfPayload) { + map.remove(hashOfPayload); + log.trace("Data removed from our map. We broadcast the message to our peers."); + hashMapChangedListeners.stream().forEach(e -> e.onRemoved(protectedStorageEntry)); + } + + private boolean isSequenceNrValid(int newSequenceNumber, ByteArray hashOfData) { + if (sequenceNumberMap.containsKey(hashOfData)) { + int storedSequenceNumber = sequenceNumberMap.get(hashOfData).sequenceNr; + if (newSequenceNumber >= storedSequenceNumber) { + log.trace("Sequence number is valid (>=). sequenceNumber = " + + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber); + return true; + } else { + log.debug("Sequence number is invalid. sequenceNumber = " + + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber + "\n" + + "That can happen if the data owner gets an old delayed data storage message."); + return false; + } + } else { + log.trace("Sequence number is valid (!sequenceNumberMap.containsKey(hashOfData)). sequenceNumber = " + newSequenceNumber); + return true; + } + } + + private boolean hasSequenceNrIncreased(int newSequenceNumber, ByteArray hashOfData) { + if (sequenceNumberMap.containsKey(hashOfData)) { + int storedSequenceNumber = sequenceNumberMap.get(hashOfData).sequenceNr; + if (newSequenceNumber > storedSequenceNumber) { + log.trace("Sequence number has increased (>). sequenceNumber = " + + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber + " / hashOfData=" + hashOfData.toString()); + return true; + } else if (newSequenceNumber == storedSequenceNumber) { + String msg; + if (newSequenceNumber == 0) { + msg = "Sequence number is equal to the stored one and both are 0." + + "That is expected for network_messages which never got updated (mailbox msg)."; + } else { + msg = "Sequence number is equal to the stored one. sequenceNumber = " + + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber; + } + log.debug(msg); + return false; + } else { + log.debug("Sequence number is invalid. sequenceNumber = " + + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber + "\n" + + "That can happen if the data owner gets an old delayed data storage message."); + return false; + } + } else { + log.trace("Sequence number has increased (!sequenceNumberMap.containsKey(hashOfData)). sequenceNumber = " + newSequenceNumber + " / hashOfData=" + hashOfData.toString()); + return true; + } + } + + private boolean checkSignature(PublicKey ownerPubKey, byte[] hashOfDataAndSeqNr, byte[] signature) { + try { + boolean result = Sig.verify(ownerPubKey, hashOfDataAndSeqNr, signature); + if (!result) + log.warn("Signature verification failed at checkSignature. " + + "That should not happen."); + + return result; + } catch (CryptoException e) { + log.error("Signature verification failed at checkSignature"); + return false; + } + } + + private boolean checkSignature(ProtectedStorageEntry protectedStorageEntry) { + byte[] hashOfDataAndSeqNr = P2PDataStorage.get32ByteHash(new DataAndSeqNrPair(protectedStorageEntry.getProtectedStoragePayload(), protectedStorageEntry.getSequenceNumber())); + return checkSignature(protectedStorageEntry.getOwnerPubKey(), hashOfDataAndSeqNr, protectedStorageEntry.getSignature()); + } + + // Check that the pubkey of the storage entry matches the allowed pubkey for the addition or removal operation + // in the contained mailbox message, or the pubKey of other kinds of network_messages. + private boolean checkPublicKeys(ProtectedStorageEntry protectedStorageEntry, boolean isAddOperation) { + boolean result; + final ProtectedStoragePayload protectedStoragePayload = protectedStorageEntry.getProtectedStoragePayload(); + if (protectedStoragePayload instanceof MailboxStoragePayload) { + MailboxStoragePayload payload = (MailboxStoragePayload) protectedStoragePayload; + if (isAddOperation) + result = payload.getSenderPubKeyForAddOperation() != null && + payload.getSenderPubKeyForAddOperation().equals(protectedStorageEntry.getOwnerPubKey()); + else + result = payload.getOwnerPubKey() != null && + payload.getOwnerPubKey().equals(protectedStorageEntry.getOwnerPubKey()); + } else { + result = protectedStorageEntry.getOwnerPubKey() != null && + protectedStoragePayload != null && + protectedStorageEntry.getOwnerPubKey().equals(protectedStoragePayload.getOwnerPubKey()); + } + + if (!result) { + String res1 = protectedStorageEntry.toString(); + String res2 = "null"; + if (protectedStoragePayload != null && + protectedStoragePayload.getOwnerPubKey() != null) + res2 = Utilities.encodeToHex(protectedStoragePayload.getOwnerPubKey().getEncoded(), true); + + log.warn("PublicKey of payload data and ProtectedStorageEntry are not matching. protectedStorageEntry=" + res1 + + "protectedStorageEntry.getStoragePayload().getOwnerPubKey()=" + res2); + } + return result; + } + + private boolean checkIfStoredDataPubKeyMatchesNewDataPubKey(PublicKey ownerPubKey, ByteArray hashOfData) { + ProtectedStorageEntry storedData = map.get(hashOfData); + boolean result = storedData.getOwnerPubKey() != null && storedData.getOwnerPubKey().equals(ownerPubKey); + if (!result) + log.warn("New data entry does not match our stored data. storedData.ownerPubKey=" + + (storedData.getOwnerPubKey() != null ? storedData.getOwnerPubKey().toString() : "null") + + ", ownerPubKey=" + ownerPubKey); + + return result; + } + + private boolean checkIfStoredMailboxDataMatchesNewMailboxData(PublicKey receiversPubKey, ByteArray hashOfData) { + ProtectedStorageEntry storedData = map.get(hashOfData); + if (storedData instanceof ProtectedMailboxStorageEntry) { + ProtectedMailboxStorageEntry entry = (ProtectedMailboxStorageEntry) storedData; + // publicKey is not the same (stored: sender, new: receiver) + boolean result = entry.getReceiversPubKey().equals(receiversPubKey) + && get32ByteHashAsByteArray(entry.getProtectedStoragePayload()).equals(hashOfData); + if (!result) + log.warn("New data entry does not match our stored data. entry.receiversPubKey=" + entry.getReceiversPubKey() + + ", receiversPubKey=" + receiversPubKey); + + return result; + } else { + log.error("We expected a MailboxData but got other type. That must never happen. storedData=" + storedData); + return false; + } + } + + private void broadcast(BroadcastMessage message, @Nullable NodeAddress sender, + @Nullable BroadcastHandler.Listener listener, boolean isDataOwner) { + broadcaster.broadcast(message, sender, listener, isDataOwner); + } + + private ByteArray get32ByteHashAsByteArray(NetworkPayload data) { + return new ByteArray(P2PDataStorage.get32ByteHash(data)); + } + + public static ByteArray getCompactHashAsByteArray(ProtectedStoragePayload protectedStoragePayload) { + return new ByteArray(getCompactHash(protectedStoragePayload)); + } + + public static byte[] getCompactHash(ProtectedStoragePayload protectedStoragePayload) { + return Hash.getSha256Ripemd160hash(protectedStoragePayload.toProtoMessage().toByteArray()); + } + + // Get a new map with entries older than PURGE_AGE_DAYS purged from the given map. + private Map getPurgedSequenceNumberMap(Map persisted) { + Map purged = new HashMap<>(); + long maxAgeTs = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(PURGE_AGE_DAYS); + persisted.entrySet().stream().forEach(entry -> { + if (entry.getValue().timeStamp > maxAgeTs) + purged.put(entry.getKey(), entry.getValue()); + }); + return purged; + } + + private void printData(String info) { + if (LoggerFactory.getLogger(Log.class).isInfoEnabled() || LoggerFactory.getLogger(Log.class).isDebugEnabled()) { + StringBuilder sb = new StringBuilder("\n\n------------------------------------------------------------\n"); + sb.append("Data set ").append(info).append(" operation"); + // We print the items sorted by hash with the payload class name and id + List> tempList = map.values().stream() + .map(e -> new Tuple2<>(org.bitcoinj.core.Utils.HEX.encode(get32ByteHashAsByteArray(e.getProtectedStoragePayload()).bytes), e)) + .collect(Collectors.toList()); + tempList.sort((o1, o2) -> o1.first.compareTo(o2.first)); + tempList.stream().forEach(e -> { + final ProtectedStorageEntry storageEntry = e.second; + final ProtectedStoragePayload protectedStoragePayload = storageEntry.getProtectedStoragePayload(); + final MapValue mapValue = sequenceNumberMap.get(get32ByteHashAsByteArray(protectedStoragePayload)); + sb.append("\n") + .append("Hash=") + .append(e.first) + .append("; Class=") + .append(protectedStoragePayload.getClass().getSimpleName()) + .append("; SequenceNumbers (Object/Stored)=") + .append(storageEntry.getSequenceNumber()) + .append(" / ") + .append(mapValue != null ? mapValue.sequenceNr : "null") + .append("; TimeStamp (Object/Stored)=") + .append(storageEntry.getCreationTimeStamp()) + .append(" / ") + .append(mapValue != null ? mapValue.timeStamp : "null") + .append("; Payload=") + .append(Utilities.toTruncatedString(protectedStoragePayload)); + }); + sb.append("\n------------------------------------------------------------\n"); + log.debug(sb.toString()); + log.debug("Data set " + info + " operation: size=" + map.values().size()); + } + } + + /** + * @param data + * @return Hash of data + */ + public static byte[] get32ByteHash(NetworkPayload data) { + return Hash.getSha256Hash(data.toProtoMessage().toByteArray()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Static class + /////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Used as container for calculating cryptographic hash of data and sequenceNumber. + */ + @EqualsAndHashCode + @ToString + public static final class DataAndSeqNrPair implements NetworkPayload { + // data are only used for calculating cryptographic hash from both values so they are kept private + private final ProtectedStoragePayload protectedStoragePayload; + private final int sequenceNumber; + + public DataAndSeqNrPair(ProtectedStoragePayload protectedStoragePayload, int sequenceNumber) { + this.protectedStoragePayload = protectedStoragePayload; + this.sequenceNumber = sequenceNumber; + } + + // Used only for calculating hash of byte array from PB object + @Override + public com.google.protobuf.Message toProtoMessage() { + return PB.DataAndSeqNrPair.newBuilder() + .setPayload((PB.StoragePayload) protectedStoragePayload.toProtoMessage()) + .setSequenceNumber(sequenceNumber) + .build(); + } + } + + + /** + * Used as key object in map for cryptographic hash of stored data as byte[] as primitive data type cannot be + * used as key + */ + @EqualsAndHashCode + public static final class ByteArray implements PersistablePayload { + // That object is saved to disc. We need to take care of changes to not break deserialization. + public final byte[] bytes; + + @Override + public String toString() { + return "ByteArray{" + + "bytes as Hex=" + Hex.toHexString(bytes) + + '}'; + } + + public ByteArray(byte[] bytes) { + this.bytes = bytes; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Protobuffer + /////////////////////////////////////////////////////////////////////////////////////////// + + public ByteArray(String hex) { + this.bytes = Utilities.decodeFromHex(hex); + } + + @Override + public PB.ByteArray toProtoMessage() { + return PB.ByteArray.newBuilder().setBytes(ByteString.copyFrom(bytes)).build(); + } + + public static ByteArray fromProto(PB.ByteArray proto) { + return new ByteArray(proto.getBytes().toByteArray()); + } + + public String getHex() { + return Utilities.encodeToHex(bytes); + } + + public static Set convertBytesSetToByteArraySet(Set set) { + return set != null ? + set.stream() + .map(P2PDataStorage.ByteArray::new) + .collect(Collectors.toSet()) + : new HashSet<>(); + } + } + + /** + * Used as value in map + */ + @EqualsAndHashCode + @ToString + public static final class MapValue implements PersistablePayload { + // That object is saved to disc. We need to take care of changes to not break deserialization. + final public int sequenceNr; + final public long timeStamp; + + public MapValue(int sequenceNr, long timeStamp) { + this.sequenceNr = sequenceNr; + this.timeStamp = timeStamp; + } + + @Override + public PB.MapValue toProtoMessage() { + return PB.MapValue.newBuilder().setSequenceNr(sequenceNr).setTimeStamp(timeStamp).build(); + } + + public static MapValue fromProto(PB.MapValue proto) { + return new MapValue(proto.getSequenceNr(), proto.getTimeStamp()); + } + } +} + diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/AddDataMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/AddDataMessage.java new file mode 100644 index 00000000000..033161891eb --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/AddDataMessage.java @@ -0,0 +1,70 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.Message; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class AddDataMessage extends BroadcastMessage { + private final ProtectedStorageEntry protectedStorageEntry; + + public AddDataMessage(ProtectedStorageEntry protectedStorageEntry) { + this(protectedStorageEntry, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private AddDataMessage(ProtectedStorageEntry protectedStorageEntry, int messageVersion) { + super(messageVersion); + this.protectedStorageEntry = protectedStorageEntry; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + PB.StorageEntryWrapper.Builder builder = PB.StorageEntryWrapper.newBuilder(); + final Message message = protectedStorageEntry.toProtoMessage(); + if (protectedStorageEntry instanceof ProtectedMailboxStorageEntry) + builder.setProtectedMailboxStorageEntry((PB.ProtectedMailboxStorageEntry) message); + else + builder.setProtectedStorageEntry((PB.ProtectedStorageEntry) message); + + return getNetworkEnvelopeBuilder() + .setAddDataMessage(PB.AddDataMessage.newBuilder() + .setEntry(builder)) + .build(); + } + + public static AddDataMessage fromProto(PB.AddDataMessage proto, NetworkProtoResolver resolver, int messageVersion) { + return new AddDataMessage((ProtectedStorageEntry) resolver.fromProto(proto.getEntry()), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/AddPersistableNetworkPayloadMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/AddPersistableNetworkPayloadMessage.java new file mode 100644 index 00000000000..8047b03e04c --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/AddPersistableNetworkPayloadMessage.java @@ -0,0 +1,63 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class AddPersistableNetworkPayloadMessage extends BroadcastMessage { + private final PersistableNetworkPayload persistableNetworkPayload; + + public AddPersistableNetworkPayloadMessage(PersistableNetworkPayload persistableNetworkPayload) { + this(persistableNetworkPayload, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private AddPersistableNetworkPayloadMessage(PersistableNetworkPayload persistableNetworkPayload, int messageVersion) { + super(messageVersion); + this.persistableNetworkPayload = persistableNetworkPayload; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setAddPersistableNetworkPayloadMessage(PB.AddPersistableNetworkPayloadMessage.newBuilder() + .setPayload(persistableNetworkPayload.toProtoMessage())) + .build(); + } + + public static AddPersistableNetworkPayloadMessage fromProto(PB.AddPersistableNetworkPayloadMessage proto, + NetworkProtoResolver resolver, + int messageVersion) { + return new AddPersistableNetworkPayloadMessage((PersistableNetworkPayload) resolver.fromProto(proto.getPayload()), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/BroadcastMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/BroadcastMessage.java new file mode 100644 index 00000000000..38bc518eaf9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/BroadcastMessage.java @@ -0,0 +1,29 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.common.proto.network.NetworkEnvelope; + +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +public abstract class BroadcastMessage extends NetworkEnvelope { + protected BroadcastMessage(int messageVersion) { + super(messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/RefreshOfferMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/RefreshOfferMessage.java new file mode 100644 index 00000000000..2a230c56e9b --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/RefreshOfferMessage.java @@ -0,0 +1,79 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.common.app.Version; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class RefreshOfferMessage extends BroadcastMessage { + private final byte[] hashOfDataAndSeqNr; // 32 bytes + private final byte[] signature; // 46 bytes + private final byte[] hashOfPayload; // 32 bytes + private final int sequenceNumber; // 4 bytes + + public RefreshOfferMessage(byte[] hashOfDataAndSeqNr, + byte[] signature, + byte[] hashOfPayload, + int sequenceNumber) { + this(hashOfDataAndSeqNr, signature, hashOfPayload, sequenceNumber, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private RefreshOfferMessage(byte[] hashOfDataAndSeqNr, + byte[] signature, + byte[] hashOfPayload, + int sequenceNumber, + int messageVersion) { + super(messageVersion); + this.hashOfDataAndSeqNr = hashOfDataAndSeqNr; + this.signature = signature; + this.hashOfPayload = hashOfPayload; + this.sequenceNumber = sequenceNumber; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setRefreshOfferMessage(PB.RefreshOfferMessage.newBuilder() + .setHashOfDataAndSeqNr(ByteString.copyFrom(hashOfDataAndSeqNr)) + .setSignature(ByteString.copyFrom(signature)) + .setHashOfPayload(ByteString.copyFrom(hashOfPayload)) + .setSequenceNumber(sequenceNumber)) + .build(); + } + + public static RefreshOfferMessage fromProto(PB.RefreshOfferMessage proto, int messageVersion) { + return new RefreshOfferMessage(proto.getHashOfDataAndSeqNr().toByteArray(), + proto.getSignature().toByteArray(), + proto.getHashOfPayload().toByteArray(), + proto.getSequenceNumber(), + messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveDataMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveDataMessage.java new file mode 100644 index 00000000000..159bbe46617 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveDataMessage.java @@ -0,0 +1,61 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class RemoveDataMessage extends BroadcastMessage { + private final ProtectedStorageEntry protectedStorageEntry; + + public RemoveDataMessage(ProtectedStorageEntry protectedStorageEntry) { + this(protectedStorageEntry, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private RemoveDataMessage(ProtectedStorageEntry protectedStorageEntry, + int messageVersion) { + super(messageVersion); + this.protectedStorageEntry = protectedStorageEntry; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setRemoveDataMessage(PB.RemoveDataMessage.newBuilder() + .setProtectedStorageEntry((PB.ProtectedStorageEntry) protectedStorageEntry.toProtoMessage())) + .build(); + } + + public static RemoveDataMessage fromProto(PB.RemoveDataMessage proto, NetworkProtoResolver resolver, int messageVersion) { + return new RemoveDataMessage(ProtectedStorageEntry.fromProto(proto.getProtectedStorageEntry(), resolver), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveMailboxDataMessage.java b/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveMailboxDataMessage.java new file mode 100644 index 00000000000..67b105ce334 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/messages/RemoveMailboxDataMessage.java @@ -0,0 +1,61 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import lombok.EqualsAndHashCode; +import lombok.Value; + +@EqualsAndHashCode(callSuper = true) +@Value +public final class RemoveMailboxDataMessage extends BroadcastMessage { + private final ProtectedMailboxStorageEntry protectedMailboxStorageEntry; + + public RemoveMailboxDataMessage(ProtectedMailboxStorageEntry protectedMailboxStorageEntry) { + this(protectedMailboxStorageEntry, Version.getP2PMessageVersion()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private RemoveMailboxDataMessage(ProtectedMailboxStorageEntry protectedMailboxStorageEntry, + int messageVersion) { + super(messageVersion); + this.protectedMailboxStorageEntry = protectedMailboxStorageEntry; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return getNetworkEnvelopeBuilder() + .setRemoveMailboxDataMessage(PB.RemoveMailboxDataMessage.newBuilder() + .setProtectedStorageEntry(protectedMailboxStorageEntry.toProtoMessage())) + .build(); + } + + public static RemoveMailboxDataMessage fromProto(PB.RemoveMailboxDataMessage proto, NetworkProtoResolver resolver, int messageVersion) { + return new RemoveMailboxDataMessage(ProtectedMailboxStorageEntry.fromProto(proto.getProtectedStorageEntry(), resolver), messageVersion); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/CapabilityRequiringPayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/CapabilityRequiringPayload.java new file mode 100644 index 00000000000..69e4d04303e --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/CapabilityRequiringPayload.java @@ -0,0 +1,35 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.proto.network.NetworkPayload; + +import java.util.List; + +/** + * Used for payloads which requires certain capability. + *

+ * This is used for TradeStatistics to be able to support old versions which don't know about that class. + * We only send the data to nodes which are capable to handle that data (e.g. TradeStatistics supported from v. 0.4.9.1 on). + */ +public interface CapabilityRequiringPayload extends NetworkPayload { + /** + * @return Capabilities the other node need to support to receive that message + */ + List getRequiredCapabilities(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/DateTolerantPayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/DateTolerantPayload.java new file mode 100644 index 00000000000..e8b831eb67a --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/DateTolerantPayload.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +/** + * Interface for PersistableNetworkPayload which only get added if the date is inside a tolerance range. + * Used for AccountAgeWitness. + */ +public interface DateTolerantPayload extends PersistableNetworkPayload { + boolean isDateInTolerance(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/ExpirablePayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/ExpirablePayload.java new file mode 100644 index 00000000000..bd563be2bf9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/ExpirablePayload.java @@ -0,0 +1,35 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.proto.network.NetworkPayload; + +/** + * Messages which support a time to live + *

+ * Implementations: + * + * @see ProtectedStoragePayload + * @see MailboxStoragePayload + */ +public interface ExpirablePayload extends NetworkPayload { + /** + * @return Time to live in milli seconds + */ + long getTTL(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/LazyProcessedPayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/LazyProcessedPayload.java new file mode 100644 index 00000000000..f63d1cf9b62 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/LazyProcessedPayload.java @@ -0,0 +1,27 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.Payload; + +/** + * Marker interface for payload which gets delayed processed at startup so we don't hit performance too much. + * Used for TradeStatistics and AccountAgeWitness. + */ +public interface LazyProcessedPayload extends Payload { +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/MailboxStoragePayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/MailboxStoragePayload.java new file mode 100644 index 00000000000..88dd96cc945 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/MailboxStoragePayload.java @@ -0,0 +1,121 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.network.p2p.PrefixedSealedAndSignedMessage; + +import bisq.common.crypto.Sig; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import org.springframework.util.CollectionUtils; + +import java.security.PublicKey; + +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Nullable; + +/** + * Payload which supports a time to live and sender and receiver's pub keys for storage operations. + * It differs from the ProtectedExpirableMessage in the way that the sender is permitted to do an add operation + * but only the receiver is permitted to remove the data. + * That is the typical requirement for a mailbox like system. + *

+ * Typical payloads are trade or dispute network_messages to be stored when the peer is offline. + */ +@Getter +@EqualsAndHashCode +@Slf4j +public final class MailboxStoragePayload implements ProtectedStoragePayload, ExpirablePayload { + private final PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage; + private PublicKey senderPubKeyForAddOperation; + private final byte[] senderPubKeyForAddOperationBytes; + private PublicKey ownerPubKey; + private final byte[] ownerPubKeyBytes; + // Should be only used in emergency case if we need to add data but do not want to break backward compatibility + // at the P2P network storage checks. The hash of the object will be used to verify if the data is valid. Any new + // field in a class would break that hash and therefore break the storage mechanism. + @Nullable + private Map extraDataMap; + + public MailboxStoragePayload(PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage, + PublicKey senderPubKeyForAddOperation, + PublicKey ownerPubKey) { + this.prefixedSealedAndSignedMessage = prefixedSealedAndSignedMessage; + this.senderPubKeyForAddOperation = senderPubKeyForAddOperation; + this.ownerPubKey = ownerPubKey; + + senderPubKeyForAddOperationBytes = Sig.getPublicKeyBytes(senderPubKeyForAddOperation); + ownerPubKeyBytes = Sig.getPublicKeyBytes(ownerPubKey); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private MailboxStoragePayload(PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage, + byte[] senderPubKeyForAddOperationBytes, + byte[] ownerPubKeyBytes, + @Nullable Map extraDataMap) { + this.prefixedSealedAndSignedMessage = prefixedSealedAndSignedMessage; + this.senderPubKeyForAddOperationBytes = senderPubKeyForAddOperationBytes; + this.ownerPubKeyBytes = ownerPubKeyBytes; + this.extraDataMap = extraDataMap; + + senderPubKeyForAddOperation = Sig.getPublicKeyFromBytes(senderPubKeyForAddOperationBytes); + ownerPubKey = Sig.getPublicKeyFromBytes(ownerPubKeyBytes); + } + + @Override + public PB.StoragePayload toProtoMessage() { + final PB.MailboxStoragePayload.Builder builder = PB.MailboxStoragePayload.newBuilder() + .setPrefixedSealedAndSignedMessage(prefixedSealedAndSignedMessage.toProtoNetworkEnvelope().getPrefixedSealedAndSignedMessage()) + .setSenderPubKeyForAddOperationBytes(ByteString.copyFrom(senderPubKeyForAddOperationBytes)) + .setOwnerPubKeyBytes(ByteString.copyFrom(ownerPubKeyBytes)); + Optional.ofNullable(extraDataMap).ifPresent(builder::putAllExtraData); + return PB.StoragePayload.newBuilder().setMailboxStoragePayload(builder).build(); + } + + public static MailboxStoragePayload fromProto(PB.MailboxStoragePayload proto) { + return new MailboxStoragePayload( + PrefixedSealedAndSignedMessage.fromPayloadProto(proto.getPrefixedSealedAndSignedMessage()), + proto.getSenderPubKeyForAddOperationBytes().toByteArray(), + proto.getOwnerPubKeyBytes().toByteArray(), + CollectionUtils.isEmpty(proto.getExtraDataMap()) ? null : proto.getExtraDataMap()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public long getTTL() { + return TimeUnit.DAYS.toMillis(15); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableNetworkPayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableNetworkPayload.java new file mode 100644 index 00000000000..b0a8c12b406 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableNetworkPayload.java @@ -0,0 +1,46 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.proto.ProtoResolver; +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.persistable.PersistablePayload; + +import io.bisq.generated.protobuffer.PB; + +/** + * Marker interface for NetworkPayload which gets persisted in PersistableNetworkPayloadMap. + * We store it as a list in PB to keep storage size small (map would use hash as key which is in data object anyway). + * Not using a map also give more tolerance with data structure changes. + * This data structure does not use a verification of the owners signature. ProtectedStoragePayload is used if that is required. + * Currently we use it only for the AccountAgeWitness and TradeStatistics data. + * It is used for an append only data storage because removal would require owner verification. + */ +public interface PersistableNetworkPayload extends NetworkPayload, PersistablePayload { + + static PersistableNetworkPayload fromProto(PB.PersistableNetworkPayload payload, ProtoResolver resolver) { + return (PersistableNetworkPayload) resolver.fromProto(payload); + } + + PB.PersistableNetworkPayload toProtoMessage(); + + // Hash which will be used as key in the in-memory hashMap + byte[] getHash(); + + boolean verifyHashSize(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableProtectedPayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableProtectedPayload.java new file mode 100644 index 00000000000..fc8e1652952 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/PersistableProtectedPayload.java @@ -0,0 +1,33 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.proto.persistable.PersistablePayload; + +import io.bisq.generated.protobuffer.PB; + +/** + * ProtectedStoragePayload which are persistable and removable + */ +public interface PersistableProtectedPayload extends ProtectedStoragePayload, PersistablePayload { + + static PersistableProtectedPayload fromProto(PB.StoragePayload storagePayload, NetworkProtoResolver networkProtoResolver) { + return (PersistableProtectedPayload) networkProtoResolver.fromProto(storagePayload); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntry.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntry.java new file mode 100644 index 00000000000..ace8feebaa7 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntry.java @@ -0,0 +1,106 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.crypto.Sig; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.util.Utilities; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; + +import java.security.PublicKey; + +import lombok.EqualsAndHashCode; +import lombok.Value; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@EqualsAndHashCode(callSuper = true) +@Value +public class ProtectedMailboxStorageEntry extends ProtectedStorageEntry { + private final byte[] receiversPubKeyBytes; + transient private PublicKey receiversPubKey; + + public ProtectedMailboxStorageEntry(MailboxStoragePayload mailboxStoragePayload, + PublicKey ownerPubKey, + int sequenceNumber, + byte[] signature, + PublicKey receiversPubKey) { + super(mailboxStoragePayload, ownerPubKey, sequenceNumber, signature); + + this.receiversPubKey = receiversPubKey; + receiversPubKeyBytes = Sig.getPublicKeyBytes(receiversPubKey); + } + + public MailboxStoragePayload getMailboxStoragePayload() { + return (MailboxStoragePayload) getProtectedStoragePayload(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private ProtectedMailboxStorageEntry(long creationTimeStamp, + MailboxStoragePayload mailboxStoragePayload, + byte[] ownerPubKey, + int sequenceNumber, + byte[] signature, + byte[] receiversPubKeyBytes) { + super(creationTimeStamp, + mailboxStoragePayload, + ownerPubKey, + sequenceNumber, + signature); + + this.receiversPubKeyBytes = receiversPubKeyBytes; + receiversPubKey = Sig.getPublicKeyFromBytes(receiversPubKeyBytes); + + maybeAdjustCreationTimeStamp(); + } + + public PB.ProtectedMailboxStorageEntry toProtoMessage() { + return PB.ProtectedMailboxStorageEntry.newBuilder() + .setEntry((PB.ProtectedStorageEntry) super.toProtoMessage()) + .setReceiversPubKeyBytes(ByteString.copyFrom(receiversPubKeyBytes)) + .build(); + } + + public static ProtectedMailboxStorageEntry fromProto(PB.ProtectedMailboxStorageEntry proto, + NetworkProtoResolver resolver) { + ProtectedStorageEntry entry = ProtectedStorageEntry.fromProto(proto.getEntry(), resolver); + return new ProtectedMailboxStorageEntry( + entry.getCreationTimeStamp(), + (MailboxStoragePayload) entry.getProtectedStoragePayload(), + entry.getOwnerPubKey().getEncoded(), + entry.getSequenceNumber(), + entry.getSignature(), + proto.getReceiversPubKeyBytes().toByteArray()); + } + + + @Override + public String toString() { + return "ProtectedMailboxStorageEntry{" + + "\n receiversPubKeyBytes=" + Utilities.bytesAsHexString(receiversPubKeyBytes) + + ",\n receiversPubKey=" + receiversPubKey + + "\n} " + super.toString(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStorageEntry.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStorageEntry.java new file mode 100644 index 00000000000..e9cfd3bd6c8 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStorageEntry.java @@ -0,0 +1,137 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.crypto.Sig; +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.proto.persistable.PersistablePayload; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.ByteString; +import com.google.protobuf.Message; + +import java.security.PublicKey; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +@Getter +@EqualsAndHashCode +@Slf4j +public class ProtectedStorageEntry implements NetworkPayload, PersistablePayload { + private final ProtectedStoragePayload protectedStoragePayload; + private final byte[] ownerPubKeyBytes; + transient private final PublicKey ownerPubKey; + private int sequenceNumber; + private byte[] signature; + private long creationTimeStamp; + + public ProtectedStorageEntry(ProtectedStoragePayload protectedStoragePayload, + PublicKey ownerPubKey, + int sequenceNumber, + byte[] signature) { + this.protectedStoragePayload = protectedStoragePayload; + ownerPubKeyBytes = Sig.getPublicKeyBytes(ownerPubKey); + this.ownerPubKey = ownerPubKey; + + this.sequenceNumber = sequenceNumber; + this.signature = signature; + this.creationTimeStamp = System.currentTimeMillis(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + protected ProtectedStorageEntry(long creationTimeStamp, + ProtectedStoragePayload protectedStoragePayload, + byte[] ownerPubKeyBytes, + int sequenceNumber, + byte[] signature) { + this.protectedStoragePayload = protectedStoragePayload; + this.ownerPubKeyBytes = ownerPubKeyBytes; + ownerPubKey = Sig.getPublicKeyFromBytes(ownerPubKeyBytes); + + this.sequenceNumber = sequenceNumber; + this.signature = signature; + this.creationTimeStamp = creationTimeStamp; + + maybeAdjustCreationTimeStamp(); + } + + public Message toProtoMessage() { + return PB.ProtectedStorageEntry.newBuilder() + .setStoragePayload((PB.StoragePayload) protectedStoragePayload.toProtoMessage()) + .setOwnerPubKeyBytes(ByteString.copyFrom(ownerPubKeyBytes)) + .setSequenceNumber(sequenceNumber) + .setSignature(ByteString.copyFrom(signature)) + .setCreationTimeStamp(creationTimeStamp) + .build(); + } + + public PB.ProtectedStorageEntry toProtectedStorageEntry() { + return (PB.ProtectedStorageEntry) toProtoMessage(); + + } + + public static ProtectedStorageEntry fromProto(PB.ProtectedStorageEntry proto, + NetworkProtoResolver resolver) { + return new ProtectedStorageEntry(proto.getCreationTimeStamp(), + ProtectedStoragePayload.fromProto(proto.getStoragePayload(), resolver), + proto.getOwnerPubKeyBytes().toByteArray(), + proto.getSequenceNumber(), + proto.getSignature().toByteArray()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void maybeAdjustCreationTimeStamp() { + // We don't allow creation date in the future, but we cannot be too strict as clocks are not synced + if (creationTimeStamp > System.currentTimeMillis()) + creationTimeStamp = System.currentTimeMillis(); + } + + public void refreshTTL() { + creationTimeStamp = System.currentTimeMillis(); + } + + public void backDate() { + if (protectedStoragePayload instanceof ExpirablePayload) + creationTimeStamp -= ((ExpirablePayload) protectedStoragePayload).getTTL() / 2; + } + + public void updateSequenceNumber(int sequenceNumber) { + this.sequenceNumber = sequenceNumber; + } + + public void updateSignature(byte[] signature) { + this.signature = signature; + } + + public boolean isExpired() { + return protectedStoragePayload instanceof ExpirablePayload && + (System.currentTimeMillis() - creationTimeStamp) > ((ExpirablePayload) protectedStoragePayload).getTTL(); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStoragePayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStoragePayload.java new file mode 100644 index 00000000000..70bd806211f --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStoragePayload.java @@ -0,0 +1,58 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.network.NetworkProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import java.security.PublicKey; + +import java.util.Map; + +import javax.annotation.Nullable; + +/** + * Messages which support ownership protection (using signatures) and a time to live + *

+ * Implementations: + * io.bisq.alert.Alert + * io.bisq.arbitration.Arbitrator + * io.bisq.trade.offer.OfferPayload + */ +public interface ProtectedStoragePayload extends NetworkPayload { + /** + * Used for check if the add or remove operation is permitted. + * Only data owner can add or remove the data. + * OwnerPubKey has to be equal to the ownerPubKey of the ProtectedStorageEntry + * + * @return The public key of the data owner. + */ + PublicKey getOwnerPubKey(); + + // Should be only used in emergency case if we need to add data but do not want to break backward compatibility + // at the P2P network storage checks. The hash of the object will be used to verify if the data is valid. Any new + // field in a class would break that hash and therefore break the storage mechanism. + @Nullable + Map getExtraDataMap(); + + static ProtectedStoragePayload fromProto(PB.StoragePayload storagePayload, NetworkProtoResolver networkProtoResolver) { + return (ProtectedStoragePayload) networkProtoResolver.fromProto(storagePayload); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java b/p2p/src/main/java/bisq/network/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java new file mode 100644 index 00000000000..3d6aa5392d9 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java @@ -0,0 +1,36 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.payload; + + +import bisq.network.p2p.NodeAddress; + +import bisq.common.proto.network.NetworkPayload; + +/** + * Used for network_messages which require that the data owner is online. + *

+ * This is used for the offers to avoid dead offers in case the maker is in standby mode or the app has + * terminated without sending the remove message (e.g. network connection lost or in case of a crash). + */ +public interface RequiresOwnerIsOnlinePayload extends NetworkPayload { + /** + * @return NodeAddress of the data owner + */ + NodeAddress getOwnerNodeAddress(); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreListener.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreListener.java new file mode 100644 index 00000000000..20ae7044024 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreListener.java @@ -0,0 +1,24 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; + +public interface AppendOnlyDataStoreListener { + void onAdded(PersistableNetworkPayload payload); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreService.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreService.java new file mode 100644 index 00000000000..b669c009eec --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/AppendOnlyDataStoreService.java @@ -0,0 +1,86 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; + +import bisq.common.proto.persistable.PersistableEnvelope; + +import javax.inject.Inject; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class AppendOnlyDataStoreService { + private List> services = new ArrayList<>(); + + // We do not add PersistableNetworkPayloadListService to the services list as it it deprecated and used only to + // transfer old persisted data to the new data structure. + private PersistableNetworkPayloadListService persistableNetworkPayloadListService; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public AppendOnlyDataStoreService(PersistableNetworkPayloadListService persistableNetworkPayloadListService) { + this.persistableNetworkPayloadListService = persistableNetworkPayloadListService; + } + + public void addService(StoreService service) { + services.add(service); + } + + public void readFromResources(String postFix) { + services.forEach(service -> service.readFromResources(postFix)); + + // transferDeprecatedDataStructure(); + } + + // Only needed for one time converting the old data store to the new ones. Can be removed after next release when we + // are sure that no issues occurred. + private void transferDeprecatedDataStructure() { + // We read the file if it exists in the db folder + persistableNetworkPayloadListService.readStore(); + // Transfer the content to the new services + persistableNetworkPayloadListService.getMap().forEach(this::put); + // We are done with the transfer, now let's remove the file + persistableNetworkPayloadListService.removeFile(); + } + + public Map getMap() { + return services.stream() + .flatMap(service -> service.getMap().entrySet().stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + public void put(P2PDataStorage.ByteArray hashAsByteArray, PersistableNetworkPayload payload) { + services.stream() + .filter(service -> service.canHandle(payload)) + .forEach(service -> { + service.putIfAbsent(hashAsByteArray, payload); + }); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadList.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadList.java new file mode 100644 index 00000000000..197c829eefc --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadList.java @@ -0,0 +1,88 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; + +import bisq.common.proto.persistable.PersistableEnvelope; +import bisq.common.proto.persistable.PersistenceProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import com.google.protobuf.Message; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +// That class wraps a map but is represented in PB as a list to reduce data size (no key). +// PB also does not support a byte array as key and would require some quirks to support such a map (using hex string +// would render our 20 byte keys to 40 bytes as HEX encoded). +// The class name should be map not list but we want to stick with the PB definition name and that cannot be changed +// without breaking backward compatibility. +// TODO at next hard fork we can rename the PB definition and class name. +@Deprecated +@Slf4j +public class PersistableNetworkPayloadList implements PersistableEnvelope { + @Getter + private Map map = new ConcurrentHashMap<>(); + + public PersistableNetworkPayloadList() { + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + public PersistableNetworkPayloadList(Map map) { + this.map.putAll(map); + } + + public Message toProtoMessage() { + // Protobuffer maps don't support bytes as key so we use a hex string + Set values = map.values().stream() + .map(PersistableNetworkPayload::toProtoMessage) + .collect(Collectors.toSet()); + return PB.PersistableEnvelope.newBuilder() + .setPersistableNetworkPayloadList(PB.PersistableNetworkPayloadList.newBuilder() + .addAllItems(values)) + .build(); + } + + public static PersistableEnvelope fromProto(PB.PersistableNetworkPayloadList proto, + PersistenceProtoResolver resolver) { + Map map = new HashMap<>(); + proto.getItemsList() + .forEach(e -> { + PersistableNetworkPayload payload = PersistableNetworkPayload.fromProto(e, resolver); + map.put(new P2PDataStorage.ByteArray(payload.getHash()), payload); + }); + return new PersistableNetworkPayloadList(map); + } + + public boolean containsKey(P2PDataStorage.ByteArray hash) { + return map.containsKey(hash); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadListService.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadListService.java new file mode 100644 index 00000000000..ee678b1484d --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/PersistableNetworkPayloadListService.java @@ -0,0 +1,125 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.PersistableNetworkPayload; + +import bisq.common.storage.FileUtil; +import bisq.common.storage.Storage; + +import com.google.inject.name.Named; + +import javax.inject.Inject; + +import java.nio.file.Paths; + +import java.io.File; +import java.io.IOException; + +import java.util.Map; + +import lombok.extern.slf4j.Slf4j; + +import static com.google.common.base.Preconditions.checkArgument; + +/** + * Not used anymore. We still need the class for supporting the transfer of th old data structure to the new. + * Can be removed at the next hard fork. + */ +@Deprecated +@Slf4j +public final class PersistableNetworkPayloadListService extends StoreService { + public static final String FILE_NAME = "PersistableNetworkPayloadMap"; + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public PersistableNetworkPayloadListService(@Named(Storage.STORAGE_DIR) File storageDir, + Storage persistableNetworkPayloadMapStorage) { + super(storageDir, persistableNetworkPayloadMapStorage); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void removeFile() { + final File file = new File(Paths.get(absolutePathOfStorageDir, getFileName()).toString()); + if (file.exists()) + log.info("Remove deprecated file " + file.getAbsolutePath()); + try { + FileUtil.deleteFileIfExists(file); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.toString()); + } + } + + @Override + public PersistableNetworkPayload putIfAbsent(P2PDataStorage.ByteArray hash, PersistableNetworkPayload payload) { + throw new RuntimeException("putIfAbsent must not be called on deprecated PersistableNetworkPayloadListService"); + } + + @Override + protected void persist() { + throw new RuntimeException("persist must not be called on deprecated PersistableNetworkPayloadListService"); + } + + @Override + public PersistableNetworkPayload remove(P2PDataStorage.ByteArray hash) { + throw new RuntimeException("remove must not be called on deprecated PersistableNetworkPayloadListService"); + } + + @Override + public boolean canHandle(PersistableNetworkPayload payload) { + throw new RuntimeException("isMyPayload must not be called on deprecated PersistableNetworkPayloadListService"); + } + + @Override + public String getFileName() { + return FILE_NAME; + } + + @Override + public Map getMap() { + return store.getMap(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Protected + /////////////////////////////////////////////////////////////////////////////////////////// + + @Override + protected PersistableNetworkPayloadList createStore() { + return new PersistableNetworkPayloadList(); + } + + @Override + protected void readStore() { + super.readStore(); + checkArgument(store instanceof PersistableNetworkPayloadList, + "Store is not instance of TradeStatistics2Store. That can happen if the ProtoBuffer " + + "file got changed. We clear the data store and recreated it again."); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreListener.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreListener.java new file mode 100644 index 00000000000..6eb1a12cbf2 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreListener.java @@ -0,0 +1,26 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +public interface ProtectedDataStoreListener { + void onAdded(ProtectedStorageEntry protectedStorageEntry); + + void onRemoved(ProtectedStorageEntry protectedStorageEntry); +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreService.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreService.java new file mode 100644 index 00000000000..65b93d5ed9a --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/ProtectedDataStoreService.java @@ -0,0 +1,92 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.proto.persistable.PersistableEnvelope; + +import javax.inject.Inject; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class ProtectedDataStoreService { + private List> services = new ArrayList<>(); + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + @Inject + public ProtectedDataStoreService() { + } + + public void addService(StoreService service) { + services.add(service); + } + + public void readFromResources(String postFix) { + services.forEach(service -> service.readFromResources(postFix)); + } + + public Map getMap() { + return services.stream() + .flatMap(service -> service.getMap().entrySet().stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + public void put(P2PDataStorage.ByteArray hash, ProtectedStorageEntry entry) { + services.stream() + .filter(service -> service.canHandle(entry)) + .forEach(service -> { + service.putIfAbsent(hash, entry); + }); + } + + public ProtectedStorageEntry putIfAbsent(P2PDataStorage.ByteArray hash, ProtectedStorageEntry entry) { + Map map = getMap(); + if (!map.containsKey(hash)) { + put(hash, entry); + return null; + } else { + return map.get(hash); + } + } + + public boolean containsKey(P2PDataStorage.ByteArray hash) { + return getMap().containsKey(hash); + } + + public ProtectedStorageEntry remove(P2PDataStorage.ByteArray hash, ProtectedStorageEntry protectedStorageEntry) { + final ProtectedStorageEntry[] result = new ProtectedStorageEntry[1]; + services.stream() + .filter(service -> service.canHandle(protectedStorageEntry)) + .forEach(service -> { + result[0] = service.remove(hash); + }); + return result[0]; + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/SequenceNumberMap.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/SequenceNumberMap.java new file mode 100644 index 00000000000..dfbad889a86 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/SequenceNumberMap.java @@ -0,0 +1,101 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; + +import bisq.common.proto.persistable.PersistableEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +import lombok.Getter; +import lombok.Setter; + +/** + * This class was not generalized to HashMapPersistable (like we did with #ListPersistable) because + * in protobuffer the map construct can't be anything, so the straightforward mapping was not possible. + * Hence this Persistable class. + */ +public class SequenceNumberMap implements PersistableEnvelope { + @Getter + @Setter + private Map map = new ConcurrentHashMap<>(); + + public SequenceNumberMap() { + } + + public static SequenceNumberMap clone(SequenceNumberMap map) { + return new SequenceNumberMap(map.getMap()); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // PROTO BUFFER + /////////////////////////////////////////////////////////////////////////////////////////// + + private SequenceNumberMap(Map map) { + this.map.putAll(map); + } + + @Override + public PB.PersistableEnvelope toProtoMessage() { + return PB.PersistableEnvelope.newBuilder() + .setSequenceNumberMap(PB.SequenceNumberMap.newBuilder() + .addAllSequenceNumberEntries(map.entrySet().stream() + .map(entry -> PB.SequenceNumberEntry.newBuilder() + .setBytes(entry.getKey().toProtoMessage()) + .setMapValue(entry.getValue().toProtoMessage()) + .build()) + .collect(Collectors.toList()))) + .build(); + } + + public static SequenceNumberMap fromProto(PB.SequenceNumberMap proto) { + HashMap map = new HashMap<>(); + proto.getSequenceNumberEntriesList().stream() + .forEach(e -> map.put(P2PDataStorage.ByteArray.fromProto(e.getBytes()), P2PDataStorage.MapValue.fromProto(e.getMapValue()))); + return new SequenceNumberMap(map); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + // Delegates + public int size() { + return map.size(); + } + + public boolean containsKey(P2PDataStorage.ByteArray key) { + return map.containsKey(key); + } + + public P2PDataStorage.MapValue get(P2PDataStorage.ByteArray key) { + return map.get(key); + } + + public void put(P2PDataStorage.ByteArray key, P2PDataStorage.MapValue value) { + map.put(key, value); + } +} diff --git a/p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java b/p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java new file mode 100644 index 00000000000..c39034bccf8 --- /dev/null +++ b/p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java @@ -0,0 +1,151 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.persistence; + +import bisq.network.p2p.storage.P2PDataStorage; + +import bisq.common.proto.persistable.PersistableEnvelope; +import bisq.common.proto.persistable.PersistablePayload; +import bisq.common.storage.FileUtil; +import bisq.common.storage.ResourceNotFoundException; +import bisq.common.storage.Storage; + +import java.nio.file.Paths; + +import java.io.File; +import java.io.IOException; + +import java.util.Map; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public abstract class StoreService { + + protected final Storage storage; + protected final String absolutePathOfStorageDir; + + protected T store; + + /////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + /////////////////////////////////////////////////////////////////////////////////////////// + + public StoreService(File storageDir, + Storage storage) { + this.storage = storage; + absolutePathOfStorageDir = storageDir.getAbsolutePath(); + + storage.setNumMaxBackupFiles(1); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + protected void persist() { + storage.queueUpForSave(store, 2000); + } + + protected T getStore() { + return store; + } + + abstract public String getFileName(); + + abstract public Map getMap(); + + abstract public boolean canHandle(R payload); + + R putIfAbsent(P2PDataStorage.ByteArray hash, R payload) { + R previous = getMap().putIfAbsent(hash, payload); + persist(); + return previous; + } + + R remove(P2PDataStorage.ByteArray hash) { + final R result = getMap().remove(hash); + persist(); + return result; + } + + boolean containsKey(P2PDataStorage.ByteArray hash) { + return getMap().containsKey(hash); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Protected + /////////////////////////////////////////////////////////////////////////////////////////// + + protected void readFromResources(String postFix) { + makeFileFromResourceFile(postFix); + try { + readStore(); + } catch (Throwable t) { + try { + String fileName = getFileName(); + storage.removeAndBackupFile(fileName); + } catch (IOException e) { + log.error(e.toString()); + } + makeFileFromResourceFile(postFix); + readStore(); + } + } + + protected void makeFileFromResourceFile(String postFix) { + final String fileName = getFileName(); + String resourceFileName = fileName + postFix; + File dbDir = new File(absolutePathOfStorageDir); + if (!dbDir.exists() && !dbDir.mkdir()) + log.warn("make dir failed.\ndbDir=" + dbDir.getAbsolutePath()); + + final File destinationFile = new File(Paths.get(absolutePathOfStorageDir, fileName).toString()); + if (!destinationFile.exists()) { + try { + log.info("We copy resource to file: resourceFileName={}, destinationFile={}", resourceFileName, destinationFile); + FileUtil.resourceToFile(resourceFileName, destinationFile); + } catch (ResourceNotFoundException e) { + log.info("Could not find resourceFile " + resourceFileName + ". That is expected if none is provided yet."); + } catch (Throwable e) { + log.error("Could not copy resourceFile " + resourceFileName + " to " + + destinationFile.getAbsolutePath() + ".\n" + e.getMessage()); + e.printStackTrace(); + } + } else { + log.debug(fileName + " file exists already."); + } + } + + + protected void readStore() { + final String fileName = getFileName(); + store = storage.initAndGetPersistedWithFileName(fileName, 100); + if (store != null) { + log.info("{}: size of {}: {} kb", this.getClass().getSimpleName(), + storage.getClass().getSimpleName(), + store.toProtoMessage().toByteArray().length / 100D); + } else { + store = createStore(); + } + } + + abstract protected T createStore(); +} diff --git a/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET b/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET new file mode 100644 index 0000000000000000000000000000000000000000..5855984273407293f1f244eddb75a23f8ff9f918 GIT binary patch literal 543034 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%0A|4gJ&YxwZD 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�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

WrdxzC*sj|`kG#Et|h)lPd~_X5jd4> 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μ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

rx*`mV|`|k?vMil6aF3?fP$M^XyNi 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 z

qJhlaKJgcxWsM31(f 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

y>X(jYm5C_!xM)Tf=ky!w-V2&sCF-MP99gjUY zF1;zWC7M{K1ZEr?Qz;yiQADsUg=3A4R2$*Ibs7$HUK84|L_!U(Y8%^q`N5x0);eki zrmkM`LLK zK14xQX1^3*ycl(j=w%GZ4e|{>52V+JThEa~h>Gw=>$ec8aTA#|M=8yg6@_kI8kR0h z;gV;<|68Qj=YC82`Hbvbc~tR{JO8_BP6>lC$pavqU6YD`FvmL=} z0NUCIk)6QEXi_7TwL;1jOZw1}Vx5EXb8$N$>AphakS zmGprVvaXyfG&^VJXW!WaTu!bNmtOtGJYToR$IhPhYLXdpef*0AJ&kcy3#CdX%)ddLTR_$rF>2 z@dnc<>ADuG*?bzLa*G~TLe@OpUjJ{l-<_#M*MDGM{#b<}R!j_DnO!9$w z)9@^~4io}hf_X(4wor^h=7bDTm=zZUm<7`-24xtT2OWayB2zA``WvQ1@pH_VT-u-%oL!#Cf8J1*^ePBjDX3*!x zDTumu`^J`hr(jfk@}({M_N)cdPXPz^j)Iz%G)evoOxdHSCe%YRhfvh=?O|2Lkh8|v zvChLsi^*at4&j{C8nX0c(wJtO5e8m4{2yE)$0me(tO}5}0uhGVZ`Sq7ESGPNF&U)< z&Ov4W{>yvZf9K)hHHXe`DD(VAmGS;J?I)_7T(f5#u5FgHyDnb1g08`_2%J8r|Jf0G zCYyx(;I4P9b`|w2HL2UMMgZLdm_3u6%qk#iV9Ofi1{V&WB$g5bE7EJ|o}z3(9>y>s z3O)u^slX{K=u~NBA*MO*blkL$sN^s%rcdIZ5?{?xXFnb_7FQO#hmPyJl_>Ye!BGqE zg%2rQ;HU9FJzs1uHep%Oh@Do!_4AoSUM|f&6mejNOLNOWz{PMp-H{qsLbFS&0OaQ( zPfnsHo7N>J21KBjMn8(8ozmQ_1GV{;fnw4GXeqc8+8CfG-A$oSuyD*CgPJq^D#LP& z{i#;KRTz(v6Q~zZ`sHcPrwi1r*~|S_kp)#wve-}i@FthQQr`6%=4-=^MT;k=U;o~${f=iu#-QN)w?&H=hcBMIT*u5TYgw;gl!0>L z@x%a#Zi5w=cxOSp(7I|5F2{&25NRJ>t9T>Qw_MT0c3_vx_yM2rpanpc zM%DvHWDEmnom!m^Mgvr$2mwg7qAe77;lP-LleNpP{_&6FC0_n;>UP}W_Wo8?e=Z^D z?7Hz_JbN%i5yY<9_<&vBj#npf-mUv{^h}#AlS&sGFZ*?V+PpgD&|oMxQ}b}*8FK?= z=7pgV#}yL>8nq863^h1&iN-Ura#^w=M)2qf8H1PmHO?DA(OPoAJArpV!6hOP*pa)1 zWKOnXRPtDOXi}j{_>!kR{Y!gx?%%dhm3>qC{o22fza!+cd*%e9DaE?w=%Bmt19Feu zvg@Y?4)`BPi5n9YGI-X~3j&;AegF~%6_}Tx*dt?6Ou(lBH*#~}G?_N0UW86StHOP0 z!$NG9d+}Cnj9~vX(e*SM3XWPwJr*AO&S`+I(!Gtl!!%TB^u!pTPnC) zNd1Mwi#b=?xgyQ-(Uyg0O{ytRg6!n_WM5fW@(JmBe`9=B4;X8;iQS2G0Nf-5<`}7(6dD!ghL0 z*5>}h?WK*xn0bHOO?LLY*}O)B`VFhBI5Fk2cJ-Ju-s+=B@a1}rcb z;Vw`TGKIwdT!hQlNwaH~O*~fGt^N3MU$1EYS?2YhI@*W;^Yh0{nDM@Q%9W=DEXOt- znDQ?+X&eVwb)E!V-1(8Ssl0x=2S`cL?(_o^gidFlZ{S>gs7HV zaz0QRJ|#K}77n4Z!q*yoEY&V8He4FLDFQjIw$Z#QzHTt$JUAtu+&Us$;+A&^-Tcwo z=Rdo&?KLH#(90tJb^RT4;GW|NR{iURm50w!rkLpS<5MH}8@&wi$@(SSlg-Kc%<^PG zSVX{~>(q!5uLGU}2(ja>2r^ROlXNK5bhsiO;J&OmR%0BUq zWy8fgiznqi!Oe5?=1sDt3bcIs8SB_>mmU$FJ9`E9;QR+`k{Jyj+o+Y&(eH9MLEE?p zn!FW0Z5p^xk!U~)Ex%B7m;wq?Z0Ml;kzNpM9Hb;#LnW{ybTcWvh@Gl#3rZQ1a@W)90~V}l=y(`bk27LdefbOL=5lj?v~xG;mu zAd=BiLPIx(#|DiN!VJ`mQoN!-ghOWW7V67j;Areyk;frlg4|#xnw!P{E{=MLmicx> zIE5!KiYQrO=`^p(-Oh~NRDXB(N0m-E;sr^AM&_c1n=kClLk-g(JxaDi4ZZ!F*R5N% zR`W)fA3);4)U(Bc_aYZk8au)lQ@7w7s4Gw!=N61;LS>1`Y#4eyVi#In>`%1CRucur zUR%Bklvbd-th;21D*HLODd_*0($Nmp!uui%hWycYb@04*?tNXQ)xK>$Wh&S=bWW~k zCvPa`ZfM^Y$2_?EFgJ4#n;o6?&^~(@(n^sv<$8p)?cNB}-%z>_WV&)7*T}S-G?~u9 zqmux$n1PFRLn?+bZc}Eb^q_$TCnY1wU=zhPSfLl`6a5QyJ!2A_E_t@`9MB8F zT>Ix4jnB^xeLQH}z~xh3uQIYh;WE!+Y$~{_{#wjEdwmkLfCdkSjaan&_$v<0&lb%d zkRg5}ugfw4DXxqg?G+9TD3Mq^kL3=11gd=v+k;Po>mYLXA+O7s86gFRPFQTfYp^tl z1#!>_KJc;9zGHw-1wc?ka7KeJg$cA1e~$Z!AtCww?zYdzZ|eQ--Lp@|@2NDj^`xa| zjyvA?$7g4M?w&b$lauApp~NG3JFBiNKR;7Dt85c^Hd@)USHRB^;dPC*8vvWW7=`J* zaMCDs=~FZx3`vew2b$UFvFTjF(IqiMutPFMNY1(%ZaqW@krxpqSQP*}Gb7liQO*#a zAqkKMA<)1Bg$t7Db!>Ubo&V`|CNjL*y137~_88W?!0}x7DKjx19Coac)pz4^%GQ{& z-+koY^p8djn>MRj?~nQo8`Nm|N5dx7Yc#1c_~6{Rh73LrD>UUXYJmOZrHKmy_%XJa zZM1HPUIq zOULqS((J9zUnu398|xL2K;4gDK6YETqmO zhKz|WA4hqt1DLtR!-Y|Aej4L2Iq4y?LY0huiMc(hXZdOqj7j+PVGt&4^wZ4CZx?4y ztyb>i?+(4JJm$#Gv(Mk(=j-oC>7>M8Dq|*@i#ex~l3r~|Uf!5JCrO9T#CO^v>lMvr zz;5Nj+V$+z)dNc=hCNYPOCw540whXjiE59O7lg`1b2X$&f+@ z4Bm7AETkaBjI8CvaYVU?3<-zBo5pIJE)#zx255t{&F=n^Iy?RU2t6CO>w z*ki%@0&DHugsNFPmIqtUjAjP2jjNi$H$F$bpn2a;>5~1lV%GeV`Tw!$qEj>j=#(1IMHmM6@?}H_pCHevw=A?5roJ6JDj*ChvN3Fu|zu zWdy8J%nfv(?vD);+BgZ4VgOvIH0ZM#<)rpy<{a7_l8o}OB2oqr395P|yNpmGCIMl= zCzSlcOTz&XzLt2Uji}miEj}0>fp)%bZ#OUO&wX`&z0zcI>5gkV*J*NS(-0N*Z`5tr ztlE6|41Niem{u^GdX3b_Y$!CO1Lmy0W%C?k$ z8wDhFJ|0uxvsfcYEN&bgcy{KbIWs(=HdAVx2yqw&3Cxm7IY&WkVS`{0gSgraCrt$I zb385vFcrNJFgW?Hd%dB5!QVD{H~uK%@2HBN9bda=djn=+e{}srYsgI;9lt8if@Vk3 zpi!}^RczUViyf%D&nz3!6F*;M)JRp8H;}o4N_hZ!uviD1HV81nEP%M2LMZTo;6SN0 z*}?!Mh=a8GtS&&01>$U>%AqRezmPcC9MOrQ8~5QlpZo5}Dj^{Pd|PejITG@7&nlFLA>F*_zbETb$GGg>Ih zk>U-qJcFKnd9!94_aAFiytGfh@>_fTIAv5s{VK*zS_3~f3BVZ_M<5Rsigj}6;bm+> zcGyUjJ#Ng>TU_QmSz3YIIK{O1wH4O~z?8gM~SK0w7OJh27vfh;fFhWGY=41jc`e-q?0Q1mZJtSU}~qWr6ky zwu03WYTU{DD98*0dJ-OT2MMo0N&zk_@IFQd*R_$m*JftZW*dMq?KAW z!_0An%lN{#x2O1*dHF}jkpZ7o^Z)K{q5IDrMHrDc?pt+Nr&dl{jpEfr9&T=Wd~I=V z#uoZ+3G2|kWA851w?fEKA_1#$ps0O-uo$(aE=2CepezO-#uFg0q9~SvO)~~*6Cy;m&>b* zmagJhxogdUnIRHSJv)=9W8b~)#QcqA8;^VV)*ln=g;F{h>A|3pK|naz5C}v?xDbXs z5YtnMus)05LaqyOip&VXEqWz0)Do#E%h6WQvp}Dd2_RoZDzHh{3uP>?gBe%Ie~b*# z_{u;CUWdtO`bkuzG*ffu4=+FLRqEivU7V#-$Ee&O|2>#cVW zFFsUc^%$>mb-p!4Z~0Kt;p3~i%d68eV157T(T*iY)U)g(!<0JmN+@gfVdRdAY|r9w zu-JkTCnA>aIMXH6ho}-E{t=bH8UT|3nkdflSo|erxfd}QyC8POXsa01976{h384z1 zrv;5?DijMHZa(5h{J`2Z8__YQS&!*&Fa65b@8jwdcP}_#Q^J_>Hgo-8E3vb7$eOW~ z=&uMavN9GQG~v=bYRAjJc7s+mtJh^LoylkRFXAFg%fW3|NrhJ@`~gXtiVxOb>lJt$ zj)}l`5(*tTO)L3EX8%yG(!4`eVI+%auOiJal0_~N+h-9tAs7mh@CW{|=)4v&cRH2p z>ao3S#+>K{-@oYFzP*j#S1NaQJ$L^JdL^ZgSrezv+L?RTV~_4wlxF`vY>_LhLiq+& zd-?MSK}5DCjAQLbjDNq{`e1sT$74WZj5d`i@Bp2x8%?(3W!AXehjaQpiT+ zL=GT3VX%`XW_1_}5$aowhiF zj5&9@nq6O9{MiSufQ)yqr2cP^v0Am-O`9Wu!yy343oQ~=BO`%;jMU>Okr5iug)>~L z#7@}`|1Q}wVq_NP!mcBMr4E2lq@HJeFrpacK%hJDQy!E?jQ?=+P?n&()Y%%?)vf98 z&Ica!T%G>s&sS&8%jz&HyTIQ37>bkY<CS(mp25ckcd4RXLQpk;vwUE`dB%GR1h#j`^ zye;riP2WjRE1OBUA7))~{vyAya|NfdHUzSMCAL=B+QV<~n)k0P_Wi6@`I==r|7@?` zMWD1|CF*d&bf+c^+L>qK-~Yh=c`>MWH7zV|ngMQ>2QYqxMif01F9Jg;DtAV^=#lV< z<&nI&;K)K0uNeKOO(ZgK8aYc!En1Dp(pb%?0Uc@b8D5<$0?Q6of~Fcb*&s@jr<>cZ zuK#_#pE@j<)HC9@@7{It7!l@Zt32Vz14?u~Js$(^lp+AeM^I z>%Ua3O^Ha;jIIHZC@+JXjuae@4EB?2!c~Q?c>Vb_n}V-F z!@5M^tg(XQ`KB$0M^D_8{))YT6QOc3LE+4ah4-S#XR$n`1C_DV`*_aN z7i(#-w8^vT6-$f^d$0bJiFKasFXVLOKP|6Ru_v#bT_dMul`$)@F&DRPiOdaO(FboQ zM`Au>E4->z?cKIbr|x|{=s$7&^wQ{xq+$eCHbaq7m|CU+NAnGxXa-;^7#c0iWSH=j zTU;AtCD?w_dk}yb7}O#eAS&Xrbg;DR1O{GT8_>ESSXEA1gF8Rkx zg6Cm(GQwkl5a0_8LgL~nfLE}a2BN6uk$IujA}k@5#xah&q#YRi6^00;M1VPfUrbS? zq2zs2J5#SfyaKx|$q0IH*qF#`DY1Y4-LZPkvVAGVN;saX8RK?aPu1X;Ia_Dto~kid zcJnv+AnNjc0$O)zUA=oB6iontpatmM_^5m+updTIrO-!>N5DeaYHhBF(VQ|#efU5A zF(%gtR>%Xeh{cd!H7>l5rgV^QFpPlo9gQx17O#$&&09I|Kl8-KuoXSiZ$;O7S}&q* zXhIXu0_$?~pov~BUCyDpkoJ>h`0TyI&N~jT?211Tbso5ZA24wf%zWk1fn*7C3FH&C z3Bp{;Ubzbbi^wA$=#chU1{xXM^0T6y*Bsj&r02q zwZ^VKG*6N-GEWP|B0Z2oJRaGI?t#pLEJzDQ+Mr?NtW&QdZR3FFUT-oB8xY~0$}_Qr zjs)nAwGM3K0bgK(o3e~iDukbm7*Q2a{?aod$;U~H<{qU%gv**9?{;D8V^Q_*9@kI5 zzo}=&_o1KJcezfkyDueK%vFdhM#ZJ)?RXosW6gpwx)$cN_RQpb8-+Z(_6+UZp{oZc zgNVrLP{hLoTN-Sx1#l>68%3`?)nGylu{4G{0t(4>L0W-=#+cTE5l@K?DW86(ny~GtE7FmW}*c$gVH|{=PayaUd;_mu71)a+b znUEW=ltmC>0fLLD<#I|&1C|AeL1{u42nzsr6AFZd!2t?=;AiCq;37m~@HwdDpl4Z4 z#1Z6X5s*-Qw~-kvP_Ysp?*>?&?jXYDZ11qInl|tA?AW=O8l{~rPeM+W-ejM=IapJs z6fvpjb+L~Vujk&97sqx*Un58v{4+as!}+%Se-7%wkF*Kcq98?En~>YQnDwf&B%Y879QNbf4Y6r z&~Y-h1$OQp+Bd9|%3BIo=s$KnU^p%d0OYXr+lavR&GG~QxaNUE`AQ5%Xaz53!M_BG zNgi4NUx0Jej#y0LNrCEzT^nR?4bpPU(S@)w1@ucL;`1%BC*zv-NniOSbJW^D3NRw!LE&8ik5#NlK%c3Od~9GZk{g;LkRFg;S`qmW<4nkJm~P}CC`hig?h3>k zJO!6aUZ(W2id-fmB%$isTsM zs-rk%PC)BTuzjZ*0kWnYL^+2zAI4C#Vesb^V1z=7F8t|4d@|kwr^Z#}pnVy#b-?N& z_i~yP82fIzbB{S$Rf8wmig%M3j9hl{9rvU~FW$DyoIHO!P^km@9vd|}*>DFiYZTs% zemGFSgfnvjSqZYpjfINAzXX>bW+Wuvpap5o!2#v*X5^N_*VHZ}JVUTd_$5Cgd;p&& z7SqQ|(u5us^#(By?v&W3@pR53A#w z;TXSG446#ar4`#NF3f&DDEIy^yfiv{kh0|NnKf45d!AQs8BHQyOEMHEYcO<5^$S`; zy^TRUvq7K+tjDhO|8$)PSXAfMg#}}brkW5_OyMRZAu2LTQPUKAZ&*-MKm-+&*fo-- z#;z##0*D2>Vnam`5qlRamZ(@k1uORUzw4ZVVaELTd9L?rNHS;6_wBOQ+G~s65etfv zjE~PPVCMr5BAF?WB3e=OepMI_rURqlfKZe7Gbp!+LedOoxkv&&J39Q{mz8s;MFhOm z!zDKJ^S=%}`_(psXF_y)S1)}1b?z>6ts4#Ho z?&`eB`LE^Vob5Lz=Z9t0zHT^LktP6u__s2nfMA0eB0MwLo5}b*Cmj!QDlTz19D0Ph zgf8f3-UAw1%nZ;I>5fQWOL+^h2r7(pP4*0osL>DOFrXRXIo@s7)pI&@_{`ibSF_F? zOs(zwcZPk%#cJKXYaw=&+4m;xJ`EIKyhZKSO&hgpS^dD}BWZ@KjM>-bJLE`S>Ph_y zD(C?##tjB6ML10yW&+!gmU^&&okPy3BNedu2EY-Gg-s%tHIc&rC!vk|L-9*mfwYz4 zOuJ_RASrxN4N%$O&Oo7nJ^&26nCH=v?|Zg>dbj$hj9VG$ps1F(M-Cb@?tUK+S{-ZCi*&66bAnsVd$JKm8dH0hR7B=YJy=D}@&zG7S)F%(ZEBjOF%J7cTY{vXAPy5Qo|1X2s%ReW9K0$6`2OH0B0Ix%q*~@ zG4w7LJ9uXOb8%~`1i6+OJL=rNVIzZ|YYa2eKQ@c`H4zWzv7g37u1}9WJ$t=gfo)H- zJdW9d3CHFQ(#d$12MSTHIeS)l1q`L*C_^>Q_y;G++S}sCDX%U72EcT!jumfG2}Ksl zI3PrV8M9}SJb=O@4!|rI86a#N`d@Uzyn>>C{ob^1`8n&SCEsw5yyh9VbJROi?O%bD z>xj5D#HTU)KCtXOxiS@9hWQBdcCCq$8Y7?DNwv1QDo@bybGlK!QCexv84wp)jIxN# zz&TY6bU=lGBxrjBX^pW1f-4)O!5Tnw$tp5%KrV;74il!@`9_}(V+avM-3(i*p^I>r zAFIZMciI@<^Usl%)Q9_a4#^vIua9(#&bB4&11?VQ=dNEY>HD(gVm@eJWzBfH``=8$ zEI$yaU&1Vn>Nl>@svUMXSk^&KA@AihbD@nPL1e%1G!X6dR*V}^{BohGkbteZA`At~ zegzUliv)n!a9JWf`)Iu^7%F#1WhCV;W+jxyFbAl#ya0B~tgIQ;efV#d(o5VXe|=!@ zyrZSVp4pFtIlC@cG`fPB{^Isc8@KBDC^cu_fJkE}s9BWsPAxRMX$h#^vZa5$w!~i8 zaNI*ND&k(qmq7jjAuDYcTv?<51gcoM*KeVfn`(=I5E1%Aso@!bl5a1ei%h^fV04*NkgwCH^6Y0LpQF}oYXzx z*S1Y3%^$eGOknWuaetQFgaim5QUqlJQJh`#2v&o?wPgL1bsxVX`;!(kAoB4gAONjN5dTXsh=v%oo{1f=<^q!|z{jxU-G*-B9PQbi$nm$)B@ zR2EvekHMZWIYLPYKFX2=q?b%-qh)47ov}o`{Ak=M6Lab&HJzH>vrEoBzoO%J9?!h{ z?*}Cv$+q!(bF4e&=PgRuI6gmQMW2gWH@;9Ak3G))hs6T*OIU@jeStlpsKgH{cWW~Z zO)F=MaW9Zld{E&!sN%UXdJ?{Np@*b1_!`Ji@xbis0rS!H7dQ|^Hu-~zZE9xHKE*sP ztNe#RtZ4?U#} zR$LkfcO%IAZVXY?Z!2DIZyOgjo#T7@JQ_Un(*`apc73z)X4auR_nD5U#MK>a zYE?UOaqF>>&!H0I=I>87Pzf6+%FhPsZwM<74+y%3XiEwJ3VSXJnh4ZS7&3qev8^T4 zs}L%I{xyjANw&w$L31IM*hXgP|4>B`pwVdqxWW?=z);-iJpvt*dpkh+`cS^K3G3Y1 z^4F0sihVh#%3n_RqdG?)pJ8ut?c};=u66P3w5tzh4RcKYt4|KS@kk(xjcm~47&d=y zGCHL`tOO-0=S9v9a4Nb8oR{EDw2Lb^lQ4MT;uACxJ0 z6C**;h&1}N19(f(a4Dw}^}=1s{&?%$KW|r^8GC+0XsvXEGf6Ut2*9BMNr7G5`%+BrKAu!Af7?=GU&=t&^e(l zR|YkKA%>orItu2pGsQ&df@Fh_P3YA;pq8(rN#SQ?Hz2ea2@Yfg6c>scPyrw4lT``v zyF5dCma5$`FLz4Aa(*TD-k<8&q%0Y}8C{(u1CRFZTwO4dn7wb#Y-1$R1X0vm0h}Ng zk#LdoPua*MBA}v*7Ty3n0Xitm+-c0Q%n{p8G^VYEMw1^7pa@>FsQMYGLeN08qPZu= zQ8xpfaKdO4(0MYX%ug|ih6Iecv2d3^hh4b(Wa5ZU{vS>adT=~!RYcy0*~WxLBPsdK z!t2<+P?MKld1LXtqmH-y_T!XuN0k&mDjnAN_85$y3sKcdVZ>oZbHV9-@h^g9&eKw8AdjQ7c; z9P_49n4)?RwuRyYWd!nP;8TtjQ4szJ4Ft#PrMV3w0(w_?eZ?$Gn@i2cEqe2<-a`yV zu>ju2?O|>s^Jb(COMRN-2yZVuu={ZijG|H28(ayAne>i(8JMHsIEX9SDJGI|C7}#Q zlGcH63t7kEVZA2d2jv`!a})${(?l{p98LmS`A`+K7b=nNt0Dy?BZz1MIefG&G>tA^ z(K}jHk81DvZ}#2t)wA!tIX@`5WO9CXH|wk$vse$RLtw=qFPqpr_$S z0+9xTI`Gvgk&`0m*fsymd=6{rL&DxhYe88ddHkFxwZD~&i ztQgl3q<8BJmiuw%h8`~WRWbiI_5JHr-@ANu)*+%2e%a{-z} zq0F6DHGhW*RLGrK49_KH!W#Hm&ap4 z=$P$x-`%;1Hp z7&486!-uB!gJZ<-j}=nnIAo?&T72>FkULZC(ggOt1;>Q`sY7y`+ay?#*}Zq z_;!gS6LR^{@HfpG>fEFOSr_t?LPqSFN9XOE+Jf52Go%?+Lt}OWP~wU2)G#!m2hT2K zt|SY-YD|%sX_1V{7*~fSCGN`12cQ~e5RC@Qej|X3s}TvqCf0y ziHcJU(JvM_Nfe_V)$_9VJXJKh0fWbrlZz~nqJ8p2R9 z0(hng(IPY7%m>tykn1o4r`!XqLn069sgT878XlL_9AH}{HZ=Tfz~nI@5BSGnIE>VZ zUWKKOD80g65|ZadT<&wFrQ3V`z908l_nrs3`WCa#3#^cQkZ0A7kG^?j#F=~^diJA< z!_V0A!eG>}hGg7uS%NRq`aK#~E-P0AU{oj-%4-00O$(8r$!o$6$;r_FRC@SM@K&f= ziBe!cxIZ!s%Jd|ou2>BMJ78R+tA$G$03)cE0L5aHruL}Xu-WGUkDV}bso!r&B<0+`h01EZCo*5w6Zzul1@3V||0 z2x=Pce^oBWCq6F@8d3L^6{U9G%YE3v`>vDQy!Y)3S!dS+kuza%iB*=(8P}tSNr|=xF$w6}O}&RShUt7Em?5UgSU(Sp!MBL(rd+HI!lH@ zq*kVPJe>dZ@qPK;nJx|D*UxVDUd$IwzITLwx1UI|?){sebVt4+&!xnFXB;=Mh64E4 zsM`&I&eGDaWs@q6z)a~q(TS5KVF&5Zfq~FvV&F+9#JgbeuZVWl?ONW=EIQq}dJhnI z!UBj1!wIMjDCj9GiQ?c5nBXyu!QdFMvIgLQAz0f*jriKIsz0r+|Hdn~tEPLuTlC6aE^Y9GsZ4MM2?(6(LoH3Kvcl~=CF1EY*x_Z-y~}JN<3jmQX13+qfNM%Sjt(Er14~$PwcL|^+wG@*j zyiNu}?tBBBKPgaFMEgS^o=eg`}~sdwe=LZ~qBjsAeaeP)s*q0mMlhRNVU1zh6s z%OV&$cYKm)f~yiTnVa!JHC+)f5Dx}wAr_kk47=6-om)Y_f4|N<+pSM}_qed9_Bsff zmgqFAEO_jQaZd{d7ZNYWJc^*wFUX*7042=ip(9|-27Wot8(8Slasp5*;#7;%+>Q-WJJUlv9DpATt`pO zEos&;$s4cV+m_#}4A>rZ*q9V6FhDXobwe%CvS#N74Qnxq3)@fQ2bie9OaF}mmUULLojpR76#p0HZ>d(wvLI=oMcQ?!qtFqE=;72$-#g ztF=}Qi*1rLxD`MK?}F|Zt^-PhREpr76okl`eG^-=c(%iuk14ieWQCC8sVeZK8;?=fn*Mi*T$P z6HZ3{bHOf;+xjlgcHVwX+tneFbGAvfGHfDO2v;FcDssUy;~s!vuT==F5ivGeb8d(L zj4AoTlalR0vB~AQ3L&te2ti{98VS&X^#g4_BN#NyUi50Dy_c%>`}=%Ce6h2|*Dd+^ zK+*axogZAZU34ox6u-gSEE}KY=53EHury4XdiAL>u~%@w<~^*b1~N?-~Tvu&)vh0&$1&XmH|X90?XXI z_8w8o@dXW9p1R*K7B>iY!xP98K7*2!LKlL7u0!_((2?109Nsb4(z*b?Uiw?Dg;&rD zmbg#ObMPAoun1--WAV;Gql$kUGd%Rs#A5Cj^DltHhSZL9M9xCL=|zE+Q*!9B$&JhH zsn)Qw^CwMjth(sg>KDgye){a$+;U2E%e_G{6IVD^Sdn`!XB#$0=Iar3ZNR_e_At+y zVFAAe!MIal0f%A%%D@t@hgsvQ%(baX0gWUQNKs%g?i!gy9R!DkGLrRE2}Hi3TCMH%wj#MI#nt-mq49q|oEfYWP{ZTB}=r>-SE{v3n+EO}KI*(h+S* zI&$8s`X3N~)~5O&JOAXZhpOWXb_$q}VyI>T)R~l^+GT60UJI7*bST&`bB)-0N54^( z3I*sI4vUF==mLBkc|Pa?niXJ15FsF0`6pPgas&Wobd<$s!L-cu!<=5O8FcQ^)l;tr zEtXf<9b#qayrbHK?SSI1KBbqJoO*Dzk@@y>q|>L!H@wk zC|r0@M4ohEaKq@;&{vV%#%Na_U1^|n-wsJljdZcNKsP!`b^V^DZdV~CPiKUu!{XUbPwv^w@Ysi{`I)wGRuyO z4jBdvLTesKjWR@sUIz@aw!cyW`BHmuR7m!c459f01H*3_z)xZ?Dl^^<@jx>-pf1o6 z00j8U;(ny{m>H?dp1fFc{E8mCez_CZwbjAmJ2#!Oi8RePw&2?K|Cw>@#N!h?7Zffa zPfbsru|RL7Py_=Fp$^37!BEAbbYfDUQU#qI6P=YjFfU?F7PJ(f%zP_|GnjdyOH_+X ze?_-J&%xeOcwxc=tvcYH)TS)xAr>QiWbhqGnYl%XQ0?Biy(F?l%^$AEH(4|Nt-T-j zK3?_oly_}T(&iCc5_9_S zeAJO}1t1lDB%a4Y0cmguri^AZL-c@Ef)>U~vV{Nzq6cjqy)!0M&~3Pb0m@WHiVe6V z#YaV+87T#dFOV{CQm4<-52lnq9{OdyGR>cM&U898yyZJC>f{S~&^fy%=R%_h-dj0; z;DsnhRx#oBjwC~>VoNqglY-LO4I*8$o^0Hq0q3CMddMpXV)-P(OGegV8>nKa7GQ3{ z8H7bLWQDqu7fE$Rrev^@;aJvBNi{2%M#v#N!Ko%_>M6UWuV*6scHi=!_3kuiZo~_v z>b>1~ZNKxP!xT6px%RuNr2BJadJQ~qhbBvURusvKCzIcFUvIlyhN=$50Q`7nq zAPCVINU+ry@gp~nlMEa~)9VdNndxSUdUex`-;bK zfyhncnX)^pv2*MfE&lKhSh%(22c>tt*SGtoJL?_mvQ5JtmN(<_n1Q=j{D+)#`0}i1 zL(XaT@PDNij?bw2@t|c5E8ibX7CKw}U&Oc3Rw9nTIabcNbc*>CP26{IK6#=+tKvkS5iP&ybh;SN(rcmQ%gNDRrQOPdd0>e6KO3!i^Z z*vv{aW`o!>DU6k~0#GEW7lkq9HQ5|!OE%Lmk0HDO#(vecKu-co@PCLG^r#e|u#~~{ z{RBN;&Y!O(ZMg0I;o9JY6>)bXQuQw6T;Bd!i#@qEpHZfDNP<<$IE>454lua-3ciR;&`17QavM8z(O zLVOo`JD5~2X00hxG~mM!Prg8(=A`;)Oe7zJISpeftRJ>^gk;$PdluNlln_ z`(Az@_Rp1n_ZwRmR?q9d{mZYE^AkqAWn!rmPQr*p$HTheJLLgGA)bXlqUB(VCKjJm zUz)ifG_nH<`HhmiCR!V{G%}Q0%(F1AaDq9Cc*({(D#sAk+KN(4tM$G z^o9=?UTEU+L2+;Q$+4c?5pmR7PsSb^k$FGA5zZYLIq$wsR+amkIxY$< zn8MPlal_CX<^z+IdJ}K|gu3#qk;?I=%5$?6-~HeDA%#ceX!p-97?4yWU?v z(mF+&5_5l3X8yalG4b@XGljay)IvRdh5G#h8U^s(OW{Y|B_|+S6k+##*+AUVKA>^p zD>vT+=LrUdB#$D8BgaHJ?L2mxsBOR{0Wb(}l%U87G4*HqN?WT)p|E4hJ6dKOJ0{}s zFV{-eyw#!ffP^=nBsM?Oy_gNVGmFWD>52a{BkoUa;RAoV7&C&-22=O|4O4xuk+JcE_30H&IF zg=ql0;|0M=`p`V`qmbN?5!fEX2+6OD0%hdWpd;6oYCKD! z*RrafoLnz&e$9wdJ0}dzy5}gcNgaME{;Ez?$&5MOzb(0z+ksD)>6-~51sH``1tL-N z85AmfiAW8wmqf>pd0~iTLV(%`YJeMsx*Jj4zZm~Q4FgP2@bePdwL2Ksyw|gskbjPjjNj{d zGwtAO9qd0pe9!d^F0_!X+>INKUC+PJNy#babM^H{Z*g7Tv-2#z{(@fDjh=x6ObNoj zkLI0KWqkE`@33bGnG*6u=u*Caj*K*NTnvU1UAOM;jfu@(sTx!_3ZpqW_x_!Chy3Y$gH@vzbqGUq8)XBUCH*P-W``72cvUUFM zg89R#vAcFmHd2JJIfK=4qZkaPdy;Bg?I2WzR0NE~@Okh`ARtynKh7M8h0!-k3T`*3 zCkA0!$VRC`Va`7Q1)&eC(13hVZ-M%Pf-!tZDTqN0T?aWK@P%{l_|8~a?d0*_{4+-^ zslC2`vsE_lUUPL}9*q3Ji!Z8v+E3QPZAUYGYJ{^ba9)w!l3A*V>y*f5cfg; znVFROJPCx(4B7Wv8W@Rd`QZywApzYX8b2w`Oe{ zCm-6?!ugeuj`r8X$#r$)GONyi>#9c=5n!9$NAl>0JBAg?7uM^s@#$uFt~Z4o2s1hl zHUq#e({ zl`Uu1E#6`GR?HQ%AbPBrZPmC>1I*{hOX@ffKN&Cz77D(A@eofK6*COYSc2Kul9J_+ zDb_uRl_HeG%n{R&utIo!$h;-cYY-IpiaXM@MJf9@1mjI7PPlV@0rSQR*hEk-Kz_VMmX z*`Zk+-U>rw=+N-oqKo20U=>IQg@jbbQ)EC!e8|>pb?Z;XqgRD({`+!84iS=#*7b&p5f z4n6Qe_a8fZ2mO&&^ucald$oX*>z$MB+#{Feyki-1?&PSgjyZhK*4rbu+WL(+M*8?! zbK1fUu`34k;aK!3W?O%C2&iSjU?@Z~ka*$UY8xL)E9ET?y zwce70o0cqRU#TOAee%YL2OAWLZ38eB_+;b~Vk`6W*nUzvAbKEWa5=!_aFFH`W1oYx z)C|KEMifx!#esaGu_!dCzJROd>?roku)Q~L~*i$*Xjz0Und*t9##VmIp?VZK0DtnQ@%{z~#u(3)% zU=?kk+5%RDGXTltHDI8nx%Mh@@y72KsE!~CVTCCW-lb#~R>`wjx~i9a2B^a5n}87+ zD&v!*5oCgdqXk1{EL5RPlz|EZu;8OBODuVkccIKGuU%2@E04AL`J3wx9hLkuCry0M z6m9%_MWN2NX;J0qo|lR)Du+h{efEF6OQrzL{kgVmDF z0fASFAT*@#9O!2d(1Ddgukmwiwq=tTOW)9&qjl0Q8~RrUk|Y}hj7Qf9fko9)5enhS z{+BEF|Eq4tW&R(n@@rYvDgD@}N{;2o)T5c!{^(KOl?PAq%c*DchTea|O)#q{vmB`m zk;8YdEp4ptrW`>qjw?550*o0)I1Yt`0QAo+U+aiJ3bRPW7yQ0t9@_y`8Js_ZVczKO z(9kkEqLK#JXk_txew9-^QMgO1;IqpoIKOuDg}!Yj-f-%4t#|KwEo_K^8Hf%&ocV_P z@{Lztw#22)JzCHf4VpLgFyqDg3xWCtUsA3X2K&fA*+1he12*{r(U4NOc3^X|e3Uue zXsOIzh-^%G>LnKwO^Rxs4X6fPHrvO^*C?LJb4afstVQdx%ZXILsX`gVNwbg<9=!J9 z+kaNO@wENgj+rOM*W7qx%B!0V;)co9eDC^O`x2~0_@0%|(!dDqPyMaDW2+3T@IQ)i z&vwmf2lZ~ncs)uf5*#I=Mnd3_w3AfgOpb=eHtFz8s1T!ib|D6n9=N*@Q?%hgI-qAD z>A*YW3_Nj_Be3@edBFLAsW6~*^o)YyXjH%R8@cV-sIpVuotirTf1?`qy?1W^u?#ak}`AqHY_R}L(=wLS0lFmKZ)BDl9Eb^$wK_xp~^gvCXp|Y1u(3GNCq95 z>L7fKFrhPV2W@l}`Up5U5MDHX$o=5X0aHM8DGF&#$qTf5;30a$)Wr}x7*?TW*6eY( zOQn|o{yFf4Aum_h_oJ(G(PAS~%Evczyd7IE%%_@Cu|E4!>cCO?`EFoh>;U;8STmjh z8ZiA3r1sf^!6=Fj0~^HcPqljpWHM4^3%3KQ2oNUz6bR#xCc+4SwNWSmRIwWYb`u~9 zD2FOTW-j<7L0Rjv^Xc(r)F{jM&AdM9JpR*nzh8H$v`0vtj}JdBmFLI{rav8SW&fva z$vuJ%g8lJIdAj?s>=2q4zfrngv&Ry}8NHI+s61=e@NU+;j<9DsJA9(C7NBLqQn zkf7o9&VOC_u*B#}XGT8T^+R;gi~cL!9@3%_BqyA)K!Yo&(6e6CHc*AZ z5dA1d^;SsZ93W~eT3QUYp!_IQIr2O%?+4a^qKXWNQ~(VGOM_4{)3p*JU_l5LM#-q! zog$H91UWjx0`fuPZb5-Ut(`4a|BY9_>Cxlvqo-ks!-v1|TC>x}lN6+JC)aTck2$joD1ITWih-sVI!U``oqoY^otwYspW{ayS-`=0i_RX_)hLiC=WjFh^lR6me$86M zUsMWc5%rZI=KAr%n+F?rXvSUFe4%mIJ=^*>@^4t1+Ll>bR2KkNGQCD#rH0T4 zk_|x?J~sR{nH{O_6+DY6pbV&BHSpUrB(6LW&!C|TFkVm>yo`x}{L>g3qP=21S3*b- zYlgf7a{pXZdQD`HB3q|?72bU1f>obawAH<4`!Rs;+(1ItZA+TBurQ6j@Zi(23r*Jz zL&@9!=g|JY_WUi3=>$e_SbD<#Vi~KGDLjyZ^9an@a$Cu6q@$(3mi@biXQ^VqMxt_->+^#tC&6jfO zF0k)p$tP!XtR2+AasMtr+F;@&Bj+aY8{$-Z6wVpfg2l!Rw9+mi=%jE&ucc`p z^qRqy2~$pY#!X3|_x-wR2g{Fr^t4*H3#&rTI!=lW&E8+ncn9M$=k3QC-u(PSqcTPs zYbULhBg|~R0ZOyFH5%1u)CL9?j++w>1Woq}+QZBkLLR)RST==V#@t-5Nf@d^!Vu&+ zmsuwWlMTN6j*L<&m@(JRpXjPF4IrAIJCAt~?&|1GU}&Y7>#;a;v&+i&y1e5$w#k?C zzVUJMt6kS1G27KHK-G^O*+#K~aKtiX>7=7LXW3_tTT5~_B;?PD!SyrI$tHACIG8f) ztL2DGVMMKnZziP*(+F6{$%BO>E_Q%RL1>j@5OPWi5i$*B6;~S<7#^68m(597x6zc) z22+z@gCgrM4J67Uml` z4j*xYT?394%G`z1uIr`;=!XLJOIXF0E$g;uSgUC(KoB}q5Ka$l`oz`{x){tMt#HZ_ z?D^6_$;^ePq3r%x3F>}WXATt#3@~2a6p4h_*a4m` zhEi5b0kRI0*n z!TB;vM^VZQ{wsS!T>{&(ClYIZz;!M=c!Q{?P!FzvOciOeMckM(_bL*JQ*4W7oe)O} zqKSqIrWrvQGl`V}DB#$upjece2^R=ZU%CMPMHF8^k1)(PizmO|YTK79-mkLs;-sk4 zXNS%I+7VW~u_^NtGYIES*sx>w^DpPXwwxV>x6c)(|10?X)~arE4~#KTPm>}f_bYdO1f!P>L=uPA!u z!+~cDuO6_}ZRpo5pji!QG|m!tlpCX(9{WB*7`#8g0?h~n30K_82x^pF@H8TFVQpH< z2(8OLNeE_g3{HBaK>#rd0$vuC7~mY#F6|8muM+-EqrZJ|mFLV+J%1m!_UDan{rX0& zjN|Xw%NLlq&$;dG&NR2>+U(;?W<38+#x1`#e+J29`YVAmqn)T&c;g7ZMf4*dLxI6@ zf%|8A72y)C3L+oSQMtHq){MJ?(=;1e>GIKwd#OQWrG@;wakapkl4h6gOj7_$a_*?tNC#qs)_#&L55L_T}a;vP;=RSk}q=+l!nmscVxj#W+?h zi798(r&Boc1Lhi*EQ9ppb5I?Y&1|WqSG=P-5ccO|-_^90J^dHjeZJl%Itn>Qo zYi)W(Q$murX8o5Y-hMc1@QDA|m6>&M>y?EC8PSl#f>Pm1Q5g~todJ{%Lv7R=kRN0~ zvOL!wmVmiDk|H&+@ge{ujCFIIcO z>64lG0T!*@{>t2-D{K5(R~@ppOs_iswr~4JW5;bN8@F|IAFw06xF!10oOCUitkI|` z)09kB)^Flp{m$LU8T)vWd?9~ofPU86RUx*3+N7O;-Dj7D*gsAd*F=#PJtonVsD-Z= zGZwnyI52UR(3(L1U{Oj&Wy2eaM&C*#KP(VnZl!($Gosn$ZfSQ1Rij+?q(uQ7ZLw)< z+YU!RE#o}t^BsPR-i~NC=H?a?RI%Yit5WiDqC;y^XHjX{Khfmt<1=m9c6R7cJ(IP-FZ@guYIY0v?~G7J&RHBbat041BV&kvq1JR9 zTp)@o)sm|4(U1{xnVLj24*x07Y#lIwFiajP2$+Hm)|NNC&$WP-jt&?AuW*1$%3^xo z9^Jq4Z80sdX0En?98S!oRUKUnUrNF7cst%h2)o?L(LyF>A4jkE3#p!I8Iu zHXkY%f)lf?sPx1oKnVoofKP@<1K}$-sDs)t$PAh70ZGuJp~f%|94Ctt2p8&wrwIrj z_YZ=a6A0}r#|=59CWjDTBAw)Q5Q$Z= zqno86w`g!R73wa7743u72nqJm^hj7ZD{ z3Z@9_o^Y=DiIm;Vd;HlZW3X?x$DK;M{Nsp1?oPS*jp?7Ta$d~Y|L~T*cx36ZLf*2- zFblcRF{(>kqj5xcg`|yA8824DP7~&aJ|F8(<_xI)X`7AnRhj!?P}8IgQitR=C`M6b zRAD6mlN#E_fcYHjd$e@dhp7~%_0VhwqpqQlr9!@5y6%|XvyPXq>DTi_W8cm1+^s!+ zi#_(`>^fp%-iKz4-WR!V{pRNr<*EZSrf#-HHmoQO0^SVPHS5%G*rHV(2CWb^Nljp^ zNP3a$A>zZVPJ9MkUP)W zH)cM3l9z6Kq=|*YfG0%&T|SjQ$Th7ipciB>^M3dvF`UQ92~-cX0!_L#T64f~ZUu*h zh=7vRU4g!0wKPx?!Y0AXP@dOHP9vxMq{M*b=RHg`@ARqhi5xyN4xAfveeEDR7(saYC9Fb&mW_UC0O%-922L;d zgHi?%0Z_*Sdo#+Z)qq+yqLQC5Mn{Z{Ol2<@i_I#GPQtiBZc(!FcSx8*89;^2*fIDw z?T?mui1@{dk6H>PV>YAB zvd=RQPe0AcQ`K)yC!&@!#9D^Qv@a8QVpup(%ny@D)WpaUm?Q%-iAR%!Xmpj-3x@8G z7L064P6AER-czbFl{gf?tSSRcWuk|C$rOYkK{t>Vl>tNuxvPYtT;4Elbzkq3UE|Aq z`O}(5f5%-O|8P-Q$s}Yp1zn}g{^x=s?HE|Xvhn()-5~e&Pjv9)@v9@t1?UH?ydus; zL{nJmiZIkfF@P34c|x$HWO^MZ0`yMu1g*ppK?r&JP9_j>YGiVnxk>si*diP)@EyRc zoS3CDo?@9`%`gT^4m6&G4Z4-V(OuFf?oaEuz$>e~|K^Ts+db-E-cf)#=B;W*L8(fL8mQc)VV1GH7}i+HqQBqA$3t__%l zS}z%6Lj|E5CzWu7*jTAuhleBNAL9g(?0SlWialAhQQB7bIm#Rmf>@bqm*Y_;xT+p$yJfKrM|x zkx+3-sfZR@(G#a_Sou{orSZ#rC}Za7IkZfYx5@EE;oT4U|^G!R3v^}Jf!=fJfUG! z=b{)4&c*UW4P~LsK~V#jDnoGGVl-Dl)MLkzMgR~&qWC}*Md)Iz2BaI&82KmMB{^=u zn&efzhx}dfleNFLn(<)kvw%%DAkVB^a$Zhv*L6k`M? z?vK2}a86-#1G7n{+ey5kz{Lb$YD-?sAiwpU!@uvfYVCKgygRjMs{iw;~&{Xz-B?=@!ux1x1MxPT*FM$UpJgocLj z^>FSuSKp4iqe3>l`yed!Z2g(9EY7eehMZk*EuGEem99;6;+ZFp^CQ5ug;6^mD-aj> zKo!a=VVy#|)k5Dv+^47H{b-hlAt^ad2WwOo)P?Vw5{37}5o3l{b`gXqre`r&fl#5| z;kp<;R(xjumj;u2B8i<0Z-^9tFu*aqH4FDYZJD2?>-UeY{M0pg|JO5qiVW%2%Ecxe z)Dd%XopSR5VsgQIvo}vm#|5HfG|u=!98Vdg(VdagH%>EGE+%Z@XTM)#9%asgdg`C)xefH&)4zUJ(0wP%%N<6P2)3 zfCd8~#^jKEiF3HM9-|`zTM4R25lUSEe*yWTr4o$vNb4cbHyrM8Lgd|JGf4eO96?B; zk|(GtUCf6UH^sk@6TSHEq1*vq1uhu#WY6f&9FN@0DaSuGA1h|b!HH|~tC!qWIoDSg zD#QxMwF+&THm}uKONy8_z(NI~2XR{0NManyXY}F>9x~=)4G9vW(q-`rf?wQTnL45S zq%}}+$*clj0^PNi6;{UH2qiZY-I|HVu>gZdU!(}G{%+;V_8oWfVu{ax{kvY;o&iIg zmf8bjPObxPpRvB6F;lM0*_r<&rw?WDn?g+(vMr3Cs%qCDB_9eElr8Lp(`F%VKYpjw zCyeFLN#QTRtDq7i64NfCPM}obskHzAlQ$-Ip<@x%QWy}5X)`e+p!*_x6Xhz?oiU_= z06@Ul>5m`ndbN9TU(YdfmbmrZQ|3<6)I*M4*vyOx<=h91zU^!|HZbxC$e3A3E*+Gy z8$3*ZAyB`Bc{XlXC7|-J9u(rN4^m%`W=^6aM5q8obok&bkU?z9po=uXV_bnLAFMB$Il-TpMktZ(d)?V8w>CgG(Z38jF#IcGIlTlt6a}^F9P; z!b|e~7mL1nq{`-B_ucRQgZ~(((;LgK$?4B+0*&N*FedF&DHr z3`=s5cw12KTp4r<7zNX*5RFkuGMmBo0{)Gg2NR?`T)4~MKcx+6KB()^aTPbTZhe2> zC)>+pr`hA)POf9~?vO`>P3}FiYtVm)oR9C#IblR#o4bX8O8qTi6|{2}lLb&Z8a;I9 z(#_(V1KdK2=8nTnXlw`j5HnCgBQvB6h{U(f6=(SvidAAO%@=8dq#i7DHS!^EgyxOu zUM=LLl94F`tNgG^O1JbpmEbzM`RW5%Ux!wVs~hin(Egd6T~p3Rv*vC^inAqc(3$K# z&zE8=S5M%N$tpIIf}al5-x5}#(r-O{`moWGX?>t;W_nrp3M_{p3<{VgS&Ry*Uj`J- z_k?#j5SV7jIBcNwin!Qp;#9~mBEx{lWKgl8;-ojz;xc5>p@=8wJ(-<@+z)s8E$-SU zeu3xfM7s7K9Gvr2#mcpA&vra(V_O z(3l}l5I%&pxN1_bp!z~%1B}F!5?~j6z3dWIQsO<&Js~-;zKmgGnibL~e}#@xt_xl$ z<>4160@JN(f4WIz!3h1|dVbs20PQ@Q^szlTn)Ey-ytP+hS0T2p3l!^un zlQl(u4XV&!!f(}T)EY9R%#;0V*FSZiZcnv3yJlUEgKAYxIXe4pq@4gE@8*Fqg(306 z6=elY=;9!TVnF^O9*`L5SP4bSmas8&j3iL7Ik}A*#4#p3a!aK5XGgNeF<20wjR4#W zFlI0$Zw6%nZV>8LmjuYgOnwKjacfN+Oi{w^M$3&=5)D7j!HhUS z-^1zg1%v?LlJE%!}$H}F2d3^MRa7~fzsSYe=L(oYNCFTU-gqkZ-**i+?O zBN!9{FK%XqxewSjbgYx*!Q4H$EGD!^kIo-!Owu!Xw3OGr@|PyU13P17{3{7=?Tfm>ADD?eGF6(1Zi!BO-6WFz`q!VDcpa znd*So#KJjB3x>NirhMdX(H|~d>2dI@(Bd~f|JHwL@%7Vxuphw0UTNC-PYsOkpJh?U zF^efM^VoPXA!CIi8lApj{_k18b-m_|+aU?T-2su82P7TG4E6*}%&=IIU#<2#BdIot zR*^0UeDHuJe}dan6%Y$}ogl}^6ttiX6oyAZm`@#qV>Khb3>?6^(tuJ|x~I*!d-KuS z+DBgLa(CCmQg4(W>bb}ko7GD?yGC!BS;4F;PcE8ur@#RAQ|?B0PHG-3Pz1=h}6SCA`{mz=4HzowG|2+Tq}4O4Ki9PVf>z*>qzN-p z1AHa(p@fDIYJF*l!S0cQ&>9;pzb?)8Un5Y4{(s~&c0gM|99EVJXC#P*!{irb~iC;ka za4Vtcq=N^egm}ewn=gUaz!oV~J;<-=>1Y~YDsW8arx=h$je*RK8z1fx@a?|0CT9J) zY%dHZUk`6!)eR8SrpihTB;yQUlDjUxNqRJ>KYDL-{47$){L3JT}5ns$yzqU{K zAfTj6hIRpvm3#!r6Lyw}%TX?dyDZOf9@6T@fhT49rT%%gc>DNozOU&ZbYt<)2^y73$Zh+036-h312ngwmL4aav?lA}ow!Ymu55T4ikb%w!+R z)C9^Z#KM}QV15Abfhil6KmyHBQoy21hYv{s!vf6&6o~YNPM+jgiGs3TN~6EsQ%=7) zWK(vZVxziUoVvHeyN;#t>a;j3z?c4HK^(d&v!Fa4e}0akn=}hbh&(f!7;}J3mw~AO zjABYb_=1?C8q;bSZ5=g6q*ENyC18_-0GOpWa2zZv5_U>I)-dLrcURx54^?DxF+2PyWNJ z(3XRFdzX$yg!CL#Ibq82F}roL41UGXfK~vlhD=2_z}v3`T}Qs-rZe$GfJJb@gyf>H zI#PCNu~A$1ck^m+q1L#h)TWJ}JhgFMW@VWGu#_cZpO0SWuB@9gmfR>Y ztA4?xN7^GQb`Rh~4weSUWdlk)hBmZFEY*?1xHA1BQ_9qvlH(!JLxwNyCpsj+Z>lSZ zQ!+oZ&J_FzjiLClc}A6w2_YpIlXU*O`%* zE124;b0@DI|9=XWqdDu&Ci6D(1tZX21(v&>61w?v%b5>AJPq%~1t+UOr~;S(h0!3= zo@jc@IwzqWGK`u6AW?cz7jxoJr*psQ_mSqwHHyLjLtdU8`VR6B1vp`ue-YweUsB|% zpN5zCY;@`OvTj8W?()SIOYs`F8ap<}4;M~wci$MhxTs}y#G>0c_Bdvh!%xoMG;DWG zDt`b%H-0)$zl2q2(X&_Q5Lwa!NYLw3o%2l0a%rmxXALD4K!t{uWei12NqmO(!{oRs zCr;5CB#Bl5-^Do*WfX#loapu-sCu&f>S^u&LxrhTdfs)+YIkt|Ly%FH&=5+CKE5tu$WUU|HMq%S}+M5x#{4I zNL_o|+Ni!P5YU+h#6=up>?N8t2>`Jhn1 zSV7@5s>kG8XXcH~5Xh9-v`A6OjY63KTSMNfLKJ|ZyZApK z8`4#xvE&qnyEM%?U2^=V$M%Ds-8t&}-N?TV`kb(T5+~QK2O`|fSFvlDI5lwlQm2lwsO#Y2O0C|vpIDAa`(!`lN@(^tZnh#sP4;hl&rrf$;iF(3)- zI=}_ge&L;hA0*{7p$*WR_KYeRCvJwpxMb91EU7^I4vfz`89J?BgJq|4UTE~cYQ?9Y z^LM{`?Lu`&1}t%2UNy5SUOemMU8La8rIm}T_NN%CaO;dg;R4x{dW4z~as_py7GctG z@P5$WP>lhCkt0y!BI~4B=c%|VKsBT!`~qmW_`Y%T1YtpB1m6nEDo03gF|cqDZxNO_ zrE6;wb4BQNwLdG|<>?NmxYkbYeFhIqE9J8DY~SC`-U)CNRZX8Vmk6z7x%1B6!v*gr zaoed0qxF6Y=09wy(z7+3Qb1b|rrc@q(14+zk}{k+jIR|qiF=O*UnaL!{SHL{CNKy{ zG3BCHFr(X=_}0bMhN0m)`>(pr!5Bj?nK3F+Em z^^eKnE8Tt^==dmEr)PX@GAlQBXGW*wS1_?-4)dGmj+)AtFwgLgU3&J>N2W_+)?Djx zc`KwA*cNo{e4ip4&{G+{!n_sKFUCj&?-A%&#Gpry53@MC=3eb*?!#R6?~G@I9Sh@$ zC-&zIF7$FZXEuRCcyPbp!V!lekfbowc5WDLDjDK2V|K{+nW{sZD3@zpACWC6#Zi6u zA~~e+M4Y3Q94v1_g$299lT{`6DEnh&rW!$Ai#LNi#1&R}RH44CzIFFkzc)H~;O`aj z&Y7{VfBeRvoL-Isg-wS8%t9u9(6mF(Entk8HfXQmD`PKEFe@6qR1zRPB+Jn#SaaU*8)UzYsanC%vv#90C=2;21^KsXO z$1ca-X6}o>5U5|mJezh5t5UT#CyODcsz?!_*TD4nAe!bTH?nw5y8tvnVTF*SCr0p% zJ_l(oz0@4u38LGu9Jb{WjNN_MuE=lYQZU2sY61L;Y$|RSM z5%WiAYNTxt+X#{X|75fT;tvIh-2%&tabTc+0V2c9PLvl!AJ85k zE7jJG#%Eey-||G;bMz0 zfg+0xLuCv+NhSqD7hNN{J31uNJo`cL73SX&?o$4td%Y{wk0u6eSv72Cv%kAft<`Oy ztxGXe{DLz_s+#HK%G24mN90GVX)_XYM%bbi{gw@6K_|r0K58l;TvRpGT9mlp5k``y zM!~zD_7A~2Gn(qSz*rb7f+4G)m*YLux9Yf&dav_oG^Dr^CDl_UkWGJz3T_ir7+iQxpQz%=Aisbv3tbe zB?E2sVn?2(AWpf#VKLaqr6wnEzUY$VSX7Cuf>Kv*;n<}Lh(LCr?;9y39|-SFbc2-a zBy#E-0AZpwvz;`<#^gN(3nn0pf}zT#n+)PotX~%G(_nH&uP1@;etYymy=o^*%|328 zjO(5F*&X{~i^q z+-kX@;^(z?0#=8Hibex6-ozc5(T4BhSxI-=y9PW;HA}+4+K51e5E=hLG9Ow{o)QF) z;Tys;Z;QOh`d&x~&uXJG<}G_+(~6gVdiLpGp7TBW?X%Ss6h`a5v>918sB zT9PwMQX}n!`8JlzQn^#-UMMv^;NO6Ep(DYAX@Fr%X@IfCQhkDclipHR?`lek}IiSjN7TcXnO=aAPs|$f$!ZmW59qB(KgtT4UGVT$2D^&tC}CFJYF(&1<*z zgIL5bh>=pVp7B~xdoX{EnT#RVfIeVNVg73Y3umeTTW*P1wRnv^bhPwn64B&9l^JvN z%pIZ+=gRQnwC@1*6nT%{-4DXP8E3#|A6~no3Az=6C^F0aj&x zwbo~Thfgjp*uHMeokv%`&8@t*?(aoy_^=5|oE$$7x=Xy!s*xLS5RQwruHB?@)9Oic z({c;PVeY$RM#c&U@4B^G*Q?SjfL4odo2|!6B-AAc)kF&gv5i;~PbzdWz4C%LE><72;1EdMNZjf*`!CcVBbCAgAm=q6?&JWKkw`FqA(1t$2L&5^~X^ z(j|CaX8F-rxTCz^EgChy7Bk)9}3guDh-}mcDy$4QF$};e*92 z*}FHMFOWn(+`i?wp~A0pDgLty{|K??XG|rCXUH!>A-w?|u>*y=L6ieC&HDhf2R95s zX^iYv*e=><-UoFe%5M%oZo0UQYgW=LnD$IkFhYfP_40#Ym;7ZqG_pO!BuYGV$xPh= z8f)im+NSxwxmEf^E%>JB=p#!5YX10gW_SBs;_P~1YMj-0@K)@B4e9w#IoS!jR;JrV zBbsrx^kRe*g}Je_o~b!@)}E9z!mXC}-coU3)j=pQn_h0o#>JtfL+J{5J9gNwGHnKs+I75cP|j6D z&}lJaK+>c;TvzVlTZ#8(BxW7|X>_e)qrP7^*Ez@rKk8wCQsb7px+Ax@Y+rR^;Qm5f z)|f%FAMYz4z+VdFzhM=ah66aEW2Hw$YsY*KbqO~es#F~zUoG=0I3*h1gPf&~L@wqe z#Jn>Q4Nd|IBqbM$VW&}l)HK^D+ZK8ehaB^LKD4p$p8r@918g)88|6REe#N)A&iqaI4}=g zY!ILz-apbD23AnsqSMLed4L)4{e~aVGvS~HuqA0Ay%Zw?;J-pIc>Yk@N&+oxH$^d0 z5wR0U+dGgvKB#@vsr1#bemh;71%3X*zfX?NZs~0!uLNZ~yJkOr@`=?BGWPtyN&kU4 z9Ld_ppL4FPq#T1bxJOzCAnG-%*`OZVZ^aJK?J-e9sX~bgBZtHjn22{kt4^uM4M+9` zg)Os6N$7BxA|srtf?UW(mCU`yR+xgq<}*` zbJM%N?e_JXuQwXgzolby81L^M6twu%niImW1$h@|l7ix1CT38wghArKa+&B+8Hqh>K8 zF#H;yN{p38>_Fo@OZ|~*lojwd+ zH1bhQ@`f!Ni)EdU8QQ_<9}5wU3p18MG(KJOswE{cJ2u+!$W6IAb^T<$rq+MPuj%mj zLSnPgr-)9mbng|^&8Jf@um^ZVEo3BUah3Q=Nu9FS;E*r@M9FRdcibZC+>V4S%tx_E z*L*&LNM=$XAcFv@eJ}c`*3uttG2UjlBKvlZc+J zhAf%ayY<&LV6}08%-ly`nVS5f`^<mkn>OJs)$nW5u==W1>-bZF z-4QPa^4~B)y;PG}_|XjVVwmD$ZjLkqjRN_LLoD(L=KmSZ%O6zbLNIZIx{w?RFwbs6 zNJaiGwv)r=GX%w3W{wB<78or;3SI(?RAH0=KEbmP3w3>c1ubTH4cZd0JTW zm8D;C6igU8Vnr=W(*3aqkr|oH@LPmO9%ni%;iGM!2wU@HLf z4<;mlI5ZA9@te9O4o07ipIG8zSmimM(J#$ef79knZ|3~v`?ezgR6#sHB_eyNz4(6P z^o&R?qA4`gsjAr2=d;L=b8tkx# zxIld8r5AHgpFQPG%Y*1Klh6;?XT^U9KD=!(KQ`O*0w~4Oqm5tdPE~56eE=oI5=K*k z%JvdOQ{Hj}aulw%BY4J@|uWRW6SUmu_F{(>WYip1?dG0+~7Koc=It*OZ^tY4Ba6tgl% zk~DQsPL{zk6sV$YEQ96O?m@jfb^lFw9Pc770N|-qD`2S<8)Qq_dJv%GWXMwib|DtP zH_20D{foJu+McROJJF;GYe!Pxt6`jb>e6)9P&fqMnX^uhpJPM4Cen1NQ%R2* zRx+%jf3tRt8a1ttBi{O94aU#FVh?J|TX!&xMu{IFC}F^M_u55R8V3`XA?2 za7=JB_Ruq{0Y#$mlh6=UqgAjMX4Z>+t(cYr<&*M3%f!=NNNNx|XU~F_^ZS>}9{6)& zuU;({X4oniGwDYTm{!(&SG%TfSc;;^@m+}Iq|l8=G9>(EqTjE z#aw(|H8E}Iy6B6*_54VnehKsJim<$o#-5}nq+T&Jcj$!?trCB!(Wv*q=*0D!a6OYl z$Z@rdopi@vz_bv|5pfqsitERah4l7xS`=VdYY^W7#?i9k2v0d6|E$vQ7fEVXx{}M9 z4S(N1(ZoOcmA2up8$z!_mCKa1C~&W@^R_I`j-7hdajbLloI^{q)D)Y=e>{at!7>Dn zJPZM3FPVh9L&m^%gNRU(uO6j6Qy>-%dH`ey{^oO$-iflhJme%I8pw2#C}_?V$F|p2Yq5flS#uj zCNZ35X7~pKmn9iP5oW2sE?@XD_}ehg-}-v@?%Eq^1aBTFl)+kgxFBmpsY>z4OaPie zP-6D`n3W{R5p^Uct*Sk73L>|I?~zm~`{`J?Yg$E%!kTd|cIIe`8kAde(0~}wso^fW z|6D&{P{rJn)2{9A@m1OW-~L{|)H2&OsadZMm;ZjsRd#3U@?Slhmb*Vcx7^5DGpUf1 zB#zd`oj2&Kik7f0-8%o=w=eEF8feB61Rqt}V|C2z0z%}C{S}*;s0k5)8D^4{V^mj$ zyCgrMZilGGe;~Ml?jb0kcxfPXpr9f7|FlCI9Yg~Q(jsgAti73IYUh3)>+)HX_J7RJ zdvj{d^?CNPbtl(l=f}Qkidg1fxfF5y`D?QN_@leW6w1sOG%a7mV)QTJRr<7R{BzHm zfG*T3jG2>mM9*n@g*1ptpDT>0u@dTgpl~0WG4-0nFgi4nhgn%8Oi~(-~HK2NC)K~-dUuCsFRQL9G$@`~d9sTx)`aSO5IvQdRhOv5M*y{J) zGb6H{EtB`8+s2Bv?H&@bU3FMybg8*1X~V4I31h6tvk{tuj;(M21mA_3hZ@o%Y+*=v zHZTfJG0O}sqCkmP4eu#H7Hl=ZS`pp>8iQJ}Y>J10N$ChnPfLn!1ZWn6J>gHr)IQBL z-5Bd?lxt$bYqWj#ta04LsJf?WpT0i+gi|M1qg6JD2{VwL$e8_^xkYowv&ZY9v|p*| z=U?xqTD9rN>bI;uJ>%lULew^f0rH{t+D@DAmX-7zfgm(2-Kn(c1H7f%=fP!L>i1$rbW*TYLUGFGHfsa-2CUYq-TqB(Qz;?B8h zT=YYRBUOdA^;!jhV<6W6UJCJGtC~FNkUja^ja1lC$wr%%Vn@#?!w=%Q{UPvC&2Q)_ozrP;4`l zig1--2Y@EbN&&~orE;1yriuQKu5*FQ`F{WZ%4XQftTEq>-DuNBb(b7>usP2mXToNk z(dK+^Ly?k{P~;Rj6;e5$QaKe$O3rf1DG8C1a`-*3&*$#G>u$f_|Nrgrowa@M&;5BH zuIqKW0PPvc3PFcHjEo8L8JuuOiG!2688}%;GjLdmu0(rFSAb+kJo?1SbAQrIw#hy5 z;i`s3_B)>@?zmIW?Wfugw`{H4AmjDA#Dr5t1yXuHFmj!7^_g|ObkjOR3-b%-0E!Wv zDQED=Db5o{bVdb2Bq5Q1tT^=dVxR>m=k@S)!z3~uiz8eu0%&%nRe@0@hmHFZ+=By| zTZQc|gJ00=vhxrm@xs9b2oI%DrSe7ria)<4uV=04-D_)ij{Wcluc^(_tbDhH{aM(| zfSsv(XUDoglCnk47G1pJ{E4ayZSLx$2`A*KbkbH1Z9!+$-7{^($myPRn!t|4dx&L% zu+`5&m1wX=+eBIl?IsO)G{z zu3(q~4r>uv63XFew!-g3+69Mxn(aewzuC~BYhmlDA5S;jKk7}o=JIWN8$p-PA3u0W zKN(_M{GOE?tfjwK(NXeyk;JU0oWcq*LXkt{y@=ekc{ z58Ja-o?Tym=1B6(Z#o|_yrGUg1>L;6G$1&|L@f+_6W4Ae?!l;*UV7-+(c^|! zD+s%Xx`m2bnrete0_N1Q{#$l!^=ayPpbxTNcMv{u%xJNl|U5kQGi$OQQ%DoJ3b=i8r3lsG(In^ zIMDUDpTLZ0&?qf2PKXJQaXBO~bLpZhW0ImMekBl*G!-;GkWE}|o@V{)w|MoY%fC&k z&!1nr_?h=#7o6+;ZoJN3-_3^Nlkv^Dmx~s_TB;RW*^>wJV=KK6!-Zo*F7ODq$^AS9 z_?N6XU`(`80tO)3lNput`{2#Ea-huAlYkwAX+Uloq^h(Dgy|5T2AE0pDWLib(?T1et9@8)>EE| zMP=Ph+qF$MSXbmikS8Gj&ceq)ILZ8J#s^B%MbHbSqpk{oF%qjCha7$`GPEUNko!c` zJ;J^+jThl1elPS7q`V*+2efA7DJ%|HAnYr-r;|GMzrEy2#u}5@5!XV_mbf)))zUZ- zMWOW-jON*r?Ys4~{_GR8kL|3eX1AT<;x=lk({!XQ>{KFtgj(XI5cVbf1yUG>(D6w? za0IkexiKzGMvk_tD`^D|%`ww%-GA#D3EIXT^WCFm z_s<)E05KK`5TGu#5zcmFCK4VZxdBQfg-F09(m^sPD5=RV1aqadk&b{{Jb6~H51+3L z4rz3-pY^=jHX(T#6Cx}7HBB_pp$EUVxS4nKUG35hk#qlJTung6`W-TA%Rzq0QGR&X zbnWfp)^S|7&Sc?Hc7TmaQas%WLL+`@BKp!v{8e z)X=c(b+zxoGM(9R%jqTl|1nDT_=X$Tb{Gz$Nr@G$DGv67yY{1PZ$)NDD;@&G0qh97 zChC7T?mZZ33N8p!+D8EV<*)5mD&at_UzeR7g?(AuuUGk~j>%L>U&NXygDxbGAH@BXJSK@{0+C9;JZ^#L# zq9NY2bWyZ24NX5&TGorM)MB`yjFv(}LGLGX8YTY|yclyThdw`$6p)hR=0sPozA9iN z!hfXPqGY5F7WE);O_BhNm_nvB;0Fd4Bsd3T5B(k&i>S=FZ`dia6;dNdhqros{@a|c zBL;4NbzyFT$DU!ztFrH<&oo=GQ+Gb)Wp3C3&Q}?`Jh1YHswMsp?9yhmlZWg0aTCX( z+(G)m@Cun|$}^#rBKB9N@X54jfxNKD@v4CNxH8aCQBLtH=tH2#z=%+Lp?SgL-Byfh z080EByGXEG@ELUc+>p3FplsPpfw{XsJyH@EvUSHr%@BuR^IaEuXBz7eZoW9pLy0i@ z@~cy2cguAMYY(M{-jxgdKZMcd9P#J`(CF~Vs1{*OB*FnOi7Jr$5T&Y(SO{eKP&R?W zXer#OH!$Vm(?RP^Jt>zT2N;n-WX5BAK=aD$q4TGK0a&A@_B0zl<3|!&(=V9}2)T5j zw99O#yoiaF4+FZBtC8QT)bXR+7gjB;TK-1g+z=+LS4D;eLy7oc$ZMdTW!fZT3;0BQ z{`xE5P?-xMTPhVIgf$v5JHnB?BHdBC`nD z5D*=ZN#=Ku-~k3g;N-tA=f88sZrb2)hqoB+Sles0ZPdxiOg?Pa{;VeI(}WcTUfEt= zkHjp!5T#gZ4J?tBK)|AAK~hJ!H7)tnWq?7}5?f zdRlfIDs;L+-6P83U=zt8WGMxfg0Fzii>-k{Xkf^qd%^3(qM^Tp*B4d}j10XLs(twq z=osZ6hk)XbIS7OwK6}V}%?R_wlLibco?EAOK}>_Ihc+vD(iIeKWv?mP*T#idYfoQz zbC2-S%G*6+Q?PGZWu=ZnRdDxtn1jG$D+SwTGk|-OU5afJlO0AuNNJ1Vpk^W zl2eL^f83B*Aq6fM%{tG?%0f}kd<>922ni|JDX^pj;f8kym*v#@e!iJm*~i1L{5Ima zMdL8HVV6zn)iusu_j^-N%Od0DQ#0+M)QFH2J(hQT>x*Q0C8aYx;wLQ`38-> z_4M>^Oa@@t(%}Qppzq@d1Og|{Q9NltlNt90{hFCsJuYR-ux@PwOP_c9e*X5#vI-N; zy|V+sRWcfCQx82^TP5INfAp&`WvaAcq3Pd>c3_w8{kr!Uf&iDwP-Jq;OCbAd)1J3JwD1nll%`7_yrwn+TB6PjgfVTMT(evBeF;*d>Yn zWmt9_0Ls70+Ryma8b=r}J>{w@MNX%$O{kJx8d#DPuVj~g zX?@MSx_2n`mGVgZ@UR-x)!AVhECi|tZao=IBH))qISAnb^UKF!8ByV??Yp3Kl6;TW z)0PYk^04I!Vtvy8A=TrhlBtUYg2XLy&VdE6Pmml&xx-sT^uSc$H@Rs;|K6NrR?F(^ z5C4iecIEMc{~13}(&B0A13g@SBA|-&CHvT0|Nl?=V%4E%Pu>tw1UMRyfnkqFp~OXk zM2u&kuLmokMuTDHSfe+A1xB)f`$;AWvt`JUMQ_L{#!lg1LQ9Xz2QU`1I(#_YBh?N* zbsSzCkqEZ157lYcYH;0Mds8PI8k}oyTjNlN$o$G^9u%MdSv-S$N#_}}Yg`0p z#%C>GY$$>^u$%NR$sC@6CBlOs@!({W6ip?@$%QkQ*TJWBW&2=wqE1F}2;4x64%Pta zN*f6%iB*_e#hHQ!b(sjKDQ9Hx1Q?4Oo;A5LwPb6!pZU=7YJ~NeIX|Zdj-1qe#IqpV zTgI%h*V$+tvf{sY&3xkJ)sELY{;g{jo(s)TNKKIlHeOJW=)Qe;k><<3uwD`4va` z;bAk@>F@C){wC4@hm557LV)ts(*TOSL$G0F1r+UYE-C@Z3jj5NUqpu>Wh9J?3x*Ra zVu{8V6FUc?T#(RB6kbTeY26`;#JWwkG3_LHomrd4MSEuUUwL6dt!87|TpjK=Xlw;l zu?lS^XS}ALlBINL<(oqNah&X(7_A(~dXCtzfJhoa@XYE5Cm?&wT{qPO^BWHI7Ca0r z6~XX)?b5!}9P%*q=2%Zai23eWG~DGJO>Wq@aifuJ09`DOAi~bD5M%4s;@T2vDM%jM ziNF(2v-E?vU%ehuGA4RPP{EKpU)z4&X7VECj;z4jU41YgKs6-5MC*I;$ufebD&LW( zyl;dm6Pye3&Jk_|oMqL=eu~R@gooUQtY)I{6?>o)7!b-7_C{;kK_DyWQ(a|Gw?^40 zGl2yS;sTV_k7gGImB@IMfxEmeq=&$GcJQne1uR)ECzh`}yW)?9{YQKp=Hix+Ra7$C z)GK!AiN(_^mo286WS>BiOGTS=>)`y?$I9!jr)PJU9h25eACRe{C|a`BuB z0xYp`xCNkbD2C}R08vpPiYA4Emx^BEOa+*u7zU(r21{^hg#w?x9VZc%JbF+@0<-fm zo`cbIKGC4FNknOZ#+cE0r16#O1m)Zj$0A{JnpDHwxro@^1?U#>ZBe8zKNaYS*B zPDjChCDvX>Y_e;p$;4&OAx+_n=bQ*V$ql0BC*Zd&v?K)zxFZ>bWU}yo{Ht8JJfesE za4Pp@%sb(SCp28)7W=hTw^~b#-^HAb%YRm3pzKAr{pOTE!0j!sX3sIS!C<7yyHK9Q z8hQ$&IKy)}UEH|`DLr@;MV>(1y z;IqoSH4z}-BY8xuRNifkR%Y67kQf-7bCR-MGnaak{;V8 zt>t5|(`jJ!r!7plb zaxXRBCpYh{21P17^qzL3fBG^SM|Gcs#b+#C+T20@hFS}29l8!3>d?O<&J9dUGVoO} zX-+C~*$~koSYx=T@QbYgPt?vGf(~o}rVe0QE>Q>+_JKev>=X`U*f}!FWO|nb1wp8S z#E6FgbwAjWM6onoVs~dr@1pMl|DFEBwa|pCBPJAt*E$R^r$2ki@juz$BJSY;?TuTh z{-MTMQb%9MJqt0^BdBxuRY(2<{*FIMoa5XgQd^+}k?FNyN1zPg)Wj^gF<=22l+uFU zgNFdD=AGgBXRbTQG-xm-qxeDaOlr|5i5vzT3~ZFDL})NnI)q5s%t|>F*qLc(-Inf_k7-~FB^S(GWfGEf@U_~JK?!ukEj*O z&NoN6)kPW^cW?2-(^V@JuN5zIPs1yk;5iJx67omd5(0KP z%&4Lm!~-TrfSK-kC-F-_7^DZ1*bR3lo;nI&}XS-ozo>w+An`)K?e5jTxM||#|PB-p=23m_~h7i<@S@47)6q}vH_GR z+SDK!exHOq5)s6{#Y9M|FJ=-7D9Z@~shuWY!T*R zJON{*rc%9jRFGn51bU#d1Y{@Z5=NdR1B{L&XMv$`DpPy`(veFC4$al#!gJ8hkaiAX z4`TdhWV)u%CGA0m>6I0i8Xr1zuj{rN#^`EJMBSiNMVMiH7X;|I`bNLCT<;sj?HW-u% z1Sw5RYnB>;6L^exWdIby1EI|4;D%FSF#}|2{(+jOkJ>+tI`Hn48+WTa z{%g#|Er~j(a}<@PXD`;fQ!}z|lvZ#Q$*>sxv)KIV&}oo8?IJ}u9}Ghaoruua3?pGH zfa)=30HHRc6!feK3OmkWKuE}7R8$nZFl;z{CUVHO@c3m}!#PY5{BRI#W5S>QI{ z?B+ZOTN3)w%AbyuF1CI%Z07rxfqyRRJJa|bEzRBag?b)5j$RMaUG*KUj677LqWZwv94L(BSN-nFA)=+DANFe z9`lt*GLQtg%5;pg$pf1d#n;RHrOeFVWI7P-5REGIXHAQz9V44uA+w7}HpPe^8 zE)mMI8!O$O@%V;Biq@BYKfcI%1B2nPhBSNhk02VbAt%IQ93K_Y-O) z-gdWKKhQA2Q@w$5Hy4;$c=_J0!N}z6YYVC#a+&8=EqX$W&#ySj4-cym4t+K;p&)@6RvgWBrv-;0&9BAd(F=tKtVa8YK&EOIqL{96A z@f)*qsy;~E-b*KQ47H792MBj0KRmQuhH8K9-<@G{V5ATwj9&s?#SKQ}A9EG(u@gl_ zJ53u&z^;PvNw5^rbBMiQ@7+*KiA6zJcr-^s+9S_LA^|*xahTEvoSpYfFTj0-XIB)J z9~S?yx#8(i-M@Uf_5M$8)4zLLFY+^k2t+6`6V2Pa17BMdJj#AooAGetJS=WTm z9ebOM7V@_kZ%JSil)jwLY$L()cvLDk>I%+k$v(k`g+`2no_{5KNBh<6%^6eOB6IJK z*2MnuqS+TGCsuCNh|+qr{7Y4Pl(XPk%Bk`iI^x=;HOlnM%jqxr-`*I&3sMwEQW#i| zo;;b;l#&gk9+4+~f#hh>bAe?bo?vf7YGXS9)>FGq1S){WbSz*MNOkBgVeJ8A1WTrt zAcm3RpX>q76c<`$Y_9;yA}t53rnuntnRLwK=BicMKX~OtxK%G)w9LNqpI((q9TQF9 zg|-$MJLc5XW-i}(!_T-9-L>N02_IQ<(>^e_n7Kf#Q-;AZcsmIqlyF&gE|0?Ap`;g$ z9ui4P8Hyb?53mHvToRqJ9I#0!3z(lpFUAoJbjePVk+M_@LD9a$Lac`F%%`GiY~1#%=zA;;6x+s-uq!!SC_w#2d|?} zu9n4>uN-5G+B@(oj{L{NYRc$o(?@X@BT|JovBa9f!eV{}1U-Exx^Ij{GE5w)kwPO; zsfmODg$lwx$t`6YAd-+TA4w=*KMy3VxeSTpRHL$WA`Be72}iO!4TY!KzK~1t?uQ%Q z-d5Ot+vlc_LW^y3lZ{!)>kku1+K@x}#G4&U1Itm$*-z#L1j=hrjo#&lv4R1Zx8MZD zVNOmH?H1=4HMBBdQHDNH(!krhxN;a1P$2^q`TXR95SNWKAGa4mWWn`asi;9Ph>%4y zWlKqbDu$IxrW?pI{hBMi*}qq{XS}Aho7!hq;P9f&EAyBC(q(5Ay!iDU-RIv>l<_dQ z>KPXFBt9b8aE5_qsBoWht%w7F%h}bEEL-*l_p^|CAhEC!v@v8!Y2k;7I0FWUDV2a< z5OHMT)R!0v2{|C(SfbVeG}$yX6_S<6<%8t~b{~x)N$7NFd2h8DEB^6p`7|TFUGQgT zhK9xUI8(VQV_(eQhBTj1UN7@vo`ELmV}8&3%??*$@%4bEn*0aI2MG-U0)IyeF`5c` ze)$HaqY)&7U>6yxfVv33F)DEdTEhE*UY(|zo!y4eLi#uS9q`|zBkM zGz0Nwj9BGdhKB-CYs)78DdyCjJ0+iuPjH!}nPKaGF=+ex_{tB%Ji_1$IvD@l{GI2w zlrO6b;XZ|%x1e8I%KU3TG6vFWB$yNJp^QI$1Kq4xu5HC8eTh@Q^*>_yWQ}r%p!z z(7}c7N(n>oH7y)nfbjLe{HUVDzl$`U4Fmx|wJa{Ybh}oKPBi$quUoKZj~4%YzHVQ; zpYx56th28&H5S3^oV9b-JV@SGeq`O7ed|cYcyClM>zp0=kB8OhNu8Z~pu(qIA;mk0yPJt^vHEF#!O z0o#~U&y<;~Q{T#pG+@u|KjMaBHH?IHzki@AQdpB;qP`%>$V& z2_bX^tS^E#5E~;Xg!L2M1m+5f>!BVa3k4AdwF-bgSNXmrFE75_@vPSR{?#VF`_tYZ zHut``R;f?)6YfkjEAPc}V#&u(icUIGC7XQfz1s=9Ws5vJ+snDOL%DZ2Y5SV@JXlK% z7(m9!2Zz!IVkMxL`kwq46oqUSsCbbzvuB`R)GdO?8H}DNFxke`jxw4Q(wVo2W|emW zf(|gwyF{=iP!pzG0zM_?6pIV~YfrO?E6-9HJ(r+x2vDq1oV&y;lFACiMI%Dh&J9AN z0`x>u7P7V0v>(LIz^Za{Fe#67fYTR_kr{V(^+?EaOGGf}T{z`D%|5@8^i}h) zcC$ZAA6K;D+k#Ea-<>g~vU1Qwvo>s=4tt4OcRm5iONA#d9@@VQqRYSypQ@>T1%RQg z^0{X>G9{jHAn)^5~T47c0`kP>#tTEshughS*~5?ILO zCmL_OD)MrWOK~_OHUes$FAHo5^mHQ zUU-k|;9DL2UM#z{K7rm_ng`kU8lm;k0gdqlI zfr$sol#v5SR|z|z(04)}O^yoh7}OA;5`YOGgqZ9JJ+=^e6IbXcPH;PfMM!uDvr9^U6q5r zC@2Z}kJq#+?BL=G+@5swh({gehlkCtord%p(z)*-@`31{2x71Vhv3R2{t|&0@DXJ% zND(qMQNSp#O2*#6(SvZ&N|L+-Ngx&~JVXGTxWqtnxg6=P$i~F9Ph1ii%}l;S=*A<; zl%=D;m(^eF)GqmG!@6e{mwndZtLrJ-jHMJw4-$!R5+*-4AZkNixpZ>P^<80kTq_3s z2Zb%*J7^a~A_oBps(fZf6KH{tFs)ylEn$GLe7pj_ z5NC80e;;)6FRs(vyWd&&;X#Q-nM1N_-c&~NR_Ju&9v1$lG$xO77x?LicbwW9JJ%0N zwS4qQ+rKBZa-VJqk;MnbTrWX*T#h7ZFq&5WQpPx-O%cbFvUDVyMaFK4m;gr|8CkqJ zHVki|1>z_YFuCzTjDd&cE&-fC$SxKr>M`z3z`74>+}mjHHnVfP6+gT;t6#m^%MVy; z4T2VF(@ivIZy%)*$=~;Z*6T#k@vY^zd+^eyrCSVLp%@)Wo7C};lc#!48aaU@3iO8h z&{D7s{))l%WFgB|kYoyOY2+%pA`9mtL0F_Vp%aF_LoiJ*k6{>H3nCcB{y|qv^#buo zjuyTlmK0bEsu0j1!RvOO+I8mW#j;I@_VgMR+H{3Br7Xh7Sb@9pTpAu4p}vYzw+0a6 zZ5Yz=^3kgNO>(K|jI}(EkY4h`!)mIF$R}FDN+YDfMvE+1a0uiRXr2gY6b~0_Lc$e! zGYD9TtH4x@Mvt>q=3|M~0}KLjmEhtOlc+!4d1Zi>90hzY7``~NdBf-_0QWu3>I@uw zwROVkqklf`FsRipbrN=+dfdZ+)2V0G{+)~Js%KS6aL~frRrg2ehLy8#8{Sc+v&wq> z-|nL(j6$_06Ka!ula!RyE|$RCU_VG(NmpsmS#)&fn3(pTG2!t>kTp(MlMAQk0tFU@0 zW^TR>XDoEkk&L!NUj@2?-IMcpOP3xwzyct~zY{Ig`nQ)qI;Vp3+`qYgpt3_*^K zo*jYbnFuC4%`_?$#ZVEP&}hHpPLy;LqUjWc2=fd8?}1;*()izmvYVG`hH_J%{?e?^ zvG<1VHew%5G~wB68du5wZ)1;*@6;+ zR3_Bg9H4A)aRQ>IqG>^=M-nkc19Dez0jP%<@Q=t0@Obg$GWnRKtkzUzqVGg|!5nYM zQ-DWVUG&5x0Ta0+Ia+`cSbTVxgvoz<2YG!`XGND~=AZ5w_4RvKI+RwvUQ9Jw3gV-#D1QdQkYXgNci-cFeflTj;Wy+1e zB;^PFx8NpVb`qn9Ym0a-AR^uf33`b09UydGbcoubC6{Ku!u5SFGz!T|js~*VFM_256 z%Ym$OI4UFqvULPdG{C4dNh;z926Y7HVoC%KY~+WyRG>p;S_jWU@kRN_s$!rz78ckL z$<%=n2NZUdewQu)%?`)7%&eAaN<6vfMDXnJ-VilW2=9-nwlv(yx9?K>!r!yKFaA8T z@!~F(`4Usjjo1r1ZQkVrd*+ilr!KP4W4XS{P-NXeg-W#PNY@dhYDliSI0$$q%(~R{ z#DIYbx3ZKt045&7eoHv6)bt!hqW$7921IpcH%l`wh&BV(a4++9;Gc(Ylp(?(1e^$N zh}vc39d0k^a8I)xKdhZ(y27FE#lc(byL8?Da6?IK8)GPS!}V94RS|;s{5|K;c&m?+ zvHQ^hMcb`|QWGoecbhgN+{a;70+YZqii`t=jtosD4GSKNLWBl|&m_s75X8I}PGMzS zJ=!ibV#qxxh-DNv5;l5gQZpG#Kp{i+GCNTo0{DiJq_CGHFhhAMwwr zuKV4fhc!=(ep#MBX$W4A&XlxxspR*?l`P(3tkYW(ykpT8!)YAOL+Oiq8>i9EW5(ms zg>giSh8P5%Q9?C&*v<->#picI_;!dmj2 z%(-)t@kacFG3Job0;p4oBHp!ugIIW=L0Y=!*kMPeis9w}5iqCxx z*jn6t9B!%&%h{j1>A!V*&yT*kD;1i9{Gy}$@UWUTsn680mcmMNjZuj)x=y^#RQ_Oe zmg12>QN;8v`%^QKxex5NM>{{%mj=hlA{!Ga0g% z!ayujKo~rpBs*f7reNS9M6m#71%AN*Kk{La?!q{En%%ozywaz^u??3W9qQ0*#l*{+ z{x6!!CaNHR+Zi`+A=(3FBIJ{Y>rWvYtBg?k&RM}9R+iPj@KSaQ#pmyYTRBoKUwj=JDHnTDgfYVF&Cn>_B0z%)29Ax)A*EY;ddjw zBU;a~37UD;c+6U|@4Yq_Yg5BawDCbpuW)_-*Id}FdnJj=WvVZo<)2Wb$l3uN2K+j> ze>Y1AN||`W^e9wB6rLOg0AJjn!~@b}QE*c5D3_^-*xI0W!GVn20)YY61W<8ajg$!R zdMJ-kyHQG`rls6uBpHQ-FgARFz%|gtjlEiz^miz7tT8_R*M>i?J9@_1$`~on-+$m6 zwLe?nmw$0r1*rU3@QbWnay}=eo+ODz$koohv^IUZveQ9*_@AQ5r01o$!JkJb?aFK) z(RZQ9S7NlKa|Y!@xDT&FK7&|2!Se{+6@fKJFnBtbCv6&<5Qs?-FhXc4bMUa)F(4Wd z5IkPV-jVHr_wk0SgejpU8M$`~3OyRcov6AMXJFm22f$ zWGR(PYD939Bw0JN4{`f)WW~TedzoJe3Wk zm$c1pV3)0tbRqd9TT*=zYJT=Q9TvEf_*x*kknw=b(g6sxO81Seg3)sH)u5BynS{C! zZw;IdI3?t2^6;Y{Ykm`m3i}geUuyGGZI}SV3{&@oU~#%ZzM*rGUR9i zG%-jJ979yrkT23YN?perq3vRC<32>}%KJkrg>VdLRVK1P^`jT(enFVcnN52@s=BAy zKYM0=(bL3va}Bc@OW!unX|gHqhnj}>q8`y_AI1`NE@t(Vt*`GAd1?#-Jc=#!39kUo z00QX8s+&V@Gl&}K573@f1~6Za}f}tkof3!G3roC3$jBcfUy;ybi1iXFTMC=*sRvK-1bEFy72t$pJ5IkJ|F*Cvt5S0uEG}4nVWS(Sp4=pd9}QJgX9!OmMoVIqO1OOjf@{z)YpTgmfU716qdieN{~ROqVs-my_2$`!$)JA4NJMI0{_ zW+1Q-M=lYu{|+_H4n$xf-==K3}~4 zq8yMwTH8uY8)rFJ41bK0l?qg*GdXkhkNM!`=90%@KaM!o(bqn&{e`fO zmdT2BU7?lKu6bVKRRolIw@tN~Pfslb3iz)Y(|2QD-e!3@@{5l0!$a#d-E~|C2ZpF~ zb8-@qEkZd+V@BoA=4pw#6_%Kfid#o_5>P+3<$~cbr1dA`jbCM#&;!Y2ZiH5#Z5Trs zQ7Q&;Ko5v1FaiFb6X}3FJ}jljn$qn!ejuh ze9<1T&v`XKPTZFajFh&9*iSin<*E^RxM*`_h&Uh?KYu&zyZPU>P7DIiKknkG~)pZtsBl9j(memIHMcJA=@$xd1 zsf4Pb3M(CrAP2GB$V4D;Q-b|5A(1#OB%j2lF!hGh2q0b7?wa} z!ShkIlkJZ9kE$4u%@y&xgt-wign$9VDY5N{OF5S3m3ft#-iWptALCv&q4~WB9XE$J ztD@PgYD)ya~T z!4W37DoiocF{FG!M}plAoea7$>O~x63M5+*Uzo zSyZp0|2d!BCEWj9)Sv^Y9h@>9&K-JD**s~Y3Cl<^S6@X@Rzez+Ce&9Ele~++C_l91 zRag&l=sc-YKduhs6STXsjO3D(fJxMxz&_;UCDy71bpmD= z#@i|~F?_o;Tr&I&sDeEX3+f7jCU!AF{3S!IZ@u{Oe*62c|2?2^PrdhAjQZWH=vn0g zhD_j-{@<$z`Ky;VgVDpN50Lt3m5-u=X}jyhl!P@abO^a3nzVKpGIU74J|HhRIB8xb z+?=jhXm5&Srh&+W0!~ndvIszq2nKB~jXeo?d^lD)^aRRVMgYio8L5zg3=mgvfw1Dl zzXUM|*T;APoYWHg%s{-l)?R~aes0obX^kF!hVLLQV8#F-MB4h;P+;svx!qErH@qUU7wi9Q)QnWtG>-v)2J zO|!j!jxTl}aaG&9!8o6;2J})b^^^8`S66x1q{C~4AveAtqvu@k*($KVDitBa(ZjY! zhYo|<^dsbr@Jr$E2+-!s|@v$B^S;$ z@!qqm*y5m?m`xGsN?9h=wjg|5{M1E2>z-yKhy8eK*+|DxcUP3b1Cw=uES5CyK@Woy^eu>btPr7M9x+iA!lztxZ}i;7<2dzX~U?Gx%BwK|1w}7 z577!GB!XM2VcwKdQ!?S1;Q`bz$b4+r8#oTQEm>I%1VQYI?gb6IfU+nUL30UeXL1ID zWn}!IY@)X6pZ?9y%N)D=)t{0xd20BYU3HsfCRPUc@UpKg(v2)T7yRPj)pCF@W#x&e zt8!@RyJE#5r4X;?1VwYoNbWCDz&r@<0*MNthN1Jq;mUD9O-$4P{~vuWXaur+IA(%l z$^ONd3ziR)%+(>M9G5&-D*`y+R+t@tSRzT#zI&QAHhnzE-=*3$7fro_Yx8@D&7ba< zY3Lr+`(tI=iViA3dFJfHQ+mqc%%&^+1)pCvM??S}(*>)CuGRGJqnx{-*aK>zOQKv9 zAPlw?oE6U+lXzu55g?yp_mJb4N?2kwBw&svmu5?O5QeWnYzpfkpfd6LjO!Kd6^aiY zoPvwJ!ya*AHO*hUyvEEX7p>L>*?naFt9{X}cxxjb$waelMgGU?pr4qswU=_sqZb)s^y;bXPoC<3Sh+d>wt zN)wQS!neYvz$z1zO?wYw?1m2YDO{_}t6H=r!_EbW~-<;?W9} zl;er0e-IvuUop>$%1wL)+>98XDc`vuNCi^22ki;X6SpGzJ+?69lEgjn)DrZ9VpNfN zqm`k9;hsSX3&07ICqX+L=1x3`b?R>0K4S+w{I{sqXqQ?AR&IWd&c;g7?GYU;lD6j5 z*WNmPq9ni=%8w{Z3hkO2NbVmPNLK(IlO4G4ZI6AQ6>h^qz0SbX~Ej|oE~IE_l5>m+4X zc(?R1KgQNu7w}8^@P)fG9*xYY{6b7MQAgLbQg=zzp`21u4%M6SblURgfrb|%Ys;`p zaFbypKyi+EnpsgS6YhAd16(0I3LhS?0iO~$krx6A4nPW*%{MNAdTo%rqsJ%e5$J-k z@iMXyfig!cHwa^6;hY6*rbloE80Xq-LEG5VGjDf|HYazbnWYSz<`)_;$2@jomGi1- z&U+R~=lyDG6P7*--c-IzLJA%PY-;AP_Rh{v9R(fou;zZ6It9To_ZSJEmQ?GsRj~G? z1QATbmxqa&x|RM)cV~#Qjm{pfMFe1y;XpsdF~Ep3ev<4WM=VANSLzcKt(2lLMwBXO z`v`TD0YAU(7_%tmd{D&03Ck1nKl0r5@7|FQ4N^VzVqZS*mF~P<@nGjspDGhrb{D^m zQA}z5lzTmjB_-QkDOSuusJRUUeng@GB_Y8_BAaCPh1_=Vj7|()vE?k_LPSqRB}u@B z1cQn542}h8m?#nYNpiJ#3nES?CxsrXB}W{gFi=KLREvYZD6s6Jc^a|gri1^VwSV$U zetY6K0|+UXpQ(oN&^p??XyKIt6k^7AdGXwp`7-vWLbGeruV1GgLwa`Wjd~g^7tIH9 zLn32E11@>d3}NB>6!j)xy-tb5;-J7qi>wU2p@Btnjcx=#AX7C^wi6}-6hX!yf)_^L zQDYGcfo_q}ofOIvZW`0L@8$c|PQB}UD)Q09roBAg*w=h)ysYArl5k20S$uoj%993f z+C#57iZ@MvVi`zcbK<#ZJLqI7&RJU`sRCL6mf-poTtprXatQW{xfV2fG9{V$@51<^ z{NQ922{s53yM=#%h(?@W=%-|cJ=!+PWO@-9hY`1OS?FKx4VJ|I_*uf-d26OytXj!u+h0}=u_MtBFd%u9#0BPWy0 z6C6V9UuU_-!K>TCXiLR}1c5k5IjQ&$ZhJx>@axc*vq@N8lmqxuc}NU{$no*4EAa=5 zqi4Afy+7w#y&YS#roFBI^q24@OAOG73TdARiC;r7qtHOtWBm3$&|})Z>$5l9mnYD_ z0hRd?^wDZ?*Y4ea11u5XmYxqJfs#s2TM3X6*%7nsT7WD=6#)HygVZcYk&XkDrBL??7X*;wGOzkn8#$GD7}IM#IxHZ&?A5ME+* z@HYux3+F&mfIFQjI4>?g?hUbdP>j%8QKMoJY$;xC6bV$e_|)*BvSwOHyeIex&I8nZ zOetfDQA`TCEwT!ZERNaDtvesQ{n?4>ZNAO_@%_o^Z!e{t?`|xE_F5mR^EzfdyR%t8 z75#O_qWQCV2IWXnY>f(DgF6vvfrPE%j^%z3^%RJwOwT2JjZx^b7Gwq)R2&8mWU72_ z{x<#^NsvZ*&OlydAcTK`O;DuMxgrwb4Iy}gHiqnd>6N^0MvGU$9W8rJ*WIlMvg?n(4`^=2Dio^ zBb_%j2L}iV^tggBpQ#8hEGV0UFJB^qBtT0<+kggKWPG`31Q38Bg&-}D9+)zgC&pka z*-~Qvg)_`9Xz1GiNbL_?hR*HwRi`GwKMwi)7vpVwGa-fB0foG_*z39>xHr-->A;=J zc?EhYJrn||L@4+{4(VD!WH?ko3qh$7G;-Pi{YlgN+Ai@!`;^LRb?A zprq!}h{%v_=BBZA$h9Xg9+4r-iRI&ImTUjch>gn=+npqPr9lUl*qR$E9$2`>IssQc#*zfk8cN26pZ6YnLt^dcmv%^|3RdY|*T7Cs1o} z#TH@OWO<)G^H(j>|n!84WPioVmFS3nKpu+A|Ng z$8RfN4WZ%LCl%md-#05@tXfa^>+{>-E`ur22yMp9!g-E1USbbm%jp#8K$XB_X0J-o z!|B)pYZ8Oip_5S70w&2A7E})q#y}m&njp}rfH*2?)yQ9=;3ifOeHK_75ne+0^;~Bb z9)559jG2==hu8l1^bb$Aet*qyI;tm1;I4?T)ki7a>Kl%KL|xdc;#aR$TqBj48Rc8m zdQ5QjaKYXK7KiK|3K?)nB>qfq0++DC&WCm%j2M`Midr;gJTzwz;(oF!5u$*^pu&U! zN1}!YhJA?!lLbP+6i#>e0U2&b(5cT(Ni+0(n+>IBE!Lq26NA{#t@>yU)mpNEy6`B3TqQJloSVt|*(Gd&&fMIfij40Hy_svy5H>`bmb&F+2z8jE4W) zea<)1246E_0v8h@>dosv*Y#6vSD>wxsG)o z$G45sn8995`2`0SF$rw}2?v%EHI2-Y%xS`hloiDQIc7`|u?s^XW0)}}%S3O9eided zM*t;8xq#LbMwyxdC=GC0>~MSscGNp3s%JZX?P}G2+THYtK`U=~+x?MUB^xm*Jimq7 z5L`KMA!&a3ipt9KJ~03PX$Y((G8fF7R3NGs0{B2AXwh(iBaXwh!0AXaK~JVtSTQ;R zxj~sBMNtVL37N((kiQ{5Vl?m=_Xt4cD}kLrM@R8P%Swd-FN^3J>4k{M7e;)4Gp_aT z-KTXc`N!EYyCf<3z3Rp<)Zz#$6tO&CZ zE6Ds7#7GR9>vl^23vDuI>x%QkM*3u$>wegDaJJijtGos!h&$&poM#@l?ISJ3h@xzJJ$ z>(dx6r7o@`tJj}YhDwzjaoyrLU@@QH&^S9!a-;L4#)O=waTcvH zH7b+J0Lkpo{7Qx{QO(pg>W-(y2b%yrW|PZ#B%_PyJz*^f+Yo!T(u{I?OT;d;GfX%n zGbbMH9(M{JvCi4c#{NDnyU{P{9mly{|GLrkT7~B;6M7~ZuLId1sb28lJL^wnmv576 zH@2lH+eEjx5_QELrg0DCDU!g+E@x9hT%qEJCgKtyUxO--iyH466$I4=-?F+>xCp7m zov|8{r4Q%bnpPhf7HI(?Lh#K$M9Yh?qIS5RxN1 z0%wCX1L@%SLOaIcjTjUA68bmxi>F!C>yPrE_KOR+A%F>4r|!X-ulCN`LBldJa@CQ!^%YScxQmF^!8o2JMBzWG+@s9(i3OoW>Epz z?YbSK9LLrj`nU8LV{Zv(McyVyF<(5Zj3gmJ%&5ZX7>Ef#I)bxD@$mrFvy17@$a=J+ z=Z7;ESe@*4_66e$`CaTVoZs*i62Qe-hi4a{n$fw4(m~BmfBN2)vI}2nzl^9B(Y9No zdbj7h4K!?i72>#@kyp(kY1PRl+Te?e4=t)nS8UJO_2T~xd;x{$f1cYO=$K=SO)NEw zBtO~$=~0>hBtd{HgX0kS;^x6&hF-=6)L40m;yS{AESYu4s^lzTTp8(A-1~@O5%n|A zh?}LW*$*#PfN&z;3u_V92O|#OH=j3HgQ8Jv0HtZ*xv^ zI8)=(%nI1U>xo&sVr-k$z4uvV9ZDNDq;vgaM-Lt{_J^PEV zZjHMYe#3x*;7^p_c9b6;RwKtvo-_`L0{tm!b&!9M1AH!0mT`0gCP{#@WV(W=iItaL zkIMzB0@XYoMHpjB1ipPyiqfXg_;RcAF9C}~2#4v0+rJgO1~3-bqj)ao$2PF)_vi7Y z>5V37-{$ma-SeHpPYevEx_Pn+qME2ZOTzwBasT1%3tsTFSn>9~Ur@JOpI3PMltxVL zUiuI0HKa%1PB4`+j2X=p{zRHvKDNxzMP~+`FL4m`GrBhg-V19?LM%t|5vxN3``_W%Z57kKaGrmuw=BCzCWxnZa5BsK; z->0Gbp7^9Hr-B}|vgtFpL$?kcsm;(v;z1&{4(yic%Lo_9w?LBxoC9JY6Y$FKQ%+>S zQTTOy8Du6iqzdGj08eUss8A#%=zj<#;eAQGErv(jP_%JiSNOK6wLQ%|ed=u+@$5it z=UPo3*Nh+X?O+Fw=7!T+nq(7AaA=lRW&cZK7oA*GUaFlg*uQy^p`~HGvEq+Y0Cg)l zm1)jwQ5SMNQ5#6oD1vIl|1<*#^mtLM7a2E69t7mS7Ev$Y8W<1g3HTzH5M7IK#;|Dg zXT*&GUQnSqqdgy=l?@mVZ8ZKH!@;|1Gt$477)O8sxu?qWZi#?-T8Uki&NfQZn8*w|5s` zkVqwd#Zi8ESb^k20m9?CLbs4HEOHFIyknCKzG%qnr}4&x`u!UVIYuB6V#3)zZ*E-(1Wt zJ!)QSPdUP+uCjSv`$6awaCh?q-v{5ftKM4`ly1DfHSq#1O$E)hxy%-&43PR6l_E`< zupBKZ*f^%(+;cW2O5hURHGMVr_>tK1uk~1JUYs&4 zRmA))T0k5rpG3KwZJZ{#j-LAW6sT;OHHyL<msXNW9x*-R>phjPGgHl$g(*zvX7IN5){(Ll zoSy1>Kjt&%n3BGse=$ncbo1di9@cI{#!hi?5Dpd11b8C;AD*Qp${cQHC>eCoSXpsG zKo%%(g*k)J6(obSA)Jy@j|PM}3<3s0)ksPJHvw^5z1iayJh%)D?zp<@SwuUl23=m51Qj~J>3-ieEh{>d3h znxwyABc_*?I887V{$aX#0Agqx6zx<~bF!aFUx?4S4g{r3O+*Fb{kc0}%Cos8RSPk8>`s(tyzpli4G zHm_KEgO}qrqpGGF;+UaH;tpdO$u6PjqdAAM0|SQE&~0u>RAu?QpvVKrfyS3)5sG$q zs1CSewA;J~+;$SONteV_6JlfW2uWfBvOLuF9n<<}{*%7#e)Da!_f4)fv2~5vyWTh6 z-21|==tz+J>F3S>z8jYik5VtCDLkK{kFfr2u$#vKZY?yvRN6cXst!&o;=g!Jwo1&T zDCB{IbUYuAj*LKp2GDg9CqkP+*N(B4cPTa;aAB}X>QitZh-ZXea11aB5>dw?09^9Z z#@MB^zPxp;?SOS2CUq^wbbVNJr=j7KvB)Nx8;7!OR4^_lIBQ`{6&1+cQz?GyrQg$& zRBG0w;G@PVIC074hV|^ z9IG(`89Ir7a~}Mj6Z!1IS(}t8Uo~_Z5peAK>dJSbsb+r8%U@NWjoD8a<%i8z;F zR}9>)yex*0ijYU~L7+HcBNFqELQ6T#5m2&o;+{K|{


WBqYX{&z0U`h8-v%$>$p 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�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 z zq&$^ZF2n*&A&n}?1cN!0lPJhhtrE@-)C`p52i8*3GAu(j#O3C}}TD3dqR(sN61Gpe-{e&%gEx1<$I4 z*rdD)9{qGj{o?1+->*xzfrEN>1wf*P(*8Bdc_EhI$87h&{Sv4j&M{ObWF)4D2lH{H zywXxpJo})n$O-^R^;3t zZ@+OTW^}J+JJ#kcD;=En9X@6;iOFMPQf9xxY<$7v!_VbcVltD>WWy`Kp^qLI2OCD~ zF3!SJICJQ*#WH690lh8XH^T-EyD%!j(}M<)d!gOGS~5xbOgYELHDn5;RA^iH*^3fH zdxHrpq*8JbZU+c|Rmv>5S+K>5B~Lb1NLxN<)_b%2y!~g&I9m!eD6O70d5dfB`6nHAE$JIL%WX+I9F+?iCRv8gF zkSyVs=j6g^?r^R*3G+q-5y;AHEBxDhpNXx zhc6@+0vH3d4j@=2uJE;>*f4L%&X+)ASYI$D0{JJiG6JKEq_Sjw2lOnjZ2oCg;mSIL z^pjd8OVI|w1A4i%y~CoeRf}J;BL4I{SzVfza{Tw-cI$c-*^?cZ%`!9X^qn`&lKb-m)J8 z6dW+0evEz^oC%>dGZyMGa-eLOs8yLvRDnnc_zJg(VwoZaUN*d15`Z@_?C0+m`FsB9 zZ|nZsr($HnaN&loW()^xm@T9n zJ^=j(S2^4ImQV%ML~X+1g3BgzIEgBeY~$RA;X1-z?PjCHro6^08|pI)ca=rK0AUGZ zxzhOyx81kCe)=S2qC?TcUyN@);>9p|VVQh>bpsAgnOVoJM3?mew?|9{P|nj1Jex9t zKg^x|&BhFX%nuqiOcp>_hzEj~m>4>fAea_|`7w?p2zk+r>3WlAFqg){0~m%Zj}r+l z-qiiLuE5u!)&cXE_(<+Va9zZ|gCr(9PdD!Rp4IQxPWW&@T=L<CSQ~~RKHAwJrRZA<3n|Wuw1)Jsl;$-VM@l`Vyc4_ zj<65I2?hXnzlmd-XK;Zj4gX#3O-yH{D zX2r&XCmo$-I2PHkaob_@?mc916-g1r*M~`f%8hPb1SFW{H15p8Nu;cWq%ol2)Z>7P zv6T^(Hm-^wGTyM#s6uI-MW3(iqs>zacKAo&Z$dN5e*i)=uoT5zXD$#v%fC$DJI~$q z{i?5RYPs9JcUO;%KUK|Jra3r8?@YEj%8W}mo-r-EOuG=3HG7(Ji`A*jDpoM)A(rZW zn>OoKZ!r1Mhb6LLNK|P2LPtzEV?zPWFwF|ae2h+s0<_T_AWSA0w90C{GpHJm#W+K*T_W3TuJqq==S}2@ojnic$}8 zCAji!pX7qodLu6U>3oT{kj;m2KyW zF&4#>hTd!j0(tdh;;PM4ND(Rh5ssj2L$LiJaqa}x1L9ad^Pmk|F(7u?f-atjd?M7OH2o+ z^BX5HJ=WzPdtuuIs%CqN%jGNaQ;mJt=3ET9n10#>D_xqm8q}s=5AR;i%=3vw%)?1* z08G>?w8?HP2~^ogqLGxH7XxLRmw}pusX09twnZc;o(+2+82>cGyfQFLFSrQu^2NbZ zyf%@g*^>$=O0M;HJhQjN<^g2}EPC+2WqX28&98N$>W=n?$Te5eJQvu%T=LWYmQlB# zFNZgrmx6dA`oG;qzid9zdeV)`8Oix7F-iex~Juf{khnItCR2UlW*efKSl> zM(;nCl~ihKlU7%so)3+#Udi5*bmrzTYdv;;&gv-kd*^+kvkzvh&9&TnJ`vg|(D=o# zqH6<>s?EUrwbhLJpT7tK1c0jeL0BSikPQIBCUpd6NtyUyz{&t)tXyE0PardA zkm&YQ`2u}lnNRSe4+7i3=ED~@74LvY;N=m}D8ljH0~b{%CmtVf#WJN-$3C?q+DvVh zS!8A8+|KpC99ASaJI9!oMHzSRxR{Mh!inMgIcKjjBhS2d^zb2tXzO4(x8AZ6ED6Iz zin!**ehaqE0t4Xrq2AhnHGuP2l?%C9oDxReYyW+1_}3MG{pG8Mo!|NLy(-;Kc>2!H z$BNvy?kkg17?`?qJx*6<@%}7icldf$iUxyF!O5>;(-!sWG(iidwM@X=tfQqt1Tcl6 ziiM(B{jdqqPm=kJvq81OY*7hCYvcmyltsXd zK>J}+LY{Dct=8HnPg|eww$10;15?WFbw5A;Q$zP+;H*jz4o;D4*=8Sr?A$Ub@#>`9 z67~P0vPR0AFPBmh9Ypw2hBSaT%HMtNSaj~zNmT;KY-~0N1T4LqiubcajP;~ zelh7z)c9f7`VHJ=n>w0#F7(1$_BWjwjS}hl;;;?b*&%w>vw0iX-^4#KjVs;iwyop# zYt1G#aDPKY&hP+FF1aHC8W48y& zqcgLtSZc_uhZ||3@?oh5maqMPu~f^@9`)MdfP%jc3Kt*rVA}bD%22W-1o(`kxN)R$ zG(J`&6$Bf94Ul6}hd@T?dQ^_A;g*;UR;ny|aD_F1Q8U$KJ2$C@Fn9wsF5;F%zF`3K9@EEW{s$39;qSPCh6nY~Eg_q9w9(a%T z18`E3c1=_9e&+{e5sPJt7kw8sKdgnSt7ZpwEHG>d$BW&~lQc-d}B++U~vi zQ2X{|co_PDy>Ta}E}-CTUAu9kCeqbH`#Xk?tK0fkh5hk^e<%>y@X4bus=Zex$#&Sxj_T_2)n!axVaod3NmwD+7b9zz zUJ8;Uf;BVzL*^z*bQBfQ4<-X275t9xpNLQUjSz#kA?_Eq2-7#de1a7Px@r`I2Lhyo zUllI^`Yo1;vQ*>xfu=A>(d+_3wGaO#IBf9lq2Dr_W#YsH10p-7xHMSr{9L(QWJG4- z|7w1bFn9O+?+2s~pJ(6oE>Brd(u7z~g$AS;UChOqry;vnj0oP4tCOZQ1bG3==oqzvvb1*-UK~5mUeIuVH6{` zWTvg#f(;J^JMmtFGd6Q^{}60J6X)jCJJW%($@Ufwe9&;Xlv(vs3$-KA9 zT8TWoxop#N`$}Ztyy%U~Z4b31PbJc;c6}-l(0N9{a6+W1r-+vZTm&(4Ie`kWk#KCD zIuVH}DIgVVdw^V$@ZrMg4f+8^6lF8KNWGy#*+-_iMb``O3S z8uV@J`pMGW^J><;8MxCgNbOdi1uv}f z+O%qHu=_MShwom!LA`jwxaU5PQr5EY zeRIN>W*#9ZGRtJJ2*VmVH+ciHj4)D0b2Mutb;M+3Wk4--57u}KY6!cA>CY0s4hGZ1`RYDa-(93uPv4+9H7ZCJ#`_Y*Im}IP|Io)hNtfCIjB*+%#vk0 zY}sO)_L!+K?!T+wm=)jRS!?2FWnY177Z;qJrSI09T!rSY^eVZwuG6M*eH`hyYb=Ds zqy=FBgEj>zA#%XC$T~YgLep_k&j%z0BLZI?I6E|oT31K059 z9YQ)|N+3}zE5yd-xRh$<^~D#PivNX7|7JT%v1`FK`QoZ{0>)FMpXBQE1$Q4j;5t4APA!^W%%io=5N392Q zLhI0!c__mu2Hl`P*zLex=Lx||K=yFx<z$_^K#}Xyd7S z4O>K}rXsGg-HC97*bJ5~%wBlW^o8iM*`E#>+28TwVU876R(seg^vi%Ib;4_n>pX4p zGh6v+vLcUU9sJEiOiu=cgzwK`dj%%$9l0+r?(5dBdb=j|YS*vL=R@owFDBUZibXVg zv=lV7lphf67?4)wn3;qxNYH9wRX)P-qI4z@NfzMFj!?{~nOh;&1=S}0qC4ZnLYdcpHW-Jk%z&SWkw3?36v2T5F{>;ENT#7Ep$T`O-*?*w1bRL z*~LQGlqYpn8P+jnL~bfCa)Iu6y!dDxJb(nL5|9MLTcQnFlM=|^F|o(2Z(SzTh(B64 zF4WJb_|n&VKk_#ygtZ#wD5>w9<$bs0Q65v&dvnDZkl>ZV+>X#e^)9t806zd2 z$|A^-v^yYUu(~FeX&Uiu>37f97KVAlrR5h^*vb`b>cKT zTJnDQ{}!)_U1h^a$r4uI6Sd&j=d!wmaZcii$}9)$F7ON*&W8SfDsoAmwX$< zX%K4E@|DGN2XP1!8vHM)j*#NWrjTZj{)k~Fjw;^7Qie7(gg~+^?ZWPcF@Qi2if?*k z=FRAAS?dF{0r3gNBb7HpTGqqDlhU?1A1Uk0Uw8f^{llH^FZWGf|6o;I4vP21SeNllDMmf7AKckL?>cj43Of_hERb7C?P{E_*=A<#VK?3UvZVu*5(S(4} zorXnbOiViwWU^R>v(l{o;pU(Hy=i;1H=MT~oAo6A54UpmqMpdD2~f>%PW{@lam@am zQ?g%6{Ixk7rT`1_4?5}>_+@-B%1zQU%h3R3kP#~(ITHl=-(xKg^^VLYpaM{`(TP)v z!W?042Bri#1#3u}bEYyhe6&^IGsIl>GEoRIQ^042qNp-e>X*A6KX27As^3pT{%|Y& z#_Cf&JI?>qXo+$i@Th}9@x`XHTe*gs(5z@E&*G}JWS1T7CgT$wKwRynO50w2iNQv2~>kWAT1#=*@ce6y#}7u;w%0a7&X5iR;uN&JqJEZ-+Z+E=09uispEXZmeth0IyfcY+RFuD zE85qwBVtZOSSi4UZ9^r>4P0^Hw^6j=27<#nWgWXqAd^e)3U!(B1jsRj zY~=$2kf=+5mRuQ-J9NHFMHl=utrM~uKn!A%1VHTJdIF=_?$ie5wmRf|<=Lr9J0wSfr*7DsVT3#!SE_%a|` z_>B-v@MZQUOEM6l7DF-b0aJo^$f``%Y?4^X{{D{dmWu7N=eN#_<_xU!L6FZc&65&3 z%(V{&;kPbZA8Jy1Tr?1`eG@YK>XdZ?d#!d&L#z*Fa%mu2bE#=PU}s`oiLHXUFo&*{ z>J?m0&Xyo>aMUOhj9>u$UFZ%Iay)>v_fvaf$wXS`#kGQFi_!t6FdPZGFiGw>+wu=% zio=2McU&{L!HCpv_SU}Ejf3?aP5n=L4)1=RJp~O@Ew!620Q+?kSIL zRTijRt{EG^87raHYQT=A1LkiiXu;)R1443Qb}LaM3(2rv%pOIvT8d@^n(#TW0 z;TlUZ<2*Lx(TkNOdu_ZlbkZlAR+pLV^x^w?Lz{!slC+4LW?c}lainx7W@uX;Ipc_- zHp!Vh=Xw=d0!@j+-U2VaT)YF=>dANsb7JZNJT4USWcUf6*%&?ZFc9ns6yOZZHQDnA z^eOfnGEMZou9`65_m5X0ur}OBSZL4zNTV=7sY_vdkZxZ4_*BCWK8d+oa(phUReM=xQ0VDzP26{O;*~6VD)V7BoY=*0@{C4kCJ4?D8?fes=|*`5VT4YKh7?Ew zB{?S0f~Zlu8lI&ZIx$jW#}rL1v}GL4sZxlB2(dAwVV=&%r1Zvo0bMCoD5C_RM(Bas z>7+3O@$CA$1@8RZbDMKtrMSq+2aK*7D_d;FU zxy@~RFktNN@6+ua&hF3ZYTk@97uS!uZ$AipcscMyx(0za{mN&~xX3e^noOgQVNEP3 zG$08zFz*FT33mjuJk6Csu`R$M)MhB&;nJWcS6PBG4sSUWe`tB&)uPLyjiq3&%8-y# z#B7&MEs(gp9kfZFy+5T1^hw ze3u-PmkM+>By7!+3b}k%E4Hs!wQXZ$Brq2x@ukZpt6)M!D+YrBqjC1(Fxg?nx*31H z2tUksIB)omL+H|S1!x4Q7m!^bg}|UdPG}5&aB6|KT@?WelWJxQI3~d-@^|!_7dB-_ zl@FhHeEx1+zkg!0IS6vt~ zj{r#)u`Uyh&XoRDI8Y3VVVS6xkp&uxeH3v@kMq z_@IXQEC&~?jH2?-+pkX?Gds?(^vzKK7|&#O07zZHO)(Quu9E@-(LG=2=uO7=;AXiAAL_Vkc^DI3zz^1sg4b3C{qF=F3o~3K$O>oJaDhT#xX!_6gM@kS8GmaEjQ=W{ zcSZ;#cQ8`~M38_08@Wl0jN~rs#WYn`uCkF3^}~~(#_9BT{G(RissGNN^4XTzSv4wU z9VuA9$%VD{_kP`oM&))bJ6y>UAG`c!K4-%nSE7Rq`-qH$bHn=AfpcQ!MuR#BzT<}U z4f=&JMk!ip%qX65@6nn$+DSKzFpz0O{oylf-5r@6PAR=Hy#t0=@WVC3g{2d36zn1oU zg|jO^8|Kou#2XC;%$cxklzkC)>c+mZCVOD`$}<=7sk1+2r!QYiH2BOWp@AaIBowfq z9GCS@UA(;q^lpnG1D}l%8cS~>1A$0D(cqPU46}k=0th@n%?=HMj|7)k7qCT-ln9EX z4U!~E$`-7y*g(NgP{wF!JX&} zcYbbLFJ%t0hu=I~(&TEan|*iZtGooK1-#sRL?yFnUpFN;Q3KSGO+Ku%5OWUb1@{8t zE2SB9G%!`n0Axx|RS0{Nmd6+_0>MHj#fsevTtmZ2k|iY%e!AcY^lNI-sK#&ymHmob zWav71dIYxIGP&aP4C`0x^3pXv?|2VfH|DCtoN*QZ`q$P8n9mizWvpvCZH}@8j(q-z za=>n2lo>oWa)h2Lhrea4nbI$QE`xg2b8la_3A-jaM0`^E8$dtFf`RZM%{vq0xF@7k zX4BTXfP-c1%!BeFA{V6)G&QVhS)M_FLk+>d2o~Te`wv)AK(QX4jF)f(@L_iWPj&G8 zU)!5iiru&6*yxo-qpqxd5jAPK;m4j!X_u7{Rn~l4i#D!FeZ?VMy(anpJ%kl|bn4W* z4_yqzo~m@A;7UY5RB{aFWOYm?g2N;$2DQ~BByer;dBj-MmgF8v90?|f4tcB*oF>0P)xIJ1J_ure9=n0?C->zKQM-ZPkIO9UG+ zVR@p(qBsC%0(LW`{s_5vpQsD4Mj#ZBbeI>>GZ5tg3UF?4_=A_kQn2#}_d z#ko+J`Is^2A?oj$hZ7o#8RYB z9P{a)iD%;me7LT6g|yF4Wi=WZICb#9rveHNwUIsaHXNKn_wFfS-jK&>C-&{j?quSk z1Ger{31Bnzuh#mWr}o0c6-x@V*wkh0`GeG`$sFn?x;3g(t{5&@7K+UgADtTcYtppyE6cC+_X>Lw zwDPBM!Fh{K2d8^;HdQq9%*_jzvT}B0UJo0=Z+IK#>;lQZkzMqQpG(*7zJq%9hA~f- zOoIik1RtBqnO;CfER+L4_=tF*)nPURe#^*_7)5-gm1CzQs3l?)bX`=-SfwH=S4W9c zEQPACbe%M0lx;vgfbFQcjmr7{9v6?#rk!jPcCh`QlgnJG+pt(doIRyEbis3si)3*; z>*4ujx3Vketgz!pQ*HU5yP=;k^MA#GL;Sk?(+T5FLeE4h0Z)QO$EIH(b9R@q>VgS2 z6A0^uCHZtRdqar<#mg1;3F~YyV8Eh8&Wj>TfurLv4N^t>f+Gt6y4nO#L_uh@`(rK? zuKd}|?PJf~`TgjklOMLs@LaXiWvYoCBOCK)|1*ovt=Y(4m26)u zM43PnK0};g3rJ&)V>3!04Pof=QC|?MB#4z>9R7-VzK|%0t^r@0B_1#{nX_ss9==$< zpc95-9=?q$I1_3NDmBqiMbc)oJSK%oj2&W&eLiHtqHg6b4PUtQ;Om9{p192ZmF#*n z_fzwNoQ*gam;)_8Jdm*DK!s*KhWLk7s5!w3iy0P?5J2hZxzeC7;Mefwp+#tjfn;9m zW62{Rm7bI(AQk45u&|8qj93^M88k;|D9ni1CdCF8w5AA`7zE$}08;@C5L^CGW`Qu# zuR$;Z(g5rm)FnJVNQt`hLK;ofH98PYXFt${o_`jBQJ>RRt<;~O9Ieb0Kz9}0sY`n8cpr4zN za3~=Eh1qg2=Aa?avhn6C_U`Y8U zX3(ntpXkfRNst(Z*H91m{1_7wj_Eb2IHfx!q(hR%>aQ}w1`JKO`ac)hw)m4D1Ezl4 zI#n4rJs!Mo?aKV{>xi3cA|vtw0Xk^rgsEM$J|DbIp>suXui%4V_U1_*LrZHKbp6uw$|d!#-9^ z5TSTiTq8a(Q*#&|C|@A9pyW1YG|b4sb?{OpGl3rG37 z!GFXU2M!KK56s*!E}^tTECXdh{$-dt(G`J$fMrrBu_~8pL(4L$EU2}$exgysHkT{@ z^tO8o=Zu+;e))G_B*awK0kxThQUXc6WZ3H$xJ8TAT z{tx&wmPk36E^HGca5jh3K0{Nhk|YbWpefGKv8q0s4eKsb%!g#h4&aOo+ZAJv*rk5%#jC&L?NNUpEjRiDkLjh_w!T|)#j~|jGM((}gQvGQ zRW(_;cVo8S%ptr@+Ks8N&e+h@uU+0+NrhlzXkdV8kg70qgat;1ffh|=K-k0i0r(J%gQ}BL2;jq2^VDh- z8ndHIFAQH>qG&0v*qYtLoBop#viN_O?V*jm32|SQOPe#bh~?; z)PNiuN+>mU9s{e8pq<$uS=&tLC* zxlh5=b!y7_1W`N%k75n)-|vQJp}_L&dtTqk80L4;O2#{W2Q625J)F}Njc z8K85+a0mAiji#9ym^41FKlLYq3!@N1j7qDI`vIeWgW*j}gQp(H5lRCO0h=881nYu) znJp@KBkBfEOOBZR`>vr4JdS=fc4x88zkl&$%hB^iwq;NM%&eNcBMci&@oK`O(=OBY z+v8~ww>KxN>(8Onl+~P^W|4$~X#wLuSSa|jaBF~G_$++iZlY*Wt7t(26%ok4D{M9} zUfG0J1&yUJkZ~4q0m2G96Zr1&LxQ(KJ%j-VB^`;TLQLQ9V_q+Lq*Q9+lreXP7jkde zyPDy7lxv-5P+(8<(EnpJx? zFU#(m6SgghUS`Xd^R3{Yy>RM)txltm z)(>^mFMiDNNpJ)!LEZQ-F?-UsVt3q)=u70$#wefWjA;`8ESvAj>Oq{uXbwQfsXpm} z&`ThVfM}1G4(>W2PaG`<pViAsY|l_mUR8xc|m$i>hw@{DZUW ztN6~f1!P?m2dA{L>Db06XBM_(JsTa9mj9v*-x<0$t$bVkNJstRSE--3uV4QmV6PCV z@W5hZqm7dw3e4M**&e9$%yG_jd2>32<1)A-ok zGtOimu}ya}7RYPe+NO!T0If+UtYWWzJ-z!nBRzx^1j!Y}JFOZj2S8X#XBv4zE5V9h zz${!0w?YCGof`cmQ4PqC36Ibi9svB6nGPuuv`0oXtX9PXoSede1Qz5?Vwu~a-I9il zZhrH{_bJm|%luMtT9u>>S_H_A8-9HE{n3M6x4u=T+o^3=-<&Y*R#D@P)T-IMxC|R~ zwodURf-YySfAnI6{g@_Z)9S0kbzf!#74!FuKya#`H4(tF7=Osz7YLS`N{34`0K;$w z(Fyu%ALx7-(8`og{^M~@hdbMdh4 zyFdPV8lOKWnN-rwB_^-3kI>Rh6xvWQF(biYhWeKjiLi^=IIE_tu?rZIT9+(Awl^?XM+Dl_z*7tGFx}Q|==f2yY z9xv?XWN&CN{KOKgyL5O!$d--S$$kCORkJqQLYFRyT1=zFx3q25rg2SY_Q}bqf|Z0q^wzWY1C9(m@&ejTb^)NIz=xYbhv>zuU*6zU1hSlf zjiN=KyhBp2+W>JAG__*v{UXQpyBq6Xp(^5t4n_4jw!^J;WBqv}8ejr2)`Z8q~O5 zXP>$tOl%dP!Rk03jW{xQy?tlM_(kQ2F8C=+Nb;VoxcxhSo^ns#*HX4I(H4`;B@-R zxEe;z-;}X+xS7JlSltPU3>HyOd*NA3AY>~5HOS0+fxu+~b}V78RQR^CU~k|9Wf)z>I4U;tl(K?%w{lQ?bA71 zsi*Ro#)Jo6iZS*M|0Y8(3Pe&kbz&6;eawmd9Vo_CcT;9c505BBQ}B*Z9!|81tJBD}(fgjG!8%J*vkUr<>XmOxPE#$##)w2BH1 zLuhzqoFO*V$VXP33T10bFcjQOyhXYqI6z78cWhSoqnUSVq%3b%uzk{yyWWH1zAC*g zZv*Avv}JQR5Rpps%-xqaA<)d%KphA=5TEPN!$`1!DY7MFUMqq)d{=CEaUwQ!^t!y< zNI{jT$0^l4v{TY3b)hg&4$=%!s59b*GlJ_RN1M?X2r_1LP56t;pH*^z`b|bYsuE zITBuCt#zqJ{4DJoc+_mxqAB}enSX%(Lfj*HP-;sRtPDXkl@(-VCW_{9lU<)SdlQRC45?v9}4l&HlU&cu{&s~_p8U;NyLw)bpXuba3>%(NK?8?rP3C?Z*b9yntFfET{2C-EVfgOjzST&8CS^-^g?I;6HjW<>ub_|01;XDq|zx}zeY{OJ7swqEty$H#SR z>GM|4O#u@(?tj0T&FacLP*0Z6rz(_PM$(w4TUS*0{w*V?RBzg}TI%H}{(wMiQ-Vn_ zuOIfSG^D3jr=gS^+M2*EhMEIi51>bGcZi2^7}Ew3#Zzl#2ze5QD|A1DU+DwagTW;Z z4RCZAm;%^isR-iD5Je9J(v8Uj8W9Q)Z58dzRj+vWaK;?X-Guj|gE*Q+x=zlzyn+aEGOGf|7;z zH3cy$Fj{=L``kdZZI)BZtH!0Y8Na;n-`8Kiw`av`C!K8x(tIn&W76I+dAhrn9o=vw z|23bLwuL{=P1E%s+M=;%J#wMe&!eA$qeA;6Q7Y3=^&X5AweE-!UG}x0Du;B*kX~DN zc!8{N)OshhOHAspxMYq^R|uhsEX$jNVntCUY>wQ+Edm4z?N+vPvpeB`4@v49U88D= z&p&s)@|!)@yCHV6^;#S|K4Jq~aLvAB=k^C{=IE7}%!xh}>s$_V#84Kq5|)=CG2}*4 zus{mU*KV3XoDn>|loF0(1qKLP$kMKpcg= z4snv{Doa#ge?a*n$^msjA4j_ltD3e-K1Im4nR`Gq#xC3)+!l-i)N6xbMoPr3MwSBtHtBf&X*f;&Dv+p_{q#I#riZqzGZC1oshe z0I-_Nz;R%S8~#2Zi$DzYqYQ^}zO6!HLB?UNB2h*%2zO)Dg?frkTU0_E{dfepMX+*N zzQxdVE zmpdMN`E^UurjwDU@>k~L&Mpo#7S!p7I_ej{N&~ueAKbN*tUA3ZS9t=Awxn(*v-1rb zUY9ymxQ24!HRoZAJGTTWly)%O4$KOW--mOD|t$oL74tL#nf6DMxA4n$Th&xn|ieMy3M?_D~9OOjjP z!PE@mhKPb*-eeEHVksh+<)G>U;ea6I1ucrHJ!mv26aWI2Xj*@Zu8VOl*@l}8a0(69 zllVk}p&nt5jolLVc31@&ur-8_OFPR)>|FcRUq$Ax@A|w%l*fc~b~5tdMiHf%X9JjHH9(0+m3_$-#=;{Wv@IK+mZ_KtBPfs-P!=hYP}ntG%XfIP9^lmG+Yk z&n)K!Of$k^u7hJ5=>^L@z^SVET(V_{)j{y;u#Dk;V*>(v5P^q8V~D_^A93m+7jOEa zSNY8^GJGz_4jHw6K+%QOT&8_yYsbyVdv^2l^5(>M(}egNG_J*J)~nv4_MgpK)vsyh zl7&&}=W~_wLKzHK1Euy#+*_%Lpmed;i73pQ;;Fpg5Te}VX;Dfd97O4CG$~wu>UapM zP(axH$Z{*f0%H!sfHYR>z!Uw56~h7urIPo>H(Rh5ubUg_b1)Hc(84w`Xi23 zt-Wa2qNA&hdyTPO74!0MN>TetS$iQeAJOyp;UjC;sE0LLM+3NS*rZX@>UHY0 zC+6ax$(O1RPY{4AgzQ7%43G!G6K?1%rL~eKu!9r_EUD!{=Km?s`Rmdd%j)lC+HSY4H)7Azfo)2y1(mgG%=9>|Dt9gV5b61oy zWjG@bZ`p&^*nTFm{PMkBvXRNON88V*YgX&F#+pcr?O5&;BgyF^!ID#BQS-9hrW zGc;@Lxnbl>5@lHmC6*SCSfpVAZpS8()sNua1a29`;+~~>0%?(HDHsHEAYRLohd(|0 ztyPiC(R11k=;^p<=-PSfh8w9RhtuNVl$!dtSulp}xqBRzQC><*M);_eF%`_Ts8=G= z4PK%2yNCdp|6#=oS&heF>V|0q{*Y9*@Kt=_uG5w%c)0;sNkj-Jjpo)^>BLA^YiW5? z{2am@tt*E|0n7y|#Ghl@pp|3nPCx|e?>OV^k$;K~?6f}SdF!ek{o5St7tp4RjZSFV zrS6JY3XKIo%CctmlLVI5SVswCk4MBW&RwKb@^J6ht2=v{VWS}J=cw!ZU}@#^BG`j9{hU$>c*e0S4`X56ka}30k|( zm4*S0wJkurFGD%R5X5I0-cuRFw?%t|f1ruZ=gS_=!PUX~E+#I?m=&C-0?t)#(NKVn5x1C`Gc!chNIegELrZf>4LICL zdPC)+X{N#YWseRZitNGJEJy~#QmqqQK4#J`#jXcEmt2OJhapvZ9g}1#F!;|j4D}syu&*J zKUk&2M)YMpDX11jEWJ7JpcDQ{yb=_Ing&AT5bcY*%OhBimu$Il8>1M&ZN?jUI;;ma zilM9JiilN@suTQ|!MglDz>XR9AW$PruyTw%i-z-;eGVZ{He{UJ;`H&Y&psIN+SrfX z?b)i^jwdtHiJ4Hqa(8OxN+On70SB(#F)Ekc6}XTYeGP$k_u7N|_v_QH4}<}WSoFH} zTDm1?AMzXIRmOhk3h3MocU0zveAB!wDic6?tSbp>RKpAi5VhdsqqP*;y$4he50pV1 zPB~zyOs3(k;Qizd9Qxs?_LCwj^(z)M+wGsxZ6>VV^SH`-ThDGL$fUF@70ib5-itds zP!HQ0#;2!(P2I4G4N*gyasf4r6$cOKHlVwfYk`K4_aQ4&yfCa45d|W#KDQxAC0`m5 z81W!iL>f+tF6c&d=^o&D>BRu}jG!`A+qRH&ebTbxWorehBm#bF|n4}qAJxof|X8gm&j!NcV9 z$N`07U4E?04_rBFeAoOPPbYX8ffL+8nn>euDD{!hLI(wbLlngqkK7KTI*u}|y#TPI ziQ0lH~7`b`-vN|JZ@szx{LX(jwnt4Xb%QHWwk*%;{C4 zQ{?Gl6l8(h=SJ9Plnqzc@rT?VYe%1_Agf-ZwtJ0wRKTor6@P&9O_FEm=1gVF?kW|L zOh3qU)^tzW;{YK<$CQZ=3_5|vhOrQXA36c%-5e~u6+uyGJOSVle6s$II@%YbXzrQ6 zXM!Xn_+{?T?FS6#pSYV51!MPu$ zEE5Yx7|1oCV-U}z90n+Xu||T^us}>e0W4m$nXE0R4$zB%I-|NBBV;DF@NuEGp~``M zPZFZX=lwBWXGNV8Iz%RksFW$4`fE9-WMDC+#zzd!9Nzbx#%A~D(H19P6canUH& zB&{F&f#t&S>zC1`o1Z`KAbWfcnn|C-v5=lXhCY%#R zlqK8V|0Antrc>K1Pwz~Ly}Pi$*Ps1c-Qd^d($(xpNNZ}Q`8f;DUqsApUwCc2cOl{b zTOwEyc|2L2CW?J#RKn0QiDud(1{*;10rCg?PW9orFqAGd%M|uXm|QJpP=*&Clu$tw z2=67nhswg7NQ_5G7GcISVlCy!pF@79$u-xJlo3EoSv#*7?_1|=B2D9{u^R)zcmS1_Fr&p8K>-xtH%*B{dNK*khfyFjkGa(mQtxYChVoh=(vqQ?AZk6FwNeR%br zFpH1;8a@ z05*iKKtdbv0AptdBYPa7Fy02PM|g?su(Mh^`cR-FkJJzMmj1cWk%x=ct?{VuF#O9t zRXZ5IS;mQL(6k-q2WfGaZe?HoQ`25XP0(P+Xf?^j@ zv13>4@4wC&7-z_P@Ar5&hUCtf^L@Llz1G@6oqGNSMoEn?XjocW8W<_1u|;463`>(r z3%er|_YQIKxcSk&e0PTo3tG~6>zn!d-z{CcQbSuWWnSoYhvt_lB`*w1=;^^@uu3&A zbVlZm;l}>>Q;+`@#gvc2?^w5;HLY8%X_IR0G=7G1>BBsPahy~es8Q(s;L+glrA;}& z3TD30t{+O?N(}mOEJWIb!5pd}S`19$U~RKpOO}=tZklV-SCuDrq5Nh{gj_BF*rCbg zf0l$z{Aowmwat!<$SBlw;*WREI#Oom?_A13QNB2~YR6)9H1-|H?6fJdhJl~0+A_Xg zesK5+K@j?J1E4e_w^7aWr5dZL$Oha6ZUE$MI2zjECZjmkxzW@j{ei^b1%!uFh<2Yb zoW_BZ2cuzzB*Xxlt{K8D9X%`ul=tYG@SBrOgHy5j^P>ML^0@fZ*XzfW*me2YpPR2Z zR$GgrZWK31&+!kZX5>1izC3yFyy2LdOJg)HvVH`4)N0YXZtZ6E8*7UehL7B2Fd$MO zZc>zuXf;{s3k*zw4pWwgA$x#XFh_)GhuoVGN{gcAk8(s>A#Bk2$KZ1!dcy1yoiR{e zMI0kxq=9ZAQUwUkc8?CcpE+}M=4<;eXI|;zJMgWYnf4Fk>>4)ViuGX@Wn7Bdm2=ph zzZ^Gzm!eXogq{61&Iz%ib>_p=t6jBr<9aP1J5Y7AiHXs<&OEjn;$#AMaa*aUaFKw` zZ1#yz1lR=xM2`zBz$j!iSU==-h&2MW@w?__2?l_&#uNp4kp|c}PXO95>!R4YeC5)& zU*x;%{l;UT7Rg@)7Ht;%M!emMEhpEt95vynPag~%&ps;qqc-)-$&K0u`ieWR(P|lW zeYNf_>vw2`0Uq^t2Z)-qcM_sg_yWLjccm@obJ7y?a+DB7vPB)he1SoZY&^wWVp9ks zMxL6Y1xggT0);1!MDEuDF~TlvI_B9(Y2lb&d3)E-ac91-{NeRa7Ho2wKND4X9(Lx1 zTSO(6fsV|vA}m}8R?tXM)QLpeqBDg;7<2GQi%0m8vJLJ_+QVKX>jg{z{cp1XO5nM+B4-g@fXE^he12pY=1U`P_;7Fo==kr4z5LL z-nizm6_jO^3J%nflsfd7cnO8Lln9uRa^iZ?>gDde*>^&}iLLI`SiR1%H<@`7lLIwT zmcf^zQzPrq+>rCH+e5>} ze1vw&y!+IQ+FF8>20ks2>nOSyt!Ra?2t%GM2>~jm_0peFU!ju_y^EJkivnf_g>F*2 zr_qbc2DTkCf8URl1CGaR-1qlFgTnmE;NfL@h=~rZymf8+R>vfMVcx7bWAI?cvqbU@ zcg3ItmcTy?!y)QlC{@zYkZ}C4nSc_^#wp-ByqlzPLOII0r!t2?fGnHOhS4qH42Fn6 z^5t0w2#CqJ9S#moogPOaHllS-CYKoLVT%B`|A6THTYj`d9s; zlk1f+v$-Vmro3;NHt<6Hth|>b_QH#+lWmo7A0EWG`B0*QN}zWkc9ABTAJA?wVgp_Q z>LORdbf9@>{z$C|iYKEsM(TcOY`}v#UuryoMUC%^sd?arkJ4l)vd?)z|d9W>^km36jq=*YP&0=JJ~2~XCi z?BF?GA)V2u(sxkZBApY<8fXGeIXQxw3hQh)ZTrO%oLQ6a+ zAa5=_V@29V8eU*Yf|Z=^5#7U#2d}^ajif_@v4FDtZ)&$SWxaa`f0+Z(TdI-+r2f2PE|lo zWoVQxa2OaiFgk;?R{_+EXv*1w)yNP8^(^yq;t-|=tUS|OAtJ+A;pyRK%20}jp(Y{H zp_Rn}TdeE~o**w2xhxu>DH&1>KNar9Tc z^6b;R^6XO1KEPoaN114urR9PZbN9bO{!Pfyn2BFrwP~A%^?ayYP=K*$f(>Vy@$xhp zq_9;BYaLu6G^QscTPIosFZ2|&TiReo#y3`Y@QrW~ktRr7P6#t9H{J1Kui8XOHD@VB;#M+};{ozR#PsMY<+Vv~JApH_X!V+KuRK|M7;_gl|~? z|GlB|A)SJI1a|KZPm^dwlr0bSv;#pIS0dgIt1a;NgWk(c!jUZJCE*_mGaU{lFc)sn zp47)E{$QUXyb{0<^u+1YrWuKa=)h=97)g5Vqy1Ek#|-(Sx)Snynt2U_EF$m*7h)CCAiryf=lRk&9E#vEGPr4H7%ng zHWLPL*GJ_{olHOla8xtT$xN>ydoBy!v!V?Adc}u z4Go7%m}JinEeXNb#}&eLGF_!!pe$y;ScuDqRik?Q^sjZcN59M#O*;P6>Zhk(^|j47 zUyZ8Ga{u!xjg$=IqL2Ny^(*3{3l zrKQZ`@H^F;DL4cjyb&0z$Niz<_sH+MJTLa#A`)gAXk`Og}JG7c<>wtM{?Hn$EgT|b4FI}?Ar|S-U(X-j~>`865 zud&%pm|1`C%}lG^#KtX4M&8I{Hxd0HY2GzkfjREgs8)h0f*AZrv1F1V5dyqO=3TrL zdJpMD1iX+cWbzB}RUT6r=us9AaCw##P-?>w!F8@Y6`7{=iWxv=U@y8z@NOALc3_gS z{L@nQs!6&)5el)F;Pq&dfRU~2i>QnZrn%}eX5B!;c*tN8i#-!H0^A*3id3k8 zXQOlwicN;cuT23B1(Z~=aJ{O>w{O$z$lFhA4~=g#Iilj_}aDMzf~a`v5aS^5PRqIu4zbfdjZbqbk}Ef>0&c zx5h0ovOZK+6ywNNSjLZZE`w6kmG?SUoC;%nE`y%W)qI(9FQk4KC&6s1oLEO|Qk z-kCA4n_#kgyXIBfHEu}CA&ZxX8R@}SO2Mx!LP|Ld^R;!3w9Q^5Bll}zlcvB_`w%^_ zi(mk$wchCLfC!|#7{lsg5=@i2T zYG4KgVt}D2WqTG7ImG|~Diw*?(P&nz9Wnz`V|*n=FY+h;39ta(9=vaDt>V%k{-d(z zP?A1@`anS;hGFN(SHp}c#3k@zK;r>}ht7UnJ)wdnzV@7d?s_z{q^HEx~8!Pc^@3Ne}A@zswYSdzy6IS55^%0=1A%Mbv=908#nvVUvoS4mDHL4$Qgg%9tRb`YiuyW- zzwycJTn?*VQ3)L}6dCl!c;7Nh#Z7`wzVk*^ zFHx3ZVgkQ~sU4C79JIBgD^QQf5-8ebqC6zA5SMNLygR1t+E2zG{%FDa{++kI{deS* z%l4xeXV>w2X<7`_BJ?_}M|*+cA2C2iamOM4_xo&W5Eu9QXzU9p>Zk*Z@f zxj>Fh;|@m+WD>=(83W*=N_b2yfX$corJ>ZMZ^U6jTqNEfhzzX@pPb_cl19Eom92H| zWE~LC5SROXx~DGdaCv9DricG{c)wqdl>uc6+Pg_RyWYRF7E*}7X z;|48TREgU>CsW4%ZA2OIm9nN>&8prl@s?tMPUOXC5!xL6BT{8{Pm2DD77Fh^tP%;> z3d)37avjT`=-Z7w>?9c2gWPgxk@O5&Wkp7WV&OwyPt+D{Or42LjJQ~VQx);_Lc~8c z{rAjqDp;X~PsN5wMas@J*#@E%n?X5s|N2s97~8u&dgLm~7dt&#;`*f#%XC$8=^zH` zYV2QeuUW^VYU^sMn@QiG7P3hIb7eX~p2HxUs$IK$F;WNLR|CT=6dMKx`w$SR18A0! z0>ePkdO9er49v;=NW5^Hm1!g#Dr_k+bHFVVakFf4uX6)%;3;HZ=3Md;|vSGR}8&l>)CmEF_m*L>NF$o4>R1wljf!-Ox&DmF{E zXMDtbi)#Z9U)h}e$&`!Q%t$o&M@x=~qbG(j&=D1MF<6nT9BLc3fV5+1A@~wdJn@e~ zGUSPb{xc>(d=%pHR>qs9L+4Nbr0&KTuj&;q-FNZmIny{~wVUyVn4;1I+y#2YtzcKi z&^Yuc_P2h|qKwF?y7gA)qD{Gya*#fP4L1Prh{y%92$zcbUAumKzyR@u4`c=`+dFtt zq(?1mrS#=P@`%`zsZvADk9vw84H^ptG&2ir55=Z{2{%(^z%mw7MpmBZ@?OuBW`~kn zJYE*z-m0M2*GA^geFSIMllhEl|8m02k&un-AK}2Vq@l*50@JrVo?x6)@Yk(bt(m1c zd4;&jF@Vpe-O?cORAOHAWn2QOOkuf^S9HF#_l7HiP>o)T&kpxa`~${k%pv?`LqSK4 zZ7U!-T`DX$WhQLpVDqqg!jr6WWL!++B7H6tF6}d`WctyzvB~piY_df#lW#O|&8Qzt z4n^p-MRSJ!2j6J=<;7t`DamBOu521)Y1*K1%T`V6aYbbEz>JktLKOq~2Hb+Af?5fU zCYm$|?K}(DA1_`gwi{rRe+E^T!zg~wew%*Wnz ztbpbG`NtNNR{A|7gW29Q5615c9&yNcssF>r70KPrd3S?~tSaQ9? z2#?0ZAMYBP4pgXU`lOyAB5B3iO3hrx){;J<)GOxAgK@SZwm)FZLFw(P_in)S`~rJvutBq?sBI&D&;MqkUuf z)mQ~A>->?_j#D4?H#29q^1#=izI^Evf}}!D8*8r(q9>>>q$03hGgQ%^1K#6L$N-2| znA^Zq0$QX%R_r^_1Tl!z%*aay4ahyD`-JDou#BQwOY16k@%eky%Lda9WMnPB9p~|H z)Ab3J?eR%x*Qx2&MTqAgKY2ubVjp_XFS*Sha>jD4uFOVQ^A(y7iWRXD;OD`*Kp(+e9(Eh!Qv|E9#Lxm0 zF&O8=7Uzs1v$w9|K7$49ipj2}6V=xhH> z`&XYGGgQy?A9@v!W=&go_UO{6mK(znun4SG*c72051MS4M8ibK!HZi$v2G2+6pnDz zxJ(sbRT8u4Cq1-6o|h$lIAaZ97r3}&99|sjwHQLtwdiJXI+;g=zEh}|-<04TmmbE( z`d(f?r+cZCdiI2AXV(W=JxpH3z3nHD?{j>n7pr!x+^1(+fW=bU{1s$*W4bE9f?+oy zh}G@vgkw+*(+~p{$3qOgtdsF*xJkLRSC`kSST&9}o9kl>ZNxzZw<%C@Jw)O3N32e{8^F?P@m4 zDO;95DOzg6xI|~m%AH43#ydXJwSDLIkJ2OMj#%`&zUli1Lo@E#t~bLl(m3H6zBE2* z1UKy^gRYLBEaN2H3wQv@yTnNX^TyGDl3shM8A3q8XTA!y$u0L^&Ep2v#Ia3=PQN zY_bGZVr~hy6%c?{pD51pqzeutaf;7M6of2-6+N9AuOtBRFai%mmb7Bn7IJ~!U9^AJ zr2#YFsIlmuH7nnFQSkZu7pmHD7$qMk*A){c0E?-~pE!Q-l9>NUKEu+7$Hc&S;de|i zCtobJ9}*3+y@#wtF^r@I7QTmrA2LCstW;mfqEJ93L-#>%&*+r%i5d{*i=^GK_AUfxb@LG`1vz%ASpWXEolUQL%Cc+$spije({DKe- zX*a|r>YXMRXCLpMu;Y5tUd;>k(~cMwqxz{9-+m8mGEZ6_EY>gN+m z_K#dhoEOS9=9tWb)ntl;L>);rO#lZa!@^bDB_Sosuz%Zcqn3t0yLkGeM zC=Ef4LFvgc;Kw9xZUIwq2E69eFw8>;UIK zSvYZ8>Mk}6w@7|5DLdY+@pZZCr@Y5rtFy@M)1r%l{64dRduDw$?(Eo-CjW5EmNi-v zl}A#LIQG#EZH%%~tI$apHj#RfLFIY}H|o`ddWNr>EJ00%f&hyp=K5esn1c|F0GW6a zagneI;Epra2KJIp81#t0qun?p9{v>Q1o{Fsx)YcH_dE ziH-aBFPpJ0pzJ80f%Vp|X^>@)hB>+32)p>P`A}0gAH0xDs@#+m0mG6f`7css!`AiN z)~?f{4RMPVsVLFhG#BFDQ$4e!+Jm%1ja(52TR4S03>`p4Sl=ijNRFNqoZ?rqhk%xs zasdE6kU1=ksdf@ElTvF#y(CWrh#a&6q!?U%hjlO3;-4{_3-%m0{+p6Pug8D-eHEh$ zFlfaM+cYAGWhQTYoZsjwV;-DeygH8>a_WL7>kMIzwGQC^=Qx)4?&{w?sH2>gX>9!k0@fOk0)}Wz`az=d5{EOS=|s=&^AXpmLlqDGIa` zR;DJ5=!pYB*xHAy9qDL3$(lqZ-iX+tOj80?P2vm<`2cwrX5Liz#%!FY=gTK1&^HsJ zCH$s`qwSQ{GG#dIIfC=AS-$r^o>;(rSjiI4<{X_d;P{CX|LV#(H?Ngb!zA8#IGl~u zgYOM@vSejnoS26%wq)Bj{;-Yl8@|TRAdea?>NjiImfMeWtrmzAkqOX(TM=u(BLl)? zh=Pbs@Uh7kLp6k45;q!3VWwNcT6M56zeGKxvVlYA!Knj#LU;_i#ApB~P_S|f({+E? zJU4%>=l@{XgtnQ#KdRB|>xl2RUU|E-v3)ytQ0e44Bih|sWL_Mz^19<(KlSd4<=2_( z=T?>_0zlpQ<~T@zro0TYBoIHA*I*c6@BlCVT6(7)d^oNViK+8Ne`gCfpH&JErotMk z@_Y2jeCaItmEAn|0&)m{hdO{WbuG42)|bZ?r9T;v{oKFKxT0n6J@R*qT{8!bu4-n< zh*jf<VH;{pv@|>~5Y_^Uz}+K0!6qgUGc|%%1)juEjy`~r1&X*S zSm8UB%QC5-(F}e|DpTmvxa*SbO3a0G8IO-aJNyhqIBFKgnAn1mRC$=zO`Q{-mI^w* zyTjSA&==`VD}2-4bfb9XMa0JxF$or92Hzik+3`hW#~tSniO0E}zp3mnxE5f+puO!e zIWZ7$SO$pF;Um(gvzG_rI4lXVz!!Q0 zsEJI_5V24@z+DP)$tW{AvHQjk4}0Ew`uWHX`=>YTz5JDRWM;3wC^{C`I~Bw!^M}pI z%)yR^JeV^gQ+2S}>rb=R!TQA@_domf=+wQRM8kCBVE7OUz+$Kdr7FVZ7JihLbSXla z_Z$Naa)ho01v^e=739Q%s1Rv0OW%cQfM+nH0Kr8_Zod8<-$)t^#AVquZ1?fD)4f4y}0`>K)#BwwP&}-O^9W^knQC;cImN^TX9YlusW;cskQG^P2x(2l{yBmP(CaMj`cV+)P2e}cK! z7E{zSm9reblX_uw&dbOeG-Jjqvu<4wV{#`@5=u7hDiMkDmYSnIfIU=pxqd-FLXS?u zC)|Qg0Hhd^ie`3eOywP~O)HZbRD0US*Csspw^ZoVU!`1fZk}7t{$zIN(bq?xO?1So zZynjON~?p7dAneS@<9Os9ifo+ha|{6lORvDkpxA95%>*S@B-Hqb4@x@E~&}n#7l)f zohA^Jnqw_XZ9G;Oa>-r}TP~0w>I*PBq|6$~!<3>fr)Gi7i5{3kQ9SNu=YNt894gY} zry0|uI^S^lbJ%;1CGD8qDJaU-Ck$ zoOC>td0=z?JP$`ft6oS4;tN5Zqr&4`RVo8f;0c&YGcRH00c9KiALOFUqY3lCEHvzf zu#tm8ze}Rf>tY)s#V$QNT%ubAKd!N2YxCMJ5C7LQJt)7$Ho+{7t)QA4A`oJq1ga}^ zG!SN}=P=qPwek#DT=7ZiOhN2q$Bc&$++dl-u%?0?k94v~OhHNU<^#Q#4xN|7V(LI@ zc%h4#S?^`PS#tl}=%p=g-QJep`QfCL_iV7Kctg&vgD;PMqg48X)VC~?j$EC)?7PYz z)NRzFX0xi*|ET##i)K|DHLq2(S(QyIcdm$5{K<`<`X_w#BgnmhU(E*CtiT%A20g4j zv_eq9hCwEYj-W}W4#mmJ?I4tLQML37AvRw=(TSlv6F1BwIDv4#vFXxEFxn`&T!A`Z zkqY(&=0ao6KZ5O8;5+&Ij_H^fKRDmLD@QAQuycFaVKyqX*>9vB%|ybCjL9w5?GzvbEIY=$gdr9`YG*OdV)*SF zg`nK*5TtqnYHPg)I$0E@P}gWTkZei92}x25UZ55;8H4SHpC8bLNP3)8x~Q~XzHMTf zJbCOjb;Li?`MWfOIoI7SIa~`2 zZSJ_wz4Q9+Vxvbqng3;(PbZ%nc=0PoB>HsZ$}dcX`_ctx?;r^`XXc}B4CgQS0u5Qa zhRhzlg8h32bm$APNf)fWD!_s0Rw>@FccT~}Nx{4VXov1+5qTK89fpGd12=b ze+hh}MU$sDiZuB5*AH%#S#-Up>x;s7g>Ao<_BhGn?Eo0AefmwhMs+E#wKm_GxM4WU;-6ESm6nnb?`1AV3VFH z+t770KNTA$fWi~sQ$jz-0=!9VJskPSW9$~eE0LQ(UCm-8Z>k$eC2T6BNMaT(;2DMq z&Pl|Ty-Q1G^xPU7*45<$@AOdTdc*d;-rM#rRCqeMu3T~IGZSmNdogS3o>yoWb2mj# z-lHh#fHuk5lo&<@M(IzH2-SsVlT*w%nH6|`UigvI7)!-N?3d}J7#Pe8=?5TLLU$KU zj8}!%7R3d4rKW~(D)C4m?vo9u`GkJ5^9Xdg0#gojzi5%Ccl>)q*^76!^dE3L-w($M zygMb;$C0kE{K;rISDIzciWr=Vv#EKx7pw}~o1!#k(#JY(YNOxr)sLX^jazv)sZ+_T z7Q0{&Kr-y3t6{*890AoU_!6g!jnb+oS-hOnWpban^wd%~A&NlG@Dh3x!JfN<#0riN zLvmUI%25&tzEnJv@LY(F5MwJ5tFq6|p0_{Y!lxtay_k~uUcQlsvu0K=v??d)n>z_M zUmsQ64Ekx~AKbfFCda&HcIKsx_l!eDnQgTQq%vTx5A&6VibDk(N!xHM@@6pD(f17j zvsV=+7$6)hi=cgnYc7^JR5B*z7Ok#xk?6quLoKhWa$nA}$ z%t9*;i--iwXc+dJ{2I9d&_)=_i?xl8*#9r?sCk0^7PzIbt8kQH-ZFc;Fs6_wsJk+~d2iaIuU z!#Bhq3OI%-417%JNkG-K%~<&J%J@SVgHVL=L_j%)bsfBNf;V@Pb62Wy#-w&%oL#%F z`uf)!oS71|w#dL+HnS%)m_^1uKtiI{bLg!oNknt}PH*4b@;pUH&S672im?(}o5-|J z=)ZOnAb_T3;_WcKLrOvi33kJYgUE!1t{;*ToZzWjp=Gh9gx-Qug{=z6cwh#@$|eax zG1FdHsrwj;fqXF42yyAs#Mj73Y5Wvu!SBKEVEs=e{(f@#LM? zC*_hXuiaU>AxdYgZ0iUw#5H9omWIx*zRPy;EtsMOe8&Z;luWODI8 z8dJ7WYoB*2^{XBGR`ymoK`+X-{od~2TV4^0Aj=SnmHEv%<}H7*I_RuCEnsU$}Aj(`=J@}2`=VU4~<`OEh{geFlhO`t68tKt~nvh7%Fw^ z-`l?nNI2#vX7wd~g$VJ&TEPRs&cW$L`!ib;c{o$&i;qR-ppGTEb;i`?u21|cNJVRr-|c{yYM90snn>Y@VE5(>L9yX!?duPdPCPjKr+O#$}I8Ft`e4 zQ7QJjVHV1dpmH_*{M+^vF`0P;4J+oifIZA(M1jRa3@b-OQZPZ$DjQq{`bq#1=x*}V z;kKhXhRh4L&Y#O$3|2fF7UdSqAVi!KoWyxKV4Zl(K+_0u+1zyL%z~L`>eRpV`&U7m z3per(Ok81mE9OZ{P0q492<};NICgs8Zsq0hTQjF~d0y$g-Mdxq(7a7GE(;?_dPiKu z*eIbhBsW+7lb6hAp@t!e=2^%ujP0-!0v@jfV*!(CA{(6w92%y~%#`KW!wc~Q?%`d6 z7EwM^JM%AxF9%DJupE0UYD>EYd%}OY=zQ+v`V`BUtpi;g-^$fTv%fNf+Qq|%moVuw z-^#snv-ykM8b;<@MtCO41eI%8yJgG966QjP;q!BANicL)BK3oZ02vaB_ymw-%wNG3v^nu6J>W)3|n)^5CfoC0m&vN@o?4;*8J@BKM&!V0w(c4@)jJu*+UqTK} zoN;Ui$lgE^+M{MDEV&EdROoyBJ7923(WUh(T2e7q?rrO@erWw-+@L{>fBpyq5Hz9>2fC zxx@GK+Rt@6?RM_({)c~g%XV4JOfw;UNYPR&p3ZZ!EX$rYm`&<=O3Tm}qb{cCw&=Hf z^&_a9e+{25T~ScLG-8^?b_ubrurY+rkAEe)9R8Q-DRqE(#Hb5F&KRh{r$&-2*9CxW zS=yowAr!D5nhYhUF)j-9W=2)W#KE~C$-+dX7(1TSyMafs%N16ScK-3TEgo}HJ>H-0 zc*JhZPqS+GqF$cZ&uq!OELZN%iZy0RrV3Ge$aTav&sp+%PzkgfIJe^B3Pd5bj*x1} ztKeeD#|66!Z>d8lOsId6d9%wyfCO`7Iu(Smpj#T|K$=I@%VHK)48YfnzlmLx3iw?R zn?qaU|bRsUI*G1hK}r2Vs;>6IFH8~N}?!)GU#Fe4ooHigc#6j z^96l?HmhKI;Ylqj=WrTmK%zi~oD$5l-nwt;^wpdH+1=}IQk5^pE(mz=UG@S;3H$Ao zd)DhQEAH5o?KxlmxH-G{i&wgl61YX;hKbM{n-f}hq7g|PX0_I{a?H8N{(vbADp7Z{ zd6Oy-Eg>Zq5H3S-NJucJbxb4&LqMr<5xqPymWT$2TKaD=(h!%q)n=bxf3$VifrDS4 z{${oCH5tch&r?xicd2KtI`33!!c!WMF-r$0LI<~v=VCV{0+^jV5{2j07cU1`w>s9H466 z(nW&on)jG)97?2$c`^WcZ(Kw)48agzM~BG`_B4Jx95sw+`%H*MerG_1%_wyk0A0U6 ze+LI8y+~Sqp=#g4%d12TJ^fcpTT`W&f=`Ch` zW#kNQqktUw(y4dnR6s$3w%Y+@ni(osMF4mNC?m8&`~fKXNyr!^QOE+8ie5>crcDR0 zpjqUMG4*GL45ST78A`wQE_oANQ(AZJGXLtMgc||xTTbll@y2^?JN{&2Qkj*=?R|&J zn%R5Ru;VY*IL-iW9eiV9s2Ku4{kg`Ni&56lsl z2j&DgZ?L6~*92c0Ood#>D`fV>fCusyY(Fqbf`&l=hBX;DY|hJBotuoie!kT21>7Ge zdN(`ZZ7ZtG*Ah8is~r_*4-QM)gs#X@y?Q%){u)DBWI{yhu53jKm8myXk(g34L4lDV z&J@)zJ`T)g0N~_JC5LmZ9Mb@t1P+|dMMq0a3Pci(*p_Ci1OFcIJ(3FC1W80-Op$!Z ziCTodspqcfIlqp1_nVTQX)p6V`t57qkKc8C7q@3U`@B@-{n*zn>xQ3x&O$ZwU4%~_ zbA4UeHu@XB`Vr*e-?K~8dVRasLjQqF4ta_`P`o@A)>Bex6E%E6AbU;%!xEz`gnthX z&xlpFE>suLq_nSys!!Vvd7;!B7`up7Ned5K338~muW;xPddnd*@!gTNzTdz1gDsxJ zQ(}65{;%7{>|Y%X1n%5uXO7JGMeQDiVUT_Ny*eRvgkcpmNPy|J54; z7&ns7$ovu<7Z8~Gi4|AutmlIgfq){xx(q}c-!G9nX_m-{^t8ZX;HTKufXvJDi8(tj zg_B6{1!t7`kMzYXW+1w;01~XO*35_@Kizn3-PZo!|NiDE&zWVuT(?ZqOuLja{n1Xc zxb`82Uz;-v-yr)(I==ku##L%_kHC{|Q_1dZd35R5rDwN#4cwSKa$J~Q;Y!09YmYAn z0ugQx;1x1dgw68YG|EI?3hf?L20kcWg6uhA-T;dgXd49&dm5;OB^HAvNBa(>A`>fO zyxiw8s|1kv%Sb_tM$z2we}P$ zXV<8~<9{&sou8XHc+;#69^kVBbMv2>`>_2O z$Vi!mLJaY{WFW+^-v+F@(Y$+hR+%FozuUN~bL(@9D{OWg0UbYl4l@3f2W2ed7R(J> zm=l2)r_7kJ&<3E`Svz>vD_^%-*CNlk zwcfI@ZBttHUpD`TUtj;#ar{4h)3cAw;o{IsFX!R&lBWY15jJAFVe(=XdNL=KxX^&` z+%W*4P;z6XAUA=cg{OnnE_W2ToMg3c}RMgo-sHi9N_!uhTjRZMG_#>P@aa2 z38Dy?s!xm`l)M!DaCU$JN;k+JBARBTo^s)20>SMkh_Tt09#Q`UAh-wbr9k$EZ{AqLsJKipPLsPI-I=XvbZL;O)}*I|LWGM zJ&6X379uMw0+`@*Fp^E_!~5_>i?~W=H=hKW2$q4yA`(3QQQcF$Gl1n3@nD#l)8WY6 zf_VdqEAR-IK=Lyeosw8li8^dkzVCPTYdojw&eDypJaYMcr+2HD(*#JE-J)3~Z@qE* zQ*(}eZOZ27Ktp-%&5LdK2OH{Q`+Fn8R*^W-2((N)vYC3bP z>xy0-C%#$`xOeT_tCxR&3Qn{Ruw`%*G{oPOp6pri!LgmYEs7zm6tf~w<`%y&H^ zOLuB+`P^~Hwf5{iqz4OTWK!(P=kW-v1vvU2@G{QWx9cL5vV<;o=y zeTBQtnFFoE35cmQLw3qX^8p}(AT{-CRfsud=xHB6{7v9%6t#yp|gFAJ=RHY0%bxZ70o)02h-J-ZY{6jnmF-Pt98| z&z$loCDlIj~4=93U!K^{@OndLO?0pB_%ypoVnuW3C9=@)4tED;3zkQ(_8 z$TRp=!%3iHFt$qh@wz);pc3LTCn$A7+0Lk<;_=WE@F^&d zEpzvUjbVYL*$|vxu<+tOy&%&E9aluNj;03+D&MtFub$off|jnqd(1-xEJsZ`KB8B9=&tXMb6Z(-z# z+j=1QOz(m|w{F!BD%>UPx2_v^Ufnh4ZlS*&Pu`+QqrNUR@cRAyz%!{^vh$w2dk2?o z%C{za*B$p9NY{A2Fgqr)(QxvuV_GdGi|kWyfiUMrkiTR&uGuh{ z8Fe36IiM2Zg9Z~e1OErx3P6@VgQ1I>I`BQ1dLjjZJB7H^nDE}vP9Y_~N!g$Oa8}@f z%%z9ETw_nSaB@AisFeAVrrzE;ez0SQFm3C^>_N7dW!E8;kTD`d3V=QeMky;qbA)&y zoCQS$@`y?@sz>Y3ScVQ6_9HMiwHj;+?h$!LR8;gVgb_%?U^vmkIwO&7?=g*hJFZpjPQqQN>4@Iupit6fhYLQDL*BmNrW}v|@uHQ$<|8}FQE$TLI zRJFk$)v7kCU*-1p$b@}4N=hZ2@-^!=YTc}n#$WP3VVp;<5#gB|Ey#(hLWxod%UuRp zxdIVUz{swZU}X^2XkOTX0*8~T0LlWTGgE&~9V2jP+yo6MWHM5M@TWouF;j@kn0zn( z%op5!bL|!Tmab{MFy*e-S9=|?n)^c!yoD>l%MUDZGmhRolJ}@xT7EX^h+fNs#FL|* zcR}L*kuTIc?9namSYsURgQGcSfJSSP3o1>vQ^Mt>y( zc>LWN1j1}UgvCEhL5e#8(t7YTKboFWuT_qk(4*?a=^wna>9gM^eBfH6*&jAgP=}38 zjT6pT%{op_iQLVCNr%I>bn}g6+B9jU_2hOxf(lAh#664YJ4+gYWSO>t&*Gb4A<&^C zhNns~iTwpgE*w?RGMXS9T=5m+e&LSBGA+J(rc4sdWAVd=JPIZ<6~+LFWa<8>37CvS zdGjkhzrW?}KdzOXdTY_fRVQYSe0z)S)|ix$L-QWt5+Pr%1D7X1pu)*zT1;A&oUz~b zT5?z;;hJc9^W`qo!fUq@SgRQ}aE*3Z8+)Genud9{=W&aaCY5kRn7vl3fP22PL z{;!WZ|69&6lEu!aH&D7sfABafPb9m2{M@z|f(LdatsPt7c2rKp>Bz3bW2 zHJM^100w{o!37v~F~ZPeFlgbPAfRTuEX*QFqAQoYbMl&Vhpz`VyVAaQ z=|7%rEB)Y%BWrub`dBauos77wm5H%Ag~*zf8{%VgP-0z8&uW%NjaxOTUI)xU!2&`m zGZW#&oCo$QkP@Ji(&IsF0&_JnFA_1_Ner-M8^X23Fi?6;hSGfJknq?CK!b&Hm^+I@ z58N*RFeZ28Hz_b++B($=w$zzc_}9T-eNy?G=;ZAa$3`@_)rV$-HFohdD=@MD?2{LH z+`+~_O1x-PhpI8kmrvRB3i;X63!PefY+c}S;%`F3E&&~foED2xm16=snDsrFYj`pp z(%~Si;Au(?OO3*y4pS8bNZRxPshH_IvpLQgz$>5(V?B)EsEb(yAa82KdUDO)xa&;0 zDGRzjxYej^i-nb26zc3#^O@s)J$22uRQlv)MJy+;--nUva5fG+UocHH)mN4i8bnX? zzOwBRx(QJSf|m#dIO@R|#$yAntp^<~sa%s%yak{PGFbExiwJ-jj2KJ|&nEyeMkmyk z^n(yoiL&%3ydnN0gKuy?K(G*(ZnqoH|I9P8@q(~h5rdU$z2T4m{Z%-+|$uaTh> z*hvQ4!E$EEz4Z{Ja${)B)a^5ts;kN++_|@^-llmwmdRA$o2M;zW27a%8jT2Z6br}^ zrqWu|KrS#FU8Dfi4@^X1%QM2IDhJ&XN3cAzT|iU-V!{wO6PizuWGK&4O3Kv~0vIf5 z3XUshQy+g6S@it{pFRC2Hu=R5UmP88%L8Utb$riB2vL+pmdD|HCY;M#a15K5z#r>T z_$3qVvec~Iv|g=R_4v}kOl5D%=@N_&g3nOB1Ef59AY3RQ){>niuwu654I>ODGkhEE zdxtB<7##EPi)Bah-A8cj?H_02z7gB@z=*tN@!h=EImn|&mw-+k{k!#-rWTV}9R7I+girq4 z0Ptne2neP{UDyIykq7w#;_F7r&@>J@3iTc{caVJSD*4Qij+m{G2NC8&$!Fbzuzem2 zYCAOM3L6yUrRMl7TqRZZ%RQEQN^W&mJaGUun!Hdyl9xCU=vD~Cl$*-I}oEpQ4=Wj*Z zu|G<#Pwd3wu}%*;v^%=ag_qrSzjmc<=>0d#N4$H{9uRVNjgC#j%UE)n#fvwc%w1iu zW6!x&dlkC$w|otk$#T6Lw5ZV>Pj;Nmn6SHvQO4tN8R++bPdwmZqRE28taC*cp=dyv zK}*COoA>~$hB6TEZ-qNL^!EHey1U-jpU5a+i5+=$Iwq5j@8$N%mHct;djUDoZ<})=k4AO; zyHv2W>j!nhlc@@{HdchXlFzyW+BIqF@E-}xtPWz=a^9+ysbrPRJz_bt6gA<2qzM*^~v_lQ!pXOL{ zYO!)6d;_;)cT{Hi-p0j)zdwEVoxA`0qU^Z*sqI%d!rcQm3?a#A)SZ0baop9sNhay^ zf~8kq6#}|9s#?8Kt)^s2IV|aIu#-S+7Gha@Je(M4GqJ}Vkh;~1nP30}BZrAMZ6T;I z5d;k&enC{RG85GBn?4VH8YvX84sI?pRTgE-@&$z~T-)d0Z~viULZ_H*F~LRJXPoa| zX;D7o%;lD~POg)7J;#kgJG!r4xSg;jPl{PECMsSj##XAUbTRxj%2#UHtYMo5_38it zBb1@_VZj%Dl6q`d6`*(EKLjhX3cT)|JVX5BwQ!V3K4x`*4LTGGt`ET(E&~aM8Wa)( z1P4Tat<%`qC5h!9tg<*yI z2Zjn12dXb+vxAoz00Y_w9V{g7k~d-6EO%pe9q_0+jyMJJ;^ec1)Dw$Ji7VLZfc*w@ z)`ewSf0MsM>C5kghF<%FIVR4%!=CRrq$~7a=zZru zdj)%Rq+*6a2fvHTrabwF3<%UkGr~s#R^&3E#x!q`Y^aHI=mqFmDF5;0Al6X~%X3q= z#e-HxUfK%R>^m{?6U-86N0=>fgFgApV`%ICeubx0`nGLh*BvgOJU-4U5zWJ@c`DWDPbYY8aB%mf4-d2J$=utv z?_04Ij43uLbRc62<51O4)}e?2K0)UWxgLC)tYeT6h{_NRFlvOp#yKO7LAAhcRBqZ7 z%k=R4tB}5Hya6%K8%KSd4=S^fq~hkjmkR%*wMACLQZv1Lp6zspA0(vEpo z;zKtUGlk;APlhhp_8)iU!Q9!yx9Wi1Frcl8)=9D9fyw}07RLz0scD%1a-?9JGhV^B znLCTv3sYS7u2B**sWh^w02LVAv<67ipy&HAG+~@&P;e_s{S21M0i(2`iWV;p^$Mb0 zLL`|PsD+W_#7gejmL2yazAJWS&6%XEYfD1+*uNHM*YJ#0Uzz2==nJPW$L4?!tLB7m zT!t%wiUD)f9pWA2)0X}P?g4ZNPh<~rbOAHO#_G{U;i_4 z&7D=<8aX0!6SIdvrxG3E(1nN7p;I{^bN8ZNjC_Snm5a<7T_r6Rhg@sNb-t+Gc^C>y zZJ;1uh@a#G8x)cO^EkFHP{qmQ3~y;-7ngxr01U1J1XB1d@JA%ZfiFU3%`XB8!>=OZ z@gj;A*xj!7v_Z|^thlW5qt7C5KB$*{%yAv&z^nW5YEGG4(6VaF@Zq@3JC-#O$LF4$ zh2s&w;;SFfhq;~L(;Oa#H5!?a?}cM?GtvC9w*z@HzQE8c!Ki3I=|A~f+;h%99f=&= zfWZk*&_=izz+Bu1hINpV=t?UEfW+Z29OBa9Mv-?8T#h)NoG@X>uj|8;KYEr@*&gh5 zavd}~12a8@8J5EfS3ShH&7A%0JNV*(Vb*4~IHPVc6dd~c-Py|t-%0EV?Yw|gC?gua zI9X58PBO>^A7%IkNykhh%Ci9+)Xos<&n$9Uhp zYa3+TbSnDd^Um#e+=%}1C!?x-rEnP&9ts~!<}@oeEly;Ax_vXbcjk-f#stf@qSz>0 zxb{Kr90X2<8s%66@i94-{~TYv8+aD?g7LNb8l&517DbXoeukuui4M+9z$(yp zpra!|C6M!u0_7^hQbWog{RUSI(+|uZys2+kI{sy)_+nFLe>UMny=BFQZL0P2h9OIh zS;;G}=k}n<)MAfjer$;!xHV&;?Svl+Q}&h_$6VK$bS77coPy3nTFXgp%~|1d{p`bpVl#0t_A^ zn~4E?pur$PY1{dQYghz48cq|{z*oJR+^lD*3YyI}hl;df>q+m3J>TTpA29ggGYJ`y}d1 zLjsv}CL{7iPOTC@bVK+HqvAsDsKH1%LJpKqN^GG&Elgt;`Bv)} zTdQY}>_e%KD_#6@_1_D!_HVOq@gdTmUXU*_c8^9DLmdCZT+l?NLiWN0X$MApr&r~Y(?j!p(yf}U)-ut_ z?T1%=ZIUB4EV=pkK;9OA`|d;hF{PFjda=$B4RQn^1dh-w-a*|=A;@+JTqZ@9Mv@{P z8|++Yh63s^Am*_&uj0efhlm7)5JG|!U|RkmIPdTYF$0s&8D>|AJt*g~%xAk4O(@IN zamQjz$?b5izkOr2*P2^f*4(e~y!ho-)BcIxZ=3R(CFJDe6FxQ{>-w_cY>vxInwoch z&Dj5sY*?;F%_gl{yRk?~b`d_9naVm7(GN+VY-wR#2^AzZj#M#50jZ%Q8ItcF2M`vQ zFaia#r0jw-hRTME4~ZH(N`MPGN=Cbsq{vb!ml+1Ju_?smoPUdEBPT65)AQ^67uI#$ zxTRaE<%Nww#Vg@>((yiKWp*k=WUV8qiVgztt~a`y3tqh z-%N6W@TlPnj&7{~w@aRRm91bz|k#i$m5EKVlRXydxB zPpL&=zQ;E0>-)|5d;@mb4x4$04lNz-Y96+Xu($_X^4_7y&Cl*^vE3nHGSk9J7ZzQ{e~Y5xQs>^*+0SqICq2y@K|awU`Q)SMuCGjFc`GtHoOY16_ZJP;(%|l z0>Mv?&R4@y$ZH@O%rwB*v>ulY0_0Ijvwc-gW-WXa_M!9Gn)Thb4XKgy2cYIatkQJF=LDI0`Xd;O- zb7**YhEXmMvh2Jmec^gBYp1*y&O#@EPd3YO0lY9`gk8fYmB5g{ixQWS8LW;9{C!X( zLE$*pXzmsB%gxWPyuH|K)AOle!^=Ny+A6jFF#8_M$#vp_HP!{IPc|PM0(-!W$0xVW zS}|C6BR7cI0&@u&>d_i$!M*MTxEDrgvXa8|hlGshs<(8&OiCrY4qyZf;w4r!6}z^N z!3~$i49P}CF}iiiEs%B4b^d+KfWa#uDsq&bEqi^yufP18on5%d@NpwD0vc7_U=)!U z*yWh9CLNBkw(hf^K3lxlvEq7k=``Eec@C4uKARffKqNF_b!VrK92yv!Vx7vJW(kx? zP}&*`Hp1dku}S&8?;hT``}@;^YOb{Lip?3`oYOBEuRdbt9=dPXI&^Be zGrSS=MlF_9%|=hruTeimb1?-6W0NXnL2f~U(%;2ibE0|s&u;u=X4h7L2Km$-I#ARgG)6?sx z75TC34UhP!7F%oX@;JEHej@4QI%fUI24)k#Z{MMF!*UY-{GH4BiyTbfXyZNVcJ36= z!>>O6MR@R2R{`r&S8<_5f&%4%Jje&c9FQ+uZ-nGX4B&t%t}!+S|EFOjKk%U7F4}>B zts;#a{#t-S^jV13{P}m2?P(ANLsf12RLBizsR|q7Dr+J~$v++EBl~5)X_ULhPew$T z*y8c5W*2@Ob`sE$)HBK~12(pNEE%!L>P;LD1M2c7!x3_6(?z$3*+ex-&Sva|o}B*x zxt*Qxz%Kz6b-=*!F|FibC@4jmCZ&74)hXuQ%y~l}^hrL}IH~L67Kta0+7nWoT+fYP z`Kg&Ymd@OI95-w;Ud`D&kH2^|UKxy3<6MC{{?+}@ULopxwY&zQjn>04M%18Q+H>eW zxR|l5$OyuelGIhQ$6yg0m?G5}jj*9g)22C~6&?kkn+lnBK9JB%$%!*5I6()I1_5kB zToz=6hDOBCDi(Zfw9^NkA0`AO7yrusS)5%jUE6FG3=T~ho5g!EpJl_z#gh^hdrjqk zC>>R9%(C?F7}H9PhLG@`8pw`)$-w&n*49; zp~-rd+(YKq z7%&hfIbx7m_};zUSUZ3pu0PGN=m#bo3>1tEnkSbOn97l9793kzUg%up5KMru|2Hsu zA6#R3afAeP^gJRJ{Y9<-*pYq6U5N>u;jwW?hvcN^ntBOsU^*5f@9uBJp~ z@`%kt@yRgX%aT)zLgkKOi@r9AibvHN&1=`G*PyvJ#xQ^bw?m5Wby9!V#*Brm9yaBJMMbKh^aJ&akFY(BSQG#Oq))iIavox=XdT9?G$-#^pPs92q( z7)9C;RTx-QcHDIig2wyAYl|2xaNR3RON*wo$^#W3_9XyEyio*OcLZITrM% zlH;Io$q_Yt%<&fyj@dqXOV)LRzM0#@8)c&z1zPv&85~@*267eoyatFip~(=(T~WZp z4b40`4rT}9C-Vg{vWIOY=T|5tphyyO0Cm%w0kg``gja$f8fODMX$aYrM3C6<5y6NN zd=s+plJ&_uBX(zPAJM+D@5sQ(-ndv?wChD2I?({|v>$)m$< z5seb~6%+FwG9>9LBZ%UH1!9m5bvST}*2)xYYxs8gWEj`s z;{n&h8weX%%{uC(r^l(BI&6Fk%kx$1qNez ziuI9~CmgrDOeyx4U!TaQ7QZ1yCXM{CP+CrlVK(W9HcTvJf+sU~VFULcc6Z~p-+gNM zL+0AU8FjmU1eNdI(XU6}kWMw-*it8R3pzk%KeSHRD*>Hwt-;%{sDvV*QKA`g@qB|h zK^cj?G~+8kMCvOo^N=c=7{EcIyQeFm8|F3xY4d1=EvTp%nRp-ty70w{50@2xyYz%& zMT$SkD%QSpzp&%>(_R?!hISt0-E#W=^SE{Y@nl;!?cmQ}xdg}x@Ka#it_`CM(-6?g zc9(Log5eua*@ZkCKLdPi@Rif!kPRUT;AbT-LXaz71ZjlLNut?-k|B=Nx;cFdsD+U_ zlL;x}slb@DLNqr_<7&CCb}Bt2^Z5EV_%_l^$Q%JM)j(7+j-hmf7D`nnLJO8e;u=vfBPyWD=V(f|P3b`4#_TJ^ z|_$Bjcz&^A{i?_j68m2q~OwiVYbCC|2J3}!-&&-F-!r4ROYM7wV;2jf}JavS#7cCz=`{{qc*+%0|vkflijs6V%wF*dr6eAMSAsP|* z4|rox)sy78T=Z2uEJNRl&;^;UfH08$WaP;yWul_FPzNo;Bg#?I5P&f*qSf&u751u- zdGK=6(gj+*bLDxl)n0%9kyc}rJ&=km*__ifzL#gbVaeDtd)I=TBX)1%f{hEfCfW?8 z*AZk1?jP*mwJV(m^BNoxIbJXz38$L=sQhAL#WaPM0+`;c_!ddWO#Z4a3x@YLg~aZmpSg-00eKjfwPozQ(32kXz0U zJI9!0f`2gkA$1U(fgPy5u+rz|av!ui(a*Xioh_nx9f0v@%8QdN%t$HYnhrjTLQzS}!KVmn{{U zI?37cXzT1ac3n9RNms4iz1UcKW!@KZj(*!$KZ43t_pH&3o?W{*wH|kG1lG*jppev`G$B<6lWmBI0K{yjh}I>?hdHt}EANeqwgLD+lg;nk&P&vUlGj zLxzzXfo(cW_dczHev$OEVvPdy<{AARB(HMQAxnO65J@X1*-!M{GPjo%Y0O`)bQR52iN#6 zuJ|_tW0IU50mp~4pIPNfTf)=hCgsGf$x}z%A8#wj0$y!;OE6Y9#Dr+9glQp~q7LI= z5l-njcnq37KEJF-LDhL95b@;aE`12rIAC$0TCh-9Vh>N4u#89xjsZN@_9_v`LhK@i z)KTZd$(6FIT^;**dfh|E8WkH+;_nCJ?1@}XuIonjGkJq2BNh*b;b}ipIKKGIkXQJf zk|^eKA>DyKX{(qYcq9MB?44M{)9?Uf5f9v1AjoJ(Djo&aHv;_}*Jq^3_;o`zL`hE0 zWO}8^mCAg86ChuJ7aYdvJ3(A{E^s`obHwUm4nO1BhH>BaEZd@7>xaMn)pXkboDaWf zZ=Xq=TvOMkAdM9ja!1;UvuQbRBrP*;Um9=3`UJ`)ESWRFFfkQ15IZvxL0<>xYq}-9e&CdrObXkGcldLd^8l6F$*3Z$u+oL zy=o4BL2$~w9k!;USEs-FWAZGOu0}f02x!=8cevtw`6M<3SmZtQl4iJNF*=|+lQp3x z)E=Pn2sao}VGzqkRHh<)>l&6o@kD)%m>2Mi%7k4};1Lx`Awx!;{^k0#lQ&%ZUmRR6 zWpmHQRla#DvA`>oy7eF^qC?zyG2+n$M*t;d$-@T+Z5Jdg=YkkH9#{=_9oQU?1N=n( zpw=VF)2c%OhQ@*uf$UsaoS`=(;8ZF%fLtc4I#>+i(Tr1>05DKQqTCkI&V$t_RAXcm zhOm&oEKKmJsF{=SKnEKQnc+J#>F>h_gLlPGFWR`$`w_*oT+F#)iyUx%^`i0AT1p@1 zk7caPLmk-pcuT|;Ebt7zfY`z%7~;@!N_#>-N=^rlW46KeS}=8q^I1Gb%+=S=Ewl3ZVo!gu=qktvq#ew6Ly?JaTrpIhvzFx1yI$WTMxv>S%wV2=ncG zgZ)tU`e6gaIiwztUpN0^0wT$g2!V4f&fJCmsBpVSgvWr?r#C-rx-@xj<9|II>y#Cd z$SjR={{QGY54fn#ZHr$pF_xH$Einm3G{lGuAfkyTqM~BK28x=32&kyBi%v`ehy@W5 z#jbz?7HlY3umCm$tk?@83RXn1pxEDkpEJzBkavIYadQp1cg~#e+hy&w)-IiUI~`+7 z<2q$Sbb7qP71Y%!spabW=Ho|B5Qky-@eIyjr_d|YtqYlxs!D0zWdS`ZfHHzQf(VLc zgg8vCv0lW#f%^^02$z*E5%*eHXbc)*s~};7rN*{sk6B`*>uGvvcP;HHt1~ zuUY8wQR&Obf$NQ*Y0a*e%`8QNsJXJ|+{UeypXt@%xAS8w!~#XIC_mUT$oLtgfqq@4 zYG`X@3`A=T0>O2`z>;w&cbbM>4F=xCD=<@06OiMPj-w|SEK?LH3H18Z&Ej+k$A;Jd zotOzWGFUNJ=1-WZ(5H;w{(ZwgG>hK;-uO-WrT!ng`MA#+ueM!flPy#8rJ--DTBdDn zt|>kDGQSejYw^>0X~OjCZLl!e+T0^Ar>OucG9#Pq03?$0UbLd zTk*0M-UJmGqz(;pM=BWhC&(<93k2m!k|H+>b2^|5-UQMQrt{o8#jXv?JEsz%p6nTP z%$+*n(;j!*e<T-~lOMh;9YBP^6%wZ#sKSs@c@pfDm|P3kjSC4hA;5Xwp7JD2PKOBmg0(OPMZ7f3 zFj|9m(VOv(vB_b;2r?$lP4;$>w`GqEl^nlJi3&{zl2=i!;J6vRqTj|J_o&`F>b%A; zthr%&tp{F0oP9bJeWDx#?lx3h8q#7~w5xz4tB)Tu=ic~MuU_hv#A1r_r*dL^uGGDkY zI3M68?@1W3=b=W;A5+}o?f!@_s(O4I*l*0wFXJvn7?0_q?;NYChU!;G_n!g2S6@$I zP|DV0N)e#1>uowuZVzBcPXh6YNjgtJhQa6+vIpE}cE7OYL1^ZD?PVYmj5DNlY;z`7 ziw7gRJ4u=V#8@|hQ2>OIQDL#rJ;MEhvra%Khl#9+7ei!Qxx32f;0624X7*im>*Vm~ z)&E$rpsN9OQ9H1C7Yd2kqJ-GD<66m@%0+&0_#ytd+=5X$Ld0Zr#PlfqJ98*2=ytUB zBB|x$*^`LqF$i1qh7@d6^7QwlQOM8;PoU5v*^=U)HRzamVpT-lMe%@6fZ;aLfhG;8 zm4O9{P@q^4GGTfSnX&xy%+7PR^c*$qacP0msMyTQQ;Z?Z2XD@Nqn@%|(`JNaR1Rqg zaZ8eq7($u=#0q^?LYj?J_pUvA_jc(CIf7U$0wNaRan59?0%CHRAi>ZEUtvR;P8ZM9 zgKv0IGr(h!WmHl^!<#~Qi=GI2h_LHnzB7@5Y{a~hc^{NfT1?I{w$WNM=U~(MmkV8Y z{u)}vc1d5a$MaHC}ft%12AaiwaHb%Ifps{FE;dd1YaV6(l^twa2)9gXu&v}WKG^5 z%nngTk+v|>V{(Z+or#KB&1oMkbj;}XMf=5rp7*cu`-X4+&8pY|n3|s`8KmBnnJ1qt ztmMpiAnJ9*|L4qT?dsUixxKp;Q#wKqY-nI4lBw9+OB#e-i0B3_0NsJ^r3gyFoKl#$ zutDf~xzy0UT1q9y3j>{$m3gA!gY@l#V-;*rR*woc%jt9A;tc%-OmWoPu`cEhT?S04 z<2+->1$$)&Y&lNR^oV~g)6UIAa2s&#Ak3ADJx$KsZ2r()e!)Y2U_Z{>5DNjCNSrZ6 zD4;0S2nn=UVuH#1UET&WVD2^w0Wlll8iD)4LX@TMOp9QyV#`b*5QQMc9Qt7?&d4p^P% zi+n@1oJ6%O*rc*&q{HMQ&o=0l90JoM`T%i=ujxz+$z3=HF*hvvem7u*5tP9BXaXz&fPnA zvO?}CZjj=<49v$~2M|8G5?KO)`w(L*+4-h`N8}ROQVkBw;xStufuSq6ND6#5{t3Z@ zi;b`Y=$tD86ITO~6?Hw^3)omD3a;G+od=#V&8|Dnd{69+Iyb8Xxo0=3F{9#}i78#A z8*guAVJhKRz3Nw36r!rE2r*)Qhci>AQ-ZI;%Qo>}jkf zwO5C(-oj*1eG@UIC9$gvMIc7>Dtkk=0#W+m@WxREizec5?Ks<5L2z3!j*uISfQo8? za$Pyw-zOu$WF3qX0e%iVY&)QV72OpJPXue_A4IuL`Nf;TGyqRokod%2&0X(*^`N)M@h;yr@IG;8_9ssa z=%QNCM(5@M$q^qlhi;xPjrfmFxA4M+dl80kDhEu$sr-P>D3}$zKiM=YWE7bzQnRry z6NfD(rwA*^229hCWPsgc6OBcKj1>`B(7DR0jFz~KqWpt<2OMnAc>?J5AveNDVX!R* zLzJ<>%SyToxu@Nd|E2q}nC2;~zYl)dMxtmr1SLQREv7Gebqz1uiXk*Qa?R#h6$>VP z2(@webE4;XAG`7Ne6-xK+gQmft2G!cqPxO(g)uE*2l^74P)-^Xbs+=*LZeKeHk7p) z6vCobBzRKLGG?SZXZ!(vJ4-`CmYMh(5#O2N^GTeOdM)_UcixF6a@{TSYoP?T|M}azm z*&B)ssvRPfkkBYn=`7}LItU2 z7$kDs8&L?fAd-C^xchFGE87B|M_z05g==1Bow$(`Dx$xp=EeK7SaL3->NQ1o()3#q z0*~BCQMV$9$BHV*aC30%JejYTksyqI0vYferV(haB>D_AvF zwlEn1hv`olYKwoGaN%j0@FOA~0A-RyblSGp^{DfWqeBjDI^Vm* zvxfgYo5G6NkBNEKo98+*`SEi>hfppU<5@{X=YqD#y;rrbTXoq*#eSxY1`nXcfT}2z zcpw9A3S}&seq{U%WyQddJfTSAUV+HvSe1SnOF^)1_@1G4gEO9fY1aX26Cw(KuAw3OGIE}gOK2`0ZSE=WrlccgaB$_?SLqv#BZf( zmy*oaRReSN6%(hR$3Cf99=7|5&ZS=FJPfd%LUxySR4e^#VgF*o(BH zufS|3Oc_6L*s#9+#SvNDBj{OCG4j${@>NX96Ud5Kb~iw7T6ET&b`Az}X1 zf+7nABL#{8z(|#ZAIRjINehG`1maX=w8CUr;sQn3o;ro?A57@@lhd5XKSwRc3NGP5 zfq|c`=KkXRD;Ac~v)`I(iUZH=!==Rdz(sCay-V>ckzewVAHFu7`g@J?b!p|wou^o# z>OzOnlBeNQanwM6xI%p4;G-mat`87B-7Q;OSgpY?LGVCHEqE2KGBkM{LKLci-gw!| z?rmy+@CG{s)=V$g3b{<9XNw@Aq?Z>Cv-Y!s)kJLLyLYyu{1PS2K2ukJfXPEJ7z0@anDj#)UY9 zn=_VUcK8dET4?uRk?VvEbmHVqwm8T-OtQK-AOdgGwgBGK8sb(&3rrLdk~bs|#;Srr zuw5G`e3;)_v&ZSN)#Dq+uOHpWz1QoD57Qsj9@)jX+D~5h1`7|tE=jq(Il z1tpaoBsHPkkP?J;gAX$H)Ijv)d-&)|BnIIXau87g;;%?g2<5U`54#l(zwBXTvc(&L zk|wL4px_dpW%6xH0AmuXHQP35>XMn7{B=*yqz&lP<$uN1>s!=T%1J%cV`84apr>VY zL|8q|&20~k2OAF=-!0l3B2tFl6HS*@`!Z6DHkIL=Qs>JGRiFYTI&rm$P1O1Hzi?@U z^9n{N>t%tn`70DlSa!gWAjz{PlV%ZbO)yh(hXY$J#ASx-4r@(lAXqC%P6CR>%tLE- zBr7w%_>ZgIy^0)D8a35E+g{hj&e)M?OU7b|z}quTG-r74y{MW%h?x^n z`7$%6;-VB5pcmv<)Ewwg3C1!ap`0O~5)XuXOQqxE1?&94PPd33p60Sh}#AA^rs!WjQkQMqpY7jpW;dmO4V$umN7f5M)3sg^q=pJGG!( zcF|gDxb~bbRtS&|faax*q>{w%SfrwqiI70>pQU8P@CHjox=LOU85F1;w1)`-b`9bm zN7qd^isd4l0x=>Qe2z4OW* z;Jp9ExUllXO$(^6kgX_3=vt{x#1jT@2;AT>q=KFVBJU~HBMl3cI6Vq%O~`dH8wsp{ znm$0C%t9e-ioYOkU6StL>msZ5LMtwASVAe#ntk)6?O}(~N5{aZm$xwvlhBFC?d z+pGMNc53zeV&%e1vyAV<&4Rq^Gvz)^u4!TU&m7s1C-*@ilv}`t!$gA*kDEVH3eXQ_ zGIlBOvV52~fdFZku3_2!(fTb2zCfZ0Jnu!vgH>WIffsM zR^V^4)Kx>57#Hhc{?nCZHQyc2Jp9`yPdml+YI~_-s5LP^yd?#af6C2jnv%ua4$iGa z)LQEww_&cKfiL4bs|~zZ2eGvXw-8KZGp)y=u)58x~&K@~+W0 zcKw{@w=fR1B_*$@6r~+m6uB(tYS|&$b~_>UYK6})zoYgg){I@y*kT4DD`mLQd>k2d zh%E%>6+)f^(}k8n7*gv*fI0{1&Smitt2P{%<+&YzgTU>(QBV#7JjJ3tXi zeQGmiQoI%~ig@dtg}*L3vvqdu{5cQKgne7Qv)<_)26>OJPTY{GQ@$l$4q890a%B}f zD>Z7GlFJ25Q4W>0*RUZIy@s;GOrh!vTT`|h!RzC~%V3I2&kR$DS5m-JC6X3czlOM7 zj0fqm!1km&-k96nAvX88F2wC^}Slq2nC&o8Vzm}yOJWpv_DIhTn|6J6Z^?&^ z=1d-Am21^MDWiqqaHuTNw>yqns1vb}?4a8#D+QmR!cD7}%H>s&oiVB9W)~J<9Adx^ zq=Uz}w5ptRXgUmD0dL{SAt1!Ci9(fNkEWJv&hR1_&Kovb)L%|8uQ-?B5Vp>qYC>@e3zTkYrF!#O8l$!#j=UH3x>7` zGY$Ut^@fdAv{RM@xEl!j>KR{gFS(l9Z9lm@`wolNj9a=Z$BHvjc_F&@Ak-^cw@zan zhmH1Q1_`l~BLY;&IcIcDa^?eaYbhdN;mVg@22V3N6B}*K!uenPLJvr|{3A5h|GxsrAN z)0?`XM_Oe5LHg~AujS(FyfmfTR>w$Es@nAQvg_jN={kj7id3E65^pG%Rj>*+6=E;a zEs!6_UVsGYw(Z0LU&Ke`YRV_(1n|dciD-KWoD_e6(advfaBUNkH6R;KTU7TndHBz2 zs9TqOWD&WxbJK!LS@YZapIhbq&Dhl;GKzZ7-OXuW86|GrK@&BO?u^}jRTf{i@7}XR zw?8^`addX++wNJ;hU}eKo6$3=KBqR${rYz6>e9WZ6+&$2U&K(pUS?wKK!(pFY7q!9 z%C-$q4;6MpRRF_8wtWJxW7$kUhlv69AZSMrvWT}S2NoRc2FLq{jtdh|tnzc8?1OA8B0td|i+h>t0ZECi7B z*y5G~rKF`SOh6<8%+9!*6Nv3W=g&RDd%sqf_Lb$c)yZ)$_DM!IK+n{mR69aLfMy7R4U!w=H99$H2!teR3^rGByk$oS1-Iay z4BKd*NnM;S;w>x@#%B8&!l6>7MC9l1QB&=ll^3=&h)P^U`+z4tP%}rebV$Zva!n`SXH=HO3}w& zgeiYc@)|+vLScu}39C;oJ*^BQPA2#8#Go92kn?0Z83mmj0|DS_VTD3LfQirN2Kzu= zi$xk+aEM)eS%fx12Tru`WxcVvA+RI4vLl)N<-FYL=*bav|Jj=U-Oq&jxH3|ZgTRoT<&Oxs zHb84kpdi1ZV3VRr^xXhcm~Iu;CC3;zfl(H@CH3Ytvw;EOC$@G? z&dT}4y+gxUg`O3WTvPL>dy;iZgdMrFpQV*uoV)X)AE(Jt`~KIk10|L#bgxHI?AUmX zANgm?A-)r=aPQ_OkPKnt(P&^_#yg{sf=7Xu44fQ_J@pEKCE|6!n3w3pp^}X~5M9tB z0}JsoSP;X(llMc1B0jW;7FpLpPf6q>m=TTh7i@_AcNvMZuiwPi4BMS5vAvM&T->S)pAMhzItHl;}hT8bY3p zQozB1EZ>5YMv=-@AiNf)*20um3iLfR&-hfrh)2f~7YtSH)kJRVUjf`TlXwk~aw_tb|+K2NB-#BW^g_v;5Q ztZ}LANz|q(K5K(6Fz;I)5Xerr+HQUS=+(2YE4!0=^mK6=@JG)+9i95Ld-CqU8--@2 zJ{l8gL&&ysZcw6c{DKHpux~W65Jqe zh=!7V-n6hZ^x%mQu<)+}tCOJ?hm7B2oGYFx03_c1KJxzH(zx&MwV$!;=hHJT7QGx9 zUt>>$U$^Frq9lCV+{=>hmzMkJ|wpGs1kw=EPEbVIOPgPX&^y))Z zE&b=7XrM`X=^wwZtkn()d9`Gpq1BdIKfmK4KYU>UL&`%1O}ilEb=FeRZ=CYe~3BXz~x6G|?(m^8_$qXv;pQMeu< z0TB&LgOQCIG!8A=IXXS4Waf|yCP&|_n`8Ve3CZ(5QcK?CnYSbFls(JqU90Bak!LYj zeCY>FK(yQd^0_QUpkZJWI<+5l38F}-X^{2VZic)LCyrSMjiMwXf$^B=wu5v)S{b^td2s_6O z+DM4icOfR`&%%$*#YA#{=3Em^K=I9$M~wTBgJ)w`9|RGU-|$d=`r34Hb8X+F2f#Ts zEi4f$2B|!X)VzX~;Y|*G6O4q;Lwzq|tt@*B@G<5_aGEJE!NnCVD1i;4Itw@fOelUp zZ)FWJtWhsC7QmTwTac_Nv}(@lQ0#c+=Qo3Vv;W%h=|{ba?-l-FoG*5#Zf24xsOG{Y zVJD`SMW$2BBC@6%N)z#A5)4EsO>9Q_x@r53ojlHpY=uP{0}bZGFh9WpM0(E!7AFP- z4=|y1Ca{@vtn^B#Wa($`ROsljRan^K+m%=5X&cl?KRV&kSXBk6=%aVeZ! zTfaY@`*e33CKgTd)p{af6?=bny-H@J%3=b|(id8JtT&WOlJiMAV0xo?XW(N@sSX_$ zsUiKYnBEhNsqn>n9j9Zc(!g2JMn+EiK6bLx+|KBYAWZY!Q> ze0joWoYM7+m$P>5!OUCD9;dD@+#x33hVs!coyD7o*%_;xU^hePgvcuXp3G+iLxhPX zMLdu!G!mXf1)=RRnQD!~6Alw?6`2m>V)0tVlMOpGkr=_9#>F3}cyx%A)HM5|lp`fl zT8iCCN{H$9`~QB>dD@r9R&TYixSm)1#dvj`S*DsWF*ndCBZ78SrcrLp-v0m6C~c6TlqP6gpEp|DLR$kuou?Ps0mV8%JbzY>+-I>@#Da z=;fM3E6cQGH%(Y(>F%hqJGAm$a)L5P(`R={7|{p5_O*7h?bV}2S1Xta;ISMu8dt(J zbv?uxh}0OG5cmWEbkGe1C6BdcJw1#i7W8@A!oHxEk*Oc}0~iOvo>$60MSP*K!5;{- zR)9w$Cf3s;WBul0%8BBRO-A1yFhH|?=9dZa1@C1UYJ2tm$Ph#Ax-JAQWpi~UVB&3B z_Q72&kWuhZHo=i_a3v)UGaDdbaG>CTl3MsqNkT$vz`lX6lOCOEl6q&nL3;sNU_-+J zWRj?1Tmw%4_B29ih8v7PWR`%G0w{vli8lvPUWi*hkWjo(ueUqZx7DzI%LbKv?q@%3 zLX!j8ZNipSoG_c1=S4gsNQ4S!v(Szxx-d4wg zLW`;iHJD5>DS+8|;mI09dN2G7z&1qBUmJ~XwBCD@^VO%k4}HE=S5~zNZ8lm1+806G(3T7>mY_^YGl6l zpm-@1Mx8Iv-jGuf!dw(DZzUenLa{cNiVzST&KSA~8~R_&uf?^{+lqyaSp4vQP}PUqaN(bI5HIG zB30oVm#ti~Bmw~k!bp&PnnJ2^YFGw&*i_(2N{7J=0ce7Mh#gq1F_Q)zK@(0@OpIl9 zBGUu0U8T3=#BrDZUfHs6P2%VQi@r#$@>`pcpWHLKZEZ~9^}iagBPrf|vwtxYCpFl{ zEqER=%TRUc<()i)uZ5HvSS=yu=0G!`q4*QLLyV=cvE)Qhq{By~{@^3i>QcXgGXSB> z7fr)OUCWALW_%)rq_7gxc*eJ^ieh8~M+O!Q;Dpx9wnqDS-=WF%>#jT#ymo!*l)Z~T zoMA}lx;qRurB+(=7A}v5@@5P!uHCe6iICs)g_iB)NxowyO_F_vLRdjkOV0_^0Pq0- zMCr)qIy^dUwd~L@@jK?bPF>QvVnSz`)$?mQ?%3-4fpKfWPypikI{nex z%^6TmuJiuo3nJG_p)%OkP1AJ!_|$T^0}6mYwPVIigd{@0z`14Gp_rVARt<(CqhwGa zWSpF7$}RyO*oy`#1kHkMhysO!M+&7b6Gth!6&P}AqYktVk%Jn8%B$hFLqW9ts?*!-KKnM$11Bc`V2?^fo5n92|>E;qFFxH0l@cV9~Uah^%t zpQdp8G+lexy7%jgQWzAAvXR;ZsSLNAd1h;(3NRyZI(3Fvv=C?Ix&W=S+(ER2(D-l{ zf$FB1d&xQo2Y9|1yfFiZ(!i95X*1n2nH0w(;8@|tXwCfYH*XvIQQa#Uo&LEW+;Ggl z@zJZ+8m8jval3f>8IQtQ(mdEXC-QOAO2_SO$b&hL1!*)KI4JL8PYqLn56gf=krDGh zPF0NRgdcd(a9?CIGn!N(d@?`d&uI%`%?Upjtdv3$29vn23*!=&4-TOen8-ayl-w_Q zfPYL1FZOnGOIqu_Ei&3N>Zc)}7W-A?SDBjceHN~3&2P=W8Tub9p+cXmdUrrhm|kvc zs2Q!veX?s(zD_D%$y1*VqfWjb@Ma?oSgM7tBg0@3y zm+gWCESyydW5AK9j>r`XV+p%hnn@x3(mHl&S#3&-`*U}!c7FWn-`a&u9(=9+*m$em z>y7;_(*p0+(%gS~x44o7YDa2Bk=) z(>O3dVZx>aF0KP9hSw#>Oq9)pZYHvnS4

L2!e>wOq_rdGaBsLkR-tLm-mFD&UKTvS}FQ`?=(j4aqwR$`^x zn6Y(_yc_jN%7h65HQ+<6_41oC9FC}9QDQ@dsW8cf8kp4ztU0ALf%6Uj6IQ(PZs=B+ zP%$52Bn0^g=n8jiJ}`Vz9s(R+_6mZ+i&B9$RBAEVFhj`*KL!=7)@=Lqlz&F<+jV&8 zKFc?we&7Dx&BWPlT5}%8b4HGs6v!vNTnt!Kob=1Tjtp z>PJE@A(mMpd}Iz9QZiZ7#h%k47^q?<3(f$-(319%0+Ln?T_fuX$W5@rnZco{g9cAL zCdI(?rK_atlpP+Fzg!&f7A)ydd%*?Lnl*pWKYf7h+4uHZ&8qizjHO>xV*VUsoPI^o z1t1fNWLXyyF2$5R%!R}8{0A8?$fQJ#VB>mgy*jz~!7zZ2zz4&XiJetoIV4MpJ{j2p z=D_ErO;Llf$bIv0h%l5ws=x`JlNE;v{L3K0MRMLY%Io!L9I^n{K~TS8qW z&JbKG$l{ccVjlvEg~dEL9U4!5my-#-5gQS$S@zYQ&))6*_^Z8s8N(tP@b&3Y z;El?#mxsiN9KsAemycLHJlJ~oyU>O))oQ=zA8@60Z1}TVO^q!cV)8E6SNoCEJM&L* zx+;xO4!>RzTXBS97(3WZ89Ui~=qT?g6gJ!$3{3D50WBqcqE{2UGuh7}^d*cQcrMBR zh-T@gm?0v5W{n)mD*RIL*I}^?Kd7K#kwbQ-2;eml-^6@_dt=YKC?2gfh4CHD>(Kwr z_&wx=`FYX zg_TecB|fvW0~1W7BNS<(*CgSq#|}CWDF*R0Ii7Jl@EvQi!Fv%Vh)FFW!JZ9$ULqKy zpy9s*w|0hlFwf}W6pxzat*9|9gJc{o7`z*-6%EN_YOA509a zi?ojc0^*U@lwmRsvxBfmLRHKk*+s(ilo>z07`!OXBsm%;f~<$SsqOmZv{fM!zx(p- z+3KNgy^@@ol~g=^Cg#bJJFBaKIwA7Gs#E_VyLuGz^1(@I3a;hVT(CZHRRxqxG(~uJ z($rwu$slqtxl~r4%TSox2UdkJDrDvrID-B@>8S&yMJe4sec_s7-)+7Ia3qdUz$jww6{=2e_I2=k;=m@Le| zAS&~J@D5}iOS!}BMTFh5#upq4`6ZJr1Z4P}(biym!5Bco1)5xD5r9f$BouPIQi@uT zB>=LIOeQq^v3>B5_j@;}wkiGhrCrT0)HBS9)KTlBGZDHX^yY?zH}6-P6Rj;iy8XWN z{QBW!xndMgP%IqSyFye3OoB;H(4%j55NaGdBw??~gTT%K>0-`>7K!Ul{Q_<#E}>!v zOq)i0fES3iSU$W^(xmvtI|(43lSyOH_nQo>1KiZxfCbEvV6`$*TV~Ev^2UaYmZ+=K5DE*Z=h6lWP{0l?X56 zr-d&vq@xI3y_1ksTFuv{eTzP=>>WFGf(OF#YFxZo6bBER`+y#cMhC4dGkQoO+#&cO zB9y`Cm)piZ018V8*K8aomUEm09HBa31Ov|m4h-aBA0T+DaAB&!O~;2<*uYvdmp$k6 zs)h#*8Z_eWO;@+2Kb_6oy0>CO$_CsOc|WKbDQxfli%FG>g3m;w{isrr z+6<`o~F6PDF^prBtWAXBJhf~TOIpUihHLw}$HD>a#5h#3_6{9(};`k8V z1jQkk6B>YFX=yk+gm!_L=@ozrfGEZ8l;9z@DE2f0Log0h9Pq$-=ns$qLdC$c0y-EZc_duu3&^1C`!DZL1N z3hAE;ji*7ggY6ixTByM6gdq=#ts|UaM&f9H#1oZ8EfBG=wc{kRgh^UBCTQFbHcn$Q zLYD&z0D&MkU!X!+H$!`{=WoBUP5RAowh2Ae^H|W``#yD3D?LYK;7H57ggGXfY0pnT zUu_)Ho~OQ@w%TyMcn)Q~fo>rVp9(yH>XQQks74TjVBmvY0<{lOS&aW_Ke5gvz;XkW z6@{P$h#Le=w#ATLsx)c}yopFxNdNG>;k06JC6xl>Ct7r^*_z*+mUvHZ8#mmy@gh^# z#H_mmhMhM~Fk7xIBf$`9H7Tb;gNrI9m^JekPrD~CMBj%RVzUKgb8ayFc`<6GXG3fP zA)Vm`Lq|FA1ZLtFP$%OSphL-?6yjV2;AJt=#K{H{G=gj-N|1-42HT1YiLBO;c2M>p zFcZ+4Z5o%~GkU{@?-zTtSy<=Wi+kE9?yF)vN?LvX5F!RKu?u>beOE7H*c^Q#;E=os zgRX?%(KT)^uI~K?QeGmnB7J}c3h$875i=JGP#m@RQ1FK^YApi?+0Ed|Z{wc}i;@us zGED+5?k|uN#ccuS9+obXUPNQZJr|i5?yh3ENwFtBFD)j0(bb_-$mlwmzir-j^83*f z-kuLJAhjL(bU=hzT(V-phnDkPG;t}bGjBBgv3g&}9!`I>cXa92?p|Rfpz zQP{;}o{O&qg)R*wd_%Zm;ux9}m?^Z`K#Z&(2P?h>ULM#QK)?jc%x^BfSlheg@hlU|0Lw?=0Ub_N47#S~ zSxXmV^hW!o2}qxws3(OKE#7n_vRq>1Qt&%!pJp?`t+%%QfGHh;XxTf4k*0c{2&SOT z;I|C=;J0vE=uV{Xq*%rijH?S}6v_zIizt(X?k2_((5Fyju=a2nv%fffLeiTj~w#~I5qz=I&I zSYTiS!+@MO1F}ZF)hX?hx2eY)4*X`-l_x$4e)}h1Xli&9D!!C<`JtuCHCnmoc>2n+ zdMozE%Uvrg94iIJR2X2*2RMwIFx*PysbV81`+0?03=fy0TsGsd-j(GE;6%Cx49)`1 z#zMctrjqe1NIRT$5n@tk!3&k?41+(Ia9FzG{vpIf(ps1_utsZ?oMvEj$4$fZYxk! z4cZaoeY@dA=KxTz7*lc$fb~$!kOIVx1X(U!Bj)Go?O=2bR|hBx>uvF&Lc&jQRTX^$}&29~r1EIB~_1oMsccHp

@|*l*VLUGh}EHXR+ETlI4R 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 z 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

  • pPIeW%w{7(Cy4yU+Tjcv@vE9$t$M;A9a zSZ>A7IqK_L$J0>l+=B7Fl=4>H?Lw++ZQqi>ZmL9nTdudap@XJ(e8Au-GIa^b8Xn5D6ItCme0Hg};1 zhulGi2ME!KMT;n~YH|Txkj!3$9g>R_mofyVk3wC>R2H)oqBO0&1t?NxJ=ks;xE+i1 zV2cvEHP(bO4*h`)42P6@>z8u->J)A==ckiCOTIqyckz=I3MA~d)?0chYzRpX$?u$= zI<2r}=e|9m6W-!!v19J|rQ?}PX`r-SZl(?gngoHR4#@@2&O2?et4f zNsT= z6ZBC|8OMUqdV+q@K5p?kAx<6$v3a9{C418Tcqgdj%#0=XxEOl zkGE~gK2*2YthynztI3mO|Ap3GUT%*2o=OfrcgJVUaj<-z4+^y_bQyhqZ<8Et%P z{ZKpo5@hMvrB}DET>|hwrgvg|i>?J@N)Yb~0AKivX)y-cYE0kgxs3K54Jd{peBsQs z7*$e}fMmh2V8Q}P9-|A;82(h~iZTl29P%s%8JLKpj496v8@Jm&z0UBC!)kwew^B&i zBE##9+0xgl+A&kf*tA!lnKPATqpu&{`4$ZC!ko0lf{o1T-ZZJK-`BT}SG@q_)eL?Z zQB@{|U0B&}1Aj z8B+U;6QjMVOtgVh**J?F2FwfIvgY-?!SKmcE!xm@Y+l;5leSgM%iGC2PgpxgHSxxVCVmNW zZB(mTZSZ?7BEW`Ojf>z2sADkI7~4atW*!39O~X53EAWk_?SLnV*o&^6!3%^WhWEhU zYyzVurl<$^4kVt4O->~PF9>Ef+zS9s7%vNAJc{lfcDTovkME7~{ru}j6N<#f`b8B4S8|KUS}B9NUz@-K@=RvIFG|v_&h7XwYcm_Pt&ez*Qx9=KauXq*)OS zkW01%Oe>IMK)_PAk+>4$Ua3h4ewRFw~X!hPL;;BKP&ps8j;P<|M<`g2z+3RmbCaAo1SGu zMX_r~&3l%o@zT#^fshre)~(yBNwYQxb087nMdJde9O3C5}HW}*0nD#6ZSgL9yZ z!lz?f0Hg@`5@2&gK4LIG#59X6Lh*(!L758q5kmfJqqN^0NUKF#AJn>={pm#z?%ZupoF;p*aFey@3A3R`;?f4-ET^)lg z^_#V5Q4LWjv=+_?X9s%(k*Mj8Da^%h;WluaN%}dn6dr`Sg{i3~UesM0xRO7>i#6|J zazwq%Bp=={91&_G?K*_0gk>aXIDN{T=MniLPK@6<-?`F>-+rADy~k;8b6fcS-dSf8 z{)(Hh>Bt+xox_W_<`(WSQZeGPO8uacAVX|X9GmB%)GEQRa;D5 z;h*`m*_GIT=f#fMYJDT-@k)I*|6AwfH>MV{JjooiD@V`?0D-Q}9}zgF74$m0K~ z!T5=G`Xz|Iq<4*uK_30(b-`p8B_8+*tuPlHpam3<1Wm$_5puDcG!)ce6TG&ZkU^9&b%3>gV~PEdMQyY^h?A zN+7M{hJc|m_`$;&44a#P;LVGbf3kJP6qw~7%vWHt(>bygmv5Z{8ZbawZ{!7s2?4uefy!E1DhSxV4Kz z2frD7_w9=vG+5<|Y0;y@WT{oVdF@86YH}G!S{~wmQGt-=sel=F;nyJoC^q${V9$>s`##^jJ)&s%=N0n$4A?sz*t`=Z`~8J>mgify%s%(#?Bvz8S(DD_wcz-` ze^zC^76T!6t=_SB8}0{=%i1lhg)CIZ$O9pV(cJ^0pezJ2F?<7!JP+D{gpmH7H8_ay z7-5N%!#JBZl(bI+#?cf8%kLx8p>+Y)L;4BH1!qo9Sg+Fk9lt3)=cjH%OaHLwWZn4T z#TR zDB{z@54?y~&d-@e8r`KyboH*2-MB`E zR9E{<-Cz{JF6LtcFak)xahFsFR)K1MS;7GU;f@5F#Vt}yqYt4*4rDzGw~K*>C&ML( z2W(~LwSrv`E*NJ*BFC|VY>BZN@Dto7Mi=x6S~$1s!!gbs;=48T_W$(yir!OpRqOWI zQ)@^t!*j&?y$Fy*(i^h)*+jh0a~@*m`Q78^>!nz^y2iwt1?FzOngq9R*^*5G7&TK5 z@_|vf(3;7&i=KtZJ=e@ z)eYBRAHR|Qcg&odve6oi^RGUD@3~i9PLDhjQPXC3^hac^#F=_=$3j{<)g~@${ zuS_~6a4)(3q+8j;>khNhyhzNi=6eS5R{8aLwL!2_&99kXF7Dlm{pe7GbOG0qlkia5DE0p5K~?L~{jb`~%aN+|B=Kp2E%X7=1R2yLK} zY;cFU$5>EmSkle>8bPJQ?Ebj9ta$p|lobbl`7ty9Rfj#7JM`=eNuQ>Q6&XC1dSse%ehWB^DHu5sh>nqj9+^r2 zYzbdTDdCAme0Z=~c9tOT)6ca5qo zYFBGO=M_jDND~QMCr}Acs5J+Q|=y*u;>#^8?q2C!Q+XvLR|^P$-b z1U}YjGg_pSF+I}BFbt8f9Hk(j<^+-TfhvV^8Ve|{#s8!0Jm8`_w=Ev9B_^gxqNb8W z6B0!Rm12s<7Ql|!(-grN?A?%Z!3K804kC!yuwn0tyg+bo}1YkRstD+w`vAvUQ(y zhtRJwK6IaJkMJiROms8N?=mMXT1LHQUi;yLR?JhCmh02Owa*(vN?3^ zbQG+%fv3bn5e5WnaJxgB1d2cb2+D9@q(4H<2OhJaQ5~;( zi${K)5|Px$_4JNQZNBs$Z1iUNW|rqSy=MYUSH>>Cc-4Ns7d9><;*whbJP5-EFqKEA z3fY#BM)6EP0P6(+4NVpCNY)jw4c&27pb5g82VoMF16B(e)&k@qnqy3$z+!QLBTz#@ z2701;k+nGfWXvz6Rf5eF>U6c`-SI)mkG6faEy`)hfQWKmUQO6lP!{UooSeOsa#QAt z50^eV7HwZ{#^nq@8l`vB^6!N!0{@rWW12!&B!kFusX15{zzl{ui>Kk!XgNCv3%V&% zzQ6izkN1FomB0U(A#4b7do1emf2P~M)zWiP=p3^GLPXH^!iiQbSv z;E@3waM6gtSS*03;i^KjLo{Hfq)GtVIDP|k%N?3kDt)bN$<>R#|E1ZoQ{Giig-&Z_ zvO;Z}L=q<~x0+gAJ+yu{O0a?rz^ai~;_`!I8}lW6_u3T7&3)>&Qm-#h4h_N~x5|Bo zmJ_gvHVo$;^b{Bgnc*4F1k42ZqRAz&LqQ5TOt`V4_aN7Rzc7Ac4$adcYlor*_m3cf zA|4+FW+W8KYf7yBVMkcquRxht$ z0RR5?V_tQy8CP#XxuTVu+wTbr+p?Gix=AlSvJA~Sur)rnB3qJuJvF`}H0l>0wbL&c zCNriGHC==RqOX8)RFZUKWPE(>7!r9v;gL5wvOCIqm>}RU*lnZU!&Xcb5vE4WE}+EF zzR7F>{EWW^ix-H81_zf?KJ=&aACx#5aCOR&W<`p;cYHxozdxF;vyZ`x&m~qfWALRD zH?t#h^U2s@2Mf{o+z2elW zzhC}r>$SvrmprQ`P5&plRUOeKt?^QglcUorWH+wW)H_^&kx2hVNe&$;#H{>i4f z94l15AyxZy>E63vub^&_jY-V19FhA5O$==r-zwjBS%!QWYihaWvSH(#wgH+x#P(dF9Gf*LAA z68&4}&P~0W)WMdTd7PR+J{GHN0U7x;(EL$zk_d!hQ6%c_hB}oP(%EnAqwjX?z4!K( zptS?%FY@#mZ!7c6?k@Yz1Ey{CpO(zIR}UP>_hFU{$y#v0mUqQx);rhFhPYMnZ)x#u z%Mq2Zf{`>YhdW2M=ekjKqhDZlK?J-3>wf?2j2?&12Zg-yxbx_7oqjMDTp0~_<0jg+ zn|fgm>};AF%d*(D+j9yrH>TZPlJt}XwzeJ!p%S@~;Rha(;OxwpxqLFoA%5d;0Ww#O znt^?SAOn(w@(7Y+66qPgLHJ`_z%hp13kOKTdrTSVbj5mt%?N;i3>^k7R;-u$ck>Ml zDmSLpvwz-bc>d>ErHj@y9GMY=NKK3)VoD5!?epS2HUGK~a@|4iHP zDdjA4h?Ps3B2>3vQc9^y{?a~DFbOZ7qx<)FmlkPL;{KQOJicAoVa=YX>piO3^BIRv zIbjO^cgLSi+>#qZV&=@bv)Oi@FvYO(8KHUyg+c?sPlXkAY>2?LST0aB4TKY1IvIo` zpwL4Zd`4r14%IUk<$$e9rI$+Uz@oH!$_ZSyzZ z?)kjO#JE!5b_s1fb61XuQ7;>66eXjcmNl_>~p8pwQ@b+V+_Kym1AC{UR_!&M_+F?2&T zf(xsLw3;`ICM+uk)U$x4z$3aKS_{K_CNmQY{Ue%p`KSJxrV)!)++Q3q%&*Mo@HBgn z{bXirdGlGa2TsmO%zY`VCq^Ag)Jw^e!W++WYxUwa)DNHR4liiv=jfb$^(XU=Z@)7==CJ)WNnLz! z%3(c`IXD=ZzW}oItKGj>&whSP0x{>KdP57tI0rck>^UYHbP+JcG}zSktW%GWj*1~VgUdB_OFFkXCeXv%*XFRoaz{Qosxq@U(E&|JgD@2IH;qD#TL z7?znT@{T;3F$ZjK+#eb`KxZ62fpYND;y6)f@DrRg5JUWe06vjou}TWm1dm;?IBblV z_Rxxpy~f}jW4UWCgDR!}q{No*qzt(8| zu_ODUlRx<`)@9C*FAD8fOW2uV-K~_m=5k`*Ca?1mBc~izC1LAQCC4;asFnSDbZXp> za)Hy%galTwhE*P5B8+5}s|mX_rPOqk5kh##Cr}{;#fzXJSv7|X(wUa6v5E}tv!+52 zS_~gXkUEkRMs9Ely$maD=-M8im8o&tXWra^K9^(u8QI@|@a`~MNH7oG{0l>@2v2On zmE-@h6L#gG&07_*t%+Z=p2{R~${(?m5Q1pJPOgNzfCnpk>VOm&cHmsV`VN3BG0%my z(V-#Y6#*5%jVMPDCV@(J8HkfBjVTok&9Qfg>axp8nKOT2~ zN{KmT_j-j)`KonOvngs$;xr@m#kot~a0$!4SIn~T)S<*{{{ia`Ik9y`w%$+P0Kvwn ztsGFVR?FtDut(*R3|vLUA=&`j;2BaO&xULQmj*gKEESDKTLZ+^xE=rBwp}YVsfKWmoM{A;3X~ zAo8+zO@cYl59B<&AZ2@=2B=ii8tPgo<}4-l=Br0?4l&vrkb#*4@H=!Ht`+(e)BqsA z+B^z)1fXgmnSMTIvsb`Jjpuymb-mL=-(An2rtTfrfn}K1RYz=`9y-+5@HL#YOSduUnpfsiL z5QUz7#8?z!bq;|DMz|-#QqTitt=MP4x4{qq=$gs4CKR|m5Vm{0aw@j-_`d@t)b2mC zsppRJ9uW^x?cY%3hWjv8R6HlHnZ0Cr;c4lTHIHX6*A3DSnWeJ~WOy2CG`6FP;s84p zVGK<;kHm>WHxDYp6cvM|+$o%>s#NyWaxBi0t&C0`+%M*=V5}@*q6wrYhmQ)JC33x5 zL*Oh-x425OWhwdMvlpL^^0{#>_~lPNY5LNd?l;$7vZ=GpOEl;n`xXUyTJ9f@d+}e? zh{ea_3h4dxhe} zPF_(q^`ejwASXE>l3HAQ>AJ}wh=7RV^tHfL5RC9LfdnlX8bA-2HDC$|g0aeoRe-`q zSuO|U%Vi?dg3$qE0~I6kgpc!Wa>M0==SAEt-F5J9?mOmWmYg=T;1fAGuZxSvYes<~ zbNZFAWcvyzWzbCiFfSEN%YTcLSmu2&Eg7e>oj$c@}Lr(T%MOq!-F*5Zf1S8iip{|t%UfR7&SrDepmXZtb=hr0BA_xBi+dRu2~G@}OppiTq7 zdbL^vD5b)g1w(;F!-b-F;i+ioAU89mXDrIcH3K-@Cy-voUJ$y#ijA>2BMEfG)Oc(S zrWWN)qFyByK+NH>*aN{qWUlPZ2_-8vNSQUKcGr35oRUlTn%bb)pC$h69AytRp58jv zD&St7u`X?PZp}UM_}1;S^EVA{?F0JuYs}CjSk7da%|Tw_7cMrw1`?nmq{k_qnp@b4 zN*!Pa{3V(CfQm8;f=I*ZG*f;ng7D>#*% zknQ30DC_z5`!3!UJyPFrvQgIk8f)KTPQt_E@41ZKSj>{R>)L(5-%^chHD@;!vfA3U z8aMd<(3G}2X=R5>A4i*5ImWq!H|SBp$!6 zL0}lk27$&5Qly1dRVZUQfCAdUy(s)-Ohx$OTcO^jECtP~4ucPlH9Qk0TM`K0NGUOB zV#3`@8@m0o%(r8YFJ5s^EKzcKF5qI)a*kZs1LsS}EBWEoF&SUw(sFJc+7zD#=xd72 z^#dX0(P;4zs3|dk;U(}fP-|1A0aS3cSwqF#hKtTjK%Qhsg8>hCDn1Oj8v~GFxHj0B z0{}B30>y^>M#SJ3fD((~EeaxUBJ$|av&Bb@_$~eP)!NU0pHQyVu{r$`>>rKo(sG+P(+GiKN92F)G4 z6%ZEp4~)}QPHMnOvd5!n#_R%Wt118Pcu9%zoAB9o&idR_7CQ$oa_t>SQ;?k6^-91 zfq4~h<c=moKf%74+A7YWn+Q2 zh#d4lSSjYk|aL9KR`6v*JxR~6?D=_{Xx0+5;>aWfa3ZiEpggd1^i0b_yC zC~z6_QYuO`!zVYUg#fWy7b{;@1p)Eszv<=@JFIlyX+>AH?S0HYcy-GB^Z(jN8)k>1 ze%&lYM$W$zJ-_1D#hWyct>^dG60`ViKAaWJq71ktyu?zAdu^2J{EopBAJR3DsWQWV zIf`(@=}X`?14_`JfbY?iP||YZBti%2qxr(SSkf}+9&%g2cn1C;7mCgXY@BAE0U?;{ z*9|O3e`|YnZHpZfe{EN;?8J~trthtRQJCwj=U>|GVd7%Z*QbZ$vHD+zo>5CPo*8Al z4d`=k<=fn|xsPvCstc)$iM{f!5*>!iwLak15obixhRd9IYE35WY$b^3(rn6dPwL5 zJgxq!M#tEy%gl~dvnLm;dj9_34W8}Uwc*9xOC=+6v$mN?lA@1(>~iMc{f?Fi;fs&w z3C;FphG!Z=vpiY9e#RVtYk9PP+~v`EaPs;d-a{!A&=fr12V4lD>woB>dT zI(2$ntMoe)?|kFi;#sx!KMwNj8Z~LOE%cb5WZUgC&Q^Znkono{uQX@I$Kn^CG4@uP zp9EH~?R>Ze2XzkYJV0(0vYf!N7W*(VGdqN6S-s(1Yc(qsC_s;y(mFtQmH7tfJB(jB zAX0Wf{gsqo@s@)HQbnZ=PhP%!A~O+HDXds3j`EsH`{xh4TDnF~8(s0}f>T$5Rn!Zk6}M)$0#Eh(fC0aS^kC^0g(OFlVU*^_ zpdL_3VK8%~S-*_=yRNu_Zey^);9n;|j+%fEk}W~)qsErv!W%>kr3G*T7KAdglwTUf zE8J^PKZ_I!W9mnqD4OH5Gwj~8mXnXYRJHozx1&mK%snb9@En~J)*SM1N!`8X9m|#Q z!FQ7Lc-PNTXWd994vpUTK|96J5UOV!jj-Rw-#}i4d~BT$3__stf!0HjA~;eP!E3X| zA&xTU=~d+1DoqvjMRoc&e9-xzWJZWROlyT3!F+@0tlgYqYM@<`d^V7o$%#<^%9Z{( z+^psik6%VSYBF_uiTk~6rH0vjr({2&r&CHeI_t_7p1>}4is714utpvWCvglXD-=1VhDlm8iFMYRbkMx zww)0;|G#M|AYJkXy3{CHYwD4z_v*a-Y4(dE+g88xASK$SKQur8txXf~4`ZfzdC_Ie zoC_bT^pj%^JB!x*ka1bv8g%a4ty@(xvDV0NL4hpq;PK5CI_|!0^9)YfJGtZQE+E11)w{(o<@Sof>Hu-4Fx`UZy*nZ4up;ab1rIL zSlW!u;Vx0eV5u&HOYTg2AUM%9kXF)2^!;!|LhD~*W|R-Q5L+sK!^D0Wb#3><3}Ex; zUxD-@8qb*7H>REXDlbvb3k$z_LZwDt2-8Mbt1y8=84fr7v?tqWxFoDXz>bDZ$ec77 zmXxs7JJO5NT;nG~^N)2VtR41kQL55{0~n}9LVL(Kgattm;6?J~VU@UHnxjraG8gKU z?pY-&x^bC^Yb8JTsr2YjgCW}IWg!Bc$2;>yX!!U($XzK1ht^7xr{`X$7@O2b}NnuYv^jSyWMjv^jB2=KZfT?Qc(Nt6d*|G*r~ zIn6=?W(pG7_XLb zSmoK`RQZ3x9{e5<`{`|;1|`DmZ-=qW*}&7rZC)4!PsB{`3peh3p=HiCaGk_W2}j!i zq7O#I@@C~cYwoGqGBc$SiXpy`A*Nx8^d@Z#f&tB+&{@)AfD1Z8S{Dp;J(iO)1gu#=gt z00x#^|JtS42@7LSm3(bV!|X?;r;q&WqRpAgOeINM#zRSodChVr{#Ys%d7j>2+ntQ5 zD~!@L=CyYG07pt(Vl3im>|`;GwF4(v(j#5~1rzJF*|vu4R%=4YDpp0ABlOkIZ%z6$gEFM=VfC960hBEPQ5i%uGSkX~zZcU;xXg0VbPw zRU}k6IYLYTd7v<6e#9!rXw$XlPu45ExBDO~JQ9S6!GCHh8-EB<>Di2{1hj=o}OcD?qIVfC>aC z!b*1*8$vwc9U%q9J_LgrL*oqsh;R~Rt6|20B_)~Fok!{6+pk|#hgy|BU0UV&FUw~9 zz0Ie$DWA$WlFq)C{E;b>K0kDC#J0i{n@w@spBWL%TKz&a)HY2MP6+zFU)SLNu6)<* zze869Ab>Co$pdqCZ3pBq>P_$vki*m{Azyf;pR@18ucW~a8u&Sa< z>WrZdmIu?$ZN=urUNOC4{Vx7Ef61bsHq;dE^=kVx_w{Y*OTEQHEj}GPf#mpv_Y~C& zq8+ehM(w0)bhf-I&}XP8TGb4J2(lJ!9sdpBE8#e$3>&{phUwUg^FLsRZM%BX-Fvs z)mWM^^ejU!dd;2pa6sLTndP>uX!vf;35_4wuDuoAxg7nu*(%07Uv?F<2m52SG5P%2 zmH7u5mKOf4y49@%CPGKbzY<+8sZYE>FgTDV**f8;0~m)txp|fdyI^N%*I~EnFd@N{ zZ!7x`xeLguwE`Gj2%dm2Az(Ma0^!o(PYM5;?QYcclRYc1I@`AWOTHW5ZS}#Pd+Wbl zG}vwvfTQ!&=cCJ+)Vk<_2iBmPG&B6FOIuTn%Wj=#qWM^{;pKJ`yMCHnaf8FWq8{=bNtHceP%(>D!u;j?; ziAlLn@_634$w`m{^EQ9E^L6tn7&BAFlE(;7tc&DcGa@5UDbcg$io*^p&EpvNS`-et zLv{qx!D3?ygbrgJ8*ETEjPbE$#OMhG3+f~87g(S{yaTpol^|>mKwuW;E$a7Y_n4qw z=f|&2IJ<0l+2xJr&9brT%$t#QC(Oz?9lw4H3{&g7nEqgnNjJ52BD@P@X0CNWwfyP? z_|@@mhQl{ZSMDhzO9T;gOWbg(D(JWzANiVL(_&r`bX_cq29DzX!m=S`(Jtb8LQ~6Z z6M=^mIhZM6*9ASAQi0Zm2d8U>t54q?>Qt&-lYqNP3l3d*QeoBCYr7x4@{Q$Z`!s+4 z$c2wh0>J(alP7?+ndd6)aLmYcink{p{}ZyVkHiFdGEesgwOcl7)D{sTBP|S?aCuQj z&Xf#ZgHTNxV(lpfeC7_DM~gWstVOC1)+`&!M}|naH=q`Sy$)vs)h%=f=(XG{?Kq(l zg9$<509Xy)NE(U$+hzR|&vA8}dZzyp)ID?W*1CrV+UEb}eNP^>@^kZHhMw55pB~=+ zzMs9fYp3BznU@<4yvtw&yZ_#+N6+5r;Tko7r8E?kzF8*-?8!};L$9Xe0V03!y%Bz+q&mtF|Ej(LZ^?cNkGZkAW>`i#B zoqjIF4UHPhu3d>qbgz_Pd|L86UXt3I!&VmD&!o-aF?kYAK(G-2bEfPN9-e}&nRJ)5^Dxfo^wn-y+b)A9%Nz|;UGalOJA<7jMklWerZ$MBdSj8a@Czd8 zvk@#%v@_zL%F$4#3LkVU8U6dgDc6tuJuayBsl~JRj``abm(6>U`uL_*zB)WUA$2Dl zx;nnK0_y$h-@>nsIn}v)VbzA6G{kwtM%me;=mr#_Ata;A#Z=@45%t^CIp%FNpF!t_aSel!DFHu1*D&4tj^j1gPUZL&4SydK*$ zq>69HAG-KA?&?|v4jtK?Ql3_pvj##z(T~2E@g@TvCTsFVGTVII-Qc1FyMT&Azrg66 zGfGYY!UKw-<%j76*daR}`Y?D9*ad4!#b}f&RC`U&*68x+fAjAC+4h_4_iCgs>2f&r z`J;k|&Cz+#qp&*WV;vv1_~GE(bhC2P>t;J_=C$8BH0d+5wmf=b`~;eO^V&Z? zF=?71!nGCw;797dlx9MB48|qQqcz&6eB!<6l}Kz4EGfb>z&)2)EK>5O8Wp+^o=#Xd zay*7S=)gd#Duh6-&OpkiFM~VAh=o-Sp-!D2_!OD?L9M|npX^PW zbEsN{>r2Z2X{(dX5ODk45f*5xB#T-UHz79nSvK!qA0Df>k~hUQvZa17#I0_(7J*$+ z7Gd!~Aj0U4VLK%Nl^Dn00u)ZC1R)SyTb(|x$Mn!#60S5)2U!k|6+w=x0WBCp0Fz&4 zrEs_KuOT!tYNEzO(ZcYTlqz59P^YeC7QJ6IF)C5dy?kHBfpyS z-0?GJ-alxMd{4cZcecfm8!rtP4hC!IKlF zL!FwhT@`S1>Sd2g{u}x>``zhWichC?_DAjF^0@M5C$@h{(!=SwuP0~lq+`=w$iebcPT^sDF^o&5I$OJS?GH`q?U?rRrfkF3KR)Oq? z@ijO-hKc+}vw3#R@l>!tP!ThGfn0_u1b_@!W))_;*Bch^oc^WDSKDI_FTSvI8JmdLZo+{rY(&F8@d-DeU>Tz%QEJQ8%=VVM; zec4w~3kb7>ZqH5$={UTI0VEu*40sHU8j=WFONMq_tswM52!VJ}z-{_p8eRazLSvPL zLsVM%Lz6mBZ%Jt0>f4jkecn2@uG{+bISya`(Z|M~HCb6>Bc(MYnOIKkJojvM-q7yG z_3Wq16`XA#xKYPwz~bK4!=s0#4x2RKAfm4UOBRHT`3xjeNH?_eTwdnUR4ztr=4lWD zRi`Q@Dj)#>%OI@)ms8`@ngLdd*2PoObIR6^*90+;2gmXT=LA4n3Yj+FC*5nA`c>6x z%Vv%FJoE3LUwQt^`htawgLB%k4UAa$pq68EhDHKcm=Wzk`i2OD%VCXZ`R`15!apr7 z2nAGM5+}yl0DZ6|=+QZAAjX^){B;#@De*Bg$GrvomByNr2$$I#H#*#ESS3tXOodGP z#~)2&B-#hBcBo*Wc_a0a6UX2ue9npz2_g(VE!K~X`FbifE~JPnmH z;#J1n^rJALxYSiOC&t8GZx?VDA`vN-<_*57ssJixv@Y1cz+W8Ny+_3|9Tv82(Z+9m zFURp&H*1%-sRDFc9GxF8TvfqLGV7zGQ`iA!e_KW`9X~hU`b>Nt^M&Yc9XkHexdZL9 z$Q{8{Gb|;c3V?6JsFWc9DFeDcD3XdBWgAou?383cuLhb2(L@QJuNdd7{(wYV1&@2^ zIf{}@C-F`|&5NE0az2SwdnZ=5-d5u+|5u;UOtVL_a@ z#$aMt45|zu-v|?9utAbXREJ5N=E4lYxev78piK<+d_buIu~8KZAHm0-?}s~Kh{6;^z8`-WN8Zm zdEwcuO?UUsZG1?Y-~mjzFdoz5DW-A)m^_f_Qd)7|u-KKlhF1fALDvG+4BY?;2T}_5 z8_WbXJ0@X*)W~{-x(u`otrsq~lZZ!Sij;hKX8E3fD!l*u z!jfxXA>`4z9G%aljI<8-79Tvmrx2~{;_^W|Zz4X;vl1;YoST^gGbEZR9zZl~X`VPB zRPk_JVL%YSu+C@Fiz)@`IIMm&rwsH2tuiM^IzYfeH;bi>;0$(Z!Xsw_#pS}}T5&Se zY2xR}-+s`?yYk2)iT-E2Z{2e5UCB=Dh=J&etgzUx&n#{_#un1y^9w2VMNHX>qc7S-wPrAje7xr~mowXcwCuaOZzC3I z_K$RA@@)Q?x5Ll0+; ztc>$TIHe?!87(miYbBBqae_ux#Y~?{jDdvKL_#Q1&@uoemOKcyXTBm~7HlfwD$^qX0StD*Wg(@?BF-T8 zQ)9Ba!ZZ{`*p1aNxVW>!?h!w_20Ar;*gxUHqIGA}Be$2ekHD*wqf5JlU0e04<^J4j zX{=;2pJ3Itu#M+zJ*AAp_?dR8dq%w+;@-1=FN=HMe!Uoc39bW;Wsu6lupJ8JoQM@N zJ*E(@%EvG&RTzZ|yjon07)!$Lv@QOI_(y!Ai3D*4ZIz;)Mu6EW z@)8X9c?R}owx@`rQuAZ_r z{^l(?HECKUGm6Dre3(3?@HH8=WzeiCy7{KithKenRGS$>N63wb`VOUnJOY;uS2wI` znCR2i;Fs#krz1y@FDORLJjom6df~HG4QQXkr!Ck(m*VPi_(VXL`kB@nv=<3GmTkwX_KyBUm6t9oTZ-biTj2tjlW? zD!=#2vMaORF8g}#MMhbcFHN4l9Rh(tt93BYt^xv(}t^Wpv`E|45(1l1@L{sOK^(G{_i6v1wo%?gRQXY7$((enZH%Olzu( z1WlASCmdiAC~4qU0J0*GMOI@3J6v~U3CT`oCR4a|DQ(KBMs^wUv5|iuBV~p_5Nzmw zXj5SeFou;EyGMJ#jo;oJ;QHib^1Ct9)~?P#*HB5~B1l*7D3+ZW?rAw?3WVjC5gmDQaN{6a#FaKAsQyhif$N+vVfBGv%1FVt4}9h`n{?Dp%o6VP1*ih>`RFP0gJY7QLn8jXk@g! z#lb9Y(sLp=vKF-9^|?1~_~5mb%zDN!vgP~2)KOMkP>Kn>+8sg&qZEL@i#WsG6$-sL ztaOoLB`T3(04MIY-U%TQ7b51yY;Z*K2kePv0)QFS99$-<8wNJ&5$LiBfG}m57m#~y ze*D|*QTrXHZ(aV|gSDs177PBcpSL~QbnJ9bv*ld(B;gK%j)D&|?a|D&(sShUEc18H z5T{{41L47_gojSpRp-w$amnFgKw0D-!(gSyq#@;y(Q{HQ(@w&x1Yv`{zz~Td6cIC& zY{RY!Z6DP>>wj?!K%hcNik&?SQoCgGp)H&P<9tAEK(SXS_ zy#QAqK%F5be-8>nAf+;htvhot3N$#e96SrOCSo^E8w7mA*ppWVAp;W!qBNif#irC! zi0^5i&$svOkhbFEyCtSy%87p*yLJ9s9p>?r!Dw;GNaG%hk4cK9tJMlb9!-X{uu|X5~3)hVu7_FHK5Sk8aQ&)1747e zJ1R@iVe$dFE4ZRTndTm8b(I{iLH(ha$#)mGBi0+TBaPBP28lcaR}(yxs;vX~U)Ilc z|JUHdqEkmkmAbv;*7l;YW9oOdFP_KF8~Cxyfj#RSEMrFPe#YH5OV3lcwr6tZ^*7q- zmk?-3xPuGkV+4k+4^1)SV{v#fqe1_vwE}=-0F^{!D_02sMhzId*6A3uwT;<0t1QIV z0OJtB67YqI1q@UIH|QV$8t)HJK1QiGTuCUYz1l2tMk5p`_Y%0l(#$Ti8Q^MQZJ1kGc`D+_UN+^|*S`gK*0>AT}7F;k@> zpkl^(n%_djVl1fT#Z1ol3OH62{;hFO`Era(vt(={jK0zf9=$l;LAKSc1N{-ji5ISJJ^@FBY(wB)7gwOuY>Z*~7@ z=84Vk{`}rs+a`J32)93EsoQT@H-m25ws1^dfAjd{ji*`pZ-#rPzWqD(@6fp)30{7+ zfGwOkftk!R@dxCJ=yY=#Kr8?W43l(D87yWP7+Q6pUl9nxPr_&mma=S2w24;2KzdH( zb#!gGF=$c-{6x(V>eT;g#jaltSaO7Iz0kPLYZr;c!ME5t!WSRpW1^P1FUY5MWmPs76_Hw85+nnC7{#*4m zRTGA1kMeG0J6R^&H}&74c-Sjot=W|N)MO(qs_WZ7d(frt#%d@m}3uO)`w zkKfh(;@Omc4zK@hvi)^PSeo^rOIW<0<-xeK2hwsw?yjh~QE56s2EpBM=&SADw7y@9 zHZAz5cwJN{_+s72*N)y2%@-XPvmr2IzI73?%n2CSD(MAU0)ixYl@ODO*cRmvH2>Ue zz;TcwUJ0@TQ<=bqT)H+?7CcF)Q}y#XgCDg2==q_N75_T7{F|W;rKgrJn8?{mF{_VD z!o{IQEoYa_ITLQ5$S*uhOnk1R^k!?#_3&jgBCbKTz-S3kwN@N>;<@3CWvMHYSYU9? zTA)#b9BW8Pa;HVs&{ee~*CEzadWn>zFOqVC)GbG+TE5%%n5(www*}&hlN^pZ;Oio;VXnz zKApbfjsfxIjgs|5rcAJ7mp`iY?AV2PMH!(Q7fO%1NQhWq$=bgGS07VKx)5gP2FM5I zO)&;HiQOscHm80u;kh>d%_%JE2zzF*T9n5 zFwc!)HeQ9ompH_Yk)tyMB&^-F^OK#2R7)CBU=@SGJjsyhJ{*7kSaW8&G8}PWQBzoH z|0jmXKK}ZS&NFi{ooI$u(c^2O5YmW=AE-&)s60AKMK3HeV+B2 zzeqoRbVTkozcYUP&=ERleSR4Kp!lzmxv5>rusl>a80_c>5q0n;a9G5fji7~D4EY!& zoRU&CJnOOOAHl##Y5);XM*#Y&z&FOo46FtQ0^L7}k@-1Bw9F##G=m~Qqb0M$P^W~) z%_lU8j_ui}Z08Xluh^bmq=EBId(-2j+cDtyin-G^q(qTE3ciM&C*w~TYY%KBek1m> zFf^ocZNG+fd|eeH)fZtu9Y}@3Oq<&RjEu__jRylgWRm zX5jfCmo3Lu^F$g>UQWpxg#CHJCt5b*;0@6(@|W;PAixUzh*~_OxI( zC+;r6g5!vY6;?%6U`tq8GKC3dY>6uaj;AUr3Crhhe*UyY(Tufy(k8umch5^74gI+7 zX4^Hf7LCi!Lw(bf;!*g(E7^qz?&0?`cV>e~SVcShp!PON4oN*ovLFnDYP-_^uup^P zl_vrqai{174`yp2ef8tlgjS*s{L*I{AOu#e%NLa^v`}~NjsK&4lSG6jQl%r>ZN@) z>Ylh&{7gGS#wT2JhJ{kcV$-hOc`(~4uc)!0+SAekrh-*bw5t*U3!+m;dqi-O#hR4; zjE`vEWxt6360iz%Qi+P?wus-eA#nrfq7`{*Qq7PbR`l>Md3R!Dvnzj}Ean`y*Oo%` z{X00%IGp{N3EADAw_?No!d2p?@z<}2sc$_=BJmNctZXEC>aZmP%P!_4jDcy>MSi1m z1p{Xwp)C|(!hA%5{pxUeY!GiKA&kGE#=`x;p+?t~V=z1y~JUi*iJ{*4R*B2o#W72q)W5CXDx{JDa{G1jJo1wb?(2H=N^5WIo5 z67U}5Oa7ZNJuM7qD@7-zAxdj_A{az5at)S@0<|YDbM!mn?z}sHV3SIZdR2e3clX*& z{+b%U>DrY21yvM|&S5dnu)yO>w~S9buyjvuCYe0-+?6y6M!gLKa)cR090E?nQ<`WZ z-!Y8hIbV=>K}6LglKFtOxiN5DOwJxvBV{h~Rjmh+W`h3*kd4sgAh)GwBxEtUR4s=6 zDi6ioVGA$JKWP3C->7*{1-_Zk;_pw~%6@O@bgA6vD#g9$?6JQk$@^AYli~33&!6Ub z$ZXk`F+87#jOa%O$;BvtL2DUyT6hhxqJZq7A8PLkxg8M%st=7%HKKAGm&0am&DEi7((Al&ICv&oKEIm@WLJtM2T ziNR1m*;U2hl#@k&4_c2Am%JK@Q@vA@=dEe6Ip^uVqH9s6By`SULcFfC$WK4zR6 zdVJK!<~~z|?lTZFqcT=2Lh+aSu81^hiw88PIY*7k&DRC^z+C zFU(%JXG;6m(i>f$a&PaqzxEk6&NkgLi{8w`TSdW4}Z~20Jsm~g) z%q!BUL9HMB>ihVi?^3-d(joI`iW9~^oNr`DfYgGpG06dEGzUT~lV=dYAQe?4Jr^ud zkVY?@MzwVgR%IY#Vw?|H+>EZ9ktUgt|G@$vz%piE__RN79_1Fjph~|Xog>co>~Qk4 zX>-QfUXU4xCoVW)&FJ%oE{~jE7(K~)v3t;TJ(nrDpTct)6_=6Haj=8b#z`Xw@{%Yy z#GwRyV7`b~H?}`scwaFq07B*ANN`n1gc|oS1Og$3k;8|kS0rA;?CHRamF?6pK)CnN z!0`QnYr#>gI&w_Am?{0%&q;7OmD8rwn77VkyV!!S=_V64DEv$FsLdD|8-sPgf4Rv# z9KGPluKcp8%AGoO=mzl{PCF!BdM!|BVi)_2Se`**QE$r}zCDg)*5FGJ0N3M9Fdgv* zpFmIq0Ri}$aW~8&xZli3@b{)M;kd~Nh>Sxb;`)<63BG4*&j{I?x~p=DCg*m(ddsEc z&$As52t{!W$m>ORI=GD8`9Dj1MA)(Qg$l;Z_)Y67`9}_EdwAVBVi!Nyj=w_O8u_&T zy+td8k)DJ|!*o=pKL~IL0Sp%yMPjzcz&_7PhG`FoJm4ZpfmIX0xlq{{c0u9;PN81L zkCSSJcLod&&6g+)y^5LzCpG{+#=?F7nBKHz7ysi8yZNv1iirO(-Mhh0_Ca`f(orip zZ^+@a8@F;xl@Ze-j~NYBUXPeB2-D)p?GQVhAaQfS(77i30)2=UkpKX~O%Rr~27F>d z9zZv0N2e54s9h%u3^HHjLLL2u3vMyRx;0q84&La_-B(lKk>IbD>eJ9Z2?Q_mo z2P`PP^75#^Y#dheh9nH%{I1KHjFBZRCy(CU4kTv}XiXSsRt2Ge!o$23TO(vf4_emfaq?o)`)P;Aj(TzPk1B^}M2g7b81O^x z^y)_X>HwG2ajOF?i!&yUgY{Xk6&b%|`H)qt$KVIr>6Z|TZ~Z2|etiE#VphlYvF z(PXW|*oUA@@L`NVmbYTQv>0;#0Fxv^1~c*1<~SNGT!mRn%-x_=V9?FdDUqmfbwNIi zowxc&+N~;#6FbJgG4+F8eby9t`tj4x%A78KJ*8S;!Eqv}$|5hbS08nA->?Y#=Qt2K zde2aWEbm8~gOb}Z?KOE{8qJr-B$W1*X|*UpJR0iIVlq$<;U#gw_W2tThMM+R{vsu zv?;yy`c_i-$51fcCV*(C$?_}P%Rrq>uICpgJEn8w&Ct@T(!_ug3leT{T4eEfxYfohd z;w{2Do``u5coYOSzEnzGygvxT1_}=}g+>+f7kXhZDrVAP39vyxtC<|)NXASXRRO*{ zn2f4Ifgj3vff&Y>;%$aH9d@e~GvmfPi?+=E$UWio9}6Rr+mA1~nv343dG5JN4o4el zI2t{FvhdhNdoXKB#^|FLVM7{rMutxd{S#yi(l@+vW`)`+08$0hmefV_0Bq2nmDg;& zlEQ#~ohy#*JqR^n7LPGBXG8^HO5TFZ@MN{7ooq}JDau&J!K$XJ9&}NYSIlnGvrqKG z%q@q0v9z}IzL_(6iH(?Q2HcF)>&0AB*GwsHdAKked3~XPyYkW6$*XuHt@T6Z9wK*I zH*yoCdWf>jU>HdotWND_kxdrbaR%=!RwGyBhAN?IT1~_S2cQF;KuIgXYI_I)tc~Sc zrQZwMSv(9wEG>3Hhz&En zI{Tpo`2%l5UZ6%)3-$>1(gYqI@d2N?_!K zRs5mZ5T?$V$#4x1M+yf+6#yHKrkoB@xHZiz(;bQ`6l==NNYkwR0L__DvoWlaOrB8z z$RU(kB@j?9N-{kWQf{Ulfx%jfB1a(dAiW8ldNr>4o)sgO)_T<~p!czrbwalGJ?Pb= zVoTe>QVH+ioNzOY`6uVyk{P-4&fNcSs(*N8&XKt^xBQH?xdpqyVu_3=1r`ooke;~R z;tTUuSf?tXD!3@?Ze^ooR_@+1%cu$%g6jh2?qo;S^s$8rpEW=$`In(Hk|`sU2n=5# zcH+TG?&m$?gdj@InnP*P6^6g|Yh3Hb*9UC~E8eNcg9-LT+Y^cLmCSng{^C2USlek| zmn@#RE=AirtxZ+|hJ9r%r-H3bM@Re70Z2}IA;!7P*GcsJDLy$ILjWHWUj%LgRTO1j z9f@=(C_1UocsS{9)vSrSMx#%A6HG1z)5A9pNFE@MYAe*KT<`XazSzI@(>sG(yxP&L z{H@tl`<1g#CJC2!lT6fP#ZKEj39BjdvLrscKlY&w))KwbXxRBdU@chaz&JPpF~~q9 zKx$`PfW0=`?0^)&JF8$Z6)1N#BphIcWJ(MLU_H^i$T3*0pdmd+kdI8ARz{38o-~*d z95oqrV=!3n@n6n<{_l&o{_$T}J#*C2MGH#Zd8LGH_-S7D8~YEk1L@%Imn}P ziWbX{R3yaWfDNQZ|{7e_b_KpaLEPI7DtOs05`34US>M&YtM} zdf?#dM?x^be3dl5%)v0yHF=h^uFI zW_>j~{=%w^H#?5&^6=9IHB0U*sB_p8`gxE&|^e}Q{N7^ z^GSAeezZN(x_R{0i2YCUw%%PDeffc5aAZD-xF~suBcPRRVIY}O@TEgQFok}QNx{TU- z>~MlD5-5^s?~bXhXAX`2g^$mgJ5W?sqQVwLp{B4vBBVwSWb!Tr3U?miA`@8_p?$!YEEK>|Z95k~HxHd?DDMK)B_9 z$dsEB0CR3eDPXLjPOq2W`P!lOy?4(nQ~J!>>fa3i$)Qa?V90!wi?fegG023}+c|j- zvS&t~T9Tkg@jvnYU+t?*utqY&fX2ONx6odFx^+QT9~cNUgo&02J_=#-H79QXrHzD6G|Z4aL0Py+FoU3d01Bce2zC1X z`<@+|7t2`sdB%?iVp4xy^QFscLyclAZ<^@feB!`lrisds(_)@2*9xZ)Cd|I|{&r&oP46u7U(yH)6r2nJ)V$zG*k~U|^dVz=3D3LiLAxT@&Jn3jb zt~fqiA1Ved1OVs8+zDMC?*bbQq8y_M{2k<2&zFICh>gSZTE3q2;P;>#-(~;Xy!^J~ zKMlEA+NP;7Q{}wr)WsqZL@Zvko;k01z7{1cUMF%;Zq34|LqwNTh+u5&!RTqlTqa_P2SiyTT0T`i)D^?Ql;)m- zxeAIKl5=Y+iWI(Y%f$I> zmRu=(Pi7#L&Ud0nDabw{tQI%*!s%In% zoWdrMJ>J^ND1y7ewEM>yGVdh>nk8G6gAKU?xNd<&)^ z_PIWBP4wn`_8^2{gBPe@LfkzY*K6Lu(g5U+NeJX1oOG04G*}P|$`f@8ZHJe*Xc9S# za|6|cj6w$^Lqt-EkQVx9+|%)pCXVsbK*h)aunu5wK}Qcc8Z-~;4Nf-VMO?o2*Q|`% zKZhThUd*|YkK5qRi%zyS5U)J)EDrqZXS$e5`oU)&h9TT|+1Te+t7+5kFHaagMQVCe zL~qccw0oAm6}dS`3o~eD?#Qqx@HtNO?=)kWwJ~yl5Jg}%ZavcyfP9(nz^bJ$<}Gl` zNtST7h{Q~bP-@Va0d&)G@?wqUupU(R0J4+_p-y{KZ`U}rZ(7$?Z>4^9_tN@1ue_C6 z+jd*bTfcMqack4EYu3Z0JimsGYYxsZ{2Hua@Wy;%VE4`*fsH*|b*jVM8lP?oEIvI~ z2H*;iUOOHz!Q(4e6$6LG7;Z@rgc6O+A$eWc#gy-n?2dD*nUHC2p;W^hufL`fgEY+ryYgZR_S!Oi1M$9Wiq3iS)up zE&af>gXzZA&ohp;v=8atD=@U1D*`_9nW#d*)zo3o>_9^`I`O33VkSqWV%Gcc?x>9U zyt2z7iZiTd`o-*rnW)^1(FMwH62t)WA0`jz)8K{BMKfC=zQ8!Iv~0}cFwZ_AQ$Jbt z&4B0QTpw*3{&T@D-_bc^$~bSA)Eiwbcjr#LIIeJsoHl&y{&6~G{ES&pBGjRn;!{g< zMTHCoLj)irildE?mckhzgGQWumioPGhfw3AZCY_y}KTj?F( zYqJ>=ksI0Hc=RV8kP!NKmqb)+?*fwrJlU zIS~0v9&-ppg{csz1u8tlbQOmj@NJM}2sdbF!B1KLP6Y<6iK_v9CsB@7-9&NFdw>`3 zTR#mC?%HVHFqf{)_E-KRBrY>$gMABjV)`}fL~CKf{OQwjbL8d3=~v>EBh9^`lM1w8 zl(Wd&BsQ&r(-PO6@I@`jvI7JSH1n!b&@F)t8-fPXy|7_&IR;vEDDX)&Y7Zn$g2KQI zV&=#oPNfTOrpWNYHxWLGRRti90>B-@$M{LBGjeKqFS;4oylE-FnloP-Sht7mt>~^e zINx1+&N@C#eE8rI8@cVn^6aCBvf^!(FJU@zB5Hb1`6gc30I8YG<0|{$93OTah z`sWAy%YOEkL!VY*i+s8KmdWh}b{iZF)1^hOjuD5$lr`~0QwuSUdty}k39#r411)Z2CYhvB=7 z^isD@v)sv0%20?BDq;=|K5=lO{Xk{fy?fIK>)rHqjCuL}X`-p-6`1AOJkIsU1b~dM zlLp>LC}vm$-vj3b(Sd^~D$xu`(+~)#Li0wB1k03|=1rdrnTX_sGozNc z$v}xJ!jm9&aa>~4dQYPlwsQZh^TaR5Z$7kem!B;no4W{RJ>Iv0@>mexg`2z9f#w$r zXyq5+`~BeCw~n9D6WFHM2FAxPLSXPu25zClr~2dO8yON~B7!kBCj1l5J>zL=0y84B z1_dKocCMk#(0?H8czSS-kZDk}pr=P2h;6nY8NgQfo;1lQ2Z$NmEEIyFPKQc2b#eN& z%>EDBMkaQ-R@#5bz*#vqxYEp(!5Anuym!Ov6c7 zq$v~*2n&G-vlD31G`pmI-V*aW#@GZgwrsH)fHhC#e`sCq^ma=7baliQ(Eea* z{*#yf_wu9rO_MkEv@Gwp^q}|Ve}5=j5Tvx0B_hW z>TamPK$qCH1J^}*dZxkXJy1L#R6!F!BLE&Y{N}#5ZuVF@bMY7P^J|28^%>pwy<*0@ zsHc^!RFnkcwPT22jV)O@dlv7rzw2=mrtpXPU&z?T?Z!3^aqAk?)h9RapG*+7z!oP$9G#&g0a>F?Q8Xdg}pkN&nryn)k=!bN4PzO{?JEvBcFPB_6e&Sdi8Y z0=un;$$=hs=lcAi_NYZt(#GLK^SvTMS{@h09EU zqo)KChQ^F`%MhFDdxqAHIDn!U-T^m*JP(P5PfxMju{}Y6{7Q~7M*FzwfQZr^2(P7Z z0Jj{lu);T2eVmsZTVAf;H#=S`|M{9V(+tlhpJvuO%qp|^&!di>Wj}MLfbomZIp8#iQvw5V0Gh2+m*?Cz5|Ibfc z_~*s-Q~r$yexr#}(Ymz)^47JU+m%KcAaE%rb!pgT`=>gwty-2lIGqd0<;EhI4^oMnyzxi6HQUN~}wH&r3QL{(8 zkhZ$A**EXqv25eg{C#uw#El!4+ER}O`*}7;m76zgQMVOLZ%tkygF*11E}(E>td9U4 zEfL3dBU&4EjRUllTd|3J$1tA@XW~)wLIyDLK

    FJ|N{Ygru?IPmK8tk3_%86LEP!&Upi<3FwlEcoOLl!TI|v zb>&<_;sssQY5-i4P!SSm+7sw5XB<2mbaTs*CS!h`y};XH|M}WWoosK&Ja3nGO?%T6 z7Q~&7P01+S=j>a(biB6d=0ly_8Z@li`Uf@_F>$5(!bk(!Bqai90NV2ot_-}G>FKj# z?qs|n?fXF0ObP;B))E6b=rG8o`T?xbA_trf<=99M#8)7K6G=<}2(SWvHla@6t*W_e zs%yz#1}5xFt+vM@>e1~@pW2?qEI^aiY_~GNbN-$CEUy4vz3KMj`~|2r3@C1dP?4#W zmh%*!fc=$7d({(A?4X!uID_pB?0d}f^2$$QHCxAk_yt#D=`K!@%X-gDdBr((k+KZjb}cklCj@7K*0OZG2Wq+vjVTtduf zk(7+UwrSzNH|+T^OJi?uxe6afG1_>H@=Sj)VSvNHrxEPWkPjpeaj=#dz{iE+32+x% zD!A3WdTH6`_b1M2(K{?4H09G@?Qxa45y>>Z>PXV2L{E+_d?5COJs2CS%e&>i%THrA z&*bY=Ya$%4yiyfT{9@P1a#`m0-qgaJ4Wbgn5DZAv!PD?Ei^snJ6d8vbj8_E%aL8fg z!p0z{!50R+18x+|2dM`%0*f8WQ8XPy($8l-{&Uvnz23L{b~NPWfkV#M@Ac)!w$osq z?2&6GG%($wBd;w;7*_bcCU3trZ5Z*iwbGoK>)hyykmAF&lVduL@e(pnU2#=$i}u1m z#;~xV=72P8%;_}A_9Apb;=wq9DIM!fSt~|crZQbCOmXsre8;FBUqi_`sX@5Xz++G; zw48NO%hmt$iTW<&3zsed6TQaPZT0cbpBk|z-xMV?yM{~H_Mu}OEEiHnubFM1=u##R zUq4H)BoB@>ez=|SYlx+7y^dY#)Td!5zKG|-a&^5Dq%<7tYBt6t8n56JTbivfWcwZYdW9?ReGQs_n-Vc&0nSmAt*>arK@f z4;Fvq64xzqy0g8(g4j3aCcY65Gmb?UK5EH1k2gd^@MKwEyM&piO0u>CcnBxK_7H6$ zLbAt)@W~D2V>3p@%nSER%vCr(IACH5g-Ha9awyNm_n`a&7?Up{pb-vojE@-wGlQg* z7MVrMrQjSg#t3zq8c^}vw^>a}{$AU0{jpVv-2x^!wy+;L#)a*!U=B|svNNL-ay!J! zXI70d=5)4t*GK~jH*RcmZeH69n=%Va=@9&)LFRn1atq{+dXVEqaG^wmglgt#sy{aK z$XqZ;QU}!Hj8a9E1g1CEnWAWd(T3$GC=3KD0CEa^hED41;a!9}eYW-Dq+5&JyylE? zf9J;R2M3C@y!N#%xA_=Mqs0+7%DJ3*IJt-=D)RPIgv*5_vZJ@gY!KtX)|D7j2*WkT zt#9XEJ^Kv6KSC?*NpfI{L{Wxpkl7Rhz_~CMLQsn1pOM>SXUldGrifKQ8fB!_0d$rE zgagJ-39dRIz2;*m2!^=HCOEY=ECh|-!xiW zkadfR&m14K>)o~Ezz|$k3yvPQEgQJ*n!4XML%ok}>nhf*0TS^Go4rY^)DS$1s5t=j z9l*UQq+l;oB!NlL?NUTBp{MkKu*0qQWUN5aqbVmCz%M|JidRlmH1yzO03Jv;;EvIabA2eBSj9@ghhH?u4AU~!+Hiq^RNyIK z8mERG>Jdmb_X&0hOQ+$GXbXcFya>}moie5`>HS%tuaEQc4s$|cW|w#tR6E?DfaKHE zY`e9qytyl4bNH=+tQ;!Ys7d2`ZGNp?uU4b)SDrj@e6h||oi9L|7wM7m{I2qKhel&c%Y>R*o-~-=sJI2HrquIRZ9Fp-A#$VkBR41pug;_waOeuJ;z!o!wFV0!DDqOwPwp~8t`P%;7( zD9ApTGC})B3Wyv{p$=bJ=(t33BsRdU6on9wk*?wG|LU$mBiA2w=;7smc*Ui&k)&1;Gn-HszE?9N*g+10DhinTaAq^`wvTq+t_;X`g%29F7;Bsaakp!awTeJtPUSO zy}XIEMBLdsB<4S2^~lAy!ea8p>W!vRrmK+Kv2tDOM@>SyX|dl=Nq;?E!B0#+Fp#Ifhq&iPro< z-(f(EgfSF8lK5$nH{U<<23iYr0klD+L!dceB8qcZuVBEC@#%TBdOe}z(eyeWon6{6 zd*WjjD=OD0qw4u;28C%OpQC3FnIKvqD!;HO%{ zi4h@_EeM|Amk5StF}iyA1O&O8qzvC+^FGn;VwiB4aAy1GsdFAlDVxA5hP7yI@}mIPMF_exA%W^oeMzC_y7M_#x@(CsZ%H4|NsB<`;TVl zb3X6O>-D_7P~0O+2l;@m!)+#?SOO-5^^t5J(#3H#a>^lABBo1g@{9kmN)h|3#&mkO zq)qEjX65XB*vL-32L+awlgQX~L-==QA#{Ds&Yj} zidqWWOq4BGH!UD@tylpR!mKe;ILIi#?#n9xga;~7XN|z!LxW;}piEKH_CU1-ZKLg? zHWY0dC?pgK7m>iqBD(@qW+|dZAR36Kapw7&gDq=bZrV0{_sm<-Q;Y`x^{2jRRAKBh z2lIfjfz>oiz1K&ThOw7zSQ4zvf71&*H{7eBw7r&+z0G)Vl2Xtt+H?6yUIgVA92P50 z7+pFjWE{nFMI{PeByM zgatG9<}KGQs!(-Jg0=aE$y+W5b~b*Zyq=P#5kvgNH9F~C`032ha?-m8PvZDZ-p;iN z3w>`tU&1X>f+twPx06Iqjy;k)gOpU@(qYPKaLOtU_(8o(nLijA@6e2BRnXhlh|zI9%Bbe~@TNP;uI7 z(0PI6;gsoWaIDe5084^1a&Rv$+BlmfnWn85zU+psXkN?qNEU&TYnTv<&n}=TY zsi4`m^3|e}@o*`7V&*F2;Yzwm`56cK#m#!Oi}RGJND3evTYwKTTNI@lVthyyF{nW{ zK$AEl(r(P_daP+@`dvM(s9sOX8F;hZKd20s!-8n_IE1tlkZBW_?SF+eTm zB*TT{(!SxaYn^v)n{PXR8T`Gk=GBiM=hdn_tCWl0$W$-OJNb0>^AcI!rd1c7l*sa= z&9WZRYr=5X9?a?^!4>+PJ|5dO)d-SqfKQU)XroZ10_HNGSD*>4N&Sx3{~l80xze+3 zcxGhP#}BW0eA}(;8Eb4Bd>2yMfE zg}wpW2CqA%8gg@zk8wHJpzT2m&s$~1Q|&QjliVZGWq|u3jsWchc57y157G(wj>wC0 z54nv!(i&mZ5krU;1?-#{1H2m0Hp#Wq8~VgG9yZM9r{8*QxcGIGrVS1Gfb7D(mCUm* zr!~<89=!N2zC1>8v-79NPK_P_4S}et^5m7c10s$t6*OHe-xvguNK=_ep0YgHo6UQnE zyGT+#Ht0BNA4z_v?l1> ziK2zY^+`a4$J>QM1E^(*fLUe$^dhkY8Ubws?;%%#TAUXI0|U4tBdSo+Nd5ycB#ga> zIl`%rGfO7A0Qd53qa|ogC<%*>XbEI3GI1UU0FgatA^9_0Tug3k`s)L`pMPunh5y0z z-9K&Bx7PlLf9bcpiuOJYUWXExkEOYKWB!e>^7|ww_gGd~=^Pl1-FWTP@uMv;?&D*i z_2E)x#{*y@bbvUsC7T$?6YmBHkP3@(oxu$X_67+6AWR;Qa;>A?A_p86Q*>IgEucKf z1x1QN@dzZ2egiDX6!! zv;EZSdgW}$*?^ndWI?sM-gEKtu>ll`3$&`ZaeD7Q1A4QX*zeT2=w|_@*d##MWUeBe zccB`DnS>e8>1Vm;$k3;P2PFV`L)HPvNFy&H+JtX0L{GR`99hf;l;j((3yh@v4PfvR z>!CF<%ej2(=SD58H$C^e@#eapb+hUJ%r-Rr9e;L7=VjPE?|JmG^0-35mZ!Im$|I@y z5XGiHMSNyCqG#tBLoBdX!XdE2_*~r7O>NN5*2-+SRffx18swg2B#$3P-~LXJxFt`b-&}E4s5^JD9!)V zMX7Ha=--c8BgSkv^tpMG_klW^d>rCv_BhRsj=aC@uOj zh(GQWOlG*&(VDWurS%}u%EgYMuCODRst{n8&`hMagCx>laX_Kvz}$l`822*xhpT7? zkw%k@Veg9imR&{F!B>Q!1!Ja+gSTPZ3~oMU?${1SA1(g3DBZ&H(5jEFo1V}M(A0?C zD?uA;sohB6hP!j}%B95YJ$3HHv$EUXdis=UPOekOjmC`$pw1VHbWU>kkj0B6SbQ3Y ztieI}I64zKbIv675h9HM7#LTYL1E1xp((*AgrTcJ>8X6_56O3g!N%o?@DX;A3PnVL zjV|o^@^DaaVd~(vsj1EG%wD`E(%2C1-F5j_^$1wFE4lEYA>JEuVP~8~r1fqxzXnOD zyLmq)^{yEjOBMthT>@G~C4|L6tk-a=ToO=KRID=fM2uy)Xh4Q3m@ths2Rfy6r2B(z zMhHahjsgYC3Sp7>g(b2Qm7_H>b!5`eBBr-j3_DcldUfN`0mp7sG~4Zy8arJNrl?2R zs{Gq^RppuI)@!F}aSgG!7jdVKlv32NXA}*Zs;Ft-yKA>WLwZ;s!bU0vx5+$7KvVXC z#L!EHg(?8QG87j26Q%E^;{%Z*G0C3c;OI>`yyWUP`}S_b#^;>nz#{&bY(f0Ya0)1}2&qSoK%I&Rnmba|fy^&* zGzwpAk-h(nd&QeYLt?I{yLb3Yzk}5i_T2i6PUhKnHbAFE2ZaC&8h*o9&&@rvh*N2h z{E&nE;$}5ss#81g1QD&1)5(<}YGr5u$`B5F2r0fe@|momozwym52y>XByg7Db^~_j zV1^K&{3E`UlYk6kh8CioVeJ4U5cGn)6vY)@MbSK41MQf`pPJZUa`65iV%y)nn^WUq z)kFIV^e1eOo?W>uc071%rGBqxqvJfbl-t1zg7Ysc++YdtrlQfJwXkaD-h3S2B{mR{ zDK0+*Is5`)OX3ue6|NaJEmD83L-hs(n&t^1sld@uf&gl=Or+_M+R<9_P~i(8bb#zQ zQiUj&sToAs;KAYOZBfAx%0>NDv9c8_^caL}?=o^5(j zR4!EW(8-$xis|YD0K29~??2kN>DZaF5ab5;G~Ohl30U$p=uEv}?kcZ-?CtXhw+&CHC!2!2ugmFF(&wqKNh!3z$f>BH zJrGv#EQGvK!&7KcQxKO+JPnA#atFD#0D(!=VmwxMVLPu|Qt;cltlJ8FHn^RS<;?Dg2?>r-Nc z^Ui-Yo|DkoH|l8@RWR=_TTtJ`l3;8KO@s4MQ?S2kqE!AJ?Z84PF~Edz;xyIlbb^7cFjcFDUK~>P+wtE zl}`f<2i<|36@>t~zA|Hi_%KJv7)me235P6+{=ykd0ays-9(A%SHhx47@`$zsE}$M0 zI8_J_b{Xkb_=PZE0ldgs)ta>Oo4FzAp_$v14u_UCu(eDG|MI(aSPx*{Wk1?i(W#bZV~TG$LpwF z?(DfmOCpM&BqioRW+|^IgtH>-&3^Ecn`Pg2{ko7!2cr)>jtRLXqt}$IB<>4d74jWC zdrY<~Ht(YAK{wAwhD3lc04-&5Iq5s-X8?Rj5(Af@szOVO<%9_hqB)h3?Tn!pXCHTq zCi2o1vuzD}R*$;r`{kCNspb}Yc9-4jMy4mi?$tB*0Or)Je|9Rf#G7<7E2l_tzm@ED z`56cK#Z6;7YU1cA&BnnOKwU6m4Mo3HRB{rdGo)%4oj5ComPz(H*;R_dl|F=)#TEGw z91t`wTO9g~(TiXg1j2A-qLkpZQ0_BV1}`iUF@!ZJwdre5U%GmDvv12JpDT5<-qvsM zXkJ|2E5jfHk5ew{mGUs}$+B`YOOLMD6{yTCRgd35pdl&V0X`?2MnZZVv#uOLrUpJS$|NZ;gV>>q7;ZGGM{%8sAA?#;8L zQairrqW7aD+3}L&u6Bp+?&EAHxuVmqhRvL-6aqanYp|zB4Gfxn&ZC)0|wA{1P*%IKXUG@vs1oX z)q3mZ{8QHJimc=ErP3{PCwjfesbC(u?WK|C#))0ogjAN5XuQhLI;CV(mH>A0v+CSs z>vlccw)>-7e@qn^Ai3I*3CO5oWL7*B!(-tz7;Pbg2qdYC^NJw=2(rXtMR5zh$@}1F zKpH9so=jPWS>R3-?-(#Ox(Sqf2xd9$z&B7@%HZY5sYPch{&T-|jf*}lZ3@;@TlllZ z+Olnkk!j8~Q#I@@KE>OYsOGZIl%1C{KSzJji|j-{%}Fov}||;(VVM{y`=Y(#vJaJ^~4H7Pf4zY1@tWK2M@+p(XA}W&?8=e z%R*v{!LE5^*j%E^Ih@e|TBFz}Vg!8(<1~=LA^{}13-SYEk(-kJ;%kv!r>jH0-O=a; zIaynN`C{7gDT#V8SfxMqhlW%%4_)=#RFfWb#(PPV4@QQ@#y`HWST0O;Ug=KgY5old z`Nhpl;0DoLaMe?W(PiUGK)46IO|1)B3@k?gD$oPcK1g+{NcufWNxliBX_O`!k!&IG zwI>NttYU=H(#2!+1=)jvL;mF4oPF|a-2GLq13!D(ta{Dkv!A}|dc0Zfy87x%y(ZI> z&#+O1Ydf;`*~Sva<5+rOu)=ugZx@ldE7jMCcEdZ39XrKB9N)4+z_ZDNK@%;S0fbHx z_dr~zSf}W8rMaaAhS?x7iGt0J^d7n|T)MEIkb@LI;v>VE1p~@hVz46{M*k644QJ>= zaRiaAHL=@zwpP~2$UDEycG>svabBy1#C?N^JAy5jb9sd$OZLLYfiJ(&lqT_#_{&L9m+F75i z`7X1km7(tJSTysml!ENm^^L~~hfzEB+{pb&r6OSh$sB5bl{A%0)+u)Gk^=~dc*%H+MU{;pr=lb=f;wUT5rfO6?D0%Jci-F}|N>s{j zep^aorMyQ4>}KgaW3rPQ{fXqFu=6pi(h(yKqa#L6jRH%_&c+idss}vcc>a(q%5YUe z^g((#)JVai48|(Lv^x>$*Cw}UD`ONap zDLyAwFDP7V_$snj-ZWF!SK3_9gFA~W%H_uwC5m`XT}-k=EIA%=hv7PA4O4eH36&+f zbHj)kmp?U?q04F`?391t`jDIfP78{kW)$%VHQ^)pQ-ZKagK%bUIgP%oLt^Y)|MrSc zcvE+z-<-9cMu);PTddP4*hDE-{cQFi^;(PykGn!VV%gjMK#qLWuIR><^iHtCDZxY0_sO(}WM zg}EJ7myXZ-#5rpWtFV}-D;}Zx>}1f+E%Hzw0>MU1a2+ve5-))(52z8r z29ypUuuPZ2ct9u-0!wf_LKHwLlxIRC1RI2aQCK&~P)7R5WFMJO%tr-&D@y;}}-cy{mIl5wNs`zobzsZ^Mdlt@y#WSsAd zpabX2xZBnjM)MoewMc-H!jZCs>A9)8IJG#Nco%#yFjri}6q2}1XsXcoF+@r7mDJ;m z8d$RI7=c5#LJtoYiQNQAE#sr844Pwu1zts{fjykRlJ*CQ3lKTMqcS9f#~3zvR_>|# z^K;#9wI1<(WT#4duN*CVoEe)gd+@rRDneV3acm#cK-8P@^n=8CXY}igjiTzEB&o-$ zZ`WQe#0)&1|CkMzD> zHG$yXn~0X`wCK5oukOT^1Q5*iI=5Dttypq2d)y0XppLk;=`*Nb&%xb!76m$ySH2k;-Zm7B-uKC_Ejd8g8!nt_4vIynf0*P~1QB%_L(>u^5Qz#o(s@)`igVuBR zt!8cAV|>Ofz0&Q4{vD}>@`gFPb<~MR=F8*~>ZBm_U{opUghEV@S=iclbLup5M6W3* zx7f-cVFkp)fJU>E5E4FdW@AdlFje@DsbplTgdOBoO2mL!zg%fuo zXMd~aCHn*(+x(&N*XzT#?@`8Wlq^2ISlANHI7)Ne_vAJrQNzBA4htP32)VMxm}>$kiKs&vw}em=39)D-k;FsJ z0qAjU;;aNf;*{na0Yk+*U#fieuO0tM zfH4O6iGYGf!7GiKNpjplxotrKl?sifg=U5Q%-7wLcrt){)S6Unv}5=*M0rLEw*(YR z@*Ta4jF6_iq#nY1B2#FZ-7j!BTH#?Y2=T9W{yKEktF$HSB&A-0BC1u;RRIg{>Jk=K z&rS$GP<%Si^W4rq6c@{iz`%OUsF7|X9H)<3}ICZAAbq**3Ui*dVATBp9238`c`J3{r-2EYE## z-RID-uKta#e>Urf>5)I&ZE@>{{-RW$VaKgabaKY zKXs5_+^k(@jF>dRX^Ja25yC}KdQesxM}+(oV?-su$O8odOCnAYG=}3?^s<1k^df*^ zY#B+clw2O9YIZ1`Wtugq#6S~BrCdcK#UjL5#*$-Y5eKa`sb*9oen!Y@*L+*Y&yLz3 z`MjXPumNRvg|TV+f#M;aa}xFkl??Ipzp}u8l~k1a7QX~-HIwX3a@!dgfc#xlMMzle zIl3^lP$E*F;0!^m&50}n)FI+=FkrAk??kkfEuWcg&$bZ)8*m~2O+^F5ImGPvpv;F@mD~4iM7rfSuEqmwpYI|m}^(yj}->OV7 zJl(W1p;FD5hD=K&-8+>8D+o;rI(`|LE@N+?L>QySVZ=73G(>7d{w$P`SS{G7$TyMF z@w))rl%o<|N5Mz{5kRfT)xZFGeX#UelZ`WqJY3F>3VgToM86Afj^7yl#ik>bPZjR~ z-DnxUO|{G_NZs+4i7X!)Eps&_=3qiowcJu{eAun53Hk#RMn#546jiniFG{A7hG+c-wB}NQy0_p?t^&uSs6F~6G5I~vEE7PxK zR2w;i-0CY|q`wV1ee3IO>o#?5^{H7~$CpFS7*a#oUT<`S%IQt7?!a!T_13D0M@J7! zy;ZV|6i`JqVn}|b#)2?0v~}pAh&p63u`vloR)$OgUrSCC(1ZFUNE@MAkR(&PfW9*B zNdA`$8|C(<<>F0A_A}-;7%-YgQlhA?3FY9T=Pv?O4GAi={&{VfZQD8Fw`!&|f3@RI z=Q{ekPgNc~+mKIDkM>nF*K_N=?d4@^w^rq^*i$s*MGUhy-)V*(66v1-v=PZ17M~>Du8C!*wX*jF3@r`VvD77%8Em1lq~)A{Xj- z%1v+>VUelm@L+09syyuTxbrsOk2Ag+Ho~}ey&>L%_Gk_7j;K`u->VN*l)vjqe))%b zb1*qKpNGmU-@35$sGT^vT5|647{a|nZ39$@rNIuP32q=c zl|@O!#m8L&xWd>qkR|YXFjc{c#l`@*L^u++5<7{kUaBqG@Z@R?EBLhItS6o;e+zQY z_&f4tM8C4y8za*z1u}A6-p|U^V)J`IsGYbN~B)^Tz#3y1^y z4YW`6P+W+JIpleWt|cCj4NgIbQc`_E>@w0FaRCFrf^yMQiJeSl*<(xL#W5rTGc9s4 zDiZ|f1c@*T1`flCxB|KZDz4qm|6cs;gkRs9E>md`k+a$ij@8&3n6^QCjCz0Y}pU?g;b+ZNXi`d{r_cC3TxzVP=0y{uugu2m)#JVPZvMPb~`IrzEEicxsf{ zyxMQtQ4v-(%w&2`{UL779B5_(UV*-KlcA+^jP-lGoW8DN@H*n znRbM@L)uE5m}sY|RhaLEM2#a{89pb?3odxELgn#wc;z6v<-Yh-1KB6fl!c04vz;)j_03}2ql8NES%ZHkzWbjDk5^NN#3~1 zevAG3efdk+An)|8!}B^NTy0`FzdLCygMH<5YJ#qWoh=#c>%F@meG!&^{=h+g!D>y7 zDm0vhsN&^_MoA%+7@h{{)qzZGfs6r;Suiph3m+B$8TUQ4E~PXq1l2s;EdDwECL%{{ z_#tFUbkBAq^%LpC_TddI>b7_FYu|#=b$jn0tu=f3`rgnf_4Oy2T6P`Ijrv|~O}5R> z4T~whXzreU5ga2IO|6dyRJGW(n#NuxxhOTHm5Y1FE^WF36S1Co^8^cn6VdZY(}+AB zGcNoH7EtO&^`;@j3zaiQc}WjJ?2PmS#16xtGKQ6kk)%X%^TJ7rXB;sYz`uluDD<%_ zC)vAwlg3p4WzspfZbwX~e$)9zO15>dAw3*;eZ7ud2|2gUe_N>vGVtl;C88oOr3isr zCu|E<2Z9cGZN6wEgG};*+@{xJ!N^;n>s9zV5HO@rP$sZfj9NrekI0MF!Rp6vDXSDAeKXxL??!h~ULB=0f#I zw@!+J2=j!9phA(^WE8!~iMUlLh*4GnHF0FgJSU<=Wv(i}g*cB($CwEy7umb<5qoSxJ(~5HjQ3>11UYbRFe@>7t9|B$|YcT)_REp>Tg&rL_*o@Sd z%IqnEY2Yv*R%jUUama{I=sPFahbbY+y>@i3R_m`WmskAjHT8Lf_1lm1ys3&2h3sEY zOFF)#kr>Bhw&mCrNg-7Yn~SMaWMncge#y&2yo$S2SvGp}SqA&zONX%>?-;tX+t z1SYA2svYkftsf07$O1)*nwlkg71Z{kt924Ko)^c5N2P!R6WWwR7d#RPh1O*8q}j>F znwz^%v~1FKXLQ!#AA|dPmvzE1y>~rBy0a4wf2Q$#b|9Jv)Uu%cu@grZDFLV|CWLZZ ze%3*LakJ{wwoAVr-061o-w-;H8w|U|=JH z=wnXCyC?JPC7}+fGlFe0;K&^yg_GPBx@XLp)Go+ynJ72lw|ZF{7Cf!^=94{(uXJ7d z$)R@9hTA)8_e+G^LY}TaADK{666fs7C=i!osc0~0D(FB$4uPpbohUu{_IU(w0!h>- z;F0Z)a~FaU6kMt5r5`6y1kVz{j<|s&S{!JfmquMB;UyeQ*07KC#pI!*BqWoIf*802 zGp7?th_0XaSg`UywnOvoYsS@V{KEWXPTmef$y(a{;V}9Oog<-+#l;i`KT$Ul@_?KeToUCIE+uFNmXNDVk7O}Y4wJG%t0S`y z?7+XNM=+>SOTo}3Z0Zp6_Te8R#y7EF?>ynnvFw6fae8Ti`Y12vK5D9-wE@qQ4zDX; zdxY;vjaO3J^=V1g+94xdZF;sD3F<4DAbh+`A(2u94-NYjHNCS$fKrYtd?_~vBpg&c z<%E0#n6998osgh{CUV1pdvOG?JSEGKKE##h1o9_#oHm8B3M5QxvS#tXzos-iye($_ zG^b;`k91GFI`X0Z#i;jq^qxIB2*}4bV>ttK)TI@(sxUBB?(q+?@We8~*;;`6DMLKO zGDCNTJCfcPr8n|ArlWFYqqAX`P!uwsi2IV_f^=34S3tmU#)R?^S;6T`Ig1d1Qe7wt ziLm1~N36ibgBc$2ya024pT2upqtk%e-~Cy)PlMLI3ip0oO$s?EH)lpC8m_aFkKm=k$8LP^on1)mp_ zC_>h0I*jSp(stZH=Ge;+Xp$nD%k&(yT(l*iI+X8hZ?1DXSlUK;Nt{=JsRXq$G!JZu z!&Vw74h%2}8ekOr*d2IS$OZsCYDF8|Xq0TsJ?6#PgL9<^_4}lD#m5I0xm#Qu+RNEw z`OPO^>qYqL?%9;Qg!zS%ewuM%(;j@uhL!u>qSgGie&r>qksOL;!?Jz5uE4)+Vd{5a zJEUiv2>`vM#9&PZe?SNZti@%a9?!&ENG1fy7H9}4_d&*JN&q9t7ovqk)U!`tp|J|N?l^RIs&bNzS^v#6n!t5iNzW~A>q0wX-%7->@O zE=*&bPT3ptoLBG;KVWTsz(Ia-vl=~O?6_$o1tDVk4PCFO8abk2Qn8R=cp^-i{Y_&; zAFRyM;l~K;g0toW!7kw5Hz)r5xu9P z!c#`Bg3ptxLu3RlUT7^Ua)}y(qXVANK3|b|S3x+|W&v^kT?`Y(JtA@Jh9S~<@}9)!>B7O_0em_ z&dAF0&(8KbTz+LO&RhEa|CxdKR?*lK<}DHs+FNo>;X6g~jSHCHAp4CQ)gF9aeB$cj z0)m98rizBzlB6g^2DGx04hkwPVNe|O0C{3}LS8{hENqc@>UhJ{ca--1e6N1}>7iEJ zj#z)~mv}It!8a!1cKY|Co@$|2ayqJlkektG-l8s459l=Sj3;xO4pLMg@{60MN8gD< z1`L{kB~#|3gQ*bVBuqAGp!R&5(5Q@NK)r?JMuH+}Zfll&rSIr3Y>9e;CCjIXG0i|?A!CM_$fSFsIH^g_z9(D?6zeo^O&7pIv8 z5l+@PU_ntOG+an5B4h~UCM5`C3TL`CvGl}$LKzbm3>}H7k*1ePP9na73};FO1r3K9 zFNGdc;^@Dq`{?S*RlUM5#B`hR7LEtFDd=8c zV>n;QJcoWDDTz`>X1YleN{z!?rOkv7VEv&S!$*X^5^+22SJ39pKRb^2bJ(M9n+I2K zxAv^&*QWgp5r}BN%d}r2pom>s5WBLtzRV80$Ul_gO3heNT!<_yXSABMDnt-STp-mk zrJ;zfB=Nsh6sUhVnw%lfc1c?CwMiwce-x_k5F3(bp=)XmJD_@;l~VQ_H$ z+H@PH#-{b`)4oHW)*Fs_9}LkSV0ZxKUs9PlGsPPKQEh>Jf!!{txx{TbS)gpB#Gy^( zN=N015rt{EFrHM%2#5$TWhK!`a@SyCvPBYS=!v zU}*i=a~?-3{M9;fp+(GJUn*;=L|bHRnv%3ihp4Vjh*@>QP+W96W?w)u&ru2*wsmzM zJIYlgStp%;;()8djKt6<@{dO5e) zQk;6gKn#9?QDmifrVSxsmEkC~T}6)$UOEx|?`Hd%KlU-+_u`OMm4D{QoZ<>4 z>MtWx?}yFIJwifSYIgX)K2T2EU9=@?{R47Y`2hzH-_v!m$b;+9P&hI91Ncn>m_g;R zJrTr%Yzjt%g@n`tV?1Y)1pFiEf_i{#puWdOgU%J@4)7|pFYidYF!m0RFmsMMJdolF zgQqoVoLq1CPwP$U#n=sQ}rUGCWS6^wY1T zGS&w(RDUkmEeK)8-@q-xz*Rg#j$%Y(TL`z{$ma(?!BvCOOGB`!Lg7ZriPAyRO69b#Bw8N8i?$hf37QK~ni7N>q?wMOW(*6BncsB z;OQcFz(p1u@E1&MXtC6tHX(+_fgJyedqq-mK!l zy%s~)KN}rTy-nBd-j(N+-UP;`bD#WTE}CCW!1nATa}9U2Z~VN-xnP z9V=w0r0zJk;2M{yF~pL$w4m7_DMiEr;^Cb#Kl7dWhF_Z+H~Av@mVCx!d`s2~h4;FWoS{5BV`E`5pW4N#nTv?*a4%wBwtjMGI0irgaxZxoyLQO^}5h@9PVMa6*i~~_-)H?Lr)I|h4 z08;TBz#0&jOn!p>BZG(bj9yf9Va}8ROzIN>AG844c*siZ2kctr*TJN5F4;jb!%4f! z5N_rQk?b&b=*p>sAKc%xz;xAsTIuLIwH*yVzjs=Jj_yx*|901nV!A&(py+OP8Ox4> zbE@=(HB^=eApvm2)5;wwHdow8h+9#_!r(bkzi}(c{5M6QZ zJy|Wx-~>ga7o`Z|n8Y2*s1NQrcuYKQ&kx5p$Xe<)XOQ;TcH1}GHeE4)tS?Gcp6~9~ zH{Ys7>H3^!KA9iruA@Wu%*&Kb@qzBza^%DjHY3Q4qUsX$6#gjXHSj`ksZmSN&v0dt z>{+Z(WM~b<4HqiK8Q`Jh_o8iMF)~F3Clw)}El6ABnxJanoCIiung;L{terunT9bzv zQ8go-Dp(KN`iaN2r|;jk44PZ+rR<2>sf)kOx*hZm$bd<67pX`+0>Up z;+60#Ohbg!N0iLdz!@>s0W6<{6D8VK6qYD>Q1aluC*gt7oFG1wYTT(zrvl8BU^$|$ z0fr`MbY%otymBx>bc0 zdN;*?Ky8879u|WVfi|YOd@z25Tmd{Iq_}XZGRgugE;dkwm}F22TOMWuVKN*6{+0xb z`5jF*OUfBr)E4)Si@zxu3kxx@C1=joHrgo@Eaoo1{e z;%NDxu%cXBWS#5g14MYxp?FxGV!;YtnVZ_vZYWIzj< zY6uk0{}+@{!JJUFat`5Gf!t?TbASW?f7lNN;Gu|FwIkyT|9ycJ6 z6R-_AhJd%wXp)*>kG_f~6;RNHUXBAAWj~i9yJX3?8H>6jdN1aW}+0%!&y6@aXI9}+A>Q;HRg9+MBvUSmcGLr}09kdpvaNO{WS zU|EFx5NY=UT64g&_Yr5=!#hp+XKnHr zNwar${5C*!eM9~5W|1-kRSyry&#Bf{%U<0_44y{P2>MX5?m&$5G^{0_27^BLodC)h z)d{Fk`f2`&Y&yIoU}a8Ft!VaGV8ZZAE(bNL9l{DqZlahGD*=bXs}X0xH!=QW(Nr-n-C&6*61b$@<55?659B)XfX`OMd<)^lL+Q zV5xUp6ZJ&Sz435G$*l0qz=zM4$O=<$6klDguks{TXTXFWHVuqp#K3&25hIPW@4zMT;rx@U?nUS#XEVK?Ec}XktI@| z7Ep3qnN-IlI9UEF!`#=8jgFt{czocmixVs^{Q1WM{iCP}7RirS13WX8IyrY?2!@v` zJ=*l^(z6F(LEAPxy0%W)xng6uTrvu2BU7oZoyR*)ahfre08FlD@&ZT^5$+$o6|o#N zKlIwbu|#|!JJ2mJ_-1q!l*&@hG6Ip45HOiKOf=!Rkm!G$*hl<|QXjNIf!Ro}fU}|P zZ3fXX*n8RblYgccS=EmSY?PK8cHeE{0sW(>kl^O^erPX5Fmf(><%(0q_vC`WbvKm3 z1CBQRHH{-|b!EId!M)pn0X;em;93ORr*e{Bf=5A&EY3-!FwlJ{c7P5+rIe$Y@|}s3 zIQ5Y<*kH_o*`$ml$xQ~2P%MD%AmD)ofW?IfLODRA3%Dug1kM*4Jde!oDY^G0gqO2SL{h!^4Fr#1l47oX?{+%ky0Z;;d7@H=p z9;|j;i^KM8J!jZ}FAqw&AlA3i<5c=;I(P0kfLsd^9-|KvdY`2R9wicKEc)W}0``YQ zQ{NBW2el)gU4+!sihS#|h8$ghqabl2?vtT!P);|U|)=J1&}BR<|%BNSU<7y z!HzN(k~#pwfN_LWJ4DWs9V(ZtL<@nXv(_p$`t*Hl&FUUrKF^0PJu}DoL{!gFq7*Md zMT|{DeWEza_(kLYaOEL<2W3%_)Xb>DC5U|a0SEcT&8pwTUhSM1i^zWoT@m3=;K>|h zs28Y;0o92&B$!Sr7kLcU7V%+Re|%VqF%}JVjVJ+lSoVxkYclawQq8GgQ1&3&<}cuy zMCHhJ1LLkW*)smiIu~l4S$l3y)yECL?{hdkZ+cwi<6sIUFrks@?yQScm=9w=*TlU$ zT0W`&@vF7VC8>WE3DQGuDLeqI5)pZ5s)2NyQ6XTcppxY8!T3WvEhq^BWxzPdc$u0eLKroYyuudaYdS@&&(XYN@&B=+QIfWQm)W7VQ0hvP4bK!R@>D?%p5G zKBcXoH;sSt09}7lA3k39*trd0mngFRB1o8nzhi z4N?e%bVC23gr&<7&oUBo8BraQZh!jX>*cNP)jntu)aTo6G5pMJBgYsR*dipC0sa*?As3^>p^+4cEMA6a&}VT#u`k3# zOu1!4gCpbr=+Z$au;Q`HS@}XBxgbKJAV32E@J<{s_B^giPCyiB+#Y|~{t&u;NW}Ry zSs~Sz{2gHYdhn}vN}fom9lkFv24-V@R8!5K;JDk&ttfj^tv$c)q@NtVpFFL>yvEIl z;glXsu0%^J6tN|+!x{GtNybX2yoV+S+F?Efy8zoEYfPylc@21~Bwbb}pHZ3c4k%xw zc*IOCV^hdPkO(WWM@fJXY7;zRIFeEH(?(->gY{qe*%!I{g1epjy-Ti7pP3EaU-%u@ zU-K&5vME2Swt3p#BxB8-=jWcre*kVdUidU8ULNWLaEqpQyCMC%_w6SmTREz@6D7c( z&=(X94Em)I15swkD_CQ(+k#t=6AGIKADdc|ejjxl5FYX;mKvM~uZ$}NKm)ZldKxx4 z^`y+V;{QXcU?V=oL_ zu{k*r^LNRof8t*!70{UHKqI?t}Ny*QasXg2R_}jS}0IKOLss7cbh1fkJ zXpt-f0kB8#$&k*9jT#jLDdkk4+)5Oc5WWC7PzOqRBcQe58qIi^navkjq(`ws0p_V4-!h=s)Oqm+?JI<#U?Q6Lcn z$n&|tVXaw6B4gxK1}0*320Z}2PQnrhdXj-P=oq2SoJ6NZg9iGHM+WANQHOXXMZLj^ z0uDuJH9_%<{Sp_MeDCT}=kBMqjzy39C;DKr9#~R2snBf~NZ=EWcG0cZxv+yOxHmWY zRQ3r@GCc}2sDo3V2|^{y=p1@ridiaRiMo)x5E_JyP1-Mx=wd<;y)v%|eHnBa{}**B zA{YV);E<`qKw`+f0IlcDqXv-i$JF~c6~LgxMk1utM5hWvL$}t5$TDqe*P)@u#&e0& zKdU^i*lMM|jRmhWzgB&d_fPvix?B7JZ?E5-e^+1NuY@lzF-}^I9O3LfN-NR@k{p>3 zEd4B5DcB9k9YHb9RfnjTGftAfMZo8so4@lx)vgDw{xt4j)TMb3Ut10S#t^#>+(weG zB1p)-^*oZv73w#cd@>|L6@(_9ucSzeEjbsItw|^`cmUH-sF*ld@T-wXVj;dpz8VNU znLs7l0}e*+3^Y|NWGDr!+bnJ700TL4zj2R&nX*WL?hNV6PJ;pGcP|~*E6qLrwcxplmf8CwP|eXz2rIVpVzON=(ytC;ht3C+_t<2A$)s-Y` z+IVOnIbR9-LZJ`k0cI?|BMK-NkX|NI(cvQBMN0xhBGcAW|7hEn{)~#w+ zc)nq`;d0~{_r-q7)4<^47*rPY%@q-M%dwPemcK|BA8qfl6Q@M?O^<=(A6^m7Hz{3A z#n8xH1Thd1*20x5@HLABLIHSDM_3|{;w}^H2TX{b9oMk5yvX%w#kon)@j|_da~R&6 z?t_g0VFKjErO5l|>i)*TxZcM8JOA?QRITID&mupv&v^PodW?!adjKR9Kh%z+mCQpI zSJLdwfA*aCmaQH5V>qh<@*DgU3{65|`Pk4MVvNP@L3X-WeH5h%WHZQ?#Mr}~ z5y`@#NT<&EN#9L&KfSFIvzOzZje2{5q#S> z{3>D!enMBx(%>M|1m-ZTItmqFPxQh-%=XU2nlLXN z@SR?jn^k5@Lgr$0piJcsCK;0x6om(NS&3kQ65$(ehMpI+7kZO!n>p&D0I=smr+ybn zFLnfKcaA{JLUIQOC3#u>(LKLfNWZ@uO*gArecO(ZkMy09dI$SGe$UA(O!~`rQ8~CH z)SF}Rp#y76xgtPA)JNe5-Jt2Y5yW3B8W7ZHjB631jZ`DpTj^9WE>pgOm??wKcrA3D zydlXPhD$?lL%|1xg9M+!eq84Cd6a($M;MidAzCs32v~+NB&U%UO2cdE{%ZRX#{tVW zyibX83#~q5{;FRN_!)LaX^)Etlsx{tj^?Pxx>M*q)o0o8%2x)-${#q$F9hLnzJOe| zWXuDm4l$K;#PYpMI2HnYN$cYUPz|t}gbbi=C2WR{mYRq%iHAWED)KfBy*3{e#XV>b z$w8=enU85t&Bp_hy^wa{jq|Jpo0_#97CbS3#CXSz^KA^dk1HuFzEwr4zMI#)yj8w6 z4c>S1`mHkiTO_Tj*xSl+(&#ahM+?&lRnILhb5c36csayOp)}%6v5C1EiorreNHliT z-Kgw1s(E|PAPg{{!$ofhbtrRM5jXJYfZag!oYzQN!Q%jc!G=k}%v;?keBSWn^@D4j zoHnXUANNm(RyM3h4nG6Xd3yGGCC%O0udWmn)3#fe`R*?e+O}GF!ohDFEG=&Hlv9^4 zl{*{X7JND{g%gtl7txo@8R0I67I35<0Ys#&LmNfWhZ2u?Il}peQvjeBM!QbRB9Ue2 z0Yv5{j(T((;G+BhB5*KoY3_dL82dIW&$hm4y)JftPKdhsN8DV)dL;7H;)dp8V$^Jn zJhTu(N?l3I(u=%H(NN-f;%6M>7dOk^z5A0q&OOV*lIcZ=yu{oAASDnEz8|hR?Z!JyIgz8RdeE0sRix0yb#MTVW9pn@GkP?XYt*u5fI072HC4 zfB8q3=55WZY7f$r5r&BGI6*1nF*$oj|CMtFImm`fBNu3L_c^g*LC!Hzw@g7Da{& z?CIVOKdB(@M(-OJ$&ylEQ0CS!{y{(~#JLV>;oaOUdv>wu+n#ose0}0XxX4{-vspV* zc%wu@+C#>OWE4o^3cFr%GZ^3?!#7y@#7!Vfr6?AGAq6GE88IAS^p(^4lfkE z670a$!v^sh*g7D(qt>m}=_(a$59WL{;%bMRhMno+B&~T;;I%I`q3bTcd}8=gu4abk zJdrJL|N4;g7Kf6USlK65Veu1BnY1a;t>qtR1fDLOdL z2E^XthNZ?7izKQQVl^ln#dE}QCGlmXV54ILWF*}b84&aqu4lH6)}-~OkM^}%*k|ne zj|$xSOb`F~a@c}FdV)|!5g3~u$y~rWCO7)*tLMG$mb=k+ynP&eNw1^vqD56McYfhO zhWmoJA;g32kGkd_I}?mG z>1P*QW@?SPwBGKFx}oGv=>3}fjD!53o8^#>{aSWq-Zh7<5=;s|OUa8$kEJ8|Ygil* z1lfc9sl5npAu2}_yLm~XD5Q?1vZD0msE})gqZX!=p<|E@aP#DU*tCQO#p6sy0L-@5 zWVV~d$CjVGJ=_1F|Cf_L-=AVPa$}-?#Jbv^W^a3}la%etJ$;=FO!Y}N$3DCgsAFms z#f;^+L6h7kSx_tzeM-g7&@T?);qviC!2x~2Cs@Ua@OH#S)a{V8C%nTaf=I=tBh~0 ze-WxG;6UMK9nhI`?a{KOzXECoy*#=>~@C!Nz@myHrnSW^Q1#(j5KrB94ah1tpetTyq43d z7$D^AEfy(S^>=GGeb5*R6nZwWJ=D<9H7F9K*y0!iFUF5gni3n7cLI*9>;tX^`gOK7 zB2U(gn1qItvC6rMoQuMQiWl+&6En9VcdcX?Ak#n~;Y1g;x8a6^U+fR5`rrL=zqUTT zXJ%Xt$BzxYP6>+_>%2~9Pv%}_a~Q&dDTg;@AC+g)BT+F|Dylf4Wy|*c`VC=cw;)Iv z6atlq2p0i&p}rVY$1O-5!UfWTZbZNbcvxZx;L3%SCGY}fhMy$hR$|9Qen$NzSQMH- zyxhR+G{1Nufavi;*oo8pMCPLBw|#zUS9fClpJ%jPy7Y?kFT3@ano14?-ify}&pwlB zq*=8k;W^{4Kk3t9K+kUd`?Zc)xag5G_gZ}zs$lssm4ULfb(=PxBsCc_PQ5L9QtEl; z$CC1g108=dwY#LJDcw3Xu%t+G^Fie>G(l!X3u?l!D)f)!Ujp3%yik=gMVBVmSrQCE zSCBFizkr=yPOpmEK10*zEbBjRVU_oZQ+mDp>A-{0hG`!`r&H^y^VWT{Jl_|7pkEAK z>*M!EE*Akk53F595hHF6l~%L0?b~@kd&0X3heG^fft>^(7o(3bY6u^=(8tb^{riMqhu~NOcUYeQ?Jwp!g)aXX?gP$*7KYl4fg>oL2x+5u)|#9g*)TTlv->N*zkFj=!nj^TZ9+GDSN1Ay zeAPp3#kIoLYB{#z(2_NaKvT*@tz{ouxlEZoq(=-bM|SVryQd(vj1hsUr8DPpk+e0K zOg29wTsWNxk|5p)rc-NTk-q%Ji6JS&S61`-wXJ=FgAH3b*HR+J+PCXd4CySps2gIx zHTi80THUgkPSnHmixkc7fLYsOhW{6#J6IKD+>Dt;_!J=XSe#rFRIcLkLwAe{hx1Y< z9VyKdnn`d(q^~fl#3Q0i!a+-m1f2)|2E!+cSj^`njKIu73P7d1+W?SrYcrT53sp{6q)HiH4s1EKu&EAmUtyzW-;q;`W}5Sd@Hn`zgLGZv=_eqety@vce}ZNJ?`>DCp&%p zq~A z@yekF=bn(PF)4yvhG{IDS+=xfg@crm;DXhh^$d_4y1B>gIbUgf zPZq`9Del7WJfEGfw6PzM>{<>OKVxKX5hfycMy*4B4JW9m6B*;o$N(9%Eoodz9*MjX zQp89aaAmEqRq+GL;AC9#g8GABaWC+A)KN$kCEyBO2@Y&1K#pjXaco&wEXK;Dw_Lb+k?5DhHGodj%8Qp$T>QAp8ffw?oy;H zjD^z7;vk`V18hTJ!~rT*EyLx+w#an`PzYNoet4Q5T2`4P4&1?gEHVU=xS{H$(*Or0 z-i9i~1tTV$7(EB1ACZKFX4oUgf*d$!eE56gF*R0vRpZBh&R3h$quSczL-Z?4O(IFT zx2}>ZNQ%FhlpInn0P0N2jshi+uSAce>UdQw6pUHYCo%W|BoYTDoB=u>I#tqjX#6Ns zv0XCioqR4liX_0%cmvJi)dKXT9>-9M#RigFJQLt@T#3}l67&wMgt!D_7Sg>l{k+|0 z>^G{tBC%?|>D2#R9ji~@TNbM_HeHv05IZa%OLO-5-lIf~srBsr%py+-80)=f9yXv_oiA?x*$ zcy^jeln0RoSUu3UBT`|n5In{^A#X<)h|HbAjiJt?k%>8MXjlTgqf#5na0JpS6{Q6R zYz}B4l9>WXTPflgdUmaeQEZC<|4|2ynauplVQkeyO>2LXu+#9htlEhGT@k!RdEMGy z5{P``L~`jsWU6zux~0SgLKMIj`Udcp)y-YT+&h#=jAG?Y$rMR)#w1MCo_d>FP{b~X zmT2C&BKU-))bbo+UO_W0F^_x!#CTBFlB7iQAudgseZYHWyP*VfrZ3+fZ+gTu?X&-0 z-N@}BKm2$TgW$z) zcI49acP9-e(xk4N6LC_mm$JvQ{0sC@3LPUXKDRhmJ%}j{lLl1}6d;0VPA1a1ICeqY zxKYF*D@6h1fy6&zGNY(v@)SCL$U`OtvKl!PaGEkh1PYqpCR7oB)R@$)_8qD{yJFq6 zy7lwhkxkd+=KiOz($yX+ZTIPxY6*Dh{+@t^#U$ZRLQg2-esQAZW z(-7IQyncLWC=#oP(%|kfSl+bz^Lf5{{paFL6;ifo( z2?=Gvv0w1$EA}s55KR-gTtJX=`zU!hG(;E+u&|*@W-HJYQ>(M%iSpnmfZrv$njQ*- z2n{0~Bxi;|sdQAF=FJ6?+j%bUTqEuKpybz`Iy^0SYPU7_DQF0_k# zm(KY>dSYP8l5?BooYpV3k_*#jTG!!DBRUT3L!C>k1w;HO(4b3D9AhMhyJ!CpK}fwu zW5+?QJQqStMhGzW7D5i}5N->u5oHsgub@7>V8S1vy@)OlaXb}2bOk5`Gan=un;Ns~ z;Tqq1Z_KIkYEq!Td;PpFT`m678Xj-Kv5A$TUL&$g^@V zs9R`%v7jHLg`4G=Y15}ng=k=2q;S$QC4eUq>p!UK;nnmmj@C(dGZN$5E<&4hRT<4$Ix-YdZDcx>0Jvi;!$lqGD)0h7807j;_Bkt&& zVlOXxoXIQi6g##tIyFyjo5~l$#{XJ*Q*o)L+%_x+mI>uQ0R=RcI8|w8WY1u(P(&zz zBs>W|9f_x=7~uOR_=3Bzc}p-;E*qc*dIH26AVkC$F(Mqo5tSSv>G+ozXh->m-8^b_ z?4@cWW^|j?dAiYmrpEg}{;h`LVYXuPiBHUT++X{#CLrwPkq`K*VmCbCw|SBhZHoM~ zItJ0ETRR(VyLMyQA0T$P$`LQpxP!v+elUiB>XCEK7&9Uc)B`|-uqci}uYkj3#wk`% z04^YH&Nwmvi5Pa_`p5n+lOT}UI8r~ka<;K+&=hd&aY#?7+i|HT<=@z|&%HvvtJLfF zCR;le=;0xCiS5{Wg(Td#y%jY3=I8ll6E+g{&Uq+pVI{EnYiDK5J|g`1kUsduIn1w>u|yzj>^*YkEVq((b5x zh%XNHKC&`)1$Z%Zoir~vE(j4|JUI`-h&RTalNCvgjqeb4o3;Q1s|70+PMd~|oJ-np z2xMj8kWAiE$!G!rmUNLDQyp2Lh54Y3C#D!x(dI(&4lc+p`h z$1$ffXOi&PVmG8aW@?hX7Hlg~IDWt@h@hWVwwgZPC*hWk2NH36od&XCz zT6Ov&D?j7*Cq7n-=Fi^pxN>0Wf`$twHL{A@ZmwK(k(`opdnF?;`gsBXQrS^m`{O6k{VI9NE%EV53zvTis^zY^^UkV9 z!`}`E+5b?M)ghK1_(%O()6d8_&HsP?ptMv649=#2%?T@8FT{Uz~4lwZN>yFS91;1x@M+wBXf6E;(u9Pe#q(5L}^v-CBE3Lfx8o z=d2#^Zt%F>8D)tPQbrG~{>6MpM2?XrZBKM6?TO*Ry6{bGy0<*mA72i+eC^I7zMpBB zv0b!ijEa9Ho>;fAoP0VbK6BpxGqYHZoT3>$1!b-bQl%;(`j-Nj3yvglN_&oZh03MO z5Z0aB4{ViVi?@LriqgbMBCfDZa`S_QQ3%T`Bb0?|7rw=oivwUrB9ZO6UoggSBF!Dw z&i&KsUZd`$j`aKepAF;N2PEGq3+Ne}K3&jDeIU=XiSr*Bw!%@%_wk$hE1iX>^d|~K z?MQ^N4Dn(INnD6T^>N}fqjZFvK^Z4g8ziZM89As`C|9UuVA}zRA#H*0NLl0J=49qF zMAL|<9mfYZB}bd$ELYSjT;hudUm9%w`?U3^%o^mkdogeS%C$pomwgN))2;rx8MAv& z2li;{w6&7COV%ByF<3tp2So@b2}D%%jbyDUS34Xf z(Rkc~91*BU?hV3LPcO=lwD84~^S)D+tnD^T4Zg?YNC(1Rdo# zDNMk^pv5Xo#3%=Xc(D!PAEtt0;2a7@5Jz!(Qb3`g09)a}ldu{Fe&f5h!OSWGFmZv1 zEdFQb%7Zo({?u}YXU?N>`Aut&|MU|(eHWtckmtu6B6?!`e8|Qz^KT%4VVNa zL2o4vNf18n6w98!cV4xj*$*M_w=OT*bIaz!#;wov&!VojD`7$PbO|r#B2O(ZUTsA& z?{+WOuQr0!l$|5LfPO=G;#d=hCu}K~I+|wD)lsrQqS#x=s>hK)kcB8AM3sg&gh(f@ zJJ3faQ*d=K&4t&)FaZ&2(pu5(!@bJgakxlF=#vfilYf?Dmg!A{KdRNML{GvtCge|YW-rTCA;p<6CDa83H zwCbC*pwl;s&*Mvh3y$58Cn<@0NLqdID^*mh>F?y!yQ8)ZnrxZX#F#mlAW&nJ$P7mi z4L8|XND44eV`EpAn%o;e#CS~v@}ntMhG)uEON~s=i|Ghz3^ORiqh`%X2WUt4|V|dhKW_y^T;tihy2J=T=}j47ucHWSo@P z3n_O6R3-2Ql^RM;PAUXk@NtaJRvrbylKG$@-(2;udl(I=pk<~eH5W-rbo6xXKtdek z_LQBt#Y9Ta$P{)Y@p;@f!G7--7afjn6jv|K)34v?`_sRDzuE9n(zh}HNWN=L_|nv1 zMs28%67f1`xy;$n@e(6-aRRE!W>k*>E*-n_k%cSaqUS%!`U2i2O@R4fDCNkiLMn?m zO??zz5O^wG7)njDtayu(a3BFuwt)xZCm}< zv#vS!ZvH#@NY#M5VJ(i%Gb@`|V{Dpwg1K|bb+a(%@YQGKk7b{Ox2`;sV_AMko!|mA z%v(Wq$!?K+1L%4R0G@`X8>tF|P_RysJ_q|QsjBMEN9rMF2f8gp2aL@ny-oUZjyO$A zdstR1q|A9#;3C=q1UTYI7Q+V46OdyJKbIec2H#5C(|Dz}i7TPh;Uve)AV?@hBa2?_WCb^1*pR1Msjq{M}Q_NW$ z&0n+#_&79S@J#iOFZVQyBfL+<$$|Ff z%lmt`SJ+F{zd8JKRVHHHzeCTieFkzivqdF^l<8}N;B&G`iZH;7Orgc|LmR3*mB5i4 zUI-CLn#6+3hz^cp&IPU#02(MxxO6t03neB;7*n^QAfO>c!@%$Xb{t@Uk9{Sd6#xGY ze$!!M=fZ%Pmo4h8ajkr~G{iy{$L#nY6yM*4xTD+R$~Vm$_RQWI2dJU5{aH?O8#Qta zmp+pwB%}&OzffNY?J1YpDv(~hCE78zlPVzObpUcueIepTR5s^ zoG~RFyGIQDBoe_0@TAnE{5@KeQ1=aoEISP8bz>i;&VjGO8`T>BQt8J!$jnJG{TZ8{ zivTB*lE3hw=kuqAZDruKCmDCk_GA348unyn4fhMI@;|!H10bq%`}P4fmYAzCXcE&f zA%+-%0Yoq+#;#aU0c(m#i^1NNXo8(0hz$#%sHi9w#EJz46&oTJR1^fPfPx)GEdSp= zXPAM(|9daK8^XPrGw1tuS$nOuDgF8XW!hy6<_+-(sxwaZ1YX=jga^r!!Hnysydi=1V>sW%}>KzTcd`KY8Q5 zG1-=BlaxqSf$nlLo=LHC{qG$(ahLQ`nG_a!Ga^OOjCx<>_k1)Xhx|Qc+8bl0cV&n}wL#;-ZR|itHLeJ4`9Y1|h*!Nj1D7I5F5f zfO^Y_300%mEMth%lG)Iub+!Dx6KXdx_Ia6bZP6E}f6RQ?U0=wkh4YD5557@bfctYo z$}rP3xcmEGy(tw}O+9+ASDIP+jPV-h3mAjAgfn3Q2SjQ!+B0~=Vwwj1Ks1P=ZB(!e z#mEM?BdSm$8salre_Blhu&86XSVDXTpp*$eeHljTU>4L%I9S2;q}gO~?i!cVT?bgL z?V9^r{E;SGet$7~_<22Urt<4I#=Tz5$XF_w*wTX6cdI;8$c(GkZ_6|3$E!;5tl(zt z?VX(359r>5tcl$wsw;|SaYh= zrNfw0=904Of}F|)ViPj)8R(4F3*r(fQ#I~Ri2v=3mxpWK-7{p;)mBl1Czf_uvO-Tz z5)Uh5)BNBC+L6)Xf|3)*s>lY;p1HN^nEv(%#;R)x%qSmeUFexPGDJ1j9guQ}Z&(D- zgwZBLpCCXp@CB7eM90*XPSOLDM~WL9h0rh)AchDv0jn-z0(*Y&N5heTT8&sK);6~A zEPDSO@aGrB-%UAFJile%3$p^8e;kvguLD$E^S&Rbj1*p)%y}ir8>+^#{fqA$+#vTy zZ3MFCp&4@M;yH1o1^j=?Vk$5IcUl_CdPZPi_;!3)5COb&ICn}(!(9Q1fwh1~k2~>8 z*n9+AS^SD$C8Zn~uLdlKpbcmN<`0Jz4kD%y@XTo7d`()f{-V)8MtUb5m>EpmoAGflJd;yc2jh+5at+ z3`yddF|mYBpTD+^&NjW|F5dG7U`#|5h!~ zPTo#>aG>hbq=hXn+26cRqGoxsPnQ6fDZWoi^=v)Bsl7}0o`ZTp6T{mDcH{5Gb5=5F?sp1=^Rcn8`Lk8n^%+FUSf|eNvKh>w!4HoyF7}y`$_a zg|A7IN(Y_xd{zsK1{Ps+M}GVHmpzsR?b+k~kpeUIXs=Bu2Fp$(xHRo(7%j?kGCuQT3^mXyWyKjE5 z@uxh)Blhg*8I7ul2)*_?1Dg@OIpT?=4f)%pa@Nxkl~aa)oz*zU{(aoLiU}tT82jj8 zV^aXI^P2XbASP=O$cPwb3-?9Z8Dwh6e=re2HDxOyO4c32Iz|HpXNTm7**f?Jp^l!K zF#$JUFmuL4GrqSb@#x-kQxydv#%@5s*DnbyaO@XCb z*Od1F$Kx|YqvT0c$&kn$`5m<;({!|R=+Ux6Up6-Kt)jDLaxV^6^twzPncYDmW}ZzI z%}rOI1?U)h4kH_I41gRIg~+e%f&4vzWU;kk`bxt9DUtS{D26g#S{$k#zAIouPFAyX z7VENKeDdRwzAN2EwRM=d{)bkdR#v7No9>u1LB+^l?zoCsl|c~@S@2}*{|EY8jUO|T zIK~D|##(#|;AMFtS=oU<80He393(Wb+Hg@(0sy9G#8+MzYe4zZxeWm6=veX%AR0cwP-i7KZaB(OT1td zvCNQ6w48B9`4qL~N7JW{K7W0i6ejPCaH|M^pkW_#q_@5!)Jm z8{2r`Vp5fHG5FvT0w{9;1fgolh9UZDCUAm8i-GOpn)SNGCN7B_+tB_-^POosXYE@ZV4FtE#%_q%V z^w@UdgnEq|+&11g?aq*<7xgH!`uTT6uEhdi`>Gn6xMLyNxEWOW{HHG7JQt?FDl(E) zL|sa0`S7S2jj3Gt7;U65b^`~Z7oPZZ_}$Rl|*$V6Br;cN0%<2rQPf}eN$eqq_JZut2V z6Qr*^Z~(MrL_yUP<2689o}B?uhfBPZN+bXTFhU zPR_<kFn}_g16<2XT;L?-6=EVyp0R^>$1_Ot4Dp)w%!8Q29f!h3#{(y^Nf0rjy?)+ zrc(O-gO5dT(^2|&-HGv2g0q$?c1T4vh1c&R4z!f<$honRpbP=iU_TO%1J;Zb4Y>lW zHL6LdLiPeABo5YP(QbR~8bV71ET8?g%Eiy)cu4~Z_~w_y+7 zWc6+H!ig(?n!C*}@}J+f)<~3NaAz|!c6n;1z%LCU_6*LBuR+LGTG$((Uu91mkt$u1+-CE zW_Zg8n-bv03)DwU>)UN;-|XKnv#MuJ^*>d;f!oC0lQ*davO?rn^UI6)Ol@DeJ8M;r zZgIea-N9Ft#R2-_vO+t_Y?$K3+JXw5#DeUP3nD)06qlIC0265-AW|AK(uYY&VFJS) zK8aAlz+sq5$O79TGDiZX6>mrwt=xSs2|E-a!(v0B0gH`najMl{CX0R>+`E7N(q@xB zT-3D9E5nlVZOFV|RlLtXdi|oAJB@(NjUuP|*__BzQ@;gVCk2CG|%1rp=SEt zd3WBiT{L+9wLC>k!SA^7myeaEeSb<<7$=Ere2VX`}fvR(Y}ojj~?4qJ{X%mJN&>do}~iBZ{s=9$7h%?mjS3(Y?xWYC;sQ~ z&zX#~?S#6EIvuM5`j~S37$3lsh}YF)p-RV|Ce<-5G=>rrtP6w3-PY+)WZBfo~`<+hbO zHdVpIt`(e`yS6eWreLp1;o{h_=YalB1KIQ@yM1IV$u~@nhkHd;1%fGfq!$8g7H%nz z1@8(N34NYD_$wA|47|lZ0M8|GGuem*q-P@=+u3`AL7w;vifIV1kYg6wy#2&B zyPC}%IHX4I>fUZM>jZbdZkQHBbDn4$mSwN!Ms2EExEzc)@^m9npdwV^(ygD1O|NeK zIA|b3V3*u}(jj?}GEC(40N>02xxzfInn^HUfvCW8c7QXO#9}B#41nywpo|yAToRI< zRHU^1LgWCUpwSnZE7NAES!{aVUvEx!%Gu&`oAX|@SU1^kNB?vEE3=i1P4AqUWFB{J z-iMm-E3qZThUj=vqW^_r!S_^o>jG$T{H|)kX-4S+{Tx4GVRkYglYxwesRam;J4Ac% z6nin3VkXHHmD2^H3Ao1 ze9Ty$IT&*Z^lF4*09VQ{4=OM6Jp&nR+L5Efo&s4C`4MTHF(#dwc$hG=WDF_mE&={& zHjz%lvysCJj6{wnc6r+Z_rcD^2V29&A(+J`BLXhZ-DZ{kN4lfen})?V4;{H$s=qdB zrSkfge{*%O=*t5)w(P8Wz)qeE*}PL<@QVtOEu>nvS9|Nu_KtmA(9x6YSa2oFl8MeZ z$;pZup<_UM=0*TqXj@A7_>A=^w_1WoiaZHwmaOK3H3Pp1cVD-Av z0QjU2wPDl=1#{R(w~u~2XGX!>QD;qi#Fq>o=l5mhlEv8c#)@;KeAs%L!1Vd^AC#L; zh3wrn{ehgY0Wo%GT04n=S|>X)!*d3J0?H+B1OOJ8+MxocEyi_20ug#uPlVINXnWa{ zMa2vLt>N<1KGN?Bt^`=g%wH&Ql+M&Ayk-VBR0hO*w5?c;+41??1UQWSt^S5uZJR&n zayq5{xK>{5=DAUY8-suQBn}L2-Xm-;rb%V zB_2?aL1c%W2>$(}x&OruC)UsDu5pfT{aJe9`@>hi);IL(nL2Qzu%Y?GJEgTXxo5I3 z+^Sm3r@lJDj|a%FxXB+rnt}bS7p~ph#j|gWoX#2L8b)E;v)T{!yLD1|HBSa7wBmN@ib^5eG^;KeTV%G2Q&bue(Nj z#5*;q;ib|_u1sD@^WF8*BEy$>>Asn=N^tL*=md)$`R{#CF5ohb|%d^!tTk6y7eR92tI&L{O z?@`IJ@^E}*&%N8rBye3TRrH`*{79i)u~nCxpy6YKj-py)Fu@s-LI$RisO~Ia>@iq{ zh(O9C9t)@kV_I~UGANeCM)X=J+1MB>q9mXjaTLcL2}Ba5l8~@LpjhGpX2av4boVvc z{JEulgNCu|YMUi5a7~<;w4+bpGecs}t(T9W^i#uY&hNb+&vG3#w`3=s%UdiDqnqgI z=`fa1D?o|CCP{j-cGpv^N?}NgeK;i@m z`24;MVsJvXrDoBM+tDb%)F;_7V`I3Y`_i>7@;h2A3^deUI5_mWVu|S`tAn{57PKT( ziL!%5gUT4Q6ABY3$CNgVTFHNeH5xX89O(r{9efvD#1JEj>92-Rz(qn`gzqg36Y-q# z_$1DAMpv_y?Z)QiUZS-_K1=EPoSQqtf;!R?3HZtk}}g z$-56^F-R-u1x5GG^cw`5g>8Iv$omjJwSyyALWfYdTD+=hsyET$n;h2 z5iKuq*{tp1a7PWXl??&K&oA&y71?4g-TJg2$ftyUB->IcwzwW}BItw3<*=m4XpH7j zKl4k{Kk}tRZl}<-1~UO}fGx_$#8QvlEzDaONq}3DGsSNT$`6Q`IO0OXhNlQs#MfkR z|JVB(oVoh6F70C`p&qJ~q}$O4=HJwF-}1`&#>At4-j0iK z?_0SXW^$MOr+M!FBj0J>&IsEcW{BS{-@1QEn7(28x4c-PpY$<u8JF;r`y%p^kypyBEK5dGyoytH1B==9yx6(fv+{)iqKiP1&R6{#oT0J#zlD*;$px z^@>{!e_$toj6+sSAh7e`^CO#wPsuKK5Fy}ES$5z>$R#xZ_P`}0hX4u_1)yO-)1%%J zH~{4;-ZsMabC6aBJ}4W4#6njzF@PK7kFTGkT>q%u-#gs46?eLJG<3zrIc>aT%vHgs zJ5}q6`5>csX@=oT*tGfSvvhrS7tVpMVzh4QJhIRD4&7Y2;?#N4C$gBHum#XV)CFdh z0}r50B_(4BAtDQR9Q7UI3TiLeJ%zSH9A8K+QcDVbk=%%+1Y{pPQrL}f=fOF7kM{VM zU`pI~y7|Aye(z%+*~6{RpDXvz>YLU~PY_WHu*CF)Z`IIMv^n|uJLcTEeo6dTSF}*n zD@+8b?0u{!bne+}Xn$;=8Ar;xLP+B@jNBI}h~kV-^ACPPS3;gfgd~%0dr>-jBedcb zsm>1cU8EMM$+9N1CDB?I&5-cvnCTjcVDtn?S^;U0@X~jEJgAH3>}Iz*-yS!9N5|Fy zJ$m$AJ-UijLR@Jm7Ee+ZU%3?jWV7MRTD>|oeUrQ_y+4vtAWMsH)eTkq(zOP~5#xqwy;?hrIZh9Odi0fkeRp~a(c7H2MaNQ4Jm z2k?hb`bto4awDcY%#)zKAbLS6%`?(r0TqgXjL|03bW~NmVZt6Geu^8KYV1sq`}&&X zZfZC6e=Q3fKQG&|tH>|3QOca-%PLbXj7{@WGqu1))};;e&R5Mjvo;(FQbhSW_*I`r ztvb25^dBILUf7u|``jqKkXte7vY?WpZKlc;NehU#cDzSr$>aoMTz3Q(LM+4Yg)j~1 zguMs@Pe}Zf{j|`)d;|wkGZ8>xW<<@#MwlL#f&kVf;|9FvK!&M#?2zCB@A3J|ABiB(r~yQf z`h~iVBqifYxPh?5A^fA0L1IJF6~Y;(m%f=*w}_+Z(daG2>f3t9BL7d9yg0DD;gpv_ zZGY)_ewXbS!(eyjr9Z1xs zYX_RK0Ij2F!+%l4BrKCaGKHfH$_fU4N{_}Aoeqcr4N4@UoUkvbU__OGVqJ&|xLUBE zfGY#fB(0G@fV&A5c)Wo_neDYEbP=fQ*K@tu}eu5=KxmqgT27olx@ zb7;TLYh>N!n_CpGk&$bS4%BEM(j`eqG8MORozi(wyS~Hm_y-=N8n%$RJjDTk0Q;W+ z%wfQb4>ROR-8>8i2_*q$JnrC|;w}m1B*%&oAAuW|5Z1?lYWzq9QH;ouXA;Q;=ip_E zorSY`@1?;{EvMvs-Y0Lthv}YY8V)&b$RvrH_m?`{dvQ4CO}ZhIvVSf)Z_VLVhy#wj3T;AT>YG9aKvBW}@-Qt>gAQ^P8|$fwnIG@z zVJMD^np;vseWar3*)a#oL&45_K`RfGPbno7aQdn0MWa9(q<`c?GCSeoAhY6%vrd~z zg;hY5G>pfzv4C+hs2E!as53Fd7yCDPMN|c1VgomxB?ih^8S%1^fpMcmsE9(_8!Z~- zSYMMt^{-v-XiDes>VJ1?%<#wwJa=lB-eW}VoBjRgeWhNUwKH!nd{O=g%L|v>6c4ou zCA1|BYqmB57D1FE2%{H~D+0iW0E8v3?9f4Lgjt15jRnR4Vr6R^DU#JAD5v3taod?w zlJK!j!T}r}9M&mv_vz9|yQCJr9p)OmN~RsYCZC-t8MyuLkCVb?99mpAX_)=Jzgk|d zbB1u-Lr=E8k~&ObjIT*Nw6MyCm8bc$ij=gez4eS*wbXHNUo255X2ge>3X91q*coGe zRvtMZtKx_WJ%omt^&D!>gxAW#Vek}M390Tg^R2Cp=xlsWXAU*Gz+NzE}eBAvFIbxf}L zp7-=>Axi$&G054m5_bRwx!9T?EKJn@^4@q1({V+-jIl#>P(ml@DO!FTBtWRuPSFOy78*Q2!Xx^608)Ggt14PL47&xw^Z>X7CBsOF1j(!ejDvl_ zkolOwQd!fMGqhm-fjJqEajW{Tch}U+y=GTXyI+HmwL@xrX`>7#B)0JcoB<5uo|CibQII9$K?0mi3;?Et z@J1qM1_m)%woE`*V4g(9+=6ca2S#xy@HP49*0uKvKChKFvw82@`wv|_vS4WH(8}@4 z*!0w{?cb^iW%||&IZXFeaAt3$U$DY`y*?%|e1ANaX5!;M8-2x&A<$FcJ{RO164v$E??m8j=`%PaBuE5|?ljE)>%i5@Ov5lE)SNNAd z%fcB6OBCx4ErEw;(M`jICWLJO2@!GytO#cN%vgCC#=+9Ja8)QT7{I`F0i0EUCfRvP z20{@BzR9*%MoOd#epu#>|hc_rrokO@s9Cta{YWU))J439P4yymj^o%mww@ zq+MKpO+hpCM@^_CirUJGFPQ=clMZ+M&>;5UhC(zZcnMvH)fwDhI5Es()S40>59)ky zL5KhjAa0yLR<^Tio&ghcBzRURU|0b_ast;C8xtrS4C1&pC=z6$sISQv>3^Pn6!p=P zP4}awbZphl^riQ@eR_J2DownfBYPSIpjj1rdz0W(c5B0kh(r>|N0){^+ijYwRMtf1Y~7*mq-t%@dRxGpG}k7_4Eq4<&gHADL2Mv;*jA!!#HLw*`~l8R(x*=0y61` z0ZvoKX%e$TAWk(1K+CfcqY=Ee8N7;J5v2;_9QX>f)Bx!ea5yiC$FI1{lm8j>u*r{a zf}%hSAG9Ajo_b$xSA2ZceJhV8_TYWd%=WI;?>D0Q4``ylu z&8XZS>+-$j1fO9;rScN5e$JWjBnZw-l_;Q)_)%S9Lq|;pAfV1K32_v^I64ybP$al> zb|_yQ0M|K=WF~Z)G!8;1m(mNsis2{zZ}eY$2Xf51IYuq-wP=x3^|HcqDNnyz9HDvb zS=sl>*wk-Pk=ACoQ>kD%y!z`u3ePUW7UKpY0M3} z?{V1X-E|wZ2`(Kmc~#BY_8%53{M*{lhd1_K42Mgc>SL2v-$*k|@`>j&($gvwU>q*J zYY%c9B$bSkaikFkBC0StTb@zw2n7uaaOV675R_pa=LQzLG`d7T2FFYz!EXQrWXi@( zLVO6QM#IIbcQG2~H~}`b01j(#;o*QMIS)Hd8uLkhSYWCDFO9!5S1w8W4qeqtVq|)8 zUlg}p(#oT7|H6%im*iUZs*6HRDxX=FUlOTXtRS)T`nlWu`v8Zj!(@(u+a`7-xUMie z#rmJ35-U;l)eu?H?IHW1o~O9PI22qRB!gT^WskMH*ptZ$Hj)fQC7L*FqXpK5A44I^ z`1NVSfnlff&3hCeWlf?>^j#z9* zM3pN-aiR0m_yg$?rXZJ4AF7ZGcUv}>h#@otS71#>9EeI0kkVGNJj$A`h5yH_53GjQ zL>WqG1g7FgaBRRU`t@wHVtk9Ot?Dmo`NFQn+ogAY>lmOP$jVg1$TWIe2FFeEWY)<& zbJ%unIK~WlmGm}BU&pMZI8&ZVqOuu<2wFrOco7g1(U=s`?90Rnyc}a5dmtqWWef{| zUd6AQ)I!VbKn!487XO?&fL;_TkT=D%NMYb`65)vL%DOpf0rmq?yu7{cKBaBckJbO_ zu*KMJ^@MegzVCXsGXDbijtVXWz86TJ z`7+-yQ5lyy7!1I{ia3;LMs3d!9g{v-h|peSAqy8omgNDIdGLY&zCdH>B!FlDE``RA z7?CO!1OyO@?ThuZR#|sX7~g&B(d=etznZq<{OnkLepH8MF)uDRRF7A2NK(W*SWD0E ztqB*VPX*brWzT*+T4EN(M}nt@a1YBGQoV3u#P&)A9VC86wDbbX{0~1$NJ}6qeEYzA z>ONSCGVo%6WUe~$9f2+AP4O#&{}0L!_mA?0?LzP#cq5Irb#DI4m&+b(zcsG9^~Xb^ zO8%N_=+^h}$T;=#-;FC;UPZV!eS0E5BrfZaG4-0r<+tq8!`Zo;1s@Me7{CjD*-ZW* zxRPZs^I~=hU`kViv_-95z#g%$psulzwPpy7@QC7f7{1_{MrNY&C&shuh_3+20Vj?A zMH)|-C7e;ZvD{$}ZCqQJJRB5T=d(>e1;+bs@}8!@`f7>1GHst$BDVGUxl}HUS|T6I zh)qeACwa9|>dCguD{xTucUj=y&K<7&1_#Guu=z zi@l7Nc#TZ_IYSIBm`$|wqCrD*2#$~Sg*fsHr-X70E}671qT%O%Uc40P?=Mg5n_T?s z)%G(UEt?j9-0$PflfTZ=6Ux+6wlRPDSL$f?dgH*RtW)Ie&jvSEfE=kGxK~1-eDxNg#){H zW-(YuK@1=`0AjSng&3sIULKOMEGQrcuE*ZPDfZq4r(C)=`||6nb2I*G*RHdnzA7#w zgGG5#F5f$MBj-ug(0q2ric3!8EhQo<17C}UKnU~XEjyP@gM-THYeXRq3OSqi#ZORMv zE$QpEH&=IP>$Rh+j;^j!ulb)!U-19cYZ}M){rWrh?GLzwIGQWL1HsJ%1&0#=+GT;? zHq;CTD^z1@!3L8mMYJz2Si zmgZT05w5J*S744rl__mAb*Au{WZgQ$RH&LX%8*ak7r~rG+{D3R1<}W`nJ6ciA74Gz zSF}D*x4_C|k%f4#lgGGEl-Ags*aBjlP$OILnaJ~}0s8bGTHMF*bAz4;(nzI@i#S?gmdy!+9ajq^G0>C6r2{`m zx#-|vG95q@DtcG6U*IP(X%^)b127mTz?m|A5!-aA5v&m^-JTa*??S7=PoC86 z*8kHxZ{J_B!f?2MG5Rs)aI9F?TuBO;T~PJ9FP^jSZNA(Oy*nJg?dJE0H9TE=bZ~9g zfyHu+?D>eeMF9WZC$Z+~fep^5#X+86Ks_vXXL%I(lq%tofi zZjVq8($T{6Z^{gBd_>`ftTK5b9ScKk%4n5+th+i6b@v`I9>1$02*J?tYW**nY%{Ci zF-VZIf{Lwou$|Ninbebv0XQm@*z#&fizrDc1t63WpYc;+B^0O_6*4F-(`T`KCv~DD zpcQAt_vzE8X}4a#GMjqzmhT)(hanfgJfhDwB8o9G4S18SQ6K7gbmp@?Rq&Wg7ZzXG zqYul1_3KWYbss0kPQ3U?vr0h)g7YEd!v|Nv0%R#LIaatm991SRvf&A~GP8Aw1Q3LU$c-|Nr-k9m zAmyuq8=?nY?nJY8GeU%haVEwxoZY z9#^>f`@&k@A%WW(1}iV6!u465c~Be3VrNBdsxt698n||uC||V)Od*|DKO;&C&fF#_iAy_ zxA*b~?V>{)c6#_-o2KU-Zl_fH^hsqf#>n(~-Vz$*yJdAWPu4%bxXuubc|9-hb+nZH zI;Fzl=(k^~FU4wL566KW2XVJ4iuj`0y9y42r-KY&+*?6tBua6_sA&XEW=_fF2G?NF zL4;7IES>;t@Wv=C2~5l|=~u)CgBJk*kLreI5B!pAL%Be)26wsLrAEOc(jG7Uy~f3z zcW#XAK5Ob_h0#+1`-?ldU0X{g6eR}78a~pd{X1vG$|I=&(@M^n0>vmj<_OR69^)8> zF)ZUd1iU~of`*lD@Q%eQ&dV z(L`rlzJZ-eou0j%It?7$zEiuNZ4WL9SguAdKpTZ@W!-JaxOU^lb??g^fdkJzX&643 z-r@wqu#Z8I1$_x)M-WIBO{&iUV9AOd9HK$f9RT;KXY62K!|{XOL!*zx8V3M!Jwr8K zlDH0_`@S`cP^%JJykgTdFgCM=j#C-wjJg?NyjeCdo~B~uc= zH^aae!gkpB$wO^?@lym}fyzvW$v4Wa5n&9w6&S+`YXbU$tkNuRT2TAYX(ElK4xqu8 zeN6zIR0Rl_-~qE22}F#7hLIB|jU$Msq|gLK)eB#SyR$#?(%UXyIF9(DIKFRp&ubrf z)+{bi?oI`gPexLIwSp)Vm|Rr4H>nGF-Y}bhd?>UVF9PYoQMTst|p>oB;}U{~jMPA;80Ik#P1I{Wpm%E`uh#PHF>Cy)AT7*`(#n3%+H z{e=xDusL@EE`~_I!TaC>so92V861FUhQbPR7-R(Qi7-bIDYD!K2vkPUye3W`Qy7>v z{14y{hhk3FNYGijzWF6FYfh`4tDN2r-qrZmw87KdPU{;26*gZV|M(M?7@LuCEjZ;J zEaqohAH^xlz;zvg-~GK9$4bX+$pwOui2Z|-@OWR+UozpR#N-(%R0P^D;%>hPNr$Eax3)-3GOx^;?&hYC8mX}R-?u1qs= zil^^TZy(0}0FmIdSl|gQ1J(&IOc9-Jr6_5PwX;l z^%l)fjayrV^0V;D%Lrvp#029NwLV`dz`3psFe4mDaSOgo!^NXeAH({^FdE)DiKi8S zKUN+fN5Fu9%R=x&*h?xElMc2)D7Fzuoxo>-JPI}PE!Ujr^UXs20G>hJ9yR_@sX>j{?PTkw) zyjZwFL`+&(^CZx@mhfjKeiqylz*VX%*>gc(MI2ygiAO2uIek2SB_w~uKniL`ivXB` z=Y&8mtRmogP!mwUh*nG7S%}6=Kq%yJGQm_DqOchMQ~mRhC$@5a>(4PH~y(}yfU49)44U@nMXZusabt=dxFmS`ax0fo>lT3YKcZj<5%4H%g1`s z7*F>pUKlGfSXH+D;S1?Nm?r)Zrr|GP?=HT!)Q-33Ee8#7>@4~+VO~MR##f9K z1pi7_Zer=n*cE4KzIyH02@0cp&X!0t0BvN}1aF4&2Br+?Gpc8xP4QggOCcfgpbSk& za0qE=>$rfvCbj)q@3gU6{lUKzd@hXpv&)T=KVOW~(`41T`Kc2tzEkJsPiLPBU7?$s z$IefGxV&=e(ap`xaIt~_=E0@mJLLtjYLwXkR`?or2BS=Z>H@?h!GYckj-_}?A}9k{ zqHE#uQ)sep2s3E_9Krv19#9;}apW0f&5$-wXpwHrEPEy{|J}3ErlLW)Uu~W;xmW*D zD-8+qm!jvHs`eghUZxhl!$Tr<^{Z8zdRah7hjxm8@{k(eSWd8sQJJ{sNf1>_}bPchI4h(Z>{Cq%hP|Pz+ zCn|#a0g13C9Yr&6C%rZV2WT@lZrU9D$hZ5{UPmTX`>{n#vjy*2SAH)>rZ29>d}bc? zrmVVV!|K~BFY30WmjrC!?{xPEhcfvkx5F{(m;%D=g$M#qhN->)=MoWnG!A?o%&e$pV4vaN!{?>W7XMLDW}r)e0LbE)Xdox2^px=wO&q#?e(|xYFvgpR)LbQJ>Y6qAZ8ya@ z-g3;)UabZY(!i0>yF$gl%7eleX(r4axTUmiuq&7taC4;XM0168JpO93bqLoiMpigt z02j)t9*P+#KSE65fmr9s_>b}#77F7-rU!&a=I0)so1=qk-h5g*YX5bYwJm$iDGR$| zsE|3lXa%YTApqUnz30`jaxT-FfUu{>Dk)^h#?V{kQV*dsY{8xjp~cE3B3Zk`+Dh7J z`eufbDuao)LK#CGmkFf+t)w1~4c82zEOJhT34oO!lx8?4G|Mu9#=8JIl&tIlF#|Fi z-QwhxQ*+yl?>;)>%8pjm8s97!(9N)v3BQotNG;ChXUu-dfToHdEBSfyO=Uu(^C?lp za}vpXEJye3*N2`H#0z6So{u%|5VNG9mgW=pXHjR%WLaCE@zo=xkiB|Xc;h;THjq5Z zoR+Q{%OWff&|uIe(Z9)gBkTk2P{!hh&1l_=^nbA1dZlqrXW`sHme=}Hl@YcPB;wQV&QG!u4Gh*_@Pn8fV z_JbsQHj+^7V+P3}nK;TI9KsniP9dQ{=)`zY0vASJ7?hz3f_jRvEN=r@7Nin-@dqN(R_!AlW48HB-;Hy4Jeq^?p3NJ+`UObPhx_Y4e9;eQDLr$z<3TZjT zYxvkP7U&?58FK1r?s))I)53=1bTI^?LlG9f@T>_`Fp&W-pi__{8MR;tfe#G2K8CaS zEC}%py$SBtN|nNVozD*DN3^3ogYU?V=z4HLtk13I#Uq*?ygO}7z0N@wPTn;PRB^|^GOgIqv zIFvJB<-QRc zLlTPpE+1&}@7={a&pu1NFs?EvW^DTEFq5Oh2X8mhB*nkEp__c23|X-(Mbe)Zd7%vE zceE5s*hXYxQUW1_+6t&nyhgd`n1``802t3(oRR@DxHsZe#mX&^I+6u#?+{e*kj%vs zn!gv~J9{C3*cgm!$ehULWZN?Y2FjA6yC)l*-|^)7X^V#k&9gfNT#a5?IsF-#7S8wA zij=dGt_1C`n*NsTT>Cts(zVbRi9S_`uy1W*^N&w`tD$hA7cf3QJvJ(K3EcgdM%#Ehpj{)S|xd$OTN2Mw4yrH)z;>3 z7pJk^JbP0rif?&0mMfi0G|dXJ@E~RHVgn?lV68E2_Lbl*+Q={PFW`szqgD~*v+iQ++|IsNzfO$z7&ua7;ktm~0+b7c zZ_37SAyAXih-KtL!TG2~aCpLz5X*iJD$_|2WU=N2z99c`$k1G{F3X01#qYoy!-}#|@3>wy#m0zt>zV>uXpJ2i#57qA!`TS0dgqJvxvPb|O-L z?ih+G=S~&JcNy#2*~QuMZ$x4g!ydB1Qg$f9R%ZSp24ApX7yxozq^wjPi#C7^NQ@v! z0u*t@V3WY#hV}?F#)oIXAyWd3ikP0kbXLL}hZ*M*rq95B{_zu*`nj)kp5Ld*)nThv zWz;==(N9lbQX}%x)6>6E>z3@hXCo5IbIY@^{o%?b3OIi~_k%?V+J{k>4-M+qtzREk zOyH@aM7O|j5qykE8QzMRkJF9dI6^^75LR!IjJF~DlF4!R0tly(Cmm8`5x3Ys3dw@q zO4N%GoY8JGs-g5jrOjxZ?*x-JlFLiYk$~DCcCb44QM2y{?fKnf<FqT)5Z4}{sAvEibWk|>Wb?G0n z%xXZ+2z@oIe(cigyRox}fTW3iHTU{EdX)IAf~%E#6g^$Z%4MW`pWXwg!a(aVbd|DL zBqKZ!mXBgbiWm&Kz9-+XdcJT{fLeiSgdqpkQ4D2Z_R1m)jvJ64X3$iZ!cgY+QJ!I7 zL>6KVEU*ki455!FzxUxkTfY0tq(|V%nK?@bj#}Utov25V)Q5UF{jH_SSB#ImaDI8! z%(E{z``mIOKt-p8VM8amk7RZYEf$VG17AUtm8YQ)fJp`R%5A_?iNT9Nd$jiihE{Z# zOro$aV!a}epdt#T9T0*BG)Fks3;-x9@d6-NLmlBhL0)2}L8sL2YV4~q=~3?gt>}5#|I@Iiw{zdz(!;FsHc-93-0`Ei zU-2tr&Egl=vftrA7_fZ#6>%UOAity<4_bljQ}s%(izS!Xsi7?d2bb9k+bU4MVb#oo zz@w0NAyYATyp~wK0e+(u)h-{bVOltD|jGU zCYI0(mP}R`!#61*`Desp;4vmiD0X1>l2e#XGM}M=vA4!67KSg&mKYxsnNj?Jkzr~m zi&AJ3B;&vY@-c3g^l;5sG@3tj)-mVHg52>P$4MFnpNqw*>X!9MUI?dKU`|SDJZaTOxYb;`eNb^0DsFZ$R(Pj@`QpxdP%Oaaa7p zc?d|cLg7IM$0*(&e38wXyaou@{0*W5=J_DW(BpvoMP`PJ3IHWG34Hy833?o6NTQ{K zqy+Fp#v;Q5oY`<$PMxye^-bx}N5AxTe*4e#z{PL2?Pz5Pf2Wl!(~^2;Y`Zvz20#l+ zB(0ylUryAsYnP{w>#Qrkgw*?&hh2}!?YIdd0s-s7F<8c5q7(yXlzdL%!FV4oxSCKH z9TDq@Y2Yj}%@kRfkZ1Y0qSi&QAlM|zS8fSB5!u&6@y1d<1Q+P38B0w2ti*i&96IVJLsY?w53kr!!jf0TPA~(MPbN7a0NGm{wmxH++g7V zL!V*v0KOr-Kh~=f*l4uHs;`z&qFd8$T|PSF?Q*HXq<^g+{N5tkuy&mFH03K59y%Po zXr+!`efM>6p&~}mtrF2AMOJ@J965COXzDEd(0~+?Rlq++DkTCQ`g-03MlJx1j1zek zv@H0BqmUw!5uv1pWT_YtNy0dhPYC1u_oxTte@EOS5H%Bk(QKk|$DdS|ybk_-#$3B^ zP4C!zWVsmk zpJ_gn6b#yYO$x&8o_a0~8gM%Mf1ee-==9^j;j3*c)2di1S`zkwnjL3s@+&)1Ua6eC zcCYk^0vhRaApsS*l$?MV63hiL8;Jw2V|-JYr;yjBb%II=zeh`Si>LcNkk&3|ES#Ns;hwN{3ZOrXi zeft}yS@bIm>ZcgNAk=M8O)Vi)mv04jVPvh@7k0gLM^zH#oQUZ=w<||XH`lgx?d{sH zS3k_FVHe;~0Z9i2AEykgm*g(}me|+85MjqDZ%KU~4x{L&C^V^DV81Z_f$T}mf+Hbb zBZOXB5%IgB2_S64*OoOeNH(Q7;~M&!`0g%pu=kC0P4upRxa8lKHwXKij8lSGg;O^F z=3TP<^!2qgtKviEvZ>nO!Y_R@N7-2I@FLlBlbi0s%WDGkVoLz=N!km#Lp#O53PU*h zc`6n(yZm$5BN%cBr&1bVrm7wYNBIepAdFOHjWacxH4G5^R>}1gWJCh;4pkVJOiX() z0<{Oor5O+o+-#>OKXzZesr_z5hkKPqMA`fmv<3_7*O0s@9Q)QAlC)$D%2Z31&$H|Zd)SuPj?%WUxk_P>QxK3z#8Ol{R>6maHkognIvz$m zeiDqcD3g(n@)sx|5l&Y1Vr~zK7djRUaxXxCn2C@BJ%Ez#hZ@g5T&;Lu;>cY?J5LSY z=k(#L4Rw-e>UG!1$TVR`YxB6!uQdTPwuHYn3^gGsP7lM;Q0TQ3fC&i&o91W4gp>#6 z#o=?(gDL{yW(c-fVa!xWYA66NMyKeeSyzj<4(VA)DWLb*)KjM@Tjv1lxbpC(K<@bN zxi{b|92~+jO&is;eDSc~;Fd51WQQmkQRXPMYW`W0wzp$acE+afcW!j`-EDn1QR%ZP zeDS$UMysDW=>C)EfcKT}N7`Ax99dk^=NdjutH>FebaliOl2X zuU`IH_c)ud_ip_AMU&QFJ!lYMs6;$+W}^C{9;9zOTV;ko?v^-Awx)34*G($S6=SG_Iz_=9i4Dx)oI5?eW^i+SA6 z7qv8Z*WAmVUEZ|pJeYCibM`zOCF`JAYBksn|h9h2LE>xpsWcQ+L;2 ziYxQojZ6MW- z0k|i_7I75^2nNX(Z$5$acs43b!GwgI!+Je*2et^pnZ?VhdRi9_7gd2!-mz0gSIsOL zQ3IYoOqFZ^i)&ea>FZb1?~;FFeqHN(A6;>dTwkb%#MCAx?#cqKGvBf&yB5Pmt};eS zza4Wsp)Vamw^}$JfTjXZ$#P2l$r3 zQ=y7;?Me5_%1U&4vXhb;h0%mO3RSaop;&b=TBQo0aDg4mapTL!lAkJ)q%S%uie{Lj zn6iVGF$x0}Ba#TKkBOzZNsCdVf1AENuk0h6l^wTF=&m^#X*f9wza9C#TEZm6Jh=&P z*HEjIb@^D{Zh0szy{#e`Mgp{9Rt$BDF)z3zQwd5c>P_%#a96Rt0TV)CjKPyE5){sk z&|Cn=8E{kIu&|eSLHQ+~wnFWfg=2I#lx%1%(1%l-fu->y*)oQgsrX+T{d9UtjdQ>L z(R^!C&JU)a`Sy9g>v%&PCL%wvnVNU@Yz@1ys{9Q_oIH0};UTup=@q#!#NHO}Lr-rr7R2uk+0OD&B^|Je+)qT$XG5CX8b=vs58N>-#7D5K&m`fi(frIHOt9cMj3T=%RUqcIvjOe#aJ>8(}ODoMk%r=urX;lB_Dx) zvmu=4qBo-~rC)%m&pgoA82bn|%&I}8Q8$h?Rk^^Q3+(`t_aGq&) znYO5%3(zq14+t1|zRUa(buRY|Rswa7)XcQa%(|4B8T=FJ%h;4kB898O{~?0aZZdIg z!OYBvp&J%m>fQWN9hbLm4u&azPrz;}WI0tUqSwU-m%od3MF+FyNtLNycF*#&BwZNj z9*k4jipJECjKbsuiUP)*$hNt!O!L4WNsXvlp;J)*l5-gEQNLrB#&8%xC{A{`*FiIC zh3%M7VIl9q4`HDr6K`}c0F`tpn>G&ZT~K4-n`(*X+W z@GXtsmOIbW4DtJf)qY3Pnrp!@ro-@zRWNLfcgrbbsEKKpFwn!V4n3HVrlEa81rh&e z+;_wQo;^Y;zz4mH1`4!@G|qQS)Pmn4MsQ4s8C+tI1}RZ)3Qx$kKE^Ke|5)1cB|tqA z^Q5m9?>TPk5E>FO&MB|w#BYkcCVk&fpBvRV_wKywpQ_R7VNpcU(eh}uGIQmMBNBS& zyNowm`Zly;w9>eY=TPT;dr4wHdP5>lB9QHoKY5Vc5x*sh?g2FSoF z4So=eIqWT|$669%g(7yUKbe}%f6TN*~IE=Lb3lg1!#9m<_Lf2->hprM? z9x?pjq=Q#-f^@QD!J;r>i=mysMrCrd9_HBIS)xR_O~YE=f@4VcW*G_H=o`$E2D z(;^CNB)%{bX)1ZSA~T~hViL%qqYXge0A~gdRdW7#uaIBvKfl(qwyV*lQz1M4yBV=y zwmwtJEiy7Kd6fB;d2ZP_P09Y3b97{p;3J_id*l+?+}Zlwt(ml#{E8}fqpT1i3MDe< z2A~_Zi?yi1Dc+HTFt>nLiAtZl%s5HCLwG#l$cZu!k`|34))o+WF&b5NaWc0QO9gHV zZi@CaXOJ_%VQB_rTPg^=4p55htdwhD@6tmyP+MsjOq;>4u2ZYFqHc6lL!*jpye0A&T@A`hMgZ(&;ca59NGiQpcVN(g z<9S!EADWiA&}d1+Pijp3)9?aadQxDgR?VyC1jUDxN4f1+W9Ns+v%I5fw(i=_soenQ zLA{W;0)5dJf?%>?g$9)5gB1r%ELa!FJMiI=0Wx(n9BZt|#3`MLj7WE3f|7%=w%~!W zR%9@PREH2Ct3WU;qGLkb2R_EvLM){>OX=s``@dmBH;oFis&*qF%p&h??G!!NQhh~! z%hSzOyQ`$M*_*jQHTrdO>e;L9)$4O&wqgt=no9Wti>t}*qsF`YO4l#?JF!TI>B{6D z*B%V1xGo6x;Yy$!purIs!$JIba6tj0*(c%w}JS9Eug*dp-J>;7kMzyLoyUZ z1}aqf zUx`Mqyxy;Pv@Ai(9XfIG38S19j8iZf1_@y3iYFB%GW$f36>&4@|E1Vx5JUTmBNrW) z7}l}zMWAyaGQen-CV3#l!U&2b7Yv+O*6jr{Ks*526xyp417H35^R?$=*Zw=))H&k# z_PqNuuGBG8{Dl>$yhGQ{D5$Qi%5hL;-y7DPTLD2qeUQ+dD;6)nIZ-Q^vg|gg^Z0?l ztqih7wE`cCphZgLszVOLz6lBos~st>cnd(tgaMU23Z6$fj2;SM0)t6tiX3|i7>+&# zHB)lLRIq5tGSZDv(NW(JBJkW_UGLJm(wLHM`xDmJ8C>+k{`9eD3@^pr==dh)xhcPC zvL7ue1RtyE+^Ju$9(`Tgo(~PmQr?4Bl1JQ1`OS^Le5~C&jOjjM%GeGT+)K1W5JXX( z(M(DeKsIRs>k=&lmX zC~6VVWijv2aKmf%-`l9k)yy@u23ucg^5=hk`vxyOrXXWZJ+-U~Bh#>56qO9

    Nc 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

    p$`22J0cpd;!Rhzc4tB%bhG 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%0DBEc47;5<5XG_{PTd`~KsEEq=P3 zKbICt7sD(@jrE)W5XIL^h6Cnc9>assZ!i>N#Q>xv*zDvO%3$T*GhF57qu2K&3-W=j z+5QdNk?Nk{Od1kZ4-GE?jFN{D8T>QgH->k@X z>3pAshE>Y3w=PG*_bG9_s6_beOvXgVj&%n)Ph7ts znnC3;htEUCfK8{m`4Y>>`Fu=r9fJ^3Cb(NOk-0+AL`h0%)4~m^kI;eOp)xDr)DbQ) zB>@=X)Ct>c)Q5o69~0wDeu#5y-)=#@i9PmL`=|%kRM7Uw{A^q=)2FM^28_;&- zz3_v9j4)l5Edz8n+%tye7||(PMvQY?^_f2OQ;!K%uSIvX*!rZ_^@K9s1Sx+iOGbi1 z;~tg4aZhKi=MR+)BSK}g^mO(1rtAWY7L458oXQngiv=j6x#ngv5O0$*UI5ifuQLnWfoQgCV96Q zZ_~?0X0HS&sMq8PuD?c7B{Oex*a-~p(1a4T)YB!cFpr2X#9F9T^oTqVl`qp~I2#n! z;6G^3#4|!PiK6eL6+rk4K*mH1B&AVIv%F0~V?Jb79P93Fr}?f%dhkd?PJj9tpC8p! znRH_PhGOHWLkkytltt$yJxbd-IdtsPy(^)ZKFF1k8T@1!5s(C7`?-n2f<~S}4ANpX zf^pfY=Vb*wj+o5cXb5O&c}~p9*oJ~|i>U}#12i5Og#n>-`JRv!=-F_&p>;pMWA$C% zGfl=_&u`Q|rskHW^=3_7TqfI}*{0iKu{k;584;|Eq)} ze)33 zG^}2rRzh8-V-f#IQVZP_r-cvBJ#Z!Y5fD&cinXt-qb4-7T>(dJtR=w)n9F%EfdXW- z={NZ|hqZlP{n~ZIpfQ_2cCDr@*HQegN-PFGuG7CKyg#+c-w-rS*|=%W;}X4!?jht! zVEFf)&B528A%V~uE1W)H6?iT@1$TqO7hM}(k#^iO zahAg1yBX%Ppr_m;$~LM=s%08V9+n^`i>ln&7ECEN%*I)7VbM-R32Xs$PPQKe-I(V7Mb)ob?f8Yfp|rFV_wGtiKhxQc4jr$ z*~06=>ykPb#D@#7nv}xUp-s)t_FQn==xp2+&6G>SCj9XIVP%-6ELD)w#mF@E@K#o(P`aeYub&MS zyUca*d9>%{krHW=x5Gn;G|9q!@Fcq~l#>j-M4t=@Dl>G{i3(>~Cgmt5v3``LJkq<+ zaJfOIg!#^_lW7wQOTri`ChADo*RW)ulF?1#G1rWrQh!k{z=)yt=IXbr@8HO`S4DhE{hvh^`WC$$->AbOzVdRmC+4hd)uecKu5`rW zDM&)VH=45`j2>DqtScb>1MUK*^JcgzTx5ueK<`|68eobrdPfX#xKJQX3}nT19eD$q zD!LkBDO1DX7)_0d>%E4K-Zy@@+qkWRQf6$w)x_+_+aa~PR;gjwdnNd1Lg$s<>;2qV zzePnEWzoXj_XFiUs6rke-UGkmBJ3osX56TWlP8ZFN26s2bDD;d{3g+unF&`1&se@# zIZ6O{!c4;X0uy{s2$eL&Fd8NMLlZ~PhJccH1V^4unbMI02Vtz_L#j@+@6fkJz5%k~ zZE|YHw1v^fgS+)J{-<-)@Ah3z9S`&|e3ty{mvo|@z1yDODlS*<`0RLAf|^X}rALZ1 z9**7m^yx4eHkBLO%b3G?D9b55m;=&qNOFh$BJe!)6SZ2wARZkXDGzj2$Qb~sXtYrv zDVq@SZ3UF~K%j`$m-_(PV(ntJHV}3-o|4NH_eCqua6GT=FOFlOoNq6_ij&fMfzrJ8wV z`mZ$eR^vR~hfW$c9_0a(P+kCgPoc!}Ah=fnuiKi#p#oc=%|Jt;Mqc_oI7@8WqRwaM zKy$Jruprk>N=HcwIV+FGnL1uUhtIMsoTza&8%7iP|V{aw> zn0BdOv#(08Ab?FBe3bzl-?1j;QW&t)Z9TBKV*7i~T zctTy4Et|rjWn19*KZdn>zO~hr)>md632ON1vRzI$Jrko}-+s(`E+2ik)><|m?pU>K z>*6xHinqt+^QW9C-O59)$HbA|Fi056V16Q7o`jDqYuK3s(sEG^@-gHMsMi~ZAq?Ru z_i4m9eXKI(HsJ0r_nl4#c`L=1xZ8rgkUv?#PIUvw%G*&0*xn{bVye!0v+(@Maj$0O zn>_f!zj8T`{AyQ_l3E92G@{U4RdT4T z)#25H(cv1*WYZQ-335WoZ{!!_&5KX{yqvB+gEddH}T(+PxvqzyI zTb@Ar5oMAIz3?Mt=uPEDnIpT1C_ZKTv{BpO!UO*_DtH@E7!!2%ZiDN`hfXjA>O-F# zfxatZ@P&TqF@;4pX2s5<9}BoKCG5H_Y@G)5Zij-^4r3#6-J{#4O_b@bNT@mafURgf zP=fFPLKGMCL{cO06|7<;>3*Kr;3g{VsQn%t)aH=qkcddS2HP z$p@0`y4*AJ`QzoZd1rnwo7^R<+U%kiqe3c4A^V)nGLOd@X#(#RBtz9ToashC&D`%t zcg3%`$PcZB+k|10++`$6`wg!c$5y_7_OGD;X9UC!cghon&eXI#2$83+>6%5={$0Kx zyW*ll8_rieG-N@+`K*Kbl0xbv7;NeginXso^M}U< zksQr+Q}~g1&@ujpYRHKNrGm}HhyaS43~%^K`5qww^G(6Y7bAL#Y!-O~(sSs&m^_0| zG3aMd#r2RcmZ?WG)L`5shSDGq&|1=ry<2~%Q+-=&mnyLfcb>0R$)&Dd38j9e@8ix` ztEO73{Ik}=V>A3pXB~)F8ExuOUs>v@I`+4B?AC?O8>AWkFD4)y7XTl=UkW&ocnVM! zxQTj*a4OVc!YCIKMyS|sae#K>)PsTttG=V&k8%K=!p|E&x7qDaG zd|~|c-a(mHj%@35J8#^Ve?71Gm&rf!R2ACUI~5Zec7{E}E?|39Ma_$|NjFmrXFB_% z?jKSVQN<{{{H}}q(2_?9@Mu+;jPoH`ny1LqnN)(7a03w1iFzKqM+gl>E6NU@fW#mY zVm>3DdLZ)5JZWA5bZD4F_a%F)?9dy?9x=KX_-*ct>rf=o9a47m>ft}bb?xjg=k!|S z-Sxt+Cqj448(jL_8JVt#zKf>e9B~w&c&7eh34R$6s&L@nsLJw2`(`QS1P>PK}kiOihc`lff5nDA#k27 zY_}5S0LU=wkl>fe!Z{WdfS7j+<=@4ZHxl_t|VPIJa-rUa-r-c zY^$qDJAFNJOIZ%n>D4>eZk9a0(Cq2whcxpj4Eb#r`JpAQbkNuUV-bgB(HWT<$~O=j zEeD|&Js!k1gk8AsaqJWh9|1>(hj`@T%gQ*E$sGDY@;bK&H+AHO96WGS+#X~_giPT; z@WB{pq5y%oP5<$&RA|_X7H;ESP7y%Lsvf1>}d^M;pRM0nAO^*?R#YpTNg_TKr#V+j(!oi}N=5 zdUeIti}qizSl%hEU&m!;m)d=?ud&|ESw-dcKfMVrR4$QU-1YqJMfu{`>4UG7HA1?G zz?)Hw-K0Xau^ZT>%fJ?n_N+F!lq!215;kFl8Nv+7yq3ZiYJ&-*DjLwxHB!J^&9*eLd1K$rPKR3UdT*5~?b8@?qct z=M}plEC{4G#0^1KNz0U8{)Uk?SQx>BMI7T(cKtf}#H*Jd?jHZJJTN-R?#Qo(S17+A z1FeUIgZEoQmg4PV7`hj2^b1p5UUX4TSEZaP$z>^IzcK~5KpQt(mVAe0T*2^|COPXOo2hCsrl8g0FOht79gl_ zM3KEhz=1nt4I(adE}5o))FBCjD~`ei^(Ra_p@D!v0U{wp_+m@dWGm~ai32M}oG-Y&jebdmhyVhb-xh|`4xE|L(H<%iZ1Sq)8xM7HJt zj5yZN_@q`2HhJeH9Cuy>v`9c+9gNkgn zVwOzmLQ+Lt4AlsozSNh%5W#h)?Hg0yWyAV_=+LHv>Qr21{LhGLLW3>dR%vXyKQXSo z+NdlEUvw7bv^oqv9}#-8gj!0fgyLSsYJ|40cfT={#{xfcDBOwHQps}GL$VTpovj8GwW3r(Ap(n!9|#FpOT~Z?dteP*oY1Poq!kvQON0_d4d>A ze&8J;CI`EMq>GqQ+@#c}VhAEkGAuN(K4KLG^$Vd#yjYnGfuOL*fkhKCK@j#0hR0CL z0UEg~u*mre(B*WA8vM`94nAJmR$c^~UF<@f2 zL4cAQ0HsmzDt6FOS)y5|NQ1Qr^%9yOPR0!FVLw9LCl%q`NbV%nfCb448{B#r$8nv_ z?>=mGY<#2m)coh`YPFg2K4sAQ*7}lCE&q3(d5Aw))aLSI;^h%FQe@Hr(`R->v^o z{-JRi*nYscNo}FTLzJP+g;(bVIwuN9<~K}z_~tniU=ET{gjWY_0)LU2Iw~BvLo8~9 z>`UW=zx#uPps zCFlf>XWj}C_*<=GUZB%j^0_>bI<|t;C4zb3aw$k1^EdqPX_f)0`8R{~riybjb%nU) zb1K_$s0CU*K8-*0^DY%Mffc%Y%{LorBckI|1 zEe@jtuB zt`5Qj00dAG^k2qxV0R+@gjEj5$W72AS28JdRSF*>GTkHtN!pUkly^U0d;9y5&Gvh1 zdo}JlA!eZQazk;?8~;h_t&e&Vzxt@*9eJA_6?9bYh`tRjzV-EC{vy;AM_r0R=7`)8 z0x$R}R{&^N3i9R@x=4%x4q5f#1qQ*`khv9xM%bc(>66eAFJTjg=nJ45`$+~0V!H(Z z$vr}xNIVXl)9r2xUrUou`({46I_2!LysT$U6t9C4eaM>^p-gxAzBTFT`P(r*Dt*fG zZ{E5PE4BN7H6r82Yp0B9HU`nEvMR#UoLEEnqUl8@gKUlD0l^v~AQUuRBSPOnM+NF) zD}@S=!;F`8ZUFN10Z`aDXW#*NZwO&nhF|FPh-@OiqUjQY(<|+&)?D*2IX$Ig`M;c| zwdmNrU}+CS)0WJ*XTPZS0DGcxGDC|>=4*3ar-wGt?aPqKn}xG;UzPy_VvE(14GWk= zyuch2OC1&iq8X&b6^#trOcZh;_6yJ>ke7oBiIon^Lxj#jW!eAjOwSi_$;az7sh9V(_ul>8H!tXJSn+Sa@X^ssHpgjBEc9P6 zx9H=C1V>~j&4;efrF-Xh)b8EFbG*iOv~uOy3k7__z=`^wRu_8^7ER$51b>eDL>3!J z-36(RP)*9ChX=yO7>NF!(K;-7iV_Ukxl`nIurL;9(6=M@1gJ#=Axt}kA8d8%(CL=F zrVq>hx^{>7=u0W~hss;&>n`aCS;=x(+Vh^Gg`*62Gz%s=%xQPZ`n zLtCeTSQ+qX!4cV(L57qCxe#tZiGbsTZAo>g16Dxg$qY=UWfc)}F&Hg&=tBWa;B<)O zmM|?8ZGb&O8lVIw^NIpU*11q93s-1j=gND2|6_LbnLB>2?Njcj3#Z0b579r18pmFJ zxI?`!H)YnfMS=g}IdS0B+T21Zy_9jN{HE4&@Q7iPwb14P4a8R!8l5mY_;1u=XqB3g zSD==GYBTFq-wSI%cwkv5$NLiICZ!2Drtr-ui}9Yog%VK=x+|8VVG2xLhG7Z^j%Pt@ zf)t?K*O_b1OmKNLa?Zsi-CCsOc1b#_&x~rPem7#5ZW{XP)~A(zMeil==+=XCqE#j=vU-GzP5txQuAJ#X7rzuqb8(f(?4LiJ2X zwUdlnlxd>E`Ojv?hvt^iT0L8y_3&Bg16DkvupHcDOxsZtK~}-fRzG4 zh38@V06&naKV7<5vWfv6;3%w8P8fX+^C;>^0kzoH0GE)#gcosG+<&QX;0lY3T?`$m zm+@;OXnnr&apsD|R}UOLH!jWj6ndtzThk!re3hu{udZ3DyDRGo6Mf1^Z*P5i9jlk# z3WLLXK*zS7`!#QeS23RhOI#LBG-o=oUkEKU3-xn7hl`ZC3;PjG>x$hE%Dfh@{Q7GvjUWh>}~npYrgD@;^*EX!WKIt;fTD@YKS z9L6lSyo0^y`|f7s zR#L}`yRt)1tszq?pm)3WJ$pEH?(;|1>r2~}n5MeV?JHRoTaKSJa@+(I4~X_e=KyJl zJR=JMxKSRwC)f{u6^cD#W?@Q6vw!i%nwb{0Ck`yEVe#%q^U9xlHu%1eKBTE(;HjVQk1ApKQ($}n zGA$M53VWFLLJ?=_3bLY?Ba1*Zlg132GKJC};FG%mg39p$xDaboJn3O~3wxG%2?IKS z3n??3F@LA!r}+}m64MrBHgv!2(!oa$5`lO;;d#N41uN#UsEmLw*z@Fytq}ZmZ7H3`1IO<{eav6j_>?TlUQ^C{ishS~xTRlfDr1C>7GU zxQNI=9qA|`+z^WihN--VIsy^FW&nE9;D zDz907anAj{MepL%iMO}+N^xAA^z~+%nhE22It?Gp+D|5pn43T)U_F-*>_o4Dijfu& zj}$0t5FL0ZntZ-)k_Xp-tOAi!Kwgkx5;{#HLoYF}g8;$=gVKyJFaM{qGfouO!W*W4 zG_JSi@t}`YuJ$qC6LZTWEZ?I1FMpPP7Gu*`pV_TdOQ5~^t4S-tjL0XNoL;E3}wf(^KXke-NU^~)n0Xj0l180XE1p^SC2DZ7PZ-D090^A+!fhw4| z#9QS52>3#}U39V3#}su6YRO=RQ9P}IJL+am8heni;uD(lOVglR+b<6o@Z{X1z7)?$^ItPpvr% z`5-h-0afV#mF>kVItW^ z)QkxmpA;-9ssN%kZ+X2$5~pql5Z6VKHA*p4A7v}r6ABo>be=&>gv3CKsuSRaf4DFN z8GRGDgsFm85O5d`3pa(&Z38SOSrl}FXGTRQ+ccOwvRe*XDy0H^S8;Nt0tl=)@ZX+k zmG9JBP%-*-$Kw^pxE#G8vXf#;s<9~wUs#VTUgn=*GhykLCHva^)0gGOtI_KadLZA| z_!0mn*JrpP)-%G}6eAi|dT`7@D47v3o`&KDLa`9=a@kXrOZ#&5#4HC?9I$>ptXQ`AOzs1RIgMZ4D6wH5d7f_!iC47 z5k4ucIzM%Iq-^%#B{9mD?TG|sk|=dBfHRCON@CsujA9;47RCZ+z(vKH2a^>U1(1u_ zVzO$;S9{ye4w$y6Yj&G|{%4tSGH7w>lLQy)QIY*r){5h+PZtH={ZD+Co|f03KS{+? zpZcJPvgHEJ5AqNK7H40stvRp?s}w}IWG9Ov`BsJVi>e2xS6PA$r3J1d6cg}YPmUJ3 zg$|6@#4r_eOj19h9JXE3=6jOYp9Psb{cCXg;Cnqj98H|MrEZOl51T0Op|}G!Ha(m> zUuU0{5g6|K-0(QPUU}ftGkK1Ne=R!l+H3_kLY_lKyPz~Ou_e+9 zaaLpMd^dDfL1g3Jhk92${h-dT&ia~5?N5^5y~3$fXitZuBVT8ir5fzpco3W$lGo&Wwu!FoXybwJApfUHE zgG5YX=4CBnI9O7+PoZjJ)w&Q^QP2{*Ib{6L!{cO4LCVdr#KMM?E4`^#ar2$Cxm7df z9yhc$TXlX9qj_vmG!HV?UyCY=Qg;LQUx~tfRq;#VhqgYMmyM~Il|s(vMW8rD(g2JK z?|}$~+LFCEKq@qeVvoX9kb;GAF7HmfLQy-w*kswg7{XvTNgPmoO=$z@7>Qi?0HeeL z4~`0Jd$@8_n}a)F-w7Svt4&N_ZS+(kZi8J!oZ&&JZGnwsVxYbODsn3f!oa|2b}5{sUZ+u%O_wMd zHFV5e3cPJF<$zd@eJS7&JZC5{JS@{PZ<7{%PQNL?Zi^;k$M=p8H+>bJ-TB)SrMLPR zo1V(?Fk5wJu;$X!?1QrOzHPT2%z>B*b?)x;$BJhe{2_Nkx6~)mnO}9`-&(6FBS$sw z-UrxPE~2cj#<~<-i0LeRX3S@V^+>E?AuLFPS|?Iq0NH`3P$EK=1?2)-0XYSvWi|^id*09g+@6MPN^S`b48rm9vVL0I0b>ot$ zTJv7cIT#PS$PkV^7n8H41kb3HNDicj;!f;{DQ4j=V)zIDRVXsS)e`yst1=KmXS^&wBbi3 z{}u=d(;ixCOg{;XER_Yb2fzf-5mUp5G<@AK0LXvV`UCa$Vo7`bz?zJydS(UCdF z>Z#M!ml=sWvFg#uN{?+>7+=DpN0<@CLsd%%u+mfkS989xYeS$z6yxTQ;2E(pwZc4$ zc^62K`f_k)AQ3WyVEzL44xfCA6il|5pm60ezh)h==&~55cyZNa4leUz%y;pJLC@)J z657KlZ1naULq1I&HnT$|2j3d)oEjVY$tJzZqt+s8Xg0mdo3+0TT5%_1`_mHZ)r$ry z3PD2Cv_mh40hGY7wJ>;M3Qhz@MaKwFHeF+(gwg`138ryM>qx(X#~Wls%p`4*VJQx{ zJU1y3D_j;^!(B(20x~Y9F@lF*C0R|*{`AK7--QVgj*WsN&C6G_ z)7Qo73(9_bPq*RcVn$*rHNN3J3VnMgrDU~VlCNjw(5Y|Rwr$&WLLLAe7(0199A#3B zb2_3euuE2R({G6fE*Pd#?!#dd@C#>WL^ljpD7}Pu%pD>O$atR}rLC8nn@*;>iDolt;7I0@k?qvPXXbxOC+tE10F z9tV6O*d;ABzF3?)+ASvJ^!`wk$huSq&1@N#$xazT%BgIYh0oI->YnwW@61CNI{7Yl z%;-2=6*d=FHb$mr(&tdwP$#cilf46XhSD)1>vrxkbx+<6p9<=>BKC7&tS62PV$(r4 zj2cPG0JwVePY|L(E0}o+e@iB;^pnJN2(7XZN7Ra>d&&Y@0cH~X4WO~u<@5ntHTR;U+n3H8i3R+Q>YzqpiPODUV;~`eYR*_p_<0Zz9_Lu?wq}I^(l2@Vo7Lx zK#xvc26pX65J2Jsc8cqmKx3H05Fn&Apx~6RRs4v#G{gch7W#M;vcQ`}GQ?Qa3xdOd z58xk4wSlh;oFx8>aN3Zd3q?k(OqkQq&mr4<^jScKQNB-Se>$=)?e)1@-)1z~DuYVB zRgsbD>!i+#h1cr+N#`)WD*Z&!`9b?u%GFT|=qX7yVOxphQTj+o8A1r9I)x63B_dG`i+pU%VOvn&al2@SxIieQ zIb|n)j0y~WF>}q_?q5yR&dpdms;cH%wf&`^BJhGA*JXElMa?mvm6yvnE`=mKzl7tG z3cv7Mm;lQr8|ZXIVYYXHl<*ozdN?kLCWUDQeKFx!FbAr59)LuM))X@a;kM&nhr2Yr zuu$4bIrJ<9JPI@rV^1$Yewh43IEv1{-MeYShRy4js-0fBoqP3vr-!_WHS8wOKe_(1 z(oJ5taQ!U=7xji@WzRYyE3kBk3z?-DX0>pb(sq1j=-&htsxn|z4A`;Vl4&tAM)(Mb zw8)g0#;Une>|_}$W6T0G0!uE$%8XPX7?ERS@g<`oxRh>)gqq`$3c|r@qym5nhZKxf z#@l54_YI6!O*>yP;@(fUET6^PJ2!LX0mIvoe8Wvmm4WGN*Ow_c&z+jLS}8bxyWL~q z(viX3j^d_L)2omBILFcL#TbKdOjAbe5z&+ED8r|iF(o=Ba1&A~DMgS;jtY%GI&$Sg zBSnE-fTBza1m@tNk3#%}G)N)9NSU<5$^f>U5mA~lvXBAzALfo-2IsZ@xk-&LMvu+X zwt5mj^LgpU%*ZtDWoA9K;(Qqwm2$3Zrre(N@bOvwTY}kM!j_@?h|z5wX^cS~WKfK- zn*7h~5xO+_pH#HK(p&y&151wECKkUrE1y#xRJT z&fgk;Mjl9oVB$)?CJT>#ox2U?j?jCF!w;5aTzoWftp4ClK|Y3;OB%;tTYVr_XY=)Y zAoap^8YLGsGo3$B9s^CrV&eBfoy;=Lhf$H?@oYCAIC{4Rn9WfvgBBXlb8=U!*0+m(g?`3f%Kn(Lxn(mnqRbyH0NE zEm$7sM$DVB!xiQQodM=tATzl2vv-NPm@<6@VZ!7eemVz^<{vpU5rP@GvUmXo0?Cvb z0L~m{=w7mg9h#Y}tPr4`mrC77{y$K|G1%$hV$%;VXXecQJFWb+QExL8BRuE6?FSa| zM=swoGFz2&>T}KAOM!_AhHuGd?xDH+n>foaxSW3%i;8H9)@uq^gUrUOq47jVK+2?{ zmbFY`O~^Ql<-}52E7@PrF4*g=Bf(w`U{Uz&atHZvi;W)GZcG8Dz2JgIgjx5Lz_Z zybeEt7(lzjiC_Xm=}5h=z8A1b5zzuG0m@JdXgEV$ZvX^F9IRp|sG(`W+Dx>-!sf&6 zfdfa(;OX&mrmYFAWs~4AYKu{qkcmGwKD(jn#+MO>EQ_SKE7_?g@8fhM&HUggcIuCx_`q8AwzyGADe4e zzmCI7v$~5E9;HI@?%ty-H(oM_T8Ql}e2TNB;ogNO0ke<1Cg1CMJ8VgCuZQ%LAMQgv^@~!(px!yf9grNBhMYB%F(u z6Za#K4wA~`0UdqXcgj!sC#qq1HLDE!2)}YG3|GX0R^`*N3+e)6?G=o7EErkFCV7eeh73a(CeL#)W#t!@Gtx4S9l`3iyx4^1@$q$j{bhK))bn$4_dV>{ z)R6QN?zghOnkCQVUc0lp=$7Z-Ie%rfq!Jy(q|1$h=383X_iEmu3z|XzJ&Guy?+Ceq z*8;19Q69I0841cQ;3fr&;VD?OV#}Ro#Kl?z)U@vSD+?qJ;6bv-Mv@mHo~um!=+6Wn z0JfzTV5^4sf!pT|JU_fk@9ZCMTfC~%;ql{F0omV`a?3C_T?n%RTLO*mxwFZEhA$={ zH!DH$0nqWn2wJk%Kymi7V1yt&7sj))qF0vp!b?C&$|#)O9$skZ81?{qQRyo#0BB3; zAerY;XpzLxuwnBJGDCa74ing9q!{?DBwA7-MK(_*R|jnm7&(50-X_gArW@BwcBts| z$G}0c$<3out0k0Bb*PPg`kE6OHDqP3UjGg zl%3eHL&c^TV1~+oh-K3y*JjI->IFOYem< zf8&pY>(kcs7`)QKbNZSHH@%iZeUvvJB3SJQ^rd<7JU<)*IsLP2D%`e8F_F_lzS7m-mZ1|my9}J%_vQw zHZqOd8b<3S!~0FoZUi6=DILxZ9zL>Gc{`O~eA}t##|=D@5|zdM!=gjq_5%bT7jX^f z5e!vH^s)z!`wty~*(5&IL}cAm3^QCnWe>i3Ix=>v5q!x=_-7$0V*NMEj3^b5^zjvt z^6@MeKPN5~y&J%@h*;Zbx-B%RIP&Hz&1(HUadH;seY_XnR8U1_|RlH78o}8d%Ff>Bw9{ckd~- z$n12C_^-)6YoLCvITi*~^qekcIN+{8dbqbq1P~TH#8Unl)RSB;AyGaKZvNAPJMSGV z8ceTPr}NAYhrivd56J2XTbcNfNG7P|&cp*p7MGnT<*&IrbFm&122TLsYCnTe{9GOJbj``iO!4miV-k1Bzs_mum;RerN`ALMuXb% zo-~%|Ip4P>UHnMixk<$^ZNV z0GPS@{i`&Z=QwqEPTXwwrc35n78W#bw$yOo`X)LJrpvwz3(cYVm#)4m8o1usGIzd0 z%kMWWZnxVEyd&jzT;zwgz8(3S={n|Qs2k)N=!v-(5JRb_;HQHPF{p%2!4O93bW{gW zTL8M4FN**KRFEWyWh<5+WLP*1B9-8Ri|o+~>Ipt(?of`yD%`vH(zsREe~v6O`uc`n zdGlo3)`n5|{N+3K%s_uMvlho3J5@HHoR~fL=qV+i%xtuU}aqSrzk)>fo zKnjHpCN>{TUU9|(go7c?2cte#Uj;h=@ju`rLwyxHcj*^#fre+ul?L7M?lc`vDIZVi~$4P?s*omEG<(X;fIbVdLzWkU3`j}CEbJ`MSQ`2%l^VW1 zej@VW+Ni#^10G+y(EgZB6+=}~$bD}$0AId-aOVlbA^4?$IesS?g6rZgK|xy|9l0bk zPjd!YJOTF`1 z)ZFr45p<_ncgd3bztw*;HE;v^b(uN)l{nu{@YP zVE4g)5)BvtBONX0OXlB#FUSgc#NQ0@5nRwN(kbFz!mf2ZZXx7Do8mG-@Fi=yB0yq1 zjcOlsgE1zND`QA@eD(1o)(wq%ywB-fZqAgg=MLymJ(YYkGk%V4a^(LydsA4M$S>*JK*2G|P81!XiO-DZqwfiJ}=QY2Dy*KRn`apCCIt-Icsp{bEltDuYX z3;p|1+urT_K7OYz`#N_vcr}{zGHq{k>ie{fa%EJ=2tug3U|BeaEUFvWVc-BwXGNhS z1PahfV0$bV876x&*`s%tO>pcal=man0f<}#%j3Q<;gVOuFx3@d1;lFhJg_ncZ4|=| zx*0MH9wYdCp(F;bz_|ljB0c2do9$|kj2yjd$iRKW(gzpZ-F|q^&!w}xvFWzx*_Cyi z@SJN&hl*O@Td8@w53!U~!6Sq^Wi{TbYp=FF&B@L*O5ALqcB)9|5`2DKB56O^u*{{# zrA3)W07&o|QP0CK!El&OHK0ROolL=@f3XyguDAvFT>>8+3>Y5sWGNqcMY8=G`vCk^ zt9MIJwj29b`EQ?S2im;(>bn<~Efw6Wct&Jwx?`iedhgfn&D#mKQo8WEJM%1m$Xi)) z%yiq>A&WU*#qF?FpFYi<+x8#W5km)o-w}L3C*rM$LK5hmkshoMfFuZNMe;TARg{zt zX%#ySByR#lFvBDCDr_XkA-pJ1J6H-56CsoU5x{y7c?Rq0y-m)Yo|n|6&h1SbN4;EI zEAQvV3kPiX*JF8V<>KpmvVjh8%}L+QZpVyOabkU zkr=}-Mwf7!i1cuMFyonMT)W}dyX&0O{(NBa=+z6}oIYGIKtDrPBizo%(H+fvuB@x1 z$-5E$6fZWzF6{Er{3nWutiI*vw{-J2)yf<&`(V<@)Jz~;O-^8e4VaxVQmDFbWNKnwOq%z^{j?e1cM1ppSCfVAd zi*xq@J)I$5V5ryvkv%jjrmawNS)3)Lcaf@zH2`;|=qm9TfD<$UOp0xZ9F+LL->|<0 zgk)D92b8D`hZlD-d_9FQM<=7~nZp=DwyiHI7xOl0rQ5rC4L-YP@@wzOVf!omtr+4e zfRbABr_NmPy?X54J&wO~tf&~sPL8{w_^;~Em{rGK101>x?B7o46>Q}#b0LOWvaMQRa3-zjyBMU(>B0Cwf6ftCSOdDjb0&SA-7k5>J zhcKP^evwcxfFR)jdrKKX^CmJ$EC)DN98%d?;BB&_$C|_)RRd2hPczPn3D>TC{U+j+ zO3~Nvce_)O#P{yGQ4LJtyVz!BTE68&lE} z6gL+&Wy<3~A6G4~Ejo0z8%Bl!pJpo+G#;phToS3#s3mbjft*gdXN#<;UCEbt$O(>5 zRsn8tV+P)WW(D&ddVPWvxgKyIDL5FhOjqm}T{5&p0FKy{IcHNqzL**{#@3yifB#GzHX`;l1GZz^P(gfx8$@0%?WVB;rB9Waf9EH1P7#7Be)K zwalP`sBy7Kq9ma51oy+@HYa>BUL9#Fx>kC2l>*rk;uED88RutNI4 zQdlNo{0B7(1L%qB4uFE50nWELDkEp3JYiZ7D~W@NECw4xS*MF6miR?6jvEbxEJ(aW z;cYboE^4QFof$N6XtO2`4T9HJ`s^1yBhH~y2a4w<1^2AfOP_P%&}qEU3>FX<+>3i6 zx;8xot4zKWft%IX5rd};o-%3@Vtkx|=;W!&2mv%IqCvnmNVfOV4HIR-I229-a4VgR zqz~E$(gi-5^p~J`wD-W2AZpCM31w{e#9jgMH^`u@QlkrnHZLop%VjU?7u~v7?9olj zax!amX+15#*51$!JL|%=dS;nVj#khlo=m%syP*oeynK_mL-xu#%U`+3h0$szj2SZ6 z&1-}?RSDl7RB8|`Fbje!)xT_p2CxSO=3hV=%58y83R@H#5jTz}MLlm6=UjBi)>syE zM4c ze#KkX-~#a_XsvA8I*gvuej@N5&;!W47epALDFfnxD+@mf790?fFkywXKpi7G9vCh- zrciHDmxv@^paD<-xIGYDAaF|wM0}Qn#Uz~>lTcE{iI9IW;cq)SedJFaKfiOm`?!kD z-mdxj#n`R-HcbuEK6B^PF?;c;g=Xuc_xVX>YqKL!OIIh!q2qU4__x+#h<2z$ZmptXB_(4cIB!V$iQeO_3gqR^v{8O?p6(i4pZmN6V@U}y;4DFg(0n68~IK6Fgov5{K=d9^}wDwk^GpKr<+J# zemMIQN(6&IoVO@LQqe z!(YXEh7ydYq+bComYxOqAjUN4aQWDrDtJ~fsX(THD)fXkyTiRcx`z|BXkG{S-L)pv);eN-<-h(@j=JCfIBpqB)k`f9o#t6&YiXw?2wUxQ- zlBE8UVIBl8b1xt~j78X%z&%&UI}9a}eL?#NK7ymiCITK94lAA~H1>o6uvT6b1u_kc z?EYYL5mt5lk4SKCMt^K+{Hbjf^RH|DIVqs~fxg;GF~^!5)-Q*Vl0@*^x?s)+x|D% zWXiM=F)ls+cTUgORiUJUOF7@0DK3YX&%X-#uQfM&=BH+rUb(K%^P16ilg3Tdjxs0y z%Lo;Yi>zFRamRg8xJLjekawXJ@}x?RB-caI#kGQtSU7GJ_8|WhU3l(*h69)(3!p4$ zA&WWjz^D4*H(=~BO$NB7KAv-|hev9Un6~9QUDy}0Eq=j~P}}E*)X-OP3Dwm1lmEu& z=Cz`We)rU-Ro5hB?eF|Qy7%d3uQ(TTW$bt=GNigv15?xmw;P ztv_A-;byqW)ml|6oLF7+^zUQum{iu6$Esn?swGE|@Laf4PjhACfj4IxwXEpWzq3=P zKN9brIDb|SnXc03-tbGhy^rKx45t8*Ip$RSSoq1tW6&2-fWU%el#KL+5CN!9)&R%E z#s=*qqy#z|XujMCj4Np20FHr`0Fp&TiRTly28kYXL51nwd)uk14eh^hzBm2j`+F0P z&YreqU2T0SsUj~yN3QAicdY-kC5=goAxg31Q^M*K`UoJNXizC#e3n0x#qn+v$Bwu0 zHs_Mly`y3SsT7oqRS^_dLJS951(*?1iy8w+7ZBTEA-bW+6}37DrW-^M4YUJFdnhm> z4kb1KvN3tWErt0Pzd}7tt?5ZzZaO`{EHB1p#)r5StsIBe4w+r6m9suBt0@18z-z<+ z=~~im#BMJhxIEsydc!+;E8!U-esczfaK?%onEK${%!Tn3fsD&D*uvO>FGQ(@b3ON+ zw!@YcyPO!N*hFH27p5VyiG(ScIBs~bvPU-E$Zk&N%*?SkWa5oF6<1_)xrT?A+qpPoi*JSGG3u zLu)mBn43c{`+mJZzZi#5`w_ULn3v=YqsRjj9>xzOMkZJ~Rw%tc`2)9R8S zAkeLFZ-R-4MIV<4fCWee_dcLZ-Vv*i34Le`n=|q{+wsfq&*YkpeRu5P=C8HqPIsKS zcXBnqB0EMk3U9~`>Z`UWX>t2ML7Fzmj4|_KR|#vngdL-XI4}B4W_3si#B76aUFdA^ zC#k}@^Pu2R@)+{bTN12TvSa4tKd$=PLG7LX?pJ46;S!V96V~YCjauq$yLeCMJQ1?~ z*}msxr=q)3PVIiKU{*n^ztFj2_v`1_wqHL7CepOm$jK;>a58~3M4ko&Hb*7S*CHOn zvfx3+3s520@`P@XZxjTCL&NSF4^jqah_4tdfqA^Joe7&nBpPvI6~WVuK9CxoVth&1 zm9;~M)#`WhYWO!v?RQW97-IE6KZ#Qh_Kp}oVEOd8?=*3-XM_Kbwlj~*F>l}h)Qn}q zgJ+u63>nQ#W2C#%HuH=T2_a;Q8MG+LzKkWaB>Prbi!348vKFFLvJ*;{Qj$HgM3$_5 z-{*DR-M8-i{``GkukkgedFH+?C6<2cUa#70A{k`BKOoBvpXr)pXD7vYAV(L#wq z)xxXUqF&f({1jF^C$M-2y+B#JPKkb#ataf1YQS`5%ha!)o%YleT z+<|79KSEo>!AHJH0HJ2$<%n$9hVcj4oW<@lv6X@#g3gv&70sY{l@fyqn+Vcjz~CTx zi9}bLL#&Xv0Dd68X)Ax*{~+(m5Bsi9J-z$)rLDYfd!DO&(u~dS9XpL@p-2S}WtP9s zvoLr=gx0f=A5y0tG(iIgjTjZsg>N2FELOIeUtlW{qcgt2(4>vu08R52&7GQ)=je=-h|g1qDJ(D&E-ml}Oz0sGhGYj3 zQy6>XZ}2VTO$|jDNElH-d}4!4b8TC@T}U7B_rxu+R+fMK6j0}L|C;(@O3ic8%a3$d z<5Aqxb62NU&2uxBoJpGcPM#w-=pa+;Va|iPw;90-bD^@u#9Ckmz(%?K49ru1074Ki zozOcA3CxjWOD)YEy()4JXgLTU#N80Eut_*PV1f;wASMBD@zN`yf9C|^ImE_r#72JT zqk8-KFaFtgXXd4hq!+E4^>uSjIWtr*iPWa=@GBo$VAxPyvpY0v0eh+p)A!ckys*%p zJmp8cGN0E7H1{FEOWy;HCDt?8e8|w9Or$fp#Yh(FTe@)auD3Kwhz01aP}Cp~hE7DY z#(16B;ljsTV`ai^2ZKa)W6L+gs4;y2NU(+qcaMF2yNniLFE36y@WEd<``!F7wf{Hz zXr_Mp!pjfvT9;D&?6Sqjwp9J}Yo={Dx`pmf*Su<+d$nor(wcglummBEKPhwd00=Zu z=(a$9kptk@hw=wrg!jY3Eq{#i@K%QZgyqFyn7&jT7ZDhteL_78oX0Dq&_z}VY=n#m znF!J(HjiK+jYQ(yim~^8JAE{2{@t(@WNF0QFS^ z^Xbxz~wd4(@-Tm5jNevco2VB*4ocLQ#0|2-HpF7?4kd^G@{AA~6!kmu3R> zEHFG<0g=-Ip7J|np3JI>p$0dCIZ4r{0txY6C|gh!ijxKh5Sbx4=HK2UZ+CZhp4I#L zmij5djWVB@Y};dUv?6t@Ip)}vJ*b5DEv>FOb+ceEn7sNZ1vA(3H(Yt$qsY&wIR?Qn z%{I}O@k?goc@01$R7BA7V$jBnjo_T1PqLiOp7xw`MmOHVp4$Wzjp_(C6!Qao4VY&V zn;iObxJITPIetQYQwl(k;CII1f@ehRF|GE${>zfGrgmSv>iFe0-^Og3U)@me99%R- z>w2F!zbsByMr}zc+_qA?=u|lCz~)13JA3p75+N5OjCWMhNujJC!7m>whz#j(Jbu#A ztH9HjE)ZUl=7B%S4sJjmGp+{DUO{Qbse&gL*)FqY?2_Orbf0K15-lk!nONd|AH= zTFCM_wCG^a6k>#85F&=YCD}89hnmobT)y+uFAJW3)8XHei-SM;d)faIuRk#QL7)6o zm@2Md$}qJZ%D*}{;zX5$^m^^=lyoT{wO5-SPuCaO^lfX`v$q>%BSIz_(?vxm3RJQ- z<0hhs(4eTt-U?Y9t+%8^(WoFNpaKzh5GpPLE0;;^ZGjiK8l*s|bhIi+aJci_3Z|j? z8E8cr)E2b;&vf(gnXchWcl@W-?fT{2ewp*lS10sco(hnh%dOBmp2=CBzo^P%JvzPN z!Xl-xm;9k#3&>IvqQ zmahf85P!g2CK4$uGLUN%+#pV&7+5F`kwd*$v&VxAOYBzL#r^!1#&+BvZ?Y*~dzjFp_Wy9pXHtk5cI1#@icEI>CXv{dfuEPM?s1`+z&1EH#)2zwR9C}UA z*?|C3R3h2|GaIUU%3hZ4(F_7m%bYf_J5wbxP6kcGlS4jXqzlK(<)(gv8sj$`ZYZI;F8@YMK5~yxKQ3RYg4yRE7LbdW|7&qzf{Te*gZ3nbjwWFKiE}ZK&ERZ z1PmVTGkOS$0C+vnL$;gANSQ1%g_~fM94a01TqdyP5#Z9Xvt%+6k_q7!`GH{oI477k z{FE@f11$hs!(EmA34ra&rVd#n2G&Cw!H%3O|Ieh!B~4;hw%i_cEwJU2Uu%7KY5lXx zkHCP*#fx@o0l)dcy-SP&sF^P^{>gb60Z=PK0@ zDGEaL^DyDks*-(W8INoL1XqWu@&i*qZUR;X=|QUwKuy+Qjv2o@CZK6Eanr&dN_H}l zT^QW(W$(9)LE_ze>`<>M{=YlDInZr!wY2Kfd=h3|(nl?|q*`=7xuN> znaWE#uu!bx)a9~LjbJFjcPoMh4ghUGzY*%0Ia$Viuq}XH=d8gW1JkPQ6eiHPbOQI1 zl)12|X9QpaAI0F3+r{;!e!(^!`7Ho1<8o*wfYnhq(*1%62bor@bIJHXy2BUY4Qn1g zb*%24f40Te&_9Y=hdkW#N;`R#w*AEvo!8y-S+mzFkhIR;N8X5fy{&+u$jVgbu;1w7 z(KImZD~u~82|EawaAW3;8$ze0J_<*W7{#I?xH5=Z8M(krk&25<1n|IA051cBMsfFn z5roj7dFQz~R=7AgaMLIB4>%DX5nOvL?3%b?d`rv8`#;>gJ#51-%?3EFDyy7}5x~t@q7^8X#oh@aXsT!Ycu=4NGiGsfNg_D0h*CVS^xAHomZdRM*fE?50Jh!&~N^gRe4&2kZsjL`y?k zKwh9&b@H>32_&W>ao>aSVk}PtWsX$WcR&61a@dGTIj4TJ**t0End;xf|Mjg&PDM#7 zdT=ANd2yvS>i4(t^z6e}?Y&PAp1dt;-Mhwnc-x@n_mW=%ksZ)OGv>_l2`Xg%`{=46 zA!!Q`jKb5ywn8}~QWt568gmdUP;W9qK{Za&mI9W!dxWu|uClEOzDe947|R+65W;j0 z<9Psxh!r6Q7`0!dmpcPawl^G~PKw-YWD))t7s1_!_e^D2 zr*fk`FKi352)fifFx69jR<#i3w4--t&WJe8%rjzGbVD2vaY2{0+#+!i@g8SZ%5HjX zhzs5tGhqVTpskXSN^)ia1zI?NJ~uiZvKikNxth6raT`YH&a^ys+zf)!)-4bEb-;{Y z8>bcL{%K;fA@uk8(`y^D;F)D(EQ060`cacJZS~m_LwA9&2gSi9QfxSur4QWX6+@#v zb=v?HceC#7*2~q#v5zyaiDm-eR{|-)NcO0rV1wmDe8>=yVl$wkRcK#jcdX(s0A7gQ zBlg?KWuzKsgcY#`s(mmo4xi|sWtIfikC`mcH~t^jCS~x+-NDUQ6ih#S@J8a6QNKJt z{&HXCXJV(zu|aAD6&L#EZIvna>BSHEL)}|q!Kzw7QAGt>2Lz58JuzU=P$aP81Pm+= zK+fCYO30iTadq_c}||1v90=%qPl z!FbeAkd&3O;eJz3`3GLXi=Q?PGzT!l8Vv-8!$Sl@fj~ILWdHyZE*x(s=0r$vgaU@{ zY0}VrAg$)&5G&y&*w_o}Dq<|mHer|e@N^fzYq&-65JFpu>2r{2>+mO&H;x?iSHO_< z+s2k2Z*YD~R89RnuA1QTk4Jy6Cb*SxPo`|Cn&6Vt%TCAfF4Uq);VG;bVMEf*m8Z8s z9Y`c)gF5kuL&e@Dlw&~tluULMMQU9xe(aFoP_XcmJRqd3IHZ6b@VGJtK-K`*fgb}d zL^X!H70CjgjMAJV%0;>U;u|BA0T#2K8_oN9cf*1~|GqW*pWzVIorNP*g749S`PUN+ zFUpD8)8{A1MNwM~@uyWTibQ9tVS)Z2pxk4e&oB=K2c!lR&Vpe!3PGpwh;9ShmH?M5ni-)W+q?4AQNIxl{h(bupNS$|}PmL|WH zdLTT4kj#60BQq|E(P3ix9x4yrZuzDgdjW7?s7)>1?U}(0{eU^+Q~owBjVN} z7&THB@Io{bEHdV+mxaE96|&HbgG#qcJx|-qv&xb$)}n|USr%A|!>aiC1(}+R$^F6Y zyUorwtq*0+n6bdeCcp3X%HWQXS^9#9P8Qn_r^68RU6_2vMe9psJ`T&O0p!|%N z{36rfKu}Zwd~4hW@lN6IK$d~2X!-DbmW>~TV2NHL;Q^Ya!$Ox!K%x{NGK-rE7!}x| znDXJ>CkxCO#D{6XFbRt|UJ+cfzj%&1fata?OCGm*be{Xv$f5lgwx9N>sAkda%F zAop(9N=LJg&q_aSm^hQxrN34jEle)19r>%t9&V4Wr?u+p(%QXyZ%c7T5<+1$-j9Haq!Hs`mnD4e#lhGy@hlH)6@hJpO3Q+dneQRIibMMU_-;q z|MWqKcGC61g{je12KRTKe>Cg=HMq}dq0W$1lcH(m3#HT)Mw4;|P!Wn29$Dty=?WE{ zqA*ox4cSjAV~C;*N3>7QVkjQ*l7ugA2ksE$TWT1hHN6#@5~T#CPY2SY(Oui~^|7q~ z)#{eGxNq%dHr>a+T)bw7o~cq>tGNd*{h%h%*{?6f=%(P3VsEKaaB9Y3An_dqJPg#} zfRTOy+z#q_q##5De{Kyc4PX#p{L%G55U^MWO_=(ExHS|24!#V+iz_7ZD{Ofo4;fj) zycex0SSi6yk;r3e0i%i(gZf+mY}6-I(C3!l`r5jDtYhhjSJ!&mj2_))L+r%Lht1e5 z|KQ=D)UN$lTH3VtteaeOxM-@Zn|#Nh!)ovtzkq>baU#H=lJPuC2thIpe z1C8PU=fverH~5&w{Qk_v^3cKt&O_rr(+|F?)y=F|#VssK9?mz?gg=`f$;HtRiBGvd z_mwiDsGGM^hQ!5`OXEL!=mfvftlYsbK}3>l$^?Z+^+OzB?o;7-G3TO3pbAm|c-FPS zoG9feNF(w^z#u}jz}(`wAnrn3dP;3%jI?$L)K~=VjmJ1^QxFsoqc3>aKi^R5_O@or zf>R4G-0pdF+S>5S2$!*0WX_@=)pPdX*}Y(<#0|@V#OR0R%BxWhno_JmE8*+RGFD5T z1OWn{n8eO$BVB?x5);JyjF?8$MF^z49PSpshj1Y5q7LT(f?2THlad*cHJ6v2bxV$hc$EHmFR7M(@6hj*e$3@hDf)~Z>*2x`q8?R{*_*MP$dndFnG4dJ-xUl0VyFFZEGVz9iJ?@+lZJHo-=j zlVN>YAVL@}!y)0Nr|#FB;29hBLH*LB_0JFPVpCbSXl%Cb@JX#DY{cs1mG7~H-E-*m z3x#)EaPr^wsegB-Z3gL5RZGpsjT(yX0iiKYh?4D@WhW*}H%6R71q&1mHUJ7LcLmxF zB#b#FUK9Sd)cmjxTnmy6MsQqtWVAA_&pa>c%Yn3?vg4R|ErJ5h9+xY~w9N6^$@_bb z)J?WOl=qK!m%~H5TyLlkV-k~%%yuu&MDrv55b39bpL6xK-Pq;V_f|?}rXw7bYcIb9 z;_&Fiwj$Yk&!>>vfE0|J$=Vh;H#i0-0x|_NZj~6GOO4`8Lt|!mi4* zZ^mXvv!__7A$eEW&Fk-J1JakRR@(r*K28tfb#B`wz?IJ{Y!JR;mNLf6LkWRG!Hg=1 z&xc<(@Eq4)&|w>5t`kflj@MjpE(;naM_5&y3rLET2|R&pnw64S_J}ZvMhhg%1(Xi-C!Q4^i>?}?&y}oOwMrgK_o~#ZBnQySucJo` zwk64=4iG%uCkh)L$^lbIW_Fm(!ljaNFjA#{p(vFNb(qaSm9ifZ@Qj84!y>vhPA03) z#XL61^qY(+=cbSNcH+drRx9jsm-jpt+OJFHlGDg+_NuWK((7xUrOdoi1we~hGw0|1f>LDcU&JqsfLSk&M`Kd%_c}jz1XT7@Tx( zPf%XWz>B9Yxf$t|Dr$HO-nrXMv9^7C|Na6N(5tWH?6Z(JYoX$21u6ZE23ZN}7`Pz3 zkLe(p6X%r>oT>lG>5N^oJ%F$Zyo6np`bL= zRpf>8KE(e6h5|U3>?9sb$QiT4&YPvVhFtfl6TNbNnMaFJ9la|DXJfOJusrQfk%UzV zPgxnNe*80Kd+#W#LUqA8jV*OrWf%V7a-}V4Zjtvu z^WrgpUu6i?A@=-p@QMk}mD!ILAs6`YOh$ zOmt8s!!DvpllOs+L-v^93ne%!o}5G>q+BvmK z*ilF~!ZAt+UvaT!S1symjvO;2954+?C>nos?_hqk+OWhj9gD#i8diGcAk!;rOpdLH z{v+jjP{Fn{9fvnATjZ0cmyfG`*z({9^;Ct&{V>Fo~%htzNaIuMbr`4yl2qZ z4(%-gS~LV!>Agf+2e>a=cObIS9~1q7@|nC)M4U*g(af;nK@f4-xNVIb5bh23oqs`m zCBVZ$`9z=!PzwM{3j-P}TmWVsoTdMaPpa{qWy_QO8svQ3dCWME8KYX((^K&3t$zJ@ zsuqN~nE2>cWW@tKx>JxHDbS@38Pnt8<`8V6w3hi}z;7@j1`=d{0%LXzvl2Er?xLsl zV?m?1KR`dQv{f-VLTk_e(Dxd#s!bcX-+m0D)&hJV|TT}7*^UD&V*U0DB2_ocYv=Rc^Z3t5o zrvM~;egTk~acn_f4B3pX3EhS_H3`ZM*k4Fq43cEG8NzUQc@PWqXvjjKTW};0OD}P} zWH}W}fl=~1z+)fU39gA?M| zBA~{l=SM>Mn|Eqn>z-};^z7TYhv-akb3o@HM~Rz^SQ(EV@CdBiXbHh8iKprnpwnZd z2lkifOLK*s)Ek}}r*yn@WiH;uM~GZf<%+#T!VUcX?feyn&bh1SXGN7@4X%h0713 zVU#6th(+WLP(z8;0~eC+5V^e*^cI32(J->D6zMv%MYMUKbmD`GTnGSMgb%WQ4eXeP zO1$ZW*b_wxz7Hajm2ps-!j|LfzG*u5e?Hd(oNqkyZ|-)br%#pDpDR<>e5=+^rylGM z)?vfT<}WWfqOY2mD^^Bxr0B5fI;Ka5jxLZ8a0Uc$OX4b32L&z5nW)oI0WpXNbtNKx zrM{JAl88y!;RG6n(ga+QoDGyDd)pXh19=cd7a3i+AaQ#JpjBdI7}WG`1u+x?37OiXZN3g&>GL!Fj>kSRgT)CT8wYlLB+WR?w9* z$tQv>1i<3jjPe2EncuRqk-0F+c}TjuS^v$C?dSPtih1L)ZwJ)dWfF{5nWwe_!$u$vM8_ZA9 z%koZSu(Q-^GjMcOz|+rEz}catSHQJXuMD<<`16mpAUNxYrpuIsAV654^ z=IxbjRU4%#8)J7W(|BsqfJ2d=_L5%$(V+kl*kgy_i|aKyARuf}T_fH_Mu+7G%5n^7 zSYpD#(t=t-`(XRXoDR_lgo^?SrJ9ghi2o=h8Ki_!=F~FCDi$gNnj=9Jvw9#eZw{K> zCvLHiN{0_ib~`ior>oN~ZcXZUM1N;gN0+qMC3dPXKIYkh*$CsS&S6|XTReptT_=aP z>eQpHdnXBCq(R~m;HfMzL~bm5%@8!xT~J|TWxSb^(8z6l0zHE7vfdHhR0|{VP`#(MX!}t$R++TO;Zj-WY8Ck=IY^Scc%w?Efte#Z+(s}C?qRMr`^sWAU8++D|_Fy{cG*A3&MAWAvS4tWy)~c zH~)Di3uWyV=-!4iYI*YWXm^vp@?K5gvH&AGsKDj@KtgM)3rbaFgs{c`9CNJ>hLj_ zX0%z~=BDd9RR%|m%~l_bVc7qbHj4R6dH~K6L}`^mF$S^)$Van#;M=1RLh@jEm7pE~aC!Vz= z#1ptTcsIaXP7>G*vqvyAeErBXMfs;9ZIE-URHv)MH$WWmWvdj>JoALSIRr?EG||j4 zxlX%^a>5&h1hfJ`FoF#!Pqv<5G*}x9JCMYDE%&Pp0e_v+L8v{yl6k$UL1UmBU6CNO24sHu6ie9O8^hC+{hnXj`lrPe(@E@jnM zRx3DWk`EQ3DWIXa8(}2NX+o2NwLil{l#B9^luQ6^tS&*CLJ*@7QAeMd#h?OF#=(aNe(TJoGBt}Z{PH!FU-ZsWn( zzZhHOvPEJf?vxssothKkV*`Itvj@LwC?Qc$|?zr z5MbWe!a`5Ngko7R9q=toxAsF>oK6KbDz#_-FtLzbu2VKBb7KN$xwMgV)Mh!d#rR&IuHiDIXA#p zq!5O4u$)E(KxYa81syM8Ksa8!K%k>p9K{w@ARr!Abd3q-a3ku(ab! zQ22dYy3Uh5^5*2j;?`*X- zEG?Y+cBfn(oqSeNNeZSL*xUn~T@5=WW&0Jw!@d~Ead-SdNg&XP%zV#sencptfN!WA zi3RLWCvk(+fk+|oAaY}_PqJiu0lNw?T#8E8da%ZUK*uFy2#a7X>;ck z{JL}98N~xG-7DD%GS6lxPCS1_Vs- z4+6=Rsu0y3Mg|--UjhSBj#33_GuC>v8GtBCse+CUr32tJ#|DWGeIrsf#wn>5i6X+e z<6DbRo-YD52n!sM3lr;P(j9Kmjsp4hA4cc%hhF*7>922ZJ(?VHvCfwbpX(2r3jCbj ze5kSda<;74zm--+eK|Ro68Fi5uWmZgimqz}?BfQYl3^GI@hM71ihVqdr6)u+&*V2` zAbJgH1*N)_Xe~Mjv^Js_Vxa?=gBS)P+Cd&A%VlLs4s|Z#T*L_Mn?*?o9YS+JW}+)| zAbFlBiua0H*mj*)yWofRlTKy#dX>~m&x@$J|MP_G_Jg&TPgE_8U*x3cpOB~0 zG6>ZBI%HAP;?L1ThWt5*Ed~-@xiR8V#GzA+LNP!>C55P1cFS=f6_gYJNG95`+JQHu z_@Zw?M!^IL0tDz@kZCmboKa@4i7ybX#0Bh=X^a8ku}KOtU3g&n$+6#ker%3i`jH0{ zJJl>4|&NifmV(kJ9p^Yo6eYW zmn%R5W%NhUuTk`}?aL9fCg#Cq>$Q4;;0mVGe92mq3o3>P3l#4OEVV1sZv={*^`S zA^;OE5oHym4I@Bs3Ha8amZVppEP&=g7lmw@tjnzfdct#%8Ec>fW}8Iv>d(0|U)|oP z!6%zPEJ!l088s@{70FRAvut6Fc|<2MxcW#3SBqrr0l`&=(u3(2*hH)LD;gF5my|KDWL5+Uo=}{ zz>6P>th>i*PbMR1=fJzE0f8#nI24l=1%-O>SM?4_yBcDv z-kTGl3HLVtRN);`yz$=M&7>IJ9kCiTV(5tBz(kN~e9M+h84|-tfbhHEMHo}?9L)1$ zzNn-as%9CCV+0gO9e`1KE|&VB)uo=t35iS!OiGz1{UX^{BDXMA_JH5)1c#O2igf-r zA4 z@a&m(e#XbDZk;&mfTuD2JXnhC@J1GeXcayNohJ+~uCyRXjHC!qtwv=Qc*;I?I9;?f z7=oZu#blRY1^7j2K>07wijzH&fj{7yp?pI^j*lAoM;V^k_SJ*125%>oS1;b?KJjCV z&r{ayc~-f_r%GFQjXS?G$5?Y}XHT=u!i;x?d1^CqhD*Wt*>y zuh};R*5k*um4JH>n@+8JdEydik1+yx5fC+m522XGj2#q2RCqZ2kU%4OEGS;tyu=tR ziYOXmT1=K+BGDzQ;O8V-guI#Ho_(WZ7?d;sc!=neX0&k}H zpbrUBk~PITNG5`$EXHzyg-rO->WUhfha--G;LAuj1}TucNS|bEQSsnnJtJY5Sqq>g z(k2Lv2&s{O`}4Rw$_Ag6Tbs5FjD9<_ed~eqje={R|8RTdJ8x{Z=ERN3m?YTSKxQX#BF>* zCt%Sa;1tf5NCfd?OIo5$qd_1P;GKjj1k7861+eiHpWGdG@X)$3VRqTCddQMf{TjDj zACtf3TC2OC)flC3G}Ww9mXXj@jl`E8X1v&1H4>j$6jQiWxh@PQYp+XB=hodi_iBq~ zSVk6rz^E?4Taf+A1~zy_h!9X-v>q(XRO&Kr03;$~Oai+Q2T&Seh(V4d>Y-Sn1fbw2 z-2kvrR-z%nhK~V$DL&B|+3+%2eBao3dDd&Mr&oXQO^jLaA~$jIs>*4_*eq(}i%--A zY)1~R*>}5Y(_b>@+}_*rT6Bn*TF$Vu4ebiu2AC^@H(*FCyb;klFa{A0nvTYrQkZUr z&U=*#Is6J8TAWlQjijbAkl3EDWjW}6>7cdc_oMDWs(5@Oy zNO+dj=sy>JPWvgu>nod_m-SnhR2c%~2B;`f-j0(ScUBy+%#6Z!8L%hA%C!sK@Ev`0~ZfadJZ8# z2QQGqAFT>;9l96pf~LZsH%6n4e<)RHkm-@E8Mm9f?D=`$UCl1Mskb5Ji}3zC4P|#v zCZ{)2tIH|((^A)0J!J`z_xB4|`pyubwP!CE&)%K7_Jwi>K#}zZK+1s0kQ8DLPPxfE z4vuH&Q&CDN#|*1Em>3iRz^aHLpk%0yNsm%@V#m*t95j=VrG#O`5haFjgqVV7sOa!?t6A^-?^7Z@9vbs za%IJGp6`!rf;vKMQsBNYlygKuYt8H?NmQ~4V=SaWWZJMQqz!l^sz-n*p~WDJNFX?0 zV0Xb#0->2gljp_oSk?q^=#W8u6rMe{W`fQ?xu#(dB+7^<` zHAk10#%5K$^Zqc4$Qb zoSi`43s=4j&#O3CiKp{kUXoX!hASaWt9XPqpZcqLSid05)CDo52uSBiQxIA$ZL+va^O1vyTAMBqI=>3T(sbO&5=7eju`^^N48u({XqDLKGPj993ECN0I8r!=D0iHlEUXz zKo*(MgqbJXv;C4nih&=H6eetJ(Kt}SBmSY1p_d|6$|XS#F_6eDrr@A^U`0520m{(E zP<7(YOm+tvAINjGF{xHMJ2&8E=}%oome!tOJ!S2rFZ4S=)SDiB0dGLX&G=eTQR$)g zl*0vkZ*7<1{&(IEu#0wKn z2!kQtJMRcht>9zWKdE6shM|cESY@Kelzq&sAeRL~RK>&=sgC_Qu>=hMnJg}pPEGXF z65J5xfiB-DOL?4_|M$V`9s7m5)!W?Rw=ZwjkWIKBzH^6`q_ZqfB#;+xZ;zX4h%O&4 z-0*aUJdCYc`ckbMFKx=3Bj;-!zuj5a27e}_UxO;`W1Gk816V0L}iGg$}%VxMCI7~1MKsN)C zVIyA6GP%TfFq5481d2i?Y-Cy$W{Jo^CofhYd=s201o!|J2&$MAWB`OP0OHJcJhxFd zYUii^_lM;_e?702N$cgw*L)1SmAltpHc^Y>&A~BoDOHQ&y!#tBr|7RgPN#bPwr04G z_xPb>2Z6Lw(~Cr#<3lqE^u;JN)Fnv}$c5QiAI0gESjKAu?_vN5&X}Zw=2VgtGjt4d zQv}g1vo}Bkz(Cc#hF}rqVzM;`u3{I(`Ir6nYR;rsCrmR&$Btq?BV&yeF8D=pU2w35S*A;tG80t^ zu^Pb!qyUmzvJs*ZW(|W(vy;Y+IWV(m^vkp|IwtL z*P1o_s&&&EX*TnR--$YvGGJ2Wp>AWd^qbylJ(H6)^;DJpOg9$a%gB;9^Pc@oR^7cv z_8c>oRLG&HbE1urDLa5)8L*=*#+!kCh?ZL{RU6F_196CT6&ySy&}<1R@JmfyL+^OW=s03u=I)=Ir!;}dFgDu<{x;; zFM&YztoQ>>k@d-VaH6N9n)DXoJl1+7e!=M&w-$Z6me8jP5s(fPm4%?3cze{VDD$Aq zSiJ(S%!rM0Juv?!2ngvf(t8j~G$LX|!am;?t{W3;9Ub~__^^jg8(p2(p0(MouUF&& zjLbqKZkValG}%R$qjZawZ{E7SBwCKr=WJO0VoU^jBk?;?X=D6@FbBc%21y7o9;pIG zj_U!~BU27Mos+WXj}(JsMCs<~q@ab^>4%6F`keYiRCr?V;Ek{a$tvn?AZ}75lqAW9 z{{>2BYiUP6aQ|}eyN*{Rrw~{^CzbjANH(VuNa$M4&B^I?YSZj?L0W; zJw;{Oh18TO`Zz2?Zt3t9)rH2oL)*?RG;J_xwq?Gb)J}rtEs+sm!vVyop7G#g36t0d zsM;fPB0wLn&kv0)!2qbt>BTt6DqX}E24aCYjvg*{W zue)t~eDeukAibCsd7}suJuy|TH_8%RxhQiT5i+Q62;sbp0W!5koaJR;wMY-Z+u_>a zH3-24Lx^z#@CFNKkm`%u9rzyX3P_nX4VnZ079RPK6SB|&vmva?{D1~+;l`yLhL1(o1K>jPAxomtU>hgf=it^vj(8xg zf54%7W4wnY>zvzPFPdP!yH z-W_@~Dgc-Yc<0D!8A*_=_z|WELLbltL{;3qgzch|gg&K$M`cLM#VDODD1_5vw4OGS z@(O&L!iz{p(v+S|M04UH$4!K%;HI$&`;*T?&h*O2EVF*pE;;>$d)8MIGEEXHERfV7 z5HsT_&%ltJ=HQ|oCvI1W+jd{i%)LeF_0DXwxnSzD@lm`$sNjX<;w1S}grTQEAi?@n zxCac_fwfs^g3Ar;RKkkoQl4)Y#e6@8`&QI#FM&|T4={o1DjZa_jH^eUOqDU}5)%1tHLB4(y;r3>Ip1N9=Sr6%Xg zM6-rG0^(fsG)QPfNhmcr7Jow6+DhE>|v%5=XYT=(#cTdcD4;Ghr zZ}S61TBP3Be=6PA)}6Y$_UY3bH(homh-j8BkVUtO-~+=edrMKFkn$KC7x9X8P0Thh zCm`E6xwqtHJg|_s;XBCTmzgns2x3xtUD!LyDsU43BVb=Nh7?+q>IrT=YaVHvs&Sp1 zV7GY4{KmJ+?;Tf4bzSpkZ1yr^ghlkJ=-Qf%iJ=FvtE_xqcg=r&nbB-xD0Z-s7wG*2uZ377A}EwNdn%o3`Z$QP}qZ)vJ?Qe zKz@z_1Ox>_p28m|Reqt-)d=OwxuuVVUgVV_90S-!EJ}Ge$#-||xE1T_fAZ;pl!L>= z$HtzTSI-b>IGX?qFDimPuXawEYIxYf@)tdvB8N>6)+zX-(4^)}PSYAuKM{@yviRCPAXw`MpBytH8SgpS_OUw8kC(}?CBupDrPLa9HvR>H|PpQ_Kolu zX*bGLFjHo4gYwZaH0B?rkezNq6N-^JsU@ z`U4Vhb;=@nX6=Rmv0i3S5kFa!f%JVK+7#`yKnOhGt&tRgeb~Xg5$Y724xW@z4k8A~ z4#AB0M*A+aWDZOzBjOI$+%e9ncdccv5A#C97p!Yz z)U9i`mhJS2gIZISt-OqEl5bj*z5MX?(u$O~VprMv$9l9u@Kb%`L6?DXH&qDXmf}MJ zf0&@QWb7MpBPMFtv5@;jBT5q?$Rx^6ESKmv{9#lW_JvIqO$w+N`dhL+F+iSz*-~`M z^im8W6UILKDCqu^>OWqe^XA6pMK8PF>F}VMjmdbE4?A`5SkX0wUe|v5jI{EpMTRJF z>gl5|ZX@T`e{`%XFtm{|6EvrMbigYfg)9!@Bl{b<8>q48|Ms=h@YJNEW@qmI*vT|_ z{OB)}epJtblIc7;0oA;Ui2v6jcx$YQCger_K{f{&7)KXfxv)YRhtZC$rh3W`d&w_> z%|~d4yRm!@^imA%$pL7xsI>4krSh_*xgkEvDs7GSEcnPSGpU`49TY_z33?v*cC_P^ z7N}EcG-Wl34=Ij6Wa;VOM{T|ML6JTdwD{+&B1z{w%0i z^pm(tIB3qRu8DYibk>S@eNhhX&QDq1%#(lS#b1HVdv)vEvpw24@ioGqhGk*Gm7|;G z_L1R0n8oy6Is~E&=o9!j8CwRqL2fCCU^nPzP+ag4X#qJ0;AJv%$#Ov22&fH6H%4I` zfeJxt$kb=fn=TDW{qJ`TRy6GW+WC^_(TPoW>q$)Y^WQ7U)LN0xOy6Ea52wYPmn3hw zwwinS4%BQVQ;aRRjv@|c{=ib!!~?|gfdMoDok*>y!$k3_rTcy0DZpE)J~3;9Kn799 z20?@95rsPVNDBmjcziQn52{AEVUsiOiE&8iI)Rb6*YGH(`2~bAxs%uUuM(f7WD)K6|NeqojPV zmUMcOdRa_R4Fz#oH?}QZC}Cfpl$CHP#J@R(F(HKkbXFB|Hvlw{n-gP@#xPNi=QtUN z3J{V26q&39#>Y?(g#^l2=7*VeqgCVNplv{F#i_y#31|Ts33GGMSIo$H+mnZfz8W%d zeax@dAKmP3`omvSqTEb8{xCUM(H6*)7@0juIMZC^G7@f`D#FQ0Zx~dVQ&PyqP&f?5 z=H9wXpWfsB{n~o~!m{FvX#{#Qk&w!+9j39tIGFgNuYr%i?NzxQe9L?)dPh(tMDc6` z^Fe9FP#kDJFajMYPeWnL;&U-GmIdL$KeIUv{G6K>Wct#qPrWv^#!ju)cFMIupAStn z9iH^FnuFVPtq7I5S#?#0fA*nuDa#CVaQxMoJD14I&?|hErjukx4#urPEDC9tg;SR4 zdSGIP62U9jD8g<(Yf-`?yu_mxVIOxuCT?kjWH=8DlRLoY#@>>*01^Pw1h)oJ4T?Y! zkLe!TOF+y9Hn)>&eN*!JP0j6yX0yXxh9ApbZ&=~&d6LpuO;|S~LuS!vszuR-#3o+03d0d?2(V+mQq1FN=lpPp68Qb*ORgZ}PFOH!q9zDo(V?y;~-iOK;FAA;sb@A=c ztA|`;3Jf16vTR2qwR4+Xv?ZFI?CQh3m^Cx(olWdAXQNThy(3B#I5tdmTH83_|Vh>0XQ#7Dge=0Zf0>jY&`!JbQg@7HvpAb;w zB$>@3BY`eJyvfpFYVZH;*l%7Iclz(ImaWgLUhsR}Gn2kfQ!?T^9mT4h11&O-UahaW zvvpHsm4U>?moG&q1Bnf+E}K`Myg1cUepZV(wd?HM&9y~uav+2s-YtA=s7yLKG$ry# z7y?34aQqn`QBheZh7QDd5~(PdrZt2HkHPjD%zDU1DEts*36=|@K^`S}B9*5WXSM`- z2Kfwo^a}p@?Pl(bvCR(^OtCI|>^>-ZSFk=Ks(`?*L+4oia_~@H&E~wM!ub`j=H+$k zugsUrq8q)JpYf7k0?jd#LYE9+hA3JFr@8zh;YUYGRl~LQ!#hhnoM;gcDav#RE<()l zz_g+r0Oqg}ry;}|fS@#uCt}Mi+!fi!5+dMdQ@jc$LtX;&%oWt*n3MoBfCIq*U+B z<>R}KC<1tO0@1Sq1(acMcc(7CfA*sDCZj{A$Q(GC1ndYFgIoy}LtJ793>QOv5(+cM z!^K{TMhW)=G7&u~@j_Ujh}h)XDek9l zJ{gql`e5|X$$7)|^@@7B7HwTwOGQie#J{?eQ*pXV;uass;dE(XKe_apkrT&{xAp&% z&YDCFdksz|3V!N*Mt2#$q9`H#!*w(DqJkrM0>XhaK1T0McTW011H&{DN@f~5Us+ls zE*kO{F;SrXpgu#z1d2^-fpIn9NV@HqMg45kfA00D+expjYkbWkryDvOMQlhysPs0p zo@VXo@}=(qM$wHEd5|F?euKr=t>CBFn(wbgWN(*wF+SP1}BfdS>laN$W2 zychOJz@Z7kAP+@U_5*036{jIWBucl$@EFe`8(#p^5syRkqg|q%AY60VWo??QG)L9V z|Ae>n6#F- z6!Vs3#Vn_babsF4as8oApff^TgNqItGJih*$V8JTU)fi)$*7iB>v{df$=N45<{L^A zBOff%-jLKcr5W#$Cg$!~e$r5y*t1=0XIIzOooPl`YRG;8hNs#1gzgi=Ro4B(2Db3vh76Jg|IxySyE~ZHg0_%jB)l=!sZPW?zVc9x9woEb} z^Yw+Y&-Q(iJH@|#Sz4pAYY`^@n0%;&F!j0zFW*^H#SRX=SQDjVmexn#eR<$rJ+)0o z_bxs9y7wS;P!#d9K|HVmBgXJ1KxmNm`-q+&w%89)SwN{E(@{3dhMin{#pQ?nPunaX z@+u=fs&lMiyeYa@(ooIOFD}NciKvJ-&+i;wtfJ=w4B}dCIu%^yE+O!u|QDh8$ z5GD#nEZ7nmOWHkIRl`IeQB~2X!!I(rC0oGghy?UQ-a#=1>nmD2+9ixj*bSj!)CR*? z(R)z#L14;SWh@DRFM?`ZZQNna=c`w|jw{#@x_R$;*BiYnCuk$H%$V&)D!jda;~VrU z2Jpp&)tfe6maLZbt(XSHQ9_B}L*-FOX;g1)HX;VX62hLyIJ$=AK}xOzu@F8TbVev` z0cT~94#hJeREa5!Z=fuMtwgE9nZbIA`js(a)X_+aQB*pC-B4JvM;CG)5p0lY+gY!d zv|4@kRpFp3qZ>vWHyj`G!{2(|QJwEt6CH!hNRXwxnGZH|RjaAHVXx)g-?~zsMbDw= zdkbJA=s{~c1Ya^v3>$(E1vRa>^I@Nk=*dwmBMF|k9k8VZTwoycK@PI49*Ky&I>2c3 zU+4+NsT2nw*_H=KOy`S`73`Ahz&^ujkGkGJ^w{(7*>3(9X0#7=pL%(b;py7@=Dv$s z&PL?iyU5_3n$6M{Up=o3-04)^`f|282sU1w(&_VG12aI#EEpf!FRTlADEc@kHx8cE zQAAA&QpEU}WXRHb01mMw#K?hdX1+LpP#U3mmo0~wJqVS|o;DjBXoiDBuvLi?gj@zAv*=C7hFFMqfhH>N_T60FWw=e!dPPRC8k(Jsplq6Q-UAe@XGMsoi%#u@2UR%J!b2r>1vb;F3mWolB4NoHq9f2 zXrt89=ym*^u8;6a)e)qq`5h=Z#oPz%8|(no8@Uib2t_L!V8oCDk9Y7u`5DG>G44~m9ei7CXxf32>9)XpP=IPkBE!5xUug!%Zn(43 zZoc=S-~Ku@b?C*)0n5m2N%)oqDk*Vm|HXSO)KUZ1lE*oBv-SOVg)yhP`fp(1XcrGl zRwH2Dfgu(x4v87?l71E76B{TJGx9n@t6F|beMcZ>(GZ<0tu|dAN<9(NIpTEy77nCC z15cgG`(y1Yl`AvEY!z~3aEsC0Ak!7U_sAF*{CxGMbIBi_ThwfD%B$&x3S<3FWifO4 zF*ajTUTdaJ%PwX$g!&|xa+jtja9ebsvF(_k(In%E<0Zbb>4n56=9)YK?I{^pgJU8+ z5N>t!155?0Qz*2bvM)8ivi$+7Ydaf=>}^EBCV`jMUF@p z)q>*W+l( zLD~vF7#I*ZBDw$yb37WPgJ3)pj1<(CUY8HgZ~<|o1>LFn(c~J34*Y)6ZKsptlf<7N zC5_LHGnw>GWoKlTn!KAivlTh@G>gt&o;tVU`(L&BpgL!!g9YVhynzhIZu)(Y2viVmt=3Wk^jRSLZyM=FzmokxQJmeumY`+!LY@1 zT6b+ye)NYe`L4Bw|JZ872W^Kr85a51PF+IvigsG_=F+a>4ex@I(-!T|*r30Q#7G67 zlwSgyPZ-6UWY~~Oh8@|;Qe6@B$v5gx+(+a>Yr?U`$3r;^!0^NmI9o&&a64GI)05G7 zfkQFKAp2hNV1U3T?w~H=(&BXtj7-fTQ&`eR{@nQV$0MU(=k|YIr$w9a&7b~p;*hc7 z+bAh~PJqn1+C+2v?6$X;Drl(8^q2)rK!KFhxfMG60D{~Aq$|PW{(opH*hy%Vv^n;a^=?tI?wr6l9Wv>Jf znnX8E4sD)NaB8yS22l);19x{B?FoC+6x8)A9K2gCZsOXqZ z;}<|k>IYyu?Mp#3BK~`DC2$hNP4O8(gNT@irc!*EQ3Z(TpM^a1^K#vh_Q9{q6Z=BM z;ncCUMYmIJGNyzsDn31>;8Me;eMVd8$q2O%mhV~}q};px^%5v9!(@DJ<8J=gQ!M4R zW0ZqhIF1?P6krMS3QSBpObmyBmT?gt0sa9%o3ahsg=WoM$SQ2Mwj>K zGq8Hw=d9g_Yn?E+Pq$7DMVO+-`u!;>v1QUG?24Uu^v9n=xGDUM7L;T{58xQ}F2+vC z_K2T2egR5~l?sqA=rDp-xdHzHeScws!C zptMLJ=^Jn{CX2|*QI@89xow&lSN%`>AEu8<$jOakRb~xnd)y&0{1~ zeU>9nS3Q1r27zbM$;O&H_iD{XXUb36p3ALQrgX^#BmfkPV)DXArKpw>MCslj)s+_j zEy|$*M8P=?Y#1`0Ln`_PeilziW?I?uBzx?6Y(g-Xi`=Cs_nY?L(K`R>;FjARdK@`! z^z)f7zi#@Q-qA|lijmp&OQpXmY}d)9rSZrV)dz{p+r3k?iF$?$!3hM8C6pZSE&KWS z@?f}d6NBLbCzh=oSX{H^hS02ZJa9x54fH@1qx20h(GXcqz$+}SMykcq9Ml@DT0o`2 zkTj4a6PBRkcslwpMJ(`dd(;JI*t}|Us?uw7lN3El0p&jqQDSOM9c=nM^ov6 zNGnvEbpEhdAa>F((?w7)VLeH|27ty_xuGSv@=0&=c{{rdf>ZUH?Oq_-11o<4Ec&iH|>@Br{0#5Px{_7Yz28 ziN0fmU}QW+OcG$!NQh!tjKPQ{#t!rb92{5)^_p`$h)OgNybn-S+8UOtpi<_du!oHf zj?XW)?TmT@S#nEgrAa9~tIW`eP0ENFXNo;eHFEyv@Q8+vBOlfn^lAJ~{WfRu7BV&q zzq`QLqA>gB=bA%%qB1TvH6-OzqN0yqlzgJ|l9nI#QXNl`b;4tD;W0cBK7}?2O)|nW z0j{A(V1Kw7WD-Q76whQ4MB%asoz5S4KsL;g!LfNn84gw_BZ>5Y7`{@>^Cf|d0GM&K zrqmfWa@*eZIjv^c40?Qdg75jcryA(h1?q!jzPeD)BKo<#=4kTr?YG|Jk(3nkX!9+J zT)HRWr@i7!8!8!=RKVMJD&zt_~g6@as#t!`L zSlgX}OBxw!_A_SrsLge0;=QVx{j2vc@P|Cl`!xH#y0mfa?TO_JxB$Twe}6=QbPcrG zSlM&<=#>#oLz&R>ISAsx)!+fBSgB5VLo};)z^?QR%qjx7;_3qd0|-LF!g*v75W`0x zKd4_hbi!~ON55Lq;_vjx8&`hIO-S3{GcDqe{raS@zNEF8Z$7gKzV`AX&D^V*i`d3n z#mOo*w)BlMyQf-Ne5I9HE09|Aj(x{@{K)_%hYt3dR$Q#p7|bExqftgbN;^%;V6s5H zLel&o7{SsQ<^;1fdJYlMpcohTd;xSo_r=ki8i)FYLZ5*vLNzfGGQ*G8lvJ9(@NL+s z(FyT=mbLt#!+-ackIvRpl4{aFlv#>hwq(jjSsUhEu1ecqSrz*zUqL~XRLL)a#LQ76 zhsc&pJ_6+hqmnu;oKR591S#p zGLcT2X0hi-MH<^={Os&u72fGr_OKd)vver;GW5@({ z>w<6Sz>>RQb^IJOdhXR&sN&AW9g`(I6)BBesdRJZ^5biq{qu4=PM7vB0Ci zen1Q;?x9gpThK^C)B>p>M`f5_Hn5AW2WZF%m)_G?)f%w5wBYd4@n? z^t#I!L5h#%uD8J}FI3boR~8<=m`&fUY^ql*?0R(baO=~xH~VCTa}XB}uBJ>I((o~c zPblNOQ%?fYO`%OsC$^4?O)J_0a4>-h9as~? zeV6J`);>xFs9pii2HuslxG>i!qNq^dzu00;Oe3=}Z{h;U zCr|S(P9Ec0ffK6mr zh#T~~&={OPG;fkepkhFqF^iz8Wa||k7BbiaawSM9Ks7RF8N~`RO*j7Sq;1W5)6GWy zHsg898~+Qx_KB$6)T8*_x8z&3<4T@-Ka4?rz0xRkdBIy{+mcRCsJ9Pm-hQ;V`vi^> zN&=KBBFt0pbkP&yT*veceY@=H5$s0-72iA(D#8F=vKZ1}IzZsY&6+wN4LJ*O=y<3b zuuYQL9qBVEV-%GpMvTJL|Fvz%*FAgr{Nz4q`?A{)di>XH#kQG>;;6feZW!RfnK~-I zb~fz7nKDChX4=_>*GuHKsD45_=vQ=*8}cs+kpL3541N%SrGI231P43taTEg%+*$EJ zqgJP$A(`W<$9@jTRbVR$E_O>nC2+Ecd$f+ogqgIWz>^vWP6}@rC*6+BnZ;O{!(XXz#A6=+m)2f(x{ks~Z<~WIfpaZjz)wnJInM4J67fNS_s(^#o z76mwip*hdT2RdiGb=*$_EM87OoLgXLYW`U>ueyVzb~o7fh4vjMX0>4(|*aD4-xd zggS#jN+6B+a&P@Wjp6P5sp5gbm`S68qH_{lPxRs>az^@Knb=-J8iCHkc+`Qia9-zj z3u^XWdTY<3W=%)zOL1la&8P&B5rJiX#i%KKj1ZquNDrx z3{_KB3F=RFVv-VeQ?%w}Ol#1_#-#(2XFRcYZ(C>PvroQx!uuI^R)3?_8aHuO$Tup7 zQI?pvn=aQ7*b2@)ut}-gwe+i&+*fudYPx!M^6>O*2g^iMMa4xPmn~zqSR9HIsA8@S zScO~)kVttd_F9-p6~TapD6R~%FrGhlf5HKBHB?I{#-b&%a@ zWGUYzGkRbqqI#NFZ+7-hC>$nkF{09?W3r|Rj&=hZTP(lD_%*sJ-RP(UiFgL zigPDeggKlEv7bwf=9(r%CJdQX^P>p?d8DBQ=yDSKHcBRvH1cNLK~QcIY@l%MWgRI% zEC@Es)p#&jWySv@T2{qS819x)Vj>n$U9b8@QJ-#JHTBIb)56@NeR}`X@sxqyBmBlP zoV6)IGz%Z@-=ISvN>^=}qaYBfdz0csW!JH{Td(%E(ih6o4sJg%2rmLe3v)88Y8Vy- zxQof2 zK1ixClEB8BTc-FfQ%zuM$FLb${7s51IrGWr?)n{+f;DITt`ynF8d-7saIN&3+ENdAWCo9IuL51?#}k1MSC-9ykc2TY@J` zTf{Ju0uLNqc97uTNl6WmCQ}(&u7kFdfmxt+&}*&$!Y6e_xJ=iv@Co1wZ9mi>^S*Sa zl!D@U#v#NClP1fD)79$x8d0O`kG-|;Q@c|&zxB8LV%P17hQaf3mV@erlXxm~)(pey zBXePDxhOvjgQqk}<`}E+AEzZkT}(eGCruo>EwLcRObW({z8|FlUiPGRnYG1;5aySc zfSwsS71#&Wte7^C)JOwBAIz{x+J=cE4}z;BS!1p|r@SP<;nbWTOo&y^imX!Q3&Pve?PQ}Z7F`d@w6QX}xz^_g1L^4{Vl3v|ZaNl$joNYYo? z6?6U)x&mcy0CV_o1NOK>(F@a{f`4>iD9T#Xh0?YX^t*>fXo1 z_=GTpu+{^PCqLwxm{0w|4q>q%~IFwEPO}z0As& zM@_#IqSLfo&Mw;&qJK-wE+~ggehIW{=jQ6tz7J+)D3t*Lz}LmdAC7~;F|G}&QMeEx zIuTSU;fp|IOU8gM09oVeFlWp0V~+&gAv_^8E-rtxcqkH(a8nrLQi0%{>;Vw%2M?4W-~YA+OisJM}ZWIxTuqUi^TUsZtI*>6jCOC);- zToclhxE5&b;o#z|vG3uI6#&r} zD`5wi;}mECcn*q|sNl!J6Hzwe0XPwqShDE{%mT9?wpIq2cB@mK-X^Nns|D4cXEtcy z-Y;O2VO1y#yih$lV+PJfEA1f$J72P_q)(YQ6jp5x#H3Mw;V%q!3q zqVz&FAnHjldb$mCE|^bYSp$sp)->#LotMa168AJC+OD2X8GK|ODDTT-k5f$ z(LY(!F8VC24D}eBJt#VBVUc;TwPtHn)@-cr^+?aPgRAmoUwg$_`^}Rd^Wv{S>mdU* zBW=b6fKpK_vZjut31@?T1EH8G{b3O~Nf<22m#rQ(k~$_Vj4RO7QnS;T!=p2`h=Q2M zWbq)Eks1{hFANt*0wD;m4h2=??E=r`w2N`0chTY~Tt74| zESy1?NJ5tO@PSi7rMsgsz)nJ6fdG@2P0AonOo^tx?=BfM$jxO!#)cZZZhcpJ>TW07 z+ocrm0!}I6hk3iSqiE-j+t;t=d%IR0IhC#?5Zj|Mmlc_P05Acv9-Qg`ntTv>Go;|7 zHex-Z>jmhM7fZT3Qtlw6s5y*#bOFR#XzLY$v8ajtF~vaNVyv?mw*-BXcpY4rz}!5K z$#wi*>ozJS^ZVsL{WP{?V(WqBTz<5@U1kYgmOS!xGsAo3lerHPvWJ-K;VW(=*oGJ> zgNz|Y;}m$3rf4QvhygU(7#DFM^4|!uWvOL`hi!!@k!RE!Ovr6{~dR^aLMyuPJR%4 zqKd89=+hAPxno2bb0k}^dw*0;L-6$UwI^$IP^|1)Vy+M)*WUs?di3tyy(efCa&IlR zfXJll2LeIr1olh&!mY&mO^lk>hCr|(>0UH#U}^r+umHr+acX$QUZ#PTE1vdD`&$_^ zSp+YTOY0*@8=%K^fN}mg!^D}0Z-w@@(qH*q-$5Qr*2w$8GjvM zG+YRZIWs^=NZHvdP3j4Ew|01tl!9^yXcq#D(h|CzMN;A+wJh%}HT87xiDHxHNN=G<2U9mZ3Io)TBM(oeWA~ z1*9(#5d!v!rU_AvCQBH92~4v0p;9$uc9l_-Kb4Vyv<@d0gfy)g{2&DeRvS1=o+}1P zgCgZaqLn~vr_)jKufL*}Zz|mIS>KPB?#~QsS9SiI3iQhpws!eGVQU;(%fYP?jcKNXS&4O(Xb#O|$`pliswP)^@X={>_w%W6sF$1^G+zOq;4-mfg%$+P>l16z74Cbs1 z0*W9|5zvILiZbYjh|<%rJm7ykXzs*PZC!i~{#(OxN|1!xdV z0;45lEA1BR`q)!OC@vYjlBdG~!r72h2ABng>}1_XV(#8xp(C^2H{)}qd1VjjL}S-Nv%6lA77l(_KW{fS2_dh17g^ha=| z-}>}NM+W}EZ3tWla*Nsou8BE?3knGtcMBnj#95nI5gHQgVF%qR3nR^CyPHEcX1?b}gv~ zF5r|k=me~?8mrX{_n(~p3dzaY*zs$o=N3knReT_g9f?tBsBl#VVcdg2<`2|{TrkSq zhC0LAz_u_xfn*C{4(RvDw5RbPLPnuaynLh`k?lz)Cp0xt5e&t86~P%9X4q%f)nil9 zgr@0L`hNXGHIE}N7o8uv$=1W05X9M-edWyGKWWF>OV~o~AH>C-=kD%RwXmIPKCRh= z(3~Rmqmw`^!?!KF7WO6HEq2NhtiWi(sw1tDHnLDT8z3tv&EXdypyAL-=7jdt;x~>E z508NtT1wgzMtPKtY%52h4%))@Y2rPB%Bpe13)Q*&)B4-#O-_~kVMj#T!VgXq>G!jQ zKn`tk=J|6NQZ$#G4IeUOw|!eRbKlm%yHw3D2UmO$eVPPPQ>&~|3&2Dh&j28$G?r9G zdjg;mIPAXQ3d9g#jzL||at@#(lS<%XrslD&78MzdBs-lMN@#pB@e#rE>x0Yx8?wC68+m~|uC2kXO-)9|nGpvt z5acC#&MrK$+b|NCKHg!}K^u_g(SJaIdvDNPnkm#hWZWyfQweM;7~rf#!1C!hSQ<)r zNTfp|#DaF9H1bWrkr8VKj3+}Qx$284Vv7He{cKrhF`IqNckgVFb$@ zPl8zPDmaUbjj)t_@}XI{iXalxAXYoT96ElC&onVqdr-6xNAF?}#&;MH*8aOCfeY*X zTjIIX-qteOF4(O z7yA|UMLIrr`U_&A0gu?_z>oss%04?ulely_{D|r~8z^EmfB_M!IizXP$^@PP8cnSs zhtcEhihP*ZBJuplum9fge)=bwUArDCJGpe;x2u5D$=$)`+jV^2pk!8s=Y6|Q#6MrJ zg%+)B+eULfM&))bo3(Dz7#ko`GVQMtUrQe!z-6uN+W_KFa&rFB78`Gu0*Nu3@f*{C zfXbk|WRhnD0T1MF(5up>U~7aIp?#-S7Az@O6$1{QSzzJ`Yf2|Q_^SPesC}Br>O9!DRK@h2W8B`gXND3}lFB=WK8ts-Y#5fdc11P^dU9XHi-f#|g`Y7a?JGC_ zp;4Qdo~< z#MzL&hggxmnL-6R8vxdX*dHAvNFQ;Cz;}mIVtPLJ`fBw%?iD_2TdU>Zj1evDZ>;Cb zUY0YVp@b1vN56s@%2>N*=pucn90t@z5xE8h2XyW8d#`RT5Q0FVM5iN80)~L)p|4?p zhqJ<-j7UL~JzyfoGVhDf}G^)UV0XGD=(A(3_@cR3@@`;T4&rdLfFw|1~nR>O`0^2HZ zGKd*h7I|jq%LpQ&@bCdi^uRi$?0)3IT0KTgW1DYE{aQZrbI;G}Cbf!uyM5(d$@lGz z3p+<;RW{q2z3CCjz^tYq`&4SigBLpdChy*h(x21JSQ<8I`9lLY%$i=CbXb1DF~#{{K?(#icph(A9)uO zB<^jO?eI9U9;*bk}GCiInu2kifAF_G(y`UE|Q;9aaeF2(s3i)p_Ix7!L|+( z;~)+p1@Q+ev5ZZa0>)q~_XNzCQt;N1eeFNKS8VnduWfB`dV1t-2a?Y7dlzCkBW|XX+QYi z-k3i8Wd(2k-q>@&m8!Hp4i3?VbOR``IRj`=VHtpoNcd8dNv;E5KO_w6M&QVe)J*<{ zhor6J*o7%GP-b*9s4)V#A8^v4P$!0+_Sj&H-8cOk;MVxCW63$69Q)|c65F0E+5M$` zXPg>;!z#fJeX&I5WG4EqIX9C6`!Y{)~ z;1UI<)}~gZbWrp7tq_%p&qSd`qoTMTNIm2tBwzz-qgCe3;+KcHCuAeUv3R#1TfOwZ zaQ(lRUEXf;dGD<~&KzH1gDP5hH3eolJO2{a9-&@Cv&LlJ%Li_6xpn#KRT}~+g^OS> z{Xrg|&L%w~>vp9OQbM%QU=sTU7jeTfXfbXvrhuhLdB#b_;6~I~FwMS9C}^wkaFcOEb8A?_z=ODv zaEVZ@zMFUsed$ZN>8Lo34Qa!aj6UD zrX-gr{A2Z=Z=R~|RlM+?JR|*I&SzKMddm{~IPK9j`+~7@*}w$D)ni_<`UJKJmj1s5 z_UO`!x`B;~3!g&4wTdU6DG}8iRUQ2zag_{#j3=ra2#lDsv{Z~xBosx8#>PYs7S2mV zqyQmZzOo?FH{xO--h^ifAt#1hW&xCeGuC!mpOUt}=BIUj=)WXo%$v)<_U>x4px0~B zf!FHM?y!y|!yR|2?OJmcvNS)`i#RY8>cM~agxTSlFwT%e!>1t&l2-_6jyo@=V$?~K zhL?j`=n~fYllq?xTE*>9`ri02{+YIv-9d;>&2%9XHOiX4wxx6E{42EdlZW0Te#L$` zIe6~c-7qY!{D_bK2(HwiL-SVNq=fR8lQ_@Ssou)Sz(xFpa-1F<=>TAYA@x^|45t?z z9mE1^eTH#-SA63H-GFa_ooZVkvLwaG(D?EOdJ+mu^CF#f75>D|{^9Fuf15D&#=5TS zf+w9kzTxe#+6gvAyoo~&U(5myjpUYd%N|{Ph0I|6yqOmanSlv^DW%+)e05E6IF-7J zke3;i|GoG^P<>P9G@1K*DsAN{!^WrjqM}(SFBCv zrq!jjb;h8SN!d5;o?TP7Pck|y+ZCl`6@=>U3XZ3^fk^;s18}39gVh980IdVIbEC{6 z$mh9{J4Szql101B5m=Kk!_pciMhSC>!olClxbH@|7^+i%RiJuLX7-CKx^KE2e{My& zvIT1%zwGQ8z5JGw?TRuV$JwEm3OX+xKE1eQ?~|Pu$K)S+M?4?1JCdQ7AMw#27(_&l z!Kl+5!M&093l9p_;Q|6m!Y1niP-y_7KpAqkGNS!CGG< z6@)*Ood@PHIC+kex?{fedGC$B`EYm0$(upjJ6}m3^Y4TU(;{t?uKDZFO@PgspJIm3s~|%>c#urEdd{0NFLKC)yx# zCqN+ZclvS(kp#*LssM6}jed#PG!8l(J@wrfV+ajp;)j|?!~O8 zr)Rk}%-k2_^=)w*{9uAuqsEUcZ}xwuw{JU_GqfLAb$_QpvghaoOkt^-rS5_K|L7ga zG8Ym{Fy}H}h;*asx?o!u4uo`3xmKXuX0zna7$Kh**8q$awVliX)B>;(G~vANJQB!I zVw+fe1SW@EhZD|c1@*@Hqr8$g+qCXis!{i@OAddwZ+^q&WwUl4e`33<%ullG@ndW9 z%B}IMlSq6pn~rOViPMceR9o*m{}j1pwpD^{?4k1O+q<8?3nmm=1qc#`bb${N3vg#L z({jUV0P=2v1nm|cb$1~7uX6k$hx zNQmR`d)<6j&iwmfw_3%kzlhRh$7V6WFqw|hEK7vM! z>=)S4KVJ)NG5P(s3*G#)O2yg{XD3C?eOS{NE;=^I;T+<2oPl-Fry4sjDRQKJk1}M$ z@#Jtp59VIL#bDXH*1d0KM`6?Xb;-ZNnns_6GYljcA%ymzfrX&N z)u2$AC8>wNkjzW0a6;$L*n`8Hr9f7xDuL&|h&6+hHqE*Y{N9l6WEG)xqTq3Tkxv2x zgS1B56yQ;?$IP-V0|o?L4iX?aN)#2rJy;7UWGibD(;G?)|<2H!D&y+{*U6u=bz zo@{OUa+Ekc7r-r0dX5Qi9|^>Y4kjfXU5hY##ozGiDP4jRxgfRWxxGa#O_RE<`0GyD zPUY)&@f%{RF}ltQI1O5qW*y9TpWHEdbM|#MX2tl4#u5dy1?KP@&%{6(D%btJ;~)Ng zTzHxEr7PG`K}IBLlKjGjMi@3h1Z3jT1DY5E<0(BMl0v?IGy?pB^!2E`T+!I*jIgML zf0G`8DEKj@kFUhttZldB?#5PG_Ss ztm9y0!kmXO*-c99n(I5F^NfR_R4``vq~zU1_{b2B{t{RLoSSz6J~%*9Vg5Ixz2z?` z`+|TOonVWFVUvQ#gs5;`Ek7c!P*Jp;6CxwXOM#z59>_7T@Ba3&Xpdw|qgLL7nmls8 zQ8=sHzqW`0v-O>S;oO&|fOAg9*lC24*|)y856z0sn{a6=IVq8qXtS8Vf!MXT%$*~G zR2YBoGr4($!FB)2TOo$nr&T z_JaD9q}}0hw&R}1rswJr>~Hxk=(pbFgz}a!U?A|oqJ*wlL=arOhnB9hQBG@et<@4# zgx`^*3i9cUc|MlW${0zcm4EBj zJvgX8EU@(1lzGHmfQ{5}swO}xqZN=8yW5conkNPg8j)1cM5w^rrGsXlIZp`>2nZ#& zHufc{ZE3^Uo^nDeWTZKf->O(tdO(wW0~8ps3eN#MeT z#s?zA4TLyFnr7Ms6!losyOK54nx7gwZ~i8fPkGVa^|M!RT+VawPQ5<0q|ee3(@ERHtikcd z_N7cpa?D{s_3Z<|aS?!tayT$vpyh(t73>DI1zJKkPX;Hk*tkGNWGNXKlLnf>Kq@>m zsZ^|73W`gG_JWq=k$|!)slCDbizd(L>Q%D7$F0{gmMrg7F{0(WdHa?EPRmcPz-Ek0 zz%p)c#vVvg`=g)wIQ+^!y;A0|s2a~tn>F6jxLLD?UQLM8=Cy}_LaFIzZ04aPqM7hO z#|bv7j5~7Bc&DJNxwAA%p@r5yV`W!hG@*ZyyOACfT1aXlh--Ax{8M~Uyl1k95T!uq zIFD!jljMr=4b$HLt@4HM8f5hhZbq#>qa#Oxr$m#FGzk3`buo~V4LbruN=Lx4K#IzQ3pPQL zA1p6TBrAF7fDjN6+>B*{^^YK2jE&$)C}6;LE53K;>@Q>fxbIgp>SFEQ|Ni2YGTHv& z97vpL_3<5Fb!`Z#NcIos;fB3?UaG=dD3i(Y=h*Oz|uj03(t{kZS>k4j~2qVP6CEiT2Qo zDj8LHc;~Wfi?oiPRB~?Ru2(+%?$Az4ULLD})6K`@t*_jT`*UWI#9XMhA>=9Eyl4oH#CI|ql7p;dF=NjRUp#&@Kt(PM=6;4P z3O>qajNiylnSpRVFb@dE0|BFF(Eec1dG2bm40zGrEHtN|OV@tY{>z$FdCG&8fBLpt z@WiN`Iro5r)1+fP%opwW=~*#c$a$}Un|CKY%GJPR3pw?$m(6R+Er~pBL0@Lf0+{iT{R-Wo383@QR z7Xk;)6;Zmh6l6sy%I1_;^IIhvpZF;Ae#n8Z)=XaLSJTVQpyqNuQURySD+U6os^>p3 zV%M!g6$^q-eEc-S z%2qHwkn)7s^FVdyLZeGS8zsFMY!Lf4$l?P&K#N1fgezkyY#n8abzYi$Ah`S$kJ#_K zAz$s<``gNYs_mJ)s!Z``K}AOwwaMAc?sE0hbyg+!k|jIOU(Z(A&f0u7I`0;3Bcel} zhE3Wy*kK3c-=HU!z7B^nJq@5cpb)tM^zEo@VbyTsAor4{6RiYT0LT$F5OEZ-vm6i2 zle#4keG?@pnjSocfDve6RsDn!v#0)AJ@}gfk!OnrW=(E&EB#Eg!DQF9CD*LDxWJl4 zyl&6>dGqWaNZO63$iBzey`3>J=(E-(-f0-~1~9~dq-LY;^kp|z)+ z(xB1iu#E<32q_oD_tVD=F1F9zdfMY&sYRE(zsh^ak&ec!?wD8722T?l6;Zphz4W&Ps1k8d| zKd4`kcT6zQhTK!=o0Zr{0}9Z`cp}adi7x6_^af!63MGJ>?(pBB86P>;>{9N3Z37aeXP!TPOUdSig9060;;FLQ}DC} zN)iG;D!o2hbvbEd8`qGF23;^EZJ1=v2zHU#aBL{+s)Rg0>LgnS5OyLH5tJlsRUIqw zzVvD$dx2X~h4G<2O354>`(f!RA4gSx(=)1&Z@Yrms^p#P9h~BiCOet1OXQ*T;}&OE z`jdwz4Oy&DV%2q8VM@buUYS;%K^CC^Dj>Ku7ban@UG&h1ZxBbgfj*D{fsBpy=Eju; z63?uNN`=4?ZPaCwBoP&Mm=}q0g(;XIPVp){8|14TGx1(*NTrjZknn!(og7v&_=jgl zlQRxpS#xBZ@9asT8*Mauowf>ukB?tM&J%7-%c3)Pqt4|6DqmcgJpPP&N^=t@0$kI& z$%I^%Uk`;NfDs7$`ydTwc!9s+oYSU2R(ry} z({pH@3X&Plxj%Vld{AW1c!LoF0O6Cai7AUmNE9SfAucDTFuWU()@Tjz(-N8i=Eqa0 zPBCor+K+#~x%=v}H?Nkt(|%*|hCl5(GR$T#H<9lp&yQLYPhX7PI`&5P@1L-K!L92| zi}K0niw|a13Qm7IBILkKOjr+TwAj1GIG?w72DK{K|>j?MvU{2N99mD|qwwKKzHTp65$E2){C85ezT) zEES6&N37OJH;H(W(t-B@l{xPRXIqyOg@(zJ5Mbi!RR0*26>liIk>QI7UF|+oMgzt; zI!_?(qRoyj{wUyU-*Js6{CBL}lezUAI@HKJjUXC$y2$DwO zP*%Kd#_pH`!4@{hA_#HC?GIoF7lOT?S4f*o;jEEvgCjt&(dnUcFb_7SQt$}fRFoF9 zUWgiHk`+(Sg+=ee|0J$BNK%E}u-hB!qV)9Itqmi?!FC&PzvaDB1zpoGjq*-y`^Cxn zJ^p7mjW{@64;}QKS;Sv#-4i(~`;L0PZQSTlc|MD+lv|oN>C@1cFdIG#m@S`x2@8h+ zyX}}u@M6OyB1vTqD1aUXQaeNlLB)rKjex@q zO~D}nVbLNIp3uy|?p+&J3m%>I>CUY$mTef_dFQ34k`vf0{|-*WJ~5O)8|GhMyvH7^ zzx-_5_U*P49-o+_2(q-O*Q8z@FfO9=wHkqhLvCC}xdP)tp`sF|aUr?`O2X<6V8s;z zCa49X8C5C)gj6H(i}Klc5lQ`qZcxXL&<-|_q+Y%#vBb1n)cO#|Gb6Hsi@mpPb-$XO z{bq)IUu$B6Ygx7z&a8>!k3T49*2K+gZ^geV+AU?%z*+xav|HtVP1}37>f%D=A4D#< z7vH~LIL-1T8It7+iVgP5@1#n?F~YUTt_w*5k$uv(gI}V+)ousbNg4hXk&kkntVbLX z2&M4dL2%MSOP8jo`%T~ZWE^|+`?)9c`rn=yys7xxeOi7|cyDfAw82p z4;~1P&srJb6_sr6M!DdXWAHcXAWRVwPHqJfrf@zm(kQ|N^$HC$uN<^L+Auy6FWs=$ z14AoZXcp$Pf7S7?Du*ujzwybBd0Ev0P8(m|`pkSv%WvO_VNt1BQPQR*CmXD4j>pC@ zlpElEB`g-?t6)vyh+vJkK<+a6a&llKh}`1=u$@Bj#r&Pd637J35>gIC=<>kx1;8=l z{eYJRu}9p>!(q@>Y}N)8E@4oqLDxTN#z%>6uIByrP{vyK~<(gDcKy zCk=ANaBEiX)S*RSP)An3fTMC5aaP!d%hN*X#WdoA_=CX~?w4=ed_Y90X`=^ew2;Nz za*91r(u;PJZW?V%LL{9iP5m{Q3Px zGfQr&yU9MR@^E@4T1WX!cV*7GP5hqus*R1Eo~g_|Z~c{dS}OGm@o(6h^nAD*W-2Z* zWC&V$$rz8-pGKbX9)U#FDm)f-`50xuDKYpHx`1c|1{n zo}vf&tx???3SOX3=VGv zV)B>Jm-`nb$K-j@j8kI(_(T^0kAkKkb7J(SgfcmCQxk~}ErBZqx?3yOw3t zR48HCApqHmWDpfmb@VN4JH*{cT&RW^G7%}fG!9HRur361l0&by0ow-vOWQ7whW0gebIJST+)d-9YY`5KbEu8UI0*NoIf`^F?>#TPd5MgiKnya$qZSJP!&D^j2yaP zUIkcpR!@+rpu>V^izXI_3jYUu2L}MJ6=xi{7(fC8A*&dqrqJRP{yTRDsjeIuEly#5 zE)FfkF2I1~NRT3hY6LP*iY3LR?JvKpM4f;R9~2+{Z|hNGABKF>`n7HL=@_YVF0gy` zbVNbRks;~l=I4Jb@AL7!ymS@9Q`4{(+&9xM(h4FmDCZvgif3 zptK1}i!gSs(!iO(K0PJph3?Tpi%i-CH}K3|q90eNVO{#PXUWPV z+w&3;iaeG~yDZ^LPz#h6h73A?gdWTQWXVt>mVxDYgqlxMl=?PD#}jG8^|Qt8HD5o0V_iQpPSC>%h-y$qBhiXbL`Q?`==7~;@ftr zJ*RM3b|-17T2eC>z?|x_oXT92g7n-j0B6adm$N3n;;e8XqvED_$3X|KjnW*z2;mB5 za(@@79>tz=3N0<+M^B?BJ$HT5sPnB`SHw^7dqYm3nYoV!}ah86{P-mkO#&bktL?aKqKy5<=42cNp zh-*QLHHZ($L{L0#C?t4_PLw7>YIN*obWg5}4pl6@W_V`it_oY0=^P$)^ED8IV#_Wio1SlgR%ELdQ9<eU1WjEs3BLIq)I%yBrE`3qu0{%B{~?MFn1RsbBHSbE!+)UwSmY5 zv__fC@`vsRqdq(MQ-jFeVKt_X>i+$No)Na|)Wm=epC4u|ZA-_`n>;1EG#nasVA2%5 z?q-Vg%+>A(nu_|iWc7QKhG;I`z=nN!(ovRq}0TKhidM(t0z&3axnn-s9v0~HFlBE136{%M=%1TmaMg?Ic(@7Cez#z;< z^xc|!kYsSP^Qnx{f~kU^CAk}55x+P@wN$1MhqNdP1V{4;s0Dn5b`{Y9pMh#YTn}{s z@3!*dn@-(1rPt1HkKcFrHn>maMh@>=dMD=XVG*9qKF(|;0%YypjAy&^_pp(Jrp!*! zgR#9{{IriTT2w+uPTxe(yG&eaH)K&lhR!vNik>;oz~y)Z93YKLyhi4)M?Ve+hwz+y zc$6JD*|Z6Y!mfa3u6F#P3{QlnQLo7#g-(D94dS5xc+klq^61)~KSzw~v+!ccu}@1T z9M3y0LF&AG`o4J$Um3Z2*7^L>`Mv*LoqFC@;ixSJ8EtSPiZny?tILXjX>LO#)agzb`fp6i{1IvfL z;$lIy!bf8>(R+R7efnSI)RfQO4i8GaKmOql`@{1(lUdpkv!Q_VnD}81mbhuhqxn>M z574=@+r}85DW|sNFbS2LHR#jh_aNNxvV`I)p}o}`$7j<%O6(2(NM-W!FS2d8x4>JF*|Fvim=Wa;-vlXFh&@Qff$uR?2RcyVb0uFOm@ZA>|N?eP~*M9={&ITBI8a(cy}f%$^YqcYPU?jW&UKjCBi8SLKc z_dY?vfBcRc0AZ z>InlJts$pCZW-P-mee!DvFb`Rqo6E0Lb_S>v|Li$yktKU`^{GXf~=$o#z-Q#82M0X zQ!n8_q1=coQmh!XXcZK-e>F&M@?n*^&zEO*JiWL7DaX03mc-tx9C^q!NK#|G?*MN?gnfPF!a$-S{d0_J3z>p-)L(}$Ixll=G2yrYI z{_mGZpZ7ce)x2c~%Z=-n^{@o3W=eL)tIA)%>B@#d)yx!}MM;+<*$Hd{K##&_k1{p^ z=fHEC%+2wH^4vK^HL; z2)4Fl)1mk?uPc_HRsjbu5uMat$UK%K3#wz{k{nNL%9fc;JN&iG$?4rgV^_x~9%|}; zWY65ZT{BwFK|eYtZJb=$a{0oBnfan`j^ECjY((EAU7!BV*M~>&c=%Z#{Sj=bTfJ$c zrY$@0k)YejuwpO~=PPL>yfo9hf={)EM}d}RKmm^gF&H_PEKUL$Wh8?V;!M!xAk87G zly%0`8p5PS)sbqA|Cm=&$~{s?DWjD-Rj7QbuzP#&pxtj?xH;jsW1l7!v^^bjOiVi+ z?q<@xHxC}Z2!Lw;((Ri!J6$kpu8i?Y-8;6f4-$kc1qEq!L_%^^)7QHo)70)ezF^7- zJp!+qA&ZnToQ)vdX2?FduYpp)hL~8~X$<%)bhuiW#TZ4u2Xa9>fG&bm48{PIxgm~Y zu4Vmi`}5;329)?F?0NNoN~OP<(igg`anEwr@sHM9j5&X zHprlvWPsZFe25KnKj_#Xi9!)XTLh3LgAg=32OK7z3QHm+XdFS_gx)bl^A(_vl1v?* zn_h^_hAOlK12*_hy#HtS^KtV%Z^su5c=6Z$cb?i`Y*VJ3x32NJ_+ZO{SC|_|#BG~l zm>aF1%KC_;?Fx4NzD;W{Z*Oj8rBpM*DCt_ngEEwZI5-5ja^J!5V2;ugVw5Ms8WSBT z1aeAz1BxM%xfH{P_C?{qLvu@>vYdBHvbFG(s05rJU2ZUbA&zfdYINr0bKetx^IwTGM@cEC6=*>r=YdMnpR zLM!S49TbbLXk|cgu{LG^0FpzO!mtcm!bMEz3RfeACB(7f+hOIyw|T~H zu9j6U%%fDVPvYMH)^WCmA#&)6j92UcS$b;U9&_VF4#7~lZinxycSO9+ zOv`Vtk&;8gkP8-%FhhG(NfQE*)Yxyd%(7*ouVI#lu|{5qSXH1YSQ1SDas!?yF=Ke1 z@C0Elq}K*MCJqe85PY(No~IO?Flpbq!O^Q)dv*PO=E0-EabZ3-or*adCq0~6+MLdg zj^A)FCHt%&xHEG_^4C`SYBUf`j)uEZRd0XKcBCnxf`b>JsA!=oSx~G-05=7ahA4m) zM4x7U4%$Pq`lx`u+*s^l1E_&IK@^1lPIw;MbCi#RA%&oHg9f{Bk%@VPxs(Q$HI-ARGYK_6v5a$EhRk1Re*RE57h~ zzDS7h{zJ)yIQrKsUA1O(-91I)n-;G(u6*Zaz1nQBZ;JI5JBOyEzG0a^{Myjj*%dK$ z%pU%WxBkLMe+0Yv_HNs}!}ou5L*N1ENgL$?!YiT zH^M)2{-Bc6Ki&S^WZ!blSXrpbYPxpyQxa^PW0B#TFark z<+l*`-)U2zYFIx+;03W=h_}#cYf6?)nM??jzObWaY1g_=wz+fs0X=xCOevfeh8DJ= z!*~(-gCAaYXeI-~dXPec^8@dJ6`(DWL9?85?!rrBtdlYF|tV+?V_Ug?C z(>%=3p##@<#a*+%cH`sb-?$=J-mHZ=3#L%hl1IWGBJCFBwbF_>j8`Cfly`T~b)jDP zc_@EqdMO=5jPO_(a?y1gnW!u`Qs@iCM0;3i=UF|*R70j9-bO?SSW^^?p%9zzZp44^ z}20=O**ods;<+%VBE>kiPqqCN$_ z076D?g?5NXiGv;kqt?jsLp&6g9Vt?HZ<${{yBSk6>B+`jbsaYs_~MOUJn9=rOfCU^ zdger{fd1LA7X!(2&pY3rnZA2$F1z_8>xVJ`GD~-Vzi$1y_LD{%niF3g_Y9v3wGE>e zrWC-i0Ew09s`yko{Q$*edjOEb^1_WU6VR~(KQUeM$uKx`9h1$9YKlgSfejLdYaSp2 z1eWQJd9p~+*(J6GyzTwzX9w$*Z}Hsy;GnfPY$4+26_z$Q^&|5Eok|+}=yv{jGA(WC z&D)$F>(WjhrFPUHO{RpgZO4tdkM15)mg0hs9LpJm1DY=US8#IdJ+LA$eA@tMU>isa zJwPp)I*Dk(FaJe$9zD1VDqx7d~M0%@kv^OKd;#19W}GPey@hV0*Y`D0MJe z;(@3o$V~kuT4#?hO_{=AX;J7pIdAwg(Xrv@)`A$V9He<>SZwj{(}JG_NB;TNf)!z_ z`XzS!s$so#d51;zbI*!?+hik-Ub(qsU;a1h{;`>h_EA|NEUfgdM}Obo&UnoLx%uAE zbZ89)dvWN2`GACwaA4UI0+nRk!Qe$0WFVAKNiqpa0E{vlF$c-XM7}baz@gIf8nOo# zNn#iV57%ZPu0bNBXzkd-`}w6g!}nkJdRqGG!g*yrxblVcgO3R^jHM9ijYLfO<%cA^V0;Md4Q>IQtYC z@j+7=KBQC;w}_C7o0i827>&J$Oh^==YS+Ol0R$1a$h5%=#Z`bl4S10G#2sD??KUKK zh~xK@mNW?~i8=t-hbxtV!QcTWX2fN6uIn_Mth;&x&6AGH3VN_&a0PZTmWx z54%#MCUqN-m57PGI`2MFZ(4i=LIk?P%qyayx(6az61B45E^c2+9J+Kisw3P)(TyX6 zJ|1?7r43wEU=e7fG}q%s<5#9_gCOPLQ%_KIZ0h4xsNOppe_Ecl;ZoJB=oRnts~ zxXF1vn9vC%pr0~76Nvzbn{g?Uw9l=DijLY3)r%h%J3Rag@2os0I9HS^qpW2%1;G0< zr4S%Ok!ew2)JmOkJC-kggPaCD&z{jKu$r64nbgg`Oa0ltvIhrp^V#OxEd`a5ZV!zHV_PuciI3(NN3|Ni6o-R)P6M%OSVnbkVuNg~5jY-7vj*hqXx z`Ck50t5&WQt!3>C1!KiFHUVvFF&s2O(|~`xwY=?&+KeAG@4m1F@+^>@#BfS{f!Tmi z2tiiCu}Ddv3HHR+Po0A;rdJlV1*bp=mOKRPqi1XS`~Fz3Ovv?I*uVjVYcIZ0B7wc;&!K5@UnHk!wnPhva9l|i6n zxdz6qg0Gr6L@s1lEnsXqU5>S%;SPf-fYp*VlMH=0cG`4hpP|SgbJ$3=2gK&BN2A46 zrpgU4#B9%13&Bds;KT!=5K2NIRIekGPVfJs{u8Is4w-&a3e{ZJcbs}D2itbr+-ynI z!#mG+*bgFWrc8Tm$CkK#|9!(c?V2_uV~-Puzzx=ftag|v+INs9=}bA!fkD+tZ_F-! zyg|TQwDOcQnp%KHaBdhptttZM;&S3^V18oCr1e0mO^?D208IxYL|Yc(SS7Kg-%p7r zQoFW@K0MB&K&`aHpUuqsV2EvuOa0hvMaEuSGA$>&V@mRnm?XVoIV+tFe!(D35WK3F zU@M-s19M_nDxnVpMZz==bH$9SC}UPOD*}s_gw8^?UD^#GRX`Q|pJdd^2&=M2NC(ZY zBy(DF!g?7rTg)@~cwLEYQb;$(oqOX?dm%*-d>)&|4Kf2u5n(>!NFqGSTHakQZsr$$RX6Es5&STlnPocwrU`>C)k6fQUFE( zip?54uCp`z<)`1a8t(pMzrd1prajwldo1P^5V2~Nqp8VE9rto#dj9rm!h#3m(v61Q z&}T{$R7p}qdMAD_<|I~QfdIp0!Er+zQau0_2+(EoQ43=b@>!xMP)6~_!4HYq-q_{Y=u5?>1)Y62a#nQf4xQ?kp83MQ z*&Q?g$?Im}m=->D)%xt=@WrrgGuG1|8qJjE4YztheL8!!^wKOVqcqnRoh;7+fswpn zV510w7?u=hZX6Q2DP6o|3bMtN5Mx2qbTPzU1aTAa7Ru#HUL=)Tn;VVQpfJNq>q9sp zJssUt#HANgn%wM|F=tik{YnVCGcC zfrIS=`ocCSLlEAS@_`qe^_U!ZZIk895Iq7t$!DTlzq)_c_37n2YsMU{GQH0E*m~XS zcdTG*2hG>%?CjH4soC(+(Fa};Vn-uwo$N0vh`jrViWwwJh3-#n-)2yt)+B*-%5IK-{B)<}#G0iX}T2aN^ zExPCcT*5j7eDP3~>=;HgPD(p~oCF0t3#~ZebZUUo2}hZx4U1&$BZ(jt(L$~x5F8c6 z69f+z8uAyI0%j002?2&E`5$Y0zwDIEZ5VzZ#Yo7DCa3|wP>CWpP*gN4O zMjj|{-c}JePanxyzVzb3(p<}zOiyM1PJR0O_ag`bV*&RI0I4#w5paOHD{KtC4O1d@ zKRbJb-UBxo0yU!1)cp#hqGae_K|l*Tiewf~BAQXXenf_(yK0x*f=rFz6_p?yFMXIc%1oAM)Ob%ajenT zva|yMAi{ofs5l>Jra9g2p4_=K;*c){#Y0Jfy}@5m<`FuQs)V(joKqpu=m7~Bpn>NI zOS!`L&mJ#AA`q--4+@zhn2@RGo?oq7QfW`et*e_YNY4Cc`?SEQ!oBUqf+vy(Vgna= zm3i&jGOk)Xv0%)FjG?+|ZNeM8kQ2BtG?OeiL=kbexFCJiTLZnszaOYXQin} z!mRhzy5Z3e&t}g`hlWnNayAdZlk37lvw*_@VKQw8atEwMkW=iKz(tIY8-XM1>SPC} z)yJcN5CV!6Xa#f)0ZtJ8J0(uRw(`$&Pn}p7n_crJ>|H+GNOUtX>drLoIaoqjP!L)L z%pfF!(tdA8&dR4?hDW+VABbXuuo`6i z41v@OWzZ5}haCWDf?Sk`Q(?hh7k34`1f&<2mrMhqx$Fa>w5?A9h#J{cX7 zm0BYSn>G+w4(gwpO`JDI1u_tDw=kvh>XDQHy@{@tPfTx!4gzelDoR8C4O*KJ$3w5x zYUO*^_t4QOpBA2zIwyM6JJiaif;Wr!gpsowm=^F2vzJXHjmIqFyARzQJUCB#XrrVm z1^yn;C79osnTObMYB+@i;kc%7SOj(KEG*!-;2|}H<9rAd{NOnRRO2m{Oq>f9vW6>8 z(LCB>hH0IyR&h7zgb?`youF;u7N+40aV+rFfpxAQTytGE_fh>Bn|sxKQ2SoxoE%djP14G!95q+I?mbz+c4h;MqJu zu4c|ph~wI@PyQ+GR=;3!iGGi}dG@{f%@3zN3Xdi~zGdTf-X#h$`SQxe-n5Ep(~pgq zlMi*jJp9_YT%Rc?NR&(wOPi|xKlEz_y94V7xI>@93@j>vF&O>p}UQ% zlfSaEOYQo%Y1jklm~tiH@TJ8CMF46xbc)E7s9x~EOhMVR9jpdQ9|K$<29yO!JK0UiOerdxR%kMc2-B;zhz1;HI)h^Csrfz-P@;E)}R=zDz zX`8O58>`@&2z4r%EmxLlEx2-@HeRh7&|`q<(IKD@p?EP*Xs4CvaO@}UBDyhdYEGp# zGqkE-0j(bzCGILpB26&T2h2qTnQO}hld8mhk#~Rkcl5VD z-!vK3W0p_7Z`(Hve4cD$%gko{(Z*v=rV8%(j$Jni1hNM=2QEnDAL{|-$lxsX`?xmk z-@hZ?O==Q1D7695+&~1`T?$9TuMIARw3Xv*o?F-z$}sDysv!nbng+u)H2@k0=3lcm zX*q1VVn3*+PCxJD zymZIDLYDIbcO83}e^4E_eC*+e#AEX#KKdgV+7fLca%F-FSzkx5p|vesLBP-S7X1Ij zO}OEO(tc-SP^FFKDj`7{u$;DvTb7<)vMT}$$pb-{0Y1yv%WMeXOvpcf#k>av&qp;R z*daq^&Z+WA?VCfVUfc1-8?~ce5Bs^ly*4TF=+Gk0Ny}niw~X8IU~g*vkFs$3g|(^b z1atUI{j^nd33?2@g^&;X7B4%qANMIt4GK_nzNnKVKPL50XacyiT0zp*nM7W<%Iykd!p+*d!T#Z4L)<5wYxDA8#>KIH zw~cVCoA&@YI4wv})}f?|vqr`}1bWNc3*L>4K4|!R8kSQG@Sju*L#lXjZmHl(_{iay zNHIf^2+N_ce>y8Zq#WoJL7G5*A7~m-AJqzS=io0vNC2PF_hQ-ruF`x<@G&5$%D&c2 zf#^|Wlq$w7%PdH*N%zka3vqnb^g*E^i4~VUU)l4sJ?G8_#k~DnLmQiE?kUI`KmSX! zyImAIbNs@JIcp=tep0K(BI387(k(U zS?c`qpPn=yRpL~OMOlY?#zlVpWSs2;nYZ-w;?t$nAXyGz0Bm0SwVjJvANG6y-)+%N{O7gr z9kD&j9t<5dbV>yiUKqP+{e{@q!i=aGoV#(i^a<`6+{eGKwmiWhk&h2r z1#ZZ|P3#%NIt@9}7m=|Hy2g3uq6HXH*a2TP0pNHNcm$Ax@=_BRAcCJ*0UjAqH3Wv@ zi<1{0C>}!`r-qcqB_G~-u&zq~*87?sDE0Jw^T&60pS6kNOy}FS$J4BqrNo59Q~6Wo zpKs6FZ=}rc?7JzpbmeJWVG_d|K3u%l066ewFywp|k{Nifw8RQ20!LaxSDp!(#emu# zR2_Hv8T#}pAoVbYW!6Ph#=%iDJCIa>XiX^yI28{rwDvwrUH{ZCp@3)y( z?jCY4|1x&x&(}-kjml+R>RhJ6BraCV(WjGk<%COL9=>2_4E75C!n&dd3X00$&Kgw3 zouDOTltojF-c|i|0BezD9!ACrNPs{CcMIEM*h|OdguVwB8ALh&at4A#>)_~FU_@a2 zXe0?}MP7|(Mwjgkzm-mpODyf^UU%x85{uW}4DlKFi~Wm~b!3xuSHZZ4X{+c~%rm_r zCTrnb+x3Jt$;_X?RY9l%?<^DyXBlNTzX{G3H7jg3#*l=!!VmX=2P$j%bIcb>0#G#V z2!SNcV-AKb=3Eo5PQ8@<13#`-^nkj7^>RJ%mmD$}9=@EQDnQY@=3Vso^rJ}?-hbS% zxYLM|;ZG`;_|c4FRN|l6dCd)19eFlhQH=HKv}yEf{RS=Re}AYwf683`A%`P} zjWRxy3G7m_DSn`7sBVyraI5l(2r6M>g2kcIQO$AYaK_C~q;^Zjd6;`ZQV<Gk8g0>3!zRbYaL|4+6S zUkextIHm2mh&6rU{R)wn2f4n1o^=#!o7@TAC;eSK~m-%d}r}nsZ$*a79WuM^)L0>z1cD%Z)7RE9=CNeui8N; zZ#_@7Z%{5jy~aPZJ(b+(ZY5&Lh$cl+4~5GqL8eaefGyB&uBwDIlhA;g!2)Gt77s2T zR@=a`K}eyd5z3C$-H(#)^!a-P>gOl3!y8U5I5aa~ zVaw2t&6>8K2ZufxJ$yAZOQStU?z&Ru^rM5%CQNv%eCdyWPF*_3b`O|mC+te3#jNcK z&+gotkbi2)yz?Lbn5o4m?$X2tSEgVfoPc15V})!L)6RWHCKjIsts-gcXhCH_)T(4< zIAOh_=alJH>>!Z>^i+`7Y)|7e3EN_#)FN48ap}p(N}-1d@@LgM84u`fXo(A#UQ)5V zv%{3=d5#|Lf87|f?aK;Hb2X3%2Z%79efxFi)Y*r>wA|i$HhNmcR|*I2hs8Y@t5TmM zF)@#i!H$5CR7ZwHj;VqhJwUS<_R%h)EWs~*0n;vm&qEm+=J@5`A*56O9*cm>MzZ<>}SOes6f-k9S+VF+MN3 zQ^0A=zT1F}OuUw`d)F_{%0IUpI2L|(7UWJ2Q&<*N55_wRj5HzYRM24nRw)q;$QPuU z!I5sB%`0NiA^WKFT`eT zYrI;PNppQ#x6JFGEckqGyTU{Bn!*kqSX#+spks&J8c1}eSzz|wIrU^ro?~zHzrx;0 z3ei$CpdBzmIt}Ig3ixFvLKZ+(!Page)C@qKz#m>LOc0Mc+`H9j+p=zd{kSK3?2lia z`1x7-9NTMQzT!#IC)m8T?bv&kh^S>_H|PH%Cyc#!E{QLaAMw#2!R`TFvB&rB3!xA7 zXbgP3*Yp`g6iS~5=Fh7@d^&+pyd73gik3MsBT~mmjG_gEttEz$FBRRDL3GFqCbcyE z6tg{RGyw=XxP04C=Q7)E9q9E%YVqS|BhH`xB5`tD#KNn~57?uGDMLd{S|ef4%-CJ_ z6u_JtNn29%c2|3}C1Ac!wzgPjH`tZ0kOE7-uwV}S#M-^eXF}zvBtmkfFlIX>o0ut z2U{%&g0#3uL62+>q?WdaS?h4M2#{D%R&YM*{g+oX^&9|V$`44MG_ z&HYIj2KNpUBb-{urWlTtT*5JB^$8a~qoEdiQ^km%KpYM`Ccy=O9yzSopLsAaZkYCH zH0hx5BS7x!F^r!a@ZOj2v~lflaeuEq?@T>(@M-(Sd65zarRF zU|qPdfPc)}Wi_i)v&ESihZn6jqG08CQistUQmhFO<-CFjYQ$*yMWP!`3#atLW2?QEwCbt2u4bc98^fqRr*K^*<_#EaB;3}Fcd?_T#1o&df;xo~{Lr4<=NL`lm88!+5hKd;v1>+!B0Z4)Zby$=t z0~LuIsITC8aePaMs0Ojkf#ge$J*rQbRORC8q0g2!iH#U`*!HN*5XO@UJL)-yCLS$h zxqffyo$yyA$=w*U`)0VFRnF4fTocbgwjV8HNZ7|6|Bg8v zI&$Io6=B;Jj^6CP{2%*KYQ~x^jOVI(OQQ}=ADsk33gdbdoW;eMn4o{BA*W@m`dj5$qAimD!S6tF(Z!PZ=x6>y_+PYk`!0bDEzJ__Tjb0k7 zo6RgRvo6NpH14yU$y>(c@##TZ;E|b+m2hJeeXZ!LgxCd- zX66%SgwNS`bf)cth!f29K_JVN%K-Ss^@XfeWFY6B=t`ob01YvrBE~?er;W`h78v-@ z2f^*o?ZO;r5hr1i7-~swLVzKMJ^Bc`-zq$3j*+68F?A--+VlJ3pdo$dgwO1=Y-mW< zKT)3^wr8F*Hn0EG#Nsl}TwK03`=vTJa!;(GOwP$1&jmLiLWezIp2Pjl)rt&^!cP;) z|IdSu!d7fVO}I9)Idm`t8WBWH5Yybom_gaQ1t3A#wHq1++$@>|rF`SZ7~pXq1K|hZ z-qAD_M2B3w-j$PQf<`O|`FGozA6xAxdd;uu4O=x)1H<4nZ}IoeN$VyRvfNxUb>AyG znDk2rAB|8kF=gQ4iQf8YAN@i24xk%6p}W+UlofMt9ViNdJ)*T(LCw8{(F5lfrW&dV zxHXe1{|>}7QK~R+JQb=5SQnv@Xpd>f&|$+i11}LMi-(OEX0AO5Io?7HGrVc3_p(k%Ey>!EB#Tu zXRp5K_|Ucx8s);WNvLM5EF2i9U%E2>FBz7!9W<646|Jhkq(b$?`-uI9pMqonqhna$ zkSL8@iW3eJwU03nZy3H#Sw;wyBY}=cE$6g9MtkhsbN3KA$J3!D_J#34Mn{$+8N@sS{ssIsq;Y9_R%Ab{ zh!9DJHE0qtuE8YTtI`e7tI-<+IIOPpQQ(0^4>~nE=jlB4=)aG>s*hM?W2ww3EFyXa zUIgueI52el>3jLxu-Rv)q}`*iSa(2ZA3>$w{RaHr34D>&*^sahZkR;qd0`Wv4SCy; zCSy%ySrb#fO1$Kx@~F|xi0{POhF%dS7t1r(6Rk8rF)J5%$KbYQFqY;NfC#+H7sUjg zoN*sdnzsGx-<}>iv(9z!#iw2$%^6h7zFnDpWm6e5`XK4x-itX$Wz+t6{)=t=f)L3` zK9H;dha+)X;OSLKcJ2M`l)w758{Q!)mPLYxvT-2u zu?)(1%43OLP|&hr;OvdBh;eutdv}du9IUq)fhYQDAN>(*Y1giWcZ0_5T`aCJ9?GOZ z&>$YsA6*kMQalvgkgRZmAY}g1%}iSo2ws7gi-dT{Dy86~d*|R2a!607dqW)=7Z=|d zK|%~D=sH34Fj|pYj90brW4BrzzM0$Zl1t%l&(!Wb@XMKX^WMx3PP=zLL?tVA>Fr^A zU*_y5NIajl$Ovz-Ve_^DS=u4i({Nxo$B3;^-wh5;kxm_%eC{SZfynZ2-yw<)3loYsVn8 z11%@lHmxR)g8@h(=LEU>!&Mg>vN7?k`DJP!Eb@2CoI@pie;nSqLEi4TfYY!GBk7Ly zV8ZTajvAQV9q+h#{_zWuCUz1{evpkryh%)9ltv1*oL@B^&mzbFgkYpsTI^G@7JdkR-M|>AbL}Qo(xbUb-aF8o`9gJTOP6c)Ee)Z>0 zY1_IV9#*qvx6l=TZ#J-`T!}5AifuIr>ddV53l7?62h2Y=?^dclM^5QC(QD&#U?E24 z!xNyAQ1N;H(Q?3?5bj0oBeRh#Bd##*5&(-P+5NFZ>C_4Zynt&~YHK>J|V0Z_$1yPnBv<1+oz~dx!Fu0+_qqs0}{qp<1 zG9#9jn{Xi5@9)KTm;PJK`(EBgzkt(;T`6VEMn60v?ZJZV&Sl2zrzZ@)=fnTCE9SBs ze%fgC&G>OLHRxavjRMeN+99um4u)z#O#$#@#%G^4qX~Dc`ALwU(O99Ah4H}U!l{zo z7H2JXF`!A*5Tu)+M4(_+*No49LnVs@mp|B`OheiF%Y&s z4YRM2q0^2PcRo8iv8ZM5q$xXy@3u$y2CtmEIjy3%e#A$A1mk}2Z0+UN)`i~yCR5u( znJ|P@pq3?aoF)x|ku$+bp=(i%#D)ODLn=7~Bh)rRaVR#jGnv~->3}dHV+7WRrAqKe zh#+__#8|+|yCD(=*a>lbyT$m&!>;*k7~W@F>XUuLzNme;;4eBT4sCLFpvObGPv7~5 zCF9PaoB6zYm#;2K-l0lwI~WbKIJDntFimLBY{k~`6#kvRtngQS_mqTpcgsSwAw8p)3LrZ-u$ zdj8)>es;~Oe|6rW0eN382dDG@N7s3PMRliZTr4rsG?f@lMPng}%76%(Vr|IE*!QKVCq5_J&qM{;d#IC4_ioId)irD-8z2^)JjNa!y%dT4pcih8puRu9^J8bHU13|#1sojie(_#`f419g#q<|44&UFRTtbP%o}NB2nc8v!LGq5D40ZK z8Aq0~S}2@ZMw(c`@0tFW9Ak@jGSEcI%O~>)gv2#=pFA{N6b^eCZln*@b`7h^H`A z5ib6{+xO@Q(L($IMriU5Py(^%`C$Zu(OGhd0MQ}BG%t5*4**~|AM`&)u(U#JB&g$f z!jnsJ>P7>MD1n9^#}(lyDC#N9G#^evBIY~K=sRpju;->7MFL}+_TQAg>#r*H?f1&) zk)z5uhaOCN*AgGT_;hsUUYYr7*nwz0ikWl24(N-|n9x^+PObg>LWq)`sM3nSJV1PI zMh;@mAg*}eIyN^3NUQbPE0IB=5XpnG%8c$O*vt$<3oy3rLOH zMKL1O$?TO@zcn7v_xcC3nv8lku5|8md8XDG(AwlAY?76j%PHTO&G78w`>(!bYS*Nc zt!J}M?V>6+UXRfsSE$#fUM(+5EQmH7(x_CZzc4FsB4eUr>J679ATdGN-2E!O_`M7I z4g?P8aArfx(gT7=02Q^P=nCTL5UbGKaCG3u0B>b%ft=x}q%>EshGlQ=JHBZPf4z0+ zn)BHrWjp?O{?D8ZK02uI!Q{870b95;JoQfI{=Ydme%+l+52ET6*M60|___5C8UR{P z`$3@x6Dfg*h6fr|J-1**QaiapRK4gel2-@G0dpL;k?lby50vR3FQpJ!=h(v;~ z%c(|y8?i5f>CgfqA;OzP9D%IWGyrPv(X|uI0|5Zu1SH0_0;!6=9!onEK!{`VktwYb z{wp86qwLF9vF-l6HT}Q)`Ep_v4o)+7-Y97{^(VsaC6d%;f736!c3^>#*_IV(Y=gsG z>v?tT-yxtw17c~Ypum2h-ZAqL4N0;Na(N&amJfGnAdInju5mZ|vAdBsNHEQLP*K4) z6xJHvK{bP=M4}xaJTwHvGAjp^E(k3GN4G`86<*DleCfifJYPp|n!EIBnL1+*I6OFO ze^@_yv9YXKip{uj^*raA{bS8On8-i2708>jrJ}f0=~F$pE}Rk3U*uDvUt_efe96?8 zl!TCc%2NpwO~ zvdE8lx)8^ow?!rt9lN{m>EPf(-9DKXGw)RAS@tc=*a^c?rf@0y6tVF%h5XaQ&e=KjmuE5lf9~3;$W{BnQ z{)y`@*;|F;9!_D=q>eFpIBS7x3E zzkMXWTr++&k#G=d!{CGv1p>^O+XemsuoWVLTNI^}M8MQI4204?LG1}5jt&R>2t^({ z$RE;(k5vYTf%fF$4RK7b`OSr&a=9c-Os=)0@DEoD4f-f9-QZfX{Gtv{L-zga9KB|b zgC%0|;3u2xneU{H`!hDNSG>bl4>q3!of+!^%$Q#&F)83J%%UP73<(|bVL~kEK^Vx6 zidg)F`n3<55V zYt(L5y(Ru|u5SjEln;QtL-m4+8%3ir(S(2q{Yp{d8c#&z5#DKJASCHRDoe{P7!v&! z31MK#x@2&*;Ggqlv=3#QAxkhOszK-luuFcg^WpPSt6w|qACNKbUR15Wy}nxhNr7#d z)w0S?Ud^ogWPy(iu^hj!ZjW?4IW((t9<7Z`;?gA1T%9o>s4J-(0DJ*7<$&H?=Y4i8Xl>&WOCjteg?*QUW!Zy#=I9H^wT`#Bh1NNOJ_oXFdXF7!M6^Bo`_bxpoyc zYcinx+`*3T{W`1BshF#Nq4`{%L|rQX+x~j{y4X`J;VX}na!!j`m)nwXW!Q;x-RX_K^Ol%!0Dg%M|YvFTZWA&ytiK0Y+y<=xSPB6pPNwRcvLl5_tH zvR51&zd6Qg=^Yd^GCFH&$@INz??v$Y&ss*M02E33BxnE+j4*Fvu*q*>5rJcqG({e( z8z(II7r-6l1sx&5bb%OPN%PgPDym%S6D+QTx_F{GhJrxMsz3>uJ%Ez2nyF=(H!lA7 zx zB!6@h+!L%R=qeZrqu-*HB2E_Mkul(;2Ly^E#ysbVT(}~k1KbK6P}~as{2eSK+@qRb zJRFdybf~Ug$miLwYh8|6P_HdHTQFeW|XALvX7;2??yC5s-*coK2goM3eD zJPD^6epoJUW#Vyj7`9^(KmMollRyYGi-r)E64YOxNJvUHkOugMS(&3W_x< zD*s&B&oIOTj4YouE z@=9dL%|L}nW{oG8C|QyeB?u)^q6@HRq!I)q7%aA0ph@+X05~CzM?YEoyg=UnedFe^ zetNUy2NtI)D~8#mM&`z!w&8j{v&A~GYT}+HnJw0kRWlbau@#D_KGlYqBe&gL`&X&d zs~0jHnY}64+auT3N&~*F|Eaa4zjcb^pg``nDL<}42N`>fKhpZ(Inz6l;b@wkWC zqnsO+HvKJn!;H2SPnWJfrkG^M~DmRqpovR0=L^y~Zh z+lJo8@NS;XhmP*rZp6!4iD4_+V$OB# z(>WlpJ7v3@w3^6_SrTAKT*fRkE=lfo5E6JT&1N!A0#qUjf`is(3V>z@Rt9jz01W^| z(}*mGgnLy4KoW4n7|{&44U?HXb$l|!u|t)$4Ia&`TJ-GF)H9zxJ5}lH?$4{*I4%OVA!RM42saQ|ma)`m?Gd&R?gD!P+D+A15du?Q8T2h^_ryIA;6b(>g&3tZiE30{ zyhbQ4ghw(HF=DV)_{8Ck*ESD{Tw1a4!}t{ULWTCJ+{za37J50Nzq5W=W`;+dOtU}M z(gwYXNaMQa13vnJ(in{nld!lCuwK&Q5}L$w;9*1pj&2Gnm3ftj5TuWk=~n|z0U}6F z(1Z`N^=O<4yNCJ4w5j26G`_MdA_Rlv=7a`b!3fFdDgK?FGQ_dU^e0vRt~BZSFQRaMdNzS zTeCSVvMYh$vsFM_kW0V}3(`Y0L|#7y45+2CzGT2aN=)vYVu}Ip<;_Oji@c5R5898m z1t&dYZS{Nc#Q{i~1j;N;1ssXw1$iO#uh-Ord#*0}cAJ~WzMePYB8C?G!o@KsRFvCk!SXfb zoD-LZ=C*8%pA=3FZ;z?GT=jaKad>5sj{3BzoO12hu~)Z#!9BWbdMGx2o(BAfdy*I= zWhK!v0^^J9p}`VV#0!FK1k9_95D7H`W5YRkF=(SPf-nMaq(6j}pr52tqavgBlp`JF z52hb&xxMh3xG#KAMoPsR^gQ)txRn?EbOcb)zCxWv#AoWxw=mP6+fmcPurD>If4 z3V)ds!c!y8c0hiQcuOIRfyfJ0y3jCko8XJr@0Uw}N?!snp?Lh-8LY;=M>hq+rvVb& z89V_I_%Z?`nqZ)_5h2JX)9RATlZRDOD@KMVH2 z#-f_{{e`;+yqwc+Y|Cr8JpJ07EE9SBnMD4O)$bya)MtETL=Cd|)@ok8ad2;}D`e6! zTNWQY+6dY$#`z(gE3fCkYRYwisLB9Wp-NyCDfIzk~xmpF3x4#+V9%U3WMJ=nw z+*_BGU3_5ItJrMv5AJxIsKo^in$=81nqrgLEf}acxdcG6ek_c_B0`;eP+!dK-9b?l zcTHL8%0)tl#d5;cOQ)`6P^d@5)kg9r#2M~vjZS7C(Ud838Yn5m(XmAJq`j#(>W=oY z+}qoKwNu%ihb9=#Mgy=jd-o%8$4i@q%l55%*Tt0k;a#J7uimt2wc#svEHGjzt)}?R z*-94IkWQWaJv#R4EKrDvcL6jloLkb}b3allmgl6>CWrRbd=fF-*eWPVAorv*26O?R z;l$-AlevRX0%dZM7Amw4cQ;u*WY?lPrU(TXAh9OI@!!19ZuLn!p1gXqg%cQ!46xuyJ}xP60NNyxXKK5dO%E1-SI*WK$wD#~+Y5 zOAa`atoabfKwATc;TupS^3g_zWcdkPycDyo-Sucp;4?f>mI@>HVQ^uaYbn82&uI<9mE4|K*Y24DuZOcE68h7sZK@rP>4h`&~?zBY_#Quwc zc(HkD+WyQJGArWx$^E>Lthxo^r$T~V%fpOP(t@E%Cd>iG`T;UR4ps#{EBY^L#w_28 z26QQ%Qym(+0OSQ&9}o->5o^sr=* zmW=XZQK3kpih;}n+RcN^?G%%`tEhA0t~+@xThB#~f0((Nwl5vLL;Blh-C`Uz z<|~}Tq2eMA2Lc;(8&(@t4m27!J(fXq6ucT-e`p3ciijjL?-2MN3PMCIHK3!8XD0LDUv-L?Fjt75u$?b_d-S*88SyXbIfzlX6$xDO_ zw53-8P9&wX!m&`V5$PzK0LmP=2lS4>+-RW{p270MOUs!H;6WkD_T$kwrAoSN8!02c(5z};5}jT;*91VqD2`#dq;_>`A!u|_-0$7&FRJS-!x|-* z2vFt7LE;gOXK|BM$M8Qf6a)Ch75fmH7v2ik3$zg9)9G*!mtanV$*;n8`DsJn(xX3Z z^KqdPb<5rSc=xHt+kPl!SP8PV^l{JrHFwL(`IE2ivTx}RMP9nH%eHGGGk1;A5rf-H zMo%G(Sc)(Saz**QlYmEA#Vka=WPr+HR4fz(>?F_%pmC%G+;f~vkQWSH1$5=tLAn?J zQF9W(kYV#V@K}L>>YC}X*ZIdw;gd_%?mTkpW%sc2MRWZUyx9h`nChvtu*KH&{3H7k z!egJ`!{mx$@G_dm;fm`n~|$T zX#}`U4bN4_TcDVreUx0%gIWTZRICeNw~kOYJa-9{9A}p@PpRIGnq7(yIyAr`Ruh#P z4p)duWYh$Ju-}o~gG*RktJXLXdd98Ov`-@Zi}_VpGO0?kF)yQ?SL4j+&;{2SGp?E> zV{_<@H;kyWpGV%GtcyJhQ8mjHVfK~*eL8z|?Faxt!6Ib?4VNPBKteSDnu~=Kl>3?D z5!am|kp#UWd4)@Z`YItb$|R-Oa_>uEsF#a;3?34R)C~7o zEh;WtFf_4w#*;3`w)%W^=Chf$9@qqpmM*$n+Bt3PwcM87$JZZ=e-moSm~#DSyw;UI zT&ISojbDJcS}-X$)e z>Y!!B%EcMXubHet&CW1TRn0B{&=LxU?1Arw?Gup-_d5n!?o%ThfRTPozry=K)C1;F zI%0<0Ar7Th4sl#qI{0eUA+y)d*g5ah?H)a*Iv!r-nDdg)?KE}w46AVU+SO|phGjlV z%Gt3yhUI(|+a=Hc3|Am2aA4{bzKyMZUr#=1+WLf9*+Cj}p^?(Mq~xThQ0dl*nEBeEPc9-6|%IbRlOUACjv+)H$Wfhd?Z_wm6qfPmKLT9 zJgH~|O!W}Yf=P{bil1B@AoU16*#zLk^d1zzQV{SM)CQQ)aH9!ALK$g6?xn3IiRbsD zEoVxloZmC(L>+M)FnT>a8<3{g^ME(+(VQu*@Hxc4oN!jd*|aqTR#w zMArNXdR;ziL~4|xv8Gr89zrtAv5P1R^nq8y(@}B(lwxn>ArMVc5o;<7s4p}H7YR)) z@@Hgtyb3@%_5gJnxHeD3IY#OOHKpcSLS?YcOC8QTYT!FHc0T*>mr->)dj{-Z+&SCm zTC*2fIP#*^8GLft!Gl?2Qtv*TlWa)tvT)SUwWkRhB@Pya2Z4{Wn*%Gb++ljSG+xCD&>09A&TQ%1WldK{8c@Xo^7qo|f~fTDqI z!f${~bQB&}uKYE9VdVdY1(tNKdvMdmhHkZPwYJ~q*EU^6r=op+;OyPG*D^Q9+HnhJ zU(>5F4K)j?wu~;(*ynBQHLX?Oj{*|c26r4q7E6t7jnEU6hj~ogV`#pKm|$@U5Te@W z5R=qgxgV@1h)J|IoKv{kU`(kLVST~5kh=gcqj=-}x{3(K@5DL{aXj(LKQ?fGuL)@% z%^Q(t!=-{@Pg#aYK^q-Qwp$=T&HG<^7BYyRW# z2NP{>feH7w9+;-fFiQb#)boa^rf0{xJwkevM<~ZWWGENEW_2aVJ`5`giE%(w96F3^ zH?KmLzv5L4t^}bGW5Tv}s1{n3-SH zr&fzT4Vu>!!;33``&YINbOjuk@r+9k08*0Ye&UlD&z+8?k3Egsm2Qsm9dL`AoT3Q_ z2d_a%P1vrvxTzbB4MHmdhr(ruFc@NlG8a4^6@)@0h@Pi21dSw;6H^dcLK$x~;}bMh zA#vzMLL7JfvHZwg*V=`uo$0*(=gHL@23@$W))m>weYzkHFo$k zkI$G?uj_K#!DSZllNKIeFduELW#`tlDX+hK6QE1qGyC34^&@6d!$i)oC1HiFGx|WJ z4B;ipZbc;X>*a#ScLt?EY8v1JxmSn^;G@BVR0HDElu#4JASuykDlnsP@f)!}V)juT za6E7qk_pYM05V%-7r@PtxH~m%$dFG0_9aYNylemQyK(9D>qw}17 zUBkV%){d=bn|xrNI^ddA~W28x8p|VNKYJD4(8d1~gmZnw}Gk$nBJIe>@^* zVO)cz9o|3B9*np<=j_;Q)5!wB>iDdWegsu$WAXHEjinh>nmUChMZm^{DYJK{ zA`Ws5@$b`VfL}*=EzTjLdEtWiWwU80#|&pP^bI{MqB^b|^DR-_Vl<~v=MsexVHlP> zkQuF}W@~VU@%Q|l#yrD(VIt%=Lf=gCmncoZF+kzmKR7i#zRC5rOWB#fU8#5_;`tvx z8r5W${+Y@?%HNs3*7Eqt`f21==fqcr9lNncs$p+FVRXM0>eXylt2XzECs#!!GMOlW zc^z^BQ$3RZLr2aP0~IChGfNF=6d(}t8^kvZA$KDoPl^y!wTz|_k4o$bb`Q`oW-SAl z5xGs1OgsW=V}`@B`-^P3GXCJ+>7N`(sdVa0{|n0!L)zA}@$=?EwrSDj_nZ^=jeXa0 z^2&nvqi3v8WMHj2gEx*DO#aw-T<0 zhycf)b$@w~@l}c20b#qNCviP2u$|9l0T4TQ0|d(T!9^`8!=guQeDl)0^Wg9TM#FpcRuTFWynzCT(JZ8^OIHH}vhlx%Ks1@ZVKOwfMPV|O2wLtL6DJ2S;C?m|c z0H~TF=Sf&5XfPX)|0CmCQ+3p}0DLJFUlCLMe+qHD->=-aealtZ^=MGfjDwqg&($gA zUS(S?W7hl0iQ_G1PD@n$ojqAump3MF=MU@|D@0+|l+Rzt=yhMUv^PoQud8A=9%9+&Her^2jB3IOREkfu=O$R()v zXzHk)DG~5Qu-e>TyzcmK)m00EO80*>CQt;8FylK;}tQR3I;m9v&+;2{TepkpIIWg(Qt` z5$4;2*hwU-sJ=jE;qhq3uo5v7fpMOc{KELSYdttsh-g!EIvNuUX@yGdTDY)8*teer zAH3Y(q3eGKXRWbkwO2<@C~ICjQ(lf-_7=1ydCc%dLR;Q;@3>TK;u;dtjA`fy%thAm zJ)}KA1Il6-V!@>YQv&c{HKVf|fE(E;^uGkxz+6MuBeSRHLMF*|iFyHn1=uX;1=BtN zry!iEX9&CJKITXp_*>oaRr^hE6V%{V4WGN;Z+d`W-r^SwOuw;xF zlsM$g8f|CvmDz){JrqqcpZ3v@AlG2umbJWsYcQ{yd(;(u3Q=y4@xPWD6UwTeHeq+9|0IgE$9D@@8 zMmheq^Q#_gMY(acmRuIZ^sqIsY$9g z`OBz6aqTP3`;;%cNz-_XoL7%AQr^Ll?1woDdw!kG)a{PL`KO#h03rC1)p*|a+#9XhIpDY z4x~d&b~A*Dj}awC0u&f*YUt~!AOBRabZ{U}rTU5jwKDZXt~oz77G4;G9!{ zkQ939`4{E|I;=eOWyg{?_r)y>&KFqsT)v!pCb!ekBL~WuAkDUyPq$Cc+%v;hT;~s2 zM|BP!-_pgc@>7W?+4k{ZORkv8A9A!90(k(v?X>kQ20zkl5f*2HY<(5tS#krXpsz zegQ5(b4b@!UE?e14sZ?U8IT8PEG`SgM=~Ds|5SHwh~qmhqkZ2=`MJ+fm+2W^4|Ba} z^WE8+1^zCev1f(zm}Noe!H3ov3qvnI{V!_>^Wb@_*e98Ildbx#>~$@V9CyXUq&@5`01C~k|ngv@ng?@ zO^Vcw33)8Bvrey0dUKhFPJFmBi4Ds~eDov8g);(xol2Jp!rVvz^im4TB80RF{UFE{ zDSp%$n$4{WnAa=DQ#ppfCF>qOG_3;~X_P-8Jk(;J}XUfx-@7g#vYwF3U^an$tka5|R zXo$`joq;`$$OJK>^tG^9oH!^t&=XL!D(C_SFF>n-p)#FD#&{|{5(q)!z`M|DFk+S5 zIPe%(M4VjfP}HlQJpCNr&u#>98O~=sG|{xCUTN zNDwCK0t%gH{nJvxy+V}=B>7Q8B41?9V|UcHULUS%W}Q2N6)vdTrnc@ z$CO6?{m1m#(XdycgpsZ}-O3J5t2QqIThSppX~*^dlI>s4_$xCuCFjIg44hksXerQb zY;uqc#L7^+W4dBUA@ntnrC_P(O7NpFAB4IJQdLTN zZb^0v(i^Bng30NE3BLw~f&@Adm(+H`rxSe3t=*d%)y?v_TfbNK=Vn6Ot>PxrJABE) zsBPtb$lu(nb(4mzT2{ODbn&=tdM`Gn)QB&^S6ZQE!^X`T0y-k2rPd+q7E=IiE_Z<9 zddV5$TQZM<=QL{#0hLO*R6+#wG{gj6dhRyPL`p_9YKWa-yfADr)q;R5KCG#8k|N_R zbY+3fYjZigN8#i9Uw5uQFm~6a!uL1be%IcV8Jm9JO2|D7U%w|JlXJ)zy6D<;P*fWW zNBjjbFqB4wp$X)|BZ~ovm|OZ;+{HNKd@IY8NwgpdAV89WhT)}XRDoDE)rns{ybCNC ziMQaxN?ykX#Z4h81lt2(l45UgSVFEmwNo$FpVak>$Xg4W)-QPNtbK_6y`>{cJExo& zl+SYJ<>nM}WUQjb$Y~o^l=IeK_~=Ja1&AIHMea<%W*TD*(|mPg3L+4>x^RbbtwOCE zwFH_6&V67v*<%5Ssddm0LA?VCfvEUv4iNqgpfGAh>T~WahzP{Z6c)PTm?IS8_(Ra8 z1&`w|Ca$Y8>}>IGOC?nN=;;$%2!VN7ZBLz4z&U#7@}ic};V*&h}<&<9cTJ|Bp$_kOhy8@fx;~` zc@=jV7ahW8;tZ6~#57-yFIUbc_;!p;l!S=Zm}afC(M~V_XwflGhp@??{j&a>!@qo0 z`ON0N2J%y$dK{+1E#2YDEOHrFq6JuATJEQI< z6M?%AKpQa(^LC-8$qH1;pr(uC+(Fz(J4b{H*%7E7u`nunkggU{w5Dc=2L(`~v;#6m z@dZW7{Rgh#^2OTVsM=x47oN7s=y$5dpa#QMys{s~eJQM=bK1$>g)L*_)@_+%{}k&k z4Iels8|s4#;L^2{*2HJl6RScPJX7u{B@i{^;h{R^yu`l4o$g6MI{Q|moR#i|>V%ms zxXftva4|9XoMuO(6ZkAgl)wD5R6^ez_lPe+5p69B5UWo_?@w z&c4jezT)!JIZ1k!tR~gC0;R8E{05`@;Gf_USvxSAWW^vc<=tp>7F7p03D+5Y8YGTd zJIX5-6MZ(7hQ;U^aF#HLm6D5eE=mFB6jRq~&tuFIH%bjoWyR?M+DHKt2;_6-r&`UN z+ZX-0`@G@Bz7Bf7$-;Sud~%joxt&6XZm^0RN1YtB@kS=SaCPPS$Q!!)Y_3?_$qOut z>X_G{v>~K)09Yt4psCTffrQX^57EY0$V-t z<%_AAFJt7fjmxI$Wn|gNZIxmL@3u`^RHx{mNnw;67dRO=Y<53A0BsO8A4LRN2*xxf z5{4mhF^LdXL!m286XIviS#+5=W%2jXvtt)0AqF}XJ%NTxaoYgeD~pimXihEn?_az0 zJ613}|LO;y-`iNI^56e>2iuG#HH`^I`*z)Qb&gFOncMPc%GRSe``@PcAHV+gzIi;C zw?62jA3>J-E$Y`phlf-XLp8Epl!3xV(KWKPkUrs^rs`%s4bm*L@|7Nf(HsQUpOj3>4dTv3si7@#CQVErnWOeimjU7Nx#cG%MJN~gJ_{z*RZ>g?Z- zzH_jzN=6S0$Ah80Kla3q`?T8TtrELv`Mof`8dJ!DVbS(#EUgA~X&v0ZAEFu}XJ{A7 zbB{@j2Gh>}dKCmvOyfX)hKyNzo^G4Ym3>Z*5Q-dTx3JdeHV~`F}T*9bI7 z?Lhq=n4`!2h#CT}8|Ma-5vGmWbK?H4b>}i}pRatVP}+dlkHZSA&P?nub=irhHx+hP zOpPV^-q0i}MQcpY9mu*t&4RkVXc@mr?<;8mc=LKehwfQgs1AF(wg zBdIh%w1&b7DF7}&TxAmFz?*_DYBn^QB1!A0=cQQ%lVS*r2mSQ678j z&m7(Q(K^q$?QBVKCfM<8;uG{6s&D6~++GEHU=OTCMJ#xD#CDBjLHj$OMH5V!;Mswvq?HowP{=df^lZ#9G4a2K@VM3Yrn=7pV=DIRq1d z1(HxwI3ndUP%dI@pfL<_d_I2NvnlPWJztSBufwPR9jOvqxWy3r^LNRUFlUo-Pad~w zc4+3hT6tJ{fxoOUfjI~B$%@<7fe5>I%^4T=MmoWqu-MUIyr678j8a%x z_=1}5ryU`-5Rj97&gIS5qg~>b3vv9mYs1$w^9?@TZ1$tzIrmRYPggB zmmV)X$kb|m#793+FVt_@vQ69OuE${myGpbU-aIydrlL{1v44$6;k$C! zV31;ii#s9}7kr3GU`P`{Gr0;8je;p~O%NZVApzu((6@77VcHEulla-D?jK(Jyi$>c zNmJ((nB3*?+Qjm8Y$g!1$9^&HSQ%5jFnP=TJ6Q|-*vLIMwZN?bbb1>V5J3^d3=M{E zmy#79y~r0~-x9sjpH`x$gqff(G8Q%6G9VWyDhXeNoL6+pg@7YAc50${>JXfjYO zf;3R4NRV6!QjHscq&80eapO1TAHU`P*r|15_f~Uyxblx{jvH+}g~?j3OpbCgb4?TH z&D=s(;~V~{TQ@I-8$)ZeSpTdfU`lXmY9vWGa*2r(Jc&AoIs@cFsuCiPP>v9N0yZM8 zsGO3bjESEE17wrZ`JsoEJPzyz=)Q3$Tg5WKuJ8}OaTJ~(JbU%6W>3d zJn8(0%YTSmI%?4N$9WGe?rmQy&AqkLniuq9X;k{;%rAUH z;jAAHax1K-$W|3lFqh0q3ZNDzjEb6#Edz1@qM_)2egnSvIs<5-P?pfol799EH^J+ zjUVf2^5!!>{42=PzH`6+L7f2u$d+JZLVbhf2~>lSU}2Z1fFdYJA>_=L zF%}q{mM`Qn>I#}}T@T90=SZNVg@dIjK{O3ViEIYb1u7M&8Ln|`p!zR>_HeO9ezc|E zAC~q#oA0#Dh}ahA)%^F3wu8&O*e1n>l`$Ekh_G=H)82fP$dMPvNEDYX%*Dk}(YvvP zn9T@E%@eSoNQf7?0>=kF39|~@VC;5HmY_|iz~#$vrNJ-&37|9qE<{4g8Kt>pU{G+h zlu5h``VdU`C`<55Q$_)agg9P&d1qPOw4bI_YcsUS&+{!SnskUNUEp|TX<^oVtA>qt zH-%U84<=kdnfSK4FLi!wTDE9IBp9|xP?`%)UWqGF-(vL)ByyUQm2&{sG**dRIZyZPJ<}7^e=f4o+3WDM?91K^Fiy#?U1cyqp5u)DmJTBLuFQZwoUi zH4rEYI3U0RNCQ0+{4!gIh6{oN2P1Hik_1SI;9P`shf&_RWkcy}_2#Dh`81{ZtoUK; zrc7>i$(}hn{%mRy=d=+sKeTKOOV~t=hfb(63^bu3V7q0Xt}> z@puBAYZ5PAAkQW1Bak$FH*Ox|LEw*NHvlA+>>u3{%{H7J)IVZtWS3}3puZ3+N+7_Q zE_)TwHAp+3CH;&baJLD*mGa;HJm0z2|I7Q;>xYYG280{OKsH1=@a{;VE+eN;GX0vHFIgPtiK_QNJpBEc@JgK5zRO*oyldknYu2p|%Mrcd1-Pg5$$L+Xdv@=Q>gn391AFcn)f1nw`Vi_g@aosD z3wR-6Khj$gkbpf;l`R)2r-L82J(mx)h*h7=*lKzw(#?RXG;y4}1idw@6O<6i2u&^a zN%jOJI2C}11FRuLq;QmzD6aD5T<`V2J5FEf-r~T$xgU8wm{Fy9zG?;b=ZG}l1?H*e zm^1atAUdU-kk!7sv9aT9l`Z_2tsZj;?%2K?2^`!Ygqc!u5w|E#pYo6?1$Zg>l8iP& z<>$vcQp1F4Cy;xUbq0ru+{cv)5{92lL*g^lb0K)3!-Y!bAf#C1Ij|N30Wmy}tCPBR z^Y_~aCLAa-{!nqhFPBdkwleL{g752j@)-P=SpuYvJ;hzAN7^;^^5!*f5iZ?cdnIm- zUXD2%kB23`TaOI4-Nqhi`>3T>Y(#tsW@c zHJ_X8Q{odqThTtl=#aGuo&t5nHeui4Rs!;3q<|6G_(jIwJqmqTvh#_2v4!88Q~pG) znU1aOYqIFYE6X^i&m8PvnY=mdCh@@LQMO|GK>pyZzwptIAWM&41Nsc;OBpFSn;H!z zGtdXZdeARGc+e!E{vmnJu!6y@0`H=0Bsh?Qh9m^iObMcg`yh*%p#{p`L$riZn#e$w z6?tJ?n{*>krbf6@}qC;x9 zG64WNFu|2HlB7A3REHs-TVHS~)iUl1R5IK!gbN~6pa5l{-~GlnKl@@}_cNcZsQcyd zt~Hj(`W z=P-6bL^+c6fPSFA27_a#)3T`6;lfniZ{C&UYyfa0siM*$VFODwryeX8Nq6iJ$}~W1 zC@O+R@F!5)k(z`QU2$-zm$`PB1@PKGW{XqB)H5Ug{k=@}nDn5lX$^Be6`{?S4pptl{T9ad{P}z95_Jk>8DMM_8w`@#Ypguv<*@gqO`suz2joBT#LTqjQjxrXgVua1 zY6Z^VN&wpcip<4hG`i3p`ddk25Matc36g^5Pr&i`QG;YZTLixt&O5M+nr40c3<*s000E!mLv)E*+YPfYU!%)=oYnT5J7bUD3%sx;O zpd^(5gpdG9>Oh7}a&>}FqQrtU!UNA)sLZ6GN3{|j{?o5d{KumPugMtG#LL$?%DxSV zN=&rwq$B$lT+A9&dVThbL&pBGIed(V5tdyFPYCZqu^SL#CbNLWkVm3VZFv zwN!LSid}Nix6HHlKjsVu&h0c|e0TGm?A&{GGGd;b?_}V~Cxf*8w!W#v77qeAlW}ke2%{{PR z98{JobJnG20r4->ci!1&yDpVi!)HvDFQcHvAyDn28AsQL+KW;EWr!ch8k1LHY*_Tj z;WR#VeXcqSw;Xm+r*Ds}^$T@p?OS5Q!rnuKi(UK?OUXsP7a8;*TY z)i>XR4!t|%ExGpPUz=Co?wDbup&6HD&BkpB4%|0%-Y?GKjV%j~t-g`^{SW!8H>~$( z)9P)jjh?uOKXXNfH}(l{OfX%?p1pgQhp?v<1e~TIVJ)HH7kb6bj~S1cc*P&U*j9oM z0cJs&Oi#l2C1ln}cvXyf;zt0X09&DBgZM;Z$sa^$k*lN)gx*97dViRzq;`Mp_0O|+ z)uT?Q3Qs$Hc3?-(*Ryg~`MI5L-G5xdY+w#AiMx>n!B2aAf8_p`W{#|F+iqg@$}yYgEg@`@^m*tX^rXO^ayOEn%^P zN*J*_sn_SG#l8i(Sn+b_L?curi%~a@VL7NRA+2iH4DQDSDHZ}_R}pRinFz}U!T`e+ z(?jhG^^Bq23S2up}|S z{a}HF%&O8vFwzbV{?0jiX%oxHt$SzkcJj6MYTT$vwLAYUni`8{Z)p>Am$z-%q-jmm zZNzuur&PDa(gJcvyN9R}c?P0RzC7@?`4;rm(Vl4T7-)(T5s6b!0tcdMHjW<(4iO>X z!>)`4hG9Aj6q-6o zCMwd55Rs{MC6P63Cg>R5uqZh&Sqe$A8hHtTt2DsK`^5Rs{X#52_yC(J{z~bHV3p#i zYt#tI_3O(*G3QSgO?=oWdew!p9+hm~Hxs=ceCn39Z@IK)V-(^hyKLP}r&C_t5{tO_ z-l0Z*AIm68nQx{IaPBLVnL3h{AaIY~3%Lo4jFm*tG_({qB9byxC3p<+@`K}%4527? z15IWsE`Xi_*y$=kVqsA@#Xu@pVKS0ZSE{uyx@1_NA0|(kd%kl$?`hXZzI&qiS5Ix5 z-dtAKZcQs~04Fp&>OE*b8aW2c6*M2z;4y;A}>CX2+6x zWAyp(?72>*IAf?`NzoR$iETBdH#Jb6F&IxuBwjoDQ$6nkyR1+rli zV>d0dDzf5V9ejYiEN5}DV?)$|nYOE4N0zZigdDkW)BuB_{}i@h1i7K6q#vgQrrThh z0p(d(Nvsy$140gx192ErS`w}&6h9E<7HuY%2m2o!1En-n4#5!?Xhr@7O2IL~&5n)` zmC;Ok{v-(C7QOUr6W;?~1=Zs=&Z-*_q9Yc!IixFIxC76cj(4qCPjNQG&6 zk^Bd|nBg+*$wuK@Dq@=MU2|E;(PU+!v!M*2@qUpUro8tqpMh6b?aI74LcNlIP*Rke0W;gLEFoLOf+xCJ6(fZ zYt#s89MZf+UrCD*V2ZNB&PMM=$|f+ZJ4z^5&A5gT@}#p@=|#(qQ3QiGJr?VXKLlbh zpb3F(qkN<8;;07K#G%BDR!}pfHpGib1w}wadv265|2BD8^ZWP9%qhL*oRxAquEbKt@?kOVb@;W8#LZ7mV)D(I+Viv` zR*4YU2r(QSRurxn5TP^?&tXMG9ps0&3}Vq8S_Nv8Upd}Gq`gRqWEemW1*1Z5&(H(F zSzZk><{VS%!$>IrhJxT`<)H!bryu#b@1c~^Kg2!q8QF6ExR*ZF{wTQffcF#`3f!$3nyBHjbS}=sUP`_X$-Y=8!(_-r~XtUXkx0MsRI9!3X>Cx zZ9;Q`!c3Tg78%P)ATgx}Xb+%;dP%-6{R*RDp`I}vGu{^b6aChWgMRZxu@7SFP(riS*#M` zFi}v25OYQ~4dbq@j1HU7M8zLVtk2URNksz%z7*gIBJrwe(Da`&&VLox?yi5oSkES- zudn~kycKKO&aH)OfbfPd_|Ot@bJf%R_Gj_6RZ~Z8wQct}o{7);7#Rw#-MV%P=p51s zce|KIY=hi|I*qZnP~TI8@%7j-6uZiTF?vR56UaHW0eUi$!8xkY#&XCJimZHU)aMwe zL6PJf0UpOUp>Rqn0-9tGw#c@if)Od@{_Z~NgTEc?M@{rS{Kt;>Y>=^e)z2NCSiw2= z=y3xMoCr# zGX5;;pQ2Ouv>jFV{FV)W)$4W4f6Od}J7rD5%fZ|$?%vb$Wn~U zQOIg3<~p;=i3uV`l}jECCi*$0=2IIgKM#zX8l+5o)lbY<*$g*D1? zqr70ITjOWN6vo$A%|f;X5ulpW+q&@SkV%cI)fv*R+1zGTdtbM~}+0qLP!qu%0vU{C;%2`mx#>0d?4%+LGi+dX+!*LjiJbZ2un z|1OC+FA4{zEw5v7RLIBveDuT_$g@lUIBxy9aAWX_tumB-U2HbP?mG1E*{4Sje~39l z22NXx9){WwcmdT36|d~;3UWYPW-c8dYLvbNI&r%*az-&OxSv@;fK{0Eh^2;lP}7Lj z24q#(F^wTwV9^u6+^FVSef8@13&qd8lQ^wG<$5QZ#2w1(YQS;^;9%~8lk$#>?W@u=kKSwB z4lPZ$-Q%$QAYJeBJh4@A$F2MscA(`K-R*+-}Dy>M}0(itMLaodegJjgCG^kRTdCoWr zXb?J5RS?7@yGFE0yU+L~DFcydYog-Mjgm^$`L%bgf~l=YDsQqnBcBvG|P34)_gb2$cj#q5-oIO+sD(ZIv`Q>7^PrKCp)^pn7yu`4MqHV=r1|^LcGxekQ#)clF`M?0k*UKVf6W8=_MRaJ zjs2b_FU{7f2lWW{>g>gkM7kq7)AHcXz*=|{ z6oljayM`}emVw~G>L#KDoQa+t7?1rAoPy|uA|AD-GO&yJ_ z1?L);lO=I*dU|-4wd>t*e8&Wi3Zs@Bdaro|3HU#K9>IRk^T- zu|w{zA8Y?WFU~z&FxFN&svOpttojjVSPOT_MehFVz(7h%bN3@rCS&ni$uu`dd`ANDMW46;7K;An5W~qOLqnQ|F(S zE-$sKY*dqc$)!H=AD#D$f`xJx!wycV3DMS?Wy^(E*WXB_e2};>)tJI!MTIw8YcC40 zAlC-h^G=Z4>EZ^9=8L{E3^oGp5X1yW9H)fa_NZF#pfH0*Fr~Z~* z711UoJ*Wiri-H8&bK7fvCC7zX5kq(rnt-bn1QUS)?HP)H&H@+-{2la;5J?KO!ofhH zhW8edg3ZTZZOA2MCEbYXRHjY7B}4NaSo&izuipk1OzKv}9_PN55%-OGOh+caem*C& zM%%Q0#GyHQ7*lVw(wYOFzP?OQh59XHzfEV4U@Yy$t1Vmw^Ax$dSAX0b%RGdg75X&nxL~}Y( zzA>Pij#Okg{R^){LqZ6uIDUBN*1x~m`Z#gp0*CP*PMfeXrjz~IJZi=xhOSBaziPy( zJ5Msd|LZ-=M&&%4ZIFaZ!`2;obZ=K4EfL+G8=VQ_I|*~3P57P4YodH3jxz!hjI&wT z7XTJY9Ucem5cdaP5uk!2O9OT^&Vic6XcC=?yn+(CD4#TtV$vZ** zjc5;R6nYS9G>e8)Qpo(>=5d}N&-eYt)mnEeZE4YZ2mbuwM9wZIx6_E&r(c<}obZIC z$c6<^*%S{MZ1U`6=#NQPY;VJC!$Ozb zv6hvu;@U=5UhLmZv6tfci>&XNJ*H-7vSQDdB^R?)CmeUwk}>p{FdfXj3UBa zVJ(1OD8i6*5HPA(Uc@XgkQ!+QGD%s=2@D8Mg+TL00U7{a#)Vsv$I9KcQoMKlCV6Yr zXjkRvf#XFxf8QsmzyX3`8E1^V&$c4WSGSbI%TWW=QM&MEuDa$6Rjdo}AV zZT{rR^KKZ|{I-YAzlCj`_lvha?V}&~%4&FdwQk&y98|J`WRy|z6gVZzN|QLTiOYNl z9RiYVz7b8etEi|1)Y0T>@F+k=L{S3aVcjIj4jm#*vS55@m-f<#iTI|eq%)vq2yu+x zb28#%_uy~WIn3M8Xh+#0cZaksV9z=}*gk?2nWbY{y?=7dr8ii|l#w%sUC?1{W)Z}2 zm}#8}Y%RrnL<&PU3?A*}yhcVx<&V&dJ);{CfYBGJ0mz-cA!Hq;0OkWWj}#ZIB93CN z696QMa;a1Z-&3qPU5C|%bc@hk?htq4?iPoVff#77wRfm4{P$iP*yjwlv6jy2j77?xNC-~mFCcuM(H z8I^&-m!n#7u5(sQ+LY2Tq1A-%T%$jD&+^I0ho>*u*TyGTuCUg|doPY2`9^I#bZpu) zV-W7!YGePd0i6Q6bPpy1jV_Vni1GzEpY|9*iws-*=3z}xIvJTqD#3_S0Q5xyMFO_trYGk9D1Q=s-HJ2)0QzRoGtMILy5+M30 zC3zVfYjg~_dSLNUsnO?i<6uCdv!mYR{q#S#b$!Ag+fMWjba)=;d}wr3xq|0&k`lR{ z=4=f6z^o?64ShcOROY20x@=4O$+sY5x-c!3f;#$j?%9n?k~0@J3-ndVuCQ$AiiKJ* zRe}5?>>LC}808pRJNapqO$l-gN{p%%x|%pWte1-2r3zM%J^&2SkJO_=$kBUYB~;)H zeOSxnkN@!dsCn^Ie%ot&8(k<@uKoXOYAsBh{@mnsQ6JpD$$@GA4w)ZAA#1e#6Dg-eaw7#FL6aD=EmMymbt`U z@7{fCStg{fm*G~YPWMJ_J^VXhDWdbm=RhL3#>7h9%?_`~09-BuB5PRb;1%#)0Q_|6 z*dDMF;MNBnmn(|bBDXkkXlx{6pFlqtZ49~z3QCZV2T2-kq$M*S!NSVgysY=1%jy?C z(uUVrC2F=_${_uA{ywjwCp~5>kCw%HY-6z)f!F@u> zlG$|;Oosc80a93wweu0QFt{E|9)u5FJqHis339ZIU`ezoSV4g6;N#>wLv{n}MbicO zN?!>zLm5YbLZ!(caU3D$r!=LUtdrPw&Y{NBpFEDAdDOpYr&3KnO{r&|!^)g8_r~!H zO!7-y8I{kne@sf!;y265(?=JtH-@X5!R_9gz4d9IwBrX@S)P5_DLu-g2GGb?=ERH6 z0>);IX;L)Qm7-lJfFUJ~!z+NBABB;|TN6LRn^0{=Ub9=ie{*F ziZ~0{IxI+7B-R}}AEB$n$WS%Z4;qJ!&RuC|HOj6|D^w|H^VrxT@3xNfZ1_z=k4N@P z@7U~<3~W)CJT5MA_oX+V=JLU9J1^NfOeuG=Hj#^Wqb7};*8~oy!BsUwtPgh$onE6uM^$f$TE6zePCP6%>sD{! z^=GqI^=g_&!`bxdCwAJNDuAalC|3jaLw3VdQT6(oWXM5>EnZJWpc-$FoFcG%G!wiE z+tS0Jht~sR6q7=bRv`AoN5q|92{akV98nnlN&X>Q2{4B68Ms?rrV0cDO$%{6HfHqm zd`G%nKiRTQ!GZ^lOqlcW$nSEZOAb!cM_sZC*u&Spm^2~tus(4;>ao1$nE@u*AEp$g zJIXE|2T1`>LD|AYS@&Io?ulx){b3Y8a$>P)9O-Ny-ko!u!DAiWLRQ6(J6chIz^n z=8WvlmqUw|2I!ed-s}$$KF}E0Wn?2%&bY^M#WCO$4?cSe<%QTa4!Hm>pMm|m)++nU z$Oq%|*0|^UWLdEdn=B)9z7pmzr*GturcTUfIUkmMdTQn?nRk84=_z_80}7UM{@AYoBY`U+!pFhFHR6lm5vL=UrvPVkJP7N-VKf#D=$lRfs{!G( zDB$FYguf)q62%A}5F@!7&;xdmI)Gj#J$%-#=*G2vDPH!-oYlp9F79>b@v5BP-@z$< z_+y$G?f=z#k6t7n!-Qh?y?Qu$r|s&@vFk}tqZP(ygC$BejG}&+l;H|Y#xP8Z0t$8j zOXb+f%>@t$c*Hmq!29X>{`zoi zgv0kYe(w3{@#rf5RBM)IL`G$!T;p%8DQP0%&#$EoS(6P3-?VPY;57yWlLdggG-*}K zt7SW+IgBSkra}v51Y;mI#&NC)WDYAfFy;cmNm6{mtZ;1*$4q0zDk1IMuzjGyCD)uX z83LBK#Umn-28Tk*204jxosN|M5?AFnYc?(_8k4KVs7m#J>gG7QNtvNet!!|T3Fn_V z_P~m|o;h$igRvUsOW3_^?K&fJHft7;?dWw4Y2L1#SKFSo%L7Gl5wLt@Vdh2&P{j;D zhR2){I&dg@GUH*e(<$$h5CJMJT%Vfp$ELtJh~JU!m+ip>Ehcs0&H!LNAn4<}#G8M5!-6cJs=>{-UdoJ%-subRBI@WAS`wzJBI zjWJ}!pFV=jgIp-Z5S`Oea`wP)mxu3VkJDHQTtco#iGn_zutyE_7RyJqt5LJWJW|Kg z1WUJ0*#aoZup@jQ7N9-C?U{SZqv|apZ6{)jJ`+9^o;k#EQ1#zF+wzWEdj5IUlO|s2 zH0`tRzPM}8PDD)FW<~qfY(BkbXXfh}F>mz{V+gi+Txqmt<~+s<6#IY^6zlZ$pshfA zoW08WfI3CZjvpIGie|`JnPVBB5P8FEA)11;1$x$u4Oo5Zc`*`bWY|am&K`_1M7__d z<89GpVjSVWgcPRS`;I}E({6W6a%z9E0_B|uE zPc%kqn3+*Ms4n#&p$C)R4Jrk!2n5Uw3c>)vj^&2n(x#As`XU(tirGS)j2|1pC(tDo z7Ns&HvQXp6zy(FC7(x0m+4X2ZQNHk^u;nPDP~icRB5{9gXg|+oLd%A^Ja&ctUDcue z)*g#$Un#K7p+LSCExl~e%jVgbJQftT3>D*3dwr}Rh zRdsSH{{BWX2Xm6fYi|xcrYVKZTnq|tko7i~KqknwRjY>e>UcG8P+pE@LWXb@pg$KL z2F*&s0ZD}HRirLTLbO5^Xw-3_U_Qgf2D?ojEn!o@=dj3NuLy|&kHNzD7aABUII0pL z8E{sxD#}czUVk1r@bvEbe*aW;U*GjX(CO;$d|$-YgqcU!gIl+)#PNkoWA~o1HDRYC z?>yLJdnr&~CS|M*UkVNZ9D+PGjo8-N#Z&P8aHsi$lCa?X-8h6PYKaoSo2_w1RDn2a zlz^h#KAgcwD+s9J>8N@Mo5wnZ$_>GYrd`8V5U3yG_-M$adC@J~)oh(McHGSCACFj3 zzCm+)1^dEf$`n=L>&R6b_9Cmu`C6tv9XIT<4lY|TvvF{7bq2W%=+m{QTUUIJ^yWy` zxY&_>bHK7!z~>N;fd$ikaQs@650Fl=`vs!H)Tz_Q3WeUAdIrcwh&~7y6Hs_n3MUJY z=YvdMy)orPD0bd`#AfI474MyT)^q6SnITugPX6X$7vqrIX>P{Tk|xjc`0$;JAp7RM za_itQ{=lP{eKD^@1cfQk<(wfP2+R@mB)um0C5EV^0# z5=r$=ujqQkX@36?Y<*Xq8cpdZw};OA)H!X)9S6(M!*_RX&UVvpjR;*N=cBF9*T;PH zBgmy=$Ig{JdqJiGPmo{CQB1d`nXqX1U?(_XDan}y1bt=RlIW|+xZ-Gk$!9`i zfzBJ;h>ApEB8c=n(XLaglRASx1c?PypR7mJEQ|{@oZg&$1X`d_<{58~&xiU@W=#r=KvK6vn)-Q8hl62`py?!TP#we#+P zw9<~ReG%EKTijROJAQrA=H0B;tO4H5uq#`Oxo8--W&X%fL%B@sJWyi~Odou?Y{7Be z=uo)KkV~qrV|F46124AHC&&&}L@Ia^)rO|&An0bx!%AxU zlrm@F@nGucinYZBMT9z?ESFYs(z6~1x(8lPzgq39`0J}vn-^P~XQ)%IorCj@+|lsC zx+W>Hz7K)xr0uWBw*RR+8b!Ez{-<9*b z(V)Fk$ib;iGD;YVsRFFri&49*Eo|!iu}SRW!l&%jjQuH_Y+G5kMgIC{ZEyerogzFrIfvNW&|GX#;;y)^RUc|4k%NU02mIF@C`qrx{Q-!|1P{(u_AG(}m~aVl znOcPGKn7=4UIk_Ja-=ciy7q@3wW;4}$-2rX=60!c_i^U@<^@8HboV(p#|_@*V#2}e z*Nq6zKV}aeP9AO?vnIebqTm#JQj$E%w{F`BB%8<~^nmmv;Waa?byAWMiG7)-$_&{NCqDgxrZyu!!cpnj|C~&E3u&hC~C|S;{dB;mL zCf$9j=d6aUohx^*f2i0OS8Oo7d5@pidiN9aSq80Neu4L6UKxq=XFc4i_Y%_c)3;Mx zBMLnWJ`8F4DQnRPV1Ge1t#wAbq&MV^z7^O5Oh-d+&G(|;r>ycrmk!3j)rkKQGdA;C zVH|y-`R?F3o4zTt@tY+*F5l?l_mUWA z(ilx(V+&Zq$B&tRAivy=8*9SCCYai>P(=d4#+`;64Y3`!9s%13iexiK_<%$R$CD8; z=tb#EEGLXRj4CZ3c3BWB&4&P9gskFrCkUEUQ-W$Ywrp=aX$Bb^Mp#iJGel0<=_b?m0hW`%ZexfpBwT;a=nOO zqpP6(1LbkmAWMYVG}OKtY%3!MB{QM4q@6uXm+q+z-k(C0))}o1C*djBm@LX z5t0FzgxBQH3i{!P!~r`_HY|~Pd)jBUmWS58xo_uC+dXZ9Z)=`pL-dGI*fuhG@wt}~ z#j}et7oRnbDA`U7?Vv}idJR15x2so8Q(vH$v1NIogoMN@uOuvJD-Ka$DTK_BR91Xc z{5!WU#VrK95K#6DgCVFg0%?eeWYPF5_B9}uKe-2hjGR;Sh1%Xo*+ZRT-`>0N>cva7 zC(j=UI8LIG+Nwi%%`VlfIOfw_k|9j3>MbIJqFRB(NG*o+|;P@ zn0|nxoc@~uKH!8qR=w($^>xVPDr?*A21olG`m=7}Yz)Zw(S2O;RKs^W!*P2sBL73T5!XS;@+WQK%FkFTsa{@`cZFk-UwwU5>BHr zTs0b)T3a$rt4)A=0HX$~JIS_yudph!eTcq5u8k;@pi!_n#HJi!=s^{Yg;)a4Es$pd zw4xwC;C6L%k!dGBAAKs~*T25&Rb^wv@5UAzmsf(A8-3lQ*wQX3QCl1=!=5}l$D|Z{ z5!8gE=Z|V;N>f}2{Lc>haelkKegwPu_VMo9%ayEVA6dunENh4X=@5_xc(OIPNxCdP zFYS|tr_}Ef_3fslMMa13(z=SLRShdVltT;1L*(&p|C&wOc?;nQ<>?-;(@=}FEjdUYJn z`pqwPJeq}cYh2B9)K?S4EMeY!)7Lr-GFDa;5 z&KfW4=Y^CHO$HqROeX3+2Ib&|rb2*wA|?#wo)HX4AYG%&la^=3>)a>o^_5XPG zeXD2hpI>Hgsn~iiyNrn#Z(bQU9Qlj=YhOC!X?B6gL!~(7Ge&ORI|O#e8qHuODmK79 z=r^88CTX1XO4h?(r9m6AiKv1DC#$7=fYbD@5+AA__KXZ z5!uBfUXLgYGdVc#z73v{GUkS(<$7A&l?nEh_SVOnlPB1oNMISiYjuI5ixf1$`(f?j za^XTl?hV~y3}=&Ki36X23c^kxFd2D_3>M5Au@5zcH++lKrl3u<$6UecuaV9WL8qEd zZ7MXAkf=(u4HOtmR8;%$?upnJ?R?xGCpQclc`3%%snUfTU)qDq!}qTwisMPntCq+k zX}Ksb3bzjtXU?Y^3XJ??w1AYfe+|EeHE1_kFRXub48(4sW5<=xb%l}~;ExS~4Z$kF zfMn6sEb3>#T=lTvf8ggJ$xM2p;*)(*^BRa5L*0+oP9iPzb&xesOg<1Wb$Tv-^4awY zU$~sBa5HjfrzOw!Rya{?cix$07TnX0#ee0Z#bkN5_SDwg{JSl4?6c>(+k8D+TFS=t zu3}wqf}7kr_3PZNAEy8ZIBQ08*#!KPw@zW9Y*!Le=-&V^B=1v0O;7-du6)ff-5B-Z z#SsS~-jlo?@CLXO4pwOcRH&#RV9mS`JYniZ7{pBiu6g{}=HNek>U1dK=KTDFX77a` z?cLtCiS#56&KoYLTGIt$HYP?Bgl5-J$6sBsV2@UuRm5QJAyRhz8jKW&)|lH_IVVVU z0Q|{z7Ci%4jxxcO{Z9P4a@&A#jKdDJNuVL;F(xK353VurGPa2)r+}QXkk5*@C=c#S z0S@gdY?=~_0$6V>)M-}9L#6iaey`rL`SpWq{#ZI9OPGmZe)%N%mmZGIZPS{wrPO{JQGS*d=}6ze8U1;%tDroWJNp> z8$z>3)dv7Y1Hw;!g;*B|GJMsjFDc5I5$cUnmY$BKO1lK8BmeZh3qO5iY4m#5-_?(9 zpZr78OsAn|g9~3p4$d2||7xDvHzp*%;6Vy+oRo}p*+!oHjo@;Rrd*WtQs|~3T!z8N z{R|O?lmyHSh8`w{4-Z6x3|o_Xs24SPo#0@D=O@O7J&jSHv?1alsL+8Ezz~821(IJt z*T<2~(Z|djMDPToq0>V5i+oAh1pIet@CKYcI_#4-%S>A{x>VIp$(3u4Kl;^m8*gUb z_lZa6S*^X98RPCP`yUtn^r@SlDfFoT!s*_wO|`a-JXmVPghSdv?+XzG<^Xoa?@mC9 zR9J9mdDamh;9S@j=nhOI=$$C#!Jm-yQ3)f!iXN;Xu<#L_}6YbZtPw&oM@QCx( zQK-swK?Me=;Yy-0y9duC@f(EBX(YXB1Bh3I2=Y~vujh|&25f`?QBuY@w_r7xhfbZV z5wH~ZRJMS*EHI&RMDn2E3U#{B#qG;ReNL87tPLe8gJjvMm*hQonv?A z&d_vH((LP0vdEApqC4O#AXM@Q>$daJ6|F%nX6ThThK? z9RTVjl2MQxY!_ z>`E>O07DvD=n4`p&;Zcn;-v)XV0#2o)#zpk1Wka@=e>wK0N>>t;FSTc$*92&k@k!T zeyO=M7#aI3k*Or_X)IA}-!0qjoc~}!#lWQ7^m=POYdyJ3Wvf|v>aTJ}!s}nx-XN{Uo8aJ=o;+Log$Ce99 zx0al9c_sNm2DgswYS8&{P(gXq*^=T)bw(o#2FD{xj|fT38U%eawhEFyuyZ1m5ck3H z)3QSVVu^*aWmY&Bt^!pQ`Yy>6a5ec16mX>Sv9;bEo*pc*K0;Nx^8kul2f7r^5?Th#Ae zp$Sg!H@VO;Ga}_b*TX!&uut^p2UHG z(7_}rj7odQaz1{2+O?OTJ`sgr%&csMm~QoljsVBbgm2;nMvc^;%TbVmEe@5SlLnot` zYk!#N0ws%4>ziupp56R9leh_qOwGt-B~R8p#zYdTQMn0FhYmqEg%XdfU;$aw(kR1V z)0D(n$pQpTm>`RkhzR095obVk1Oopcnqxd1j4hQv87GJ}WK__6jTfz-cy$e}^=rwt z8{Y5taLM@pyfJOOeNT2`QKFUl-#l@B%1e3SXVO#l855Q~uPrN+Hdv7tHb9_%zrcPS zdvv4SV$(wxbGM)u8Chw2V)D9-W^mwtRo`^J70W9i}8_r!j>%=61DeG;G|qHiip{cuB2r1w&`4A*d!U z9E6K`;0&V>v8RYMVH-FpX;851Fy4w!4IjYeuKDzscnPE=x(??B$~WYcXtnS!@rQAt zqF_+&mh7(>#dS*#?D znKojymYS*b8C!6SIpM6}5>S)Gbs(GofOchvv)FhKNE2mIQVt+-BJ{m7z$xSrff7v^ zNjAQSm1)i-xPXvlyK^g|m*Jq5*l*SGkhbH#q}nN@4v z^)-LKzV`Zy)Awvtj(M)7u8S*Ymi$+;?rkD;)Bao=`uyAi(l>4Bj7P`LK^^=1b=Ov* zy+Qz{H$nG8_vMOe8VD6#2E4zbhUDUB<9IT{g{WQ78O~n0l{6gy(gszBUIXD6N*^#N zPlk43vLx>dstsPK5)DlN6x*ZU7X0kq^_3DOi-iq$JoZZCQAOWuV(TrMsxYU02<#$Z9AEW7BZ5StxtiTv}{g zjI=V$kpgjNmjj)m>sLM+6@koSlxV<#fT$>$5zr73uK-CU5>kIcxQ9BW%*k=v*!j!{ zFV_41UAt}EiGNQGnQ6b+X6{*P?U%1CJhqi=5_7Q)yghbW;mNON8lQ|xluT+{Af>oB z)gm&Fow07bE}jUBi~?#iS-^1tU5QM?d8= z5*v8M@}&9Dg;V@MX5j2)=iEu!<9WBt!r{f=O+VB6^VEM&KWtM#4`8-pG4q~qvPnm} zYG2GT3lo;?A7Z;QCvj!wpUI`6me7xIpy3}L9XO$|A_GOhv$gb(D^>b$=C}oC?izxrB>g2g~S9`*LsCtNT_?Ui{>Stwrg>3h)dIn- z0wyI%M#w;$#gl>OLG^IKLFdx(BHzFYqKRARK>c_~$}xeOxXTs9MRpbOFmNd_()@q2 z9u;GOC?2pHES-Ag&(STTZao?7l>Btdmfwn1trGoqHNV0O$L`!GEO*#lFxKFz=QjUSrIcR_ zuNP|~I{&<5N=tFlN;4CHWG7aqEwpDl796q&P9oB?EnE+Rnqf zZVPF9xTPVyX{#`#@f?Vipd3&)kn0Fuhs2NxR7OX_hon6MZ)>;8tq zP%u7A46__Dj+y{Qv>*aIC=PY?jIwOk_gZS=j9QBwK3%l%S=O=KF;SIlwWE1&WW}E- zXGFNp*|K_{Eq8jz{jj7Jw%&@09ty}zb*w+2ZtrIOJ9bd@tEmy*Xncg?GZd8*76_l( z6&zS?uWA!rfh6dGVxi!v1eK2XDu}C6nQvHoNot3-0axV@6L>Ge1xN+Q4>t*uC82gJ z@hI_$?<_9&;iJF4nlR;H-?URN+FoqtV~<0Go!Loozj4}YmPt#KSEs&Q+z(DlT$0L3 z)keS6UO$38I(F;WykGC&x_ArtmZ86ay~rEDk;(=Ej-yQB*aQ#GOa2^u6XhRl|Gawn;(s<h zFVoi!{>;Uwg!7wU2j|#z`$%q9(Rg`z_&!qk?2D7N`_ncU`Fz%zt6%}?Ub{`h231?K zsx)LCswgmsBADv~Tt#Fe%qI3ubgblRny<)1whn3+U<^(#t`ao+tUCHI+C@#GK*NPJ z7*_@_iHb~;2h2Ij?E(qc;M6XAzUuu;`6qX;L}y2)Z`u0$UGEFS?ah=+!sam6NSEN& z(K$L62np`%+lyY&D4Y1q2Hk>E6rhVfo=I_FMO@dEDT#v9~&679GGs{iV zO|W0hDB$?vs4@ssw0(Re+F@qNh}7laRi()3i%J8hxQbqW-;;xv*%aL8>@2(!;PYe< z0P2&21pg=PA22#-D~2ALFLYdNlad>q)A#M{);_-cgOA2OuA19&!OZ&hRn?0NBP*Kk z;K01hgi(19F!IcV_))eUuiGP^l=KMb)uU1$ukPU5Ah$#p1DaIg&;qIEv6yMh95#$b zV2E%-c@M+I0%i=B!g~SAM#lvt%HUuQV;T2BT9Eh&tDup@Osbp#U&Nw@?gL{F&V%&W zW~IxtI9k=EPwmI+CUrc2FXXf>F~K~FW0r3C#yGy_&dZ!mkgNGJcFedq<)EG=pXIU{ z54!pF>C}%SOBfD5To43ZhqNL*5YZNpr4%BRvjTxt>Jm>!vJ=x8{jl}wJ_kOA~7xV!Ql>P0}+=Xhb3Wz0njM3s}J<>zY){svpUs(TG8&E=RaKg@reCP z89G1K3Ib1EIphR6?dF3-?TcMzkX-piyZIo1!ohUijJZQc36M?b6zQturO2r(Eh)D$ zu(ptEfG(&W$YSwa2wVYF6nIX06G|UGKA0q}3A$;4VbqWiuk=EH03HuN z{>a=QmJVGz@$G705tIPn5D~JRQp(MhqFeDVjPqa~5g4A;FwMiE=O-+lLkE79x&_+- zB^kFVn}P*MYsjKwpd+O`V_f;eVER=%QYV5+aKUHfZi?IZ^OUovyQf92+VJ81W*@&O z40t&>PrRCD)#}f@`|QcRvM-&z$xBD_mswzDD$)WrOFq3-8Z9e^31pZYQR2Bdeo5|@ z4234dHvp#2SJrQKEJQq&6f{4*l&GLUqC=Euqh229MQ}W17ZVSVKw=1oZ`5D_bO0QB zp-$(9^d4EPT+MX1S-UfzZ&-4`{aW+8_P5Bo7h&IfVv;0ZfDAK072WZC@pM+`E!oHfZh?9m5WQw*a@qTFx$wPX<>9DC zUPjCnxdU{Hyg6)DVTJf04=Iv#gC5r`4c-IFY$U#?lbQxEv{`|5XXU7k| zG^59hTeDvO-Bv}KZ)EtTG^+vZ+>+R5`4w^2^)s1h#sRgWsO7+^ly}*HxuI{kv7$`!!GhsMk}}Hq?O4AAXKTok$1E z#eEs0IlT%K!3p=Wau=%I&9Cy!Ko02++=;{{L`-urK!m`u&aN}c%riVwIj3nF( zq?Zen+nwxoYDGMFlxd(N{`9$UDSAfEXX+YgVca>u5b&zvEnt?YyI@t|SXp;W4GMKy z+T`MYW_|pQSCIy94;?vgUHG$^7cR)TQ{b5#osX>FOY5$>Yth~%cdpw%)B0UAPhHV7 zoxCn~o9GwY-S5_~Z|@fMTmzZS!?K}~2jk_8=7mv!umA&5?Vy_gIYwKj@)%PQ=NvF3 zUJ#CD>STYOj^s+bF8l$s{df(P?~kQc z-Fp+tyzbe;NWP=HA*v=5AM)?e6_wdok^boeQ}+rQ^JO zGxBU?-px5@;J!1FRxzzn9hZilMHEE;&Oe4b1|*)s9)y^qiY^3*2x3mS3QA0bMG6em zs2_frla_=bRw8hn4hGe1nj#IVjGCFpz~;l8Mkp8jZ=p`4BH)JB3l;+ANbNFu$OH}JBhmgC0;&j-J<1&(BIaoh}PC33wFbe#*{ly9rVoH zF$}{%R?be)L~II6WSfK|BE;mi7;l0$3JWj635eh{BLNIfG^tKLs%eEO;THfFV(bL1 z2?!v64a^z9;Q;8#wCj3^f<<$KhGsiz}Jnh!qs$UN3C?{o+0=gE#6XrvuL=Iog zluxrD+qrn%LSwY2ao?*L3oakrKRC2wlK~-!KHwV=EF)o2awudW9!i!JCn~lm+9}>e z9)n8B$(g`m0N23YqLT#oqRm9XM^DAS)sQ($04)mR)}h2`vqY8QW#tc{R;F3m_g(zC zDzCg7ma%YWwU65zikqmSm+=Kwx7Dqs*2 zf<-8m$)5nJz=V#kgoJj)l7t9}ePFLkPELjhvk&-uh}o!@sqB@;DPt~|C0#OV9af*B z_ec_;y3pF?!Qi|VBfPNqyTAJlp1SSdmR;N5E_3BlMnY0s8(d-DnNg{8t#X!WsRy!m z$8+ZLuP+&hS}_$5T3j_@4cj@O+LBVb_&DM8yPmnd$ELs z_UY20TUTLUeESu2`{SX6ufrL@`X_jZ1_eZmqFy8yB><(DDqwIh3IlSKP*;G^lP!vv z4QyV^iMAP3QYsu6O;#6m0(K?_ya8DP6z9AWF{XP$+d02~^yQR#nM0573d)QvY;?tX z7~j*Z(B{OXFB@hrp-jEFlfTHOu@*I4Ectl15IUTxV3S0a)1i}uq^oHE=XD2oW=q=+O;37!EZ4&|{wX%938&~q}!qAkK93y90+V$LC?Ek_+~ zStYj3qGrErYBM_Ul_%AbY8LcoYfb4KK$0@*t~5seERd9v0Rb)uL5vE5Gi~% z&NoFNq?mQpk_6Oo{$X=UW|sC3W3pt98;7tw2z>F;_o2x zkXaCo0{=x}M#cryHqakO8b}U;uexV_{w{mzWVOz9dtD1Zb+kj>hqa0gEqJv!I4|2B zWpO#O`f5?j)MIf6Bl6zGs3W)cMd)2v3rj19YF?83^SDj0rBf=Ae}++qas|&S;!ixf z+;s>&VZFFNSXJEHNw2;B%Px=Yx$k)Yr}!&Ab?UXPdA59EJ)NWTjhM@?nT77%Sr6AF zzLY<;V^{99MB7OuRY!jGoXS%=H(3q2d|9W+IY5G8*om7#4UC=uT_cN>5(Ju!FPWtd zTIGwCgvu5D3BE6(C_?1%6|&&r9MD04oM=omh@G%U7&*KJh;Zr90$Cv0T^62+`%h?& zN5hss-`-#8`?e7!(u!@)`+7}8`^cuzRsqzEtx>b6q3kQeEo+yjXc|lY!<5E;1CAzd zJtPNfoNz|kBQmGZloC^cx7nzs;6HSAapfUC!68M+3!+F8+dvo*{ZZ@@PlI_KVyq6d%E* zK>|28IR1g2IB>ufkZf|nk>dsI3>435;*N&t7gISdOetjKhMP6@~*1Fc=PQ3sZIGc?Kfkt#t-+c#VOgt>cA37vSs!R50|AfY>N!kOYFz(RQ#7HNO^jF}?tVTgW%O z=qV2MI++zV;mx(1e*Vp~$F|vZ|5?;}x&46|bNE1M!}GK5>GR1X;hQJ_;?0M~D<8K2 zN7cGl-3oyrwJBefq(Z<2Isk14jzj<~GMIoujMffDU3d?blJIAcE;?=+I~Zv(&>m2N zR7EsG7&HjmR^ff#)~M435=A?hcLE+r!@bK)K87Q;6n?mMh7G}4Q>Dp zvgMMXizPzK2iWSt58u#Tg4vJ}V+MfK#x_+L6>CD{{mQhP?oXm$s z?`7UNDp-`iVRl5GoxAqw**&;>C#08{>98@g3*?v~D4D{7(F)vBiX{sq4UY4k!xdzg zvl1Scj}MrRV+Jo1X-kTxAz57_GYG5|-m_nq~(qK}CLWCjRC2}O!YgeRcwL=Vfh#!=7l2sVHgmaunfBK&NO5+MDL%Rym`)CUYn zmY`WP6iJLyLCQm*&OjW)e>c?WiFg0pj%7wIAN+IUVej4uo|PS#{ltC)q+E=}yYy(y zYnJGg7dtQ)nmZsj=T7pzAKK_|wAYVdkD5VMJJt(rTuswoz#;-Fv1fIJQUtit#{=xp z&f_;SgOKu#XIH!`5O3lx`(7D#M0<(lYaN+iU{%KGKx1)9dBB*GoaoCAv| zIPlY!XS2%A9P9SV%t2oLqTd_lq19*U@jpBzb#|lFDMx-b_2VN?+0E00Ji!}wXntO)Sm9@YxOeEFjrgJv;Z;}Kp@jTf|JoG zvx}k6(6M8dz{Vnj7^CN8r-0_?8b&Lo0)sLML`tkPelyqrQa>PQXtwbPv8h9ye*e2) z^H#S4|1HxxE9dPopKm?*@nJKcp}=)E^7(iSR+rDbYFYDW*6k7Y$I;3ucZUpB6_?+L z>UZ0x%(_q%6AwBHm88%EP#TEGq>QC#(v%)UN(wpdgS!%xS&A7-Ci$|_yrIWJ@CP%F z)R=pL2mw)q2&^D&`9Fg&pxDy56kM3H2$Cp;-j@S*!_#_BKGz0btv#;v1yBFtz0dXi z*-rEB;Cw6XGJJ=Mj&VtoBXaW)_2a{{rW=9`TMmFxYzVd~Ems~2d)@|GaN22-YXczw6ewR`)fI z2QJyW(x>g%;A-A<$IslKvavw9kr_KLdV_6MsT9wbx_dNl)UjKSt{ob?l0b{Dih-xJ zKD-hP-Z-iN0`RJkL#8rL`bzcDTy0dmf%M#P;@pIoC%nBNGssn92m~4u%=*-?WOgzo zo$>@b2#`A6HHbYWFO~SGYjf+>UioR|-;1vtv3<;=i~Ca>WEAEB9h@i4edc9S<m-BVPRjScp^bs@-W@nDiio`}C#N}cm@I_T>C~v@67}G2Y7V6Qe@5ao<%w= z`uDwK_LumP_(bb&4?B}_4HJU-S|;v_w(}rxM{o@*2gd|wjKQtgkrjicf$Lxx415sO zje?x~V`TBHfAVR8qLE+(f|-#UPQ3@8Lm@-(D8M^WC5*9!DrbZe6=MJ&dPU{od(z*0 z?bgVRJ5~ob@^<=c;2&A`A3AJfyp_RNb#L_2k$IIz!i;;PMp}_^qf;&oR>aK>Pf1zL zhK66Ho|TOSi8>Z)2A zbgx`_sLw*3PE1Yw{OO#K$KLBcy}!V9;*IXV*O^k-j7uU{W;d6_4J|F_W>4Kt-BGx3 z9X$EY6$5*ju>apW34b>PN8(^L*G}&)75nz9&^6eVt%;vQ&O(M8v85ICfrcFm0wQAG zfyU>Um52{=Vu29!%|M&PP;(37AAvVi-GHh_jj8{P(~b$GZJw zJV}9jJmzu-^UB+CZA#P{`;EPI_s9*)3&KgB!6AXY0s}2QUBOWi9MTveyP&_L6Vp^M z3wJq-gx7@TnUcyV$~kW^xtNzXbdU#0qrmA1|75<^By*)ZQz25Y6I5i(u4I{NejNZb z_Hg3evr3QOP{S zQkTbnk{gei(v7@CQ=^0{(hUthw6VfpyoozR=Sq#v76DSitp)fG@&cAj&n#St8Vf{# z3|<`GK>xr$+%AwR%%|nqfP+|m_!UGA7+!CNzW|^iH0F$hg%LM~sklX0glEi#$G2Cd zIZmk4ar+x9BL>*-n>h>rc8Q4$bFfT{y1ajr{l+)!LqM)WEE#!ohm%mk$l z?Ror-OU%X5MJ&;0hvyJrYY$4r?p=~@MA@2kBZg`Hc6P))dg-W9RJ z09IU$>?5W#Ac(=gMqjS`oui6hp`W5;_aH`;qF#yBM8wg#piV)Ag0x0)7@8ZV^rAq# zZOFkve_+kg`ILG;zGtzvJ(E3Z+^zpkiz5GgTKm&IHXX0|P!aoXv7M2-ZTRh%7dMT1}&UJg}O7$4=!h z-05)spSia?mkdjw?u8ODbqm1#vwqhLYBEg?O0Qq3x5jZ(9sD|X?n>So z>+_hgEoVQN6+Qz&*M@+tz0I_6$2n^eNc%wlr$0@^f@29vQUur6?RydjQcv@?j}A&S-GGE*4#+2|et(xLhJ7FdDu8Q}(l zmf~n&juPE7Bn|l@9BgDgRYX6>Sx-#564MzL1qQ}r4Vjqj>o@+!lJP$`_W7pota7m( zEv*f@EMKYY=zMhBX8hk8_cUhds^(!AX4Hnf?J`IgvWrK`Jrb@4^9qfIQS>$KIyN`-#XdvqZjpFeQaOmWIr70Zt7*O zWv_WSJg;*ZmK1w`c%hreDA}wO4dd-Ct`xt3oV);Eiyychcopb%5TGLo5GX|?>|^`r zDy93vk;A!7oCC2uRQc$Y`P_hYjO2lqWdsk=Xk1Qw380ZIMd%e)90C6TtQ2g6Z^f<* z{QZM*6XSN>*}kyb<*(A-EMf>`8)$M0Z-`LXoJEz*BYOAbowo&68Jp zx-(G&gph%*SXCHlM5?u6*HO$9vGuMB*QFq%=7QWb78zMDR7Bj26#Ga>5XNIT0x2SB zls?$V{DVt_>hY#S2;`Shq@r9VT?`t5zAenq{ zI=!FJpr^~u4iondiutuirTTwnXO%o;lm96x*3tRN_JsZ}E3RidS`IvzehY)ET?Lx` zC}*`Xw^F~;UO$4}D|85|)UyNmX4D+Ci<*tVqX4mR@t|wc@DCVoPGy9&rsoh;!WU@? zH8o-}pgrmrgbw})%XmjM1~E`Q%`Z(IPzABG{0`C#QbrVY%d!)s#^ylj2_H$2 zC+8n+X&`1rM&MzhLE8jrQmjJO^tO|_)$-f<{+ZfMj|{l&P_OWYadf`9I?(KI#-F@A zDN7A`hoRCgKMNSyN0)g%L*_O<-9482cST* z2QKl%CKocHNtY#0 z76%6BA9x^=A0?DYyT$!OF;23@+&hB?jQ(&^=B_#wyBzO+^pAtyi_0- zpi1V8;i;vEk(3v1S3*0$CX!d!?m)Cu59pY{3>3t`^l*~NHSdeWD3DKfnsfvUtA2Wa zpii5UFKQ(3ty1Fb^61|`Ze_n^Ca;)b^@XOSW@JDL+3o&m8)x5``u}j&rPk1j4{vrFu-3Ux+S$KsGeQm`Ie| z0lonwAeoSbZ5Ha(e#={F+n!dt{=C$;k4{wBGi&XUsS)->(S->!NP{0z+4690+RAkW z;Md!u#vC#xrR165+&kCp(x7t_S12p7KD5hRcv8kohovw?)&q`qqK2tC&5kS(We`E# zq=W*K0Wp)Y$~ndp(N3`3AhBr@h$y4sArF*>0)T*O6v+haa1fimv}N`Zujjdq9?$EQ z`SWLgd|T(sqRom;%4-75kO>i@tfII28(&(H&sN1MT&1O}r|5@|T7R{e%p2d8kqNk>s-*wJ`F53EKzp zXyohHy%Yav%4`HfY*p;E>|9ogAGNv$H8Uodasscq(T+$;g|rP*p&)oXh45`;@Mt@5 z2N380rbnzBcq*hd^beI8*fyR}8U)>VK^CM`K7T#DQ6}|=_T8rRJzTPWaLLq4^=8|* z@=4pIbmJSd3`x&jPb$qzv$GDJ+Y)PJA(}_h%!C48uv?2d4O>@r<$~gVBS;VTG6xcY z2<&0-dWpO_Z@7rLMT~_*kTqX6P?Ki=$ghShf*MWXw}AJ4h%>4EeL)7HW5o5r3ZZ=? zj)z~Rt!L@~;yc-W(VUM;MEsB$?HYJwUZ-R4=Ge=rXI>cgg-h1bxsH}C&qwV#_Ht`- zW7W(R$5fYCpQ%b4{dRl(2(|?F3vN-hMpIWVXUYcY!5~C5$gYbgXc+0;)@V zcvbuwnG;}-{C_1;VN_)MDkTk>sj?i{!-&W<$_k>J8UaxO`cW7iIzq@xf;>=+tiWzHc-gx11v%)x}V zkGG@<52K%Fr4hC40lY~;hQS9PIC)`gedUo)z{*mMM4?J09*!ypPHhkjv zFOJwdNUkUOyTn|b`-UYdb?K=M_O)<)=7<#=w5!ZF^$*X)?;82Vp4~MEB&Z=;8ivb& z)v^2l#i(#m^>P!4a-pO|h6Qw#x2q7f0+FdaVKRdHd-Q#Hk-2*mcm|e)I*|j77*3Ee zhPo0H1)he|0H{jx3&tfx-Hz~Wm6O@5#I@naT&u1~ocDac4NEeQh>TUIt)#@du>HI5 z=aCZQQbz8~Qn~f1`^D0)4V-K(>{YCw6vFdCM-KEtKg?~2HW{YThuRUzy`r1oj zK#(BKrhqU)Nq|5e%|iucqTx_Pexr1I09Zs7gb6{r1flZ6Il{{1iIgnV#yNZX$@&*k zimY5!{fjZ=bTxX=-Tw2BzP7=73El|5a&S!E5jT3&;{9W6cb{C9HVRd04bb39GFNa2 z;EbRV=3b{%mq~&a$(OA{eW>gc47Q$tSaHG@Z2%;UKt|w8CNub!i@rMCOXxr0e zA*rAo2iKC;6_^jb2eKP#LHc1}BYr`HD#)|N*F)?GO%>ND&&>3s0NN4vO}-OG4H_F1 z+4c16e&4sQ^|5FCVf$^rE%%J8N!m>czcX~r%iI3krU|E|-YQVUL-Dl_+d6>+k&Xkp zcJ0`=XKz>XPkd=8R4Rh_VekNMWv&zm84wsjhHxiVP{P2I(WRitA{7R`7Lq?rdBRhH z?}Cns3>>r){s;{MK{IGBk&6hK#{0%qPit~F`<;?ie_rD{|A*a8yq}F+H800^vaQQ9 zx5)83BTAV#%dwf`QW-{Vc8uxI=UQVR~y&)Pz z-Vk^xs06^6KgBK5CpmJgkAhJ|atYuuoPER~V^&1A!q6V{$%w+JzYvatlFMDGL)Xum5_xxV`p$>AtDtQi@i+Jnv}ckpiXG z^=X^V9nsU|-!mpFrf?VcW(`|4?b-wPx(2Y}5~aOBFAgk%w;B|zJZ&IVt+WN!0vNIm zyoh@ct0;6hM-mSQSiynEn<5%C00Salj-VS9*kFR>yV4HuH;9h#;%WXl^5H-3Zl4`# z-eyqnwmna0dEVv1D`{yKt<-M4l!-nx6Kqk$q28Cm=r9)6iqu{p9 zp|!z>$ev;>qnay!+C_~PaOIzl!qO8<6~K`JuV@S#(_J8vgxayCl-LAtr?F{}UC^23 zH7L*v2Q@-*Kry0HI1|Z{CkQD}9-g0O_l`eX()r`A4ykt>H#g|9e)K2b*dJd{mOit# zy(hMviMo<^{O-A)amC1{vFmmX1qj%Vk`29>_Cm?aRA4M&%nL!zkAPa@YK}K%1tr%uIzFGpUGUE8`O0;#FscMFK3W zYwo23QUBxkN{GHcc8&Ikl`CS$^V{w9BiOxpv#NEgwdKshC<%0k0RfT~;TIq=HbPgt zL&zXl=j?8Cf#EI&$Oe7YP&(EnTp2hW>yO2TM4K%J+C}a-eo8DbnrTigjrbc;1J!sC z3#|U@Rot(1-+Zgakl(sN{m$l@@ z(IwWTEvYBm+f?n*3%wWN?HZCvk|WO{J*s9R@jkflPtQ_girp0HNJVv z>xZ`w+-|J10!pKu3-5EyFCO=SW$@)wV_(7{ca6Mp5LA8YvmOGJrV3=YJ=RqDwFUzP7PY^D= zhDC^9 z`>z%qyy>ScZ+cGL-{4={=dWI;mgb!uduaXqSI%ZlWb%j|?lAQ3lku}{FT)6x`M-6>#apS&CR;gL7oa zj0YT}_-D-`K$J>$I)_ChZ~#-=T9)13e0pKt!)#4iwR2%X9fhTBjrwhy z)YND##drI-Qd%Hw=Bvk*gR>a82l)WqRUo1l^8xtla@TS1K?M=vNGt`fkwkNWc@!SJ zNuVGikJwj8*0`0Vvf${ZV`L5-)z##kqd%Fv_v_;IR=(eO;;a_!hYoD~j*ap$Z;-IW zsN&X3d_lz7BQM_|hc}!#dIXWP4J)bGuydDQZJ|Vb2+IP4M+zv_nx>Ha2Nd?M*=*_Qlnl%=>S;gsmCzq2>+hb*aX}UC$j(MR0 zEEdTjiDBm7%H+u}a@bL=&<%3ci?rf|&?G%N9^HpX0YaU+*KQvdeXYa5t7kG!Tpil$ zwE;&CoV4BSX4N}x=7zE+Pm;Lj`Gcsu;_CAJ#63~E0}E&6o5sSvz1mjjT_4T|#UpK0 zMOU&q4R}t&ZV=%S4+0m$-Ha-V+k+i16Csr@K3&OkG^2}6&M0QG=m0~}fFNnn{AC~R zMqI4`*Nmvf20=DBA~khQGSg)iPs`fl8%`hR{I(6*5plR`fHmCJJIa=8{P z=Lbh7@3n8;vvU)-8n5WKQU1>66^WPAk6_O}L4kezI#j?QP32By!MY=@6^$2V7y08F z@Xa<6nxKa=33?Q@2%=#TiEpuRH-HY)K$1qylOQz0d2BNBF*%cn88>N6Mub|%?7Mw2`+q18&Tn26 zk1Hgh2K?xG+`RVWz%kO9CMwZF(qQ2q;;wlEk({|BXp}gXAv5EbShAd zJOP0Z9LvZ)6>1C)8$hj3%dTN4)Gj2z`Xdfg>rCl`)i2bk=$=x|Gpkkdd^7x`;Cesw zsXyp)wv*+(&Lc{;UPw&T0PSPl%0)3WSoB9nJ*8%@RoyPy6 z9yaC(a)cQsIccVp6+*jY#lPs&!M3EDBpes}E8o71p?nKytpJXhSyz$Qi|v?qCo2O?zH0*f(W>j1v9 z#yE|+C|Ni{zTg_b=+MEDSAmet7;r!|x?lo&8U!GCIUre3WU(4yf98%VQ#9;!(Zdtd z%Y7MLYe{PFukRUjR=&u92~iUUdz%xYHZD$^H`88ZaANkIfirC-F(H)F7Z|I}t#eo9 zv=Tl;R|G>Z5}nEgUp`BzZ__fS*s7>G=90}COI3lb1MuN3PX4fqr33CNx1 zRguHTT=@f$Z{@^A9rWttUi6FbDz&zLQR7`Bgr`6yyzPO%i;+}uA^Gg}o%WLZDMJ^W z-U)7J){X{TRGL5mPD~Q^*b{7a6i-sLc@Y1^R)Fy&Tmz|nAQL{>8T1)sJ24;)#1zGf zKNT?)HfAeINlr0D3Cc4Evjmm^TA_5niwVxka_Y9ETG_->(cfJd_~jctC;iyx)Q_>t zw45B9TYC`)=kvIj&<0pyj@%31Z+{BkSv-Wl$klQ_`yceI8ucN}&cwWY00&g1t9Ai$ zpnwHGrS~OIh~9+WPs4I4?THw$p25ho;dRLPCA0_Yl@=6N66P5!f7Fa9a7a1lW+a-K zvx+|jEDf!PFQ)@#fD(94EiuT%~s1d{CG@!DLeyRP6(MgU<5M$lQkOCA<=?nLc$xWLBT@g?ZyrSHm zOrK@mo=o0|BN%N*Cq@9OQn%2BaoJ$>hEPG6Lr+F<2zMmiiUOb6?;sXrdyyu@i3mR` z7QR%Sq;;)B1mqFFNibkE!xei}{B-4m!TF=p?^gWlJ2WUu;dm zLyR!Qd8@6c_u`8e67o^+sF<~@gnC=gE~E1zkp^Qd5=mB*hz4E2y%(p{)J`wtfbq}q;{`j@PupW219Cs zkd(^&ZhQX4WGUZ%7&Fm6zz9K@a6a)KRAMqdn_3yH8v2|`$I24Xeu2FUq!}QrSfi%F zkSSA?=YZK7;8dPF9baG<$VX|u;D-t5qiAL+Vu7kikvuHdz0ZR&k-xr(|0*(M?SG!O z{(iM<;mgF)dFT8HYb%+SG;eMGu3%Wti)n{GKlaVf^KGrL*~-t3%#S=rMX9-VE22$}@0FGNVGBD%W^+`13#i$oMIBahHB+gIlgC zHsV@g(>S>b>nA m~C#FxV68&7QOQ<^@9pWn)l~%3zOW9Wc6*W`it7jZs871nLG# z#F$j{^+pUBl$4c1A&Qbhh8_fV8+a5!H&8MQPNRRh;$gX2XuK~*RDk8fVgb|v$m)$! z4^-kA7Tw;GTqUGu%T`Tm?KoQf#c#_?x=bycG!33QatJQR$KIBU_rjl%=294~TRVNq z6Q#Pe;WygzuV8m#89@j^BZxb|upv7mSgJB9A$R26r>OvWk>1(d7pSM{4}rWCLI6#w za1L%y5B#+JXD=Oe+#`X=5MhB;c+p&g6VoZv@*|dDrq|}R-p{kfg*WKiC3;hebNA?) zCC*5ilCSV)g89{`elGf9iMn?^{*wJgKjPl@eHUp<_=WcR5iEfQsy}p1NP7USWQ_n% z&;`$$!n%ZwmUt!zL;Q`vr)o?9CKNpd3#^%_T=ewAh@gO46p^nH3sMwo$T^2AE*H5C z0L;m%0d^@Lh!gE#r-QF`9a!^?n7}GUca=I-biyyk$J;Is6P-AD@GgYO+8jsAu5(xK z?t1w`Onx#bbytC{LfvSazZlY`Ub|LI?qmZK<-$WKW|RNGGbziFQwco~#%7KHlbwf< z6UGg1f;otrL8D&v`N6@!xd;^ltrKC#y~89HfD1A*B+I2e<^(`zZ^J}~Ps-*mP z<%M}=hy3_s;D}#savN=W2j^!8?^|a|&dYu>hi5V?;L{f)(xjd!AbfP^<>QJ)jDo$L zm}@FXtmQ`P8T~4$XMtQBEO^8Lw7xoa0p+Qocqo~d!SGo%L;+JUB3;8Pp(Hv=7WOyf z1pE&o69)OfpKvuo5BpIAFS%TKd0AQ|1v}dr-mU zYR2b1t}S{asdL|_0Vi)xwVk_W6SCsgoG;CzYTe^K2j=9xg4pz#v2$#TDKAY+ydo18 zpgCB>82XVg=pN((fe1zB4{-vR$ayR?KM)Hnf!R?Z5A-6bjk1YagA0OTcU1eV9H<|x zLg29|9OWwF%msDTd^K9>@L(%XTavJC+5LY;O` z`k`;?*KhS4{5&S7|D!9T?+yC7u?=)E#emayKCpi7k>ht|qMm)pxsj7_>DqB^2@`yj zsu^wv;|mvC?QbCeRAXI^1DF<$=9`A4`@BXWGc zj|8X8efqjf*w{m#SyG0CuS&>+AFn+a6`7ES1PjozG;P?pjqHGd9Fxo!mD36&8>bl> zD9ItHt^GLakt`aml>mff0?JiCTpb4e-zzMU5)QQmaQY>@qH^t|AFrDJime0xt3?c?f0r_;@PXl;-*9hTT0&f=tyJRvzSP5_T7^e%>6xV^w{Gg^A4-I zd+#S2_QrhYoDDR!G^)|Gep?bf5Z7Qf#$Lu`D0m;dA@Ek5wf@M@fEd(OSyLo5Nk!3( z$WZ}Ik$6EhqK8)&fX*Z6mLM;%ERBL9vH~#G2ctrk$DZwXGy+0_w10D-^<3sNvnqx8a+fvB$om5CJeB29EdRi zdAJ1$--ixG1&I|CK7lO{;%>edhVd!Wm-2*K3qKS09o;KcvPKV)AwzTtm9l&qzBGw+ z#5kfcXlQUY`7mBIfxj#)5mNT8cXEeT`g!V}Nn@hsU;K8UO*?2dwvW%ODq&tC*Jn?; z#+aU$&adZJQcoBYd(2lvA7a$N23YT2vr7lh22F5ma)=`5#}`iz%LY)+heGneOm%^i zZDEBV7`<0P!XVy&Y$s3>&~RteaK7T)Tv{q%H_MRq>q)nO&d|HLtJ6aUx<6(~c^Nf{7*qp==<16l8i3z#=6Iu4i;j+K)hrc7Ao`kAH1>_j8|C%M$b~1#0(#?#xl=Ht#)XUtncDTFzfAc$Om(B`Vdn=_x>+6!I6e6+i?Y-pa60ft^NWjHj55iu>1xJlf|Em|o-9n=XBSaAZ906M- z;S+~0Lx;F6c{_B7V0@G(09zU}Yz9KlUzp@bnMs-+eZw zLA$C(#Fz~aUV`{ZXyf$wr%MTBEZptR$eg+)f=Rpr81*BVb6Cx~>Rpm82_gkU!GVnx zgQtPS#hHoI5Wc{uqd1DG=jHGroB*XWbuuzR@jQa$9;k{@_I{_sSv6}PG`oU?dbGy5Q%waFnSuzm4x@_mx=3qQ#5 zhtn<^3HfFPGc6BcR6SYR58Y-3E^_pneEF;#H7RHda5N*qVNvmF;1JNGr)2QRapTBf?9#HAP5?+?KeN~K3}^_(_8Plz3PAF zr>yQd|8=w9E{nF`Lyb<7ie>oxgq7fPW@mVOLCg{ZmdiIV8%jqLm~T+CT8sMC+DRP9 zYv4I>?FjbeVwBFyl|(B-05t+xx1)MQU>&WSAm9@&M;2Bf;%B^-OqGx|R-PW}N#rO{ zBuvo(3Mcy?W(!0Bc-|i*WlZTe980@pZTR_IdZ6Xz(;Z#`Npbe~h!I?(;>t4fR?M2= zd0T(+gN5nC3aSZ8Lk8lv0=J?i0aJt*V4r}Zpr;4*z@oru3_XHQt0F(#Yz*r)tlg@4oBB7}BQ3;U-_I2>F20e@{21CGT(OkjGkracB9J(8@QmNoL zWMQ%V07+S{oW3a~Z|phoTeF0ZCjIrsoV7z%)vI@Er2Q*c@gxeqM+N(b1$6 zW8d06+%d+TvZ^R0jQg3Y`N$}VbaAD2Pm!p0auU& zk8-Qv(lf&P(cy4OA{tO*qRBR_FltFE#D%q5JN;Xt_J5Ck^y*uWPku3eQoy6OCgM}Q z&Ig8Z7b^O|eCiJgYO+r~U4h!S@LnFad?0_3tHY|31@AG0<@^Y?)NIhUdYuqzDqU`z z{q%^`jc79oa%3uvE6@&~7{9kNTTRYWo0oAV8kNo6z*)d{=c|A_p?F6Dh(4Q67aWD^ zmo#tY!bl!SQ@}&wO9^$FaC*~*c3=MCFzA!#OWW0b;oz~n|33R=m2@x@p@3AH`^Ha+ zzW1`m=Je*&sCx!+VCXbeUwPDOUbSXbkLL9aD-r=t5FAFZX%H6%Jq2O`+Ek*#_!Q99 zCU~M`e#GU}Pn3wte#7JI3HZW;QuC>0QQLE37e(4PzS#&vP;s5uBgrRGPu-I5zjG&h= zNa9n%TBSz|1b0B_L9K}4$#_G|fT5!&d{7Zk#QJ%o;{r+|;7VNwe}(bLpj8Q zDySHvV|f5dLK?V0N_<_yJ*?F8Z<15*Pke88?Vtg3Ua4&#eSLU-ce73zbnf~p<|!3k zbhC!X^A}lkW?b|V7M;N-h~VLtBQ_D=C^81ZW5^6;X>gnP_!A7r&4%TPD^7q25Wn8d8dSG>2Kpf-91Vf?@mn`#q z>ZGyh*NX|_3*!j_RKnoMywsE{JTf#M zz+{3UQKv|@M#uq`4ir#%1OwkzXrI%)^NiSk2mW32w~U&z$GI+<64qVoa7tA54JYZtr3~GN7%~71lFAa1G`z&mU`wxN$ zeT}v~1U&JBisdX1h0T(~de!AnJqO=%JDf%xcNyJ(&(klz8#;TKP3mM8^2s-%-?dg) z<90?~$a@L9mxrG_ua{tMjLmt4yeccVX7%egX(}>=3(XtUS7Q|rp-`6~!E&Ye;LV^U z1%WnCFCDF*LSQFMrqlc`cn}oVK@^1C_Y^4jK`F7&N04p7Mn@6}hl(f#JqV{9SA1r( zz3=pVcjMi6?;muV@M>7!I^ z;MANgT_B3G!zvAjOI8OkdJuC#spCv*KYSM(D)|EXld;oJSU>;P z6^mx9v_Gn1mu;rl%eE#N6m=||ZFUKa$)`VB1 z0CsOzzg4}awaK|a%|x~vu0;uJNk(Kw42iF}E9D!3*_5+H6a(@0GD)Md;VIbgR5&Oj zc#S%lBuFocIk>++48`d8=(Cc!0+bWW~n791XM zKp}2RBF=r8@CM)j0%jEROnp-Fv|v}>5H4RLV};0aW-D};b;wqM&BDFNw}5F}5kZ_M z$flTf;X^UMY}tE{YX)r{|9o=0j!{`OaP{$3=-O3nqq`#kaF0XJvoIr-*s3Ua|fS(b+-8Xvo_tEeEIl+DnCB?`vY6N7Tx&+M z(XqH!XjH3N+oqZdb1e)jcJ-QN3TRQN!L&iCi{itt}n zB-|FLV1mQzqxRCT%sk_0IUlw^F8bw{^6l5%TDQOlUPDbLp1 zpV8Adjfr2WcVoM2RQ8(~OE15W4xK?xsT)x|D18KKp4-!KE#rN~Hp9{3S)cWqhX&;vsM|AmzHFd4QpY>=Yv}z#_IqQyF7Fgea3TfXa;601urh7Zn-v zGm#95cB5!W_s>R6C|-8cKgQ&{&LjVuRCKbQ{>1J`&dDECpWbILN^;A0_nh#4o~g1t z$|b+%d@7=`5UMGl;0ht$p|U|?#`nzP06sc_892Obi8Y-TmQ`ebICYegGUyZXCe$w8 z9_l*}eiOQ*6?}V%=Zeicnryghj9S_VylOY=e=mav-KcT4vu~9>-|sM(U{q9TUCWJU& zlEOiKkY7WWQOaSFY|!X)4QREHFOc48voIilnJxekC<_MmK=$N*EEmK}f{i#l7W5Y^ zm$8lYGCF4Hd^Xl;MT7eV*&h#Rx_iX)5wkbzlB7z7*z;`n52iVn&lqZMhGzv-Hc+~8 z>clK%04zV_EWda{c9&#A5ySr)cNse_m}CTG20#?|Oi&?P<1UD8B@`j`I5F~7)YYh+ zpv^(5Vf7F@p_!9VB0yV(ylqK<5RX!H9uSknp>!Cl2}L-I;~J&?xS8i#cNw31WWtGo z)2@d1{p$Bi9dwO~8onMLywlLsJ3XViW=rlMGx${UZ1sq9tY~Xx`C0h&+axQ~D6mB;ufq zEgV!@vMnVh0UoY`E8zj*DR?)eJ^E^lhh4YYZMVs9_;0|&-h=L~aCq_MFZ*?`Mmwo{ znAE~FVD2FU&C{bxQxGodXULm=OOixP?j%3tEWdbCT0&>WUI7s%T?REI6g%omSFQ{n zk(`fZ4G5wYszyP=Ae~#FjDz8f8iPs`Rx#=lruVWkgw6o)SUl88DWZs=VZa-ML&n&S z8e1BoHuR8w5hHgsndRvC<1c$xcTOBOBB;jd5`7xc{<8<*pfVpib8Mr;WBq5jc>emU z{km-V-k1n}no?9L#kDV!;&cp27P-B z#QPSdF^V@zGf{7my8$ba32+FhR+J^FYAm2)M)`oENG=LF9+5m}jG-O%qZ?+}RFN#h zgv!m>h)x2_0t`Kfdek%I9GaZAyrd4jS3ElF^04PbgK1~~KHKPYBftDN6vj} ztAH}J{n+=BVty_>{N;ed|8(53-ofkBYaT-lTckA56>4&e42*Bxy7HN+_u1n$G^J+) z7F?}d((Il6;zX9Nq~YYrPpi@=SjsYQL?MXZ2>a39xK1)Ra%Vb;VLg7b^uQwf1BVfA zzA|n>C(8{)P0GBF8$%m`l@Tlpqyi9i0P{I{n3PZx!0rL75eq-M0@)4G#!aX$f7&jq zH8FI<(XG{gn-D+QcGccbd@8ae4UFeq?x(U=56|6QKnq>56bSO)a#LxgbuCW0cF+XF zF$q{m)0ifTyBgybDbsjUjNj>7C~jy1WN5@(mFWp+C7}U&3^4^KGXOF^D!Za#QNXwZ z{evHgfd-5ODmE@6gcmV{w~ez6Y0~$HoN4aK-z7JkcjtWGwqZIfMh$TRg~h1SR<5qA z35Z*B1}RE4hhBg6?KGrg>|=la@_j5uzGFzg?0$x9EgT)TjJM&oSm1^M0|M085(Nra z0A>Uzeqp2mmEn(w0jGp%)(OyjNn8K}pmBj|!ne<}@eeDQ}(sD4Cyc z)P2g&#(PW~*;L8P*4ZwoA3Oa1b*=sI-GaD9I4ElEhu=K%Dc+%^7sUqyNq}Z*m%)yc zhID5zPwj;@0jP^2_@@LAJ~O-d09mNK#D8Cn#~cU9be1r-$t9Rxi8Pr!iE}X|Rf;tW zG#?a~6x1Sulvw~hGa4cg0_q8YlOCMCF{OWAs{L;#uJ0c-xle;CQz!4MD9|!Aj=H?G zzB*^wnChJtUDh1mco@7sS}u4wCMi@2rM^eejuR9XOK`*)Bhq|9<={=w4pZl|vkB(8 z?CHW33fZQTT9|4u(!#}-O=ghO!1FOL;Atos*<68wk@>d=&KZPgP8WV(;IA;FsdK1I zVIX)JHF1pWIbeTwlOMM)yl=5!=+ythrl;#%$W>%4{_!zZWg)uK_$7s1B~RA0cj#j~ z`)+V^qL(){D#9p?&J+yp!+`)T;9F>uCO>{N;$@ zU^%JY(y5o-K>O}JIcO3+*&u{Sl=#~kG6E$Ob%5*_6ghz6(5Z?v@r!}=%?*J{58^LO zR(Svl0JJtT`~o58^6-pYDS#MO_VCJCP7ZBEMBtc|WKJtAbZ(tK=-Q1x|7`6$VOXy- zb`_CJ1LM5p``X2+$;Ho>QI)ArbMX1bz?2UhHJNjpceZhGu%}p&r8SV-_)6ili3b*Q z2VCz_iZF(!cLvH(C#ujvAWc)eK$%eXKT_qu?&e zsNo)wAJ>F7*kApb*F>M1gY$m)Dc8pN_>I~?08A<<;A3XVGGUebAmymY0hQwdIzSx>^BcwZ)8!Dg;(1V(nN`lYBY=o&cJVHUVV3~-)mG-<)#Y)bAP{ZI3 zA0nhND0yJ*K@(zHO`3<;L2MEtx>!MhZ2}NepD}aA$%AYBxyfhK^R_rPKX}rsO7Y=d zYd@QJ*i&Z?qcXgfC*S-|%^0sX1k46btwgq)fAeIlvU0aP)~d-vxzU3=*>+)a!b6Dz zy-ezPC_W5o6Jgzf8&ZVR9g@-Kk?Z(FZ_=+!!6V68fv&Fre`-{|lgciB$MInca4GH+e^ zcG}#lVe`}FMwfdbt0YxYho?p7!A^thY-Q7^i~<>rApa3gJ&y)&4c-LwEm~K&Q+zBQ z21u3C7AS?$1?oij-2_rPW4wP*V!|C{{)@WFoiB#G0r8e665k@aH)aH~8lCXu(ym?K z{Gg*$9$qG~KDBq9e9T}4k-yCBzxY@!b)$A~tfBN+S8iX5hW=d19&&cDBTz@ zQKBB?J5kM$?~!MEP{2^|GdpIq%7mY%qs^)|&ZyVb{8O`MJggh`bBn1Sr+z$jPcaf# z9!rh7553pX)rZ+>Hpk|MZY)b5QBjE}BP*m2e#DtSaPS#5z;=31Grnt-Fk)@T>F4!; zZ^Q6xC13?C6^dKbhibs37zfSkmC-VvaShKsz! zgo676{slU*_;8<|N9(Vg*|TbmZh5A*tJ;Un@Kd_0_b|!Bo846i|9sr`&`R*#@ry54 z>e-Je(^Q#oTlDI0XWz9?pTYP_2+K&6zbpY3<%4weWJGBsu_&?N3<*ZTkz+Y7Gk6#< z!b_*fhieQcMDR%#APY9hOCsA4>)8H+w1q9KfG$E`WH^Ce3yZc|m9%KIFRiG=MDx+M zUw*GWJ7e>+iucFB_{8>WKba=2&Zw#hd=Pc6e8*?<(w%c<$LD+7odwBLXt%-$#@CU| z2S87hLL&gm%~9j4mKis~O!`Gke1xk?Fi7MZtQcWn@*D6PDj-|hSM?A4{86E!3X0LE};XfSy* ze3J^+0;g5H>bU>Frdni=Kp-ndKr4~EqL0V#f)~Y96`y`+w~U>{ae=VF`=G}HKn6wv zc4guTw^$Y?Rgdc)}k8b-VX=x+x|_Sqow{N;EjW{PI&Wke<@? zYL4GZ=~engjO$SI(uO1*FV}p;$k7^G>7&IUsbkPaIt*_5Wd z9p()h^k--o0UyN)10o0xIj|XD7$!3#LvzHxx)p2+8~=U1 z9qU&aKjpT8dH+Q>XNET~>Zr>FV9kpfOaY z@Pg$+Y!)d2C}* z-MND*EVk~<-p%FLXT{>Ijmq^YFTQ|{lrU{>jeg(S3=1V?On^W3tR1 z6tFu2Gu%RAG>=bWL6!!SwcXT{T1=+~l78&;LOfq>S zAa)3%pcC@;7=0()%DnURb}O^s)ge8;UE}+3_^A+GBvVsn!2L@op(K)BnH%+>TnY6m z{`Ij#63EooQSbdgW;t=Pi^nvV@pucvqGy!@OfXs$kY7LwW{qYzr*XA$j$kTQRshJx zDj;FjcA#qn5qF11#+9KJR%Y8IC4QWN1WXc^KXLB(w~5gK5;ee2VeD*f^}~#m(6|?; z+${#JI%pSdaAU>YnsdtPnxUQgBbv`SGk1Z3$Q|b=73@rDUJeqK&cDfD@;K@>0l8B( zkD7kHT6O6}VF@$`Q3z{GG3%sdfm7*1p#~F=14J0mI+c;@%u2VMKR(|(!EwxgYrpe1 z9Gq-3Zga(R0W~$FKud$lNw~SPe2a47-VL*4i?WXUH5QYnP8dOAp2AlLG6TSYxx7RhFey~lEydd2olmrrm1x5SL%)2r7uKu1q zzh_ayo1*bpnzo)OBjRCwM@L)qun3RDannQbrNz_EOm=p%mw{FSpcx`CK}VLdFjIsBf?1Tz4*0}E z+=Rs;I3hv_&{BLk(D@_%AhP1?jM9!&C;Lm`yD$LvGTIn8(L1Qr-=xE>eob8;d#nm* z>=9qFb~iK*x;qB)C%Z zl8-^!F#{JnQ9>^TnN(k34u}E3Dd}GTuw{jt>;j{NVW!0hnLn6zGgR<0a<{mCxnchF z;rH4si(X~yU&WxQ*K&Q0z_zrj9n`IdZ=*^tmak}{<3IY|iYB5_%%0M+IYOtlgF5#a z+!I<64WmdIJwOBDNJ*6_6H^>esNaz&iK~w?9RYN}!Ij6s2tw*U(if%*>@Fj(K*NO) z#swqs!?s1Y!G0|lg~`tSgE0<=-^*yqZC8sQ42vXpytn`W zPmiHVDP6QNzsw72S<%DLd@(=oDPx|m%bhr7&I2`-QWhkg?;L6*TNxBLQK+d5cS&G4 zrFy`{gGvNV-pYbf1kxktNqEAf2%cXS{zBrU55&C#G8>~TUJDP*jbRQc6Cf8-gMZNt zd#}tpkJ4=>yRW|Y-#GiE?g_egp%xx0G&J1vnVW9Uz424n)=^RWX4it96 z96}5j8SntEQa`}};rj3hJRGnv#3)D;)E!UbHoLptc@;4=dPT2e%RRk1|N3i;zF6RL z?g8z_-;2H%g8a)+-+|eObROJs8y*;!Y;h%ooI-D_kv$DZNM<8fP8ld}UF)r~( zQXo`qf)#QNA#-q-WpO8JGZsjSeq3TOJFS7GnG>`DM-aDNFm1#=n7+axqPxX}0KEX~ z4M!K>s9ui)o8~rAF*~2v8y^8!>%SfUs5^HAx>k!?t<3_|MM4V( zd>A3X_2B)uBg!TrNb@JU4JNq=;TW`)Nd$Z)&z<($QpWnAS-%t#6XH=1aC#KMC2Mw-2mkfpaP2` zBZ1jS#S2G^#+Hd8ae)U0BeG;YkrfCkGiWe77Vh9Qh#fM`Ana(`*2bnTgSvM!GhQ;c zdi#t2-QVBo?Z~}4N?oUc;t&2}!SZTqguVP`#S2EYdVTnfw8dxjXwNzVI?v(3|2ldm zVLUTr<)-5=ASN*`Nc;dqtxy3_kI(>7v=BCh{f}`S-2+bb!^GBu)#MPelmP?5iY}1C z#76KqYIz8g_{Dh{wH~{&DCO7F z>yEU@Y1}8VdAs34H>>K<$IhWonYJmQkMt4OmV`g4w9YeY>+Q$>Ewn9!x##4`!>3^p zhTS@rW#kB`C4B!pfeby_mI~dEum$%*t$Z0TL02I8QgXqt5hoJCe|deRYZqb=LJe>P zN+}y_ES|VvqGQ0}24goHT5ViHyA0}bHs;-Gc=>f|0c^rXqosIIybBohQf<2h^2B4OCGqPk{V!Rv_Pvip1X_^vg@lA`6e zoMY~Uu&sbLfuSU=8`@_aLD-$BEbgUhgCm386F?s$FR1RVU5Q7+yCCo|_ye;L1sM}q zYJ1U+F_<*#u;gM&g7E>l}sGzqbh3(wrs%jlO{QPt9iJ=}k`r_HXLeTKT; z8XfSL4(L!D>%|Xm*D_67dZUhJYhYXoq#t#bS(@7O;1d`il3)w;19UuW-N&=B=$;t%xIj5ayNV>$(O+SIpeH^@B)C})I(&h|}(S(bYANdVi3xpX`ri*w99VSF1 zz;Zqi1_^3)g=CIyP!JlJuv~vIcr<0)d&x13+F;M&V!{efi3&K6@X+`lGM&WJ10fxW zaCpM{_CI%Se&8S1DHB_r$gpfs+$TgOm+54sr? zSs5lQSpZTgog6?8T{ty6MF<2M8eBZ3X>nDk5Z7$ktq8YQ77C;9vBV7npIMHS;Gh_h zA%jG)OohUbRmSbmCIoXMVhd^k#(w6MQS@5#SaVyK{Qu5-tWM~Xm{*ZpW@votYM_J4 z0i1I%`v99E^(|~NU!-z5xKVU{TD1ZbW#u*rs8yMRF7pQCq5JCwSyB05_ zL*2fAbo=Mz(NEhyYv1ry&Tsv?{IN?v$ZhkUqit{_j%_&MTQ+gK9Jeysx5Be14X*s+ zX)$b+t!>{fUO1&ucUdbdJ4tOaHeihI27R6}4DBn_6yRvJ!{w$?Qwj-^dQ!?N1RXd6 zGmgS^7ibHT853(z323I!&>%NKFydN5y@j-4MG4%k`^MXUYQ}xG&2RTtX)_KNEgZ4B zs!nI32D!_}*U;h8_i2u-%a{evK@D=3i%%XtFCA`g8{baOx5Gh+%J~iAyH54jnpMQm zf2p>ysg*|%$20I)DyOy{R9&)i81Q+R;t36DtDSjx^5%v8j{1g)ibVd30I zLV~f%wtFaBUPj)o&iB&4i1f7lK}yYJnV*(R zOjm_#xwQqX0l2VYjl=*BK^8Mp*#am=?r4UkL4;9*Asn~f%V_Uu`{bYOe%&{)&gKs7 zyo-AOFXxh%KEXdJrMRbxm1MuZJrCWI`t7gGjGZ;Fg$j@;=SS1Sp@&l+Cr7NrNF9hn zSY+Fp08CO~!zEA_ymsnVB`e5egPst%6>?-k+2Pm(wLHl0!DxzN*pMKPy!W=nF|^J5ARfm z{S&I4nsL`X;kzHN=Ki$cZGrA-B%K%-=cI*IGfm2TSXXoOc+zbQR4P#f&YkzY9#1*X z&p3yt-mU9tIeL`KST`>QOhgpu>y%>5l&B`fMweM9B^oyvJP7EcT*(U-0u`PFL_Z>8 zY+egpEcF@loHiiZa0zV0$%>OIgh0fOfX0ZlsAlK_Y=~2bC;c<1*W|t}pSg`$ALW&J zd)dJ$U+PESee0I?QCYCppN8-KK=k$7mbOcYzS>vB_^F%+tLZYdM~}|ksFF$0;(QOz zsG-ZH2ZylCy}>e@@)5%>EH8LRL|-cmdZ>tD&4^=)n+H>y*1Tc%`Jns}*Ea#V;ARp6 zCF_7zK!`=iMUw&nRdULG9B7v0~k(BRWJyJ#n*F?Iq!^6nTK)<7nf6|pNYVZv>cko*+%XInL0t~v;X9+pFGwlDP{ln!*ZK%NJa9$$27*wN`LYw!$G}pg{w;r@3dC z$!wk%NHfHZ!h{TyJ3xK{Ig>8pqL)$j_g|JI{=HhWp`CrzeIK=IZ*=9ekMzgS8+Q3O zRGC8C!;VHKRZjH}5BqIM(xt~qqq4>tjgZNSrI4OEdhlrgx3~icGC?EIVqFcIBITu49@8gwG8b=JiN-$JMevFE(U|iZo`V9ZMuF>er3Fc}L?<1lh2RnwY7c;O5w@e1=5x^!9kMe2i_ zkKd^rDM;DaS|ROYP|H?4`7Z{0vQrAs3#0{9gDTPj2tLU-}%;F)!7bXI3@N9Puo*mZLoDu&ykvmNt6eR!#CD*@3VXmK-uNKwDTVqk%`nX>=iWx~OjMba5*5CVXV&x-t;ch~qtYy%)Cd4aULV@NF)WAmp1E$tSx3r{`9dn2B)09SUDF{}cp6lplsF29XKHK~LinM6d(!_%<% z03QtAJvj+JgcS%_z5aQ@XA)LqHfi8=?beQ0;V)`*`>YZM93PAMf((3?ZjDb~QifS< zjClR*EqW2fyoX;|0D(%c0|%$5J53hpf6{ngD8{# z!Y>ffs7R;9u!9HXxloDl>6z}Zfr50xmm<#KT#=(=HkV}W>u+`^dt_|qXA$ z!FK9(Pr4iQv1!beh%Yq9wr-ES+DsnGFH~aOc-ATNH^t%#x7}d~FraD> z-ni$2U9di4K=7C)3+}XBk)5$7`^l)8f4N`Xr+>kZW<6-GCh=!C(}Kdvl0^8tU60>e ze8Ylag&3pcJB!Y?Z3g!0+aKlwtUNv%upPBK4;PoM?_=23FRga6WHJSR=}u95jQO+{&Q#M z^A}_89{EHUdDVomwB$$`iR1Rlm;1}k&xS>L2lneQFS!imlW2|Cn5m;iFqLAJJ81z> z3)G9~#7&^2FoU@+7B9HAidLVxgG$jApAmf1AY)S#LM25#O7Sb^$KuRMwaCz&)`~d= zqfh`z`gB=24w-}g1YDDnBs`|M+Y|G?-)@ON`|oett5l2nS`QqenxEy@SY=(US`rzD zS)G0sS>zY`GX8!4K+Oov#A$#WC|dw|03E3eQHH`LM=t_WB}^Y+6ObOxhkC8KL)PRu zNI6K3D`)Cs`6NtQCrR9P1eT$kHRRv!uf8F=h%-3&h>gt;HDEgA=t~@_%p}3*!-4uxWn*^IuBM7?JT!j z);%M2q4j`D1+x{M$}rvl-mT1l033NmG{2ZQ!6c()7rC@76_x=5U^g%e-LDk=aw}Sk zQxVV-Y&i^@jTgWD-sZdNt4=-X(eah3Lyy0VyXd=e94Y)$Z4Q^snG;nBa=coczFC1B zwfrOw6_tqUGGIP@{NK~2o52&|jYEZ(LX{|m5ERV8Rg_1}Yvnyac~J015*kH0`JL~U zcgKuPs6Qyb317^6=nO%>F?oU`heIDzNa(M_h<%_*Oisj>{j&AHK})_3`{PLbG(+y{(6X)0d&ijHnELICtk_APf8}s{iO#HF zZY(p8W5=Kvi;dxdu$Ad7rB!RxdyfmBuj6b>L#KM{^l)$q~&k} zO;cJj1|cpY8YD$&l@lT`XKpNPLP981Pf7}ABT}TIa2Jgu-IP1#C>#=!HSViI0mUJk z0XZxVQt|qtUf~bNP8{{a?0&O;O{ zo%;6e_$Y9}M#UXh{XW-fkBFQTPxAq7dOP%nvqop2^rwuXs4hU&_&~yul*Kc!UC{Tc z5fn0(sMLW;7_q`0q>>grJx7DkBCC?zY|v`eDZKR0V!m-2VwvtgfPSlgK5u$ zYBhu0R2UeHt#CU-Fo4f06*g>Q1h!mIaf6VM+lp*RenGCIC`CD{06Z8Y33>fd(u=jh zM+!p+?+bLk)nHTI`<=p_^}&$0d)^qSyEkJm?^t-VG85)`{-s^Hx)dimXJrc~zj$i; z+xKqW%KF+#Iq)J+&bI|ahe z<}}=lJVeKWj|qoO)^KsJ83r5 zPiLQ8E@tIwA+DIwnE&lIb{ww0K;IM&t*#0&xPs z0vqTb2-+QwHsLY>LlMe=5n!4?UqZ-3U%@P$)Q(jGgKdV1tYe~za&$U=dUc`eg?e=+ z|J5$Ssd?9+A1~_KBsB*3#^h@)&@Nqk6BAhZu;qlUeHu{luqpMFs98+FXCeR7Nr=LM z4wg2Sb8ZE_RN^mAf8f-V=7t zN|GMU2E~?_QG=%!htF^Si^;cRgTMRs#ipPkku9(2id!`T2VQLRIUyG#`{g;03{cv*p&8WZJvdbrM#ha;Uiao-MmM_3zQ!7Re?MlL({~CwwMou=<1v#QH68 zCm zA3ve3ZxQzM{ec|t2e*Ty2t|}i9nB5&0iq}5dZ?~ow$$n%Jj!uog_U%4w5}|-5Kj}D z2*4DYMTicRTC$ggp&avcM!+m%p}uwQI{dFU{(mmbH?K8oK$6HJ_T5Y{nmks7iD zoF-KO0@8?M6F|R+Wf@2#)t6`sh};}LzI%ElQQwRIiAWMj{6M&^C?l=SM(!?(==^3* ze3w%zPA?mLrOBN0Iv$o}5(DFR@rQpjW%q^V^xFHc*Oeubg!r?s*69)nSA!pM<_}MJ zcVsq@4ouf*MMaw}4LH!hOr*H!_%k7=qx)g(s;$3Jr-`Q{V-2Pna`u3-kONUU$~G=$ zQj$O=*dnTj;=wH2nyEBAQ@SbydN9S8*lv3{pz}c66aRc^Z<%jx6kBam#cGlzZ$1Yw z2as0j-O58jEZNpiBPWje%#mHr@7)fIX^s(@^EZ9kWc*ZiEelQT$JR(1)Q{-k?aJk_{i7o~H03I5gH?h{>GF%GdB1K0`VWy-8zT&{I-;MGxs6z|0DWS81r|;9rLOIu7sQ8=rywAp4#q%8fLk^f z0IC5kK!PPwGsC5lrfL8i!m^x6It*)Byaz1Qir`fk`%CCC*CRbfHaPT4v*yvOyL~s; zyJD$gV4SqB_a zl&PmUm+>ATW6IP9o+2oxtm~ubN9D-LLBtJ%nI;js6Eg((F~C(&LxHPgXFW#?ARBBw z>wMQU_H8b#=^ymd#q13;F0G%_Yk)GSDW?G$7+((wC5Z^7eS7+rlFj-_#OKboJCX7} z$~#!qL_;bQiy;GhwYIgf?~k@X%x*zN@L!Vx61E9WG1SL&7t*nasjT`!7&b9R5I<~g zgIE9){IHNG-U3rduLETR<7}C~GZ}*XIdKZW@y!tVFp)WKV;cvJYu zYBn9+zTkoWG4sBVJ6{nYs5|L*lJ3QGR(|m`fdMNbE_fx_vq^;yM;1pAhPWs+p%C68O&+nfs^Dt5hUkr(%U63v~ z6=DIxE)}NFw2+c%sHSKLxh6c7EQmm}sbPbP%oRj!0rv!+k9^BiSu}|d8@TjnodviC zW9PN7AcCt-tyq#3ADFrAYGK_K50k&?6dil%>!!cx`b8mQ8W<<+TB5aHOuBq2vog|C z7+9RDAU#^Wkv0NL<4*-V*xuf;n^SKFmn1cCOp>Eqe3@#pM~sFZ$3kH0R*e0K0{fem7g~-5Df`F0|sS|P964Q13S$GL3K|rg~{YY8EE;ZKOT-~Jck6KfI zvA0Retv~g8!By9z}>*}FXY~oY<#eF*$c^3=YM|~JkaF@foCU_Ug z>7Xpcn*vZmibuc&u_zZa^49bdB5gyl$N^!*hFK(-I-MeZi>yr}n^2TNWCRMeMj^%4 zU0Qr7SvZCOtkCB};*`MqeY+_x-6lk)uYX*_&&%-OAMJxW)Tr2wK#|Q`-NZEM#als%#tajJGBr7GfzlSOCu~}{z7&rTn4t7g zrtoqY!V9y8%lX8m50QI*b zotL}L)n{Hq5Mo@z!N+NmS^%R-;4jF(coQj$&;cEA3K8T1E;QmRY(W?dpiziL(X+7lmW*|$b)O-$EXN5|}n{Myr^clW;b?r583K#7I`=OXdLr@0`l z3q6iRL9H+D{nYX*X_-7h%D^L%^Z_4>86hJqz6#)C31nb>GEajEFLgZf3)~k$@)>*3 zUGbC*oM#W~68YQblbhGMvHSMOqhJ3p@YR>gDz0ocFkUcwk#-O2rdJozAo!|BD{R5q zr3$TA*H>9MINA;A>*&zkj1h-mQLsp0uA^K-{SVU$g*JEsDXe`PJ zf2FT>`6z_H@+DB^yV;R2^Ca-6kw($zLZT3)UNylauPButMLPTho&>fZeJj!yU^t3q zA{2vuT4U^TtYFf~N(H72RE(lA0R%(&B51Jm02nd|(HR$jGvCes>7QP2AB|nu=bNYT z##2vxJjPW&8Ey?bp=Dg32}=xJUpDJpdgfkUs6<_CKk)w8R3RBsV&F2xl$H)0I0%&i zGzM|_KY0xgfg&`zCI;BmqpzK06 z27J+q&+l|T`PI>fbGH5ES$~JubvN0UQ0 zH9K_LR{zGoE;ypKm+-#xTxTzlnQ&9zUc#dLBn!vMZKrodjet!Ix&r2cwCv0f#0Zas zg6%MzU8z~cNI+N^vMfz;8x#e;Ec~Wjk-;DWJTf76evD5c&;vXI0VB7-Wq{EqNrqTJ zwE_k)@Zt5pqo$n?30^R!_=TCnv6IysoT+)KY)q&sdCt5@#A!-qa@TfxpHC$Ock493 z(YC*MciP+baU9Tb+p_yd75m%r%c4x`gCXD2ntXV92^BkCvbpdM;(ch zcLRfx5u$7h1^Cj&W57mGBDO{0Cj&Ap=F%v`n6rQ{K~UlDP^VFF(j61*gbt0#vG|%W zN~K{V9-p|m;m6{dldW18zF66(S#;^d;E)db5ajkZ+t7gKzpAOZ6`ZuUl1sv+y_+8| zkrUTx_RX{v3H!?Kj%3W1V<)+cnt+!-+zYa^JJtd=yeu3J7@trWBcR|m)AHiRMi`)a z;jUm*0?G}mRJc75RN$$&LFvG20}nHJ5MY_adLT2NTt=sirzw&t0;D7GGD`pF$h05G z6^WlTd0yuayKBYO27RFlFC5El!JZ`eG&T*tda0V`)`jEOj#s`$hf23bDqu@_Kv3S5 z3bwe78tFI+z9Pd%#<`dQiEj>5RECh`QCUF5iGsr=#0WWn7!LryaLf>qNKH(^g*^dy zBur)A3H~i`Wm_X`q}r5;5=$r;L_&mOy9f9^u>E7d-_PBxYvvL8Wy^>Dg|9;=Kic=k-HKWyzDVqIt1%oiwy}w*g(mDv#2G5gZjQU z4rJ0O?+qchfELz}&=l?|OB9&`11>|yCeQF<;G5CiU|qp5+LmZGgN|@UxUca z2WpKTRcqCm38A+fzaG%xRj57$mbNt*K!U-p=GFb>M-Yuv#P62Q-SI+!z|!LPFRu1* z3PG%V5^OQL%kT+p#t!d9%#v~ni#%`#SWWxbd)8!)5|a@&KR~*p zvccC79z2i|b9u1}mX?@ak|f2&lMQ(ULCBm?z>u4Y(}4f)Svx!pVrxeIm+fQr?MY3e z&b71jl`!cGpU~P1?)~!K$(Rdet^JK%CA$SFU zBT4^4*V46QLd(;BzkWJ%YDUN}4@;lAPHuKUSB$BP7LEkPQj7_4arv^1p<$JD;Kz3C ziCCkc_CQ6da@0g9KP~{JqP-Bnj`{_B6?QB)0nbl*{Z!}t^K7-DzETu}ai zgxxU`5{9*;QQ#RDR2i;RLOAMba6zG7qq(7^0al$KV)DhSpo}&l*E9CnFWG1rQumfJ z$SMcx42>Ub@2Qnhr4*c`maKTB^6oC!9;SSHr5ToVXoBt>u)QslEBssuwCsOl_$2H2 zu;C##K|i4s#_WH-A!WJB&UJ3sh+1iA01iAQsUhbEvor z%%|9l4xH+Sl>($%@g~E}kL)4^rK}SN9YzX_T{%@H4YT+ri7**~MXlc+8KiWYwxlHU z&6_ZR{+EqG>FqOrc)jO!yvDW9atxUn+w)1 z;DJm`0gV}Ki}3@bDae_kT4K5l3gcz8v~lC~1xKPA+V{KqO>%_I#D6D`eNu6jVrU$F zAxg{AEY02;xT&mjNy}S5cayxM)Fl>E%^LkxR(&ZH7RMo7yV^UNiKPQ@X=|Z4QmKHV z@K81=7v!!|@WN{+*VE!tev#`$Sz*lCFv zeZp_Bc>xfWDpHJZD}UMUWsF{I};Irxx^g?_a8Nvwb#ZBR$qCl1=jQ~P-KyAPpK!P@4KD!8q{QhzLXO{+CFxl1C zV)w_keotMPfyyh0Q|VlpR-uBlUQZvSAo70Rn;mF_N%G)kSxp7z7JK&I?q2M||fr z98NqMd1KrkB8Md{*p0y*{1!fcSIhE?-L>AGvy1z!&Rj3C#xyM3xov2i%h{4VlK6aO z)JgqF=9iFpS7}^SU(A^I@`+}!v{Tq5*}49s4xO*;nhOhYs(F17D2a3nGeH@ z{pW;5MkWwa*`+`Y19~pINy#qBhw9pWlNs>wK%ZT``_FK5DJX~w&=rz$q7040F9kO@ z4PW`fP!lls`Q;Dnx;b|?jKA$9KcbaX{cU0Kw+o?*Zk_iJM~dV?Yb-o}=#6IF6ifz) z%TTw}v&AMcsxn-3kRcNy*z3t#;qM{85ZyjRBGwOZ?Xm8MVI{*Yf;D_v@pj`Z(wW3s zH($KtVo1{^_Wk1OzH(XDcp4p&J2N)ai)z>RbnGEhp`PA~=) z^(*2k=2^fIBzRIg)eCnv~e&%4QMU}6fJ!sdoX@{4) zbuUH@00%;1YpYRt{o_^lFIJuvo!s*#<|2>vo)n!j7!`{*hXiA|sXso-i+$*;Y=_m&@suV;hTfW< zL+!2m^&pr@I2A%9#%I!u@v3Msnb=7t{}=a8*4AG5UUWnso6- z{Gxc}?kH1l<+V6;89c;ZBysTcsK-!<2;475{|fNWK#3Sd8Wi76QVoXSTb`b_e7 zYGd|z(XDysD+y_C9g9koy^8&oq&zkKW63V9JXXQSTTYxha!@z%!G~%mtZxx6BaQ__ zX7C6aKnWTD%&J85r)#(nW-1jGO84DU`*Z9DcHgOe*lCWRTCxV5Kj^Fwj|& zr%q{uePdxtZ$~rxS~qr>G&oVjQ7 zeI@;uP4UZ^BC__wVt~^`y9uNJ_Cf}P(pU82*aI@pXX6lS{94lpU@piQ#hoFbkP|=z zWE(Ge2A-QZUQxq91VDel%tCCBkrv3m2Ac(h^tjDKb3;vMd8^6}u>FU@>$Dc<~X=%kDqydVESCirLiqqhk^o%gwBmj99C zQ4k#BGjIk&3wc0TRup%%1iycFzj`0rj7Q6yI!<>F9o8|x^3+BBXDQ6Mq1{lnt04I{ zswp*=t&e=0tth6ZjIUoi$1Fh0r&Rsefl%RsV6i5fUlCNB!S`aOjH;S(1?LMQh%8yf z2L>QhIc(q-WFc06h$AhC4b&IxFEQrjEb%(fFSAljScsU^Lf>Nk!m4<77E#V}o@FzO z)jwyaUfADiTi2(x^XoxR)nAC%ulPXMuV+$jul{GUTI#IlI4Fu@iPCw zyo`fRFVC@JDIBdAgfT=BGFjsKa~F7J2#oM%hj@>FltgRrC&c22PQi1;$QC?}7Sw|G zNFxrG2nkUdRYq(Wvf#i?iH!>rl>sDih?xBAV8(={Cc2(GP?Y!XRA8*rhUzz3Hn_gN z;tEVd<5^&uvNS&WR>HMPICHr7mE#J|tUY!lP=3}~e(`Ln=`_T#>p&(KD43~zAukEE zA?$pli`*b|+OoZmN=Vzjq4*`C!YY;71+r!=F!&abX9IH}yyxwax#;jH)X*rvy(Hix zkmKJ2(gtaTnRD>l&9;*|@4WbZ-}FtJrn9T*?h@Ekh-cTWHAexokV9m9q% znNbmWGBDn~8z!ux)Z234YI2l*CHnB9_wp!-+bX|u9l2D>1BKz&a?J2a6Q+-1D25sg z!XDgFS8xJ(GXVL5-0|3!eOApe_Zeug5RwA_dObHQ#9F z=f69%Cqq!MFYG(k=V=5VmERAch3!3%{P z+y--DDNq6ENUgMSj2alM@k3B)P-G$qpabN_z@!oA*UMP_8jW)bC>lqO+VS= z-h28S_nJXv8AvU6GS6(%x=JnGcWTE6>_GN}=4^Y<4n*c?<^EDa>Bb=+tp(u+au&1( zckBR&2OKe3d%&dAnn%FDp23bhmY30`4gambRp+gBV$P|TjlOx35aM?;(FE{R_W%Dn==2Y$zfja#IWf1iJHya2J8u!@v^f zVX8*Sd`$Tj`WRv;;UH3hF|mNI!^M@WE8I%>`H1%*&k5MWuG$7 z6t`tti|ff*BY&8_X>#?D$WKo?_z%)I5l>6|OU?9K-ub?&wDG{F_~z4!8xPd8Bea;7 zHWcHu##{yu?lur6`JSmCgC@RP`erh>s7@j031Nwg%{B*0WAryjU}#}nARmZk9R!2V z%z#`3?Jx#7Ud#;m8x)(|bFvePIIw@v{`f%_RWHp*=y1Zuwe!sSgV(P=+VCgcjZlwH z-qE=h+8udw!cMc?N5B1#c@q&L^gg`?K;e&A3>-XS_+Zzm6UdITFc_2u<_D-oTkLRz z-^QScXAzYkVsG_D!7iciAvwZ02Bc;Zi!K+!2-yY9pJjV|J*<=g&!v?XKP`%7=7F-* z7!`~)-OSSk(?*#b@8?{&JZ7v}zlO_q9RKtq{TFrcw7YutQkQOts`R3=PoB7;tYZs3 zVjMGJMBw{pucd95?hcy19DnBEqzG^)wyx1X3Y%2nn4wpLC`0$AeNi;ZJPd46cc3RW zf0FxKfvV$BuXxl;bu7;>;}NK`P#EDg3ABS<6@lB0D)Z}tgY|P7MNTOhQ*B!pFOAFk zl^d?>tMy`X?*5?W`-0r?Su8Hne^J+8FY{Jb7)h+s8rS#g*0q}*&geq!W&p^9pTP#? zX$odcHJBn(aDYvqeXsOOm#CzCw#x|{-Y;RvYu(iB_LG#0GBqn3Jaf{7#3;YugDs>50+@%gDq|S@ zD;wcpqZ_2?2eTCl1@D6Hi;;)Y(6BBVk}@(?CNR`vBH887q=5#%q&~q3f?eIBt&-^> zOeX#T=7gjqw)8N-7qxfKY%Sns=zyZvLcl7Q@2QbnfoYgAk<`RU3JY&w8m5_Wj#$aY=j6`t-FpDjpeTd? z26zii17-AcHez0U(2reY;i-{NEL`Kf0IB zD7bvR`J0@o*RMR$O)}Mn`TnA8NF{U6*Vp*X&D?Unj8wAYXx6iHIszFOy8Mi@{Nias z%_Uo(t;`@?P!j|6p>ZVufUy9#h+fzQZzdd7Apx>7i>@C!Eaf9c!+5GfVU$jj+L`@i z0`3V4P0PjMWC~5rXRwL5mEm&4=gUIf_Z=GcXvpi^^=F>WZ*wADQA}6q>d@U*eGi7l zY`)H!TUB%M%DKu?w}WvHZiULpQh9x`JcW`!l}SJ!m%(j42XvZ@G8(fO95&3LxJUxU zFahL`)`j~o>Oo3&Nua2ygcw8g1y`>Wf#89n1dKA}a2;p);=39j{YNs|8s2t;MXVN;zYoS@>r6o}x;M z>6nP(HAT&wzK%jn;d^0C9vj~3LKnzEH0@GPzJ^~AEdWa4diZ}D#$M9ktOd9%Tjn`J;ct%WM(R%U!Zg^jc zod66_%3#@?fYy#r2US;~C51)?LlpaG7c5h)L0M(V5pMz60WcpK1SB2G6-L=`NqJ!M z2m(#AB)zF@$aCje(pHY%QFmLM&y40nuLWufn!T>_SNn?3VrU$g7x1|%dx^Yybk>bB zG&y0>t5*uzU%tFpF?#Vnbg`NzoG?%8UIXlb_1IV>%U9dLDyFZOL{Eu`Qv#0reB
    1uI>!5y38jY$EhZigl_nN*6em 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%0ATOLKOXYkIBfob#LC4NuHv1#YR*ziUAMF1<(` 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�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 c7o54A9Bnz18=NC$d{P#=s|ca31qP=dM# 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

    e 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 R>&<6YkCrB#?ecYt{{scQVKe{$ literal 0 HcmV?d00001 diff --git a/p2p/src/test/java/bisq/network/crypto/EncryptionServiceTests.java b/p2p/src/test/java/bisq/network/crypto/EncryptionServiceTests.java new file mode 100644 index 00000000000..c3f92564ac2 --- /dev/null +++ b/p2p/src/test/java/bisq/network/crypto/EncryptionServiceTests.java @@ -0,0 +1,161 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.crypto; + +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.KeyStorage; +import bisq.common.crypto.PubKeyRing; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.storage.FileUtil; + +import io.bisq.generated.protobuffer.PB; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.Security; +import java.security.cert.CertificateException; + +import java.io.File; +import java.io.IOException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.rules.ExpectedException; + +public class EncryptionServiceTests { + private static final Logger log = LoggerFactory.getLogger(EncryptionServiceTests.class); + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + private PubKeyRing pubKeyRing; + private KeyRing keyRing; + private File dir; + + @Before + public void setup() throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, CryptoException { + Security.addProvider(new BouncyCastleProvider()); + dir = File.createTempFile("temp_tests", ""); + //noinspection ResultOfMethodCallIgnored + dir.delete(); + //noinspection ResultOfMethodCallIgnored + dir.mkdir(); + KeyStorage keyStorage = new KeyStorage(dir); + keyRing = new KeyRing(keyStorage); + pubKeyRing = keyRing.getPubKeyRing(); + } + + @After + public void tearDown() throws IOException { + FileUtil.deleteDirectory(dir); + } + + //TODO Use NetworkProtoResolver, PersistenceProtoResolver or ProtoResolver which are all in io.bisq.common. +/* + @Test + public void testDecryptAndVerifyMessage() throws CryptoException { + EncryptionService encryptionService = new EncryptionService(keyRing, TestUtils.getProtobufferResolver()); + final PrivateNotificationPayload privateNotification = new PrivateNotificationPayload("test"); + privateNotification.setSigAndPubKey("", pubKeyRing.getSignaturePubKey()); + final NodeAddress nodeAddress = new NodeAddress("localhost", 2222); + PrivateNotificationMessage data = new PrivateNotificationMessage(privateNotification, + nodeAddress, + UUID.randomUUID().toString()); + PrefixedSealedAndSignedMessage encrypted = new PrefixedSealedAndSignedMessage(nodeAddress, + encryptionService.encryptAndSign(pubKeyRing, data), + Hash.getHash("localhost"), + UUID.randomUUID().toString()); + DecryptedMsgWithPubKey decrypted = encryptionService.decryptAndVerify(encrypted.sealedAndSigned); + assertEquals(data.privateNotificationPayload.message, + ((PrivateNotificationMessage) decrypted.message).privateNotificationPayload.message); + } + + + @Test + public void testDecryptHybridWithSignature() { + long ts = System.currentTimeMillis(); + log.trace("start "); + for (int i = 0; i < 100; i++) { + Ping payload = new Ping(new Random().nextInt(), 10); + SealedAndSigned sealedAndSigned = null; + try { + sealedAndSigned = Encryption.encryptHybridWithSignature(payload, + keyRing.getSignatureKeyPair(), keyRing.getPubKeyRing().getEncryptionPubKey()); + } catch (CryptoException e) { + log.error("encryptHybridWithSignature failed"); + e.printStackTrace(); + assertTrue(false); + } + try { + EncryptionService encryptionService = new EncryptionService(null, TestUtils.getProtobufferResolver()); + DecryptedDataTuple tuple = encryptionService.decryptHybridWithSignature(sealedAndSigned, keyRing.getEncryptionKeyPair().getPrivate()); + assertEquals(((Ping) tuple.payload).nonce, payload.nonce); + } catch (CryptoException e) { + log.error("decryptHybridWithSignature failed"); + e.printStackTrace(); + assertTrue(false); + } + } + log.trace("took " + (System.currentTimeMillis() - ts) + " ms."); + }*/ + + private static class MockMessage extends NetworkEnvelope { + public final int nonce; + + public MockMessage(int nonce) { + super(0); + this.nonce = nonce; + } + + @Override + public int getMessageVersion() { + return 0; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + return PB.NetworkEnvelope.newBuilder().setPing(PB.Ping.newBuilder().setNonce(nonce)).build(); + } + } +} +/*@Value +final class TestMessage implements MailboxMessage { + public String data = "test"; + private final int messageVersion = Version.getP2PMessageVersion(); + private final String uid; + private final String senderNodeAddress; + + public TestMessage(String data) { + this.data = data; + uid = UUID.randomUUID().toString(); + senderNodeAddress = null; + } + + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + throw new NotImplementedException(); + } +}*/ diff --git a/p2p/src/test/java/bisq/network/p2p/DummySeedNode.java b/p2p/src/test/java/bisq/network/p2p/DummySeedNode.java new file mode 100644 index 00000000000..9ea01e6f5f1 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/DummySeedNode.java @@ -0,0 +1,236 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.NetworkOptionKeys; +import bisq.network.p2p.peers.BanList; + +import bisq.common.CommonOptionKeys; +import bisq.common.UserThread; +import bisq.common.app.Log; +import bisq.common.app.Version; +import bisq.common.util.Utilities; + +import com.google.common.annotations.VisibleForTesting; + +import java.nio.file.Path; +import java.nio.file.Paths; + +import java.io.File; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import ch.qos.logback.classic.Level; + +import org.jetbrains.annotations.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; + +// Previously used seednode class, replaced now by bootstrap module. We keep it here as it was used in tests... +@SuppressWarnings("ALL") +public class DummySeedNode { + private static final Logger log = LoggerFactory.getLogger(DummySeedNode.class); + public static final int MAX_CONNECTIONS_LIMIT = 1000; + public static final int MAX_CONNECTIONS_DEFAULT = 50; + public static final String SEED_NODES_LIST = "seedNodes"; + public static final String HELP = "help"; + private NodeAddress mySeedNodeAddress = new NodeAddress("localhost:8001"); + private int maxConnections = MAX_CONNECTIONS_DEFAULT; // we keep default a higher connection size for seed nodes + private boolean useLocalhostForP2P = false; + private Set progArgSeedNodes; + private P2PService seedNodeP2PService; + private boolean stopped; + private final String defaultUserDataDir; + private Level logLevel = Level.WARN; + + public DummySeedNode(String defaultUserDataDir) { + Log.traceCall("defaultUserDataDir=" + defaultUserDataDir); + this.defaultUserDataDir = defaultUserDataDir; + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + // args: myAddress (incl. port) bitcoinNetworkId maxConnections useLocalhostForP2P seedNodes (separated with |) + // 2. and 3. args are optional + // eg. lmvdenjkyvx2ovga.onion:8001 0 20 false eo5ay2lyzrfvx2nr.onion:8002|si3uu56adkyqkldl.onion:8003 + // or when using localhost: localhost:8001 2 20 true localhost:8002|localhost:8003 + // BitcoinNetworkId: The id for the bitcoin network (Mainnet = 0, TestNet = 1, Regtest = 2) + // localhost:3002 2 50 true + // localhost:3002 2 50 localhost:4442|localhost:4443 true + // Usage: -myAddress= -networkId= -maxConnections= -useLocalhostForP2P=false -seedNodes=si3uu56adkyqkldl.onion:8002|eo5ay2lyzrfvx2nr.onion:8002 -ignore=4543y2lyzrfvx2nr.onion:8002|876572lyzrfvx2nr.onion:8002 + // Example usage: -myAddress=lmvdenjkyvx2ovga.onion:8001 -networkId=0 -maxConnections=20 -useLocalhostForP2P=false -seedNodes=si3uu56adkyqkldl.onion:8002|eo5ay2lyzrfvx2nr.onion:8002 -ignore=4543y2lyzrfvx2nr.onion:8002|876572lyzrfvx2nr.onion:8002 + + public static final String USAGE = "Usage:\n" + + "--myAddress=\n" + + "--networkId=[0|1|2] (Mainnet = 0, TestNet = 1, Regtest = 2)\n" + + "--maxConnections=\n" + + "--useLocalhostForP2P=[true|false]\n" + + "--logLevel=Log level [OFF, ALL, ERROR, WARN, INFO, DEBUG, TRACE]\n" + + "--seedNodes=[onion addresses separated with comma]\n" + + "--banList=[onion addresses separated with comma]\n" + + "--help"; + + public void processArgs(String[] args) { + int networkId = -1; + try { + for (String arg1 : args) { + String arg = arg1; + if (arg.startsWith("--")) + arg = arg.substring(2); + if (arg.startsWith(NetworkOptionKeys.MY_ADDRESS)) { + arg = arg.substring(NetworkOptionKeys.MY_ADDRESS.length() + 1); + checkArgument(arg.contains(":") && arg.split(":").length == 2 && arg.split(":")[1].length() > 3, "Wrong program argument: " + arg); + mySeedNodeAddress = new NodeAddress(arg); + log.debug("From processArgs: mySeedNodeAddress=" + mySeedNodeAddress); + } else if (arg.startsWith(NetworkOptionKeys.NETWORK_ID)) { + arg = arg.substring(NetworkOptionKeys.NETWORK_ID.length() + 1); + networkId = Integer.parseInt(arg); + log.debug("From processArgs: networkId=" + networkId); + checkArgument(networkId > -1 && networkId < 3, + "networkId out of scope (Mainnet = 0, TestNet = 1, Regtest = 2)"); + Version.setBaseCryptoNetworkId(networkId); + } else if (arg.startsWith(NetworkOptionKeys.MAX_CONNECTIONS)) { + arg = arg.substring(NetworkOptionKeys.MAX_CONNECTIONS.length() + 1); + maxConnections = Integer.parseInt(arg); + log.debug("From processArgs: maxConnections=" + maxConnections); + checkArgument(maxConnections < MAX_CONNECTIONS_LIMIT, "maxConnections seems to be a bit too high..."); + } else if (arg.startsWith(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P)) { + arg = arg.substring(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P.length() + 1); + checkArgument(arg.equals("true") || arg.equals("false")); + useLocalhostForP2P = ("true").equals(arg); + log.debug("From processArgs: useLocalhostForP2P=" + useLocalhostForP2P); + } else if (arg.startsWith(CommonOptionKeys.LOG_LEVEL_KEY)) { + arg = arg.substring(CommonOptionKeys.LOG_LEVEL_KEY.length() + 1); + logLevel = Level.toLevel(arg.toUpperCase()); + log.debug("From processArgs: logLevel=" + logLevel); + } else if (arg.startsWith(SEED_NODES_LIST)) { + arg = arg.substring(SEED_NODES_LIST.length() + 1); + checkArgument(arg.contains(":") && arg.split(":").length > 1 && arg.split(":")[1].length() > 3, + "Wrong program argument " + arg); + List list = Arrays.asList(arg.split(",")); + progArgSeedNodes = new HashSet<>(); + list.forEach(e -> { + checkArgument(e.contains(":") && e.split(":").length == 2 && e.split(":")[1].length() == 4, + "Wrong program argument " + e); + progArgSeedNodes.add(new NodeAddress(e)); + }); + log.debug("From processArgs: progArgSeedNodes=" + progArgSeedNodes); + progArgSeedNodes.remove(mySeedNodeAddress); + } else if (arg.startsWith(NetworkOptionKeys.BAN_LIST)) { + arg = arg.substring(NetworkOptionKeys.BAN_LIST.length() + 1); + checkArgument(arg.contains(":") && arg.split(":").length > 1 && arg.split(":")[1].length() > 3, + "Wrong program argument " + arg); + List list = Arrays.asList(arg.split(",")); + list.forEach(e -> { + checkArgument(e.contains(":") && e.split(":").length == 2 && e.split(":")[1].length() == 4, + "Wrong program argument " + e); + BanList.add(new NodeAddress(e)); + }); + log.debug("From processArgs: ignoreList=" + list); + } else if (arg.startsWith(HELP)) { + log.debug(USAGE); + } else { + log.error("Invalid argument. " + arg + "\n" + USAGE); + } + } + + if (mySeedNodeAddress == null) + log.error("My seed node must be set.\n" + USAGE); + if (networkId == -1) + log.error("NetworkId must be set.\n" + USAGE); + + } catch (Throwable t) { + log.error("Some arguments caused an exception. " + Arrays.toString(args) + "\nException: " + t.getMessage() + "\n" + USAGE); + shutDown(); + } + } + + public void createAndStartP2PService(boolean useDetailedLogging) { + createAndStartP2PService(mySeedNodeAddress, maxConnections, useLocalhostForP2P, + Version.getBaseCurrencyNetwork(), useDetailedLogging, progArgSeedNodes, null); + } + + @VisibleForTesting + public void createAndStartP2PService(NodeAddress mySeedNodeAddress, + int maxConnections, + boolean useLocalhostForP2P, + int networkId, + @SuppressWarnings("UnusedParameters") boolean useDetailedLogging, + @Nullable Set progArgSeedNodes, + @Nullable P2PServiceListener listener) { + Path appPath = Paths.get(defaultUserDataDir, + "bisq_seed_node_" + String.valueOf(mySeedNodeAddress.getFullAddress().replace(":", "_"))); + + String logPath = Paths.get(appPath.toString(), "logs").toString(); + Log.setup(logPath); + log.debug("Log files under: " + logPath); + Version.printVersion(); + Utilities.printSysInfo(); + Log.setLevel(logLevel); + + /* SeedNodeRepository seedNodesRepository = new SeedNodeRepository(); + if (progArgSeedNodes != null && !progArgSeedNodes.isEmpty()) { + if (useLocalhostForP2P) + seedNodesRepository.setLocalhostSeedNodeAddresses(progArgSeedNodes); + else + seedNodesRepository.setTorSeedNodeAddresses(progArgSeedNodes); + }*/ + + File storageDir = Paths.get(appPath.toString(), "db").toFile(); + if (storageDir.mkdirs()) + log.debug("Created storageDir at " + storageDir.getAbsolutePath()); + + File torDir = Paths.get(appPath.toString(), "tor").toFile(); + if (torDir.mkdirs()) + log.debug("Created torDir at " + torDir.getAbsolutePath()); + + // seedNodesRepository.setNodeAddressToExclude(mySeedNodeAddress); + /* seedNodeP2PService = new P2PService(seedNodesRepository, mySeedNodeAddress.getPort(), maxConnections, + torDir, useLocalhostForP2P, networkId, storageDir, null, null, null, new Clock(), null, null, + null, TestUtils.getNetworkProtoResolver(), TestUtils.getPersistenceProtoResolver()); + seedNodeP2PService.start(listener);*/ + } + + @VisibleForTesting + public P2PService getSeedNodeP2PService() { + return seedNodeP2PService; + } + + private void shutDown() { + shutDown(null); + } + + public void shutDown(@Nullable Runnable shutDownCompleteHandler) { + if (!stopped) { + stopped = true; + + seedNodeP2PService.shutDown(() -> { + if (shutDownCompleteHandler != null) UserThread.execute(shutDownCompleteHandler); + }); + } + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/PeerServiceTest.java b/p2p/src/test/java/bisq/network/p2p/PeerServiceTest.java new file mode 100644 index 00000000000..275374d69de --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/PeerServiceTest.java @@ -0,0 +1,525 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.network.p2p.network.LocalhostNetworkNode; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.CountDownLatch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +// TorNode created. Took 6 sec. +// Hidden service created. Took 40-50 sec. +// Connection establishment takes about 4 sec. + +// Please Note: You need to edit seed node addresses first before using tor version. +// Run it once then lookup for onion address at: tor/hiddenservice/hostname and use that for the NodeAddress param. + +// TODO deactivated because outdated +@SuppressWarnings({"UnusedAssignment", "EmptyMethod"}) +@Ignore +public class PeerServiceTest { + private static final Logger log = LoggerFactory.getLogger(PeerServiceTest.class); + private static final int MAX_CONNECTIONS = 100; + + final boolean useLocalhostForP2P = true; + private CountDownLatch latch; + private int sleepTime; + private DummySeedNode seedNode1, seedNode2, seedNode3; + private final Set seedNodeAddresses = new HashSet<>(); + private final List seedNodes = new ArrayList<>(); + private final String test_dummy_dir = "test_dummy_dir"; + + @Before + public void setup() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(50); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(8); + + //noinspection ConstantConditions + if (useLocalhostForP2P) { + seedNodeAddresses.add(new NodeAddress("localhost:8001")); + seedNodeAddresses.add(new NodeAddress("localhost:8002")); + seedNodeAddresses.add(new NodeAddress("localhost:8003")); + sleepTime = 100; + + } else { + seedNodeAddresses.add(new NodeAddress("3omjuxn7z73pxoee.onion:8001")); + seedNodeAddresses.add(new NodeAddress("j24fxqyghjetgpdx.onion:8002")); + seedNodeAddresses.add(new NodeAddress("45367tl6unwec6kw.onion:8003")); + sleepTime = 1000; + } + } + + @After + public void tearDown() throws InterruptedException { + Thread.sleep(sleepTime); + + seedNodes.stream().forEach(seedNode -> { + CountDownLatch shutDownLatch = new CountDownLatch(1); + seedNode.getSeedNodeP2PService().shutDown(() -> { + }); + seedNode.shutDown(shutDownLatch::countDown); + try { + shutDownLatch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + seedNodeAddresses.clear(); + } + + + @Test + public void testSingleSeedNode() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + seedNodeAddresses.clear(); + + for (int i = 0; i < 10; i++) { + int port = 8000 + i; + NodeAddress nodeAddress = new NodeAddress("localhost:" + port); + seedNodeAddresses.add(nodeAddress); + DummySeedNode seedNode = new DummySeedNode(test_dummy_dir); + seedNodes.add(seedNode); + seedNode.createAndStartP2PService(true); + + seedNode.getSeedNodeP2PService().start(new P2PServiceListener() { + @Override + public void onDataReceived() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onHiddenServicePublished() { + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + } + }); + } + Thread.sleep(30_000); + + /* latch = new CountDownLatch(2); + + seedNode.createAndStartP2PService(nodeAddress, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, + seedNodeAddresses, new P2PServiceListener() { + @Override + public void onRequestingDataCompleted() { + latch.countDown(); + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onBootstrapComplete() { + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + + } + }); + + P2PService p2PService = seedNode.getSeedNodeP2PService(); + latch.await(); + Thread.sleep(500);*/ + + //Assert.assertEquals(0, p2PService1.getPeerManager().getAuthenticatedAndReportedPeers().size()); + } + + //@Test + public void test2SeedNodes() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + seedNodeAddresses.clear(); + NodeAddress nodeAddress1 = new NodeAddress("localhost:8001"); + seedNodeAddresses.add(nodeAddress1); + NodeAddress nodeAddress2 = new NodeAddress("localhost:8002"); + seedNodeAddresses.add(nodeAddress2); + + latch = new CountDownLatch(6); + + seedNode1 = new DummySeedNode("test_dummy_dir"); + seedNode1.createAndStartP2PService(nodeAddress1, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, seedNodeAddresses, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + P2PService p2PService1 = seedNode1.getSeedNodeP2PService(); + + Thread.sleep(500); + + seedNode2 = new DummySeedNode("test_dummy_dir"); + seedNode2.createAndStartP2PService(nodeAddress2, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, seedNodeAddresses, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + P2PService p2PService2 = seedNode2.getSeedNodeP2PService(); + latch.await(); + // Assert.assertEquals(1, p2PService1.getPeerManager().getAuthenticatedAndReportedPeers().size()); + // Assert.assertEquals(1, p2PService2.getPeerManager().getAuthenticatedAndReportedPeers().size()); + } + + // @Test + public void testAuthentication() throws InterruptedException { + log.debug("### start"); + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + DummySeedNode seedNode1 = getAndStartSeedNode(8001); + log.debug("### seedNode1"); + Thread.sleep(100); + log.debug("### seedNode1 100"); + Thread.sleep(1000); + DummySeedNode seedNode2 = getAndStartSeedNode(8002); + + // authentication: + // node2 -> node1 RequestAuthenticationMessage + // node1: close connection + // node1 -> node2 ChallengeMessage on new connection + // node2: authentication to node1 done if nonce ok + // node2 -> node1 GetPeersMessage + // node1: authentication to node2 done if nonce ok + // node1 -> node2 PeersMessage + + // first authentication from seedNode2 to seedNode1, then from seedNode1 to seedNode2 + //TODO + /* CountDownLatch latch1 = new CountDownLatch(2); + AuthenticationListener routingListener1 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode1.getP2PService().getPeerGroup().addPeerListener(routingListener1); + + AuthenticationListener routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch1.await(); + seedNode1.getP2PService().getPeerGroup().removePeerListener(routingListener1); + seedNode2.getP2PService().getPeerGroup().removePeerListener(routingListener2); + + // wait until Peers msg finished + Thread.sleep(sleepTime); + + // authentication: + // authentication from seedNode3 to seedNode1, then from seedNode1 to seedNode3 + // authentication from seedNode3 to seedNode2, then from seedNode2 to seedNode3 + SeedNode seedNode3 = getAndStartSeedNode(8003); + CountDownLatch latch2 = new CountDownLatch(3); + seedNode1.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + seedNode2.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + seedNode3.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + latch2.await(); + + // wait until Peers msg finished + Thread.sleep(sleepTime); + + + CountDownLatch shutDownLatch = new CountDownLatch(3); + seedNode1.shutDown(() -> shutDownLatch.countDown()); + seedNode2.shutDown(() -> shutDownLatch.countDown()); + seedNode3.shutDown(() -> shutDownLatch.countDown()); + shutDownLatch.await();*/ + } + + //@Test + public void testAuthenticationWithDisconnect() throws InterruptedException { + //TODO + /* LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + SeedNode seedNode1 = getAndStartSeedNode(8001); + SeedNode seedNode2 = getAndStartSeedNode(8002); + + // authentication: + // node2 -> node1 RequestAuthenticationMessage + // node1: close connection + // node1 -> node2 ChallengeMessage on new connection + // node2: authentication to node1 done if nonce ok + // node2 -> node1 GetPeersMessage + // node1: authentication to node2 done if nonce ok + // node1 -> node2 PeersMessage + + // first authentication from seedNode2 to seedNode1, then from seedNode1 to seedNode2 + CountDownLatch latch1 = new CountDownLatch(2); + AuthenticationListener routingListener1 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode1.getP2PService().getPeerGroup().addPeerListener(routingListener1); + + AuthenticationListener routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch1.await(); + + // shut down node 2 + Thread.sleep(sleepTime); + seedNode1.getP2PService().getPeerGroup().removePeerListener(routingListener1); + seedNode2.getP2PService().getPeerGroup().removePeerListener(routingListener2); + CountDownLatch shutDownLatch1 = new CountDownLatch(1); + seedNode2.shutDown(() -> shutDownLatch1.countDown()); + shutDownLatch1.await(); + + // restart node 2 + seedNode2 = getAndStartSeedNode(8002); + CountDownLatch latch3 = new CountDownLatch(1); + routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch3.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch3.await(); + + Thread.sleep(sleepTime); + + CountDownLatch shutDownLatch = new CountDownLatch(2); + seedNode1.shutDown(() -> shutDownLatch.countDown()); + seedNode2.shutDown(() -> shutDownLatch.countDown()); + shutDownLatch.await();*/ + } + + //@Test + public void testAuthenticationWithManyNodes() throws InterruptedException { + //TODO + /* int authentications = 0; + int length = 3; + SeedNode[] nodes = new SeedNode[length]; + for (int i = 0; i < length; i++) { + SeedNode node = getAndStartSeedNode(8001 + i); + nodes[i] = node; + + latch = new CountDownLatch(i * 2); + authentications += (i * 2); + node.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch.countDown(); + } + }); + latch.await(); + Thread.sleep(sleepTime); + } + + log.debug("total authentications " + authentications); + Profiler.printSystemLoad(log); + // total authentications at 8 nodes = 56 + // total authentications at com nodes = 90, System load (no. threads/used memory (MB)): 170/20 + // total authentications at 20 nodes = 380, System load (no. threads/used memory (MB)): 525/46 + for (int i = 0; i < length; i++) { + nodes[i].getP2PService().getPeerGroup().printAuthenticatedPeers(); + nodes[i].getP2PService().getPeerGroup().printReportedPeers(); + } + + CountDownLatch shutDownLatch = new CountDownLatch(length); + for (int i = 0; i < length; i++) { + nodes[i].shutDown(() -> shutDownLatch.countDown()); + } + shutDownLatch.await();*/ + } + + private DummySeedNode getAndStartSeedNode(int port) throws InterruptedException { + DummySeedNode seedNode = new DummySeedNode("test_dummy_dir"); + + latch = new CountDownLatch(1); + seedNode.createAndStartP2PService(new NodeAddress("localhost", port), MAX_CONNECTIONS, + useLocalhostForP2P, 2, true, seedNodeAddresses, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + } + + @Override + public void onHiddenServicePublished() { + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + } + }); + latch.await(); + Thread.sleep(sleepTime); + return seedNode; + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/TestUtils.java b/p2p/src/test/java/bisq/network/p2p/TestUtils.java new file mode 100644 index 00000000000..c667d35c4e9 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/TestUtils.java @@ -0,0 +1,211 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p; + +import bisq.common.Payload; +import bisq.common.proto.network.NetworkEnvelope; +import bisq.common.proto.network.NetworkPayload; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.proto.persistable.PersistableEnvelope; +import bisq.common.proto.persistable.PersistenceProtoResolver; + +import io.bisq.generated.protobuffer.PB; + +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; + +import java.util.Set; +import java.util.concurrent.CountDownLatch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings("ALL") +public class TestUtils { + private static final Logger log = LoggerFactory.getLogger(TestUtils.class); + + public static int sleepTime; + public static final String test_dummy_dir = "test_dummy_dir"; + + public static KeyPair generateKeyPair() throws NoSuchAlgorithmException { + long ts = System.currentTimeMillis(); + final KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); + keyPairGenerator.initialize(1024); + KeyPair keyPair = keyPairGenerator.genKeyPair(); + log.trace("Generate storageSignatureKeyPair needed {} ms", System.currentTimeMillis() - ts); + return keyPair; + } + + public static DummySeedNode getAndStartSeedNode(int port, boolean useLocalhostForP2P, Set seedNodes) throws InterruptedException { + DummySeedNode seedNode; + + if (useLocalhostForP2P) { + seedNodes.add(new NodeAddress("localhost:8001")); + seedNodes.add(new NodeAddress("localhost:8002")); + seedNodes.add(new NodeAddress("localhost:8003")); + sleepTime = 100; + seedNode = new DummySeedNode(test_dummy_dir); + } else { + seedNodes.add(new NodeAddress("3omjuxn7z73pxoee.onion:8001")); + seedNodes.add(new NodeAddress("j24fxqyghjetgpdx.onion:8002")); + seedNodes.add(new NodeAddress("45367tl6unwec6kw.onion:8003")); + sleepTime = 10000; + seedNode = new DummySeedNode(test_dummy_dir); + } + + CountDownLatch latch = new CountDownLatch(1); + seedNode.createAndStartP2PService(new NodeAddress("localhost", port), DummySeedNode.MAX_CONNECTIONS_DEFAULT, useLocalhostForP2P, 2, true, + seedNodes, new P2PServiceListener() { + @Override + public void onDataReceived() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + latch.await(); + Thread.sleep(sleepTime); + return seedNode; + } + + /* public static P2PService getAndAuthenticateP2PService(int port, EncryptionService encryptionService, KeyRing keyRing, + boolean useLocalhostForP2P, Set seedNodes) + throws InterruptedException { + CountDownLatch latch = new CountDownLatch(1); + SeedNodeRepository seedNodesRepository = new SeedNodeRepository(); + if (seedNodes != null && !seedNodes.isEmpty()) { + if (useLocalhostForP2P) + seedNodesRepository.setLocalhostSeedNodeAddresses(seedNodes); + else + seedNodesRepository.setTorSeedNodeAddresses(seedNodes); + } + + P2PService p2PService = new P2PService(seedNodesRepository, port, new File("seed_node_" + port), useLocalhostForP2P, + 2, P2PService.MAX_CONNECTIONS_DEFAULT, new File("dummy"), null, null, null, + new Clock(), null, encryptionService, keyRing, getNetworkProtoResolver(), getPersistenceProtoResolver()); + p2PService.start(new P2PServiceListener() { + @Override + public void onRequestingDataCompleted() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onBootstrapComplete() { + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + }); + latch.await(); + Thread.sleep(2000); + return p2PService; + } + */ + public static NetworkProtoResolver getNetworkProtoResolver() { + return new NetworkProtoResolver() { + @Override + public Payload fromProto(PB.PaymentAccountPayload proto) { + return null; + } + + @Override + public PersistableEnvelope fromProto(PB.PersistableNetworkPayload persistable) { + return null; + } + + @Override + public NetworkEnvelope fromProto(PB.NetworkEnvelope envelope) { + return null; + } + + @Override + public NetworkPayload fromProto(PB.StoragePayload proto) { + return null; + } + + @Override + public NetworkPayload fromProto(PB.StorageEntryWrapper proto) { + return null; + } + }; + } + + public static PersistenceProtoResolver getPersistenceProtoResolver() { + return new PersistenceProtoResolver() { + @Override + public Payload fromProto(PB.PaymentAccountPayload proto) { + return null; + } + + @Override + public PersistableEnvelope fromProto(PB.PersistableEnvelope persistable) { + return null; + } + + @Override + public PersistableEnvelope fromProto(PB.PersistableNetworkPayload persistable) { + return null; + } + }; + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/mocks/MockMailboxPayload.java b/p2p/src/test/java/bisq/network/p2p/mocks/MockMailboxPayload.java new file mode 100644 index 00000000000..7de3cce2678 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/mocks/MockMailboxPayload.java @@ -0,0 +1,85 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.mocks; + +import bisq.network.p2p.MailboxMessage; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.storage.payload.ExpirablePayload; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import org.apache.commons.lang3.NotImplementedException; + +import java.util.UUID; + +import lombok.Getter; + +@Getter +public final class MockMailboxPayload extends NetworkEnvelope implements MailboxMessage, ExpirablePayload { + private final int messageVersion = Version.getP2PMessageVersion(); + public final String msg; + public final NodeAddress senderNodeAddress; + public long ttl = 0; + private final String uid; + + public MockMailboxPayload(String msg, NodeAddress senderNodeAddress) { + super(0); + this.msg = msg; + this.senderNodeAddress = senderNodeAddress; + uid = UUID.randomUUID().toString(); + } + + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + throw new NotImplementedException("toProtoNetworkEnvelope not impl."); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof MockMailboxPayload)) return false; + + MockMailboxPayload that = (MockMailboxPayload) o; + + return !(msg != null ? !msg.equals(that.msg) : that.msg != null); + + } + + @Override + public int hashCode() { + return msg != null ? msg.hashCode() : 0; + } + + @Override + public String toString() { + return "MockData{" + + "msg='" + msg + '\'' + + '}'; + } + + @Override + public long getTTL() { + return ttl; + } + +} diff --git a/p2p/src/test/java/bisq/network/p2p/mocks/MockPayload.java b/p2p/src/test/java/bisq/network/p2p/mocks/MockPayload.java new file mode 100644 index 00000000000..6bb600bdd5b --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/mocks/MockPayload.java @@ -0,0 +1,78 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.mocks; + +import bisq.network.p2p.storage.payload.ExpirablePayload; + +import bisq.common.app.Version; +import bisq.common.proto.network.NetworkEnvelope; + +import io.bisq.generated.protobuffer.PB; + +import org.apache.commons.lang3.NotImplementedException; + +@SuppressWarnings("ALL") +public final class MockPayload extends NetworkEnvelope implements ExpirablePayload { + public final String msg; + public long ttl; + private final int messageVersion = Version.getP2PMessageVersion(); + + public MockPayload(String msg) { + super(0); + this.msg = msg; + } + + @Override + public int getMessageVersion() { + return messageVersion; + } + + @Override + public PB.NetworkEnvelope toProtoNetworkEnvelope() { + throw new NotImplementedException("toProtoNetworkEnvelope not impl."); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof MockPayload)) return false; + + MockPayload that = (MockPayload) o; + + return !(msg != null ? !msg.equals(that.msg) : that.msg != null); + + } + + @Override + public int hashCode() { + return msg != null ? msg.hashCode() : 0; + } + + @Override + public String toString() { + return "MockData{" + + "msg='" + msg + '\'' + + '}'; + } + + @Override + public long getTTL() { + return ttl; + } + +} diff --git a/p2p/src/test/java/bisq/network/p2p/network/LocalhostNetworkNodeTest.java b/p2p/src/test/java/bisq/network/p2p/network/LocalhostNetworkNodeTest.java new file mode 100644 index 00000000000..1ec4f8b8c11 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/network/LocalhostNetworkNodeTest.java @@ -0,0 +1,118 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.TestUtils; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.Security; + +import java.io.IOException; + +import java.util.concurrent.CountDownLatch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +// TorNode created. Took 6 sec. +// Hidden service created. Took 40-50 sec. +// Connection establishment takes about 4 sec. + +//TODO P2P network tests are outdated +@Ignore +public class LocalhostNetworkNodeTest { + private static final Logger log = LoggerFactory.getLogger(LocalhostNetworkNodeTest.class); + + @Before + public void setup() { + Security.addProvider(new BouncyCastleProvider()); + } + + + @Test + public void testMessage() throws InterruptedException, IOException { + CountDownLatch msgLatch = new CountDownLatch(2); + LocalhostNetworkNode node1 = new LocalhostNetworkNode(9001, TestUtils.getNetworkProtoResolver()); + node1.addMessageListener((message, connection) -> { + log.debug("onMessage node1 " + message); + msgLatch.countDown(); + }); + CountDownLatch startupLatch = new CountDownLatch(2); + node1.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onTorNodeReady"); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onHiddenServiceReady"); + startupLatch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + log.debug("onSetupFailed"); + } + + @Override + public void onRequestCustomBridges() { + } + }); + + LocalhostNetworkNode node2 = new LocalhostNetworkNode(9002, TestUtils.getNetworkProtoResolver()); + node2.addMessageListener((message, connection) -> { + log.debug("onMessage node2 " + message); + msgLatch.countDown(); + }); + node2.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onTorNodeReady 2"); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onHiddenServiceReady 2"); + startupLatch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + log.debug("onSetupFailed 2"); + } + + @Override + public void onRequestCustomBridges() { + } + }); + startupLatch.await(); + + msgLatch.await(); + + CountDownLatch shutDownLatch = new CountDownLatch(2); + node1.shutDown(shutDownLatch::countDown); + node2.shutDown(shutDownLatch::countDown); + shutDownLatch.await(); + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/network/TorNetworkNodeTest.java b/p2p/src/test/java/bisq/network/p2p/network/TorNetworkNodeTest.java new file mode 100644 index 00000000000..bc4654d424d --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/network/TorNetworkNodeTest.java @@ -0,0 +1,223 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.network; + +import bisq.network.p2p.TestUtils; +import bisq.network.p2p.mocks.MockPayload; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.Security; + +import java.io.File; +import java.io.IOException; + +import java.util.concurrent.CountDownLatch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jetbrains.annotations.NotNull; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +// TorNode created. Took 6 sec. +// Hidden service created. Took 40-50 sec. +// Connection establishment takes about 4 sec. +//TODO P2P network tests are outdated +@SuppressWarnings("ConstantConditions") +@Ignore +public class TorNetworkNodeTest { + private static final Logger log = LoggerFactory.getLogger(TorNetworkNodeTest.class); + private CountDownLatch latch; + + @Before + public void setup() { + Security.addProvider(new BouncyCastleProvider()); + } + + @Test + public void testTorNodeBeforeSecondReady() throws InterruptedException, IOException { + latch = new CountDownLatch(1); + int port = 9001; + TorNetworkNode node1 = new TorNetworkNode(port, new File("torNode_" + port), TestUtils.getNetworkProtoResolver(), null); + node1.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onReadyForSendingMessages"); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onReadyForReceivingMessages"); + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + latch.await(); + + latch = new CountDownLatch(1); + int port2 = 9002; + TorNetworkNode node2 = new TorNetworkNode(port2, new File("torNode_" + port2), TestUtils.getNetworkProtoResolver(), null); + node2.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onReadyForSendingMessages"); + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onReadyForReceivingMessages"); + + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + latch.await(); + + + latch = new CountDownLatch(2); + node1.addMessageListener((message, connection) -> { + log.debug("onMessage node1 " + message); + latch.countDown(); + }); + SettableFuture future = node2.sendMessage(node1.getNodeAddress(), new MockPayload("msg1")); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + log.debug("onSuccess "); + latch.countDown(); + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + log.debug("onFailure "); + } + }); + latch.await(); + + + latch = new CountDownLatch(2); + node1.shutDown(latch::countDown); + node2.shutDown(latch::countDown); + latch.await(); + } + + //@Test + public void testTorNodeAfterBothReady() throws InterruptedException, IOException { + latch = new CountDownLatch(2); + int port = 9001; + TorNetworkNode node1 = new TorNetworkNode(port, new File("torNode_" + port), TestUtils.getNetworkProtoResolver(), null); + node1.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onReadyForSendingMessages"); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onReadyForReceivingMessages"); + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + + } + + @Override + public void onRequestCustomBridges() { + + } + }); + + int port2 = 9002; + TorNetworkNode node2 = new TorNetworkNode(port2, new File("torNode_" + port), TestUtils.getNetworkProtoResolver(), null); + node2.start(new SetupListener() { + @Override + public void onTorNodeReady() { + log.debug("onReadyForSendingMessages"); + } + + @Override + public void onHiddenServicePublished() { + log.debug("onReadyForReceivingMessages"); + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + + latch.await(); + + latch = new CountDownLatch(2); + node2.addMessageListener((message, connection) -> { + log.debug("onMessage node2 " + message); + latch.countDown(); + }); + SettableFuture future = node1.sendMessage(node2.getNodeAddress(), new MockPayload("msg1")); + Futures.addCallback(future, new FutureCallback() { + @Override + public void onSuccess(Connection connection) { + log.debug("onSuccess "); + latch.countDown(); + } + + @Override + public void onFailure(@NotNull Throwable throwable) { + log.debug("onFailure "); + } + }); + latch.await(); + + + latch = new CountDownLatch(2); + node1.shutDown(latch::countDown); + node2.shutDown(latch::countDown); + latch.await(); + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/routing/PeerManagerTest.java b/p2p/src/test/java/bisq/network/p2p/routing/PeerManagerTest.java new file mode 100644 index 00000000000..c9b14584d65 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/routing/PeerManagerTest.java @@ -0,0 +1,486 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.routing; + +import bisq.network.p2p.DummySeedNode; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.P2PService; +import bisq.network.p2p.P2PServiceListener; +import bisq.network.p2p.network.LocalhostNetworkNode; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.CountDownLatch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +// TorNode created. Took 6 sec. +// Hidden service created. Took 40-50 sec. +// Connection establishment takes about 4 sec. + +// need to define seed node addresses first before using tor version +//TODO P2P network tests are outdated +@SuppressWarnings({"UnusedAssignment", "EmptyMethod"}) +@Ignore +public class PeerManagerTest { + private static final Logger log = LoggerFactory.getLogger(PeerManagerTest.class); + private static final int MAX_CONNECTIONS = 100; + + final boolean useLocalhostForP2P = true; + private CountDownLatch latch; + private Set seedNodes; + private int sleepTime; + private DummySeedNode seedNode1, seedNode2, seedNode3; + + @Before + public void setup() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(50); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(8); + + seedNodes = new HashSet<>(); + //noinspection ConstantConditions + if (useLocalhostForP2P) { + //seedNodes.add(new NodeAddress("localhost:8001")); + // seedNodes.add(new NodeAddress("localhost:8002")); + seedNodes.add(new NodeAddress("localhost:8003")); + sleepTime = 100; + + } else { + seedNodes.add(new NodeAddress("3omjuxn7z73pxoee.onion:8001")); + seedNodes.add(new NodeAddress("j24fxqyghjetgpdx.onion:8002")); + seedNodes.add(new NodeAddress("45367tl6unwec6kw.onion:8003")); + sleepTime = 1000; + } + } + + @After + public void tearDown() throws InterruptedException { + Thread.sleep(sleepTime); + + if (seedNode1 != null) { + CountDownLatch shutDownLatch = new CountDownLatch(1); + seedNode1.shutDown(shutDownLatch::countDown); + shutDownLatch.await(); + } + if (seedNode2 != null) { + CountDownLatch shutDownLatch = new CountDownLatch(1); + seedNode2.shutDown(shutDownLatch::countDown); + shutDownLatch.await(); + } + if (seedNode3 != null) { + CountDownLatch shutDownLatch = new CountDownLatch(1); + seedNode3.shutDown(shutDownLatch::countDown); + shutDownLatch.await(); + } + } + + // @Test + public void testSingleSeedNode() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + seedNodes = new HashSet<>(); + NodeAddress nodeAddress = new NodeAddress("localhost:8001"); + seedNodes.add(nodeAddress); + seedNode1 = new DummySeedNode("test_dummy_dir"); + latch = new CountDownLatch(2); + seedNode1.createAndStartP2PService(nodeAddress, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, + seedNodes, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + + } + + @Override + public void onRequestCustomBridges() { + + } + }); + P2PService p2PService1 = seedNode1.getSeedNodeP2PService(); + latch.await(); + Thread.sleep(500); + //Assert.assertEquals(0, p2PService1.getPeerManager().getAuthenticatedAndReportedPeers().size()); + } + + @Test + public void test2SeedNodes() throws InterruptedException { + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + seedNodes = new HashSet<>(); + NodeAddress nodeAddress1 = new NodeAddress("localhost:8001"); + seedNodes.add(nodeAddress1); + NodeAddress nodeAddress2 = new NodeAddress("localhost:8002"); + seedNodes.add(nodeAddress2); + + latch = new CountDownLatch(6); + + seedNode1 = new DummySeedNode("test_dummy_dir"); + seedNode1.createAndStartP2PService(nodeAddress1, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, seedNodes, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + P2PService p2PService1 = seedNode1.getSeedNodeP2PService(); + + Thread.sleep(500); + + seedNode2 = new DummySeedNode("test_dummy_dir"); + seedNode2.createAndStartP2PService(nodeAddress2, MAX_CONNECTIONS, useLocalhostForP2P, 2, true, seedNodes, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + latch.countDown(); + } + + @Override + public void onHiddenServicePublished() { + latch.countDown(); + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + P2PService p2PService2 = seedNode2.getSeedNodeP2PService(); + latch.await(); + // Assert.assertEquals(1, p2PService1.getPeerManager().getAuthenticatedAndReportedPeers().size()); + // Assert.assertEquals(1, p2PService2.getPeerManager().getAuthenticatedAndReportedPeers().size()); + } + + // @Test + public void testAuthentication() throws InterruptedException { + log.debug("### start"); + LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + DummySeedNode seedNode1 = getAndStartSeedNode(8001); + log.debug("### seedNode1"); + Thread.sleep(100); + log.debug("### seedNode1 100"); + Thread.sleep(1000); + DummySeedNode seedNode2 = getAndStartSeedNode(8002); + + // authentication: + // node2 -> node1 RequestAuthenticationMessage + // node1: close connection + // node1 -> node2 ChallengeMessage on new connection + // node2: authentication to node1 done if nonce ok + // node2 -> node1 GetPeersMessage + // node1: authentication to node2 done if nonce ok + // node1 -> node2 PeersMessage + + // first authentication from seedNode2 to seedNode1, then from seedNode1 to seedNode2 + //TODO + /* CountDownLatch latch1 = new CountDownLatch(2); + AuthenticationListener routingListener1 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode1.getP2PService().getPeerGroup().addPeerListener(routingListener1); + + AuthenticationListener routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch1.await(); + seedNode1.getP2PService().getPeerGroup().removePeerListener(routingListener1); + seedNode2.getP2PService().getPeerGroup().removePeerListener(routingListener2); + + // wait until Peers msg finished + Thread.sleep(sleepTime); + + // authentication: + // authentication from seedNode3 to seedNode1, then from seedNode1 to seedNode3 + // authentication from seedNode3 to seedNode2, then from seedNode2 to seedNode3 + SeedNode seedNode3 = getAndStartSeedNode(8003); + CountDownLatch latch2 = new CountDownLatch(3); + seedNode1.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + seedNode2.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + seedNode3.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch2.countDown(); + } + }); + latch2.await(); + + // wait until Peers msg finished + Thread.sleep(sleepTime); + + + CountDownLatch shutDownLatch = new CountDownLatch(3); + seedNode1.shutDown(() -> shutDownLatch.countDown()); + seedNode2.shutDown(() -> shutDownLatch.countDown()); + seedNode3.shutDown(() -> shutDownLatch.countDown()); + shutDownLatch.await();*/ + } + + //@Test + public void testAuthenticationWithDisconnect() throws InterruptedException { + //TODO + /* LocalhostNetworkNode.setSimulateTorDelayTorNode(0); + LocalhostNetworkNode.setSimulateTorDelayHiddenService(0); + SeedNode seedNode1 = getAndStartSeedNode(8001); + SeedNode seedNode2 = getAndStartSeedNode(8002); + + // authentication: + // node2 -> node1 RequestAuthenticationMessage + // node1: close connection + // node1 -> node2 ChallengeMessage on new connection + // node2: authentication to node1 done if nonce ok + // node2 -> node1 GetPeersMessage + // node1: authentication to node2 done if nonce ok + // node1 -> node2 PeersMessage + + // first authentication from seedNode2 to seedNode1, then from seedNode1 to seedNode2 + CountDownLatch latch1 = new CountDownLatch(2); + AuthenticationListener routingListener1 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode1.getP2PService().getPeerGroup().addPeerListener(routingListener1); + + AuthenticationListener routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch1.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch1.await(); + + // shut down node 2 + Thread.sleep(sleepTime); + seedNode1.getP2PService().getPeerGroup().removePeerListener(routingListener1); + seedNode2.getP2PService().getPeerGroup().removePeerListener(routingListener2); + CountDownLatch shutDownLatch1 = new CountDownLatch(1); + seedNode2.shutDown(() -> shutDownLatch1.countDown()); + shutDownLatch1.await(); + + // restart node 2 + seedNode2 = getAndStartSeedNode(8002); + CountDownLatch latch3 = new CountDownLatch(1); + routingListener2 = new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch3.countDown(); + } + }; + seedNode2.getP2PService().getPeerGroup().addPeerListener(routingListener2); + latch3.await(); + + Thread.sleep(sleepTime); + + CountDownLatch shutDownLatch = new CountDownLatch(2); + seedNode1.shutDown(() -> shutDownLatch.countDown()); + seedNode2.shutDown(() -> shutDownLatch.countDown()); + shutDownLatch.await();*/ + } + + //@Test + public void testAuthenticationWithManyNodes() throws InterruptedException { + //TODO + /* int authentications = 0; + int length = 3; + SeedNode[] nodes = new SeedNode[length]; + for (int i = 0; i < length; i++) { + SeedNode node = getAndStartSeedNode(8001 + i); + nodes[i] = node; + + latch = new CountDownLatch(i * 2); + authentications += (i * 2); + node.getP2PService().getPeerGroup().addPeerListener(new AuthenticationListener() { + @Override + public void onConnectionAuthenticated(Connection connection) { + log.debug("onConnectionAuthenticated " + connection); + latch.countDown(); + } + }); + latch.await(); + Thread.sleep(sleepTime); + } + + log.debug("total authentications " + authentications); + Profiler.printSystemLoad(log); + // total authentications at 8 nodes = 56 + // total authentications at com nodes = 90, System load (no. threads/used memory (MB)): 170/20 + // total authentications at 20 nodes = 380, System load (no. threads/used memory (MB)): 525/46 + for (int i = 0; i < length; i++) { + nodes[i].getP2PService().getPeerGroup().printAuthenticatedPeers(); + nodes[i].getP2PService().getPeerGroup().printReportedPeers(); + } + + CountDownLatch shutDownLatch = new CountDownLatch(length); + for (int i = 0; i < length; i++) { + nodes[i].shutDown(() -> shutDownLatch.countDown()); + } + shutDownLatch.await();*/ + } + + private DummySeedNode getAndStartSeedNode(int port) throws InterruptedException { + DummySeedNode seedNode = new DummySeedNode("test_dummy_dir"); + + latch = new CountDownLatch(1); + seedNode.createAndStartP2PService(new NodeAddress("localhost", port), MAX_CONNECTIONS, useLocalhostForP2P, 2, true, seedNodes, new P2PServiceListener() { + @Override + public void onDataReceived() { + latch.countDown(); + } + + @Override + public void onNoSeedNodeAvailable() { + } + + @Override + public void onTorNodeReady() { + } + + @Override + public void onNoPeersAvailable() { + } + + @Override + public void onUpdatedDataReceived() { + } + + @Override + public void onHiddenServicePublished() { + } + + @Override + public void onSetupFailed(Throwable throwable) { + } + + @Override + public void onRequestCustomBridges() { + + } + }); + latch.await(); + Thread.sleep(sleepTime); + return seedNode; + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageTest.java b/p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageTest.java new file mode 100644 index 00000000000..06d70e8a3d6 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageTest.java @@ -0,0 +1,236 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage; + +import bisq.network.crypto.EncryptionService; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.TestUtils; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.Broadcaster; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.KeyStorage; +import bisq.common.proto.network.NetworkProtoResolver; +import bisq.common.proto.persistable.PersistenceProtoResolver; +import bisq.common.storage.FileUtil; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.InvalidKeyException; +import java.security.KeyPair; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.Security; +import java.security.SignatureException; +import java.security.cert.CertificateException; + +import java.nio.file.Path; +import java.nio.file.Paths; + +import java.io.File; +import java.io.IOException; + +import java.util.HashSet; +import java.util.Set; + +import lombok.extern.slf4j.Slf4j; + +import mockit.Mocked; +import mockit.integration.junit4.JMockit; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.runner.RunWith; + +@Slf4j +@RunWith(JMockit.class) +@Ignore("Use NetworkProtoResolver, PersistenceProtoResolver or ProtoResolver which are all in io.bisq.common.") +public class P2PDataStorageTest { + private final Set seedNodes = new HashSet<>(); + private EncryptionService encryptionService1, encryptionService2; + private P2PDataStorage dataStorage1; + private KeyPair storageSignatureKeyPair1, storageSignatureKeyPair2; + private KeyRing keyRing1, keyRing2; + private ProtectedStoragePayload protectedStoragePayload; + private File dir1; + private File dir2; + + @Mocked + Broadcaster broadcaster; + @Mocked + NetworkNode networkNode; + @Mocked + NetworkProtoResolver networkProtoResolver; + @Mocked + PersistenceProtoResolver persistenceProtoResolver; + + @Before + public void setup() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException { + Security.addProvider(new BouncyCastleProvider()); + dir1 = File.createTempFile("temp_tests1", ""); + //noinspection ResultOfMethodCallIgnored + dir1.delete(); + //noinspection ResultOfMethodCallIgnored + dir1.mkdir(); + dir2 = File.createTempFile("temp_tests2", ""); + //noinspection ResultOfMethodCallIgnored + dir2.delete(); + //noinspection ResultOfMethodCallIgnored + dir2.mkdir(); + + keyRing1 = new KeyRing(new KeyStorage(dir1)); + storageSignatureKeyPair1 = keyRing1.getSignatureKeyPair(); + encryptionService1 = new EncryptionService(keyRing1, TestUtils.getNetworkProtoResolver()); + + // for mailbox + keyRing2 = new KeyRing(new KeyStorage(dir2)); + storageSignatureKeyPair2 = keyRing2.getSignatureKeyPair(); + encryptionService2 = new EncryptionService(keyRing2, TestUtils.getNetworkProtoResolver()); + //dataStorage1 = new P2PDataStorage(broadcaster, networkNode, dir1, persistenceProtoResolver); + } + + @After + public void tearDown() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException { + Path path = Paths.get(TestUtils.test_dummy_dir); + File dir = path.toFile(); + FileUtil.deleteDirectory(dir); + FileUtil.deleteDirectory(dir1); + FileUtil.deleteDirectory(dir2); + } + + /* @Test + public void testProtectedStorageEntryAddAndRemove() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + storagePayload = new AlertPayload(new AlertVO("alert", + false, + "version", + storageSignatureKeyPair1.getPublic().getEncoded(), + "sig", + null)); + + ProtectedStorageEntry data = dataStorage1.getProtectedData(storagePayload, storageSignatureKeyPair1); + assertTrue(dataStorage1.add(data, null, null, true)); + assertEquals(1, dataStorage1.getMap().size()); + + int newSequenceNumber = data.sequenceNumber + 1; + byte[] hashOfDataAndSeqNr = Hash.getHash(new P2PDataStorage.DataAndSeqNrPair(data.getStoragePayload(), newSequenceNumber)); + byte[] signature = Sig.sign(storageSignatureKeyPair1.getPrivate(), hashOfDataAndSeqNr); + ProtectedStorageEntry dataToRemove = new ProtectedStorageEntry(data.getStoragePayload(), data.ownerPubKey, newSequenceNumber, signature); + assertTrue(dataStorage1.remove(dataToRemove, null, true)); + assertEquals(0, dataStorage1.getMap().size()); + } + + @Test + public void testProtectedStorageEntryRoundtrip() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + //mockData = new MockData("mockData", keyRing1.getSignatureKeyPair().getPublic()); + storagePayload = getDummyOffer(); + + ProtectedStorageEntry data = dataStorage1.getProtectedData(storagePayload, storageSignatureKeyPair1); + setSignature(data); + assertTrue(checkSignature(data)); + + ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); + data.toEnvelopeProto().writeTo(byteOutputStream); + + //TODO Use NetworkProtoResolver, PersistenceProtoResolver or ProtoResolver which are all in io.bisq.common. + ProtectedStorageEntry protectedStorageEntry = ProtoBufferUtilities.getProtectedStorageEntry(PB.ProtectedStorageEntry.parseFrom(new ByteArrayInputStream(byteOutputStream.toByteArray()))); + + assertTrue(Arrays.equals(Hash.getHash(data.getStoragePayload()), Hash.getHash(protectedStorageEntry.getStoragePayload()))); + assertTrue(data.equals(protectedStorageEntry)); + assertTrue(checkSignature(protectedStorageEntry)); + }*/ + + //TODO Use NetworkProtoResolver, PersistenceProtoResolver or ProtoResolver which are all in io.bisq.common. + /* @Test + public void testOfferRoundtrip() throws InvalidProtocolBufferException { + OfferPayload offer = getDummyOffer(); + try { + String buffer = JsonFormat.printer().print(offer.toEnvelopeProto().getOfferPayload()); + JsonFormat.Parser parser = JsonFormat.parser(); + PB.OfferPayload.Builder builder = PB.OfferPayload.newBuilder(); + parser.merge(buffer, builder); + assertEquals(offer, ProtoBufferUtilities.getOfferPayload(builder.build())); + } catch (IOException e) { + e.printStackTrace(); + fail(); + } + }*/ + + /* @NotNull + private OfferPayload getDummyOffer() { + NodeAddress nodeAddress = new NodeAddress("host", 1000); + NodeAddress nodeAddress2 = new NodeAddress("host1", 1001); + NodeAddress nodeAddress3 = new NodeAddress("host2", 1002); + NodeAddress nodeAddress4 = new NodeAddress("host3", 1002); + return new OfferPayload("id", + System.currentTimeMillis(), + nodeAddress4, + keyRing1.getPubKeyRing(), + OfferPayload.Direction.BUY, + 1200, + 1.5, + true, + 100, + 50, + "BTC", + "USD", + Lists.newArrayList(nodeAddress, + nodeAddress2, + nodeAddress3), + Lists.newArrayList(nodeAddress, + nodeAddress2, + nodeAddress3), + "SEPA", + "accountid", + "feetxId", + "BE", + Lists.newArrayList("BE", "AU"), + "bankid", + Lists.newArrayList("BANK1", "BANK2"), + "version", + 100, + 100, + 100, + 100, + 1000, + 1000, + 1000, + false, + false, + + 1000, + 1000, + false, + "hash", + null); + } + + private void setSignature(ProtectedStorageEntry entry) throws CryptoException { + int newSequenceNumber = entry.sequenceNumber; + byte[] hashOfDataAndSeqNr = Hash.getHash(new P2PDataStorage.DataAndSeqNrPair(entry.getStoragePayload(), newSequenceNumber)); + byte[] signature = Sig.sign(storageSignatureKeyPair1.getPrivate(), hashOfDataAndSeqNr); + entry.signature = signature; + } + + private boolean checkSignature(ProtectedStorageEntry entry) throws CryptoException { + byte[] hashOfDataAndSeqNr = Hash.getHash(new P2PDataStorage.DataAndSeqNrPair(entry.getStoragePayload(), entry.sequenceNumber)); + return dataStorage1.checkSignature(entry.ownerPubKey, hashOfDataAndSeqNr, entry.signature); + }*/ +} diff --git a/p2p/src/test/java/bisq/network/p2p/storage/ProtectedDataStorageTest.java b/p2p/src/test/java/bisq/network/p2p/storage/ProtectedDataStorageTest.java new file mode 100644 index 00000000000..3b01880ce5e --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/storage/ProtectedDataStorageTest.java @@ -0,0 +1,232 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage; + +import bisq.network.crypto.EncryptionService; +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.P2PService; +import bisq.network.p2p.TestUtils; +import bisq.network.p2p.network.NetworkNode; +import bisq.network.p2p.peers.PeerManager; +import bisq.network.p2p.storage.messages.RefreshOfferMessage; +import bisq.network.p2p.storage.mocks.MockData; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.UserThread; +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.KeyStorage; +import bisq.common.crypto.Sig; +import bisq.common.storage.FileUtil; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.InvalidKeyException; +import java.security.KeyPair; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.Security; +import java.security.SignatureException; +import java.security.cert.CertificateException; + +import java.nio.file.Path; +import java.nio.file.Paths; + +import java.io.File; +import java.io.IOException; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Executors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +@Ignore +public class ProtectedDataStorageTest { + private static final Logger log = LoggerFactory.getLogger(ProtectedDataStorageTest.class); + + final boolean useClearNet = true; + private final Set seedNodes = new HashSet<>(); + private NetworkNode networkNode1; + private PeerManager peerManager1; + private EncryptionService encryptionService1, encryptionService2; + private P2PDataStorage dataStorage1; + private KeyPair storageSignatureKeyPair1, storageSignatureKeyPair2; + private KeyRing keyRing1, keyRing2; + private MockData mockData; + private final int sleepTime = 100; + private File dir1; + private File dir2; + + @Before + public void setup() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException { + Security.addProvider(new BouncyCastleProvider()); + dir1 = File.createTempFile("temp_tests1", ""); + //noinspection ResultOfMethodCallIgnored,ResultOfMethodCallIgnored + dir1.delete(); + //noinspection ResultOfMethodCallIgnored,ResultOfMethodCallIgnored + dir1.mkdir(); + dir2 = File.createTempFile("temp_tests2", ""); + //noinspection ResultOfMethodCallIgnored,ResultOfMethodCallIgnored + dir2.delete(); + //noinspection ResultOfMethodCallIgnored,ResultOfMethodCallIgnored + dir2.mkdir(); + + UserThread.setExecutor(Executors.newSingleThreadExecutor()); + P2PDataStorage.CHECK_TTL_INTERVAL_SEC = 500; + + keyRing1 = new KeyRing(new KeyStorage(dir1)); + + storageSignatureKeyPair1 = keyRing1.getSignatureKeyPair(); + encryptionService1 = new EncryptionService(keyRing1, TestUtils.getNetworkProtoResolver()); + P2PService p2PService = TestUtils.getAndStartSeedNode(8001, useClearNet, seedNodes).getSeedNodeP2PService(); + networkNode1 = p2PService.getNetworkNode(); + peerManager1 = p2PService.getPeerManager(); + dataStorage1 = p2PService.getP2PDataStorage(); + + // for mailbox + keyRing2 = new KeyRing(new KeyStorage(dir2)); + storageSignatureKeyPair2 = keyRing2.getSignatureKeyPair(); + encryptionService2 = new EncryptionService(keyRing2, TestUtils.getNetworkProtoResolver()); + + mockData = new MockData("mockData", keyRing1.getSignatureKeyPair().getPublic()); + Thread.sleep(sleepTime); + } + + @After + public void tearDown() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException { + Thread.sleep(sleepTime); + if (dataStorage1 != null) dataStorage1.shutDown(); + if (peerManager1 != null) peerManager1.shutDown(); + + if (networkNode1 != null) { + CountDownLatch shutDownLatch = new CountDownLatch(1); + networkNode1.shutDown(shutDownLatch::countDown); + shutDownLatch.await(); + } + + Path path = Paths.get(TestUtils.test_dummy_dir); + File dir = path.toFile(); + FileUtil.deleteDirectory(dir); + FileUtil.deleteDirectory(dir1); + FileUtil.deleteDirectory(dir2); + } + + //@Test + public void testAddAndRemove() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + ProtectedStorageEntry data = dataStorage1.getProtectedStorageEntry(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.addProtectedStorageEntry(data, null, null, true)); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + int newSequenceNumber = data.getSequenceNumber() + 1; + byte[] hashOfDataAndSeqNr = P2PDataStorage.get32ByteHash(new P2PDataStorage.DataAndSeqNrPair(data.getProtectedStoragePayload(), newSequenceNumber)); + byte[] signature = Sig.sign(storageSignatureKeyPair1.getPrivate(), hashOfDataAndSeqNr); + ProtectedStorageEntry dataToRemove = new ProtectedStorageEntry(data.getProtectedStoragePayload(), data.getOwnerPubKey(), newSequenceNumber, signature); + Assert.assertTrue(dataStorage1.remove(dataToRemove, null, true)); + Assert.assertEquals(0, dataStorage1.getMap().size()); + } + + // @Test + public void testTTL() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + mockData.ttl = (int) (P2PDataStorage.CHECK_TTL_INTERVAL_SEC * 1.5); + ProtectedStorageEntry data = dataStorage1.getProtectedStorageEntry(mockData, storageSignatureKeyPair1); + log.debug("data.date " + data.getCreationTimeStamp()); + Assert.assertTrue(dataStorage1.addProtectedStorageEntry(data, null, null, true)); + log.debug("test 1"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC); + log.debug("test 2"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC * 2); + log.debug("test 3 removed"); + Assert.assertEquals(0, dataStorage1.getMap().size()); + } + + /* //@Test + public void testRePublish() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + mockData.ttl = (int) (P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS * 1.5); + ProtectedStorageEntry data = dataStorage1.getDataWithSignedSeqNr(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.add(data, null)); + Assert.assertEquals(1, dataStorage1.getMap().size()); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS); + log.debug("test 1"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + data = dataStorage1.getDataWithSignedSeqNr(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.rePublish(data, null)); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS); + log.debug("test 2"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + data = dataStorage1.getDataWithSignedSeqNr(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.rePublish(data, null)); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS); + log.debug("test 3"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS); + log.debug("test 4"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_MILLIS * 2); + log.debug("test 5 removed"); + Assert.assertEquals(0, dataStorage1.getMap().size()); + } + */ + @Test + public void testRefreshTTL() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException, NoSuchProviderException { + mockData.ttl = (int) (P2PDataStorage.CHECK_TTL_INTERVAL_SEC * 1.5); + ProtectedStorageEntry data = dataStorage1.getProtectedStorageEntry(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.addProtectedStorageEntry(data, null, null, true)); + Assert.assertEquals(1, dataStorage1.getMap().size()); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC); + log.debug("test 1"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + RefreshOfferMessage refreshTTLMessage = dataStorage1.getRefreshTTLMessage(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.refreshTTL(refreshTTLMessage, null, true)); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC); + log.debug("test 2"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + refreshTTLMessage = dataStorage1.getRefreshTTLMessage(mockData, storageSignatureKeyPair1); + Assert.assertTrue(dataStorage1.refreshTTL(refreshTTLMessage, null, true)); + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC); + log.debug("test 3"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC); + log.debug("test 4"); + Assert.assertEquals(1, dataStorage1.getMap().size()); + + Thread.sleep(P2PDataStorage.CHECK_TTL_INTERVAL_SEC * 2); + log.debug("test 5 removed"); + Assert.assertEquals(0, dataStorage1.getMap().size()); + } +} diff --git a/p2p/src/test/java/bisq/network/p2p/storage/messages/AddDataMessageTest.java b/p2p/src/test/java/bisq/network/p2p/storage/messages/AddDataMessageTest.java new file mode 100644 index 00000000000..4c79f85682b --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/storage/messages/AddDataMessageTest.java @@ -0,0 +1,92 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.messages; + +import bisq.network.p2p.NodeAddress; +import bisq.network.p2p.PrefixedSealedAndSignedMessage; +import bisq.network.p2p.storage.payload.MailboxStoragePayload; +import bisq.network.p2p.storage.payload.ProtectedMailboxStorageEntry; +import bisq.network.p2p.storage.payload.ProtectedStorageEntry; + +import bisq.common.crypto.CryptoException; +import bisq.common.crypto.KeyRing; +import bisq.common.crypto.KeyStorage; +import bisq.common.crypto.SealedAndSigned; + +import io.bisq.generated.protobuffer.PB; + +import org.apache.commons.lang3.RandomUtils; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.InvalidKeyException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.Security; +import java.security.SignatureException; +import java.security.cert.CertificateException; + +import java.io.File; +import java.io.IOException; + +import java.util.UUID; + +import lombok.extern.slf4j.Slf4j; + +import org.junit.Before; +import org.junit.Test; + +@SuppressWarnings("UnusedAssignment") +@Slf4j +public class AddDataMessageTest { + private KeyRing keyRing1; + private File dir1; + + + @Before + public void setup() throws InterruptedException, NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException, CryptoException, SignatureException, InvalidKeyException { + Security.addProvider(new BouncyCastleProvider()); + dir1 = File.createTempFile("temp_tests1", ""); + //noinspection ResultOfMethodCallIgnored + dir1.delete(); + //noinspection ResultOfMethodCallIgnored + dir1.mkdir(); + keyRing1 = new KeyRing(new KeyStorage(dir1)); + } + + @Test + public void toProtoBuf() throws Exception { + SealedAndSigned sealedAndSigned = new SealedAndSigned(RandomUtils.nextBytes(10), RandomUtils.nextBytes(10), RandomUtils.nextBytes(10), keyRing1.getPubKeyRing().getSignaturePubKey()); + PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = new PrefixedSealedAndSignedMessage(new NodeAddress("host", 1000), sealedAndSigned, RandomUtils.nextBytes(10), + UUID.randomUUID().toString()); + MailboxStoragePayload mailboxStoragePayload = new MailboxStoragePayload(prefixedSealedAndSignedMessage, + keyRing1.getPubKeyRing().getSignaturePubKey(), keyRing1.getPubKeyRing().getSignaturePubKey()); + ProtectedStorageEntry protectedStorageEntry = new ProtectedMailboxStorageEntry(mailboxStoragePayload, + keyRing1.getSignatureKeyPair().getPublic(), 1, RandomUtils.nextBytes(10), keyRing1.getPubKeyRing().getSignaturePubKey()); + AddDataMessage dataMessage1 = new AddDataMessage(protectedStorageEntry); + PB.NetworkEnvelope envelope = dataMessage1.toProtoNetworkEnvelope(); + + //TODO Use NetworkProtoResolver, PersistenceProtoResolver or ProtoResolver which are all in io.bisq.common. + /* AddDataMessage dataMessage2 = (AddDataMessage) ProtoBufferUtilities.getAddDataMessage(envelope); + + assertTrue(dataMessage1.protectedStorageEntry.getStoragePayload().equals(dataMessage2.protectedStorageEntry.getStoragePayload())); + assertTrue(dataMessage1.protectedStorageEntry.equals(dataMessage2.protectedStorageEntry)); + assertTrue(dataMessage1.equals(dataMessage2));*/ + } + +} diff --git a/p2p/src/test/java/bisq/network/p2p/storage/mocks/MockData.java b/p2p/src/test/java/bisq/network/p2p/storage/mocks/MockData.java new file mode 100644 index 00000000000..940e9b216e4 --- /dev/null +++ b/p2p/src/test/java/bisq/network/p2p/storage/mocks/MockData.java @@ -0,0 +1,90 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq 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 Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.network.p2p.storage.mocks; + +import bisq.network.p2p.storage.payload.ExpirablePayload; +import bisq.network.p2p.storage.payload.ProtectedStoragePayload; + +import io.bisq.generated.protobuffer.PB; + +import org.apache.commons.lang3.NotImplementedException; + +import java.security.PublicKey; + +import java.util.Map; + +import javax.annotation.Nullable; + +@SuppressWarnings("ALL") +public class MockData implements ProtectedStoragePayload, ExpirablePayload { + public final String msg; + public final PublicKey publicKey; + public long ttl; + + @Nullable + private Map extraDataMap; + + public MockData(String msg, PublicKey publicKey) { + this.msg = msg; + this.publicKey = publicKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof MockData)) return false; + + MockData that = (MockData) o; + + return !(msg != null ? !msg.equals(that.msg) : that.msg != null); + + } + + @Override + public int hashCode() { + return msg != null ? msg.hashCode() : 0; + } + + @Override + public String toString() { + return "MockData{" + + "msg='" + msg + '\'' + + '}'; + } + + @Nullable + @Override + public Map getExtraDataMap() { + return extraDataMap; + } + + @Override + public long getTTL() { + return ttl; + } + + @Override + public PublicKey getOwnerPubKey() { + return publicKey; + } + + @Override + public PB.ProtectedMailboxStorageEntry toProtoMessage() { + throw new NotImplementedException("toProtoMessage not impl."); + } +}

    Tqq!xo7t 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�`4`A4xjsKDW!`g=#O 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