From 9a3e5d2d957ac99ce8668da6144acc7b3cc115a8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 15 Oct 2024 10:33:43 +0400 Subject: [PATCH 01/34] Updated on 2026-08-14 --- .../java/com/tangem/domain/demo/DemoTransactionSender.kt | 6 ++++++ gradle/dependencies.toml | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/domain/demo/src/main/java/com/tangem/domain/demo/DemoTransactionSender.kt b/domain/demo/src/main/java/com/tangem/domain/demo/DemoTransactionSender.kt index 130141ab85..5ebe3d67f6 100644 --- a/domain/demo/src/main/java/com/tangem/domain/demo/DemoTransactionSender.kt +++ b/domain/demo/src/main/java/com/tangem/domain/demo/DemoTransactionSender.kt @@ -4,6 +4,7 @@ import com.tangem.blockchain.common.* import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.common.transaction.TransactionSendResult +import com.tangem.blockchain.common.transaction.TransactionsSendResult import com.tangem.blockchain.extensions.Result import com.tangem.common.CompletionResult import kotlin.random.Random @@ -39,6 +40,11 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact } } + override suspend fun sendMultiple( + transactionDataList: List, + signer: TransactionSigner, + ): Result = Result.Failure(Exception(ID).toBlockchainSdkError()) + private fun getDataToSign(): ByteArray { val charPool: List = ('a'..'z') + ('A'..'Z') + ('0'..'9') return IntRange(start = 1, endInclusive = 32) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index ea8a8f48ac..fbe322b4e6 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,9 +89,9 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-821" +tangemBlockchainSdk = "release-app_5.17-824" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "develop-391" +tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem17" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ From 9441ede453c003215072c509e4d6676b4ecb798e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 15 Oct 2024 14:08:19 +0500 Subject: [PATCH 02/34] Updated on 2026-08-14 --- .../java/com/tangem/data/staking/DefaultStakingRepository.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt index c3161be225..b7e900c83b 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt @@ -638,9 +638,9 @@ internal class DefaultStakingRepository( Blockchain.Solana.run { id + toCoinId() } to SOLANA_INTEGRATION_ID, Blockchain.Cosmos.run { id + toCoinId() } to COSMOS_INTEGRATION_ID, Blockchain.Tron.run { id + toCoinId() } to TRON_INTEGRATION_ID, - Blockchain.Ethereum.id + Blockchain.Polygon.toCoinId() to ETHEREUM_POLYGON_INTEGRATION_ID, Blockchain.Ethereum.id + Blockchain.Polygon.toMigratedCointId() to ETHEREUM_POLYGON_INTEGRATION_ID, - Blockchain.BSC.run { id + toCoinId() } to BINANCE_INTEGRATION_ID, + // Blockchain.Ethereum.id + Blockchain.Polygon.toCoinId() to ETHEREUM_POLYGON_INTEGRATION_ID, + // Blockchain.BSC.run { id + toCoinId() } to BINANCE_INTEGRATION_ID, // Blockchain.Polkadot.run { id + toCoinId() } to POLKADOT_INTEGRATION_ID, // Blockchain.Avalanche.run { id + toCoinId() } to AVALANCHE_INTEGRATION_ID, // Blockchain.Cronos.run { id + toCoinId() } to CRONOS_INTEGRATION_ID, From b8c2f1b0e9e416c2deb785ac753ee0e26527a951 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 15 Oct 2024 16:17:56 +0400 Subject: [PATCH 03/34] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 22 ++--- core/res/src/main/res/values-es/strings.xml | 3 +- core/res/src/main/res/values-fr/strings.xml | 3 +- core/res/src/main/res/values-ja/strings.xml | 6 +- core/res/src/main/res/values-ru/strings.xml | 5 +- .../src/main/res/values-uk-rUA/strings.xml | 3 +- core/res/src/main/res/values/strings.xml | 5 +- .../converters/ExchangeStatusConverter.kt | 2 +- .../domain/models/domain/ExchangeStatus.kt | 1 + .../state/SwapTransactionsState.kt | 2 +- ...enDetailsSwapTransactionsStateConverter.kt | 10 +++ .../exchange/ExchangeStatusBlock.kt | 86 +++++++++++++------ 12 files changed, 105 insertions(+), 43 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 12b6f28389..c1bb266ba5 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -35,7 +35,7 @@ Verstanden Guthaben sind ausgeblendet Bitte Karte oder Ring scannen - Bitte versuche es in 30 Sekunden erneut oder scanne die Karte + Bitte versuche es in 30 Sekunden erneut oder scanne die Karte oder Ring Zu viele Versuche Du hast die biometrische Authentifizierung auf deinem Telefon deaktiviert und kannst keine Wallets in der App speichern. Um Wallets zu speichern, aktiviere bitte die biometrische Authentifizierung in deinen Telefoneinstellungen. Backup-Prozess starten @@ -59,7 +59,7 @@ Du hast nicht alle deine Karten oder Ringe zurückgesetzt Auf Werkseinstellungen zurücksetzen Sicherheitsmodus - Karteneinstellungen + Karten oder Ring-Einstellungen Zusätzlich zu den Netzwerkgebühren erhebt das Cardano-Netzwerk %1$s ADA bei Transaktionen mit dem Token %2$s Cardano-Transaktionsanforderungen Um eine %1$s Transaktion durchzuführen, musst du einen gewissen ADA-Betrag einzahlen, um die Netzwerkgebühr und den ADA-Mindestwert zu decken (5 ADA werden empfohlen). @@ -213,7 +213,7 @@ Zugangscode Du musst den richtigen Zugangscode eingeben, bevor du die Karte oder Ring scannst. Langes Tippen - Dieser Mechanismus schützt vor Annäherungsangriffen auf eine Karte oder Ring. Es wird eine Verzögerung zwischen dem Empfang und der Ausführung eines Befehls erzwungen. Nach der ersten signierten Transaktion wird dieses Telefon mit der Karte oder Ring verknüpft und die Transaktionen werden sofort signiert. + Dieser Mechanismus schützt vor Annäherungsangriffen auf eine Karte oder einen Ring. Er erzwingt eine Verzögerung zwischen dem Empfang und der Ausführung eines Befehls. Passcode Bevor du einen Befehl ausführst, der eine Änderung des Kartenstatus zur Folge hat, musst du den Passcode eingeben. Empfehlungsprogramm @@ -257,6 +257,7 @@ Tauschen läuft Austauschen... Fehlgeschlagen + Pausiert Einzahlung empfangen Einzahlung wird erwartet Warten auf Einzahlung... @@ -307,7 +308,7 @@ Unbegrenzt Karte oder Ring bestellen Karte oder Ring scannen - Diese Information ist KI generiert + Diese Informationen wurden mithilfe von KI generiert. \n Tippe hier, wenn Du Fehler finden. Um den Zugangscode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um den Passcode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um die Wallet zu erstellen, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. @@ -459,7 +460,7 @@ Schützen Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten Personalisieren - Der Zugangscode kann mit einer verbundenen Karte oder Ring wiederhergestellt werden. Bewahre nicht alle Karten oder Ringe an einem Ort auf. + Stelle den Zugangscode mit einer verknüpften Karte oder einem Ring wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf. Wiederherstellen Wähle ein beliebiges Wort, eine Phrase oder eine Zahl als Zugangscode Zugangscode erstellen @@ -470,7 +471,7 @@ Bitte wiederhole den Vorgang. Die Karte oder Ring wird auf Werkseinstellungen zurückgesetzt. Aktivierungsfehler Token hinzufügen - Du hast eine Backup-Karte oder Ring hinzugefügt. Wenn der Backup-Prozess abgeschlossen ist, kannst du keine weiteren Backup-Karten oder Ringe hinzufügen. Wenn du noch eine Karte oder Ring hast, füge diese zum Backup hinzu. Möchtest du den Backup-Prozess fortsetzen? + Du hast einee Backup-Karte oder einen Backup-Ring hinzugefügt. Wenn der Backup-Prozess abgeschlossen ist, kannst Du keine weiteren Backup-Geräte hinzufügen. Wenn Du noch eine Karte oder einen Ring hast, fügen diese(n) zum Backup hinzu. Möchtest Du den Backup-Prozess fortsetzen? Der Sicherungsvorgang ist teilweise abgeschlossen. Du kannst ihn jetzt nicht beenden. Die Passphrase ist eine fortschrittliche Sicherheitsfunktion, die von Krypto-Wallets verwendet wird. Sie fügt ein zusätzliches Wort oder eine Phrase deiner Wahl zu der bereits bestehenden Wiederherstellungsphrase hinzu, um einen brandneuen Satz von Adressen zu erzeugen. Hinzufügen einer Sicherungskarte oder Ring @@ -610,7 +611,7 @@ Beachte, dass für Transaktionen mit deinem Guthaben weiterhin deine Karte oder Ring erforderlich ist Karte oder Ring scannen Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Karten oder Ringe. - Halte deine Karte bereit! + Halte deine Karte oder Ring bereit! Bereits in der eingegebenen Adresse enthalten Der Provisionsbetrag ist %s mal der empfohlene Betrag. Stelle sicher, dass die benutzerdefinierten Einstellungen korrekt sind. Du hast eine Kommission angegeben, die unter dem empfohlenen Betrag liegt, was zu einer Verzögerung Ihrer Transaktion führen könnte. Weiter? @@ -710,7 +711,7 @@ Belohnungen beanspruchen Eine Möglichkeit, Staking-Belohnungen zu erhalten. Es kann automatisch oder manuell beansprucht werden. Belohnungszeitplan - Dabei handelt es sich um einen Zeitplan, der festlegt, wann die Teilnehmer am Staking ihre Belohnungen erhalten. + Dies ist ein Zeitplan, der bestimmt, wann Teilnehmer am Staking ihre Belohnungen erhalten. Der Zeitpunkt der Belohnungsverteilung kann je nach Validator und Netzwerklast leicht variieren. Belohnungen %s Staking %s Entbindungsdauer @@ -736,6 +737,7 @@ Aufgrund von Netzwerkproblemen ist Staking derzeit nicht verfügbar. Bitte versuche es später erneut. Beim Staking im %1$s -Netzwerk mit einem neuen Validator werden alle zuvor eingesetzten Kryptos automatisch an diesen Validator übertragen Reinvestiert Deine verdienten Prämien in Deinen Einsatzbetrag und erhöht so den potenziellen Gewinn. + Mit Restake kannst Du Dein Guthaben von einem Validator zu einem anderen verschieben, ohne dass Du den Stake aufheben musst. Entsperre dein Geld, um es aus dem Staking-Prozess abzuheben. Das Freischalten nimmt %s. Nach Ablauf der 21-tägigen Bindungsfrist kannst Du über Dein Guthaben verfügen. Die Prämie wird zusammen mit dem ungestaketen Guthaben abgehoben. Deine Assets steht Dir nach Ablauf der Frist für die Aufhebung der Bindung %s zur Verfügung. @@ -754,6 +756,7 @@ Täglich Alle %s Täglich + Alle %s Pro Epoche Pro Ära Stündlich @@ -762,7 +765,6 @@ Belohnungen Stake gesperrt Mehr staken - Du setzt %1$s ein und erhältst jährlich %2$s Zum Entsperren antippen Tippe zum Entsperren oder Abstimmen Zum abheben antippen @@ -955,7 +957,7 @@ Auf dieser Karte oder Ring sind nur noch %s Unterschriften übrig. Du musst dein gesamtes Guthaben abheben. Geringe Anzahl von Unterschriften Token in verschiedenen Netzwerken können unterschiedliche Adressen haben. Überprüfe bei der Überweisung noch einmal, ob deine Adresse mit der des Netzwerks übereinstimmt. - MATIC wird auf POL migriert. Es gibt jedoch keine Frist, und MATIC wird noch nicht abgeschafft. Du kannst MATIC-Token weiterhin verwenden oder sie über eien Exchange gegen POL tauschen. + MATIC wird zu POL migriert. Es gibt jedoch keine festgelegte Frist und MATIC wird noch nicht abgeschafft. Du kannst den MATIC-Token weiterhin bedenkenlos verwenden oder es gegen POL austauschen. Migration von MATIC zu POL Verwende deine Karte oder Ring, um eine Adresse für das %d-Netz zu erhalten diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index a0dc037e9d..67bc35be25 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -729,7 +729,9 @@ Manual Bloquear Día + Cada %s Cada día + Cada %s Época Era Hora @@ -738,7 +740,6 @@ Recompensas El stake está bloqueado Hacer más staking - Haga staking de %1$s y recibirá %2$s anualmente Toque para desbloquear Toque para retirar Stake %s diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 7a6b959868..5efbcda226 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -729,7 +729,9 @@ Manuel Bloquer Jour + Chaque %s Chaque jour + Chaque %s Époque Ère Heure @@ -738,7 +740,6 @@ Récompenses Stake verrouillé Staker plus - Vous stakez %1$s et recevrez %2$s par an Appuyez pour déverrouiller Appuyez pour retirer Stake %s diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 9251296e0b..29694b640e 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -254,6 +254,7 @@ 交換中 交換中... 失敗しました + 停止中 入金済み 入金待ち 入金待ち... @@ -585,7 +586,7 @@ 工場出荷時設定にリセットすると、選択したカードやリングからウォレットが完全に削除されます。現在のウォレットを復元したり、カードやリングを使用してアクセスコードを復元することはできません。 工場出荷時の状態にリセットすると、選択したカードやリングからウォレットが完全に削除され、アプリから削除されます。現在のウォレットを復元することはできません。 Tangem Ringユーザーは、11/15日までChangelly経由でスワップを3回手数料ゼロで行えます! - 今すぐ手数料0%でスワップしましょう! + 今すぐ手数料0%%でスワップしましょう! 他の国の銀行カードと、ロシア連邦外での居住許可証または登録をお持ちですか? ロシアの銀行カードは現在ご利用いただけません アプリにログインして、カードまたはリングをスキャンせずに残高を確認できます @@ -725,6 +726,7 @@ ネットワークの状態により、現在ステーキングはご利用いただけません。しばらくしてからもう一度お試しください。 新しいバリデーターで%1$sネットワークにステーキングすると、以前にステーキングされた資金はすべてこのバリデーターに自動的に転送されます。 獲得した報酬をステーキングに再投資し、潜在的な収益を増やします。 + 再ステーキングを使うと、ステーキングを解除することなく、あるバリデータから別のバリデータに資金を移動できます。 資金をステーキングから引き出すには、ロックを解除してください。ロック解除には%sかかります。 資金は、21日間のロック解除期間後に使用可能になります。報酬は、ロック解除後の資金とともに引き出されます。 %sのステーキング解除期間後、資金はすぐ利用可能となります。 @@ -743,6 +745,7 @@ 毎日 %sごと 毎日 + %sごと エポック毎 時代毎 毎時間 @@ -751,7 +754,6 @@ 報酬 ステーキングはロックされています もっとステーキングする - %1$sをステーキングし、毎%2$s報酬を受け取ります タップしてロック解除 タップしてロック解除もしくは投票 タップして引き出す diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 170c6bfd5f..5c0cc709dd 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -261,6 +261,7 @@ Обмен Обмен... Неудачно + Приостановлен Депозит получен Ожидание депозита Ожидаем пополнения... @@ -752,6 +753,7 @@ Стейкинг временно недоступен из-за проблем в сети. Пожалуйста, попробуйте позже. Стейкинг в сети %1$s с новым валидатором автоматически переведет ваши текущие застейканные средства на него. Реинвестируйте свои заработанные награды в вашу застейканную сумму, увеличивая потенциальный доход + Рестейк позволяет вам переместить средства из одного валидатора в другого без необходимости выхода из стейкинга. Разблокируйте свои средства, чтобы вывести их из стейкинга. Разблокировка займёт %s. Ваши средства будут доступны для использования после 21-дневного периода отзыва. Награда будет выведена вместе с вашими выводими средствами. Ваши средства будут доступны после %s периода отзыва. @@ -767,7 +769,9 @@ Вручную За блок Ежедневно + Каждый %s Каждый день + Каждые %s дня За эпоху За эру Ежечасно @@ -776,7 +780,6 @@ Вознаграждения Стейкинг закрыт Застейкать еще - Вы стейкаете %1$s и будете получать %2$s ежегодно Нажмите для разблокировки Нажмите для разблокировки Нажмите для вывода diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index 1d8ae684fb..baed26eb8c 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -262,6 +262,7 @@ Обмін Обмін... Не вдалося + Призупинено Депозит отримано Очікуємо на депозит Очікуємо на депозит... @@ -766,6 +767,7 @@ День Кожен %s Щодня + Кожен %s Епоха Ера Година @@ -774,7 +776,6 @@ Винагороди Стейкінг закрито Застейкати більше - Ви стейкаєте %1$s і будете отримувати %2$s щороку Натисніть, щоб розблокувати Натисніть, щоб розблокувати або проголосувати Натисніть, щоб вивести кошти diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 46365c5cc0..46dfde4c7a 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -257,6 +257,7 @@ Exchanging Exchanging... Failed + Paused Deposit received Awaiting deposit Awaiting deposit... @@ -307,7 +308,7 @@ Unlimited Order Tangem Scan Tangem - This information was generated with AI.\nTap here, If you find any errors. + This information was generated with AI.\nTap here, if you find any errors. To change the access code tap the card or ring as shown above and do not remove until the end of the operation To change the passcode tap the card as shown above and do not remove until the end of the operation To create the wallet tap the card as shown above and do not remove until the end of the operation @@ -735,6 +736,7 @@ Staking is currently unavailable due to network conditions. Please try again later. Staking in the %1$s network with a new validator will automatically transfer all previously staked funds to this validator Reinvests your earned rewards in your staked amount, increasing potential earnings. + Restake lets you move your funds from one validator to another without the need to unstake Unlock your money to withdraw it from staking process. Unlocking takes %s. Your funds will be available for use after the 21-day unbonding period. Reward will be withdrawn along with your unstaking funds. Your funds will be available for use after the %s unbonding period. @@ -753,6 +755,7 @@ Daily Each %s Each day + Each %s days Per Epoch Per Era Hourly diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt index d782b606f9..cb3ba18d9f 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt @@ -9,7 +9,7 @@ internal class ExchangeStatusConverter : Converter ExchangeStatusState( status = ExchangeStatus.Verifying, @@ -283,6 +287,12 @@ internal class TokenDetailsSwapTransactionsStateConverter( isActive = true, isDone = false, ) + isPaused -> ExchangeStatusState( + status = ExchangeStatus.Paused, + text = resourceReference(id = R.string.express_exchange_status_paused), + isActive = true, + isDone = false, + ) hasFailed || isFailed || isRefunded -> ExchangeStatusState( status = ExchangeStatus.Failed, text = TextReference.Res(R.string.express_exchange_status_failed), diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt index ff2dd3baff..ec2a2b3cfb 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt @@ -18,13 +18,17 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.components.SpacerWMax import com.tangem.core.ui.extensions.resolveReference +import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.res.TangemThemePreview import com.tangem.feature.swap.domain.models.domain.ExchangeStatus import com.tangem.feature.tokendetails.presentation.tokendetails.state.ExchangeStatusState import com.tangem.features.tokendetails.impl.R import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toImmutableList @Composable internal fun ExchangeStatusBlock( @@ -103,34 +107,34 @@ private fun ExchangeStatusStep( label = "Exchange Step Change Success", modifier = Modifier .size(TangemTheme.dimens.size20), - ) { + ) { state -> when { - it.status == ExchangeStatus.Cancelled -> ExchangeStep( - iconRes = R.drawable.ic_close_24, - color = TangemTheme.colors.icon.warning, - isDone = false, - ) - it.status == ExchangeStatus.Failed -> ExchangeStep( - iconRes = R.drawable.ic_close_24, - color = TangemTheme.colors.icon.warning, - isDone = it.isDone, - ) - it.status == ExchangeStatus.Refunded -> ExchangeStep( - iconRes = R.drawable.ic_close_24, - color = TangemTheme.colors.icon.warning, - isDone = it.isDone, - ) - it.status == ExchangeStatus.Verifying -> ExchangeStep( + state.status == ExchangeStatus.Cancelled -> { + ExchangeStep( + iconRes = R.drawable.ic_close_24, + color = TangemTheme.colors.icon.warning, + isDone = false, + ) + } + state.status == ExchangeStatus.Failed || state.status == ExchangeStatus.Refunded || + state.status == ExchangeStatus.Paused -> { + ExchangeStep( + iconRes = R.drawable.ic_close_24, + color = TangemTheme.colors.icon.warning, + isDone = state.isDone, + ) + } + state.status == ExchangeStatus.Verifying -> ExchangeStep( iconRes = R.drawable.ic_exclamation_24, color = TangemTheme.colors.icon.attention, - isDone = it.isDone, + isDone = state.isDone, ) - it.isDone -> ExchangeStep( + state.isDone -> ExchangeStep( iconRes = R.drawable.ic_check_24, color = TangemTheme.colors.icon.primary1, isDone = true, ) - it.isActive -> ExchangeStepInProgress() + state.isActive -> ExchangeStepInProgress() else -> ExchangeStepDefault() } } @@ -144,11 +148,14 @@ private fun ExchangeStatusStep( @Composable private fun ExchangeStatusStepText(stepStatus: ExchangeStatusState) { + val status = stepStatus.status + val textColor = when { - stepStatus.status == ExchangeStatus.Cancelled -> TangemTheme.colors.icon.warning - stepStatus.status == ExchangeStatus.Refunded -> TangemTheme.colors.icon.warning - stepStatus.status == ExchangeStatus.Failed && !stepStatus.isDone -> TangemTheme.colors.icon.warning - stepStatus.status == ExchangeStatus.Verifying && !stepStatus.isDone -> TangemTheme.colors.icon.attention + status == ExchangeStatus.Cancelled || status == ExchangeStatus.Refunded || status == ExchangeStatus.Paused -> { + TangemTheme.colors.icon.warning + } + status == ExchangeStatus.Failed && !stepStatus.isDone -> TangemTheme.colors.icon.warning + status == ExchangeStatus.Verifying && !stepStatus.isDone -> TangemTheme.colors.icon.attention stepStatus.isDone -> TangemTheme.colors.text.primary1 !stepStatus.isActive -> TangemTheme.colors.text.disabled else -> TangemTheme.colors.text.primary1 @@ -222,4 +229,35 @@ private fun ExchangeStepSeparator() { shape = CircleShape, ), ) +} + +@Preview +@Composable +private fun Preview_ExchangeStatusBlock() { + val base = ExchangeStatusState( + status = ExchangeStatus.Failed, + text = resourceReference(id = R.string.express_exchange_status_failed), + isActive = true, + isDone = false, + ) + + TangemThemePreview { + ExchangeStatusBlock( + statuses = listOf( + base, + base.copy(isActive = false, isDone = false), + base.copy(isActive = true, isDone = false), + base.copy(isActive = true, isDone = true), + ExchangeStatusState( + status = ExchangeStatus.Paused, + text = resourceReference(id = R.string.express_exchange_status_paused), + isActive = true, + isDone = false, + ), + ) + .toImmutableList(), + showLink = false, + onClick = {}, + ) + } } \ No newline at end of file From 2313831fc174eb79b7e40198ccef06fb58705f70 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 15 Oct 2024 11:53:08 +0400 Subject: [PATCH 04/34] Updated on 2026-08-14 --- .../TokenMarketExchangeConverter.kt | 13 +++- .../impl/model/MarketsTokenDetailsModel.kt | 7 +- .../ui/components/ExchangesBottomSheet.kt | 69 ++++++++----------- .../impl/ui/components/ListedOnBlock.kt | 11 +-- 4 files changed, 53 insertions(+), 47 deletions(-) diff --git a/data/markets/src/main/java/com/tangem/data/markets/converters/TokenMarketExchangeConverter.kt b/data/markets/src/main/java/com/tangem/data/markets/converters/TokenMarketExchangeConverter.kt index 94aae7673a..4660b28ef9 100644 --- a/data/markets/src/main/java/com/tangem/data/markets/converters/TokenMarketExchangeConverter.kt +++ b/data/markets/src/main/java/com/tangem/data/markets/converters/TokenMarketExchangeConverter.kt @@ -1,6 +1,7 @@ package com.tangem.data.markets.converters import com.tangem.datasource.api.markets.models.response.TokenMarketExchangesResponse +import com.tangem.domain.markets.BuildConfig import com.tangem.domain.markets.TokenMarketExchange import com.tangem.utils.converter.Converter @@ -11,6 +12,8 @@ import com.tangem.utils.converter.Converter */ internal object TokenMarketExchangeConverter : Converter { + private const val PROD_IMAGE_HOST = "https://s3.eu-central-1.amazonaws.com/tangem.api/exchanges/" + private const val DEV_IMAGE_HOST = "https://s3.eu-central-1.amazonaws.com/tangem.api.dev/exchanges/" private val RISKY_INTERVAL = 0..3 private val CAUTION_INTERVAL = 4..7 @@ -19,7 +22,7 @@ internal object TokenMarketExchangeConverter : Converter - Column( - modifier = Modifier - .fillMaxSize() - .verticalScroll(state = rememberScrollState()), - ) { - Subtitle( - subtitleRes = content.subtitleResId, - volumeReference = content.volumeReference, - modifier = Modifier.padding( - start = TangemTheme.dimens.spacing16, - top = TangemTheme.dimens.spacing12, - end = TangemTheme.dimens.spacing16, - bottom = TangemTheme.dimens.spacing8, - ), - ) - - when (content) { - is ExchangesBottomSheetContent.Content, - is ExchangesBottomSheetContent.Loading, - -> { - content.exchangeItems.fastForEach { item -> - key(item.id) { - TokenItem(state = item, isBalanceHidden = false) - } - } - } - is ExchangesBottomSheetContent.Error -> { - Error( - content = content, - modifier = Modifier - .align(alignment = Alignment.CenterHorizontally) - .padding(horizontal = 16.dp) - .weight(1f), + Box { + LazyColumn( + modifier = Modifier.fillMaxSize(), + contentPadding = PaddingValues(bottom = bottomBarHeight), + ) { + item(key = "subtitle") { + Subtitle( + subtitleRes = content.subtitleResId, + volumeReference = content.volumeReference, + modifier = Modifier.padding( + start = TangemTheme.dimens.spacing16, + top = TangemTheme.dimens.spacing12, + end = TangemTheme.dimens.spacing16, + bottom = TangemTheme.dimens.spacing8, + ), ) } + + items( + items = content.exchangeItems, + key = TokenItemState::id, + itemContent = { TokenItem(state = it, isBalanceHidden = false) }, + ) } - SpacerH(bottomBarHeight) + if (content is ExchangesBottomSheetContent.Error) { + Error( + content = content, + modifier = Modifier.align(Alignment.Center), + ) + } } }, ) diff --git a/features/markets/impl/src/main/kotlin/com/tangem/features/markets/details/impl/ui/components/ListedOnBlock.kt b/features/markets/impl/src/main/kotlin/com/tangem/features/markets/details/impl/ui/components/ListedOnBlock.kt index 2ba168b352..3d5714135e 100644 --- a/features/markets/impl/src/main/kotlin/com/tangem/features/markets/details/impl/ui/components/ListedOnBlock.kt +++ b/features/markets/impl/src/main/kotlin/com/tangem/features/markets/details/impl/ui/components/ListedOnBlock.kt @@ -10,6 +10,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -33,7 +34,7 @@ import kotlinx.coroutines.delay */ @Composable internal fun ListedOnBlock(state: ListedOnUM, modifier: Modifier = Modifier) { - Box { + Box(modifier = modifier) { InformationBlock( title = { Text( @@ -44,9 +45,11 @@ internal fun ListedOnBlock(state: ListedOnUM, modifier: Modifier = Modifier) { overflow = TextOverflow.Ellipsis, ) }, - modifier = modifier.clickable(enabled = state is ListedOnUM.Content) { - (state as? ListedOnUM.Content)?.onClick?.invoke() - }, + modifier = Modifier + .clip(shape = TangemTheme.shapes.roundedCornersXMedium) + .clickable(enabled = state is ListedOnUM.Content) { + (state as? ListedOnUM.Content)?.onClick?.invoke() + }, ) { Description( state = state, From f2a3003f0cf0194946d9835e6a2e8087e21c2f86 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 14 Oct 2024 20:51:35 +0400 Subject: [PATCH 05/34] Updated on 2026-08-14 --- .../presentation/state/fee/FeeConverter.kt | 5 +- .../state/fee/SendFeeCustomFieldConverter.kt | 3 +- .../custom/BaseEthereumCustomFeeConverter.kt | 24 ++ .../fee/custom/EthereumCustomFeeConverter.kt | 261 ++++++------------ .../custom/EthereumEIPCustomFeeConverter.kt | 156 +++++++++++ .../EthereumLegacyCustomFeeConverter.kt | 140 ++++++++++ 6 files changed, 409 insertions(+), 180 deletions(-) create mode 100644 features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/BaseEthereumCustomFeeConverter.kt create mode 100644 features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt create mode 100644 features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt index 449c2f6f43..4c557fecbb 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt @@ -72,10 +72,7 @@ internal class FeeConverter( normalFee } else { when (normalFee) { - is Fee.Ethereum.Legacy -> ethereumCustomFeeConverter.convertBack( - normalFee = normalFee, - value = customValues, - ) + is Fee.Ethereum -> ethereumCustomFeeConverter.convertBack(normalFee = normalFee, value = customValues) is Fee.Bitcoin -> bitcoinCustomFeeConverter.convertBack(normalFee = normalFee, value = customValues) is Fee.Kaspa -> kaspaCustomFeeConverter.convertBack(normalFee = normalFee, value = customValues) else -> { diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt index 25849d36f7..16a8666b36 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt @@ -49,7 +49,7 @@ internal class SendFeeCustomFieldConverter( override fun convert(value: Fee): ImmutableList { return when (value) { - is Fee.Ethereum.Legacy -> ethereumCustomFeeConverter.convert(value) + is Fee.Ethereum -> ethereumCustomFeeConverter.convert(value) is Fee.Bitcoin -> bitcoinCustomFeeConverter.convert(value) is Fee.Kaspa -> kaspaCustomFeeConverter.convert(value) else -> persistentListOf() @@ -59,6 +59,7 @@ internal class SendFeeCustomFieldConverter( fun onValueChange(feeSelectorState: FeeSelectorState.Content, index: Int, value: String) = feeSelectorState.copy( customValues = when (val fee = feeSelectorState.fees.normal) { is Fee.Ethereum -> ethereumCustomFeeConverter.onValueChange( + feeValue = fee, customValues = feeSelectorState.customValues, index = index, value = value, diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/BaseEthereumCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/BaseEthereumCustomFeeConverter.kt new file mode 100644 index 0000000000..3956b35bbd --- /dev/null +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/BaseEthereumCustomFeeConverter.kt @@ -0,0 +1,24 @@ +package com.tangem.features.send.impl.presentation.state.fee.custom + +import com.tangem.blockchain.common.transaction.Fee +import com.tangem.features.send.impl.presentation.state.fields.SendTextField +import kotlinx.collections.immutable.ImmutableList + +/** + * Base ethereum custom fee converter + * + * @param T subtype of [Fee.Ethereum] + * +[REDACTED_AUTHOR] + */ +internal interface BaseEthereumCustomFeeConverter : CustomFeeConverter { + + fun getGasLimitIndex(feeValue: T): Int + + fun onValueChange( + feeValue: T, + customValues: ImmutableList, + index: Int, + value: String, + ): ImmutableList +} \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt index b44dc65a5b..0757bdfc78 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt @@ -8,7 +8,6 @@ import com.tangem.blockchain.common.transaction.Fee import com.tangem.common.ui.amountScreen.utils.getFiatReference import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.utils.parseBigDecimal -import com.tangem.core.ui.utils.parseToBigDecimal import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.features.send.impl.R @@ -18,203 +17,115 @@ import com.tangem.features.send.impl.presentation.state.fields.SendTextField import com.tangem.features.send.impl.presentation.viewmodel.SendClickIntents import com.tangem.utils.Provider import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList -import java.math.RoundingMode internal class EthereumCustomFeeConverter( private val clickIntents: SendClickIntents, private val stateRouterProvider: Provider, private val appCurrencyProvider: Provider, private val feeCryptoCurrencyStatusProvider: Provider, -) : CustomFeeConverter { +) : BaseEthereumCustomFeeConverter { - override fun convert(value: Fee.Ethereum.Legacy): ImmutableList { - val feeValue = value.amount.value - val feeCurrency = feeCryptoCurrencyStatusProvider()?.value - return persistentListOf( - SendTextField.CustomFee( - value = feeValue?.parseBigDecimal(value.amount.decimals).orEmpty(), - decimals = value.amount.decimals, - symbol = value.amount.currencySymbol, - onValueChange = { clickIntents.onCustomFeeValueChange(FEE_AMOUNT, it) }, - keyboardOptions = KeyboardOptions( - imeAction = ImeAction.Next, - keyboardType = KeyboardType.Number, - ), - title = resourceReference(R.string.send_max_fee), - footer = resourceReference(R.string.send_custom_amount_fee_footer), - label = getFiatReference( - rate = feeCurrency?.fiatRate, - value = feeValue, - appCurrency = appCurrencyProvider(), - ), - keyboardActions = KeyboardActions(), - ), - SendTextField.CustomFee( - value = value.gasPrice.toBigDecimal().movePointLeft(GIGA_DECIMALS).parseBigDecimal(GIGA_DECIMALS), - decimals = GIGA_DECIMALS, - symbol = ETHEREUM_GAS_UNIT, - title = resourceReference(R.string.send_gas_price), - footer = resourceReference(R.string.send_gas_price_footer), - onValueChange = { clickIntents.onCustomFeeValueChange(GAS_PRICE, it) }, - keyboardOptions = KeyboardOptions( - imeAction = ImeAction.Next, - keyboardType = KeyboardType.Number, - ), - keyboardActions = KeyboardActions(), - ), - SendTextField.CustomFee( - value = value.gasLimit.toString(), - decimals = GAS_DECIMALS, - symbol = "", - title = resourceReference(R.string.send_gas_limit), - footer = resourceReference(R.string.send_gas_limit_footer), - onValueChange = { clickIntents.onCustomFeeValueChange(GAS_LIMIT, it) }, - keyboardOptions = KeyboardOptions( - imeAction = if ( - checkExceedBalance( - feeBalance = feeCurrency?.amount, - feeAmount = feeValue, - ) - ) { - ImeAction.None - } else { - ImeAction.Done - }, - keyboardType = KeyboardType.Number, - ), - keyboardActions = KeyboardActions( - onDone = { clickIntents.onNextClick(stateRouterProvider().isEditState) }, - ), - ), - ) + private val feeCurrency: CryptoCurrencyStatus.Value? + get() = feeCryptoCurrencyStatusProvider()?.value + + private val legacyFeeConverter = EthereumLegacyCustomFeeConverter( + clickIntents = clickIntents, + appCurrencyProvider = appCurrencyProvider, + feeCryptoCurrencyStatusProvider = feeCryptoCurrencyStatusProvider, + ) + + private val eipFeeConverter = EthereumEIPCustomFeeConverter( + clickIntents = clickIntents, + appCurrencyProvider = appCurrencyProvider, + feeCryptoCurrencyStatusProvider = feeCryptoCurrencyStatusProvider, + ) + + override fun convert(value: Fee.Ethereum): ImmutableList { + return buildList { + convertFeeValue(value).let(::add) + + when (value) { + is Fee.Ethereum.EIP1559 -> eipFeeConverter.convert(value) + is Fee.Ethereum.Legacy -> legacyFeeConverter.convert(value) + } + .let(::addAll) + + convertGasLimitValue(value).let(::add) + } + .toImmutableList() } - override fun convertBack( - normalFee: Fee.Ethereum.Legacy, - value: ImmutableList, - ): Fee.Ethereum.Legacy { - val feeAmount = value[FEE_AMOUNT].value.parseToBigDecimal(value[FEE_AMOUNT].decimals) - val gasPrice = value[GAS_PRICE].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() - val gasLimit = value[GAS_LIMIT].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() - return normalFee.copy( - amount = normalFee.amount.copy(value = feeAmount), - gasPrice = gasPrice, - gasLimit = gasLimit, - ) + override fun convertBack(normalFee: Fee.Ethereum, value: ImmutableList): Fee.Ethereum { + return when (normalFee) { + is Fee.Ethereum.EIP1559 -> eipFeeConverter.convertBack(normalFee = normalFee, value = value) + is Fee.Ethereum.Legacy -> legacyFeeConverter.convertBack(normalFee = normalFee, value = value) + } } - fun onValueChange( + override fun getGasLimitIndex(feeValue: Fee.Ethereum): Int { + return when (feeValue) { + is Fee.Ethereum.EIP1559 -> eipFeeConverter.getGasLimitIndex(feeValue) + is Fee.Ethereum.Legacy -> legacyFeeConverter.getGasLimitIndex(feeValue) + } + } + + override fun onValueChange( + feeValue: Fee.Ethereum, customValues: ImmutableList, index: Int, value: String, ): ImmutableList { - val mutableCustomValues = customValues.toMutableList() - return mutableCustomValues.apply { - when (index) { - FEE_AMOUNT -> setOnAmountChange(value, index) - GAS_PRICE -> setOnGasPriceChange(value, index) - else -> setOnGasLimitChange(value, index) - } - }.toImmutableList() - } - - private fun MutableList.setEmpty(index: Int) { - set(index, this[index].copy(value = "")) - } - - private fun MutableList.setOnAmountChange(value: String, index: Int) { - val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) - if (value.isBlank()) { - setEmpty(FEE_AMOUNT) - setEmpty(GAS_PRICE) - } else { - val newFeeAmountDecimal = value.parseToBigDecimal(this[FEE_AMOUNT].decimals) - val newFeeAmount = newFeeAmountDecimal.movePointRight(this[GAS_PRICE].decimals) // from ETH to GWEI - val newGasPrice = newFeeAmount.divide(gasLimit, this[GAS_PRICE].decimals, RoundingMode.HALF_UP) - set(GAS_PRICE, this[GAS_PRICE].copy(value = newGasPrice.parseBigDecimal(this[GAS_PRICE].decimals))) - set( - index, - this[index].copy( - value = value, - label = getFiatReference( - rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, - value = newFeeAmountDecimal, - appCurrency = appCurrencyProvider(), - ), - ), - ) + return when (feeValue) { + is Fee.Ethereum.EIP1559 -> eipFeeConverter.onValueChange(feeValue, customValues, index, value) + is Fee.Ethereum.Legacy -> legacyFeeConverter.onValueChange(feeValue, customValues, index, value) } } - private fun MutableList.setOnGasPriceChange(value: String, index: Int) { - val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) - if (value.isBlank()) { - setEmpty(FEE_AMOUNT) - setEmpty(GAS_PRICE) - } else { - val newGasPrice = value.parseToBigDecimal(this[GAS_PRICE].decimals) - .movePointLeft(this[GAS_PRICE].decimals) // from GWEI to ETH - val newFeeAmount = gasLimit * newGasPrice - set( - FEE_AMOUNT, - this[FEE_AMOUNT].copy( - value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), - label = getFiatReference( - rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, - value = newFeeAmount, - appCurrency = appCurrencyProvider(), - ), - ), - ) - set(index, this[index].copy(value = value)) - } + private fun convertFeeValue(value: Fee.Ethereum): SendTextField.CustomFee { + val feeValue = value.amount.value + + return SendTextField.CustomFee( + value = feeValue?.parseBigDecimal(value.amount.decimals).orEmpty(), + decimals = value.amount.decimals, + symbol = value.amount.currencySymbol, + onValueChange = { clickIntents.onCustomFeeValueChange(FEE_AMOUNT, it) }, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next, keyboardType = KeyboardType.Number), + title = resourceReference(R.string.send_max_fee), + footer = resourceReference(R.string.send_custom_amount_fee_footer), + label = getFiatReference( + rate = feeCurrency?.fiatRate, + value = feeValue, + appCurrency = appCurrencyProvider(), + ), + keyboardActions = KeyboardActions(), + ) } - private fun MutableList.setOnGasLimitChange(value: String, index: Int) { - if (value.isBlank()) { - setEmpty(FEE_AMOUNT) - setEmpty(GAS_LIMIT) - } else { - val newGasLimit = value.parseToBigDecimal(this[GAS_LIMIT].decimals) - val gasPrice = this[GAS_PRICE].value.parseToBigDecimal(this[GAS_PRICE].decimals) - .movePointLeft(this[GAS_PRICE].decimals) // from GWEI to ETH - val newFeeAmount = newGasLimit * gasPrice - set( - FEE_AMOUNT, - this[FEE_AMOUNT].copy( - value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), - label = getFiatReference( - rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, - value = newFeeAmount, - appCurrency = appCurrencyProvider(), - ), - ), - ) - val isNotExceedBalance = checkExceedBalance( - feeBalance = feeCryptoCurrencyStatusProvider()?.value?.amount, - feeAmount = newFeeAmount, - ) - set( - index, - this[index].copy( - value = value, - keyboardOptions = KeyboardOptions( - imeAction = if (!isNotExceedBalance) ImeAction.None else ImeAction.Done, - keyboardType = KeyboardType.Number, - ), - ), - ) - } + private fun convertGasLimitValue(value: Fee.Ethereum): SendTextField.CustomFee { + val isExceedBalance = checkExceedBalance(feeBalance = feeCurrency?.amount, feeAmount = value.amount.value) + + return SendTextField.CustomFee( + value = value.gasLimit.toString(), + decimals = GAS_DECIMALS, + symbol = "", + title = resourceReference(R.string.send_gas_limit), + footer = resourceReference(R.string.send_gas_limit_footer), + onValueChange = { clickIntents.onCustomFeeValueChange(getGasLimitIndex(value), it) }, + keyboardOptions = KeyboardOptions( + imeAction = if (isExceedBalance) ImeAction.None else ImeAction.Done, + keyboardType = KeyboardType.Number, + ), + keyboardActions = KeyboardActions( + onDone = { clickIntents.onNextClick(stateRouterProvider().isEditState) }, + ), + ) } companion object { - private const val ETHEREUM_GAS_UNIT = "GWEI" - private const val GIGA_DECIMALS = 9 - private const val FEE_AMOUNT = 0 - private const val GAS_PRICE = 1 - private const val GAS_LIMIT = 2 - private const val GAS_DECIMALS = 0 + const val ETHEREUM_GAS_UNIT = "GWEI" + const val GIGA_DECIMALS = 9 + const val GAS_DECIMALS = 0 + const val FEE_AMOUNT = 0 } } \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt new file mode 100644 index 0000000000..397af3dbf4 --- /dev/null +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt @@ -0,0 +1,156 @@ +package com.tangem.features.send.impl.presentation.state.fee.custom + +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType +import com.tangem.blockchain.common.transaction.Fee +import com.tangem.common.ui.amountScreen.utils.getFiatReference +import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.utils.parseBigDecimal +import com.tangem.core.ui.utils.parseToBigDecimal +import com.tangem.domain.appcurrency.model.AppCurrency +import com.tangem.domain.tokens.model.CryptoCurrencyStatus +import com.tangem.features.send.impl.R +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.ETHEREUM_GAS_UNIT +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.FEE_AMOUNT +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GAS_DECIMALS +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GIGA_DECIMALS +import com.tangem.features.send.impl.presentation.state.fields.SendTextField +import com.tangem.features.send.impl.presentation.viewmodel.SendClickIntents +import com.tangem.utils.Provider +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.toImmutableList +import java.math.RoundingMode + +internal class EthereumEIPCustomFeeConverter( + private val clickIntents: SendClickIntents, + private val appCurrencyProvider: Provider, + private val feeCryptoCurrencyStatusProvider: Provider, +) : BaseEthereumCustomFeeConverter { + + override fun convert(value: Fee.Ethereum.EIP1559): ImmutableList { + return persistentListOf( + SendTextField.CustomFee( + value = value.maxFeePerGas.toBigDecimal().movePointLeft(GIGA_DECIMALS).parseBigDecimal(GIGA_DECIMALS), + decimals = GIGA_DECIMALS, + symbol = ETHEREUM_GAS_UNIT, + title = resourceReference(R.string.send_custom_evm_max_fee), + footer = resourceReference(R.string.send_custom_evm_max_fee_footer), + onValueChange = { clickIntents.onCustomFeeValueChange(MAX_FEE, it) }, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next, keyboardType = KeyboardType.Number), + keyboardActions = KeyboardActions(), + ), + SendTextField.CustomFee( + value = value.priorityFee.toBigDecimal().movePointLeft(GIGA_DECIMALS).parseBigDecimal(GIGA_DECIMALS), + decimals = GIGA_DECIMALS, + symbol = ETHEREUM_GAS_UNIT, + title = resourceReference(R.string.send_custom_evm_priority_fee), + footer = resourceReference(R.string.send_custom_evm_priority_fee_footer), + onValueChange = { clickIntents.onCustomFeeValueChange(PRIORITY_FEE, it) }, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next, keyboardType = KeyboardType.Number), + keyboardActions = KeyboardActions(), + ), + ) + } + + override fun convertBack( + normalFee: Fee.Ethereum.EIP1559, + value: ImmutableList, + ): Fee.Ethereum.EIP1559 { + val feeAmount = value[FEE_AMOUNT].value.parseToBigDecimal(value[FEE_AMOUNT].decimals) + val maxFee = value[MAX_FEE].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() + val priorityFee = value[PRIORITY_FEE].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() + val gasLimit = value[GAS_LIMIT].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() + + return normalFee.copy( + amount = normalFee.amount.copy(value = feeAmount), + maxFeePerGas = maxFee, + priorityFee = priorityFee, + gasLimit = gasLimit, + ) + } + + override fun getGasLimitIndex(feeValue: Fee.Ethereum.EIP1559): Int = GAS_LIMIT + + override fun onValueChange( + feeValue: Fee.Ethereum.EIP1559, + customValues: ImmutableList, + index: Int, + value: String, + ): ImmutableList { + val mutableCustomValues = customValues.toMutableList() + return mutableCustomValues.apply { + when (index) { + FEE_AMOUNT -> setOnAmountChange(value, index) + MAX_FEE -> setOnMaxFeeChange(value, index) + else -> set(index, this[index].copy(value = value)) + } + }.toImmutableList() + } + + private fun MutableList.setEmpty(index: Int) { + set(index, this[index].copy(value = "")) + } + + private fun MutableList.setOnAmountChange(value: String, index: Int) { + val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(MAX_FEE) + } else { + val newFeeAmountDecimal = value.parseToBigDecimal(this[FEE_AMOUNT].decimals) + val newFeeAmount = newFeeAmountDecimal.movePointRight(GIGA_DECIMALS) // from ETH to GWEI + + val newMaxFee = newFeeAmount.divide(gasLimit, this[MAX_FEE].decimals, RoundingMode.HALF_UP) + + set( + index = MAX_FEE, + element = this[MAX_FEE].copy(value = newMaxFee.parseBigDecimal(this[MAX_FEE].decimals)), + ) + + set( + index = index, + element = this[index].copy( + value = value, + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmountDecimal, + appCurrency = appCurrencyProvider(), + ), + ), + ) + } + } + + private fun MutableList.setOnMaxFeeChange(value: String, index: Int) { + val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) + + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(MAX_FEE) + } else { + val newMaxFee = value.parseToBigDecimal(this[MAX_FEE].decimals).movePointLeft(this[MAX_FEE].decimals) + val newFeeAmount = gasLimit * newMaxFee + set( + FEE_AMOUNT, + this[FEE_AMOUNT].copy( + value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmount, + appCurrency = appCurrencyProvider(), + ), + ), + ) + set(index, this[index].copy(value = value)) + } + } + + private companion object { + const val MAX_FEE = 1 + const val PRIORITY_FEE = 2 + const val GAS_LIMIT = 3 + } +} \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt new file mode 100644 index 0000000000..4783cd62c4 --- /dev/null +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt @@ -0,0 +1,140 @@ +package com.tangem.features.send.impl.presentation.state.fee.custom + +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType +import com.tangem.blockchain.common.transaction.Fee +import com.tangem.common.ui.amountScreen.utils.getFiatReference +import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.utils.parseBigDecimal +import com.tangem.core.ui.utils.parseToBigDecimal +import com.tangem.domain.appcurrency.model.AppCurrency +import com.tangem.domain.tokens.model.CryptoCurrencyStatus +import com.tangem.features.send.impl.R +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.ETHEREUM_GAS_UNIT +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.FEE_AMOUNT +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GAS_DECIMALS +import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GIGA_DECIMALS +import com.tangem.features.send.impl.presentation.state.fields.SendTextField +import com.tangem.features.send.impl.presentation.viewmodel.SendClickIntents +import com.tangem.utils.Provider +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.toImmutableList +import java.math.RoundingMode + +internal class EthereumLegacyCustomFeeConverter( + private val clickIntents: SendClickIntents, + private val appCurrencyProvider: Provider, + private val feeCryptoCurrencyStatusProvider: Provider, +) : BaseEthereumCustomFeeConverter { + + override fun convert(value: Fee.Ethereum.Legacy): ImmutableList { + return persistentListOf( + SendTextField.CustomFee( + value = value.gasPrice.toBigDecimal().movePointLeft(GIGA_DECIMALS).parseBigDecimal(GIGA_DECIMALS), + decimals = GIGA_DECIMALS, + symbol = ETHEREUM_GAS_UNIT, + title = resourceReference(R.string.send_gas_price), + footer = resourceReference(R.string.send_gas_price_footer), + onValueChange = { clickIntents.onCustomFeeValueChange(GAS_PRICE, it) }, + keyboardOptions = KeyboardOptions( + imeAction = ImeAction.Next, + keyboardType = KeyboardType.Number, + ), + keyboardActions = KeyboardActions(), + ), + ) + } + + override fun convertBack( + normalFee: Fee.Ethereum.Legacy, + value: ImmutableList, + ): Fee.Ethereum.Legacy { + val feeAmount = value[FEE_AMOUNT].value.parseToBigDecimal(value[FEE_AMOUNT].decimals) + val gasPrice = value[GAS_PRICE].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() + val gasLimit = value[GAS_LIMIT].value.parseToBigDecimal(GAS_DECIMALS).toBigInteger() + + return normalFee.copy( + amount = normalFee.amount.copy(value = feeAmount), + gasPrice = gasPrice, + gasLimit = gasLimit, + ) + } + + override fun getGasLimitIndex(feeValue: Fee.Ethereum.Legacy): Int = GAS_LIMIT + + override fun onValueChange( + feeValue: Fee.Ethereum.Legacy, + customValues: ImmutableList, + index: Int, + value: String, + ): ImmutableList { + val mutableCustomValues = customValues.toMutableList() + return mutableCustomValues.apply { + when (index) { + FEE_AMOUNT -> setOnAmountChange(value, index) + GAS_PRICE -> setOnGasPriceChange(value, index) + else -> set(index, this[index].copy(value = value)) + } + }.toImmutableList() + } + + private fun MutableList.setEmpty(index: Int) { + set(index, this[index].copy(value = "")) + } + + private fun MutableList.setOnAmountChange(value: String, index: Int) { + val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(GAS_PRICE) + } else { + val newFeeAmountDecimal = value.parseToBigDecimal(this[FEE_AMOUNT].decimals) + val newFeeAmount = newFeeAmountDecimal.movePointRight(this[GAS_PRICE].decimals) // from ETH to GWEI + val newGasPrice = newFeeAmount.divide(gasLimit, this[GAS_PRICE].decimals, RoundingMode.HALF_UP) + set(GAS_PRICE, this[GAS_PRICE].copy(value = newGasPrice.parseBigDecimal(this[GAS_PRICE].decimals))) + set( + index, + this[index].copy( + value = value, + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmountDecimal, + appCurrency = appCurrencyProvider(), + ), + ), + ) + } + } + + private fun MutableList.setOnGasPriceChange(value: String, index: Int) { + val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(GAS_PRICE) + } else { + val newGasPrice = value.parseToBigDecimal(this[GAS_PRICE].decimals) + .movePointLeft(this[GAS_PRICE].decimals) // from GWEI to ETH + val newFeeAmount = gasLimit * newGasPrice + set( + FEE_AMOUNT, + this[FEE_AMOUNT].copy( + value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmount, + appCurrency = appCurrencyProvider(), + ), + ), + ) + set(index, this[index].copy(value = value)) + } + } + + private companion object { + const val GAS_PRICE = 1 + const val GAS_LIMIT = 2 + } +} \ No newline at end of file From 5c3f579271b35c781f3decee7b6a6e56c8dd1236 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 12:42:13 +0300 Subject: [PATCH 06/34] Updated on 2026-08-14 --- core/res/src/main/res/values/strings.xml | 2 +- .../presentation/state/converters/YieldBalancesConverter.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 46dfde4c7a..afcccd7b55 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -706,7 +706,7 @@ Market rating Metrics Minimum Requirement - No rewards + No rewards available Reward claiming Method of receiving staking rewards.\nIt can be either automatic, where the reward is credited to your address, or manual, where you need to withdraw the reward by creating a transaction to receive it. Reward schedule diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt index 53674f1c51..61bd335e65 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt @@ -70,7 +70,7 @@ internal class YieldBalancesConverter( val cryptoCurrencyStatus = cryptoCurrencyStatusProvider() val yieldBalance = cryptoCurrencyStatus.value.yieldBalance as? YieldBalance.Data val rewards = yieldBalance?.balance?.items - ?.filter { it.type == BalanceType.REWARDS } + ?.filter { it.type == BalanceType.REWARDS && !it.amount.isZero() } val isActionable = rewards?.all { it.pendingActions.isNotEmpty() } == true val isRewardsClaimable = rewards?.isNotEmpty() == true From 08811dffbfdd9b356102ccb018bda49e2d1624ac Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 12:54:13 +0300 Subject: [PATCH 07/34] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 7 +- core/res/src/main/res/values-es/strings.xml | 7 +- core/res/src/main/res/values-fr/strings.xml | 7 +- core/res/src/main/res/values-ru/strings.xml | 4 + .../src/main/res/values-uk-rUA/strings.xml | 220 +++++++++--------- core/res/src/main/res/values/strings.xml | 5 +- .../core/ui/extensions/TextReference.kt | 33 ++- .../SetConfirmationStateLoadingTransformer.kt | 9 +- .../SetInitialDataStateTransformer.kt | 20 +- .../state/utils/StakingRewardsUtils.kt | 44 +++- 10 files changed, 205 insertions(+), 151 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index c1bb266ba5..51282f72a9 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -119,14 +119,14 @@ Adressen abrufen Zum Anbieter gehen Zum Token - Stunde + stunde Importieren In Arbeit Später %1$s übrig Gesperrt Hauptnetz - Monat + monat Netzgebühr Der überwiesene Betrag wird um %1$s (%2$s) gekürzt, um die gewählte Gebührenhöhe zu decken. Weiter @@ -176,7 +176,7 @@ Es ist ein Fehler aufgetreten. Bitte versuche es erneut. Nicht erreichbar staking beenden - Woche + woche Ja Vertragsadresse kopiert! Verfügbare Netzwerke @@ -428,7 +428,6 @@ Die Änderung der Liquidität, die dem Token während des angegebenen Zeitraums zur Verfügung steht Liquidität Liquiditätsindex - Leer Gelistet auf Niedrig MarketCap diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index 67bc35be25..f6aeb64737 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -287,6 +287,7 @@ Comentarios Comentarios en Tangem No se puede completar una transacción + Error de descripción de moneda Esta transacción La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap. Especifique el límite aprobado para el token seleccionado. @@ -390,6 +391,7 @@ Suministro circulante El número total de monedas que están disponibles para el comercio y que circulan en el mercado. Suministro circulante + No se encontraron intercambios Compradores experimentados Compradores netos con el requisito adicional de tener al menos 100 transacciones salientes Compradores experimentados @@ -407,6 +409,7 @@ El cambio en la cantidad de liquidez disponible para el token durante el período de tiempo especificado Liquidez Índice de liquidez + Listado en Bajo Capital. de mercado El valor total de una criptomoneda calculado multiplicando su precio por la cantidad de monedas en circulación @@ -477,12 +480,12 @@ Creando un backup Leer más sobre seed phrase - Vacío + Escriba estas %d palabras en el orden que se indica a continuación y guárdelas en un lugar seguro y secreto. Su seed phrase - Vacío + %d palabras Para importar su billetera, ingrese su seed phrase en el campo de abajo diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 5efbcda226..fd6c3314ac 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -287,6 +287,7 @@ Commentaires Commentaires sur Tangem Impossible d\'effectuer une transaction + Erreur de description de la pièce Cette transaction Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange. Spécifiez la limite approuvée pour le jeton sélectionné @@ -390,6 +391,7 @@ Approvisionnement en circulation Le nombre total de pièces disponibles pour le trading et en circulation sur le marché Approvisionnement en circulation + Aucun échange trouvé Acheteurs expérimentés Acheteurs nets avec l\'exigence supplémentaire d\'avoir au moins 100 transactions sortantes Acheteurs expérimentés @@ -407,6 +409,7 @@ Le changement dans la quantité de liquidité disponible pour le jeton pendant la période spécifiée Liquidité Indice de liquidité + Listé sur Faible Cap. boursière La valeur d\'une crypto-monnaie est calculée en multipliant son prix par le nombre de pièces en circulation @@ -477,12 +480,12 @@ Sauvegarde en cours En savoir plus sur les seed phrases - Vide + Écrivez ces %d mots dans l\'ordre indiqué ci-dessous et conservez-les dans un endroit sûr et secret. Votre seed phrase - Vide + %d mots Pour importer votre portefeuille, entrez votre seed phrase dans le champ ci-dessous diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 5c0cc709dd..3e346d67a4 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -125,6 +125,7 @@ Получить ваши адреса К провайдеру Перейти в токен + час Импортировать В процессе Позже @@ -181,6 +182,7 @@ Произошла ошибка. Пожалуйста, попробуйте снова. Недоступно Завершить стейкинг + неделю Да Адрес контракта скопирован! Доступные сети @@ -772,6 +774,7 @@ Каждый %s Каждый день Каждые %s дня + Каждые За эпоху За эру Ежечасно @@ -780,6 +783,7 @@ Вознаграждения Стейкинг закрыт Застейкать еще + Вы стейкаете %1$s и будете получать награду %2$s Нажмите для разблокировки Нажмите для разблокировки Нажмите для вывода diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index baed26eb8c..520382b7eb 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -12,19 +12,19 @@ Не вдається відправити транзакцію Обраний гаманець не підтримує мережу %1$s Щоб активувати криптографічне шифрування блокчейну %1$s, вам потрібно скинути налаштування гаманця до заводських. Зніміть свої кошти перед цим, щоб переконатися, що ви їх не втратите, а потім завершіть процес скидання. Вхід до поточного гаманця буде неможливий після скидання. - Токени в мережі %1$s не підтримуються цією карткою через обмеження прошивки. - У вас виникли труднощі зі скануванням картки? + Токени в мережі %1$s не підтримуються цією карткою або кільцем через обмеження прошивки. + У вас виникли труднощі зі скануванням картки або кільця? Ця картка не призначена для роботи з цим додатком Комісія за замовчуванням Увімкніть комісію за замовчуванням, щоб автоматично встановлювати комісію за транзакцію і пропускати сторінку комісій під час відправлення коштів. Ви завжди можете повернутися до цієї сторінки за необхідності. Перейдіть до налаштувань, щоб увімкнути біометричну автентифікацію в додатку Tangem Увімкнути біометричну автентифікацію Усі збережені коди доступу будуть видалені. Вам доведеться вводити код доступу при роботі з гаманцем. - При відключенні функції збереження гаманця всі збережені до цього гаманці будуть видалені зі застосунку. + При відключенні функції збереження гаманця всі до цього збережені гаманці будуть видалені зі застосунку. Зберегти код доступу - Підключіть функцію збереження кодів доступу від карток на телефоні у зашифрованому виді, і при роботі з карткою замість коду доступу буде запитуватися біометрична автентифікація. + Підключіть функцію збереження кодів доступу від карток на телефоні у зашифрованому виді, і при роботі з карткою або кільцем замість коду доступу буде запитуватися біометрична автентифікація. Зберігати гаманець у додатку - Увімкніть функцію привʼязки карток у застосунку, а також можливість біометричної автентифікації. Підпис транзакції й надалі буде потребувати картку. + Увімкніть функцію привʼязки карток у застосунку, а також можливість біометричної автентифікації. Підпис транзакції й надалі буде потребувати картку або кільце. Темна Світла Системна @@ -34,34 +34,34 @@ Більше не показувати Зрозуміло Баланси приховані - Будь ласка, відскануйте картку - Будь ласка, повторіть спробу через 30 секунд або відскануйте картку + Будь ласка, відскануйте картку або кільце + Будь ласка, спробуйте знову через 30 секунд або відскануйте картку або кільце Забагато спроб Ви вимкнули біометричну автентифікацію на своєму телефоні і не зможете зберігати гаманці в додатку. Щоб зберегти гаманці, будь ласка, увімкніть функцію біометричної автентифікації в налаштуваннях телефону. Почніть процес резервного копіювання Використовуйте банківську картку або інші способи оплати - %d картка - %d картки - %d карток - %d карток + %d пристрій + %d пристрої + %d пристроїв + %d пристроїв - Вимкніть цю опцію, якщо ви не хочете, щоб ця картка використовувалася для скидання кодів доступу до інших карток у цьому гаманці. Зверніть увагу, що це також унеможливить скидання коду доступу на цій картці. + Вимкніть цю опцію, якщо не хочете, щоб ця картка використовувалася для скидання кодів доступу на інших картках у цьому гаманці. Зверніть увагу, скидання коду доступу також не буде доступним на цій картці. Дозволяє використовувати цю картку для скидання коду доступу на інших картках у цьому гаманці Відновлення коду доступу Скинути Ви впевнені, що хочете це зробити? Зміна коду доступу - Код доступу буде змінено лише на цій картці - Усі картки у вибраному гаманці було скинуто до заводських налаштувань. Тепер ви можете створити новий гаманець. + Код доступу буде змінений лише на цій картці або кільцю + Усі пристрої Tangem у вибраному гаманці було скинуто до заводських налаштувань. Тепер ви можете створити новий гаманець. Скидання завершено - Ви хочете скинути наступну картку в цьому гаманці? - Скидання картки - Рекомендуємо завершити процес скидання для всіх карток у цьому гаманці - Ви скинули не всі картки + Бажаєте скинути наступний пристрій від цього гаманця? + Скидання гаманця + Рекомендуємо завершити процес скидання для всіх пристроїв Tangem гаманця + Ви скинули не всі Tangem пристрої Скинути до заводських налаштувань Тип безпеки - Налаштування картки + Налаштування пристрою Крім мережевих комісій, мережа Cardano стягує %1$s ADA при транзакції з токеном %2$s Вимоги до транзакції Cardano Щоб здійснити транзакцію %1$s, внесіть певну суму ADA для покриття мережевої комісії та мінімальне значення ADA (рекомендовано 5 ADA) @@ -122,7 +122,7 @@ За ринком Повільно Швидкість та комісія - Отримати адреси + Отримати ваші адреси Перейти до провайдера Перейти до токену година @@ -141,6 +141,7 @@ Зараз ОК Основна картка + Основне кільце Парольна фраза Вставити Політикою конфіденційності @@ -218,13 +219,13 @@ Код доступу Перед скануванням картки вам потрібно буде ввести правильний код доступу Затримка сканування - Цей механізм захищає картку від безконтактних атак. Між скануванням картки та виконанням команди буде додана затримка. + Цей механізм захищає картку або кільце від безконтактних атак. Між скануванням картки та виконанням команди буде додана затримка. Пароль Перед виконанням будь-якої команди, що тягне за собою зміну стану картки, вам необхідно буде ввести пароль. Реферальна програма Переверніть екран пристрою вниз, щоб швидко приховати та відобразити баланси %s хешів - Номер картки + Номер пристрою Звернутися у підтримку Додати більше карток Валюта застосунку @@ -235,7 +236,7 @@ Деталі Перевірте підключення до інтернету або змініть мережу Умови використання - Ви використали картку від іншого гаманця. Прикладіть картку, пов\'язану з цим гаманцем. + Ви використали картку або кільце від іншого гаманця. Прикладіть картку або кільце, пов\'язану з цим гаманцем. Мої токени У вас немає доданих токенів. Додайте токени для обміну Недоступний для обміну з %s @@ -290,14 +291,14 @@ Токенів не знайдено. Будь ласка, спробуйте інший запит ID: %s ID транзакції скопійовано - Конвертуйте одну з ваших валют в іншу + Обміняйте будь-який актив у своєму портфелі на цей токен Інформація нижче не є обов\'язковою. Ви можете стерти її, якщо бажаєте. Розкажіть, яких функцій вам не вистачає, і ми спробуємо вам допомогти. - Розкажіть, будь ласка, яку картку ви маєте? + Розкажіть, будь ласка, яку картку або кільце ви маєте? Привіт, команда підтримки, Будь ласка, розкажіть нам більше про вашу проблему. Кожна дрібниця може допомогти. Мої пропозиції - Не вдається відсканувати картку + Не вдається відсканувати картку/кільце Звернення в підтримку Звернення в підтримку Tangem Не вдається відправити транзакцію @@ -308,20 +309,21 @@ Кількість %s Функція підтвердження необхідна для надання дозволу іншій адресі на використання певної кількості ваших токенів. За задумом, смарт-контракти не можуть отримати доступ до ваших токенів без вашого схвалення. \"Розблоковуючи\" свої токени, ви дозволяєте смарт-контракту StakeKit використовувати їх. Майнери мережі отримують плату за газ (сплачену вами), щоб зафіксувати цю дію в блокчейні. Ви зможете застейкати свій токен після того, як дасте дозвіл. Щоб продовжити, вам потрібно дозволити смарт-контракту StakeKit використовувати ваш %s - Щоб продовжити, вам потрібно надати дозвіл смарт-контракту %1s використовувати ваш %2s + Щоб продовжити, вам потрібно дозволити смарт-контракту %1s використовувати ваш %2s Надати дозвіл Необмежено Купити Сканувати - Ця інформація була створена за допомогою ШІ - Щоб змінити код доступу, прикладіть картку, як показано вище, і не прибирайте її до закінчення операції + Ця інформація була створена за допомогою ШІ.\nНатисніть тут, якщо знайшли помилку. + Щоб змінити код доступу, прикладіть картку або кільце, як показано вище, і не прибирайте її до закінчення операції Щоб змінити пароль, прикладіть картку, як показано вище, і не прибирайте її до закінчення операції Щоб створити гаманець, прикладіть картку, як показано вище, і не прибирайте її до завершення операції + Щоб створити гаманець, торкніться кільця, як показано вище, і не прибирайте до кінця операції Прикладіть картку #%s для скидання Прикладіть, щоб відсканувати Прикладіть, щоб підписати - Прикладіть картку - Ви оновили біометричні дані, відскануйте свою картку для входу + Прикладіть картку або кільце + Ви оновили дані біометрії, відскануйте свою картку або кільце для входу Ваш баланс повинен перевищувати суму комісії для здійснення переказу Недостатньо балансу У вас недостатньо Mana для цієї транзакції. Будь ласка, зачекайте, поки Mana буде поповнена. Ваш баланс Mana становить %1$s/%2$s @@ -333,7 +335,7 @@ Щоб почати відстежувати свої криптоактиви та транзакції, додайте токени Керування токенами Для доступу до всіх мереж необхідно відсканувати картку - Відскануйте картку + Відскануйте картку або кільце Насолоджуйтесь %1$s комісією за обслуговування на свопах через Changelly з %2$s по %3$s лютого. Обмін із Changelly, %s комісії Токени @@ -369,7 +371,7 @@ Доступні мережі Моє портфоліо Маркет - Щоб згенерувати адреси для обраних мереж, потрібно відсканувати свою картку Tangem + Щоб згенерувати адреси для обраних мереж, відскануйте вашу картку або кільце Tangem гаманця Щоб додати токени, потягніть вгору або торкніться панелі пошуку Дані цього розділу отримані з наступних мереж: %s Не вдалося завантажити дані... @@ -397,10 +399,10 @@ В тренді Про %s - біржа - біржі - бірж - бірж + %d біржа + %d біржі + %d бірж + %d бірж На основі %d оцінки @@ -465,11 +467,11 @@ Потягніть вгору або торкніться панелі пошуку, щоб додати токени безпосередньо з маркету Додати токени Функція NFC недоступна на вашому пристрої - Вам потрібно встановити єдиний код доступу для захисту всіх ваших карток + Налаштуйте єдиний код доступу для захисту всіх ваших карток або кілець Захист - Пізніше ви зможете налаштувати індивідуальний код доступу до кожної картки + Встановіть індивідуальний код доступу для кожної картки або кільця пізніше. Персоналізація - Код доступу можна відновити за допомогою прив\'язаної картки. Не зберігайте всі картки в одному місці. + Відновіть код доступу за допомогою прив\'язаної картки або кільця. Не зберігайте всі свої пристрої в одному місці. Відновлення Оберіть будь-яке слово, фразу або число в якості коду доступу Створити код доступу @@ -477,27 +479,29 @@ Повторно введіть код доступу Код доступу повинен містити не менше 4 символів Введені коди доступу не збігаються - Необхідно повторити операцію. Карту буде скинуто до заводських налаштувань. + Необхідно повторити операцію, при цьому картка буде скинута до заводських налаштувань. Помилка активації Додати токени - Ви додали одну резервну картку. Після завершення процесу резервного копіювання ви не зможете додати більше резервних карток. Якщо у вас є ще одна картка, додайте її до резервної копії. Ви бажаєте продовжити? + Ви додали одну резервну картку або кільце. Після завершення процесу резервного копіювання ви не зможете додати їх більше. Якщо у вас є ще одна картка або кільце, додайте її до резервної копії. Бажаєте продовжити? Процес резервного копіювання частково завершено. Ви не можете вийти з нього зараз. Парольна фраза – це розширена функція безпеки, яку використовують криптогаманці. Вона додає додаткове слово або фразу на ваш вибір до вже існуючої seed - фрази, щоб розблокувати абсолютно новий набір адрес. - Додати резервну картку - Відсканувати картку #%d + Додати картку або кільце + Сканувати картку + Сканувати картку #%d Створити резервну копію - Відсканувати основну картку + Сканувати картку + Сканувати кільце Перейти до мого гаманця Завершення бекапу Отримати криптовалюту Сканувати основну картку Пропустити Як це працює? - Давайте згенеруємо всі ключі на вашій картці та створимо безпечний гаманець + Давайте згенеруємо всі ключі на вашій картці або кільці та створимо безпечний гаманець Створити гаманець Створити гаманець Інші опції - Ваші ключі будуть надійно згенеровані всередині картки. Ніякої seed-фрази, а це означає, що ніхто не зможе її експортувати або вкрасти. + Ваші ключі будуть надійно згенеровані всередині чіпу. Ніякої seed-фрази, а це означає, що ніхто не зможе її експортувати або вкрасти. Генеруйте ключі приватно Ваша картка активована та готова до використання Успішно! @@ -523,27 +527,30 @@ Щоб імпортувати гаманець, введіть seed-фразу в поле нижче Згенерувати seed-фразу Імпорт гаманця - Seed-фраза — це набір слів, який дозволяє відновити ваш гаманець. На відміну від ключів, що генеруються карткою, seed-фраза не захищена і може бути скопійована та викрадена. Використовуйте цю опцію на свій власний ризик. + Seed-фраза — це набір слів, який надає можливість відновити гаманець. На відміну від ключів, що генеруються карткою або кільцем, seed-фраза не захищена і може бути скопійована та вкрадена. Використовуйте цей варіант на свій власний страх та ризик. Використовувати seed-фразу Невірна seed-фраза. Будь ласка, перевірте порядок слів. Невірна seed-фраза. Будь ласка, перевірте правопис. Застаріло Щоб перевірити чи правильно ви записали seed-фразу, введіть 2-е, 7-е та 11-те слова Отже, давайте перевіримо - Щоб почати процес резервного копіювання, додайте одну або дві резервні картки. - Ви можете додати ще одну картку або завершити процес резервного копіювання + Щоб почати процес резервного копіювання, додайте одну або дві резервні картки або кільця. + Ви можете додати ще одну картку або кільце або завершити процес резервного копіювання Підготуйте резервну картку з номером %s - Відскануйте основну картку, щоб почати процес резервного копіювання. + Відскануйте основну картку або кільце, щоб почати процес резервного копіювання. Підготуйте основну картку з номером %s - Ваша картка налаштована та готова до використання. - Додано максимальну кількість карток. Завершіть процес резервного копіювання. - Активація картки + Підготуйте кільце та натисніть кнопку сканування нижче + Ваш гаманець налаштований та готовий до використання. + Додано максимальну кількість пристроїв. Завершіть процес резервного копіювання. + Активація гаманця + Резервна картка Резервна картка #%d - Немає резервних карток + Резервне кільце + Немає резервних пристроїв Сповіщення - Додано одну резервну картку + Додано один резервний пристрій Підготуйте свою картку - Додано дві резервні картки + Додано два резервних пристрої Поповніть гаманець на будь-яку суму, щоб почати користуватися карткою Щоб почати, просто поповніть гаманець більше, ніж на %1$s %2$s Купити криптовалюту @@ -551,7 +558,7 @@ Активація гаманця Процес поєднання карток частково завершено. Ви не можете вийти з нього зараз. Якщо процес створення гаманця буде перервано будь-яким чином, вам доведеться почати все спочатку - Ви можете створити резервну копію ключів на одній або двох інших порожніх картках Tangem Wallet. + Ви можете створити резервну копію своїх ключів на одній або двох інших порожніх картках або кільцях Tangem Wallet. Код доступу можна відновити за допомогою однієї з резервних карток. Всі резервні карти можна використовувати як повнофункціональні з ідентичними ключами. Ви зможете встановити код доступу для захисту своїх гаманців. @@ -569,7 +576,7 @@ Доступ до камери заборонено %1$s (%2$s) у мережі %3$s Надсилайте лише %s на цю адресу. Надсилання будь-якої іншої валюти призведе до її незворотної втрати. - Перекажіть кошти з іншого гаманця або біржі + Переказуйте кошти з будь-якого гаманця або біржі Взяти участь Не вдалося завантажити інформацію по реферальній програмі. Будь ласка, спробуйте пізніше. Не вдалося завантажити інформацію по реферальній програмі. Код помилки: %s. Будь ласка, спробуйте пізніше. @@ -606,13 +613,13 @@ Скинути картку Я розумію, що після виконання цієї дії у мене більше не буде доступу до поточного гаманця Я розумію, що не можу використати цю картку для відновлення свого коду доступу на інших картках поточного гаманця - Скидання до заводських налаштувань призведе до повного видалення гаманця з обраної картки. Ви не зможете відновити поточний гаманець або використати картку для відновлення коду доступу. - Скидання до заводських налаштувань призведе до повного видалення гаманця з обраної картки. Ви не зможете відновити поточний гаманець. + Скидання до заводських налаштувань призведе до повного видалення гаманця з обраної картки або кільця. Ви не зможете відновити поточний гаманець або використати цю картку або кільце для відновлення коду доступу. + Скидання до заводських налаштувань призведе до повного видалення гаманця з обраної картки або кільця. Ви не зможете відновити поточний гаманець. Власникам кілець - 3 обміни без комісії на Changelly до 15.11! Обмін з 0%% комісією! У вас є банківська картка іншої країни та посвідка на проживання або реєстрація за межами Російської Федерації? Російські банківські картки наразі не приймаються - Увійдіть у додаток та слідкуйте за своїм балансом без сканування картки + Увійдіть у додаток та слідкуйте за своїм балансом без сканування картки чи кільця Доступ до додатку Використовувати біометрію Для взаємодії з гаманцем будуть запитуватися біометричні дані замість коду доступу @@ -620,12 +627,12 @@ Схоже, що у вас відключена біометрична автентифікація, вона необхідна для збереження гаманців Увімкніть біометричну автентифікацію Бажаєте використовувати біометрію? - Зверніть увагу, що для здійснення транзакції з вашими коштами вам все одно знадобиться ваша картка + Зверніть увагу, що для здійснення транзакції з вашими коштами вам все одно знадобиться ваша картка або кільце Сканувати - Відскануйте картку, щоб змінити її налаштування. Зміни торкнуться лише відсканованої картки і не вплинуть на інші картки, прив\'язані до вашого гаманця. - Підготуйте свою картку + Відскануйте картку або кільце, щоб змінити її налаштування. Зміни торкнуться лише тої картки або кільця, які ви відсканували, і не вплинуть на інші пристрої, прив\'язані до вашого гаманця. + Підготуйте свій Tangem! Вже включено до введеної адреси - Сума комісії у %s разів перевищує рекомендовану. Переконайтеся, що користувацькі налаштування вірні. + Сума комісії у %s разів перевищує рекомендовану. Переконайтеся, що вказана комісія вірна. Ви вказали комісію нижче рекомендованої, це може спричинити затримку вашої транзакції. Продовжити? Причина: %1$s\nКод: %2$s Транзакція не завершена @@ -660,7 +667,7 @@ Сума перевищує баланс Для збереження вашого акаунту у блокчейні та захисту від можливих ризиків необхідний баланс не менше %s. Ця сума залишиться на вашому рахунку та не може бути знята. Екзистенційний депозит - Сума комісії в %s разів перевищує рекомендовану. Переконайтеся, що користувацькі налаштування вірні. + Сума комісії в %s разів перевищує рекомендовану. Переконайтеся, що вказана комісія вірна. Встановлена комісія завелика Через особливості мережі %1$s комісія за переказ всього балансу вища. Щоб зменшити комісію, Ви можете залишити %2$s. Підвищена комісія @@ -694,12 +701,12 @@ Ви надсилаєте **%1$s** і %2$s Ви надсилаєте **%1$s** комісія мережі буде покрита, використовуючи %1$s енергію - комісія мережі буде зменшена, витрачаючи %1$s + Комісія мережі буде зменшена, за рахунок використання %1$s енергії включно з комісією мережі %1$s Транзакція успішно підписана і відправлена до блокчейну. Баланс гаманця буде оновлено через деякий час %1$s — це монета у мережі Tron. Щоб розрахувати комісію та здійснити транзакцію, вам необхідно внести певну кількість Tron (TRX) на свій рахунок. Трансакцію надіслано - Підготуйте до сканування картку, яку потрібно налаштувати. + Підготуйтеся до сканування кільця або картки, яку ви хочете налаштувати. Забути гаманець Це призведе до видалення гаманця з застосунку. Сам гаманець можна додати знову. Ім\'я @@ -719,11 +726,11 @@ Рейтинг ринку Метрики Мінімальні вимоги - Немає винагород, щоб отримати + Немає винагород, до отримання Отримати винагороду - Спосіб отримання винагороди за стейкінг. Його можна отримати автоматично або вручну. + Метод отримання винагород за стейкінг.\nВін може зараховуватися автоматично на вашу адресу або вручну, коли винагороду треба вивести, створивши транзакцію на її отримання. Розклад винагород - Це графік, який визначає коли учасники стейкінгу отримують свої винагороди. + Це період, який визначає, коли учасники стейкінгу отримують свої винагороди. Нагороди для отримання: %s Стейкінг %s Період розблокування @@ -740,19 +747,20 @@ Стейкайте безпечно та почніть отримувати винагороди щоденно Стейкайте безпечно та почніть отримувати винагороди щогодини Стейкайте безпечно та почніть отримувати винагороди щомісяця - Стейкінг дозволяє заробляти %1$s. Ваші винагороди за стейкінг зараховуються щодня. - Стейкінг дозволяє заробляти %1$s. Ваші винагороди за стейкінг зараховуються кожну годину. - Стейкінг дозволяє заробляти %1$s. Ваші винагороди за стейкінг зараховуються щомісяця. - Стейкінг дозволяє заробляти %1$s. Ваші винагороди за стейкінг зараховуються щотиждня. + Стейкінг дає змогу вам отримувати %1$s. Винагорода буде зараховуватися кожного дня. + Стейкінг дає змогу вам отримувати %1$s. Винагорода буде зараховуватися кожну годину. + Стейкінг дає змогу вам отримувати %1$s. Винагорода буде зараховуватися щомісяця. + Стейкінг дає змогу вам отримувати %1$s. Винагорода буде зараховуватися кожен тиждень. Стейкайте безпечно та почніть отримувати винагороди щотижня Отримуйте винагороду за стейкінг Стейкінг тимчасово недоступний через проблеми в мережі. Будь ласка, спробуйте пізніше. Стейкінг в мережі %1$s з новим валідатором автоматично переведе всі раніше застейкані кошти до цього валідатора Реінвестуйте зароблені винагороди у суму стейкінгу, щоб збільшити потенційний прибуток. + Рестейк дозволяє вам перемістити ваші кошти від одного валідатора до іншого без необхідності виводити кошти зі стейкінгу Розблокуйте свої кошти, щоб вивести їх зі стейкінгу. Розблокування займе %s. Ваші кошти будуть доступні для використання після закінчення 21-денного періоду розблокування. Винагорода буде отримана разом з вашими незастейканими коштами. Ваші кошти будуть доступні після %s періоду розблокування. - Тепер ви можете вивести свої кошти, вони будуть доступні для використання відразу + Ви можете вивести свої кошти зі стейкінгу, вони будуть доступні для використання відразу Стейкінг в мережі Tron з новим валідатором автоматично переведе всі раніше застейкані кошти до цього валідатора Підготовка Готова до виведення @@ -763,19 +771,21 @@ Переголосувати Автоматично Вручну - Блок - День + За блок + Щоденно Кожен %s Щодня - Кожен %s - Епоха - Ера - Година + Кожні %s дні + Кожні + За епоху + За еру + Погодинно Місяць - Тиждень + Потижнево Винагороди Стейкінг закрито Застейкати більше + Ви стейкаєте %1$s і будете отримуватиме винагороду %2$s Натисніть, щоб розблокувати Натисніть, щоб розблокувати або проголосувати Натисніть, щоб вивести кошти @@ -795,13 +805,13 @@ Проголосувати Зняти Ваші стейкінги - Тримайте свою криптовалюту в безпеці. Приватні ключі надійно зберігаються на картці. + Тримайте свою криптовалюту в безпеці. Приватні ключі надійно зберігаються на картці або кільці Революційний апаратний гаманець - До трьох карток з одним гаманцем + До трьох карток або кілець з одним гаманцем Всі ключі у безпеці - Апаратний гаманець для ваших біткоїнів, ефіріуму та багатьох інших валют одночасно — і все це на одній картці + Апаратний гаманець для ваших біткоїнів, ефіріуму та багатьох інших валют одночасно — і все це на одній картці або кільці Тисячі криптовалют - Використовуйте його в дорозі, будь-де і будь-коли. Ніяких дротів чи батарейок. Просто прикладіть картку до телефону, коли вам потрібна криптовалюта. + Використовуйте його в дорозі, будь-де і будь-коли. Ніяких дротів чи батарейок. Просто прикладіть картку або кільце до телефону, коли вам потрібна криптовалюта. Гаманець для кожного Зустрічайте Tangem Обмінюйте, купуйте NFT, отримуйте позики та робіть депозити у понад 100 різних децентралізованих сервісах @@ -862,28 +872,28 @@ Ви відсканували не ту twin-картку. Будь ласка, спробуйте відсканувати іншу Це картка, яку ви тримаєте в руках. У парної картки номер %s.\n\nОбидві картки можна використовувати для зняття коштів з цього гаманця. Один гаманець. Дві картки. - Відсканувати картку #%s + Сканувати картку #%s Створення гаманця Відскануйте twin-картку # %s Підготовка картки Tangem Twin Ця дія є незворотною. Ви не матимете доступу до старого гаманця. Прикладіть twin-картку з номером %s та не прибирайте її до завершення операції - Використовуйте %s або відскануйте картку, щоб отримати доступ до свого гаманця + Використовуйте %s або відскануйте картку/кільце, щоб отримати доступ до свого гаманця Будьте в курсі останніх функцій та новин Дізнавайтеся першими про нові акції Бажаєте використовувати Push-повідомлення? Додати новий гаманець Ви впевнені, що хочете видалити цей гаманець? - Сталася помилка, будь ласка, відскануйте свою картку, щоб увійти в систему + Сталася помилка, будь ласка, відскануйте свою картку або кільце, для входу Цей гаманець вже збережено, ви можете додати інший Гаманець з назвою %s вже існує Назва гаманця - Перейменувати гаманець + Перейменування гаманця Розблокувати все Розблокувати все з %s Блокчейн недоступний. Спробуйте пізніше - Відскануйте картку + Відскануйте картку або кільце Запит на підпис повідомлення.\n\n%s Dapp %1$s, запит на\nпідпис транзакції BNB.\n\n%2$s Торговий ордер на %1$s\nЦіна: %2$s\nСума до отримання: %3$s\nСума до сплати: %4$s @@ -897,7 +907,7 @@ Запит на підключення сеансу WalletConnect містить непідтримувані блокчейни. Непідтримувані блокчейни:\n Зв\'язок з цим Dapp сервісом не може бути встановлений через його технічну реалізацію. Ми зіткнулися з невідомою помилкою. Повідомлення про помилку: %s. Якщо проблема не зникає — зверніться до нашої служби підтримки. - Невірна картка обрана в додатку Tangem + Невірна картка або кільце обрана в додатку Tangem Не вдалося створити транзакцію з даних Dapp. Код: %s Ми зіткнулися з невідомою помилкою. Код помилки: %d. Якщо проблема не зникає — зверніться до нашої служби підтримки. Немає відкритих сеансів WalletConnect @@ -922,10 +932,10 @@ Немає підключення до інтернету Налаштування гаманця Tangem - Використовуйте %s або відскануйте картку, щоб розблокувати доступ до гаманця + Використовуйте %s або відскануйте картку/кільце, щоб розблокувати доступ до вашого гаманця Процес підтвердження наразі триває і буде завершено найближчим часом Підтвердження в процесі - Схоже, що активація картки була виконана неправильно. Це може бути пов\'язано з проблемою з модулем NFC вашого пристрою або неправильним прикладанням картки до пристрою. Зверніться за допомогою до нашої служби підтримки. + Схоже, що активація карток або кільця була виконана неправильно. Це може бути пов\'язано з проблемою з модулем NFC вашого пристрою або неправильним прикладанням картки або кільця до телефону. Будь ласка, зверніться за допомогою до нашої служби підтримки для уточнення деталей. Помилка активації За рішенням розробників мережі BNB стандарт BEP-2 перестане підтримуватись у червні 2024 року. Щоб не втратити свої активи, їх необхідно конвертувати у стандарт BEP-20. Використовуйте функцію обміну, щоб перевести їх у мережу BNB Smart Chain. Відключення мережі BNB Beacon Chain @@ -944,7 +954,7 @@ Для роботи з мережею вимагається депозит Обмін буде доступний після завершення %s транзакції У вас є активна транзакція - Затвердження обміну триває і незабаром буде завершено + Дозвіл обміну триває і незабаром буде завершено Затвердження в процесі Мінімальна сума обміну становить - %1$s. Будь ласка, переконайтеся, що залишок на рахунку після обміну буде не менше за %2$s. У вашому списку немає доступних монет для обміну %s @@ -968,13 +978,13 @@ На цій картці залишається лише %s підписів. Ви повинні вивести всі свої кошти. Низька кількість підписів Токени в різних мережах можуть мати різні адреси. Переконайтеся, що ваша адреса відповідає мережі, коли переказуєте кошти. - Токен MATIC мігрує до POL. Однак кінцевого терміну не встановлено і MATIC ще не застарілий. Ви можете безпечно продовжувати використовувати токен MATIC або обміняти його на POL. + Токен MATIC мігрує до POL. Однак кінцевого терміну не встановлено і MATIC ще не застарілий. Ви можете спокійно продовжувати використовувати токен MATIC або обміняти його на POL. Міграція MATIC у POL - Використовуйте вашу картку, щоб отримати адресу для %d мережі - Використовуйте вашу картку, щоб отримати адреси для %d мереж - Використовуйте вашу картку, щоб отримати адреси для %d мереж - Використовуйте вашу картку, щоб отримати адреси для %d мереж + Використовуйте вашу картку або кільце, щоб отримати адресу для %d мережі + Використовуйте вашу картку або кільце, щоб отримати адреси для %d мереж + Використовуйте вашу картку або кільце, щоб отримати адреси для %d мереж + Використовуйте вашу картку або кільце, щоб отримати адреси для %d мереж Деякі адреси відсутні Мережа наразі недоступна. Будь ласка, спробуйте пізніше. @@ -1001,11 +1011,11 @@ Ви не завершили резервне копіювання. Бажаєте продовжити? Так, поновити Відмовитися - Якщо зараз відмовитися, то доведеться скинути картки до заводських налаштувань, щоб почати спочатку + Якщо зараз відмовитися, то доведеться скидувати пристроїв до заводських налаштувань, щоб почати спочатку Відновити бекап Це незворотна дія Увійдіть за допомогою %s - Сканувати картку - Використовуйте %s або відскануйте картку для доступу в додаток + Сканувати картку або кільце + Використовуйте %s або відскануйте картку або кільце для входу у додаток З поверненням! diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index afcccd7b55..ff9ddc76d8 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -338,7 +338,7 @@ Coin market cap Blockchain the cryptocurrency was initially created Native network - Using non-native networks for tokens enables cross-blockchain interoperability, allowing assets to be utilized in diverse decentralized applications and smart contracts across platforms. However, this often involves a custodian or smart contract to hold the original asset securely, introducing centralization and counterparty risk. + Using non-native networks for tokens enables cross-blockchain interoperability, allowing assets to be utilized in diverse decentralized applications and smart contracts across platforms. However, this often involves a custodian or smart contract to hold the original asset securely, introducing centralization and counterparty risk. Not original or primary blockchain the token is hosted Non-native networks Choose networks @@ -756,6 +756,7 @@ Each %s Each day Each %s days + Each Per Epoch Per Era Hourly @@ -764,7 +765,7 @@ Rewards Stake locked Stake more - You stake %1$s and will be receiving your reward each %2$s + You stake %1$s and will be receiving your reward %2$s Tap to unlock Tap to unlock or vote Tap to withdraw diff --git a/core/ui/src/main/java/com/tangem/core/ui/extensions/TextReference.kt b/core/ui/src/main/java/com/tangem/core/ui/extensions/TextReference.kt index c7a5af394e..efcf847a05 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/extensions/TextReference.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/extensions/TextReference.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString.Builder import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.decapitalize import org.intellij.markdown.MarkdownElementTypes import kotlin.contracts.ExperimentalContracts import kotlin.contracts.contract @@ -26,11 +27,16 @@ sealed interface TextReference { /** * Text resource id * - * @property id resource id - * @property formatArgs arguments. Impossible to use [kotlinx.collections.immutable.ImmutableList] because [Any] is - * unstable. + * @property id resource id + * @property formatArgs arguments. Impossible to use [kotlinx.collections.immutable.ImmutableList] because + * [Any] is unstable. + * @property decapitalize whether resolved reference should be decapitalized */ - data class Res(@StringRes val id: Int, val formatArgs: WrappedList = WrappedList(emptyList())) : TextReference + data class Res( + @StringRes val id: Int, + val formatArgs: WrappedList = WrappedList(emptyList()), + val decapitalize: Boolean = false, + ) : TextReference /** * Plural resource id @@ -78,10 +84,15 @@ sealed interface TextReference { * * @param id The resource ID of the string. * @param formatArgs A list of format arguments to be applied to the string resource. - * @return A [TextReference] representing the string resource with format arguments. + * @param decapitalize Whether resolved reference should be decapitalized + * @return [TextReference] representing the string resource with format arguments. */ -fun resourceReference(@StringRes id: Int, formatArgs: WrappedList = WrappedList(emptyList())): TextReference { - return TextReference.Res(id, formatArgs) +fun resourceReference( + @StringRes id: Int, + formatArgs: WrappedList = WrappedList(emptyList()), + decapitalize: Boolean = false, +): TextReference { + return TextReference.Res(id, formatArgs, decapitalize) } /** @@ -161,7 +172,13 @@ fun TextReference.resolveReference(): String { .map { if (it is TextReference) it.resolveReference() else it } .toTypedArray() - stringResource(id = id, *args) + val resolvedReference = stringResource(id = id, *args) + + if (decapitalize) { + resolvedReference.replaceFirstChar { char -> char.lowercase() } + } else { + resolvedReference + } } is TextReference.PluralRes -> pluralStringResource(id, count, *formatArgs.toTypedArray()) is TextReference.Str -> value diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt index e32fc821f9..01e54c47d2 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt @@ -11,7 +11,7 @@ import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.features.staking.impl.R import com.tangem.features.staking.impl.presentation.state.* -import com.tangem.features.staking.impl.presentation.state.utils.getRewardSchedule +import com.tangem.features.staking.impl.presentation.state.utils.getRewardScheduleText import com.tangem.utils.transformer.Transformer import kotlinx.collections.immutable.persistentListOf @@ -62,9 +62,10 @@ internal class SetConfirmationStateLoadingTransformer( fiatCurrencyCode = appCurrency.code, fiatCurrencySymbol = appCurrency.symbol, ) - val rewardSchedule = getRewardSchedule( - yield.metadata.rewardSchedule, - cryptoCurrency.network.id.value, + val rewardSchedule = getRewardScheduleText( + rewardSchedule = yield.metadata.rewardSchedule, + networkId = cryptoCurrency.network.id.value, + decapitalize = true, ) return if (isEnterAction && amountDecimal != null && rewardSchedule != null) { resourceReference( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt index e979ce93c5..0571fbf65e 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt @@ -18,7 +18,7 @@ import com.tangem.features.staking.impl.presentation.state.* import com.tangem.features.staking.impl.presentation.state.bottomsheet.InfoType import com.tangem.features.staking.impl.presentation.state.converters.RewardsValidatorStateConverter import com.tangem.features.staking.impl.presentation.state.converters.YieldBalancesConverter -import com.tangem.features.staking.impl.presentation.state.utils.getRewardSchedule +import com.tangem.features.staking.impl.presentation.state.utils.getRewardScheduleText import com.tangem.features.staking.impl.presentation.viewmodel.StakingClickIntents import com.tangem.lib.crypto.BlockchainUtils.isPolkadot import com.tangem.utils.Provider @@ -200,7 +200,11 @@ internal class SetInitialDataStateTransformer( } private fun createRewardScheduleItem(): RoundedListWithDividersItemData? { - val endTextReference = getRewardScheduleText() ?: return null + val endTextReference = getRewardScheduleText( + rewardSchedule = yield.metadata.rewardSchedule, + networkId = cryptoCurrencyStatusProvider().currency.network.id.value, + decapitalize = false, + ) ?: return null return RoundedListWithDividersItemData( id = R.string.staking_details_reward_schedule, @@ -252,18 +256,6 @@ internal class SetInitialDataStateTransformer( return resourceReference(R.string.common_range, wrappedList(formattedMinApr, formattedMaxApr)) } - private fun getRewardScheduleText(): TextReference? { - val rewardSchedule = getRewardSchedule( - yield.metadata.rewardSchedule, - cryptoCurrencyStatusProvider().currency.network.id.value, - ) ?: return null - - return resourceReference( - R.string.staking_reward_schedule_each, - wrappedList(rewardSchedule), - ) - } - private companion object { val EQUALITY_THRESHOLD = BigDecimal(1E-10) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt index 5012e225b7..510266948e 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt @@ -16,23 +16,45 @@ private data object StakingRewardSchedule { val SOLANA_SCHEDULE = 2 to 3 } -internal fun getRewardSchedule(schedule: Yield.Metadata.RewardSchedule, networkId: String): TextReference? = - when (schedule) { +internal fun getRewardScheduleText( + rewardSchedule: Yield.Metadata.RewardSchedule, + networkId: String, + decapitalize: Boolean, +): TextReference? { + return when (rewardSchedule) { + Yield.Metadata.RewardSchedule.WEEK -> resourceReference( + id = R.string.staking_reward_schedule_week, + decapitalize = decapitalize, + ) + Yield.Metadata.RewardSchedule.HOUR -> resourceReference( + id = R.string.staking_reward_schedule_hour, + decapitalize = decapitalize, + ) + Yield.Metadata.RewardSchedule.DAY -> resourceReference( + id = R.string.staking_reward_schedule_day, + decapitalize = decapitalize, + ) + Yield.Metadata.RewardSchedule.MONTH -> resourceReference( + id = R.string.staking_reward_schedule_month, + decapitalize = decapitalize, + ) Yield.Metadata.RewardSchedule.BLOCK, Yield.Metadata.RewardSchedule.EPOCH, Yield.Metadata.RewardSchedule.ERA, - -> getCustomRewardSchedule(networkId) - Yield.Metadata.RewardSchedule.WEEK -> resourceReference(R.string.common_week) - Yield.Metadata.RewardSchedule.HOUR -> resourceReference(R.string.common_hour) - Yield.Metadata.RewardSchedule.DAY -> pluralReference(R.plurals.common_days_no_param, count = 1) - Yield.Metadata.RewardSchedule.MONTH -> resourceReference(R.string.common_month) - Yield.Metadata.RewardSchedule.UNKNOWN -> null + -> getCustomRewardSchedule( + networkId = networkId, + decapitalize = decapitalize, + ) + else -> null } +} -private fun getCustomRewardSchedule(networkId: String): TextReference? { +private fun getCustomRewardSchedule(networkId: String, decapitalize: Boolean = false): TextReference? { return when { isSolana(networkId) -> { combinedReference( + resourceReference(id = R.string.staking_reward_schedule_each_plural, decapitalize = decapitalize), + stringReference(NON_BREAKING_SPACE.toString()), stringReference("${SOLANA_SCHEDULE.first}$MINUS${SOLANA_SCHEDULE.second}$NON_BREAKING_SPACE"), pluralReference( id = R.plurals.common_days_no_param, @@ -42,11 +64,13 @@ private fun getCustomRewardSchedule(networkId: String): TextReference? { } isCosmos(networkId) -> { combinedReference( + resourceReference(id = R.string.staking_reward_schedule_each_plural, decapitalize = decapitalize), + stringReference(NON_BREAKING_SPACE.toString()), stringReference("${COSMOS_SCHEDULE.first}$MINUS${COSMOS_SCHEDULE.second}$NON_BREAKING_SPACE"), resourceReference(R.string.common_second_no_param), ) } - isTron(networkId) -> pluralReference(R.plurals.common_days_no_param, count = 1) + isTron(networkId) -> resourceReference(id = R.string.staking_reward_schedule_day, decapitalize = decapitalize) else -> null } } \ No newline at end of file From 1ac90ec39a95084be84c0902c08137d23db5fcf7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 15:50:49 +0400 Subject: [PATCH 08/34] Updated on 2026-08-14 --- core/res/src/main/res/values-es/strings.xml | 25 +++++++++++++++++++ core/res/src/main/res/values-fr/strings.xml | 25 +++++++++++++++++++ core/res/src/main/res/values-ja/strings.xml | 20 ++++++++------- gradle/dependencies.toml | 2 +- .../tangem/blockchainsdk/utils/Blockchain.kt | 2 ++ 5 files changed, 64 insertions(+), 10 deletions(-) diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index f6aeb64737..58676a38b9 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -97,6 +97,10 @@ %d día %d días + + día + días + Suprimir Desactivado Listo @@ -115,12 +119,14 @@ Obtener direcciones Ir al proveedor Ir al token + hora Importe En progreso Más tarde %1$s quedan Bloqueado Red principal + mes Tarifa de la red La cantidad enviada se reducirá en %1$s (%2$s) para cubrir el nivel de tarifa seleccionado Siguiente @@ -144,6 +150,7 @@ Guardar cambios Buscar en el mercado Buscar tokens + sec Seed phrase Seleccione una acción Vender @@ -169,6 +176,7 @@ Hubo un error. Por favor inténtelo de nuevo. Inaccesible Termine el staking + semana Dirección del contract copiada Redes disponibles @@ -249,6 +257,7 @@ En intercambio En intercambio Fallido + En pausa Depósito recibido Esperando depósito Esperando depósito @@ -348,6 +357,7 @@ La billetera no admite más de una red Para comprar, intercambiar o recibir este activo, agréguelo a su portafolio Este activo no está disponible en la billetera + Este activo no está disponible para esta billetera Añadir al portafolio Agregue un token Redes disponibles @@ -380,6 +390,10 @@ Top Perdedores Tendencias Acerca de %s + + intercambio + intercambios + Basado en %d evaluación Basado en %d evaluaciónes @@ -392,6 +406,11 @@ El número total de monedas que están disponibles para el comercio y que circulan en el mercado. Suministro circulante No se encontraron intercambios + Intercambio + Precaución + Arriesgado + Confiable + Intercambios Compradores experimentados Compradores netos con el requisito adicional de tener al menos 100 transacciones salientes Compradores experimentados @@ -432,6 +451,7 @@ Volumen de operaciones (24 horas) La cantidad total de una criptomoneda que se ha negociado en las últimas 24 horas, lo que indica el nivel de actividad y liquidez en el mercado. Volumen de operaciones (24 horas) + Volumen Tire hacia arriba o toque la barra de búsqueda para agregar tokens directamente desde el mercado Agregar tokens NFC no está disponible en su dispositivo @@ -716,6 +736,7 @@ El staking no está disponible actualmente debido a las condiciones de la red. Inténtelo de nuevo más tarde. El staking en la red %1$s con un nuevo validador transferirá automáticamente todos los fondos previamente en staking a este validador. Reinvierta las recompensas obtenidas en el monto apostado, aumentando las ganancias potenciales. + La opción de volver a staking le permite mover sus fondos de un validador a otro sin necesidad de retirarlos. Desbloquee su dinero para retirarlo del proceso de staking. El desbloqueo demora %s minuto. Sus fondos estarán disponibles para su uso después del período de desvinculación de 21 días. La recompensa se retirará junto con los fondos de desvinculación. Sus fondos estarán disponibles para su uso después del período de desvinculación de %s. @@ -735,6 +756,7 @@ Cada %s Cada día Cada %s + Cada Época Era Hora @@ -743,7 +765,9 @@ Recompensas El stake está bloqueado Hacer más staking + Ud hace el staking de %1$s y recibirá %2$s Toque para desbloquear + Pulse para desbloquear o votar Toque para retirar Stake %s El unstaking de %s @@ -822,6 +846,7 @@ Operación desde: %s a: %s + validador: %s Inténtelo de nuevo Ha escaneado la misma tarjeta. Para crear una billetera gemela, necesite escanear la tarjeta con no. %d Ha escaneado la tarjeta gemela incorrecta. Por favor, intente con otra diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index fd6c3314ac..c01b0abd75 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -97,6 +97,10 @@ %d jour %d jours + + jour + jours + Supprimer Désactivé Exécuté @@ -115,12 +119,14 @@ Obtenir des adresses Aller au fournisseur Aller au jeton + heure Importez En cours Plus tard Il reste %1$s Verrouillé Réseau principal + mois Commissions du réseau Le montant envoyé sera réduit de %1$s(%2$s) pour couvrir le niveau de frais sélectionné Suivant @@ -144,6 +150,7 @@ Sauvegarder les modifications Rechercher Rechercher des jetons + sec Seed phrase Sélectionnez une action Vendre @@ -169,6 +176,7 @@ Il y avait une erreur. Veuillez réessayer. Inaccessible Unstakez + semaine Oui Adresse du contrat copiée ! Réseaux disponibles @@ -249,6 +257,7 @@ En cours d\'échange En cours d\'échange Échoué + En pause Dépôt reçu En attente du dépôt En attente du dépôt @@ -348,6 +357,7 @@ Le portefeuille ne prend pas en charge plus d\'un réseau Pour acheter, échanger ou recevoir cet actif, ajoutez-le à votre portefeuille Cet actif n\'est plus pris en charge dans le portefeuille + Cet actif n\'est pas disponible pour ce portefeuille Ajouter au portfolio Ajoutez un jeton Réseaux disponibles @@ -380,6 +390,10 @@ Top Perdants Tendances À propos de %s + + échange + échanges + Basé sur %d évaluation Basé sur %d évaluations @@ -392,6 +406,11 @@ Le nombre total de pièces disponibles pour le trading et en circulation sur le marché Approvisionnement en circulation Aucun échange trouvé + Échange + Précaution + Risqué + Fiable + Échanges Acheteurs expérimentés Acheteurs nets avec l\'exigence supplémentaire d\'avoir au moins 100 transactions sortantes Acheteurs expérimentés @@ -432,6 +451,7 @@ Volume des échanges (24h) Le montant total d\'une crypto-monnaie qui a été échangé au cours des dernières 24 heures, indiquant le niveau d\'activité et de liquidité du marché Volume des échanges (24h) + Volume Tirez vers le haut ou appuyez sur la barre de recherche pour ajouter des jetons directement depuis le marché Ajouter des jetons NFC n\'est pas disponible sur votre appareil @@ -716,6 +736,7 @@ L\'option de staking n\'est actuellement pas disponible en raison des conditions du réseau. Veuillez réessayer plus tard. Le staking dans le réseau %1$s avec un nouveau validateur transférera automatiquement tous les fonds précédemment stakés vers ce validateur Réinvestissez vos récompenses gagnées dans le montant que vous avez staké, augmentant ainsi vos gains potentiels. + L\'option de restaker vous permet de déplacer vos fonds d\'un validateur à un autre sans avoir besoin de les déstaker. Débloquez votre argent pour le retirer du processus de staking. Le déverrouillage prend %s. Vos fonds seront disponibles à l\'utilisation après la période de déblocage de 21 jours. La récompense sera retirée en même temps que vos fonds de déblocage. Vos fonds seront disponibles pour utilisation après la période de désengagement %s. @@ -735,6 +756,7 @@ Chaque %s Chaque jour Chaque %s + Chaque Époque Ère Heure @@ -743,7 +765,9 @@ Récompenses Stake verrouillé Staker plus + Vous stakez %1$s et recevrez %2$s Appuyez pour déverrouiller + Appuyez pour déverrouiller ou voter Appuyez pour retirer Stake %s déstaker %s @@ -822,6 +846,7 @@ Opération de : %s à : %s + validateur : %s Réessayez Vous avez scanné la même carte. Pour créer un portefeuille jumeau, vous devez scanner la carte portant le numéro %d Vous avez scanné une mauvaise carte jumelle. S\'il vous plaît, essayez-en un autre diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 29694b640e..034ee6ecc4 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -58,7 +58,7 @@ すべてのTangemデバイスのリセットが完了していません 工場出荷時の設定にリセット セキュリティ・モード - カード設定 + デバイス設定 ネットワーク手数料に加えて、Cardanoネットワークは%2$sトークンで取引する際に%1$s ADAを請求します。 Cardanoの取引要件 %1$s 取引を行うには、いくらかのADAを入金し、ネットワーク手数料と最小ADA (5ADAを推奨) をカバーする必要があります。 @@ -216,7 +216,7 @@ 紹介プログラム デバイスの画面を下に向けると、残高をすばやく非表示にしたり表示したりできます。 %sハッシュ - カードID + デバイスID サポートへのお問い合わせ 他のカードをリンクする アプリ通貨 @@ -305,7 +305,7 @@ 無制限 Tangemを注文 Tangemをスキャン - この情報はAIによって生成されました + この情報はAIで生成されました。 \nエラーが見つかった場合は、ここをタップしてください。 アクセスコードを変更するには、上図のようにカードまたはリングをタップし、操作が終了するまで取り外さないでください。 パスコードを変更するには、上記のようにカードをタップし、操作が終了するまで取り外さないでください。 ウォレットを作成するには、上記のようにカードをタップし、操作が終了するまで取り外さないでください。 @@ -453,7 +453,7 @@ 保護する 後で各カードおよびリングに個別のアクセスコードを設定できます。 パーソナライズする - アクセスコードはリンクされたカードおよびリング1つで復元できます。すべてのデバイスを1か所に保管しないでください。 + アクセスコードは、リンクされたカードおよびリング1つで復元できます。すべてのデバイスを1か所に保管しないでください。 復元する アクセスコードとして任意の単語、フレーズ、または数字を選択してください アクセスコードの作成 @@ -483,7 +483,7 @@ ウォレットを作成する ウォレットを作成する その他のオプション - 秘密鍵はカードまたはリング内で安全に生成されます。シードフレーズは存在しないので、誰もエクスポートしたり盗んだりすることはできません。 + 秘密鍵はチップ内で安全に生成されます。シードフレーズは存在しないので、誰もエクスポートしたり盗んだりすることはできません。 秘密鍵を非公開で生成する カードは有効化され、使用可能になりました 成功! @@ -522,7 +522,7 @@ バックアップカード バックアップカード # %d バックアップリング - バックアップカードまたはリングなし + バックアップデバイスなし 通知 バックアップデバイスが1つ追加されました カードを準備してください @@ -696,7 +696,7 @@ 市場評価 指標 最低要件 - 報酬なし + 報酬はありません 請求中の報酬 ステーキング報酬の受け取り方法。\n自動であなたのアドレスに報酬が入金される方法と、手動で取引を生成して報酬を引き出す方法があります。 報酬スケジュール @@ -745,7 +745,8 @@ 毎日 %sごと 毎日 - %sごと + %s日ごと + 毎%1$s エポック毎 時代毎 毎時間 @@ -754,6 +755,7 @@ 報酬 ステーキングはロックされています もっとステーキングする + %1$sをステーキングし、報酬%2$sを受け取ります タップしてロック解除 タップしてロック解除もしくは投票 タップして引き出す @@ -946,7 +948,7 @@ このカードには%sの署名のみが残っています。資金をすべて引き出す必要があります。 署名数が少ないです 異なるネットワーク上のトークンは、異なるアドレスを持つ場合があります。資金を送金する際には、アドレスがネットワークと一致していることを再確認してください。 - MATICはPOLに移行中です。ただし、期限は設定されておらず、MATICはまだ廃止されていません。MATICトークンを引き続き安全に使用することも、取引所でPOLに交換することもできます。 + MATICはPOLに移行中です。ただし、期限は設定されておらず、MATICはまだ廃止されていません。MATICトークンを引き続き安全に使用することも、POLに交換することもできます。 MATICからPOLへの移行 %d ネットワークのアドレスを取得するために、カードまたはリングを利用してください diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index fbe322b4e6..fffbaabb5d 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.17-824" +tangemBlockchainSdk = "release-app_5.17-827" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt index c8e9fca637..e22069fd64 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt @@ -403,4 +403,6 @@ private val excludedBlockchains = listOf( Blockchain.Unknown, Blockchain.Nexa, Blockchain.NexaTestnet, + Blockchain.Casper, + Blockchain.CasperTestnet, ) \ No newline at end of file From 4a73aecbfca09e0e5f4569a4928af993e34bc09d Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 14:59:36 +0300 Subject: [PATCH 09/34] Updated on 2026-08-14 --- core/utils/src/main/java/com/tangem/utils/SupportedLanguages.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/utils/src/main/java/com/tangem/utils/SupportedLanguages.kt b/core/utils/src/main/java/com/tangem/utils/SupportedLanguages.kt index 48b2788b37..b85a35b477 100644 --- a/core/utils/src/main/java/com/tangem/utils/SupportedLanguages.kt +++ b/core/utils/src/main/java/com/tangem/utils/SupportedLanguages.kt @@ -11,6 +11,7 @@ object SupportedLanguages { const val JAPANESE = "ja" const val UKRAINIAN = "uk" const val CHINESE = "uk" + const val SPANISH = "es" val supportedLangugeCodes = listOf( ENGLISH, @@ -21,6 +22,7 @@ object SupportedLanguages { JAPANESE, UKRAINIAN, CHINESE, + SPANISH, ) fun getCurrentSupportedLanguageCode(): String { From 591607114c8e22f830ebdc3e1c81d5f7b013d888 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 17:28:43 +0300 Subject: [PATCH 10/34] Updated on 2026-08-14 --- .../features/staking/impl/analytics/StakingAnalyticsEvents.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt index 920e6ce4cc..a57023584b 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt @@ -154,7 +154,7 @@ internal sealed class StakingAnalyticsEvents( event = "Errors", params = mapOf( AnalyticsParam.TOKEN_PARAM to token, - AnalyticsParam.ERROR_DESCRIPTION to errorType, + "ErrorType" to errorType, ), ) From a5f25b766f4d34c3487ea7343e588a511f404154 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Oct 2024 17:29:38 +0500 Subject: [PATCH 11/34] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index fffbaabb5d..a939b22dfe 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.17-827" +tangemBlockchainSdk = "release-app_5.17-828" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From ac993a2ba089135c692f9a05053ab12c5d40d85e Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Oct 2024 20:24:13 +0300 Subject: [PATCH 12/34] Updated on 2026-08-14 --- .../state/transformers/SetInitialDataStateTransformer.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt index 0571fbf65e..6087adb8c2 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt @@ -236,7 +236,9 @@ internal class SetInitialDataStateTransformer( } private fun getAprRange(validators: List): TextReference { - val aprValues = validators.mapNotNull { it.apr } + val aprValues = validators + .filter { it.preferred } + .mapNotNull { it.apr } val minApr = aprValues.min() val maxApr = aprValues.max() From 8d1fdfcc013f6661c91c891d711de17afe8dbe69 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Oct 2024 14:40:21 +0300 Subject: [PATCH 13/34] Updated on 2026-08-14 --- .../transformers/approval/ShowApprovalBottomSheetTransformer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt index b5631913ad..47745c4c89 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt @@ -52,7 +52,7 @@ internal class ShowApprovalBottomSheetTransformer( data = GiveTxPermissionState.ReadyForRequest( currency = cryptoCurrency.symbol, amount = amountState.amountTextField.value, - approveType = ApproveType.LIMITED, + approveType = ApproveType.UNLIMITED, walletAddress = walletAddress, spenderAddress = validatorAddress, fee = resourceReference( From e18a797afc605c1143bb97e7d9cfd440eac29997 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Oct 2024 13:51:30 +0300 Subject: [PATCH 14/34] Updated on 2026-08-14 --- .../InvalidatePendingTransactionsUseCase.kt | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt index 6dd0f53745..2c07ae8ea0 100644 --- a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt +++ b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt @@ -42,7 +42,8 @@ class InvalidatePendingTransactionsUseCase( newBalancesId: Int, pendingData: List>, ): Pair, List> { - val balances = realData.associateBy { BalanceIdentity(it.groupId, it.type, it.amount, it.date) } + val balances = realData.groupBy { BalanceIdentity(it.groupId, it.type, it.amount, it.date) } + .mapValues { it.value.toMutableList() } .toMutableMap() val transactionsToRemove = mutableListOf() @@ -56,28 +57,34 @@ class InvalidatePendingTransactionsUseCase( transactionsToRemove.add(pendingTransaction) } balances.containsKey(key) -> { - balances[key] = balanceItem + val removed = balances[key]?.removeIf { !it.isPending } ?: false + if (removed) { + balances[key]?.add(balanceItem) + } } else -> { val groupId = UUID.randomUUID().toString() val now = DateTime.now() + balances[BalanceIdentity(groupId, BalanceType.STAKED, pendingTransaction.amount, now)] = - BalanceItem( - groupId = groupId, - type = pendingTransaction.type, - amount = pendingTransaction.amount, - rawCurrencyId = pendingTransaction.rawCurrencyId, - validatorAddress = pendingTransaction.validator?.address, - date = null, - pendingActions = emptyList(), - token = pendingTransaction.token, - isPending = true, + mutableListOf( + BalanceItem( + groupId = groupId, + type = pendingTransaction.type, + amount = pendingTransaction.amount, + rawCurrencyId = pendingTransaction.rawCurrencyId, + validatorAddress = pendingTransaction.validator?.address, + date = null, + pendingActions = emptyList(), + token = pendingTransaction.token, + isPending = true, + ), ) balances.entries.find { it.key.type == BalanceType.STAKED && it.key.amount == pendingTransaction.amount && - !it.value.isPending + !it.value.any { it.isPending } } ?.key ?.let { balances.remove(it) } @@ -85,7 +92,7 @@ class InvalidatePendingTransactionsUseCase( } } - return balances.values.toList() to transactionsToRemove + return balances.values.flatten() to transactionsToRemove } private data class BalanceIdentity( From 99e8f252c7a4706f0118b5e10fa04136125e0834 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Oct 2024 15:43:30 +0300 Subject: [PATCH 15/34] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 6 +++--- core/res/src/main/res/values-es/strings.xml | 7 ++++--- core/res/src/main/res/values-fr/strings.xml | 7 ++++--- core/res/src/main/res/values-ja/strings.xml | 9 ++++++++- core/res/src/main/res/values-ru/strings.xml | 3 ++- core/res/src/main/res/values-uk-rUA/strings.xml | 2 +- core/res/src/main/res/values/strings.xml | 6 ++++++ 7 files changed, 28 insertions(+), 12 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 51282f72a9..91ac04b5bf 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -308,7 +308,7 @@ Unbegrenzt Karte oder Ring bestellen Karte oder Ring scannen - Diese Informationen wurden mithilfe von KI generiert. \n Tippe hier, wenn Du Fehler finden. + Diese Informationen wurden mithilfe von KI generiert.\n Tippe hier, wenn Du Fehler finden. Um den Zugangscode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um den Passcode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um die Wallet zu erstellen, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. @@ -391,8 +391,8 @@ Beliebt Über %s - %d Börse - %d Börsen + %d börse + %d börsen Bewertung, basierend auf %d diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index 58676a38b9..ca139eb0a7 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -308,7 +308,7 @@ Ilimitado Ordenar Escanee - Esta información fue generada con IA + Esta información fue generada con IA.\nPulse aquí si encuentra algún error. Toque para cambiar la contraseña Toque para cambiar la contraseña Para crear la billetera, toque la tarjeta como se muestra arriba y no la retire hasta el final de la operación @@ -391,8 +391,8 @@ Tendencias Acerca de %s - intercambio - intercambios + %d intercambio + %d intercambios Basado en %d evaluación @@ -882,6 +882,7 @@ Solicitud para crear una transacción para %1$s\n%2$s\n\nMontante: %3$s\nComisión: %4$s\nTotal: %5$s\nSaldo: %6$s No se puede completar la transacción. Fondos insuficientes. Error al establecer la sesión de WalletConnect. Por favor, inténtelo más tarde. + No todos los tokens se han agregado a su lista. Añádelos primero y vuelve a intentarlo. Tokens faltantes :\n Error al firmar el mensaje.\nPor favor, inténtalo de nuevo Error al establecer la sesión de WalletConnect: error de tiempo de espera. Por favor, inténtelo más tarde. La solicitud de sesión contiene blockchains no compatibles para la conexión WalletConnect. Blockchains no compatibles:\n diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index c01b0abd75..23a43e7ff8 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -308,7 +308,7 @@ Illimité Commandez Scannez - Ces informations ont été générées avec l\'IA + Ces informations ont été générées avec l\'IA.\nAppuyez ici si vous trouvez des erreurs. Touchez, pour modifier le code d\'accès Touchez, pour modifier le mot de passe Pour créer le portefeuille, appuyez sur la carte comme indiqué ci-dessus et ne la retirez pas jusqu\'à la fin de l\'opération @@ -391,8 +391,8 @@ Tendances À propos de %s - échange - échanges + %d échange + %d échanges Basé sur %d évaluation @@ -882,6 +882,7 @@ Demande de création d\'une transaction pour %1$s\n%2$s\n\nMontant : %3$s\nFrais : %4$s\nTotal : %5$s\nSolde : %6$s Impossible d\'effectuer la transaction. Fonds insuffisants. Échec de l\'établissement de la session WalletConnect. Veuillez réessayer plus tard. + Tous les jetons n\'ont pas été ajoutés à votre liste. Veuillez d\'abord les ajouter et essayez à nouveau. Jetons manquants :\n Échec de la signature du message. Veuillez réessayer Échec de l\'établissement de la session WalletConnect : erreur de délai d\'attente. Veuillez réessayer plus tard. La demande de session contient des blockchains non prises en charge pour la connexion WalletConnect. Blockchains non prises en charge :\n diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 034ee6ecc4..05feeafea4 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -82,10 +82,13 @@ %1$sへ移動 カメラへのアクセスを許可していません。プライバシー設定を調整してください。 キャンセル + 変更 アクションを選択 請求 報酬を受け取る 閉じる + 閉じる + 確認 続ける コピー アドレスをコピー @@ -542,6 +545,9 @@ アクセスコードの復元 同一のカード アクセスコード + この国では当社のサービスはご利用いただけません + 変更または確認 + あなたの住居は次のように識別されています グループ 残高順 トークンを整理する @@ -746,7 +752,7 @@ %sごと 毎日 %s日ごと - 毎%1$s + エポック毎 時代毎 毎時間 @@ -872,6 +878,7 @@ %1$sの取引を作成するリクエスト\n%2$s\n\n金額: %3$s\n手数料: %4$s\n合計: %5$s\n残高: %6$s 取引を送信できません。資金が足りません。 WalletConnect セッションを確立できませんでした。しばらくしてからもう一度お試しください。 + すべてのトークンがリストには追加されませんでした。まず追加してから、もう一度お試しください。不足しているトークン: \n メッセージの署名に失敗しました。\nもう一度お試しください。 WalletConnectセッションの確立に失敗しました:タイムアウトエラー。しばらくしてもう一度お試しください。 セッションリクエストには、WalletConnect接続でサポートされていないブロックチェーンが含まれています。サポートされていないブロックチェーン: \n diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 3e346d67a4..1d7f48e667 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -89,6 +89,7 @@ Получить Вывести награду Закрыть + Подтвердить Продолжить Копировать Скопировать адрес @@ -518,7 +519,7 @@ Ваша seed-фраза - %d слово + %d слова %d слов %d слов diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index 520382b7eb..c7e208ecb6 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -519,7 +519,7 @@ Ваша seed-фраза - %d слово + %d слова %d слів %d слів diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index ff9ddc76d8..98333a0f5e 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -83,10 +83,13 @@ Go to %1$s You have not given access to your camera, please adjust your privacy settings Cancel + Change Choose action Claim Claim rewards Close + Close + Confirm Continue Copy Copy address @@ -550,6 +553,9 @@ Access code restore Identical cards Access code + Our services are not available in this country + Change or confirm it + Your residence has been identified as Group By balance Organize tokens From 2d67a25b8fe80cea55de567c7e43c87f12f996a3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Oct 2024 16:00:20 +0300 Subject: [PATCH 16/34] Updated on 2026-08-14 --- core/res/src/main/res/values-ja/strings.xml | 1 - core/res/src/main/res/values/strings.xml | 1 - .../wallet/domain/Wallet2CobrandImage.kt | 12 ++++++++++++ .../ill_bitcoingold_card2_120_106.webp | Bin 0 -> 53656 bytes .../ill_bitcoingold_card3_120_106.webp | Bin 0 -> 66134 bytes .../drawable/ill_card2_with_ring_120_106.png | Bin 163380 -> 0 bytes .../drawable/ill_card2_with_ring_120_106.webp | Bin 0 -> 24890 bytes .../drawable/ill_card_with_ring_120_106.png | Bin 129041 -> 0 bytes .../drawable/ill_card_with_ring_120_106.webp | Bin 0 -> 19762 bytes .../res/drawable/ill_kaspa3_card2_120_106.webp | Bin 0 -> 7114 bytes .../res/drawable/ill_kaspa3_card3_120_106.webp | Bin 0 -> 20870 bytes 11 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp create mode 100644 features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card3_120_106.webp delete mode 100644 features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png create mode 100644 features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp delete mode 100644 features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.png create mode 100644 features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.webp create mode 100644 features/wallet/impl/src/main/res/drawable/ill_kaspa3_card2_120_106.webp create mode 100644 features/wallet/impl/src/main/res/drawable/ill_kaspa3_card3_120_106.webp diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 05feeafea4..9daec072f7 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -87,7 +87,6 @@ 請求 報酬を受け取る 閉じる - 閉じる 確認 続ける コピー diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 98333a0f5e..7bb68fb3cf 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -88,7 +88,6 @@ Claim Claim rewards Close - Close Confirm Continue Copy diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt index 82d07f7000..46e771d72d 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt @@ -37,6 +37,12 @@ internal enum class Wallet2CobrandImage( batchIds = setOf("AF09"), ), + BitcoinGold( + cards2ResId = R.drawable.ill_bitcoingold_card2_120_106, + cards3ResId = R.drawable.ill_bitcoingold_card3_120_106, + batchIds = setOf("AF71"), + ), + BitcoinPizzaDay( cards2ResId = R.drawable.ill_pizza_day_card2_120_106, cards3ResId = R.drawable.ill_pizza_day_card3_120_106, @@ -91,6 +97,12 @@ internal enum class Wallet2CobrandImage( batchIds = setOf("AF31"), ), + Kaspa3( + cards2ResId = R.drawable.ill_kaspa3_card2_120_106, + cards3ResId = R.drawable.ill_kaspa3_card3_120_106, + batchIds = setOf("AF73"), + ), + KishuInu( cards2ResId = R.drawable.ill_kishu_inu_card2_120_106, cards3ResId = R.drawable.ill_kishu_inu_card3_120_106, diff --git a/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp new file mode 100644 index 0000000000000000000000000000000000000000..514ee528e9c13741daa7bd013e814a9523ee899e GIT binary patch literal 53656 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

Ni@T1|PZ_qGj>>jG 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

}*B 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%0AIFx#R!nppZT3RcZ@KTVp|-*Hx4 zV}!X}1iKDw9PXZ9xcMeDvC>1H1b+J6ZO_%mnJ67}cribh-7pdleeyDG!_@RqsDGRxvuoMcA&Q2fo7q zmJa_F$wXsaj96_uu4bmnH_=MIhESacdrUK#si6G>z73-+4wFHyO$dW&DV;Wb5ti!} zdyD8)TB1&l-sKl7Nl1GVVD|wyPkSS#zDLB5cAfUL^h^fJ?2tC#9c*Az z-kTuyQnn9H-sL}#>3?jvmebhlRV7RCdIn^)OZriXC#TT}Nx8vXQsFS8n=OP?H*#w* zyunxN&d~Iac@=IhPs|Y2t^ZDqsm&-JdwFKU(Olg#l{cuoB|_g z%L%pPO*$b+#A&EQoVqhUXp_aP4&BIc)U~!XcK#b%EWM}qC^t7ths#2nKQ>^zAd86D z7XJ9S4n#_xU@BbqIa^vZ)Q`u!AivK2rO#Yr%-9+_@{OGH!@Z;2GIZ5dY!6OIhY>_x z<`+5y_FH)(SBDq)?Y8^558En>L_{Aea98)voe)fH-#u^Me>Etlgb^YR$pUv<_sBCi9S)pIRdHJ@nr9 zRNQ8cy%ekP0@$Ls*MQVC{3(WINIi~x{wRy-8^}KTWTK%CznjhG))7~7qe0NgvUxAce*ghKh0OwK?HO71F~5=CLO=Kb6n z+rjv9O^3}>F=Xs18ocMMIT$&PPps*~X^hsc?!xHSd@ zew|g$#}vSN4YVFVf)h#g%X$WGrhO1d&pocMHy*C$Il_XyiE|O7B~Y@Ki&(JdRObS2Wlx7QvyJySQ_-T9QYEm( z><-C%%BX#g{)4;BTRewq$!cvbFI~8MM?6BJ`jq!AOz5aRG?$#l?ufPDhL8`X9eybs z{|a*v#e2d9)s%O4VSTl<@4U6688(z^qTquDJNhx@kD;uBNM_!*fx%MdwS ziT5AN-EUYaBek?shqtDBuo}^uW;b)Z(kji-V%|JNL+6^355Uuc{J#T?w8hCf zs5|2_#Z?rzIopej^5S``SZlV=!zrb*jqBtXR7hER*5nsG!(~plU*q^5w95Ri(b}EC z7&1-daW`Vbb3bqH#KaH;jLOCEZdYt%c81zxXFO>__ldPwL4eCadYsp-NymP~D96)z zGRw@vbEjxgH?~1-ur0v&~>l2XIr|G$y%yP9zQBsJy2@qZCKjYFqcH~dJbWh<67N^+}o~@&&|#O26-{=bY-<3TeJw#$Aw8+DEbNX;i~MjdF6!%#pU8B&Iw9 zHyLw@gT&x+2Pm$3QUip}dtC>PkaBBMg5L2R$n$)dI_uWQTO)|g@zn9X)f=?X+)|4Z z5W#X_r5rTz4oFM}I#x4tzFS2F@;lLJT)%Fv=}FW7haETR_%5O-wc$?%&)rrIC$!jj zEMhaKU~&TvK?Mv3k)7jYFRW zINztXP!^=$=K6`3RJhb3hh#oFbat;9vmZivu?xgV%L95%cuKcVlz2Gq<#&1!29WT~ zI1)_kV`?P6x8@Vx4{AP7E@`9Z%18iSdd1(v-x|=FFG|~9<_6APuCr(}97RzNRfe=6 z1GjiJ4_Aux+zocVkVelUqk)t}h0N_%nuRgEA3F%yes?g9RJi$PtQ2MM^nxNQh8752 zwGHchf1d->JaUwD?+81!-bWYbvH=L%=|t|>ZL%_ zxO027`|OG#a^!bC_@t>Dh$EZ!23Wk(KCrkik^_~$6I;R}7FhXN!+BdifzBBsi)2~F z`Xh(wFKC9Z@K8sGh43~f*IU_=^bS`eKUeANM1e=FnK3xUSpP>^_I&fz$h1oWJFC56 z;#|9O4MVv0c#IrD9VWx@{N>GkjSwXXQvxJIl6$)WNr4z~TEb`{!M*EKKTNi~o%rTW zoYO`B>k*7vCSOZOkOeub=_~F0#2Xj;Z1Viyy2m~rZ2gD;$lXJBm96caJj4>}r;k-k zs7nt|2y69VW@Vp?1rZ%QAVe0Ugm(n53a>GJ=iW&sjXE9FUY6vv@AI)cff2VUID82) ziF`V|n^_vLu2HLs$fQcB0d~;cWUx!mvVG-J^Mtghd(8j<=Jqx%6k6T|fkKOBM+(>NU1z%n=E_|&$WTMT1 z=m0djUMAp!(EMWzLX%iY_U8KqJibh_975wExl&bff~P zr*iNUvOVtSq#DdHkq5d<2l1CFiU5Yo&Xy_CM{*Ykfco_TIou1`iViXdrOlv8p_hG5 zt4*Braha~1W#P2|*x-0}&8_q@;Fqhs$x=?{;!Cks>k#IGRzd}p0jUlq>WN=)S9}i! za4H<2cRVl*Li3n1m(&1DK(xQ5DauWTxOUD;0Fy4hc`$3M6ON1V|VIvP*4#H5W3CQDLw0Y0R+8=cwz#MDpb z_Sj*Wa-qIp+8HoRjV#>H2e&gm-v{z)JaF0?n#>8(%#)>zQfNz@n9Jx+L)vP3?cOQL-9ElKqktIp>u#E#_P zQy~0mJLFwRdE0gYeR_tEhH?cSR*Tb}X>TK2c%;|NBXNJcTt^o|Iwu?x^E0`mC_wdbHu#GZ9BdDJlZkgau{eM3PHcZ2z8iaU3< z>^ihX5nw;rHy?V#5F(dx1?4HX+gy3ASpr&Ke}TU-&@>l<{(iz%oe^JDLLn;FquEpI zyOmB!Jcd&;@LeFlo8K#(3^))svtlFF%TkTSMV}3(#@~c}>Oj_;WJ5@%EDrGZ5aF(xKcmbtaSp!TseV!qw>x{a!J1+SC{u@BF zZkreGu(#A~&3M9Gu&1XJN*GoN*dNM230$DENjIkFaIWK7iPJ_Fo|Dp_ukVAwtpaze zQ|>Yr_)%Hrlr-#{2ae>6ri_I&CkkW?(0n=@+X5+%sCjr{r?*aAHG9eb zharhu;kNDg0;zk1;@+a3_?0x%L9)qs*m$;niTi3(*e|q9jtzE2V;n2V0x}Z4g^YRl zo2kGDk!=#Fjs)Pk6X!P)34{EKf-4`ud1wpW#i5lKC!J#%bR~77alkUUiBhstqczvnVqZOBxI~Q%HEa8{axNbIG3Ffwfh4)*L*YY4gIryB|8&JY*R{?a>)S!z= zTo`Iu+*PU@V7!GW?jhoMMTwWSxB?yH)K(qcb_iJmh52;6@m*P#y&RxUdqhyr(V3t| zq|ybrMydW|LkOM^Z>D-gXKYEPj9HrTum1Ijh@L(@ked+(f&^y>b&RCI-(wH;>oBXx zwD8O{s9z|P`5v-y0cmXDo*&NH-N1*7J9(srI~!YzQy#(pP9?M#6ovzildemgvbbn> znWYK1Cwdtz@vzoHF9gTDhy76QM@(5OnNpMoPWLv{fgw`h$HmdyOlsO92YGlPy3aDC z8}ZJW8Bg6gXih%M-`aqur~~q@quJQN32DqDC30x%t%5sZ9GW2iG=x2Osy3>Zg{5g} zK>Z1qh{@UQi$8#jbmF~ErR6WiADpxy!kJ{RV4+x+pK%Wfe0$ho5dAtz_Cp(~wrA+|)-2WOSUUNTD`7pE`4 z8fJ&|T*f#bf)=l^^7H_x4%Ki~ZIR#HLLh6@!0*XT{aABIY550~LB3NvlW;e9rK9?) z@{q2^XO1I=gbp*$U>eaK&1Zj_9Pam3!c(IAMD7_6Sr8rSkR@p}?iDixT0MCg-C$tE zoVoMv{K+}(00-eINdJHjobs?10sh$VBMnE}dt6?XzvN9+?Sbl+t0AT z{v!Ldnu~NdyFNh4(k87urXOJY_dxne%?UG=Hp;X=<9=4F46;5}H+h(f_N(?9O!*1w zjyw(&CVy8PJthDzB-(7A;SfALP*iP6!N{IZlL@y)d3n7-qRX%4YvBTe5v6lGfOud_ zmw>>SenfnAd-|g>{{*(ra64|%JvID}RX!E}Au+)Ggzs`;UXn(*vCpYktS8K@;b+EQKceWh!8>cpgR|vi<odUbiA3`b1)_jk9C)jkmCe3kudl`c~#Vv6cjPxihs0QqVo6i8Ojok3%O9S zipe^vahUeb`z5%c`=m0|Sb}e=DL{|X0_P&|wNz2P)|jc}jHQncz^BEJBbKsLm z0W@m_@@k0raK4K$j2)mdYU=h|w8X=@!iw&`4Z?DT%mdX^XuXl{=vENJh*85AET%LI zi3oI*UI?Z=&_g!g}C0Om4Q*7Fur2`T2AwK4om6a=Pk z*@6KMYL*02_6aD;lF@~m71kb!*At6Pjn5}nHCUBVL59nDJRjwm!q6YL-Tx(%@Vsr? zmm0Nt26-63G|ONL>0%000;zqv*qrM_>}tiJ;aXQ9))? zgt(TzK$F5thxv9FQv?PH_zasS7Z~Cc_91R#n$ST*9CKi(8I{ZFI#aGtPHfR}@2#8TuL-Rh-XZwK&!41`5Z0h_C zV8+x#5|J7*zn1ye2^^|r757v79YhU|R$pEp7w9+BbfL!h5@6|O8L zNgLX#`$w1;oir};aZzLb84R)F*INAb`BVD5hYA^8$vbO!Is!cw34VV+_PXW=%GVsB zuJM;Ew|Wh#4HRIa&;!*3rPP#^V(2MvDRJzS)_r{y*b;oN{wdT%qi#E z<2?8T|M-jQQPEi7EVQwN4m#jH(krNI5-0`rtPc(?jj`&)<$Qa4sd0Uv)uJ?_li7wH z_uiezI@##=8$En94eJ{^Kvn#_U4_ZbGZzh-Bzl{W`8;$!tc3k0MZVT9N zCn$C8PQE;@&t5bvsf=xQ$qjfhs*>1APNd9@;X=Wn$L4aQ5Fo4>^2!y+fcftb+S++C zt}7Hy?5Kz&0EXaUm_+kKf@58I_c~3C8_^Vq`f}dVIEQX?k1N`$FYU!QST*Xpe%koL zvLeN|sXNgqgAF!OPY(i*)?}ExW$6+<;+micuXiQiy>o%Kv7An5zDA$1h}LTaH*eTJ zQQz7ar|lK2BwS&2RU4EYC$<)4|5ko!($BF8y3wUomyLTp+%OAY1$9~^qRW4jOOt=w zxF}8Rkiks&mEo8K^;1Rit7#qhS88CYK1-sUu>}8f} z&3M^2J|>EvtyR)ar%k$D@zz09FAC%AD zKZ_Jba_O=c?%qegP~B&A{jnVwB)3rNF}MA4pmts*db_;92uneube*nC5%DRJVD&j% zyH6p$d_}L2%2lYMO{oa4NwBXMSTh&4E=A$(3nZj13%Ugxd|VQ+90Qw;9)51${s+^L9-k$%UtNhkjT17R}p@%qt$dK%Rjt?t#W`xxhtig^W*eEn}sQqt&v75c4QbngL0}*+T>mTkrn+{(dHCa|xfQ zFPohjdFni4PiH@F!6SgvM>{A^nr_wH01L>&Pym!+^yy}I}@F$Sb!nzs$ zj|+S_?L-~1y*zmZ2(9zIb8s(K_R5~g3rnfN`qPW*PrO)Z#}hlNrv6lJ?8_SV zGSKOgteU%MRu&s4tHDX!OSFyQtk^IOd2Z!67eCA%g%Y1gk$+I8e=x`D(q9Pejd-hjv}zo^0tq|2D!9y1L+)N_~7); zJ{4#kNv$3eW#hPmO8%intyxYe*|OjKEn8;0HcN1uYe6ap3yfCF11{tGEH6@?Yc?=Tt0QNH$0cD)u(>b0ToYx-6j5{RGyju6Cey*Lf`fAl|(zF zSeHlB$K5_a$ zqiH+a=HiLGN|nLO0c+(gYFP5jvm`Fa!CtVO2d5^d*Amr}y1U%YQF#a( zFQ6XmgUN_2GVE^2`-u`mC9?1JK&7%NJKifx%JV(D7*5IetEU86tTWJMa&tEgx4=w2&vqVX z6?giZdV|?c0vCI~im67J4cPvzJ)fbIt2@h&iST}mPJ3FCydGtlXNnDVbn`s;*}bC= z&5hBBG9Cafg#j@zMLePO;yfP5Y5T*Ot9dVE<5SW2psrK52g{(+Z&3$QoDl`RT`t5G znsOK6ao0;3;>)Ap0;=~Um0~pYhs26(l#wt5@uQq{F;zQ&ZnFPS*eg#1GsIydy0~eT zd0V}ct!CqR`{$tSFbR}5D!z$`;rPD2ZS+zs?@4|WP8K2g*gY0T)tuNh3f*{rkc4B-{V;_}SHjs|^tsxWH~*cvdHy zCO1_;1O0cc-&6CZ<&is$TFD)#!+(Dop$w8kGx1u9TAT?{TeEx5;ia-{#F2ma#In(x zI!MK5_6lzUd}xJ)f1_~~WHU3IjPML+h&}}bt<0vF;<8r*Wz_sX76W%2Q1xiXmGuS%oD z2QYis;RjTb?7_jnh*kU2KK^ZXQ>F-OnlZJB2c+T>PO-IG1wg1yhTF%D))dJ<^NA?x_S!=|5`_@s&I92m%xw zDpPUeeqjxvTs)V@3@r*R?oijBHe=^D{lvv{Fg!SoAr!r}&`*rtLPLqovhF6W`1*9; z!>wZm?+6PR8M%PiD68i=m3yFxEnF*NPU~TO{Cvc*6{2Trvgoyz)H%IV{vmfDQdiz; zDwHnuuV>3*EWcFz$L@vyvVQncIidv=U3(Mb!q60(S#1e~%yjDG9>>jiq}cFM&?^TlX40c1%;Fy(L=+hBi84?;K8IZ+w+ihX)aG)(^sH!@XpeXox~YmER{fLmJi2 ziU_b&`$-`FQTe(gK^M`6z(}S(=8LaZ@7{cbrhktCZ1+#9u5GAIs zQAGN81eZK-)gMJAS|V?3bwCZC!;oOJM3xO(AYks7fsK?-?-?Y;!R(+@2v#p?ncc1T z0<*EOEovMoAUfMQxn^F@-=l5k5JiiOS@|+&q4~5pd^Qi45~{9S>b-XbhA-yJwAl*k zuyEF*Jf{y;@5i~w&&sM^`qz>b6!VKsnxEIa*OIMN~BYNwcG zU}eq2U;U2);e|HM9vWHP-fgYKs}F)(v$C^J0aXPrGs4R5ZkXhvxVHW`r}06Jot50z zgISZ{5p(@MNJo_I$#qup6eprNP!$U$z-RZwN-UR5Ybs+_*;5*{3WY+>yjY!Bi0OR* zbOgus=!sNOF0%hc9_n;~oPqI@hH^K6LZH=~tsW@R@?-_&;7OvK31#!?TnMTI#l~j+ z_7|%n1{Yfo^5f^=Q8Mo|%UzXt=_((!(HXAngQ4f6pAq^E;S9kDVvcXHmu4(p5t!-g zmp;tz44@>bzSt`{i_va|A%#T2QfUIVdFE7qqG*RX_e(htY`kUhK76aOZavN%-|6jH zyGETiJ>Gghobj^ykiIF?Y4O?<>qauzZqq#ll>Z#?J%7tIl6n287j}J#as}8@I;~T~ z)ar{_5QK=IDDEhD{n@@Vlnl$H*3=sq5D_C2jBE~lQX;e35yfOa73~}-M*YdSPnGFY z8(+JhQxmILvx@7@HPU$>9EVr3;QKrET8(#jOo~%720F2MqpFSUDI+`S63?wUY*mDK znJ%Sld*xvO-*Kb)^bqJ%#sLlnJiRDy7K5N)7cKeV9D3)9Gkheaaieg6n=}b<23j58 zSNvxiX`}~r?tBy)+iMtCjA9+Zbaw))uXuqG0t3fB3cVyW@qK80a`9>c<47_beytpZ zRhhCKvf(u;2&1HyoTD7k$bHr6x{WpU9>5iFeaK~Gd@Nne|DO6l*j$$;kC zU%AWI{L%ozD%>!}&g=l4F#z=uS}?@BtYXtIU0wC@fiv&*8|X8TR7&8t)ea3H zBuLyihQK^7th+WC>9*!I9?yMEVxCDR&7bA&m_r-`TMY0^cAuP*Ztoc$x0whXyNE2( zHpX#Hj`46AoHAcl)*j8viNR2eS+7AaDHK$$yB>7AxNtbg5>~25$S}Gzw^>@|x?BiA z<+BF8f^@^MkRRV)RLu}F2r94aIP0`2$$jorcCC>V^ojk2ia1zS!N?K|7x>+T(qdu_ zEQ}C+(Rb;Nq&-d(W?($C6_CIo+RMdH8$Y^^%S8!66ku#v^V{{PvY5Sfa3>+iNm@!d z!q2=4nXlss3V$7&Hv#!JZ#8!^RdprPSC{4?vZOc1b^bhaLCDM+x&TK4EXKdskq*J2 zphTaA-KIE=?kXrK_?&ya!b& z-%I7Qq$6G0XZj{i9XU^B`gJD|`EKUbE%S3fh}mhXCoyL-^Z*`+?#~svb);DUGhAxN z+Gepn8Cw8Ods)s$JMV-&g_(Gi%@e#nS4IFCNAqY2x)P@*16$o6{U>&aA z-5Mgw++esM<+pm#vQRD9)~D%h?4#OyZPhdcB1*>>u1L3?4;v=48tg)kGyi!-=@~_- zLWpFw-~yq#iYbAx!QioqoB-3WGGL`JroLIseTf(*zAX#5Q{Hrm-a@}LX4wReB7rBI zPAWZDED?=(kd4GgY*W^Bnod2EYFtU4K^MV9-WP@qk== zp0IGiZ5=rYiMSBLVEI`|6Vh9G+?-%!%B)zWfgcEgzKi4xKI$p{c`m*{q9T!eO?#4} z>&eIK*NY`19NhO)>o#D#XVF2eZwK9Ae?QANopN=wd>id+E0*KncJq90tZmd!Kad_W z=^<#kjQI?QO>v;=epi2{Axd9z27c||s}*pTeG5FDAS#rT*;Rus9wc@BHCn65qpq+O zdnA=)KcJ=!r{VUeiJea&|BCq05Yt|Ax>|SsCCeRrw_38Uem1QPu{58Q_@A;VNiFi! zk%q6+WvTFJ27Xd0_j!`sIYr=jnf21m<56di-BTRj>ugO8|7c-ryey|5UeHWf*1VRJ zY`s%WFHKOa=~ui1I2b}ec4**>WeEs+YO1#MCH}FzTwY++?@%WuVH56B?{-6JLg%cx zo<>j*)e-#``Si1S94@aeT#fd zs08x}52%y|l;ZBX)sg8yx5qDTx=-w)^q~ecY3x)`+uPNf{9b4o%ky>sRPnQK6a5>V z*!@hHho}Ry&INv4Rv85FMWh7q$Q^8&_eRz=DBK=aJQL-Jcssaqw5EVa6#cV$mRxIN zwfYYp#MRso@XIJWzk8l5p=N6shE(>UyKaClvWko$%wGqnDl>nbbzcHwURqDwYzXy} z_Zh}&zjt{l+PhNv=&a1V6z_fwe8Z`KPvoFOJ|y~9#ronq6zUP2)vGAJwj18x5xJ^; z1W4&)h;VB53MN|JTi8Jt8(&SK|Ik3HBsqpEk9`R`f%tsSX@mnWKw3)Sp8@0R1?b7w z2?vRP$-NHJ6(pwDU$Exakf_R1dNS{&uCO?Pt9JaY}7C#Qz7)L{ehDy`EF74ifH zmudGlFzbPxKt~<52-b+V^We;2ak3+(fQ{QX7z-<4{%}`K6`C)x1SQlu2e6^P2J!S|rwA0Z(D%#XZukW8>roun!{uDTz4 znGU*2l>M<8REybh_6mn@LJ4bc9VBy6gcJsFx%hNtZIH+6yZ?R|0}Xj^CabmEszj+O z1B6~(hc%XFL%t6UChalJDS8mtc2i`+^|tJ1%t$q<=PFG+Q4?lChM2oDIcBF2ZJT1Gv=lI5INO|neD19?|5WGs?E5#0|v1^dY#8@qjx;gw-)wzIAzzH=R z<>Yu)wJK3n%ZG(RYU&<0pJyr~kuh|hItdCHeK8yYXv-Rid$X&RsbwR+>pD6H!nS8J zaVL?9df&W81Mz9X)&H&TiY^TBb;QIuYf|lW!)aGZdCS5AC*t)iVkh{M_@T4bZX}WZ zTBDd$vsZM>i$O^!4;}-8>~?R|%7}bz#fnhN;tV zilvCPf0GFUT8UcZlHcYXvq2Vem<9MOHSp|kEaY3xvc2kPh9%|ZBd+&xBeKnolU|38 z4hRHTQ?`>slP*$})5-Dc7kA^vKeVy`)}eM=bE$yz28?* z%Qw}jkH0_lKCA*YrlA6fQ0X9Hs}+yv;et@@orV($WeKH&IX~>|)N%x}$Z=Jw zenmh*6(rFt006jRZ0?N2%6hFZw0`?lSq_H`hu8>jxCDdYt&@Y6Du|-xF678Yv3a== zicQ+?7?-nAu7F|n6ls?rdw!BFk~A-?#gj}pb7vmSd!~$9YgmmYO!G*#fX!XGM2?>G z+%nf#(#eeR&WMu`Xo!x7tb(BV9~u2^J7_WQ#p~<1}S$B+*#;oT9TqJWt z`FAwCG|eb3@sv6Di^PBJfVCrkl?T`VVR8&Fsip9hkB>+GxhK$J$Y>`sBF2Vim-hL{ zk#DeKPBO?s^6AcAjXyx{8hfv99K8MGFfd{tBxjWEKFGIHASN%$Fsh`ULLGG~EaDi& zVgdg{NIxhw#1^%VDe{AC`*w>8OV=!tGUk774!BoR9m9O&Ah`G1}Tzntk zZFaqWb034H8URR{P;Lb)1)<)lu+~6fel#MK;5%az{gC?Zw?F8nHFkGmRg4CSa}4p+ zLx6mDS|Dp+y} z9zrz(biwoN^|8ug-L;q}U~1^#i7~JYZAjlm8JCzNPpz2o@SHCAbEfC^tjn>@hZz$8 z>lU=L?jsaNmqVh-dJYoU<1ob76URa0y;gzN`)t zlgebUbuyCFUG)mo-eOBWEo%xdS6Lh*@eI{V4aRro0cOJRc-+-ukN?dkdZQ`T3oJbV zpNr5G^ln}drbj63i4m&6;kbGDrL!)1Hy~X@-mbf??Ts~=I8kCV!B#IFe%+^tdCx+i z1W+8toKnO1I`bDR5@~080hY^2>iZod|HIR;!Hh_6e=CQpH-#pRIYEFgxP?@i+dN`? zDyEA7u!oKwV;LvkjMMLNmBYzM7dnXY)C{ZDB44<=f`7hr#`K-G^a-`Tb%65V2oE=M zze6t}7^>+mGaAw7iy_kCOuevZ-2UL=Um@+Sgwd%X{}0yvhOw_`4_48iT1&03 zHh>}D-}5g3pUUQhZ8n$v-?&=M*x$*^cA}DleAmr|*hEnt9wm-0PNyc@nB(7`EOTL#>RQen;VAYjcH|mZU zJ{q%%|F4rM;s%{B*JUlI&sbSF1nQ>xy3_AsMl%r+v~R<#fZdT9ND@vU1VR(QJn?eWg>8t_)3*R`ep&HQ{t=y` zks}|6tEspAZ($c**`AYioZ$V3ALUXM(FJKNk2Ql$MaS9NKnQ7|0_(S45}cGUQ32*2 zpbP7J1oxzUSaCX3pJ^|s2svS=rfB4OA*G3(Z)M5QjbD9*XJ2l*#{JKEZZ*040Vm`S zY)+3b=&5`8N}ygExw}0+*B^*NK`;d*L$?jPSF*$*Ms+Lgk|kG&T<|`dkDz>^pvw20 zK@|l;iJxDCQzMsdO+D1|88w6V_#pXpJ2I+6@oq|OU0smrthjg((T zuDA|ul@UN33&U41rgZL8d$Tia(TAj?VKx%y>De!?9?tzyU_RCEFU2wSbJlgu(adV% z^^ZEY5q3VBz>&O}MjqWK3)LJgwFvD4w1=$h(ww}x>PY@^Eg$<*uBq&PgGl4QVc|sS z;C8>OtL2JV9}LbfWa~tB+AmG$8o@HakSWklA{7LA>$n_%uq1I|Z|2&yJ-R#L zeR(^(gb2d~z?t23VM3Vn7-Px`~ z#G9u_=d;c)$_lVm%xk{qk_nA)*2`(F8hUA-J+VxOJ}@)Ti}eYc@sGsOc%>t}iAIQ- zT0{b6r|Jub)T2*K{%(o;gov3*vo@2~D8tLbNH!;5LceDrK0hTvG0_1$AtNWn^WqQy z?|Kh!L0B@3Np`kj&}nm8pmsky2E6m@P_1maS6X>vAd;kN&T0p7I)yuVH`366h4lOD zi57|qn(5(od68FQ#Z$KOQSx(_PoTda^~~AeTo%!BzEcpanJVi?YjF7eJv@XE-xmC5 z=^*9fnZWIx%8B7&WbEr|A<&kBshYj0fai{<7pfwPC?}8?7UmTu@C$(M6x#J31e2$rw&`HPH;x_evq9(Z)dMR2{I5G&6$ukrkEJMhn=k^^Y~>+uXxri3tSCP zk(ndjr64Pt3XpS_1+Aoqa9}<)PobM`6-h`7eU=c?a*W&q>|`oT*&xcO1DJ;bZIc&}5PxF=k4!F=Pk~=D!P)YKcgS3d$U_3b-PYVBNw3K>3$bAT7s3>!Dy z7-xDg+;@V1>S$C@_PwsB*Aj8=n?XJp)dj@-pD$_9V#kh1kkw?W8r92_d*`(K4|87 z(Mp{K)Gsp&v?c?41)Qf^YJ^oM;;W@kUNF7X-TY=K1IH&$Rc;4bjot_X4Dl(=^Oqm`Dn@#8iRb(CPwTAu~rwtRr<|HjvrFY9HB?sw`mC1=NGf2>M@_M zjiIVZmNxR(-wpzVlnq|K8s0~s(GiZWynQ`P`NoTqvo5Cs6-!>7_H-`HJitcQ=Maf< z{eVy*;O;3S+vw^SJd4wqtJdiy-2O$oQ+jftqLC;#8--TUf;((4_IPp>WuNepZ$WQ&6D z)kd}N=izL9x-Rp{svl43qaEJ^;>{0FRk1Q_Z1+j@NtQ5CVQw{ZeT9c!S=P5Tp+Q>06gFQ@ zfE_Z3UXseHQS)Dk1fBD;0SZ^ z+hPpfOxS6DH1te9rX>QVD<}wkrpg}kEFyYuykH(LSS=ksQ~W#M*fWtBJKdeNF;W^# zW>jeDuh*K-PJ$~--sVkK1q-wahLli@mSKHNciD63qC0*V=DBclr((F?W5!Tlh7MF>s1DM%exY*5)p-YoI8w6x+l@d8thNLaCA+=DC<2;3!jkd zp??!p`O-Oy99jiip%{z(pFwz^2+7GwK1$B}&*Jm%H0$>`vs(6cd&ugxv2AL?g&Rw{ zTU?I{M(@iu`jMYe4JU91mct)BE%0tC^so9N)1SM0z`{zQqTA&S;(E63&aVAZrh%JiWOW%0(@+U1QrLnde1|V z!KZ|?yWmuo((iZzze=q6CEoj1rDVfQYyD6?q_c-*eIkp=$#%nT5+*`SdYEe2j`{Ag z%~ShE$;_*ZFU6&X2#5`jAkkw1PlX%keCn+~=8~{0rX^dn&2n(b9Kao$s z{eCpFB7{Z~0nI%OfHCOP#Ge%>K*=Oa#a+ow42_VczXjIRr>%$q{MW5jZA(c@s1PD` zr_tJRNrtJEG8yzsBBda7{0}u71X&Xt3Sxd>vI_)4Y2wQIR^q3}2|HDJ{jZrAS-VNh zW-RhXk4tiKU=TX3M zaEQEEU2DX*M2HgyiF$&Ktgv@m&MkZw%9kc3^=gbV-7pj=&gX)DA}uLh$x6KrOo z+c-{4AURz*!0_!0(j6H9`XN?xbRk@Ja@yHa0`V76;;!BP#PGSMq1BO04euP-)_!0dxV&wW0moh98z z9=qWElz&k6vJ5S=3P|*WJpk@I*Y0x&gE=6-M9&$Q!zM5n#z?Rh1htqB1td4RGAzA| z%j$q)>f(P6>!KL1*~pdRqK*?!(eL}bR5Mus3B$8XcbqfDE9g{5Sb0Xa#&x8&3oSnF zt$H1*M7-j6LWIbw3MTO%1Z3NH$WbqC8RMKTHx6#kgdG$6mXHJ4PTF5DlFLJ@>!89U zSul#^An6+jO*b+gH>18c=OXRU074Y44JJ8qvDS|ko-{6QUV}rsvcK!?;9};uT@!OV zSjgdFU!;SH^G`{T(mB9FICc~@pjbR<{+?k)3#h|4W*&)dDMp&EXecLpD^(asC-Hch zCP@YkBglMfS%w)Pw^qDeMe8LLnRYvJo*9I0ihc?gQ}b2-HoY99o_%A<$737Ng<7=~yrNK5Om>1W@)3Uh_3?mM@`*fUw3 z=iHoY|HfD=5Ro~e@Q-Z~k#CQVaQSBtOibQuPrc<8Y7lH;TK8*>9h|P$u%eVFeyCdz z!>ovmC34zwsvL@1=HA70r3wyxm3zF}vUTEZV!NO1Im z5twS>H2@Jaz;I$h-4pB4ui0&d+7$GIkS<_QmJ3WRU3CPtzZbbFlW7Jr3n*yf}w%)C@;}~ z7SU8zoINK)CzX;r%OUhjLV>}z6*|% zz0=lnd~S1#wQ$_-&gQZTR_kLuv3v%zW;MyN9b-edAHZ2a4EV2J2iw-)K+R%;^NZ>ei&-;Kfi+$9 zV{E3sO_?k~s4vgrjt}%SG(zu5B|$!Berg*P99I^-}L()ELbgr017^+1c(< z(Ex-hYc73J-V@k!W1YBkmP_wmD}2@zlPxfJb-bSLK=+@nZ*_vkYT=t(MC`HUo>u)l ziAzaYrbzMWF%>ggcRCv0#u-2X*S~HAS~g7rl{3Qzr}D{RSe=R#*eHH71aNoF-kn%K zo~gVZ(-Ls&F3TwE3C??rWO2SG0$*d&r{@o>qH$b;7|4Q+^`eQB%w%u}%z1?i@ZSE; zr+Qs>eBr4#w5=#Zo-FbxXIJ|gpV5;3&Q)bl?21#;J`FbR%9SH!iUbWVpsh^hNKMcf%xxhaRgx3};`?s~>{CzPcKWg-d@l6QMryy1`! z($XFX6*FUFqcDP#Mn$JHWd|$YkE)?Kcxr&=n%T+fCi=x>)57xROf3JvY1?)16_a- z#r$vVnKoil0Gla`{xf@)wLJ9>VYGpXCdEFIAjds$9oc0v;&Jx}N?!~$FED}QBGhOc z0PI<<_SxHr%oJyN#U=q%YOWW5$Fbg#T2Ps(D>7gJ z74lA$agR+95e%b0p;9AEpeF~5MJmhB_&}bzCRXD~1Q>|15&H|_ClN)B(&kBI`-S*g z773>wCAX?*x%n%P;Kb9~Bo(S|-N=9jL`(keh*kr^a@t{qUl~Y)e*C3!`HJzK3I?P z_Nh=K2GGCKj4mR2f3nHAawOaY!i%urSTlj(HR7-!zE$#rND+ffOC_K+fQM?NdU%}o z5H->FgVOmp*_hQi@L?u5)T7Gncsuz;Qp7$aB-@>hL-|4xG2SMBxN(MsYNdF9JcAvn z#|=gk<>8{btA1sxg3NPHiqHo@TNpnScFb+^g!Kau*iY+rev%BPs*i7ectHUu0oVRZ z4?I9^>GD6?oC%q-eH*!}OMss^#N7u85Q>naFVzp@%aCEZ@d$9^1}mojbHL=4%6itt z1IdrNxMf@gxZL~gAE!l(nk3_0K4=hl+)--FoX1r5VGmwKAWE=ICyU}H5KnsYy*g26 z@659x$g)RqT4xYdLtW{iC`yKuni-Zzo|Toup;PK`F&b!qh*>a+Ha~kpIPz*pD)kAF zAu*h#SzU@ur_j^|d?qZXCZ+Bv-_(efmOg6{FJKHuaQGRIs%(FXVi31-G+IQR!*~Md z$KwC#M-={G;Qjp;9s-3ytyFqX)fz7T`kkiaed#e{%tf6 mM@Hx04krUN3|v`T2BVMg%HfGc4pa&##t2(>UG|Sw0001G<;Lg$ literal 0 HcmV?d00001 diff --git a/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png b/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png deleted file mode 100644 index 3f71b06f0e9d94d94934d214527f0827e5571330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163380 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 z

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

R~HbjbEv-yd5u7^H+jUeW#>jL*Oi;(ujx(1J! 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

Ym*^0~%*79i1u zJc9;*GfP@Tp{NZ!L~(d%Aq_#px@B%`fAi;}{n&cKt6A)dof36;K6f_$RobAy>=x4E zOc@CeY#cHdl$aP%l#=uDQ#1eFD#BVy*=2!2*P)npGN(wep^)bc zb(@E9>~XD=5<+70+YeD{a>`_}9+KpN_aLrK@9xm8G3r^$S|$IaLXXZX7&!?1A_<=| zHY*YkX)7&8xlCf4i)GE4&m6WD0j?w`G6Lib##|cV2;ViV(HME2|5i(l3}r5CrG7y_ zJ5+tDZK+8Vv%&r?hBV|-nJ$nZ4!Tm4tDT!viYmngOYGytqHj`@s?Wh_GtYFvp2b4D z2-cRdtkJNm8-geVXiYC?PFUp}1O6`B|M)-t;t!9|<=fbvd1_?9A_WbWb;k*@F5HpB zN2Go(U%L#I1S89`JAZclt{dszH+>I%`ct2zhadj-vZR=8Br(67@A=<-;uDGxj0Eu5v7>aw6<5lAtdW8NuZzZ- zv{w6!!@2k~zP4XzD#=_+S^7AYzmGoky56>IBe|m{@aT55g!e@f7L;KG zgJ1^5z6wA>z+{zCn@yHFPv#G(8)qV)_benqn1CR_^T(-3;RVg(=dnq=>)0>*7AR5> zg2~K^j(Fh_6R!AwQUqWe8=n!iO}6PUQSuOZwz(~=7{l7y%$ZQmpyg>@C z*}T>WYOoK@2RN)2W6LBRG>u212>LQzU;D{BZGU1$`-3=!_F|{_pJH; z-lz$4ImyQ#dz@~%`KA~GnXO>2S;0@Lj*fZuRWf!UDd1s4GKrHy*FpKnnE!4DbYl8slvp5K(xj$fBEyHmem$!s14)J z{cPO0&-=gUZS<9|d{L5AL_OKE;#xXGU+v!+I^wj6Tp(i0rp>}TKQU_WOxQUw1$!J{ zeDNhZXM+kU$O_a9CCL$xjx`_{U$0`GxTW|t)Er+DkI`u#IJBPQxdvnBLwDf_9doh_ z&OXJkGY%%~Ka6TT^UTvDTCvLrvxSUQ^}rQILh78gZ`77K>(|pyKjTcG6Ah(`E%?oE zx=&0MAc!)~Qd@DVga#{)HkP?*k!y}N>!Z(CLS>Vi=GPIMalGt|#~HjbY?!5eucm{! zGudnCtHr)X(FVy^%ur@k=M~WsQ}_=&wsR&a*K&(FwV5WzPgF;!5+PS|q5bGm&DUz4 z^VBAmP~oG6yuozznWk}9B3u-CW=bEM)nXMvYtpYDg`C}nfio0mC1+d{L%2{8Go2og}E;73tEa`{`* zYc{ke&P_gC+2dNDUY4%SkhMAmc8)@1^TM<>^Jjf((wT71LIx^-CzqXCoAqGHTQJXp zFcn=tpjV&=)f_8J*OoTKzbxp&jE0hs3S0N$mjYx0j&|l)&LK!u3enKHcGm3!ANar( zBLn-d*@1@PG~^;4Oe)3!X2vU;F9nQ2L@PF!l2_M`$9D0>m(uHB|3>=K7e7A|#HVN# zlhkHf;>yp{U*n%Q-E@l-vj4_6zSeBWRo74N-RSRPFlHv$-}}z*rPthivueMiZS(M< zLn4Uqr8_U(=`i5{JFFE)K>lUv)XmTUL5x01UDyWTJJrjP_y43-vfq@ zXDk|LFu>W|KQof+uiqs#iA$1>arhXvW#$D&7DOO98jbHL`K(8wN(urj0?uOQ#hJi9 z``OP*Vv@%meJp8EKHL76@246Wg2MI}VKD>H0IDvQw4D|wI?VXL_O(BdwL$`ZthLO^ zuy7(&60_2GC^m*Z$}C#$XK2m*Q_~<8kBNj$R-!#1Xr*}zqHSk{h6Lvohb3Xthd>}> z>-!ew?R$rFVB17oEd*z1F7n(-G7b04O%Yb@-+DFmV<^`2-b_odR{3+#51=@i!Me6vn@t`Le-j7vPItUOJDi26i(Q= z^HSQreTRe`F%&BVgC

lAY0dcW4=78R`^nu0&-z!64c-y_sE<`pfTFQ-8ib1f~!f zvN*#Q+wxfx?otdSzXR9#gaHCN$KC_6mHU~2BBB1|NHoY*$%EDe7rhA_&_X50^E?vzvqlcV zPS;#DF)-1*mt?%j@u@Qn3~P%lSnDU1>CWbnOhdzH1{Y3vO)`Up%~$#!Qa)> z6s0rVAyQGE4nn5Ph)P1BYJ1;Q@OL400{5=E9>NgJ4H^B)0#9brS-{}m;lH6ulh*Y` znoe%Bv=-PC*hhoqgqC$6^@xUGMDs}e;fXwIm`vaZXA^@azn!ZG{4&}HKls55A9>`_ z_c8%qAlntR9Gmq0`}T_#(Hz>;;_sGG;wNjW7w)*2KJ)2M2vi(xnL%pys0GzJ&Bu!V zb+g@n|Jz0=`wJtaeWr>@D;jJjtG+7KNbKxE%r$(sj@s`-4?QG82+tLVPVvTOX^&y` zQ=?|ut#`COth=XjmdxD|sjdW!qDbD#Sh-E+@9{@jmS}`|;BXwVPHN{br5?{O<-*a*_4Se}aUz9xHAX@AFx;WEi z!9)uQgt-8O1yVlEO+m%;hR{}BV=Iy5!-=Lriq2sAa8k<}L8`CCZj6nje@N+tV%vMzD`S2YWz9`w)}kG>4FkeNwo=&X4axP zUf7Pp5(x@r!kFE>i|RvqL4(f335&frMGSJWh%!ZdWMjv(^Eh;0n1Jz^n2JB@lAw|m6&?ql2N`llZqs$md;EO!Ce2|FUjYa^=ud@83z-^s%ZLzm ztf-ySfL}%%8SBrywC|;>n2C7Z&SdvxZI6j495J{-5`?CeK5d{E{W;Lv-ue!D@WBUY z_ft=#Cx;Y?>si~{HfpxVMmsdOqeqVsv>9!>;cmY9R@oGfJ@yEFx2@ISvk*}Tr;;Vb zcfIRflJSa@e0=Wreov5q9XqyK&`s61*Dc2zdBBMJ2Bg1|?DC#lmTwBacAE8&6EO8_{ zrD%scSlNPt`7kk44Fu40gcXT4IYc$3QzPo+PGB}2IZVm5*NNsO_D@?+tRXVfK@;|K zY8xpdRaqNzw8Y-miFKg_H5S*hu`dNdpn!h8{xb`p>%BX#!7G^^uH@dD(lJs98LYh_ zArCWGnFn1VhpBlVaM;Y$hRXB{Ob!}xggX_>nXZg=JtYgtT4p|k@ptj_S*R6&<2;7r zq-)b@|0I&)j5#}GW$iX2C;qHbyy_F2=EQU|H@mj&4@r?~b-p<_^QKL6Kcg96xm@23yLP$l7vU`Y6R~rTJ^H9*hT1mT zqQ$vnrf??0wU|JA>Q0l;H6*ET5^OB8ofdXmi4TsX9AVd0M+mp?uE+KIGks>)FBb7T z;*LE8%Dj6o-MQ0kc_1d-2N!M7_efQkDE0}``|*C^vXUr1fi!k|pWiFO3(pf*b#jK% zPQEg)lvDySpYEYd0o$p72m;$Xbhdw7o8SNa&(p8}+OLUe07(pThAPbkOm6$-F~a$% z@glY+kg9oqLR*!@5LV(Y=Xi#_TA5Mj!dEs)fNTi9iD&cLS_lqB=M=sU(Aa$* zY6v=W3qiuZ0I|=Sr4;Y5XT!NLJ9hE?oNyz@$f_2XXhmX*Xin?ESch-|8)^u7o))#x z5_H_aPw9K#!(@I3HRc+OINRx=*~>XZj5VcDEoiL{$rnHKWDK3nKFU-h{<_&mq_Dm2 zKcopQ{_c@(xTZYQdas%ZhAC68=QQB6Y~w=x%1JJ`dzNx_`dv{h{gRcO!zwZ(M^uSg5%85{}({v4LqhE||4jX09NZ zs5z@{xLOX5QGkmtx=6}N@}Zy4XC7+uyTALp^nLIAUV3CiEiT)6nKR#ksxwn)mEr|G zv#=7WQZ&L{oCJQ>i4)qfqep%40)>rxm&eSuY_>yxfN zqQ4278ovwkLOZv)4=^xC6_Up5&R2-%uB{f2``!7li}-LiOITd9gtFC2&_UrC2opx2 zC{^}*;}B=e70)2bxvBO1!I3l*7H9k^E}oIWqWi6m^iNVz@>k~=@EO{u{m%F7+57WH zjvUp54`##%MDz4hPYXlgHf6g0-zDZ7&R2ZTt+(DmFOBx&C!TmjZ3!#+;W8uw=AzGy z?=QUYqLD%D9JSxyZ6TwV)e@)M;4|*~ip#H{d+xqx)PA>)+V8h$_wLtzfzT{O zgf}i1A-Lq?i^ZcDOjw7fL=nsv=mHLUFk)yaq~5avb++%G8Fbca{Ju~mDGTAtjM+Xd zVQp4zRGBhs``gC%V7M6l^E$Y)fJ@ga!f)whTdlvounCvy=_bLPxr><%pa+Dq&S%&%yG3dkYWB}hsf=_xZXYoWbDqBM9tW9|2bkL_5d~4 z`5HH92hZ0+;&>f~E+yifP0)bAp6P-*c&X@s`_{wkWzQqv4C4m5@LKDuuT4&VPs~&k3atS zxF|2snfT@OdobV3SYGp*Tj_JZ`{}enlP-8#<{n?N&6e#;tuvTjQw&DqjsBLmzE$3V z2{$L+;Oak{EMC!b^_m3D(j;qMH{bjk$%V{zR3`p0it2|WB;6Q)I1)i4u_><8cd+@e zwQ|X{<~duf`8HY&QKRLhhshroj0~8anD{+#Kbt9d&R7!`;%7u(DXV%&gXnQ498SdH zOm3!Cc|QHw&(Pm`@86<-{7?Ro>^ zPCuUOxpXO=Blp|I%M&$PQr13{iH2iTK(!`Fm9`KA9AcnR`5G4rd-ISrE7PdN^S5}m zB4LE7X7MZ)FOYXIm^>42Pqc5LAkexH|JwsPg_9Ta4fgn+rKkma2Y3~)r+U5-l9kH& z_0*KeqY`#vv3>U_CQ)rYI@j`9&}Sz&dCtjo8TXbgn@tE)haL?%A~)kO66Y{?r?JI8 z-?avlNQb7TJuguF2(6yS=X&h(#84dp@$&#Jf1=Ie8B==G(8LnLh94)}6V1NLOu4FE zJMY8RBv2cz9O*-|a0D|&KHFvToD6Ma&-9MqltwFOI2i)z0%*fHS0@)Io#AV&xYYtq z?*`g23e|N~LgbHg4EQu{)PB2>q5RiJjvOgslNrMEnTs&6hT`PeHQLmHQ~zb=3!ZV^ zb-Tnn@0n+JdtBhlYjyH>5l61WhYzL$@$x!lX3C`mfBWD5_A&!D=F44krJwund$SOS zJ+Y!_vm7&>HGD|m{>Kv2OyA*0 z(xhwpuKBeHg`7N72M_JpRar2Tu`%2Xdn7krLpBYt9aj#tB3Xp0L?XP2Ew&SFmOV|^ zB}63(46u_I=gfZN8}FrWeEk~&S*wIUIP>9#&=zDZf^7_yTX^1){?eK3tn)bM%vjyd z+eLONb;xO@`D~{{jI)-ZbJ3^K4CQ}jPZq7&!izGbSCUpDU8kfDE(idsFql{2yhtkH zjxGg+6k%%-@+S6cAd}t9HN&PBZYj-sR%oQ9Yc%jITmxYM0iVx1cj(cg?qQ?G-qPe4 z+Mi@pqUta+1OsSU+#ek4aFV^WV^`Wd&}QcpWw=v63-(`NRD}PpjJ9_hbW@c|#%74b zECiyKxkhW4T4IXL!cojoqctai43~mo;(4Wn=BVmAE!pMet1dgY@!UnqS3NJ(gkt65 zDpTm2TjbEzvnJZ}`5ZW*nvDW22LaU2UxbeaxVEr3g4y9$jjqyXKKp69>#jQ`v`Ywy#rGmX zLyqs%GIPB{d@i}Cr2I&-;6&9JC6YBLBbfPTSU+e-aoyX9kv?4sO0m;{5NhV5yoYOknq=zT)Fu0jW?Q?@`CZ4MrrVeOoAgZv}QSjqQJ!7Z7w=-?Zk?dhst83*bk)pkv8CFrP332%<6m&i)k$Q-Zb$TRHai+?*Y8 z);NSpgson+Wo{=WZ@qd5V=sddu@Hdw5SuCIr?xPphS^c8)nzSqDx?L&rIiiu8_s3P zQK`iDijGj@1&{aCbuZ1j;~o(xOXoCbo(d`eI(LR|Yn!7Az*OhSG{Fs~NUwZ1RQG}o z0kHR4%jzg+!ky*tG#l_a27J19_{fp>jyAKI9FRVUC^O7c0-a6>k+x$%p6FFOw*(^an86~yYN)GZy;;elIzlUEi+Dp zgF;&lrjB(?40(u*XGo~Pc3Nnd&Z&?&l5sfG$h46z>UFUek8-#DRn#&f<9Yw2I*eBH7B39+}srK zpTN#TDmFl+sl-GEjdMeWv#j|AaT>hn24HGHc?x@`b7kvLy2wODiSa3<8}(lSEoTkK zHCxk)xmGR+uv7>#0T2)`yv22I3{J>l!-!bWu0asMG(_Xf3H#y1M8)?K3ltCb4FJNP24{IE?&^*81M$|@BE#=bM>hG zzMHFv^nl_7LOmdMPN0!S?NbYQxoyf2oEDD<7 zO4`65K|4Nba8Eq>g#4c99YI@Q25|FDH_@(LyQDBZI}LHH@0u}E5Nc;sHPXR>pg!`* zBXrTl7m4<~$+Y0CMaCg4Zl5U$V$?wu*T@@U0kpDoHva4>9ZcSZB%5F`;#jMi7;?l3 z=CGdL($7t`U>0HyTmES7ZKyS&A<&XENT0Ka@nMDMZ82Nj=Rf~>dj0EPPuq9w(8FKA zy9crPkr7;^hr~f=jfXWfwj%--W5$BHLwJ#Es5W)k!~zWqnYxy|W%-^iAlocth-P7$ zwKG{vvlk`^BJ7Oa)+RIQTpS{@gOO`K-Y-Qh;UT32Er}Vk7CY1y3Kk(^ZN5~hu5E@E z^s%4$fzS}q7Z|PYWz$w8;S9xEl^A~(P=w+33m4RcQLbA(YX~ApHQ7g5LqM?do_+QC z*tB_*el`rQks(nDn6?)*s3eL752sIaku}ZSJPgcaCWBZ*@Ss*$o+2U;h!7^`uymT! zV)KMCsN-B|_LBh_hLGreT`3JRF?HyI@Bt(P0(obNNDzOFvZuI4QmrCtpoS9`gwUMj z4cDV8m?A$q8(fTGyuO@cz#Fvv2M_+_$bh%%#@B<#wz%C~2X?|3(_cyJt?6GhY{rW( zxnv}eTSjL7f`p8O=J(yT?H681q3uq8Eo2b;*eZnh9dChlqR3P$Xit z`MvR3*g91Z$#A2?;E6yEQ&t-`M=uO-s%Wa1gMw?RI&b9l<=EO;Z?$ zo38pmQY1cl@J{N;gzGs5yrTWmFa6TCLkAB06x&R~?nR>IojiG>(Wq*ph3ZeVWlc5O zwbxuf+6nj5p68yiYXkUb+bX79m!5M(!eR3F8!?X4H_qh5MFW%pEq~99fVI6hzVRM$ zzIx`FXGbmmMS**qA#@r>QkyY`Z43u&_mfXbJnYtOTLl*M{IrQVmLwf(@{2NI$Vp=^ zuo0OQTPB(_Wt%j##(*q~F?}i}N$uo$j4>zGzX0>m&zK2k8x`Av+0krBDf&bkw*3Tc zn(cDuowr3Z4}pk`@5-q>*|z@Hx4c!tBGi^Ub5uYj?B1d9Df5B^?|Fxf>4*kZ!a+-k zcBD!K@yVea+}zQu9~=?FyXssf*tcuHBMN({Y8xS_$@4jJLQT;1L~v`gY4aqn#ytB3 zr7Fxv&AtO;b@T+!EybA!hdxo-N6xTIN%e3k7y!@5!m_tnVG%f8iH+X&+00_RLEtkp z>#b}l$`2OXOWD~Anrn768Vmsm8*1M;Vu?^{dtS7(S!ZPo!;72I5j}IMfXASj+4zjl zV4J5p5yq3iVT`=2AQTP5E=kL$V2G>k%jg#n4fK~aew2M}&=kFp5Z>nY-GuVs{oR+M zn>h*tMogvi`?3H9e+m(>M61>b(eCl|JcQTWT-9_~JVb z95{G8D(vt+XF|%Ej><~VAVHZ)`<(7CqXojawv2YeC!Tn8w1*zwU=(1oS%h5HsImX1 zIiV@TKWD{(4Njyil`jhsydmHC#y5_P^AfRrGW`7X(@%*rQBIKGC8!Da`P>;ydHlq2 zDbKfK`wp?4bVg_}aV_)h8fJ@!OYm?ZYI*NL{rIjFxg+HyISq1eL!g^?Bl;J-o0!89FqG!1I+ z-sfq@g*(I+EcO^Xa$uTMtpwU@qp1)W@ruu8upv=`rNTS1%l&p;>K}}E^1LoTE8uUu zxfV1JBEecPOT0r0>A+8DFuj>K*dc9^;!AnZ?A*phK3M3%!O!+B)IwEn@<_PPe-A07 zL*Z^MP5|aBDM5`0GBH~80o^jnq2VkwZOP)=d7~L1)gqC9Cm|z3jQRxdFBc)rh-g&>-PHf)K z*ErddVQRqskZUM3@$4j+h1(GFW6h9lyCo(X*ZSvOX5=v*d>Ocn|5mC~L^(W6ie~VaO5be)@;q!FYop(wGF=Y(Fyuj43hJb$Mz!SN~ z2m3JK$j;L70gl$OXnt+h=y?C1Jax+8HE1a2g-R`fQus2UKCHcXp$?HUa5f7lx081( z4vUJG2F=qPYeI8K!c>{=fow}m5N8r_AViZfHov}_O}3_5!02-b!FLLof`Jl+=Q8Gm znHK+Bw|{t!T$}bU*4;JpE;RFqKkXZYftzS?=4I_#7bQbjtxY;lXm4xAw822_&HV4i zna@6(r+w@YGMFq)Jh+qjf$GFwT&Q`j&$HRD9qFi(Ft_wfzn5BVd8#2}uVWvmvBQ^MV56bdaI0!K0E_O-8jtvCiD z^VRdu?-lJ8uP=~e7d9(w!tj2zC)7xg@YGYgrE(IduVgJ)A6lL08~gLw>fFBAHQJFg z#I7`-QDUA`?Kz~~tU-rn+%oG`ns^?E?hVcimI($YA3^~3%h68qmgVjg9EEO`Z}1d?f> zT$~X8A@+%D{)L=ah0xO$il9L&V5!Cy+KCEk%Ni8!laJwjouFx|b;9f;R$Aw&O+A>y zN2biWt~$(>lD%|rAyYk^+d>4{+m>v;lrdOXANFDwMIxvKTnU>ym@|mF+sEy_5q1VI zUBLY!%&{$4fnp;n{3O`kn7+=dYP3|^WEEKu0P=^m&BZWEvSDNHvpFG{>6{Z*Zk+dd|Na9%!RZA7LG68Euay4M13aCsGegBD5N^;;uSwT4DcaOR zFwx3s`)tRgznr&q3mrS&+M~fxgy46(>?mu%Oh`C87KcrQJn z9Jb(v9AiT*)m97UV)xL1L42yiySgAupcxA6ElnZ68_y{VIgda77~OsM-40a_=Dc;v zv{YuCEWCJ@pF$3UX5y182tm$TGlvv@-U8^wfE>9c>eCXrMp_Nx1x$;*xG)VG^VMiH zJ{I*-l^9~n+p;;rF+M(s% z6mEp3&Q3X5L^^vEj3j6K0;*6G^A<>a7A6JEt?UV7vT&|rvj>|D*ozJCEzHDh_kw6J z4XahX>1{M!(jFP@lldvt7|pmBPOUF%zL-<2=t^O!H23(Yb_RX*a4wr`%LX(}TekIQ zdon7Dktqyn(lAqrtrhN@rKBc-dXVo;dozC~PzBMDku;^MO&tKHKv}=%5NpTIaVh|7 z=xQSbYROG@!jjI*CY0ep`_>cJa1oFQvK%g(`&P}w!a4i*<3}dnhTm| z!GvkUF)jDu+q|^jNti?Pu+sd-MDfZ|1H10pYo+cl#|ghM3MUeJL{TXQL`sPYV)i;M zioB5! z7fxb10fdHDwOVix@W2?9=u;y6)na#Z1(<=p_@yt=Ew|h%j&E2eVf8oan_u?AsoyQB7zVtwvT)4C~4g9RQtm} z@kqBbqYjWI?C~bh$lUeSy`}|avRHC1@(!==%+w&X5Mpyn>GV6(NRnww=Gt34gq=p*D%JW~N!8*)9o0EwjxbM$l5au7#eV5zz)( zvA$P0Xn|pOU8Gl3;?YI=z_D@mFSh+V^oF+rVJCH3;_J3<-R4d-oiSO4p)bAU61x8S zT|VE4E0$#ZfFmigNi}dGLS(x52hVA-ff_>e zP=VGg>r<+0-#kVgf7s%PsIk+z_Gx*GUG51kV8gMEEUcMh`9fKgWS)CkG zrdH6w-0=0&QiA#WDGH%yKKASseL%~82pKiV_b)Mh(sSy9K^H|xFsESPx)%pG*?LzmwrBhC$dF!4Aw@p#PFs0P~6n??rA%zDoVojm)@ zGqi2nHkx`T=8gfi`N5-*RssJ)sNrk42>nGDUL;yD4ojAZ6}AIzL_QhNfT7(wleK?@ z16YcCxuQ>aTB9G==*ntGtIUK0mR2S?>pFM9;KoEP6C6&zsh+`;ytkBL=^-lP7@^_* z**qWx8t%DApmI- z-20e<@nm9|=RG^^WP;_8rd~;ax?^iqhhFh_)_S0uMfG8=*0(Zs|B+vmYu1p~}d9 zfwFVX3p%wC5_r?WgNJSr?0($2%zT?Lg-o32^xSV_=2-pvx&%+3&HeG@)%^SPnsvUS zHn8;6?h?cdOo@vEum;BP^B?}yrApc{w<|a_|qq{&+6O zl1rMwp*HIXhzxVW!XM%h`DGAF#TmzLx#boYd>Y}VCdU}l(agjB$tS*ABIPlOwZfJ2=-pONk4 zVhD<6XHw@NN*SDhUPyt39*Ib*d+|b3&yGW2bnb)E4^0L&NjWNcmB%&eHjQY^Ng)(j z@JK%z2D?hLZM58^;bISET7c^ub{;0^MKb@m_ML<`5o8Jx=r?L9=N!?1^j%}F0q0FaG!h=6C{^R_dVoPIf zY$A72W}vw>$}W_&rFI&Xn1Z2h#C&VM<@Egjv`wYg_?vAW%i6C#ETr5*ci(fjFh?Hf z<4-&;@Qjye%nmC<3qxgyQI5nA$^IRdHV;*X#TbI+I=j#wgK6TRwxiT9soC^dJq}_~ zTFol;8y{yqDiN0)l0;=CW6p8GIr)UVhxN)t?(nDu*NPAnAHJ^(2rdgZ@Ztn>fB4~t znSV3e3Yc1ly1sK~2=AsQbfkzesQOPLV;X&vry=ya8Gb7}LFY9Jfz{UWv$6QO8 zlNHzS2!>)=%W6arI73O2tJ=49?md*LRtZID?=EOpHoNKoI=%JU6x7_YQTJK#e4B*X-1;;U(b)?Vj+?bh z-@9;;kN}LYv*?3qVGTzNhBgdp)BF!)-` zjCK^Wc8vFzb74rR|r}&!s5;tHRg#D(^8vEFlN_uh@3cv_CXsN|rHO3z%yf0jSanp)lqQ?*?WCKZ9(SgdYHW0k~!F@oZz2dbTOcAH(wQ zh-Q<@zpt;K^!LvU%>{?_c_msxKQa@gwAT6aE|o`gO*Rpv>?K|%#L$ID3b=nNq~y8g zpJ0fBXe|0=ZQh*e#J)QugvX%$hPnG1SJ%8T?-{YkN(3JjzJ|S^&uPHcUU=cf_l$(G z@Il;vV82(J;TD@R5&x3NOJ)iU!#y+SbfI;{=Gy4?nk3=6A%{I3>y7WY@ItmxEH@p* zZMWY}n;3o`FM8;qhg37lW#*vW)(k-!fgd7iLH-*=KgW=27z#-(-3zu~AP}h9%|iPv zWl9V}D}yjlSN)!@$4SU@5KoFXut7=XnMxfmzn!+Ri7)`@= z=CO7XTN<#QFouHfB8FAsNox(q6wLP!5F%Cp*}b6o^g~-gsvjbYSPjnQns$apedm^J z9tad5uj%v}9xI>y-rf^7Y$Vfn=HgkSYGTZ>uW>HWALcUb?iwS?4e_FJ2EyM2@zir@ z&$GyAMO4#!1EDB{Fe^aEUS9vC+0E48`tN???F)n=Fry6dayR>mbpmt4q z65CuRX(+8fz{Fs7Q}Ts<*8E+jW{K+iC6JzYADo}X`Z@*wOr{h{p-xgaI1-E?9V+%3 zgr*MWg`q~F4Kwc`4|uH+BBnG(H!VZZTn%YXuk!Y(Pkn0sPyWgO`J)TV)w%Dbms<7K z+A99kGTxvov>e)e-@|LTyTP;`hRoQ5^6|%?kfa=3h3fThcs*Tq*<~JL#KHZa z`OIg6fwP^mXqBeBTGRs&5;i{XN z2Ab;K;@@Jh!T?!3q}y>;Co9;$gKu8nATH!#E?nz{@HYgUpVt8~wstN8x5if{C ziM7CbHP12{RWT-}NybdkFPLWDC$8xtkxkJAH9iJIJPH~5LkUG96}*VeC`J$Y`HnD| z9M1KC`Ejp$2K>oSe)8^p`}bYN2bT#W7Z^aRMpS(k{fmYi5lxuG>DsERkXCK`jtfTu zdn|Iu=4<@kW!1RV3TwKftav&Yb|*>Wn{VsniDSn*FWpHu+<1e)&tLz>*GGnUR1#*u z0i>Gx+@Y)&w1g6n9TS7>!N?78w2nWL7ziOY_>;YT4;?-fv7;ruVObuuuSBJEF!dWS zP*X1a^V~%#X+DEO=Se0C+!M05ep2!t0TdljCJQahfVuHc#QQ2C2oGZ2YD)TfuK61F zbY?fZ4+1kugCi>`1 z8(`aEXSIZLEG3zS)Oj+AKD>^Fc;PK$L8hh#z(mj%WKUS!v=GJK7-Bz!c2g+{cEt!| z>|qq52QzZvWe6u1O2pV>Z{b~S3`*Z$85ST>c^Avr<{EQ4Qb0YpK~RBq2fJlyM5g5$KRTiCTNwEz3jt2&gP9iorQqFLomW;j1nzI^Ucg1 z@@y=%_(3}thD4m9=vtK7jJAq}o|*aTBCWoZpUpLR4<9;6CysAW zp0KR`s2%Il6RCY*biyeO7j7HO+D&M`JmA}IyIso#jxg#24?O6QN-3#2%WUq_r-4v@ zu;ICwB}>?}a-B|x7ON%zc=owxrAks%7Yb*YM*Xn&s?Faq2Q6#{tt~Fi$O6V$C;dZ; zca4{(8gm?SotFq>a46aiA~!y$8HR2UhqMl!({`~irla1h4?OUIgoSZ_Xb#unA`YlK zTDq<&)5jgo1xnO8Lg_rIZEB1kHmk@;RlQ&XpiJ&hH29nkxI}(vcoHjdQg{|lFF*z& zhcvZWj#B(A2!3aC84hdJ8R0DDt5zmhy@-K3Aj!2+I&!G3?Yp9=I~fX7g28|=D}xO9 zJ@y&-yUJKf^{^j@RTq)u0&^^5C4`$TM6g0GXH@3Fnk%y`9zz8V$7=bEUS z0sJh51KcnS?Vhvq1KI-NCPUB2;~WBZb-@dEcoB*%jv7u=K6Hv$Uodu{d3Zjc=B_JA z7ci5{pldcy9_FRM$DyipWbIYWfIsx153LjhkOW`_Q9#<1$S^YNf&O?%aQvJL39uX~-q&qt3Qk=)O`X~QWh!iu21sbh<6$^JX z@0usliMSOB)ANqzHZXhyk5spikQ<3J)sZfQZ z&=RyCC4TFc>8(SkDr*jge+lugi=u1X~CpEJ#VEtf4xC&Yr~U@QSVr z5zugMG526}aD2)w)}&76uyv@zyyv;Lt&)VQY5LPxJM2XWD*1cg6C$95Q1AQM#v@F6 z=$GHEkLV2Euh9PChcKkXD=GxEg={pISe@jUR>qn4JtDub4VZtvsv+p7_U^s$(4j+j zG9ln(`K!Zm{G{6NL0Ha;QTisEDrl#_ceVDtJgT#6=qsLi{KU!TJEi&I%)#yA(N1~m zt+$94`q*guWx~I0+g7tH7RoFtYYu>Kia~?WdP-u9$W03(Qz!Gu0ujUU91qKqBw%PN zEi=vURRRL0ir{Pv%_XVb$)%r66y={SG2Z9^d2tIEl&KZ@AkTyOex9rdhN~rQ`v+ zkRl^U*a0X`Y6V-83206nlUgB2nf4OXWHx2X;>Ba<)Qm!u$b<$alExUsxyp!}63|(@ zZZ`FR4`Ig0lMlk1gE#`7EY1L(=vPWiE3!p7Y+2nyHR=Hy{0%0ls84Zr77(;D&3-^^ zs%pw5!PrR3AKFl9JeZ};?97<DKg z$@ANpu$Z5hoxysGF^6!#0##1wDc2#qFy3xSn2gL_?f#l<*!naF8y% z@Irdw#TNvcS7VedaO~ZKk8N!j?L`;r?YJ5%87%p#-j&G&~m% zOvGPGOz@}$OMYJ?)_T-y2pTpx)-XALuM$osjD^1S?QhdtMmsP&WwFON-u&__E~lUV zng6tL+Ij4eN9iB@gMVON%E~l&oNM#B*L+2#AlOcsk@t&**{y?Nh|QSeVGCeG^@0{n z%#aGULkjfjairA+u2_Srj$uRZ_B_}o<+_<{oOa((bvt923c`yPVMOC6?KNb5ilbB) zS;lPr+(X?QdjdL-RE@|1TwN1tp~%em#QvT_T*x$OMKL;Om{@DK2X~1nR(+j#dDYSCSJL;)I2P zmzl4jm@o$NGaycsC>k<^w%@gB0bjjwz~dy9(f<1`*0gw&GsN0_zww=P)=U$M6wyTc z{SUt}k!DX@PSnAN@xg~46i;mw3CQ6?;=O5FghM$7)eLrUW=PI&Od0myNK~#9C3aJR zzKHhk+b0YPFf{CA&Mf_zdF1W-te$th#)rtShoUD-jUmf4qdiR;#dC<|y}Zxx&B ztO@O420SEa%Qp-~O;d#p`$Qzv#`^TrPm2(Ba71o0l+Vs`?7YT~S=-LrN?W&Vm8vZ2 zEM(*9w1nN<%n7g=WA3>>WMWd7E*RYUDb*5YX4@RF0EyrU+-aG!P)q?ax6a7T6WS{Y zNyx|G4rAE$k&_d|hcA2FYYHpayw-9#)rZ$=TtoGn$3@g2~10(iDI5udqwc zlfOp@wF}bQWekN=9lxrbus-;~4_evLS5v2)spQf1v6Ai5v7eS~% zpZ+fCo#H+lJKn0aTCh50MM^)`UJ;rk%*Tn9Y64(x@S=vjbY`&ZQ%^nR&ML8m!c&xt z0F`F#^%)$W%IOrRVIIf=#0)v7k_>H$n%v&-1Bi*IV0b2EbylGWEyI$-5bu{Y4e4r# zRc&m7*^?IQGt_o0X$}0njYww(;6h>AAgzxB!hRyf<&Xq0G{otO!(BIP7|M{~Qc2%x zOg8L^p@EUTH)4m~nJB#n<`-uodt}ENhgR+a#;naySDSZ5x=BNM>fk6xSwU>_p32`g zClO51g-Wv>Q&}ogIBghHPGr&2nxP3Fg2@ET9Oo5#&m913ZTgpc^B%FL`PZo}Lpg-T zUQ)(6^Z`dadDmfRpnVmJWZVPOGmhhz=g_OPjT*$=BkX($PvG&<&Q@13+?UVg8ph_* z+45DCPWJSv`jvUdmu8Z_^rUml-9On#AUuB+c8;od+$7nw^i~5akesk1v zHB6}yu$^ONikhO8l&!Fi`^ zJ!k>bAx)!t4@c}UH4HoAhjSm!5=&;f!-~)1{6K>SGXzl&zXW4Urmea|jqQcmtgXld zVFE&rK*tl!Kj-fjt*eH1Ha!OnFC(|KGt%Vvm+hq)O@b!owUN7&!#P2~$SIAqr7|vr z_l*BroLV#jSbooH9C)`)T%4YQFw`D=^^f6l#TqMks(#Po*gV z=^DSSt-q`FhdqmaQCk^E3IrbPBMG0h>{r~fnGdwcki%Lnfy1ko0Uthm^uCe!bxgc+ z-Bz?(TPbh3wc4-I--apR-|Bnu^Gr;B%B+k3b~+}!`nm0f4`#OP(fGR8zRnYsbMg(= z*6PrPl>q(&vntka4&}mQ!C-1_Lk3!@om`8$qJU? zTK>0t_mi}Bl%^$l%=A^#?j4FUqYOF9=l$RWBgei1nuTegrWoSvm8^top7v6}jN*i{ zSa)JQfO*@vaG#dxvowk{L<%W=q&jH7=W)$3IoX+P-bXgJk1oDX3O#Hr>uB| zjK@5jv+dXWn+hA$YLNtHZu5$G_6)UZSQ>H-N0u^ZYr;U+7ZEPjg}1seO*=adA=`Su z;}$}WXxfXR5!#Tcth3Bl$dKhBPQ%dHhvzv)xe=IJ1fqeBasCoxjy)N>vYEqS%5dZU zoWTpizVF`&9jQquh7jQbfX> z=(O|kYqeUxDjD#HKm6g@i4(_uNK?%ffuNTubUi~a6A94%6U2bdqGjfab~X%o^4p{f zXkhIaR=rPg#+loW9T(Bfuen*IZ}vof?D5AW`34TcUKbN60eG*7-ZNdXe zY4iQM!fEyuDYwSefku1gd^U5&oS)IWTatQ$ab(SxT!@G>U*gtbd7g&k_=5{;BNXA0 z%Mura5=DfA31=AEi3Bt-Ct$@Hvt$E9(gnnDK2r*M}- z2`QMgV*4r)TWFUK8xN6#8AKQF4kSk%p`u2td)X32MkQLU1-kvxE`r@3!Vs7*+n!~f zEH)f4Jv34&j*!w+qJJ;jX!D1}8@W)%U`$+`tqOU4YH|Ttg%bXr8Mc(r+qBu&9q$hm zr4lr^m}=K%4FzN8qr8tWMz>W{>}@iky}h26G|DOMY&6?$xeA$&&4j8tME>k7G^+rE z;vsf_G6_NWbUy`|yXxbEkc2UD*V)rPJ8)@k?MaxFtWhs7j#~4tN(MY?beA7Ga^wy^ zq>RUpw&3RbGqK+PkXqtdFZ({%)FwOry6dl{i!QoQ;(uQnA>fx@e94(3m@0^;YX~Kn ze%A0@^6g@?mr9-yXf`3veqbz2g%1qphGw^YCSIADPGKtl9Pd|(UzZg$vcF52&I2`l z*JXYh#G}?=c}ePyxoy`5-mh~jf}XVwhM}oOg(SeT0kRkaT$>A{lEXe;z{1Ic4?gG_ zw&cph%#mb4Vio7JCn|u$n6xcSQ1u4_A zeUd5zLE9F_S2|A*D9@1|ElJJC#Itef2`n`}Q4t$FU zO^KX27AGK194!c(Tgl?TfzW+e(^fNR06scCYMrz@--~UqxC|3s*lmNY0Mvy zYoHKlBzc8p5du+G@9MDSLQ|8F6N-=;)BOA{R2|%c0vopx8J*F*iW5A}y$%|8Y(wv`z*heR-E zr)5b1kwO_GjoPw#OO#V33$FuR6oU{s1pTUv1Kxjd-#Zj`E)I23DGlBA=32-qZd#W< zIdiLY_N|=edN6|xzOAe7$P7doN-3=jw)4_U>Dp_q6^M$3lLsF7wpCv#)`K0;YANzK zV1H0)x|WdiRH_XIJsC(;z_HlKq$)b&MLT@>un;B|4w#sq0yJov;;NZY`X7>WdUXDe zX*Me+t4x@b^{Mf>!NBF`qziOe+wPoLh{k7?ZnzJI`Q>_(o;xsULh%45nCkRXPgMf+ z%fyDg)7eq(Fc)|j88H`V_`mh-lNbQV}sRNI~krJLn zvxb3aALImF60_8ZdF3CHhni+S=b{A^YG7TC7bgEsp-Tv1jbOlI?_<3(6Kf{e*EpC{ z)}FX!4`&y~s5DI9g~6eP(H)sE#?KLXno()gfO<{&DY>2P9R!vyAxOZ{jkVS6z1z*Y zl|B(J91eO`auEyI7M-z%7-`UI6hbLA)&%f&S9Oo|0ELZ^(c`wd^T?Q|x(f7Jv;e{`Kji1f5 zpcI8!Ekc{t*H3v!nM{8jB)JUYy>%_;B9P*5Fk1*RK!n2i4p4QeDG|r3j{$S~$xnUi z)Az6xzG>4I(HM+dP-aY^x&Pd@pir9;#U8P+t{9M?ugtB`YKnv<)vNrM3#RTMtO^i;r^gz7FapfW@b z-BTmn%E=*EC_w0rYie}@|CTJZ$NMSqsLn8zQBK2Fri5i82Gw?6Yi+Lx-rlZBmZ;$k z4S0&7WSLhXf-_@gIyYFCN}-(~FEoG4$x1kj8^6;f7hgojj~=7lyLT(I9foB0Elr6% z5dzX&qxeF0%y9-dSdxw*phaOcq9LCWVT`Zuoq&&8uaOpJ=nKmQ3`UbRZrEz&yR3yI zEfn)vQ+B9amsQ@+U_#kn1aDR_S_-1iP@%}%Gl_G>Jxow*nk)W(YTLtlWhTPJ8OVb0 zIb)6zHfEKbxVg!}Qe?uxiUmq9)ycwWEnWnJR~YfRw%hdV&2>${EV+r3)}mU1h>kL3 z&)2P6!G&V;Bye@rL>@q8!iH`F5?5z~8KLNS0!^Z3Uu#7uj52*kWi>gnBZDEBn->~Vl;{g%bZ@Hn@Ji$37xC+;|eb>x23;DQ9 zo`(_+PgJHdlFnnb>4f&v3NQs~hcU%6xu1yA>~$8N1Di13Q@qS;9Pk*2jdsui;_Nt6 zEmIK_A{Hc>;ck*RVR9{l^P8&%AKE(RSaJY&;pr=kU~O(%LnO&Z`cKUd+&cj-&72h{ zIy6~-Xw9LiMNBHL#XQ2}c`&bMym~nMMU7y@v%)*rs~+)QvGK!WwkvI_%UOD7W!zl| z+6ngb9LY&*Q-&B?WH4eIW3mxKNXdyq;C(AeX=Y)I2E2)a2D+WXOyhG-ih78dw*+z_ zg7aK6nn~i5KG`~L?!_iP?;PHi@Fo;esZqDNT0$5;*MfYN5MF#o=C!6t4tC5-x7u!u zd2?8wQfw`SEgyRx&&g*c?;ZE2sI_rsgmU4Ut^LbFTZZ>>PncoM3*LMQfF^+cWF#l* zJP)2sh%2q|x**X0|{2 zqyI78d+)uzAvjm^Fa6U06k6Z3P5S^YhNc&FWWF4eCQ!MeCUwa zG{^{z=WsTN)*TiGt@R3RH#_Kv)Sr^BK}vVHDM4z`v;aLQ6xK;N($!aABMb;NlQj)u zOmLj{Bx2*})sV7POU_|ftyJ$Fm6jvdB=vg+C<<*l|6VD3mxm1*#9fGUKX;Av$kC&8 z{wUZXBnfE?jWZDJk?P7VIYp$-mfH6O zRwgTfH_rLosvWW5%2&JQ+J&|`)ox?n>V$D;K@O05XJ;tpI5SR^ij!wRV@%noB(E^M z#49y5g)=Ou-ue(sN@!w(1BkwDa6RB^)`Hx5h+^+!oltfYT|fZg&p?>7ut8mC^B+Qi z^vRyZC8{1dgX(a;bno>k?IPw}3PqI2NsQtOlo(xhIsyZB+q=DsI=fM$?PD!#60mJC z{dd(Il{Vzu$a?nLOj^?xNJTJNvbD@mZ%zcG2u*FqHr3LxE~#9(rx2BWO9RN8&oTCf z2u)>Z-T_Wr5Y7-b$Mt6um8U>-_@|v`!zlPn#yp}_nM5d>%N%e-qqNxRi98tF4Nf?D~@XkY+Xp*@}p-;fB zY@69~-WDTrbp>-wqEjRI)a7?ynufU7pAM3e1vAFJGw=1t zp)UI$p-+Yk2n0_N%L;~*g^<{(VZ(+wgKS?S?I;+A2rYfCQ#-hA5*j|d+iiAbDra3A zb34^$^OzuzU@uIWHm=8KnGw4nX6rfCSNOXezm7Ta?;-egrEz|<&RqkQ{hmV}?Qhh8 zE?$H}Z-qioyGYxKIg0`q)oGo?dv^gxt25lXd-)>|yW{lsny)Gd`hD+v-=@QdkKE7N z)0WL!Ww)FMGj0ZJQ?OA3xju)b3GQ+iHxU#A^T=>f*S-IYc+09pg&wjFPnie^Jvgo}>61c$ z(~4#G3K*LA^s6Dhn&$%mW6r?QI z{)HAtwvNK&e64brO^n4In!2cz18q!mTt^0^tnDMzs?q+bwu}-PzwCLiCn78eDJ>%{ zY_kPC(F@E5u&X0Vfwkk4Cr|m@gSqF#BstD?Y7$WSx+Ak*_?kA_E`BX#=^vFc5ghch z{EUYF=%V<1V7~IT%^tSzvUfb*3w|bwdSHy?NmTN=e$~J*SO$m|Ni%lQM zB9^sY-`gf6_Gat%*k~I9hatThov2VtL36Uo#VCXQN9m z-RXt2hnj3~Ae?0)LFYNCQ#g$rMsoQ=uGcTXJa8Rlrkt1r8KH+4uN0@S2@ac6j6=1= z&i>8Ze#HI=n(+!1a+1~{0!|kR`AuWsPTAi3+@9y8a@3&%hg_3JtfNcsCh7Cw7I4Zz zyr*eAxl|uCJR#DQ#tu(kGbJz_4kj=&s2aJXb*%izL7eI+3ooLP zyow}cWC{!feg@u>fRt0kqEC$7&qTqv(^;bshOnX3j1(U9g(h^WMpzg2rG}5reXWs~ z8A(kb2oyu-YVx+v8gzJ8ldm1dM2Y$H?_QM&|As&*plGmp2Kk_6J(8wejF1$l3L}wu z)j46kbl|{khmRcD&fd?wIO@RBYOeSL|J^b&>K`Aq-<%0YTQK1ZE;!#0!~b9HOw1Rp zkv<`g72S;2?b=1#&O1-?19PJPaR7rELhmeNz0U8OEgUvWR*Zy1zr_fS5BOO&V;8zs` zUO#c-zEdYpmaSX2$)qhT-)gjmbj!rQ``v$@E*$NmknJ+9$0BkZCNqW8x3l1msnz;& zu08X``krOO`*}{Tx%z6+em8B}Ondh1Q3;*e6l*y{k!S)E6kihqQlcahscB0{7Z+ZT zaUJYG_Ca_p8ocUGC{#uA<>K-@-x4-LM422Uoz$OGYi6$TcP6%lN<%=P<+Or$P2JR$ zGa2g;a9`XM{T0gaUobb;fMGv`=7sU0A7t18b3(|`}TwbR4A9QleIM>)c0C45xIyLX4jut5elX6Y;Q3qc0Y$@bN* zw01@pJcpqvaKYvT{yS$GV|oQWgOWg) z&T0-xf>MEe00?~pJp%JD9ny@hxi>mDP23TtAk@v)*HaDnRRuvGKYsijnuB$1lRbcf0{qWR{JH1$(Dv;YjQ@6sq(0bUV{Zza*@w3* zBz=VWFd77+hx<4krSv~5?LMO9*dm%&?~Kgtcu|@d0LqRxASJEb<>iV*{Q6Ge{=%YCH5Rntkc}u*5THJ_LRAlk3RGc`K1)GDi-kke zl7@2V8;a#~;qY$DSm7;>ImK3wGeXTCil&*+stKJWka=Q=DYI5QEAGb`0v+}}V&l_y z(|zGZM|8RyK@jWci8I7}Qstcni|>ux-tlbQ>wBuR>|?eUXEx^|Xv_NcoQOkG>yFoy zSB(bDD*w@A$L`{S7{ zbmyG(Z&kT7?EC`<_G@0~`P`*!!*u-6{t+sSf#;tE0%$|iCg z;wiHL6|j2^3BPNzQK2x1&S~$=EQp>Sa5fWAB^Rs?j+!sqg4qtNRdOO{Gwi=ZhKY;C zi~`k|by3EyM3@a=No38c)Y|fe;gyM#4MnbNgo_1q9od!gKFY~IBH2M7np`1g{?JMW zW9+WYV(o`udW0!2)rCHiQNhCkV$MC%{I;HIv*tv?deMS`-M+ zP+KuVWiTK43=~I$qDqr$;>iSL_wn9<=XEZ#=w~6>FNHy;=!IV1$rw<&J_~0w)J6lv zxykc3Wcq-9s$*WB39r^j!K!dA`5_L)A@&x|3C=T654=lWH`(JTzF_YmVRR*uogh5S zm4FKSt|rD&WMM6y zZ6jTA#g!8K%S7YIkt1~I;33t@CN(VqJt`rDYd`sB)jr7yBe^tc2MGU&oPZ*!fJ28< zXe({{ef#&Rr?w}5m@-VFtm@a)MVUZU!gMJ-OG~;v6WbSvw0p4xS}449d} zgCmm`2AKJqVl1Mi*)z@?g<7_G1=O3WI~h@jC-qP@nSK`7iWMKowOYxTjA!rat9$we z;ccri0YcR^uzfKY)3bY!{!;99Rx20&1d&{!4W&Y2i;4vMDdY}6J?HW?i&#zeZiQiNgpsgVt_L^!_f`e8l3q|3W<-%|UL&de)NuKfQ zeFWsK@7+CPEwWB#4@UJaj;ybm%8fO&DptIX8x@2vI1Ou%2`9u!od+^?h&jRYGa zyv%1w2!oTHq7)_364cYi0D2R`BmyJ}57>L4O4Tx9y=oZn2wlDo*>qeQwj}Ub^Wpzo zaKU!E@4ow5!kmb>^H$Q&dM{xWpKZi=8yRuZcMR2rkeV{7vjw(+E0Ox~+yHg)2p5}NLjBS$4WSJ;0h z!jI*LC6nfjQ?^Xlt`3Df5e;L|LCo;J_`3LWgF#>%`R}|}z>w0jyJ8w_tS4)V&0N6S zHwgj!`&`0X77by0;)%ycB;yK4B4FP`-+-V&$l!H57z8S5_DrxUhD_khxT6%b0jlnV z1Z~Uj1C#5bLXR>zIJhY64W}VgCPLA9xzFv9%B0w{cP$k@*Z#Xk1LOV?Pur~Xgdt=` z$Dd~?T$x;o?JQkG`~gwsd$A74nU2$-bB%JH0g?JR259xw6E?(oOVx@@AY`VnwieJf zY~>Psb81ciwr2#KUIz znHp`jCPo>>yYu%%Ekg<@Dr;)(znZx`1tZVe)0x|Z`JPEl9vj;YInOd5MAm%Sqc%&a z+y~pVrpyr@yZ)ToO3SMxWxuvW()@g=9hU2g-|q*-n9ae12k5-5=S4yeN^^`36T`yF zR%#_Emq+dUSc+I{pL@z*r(pY<7&wtLd&;VH5~OPWsJ6CXZo-Th!m?*;tSI@M;hmUa zNo-;|{4c!lqBznqIsi?gn?-05h)UEV*4)x8(Zhz-*g&Z|qs{e;@oLBgjy<3VMk1yZ z{bV5^7XXhyaKDk)LKMBi(2SZ86{6_-|%J{GO86I(f<~V{M7J3kzN6!ki-n z{g5=678-Br2~#i}tOp$60O{&F7SD3#_awT2dd>pj!_H0Qj&`u`&Mm3OV6np7c&)@t zv}U1WvzZG4S?deNl?9{X9_I>`cRr?kE@jS5z=R(`P3I|&bgXflQ(D=u2KjG&a@gF_ zx~^LizHtvq41(d8)L&jB#NmQ@N6qm-faF;zcH75k|GdJN(LNx0sIl$nl2uxgu%kkj z8=pL9G(Sm9I+m!Ni+rGsX3kfK6V``6{NdTDlc(<6HZmE}Fi0nRVf9U=nfA*Q_0D&` zGgIcK1rrR7ii>QELs#=XAW8i8a#|+$nN6J8naY_t(OF!pjqTmMfso1PxjlO%%!lU( z-l>R(gEkaWUy1M)8?M962|~@|0~`aw46TA2k_gPotce#aDMckG2w{Q2vkT>enjF0R ziN;VJBF>+KX%||W!MMhQsE|u5~}{d`~vMv*H$4@G+kq53?S;zI5DoQVYul4b79Fo@J`q(NNiuJ zI#X3RoA;PLU;C>KLk(h^7@_U+E)`!Wu7O3&r<+2^_7)WncUqVentYdRx1MUy_JZ4` zo3me?;ZikWgWA|s-#VuGLZc6Dj|g^mcsBR_;EV=Zy{w-JX6!_yu=2Wllt;k_%iTRP z40aw3kM>z|;!=$c@2d_(>q#q(vy58MLm%ZK^S(?=;+nAUq1rlr4LKz!&a@1!P}X#( zGz)u1?=d96*ReHSI9gT*k4s0x9)QDIhNyx5K$yeYgU$ir)NFO@zV=|iQxgx649tV> zDeQ@AN+68_^9%J=5r*{mBc;QYLoF0*50o%8-JHCOU7T z9<=cUHItP-)V@#`nVV2PGFaPFSJ4Xkh!j$0jzJU3R%Xk4BywTa|V{7W-xKSK6@Om3Qck6 zEa^NX4Yj=wNr)WiRKG}RLT65#bDw!{AO~@^upnjLqJGNvf>4y=A!^8875iO1q1m}@ z7#4D`C-g9go1KK_HWutb)x3*WGYixs#>(E*!E{Y{tSytw3=n(F|3(T(o43rseZSlH zFzaAmq4hWBE(#g|8Z!MH^jVdxLGqIW72&5K^BnF0O`0-tUoRUY1Wt@QBSJiOoWnJQ zdznKW1O*hDDYH%>=&`SI`Q?|tIvDW2efw@acKld3n{U?mwlZr%U38Y!?sV@P@3n*i zkn+;M#DwvaC!4*7yF_eqx780^OXT&VU<~CfIi_m18+@4_ezw{#&%u>fUS)ygb9#R7 zUV$SSu19tv4H+0DrCpPVgP{17MnaBPtIcNi7qA~)vio?Pa4G3U(>*wBB{Fg`fnaHP zJv~#L3#;n8_`PM&X%NnwgBW8@rU$x|nBP3K;?FInxzSRw2E0T~`=B;!Um79^4H$iD z<(%0{`Ac9+gFrdX_qpeu6+5sOx9Rh zv}F%uJ$|Z<_f`@SLY)X*7ViuAAN#jUnb>r0I;#n7^>t@u>HGpVMr)k!5{+vF4&5v< zm+2bSy4#Iij2`2@DPu%GK3ApqUL**rwT(&Fu~W0B0)1!&2ci(>Q1uLZnm=UPqlz3O zaEKPLNCBG*iL~iDFP@^~sgXy2{9|~v!~u^C^7Wj=Uuv#Wl8|LCic4SYfqKg=x7b}Z zcyD~-JTrb)dg-No4OeU=L`uXvwIp9rmS|7gPRDp53DVg!UyPNjATeyk8p^?g2b}=m zV5rTmgq^E&OWw(F$bq{(ps^ggC?24uS=IDE^r6}wv=@cLq$&-n_oVkaH8Lql6k=Y) z8LrL0%lK=hR`0|wVKWZqyLyiDmze3AroT=$ORbQwE5T+w)m(7zlvpv$*urWUb!{{} zNZOeYKl$X7bj9UYMxI(5OlF#%@E-)RkP{d%h`Gh3idScew1yZL@(%-&1I!J=5Bn+@ ztE|JI@TxL_Na}&m9%W4W8A5+tW2`YhU72QM1ANWQCJNO<1B2$5;l?gGa3Q=T*WgWy zucnS!>(Q#_ne`B62J-jC`9N5ahr}SF0CBXYiE1wC;&xx45(;|;L-%6uLnO69RWWc? z%xO4P>DdtIni+weBZZ_pw-GBNMfEN1gG1t`!Xc&oXIt8ZGb0*)jjmT|gqto^Es8K8 z^gp4UVC;30XCMhSLCb5bAx)BU*ihZPWsXre#X)Zhg?3$iErF2W#KUO~@1pq*dKYlO zpxZNJXS~x?lq38salo$%4fxoxWB0J*!r{?ImLUsi*fitk*IaWA?b>xcrM=ZKU0OlL zxt}9Pk5F{h68pB5rjIP?<;|_%ElZzEY_*hp_Cl*ZO9sq+vs1_R?c3!bvqt&cbI*D5 zehu|d@60-=$GB@kH8CxC5V969LY_T`3eCbpSqVXr)P$O?XY6W0?oG<$;AgKF%RO6? zU{bVbx*iP62vr8DjKoP*l(;X?9hxt5$!l3%P{9nYzPCDo#$3m9AT&@~0dh#X-7}G- z0b^3e9M@&&(_=zA&BjAhBq1?Eg&R#c89#gB#TV(~OD?8u+qTik6DPet>`I^vuxWug zFoDNsxe|{M=Y=Nr7}iz86XGRwEwmX;ZbR|Bq&2|SCLv44P{52NE|<4fU#tdgl@J*u z-vG0NXE$OzeQgE{*D3+!FVbna1p0u@+7$vkUFb`;8a7L47 zP!~Q9HI?!d&Aj?p0RJM~B^OJO_bSyHmaN+_wD7KtWg!)`Y%k-dp&?)_EGXoVE)kTf z?(4pXz%>v1yoBVCoYw}4C>bFrjolV~Ps5SGgdH-bu0a5FPx4^3j|}&B)HRwc)>{(o zmB@hAGJW!AVa-(w4&h1mh!qYA=BoQy=v|kc7On3=W5`8dv^9gEEdBM74;tn%Mn~AQ zANF_=hSaX-8WaLp91_8{EZ z&MU;s4uls3aAuv}&5B^VGsF;19wjBH_qTM06R_feg9oHALsWHX->as3@R@zTA zLt;+QO7c9fQ6#}XsIfP)B<&iwYrGM67%}5e>yl=dU`b@`k$Z-k7`EO6^kCL?l%cr; z`}flY=bumKjqB|41g8~#m>BW%aE;h9Po>O0L#ppQ)U<99tJ}E-O1Kuh)qX^ByR3N(?V!F8@ z`%82ZfK~^zK*Np8a_s2!h z_wIe6y^j9<+D42xOP?F@)nb~ODfMS;Tmx8$NjDSQ?~5_N_~N@8#}Zib*G6lK$<25t%>kz@LXV3L!$#Cvkf zW!7rVP&Or|+7cxHd_Zcw8UjGla{bzA{}Y0R#tbl878D@FM6wBZ4fA)Lx$MA!gLK7Z zmp9Da>j?LQtTSs^VxK~~OD4{iRG<-rO4yQBi&ZaM%w%{7o7U244q}HHP58*(&y6NZ zp}AydC1{mMg$brUb&c8R#=@%v$ztUH7e*OI`LElG(Z2FcV?Y+vy&GuglM5kcDI zOtGnbO~K$j^<_=rPeYWIl(nvHs1_K&U>TJb=75%k2MDH3pEiC70D1f<7{I6(7mq>s zlsGd|@sKQega|iqm}~ba7?IPdw3bB5%0z@W1&^_}&4i|2&lV;z(- z&Yqp$m!JVsyN<}v6-gu_l%ys^MCNc9mXMZJdjp!vRNI6jnGnjZMWj5|zmN%+;f)MC z?zH87JQb=tb2#G>%@g!qW0Trk76JM*+>0^8RK!i7Yzr&n;u#+A+eI=J2poW4#W^ll zge%4E=1MD<9pe0V2-|hpaV?l&iz2M*C-)C}-0X|oQ&EJ?L*M}WTmQ%imYH!zK42ce zv%J8J2^8>kz+S6W=SmX5blQh_oDVP$fQIqf&NU_Fpk@z1(byk@2{z;3oQhHg!HGCt z@eKILkt5fQ6S4JFigkll#LdVr-Fn-two!u^3WMrnS$;qW^;R30Bno=27y9ZQ$D!k~54|x`v&syPVnd#<5 ztOehdmM}GpJ+o?}tQFM6)JxJR_${(0G{yycVh9SM2{2*6y)TX?kt?sf($O8cgYBv_ zgEVdaB~P+xYZ#(1Sb^7uk)RksTCB(H*?M=HThR$Sm6C*=4AF-DQl3kLGe*%4P<3ZW z^OxS+8CQYOoa}-FV)=FbT+ko4fuY*O@j|;qIG2>7 z>vXQ6@!{RG4L0VPopu&dxoQ+`Jb!nsYIcydrIxv6vw;+1m~~6qUpQceDF+(#Y^FW~ zYSUa-L8?UROa8uyV6~V?`XS7A6JdI~PxE^&D-Ug-ja@qnDfU0mlF|k0=JxmG+?fl4 z;QQ8BfW(8pWt=TTM(%NcJ~Q08IV{@7nu{z<~qG)GYQ;q{Kx) zFp;FZ_i}fL|D}?0?RKHjfpJ$02|}s3&?dUDvDm?O=sGcDA!N1=e2|#19y_KfDUo@| z-+Ll)=fn<$rc!vJcD;kSEor|LTcm)1g8@@@ghhu?mo(R!7&-P}hRmD+*Xj-)Q%IX& zhLZU(TfEsF$poR7MnUTJyq|4*0}j&!9El)w#Y_)MY+0jSw-SV~A-V%qvPG`p+6leJk%EHcx15N({gR7Iz_4OaFP(3%Cg z=0Y}CWC90Z+pM8tt{Y~|On{kV8T|bPqV7U?l#nCtXQuuUeFu~Q*CYohv(rjUwPjcW z)2A*pGkEM~C=*U<&eS)}8pt#=7rAGq5evxH1lS$Ifn*xE>-y{M z^Onh?)uo>G6Se^#J#v)J*viUI&Z2EBJ-+!(Z=yH8@m}fp)?06-%PzZ2V2$NR)ut!( z!;F?aiJAHGrhESRz0D?qMmx76)6Og^*!lQbu?bt)Gd#?|lKcbu1+*lJ7seBIJ0@~~ zAi?OXN$O0Pq|e?qw|Pf0@~~sag^?7*-ZXn6W6I!oQJop$Y(<3=%n=w~u})$i1jBCj z20V*v^qsG5R-%Sh?2MIy*g+}}@83;+pFS7Fv9tFvh}pGh8j*|_B$X;dn8qAVZfz+^T)o4Q|J6AVqxE6-Nv}w8Iq8YVZ6W3ftQlI;{?cJn}db zG7qMWi{>Oyy`ny|Zq_hHu0iJ^Uv@9ApV-!AjH!}U7bpV8CUL!8glc6i4xa7Y-nIKheN1rV_S9Zzi zQ0AvZMmAYD3KU0gqNZQK^wriT@1I7{Mh*cAC|mj&5)xr`&jJ6tpgRnn{D$wDi;W%h zaV8KnmsEYl=Yk$5xr{{Yb<99;VBm0~ldltW^G!F3H?ZABL13rEH~-Xj^ym>wrFZ&P z(tppsVdL9hB{ng`9)Ir7z1y$jgL>CpccqQJ`dL|`W!o=@tf;+Wjdt&Tf;Mm2+%RA& z6KOSR7}%h+LW>ZBKC~JJq{?FN681pT(l_@QQDciJ{e!p_wxC z%ATaY2TS!nIw%p^8kdUtYD_lm~fAe2ZGHoEgV43JmMTw z_wdiKXK4Cl!cFx#1LDC=$~(e_Yc@<~h?3@zD;xC-*Y@Q8j(kjB+ZN7`wJyWXWioaf zYnR#zH0MUoT6v0kxm=`G<2_O>-@p@NDMgK67?Jj19?JOts+MBO~BA zVD>wDMQgx+`)~j43r?Oqb%dIxNby@wbD}L_Vw~vti5N(yR zTkG_bvuSBFCMlG=y7SJvBz`xyYp=c5^{$Oa5{)(HZKL3!QYEJ`d|sGYhHx6E7}Ja( zc~dtzC@IDigMdZ^n~qTpGF%=tWHC3o&P_aSJq;XOR|!@S z253TP;-?ZQXtHr%5YOuUMA47Xkb|hzW)3q0Ru~!wd7Lxw9${bsr7FScoNyjHc3kFR z$BrG6SOsf?*W@v-_v#Y?CpIuq{v2Ad6eYLy>rE>YM-+sql?WdJLDSNA)ohKejS$Qb zsYXM~3mCPd2vr%9*RTA5cHAUhiG7AKHAsyhDB%#8y|Z2TNb4c<-vv@oXVvE)@6dZK z=B^P$TvMcoTV?Gi@3jn@BCH57rex8oUh{nBYDu-3W6XzmQun<(>UnuS z+o>|nzPh$IU(0stVj6w)J7tVhCM?fQ=Ozn5nIVSY7>vsM!!_pZ4sAaRiKU^1W=brj zF-ySlY*-A6h}dU(Uwi%`;CNZal>CRY|M5Hnz2Pt|P0XT*4hxw;5+LA$=0Q;yP3>7o zsho;()PiLIuV@B5N~M>N|1LUl;*@D?pmnawJ%ToGK0o-4g}QNXa`{Y@$49br>C4e$PXj|?lz*IY;s!QBlan-@6f*y zHKcmP{@}5&UjjSWJ^jox9wR!d>NO58SY-ry4->k8^1&e1!K7HtUpV?v5OB@H+{ra%Qu@vrxTR0!w3?Kh zu|RO$`HxD<45oA-kPW%i#81y>lf7=p44IF{ z275N|`^-dT4eDyD^*rq*)P71@FqPK!YJWEjgo1EO zOf)C$Co307EhH+Y6THA+d!v%)sD@UI*mgN5Nx%X$-6i`YpEKB|u{ONCumfiqi~V(k zfe-pjtp(jX8$HP_0MqBi&Q8P3nKp2;Y7>65}na zHDVw-FbTnfd8wuQlqL?7=YTPGeg>z{!=9cp`&exiE<_8iC6dw%YAQh`Bo{XMyS_G> zv)FbmW0*W+7LKPt8)lM2zYV{HkSb#y7Tu@;ccTrsN{AS}f*Z#Gk1stte&TrJr3MI! z+vQhWA)d5@+2e@XMMF#U+<)?7J^j?vUPPUYkRpg1&|bSSH||r3@G?UNfyRGtzUgL9 z%|}TiWN&7+W#_OcF!^S)+7}mGpb$3C&He-XC3Rs*7~Ih%F9Z{P_X+62bdnkITc&>fgJBQr12Wjikq z4Gs2R@t(FlInz$rd)b*U1yrn`RW~_c{lVCrfe91s9PVTy4kwh8{mF!ARDTAQaEQ!N zVFHsT7#=n}-eYw_yaTqZOPZK6n~nlyfPKC;Kn0j{F!ZoPdJO3h*_p)moCOcdr%g4D zg;F9Jc+7&~o6{MXaGviRn@ggNhalpBQeF7pVi#|0#kzkySqYKP6=F~&M%4y8TeE6d z7G9>>TFQ@Hwco|5^(9)A$DZe!md;MB4+M3;mkQOTvk`xXwr)%;^;MGa1Nwu0vp<46 zSM_~V;HtI{OWfymvrCt>Tg$-amAXQ3%h~^2@S#)`qD1lz-dCH~)Tc&-WBy+eclyC> z!1WdFgf%k8Yq$V1Cl%KTAaaUq8~4sT?jU>|KZ8itI_tW+S+$Xu zTZS~O$E?{IGkoo9Uu)k5L*d5nxPAK$iceQRQ;K_6;-#jGVuF zVebpHV?;PMnHHnkTJkhEWCdEP&Us`!%RfPsz+jv)LCUvUvtX)V^uoySKE?W?>OKe6 z&*5ZVh^&HBBuU`!yzXrl2-81q*k@gKh{*!12~TkB0n>#|*fm~?P$l2@u9eyjFoxco ziyB&CW+GJJJ!|mjTku{0u{Q+un9prrL~K0v*I)vxzP5}I%dKjZVG$BxmV!-vUFCR8B17LGu^ z38qr|Xwkx^C`sp8egPmZecsIL6BRwZj&%14qbs(?GO)z zBuzGNAQTM*m4$^$?g^}tE(I~FRt<%TNL~2m2SWgq11a8_9F^wK=6PfY`ofDYYCI4t z?0w!(ajlv1bi`6oT$!gT7+PrEc2yF7z`QeKR`=3i!g<9T;$thDnX`s{osjRfG~~Qx zHt3aqFGNdn*7!H)%4P_fi7N{!v!bxShf~;Xivi`>s>O}!8Zt!caI!gJiB{Ql$(vjE zd}q~RxOJupBQG>3^v`fH1RR;OqGj7UgVqslrrm~<6Uq>>u*jOO9govzzF`lY3<-X4JPq>n3FK`lygx~7Y;tsx33 z_}!)W9#K<+3Zh&)ozErE3;t{&g-k-2M$(o@=j&UG`w~*~N@l=i+}O9WQ_^5whLu9Q zvXzVM=GOU%&RF4YG-lfy<_;x$fCA;Oq++SNqlYaCLU zk|Ex|B-qC#ThST}n$AQPh09GU2gG;e*b%em%#AsMSP})JjBHvZxMo_=;`hciSwg4g zI=-#*^(#gQDgF+TC?>rUMS=1RJ4e4d@3V#gu=IW2d0Q!p)aw8=;z;{ph?va}uqpDh zxboMI5e>;zgp@c(2v%;oo;qfU78{B~;5j$AUrR&*xvC>oXCWD!b#8z+I)yDz!@Y(^ zds61v<=Jk&$6n#af&@%D%;fNSjb_Fp9hwP9p7pkVHR z;ESR*@-CcdjAo&wr}2vqL#bKjqp9|+zsFofMJ!9%%8+Q)HFO6m>y3qywPdS=P#`d~ z`N_d~3{ba51wxn&XEvO#QdTj%YV$-Xov*D!iG&$0Bq!&lmL8QxLzVvxwPCUdQOnuS z^1D@+daDV^sY25XLQhGN0;ZLhK-WC{jY2T=_26gnUYqNBAl>TRd|agbWj`1%S@ZSu z{!+a4%#yV5d0-D{wgC^Xe|onc0ZrHw!koI6jiYq$Slhf?lQ#P$Z-&JpMJWd5vqts~QqFKto#9IFk`GUk+nJ zmYze04!W&(ni(cP<0;|PcZdou&?F&UHnuinP>}XPe6rmL8V`SW%2LB+ z4LG#P&^`*~1J?fCO%gxEy0m}mt;-N{)`b1D$v=l4yP0_y2gEAhb)9FmV#ylMfG2d# z=#7t#9KF#sQ3B3Cj~qTC`;G16SicPYLbC*cfYTiMLUI8x^yywzgdu5c1#5@6xk0KuA`zsKZuE|U^7-PZpLyGkUqwG_m z13_;R>VtdWR0RhzC*~O{USEWe;wuz_DOOJH$fnhm&QogY8G*(X8lh);>#M{5*+Hx% z&6q!D0e$n9%`QYU@`3jiM#A>v8kwL5W4N{AbS3nTTBhWJc1>YML&U{8uT4Ta_EjUe z+urs2C^XTQY?Vgv3-ofb7fWd3nVw*rVitpZeSoHs7O#R9FFl-5EKm9D<}YT2l|z_nq%X`d`LtUuSz zg)L#}n)F|8*bJ*2vjAaIf@%s57Ran=?N?oSC7rHm)|GZdtF&!)z!HzX@xY&2KPj3o zJV5oPxDQ0zJv@h@afnfm+L<#1fsze|bV*o}KUldsgMN^h0~w6aX6ayLI4f`PLM5Qk zqUG0AV(&40TXQR{UDt=~RLGLpDpT)89Zjj51v@u$k#RdPmu^5h9ZEb#Mtp11tYeG`L=I?McT%{*%x$2h8%pS$>4 zVm&~}H_bLR8XaOVfhGcPYY%iFhtD;{y$i=V^dmu1DQ7eU8BNSENRbigcP%BX;oZwxRo6HB zy%@?M!bB}zGyn)&PQ?mE1Mh&n1mSDwgP~vzFuu;;PrsL{SrcJ8k84U({=e?NY}u0Q zxGs0qxs4vsBqol69JYg@2upsD9<3MYU*sR*A6f5ulBEba!j?_h<{*mT08$vb8vuz$ zPxn-9R}L$4?KV^5w1TVj9*! z&e3k)CWGuFeUR>B3I7U9tkKpSq{eHI_MVTQrMn_cl&}9O!cEI*v4n=)r`>50_AXx| z;rjNcPFVVSV;S%U^S{0g*gch0N zYAmp-p)=!>ctHaF&xk}j%|)#!E}i8%RDwM-elg?AvFkpT>kb7>v5vV?QX&r}yb(HW zjAdyj`v6HSuokC@3nmmoDFQkV`>M1e+j)nUD$_il#vP$^I#xikS%bK@6ktTk#)>ec z%gf7AV3U@$fiX_lKb5$lN#9BNZc9{0pJ3LjtD3pKF={+(UH2)fP*suoW&%6L7a7b< zNYSvTwL)yXn1-vaF;;$0WZSB>HVUdtr%pqGAY}M8+JL+KCFj)?959e)fu_ z=rw;*<6?6F`*_qz#vPzF@ZX!MmvjHD<#T|1(rL$SZvWS@I>5s}X{kpESa{}KkqGGt zZGxZ+KfceUZP>8i_+kvd{q2))Z)0=uRBf6p*@ZN#1O3L=-%O;6*OPXZ_c|i|^pj6c zerY0CUn?3UBV`(h50&3AlwpCWyL6w~4@VcWo zO+IlE;YV;Lf?2~olc!{+P-|md_H`_*z>EtF9Mx)8sxkv6i}0#h#xNhqIesrfPOt~h zQ>e;y4BTl6eM}}1S`>tcrBFGSZBiYUR-~d-ApneWLET?RRX9I0HHBjoSKPsb<33#Q z9?!Id(9+^q+*|L8Vk*!YEKBA5<}o``d_Oc0b~%kTHeZC(5{nqy{reKmiZKtu5jo@G zJTPh&toDq3crV2)@tLp3j627QOn9uJXsq2389d*!f3yyDOf;be=Fgbyanu;$KBx_> zG2NK^q+7@r8|}t2;AMIC?{$7uPY;H~HV5_oEstRlW`NvEy*7TY*VDr1<8dR2e_6|H zHE>Sp)elJX9FCwJc=z3R-Ddle>t=SL&dg;0P~9ARlsGEUeDcMUluB)L2Vq4;oc(5C zcl(LdU&Unt`583_<6gbYnSjYVGjWZ;h0jlSm8Hf@id6iqi}x@cv{W~Oh-=)lR;5C+ zl@@(*FX%>N!-EhEcR;R%${R7&wm(M(5SpsS6NXC&5lk0j)r1IHBM)J}d5-G>gfsP# z@PXOmdRfrG@1w*{i-f%S=9}RxRD{jFUVZ%FV4}8Lq({_qp{c2{^ZtN{ACF_j8Adm3 zYSClO?n`zu_mmFC(>#tDGXS-)saD$@<4bmRDF?y9KOzP;3FP)ETja)cehEeN(R6NHHX1U;MKoU=YSHzW8Er zJn=;tj!!{w;Gqdnp*)eDCd#|juirzEFvk&DBgb#*nv;F_BBkX13!GSbz8@r4-i*PN zHPOl&Uw@+rwKxNHlv*2eY%Q6usfcLMig^YC7D)mG^)=cwmEAbk44vR()soj^j9cTm z31Zty4O_XCk%;6V)I~xVTpgyTWT5k*2>9OJ*URg*Rjz5BkA?Cyv%Q|zqhHbmDG(?j z=99@&8md~2i4ok~QZ}+gBTA@4)oRE0@CBG!qF69(4f)92&B6TA*=m~0c8uX~BjLld z9F-X_<&cClk?_K1<_!lYS2rt@3hhp4HVnD;U80W3Rl`Fn&Q_{sD_0ofc8pkEpiu=1 zmeDOzM6w6;er@RgEmN5Fah58s(JSjzlR(d6!hYb9HoWI)`$IkC8>0oB1if|7%*U0_56$r8>M@G^Brt}f^< zHbTaXLQNgt&*42>LQ3`X>60fGAB{Y$sfq@ZZH3HnO`xfiz~j*h%|h5{Lx1*vBE?Kk zjuG^O(1XN1aQ(baIO4_k2g=iHd1piDkWK_PD5^088#i{MX%>p4WzU@H2Kt0rKZa#r zZ~o!!tb~Mv9>Y! zMvOex3_R?i!o@oE^-d-B;(6E+P=%oxvCct1IC;lJdjkDOJZP#Wn`A;72uomA&^9FF zk8vwsfL4xGF=t1MjqX7o*0cpn&RM13thsf&IzTR$3`_yImk$UQ_g-{Op=@Z41hjG8 zK;ncd8f~!Y=bEIjB+?e-o&+KmGT%(h>_-PNB=$kF82nAGG!MA9+4+xSwX}MAc3o6NYTB_Audub#oE$ix8g$%PB7~*vG+H^G*NESPXEu> z9Wv%Gf3q>*sh#%()HX_h=cT^ks&S0QI#y~+6SYlbQt4Px-mBUY)o8dM`#$PtMgMp2 z-Z4V+*=JrWxoWHTB&N2{)?zZ~IWJPK->VG{KP^&HVgM~UJ~107V91j@=zLaf4@h*b+|ssRB7}?)Ryu#_Z)-WTl~;Gg_)4uj@6(ZT zq{kXlVLZ)L@spZukZ=1CnV8%;(#LcHqX~6AoRs#+n)e%2^8r`#HFem6T zO$WB{q&H21kl-2XBklH+3~S2O-qwl!&O7hi+ zgluBPDDbR!HV{vwxkGjrW<<;+flzbPt|jIGLCuk-a9MYWKBN!hw5(&gzhuJQiPnS~ zwtPTdLkMl6r#qq&$M?Pyp3v9$gx`zc$~dn1|DL~<^jq&;is!pvZ2TWo(AtiXdN8k1 z7xVLaWKbdkt%9f8##PG!uY1_BOg*-&=^f2p`Dy=}D+MIlN}3Cx-(td&b}*=44XG)? zZ&Rx4)C(9Dk~%RJ5GnIQKDx)QX+z+YB{HJsAcpG1*P~vvopx_Ig}~abvV9v94fupAV$rk)Hd3nF?r_ zBd+qq)h{&z7kitx5L9xnUV2{+f#%V#T4QDVhUB@DC$G)XdNnQK=Kb#3|6K38&BC>` z!Kfj);5zn78bY?0W8Y%@;d$IhBf+`3(J$V#tTI;{JA}v{dn&b)%;2S^M#r+UwMZu$ z{uH@yx}?bi=LO2K#du@u0e}Dd-@iD%xO{t_DG5iY5wM6<1?>!(80}8_u2#ekZ$A3) zgYmE(u^pRJa2xe27%wC-WLVjsud3bUl0A@E+GLlC^@gYMpdt-~YS*61 z3CE9jvlg;b={!QE3Z`arwb{gOwOe@%3o}j_B^mOd?o%c@Rn210x>fdQAq0ne0o`&e zZtXEDuh}XdeYiLEZJyz$Q0orot+`j##vJ$Ptqc$%rh=XenM3$ONTluCh$axJ;m}N2Dja{~8{cR*RRw)}lUU!edZO%L1E#RGdw1{E zmqcQP8M2&bV47<0pFjAZnC|Y_bLbY*>$wJ^fY5{!X>q%p+HA9`$4i=}p5q5T)9&AY zJ&0L^BZNd=c9oV4%%r$=3`6lgi=+cka5!v&5yARB*#l7zo=6+uYSv?JXeNf$M|K=T;x$Fq|#J!&qT!4zZd(gxwH$GtF? zBpW0%MLX^aqcd@WT}-6%YD-Ak>RhMD$_2MiByGgv1O;|Y5VR>Bx+Y^fXr}3yojBnh z9K*f_lf}F-V@IEXjFmuLULKQ)m~&Ti2FI$!WXx=5&9$g%@QZXTnhvh{fcLMX(d};{ zPh%kWxzcfh(W0+jraE{#`*l100OiF#T#JHKZN(Tn+;?@w#hV>DvOBpuj!|e%&VV(3;tY!Ir~O5 zTI22H9H$qp1SprlPOi`BILCC*VEJcMdE)-SR-bcysJ!Jh58hyELB8ifg};`=tlrC* z>{QwnUgs^$4M;u%y5q*gDW1TRaoo&A92?=eyA948B5j!XBwohQ?hf=6sASJf$L8NF zVqB1YXLmTOUC@{z@86e%S6OdbE=6L-!66J@l}+sH6;EcE+cM7rhz5~d@h!PW&v+$0Em!Bb}#C1vZT zfu~`d>b)>+fMaWn^)QS*IwyOqdfrYuo?qb$gV@&F$(U!qfu2v+9^ON;C%aq<93_9% zb%>yaN4fKhw(Wx_cAq<&tv?-t<|&hiM08gm10tN=9gpA;2O&ey%sc<2L z+Ie&NGc+lICp86ds#*JRexXC8^&I1cEm;G_wzDt=Ar{&OB+6*5Q6dP$6Z_<82$9*;W!u##ZjJVwkC&Ei)Rqo@ee`Z_k=C;J zawHs4I54qaVQG52f2|9c-!1}H&yJtO$2r(uuu$e_YI-mp|)Lp z&r;hjtkdg%q#3ZL>ExWA=j`3^&q#HBzkxM5#ywLT4vR4UtjNO4TA(~ls&O^?^+oIG z--)pigV3W+v)A5>e6zF36`0^+K~HNylDfR4Ta6{j z+K+>U`?Mj=VKTbaGa9iV2&bDR(tYB-QyUAf*SfA)=S(v>xgZU%Ye9TzkGiw!{1Z$& z)zQ&E-J?LKE|5fps90}@xeCd1mL?=~fn6Qf-J2eG!rb=XA{KmSVrmukmO{6ba8Q0D zw6@J;G72ht`e^5@BQs1Ps1aQuEt-dq!CVz%Ir+Vp(3oJ%CaI7ji#v}sq1P}+tF*T- zgAG;bN?8lB|m45uhaLP&JF}xkhRwhWVp&^I33z z8Nc5PEA)Hs`(q^;nGDREvpm76rJe;xt$iF%w%0r1y_EZ3|5_ke_d4HKB(m4AHzF}d zrs7l75Xn@O=zGra3ISVpjz>1`(`oSzL&;Q{ExlP=%dt>Q>hYTbLY6D)4@%!SLU#W z-B;V8c_yq|wyc>omIW5mB|pZ#m54s zvZP79#wD1y3o1S53Z{vAqS8e0v$SB`s`&&mF3`~P{?KwLef7Oqb*80zx|hxTtJkxe z-be(z4bIm$Tj+GFU1X>bBQR47ympJvICG7we(Uny&woxh!-cCgnp2R z4<6W!U2Rk-PS1b+-s|$JrV`l~Po6S3JJ+N1jMcGGlw<|Iw|_5=FFd87A{udGA@eBR zTYqIIV2B6v z)Q>Hn02ry`$Jj>a=V<&+gc;>t-6b_jXVwv^p<8v;AEQ#%2|4W`OIQft;)N|DzpO-l z+wKl{Ekkr1;XdEySCh^-Qym?VFbCe9dIs3#EQ)~Qw?WA4yeM>#sHGPX<~^50QQQV> z%+A!ThjakK6yUl>e3u^gRN^{Uom{E?RO-vs?vMFRroKu##H=*;uC~3b%uo?7Wa(QY zpY+;C;tOVvutuMkV#;YxY{dxhx6l2a%OkwfEkQ>shJ@FN5GKaf<_B}9!V#(Gkrot; zN1J(AZ?;j(wH<{xfRbByr|Z3|m_QE!yK;ClY8|z9p^@ml($WqaW%rTj9rmLSMZ5Ai zM#?MseqaqR;bmW@AjvVXOlrASB%JdW;aLCFz{I^;tSk5qO?+JR!PWRxtN{Wg*4mz4 z+5vbrhsl04Kw~s4C5s#Dgtal1H|&8gq?lPR*r3dJp60J~Z5`}S&g6jZSMcGNv*+=^ zU;Xlzu@O3*?Tbb22Cr(Dm(Pcq!&lwh(XTI(r%#_`xb1FDRlihZ2Bxj0E;~82z=6tzdq$zyax~Y1@FC1` zC7(#f9w^yVc~eUjE*KjSkEsTGs0L@Zaq1rkBGjsIOoC%#uD5j^QEV`hM9nnaneA=i zHP}uFyL5M)vlNlRxSU~-fEIIWW4!ocEW3T=$?nKo5Ck8HpW?64XZ8wC)pIZtIBard zB%o)^y{!>T=&=rQ+WLc;9SEtWP{6`(Fm!vgRZ=6+WZdV&P9X+fK%o!*A$viDoux*> z8~60a{wC>sC1q*=>Sc|Ke#H?7xr(g{@A>D$>*|3vFevb7ZsTYF@ad+cOom{12{OZls$Jn&HpR%xe zd&w1^Z1!I;@RGgusLrJ~4enQ`gwH?!Jkbp#_1ZKQ>R`lA3Bxjma~#~Wggdk_WZfL_0~l>#)%9lBpGp_wJtA1wgFEDbQ`;; zS4vJlvJdArV!oZmgFj0>HT7+(`$zv00rz!KclAz!MQ9&jlY-U&i1^vFr*h}^ot^E^ zB@)aH)UlJ)*g{!c?R+*@rH5{6mq6HsxCNWwS?$ zQfkn7bRNs_taT;EqJI>&V*IeQ987cIv8#L3LSn*!N>$%L<|?SLiO0T+7;7&qPYgAL zN1fFcQ5hf~d&Y?VV+{+f9aJr1^>iY69oF6|mRCxpj%#IK#lyK=jXg4G^tnlm>j~5E zZqs(ZmgxjRC;f^2mphZMMXGNg?zF|naiC{l%IvdX>i?+^$y)TXn+3STUCQL%cR&&5>qX(CR6uo1|agUzw zK|DJ>cOL}6QKj$wC#RD&;!trKTCI^+oF>lBUXAF*rGl*37 zrIj-Zs|zRcLN=b**Nib9)YM6ES~$Q|9$gOifK3wd+;BYWwpJ-cWAl`MHWe$7;hN*C zz6_Uv==69vY7HqWTM>H@O#CJB$GT0iz1A+CpAnE=c8b)PV5Y7@o`&>?80QR05?2EQ zL1W&L5)p{9Ckj3ahrHl9-Mg0jxVD z`>)>LO(@t1%W>iQz++=I$;tWg`ed{JvMuNQy_~S$)?C=z#?>-}*f6kH8_`XV;!1d7 z9;B3H9@0N!Y#;$;jOMIhNeGNXj|;L_#T-b*`!Oj;9#{Qfb0jn9o270$=$eO~X zp02e}HtZC@LrbEXlLqNHR5&e#YT8}B7#+XIZ*eM_vrfUrF#dwQBg3`$eym~ewH|^+ zR*@=TzziG09R5Kgw5NaYpms0vl@f9EboxupUtHTWvk{XIVZ?y}=%o`nMZkuZm~thUUX#1q74-a=5uy8V#wjynQ^^4b*aa!BBkd>(AUdU|0%-) z5oh6HKszy1uDu8$ZI0U1@u+ZwfpeFk={Am2&2JxsE?k!xwTTBL~+QuspCUb_}TNPAG~Wc_dGM>|En zHI6->ljmZX!#3J|o$rq-;*^&l2u>8|+ z#&YGZ=jX=zLieG4ZB-63B!uKV+i^Ej1>KkBO;o(_FJcm71*l4HoM(Dpg8!x(BNyk6{|-d%iW_AN@l{MX(7!LJ3tNC1R^l;`QaN)&Rm8bamt%P| zb5MRFhEQSVG1O5wDhv({LK1B9ua@sidqL<`f*A;pQxTwbDV5+jJpE)WO*-cB#*xE% zpjVRAfj&DnRpI9RW3-*E}tRBx?hMu&wiwj1${uF{rsiN0>UWs*q6r){g z4-P^~DltYTG=iU6A54R@?U*tPrI@E40w()Gq);TZOV@SKI&gKUg>pfdhHjeEXTUUj zhZs|sJW@S9s@UO~4xVC8ewUXS13ynw?qh%tfSTCn%^&jyhaqh$f;X~`?urE@0Uspo zWT&M0s^&*Mc<``F_x0{q)n9{MrTrtT}>pGixnf5E0wpqIOkh z;!x{!sjv(~FSLo)Sd>7i>d<4z7R(U#t#xE>AZDy0GD%jdrfe?wsRSvu^(YcwQ9vLh zWKMaR>NChLdnBI!D>Qh^}DL? z;8?$xzn;SXNU~K)`+cnyn6`4v* zl0@mOQcWZ!mE>X~B)crT(vd;%z4B8rptQFJlThs!V%VXj$UdeY#%gEI5r>cdya=_k zA-~ye(JaVAEe$55$6d4wKW6bUJ7htWpaU*#dA;a9GDX$|0SU{n{{7jTh>WV@avWr| zJA@FCz@1K0A*ew;44PEcvqg$g*y+i;`ldx#i;qJmrqbe@ za;9MgLc(6g*HzePgvj>uP@Y}Hk_Yo@jlx37${I{^#!&xVW z3{1z>uU@0r)(M_F1-?RwDX1B<@Z86WjuVwh5pCFfQTrBaaBgitF<{o26hoi87h)DT z;?VtB-N}sE#`Dr0#-QnuI9FeEujz4~iE7ScOvSq_DZFys;=M`~S*-M{7m-}Ut`jzK z*HQpQJ9B!`UszVNM8GtjP-~}(J)D@}O`h70*ms#K6rbhPc3TVE7q?G23u}F(o4oCJ zOxgrap!L{`TrdM#5vEt{iHvK(@h#~@E1NKDGT?1rnaxgp03cZ6HMK0Q(7y^&*q>S{ zYmL~)iL!_JhIay@S|||?B*GU}lsta9Zqor9q(Qlw-|cy=^Pf7`iDMfM zKIOlKzMedNDlcm)eLZ~m@XFtDT~q4?A@D>T&yyh~QiQagajW5c1@&(5pB!W2N!Tzz zzTP+TK91N?Ys^c~1HEUmo+;d?WnGQ(=pjHL~ z&=RF;nMwu{Lf32vb!0@apDk3XF01coY;M#(E|sE;d6S`b#{Al&yWMJoyPhOn5aj|k8EP-!7y^EF#(A7fClR!8%T)bGkbH=3hD%sTs+ z>Iug{rfWF!upK$C(#?*8U}xEVW_{E!H%iN5^Z8 z5}+Z3!)HMHZa<%C%t&P?Xzs@=mVR!uPC`09W8JWad5&)g1nh~-YXQfpu(JP-k+@az zN+Eh3J^#1gQ!AuenuGVx$GT$mAskvlju1QnDCTt7ax! z$&)XHy-V@i$cG6r(f9AY_wzFg@BAVx7BHeHZb|TayYf0{pa1Uj;o5mdoTeVIURE%L z(6gf2 z42*JAPa))hYk&46;F-#=L*>g%wwO|VZu=1(ns=dy13F#^fUcGtnXc1DgiAlfEg^Wc zoKKc%k`b9Is}qy)u~;m0=W<}u?)Ve8m?lGENWPMizs^B|(2)8=!Uy4njTI{FPAYXn z-N%R}ZBwDDUXDvK!sY;^#0%OZMxq#^m2&|HQ#R%|tyG<-XUr#_73yOk86bGKy}BlV z*S54Vcd_+zBBa(aeP#1xtpJt@@;y%(qZ6qsCWLiK?RrWvA{Ou7Y^HD+_^n3l*iMVur;WtA+iXiSk$1!maJU2V(x#QIm zh2k&C&bJ0LTWtj?Gq|v-KdwGLXLa)|jJ+8EQn?o1lXI;h!Apz2=mVpuCzFu4vq-)ruLARgq?QDxAs1SlRyN5nB-NdV=Gy%*OyY6qP5%}UG3mEDtH z{p$Tpf%me8^n8Zm#8c7nZy^2_)7ec|=w>&L=v5AGlwE#P`1$LvZstp)}>CU_!0twL6XG6%$NlkpicgDPSQVNvUJ9H zSgT)Jqx;Ly@4R!U0_6;$1NsM1hQMB7?~ zNIF1S$`VD@2ZZvCUeiXf7q7@BJMe)%;G=RC`+BN8zvbJuza8 zi&yyRLs1mr=adl<7n2*0u6Y*PUu*8e{C(}i7_!MF(}0rqdTR_+B-bD}L$$rqmO{9< z?=Pl7P;}?SX;6)`Dm$+iW)o$!$YY)bYjmEaQnaRRoy-Cz%r^ag<_EZWD(FX#9$jpM z;tY5i$*CfwJCPTc7skt*AM~@I{p^*@?ex4RU+NSh|3td2sp=dmwsY;n4?YOH>&qWX z)sddGU(7BA#{q1NL=_Ur={uynG22b5rYPQPfe_R&F05u=V9RE}nXai26{ zRd5TT#TYFZ3Nav4zS`QJy~qLj8nN&a=bFuZnordFY)@uY`$Ud-K>f;qP=DF?Zbdd+ zTpR|024l|1Fz0$IT34DW51V6+7qor3uKOyZwlXrFVGYnc76YzlOB5W>4LXp=OtgPn z8+&HL&$w5Lz14O4yJqYjcWan8$tgm9q8vnazz`b9KgI~MV0zUoi@#8PFh_hun+BaQ* zzxwt2$+%wDGz}V00ec#UNAwy(lJtSGD)D*kwOft`prVR2iH=xC zCahz+k~$eh&4rjW-}4v+)Z6WR8R8?MuLVNf6T_*Ewno-YAVX9-M(Ma+648o9+oS}nG+W4;YYfP% zhf^5hSaZ#^P(z3L1bqNwUc)=PV5^Te(tScx<6hd%)Gi`a&lqx)yu*DUkf0AP^b`|- zFbeN*sP_@Zr!GG#x~x%A3bENsct-o$4PhY7H>Dl$P%M4t#wa*V8KG+!W zz1{hqq~X&~J{6#-1d=-jpv}V~BqY>6N_wm3dd^;wM8M7{r%1N?KM>Vcd4%CCBfY1C z6jYCCDxiLr#5|_%bML~QQg)-F8s-HZ=mXCU@5`P=1V{zmMuMVWzw`Fn^3894(}a-} z6t;hlzj$m~1{`j_JK@p$?eBai9X+!DARZn4uKCdK)u~RUU`u@AUk;NF)pSYgoN!}F zCSEd0se&;VU%UUcjfptpJsc|Rrw7MNdptVWB);uibR1LoT#NZa&24=TRXFxEP-o81N>VA!YaY`=Fxr>*>va^b;Tp?6%mZw* zrLk-&d=wL;xZY_R91fY$f+^z|9LJin9QQVnrY1B6QnqENr#%&GID7S4L#ZO~5yy_& z(JVk1^Tx9x1olpQ=bd}D|8E=v-WJho8*&Lnhc|uIgcG?Cb`0#QhIRD2-~CoT{`i4> z+1Ae9X0Mh$gYeEYT@b(i^{?gM{o8*l`(A$Z(Z}-fgO7*r>a`8uswxsFEA6wb-0z*} zt;s-IAS;&ijZjT)F9PE5Dm1gH&Op2^FK{r(BytV)X3;5s@A-l$JzuB903g1-1{P{k z-atx#;1$~YZYW~skV0fQPG8@8`z`s-cfY%-`=1Qwb}8o#ZeZl*Ff*6LJ_r=V#2L}6 zCPRgx-~8s+5t6kR+{QJL2{$6Wq^HQ!dASfLa+1eGmH5s(Z>Kf^@xgo94=Mdpbr(w} z)s|KTi^fizI2|r3GZbu$e#v-#2zfx1tr1b|>70{JF_y%@uQ4Q@!KHg#xs_U56JL0u zmMOiUbxlqobYmTwRs*)eX=Ii_wS{`h1_%Of9$t9nnd<&NCvc%<^|DwuES!T5vd~!12jEmpY_B@zKBZ78p7%Pvy+NBOk9P_? zaV&dvXXUqP8ni2ErkPu&y2Y9)!DtEl`ji>A%vOKEvtgk0AvC1)-p%xa-Uj5gZ7|zJ z(v#RgUCP^UzhfJ>Y<~Ua7mJ@i{O}`V;BrmI?YC@azk3OfO$qe06Ta|&`HNrDclD}7 z9I4RGpI>j?2D~H!m3Xy<#7QzT-)%cl=k%}*Co!333v)S;b3;_~%fIx1Udsa!k|TR& z+Nt_IoEloIu(3Age<;j#VJhPcs(^M69mxEK>~74#xQe%ua}Q{@QXeDh5S zrHBb$+H4*spOk6d#ap&=bOABaer7p4%1#95AG$zZpPM7f`rKMe&4Kl~q0gQ{s7H7e zI~Vzdg7|h1yYhQC0sA;E6*AJ>7;aUG5c-ht!eMdC=f?B$nku3ncE%v;Yac`FOg|8F z4RmRx0GBGT0uSn*`OhnHh=;mR7PqO?t64Tse_JapBbXN$^x@)=Yewz2hZIJkp*Wh& zUc;0;7Ptfz_zF0(t0)P4$NO&78pzr2nPD@^59Nzs&C7b~!OVST)&4%#o3n<&F%88K zz)-O#@_y(Wr5WY<<_5cYG2=EkzxlPM%t7B;9cy;r2H`+*zV(Sw+kLyn&GUkO{`~pv zHHb-3;?2JK{JDJl+uyNd8c#NRYPK^>YtP7j^y42DYI_CGu8T4kV8*+HAkoa`baAVy z8J)S}Pygws^6c4jxqbUJ!GcoB>hJ&le}>(t4@~u>HL)DfJ#rwf;jyXrM9oa0yuU@% zM<i1rvXE3Kx??AwX@2g)C-S>xR{h zsdvJ>Em8N@K1ibf3LP2i=4#7$+qI|QfeK67hs(?s)zh;-!|hP1s7YRf*O)J{b%?>m z{h3)aQ%M1$_hIgk@Bw+2kxv=pm<${YRLYTPGUqhEH%uCO+~snaYr;HodWT8jh=j>?l%>868L`HzIN5*IO3C1n`BWe$xpi^3l z{5>OIyut>3?w*`ZwX`SDWcA^*T_^TIBJru_#)YBLF$;qGo+o6A(#TD4K@7a@n8S@j zz}w*5hP1(p-u=DbvjJOT@uxOqXr~M3r~mkmJ|Xf|`;_nUb4x}NXk_w)3Fra- z@LB(-)sBAn!~aXyZDvP!@4cTn5tUc;LnKs@VGE7gpFoo!3PO@7hdgLYbVo>Glw4)- zw1nzR=$VI&wbnJXxjm>J+$CAAM;gSMX2Um25Uz-`G$yejkk6kyme0TV+`PU0{K|W5 z*IL(9v+4LQ$0Y=kOGmKyTNiphlK5AzxohYm#^rbf`gJ?4U2l8;;_^ibJAR!1so(`B zSbvoc5ra`S;GSry4YS+KAxp>g-rc+M)?07ouUW$xcCk2TA`}gkEvq^aZiD^}wzNRA zsfO-tm`j__NT|Swem|#!z$1myr|{!gdwIHQn<*~bv(oW4YEu_%>m@-3W0iMTMFlL?JxAB-^ z9f}O=!!IZ)>~qyG7TVK<&`L=0Jzc1J35^x#9`_XpxzQeg*#_~+x_>-&J^)C#z28_b z=*!E?JMfguwtf8Ch73OY?Qe~EsZBS&ens;{=^sB(`)|9}882(Co&U}k&KVR0Sqakn z_VRas_uu4C{^U<`qy5!i{Z&fYDOH~BW-(MS++{6?8=0a+T5E&XGn^wB*&yU1C3o|f z3}K>CzGsnvAS5DgglKjf5?zIw2*+ci`yoBPZq@%TnNwKbo7zrm(Qe0SzH3#vv17-6 z^S{`Be`8bG_TFpANxaqms~7s9c9lYOM_H<00qM}k!7iMAFTqNg{j+DDYBZA}fC%TD z_GG?JL`hv4{Zyv&z3+X`KL6RD|GAr7;#rWCK8eUg+6f7peRB^^eXsUJpgCw|%IT-P zX3L9S@;Tu$i|v&o%u`3u3UX z9sJQG=OdoeJC{rslZQ^r_+CHhb)QDA?>$jrMkWFQhzcEuBXUjDqVuF)@`}LU*_bcx zWo785C|Q?zZbJo%Fr4Em_y^%kp9%L)fgt7;j28VI)Rf9kTQBuzAT6&TGY!8DaqWq6 zB$-5Bo1FRZ>@2t~OL;wmpn~9*K)sv$5wpmZc9R18=jcFGuVc2AwZm?x-%Wr`f>fl4`F z0LDO%N98JajEpccaZT4siDo#C9`WLK-KnLJGe^cn2Q`rdW$UGeA?bcsC#)OCfVaVz zfI@iDKi;I1hZ_Ud#rL^7+APb7!$`GSB|rVAe=13OSUmEQMvErIt@aB3-P*Xo86ioc zKA*(D{LB9$fAcqgBfs4cJu=sHR@c0ufytC=m~11FylB|m-HE44+4Et_ELVr{B3z&X z3<5dLV@kqC8yT5+d{eIODV>a>ByH!xD@ohTJRA1tD2WR~BAj9T(I5Vy{QMWckOv=q zEU%KEjIf2X6wh-bLE>Z_V}g_b!*(nKQ;PEie7L-9N5*`<4M;(X2{U6=4GkE)uuyH~LJV6$(o`o(T1ff1Ln3`&i z{26x7)W>;G#@fcU+IB(>qiAekMxT4s%SgM%YwSmA(^{>qePtxSzuU%B_z(2Y>l|L{ zK-rjMthu~z9OI^d9)!!UiJ}f!2U<|-um#wWu1;9WfN!J|);#yQuj>hITS5ZTrWKJq zp!(KJucZ_7` zI94i%<4QuG5wA2stOJV0Jv=tJkQ4G<=XY5Qq1M4PVZF-mtm)C;NqAtiJJ&Uj5&AY+ zI7{_yUDp!^0pK7+|T9gSm9zwiJ7Y1r4I-ir6uQ!gVVHD zYGZdSGEuAg6XRJXFIzOEK4C`%bG6>H(e`g38GsI-JL^v@Yw&r9VQqv-o3`mp( zm(nB@b4Q9&&>k>qUyIXV%1fL1j(M|yhBc{uMJ6*aYCMM`V`k_W3j-BVL2OV{<6fi% zast;d8SO@@pj8{-@A@FUnG_$JR|(g%XV1b>qhHBOA3l5}AN=z_%U5l<|8*JfC{@xs zC1@=bL2~-i<+}a(+rRx=`LjR!bNgIL1e_tOy+m{5iZM))*80G3xQZ0eC#20n3_Z}W zdt!o6t4a@Dk;|=CpO?b1sYkU@18L?IS5nl$>qFnlia?2NABFY`^wQ_ z?Lm2?GLj{ysFSO8c{G%P1hV@o?Hpkn`=>d{b1JjY;!2Ko4^F0tT zb+moLFpFI4Z?l+`8Bn)-$u2-M@doPCT=I z{^9@pZ?DiJU%g$A`SzE7JY~X3ujI?IU@^f1jI<{j3F)<0r~A4jlF-IPXWprp?UZey z9kd_v82krB^2;*_;Nl|U^g4FxHZ*wP_OBu~LJ)bp3q8phT=Wg}1e6iFG- zznGh;NfLVh>;&B6#v`K^?z_YoA0kl(kRw(PvS%gp>V?2vxLHlOu>C!G6(_wnYJTfM zYF^U3`Jesv(~1S|>&ZUI&#eVt@8hDR^>Fle*7w>>9XIKvdd@j4B6$0 z24e-{SJiNo8$`by5iMo@{|rh0xuXx$U5z(>NptCti+&B=#SA8PaS!t6u2$XBV9 zoX92zfl8Y>e8+x11e!LpMMK>1WZt{R2+0P`Yvn{E(%mzA?^na?Hr4QL)WiU7%5Kl2 z-<1?7t^rVBjI#~vF2~9=J9gCIH<0rXeM=R7*u_l?CSyjdbR>(dk4$9jlK`_G=!B)s z1c)G1zTdVtjsa`afzX&smiPx%#n#M*s_hC|s;a(U{Nfifl1Y%LYxUw49Xx;7}Qakpl`0uw<>}=X#UjQPbAgoTxZ)sH|3cgBcPvWtftc z(><1b3~DrN&Ox;+RxA|aP}|Wd#AKw_ZtbtqpEonDy5z7igV)$d-2*&)#7|?H$lz8 z1)?}opb`j&0cje9Z#S3mzIU}bYb#vXPa8Faz1SmW(wKe0jkV`}B-8;5Q4cpR5y!>F zWOMQK$x|s;^YB`WO{49>V7K$ejO<50`H2+yV=mLKMHSn1DXbL1KllAL&z7&!kdm;k zqsOSMqm<~9sHFD5-*(T9yK}a(O}$jO(G=<+zkbA{hPNRkcMvY*b`~NUoi_-cnKt*p zfDxNoCmq3Fox`4 zMwG#@ga~JAO#7N+G<{k;>FmXgeK>tYea?GKYJFP1CDDm6qw^;xLXu->)_L zyhE={5AZLBHP0CU2VIj)On+ZYFH5TQQz`3CtT^qo`i!V$mTsn%a z9NS>t&>~#S7va<(rd5v z72}@7Ov0fmItK=>pC;*~q!U92QHdaDi7*kgt`SQMh|8;p)YdeHpgx3jL z@BbQ1_=*7(gp~#DR4WqJ)~kbL80dHB)^Z z3Fwp#Mk&OFofL?6a1e_7a#9KrFwzz_)HS`J=OC8QfN&0OZOD3+8kkmS4M}IP&Y`HV z-&`u^jq2`MeV=?m?_ux9!gk~LEdb($L} zfdKAVYguUB$oQL7c$?25MFt?`ks1Evz9(SleqJ$tXjxLY80dy0^fkQQF@N1g_~{0g z-ROMd7;ukWptVwaCphG*HVOAf8v}m)`0?3meE88v^1%lm_=i2gyC$;jFZ;fq>$iNV z*3Z4`$Z}7fwEW{O{8mu3(Aqi)j~bggi|i= z{pL-y*n}8KV4D;c`~aXOZLhz6UrOFRoxt9U(A!b11PR>tUnF#0voRAsi#FQH8xdf; z)+m9#hY;lvfsRbQ3}O=3H?(%VH2W%0k)d94f`jUAthHQ7Fg=3_#ifUKcUu@@d4V?l zzQ+o&StV6~EJy*->8mmX4Z|_*#w}M-yN7X40R&^n2|mCa5$@v073x)6vpX?y{P2{X z$T{MzlK$Jrsn(cPBRX8gA4k-!pXAhLpg-NWIqMl;e+UCSsM+ zwD?Y_eYcW;1EFmY255`2fWdb4@t!oc;!e8K>z=mmsa#`fkI3XAGDaOh>t;grTIDdK zSIW>QMZnwf?M7BZ+7_95Ul}n$CY=<1ol@CgJ%9FeW3(Thy~YoJ^h0_6;>C_u7YV;k zyXv?-f*FYJmm%`O$wwx2y=!2T)FMLPeBtDGfe7rky-FpovkodMgs0eIUB)mD-Yg5H zH%ye%9ie1DLy{ae**Y>ONZG7D-Xq|GzRIuU3b?1CGF~d4NO2z*U;@d zcjYhs;y+tODn07E-~Fy3qw(^i$`1LJv;J?OBb$%84QTFMp4~ZA)|fvdXv>-l8YniI zdNg=K7lW>O1d-bl{1yz{N2%)ZHYv|)mnD1F4^9nFBEuk}l|lDHe=jUHgEv z)(}pSDw6vemcn5jVL!NVF{O~3>#E6+lQ@ROzDt50>%hmdCrU?p*D37n%etiV7lbFw zO*vGeXhjJ?dkvCa=S6^+zK;6=^P78~zISGKhOW>n(-m9`zYl+;jT!fNAMDt}UY*7? zp)Q#2;(DW{W~7hLl$FhB-GcFYxSN|15Sz|s21nI?FF4Yb_Q{XAb4L;Z|33~0m=E&T RO}YR8002ovPDHLkV1hZ~9NGW? diff --git a/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp new file mode 100644 index 0000000000000000000000000000000000000000..c937ff1dfa1dc325a1088a46025d58813d208f3a GIT binary patch literal 24890 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

!eD2 z@1RJ4Yn8&j>=Y+rPA7E)TUlt-<42F_>a}Z8Xxy$edm>}VkT{~bFobM{V_u9l1YWU& z#5@Rr-OUXz&aIz*t6Q-qbLS@X|@k7PvRW~y=!M~^Mo$*B>URR!d;-P z!w!b@hHrlUbK(tbdr>T~%f&apYGV|JGGQmRlK!5(fu^!g{&1?p%kTZ(@B4QAzV&LYK}H8MJUu30MEE*&+`Q zSJ1^ZZJVj-T(1^3x{iXbo3!@wcexIs4vkk>*iO-yK8$;htJA+aOwE7GLYcE+aoW|3 z7ccojpV6*P1acHr6O~-2+TEXw{xAnTb6M%pvnWeeOaZohR^kp_xTH)~)KkPE_ln

3j72+8c!D+YyXt!zM1moZ96<1q~WyiAt4PVVoarjgCze`NOtF~8NE!x}j= z(=91G0laHxZu8{+)co(-nl{(twnc=+H|#mAiwhkKaIs(? z*Nzj;nR3nuniq|4fBRb-+rRkYOHxkoNXm;fN1pjS`Iy(PJ*Q3^^TNqqw-WGgXay)1 zwj?~TZW|mT$$%$#us$ml7znpoC`+|I@i{o_79$HqdGnpA>XAAfMP?*EPEML2NZ5q_ zYEKhz@M6SDL71vS>1bFiTYUEW*|M#-yBj`MdCc-X1a;j1Uemdw51yWKaU!SKsrll{ zEhof4-B!#~Y(J12L*<3-W5uTFlFhsFK0<-6lzwCZ zA_7ztp5lTaduJnz2Z9c^WMtN2`>NY9>Su|mVAh}k%xrKdU za;SD3r>bq9DEpw23$}I$y*&PtWn05>H6Qcf$Qz+e(>VF~7t1WAf?sX4SQ12WEirD~ zM;-?x%}^8`bh8$dP>=ET(Y(zJevb~9*%@y`e|8iuZ1?tEo-*@cKzbtQPK0C7hZgk{=q-^ z94*_k&pxBss;ofxNsUjzB^QecwR`vO%R`FBTCm0ut|X(53({2x3FQ3^K|3XzTkRZV zWL!+ESG(4{C?r9y9-76I5TKX?O5@3QQxph*7SHKJ#d#}pw1#?dp=~LETjbL1_SwQ? z$f0cUgb?h;vHQKIZ^`druLR-uk`w_wAFeYyV#P7|*j5P$-FBsft5Z!D8l>AZ^1b%l zbDgp@S#_yB%Sts09T^pq9IXuzw&UK>F8mc;;W;9s!iN;2+YDi=bCx2=2FJSAyodld zw~?l~?jFlXdud+4GQ_3$y~g>4ff+Sdc|}$(5!NZ?qnj`k^#U~m(E{~~@FCl;l~m;{ z1fB?7yB*517!_Wd7eA0|TSd-!Q7)md7PTddVlo)hV$aEB9^MevdwUvc#36tjjj)~( zGW%7C>19?z*N1CYg2@y;_+f|*d0yX!WRFKU73wqZt@dU9z@{zAMpN^Xn&@gQK(rIU zyY>W)V}R$$K0cZkX?Z|fqW)~ced^_x#fuOXNGScyOKn=u{go&4FW&ow7f~l$NRf;m zLTek1x$T&+?JWf|7HIr^^Yd?Z&Q9nwdo!~QH-|+*$mc#3`{BwJrLcKyZr`~rC^*M* zmXt#lf}Ix)e$UjFKh$eRs=8RYu&fbV$}KPC_#J5|b4}U~rDJiNnj_hu;#64hwX!YS z?OBHKxYMmm_t-j(zZ0a5HV`g;P^z;Tg13zgd3FLD=P6i}7r$?O7bh)L{2n_U2r4j* zN8HEWG%Q2!IkJ z#*~u4OZNR%BoPECQYgY&b}~I1e7^+!QWv_0b14N*UB4Wm8zPRBjG-6|DFc@v;;FgK z6?S6zpB0Ot_0_o+)N^U!k?*LU&(UV~Xi~;PqOOcBLQFMZ2^31QwSgT9`JXGa;-ICG z1;ysCDll+ziD6L0WBDMMBjq0ZY#aR)hu@!Yr% zv}?O|#x@Ja*Jt^wIdRRc-&bV$Q0U8F`V!&mc#TDJ0eC1csw{Z9Hf<~vWkFN64%M9A z5<+*BoRFQNwy%EmtM(gptT$idGtWFr@$L3=O3AaBx^ZEuHL_uq zeq0K>AY3*I8B{hwxxar z`UaZ=LC(M3`0xfj^X#)mNgDfr3OOkW2vQX?vU10z)_fcktql>IniK%stGpfPXQVcT zO&h5rVMj)oPt13qP)ZC{j4MhRmNe$BoEXB+DKx=YINGcTf$P&%!gIYCV|Q!$0Z z!zdYwq&jdus3o#|lJ5lYuARBflkfABOwe9f-J=BGI%Kpgw{~_xjD7^#z*E2illz=opaP=HS1yw;{`rU0 z&U2L-tFgqdK+!GsHadJgdMfTGhu`8*O-MS5@aAg)f0{kCDJmM z5UzNRRS_9daf75RP;peO`=p%kL$N{!{Tjg6akSQ~RWT3snGl=qx_TaJSI_2s*tYIE zSc~z&T-9P1BiGzDMBXf+NqEg8+z1LPH&@X3H&V)3%Y{-G-_5V$@jb2G^aDFNP_e{3 zTc6koav1fwQty5ixI?$_?I`G7J8LU5iuxiuB~?ol5!$CcAhW%PYvBg4XeSB9N*CMB9{-^<2MTIVjDm&JL1 zU$bD{ym3<=P^O{b=pkBr@@__cW|2RZU}IWqRw>Y*QsA7z?#tu8ZtL*YWrR15UTk21 zX~4W_b9e}(;SxD=)5T8g{A#NnS0)_cc`O5F|2J}TZ&pe+n2VOS*&?tL!W{hm6+>tg zpIzkkLMB%u3fei23q}D8EH@sf3l}cZkc-PVi>odXI>hD&pe#NYSN?i-WVQa*1KzyQT*?ashj!PAG$_Poz_Ws(U zBxRY3#GHFNSsQAk$K}6!}#CEL-ok}UqVYLxj)Y5aqrVsQ*ln&Wd*AEFJBeP+f ztCCj)WAw|Fha9lH`GCgJorl}MfGPKnGo)xi}Dw)0MA zMv(9*L&&%v>IYEW4lV1VAoFm%^8_YfW8{AHVMsd!ylZD_-~ayi$61)X#@@CB6ymvh zHQeB(mtLgjuU&Iwz^$X8J6bw@VGV@~y0%5&Y4wr_$w4~_4TFmGAbLCful?GuEzn)x zkhq~7(-&?>b6;5aav0NK2=wER?@H1JcG|!Lt~SW35BF3Tv5=Ntk${TS23#!+2-gZa zn;Y!#c#jxMuoF4v7MM~NIZHh63pVWPMe71*RMAttMA>7uL&)j#Fa%BB3;O=E?z%}K zXH@RrE&c)BqM*b$YTPLhT5+_ePEt4rJfT}=Z@hPb`ea>)D2uoXv_=rfRB4y0eohUP$}_PwEW?xRLvZ zXwGNV+`t&ECl%^I{-TJrnD1~TQ-(sv2+w<_^Pw!kjKtruxr~{>s8Niu(~f~rLi{sQ z^|rP{z`OPoZ5A*W=E?M&q@0Atzj&x#d+jwkcmA9SmDUMgW5c#KJX2gdx0EHpXxpT} z+;TF6rDK*({@C6Z@?r3h6QK52UwMU2YOB4yt(4~y39|#1rnD<`cyvIIWHZKtasL{HV8$`i z0f?w|f;|NF(1l)k*+(4TCZ^2mvG`eQ4cjH}dvNeruAM#OuV4R_BUEmv-|NT`2{r6q zfhmGu^BT6iZE}i@MLbLnNK`@;LM`Hcs|y(2evsVa2$#Xo1f@)(_^nD5dhpoWvCl6K z=PnWICg9WydvMQaO2Qd`CCP>qjEMA;c&1CDn{h3mc3se+$j4|-RO{-;$a5=?tL1fd z#sC?()FEr=Xky#TuUQgpOyPe~Y`kDAhKWK#%Zzc6C=l~3hcXP`3vMtev9lgZg(`1U zFkt>5?ga3zovF>#%wshRh-2;ofuoY6cH z>fkn4s?t<(G$~`6<~RRg$3u2dd-mC9gPJZBS;Er2TiRsZMl6UooQL$_ww<#>&8{y5 zTg1Q?H%+(#Iu5;XuSpTI{^c0jag2l()NIsJm=r%EYZRBTvB?znY7C(YA?%gA@W+&h zaSZlCk!)23c!+1QCB=^gruZ_L7k@Ly!De3A>?!TeQ)UB^9MYy(VO-?*LBoEgbS=(6 z@O&RrSYruufp{(tgDW~vrX&o^yslT0ajSGnOf~ZoScgbO%4tAt?NcSQo3%RuylZD_ zcke!Yd7eXijO>bg5ZWJGbgn*o%{Aey7k6!|>{Ud1`=gIGehKusU1)QIKtT@Jd?Hm2 zQVKphDnE-{I`Elit`LQ+89Xfcv=Wvi0-MDCt7~=Z;vREWB~Wb0lH>}4Ev$$gMya%BbY?NZhdx4pFtvt$ z0pSAmmhP_Qp=srIqD^XEH1PF&E2_xih4R5=LtJ1=0`!Ns5#;y zvJ7m-4Aj&o-tYdbR6YOv3+~M>LS#jrzZ*iSQtQwp=u7#%_US0e?pK50qM-VLK!M^j zgAw6vLlWNcO+LMA&yyu4QlPe#@l)?We89(II1iaN04kk2FeD~%dC{lt5t;a zkX;*up@i^s0#}hJY}6iY!AEXJOIvzKKMs+l?2NGx+IsBG7eK&reXTgnOcb_hctNW< zp^D8O&zQsjC(m>EbwC+)<@rdTH=t(EJhlY|>;&+xovBUJ#r;Abi#3ST0ZaF#zi%8 z?5UDCV5El+9?G-Ei{|5*x&(EM%kkJ>6T0ZLFG>w)YVCBR#CY-oHClY|5QWQOQxqqg zT3qwbG^h=QoS*IZ@BqyVEE0WiYD~^qjc_PMHpQ}ml{7Ya5KQ29$Teutl7wnm?n502 zbqA>pfr~E;wwBUeR-n$J$t7$nKDi^O$x;;x6HzwR2lPk;I8{Fnk1ZDoxpwuc&jA;# z6#0lrWU`)1gndcLF;x1f!s=saR5?(lnImMZY9L$crd#VmmRMMk2}Kl^*ZazSgt?}A zLK`TMV=2_f2U}IM)zF;_ujpqrg%Rmhy&pA~o(v|SnbH%EQx*?D^u7jlXl6^+S;7Jj zIp-0+S50983WvE12o_a}q|bGsK!DxgW3f`XuHAD43LMn9CKy?{uZBC(8GFHYVAz&% z{>~IO#67K+A*|MpbJ+>tT{~NwC)=kPk)comgc#m)wHWpUr1-jfjd{6UK;ON4SL|$y zYF&v=J{|$10TlqX#zLTr;b7XeK@587Q!mk3TY9Xh?~8tB1dKS%2M->oZC5BeMUrgq zMeMCF-tb^eO|$*Xg4q^XP@H9D_OZ25cDyc)B~g_@KSS_EVR_4hmFmG_obu&BnPN|9 zMtZ)GlL}Bpse#)1R$Ta&0Z7t*ap7qQn1G0hIu~G4;oI5<1MNG=TT@iL3;y24ryi?> zXZ47r3Ju{lD@t8V0%M?#YKM@Y_hAIgTcWobm5zu$6n6=IIGjedC`103q`i$ zRYwnnu3fu!`mrp%-f?{?M)mPIIBOP%0dcKl*%xKmxXO{GrDQb3o|fv!LQaXX7d0s6 zBP=eqfag+cK(?Nx$Ig+%KfG^7lgYzh?X#t%^vqu-pnS~cCGOF~N3{RyIYnm#K?31N z-F~=bj%)Kvp$+swMkR;*E}Q+fot@=hY+Fn)26E39;^OZzZN9R&PF+Y@Q0NI3dXY;lkiuCC>-jMM`QV0(8NOB5+(Ak8Cu&v^LsgN4A1fca1udK-7{)mvO!Im_N1R*uCD6aI?=Eq;?K5{Js zZ10tlV8*;DU7g=z-pgWYvG5-b3lipNuyLlro#JG?2MFJ>L*GEm{OE!a&(ytk(rHcUtk(5o*+>4&=>Ouy3t~IGbLTdhz8?t6&;>FF0cEh073@a*FvF<~Xm&ty z{~?@N;CO=M40xv3VvlOR*l@%BkdTWODF~tY!|oiRS&be(dPo<}pL4dLWrPWdSYpK; z3MCpi({Rad>%u$<)dkXx`&eSkF@z-}<#_K1l(sd6nY?B12@PhT+tTKrzUQ)koJfTx z^pUGY-4mwAZI21n;ePn>5Tn|fp};B4|JvCnVH+K6Tz!r;^1>t?<=u+M%7V>7A&8Qc zsV)a}3pAhmnUR|dd^kTD6|6$CYJv+prs@Sj+furxFxiA+LLJJ)`8>Y4P*?Q{3WsOJ zB69W$=-OtNn-lzbaA&IUb{1#H^qlCi2l0tOpMbDEQAuqQzJ}r->r`J@(JV(h9EM_4 zTgSXSUr=aCt^fPo92fS;iws}I88I?V!$>u>F8(y%9&V}52dAlh{kHfM2{f9Sh z_Fn=?m9mIyOz)G|;WiEp(YlnwXP@$ZnARtcg)<+)+f|8PI>!=4C z3yW&xEEGB4Ez^3eBmk|BV}zAx9^YiAMdl)E?){80Qlz))Jzq;K$o#bX0%IAMMCg>( z2^A#xK&ryLy6RZlx?e)Tc9z{ze0xx$Xa-9CxK5dtgj&11N8Pb>o95f%y)K0LEP+^b zVGXPym2C1c;$UPD&je=kNy`f;Q}fJnz!}HGTD2Yf)M8dm5lVQl9PIB zelH;8-8mBH<;-)58PX^POFv1y;xbuGw)mbb!_Jx(*(kQ%;7Tcka>(5s0^YS#+Yf&5 zgT3|P(evY&l5jK&(=f`4DQFeQbO!c07C*fC;Qi}cncnRJuNY#W9>$~=9>Qgj|5x{C zYWn>73v^l&n|CReN^raI<*Z5UgvA;)KZJMg+;L$l3F57$uZORY#t0%%A9P&pkYflX z@m4LPB3wfgzJSouaU}8wV?pJGQ7XS!RVP_E>N?O28JaPVP5IqoC`0gSzkD6Z_r~W0 z?kNN|IcNq7qEO)|sN#4Z+l4*UDndBj9j!&5D5Ky&(0B)>h8tow6{%>)6T|BIqk7{W z_;s=km_ty`&*lQIb|o3X%mgr63B1X|Pk3Lom!`6QEtFT52f}I$LD6Sr0{6r-GugfF z5UxA~h4$JiDXcMnvNIxLcQp@0aYrWh(rV6TG#`81GeyOdTsMR=;d_4mr`Gk83=xXb zU{!&@2G9U|cNDMp+~xDJ*;WgxR%7ME(^!NbGej5zL)oL%uI4^zuIH6LtE9gRT4hh| zF~)xF_h`t|$lj-voMvwaV}#t?yv^fTVaD^$*MoASIfU=%XzfZ4jy;cqJc5{uI|00F zXKCkWf$;+S4-DDCrs*QV?b5|d@nu?KDGOxUF2LAP;#b$NhtOSYdmP2Q{b+%j;hngF zT<62F&33hlh3mK`HlBRJTiTT?mpx=c9z5O$53boB2{yK-HY6>Fw(>9rEw82;_wrhF zA)Pwg6oeBi2tdVR7d8Yd3!5K9ZC-g%0ma9Se^bYxNFB%}+QxAeLeLIWY;g{uLFpcs zB>P;0vX8#PrK?+xXG;jUXD-y#5rVZDUE3YW1z0F|kS$1W$}M6v199r^;fO;fRN&0S zYbHC_@qIdf?wpK!6nHPr0LX$|ELlx!-Tm_MA}?C^g^Tu35Q1A7?Up+0SRWmMN51o=+MRoGJpDa1F#Av9KAryLa)_vMxp*Inlzt z%+7>jR-vB82YSc2`aNPMr;XMZWns9?r#LE_Vu8L&x=8c4;NMti0x=^J!Ob)_p8D)G zw;#J>7w+}k0Zv~FFYX-EoXrZ7h+{RR$fHJ7eL_jw3E*8jwap99#d)$_g=WnyQ%Ne& zE_UlFP{~r5_D#QM#5h?P(Q@;pZH-%AT$b;fqnYLpODVNOYy9A`)6?;^b+kthAExWs z){3N{WDjnkbLR(}s~`dS=oY$YPDY=JhvjRpA=a*shRf8Ni~i~zxqHa`q#yWA8d~OWlfvCt~nNyuZ>YL zFLK!~iw7KwP^JwT-RR<{ivygm1TnyE^Ofp zrcz~C+#7|xjyAzT19B$8nz3&=X}~e=1;Py1(E4p?Q&=vMbqMy@9|}mMqip>Z;d(Gu z$?nRE6H3ylxBK8UY8L7`?s`zw$S zH4@v*70!TlO5@{54&Y;c$C`Ng$`z%gINXSBzLxHgsVo*`LJv;rFg2Pj77kmeDJvxa zQ3TvH89~x51hhZo7ES?2s%fg7txOk<;&oBcf6#NV?SZ`j8VncYGNqfJ=Wx;rlqrQ9R%2AiDxq&dS-?D5+E=SPObzZ#27xBqPixoU9F3ceI@8Hf z4|(NT?-+Gz9P(Ne1tiQ^rPQPR4C*sxDJ#t=0dw0`G$4~c-KyE^Q3xqMsUM^+4E2#*jV8GCm|cL$ChIp_gka4-hP|1 zb??N!z`K)ZLkMTOiiO$D8#m;{8fzISj`zQO=`x+xSa?2o_$Y(3Z9Ni1B)OI6^D;_0 zn*Xgircf3;#6C9H;!)mA?O8!XL%Gql(+W*U_7k$8e>g{tW&<2Ny&@_-X(EAD*n26c z#fWQdp1LwA?YOxSg0g2g(g~?;nMa9+ zF40vL4wb@&U6WA2;tB-M&{JbI3k@a#%Put00M))Op1ovMd*-n|nD6b?tJl<|0Po$} zx|D;RLzUUtvolrhJ_K?IA9AX-H<1Jr0zoPJlA%b%oR8*xTc?g9$DAR%7HWz(weR^X zF^KsYmw8k|ndp$NnFw+%}!gowgE>F^UVt%wG2Xs3|4xcQZ`wicH=N;3? zTiRO}3$_8D){c%2x|+ksogCUOkIkb;4@G#bZSjUJw-j}7$&NpGsF9FhT8AJW%gPr% zAOd_wJSY$loPokYju&JT3fUIT!lo7xES|sE63(|4iwrL=T$b?KENG;^ykL*fcRdaT zax6>xZu9NBZ(Ek-J>Koxf_5&&%g$xwI}AzqrV{{RBdeCm=HlZ(CR|%nn_wrjshR#@ z^_%5d6`is|cJTN>;=R4zE0KGPN798*PzM+2p$IAhQ(>9w3%jsGp5oePz3N9O=7Np5 z97FDNlbdG7xX0p? zL&2EuF_Bu_uS93FLJ6;D%t!X-t`^^{nbG=O=`mNK;PUesam^z9t>TkY=akqQ3Wu|- z#E^wQX4V6VK*Tg)^Iq)06pmcT0A|fO_8kSiYp1ru_4>t{H1g*EbWvadGz>lE<@6r) z-=$CT_x9~ObnoMj={Sn<>6_BWEI>s|?tk)3Q00UpJe=*n5a5B%mwTw~cb{WJ=LhlL zy?b&U`rui-?o^%DMA!vF6|zv(MLGlp7KXu`JA}GhMGaFR8YExd!asKgx}23D^E^a@!%`T|2eab$!kgUQj&Pwt`9= ztP+rIL+H{5W!V38^VUsCLQzVgv$Zn{=F*3l6nDtcW4Ko%9WR6*&uG?5mK}S3Ex>T@ z+RU5U#-Q4>)_y{NF^A6$n?)W>IiR7bzejefYKSlC{T@C9vA;+P-Py zvY@W}Y&=*%ve&gJ2Zp-bQOnB1WyhEU6Tp;EX9zW3q(acu8faI?6JEi(?c&Cet8gha z3G=3P+eFN8TPSzFjSU(Ea!F`Q`%K=KvM7P4dP*Z0HFTjb(k)e%4ry;+!|SkcvoqZV z&Um&`3ST^5MWAWMv{KYN*2j`8>XVS(w5<0P`#y zmrVL)WwNNk$U+JZTpSXI`6Ban8k`=UV3wei)e9yQ+-IBTFsWc&K=vmwiQpbk z@*H=Yb|@4WD{jo<@c8nWgUt|Bz8d>|OgTl&vB$$BK3-S>WfZ^+WJQ!?b!u4mncXp)Aa{$6x+p`5U^iBZp+NrIz>AAtQN=nG1VF4s8fPs86 zp4mJe-Vj~q_}{85A(wo!MpuRN>YUs+> zWe;DB8qk@1$3g^UBWvmG$;(ipjzKD+H?=&LHXslZaB`xOm;)2`920Jbk}=B8c=>s9 z$E8BP26T*ujH?E}iqc}#y;I>}16c7{hr=1vuj;k0L&FmRY5jx{2CE?y_-O1z)%(oO zgrKc+bucKSdT+x6oX?@@T#Hq-Qd(Y>og`ex!G$pQkHd~6TNs5B027g37S^1*K7cz4 zde=^E>snvPRHUuc{^|0?i)l@4{dOm|M(@4*?gsj8r>)CpXc97#QuLinHg9j7cp(<% zZ7n>B&(8>$A5un+EA!Y~Aw-DMLL-ZxY2RxU3)h4KDA%?&HN8DSBzTP--d>g zT3!(Ab6n+W(t}X$3;droEOe$jDYbO+ws^k0(N9$i?-WJ4fVlU$-SfDW!|E| zM|`Yc|?)8t5AJFNbq%l_6 zTX|fCH@hm!P;^wIU?u)Y?72EN*^vw(PAl;cH0vF=zIx|QuGLJV=Mb^A$@ zU2fm<1GDo|@!YWdcule(Oew<^qbMm=xVN$eSZOR2E?@CNV!r`dp}+9H6ai@-x&vv# zfjR|3a<5#www1*yV&REc*cgw9%dEZ#4xmfB;b|NDg3MLLA#K?q-Spb>zC_L;`@klx zfI^_gaf&0Xja9AXbNeAWd$xK)E9H!9vikL1Xv#1m9u~r6a&On{p&KU&^oX%!M=Tbe zpqg=ia{RX-V#?z|ZsV7{!eg-{EQ5QmyAUm4u$u{;7)lq4l+s#Sl^zJ4AmJk(SZUMh zPI@|K)vrgC04Rh&&4W6Ck@cm!9mTi7Y&uOY?C}x4LoTrkCzJ9`-KxEA(Wdc>5tXZM&Q8 z_U+pz{HhD)V2&#*t622t@gvugA^58mL!YcLIcVUVoE~;5T_gviL92UM%0td*R8r!u z(@-$AMve-olvH%xyhtsH04O)^mxMx@fY#y!dPQ0{xSA(yTcp{u&M$?hj|gR^(1mf^ z5Ue(SS>`50jeX#mN`9;?kT>b=R_%OtynOsXirS65Sj#<-MN>nOoEn|?)mYQ{_tD~q zTUA6wrL*g)LQ_Z+PnD>}+)5goAS^xo;V}9f(Pyf7g&?3wwo4+33j{N+M+z)>*~?9D zY3~Pxawg{@p#8NgUl1Zf{aS1}ytt=gRPcOw?hjCY_Kt6M4KkNZI5~A~W0LK&tf+{C z)@W3{KjmWjW=UT07!K_9|o! zLv#WtYK$FkC+FZHkPK#FcSe#CtSz4QvLy%B#S*y_z`J&8nHO_M=C;b?esgih&)M1sRgE^Ww$HGq_>FSXl_g z%pZ8{0blbz7wR6=VFzazN_eu4qDfC(e`-o6DSd5W!vdlmMd%i%c!9Q>m6$`q0AVz; zH)*0GM?-hHcCsp05Ffqm*D>UB_*)DX_V#aFIQB|aMzx)-u_UkNjpI}5PwDo@ewl&> zS_<1P7V+x2gMpY3vptT1EHQSC!n@s-rM2EO_pmM0)A)R;QwT&6gmqC$uPPd(tcbMM zjYqH(VH=ikwi?Wod|%V}5uAZqAHHPQ)l}>29s;Ll6PuJN;SS*f>4BEEu?9kivLVMU zp$x%GdU?H2(&XBp9JFO22c7fdo+hw4awWHTq=8ewtUMHDq{vVzzvsN?c(xe9d*~3A zsQsM!4CP10WK;!$8w+P{BKQ-c#+ZS#b>=r%(~IQrnRoopC$ z4Di{}=?5QtKu=}=EdYPX?p5;VSj@}TgRr;qBRZ+^B69QQ&0~MZaWzzDbeih$Pz5_4 zP&j2Uk~*x1vbb~DmT2I0>THElJ;u;(9gSu*LBI%mN*R1~VTnAoEXMb&7z2j1rWBO0 zH8%=G3JTPzOiGK332k`e=4*C=Yy+GTZoZu*&y{BP!~2#NCkhYnC4!Cn(H8foZJ#?$ zg(+f_I{`s~*4+N;|JY7ReqU6;!LE*N^~%}VhLtXNaI+lTnM%gwi|kt|r!#>zj_pO^ zp+HZ_6Ajy8v4k727`uJnVsS^KMlqgxt*j&@rl*nloE4{`-5+3x`x5gb`hY|pFi!|8 zP_%DDSy7{2S@L@%*F5;W$1|CcF%$sU&?BKmj4cbrLr&+KP%gL85G+4u8hdX@TAruT zKM#A#7BruTO$0yKr&_`z8`L$fo%;x?8ctr^xcng;v2^U3c~q~Qy%0ySHgxgS5Wd`Y z0(jR>ZSz8Zk;5xGq}sH&z{7_RI`2~a*304E5eMz9x8B~+qK^~cAp&|7m76d4thxdbX6*OvzDV^4iCV1SA?1A31qTpGO@vCIK zvIHHx9n-|4)cREc!3)9OUW7rcEcY#tn^KC@QD9gQ#%^&BPim$cu_&vZ?I;9Di?E^% z8!zS0WjUf<(^Do?U^gzVJsr&@aym}w5pMdyPO0a0mZbFye|Ai($&*;$D*{HnU7Zmj#2hM`0yLpsy{Agqf<8sMMGj|U z4{5nOLr~j7`7&LLL@TtZz${TUKBKR&|7YbJ^Q)yK(V<{1Gi2d*=;+s!nT);oMNqj% z^h988B(#ge=B&b(-y^fXqpxn8HDwo>viKk?W1o%=kG$`y&^Di%$p4&e<6r~^sZO?* z`@>o2B=SHiPH7~9L@w-UUpPz(ndvZAo}F&~Py9J->Mq&Bofq`3o!I7yUgn4Hf*2!(528pw-iLZ&wyp65eeb<@>F=Yttui6rWxIbr1Td81++WUUrKJcPpcQRvNLB%Q zis>vkq(FNYftq3k>og_r&Ds@7=LSa;7Q#TOJYE&452xy0q7Wio5{DKGzY7V9gdILk z6jhPjdo|IavN(;)1pDwp?lr3B=sG-xdxV+g=;or|{}xU`aeSi1o30<|yR#qu*|q_K zwXw+dcg+nw$pXv5m&aPKSu{>Fj;7V&43a_iFpu(E8lxT zr$rDQymy^qF6v}A`ezCn*w8SXrd(-gDcJ|g<_#$`o5ds#rBAei#1R-v2xND_8X_M+ zUK5Zz8FMa_z36jEsMd2mQzX4Wb~d88KAfAM#fV)GQvw%6sOeZx8c@sx0u?#8gTbRt zgAZ@@;j!OS96&a|(sFcc_vqbs-%|upPClQf5-f_i z)<>GGU7vdmTi}NHPdI(R848*_wEn$wd-E|SS!9N>1pSvDY9!wnjqA)Yzf7wkA%iT& z$lptbEOL3d(z=*Z6()LL`8d^`u?jf^gn&#MOBTjikpb$=pW3#YvJ|pukAAacVkjk@ zKlbPlcmX;Kx;oRNEh#O{7Rw_mi~z;P(+rX>>XLAUg(RcYaR>#cDcplSHs^9y7C{$q z-VU}}I9|EuaZ1GD^d-k^5BmgR$k&9r()rj-scP}}5CRbNm>*y>6ve6yyQO;wujrEO z&*UUUC>hIeBSZ;Q%cTvZ2a26q+Ym~auS;9J7aE!0v!^oe?*0wP0!P7)FuE*5KdH6~IHkoH9jofkTiM3-8HIH~QPZ{o7N8+va|So@kd2 z?Zr{JF?Ejcfo<*m>(^CdZzo?A(~+9Ap9Gn*t%x7$$Lq&Z_6&<21T~M9r@*Uo-4eHd?N!13imUFs1lOY92}f#Q+QIT96>ZkTSZo zJ*_XG75(=_J~R`Sx@boDOnlcXOQ4J6Px0?V@RJEu?4RbJQ=`4$&3)wtAzMv=K={Hm z&{|*XmiLz0u6ycL3r95w@L~!9e`0uo~c=0a^1 ziCtlOS=b^~oLDi3a-Oe2wjanc-0A)+3u8l}hvgc%6TrK6V*AbC{LTHJ{Pd?QJkXg+ zGBxdc#bSM&Q0DmGr2ua2OcMOet(5*XxBK@W%rx^O$#k@A{1CqTi}&;)qLUjJ zb%3DcMUvwav+WR}2-!9Wjb5Cw7_rpBwdmy{C3amyq7kMPr3Kg1kuKP)5=s1hMJKPJ zI;0pyUl5Vys#LS}jcM#O+g7dyVPdylQXPMF!e&1 z$FwFoxmaijB_W;9$;UxlXrW%1!^62`fnp7)bF#ij6)U!B$w-l23Jh_NL&n)=pyD)d9hhknLG62XN%BOo3+c_jFmOWG0mT73@+r~U(ggYi@ zs}R1iR-r#Ut`qJ>i%>*W!i%#R`MTvEaLoSdoIewwp7C6ZS;G7$oYi8}&DyFwS&31L z=kK(jodDjo6We?5y~j{&7%lsb3JTJ^s%8t~q6gbWRonV4KLo%01?R2?Zx^u>U zo1U`xnfrX>=8ahZU!oVM8fZHEcNIsMbyXs@JQKN*4|FPQ~IstwXynnG4z6_3Y^ zI~<8V0MJ@O+3ZxuUh5vZ)%u$bYB~^bvTfGMg}BQ|Du!Ib-uTRwXC#$qll#86K$M*X z7Ga9G*=*x?WybCUCXXmzW#|yPK5I1z+|~(T`8}2A^a2Tn?vxN{F2M5nfo!wTk?yA0 zX3h3xWf`+`+~TPo+-A-F2}dSB*TP8?j(#FcE#5cVmRq7m26Iyq!Pkl>=nxdjA!B9g zJ*LO7pNE2#;*X6sCcEbFI=B5wL?XamE|;@VQpCP(x!g6&7~=lz`IwsDpJA`K$z-{d z?F8_yo!I6@{M?LOT))LDC!BEYm&%!rg~|8v$9L(&4{y+uwzBm!OIo^Y(2d&~KVZN3 z#V_a|eD<@n?Bxd^d`KVO_^|sfUQ74wo;l-?2}M*yfiMN)9QQ`?Vm(@iV-=_|B(R6g zZEs%OA!KDCZY^SRi&1op%xv*knRm216m#nSQ+}| zFMnZ~qLzwVKPNolM$3*;9Lu{$DyYe~S2Q~-6E8e(_lkWV&PN|iaH!CX(tIw2eQa7! z_a=(i?Vzo8zlq0sF(KV*cMbA>05e6JxJl@8b0nH-SGYkXho(LC{Y{~+sU~%%f~z@3 zVa`gQkYd%wPlWS8KKJB&HHv<~yrKKG7#~s(@a*Wv|FQqUTKZd^F>*S%HUB&$#nkH` z59XmwiSnLoj8otF)1KsuUwefnkC`5d+xNM#5~`l(E6-4;l=dJ_dzEUZ$SBg*#5thu zwf{2qozu(C3wqa1Z1ZG4H&322l+saXJn^1?{smbS!sd4hRJEVqfByp!;B-d8t*0zo zzdJ$3c3Etq>4U)gzVq{U(s%L7i?}Wtw59b(M{U59ff*G@Y`0n#R6l}qmLW%vbu^@a z!VKAtX z-jMO@uf0z9@7))H>YlEQHlch_FO)#rOCpT*{hOgPIp8D$ImF+85#i?{YkHB=txxCl#Av^WTRc~df7VE($7Jo0ZV zf#R97^7X-<$~18}9opDir6NJ-m0Zd3OkFnqM-~z$RI@!B++;o+tqtinI=6q$X<>IN zGzAvUTV!ki@?Q(`Hi{mKDm7J_r2l5}@%vdQgucyjgh~M|d#1Vluq`VCF&U+fKy__9 z1iWh}wu6I%^A!`f1Z{bAa6m7={E8&gcsScry=@U%OF{PIpZwVCW1c3nCI6gP&eQE}~D4dtTFZihbP@y+)|VxW0^CR|JCcOf9j zQ51IM_mZNplnsX?^fT`tG_-majmZ0)#zMo6^vkPPuX-={%+aRnIAw(GUyu)2=|gw0 z@N?5lWU&oGUYded`QGiyjhy-%QUVRk3%pVZMNfOMsy5U`M5TTuyB0;(fB zN)&xqF(Nf)42KD+R#Z8uDF&TlE>0%Qxs!JWAN`JA4@$=1!Ir4UQj-I8T@H+v# zYbUmOf}I!dRq9dbrFmk%{@QDjPI59YQC$R=ZLz@4^Y3SW{nxQj(bM$F-)($uzMyHs z1div;=YY82MUAT+{ncOnzx0i7d;`}y+YxWjTW|d>wRU>n_*j~%&}^YoJd_ZmEO7A< zqhDF*fTDsnuC`sJ>Kxr9p$@wh77r{qj8w(mJQ=NQg#s`@Lt1q6;(%X!{1|DDciq;X1{@gusAko_eB5cKm8x{ zTfg;NzNq~1AOEo^6wWmgQQO*0Jvp>3zQ|6Ngx_s)0uglq%}zQQeRZgwn%lkns!|1~7+ zxx$eaXikuDb*5|~6oFWA&skYvFZ5m*6#s2)@h;7dM>Ylw_J2WkH+`u%{Ska&)@yt_tfNK*8-~4LxoDO5H#xZO=BFFN?M1A34+W& z(9*vG0?a;G2wVs$Ek578EMkFDm7KFYR4UQnU?+rmDIv%~H!}q++u0nX;haPAe1}66OiH4FO2U%S83rJ9p!vb*Xw4U`iX_YzI#y2nYwRSdP`qtZTtB3El2lQ+`TD%^=&9*-EGI&PgKl>T|$N%`h(?9;l-=V*rk@=tf z+5fXeFF5|%bRlj|5gKsvZh!*Mj!zPEdUzziZgQ<5xXJj$>ZH-gx76DNu3a(SeWeard3S)r?AY>+k#<7sSZ6 zcF0GBp#b$#7P`23_B~PmoZ~d23DQZEi<6v`yIspmA z%j-;AvJQ_KuOWQpxJfEtTzVUN>tf`EqE7jbfo!pVabeDgH0B}f#<(94ZW*2G+zh4% z$~EQ!6p;LTHAW7!HI+c3QWyoawIxRJ-;CbovxAW;W7vGFg{6s7-NJO_wX=svbkc-6 z*KjsI9?uu?@*j5yc-Nkw%@c6|3h{?}ez`wudpBnR%oFk+JK7{q+szh>^w0k0Z-OSv z?AM9%J1-{sxtt=u0}00wfROZXx}@_%@$dfK|4Kjl(U0ivjOZm+l>&vFMX_ipRx&%v zxYI~WRb{MBZxO+YMDE2G4DEX?B*pAdSd6Swj-WZGu%xWCl8~qd!(utdeL~R6@g+fg zzd#47Y7Sro;SD-+yziI4^d)-x=Rc<#AACrs=}#g?%vmbmXWW-u%Fo9Uv^Up;HQO;! z9uwQ2AcvJYcE#tEd)1*)3L%^YD>F1e<(Dp9_VJRuz`B*3X7s`rgP(dxeaV#XQVC#$ z))JzkgrG4HO96`cBln!+we8rF(viZe8YKa_!E>2C6GTz#l!Bo{<4X86qfJXP4d`dk zx+*@5k-!Zh>g~}jY^;j<;6zwL`4}Qw7it3I8t@8s$3wDOc=MHndfb-wEJd zJF$&p8(Xa#YujXAmE5=@lGN6elzGQDo~S?h=}$Y{l72mQzj6$lb(#>~vKK+v6+1{X z0eI`9TfX2oe{H88E0PG17j$Q(gi#o(2~C#39breRfiIAlQJJIJTtRC|yyKQLhqBW| zY2XxjLZli(=J%*E>~=R7;1qCk%ds&A?$E{8H}~h#rAze2>#x(F{-6KXY4SJ9`mLk) z`ILct;;gn6-Mn>EoVYT=jjk>~M}M(7%EE1LLB+F;8pSktAC#yR0WhSpk2Tp%lVIW| z&U!YB6j9CN+yeP_sJm(*j*I~P-dG`kYM!@QaO2)(lvhlMM?82?>Qo{;3;nOf{0MB^ zCd-T5&9_p#?B8Ul&XqQbeAD$r0oRouASJJiP3lA5z9^U)LH?8dEsKG7ftKdj+Lc1Z{DKozxowD zZNvG`DtNO1?cOyFDJc1u?&WmUi~jt{pZp1Z_q*Sd&v@{&a8ZP2#oAM*D$tLmL_TSa z-<@f$wsM;AU^;MGOVbxBQiEO3ok)nxVJd}5FjAPPKW~X}lpKfLqi^aM3K{izzw_rW z(1i;ZPaU1i9z?C-9^E4k^X6DLy496|EPj1Y-ZuBjN&ugqbCUDo$^tlNW8&roE)uih zT`~a!0h)!Q-uFlx0^yZ4&szIbj``q@sH_R4nJx#Ff?8XocN~f*$H@~Kf`)C8ZjPX2 z_8?XC;OZwXfGsK?>0z{5R%U15WLPK?W_Y%?MxAni@rF=#TD~czPIf*Co0Aya;@9rV zih121wIiS79%oz9IAZ>mSgZIs$holL1UHxy73gp%B=XF(xSouxF`jvPIn%Um9!D%p z$!gq~S42Asde_d_*yPbYjA`*yxgE7FACc)1-0u!cQD~HD5B>3#>pqHT)whVy=mEGniwyu zVI6VP!j^c}5vES3dotFeLmmAuEy77qS9#-{HP>lwTaPcr2PkE4vgYHSoZ8ewIN9P! z>DXz4vk$VE)vj0vl&My!tFV=Gdb`tIVhBLvqFPz@qV5xPv_QdRH2FCAGvB2n<#Dj# z5{JM#cs#rRUiu7TdTuR%fNW>bgxHoklWek$Feb=@4aA@BM@f~%pm-o1B+qU4l4h@c zL!L55^M8z*p|DC~4HLNXTr^cAa$*l$U%sD|6t|%;%2q=cKy<$%3(2U!@+!kyZom@Z{iGAg8oU^uOLX1kF!k~~L91~hQc9i>LZoR)x zfRelGBsz|bC-_${>*+#BiQSVY@<2vSh7*ws&Jy;0-VFC7+o9d*2wv?&g#REOy{>B) zhwI+RO`j)z@A0yhv}3f~-r<-OV-J)H=QaphB+&3wjD`p`>ys5mAa(S^?SsRgAD1Gl z*^p8;@|LV9Lh+FT4nyl=^}RN=(L?+q3TYuX!td9h1vr#m=ITpJ8y2u4$(l`1dHdJoMtffr#{ru-Yr+%5lggsL)&a_pwDV_~wwPTKP@*a+y z;UP{sHc0LO^dsA$b|`@|24V({Hbg#LGS65nq_$9UDobuo>#>cDZBu)Dj%s?Uv~)H;f`U@yO*%m+9j>cj)9+63t9OYeRrEsA*55hHWC-GYemO z@+LyG_N!;H>NdDnOZu~;9F20P#8ODi>oT=urncdkY`;Tb`lVN;Z`s9)5gsE^brdVU z9iFVJgYPDX+&{sNCS*Y6ir^TUBT%t{(-dfv=ksdpo-Z(4Za1Zr(o!!>sx&S8P}4D% z^gqvQJQvxS2{zhld9Wn|77IMn!f-@p5|)WzI5&VR!xB4ReJ#t*V|j{6zpCQl;-P^W zt1stE&pZQ_QA!-@v%I%TsVL+6b_jUa&erz!2AMmL9zLQ-)n_!QhfNUO=Oo+!dYH&Q3kXg1_ziGww}K)9`Q#O-PzqhmSPcq6Df_3$cgu4H7~SY2_5r z*4JT^%<;BBCj9gP^L{R^Ll&HjWiXd9tGb`g&1fNID-&2JVehc0Y zLwOnu zVIJ2$8HiBW=FvWk5TZdpk7Y3WTgS$;&aK8!BFQ|%!5W$OwAhO+#0m62uBZ8A>~+Om zF6do5tyP|Y4<9`++a6X7a_?XM$T7i3R)J;NcoP2EpZ^(^vT#Po2A-#Fi(T`=`NW5E zNOSDr`!7LG(*8|ukqSZl!0EGhO*`Hb})Ls_|uaSFL1HE|~(jkNkP#zGl_n}3>`LPT> z-y#cE^%8zXJ12^u6g(J8tp6nhy8CtvB`JM9Y6E-Wbh$YVVjKtCAA;9oeC_g)b6JIG zKQ8bx#yN%NB}*r}zvt9Ao(Jg*3MWwUXaj;HRzj{Yui!e7F$?j&t^`A2!aXSD&yhNZ zWpo@K=g7?tCoum<tfLoy|yLlktQUtmy&8L>gXAYZ_Axww4!ij5NH z!eTrcC3G3Wc$0qq`)yeW<8<2mhRz6bMfDl3i(HhU^841QFUd zTexeV8gv{2J*qI8C~UT>XhFzpk%q)r5OwJqg>`AEcmk1y@bzPue zq^vwjk%bYy1$utWKPVC6@Kv=)1U$w?DXe|oX6%;*JshHPA{jjIHC3~c^R^@mjS+yL z)smXzA%UT+L|*BVP`L|EtLTLAC@2+C{fL4ZH-!rhZ-_LId!LsF^}X{!+zH@aJF(4^ zkG-$7#Gb|InKEaxSRa&w$B$+~`~KEr{MC>DiVhAB7i)Da;b&>bZMQ@)-J<&>i@ZJA z-2#2aV<_?=7uFECK&fkUV8g{XY)VLtX5)9x`2ifGe$a8C_Zv;R#CAC4NhjbPV|ZM8Y~^V yK)2(*ux%MNyOB~8N*K=TeWpl8f?Opy?*9iFM}vAnzLFFG0000Q>-vN7p0GF+qP}nwr$(CZQI6sY}>YN&G%<+=5m@e=|#KS?6fOS)~=GIm>88T z0D!uvkb;^5hXxb?006>&eGd?z91uWIMnU2T0ssIO2h?_pfzp3-2R|Sp0{|~|Pc)Fe zXQ9oO2dmB2`Q~UGaZ9fAvc++u&GstYcB{>HYwcyO?WUxN*jv|3mFcZiWEe!iidZrs zMbr5kaZiOIV)H|E7{uV>uksyp*xb4k3lFYb{f?gc!rk-U%=|`>Xw$Y@)6N~4IMUa(YqUu=Io$y6KG*9w z%>(&3V_e;O{?2Y3&AX{{S-n@5BWVKla%)zPj&E46&-wbwxb`}LB-Hr`vZ_>D@2HzX6OQy=x(wNlVcNHG> zv(Ei-0a-Z=l4(=h?N@WEd40v*_fA!9qxiRt`Hu$k$qPB!llcoep}okrNYnZS&IUys z&FSiO0IMF++O?W?=&?mjhIR2l49%gZAX9f^+fEd`+gMeG_fIC0Xpl(d;(1&4!vKtP zb0a~ei-8qt zbcp~uZ}ND0cdk}D1u^v5HK`RhcD3bG_OD7~MHP+7p(yf+lKqu~t}sncmqVsR=f5sJ zYVal9=uiz8MWlxyk2W8J=H$E|Clo3)vk{@|vF22-=A}tbLNvPt(Xr?fb+$Ec%Ii4V zoF)kb`BW`yaP=kO5g_`m439{q)`dEBq~u1U1$`cp%q@tq<7xtfAzBjO%fWD2 z2zTFOrx(VK4(F(6(>kse0^?4R2Qc0HL_8wDqZlNj6POe1vVI9CG3S#mr6QeyoZg0@ zByM$!U67J%Z;-#mzEaVSf!ERjsZ+24Sn`(h(;%lBNIi$3cT=&R0&)s`KzeXGhbnoP zEZ{8Y865Qoh6qmYKw)9CW1w9{(^0;6X}h2-UIE6LSm?AAtP_CPe@98z30TYd6EHaG z!(_`DYxqG4STLW%8df?A=6MXo@4@B+)49MsVi}HujRt1Hefs1d9T$LNm5zg~%M{=h zTyDOj+-2v#BQ^-9I)97j4ZyIYaSH}PX8H}3#eR7YE_VfhH7WeH8(*+Ow`(_Jk8irsG@}Sc+zka#T01&KQ z;1N*F=b#;$->g!x&`83uhj+l>La~SRld*Hzcm+bS8_*Q2`v3wJ3-#2^zef9Asu_xK z3ZX}zj*Gy{p0yCnr@R8F%QT;#M+FOWSCLzj#skw}{`H7v3BYln%;xa-fzYgOa0X_B zF<`z%uoaTe)FD{B06mzjRKlc29&O=o`4owDJ%J4c}x)2JrFXa|GMXZm9bq=^FgcZjJdyD99jj_cp&4x z@-92QXVyrAb@tEt{t?q5FGPx!$?Y!O_Yr!ss+ZgkL7NVAaT0ZhSJb{3q>$kW{G zAQ#ajAHoA$u_xFYS}5bx?7`Y;;lXXeQF3b^!zkF|f$ZH;bWw+Iu%vckIVpqcAjfpO zA>9#NlsRskRG!vY#kFQ#yK~&%ffb zPaS_*Dmn>q+#j_-j2N5|NfjbCvIiW~<(VR~I`J^JQIGVqg|r#Z!cekm(y@aFcPwV` zjuJMOF1zaBk1!%#;|F<`^a} z6gzIC6(gY_OJzy{@wcQ%Bj%d-7x#~dOsrfc1?gOUS!mNSTyg+2v2w-7ReW&B zlNIhzGNatQ;1=awDhF^09Pk9wNm`Z5}H-?yY=^=nfr)Moig`l^qq8 z`DVH_K=UzGTp(IwC%FovqM-^+r1BJ-$%rt81Z75*LaZ1PAs|SZ2}8WlkTs<#uuut} zKUgy(FhSL1VI55gB8gFg3((G9r{F zO;s>itAS#6!4Vmy7JPJcksYNJkpWA)$Y4r!ymF|BV9LkGRtN^mRmRtJMJgDoL`qm= zHvM#yQ4v35CdmN)qaOkS5deUB3BX)Hs(ru;Kt4>EP$5DPGGr1E07F{ZJz;F(9ws7s zpt%>&Sd;4O!b{soKjW>xwxKTG-W9vGAL$3{E%{mgj6dWL_0zpe{KBvHpN`*;@$%h& zZ@eg9;*#$R`De>?E^eSg14zpwmre;Gfe@5bNo zxAGtU0e2^ROMNT;?mruUsQ)c$-&1d?-;OuNUt@UcMz|g2T@QC-ydCCljCUj4iScfP zyEfj5a5u)g7VgG)Gs0aT`~ROb&w}2OEDkyvaY}{tq66Q)gA4V&tx<?z>l*Q(@M?xclGPqQuUF>~&lUgb-fBuqDB9-b;UbrN7Iw?xx#5jSZB}yer}> zm<_*%3H7aNio@%40ZJFtcUXhfwZLQSmn6Qs9yl--dV~^wg}VwDJ}tYw~X*p2zKt+(P7DUAJ~tkw~XdHx%BSg4xo8 zcI|XA%nkauO{xMOV~<|~MnvdV*KNz^3ET;@{G-2?uXVDXc%sZGiz69oTgaP=T!N*s zf&yKw+0N&f!YTLQ|6PocCa9|@9iaBAbD!=k^f+EYmF`_OH=r+xbptZmw6-(Ow~%h) zpY51~amV(aT+sSfq4Te&I%GrIX4uNJPR1fxa^9fdw-ejuP_U`i5(1D-atGQ4#T0O4a zBZ)x-aD+hVo5Zq=JTgrvSf>}|jSknmV_+fg@d$poJ(d;c=CP{zfZO<3{Q56p7cfg! zmfVf-{=34j^xqy<#=^RQugHuMW~`Q^P(3Izn{EZ0-@R?hVdy&sgSiX}TzP}@*|80!(Aq@qlTDY+(1RutZwc!2k-5zep zIZGa9o^aG&qmRDyxmAo}#p;l$2{QL2pGtv_e^SZ!_3fk3K-m$$F$HWMmvZ5InLcw@@hV*l(S!&lovb} zxNt3zfz8%@WkSIV5@!A#SRh839HO9Q`c}`bd89R^dK6^Dm-$XD z{Nqg9G;iMlds)n#jnuvI7OJ9nj$-Xz9fp14c7(F>xOcR4F|>|G*i z>uE=R#MYjBI9cP6N&YMgOsrvcuRKHX6q@QkBxQ@SSiu+qivEJSUjvEbfE!oV_I?~7 zUKKGlXHRx#Hhw-44K36juI-Y7M&$*dz!$HkInzU1`TKN<-GLK8|9n4q>eoH*Q^V*>upJudsxc^8wP=ZV~?ml& z69A0icsxQ=qxC>IU~a_o?hAiC-g^#^Ez}SbRgoDiBt6%C{@vEs`qegj`GZN85#N1R zHViM+Se&~)R^}*baNv`9v&#%{>f$}eqaD55QZphCVItMW&kr`W@!*= zkhK$I@!2J+Hrjg1YF{aSD6TjDDBO4XTu?r-pd|ZCNy}K(xs;nh`>%MEG;!M*<_mv* zo>-$|g4l=hLusv79Ys*#Q2}`*xCJz*hZ@~BZ7}7wkcs(fNKm-2eh>w5#z-hC{4i68 z)NK!ZcSdnk{XcGK_hZEAXA}2O>yb@QIh3!5`YZ+C&G@*zpUE3Y3pIDf=2J_U`hvcB zt0Yxn*eXruAqDd7fpbKf;;+|T!a}Oc+|)HN^rd*N`YC6cINxoo52NT(kxdCS#v~kR z5oMf^%8Ti*_dP0Iz{<GXF=oeFX{gE@~~I(&Tk6j|Ua56;2tX7J>=xZH*}+2Q9pX zF*?M?JVkSvi|6#&pGMC@Hx`J@Mu-cn9`u8yZ6T(HZ%Y2uD}0C^{`@q)=QCsUvZQfX zhga6(I4b(crv#uRfUuq+IR6g!#A~hH7>h`D)aICzsGJRA1gvtGw-ju3sI_vHmHv902;mUm&o9`jfdG zF`wc367Tc*9L5E`4J3l*coRe6?3cMqXb0Dcb8d8T9;dhs469FWSi)_QWOq%As71P% zQ5<}-mDn4Da1~=~VBL!3rS+3ARMBvU{H4wJq3A09sXXujm@gkU|B&v;3W(Q9bc#vO zQ#J(Y1vP}V^igq2&!%c~2Y4TErot9V9`A>KVs+fJ5kT{~*bEBg z&+#rtTk}udQ%MAyjN@jQcB)dc;d`X(u@6IsFZ=iFf#2J>?rh>w)@bJQ<$l2LyvCXM z7$vmkT2sT2-Vf5;KD#2_oI8;~$EVLSssN;pk_0Su{dYH;%f_0i{OBX_Z4%$C=STgNQE{l5XoBxCOu64?C|w6d1}*w=HgPKNqtT_Px5j3@ z4JIKn-FA?kPov7CSN3K<0N2vhZOp)H*;FF(Um*KE#L09Ak{4f+)#;UYg4!;!xs=q%5cp!0O=%{H!kl=arX;l zlbvfEEd|M(@dQS&Avn>}%hoU=Ffqe~6f|*?rR5ZwqB3}cO-9Ul;q}ngN{y!HbbQcP zihlH-ly!ZhVlc@vn$c9>XsUDfQ-ltoA|wkwJV57$Fq9c_CD-KAqQI>muq%H(cVR}k zukG^AB*A55C6B@p{}NRUZQtpMmb6+3F-<1CTMb(hmlCj6)-}ZruF~uURx%@P3`0=G z26&fIJ*O(@v%=%RI-d6^*uE!=ojD15nN%E5DQv;WE#EK_n#d&{Np#PY->ja4QBU z61GpE`-u6LEDLyC=o5x&uqhj&(E%C^oHQfJDNN(x&LZ2S%DST{EQG!dKl3OuQ32nn zekGw=FgN{|mX?6`k>i3Wc=BoekHGc-SbC%EYdgDE&YGtw+j1@918^NamsNpsq2}SR z6+`RW!ad2y;e)P4pS37XPFOfYShbSO^0OvV#K1!%0FOCBQI5>h5`3jn+e;~U>y5lW z6bHDyqtLjCpSR~m4YBy*%74J=h~V_roW|%5WR|^M1|>SDp&vNm#r==Te^eL2Bq)#{ z5x}y(?EE)?aC^c5$eYA)@PZ=IMgRe6&AkN@d+gi)Pi-l>Ei!zWOe-1uEF5Zj3Y!WqU?)08OLx2*? z^C^blz)ge`i*RxQ5x!U&87vHlA0vVez6NRW$mknnx*`a2wA_j!ZK`;txID_)^*{Xi z@jpcON&Vgq|C(21Tet-gR zf$88smKJ;X?$C-LM>JQic}z$0iyO10UsaS)CLA{-rY!`+A>7l>K+ohhJxl3vrP4oZ zV9|AO)T?I*U8#b1&Q#c{7j4G#`iH!N#xSU_zim1st$-7t})l*%e zMhhbgCCcgmA=>oJ|7KJijqgSO^9mDA!-ERj%&v$Ev%1XO6wHN>_rWHU`#N{BOO9hg zU;i*xqkXI}t{QyMPiuK0i-rK-77>r8c$Wd?fzi0=Pr|ohW!>jOCTkBL~ljb&v+f zE$+|#xQq>ubF`p3p29)!f}90`>NRcz!Rv1&Fj7GGqgx3^)cvzWifwscL&uZGf-~3O z7QFIUpMS}2ZgawNgm$XjNfGn|VTC<(HoHbtDOn$H>+TO^rQm~OZ_$g`FLb8U+>DtI#iyasg!D-n8C#et zrwPH2)QU7~kMk@|ediW%&|MH+p>0+j#x|x=yD7n!ab2sdqBr>AhT$qToWL6$THq%r z=RffyZWig4$K(LRQ9ghPczVZ{B*fa3UxFy4NFeWC$dEUErxrbur1&%yXqx7JMGHB2 zl}sjN%B{iPkl}X}QZH`HY(Hb1<6PN0Q9MCH1#eMr%0xg2h>cQSv$r|{?Y|I*JUAk4 zPyxUeL6_`r4kL9L@8cd5(u=lX?z6XFV-FG1Dz)y;40GJalMs-0 z1DNP+uk_VcSC}g*v_1gD(TI4^;^V7O^&*{*U;j@>%75i2-)_{=9eAt{> zAVTU#7JJ!)1oZ9qu|Hh9KxE9`gr?0vEBg;YT^W^c%YY0mu9FVXEv7OcHkF)X`Y{Qr z7hsw>t#fkl{Q+i2ieSiEoDFCWx&OgvjbN5BY`!#lkAfhF^RYo!qSLAz1sq(KeuYKz z!#y3ar$0cHhX^KcH<8mg6x2ub!MHEvsgpH!mPkyD5Hy2Eog8#rkhHP8sy;$b^-Do; zdKC~0G2%9*oxBw9RBc#4vn{WjwJGDfoY(iV^ts6Zt&>^8+B)Q33B+X*S_`V%fbaL~ z0`jhP9yfU&PQbfC^lanyu-n(UEkU$U4EVw6l-_YkFWUqMSe z=6Q~yvmCv)uzCisQSKP46O?KB_rNxT-YqVD9}NLIqEl!E_cDac@r zyK;aFR*E?8PmZdJxyhW;@LA{<>`cST4moukKl8fD^mXTski}926=twtDt4XJ*1$fl z^CTJc{G{2K1HtH0P{-5Zh;1-;39RD3)wdv@fiq7jg%$)FRNBs2Lh~3;Wp-QG`MtmX zhjE$20^8k0s$U&hW3dZptDA2e>~?i2tiwhOe5M($V2zUhF=s#rhl|#7uy|6j6^U4G zwRlmizp%s&-BNtN(s@o1MtDz^HL_F;;;92K;KnJd&kTpp4V3NQloDl9Y{UT%F$I16%&r3;-L)B22D{r)b(7cWY7^ z_%p@oa%2U2`tPw!ebn>ZewwNO$rtbxdE@N$i{y{g0pu1eStSB5lrwd}%$fN7hkYLg zsbC&85!WOSGuqV<0stR#5fu}q3{;pSYs-_=fZv<*qgEvR0$TXc^ZAmKpohskt?u4&f>Z-y=o>4)o zf1|l8!kmBl?Ulm-2=;NOWM8yVf=LrCKQxO*FA#ed{rK<# z7O7M_%1*lIEF+W)`y6mffmyGd-<2j}xi`;YsFwAO6G3A@So`2n>9ZjRfS9oY{NNaz zmNcdXJ{Z(3eL#XwiX$=6WVvuT*^Pn?hxQN>l-P1k#xL*;lQJF=5f}1lt4n&=JW1>3 zA2y5Qg*9k;(nZlX9LJ%FX*?8Zi!=mJf`?7Ss0U`&FDO)onkwdLZ3HC`hOk=H!r(kZ z)aJnx9Ekj%>L`*#B!=WqTl5&LfVKAS)~4pHq+~vuLvXP{ktTclo5llsB*QPcB=nMILF>1GS(hwUhufx`3i(?w& zqq!}43~W9jH{>HVcS4RB30hP-y4iUJ<8qCAW5f@&-wOyTK~HY7do)O=L5%&o;-siA z8_G6eqJj|9l&isYRwb2+>`1`)iM6rcs9r3*C(2M_EVLJxw9n9MKNn@3*ndS0fNeJ` z&O{}BMt?WX(~mMZegZjVZq!NjX_Lo#^!>J#x5}oP$WXkx#6EOF@K?ZjAo5lc+Q*yy zV6-qn@-jsITZs@x|luw$s;RY|2*WDfXfx_TkS=*5qZ1w~M3brdNANZvjv zMl=R*t&%x37-Wgkr2?;8KwYL0W{9*wHg$8j*3Nc|SQM3P*ay_1)^q0;Z76qNIdX9w zDQ~kajCp&FJ`Yjz;_I2?8TNB%xB#O7lUSTZJ7b1;`AFe0uS!)4K7ya*9MC}<_3!9m zzOtx{y1#~;D-iJlxuzR>k1@?tuW@(t=O(R0im{RFc$APFn??q52#XxNRo@;T_3iP) za#Pg~4hNqr$ghB-OOCK*k6~;5)YEo;BZ{=#T__3rC1Sc z3TOp;5ou|u#Z|(KHl1m#qv@e1R?50u7|V-Hq35z;g3v-;^hfs`zx0C+< z@O`8jM4Ca~pK;JoqArI3DOU0fwLI@jJWir|e0xm4?FJPLBiit8KRe#-kI)E@x;V1% z!bdn(Zfbj)&QVT(b#~7>iG{zSzEhU!1@oT~bYuBLtFH>aOo4Gt)N4SxoRyEm!ruG} z$*7kJ2-rWZ(FebF`v?Tz8U(|usMADmMThi}vVKu#c%+hM8d?*vhyCT%)a@gwjf$-^ zfFl$*n!NuB9&ut)OFlK$tb^^GqlO6dIvtty0Ah9m*uGj=8Qbr1jX1Z3KY!I2k@Z4+ z@~{OwVrr)^$E;x5%_%U$2|@cP!ys3XTdQV%li0jDW6$Jq5hZI|8?fY<3tp99Om!lz zb*e4OGtV#sL0<{y{O4@>=$Cx&F^0SE@{*lD*}4Q1KBQ5jz=!aye`{U>C=Hk$RZ_BE zE-Kr9`L!+~NGVC;WKw$BDSuf_4~LJ;p4i|6TM2>UPC<4pOSxMvPB2wdR*P(_SqXWW z&Z58tlp&6+`L33MW{?a$yS1~I+ou>((xqkYgpq10R>V%#e_@&OL2zkRBqj`Nm5b0~ zPa?9uC5q{KiKUV{TY`9hTzT72N04A&pp@qc>okTUl}REv01Py0qToRlD&nx$gdzA} z?ws+=wKhsL^Xr6uEUjuLE|@1vl-03*lwwmsIAasca}i%(c_mj%?M4TC-TdFe5Y!47FvGxco=j4scP5MVm@PGJum z&Lu*!;spHWxqqWhBj=_+pUGFPZ51xJLZ?Km+X1SICdD1-X*d>5^frK|bA*7_h|8Iz zbN7Gp%hJ-Z@@ld+n#@2l!W*t%*B{2ctuM3vWU*B@OmceAJo0BwPU`=}!rP_0g~#%m z=y=*1bdtJTBBCKD$Xe*%sV;m2zN`yj|NW77cP*84SS2oZpW1@BjP#n4vU-bakh3ob zYo9y=0>St?cermj3w{nHdl;(aG?gDCQrz3){;A5+=)e5R4}GS7Tkm(3>%j;M;CozE zXWk-KuB zlRJIK8a6(MJFm0r31B3uvF|Ti(OkP}qtn$7Z35#M$y~blR1Q=!rkcpjEm|vqkDt-t z`n7^(4pp3Ne$&5<6+p-E^B|O)N=;MQ$V>}5hl`B295(=y5`@e3(K>-c>RUgSxy>(~GDN#!vCDtM&C%ld^q_Qbj?+IY<*D~%=&*GGDh0=$gSTuD_l!4w z-ttW{dBt*u5o3SLSc;;+_}bHHh|z`S=rxPV?wJNB_@%(3WFUJzOZIRhpUC(&Q zbo_MqJX$*CTsWsmO97T4HkmkVM{R;HSQ6MV3%4g=wd@6ytXD5c3QUn8KemKc$Ogv& zo5OXvmQ9^YNkP2o*mHU+>)1G z6Ibd*n;e3;zyAIWB7|sjNlBITfs1!C?7kCVMy=8fIB4P_q0x7<+gv7O&CEu*z9E%I zJp>S&Lxb0Hy5j+4b2YY>3cwz6w8$nJm=Mx4(tY!bJUhTMTr2G z7CsqQvHIuNBY9-7tw6C6=UO&hCy)UAME~q6T&#}{a7_u&2?5Ig$dMA)6y13#;r#5w zoc?Y0`D$G-EY6p3fI*$#nbh8?fvo0WxA8 zV%s+CRl~Gf=S@uew$@W!&*u#hNg&e1K%FM5bGOUWhE1Ec=IAfaB!HqfuqXmfp|vZN z26b+1W57UmjuVI&4f5C-IenGNmG}4_3%pOnuv^HLe>m=)SASghxmzQ0U3BPK$=xh9ibf7A{)m%inGNQt%({S0$mZw8O$=n=0g>sS86wkd zRrPp2!`lSVgT)X|S$;3jQ>X zq|edQHG#)&z~WBn+J>NiTQ@Q5SZk4rIYz^9RrG)K&3;9=y%ByYm&LmD4qZQ5;MRDV zC7MTqLojZN`#FOTW~M)4oYdJWtb~Jbdtp^)n;7kAkVs`48T1-Cd$EZSD%CT69M0QC z&ekvj4#ResEe6?9z5;G_n&z}FkpnI5uP4g~feV(2hxt%%p-lyDuNH`Qr&92o(R<&S zi3uMIeR%)qpQcgcO1=q>t7ycdl>w&FIO^A@SV8-jE{Sp3M1wUB=K$xhU7wL3zpalsoWdJS9013Tj%f{WK!6)X@AS|RoL^V*b;2}@PVw;NTiCd; zq)IwkoKZ6)+HPWfM_JTslcMAG>J(A;2Nak_u}(3jjP%07JA zxl;<{{^0+*1TWEltntlWOfvJiyE+J)X=9QCikuiXlK~NFO#qE!wSC(u@CchPMGGgW zf4q}}Y*w8J*N|?HX1vEl?CE7?olDcHT9EkYR6QTDl!E8zy=gFw&gD|(_wOk}SMO_~ zi$m5O~pGUa_)gM(k&Que8m4nmJc4^4}uc#D%l%Q@`|2GN@>PCs)dZ!j#GRd;<) z30lKHD$1}{h&ZbF-P8eH|6yN_Sb~%^F~&XBM$blQDi#B248xmq9ZcyF5jfKd{M4j2 z%%D&a#IUn2J^su*`mW4j1<1VEkeE>q&=Nk_A$Db=C^))NFDPMOxVWD}_B-{dO5YB| z+$@?fs{$2{We`qDx6p7k)xA~Vnh+1K&lO%`H{JR#bjR22iypvR zF}f_aqZJWpkE(Kz^)*wTV#qm%ys@Ot{b!wNd8m)Y>S_ZMRZGE5xG4}ZB?`XpyE4dU zX#pmXh6aCPd6_=+ksXG2J*BG$aXBOdWsQnbH1hs3PBVHF0#m?Uvk9DIKS?JdA`ZJ6 z&D|T9*RAgFrD*U1LIOP=#eXi{s;%+Vh+HfsO_+GGH^`aV&D_-sip8Y{Pi!p>a0jY7oO=w{Nv4zSDs#k7lt?C2%^-XlX9yreHEylZGlns*5qrEm^VQMAZidB8p7YiIBeel;W>DW7l)C%(v+XRr;Xf>gh z>|-vmgBjWp>=CsH?$GIrozW#xtBX~mMIcBb1)IT>KK=0i>no7LUMb3#DjF3W2$j7C ze=X>Ikxo6x%Q~xCcO%oL@vM&?W(rV7K~L<<7|&GWy>nm{f-G?M(*|v)RAV7y@!ilr zFLP&KUTy$Hqxj>EmTfiiJ%r*jEf4Ew~4$_ zdYqrITg15}1ttq>)Y*vZ8#-G)_IDQ&BOeByBtO7(txh10Dtw7&Nx-6KYR39;_Ad-* zy_hj`!xSICF)J?*(9q)rOo8lLkrf;K9VRAWyyk48o4ur70`@3JX6CV<&H$lp zBT8Hmn=}daG&%kWtE#ep#92_GQ=(%C%|+(7mTZigC5Hknuq>;)0_g?XOI(wRf;XH+ z3rZXWsk;GD#FvLfpiq=c!Ap}-CWMu-@+V?+ByI!+r}G`VR!Y_fCX)KyUSwWj38ji; zyGZf1PXgH@GMm(*E_Qf|s{Ub9IGH9{<@v&c5*f1lm=1AgWUy6g17uI`_#=vaAM1 zeV^8~W2_h;K*R`a_2YChC3Z|y=LwKJbU=^es?7r~`45a>>=)8NbZ*I^xy0YVov0=T z@-GISyM~FY0Z0vIxD}+j_v>fIWQMJGWTuG9(rHU^4&OIpyd((q6Yb~rSpQ7t!pVKM zbyb;GU0YuMDmBTzbG8eBk)lqrGfIL}Y<67c^N+NtR)A#DXg3*!Fd}tt|HZIF9W(iB z!UF=Ic#|5vC zGK7@3hF1Zyq5oujCF-YWpFEj7bf{qJXg4>uw2c`9c9D7ynlN=f;f+Y^1y8I8Ep_*A zJ)}8%zKA60)z(*edW>HMEHVklWbf91#Z^ zLHha!UC%K`qmYh>(`#wgs#H_#H$I=+fBEW`u`ZvRQ>zmC8GZ!HSg&!cQ$#My)Mu-V z8h#yRwttFZFAOaa=XaTY?NFzy}(x&Qs(}>cdN|*3~O*eoyo!ay3R5Mh;9sj zVj0mxQ|AIsX*R({Crly}NNIKDN0L#+b7PT<+_jZ!>H~za0-b+h8+#nY5@i}Q>I~z0dldVl^ zhX`UV+aEn&jF@*`T!03f9kmxC!_CW&U~orAR5vdPQ-gzv^2<`Y|M2*mT%Tx{`QvjA zyy%Wn)`m7i-WEbd|Fo=#5~^hFg#V>oC%4YKDxx44S5HuHgAZUJ5)D2U0D8*u z65>q*LLP$jH2Ub3glJF6Yb+_B>GJnf?0BT)KwV4Br~if3^Lony2M_Bx5%S7=nB4TT z;_&f`vV7yq9m&}#K*LM=C*DRu+8mDfGP%LL%C)FSumi>SZF`q ztD(f|eRU|^+qTs(lrKPOadCru38-QC=5e6!+sEY_?ZUW=dYWT0>N37CURtM&CUdwTjGT$-c{x&HQS`qj+hHQ;;S%7^=!e4S?sTBT5DDS)`y`{St zQ3Zz+I_QJjip(WIes<@JA8*vb@5ZmmCEyg@L?>&yxG#-vOlu4_v2Z__;dLT9VyvlV zuOmAQDc;$3(e_D%T74A?2+Y!84-|k@Tl0bjAjO%B{k1ZNNucCRwS;lmH5MW;^&#`L ztOP2EY@`_C)ds=`r{P913}K>{e`Ptb#m;py90st&*}PX@c8@+h>KU(JU=| zHgXh@EaYwl6j8Df;O)plDPav}j`Y3co*@T9!9_4;8lurXb^IA$tw`!0U$D@@Vd$#Q ztLR)jS9vtojkKCxo=cx`5EJq3x65sRXwL=%owQP-2+H*G0Bpo$fn?cc^ZgC)Le%uo zvD8o}tlX3fCp<*st8}%oI=?YA+EDl9AtAQP=%QawG@H@iS2;)aNRW3QlPkf5ydu0x6iRnpv#$Oz;KZMgjAat zn!!FFO1i^50Q7ehvxOQ`|NAM+Lc$7+1n%5F44N%Q+3!-8yXT_V3Rq<`eWyI)>T)qm zE$ai0H>A`eQiD}9{ zYL+}OlkE3Vo%>`RXlREY(&Bfc?7~x5$n>vtc%tNwfQ#pu5EVxu(L!S~1E($2*ct$w zGQV`S@5@u~r*ll~`?oSzs25Q`08#XU=9DDku%uYL{tqo6{#)D%!I&7L3m&|6&1-{C zMLQl@08U8}5dFd|zvcOCX9cXLEfmjJFbvMiW-eDT95!dSIFS#za{uI1D&H*O#m--? z2~x9cuRG4)eoin9b2JPraJKUvtTG0yoa$~JQL-#Wxj={@Hee;EfXq5cNqH$55Q%MdROs}{3e)8%|CG_Eu}5Zm8DLzkz5L^g_#k%<7h}-q z>vzQ(h3f&>PUp|s^I!~jWt8S0mLti6EW(U4quVbh0%KB`Lv0j!SH?2=KptT4x5)04 z6aZmF_Eu9UajKg_fJ-Uw;y^w)3gIdRb%0g32|=nhR+Vv}r|g^z5Eb%Dr51*`37yGX zvIy>8FT#Q*FW0q6yz+`AjPHy@x{C4l>Z084O6=wo_(}# zw6mvGo&fN%`*e6P6m8R~Tv->&#ae1&dZ(Qy@*@ubPGsnpQYlQn80;!izW4*;FxGUv z;AuIJ3_h$(L{mFh_)pjfQWtuJz~Tw%XGXz}WgM{mFkIOA=Tk0d%HB)Xb;|0Qe--nC6A!OZ->hb#=T{ykPrH)%A08j( zppY=&2@R5Nkwql|ufXoxvQXY%s(%^KAm9e@M5jM0K%!W0VXdJY!SsY-DRa@ZUw5!= zvbrX5UF)z>{#9S!Ze&lg1vcLX=bX~V>(6DZubl*RqhDx}BN{x}m+PN381#0PIR*YP zPqO7{wFaN)+4tVEe4;rwScTrv1Wo6F3Vg;KX;tV-+CRRH2tPIBkZ#1L%VX#BWHvXW z0c;pP&{f1k4EGD6_x*6AZs8gbtT^^?Z+xk!k#QE8@d*LOEf^)=DJ@7|#!}3XL>N69 zxTVCowWlHt2*1@@k{ZN=+swVy(N258dpsCA%rG@}1EhJZ1hyJr9{h zl$3D|E2+(kCvTWl6SNBn>6m~-FW9~fT^f?e)w`jblZRHH_rBK)3N2=92b6>mmltRbeK3h{2R0j7qGme8vjOd2ayFr`(_tVfV%98@U`U-WlX9A_YHjy zjYakfhm2fLWL8p$^AnscdX!V6-n@79qyGA^vku;L00eT5`!E$8pJO!Qh=Po)@R9&u~yV0EWuK3RnKk9zp}o*lklubdcb zjSKu=|GgS(4=X?O0@jcNNl{=_Ah4Sco6aq7u>Q{?Z#^8}{4pWV+Iexc=3h|SgYgY& zb)azmFEGQW3`U2J(k+~GSvmEw>}nhKNsT`FC#>**zBj*6$|d{)X;4|zTMD?2G?n#j z=HC{X*1GTP>C?QO1O!6mJK)%M(S zPX-AhU$$Sr5p_1WQlt$ubdV3A zzDaX2|?qGkoJC*2~qwC;h>_3>5i$Fs~%8~x#AdNJk>V?mw6YK2uO>m+NmL_f!qqnQ>SS8%rF47)78;*fTu)KMa{5WDT+j| zqjt7EL>-rp(_sng#n=|7I`=5)KWsblea=y2YYD4hN&plVSWxotp1s^uI!O1$ih<_^ zkbs_?tt35HIjX!Xt;fLqWVb&q3eEvx9{7m%B1Csk$Z+V_3sbzIDDUCradbP%&J}X+ zhHPc0u;KCsY_j{oD!O{m(n=G<0B?8YY6g$>SsEmE&80J$Vqm14SXpiFbnVQx9#j;Gm9Vn zomQ8dU*jonlerR8o9^F1Fi+_Si*=QSV)Rv|vfcpc4b0p^AI_%C9xgpwCCYxHF*-*1 zy6ofqxy(aW4#}6-h;p9Rp8YJhvlmh&O~|*|B{`eLkxhelCLFxD(>xArR9hBD z`Eg_gG_FSSpnlEV-FCt#Tt$TpmFohxs`+MbyDJ_9o=;3L-Re3c;c@uWMd+c=_WLBw zfFo-`J>i9rPBWT)qb;%7OLuCnW9ZbkTBlK!IlKl$+(t{k^3xisR-!NCKKCx*AX#8Z z<1?+qNMq0rXq=&d9bwicrY{078C{9gvX8+jzGGx{CGAHuX)?X+`uXg4umc_Mm^ij5 zWw`0_)tJ2-?(zV0fr2!_o?l#d_Kl&w;zI0%zf6%YIVHGXnV>qM1$C04V3L#2W(1N;%yf5z$$gPe>)-i}b6e#B)q`6y zdEs}-Km4Hmi4hm|!7q4zS?!gaHeXIv3#t7%mE{|r2~JXuR#_l5NS!DfGWIi{F#oI4 z5-nwYuo|9&5|a~I^w=Y#m&@0R)oDD4SZbC@#bxxX^w$Zu$rWjCO&abUxfKI5p)#A( zR!VDtFBf`#LC{^SughY8POlHTx+U4qPDsNUMwfWNCrodkMg^}NWj&CM2N%T-U9GKrY^;SG{lA3&Vx4eL zdI#^Lc^wR&RNxq4b*>T^GpAA z`b%P(U~oF_@5>P1Eq`nqa+Z7ik9dq7LF@DzL=%kdK`w4oKMig%H%1;>x*55g3;bfY zsO~(7X*RzNfgIF}EiVuJmVY6uILC=X=uj3XWTB7pVIpi31JdP{YO_r5pAflJqo09u zaaHOdsHr9dJKCHN(Q_@B?=&e`>ylp8rZik{6~cEc?aTU*q3z(QRCpwX~^nb6YztW|@BL<>^95O&@3AQ%8u>0&jPwS^4QU;8?~9h7lP8Lq3-6mV+p ziXT-;H6fe(NR#Nm6{$Pn4+!6W`vd6-VUeMqp6RqmshyMfXo_w}Y;c4MLJ=**2S=x7 z2o$x{|D_?N-KhvP&ZKijYl?r@p-tH>^t`UfVKb9h(iSa+$`|Gi`Bef+ybnzK06nN@-o=J-_~+b@q>sT zOiIf%day#kA?Qv{}=@;k4Rqy~CKDEakhI=PT2`0+O%n{s^>;;0XJyaqfUIubf0 zPyJudLEmwts!#d99^V{3X`su1urOCZTay0<5+`84fkHz2s`;HcK>ZD_$84dr+)7ND zT5!>?=c>UJm|&Hsb45Hm8HiF3SyYO?r6|YK@&GmHO`C^= z_-FT|C1O{31p*(-rU&1QW2#h-gQx+)te)gd9%(n(Rj5K2e=X^!M{rHbXp>x{7%$&i z1C|gm=!ZJ81-#%HT+lP6JlhUf(@}=?48JARK3i`iV3=}rILW>~W6pgT6?l-%%H#k5 E01nC8%1~S=q3O2sn@=$884C$_Ic< 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 Date: Fri, 18 Oct 2024 18:09:57 +0400 Subject: [PATCH 17/34] Updated on 2026-08-14 --- .../products/wallet/redux/OnboardingWalletMiddleware.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index 075ca14999..b006532804 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -19,8 +19,8 @@ import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_IDS import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_PREFIX import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.wallets.builder.UserWalletBuilder -import com.tangem.domain.wallets.legacy.UserWalletsListManager import com.tangem.domain.wallets.builder.UserWalletIdBuilder +import com.tangem.domain.wallets.legacy.UserWalletsListManager import com.tangem.domain.wallets.models.Artwork import com.tangem.domain.wallets.models.UserWallet import com.tangem.feature.onboarding.data.model.CreateWalletResponse @@ -641,6 +641,8 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) ) } } else { + delay(HIDE_PROGRESS_DELAY) + readCard { newScanResponse -> scanResponse = newScanResponse userWallet = createUserWallet(newScanResponse, backupState) From 6af64f8a3355b420ba05505e25d1af0c52d03cda Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 15:03:40 +0300 Subject: [PATCH 18/34] Updated on 2026-08-14 --- core/datasource/build.gradle.kts | 1 - .../AndroidNetworkConnectionManager.kt | 26 +++++++++ .../connection/NetworkConnectionManager.kt | 5 -- .../RealInternetConnectionManager.kt | 53 ------------------- .../datasource/di/NetworkConnectionModule.kt | 8 +-- gradle/dependencies.toml | 2 - 6 files changed, 31 insertions(+), 64 deletions(-) create mode 100644 core/datasource/src/main/java/com/tangem/datasource/connection/AndroidNetworkConnectionManager.kt delete mode 100644 core/datasource/src/main/java/com/tangem/datasource/connection/RealInternetConnectionManager.kt diff --git a/core/datasource/build.gradle.kts b/core/datasource/build.gradle.kts index 0a236d6e5a..494f2c12e6 100644 --- a/core/datasource/build.gradle.kts +++ b/core/datasource/build.gradle.kts @@ -50,7 +50,6 @@ dependencies { implementation(deps.okHttp.prettyLogging) implementation(deps.retrofit) implementation(deps.retrofit.moshi) - implementation(deps.reactive.network) /** Time */ implementation(deps.jodatime) diff --git a/core/datasource/src/main/java/com/tangem/datasource/connection/AndroidNetworkConnectionManager.kt b/core/datasource/src/main/java/com/tangem/datasource/connection/AndroidNetworkConnectionManager.kt new file mode 100644 index 0000000000..3e91a7016f --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/connection/AndroidNetworkConnectionManager.kt @@ -0,0 +1,26 @@ +package com.tangem.datasource.connection + +import android.content.Context +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkCapabilities +import androidx.core.content.ContextCompat + +internal class AndroidNetworkConnectionManager( + private val applicationContext: Context, +) : NetworkConnectionManager { + + override val isOnline: Boolean + get() = isNetworkAvailable() + + private fun isNetworkAvailable(): Boolean { + val connectivityManager = ContextCompat.getSystemService(applicationContext, ConnectivityManager::class.java) + + // Network that is currently in use (several networks can be presented at the same time) + val defaultNetwork: Network = connectivityManager?.activeNetwork ?: return false + val networkCapabilities: NetworkCapabilities = + connectivityManager.getNetworkCapabilities(defaultNetwork) ?: return false + + return networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + } +} \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/connection/NetworkConnectionManager.kt b/core/datasource/src/main/java/com/tangem/datasource/connection/NetworkConnectionManager.kt index dc1c3e9051..fa6faca57d 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/connection/NetworkConnectionManager.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/connection/NetworkConnectionManager.kt @@ -1,13 +1,8 @@ package com.tangem.datasource.connection -import kotlinx.coroutines.flow.StateFlow - /** Network connection manager */ interface NetworkConnectionManager { /** Connection status */ val isOnline: Boolean - - /** Connection status flow */ - val isOnlineFlow: StateFlow } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/connection/RealInternetConnectionManager.kt b/core/datasource/src/main/java/com/tangem/datasource/connection/RealInternetConnectionManager.kt deleted file mode 100644 index 7a3279d188..0000000000 --- a/core/datasource/src/main/java/com/tangem/datasource/connection/RealInternetConnectionManager.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.tangem.datasource.connection - -import com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork -import com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.InternetObservingSettings -import com.tangem.utils.coroutines.FeatureCoroutineExceptionHandler -import io.reactivex.BackpressureStrategy -import io.reactivex.schedulers.Schedulers -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.stateIn -import kotlinx.coroutines.reactive.asFlow - -private const val PING_SERVER = "https://clients3.google.com/generate_204" -private const val PING_INTERVAL = 5_000 - -internal class RealInternetConnectionManager : NetworkConnectionManager { - - private val scope = - CoroutineScope( - SupervisorJob() + Dispatchers.IO + FeatureCoroutineExceptionHandler.create("RealInternetConnectionManager"), - ) - - private val initialNetworkResult: Boolean by lazy { - ReactiveNetwork - .checkInternetConnectivity( - InternetObservingSettings.builder() - .host(PING_SERVER) - .port(443) - .build(), - ) - .subscribeOn(Schedulers.io()) - .observeOn(Schedulers.io()) - .blockingGet() - } - - override val isOnlineFlow: StateFlow = ReactiveNetwork - .observeInternetConnectivity( - InternetObservingSettings.builder() - .host(PING_SERVER) - .port(443) - .interval(PING_INTERVAL) - .build(), - ) - .toFlowable(BackpressureStrategy.LATEST) - .asFlow() - .stateIn(scope, SharingStarted.Lazily, initialValue = initialNetworkResult) - - override val isOnline: Boolean - get() = isOnlineFlow.value -} \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkConnectionModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkConnectionModule.kt index b3eca89707..f698c5144d 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkConnectionModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkConnectionModule.kt @@ -1,10 +1,12 @@ package com.tangem.datasource.di +import android.content.Context +import com.tangem.datasource.connection.AndroidNetworkConnectionManager import com.tangem.datasource.connection.NetworkConnectionManager -import com.tangem.datasource.connection.RealInternetConnectionManager import dagger.Module import dagger.Provides import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import javax.inject.Singleton @@ -14,7 +16,7 @@ internal class NetworkConnectionModule { @Provides @Singleton - fun provideNetworkConnectionManager(): NetworkConnectionManager { - return RealInternetConnectionManager() + fun provideNetworkConnectionManager(@ApplicationContext applicationContext: Context): NetworkConnectionManager { + return AndroidNetworkConnectionManager(applicationContext = applicationContext) } } \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index a939b22dfe..36dde47c11 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -69,7 +69,6 @@ zxingQrCode = "3.5.1" mviCore = "1.3.1" kotlinSerialization = "1.4.1" arrow = "1.2.3" -reactiveNetwork = "3.0.8" walletConnectCore = "1.18.0" walletConnectWeb3 = "1.11.0" prettyLogger = "2.2.0" @@ -252,7 +251,6 @@ mviCore-watcher = { module = "com.github.badoo.mvicore:mvicore-diff", version.re kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinSerialization" } arrow-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" } arrow-fx = { module = "io.arrow-kt:arrow-fx-coroutines", version.ref = "arrow" } -reactive-network = { module = "com.github.pwittchen:reactivenetwork-rx2", version.ref = "reactiveNetwork" } walletConnectCore = { module = "com.walletconnect:android-core", version.ref = "walletConnectCore" } walletConnectWeb3 = { module = "com.walletconnect:web3wallet", version.ref = "walletConnectWeb3" } prettyLogger = { module = "com.orhanobut:logger", version.ref = "prettyLogger" } From 41b59057f7546850dd26a667c9489c1bda527f86 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 15:33:39 +0300 Subject: [PATCH 19/34] Updated on 2026-08-14 --- .../impl/presentation/state/confirm/SendNotificationFactory.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt index 1bf9b9ed01..23f483ef38 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt @@ -93,7 +93,7 @@ internal class SendNotificationFactory constructor( val currencyCheck = getCurrencyCheckUseCase( userWalletId = userWalletId, currencyStatus = cryptoCurrencyStatus, - amount = amountValue, + amount = sendingAmount, fee = feeValue, ) buildList { From 43d1e4a32246e0d12401be282d4396f98fdef613 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 15:52:28 +0400 Subject: [PATCH 20/34] Updated on 2026-08-14 --- .../data/managetokens/DefaultManageTokensRepository.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/DefaultManageTokensRepository.kt b/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/DefaultManageTokensRepository.kt index a62a1be508..70c7c69396 100644 --- a/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/DefaultManageTokensRepository.kt +++ b/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/DefaultManageTokensRepository.kt @@ -99,6 +99,7 @@ internal class DefaultManageTokensRepository( loadUserTokensFromRemote: Boolean, ): BatchFetchResult.Success> { val supportedBlockchains = getSupportedBlockchains(userWallet) + val query = request.params.searchText.takeUnless(String?::isNullOrBlank) val call = suspend { tangemTechApi.getCoins( @@ -107,7 +108,7 @@ internal class DefaultManageTokensRepository( transform = Blockchain::toNetworkId, ), active = true, - searchText = request.params.searchText, + searchText = query, offset = request.offset * request.limit, limit = request.limit, ).getOrThrow() @@ -135,7 +136,7 @@ internal class DefaultManageTokensRepository( val items = if (isFirstBatchFetching && tokensResponse != null && userWallet != null && - request.params.searchText.isNullOrBlank() + query == null ) { managedCryptoCurrencyFactory.createWithCustomTokens( coinsResponse = updatedCoinsResponse, From 288e63fa297cd7e621c1f554e3d260c3e061e199 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 14:04:48 +0400 Subject: [PATCH 21/34] Updated on 2026-08-14 --- .../fee/custom/EthereumCustomFeeConverter.kt | 4 ++ .../custom/EthereumEIPCustomFeeConverter.kt | 48 +++++++++++++++++-- .../EthereumLegacyCustomFeeConverter.kt | 47 ++++++++++++++++-- 3 files changed, 91 insertions(+), 8 deletions(-) diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt index 0757bdfc78..b65735aeb2 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumCustomFeeConverter.kt @@ -128,4 +128,8 @@ internal class EthereumCustomFeeConverter( const val GAS_DECIMALS = 0 const val FEE_AMOUNT = 0 } +} + +internal fun MutableList.setEmpty(index: Int) { + set(index, this[index].copy(value = "")) } \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt index 397af3dbf4..a3d874d526 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumEIPCustomFeeConverter.kt @@ -12,6 +12,7 @@ import com.tangem.core.ui.utils.parseToBigDecimal import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.features.send.impl.R +import com.tangem.features.send.impl.presentation.state.fee.checkExceedBalance import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.ETHEREUM_GAS_UNIT import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.FEE_AMOUNT import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GAS_DECIMALS @@ -85,15 +86,12 @@ internal class EthereumEIPCustomFeeConverter( when (index) { FEE_AMOUNT -> setOnAmountChange(value, index) MAX_FEE -> setOnMaxFeeChange(value, index) + GAS_LIMIT -> setOnGasLimitChange(value, index) else -> set(index, this[index].copy(value = value)) } }.toImmutableList() } - private fun MutableList.setEmpty(index: Int) { - set(index, this[index].copy(value = "")) - } - private fun MutableList.setOnAmountChange(value: String, index: Int) { val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) if (value.isBlank()) { @@ -148,6 +146,48 @@ internal class EthereumEIPCustomFeeConverter( } } + private fun MutableList.setOnGasLimitChange(value: String, index: Int) { + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(GAS_LIMIT) + } else { + val newGasLimit = value.parseToBigDecimal(this[GAS_LIMIT].decimals) + + val maxFee = this[MAX_FEE].value.parseToBigDecimal(this[MAX_FEE].decimals) + .movePointLeft(this[MAX_FEE].decimals) // from GWEI to ETH + + val newFeeAmount = newGasLimit * maxFee + + set( + index = FEE_AMOUNT, + element = this[FEE_AMOUNT].copy( + value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmount, + appCurrency = appCurrencyProvider(), + ), + ), + ) + + val isNotExceedBalance = checkExceedBalance( + feeBalance = feeCryptoCurrencyStatusProvider()?.value?.amount, + feeAmount = newFeeAmount, + ) + + set( + index = index, + element = this[index].copy( + value = value, + keyboardOptions = KeyboardOptions( + imeAction = if (!isNotExceedBalance) ImeAction.None else ImeAction.Done, + keyboardType = KeyboardType.Number, + ), + ), + ) + } + } + private companion object { const val MAX_FEE = 1 const val PRIORITY_FEE = 2 diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt index 4783cd62c4..b4058dd76d 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/EthereumLegacyCustomFeeConverter.kt @@ -12,6 +12,7 @@ import com.tangem.core.ui.utils.parseToBigDecimal import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.features.send.impl.R +import com.tangem.features.send.impl.presentation.state.fee.checkExceedBalance import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.ETHEREUM_GAS_UNIT import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.FEE_AMOUNT import com.tangem.features.send.impl.presentation.state.fee.custom.EthereumCustomFeeConverter.Companion.GAS_DECIMALS @@ -76,15 +77,12 @@ internal class EthereumLegacyCustomFeeConverter( when (index) { FEE_AMOUNT -> setOnAmountChange(value, index) GAS_PRICE -> setOnGasPriceChange(value, index) + GAS_LIMIT -> setOnGasLimitChange(value, index) else -> set(index, this[index].copy(value = value)) } }.toImmutableList() } - private fun MutableList.setEmpty(index: Int) { - set(index, this[index].copy(value = "")) - } - private fun MutableList.setOnAmountChange(value: String, index: Int) { val gasLimit = this[GAS_LIMIT].value.parseToBigDecimal(this[GAS_LIMIT].decimals) if (value.isBlank()) { @@ -133,6 +131,47 @@ internal class EthereumLegacyCustomFeeConverter( } } + private fun MutableList.setOnGasLimitChange(value: String, index: Int) { + if (value.isBlank()) { + setEmpty(FEE_AMOUNT) + setEmpty(GAS_LIMIT) + } else { + val newGasLimit = value.parseToBigDecimal(this[GAS_LIMIT].decimals) + val gasPrice = this[GAS_PRICE].value.parseToBigDecimal(this[GAS_PRICE].decimals) + .movePointLeft(this[GAS_PRICE].decimals) // from GWEI to ETH + + val newFeeAmount = newGasLimit * gasPrice + + set( + index = FEE_AMOUNT, + element = this[FEE_AMOUNT].copy( + value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT].decimals), + label = getFiatReference( + rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, + value = newFeeAmount, + appCurrency = appCurrencyProvider(), + ), + ), + ) + + val isNotExceedBalance = checkExceedBalance( + feeBalance = feeCryptoCurrencyStatusProvider()?.value?.amount, + feeAmount = newFeeAmount, + ) + + set( + index = index, + element = this[index].copy( + value = value, + keyboardOptions = KeyboardOptions( + imeAction = if (!isNotExceedBalance) ImeAction.None else ImeAction.Done, + keyboardType = KeyboardType.Number, + ), + ), + ) + } + } + private companion object { const val GAS_PRICE = 1 const val GAS_LIMIT = 2 From b65233385edf6f4393b1869e6ef9e635dcf7f601 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 16:47:41 +0300 Subject: [PATCH 22/34] Updated on 2026-08-14 --- .../wallet/presentation/wallet/domain/Wallet2CobrandImage.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt index 46e771d72d..1f191d3585 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt @@ -88,7 +88,7 @@ internal enum class Wallet2CobrandImage( Kaspa2( cards2ResId = R.drawable.ill_kaspa2_card2_120_106, cards3ResId = R.drawable.ill_kaspa2_card3_120_106, - batchIds = setOf("AF25"), + batchIds = setOf("AF25", "AF61", "AF72"), ), KaspaReseller( From 2ec61ee354f6114537620e929b77e02795b5dc31 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 17:29:36 +0300 Subject: [PATCH 23/34] Updated on 2026-08-14 --- .../presentation/state/converters/YieldBalancesConverter.kt | 2 +- .../impl/presentation/ui/StakingClaimRewardsValidatorContent.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt index 61bd335e65..fc1f5aa7b3 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt @@ -72,7 +72,7 @@ internal class YieldBalancesConverter( val rewards = yieldBalance?.balance?.items ?.filter { it.type == BalanceType.REWARDS && !it.amount.isZero() } - val isActionable = rewards?.all { it.pendingActions.isNotEmpty() } == true + val isActionable = rewards?.any { it.pendingActions.isNotEmpty() } == true val isRewardsClaimable = rewards?.isNotEmpty() == true val isSolana = isSolana(cryptoCurrencyStatus.currency.network.id.value) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingClaimRewardsValidatorContent.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingClaimRewardsValidatorContent.kt index fecd9f9cb6..2068357514 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingClaimRewardsValidatorContent.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingClaimRewardsValidatorContent.kt @@ -57,6 +57,7 @@ internal fun StakingClaimRewardsValidatorContent( .roundedShapeItemDecoration(index, state.rewards.lastIndex, false) .background(TangemTheme.colors.background.action) .clickable( + enabled = item.pendingActions.isNotEmpty(), onClick = { clickIntents.onActiveStake(item) }, From 2be1217ad758e62494eb5a945944bb6216506f5d Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 12:12:13 +0400 Subject: [PATCH 24/34] Updated on 2026-08-14 --- .../models/response/ExchangeStatusResponse.kt | 3 +++ .../feature/swap/DefaultSwapRepository.kt | 5 +++-- ...enDetailsSwapTransactionsStateConverter.kt | 22 ++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt index 7682c70d4f..a56308d255 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt @@ -64,6 +64,9 @@ enum class ExchangeStatus { @Json(name = "tx-failed") TxFailed, + @Json(name = "paused") + Paused, + @Json(name = "unknown") Unknown, } diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt index bf614cd4a1..0548a65ea7 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt @@ -169,14 +169,15 @@ internal class DefaultSwapRepository( return withContext(coroutineDispatcher.io) { either { catch( - { + block = { exchangeStatusConverter.convert( tangemExpressApi .getExchangeStatus(txId) .getOrThrow(), ) }, - { + catch = { + Timber.e("getExchangeStatus error: $it") raise(UnknownError(it.message)) }, ) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt index c5db7b099d..57de8e0000 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt @@ -25,6 +25,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.PersistentList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList +import timber.log.Timber import java.math.BigDecimal import java.util.Locale @@ -115,7 +116,10 @@ internal class TokenDetailsSwapTransactionsStateConverter( refundToken: CryptoCurrency?, isRefundTerminalStatus: Boolean, ): SwapTransactionsState { - if (statusModel == null || tx.activeStatus == statusModel.status) return tx + if (statusModel == null || tx.activeStatus == statusModel.status) { + Timber.e("UpdateTxStatus isn't required. Current status isn't changed") + return tx + } val hasFailed = tx.hasFailed || statusModel.status == ExchangeStatus.Failed val notifications = getNotification(statusModel.status, statusModel.txExternalUrl, refundToken) val showProviderLink = getShowProviderLink(notifications, statusModel) @@ -217,13 +221,15 @@ internal class TokenDetailsSwapTransactionsStateConverter( isPaused = isPaused, ), ) - add( - sendStep( - isSending = isSending, - isSendingDone = isSendingDone, - isRefunded = isRefunded, - ), - ) + if (!isPaused) { + add( + sendStep( + isSending = isSending, + isSendingDone = isSendingDone, + isRefunded = isRefunded, + ), + ) + } } } }.toPersistentList() From c12ce8c2410352edb94647ff7ee126daa11943a0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 17:40:40 +0300 Subject: [PATCH 25/34] Updated on 2026-08-14 --- .../tokendetails/TokenDetailsPreviewData.kt | 4 +- .../tokendetails/state/StakingBlockUM.kt | 4 +- .../components/staking/StakingBalanceBlock.kt | 21 +--- .../staking/StakingUnavailableBlock.kt | 8 +- .../components/staking/TokenStakingBlock.kt | 104 ++++++++---------- 5 files changed, 51 insertions(+), 90 deletions(-) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt index 747cf08519..3f49fe9fb2 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt @@ -155,7 +155,7 @@ internal object TokenDetailsPreviewData { onStakeClicked = {}, ) - val stakedBlock = StakingBlockUM.Staked( + val stakingBalanceBlock = StakingBlockUM.Staked( cryptoValue = stringReference("5 SOL"), fiatValue = stringReference("456.34 $"), rewardValue = resourceReference(R.string.staking_details_no_rewards_to_claim, wrappedList("0.43 $")), @@ -351,6 +351,6 @@ internal object TokenDetailsPreviewData { value = PagingData.from(txHistoryItems), ), ), - stakingBlocksState = stakedBlock, + stakingBlocksState = stakingBalanceBlock, ) } \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/StakingBlockUM.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/StakingBlockUM.kt index 55ba3c6fcc..0072e90707 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/StakingBlockUM.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/StakingBlockUM.kt @@ -1,10 +1,10 @@ package com.tangem.feature.tokendetails.presentation.tokendetails.state -import androidx.compose.runtime.Stable +import androidx.compose.runtime.Immutable import com.tangem.core.ui.extensions.TextReference import java.math.BigDecimal -@Stable +@Immutable internal sealed interface StakingBlockUM { data object TemporaryUnavailable : StakingBlockUM diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingBalanceBlock.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingBalanceBlock.kt index 1107eba6ae..76bc8386d6 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingBalanceBlock.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingBalanceBlock.kt @@ -1,18 +1,12 @@ package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.staking import android.content.res.Configuration -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.* import androidx.compose.material3.Icon import androidx.compose.material3.Text -import androidx.compose.material3.ripple import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview @@ -23,7 +17,7 @@ import com.tangem.core.ui.extensions.orMaskWithStars import com.tangem.core.ui.extensions.resolveReference import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview -import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakedBlock +import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakingBalanceBlock import com.tangem.feature.tokendetails.presentation.tokendetails.state.StakingBlockUM import com.tangem.features.tokendetails.impl.R import com.tangem.utils.StringsSigns @@ -36,16 +30,7 @@ internal fun StakingBalanceBlock( ) { Row( verticalAlignment = Alignment.CenterVertically, - modifier = modifier - .fillMaxWidth() - .clip(TangemTheme.shapes.roundedCornersXMedium) - .background(TangemTheme.colors.background.primary) - .clickable( - interactionSource = remember { MutableInteractionSource() }, - indication = ripple(), - onClick = state.onStakeClicked, - ) - .padding(TangemTheme.dimens.spacing12), + modifier = modifier.fillMaxWidth(), ) { Column( verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing4), @@ -108,6 +93,6 @@ private fun StakingBalanceBlock_Preview( private class StakingBalanceBlockPreviewProvider : PreviewParameterProvider { override val values: Sequence - get() = sequenceOf(stakedBlock) + get() = sequenceOf(stakingBalanceBlock) } // endregion \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingUnavailableBlock.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingUnavailableBlock.kt index 2341b0cab8..2047a1f09f 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingUnavailableBlock.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/StakingUnavailableBlock.kt @@ -1,12 +1,10 @@ package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.staking import android.content.res.Configuration -import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.res.TangemTheme @@ -17,11 +15,7 @@ import com.tangem.features.tokendetails.impl.R internal fun StakingTemporaryUnavailableBlock(modifier: Modifier = Modifier) { Column( verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing4), - modifier = modifier - .fillMaxWidth() - .clip(TangemTheme.shapes.roundedCornersXMedium) - .background(TangemTheme.colors.background.primary) - .padding(TangemTheme.dimens.spacing12), + modifier = modifier.fillMaxWidth(), ) { Text( text = stringResource(R.string.staking_native), diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/TokenStakingBlock.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/TokenStakingBlock.kt index a4db00c78a..a8ba9f84c2 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/TokenStakingBlock.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/staking/TokenStakingBlock.kt @@ -3,8 +3,11 @@ package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components. import android.content.res.Configuration import androidx.compose.animation.AnimatedContent import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.* import androidx.compose.material3.Text +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -14,18 +17,15 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider -import com.tangem.core.ui.components.RectangleShimmer -import com.tangem.core.ui.components.SecondaryButton -import com.tangem.core.ui.components.SpacerW8 -import com.tangem.core.ui.extensions.TextReference +import com.tangem.core.ui.components.* import com.tangem.core.ui.extensions.resolveReference import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview import com.tangem.core.ui.utils.getGreyScaleColorFilter +import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakingBalanceBlock import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakingAvailableBlock import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakingLoadingBlock import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData.stakingTemporaryUnavailableBlock -import com.tangem.feature.tokendetails.presentation.tokendetails.state.IconState import com.tangem.feature.tokendetails.presentation.tokendetails.state.StakingBlockUM import com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.CurrencyIcon import com.tangem.features.tokendetails.impl.R @@ -39,26 +39,35 @@ import com.tangem.features.tokendetails.impl.R */ @Composable internal fun TokenStakingBlock(state: StakingBlockUM, isBalanceHidden: Boolean, modifier: Modifier = Modifier) { - AnimatedContent( - targetState = state, - contentAlignment = Alignment.CenterStart, - label = "Staking block animation", + Column( + modifier = modifier + .clip(TangemTheme.shapes.roundedCornersXMedium) + .background(TangemTheme.colors.background.primary) + .clickable( + enabled = state is StakingBlockUM.Staked, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = { (state as? StakingBlockUM.Staked)?.onStakeClicked?.invoke() }, + ) + .fillMaxWidth() + .padding(all = TangemTheme.dimens.spacing12), ) { - when (it) { - is StakingBlockUM.TemporaryUnavailable -> StakingTemporaryUnavailableBlock(modifier) - is StakingBlockUM.Loading -> StakingLoading( - iconState = it.iconState, - modifier = modifier, - ) - is StakingBlockUM.Staked -> StakingBalanceBlock( - state = it, - isBalanceHidden = isBalanceHidden, - modifier = modifier, - ) - is StakingBlockUM.StakeAvailable -> StakingAvailableContent( - state = it, - modifier = modifier, - ) + AnimatedContent( + targetState = state, + contentAlignment = Alignment.CenterStart, + label = "Staking block animation", + ) { + when (it) { + is StakingBlockUM.TemporaryUnavailable -> StakingTemporaryUnavailableBlock() + is StakingBlockUM.Loading -> StakingLoading() + is StakingBlockUM.Staked -> StakingBalanceBlock( + state = it, + isBalanceHidden = isBalanceHidden, + ) + is StakingBlockUM.StakeAvailable -> StakingAvailableContent( + state = it, + ) + } } } } @@ -66,13 +75,7 @@ internal fun TokenStakingBlock(state: StakingBlockUM, isBalanceHidden: Boolean, @Composable private fun StakingAvailableContent(state: StakingBlockUM.StakeAvailable, modifier: Modifier = Modifier) { Column( - modifier = modifier - .background( - color = TangemTheme.colors.background.primary, - shape = TangemTheme.shapes.roundedCornersXMedium, - ) - .fillMaxWidth() - .padding(all = TangemTheme.dimens.spacing12), + modifier = modifier.fillMaxWidth(), ) { Row { val (alpha, colorFilter) = remember(state.iconState.isGrayscale) { @@ -115,52 +118,30 @@ private fun StakingAvailableContent(state: StakingBlockUM.StakeAvailable, modifi } @Composable -private fun StakingLoading(iconState: IconState, modifier: Modifier = Modifier) { +private fun StakingLoading(modifier: Modifier = Modifier) { Column( - modifier = modifier - .background( - color = TangemTheme.colors.background.primary, - shape = TangemTheme.shapes.roundedCornersXMedium, - ) - .fillMaxWidth() - .heightIn(min = TangemTheme.dimens.size72) - .padding(all = TangemTheme.dimens.spacing12), - + modifier = modifier.fillMaxWidth(), ) { Row { - val (alpha, colorFilter) = remember(iconState.isGrayscale) { - getGreyScaleColorFilter(iconState.isGrayscale) - } - CurrencyIcon( - modifier = Modifier - .size(TangemTheme.dimens.size20) - .clip(TangemTheme.shapes.roundedCorners8) - .align(Alignment.CenterVertically), - icon = iconState, - alpha = alpha, - colorFilter = colorFilter, - ) - SpacerW8() Column { RectangleShimmer( modifier = Modifier .fillMaxWidth() .height(TangemTheme.dimens.size20), ) - Spacer(modifier = Modifier.size(TangemTheme.dimens.size4)) + Spacer(modifier = Modifier.size(TangemTheme.dimens.size8)) RectangleShimmer( modifier = Modifier .fillMaxWidth() - .height(TangemTheme.dimens.size20), + .height(TangemTheme.dimens.size36), ) Spacer(modifier = Modifier.size(TangemTheme.dimens.size8)) } } - SecondaryButton( - modifier = Modifier.fillMaxWidth(), - showProgress = true, - text = TextReference.EMPTY.resolveReference(), - onClick = { /* no-op */ }, + RectangleShimmer( + modifier = Modifier + .fillMaxWidth() + .height(TangemTheme.dimens.size48), ) } } @@ -186,6 +167,7 @@ private class StakingBlockStateProvider : CollectionPreviewParameterProvider Date: Mon, 21 Oct 2024 12:48:51 +0400 Subject: [PATCH 26/34] Updated on 2026-08-14 --- .../wallet/presentation/wallet/ui/WalletScreen.kt | 6 +----- .../presentation/wallet/ui/components/WalletsList.kt | 10 ++-------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt index f9f733cd80..4e5b6f25fd 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt @@ -181,11 +181,7 @@ private fun WalletContent( contentPadding = contentPadding, horizontalAlignment = Alignment.CenterHorizontally, ) { - item( - // !!! Type of the key should be saveable via Bundle on Android !!! - key = state.wallets.map { it.walletCardState.id.stringValue }, - contentType = state.wallets.map { it.walletCardState.id }, - ) { + item(key = "WalletsList" + state.selectedWalletIndex, contentType = "WalletsList") { WalletsList( lazyListState = walletsListState, wallets = state.wallets.map(WalletState::walletCardState).toImmutableList(), diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt index c25186153f..615036e995 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt @@ -58,17 +58,11 @@ internal fun WalletsList( horizontalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing8), flingBehavior = rememberWalletsFlingBehaviour(lazyListState = lazyListState, itemWidth = itemWidth), ) { - items( - items = wallets, - key = { it.id.stringValue }, - contentType = { it.id.stringValue }, - ) { state -> + items(items = wallets, contentType = { it.id.stringValue }) { state -> WalletCard( state = state, isBalanceHidden = isBalanceHidden, - modifier = Modifier - .animateItemPlacement() - .width(itemWidth), + modifier = Modifier.width(itemWidth), ) } } From 0ed91aa9ec3d2ac70eb0c328c00d9dbf8c7d6091 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 20:47:06 +0300 Subject: [PATCH 27/34] Updated on 2026-08-14 --- app/src/main/assets/tangem-app-config | 2 +- gradle/dependencies.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index d52c8382e9..cf01c91626 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit d52c8382e9e94b2b44ceecd7cb7bd897e091073c +Subproject commit cf01c91626bf58bdf6895c59a706b83c37a9e345 diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 36dde47c11..87e70174f7 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.17-828" +tangemBlockchainSdk = "release-app_5.17-830" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From a0c455b82c32a0f1e02cb5c82d820289e89e4778 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 23:12:33 +0400 Subject: [PATCH 28/34] Updated on 2026-08-14 --- .../managetokens/ValidateTokenFormUseCase.kt | 21 +++++++++++-------- .../managetokens/model/AddCustomTokenForm.kt | 4 +++- .../CustomTokenFormValidationException.kt | 2 -- .../model/CustomTokenFormModel.kt | 19 ++++++++++------- .../utils/CustomCurrencyValidator.kt | 7 +++++-- .../utils/ui/CustomCurrencyFormOperations.kt | 3 --- 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/ValidateTokenFormUseCase.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/ValidateTokenFormUseCase.kt index ffbfa795bf..79a0481bc4 100644 --- a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/ValidateTokenFormUseCase.kt +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/ValidateTokenFormUseCase.kt @@ -16,12 +16,19 @@ class ValidateTokenFormUseCase( networkId: Network.ID, formValues: AddCustomTokenForm.Raw, ): EitherNel = either { - if (formValues.name.isBlank() && formValues.symbol.isBlank() && formValues.decimals.isBlank()) { - val contractAddress = withError({ nonEmptyListOf(it) }) { - ensureIsContractAddressValid(formValues.contractAddress, networkId) - } + if (formValues.name.isBlank() && + formValues.symbol.isBlank() && + formValues.decimals.isBlank() + ) { + if (formValues.contractAddress.isBlank()) { + AddCustomTokenForm.Validated.Empty + } else { + val contractAddress = withError({ nonEmptyListOf(it) }) { + ensureIsContractAddressValid(formValues.contractAddress, networkId) + } - AddCustomTokenForm.Validated.ContractAddress(contractAddress) + AddCustomTokenForm.Validated.ContractAddressOnly(contractAddress) + } } else { zipOrAccumulate( { ensureIsContractAddressValid(formValues.contractAddress, networkId) }, @@ -43,10 +50,6 @@ class ValidateTokenFormUseCase( contractAddress: String, networkId: Network.ID, ): String { - ensure(contractAddress.isNotBlank()) { - CustomTokenFormValidationException.ContractAddress.Empty - } - val isValid = catch({ repository.validateContractAddress(contractAddress, networkId) }) { raise(CustomTokenFormValidationException.DataError(it)) } diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/AddCustomTokenForm.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/AddCustomTokenForm.kt index a5b5dc5bdc..c2cebdb84e 100644 --- a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/AddCustomTokenForm.kt +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/AddCustomTokenForm.kt @@ -11,7 +11,9 @@ sealed class AddCustomTokenForm { sealed class Validated : AddCustomTokenForm() { - data class ContractAddress( + data object Empty : Validated() + + data class ContractAddressOnly( val contractAddress: String, ) : Validated() diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/exceptoin/CustomTokenFormValidationException.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/exceptoin/CustomTokenFormValidationException.kt index a197980215..37781b95e1 100644 --- a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/exceptoin/CustomTokenFormValidationException.kt +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/exceptoin/CustomTokenFormValidationException.kt @@ -4,8 +4,6 @@ sealed class CustomTokenFormValidationException { sealed class ContractAddress : CustomTokenFormValidationException() { - data object Empty : ContractAddress() - data object Invalid : ContractAddress() } diff --git a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/model/CustomTokenFormModel.kt b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/model/CustomTokenFormModel.kt index c1c6f9922e..a6a587dc8c 100644 --- a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/model/CustomTokenFormModel.kt +++ b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/model/CustomTokenFormModel.kt @@ -61,15 +61,9 @@ internal class CustomTokenFormModel @Inject constructor( if (params.network.canHandleTokens) { observeTokenFormUpdates() - } else { - modelScope.launch { - customCurrencyValidator.createCoin( - userWalletId = params.userWalletId, - networkId = params.network.id, - derivationPath = getDerivationPath(), - ) - } } + + createCoin() } private fun getInitialState(): CustomTokenFormUM { @@ -112,6 +106,7 @@ internal class CustomTokenFormModel @Inject constructor( } .distinctUntilChanged() .sample(periodMillis = 1_000) + .drop(count = 1) // Skip initial state .onEach { formValues -> customCurrencyValidator.validateForm( userWalletId = params.userWalletId, @@ -151,6 +146,14 @@ internal class CustomTokenFormModel @Inject constructor( } } + private fun createCoin() = modelScope.launch { + customCurrencyValidator.createCoin( + userWalletId = params.userWalletId, + networkId = params.network.id, + derivationPath = getDerivationPath(), + ) + } + private fun updateStateWithCurrency( currency: CryptoCurrency, fillForm: Boolean, diff --git a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/CustomCurrencyValidator.kt b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/CustomCurrencyValidator.kt index 685849ec59..d5ba7409da 100644 --- a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/CustomCurrencyValidator.kt +++ b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/CustomCurrencyValidator.kt @@ -75,9 +75,12 @@ internal class CustomCurrencyValidator @Inject constructor( is AddCustomTokenForm.Validated.All -> { findOrCreateCurrency(userWalletId, networkId, derivationPath, validatedForm) } - is AddCustomTokenForm.Validated.ContractAddress -> { + is AddCustomTokenForm.Validated.ContractAddressOnly -> { findToken(userWalletId, networkId, derivationPath, validatedForm) } + is AddCustomTokenForm.Validated.Empty -> { + createCoin(userWalletId, networkId, derivationPath) + } } }.saveInAndJoin(validateFormJobHolder) } @@ -132,7 +135,7 @@ internal class CustomCurrencyValidator @Inject constructor( userWalletId: UserWalletId, networkId: Network.ID, derivationPath: Network.DerivationPath, - validatedForm: AddCustomTokenForm.Validated.ContractAddress, + validatedForm: AddCustomTokenForm.Validated.ContractAddressOnly, ) { updateStatus(Status.SearchingToken) diff --git a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/ui/CustomCurrencyFormOperations.kt b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/ui/CustomCurrencyFormOperations.kt index d99bb9473b..03c990ab76 100644 --- a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/ui/CustomCurrencyFormOperations.kt +++ b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/utils/ui/CustomCurrencyFormOperations.kt @@ -94,9 +94,6 @@ internal fun CustomTokenFormUM.updateWithContractAddressException( val updatedFields = fields.mutate { it[Field.CONTRACT_ADDRESS] = it.getValue(Field.CONTRACT_ADDRESS).copy( error = when (exception) { - CustomTokenFormValidationException.ContractAddress.Empty -> { - null // Should not display this error - } CustomTokenFormValidationException.ContractAddress.Invalid -> { resourceReference(R.string.custom_token_creation_error_invalid_contract_address) } From 9ba100f0cb645772b509ff68817b66be915c0655 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 21:25:07 +0300 Subject: [PATCH 29/34] Updated on 2026-08-14 --- .../GiveTxPermisssionBottomSheet.kt | 3 +- .../permission/state/GiveTxPermissionState.kt | 1 + core/res/src/main/res/values-de/strings.xml | 39 ++++++++++--------- core/res/src/main/res/values-es/strings.xml | 11 ++++-- core/res/src/main/res/values-fr/strings.xml | 9 ++++- core/res/src/main/res/values-ja/strings.xml | 5 ++- core/res/src/main/res/values-ru/strings.xml | 6 ++- .../src/main/res/values-uk-rUA/strings.xml | 4 +- core/res/src/main/res/values/strings.xml | 6 ++- .../ShowApprovalBottomSheetTransformer.kt | 1 + .../tangem/feature/swap/ui/StateBuilder.kt | 1 + 11 files changed, 53 insertions(+), 33 deletions(-) diff --git a/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/GiveTxPermisssionBottomSheet.kt b/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/GiveTxPermisssionBottomSheet.kt index 52398bd178..5d8b37fd46 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/GiveTxPermisssionBottomSheet.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/GiveTxPermisssionBottomSheet.kt @@ -130,7 +130,7 @@ private fun ApprovalBottomSheetInfo(data: GiveTxPermissionState.ReadyForRequest) } SpacerH16() FooterContainer( - footer = stringResource(id = R.string.give_permission_fee_footer), + footer = data.footerText.resolveReference(), modifier = Modifier.padding(horizontal = TangemTheme.dimens.spacing16), ) { FeeItem(fee = data.fee) @@ -321,6 +321,7 @@ private val previewData = GiveTxPermissionBottomSheetConfig( onChangeApproveType = { ApproveType.LIMITED }, subtitle = resourceReference(R.string.give_permission_staking_subtitle, wrappedList("1")), dialogText = resourceReference(R.string.give_permission_staking_footer), + footerText = resourceReference(R.string.swap_give_permission_fee_footer), ), onCancel = {}, ) \ No newline at end of file diff --git a/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/state/GiveTxPermissionState.kt b/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/state/GiveTxPermissionState.kt index 9f52bca622..b88bfa47d4 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/state/GiveTxPermissionState.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/bottomsheet/permission/state/GiveTxPermissionState.kt @@ -15,6 +15,7 @@ sealed class GiveTxPermissionState { data class ReadyForRequest( val subtitle: TextReference, val dialogText: TextReference, + val footerText: TextReference, val currency: String, val amount: String, val walletAddress: String, diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 91ac04b5bf..66ec0cf56b 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -20,7 +20,7 @@ Gehe zu den Einstellungen, um die biometrische Authentifizierung in der Tangem-App zu aktivieren Biometrische Authentifizierung aktivieren Dadurch werden alle gespeicherten Zugangscodes für die Wallet gelöscht. Jede weitere Operation mit der Wallet erfordert die Übermittlung des Zugangscodes. - Durch das Entfernen der gespeicherten Karte oder Ring werden alle gespeicherten Wallets und deren Zugangscodes aus der App gelöscht. + Durch das Entfernen der gespeicherten Geräte werden alle gespeicherten Wallets und deren Zugangscodes aus der App gelöscht. Zugangscode speichern Bei Interaktionen mit deiner Karte oder Ring wird anstelle des Zugangscodes eine biometrische Authentifizierung abgefragt. Behalte die Wallet in der App @@ -41,8 +41,8 @@ Backup-Prozess starten Verwende eine Bankkarte oder eine andere Zahlungsmethode - %d Karte oder Ring - %d Karten oder Ringe + %d Gerät + %d Geräte Deaktiviere diese Option, wenn du nicht möchtest, dass diese Karte oder Ring zum Zurücksetzen von Zugangscodes auf anderen Karten oder Ringe in dieser Wallets verwendet wird. Bitte beachte, dass du dann auch den Zugangscode auf dieser Karte oder Ring nicht zurücksetzen kannst. Ermöglicht die Verwendung dieser Karte oder Ring zum Zurücksetzen des Zugangscodes auf anderen Karten oder Ringe in dieser Brieftasche @@ -51,15 +51,15 @@ Möchtest du das wirklich tun? Zugangscode ändern Der Zugangscode wird nur auf dieser Karte oder Ring geändert - Alle Karten oder Ringe der ausgewählten Wallet wurden auf die Werkseinstellungen zurückgesetzt. Du kannst nun eine neue Wallet aufsetzen. + Alle Tangem Geräte der ausgewählten Wallet wurden auf die Werkseinstellungen zurückgesetzt. Du kannst nun eine neue Wallet aufsetzen. Komplett zurücksetzen - Möchtest du die nächste Karte oder Ring in dieser Wallet zurücksetzen? + Möchtest du die nächsten geräte in dieser Wallet zurücksetzen? Karte oder Ring zurücksetzen - Wir empfehlen dir, den Zurücksetzungsprozess für alle Karten oder Ringe in dieser Wallet abzuschließen - Du hast nicht alle deine Karten oder Ringe zurückgesetzt + Wir empfehlen dir, den Zurücksetzungsprozess für aller Geräte in dieser Wallet abzuschließen + Du hast nicht alle deine Geräte zurückgesetzt Auf Werkseinstellungen zurücksetzen Sicherheitsmodus - Karten oder Ring-Einstellungen + Geräteeinstellungen Zusätzlich zu den Netzwerkgebühren erhebt das Cardano-Netzwerk %1$s ADA bei Transaktionen mit dem Token %2$s Cardano-Transaktionsanforderungen Um eine %1$s Transaktion durchzuführen, musst du einen gewissen ADA-Betrag einzahlen, um die Netzwerkgebühr und den ADA-Mindestwert zu decken (5 ADA werden empfohlen). @@ -219,7 +219,7 @@ Empfehlungsprogramm Flippe den Bildschirm deines Geräts nach unten, um Salden schnell ein- und auszublenden %s Hasch - Karten- oder Ring-ID + Geräte-ID Kontakt zum Support Weitere Karten oder Ringe verknüpfen App Währung @@ -298,11 +298,10 @@ Eine Transaktion kann nicht gesendet werden Fehler in der Coinbeschreibung Nur diese - Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Sie die Verwendung Ihres Tokens für den Swap genehmigen. Gib das Genehmigungslimit für das ausgewählte Token an Betrag %s Die Genehmigungsfunktion ist erforderlich, um einer anderen Adresse die Berechtigung zur Verwendung einer bestimmten Menge Ihrer Token zu erteilen. Standardmäßig können Smart Contracts nicht auf deine Token zugreifen, es sei denn, du stimmen zu. Indem du deine Token \"freischaltest\", autorisierst du den StakeKit Smart Contract, sie zu verwenden. Die Miner des Netzwerks erhalten eine Gasgebühr (von dir bezahlt), um diese Aktion in der Blockchain aufzuzeichnen. Du kannst deine Token einsetzen, nachdem du die Genehmigung erteilt hast. - Um fortzufahren, musst du StakeKit Smart Contract erlauben, deine %s zu verwenden + Um fortzufahren, musst du Polygon Smart Contract erlauben, deine %s zu verwenden Um fortzufahren, erteile %1s Smart Contracts die Berechtigung, dein zu %2s verwenden. Erlaubnis erteilen Unbegrenzt @@ -455,11 +454,11 @@ Rufe dies auf oder tippe auf die Suchleiste, um Token direkt vom Markt hinzuzufügen Token hinzufügen NFC ist auf deinem Gerät nicht verfügbar - Du musst einen einzigen Zugangscode einrichten, um alle deine Karten oder Ringe zu schützen + Du musst einen einzigen Zugangscode einrichten, um alle deine Geräte zu schützen Schützen Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten Personalisieren - Stelle den Zugangscode mit einer verknüpften Karte oder einem Ring wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf. + Stelle den Zugangscode mit einem verknüpften Gerät wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf. Wiederherstellen Wähle ein beliebiges Wort, eine Phrase oder eine Zahl als Zugangscode Zugangscode erstellen @@ -525,16 +524,16 @@ Bereite die primäre Karte oder Ring mit der Nummer %s vor. Bereite den Ring vor und drücke unten die Scan-Taste Deine Tangem-Karte oder Ring ist konfiguriert und einsatzbereit. - Maximale Anzahl an Karten oder Ringe hinzugefügt. Schließe den Sicherungsvorgang ab. + Maximale Anzahl an Geräten hinzugefügt. Schließe den Sicherungsvorgang ab. Karte oder Ring aktivieren Sicherungs-Karte oder Ring Sicherungskarte oder Ring Nr. %d Sicherungs-Ring - Keine Sicherungskarten oder Sicherungsring + Keine Sicherungsgeräte Benachrichtigungen - Eine Backup-Karte oder Ring hinzugefügt + Eine Backupgerät hinzugefügt Bereite deine Karte oder Ring vor - Zwei Backup-Karten oder Ring hinzugefügt + Zweis Backupgerät hinzugefügt Um zu beginnen, lade einfach die wallet mit einem beliebigen Betrag auf Um zu beginnen, lade die Wallet einfach mit mehr als %1$s %2$s auf. Krypto kaufen @@ -609,7 +608,7 @@ Möchtest du Biometrie nutzen? Beachte, dass für Transaktionen mit deinem Guthaben weiterhin deine Karte oder Ring erforderlich ist Karte oder Ring scannen - Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Karten oder Ringe. + Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Geräte. Halte deine Karte oder Ring bereit! Bereits in der eingegebenen Adresse enthalten Der Provisionsbetrag ist %s mal der empfohlene Betrag. Stelle sicher, dass die benutzerdefinierten Einstellungen korrekt sind. @@ -794,6 +793,7 @@ Lerne Tangem kennen Tausche, kaufen Sie NFTs, vergebe Kredite und tätige Einlagen bei mehr als 100 verschiedenen dezentralen Diensten Web 3.0-kompatibel + Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Sie die Verwendung Ihres Tokens für den Swap genehmigen. Tausche mehr Token zu besseren Kursen direkt in deiner Brieftasche. Neuer Swap-Anbieter verfügbar! Der Betrag umfasst:\n- Gebühr des Dienstanbieters\n- Netzgebühr für die Rücksendung von %s von der Vermittlungsstelle an die Adresse des Nutzers. @@ -880,6 +880,7 @@ Antrag auf Erstellung einer Transaktion für %1$s\n%2$s\n\nBetrag: %3$s\nGebühr: %4$s\nGesamt: %5$s\nSaldo: %6$s Die Transaktion kann nicht gesendet werden. Nicht genügend Guthaben. WalletConnect Sitzung konnte nicht aufgebaut werden. Bitte versuche es später noch einmal. + Nicht alle Token wurden zu Deiner Liste hinzugefügt. Bitte füge sie zuerst hinzu und versuche es erneut. Fehlende Token: \n Nachricht konnte nicht signiert werden.\nBitte, versuche es erneut WalletConnect-Sitzung konnte nicht aufgebaut werden: Timeout-Fehler. Bitte versuche es später noch einmal. Sitzungsanfrage enthält nicht unterstützte Blockchains für WalletConnect-Verbindung. Nicht unterstützte Blockchains:\n @@ -987,7 +988,7 @@ Du hast eine unterbrochene Sicherung. Möchtest du diese fortsetzen? Ja, fortsetzen Verwerfen - Wenn du das Backup jetzt abbrichst, musst du die Karten oder Ringe auf die Werkseinstellungen zurücksetzen, um von vorne zu beginnen + Wenn du das Backup jetzt abbrichst, musst du die Geräte auf die Werkseinstellungen zurücksetzen, um von vorne zu beginnen Sicherung fortsetzen Dies ist eine unwiderrufliche Aktion Anmelden mit %s diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index ca139eb0a7..c1aba0b90e 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -83,10 +83,12 @@ Ir a %1$s No ha otorgado acceso a su cámara, cambie su configuración de privacidad Cancelar + Cambie Elige una acción Reclamar Reclame recompensas Cerrar + confirme Continuar Copiar Copiar la dirección @@ -148,7 +150,7 @@ Renombrar Guarde Guardar cambios - Buscar en el mercado + Buscar Buscar tokens sec Seed phrase @@ -298,11 +300,10 @@ No se puede completar una transacción Error de descripción de moneda Esta transacción - La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap. Especifique el límite aprobado para el token seleccionado. Montante %s La función Aprobar es necesaria para otorgar permiso a otra dirección para usar una cantidad específica de sus tokens. Por diseño, los contratos inteligentes no pueden acceder a sus tokens sin su aprobación. Al \"desbloquear\" sus tokens, autoriza al contrato inteligente de StakeKit a usarlos. Los mineros de la red reciben una tarifa de gas (pagada por usted) por registrar esta acción en la cadena de bloques. Puede apostar su token después de dar su aprobación. - Para continuar, debe autorizar el contrato inteligente de StakeKit para utilizar su %s + Para continuar, debe autorizar el contrato inteligente de Polygon para utilizar su %s Para continuar, de autorización a los smart contracts de %1s para usar su %2s Dar autorización Ilimitado @@ -550,6 +551,9 @@ Restaurar código de acceso Tarjetas idénticas Código de acceso + Nuestros servicios no están disponibles en este país + Cámbielo o confírmelo + Su residencia ha sido identificada como Agrupar Por saldo Organizar tokens @@ -796,6 +800,7 @@ Descubra Tangem Intercambie, compre NFT, haga préstamos y depósitos en más de 100 servicios descentralizados diferentes Compatible con Web 3.0 + La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap. Intercambie más tokens a mejores tasas directamente en su billetera. ¡Nuevo proveedor de intercambio disponible! El monto incluye:\n• Tarifas del proveedor de servicios\n• Tarifas de red por enviar %s desde el intercambio a la dirección del usuario. diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 23a43e7ff8..90336959da 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -83,10 +83,12 @@ Aller à %1$s Vous n\'avez pas octroyé l\'accès à votre caméra, veuillez modifier vos paramètres de confidentialité Annuler + Changez Choisissez une action Réclamer Réclamez des récompenses Fermer + Confirmez Continuer Copier Copier l\'adresse @@ -298,11 +300,10 @@ Impossible d\'effectuer une transaction Erreur de description de la pièce Cette transaction - Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange. Spécifiez la limite approuvée pour le jeton sélectionné Montant %s La fonction Approuver est nécessaire pour accorder la permission à une autre adresse d\'utiliser une quantité spécifique de vos jetons. De par leur conception, les contrats intelligents ne peuvent pas accéder à vos jetons sans votre approbation. En « déverrouillant » vos jetons, vous autorisez le contrat intelligent StakeKit à les utiliser. Les mineurs du réseau reçoivent des frais de gaz (payés par vous) pour enregistrer cette action sur la blockchain. Vous pouvez staker votre jeton après avoir donné votre approbation. - Pour continuer, vous devez autoriser le contrat intelligent StakeKit à utiliser votre %s + Pour continuer, vous devez autoriser le contrat intelligent Polygon à utiliser votre %s Pour continuer, accordez aux smart contracts de %1s l\'autorisation d\'utiliser votre %2s Donner l\'autorisation Illimité @@ -550,6 +551,9 @@ Restauration du code d\'accès Cartes identiques Code d\'accès + Nos services ne sont pas disponibles dans ce pays + Modifiez-le ou confirmez-le + Votre résidence a été identifiée comme Grouper Par solde Organiser les jetons @@ -796,6 +800,7 @@ Découvrez Tangem Échangez, achetez des NFT, faites des prêts et des dépôts dans plus de 100 services décentralisés différents Compatible avec Web 3.0 + Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange. Échangez plus de jetons à de meilleurs taux directement dans votre portefeuille. Nouveau fournisseur d\'échange disponible ! Le montant comprend :\n• les frais du fournisseur de services\n• les frais de réseau pour l\'envoi de %s depuis l\'échange vers l\'adresse de l\'utilisateur. diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 9daec072f7..ace404dc50 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -297,11 +297,10 @@ 取引を送信できません コインの説明エラー 取引 - ネットワークは、あなたがトークンのスワップを承認していることを確認するために、トークン承認手数料を請求します。 選択したトークンの承認制限を指定します 金額%s 承認機能は、別のアドレスに特定の量のトークンを使用する許可を与えるために必要です。設計上スマートコントラクトは、承認しない限りトークンにアクセスできません。トークンを「ロック解除」すると、StakeKitスマート コントラクトがトークンを使用する権限が与えられます。ネットワークのマイナーは、このアクションをブロックチェーンに記録するためにガス料金(あなたが支払う)を受け取ります。承認後、トークンをステーキングできます。 - 続行するには、StakeKitスマートコントラクトが%sを使用することを許可する必要があります + 続行するには、Polygonスマートコントラクトが%sを使用することを許可する必要があります 続行するには、%1sスマートコントラクトに%2sを使用する権限を付与してください 許可を与える 無制限 @@ -770,6 +769,7 @@ ステーキング解約中 ロック解除 ロック解除中 + 金額がステーキング残高を超えています ステーキングされていない ステーキング解除 ステーキング解除中の資産%s @@ -791,6 +791,7 @@ Tangemのご紹介 100種類以上の分散型サービスで、NFTの交換・購入や、借入・預金を行うことができます。 Web3.0対応 + ネットワークは、あなたがトークンのスワップを承認していることを確認するために、トークン承認手数料を請求します。 より多くのトークンをより良いレートで、ウォレット内にて直接交換します。 新しいスワッププロバイダーが利用可能になりました! この金額には以下が含まれます:\n- サービスプロバイダーの手数料\n- 取引所からユーザーのアドレスに%s を送り返すためのネットワーク手数料。 diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 1d7f48e667..398ba31f1e 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -305,11 +305,10 @@ Не могу отправить транзакцию Ошибка в описании монеты Транзакция - Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для обмена. Укажите лимит доступа к выбранному токену Количество %s Функция подтверждения необходима для предоставления другому адресу разрешения на использование определенного количества ваших токенов.По замыслу смарт-контракты не могут получить доступ к вашим токенам, если вы не одобрите доступ со своей стороны. «Разблокируя» свои токены, вы даете смарт-контракту StakeKit разрешение использовать ваши активы. Майнеры сети получают компенсацию за газ (оплачиваемый вами) за запись этого действия в блокчейне. Как только разрешение будет предоставлено, вы сможете осуществить стейкинг токена. - Чтобы продолжить, вам необходимо разрешить смарт контракту StakeKit использовать ваш %s + Чтобы продолжить, вам необходимо разрешить смарт контракту Polygon использовать ваш %s Чтобы продолжить, вам нужно разрешить смарт-контракту %1s использовать ваш %2s Дать разрешение Безлимитно @@ -737,6 +736,7 @@ Период, который необходимо подождать после запроса на вывод средств из стейкинга, прежде чем токены станут доступны. Период прогрева Время, необходимое для начала процесса стейкинга и активации процесса начисления наград + Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для стейкинга. Пользуясь стейкинг сервисом, вы соглашаетесь с %1$s и %2$s Заблокировано Переместить @@ -794,6 +794,7 @@ Отзыв Разблокировать Разблокировка + Сумма превышает застейканный баланс Вывод из стейкинга Завершение стейкинга Завершение стейкинга %s @@ -815,6 +816,7 @@ Встречайте Tangem Обменивайте, покупайте NFT, получайте займы и делайте вклады в более чем 100 различных децентрализованных сервисах Поддержка Web 3.0 + Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для обмена. Обменивайте больше токенов по лучшим курсам прямо в вашем кошельке. Новый провайдер обмена! В сумму включено: \n• комиссия провайдера сервиса\n• комиссия сети за отправку %s от биржи обратно на адрес пользователя. diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index c7e208ecb6..1cf3576b6a 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -304,11 +304,10 @@ Не вдається відправити транзакцію Помилка в описі монети Транзакція - Мережа стягує комісію за схвалення токену за підтвердження, що саме ви дозволяєте використовувати ваш токен для обміну. Вкажіть ліміт доступу для обраного токена Кількість %s Функція підтвердження необхідна для надання дозволу іншій адресі на використання певної кількості ваших токенів. За задумом, смарт-контракти не можуть отримати доступ до ваших токенів без вашого схвалення. \"Розблоковуючи\" свої токени, ви дозволяєте смарт-контракту StakeKit використовувати їх. Майнери мережі отримують плату за газ (сплачену вами), щоб зафіксувати цю дію в блокчейні. Ви зможете застейкати свій токен після того, як дасте дозвіл. - Щоб продовжити, вам потрібно дозволити смарт-контракту StakeKit використовувати ваш %s + Щоб продовжити, вам потрібно дозволити смарт-контракту Polygon використовувати ваш %s Щоб продовжити, вам потрібно дозволити смарт-контракту %1s використовувати ваш %2s Надати дозвіл Необмежено @@ -816,6 +815,7 @@ Зустрічайте Tangem Обмінюйте, купуйте NFT, отримуйте позики та робіть депозити у понад 100 різних децентралізованих сервісах Web 3.0 сумісність + Мережа стягує комісію за схвалення токену за підтвердження, що саме ви дозволяєте використовувати ваш токен для обміну. Обмінюйте більше токенів за вигіднішим курсом прямо у своєму гаманці. З\'явився новий провайдер обмінів! Сума включає: \n• комісію постачальника послуг\n• комісію мережі за відправлення %s з біржі назад на адресу користувача. diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 7bb68fb3cf..9b1c743f98 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -300,11 +300,10 @@ Can\'t send a transaction Coin description error Transaction - The network will charge a token approval fee to verify that you are authorizing the use of your token for the swap. Specify the approve limit for the selected token Amount %s The Approve function is needed to grant permission to another address to use a specific amount of your tokens. By design, smart contracts can\'t access your tokens unless you approve. By \"unlocking\" your tokens, you authorize the StakeKit smart contract to use them. The network\'s miners receive a gas fee (paid by you) to record this action on the blockchain. You can stake your token after giving approval. - To continue you need to allow StakeKit smart contract to use your %s + To continue you need to allow Polygon smart contract to use your %s To continue, grant %1s smart contracts permission to use your %2s Give Permission Unlimited @@ -722,6 +721,7 @@ The period you must wait after requesting to withdraw funds from staking before the tokens become available. Warmup period The allocated time for activating participation in staking. + The network will charge a token approval fee to verify that you are authorizing the use of your token for the staking. By using staking functionality, you agree with provider’s %1$s and %2$s Locked Migrate @@ -780,6 +780,7 @@ Unbonding Unlock Unlocking + Amount exceeds staked balance Unstaked Unstaking Unstaking assets %s @@ -801,6 +802,7 @@ Meet Tangem Exchange, buy NFT\'s, make loans and deposits in more than 100 different decentralized services Web 3.0 Compatible + The network will charge a token approval fee to verify that you are authorizing the use of your token for the swap. Exchange more tokens at better rates directly in your wallet. New Swap Provider Available! The amount includes:\n• service provider\'s fee\n• network fee for sending %s from the exchange back to the user\'s address. diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt index 47745c4c89..ecfbc65c33 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt @@ -72,6 +72,7 @@ internal class ShowApprovalBottomSheetTransformer( formatArgs = wrappedList(cryptoCurrency.symbol), ), dialogText = resourceReference(R.string.give_permission_staking_footer), + footerText = resourceReference(R.string.staking_give_permission_fee_footer), onChangeApproveType = prevState.clickIntents::onApproveTypeChange, ), onCancel = onDismiss, diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index 96ae124966..1e509b2280 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -1190,6 +1190,7 @@ internal class StateBuilder( formatArgs = wrappedList(providerName, permissionDataState.currency), ), dialogText = resourceReference(R.string.swapping_approve_information_text), + footerText = resourceReference(R.string.swap_give_permission_fee_footer), ) } } From 0d1555d7c684760626657542bae999d5d17e08dd Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Oct 2024 14:23:03 +0300 Subject: [PATCH 30/34] Updated on 2026-08-14 --- .../core/ui/components/currency/fiaticon/FiatIcon.kt | 2 +- core/ui/src/main/res/drawable/ic_shape_circle.xml | 9 --------- core/ui/src/main/res/drawable/ic_shape_circle_40.xml | 9 +++++++++ 3 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 core/ui/src/main/res/drawable/ic_shape_circle.xml create mode 100644 core/ui/src/main/res/drawable/ic_shape_circle_40.xml diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/currency/fiaticon/FiatIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/components/currency/fiaticon/FiatIcon.kt index 13462984c2..0de3e1e864 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/currency/fiaticon/FiatIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/currency/fiaticon/FiatIcon.kt @@ -24,7 +24,7 @@ fun FiatIcon( size: Dp, isGrayscale: Boolean, modifier: Modifier = Modifier, - @DrawableRes fallbackResId: Int = R.drawable.ic_shape_circle, + @DrawableRes fallbackResId: Int = R.drawable.ic_shape_circle_40, ) { val iconData: Any = if (url.isNullOrBlank()) fallbackResId else url val alpha = if (isGrayscale) GRAY_SCALE_ALPHA else 1f diff --git a/core/ui/src/main/res/drawable/ic_shape_circle.xml b/core/ui/src/main/res/drawable/ic_shape_circle.xml deleted file mode 100644 index 59a662d141..0000000000 --- a/core/ui/src/main/res/drawable/ic_shape_circle.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/core/ui/src/main/res/drawable/ic_shape_circle_40.xml b/core/ui/src/main/res/drawable/ic_shape_circle_40.xml new file mode 100644 index 0000000000..d618196f7b --- /dev/null +++ b/core/ui/src/main/res/drawable/ic_shape_circle_40.xml @@ -0,0 +1,9 @@ + + + From 70af9325c315a5a3ce3169b2145b2e3d599ed5c4 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Oct 2024 15:33:47 +0300 Subject: [PATCH 31/34] Updated on 2026-08-14 --- .../redux/OnboardingWalletMiddleware.kt | 4 +-- .../wallet/ui/OnboardingWalletFragment.kt | 31 ++++++++++++------- .../res/layout/item_backup_info_adapter.xml | 4 +-- gradle/dependencies.toml | 2 +- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index b006532804..42ef53fa15 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -660,7 +660,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) // All cardIds may already be activated if the backup was skipped before. if (notActivatedCardIds.isEmpty()) { delay(1000) - store.dispatch(BackupAction.BackupFinished(userWallet?.walletId)) + store.dispatchWithMain(BackupAction.BackupFinished(userWallet?.walletId)) return@launch } @@ -669,7 +669,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) store.state.globalState.onboardingState.onboardingManager?.finishActivation(notActivatedCardIds) handleFinishBackup(requireNotNull(scanResponse)) delay(1000) - store.dispatch(BackupAction.BackupFinished(userWalletId = userWallet?.walletId)) + store.dispatchWithMain(BackupAction.BackupFinished(userWalletId = userWallet?.walletId)) } } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index 07d83bda21..b80aa53ebb 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -17,6 +17,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.ui.Modifier import androidx.core.view.MenuProvider import androidx.fragment.app.viewModels +import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.transition.TransitionManager import by.kirich1409.viewbindingdelegate.viewBinding @@ -574,22 +575,28 @@ class OnboardingWalletFragment : } animator.showSuccess { - flCardsContainer.hide() - imvCardBackground.hide() - showConfetti(true) - imvSuccess.alpha = 0f - imvSuccess.show() - imvSuccess.animate()?.alpha(1f)?.duration = 400 + if (lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) { + flCardsContainer.hide() + imvCardBackground.hide() + showConfetti(true) + imvSuccess.alpha = 0f + imvSuccess.show() + imvSuccess.animate()?.alpha(1f)?.duration = 400 + } } } - internal fun showConfetti(show: Boolean) = with(binding.vConfetti) { - lavConfetti.show(show) + internal fun showConfetti(show: Boolean) { + if (lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) { + with(binding.vConfetti) { + lavConfetti.show(show) - if (show) { - lavConfetti.playAnimation() - } else { - lavConfetti.cancelAnimation() + if (show) { + lavConfetti.playAnimation() + } else { + lavConfetti.cancelAnimation() + } + } } } diff --git a/app/src/main/res/layout/item_backup_info_adapter.xml b/app/src/main/res/layout/item_backup_info_adapter.xml index 469434318b..46b359a8f1 100644 --- a/app/src/main/res/layout/item_backup_info_adapter.xml +++ b/app/src/main/res/layout/item_backup_info_adapter.xml @@ -23,9 +23,9 @@ android:id="@+id/tv_body" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="64dp" + android:layout_marginStart="32dp" android:layout_marginTop="10dp" - android:layout_marginEnd="64dp" + android:layout_marginEnd="32dp" android:textColor="@color/text_secondary" android:textAlignment="center" tools:text="Body" diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 87e70174f7..86575e6cfd 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.17-830" +tangemBlockchainSdk = "release-app_5.17-831" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From ed541901dc7959999d4c5325d695e8f8c153b70e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Oct 2024 16:00:33 +0300 Subject: [PATCH 32/34] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 2 +- core/res/src/main/res/values-es/strings.xml | 4 +++- core/res/src/main/res/values-fr/strings.xml | 4 +++- core/res/src/main/res/values-ja/strings.xml | 1 + core/res/src/main/res/values-ru/strings.xml | 4 ++-- core/res/src/main/res/values-uk-rUA/strings.xml | 14 +++++++++++--- core/res/src/main/res/values/strings.xml | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 66ec0cf56b..e2bb4db22f 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -307,7 +307,7 @@ Unbegrenzt Karte oder Ring bestellen Karte oder Ring scannen - Diese Informationen wurden mithilfe von KI generiert.\n Tippe hier, wenn Du Fehler finden. + Diese Informationen wurden mithilfe von KI generiert.\nTippe hier, wenn Du Fehler finden. Um den Zugangscode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um den Passcode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. Um die Wallet zu erstellen, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs. diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index c1aba0b90e..6703130663 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -714,13 +714,14 @@ Reclamo de recompensa Método para recibir recompensas por apuesta.\nPuede ser automático, donde la recompensa se acredita en tu dirección, o manual, donde debes retirar la recompensa creando una transacción para recibirla. Calendario de recompensas - Este es un cronograma que determina cuándo los participantes reciben sus recompensas. + Este es un cronograma que determina cuándo los participantes reciben sus recompensas. La duración de la distribución de recompensas puede variar ligeramente según el validador y la carga de la red. Recompensas para reclamar: %s Staking %s Periodo de disociación El período que debes esperar después de solicitar el retiro de fondos del staking antes de que los tokens estén disponibles. Periodo de calentamiento El tiempo permitido para activar la participación en la apuesta. + La red cobrará una tarifa de aprobación de token para verificar que usted está autorizando el uso de su token para el staking. Al utilizar la función de staking, usted acepta %1$s y %2$s del proveedor Bloqueado Migrar @@ -779,6 +780,7 @@ Desunión Desbloquear Desbloqueando + El monto excede el saldo apostado Sin staking Unstaking Detenando el staking de activos %s diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 90336959da..80f7d2e337 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -714,13 +714,14 @@ Réclamation de récompense Méthode de réception des récompenses de staking.\nElle peut être automatique, où la récompense est créditée sur votre adresse, ou manuelle, où vous devez retirer la récompense en créant une transaction pour la recevoir. Calendrier de récompenses - Il s\'agit d\'un calendrier qui détermine le moment où les participants au staking reçoivent leurs récompenses. + Il s\'agit d\'un calendrier qui détermine le moment où les participants au staking reçoivent leurs récompenses. La durée de distribution des récompenses peut varier légèrement en fonction du validateur et de la charge du réseau. Récompenses à réclamer: %s Staking %s Période de dissociation La période que vous devez attendre après avoir demandé le retrait des fonds du staking avant que les jetons ne soient disponibles. Période d\'échauffement Le temps imparti pour activer la participation au staking. + Le réseau facturera des frais d’approbation de jeton pour vérifier que vous autorisez l’utilisation de votre jeton pour le jalonnement. En utilisant la fonctionnalité de staking, vous acceptez les %1$s et %2$s du fournisseur Bloqué Migrer @@ -779,6 +780,7 @@ Dissociation Débloquer Déverrouillage + Le montant dépasse le solde misé Non-staké Unstaking En train de destaker les actifs %s diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index ace404dc50..d5ae3921d5 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -711,6 +711,7 @@ ステーキングから資金の引き出しを要求した後、トークンが利用可能になるまでの待機期間。 ウォームアップ期間 ステーキングへの参加を有効にするために割り当てられた時間。 + ネットワークは、ステーキングのためにトークンの使用を承認していることを確認するために、トークン承認手数料を請求します。 ステーキング機能を使用すると、プロバイダーの%1$sと%2$sに同意したことになります ロック中 移行 diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 398ba31f1e..c007d49526 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -518,7 +518,7 @@ Ваша seed-фраза - + %d %d слова %d слов %d слов @@ -729,7 +729,7 @@ Способ вознаграждения Способ получения вознаграждений за стейкинг. Оно может зачисляться автоматически на ваш адрес или вручную, когда вознаграждение нужно вывести, создав транзакцию на её получение. Период вознагражения - Это период, определяющий, когда участники стейкинга получат свои вознаграждения. + Это график, который определяет, когда участники стейкинга получают свои награды. Время распределения наград может немного варьироваться в зависимости от валидатора и нагрузки сети. Вознаграждение для получения: %s Стейкинг %s Период отзыва diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index 1cf3576b6a..416b3bdb21 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -85,10 +85,12 @@ Перейдіть до %1$s Ви не надали доступ до камери, будь ласка, змініть налаштування конфіденційності Скасувати + Змінити Виберіть дію Отримати Отримати винагороди Закрити + Підтвердити Продовжити Копіювати Скопіювати адресу @@ -343,7 +345,7 @@ Ринкова капіталізація Спочатку був створений блокчейн криптовалюти Основна мережа - Використання неосновних мереж для токенів дозволяє забезпечити крос-блокчейн інтероперабельність, що дає змогу використовувати активи в різноманітних децентралізованих додатках та смарт-контрактах на різних платформах. Однак це часто вимагає наявності кастодіана або смарт-контракту для безпечного зберігання оригінального активу, що вводить централізацію та ризик контрагента. + Використання нерідних мереж для токенів забезпечує сумісність між блокчейнами, дозволяючи використовувати активи в різноманітних децентралізованих програмах і смарт-контрактах на різних платформах. Однак для цього часто використовується зберігач або смарт-контракт для надійного зберігання оригінального активу, вводячи централізацію та ризик контрагента. Не оригінальний або первинний блокчейн, на якому розміщено токен Неосновні мережі Оберіть мережі @@ -518,7 +520,7 @@ Ваша seed-фраза - + %d слово %d слова %d слів %d слів @@ -565,6 +567,9 @@ Відновлення коду доступу Ідентичні картки Код доступу + Наші сервіси недоступні в цій країні + Змінити або підтвердити + Ваше місце проживання визначено як Групами За балансом Сортування токенів @@ -729,13 +734,14 @@ Отримати винагороду Метод отримання винагород за стейкінг.\nВін може зараховуватися автоматично на вашу адресу або вручну, коли винагороду треба вивести, створивши транзакцію на її отримання. Розклад винагород - Це період, який визначає, коли учасники стейкінгу отримують свої винагороди. + Це графік, який визначає, коли учасники стейкінгу отримують свої винагороди. Час розподілу винагород може дещо відрізнятися залежно від валідатора та навантаження на мережу. Нагороди для отримання: %s Стейкінг %s Період розблокування Період, який ви повинні чекати після запиту на виведення коштів зі стейкінгу, перш ніж токени стануть доступними. Період блокування Відведений час для активації участі в стейкінгу. + Комісія мережі за схвалення токену, щоб верифікувати, що саме ви даєте дозвіл на використання вашого токена для стейкінгу. Використовуючи функцію стейкінгу, ви погоджуєтесь з %1$s та %2$s Заблоковано Перемістити @@ -794,6 +800,7 @@ Розблокування Розблокувати Розблокування + Сума перевищує баланс стейкінгу Вивід зі стейкінгу Зняти зі стейкінгу Виведення зі стейкінгу %s @@ -902,6 +909,7 @@ Запит на створення транзакції для %1$s\n%2$s\n\nСума: %3$s\nКомісія: %4$s\nВсього: %5$s\nБаланс: %6$s Неможливо відправити транзакцію. Недостатньо коштів. Не вдалося встановити сеанс WalletConnect. Будь ласка, спробуйте пізніше. + Не всі токени додано до вашого списку. Будь ласка, додайте їх спочатку і спробуйте ще раз. Відсутні токени:\n Не вдалося підписати повідомлення.\nБудь ласка, спробуйте ще раз Не вдалося створити сеанс WalletConnect за відведений час. Будь ласка, спробуйте пізніше. Запит на підключення сеансу WalletConnect містить непідтримувані блокчейни. Непідтримувані блокчейни:\n diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 9b1c743f98..5a6cfa6ddc 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -506,7 +506,7 @@ Your seed phrase - + %d word %d words To import your wallet, enter your seed phrase in the field below From 34a17e2c6526c626f5d917d03a5ce5191da910ac Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Oct 2024 12:31:50 +0300 Subject: [PATCH 33/34] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 9 +++++++++ core/res/src/main/res/values-ru/strings.xml | 3 ++- core/res/src/main/res/values-uk-rUA/strings.xml | 2 +- core/res/src/main/res/values/strings.xml | 2 +- gradle/dependencies.toml | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index e2bb4db22f..9fa2f27509 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -83,10 +83,12 @@ Gehe zu %1$s D hast keinen Zugang zur Kamera erteilt, bitte passe deine Datenschutzeinstellungen an Abbrechen + Ändern Aktion wählen Beanspruchen Stakingbelohnungen beanstpruchen Schließen + Bestätigen Weiter Kopieren Adresse kopieren @@ -549,6 +551,9 @@ Zugangscode wiederherstellen Identische Karten oder Ring Zugangscode + Unsere Dienstleistungen sind in diesem Land nicht verfügbar + Änder oder bestätige bitte + Dein Wohnsitz wurde identifiziert als Gruppe erstellen Nach Guthaben Token organisieren @@ -716,6 +721,7 @@ Der Zeitraum, den du nach der Beantragung der Abhebung von Geldern aus dem Staking warten musst, bevor die Token verfügbar werden. Aufwärmphase Die zugewiesene Zeit für die Aktivierung der Teilnahme am Staking. + Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Du die Verwendung Deines Tokens für das Staking genehmigst. Indem Du die Staking-Funktionalität nutzt, stimmst Du den %1$s und %2$s des Anbieters zu. Gesperrt Migrieren @@ -755,6 +761,7 @@ Alle %s Täglich Alle %s + Jeder Pro Epoche Pro Ära Stündlich @@ -763,6 +770,7 @@ Belohnungen Stake gesperrt Mehr staken + Du setzt %1$s ein und ethältst Deine Belohnung %2$s Zum Entsperren antippen Tippe zum Entsperren oder Abstimmen Zum abheben antippen @@ -772,6 +780,7 @@ Lösen der Bindungen Gelocktes unlocken Entsperren + Der Betrag übersteigt das eingesetzte Guthaben Unstaken Staking beenden Unstake Assets %s diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index c007d49526..99a8ff0869 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -85,6 +85,7 @@ Перейти на %1$s Вы не предоставили доступ к камере, пожалуйста, измените настройки конфиденциальности. Отмена + Изменить Выберите действие Получить Вывести награду @@ -518,7 +519,7 @@ Ваша seed-фраза - %d + %d слова %d слов %d слов diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index 416b3bdb21..d9837db78c 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -520,7 +520,7 @@ Ваша seed-фраза - %d слово + %d слова %d слів %d слів diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 5a6cfa6ddc..9b1c743f98 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -506,7 +506,7 @@ Your seed phrase - %d word + %d words To import your wallet, enter your seed phrase in the field below diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 86575e6cfd..253954e870 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.17-831" +tangemBlockchainSdk = "release-app_5.17-833" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.17-392" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From b1ced989ae29151edab42a89b28125870a95abea Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Oct 2024 14:58:44 +0300 Subject: [PATCH 34/34] Updated on 2026-08-14 --- .../tangem/core/analytics/models/AnalyticsParam.kt | 1 + .../data/staking/DefaultStakingErrorResolver.kt | 2 +- .../converters/error/StakeKitErrorConverter.kt | 6 +++--- .../domain/staking/model/stakekit/StakingError.kt | 2 +- .../impl/analytics/StakingAnalyticsEvents.kt | 11 ++++++++--- .../state/helpers/StakingFeeTransactionLoader.kt | 2 +- .../state/helpers/StakingTransactionSender.kt | 14 +++++++------- .../presentation/viewmodel/StakingViewModel.kt | 8 ++++---- 8 files changed, 26 insertions(+), 20 deletions(-) diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt index 94637867c0..9600cda393 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt @@ -178,6 +178,7 @@ sealed class AnalyticsParam { const val ERROR_DESCRIPTION = "Error Description" const val ERROR_CODE = "Error Code" const val ERROR_KEY = "Error Key" + const val ERROR_TYPE = "Error Type" const val CREATION_TYPE = "Creation type" const val DAPP_NAME = "DApp Name" const val DAPP_URL = "DApp Url" diff --git a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingErrorResolver.kt b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingErrorResolver.kt index a991a4e1f6..8568980711 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingErrorResolver.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingErrorResolver.kt @@ -13,7 +13,7 @@ internal class DefaultStakingErrorResolver( return if (throwable is ApiResponseError.HttpException) { stakeKitErrorConverter.convert(throwable.errorBody.orEmpty()) } else { - StakingError.UnknownError + StakingError.UnknownError() } } } \ No newline at end of file diff --git a/data/staking/src/main/java/com/tangem/data/staking/converters/error/StakeKitErrorConverter.kt b/data/staking/src/main/java/com/tangem/data/staking/converters/error/StakeKitErrorConverter.kt index 39aef18e1b..8b303f9292 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/converters/error/StakeKitErrorConverter.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/converters/error/StakeKitErrorConverter.kt @@ -14,7 +14,7 @@ internal class StakeKitErrorConverter( @Suppress("CyclomaticComplexMethod", "LongMethod") override fun convert(value: String): StakingError { return try { - val stakeKitErrorResponse = jsonAdapter.fromJson(value) ?: return StakingError.UnknownError + val stakeKitErrorResponse = jsonAdapter.fromJson(value) ?: return StakingError.UnknownError(value) if (stakeKitErrorResponse.type == AccessDeniedErrorTypeDTO.GEO_LOCATION) { StakingError.UnavailableDueToGeolocationError( @@ -106,10 +106,10 @@ internal class StakeKitErrorConverter( StakingError.GRTStakingDisabledError StakeKitErrorMessageDTO.GRT_STAKING_DISABLED_LEDGER_LIVE_ERROR -> StakingError.GRTStakingDisabledLedgerLiveError - else -> StakingError.UnknownError + else -> StakingError.UnknownError(value) } } catch (e: Exception) { - StakingError.UnknownError + StakingError.UnknownError(value) } } } \ No newline at end of file diff --git a/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/StakingError.kt b/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/StakingError.kt index 9fc68971f3..b02b33741f 100644 --- a/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/StakingError.kt +++ b/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/StakingError.kt @@ -92,5 +92,5 @@ sealed class StakingError { data class DataError(val cause: Throwable) : StakingError() - data object UnknownError : StakingError() + data class UnknownError(val message: String? = null) : StakingError() } \ No newline at end of file diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt index a57023584b..cc612804f3 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt @@ -2,6 +2,7 @@ package com.tangem.features.staking.impl.analytics import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.core.analytics.models.AnalyticsParam +import com.tangem.domain.staking.model.stakekit.StakingError import com.tangem.domain.staking.model.stakekit.action.StakingActionType internal sealed class StakingAnalyticsEvents( @@ -147,14 +148,18 @@ internal sealed class StakingAnalyticsEvents( data object ButtonExplore : StakingAnalyticsEvents(event = "Button - Explore") - data class StakingError( + data class StakekitError( val token: String, - val errorType: String, + val stakeKitError: StakingError, ) : StakingAnalyticsEvents( event = "Errors", params = mapOf( AnalyticsParam.TOKEN_PARAM to token, - "ErrorType" to errorType, + AnalyticsParam.ERROR_TYPE to if (stakeKitError is StakingError.UnknownError) { + stakeKitError.message ?: "Unknown" + } else { + stakeKitError.javaClass.simpleName + }, ), ) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingFeeTransactionLoader.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingFeeTransactionLoader.kt index 33559d6211..cfc9a504be 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingFeeTransactionLoader.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingFeeTransactionLoader.kt @@ -135,7 +135,7 @@ internal class StakingFeeTransactionLoader @AssistedInject constructor( } if (result.isNullOrEmpty()) { - onStakingFeeError(StakingError.UnknownError) + onStakingFeeError(StakingError.UnknownError()) return } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingTransactionSender.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingTransactionSender.kt index f334c448f4..f330139497 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingTransactionSender.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingTransactionSender.kt @@ -84,7 +84,7 @@ internal class StakingTransactionSender @AssistedInject constructor( ) if (fullTransactionsData.isNullOrEmpty()) { - onConstructError(StakingError.UnknownError) + onConstructError(StakingError.UnknownError()) return } @@ -199,9 +199,9 @@ internal class StakingTransactionSender @AssistedInject constructor( ), ).getOrElse { analyticsEventHandler.send( - StakingAnalyticsEvents.StakingError( - token = state.cryptoCurrencyName, - errorType = it.javaClass.simpleName, + StakingAnalyticsEvents.StakekitError( + token = state.cryptoCurrencySymbol, + stakeKitError = it, ), ) onConstructError(it) @@ -257,9 +257,9 @@ internal class StakingTransactionSender @AssistedInject constructor( ) .onLeft { error -> analyticsEventHandler.send( - StakingAnalyticsEvents.StakingError( - token = stateController.value.cryptoCurrencyName, - errorType = error.javaClass.simpleName, + StakingAnalyticsEvents.StakekitError( + token = stateController.value.cryptoCurrencySymbol, + stakeKitError = error, ), ) saveUnsubmittedHashUseCase.invoke( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt index a6a90596ef..93a483ce0a 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt @@ -299,9 +299,9 @@ internal class StakingViewModel @Inject constructor( }, onStakingFeeError = { error -> analyticsEventHandler.send( - StakingAnalyticsEvents.StakingError( + StakingAnalyticsEvents.StakekitError( value.cryptoCurrencySymbol, - error.javaClass.simpleName, + error, ), ) stateController.update(AddStakingErrorTransformer()) @@ -338,9 +338,9 @@ internal class StakingViewModel @Inject constructor( onConstructError = { error -> Timber.e(error.toString()) analyticsEventHandler.send( - StakingAnalyticsEvents.StakingError( + StakingAnalyticsEvents.StakekitError( token = value.cryptoCurrencySymbol, - errorType = error.javaClass.simpleName, + stakeKitError = error, ), ) stakingEventFactory.createStakingErrorAlert(error)