From cd204b9b1144f41747287051806c5e340f1a4101 Mon Sep 17 00:00:00 2001 From: Brian Yencho Date: Tue, 22 Aug 2023 16:03:42 -0500 Subject: [PATCH] Initial project setup (BIT-61) (#7) --- .gitignore | 24 +- app/.gitignore | 1 + app/build.gradle.kts | 129 ++++ app/proguard-rules.pro | 64 ++ app/src/main/AndroidManifest.xml | 28 + .../x8bit/bitwarden/BitwardenApplication.kt | 10 + .../java/com/x8bit/bitwarden/MainActivity.kt | 35 + .../com/x8bit/bitwarden/ui/theme/Theme.kt | 74 ++ .../java/com/x8bit/bitwarden/ui/theme/Type.kt | 17 + .../main/res/drawable-hdpi/logo_legacy.png | Bin 0 -> 6997 bytes .../res/drawable-hdpi/logo_white_legacy.png | Bin 0 -> 6945 bytes .../splash_screen_round.xml | 5 + .../res/drawable-v26/splash_screen_round.xml | 5 + .../main/res/drawable-xhdpi/logo_legacy.png | Bin 0 -> 10888 bytes .../res/drawable-xhdpi/logo_white_legacy.png | Bin 0 -> 10486 bytes .../main/res/drawable-xxhdpi/logo_legacy.png | Bin 0 -> 8426 bytes .../res/drawable-xxhdpi/logo_white_legacy.png | Bin 0 -> 8402 bytes .../res/drawable/ic_launcher_background.xml | 170 +++++ .../res/drawable/ic_launcher_foreground.xml | 33 + .../res/drawable/ic_launcher_monochrome.xml | 15 + app/src/main/res/drawable/logo_rounded.xml | 14 + app/src/main/res/drawable/splash_screen.xml | 9 + .../main/res/drawable/splash_screen_dark.xml | 12 + .../main/res/mipmap-anydpi/ic_launcher.xml | 6 + .../res/mipmap-anydpi/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1859 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3514 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1370 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2269 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2502 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 5013 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 3671 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 7731 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5013 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 11107 bytes app/src/main/res/values-night/styles.xml | 30 + app/src/main/res/values/colors.xml | 20 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/styles.xml | 34 + app/src/main/res/xml/backup_rules.xml | 3 + .../main/res/xml/data_extraction_rules.xml | 5 + .../bitwarden/example/ExampleComposeTest.kt | 45 ++ .../bitwarden/example/ExampleJUnit5Test.kt | 18 + build.gradle.kts | 6 + detekt-config.yml | 668 ++++++++++++++++++ gradle.properties | 8 + gradle/libs.versions.toml | 89 +++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 +++++ gradlew.bat | 89 +++ settings.gradle.kts | 17 + 53 files changed, 1869 insertions(+), 18 deletions(-) create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/x8bit/bitwarden/BitwardenApplication.kt create mode 100644 app/src/main/java/com/x8bit/bitwarden/MainActivity.kt create mode 100644 app/src/main/java/com/x8bit/bitwarden/ui/theme/Theme.kt create mode 100644 app/src/main/java/com/x8bit/bitwarden/ui/theme/Type.kt create mode 100644 app/src/main/res/drawable-hdpi/logo_legacy.png create mode 100644 app/src/main/res/drawable-hdpi/logo_white_legacy.png create mode 100644 app/src/main/res/drawable-night-v26/splash_screen_round.xml create mode 100644 app/src/main/res/drawable-v26/splash_screen_round.xml create mode 100644 app/src/main/res/drawable-xhdpi/logo_legacy.png create mode 100644 app/src/main/res/drawable-xhdpi/logo_white_legacy.png create mode 100644 app/src/main/res/drawable-xxhdpi/logo_legacy.png create mode 100644 app/src/main/res/drawable-xxhdpi/logo_white_legacy.png create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ic_launcher_monochrome.xml create mode 100644 app/src/main/res/drawable/logo_rounded.xml create mode 100644 app/src/main/res/drawable/splash_screen.xml create mode 100644 app/src/main/res/drawable/splash_screen_dark.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values-night/styles.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/x8bit/bitwarden/example/ExampleComposeTest.kt create mode 100644 app/src/test/java/com/x8bit/bitwarden/example/ExampleJUnit5Test.kt create mode 100644 build.gradle.kts create mode 100644 detekt-config.yml create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore index 4f42dd7f6..5a01d97a5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,22 +3,10 @@ Thumbs.db # IDEs and editors +.gradle .idea/ -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# Visual Studio Code -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# Node -node_modules -npm-debug.log +*.iml +/build +/captures +/local.properties +local.properties diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 000000000..e994582f1 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,129 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.detekt) + alias(libs.plugins.hilt) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.ksp) + kotlin("kapt") +} + +android { + namespace = "com.x8bit.bitwarden" + compileSdk = libs.versions.compileSdk.get().toInt() + + defaultConfig { + applicationId = "com.x8bit.bitwarden" + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility(libs.versions.jvmTarget.get()) + targetCompatibility(libs.versions.jvmTarget.get()) + } + kotlinOptions { + jvmTarget = libs.versions.jvmTarget.get() + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.kotlinCompilerExtensionVersion.get() + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + @Suppress("UnstableApiUsage") + testOptions { + // Required for Robolectric + unitTests.isIncludeAndroidResources = true + unitTests.isReturnDefaultValues = true + } +} + +dependencies { + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.animation) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.runtime) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.graphics) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.hilt.navigation.compose) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.navigation.compose) + ksp(libs.androidx.room.compiler) + implementation(libs.androidx.room.ktx) + implementation(libs.androidx.room.runtime) + implementation(platform(libs.google.firebase.bom)) + implementation(libs.bumptech.glide) + implementation(libs.google.firebase.cloud.messaging) + implementation(libs.google.firebase.crashlytics) + implementation(libs.google.hilt.android) + kapt(libs.google.hilt.compiler) + implementation(libs.jakewharton.retrofit.kotlinx.serialization) + implementation(libs.kotlinx.coroutines.android) + implementation(libs.kotlinx.serialization) + implementation(libs.nulab.zxcvbn4j) + implementation(libs.square.okhttp) + implementation(libs.square.okhttp.logging) + implementation(libs.square.retrofit) + implementation(libs.zxing.zxing.core) + + // For now we are restricted to running Compose tests for debug builds only + debugImplementation(libs.androidx.compose.ui.test.manifest) + debugImplementation(libs.androidx.compose.ui.tooling) + + testImplementation(libs.androidx.compose.ui.test) + testImplementation(libs.google.hilt.android.testing) + testImplementation(libs.junit.junit5) + testImplementation(libs.junit.vintage) + testImplementation(libs.kotlinx.coroutines.test) + testImplementation(libs.mockk.mockk) + testImplementation(libs.robolectric.robolectric) + testImplementation(libs.square.turbine) + + detektPlugins(libs.detekt.detekt.formatting) + detektPlugins(libs.detekt.detekt.rules) +} + +detekt { + autoCorrect = true + config.from(files("$rootDir/detekt-config.yml")) +} + +tasks { + getByName("check") { + // Add detekt with type resolution to check + dependsOn("detektMain") + } + + withType().configureEach { + jvmTarget = libs.versions.jvmTarget.get() + } + withType().configureEach { + jvmTarget = libs.versions.jvmTarget.get() + } + + withType { + useJUnitPlatform() + } +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 000000000..90d74aaa7 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,64 @@ +################################################################################ +# Firebase Crashlytics +################################################################################ + +# Keep file names and line numbers. +-keepattributes SourceFile,LineNumberTable + +# Keep custom exceptions. +-keep public class * extends java.lang.Exception + +################################################################################ +# kotlinx.serialization +################################################################################ + +-keepattributes *Annotation*, InnerClasses + +# JsonElement serializers +-keep,includedescriptorclasses class kotlinx.serialization.json.**$$serializer { *; } +-keep,includedescriptorclasses class com.x8bit.bitwarden.**$$serializer { *; } +-keepclassmembers class com.x8bit.bitwarden.** { + *** Companion; +} +-keepclasseswithmembers class om.x8bit.bitwarden.** { + kotlinx.serialization.KSerializer serializer(...); +} + +# kotlinx-serialization-json specific. +-keepclassmembers class kotlinx.serialization.json.** { + *** Companion; +} +-keepclasseswithmembers class kotlinx.serialization.json.** { + kotlinx.serialization.KSerializer serializer(...); +} + +################################################################################ +# Glide +################################################################################ + +-keep public class * implements com.bumptech.glide.module.GlideModule +-keep public class * extends com.bumptech.glide.module.AppGlideModule + +################################################################################ +# Okhttp/Retrofit https://square.github.io/okhttp/ & https://square.github.io/retrofit/ +################################################################################ + +# https://github.com/square/okhttp/blob/339732e3a1b78be5d792860109047f68a011b5eb/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro#L11-L14 +-dontwarn okhttp3.internal.platform.** +-dontwarn org.bouncycastle.** +# Related to this issue on https://github.com/square/retrofit/issues/3880 +# Check https://github.com/square/retrofit/tags for new versions +-keep,allowobfuscation,allowshrinking interface retrofit2.Call +-keep,allowobfuscation,allowshrinking class retrofit2.Response +# This solves this issue https://github.com/square/retrofit/issues/3880 +-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation + +################################################################################ +# ZXing +################################################################################ + +# Suppress zxing missing class error due to circular references +-dontwarn com.google.zxing.BarcodeFormat +-dontwarn com.google.zxing.EncodeHintType +-dontwarn com.google.zxing.MultiFormatWriter +-dontwarn com.google.zxing.common.BitMatrix diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..3c02b7e9b --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/java/com/x8bit/bitwarden/BitwardenApplication.kt b/app/src/main/java/com/x8bit/bitwarden/BitwardenApplication.kt new file mode 100644 index 000000000..4dc93bd8d --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/BitwardenApplication.kt @@ -0,0 +1,10 @@ +package com.x8bit.bitwarden + +import android.app.Application +import dagger.hilt.android.HiltAndroidApp + +/** + * Custom application class. + */ +@HiltAndroidApp +class BitwardenApplication : Application() diff --git a/app/src/main/java/com/x8bit/bitwarden/MainActivity.kt b/app/src/main/java/com/x8bit/bitwarden/MainActivity.kt new file mode 100644 index 000000000..93fdfff88 --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/MainActivity.kt @@ -0,0 +1,35 @@ +package com.x8bit.bitwarden + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import com.x8bit.bitwarden.ui.theme.BitwardenTheme +import dagger.hilt.android.AndroidEntryPoint + +/** + * Primary entry point for the application. + */ +@AndroidEntryPoint +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BitwardenTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background, + ) { + Text( + text = stringResource(id = R.string.app_name), + ) + } + } + } + } +} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/theme/Theme.kt b/app/src/main/java/com/x8bit/bitwarden/ui/theme/Theme.kt new file mode 100644 index 000000000..2956c2fc3 --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/ui/theme/Theme.kt @@ -0,0 +1,74 @@ +package com.x8bit.bitwarden.ui.theme + +import android.app.Activity +import android.content.Context +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat +import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.R.color + +/** + * The overall application theme. This can be configured to support a [darkTheme] and + * [dynamicColor]. + */ +@Composable +fun BitwardenTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + dynamicColor: Boolean = false, + content: @Composable () -> Unit, +) { + // Get the current scheme + val context = LocalContext.current + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> darkColorScheme(context) + else -> lightColorScheme(context) + } + + // Update status bar according to scheme + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + // Set overall theme based on color scheme and typography settings + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content, + ) +} + +private fun darkColorScheme(context: Context): ColorScheme = + darkColorScheme( + primary = Color(context.getColor(color.dark_primary)), + secondary = Color(context.getColor(R.color.dark_primary)), + tertiary = Color(context.getColor(R.color.dark_primary)), + ) + +private fun lightColorScheme(context: Context): ColorScheme = + lightColorScheme( + primary = Color(context.getColor(color.primary)), + secondary = Color(context.getColor(R.color.primary)), + tertiary = Color(context.getColor(R.color.primary)), + ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/theme/Type.kt b/app/src/main/java/com/x8bit/bitwarden/ui/theme/Type.kt new file mode 100644 index 000000000..fb0c365f5 --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/ui/theme/Type.kt @@ -0,0 +1,17 @@ +package com.x8bit.bitwarden.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +val Typography: Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp, + ), +) diff --git a/app/src/main/res/drawable-hdpi/logo_legacy.png b/app/src/main/res/drawable-hdpi/logo_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f80693e55921f67366cb9c175045401cdb7cb4 GIT binary patch literal 6997 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/logo_white_legacy.png b/app/src/main/res/drawable-hdpi/logo_white_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..d476025e83a4af630b6ee772f4738b36384e5f57 GIT binary patch literal 6945 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 + + + + diff --git a/app/src/main/res/drawable-v26/splash_screen_round.xml b/app/src/main/res/drawable-v26/splash_screen_round.xml new file mode 100644 index 000000000..602f055dd --- /dev/null +++ b/app/src/main/res/drawable-v26/splash_screen_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/logo_legacy.png b/app/src/main/res/drawable-xhdpi/logo_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d3764921615f5aa94c4804ab86d5f7961843e1 GIT binary patch literal 10888 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/logo_white_legacy.png b/app/src/main/res/drawable-xhdpi/logo_white_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d9f58052c2b0141956c5ce2c6ea106508c6624 GIT binary patch literal 10486 zcmaiacU)6Zwr(hbf`E#2QA!Y`SCP;}YCw?QJ0uW#3B7}W2vS1tB9Y#ECyLSq>Agrt zN)V9Hc|qsS+<9~Fdw(Rq?EQUf?bY@=C;OZTRTX&>B3dE<06+p(kWmK!aOttXHEt4M zzeP)HhXDZmMwq59Tvz!e$imT{+sx9@9K!8s?}Wtx05M5VCo>CM2%NzjVg+*$XF@l( zGcmv{#hG-3lzEk%q#@QY1#cIKhPR5Qg}1GRh$WMx1d*602&=#z0yksuw6}9`1$l}y z{m~1;{=S~(VPg10f!m5R=_;!-NISYf7=*ZmxOtf*h#16NETJHE8M%K5V@Kjl)^NBJ zh=<3+!-LyHfZNfTold2%_pGGD9st3w9jYT*KNg2Nmg z7_N1inLE0{#hI9}IKw}bLp)*s((d5;5BITw;JHS4__%p_{yQBGgZ?k{Yve!ZPS%ca zM^|e{r++%|Z%h0W{trQH`2J@RPcx_giL9*r|EAm9|C<}Ga9MY3ApQ~5f3xYo7I4+{ za)R)vLtGu*Tr426?hpq!^Pfmu#|5Mc^Mu&x%E0U)4zAefiZclb^8H_^-hV@%3H%F` zcC>SJ(ZE&}M4aib%ysBMV0$wwhz`sWZv8K1{{mh@9IUR9e<=C`T-#>ncAZ=;2N>2H z{y%H{fpq_ci8BfFW6SC~<$oZ({}K9UCP078Q+Bk(TKCuJe?eerX;l|TD9jFvxvI;* zU;xWXKjjm7`jm^G`>!Y1w1Kd)FsPS|863;v=jG?+;^XBK;ML?40SP?=@d|${+=pE8Nk=>(A8RLf3#e{~i4u+QI%*I0M61F}3{1XhUy1%HaBNXmo<^qwj!lqc9NeT*uVZ-Ugpn6@q3~Y*Sb_@c% z4A-7K`FBANYY0~9|L!8sKMdr#-g^IKp%~A9_#pO&@Za_-R_^Z{wg+IF3C};f33l+$ zegtvAHX#>mx7k=*wFCfgLSWeJ{6|&*0Jb={xCM?7HR>)&Iwr}q4-K(NPj%8$?mdAh zoJ+Y`re(l_k{h8_NbhS4LM|yE4`t%O9ZW19vTK!>xUWZu5IgL zuhzu~x8rIMd__Kt@!vLoyk8Iz6-Jl%)->6&0w0ga|+Q7d_v5JuxSE41KN`*xjEzwiIzO~fVgKvRP{XT{P%$0)XUrRp<0I4=Q1U~9@)U<51n!g0$5-~iGx zr~v>509Zy!(=%fy)9d(wRwAaIRVIibOdOZ}&KoA&+&5J{d7Mn7xXZY`x2c`!KDpuR z%wyv2$`J^o%wl!!-v6YQ;79Wue=0$XF))z!Im5l@b%0x73G}0S+Mgb0?jCMqrDeO9 zbAtzm@#hXYbFM{AO{b$%Wj%N)OEK?6QfQPp;uL`QBEB>T$RYw$QH`j0MAFNu3G+qw zMH8lsK^dlNn4Z@Z0B zZTq)#2*#9v_ek(28)ngug-~GNKIhD$l{5aH<)fx~!j|$Ueik@(xB53-GG5_iL-)0` zS?=8eqpX4&QL-qy^l?@-9K_I%kvBs)EltR_1L_~KclO*&!JjNz33RJrndA{)76F%^ zn#l~uYE&Zjk*r-m%%D9NP=z!~jW{Ws{v`ODwXc5&Z*I39SR>y||7}LGpcLu;AAuiX*=W#IF==44LKm zLHF&I|sZL!KQ+V?|Imh zI6*!zZ?zZ74`HlkmbPWSIfCoijBIVT+xG!?eJp!}rKv?*!hvZ^phRI%l0p;T2X5T? z$D1v<>6a?QjuyQt*sS)vAS%Z)Ji!og0@n1Y5x&H@!%x98rIdOO*kX7|d%ZBeK(ov+ zAB+1%wV`W;HK15wnt3hb+E8m&8v2OGCoM?Z)5%L`Fj}}epJ}Ty21zBKC2(Cy53l_Q zOBLsU8GyqTz4N-(tiaRV{bi+6i5Iphe<@fuhS>Bt4sruc6sC2Cp;NXjVBtQNC}VS| zEJEyz!1JAYZsm0hZeo?)z5#WwM|RNN$!vLW9R&t;Pl%ZAXbo=e&59^wfP;PvmYKo{ z%(XbwOIVcyo?5YjZG}p)lL{{>vD`zi583a6D1fDzK3s{mPc8$Ig#C6>aFX!k`}$yD zSoTT}Ju_m6?-VWs3Ved7OD1OCW`vDBoLS)63;# z!P}+49WC>Txga;iZI9+uBW?3`8S|>@3fPT%zZB%UHpm4*{4t&Dt66JjFyXd3OFf8PoMHY&*%i9)5JgL+m zhO}u%d%wl#Zi=nIVl?6)wBdnndzgiP9#X<5DOTvlG4Gy2NxXV6glI#Au7U2Dd2h(Y zsxBaKH83|&G)RffIa;Y#Xt5Y&gsKlrmQBM@procM#dP)$yl+3Fm=p|C5kH(GZn*V~ zFh$GsYywXbpYq6AY*2MTX#yN>ADCNhn|C_^HyZHtMoDBw%#9;@U2e(>2`4ru`v?m| zd_(*PH(RU$O#}G;M6(2kzVGq03FZkiNX3kojsZ!~^)>PP4P7j`xtVGLpn-4S_-;JI z_sHpj;_UtC?lMgBJ4>jhS#_YU+&m4%hkDKM+#nd1#(y>t-+I%t1F+II5%1&M<8^zI z`k3Fz?>r{j)mhx=Lx{lf!+{=9YhRr}pc2P}E{VH`nKv?Yq{8nc18hBFF`rOJwRH3- z_#(9_7-`W$;%WO06d=j!c(=khd?%@k#uq}euQE&8(wvN7m8H~AvVJZ?1JGcEir}6 zuK?(R9}nz)_B6J4xK}&P2UUsTwG;(s@!&)wCDDqKVz@P{dN@}PChMN&;#r|~3HysT zp9K(<7{>1g{IaYKjSH$@YAJNvR|d_Z)m6GS4qgLs2o+BI0W0)mVs_AW>cEmBLuOb< zUgAcG0j@GNG5P!#%Ri8(Z8obf)D^!z+smWg>$HPC+4BAs=WlDI`@SiCXdioJe! zpva|i>l@2XiPOW;w}=4(2{UL{;`eGcj#Ipb@T!AV^DT*2N==5lp1bjp_2rz&Ru$ey z=nKREZ?$M2+v~p2CQbEv)e*$Y7}3KQ#vQ)k5tpVC#tEEbx1bB1xI^Ma8E|%YEiSb# z)05qt19+oYs>-?1a45n7(f7lXjm|)pyUW5J>=@SMC+~;dqkoX+DoB4#IPasH(*&AwAC- zxq)kV(-*LzPqY5*gg-<0$1JJqWrG`Opg0~{9s^(eY?%33PRUtBa7J}c|8wYPQmFX` z=O7m?#@NpG0$bV+9tXZ!Ju(4g5Nu1mM)U8vf0jJP z-06{3X&%DaLu|LgYFKT!0TPPID}A~E+eQBe()~BwBN;3RXZ`xuU8l|*$y%t!Hc+e2 z3@3j)<3YaQ=c}M~atUu-2aGU140nVZroIc{XE@_Q$p@}7bCb`7_f?OQlTlG2f; zS;C_phHL#buhQPMefotSDp^eLQe&!m^bkm5xZHEf!4jb03`UlBB);t$cjd^K__A&r zw?;-oZwp2H&Cq4z-QTg*(Bi@4Cf*=$!c8^14<5h2c;(HXw6q&3dSgXi093WSz2bZ# z78fO&F~R&r*rGqXXYXC~S&)b2I{%=a%%$;iR51r$7p5Cu518A5y(oV5qTR?Rd=t23f0fPfOQ$cp_c<1F?r->GSC3Rs8{vuljc|qM1km$1xgbLG( zlw72VuOXMsIxBn{Ro55nMP z^HqCMtQUp^B-BJs$2fa|ugX_4mHuegS%p1Z$BAChZx?7@rbsnKh;L~^ZZ@y#`BAp}d-)ARD@b++^1d;R zJSl(ml&l!pRQ$+Oguk8|^l)40@#b z&4p!C-X&{Y%m6p%l7+89cIU?@(64q@^|cf1U61E4dx0|tNzs%krpEMs5{eZEl~9%N z2nH(8fb`Fd5mm=IiS2z{s$-uA%O^uTdrES&zjtH|#;wN$Re}u0vhARl@n=`~PR8k~ zj!8VDjY~DJ9&fRV3v=G8h?vFG$!ey!tc+5j{6G|{{*ygM(ixS#5byGCWZw=)mmky_ z&Vo=(G=|VGpE~resOh|zv-~Oy0wzzWrEZ6>w$AT0>fN&?UO1?zGTgVi?Yq251J;pE zYj!x#*C;f8)fFK$KyOam7#;7mt0s{BN{h@+_(ieoBcVmDP-!{&1aw2!i$<9ZDc2Yb zrU)^vDA#qorzAi;cPG-N_OpFMq`HsF0C1VMk>%6Dwql0*SLLzGjwNB7X2k*OZVi#V z>`gQsy^f5EdTD&@gxSY5%Q;i%#bYiVNIPnBknkj7mZ^BO@##^E-auGDMkFwk(m-3d zD(SG^t3x12wfKzP&}c%PKs<$x+JJ?Iez}8B%YDFs{mRJfZ9oB&Bwt+r)}jyHxHeiy z?(L$F2&H0EcYM351N}QOANAI@t6CQdO|LMCY-aiHifrTflB+`4yu<71X5k$9$OGGy z11_6#-A420jSnPpD%`i7=H8P`P`2euBeWIevnh9141C5nVR zX_b&->JAO6EGiywcntG%EYZ;VEP@?sakdTdy&5j1Sbres|Au9HnnonaW>1omuJGdF z$=Tx<93l?oW&^6Zt=~QD@4RlgQ`y=nZ3P#5X01$%)Un6#K5bzCY{ERCwTfF>JZr0N z4kasUg}eI{an-D2@Jv!_fs*w{1H{x|YrDylO%ljTpSam6an-w*)(}*`{qwagJd1a< z^r`D7yKgkwp$PkkU~RU%$)zh#C(3in2tIUHhS1c9#okkCvSZz zms$kn{Q3B}3wP$VxoR$|f|{P^U7qZRueB}?z31<&b--8J=G^TzkjiN#2&*Zy9CEQ3u}b4-rb)7;|E9 z`CjMSI$sHC@^_>?T9t?7=mlfM!g6ksFDdpo#izS;v^f$Beb7GPJVhM(?@Sl4p5n=zrf~ zU*8fg&qaS%j5YwC^c7*!Cw_!$Q`#))^CW&MP4jIsbc}eU=p8OMvS>{t*;2(|uu=vy z57RLZGXwzr-mt>00%7@=3O*LwNL;%UVrSt7hheT*^#&VQHI|}k7?*4Z^5C@6U;4Y3ycDka7xk$^aSaraLQI2NN3;rZ@_vR4o00RAW$aM+ zajQs{MtGR1Q3H6`1X!9($6*OC$ose*B)$sT2t&M}>g9UpUuU=h*Ug#^zb9aTdpy5u z?Dvj9w%<2W^~t`WKxAc<%m={WRfFXmp=ho2Ly@YLA*Q}so`l2Fw6VhU6uIzrY8^>n zZmxv>$7(O{H8;zwVh^v5 z!)(O3K=l;V9m@ZVXj!;OpKrLRQ!4^?{<`ceVV&>!IqNjjtz>DkijT-gg}TA3Pm~Xd z-n@L7Yw?Zf>~U`HV^9gGSxfuv^gH`82ZbaOmaMzfGsQEcQ!z>C%?6}musLO!h|~_I zycuZk01c1&xMiX*&@As13AleBYMup@sp zi1MaSR{tB?qlb?mw`x}&hP|!9-rL{JnY@s)$-ChQsroW>pec5DKN7lDPA&5Gi{XK# zcBtRg1La7WH>#W4>7w=-TBX~YBqp19fHDBrWSyHbvQ=saa^)_F-Ft1hAJe3nE+x+X( z^%BRY9}z|QK?BLiDs=$#k6$nrO4azHW#f_vWp8N}9v2ThwgKvXG=;LlUh4R_vlf6 zz1!5hFi3GhClG>Hm6ZV3pAu2x9gyoH393{kER&7y_c3A_>|c+u!K^smzOD3eU~;5X zaNiGM^Dd?nFsZsLcia@*%$ZnYGFQ1kz*bfFlBehp*2tpd{=g%R`w4ch!+y2|@0ZOl ze3a(k;+LK)ckwZx>`i^1w9*t&E`8&dXpwkZ0QQJa!)(C6@Sgtz_cF35Ascu>Yr7Il z)fR@<(eo`*_)9|k#>+0cf>d!P3{tR0gbei*QHH2ddDQGT+AjyvtHaCg)o)8?+WOfb zf8!+gzJB5Gt?F#sQd0loqe&kFW5S9TrY$zsA49J$yiz|)su1lKbJKuWukW*})jwXFI_DHfN5z_>q>-D6#3VtRLU zNspsv#~)Ss?cno)qMaPn~t+?(_O0znq5hPyfGUXtepOP9({2BCiK_`an& z!m6e;rW%XPC{`jk8JCRq_-^umM0Pt)3CE^ZBgQ-oTmIaeakC2=LX`&_kJC~PPYR~p zc9X;LEa-GHs_*E9&gyc#nF^vC&C0H=n|?PbwTQ8Z=(%NMLUBg_T#>Cbwaxq(>Q1_c zBVy~xK;jbk4S1ouYQ9MYp04lSU$E#ttC|Qwk+^t?#Po{Ol<{Eh(=tnK-wjRICJ~(| zY&Eb_%j@Q9J7QcE1AFw9>Nb5a^q3R^w(6H%N;-a5)@b=i!2SKpCFhI+h~=yuy?MGY znZ+jHL;6g~A+DR!afH~6O0vcU_8R@e5$N}wj_%D6OWHY)K8%Jc2ryVho367eh+N6*9v1YW__$Y(L0Zn%JM@3zRk-g8Q^BD zwdzbM0ZOQzYgTlw*pl#yw^x0^|o zfC0ni9O5zt$o|tMc6NA_FllrP)Ceghoa3~va%oDvD1x!DyZDX}X?{VgoI-2YUB8s+ z|N2#|>#pG=A%B}kKJxpo7WLgOX4;0>QLVI;2LHg+3-#elJ_reOs+y?54n?E@@S=${ zhOi>n5dG0tGKrbxA|0vUGytVnBvbX_VULGD*h34NFiC1_a)^lultyaH&=j-3_z zQhbd8+FL=}w%lgD^tme?zK4y!Lr8#3Q-}Df4S<;=H4iEFvcJ10)cEY8*MXTv)udFm zOBjCxFdBOd6||Jtnfg32l)GX9*W>zVNLy)}UfAt^EBvnJ zJ&fCr%e@r`xF0WH@C5AeU6niT&}XV`BxpfaygD;g`YWB!Zc5)hu3~zsVIQ`E!cB0E z%y7o#gh!n4oe-j9Fcm!|xyT`o9lqF*)Vu}C$~m%wBGXaN(4{3iaAt{P{wVuk{!y`v z`Xke)708ap6JjU8cMnMtQ{_bgR7a3kIbPms-9;hBe^q8UP=XHHH4;%Abm6=@0)f2j znA?iM+1+2`$xO&j57;0F=W2VTOc|jJR$c(*pUl=hqs+%XF-#>fiaf&EH$fy<9jNB@$ZK`Z8z6swRHAd|YWR@Z&>KQYlVL_BGr5>S7}t zxgpSuH>o(>NEDD?*K3UHkaV#4Em5>{+_uR0+4%Ucy36*w*-DR}NWY3%H1xymREn9+ zo*W_!ZZl@wwB~)ltMKd<7E`T7tD(V$Wvl0-yD=2-2;+9LZBj9sbxpUG6xzf2qL32V z=b3T=#^JEnN}M>P#cI2|&m67j&v9;+i3A_itQ7v-oCGpRYHAI!HSizI*nk!Qg8;(2 zH!T2XUNdqS_=;sK{b|$A zi!zz^<^(+5I`D-XlHqs=9L?E5yzWdE=UHUwsOQ&@A_pI%xZ(!V2hACpsEBwMw*y-` zEc$-tbgkoo!~i9R)w4Q)Wcl-qBwUkxB~OA0MiEC#Ep|G>ykY;C*%C}v2L5cw{o2fWANyh?_lDDT#cV&6hj zxPBKPSHvg@H$?9vU9zjw{XM%LvNd5;I>84!=|z9Bx86?%&~8Dv9Ds0K;UuwjVLX%f zojk&O<%d^-&Wu83csMU{=D`^cQstd0H>OY=Hltny1ADqR#YlZ)aD+Si24e51EX_}Q`3WbYD!vChG#I`PZD8%|WkI4Op7HGBz8|@3If#A6=D_BaA@OQ)m-tMLi7GF=jBW|rLAY_oqeTL4 z`9YU&k9PI6WDQk2`><7%A(>Yw?KqguxWVC2h)sO(Hq&O3XFaNacgJ-g)n!apR6$>< zjNf^K!D@uPp%_oB2>}pW8ws_TG6KcTXjbsum4fw)(UzTJ*Rno6}~epPn=v zExVL1J{oA^0gd-MS!cwQA*wyoSraEJDt&Y(n#(j-FyQxdRfA3Yl6(ly;Xqx*QqF2}eV23xJIxolM%rf|au z<7)F&%Woy9C2VKyeJJ@VXQ61Pf?-c?$03aWnQMzT0rjtiN1x$gz6g=%W@;`yy|>uH zI}(&wkh9Hq_pwI|&6$vGm8~5`1|ge~MF&wCGH;cVpn?4O*d#vlOnipt0qBQu#DiZx^k2WO2$ofmDSKfW{C@xk`Ga!+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/logo_legacy.png b/app/src/main/res/drawable-xxhdpi/logo_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..90473167697b867ede9400b31c6dce93b7e39ebc GIT binary patch literal 8426 zcmXY01zeQR(?10%0S^#q5CKU^fg_F%siV83k&vVF0O>{vsRJaAPLWROZX^Xxq>hqq zc#r?@eV)(f+1c;T%+BoYv$M}Lk!lcm0z67Q002Os@J>bp0KkBt=@1+&^s`XJcNAS< z+DNKM0sxi$f={Bh(RB(pSv@yRCu=uPGZ!m>q@|O&)k_6OGaD-nD>F-P=K(8G0N|yc zf{dh=*TQZlQhTXkHar=8nKh61tN3MN%{5H<2|X#d7O)6_z5{cDl-WA`R$O_tfQ3Ps zTA#^UzubB0_a=b9x><>j35k6M&?>bh?5j34`J5hasy;y*fWDe9W7+cMjW;8mXV=?Q9*AXlL!qDiw|2jkHL`tlRBDWCE?k*bXr#zS3#5~-y@FyGPq_@VZW z5&n`6ujGLQ0FapfD*~baYXbDg&T2gh`CHk3H#rX&lBf@mB{bWB*kZL_9U6d5$h7Fu+LcMA zP655~CJI+&{+Um7&MvMyaf&KYvxCncy6(gU$c4X94#!xs`M4kI^E% zNo!M%!GlL=D=l)oS|E>?be~o;%{)azILrWYjBMUkK{WlKBv&1)rQXDyt;if*PsOu< z$oq3ne|f_r645Q%d23%nfrfz)Z-&!hiV%_*$+sU)9yQsQP@>TSK#mV!%~FmOO#@!S zAD$1a|CQ)&a1=<9d~KQ|Xn>p4MDqzC&#JU@-+cjxWz8?1S0@z*-GCO8cpBUln5!HF zZCaEDwRXy&(GIc)&xag4d`)p#Ry4kVfoKq|xr+HJ1_3OU@~Pc6khm247xn)>N<$q& z;!b=$5NgOy-~)!{C6TTKWfHQu{jfE7%0iZl`ya~9Qrfp8v6muSA#kpT%R0qu!j5i0 zTk+mjK<+~CP}BD&)&wzGs^pWrU7nEGW?1-=%M0-!OEUQdLpi#HKG0e&q(x?rwL+uA zj^sbtmz0LdoAgz?PUuMp+ya(h1B9xz;J+VM2znR-bwJJk-#g&V^C)gG8kPV(0{jTF z{r^b|#Q47bU^RL+zC9WJ_@E{Ka~$<*`zFQq!HTHKGnDS&N0suwS@v(A=sEr;B=PKw zh{vaLxDzM;``XIKVfTBla;i?e&d$5nXie|%a(uW+k@-(1N7hcq)=n=Eg}3R`lZXt5 zdRzC0+nI8Q&iTgOUsU6pYNys@_+zyIUW!{6jHSgl#CUXmKK}P7#*}FW*y5kJz{?Kd z_W0U6!1Y*gX{c`pb=ag+CPlE`VTAVr0jOU1X#@^^MmBc!-8$9zbl2&$J)o#i+vN%o z5Y0g4uI3f@tj^!j7*!N(Fo1`wJ9|GQVDIN{HiQ_ue1B(b!8v*uFi}OH-Bc$~!*gn+ zK34AGuyc0#6_3u4P@@lrnVj8q%`1h7>Z;NCM0KW;TWqT@lBn4tlV~QmLw#s0fSf2x znrhMg<)Ji|<2T2dlk2rw#jS{B8tUbZmAYGB3+f2NV_4k5#@&-oTSJp`J4o7t4ewSv zDxnwSgz?jN>{iEQgSr_W@ZgbdRP(b~nq=Rly#9tPcabXwiEMoVl)IQjhS$JX$9vs9 zS6B4n|H8*$uHjymt-@S{t!3@q><&+{TQcJvoC_Hen^nBy_{&`DD_iw~6OPv>62WA& zIYu2ep3N^vLUMI$L?th8PUpUSbZ?xQ#izLeB;k1$iL$Y#zEJ&iJ=8g!S)2BB#?k2@ zo+wr&TdSe9Zp3H#?LvV}oX3gwBJG&b+ukqZB#6*UxK-Cz-x(fX_)Faqn&5%Wklf

*?lVy@ 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 A`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/logo_white_legacy.png b/app/src/main/res/drawable-xxhdpi/logo_white_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..7d76d07d2dbc95d1fb927b1510ace8ac4487048e GIT binary patch literal 8402 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..2339c04bd --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..e4d87cace --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 000000000..5a54380d9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/logo_rounded.xml b/app/src/main/res/drawable/logo_rounded.xml new file mode 100644 index 000000000..860d4c963 --- /dev/null +++ b/app/src/main/res/drawable/logo_rounded.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/app/src/main/res/drawable/splash_screen.xml b/app/src/main/res/drawable/splash_screen.xml new file mode 100644 index 000000000..56530dc15 --- /dev/null +++ b/app/src/main/res/drawable/splash_screen.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/splash_screen_dark.xml b/app/src/main/res/drawable/splash_screen_dark.xml new file mode 100644 index 000000000..6e5563e7d --- /dev/null +++ b/app/src/main/res/drawable/splash_screen_dark.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml new file mode 100644 index 000000000..c78bee3b5 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml new file mode 100644 index 000000000..1084c2408 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2648f2cdd70bbe8ad19a97e3ef802d14f30b8d9e GIT binary patch literal 1859 zcmV-J2fX-+P)okTKkpJZia zxI$@KGviO8eUj@cNEatq_j%+-2Qh+^c4?In$1f^}7d<0g*92klg~^tE9t}{4RMGgY z-vXswW+Kx5fobuD-(z2$0h%C{H~fq%^G6`IPt64A+yT0oIRP|Lno|FZzXH(;LZH?8 z2eGft0m#Sh!u5_~S70^0b~4e00@ zgxmKSw*;SSUNA1U(6-}ku-q|L}47^kP4znCqz$rK5Bv!IONtFQ%G#n01mFIw5Iio1_IhJp`3b*burpFblyM^H- zRk1Mv9dSR+Em2teW z#-X`DfG&6j=$Z9;GEmpARFzLJb zW5iehMUuSrLkBR7`Tls~e#6d-!f+6VriT2xmIYewA)uLW>fw)?yJH4~I0;`}gWh}m zP5000E|?*&v_Df>SB()Txt0Zz)e@lJJ@?uCf=~a0wj2E}14U)B71`N4$h&V_#{+on zBh~POu{|7F9a+{fxb!Fxju(oZ*P;8)pwmDzH|SwgPN&VF-+j9u(!OpY077tT_&5|u z>3JaIyT5*KJ8!R7C=gzlkW<_X53I&A1DUllziEPqP=!b~TX^v0em(A7I2 z2nc7vb-S*Ex~0!%f68zhaV~;1Nx)2HgfZbL%|W0PB>_6_J=X`tf8GKu*B=bK6FL9m zf8i+E6TknEUp4rcD>wUK?KT}qgw9lsaA@ioX-Yka zDGoA2P@?I9m)=#5ZZNioLr^eMnTnC7s=N<~ZbIo=*tD;i?g5Xq$@ShFfG=~~V1}Y< z^fQ$soD>y_+IxZMI#V?e^Uei0QPKhZcB%>gcBj+3e;OAUidaa^AF zUZW^Y)k0)a8N`34fuj0ux+!6bR0c@cu7fC9%|;AxH( zCmJU|{rY0;qiErdi6W=kvkNEVSLaFQieKKkS-ki_ZrIXer^1#V%?peD?Ib_BR=0EQ z{GX8f*se1)_Rz`DMOj?3xn!A_OUQD`K60DOlKmtH$!%^Ki^~Ifp|Lrqo?7s0?$mjk zHe;V?-=bf6+?C&62oXiaJb^#FKr)MDHpvS9Fl=C`nCW7002ovPDHLkV1l9^WLp3L literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..41064311e41ed95c462f3c7df3b2d492f125ab84 GIT binary patch literal 3514 zcmV;r4Mp;aP)52cLm)t|38$i>R8iVWwOdzRu(Y&-Q87UzM6L34+imT=Z*9f8SGQ|lU*Goa zZd+@sRl6RoeZ?CQHQab~wN{QKp!T^4E?9&XQ4+rW{@+Ysa>0az7}$C5Pln9(eZTpi z-+U8_x~~iJBC-jMuqmeP|33@vtP+i+5>JgHpL`dyV}=_r&;;ll(Fp4$<^`Q^__A6_ z_%r$_dWCKR2&}_*ux%jc92$%1u5*@%<<;WQ<@%&hwf?uV?7E#YwZ0Tf9hPP+Kg+Up zcZtBdTGz~OD}{aWaj(O%a1OKUII4~JeIZbK&46B3FTxf9U)-f?1 z2j^I>&x3Qqxy{Vi;)Zyh#&A@gUaosgwp{la?$9kWC~BP%Yl)#p)LJ9+ownOd;5*pH z-Iv+M0fx_wuL0LGGe3{hD9)V=&DJI2h8JMrXo?920fC$nGr(rB3gFtd+H`*%Fsn5( zbyycS4(N zwbiX~gvz>L+@M1yjiFVwU2cS8Q+nD!%uah4+UQj67RRZLCGo z%nM5gN0ZnS(kk7PLkkWE67iE5QpVZ&u7$*^q)c5km5B~R4UPq*tm;mw^3+4FF*i1c z5UF%Q#MzO%FcjffK+3#yEjaa%klRP60GUF$Cp%FjHfTz0l0+XsnhUy){tZ7mi)4M<*|| zqbrS_=xWnlw+mbst{=OGM?Hsw4V`(hLz;GQBDc>D0m5E?uOr&?>Zgs!Xf)n;dF4ag zo~$Y!riP=MvixgeYP

    L$&qn#+cC-Zj7rNbati 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..408bdf117b797d92e954e3fda087f474a73b3bb1 GIT binary patch literal 1370 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7973834d30823919324fffd579e6738d18c5ad7a GIT binary patch literal 2502 zcmV;%2|4zOP)RhwEF?yqKGIGyO{eX2GHq?0 zHpyseCY>}%XVRKZF$pH=G|>R^Qh7fVd8n|vAS$F)QBgnycK!AI&bwOlryY^Gjm#4Zm0A8&9h9jaNu+s-HFv z(%VqV)N{UqERYGZv1TRt$dAz(63Naw$xcC?Zvb_kp2ZTvLzSoRRA;xYk@idwZN_Dt ziB{zsxd6n*kR1#$0qzOlw>1qf{`Siok)0F* z?umNhA8VNaPXsg!Eq>&8k0LuM1k7LZ_}gD+0z47WIK24bm%fSYm;fe#319-4049J5 zU;>x`CV&YLlJMhhNdCh`NZoTu7Qth|V+siY8-LaVy_d(pY&Od(cuX5#2mt|qEW9c^ z_?EnK&;Y8Ow%``<`lkc36|nz9Jt$I&K&5SE0_H?OArX*#7?i0c-bn~W0Tr#oUZsCv z+@%0T@)07T)N=`;C?I~P(W?}m7<3`vh?vhonO5eRgisXV?QtBebSA(s37>|{2gBns) zFabUaIAolD)LX;1B;&-C1SY^&0o|U#x0k>KNF=}$__P&O07z3e430CWxMHIMjf`bb8p9t@STFEsR;}L>!0rdlWA@RWWIa} zhHg*TYzL2N<8$@y_j`Nzn5;T8pGCHjQY>Eqm~$6L=S)ECGX^-^;Mji7T^RBWKI#2} zfCl*s`0c+g!-Q#W1mx}Ohg&1IqaTlD_j^X);8OwhqJR>43wY>9-OxWU=63<>e%cLZ zot%9GgLfcdd(9O5=~gXq*1 zU-d$1%aGH@VBar1_CHvutC0>q>HW3>ei;}7Fl&F(4gapaN!oR%zO{g~^1u>+S+z?K1r=B6==4?qE^q(x*)@k(xz_MY8VBH^XY0IQ z>9~S#5s-Z{Fa-z`rXJq>wBIWM+g|O1)}Gtb{_VR(eQ zW@%n0r2eK2jD5p13K$%oei?iIzawN@r$MDTF+1=HcnY8NekwrQ68HjWbmw6G4;!JN ztdA^HJ%6o$k0~hsf^4Hf`pMQAe2n%~5D5?^#A$2bnO9ojlzz~y%h>ogr;WGh3#_0mTL;=TwNWi3o8c?NIz;|9~fCI&s;PUmUbw1udP|^=uUL-J_T}+#Cndu6CqkAKt z<`fZd+Km5K9DD+-B+!2k%BUo;o8YxWy)+cO=D2j%blib&4W6cDN)A&| zW~<-Z!?y^?X(PvQJV*stB;ZFs`aRm<^anQ1%W+QPRMps5;?R=}3OeM7e2nurn*oP;gM z5x%QYZw22XAh!br3`ait>u*UWAbRr~iE3TfHQ9b`rHuqX^?OJ7pvrA00`M))W7iiw z{QL&r1qeUCF`tWB&yx*z$oeNtPy#~K)cOH_t0R1xb`zcfisU0*oZ`V)-zQVEP4E`1ISEd$4Ma|V$pq1JwjF- z7x76_2|E3R(2ly~72P>}ThL6PPlbM7hkj8o7Z z(4OCJ=Cy4T2p_-HDLU!nz6G(HZ~~6xR`322Cqd2Q_$~O0K(P@CyRsFjC4G3wRhSQq z@(ejPo{U=CiM4quWQ1EXInuQ)VjNaBmiA&B(rSd9p|`lN=0zGKBy$O4}>p!?1`xFzIiYz<*<=VHiKls8{spnhv}`XQaz$bD;ZIw6xk-Vn1-~} zsia|!iYXPc)jDN%DJQ8ICL#MMyBU@AiE;7fKfk|l>4qnf5f||QPnk(rXmTO9=)Pri z2OPI9EK;>8V);{=h*jy@h*fFXvds!il9)92;`a8_wO?NTJxy37{}?i%Yy?INr5yd1 z!WGfITzI^iyH_1g?thgefg~}+lR#M@6J&#o1Xi4vK2Xfh*kDUl2 Q<^TWy07*qoM6N<$f`Y4>)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..e9af08b5dc2af831ec57801ea8467f9ec5937db1 GIT binary patch literal 5013 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 SuLXcXEHOWS2~&=~9r-^Gnb1@K literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..807c391954403baa0959a10085acdd8966afdc06 GIT binary patch literal 7731 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..87a12fc0e9bba7589f7e2f5ef91dd304c3c867ce GIT binary patch literal 5013 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd89b7262b3481ed5eb7eaf4a99a58f7b66164f GIT binary patch literal 11107 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 pK613Ihb;C$-Le6YbHKas_T}8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml new file mode 100644 index 000000000..53fa6f596 --- /dev/null +++ b/app/src/main/res/values-night/styles.xml @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..b8d0b3952 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,20 @@ + + + + #dddddd + #1452BC + #175DDC + + + #666666 + #191919 + #191919 + #52bdfb + + + #000000 + #333333 + #738182 + #efeff4 + #FFFFFF + diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 000000000..a8a787f8f --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #175DDC + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..193af8b68 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Bitwarden + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..87e723c8f --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 000000000..a608293f2 --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,3 @@ + + + diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 000000000..288f6904b --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/test/java/com/x8bit/bitwarden/example/ExampleComposeTest.kt b/app/src/test/java/com/x8bit/bitwarden/example/ExampleComposeTest.kt new file mode 100644 index 000000000..524d117f6 --- /dev/null +++ b/app/src/test/java/com/x8bit/bitwarden/example/ExampleComposeTest.kt @@ -0,0 +1,45 @@ +package com.x8bit.bitwarden.example + +import androidx.compose.material3.Button +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onRoot +import androidx.compose.ui.test.performClick +import dagger.hilt.android.testing.HiltTestApplication +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config + +/** + * Example showing that Compose tests using "junit" imports and Roboelectric work. + */ +@Config( + application = HiltTestApplication::class, + sdk = [Config.NEWEST_SDK], +) +@RunWith(RobolectricTestRunner::class) +class ExampleComposeTest { + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun `the onClick callback should be correctly triggered when performing a click`() { + var isClicked = false + composeTestRule.setContent { + Button( + onClick = { isClicked = true }, + ) { + // Empty + } + } + + assertFalse(isClicked) + + composeTestRule.onRoot().performClick() + + assertTrue(isClicked) + } +} diff --git a/app/src/test/java/com/x8bit/bitwarden/example/ExampleJUnit5Test.kt b/app/src/test/java/com/x8bit/bitwarden/example/ExampleJUnit5Test.kt new file mode 100644 index 000000000..d6e86d59a --- /dev/null +++ b/app/src/test/java/com/x8bit/bitwarden/example/ExampleJUnit5Test.kt @@ -0,0 +1,18 @@ +package com.x8bit.bitwarden.example + +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test + +/** + * Example showing that JUnit5 tests using "jupiter" imports work. + */ +class ExampleJUnit5Test { + @Nested + inner class NestedSample { + @Test + fun `an empty listOf should be the same as emptyList`() { + assertEquals(listOf(), emptyList()) + } + } +} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 000000000..3f2fd1c38 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,6 @@ +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.ksp) apply false +} diff --git a/detekt-config.yml b/detekt-config.yml new file mode 100644 index 000000000..838787ea8 --- /dev/null +++ b/detekt-config.yml @@ -0,0 +1,668 @@ +build: + maxIssues: 0 + excludeCorrectable: false + weights: + +config: + validation: true + warningsAsErrors: false + excludes: '' + +processors: + active: true + exclude: + - 'DetektProgressListener' + +console-reports: + active: true + exclude: + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + - 'FileBasedFindingsReport' + +output-reports: + active: true + exclude: + +comments: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + AbsentOrWrongFileLicense: + active: false + licenseTemplateFile: 'license.template' + CommentOverPrivateFunction: + active: false + CommentOverPrivateProperty: + active: false + EndOfSentenceFormat: + active: false + endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + UndocumentedPublicClass: + active: true + searchInNestedClass: true + searchInInnerClass: true + searchInInnerObject: true + searchInInnerInterface: true + UndocumentedPublicFunction: + active: true + ignoreAnnotated: [ 'Module' ] + UndocumentedPublicProperty: + active: false + +complexity: + active: true + ComplexCondition: + active: true + threshold: 4 + ComplexInterface: + active: false + threshold: 10 + includeStaticDeclarations: false + includePrivateDeclarations: false + CyclomaticComplexMethod: + active: true + threshold: 15 + ignoreSingleWhenExpression: true + ignoreSimpleWhenEntries: false + ignoreNestingFunctions: false + nestingFunctions: [ run, let, apply, with, also, use, forEach, isNotNull, ifNull ] + LabeledExpression: + active: false + ignoredLabels: [ ] + LargeClass: + active: true + threshold: 600 + LongMethod: + active: true + threshold: 60 + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + LongParameterList: + active: true + functionThreshold: 6 + constructorThreshold: 7 + ignoreDefaultParameters: false + ignoreDataClasses: true + ignoreAnnotated: [ 'Composable' ] + MethodOverloading: + active: false + threshold: 6 + NestedBlockDepth: + active: true + threshold: 4 + ReplaceSafeCallChainWithRun: + active: false + StringLiteralDuplication: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + threshold: 3 + ignoreAnnotation: true + excludeStringsWithLessThan5Characters: true + ignoreStringsRegex: '$^' + TooManyFunctions: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + thresholdInFiles: 11 + thresholdInClasses: 11 + thresholdInInterfaces: 11 + thresholdInObjects: 11 + thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + ignoreAnnotated: [ 'Module' ] + +coroutines: + active: true + GlobalCoroutineUsage: + active: false + RedundantSuspendModifier: + active: false + SuspendFunWithFlowReturnType: + active: false + +empty-blocks: + active: true + EmptyCatchBlock: + active: true + allowedExceptionNameRegex: '_|(ignore|expected).*' + EmptyClassBlock: + active: true + EmptyDefaultConstructor: + active: true + EmptyDoWhileBlock: + active: true + EmptyElseBlock: + active: true + EmptyFinallyBlock: + active: true + EmptyForBlock: + active: true + EmptyFunctionBlock: + active: true + ignoreOverridden: false + EmptyIfBlock: + active: true + EmptyInitBlock: + active: true + EmptyKtFile: + active: true + EmptySecondaryConstructor: + active: true + EmptyTryBlock: + active: true + EmptyWhenBlock: + active: true + EmptyWhileBlock: + active: true + +exceptions: + active: true + ExceptionRaisedInUnexpectedLocation: + active: false + methodNames: [ toString, hashCode, equals, finalize ] + InstanceOfCheckForException: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + NotImplementedDeclaration: + active: false + PrintStackTrace: + active: false + RethrowCaughtException: + active: false + ReturnFromFinally: + active: false + ignoreLabeled: false + SwallowedException: + active: false + ignoredExceptionTypes: + - InterruptedException + - NumberFormatException + - ParseException + - MalformedURLException + allowedExceptionNameRegex: '_|(ignore|expected).*' + ThrowingExceptionFromFinally: + active: false + ThrowingExceptionInMain: + active: false + ThrowingExceptionsWithoutMessageOrCause: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + exceptions: + - IllegalArgumentException + - IllegalStateException + - IOException + ThrowingNewInstanceOfSameException: + active: false + TooGenericExceptionCaught: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + exceptionNames: + - ArrayIndexOutOfBoundsException + - Error + - Exception + - IllegalMonitorStateException + - NullPointerException + - IndexOutOfBoundsException + - RuntimeException + - Throwable + allowedExceptionNameRegex: '_|(ignore|expected).*' + TooGenericExceptionThrown: + active: true + exceptionNames: + - Error + - Exception + - Throwable + - RuntimeException + +formatting: + active: true + android: false + autoCorrect: true + AnnotationOnSeparateLine: + active: false + autoCorrect: true + AnnotationSpacing: + active: false + autoCorrect: true + ArgumentListWrapping: + active: false + autoCorrect: true + ChainWrapping: + active: true + autoCorrect: true + CommentSpacing: + active: true + autoCorrect: true + EnumEntryNameCase: + active: false + autoCorrect: true + Filename: + active: false + FinalNewline: + active: true + autoCorrect: true + insertFinalNewLine: true + ImportOrdering: + active: false + autoCorrect: true + layout: 'idea' + Indentation: + active: false + autoCorrect: true + indentSize: 4 + MaximumLineLength: + active: true + maxLineLength: 120 + ModifierOrdering: + active: true + autoCorrect: true + MultiLineIfElse: + active: true + autoCorrect: true + NoBlankLineBeforeRbrace: + active: true + autoCorrect: true + NoConsecutiveBlankLines: + active: true + autoCorrect: true + NoEmptyClassBody: + active: true + autoCorrect: true + NoEmptyFirstLineInMethodBlock: + active: false + autoCorrect: true + NoLineBreakAfterElse: + active: true + autoCorrect: true + NoLineBreakBeforeAssignment: + active: true + autoCorrect: true + NoMultipleSpaces: + active: true + autoCorrect: true + NoSemicolons: + active: true + autoCorrect: true + NoTrailingSpaces: + active: true + autoCorrect: true + NoUnitReturn: + active: true + autoCorrect: true + NoUnusedImports: + active: true + autoCorrect: true + NoWildcardImports: + active: true + PackageName: + active: true + autoCorrect: true + ParameterListWrapping: + active: true + autoCorrect: true + SpacingAroundColon: + active: true + autoCorrect: true + SpacingAroundComma: + active: true + autoCorrect: true + SpacingAroundCurly: + active: true + autoCorrect: true + SpacingAroundDot: + active: true + autoCorrect: true + SpacingAroundDoubleColon: + active: false + autoCorrect: true + SpacingAroundKeyword: + active: true + autoCorrect: true + SpacingAroundOperators: + active: true + autoCorrect: true + SpacingAroundParens: + active: true + autoCorrect: true + SpacingAroundRangeOperator: + active: true + autoCorrect: true + SpacingBetweenDeclarationsWithAnnotations: + active: false + autoCorrect: true + SpacingBetweenDeclarationsWithComments: + active: false + autoCorrect: true + StringTemplate: + active: true + autoCorrect: true + TrailingCommaOnCallSite: + active: true + autoCorrect: true + useTrailingCommaOnCallSite: true + TrailingCommaOnDeclarationSite: + active: true + autoCorrect: true + useTrailingCommaOnDeclarationSite: true + +libraries: + active: true + ForbiddenPublicDataClass: + active: false + LibraryCodeMustSpecifyReturnType: + active: true + LibraryEntitiesShouldNotBePublic: + active: false + +naming: + active: true + ClassNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + EnumNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' + ForbiddenClassName: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + forbiddenName: [ ] + FunctionMaxLength: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + maximumFunctionNameLength: 30 + FunctionMinLength: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + minimumFunctionNameLength: 3 + FunctionNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)' + excludeClassPattern: '$^' + ignoreAnnotated: [ 'Composable' ] + FunctionParameterNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + parameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + InvalidPackageDeclaration: + active: false + rootPackage: '' + MatchingDeclarationName: + active: true + mustBeFirst: true + MemberNameEqualsClassName: + active: true + NonBooleanPropertyPrefixedWithIs: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + ObjectPropertyNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + constantPattern: '[A-Za-z][_A-Za-z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' + PackageNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' + TopLevelPropertyNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/compose/**'] + constantPattern: '[A-Z][_A-Z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' + VariableMaxLength: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + maximumVariableNameLength: 64 + VariableMinLength: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + minimumVariableNameLength: 1 + VariableNaming: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + variablePattern: '[a-z][A-Za-z0-9]*' + privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + +performance: + active: true + ArrayPrimitive: + active: true + ForEachOnRange: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + SpreadOperator: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + UnnecessaryTemporaryInstantiation: + active: true + +potential-bugs: + active: true + Deprecation: + active: false + EqualsAlwaysReturnsTrueOrFalse: + active: true + EqualsWithHashCodeExist: + active: true + ExplicitGarbageCollectionCall: + active: true + HasPlatformType: + active: false + IgnoredReturnValue: + active: false + restrictToConfig: true + returnValueAnnotations: [ '*.CheckReturnValue', '*.CheckResult' ] + ImplicitDefaultLocale: + active: false + ImplicitUnitReturnType: + active: false + allowExplicitReturnType: true + InvalidRange: + active: true + IteratorHasNextCallsNextMethod: + active: true + IteratorNotThrowingNoSuchElementException: + active: true + LateinitUsage: + active: false + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + ignoreAnnotated: [ ] + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: false + NullableToStringCall: + active: false + UnconditionalJumpStatementInLoop: + active: false + UnnecessaryNotNullOperator: + active: false + UnnecessarySafeCall: + active: false + UnreachableCode: + active: true + UnsafeCallOnNullableType: + active: true + UnsafeCast: + active: false + UselessPostfixExpression: + active: false + WrongEqualsTypeParameter: + active: true + +style: + active: true + BracesOnIfStatements: + active: false + ClassOrdering: + active: false + CollapsibleIfStatements: + active: false + DataClassContainsFunctions: + active: false + conversionFunctionPrefix: [ 'to' ] + DataClassShouldBeImmutable: + active: false + EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: false + ExplicitCollectionElementAccessMethod: + active: false + ExplicitItLambdaParameter: + active: false + ExpressionBodySyntax: + active: false + includeLineWrapping: false + ForbiddenComment: + active: true + comments: [ 'FIXME:', 'STOPSHIP:' ] + allowedPatterns: '' + ForbiddenImport: + active: false + imports: [ ] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: false + methods: [ 'kotlin.io.println', 'kotlin.io.print' ] + ForbiddenVoid: + active: false + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true + ignoreOverridableFunction: true + excludedFunctions: [ 'describeContents' ] + ignoreAnnotated: [ 'dagger.Provides' ] + LoopWithTooManyJumpStatements: + active: true + maxJumpCount: 1 + MagicNumber: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + ignoreNumbers: [ '-1', '0', '0.5', '1', '2' ] + ignoreHashCodeFunction: true + ignorePropertyDeclaration: false + ignoreLocalVariableDeclaration: false + ignoreConstantDeclaration: true + ignoreCompanionObjectPropertyDeclaration: true + ignoreAnnotation: false + ignoreNamedArgument: true + ignoreEnums: false + ignoreRanges: false + MandatoryBracesLoops: + active: false + MaxLineLength: + active: true + maxLineLength: 120 + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false + MayBeConst: + active: true + ModifierOrder: + active: true + NestedClassesVisibility: + active: false + NewLineAtEndOfFile: + active: true + NoTabs: + active: false + OptionalAbstractKeyword: + active: true + OptionalUnit: + active: false + OptionalWhenBraces: + active: false + PreferToOverPairSyntax: + active: false + ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: false + RedundantVisibilityModifierRule: + active: false + ReturnCount: + active: true + max: 2 + excludedFunctions: [ 'equals' ] + excludeLabeled: false + excludeReturnFromLambda: true + excludeGuardClauses: false + SafeCast: + active: true + SerialVersionUIDInSerializableClass: + active: false + SpacingBetweenPackageAndImports: + active: false + ThrowsCount: + active: true + max: 2 + TrailingWhitespace: + active: false + UnderscoresInNumericLiterals: + active: false + acceptableLength: 5 + UnnecessaryAbstractClass: + active: true + ignoreAnnotated: [ 'Module' ] + UnnecessaryAnnotationUseSiteTarget: + active: false + UnnecessaryApply: + active: false + UnnecessaryInheritance: + active: true + UnnecessaryLet: + active: false + UnnecessaryParentheses: + active: false + UntilInsteadOfRangeTo: + active: false + UnusedImports: + active: false + UnusedPrivateClass: + active: true + UnusedPrivateMember: + active: false + allowedNames: '(_|ignored|expected|serialVersionUID)' + UseArrayLiteralsInAnnotations: + active: false + UseCheckNotNull: + active: false + UseCheckOrError: + active: false + UseDataClass: + active: false + ignoreAnnotated: [ ] + allowVars: false + UseEmptyCounterpart: + active: false + UseIfInsteadOfWhen: + active: false + UseRequire: + active: false + UseRequireNotNull: + active: false + UselessCallOnNotNull: + active: true + UtilityClassWithPublicConstructor: + active: true + ignoreAnnotated: [ 'Module' ] + VarCouldBeVal: + active: false + WildcardImport: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludeImports: [ 'java.util.*', 'kotlinx.android.synthetic.*' ] diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..d8d780060 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,8 @@ +android.nonTransitiveRClass=true +# Suppresses warning until build tools that are compatible with SDK 34 +android.suppressUnsupportedCompileSdk=34 +android.useAndroidX=true + +kotlin.code.style=official + +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..3edb81270 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,89 @@ +# Please keep each version / library / plugin alphabetized within its own section and subsubsection. +[versions] + +# SDK Versions +compileSdk = "34" +targetSdk = "34" +minSdk = "28" + +# Dependency Versions +accompanist = "0.30.1" +androidGradlePlugin = "8.1.0" +androidxActivity = "1.7.2" +androidxComposeBom = "2023.06.01" +androidxCore = "1.10.1" +androidxHiltNavigationCompose = "1.0.0" +androidxLifecycle = "2.6.1" +androidxNavigation = "2.6.0" +androidxRoom = "2.5.2" +detekt = "1.23.1" +firebaseBom = "32.2.2" +glide = "4.15.1" +hilt = "2.47" +junit5 = "5.8.2" +jvmTarget = "1.8" +kotlin = "1.9.0" +kotlinCompilerExtensionVersion = "1.5.1" +kotlinxCoroutines = "1.7.3" +kotlinxSerialization = "1.5.1" +ksp = "1.9.0-1.0.11" +mockk = "1.13.5" +okhttp = "4.11.0" +retrofit = "2.9.0" +retrofitKotlinxSerialization = "1.0.0" +roboelectric = "4.10.3" +turbine = "1.0.0" +zxcvbn4j = "1.8.0" +zxing = "3.5.2" + +[libraries] +# Format: - +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" } +androidx-compose-animation = { module = "androidx.compose.animation:animation" } +androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidxComposeBom" } +androidx-compose-material3 = { module = "androidx.compose.material3:material3" } +androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } +androidx-compose-ui = { module = "androidx.compose.ui:ui" } +androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } +androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test-junit4" } +androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } +androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } +androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" } +androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } +androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidxNavigation" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidxRoom" } +androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "androidxRoom" } +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "androidxRoom" } +bumptech-glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } +detekt-detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } +detekt-detekt-rules = { module = "io.gitlab.arturbosch.detekt:detekt-rules-libraries", version.ref = "detekt" } +google-firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" } +google-firebase-cloud-messaging = { module = "com.google.firebase:firebase-messaging-ktx" } +google-firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics-ktx" } +google-hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +google-hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } +google-hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } +jakewharton-retrofit-kotlinx-serialization = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerialization" } +junit-junit5 = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit5" } +junit-vintage = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "junit5" } +kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } +kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" } +mockk-mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +nulab-zxcvbn4j = { module = "com.nulab-inc:zxcvbn", version.ref = "zxcvbn4j" } +robolectric-robolectric = { module = "org.robolectric:robolectric", version.ref = "roboelectric" } +square-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +square-okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } +square-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +square-turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" } +zxing-zxing-core = { module = "com.google.zxing:core", version.ref = "zxing" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 zcma&O1CT9Y(k9%tZQHhO+qUh#ZQHhO+qmuS+qP|E@9xZO?0h@l{(r>DQ>P;GjjD{w zH}lENr;dU&FbEU?00aa80D$0M0RRB{U*7-#kbjS|qAG&4l5%47zyJ#WrfA#1$1Ctx zf&Z_d{GW=lf^w2#qRJ|CvSJUi(^E3iv~=^Z(zH}F)3Z%V3`@+rNB7gTVU{Bb~90p|f+0(v;nz01EG7yDMX9@S~__vVgv%rS$+?IH+oZ03D5zYrv|^ zC1J)SruYHmCki$jLBlTaE5&dFG9-kq3!^i>^UQL`%gn6)jz54$WDmeYdsBE9;PqZ_ zoGd=P4+|(-u4U1dbAVQrFWoNgNd;0nrghPFbQrJctO>nwDdI`Q^i0XJDUYm|T|RWc zZ3^Qgo_Qk$%Fvjj-G}1NB#ZJqIkh;kX%V{THPqOyiq)d)0+(r9o(qKlSp*hmK#iIY zA^)Vr$-Hz<#SF=0@tL@;dCQsm`V9s1vYNq}K1B)!XSK?=I1)tX+bUV52$YQu*0%fnWEukW>mxkz+%3-S!oguE8u#MGzST8_Dy^#U?fA@S#K$S@9msUiX!gd_ow>08w5)nX{-KxqMOo7d?k2&?Vf z&diGDtZr(0cwPe9z9FAUSD9KC)7(n^lMWuayCfxzy8EZsns%OEblHFSzP=cL6}?J| z0U$H!4S_TVjj<`6dy^2j`V`)mC;cB%* z8{>_%E1^FH!*{>4a7*C1v>~1*@TMcLK{7nEQ!_igZC}ikJ$*<$yHy>7)oy79A~#xE zWavoJOIOC$5b6*q*F_qN1>2#MY)AXVyr$6x4b=$x^*aqF*L?vmj>Mgv+|ITnw_BoW zO?jwHvNy^prH{9$rrik1#fhyU^MpFqF2fYEt(;4`Q&XWOGDH8k6M=%@fics4ajI;st# zCU^r1CK&|jzUhRMv;+W~6N;u<;#DI6cCw-otsc@IsN3MoSD^O`eNflIoR~l4*&-%RBYk@gb^|-JXs&~KuSEmMxB}xSb z@K76cXD=Y|=I&SNC2E+>Zg?R6E%DGCH5J1nU!A|@eX9oS(WPaMm==k2s_ueCqdZw| z&hqHp)47`c{BgwgvY2{xz%OIkY1xDwkw!<0veB#yF4ZKJyabhyyVS`gZepcFIk%e2 zTcrmt2@-8`7i-@5Nz>oQWFuMC_KlroCl(PLSodswHqJ3fn<;gxg9=}~3x_L3P`9Sn zChIf}8vCHvTriz~T2~FamRi?rh?>3bX1j}%bLH+uFX+p&+^aXbOK7clZxdU~6Uxgy z8R=obwO4dL%pmVo*Ktf=lH6hnlz_5k3cG;m8lgaPp~?eD!Yn2kf)tU6PF{kLyn|oI@eQ`F z3IF7~Blqg8-uwUuWZScRKn%c2_}dXB6Dx_&xR*n9M9LXasJhtZdr$vBY!rP{c@=)& z#!?L$2UrkvClwQO>U*fSMs67oSj2mxiJ$t;E|>q%Kh_GzzWWO&3;ufU%2z%ucBU8H z3WIwr$n)cfCXR&>tyB7BcSInK>=ByZA%;cVEJhcg<#6N{aZC4>K41XF>ZgjG`z_u& zGY?;Ad?-sgiOnI`oppF1o1Gurqbi*;#x2>+SSV6|1^G@ooVy@fg?wyf@0Y!UZ4!}nGuLeC^l)6pwkh|oRY`s1Pm$>zZ3u-83T|9 zGaKJIV3_x+u1>cRibsaJpJqhcm%?0-L;2 zitBrdRxNmb0OO2J%Y&Ym(6*`_P3&&5Bw157{o7LFguvxC$4&zTy#U=W*l&(Q2MNO} zfaUwYm{XtILD$3864IA_nn34oVa_g^FRuHL5wdUd)+W-p-iWCKe8m_cMHk+=? zeKX)M?Dt(|{r5t7IenkAXo%&EXIb-i^w+0CX0D=xApC=|Xy(`xy+QG^UyFe z+#J6h_&T5i#sV)hj3D4WN%z;2+jJcZxcI3*CHXGmOF3^)JD5j&wfX)e?-|V0GPuA+ zQFot%aEqGNJJHn$!_}#PaAvQ^{3-Ye7b}rWwrUmX53(|~i0v{}G_sI9uDch_brX&6 zWl5Ndj-AYg(W9CGfQf<6!YmY>Ey)+uYd_JNXH=>|`OH-CDCmcH(0%iD_aLlNHKH z7bcW-^5+QV$jK?R*)wZ>r9t}loM@XN&M-Pw=F#xn(;u3!(3SXXY^@=aoj70;_=QE9 zGghsG3ekq#N||u{4We_25U=y#T*S{4I{++Ku)> zQ!DZW;pVcn>b;&g2;YE#+V`v*Bl&Y-i@X6D*OpNA{G@JAXho&aOk(_j^weW{#3X5Y z%$q_wpb07EYPdmyH(1^09i$ca{O<}7) zRWncXdSPgBE%BM#by!E>tdnc$8RwUJg1*x($6$}ae$e9Knj8gvVZe#bLi!<+&BkFj zg@nOpDneyc+hU9P-;jmOSMN|*H#>^Ez#?;%C3hg_65leSUm;iz)UkW)jX#p)e&S&M z1|a?wDzV5NVnlhRBCd_;F87wp>6c<&nkgvC+!@KGiIqWY4l}=&1w7|r6{oBN8xyzh zG$b#2=RJp_iq6)#t5%yLkKx(0@D=C3w+oiXtSuaQ%I1WIb-eiE$d~!)b@|4XLy!CZ z9p=t=%3ad@Ep+<9003D2KZ5VyP~_n$=;~r&YUg5UZ0KVD&tR1DHy9x)qWtKJp#Kq# zP*8p#W(8JJ_*h_3W}FlvRam?<4Z+-H77^$Lvi+#vmhL9J zJ<1SV45xi;SrO2f=-OB(7#iNA5)x1uNC-yNxUw|!00vcW2PufRm>e~toH;M0Q85MQLWd?3O{i8H+5VkR@l9Dg-ma ze2fZ%>G(u5(k9EHj2L6!;(KZ8%8|*-1V|B#EagbF(rc+5iL_5;Eu)L4Z-V;0HfK4d z*{utLse_rvHZeQ>V5H=f78M3Ntg1BPxFCVD{HbNA6?9*^YIq;B-DJd{Ca2L#)qWP? zvX^NhFmX?CTWw&Ns}lgs;r3i+Bq@y}Ul+U%pzOS0Fcv9~aB(0!>GT0)NO?p=25LjN z2bh>6RhgqD7bQj#k-KOm@JLgMa6>%-ok1WpOe)FS^XOU{c?d5shG(lIn3GiVBxmg`u%-j=)^v&pX1JecJics3&jvPI)mDut52? z3jEA)DM%}BYbxxKrizVYwq?(P&19EXlwD9^-6J+4!}9{ywR9Gk42jjAURAF&EO|~N z)?s>$Da@ikI4|^z0e{r`J8zIs>SpM~Vn^{3fArRu;?+43>lD+^XtUcY1HidJwnR6+ z!;oG2=B6Z_=M%*{z-RaHc(n|1RTKQdNjjV!Pn9lFt^4w|AeN06*j}ZyhqZ^!-=cyGP_ShV1rGxkx8t zB;8`h!S{LD%ot``700d0@Grql(DTt4Awgmi+Yr0@#jbe=2#UkK%rv=OLqF)9D7D1j z!~McAwMYkeaL$~kI~90)5vBhBzWYc3Cj1WI0RS`z000R8-@ET0dA~*r(gSiCJmQMN&4%1D zyVNf0?}sBH8zNbBLn>~(W{d3%@kL_eQ6jEcR{l>C|JK z(R-fA!z|TTRG40|zv}7E@PqCAXP3n`;%|SCQ|ZS%ym$I{`}t3KPL&^l5`3>yah4*6 zifO#{VNz3)?ZL$be;NEaAk9b#{tV?V7 zP|wf5YA*1;s<)9A4~l3BHzG&HH`1xNr#%){4xZ!jq%o=7nN*wMuXlFV{HaiQLJ`5G zBhDi#D(m`Q1pLh@Tq+L;OwuC52RdW7b8}~60WCOK5iYMUad9}7aWBuILb({5=z~YF zt?*Jr5NG+WadM{mDL>GyiByCuR)hd zA=HM?J6l1Xv0Dl+LW@w$OTcEoOda^nFCw*Sy^I@$sSuneMl{4ys)|RY#9&NxW4S)9 zq|%83IpslTLoz~&vTo!Ga@?rj_kw{|k{nv+w&Ku?fyk4Ki4I?);M|5Axm)t+BaE)D zm(`AQ#k^DWrjbuXoJf2{Aj^KT zFb1zMSqxq|vceV+Mf-)$oPflsO$@*A0n0Z!R{&(xh8s}=;t(lIy zv$S8x>m;vQNHuRzoaOo?eiWFe{0;$s`Bc+Osz~}Van${u;g(su`3lJ^TEfo~nERfP z)?aFzpDgnLYiERsKPu|0tq4l2wT)Atr6Qb%m-AUn6HnCue*yWICp7TjW$@sO zm5rm4aTcPQ(rfi7a`xP7cKCFrJD}*&_~xgLyr^-bmsL}y;A5P|al8J3WUoBSjqu%v zxC;mK!g(7r6RRJ852Z~feoC&sD3(6}^5-uLK8o)9{8L_%%rItZK9C){UxB|;G>JbP zsRRtS4-3B*5c+K2kvmgZK8472%l>3cntWUOVHxB|{Ay~aOg5RN;{PJgeVD*H%ac+y!h#wi%o2bF2Ca8IyMyH{>4#{E_8u^@+l-+n=V}Sq?$O z{091@v%Bd*3pk0^2UtiF9Z+(a@wy6 zUdw8J*ze$K#=$48IBi1U%;hmhO>lu!uU;+RS}p&6@rQila7WftH->*A4=5W|Fmtze z)7E}jh@cbmr9iup^i%*(uF%LG&!+Fyl@LFA-}Ca#bxRfDJAiR2dt6644TaYw1Ma79 zt8&DYj31j^5WPNf5P&{)J?WlCe@<3u^78wnd(Ja4^a>{^Tw}W>|Cjt^If|7l^l)^Q zbz|7~CF(k_9~n|h;ysZ+jHzkXf(*O*@5m zLzUmbHp=x!Q|!9NVXyipZ3)^GuIG$k;D)EK!a5=8MFLI_lpf`HPKl=-Ww%z8H_0$j ztJ||IfFG1lE9nmQ0+jPQy zCBdKkjArH@K7jVcMNz);Q(Q^R{d5G?-kk;Uu_IXSyWB)~KGIizZL(^&qF;|1PI7!E zTP`%l)gpX|OFn&)M%txpQ2F!hdA~hX1Cm5)IrdljqzRg!f{mN%G~H1&oqe`5eJCIF zHdD7O;AX-{XEV(a`gBFJ9ews#CVS2y!&>Cm_dm3C8*n3MA*e67(WC?uP@8TXuMroq z{#w$%z@CBIkRM7?}Xib+>hRjy?%G!fiw8! z8(gB+8J~KOU}yO7UGm&1g_MDJ$IXS!`+*b*QW2x)9>K~Y*E&bYMnjl6h!{17_8d!%&9D`a7r&LKZjC<&XOvTRaKJ1 zUY@hl5^R&kZl3lU3njk`3dPzxj$2foOL26r(9zsVF3n_F#v)s5vv3@dgs|lP#eylq62{<-vczqP!RpVBTgI>@O6&sU>W|do17+#OzQ7o5A$ICH z?GqwqnK^n2%LR;$^oZM;)+>$X3s2n}2jZ7CdWIW0lnGK-b#EG01)P@aU`pg}th&J-TrU`tIpb5t((0eu|!u zQz+3ZiOQ^?RxxK4;zs=l8q!-n7X{@jSwK(iqNFiRColuEOg}!7cyZi`iBX4g1pNBj zAPzL?P^Ljhn;1$r8?bc=#n|Ed7wB&oHcw()&*k#SS#h}jO?ZB246EGItsz*;^&tzp zu^YJ0=lwsi`eP_pU8}6JA7MS;9pfD;DsSsLo~ogzMNP70@@;Fm8f0^;>$Z>~}GWRw!W5J3tNX*^2+1f3hz{~rIzJo z6W%J(H!g-eI_J1>0juX$X4Cl6i+3wbc~k146UIX&G22}WE>0ga#WLsn9tY(&29zBvH1$`iWtTe zG2jYl@P!P)eb<5DsR72BdI7-zP&cZNI{7q3e@?N8IKc4DE#UVr->|-ryuJXk^u^>4 z$3wE~=q390;XuOQP~TNoDR?#|NSPJ%sTMInA6*rJ%go|=YjGe!B>z6u$IhgQSwoV* zjy3F2#I>uK{42{&IqP59)Y(1*Z>>#W8rCf4_eVsH)`v!P#^;BgzKDR`ARGEZzkNX+ zJUQu=*-ol=Xqqt5=`=pA@BIn@6a9G8C{c&`i^(i+BxQO9?YZ3iu%$$da&Kb?2kCCo zo7t$UpSFWqmydXf@l3bVJ=%K?SSw)|?srhJ-1ZdFu*5QhL$~-IQS!K1s@XzAtv6*Y zl8@(5BlWYLt1yAWy?rMD&bwze8bC3-GfNH=p zynNFCdxyX?K&G(ZZ)afguQ2|r;XoV^=^(;Cku#qYn4Lus`UeKt6rAlFo_rU`|Rq z&G?~iWMBio<78of-2X(ZYHx~=U0Vz4btyXkctMKdc9UM!vYr~B-(>)(Hc|D zMzkN4!PBg%tZoh+=Gba!0++d193gbMk2&krfDgcbx0jI92cq?FFESVg0D$>F+bil} zY~$)|>1HZsX=5sAZ2WgPB5P=8X#TI+NQ(M~GqyVB53c6IdX=k>Wu@A0Svf5#?uHaF zsYn|koIi3$(%GZ2+G+7Fv^lHTb#5b8sAHSTnL^qWZLM<(1|9|QFw9pnRU{svj}_Al zL)b9>fN{QiA($8peNEJyy`(a{&uh-T4_kdZFIVsKKVM(?05}76EEz?#W za^fiZOAd14IJ4zLX-n7Lq0qlQ^lW8Cvz4UKkV9~P}>sq0?xD3vg+$4vLm~C(+ zM{-3Z#qnZ09bJ>}j?6ry^h+@PfaD7*jZxBEY4)UG&daWb??6)TP+|3#Z&?GL?1i+280CFsE|vIXQbm| zM}Pk!U`U5NsNbyKzkrul-DzwB{X?n3E6?TUHr{M&+R*2%yOiXdW-_2Yd6?38M9Vy^ z*lE%gA{wwoSR~vN0=no}tP2Ul5Gk5M(Xq`$nw#ndFk`tcpd5A=Idue`XZ!FS>Q zG^0w#>P4pPG+*NC9gLP4x2m=cKP}YuS!l^?sHSFftZy{4CoQrb_ z^20(NnG`wAhMI=eq)SsIE~&Gp9Ne0nD4%Xiu|0Fj1UFk?6avDqjdXz{O1nKao*46y zT8~iA%Exu=G#{x=KD;_C&M+Zx4+n`sHT>^>=-1YM;H<72k>$py1?F3#T1*ef9mLZw z5naLQr?n7K;2l+{_uIw*_1nsTn~I|kkCgrn;|G~##hM;9l7Jy$yJfmk+&}W@JeKcF zx@@Woiz8qdi|D%aH3XTx5*wDlbs?dC1_nrFpm^QbG@wM=i2?Zg;$VK!c^Dp8<}BTI zyRhAq@#%2pGV49*Y5_mV4+OICP|%I(dQ7x=6Ob}>EjnB_-_18*xrY?b%-yEDT(wrO z9RY2QT0`_OpGfMObKHV;QLVnrK%mc?$WAdIT`kJQT^n%GuzE7|9@k3ci5fYOh(287 zuIbg!GB3xLg$YN=n)^pHGB0jH+_iIiC=nUcD;G6LuJsjn2VI1cyZx=a?ShCsF==QK z;q~*m&}L<-cb+mDDXzvvrRsybcgQ;Vg21P(uLv5I+eGc7o7tc6`;OA9{soHFOz zT~2?>Ts}gprIX$wRBb4yE>ot<8+*Bv`qbSDv*VtRi|cyWS>)Fjs>fkNOH-+PX&4(~ z&)T8Zam2L6puQl?;5zg9h<}k4#|yH9czHw;1jw-pwBM*O2hUR6yvHATrI%^mvs9q_ z&ccT0>f#eDG<^WG^q@oVqlJrhxH)dcq2cty@l3~|5#UDdExyXUmLQ}f4#;6fI{f^t zDCsgIJ~0`af%YR%Ma5VQq-p21k`vaBu6WE?66+5=XUd%Ay%D$irN>5LhluRWt7 zov-=f>QbMk*G##&DTQyou$s7UqjjW@k6=!I@!k+S{pP8R(2=e@io;N8E`EOB;OGoI zw6Q+{X1_I{OO0HPpBz!X!@`5YQ2)t{+!?M_iH25X(d~-Zx~cXnS9z>u?+If|iNJbx zyFU2d1!ITX64D|lE0Z{dLRqL1Ajj=CCMfC4lD3&mYR_R_VZ>_7_~|<^o*%_&jevU+ zQ4|qzci=0}Jydw|LXLCrOl1_P6Xf@c0$ieK2^7@A9UbF{@V_0p%lqW|L?5k>bVM8|p5v&2g;~r>B8uo<4N+`B zH{J)h;SYiIVx@#jI&p-v3dwL5QNV1oxPr8J%ooezTnLW>i*3Isb49%5i!&ac_dEXv zvXmVUck^QHmyrF8>CGXijC_R-y(Qr{3Zt~EmW)-nC!tiH`wlw5D*W7Pip;T?&j%kX z6DkZX4&}iw>hE(boLyjOoupf6JpvBG8}jIh!!VhnD0>}KSMMo{1#uU6kiFcA04~|7 zVO8eI&x1`g4CZ<2cYUI(n#wz2MtVFHx47yE5eL~8bot~>EHbevSt}LLMQX?odD{Ux zJMnam{d)W4da{l7&y-JrgiU~qY3$~}_F#G7|MxT)e;G{U`In&?`j<5D->}cb{}{T(4DF0BOk-=1195KB-E*o@c?`>y#4=dMtYtSY=&L{!TAjFVcq0y@AH`vH! z$41+u!Ld&}F^COPgL(EE{0X7LY&%D7-(?!kjFF7=qw<;`V{nwWBq<)1QiGJgUc^Vz ztMUlq1bZqKn17|6x6iAHbWc~l1HcmAxr%$Puv!znW)!JiukwIrqQ00|H$Z)OmGG@= zv%A8*4cq}(?qn4rN6o`$Y))(MyXr8R<2S^J+v(wmFmtac!%VOfN?&(8Nr!T@kV`N; z*Q33V3t`^rN&aBiHet)18wy{*wi1=W!B%B-Q6}SCrUl$~Hl{@!95ydml@FK8P=u4s z4e*7gV2s=YxEvskw2Ju!2%{8h01rx-3`NCPc(O zH&J0VH5etNB2KY6k4R@2Wvl^Ck$MoR3=)|SEclT2ccJ!RI9Nuter7u9@;sWf-%um;GfI!=eEIQ2l2p_YWUd{|6EG ze{yO6;lMc>;2tPrsNdi@&1K6(1;|$xe8vLgiouj%QD%gYk`4p{Ktv9|j+!OF-P?@p z;}SV|oIK)iwlBs+`ROXkhd&NK zzo__r!B>tOXpBJMDcv!Mq54P+n4(@dijL^EpO1wdg~q+!DT3lB<>9AANSe!T1XgC=J^)IP0XEZ()_vpu!!3HQyJhwh?r`Ae%Yr~b% zO*NY9t9#qWa@GCPYOF9aron7thfWT`eujS4`t2uG6)~JRTI;f(ZuoRQwjZjp5Pg34 z)rp$)Kr?R+KdJ;IO;pM{$6|2y=k_siqvp%)2||cHTe|b5Ht8&A{wazGNca zX$Ol?H)E_R@SDi~4{d-|8nGFhZPW;Cts1;08TwUvLLv&_2$O6Vt=M)X;g%HUr$&06 zISZb(6)Q3%?;3r~*3~USIg=HcJhFtHhIV(siOwV&QkQe#J%H9&E21!C*d@ln3E@J* zVqRO^<)V^ky-R|%{(9`l-(JXq9J)1r$`uQ8a}$vr9E^nNiI*thK8=&UZ0dsFN_eSl z(q~lnD?EymWLsNa3|1{CRPW60>DSkY9YQ;$4o3W7Ms&@&lv9eH!tk~N&dhqX&>K@} zi1g~GqglxkZ5pEFkllJ)Ta1I^c&Bt6#r(QLQ02yHTaJB~- zCcE=5tmi`UA>@P=1LBfBiqk)HB4t8D?02;9eXj~kVPwv?m{5&!&TFYhu>3=_ zsGmYZ^mo*-j69-42y&Jj0cBLLEulNRZ9vXE)8~mt9C#;tZs;=#M=1*hebkS;7(aGf zcs7zH(I8Eui9UU4L--))yy`&d&$In&VA2?DAEss4LAPCLd>-$i?lpXvn!gu^JJ$(DoUlc6wE98VLZ*z`QGQov5l4Fm_h?V-;mHLYDVOwKz7>e4+%AzeO>P6v}ndPW| zM>m#6Tnp7K?0mbK=>gV}=@k*0Mr_PVAgGMu$j+pWxzq4MAa&jpCDU&-5eH27Iz>m^ zax1?*HhG%pJ((tkR(V(O(L%7v7L%!_X->IjS3H5kuXQT2!ow(;%FDE>16&3r){!ex zhf==oJ!}YU89C9@mfDq!P3S4yx$aGB?rbtVH?sHpg?J5C->!_FHM%Hl3#D4eplxzQ zRA+<@LD%LKSkTk2NyWCg7u=$%F#;SIL44~S_OGR}JqX}X+=bc@swpiClB`Zbz|f!4 z7Ysah7OkR8liXfI`}IIwtEoL}(URrGe;IM8%{>b1SsqXh)~w}P>yiFRaE>}rEnNkT z!HXZUtxUp1NmFm)Dm@-{FI^aRQqpSkz}ZSyKR%Y}YHNzBk)ZIp} zMtS=aMvkgWKm9&oTcU0?S|L~CDqA+sHpOxwnswF-fEG)cXCzUR?ps@tZa$=O)=L+5 zf%m58cq8g_o}3?Bhh+c!w4(7AjxwQ3>WnVi<{{38g7yFboo>q|+7qs<$8CPXUFAN< zG&}BHbbyQ5n|qqSr?U~GY{@GJ{(Jny{bMaOG{|IkUj7tj^9pa9|FB_<+KHLxSxR;@ zHpS$4V)PP+tx}22fWx(Ku9y+}Ap;VZqD0AZW4gCDTPCG=zgJmF{|x;(rvdM|2|9a}cex6xrMkERnkE;}jvU-kmzd%_J50$M`lIPCKf+^*zL=@LW`1SaEc%=m zQ+lT06Gw+wVwvQ9fZ~#qd430v2HndFsBa9WjD0P}K(rZYdAt^5WQIvb%D^Q|pkVE^ zte$&#~zmULFACGfS#g=2OLOnIf2Of-k!(BIHjs77nr!5Q1*I9 z1%?=~#Oss!rV~?-6Gm~BWJiA4mJ5TY&iPm_$)H1_rTltuU1F3I(qTQ^U$S>%$l z)Wx1}R?ij0idp@8w-p!Oz{&*W;v*IA;JFHA9%nUvVDy7Q8woheC#|8QuDZb-L_5@R zOqHwrh|mVL9b=+$nJxM`3eE{O$sCt$UK^2@L$R(r^-_+z?lOo+me-VW=Zw z-Bn>$4ovfWd%SPY`ab-u9{INc*k2h+yH%toDHIyqQ zO68=u`N}RIIs7lsn1D){)~%>ByF<>i@qFb<-axvu(Z+6t7v<^z&gm9McRB~BIaDn$ z#xSGT!rzgad8o>~kyj#h1?7g96tOcCJniQ+*#=b7wPio>|6a1Z?_(TS{)KrPe}(8j z!#&A=k(&Pj^F;r)CI=Z{LVu>uj!_W1q4b`N1}E(i%;BWjbEcnD=mv$FL$l?zS6bW!{$7j1GR5ocn94P2u{ z70tAAcpqtQo<@cXw~@i-@6B23;317|l~S>CB?hR5qJ%J3EFgyBdJd^fHZu7AzHF(BQ!tyAz^L0`X z23S4Fe{2X$W0$zu9gm%rg~A>ijaE#GlYlrF9$ds^QtaszE#4M(OLVP2O-;XdT(XIC zatwzF*)1c+t~c{L=fMG8Z=k5lv>U0;C{caN1NItnuSMp)6G3mbahu>E#sj&oy94KC zpH}8oEw{G@N3pvHhp{^-YaZeH;K+T_1AUv;IKD<=mv^&Ueegrb!yf`4VlRl$M?wsl zZyFol(2|_QM`e_2lYSABpKR{{NlxlDSYQNkS;J66aT#MSiTx~;tUmvs-b*CrR4w=f z8+0;*th6kfZ3|5!Icx3RV11sp=?`0Jy3Fs0N4GZQMN=8HmT6%x9@{Dza)k}UwL6JT zHRDh;%!XwXr6yuuy`4;Xsn0zlR$k%r%9abS1;_v?`HX_hI|+EibVnlyE@3aL5vhQq zlIG?tN^w@0(v9M*&L+{_+RQZw=o|&BRPGB>e5=ys7H`nc8nx)|-g;s7mRc7hg{GJC zAe^vCIJhajmm7C6g! zL&!WAQ~5d_5)00?w_*|*H>3$loHrvFbitw#WvLB!JASO?#5Ig5$Ys10n>e4|3d;tS zELJ0|R4n3Az(Fl3-r^QiV_C;)lQ1_CW{5bKS15U|E9?ZgLec@%kXr84>5jV2a5v=w z?pB1GPdxD$IQL4)G||B_lI+A=08MUFFR4MxfGOu07vfIm+j=z9tp~5i_6jb`tR>qV z$#`=BQ*jpCjm$F0+F)L%xRlnS%#&gro6PiRfu^l!EVan|r3y}AHJQOORGx4~ z&<)3=K-tx518DZyp%|!EqpU!+X3Et7n2AaC5(AtrkW>_57i}$eqs$rupubg0a1+WO zGHZKLN2L0D;ab%{_S1Plm|hx8R?O14*w*f&2&bB050n!R2by zw!@XOQx$SqZ5I<(Qu$V6g>o#A!JVwErWv#(Pjx=KeS0@hxr4?13zj#oWwPS(7Ro|v z>Mp@Kmxo79q|}!5qtX2-O@U&&@6s~!I&)1WQIl?lTnh6UdKT_1R640S4~f=_xoN3- zI+O)$R@RjV$F=>Ti7BlnG1-cFKCC(t|Qjm{SalS~V-tX#+2ekRhwmN zZr`8{QF6y~Z!D|{=1*2D-JUa<(1Z=;!Ei!KiRNH?o{p5o3crFF=_pX9O-YyJchr$~ zRC`+G+8kx~fD2k*ZIiiIGR<8r&M@3H?%JVOfE>)})7ScOd&?OjgAGT@WVNSCZ8N(p zuQG~76GE3%(%h1*vUXg$vH{ua0b`sQ4f0*y=u~lgyb^!#CcPJa2mkSEHGLsnO^kb$ zru5_l#nu=Y{rSMWiYx?nO{8I!gH+?wEj~UM?IrG}E|bRIBUM>UlY<`T1EHpRr36vv zBi&dG8oxS|J$!zoaq{+JpJy+O^W(nt*|#g32bd&K^w-t>!Vu9N!k9eA8r!Xc{utY> zg9aZ(D2E0gL#W0MdjwES-7~Wa8iubPrd?8-$C4BP?*wok&O8+ykOx{P=Izx+G~hM8 z*9?BYz!T8~dzcZr#ux8kS7u7r@A#DogBH8km8Ry4slyie^n|GrTbO|cLhpqgMdsjX zJ_LdmM#I&4LqqsOUIXK8gW;V0B(7^$y#h3h>J0k^WJfAMeYek%Y-Dcb_+0zPJez!GM zAmJ1u;*rK=FNM0Nf}Y!!P9c4)HIkMnq^b;JFd!S3?_Qi2G#LIQ)TF|iHl~WKK6JmK zbv7rPE6VkYr_%_BT}CK8h=?%pk@3cz(UrZ{@h40%XgThP*-Oeo`T0eq9 zA8BnWZKzCy5e&&_GEsU4*;_k}(8l_&al5K-V*BFM=O~;MgRkYsOs%9eOY6s6AtE*<7GQAR2ulC3RAJrG_P1iQK5Z~&B z&f8X<>yJV6)oDGIlS$Y*D^Rj(cszTy5c81a5IwBr`BtnC6_e`ArI8CaTX_%rx7;cn zR-0?J_LFg*?(#n~G8cXut(1nVF0Oka$A$1FGcERU<^ggx;p@CZc?3UB41RY+wLS`LWFNSs~YP zuw1@DNN3lTd|jDL7gjBsd9}wIw}4xT2+8dBQzI00m<@?c2L%>}QLfK5%r!a-iII`p zX@`VEUH)uj^$;7jVUYdADQ2k*!1O3WdfgF?OMtUXNpQ1}QINamBTKDuv19^{$`8A1 zeq%q*O0mi@(%sZU>Xdb0Ru96CFqk9-L3pzLVsMQ`Xpa~N6CR{9Rm2)A|CI21L(%GW zh&)Y$BNHa=FD+=mBw3{qTgw)j0b!Eahs!rZnpu)z!!E$*eXE~##yaXz`KE5(nQM`s zD!$vW9XH)iMxu9R>r$VlLk9oIR%HxpUiW=BK@4U)|1WNQ=mz9a z^!KkO=>GaJ!GBXm{KJj^;kh-MkUlEQ%lza`-G&}C5y1>La1sR6hT=d*NeCnuK%_LV zOXt$}iP6(YJKc9j-Fxq~*ItVUqljQ8?oaysB-EYtFQp9oxZ|5m0^Hq(qV!S+hq#g( z?|i*H2MIr^Kxgz+3vIljQ*Feejy6S4v~jKEPTF~Qhq!(ms5>NGtRgO5vfPPc4Z^AM zTj!`5xEreIN)vaNxa|q6qWdg>+T`Ol0Uz)ckXBXEGvPNEL3R8hB3=C5`@=SYgAju1 z!)UBr{2~=~xa{b8>x2@C7weRAEuatC)3pkRhT#pMPTpSbA|tan%U7NGMvzmF?c!V8 z=pEWxbdXbTAGtWTyI?Fml%lEr-^AE}w#l(<7OIw;ctw}imYax&vR4UYNJZK6P7ZOd zP87XfhnUHxCUHhM@b*NbTi#(-8|wcv%3BGNs#zRCVV(W?1Qj6^PPQa<{yaBwZ`+<`w|;rqUY_C z&AeyKwwf*q#OW-F()lir=T^<^wjK65Lif$puuU5+tk$;e_EJ;Lu+pH>=-8=PDhkBg z8cWt%@$Sc#C6F$Vd+0507;{OOyT7Hs%nKS88q-W!$f~9*WGBpHGgNp}=C*7!RiZ5s zn1L_DbKF@B8kwhDiLKRB@lsXVVLK|ph=w%_`#owlf@s@V(pa`GY$8h%;-#h@TsO|Y8V=n@*!Rog7<7Cid%apR|x zOjhHCyfbIt%+*PCveTEcuiDi%Wx;O;+K=W?OFUV%)%~6;gl?<0%)?snDDqIvkHF{ zyI02)+lI9ov42^hL>ZRrh*HhjF9B$A@=H94iaBESBF=eC_KT$8A@uB^6$~o?3Wm5t1OIaqF^~><2?4e3c&)@wKn9bD? zoeCs;H>b8DL^F&>Xw-xjZEUFFTv>JD^O#1E#)CMBaG4DX9bD(Wtc8Rzq}9soQ8`jf zeSnHOL}<+WVSKp4kkq&?SbETjq6yr@4%SAqOG=9E(3YeLG9dtV+8vmzq+6PFPk{L; z(&d++iu=^F%b+ea$i2UeTC{R*0Isk;vFK!no<;L+(`y`3&H-~VTdKROkdyowo1iqR zbVW(3`+(PQ2>TKY>N!jGmGo7oeoB8O|P_!Ic@ zZ^;3dnuXo;WJ?S+)%P>{Hcg!Jz#2SI(s&dY4QAy_vRlmOh)QHvs_7c&zkJCmJGVvV zX;Mtb>QE+xp`KyciG$Cn*0?AK%-a|=o!+7x&&yzHQOS>8=B*R=niSnta^Pxp1`=md z#;$pS$4WCT?mbiCYU?FcHGZ#)kHVJTTBt^%XE(Q};aaO=Zik0UgLcc0I(tUpt(>|& zcxB_|fxCF7>&~5eJ=Dpn&5Aj{A^cV^^}(7w#p;HG&Q)EaN~~EqrE1qKrMAc&WXIE;>@<&)5;gD2?={Xf@Mvn@OJKw=8Mgn z!JUFMwD+s==JpjhroT&d{$kQAy%+d`a*XxDEVxy3`NHzmITrE`o!;5ClXNPb4t*8P zzAivdr{j_v!=9!^?T3y?gzmqDWX6mkzhIzJ-3S{T5bcCFMr&RPDryMcdwbBuZbsgN zGrp@^i?rcfN7v0NKGzDPGE#4yszxu=I_`MI%Z|10nFjU-UjQXXA?k8Pk|OE<(?ae) zE%vG#eZAlj*E7_3dx#Zz4kMLj>H^;}33UAankJiDy5ZvEhrjr`!9eMD8COp}U*hP+ zF}KIYx@pkccIgyxFm#LNw~G&`;o&5)2`5aogs`1~7cMZQ7zj!%L4E`2yzlQN6REX20&O<9 zKV6fyr)TScJPPzNTC2gL+0x#=u>(({{D7j)c-%tvqls3#Y?Z1m zV5WUE)zdJ{$p>yX;^P!UcXP?UD~YM;IRa#Rs5~l+*$&nO(;Ers`G=0D!twR(0GF@c zHl9E5DQI}Oz74n zfKP>&$q0($T4y$6w(p=ERAFh+>n%iaeRA%!T%<^+pg?M)@ucY<&59$x9M#n+V&>}=nO9wCV{O~lg&v#+jcUj(tQ z`0u1YH)-`U$15a{pBkGyPL0THv1P|4e@pf@3IBZS4dVJPo#H>pWq%Lr0YS-SeWash z8R7=jb28KPMI|_lo#GEO|5B?N_e``H*23{~a!AmUJ+fb4HX-%QI@lSEUxKlGV7z7Q zSKw@-TR>@1RL%w{x}dW#k1NgW+q4yt2Xf1J62Bx*O^WG8OJ|FqI4&@d3_o8Id@*)4 zYrk=>@!wv~mh7YWv*bZhxqSmFh2Xq)o=m;%n$I?GSz49l1$xRpPu_^N(vZ>*>Z<04 z2+rP70oM=NDysd!@fQdM2OcyT?3T^Eb@lIC-UG=Bw{BjQ&P`KCv$AcJ;?`vdZ4){d z&gkoUK{$!$$K`3*O-jyM1~p-7T*qb)Ys>Myt^;#1&a%O@x8A+E>! zY8=eD`ZG)LVagDLBeHg>=atOG?Kr%h4B%E6m@J^C+U|y)XX@f z8oyJDW|9g=<#f<{JRr{y#~euMnv)`7j=%cHWLc}ngjq~7k**6%4u>Px&W%4D94(r* z+akunK}O0DC2A%Xo9jyF;DobX?!1I(7%}@7F>i%&nk*LMO)bMGg2N+1iqtg+r(70q zF5{Msgsm5GS7DT`kBsjMvOrkx&|EU!{{~gL4d2MWrAT=KBQ-^zQCUq{5PD1orxlIL zq;CvlWx#f1NWvh`hg011I%?T_s!e38l*lWVt|~z-PO4~~1g)SrJ|>*tXh=QfXT)%( z+ex+inPvD&O4Ur;JGz>$sUOnWdpSLcm1X%aQDw4{dB!cnj`^muI$CJ2%p&-kULVCE z>$eMR36kN$wCPR+OFDM3-U(VOrp9k3)lI&YVFqd;Kpz~K)@Fa&FRw}L(SoD z9B4a+hQzZT-BnVltst&=kq6Y(f^S4hIGNKYBgMxGJ^;2yrO}P3;r)(-I-CZ)26Y6? z&rzHI_1GCvGkgy-t1E;r^3Le30|%$ebDRu2+gdLG)r=A~Qz`}~&L@aGJ{}vVs_GE* zVUjFnzHiXfKQbpv&bR&}l2bzIjAooB)=-XNcYmrGmBh(&iu@o!^hn0^#}m2yZZUK8 zufVm7Gq0y`Mj;9b>`c?&PZkU0j4>IL=UL&-Lp3j&47B5pAW4JceG{!XCA)kT<%2nqCxj<)uy6XR_uws~>_MEKPOpAQ!H zkn>FKh)<9DwwS*|Y(q?$^N!6(51O0 z^JM~Ax{AI1Oj$fs-S5d4T7Z_i1?{%0SsIuQ&r8#(JA=2iLcTN+?>wOL532%&dMYkT z*T5xepC+V6zxhS@vNbMoi|i)=rpli@R9~P!39tWbSSb904ekv7D#quKbgFEMTb48P zuq(VJ+&L8aWU(_FCD$3^uD!YM%O^K(dvy~Wm2hUuh6bD|#(I39Xt>N1Y{ZqXL`Fg6 zKQ?T2htHN!(Bx;tV2bfTtIj7e)liN-29s1kew>v(D^@)#v;}C4-G=7x#;-dM4yRWm zyY`cS21ulzMK{PoaQ6xChEZ}o_#}X-o}<&0)$1#3we?+QeLt;aVCjeA)hn!}UaKt< zat1fHEx13y-rXNMvpUUmCVzocPmN~-Y4(YJvQ#db)4|%B!rBsgAe+*yor~}FrNH08 z3V!97S}D7d$zbSD{$z;@IYMxM6aHdypIuS*pr_U6;#Y!_?0i|&yU*@16l z*dcMqDQgfNBf}?quiu4e>H)yTVfsp#f+Du0@=Kc41QockXkCkvu>FBd6Q+@FL!(Yx z2`YuX#eMEiLEDhp+9uFqME_E^faV&~9qjBHJkIp~%$x^bN=N)K@kvSVEMdDuzA0sn z88CBG?`RX1@#hQNd`o^V{37)!w|nA)QfiYBE^m=yQKv-fQF+UCMcuEe1d4BH7$?>b zJl-r9@0^Ie=)guO1vOd=i$_4sz>y3x^R7n4ED!5oXL3@5**h(xr%Hv)_gILarO46q+MaDOF%ChaymKoI6JU5Pg;7#2n9-18|S1;AK+ zgsn6;k6-%!QD>D?cFy}8F;r@z8H9xN1jsOBw2vQONVqBVEbkiNUqgw~*!^##ht>w0 zUOykwH=$LwX2j&nLy=@{hr)2O&-wm-NyjW7n~Zs9UlH;P7iP3 zI}S(r0YFVYacnKH(+{*)Tbw)@;6>%=&Th=+Z6NHo_tR|JCI8TJiXv2N7ei7M^Q+RM z?9o`meH$5Yi;@9XaNR#jIK^&{N|DYNNbtdb)XW1Lv2k{E>;?F`#Pq|&_;gm~&~Zc9 zf+6ZE%{x4|{YdtE?a^gKyzr}dA>OxQv+pq|@IXL%WS0CiX!V zm$fCePA%lU{%pTKD7|5NJHeXg=I0jL@$tOF@K*MI$)f?om)D63K*M|r`gb9edD1~Y zc|w7N)Y%do7=0{RC|AziW7#am$)9jciRJ?IWl9PE{G3U+$%FcyKs_0Cgq`=K3@ttV z9g;M!3z~f_?P%y3-ph%vBMeS@p7P&Ea8M@97+%XEj*(1E6vHj==d zjsoviB>j^$_^OI_DEPvFkVo(BGRo%cJeD){6Uckei=~1}>sp299|IRjhXe)%?uP0I zF5+>?0#Ye}T^Y$u_rc4=lPcq4K^D(TZG-w30-YiEM=dcK+4#o*>lJ8&JLi+3UcpZk z!^?95S^C0ja^jwP`|{<+3cBVog$(mRdQmadS+Vh~z zS@|P}=|z3P6uS+&@QsMp0no9Od&27O&14zHXGAOEy zh~OKpymK5C%;LLb467@KgIiVwYbYd6wFxI{0-~MOGfTq$nBTB!{SrWmL9Hs}C&l&l#m?s*{tA?BHS4mVKHAVMqm63H<|c5n0~k)-kbg zXidai&9ZUy0~WFYYKT;oe~rytRk?)r8bptITsWj(@HLI;@=v5|XUnSls7$uaxFRL+ zRVMGuL3w}NbV1`^=Pw*0?>bm8+xfeY(1PikW*PB>>Tq(FR`91N0c2&>lL2sZo5=VD zQY{>7dh_TX98L2)n{2OV=T10~*YzX27i2Q7W86M4$?gZIXZaBq#sA*{PH8){|GUi;oM>e?ua7eF4WFuFYZSG| zze?srg|5Ti8Og{O zeFxuw9!U+zhyk?@w zjsA6(oKD=Ka;A>Ca)oPORxK+kxH#O@zhC!!XS4@=swnuMk>t+JmLmFiE^1aX3f<)D@`%K0FGK^gg1a1j>zi z2KhV>sjU7AX3F$SEqrXSC}fRx64GDoc%!u2Yag68Lw@w9v;xOONf@o)Lc|Uh3<21ctTYu-mFZuHk*+R{GjXHIGq3p)tFtQp%TYqD=j1&y)>@zxoxUJ!G@ zgI0XKmP6MNzw>nRxK$-Gbzs}dyfFzt>#5;f6oR27ql!%+{tr+(`(>%51|k`ML} zY4eE)Lxq|JMas(;JibNQds1bUB&r}ydMQXBY4x(^&fY_&LlQC)3hylc$~8&~|06-D z#T+%66rYbHX%^KuqJED_wuGB+=h`nWA!>1n0)3wZrBG3%`b^Ozv6__dNa@%V14|!D zQ?o$z5u0^8`giv%qE!BzZ!3j;BlDlJDk)h@9{nSQeEk!z9RGW) z${RSF3phEM*ce*>Xdp}585vj$|40=&S{S-GTiE?Op*vY&Lvr9}BO$XWy80IF+6@%n z5*2ueT_g@ofP#u5pxb7n*fv^Xtt7&?SRc{*2Ka-*!BuOpf}neHGCiHy$@Ka1^Dint z;DkmIL$-e)rj4o2WQV%Gy;Xg(_Bh#qeOsTM2f@KEe~4kJ8kNLQ+;(!j^bgJMcNhvklP5Z6I+9Fq@c&D~8Fb-4rmDT!MB5QC{Dsb;BharP*O;SF4& zc$wj-7Oep7#$WZN!1nznc@Vb<_Dn%ga-O#J(l=OGB`dy=Sy&$(5-n3zzu%d7E#^8`T@}V+5B;PP8J14#4cCPw-SQTdGa2gWL0*zKM z#DfSXs_iWOMt)0*+Y>Lkd=LlyoHjublNLefhKBv@JoC>P7N1_#> zv=mLWe96%EY;!ZGSQDbZWb#;tzqAGgx~uk+-$+2_8U`!ypbwXl z^2E-FkM1?lY@yt8=J3%QK+xaZ6ok=-y%=KXCD^0r!5vUneW>95PzCkOPO*t}p$;-> ze5j-BLT_;)cZQzR2CEsm@rU7GZfFtdp*a|g4wDr%8?2QkIGasRfDWT-Dvy*U{?IHT z*}wGnzdlSptl#ZF^sf)KT|BJs&kLG91^A6ls{CzFprZ6-Y!V0Xysh%9p%iMd7HLsS zN+^Un$tDV)T@i!v?3o0Fsx2qI(AX_$dDkBzQ@fRM%n zRXk6hb9Py#JXUs+7)w@eo;g%QQ95Yq!K_d=z{0dGS+pToEI6=Bo8+{k$7&Z zo4>PH(`ce8E-Ps&uv`NQ;U$%t;w~|@E3WVOCi~R4oj5wP?%<*1C%}Jq%a^q~T7u>K zML5AKfQDv6>PuT`{SrKHRAF+^&edg6+5R_#H?Lz3iGoWo#PCEd0DS;)2U({{X#zU^ zw_xv{4x7|t!S)>44J;KfA|DC?;uQ($l+5Vp7oeqf7{GBF9356nx|&B~gs+@N^gSdd zvb*>&W)|u#F{Z_b`f#GVtQ`pYv3#||N{xj1NgB<#=Odt6{eB%#9RLt5v zIi|0u70`#ai}9fJjKv7dE!9ZrOIX!3{$z_K5FBd-Kp-&e4(J$LD-)NMTp^_pB`RT; zftVVlK2g@+1Ahv2$D){@Y#cL#dUj9*&%#6 zd2m9{1NYp>)6=oAvqdCn5#cx{AJ%S8skUgMglu2*IAtd+z1>B&`MuEAS(D(<6X#Lj z?f4CFx$)M&$=7*>9v1ER4b6!SIz-m0e{o0BfkySREchp?WdVPpQCh!q$t>?rL!&Jg zd#heM;&~A}VEm8Dvy&P|J*eAV&w!&Nx6HFV&B8jJFVTmgLaswn!cx$&%JbTsloz!3 zMEz1d`k==`Ueub_JAy_&`!ogbwx27^ZXgFNAbx=g_I~5nO^r)}&myw~+yY*cJl4$I znNJ32M&K=0(2Dj_>@39`3=FX!v3nZHno_@q^!y}%(yw0PqOo=);6Y@&ylVe>nMOZ~ zd>j#QQSBn3oaWd;qy$&5(5H$Ayi)0haAYO6TH>FR?rhqHmNOO+(})NB zLI@B@v0)eq!ug`>G<@htRlp3n!EpU|n+G+AvXFrWSUsLMBfL*ZB`CRsIVHNTR&b?K zxBgsN0BjfB>UVcJ|x%=-zb%OV7lmZc& zxiupadZVF7)6QuhoY;;FK2b*qL0J-Rn-8!X4ZY$-ZSUXV5DFd7`T41c(#lAeLMoeT z4%g655v@7AqT!i@)Edt5JMbN(=Q-6{=L4iG8RA%}w;&pKmtWvI4?G9pVRp|RTw`g0 zD5c12B&A2&P6Ng~8WM2eIW=wxd?r7A*N+&!Be7PX3s|7~z=APxm=A?5 zt>xB4WG|*Td@VX{Rs)PV0|yK`oI3^xn(4c_j&vgxk_Y3o(-`_5o`V zRTghg6%l@(qodXN;dB#+OKJEEvhfcnc#BeO2|E(5df-!fKDZ!%9!^BJ_4)9P+9Dq5 zK1=(v?KmIp34r?z{NEWnLB3Px{XYwy-akun4F7xTRr2^zeYW{gcK9)>aJDdU5;w5@ zak=<+-PLH-|04pelTb%ULpuuuJC7DgyT@D|p{!V!0v3KpDnRjANN12q6SUR3mb9<- z>2r~IApQGhstZ!3*?5V z8#)hJ0TdZg0M-BK#nGFP>$i=qk82DO z7h;Ft!D5E15OgW)&%lej*?^1~2=*Z5$2VX>V{x8SC+{i10BbtUk9@I#Vi&hX)q
    Q!LwySI{Bnv%Sm)yh{^sSVJ8&h_D-BJ_YZe5eCaAWU9b$O2c z$T|{vWVRtOL!xC0DTc(Qbe`ItNtt5hr<)VijD0{U;T#bUEp381_y`%ZIav?kuYG{iyYdEBPW=*xNSc;Rlt6~F4M`5G+VtOjc z*0qGzCb@gME5udTjJA-9O<&TWd~}ysBd(eVT1-H82-doyH9RST)|+Pb{o*;$j9Tjs zhU!IlsPsj8=(x3bAKJTopW3^6AKROHR^7wZ185wJGVhA~hEc|LP;k7NEz-@4p5o}F z`AD6naG3(n=NF9HTH81=F+Q|JOz$7wm9I<+#BSmB@o_cLt2GkW9|?7mM;r!JZp89l zbo!Hp8=n!XH1{GwaDU+k)pGp`C|cXkCU5%vcH)+v@0eK>%7gWxmuMu9YLlChA|_D@ zi#5zovN_!a-0?~pUV-Rj*1P)KwdU-LguR>YM&*Nen+ln8Q$?WFCJg%DY%K}2!!1FE zDv-A%Cbwo^p(lzac&_TZ-l#9kq`mhLcY3h9ZTUVCM(Ad&=EriQY5{jJv<5K&g|*Lk zgV%ILnf1%8V2B0E&;Sp4sYbYOvvMebLwYwzkRQ#F8GpTQq#uv=J`uaSJ34OWITeSGo6+-8Xw znCk*n{kdDEi)Hi&u^)~cs@iyCkFWB2SWZU|Uc%^43ZIZQ-vWNExCCtDWjqHs;;tWf$v{}0{p0Rvxkq``)*>+Akq%|Na zA`@~-Vfe|+(AIlqru+7Ceh4nsVmO9p9jc8}HX^W&ViBDXT+uXbT#R#idPn&L>+#b6 zflC-4C5-X;kUnR~L>PSLh*gvL68}RBsu#2l`s_9KjUWRhiqF`j)`y`2`YU(>3bdBj z?>iyjEhe-~$^I5!nn%B6Wh+I`FvLNvauve~eX<+Ipl&04 zT}};W&1a3%W?dJ2=N#0t?e+aK+%t}5q%jSLvp3jZ%?&F}nOOWr>+{GFIa%wO_2`et z=JzoRR~}iKuuR+azPI8;Gf9)z3kyA4EIOSl!sRR$DlW}0>&?GbgPojmjmnln;cTqCt=ADbE zZ8GAnoM+S1(5$i8^O4t`ue;vO4i}z0wz-QEIVe5_u03;}-!G1NyY8;h^}y;tzY}i5 zqQr#Ur3Fy8sSa$Q0ys+f`!`+>9WbvU_I`Sj;$4{S>O3?#inLHCrtLy~!s#WXV=oVP zeE93*Nc`PBi4q@%Ao$x4lw9vLHM!6mn3-b_cebF|n-2vt-zYVF_&sDE--J-P;2WHo z+@n2areE0o$LjvjlV2X7ZU@j+`{*8zq`JR3gKF#EW|#+{nMyo-a>nFFTg&vhyT=b} zDa8+v0(Dgx0yRL@ZXOYIlVSZ0|MFizy0VPW8;AfA5|pe!#j zX}Py^8fl5SyS4g1WSKKtnyP+_PoOwMMwu`(i@Z)diJp~U54*-miOchy7Z35eL>^M z4p<-aIxH4VUZgS783@H%M7P9hX>t{|RU7$n4T(brCG#h9e9p! z+o`i;EGGq3&pF;~5V~eBD}lC)>if$w%Vf}AFxGqO88|ApfHf&Bvu+xdG)@vuF}Yvk z)o;~k-%+0K0g+L`Wala!$=ZV|z$e%>f0%XoLib%)!R^RoS+{!#X?h-6uu zF&&KxORdZU&EwQFITIRLo(7TA3W}y6X{?Y%y2j0It!ekU#<)$qghZtpcS>L3uh`Uj z7GY;6f$9qKynP#oS3$$a{p^{D+0oJQ71`1?OAn_m8)UGZmj3l*ZI)`V-a>MKGGFG< z&^jg#Ok%(hhm>hSrZ5;Qga4u(?^i>GiW_j9%_7M>j(^|Om$#{k+^*ULnEgzW_1gCICtAD^WpC`A z{9&DXkG#01Xo)U$OC(L5Y$DQ|Q4C6CjUKk1UkPj$nXH##J{c8e#K|&{mA*;b$r0E4 zUNo0jthwA(c&N1l=PEe8Rw_8cEl|-eya9z&H3#n`B$t#+aJ03RFMzrV@gowbe8v(c zIFM60^0&lCFO10NU4w@|61xiZ4CVXeaKjd;d?sv52XM*lS8XiVjgWpRB;&U_C0g+`6B5V&w|O6B*_q zsATxL!M}+$He)1eOWECce#eS@2n^xhlB4<_Nn?yCVEQWDs(r`|@2GqLe<#(|&P0U? z$7V5IgpWf09uIf_RazRwC?qEqRaHyL?iiS05UiGesJy%^>-C{{ypTBI&B0-iUYhk> zIk<5xpsuV@g|z(AZD+C-;A!fTG=df1=<%nxy(a(IS+U{ME4ZbDEBtcD_3V=icT6*_ z)>|J?>&6%nvHhZERBtjK+s4xnut*@>GAmA5m*OTp$!^CHTr}vM4n(X1Q*;{e-Rd2BCF-u@1ZGm z!S8hJ6L=Gl4T_SDa7Xx|-{4mxveJg=ctf`BJ*fy!yF6Dz&?w(Q_6B}WQVtNI!BVBC zKfX<>7vd6C96}XAQmF-Jd?1Q4eTfRB3q7hCh0f!(JkdWT5<{iAE#dKy*Jxq&3a1@~ z8C||Dn2mFNyrUV|<-)C^_y7@8c2Fz+2jrae9deBDu;U}tJ{^xAdxCD248(k;dCJ%o z`y3sADe>U%suxwwv~8A1+R$VB=Q?%U?4joI$um;aH+eCrBqpn- z%79D_7rb;R-;-9RTrwi9dPlg8&@tfWhhZ(Vx&1PQ+6(huX`;M9x~LrW~~#3{j0Bh2kDU$}@!fFQej4VGkJv?M4rU^x!RU zEwhu$!CA_iDjFjrJa`aocySDX16?~;+wgav;}Zut6Mg%C4>}8FL?8)Kgwc(Qlj{@#2Pt0?G`$h7P#M+qoXtlV@d}%c&OzO+QYKK`kyXaK{U(O^2DyIXCZlNQjt0^8~8JzNGrIxhj}}M z&~QZlbx%t;MJ(Vux;2tgNKGlAqphLq%pd}JG9uoVHUo?|hN{pLQ6Em%r*+7t^<);X zm~6=qChlNAVXNN*Sow->*4;}T;l;D1I-5T{Bif@4_}=>l`tK;qqDdt5zvisCKhMAH z#r}`)7VW?LZqfdmXQ%zo5bJ00{Xb9^YKrk0Nf|oIW*K@(=`o2Vndz}ZDyk{!u}PVx zzd--+_WC*U{~DH3{?GI64IB+@On&@9X>EUAo&L+G{L^dozaI4C3G#2wr~hseW@K&g zKWs{uHu-9Je!3;4pE>eBltKUXb^*hG8I&413)$J&{D4N%7PcloU6bn%jPxJyQL?g* z9g+YFFEDiE`8rW^laCNzQmi7CTnPfwyg3VDHRAl>h=In6jeaVOP@!-CP60j3+#vpL zEYmh_oP0{-gTe7Or`L6x)6w?77QVi~jD8lWN@3RHcm80iV%M1A!+Y6iHM)05iC64tb$X2lV_%Txk@0l^hZqi^%Z?#- zE;LE0uFx)R08_S-#(wC=dS&}vj6P4>5ZWjhthP=*Hht&TdLtKDR;rXEX4*z0h74FA zMCINqrh3Vq;s%3MC1YL`{WjIAPkVL#3rj^9Pj9Ss7>7duy!9H0vYF%>1jh)EPqvlr6h%R%CxDsk| z!BACz7E%j?bm=pH6Eaw{+suniuY7C9Ut~1cWfOX9KW9=H><&kQlinPV3h9R>3nJvK z4L9(DRM=x;R&d#a@oFY7mB|m8h4692U5eYfcw|QKwqRsshN(q^v$4$)HgPpAJDJ`I zkqjq(8Cd!K!+wCd=d@w%~e$=gdUgD&wj$LQ1r>-E=O@c ze+Z$x{>6(JA-fNVr)X;*)40Eym1TtUZI1Pwwx1hUi+G1Jlk~vCYeXMNYtr)1?qwyg zsX_e*$h?380O00ou?0R@7-Fc59o$UvyVs4cUbujHUA>sH!}L54>`e` zHUx#Q+Hn&Og#YVOuo*niy*GU3rH;%f``nk#NN5-xrZ34NeH$l`4@t);4(+0|Z#I>Y z)~Kzs#exIAaf--65L0UHT_SvV8O2WYeD>Mq^Y6L!Xu8%vnpofG@w!}R7M28?i1*T&zp3X4^OMCY6(Dg<-! zXmcGQrRgHXGYre7GfTJ)rhl|rs%abKT_Nt24_Q``XH{88NVPW+`x4ZdrMuO0iZ0g` z%p}y};~T5gbb9SeL8BSc`SO#ixC$@QhXxZ=B}L`tP}&k?1oSPS=4%{UOHe0<_XWln zwbl5cn(j-qK`)vGHY5B5C|QZd5)W7c@{bNVXqJ!!n$^ufc?N9C-BF2QK1(kv++h!>$QbAjq)_b$$PcJdV+F7hz0Hu@ zqj+}m0qn{t^tD3DfBb~0B36|Q`bs*xs|$i^G4uNUEBl4g;op-;Wl~iThgga?+dL7s zUP(8lMO?g{GcYpDS{NM!UA8Hco?#}eNEioRBHy4`mq!Pd-9@-97|k$hpEX>xoX+dY zDr$wfm^P&}Wu{!%?)U_(%Mn79$(ywvu*kJ9r4u|MyYLI_67U7%6Gd_vb##Nerf@>& z8W11z$$~xEZt$dPG}+*IZky+os5Ju2eRi;1=rUEeIn>t-AzC_IGM-IXWK3^6QNU+2pe=MBn4I*R@A%-iLDCOHTE-O^wo$sL_h{dcPl=^muAQb`_BRm};=cy{qSkui;`WSsj9%c^+bIDQ z0`_?KX0<-=o!t{u(Ln)v>%VGL z0pC=GB7*AQ?N7N{ut*a%MH-tdtNmNC+Yf$|KS)BW(gQJ*z$d{+{j?(e&hgTy^2|AR9vx1Xre2fagGv0YXWqtNkg*v%40v?BJBt|f9wX5 z{QTlCM}b-0{mV?IG>TW_BdviUKhtosrBqdfq&Frdz>cF~yK{P@(w{Vr7z2qKFwLhc zQuogKO@~YwyS9%+d-zD7mJG~@?EFJLSn!a&mhE5$_4xBl&6QHMzL?CdzEnC~C3$X@ zvY!{_GR06ep5;<#cKCSJ%srxX=+pn?ywDwtJ2{TV;0DKBO2t++B(tIO4)Wh`rD13P z4fE$#%zkd=UzOB74gi=-*CuID&Z3zI^-`4U^S?dHxK8fP*;fE|a(KYMgMUo`THIS1f!*6dOI2 zFjC3O=-AL`6=9pp;`CYPTdVX z8(*?V&%QoipuH0>WKlL8A*zTKckD!paN@~hh zmXzm~qZhMGVdQGd=AG8&20HW0RGV8X{$9LldFZYm zE?}`Q3i?xJRz43S?VFMmqRyvWaS#(~Lempg9nTM$EFDP(Gzx#$r)W&lpFKqcAoJh-AxEw$-bjW>`_+gEi z2w`99#UbFZGiQjS8kj~@PGqpsPX`T{YOj`CaEqTFag;$jY z8_{Wzz>HXx&G*Dx<5skhpETxIdhKH?DtY@b9l8$l?UkM#J-Snmts7bd7xayKTFJ(u zyAT&@6cAYcs{PBfpqZa%sxhJ5nSZBPji?Zlf&}#L?t)vC4X5VLp%~fz2Sx<*oN<7` z?ge=k<=X7r<~F7Tvp9#HB{!mA!QWBOf%EiSJ6KIF8QZNjg&x~-%e*tflL(ji_S^sO ztmib1rp09uon}RcsFi#k)oLs@$?vs(i>5k3YN%$T(5Or(TZ5JW9mA6mIMD08=749$ z!d+l*iu{Il7^Yu}H;lgw=En1sJpCKPSqTCHy4(f&NPelr31^*l%KHq^QE>z>Ks_bH zjbD?({~8Din7IvZeJ>8Ey=e;I?thpzD=zE5UHeO|neioJwG;IyLk?xOz(yO&0DTU~ z^#)xcs|s>Flgmp;SmYJ4g(|HMu3v7#;c*Aa8iF#UZo7CvDq4>8#qLJ|YdZ!AsH%^_7N1IQjCro

    K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..22f100f75 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Aug 09 17:13:50 CDT 2023 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 000000000..4f906e0c8 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..107acd32c --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 000000000..b79d916cf --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,17 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "Bitwarden" +include(":app")