From 7e710f0651586fba7180a4329b3066c7c61853b6 Mon Sep 17 00:00:00 2001 From: Gerard Paligot Date: Tue, 5 Dec 2023 22:03:12 +0100 Subject: [PATCH] refactor: use koin as dependency injection. --- androidApp/build.gradle.kts | 7 +- .../gdglille/devfest/android/MainActivity.kt | 65 ------------------ .../devfest/android/MainApplication.kt | 8 +++ .../gdglille/devfest/android/di/AppModule.kt | 20 ++++++ .../devfest/android/di/BuildConfigModule.kt | 14 ++++ gradle/libs.versions.toml | 6 ++ iosApp/iosApp.xcodeproj/project.pbxproj | 6 +- .../UserInterfaceState.xcuserstate | Bin 536482 -> 549589 bytes .../components/partners/PartnerRowView.swift | 46 ------------- .../navigations/PartnerItemNavigation.swift | 2 - iosApp/iosApp/screens/partners/Partners.swift | 11 ++- settings.gradle.kts | 10 ++- shared/core-di/build.gradle.kts | 58 ++++++++++++++++ .../gdglille/devfest/AndroidPlatformModule.kt | 30 ++++++++ .../org/gdglille/devfest/DatabaseModule.kt | 23 +++++++ .../org/gdglille/devfest/NetworkModule.kt | 16 +++++ .../org/gdglille/devfest/PlatformModule.kt | 10 +++ .../org/gdglille/devfest/RepositoryModule.kt | 28 ++++++++ .../org/gdglille/devfest/iOSPlatformModule.kt | 22 ++++++ shared/core/build.gradle.kts | 2 + .../gdglille/devfest/QrCodeGeneratoriOS.kt | 28 ++++++++ theme-m3/event-list/event-list-di/.gitignore | 1 + .../event-list/event-list-di/build.gradle.kts | 16 +++++ .../theme/m3/events/di/EventListModule.kt | 11 +++ .../event-list-feature/build.gradle.kts | 2 + .../theme/m3/events/feature/EventListVM.kt | 10 +-- .../m3/events/feature/EventListViewModel.kt | 9 --- theme-m3/infos/infos-di/.gitignore | 1 + theme-m3/infos/infos-di/build.gradle.kts | 16 +++++ .../android/theme/m3/infos/di/InfosModule.kt | 19 +++++ theme-m3/infos/infos-feature/build.gradle.kts | 2 + .../android/theme/m3/infos/feature/CoCVM.kt | 8 +-- .../theme/m3/infos/feature/CoCViewModel.kt | 10 +-- .../android/theme/m3/infos/feature/EventVM.kt | 8 +-- .../theme/m3/infos/feature/InfoCompactVM.kt | 31 +++------ .../android/theme/m3/infos/feature/MenusVM.kt | 8 +-- .../theme/m3/infos/feature/QAndAListVM.kt | 8 +-- theme-m3/main/main-di/.gitignore | 1 + theme-m3/main/main-di/build.gradle.kts | 22 ++++++ .../android/theme/m3/main/di/MainModule.kt | 26 +++++++ theme-m3/main/{ => main}/build.gradle.kts | 2 + .../gdglille/devfest/android/theme/Main.kt | 25 ++----- .../devfest/android/theme/MainNavigation.kt | 31 +-------- .../android/theme/MainNavigationViewModel.kt | 0 .../devfest/android/theme/MainViewModel.kt | 0 .../devfest/android/theme/ResultKey.kt | 0 theme-m3/main/src/main/AndroidManifest.xml | 2 - theme-m3/networking/networking-di/.gitignore | 1 + .../networking/networking-di/build.gradle.kts | 16 +++++ .../m3/networking/di/NetworkingModule.kt | 17 +++++ .../networking-feature/build.gradle.kts | 2 + .../networking/feature/ContactsCompactVM.kt | 8 +-- .../networking/feature/ContactsViewModel.kt | 9 --- .../networking/feature/MyProfileCompactVM.kt | 8 +-- .../networking/feature/MyProfileViewModel.kt | 13 +--- .../networking/feature/NetworkingCompactVM.kt | 13 +--- .../networking/feature/NetworkingViewModel.kt | 12 ---- .../m3/networking/feature/ProfileInputVM.kt | 8 +-- .../feature/ProfileInputViewModel.kt | 11 +-- theme-m3/partners/partners-di/.gitignore | 1 + .../partners/partners-di/build.gradle.kts | 16 +++++ .../theme/m3/partners/di/PartnersModule.kt | 12 ++++ .../partners-feature/build.gradle.kts | 2 + .../feature/PartnerDetailOrientableVM.kt | 9 +-- .../feature/PartnerDetailViewModel.kt | 47 ++++--------- .../partners/feature/PartnersListCompactVM.kt | 8 +-- .../m3/partners/feature/PartnersViewModel.kt | 42 ++++------- theme-m3/schedules/schedules-di/.gitignore | 1 + .../schedules/schedules-di/build.gradle.kts | 16 +++++ .../theme/m3/schedules/di/SchedulesModule.kt | 18 +++++ .../schedules-feature/build.gradle.kts | 2 + .../m3/schedules/feature/AgendaFiltersVM.kt | 8 +-- .../feature/AgendaFiltersViewModel.kt | 14 +--- .../feature/ScheduleDetailOrientableVM.kt | 9 +-- .../feature/ScheduleDetailViewModel.kt | 14 +--- .../feature/ScheduleListCompactVM.kt | 10 +-- .../feature/ScheduleListViewModel.kt | 15 +--- theme-m3/speakers/speakers-di/.gitignore | 1 + .../speakers/speakers-di/build.gradle.kts | 16 +++++ .../theme/m3/speakers/di/SpeakersModule.kt | 12 ++++ .../speakers-feature/build.gradle.kts | 2 + .../feature/SpeakerDetailOrientableVM.kt | 11 +-- .../feature/SpeakerDetailViewModel.kt | 47 +++++-------- .../speakers/feature/SpeakersListCompactVM.kt | 8 +-- .../speakers/feature/SpeakersListViewModel.kt | 47 ++++++------- 85 files changed, 666 insertions(+), 521 deletions(-) create mode 100644 androidApp/src/main/java/org/gdglille/devfest/android/di/AppModule.kt create mode 100644 androidApp/src/main/java/org/gdglille/devfest/android/di/BuildConfigModule.kt delete mode 100644 iosApp/iosApp/components/partners/PartnerRowView.swift create mode 100644 shared/core-di/build.gradle.kts create mode 100644 shared/core-di/src/androidMain/kotlin/org/gdglille/devfest/AndroidPlatformModule.kt create mode 100644 shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/DatabaseModule.kt create mode 100644 shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/NetworkModule.kt create mode 100644 shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/PlatformModule.kt create mode 100644 shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/RepositoryModule.kt create mode 100644 shared/core-di/src/iosMain/kotlin/org/gdglille/devfest/iOSPlatformModule.kt create mode 100644 shared/core/src/iosMain/kotlin/org/gdglille/devfest/QrCodeGeneratoriOS.kt create mode 100644 theme-m3/event-list/event-list-di/.gitignore create mode 100644 theme-m3/event-list/event-list-di/build.gradle.kts create mode 100644 theme-m3/event-list/event-list-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/di/EventListModule.kt create mode 100644 theme-m3/infos/infos-di/.gitignore create mode 100644 theme-m3/infos/infos-di/build.gradle.kts create mode 100644 theme-m3/infos/infos-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/di/InfosModule.kt create mode 100644 theme-m3/main/main-di/.gitignore create mode 100644 theme-m3/main/main-di/build.gradle.kts create mode 100644 theme-m3/main/main-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/main/di/MainModule.kt rename theme-m3/main/{ => main}/build.gradle.kts (97%) rename theme-m3/main/{ => main}/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt (64%) rename theme-m3/main/{ => main}/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt (88%) rename theme-m3/main/{ => main}/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigationViewModel.kt (100%) rename theme-m3/main/{ => main}/src/main/kotlin/org/gdglille/devfest/android/theme/MainViewModel.kt (100%) rename theme-m3/main/{ => main}/src/main/kotlin/org/gdglille/devfest/android/theme/ResultKey.kt (100%) delete mode 100644 theme-m3/main/src/main/AndroidManifest.xml create mode 100644 theme-m3/networking/networking-di/.gitignore create mode 100644 theme-m3/networking/networking-di/build.gradle.kts create mode 100644 theme-m3/networking/networking-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/di/NetworkingModule.kt create mode 100644 theme-m3/partners/partners-di/.gitignore create mode 100644 theme-m3/partners/partners-di/build.gradle.kts create mode 100644 theme-m3/partners/partners-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/di/PartnersModule.kt create mode 100644 theme-m3/schedules/schedules-di/.gitignore create mode 100644 theme-m3/schedules/schedules-di/build.gradle.kts create mode 100644 theme-m3/schedules/schedules-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/di/SchedulesModule.kt create mode 100644 theme-m3/speakers/speakers-di/.gitignore create mode 100644 theme-m3/speakers/speakers-di/build.gradle.kts create mode 100644 theme-m3/speakers/speakers-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/di/SpeakersModule.kt diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts index e7507fdc7..7651192ae 100644 --- a/androidApp/build.gradle.kts +++ b/androidApp/build.gradle.kts @@ -73,8 +73,10 @@ android { } dependencies { - implementation(projects.themeM3.main) + implementation(projects.themeM3.main.main) + implementation(projects.themeM3.main.mainDi) implementation(projects.shared.core) + implementation(projects.shared.coreDi) implementation(libs.settings) implementation(libs.android.material) @@ -88,6 +90,9 @@ dependencies { implementation(libs.androidx.compose.navigation) implementation(libs.androidx.profile) + implementation(libs.koin.core) + implementation(libs.koin.android) + implementation(libs.coil.compose) implementation(libs.coil.svg) } diff --git a/androidApp/src/main/java/org/gdglille/devfest/android/MainActivity.kt b/androidApp/src/main/java/org/gdglille/devfest/android/MainActivity.kt index a546b7c66..79fa0c128 100644 --- a/androidApp/src/main/java/org/gdglille/devfest/android/MainActivity.kt +++ b/androidApp/src/main/java/org/gdglille/devfest/android/MainActivity.kt @@ -1,6 +1,5 @@ package org.gdglille.devfest.android -import android.app.AlarmManager import android.content.Context import android.content.Intent import android.net.Uri @@ -16,31 +15,12 @@ import androidx.core.app.ShareCompat import androidx.core.content.FileProvider import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController -import com.russhwolf.settings.AndroidSettings import com.russhwolf.settings.ExperimentalSettingsApi import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview -import org.gdglille.devfest.AlarmScheduler -import org.gdglille.devfest.AndroidContext -import org.gdglille.devfest.Platform -import org.gdglille.devfest.QrCodeGeneratorAndroid import org.gdglille.devfest.android.theme.Main import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.database.DatabaseWrapper -import org.gdglille.devfest.database.EventDao -import org.gdglille.devfest.database.FeaturesActivatedDao -import org.gdglille.devfest.database.PartnerDao -import org.gdglille.devfest.database.ScheduleDao -import org.gdglille.devfest.database.SpeakerDao -import org.gdglille.devfest.database.TalkDao -import org.gdglille.devfest.database.UserDao -import org.gdglille.devfest.network.ConferenceApi -import org.gdglille.devfest.repositories.AgendaRepository -import org.gdglille.devfest.repositories.EventRepository -import org.gdglille.devfest.repositories.SpeakerRepository -import org.gdglille.devfest.repositories.UserRepository import java.io.File -import java.util.Locale @Suppress("LongMethod") @FlowPreview @@ -57,46 +37,6 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() - val baseUrl = BuildConfig.BASE_URL - val db = DatabaseWrapper(context = this).createDb() - val platform = Platform(AndroidContext(this.applicationContext)) - val api = ConferenceApi.create( - platform = platform, - baseUrl = baseUrl, - acceptLanguage = Locale.getDefault().toLanguageTag(), - enableNetworkLogs = BuildConfig.DEBUG - ) - val settings = AndroidSettings( - getSharedPreferences(BuildConfig.APPLICATION_ID, MODE_PRIVATE) - ) - val eventRepository = EventRepository.Factory.create( - api = api, - eventDao = EventDao(db, settings) - ) - val agendaRepository = AgendaRepository.Factory.create( - api = api, - scheduleDao = ScheduleDao(db, settings, platform), - speakerDao = SpeakerDao(db, platform), - talkDao = TalkDao(db, platform), - eventDao = EventDao(db, settings), - partnerDao = PartnerDao(db = db, platform = platform), - featuresDao = FeaturesActivatedDao(db, settings), - qrCodeGenerator = QrCodeGeneratorAndroid() - ) - val userRepository = UserRepository.Factory.create( - userDao = UserDao(db, platform), - eventDao = EventDao(db, settings), - qrCodeGenerator = QrCodeGeneratorAndroid() - ) - val speakerRepository = SpeakerRepository.Factory.create( - speakerDao = SpeakerDao(db, platform), - eventDao = EventDao(db, settings) - ) - val scheduler = AlarmScheduler( - agendaRepository, - getSystemService(ALARM_SERVICE) as AlarmManager, - AlarmIntentFactoryImpl - ) val openfeedbackFirebaseConfig = (application as MainApplication).openFeedbackConfig setContent { val inDarkTheme = isSystemInDarkTheme() @@ -115,11 +55,6 @@ class MainActivity : ComponentActivity() { val reportSubject = stringResource(id = R.string.text_report_subject) val reportAppTarget = stringResource(id = R.string.text_report_app_target) Main( - eventRepository = eventRepository, - agendaRepository = agendaRepository, - userRepository = userRepository, - speakerRepository = speakerRepository, - alarmScheduler = scheduler, openfeedbackFirebaseConfig = openfeedbackFirebaseConfig, launchUrl = { launchUrl(it) }, onContactExportClicked = { export -> diff --git a/androidApp/src/main/java/org/gdglille/devfest/android/MainApplication.kt b/androidApp/src/main/java/org/gdglille/devfest/android/MainApplication.kt index 666982538..4b9a19e63 100644 --- a/androidApp/src/main/java/org/gdglille/devfest/android/MainApplication.kt +++ b/androidApp/src/main/java/org/gdglille/devfest/android/MainApplication.kt @@ -7,6 +7,9 @@ import coil.decode.SvgDecoder import coil.disk.DiskCache import coil.memory.MemoryCache import io.openfeedback.android.viewmodels.OpenFeedbackFirebaseConfig +import org.gdglille.devfest.android.di.appModule +import org.koin.android.ext.koin.androidContext +import org.koin.core.context.startKoin private const val MemoryCacheSize = 0.25 private const val DiskCacheSize = 0.10 @@ -23,6 +26,11 @@ class MainApplication : Application(), ImageLoaderFactory { apiKey = BuildConfig.FIREBASE_API_KEY, databaseUrl = "https://${BuildConfig.FIREBASE_PROJECT_ID}.firebaseio.com" ) + + startKoin { + androidContext(this@MainApplication) + modules(appModule) + } } override fun newImageLoader(): ImageLoader = ImageLoader.Builder(this) diff --git a/androidApp/src/main/java/org/gdglille/devfest/android/di/AppModule.kt b/androidApp/src/main/java/org/gdglille/devfest/android/di/AppModule.kt new file mode 100644 index 000000000..ae054c92b --- /dev/null +++ b/androidApp/src/main/java/org/gdglille/devfest/android/di/AppModule.kt @@ -0,0 +1,20 @@ +package org.gdglille.devfest.android.di + +import android.app.AlarmManager +import androidx.activity.ComponentActivity +import org.gdglille.devfest.AlarmScheduler +import org.gdglille.devfest.android.AlarmIntentFactoryImpl +import org.gdglille.devfest.android.theme.m3.main.di.mainModule +import org.koin.android.ext.koin.androidContext +import org.koin.dsl.module + +val appModule = module { + includes(buildConfigModule, mainModule) + single { + AlarmScheduler( + get(), + androidContext().getSystemService(ComponentActivity.ALARM_SERVICE) as AlarmManager, + AlarmIntentFactoryImpl + ) + } +} diff --git a/androidApp/src/main/java/org/gdglille/devfest/android/di/BuildConfigModule.kt b/androidApp/src/main/java/org/gdglille/devfest/android/di/BuildConfigModule.kt new file mode 100644 index 000000000..8d03fa5ac --- /dev/null +++ b/androidApp/src/main/java/org/gdglille/devfest/android/di/BuildConfigModule.kt @@ -0,0 +1,14 @@ +package org.gdglille.devfest.android.di + +import org.gdglille.devfest.ApplicationIdNamed +import org.gdglille.devfest.Conference4HallBaseUrlNamed +import org.gdglille.devfest.IsDebugNamed +import org.gdglille.devfest.android.BuildConfig +import org.koin.core.qualifier.named +import org.koin.dsl.module + +val buildConfigModule = module { + single(named(IsDebugNamed)) { BuildConfig.DEBUG } + single(named(ApplicationIdNamed)) { BuildConfig.APPLICATION_ID } + single(named(Conference4HallBaseUrlNamed)) { BuildConfig.BASE_URL } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d2b6595ef..b29beb27c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,6 +5,7 @@ kotlinxDatetime = "0.4.1" kotlinxCollection = "0.3.6" kmpNativeCoroutines = "0.13.3" ktor = "2.3.3" +koin = "3.5.3" accompanist = "0.30.1" androidGradlePlugin = "8.2.0" androidMaterial = "1.11.0" @@ -67,6 +68,11 @@ ktor-server-conditional = { group = "io.ktor", name = "ktor-server-conditional-h ktor-serialization-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" } +koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } +koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } +koin-androidx-compose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" } +koin-androidx-workmanager = { group = "io.insert-koin", name = "koin-androidx-workmanager", version.ref = "koin" } + android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } android-material = { group = "com.google.android.material", name = "material", version.ref = "androidMaterial" } diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index b14d4027c..cda3e7cbf 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -90,7 +90,6 @@ D5C92ED3283AD00800D5CF2D /* MenusVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C92ED2283AD00800D5CF2D /* MenusVM.swift */; }; D5C92ED5283ADDC900D5CF2D /* NoFavoriteTalksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C92ED4283ADDC900D5CF2D /* NoFavoriteTalksView.swift */; }; D5CAA6512821BCC7005BB242 /* RemoteImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CAA6502821BCC7005BB242 /* RemoteImage.swift */; }; - D5CAA6532821C306005BB242 /* PartnerRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CAA6522821C306005BB242 /* PartnerRowView.swift */; }; D5D5ABF5282071D2004E2F78 /* ShareSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D5ABF4282071D2004E2F78 /* ShareSheetView.swift */; }; D5D6166C27B15C7400C59EC9 /* AgendaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D6166B27B15C7400C59EC9 /* AgendaViewModel.swift */; }; D5F324A327C6E2DE007CA4C1 /* QrCodeGeneratoriOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F324A227C6E2DE007CA4C1 /* QrCodeGeneratoriOS.swift */; }; @@ -186,7 +185,6 @@ D5C92ED2283AD00800D5CF2D /* MenusVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenusVM.swift; sourceTree = ""; }; D5C92ED4283ADDC900D5CF2D /* NoFavoriteTalksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoFavoriteTalksView.swift; sourceTree = ""; }; D5CAA6502821BCC7005BB242 /* RemoteImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteImage.swift; sourceTree = ""; }; - D5CAA6522821C306005BB242 /* PartnerRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartnerRowView.swift; sourceTree = ""; }; D5D5ABF328207025004E2F78 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; D5D5ABF4282071D2004E2F78 /* ShareSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSheetView.swift; sourceTree = ""; }; D5D6166B27B15C7400C59EC9 /* AgendaViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgendaViewModel.swift; sourceTree = ""; }; @@ -503,7 +501,6 @@ isa = PBXGroup; children = ( D57028A927B550BF008EF4AD /* PartnerDividerView.swift */, - D5CAA6522821C306005BB242 /* PartnerRowView.swift */, ); path = partners; sourceTree = ""; @@ -744,7 +741,6 @@ D538BED72954F6B700F25CBE /* AlarmScheduler.swift in Sources */, D59944C02833D45A00F59C1B /* TicketQrCodeView.swift in Sources */, D53256C429219DF200EA0DE7 /* DecorativeTagView.swift in Sources */, - D5CAA6532821C306005BB242 /* PartnerRowView.swift in Sources */, D5C92ECC283ACBB000D5CF2D /* MenuItemView.swift in Sources */, D5C92EC9283AC6D400D5CF2D /* PartnersViewModel.swift in Sources */, D544C7E7295487D00038CB80 /* SpeakerAvatarBorderedView.swift in Sources */, @@ -921,6 +917,7 @@ MARKETING_VERSION = 2.0.1; OTHER_LDFLAGS = ( "$(inherited)", + "-lsqlite3", "-framework", shared, ); @@ -954,6 +951,7 @@ MARKETING_VERSION = 2.0.1; OTHER_LDFLAGS = ( "$(inherited)", + "-lsqlite3", "-framework", shared, ); diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/GERARD.xcuserdatad/UserInterfaceState.xcuserstate b/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/GERARD.xcuserdatad/UserInterfaceState.xcuserstate index f0ad1337473a53abc45a928881acde900e036543..7ae91b414b0edf2c9eb74bded32f724ed0842141 100644 GIT binary patch literal 549589 zcmXWRWmp=B<2Y~}As}GTDH0+|hagJn06`EC3q_$i4_Pup?@0Pdj?ylQz-FLU{ z?#|!;#sB5!c|M`8$&T(lM50T83_vFU5C8&z0T4hY0N%vv746o&qf6Su3U&*}I{u&B ztR7vuHnF;d;?Z!A?s8sHzm4ZuynUBErS zBfw+8bHEG08^Bw@N5Ch*H^BD{Kt@IeI0KRa&&bNi&dABYWMDIh8KewaMt%k}gOyQ~ z!Oh@jh%@9FWf|%WeTE^!oMFpwX4GeRGFmc%8PSZ6j8w*N89g)lW(>^uU&io^(HY}2 zCTC0sW&yK-IY0~$3nT(bKpHR~$ON*0ML;f)4-^0;Kq*iGR01o2YM>ri2{Zytz#56}pzQBRNLBQXELxCfKqk!Xp$U?3O-hJs;WBp3zG1EaxsFab;fQ^5sb2DlK+ z0hfSzU=dghmV-;dDsVYi3)X=b3IgWyBpW8mZ9zrm-#=fLN|m%&%S|APMm-vZwT-v>VcKLI}lzXZPm zzXQJqe+GX6{{a7lbbuYC=fcN0K$e8LW&_J5FtbakwN5; zGKdPIfoLIBkj{{5h#6vo)I#bYE=VJ!3F3paK!T7Eqz%#zNkEd2u8`j#Jt4gy{UH4z zgCRp8!yv;UqakA;6Ce{IQz6qJvmmn}e?aC#7DJXmmP1xR4nPh<4nYn>jzEq=jzNw? z{(_uCbG<3}gl~Lz&^sNMxDOT?AbUT?1VUT?btc-3r|X-3Q$d zJperk{Tq4;dK!8LdIfqF`U?6Q`Ud(I`VRUY`T_b8`U(0O`UUy}27-ZM5Euf6gkfPg z7#@}nqr+6Na##gS4b#B1Fda+}tAtg-I>QVwGt2>V!Wv;sumCIw3&E1G6f6zv0_zRy z1DgVy3Y!L-4x0g+37Z9*4Vwd-3!4Y~1GWgZ0=5#i3bp~Z5w;Vy3$`1!2X+j09QGIN z1nfNQ0_-{L1?(m473?+a4eTxK9qc{q1MDO06YLwj6C4N!!Qt>MI2w+DW8wL5I=leR zfEU9{;8pO>a0A>3H^HmnX1E1j1GmC$a3{P8?twSM1Mncc10IJb;7NE7cu)95_$2sb z_!Rh5_%!%*_zd_=_$>Hr_#F6r_)_>X_;UDK_&WGD_;&aX_)hp?_!0O~_%Zl#_*wWl z_*3{Z_;dIR_)GXJ_-ptZ_*?ip_o}Ii;_jnqGjc0ak7fC zbXoeW%B-ra&RK>mW0onaI?J48$*Rq&&+=yZvLad0thTIlR+p@iS);N>XN}1kn>8+L zeAa}liCL4fCTC60nwRxQ){?A0v({v-&03eWEo*z$*{pL}=d&(kUCg?abvf%w*43z#|9)Nm6C#KRA;O3VB8q53v?F4O4n!Q0KqL`e5xo(85PcDY5knB85Tg-e5MvS3 z5i<}o5wj4p5pxiW5lawz5&IDP5eER@bL=uohBne4IQjk<64VjOmBMXoWBooO&3Xnpi99fFg zAhk#x(t@l(T9GznJ+c9rMs`7VMgE5DhU|{)f$WLwh3t*&gB*YyiX4U&W}a2gqM204f93 z2?a!fP+$}Um5G9)U??OCgCe2GC?<-9Vxxp85lW1bpj4=GR6VKz)re|Bc~H$LFUp5% zLHSXwr~oR0N}!UcZm904{-^<{!KfjqNvO%FDX6KaX{hO_8L0WF1*nCnMX1H7WvDf% zwWxKdZK&<2v#4{Z^Qa4`i>OPe%cv`;tEg+Je^572_fbz#&rt7B?@=F6KTtojaoPB6 zLN+m*lugd2WK*+g+4TL)j;@|IR*@eJT5L_KWP7*{`x+XTQmQoBb~PefEd!kJ+EHzvXnwf#$$+a&z)> z&^hEBN{%c?o>Q8m$Wi8$<*0JXb1HJwIhvfx9CMB($C2aA@#Hk;cyoL?k(_AGz??xj zgL8)D{4eMCoS`|xa)#%O$QhY4HfKuC)STHlb8;5vEXnyZXHCx9oZ~rv<($Ylne%tf zshra}XL8QwoXa_%b0OzS&W)U#IrnoO&SKH*5x+mdUJc`_R8&@+b6egZol0A zxdU7+-tf2z>ym zuTS3Kyy1Bx@+Ra>%$t-qD{pq*#=K2=oAb8hZOz-3w>@u1-p;&TdAsxW=N-#Cm3KPt za^97^t9iHbZs&c@`;zxH?_1vYydQZ#^M0WL=nQlxGz5)AqtO^N1x-cM(1mCYT8q}9 z_2^1;6}mIpfHtB{=xVeXZ9}`!&1f$=jELeHncPeHDETeI0!d{RI6K z{TBTW{T}@t{R4x?5HLgx2}8zEFjNc;laHZe3NUO855vbuF)~aAMvc*6sxfAa1yh4@ zVceJ`CWT33x?s9ue#3ObbjS3-^u+YS^uzoQGZHfjGYK;pGX*mTGZ(WJvkkKyvjeje zvkS8uvj?*mvk$W$a~N|Ha}IMJ^AF}<%zv2cn1`50n8%nWn5USxn0Htt7KP2m=3sNN zc~~?SgT-QTSUi@DWnh_DF18pe!Ah|*tOl#a>acpO8Ee6YuwiTj8^yL^+p#fh2R4pP zV3XLc*xuNI*g@D4*pb*#*wNU@*eTdG*tOVo*!9>A*p1jt*v;52*sa)Y*j?Cz*hARA zuqUwRu@|rxu{W?cvA3|dv5&D&a6lXg2gX5gnK&p8hJ)j>a0na{hr;FIh&U3Cjw`@% zamBb2oE%q*Q{a?19Zrw);F@t>oDbK6^W$1^0bCFl!i90|xHPT{t|zV+ZV+xTZU}A^ zZZvKYZZU2N?oZrO+%nv9+zQ-E+$!8^+;y+;QAl+&SD++%w#B+zZ@G z+$-E`+#B3m+&kQR+y~qjJOH18?}UfqVfb8p9v+RS;%WGNJRM(z=i>GFN_-W*Gv0tV z;!XH!ycuu7*Wm5=2D}g7f{)_c@a_06_^$Xd__6qL`0@A&_=)&Q_{sPw_^J45_*wV` z_@($|_;vX8_zn17_}%zD_`Ud}_+$8+_*?kf_&fN!_cJS_#Xr?0Yb3?h@rBC?5vL=Lft$R+ZLGNOuDPOKt!CK`w~VlA&f|w+xh-qRM zVpn1hVt?WQ;_t+v#IeM2#PP)G#2Lg5#EryF#LdJl#I3|_#O=f##GS-l#C^o0#AC!$ z#M8vf#4E(B#5=^h#Cyd1#OK5pBrpj=$|ONaFcO@UMM98}Borx|geH+lbW#C{ODZNw zNK%rGR7u^~2Wb##Flh+sf27f*F{D39 zOG(Q}%SkIpD@m(Jt4V7}Yf0-!n@BrJ`$-2#f00g*PLlp6T_#;2T_s&3{X@D#x=Z>> z`bPRr`a$|h`b7qiGsvCDKr)C7C1;bdWE`1B&L`8!MPx3yirkrOAREahay8jZwvcPc zR=XyZNvWeWP+BNqN`#W6 zq$p`hA4*?JKT3bfP|7gMe98jKLdqh_V#*TApOmGPWt8QV6_hoU&6J&#U6ezV!;~YG zGnBKGbCmOxe<=S_-cvqMK2knWK2yF>zEZwXzEgfseo}r>fmAp(hnh7?M2h~Zfqq?Y#R6jLBjZ#z8G_?!0H?EwWEzFWqOoaenueyO>1cXdC9R6qnP#9F zX(n0?t&Y}2^U#8{5G_ti(1y~6(T3AT&_>cm(MHq8(8kin(Z`8)D==I_lv zl7BM)@BEATm+~*?-^#z8e<%NL{=NMB`OouT(7|*FJ(CWl!{~5&79BxH(oytmI+{+R z)9D3tF1?suLYLBIbSvFPuch1R4!VAGjEc$Hv9Qs`PJo+E>`Sb5WAx+nzvw6E=jj*dPwCI- z&*?AdFX^x7ujy~-Z|U#o@9CfEzX|{akb=yD?1G$v+yY_&sX$U7Eszz+3rY(V1s4ZwHXe?+d2owYh`WEyn=wC3PU|_+Zg24qt3jSB{d%@6xkp&Y9 zrWH&t_@iKc!GeP21uF^;6dWu#RB*W9NWsy9V+F?x{wg?8aI)Y`!R3N01=kC16g((+ zSn#Oealz|?Hw+j9&d6dQ7)S<+ke?DV=v<<;~3*6;}+vK;|}94;~wKa;{oF#;}PRA<2mCU;|t>}vlA1@ z1ThgzB$Lf7WOA5AOfIvSS;FKo`Ah**$docwOdV6tG&3#C8m5csW~P~4m|dB_F}pFl zGkY+5GJ7$5Gy5%qOhne8Y`bgXBDs* zEGCP?60n3UIjfYVVQE=9RyE7a3bI11Fe}1}vf5bftQf0<6=x+_U0A(X16TuD!&xI( zBUz(ZlUS2kt66JUYgy}9>scFE8(EuJn^{{}TUk3<2Uy2g$604t=UC@i|FN#KZm@2$ z9ez5`U40b0rkPTvk*${Rn8_I^Uk!%bb%O>9R} zZDZH6?Q93z$*yPn*dcb9onR-~DRxhGFZLw%WcC#HRQ5FXboLDPO!h4HZ1x=XeD+fI zYW5oT7WP*5HueGbLG~f`VfNqbQ|$Zf2keLJN9@P!C+w%}XYA+f7wnhpx9l(MUxk1| zXd$c+UYJ*iE-WeJ74i!Og~CEnp}0^|C@qu~$_vX1b%n-4Q=z@kQRpo66gC%jE9_p_ zqp)XTufpDieG2;)_ABgPIG}Jy;mE@Ag%b*A6wWN1Rk*NlQQ^+QU4^>~_Z03e+*i22 z@Ic|g!b63J3y&9`DZEs8x$s8e&B9xSj|v}iI&pv;5C_bGa56bi4vYimWN{Fj91fmC z<8Sob8+)oCBPLoI{+GoWD8uIQKaZI1f3G zIFC6`I8QmxIL|pRIBz(gIX^kSiZY9!MX;jWqP(KwqLLzB5x+=KBrFmYiHjsf(jr-r zvPfHGC^8n+7TJp&MNLJXqTh?_&`*Qnn`*R0y2XY5-M{q}S7jPGH7jYMJmvH~&F6A!cF6XY` zuH>%eZsG3Y?&com9^oG4p5~t6KIA^)KIT5*KIJ~+KIgvRzU02*zUIE?ek;x>?o~;?iP8ad~lNaaFOo*iu|q>?(E_*B7@G`-}S& z_bu*M+`o80@xbCi#e<876#uXI_u`?&Ba0^#Pb;2Y{73Qp;swPki&qt|E?!f-ws>pt zw&F9zXN%7jpD(^pe6jda@#W$x#aD~36<;sDSNx>-Y4O|Qcg5d|zn5T2uqC(>d`E*V@hq~w1kzn6?D8C$ZnWLe4bk`*N@OIDSvE?HBuwq#w&`jQPLTS|7994t9h zacOy^Vaaz^49Uz^EU9d@OJa|@DA|~^Zw?Y;+^JQ=3U{v=Dp#) z<-Oy*=Y8OP%=hwx{189RPwHHb|nf$r@ z#rzfgmHdtTP5fQ_-Tce^EBvecYy5xs|MLIiU+3T8-{jxo-{U{!zvjQ;f8l@Sf8&1_ zKm?frr~oF&732wu1tkKWfG-dTgaVO3ERYDK0+~Q5&AzKOcG2M%ofZM%oWTNEE6mjtPrdetP*SzY!;jr zoDrNAoD-ZETo7CoToPOsToGIq{3p08cr17#cq4c#cqjNF_$l}$1PC*PFd|MLD8eQJx4b!i#7kmWVCliv%K}s7$01 zm5VAwoka#wi^wl(6$L~=QAiXPMMP0io2Xrs5Oovv5%m@QPxQNJsA#Ncoaj%{QqeNe za?uLWO3^COYS9|eTG2YuCecpOe$fHZU!oJDlcEcvi=r2zm!emq*P=I~x1x8V_o5G? zkD^baZ{kj3pcp2Gi}S>2F-A-i=Zop$0x?%yEUpw+i93r8Vx!n3t`?ic7IBT(Dt3q) z#VumLxJ}$Hj)}X9e-n=uj}ea*j}wmmC{wx z)zUT6wbFIc_0kQ}jnb{sJ<`3>!_p(tQ_|DYGt#rttI})Ix6*gg_tFp2kJ3-l&(bf_ zuhMVQ@6sQ#3>j30l4Z;AGJ=dKW6D@EwyaPlkO^fbS+&e8v&d>>R+&v!E3?ZSGN-Iw z=97hFVOc_!l%-@nWxZsRWRqo6WK(6+WYc9cWHV*6WV2;+WOHQ;WXojBWou>YWZPuh zWjkbtWQS!(WJhJkWM^b&WshW!Wlv;JWzS^KWiMneWv^tfWp893WZ&hTwxx7@akSpaC@+x^}xkX+hcgfxIdU=c7FYhJqE$<`mEAJ=o zFCQQuC?6yrEFU5tCLb%GET1BuBcCguC;wBvRK8z+Kz>kuNPbv;M1E9$OnzMcm;8kM zwEU9%U-^IXd-D782l7|)*YY>=xAL#@Z>8u`OewY$SBftsloCrxrQ}jdDYdkqw5U{2 zDlAo$Doe{s^`(`i&86N_UujFJzqGY9P#P=^m4-_rrLod3r9De~l@2N$TspFJRO#Z< zC8d9sE-hVFy1aBn>B`borK?NVlx`^9Ub?q*U+J;Z5bBxrJqZ` zlzuJ!R{Fj4N9oVfUkZRCL(xeARAeep3XB4)peksJd<9ogtSC|N6nuqTQL3m_*cA?i zQ&FdIDcp*BMT4SI(WLMx!io+>T+vO@UC~1^Krv7;T`@y3Q!z_1TQNs5S20iVhhn~B zfntebm12WpqhhCGm*SA(u;PZ|rs9_3w&ITBuHv5JzT$!6q2iI^nc}VDv*L>~L)l4* zP$HEmWwsKpBq$|HsZyqtD@&CMrBYd@R4L1q6-u4bq_in(l?}>9Ws}mQ3@anbsIpDj zuI!@hsvM&ns~o2subiNqsGOvntem2ps+^{rrCgv~s$8aAr(CbxpxmY0t=yyBt30Ya zro64Zqr9uUr@XIxpnRx&qGHRKk zOj%Y|rYb8ht0+^KY09)^x-xxPWtp+eR^}>mm-)(C%G%3fWgTVlvTkMF%f^>YD4SR| zscdrDl(MO1)5@lo%_y5$Hmhu2*^;uAWvj|Im2EEDQns&bf7yYugJmbmPL|y-dr`~d{vL|Iv%bt}zFMCn;vg~cym$F|ffC{RDso*M%3ai4Y@Tz+QuS2zQcY4#R!vb&RZUY(SItn(RLxS& zR?Sh(RV`30Q>{_0Rc%#mQ*BorR2@I-&GK92x6AL8-z~pae!u)d`NQ%@<KRy0)v zDuNY#EBaORuNY7sF+`|pkiUgqKcIjt11pv z9IiN0akS!C#qo;2Do#|KtoXa)RK>Z9s}(mYZdN?3cvSJY;&sIvb(R{TMygTjY;}%0 zSDmLut1)V4kL(mX4Bn??Z(NHxsO}>V%VQES< zJdH#n)s$;0G-{1TW7L>5t(t%)s0nGpnusQBLkrcSwAos`mY^kSx!PiFiI%73YXw@NR-sjDHCnCK zq^;J5v|(*T8`ZXH+qE%mhc>QFXp`Em+TPlM+Ckb8+L78(+9}$p+G*P9+8NsU+6CH` z+O^ts+D+Qc+U?pM+I`yn+N0WI+T+^O+B4cq+RNH2+UwdI+I!mj+6USf+Be#_+K<{# z+HcxlI!`W{9Ya^BE7hrV?~KRM)0! z*Tr-ly0|W(OY6Gndg^-Vdh7b@{-^t0H(WPTH%d27w@|l8w^+AC_or^DZkcYmZnbWW zZi8;4Zj)}CZjWxS?x60F?y&B-?myji-3{GM-7Vd1-5uRs-9z0Y-80>D-3#3t-6!2= z-FMv&eTE*Z$LaBUf}W@+>B)MEK3~t!GxZ!jUoX%L^-{e_U#&OmE&3Y0Rd3VR>YaMG zzFzOqx9S7>pgyYatM8}puOFZvs2`*stRJEurXQ{!tskQwtDmT!uAiZwqo1o^pkJ%s zsNbaDrr)mLt>2?Rpg*WTsz0Vbr$4X1puecUs{dDiLw{5MSpQuAO8;8_RsT)@UH_vp zqq0*aq!LyMuf$YhD{+!z<(p6Pe8LP}y)+&2dT~&QmQlYFgFIsyS8js}@x)t6EdFwrX9~uBzQtd#d(U?W@{fb)f1< z)rqQ;Rex7qth!Wnx#~*Qznw32zSjAl&Nn*W?0mQLz0Qw1Kkodz^NY@JI=}7wvGb?S z-#ULc01O!humNI#8?p@9h8zRNfHe>eBm>QmZ(tf&h9U#kz&8jC5`)yBFenWb2DL$N zs5BT2CPR(EYH%2whI&JTq1oUyv>F12h#_j|FvJaMLl;ALLk~kALtn!{!yv=&hM|U$ zhEaxbhVh2UhAD;_hM9)BhIxjChDC;@hGm9ThSi4kh7E=-hOLI3hFykzhW&=ah9ic* z3?~ey4QC7&3>OVo4c83U4L1yT40jC=4UY`Z49^X(4Q~t|3?B_&4c`pEi~u9Z2sXlu za3ji?ZA2R}MuL%Oq#9{PhLLIH7>kTNBi|@CN{ppOg|XaNVbmG*MuX94v>0oQcB8}S zHr5+G#%816*lG+LBgUAq!nU09peMzL*rB9Gvh1cYvX(42jdsxSL09PFB8xNGC@r+6Vik-<(beXyoq3< zn5d=#6T?(!;+RTIJd?;IHpxw;CY7n&qp8W{F*TdKCZDOr6g0(59i}d( zuBJYwzNUVr-%UeJb4~M1f0*W*7MK>A7MT{CmYDuDEj6t)Z7^*!Z8z;V9WWgZxcdDZCZl4@Qxzgkc& ztQJ*^t0mRaYFV|sx~y7PZLBs`+p8Vb&T3C}b9J}s?$tf2dsg?V?p@udx^H#A>i*RO zs)tmMtR7!Ip?XI3%<5Uy3#%7Z@2uWcy}No(_1@}z)%&XtR3EH9RDHPmc=eg;OVyXF zZ&cr`zE%CG`mq^c&M6P_bHbc7_b~S~k2g;+Pc%<5Pc~06Pc=_7PdCpn&os|9 zFE%eRuQabRZ!&K-Z!vE*?=|l;Uol@bUo-z>{@47U`MUXr`KI}n`L_AK`I-5-`K|e# z`J4H>`G*B;fmmpkd<)%DU}0F87M6u=DYS4bMHZe#YALg*ER~ijOO3^9iCChRHcPuD zX6dlREeT7~lCq>N-7I}A{VYQ)|Fev?jIoThjI&I$Ot-AHth21QY_M#!Y_e>&Y_V*$ zY_n{)?6w@T9JZXWoU~l9T(n%WT({h?e6W19e6oDDe6f7Be6xJF{ILAA{Hg)gz-w}9 za%+e+q#AM!vxZeuQKPQW)M#sTHTs&$nyQ-4HHI2vjits}(^%6~6Q~K+glfVyiJD~1 zu$tjDBWgz0jH(%3Gp1&2&A6KJH4|#4)Xc6~P_wXRMa{~ZjWwHUPS*TgbE@Wa&6%3B zHRo#1*IcN%SaYf7TFtGR2Q?3CUe>&-d0q3l=8HAgnrB5@F;=Vn6wTN0|Evh!VHm5eXHm??4i?5~CvTE72{8~Y6X|1BxUhAlJ*4EX!YTdQD?`_1YV?H*0Uz-mbk6?U~jAO_G-Js?zDH<@)4_?HlYH?VIeI?OW_y?c40z?K|u{?R)J<>__c?+fUgq z*)Q9#*l*fz*+1Do+rQYq+P~Sq+ke=9+J89!jtmFbfpFwG&^mS zdPk+B%F)?ja2OpXN43N1a5+4VW=F^oc0?RWN6InWF~Tv@G0HL8F~%|0G0rjGF~Kp> zG1W20vCy%|vC^^1vD&fOvBh!9aoTalan^Cpao%ykanW(faoKUj@vq~KC5;`BRP zodIXi8FGf55og?)aCUe0a1L+|bWV59aL#nja?WwM?@;{00IsSa2NszcNv z>)3ULb)34QI&NKYT}d6Uj$bFJ6V^%VRCVQb`nt+GOI=N!wa!*oU)NBVuIp0QweGjN zZgt)3derr->s8mgu20>7x}kNW>&Dbgshe6iw{BkDmb$HV+v>L0?Wo&Xx2tY<-JZI= zb^GcL)t#t2TX(MRTHQZ&|JMCicdzb#-S@g5bwBHVxd5&VS0@+H1#*F15EtB)>%zMT zF1oA0#dQ_CDqU5s&Mt$?=rXygU1pcXRpYX{9Ii%JlgsaFb+x-rZMb6t1caNTh|c0F;ua=mtac71Vub$4{oMWC|8xKD9^)SC z9_JqKp6;IEUguu#-r(No-sIlw-s0Zs-sax!-r?TkKI}f>KIy*TzUaQ>zV5!^{^0)T z{^b7b{^I`X{^tJf{^9=V{#6gGhu7!S=hhSJN%iDh<-N^;Pwq z>kakBdP}{tzOKHh-cui}57o!(6ZJ#uht&_SA5lNDepLPF`Z4um>&MlPub*5$tA2L< zoce|Ji|SX_uc}{Nzqx)({i*uX^=InO)}O0CUw@(gV*RE1%k@|4|E<4M|ET_P{p6FH)_-e2H((mD4Y&q;1EGP~Kx!a2P#UNW1r0?Ff(BuOqCwf9YtT1%8k!rt4Zen! z27g0qL!cqp5NZfFv^S(1dNlNG7}zkVVMN2oh6N1^8x}PzZdlUrXT#ElWev+4Ry3?^ zSl_UrVMoKxhFuMZ8V)!7*KobzM#Ig9TMf4x?ljzOxYuyM;X%WbhSv=r8$LDsY6LVw z8)1zFjf_TSBdd|!SlGyEENbL77B`kO3L8rsD;m{}hDKwfsnOo(XpA*>G{zefjmgGT zW4f_RW7o#t8oM?2Y8==&v~gJDxW@5~6B=hU&TL%YxS?@lDM{;7wUgxlMUZ zq$Y9`rHR_aZYpfjG-;c3P5P$FrmCjSO@=08lc}k?$=c*<@-#I!g_^=mk)~u*s%d!B zh^CQEqnbuHjcFR&G_GlU(}bppO;elZG|g>V)U>#1RnzLGHBDQZwl0HzK zrVC9Mn=Un7Zo1NRwdud6yG@Uqo;1B_dfW81>6-`b!FaG9oCohAc!(a7hwPzvsGb5( zkw@SWdK4a|r_7`GRC<~{UXRby;_-W0JpoV96Y_*T5l_t1#naQ%%QMI`*fY{I%Cpe3 z$g|k9#Pg?Tsb`sIxo3rErDv6AooB0On`e(_uji=enCH0XFV8v8dCwEiQ_nNcbI%LU zOV2CMYtI|cThBYsC(qAjP&2q0*^Fw&HRGFw&7x*;v!q$tENhlGmo_V!mCa?%>gLYP zmgbsfSF^j>*WA+Fv${M-xjg1r!L zrWfjkdEwqHFT#uTqP%%tqBq}5_ZE4%Ua?o=wRmg1R$Q6wUZ=Ot>+-t2P2N^- z)Z6Awd%Jjhd;54Nc_(|Pc&B=&d8d14cxQTNd1rg)c;|bUdRKebc(-`BdiQ$wd9Qe{ zdarr^@&4=m&wJf_!+XY#e5yUxG&*L`cl5MubZ#0Z?JEOZ>)w%9gSgRZDqGMT@#c)1qzBwdh+6 zE!LL07FUb6#n;l(5^ZT~8PqbkWk}2aT7GXC+A^$Vc*}^Eku9TI#h?`|JG;{ziY3-{Wugd;LCt zi$Ca(`8)hw{9XNh{C)lZ^Z)LjfD7OQ`2l*MD8LQq1C@cQ zK<9uVU<{Z7)d6$B5~vB-0}TORpd}Cuv<1?EE`gDOQGwBcF@dpxae?uH34w`$NrB0M z>4ABH#epS()qypEwSldHZGkg^vw?Gg^MMP2i-Ajl%YiF_tAT5Q>w$ZLCxNGdw}E$o zZ-MVYOb{Ey1@S>bkQgKd$w5kx8l(joL2ghO6a|&RvY;wh8LSF=gT7!(&>w6K27Rb#g3(|{uxqeauy=59a7b`eaCC4{aB*-+@Xz4V;IiQI;ELeN;Hu#2;QHXU;P&9& z;J)Co;PK#J!4tvr!3)8s!Dqqe!56`o!B@f8!8gIT!FR#;!Oy{8AwUQc$_!zNa$$jSm=1@uh5Cm$!JIh2cd_dm!VhT%rG%$G<#;`XW3dh17;orjD!u`Vi!&Af4!qdYu!ZX9O!n4D3!gIs( z!heJpg;#`EhS!HTgm;8@h7X1hh5rrz7rq|85xyC|6}}z56TTb17rq~U9DWsk9sU^p z6#f+fL^2|sBJfC7gc)H)*pb2rCsGvQMv5aP5nhBJ5l55}O+*_pMXDp_h%-_biANHV zWF!?yN4iA1Mt+NQi*%3li1djJjtq~Ch)jq~jLeM8ifo8%jBJW*j%c+iyV#o9XS=b6uBI^61f_=6}cVx9QhLY8u=Fa9{CaZ8Tl0jL^GnDqL3&uijHEU zlqfaIjuu8WQEgNg)kiC%Rng8-L(~{GMXRIMs4MD;Hb+Cza5NE3Mu$a*M@K|QMn^?Q zN5@3RM#n|RM<+z5L}y1AL>ER^L{~;vMK?t^NB@qVik^<1iJpy~i=K~Oh+d3die8TX z6TKb16MYnY9DN;q6MY-~8vWLWZo{-;+i-38HbNV*jnqbNqqI@m3fhX=1Z~1LMVqp% ztWDom+1A|VZS%FYwE5dw+X8LDwoqHREz%Zi>(bV zpKVLqmbEQ!ThX?%ZB^U4wykZu+xD~_X*=3>y6sHc!?s6lkK3NKJ#Bl|_Pp&y+sn3B zZLizjw|#5RXz$bxZ_jE+w`1CQ?fiB@yRcopW6T&U#*6V|hL|yCidDzVF-xo_W{ufmwK03l6>E-pW5HM`7LO%j$ykqA z&)E3bgxJK`q}b%xl-ShRwAl36jM&WB+}PsSirC87#@MFVuGsF_#n`3T<=B<=~e?yfq$7#0SL($A`wp#>d4c$EU|<$Nz{gj<1NXjIWJvj&F%?kMD{fh#!m}jsG1#6+aul z9KRC(H-0;QCw@QvDE=b;GX6IHIsPU7J^m{JPCydyL{1_%fl1&K)C4WTNE9Ww30^{& zkS9tLs)R0~PjpV061GHbqAt;t@FaYR)X(noARYvQvOtHDv;`$`YqKh)jicC)ic#AH7qqeH6k@KH7YeaH6b-IH8r&$wJ^0j zwKlabwJEhNwLP^vwLf(rbue`_bu4u}bt82%bt`o{btiQ4^&s^y^(gf?^(6H) z^)dA+^*Qw=^)>Y~^(zfdL(=ecRyrrmOY_r$v@k77i_?;{G%ZWZ)1_%eTA40OSEO}m zecG9>OS{tUbbY!Z-I#7l`_rxIa5|Fin*J@_E!{ocBi%3EKRqBlFg-LqEIlecIz2Hx zDLpMcJ-sNsIK3qOXL@ORS$a)+ZF*yRQ+i)|fBHcBVERz{aQa00Wcp0{Z2JG$yAJp$ zinf0{+pgbUKTtuXh(HLTV?lb6Dxo8sAsi40xqbme-3PIEQS8bADkds6Iu`5=d&RCO zcEy4nzGrrClTC7IehI$%<9)pY_HJ*Unfd>pHqXqyQ}S-fdnNCed{FXX$!8^dO1>)j zy5#qgKT7^A`Kx4q$$>B*7Q*JRCF~4)!$*W$gLSUL0N$K0UlNd`9@p@LAz=!smuB z4PO?%JbZU}efXa6z2W=9_lF+{ZwPM;ZwhY?ZwYS=Zwv1TKN@~2{Brn}@T=k1!mo$l z2!9yA<{L{BhoX{H*#F0 zU*x37pvbVu$jGS3xX6Ua#K_dhjL6JLFmhUCN#yj%(#RQ+Gb3k3^ zAaZ$RW#pR3Es<4`bfi3TXXLKP-I4W?O_9x!Es+N!Peyh|UXQ#T*%f&|@J$iR^eRM-~WAvfu!_lXrPe-4Lz7l;q`a$%Q=|ClP2?qdCVC}~ zOY}<&Obks7ON>m6N{mi~5_1xB6Y~;9iTQ~IiQ>eGO;3Y zV`5FBJh47;PvU{Z=EU~IBZ(b}ClXI4K1_U+_&D)NVt3-x#Ak^;iO&;XB)&|1mG~~P zFY#yMuOy!olD?!r8A!HBwoD$DJUrPp*)G{B**V!G*)!QMIV3qcc}j9(a%yr$vLHDt zIVUM6A-ODhc5-?0oaDL5^OEN$FGyaPyeN5Da%J+y&f?%pC-Ra?oIxX+?V`4xj#ixY)VYEP92##Ds^b=zN)Yqx+ zQ$MACP5oJFC}m3d($=L%mL64lbZMK?wx#V#+m{|w+M)E=(vGEFN_&GaaV(%Gf+OBa;JOB1EZ($vJZCCTFAR}D6U-QX}t2DiaCc}#wn z1);_9Y4~U6ER#uX3yTZl@zn;W!6g%!U2X6fyfO!^y94ukQ1XlzJY;e>wjdrUC=3k_ z7bX{mN)kb-ZTF!AdJgE`yHC!b9s~R4^yoFXS5BX9-G}517}U4Vpn*MlbsyZLyVi6| zLwiHFa>HSU!wp9mS{Yg!jx-!)INH$0(ALmS=4C+^Wut78&9X(d$~M_9JIW2m7&;h^ zHFPv|GITcN7`hm84P6a+vLrj9)gEZ|CA9hzTHB#@duV+Ov_2MEcLe57c_PX?FcvCU z5D6ERB;o@K6GbUJjAeFEYB@MGryyCJ7&5yk5soQGw8V#oV-v@Zil3@{EtFq4FSIa( zKcN0|e6nP4D4r-PDM;W!FhR+Q7Y2n(5}`$j@#w1KuLq^BqYC1QLE(jw;t)16j-DA4 zPvA%DPYo=H-iWG6ylFpd_ADHuJ%LwG1`rw)Ovh49!ew%s)|0TC|)$Hs2F81Y4g$FFxt@V zPQw7hK*J!zV8al@P{T08aKi}0$%c`JQL;;R%O2S)`((cykXy(t<-_E|rQZDAA>={9Oj&N8`iA#af4gQchi89~YWifLbs=oQxHQ=)FNHudeTp4lNAF z77vW!fQMq0ZS<|{p2{E3nG*{y%oz~J!Oa;|kSHh)&kahw>$+EMZ&<7#GEbSzx%yUn zsCQ}~WEqWN1Pif|RO9aGm=$I(NN)Zwq_h4TIG<6>cYx>0^ILa|zX zimH4kC>>X48|wUw36~5lDh}l@Mpi7W9M7QCt*)Duff-&DiqW%|7FP~HoxK_ro~wOR zL-{4XX`n3~Q-YpM~0HI{q086{E&Vg=B+#lze1R+O{ZX5hY#@eTyN* zj?0~hB#7q@8-iPdrA2cRC&d#5vBapNlF*5Hz1u7Q7!)o(u}}L@$!zT^{*_+q z)}uZC42q;&@0$6?*g12MXeZ|6b?N$w;daA1!ySgQX{wDXDOebqqW(1$pExET)!u6S zxO~c({ISZxT>4R2uZ%#Op!8((j6fmk{cs8PJDwZC9+%KD9glh@5gM_uU~Z`9X!OiF z8a?U2(9y`l&nrixZ`IN0*`=$#Zx1MaYZsKZ|E<0)%w4c>Ap)XehP7GE%&|7P1vuY| z%_~VvDhid>=u-E}9`&x6-|iJ1>Z9*amg&{^Xp7RLV}jDNf2&9J;#D_W3S{FdX7f?s zp?S~RyF8SiV!0Z86(lzZzWV+>r1bCDp!8t#^iP{I9Umu+t}$WVa2B*Kb*r2*yqp1H zk1BIk4TOEFg77h=OPzw!&cD^AhJr92L4Ph3%gtB+92`m%6cy768;uIBxJDQCN~c!^ zDDkSMbgJ~Q9#lT9bTKC=J@U7@ST8EIS(_JL7|KQMT1U5ZT+?-{VPwONOL{EsRC<*g zlpbr|Ug@z|>wM`US!pCH5lLBCsTQlvSGA74qI4`TC_T}<9m@*Inn=`5S!K`iDyFQe z`Ri3x;pd_G)6dzPO4qtKH`z);3F-zEmCVf@Q}Nf@QQ1wWBKua54X}j=DgEnxF!~oy z#FB-HWGqy-OVS+$t}q9A74wIewfWPgO!3gV?2@%W(h%HL8j^_e`KlM*j1C_$Gp_muH8yvGy zg2y2X(Fq$-5=mwc4Dxh-W@XRtsz$mhVAOP|2F7kx^~wRIZ-f4B-|C$y9T+R@LY;w} zPHXDydWF(N>!7m<)qLox3Wed6z76@iu2_BZrhzc4S+4;{D!8U9bseiPc6nM~>IWoa zQaU#5?`n|0(J`9Uzzo(LOgPotAP z%OaXk$Q=-0TvAv|ZlNB&(Qa3|Db<{4nrYFwnv7fN*T}z{I;yWKzIw9U2{!UTT(!%0jXRVNvgybj#+N^r)gpFmO=k zP*amtO#pL*(#x@bS54M8Z8|tM%mnCW5K~*I_?4;3tDHj32gx>t)%td{(zjEZEqgK; zF*&MWF=pvQ5tJ0Oo<$*CnXR7B)O9Hz7FW0WrC|9hrO(;Br-m$J;rbYwaix~*Cz zPgIh(Ocw_84DK=cqmzk(S;e8jMM}P{Ahvi7e$>@ae(IR~%4?a-J=2ZpuKtF0p%>G; z>V@N&V@%4e$@+;n8{TyOk<{3y)csr zR=qHbDXe;74l}pvh55{asuxO_aMcSjCSLVIiYcvnVF`13)eC1bXH~thjKS3qIxpIo zp39t9^}>bBMO80c%3N0U!j;U5suxz0ade4g3v&%~Epr`nJ#zzdBXbjTGjj{Gib*r8 znKjH>=2qr5=5}Tsa|ct#lrwiScQJP}>zR9)dzt%~`G2593 znTME%nMar%%%jX>%;U@x%#+Mh%+t&>%(KjM%=64n<^|?O<|XE3<`w2u<~8PZ<_+de z<}K!JW*74g^Dgrq^FH$d^C9yQ^D*-Yvzz&p`Hb1ae9nBqe93&pe9e5re9L^te9!D< zeqerNeqw%R_A$ROzcRluzcYU@e=>hD`uc zPU0eN;vrt*BYqMfEl5jp7&)9AL0Xa4tsl2^*t%Gb*`$~Via zLJPXY8z`Ov=OTfGW%xl2B0nA&#>;mRpVBQDjL*x}X zg^VZpWCEE;CXvZx3Yki#k?G`AGK0({L2?=?AhSpznN31u4w*~lks>mmEFi^XAt@nY z5+P9%BXN=-Ns=O^WD!|RmXOoQQgQ}4lbl6l0%RFEn=B{ikaNj-cj@&`Y zNIAKa+(qst>&ZRjUUDC~pFBV|kd0&$*-W;Otz;Y7P97u=k%!46WCwYaJVqWTPmm|c zQ{-v#40)D3N1i7;$qVE~@)CKOyh2_juaVcu8{|#$7I~ZOBJYrQ$$R8|@&Wmfd_+Db zpOD?;Q}P+vLp~>8kT1zsj1VhutR~J z25cDE<-lGC>?UAe1NK|sSm6A?6eY)&aL2xL1JN13UwK3*dVIKN|P~ z;FG{#0Q^nB-v|7Y!0!V7M-W61jsoF05XOQq4}@hPTmwQm2v35r3xpp)G=bO##NHsD z0%8cnB_OT<@iq`22JvkWzX2l;#@1l$1IBS+oCih#K@og}E111Jc9x!zV z(@-!?15*S{=Yi=)Fx>;D$HBAn+0q~f~`B)MuDvWY)ip*HQ4R|+YYe34z_Q>PQdO1doI`qfqgRA7lIwY zejV8F0sB*6e+TS)!C?kRD{%A$$7pcO0!IoQmx5z8I5vP|Cph+i;}4MRAhiSOB#U2ImHFz6Q=O!9~F316R)~i}0)( z4Mu~~sWbvTE;qL!%k1?z-8B|pb#WT2#%Wmhqr|)oY_Z;KNCK;%X!^enmsl@^8e1iU z(%eRLyIvu*kV?OTlv&NxH?D>}r9o*LW;$_jX7bgw9YLWhtx%lU&x*8E<4_JUlstR{C<(JZW#S)4mGhSd>D4M*<85wxgij&>neO{vE5`sh$e za!9dKW!7b$zB_6-a(WZbV*^3dS&4mb@~CwQ)D9tjI2r0442@X| zt1|@{qp%pQGS{z{p}!)-IZZqvH3lM+GOU)%)(bL35#+p}bWc`fX#A_Bx59m7a16_^ zW>X4e%4>28lCdR;qIhh{yrRO=MIo#&FIb!`48>;64=>48>*K~16fQu`6VJtJ)WQYf zBvu#Y51t&FrR4qcX+mP+h%8qI(Gp&~OZ#R`Se>l&;)0+Q&Dx8p z%u}Sex{2MVI>o3t{0kK!t_e!Gd#}M>W4(%2M~6hg+<5MUg1OmsY)onXy5@snhK*Uv zEcBC6st9sJ^J%B*ODNgLW2qv>O+hKti0Pp>@#waBFUPdw5Ta1(O8-hBR3;O*4je- zxLmGCb1N1NXwv-eIQ=xvD8OeEXYu<7jmdmi)#txj>CNpy=_0K+Row1ocWiW(ExF@| z3>Z9mNSB4P^}~I=BH$fCX>wKpv->Rd(XnW3K2BOqReX!mSb5WW1v*WvY9Pgr8x^J{ zE;U71tB7z{P`Wp3e-G+}sP1SS!`F)Pqufjx5@jj{6fND)){Q%qZmbVVYyO#TR65K$ zPZ>KB3+eui`@wLJLRCWCtq6W^P>N+0{O{pS2LW~AwEl?WenpP^8|Ng~hkH%uWp$8h zVsWz~!-ghSyt={A)hK2!{L*WJ2Nh{H1*O?dI5U|H&jj3-UwbJ0sM7M5rfpf93z{E7 zWt83YJ*Bj~EhrT?qR;hu1X|Nd$@y@sJEx87O6m2Z{=6c=gIMmERf49{M+1{Z#j|rq z;NHsE!qDs@+^`w%Qi2;eXNMMLBIho%l&>f|!*YruG-npqa%NS(qV5BV=agW2t)Mu! zAhxhq57b-pLbH>_p^90?M)duBS?TA)jZ^&%9_i}7PCQ#Q@`fV9j-a$4>riJ`J@ty9 zqg(#Gf>pJ*J?>(h6-zE^ktYfA8` zBEeHZDbyU&yMV^cby?UjRdtcAEjqU;aHtZ3$PzH(Lj*Kp;ZHFN=IR66r|Z0|3sZH2r21Ln>PW0;8asJ$EV1zl~=CW}U{rM0XKm7aVQl#*Ics-zdPqp4mV>4vkqQLS+A6m_68saz*TlusI$T&vGUXu!^h zq2<-;OCoVy6=6PYzHzDUaMnI9Jrz;*G_m8Wn<8D(V-T)GWOl{tr{*|CgfE&l=B}8U zjN@Ms0c0kpW-S4Ck|M`fjZ;JQK}0ta4F~IBMUrot*&9|8QMJs;2t|VLnlbiQQ_vN; z=y)CeFgHe#W^eN?QYe1r;80;0_afkuZEdS1T)ra6kIke-szX&{ZT8rlo1zHwbK|`4 zM&Py51FmsKf}XxJ6fu5jKATxsfTy$O4#IaF2wWx0l5pf^DMI|#d_q(XhBhlTy@$Dq z5Puvz($qOG#fmh4HBPNI#`spvWmefgt;a`Hk>fxUJJXte$93&wJeL+V#cNJTiZ%@l z)5JARTH93;Xf<0uU2UChrk?A{3~IJ5t8MemH~UrBb!%I_L@Vd?o(xG(KzR<-f7anlD%pnOH8v#mE$nnH>pjW zPEGy8MapzNRyiTDs4#2I!mwc>T%Ah97FW$GY*+hqMB_|Ky<@AJ;Oa5!$k5`NOx&T0 z(Hc*4(T284cB9!-o^y&~A$sOt4gxiYmV*z96~yNiFHYcaR{8t5+u4JXl&Li7zvw`av;V@%-xJA}}d`t)Ii?(a1$4KJ$FAKy4X zvECunZ}?I25_N3#;jO9+CpIqCTdxdNrcuAorlz6eovH{Y1*N3GlgUS4KA90wTr`3qrW_Y=ZKqx^*F|Pr~<5Wf|Q#yIkM&>Y(0`V2tmpN-?%^ zAZs}Pvz|blMVa5H2Fbk!#|_i8w2?PB{s&TCBFyCAaIG`c zkVITKp4YpP8908jD(mzno-3VF(3OtYIH*yVxa3b&C7IE9+ z!Jw^-Sd^-~TJSnY6{4VVen5kT$kfoQ#a(sS-vz1|g-xuYb)ZnAXmu+=twA&&QRN6V zuFj+0;n2yU*Cll&7Wkwp%G@UQ{&k|Le&V=-WL$SB*A5)UC!a-|hZB^Aec-~&)_tuOOn zt9X_4Eq{U9t8nv`2kVq@e%*Tu_)Aq`qK)&58biA3Yk76l6Y(olY2ra?mNwy4LV*U` z(yB{D70PcY?!v^UP1ST_u2maO2BoEqXt+Leq(ghd4h`2UfSXj2N`umwjS#6ZGgG}7 zQ4JOARE(=tp%yn&_E{<1K#EsPSk0NbU6tVU=Gpb7ORv>z`cAd!Gn&|Y(&wedRX+5f zuI$vksw8JM&U0u4T+uAyAwSuU64yg?qbde8&PLS>(NIZ)(%$?wwfVD~sg6gt7E==o zkEm^*)5KWN>~r>YWDF>4O7es%$$3qjE!F8RtxBJk=V#9~JgdrZK~OrqnRHckD?*)y zx)}1JD$zy%ScE-t^thZcO3^B=rsH8jxT86qix;b3Q;rT-4-n5!;PWvT)|}zj)V^F2 zl%_Q0=+?5^o_||y?y}~K2lRe;?cU$}svK7|&QEHDlB#M)u4_K`wQ9mu zb&+b>@5uk6N^?Wwe3Qn^3{}5b=jBhe>6@BwAawW~RWK`r=S$2UjL*-_c3OtOsM6fh zxJ+Dq)UA?;t65bn2x_b8rp^ba(@$7wCT`M7eo7~t#4>Pekhx`Mj=9rYumpi zoTv)1DJY%Q2&GxC<3t&^;$s4YL-#36}B)&}dWNva$>8pqW7be6gnpq)KX zI~b;`tv}YpIR_mcRY`{7PRpU8(Ck@wP(yYTa+)g16G7>k{~uj5Yo3kVchI9z`woPV zD(zFvJ#O{S;Cxk*XPP*A(#>FXyHlqp5LU%`u8E5#b>irPhPrG}LKS3ZP{1fG>uWx+>StoH83e~2wT8^@M2RcT*t+({?(={QZ*>XNG2 zSH*?1)%IU)K2TQH=+(8>A)K!Y@_G}i4Q(W9F*;dFtc6QdN#1On*{RnH&?Ko6+17N_ zuT)!q`yYXCuSS-*2-m36zVi=Bo7Xt9-Ka|YUgKi1dS_O@q%Gp z-Fn5)09M^7Wy#&#rb_Tp<5*vx*3ns_x}7ZL0eQk5!UKkGWkQ)yF5D^HCEP8n7w!@6 z748%62j&xCb_4S%FrNXl2bj-+`2v_Pf%yuUugioD!bau)TZFBKJp9{(hGT&F2AChT z|9%AK4`BXO{`r?I$rFQ8OSLebR#Xp}U8Gb`hl)eWL->Ny;Wa;;7cL!LL~HRPLFuTh zAJd;26i(rTJLh5*P3x@R8BvldiWlK_Qe0%O`76Z*i*c<2GmM$t(?O|C&0kR-SBfWe zB|=@obLPZDiEO`wbB|}xs^7xn?opoXT^f)~%nQd*n3^9KVt0myi?OyG3vp_W7Cljn zKJhUAiotGh2+s*S(*i!X>sw&$9d+mL%i7Iq5=mVLndvRc?9AY6V0<~RI_>2xqg&;v9>@tL#3g-NUxONtw!GAJf=X*t?oOjrtERfGY8Pak7}a6ot<0uT|15eR-{E)y*()J2C1bdC*^_|%(*)nr3 z=7_n7Xt4_rM_TL(L~08I6%Rt z*q`E)co3grA9@qLwfcS9O~b_T6q&=t5#q_>NO6=nS{x&e702Pj)QAs=A4mX53m`3l z90ufYAV&ac1*CPEn4dxBWN`{r!s2v_%p-NkYy+f2MhTN+4QNN0@4@AahZ3-bwKiHPwGK9LHF6CKRnZb{DnHCOX zo$cXOFXp4wq8Y$}wAK}Uw8N@?Jg%suBs4qo6KziV>P_>Bku`6Q(?t1L{8Z%@I?ky6 zhf!|rRLF_Fs7_Aprmw_(RQ-P~ej|P>ekXn}?iGI!e-wWbe+DuF$jLxP0vQElG>|bs z#sV1!1TDk(GVzxTt^UZU{{xg%`8rZf(y9OH|2;<4^yUw?4{o#}O^kLR6EvC_ok$a- z%aBK3Kqe}ViSmv#@n+`S*ur=ilEjD>eRA4}7JW(sNn$+G*hW$R#-kPWKNS&XMB9N5 z#UGY`Xt6Pjb|BUBN&$%&o(YM zo?|@Mc%JcmAW0x8Af-UixmpZl36Rr)ECq4~kTZdtRc^d61JO%`t;Wl#Phwm_K`QG& zdJY9C!G~|FKFMYOJ)Hild=leo3h6aK(BD;k660-(uWejsyu(^jsA0WlkVg+SHQT#_yl?- z#z&2h86O975s-_4T(ZXar0SJi+MHfVCTpT~{YB#|D!DKvgigujb@o8J=`G_YRQ11Y z++}>n_^$CiBc@ zQ&!!mW7R61>c92BN2&h-r{s6a6VzNcRq$j#Rs9EyGmHmJ1jx-mik0_UC{L`?iJ4h9 zi6#@W#DtlzblPMFvbupRG1*N{g(W7;u%O~!gBUZp6_%{c!V)q~YcOC!KL{1SsilI= z+v>beyXh!X4k~`r(WW-0wx)Kb_NHS@9ZbiXI+{A+^W(`nAa?*kZBP#6P9S#yxf{rO zAol=4_TN`->Y@VF)J>dX>OmF1sW*ivX1ulBHQA^HquVsa|L}hgrT;3$ZyJh#HVp&v zfCgyO$p~oENJAcd0okB<*~&Wt+N=R(ylDc3b3TwwY12d?n;Qz}sispAmZoVm6s3B9 zwP}X12gp{6=qyTKOaGY)O>`KR_k%Z6j%8aQ~2}<<hbVh>Yo*<^*mMr%(-PC^rlqDcOlO+TGRY<|Ei;{M zS`OqRj`A+a%8%h^63^JFI4aeU8}XGH74Z+Z=W9)P1H6s)0ZXqk(vh0&|lB%-3rI)5*_o)4!{lxYSyH(6ob6>mk#_ zrbmFh1>|iYyACF`o;B@Msr9@oMtvC0rywR``6U>5+#2IDrVj+ zBDKr{kZ;pw^uTcSwn3|}W~S9~F}GJ3Wp1Z1iY^VvNNF{OTBU4u85$|3DSHV_s;Es365W z)_!2^b^d@RZpyq2)xNpZyvV%Ryu^IEd8zpf^O@$e%(5APm4I~u>jKsdtOr;xus&e@ zzy^SA0c^{1^Vu1so@YMae1RDgRpyH+Ru9u*wKcG9fo%uuvGgL_@xKSxe^rEHzJVh9 zMqm%GK=v(&Z1XB}n!bQN0@zlWcSLpzsiOv!b>=dP>^p!xGHosg7T1v*ruNsHF{4G1 zeXoM-qbV@axk6;O$%1U*ur~dVu8Qof=7*^M-)7!!eh}F9z#_yt91Q(0@mlAfHb1A5 z>sf_do$Bm^cGJt|_b9nuF~4el&HTFg4fC7kx6E&wcbVTYzYA;*uw8)71-2`&dBAo9 zwmYyrfb9uvFJOC@o8Qln>tk_>c{dGL%zG%gaGg{0so3Lb_|Ix<(d^(uMhTfIW_y4QB=@7GmL$S{4@A6VetQ*oLk|TTB+K zLM;p02s9e~5SA9K@j_~4S;lp;TE4;Jw)l}z7LUbiL5)5D*nz+fIv6=$t;a`Nl-0p~ z7F-=fV>P5s!L^%?we&!b%F@x&$dMzhXBAucm60SvSHK6R2{~n9}d5_965~*RqX&J9k!!nkJ z8|%#bjb*g_Xc;91u7}XtxV_qpPqIv*#Fz~1gtTQUu(&+kAe&>EVL1(nVVQ}c20Mv{ z8kPcK53rLdH)?uQtX6YmnQNJ^=y^+#f=jw;Z7EO)g|}As!Zax(meVONqn4N@Zb?{@ zmXxK`vdFU7vIN-az@jfW16cG0gTS5!Yyq&dfGq@ec9~^q2A6UMm&++GLpogIN^}J- z7aqc8)2}{TuB5nJ0qmR#T&`3+eap3CdkZcXp{GAL^NuRJwKnHBTUJqI-U4h<+JbJ= z{Dva)R?9ky%-bk3F%yEwyn`YW*P*i^lc`YI>n(~Gwa<}`W0hzlfGT#CA^a^CYPc`N=%ZHetSw&MbES3r2`w{pB$)O?h zGt1``nTV+~)0QuQJ*%O}{KoRV>P%ol2b~F-A`CrEbS7{ayE?+0WRlk4FP7g`oryK{ zh|II=yf1T;)nK(CGOdi2SXnD)<*kBMv>L4@s~OmHfIS!3^ME}c*b9KY5ZH@=y%^X_ zfW5TLYE_YGm8?$VG-0FFLy>uz4w+W~yONFz4L7ejgv_Q#ruAqQmutwhwnt=I zJ~ZUf7lkDjqNwi`w%nRyr6ulGjCrn1TQTNY(Lh{Udsu0SyRh5ZOTpz;h%YNT*oe!k zv*6N%nUTY*#E;gKtOFH*S_dcqy|&ID&;UBzIst<>>j>+~){)jx*3s56*0I)c)>EwG zt@*%S59|%VViYFY+2fR2C(G~MK)NMBQUMYs4s9Q^#!cwP+#D#?7o2e*EapzRz>#3*2^)DvtDAo z)Os1P_W*k@u=gpM5i1tH3{h}(e{(G3wmIp`olCcmnX*nAu8qPC)|*w9-K4N=BW2k+ z3Qe&;)y;=?(^~62lx4SCZ?oQRU1z<+T4pV`-f6wddbbscu^HGcz-|S08?f7f#pKUJ zz&;G@Bf#ze_R(_dy&0Bmux_+&GL|9Bwo;ZoreoPtz&;P`PNmceS@y~ymi?nC66-UR zWzPcpcm>OLQkK17eUZL^eFE4gGw;ZYo6%;np|kZmux|j1 zqxu%GII6pVMVIqkVBZ7wePBN*w^quX8FAR%|_{uv{?5GS*Y+Y^LkYG0S z-*%^M-GTkIfdsSlwjGD4wDqB8>@#Y{Y{yeGwkNw8V@GHW4zLYDUfBlP2H6G!i=oPw zz!2Sg6&%k0V^$W1Sme~qbYh|0O?t-x`pgh8$sUn?^tHB*I zEaI5|9*h3@ETnBQr3R+uey^a$8AuJ|G_k}u%?31Tr28P}1B+R=y;4^VDCgMDqtw8t z^slrHqf*?_-Jm?A?PA+ylp2>%Y8+6gaXC_hGt@$jsak_8ZP%&Dyp|%9BNUk!ZT+g; zS{pKNv6WF|uCk?Vt8Hs+Yi+mMZnNEPTW7liI1V@-H~}~jI3sW-;LN~TfU^Q;E3=hn zkhxyX_So)6WOBHWpdph(U9aUKIqxB4HhoNO+d+}}C~%GnWImxFQ`rUMQjobodB+^M zmLIo0Z+n5_awl-kwCzRUTn)wLtF|{NE?+}ja&85eZ&F-(YQg128ZO_nDZbP`8~Rd+ zOAO2R*sxj>af!FqhRe@vKTro`kL`2Y7q%~LU)jDkpJDsf_MPo}+g{)Tz_kFbC2)rU zcQ|lI&>{n_6>zPAI}*5~%56Vp!1;?f#rB)xfc#0}i7Q7H@N7#JCx;aViU-2w971T* zBh+q2gxXPM;Hte^FlM(aZUt^2-%3|-`qDJH`d)!hyVveVgxYaR+okO|)$JRIQ2XKb z)>H%Twzr~QJ9i8s&3=@EG&GUbk>=!%$sp9;-rfj+#Y;5r{fr^4Rd z-b+#4_MQqwy3{GSCiMyS;YbntiS~Z>lkENN1MCCsgY1LtL+nHC!+`4wTpn=Ufa?xi z58!$N*9*Ab!1V#HFL1||+efGrv5yv~*vC?e*vC_fpf6KFk$wtA25S_V@ZY1zzbe~g zFQ9Ci1>6Z0YziTp%#-YM=?hpi)hA}&(GzK_0cD{*O!-s-+(~JB1i1bU|ES! z$DNDFrva<&i|mVm8wlK>ntW1@yRoBdv+imt`_OtEF?dRCfwVwyv z5a5OahbSEm+z8-KzKw1jvtK0cvR`7q6o|5cj2lU_QQSD-PWik0+gny_htHhIG^n5? zRS>5q)z!C4p+)su$Kp9mF+3g}x6QY%{@LJA93KdwJUoj2w$}4&?AIf!?bq6`18x*> zqgUH+u-^#W7~sa@@SQrl2sd;WEyNq~tm{NUY;Gtqp%~BVoLC$#EGX7~WQ~2T!M6&> z^mpyb?e;t9bglz#eA-?H9M&OJ{jsS9$wU}WE-Wh4Zdq?v7Xt0dLLfJ>&WY4++H9u_ zf%Yx-t@ds9?e+)l57{5KKVsiuM~`DNa8rPr3fwf{rUQ2>a5I3L30x4k)5`3bg+O~| zA<#}20=WX6Vky+QhV%Y=TIHV)TI_To(Ebi^vno^tT?n*%Xj(&G$|@jcq;M_pMf`#` zYQOd>h8N3GYZ~5Ct-*bEH8*8f za#LJUo%d-s9dOXIt{esj;~);!!8v$`;1C@~2L>n$fGY-WA#kYd!oZ=jivkw|E)HCx z%#k_k%Hgm&9Zq4R!%cCS)Zr4BvR49!OHn@ncg7)HHoZgWpl4k;dj{ z3eB3hY-5tN9nOw^4)v@n2O3KZTFyjdI(jRJ#+$1nI)hBdFb6&B$}!wA!f~==q+^t0 zv}258tYe(x6yRjw0JvqqoekV_;LZW=T;R?F?tI`bD0Aei2~)>pHJEnLv#z)cE7GOh z#X5y~#UWre12E}PSC09>T~q-~T-#e~$W#BXxWE`Fs{d&U(~)qbC@_=2U6OW`0*8)E zgA}IYbjO(#m`f=zu?_)&c@_nxlCG%%FQ-?ln{b@tIG-xoeU9@KSYAnCiNzYfD!0}K z%S#>CQCME)xZH7t<4VU0$5oE29V;EzIIacmD&VdL4wc?Dz~Mj9Q@I|v8-PPU<)$*n z^=gdZxLM6UI#yFy-mFuYX}xI2Nn3%I+1 zTMyhlz~NZjSLXOQgUrt|3iC^f%=>l7+@RB#TMr?#8IVag13G>K4oguorkrjD#62Mw z(wDL&=c62_~W8i-5DEZGoWl7(u_%~WGbcB(PAWH;s9*bKxZ zkA%r2)R>Y_!R0o@rG!~()R=f{EgDlgLh69H#FgaM(vi|p($P{IsjbvbYA+$kkWvo; zhm?8*xE;V@F!UI3j|2Ava8H&=$Et>0$}yiPIwbQ>Or96=BBr9-f6 zdRR&)AuOf-z@gGoVJQtlSW1HpdGrMw)&TsOc}ImgNW;lUX*31qDBzw;OBkX*-%wzV zmnJF-Q<|VC%$*cqSon7_cn05fWtWO-7+bbfo4iI=F$=h&G#yy ziCeWRRuVrw1kGlE=J^zw7XbHu1vD?F(7eQQEqwv^0j(QX-w~SKwJExIL}`$hDcv9`X-YU_0a|9+vV`$4itMfkX zrn{xBn2wg#OZQ0kO7}_kOAkmJq>a)hX|uEiILsz|0o<3seFYpkE8hV3EpXof_dRfX zf%~Cc+NK(G>0xn-w1cLjrN=2gf7F@ueM&mIVomYDe-ESos&usUDupvDoS!P-{3dk( z_DgTm7u}n~VJU<1j&Sa*0p$bfBMN79@qS559|K22@rGoXq|c-;5SG#&>H=U11iAoU z3VVRVb@^=3y!edP;P=u`xV$6nm41+Z1P+z|U%>4@h&$J$znlh@PX{QUcmw4V9-)9d zMA>WcL7alqg?w^~PNUQ0G&?O$tEq$2j)^PD=>(nt&jQZ@&jT+2F9IF}#T$V)0dEH0 zQtouCd~*85Db5y@PtL=UPrS8~PduLN*#UT5%EhSm2jKnxJwE;OiCAYxB#E;V@N|os zvP9zSf+R8R$J3qgMfY~%@T>0?Ub3^N6U*1r&R)Pf(#}4>V<|<0DB?W9c@iScc_LDT zcT$Qt`y)koT;tD15urRo5$90n$w(3BFz0aR2;e=ydx7^I#1&9yzH^d75hs=^AVmU5 z5hteJepO_zjUuNy=TVBxaL#lFou@eqoU=@_bG9?&oa3Aed`sXD1O9N}j{v?E@U7|D zPW+L;9|io;z_%%P7G)^1&{^UPJ0nODbdi8>tD^}1vor8Hz~?Cx>2`=BP45;tWl9kM zzFh@HmMb2+^IU1L6SJhx0N+0Ij&|g54YL+FMe(*`FVGga=~=-lMo?A+qq>fGks?tIYskn>^ZBf$3r9u-b+;8Ef9 z1^zhTj|ct);7^Bv#^R8ULV59l(lGUAJ#;Eg*0)%Qy4^Qn_A13Etgeo)%^Iq-uUO02J) zbQ#e34YfW)6zlUnwLU|$TOaW!4VU|zzf(T_;{4V58}P${M;mnV!QfLy02k{L6gIhd zg-xRJBUcpyTV%jUAX94^V_bh%t^m&fIG`G6k-{8-?}0e=ec?{Vm#cgtMpgr!}mwx?>uaCJkQ zBfNy3GQN}tOQBc%o#Gp7%RR2XuH%syF4TjxsZ6T#@k6+5 zdSA$uq_|80zpw(ASbknlxZsjq%P20mmp2raFSuT&>heXZF3(Za_+9%GElfxiOyD}i58=EA*v3M%)S&o`|_bpA|Hd6iCEuB6A<;aRgZxpKoH zST;Q@-7Lb=%>j>roSIy5iwH~eDm-uzUy5&wXR)A%OS3N-n7Hk331R7W0Dn!|jj1#Y z{TdWEy1niI#n*1PU(uG=A->!#6?|P^6JJiYgVtbc_t6S2-A5_7ys^&vw3|A(yCW{$ z$GSVZJGnc%bKG6rx$ds+Ja;$XZwCGr;8y{U(dTO5*8qRxN@eO5jW;&XS!kJ zRf)@q?#UFF7$TIX-BW=)g4rEiB91@;P0aNDo}8V$${#6&&joD(_gBR&v4Im zt0!2wixhy~TjvjG0FAim30Cf?JLZnN6YiutODejD)H%iNh0tlY91{V$T_=C4r2eyXGP3}i2E;qZkxVO5uxwpF?bU);N z*!_rm2k=h;kKPF86VV%a4*2JR-wFH+z`qFmOJ(lIGK%vl)y;G(*{zp#xO`RTXTEg^ zm(767w<#`n0grB5#-P7fp*U+ChN;c?ZZ|%mIqm)w_}9{I#MSE!#pPG-Z&k(ljiNZ; zp!hQ5Ccd0(1ulPfs}E{+|DxdX?KGbsU^g)bzdQshpYlZt(d-_t{`E_>PNwm#Jo|8O-FsJJ2?-}43 z2>iFee+T^c2XWEcGs-hoQQn?03Q2xIl6d+mwj{TMF5Db-0 zg}@)8Ml(>Olu~06@L1)bDsRu}NR7Ia1fFFcJkKiaIU58f?KuYo(okYt;JKI*<3c2c zz$(PJ1c@PV*@+RjQDfo?kFxr=&x1kZeh>tT%S-4@^w!#Nd820?DsRtCo|`?lcvgAR zp4HZ|p0%D^J-2yo2f+w}2?R3;77(l;V92=&1Um>05F`+s<(@k-;JnLow`aWr(*~aV z5T1fd2Tuagw}@;+6)NAq*dCp0|cyj$sqJ`L?}KobRE79C`TnMQ{HdJ zFKB>y&V$d!Nqe3L!JGEH00I^gH%xWE;(1+hFFdbN_d@Vfq@iPhNDI_Nnv+D^^lx7! zF7v$S!SeVup7%W;cs>N-Fc1z0;Rt12%!7|Z8KMBCRkI$|rj5Z@9>r7I=RxlRNpobK zUD0m($!nmb`PsA2^NZ(K&u^aJo!dQsdj9h4_Z$G>Xb{?f&=!PtAhZVowe|5JbO7O4 z5ITa;socw`r1A3360b-}<26&#bk>mu&1q*4dT6BSbBHuePa1CkN#jM`l%tWxdpMHD zdxSGWUm$d$)iLTjdOXKvX5ZV^ix0p_dvSKVroA|CxTw}3+ITy8akn3)*}T{w(xw|? z&D&L>P4_IcF=_|yczb&LB3rz@yuH1BK79fgk9U-Jw0DemtaqIE6z_O%zITFmA_z!`6F@i-gnl5L1VVoh27oXSgh3z-F7r;# z@MF67RD~Tu$__;-paG#aWEcoo&aT>%(TAwf4Ah{pL_>*jmKT@#R(oaY@tjOO9`D)I;~7c0QNwd_@=Tll zsyWe4s`p;#y+j4*#R@>jP=KDTFbjX97T3qS!g~v9aqm^$tGz3|*Lbh>UT1#GdxQ5z z?@ivDK^OVZAYeU7cMv9lFd2j?AWSXyuF9Zvt+3U58;x7NcTk*8(`j*B z5&r{(S(&(1m~#lK%>dO+6sns+m|g+ZZPfKS;C+z3fZ$x7nt4Yp-bPbTk9nVm3^Mk4B>R59!7ibN>=6#E5@z=d?c;5t} z5QNzvgbrfd>ix*OTP4XS3Q6YHDYz!}m)?DpBwu;I_I~62*883Jd+%QF58fZWKY4!! zp$LTeAS?i(7=(o&puz})fR-}~LJWj>x%Zb0N&YZC>HW)$l<^rTNfJ7e;KSZ81z{;& z&7!&;SHG#_*D^nxj8#23GE^KYOcaGn@JXvRKb#jX9bHsXw6Gu&l(JOe;K%gIorA)7 z*h#@$JS3%c)}I(rk}8T9%_^pcq1619;)2EDWMasoM5rW=a^QE`)ch6QLqWrH=EOsZ zp!Bb*tn)dLPd<$9k{X|UZse2CW5}Z~5b%J5KQr&hCpiNY-(kKZkWW5zL7jqYQV;ZvMz6>>$T!$G#5dG8%s1RO!gsQ7q;C`mm?~Hf0;USi1>rmp z&IjQF5H1AaA`mVv^Nmrd73G7L1YyEa$MQq;G0dU5dz`T z3Tn)wrpD!)PhYg$RJbhjj?~ajVe>_NF-i?oidUq4aS*O-C^brb=un}l@gbQoU|2yB zwp5`8R%6sKHO3(t$iPRBQWy65&1=(5BYYexO_yx zB|Q?s_n3l9T*Rz_OLm3^v8R3Ng9ClfD!44G^FHmSmwoiXfxcIKulio|z3zL%_onYH z-`l=jzIS}@f^a7Y*zLPPSP#NIAlwVWeIVQq!UG^|0AXXfFZ19)A3iwHx0|}@KKkH5 zVUrG?+h_t^z`iKUOTvF}VgBFcfzSsB`hEdna|M{`g9Ckk`2M6X5VnATXjR@(%^oSW z%s|D@`so=Aeh!4~X}Z-r}vxvHUzYvp1~ks<-oqxetHIj@G!-6O+fQetwE1J zfIf)d>-YKnAYlIWQ4k(Gh(3t_D1Tc;)BD>fjG~1Ee!Id%l)X9=HK{xLd!nZIck*}k z=lHw$bNyZYdH!zx?*1MiJO#qjAUp%YvmiVN!t)^P1mOh`UIgK#GJh{s)BBH8eGq>? zN+n$(fuJiS5Dpa*WDaMHWAxEfK8Sx5lEXh5gjY0j_{UKnWF0=Kd>wrlGp70Rshaoz zK>@#@&G=;hR7#8~AiS3LPXnQ$g#`YY{sKyjASK2d3NdC;VkpV}8u)TDOSJ~)`4_0T zoUh=L783X|4}w85-dYG1*UZ-DT%=8JrP$QNmP zU&MbkMd(TpKC3|Jb%;>Y8uKdC8nJ{P%!r{rzT@HYl?YwsUriC32I2Fxe+>v(|Cf0(0lzGsOrAYf4?7ng>OLk7KHB(rs{sk zuQ*Zr{OEX~lfJi3!8NI$^1nh=_tXAo{LlKI^FQz3>3_lhqW>lT%OLy+!cQPzRtARw zttWErHxPaY0aK8Fmib@Ju;We7-R3lM;~mP4zbd&Q61q-{kGsZDQWOsnqZx?t1trFp zAYk!^x=8E)28rSS*8d&8_JVK#M1%6q;1{Hx(lBYHHt)aq@jTJA|5p&%wEuSy>56_s zj+XH64=@Tn0tQMCkw=sTSV|8O?L!TEocLp=!GJMfQ51N%339$r(5T6?niE za0fgAZ@?Gu2Lgc>ftG>80*8ZW2GIhd6+|0|b`TvPN+3Exbb;sw(Ni91r9w1tv^XWu zmb&VJV-TdGR|ir*b=AegGp@RL)PE1B|0-8K&lTxS$_fp{dvS93kH>h1UuJqIzHHAzkj6sojB zX9#I^G^N!jg^t*X>U7j@Dheb}=?CTq76gg|3j-yAa3B(h24aCYh;2b^2e>0dM4})w zjs>wJh@C*}3}Q}MAemv*V%1*{oI&~2MaL&xe*QxvQ_ue%ng02lVc;Ulkc&agtzgJy zlp*_#)6M(w3*cuhY1F54=7&Lz5serh|6Ae-lyU6p1^jh?(YrU7q~z0Kwv{)V_;KYb6`tg zYhW9QeL(CB;&C7z58??Ro(N(;5KjWJKZpZB99SNBFaypVfky+6(T!$-Cn-D!>EJm8 z#FIh9^YUM!7savvJ%s+d)cxxe%x{2*bs!mak9F<1){4RB0UCVXtOTF<3|L+88Tc^p zF$MESAP!9jJ^^u9L&3Z!@TCf73#67RDBCRQE0ZkG=DbkE&|^KM=^? zx_g6wZ109V}MIm~sip3l#8$%B%1ar!iwqWk{Nj+7?(x*VvKc`2#d0~+X(I2Cys#toe zilxEqgFOrNoyZ|V=b|o$sD+wQraxKVMd9*Pnae@QrM{D_EbLm38=~*7?@e5usXt49 zw!VkHr~VxMx%%_;z4XZ65YP+-%`ngm2hGKx83CG+pt%Haxvv>rrN@do^he*n3~!dh z{~btNj;Y1vI7)ZKo94*KPio@w(62r9n7)-W>NhltZ7WKn0=rb z3ngCs21z~PtDmgDhRD1cG~;vnDWJimfTGr&`e}N+BoME#~D7_ES6EpL}=1S09 z1)9mA!FO>DXr@qwP7Q!&Drl|+&9rJgx*jr~OEkUoRkZHZFC{>)s|D!w^12gu+vP1H zP18*UjS$+_W8PLyzXmjjOx|`ri;TA0r&--@pZ-PK^l4E^t!4%>s@9UxzoMsV4Ek3= zb3;!5I%sAV%jiZuRbxO#(Yr+dVivK68yJ6p=Ek}hJx9fDi+(G*75WeLAL%~^&1}%j z0nN>a(XG&brT<0|$qrd0bXh|E16N1=qyA4a-@Eib>3`P$qTj9mRsWlQkN$T(zTewG zb316}fd*F`^Ff0vj=Ml}H)!qw&4McZ-n>5cD{h6M1*zlSTI#sJmRqs7$$TGr^KFn& z8U~D&;j&JVhM^6)6;)hMdZ5KL3bH6|!L2YD4V02)Fo7nQGgv@_3&Em{x4~ghQnCzk zN|t63@%4YX2L``E&Tijh!0dLk+z%AhDPib@mfMgtqzq|8#*j5s8afz`F?2K>Yrv)A zL!em#nukGC1)6HmJOY}fpjif*M?v!#XdbUNbXLeToW!g*oI;k{a2m0>ycU~JP9{J`jyo?*~@5kYNasJQy@j z<_tqYv$9x{M;J!QCf;y~Y~r6nC=KX%qRGSLf`2=@WhD=)FF3()IhuIGWrm4{Nr1!B ztOm`R!)W3SQw`V2Cf+bjR@1r$2d<8Kmf;Rk(~X9k46_Y$3^yC*3e|>N4YwI?H=u2Q z4m8h$<^|Ba2%48b^D>mI1I>ESyaF1WJ723d%+IUo9>W5|y=)6qQ;yX1dM!1*37WS+ z^ER|VLxjHi2S=Wo{`)ng;Zc$Z8n`zK5?O%~!I0qrdgPEHhFCCgh;wj3BC8B*NFvB7 zc3umbjm1jjdBaOcn&AanLt-BLo`r^&OLu?yub zK=Tf0-UZEjiwtim(RIukXuRn9wttS~Bf}?(Xtv6t*+QauSynr~n}4fa70s81AJH!| zY&U#m_}Z|;@QvYH!*_=74Lc1#0PPN-hqo0ppMd65(0m4(ZJ@zG))%1pvdXY4ub17* z$!x>#q?YZq)be%B$!yK{O;S1Zevz>iO2t?Tny*x;7+I8xX0?72J+xlHHLcPXq+*ne ztx+mQbf8syo;h&xueVE7jKGU8q&&L-a-%vV`S&pcvAyHUx~ zGRj$6nw<^yQ#<*LDKzFrzcFA88bijgF~UqU#*A@e!k7fjkD%EFnx8=PGicBd@20XE znqNVKaZViB@72b%0;jQqrkAlJxkkoLgePkHm;8U4z4D^=K;AWCN}3351VXVsR?gTR zG=CNdJsSySyJDGqd;lwEVN5}3YY08x*oO#3H|ejOu`g&a>QEe^7aD1Q(KvvNIVN}P zS!f(Y#vC&a>N4gn`>C*9Y#fC)+&IEG(s&6l&46hROpC+l?-(Z<>fcGc8FX zgJfyp*y}Of#wo@dNg`mJYP{As&3K)0x^af_dgBeonZ{Yblmepxh5?2Jh69ENMgT?x zMhlD%7^&KLQ(hu-g)-x<+)R|nJd_AiRwEIn4V26S2J>PtEcOd9<|9uc|5K|6;{&9o z2LVgX<=4T+hh;Uf``NC>rKBUuetZ&`qwpJ~qg1>fH?AN(EeED;&iDi{n66Nqo}MOn@0r%9ryogAzFK+;$a+GvcaE&5)RCvB|9<^o#M=sU#=n8_ zt0FNqLy@%m3lAybLz(mV>sQ*slw;DESd@qf&1EoWLUV~(B1K8Wq&1bv5-~}#M8Zg# z3Dt)ZiPRwxc1<2OQ+tyMC1TQ>3?>vu4461DiA5%}ylh~S#7AQ#<@|HmVDgx}vQ|tL zvR2X!z5{jmVN(axiYa1>nqsE7DPc--lTB$;#*{Tx0+R&>+YZ1S158I?j)jtTz#Iom zCtx}Qb9}Yw7)2|lPMTh(q%FAVN?|h9kikgziPD7&xH3I=1l#8IXPz<0L&@HYGtr#7?Nfhg6be(A~No2ZdhUt3K4W^lCkv_GilM7^t;GVU-Eypw!SZIW8ITLzV zIa3udeG3v4gUwF&QcUT9iF62UwOl*qFr5zKC= zOClv3ReSuh={1tbdebYWSAiJ_%phO}A5Mw9ZIX*(?J;3dEcCdjyn^XjSt2<0`XutP zX$MJUtLYQdr>4(L+f1LEzA$}h+HU&F^ffTUfw>r%5x|TD2A5@{fEf+U7+@|12F<{@ zYSTA)iR?s){3uK0XOc**@(RplvP7;_C34M?H;epFtzgXPisj6>x}Kn_$=s4Aoc(w{ zW)cc-Te$uZGYiX3VV5nI8sbQO;Zq%;I7Rebl_1 z2z`tQeLyC31rhpS-Gqu)s)RmcUQ4EXm3g&!4KPc9!I!Q&oThud8S}AltzdptmdGO{ z5!~%Z(~V=VPa>PlACp8jo8L0OZGOl6uK7K&)ck>Yi}^$IN5Cut=22iC1LkpHmIJc_ zN-SX1)0fSt4JNM4m2OrNm&7huOe9rz+$KEb{RGfeqhH z3i%b7X9^1W9Tn1UpZQOED0h#+$_;Xh;aRnmllg!J4=Ls>xb3heXK4WpMp%oAJy}XE z7_?ew(U3;gkwz>WX+(Cr4??Z1R6R~>N$C?JI#hU@JNBy&%8{0d1mz``QI^q`F_ud$V=dz><1G^` zmjQ#88}0N~U_JrnQ(!&=W*ab{1M>wiUshQr<)OSvNh`HXAt<-kg7WK{v{I%ieWEd- zoJ~;90j7{XVZr-z5XxpzdSq97U%st@@=nX$1m#`8?8sTrPyMD?DDSr{A}DhN<+rl6 zUQE{dyE>sPYaUX$tgH37DUO`30EWz~G$q8!&r-`Mt{WY@W*(kIGUN5z8yYB?g}g#u9I5 zcr;%^ggMaUX&-t|+d}6IE$;*KXTey~IYZ^pELMP`@Q8e97F~%NF1K0eoS_Bn%U?MQ z?pGF@G-26cQO+4!2ufi7CcZHGf_&AHdr-!`sB-zU zeU`s1`z;5o&8*F>EvzNhmcX_Ewgg!GODkYYfz<%Z0Luc)0n1leOBF7yoHB`9wa6ta z)NsjaYbJ5FbrY9|o=Yp%htFBfz=|rDRvU8J@I@fjaw~2x=ByRK>T*^eu((fJly_?l zS);_)b}MeA?g6$8`O;k@&&L$z=r?HezzLTO9yPw(;88=z56kmqOWZ3pbpz_tfg53GT5%~&I_CSdV* zVX3yBo+tAxO)qN?3PW4ZB{tEwRc$6~CpKA6K7_{ln(%A{JgGjZbuh5D0-jW#lr}Ok zx}3{zV^Vn8Qe!r)qpg<`o@0P@=r@Vv}=xq>G~qY+ORl4iwyhChIHAB<<2 zMqTY$r&y=q;>!xwsn%Hfz&rS ztan@Q5xQINwccmF-NDjQ{e*jj}W zd4wdAt|gHy9fD<#1y)W1U{7q4NFzvO6-i_@u$h8H)}ch&nx!y3blXQuEOjWi1<%6z zvh@{`$a-KabJkaZ?NF>l-n4E)(ySZM<7JN_kJq}nbO*2nAnR9F<*=c3hpd*9NG+RXnd952Zx;H| zN{0=tyR1K1f42T&-EIBV`kQr+^>-^;hf{z(71%Doo(3$=F5Q4V9oRE~?GEgjRo1;q zB+r^ZY-npiGC8Xd$76fcEDG6PO%gfu60y-)Lt7cJXR8vi(OJWK%CF{$wHa-6*3gD7 zLC>7c0_-_OO2p={(OE;AlO%F3NyO$MiJVurL`v^cUoc<`%SPOWiE8M4pO0AD(7iyu zuxmY7+LAUrZdheY+0wR*Eo-Z^b+8>{>u5XHh7#)oY+qn60Ja~n{eis@*a5&^1nfXy z2UXefCk<^U85Y=1DP3vnLRey)q~PETqa7Ib68Z`|s)@@+;1UzFa<*Q;4k>Wi2f4KM z<#M*ZXu8><7nHGmL2nL!O5^K zwLMChE(7-Job54Saiv!rrcc;y zwS5BY^}wP=W&%44*c*Yp3E0`d&H?sjVCPoZKFdqvOC{KB+d;y(rIs*mujN zP{nVg3S21OT2RHGWWVY5tdkN~oj#`kyUXqdb^);W0(&2@xF*E4;zD52HY^7A0bn1jvX?6kuidYN_3U9H^Pw7t z_u*Pmy=6^c9(pkC9T80XvA`}-!L)ZqFxf?TL=PXz$D<>9a$7Lh_EYVr5tg`&smj@L z8B<*>mfh`VBVP71$y`4|=Gxu^%{9BUPIF!6dS4~%e0yI7%RVxej}n%+7($$}Ydr?j zev$nW!g8Q}kbSUyh<&Jin0>hYV*3dDNMIiab~&&sfPDhkCxKlF>{Gx#4eT?(uBx(+ zQVgbjtYR?jml2k$YZ*-3r2k8GBVK6YvJtqPMqFM8?3x0X*CUt8?i^E9vpa`%Uuw9V zW1mZ0;;gqWXTJs5XN%=>p8ZbZYrB2EY%ZT8zV4R!dj4R(%9=l^a(Tay+Sd}7n`+GE+jKW5`+>X;Yr27=5jKtOZxELFd0-Go@ow## z5KH^!W>I>8#k`Vz`4;E#3F=4wf&D`Qa|^KVX#qR4c39JsT$&{0lgVk*L(g$^H)iL}*4X7fpTE*%j^T;|ddlezo>xpeqsF0pGp zTspFj6Ol_trK5x67)M9Pv5w;$ogAGV$2(2{b{DWe0sAws7<}3d?61K71}yr#zXSV6 zmE)v5mtBN1I_2&-ow&rU^#YfF(WzYJh&$J;iOWXd5+hYP2Zk5-7P#z>T$=wBHktoy zYo@HolJ#TGa|{J`U(PWc*uRVA@)E}w;%mEOv^uHL zuQKjdmCK0^r3i!La^jL}-e5nq(-g-n;u0KF9oIUhIj(a|cg%2H@3_G+6SxxKS_0P! zxKiLWz%jtFz;VFwzzJ238}nS=tgL(-6s+QKg{E@J>1vifT$?5?8-YuTR5=y_hmn`O zy`)GL+m-4mP+dW_o&uhLt>JR1gCbRqWxz=}$78^i70cxl4vJJcC{o3>mhI)!XfHW5 z%5~Yx61|GpI>+;hy?jpQvMq7>GDiVwFgcQoB=o^a3XpsvO66 zz&Q$B(p5R_{=!R$@uA`cIFBoB4VS+<_7Io90q4p&eg}@y5Q@1Z$MKhAzhW=Z!tMdi zgM2wLz-4mIV}Z*S$))pn=Seb`&J$%W zD~YdDWG*`#%%!wNC9IpXyMpBzGL{`1?51`)$2kDEo}A}8&vW*2p6~4K?88<#FL3sA z_IF+g+;PBl0I?N8v7W_yjTw0sg9;|nsYh< zdL3}xa?TmRon9=Uvz)V$H0O;pp(AX27CPsY?f|ZP-4i+&S7E!|c_;2ZIp;a=aLxzr zEa1)tuE$|Kqvl-bd_a-NVp$^RkVNLl%EGbN<54)PollWO9&s*pE^|KWe9ZZ{(A~Mh z`GoUH=Stwt1Fjcv=L6RpxIV!3r4%sk0^s@q*B`hGtDR5hC9wE_#!p|3h9w@;)0$dQwZH*28$hnmy z@-c9Oa?VeH!_<$Wd<*C2&g~?TFGwPoxquS+iX<|$Zi%!UuS(>5=Pr`SPUjEKAAuVV z+{M6+kR{@z!bq|S9oeWUVCqQzbna8Mg0U-H6^YNK*)@zE?h%4=qbJn-J&@)2+n~FWSFkSKw;NW1w%A{A-7wqghQ6|%c z8M8>{wGH-DJDuh_hsf;e>gGD#b%v|E>rB^KuCrY|Ts?uq8E`sqGl07uxElcPMd4-v zcO!5&0XMtKb#9)_-mX4$Fv!)9$i!KrK;~TF=H(9tad$M4*$8BgBr-1n?&boSW61v= zr7NR{uCZx}rQ_wcV7pxtU6`nzbD?>;CFerl=+0W0i+dm3YyKZpZr~o=k29#0|>i+>Mptrd0MK{BBtLrw`?XG#QJ6!XPGhBDM z?snbdS^(T#z}*epJ;34L?*;BYs%nZiZDM*qw-C5R)vo*UlrAb=<$8eJ4A&Ck6dj!c zrw__*Mz!i@Jlce6BcQsHP<;xx2MVZS?)hTwT~RgreLG*Q>5K6jWcAQGJ+5+aRM_RR^jib5+>hcD;{ohU*>IyRP?udjz;-M$e!03w$2Ap+XoUS^H;2M- z;|>5OkSPAQTPxdex1<^6mdJW@>+&sn7w6?ab9Xy;dz6OzXyBg9xiNJ6e38;{o85A) zh3#&uER7eCFgL~((YtuD4r#Pf??iQ%yL~d5Zm&!x)o7@{pE}Bj8_R-LxufowJMK=n zlkSu|?asKf?n>ZZ0q#}cUIXrR;NAf4P2e^Fw-LBaz-_K_=PQD`J2C5Nm(G16ky)!o z1BW#lW~;k&O_>diK_*sa&$)X5_jZBIbCFDb8@q@eO1PoJb8=fS+3pM6{fSFl=D(YB zW2g*M6pAw0?m_OM$d`LCtqd_AVb4PMu+kmCVd_dw$mz34u z#*hK>j9vfjm8hL2y01m2!ad1-x%&$DmF}zDlcgu!*SM#+!95i?T-I&{4wto`0{0nk z+vtis?sMS20PaiRwpY8SDQ44sy{4CYCOH-En+Q)_1{MtG4%!sqcB)RrPfbq6p?50W zcN3xL{1x&W-1i}&(oJ~A^CsI~X!)6Z$P-gjaCxkT_uLPy7hNl$@ zgD<|0M7u=0?z@@11|uNQA{oHI^d-$k4@py<5IZvR3Mi;?$)bZ@<-L;vV9Ymhn`DM z3c2*8fp4vH>8V66nFB}vNDs8Q7fR7M$Zf%3dpdhgKrTJU1K%d+IT84_#d3M7rz`Qb z-E$hbx;*}Mhv#&eucHsh52SYGd$Nm$+hd_~SP z3wT@?73JxA=6G&Vu$(Jn=_9<*K|!pRi0|kBfy7&j{qM9J_dXo_yq7t;8Vb(Kr>aIWqEVCJZ~;n5|$W} zE||*>wajIwCN3L+%a@4Dmw~S=aQP~7SvFnRNDs8~K*`JbwuZ}1p0|k0&A=a%^Sljw z$6~pB--9XXWG=VJTpmk&eJpc%Tpe7tctu5Qo99b~%P(XuJ2%)*?ewkZH(Y^vzVm$V z+3ESg^P^`MGtKj}=NHdz&#%Cr06ZG{lYl=N_)~yCmCp9^U4TCg_^!ZrtM=^4!?~C1 z=-J11MXPy$@I>ogz_UA|G8CfD!o}vDMtD`=y{4_M(<(Vf{0cUQu?fgi|_f-nY?r(1=YM^ze+y!^t!k4EZV_Pb;vCQ5y@*4b*Q}`MRoHxy7dZY8lFr2<87-yuJLo z@|y|D>E$!ZuP?u$d}jHq@*B%N<%5YnL!s4< zT2L-8e}bS~0sNJ@@+X1EG7d%gx#iE4uTiY^YS~&(CZo4bw$=#TznAxAC1RTy7}eSiY%zbNO54ZgSw3genZ>46g5_r)@&a$938|1AHDxZDf;oLu=n;4ulJC@w3SRg}nFR#2=8__@ee zg%WnUr4BCJ@6IDu!Byb3GZ+@A5M(YX|DpbVYNw+rEXZX=n~Js-?JAD0XkVePFjN>T zOcfXnm-uG9CPn!$wa$efX&1mkb!wU#i1C;Xl)l zI$`u>gU1dSI=H`Nt@B588Fkt4al$f#=?0_-d@F$Ox>(o>vk;{q{@Hv&siY#)eROrC{g+hUj+WQL?ohpt;E-N|% zzbIFM3mHr`DUQoiDzJtEuD>d}$Xq@^e07uU<%4x_+2Upuv9l_ADqNxyydU@_4fazz z^{yC9T=uExTX8`}zl#197gh|YxTs=a#US9TfUgD~0|ZNfUk3c6z&{53Zb8cIUbLT_`*HN96J^;u3>ug(%f0bl4m>J&4OMnz%glTzXmL(#rwARpru)L94~O zGMASg%822d}hg^Ew0{>~wdo=K$70IR7=(WgPdd)JI+mJ7>P3H3RI=IxH zkVnkx_EyMTddp=lzihCd+9~9%#2~6S?2UM%-k3M;O?Z>ulsE0oc(cHN1^m~*?*RTA z;J*d_JK(fWSsX9mLp`Gf3E}QJG|-(j`5Dih^zNf?^rK}f&K&@muY`3@=lPi zGw0=LxUsG?|LDid7tf!&TsmDH%QfDqinKtM)`14!gWBnO@2zO^y*GGgdS`iW^xov1 z?VaPj**n*J3kc0YXaPbA2rWTq1wttZ8W0!|SP-}>?`?Ti&Byv8JyBElpr!=AMpJ?) z*B8MR=Pw{MT}+{_Q*o_%sMc-XDpE-`2)IyJb|t*aP$g~G+V-|xi?>T*EC*L?*y0^i zH75T_FP3A-c~^p<&3T^&L07Cs)_9*qzPxKO_$o*!lZD>rN_T)zMlv}#&eif16|wc+ z*Ay<%W7-b_-A&;pUlNy?1gyFuf_y23;vx&4BhS#+5#Kn> z@dWSB#3ia89fCZUSOpZ|YdqBu8)K2o92`!HY0aG3RjachutQ0E~ z_p7gZuJ3$>&t5X09UJVdcIxjNfv&ReLf-)2MZST)LB7GhA-xynAO7wWqXgsugssa~jNlx8(ObfgAT6O^`KY<+WlR4>$bGYF^WeCX<7UPEz2 z&-2}>5ItWex;q)oyJe$!=D|dlmENXudB1NlI?BGBZ=r7y2xo)P1B9N7d=JQuvTzRZ z)mV=5um3om>09P|T#?mdvaHT)@Exebf6Dg)nf<4I&-hmPR{PfY*80}@p7lNFdme=I zK|tHl2ZX*LTmV8p5c-2~AqWFNxTwnaVqQ_NDDH^w4bs!VT6!8>vmGo9Kk~%%-@79| zyhSkQ`v`V$P4}G}KZ$&8m z=rm4Lq4YZuO3`QAEBfeWV5~2D8@099ZhoIXfKd9;#k@S{M;8+dWE5q#{ZW5HhSHA? zCpscmB47TLY__jD7|ODeKl5DrJNS>4x%6XpCHlx$H`q_@bfUjIa_K+Gf3p7+|Ec~i z{?q(j{oVYh`_BMj3J3tgR1mHOVHyZHZ%qeb1_;-Ka6^^<%siJp{pWC4SJ&T*xSUyw z%Ns$MOBaDsOyQO$E*pW%A;jfS5M~v)ycoHZK4eQ{p z(Mk5-|aQn-d~H;g=9a4hg2uI`p84|f67VrKTcFH2O(FW`bngkQWVuR zMJnI-&oo8<8vi^#9=h5rkzRJPN{NAUqBNegG?|a*6N+2v35r5`?F!{XgZ^^lRxV{~lRQ zf0CM>uBE0`@{;peRZTA*d20Iaz2txfB@$pjct({-fG3IcX7^*zt{Fu}T6{0JJMkOx zpM9WppbbhSa1;oua{-LYt|`*+2lN3Gk`^#f&~7cNWMRNux&s6`Z}OnXNSP+3zMwNu zjuHvD0`7nZgy%rO1=tIRQ6hmzK&j#$h{+Op2_+K1FeYjn$Nuk-jymdW;3Sktpfb=Q za7>_M;Ml-%+?GJ+!0~|-0vLl?55g-Tyb8i=AiNI38&DDl;Y|=W0Ok`2o2mmRD-sEu zR=O(CjU*E2P7>K%OCoQ}62Vdc@}86Mag#(2y>Aq_fFy$J`?m@b!Sr`5?$azv50&+y z{7t#7k;t&X#Uzp8AiR?ci~!-?VkI&WzN@PypE?hJOZVt>1+!DAo za9iN^z`Vd6f%yS+!9E4yGZ40c@Hq%yfbb;zqGmcWOBj{+YDwgx^i&Io)K*cSLafH3X`;a3oT0|A#Wzk~3H?BDze z!d?(COunx=usx6GH=167?_}fs0|EMX4WJ^5F1Cs126M<~t}6qhblN7Ced= z6?a)Fd0k*)4>dg0*E4rS`c+0N+6bj*c!y6Kx_kI+p1utqL1LQ%z8>43?7f_ z5Zl#K2ior0`P4zt(j<*TFOA@tD2?D*AY!=)Wxqby6Q#kn2%bw1w73t%_W2g~MVp({ z54~@&A8F$P5DmFte-MquYGYt{t+MJ~p!3tgyl&`qi6C5q0 zX>G8dI?Bs}Kxj@3P6}QgydrpI@T%bC;MKuvf>S`WgXjR!38D)`H;5h(5k9oVUJ!j% z!KryPryrH2;`YIrgr>h1nn7swXuh(&7;Qqc5zw4ZXx<58pn&E*vdb-nv7TmFuB3^@ z*-Dk`ztvBCQ4s6A=Yoqt4CR6kf*3BA%c|f~h08}|E+fd-Q3Hs}R?80NQhl`*!IiR8 z5yWE(XfI<$by^dA6`hLU+Tgn2v%%+r&j(-NCI?>%z8qX1dp`$`{wlLHt)Hc*EbabeFNFOqUj3HCV4C3h^o&jQa z5YGe=XRxzD>;Ym=5YGYe+^SIiY+=aRW*NJWfS~5&xQhbXLoh`KO4RxT0HaW%f^DVmFJ=D*8VPkHjr6NqBZ690K6G|SDTWp5DU*32k{RkIlZjpHBePFvC|dDQ-_Ql2 zexd%M3qu1!7lj6f289NPhJbhxhyy_!1ma*2@&675aTtihLA)5m5g?AN4h>VRcxYtk zlF%qB{~EfK0KKFZprb(?58?z`n2;5};>ct4e`+Hsga;6FApmhy0cXs=%GbLn-CR@e z0*ek741Q=<=q7^sMi9s3LbE}{fL>8+$j~jJ+hu)H(8|zLp{GO7gjR8rLu*27L+e7%f;bt(t3kX5M0DiwBbh3D zN!Nln4aDm}oL(JzKCiErgBwGyU`@!Cq1Q=YGivGU2H8uREq`#Ruco>OjSwCTZ6VQo z2qMOV^K-yf6pe8ycRxLJz8o{bm9|DSUxvOS(V!WhnG1alA|@mhCz|g<=w4ycZD^+~ znj48UR3ipnZmL5x{4*+SzlQ!Gt^5|+6Z##*IUwE);#}D|3jLM8dq=#bk?!7kx#QFh zuMf_TB-|q0O4dpkBSpBPpb8B2zXP=sA8v*5RYVZNhCqoCo3^ zAkGI7S5kL@csGdmfVcp}dqKRfDtxpeldw_A1`AtBB(<^`L^+#5*;x{sDljyHLc&2* zNH_#yAwMA;MTICg4AQis-Y{5uS_x;uc!5qXoCR@FE{sdV#YHM4d|VhyH=shoon?hk zenMDYM2HX8p^y@%iddI$H-*ctGM7|=q5ghqr?bQT(1wS5gnNe137;E2FWif*2=@;6 z3HJ?S;HV13Y7id*aVdz)Kzx+07!)4^@o^BBgSetP+&>TJKxTb-Fjc?{4iZDKvh4B_13JQNtCyGSO069n)C2FWX{B`(Sh0AYbF5hjipUUN~@Ly!Qe+vH` z{w2IS{A>8P@SgDR;XlHEhWCPqgZ}_T96Wk8BfiodAnqVTe=y9guFi8A zi9`};=_IQuf^lE8@;{)JkND*23CI3#6{@2?IdT?S z`N%1eQzKm>r$xF(xc3X2@j@xzvg^TxxYt@+KXwA}-rBae3&ykI19MJQ21S^*2BCA0wDK5tD!JQ%(b1Hq;cq_ z5j`EH5j_L6So1@PsYK5r|j0;H^=(nOU29hv3)h!J6D)j}2M@K4Lj*z)Lp18yV>}b5PYkgdfjbajdRdif* zd~`zevgpL7a-Gi&OuYR_rnvJtqvjkvrWwA~9_Vj9+Bc7L-dJ#-ETHv^QmhRge+IpXqu z(4LixE(Gn_#d7&z^kL#_dvpmx3ECdSSGCL+ZpHtbud){EO|8+#qAL_Gm&;t9+h9Kx z=4YZW5tpl?tD|e8YoqI;&qkk%J|BG{`XXq1ffiNO8?>mZzM#DTwEaNaAG8;Oc0g71 z#N}4dqV>t!%g>NY=0Nmwe7=Mh_kwni z++tek&(dYm4eF=E=0Y}OZqQ;*g~Dd60@=g@ zBQxot@*VOkX)fQezwAuhzGG}uq&vPGp}(G}&_AQWv3pS1=_nndpBtB z0qp|N;v97!UGt_zM=1wdbd(lV$MR*}V~?Rkmdg@(k|cr~`oHA=)8fuNN~B7a$g(Dh zG=fB4B#FEP+6M{}d4(i$0n>*bz-q%SM&#QXiENB*CW&kU?L)a3#*@&EEh@?zdoQ*H zjdARKT97@ADp`2cfYKfEQG+@n6)I_;#=anZd=}dl`y8~@pnU|iOAn_$zK_ZEt@gxz zkoEB>>f`@BBN6*G-i-9|TWnA4_t+n?KVy5_KNZ^-`#ZKjb^x@GgLXM+SAg~j&^`&; zm7qBmv`>NdY0y3c+Evx@=E@WjZ&kV~t|5KIInu}KTKZTk>*IM2{woTj8CE8%{&I)%iYag1x_;x5px%f&sQeYQw_#C`Fg?0m-q z@)Sb36h{1*@rZ5vgQt+ZKH~9s8ubxR#FKH1cD(>vT-d#I81)hF6jxlVxZ+~1FKX0X z;yuyzkDnIr8t)cAJ$^>Kd;HA!S@E;uJwS_b?bks2I%wYj?VF(80NRb9MQgJev~N|# z&&f;Ue8u&TUqHfmyOuECt+g!uut^n-po$Tsijkmwr=W__vMQQIH699=;EouEOXRjj z6_>>)kt!yF_Ptyj-7Bi;fLAr0IC$jv0m}NM+dnUqQURYFpQ5PZ8d((|AYbvRvSYR7 zU{#bgpQ84g5yyL+(e;ntAlvPa8tkWbx;cI~aXB}BOZ?XOZSmXV^Wt~J=g04iqf3Je z@lQbeDQIywW*ca6Hu?gzUxF5Av#+Y+_vE>}zir<*rklqX6PLKjUvOx?h0<=I{gJ++ z-POcpBXGH#xWri%a}x5_dL?ohe@Z`z9?*V6#RZiX!zF4Js`$G2b42E|p#3fve;%|L z?JJJVm*cM@Ve$3k&)}Z#o`vz((4WzwpHPQCQ>N=D^;R+49Dhe)6Ac$GOMfCZUz3@} z&i`J{s+~TJe}z6p{G<5C@vZSs;-AJpi*Jj69{(c#WgG{9RP6@sub}-6v=~+V9kdv* z{u8u&L5qI$zUuhbc|gC@^osA4eTrR#DDKf05IsPqQ`a)@Q|Oo@kJA6C?4o{PP9OvBY#UDM*ha)rnrfS1tBf%zk#5uu%u30W2fUbFwI47jUQL>>; zv?fEVYk^QE+7gtyl7pcvV_wK}nJ^^qxZ|q!XD$Hc<&W9(4GN6G5j1oep#o=*mFX8gxg2 zu1!_q7)3~lPRfQ&f-cw5;V(*+kq*lWU>H;`Or^AT zIbkI6T>iY6F4Z{a#r|2+KJiN8bwya{GoiuHkg!(B!ooLEpRhJ3J|=_zR^si%JBfD_ z?j=7IL3bSJI)Sb;=#B^72~~-$c};E08~p90s1s`` z>f~Amzw41Fr~eNOKHeLhOY8>SNd=AUA%owQ-$svo{p3~ow#MN9oj5=WK|)T+C7Xfn z)FKskhgzL3bAD&ITRMcs)UP4(QGW-Fa0>r^02jTnU9F z{lsOjT3liTw?cJ9E^OlR&@VZYSlc0&MC)>`b|+cxfNDy59H= zl6v4Zc~bHeBr|z3==$c8r-JT+V#(~5?5>cB2}0x>E7MY`KS@3 zOrE??=5hjYDHnX8uJz31$p@3m(M3)^lw6X0I9ZjfPCmj+OD;=3ntUwzIOryVZW8D& z2i+B*yApIbEnqttbXSA!8qiItPOiwq`IM$t@)-(*BE^;hs!r?@luc)Lf=c$LBizwpqrLUZUNnO z#S*$TsT?Fsekxne=|tM+vgMp{Fll8ik5>u(I{6)Xy~!QPZ<61F?gr4!1l_E|7~M$j zPVP}8@|!G?n;IOrI_iBX4Vmu0llzkgQq5A$Q!P>@sg|i$DU8jau5Sk2T+rPDx?4ea z8|ZEa-8|6U0lN8BDMnF8N>EI9N+NCCSxXyt*D~GrHwoj=3nOJgVWe=Sf0rtZlmmrP zx|!)s4`59MwBGqvHQgz1%8$ZG`9OD1E)@XXf+B^HilpMmS1L-T`(85LsRWsBG{|*D zv0LoSBbKU6b(FbG9V2s@LoQPZSy0%u9@CvVA$10FnL06bQtIT?DXCLaT~eo|x~96N zP6yp0&@Bet1E6~lbPs`U3FsaMT@~nXZTm=7s(YTx9*VP@I*+(qT8m38rBHBoS2S_i z2wV;(F45mxR^W0txfBO5TjT(@A6nciXN%k`-&a)Na!d-Vy5~}tg6^?gY8>buFP6)R zDa^#eMOX?m4AIqHj(ka4;;ZE|_473)g#{RJ(=UaS3i`QE6xHd5)a~d`q-LgOrEW~! zl$xEI!%R!fP2G~ZHHF4;CFq_4-P53Z26U@Hhlyk8PhbFKE$G&P?%C?pygZqAm99$N zL;ghSK4SB^T5P^RHdFVC>QB7Ugl8k*xs>q4$R_5*DE>qW%e3Qd1&-TS!YBlIyDi+UYQ!kL&e2&cK%d**gk<8}$y3J-uST&okr8b~Hk$OG# zM(Rz_y$ZV5K==A#^e0m9r#@69vPG82n`F0Nl~e2YCGypgCz1cDsC2p|sws_|c^|22N;9aYcKc|91+T|J*Ie0Oq0`Q) zu}|yL7y!$qal>qDF5Mb*pA@O4bi1@3p-dl5Y9a@HVcI}y`mAm>wY)X2rnD{XLN%rB zX-68jLp}%H7ohu6j!CD>)tL15#)(P)v)*4il#a@>N@GYJXP&Q7R%wGQD|{36$SR#q zACK-(I+M<(E7Kj)$D})^k4+z!?v%#Z^EaTw1qZ6@d(iC!-4CGq5p=si_Y>%Tu1cSv zC@Ou5;-;s&lAhG{D{brGsg1%W>XE+_==%UP^j$?n&!#2RKT z@24YU*w(ILmL8PGO7OWf2F`xVrH6tJivbsvY?2<49z}d@Ph%Jj-J#!!uQ4)Tb-C#! ztg4U+Y0SGqk0?D+=5lX?{nSoZr*9xGuSriyLwaiZ+Vr&ab?NEp8R_dmw-0oGgANft z08%rMnuF8=q!N%?g4C)ijYVDQPkMIf5@reh?=8rsgkf|QO^KlbuXxN8zaj}uTpoHq zD2=;^xpWRBO@YhB$fdO^*qk2uW|{-}w#IT-r7`bmY$Cx}al z#}hV~9*rk+8Ym&3UY*991_{cw1f?Vv)#;`5X7oYQFQ?b1UrE23el7ia`=`=xrZ=QF zrZ<7414#m@45Zc|9R*Sw&>Ra=Taem;bTmlqtJ81g$$U@KEByiaAnA{YO?@pkjpTz! z*1QiQIh*io1U$bXJii4ACr8CiPwyl*y_se;*Q`wiRZpS&+jl}MO5;-v((d$cgy*jy znR02w%v>y%(Tjsf@A~94wBm!33h`9{fE=*-m z^pWX|`Y4;;EJ_d1e$BpoThK@5)XZt9k4zVk;<-#$kT4Kelv|PMo;h3AM+SEhQ6EVp zEz^_S3Mqv@qTis=11DTEc+~iAgGUV=Kdh{Dth1B-9~HMVy)#(ubWx^Hrf=o~kg_0E zg499wz%v8#9=LQ&<9OiTZMbU98NHU|ZA4~RW`rUd436TYa%_WdMeTHH2J1FdXU1m6 zWyWVFWG>50G<3*Zp1C4(W#%f7I)T&~q~k$40i+W_ItesOK{^?vQ$RWuq%PH&eDQ|N zRKtSIG>p%#%*-IsV46TdG~KA^j&znBvqjM~Rd8s8)5w|INi_37>RJ%ZoiwTJXO?jL zvEnw~ppGslwpe$&Ml|dd?Od1XuK zs?0~^cV#{yiC|5GfT2(^X$~m*rs3UJ)`JamYWY8hYWqtr@P(e*Up_-aSl|S;w zgrAi1pX#Dze$V_#YQmXgNG`J%q@l&CX@9mkLYX;$u^(v|3Tk1tMd=QZhLfNUo`Ra+ zo#!&kWCc`Hmd$cm9;6WFcg+iZJTO<7F%Mm3E_HDz1KW&p?j@3~VQwI%CA zHD#??Th^X+WSv=8)}8fa%d-_(^vo^=X)H+NKpGFy1duKRX(C9IK)M{HD?qxkI*U18 zq^E3H(<_Ug2mUQVYPxEQl-HAVwY-SI1-2rl=}lr9IQWFog9fY9&cLywM~>_6%>jERd!Y zDW>c>*vr|Y(6S9|OCuS#QFV9|)y)t`Mc5?RW>@^_W0Mbm5W`T4gNH>8r8>BfP-3-!P zkZu9#*6J)M^HTP@(pA|RvXW+!l5VRtFU^zZB}{lwq;y}Cl>RA`!!0HB>2le-K)Ssk zr3L@zyp&y>eUPN|07!S_vJZhYzgQ_%XO}5b!Yl(^8r@0e{W00R-*vEgmv*TJ{>kh! zB&LX{DkbPO1mT)f<#dLpz<5oxgM)m^|)0^21*^Svv+0EIv z*eTg}vhQZ!%f1iNLXgluUJMfc79RxZAu2v9Edl9akg7ncuFh`Bi)m}yzS&Rd){5-s zBqnr<3r^lLI{zxIAX7)dgQt!>G5z;@64_m(ke@(8WR>7Sb~h@dY&y4}9ts=aB1ma# zCY!xkEZ&vNq6_|LF8en~2zgP#gUaTWEoFsN;sHTa$m2*_CC2*E1zdixLdr_7%)?g6 zSL#qAl|rRhsRap_LQjIU@-RxIvVEmdmPjQAAyFbvH#l&0)b`3CN~F?J>8x~Bx+^`E zuVAw?pUvCt)z393L^ znI?&#NDC6d`!3M$dm~?jRNB-ekwYI}t2_xMQi(AfOxjQ+QrQJ1B8)2=Ll2#$Z57S8 z1&LIiS&3n?TqSy9ujDFm)&6R+5;?CDtCudU>_v;4*H9%3EBlo00O|F*7dK2mg>69P zV3Np1l>;jWf%GOw8$jB4I3+Tw@=`@2V`PbJCW-WswT)x1XK_JNEj`62c&mFdJiO=R6cPhZmJsLO|vyoyZlDjy(r=b4IdMtq2Uyt^~d;RrjKVTSk zY5L~c`Wpm&gBl9;%?AXNH}RPKFdvgt<)vw6x~={$!c4c<-%*b;`eUg61gbyXkj(UO zJ*gB?^;12D0HVJ6d|1NMR6kSyIv&E;KU@D?{qyxN)W2B&QvJ*IuhhR^?0yJlui9RR9F3b`0o!07yUTMMcCgPHP#=z9roux zkA*hA9afM2vi^Ep5)AK1@x>3w7xh1Gc^>&d_0ObzhVWha9X0yl^qT*-{!hXhXoUUR zUylJ6zm>=uhS3HrAHUo%hUgiL`}t|PVI0vjxN$AuM58OlT%e*x-;;W(VUhvEwh*3% zY95|{Av_HjJ%Dx`jxQqX4U-MCQPvx#7^WJg8KxU%7-mj*&9JRumSH=?_CQqvH43QF zK#c)vEKpUXN+vZ9sPRB;0n~)mh8+ZR$gs<}d4}DHtT)skN~tXe%^?b#0PX@5of7tx zR7C2?n?nWzBGq67YGN9x1`8r}tKG)0+G;m)a)Q1oJURIw=j6oDXmBA+4NjmY^&8wk zZCxr%{RZ@FEjI)ZrWAq=VY(;6l%fj4lp1qt8lig`_CX15m}i)8*c&JYC<##P2J}!F zq6Sg}0$C(ZScIBPSOkwuf8l8_#v+}DWrRh#3<*QG;Xp&u(4#uc&}Ud|SYlWT)Ks9R z0W}?{89>bhY8z6^f!Y?RSwL+E)b^_l2c=l#u&O%@NAN6i6k(CsSuC<6v4^PL(kxOZ zvdDU1kuwO3oC(wp85Y6gM$CJdv|#*Sxr9ziPQ*C1DXvXh9aalCa3Gg;`|u==1}xG2B2{PY@&gqBDhN~) zP+v5aVAVPKW8 z8!!?Z%V@2TlMhgHh)fc`u}VZ^N}?N`MmMsB(FN3A{YG5ic_p%iF<{)27%Lwcn|QXE zj{q~a@B(=6d;v^R2hXsph7_X3#c$qZ9qkUiUJh_Dh|{FpcW1oyHW^EPP^FHiwIpzM0fijLOVzZ z6?Gty>pp`>cjE%oajea-%)aAy@1$eIH;n_pr ziKnz^jN|ws28MC9aSegz)y8X#*BY-gUT?g?c%$(qwB z3w_RruVeD@MOCH?{uw_vekI`YOCFabjG_3rG?>>K|3t&r_`UH5#?R(n7VZ^ErVB9t`kFxBt~J-+}#x41h6 zHj~1H?Gsm+lqQu4cTyJubrDb(uP|Y6#Bpx`h2`EC;_8*lQMye6N?Zwi=#rY6&#re;$MP|JZ@0n|#ME(hugpsoaJ6;M|JH2~D= z0aL1MyeU;S-bBjAQ(55&)U{-Hn3CaQ`G|C|+z1B3nMm1q6WW5A*aQ zggvVEO)*JkYiL?*B4y)EsG6_qH=%02zElo5)I`e0n+_ue#tp>4Faa?zZY*eEP@`6) zA$FYUL|%rQPT+A#DoB`6zoYEOp+#&9)9I#*P==e%Fr8^S%XGHs-==dWIZWr7&Np3P zLLOTK)U80>2Gs39-2v2{Fh&E^T|nIp6bkcuSDP+Q$?*OOCesSiy4Q3CfhPuOuTA|! zJwTe1QjhXw_0h_BL9~KL-U>F|Oc09Z;QbjHej6fm(t=sPkq`0mp%@pw2N8O&31jN} zP4@xyV87`BpdKm}p^umzCkTC%AQXcU5TQ?C4?F4+l02D*G>TrEM(A@U4Ar{A^t|Z> z(~G8;OfQ>W0qQZJ9tY|Ppq>QkDWIOdV*DeBqBq99VR{SuUyVAIz=(Q=xB)55Ol~Sy z!cWU6gp`1Agu51pd;F*>h8O>#>TQP($R57e_T#=m^hh1g|kOaR6NamMzIw)aGm?VWhjuHN)yeQWxTtj>RcdcGgK zNsYm6aN!GoGGX{SI`~a^UWWSUMNCOGJwcWN7bI^r(s%#MJOTBQxx!p&9%UYF9%CMB zt}>4^k2h}t)XPBO!n_L9Ye1n1is}_j(6@kk8>n{%%v%a9Z{B*^#b&B%jhP_~kI@Yo zhW~)y^M1-N+&?hPVdGnD=IxN%&1ibPm*#f!j>zriohF<}K0v)sIv5JyxaS>vaca@c zHRd{ml(`nD5BtqBpm1kUlF?>XnY9Qpvzjpc$Asa{I--(3DX5a@it*LIP-D+cKhk7DzQ=2HZeo=i|mR}MQkP3l?ZO9)EO zHvijvj`>{kdFJ!Y7nmbDFRNK$p&q&Fn?(N$ow(TlYyQB^i-gy0X-e) z8N{lmX9B$q(Axq%Yqj~)6ga=Ey2Jc6Iledlhrn~YEO_Ek{_jAi_nov-MCf`zDCweO z{tIYwI?tzMSx6V1@%v4DhI~kS%h3;~zB355Y+)f?bSx-ocIdZE1R4V^N)n%zY705s zvrwqy>79s@w@A>cr*|%F)mNnvYMEx)4y}62bju9OOv^TwZ7s8a-WBNGfZiSGJ%FwO zx|X-iJv>c=zzE#C-MeQ}$8-4=g}%`7sD5@&4E`4$D5^gzp& zPr3-($D&D(hJ9gU-J-V`$m-Mstr*s-w^%KLm&w9=nP?SS^%e`eg4tx@%_h15HH?Kfo9M=Tq)}t9 zOF!@g%PHuQwVY@<$#OE#E}-2&dsbLZI-!G?O>5Jub&YaGjoL1^)u`-hd5yiH(O#o((Aso%xvs$`mt{Zw z2I1+=q3VTy_vsp~UN!XbwnnAg*3hV^Q8n0gH7bSNQKMJsY&8z8O6F+LtCe;RONkG@ z{2Jl$t$+XVI)zfE8~XSLheIw?sAM%NO@q8frEcVEY${u0O{0oa+ih~KvQgfUUaH$I zcUCC+Eq4Gtx8HIX(0dVmG1(PcD)@4UC*P6i>LuyXv1EGCeU=BvAhgux^;^(Vo6iq& za}AksEqoSebGT~(`heJjWwkQ?uRUhT)Bl<7b#8gg@&vir<3R7zZ+Q~veM_O>S7i&1^N^*846ytyiRWR8qojhx4Z##xD*QB!Lth-^e)hC{g(HEj{FS@ z^5)Po1-& z+1AX}ajDWgJ#|YG$wfWg;Yh4zQDq5S%Yftppy1Uc=awIx1tG#w< zB;3;z>qXDnAT)mz9=I@6y?6v4m~!gvsE`qGVJV@y!C!1V4Ozr&MKb0szgT{)P+WEy znGWHH|62aY`N3LY9fd1mtpvKG--=truAHf}ju+kpPpsO~JRXg;^({!tnFW}kzYr%> z8;{GvYQ0vajL9tXn*F>Ka*{vf$mI)SNng0HE3&W!#SgkEo5IO(XRJ4tG-VG=5oz7h zx;08d>qP5T)=5AofbItRz!g=Wj+-|Q19yHQ8h_L-N6guucquy)J+Wv2C11~e5xiwG z+!XF=O7zUn`M-JTJ5RArBX5gajh=ohZZ-OH-*%Spw!NY1`t;j&$CB~X%i?P$W8H~l zucagVU7BNYe2Z92qtGd$vKWd;eyXjrtr%vOHTTw?t+m81{mi#Q=X+^VoDtty}a=yQM`0QzpAp9cEvTyimMpNRjZq3V792F$wa zvM{Y$81CpuBRYleJS=5^Z8Zx|JZNM&X_yB(ga;lnvJWiIx>lF)z{5h-OGa`|2RXF_ z-W{B8zd+3qBfP?S?=K*>$vVG6vC6uqwb|NYZMDv^&b97kod@)hKpzG4(Lf&q^szu6 z2lVkkpRmfhw{;)uzSjM$`&&cSe_6vop9nNsUZ((kD$u6^eLB!*1O0Da#`nZJVv*ih z)ZH8FbVpHmwa4301n<+sR}3M);<0yiG}aq#?;uko=+02}l^y+IxEU zYLE6V+z)xbJ%WWpYQo7_7{>~Cs_DQBQa^3o5$@@2MB$Di!iE>^m%w8XathD?IlqCm zc33+v1Nx*FDz23v#0xkGI!u37E^`YvSZoAvz zK-;M!v49+}koyi2KHJ)HAAd@pmIh0$%W|c`A=bl)C_<(`qu+Ws&}Wiq+B&whJKPmb zO%o^7J+U5TJsN2|OQ7*U>#@rTQTq$;OXh>TTlzUCSWnD-&MDS&$fBN#i+Z~C4C|TJ zv#e)Z{|)rH{Gy%*^!Y$v0Q7}GUj+2UtE}f*&$FJ7i+Z8;BJ0K0OMu3I@afC>MMcAO zCD5yYzG}Ed-6#vW%G%j)y$a|{aWzBL(%QQANT?InKM_rI)wXwr7sOCY3u|}{x%66~ z`-i)9T`QcP@SChR=T7*o*4xR#-UjsL{Z=#)uPDB-_gIhax84gh+V^MeSzBa9AF@82 z`+&!+XvVFwK8`E;r1dH5)7EFK&sx!_Tg|WN)j(eZG``(+Kwl5^4Xdm#SYNchge&@r z^;PR@*4Kf)5$KzNUc;~Gtw1BCcLIIaCbyy=l4U~Q&rSR?N%$3A(B8YSuWiVBenu|* z9Ozq$Us&pDeq;SMce2-7e;}**JedG5_rHWOI^HLd_|b8UKCz0F`lC)6|i3Ooxma@O-e<96vqpkG>LGutdSE3Sau z=CE$G(N z{SLn%?*jcE(C-8N0ni@;{n090x9vb%5*MV`)@NI6TLSdQKz|A}%7asZ{sQPPf&K>Q zZ#TIG0hC%cG_5}2rIxz3j*CSSNsQuH9JArxXyLM+-r5Mi$BgyX?bFwVzbAXb9sBK* z^*682Y{!y29S1b-gHiR(9QIBn3PRh-wo`JK<#gMbWXaC}`m281SwMeXR1n(E%@Txr z3npEbiDJ9Rc5&{lFSA`yp}5@EZ(D9#VOwdt9O&*cm9ZL4fo*#>N@ zf&Lws(ZGxYrW%;(Iol!I^@6dyHdL)GV!AKs>PUp6xbIIS77zmujW*osySw6v+HPVu zX6@l^w+MIpAymCzk-G`?d~=-!#Wz=_Jo66WnLmZ9qa*Un)P}Bv~A z;kkWCco-f7&G{P-TbDy7`&s;k#`dV~NpvLG9u+^xapP)mca!O`jt214G3`GqcMnAcki^(DfpF9TD7tSbESn(g(=fT`q-d)u3~xAxC$Ky1lmc-acun^mt>tS0`z zgJpZnk{!Cotb^q$wR(?PD!um5v^UQ7uI**+TI*^ZMiDgDm&afRMlt<&x?OD|JqX4bx?eQSJY z`$YRz_DR4{z|g=jE9}*F%8vgf0cJ8V(>CNg+ox1Lz1%+4J`ETa7%Bha)8@F*Gl~0Q zJ_xWS66-=O+tnV&z(8EnId1+J+?~eT7xWPoljst*miBF}oy+aB?Ark|1(>Osx!EBN zN;KE(JKJ9Gw@>AtR+)ygB+*^12Zf0a;8EHuT*Hr!m9>f#b)Qwy==GJ9l*>6X2<3B274ngI|Fk}j^43* zd1=P%@b{!yaZMpeZS>`$R})Wc4#?6<_9o$3JB6xSM^18PKZ+Ne_7?lR3dKr$t9_1r zu6-|Hb^&HrV0Hs$_m%ef_Py=<*!Kly4`6D5sRiapvY<75%7U^92}Vbca1g?Ky%K#r zIX^nkD}%nCJ%+iyHJn@!OWk9b%Ue=DrL_Ovmk{uecP~UuNO+>Xue~FR{u~UMUC<-Y z8LFOI)}INYg*0=t$APIsR(#3cZa=`j2)U-i-f8#R6Y~Yf7joSE-u6!9$8cx&KIvWn zbDDj?$bpdovjZ?N+xGAUJ-7FM){@%!*pv3fgqwQoz4ks}6u>BfQLV5qu`jhR14a#u z1{m!TbLOUworGx%Rc~MPWwK_d_#4j^04Tg1X?|@#5*Q4SOc!LZA7eim9ohC{?Z?@V zx1V4?(S8yzdSH;r48RzHF#%(~!hVYVRH1qm?wuG5Fqr0tk#qb%V~-_>nT>A9j&L_R z=VtM1G7DjX?)Khgv(T*;TaZY$$8aU5rdK)lBL2^IDEgvYdrx;qc$p9mJv-~N^fUOK zNX}I=v#!d8hj5qdSxw(1fJY8lHxZ`nLfh-tRh#V>*)O(VV!zaWnZ4h>+`huT(tf%9 z3j3AzRragw1NPPStL@j=ueD!izuta>{YLvu_M7du*w@%^wclpH-F}DtPWxT~q{cE;QHH?6w73ThbSQ#$UY4(2KbS z`y6M;9cTm z7)?@Jv%?i?vbDN0#C^w)+d;4>h@LEe#?5IjL(M z75ue3NfUDBdYV)D(N8X>C<4E7$F`6GTrNEGu*7?5l{5Y!k%Vrh2Y%h0XYp7+u z-yZa(-_?OuFiz*rIhVVeT){v?u%+m$Iwta?cFY;&w>g3>^NNqznjbSeXH4td;hsYC zBX-Iev6rpY;Tmob%MaSF5^Jw7LiU?gGs}q+2;$L(BjT!W3{5icO7 zX^__(XzC)Z@ZGKD0ZwojHhypf$LuRp2QR8?`q47=44J{4La~p8| z(vNos+^u9!!XXzo`!hE|BNA^?Tj(YzfrL3j00;LXJD8Be=f>C13`R2y2N#^L%-|FU z@T8~b8I3g@w|k+73Qx=)6tW|~rAMNDf+KeUmnbNrXPN_A!Fo+`LUS7$hk&9Lg-mf5|H8*5%*w~C5zE`l>o6G8G`QYF^3K5evSis5r z+@WYI{f(j7D&2wB6%H-PrZ@%7a{}b*LdJjt%`qHVaL!vAnrys5Ag~2n}Z{?@$mZDg{GwiQIkS#^9g_Odkxh+*T)MLC+8 zIHKSr;Phnyy(tIYXq4ixY_;Hz;U<&>0?hKYw~_*>`- z-vZ4u+@bb$5PUj(XtRX;X!QCT(C(Pi8YBd!XXJeTHm0Jt3APd64IVVrIMTP`-w)M+ zgGioMw;%Nz`UD-g$L)7q1k4eG8#c#f{M`%6ksage zxSaUDhrcXT&EPrX(7`DmisMShRd{aYSOv^c{f+@(jwY^$?7e*MUca%u1H%%%v1P5; z(r8ioCf7M`Mt_*&ddCfp8yzG{KU z%9-et*Gu><+u4S@?3@e9kxJS{Ce$%eW?wE~;eK=xIUWG!lx+W(<6*}mjz{e%zmbVf z1LjopZ>=Y%ML$ok)>DpW(R1r~+VKo9X8?2Na>sLal+VbAntW$jf!9jk z=T*mRIR}-FH#s~9zpnaV$6JoK9q%~ab-d?z-|>OtL&rysj~$;lK6QNN_}uY@<4ea^ zj;|fxIKFlK$MKzGt>b&g4~`!lKRJGO{Nni4@tfm!$A2AvIR13}#Z_>X+$e4|H-;O_ zRdM6E@!S^N1a3=iBDWPciQAg1<|vNl7*4{moRpi)P2r|;)41u}3~na34Yw^fi`$Od zo}10>!0pKG#O=)O!tKiK#_i7S!PRiJ7}zZ1)gYlkA_0jMBvU{#4J0!_vJFUP zfn;RIT0NW)?b_2;CAgKk33?vGWs6e6ti4G+7ATff(3=%6y>>%Ml(g+e4NIW3% zfg}KuCXh6Pq!lD{K{5{{dxKvN0g@v@ax_Se1&X)mphL;pSys& zkh_Sxn7f3#l)H@U=azFTxRu=H+!frF+$!!WZh%|OUCmv?UCUj^UC-UX-N@a<-OSy> zt>JFvZsTs}?%?j^?&9v|?&0p`?&I#~9^fA29^xM69^oG49^)S8p5UJ3p5mV7p5dP5 zp5vb9UI59-An6CmEg*RkB=3Ucdtk=_I}O-cU^!st1KR=Yk-(k{>}p`|1NKE=KLz%` zAgu=J4j`=u>7F260Mdg%dJ0G{1L;j5eH5f`g7h1hJQ^lXhRM6bWD87gfyoPC@=}<5 z3QS%OlW&8`Pr~H)VDk4cWjsvT2Bs)siU+3r3#RnKl;dH_MKI+?nDPirc^#&F1ylZn zsT54z5vJ;4st=~N!PLbt^(2^j2~52aralZ)--M~(z_d!3CV^?Y!88+0Yl3MJn6?C_ zodnY^foV6ww1;8Z>oDyrm|g+XS(v^nOgF>yJz;tjrZ0u*C&BbfVEPR({b88?8cfH_ z{(>1S%-9`fSYSpo%!tE`WiaDpm~k1*SOYVjfEjPYjI}UxEXul>-hGFn{ ziV;~9ijx@r{8)HJTQuILkEvxl@s~A{t6brpg(kILqg5*P8l6%jQ|V@*q1A1D%DVO;u@V?ritf}^NB#t z#i8nDWsswd>-D%2^0+d8e&jeKxK{W?rCOOou#oV8BX!X>xjc7zz7*)WG*o?9S@h`C zGJTs$uT&8*1)qIOs7!m^je)>u2E~`a+zG2hn#p@T&vB+@l1i7 zn?`tYlv-5mTD1(t5(*}@1~uAHYGN9>UZ$1hOwRTKHMf*WO&e+id}Q9_vE-B z9?O1IskU=8rcx;JO|mSX2CG2L{UNH_pSH(3d0!z~@hwZ*sTK0< zh<7#Z>8$0i+^L6LU&CAdBu~1gn|O{*xvA8Gt9%*8vM-KxkZ7Jd{-*f-2T>%5!c$Z;qC)16)kQ0z zBP!ZcqUDL&VWOZfFpk3=f7V=Jd_a$xz#sXy0U= z4I**T7@DqS_>RPx6K8Hiy9PzfiI@{Hm*v108A42+bHYS>6|m0F{aEA@G?^n9eazAd7W zx8)GkDiHN}nNt*vsN)J%dC^;Xl|qlv!P!$ZU!dm6|6z)Ba=l7cAhwgul{$Ul z5OHlxqg3Qh(f$HaPnS7GafK{aD8Nmr!RUDzhR`duY84W#SLfwFM6^0hq)nAGMG=9T zXUmNKi?(3`2=azhe31)^RoZ^eqnYbr2a6vMK08XZZW z!G)9O#rsC(DrF>|8q(In!+>9nMviGIY7F7eU$KZhrVmGz(cCEHLj4mrmP z9N7L z8n0d08Sc(A0!K7JI76xsC_FN+A-q#fVo6txV35@atJ1TXzYsS1sp(2|4W4yx(AN{9 z%2Od1J#~?VvB;uC9|m=|46?{vCy6>w7W#>=0vhXCZ*VGsyezWn+PfkhebLy4Cnw&X zjJ07I6>@-IgU9}LjwGhmb}Z{{kM!jHcT-;*mIL1K1PZmrNt}OcGThZe+GVB6tq=K) zYjp&h)6!sLQQH;nN_4l?^>lZJQcS+#XRJG!=xp!7_HqISd+HkPK1_KKe%ok36V`D~ zZ+l03FIGNEt>NJRlLmUJSdgB&jkSCNkyy^g9}D+jQBYEhGDT_bk9%P!I+BdC$xbJd z%V9O+1*m}0QaI=!>>Ig}XLWF?heE-R%_$PmO`go=SQz7(+6aJ`ZL)J2Xdz;8_k%jx z+csGmeF@UPag!ylp=)t_GSS8J{>BwV#aSj0>m_+88*L8r%!bC49bxMV3&z7nmyktC zba!E;04x;F7imr@$-0egI25JUkx0fentWryu_$$QggmZ2yr3)5!<&qa?q&yJv z`sC3`$P0FLEKASeCO{Iuac}b1G$8`xiDYNPQr`5hYb?Y;>)pWM^J0f=d)JX4yS{Cn zLL`mMPCOO(nX-#<^P21ochvF6BkK(q8|rQTA+M40TM0SkHR$lEA#F+4XHxhO@E1m! zP_7)?%?gDv{n%w9FK;~G@lY$g#-`!6`g^ai*^!r;r|2o-zlFj~Q1b@nA{~ChJWwU>c zEZ59t|1K#P&Sv)>X+vwMr)RT$ksN=}X8RVz)3I3-pXEi`Y~Lfp6GN@7)V8({54lpO z|LZ^DyQGb6PQXP8F&U{~h6Q~4F5D0E+w;vmk^xUlNuP?GxQx__Espn)02FNfxS1{( ziPFILBQ={c@3$=6*|F2#tJ0SfV3Z0z-hh?+hG2Oe9?A_|h(jb!OeGRiiNsVQF_ma@ zNhK1wRpeHYTSaayT+&yx=R|u>)DWVE*w7jxF9v13Rv^^WVy}@+KEXK^2-1axw@rfY zY1qu?^eYv~e9o;K zb}ipV2a|=fbKCwcQ1fAk8udkfZkyOXqKvwPCH1t}u#!c+!AmEUGzr59jzNl3f@8ha zHoZXLfRB*_S~ockIOu@b(yj&Vor_~#2lTY{9&pfs(eA{;CCip!q&XkQSkgR~2)53; zMV*~BkwjNKmW*{pFeRwGI=a{&ZzQ$Y$jrg8SW8p9zOi6D_?m;eBV&f@nTZa7_b#k>vrP1Z(e#cc| zML3*G&Q$_AUzR^d@(7mwkQGUe7YZz>)Jior29)QwaulXmuFp*Yzg8gX>rnNfX&Lc1 z`lXTvk(#zPbz6a^VZ7c}VXrV5Hh5EM^-B3rz0Hq~MAW40NVe*}NucT55Ji8VCQ2~Q zHiynn;+9_A(u-SqaZA6UxAY?BM9hhp6Av21gN96o?TB>p6zw_Do)dMes9QzdD(cpM zx^6AepW0oQmi&(UX|LGR7DCa~uC(1cd&WUnP+yr0@D(42b%muVFA^1|t{oXy*aLzq z?8lL=w4l-|vPH1?el9c3HmuNVbjm_KsIj}b zTB%UW)!40Dr&i1J5`PuZXjrC>=XRcdN+9RgGReUn(s~_sv(IW!F0@rwtJK&qT%#ko zzcQUlqm*L>klt`)QDYJ-hL9%aifAMrj)mnp$*j){pt; zB9FDT>Edc_j);Gcr%6&-rihPYi3Gh?o<~p#B0i>+DHO7B4mBSO)Qm1u|3#uvbp+LF zmTnXDp9V?P$n^L?tz4y4%CxGysuws`+osQ*oG%1&#)hZ~19=)pD8pijkOJW~Id#8x zRC4lEUGx!Rf>Nuk6z&NHUd@aH!S(7+WUzmT{QwnX9~J6{9jwl zZIl-wrRg`;iwwV?7?HM{8+J|$_qG)3SmkNTbhq15a&b52Yt(J#^sk4u9~*W#)>pfa zjq(=Q1|z@C$EMTe?ZmqIDDj9P#p@r7nLFV~8&s z+MB3J#uoH-gp)ZHMDsAQ0X0CHu6F)EMyRgow}J&bu1tfvco{jZN+DCJ6e_JorB~vY zQlDjX3l1eT#x+qzj(z`wK+YB+YV`ei1~qBTFXL<2`llO$!rUv6l8u#6@o+ zS=*gzJ&xg8>5E%9Z{Brs+(Fi2rfprzvYy^pXU5sh`_`5ul8buy_V1Zj%k%@PbH&2Z zSQ7s@^Rl%IQ#;knMeDzxQb`-=P0}-!$F7A%_z0zZ4>}4)XjeBfPNz-6wehRK*jtt- zXNuNOmaCN-nOde)X|xKtRWh_~>=-|RlN z0fmN`M=j=2Z)lw$Vot=Ih&eH+Ds7DOW<46`WwZkjMTsa%L{TD&5>b?h@tIsq_kTV#*X46D*g> zm71YZNOGl27nZeYvYnZYv_KA9ZrE6xJ}lE|;;|x8T6~)uwL&k~>G1JG{F&M~jz&_+ z^k%iWX`C$3G`YMfQbgt2HkqP8+;k~{${2AS*Q;~LnIVufwM>6+F>;hzol-;A3wsjD z)fio;%|GSRVo#$Xle3*b&GhmnXBhm*bPBajuho$TP8!6vMmc1;aAH-;Hf*Aly;eI3 zt)DU3fWLJE8^ic1x6j_P_w&0&9>!tl9K85ng|9CX1)7h zl%LQ^N+~CEBr5=C>?Ea)VK{zH+fANRw2W8SL^V^M6J;mIJ8yhm9dC2XT|CTYIZD>nwYFDu0duWIyreE zqWNf!W5$A9n~P?PK+VqO<3}Oax9KtZbSOb`5+$1IM5dIfbQ--jzv~y@iA;gX6ggAG z2}JE$9)5~*d@1;mY2$HSP7|_5w?NMBWv*B;{0uq%QYsXA93PFhh2`N~Y61c^HJG8t;W1_Ds${*90e$LPLG2DP>U7PO#`G(%Wh%+^!`6L^5qawyPbk*{14=xrD_jUAU z+fXfn467?oz$=RBKzaTSB|mKu4TQGbE|ZP(1ajnMl2gpymCJ{Qb>-(tM70=@p~= zt1-_M_m(8(MmLlo1xBP`nq{tqut176)h;aE;=VB>)TH3qDacSW9=z(>iC{WW-t|z}(=#yqh0YaHBKlCXq3u|-hAvT^SkmDTT$thu}aB@^Kj8w{= zoU;XL++|Wz?3g2un!Gaw1txK75jr{4oG(!0EqAFf>;waa@?c!x&?S$n;+m*Rsm%?` zxI`ewU+$rcUa!()V3#sq=wJactX_!+7%CJi3Z)jaU5B1=XyZ6Ms#9Q*#+*4?ArKWT zcaF4eYE?9vKSw1L@QSK+T5>*;4WLy5IeV4|prU6$I3;>Dp73b&D0%UCPOljnD58kV zW09~vcXF-~sA(yWnxbKjd2lWu2lc9mLY6CeZWO4QgJBsj7CvvObtF1EVv*kVL|3gX ziH3Jpe)8ZS)$xC{>1Ha6F$p6Yldz$Wur}Z2+Ym;0Pr6tMDMGS=ZSj&;CeIWvL~+U@ zUq>OK@{RLb1yQ$Gh^meh5p|ng0fv%hUu0H1R1#-OQ~=G~$mY0-m=ZB1Vk&KXh-yYu zGk@cJQWTz|@DzooC_J+caYd0Zq9S2KyB_eUV}l+8mIRk!T@PuB*SG88F2VIMzg&m7 zDu%@-^~D|Ha-B-4!IVzDY-q<1MI;u-EXLeK*ZT!>_9@o|U8KQODK6-EOdG+IglzZx zBLX%1l}k;L!!JEn=+ww$O3eG0sr6(Eh8|xiFi%l0*GF@xc~YPzR30^Qxhftf85UXT zDSTRT33C&Ps5O{QokPuY0yW|Cs41Fpq{Z|V750G9>lB#ks=++^yp(p#y2Wl`xe4|! z3)Do)q$aA?V!BLuN4QF@EEdZ>7kopYCWfgZKjr!JHiwMTQsSI5j?xXiyAp{LYvYNS z%Q8+yh7cJ-WC)QV#A1jIh|#a6OCZBd9liu>*#MyG8#0hTtDjf0y&8?*Q!{Zz`Rr#RbE0v z8|D_oG`arwUj%9nEO&B>BrVCYPoY+$Q0kRf9Z89mqIAmq;{Z(<+o$JF&L09fJ>^bL zk)x7QYRblS8hIoq`NTO&pr)@(YKk$r1`Ekznu}7QRx1=Lom{WV%UU8sW09Q03FkP0 znkD5fm0A;1DD#g41hyK!PkU6;rd45)=Wo1rIvGT1YoZMj65{j#wdY4X0 zpyuFm6LawBMX%GVl|@edgbJk!tzLsiD!QSGC!`vhLV=Zca}#r%Qh}&L%dI~amTB~D znpnJuWajISX|TAg92?_h3vZ!9TUe%*hvjWUXqqn2ba=JFIwgn!(EA$BO zMMs9H5>4*^53Q;PbGkF8Gp4@$y^hpno7&DgfdP&yj~^9LEDPBd&ykOVmCM&@zoF*S z=cG3}RRTFD;5qn@dHm>)_4I@n#OAnb{f+)`dxs;@*`4T#&25h@AzhG@B)2bFdO^jJ zX|5b>Sw~mpU<+0iP^_b!^5Cmwsz7IYDG&3q8>6{$DgI5dI*C}FujSf z@}O8dOspLy)(#VEht;j;wtk`|BU&<|B{Qcdmh7n$HIArpM2++RRpXTCvg@vkB)a0U zWUMO^>rpKXcXZVCEDR@O(Ym(2_Ks-X(num2tI2pdda&DlTi=4Z_U?s=t{7j{Fzx!< zl#a)XRbWihTKqt~{0fXtz2FQxDMT^n%1da((k+#v{8aZtz9oV#)HsbXuV z(dn#E3^+|rv(w_VI&Dt7)8XWt4bDc8oC1MP6x>uAUP8xXMyBwko+4Y=L|Sq z6+2h0saoUoO?g0V!+$qb>%;EkN3oS3*D(F>#C0S zE~KaME7|&b7bcSUp!`23KIXSKaYqg|OrYI6Eq&{mw-oxv<~a36hJT@;7`M7whN^ z3(Mlmos;yy1D(AU(&bejIeVb;Cy-pcyy{cuVyOHDB$wbV_KzkaeVwtcUSF(hLGMCJ zwrzUc!Op|TxSyPdLgk+zxop^R=|M+3Pb0uQ#(AvsIOp-s6PzbHPja5@JjIESTn>^I zAXy2L%RzDlNUj9QDv(?Sk^zvc9&nzX0_NEhOzcbq=6M8|R}TX7S{OYMs%m*)-XsDu z#fZpjBL>VX2rzL~uE_v%0D(Di-wHYT!04L^Foo~R@6ro?gYzZ=%Ns#*UBB~YkX&CX zEN^q(iSTmXUiA@3Za`!%civU?DM)T4$jpZ&Tbq911I~v9SU$wV@@4|dyLdR`(4lZn z4|>x13W4QQ&ZnKvIG=Ss=X~Dzg7Zb^OU{=;vIZo#g5)-k+zygEKyoKY?gGi(Ah`!5 z_YOE;O~LZb2`1;;2+MZ~EbkkH<%0y4lE-*hJ}$y?J;3s70?Thea(@Pv-w}Da7Ud;= zK=J@DFZpkjmx=U}|LXjm0P{DHJk;+*f%8=^BnXYX>@)Ss( z2FWuZc@`wkf#i9Rya19HLGltvULJ7GB8t3fjcbRhJ1XS(?_CHqUm-|L>GId0@^>;h zM6bUsVsqrN>CzxJU0RU5n#QK99#x_IHI` z|8j+0ZLWwb>WYEnJ&?Q)k`F-gAxKbse+-gOK!U>iGmv~f;98Kv<)R5D>R7~Og5dIt zEL?s?WaikNcwBxb;&MIU@=$`y!$9(72A6=ioX}q(Cm$HS4X?`i??GH1?>dp-@&u54 z-S0XHB;S;Z%hOzE3b;Ij$K|&KUuW~U{7(T~PI)H{vGZLQ3AntF$K~2#$E61?cU?np zxx%&5b-C*b*OjhSuB%)FuGOxqLGlAgegp{`xj%yh?b}~Lg5v*okf8YgW59K73YRy! zZkjL`ak+-z^3OqBvK7FNfzegu7j~?O%k_ZEhX^ho2FYI;Tt0@ll>WXIkPlSd4x@ih zeGlUDS=aLfm(KxP+3$J*Sk%iU?R;FXxLy}ee3#<>pRz4*Z07V2X+f!Cjh%8uoHpZ3fM`& zZVhZTu+)I-#}qn$ok;Og^AAKPOJ|`|0;A7KNlkW&h|ZBmr+Z68ryEy>Nu$%f^*W`d zTk4*I=yXp8mhE>>1y))jI^8qfvv_p6x8>0}xfFc4cXIE_gVMbV56Y<}4XSh3BPiW6 zx7@98E8Qx$+O2VG-8#1(*y+H|0Cpy@+W@;Qu(N>O4%qF1oek^`18#$``*B+)n8sgK zwZ`orpxiOD`(bw`ntaqzyu{o?#N>Lw{=lwADD0m(d5E+ zMq;}6b?;9wxgW5*^t(gA?pi7)Bks6>$rz8x-4I^xg+!CHyBE;p+s;dgJ$I+OTYzPP zhh@#MJgnfoC3!R|xchq@1QAMQQ^*g9Zkz{-JD0ILL61*{ra4X|2Z zbp!4rQ?NXCg2{b6!tz7{OZ^}$jRcmgjfbUOgynjG<#_~_=L1`xf#pRAOZUYUa`FMz zKwv3+SAIuTj!CciO7|56nU@1=>UUoWthrQVu6AFG2yCZZXoEe1T!)icL4*RvO}oxpYhn*g>O*aLx00^0*@FR*>UE*|jAPhoPu2_{ddYKj;Ei1^IXq)p7T8ycrNr@}JY^7^r}N-MPuE&t|1E-ZJ%IBz0?ylkJv9T)y9hY% zMsVT>Si}LEnfy0u@>A0|dC2n!!REujp3(1l6xcIM#paWqX9zZ*BG^2OVAC}gu_?iW zp8{59_2KE~z3h2Sz$KmopsVN{#AWd#qx7J6Jf9O>zUz6<^S(z_MH(u-Tu%lp0P`@5n< zSbAwMi}>;~1eRA4SbC*IWUeX*OKRTvDTsMzc(>(o>D`9M%=G}w(+Dt62llB9Fwa6@4!`s9Uf{*^!G165z-Ris zr~{uZ6`1|rl|)`5G=aqcNE_rYA-a{~X zv-cM78t<*%+q}1X@9^H~y~}$yurC4oGO(`z`zo-n0sA_zZvguyux|nT_JH?ZL5X`G zWc1_iL}B?T!Q?wxO8h+-dmW5I2OBE!k3~?f2T;CDK#A+~ZU&UEBPgZ6SIEhSoI|1p z7rryTb?0n9w9`C2#F9d1%IWH|gBr@+SURr)sKw8q1(zyK2 z`-6bX?|EE)GVHkYpx=CB2`+#4{@445_fPL%z6xKZZ{q~k z4J^96z6JI_zysnAe04-t z{!C=0Pl2+M<^7O(HX^lMLv=ibF`wRNH z52AAB;8t9^y@<;7fXdYbl~;pwMh2DFAu6|CBmFP=z?jRR>Wcz2tk@_loaT-)p|teQ$ttN09CWQUu#BAl((DyMc6fknRD}8j#iw z_}&t%OW%7aEI&YD`4NF--Jo?TRq)bM%S%h0h|BeW%e4fT--A?^!R1egOW)5Ga`FMG zoTzc(8-16_^qT+auOP@oEvW4GqZU+^h)n-j|9C{0zlz99HIbM8El^%cH3j7*C0|(` zNj=hE?Pqvw`e`1Udc>xG3m(%rxQLs`Kh?hjV$(m(KixmWKhwXBe_Q`7|91ZE{j))8 z0I3nACXkvzY5}Pgq&AS+LFxc0H{jn<5Sjj6r(Nvdy=slWhG4T{P-MDc-18s}@X!p3 z&>VSa`V9z8Kdum-@d*~D--6KeTen!@xB79BoG|KH@-21Y1=Mvd)m$1XF24uS>34(F z)9?3!)LSY#gZ^fM&L)CRACJx!f=)hsJr84a#Vp@j)OEh}Q}_1oCjfL`9-vJGpe;N= zaeOg=M*Lj_pizI!ANMctFZ8$j5AZMYclbL&+6>YbkhX$!4oK&MbT5$31L=H_?hVp? z2K)&@c=~%LnEZVR&?N+*_~^B%f21K^ct&}I#zcg!2ZSC&5PB>~_sbyk1cJ~LC(QMq zh)P|$KZ(=EZ&dAw(5up?lKwONXAyj!3DSS{`_BexxKw?8jLyk2i35WAR% zSR@}}bVc3lG1OJjG(K1OF{%kuCH2!bI6dfU|E&a{*Z8mXU+2Hxe}n%<|4sgz z{kQnnfOH{9+d+B&NEd;$1Eh%9E|4ZbidOW21OD4m_`FL{?*97-K9gDa?9Ec{OGSLH z2Yfz5@QE_ACxg!yiYxc@iofoElYkSAx4wS=TOeIrDmdTs^P%V;`O(>gM(2`}6!ho* zuLMwj$%ArPNrTq<{~)0J-v5LDNB>X$pZ&l1fA#<7|J{!~cQ8l~0qLP2Jq)CWgY*cH z0!WVp=}{m(dcgmu0Ls9q3CB--rfN+9{YW4^CJU6u!RQ@e^uxT+JV^xQ$b&K;PJo{fhPk` z1)dH(1Jav8dJ9O=xJ0MdZ6HOb*Bv0e6Qp;6^zMPcbHb)P@RE>B9(av_5`#2Su$106 zm`g5wSj6Odz~mopZ}@*y5f^cM-=89!#=yTJDZlWReGe}CWy zkfJNHBtK^0mjISWAej7($K-f?1}Q=n4eRGX`usp} zvLGsh)5kxu#i*(^!EFgDU&s=bFTto&VbrDM7wPLFEJq%eL5xuE57vV8#WXB~a)jmN z?<(Zv1LGM%x4*CRKqC*O$?!M%g~ z1os8$TOfTKr0;qDR>4C%CAcrbY5@;0phRA} zVfl3MIRTa!8izRe3lUa4A%d!$o0fd92Hz0G0y7Yp zLBQkyGZ>g5zzhXu7%;y0dOlDMvxMXrW+;C=mKbi+0O-(kU zsTlyw=oFfo97MC5*~sJ**NoJRMlLm@fXRz%a)H75!HmSEW}JpWzBJ=ejWc6OjcZs` z`%}b3zV08^UKtWI)y%COlb>yXRS zh)bM{Pfb8F6(lc5PnWoy-OptoaCtFtc?mF>AtS4D%^Ku#Xf{@M!%cEIv9cRFo_q0t z6eibd))JT30aF>*To25wOu1aA*+^WjCoVCY66NJh#O2Wk=2G}Nb;8>5trXdTw>GixZJB9OkDn>*{9jBRcN!c+1dfxf!aY@G%F3jptLsugVNptj1?Fg zFm_-Zz&I1yA+qPA9WlbD9hI|5n@e1}(w-0FfdO{{Bjsx_{rMWHBHjnFcCc1NEVXD? zp;DBw)J{Sydw#!1J575eVyQg>7;jvQ8qt>_mf8YsG2yjKTZBvk<43%@e^n>fnxs-Y zOFLVlQj5Y7y&g)_=)PI1QH^#nQmL)g)@kdtbG7rd^R)}K$7vU87XcFiCJIagFpa>( zfN26|DKO2zECc5F#NhX2X{puAA$6@8sm!kHBrRJyV(QF_erb77rDf{z1+_Gjs0{(r z8rS0UYRicK~yCTzeNV7*@ z%w@o=0p@aGt^nrBgm!z9%(wEEYTrRJ-y<@w>LBx47=!{J&1ZD1Z|oO+2UYY*i%Mv} zBr?AOCY^Vo{g%l5ZkS2?-4G`*nE8Ts)isbELv-`T4M;unU$tnu#kIcyb6s5fJ203< zkr|nPYxj}B+)Dxz-?ZJcZcz^zzIkK+PM%OVNJn|=IeT=2B{JhkX0OS;x=}g~$<&S3 zbglp<{h21^4*fLh+i*66N?x0uYe-0_;L`9MO^`+sYBt2POEGz>PiqzUFnEc+JLzW z2H-=J_K4;JZHknmby(0UuA2?aJ#pPJz}%Z5nz|ZYy(BbsXnmo*cpoCBn*hLF<>?W^Efc*cs~KmlfXQc(D{>mhUM%aT_f@NbSFNa?Z^&d`d6Ij1EsE8MSP;! z^-P*itf$^f9;NOK-B|?ZnZRs~>&^ydTc&WHr@K&w^8yLZ=a8>n^C)#|bXUqyULisG zLPm|&>TV$@uh-q6yHOX{t<$a7ZP0Dh-K0Y)`4TWM1M>R`d>`mO zmchhQ7AP%0CTaPmBxAu!|qx)9(o$h$egzZ$sC7&JwQY<38j9L z{!j@@{S*nxj24>EAE_@xDD~6z`T809nfd~Kp}t68tS`}*0`n^{Xdt60fd=v)!2Ai! zU%>ng4ElQiB=lJOivH-2%6~;a8-E@{P~x2a&&mJUEXodI2hl&-oPKe6@WrJbClTZN z#lY-OLy3jdH|TYWLfU}EESSB?J-&RqDg}yFZzn8mz-Gtw4qyjlils;ICoH{)B|DI? z?6FuuL+X4D`X(7nbi(!lI~b*9uf+=Vt@=|4%r^aU{R;gF`jz@s`qlaq^(X0126ia0 z!+;$Q>cn+NQeg#Oedn5Pffsy`FKJR8Aeaeh7x<^)QoWR((_s(vv0 z0L;q?%qxH$mj?4{0`nRK6E|STOJGWS^nEt`nIa{wUr%JN1D1*FHvo%S5gEDV`djq3 z5n{Xa2{JEPS}{V8?(QGJ@?9137)AbVy1Wgar_OqxUWzvD(W5(zdee6y&BFINPHId^VtV{enfnJ4D1nUK6etIpA9qVKO6B1ut!qZi1yFo z0eR)Wryly(dYmbY>%RduKd%1{*cqAf`IDZ?Tj_r$$vKlGr~VF9=mh5h6nb9y?$inY z)>F7CXOAAU))CF3Owcq8G>k?x4TB6hhQWp*hM|UGhT(=0hLHvolqJBH0$T=bIj|ML zRsuT<*rR|w8razh1D5iqKZbE5@(dI3CrfC~>4auAEziSZm>+feynZwfKAMKZ5KRN# z^c{IRt0@0pUd9x%Jh&-!`PqT4$Ii5o$mvkkI)^r~!#V$&2l~afJ+v z4OSv_i9ut~8gvG|!C){NOa`;T0_<_XE(CTFu#16R0;~pDEwDOZ^}reu2Ak}o8(hO? z8$3v;j|erUeRS4BlR>Og0u<-Q`{SAiJFaP1Mt~j`lrp=vjrDXDfl0frMv2$-WQV0i_LaxYDt@q*BRCtt~cCZxX};?)(fl;SU<1v#|rsCaS+WK=y}P`qAtI+4(S``3SHy*(1#l88#!D zL&hiyX@hJdp(*dv>1>8)3|k4zXMtTBH*5p8Ia4rSG*B6J1oLGH%w>evYZ92p9{|h& z`%{FyX^`uv8!*a+60^0(cBw`m8K{oB;bX%mhEEMU4WAiy8Fm{!H+*6E64>Ryt^oD~ zU{?aW3fR@ao(Swoz~Xo9l!PH!N8OODqi*<_uspSsPKS=-ZR}b7TpoNbjZ{b7m<4Qm zic2HaQ6I7&xx@{!ua~%#_GvDS!;Mr&-H6)kw73y1x6?D^(m2LQb<}fq8PWUN1MC^d zmywaUL<#y|jhv@Sg$0Z%qg+SbC`w$O-DA5Xm&QYlR7c%-nDKDqRO2+`5ym5p(~bGY z8OE8wo&)T;z@7)}`M_QP?1jKy1nkAYUIOf;31hO3y0KI)S8b#^>g;75;_?a-m!nZl zps9IHKbC!fCDlXGY>MgkKLxH4`u0ee-Z zVA_mQfva6cRNM&W)d*OxnQ2D9F(fH*V^E^<+Kd{-j3*G4O~$3hX5%vB@x~TotFg_v z+=y~=EwI-EdjqgH0*g8wV-4$p-2m)HU~ftoSISDkifhX8S6edBX4ki>V&r&<-~NOl$g%m(__0-qX&$Xm~Px; ze9-ui@nPd5#z&2h88;grH*Nv;K49+$_5olw0sA1Z4*~lyuxQXc3hZMEV=^(__^h02 zX{5w-c5^39zNI78l6|Hh&OU&X64QEn-H8_RXFGe{r-T0d%GoS6T zU8>Pu6D6h_|1s_}?l&n+S*C2$0MkIzAQMKywgLMbu+Ibg0XAG2K*1@uIho%pRwKl6aXaO>!M|6TbO_Ue7zoWUrGzrfL(_ zQ8(3?YE5;fdedCfJkxyB0@HD(g}}ZC?EAoe0PKgregy2tzOH^2V`?^0A$8L-V84i) zT7dmBQz%!MsF1pe3aPVS5tN!9UgAkXd8+9&60mzrAVEn54|;ur$MiqbWd!9prgKf_ zna(#|V7kzBk?CU7C8kS({SMggf&Bs4AA$V|Sae-}0rpp5e*<<;`dtarRr#+B8G}$> zhfrqMb%OGDnlh&V1vcE<59L9HGWE<8rrU|I+kpKeZn^{5KQkrl9@G6q*u6y9UqqPc zft)XZ{hJhW7i~O7kv%b0?b`IH>2Vn|G}ch|{ezg99+31nHvX?3PhICTCaQ8}de*en zw9WLK>3P!&rWZ{wnO-)b-rWzJ0=O*TvVj`_+(6(40ha^ZVBm%%Ovx%&rZ?nj{ib&i zGj3>FA9KSy0zTa6e##CiWm4GDL{+X#UjR2OE&6(|a%K9-^b3LcGjJo~reA>@nJJim znB*!~CZZC!QHWRf)%ufonX}9TB__?7{jm?Y+>9CxGml3m&BM(j%p=XC%%jb@<~;Kl z^H}pZ;Kl$q7C8LNc;F@g#{kCy#{tI!r%ae9$bPk%&s#e8=bTMuk(k8fi=^=5M0!o^58RRo{mhK^MMmmOqwx6eM8}=ibC38RDfI;d7pM&%;n}vWYSy#oH}lv z1sqna$jGHO&oNgaUgl#^SaOGuurybru;j4p!~uk5-cfg?u$*T;PR4S9gyj^((p*iA zsA)H%(yTQ*2uqz=Z#I~XW|P@$wwSGEo7oQBVZb42Q-PZX+!4SX3EXtx@HWf5 zSe{~TCoE3|t~hQ6;7T&Z@=Wvp2+Okw%Tfu;a|p|_17kT_m%{QQvs~oLe2Ii*1!0Lb zgb_<@+8vfxnW@N?`D*hu=4;K@nb(@HH{W2s(Hu9g0}j7SM*(*JmkG=Hgyr1F5X*7*9uUhElW&^kc|@}` zkI3OdkYCJwj9O5;?wI_@O!J85kIkQ$KQ-?(e`elg-fjNe{Dt{T;1&V57`P?CX@JuL zrvpw8oB=o^aHfPgIge=mo?mPJ5t*cUL=LCm@+%g(CN}O=#^0mQO zn^#VjU+7)cyu7V$Wm|A*YqU8v)ngfJnLyfjmu0+USvnCh3oD5|S69TwD8`MuFK>G4 zB?*gYk;`0J&}cvl)7xX?)TJJ7p)yyNsg`M$BP>T+rd#qYGb}SL1(rhK{J;f(3j!Ac zE(}}*xF~Q9z%>FFOIV8Kh>xXQF281>GFMzvCqA2{Fl4#JXInp?eZVJ`xw0$(ZfTlN zDs$Cy`8A8dVj?(E$SjLn%)n9dL`HDhEiM^OrvzsU@#T@=Z0!nXp83HPVnK^s=E@S5 zxLn?2yHum47AkXPX|^o09B*l{v|8FM%PlJ`Cs<+_K5?Bystm12)K)Z!#i*(aF+qM2Dr-;mZy^Pa;yCQj^zd7@`_IK@~V#a zcev~N!R!Mt-ytyH1@6i;m>(dR-Mqh(!sIi{Zo(4Tx;k$89Jp&T#qw**ce1?1ci1pY zM41%5&cIlHvB*=2mfs{O*Jjjcua%|}E&o{dS@v5M)+}qbb%1rCb&xd&IQ$~r2wWUE zbb{6cw*k0~z}*Dg&A{D~unv)-w2qKNmsXlew+Vu0oLxD^8|nWkP?3#`QmrIqFqIn1Kiv(8$AvXYbJUKgR4 zH+)6%TVS1Km8)D?kCwQk)C(&{0nj1GrriijYmJqvTv=|ZvbFJvXH%51$IxYyINl2&E5-mNI44Y=)+Whw2^ALw4V|~~9p7nj}2f*R~9|HFga32Hr32>hR zw-dO}fI~^XJ7N7uc6+QlZ!jHlf%_w2n<8s* z+tgvR^UliIWSdS*;{1PFi~mi&_@KiiDEIek@q@3$ZL<(c8_s;-RJCkf+U6jXJ+Izq ztFz4|DC>dS8@J5^?w?GdTxeT@eAyO}b-9nM%M9vh*o-!d3?&A)_W`d!D0?kcWOLb~ z1f|>Nv3YGio8K0&1#KZ)*cJgk8~6dh4+MS?@HxN_27UfKb|AR20$%JSJ7_P43CG%t~5pw(Yhzh|3+oPmbH( z1b#}UT)u1jfMn%+C@c9xNmklE%=rR%RE7tLTIS8$l>2k)l)G$S$Z&ox!8r}#w0%g; zsPTV|(p01GY=01(-`jq${b>8i_OtC5+po6YYA+l!?oTVKCvz*u*FFEJ@QT=Qld^YW)kxhFp@R<7`3rzc1 zWV2^i+|Jvvrd8aIVx}T)M=?{GA(-|<>{BFxX`d_!%vp$6uW?KJ5%zqEN&9q($)huB zRBWGvOxjEArS>v=xxK<(X`f|3%6_zcHt=(RKL+??fv*C-8u%LEYk{u=z8?6w3Hvd! zz_i!MmZg0zF^SXvDa(?_H@{PsCBL{I%07V7NKl%9$NY&Tl-6D?OS{MJBPhMV9~Za# zfnS&@lwo^=3}sY;auM>?tC475W^a|DY>}W`l2M~o_A>~|)%FwZC)rQ7pJG4N-fjo` zY4+2B*8;BtUJtwhcq8yQdNc4A;H|*h681A?L1{lnwk+)z5R~=~LFw#dS$g}K>;opR zB_^)}9uqE-Oy1C|Wof_3ehV>qGw`ms{Z`;Hqb4KE(td}XCJ^m+k_PvX2Jb1Bp47wk zO?C`Lp=D`*NMh25O!jJy+PBzWASR!%KWTr;{3AY z==?;1Zveg#_!#g_3HyslLHQ~sTt1D;dj~Oz`2uM{xr_wmV4OBZ%W`=?lzjl@rv&9r z;G5G>?nWqkPHnS)YyY00{0{izNmX28tY5s7R1LqGBODcBZI7aeWFcas$SdLNTUcDy8SgiwtQ7AAS^%9tr zrqO-NRHH=>3xT=VvBaTqXdOC--eGVU9VQ3rYYZV=06c~eE&~2y;4cCGQs6HGehu)K zCmhx!m`?fST8EdwyrKilt4LnTFW2(@SsHx-W;21g4ES`GhNBh1?0MBE$7;t(1SZOw ztK$xoHJN5j;kD3JFanD>$uLb7Wf;0zY+L2@auqI5Bvt;Hv)eX@HYd0 zOTux3ti&Db<+&Zl&BSD#RqKTD%8pnQO!+ys0&OT&T1uQm*^VM!s}AiII& zq`XhhhC7~cJVj7G3Hq=i zIynhS%F^i7b$3p59*Iyo4{=U%PIgXl9_l>IdAM_`bDHxA;I{(54fyAPNAKqa;9ms( zCE#BM{uSU~O*nCqk+5_Y44b{+7W`R4P`Bqn5oOfMLQtUZhPOpq5y6!mbNCh&wZ-Sm0*(%FQ=Ls{KhVDZwPb4fm70BQ}hmmcN zjg@DR%l-lxeZl29#O1lb?@oC<&I^#s!H)`m(gxYH=tUlR-@)Y?=M}`|<-mUtcU}oR z=Fw#2h&!)!(iEceI+B%Nk*w^gcz=qo4bGcoC~uOWq^yo!WADy8oDUI{cRKHK-tD}{ zd9U+6=l#wHoSU4eu`z(~J@6Pn_!0P@fJe4|0sdFue*=C`!ufC#%FW~MbZ$W?pCl-M zCj^rU{7*`=E$XEAimbs1;mftur8ijVH^E(O4{XI5IHTu=LpRoMR zxySjt^AG2r&cB?0JNG*Oaqa_U7AUhpIRKOcK{*JNIiMU2$|0Z}3d&&#mqNzUHE`UW zuAH1rE-ZKj%HbVYDn}8P$}#kba%?}A2Omq<1jN$CfO13%OBat=x|G8VF6H2*pd3k+ zm2sav2@l9KKbd^!u1PMOJdC?0gK~7-btot^P1A5qb4^FYTt}d|RAP48o^^}X=HSY> z{sa2qdFCyt6BfJ5Bs5*6gr;&FqPb`-HKL~7xZ&x(H1-C@~{LmY6Odq3K_^lQvLJf(hlxJ-%MnmI9^06(cemK{+MvY62zZTx29O zUB|oHB$?^L*BtkN@-QN7s6-gf$9G5AYS+m!mM2MAPR*#%>8=Y2%QIYOy3TT)?fReV z9M`$7^IYeOU!ag zV_7Ci%%dbMkM75^53t-wSl$FmltW1@Z$&J7_Ig}*yY3|@?*V0b+;tx)D>8-hLDwTP zln+Z#Rw7@n#|TR0tgcYz8JFgslKLJz<$6{o^BIZE**&&QHG0wY7Loaq>t)v~u2)^J zxn6f|ckOV!;d&F4$AI!!P*#Dm8k9AltOaEqC{d8k1?9Yi>+K|&?D`^0|k&hf7ephe=RsGHR6PRw0z`G48SMaqjW%32w&Cx;Z!R zMxCt#r5=<9P#QsL0;L(07EoG2X#=G_;TGf=k^7Kgvl(3M(S0aE=}1rVC|$(lU>pG2 zm%e@`4?dIbVr0@?0!n9!Nq0FiS-ehBNE?j$o?=AuKFy?ij{8_-(v1Sg9e1O^!N^TU zD%@S?rbTny^<-Rn$+(;!$-y_ok367pnUs0%#cp|tX17LS(vM8ek5CJ0*NxtHo87cT zv)kgfx@~T|+u?S)U2eDABf*Ms(x(R z9hcX;ZzV2oaNmeuoptW@?hWpZ?wi~NN!Ee&79(%;bj>la!>< zd!t?MABf4_?$6y{xW9CN<^J0Jjr&{ocW$&*&IctrJr{!VB2Zoo%1c0bDJU-kCsGbnFKc*6s-f zaL*iq^41PP*{PI<@~(dUeem_SXCX1U2$bn04UYzy?D-8`kJ)1-Ceb~(J?=sGAk!ob zkIO?7h#oiTZ>f~V!lzJwPr$Gg#`3$-!=A85%46T-iAqe~jZF4hJJ_?#b0RT$yr;#} z>S^;V_pI=o;92Qe08z9|7f~3C~Hgp!BpSnLLA- z#5h6PsC>MWQQ4oN(HDXeSJR1mP;+fgX>ZRJ2<0%7qL4OP_!hOdyiaRy&sxt71m*Rh z+!FVo%y}Y1?d{p%p$SCKMuPH5GAcc{Ae2f>);Iu^c>`ypWaXWndn5(!xm)6rk~BQG zNJb?#?GEM#Jx>vr4|yK;JmPuO^O$F|=W)*#&l4UrR1hp zL5Zfws|gRLqSGJGHhH-S&x^$6Yn`~1vNT3~Em@Us^$W{B5SH%}m+yfxou%RV5V`Dm zxd_iL&*#MDZcy%sdyuP4vot*4c%&J`T^^i4M5~grG0B!KLO>Zpxl}84wV(S zcO<@4wk&6pH;iy(Ng3w}@mVrgiLD=Pk`arZHLLK(cbu zl%%Zm9_5`QVd(aGfmR)uJoQreC_hCmSiO*Y4keb z=mjt3vFGgZo-RSTFQZ21dM_s^&-0$|y})~+_ag7b-b=ifdN1>?0hIz&S)j@W)c{Zp z1l1r=<$!81sD^-QXu^9%QdVA*x72$b%F62zO4YEmtW=Gp^(9neh*DL5hDKk=%G-&_ zJ3xhbF-a!xMkc-YOxWwaXZTg1!h-dW(4Nw-f66=b*_8Bp$crHUmf>)nk%zaTs(cHlXgYNxBFN_bA|7nyw^GJhjH5fgNWlX(6~c>XoaDr0P#Urk<5L>sa3e2~Xd63C|-CPamc}A=}vgzig)(seFeco<6}R`qaLO zzC(PIe3N}se24lD0~HFtd{E5*)l5(ofT|EwMW8AMRSBp{6TYdkO7~44HhaV?Ih%Y1 zgePW`q}*~<1*!A_&q{pG?&tI1^XbDfSaIJmpej%C>BF@34dbRN3TcBuXhrT#?$f5G zZ@v##%Zd9IfT}X?TL`LI8Olzd#-}GZwFD<7;UJs_g7fGD!kNcim_p3vbIM#gBrfL= zmj;PTY}y@{e&15!GT;mPLcXvs;*0tke2u=CuL)Ggf~pEs)u5^YRV}FMKvfT_xuBW{ zs`&|DbCSze+0^u%KwM(lK$^>i9j2yA)6ZoeaCs(iiSqHdG?$pR-ixW}yV!@z<-~oL zfND|PcNwS_XUgT3zH5lDT|S&cLSao6GI}*NeK-2n%TTV9pwwp6=vLqT1ZBc^o9}kt z9lkq#clqx2-Q&C0cOR(qpfZ5U2r3h(%%HM>$_gqQsO+F}BzzAfp?p|=`_Z?Vpv1g^ zG?ea+w;xr3ekl6@$`=XBmq6u8Ly2kY8-^tC?MK`o8)qi*?MG?fAuQkW;d(i7-`k+_ z#C`9A%9|;aANoEaVfhgWOP?exKP6#_`Md}6%d;;{3Ck~hU&~yg8;&++kc8!@lCZ?4 z-3iMdeSZ^|Kly(4{o?!8_nU8z?|0uHzCV3`fhr8D2&kfgtOuvGCs$AYRQg{2?U)_Zw( z!Y}yMh@~I>gtoYUBB&^7B9nX#{}lh>lC1QTbqT5!h}YZ|gx9$1yT!|&?=O&;^v{%- zT$xd$GJh2^=`Z(J_$&Rh{73nZ_Rsdu@gL(y?Y$aQCxYrEP@N2_Q$TepsMr}6K+x*Y@pZCAuf6@Pv z|7B3cL4{*m52_8I+6bzfKy@>yZUNP;ph_hCugX@Xe+R$T|0Zhhw~5NzI$4!>N+BW~ z0Y)(I@5izau*5Q0asTI_x;>5MSA^x)!$0wVJrT{XJ756nxjU#15k@fettl>l^8Z3y z;&Ztx?*A23IAxug2LHn^FWl_^OX8BsWBC7(48(i8YH(a$uU(O+Z%UpuFd&d4@fjE- z@%ccHjZ=+A1Q_HqFfuSIFglPM$P0`Kj17znj1Noz)q|jV2viS)>Jd<39QH9#Z3flj zpxOeeClUcx<};v@GdBVgiO(lH@%eN|=7#FIem)OApMe?3X8_}Om;oV&Fat%%=a}t^ zLfT-^SyG5d+NZsqKxN=4gflP;RL{f%M}rDucp1SNI5tot3C%#Y1m{-dD^MrFxveXl zc>}km5L*yfBy+h?;_~?(+oc-m11{py5HJQz0dv3-um)@ad%zKJg6c(3p{s`i^c7IO z3aZyYg`x88pxObdHxdDNl1slFA_|0w%Qri5`F5ue(fj>e_5qj6iOUtBdMnK(Ca(7q zA_}wzP9rYSQ+OvHI2}~)X3FK+fpcXp&yl#Kbxe8<5d|&|TqZ+#sRZQ*88x~(uz{ew zCU9-wy1?4N^?@4#HwNN?bph1jAA#y)P<;ZbPeHX4RG)zgg9E!kh3eyrL|~(AVg_y< zHal=z&ZfW}1m%|%cdl`UO;Ig8T+53<>-WDx5L; z6I5ut{0*wTiNJSBY59|!=N9;lz(kYd=j8vY{Y0jm=Ozs3C-dNw861FQ1_y#_Uy97& zU?j8WJh$MeU@npw91VgZ9?SzFD?>7a2-j*F3kN7(7IRGKhr)_JJ@k zqeh1ZY31hN)Znz>5y2ya(}VfJ8Nr#sf?y#CIUo!MVF(CAK^O+Ya1cg-FcO4OAdF4~ zlPfm|aph)OZ6Zi3Hw(EPPzqxRN_n*jVM0HYeE{Wrf^q=}m^mSf%OI`X+|6neNih^O z1Wg2`5rnbvpc#a5nL=p~x{$A+0|V*;PH^|U)I{oRfnZpMG9*FCAe6nXG7)SFt|Taz z2AhM+g2xA2f~~=};PT*#;0YjbAn+h4K~RApfFOdP24Nxyhk!6C5nLrp%HYZ4?xbjX z5D3c2ouE9FUg?p;>B15HQ1$_o7ZH>fgD@oxgqOP4GH` z@>&oMiwD<&K=~4xgwuoZ;0A&cCm%t;M4UbAf*W(b0AU)b@vb_2;@>GQZwuZjbBQl% zps+j=xeRWkM%47bx?{JI7=#iKN&!Cge=XCNFE5AFtmGA1%2^Q+*uMA)w2H^ToC4gFdqce8^y7e6@);hT%HhGO<) z&E#FkWY2XjLz_Ym5t9#sup%CM7=#ltWpZ=q2}y;Awn!?R(k^JufNn&~p-# zt21i!YUn*;^0myY*~grme()~eMU^;Y(iR4{*R!PSH~63?}xGvpu{>@@etbWXQ!dWwDn%9r-$~2 z_7Rl-fN)Mcv>$|XGlVicAS}%w?g|f*prpKuUJIdzM}$X9P=-fIP+pKxqw(R12xWLe zm64yh}j16a<#p|E6!bT8o0^w#5ZUNy|5E3BVmI#NFP&Udwc(|FM z#H@idly`OV!SCybvJardLRj%IYBCJE$R=eN5Xxzm@aeR{aFhmjCim!rFHV|y;d8?0 z5tiqIaCba>J_z?@isi*&X##Oq_)Vps*|kT+K*))V2OpW;^AjOz{Hp&me2JrD_;%2PEfuE!qf5ab`YM)6w0^4 z?-F0T!tY2>KAVx)`#8K)hVoMh%551n`ZD|rLHSkq>+m<>Z^Pe(zYqTq{xSSh7{6!F zgYW_fFM{wA2rq;13J9-)fP;A*gzbs&ukuuQ_z$^=K^U{tLDAWc!m4%Z2ez%{= zgU@6H>tMwrIOX<6ipj_*WU}WX29fa*2APaZ0O758gazU444I6mBACvOOh!bBNm|CF z*J1>bLnBiqCLW^6q%=|%DUYD7@&O1Rg76Ut zAA|4-2%mzm6NJw|K%-)JA~H)Bl#w|@wnmQ4*%YZJCO_{aD8GX23qiorAc*(({ZRG+ zlvoHW9?^pEMH)&2LK!it6SRTwB@9K|QQBj!rLH-tQX`HCP94T0P7uD1N8BJ_NIat; zdc+?I$y`!M2!wADG2J{02{HF$7yn&{R2NO1uqm=kMzdK$^M@YWr5de>0HJw8WMyPk zWOd}k$VritBd0`8jiA^469`DvFChF1!fznpwfqjkAAk$K2!ACarzO!mOO94X&LuRl zQbXFb{DWDlR*+x)qjyxXO5_ux>WaO#H(~)N)&qlU_ zI1t1^Am)HL7{nnU4h3--h{Hh~0piF+89_r^v5JSmbAP!^Lq(=DNslIbVQ?*%}83qUX(M%RM)B%Ds{OGMkv-glw`1 zbOdK0|BxF0SI{OKMF&N5k6Q*=7F62!x(v!Y@IMLSYj=*~5+%wOqm z4g~W9LErLl{)%Yugw|OzXO@S8!Lp)?qCi2g;F#L#xhDL)mW~JqTNZkkFZD0~TfdYT#=jv$E`CI|{T&3>ZB?lf?QNUkP zR$5$<>508l&U^v9jH0Sl!&*WNB$`^S0rw*{&F+ z7#%&HaBGRSM%$vxL7WBRQ6L@-;_Nh!EAfCKTL)X{51IDZm;8UyOOKw42Mo5zhe*Fl z9g{lXEa?FGkW_Q&nA8E%(tXkihHOn8fM>Z7uOT(AHPI{oJ+A0g(W^l`2E=3Ajgyc0 zq5bN&C%yN$JfyWWr0b(ML~o47L97C?2E;lL>(fKpkRDR>mX0Bb__D@Nlec{I*WI5e z6biX3EX^9CL_g{@NXmqmyk+-D{DP#8B)ut*fLM@0_}7!9m%e%#$ zL^p_D5d9zqK@5Y4us4F(1Y$FY$Aj1k;&MDg!=Q$ohQSR(8iqCuYZ%@zqG4pisD{xE zxea*@V;aUbjB6O*Frk3~@dOY7#Q%YKA&8fQcpZrAK}>*n4~P$e_&A8qg7^Z6FM_xo z#CJe^7sO9M{PbTUt3f4ywRP^?qSRMA)*MDrRZvt_S6o(HlV4R>T$W!_SzMi8QB+f( zUsGLESyWt7Tv}FJ&`Cx#93ppQ=+aSnNqK#FO+j&fVRdCmeo0APZGL58QF(rKQBhf4 zQAKfaT~$fvjt-MMGIi;wtg5c4ycDmazObM?AN#4!udJ`A$gi&|swt`~FDt}L?%dIl zaz~af9aZ7gl+~3M<` znxd-u{DQhN?5LuwJioH4pbGmfFE1*nEye3a9hBA&4W)8NjxHUQR@Ro)*W-XnYfEeK z9u=14SJV`gBdl@=D%*4Nin{Ocagk~?yB>8P;0rn;oI3I|kIRZUk^n_pd0Ql4L2 zRa;kER9I6~SzF%uijI*x@^tB_ro5!Kw4|yozo4X`Ait!#peDb%tgI%#vbLbSxTK`0 zq^h8%b4RsuN4_o{Rn?W%RF&7_11rWyS5jD5nqN^|U!GrIT3S$9S6)2 z(50h-(wf4`nzEw&(mF(_q`bH&zp}KxHovB%qOz)}xUe4Yc;_oxEO!*@(h)xIs`~os z()`*&d{!le^_6%&wdO3h+BoSy6{qRET6( zB22}#)n!FRwN&i-sI}a@^ceJcaM>WWCWnp<; zeq~)%5dm45UtL~blV4O+QBYn~Qdm`3{VyP6az`y)Ix4BHuB$1*j>^g_>hT_x72s3D zT~$pfl2l$%S5o<}p&c)G)Yhe=%Cgehk_x1!y1od9R#aD(Us;0JR##kEf#RgRrmUjA z^Uzkv9j)lnQEhE;Wle1f5?EJ^-~RHVqWp?_6l_%`wI!8xHI?tj!u-8VIh`c-tZ%wzn&W zfOsN^Cv~~@jHG+R1q~M}M(4cMa8bj>?%ce^`uVB87Y3Jx+wco9y3=R1-Zs>2CxdwE z_J&Jw$d@&&F)!B72;j%nSr}b7WxL{L#Vrk2G+gOitY5Ue&FhN=sm*%)=qkl+rp0>t zmweDQ4cFQ`b-k|PI>l|BKah{QzTpOU?u7ZZbqkxr|GkCl8*XffD{kxd_wL-WwI;)V zTcsY?`i714xHf=zTD;*V5KqtKaV6++-3HhlR+lG|k(x|Dkp~(s z2J!6ly?&@+P4%F`c#l&9c(h?N4d5{l&xtpnDR6Ek19*xC@HB|$9dH28H=r>gBXvHA z7jzjwM(P;{@Umj`n749%A*6CUJ!6wMwj8aZQ&S^&tzkQj;B^o$iZ|>4@#0KI@HUMA zO`S^)ID(HFFq$Hd;8GAT>oS6j>;m}_jDDnHCq05S=|`};VNH!VN73mSeA)0djo>Q~ zuZTBbIOfVsM(_iT;71UzI^YQQH2j_#0eTVFbR9t^21y#Czi0&4rbqA(LX?LBBLz{T zqA?o>(3l0{+IS&S-=#KmdZUiyjWdIo&La6~Xj-dgp zOAVlLJPu&=$W8-b8+jT42jYf!qY}i8nGApmfHz{e>81k?;IPKSQv4bh#K3*%EI=2l0taF84&b zTr^53gP|)hr!}6Qy42v8Hn2sc#&5(UX!}W=RkbE>qTZ_s;BPh;4S~Ur#Cdl@sea+iUIMgKgffY z%(}*njW^TPqJ{8Myzv$gU(V!qQ`PLoJ3xHpfFrrD@&43EUIp>BE+fgv#82Pu2Wcdz zLuH$+@e#b;sQe@$W|Vxus$ zA4C27Wjuyj9?LNNNA(O6<_sVX?zwQ)5^_ z9mL<{6eAJm2Yv_f4-oOz{RJXUrT=A%w${a>;VAkX?%Z*0-j;B%tv0wK>JMsS-nLM4 zOA~quoj;!6TGPDL--03dF268GThMQ7ZAJT4ZlSL|&g5;0dY7WJ`LDiH{+v5^jC^EO zi$4-=L!WPXOVFBboc^_ZMfKjMXl#``cYNpTS%i}bu^QZ=(-mD7Xr7{`IlySWT=J z)Cy1!1odEP!be0dbjz3GEp7|0Y|{n(==`?o{Skb5yY;vrj=l6i2Q2iqwi#Q40c=?t zY;B7!m7L}3RdPeA-C+l6_wVEB1gR@t5L<{}vDk5-&WgttfjYb0n1pnDOsg0j)5Y}U z!?s16f|IMBy(W6mM_26u^#IBJj2UAl*=Y@~iy0NEcim!^n2q|hf_hLqW(RdnN1y1! ze^C8l%mZVq+_@P&2={*;fLnSnsmu4pFr9gQ%pVKHf}kD(>Y<<>wmue)MPgA<4+r%K zP>&?3F|`2yt0=@EEdH!3EUc|8#sFSLL1A6;1kJ5-&;PH>a_1i1fgO6+G9mZ{^9Li% zu|TjT$zpTstYsY^rmsN0<;^iY-RkDL$~uN_we%cXhYkSK(~it2vz>J z=!$6DDqV0{b4!~c+D4Ls?eYs#u!ZL54)m)f%V>HE#X>=sRyEB{%VI(LwSIY1lecA+ zED-gbQ>Y8tetv|pu57`>q7`usPdej1_#df1#G4arB#Y8EH z6iYO$S&}z!xNli3+S*o7@J3elfPsT@1`o4LSs_0N>l81^RQ#7=N?Y?X%amqc1IpLd zF^a6SZj=I4_;n8kB*BXZy*^~9p{2RGtv&0mTyFS?vEx+2v?B^;9d-2N*;Vrw9Jg?h z-fVHWjZ>B`kHvP395p&OZ;WNJJ~^Bz{+PG5)v;J#)rR`ax4bRb+MeCcwhyrCmt*jbof+9|e=ry-sFY~;u=4hZTg2$0QoqX(JIJt%Y<^3oOT8& zo`K3W7Syk5Z3{LT=hHc=@oTqZ)REKkXUufxGV*yl`b`7N|MxeY1~_3%d)65P+lSD| z3QLviaqg#mX#24C;p;IF+diUwWc&E`v8XBJE@%+x#_rsSi}f`Ix{&&ymvo*!*oI;| z+}i07Hg$+`zOmIC?r6Pz!l*gN#*b+q)jp2SU0tVKS5wNr%r``a8lVkCkq^G!$%M#YrQKa?vg5xbN%i zINjFeQ#{(~O0u!esl$JIyl5G8qAehExXy>o5AeBSh$2tHE2b!>DT);3iusC#3avt~ zXjUv&oTNBYalYbe#kGpHiW?NSD(+T1qU60_7!d8mIz8*$tP8U)&bl;fP1aRe*JNFnb$!;2S(~!n z&H6R#&#b?*{>j>(os&H@dwBN9?A+`z+2gV&WS3+w&emk>vd!7P?8fYs*(YY7k$q0~ zRoT~NZ^+)1{b=?p*{^5s%Kj?*$LwFS{}?cGK(5Snc9#58;ZOcd{upp*hwU7@BZl?- zZ$cq>SM2WCn%KRu`y^2~5!8pEGz9e|P*1*zUpr=d?7`SWW44dkPAO|xGEqGR)Q8ev z2AxGBa#GK-jM(Y*APimOL5KI;6CI>)TSbbcmm>{ma7ahW>hH;<`n%$z9XFw-a~YZg z-c=L5Z4--%W|fr4`r=tM{1s!`2cX@b61dODUPMcTK8(j+0`=6SZx?&D>RtKJu~~B4 z9aZn%h{{F&2bQ`>;6oF#?uxyaU0z)s`!IV!?Bm!cko6H{oz#9Ks4?T_ZWucm)cKJ0 z7N}=}8gu#atm%o)*luagL_OV|YY9bTL7YyWiH2KC>&&@zx+-1m%v9XHb><1pEsd?q z&_c*>Y+5$c-@G)06?>NYgRLbIZ!9)b_88JXmgrH$&1gL#8fxo&y07Ka&2Z;l{{K5& zYsA|U4B%z71ZVn4C(o3#ctVtoBVFoDDP3o#Y?d{*l0iIEZZ#u)(9C&3FIqdTsb63< zowBV$`MhN)gb*$R?d&R^QPOw#!shoxIe#*(9RdL5c5 zi-JwfEvx3Xc$Y;|Np~IBkUj&&Eab)VsNdA>C~c}y6y4EO)>Ph9(Nx(qtLdnwqnlDZ>KCcF>xKs_JS3qXzDBpTr8O)duY5>RVEtp&9X)Ot`G?r5rQs%xrmn%gw5 zX@1j!rsJ9xHZ5ve+_a<#4>N+=1nT9WJ{{B-ff^<4?V#Qa>TRHY9n|lG`U_D1PWLS@ zHF2CCuRB*|p?t#`c=5+Y+h(MHF+&bnwKw=+sR&vx|;^o&CQMIqBOd5g>H_R z-`cu7_^@du~62aZcQIt`9*~ zD-KR_UF~nMVxq+&=_UQsrCo7w3)fwP4K{OGg|h}0^=g!aZsSYz(Tzu6 zMpvpU)0OKgbd|bsR5OffhEokD5=K%DCK5((Lyek1vQW!(>hsM1X~y6jHmhP*%6-iW zMgp>*Rj5LJ_2gcdTS4$U*58)qS=j7U6s}7JLfSA;g|4#X454TgcB8to#d$xosO%{e znV3n@Ltb9Bp=_dsc|WHY!we3jv(Yl-l}%*BUA&qNlqDCeB(g?_q4`$bB;91)6x~!E z2Ipg`rkHB(q?!_{Dc!1@PSTJ%s+&nQW!Sfklwn@O!cxXOtE72%X~RQBc`podpm&P$ z_uOh^UioCEslLEq?q5+epu~pBA}N8z!CAPkXNkR{mmY2eJ&VbToNfb(WM{zaG#*Vp zx*yJG*esQFt!Z^bp>V!D2{&}Jnel|R$?n}j70zA^#-38AN_SsZUA=Bz-Xy9ir(roX zblxbr`4&=Age>`%Md+337E?_ndSb8Wmg$!3R*)dwO5G|_uUiAw>DKEuz+WkSCuMSR zY{S5YZTo+Mx$gPzT3$ZwL{IDqx@Iw zU+-MbHgO9Uxy%cgPZs3-y*+HkpYs1?<&WvGfW{j6CN^wH31**Iz)HQm)wy1GoF&BV z`$uG#wrf{X(ykqPmyuJaX0{SCvNET&5~j9oo83z2l#@Aano<>?*I|3bPTdQ-le!mm zr*x-vXLM(E=X7Xi>{L@jH7Kc*sb&h*Or;vs(`i&QeJ5JFmvnh(!Cuw9hBoka9hxMx zYctTUNsU)6)nIB3%^%vbnXJ;Lxr$5^e=Rjdts6Pp;$ZPccS?2ey1rDFCcE2|8;QZ_ z*(S}r|Ai>ouV1IFk>94YfXO#{UqeHBomN1WCAXICU6QWb4$8N)$}PEcBYH!B+3erA z?fS=?Xr*+0q5B$hu)0gS%epUhUs260s=0@1F!G+gMfZ*FTitiMZ>VMt)y$=u`|uA| zR>I+^&|pcfH*Yd)df+_K)nSwVu7*i&ks^!q7&=|!=4e?)MR`%Lrg9X$e%1X(A~$W4 z)*x7G)kN@M1G<=)^l{#-Cwd+WT6&IZ=GEy{R5Sm^k2y$?-b?ST_klk^SB&|k0c_T? zX_clLOmr?N4Bm0|lxDyPEDY(KEl)5e8m+mQQ?#H3W77s>F&Bt&$p8a8@LG<;O~ zIOAmbUQU^B36y_#{hT8CExo@!0HYYRnbqHZ&^-iv|tvfX~1V@oT-3P03g~IA2#hbZ~LotcLp}6As3R0xd$rWT29% zA^Jp;y+)5q&E0lkQ7&;~D|nx#~Onf2vVvw~_?Qq3x= zSxq%-sAlaRy+$wS#jZ2dk1(K zS*MA0Y?}2iP_fylryH`o#E2pwC0OphA)(mtSy9faLbW_IiMv^0?rt_4%yJDt+Pmvn z2}B2#U2+L(`V<==%8PH!A7ia2>r5$qIjJXAHc=YrN?kv8(ULb=o*rY`I{$z^B3m!R z6lLQVOU~=+WZ|vMhlNW`mDEsWcVG=wR@Ss>Qs+T`YonPdeV4AY>hu_WZls}0$H?vL zuo5%tkSe*Gr|*Scw7#1@AH9(ReGfebWpz|jPc@sVW((Dz1F{XhX!T?IzM#Jz$4;bK z1kHA-JH3Nyb~9hZ>>@8JHn$5Kb`PFdWi%pJ(7U!Yzk|)~xf}~-0Fa4=m6eD>omYX5 zL51sq;$YUnEGU5yt|uypz06tFhhQq9S?OtHx~vXp@3EuW)yC^b=tnUJhS9^$I{j#h zGxqGT9g`_fjO1FFOvQG0>PtxWrcIJBZpaY1=a8MCwA;m}(xOnn$VT$$!hY>uvfPmRfXQ_SNapeZgn5klO2d`N9xh zf3*+(2bPs~`uRu2iOFd#Tgi(^FUyNaVc`*xL!IkK24jV^iYC{b2&-XYg}$JwqPkqJ z%~IZ={+p#$ak;cO#~X8gaEQ#qyY6 za!C-9fvMTVVt9A?KKL-_@KAErQi`{<$;=Y|@-EcP1~EgJ5B^EExE0@RR zbCujgZa%k|+sB=e+f3KWMYgLAmHxqfeuKiO)WPZcT2_Y9lss0aM_>B!8<%0$<+ul3 zj@f_R<#?hn_?4@R`~PQ`V~w@G+y3o0>~bu4NJ@KMpaUzZVMB}!sXvxKkF6S-KU?=Y&VZ;4%F!vPz^R;-l+aF z+bxFemj1Qv4#8I>H8q|frvLr^+BUU+a9C8l!^_*p?`oUi0JVW_k_sjccn&{|_nUPE zD_9SJ&8q%L{WRbUYk;%lNf*+G z3?jqGXi`bWV>#4B>|`!kg)`gRuoU_nIYlm#FUgOn=!A>rdUCzFLavlEVbSw$?p|&# zmOIyCp>sPYmu2Fr;J3KSp!5&!VWlLl(641JgJk`8FH7BX&#Vvsg^au0@0~b&aOmdu}n$!5l zf4qz1Mg|_&pI{mIEY+N;(__Kl>|bZ#i^#y!f1QEn3WN7Gb$)8Ez`yVO*kE;y`S2fc zq~6=F-pBVE)!9Gb8r8W`)1Wg>o+;NoSE~@zv@Vjnm8?9cf04q?*_NIx9a#R-%9LS9S4?!jLx8 zTzN@2!V?woAfBpzs{X2?zn`ZMhH$Y&jf0M1B#Ok5M3RJg{1$M%*(8VD3J2VkA zCw8O^AVc7aN0PCml$4WkWCGE_C0pQ_md@LIh^!5tXJQhV(#H)V^7R{?tU~9E3hYq?TD%8ws1SRUEE&oA#Oi* z$2`d$;*M}nbI)?maVNP`+*$5C_cHe?_a^r?_b&H7_c8Y=cZvIw`-c0DyTbj%{l@*l zW1E|_lg6J9;=}j|KAMl?HN40t^J#obK7-HXv-uppBj1_7ozLaF@jdund|$p0`)r0_ zr_Bg{3}1}>Hs$;{zKYlJ2Hwouq`fyYc#8cu_hJXmJpO)uF~6K&$*<+t^L6}YemlRD z-@`x1@5jEJ1NePWmr(co@1=b4M)Gis>kMvU{CbmNHDfMp~vG^ zCuxT|A-tT@7} zAp#MJ)=ljotq=M}l6J`?b+crG6b#n~n6Zz$qDF8o$_4v4NIJH7xg}W^*OCOt>a`*n z!!VJEEeV#9`U-1}JeBMqZAd1T72VZzN5DH~S#Vp@Ue*&^#hdBr=fEbkj-->@a$$kN zvRr(=R#CX~;1Z+JL2f5^K$06dBMZnST3InD(T(K0r-b}y0ZCQzvd2(-H4J6WfxUFS z(TQ~5KnJ?W!upXyMOgpg*sZ{N<(6PC2R7yn!qz-@1;R3;WPwFQt5{~}a0@ofm)oi< z9Ar2d;hs2I$|y2MHV-0EG|M*+2Pr0Zk`i~UEp^SIUAZi`jD)((UV+|ri90EjA06M2 zu&SZh28w}(gG?mVHzPx@9T})Bz<|Y_ck|mE4{)N-uA;!DtXE zx{u7mrcgIhB+1(maN;3Z-a;j5tw?7FSwt4Qrg`QRlksmoW#EKp74sskDlHJlqR^mCO zSg&zl7xPK%V|L@^N|vvXWt>(VRx1Z)|IWE5Lw?jjF1TEKFz>*$;VXFDjZ!B+{#wK1 zJsji>@+Nu9ore|uH_B4pQ9RzoA(&)=$9#{xPd;#4(2jr=PPg}wA_#`~1Y5z~QbyL{ z^M=M6)#ehpd@~P!rF2dFNP+{Ct>2RG+}0lL&URUa9~z8#%z>GlpWKroKm3cLzaK$P z{6>DinTP*W>J^HygX1{f5>b43y0_t!Egq8jBhVlkiP|1zs(5-fV{Q15tWr8B56@ip$ zPRHrpHth~|`#WSQMx`F2kKo|UoQ1RAj4n6@$x>ujbdjV?;wHN%MSgf{!%z+?Oyj2C z%)_-xj!0IRiM4=PH>3ZzvI_SqR%k_rI=DGlO>j$!{O~-b;$L)d3vlx4CLUcxF4PlW zZt+NIzXluVqhv3|xvk}HXC-RMud*I1l|Fkb2e%sMzSg=eV~4uUKv~9mrIkeo)WL1U zxv@I8&AB7seGE!jaoDUhHLcKAb6dG>-1eK0az>P;>}>F7$dujO9_|6RrELFwIffWa zmj{*l&PI6L!&m`!ON#ukt3U3?Jvu@e$0Lg#=bnHVx1H+&mk!)P%zUV4xMs0o%fD_$M?!oK5>-@65-%J<38uUa9auz5-&@+tke+JC+5E5zIIQF z{P4GmEv1LQ=YF`EhksP`m)!2p+%Md(HP{k@L&W77a%#dA zX{-gsf!ruaao4}_F@#E0i^uZ+)f0sdKAunD6K_VP99bnnDIl!2^IAU1Jt^|TDazbK zD?W9|c!Li1P3LdnTez*qj)0G{Wl^nM)s;Kw;9K);poiP0$x`gfy4HMK9CSuM-QDV{ z&U!#rp@U)yR_Xap{H^?LZYKoQ^>$fG7bPLA((rfiT_ME{UF3)Jl!sYe;q&?Ke8J7A zP#{a`sWc*f@H>2OzK?rS$g>U~e{N7CdZb)(4miH(V%dq8aevW$z$nU*RDMqaI)@C0OZjE)=k#aE3qYo)r1v z^9?qD0>h4r#NKu8m} zq{xZ?Sebmsqn{!c%0>5+{)I9{u*Sh(=D*~>a_3Q{{4J4R|BW)dhm7y|?;*nteNF!TpK<**yj1hktEotDf^K9(AaCtNN(=x@`{R?;%zZZ6EF4_I16gP&KGtH9$4+8k;#)gH=P4x?0Xj8#HkU zQQoLor*bMWjD&8LwmMS@-f&;n1j88gRx_68M-o?u}5t`n#kwS zN;$9(?Rz+mKULnSV^OLY6w&rDM?ck2Rk3QE%BZ?qwM4a6wO+MN^?>S#>S@(U)!V8| zsvlH;c&I%>JYqdEJUV-H_vr6Y`_jf??->Ne~^E)zs5h^|2F^L{)7ET`&al+@}KR$$bYqez5k>B z$Nf+Hzv6$<|5N{81AGI*0^$Qw0y+lt2pAABBA_(D7BDMdLBNWDjRE@to(?z}a3SEW zfR6%x3iJvL4vY#E0^0`W1@;LX5;!KXGH`O>oWR9_YXUb1ZVlWU_;ld8z}Exc5BwtV z`yj8N$RJHndQh97te{(i`UQ;+stD2t)dbZBEe)y<+8y*r(7~YNL9YgV9Q0MtPr+Pp zcyLm1tKjy*w+HtK9vNH}Y!0>s&ktT6yd(JW;G@AW1UrJ?4E{3s_YieRP)Kx0Vn|xZ zts%Wa28E0YDG$+w)P~$2vMQu5WLL;jA*VuK4tXc!laQ}NRiUAwaiPhf8KF6$y+VhF zmV{0SwS?XkdVlDK(CwiQg+3X2EcE5j4?{19UJ3m(EHq3EYZ2BqtaDgl*x0afVaBk@ zVKc*)hiwUaAncK_r^3#KT@3p)>~h#o;aqrlcv5()@b=-I!@GwM4<8q944)i6Gkjk7 zhVTc%9}7Pc{(SiP@DIbk3;!*`Ga@h|DxyV1r-;0WJ`qDA#zYt+W<<=1SRAo7VoSv1 z5ho(fM!XjBZp3F1zeV~*hDRnurbc#(>=`*Qa%5y#WOd|>$c2$BBR56vj64+iV&qGa zZ$^F?`D2tiDkv&CN{ng|)g`KLR8iE}sBuxosJo+=*;L&(S4&wMVCkGqV3UhqgO@OMemB+^!KZ*W2`sWz`n7Eka zn2ea5m|ii%V@hHs#28~H$IOpe8?z>m~Uf#jrE9)icO7e6Ppv; zGj?EXd8{S&uGo8G7sjrP-4**}?6KGvW6#CD9(yVF*Eo;3fVjvwO2gHwvFO8oVKRtdy z{EGOE@w?*p$DfFQIsTpaPvXB$P$h&W#3dvrWF&M=C`=fhP?9hq!IE%q!t#U-3ELAM zN_Zy0k?>~1`w3qp{E--t7@4R^Oi#>8%ugJgI6AQ`u_95Au*ZuMS0~mdK9KlW;tPqd zCBB#VdE$48ziEOriJCM`YfT4DZ_Nlzsb-?as+p}>q1mX}q1ml@MDv{H70pG>r<%)} zD}s*@Er>!3p{>waC=|vD;{>BHS(qs-7q$ow2#*Ozgy)4fh0lfWgr7uC^c54tR$_bc zcCouSOuSRHh%?1`;xci)xJ`Ugd|o^+z9D`fUK0P*25O_UiP|*nt=eANLE2H;a;;8V ztG!>lN?WJhrF}|!O8c_*9qlLDUy^*1LX+ZfOs7LqK~iDT@T8KY2}#qE<|i#rT9>pn z>4~K0lFlW)n)GhccgcLRUvhYITyk=9hvb6f!sOw}CCS$0yOZZ9FHhc({BZKoPpL_{FJ*N~eah~XeJKZ1&ZNAZ@^Q*n zDLf266? zg3`2US!uVXbxZ4;R+KhAttPEDZEo6{wC#Gkm zcTMk=J}7-y`snnEbbY!d{jT(T(&wZvPG2XtZkR%r{-+ut|5y2$t^^6zU)FzzNI3d0 z^foUy^n;H{i9zHy8agTH}A6nDxEqMDB(*LkkP5NZgMr6_-hG{oQ|goY?X zG}U}cHJ{ZRV!hs=n$IcUo!KnLWUDYwM)yKKl*XcaJ0rb~sg%yqB1R5Q)9Mv*f*}Rx zMhv1sYe+IAQ_UAtbBSs$Q_YuKNR}bZkZ!=IOMjyp1h@E_YQABwh;)W-LGN;K84me& z8*eaRXE|bYup@lkODvOz807Fn){22ln{N2KWt5~C3*^S43WrL+;rw11@=N|0lpOmg zuf$q5o<$}Zf>Dn2^pHyY_L3pn(ALn71R2_sdP4_8#}Sf%Ar)rbNEX(#T+(Eu^hfD+ zRP!y1>hlBDT)BX!ZZ+Iy=xpes{%!~h#627q(6M95RP#O6e1{G8EMB#tE8Kl_Xhe4?|D+XnfNLn;50u(2I#@ z2k38bmy(%%41*9Bz|hyw&(PmcXc%A^NHwTfKU2*wRP!sLGJSn;oY$hGVl){y;h)|7hX&hal;Vu?mpz&Q&aD=?c zl7ukncqalpG&SFR3<+YwZg7r@XGUD~>RtNTjv(!@-Q671hS#;M-icUL9x>(sJU82LAM>4a40EXvM1|mb*7(SEfaP_B zOGICGf}vav|AvGA!w0#pI8UdrSevf!V~Y62hK-1wXjo!cYFK7iZdhShX;@`gZCGPi zYglJkZ`eSEP%4B`A)E>kREVTP6cwVW5JQDnD#TGCo(c(6NPNJs$xvsgH*7XA7rbr4 zNy85Ow#%^Fu!jm7Dzv0RD=K7AQDB}~6!DQVDr(su#WqyTq+&mom=HPI8!9bgid&g6 zP_gBBkNs@b)+!c3n_WRkX%{tO~gA@=iNsi;uuVhk{4&kmFVns^NN!1a> z5&PUKOCWFnPJAE=5YCY_4FrT+TF8P}gcW=~!eU_UbVV@>lBvB!m3Mrcnr%9UOEEQ4_aYsl)PhkwgO*Hty(d@T|@TbA}RXWIC zG7bR&ZRHgskQ`a}q^@(C`oC8VZ(i$tZ{dCKP=SRw6VxB)#a?>4?u+5K^5p*Sga_+(w7XJIc+3H z6+DWOGa~G34i!4o8$E)cUq|X81(*qiHkMqA^QBUzV~I>D&$uWRLCHQwU-juNMn9v! zF~Ar|g-%qMNQGrofPebtHDib|)EH(ACqc#tW27<47;TI(#v0>{@x}yWqEUl>U%B(! znsW7V#%^RW^wEZ)=O+aMW?dd+@b;AtD_ zoJ*VL>6JRI#(u{B@QLs$N+?YwJZHVJko8orbqW1z<3QseVRU7@GQJ`?+Xem&*fFk>E8x+Pe z+Dfad%H;BtVUYp@BhHAcWV3#k?4lHFw;oV2uEb)qD803EC9IXP#Hb_LyN#vBGGn>1 z!dPh>XB=;=GEOi~G*(k#02KyOVGtDtQ(*`dil{J@3d5){oC+hTFmkt1&$>eD$BgET zGe#?m^k%FfX;c{1FhUT<&;V4!QfHhuVVvCWifvFuR<*T73gjgX^WvLdgg@<9rAMCw z{ZsLpm%AY^yBY8i6KpC&=j)pH^g;|)DXuuW7tN(qOPv{)=fOQm&80{I%g_#3D_R?* zuw`-pQaKUM!^o^<$hA#Ew-sF^`HJ+!wO)z?#~7B#0$I#JjE9@Q6sga(S;rg9(5d-l zR*DPoRSnb+1UYE-bPXbU_l0D6$YH!!eY(y#n+l`hw`A{jADR&FKfMlkrG^+Ozk%|d zC?7yQ<*yb+*mqYz!`U z{+e{hPpnTu5b8=!`a{P3NP+r_aUbRWpu+fi^(V%4OnsJ!t5Yz#u>+L7$^qj+j4NIJ zr$&u>z3~w9eb>C!yzM@Ww)?2@X|&zX7>^s#p*Kja;bbbHqM|iiN`;zct>JUV=Nno> z8x?eoTSGbb&#<=btnr-jywPF2Km|P&j8s5_X`uoFXDd;Njfds74S|VS+csuM2|ieN zb))vCe2+=KM>@E8?KbW2G-Q|LhRp74$S?!+A8N?PSmiiu~w`bXnW#-EM97=JbXX8hgwhw)DnF>zFwLWQYRxQhzYs4$%hGpJBY z1&noPQsHhY%-U^I$-dg;r9NQtAzA9jO#aMQ-_yuf&!*h3R6r!x-`F38#sBB4S;+lz z=ODKAzwN6{aq!iqcq-hh_-YeAzq}>#H@{U3sy;wfIBF`~2Ty0pmOS0O=AJG@bx?U>2h(lv)uxW7P9}8B7f@j# z74F|`>MZ-}MgN|!Hgz}klzg?Rhvci5+%N@0N)6?coB3H&p)tlZ&@{*xZyI7MVt#g& zWntf zrf~uqe5h%L>_hSWx&QoICrvM!PMJ=_^_(=F zGo7cx0V+IAg=eVnxa4~9>k%p(Yck7HoS|jojJ|b3bZ7rFpOkRb#dZ9%g9J$8fjTdZ`qVuyE-MSs7U%C!5 z{bu^z^oQwBGcj{iI8H;+aeI~uC#dio6`rTU3sg9{!>lrUm_56WF?*T4%|2#dDqx!T z6ctX>P_(;esBo4FC^`-{xfvx7s^!nYG|cv52ozjiVZ~OzhIL*9Q8X&+Rq_zBFXlX@ z4@Hf!lwrC7qsxpEOxxmFi!|ks!NT`D{}ja5a0@V(h-mC=Zg&hDh}$tfkgiJu4Rd%` z-6nk6MgAp9{)K&$C$CpG=Mq+-^PvWMJ4Qp&;Wkp#+m{N+cG;_KvOje~OzAR&IMTM6zx$H2vAwlL$a~8}|CV#p{&cQ~* zHY&VKh3~Fed(G|5ImUQ%$Hui6b?z0Z_M$`GtoE8ao4YjB-Z!c6YO~sF?uOcH&Np{A zV+!vzD!fjGH?CWI|3+Ok7s++?t$(GiO6{?Eq`3@5-aM-7AoCdWSaY%YPIHO5lnU=i zMgAfc-lf8ORCu2XA5h`L9cFxW$XtmcKi*tro?yld_eWItj0#^!Mg9^ME>i)s|I#*t z|1L$|Y(qh^n`_1z%=qwDg)@3N#?&8E;ZwQbO-93J#<1-ZWGBAq-5MWHEW`IB@S)|3 zT*L+*k1y4>E@OQ_c;PmqYKSr<-SB9syI8{cKkDU4ugTor5c^ zTg$4P}GU$4QhHl5F3`WYHs&NHgWnL|d9#NziMYh9wGd=;uHdQpKw3u8gn^>+KT-jcNI!2jKaS{vSycE%>PG&?tP<+h0uZ#$pNwrRRb@?`+xjIS(^h=ws z0ikR0BB?i@FvgSm1~-LGF9Ot^!2a9ZNu4sEb~z~#Ez|GKozw;9q+T+=Y=*DHEZLt_ zB>$+B`bct8BL6QqDY*!K&RT^psOaHp6}~iQQPK0duKzpp_gA@oF@TEd>%0D6%)d5R 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

OfpZHvvygig@=T$1oW|Z2is4ld7M8tmY!Z=@ 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

`O1G8m>|!s!V;|DlhjiX;I{T2$KBTh` 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 diff --git a/iosApp/iosApp/components/partners/PartnerRowView.swift b/iosApp/iosApp/components/partners/PartnerRowView.swift deleted file mode 100644 index b82095f05..000000000 --- a/iosApp/iosApp/components/partners/PartnerRowView.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// PartnerRowView.swift -// iosApp -// -// Created by GERARD on 03/05/2022. -// Copyright © 2022 orgName. All rights reserved. -// - -import SwiftUI -import shared - -struct PartnerRowView: View { - let partners: Array - let parentWidth: CGFloat - let maxItems: Int = 3 - - var body: some View { - HStack(spacing: 8) { - let maxItemsFloat = CGFloat(maxItems) - let width = (parentWidth - (8 * (maxItemsFloat - 1))) / maxItemsFloat - ForEach(partners, id: \.id) { partner in - PartnerItemNavigation( - partner: partner, - size: width - ) - } - } - } -} - -struct PartnerRowView_Previews: PreviewProvider { - static var previews: some View { - GeometryReader { geometry in - let parentWidth = geometry.size.width - PartnerRowView( - partners: [ - PartnerItemUi.companion.fake, - PartnerItemUi.companion.fake, - PartnerItemUi.companion.fake - ], - parentWidth: parentWidth - ) - } - .environmentObject(ViewModelFactory()) - } -} diff --git a/iosApp/iosApp/navigations/PartnerItemNavigation.swift b/iosApp/iosApp/navigations/PartnerItemNavigation.swift index 51ec959b2..fbe13b8c3 100644 --- a/iosApp/iosApp/navigations/PartnerItemNavigation.swift +++ b/iosApp/iosApp/navigations/PartnerItemNavigation.swift @@ -12,7 +12,6 @@ import shared struct PartnerItemNavigation: View { @EnvironmentObject var viewModelFactory: ViewModelFactory let partner: PartnerItemUi - let size: CGFloat var body: some View { NavigationLink { @@ -26,7 +25,6 @@ struct PartnerItemNavigation: View { id: partner.id ) .padding() - .frame(width: size, height: size) .background(Color.white) .clipShape(RoundedRectangle(cornerRadius: 8)) } diff --git a/iosApp/iosApp/screens/partners/Partners.swift b/iosApp/iosApp/screens/partners/Partners.swift index 5961aaa54..a627a3455 100644 --- a/iosApp/iosApp/screens/partners/Partners.swift +++ b/iosApp/iosApp/screens/partners/Partners.swift @@ -21,12 +21,11 @@ struct Partners: View { LazyVStack(spacing: 8) { ForEach(partners.groups, id: \.type) { partnerGroup in Section { - ForEach(partnerGroup.partners, id: \.[0].id) { partners in - PartnerRowView( - partners: partners, - parentWidth: parentWidth - ) - } + LazyVGrid(columns: [GridItem(.adaptive(minimum: parentWidth)), GridItem(.adaptive(minimum: parentWidth)), GridItem(.adaptive(minimum: parentWidth))], content: { + ForEach(partnerGroup.partners, id: \.id) { partner in + PartnerItemNavigation(partner: partner) + } + }) } header : { PartnerDividerView(text: partnerGroup.type) .padding(.horizontal, self.horizontalSpacing) diff --git a/settings.gradle.kts b/settings.gradle.kts index dcd74c702..9f6573af3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,27 +17,35 @@ pluginManagement { rootProject.name = "conferences4hall" include(":androidApp") include(":shared:core") +include(":shared:core-di") include(":shared:models") include(":shared:ui-models") include(":backend") include(":benchmark") -include(":theme-m3:main") +include(":theme-m3:main:main") +include(":theme-m3:main:main-di") include(":theme-m3:schedules:schedules-ui") include(":theme-m3:schedules:schedules-screens") include(":theme-m3:schedules:schedules-feature") +include(":theme-m3:schedules:schedules-di") include(":theme-m3:speakers:speakers-ui") include(":theme-m3:speakers:speakers-screens") include(":theme-m3:speakers:speakers-feature") +include(":theme-m3:speakers:speakers-di") include(":theme-m3:networking:networking-ui") include(":theme-m3:networking:networking-screens") include(":theme-m3:networking:networking-feature") +include(":theme-m3:networking:networking-di") include(":theme-m3:partners:partners-ui") include(":theme-m3:partners:partners-screens") include(":theme-m3:partners:partners-feature") +include(":theme-m3:partners:partners-di") include(":theme-m3:infos:infos-ui") include(":theme-m3:infos:infos-feature") +include(":theme-m3:infos:infos-di") include(":theme-m3:event-list:event-list-ui") include(":theme-m3:event-list:event-list-feature") +include(":theme-m3:event-list:event-list-di") include(":theme-m3:navigation") include(":theme-m3:style:networking") include(":theme-m3:style:partners") diff --git a/shared/core-di/build.gradle.kts b/shared/core-di/build.gradle.kts new file mode 100644 index 000000000..cb262d3e3 --- /dev/null +++ b/shared/core-di/build.gradle.kts @@ -0,0 +1,58 @@ +import org.gradle.internal.os.OperatingSystem + +plugins { + id("conferences4hall.multiplatform.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.shared.di" + buildFeatures { + buildConfig = true + } +} + +kotlin { + androidTarget() + + if (OperatingSystem.current().isMacOsX) { + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { + it.binaries.framework { + baseName = "shared-di" + isStatic = false + // Required https://github.com/cashapp/sqldelight/issues/1442 + linkerOpts.add("-lsqlite3") + } + } + } + + sourceSets { + val commonMain by getting { + dependencies { + api(projects.shared.core) + + implementation(libs.koin.core) + } + } + val androidMain by getting { + dependencies { + implementation(libs.koin.android) + } + } + if (OperatingSystem.current().isMacOsX) { + val iosX64Main by getting + val iosArm64Main by getting + val iosSimulatorArm64Main by getting + val iosMain by creating { + dependsOn(commonMain) + iosX64Main.dependsOn(this) + iosArm64Main.dependsOn(this) + iosSimulatorArm64Main.dependsOn(this) + } + } + } +} diff --git a/shared/core-di/src/androidMain/kotlin/org/gdglille/devfest/AndroidPlatformModule.kt b/shared/core-di/src/androidMain/kotlin/org/gdglille/devfest/AndroidPlatformModule.kt new file mode 100644 index 000000000..f0eaac27f --- /dev/null +++ b/shared/core-di/src/androidMain/kotlin/org/gdglille/devfest/AndroidPlatformModule.kt @@ -0,0 +1,30 @@ +package org.gdglille.devfest + +import androidx.activity.ComponentActivity +import com.russhwolf.settings.AndroidSettings +import com.russhwolf.settings.ExperimentalSettingsApi +import com.russhwolf.settings.ObservableSettings +import org.gdglille.devfest.database.DatabaseWrapper +import org.gdglille.devfest.db.Conferences4HallDatabase +import org.gdglille.devfest.repositories.QrCodeGenerator +import org.koin.android.ext.koin.androidApplication +import org.koin.android.ext.koin.androidContext +import org.koin.core.qualifier.named +import org.koin.dsl.module +import java.util.Locale + +@OptIn(ExperimentalSettingsApi::class) +actual val platformModule = module { + single { DatabaseWrapper(androidContext()).createDb() } + single { Platform(AndroidContext(androidApplication())) } + single { + AndroidSettings( + androidContext().getSharedPreferences( + /* name = */ "org.gdglille.devfest.android", + /* mode = */ ComponentActivity.MODE_PRIVATE + ) + ) + } + single(named(AcceptLanguageNamed)) { Locale.getDefault().toLanguageTag() } + single { QrCodeGeneratorAndroid() } +} diff --git a/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/DatabaseModule.kt b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/DatabaseModule.kt new file mode 100644 index 000000000..33f6bb4fa --- /dev/null +++ b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/DatabaseModule.kt @@ -0,0 +1,23 @@ +package org.gdglille.devfest + +import com.russhwolf.settings.ExperimentalSettingsApi +import org.gdglille.devfest.database.EventDao +import org.gdglille.devfest.database.FeaturesActivatedDao +import org.gdglille.devfest.database.PartnerDao +import org.gdglille.devfest.database.ScheduleDao +import org.gdglille.devfest.database.SpeakerDao +import org.gdglille.devfest.database.TalkDao +import org.gdglille.devfest.database.UserDao +import org.koin.dsl.module + +@OptIn(ExperimentalSettingsApi::class) +val databasesModule = module { + includes(platformModule) + single { EventDao(db = get(), settings = get()) } + single { FeaturesActivatedDao(db = get(), settings = get()) } + single { PartnerDao(db = get(), platform = get()) } + single { ScheduleDao(db = get(), settings = get(), platform = get()) } + single { SpeakerDao(db = get(), platform = get()) } + single { TalkDao(db = get(), platform = get()) } + single { UserDao(db = get(), platform = get()) } +} diff --git a/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/NetworkModule.kt b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/NetworkModule.kt new file mode 100644 index 000000000..5942fb18b --- /dev/null +++ b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/NetworkModule.kt @@ -0,0 +1,16 @@ +package org.gdglille.devfest + +import org.gdglille.devfest.network.ConferenceApi +import org.koin.core.qualifier.named +import org.koin.dsl.module + +val networksModule = module { + single { + ConferenceApi.create( + platform = get(), + baseUrl = get(named(Conference4HallBaseUrlNamed)), + acceptLanguage = get(named(AcceptLanguageNamed)), + enableNetworkLogs = get(named(IsDebugNamed)) + ) + } +} diff --git a/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/PlatformModule.kt b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/PlatformModule.kt new file mode 100644 index 000000000..70b7bfcc7 --- /dev/null +++ b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/PlatformModule.kt @@ -0,0 +1,10 @@ +package org.gdglille.devfest + +import org.koin.core.module.Module + +const val IsDebugNamed = "IsDebug" +const val ApplicationIdNamed = "ApplicationId" +const val AcceptLanguageNamed = "Accept-Language" +const val Conference4HallBaseUrlNamed = "Conference4HallBaseUrl" + +expect val platformModule: Module diff --git a/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/RepositoryModule.kt b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/RepositoryModule.kt new file mode 100644 index 000000000..c65516348 --- /dev/null +++ b/shared/core-di/src/commonMain/kotlin/org/gdglille/devfest/RepositoryModule.kt @@ -0,0 +1,28 @@ +package org.gdglille.devfest + +import org.gdglille.devfest.repositories.AgendaRepository +import org.gdglille.devfest.repositories.EventRepository +import org.gdglille.devfest.repositories.SpeakerRepository +import org.gdglille.devfest.repositories.UserRepository +import org.koin.dsl.module + +val repositoriesModule = module { + includes(databasesModule, networksModule) + single { + AgendaRepository.Factory.create( + api = get(), + scheduleDao = get(), + speakerDao = get(), + talkDao = get(), + eventDao = get(), + partnerDao = get(), + featuresDao = get(), + qrCodeGenerator = get() + ) + } + single { EventRepository.Factory.create(api = get(), eventDao = get()) } + single { SpeakerRepository.Factory.create(get(), eventDao = get()) } + single { + UserRepository.Factory.create(userDao = get(), eventDao = get(), qrCodeGenerator = get()) + } +} diff --git a/shared/core-di/src/iosMain/kotlin/org/gdglille/devfest/iOSPlatformModule.kt b/shared/core-di/src/iosMain/kotlin/org/gdglille/devfest/iOSPlatformModule.kt new file mode 100644 index 000000000..0d378f38d --- /dev/null +++ b/shared/core-di/src/iosMain/kotlin/org/gdglille/devfest/iOSPlatformModule.kt @@ -0,0 +1,22 @@ +package org.gdglille.devfest + +import com.russhwolf.settings.AppleSettings +import com.russhwolf.settings.ExperimentalSettingsApi +import com.russhwolf.settings.ObservableSettings +import org.gdglille.devfest.database.DatabaseWrapper +import org.gdglille.devfest.db.Conferences4HallDatabase +import org.gdglille.devfest.repositories.QrCodeGenerator +import org.koin.core.qualifier.named +import org.koin.dsl.module +import platform.Foundation.NSLocale +import platform.Foundation.NSUserDefaults.Companion.standardUserDefaults +import platform.Foundation.preferredLanguages + +@OptIn(ExperimentalSettingsApi::class) +actual val platformModule = module { + single { DatabaseWrapper().createDb() } + single { Platform(PlatformContext()) } + single { AppleSettings(standardUserDefaults) } + single(named(AcceptLanguageNamed)) { NSLocale.preferredLanguages.first() } + single { QrCodeGeneratoriOS() } +} diff --git a/shared/core/build.gradle.kts b/shared/core/build.gradle.kts index 58daf86b0..8281c4110 100644 --- a/shared/core/build.gradle.kts +++ b/shared/core/build.gradle.kts @@ -27,6 +27,8 @@ kotlin { export(libs.settings) export(projects.shared.models) export(projects.shared.uiModels) + // Required https://github.com/cashapp/sqldelight/issues/1442 + linkerOpts.add("-lsqlite3") } } } diff --git a/shared/core/src/iosMain/kotlin/org/gdglille/devfest/QrCodeGeneratoriOS.kt b/shared/core/src/iosMain/kotlin/org/gdglille/devfest/QrCodeGeneratoriOS.kt new file mode 100644 index 000000000..c75694cd1 --- /dev/null +++ b/shared/core/src/iosMain/kotlin/org/gdglille/devfest/QrCodeGeneratoriOS.kt @@ -0,0 +1,28 @@ +package org.gdglille.devfest + +import kotlinx.cinterop.ExperimentalForeignApi +import org.gdglille.devfest.models.ui.Image +import org.gdglille.devfest.repositories.QrCodeGenerator +import platform.CoreGraphics.CGColorSpaceCreateDeviceRGB +import platform.CoreImage.CIContext +import platform.CoreImage.CIFilter +import platform.CoreImage.JPEGRepresentationOfImage +import platform.CoreImage.QRCodeGenerator +import platform.Foundation.setValue +import platform.UIKit.UIImage + +class QrCodeGeneratoriOS : QrCodeGenerator { + @OptIn(ExperimentalForeignApi::class) + override fun generate(text: String): Image { + val filter = CIFilter.QRCodeGenerator().apply { + setValue(text, forKey = "inputMessage") + } + val outputImg = filter.outputImage ?: return UIImage() + val nsData = CIContext().JPEGRepresentationOfImage( + outputImg, + CGColorSpaceCreateDeviceRGB(), + mapOf() + ) ?: return UIImage() + return UIImage(nsData) + } +} diff --git a/theme-m3/event-list/event-list-di/.gitignore b/theme-m3/event-list/event-list-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/event-list/event-list-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/event-list/event-list-di/build.gradle.kts b/theme-m3/event-list/event-list-di/build.gradle.kts new file mode 100644 index 000000000..3ebf27d72 --- /dev/null +++ b/theme-m3/event-list/event-list-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.events.di" +} + +dependencies { + implementation(projects.themeM3.eventList.eventListFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/event-list/event-list-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/di/EventListModule.kt b/theme-m3/event-list/event-list-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/di/EventListModule.kt new file mode 100644 index 000000000..9960a015c --- /dev/null +++ b/theme-m3/event-list/event-list-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/di/EventListModule.kt @@ -0,0 +1,11 @@ +package org.gdglille.devfest.android.theme.m3.events.di + +import org.gdglille.devfest.android.theme.m3.events.feature.EventListViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.androidx.viewmodel.dsl.viewModel +import org.koin.dsl.module + +val eventListModule = module { + includes(repositoriesModule) + viewModel { EventListViewModel(get()) } +} diff --git a/theme-m3/event-list/event-list-feature/build.gradle.kts b/theme-m3/event-list/event-list-feature/build.gradle.kts index 327886d58..652e21d1a 100644 --- a/theme-m3/event-list/event-list-feature/build.gradle.kts +++ b/theme-m3/event-list/event-list-feature/build.gradle.kts @@ -14,6 +14,8 @@ dependencies { implementation(projects.themeM3.navigation) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListVM.kt b/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListVM.kt index 813527623..6b0d175c1 100644 --- a/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListVM.kt +++ b/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListVM.kt @@ -1,24 +1,18 @@ package org.gdglille.devfest.android.theme.m3.events.feature -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.EventRepository +import org.koin.androidx.compose.koinViewModel -@OptIn(ExperimentalFoundationApi::class) @Composable fun EventListVM( - repository: EventRepository, onEventClicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: EventListViewModel = viewModel( - factory = EventListViewModel.Factory.create(repository) - ) + viewModel: EventListViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListViewModel.kt b/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListViewModel.kt index e6ae84c70..318d58946 100644 --- a/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListViewModel.kt +++ b/theme-m3/event-list/event-list-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/events/feature/EventListViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.events.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -42,12 +41,4 @@ class EventListViewModel(private val repository: EventRepository) : ViewModel() fun savedEventId(eventId: String) = viewModelScope.launch { repository.saveEventId(eventId) } - - object Factory { - fun create(repository: EventRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - EventListViewModel(repository = repository) as T - } - } } diff --git a/theme-m3/infos/infos-di/.gitignore b/theme-m3/infos/infos-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/infos/infos-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/infos/infos-di/build.gradle.kts b/theme-m3/infos/infos-di/build.gradle.kts new file mode 100644 index 000000000..b79a64c1c --- /dev/null +++ b/theme-m3/infos/infos-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.infos.di" +} + +dependencies { + implementation(projects.themeM3.infos.infosFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/infos/infos-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/di/InfosModule.kt b/theme-m3/infos/infos-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/di/InfosModule.kt new file mode 100644 index 000000000..0e81af94f --- /dev/null +++ b/theme-m3/infos/infos-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/di/InfosModule.kt @@ -0,0 +1,19 @@ +package org.gdglille.devfest.android.theme.m3.infos.di + +import org.gdglille.devfest.android.theme.m3.infos.feature.CoCViewModel +import org.gdglille.devfest.android.theme.m3.infos.feature.EventViewModel +import org.gdglille.devfest.android.theme.m3.infos.feature.InfoViewModel +import org.gdglille.devfest.android.theme.m3.infos.feature.MenusViewModel +import org.gdglille.devfest.android.theme.m3.infos.feature.QAndAListViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.androidx.viewmodel.dsl.viewModel +import org.koin.dsl.module + +val infosModule = module { + includes(repositoriesModule) + viewModel { CoCViewModel(get()) } + viewModel { EventViewModel(get()) } + viewModel { InfoViewModel(get(), get()) } + viewModel { MenusViewModel(get()) } + viewModel { QAndAListViewModel(get()) } +} diff --git a/theme-m3/infos/infos-feature/build.gradle.kts b/theme-m3/infos/infos-feature/build.gradle.kts index 995c44fe1..d286bd233 100644 --- a/theme-m3/infos/infos-feature/build.gradle.kts +++ b/theme-m3/infos/infos-feature/build.gradle.kts @@ -14,6 +14,8 @@ dependencies { implementation(projects.themeM3.navigation) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCVM.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCVM.kt index 1971d6403..92fbd58a4 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCVM.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCVM.kt @@ -5,19 +5,15 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @Composable fun CoCVM( - agendaRepository: AgendaRepository, onReportByPhoneClicked: (String) -> Unit, onReportByEmailClicked: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: CoCViewModel = viewModel( - factory = CoCViewModel.Factory.create(agendaRepository) - ) + viewModel: CoCViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCViewModel.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCViewModel.kt index 9b5c231d1..b637e911b 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCViewModel.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/CoCViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.infos.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -12,7 +11,7 @@ import org.gdglille.devfest.models.ui.CoCUi import org.gdglille.devfest.repositories.AgendaRepository sealed class CoCUiState { - object Loading : CoCUiState() + data object Loading : CoCUiState() data class Success(val coc: CoCUi) : CoCUiState() data class Failure(val throwable: Throwable) : CoCUiState() } @@ -33,11 +32,4 @@ class CoCViewModel(private val repository: AgendaRepository) : ViewModel() { } } } - - object Factory { - fun create(repository: AgendaRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = CoCViewModel(repository = repository) as T - } - } } diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/EventVM.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/EventVM.kt index eab0292ac..154b4ae4e 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/EventVM.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/EventVM.kt @@ -5,19 +5,15 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @Composable fun EventVM( - agendaRepository: AgendaRepository, onLinkClicked: (url: String?) -> Unit, onItineraryClicked: (lat: Double, lng: Double) -> Unit, modifier: Modifier = Modifier, - viewModel: EventViewModel = viewModel( - factory = EventViewModel.Factory.create(agendaRepository) - ) + viewModel: EventViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/InfoCompactVM.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/InfoCompactVM.kt index 1e46fc70b..a8e2d0fe9 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/InfoCompactVM.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/InfoCompactVM.kt @@ -11,19 +11,15 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.navigation.ActionIds import org.gdglille.devfest.android.theme.m3.navigation.TabActions import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.Scaffold -import org.gdglille.devfest.repositories.AgendaRepository -import org.gdglille.devfest.repositories.EventRepository +import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalFoundationApi::class) @Composable fun InfoCompactVM( - agendaRepository: AgendaRepository, - eventRepository: EventRepository, onItineraryClicked: (lat: Double, lng: Double) -> Unit, onLinkClicked: (url: String?) -> Unit, onTicketScannerClicked: () -> Unit, @@ -31,19 +27,16 @@ fun InfoCompactVM( onReportByPhoneClicked: (String) -> Unit, onReportByEmailClicked: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: InfoViewModel = viewModel( - factory = InfoViewModel.Factory.create(agendaRepository, eventRepository) - ) + viewModel: InfoViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() val title = stringResource(id = R.string.screen_info) when (uiState.value) { is InfoUiState.Loading -> Scaffold(title = title, modifier = modifier) { EventVM( - agendaRepository = agendaRepository, - modifier = Modifier.fillMaxSize(), onLinkClicked = onLinkClicked, - onItineraryClicked = onItineraryClicked + onItineraryClicked = onItineraryClicked, + modifier = Modifier.fillMaxSize() ) } @@ -85,28 +78,24 @@ fun InfoCompactVM( ) { page -> when (uiModel.tabActionsUi.actions[page].route) { TabActions.event.route -> EventVM( - agendaRepository = agendaRepository, - modifier = Modifier.fillMaxSize(), onLinkClicked = onLinkClicked, - onItineraryClicked = onItineraryClicked + onItineraryClicked = onItineraryClicked, + modifier = Modifier.fillMaxSize() ) TabActions.menus.route -> MenusVM( - agendaRepository = agendaRepository, modifier = Modifier.fillMaxSize() ) TabActions.qanda.route -> QAndAListVM( - agendaRepository = agendaRepository, - modifier = Modifier.fillMaxSize(), - onLinkClicked = onLinkClicked + onLinkClicked = onLinkClicked, + modifier = Modifier.fillMaxSize() ) TabActions.coc.route -> CoCVM( - agendaRepository = agendaRepository, - modifier = Modifier.fillMaxSize(), onReportByPhoneClicked = onReportByPhoneClicked, - onReportByEmailClicked = onReportByEmailClicked + onReportByEmailClicked = onReportByEmailClicked, + modifier = Modifier.fillMaxSize() ) else -> TODO("Screen not implemented") diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/MenusVM.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/MenusVM.kt index ceafddad8..0bbc1e395 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/MenusVM.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/MenusVM.kt @@ -6,18 +6,14 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable fun MenusVM( - agendaRepository: AgendaRepository, modifier: Modifier = Modifier, - viewModel: MenusViewModel = viewModel( - factory = MenusViewModel.Factory.create(agendaRepository) - ) + viewModel: MenusViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/QAndAListVM.kt b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/QAndAListVM.kt index b064b9a04..4aeadfb7c 100644 --- a/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/QAndAListVM.kt +++ b/theme-m3/infos/infos-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/infos/feature/QAndAListVM.kt @@ -5,18 +5,14 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @Composable fun QAndAListVM( - agendaRepository: AgendaRepository, onLinkClicked: (url: String) -> Unit, modifier: Modifier = Modifier, - viewModel: QAndAListViewModel = viewModel( - factory = QAndAListViewModel.Factory.create(agendaRepository) - ) + viewModel: QAndAListViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/main/main-di/.gitignore b/theme-m3/main/main-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/main/main-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/main/main-di/build.gradle.kts b/theme-m3/main/main-di/build.gradle.kts new file mode 100644 index 000000000..15a09d4b9 --- /dev/null +++ b/theme-m3/main/main-di/build.gradle.kts @@ -0,0 +1,22 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.main.di" +} + +dependencies { + implementation(projects.themeM3.main.main) + implementation(projects.themeM3.eventList.eventListDi) + implementation(projects.themeM3.infos.infosDi) + implementation(projects.themeM3.networking.networkingDi) + implementation(projects.themeM3.partners.partnersDi) + implementation(projects.themeM3.schedules.schedulesDi) + implementation(projects.themeM3.speakers.speakersDi) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/main/main-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/main/di/MainModule.kt b/theme-m3/main/main-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/main/di/MainModule.kt new file mode 100644 index 000000000..7737edc98 --- /dev/null +++ b/theme-m3/main/main-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/main/di/MainModule.kt @@ -0,0 +1,26 @@ +package org.gdglille.devfest.android.theme.m3.main.di + +import org.gdglille.devfest.android.theme.MainNavigationViewModel +import org.gdglille.devfest.android.theme.MainViewModel +import org.gdglille.devfest.android.theme.m3.events.di.eventListModule +import org.gdglille.devfest.android.theme.m3.infos.di.infosModule +import org.gdglille.devfest.android.theme.m3.networking.di.networkingModule +import org.gdglille.devfest.android.theme.m3.partners.di.partnersModule +import org.gdglille.devfest.android.theme.m3.schedules.di.scheduleModule +import org.gdglille.devfest.android.theme.m3.speakers.di.speakersModule +import org.gdglille.devfest.repositoriesModule +import org.koin.dsl.module + +val mainModule = module { + includes( + repositoriesModule, + eventListModule, + infosModule, + networkingModule, + partnersModule, + scheduleModule, + speakersModule + ) + single { MainNavigationViewModel(get(), get()) } + single { MainViewModel(get()) } +} diff --git a/theme-m3/main/build.gradle.kts b/theme-m3/main/main/build.gradle.kts similarity index 97% rename from theme-m3/main/build.gradle.kts rename to theme-m3/main/main/build.gradle.kts index 8dfec9578..757cfef5f 100644 --- a/theme-m3/main/build.gradle.kts +++ b/theme-m3/main/main/build.gradle.kts @@ -22,6 +22,8 @@ dependencies { implementation(projects.shared.uiModels) implementation(projects.shared.core) + implementation(libs.koin.androidx.compose) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material3.windowsizeclass) diff --git a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt similarity index 64% rename from theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt rename to theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt index 105590fc4..213e8fef8 100644 --- a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt +++ b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/Main.kt @@ -2,29 +2,19 @@ package org.gdglille.devfest.android.theme import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState -import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavHostController import io.openfeedback.android.viewmodels.OpenFeedbackFirebaseConfig import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview -import org.gdglille.devfest.AlarmScheduler import org.gdglille.devfest.android.theme.m3.style.Conferences4HallTheme import org.gdglille.devfest.models.ui.ExportNetworkingUi -import org.gdglille.devfest.repositories.AgendaRepository -import org.gdglille.devfest.repositories.EventRepository -import org.gdglille.devfest.repositories.SpeakerRepository -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @Suppress("LongMethod", "UnusedPrivateMember") @ExperimentalCoroutinesApi @FlowPreview @Composable fun Main( - eventRepository: EventRepository, - agendaRepository: AgendaRepository, - userRepository: UserRepository, - speakerRepository: SpeakerRepository, - alarmScheduler: AlarmScheduler, openfeedbackFirebaseConfig: OpenFeedbackFirebaseConfig, launchUrl: (String) -> Unit, onContactExportClicked: (ExportNetworkingUi) -> Unit, @@ -33,9 +23,7 @@ fun Main( onShareClicked: (text: String) -> Unit, onItineraryClicked: (lat: Double, lng: Double) -> Unit, navController: NavHostController, - viewModel: MainViewModel = viewModel( - factory = MainViewModel.Factory.create(eventRepository) - ) + viewModel: MainViewModel = koinViewModel() ) { Conferences4HallTheme { val uiState = viewModel.uiState.collectAsState() @@ -50,13 +38,8 @@ fun Main( onReportByEmailClicked = onReportByEmailClicked, onShareClicked = onShareClicked, onItineraryClicked = onItineraryClicked, - agendaRepository = agendaRepository, - userRepository = userRepository, - speakerRepository = speakerRepository, - eventRepository = eventRepository, - alarmScheduler = alarmScheduler, - navController = navController, - savedStateHandle = navController.currentBackStackEntry?.savedStateHandle + savedStateHandle = navController.currentBackStackEntry?.savedStateHandle, + navController = navController ) } diff --git a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt similarity index 88% rename from theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt rename to theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt index c27656d13..5981d06e1 100644 --- a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt +++ b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt @@ -12,7 +12,6 @@ import androidx.compose.runtime.livedata.observeAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.lifecycle.SavedStateHandle -import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavHostController import androidx.navigation.NavType @@ -25,7 +24,6 @@ import androidx.navigation.navDeepLink import io.openfeedback.android.viewmodels.OpenFeedbackFirebaseConfig import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview -import org.gdglille.devfest.AlarmScheduler import org.gdglille.devfest.android.theme.m3.events.feature.EventListVM import org.gdglille.devfest.android.theme.m3.infos.feature.InfoCompactVM import org.gdglille.devfest.android.theme.m3.infos.feature.TicketQrCodeScanner @@ -44,10 +42,7 @@ import org.gdglille.devfest.android.theme.m3.style.appbars.iconColor import org.gdglille.devfest.models.ui.ExportNetworkingUi import org.gdglille.devfest.models.ui.VCardModel import org.gdglille.devfest.models.ui.convertToModelUi -import org.gdglille.devfest.repositories.AgendaRepository -import org.gdglille.devfest.repositories.EventRepository -import org.gdglille.devfest.repositories.SpeakerRepository -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @Suppress("LongMethod") @OptIn( @@ -64,17 +59,10 @@ fun MainNavigation( onReportByEmailClicked: (String) -> Unit, onShareClicked: (text: String) -> Unit, onItineraryClicked: (lat: Double, lng: Double) -> Unit, - agendaRepository: AgendaRepository, - userRepository: UserRepository, - speakerRepository: SpeakerRepository, - eventRepository: EventRepository, - alarmScheduler: AlarmScheduler, modifier: Modifier = Modifier, savedStateHandle: SavedStateHandle? = null, navController: NavHostController = rememberNavController(), - viewModel: MainNavigationViewModel = viewModel( - factory = MainNavigationViewModel.Factory.create(agendaRepository, userRepository) - ) + viewModel: MainNavigationViewModel = koinViewModel() ) { if (savedStateHandle != null) { val qrCodeTicket by savedStateHandle.getLiveData(ResultKey.QR_CODE_TICKET) @@ -140,7 +128,6 @@ fun MainNavigation( builder = { composable(route = Screen.EventList.route) { EventListVM( - repository = eventRepository, onEventClicked = { navController.navigate(Screen.ScheduleList.route) { this.popUpTo(Screen.EventList.route) { @@ -152,15 +139,12 @@ fun MainNavigation( } composable(Screen.ScheduleList.route) { ScheduleListCompactVM( - agendaRepository = agendaRepository, - alarmScheduler = alarmScheduler, onFilterClicked = { navController.navigate(Screen.ScheduleFilters.route) }, onTalkClicked = { navController.navigate(Screen.Schedule.route(it)) } ) } composable(route = Screen.ScheduleFilters.route) { AgendaFiltersVM( - agendaRepository = agendaRepository, onBackClicked = { navController.popBackStack() } ) } @@ -171,7 +155,6 @@ fun MainNavigation( ScheduleDetailOrientableVM( scheduleId = it.arguments?.getString("scheduleId")!!, openfeedbackFirebaseConfig = openfeedbackFirebaseConfig, - agendaRepository = agendaRepository, onBackClicked = { navController.popBackStack() }, onSpeakerClicked = { navController.navigate(Screen.Speaker.route(it)) }, onShareClicked = onShareClicked @@ -179,7 +162,6 @@ fun MainNavigation( } composable(Screen.SpeakerList.route) { SpeakersListCompactVM( - speakerRepository = speakerRepository, onSpeakerClicked = { navController.navigate(Screen.Speaker.route(it)) } ) } @@ -189,8 +171,6 @@ fun MainNavigation( ) { SpeakerDetailOrientableVM( speakerId = it.arguments?.getString("speakerId")!!, - agendaRepository = agendaRepository, - alarmScheduler = alarmScheduler, onTalkClicked = { navController.navigate(Screen.Schedule.route(it)) }, onLinkClicked = { launchUrl(it) }, onBackClicked = { navController.popBackStack() } @@ -198,8 +178,6 @@ fun MainNavigation( } composable(Screen.MyProfile.route) { NetworkingCompactVM( - agendaRepository = agendaRepository, - userRepository = userRepository, onCreateProfileClicked = { navController.navigate(Screen.NewProfile.route) }, onContactScannerClicked = { navController.navigate(Screen.ScannerVCard.route) }, onContactExportClicked = onContactExportClicked @@ -207,13 +185,11 @@ fun MainNavigation( } composable(route = Screen.NewProfile.route) { ProfileInputVM( - userRepository = userRepository, onBackClicked = { navController.popBackStack() } ) } composable(Screen.PartnerList.route) { PartnersListCompactVM( - agendaRepository = agendaRepository, onPartnerClick = { navController.navigate(Screen.Partner.route(it)) } ) } @@ -226,7 +202,6 @@ fun MainNavigation( ) { PartnerDetailOrientableVM( partnerId = it.arguments?.getString("partnerId")!!, - agendaRepository = agendaRepository, onLinkClicked = { launchUrl(it) }, onItineraryClicked = onItineraryClicked, onBackClicked = { navController.popBackStack() } @@ -234,8 +209,6 @@ fun MainNavigation( } composable(Screen.Event.route) { InfoCompactVM( - agendaRepository = agendaRepository, - eventRepository = eventRepository, onItineraryClicked = onItineraryClicked, onLinkClicked = { url -> url?.let { launchUrl(it) } }, onTicketScannerClicked = { navController.navigate(Screen.ScannerTicket.route) }, diff --git a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigationViewModel.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigationViewModel.kt similarity index 100% rename from theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigationViewModel.kt rename to theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigationViewModel.kt diff --git a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainViewModel.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainViewModel.kt similarity index 100% rename from theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainViewModel.kt rename to theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainViewModel.kt diff --git a/theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/ResultKey.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/ResultKey.kt similarity index 100% rename from theme-m3/main/src/main/kotlin/org/gdglille/devfest/android/theme/ResultKey.kt rename to theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/ResultKey.kt diff --git a/theme-m3/main/src/main/AndroidManifest.xml b/theme-m3/main/src/main/AndroidManifest.xml deleted file mode 100644 index 8072ee00d..000000000 --- a/theme-m3/main/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/theme-m3/networking/networking-di/.gitignore b/theme-m3/networking/networking-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/networking/networking-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/networking/networking-di/build.gradle.kts b/theme-m3/networking/networking-di/build.gradle.kts new file mode 100644 index 000000000..fd83c38e7 --- /dev/null +++ b/theme-m3/networking/networking-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.networking.di" +} + +dependencies { + implementation(projects.themeM3.networking.networkingFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/networking/networking-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/di/NetworkingModule.kt b/theme-m3/networking/networking-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/di/NetworkingModule.kt new file mode 100644 index 000000000..b7a43887c --- /dev/null +++ b/theme-m3/networking/networking-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/di/NetworkingModule.kt @@ -0,0 +1,17 @@ +package org.gdglille.devfest.android.theme.m3.networking.di + +import org.gdglille.devfest.android.theme.m3.networking.feature.ContactsViewModel +import org.gdglille.devfest.android.theme.m3.networking.feature.MyProfileViewModel +import org.gdglille.devfest.android.theme.m3.networking.feature.NetworkingViewModel +import org.gdglille.devfest.android.theme.m3.networking.feature.ProfileInputViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.androidx.viewmodel.dsl.viewModel +import org.koin.dsl.module + +val networkingModule = module { + includes(repositoriesModule) + viewModel { ContactsViewModel(get()) } + viewModel { MyProfileViewModel(get()) } + viewModel { NetworkingViewModel(get(), get()) } + viewModel { ProfileInputViewModel(get()) } +} diff --git a/theme-m3/networking/networking-feature/build.gradle.kts b/theme-m3/networking/networking-feature/build.gradle.kts index 9e1efedd0..c5cb7ab91 100644 --- a/theme-m3/networking/networking-feature/build.gradle.kts +++ b/theme-m3/networking/networking-feature/build.gradle.kts @@ -16,6 +16,8 @@ dependencies { implementation(projects.themeM3.style.networking) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsCompactVM.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsCompactVM.kt index 2cebafc51..5ca3317cf 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsCompactVM.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsCompactVM.kt @@ -5,18 +5,14 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.networking.screens.ContactsScreen import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @Composable fun ContactsCompactVM( - userRepository: UserRepository, modifier: Modifier = Modifier, - viewModel: ContactsViewModel = viewModel( - factory = ContactsViewModel.Factory.create(userRepository) - ) + viewModel: ContactsViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsViewModel.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsViewModel.kt index f4ed7e4e4..8c9e36329 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsViewModel.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ContactsViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.networking.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -40,12 +39,4 @@ class ContactsViewModel( fun deleteNetworking(email: String) = viewModelScope.launch { userRepository.deleteNetworkProfile(email) } - - object Factory { - fun create(repository: UserRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - ContactsViewModel(userRepository = repository) as T - } - } } diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileCompactVM.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileCompactVM.kt index 75ea2c65a..dbad3870a 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileCompactVM.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileCompactVM.kt @@ -5,20 +5,16 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.networking.screens.EmptyNetworkingScreen import org.gdglille.devfest.android.theme.m3.networking.screens.MyProfileScreen import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @Composable fun MyProfileCompactVM( - userRepository: UserRepository, onEditInformation: () -> Unit, modifier: Modifier = Modifier, - viewModel: MyProfileViewModel = viewModel( - factory = MyProfileViewModel.Factory.create(userRepository) - ) + viewModel: MyProfileViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileViewModel.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileViewModel.kt index 0368ba813..56f1a35db 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileViewModel.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/MyProfileViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.networking.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -19,9 +18,7 @@ sealed class MyProfileUiState { data class Failure(val throwable: Throwable) : MyProfileUiState() } -class MyProfileViewModel( - userRepository: UserRepository -) : ViewModel() { +class MyProfileViewModel(userRepository: UserRepository) : ViewModel() { val uiState: StateFlow = userRepository.fetchProfile() .map { MyProfileUiState.Success( @@ -43,12 +40,4 @@ class MyProfileViewModel( initialValue = MyProfileUiState.Loading, started = SharingStarted.WhileSubscribed() ) - - object Factory { - fun create(repository: UserRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - MyProfileViewModel(userRepository = repository) as T - } - } } diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingCompactVM.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingCompactVM.kt index 74c00199c..aad4bf341 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingCompactVM.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingCompactVM.kt @@ -11,28 +11,22 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.navigation.ActionIds import org.gdglille.devfest.android.theme.m3.navigation.TabActions import org.gdglille.devfest.android.theme.m3.networking.screens.EmptyNetworkingScreen import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.Scaffold import org.gdglille.devfest.models.ui.ExportNetworkingUi -import org.gdglille.devfest.repositories.AgendaRepository -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalFoundationApi::class) @Composable fun NetworkingCompactVM( - agendaRepository: AgendaRepository, - userRepository: UserRepository, onCreateProfileClicked: () -> Unit, onContactScannerClicked: () -> Unit, onContactExportClicked: (ExportNetworkingUi) -> Unit, modifier: Modifier = Modifier, - viewModel: NetworkingViewModel = viewModel( - factory = NetworkingViewModel.Factory.create(agendaRepository, userRepository) - ) + viewModel: NetworkingViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() val exportPath = viewModel.exportPath.collectAsState(null) @@ -85,11 +79,10 @@ fun NetworkingCompactVM( ) { page -> when (uiModel.tabActionsUi.actions[page].route) { TabActions.myProfile.route -> MyProfileCompactVM( - userRepository = userRepository, onEditInformation = onCreateProfileClicked ) - TabActions.contacts.route -> ContactsCompactVM(userRepository = userRepository) + TabActions.contacts.route -> ContactsCompactVM() else -> TODO("Screen not implemented") } diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingViewModel.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingViewModel.kt index 7666dd5ca..ace09d05c 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingViewModel.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/NetworkingViewModel.kt @@ -85,16 +85,4 @@ class NetworkingViewModel( fun exportNetworking() = viewModelScope.launch { _exportPath.tryEmit(userRepository.exportNetworking()) } - - object Factory { - fun create(agendaRepository: AgendaRepository, userRepository: UserRepository) = - object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - NetworkingViewModel( - agendaRepository = agendaRepository, - userRepository = userRepository - ) as T - } - } } diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputVM.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputVM.kt index 476173a71..88eb79b52 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputVM.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputVM.kt @@ -6,20 +6,16 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.networking.screens.ProfileInputScreen import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.UserRepository +import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable fun ProfileInputVM( - userRepository: UserRepository, onBackClicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: ProfileInputViewModel = viewModel( - factory = ProfileInputViewModel.Factory.create(userRepository) - ) + viewModel: ProfileInputViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputViewModel.kt b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputViewModel.kt index d223feac3..76f017376 100644 --- a/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputViewModel.kt +++ b/theme-m3/networking/networking-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/networking/feature/ProfileInputViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.networking.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -13,7 +12,7 @@ import org.gdglille.devfest.models.ui.UserProfileUi import org.gdglille.devfest.repositories.UserRepository sealed class ProfileInputUiState { - object Loading : ProfileInputUiState() + data object Loading : ProfileInputUiState() data class Success(val profile: UserProfileUi) : ProfileInputUiState() data class Failure(val throwable: Throwable) : ProfileInputUiState() } @@ -69,12 +68,4 @@ class ProfileInputViewModel( profile.company ) } - - object Factory { - fun create(repository: UserRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - ProfileInputViewModel(userRepository = repository) as T - } - } } diff --git a/theme-m3/partners/partners-di/.gitignore b/theme-m3/partners/partners-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/partners/partners-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/partners/partners-di/build.gradle.kts b/theme-m3/partners/partners-di/build.gradle.kts new file mode 100644 index 000000000..949a170c1 --- /dev/null +++ b/theme-m3/partners/partners-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.partners.di" +} + +dependencies { + implementation(projects.themeM3.partners.partnersFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/partners/partners-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/di/PartnersModule.kt b/theme-m3/partners/partners-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/di/PartnersModule.kt new file mode 100644 index 000000000..1763bf71d --- /dev/null +++ b/theme-m3/partners/partners-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/di/PartnersModule.kt @@ -0,0 +1,12 @@ +package org.gdglille.devfest.android.theme.m3.partners.di + +import org.gdglille.devfest.android.theme.m3.partners.feature.PartnerDetailViewModel +import org.gdglille.devfest.android.theme.m3.partners.feature.PartnersViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.dsl.module + +val partnersModule = module { + includes(repositoriesModule) + single { PartnersViewModel(get()) } + single { parametersHolder -> PartnerDetailViewModel(parametersHolder.get(), get()) } +} diff --git a/theme-m3/partners/partners-feature/build.gradle.kts b/theme-m3/partners/partners-feature/build.gradle.kts index 340266c9e..f0fbbb1b9 100644 --- a/theme-m3/partners/partners-feature/build.gradle.kts +++ b/theme-m3/partners/partners-feature/build.gradle.kts @@ -16,6 +16,8 @@ dependencies { implementation(projects.themeM3.style.partners) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailOrientableVM.kt b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailOrientableVM.kt index 3206132f5..cfc73c653 100644 --- a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailOrientableVM.kt +++ b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailOrientableVM.kt @@ -10,24 +10,21 @@ import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.partners.screens.PartnerDetailOrientable import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.appbars.TopAppBar -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel +import org.koin.core.parameter.parametersOf @OptIn(ExperimentalMaterial3Api::class) @Composable fun PartnerDetailOrientableVM( partnerId: String, - agendaRepository: AgendaRepository, onLinkClicked: (url: String) -> Unit, onItineraryClicked: (lat: Double, lng: Double) -> Unit, onBackClicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: PartnerDetailViewModel = viewModel( - factory = PartnerDetailViewModel.Factory.create(partnerId, agendaRepository) - ) + viewModel: PartnerDetailViewModel = koinViewModel(parameters = { parametersOf(partnerId) }) ) { val uiState = viewModel.uiState.collectAsState() val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(rememberTopAppBarState()) diff --git a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailViewModel.kt b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailViewModel.kt index 62420fb98..b922c272f 100644 --- a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailViewModel.kt +++ b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnerDetailViewModel.kt @@ -1,13 +1,14 @@ package org.gdglille.devfest.android.theme.m3.partners.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase -import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.launch +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn import org.gdglille.devfest.models.ui.PartnerItemUi import org.gdglille.devfest.repositories.AgendaRepository @@ -17,34 +18,16 @@ sealed class PartnerUiState { data class Failure(val throwable: Throwable) : PartnerUiState() } -class PartnerDetailViewModel( - private val partnerId: String, - private val repository: AgendaRepository, -) : ViewModel() { - private val _uiState = - MutableStateFlow(PartnerUiState.Loading(PartnerItemUi.fake)) - val uiState: StateFlow = _uiState - - init { - viewModelScope.launch { - try { - repository.partner(partnerId).collect { - _uiState.value = PartnerUiState.Success(it) - } - } catch (error: Throwable) { - Firebase.crashlytics.recordException(error) - _uiState.value = PartnerUiState.Failure(error) - } +class PartnerDetailViewModel(partnerId: String, repository: AgendaRepository) : ViewModel() { + val uiState: StateFlow = repository.partner(partnerId) + .map { PartnerUiState.Success(it) } + .catch { + Firebase.crashlytics.recordException(it) + PartnerUiState.Failure(it) } - } - - object Factory { - fun create(partnerId: String, repository: AgendaRepository) = - object : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - @Suppress("UNCHECKED_CAST") - return PartnerDetailViewModel(partnerId, repository) as T - } - } - } + .stateIn( + scope = viewModelScope, + initialValue = PartnerUiState.Loading(PartnerItemUi.fake), + started = SharingStarted.WhileSubscribed() + ) } diff --git a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersListCompactVM.kt b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersListCompactVM.kt index 710f65018..8f843463e 100644 --- a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersListCompactVM.kt +++ b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersListCompactVM.kt @@ -10,11 +10,10 @@ import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.partners.screens.PartnersListScreen import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.Scaffold -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel private const val ColumnCountLandscape = 6 private const val ColumnCountPortrait = 3 @@ -22,12 +21,9 @@ private const val ColumnCountPortrait = 3 @OptIn(ExperimentalFoundationApi::class) @Composable fun PartnersListCompactVM( - agendaRepository: AgendaRepository, onPartnerClick: (id: String) -> Unit, modifier: Modifier = Modifier, - viewModel: PartnersViewModel = viewModel( - factory = PartnersViewModel.Factory.create(agendaRepository) - ) + viewModel: PartnersViewModel = koinViewModel() ) { val configuration = LocalConfiguration.current val state = rememberLazyGridState() diff --git a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersViewModel.kt b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersViewModel.kt index 1488f50af..49113851b 100644 --- a/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersViewModel.kt +++ b/theme-m3/partners/partners-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/partners/feature/PartnersViewModel.kt @@ -1,13 +1,14 @@ package org.gdglille.devfest.android.theme.m3.partners.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase -import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.launch +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn import org.gdglille.devfest.models.ui.PartnerGroupsUi import org.gdglille.devfest.repositories.AgendaRepository @@ -17,29 +18,16 @@ sealed class PartnersUiState { data class Failure(val throwable: Throwable) : PartnersUiState() } -class PartnersViewModel(private val repository: AgendaRepository) : ViewModel() { - private val _uiState = - MutableStateFlow(PartnersUiState.Loading(PartnerGroupsUi.fake)) - val uiState: StateFlow = _uiState - - init { - viewModelScope.launch { - try { - repository.partners().collect { - _uiState.value = PartnersUiState.Success(it) - } - } catch (error: Throwable) { - Firebase.crashlytics.recordException(error) - _uiState.value = PartnersUiState.Failure(error) - } - } - } - - object Factory { - fun create(repository: AgendaRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - PartnersViewModel(repository = repository) as T +class PartnersViewModel(repository: AgendaRepository) : ViewModel() { + val uiState: StateFlow = repository.partners() + .map { PartnersUiState.Success(it) } + .catch { + Firebase.crashlytics.recordException(it) + PartnersUiState.Failure(it) } - } + .stateIn( + scope = viewModelScope, + initialValue = PartnersUiState.Loading(PartnerGroupsUi.fake), + started = SharingStarted.WhileSubscribed() + ) } diff --git a/theme-m3/schedules/schedules-di/.gitignore b/theme-m3/schedules/schedules-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/schedules/schedules-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/schedules/schedules-di/build.gradle.kts b/theme-m3/schedules/schedules-di/build.gradle.kts new file mode 100644 index 000000000..a72186871 --- /dev/null +++ b/theme-m3/schedules/schedules-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.schedules.di" +} + +dependencies { + implementation(projects.themeM3.schedules.schedulesFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/schedules/schedules-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/di/SchedulesModule.kt b/theme-m3/schedules/schedules-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/di/SchedulesModule.kt new file mode 100644 index 000000000..cefbb9f80 --- /dev/null +++ b/theme-m3/schedules/schedules-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/di/SchedulesModule.kt @@ -0,0 +1,18 @@ +package org.gdglille.devfest.android.theme.m3.schedules.di + +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.FlowPreview +import org.gdglille.devfest.android.theme.m3.schedules.feature.AgendaFiltersViewModel +import org.gdglille.devfest.android.theme.m3.schedules.feature.ScheduleDetailViewModel +import org.gdglille.devfest.android.theme.m3.schedules.feature.ScheduleListViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.androidx.viewmodel.dsl.viewModel +import org.koin.dsl.module + +@OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class) +val scheduleModule = module { + includes(repositoriesModule) + viewModel { AgendaFiltersViewModel(get()) } + viewModel { parameters -> ScheduleDetailViewModel(parameters.get(), get()) } + viewModel { ScheduleListViewModel(get(), get()) } +} diff --git a/theme-m3/schedules/schedules-feature/build.gradle.kts b/theme-m3/schedules/schedules-feature/build.gradle.kts index 5b7b330e4..a591e7486 100644 --- a/theme-m3/schedules/schedules-feature/build.gradle.kts +++ b/theme-m3/schedules/schedules-feature/build.gradle.kts @@ -16,6 +16,8 @@ dependencies { implementation(projects.themeM3.style.schedules) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersVM.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersVM.kt index dc488013e..634d75839 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersVM.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersVM.kt @@ -5,19 +5,15 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.schedules.screens.AgendaFiltersScreen import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @Composable fun AgendaFiltersVM( - agendaRepository: AgendaRepository, onBackClicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: AgendaFiltersViewModel = viewModel( - factory = AgendaFiltersViewModel.Factory.create(agendaRepository) - ) + viewModel: AgendaFiltersViewModel = koinViewModel() ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersViewModel.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersViewModel.kt index c11d16e4c..ec1425927 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersViewModel.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/AgendaFiltersViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.schedules.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -14,7 +13,7 @@ import org.gdglille.devfest.models.ui.FormatUi import org.gdglille.devfest.repositories.AgendaRepository sealed class AgendaFiltersUiState { - object Loading : AgendaFiltersUiState() + data object Loading : AgendaFiltersUiState() data class Success(val filters: FiltersUi) : AgendaFiltersUiState() data class Failure(val throwable: Throwable) : AgendaFiltersUiState() } @@ -22,8 +21,7 @@ sealed class AgendaFiltersUiState { class AgendaFiltersViewModel( private val repository: AgendaRepository ) : ViewModel() { - val uiState: StateFlow = repository - .filters() + val uiState: StateFlow = repository.filters() .map { result -> AgendaFiltersUiState.Success(result) } .stateIn( scope = viewModelScope, @@ -42,12 +40,4 @@ class AgendaFiltersViewModel( fun applyFormatFilter(formatUi: FormatUi, selected: Boolean) = viewModelScope.launch { repository.applyFormatFilter(formatUi, selected) } - - object Factory { - fun create(repository: AgendaRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - AgendaFiltersViewModel(repository = repository) as T - } - } } diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailOrientableVM.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailOrientableVM.kt index be6231324..b6c766bb5 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailOrientableVM.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailOrientableVM.kt @@ -6,25 +6,22 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import io.openfeedback.android.viewmodels.OpenFeedbackFirebaseConfig import org.gdglille.devfest.android.theme.m3.schedules.screens.ScheduleDetailOrientableScreen import org.gdglille.devfest.android.theme.m3.style.R -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel +import org.koin.core.parameter.parametersOf @OptIn(ExperimentalMaterial3Api::class) @Composable fun ScheduleDetailOrientableVM( scheduleId: String, openfeedbackFirebaseConfig: OpenFeedbackFirebaseConfig, - agendaRepository: AgendaRepository, onBackClicked: () -> Unit, onSpeakerClicked: (id: String) -> Unit, onShareClicked: (text: String) -> Unit, modifier: Modifier = Modifier, - viewModel: ScheduleDetailViewModel = viewModel( - factory = ScheduleDetailViewModel.Factory.create(scheduleId, agendaRepository) - ) + viewModel: ScheduleDetailViewModel = koinViewModel(parameters = { parametersOf(scheduleId) }) ) { val uiState = viewModel.uiState.collectAsState() when (uiState.value) { diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailViewModel.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailViewModel.kt index 865cac29b..025979eaf 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailViewModel.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailViewModel.kt @@ -1,7 +1,6 @@ package org.gdglille.devfest.android.theme.m3.schedules.feature import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase @@ -12,7 +11,7 @@ import org.gdglille.devfest.models.ui.TalkUi import org.gdglille.devfest.repositories.AgendaRepository sealed class ScheduleUiState { - object Loading : ScheduleUiState() + data object Loading : ScheduleUiState() data class Success(val talk: TalkUi) : ScheduleUiState() data class Failure(val throwable: Throwable) : ScheduleUiState() } @@ -34,15 +33,4 @@ class ScheduleDetailViewModel( } } } - - object Factory { - fun create(scheduleId: String, repository: AgendaRepository) = object : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - @Suppress("UNCHECKED_CAST") return ScheduleDetailViewModel( - scheduleId = scheduleId, - repository = repository - ) as T - } - } - } } diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListCompactVM.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListCompactVM.kt index c6b5535f1..d8f9d6ad6 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListCompactVM.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListCompactVM.kt @@ -11,30 +11,24 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview -import org.gdglille.devfest.AlarmScheduler import org.gdglille.devfest.android.theme.m3.navigation.ActionIds import org.gdglille.devfest.android.theme.m3.schedules.screens.ScheduleListHorizontalPager import org.gdglille.devfest.android.theme.m3.schedules.screens.ScheduleListVerticalPager import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.Scaffold -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalFoundationApi::class) @ExperimentalCoroutinesApi @FlowPreview @Composable fun ScheduleListCompactVM( - agendaRepository: AgendaRepository, - alarmScheduler: AlarmScheduler, onFilterClicked: () -> Unit, onTalkClicked: (id: String) -> Unit, modifier: Modifier = Modifier, - viewModel: ScheduleListViewModel = viewModel( - factory = ScheduleListViewModel.Factory.create(agendaRepository, alarmScheduler) - ) + viewModel: ScheduleListViewModel = koinViewModel() ) { val context = LocalContext.current val configuration = LocalConfiguration.current diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListViewModel.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListViewModel.kt index 54a08f0d4..dcece2c1b 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListViewModel.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleListViewModel.kt @@ -49,7 +49,7 @@ sealed class ScheduleListUiState { @FlowPreview @ExperimentalCoroutinesApi class ScheduleListViewModel( - private val repository: AgendaRepository, + repository: AgendaRepository, private val alarmScheduler: AlarmScheduler ) : ViewModel() { private val _tabsStates = repository.scaffoldConfig() @@ -100,17 +100,4 @@ class ScheduleListViewModel( fun markAsFavorite(context: Context, talkItem: TalkItemUi) = viewModelScope.launch { alarmScheduler.schedule(context, talkItem) } - - object Factory { - fun create( - repository: AgendaRepository, - alarmScheduler: AlarmScheduler - ) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = ScheduleListViewModel( - repository = repository, - alarmScheduler = alarmScheduler - ) as T - } - } } diff --git a/theme-m3/speakers/speakers-di/.gitignore b/theme-m3/speakers/speakers-di/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/theme-m3/speakers/speakers-di/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/theme-m3/speakers/speakers-di/build.gradle.kts b/theme-m3/speakers/speakers-di/build.gradle.kts new file mode 100644 index 000000000..2b520315c --- /dev/null +++ b/theme-m3/speakers/speakers-di/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("conferences4hall.android.library") + id("conferences4hall.quality") +} + +android { + namespace = "org.gdglille.devfest.android.theme.m3.speakers.di" +} + +dependencies { + implementation(projects.themeM3.speakers.speakersFeature) + implementation(projects.shared.coreDi) + + implementation(libs.koin.core) + implementation(libs.koin.android) +} diff --git a/theme-m3/speakers/speakers-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/di/SpeakersModule.kt b/theme-m3/speakers/speakers-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/di/SpeakersModule.kt new file mode 100644 index 000000000..03ffe3392 --- /dev/null +++ b/theme-m3/speakers/speakers-di/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/di/SpeakersModule.kt @@ -0,0 +1,12 @@ +package org.gdglille.devfest.android.theme.m3.speakers.di + +import org.gdglille.devfest.android.theme.m3.speakers.feature.SpeakerDetailViewModel +import org.gdglille.devfest.android.theme.m3.speakers.feature.SpeakersListViewModel +import org.gdglille.devfest.repositoriesModule +import org.koin.dsl.module + +val speakersModule = module { + includes(repositoriesModule) + single { SpeakersListViewModel(get()) } + single { parameters -> SpeakerDetailViewModel(parameters.get(), get(), get()) } +} diff --git a/theme-m3/speakers/speakers-feature/build.gradle.kts b/theme-m3/speakers/speakers-feature/build.gradle.kts index 5a99a690e..efc66fbac 100644 --- a/theme-m3/speakers/speakers-feature/build.gradle.kts +++ b/theme-m3/speakers/speakers-feature/build.gradle.kts @@ -14,6 +14,8 @@ dependencies { implementation(projects.themeM3.navigation) implementation(projects.themeM3.style.theme) + implementation(libs.koin.androidx.compose) + implementation(libs.kotlinx.collections) implementation(platform(libs.androidx.compose.bom)) diff --git a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailOrientableVM.kt b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailOrientableVM.kt index 6f33afe97..5f59c2ef8 100644 --- a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailOrientableVM.kt +++ b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailOrientableVM.kt @@ -11,26 +11,21 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel -import org.gdglille.devfest.AlarmScheduler import org.gdglille.devfest.android.theme.m3.speakers.screens.SpeakerDetailOrientable import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.appbars.TopAppBar -import org.gdglille.devfest.repositories.AgendaRepository +import org.koin.androidx.compose.koinViewModel +import org.koin.core.parameter.parametersOf @OptIn(ExperimentalMaterial3Api::class) @Composable fun SpeakerDetailOrientableVM( speakerId: String, - agendaRepository: AgendaRepository, - alarmScheduler: AlarmScheduler, onTalkClicked: (id: String) -> Unit, onLinkClicked: (url: String) -> Unit, onBackClicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: SpeakerDetailViewModel = viewModel( - factory = SpeakerDetailViewModel.Factory.create(speakerId, agendaRepository, alarmScheduler) - ) + viewModel: SpeakerDetailViewModel = koinViewModel(parameters = { parametersOf(speakerId) }) ) { val context = LocalContext.current val uiState = viewModel.uiState.collectAsState() diff --git a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailViewModel.kt b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailViewModel.kt index 845eff816..cb2af70d9 100644 --- a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailViewModel.kt +++ b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakerDetailViewModel.kt @@ -3,12 +3,14 @@ package org.gdglille.devfest.android.theme.m3.speakers.feature import android.annotation.SuppressLint import android.content.Context import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase -import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import org.gdglille.devfest.AlarmScheduler import org.gdglille.devfest.models.ui.SpeakerUi @@ -22,41 +24,24 @@ sealed class SpeakerUiState { } class SpeakerDetailViewModel( - private val speakerId: String, - private val repository: AgendaRepository, + speakerId: String, + repository: AgendaRepository, private val alarmScheduler: AlarmScheduler ) : ViewModel() { - private val _uiState = MutableStateFlow(SpeakerUiState.Loading(SpeakerUi.fake)) - val uiState: StateFlow = _uiState - - init { - viewModelScope.launch { - try { - repository.speaker(speakerId).collect { - _uiState.value = SpeakerUiState.Success(it) - } - } catch (error: Throwable) { - Firebase.crashlytics.recordException(error) - _uiState.value = SpeakerUiState.Failure(error) - } + val uiState: StateFlow = repository.speaker(speakerId) + .map { SpeakerUiState.Success(it) } + .catch { + Firebase.crashlytics.recordException(it) + SpeakerUiState.Failure(it) } - } + .stateIn( + scope = viewModelScope, + initialValue = SpeakerUiState.Loading(SpeakerUi.fake), + started = SharingStarted.WhileSubscribed() + ) @SuppressLint("UnspecifiedImmutableFlag") fun markAsFavorite(context: Context, talkItem: TalkItemUi) = viewModelScope.launch { alarmScheduler.schedule(context, talkItem) } - - object Factory { - fun create( - speakerId: String, - repository: AgendaRepository, - alarmScheduler: AlarmScheduler - ) = object : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - @Suppress("UNCHECKED_CAST") - return SpeakerDetailViewModel(speakerId, repository, alarmScheduler) as T - } - } - } } diff --git a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListCompactVM.kt b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListCompactVM.kt index e6b14298f..863316a93 100644 --- a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListCompactVM.kt +++ b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListCompactVM.kt @@ -10,11 +10,10 @@ import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource -import androidx.lifecycle.viewmodel.compose.viewModel import org.gdglille.devfest.android.theme.m3.speakers.screens.SpeakersListScreen import org.gdglille.devfest.android.theme.m3.style.R import org.gdglille.devfest.android.theme.m3.style.Scaffold -import org.gdglille.devfest.repositories.SpeakerRepository +import org.koin.androidx.compose.koinViewModel private const val ColumnCountLandscape = 4 private const val ColumnCountPortrait = 2 @@ -22,12 +21,9 @@ private const val ColumnCountPortrait = 2 @OptIn(ExperimentalFoundationApi::class) @Composable fun SpeakersListCompactVM( - speakerRepository: SpeakerRepository, onSpeakerClicked: (id: String) -> Unit, modifier: Modifier = Modifier, - viewModel: SpeakersListViewModel = viewModel( - factory = SpeakersListViewModel.Factory.create(speakerRepository) - ) + viewModel: SpeakersListViewModel = koinViewModel() ) { val configuration = LocalConfiguration.current val state = rememberLazyGridState() diff --git a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListViewModel.kt b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListViewModel.kt index 2abae9bd7..98c879406 100644 --- a/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListViewModel.kt +++ b/theme-m3/speakers/speakers-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/speakers/feature/SpeakersListViewModel.kt @@ -8,9 +8,14 @@ import com.google.firebase.ktx.Firebase import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import org.gdglille.devfest.models.ui.SpeakerItemUi +import org.gdglille.devfest.models.ui.SpeakerUi import org.gdglille.devfest.repositories.SpeakerRepository sealed class SpeakersUiState { @@ -19,32 +24,20 @@ sealed class SpeakersUiState { data class Failure(val throwable: Throwable) : SpeakersUiState() } -class SpeakersListViewModel(private val repository: SpeakerRepository) : ViewModel() { - private val _uiState = MutableStateFlow( - SpeakersUiState.Loading( - persistentListOf(SpeakerItemUi.fake.copy(id = "1"), SpeakerItemUi.fake.copy(id = "2")) - ) - ) - val uiState: StateFlow = _uiState - - init { - viewModelScope.launch { - try { - repository.speakers().collect { - _uiState.value = SpeakersUiState.Success(it) - } - } catch (error: Throwable) { - Firebase.crashlytics.recordException(error) - _uiState.value = SpeakersUiState.Failure(error) - } +class SpeakersListViewModel(repository: SpeakerRepository) : ViewModel() { + val uiState: StateFlow = repository.speakers() + .map { SpeakersUiState.Success(it) } + .catch { + Firebase.crashlytics.recordException(it) + SpeakersUiState.Failure(it) } - } - - object Factory { - fun create(repository: SpeakerRepository) = object : ViewModelProvider.Factory { - @Suppress("UNCHECKED_CAST") - override fun create(modelClass: Class): T = - SpeakersListViewModel(repository = repository) as T - } - } + .stateIn( + scope = viewModelScope, + initialValue = SpeakersUiState.Loading( + persistentListOf( + SpeakerItemUi.fake.copy(id = "1"), SpeakerItemUi.fake.copy(id = "2") + ) + ), + started = SharingStarted.WhileSubscribed() + ) }