From 0e041b79cf29b90b3ee28d334c8e940ec580bfef Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Mon, 30 Mar 2026 18:24:39 +0200 Subject: [PATCH] Update dependencies and Gradle, Minimum SDK bumped to 23 --- app/build.gradle | 90 ++++++++---------- .../RepositoryInstrumentedTest.kt | 21 ++-- .../me/zobrist/tichucounter/MainActivity.kt | 5 +- .../tichucounter/domain/ReviewService.kt | 17 ++-- .../tichucounter/domain/SettingsAdapter.kt | 19 ++-- .../tichucounter/repository/GameRepository.kt | 12 +-- .../tichucounter/ui/counter/KeyboardView.kt | 2 + .../tichucounter/ui/history/HistoryView.kt | 46 ++++----- .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4491 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2734 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6555 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10515 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 14825 -> 0 bytes app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - build.gradle | 12 +-- gradle.properties | 6 +- gradle/gradle-daemon-jvm.properties | 13 +++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 3 + 21 files changed, 122 insertions(+), 133 deletions(-) delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 gradle/gradle-daemon-jvm.properties diff --git a/app/build.gradle b/app/build.gradle index 468c657..f9a15f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,8 @@ plugins { id 'com.android.application' - id 'kotlin-android' id 'com.google.dagger.hilt.android' - id 'kotlin-kapt' id 'com.google.devtools.ksp' + id 'org.jetbrains.kotlin.plugin.compose' } // Create a variable called keystorePropertiesFile, and initialize it to your @@ -29,7 +28,7 @@ android { defaultConfig { applicationId "me.zobrist.tichucounter" - minSdkVersion 21 + minSdkVersion 23 targetSdkVersion 36 versionCode versionProperties["versionCode"].toInteger() versionName "${versionMajor}.${versionMinor}.${versionProperties["versionCode"].toInteger()}" @@ -47,7 +46,7 @@ android { } } signingConfigs { - create("release") { + register("release") { keyAlias = keystoreProperties["keyAlias"] keyPassword = keystoreProperties["keyPassword"] storeFile = file(keystoreProperties["storeFile"]) @@ -65,19 +64,14 @@ android { buildFeatures { compose = true + buildConfig true } - composeOptions { - kotlinCompilerExtensionVersion = "1.5.14" - } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - } namespace 'me.zobrist.tichucounter' packagingOptions { resources { @@ -88,48 +82,42 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.13.1' - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation "androidx.compose.material3:material3:1.2.1" - implementation 'com.google.android.play:review:2.0.1' - implementation 'com.google.android.play:review-ktx:2.0.1' - implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7' - implementation 'androidx.navigation:navigation-ui-ktx:2.7.7' + implementation "org.jetbrains.kotlin:kotlin-stdlib:2.2.10" + implementation 'androidx.core:core-ktx:1.17.0' + implementation 'androidx.appcompat:appcompat:1.7.1' + implementation "androidx.compose.material3:material3:1.4.0" + implementation 'com.google.android.play:review:2.0.2' + implementation 'com.google.android.play:review-ktx:2.0.2' + implementation 'com.google.code.gson:gson:2.13.2' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' + implementation 'androidx.navigation:navigation-fragment-ktx:2.9.7' + implementation 'androidx.navigation:navigation-ui-ktx:2.9.7' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.4' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4' - implementation 'androidx.fragment:fragment-ktx:1.8.2' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.10.0' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0' + implementation 'androidx.fragment:fragment-ktx:1.8.9' implementation 'androidx.preference:preference-ktx:1.2.1' - implementation 'androidx.recyclerview:recyclerview:1.3.2' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.4' - implementation 'androidx.compose.material:material-icons-extended:1.6.8' - implementation "com.google.accompanist:accompanist-systemuicontroller:0.27.0" - implementation 'androidx.activity:activity-compose:1.9.1' - implementation "androidx.compose.ui:ui:1.6.8" - implementation "androidx.compose.ui:ui-tooling-preview:1.6.8" - implementation "androidx.compose.runtime:runtime-livedata:1.6.8" - implementation "androidx.navigation:navigation-compose:2.7.7" - implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4" + implementation 'androidx.recyclerview:recyclerview:1.4.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.10.0' + implementation 'androidx.compose.material:material-icons-extended:1.7.8' + implementation "com.google.accompanist:accompanist-systemuicontroller:0.36.0" + implementation 'androidx.activity:activity-compose:1.12.3' + implementation "androidx.compose.ui:ui:1.10.2" + implementation "androidx.compose.ui:ui-tooling-preview:1.10.2" + implementation "androidx.compose.runtime:runtime-livedata:1.10.2" + implementation "androidx.navigation:navigation-compose:2.9.7" + implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0" testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' - implementation "com.google.dagger:hilt-android:2.51.1" - androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.6.8" - debugImplementation "androidx.compose.ui:ui-tooling:1.6.8" - debugImplementation "androidx.compose.ui:ui-test-manifest:1.6.8" - kapt "com.google.dagger:hilt-compiler:2.51.1" - annotationProcessor "androidx.room:room-compiler:2.6.1" - implementation "androidx.room:room-runtime:2.6.1" - ksp "androidx.room:room-compiler:2.6.1" - implementation "androidx.room:room-ktx:2.6.1" - implementation "androidx.multidex:multidex:2.0.1" - api "androidx.navigation:navigation-fragment-ktx:2.7.7" + androidTestImplementation 'androidx.test.ext:junit:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0' + implementation "com.google.dagger:hilt-android:2.59" + androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.10.2" + debugImplementation "androidx.compose.ui:ui-tooling:1.10.2" + debugImplementation "androidx.compose.ui:ui-test-manifest:1.10.2" + ksp "com.google.dagger:hilt-compiler:2.59" + annotationProcessor "androidx.room:room-compiler:2.8.4" + implementation "androidx.room:room-runtime:2.8.4" + ksp "androidx.room:room-compiler:2.8.4" + implementation "androidx.room:room-ktx:2.8.4" + api "androidx.navigation:navigation-fragment-ktx:2.9.7" } - -// Allow references to generated code -kapt { - correctErrorTypes true -} \ No newline at end of file diff --git a/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt b/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt index 0373232..779528f 100644 --- a/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt +++ b/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt @@ -10,10 +10,11 @@ import me.zobrist.tichucounter.data.AppDatabase import me.zobrist.tichucounter.data.GameDao import me.zobrist.tichucounter.data.RoundDao import me.zobrist.tichucounter.repository.GameRepository -import org.junit.After +import org.junit.jupiter.api.AfterEach import org.junit.Assert.* -import org.junit.Before -import org.junit.Test +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.AfterEach import org.junit.runner.RunWith import java.io.IOException import java.util.* @@ -30,7 +31,7 @@ class RepositoryInstrumentedTest { private lateinit var repository: GameRepository private lateinit var db: AppDatabase - @Before + @BeforeEach fun createDb() { val context = ApplicationProvider.getApplicationContext() db = Room.inMemoryDatabaseBuilder( @@ -42,7 +43,7 @@ class RepositoryInstrumentedTest { repository = GameRepository(gameDao, roundDao) } - @After + @AfterEach @Throws(IOException::class) fun closeDb() { db.close() @@ -59,7 +60,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun modifyNames() = runTest { @@ -109,7 +110,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun setActive() = runTest { @@ -138,7 +139,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun addRoundToActiveGame() = runTest { @@ -211,7 +212,7 @@ class RepositoryInstrumentedTest { repository.deleteLastRound() } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun deleteInactive() = runTest { @@ -239,7 +240,7 @@ class RepositoryInstrumentedTest { assertEquals(6, roundDao.getAll().count()) } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun deleteById() = runTest { diff --git a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index 5aac582..1c2da52 100644 --- a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -53,7 +53,6 @@ import me.zobrist.tichucounter.domain.SettingsAdapter import me.zobrist.tichucounter.domain.Theme import me.zobrist.tichucounter.domain.TopBarAction import me.zobrist.tichucounter.domain.TopBarState -import me.zobrist.tichucounter.domain.navigate import me.zobrist.tichucounter.repository.GameRepository import me.zobrist.tichucounter.ui.AppTheme import me.zobrist.tichucounter.ui.MainViewModel @@ -198,7 +197,7 @@ class MainActivity : AppCompatActivity() { drawerState.close() } - navController.navigate(it) + navController.navigate(it.name) } } ) { @@ -292,7 +291,7 @@ class MainActivity : AppCompatActivity() { HistoryList( historyViewModel, snackbarHostState - ) { navController.navigate(Route.COUNTER) } + ) { navController.navigate(Route.COUNTER.name) } } composable(Route.SETTINGS.name) { topBarState = diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt b/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt index 3ee1b9a..d604eaf 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt @@ -7,27 +7,28 @@ import com.google.android.play.core.review.ReviewManagerFactory import dagger.hilt.android.qualifiers.ActivityContext import java.util.Date import javax.inject.Inject +import androidx.core.content.edit class ReviewService @Inject constructor(@ActivityContext private val appContext: Context) { private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext) - private val THREE_MONTHS: Long = 7776000000 + private val threeMonths: Long = 7776000000 private var requestCalled: Int get() = sharedPreferences.getInt("requestCalled", 0) set(value) { - val editor = sharedPreferences.edit() - editor.putInt("requestCalled", value) - editor.apply() + sharedPreferences.edit { + putInt("requestCalled", value) + } } private var nextReviewedDate: Date get() = Date(sharedPreferences.getLong("lastReviewedDate", 0)) set(value) { - val editor = sharedPreferences.edit() - editor.putLong("lastReviewedDate", value.time) - editor.apply() + sharedPreferences.edit { + putLong("lastReviewedDate", value.time) + } } fun request() { @@ -36,7 +37,7 @@ class ReviewService @Inject constructor(@ActivityContext private val appContext: if (requestCalled >= 3) { if (nextReviewedDate.time < System.currentTimeMillis()) { requestCalled = 0 - nextReviewedDate = Date(System.currentTimeMillis() + THREE_MONTHS) + nextReviewedDate = Date(System.currentTimeMillis() + threeMonths) val manager = ReviewManagerFactory.create(appContext) diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt index 27a4a77..ffe3476 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch import javax.inject.Inject import javax.inject.Singleton +import androidx.core.content.edit enum class Theme { DEFAULT, DARK, LIGHT } enum class Language(val value: LocaleListCompat) { @@ -93,20 +94,20 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex } private fun updatePreference(name: String?, value: String) { - val editor = sharedPreferences.edit() - editor.putString(name, value) - editor.apply() + sharedPreferences.edit { + putString(name, value) + } } private fun updatePreference(name: String?, value: Boolean) { - val editor = sharedPreferences.edit() - editor.putBoolean(name, value) - editor.apply() + sharedPreferences.edit { + putBoolean(name, value) + } } private fun updatePreference(name: String?, value: Int) { - val editor = sharedPreferences.edit() - editor.putInt(name, value) - editor.apply() + sharedPreferences.edit { + putInt(name, value) + } } } \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt index 1a5ac13..afc61f6 100644 --- a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt +++ b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt @@ -117,17 +117,15 @@ class GameRepository @Inject constructor( } suspend fun restoreLastDeletedGame() { - if (deletedGame == null) { - return - } - val revert = deletedGame!! + + val snapshot = deletedGame ?: return deletedGame = null withContext(Dispatchers.IO) { - gameDao.insert(revert.game) + val uid = gameDao.insert(snapshot.game.copy(uid = 0)) - revert.rounds.forEach { - roundDao.insert(it) + snapshot.rounds.forEach { + roundDao.insert(Round(uid, it.scoreA, it.scoreB)) } } } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt index 8a02788..57a2df9 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt @@ -1,5 +1,6 @@ package me.zobrist.tichucounter.ui.counter +import android.annotation.SuppressLint import android.content.res.Configuration import androidx.compose.animation.core.RepeatMode import androidx.compose.animation.core.animateFloat @@ -343,6 +344,7 @@ fun CenteredTextField( } +@SuppressLint("RememberInComposition") @Preview(name = "Light Mode") @Preview(name = "Dark Mode", uiMode = Configuration.UI_MODE_NIGHT_YES, showBackground = true) @Composable diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt index 220cd31..bbaa492 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt @@ -3,7 +3,6 @@ package me.zobrist.tichucounter.ui.history import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -26,7 +25,6 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Badge import androidx.compose.material3.Button import androidx.compose.material3.Card -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarDuration @@ -153,7 +151,6 @@ fun DeleteConfirmDialog(show: Boolean = true, onExecuted: (Boolean) -> Unit = {} } } -@OptIn(ExperimentalFoundationApi::class) @Composable fun HistoryList( games: List, @@ -166,18 +163,18 @@ fun HistoryList( LazyColumn(state = lazyListState) { items( items = games, - key = { it.hashCode() }) { + key = { it.game.uid} ) { if (it.game.active) { HistoryListItem( it, Modifier - .animateItemPlacement() + .animateItem() .padding(2.dp) ) } else { DismissibleHistoryListItem( it, - Modifier.animateItemPlacement(), + Modifier.animateItem(), onOpenClicked, onDeleteClicked ) @@ -190,7 +187,7 @@ fun HistoryList( .padding(start = 4.dp, end = 4.dp, top = 10.dp) .align(CenterVertically) .fillMaxWidth() - .animateItemPlacement(), + .animateItem(), onClick = { onDeleteAllClicked() }) { Icon(imageVector = Icons.Outlined.DeleteForever, contentDescription = null) Text(text = stringResource(id = R.string.deleteAll)) @@ -202,7 +199,6 @@ fun HistoryList( } -@OptIn(ExperimentalMaterial3Api::class) @Composable fun DismissibleHistoryListItem( game: GameWithScores, @@ -212,32 +208,25 @@ fun DismissibleHistoryListItem( ) { val density = LocalDensity.current - val dismissState = - rememberSwipeToDismissBoxState(positionalThreshold = { with(density) { 100.dp.toPx() } }, - - confirmValueChange = { - if (it == SwipeToDismissBoxValue.EndToStart) { - onDeleteClicked(game.game.uid) - } - if (it == SwipeToDismissBoxValue.StartToEnd) { - onOpenClicked(game.game.uid) - } - true - }) + val dismissState = rememberSwipeToDismissBoxState(positionalThreshold = { with(density) { 100.dp.toPx() } }) SwipeToDismissBox( modifier = modifier, state = dismissState, enableDismissFromEndToStart = true, enableDismissFromStartToEnd = true, - backgroundContent = { - ItemBackground(dismissState.targetValue) - }, content = { - HistoryListItem(game = game, modifier = Modifier.padding(2.dp)) + backgroundContent = { ItemBackground(dismissState.targetValue) }, + content = { HistoryListItem(game = game, modifier = Modifier.padding(2.dp)) }, + onDismiss = { + when(it) + { + SwipeToDismissBoxValue.EndToStart -> onDeleteClicked(game.game.uid) + SwipeToDismissBoxValue.StartToEnd -> onOpenClicked(game.game.uid) + else -> false + } }) } -@OptIn(ExperimentalMaterial3Api::class) @Composable fun ItemBackground( dismissBoxValue: SwipeToDismissBoxValue @@ -248,7 +237,7 @@ fun ItemBackground( SwipeToDismissBoxValue.StartToEnd -> MaterialTheme.colorScheme.primary else -> MaterialTheme.colorScheme.background - }, label = "" + } ) val textColor by animateColorAsState( when (dismissBoxValue) { @@ -256,10 +245,10 @@ fun ItemBackground( SwipeToDismissBoxValue.StartToEnd -> MaterialTheme.colorScheme.onPrimary else -> MaterialTheme.colorScheme.onBackground - }, label = "" + } ) val scale by animateFloatAsState( - if (dismissBoxValue == SwipeToDismissBoxValue.Settled) 0.75f else 1f, label = "" + if (dismissBoxValue == SwipeToDismissBoxValue.Settled) 0.75f else 1f ) Box( @@ -299,7 +288,6 @@ fun ItemBackground( } } -@OptIn(ExperimentalMaterial3Api::class) @Preview @Composable private fun BackgroundPreview() { diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index ac94b34..0000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 0ec598575a3da18c3c8c30c17bebcdd1af5b2eb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4491 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index fdcbe446c867afb3982cad5cacb3e96bac5140e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2734 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 Vulyyt#3=v(002ovPDHLkV1ls&>oEWT diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 59783623e717067600491d217e6822fa8a5da77e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14825 zcmYjYRa6{JxSU;VaW*)?-8Hy7!Cev@g1bA5yNBRTfCLW-5^Qlua0tPj;O>6;@3{~6 zVdR`SQ(awM-`CSU-7)H_@|b8OXaE3UzEzOXe7VB^J0Qp}XU#hb^+H<<71hrB=n(<<&#?9^36ePVKnRwQhii01k8*UIx7j4k@(6eD^m|r z#DA5%64`zodM$pON9@LPePqQyr{a|+Ja#S?VtKvX!gDO_KAOej9<#Vk(A3<==Hwdp z{{P)FYhqAi_xv6Nf5QF10KOEJHtZ=eSz&Yfat1b649!L~QTbS+P#N4kY|R{On&~1&nE@x3!i~7|T}$A(|M-MI0J)&g z`^3mly0gak!mp*+MM*Q3nn2F*(fMnYy+l`WfL(`Zf$BU#8B3G=4i^2Th4MO5yiWYc z!r89Y)2--+cfU!zQG76QB;r%T%9``d@b#H+&K57hYIbv@FLnpvQH=lor3R8`qF#lQ z>+d6QH{;n(@Pg##Mv7nOA(Dr&YdBg~<`|d8-}5mJx)A&#GL2l|;@A$}-tqA|XtYWx zb94z>Hd9ez>`Z5_hvDSPYFGLfHS{@5TeE9)(v8nQ|GOpvk8w}lHQYt~mJ-&&j8>n%^I4{u6` zEJv~Cc}g(zC35twf%c`vR5PR!qB76R;Mq=P*zZ{a<1#2f^Wg_=;2TCRynQU*Cd~Q4 zJr;$j!8|DU=bbWDSI5{Bk6^Ne_G9~Aei|0pEZb#TbezsPteHm1_ov7HPPMYPpS(O( zN<7#zJF02K2x24xj>c7HCW3NEZ%GH$r;4nk_N(ep9c_$U(s)AmS* z>+PJq`6{~2>7G6Tyq{Qp1iu?hf|?v_6K=tBq1vraF^zIL!j}>6H4QH`g6+fEw^iqg zpetmjY1kh~zIZK%H0nLBjv}Y4S9xtmA${lf?)FfMs*q)A-!P zM!U0a^1ClyB73I#(swk$K)+frn< zeAJmX@-p2SF|WAKljq~zOS;8V?$maP~dK1;9soz0S%f5>0w%-c=v z{3j7(N)xx5fRl%f#rRy?k0<-YhUD?U_Zys{^pp*v3%zu}V#5`a9D#;VKmQD{8%Q{b zczJ*t4T!H`Pi3IfcnAn+9Lg4wtM}hFy*+Eia>hg=-Kc(Wcgz&aB`llKP1J6sCNqAQ zw9!p-QKJ+@2z%AlO7%{dM&`20@CzT(8vCu9nntFv%LqB4E(|^Ab~}g4FNOA&EqCa^ z9M#n~_RRJpZKtnT$1)DP9qaHljRPdDo>~eU#zNxF-Naa)A^%iKd#eHxcoP~&5^tWO zidjCZPf(n{s@#8%5c_a&@f7v;IgD0Z)uMqHhEBK|xr-gXEAJJXgzU|&i})+WKtG4N z>VUUq>6n_FQsfTw93U#Q-!E6er^R@VwHA6vf5@LZS$1{ubJH72Nco}$8XNW$?rL&` zT9(GPWrP`D_)9DSPwHW zRqA~cA?Ckm-O)?)_z3#_W@{@db1z#gE6&qwiZ~&rNv5}7-@HrnX-V_xX)-`A1Ww)0 z`m|IP5b^`-+8x}CpcP$vFOpt`U0TajS}c}xzAN?N4sU??I5>ggLaZNQQU6+Lk%5b# zLbgA1o{ngwxk(jO?hl+ zo`w$}ZiV;I7ndbg`C{JFIhidwbeZ<6yb2>iU~AS`NA3sYf;*0G0{s0;!LMmTziZtP z%k%!bKbGw8TO=SnbNBkUEt>J{6`2&T+G0tXqtc)9a1MSN#%CMana_?tava>5OPt7e zWhDOl6cw*TWR$ew)$(!S)Xiy%g-DP4Cufbh#}=R2#o9AAg^XO&`C#UedJ`jO3qt(} z`jpP9?))gYRi%KE*L2cZW%|N5l&cUsi6AaDNzh$i{o1|!a#K|-BOX_ccB7(XaMs&| zJDZor;<$Zi(E3$mOA&e|X#z>gL@6pU3OS>g_vBm4Tz9OrEMb>3OKt-8?<*y3J_lSi ze><+O6zHwa-SN+M7WYjF7Cl*;qkJ}v<@!-5P82#5Z|h=@NiZ)(f(;S8O))r&51fSi7#1?*2&A}JeTj5*bK8e|7f{QMcR zc}lok4JBb2Di~+NQX`D+pLorx@o*rsY-G_2CI&IArR=0~X$6`XwoGvUw zR;Cl;^$5~VPX{a?E^x;XUk~|QXmH_3JO~P2ZF_;|!H2p{HAJMyShO1n{DU{A^7rnt zJr=n70P3jE>ZCvGdWQ6yl>Idw`RY;?19p`H6{yhgw`#7UiZN}ck3$=Wm;@Y84{7m# zDu4A4(9l}AIrH_sZ^epA=(1q<{pljDONPHG(17bh}Q ze&bs{JT^5GB1d)vBJE0AKKi~w%BKiJv(g#13V!?$EJn5k1&XEgDgAk5I#sbJP6M3B zN5dOARHwXMyV1OPwy z;0_dkIh?1`U)vdL|NPWi_jlp+^8D<;Q-yCjUciTw zxFEnhSa-GlbPHD^Wpg@*H8e}|XDaFPz2R;j4pU`*y-ZNe;@7jpCx99Od&%0FlSQJG zp@4QH95>vT=4)~XjPrUi&G95>@Me$Y{u~&>fmghxjD%=93LYdfdR6wvD5jg%D&(tD&L^)-Z>`Lqx|SCx`PT8TEu1-5qbO$O zGnsSM;%hd?cXlywin(&=u^ZB!Z?``eINp14-~DK6k{9tQn6Sp?Yw1VtuC(u-5kLHX zleeG^O8GuO!Eq`HixK&)=I--JAY@~9M4f#M9C%BgV(FolYv$ z5^>Hr3cG`f)WmRH-z85=#IUQ#5f4f?@Ht|=2c*zh5OF-p`r}(%MQoyI#x4#;l(Y9B z6k=*P%xgQ(QUt$FTn)@=4Y~o3A$_4RS$V$;rIJp3GKvl`EaGP|zh@a&oCSD01 zdxCp#zx$4Z$>5~-1BQwaE@gS}gOC`7lv3_2k*x0k(S4&hZct#K6^aU~bD92{uCL(6 zExYpWq@vne_ew zNuSa|`1K)=@!w2OdWy0F zSH}fDj6{bRRN$DPCJ~rGJxNls!z)BnH!M_tbgAzj!)Xi!_rbreg87x@9n(0<`W5qx zyJWhs%@;+Y%LjT5QIEHHly02`@k(=+en*09 zF7KsNbyu&2z0uqc*W+ZTtBW0zydvM;|I48(qgL*+gaE*GovoE_a{l`LhtG@H`s|L+ zeL;5J_&1DMVEy3)?(cOT<%QB{x89hqbr(Byd|7sI;(v0Ixg_15M^q=Jps7}pm#gvC znZNr4EL#|MSnrndR7KKcsRXMc-H<5EhA9-^GEKn7oR?X@Nt+e#{$)qM!2%;VcRCUp zenWy4!da;94vs|TGc?Jd@7NKOe~3AB{Fv|vieuh+U~U^u(DW&9=NX4p>Y}c9$1o@1 za8{S_nEicE81LfvU~Gg-KT)A^O6N(39=&|QDh+56m3(g`7M%3ez~Os*x{u2x-Ea7W zGUz6oYSLC@vv^i!Mvz}r`I4TK5T zyDRi`MN^R=g#%_+SLzZzH#7E%dtoQceA_!bR8|}qlsBzGNwMZV$lTfdO-&qo!1{_` z<;jAF`vB??0n9BjBVu zROVg7wjQAZ1gv$zdMJpY!zwIAbs_YhTvAbQ1Sb$-iS6kNA5Obd$1HFYo$lZ=lF0PB z?=JTl5OA2RVnYSio`{ePD$x12n6T{T4 zjzmczF0QRIAanRf$s<|^5*-9bof5A_xX$4$dh=x!$AVy7JO>TF+rbwL)I~LIuhG#H zb1T+omhIVASMmydbTF-xgy3KID7!EFnul;qbbvK!0UmK1C)l!3JR`V9ag@HCHRIn{ zCG<{>d6)voS$8JU?vRsJCZmBiig&N|L6D?+d}qY>5tC7Rzm0;Ujc6u|gZbv*v2NFl zV3@nNbiu1~(tFqHeHtG*)=;`{bQ7p2Nvq$5Kt&j$u~|&=@J1)I z0C@0w>HhbXw97a?T5F!%HAmS2AVwY=rX0!Zh#f>1-Y-_kZTeUDW+asI!7@RquO2n@ zhw=g~#2d{zErbj5rYK5)#C`0Q1<(Sa*G}nM^Y35{oP=>x|~KnzfvVVBBgdpK>D`-G@LlFMeOm z!Xs56z3Xr1KLKv`)jP5QRqx}+q2^n4Ibpf?=(Cn>StEm8@yiFe9`*`y1#*^)A7rIN z-k*&Sn$PC{2!-!XK2u8`eE~3$^wQ{I-KjfjM<~$j9JF&33BP0Y{zIg7pVaq6{O%S@ zy+nh}DbIYci2{mm93|LE)a}IWvrp~pa4W=;)`Iv-HzX_z>#I>B4LUMPUR4-noUiM{ z>F8?%azEH{mnTzII;paU4R)cmbc$N(5&DV@YN4lnJ(WrA`?lGiSqmv|#keU|EoYAN zYyk!+W;WRyEt+AQ_yCed!nH~SHZzIfPp z<&(jIQ4n8WX&0lfZ``E)s}pZz44k5c3={T(7Kmy8L13gn6LWqbUf590~w!~dLT*4uJv^9u1qITndCLj~@S9CvTzV>Xl@USo84sfx$% zh5x1ZPLzjim0mR^homs7%fN+@w9!qdsQA?iQO5}MT`JQ*Yyi}D6WV@m0kRsuIsHt- zrmqIyv431Fjnd?ReF=C(-3U*Mn?}~5czD0Xm5!pXaNwnT$rXr)g9PSx_4rkVQ@!4Z z7SbAl|284{D){Q7h@HVl$t!V}U|LrY;3AX~AWy&p8LhwMNvDF{Kbl*Ut{=|oRqllu zzHT3l0g9HytY?q)$N(oPNZc%TGgA~6vNy{n${@!!EBYi;rZFX~m^MmWE8?EW-FgmH zoq!Xaa$YLc1;{nCl>a)W9SO+QbDT{E@P!>Q8LWocMq;SFz!nOj7b=8H*UOv!)fYEH zJR;DAW2+C0ZPj2+C1hDXBjCW>=DfhY2nRFYYM5!b-#F+GWy5JUv^Zc~m*GHi_1C=+ z5jxu3-Afh3GC;LyrB+BHTe7tdcB2nF0(;X%;a(%4#k7${pl({U?$s-E2gB-bSz&_z zLFRra*(S{MwR#)t{25XxmgCYOgVy{NVKSkhku^RY1qUE#ySUduVH7vTydG%)o#%nY zT!;+IWR!|-H2J)ioUx{UDdWK(2oDjXQR-S#lw=4%Z*0`RooEw-n^TZnjt3_hR=W`W zw($J}aV1r7fU{6z$oL+@V8D=ZfgW~%)Fm#kFO5RA9q^l`FRAHi94O6{_@fU@V&4#^6uzbAnbuPownYU=-)3H1;WmIx2XlA7YazkcoI^R8kQ0}13m1j8wFAmH~wAO9TuX&3hQ%qi17d;!u~!b%ZX)D4)*8XsP7@Ue1MT1 zllqexf_fuk5vls_=O{-|qUbU<2qmmjp2IjI_+)qRZJ({DFH8 z5bHNwN^%)o0LGSKAy;M$7_puPBULF_Xtf!y$f#=}!V&n5i|dO(8i6i?Md~(1I1x& z`dp1W`1@g%h#e|B12rH6!{Hx!{Yn1bAw`~Yy%>vM@x26~M6iI0gI%ZBsKp=*0wtdW zZtXJ=T4uz+sJF*ILyjAy*ifg)`Y!u;kC z1tCC?MAQ{449}U-^%ZcGa80@YVhvtd;O15{x?^{%oCdzdPF+P&0BA!zq+s*s5glVP zpv4!{PGFn$Uwk@^2QuaLag7c-*e*$2b;~$|tlEl` z^%LG95%$QEIelz|0iV)&Tru8LraZ`DAtDA0{!;z{kOlz2F;B(dT6-DrWZ!AR8^#2q zqq=jfOHu`Aw9-<;*w=eP1|F@*$B$p?&`JrT`!8-R4g3ADT?G{SwIuIF(@-IBCX86N zlnG-gGHkn8!1M=aXCro0;P{ZA5BIgf>wYBM%r_2JU(1g7_{D{rPdcD zX~HPcpT#5hRZTu@}oCy{f3hJ~&rh|1l50y-HZ5?5_ELi#w_f;aEgyX;q zUWlx*!nS@Nyok~6FPx?ZqF4WlP^&^!k0J zHe2!l)s!I<$%VT)z>1m&_6j}=ko_XOW5-3}{D@R%-jWA=03Bnq>{rLZH<$<{sB-iL zHI~D}z8{?BLyXc8>jY%PFHR;Rj!sOai{DbNyhhnC;k z9FLgIe~bY$T7ud-x>aHNaOm#;p|Arr!IFbPCP=jV>Dz3{I1_o54$R;nnT-5dF3`L24XbeXL%8QPEVl3gfGoY^~q`&wPy#Bl?!N>4| z5+Qc_3gfW@jWaAiaOMT4=qEZ*hK&f5b}Ns@8TgBll9U) zk=G)#+VcjWrM(aww|$xff07Jlt-AKt4@q= zh68Alo3s7u!XOcyzm*M|IJwkgg(be|Ls(&cn99mHhthxDcl>skh-!QTu7(&oMyu z%(UtQ)!p@#$ll1Iw$dmNgSu)7MPeq}D%of(+gXBtK}0<9${m21m$U>CIkB#`<^RF~ zMybiTs2hp#R>wxvRv$`gJ1s$^)-OE_NFcV$FDN?bCtt?sKR)Ii#uWnTmsH^&t}ifn zoGV|=C%^MDmI-%`0G7YuN}v#QvbPSaR_SvhC9gZELjdP!-zQ)0P)UC>JW8xw^C$!5 zU_J(IZxH7&<|$9ug{^!&g+OQETM`*Vu*7L2UYywp0!cez*_IpfU}jJKiIi2_@H+-r zBIfJC3caxx+`-YWq#%)-LZ1&>Q)O2|`XNj9sNa?Jej!0^7yoH7PQJpfG~kdcZyc5UjVF%%{NSUN$PcN{;UuFAmG>Y?a8RqwkN_5%Qcs}Ao@9x|Q z;9M`rxNy*uw`_DE1I1F$p{9wOz>zGcPL(~#lL2w3%Djb#Rf}}33kTln1=bJYEV)dt zI0ZO{r7g?2kxsDCTMFUEge;WGq+6OZL2I>M-+;u%m#;!#u~%XQ;mYJO(1Wf?Y3XGW zf#RA3##{ynp&hqe^|g46mq8rIXyu8(`da zyzSM`9f>8UcHXNmP?NxZu)wdNPUWa~Ah}nI@sxpXZhT}zj+(*~FMNm9ck-!UX~SnN zRHBW4(aPV@6Ts(*z;J)~x=KI;`1qg?y30fe{0;Ufs;HbVFZ|nws!tZQhID_<9B|D> ztXH5JX!0=uFM8m?3Tu2hKD3`2jOPu}#^=HNHJHXhV*j01;o35l;^kYUsb3WUY9+I?v_$9%BjyIF-|!W`J?96VM{P#6h+32d}_h8;SGq z`R{E@|IH56DNZi6HQI_E53JJ{kNAV?YoGXQ<+BMo<)==bK5U|1uupJx9sp0JGY7?x zLh#Tj|Elnx?mYYKA=Q27BaYC^sJUK?TG-!2q?@*Rg0Dwd8vYg={)t!M{4Pr!-84@6 zVhkp-*LOHBfkwFoNoKa9RS<$+3T>+|BoJ?+U|6<2=eM6jnGY7{RI`0x{JqMV68%$Z zpN)avnYm%3>_*q}6bZq7B%?xBf^Emj&S5J-G#iaimKYZDuc@RTm$M)cK)!ek;wvU7 zmNR=%?zfcyd@&d5t}B|2tLS-l`o^r>z%2{#bI-IpA3yvxRti{CDl(ITX z>t${{S>>^mGB8z>*KRxk)Ki*oeGegLSxrh}*!VhQiLo|kYBw$-U#jW>yN(jPz z*d}`mtx?7AmshL4KjV7AbhyaOBArc&e?ByD`Ts@uj2iyB{0D^#4S)Zg=VxKE?I)T; zDqSZP)>Zf-MNkDP2+*6sU3gPH#_42eekq?xi0XbU6dt~27<``~Aog!fLxg70bilFQ z;AZg?1F2#^o9JP%8s4*LYJB=ofu}Z@lLT3wF}Tk5 zrJ^H_J8)OzFZS)O-ikd5cxC=zT~+63>(&mQLF*oV<St@YW#D>l<5CzpMH6#E}80 zD~lKA>tn-;vpevMGkB;-{SXlAI!f2L?!5P{806bvk4Zezu56IidPN+#Lr^5NN3r%O zG@xlE-{%flEUEOTeGRnSWWP5ad6W8!3s(@IGdtg&siV}hgNQ;Spnc=c+w^A>W{v;1 z0jVT^)1l=sSVvhLww9r#n6?Z0DLZdyONK=T$Nc6h{kCW0v4f~@Fog89P?d~(X0Xog z1FC7DOx1i)O_rojT42@2f(1w_lEZy1!jjckx&QgGAg@$cg4Lzs&ovkB`m;O*TSvjp z5Z(}hL<&Z5cN0;nd`U~93aws!q>j_Q3H}yJ#U-p?bQWVi8RVR>I|k0=d2jhv?3R|e zyugV;np)!9oSsRHYOc@^H$+&-KdhicB=nDqHKC5nKUPlrLY31>x=jNKeTmtyFcRZZDz2JVngHiK-V}{x$>?Zi7()L`Buz70I zSpFm4_t3JIy?rcEw0vshU!&mf()hdH)_(ri00|NCI%Tpve8PZv{xPe+B5i z#dNZ+213^AjI>X`8NKg97O&S2B`gs^J2(2=TmFTV$?ol^gnphPeYAQAX>K3p{|p&}Z7X(^z?8 zbKL9{P^BsJHUiREGyphHd~4*aER67u3Zz==tplc~8UBJoURP^Ds|Bo*EB9&yWp`gY z(znDMjFo1Ie?8y}dj}COd^;v0q1LF0q> zn+jM3CFRE%H`i#Z-{0puixk>Zbx6)hC+A~YVgvlr#*zsz?ThUleFCkTQoCzYxR$HXobO0I=BJ0W#8;{|GPIcW zU5!g0jwQ28c%bfMpOiB*11^}M=1QduCY`&>G6{@t<4h)g9m&>5yF|`0lm(ig zPE}44DpaPMg-e=Iu!Ne@`3&OtXL68mx=}^RF}%}32OLGyxtgOC5*udF%idKXcvh0k zHpSoR$N+X*gz^+(q!(>He;r3=wdft_Kb*3>>yq^r?(vVcD9=g4Qpes*FJE8H@GD2JvrtL|lzzU5T&aTHmm;a* z%A7kSu5GP95?!VxMIPsvacwsE90&D(ey7zbrUsinphJf-eV-0{E>(B<1cBXtM_=NA7)b!BFdy?AmAI9*1R^L5v|{kkTZ8k|E;;eHy3jfh=dth zQncRMQYS$^DbKlZ7u*q1>|$_1QUn%tY|ZYQtQM9PVvBj#j-$ zVx-9@JKwaV8XpGb;Now)tLTP=IB(wx`GRII2eCZ;D1cX;#dA++FBK8!kIN*|YpBR* zXKfTI&L{FrS&aO1@=Gxbb{nm7YcU{HuKY66T>U6;K6Sp$>pLBG{73U0B_xnOaI2~6 zn=maJ(%DkZS?BvsoWd;qZ1&W|*e9Iy7;@!tG7ZE+7@fbpv8Yh3=*YPur21wsMs0>kbB{yGbJEiWix+M5l zo=LmDbg{bW60*$5t###4&`<1E_t;9Gp5Y%j@aH*UiGetdRA@|eqR7+DO(RBG1Atej zDAXo)k38TKSg`uU_^NCo!z7iNkz^m)*`KZLep(NdxQOxS^PEV?F?or(H{HeIPAK4!@?PB>-i>7Nxmt{1eBb5Hhb zEe(U)XHW5up&LA9Ipx?3M_GvygC`*RG0%~~=Cya+^zk$n%Oc#%{%YY$=;#q6Sm$&z zd`ijWL5KmRSY(JP^*u3Du8(p?xDV)m5DTZub2U(a1AJ-_@z;Z}@>^f8EQ% zk<)sCOTY#WuhIaEQGqame_AZiOzBm5lF zkN^jfxi*q17Z}C0V9O!4^T5AAG?ZMF-Krl^ppBheP7RXVV4|~ z!4RSo!?a1=P^esx@NnKzxShmuz9ZxkBlrWmnNAS7=5yapZ7f>c*Ny4drx!+cIpxu!twx|YKX2>IP5*s$PKG=yct}7NV z6)HlmLS>2@lWUY=?d`BGs(+eVE{blIzsOc>`u1=(AnC}z@b)rQ7}y{a1IJ3x9qgm- z2x@UKMiR1U0a?0id5CbT^z0r)^>f0;>uQNCU9Ac(HIwR_?WZt=WpX8{i`NdV)PE^l z%tF51*L%HT+qrFzTJc8^plJy^Y|@=#U?Y7g#|n+>s*1+zkW`@mm@H-&Q`J?c8oOD6 zgYnE_#D-wuvFWCL1CBpL%1UseDP4YU?I|<4fI5gE z->Pq3%LD=G1VP(Z+PUiDK07qC39$8#<13Wxf19LYYzp>u<7+~Fyo4@(^?OgI;|*rD z2L~lxm~l(kqxytx+=>9BA|kWJ^d2_p_(VqFWIQE4mBDX($q|IX&eS1ss@2<*leQ|= zRT(lfD#q4MMIO;K9gkr6qLjgV2W#PzT!|UMm$?E|DH8{*$7=r6xIL8gwHS{>`Oy44 zhWiGWuL~imxC$j8dG5)hB;Befn2>qkG4jLsL&HeKQ`IPIXkHD(4p}0|5}EV1Q{Zog zCzAl&&;~(O!3jq5>qu=s*}6?OOUf<~NW>)I%Vvfe9*q6W94X2h{O&PQw1=K4>bCiO zCSo$Pwd4QxsZ4wQ;@!q0vG`r3xo7MjYGU$c12(46(Wff(@+gsl!8WRBcmkFV#VW7d zGv$M5%m_K}+3ybdW?Vz{I3wcyi%&Ya)Y1wrcJ%TgVM1G0dFRT5TH%rN>yZjP7|Vy6TQP|D3ehJ1sPQTN}}{6r+|ameo_`eQC5 zJyV|4S=t_sgX_O+b-=8RTH6k^CI&8LQ{TJKUB^BUQ=G;$>GzcAuk)=4_1G9IjUrw) zG$dudbfPu_n^>QxQsUTuMJhT-|N7mQJU~QzQne{2iWc}@3Bx1yVaMO4us_)ZAD{e> zY~2FG;LwmQf4|xoyD5}1ZW>?m9}pN}p=`x{8-*;wGm){QB?#|2m>4o)>&}aLA)F}| zB8%u4h1gzV6(Q1TKrn3BNr_2y?VCBuUhJzCn!kc_+kRbyJ&{2WMHpzfF;pAN4&EZ# zn67};aA!wQV!3Z>rJ- zt}Bv&LSPql2AbzrnvP$TD*JK%9hx~k1zWk5BJ4kCwMtLiv9CgY zkx6Odjl$lT4D>c`f+lJ0_Q!^HIjL6z?U02B2brsWY3n^B7RfUnKHybClA+Px_3^3f6xTljQylPU_Xv*ty|9Ox1fgchsnm0MDB}~ z4ZRBQh6r$bR*~ zC{PW~bG=)*ofARjI@*a=ph%T@T=WN3i>y$=q!g7Rr6Hr4Eg#LVqkZ8x>slN-HV|DK zjqQ%|1%uOjyzylx0`L4H*=1!#VNrDlNXn5}GdzM&c|?WyUg5d$BaZ6eh|u*Y%zLso z+4}cE@<70SVJ?0ZeJWF=GC{bipUCT;_|z``Y}~Vl9>==N8JPE(>mohLX-YpJOi|fl zqx79=URT!V;-pOJiJ5U`PJ%zKuIt?`iXsGsFdB<5LY+nUzJk1ES@IfLB+dtMF-Ava zwv#d%FHBI=DwfitTWJ!Z>^bbPOrN8xA#vThgZ{5S?z{w)!jVRWOg7-db_tuO`@qZQ zhYEdb1mz(}j~SBYEsB7B8B>fZZy@5;yz+o*Op&zl4Dn;Y@|wkC{%1vuOyU_u9#mS* zk_z_duQ(B2$4fMA54KO_g16C|unV;)5n=iBhRajmW3e|J`>elhRtOxaq_gWz|3oM8 zY4ys#FIJgobP8usiE|>@l~U&k-KF7tcPbKu<6s!qgQ59dI2W~BhKUq7s5)!z3w@G9F9uX3j z7x+PcdOG~CA+7?;{PtIWQ{v4;^l_?qf|7w0j0{~K>vaELeBjz9k{P*RwAt9fL8AUy z=iG5%wEQ?7<)4e>ZHCehGKScO0?_Uj$iW!SW$@zWwcfhg$IEL^^E;RSn($i(*m<~`o zB`6>hxP0`r97Ur+D^XZzrI|7 zu;ua%frW6 zaZ=R8h=2T;rLC8&7-M#g0qXwqdsGbB3U>^z{qC-<$LZ9U0R!7|gtVvRH2fuYU-F_{ z{HPj=D1{2TuUH`a&aJuJ;5l#7JkALJ&9%qVlKVpw(?iz4ZNozz=FQPdxTm**4aPRI z9X?@pemn-bM;`lDMI6MQ(C=#K#rYz%E-U(plz4vETT|Xz{MlPu*2jz}!_evp2KZ{2zg!3gC+J)y^`*e$AK=h$!#2+cAF+yZGGw~_Ol`-Of zQqsto;xsU!rczH9%M`<)3uyZ*FJhpqI4Z8cYo@PB@Lx40pjpr^ZT9y2o zXbr2(U0#J}Q%StZ#D}~Ng%NqK>6;@Wb8(S`mFmYMn5C=ZaoQowtb7?;6TV@u39(!^ao=d@zPt?Ng`oq z?`Lxq?pz+^ICYtgiAlA1Jff(#2p!By*m`tOW9Me}yp=ay0l`V_lu*2jwm4`l4f h?mUgU8NNJ-dm;(PZg}4NzHH$H-pZ=V)JU0z{tw{W;*S6T diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ec33beb..e9fc6c9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -20,7 +20,6 @@ Löschen Alle löschen Aktives Spiel - Vergangene Spiele Counter About Schreib uns diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1cb4440..6909152 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,6 @@ Delete Delete all Current Game - Old Games Counter About Contact us diff --git a/build.gradle b/build.gradle index b6d8524..03b695d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,11 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.9.24" + ext.kotlin_version = '2.2.10' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.2' + classpath 'com.android.tools.build:gradle:9.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -15,9 +14,10 @@ buildscript { } plugins { - id 'com.google.dagger.hilt.android' version '2.51.1' apply false - id 'org.jetbrains.kotlin.android' version '1.7.20' apply false - id 'com.google.devtools.ksp' version '1.9.24-1.0.20' apply false + id 'com.google.dagger.hilt.android' version '2.59' apply false + id 'org.jetbrains.kotlin.android' version '2.2.10' apply false + id 'com.google.devtools.ksp' version '2.3.5' apply false + id 'org.jetbrains.kotlin.plugin.compose' version '2.2.10' apply false } allprojects { diff --git a/gradle.properties b/gradle.properties index 834a004..32bcab3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,6 +19,8 @@ android.useAndroidX=true android.enableJetifier=false # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official -android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=true -android.nonFinalResIds=false \ No newline at end of file +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false \ No newline at end of file diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..3da0f73 --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,13 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e99bae143b75f9a10ead10248f02055e/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/04e088f8677de3b384108493cc9481d0/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/248ffb1098f61659502d0c09aa348294/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/056dc25d3b9d168ede8b94d3d2f99942/redirect +toolchainVendor=JETBRAINS +toolchainVersion=21 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 54a09d8..2b0f377 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip diff --git a/settings.gradle b/settings.gradle index 90dbc2d..2c65019 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,5 @@ +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' +} include ':app' rootProject.name = "Tichu Counter" \ No newline at end of file