From d919d1396765e91a20f41f360970c6526618742b Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Sat, 3 Feb 2024 21:14:11 +0530 Subject: [PATCH] Bump up Kotlin, Gradle etc. and clean up targets and source sets config (#389) --- .yarnrc | 1 + .../src/main/kotlin/wasm-setup.gradle.kts | 40 ++++-- extensions/kermit-bugsnag/build.gradle.kts | 26 ++-- .../kermit-crashlytics/build.gradle.kts | 27 +++-- extensions/kermit-koin/build.gradle.kts | 13 +- gradle.properties | 2 +- gradle/configure-crash-logger.gradle | 55 --------- gradle/libs.versions.toml | 18 +-- gradle/wrapper/gradle-wrapper.jar | Bin 61608 -> 63375 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 12 +- kermit-core/build.gradle.kts | 114 +++--------------- .../co/touchlab/kermit/LogcatLoggerTest.kt | 1 + .../kotlin/co/touchlab/kermit/NSLogWriter.kt | 0 .../kotlin/co/touchlab/kermit/OSLogWriter.kt | 0 .../co/touchlab/kermit/XcodeSeverityWriter.kt | 0 .../co/touchlab/kermit/platformLogWriter.kt | 0 .../co/touchlab/kermit/OSLogWriterTest.kt | 0 .../co/touchlab/kermit/ConsoleWriter.kt | 0 .../touchlab/kermit/JsMutableLoggerConfig.kt | 0 .../kotlin/co/touchlab/kermit/KermitConfig.kt | 0 .../co/touchlab/kermit/platformLogWriter.kt | 0 .../co/touchlab/kermit/ConsoleWriterTest.kt | 0 .../co/touchlab/kermit/Wasm.ConsoleActual.kt | 0 kermit-simple/build.gradle.kts | 41 ++----- kermit-test/build.gradle.kts | 20 +-- kermit/build.gradle.kts | 77 +++--------- .../kotlin/co/touchlab/kermit/LoggerTest.kt | 1 + .../kotlin/co/touchlab/kermit/Defaults.kt | 0 .../KermitSampleIOS/Podfile.lock | 4 +- samples/sample-production/build.gradle.kts | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 59821 -> 63375 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 +- samples/sample-production/gradlew | 30 +++-- samples/sample-production/gradlew.bat | 15 ++- .../sample-production/shared/build.gradle.kts | 32 ++--- .../sample-production/shared/shared.podspec | 11 ++ samples/sample/app-browser/build.gradle.kts | 12 +- .../app-browser/src/jsMain/kotlin/Browser.kt | 2 +- samples/sample/app/build.gradle.kts | 6 +- samples/sample/build.gradle.kts | 2 +- .../sample/gradle/wrapper/gradle-wrapper.jar | Bin 59821 -> 63375 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 +- samples/sample/gradlew | 30 +++-- samples/sample/gradlew.bat | 15 ++- samples/sample/shared/build.gradle.kts | 32 ++--- samples/sample/shared/shared.podspec | 11 ++ samples/sample/wasm-browser/build.gradle.kts | 14 +-- settings.gradle.kts | 2 +- 49 files changed, 274 insertions(+), 405 deletions(-) create mode 100644 .yarnrc delete mode 100644 gradle/configure-crash-logger.gradle rename kermit-core/src/{darwinMain => appleMain}/kotlin/co/touchlab/kermit/NSLogWriter.kt (100%) rename kermit-core/src/{darwinMain => appleMain}/kotlin/co/touchlab/kermit/OSLogWriter.kt (100%) rename kermit-core/src/{darwinMain => appleMain}/kotlin/co/touchlab/kermit/XcodeSeverityWriter.kt (100%) rename kermit-core/src/{darwinMain => appleMain}/kotlin/co/touchlab/kermit/platformLogWriter.kt (100%) rename kermit-core/src/{darwinTest => appleTest}/kotlin/co/touchlab/kermit/OSLogWriterTest.kt (100%) rename kermit-core/src/{jsAndWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/kermit/ConsoleWriter.kt (100%) rename kermit-core/src/{jsAndWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/kermit/JsMutableLoggerConfig.kt (100%) rename kermit-core/src/{jsAndWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/kermit/KermitConfig.kt (100%) rename kermit-core/src/{jsAndWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/kermit/platformLogWriter.kt (100%) rename kermit-core/src/{jsAndWasmTest => jsAndWasmJsTest}/kotlin/co/touchlab/kermit/ConsoleWriterTest.kt (100%) rename kermit-core/src/{wasmMain => wasmJsMain}/kotlin/co/touchlab/kermit/Wasm.ConsoleActual.kt (100%) rename kermit/src/{jsAndWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/kermit/Defaults.kt (100%) diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 00000000..f757a6ac --- /dev/null +++ b/.yarnrc @@ -0,0 +1 @@ +--ignore-engines true \ No newline at end of file diff --git a/convention-plugins/src/main/kotlin/wasm-setup.gradle.kts b/convention-plugins/src/main/kotlin/wasm-setup.gradle.kts index 13342e51..477ff387 100644 --- a/convention-plugins/src/main/kotlin/wasm-setup.gradle.kts +++ b/convention-plugins/src/main/kotlin/wasm-setup.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -9,6 +9,8 @@ */ import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { kotlin("multiplatform") @@ -18,24 +20,38 @@ kotlin { val wasmEnabled = project.findProperty("enableWasm") == "true" if (wasmEnabled) { @OptIn(ExperimentalWasmDsl::class) - wasm { - browser() + wasmJs { + browser { + commonWebpackConfig { + devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { + static = (static ?: mutableListOf()).apply { + add(project.rootDir.path) + } + } + } + } nodejs() d8() binaries.executable() } } - sourceSets { - val jsAndWasmMain by creating - val jsAndWasmTest by creating - if (wasmEnabled) { - val wasmMain by getting { - dependsOn(jsAndWasmMain) - } - val wasmTest by getting { - dependsOn(jsAndWasmTest) + @Suppress("OPT_IN_USAGE") + applyDefaultHierarchyTemplate { + common { + group("jsAndWasmJs") { + withJs() + if (wasmEnabled) { + withWasm() + } } } } +} + +if (project.findProperty("enableWasm") == "true") { + rootProject.the().apply { + nodeVersion = "21.0.0-v8-canary202309143a48826a08" + nodeDownloadBaseUrl = "https://nodejs.org/download/v8-canary" + } } \ No newline at end of file diff --git a/extensions/kermit-bugsnag/build.gradle.kts b/extensions/kermit-bugsnag/build.gradle.kts index 1b288186..0d2b9182 100644 --- a/extensions/kermit-bugsnag/build.gradle.kts +++ b/extensions/kermit-bugsnag/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,7 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -20,19 +19,28 @@ plugins { id("com.vanniktech.maven.publish") } -apply(from = "../../gradle/configure-crash-logger.gradle") kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } + macosX64() + macosArm64() + iosX64() + iosArm64() + iosSimulatorArm64() + tvosArm64() + tvosSimulatorArm64() + tvosX64() + watchosArm32() + watchosArm64() + watchosSimulatorArm64() + watchosDeviceArm64() + watchosX64() sourceSets { - commonMain { - dependencies { - api(libs.crashkios.bugsnag) - } + commonMain.dependencies { + api(libs.crashkios.bugsnag) + implementation(project(":kermit-core")) } } } diff --git a/extensions/kermit-crashlytics/build.gradle.kts b/extensions/kermit-crashlytics/build.gradle.kts index adc2adc5..4b9d64a9 100644 --- a/extensions/kermit-crashlytics/build.gradle.kts +++ b/extensions/kermit-crashlytics/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,7 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -20,20 +19,28 @@ plugins { id("com.vanniktech.maven.publish") } -apply(from = "../../gradle/configure-crash-logger.gradle") - kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } + macosX64() + macosArm64() + iosX64() + iosArm64() + iosSimulatorArm64() + tvosArm64() + tvosSimulatorArm64() + tvosX64() + watchosArm32() + watchosArm64() + watchosSimulatorArm64() + watchosDeviceArm64() + watchosX64() sourceSets { - commonMain { - dependencies { - api(libs.crashkios.crashlytics) - } + commonMain.dependencies { + api(libs.crashkios.crashlytics) + implementation(project(":kermit-core")) } } } diff --git a/extensions/kermit-koin/build.gradle.kts b/extensions/kermit-koin/build.gradle.kts index 120cc67d..c848b01d 100644 --- a/extensions/kermit-koin/build.gradle.kts +++ b/extensions/kermit-koin/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,7 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -21,8 +20,6 @@ plugins { } kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } @@ -55,11 +52,9 @@ kotlin { // androidNativeX64() sourceSets { - commonMain { - dependencies { - implementation(project(":kermit")) - implementation(libs.koin) - } + commonMain.dependencies { + implementation(project(":kermit")) + implementation(libs.koin) } } } diff --git a/gradle.properties b/gradle.properties index 7a60f215..1cb69e66 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx4g SONATYPE_HOST=DEFAULT RELEASE_SIGNING_ENABLED=true GROUP=co.touchlab -VERSION_NAME=2.0.2 +VERSION_NAME=2.0.3 POM_NAME=Kermit POM_DESCRIPTION=Kermit The Log diff --git a/gradle/configure-crash-logger.gradle b/gradle/configure-crash-logger.gradle deleted file mode 100644 index 59eba06c..00000000 --- a/gradle/configure-crash-logger.gradle +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 Touchlab - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ - -// Write generated Kotlin to disk. This tends to mess up the compiler, but quite useful to see the -// output during dev -def printCInteropKotlin = false - -kotlin { - def commonMain = sourceSets.commonMain - def commonTest = sourceSets.commonTest - - def darwinMain = sourceSets.create("darwinMain") - darwinMain.dependsOn(commonMain) - - [ - macosX64(), - macosArm64(), - iosX64(), - iosArm64(), - iosSimulatorArm64(), - tvosArm64(), - tvosSimulatorArm64(), - tvosX64(), - watchosArm32(), - watchosArm64(), - watchosSimulatorArm64(), - watchosDeviceArm64(), - watchosX64() - ].forEach { target -> -// target.compilations.main.cinterops.create(project.name) { -// includeDirs("$projectDir/src/include") -// compilerOpts("-DNS_FORMAT_ARGUMENT(A)=", "-D_Nullable_result=_Nullable") -// if (printCInteropKotlin) { -// extraOpts = listOf("-mode", "sourcecode") -// } -// } - - target.compilations.main.defaultSourceSet.dependsOn(darwinMain) - target.compilations.test.defaultSourceSet.dependsOn(commonTest) - } - - commonMain.dependencies { - implementation project(":kermit-core") - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 361ec7b3..6771ca50 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,20 +4,20 @@ minSdk = "21" compileSdk = "34" # Dependencies -kotlin = "1.9.10" +kotlin = "1.9.22" binaryCompatability = "0.13.2" androidx-core = "1.12.0" androidx-appcompat = "1.6.1" androidx-constraintLayout = "2.1.4" -androidx-navigationFragment = "2.7.2" -androidx-navigationUI = "2.7.2" +androidx-navigationFragment = "2.7.6" +androidx-navigationUI = "2.7.6" androidx-coordinatorLayout = "1.2.0" -android-gradle-plugin = "8.1.1" +android-gradle-plugin = "8.2.2" android-test-runner = "1.5.2" -google-services = "4.3.15" +google-services = "4.4.0" stately = "2.0.4" testhelp = "0.6.11" @@ -26,13 +26,13 @@ crashkios = "0.8.5" bugsnag = "5.31.1" bugsnag-gradle-plugin = "8.0.1" -koin-core = "3.5.0" -koin-android = "3.5.0" -koin-test = "3.5.0" +koin-core = "3.5.3" +koin-android = "3.5.3" +koin-test = "3.5.3" coroutines = "1.7.3" roboelectric = "4.10.3" buildConfig = "4.1.2" -mavenPublish = "0.25.3" +mavenPublish = "0.27.0" android-junitTest = "1.1.5" junit = "4.13.2" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7710deaf9f98673a68957ea02138b60d0a..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 21856 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 delta 20086 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/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -197,6 +197,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in diff --git a/kermit-core/build.gradle.kts b/kermit-core/build.gradle.kts index 1809ce6c..454ab27a 100644 --- a/kermit-core/build.gradle.kts +++ b/kermit-core/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,8 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -23,8 +21,6 @@ plugins { } kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } @@ -57,99 +53,31 @@ kotlin { androidNativeX86() androidNativeX64() - sourceSets { - val commonMain by getting - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation(libs.stately.collections) - implementation(libs.testhelp) - implementation(project(":kermit-test")) - } - } - - val commonJvmMain by creating { - dependsOn(commonMain) - } - val commonJvmTest by creating { - dependsOn(commonTest) - dependsOn(commonJvmMain) - dependencies { - implementation(kotlin("test-junit")) - } - } - - val jvmMain by getting { - dependsOn(commonJvmMain) - } - val jvmTest by getting { - dependsOn(commonJvmTest) - dependsOn(jvmMain) - } - - val androidMain by getting { - dependsOn(commonJvmMain) - } - val androidUnitTest by getting { - dependsOn(androidMain) - // dependsOn(commonJvmTest) - dependencies { - implementation(libs.androidx.runner) - implementation(libs.roboelectric) + @Suppress("OPT_IN_USAGE") + applyDefaultHierarchyTemplate { + common { + group("commonJvm") { + withAndroidTarget() + withJvm() } } + } - val nativeMain by getting - val nativeTest by getting - - val darwinMain by creating { - dependsOn(nativeMain) - } - - val darwinTest by creating { - dependsOn(nativeTest) - } - - val jsAndWasmMain by getting { - dependsOn(commonMain) - getByName("jsMain").dependsOn(this) + sourceSets { + commonTest.dependencies { + implementation(kotlin("test")) + implementation(libs.stately.collections) + implementation(libs.testhelp) + implementation(project(":kermit-test")) } - val jsAndWasmTest by getting { - dependsOn(commonTest) - getByName("jsTest").dependsOn(this) + getByName("commonJvmTest").dependencies { + implementation(kotlin("test-junit")) } - targets.withType().all { - val mainSourceSet = compilations.getByName("main").defaultSourceSet - val testSourceSet = compilations.getByName("test").defaultSourceSet - - mainSourceSet.dependsOn( - when { - konanTarget.family.isAppleFamily -> darwinMain - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.LINUX -> { - val linuxMain by getting - linuxMain - } - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.MINGW -> { - val mingwMain by getting - mingwMain - } - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.ANDROID -> { - val androidNativeMain by getting - androidNativeMain - } - else -> nativeMain - } - ) - - testSourceSet.dependsOn( - if (konanTarget.family.isAppleFamily) { - darwinTest - } else { - commonTest - } - ) + getByName("androidUnitTest").dependencies { + implementation(libs.androidx.runner) + implementation(libs.roboelectric) } } } @@ -169,7 +97,3 @@ android { tasks.withType { kotlinOptions.jvmTarget = "1.8" } - -rootProject.the().apply { - nodeVersion = "20.4.0" -} \ No newline at end of file diff --git a/kermit-core/src/androidUnitTest/kotlin/co/touchlab/kermit/LogcatLoggerTest.kt b/kermit-core/src/androidUnitTest/kotlin/co/touchlab/kermit/LogcatLoggerTest.kt index ff3e53af..27f37b50 100644 --- a/kermit-core/src/androidUnitTest/kotlin/co/touchlab/kermit/LogcatLoggerTest.kt +++ b/kermit-core/src/androidUnitTest/kotlin/co/touchlab/kermit/LogcatLoggerTest.kt @@ -20,6 +20,7 @@ import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull +@OptIn(ExperimentalKermitApi::class) @RunWith(RobolectricTestRunner::class) class LogcatLoggerTest { diff --git a/kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/NSLogWriter.kt b/kermit-core/src/appleMain/kotlin/co/touchlab/kermit/NSLogWriter.kt similarity index 100% rename from kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/NSLogWriter.kt rename to kermit-core/src/appleMain/kotlin/co/touchlab/kermit/NSLogWriter.kt diff --git a/kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/OSLogWriter.kt b/kermit-core/src/appleMain/kotlin/co/touchlab/kermit/OSLogWriter.kt similarity index 100% rename from kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/OSLogWriter.kt rename to kermit-core/src/appleMain/kotlin/co/touchlab/kermit/OSLogWriter.kt diff --git a/kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/XcodeSeverityWriter.kt b/kermit-core/src/appleMain/kotlin/co/touchlab/kermit/XcodeSeverityWriter.kt similarity index 100% rename from kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/XcodeSeverityWriter.kt rename to kermit-core/src/appleMain/kotlin/co/touchlab/kermit/XcodeSeverityWriter.kt diff --git a/kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/platformLogWriter.kt b/kermit-core/src/appleMain/kotlin/co/touchlab/kermit/platformLogWriter.kt similarity index 100% rename from kermit-core/src/darwinMain/kotlin/co/touchlab/kermit/platformLogWriter.kt rename to kermit-core/src/appleMain/kotlin/co/touchlab/kermit/platformLogWriter.kt diff --git a/kermit-core/src/darwinTest/kotlin/co/touchlab/kermit/OSLogWriterTest.kt b/kermit-core/src/appleTest/kotlin/co/touchlab/kermit/OSLogWriterTest.kt similarity index 100% rename from kermit-core/src/darwinTest/kotlin/co/touchlab/kermit/OSLogWriterTest.kt rename to kermit-core/src/appleTest/kotlin/co/touchlab/kermit/OSLogWriterTest.kt diff --git a/kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/ConsoleWriter.kt b/kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/ConsoleWriter.kt similarity index 100% rename from kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/ConsoleWriter.kt rename to kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/ConsoleWriter.kt diff --git a/kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/JsMutableLoggerConfig.kt b/kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/JsMutableLoggerConfig.kt similarity index 100% rename from kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/JsMutableLoggerConfig.kt rename to kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/JsMutableLoggerConfig.kt diff --git a/kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/KermitConfig.kt b/kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/KermitConfig.kt similarity index 100% rename from kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/KermitConfig.kt rename to kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/KermitConfig.kt diff --git a/kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/platformLogWriter.kt b/kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/platformLogWriter.kt similarity index 100% rename from kermit-core/src/jsAndWasmMain/kotlin/co/touchlab/kermit/platformLogWriter.kt rename to kermit-core/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/platformLogWriter.kt diff --git a/kermit-core/src/jsAndWasmTest/kotlin/co/touchlab/kermit/ConsoleWriterTest.kt b/kermit-core/src/jsAndWasmJsTest/kotlin/co/touchlab/kermit/ConsoleWriterTest.kt similarity index 100% rename from kermit-core/src/jsAndWasmTest/kotlin/co/touchlab/kermit/ConsoleWriterTest.kt rename to kermit-core/src/jsAndWasmJsTest/kotlin/co/touchlab/kermit/ConsoleWriterTest.kt diff --git a/kermit-core/src/wasmMain/kotlin/co/touchlab/kermit/Wasm.ConsoleActual.kt b/kermit-core/src/wasmJsMain/kotlin/co/touchlab/kermit/Wasm.ConsoleActual.kt similarity index 100% rename from kermit-core/src/wasmMain/kotlin/co/touchlab/kermit/Wasm.ConsoleActual.kt rename to kermit-core/src/wasmJsMain/kotlin/co/touchlab/kermit/Wasm.ConsoleActual.kt diff --git a/kermit-simple/build.gradle.kts b/kermit-simple/build.gradle.kts index 5344aef8..cebe99f7 100644 --- a/kermit-simple/build.gradle.kts +++ b/kermit-simple/build.gradle.kts @@ -1,8 +1,5 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension - /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -21,8 +18,6 @@ plugins { } kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() js { browser() nodejs() @@ -52,33 +47,23 @@ kotlin { androidNativeX64() sourceSets { - commonMain { - dependencies { - api(project(":kermit")) - } + commonMain.dependencies { + api(project(":kermit")) } - commonTest { - dependencies { - implementation(kotlin("test")) - implementation(project(":kermit-test")) - } + commonTest.dependencies { + implementation(kotlin("test")) + implementation(project(":kermit-test")) } val nonKotlinMain by creating { - dependsOn(getByName("commonMain")) + dependsOn(commonMain.get()) } val nonKotlinTest by creating { - dependsOn(getByName("commonTest")) + dependsOn(commonTest.get()) } - val jsAndWasmMain by getting { - dependsOn(nonKotlinMain) - getByName("jsMain").dependsOn(this) - } - val jsAndWasmTest by getting { - dependsOn(nonKotlinTest) - getByName("jsTest").dependsOn(this) - } + getByName("jsAndWasmJsMain").dependsOn(nonKotlinMain) + getByName("jsAndWasmJsTest").dependsOn(nonKotlinTest) targets.withType().all { val mainSourceSet = compilations.getByName("main").defaultSourceSet @@ -88,8 +73,4 @@ kotlin { testSourceSet.dependsOn(nonKotlinTest) } } -} - -rootProject.the().apply { - nodeVersion = "20.4.0" -} +} \ No newline at end of file diff --git a/kermit-test/build.gradle.kts b/kermit-test/build.gradle.kts index 44bb6242..60f39b03 100644 --- a/kermit-test/build.gradle.kts +++ b/kermit-test/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,8 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -23,8 +21,6 @@ plugins { } kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } @@ -58,12 +54,10 @@ kotlin { androidNativeX64() sourceSets { - commonMain { - dependencies { - implementation(kotlin("test")) - api(project(":kermit-core")) - implementation(libs.stately.collections) - } + commonMain.dependencies { + implementation(kotlin("test")) + api(project(":kermit-core")) + implementation(libs.stately.collections) } } } @@ -82,8 +76,4 @@ android { tasks.withType { kotlinOptions.jvmTarget = "1.8" -} - -rootProject.the().apply { - nodeVersion = "20.4.0" } \ No newline at end of file diff --git a/kermit/build.gradle.kts b/kermit/build.gradle.kts index f03e90d8..183e62ca 100644 --- a/kermit/build.gradle.kts +++ b/kermit/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,8 +11,6 @@ * the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -23,8 +21,6 @@ plugins { } kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget { publishAllLibraryVariants() } @@ -57,64 +53,29 @@ kotlin { androidNativeX86() androidNativeX64() - sourceSets { - val commonMain by getting { - dependencies { - api(project(":kermit-core")) - } - } - - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation(libs.testhelp) - implementation(project(":kermit-test")) - } - } - - val nonKotlinMain by creating { - dependsOn(commonMain) - } - - val nonKotlinTest by creating { - dependsOn(commonTest) - } - - val nativeMain by getting { - dependsOn(nonKotlinMain) - } - - val jsAndWasmMain by getting { - dependsOn(nonKotlinMain) - getByName("jsMain").dependsOn(this) - } - - val jsAndWasmTest by getting { - dependsOn(nonKotlinTest) - getByName("jsTest").dependsOn(this) - } - - val commonJvmMain by creating { - dependsOn(commonMain) - dependencies { - implementation(kotlin("test-junit")) + @Suppress("OPT_IN_USAGE") + applyDefaultHierarchyTemplate { + common { + group("commonJvm") { + withAndroidTarget() + withJvm() } } + } - val jvmMain by getting { - dependsOn(commonJvmMain) + sourceSets { + commonMain.dependencies { + api(project(":kermit-core")) } - val androidMain by getting { - dependsOn(commonJvmMain) + commonTest.dependencies { + implementation(kotlin("test")) + implementation(libs.testhelp) + implementation(project(":kermit-test")) } - targets.withType().all { - val mainSourceSet = compilations.getByName("main").defaultSourceSet - val testSourceSet = compilations.getByName("test").defaultSourceSet - - mainSourceSet.dependsOn(nativeMain) - testSourceSet.dependsOn(nonKotlinTest) + getByName("commonJvmMain").dependencies { + implementation(kotlin("test-junit")) } } } @@ -134,7 +95,3 @@ android { tasks.withType { kotlinOptions.jvmTarget = "1.8" } - -rootProject.the().apply { - nodeVersion = "20.4.0" -} diff --git a/kermit/src/commonTest/kotlin/co/touchlab/kermit/LoggerTest.kt b/kermit/src/commonTest/kotlin/co/touchlab/kermit/LoggerTest.kt index d3219fbe..2ea1f40f 100644 --- a/kermit/src/commonTest/kotlin/co/touchlab/kermit/LoggerTest.kt +++ b/kermit/src/commonTest/kotlin/co/touchlab/kermit/LoggerTest.kt @@ -276,6 +276,7 @@ class LoggerTest { } @Ignore + @Test fun testMutableLoggerConfig_MultiThreading_Severity() { val testLogWriter = TestLogWriter(loggable = Severity.Verbose) val config = mutableLoggerConfigInit(listOf(testLogWriter)) diff --git a/kermit/src/jsAndWasmMain/kotlin/co/touchlab/kermit/Defaults.kt b/kermit/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/Defaults.kt similarity index 100% rename from kermit/src/jsAndWasmMain/kotlin/co/touchlab/kermit/Defaults.kt rename to kermit/src/jsAndWasmJsMain/kotlin/co/touchlab/kermit/Defaults.kt diff --git a/samples/sample-production/KermitSampleIOS/Podfile.lock b/samples/sample-production/KermitSampleIOS/Podfile.lock index 574eee2c..60bca2bf 100644 --- a/samples/sample-production/KermitSampleIOS/Podfile.lock +++ b/samples/sample-production/KermitSampleIOS/Podfile.lock @@ -16,8 +16,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Bugsnag: b10579241f2b7ae6f7c6b04f587c33b38ec5dca7 - shared: 317794cafa8cc02021e4c781c7235ace20c9dfdc + shared: f3fb1ace83e0f517b7df687b0c17512ff2391ade PODFILE CHECKSUM: 3c766f7670f4e65f346904ffce262b5028e84071 -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.3 diff --git a/samples/sample-production/build.gradle.kts b/samples/sample-production/build.gradle.kts index 315170ef..23dac572 100644 --- a/samples/sample-production/build.gradle.kts +++ b/samples/sample-production/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * diff --git a/samples/sample-production/gradle/wrapper/gradle-wrapper.jar b/samples/sample-production/gradle/wrapper/gradle-wrapper.jar index 41d9927a4d4fb3f96a785543079b8df6723c946b..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 41502 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 diff --git a/samples/sample-production/gradle/wrapper/gradle-wrapper.properties b/samples/sample-production/gradle/wrapper/gradle-wrapper.properties index 15de9024..3fa8f862 100644 --- a/samples/sample-production/gradle/wrapper/gradle-wrapper.properties +++ b/samples/sample-production/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/sample-production/gradlew b/samples/sample-production/gradlew index 1b6c7873..fcb6fca1 100755 --- a/samples/sample-production/gradlew +++ b/samples/sample-production/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +130,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,6 +197,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in @@ -205,6 +213,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/samples/sample-production/gradlew.bat b/samples/sample-production/gradlew.bat index ac1b06f9..6689b85b 100644 --- a/samples/sample-production/gradlew.bat +++ b/samples/sample-production/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/samples/sample-production/shared/build.gradle.kts b/samples/sample-production/shared/build.gradle.kts index ed8bc267..e4a40ad8 100644 --- a/samples/sample-production/shared/build.gradle.kts +++ b/samples/sample-production/shared/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -8,7 +8,6 @@ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -38,32 +37,25 @@ val KERMIT_VERSION: String by project version = "0.0.1" kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget() - ios() + iosX64() + iosArm64() iosSimulatorArm64() sourceSets { - val commonMain by getting { - dependencies { - api("co.touchlab:kermit:${KERMIT_VERSION}") - implementation("co.touchlab:kermit-bugsnag:${KERMIT_VERSION}") - } + commonMain.dependencies { + api("co.touchlab:kermit:${KERMIT_VERSION}") + implementation("co.touchlab:kermit-bugsnag:${KERMIT_VERSION}") } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation("co.touchlab:kermit-test:${KERMIT_VERSION}") - } + commonTest.dependencies { + implementation(kotlin("test")) + implementation("co.touchlab:kermit-test:${KERMIT_VERSION}") } - val iosMain by getting { - dependencies { - // Only if you want to talk to Kermit from Swift - api("co.touchlab:kermit-simple:${KERMIT_VERSION}") - } + iosMain.dependencies { + // Only if you want to talk to Kermit from Swift + api("co.touchlab:kermit-simple:${KERMIT_VERSION}") } } diff --git a/samples/sample-production/shared/shared.podspec b/samples/sample-production/shared/shared.podspec index cd3c4d7f..fa4c533f 100644 --- a/samples/sample-production/shared/shared.podspec +++ b/samples/sample-production/shared/shared.podspec @@ -11,6 +11,17 @@ Pod::Spec.new do |spec| + if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') + raise " + + Kotlin framework 'shared' doesn't exist yet, so a proper Xcode project can't be generated. + 'pod install' should be executed after running ':generateDummyFramework' Gradle task: + + ./gradlew :shared:generateDummyFramework + + Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" + end + spec.pod_target_xcconfig = { 'KOTLIN_PROJECT_PATH' => ':shared', 'PRODUCT_MODULE_NAME' => 'shared', diff --git a/samples/sample/app-browser/build.gradle.kts b/samples/sample/app-browser/build.gradle.kts index cd3eb8fd..09c18115 100644 --- a/samples/sample/app-browser/build.gradle.kts +++ b/samples/sample/app-browser/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -20,12 +20,10 @@ kotlin { binaries.executable() } sourceSets { - val jsMain by getting { - dependencies { - implementation(project(":shared")) - implementation("org.jetbrains.kotlinx:kotlinx-html-js:0.9.1") - implementation("co.touchlab:kermit-simple:${KERMIT_VERSION}") - } + jsMain.dependencies { + implementation(project(":shared")) + implementation("org.jetbrains.kotlinx:kotlinx-html-js:0.9.1") + implementation("co.touchlab:kermit-simple:${KERMIT_VERSION}") } } } diff --git a/samples/sample/app-browser/src/jsMain/kotlin/Browser.kt b/samples/sample/app-browser/src/jsMain/kotlin/Browser.kt index dd3bd827..19b0d559 100644 --- a/samples/sample/app-browser/src/jsMain/kotlin/Browser.kt +++ b/samples/sample/app-browser/src/jsMain/kotlin/Browser.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * diff --git a/samples/sample/app/build.gradle.kts b/samples/sample/app/build.gradle.kts index cd0cd234..7a139e81 100644 --- a/samples/sample/app/build.gradle.kts +++ b/samples/sample/app/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -29,8 +29,8 @@ android { versionCode = 1 versionName = "0.0.1" } - packagingOptions { - exclude("META-INF/*.kotlin_module") + packaging { + resources.excludes.add("META-INF/*.kotlin_module") } buildTypes { getByName("release") { diff --git a/samples/sample/build.gradle.kts b/samples/sample/build.gradle.kts index 2833f340..0c378781 100644 --- a/samples/sample/build.gradle.kts +++ b/samples/sample/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * diff --git a/samples/sample/gradle/wrapper/gradle-wrapper.jar b/samples/sample/gradle/wrapper/gradle-wrapper.jar index 41d9927a4d4fb3f96a785543079b8df6723c946b..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 41502 zcmaI7V{~Rgw>28uwrv}oj&0kv`NZkiwrxGJZ6_V8V;h~^e$N@-x!)P%j{B!}jlEZm z{byFqS#zyby96G80}iPq3l4#iSb&*`hYpI7$mINQC?NmOfSI^~`Crdu2v9-{3=j|) z7!VK;5s>iHHBV|d5D)|GWL9Q&fFJ$};g+24a_384%CoO$Q;qYw z1EBBdZ0Gy$i{Biwu=kBW2v_tIoI%Bb%T~$Hk?5m)la6k&0ap!f zsx$NsQ@ZEtor3UA>48GGZdkuBMz`j`hg!|RhdRd|IGj*Lk#bWfxF;>o$=Ehs)*UG( z@u=j{n&fd(;uMe=Jz%RCP=xj}`L`r0e!n~F!>KO{`qmjUzn>aYpkhyzPUp@Vlly=@ zz)u5B;Am_JPKa7qm>IdR-~iRH5zcV17>+18!!V5j_6x3;F1^0;m9Mw(Ap12f*s=Q8 z9zR%g*ZXfivRp}I3I2~bkC*EUf#1FbedV5gKS*4119TiCFDCZW02THlNkjY)f7-Jr zQfjHMM12J8VM1lb`T0IJeaLbNd4-;|Q>u}k-JVYhrr--G#W49zCo+0u3mCTCr25w! zkd$@gDbhHe%hAUWs||&TxJ#1$6c7oQ=(2Xqf%!j6F;F%zndl5L4y6fUaO;dR_`5AP z=yc{>8GE)X##36S0GJ01gT(jAOR4x5-EA{I&jsTkml;mz-DC@XkNnDH^fh%3DPJj0 zn-Jx;%@l*q|xyuxK(E{}>_x}i0L z#D~iqKN6f**&E?^`S`dftK=2V;R)$tB72IYmpQ zYRea?D+4a~6KPPYfteuThAZyQEPF`!1sCM5IoheH=*YE&*x*hatz5)l?sQG+KAD#D z*Rr|$B(?@V6F}r)OdG0>yool0<1#J8Ur+!&W;6=S=+SO*b?yj(T!DtU`6c_xSupjS zMd6ZjX`)bJ%7u`q^=Tma<59VM9K%o1$kpqagHGA~CFhsLBrc~-S*^%WZMirlWREnQ z*^YNZMpSip0Ku{o#+ofpG&^40Awn*TF0Re1P{5CGY=9>y)s-F}qNvES4z|5%76Nx% zg9gVZim=KpFr4_1dYG3|DS(cU-7bjnTQb-7l{TPk|Kv3+*wE$`Ghl`xOJUYQkaLj4 z<`prZde0LtAYRytC-TIGCzch_SwL}snDY}BuzHLAnW{geZWL3cU$N(i_Z0__g8ou9 zs?@w22fU%gV|Tiq-v&Cwx0I?#1k;*HQ++2*p@YQ|jr*?Cs&a8JdQS_jbpj5hK^cWB zt@33%tUEVk+P;;4(S&A{N3u!iyoz;D(TVY9FLBDD*~b1*7m8F0&37wOL9L>y3N8Ef zmQ{hp8C9_&mJ35uWPlDo{F7=8;aIF)j#|o)4`4lpCULEFZ&(sJq5{7QOIIIBNk-F9 zt*=NW&(C2tKMrw-ispE>y8#$3Jd~5m>W&i%Z_-AmScFqEe*N&g@ZLvX%#0Gm$qAPP6qayE@JF7jdt> zSPU6Q#hg}h+4AJFBt6?z9lvTQ$Wv3D{7wqjw28@qJf8J8s$2C!x)fk5S8cFG#`pNT z)MDf0myrY}^%%okW{O779u9gm6<1m@0~-2eW4fP8uDCXc!1hhB9tX}hEQRfjLeYzvbo?;QkNcmgwUZ4m_|F;ExtErvEK6;!W9E!45tbP~ zrMSv)XNg4JBm$echre-;r@aX8`53Lv;y^~61g4w_?qtjrQLpE31s?Fg<8q)B0jkl= zH#0;G(I-~i&3sJE)lV@BXIFLW<)stXDVYw9;y`b$%*|$$GMT#D?SgT!`D1nM=9mQ_ z6ElZK)a&M;D{LF}+-OJQB0cAlQu%jR*^*UuaY*EE<4(t-71had92I(te0$o_4OUKt zJhUPAc)x)TY;K`18K6Rb(r!{YfX|ehs$A;2F1ri13!Jj4*r{J^UCn+8mqR?`-k_Ue zSNkt{8ZQ-dTb!raYf%V!_(KA#Lg^C^VG9fKZf+xgRvi`Crt(kAy*6L3?_bcdnnzeZ z^D^>Vv{`0W_?bJ%`)}1Vr3#C=D{*WiT7huSg+OvNUxwEMUM_C$61Ln#NdEm?c z6qS#{doc4!(X6{&k&kGAyJwaPL>9S} zWQIU;;zm~AGE8k>1Kvz+t~n9UY_1K?ISNq%iO5RA`hxq8XAUzw+e2J3Y{S42_O10e zu|dIsS$(NI!M4A|P3}Na0a=Rcrsy=$HTi*##Oe2clPhp=A{Ni#-`Q@7k=`fgid_mA zlrRZzAzQ4V9@s1Lpw^_EY9Wa8#0Y7@YmWz9q;-iOIV~FsT1~*@2yUysaggl{+EcCdWC9wZWo>WS0Lzwtp*9BWn3BHmxR#u3zy zj3{`pC887@m)v1Z0VwZKK(UI|R6CJV<`{9r4GgkK;Lw7@4m%NIOvc=o`Noj;;u88{ zQI20>O)3tWl{k!*;*8LiP3v2cxJMCvVIqvYyQHM%NO7G z7nEvg6@h7DZxNwQ-<$f6B-H}n58+E-KA8s;)0EMgy%t$e(01<(Ky*)!0#LoWHo+!wU3`CU=*EI~hZO#c1hx+%1{s1@mBXR-h|JAgouhxCZ zzoV46ba@&Wm8wW~Q0ad%rv$@jDS;mA(7+_^^_A*h{M?}26!(M7AJps@3z0GTEWgW) zah`PuT2)Cljz$OkAWoy;Ak$D3tq-LdrWjs05f{F8MsV7~&LV{+7$QLCk)ZIpQwk21 zB#7r7#j%;uv=LgLnonGgwPUay&&)xSJy~84?QNyB%`B;+jc!WRjDgUOugJ0yGRru3 z;riYjM6-;#MBA=L$b%IuX5oMx7@S@0G^rWC;7x)^^3egz)=q}gJwp~s&YJ^yo)^_( zq*unXr}!@*rJ#0W%4kQ$6lPB_oABI@a0Fl@4j#+m85Mz9_fj}`ZuT1~i0rNQRh^@( z1M_zE_L?OeuovQ*E}{X9V=hf;v5eW_Rp#i&Ne-5O%-4qp81c28oz1--kKLy7q%gzM z=*AU3p4$MiFbUly+$YEO7phJI#_Iy<3{G*J4(3r8^7S|eCa0z_8m@67I;);BEo_xh zkJgOMXQ-aXq9E9Qx5b%BfJI@Xr_(#SOO08_TcbcC#hWG%sg`l^e$+sZ-g@Nq@saX~Z77NwfimXQ1E z4Py4|DDRTu4!Pf36!#WmherHan1==m4WPfp;9>U`dXT;o27%wUvRI%0v?G4fSzF!x3yS5O?14X){=}bXFr0ZP7WMJVO}R06QGRkjoIIedf<#CYB8c88Fp6wc?3R=QQ+{4T*^uE%S+UO7!j~ohqA!}6 zLRp&Q4*az+rg^P7r{$=_N7l*wQ} z1p}cfUl}eNX1&2lk&a8~42#yi*-VwRfxCV60pBV)6TXML^BTZ1kJNn$H4YGM?8UL; zUo)Mc_gDonM>}+H;XjiW|CS}2R!mtxxXqRxw|@h9RnztB zwxS?R$4x_W8oOIRD?o0krR7vwLnJhV4{1EGpN#UKQ}$oj{li{KH%%5&gI8y^fG9eq z9^Rq#j^0Sx?O8Omf_T|pVlsUWOdD~ZW|bqT0>vFgb_F~mutzu|zWW_2rW%)ANxXE` z|I8sCicpCCBF3Zo9r2yzpsV-p=iTb#IhEc$y)EyXk6jQ0CYWyRBYK9aBq*+e&9P!> zc1C(7WQ{k2n|$?yJ=!o~ol1QO6)&Ddgg?JHx+ieJfK0OOtBn7i2MQu-knQ~+v|w^e zwY{w);{l8sQFcZGgY!BFu?*B;qaX?qG0-g`MdUAp6PDr+>}YgDb&9@$7oZLEZuX$A zq)O73Qj1bT(GR3Pq%|8#%Lkez)B06~8tYJt)3GHsE#nf&IhtXHFy5Zyk|T7-k#pYoNA5{~RHdJ8EDs1~AR))g&yeSb zd17||H~&D>_fh->2LW-12LTaC4$7cN&PyZ$sBCJWe8n;H#4(^9LZSU$A-+4cmHX-n9YEpIgrNQv~`5}4&xu~Rz{e_*7Ipwelss=UG7T(eYsAuG$Hq$ zGnFUUwHxre`M2=*+Zi^9s~5!~!(zFWRtjqV`rC!4@K&KKeD^O}Sp-w;b$wf3>vhKeVhk4!aAWvfnW zRTe+*(DF^ChJJffNsn1Zc+a$x?V|2qcSOnVrK0rQ-zEvGHvD`;xTNcLYO-sO{E^Xe9flR>4f)ntJ7wl_L`v?0?wfZ<@1mrfQRL6H7rffYz5uCzRfX7Xh zVov;&veCLfx%V;QU`?`buO+)l2IdffXiK^;f=l6Q1IHw8V!{w1-%_wILvmzvk<1huq8rtULH|Km&H}(1||C(v3toL*eFC5Gwy*T zzgFX9Y?Z_Bi#d*-Ola&ZD)JcufV74b^8uBSnMt=0>kJB?+^XMMW8DUUA+3@!8WCqW z5Ds2bpv?8PslfR)I8RkjrLk%s9$m|_E$8jtuI}~=V5Cffa|1cR z1$~EWXZo_~P}3c>xTMqId(833hemgjlBJ$%rF|Lvuzx2w+^^Bg1o`X6`eulqBM-~c zj>z8*R3vS*ivquleQ}Hiuo2!|q$9%?j_lNE{lx6_xKMK~N;isbhwPu-NWAA8^ffH& zL>wSWLLMvCXS#}+|BkfpKR&`^AHuq*nRjDafFs2CH-=pt&~yt{D2VXY8Sli(OV+dK zbJ2mG5cp2i0ijElp~*U##yVO@I#5SGrBTVK=UHIrAwu{=lQl>h5X_*V+Hy}SC0vPv zX6A~)oiNP7SxQSSwYxj+B1I6?Oo|fJJfrkbLccIgc)d>Q`FD_|>wqV&gAO{5x3&L- zV2mK0;Cc9*t&Ydga;LE|@Wt9dJh0a&eDHx(<^f3YeuQwaj5G(MS_mSR-wm|@Y3YPr zls~&iJ`piz{q-}6@cX~r(f?t!Tl-rySuhZg8wd~(iT^q!{vJ{SN>%k0(M2!>oBwK6 z=vG2j6~U0n^qCbhkG5DZQ&GvEOR5Zhv=E-}HEm8iL;^;>=dlf0?gm~j9m!5}x8)JB zY9oB|4 z@tH}rbq5(~ol9u~x{2~1L;3auBiP>J)=p+gHC6Ht&DgxC{ljCiUc@(_!Y-zMU$CAj_whBI&z;B1MALMAYNA+$z+4($Tpeqz+@RoZl=xj?WG z7FfXHADLwpK5iS@E+izqXwFp0w&_+T5%e^?$OM(Ew=J;)ki^H~;H;Q+f!_21MkE_g zWw&=8R#BHSY(d%ZqUAS03((VF-2F>tXiB$Xue=o^Y~FJ)mZc_OTq$=X5wM7I+!bd=>uQ4FAoa*AF&n(|Ze7 zOAWA;Qv4z#!*87mBG8JL&QswqfnHxh!XWE+TgA9G4!K5ON4R@w#2keNqRu)dY*U^$ zg?HiQ>Au4LZ(VIVU6awCs*O~gL*$GM_>bbQ;XY#8}9hJ?{4qh?0j5be7zuB3PH|?JL66@$V*`Kr8VeF(6+b~UG9+rW<`Uc zb0c!6`ACdez(fa`aMw)RW8f&fIWdB?LE(p{9|L3f)<4grq$Vmxtss0efSMBIL@9Up zpK0v?>O-c_JZ_?>J!H8J%^(AT=^=77qT{PEua7%8fgpdhJhKI1nb+jdatI9Dbxwxn zwN}Jrf)99Qt`nux<|z*MF7`?QZ`?IZ%P@m)fqDNbnsg6k9)}KJZ6WE5+%SS_pJ+4T zwm}j-p!vsoJBib_xtKrhLESIQNJudO^hg2`G+I}^nH5R_`NdxN9yt^%rfXXy;V!-+ zN>#tf$#o`sFli6%-59;U0*7d-H?KV^0*-DZo=I^X=2nc$2A9h=&KZJi;GEsvn$ zCw8$~9+i=x%#Ho@C)iNFT8LZ+q~^zxaF5gH?cZ?}%2g&Bda}>fZ3DZYtVc+A5b94< zOL(0A_4o6Js#`&WMWH!%nS{?jY^1pLgLE&-2fOUb3S+Hs{nb@hV5iAOU#}hPd3d(% z;=(Mt1mB6$^-#48giW&n&CqV1A%DyiRdo6;4Q`w$cypF5-&R`Kzous;aM6)o0X}CN||XRk^&m zZ`Mo4CYt*W94~hQAej#W`+p;;u0(`y_u#U+tGO;4Z{o3{`TX3r-mv*ZE6b)NP;-J| zrac{%fMg~w+ru0NP!M2g>0?|u3^~)JfBF@YLu(Fv2D?4KsRwDryFf;dqspS@8rsKLZupxRu#vcw+YDyVsuBN z!|j+FeZ{>zfE{Qi1t$|ktG@mii~zG~>{Pi$9ffcJ4qm7L3hcAO@~Ao5L29ifxWj)O z%1!DUojp3Rb`~~6t{N(%MB7Q~kz3{_~F)@Q8mrK;XD5_IZlFd5S0uRPrcfx7a)!LA& z_R|&4F4qGd08G-&?Aq+K`wOe5Zitc#$4InBXeoU$dF&SJIoraBxy<`^tI8I+V+-NH zm*0j7qjcxNUAk*nb+M>B&PrsK4IyoK8(Je%ocQspW@4DbANF{d%f!s3hfk45AH3uT z-ZDWzQiAkS_Pq%5VuXkyMbiyZ*z}HrZsk5BRQcf+K;Wu}4}N-*JmFU@vNm~UR85cG z`l8p9NU0%{^1HHHINfzpOVxqI*~~J1Pv-AZZdLlQe)$%rff<-3DZ&hzD>3i10I}4C zZVozyVhSIu(!b@Xc%s@Z#t8dXhd3oxOE_c;kYWtN$7ipUvC$-;2bd|5=}NRnroCR6 zoCh#ifao;pWA)7$i5aohU)fohX0CJB>^G%61cgXiFc`1^7)|0_LCd$T(4< z&@fBo1;f%%p@EvO#ZyU`mw=d!a@G^QAs)J=P1kaVrOp~-Fm=lHpHY8uDPl`^Xl-B+ zf0-r>JKulWGhp5n=;!=M_nPAuX>}BI4JO(O2W(EXBeozFn%$A-^E*UY%L|8iS-^$G|ENt@x*=_{AwEz|N1nO?At?R+R~N~0(&bv9TYx9XB(B%XJ4e2553Hz z=jK3nr;1%7$j#>y0`wJ^j4;N&E%CQkF>&dB z)ys)(z&8cKz}OVMq8*B%BT#ug^=D}>2~yfy9*yEVK6ZJLM*chqBko5w7f{sw6G$0i zF6}wHLj?N4|oc5M2oRh$+~W06qtL2X;vSrO~0tC*s$CwWQTQgz*Sur-BFX}4|V zk)AJ^NNr@#jYUjLp?8Nslt=aQGlwiihE~cUNxL#Nb_4{HYNmF?Qyz08Byy-fjYfN9 zOt`?11poyWtZNS=s_{L=U&`s6?x4`d>njpD0#hF2V%4W%Z>!8qmy zpXG3zF|-21NqmYLAjRn%vxk#0iWvd@Jvawa zw)2UJU97Q0hj>&hl>RaL-S&Hn1C5qM29t3N<}RXf9rc*(TwO$IUv0hqw^)=m=MV? zV(I4q=FYvC__7Vf?DJLA-YZQhdR|6l&NT+>l1_y=DRDwr3iq7RoH#&0&Z0B=5Zxd5 zt-;_ZaY9)wiwyW_v*R$!C{9_RL8bcL5JE`LmdX{^(BmD?%Y``NGQa$UNHaHJFpo{{ zudKcLmN^b`-ovAvZ(MPj@BDFM!9aQ4ozB$&zTz#LW6N}(oJL1>m258FY_fUuLzVShqPMi z7fY=)c^AAzLp=?OTNsuZlqUQ9xr z6nH0!6ddOASN&KI(5R)oaz-hIh1*tOsj)^xcoB*@>7OJZy~zpZ*4k|#>1YU_sE2np;7{6A zPiHF@05VR~&`9caX8cZ21&eSlG7YEfKG!)nZ;&rU=gyW()Mw-FGBtO!jIjGKyN;3W zP5rv=p&!*_vr4S4e0w>I~fHkC)K7%E+n0zu*cD3@$p*;{uv&$0i z%!`=}r##;Q?MIX~4%N38Jt8>}PD(z-SOq-{1F&d~f5leV5+wcry=?ah66uKZ0cn4TB5nMf zn7`l*@|RyCp6Ojt|57DD&P4`>p-h%Y0=|9bkk6l!Ci#Z*-PGhjzXevyEvg^r4PyEN z?7~uchfwJbOF_-uwV|$8(N`zQUK$al@wHqeU7FDtzx%-<*8*L%-$w9j-X%kffjfDa zP|lsDSYeKBh}HrfO-ICF5=`Pa07K_VP%lVp=m8oB|t}=tp zVc|o-H201F&Bb)U+w&KBpm@!xl(9qv6E-3wVl$uG^u%#txOa#A>T*Lt;lGSWyFUMx zkrLbpAyn)6l{UhV`(|ri8#2I?@w;Q)orYcIC2Md4wU_bGK?U*UDv-3xALDo4CXD~4 zy?W0O`F`~L18z*#g-*Z{{j9iN*^ zd^H(IFZ(`g!M0=dqnR%=VrX~wt%fTq(xpBppoa&v#Y)l&5 zbezpB;AE!ZJs+qYBq6Z&{o47T|c+ZolJILdpIzw;|6wQ+%I(1uIH#0PD@LFNl<(S>R z=BWxj zS^_F~=mA7*TtjHFIL+xZ)y4JVhIcj9RZFf8*zLU9ktPaA2`-#m39H*%8DWsC0{T_Me zyl1^PcL4!kU`~N)u^d%gY!w!F!xD&!jF(y!=xoe_XX5oRl|F}|MjpY1vRYR@i-O%a zFZxd+kN&fOl+J-4uhc)i`SK`cPN(5vJ4_3IYCe&nIbEUnckJ&xRewX$0uS-4eIpxG6}(sVY?hXk{wSdcR9<9 z`|MLvP%cYV=M11~fbou46pGMLeQ|D=yJk&WcX{Oia2-|?;E#++m`8dux#t#r;f^ql zY6*1KDKD3?9|RmPin)Y@$(O&N=|i!RLJn!!Ri1)u4i3&_!)s` zrIrT8bzKWCqN`nxxc8H55;6jYK98U7cTQ_rl#&DNG2$FNONNf-s3F?>hVu4Nkc0O)y37gC12|CE8dcPSZ&8Qe<8?1D8HG=#$Luv2Or%#9l zd6~8%39S5Osx$O(s4Wm5eRqiJ1oowVne#B?CVR52EJgXJ_IwI5br|zHUUH*F)Rd~v zqNdNHS7v2>|-P;jx+e9kl(Ak!}B3lfwVS z$Ry30u(kMx@Z1htr`XMb&G}&eSIuzId+)U&8VJZ4ZE}4GNm4WvfXUR(*wr;x+uKNO zrQ_RwVtQ+02J$CKKh4xQ*+vKr>L4B#rwkY##1NT6QnuMR3%Ui>&#j7J_sWsg+F*Cu z+OjqqNX|gzbK46Q+v+x<+FlLA%@;pe&02d*?RWl{SviZO=*YjO*Ss$|H-0C&fD?XC z1EH@+V-WV^N`jU{fa3X`<n2au8LKX@r?KrS2Gwv-QC$tA>EV!g80UpbJJ=U9qf7k4Z(M z@j0trY|O0;k$GaG!Ni(bN}Tm;Apew=Je(WG0eF3kF}>*uz%)l^Uo~D8BSaN*_wJlk zWWu^OJ0p6CEfSevZMeQzMPbRTDQ<&JJh?JUZi!V>VNIEG3DdlgN}LaC5l*G1SZ78} zCX%X@FO4qTae|^gWr0qm&VsI+P4vnoT+^cJSx$d8NxMq3a$=)Hi?+FkO){BoCAZom z_ayaA=J8+Iw06Y~wzW#FDWmt434x_z+C02Wb1R!da;brKnHs<3n7K>c`M+R1^MVKW zjvr|kD)jCK+9JlMXxf!iVJ?Z9=PO5a@=RDbocj&9`e<;&CKhrm7UGfuIIwGD#RE>NA+<-4>kd61P5$7p zkhnMu0#;5?ZrueZPjkXZ@FCP=Vk|?MvO3t$X-MkU(w?hqqj48MTgfH62QRFS^A1=s z80>CHb#Ors&X_f<+eM1a1RQ47DB>3Q*pk>-Ty}{hWV1Taa?7=+87)VpR@-PS+t*ar z>9;up%%7^%rW1vMbm77<#G#c4Z%GLHef>BX**GKfFiO3f#Y{3aj zCMuEJ!olxmX*l)Lc=_i75FrO^F}XrIrpOmoqgJg7c+E68!h$hjx6`19$`~)VAdh(2 zP~gPdR-xK6XJB1nQ_Ll`4{^T^rYkDx_=;8mn~O#a^EhnQVsqU_JUE6V<4g=DZoo9L zEO|;{&#H^9Eh`C4+Mgm{_fo1PEqo}5RWHK@^gCD-ClmRkb@p~}7uQOH0~=u%Q0KbK z`5~<}ys^lj%;OBFV!%#^S5ZR`v|=xLZaoE1r`(8Iid z4zFn^cGK**N@EnUq{K3WbCO;N*gCESTs?g0%UnVw0tx=gL7LN3=I#*59E|1Ku*e#E zV!a-@kx?@!F-=J}njD5}lmoiJh(v8we${@RstNPpV^ISk3TlOOS=66mWPv6t`@Nx= zIy`}is;}o*#hBB5X@#Q==-G+#f7#yv%}dmYSCth7{cqq}!)&1CJ29>UnVIAd;b63Q z*9#N{WFdGX%yE!9XNrcMl2!bCIP)H8s7x_ZP;PN?V%alRY?hbGlzNiOc8z)o1QW98 z4&E$fM>7uGUBA%Mp?~IXE!&45DnIp3JHWG%x>j-4Xo&M2(qR!&nho9suG{Sc+^C{m zlZHxg^GG?uTqCT|+cvVnHz8EtHy2ow%AZwFDa>4Rmz@RyV=K*2!rTO_){7O=$y5-& zYh_XipxpH=u?tC3G-h1dpnDigNF>Kp=k$){ zOWA0bSs*ArW1GdY2jh9*oInuZ180_ABTf6XCNYbkNF|@YR5h~_IxA~h%kI1emmOjW z4q7sZjA%i7)8er6!+`iKhO3cF<(Gg3NV&_%Sby!h z`5x7l-QHByi~5#C==tVB_m7&`O)C?;MY39`>rsEOZ=(kOK1TI*B3-m?_(N*xI zNId@7xk4?Hb<;*dgBZeD0%N$CIH?Ta1Q#t`0k894!OWC-b%EVH;S#)JD{8YLJ-x2y z*(V}pxSMo2spfcUxE`e@zDukfwHpRg3??PbpLA^ed&mwARDH{Fqz!4WmOm>kStFVa z(du$0HFl!jtcOB~z@!zxMw1l>8t0J@<>PvgH7WvUbqwnHlX%BK0{$_TsDnoMYmy!J z5!PE1X_r|!>A(IB(Oxn`&Lggos=i&Q;U?1dDME%C0wa}?QCHjmeN0aIcXg*xl&PZL zi%_!anOVax(*$v=)Fg`mK}=!O2$3p%L52tR zqSuMp5G+R*F7*W~Rr8{(fbN;c2beoaozK`7k8TE>XKICAm+y`=mVj!vs5jHxSXNhA zYGis&v~{~h4ORfjpZHKw{Vy+))mew-^Aar_m;B3xqX6*w3Gi^g;{1Y2(}9E@x(59v zlcho2JA2bw(%lq52I+1RbmamEJr0pc_vmLpYkz`6>a=N&vU;*3{deHSlQReDt$`J2ppbo+1^zVGk;ttM?6zR`)tR_>CURsAO`oP zwur496e{fNOO3&#b>Fk?va|$HVn5oU4(-3r%$KGRw*v72oZia`V@JMO0(EGP(MH=S zyuZU8qe2fseHc;Bt>8l|6*$(99BqmtvKXKjD7U6;xD=SbrnDzQ@ ztDXooH6q4e&fO~wHbxOg#KQ$h6&EW)Bp9PV#6!>!eU$UrX`++2HzJa>XSsa_rsn|2 zcyL?!N4EWdn!>{8z<6*`@wl&i7>LsR6EcnzQ_6>jpA!>jgeuH^$T&4q3CAzSxR|t4 z4&~?EA=6+>`)dRfSQG3D_&RDMa~kKN#24vF!KS-W@=9Be!s62*-5DPG za-lo-u5-9dxN-qf_ANZe=D`%G@z~G{vi%b92ZqTKyr~qwjaoPz1RuqZ=LEG7(nJUr3xgS_%5ekqhp6`jcXSM)R zZM(*$_lapS4?P(<0CMe-jy%w}S=C2xxX z5$@FtF&l{~9>U|Vk9onh74H7mrY)hR20iNO+?lvsP3ddDqyO+Z)yd!ECyvVht^GM} z#br8Bv60hRUI}q?6uLTm+QRfZKXC~OK(NQrQcM(xUtUp_-oxOIAF(H^@s0K6#oGSf zUd82@(lwE`4ck%rq-a7S)pPP98oy8iB#qkqwAN7i^u(X77ebrxIm11!4quq@<~5ybveF#XQD-DG)emP=iGs0b(-X}9>R!OaOPMdb@&hJ|CF&y97n9wBE35z|`0xvw*1qa-4^ zjjybeag);_lTyXs{-w18q*~5XGVj58W3G+gH0lfWBfY__O_c*h;ttDd7|P0`{z|eW zxp+GX6YV`H$PIEgr1wCx4&p7*WE#(@U}Y;DIwar8`@we(Hzc(9CW=<#)oL@p%t${* z-J%hZowik}?*CJ1zgKr7?2m*WTLi zKhO~fBgzf~R(6d78lT`Ck&GJ%)%dCfe@T|S=w8K2#$+?$xht5Vdk3Vuu(0{H;0i#c2LYuDIF+WGvksbN`ySLiPa)40YXyI0}MrC~=pZ43H zbnA-7brp8~!%}=pIJ#PotABH-{h3HEiNiN`2flD8dT{=5Fci&3#5_Uvsg-tUt{s$* zGGzcrBz&#h3eh}v?`Cq`JGqzr9E^I>$5Hr_ja(5Eynbg1=(k!0-dw$s1`JyT5Ubt^ zSh@mtA-atgYD+M-Q$~mU5#U)luU%*jhU3+RrZy)8jBm_8Lkn}s>-RA~Q?&P!Pj1<- z6Js+MV>Kh!m}EW~?!1^Et{cU^Hj=vYl8yi;!#utbhECIe?&PAz@LMV-+wfUGA*#?e zo^S9hbYWkpmJo(d%;%vMtSVaG9ksWiBc=cTR#WI<=6Q~Rfn zjIo4VuO`VeO6N5-iR;mie@og4+RfdJ=!DO7>Z}DPVed}}1HA7@YZU8?Ss0Zi)jI&x zmm&(ZqBcWWD(+l{RX!W=or>KfIKS5;tdHRsXkxJ)o#)zVPx(W$4Ih>R(qEs6?yk7C zLU&DA10?@`(}y{h)*$T;04ms{PTuN)U>Z02?<&UYCUt)mW#h$<8tDJVG@SybG^AOP z>P&GejcWGMYiQg9dhtj7~E( zF1jQ)3Ms0+270Rr#8M^sU0)=4$OVz&S;5(Vj=DDh0m3>dtvbH*ZPX&@mx|3xBh80p z25MXt=WiffD``3`838GB46>k+Q%O_mS;IvyHRm*&O#zhAetU{IvBD2-Z}0&47i8;> zz9y=7e4SfQy^)TKTi7elQ136=g%g_MXRS&2;suLbHiucH=6k7Jwg}bo>HT5a=ICCv zw=@COmcv^e=m}*tmLJrF11a(QLg8TaS-456_ua3KWp(~4nhol4s#LQ9CA<2@8ozO` zM!zd^J6-{I0Ho;VcSDXG>~BEd;VfHdF0OZBCi@`L}=@uDlf_P!z8E!QIbtHjIquFJ9kX}Ezr%EUKJb}ZGd{@_EaO|!Wt{K~_HX!aT2uHM`?mmZ#f{hH$MlO1xO73p!d*F^Gz z;(r-i$)u;a$*m#C$@TN7&CTOW(EqxHBIe1#|8)z^o#HkRFLnN>e+aNL4+{R@?eh32 z|98&IoY~#Y+Kw6gf4Y+Zxc?uYtsUIVT^x-6C+>ghN{MI56oJ^wT?xmvdx{^`MA8< zY=67BG5iK`g4{KmkDtPgIgE;|#;VKAnAsEcOA&!vd$OJ#MC_T<)tdL zH=Y_*GP3);|;SXEB>Q%#GU1!ta;b@^0Dn&!7EOoeppZT@SAQCYC zO2Ec%Wn|La(D;E?j*_a~Fk3SJ630?oMaH#?3bFJ@5<}gAGe`e=Ps^6E__lBKevwb0FI>r_)JP7tC>FeVkGNlY4r3t3zv;b z&EK_rLh3LjGl1V6#ytyrSnv1Zg~LQQ_LGz{&`8{(Zz5DSmJurq5 zkfXI3XX~Tqn6;|M5sVe>jEGf=#52ThBvFwy#;F{p@4&m6#jA$z!wDOaKw(%J>5g6U znj7T+xIj@Es`g?-bPonoYFjURRiyRNKlo%9bGtL;O-Av^f@r6$7+YpCXpSJwCH+5q zol}tK@VD)|r)}G|ZQHhO8^3AWw(Xv_ZQGo-F>Rc_=bnf2zYn)6sZ<{FkV>+$Ywyom z-;%9Kab_KgLaiL3xWaodXUp?L+Y}Exx_Sj;qRU6j~h?W~E~@aS?YKc7a{IDNzQubz@KSg3+c2Rrqau zB=kIhKFtf=Lr%F>E{^jK*pKS10PxA^`e&Y7h$GKkL}ojU(Z5uLV5iKD5Gj^KrfQp= z5F@Dx;Q)5V9p9l())nO%`0dH*oTHdM+x5-k(V=*20T^6=;A8PKf>t?Vm81!T%lim9 zBua0G!V&(&Do@%rW)W26&s@N3uB26wRx22wDgvgKWlgv=LTVLD8onslfn&dI#t}y1 ziOKhO(L3X!0CA4DQ#il45-`iy9<%(MhX$OW!Lzm+n6HcEu;klT(FY0E`4Y4Q#^i;xshtxC2F=D;uc1M&n-(sUhw zsO7!@WQHU{jup#~-;;3yiR6>#y36NxQtzHBOwkNxfi-JURkjy%S90=NQAcYDOW*%P ze~4qIR`LCG*dcycbN>IICTKVtIXap-i(0w3I$Ih4=#YcGnlr#w#KHbYCVm9xe>&|d zI{yb!|0=~uT{$9FL_?wiYoZ$??!mN?g|rq{uCyu%9X(@C?Kg90$w7Y9*oPrae6c=o zU>;%72`(fhwQoF`YWF)~w($RWdxPtv&NWRKt_~7Lhnmu2zA@~-htMj%n@cPVN(^Ei z>~pCo26*+y)23#^R{V36V2oBRL2mx}Tc3J#p~ah5W54lQI@8tomda-6ts8l&!?|tR z*z}-4*4dcuNtp$!^WN^*;EM_OCgT;EMcEc?EcAPq!v~Y6L5pkz>u57qqgMHR{Ptmf z)Snbo^;Ygv+q6-vw$_m5OFW9;{7rbYE~s=1GNemH!{FFsZu=zD-cF2?(EKvtwAl#>Gqcfiy2Gr3Rrr2(#uR4| z2RxNFQ}|{+ssfN=6eey5AI2H~Mr!Ed)Toux$qw$Ky|Y$F7@t*EjpcN*67NqUEC43i z$g(^A88W-+e(qs-xVHuL&)A$xy}_?3_{390DSRh!UOj%`cjT781t7t?wA9&1R zxdW_dqwFr*TZ`g&QhiP_W1l^ zq@PfTLKvr1Uj!(Wv0*cGN0?SB7x1Ju5x_4GDIUlt6tA#iszhbeUWt>lw(IxcjVfM* z5Agq-|Mb=`RCFXU0!sn}btZ~}TjogPwd>)Gh15vnVWRTs5wjxrq-{RqvC3)mQSe43OcIsL?z5-iPa-fYemE_eQFTB! zTYxR<`LhA*bM>5@VNFy2#E>i1&OmMhw<6gW{~%xb`nWs=c)oE}tEj5M7m+aE`-~F;IH%61-7=Jcea1 zOWR>%t@I#RbtOiY;rQzee$|{Kd=5gj|+T%eqr`eeUOs;E{;xW zqcmaLOw`4a9A5~}W7s?lmS{3Uh7@+0=fv_Zayo#--hq^YQCnYIgEv6`OC z#sW8BZJF9r$mE)FWGun@kglkosJS?=luuNgn5ukhw6;3vB!1+%z8bhufq!=-FBz6?pmqY2X-A6Q;Sc&^jBw3mt zB$hrP!ofHGSnyv?%t^#_l!woOFh%y>epg%OuRl zdV<;}cJx%E&{(|OStg@m&9Pg8-KeKC&HpM}kB`;5Ov=?VZ1m}nphWgq$iL$1t~=z{ z=r7R@*lFvaGTWtA(_%;)S7;H9hJb*9V5&04a6|-l>!wPF7NNcTSW^A~r2Z725Qm%@6YMSS5ql(VIJ!OTPKbZr^!E@IUm=DrR< z4W@iS&70>!I|(SaqpS!7%sLqiU_kc_X(0Eg-@<`cIZ}V9Tp)cCKej^m41$2|9s;v1 z!#pkR1qTw`k__I$*yr1Ch-j&lh{WKD4;oE3K~uY3te<{;RoO|^;Vvg>?3PGmU82?C zIZoloJfL!5SJ@4{R=hb+YtX8^)2a-3f$T2_dK|YW?KI-)mpi-yEUOzXp0smYbXDl= z6?+=aT`R@CC+HI-;2c(0>1r1QPsdVe_sie5wJ=tapl{hd66L^E6dtkmH(b5zWJ?Ro zm)JAZiJQ;sxu3I@y?u;lv8}ch7Uv`8qv0Ot9XOd%4)3y2RFLNTYFZ?eIqa@ue%Q<| z7Fbr;&SQ(J6o&=CNBy?W6}m{L`D%14dycE|pSF(kZ7ge{Xg(*kVeC>;yAbgUh2`s2->;hMonLA`)$ zTlAbMAui;P_iHAa!If2Sq+xu;k>-IncEMwHy8fHPl?AfiALA0zR67o32*px_;nVnZ z6qQ&~d4{S>RDc28(h`1vXpXpm3&E9)=nj1}JRQI!pR6|1d>AkddG` z%N|=MKFN8981#7R7rryE_h{BKZy;{U^o7BF5ck6F5vi)X2I3bw4aJ9b>^!(ke)BTiZYd;W#P!bX{eo_S#698_KJUCvFvRB7aBpZD&f-miE7u1qKpwcvgt`6s zIM-+9+3zH~`~59%_Y3Hjzh^n2ZKL-wW&M`DKOqHSv5hzCK0U!VTjSlOPNU71$FuNnD|NJ$u2tVAcV9n)haZFn z@r!M;;R6TOL)ik+lVWThE!1$P2645e@aVSlA7I+;nl9^t{c0%6e!WRUb{6>?Crb!0 zSjhxCbsuKF{iF~zWr&KK>C&QA<>cJvk6yR`9WGuWrHa$!nZ4Ad~Z$I3iBSuZT`P3&6r6K>*?H^?7TS2P+?`1LNZeOWOZ z6`-3lsGP2*@BBaxrK$pW!H43op?Pp$b{jx&tfDLw#8Oi|X8v+5| zGXes)%V_#7u`Kn7v~%!AqF;I$-7Vt7LP@1maIKPu{!`~xPBN}rl17MM9i_Z@xLqfE zxj&}wr}ENale~j>C*Ekur(ip5HeLAM5vlR3ab9~m{?10G03(U5*s9>v8?B&o0C--< zvO-$TlMDt@WeTse=7r-^qlzL>Wud3koJ40E#oG^phBKfJiH*+v!@!UeaS?okn-*$( zE{q%Te`}S0hn|jj#Mkt;#RzzOp-*mVjM|eqV-qx?Q2h;tWJ;~A38_?C5EKH1@R;<4 zIZ)qakAj>wo+1c8m+Ac{;2A~u5ddZmu9N%u`{|KE@hdbJ{}T3EsN`z@dTI+Ca+D%46WKKdx6jB&P`ai*J;yVZh>rJOrUTXeE1 zN03q@_+M+;T%59IXfmXWd^_(R>|_HD$`ccBZ$nE2I;QQNbmgRT7hPiWen9aX$s6cN zaR)+<<*2xR0o(6oSLG7g9>LA%Hy&b}?Q{G>Ku_|XN_yygyc4id;=GL1l?cPdC@D@K zYNsS}XuKH)<7j9}a+N5(^j{WLaWpOOI=KTrCCtBB_xH*_;W0$g355fSrS>+A+EN(X zh;Vu`#nPS>#%N}zXMHLh0b(tqyEjFC1b2B^B?u9gm-kd9JsW~Ddm<6&gk}Q|B)Z8C z`W?QCq#-fUMt7mAv8=uOWp(ne{Ni<=yQvdlLE~@|mH&*CbZ?5+VJmK~3}~SfdK%_H-cH zg2Kh>>~7)So00Qs?tZiS;|YY_qm>4aHDZ+>)B^GI)TlTq^hCI!IRgP9IOqysioR$w zBm`6fDd|Sc-?F_7}&-!9MO~27uPmI1pU4{cuvD^nmS3@&{NDu~nLr ziCoHc=GOfPX)*71DUZPhJtb_4J+L3akbw=Vh#h-G7HQi{B^6PacmC^oRmFBj7tWTY zjx4r{`jmJ}Tf%`pNDaD?^>6Dv3xy4!2jK28gWmmz`2shZpx=+aTuCb1vp7HA4NrOf z)%a*J?mPHTTFxi+f-zgVBru zvvwL0?lwwI>TdMd&&Z#Pj9RFco8PQ$E2B3SD;E6G`uV{c(~Q##D6>D^!zP!i4xklz zwl<@#Zq|1P9_!K->raNpRmxaol6pvf%z509Z<1gFm3P)Q+z>sB^|ry%tNrIP@sU%# zUOLRoL*=Bc2KL6$H=q;t&RryQaGhOW=oMEH4nBYlt!CT_S}OGN`vM}=q?4k_4%XE) zktkVtX|&>}!@J6+MOG9t9ZB3Q2T)++P@5zgM<+$2c%|kH75U@B(wd4T-&?s`N*QrJ z+)hl#CLu->d@#)|(%M1UDYw-b@Ic2S@hsBK z2)!Slm9Vr^^enz;$>;X$>rqx=OebGqos5dKdg*9>mCO2x9u`A((B}bj0T{@-XLKObaNjZG$;=@1jLE#4iHyV!FQ*7L0&D=BefbZXKnUl#f4mN?v`O&D6o6@MC|}j(WdVwe zDW8lkTM$ujUxoPYH}C$v{({$AM_WEE-&`jm+57k`3!hV=T$KSeUu`J7llFxd)?5u?@Vx5+(Al(| zKxFO_7&d+pbMwgzf2*0~W7?S6Cq*=d#C~I|RLCF~*Vu4nato|BT>$Mv7`~;kKW_F3vr)xb zMGxAqw#)5u{3kx;0jpM9wGZAo45>YJ3QZ(_-0(T>6+88 zdWOx^&95iZ;Q_F3P-`Gcuo6cS%{4QTti(&8tbIdfIz>m~XH4)nMvZbvxZ^H9v@>EN zA&l{{Pugan5I%!EF1jQRyP2C6PH5cxbHsO-U;g3uMAogmVsjnBVH;H4;kfxH&8(hv z8Jt|W^$6MiGv9wh&)Kbf*mU*poZ&eCfX{JQc>QhLr3E@Wo*$E3iX83;Y-j@$CTA#py4J}GkJH}wbexNpVAR^#{nKEv zxRQ&fv*81hljSYA;ug}rX$zaNpD-fGiwzsc%97F|Hqg+973;tx0wr@2BpbETTxYPk zyWCn-)(vpDDBX$SdE@TfE*Fj(zV!$)EYjddW28O#dj-`-MvCA zyx3^VBvwln|FK1LUXu~oyb?37)YGrWMSn(~vmHR(g7C>y{hJXV^&)jsTxuw&V8q@9 zS9CaFPjW4qq7ZQ}aBF#ak&e@^6wD$yq~;}8(pBSUEEq|8py=nuh#TF?*sMOA|6YOH z>k5-pMaOI!aoJzLoP@b)CH6j*LnNb%i^VFUGi9kbGE+>$j~!eJW6q3jYX80~y+T!( z!w$fNx(RgxS)}!ocS~hrfti*m^U8;0jJ+PT==|iONHb2z1kbVHy?CkoC>wkP0v?c{ zbdLVxz-yL&?0aJI?!7oeQ{C_R@Q8KiW<_WZe?7qOmN{~>@Uo5F8&>hYgvxKGsK-|n z^pzvYi59EUMcnhb2T=U2(v%qPH4Rvhrv^Y?e||eqlAZX1UN|~}R@hsEDPgtNYllym zsC$+VGKYEBtddt_{;F62W>3^L0XUT9Bs!wDOwCri4jmqTcI%Zh7zIPag9filOSmvD zthHD8-Q=@fSEG>^3YpGq6)C|PAJ;Dvz{zQy4sCIyS%FcClNQr3EkB=#HP3Blw zWCF(a=xMH1vvCJ2p;c4VO;w2ba{=KXP^ny@M}dZ%qg4A-g(I!jzF8x!HXr;kHqAS$0Ngcij047eQ6<}zwvL9Lk$dwZ%&bki4AXA@DYyg_G7A9VJoum}>rqjSus zwEg{kJQdL<$dxT()eRVoZJG~cd`#rdos*5PWbvsTy)|o|DJ0ZBV_yNn3+@Yox~1Z z;^;e(rt-D3b8}L!_Vf$w0RZz}C%KbL@f>NTH*|{*2w*-9lPKY&g+Zx9wA8MV9YU6H z9a-1&FZ4k-$3C#!vIHEb`reY6VR%+ohul+Zl(ESn5^(+k0Kr29Y+nYz*q+FTQINm@ zfmvqC$+_X}=t~j!?x^jp(V1ViK!D5*tTm=9&bIyB`{{2Xk2zpnDS$bl{v$NPFUTng z*p8%Y=F=e8xqOLJB|~e}*ES>F`>wXdz4zB7Np@zON!h_27N^{=IYjfkg%{wUIOm0Y zgEu1k&XK#9m**g;+<8$=93 zKxramlB(5{Nz%758r&DrkOpfT3lS^a*EG?jDkIcrAW*tMf;pz8-~^I;g5|ArS$Vr1 z5$qdXx8*Ivs|NUYCh#lte2372gh&;&7Wj9lfgq(R02(RKReFZwrS;?IoxALgTHu+u z6kft;2z+&AGHz*lfrvMKMAgg-#PN(6L>d|^?@G!I+)NVkcvqV_j@{? zz~wz2aPf)L;yQS(&*Q?znK3DErPiL5l><%D@M#hBJ#d*^9l9+K%#xj;l0I>@uW2qG zHH3ZXeI~?Uv7t(K`8eD#GRy?{ccA&_t(CRP=GNfVVGPU*+3uv{F~zN4*6W40m{hfW zA^QO2isewgt?!H2(!EE*(mvR|Bvk%f$}ZCxpcPE^ushuNV9XiC3&ZVKG(U#_-p)sH zgGP?wbG`{e8O}I{?rrbp-aYGed~q%l^t)t-VqG=edWI>ba6ZTiMC~ZP43Ueu}dT zfF2i#hIX7pUjGVerKkLHsJhLiNNCGcPs8PO2}|rQ{FjZG+l-6I zPN3OuVNRTchtj#fyjj$Ji(WIO*Viuh-AH|lSwwEPEesEOD>MK#jfgAwi^sHpTI+vr zE7^%bpe)3^%nn*$ZSsQBv{<2z|H>YJ1Dvk8r&UfLUfifZeI;23ou{YHOHFjFs*P8o z2VC5#rFdu_Lfzx8u%X3GG8~W_4GwyybZ2DLRwj~JrV5&E5Yqdaw4N zf(3d1ZMlmr|LH3C_NhwmB$gm+R*mcoC{M&b8R_ApStrB1nA-Z2Zv7qO2>Php3Wx!+ zwj^F*kNk6#tfjJJkHcP0xP~Hj{mYlot?XCgjoHJm->8v<2xxGj#7tiH{on!pN;1@G zq5cx0J+lcr=Bg@X7Lit@E_#Xe#pY@Go&46Z(G?JTFH}MTv#o>Qf9wkLaP}=ija7_U z!7l7t>MN7OryKE#$+PUz|1M$gx&oL_$lypKXtEE{dxiH(FvE>hGEC)i`8Lb0#`(=Q zo}pa~?BPZrLp>zi`vFz=m?rO2MtSll#`Pqt(|4rt@8{)Qfj+Y$%75=f+|ju*^7&&-7kOC3>;i)BeEy8I zCTid>o%$Tf)$rdq^54;_=XoshONP=5r|*(Q_R1riet=4%vCjvpA|ha{nMFrCIhd^g;dV>CYCNRcFh~K3}#K- zbx}8G$~?@>FRZ9mR|cz5t_IAsaujQ+mHzj}U0qD^*6uiA^v1c;mkiTDd|=NnbR7V- z&|#feOi*TAdfjpO*C^eIiPv(-6=)`vBN<>$Rz9EUBgixb&|K9J%L|33N_bELv{U`-^L*;in&xc5Mh^<6{ z#;qhRzidV@wEJaa_t!h33mb3o^o5j;EKM9?gCqu)T5;PiX)U=^(UM_rcemagWH0!B zM5M*&RNHgVuCu##=j0wuEmvj#rI2wF<6`g0y+kHTE_d}Rur-hs2zn8yK7g2#Ryh+J z{&Rb-ZVc&SQMwushS!kW*G2xloNpf3#nvogr7riWl&N>*-D)>BwC#70qWo!?>~ zD9S1j>q2Gq&~Tz zO($d1Ok1CYAP>36c5j z(^v8c!2v)h%8}+>YoEJF=?0DJ?sMa20!j7u^kU@`)n(@Ejo||42mf5aGzBQ@F3=%2S}T3YmkQYlcn5RI7AFtLj5^& z=$%C_FQie={DOKSapEiSxks~;S{>G?dIze*d3KVQzniL!XCHhXMh{Ci%8T7xjoQ=}faa zXSXHU`ta%sQCH04#kM_-L4*YrxC2uxdGN+Qv)IQav|DiV%R~uu;@Q!ii4^MaF$kzx ztn(D&QG_}`wdj%LQMzChgJ>`=paFnUfz*GOTr8oVBuwfJPdxtzNvn_U5#@~vO&Hw$ z3Ehe1Guj^>CgqM9P1GKZTS0l8R5Qg|wPKz)M@%3$r)suCNSWS57J6uG5%jC2$FNM!sBU&321R0AKHLEse6t7 z8D-9Mg}D}BUCtJkOqshM%MktOEc{28dEgX@ULt;XP;=tFYW{n|tot$PN1V|yKQ|2G zYq*OBCycg$c(3x~KWd%zid{Kd>oq;XUMt7@IU`P?dmR}#PuPD;B%9ke&DKOJiJ=Z8 zB49(1zY1q~G9!!ghZH_R^^5?c@QEU&kaVj5?vwWZQKdfvOC}aC_H8SSI(>UFUIeZs z%A3%gv91XB0t-Ud`;Za(^^KP^t_W0s=H}$IoKPcvqGPH){f&3gXh$;NOet3M$nl_+ zGIA)sU1ZHIUVU2fDq@apXT+y`905tUbzWv!L6O?nRwc#2r6mW4w&@1=BsO7yb`li$ zNz^~MH9q`n=kcSTk+9QXxlwbE2n^@8cTMYi?S_1}xwYCX2Tvt>5rcR<`Sk%;j$Z|o zCX=tv5NL?{)CRuqLibDZ(v6Ci5d*ciX!kG}oIC65cP0AIsfItjY8 zV&Y!GdtB(pq!Gcgxde7(?IsjJ*0Fq>xl~_v&BP7j_2>#ARPHrNt+=tP=s`#lmI141P*#cMI zIGqWGM*H$sPIM|j*+rY6mnRX~Z3j}+(jsGLvKW0aoo=yx`F2z8_9@za_L1WSu(QT# zwM)a{nz%7qf^<=|pgmhV>4m-45dLu6Zy8mad}}1-_^2K7uZp?-8R@L>jEk2dY#PfmUk64%-P z@@G5t(lN9Ba3EI3@Bdq|iIMIUyLdhYZ!bzgc z^r;#Cv;-q_78aV!^!J{d;_AOHJ%6LPG|M$peD74gid7S(pQi?{52T@%o_x0JZmw4y zzTR%01%Pn-Jlxiz7Gc4$vW;$GgNV@H8LJINLjwOmi>oaer6;&_0eB3eNb5{wu`C$- z4HNsp&_L3a=YyhP>6iDlct<-YsdGnRrV3ePq(cIlpvSer9YYY9p-a^+11b^`G|;9f z>rtnmmkbtb&?lK(FA6j880o0$jZQ259AqeClu!*2ezAQk;*9X$t87truJ`jRS8#G0Ekl6#x>VeN1KP*`YkTx zCvF5>6Cd$o87$~cNKY(jZRaG|uYq19_1I6rUaSXRoL5|gPC0Mo{*o|!NMuR1w?MW~ z(J0wZitQ-QXmAraNtC?lh9wH=7?D=A!Q@&^X~{b!p;((}xWARJSCIONDq?=LqH2*h zFDlM!gqysR1@N%Yep*q~5LWGrwPA0}7wjYPRu-fP!P;RTtko5uWPd5sVEgjY*Vmj{ zCt`2TWKU(NYbVy?)>@?xx&=s)K64<;1w+jqgK=ZHOg7v80ri9kr0b)WOoKy^b=A$0CHaRSgoLAP# zsXU`|w%fIP74xcPJNs(Y9_Z)Ze(MRh_Llpub2xu|-K&ZWrgSj8TbV*Ws&~<}HpUa$zsVPy*dHtpZ}#x<{X-QK=OIn|n|aL7#@HW1^YG z{%&wD0*a8NuspVK0y;6qJI+G@r%+^zyX{{Fi!p){VqKXyE%uc47%_v1qmAw@6>m2+O zYVq}*PMy>#YzTxqFQzp?|M!q8og)lZDd;% zKL%7&6OuCGT)$unub#Q_c!gSEK!HrUEY``SS`fN&{PN`$?)lDJd4Ts2K9p7X5I&Ms z2{=*0GZ37f9a0Ig4`d^SdR*kdtWU8djSAv~1?6cWI?X$#%t-)q!decP?)1o)9R`S~ z;Wv9Iax??64Xqp%uvJsUkA{MIpG9Dg7k#0}Ue1~<(z&7tF*5O5YKk5@z7wJL331IXsZF2_tPloVJ98f(QaiSarqL`E~oK|Vd| zEh6D)^IvBP0ofraYm$z?oj+Lp2y;ge!4rnCbo&^UF@?ZSPM4(@Hd#V%m|_W-0`eFm z3?fXB(gH7sk;vNdI0K7>@NdxXF$aGZNtMg`*om<$SFYLviv z{aPToHT7dK`>bHR5b|r6U%unT@6l`U)E-l0?5GYkbm#*h`}J?csr0V{g?NX%!-;N2 z-PVPbD+qoP{HG!}n3gSi|A4$0;Q!6o-E3h4Qj&j|AVtiPygzOU7Y!by8K2rf5O03osql zG?_vlg`lSVuo*ySIzMxlnFNWF=D0otIg`Pdz+q&#HsrQ7*D%EBCN4l;yH^Q-MZg^4 zp3&!U55{AP{w64DDUXHn&U1d;C{c`uw^WaJx13UvzZN`6Y9zB{1&PiZv#-DBIL%8r z=N+!@8q91HbYamCiHbBDBY#Jls75e)#w2o2N`xa1hMQPmja7avxSs-Uy1xWoFow3Br`9uO42K)YMD@SyTj>G#yk{6IRnKv5T}Q zDZ|P9*HE)tMWJQQiguIRg>Vf{6I+0?m`&A6i*?QRrM1no->Y`Bb&|6~@eXm*Y)a{(%!6lDmtE2^ zZ_X~o?1Nj6;K`MK=CB+-{Ma9vOnZdqF%%l}#tN6Zu=n6VD%JNAC~2318H_XBdu28R zPe4WF;DTsz#JO)nn2CO@%fMie{!Tv+U)Q8el$RuXkLZaEpKk_Y`_`a_XT{8UFLR#$ z;q%EN!wblQ?$Lf#$vZZJ0ga2m>Hfw2tM?8a0f(eZQP{KRnSpQ842MsJ+{+6GK+@Yj zp|!lrZ*8*m-cBF-K|-{A(=0B|`vpEn06?DO)BWhwqr!c2e>-~g3dOKH{p|UokJYY# z*=9iQzc840e_!^>(s;+8BXCi|Z=V~p!k>T5PjioWLl}RMS+HGxtxxNnij#Q=PNP2|LLj)iP15&|1oS43 zDm-X}dl2~uXfII9izP`(fyKv@01`ES|nm>!3v)GPc3kP^^MYFtO zXRRzbSg(5unYfIOJRL7*v9s4X06GmtK1Z5m#pp1=-9fE|0~`(HB#6;rpO=|pY{DVC z9gSTGSuMR^AY{EqH{M{->GVQdpU4rd&J7RDA$~&7|H6yCy-i^*Hl<2d*OfA$pF(A@ z@t6cyE=4all?%oHdlYpK6-f|8Se(*D$-=pEG9tp3d|VCs4ycV+%uTZC2ZT;>X|gVF zE#qNFLwKay1QPw}>D-JS)dAW6eNaP=5mIVG55)C6VaS=TIqd4c?(~0?@U zCR8$RoV9=qlYJ8$qGM`p1PFYXH{n{)(uEK`*`aeW;}l__dePY!8nf@UBa#~X|YRwNl6=cc; z&STeS9w2?BnVz>62>>BnVd4V0`hXY$yFR8zI7R$A3jOSL7^=#;?=(u)j$3!h>MquTY0x^TJY^;kiqh7Z+>qX6S5*+<4{*VF3ksL%j%;HG+M2FM zADzDL*JNZ;U5p%ytlz-AWJ%G-?M5D8wnd7CC$Epf!i<-lXA2%flLSq_7u?yvi?D^2 zsDcP0>W`WcSbnwO{shL}H5v)*7Re~Lj}t|Pp5t;&qtc%lGnZIu&!AH8Co>5WXW7An z5wF4Azf>~31!%jjh=WhDsfb?G-d>EgxLvN!BibQ zIW#Y{!f;GLlvpzy0S~-uLvv#559Y}|jesRr-cxK^0f-ud1c(ZYfm=XoAtx2-g&SgR ztRqHAe#r~}N{?nni_1|=bLL;(#06hpGemuxgoQYyeP9y>2mfURw9!{AIThM4BM^ok zct_XIXpPNyMVS@%`zm&5^Ox~8FHLHBHVe78VIe+&YBTud!Zw1t3Av+6mtA#*TP~PQ zIZ#*`7T{-jR%Im?8j7)S>V`f2)HobPY z{ZwcMHH!YI_&fLVJ(I(!Tn)NK*qJf{tVgxCOd*E_9dN#hUeM2^$}Y3{3vfQ!ILxLv zew#UvN3J0J;xO1Rv~TT`-LZ#O@b6fF!!5zfGi73|Nn(ibbsYG2#5b%yix|@j!-qz2 zJivs3{l(#uwgu!Xu;a1=!Z{dSrYl9&AeGut8R*-V-5CX$mx*77buDFZcaj$*Z zDdigOtM&96F5y_oA4SzU&4?0}8O_|y7!Z;EqU1lh_x<}ibAC zxW@8j0!RU&*_X_$WuYT*DApavzy;zF6LT!C*dhbbL!pc=*a{MsHL>8vP$H8i0D`8} zr5@R3HU`A-f{U)VmF4y zgx#%>4+89a23Z&_IJ=VRKRp-109Tw1Si91K>4p5(^$pe1XS^gRpBv7W@E3?L9(Y*0 zSog@R(4*+8IK<1-sZAzBSqHfIrFF{q|`8J`#3x zt3FolEZwczShpfHQ(a~R4Iw?ZjovzCSuPbo!3z(te&(>E05>a5u+_ES0D*Y|$$X~I z2WR}@CE2qqO=8tL&Gy-} zJ~}(zA&4o5a3|B~*_y>@&E&3+jf#8UUiYHc`Qv1arVN6o6LMbr~6x1Y+Y2?C-mfHq=nOa@MmD=b;cs2Wr#!7Z^1EP_YR%aNSSem`{ zbnGnQw2KPZtZW#&7O5%Wu4wIQ3fOEe6v0ob8(?$Ga_lVW3U}0@?30`^)H_zpEianA zMK%fF^88)%4f51T<;SBlR6-?kafGP*h4J&S75JK{n>h6V-|^ql8?O_E>0)i$l6* zRop`Pjm{}-991g3@;B=P7|GKDZ^u(Vsg$N2d#2Z)UsaRMg+-id7P+W@&a&7Uj!Wo& z%lEwSiBtJ957+S+=Cz-@=z~(q5UuuIbHxnAV>xky=cyDzezW)3W&n{h_67*1cOppV?_ z!YtAG0F(p8Fa2Gqrd>va3YoLh8$QY~#^aGoJ!&JKN`e_?TVXRIs&{FEeC_u%Y5WMI z2jS~80%qMngp?R4pAkvrkf)w>x+q~b(tV_ewx|^F3n{yS1x2wLiW;Ti7?&(bVrf)( z>b_6j;*e_Gok$YiO_v#u4n#u>yYFyvCztZK0E{A5X`o`suB5M<-5{R70@Fa+*2f{r zmgOquO5T}Z$u_p=rrV!Oe(q#3DVE`Oku{=lu@Dw;w@VynXZv_2QiudU%l2Tufi%Da z&5CX*6S{<=#!4$Qj+Y)z4rn}0AA*V=tVmATLT7-?k+n>uh1&wm4d^P4q_g$~B~$2e z04AKh!w0~V1VdPGst3^CD6s}XD&(BmD=yy!E!JV>!}KXHXiQli|i zr}!Od>DPm4;?IZgNm#pPFJGvB-2XnYs1vgox-iC%(!BX45h_jwA0cyx)88qtBz%Aj zZYVIg?y`0Gg=g*u|DMx2V=TCk6bp#w0`4P6DeJoKneJ0H_{3i!mf-Uwcv7}3(@cKG zkdkEqVQ8#L)@P`dMGS_;TZK{v#iQX%S+_&ya%~Gg$0NZT#+ZDG@?8n9$oqvzBWCT% zUddNatW|Y3*+ZKgONynAxwE@=coiXw_SqvBb@gb)eMU4sso{5(OSwQr(W*H>uGC=# zK5Z@dWK3kU+6p+;O6r0THz>Jo)9)V9Fd-w}=^}fSY(FpudT(r- z?DSqtmR@OtKbR*Fb7^4-I({=onVJ{Qv@V@#XNLX@`uE9g&xzMt67r+W3K13zs@h6i z!by`=;+E3ww2YzS8v8CWb4&LCXjl2cbH63c3#$3;XQhJKf3#TX5KH2oX-3p|1uAjLZ8x~x_duR_5;kYHneY*!JXi5i zlt7kl327Zn8#4aqMat)8&>fK8nE5P}!g8p?9WwRz#?~d6IWkVw*v0sOjevC?D$!0$ z1U+ej(#d3VAE9XkL4J|hLjUF|tgypOfJ1-PGo~5j{0jL@K;uBzJ z3`%{4T_8S=wyxA3sQimZx+z_uTo0>kd81?B(TopvEMDn9V?`68v>Vd;`yP*EDBL1IBdx|WWmLuu(y5EKc?MLHKjKxqj<@UHy&EB^Q1 zv(IwQe)GOlXJ&ZLoSFCIdh&D@{&*s?oFh5#X&|YxjJiRt{v5}61t<@*-YLg7jbeOb z&*%fm_3G@@8*3y)WfCfCZ;Jc5JG<(n+`4Vo$iI}U#OwvAPy~Vs;#qKE zy$DP<2++2`W(8^+luN%8~NUyVyqQj*|jle1Z5uo+#N}MXI0wBgH+v5XikIv z@x9sn=sAL}!J>h_aLsav`oirkVp(qQ^q1(t=2#`Zu@Iev#RxJ0yn0S!9s`$ZoF;$! zaijvsQ{1*-(#SB(kI`1GKg-~5?{-Y5=HR*V(Wasr^1PZB8Q)ElG?#Z5M4BuaSn zT)22F#LXQVa5aj~0vv?VF{}%*%3^7>flaSevMUDDJ6K0#Us<=D0}*b@J@!;W?PaGT0FMkXuq1(Kpp+;swxq(${CllM@@G0`5~+^%K~- z#d`)+$Y=DdGlrBn2HGiq*zGB*&6e1@jTX07oSzarHtm`=Es+p4(I|17oMJdtx_%He zE&ZVkN(OT@5?%m{2ook)=v4F3C;L;7vJp zxVClAUe_N-2G@AoB?uC`1Qao!a#vL8&bH*0hL!a7yzelsl-plokYYV;JI zk|9#S&&b}1kEt%Z!K=6j2bRFmMB!I4ljJa=Q3=wi=vejM@Ca-4ofj0yoZ#qYeDPX( zapYaa1I7G&;h4$cT%=Fy%Z){eelmzL1Wt;7NHGesUB=J0b?w?~}g zu}0BDZb9?faB+B4+@{)_67a`h-CFdES zk6^`>ayBS^q>e_-TFd9nDs;|Fn^vn)qU$^}N6N1r^N*DIX=OP@iOs#vcgv2`vo0xk zzRch#tuk|X?}JoQ&5`Ar|1Cmsf|0KoD|s>>)Ny}b*)-DR8bv1WJU>M0D zKJP{4ZkDIzb}F_iCQ7Q_R9OvZJ8ZZuWA9H>EF)$CH7!c}5^-M_C#6Zv>@ghXNygG_YbOi_z<1fgZT7xjpA=Z(@EByAc1weLdNF0rG6)aE zJf2mkyOkKp;Vi1k;Z>^$&XRu3A>$tJlu!_6DkBpe&Lrc)HT?bCofiDc{RGV%-w-GI zytwg=6$8O_f*cundeVi-*0}DaMMh^a@6XgP&?VsG{`_l^wFyhNr5aVpjgeELNORoPsem zKC(GVbhv1ifN(vxY^RNGh}!4gMxYLuR_cjXP(TVZav)T2Zqbe{b?@oUlPhFMAK92i zKP~XOulLLB4~Gw%JALTP2gvy!O3WK`m3_|0g@5s4S=}CQKB1L>YLsLKebRA&uj2~Z z#H@7$XDQ6*wl%8g-B)FfN9Tw>C^be5qBASm+!!g{u!asN48+3Zs3<~)L#hRfQm^@5$AR6 z$j`lP7)13f!YaPd%-Pb152;pfATa45efOiL0kfA=+};M;Rkt2vzqs^~p8ktmJ97$epCW(bMa;Di z&l!?SYd&%Y4wDp&$4War9TGbVxLxW}a_Ba5YU@|r=XfBtOBE?jBi51JkpW@R`PBZl znf&8K+js1Xmzprh9H`dOG!eCe31(@&U=}LGSDZ?FGs18(HTj;lHhi#sp{B8?gm9AZreF^fcxSyc%#3 zc*vMt%z+V*`?0veKzS)^bUL}rcFZcBfQpDya%^2h?^E5)q@ZuTV*6YpeM632u^&_X zpF3u4+#a~!fs5C2)6Srvy!p|~yx~~$H*0jkDIk=0P-867=gh5mg-T`7tTRzzPo2j! z3Eh27p^~MKn#S{P&%JjDh6ii(N(<6pF)Q^~mXe!t8G0Pdjt>sHoBDq`RqFp{sc+Yy zY`%*>!_|`6?rOCA83$^%NsyD&0~uf(*Q`u}Qkhe(RKgufn8BJ4sy;@7Pv7=W?06x} zoVub%HEr0#p1p{=(w)_feG^GZ$aJm%WTu`Cfx0+|Er+;CGu^-Xg;Sb+8ow2-v|Dm` z`5UuR-He&B!=QzGx`9gNY(>rE!)cTD&^*9snzsmP}S=d4BxH_2`G$D57o>z)G}b8iJf znkt~OKnXIH1g8BQQA!^^zP{C0H34g#4CiRbW5NhoQiIn9q%R(Sgav6~zLeZq?_iGl zNQ~_dyp~Np9pESN%0DcC<%rg(a#@+S(Cn5Pt(7zF?)Zoq6KPe~K$brCN|~V@z>&Vk zrd77HTfl+ptulv$2Q@W*9_{N=B;}LVCiEsKU6`-jJ#y(c8Ey-?2mK5AJo68r!A)PQ zj%BQXyW9^%bv&Kw2r5!l1f0Eagu5W2Njc>Dx#Zcj!h=j>9z+q?y*P5N{G7l9?|7ZD z=+MC7ozmSjBE?lXea0Sif$(?1Qpy7`qIfHSATNgPvK$;&PG3NUnouw%Bb_K-AFv12 z#vxgfTMc1|d(A*hXGJXhl_-7-U?q=3vLbgIWqre-LuZ9A{Dvsr9k7SNhRGm$(~Tih zKAwXHL^v8{Aw;MvKj4Xjb0$~1E9A`!(D9CMl#izr^G6Hs3~o~xI3*%F3DsE!Y3=X* zO#uL~qxO|kz|Q8eVHOJn&}73aW@Hnf?}VQP`^9p(>*ojI1a5 z1{GtI>o9-klN~;Ry@N&Uob-^)IZ-=WRLv;x9@9M29mZI4*y`LjA1-L@ey6YZ(u}uf zRY>D9ZTZn4VE)Z=Yq~%E&^&2}ua6%+be_KB3f;{PB;np?1vJ03x2IqC696)O%Wsc` zh&xp2ZVtBOEKZ@LWg%S>#r32ld5|zPDQM4@CiV_T>^k06dgKs@*qYU$vn2hjIz-1W zY{Kt$C-ZSuh@03@4J3ZYN2;%uPvw~DC0R!*rv7HQ;yvkv%@;K)h96~}wN7Qdv<$sW zwaT?*tNq(uwQa%dy$Qvowl=*9JV3C?fz`Br;wl|$f(|BXA(Df0L_;%?Yv>$L4b+@> zDUs%myJ5fVe#-&+$UFg>;g?%2*!eZ6%@%>t8+X}vL#A&yv2&PA)J;I?OnI`S^U^Zlg-R=3EpncRWeTeV1G!aBG!)eh zB9z};!yTWD<>B!#^IMeBT_2)ouve`Y5)vt;61X4lkKgb~0em;^u8q2+dhAS%S~K%a znvShDS+)FPLHAq*Rq;=e4R)#nvuu_I@YMOIWi!mOx%bH{YsWloR5ZjvJLv^bD%OCn z-{iRk^jTjjsAY!D+p}PBS61vx6ck-CkML?e6wYN;E#b^ieR#U;~@pH1@W#y zA9%d6F1$)d@RmN}c?tf5G%m}L=-xs*k%L3Uo>?Z{zA0n0gZl470z?K}ieSXcX@58L zJ^9Fo#B3z+=bJ4~iT&Vb3QJAo&@O#^duG2#0r@HRqiQ)#8pG%3*@YC zi@a^ad(ZWIWcxsHPOY)~vEle2YJU#wehCYq7iaYIk$ZD~3CNA=MAdihbzs6m74wim zm)E9~786?XCkr?D=uf1xajtE|fHu%v(9VNDhlf`oY=y^?oYH7bBsA=5p~i{%kGikv zZjzX18M4RV@mWp@rINkbs=R|%?{gy3Jk3aL-I^OsiKMogE?YA`)HrWb>2BP)W{zIF zduWwdEK>ZSUtKnMSW2DY$n6T1D%>|7Ot2P^E};%cM7L((t_Qv=I&9a`?@5J! z>Z4I9drf6B0g(Ax%C6Lx9;o)z#P-suU>FhQE;{Ju>t#V+D=9eBJ@otq>v+~h<08VY=ilWw1>w#c{INYvw6}U_k5t_b zAdnM75VULI{2cA`*uVkmJN}2QKHMfX(sluHa^i`8y7OLbMoSF2ATrZjn;i-8=8=;YuP$*R5 zS>azYQ^YN8h%AeFIQhQLCeBL^#_tcxt7^zW>r8FWdVYNt>}q^Ynq)yZi^UGAhx4(I z?+~)O6TCPX-NuH3-w>_OIGKF(eK}Mp{$#9d%J+q6Pt}c~wdD1$Eg7VxHubQ|JG^<} z*0#w5drbNuW(Ssd-RK*_BKsuCly_bp&22v}0FXRO{O}RK>%OX1Pk@{( zJhdmufmuFob?llsZ%gDk6YnFA5z(eKqLEhfFRuAB=3hATp^|3qX=|F4bKwjN#Wx7| zLhWMQ-;5f8+l_o{p4>Phc^}D?fo6apIw{r}rX--yd?ktxT_B4rX3#WxI8;(qVe~}i zr0nixAkkPQ=wODwVRA^$Y19z5v!SHh(FmrVV zKb20fFs~`TCiEI#wRpE`ASKC8z8?Ek(JXm>GbrxL!G{4C zDYJ!#R8d`oxzTI5x|LEfTx>NV;!Bp~gs@V0XDyq~z5SHwHZGp|T1QCFs<~2xiAY45 z-|oVssLPkn33Z?l_LZ}1|3&NieJ~Bv%SAbC24<fluT!g8;gEc9b73VAUS;O%ll}P4R~~wk)e}@AtJ~jsr}uICdiST!sywA! z4%=x++KI1ZXv}JG&wnpMOpe`}X=yHiKW_~^Z-fVq^)B0S`M$BrW3t}_ONiv!L~=Cf za>g-`t6;{wzcC)a;2>?~Q#U5=FSWb|vK0thuYpU zq%01yEl#+HJ9!%57!b4R_J;N$k|I82tK8Xj{M5()94R+(7wYMPD=N_p)|L&}!p3hn zaLn{C`&8x!Yud7+=$#L{)3=M$$9_%O%)Y9RE}Q|ckcUf7!USZ}TN`|>q@JYNKb&N> zpADLu{^83Pci<$r4akLd@Hp-n`^_-)ls910>-GYHsYbN12~Mu@o+P??F=LCNg{>kk zyd*;qa4qoa{sU|`QQO)8Rg@3S8}{sIiS-3 zHeC+(PCxCUDedBEIC5@@jjV9IA)vOZ&kIVRWbiT~%xyQ&L zENxG#a~j%$ijvb+J*zpHC1^){Jn{Pg{rZkIAvIOf+&Z7_lUmGjRG^{BiI)_w6;80DE^|^jWmYD?Fgrgc{7KFV2ElfgaDl}X7Xd@Tc>m(L zkj%i(G$=DOwZK2hxj$q2SFC&O*tQ)Oi=+Tf(EfnIdXWr&l)A~oGAAFk+LsNb;`F2B zzmCEnU&ae~Su6?n-%(<7wX>X|9+f?=qMVlhVxZ22K~5|eBzOWftaAC!+TC&7AyGr6 zvyIZ9Q@%ub!;Ye;{3i{mlB;UCs7!ei0|3&O2<}`LX%wZ={D*YOoBAcvl;8zvIEVT_ zq~Ct4|4wN_7*y6qFbGfFLWiQ~%tAFPI!c!&+-h{dnf|p`PC|uOh zyK3V9Wa*Os#7iW0H-12N5D2|esEr?nq_ z#sg&_u|gS`U>(E1oBR;UEMg7&vL=thK;MI4+UvMLTw9pgx-{lRCqfMb96#jl|2cm2 z%Q?G096tXPzyH~&QQ!;l``=)E`~QOfmBRnKEBq~m|0~tPAm#rznm>i{?JgmGGBhKYR8wcI?0U7-WtaNb%+(FwpehE|mxY{ro5P z<34u2y$C0=#D|GPuKh0PJTtJk_h%3(3^MHUG`A z=7o7B+(6VWLO?0YK|sPMe?!1b#6$lEpUC9$?SI{nA;G}FoLsG#A;A7m#Tw@SJSIba zBSeM=1A~SAuSgUum2$DHGx^g+26&Y8Nf9vu+1L$m{eaR)6k%de^$7kWe@U7-fh&Cg z_l|+jMbfwn@j^4)hz^8I9`8+dgv;%;7NB;tQ=xF}Y{q1_MH$j0I*`EUn zE6=8Q%Pm;9I)G`H@T3y01J|y2J2q0#V%D75tPJ%eYHFr**+M|U*RkMxFmRj7IzeRB zM1wIj=HmEIWoLpzZJwH5n%tro+vgg7Y**cO(PM$nqCMZ8MuaK~k2knh)1Op$Lgr*% zF1K=qVxr_s+Q6#y%xnFIhJ9Jn_{@kV6^FM*{ZkqZw(Io|Rh0z1y*|}pg?Zxzda}8X z=t`w)sKDPlmSJ-H@Y_b320+N>j3wDD86ibbU>#5@``bup3eydKMbFKo{8jwua3e;U z)4#r>kcv2u#@OIB(q+FF%4H*f`J&6#%*(#=ba{H-OpbmVxzGsa)w$kfk7zx30PNqt zbRK*25KFC|O16Y}27ciWr=Rog{!*qycFy(U`8LNiugZR|b`Lk-D%G?pYIaR;n{Rch zBI%?^qUL+HC06YF+!&i$HEcVgKg3rXx$&nT(f6B*;mCl~|7z_2?xM{%hH7FcFfa=E zWaSFnWCB+VfXU3>#LX>Eb3+YX3+Ic_ZLNXf2P<7vNTV1C44t`Evq3YCW)6z+n?uVw z(>Q63qvx4r@to~V?Jt4n;Py|rC(1u;t&8cNWkB-5BY!stWZKg|wbs1z_t}8^OX%Z+ zHK_OnBn5`fW;g@|hb^9w!a`|=cQbJ-n#w|MqA7&{q?_xH`mr7V#2o91MZq%HAJA~= zAr@0qt_ycI7=%GnWh3h#H6!4r^#2oO=uaW~-9+WjL`*RW5|asNH1HcqL{XRpw8aER zXD(}tYi2rbNV&V3mm>QM+BiMJXRO99!iL7yVRPyNS^G(=WGIcv@`T+e=Jd*lU)-rz znnzP2pw8Hx!L+VBuzS|s*48w5^~gKvI)U_S%DOAlgJWawiATJEp$-8e>f)U7Dn5;i zqd8-Sugwu_OfcH9l=&2z*z3;PGg08uo_vbLkBPb#&E(8c)AIDTV=+tN^dar+R$~lN zueAl7+H`4=r8C(uLk(YBtW%=G0BtB9dWQ)FbYQ*XUNh)HMQDcxO{XK|c`XnnPwPUzzuGcDlSEBNHPbd+18GmVbh@Qr{X zN{`xcDES^r#R+ zd^RmvE~Xu}Hf#ePAq5iczWIcgvJ?!T7oMR;=0!UgaiX%gAcP3wt{~1*N z5L`H1DTcqbxHeyBXw=?^y5>XZT5bDd+`ZJcW>41QdpFxtl9H!*FL}XSk?mEp(NoH3 zD|nmKR*_gy;ls*|0He2}|IZSDyVqDJuy{`Pj4M=Q=4NO^3iTG#@o&$X&eR1l2;Ak$ zwp~gS6d-$p?a#tcr4i-UFY0CG#pVU?AvPGDH6e<-LmQZ4!0}-!fq@VflT9FtDI_N@ zAt~Nqt`md?+t$Rt3cS#J_5a*_K?LVGar}cFK$HO-$x_HwrDwb<;5&h6MN=9LcZUMM zsV~@#;!ir?qR-oSx_fIEwcgZpFUX9rvbCe6<^Gcb>i`FfOv{% z&{KDT+G&X!v*=bN(qmzMAWtlLJc4As>N~d!3T5;!vH2ZxMAXd^Y!OBt7k&xP3_rO8 z7AU-ay7;+i>9(19 z4BQWVgW`mbJ`udXgaN;ax=Jx^exTwg^W>^m(k$El6e)*$Vg=`*6N^vYBrJT?H{|_5|TJ-ukk_CLV zfN%?RRT&x#U6Bnua7qn&cpE!C5g#EouPxfbFM$`7HtN#8HGf zv=A$k%sHOp(9es0a%YL2)Ip-fl+_Ui%u~ghY>LeE>roYX^Shc5otu#*z}Yb2XK*-= z^kaw*-_c?2vAbgl^d(ik^j!X!s+vtt56`Eiu}Ui}WFS!43pVCyT^(h0TJ{hy>^=9x zG*YjI>c)fB3MVpr8i~GIuG;VmGeUFh@4pWNRy?nE1%{56zCq@FZ*oc_6*x}?qU_uT zJV#R37ea2WUP8p_8KLTjb9Jsa?tuVS0)};sh-+4t(A6B{z9|IF?NXPez2&NcAUBvh zzE9${Q|qLou6mr?0!>1LLr2LJTwS&BZ2xd8eN^*0g_CAn8bREo*#N z!Fyx!uzb`hec095kEzkRJehHs;5^A{P~DKuOKlfwbFBz>r?8{d9P1a}$f5l>TUV-; zGPv&PpvHFx9{WNE}z+0p}7aTOm_sN(l3dFP_gL78~9anw=aIXU`UNU|R1rA@DJRBumFL4K=X zqWr!af}2}e*|gq#n3WUgVpja;Xv-ec+g?SWs%t;SI&Pt6E%)AbS?F*0^s~)eZH*6^ zhy8KRAp`6#JOXQt)%~OOcUd7T#lMJAme+3QluOpPc99FbxTr@y?JfYZ@Ub7SrKK(6 z76Nlwp$(C5?S}RVhGSoP_!gb?L*Ba}KU$hOzWRcz&^a>;bcg~>S8`u?=aY*W8JCpb zU6=Eue4?#;u`CKY?0KA;-)xJgV2Lv()*DZOp4)#+7Ut(5&!YsJm(psE8UOqUXZmLZ zcfqat%uo6e{Ovu;oD8ie`6;=R%=FuG@3*XrIkY=X-LjKv#aB?S zE0becx8LeK4tFjvLMm9fGXyflQasP!t2oSA;x`)@fNt(RT&p|y>c<5r@S?AK;V_uij6nmF{^ zoFnZ|pNIi;EwQhjH+q{4D*Ue~UtqpU});VcFEs3JRfKah9Y0)C7MCivB~@Aa?g zC?KnkiExK4{KgmIz3M=w-Z;iq1C46u?DWtO2Ez-`d22TB-SaIi6P)zGQ7l^+>E5?X zbSufBHPa*oT=GLE!){|Xp|s$0US*XywUThxz0>vOSRya9{+_ktI9B&{M_CX@~zep zsB=UGky@Xts!;bSuH!CnWW`O*AMSR2ShJ_Fq#pk#e;c^CdnkUfA-MYPH zwlT@F%j6r}*_-2TkU6gsXSVE(d;&|1{K4cjfKye>KVVZq{zQ&s_W~uT1`PF?+7oN{ zU~&oG<9DG+ml2aS3J9o<(d(W5QX1&>6_$~K@{8`J>A%6)M}G?vD0P}+&lw@s9?9g2+kC2U+E4^tWQM^BFTy;q4ns zK;zf{Xzc$jv=W?^rfAW?z$&P~z)1i5$wbN9A<)2x4xG2%a;ngn?soGd!G`R<1PB(q ziN_EG3-`zP2O$joU6QtE2)dYeW1a(L6GcfmLkeX|nV&X%3qz@UVOZ(h92)O{NC6|9 z-b1$_{Q#j}(`zG7}F5o%O@4E9O?;+pqy4C1w+Km})p6*kH zb{UulyibMC`UFlt+N}dC=f1puOA>pZy1b>P2P*X4EtqixM}SP8lG5b_%p1fXa}4<= zm=Mk&ew(&iW6W2;r~6tX`3?7fAE>F+r|Ph()UR_6kHm58%KR&~dAq#NRK=M9C6jIuI7-`J$jXoQi%*lu%jfap)6VlvFUq8#kCe-=;}w( znNg=p>A0in#bs+YeE9ri2>|7p;9c>^?q zqN&_fJ)k2+(JM5|tEV}S&Ek7YU%iJSg|9q=6dQ% zrLh=`ofmPWf`pu_W6xtnE`mM0xB#&tUZuJfg$16m`F*ha?rv8Luj%mA?*hkBQHGnF z?WL{eTEEqmr)}kia(w$-zsCSyGxY>S?uaRK3a-s5^%bmyQh7m3$K_%hYb>k#wkM}Q zbKBkY7@ONO!=f-MoUGI9n;UK#PJT2k)wK{!go9>tb+zT)-M?y)`7h7EdjhS`kIz@< z@SdK~;#V0u#Dn`snDU?7PaYRBY%HC{cY7u-@!`35ht3Dis>srDqaPr_M3$tuTvxO# zIvlTyV(4U;U$s(fm{CKzm{B%Q70gs8LsKy0n3bWY38v7omJ&F>Hk&loV&H_^ z^0o4tc)Y>+J5j+d4JE1JKU93viLgkXGxBZ0(GSoEjR6f})>)u5t&?0|*CL-04z*6O zp+iysjoO<{v3SZP1R*6dC4UWk&R$g}t!BReA&*kKC=`+4X_QE3w&5eEB){}9=_}mgj5h)d?dku5MpqihU<4pD?Q!-O& zg4NE9BBhdegM3-dr@4R3@-K3dStZm(Yl^A za{xRV$=an?gaWBu_PAvHN}35-@j93N|EXX7k21N9K; zxi-AUhK>^N+F*kTdg^jl4le-<%#Q_cy8I3%ULG<>a3C}kHl325x#wqPp|$Via@(0l z)ghRskJz2N>m15myzb89$qj9>s`wz z_uVx7PSG7{uf{>bg99EAg3Lb6q?*t1NkP2wqV||KnveBs_STB?jUd3VnA}~ac;gI( zZUX^E7q~}#7ONP}Upz(XQY$V$wK29B=0Hb;OZ-phaC{07i_V}fEm7cl=GZKrX(=?$ zUcv7a-sSqIj~eZEbN0eWmm?4^o<=^#k3QdHC$2PimTFkakmuwF|J=W4clu2E`9(Ru zS$_BN9wgPL1Qg6Op9;Px(&#hamEDEDTj-No0docikuUUk!VFpU_p2PAe1Q0Y^h-9p zaMhhkp!~tuYgXyhE#{>=~LLClI=TVpzJ~U>xR5{ z7UALxZlKt~4eUn#KU6rpJ3dZL-NnR;*u#m-84~D-q`Uc`(VZhJNjHKh8kUkF)4j4F zz-Aod-2A8WeW=a>Yj87q5ihOcN6u+n%&`xL_8quAw>X=WXZBJ(_6VHck;2S2i3e=P zorsuHS!~dsN&*+T@o?Q%$)~%fu-5(w7?l`0jv9E8B ztt92xKp(ZCDpu@uHip+X%xw2A_$d@ikF-Ss-d?D&0v8AL*MoT{uMwkiP|n->XU+Zz znlb98Xg5tu{rI<^R(=(5Zx=LJZ~KndhxG67vqMFn!~yrqGTF_>86r2g|~^tm^`S#{D<nGo;)bYn zCqo_M+5@wONi>GQZ}%Ly7NY0Cznp8iSI{7JX*SS=?A=*-aX>w7QslU7u8y!wxU^Mv zM3kncl@(Yv#-v5|g)%o-i3^tl)Z*mSg3n7UEnfjiL#+eidwv-$Nj8vk!1aR9j6BGd zvd)5r(E`ebxICW#W)J)#SE&3CJ~@7`C*PE-LTB56`-qdkD=$OZSYAFl-}iz=?xfh8 zc0)C{m~DLcMrz_n9+E*4qqEoLSIM?r%<>6tli&R#1x-QUOOC59n3aCX} zMD!B>4j=kW2zGH3fWYYhCUz#)jDv9@T1cU?zTNlamXOGpjBKckk^6x@9)VDd-iBc}aMN#K z?Egq0D?)$frp!uf{f*aTt)YR{;nj$Eqp{B;#NOX2iiV9T2}w=|u)=&A(~%Ta{_%@o zsy3zaguNvxw#JEM{S@+>Ff%=nBHd^ej_Qy)+~*LrVgHI8ML5OrnWUlTKeR^Tl3yVipI4NPf?Fs zC97uQ9F`=oAB>J?(%#J7!7TPqjs6yiocv|AN?zVUWir?Gmd8-jbMj7=LB)0H-8yQ+hDl50@W@w zM_p;atpbzArue8O&$iM4uV7@I{G_cbXXBhgQP%wChkN!Z91Nd@Qo$JIbn)7|*8mOE zKZc#bS+&QOI4TG`$l2&DtEhknrKCQ{y6Ti-C|CEai7}f!5yZTK7{xi>WSC4!?&|`{ zmc*(`H97}}jzP^gm9w)XNkip6g)#ewzscf29Yg)(+&)5XcdZl-9SfYXoHO!e3+@La zFAqk@3+`Jy;{MG-v$l`E<7f-ahrB2I7?HNhd!qxUms@i66J&0B;Y0T3f%`x|4 zsN9&fPWw)7;eSYxrQ7EgTea7KsSv#bmrjQZUhC>38F7B)6uOgHI7+2u!6{hJRcQ*i z@8Kz(={lXQv-M5ZTUsCWXDuW}+MK}YrWVFrmp8fS3hs7$$FAg5-On%z*3|#iOdWU9 z(O4tU<=6F{6)!QFaC^yvu?{Z5wVT`xtJ0mT>Y+YU<$ls4bdzIWa(CYsmDhO7Vt3En z@yJr|qZdzK%`eM)Lue%^ji-{d=TQW-$m~~Nb=jAwX4wmijLk67)^S#7|L`hM z!@hp+)|ZLB{^02ej4HJX@xoOMUxPw! z3}3avc5`rebbi!%bg(aZeTGh^imae}Srws_6u6v5@_LW2?mK^RY@ZFiMKw)?E8m=z$UnXM;-5IDZL%3xaY+h~DjW zR`}ecLP8PTZT+7Pjxa|^C3F0xp^{I+#N~mRffTP7XV1GR^fw(*9#GYC!#4s~Qx6z9 zB&z0eh)<^%b;6-dXBYM1in!}?!ivAk&CaoFTZ+Pp6c!}jeU1FhLzRX06$z*OdCM^_Ht2+dWPTY;n@DQN3%BE&j#g z>BBDc{ob1vXKRcrCR5$;>7SAdtsWwmnAhHq^b0l{6>^4==e$;Ceb8{VAN*n9ZtRiz z=Uh<#Kefl4f+=aV7dLNbNUk>P_M+`~s1HitUosp(cwYbS#GKj$neP3FD7kf|)B3{V z24}`pd1JrGFjnwWpqvc)Nghmah5!x{G?J80dZI0Zm8!132jdfOoIRJH;X7*~#Ebjo=y#mK+Hqu?h*ELiy*x=Ony?(3+67)QC%FN9SkcS(X8G(_ z@;=Y2)w6q76G_0U5J&sN@ihIH-@`USg3#TZ1(@9k8Pu$LBh;*F;r^PdcRWE}^{x+{ zEI`o-IjiNI9)kUHCnju20mrO)ht{){;1<{;KQO7G4jQHF5o79A9jSIU9H`cqav85z zxzp`YjQ*vE^!$78FWvPBK1R=c0{82kB__C&%B?1*hj(_gZjZqLzdA!I`1J@s=H|&* zw|dyEBj(M($Nj}GSMPj+?VB-}_l|-h3;_A}D~yIeEOONgiz=NIYuP>-kt$2wE;$|7 zUQ#r_^I8JE>yY$^xAp+}{ezk7-2t6Yuu|Hd+Dl8wtjvsbsZ5e^%!Bp?N@aObNq4XUI2Qicj+*-Vi|}=i?G+X*1hNN4 zha5&AzT$VyQrVNYQ5Vz6iCheGO(;*H@(;fFRJcDPm|v0mS&%6)kh*@ztpkbH2NVWx zXA|e8jf9r5foT%cg`_r@;Po_Nxsun_GHUCyI3NFQIKI%BKOs8x(Vm{zKO!#TL+V+1 z-ugv^5G3dh9h@CAT&>vlTMGqr1NEyH(k$q!5ilEGi{+JU%&9o{Bewo@*C*SB&@fJr zdgjM%yk*9k9l}{!Y&te`Rsqy#4x_uC?6}0%?F=wKGPl~c0n>D$eTu%2`tLP}3WVF> zYVC@4i+@ckJ+nd8JI)XOiUXp0jF@c10un8m0dyDtFUx<7Z;Q@?%c_{=v3C$`SrMo?OU?vJTDSCw zeWOm0$9^5lv=^=%6KdB?Ic4K^6a{_LlFlJOf+KP}1)5Z>jv1(TXMFD&d{Qu@z0sP| zUXj93o@cdCcsBuD7w{ySr}R2GAMc_b`2-E*bG}0X%eUOPn|%jW5x_3p#qibCce^MN zotZRX-^g{R4^yCSPuN>*0N~`Kz+e?emmDnrVXBbg91XR~D=J~jM*T#2;7MU=jzw$q z!l^=6dyBZ>tx!=UZ!A|$l#uP|++UE)8o~01d3Fo-4jw5B&}4}N{e%+cvCeEX7WP|Y z6*PfNXI5Y^%1w?m7>mdMXrtm_RjZ=ck_e}wlT0N8&#Hh{t9*Kc(MNA~) zkc#$+u9zS82kDbMgp%3T`OuWkgxAC+^EDOBHw7m{ao}+(J&!64``~m_;f*9If4Fz4 zMP*`j%{NB^hSCyRWlIVpLm0R#=!`4MY?i}UmGYCnQ{&uN*iu?Da^$|->KC#%y<_v& z`gCo3Kh4xQD7qLI60u!gda^nd8DMy-QEpvAwJ8+SS%FNTZ0csSzfaw(k~5Qlx+OJZ zMQDs5Su3);5Eo&Hen7nD&M`t>eAhi~dGoCs@)0ZpSa7zn+wjHIIA4ZVH4ZckseMyU zY!z8OFlZtU(1UpnQzi1~HsP;3k2Qh_1!DvareR73#LWX2&y9s7kK$^xqIA7eC&pS> zrgI=y8Hp6RA!OOz%6281P7L!fn=V(50#uq~6DydUkTpZzv&9ypThphG7B^(o>8L6d zk30;3@n?*3Cf54%#E%}K+2N)hSM8F(j? zf_KKW{Cuz&U0mDrWAW6uI%wiX3~D*8qv5-PJB3mV+?XZvTS}_HVsn~8Lh{Xbyu83D zKZ6a=LxG9GG9NPD!AZqaL4+vqLART*ab9kS(I< zHk$Rt(}iYRFg~eQg+`$l&j|h#g0pvDj^>IUKE>nt6W?oL2Wb0y#qLpJ(jm{1U$s_zvC1j8q$Bl&J1uPzoq5AnCy8fOSTNzC(Y38Ce1anKsc0r-U;tv_- zaei=kHnH?3$bQp|-A|)epU1FPGaeIBrc&?eSmO4F{$;&g9=##*sDyHNUF(=}*gqLbXBd6ioL}TNu`S(Y&zcm2n9z8`PH?l_PQPT1z!u zg;yR=RbMELxc#>GQ;Fu`)bbHHfuX&w2jG8*AL%1*@^j%F#{Z#v6v~-;8vmtrBhZrX z3h|PetDyl3*8hoj=4$!)V`ve6^tm`KDuG0S%YK)d`)DfE>{U>7g%V}P-R$B0a_(@Ij=0ASx~! zTMy5KQG56;S)S1pKl9#RsQ|&jo+mD-M_!8CaAt_`!I|1{z{qRdo6>NEqCV{oZ6;O;P40Ok~+)S=&UL zb@_Bvjr$^ks-eJ5Td+pTgMQ)y5j<5MeRWZ>+wnWYM7@0g$-!w_=NMO6hWvEY_1QH^ z*<=QTWoD=^nOU_wweqUXT9oym=0OA&K-jvhF56uEYkN~uM)rMAl~YjsJgfD>mkktb ztCU%o6=jW#ngM4D%O~#ZJ3<$HbkyRWVI$3nP`2?OdNhM}XMWpTD8Y+RKaY{>=vU{&$jqivjvQEe(HItI9YheY&dV;syfubUjK zxWSg$xa>9mS)`H22s$os`I@(2qnP$X)9_qH8Us{Bd7;zrZN}9hTrKp#pLm9GI`z_B z4o^4++VInrSjS;by#dG>8gCRU+IoeRA0e~1zWhSfyQK1TF9gW>C%>3?W8izknCV~O zd+GM<;CtiU;Qym_vj1s;_S+vJPG+iuUKsw^JLs?+rRp0hw*l`#u@ewM?yF6M#Ii4m zA;j#fO1Elo!fLl}@Bi^7pLf-P`rC?-v0FQ+K9i3=$q<&sI^3+G%P`^S4hv#R(S!pp zw7~jZRW0kVASYG2LcP6ii76pkJYR+wQN?WMYUFSk=A(0WNS274?Ej+Ha(eh zqqV)hy&L$v;gbG^vr`W%d1)nEH8Ebz!$C!)`}?)%)RuHpsoe=cN0i+8gEGxp=&W-^ z(xJP9pyEv4$(;v}lWB5Bdc3uQL{^TuE=3u?nRD62POG5PzMOG`-0G3qC@lN%J?!{W zb(p)U+x5v=AeqNgG;;UX=Q(8tQbo=cHahB7nfr9uk@o^RjK_X_&7^0 zfWD$!kRLlKR}UIkNK15SF{omf2v#v;WmLdkrt7LgbL$O>-pUZSnyEDSZ~j`T=}nDq zANs7aIKAqpoiI*Yd~5QHFC&brbIrHh2*(~~x}PHb;^5RV{)<@C=`oWPL)usoizKER ztp&a3sNqlLDk;b))gcp!5JQCJ5&I;41Aj9MXBzY=)qMumM} zA#*-q%2?|s?5$v#2s5E9Q_!0%bI9qoA$$$8?~uvQM$)Dc`s?EX8jcPg0>P?Wsr|ZX zJGIbJO$$dcc%HIMXPNaE2z#s?)k3EgnEh|(n;5a=p6(guo4w;+-t&#S@f-b#sR;1; zWKhTN`%wbi3aa0hWW&|}wVz~6H;eg#4-L3LUMPuo<eqptNu5c{G*(oVBzw! z*gY{2xw9&3_XU~e!ALyxyM~G(pRI6&_~}F<3Qj+hytX$QR@2gj6V*cHg3xeif9R9l zI}O>SkNRqTyJrMldwxGpNUwkr1u1911KiB|sQv;||k^mV=Jer0tOn-3hmRB0m&R)}?HoarQ2e23O$3R%ti?+eODoN8Q5# zmm_MYm~stDHPZQiq5~Td|BZYjzyJ+{7D-LSF`rFDa>V5YVnto@@|F|KWCY+0-qDBl z!IPNEU`Uh8EGPoFNnaqBmx!vEgvT987;9mZO7!OC+MsZjc`v1h%}$Hef>m6Qmse_s z{p2^}J`Pinm7;8Wz+hx1d^oz2Ab4Z|efW7lt4JC&x~rN9|8M^&!YJH@p&X_d&X?L~2rC0jzWPup>8yv3sYOFI^k_KX>Mv0|CQ;OfbZUfk+I%q+NKOV) zaPT7aeF=xI1;B>{a4pd=EG@ig7I_JwcxUisj77)D zLRJ30#M5)(aSpKPuAkg=9&yy91M&2lXM;>$n`zWs;WrO-wK6dD`iAwodJ40ZS~jUf zb*3yv%O6x;Tl;wp$m+V-hVw_g%>EIrmpUGGOSe^;#)EIWcSGWPI;50~3dMZ7jg8`x zqq2$yJ&wzCgMO3rb*{?|oqET42H!NfpdO zc_mw>!!@tEO9p(zL3;SfC7)>|Y1Z^FGZ_cY&VYt-Yhr0v1P#1!tS(Sm3bFekaOkw? z&`DH|`)To%5og~BGdm(K05$XR_s76N(PK13EG3o3ZN?slrq$63= zz|RH+os>~lI^m>z-iWk(L8(VM{Nyq;&O`MQAp8U>CZ;5^ZKlo(sQ_ zSn#!BiZAZoknRg}-RX3l+IpV63+3v*YyOB6GsJ08I6~$g7oT{5unOt-qe+Ro4tE^Fplfbqu&?&b}7JQ7vl-1c4k3qRROl$xx-*7l_%E58!KrJLpm z!RYe!B6SQ&i^>-m{{J1c)tm~8>cs>D!)68pBl&-w(PXA-BtQqwUwwI5*s6`&N1#mv zmOQ2y?Kcq`7l?){jAQ_X=G#J0Z4U+W_$kBL6h5e>R&GSs4*NgDZ$&p<7F%~<1u_=i z_F^Sqxy`e^wym|*uhqKutJBGn4FnzhDFk@mWc$quJ~Mo|U3YRT^?mjaNvI!W)hrST zDP=(|V1SyHfh*!M2#QajeROigmBgcJWf>qE7d}eh@ne54kKBGe1jGT9+qSphP zO`2VgSb3&@?_B*-$I7e+pWtvcM_{s|)tzlF(eZcl!|8hsW+OWe$2r>H7JT(bQn`5E zx$iy7S$`Ke6pG5dL-UyzI&{jo&)o&vfA3NWJEeUx0(?$;n!--0nGR$ho}~7Rl|OgR zPdv}Otb5eTG5s4yofd5<+lF>GN;@U83HV;k=abeF|BA8Q; z*>VGCP2$M$q>tFk79}^!7oh_qM_qEc;GPk4Zkri}lNLB^{5uslyxT`V_>gZg7xXLD zvSWMHfbv}Z;}b8?m!nOVdvA38(*q};(d5ne!G(81h5N7k9r_PMvbld8y(;B~jke5v z02=!a#WW1ZXMrN>=TGYglh<|1C2qTS)HtVkTGH?P?Fy+^LbU8{6x`DORNfx zKj8W*er+L8GYapFAATS6^{wGq%sJNXDX*e-^bD`9+Hz^GpN-bytOnIQdX0EW53x4K z05*Y4gJrFiK5M13Eq)iIrX}PIIkVHP#%^4QSh*H|y&{sM=8jgnl>b!ST(+P^#aS+? zH)$O0&v`FE8K3B3Mn_yO%R4a#Lj2m+PF9OCXv!U5M7e0nDC3GO(v)LcFd1pj%D_M# z=9|9tWG716sT57v!Vft)KHglr<1AU_2M*F~^z6jpvTZCB5!Z8wkgkyaQXG^KMoV7E z5|l@pYM7$CNLoD!sEyk+he#Rx5h6O5nYeMdV_C$A3|MNaZga2!2Z?fl?CN!z?S1Un z1~~*7s_Lh+mR^_;xD$vib$w;&nKK&T`R$q>)|Cawmnvo=*8Qa`lmds+`lFVqfk`yH z9mICyCU)EipJqs*c5jCCB>njzl=SSN+IVxX_Wp%dH^k)b)$=iL*xoBm{4O%sBp;;E zu;t9y$jjiWI1%cCPOc?0O8Z+^ukQ%(Y~5Uv|B|>oo2Gt9=#7E(IIUBu5&hvuW0}q) zS;nJ`;^|uE;%DBlexl8>dB=^r0p?E|Mqx564ID?rw;0rk#`W7wl-X#s5 zgS)R)=1W)G^rOmc&15^fOnE!p& z$!%LMwR|^$Nmk~}z*kzU@`GX|$?bAusFd0nqpB^;tFWOy_~U;^>#fiL9hB5?IT~m@ ziv{7>wx6g>Mv5AQLokaN-31xb%zl7WQB%j5wsu6Z7`BBew~pIWRl7Q}kGj}~8B85} z2qP3gD08SYx=D}#(lty*0Ky3sH^(^4$bzS|%?3@>sBACTKDFqxivF5`hl0eT+LSTIaNIqx(=UT`8zo|B`zJ4&2GdG5ypjF|Da%nT z-+|NKP429H_t?h@5;U`_6WD{^Cs$@2awHk3J_vTHGZ4M zu@x&Cn?Hp?(Z@ZZ2T8nTdNu; z68d&Fjrcb*{*z;_LI9n>xkYbahY+j$q6~Z}WF!Wg{qLbb&LZ{emzA%_U*@zj-K;DX z+O%klPPwoa3|_Bsbx#|q$*}nSF*HRxwVa|HB<1vnU%)#n?dG9M61OHxzz)2eh zp~dEbYg(58UTEz=tSLCkdu@hBQfR49$OJ_*x!hr7JibQ%M_B}UA7YB>mXDhItY8Hpe? z^=$KQ@p^|DdUGNg8tILqaf4s*OE-g%^@TaJfMX4jv>rAy^8n=y<>IDeI{9E zfKBHUx;CQVtfFG7(m-!X88V+iC=ut7U1&WQixk8VA3{Q<)6VuMqY5d+li^QXGqv^K z;-9d{kk#z&5UDaT#e)v#9T-E!ey><`>`604}s+V-J1tw zj?cmY;eD$Nt{h!6mt0)zGTg0DUd`Z#=6ADDqy=omPq?q8-4kQg>n)~m-3ql_`~hvR zy3zqh^qDKZavEI>2bd1G1&OI(<9eS?%*%!v>p3p+0M#}~ugJ^oiK2?G* z5k~*)gh31&lq3=DP?P|8UV0jyodA9EC5h)TrDqRpw92(K9@D1 z^3DkH6aQ;#7m>$jLBMrJ`~8K{;eV=c=4R4!xM_)8N#?f$TZ9-zqvT{I&FA1pTE) zP&|T`s`_I6P8@1vk}z72_iiL)a{HetTIR)%Svx?^#HN4gT8J^B(}DX~HR;eH;9N3! zabLCGdv)v8J?G!9UA6!9uI^sFdM!X~1;2&G$^Hd3S6?b*e!FY%XAC2uO}mAK78_ox z_oSm=7bLss;s|l0Fg(gjy^fnhTMYbLw6e8QrUK&TuM=vQ0bOFNCiA zj|?Mi*DQ3*TC_7ODcte`o9T}Nl30ck$Fwk)?Oi7#+{Cp|8;r7=?%P%S6KepUneA4{ z`$UK&9%y8B6#kHFZK1|i+@ZAc<|3INL-3I|vv9+f$(l(^zPc{U*O=uKS7Eh8M&=MV z?e}iQ#kA{KCST&G!nNG%!JxXwP>gp`yaLZDi-N++=M4FtW>s#hbBB#uer9L)@<~@X zjqWZUB$iV}OBD`LPJqoM|0IA~_V+FsRXJOPyYRqyvcZo0+rts?cqf;Q&|A$E z8gltiC#mf-B=fygX$5K~tim=OM&_L@3q(zdXNF_9S8ApS+$6I9+MWPJVNcKmTzJdV zHu|!iquky&r4&e9!K?p;QBrEs9h~SI^-^FoA%mFjh^P40v|_gnfvS|$+j1l;r4Zi2 zQ-~j*_&4ChCdK?>uh{sSxe0zT=JRmq^u1>)?DXnN?kYRD+50Ut39wT3(4`jB;sI*a? z_o|+YoJ7foAsw}u;jcASiQrUOG04Q78ZqBHLI68$ncH=n`IV!r7RCzXWH)}!!MGZqpqz>Bw{D%I}5ZqZoGxrl5J0|W3m1_EFX!W_bqTAfqgwCEljGlU+eyO;8 z$)U_YuFao<-;xOscK>i3t$WOO4Jq!#x`$jtqjSVu7fcCSUaOdI2`gpm>2W~TaEiAs zLN0n(0@NLEPgeSTkREMc=<7B5*Q2M)y8O%hE#lmvAij_h=u-a;Yd!v8WodU;sQ0&P z#GQ1wl*3FuTW%g6$$@{CuC}{?RmstFa$WPjf0nc6xpK#1`smT{DdibQOaz;RBqjXkd81HPC-PKt+I-zC zny+l#BN$(Biow5Bd+{2?gJjSiqpUT3oEz}2BQtanRVK-%IF-EuC+FILxRYQPdefRB z?&hc;fe&fG^y9QWHn+w?*{QqaVM*$PRVS#ftEDUD#lPWo<<97$@H>fBwCy4u%Z%tD;;&6HUw|K+v2C8D>4^)xFlzvLk##ClD$ zZM#7V$$=Tr1p;RL?Y;CTb*&YYOq63$I>?yw_W~j&;_R9$IDH{)Mb37lo5n!Gis91I zVuU|GpgUaql*byBiTBj|yy)3@2tK0&8E6Z%4Ir4=g-bD27WzQmi8%}%a6-%jr}DJ- z{%h8{IXG=Dotd_FBim_8{|yE%77MiO-AZxHpC2BW#s0#F7#|!H(cM4}ahBU)+a{X7Q9bmcTqV4!K+Se#Odl^P5KwFyas!5HT zXl~z0ltsx;a*U`)Q_{=QA#9s4aJWqoDUC|(W!dN+)+kr5eue>T_E$+=5|c@jJ-CWG zz#zV_mBDdM%%G&M&m6P=F5YBWM8R-dF)g)&l9{qKTlxwWZSl0CNq!bY6EQl!w61Lb z!OE8G%BtKm=UiqYyu5T-g*dRoR6q^1NM_?M-AcNqaoHUaBCV~}hgN$dP)(_6nOBx} z9dw(R=X-Sz?i^3-$#1AZS&<8}w=W7^o-DY!0W!xLgm{9}}%PO@xGj=gkQ zq;{&_BKVISeZN0EotId1w>x<{@utd2_*(9LlnT*O!m1@YC*j@e)iWI-@EbV;@JfZ| z7hn$Byo6*!&JUIuhAba%uB$D#fd0a+$WU@U_gnx(HbK=%d}J=59_6Bkoz6q5U@VHp zK>7@&oSuddUdHwY{KYKGX0UrXEgSF>P80bB^(`PW!@~>&`j&DUzgORGNa%%tsAA-! z^_3l7?oZkVw~*z&BeFPqHEjS3s5{~8KXLr*Tqf?E9oznw*q!K=^)%OMv_AVw7PDpI z`j~i~OO(E4^f=q_-&B2pL&EmF{y#tt45;=O2Bk2_*RqhcorpRbs)HT3pbLKM#%<*N z9#pqm!n&DZxF=NvsxWS8?yjfP*9OGdC5VV?uef;2uI& z=#!J?JM`)`brx_lCXl5JP=mIhH9XNGMDaxsB||V{ZBWJ2tjq2L-0w#^`L>h4mm^RM z`F{ljz<&cEh`#Z@K1%K^33u1ST<%9Q(i3Pwrd(EQ(vJi0#4kERS_8f?1!d^&`f_HehGIvhp+x0RXz-z!6oZB4aV0&l(UPVC9Qz7DETJUI5tp+rqEmUWnLb z%LkuW4ogW=*Pvq)*?`?K3KHUVh@{prp?beSeOa@?=o=YhYw;eh5T2`|X`yp#hKV+a zig&|fux0cy2cr9X>36N^q?ApFhp%85<@67BilG-S*Hlq;jZ%^d0EFJm@ZCtoV7IqE z_jIR=H2T%}$r6yK$YG+3i-6Y_WStA?yg%?=3FL@bDrWs$^y(EN8$9mRusZnzO3sZ1 z8Z)5y=wU{-J~iNuJjTaSnqKiF0r#Ku8RJ7EN;iYa9nV`8OGkzWONT*`Z|v9by*@B% z`bR3Y8Yo}T4v(Zg0H;)+`%{FTYl0E|kf3DZ5USyjc2bd-B(kBtTQ`WrJH%MAZkbZx zEkS{dVjK8DfM3=rM81%J7nj5*BB@2YqLPpS(Nd&Y$GGSlNUrv=sxIJrH83&WWCWO+ z^zM)}!9zA~9G?rVFo70ER60LA_*45~Wgn@RBe|-T=w#FhkSXykR_hH9{pv;|+^-o} z?F9U%JaMZz&#yW7b8(7?ElX7CLF(btb~cqSw06J3mHrKPwl}|wTEzi)I=UP^>>Kl< z3FK&`R}H@f)a?*ZpC7i>|3Kr8p0ks}{3aJr;ZnQ>W(9WQMa8Et(c^B>n5R8f7}#E# z*Sum$voB);@QMU&kiE{0+u z9C<>2w|rvKTg&^Fr_@LtXXX^W=27>i3Ld0RYV~5U;)_4NTN{T98we!-D;4<<14S<{ zLS;i28b7qW(=}ncJ0BzU*nnM9<9ej^b)`H$X#T?nfb8-XpYzbG+ zk}(6i0nQd2UH>l3<%CQ>yjqU7q^0~as(0+q+OJGdts=2+S05N+Hs^}9yrT?3H)UsV z)sb47qER07*a=F?Nc?h4I`>3K(B_5x+MZPEg3eJV)X@@xaWh|CSVDEMNAmk50;L=Z z%UcW`Krf$o8U_s;SmC3R$3E&N9QDV9vOGW{mu+e$Ign$-J64mttVCTqjAcl`oBgJO zUOELzC>-p@Rdg0e8PXI-A-xlt?%qp0$_(8*^L`vSIlI6_v2Fk<+QL~VZm4HLhc6md zCE7*>d!@{JcC#uM?BB%czKbhx{uew4HrmvI5fc0V%?q!EjP zhxG$#nS3x`5OgcVygVp0KH^|u zk4pbh+I!f?X=c#NDi;*FLaOsvM&4S~YNk`hR1d5{{bt1ayjt$s&svww`fkLoIhber z>-%MdXFTm_Q#vkJUx*{^4I6E_c*17ef6*ff^0qVUu^-W`?_&TfcRqQ#h-~}yzPFNO z3u&|03o8SA90t8B;^iDR8XoO0+sz}J@z=^@;WO(xYgbo|yBI27l1F#Fmx!IF;-d3| zHJ4NWXOc?M0WmSU^UJt4hhEpyD+x7BKAAG+-%u-9F|-7s$JK8=elasAdrQ6R+In?r z&#nKKYPwgl9jX8jriK}P8N!`=Z@>;MSjE#U52>#Zrbep)e3>Ab#FDrPMbs+auWCdi zL!`DGaTlLJ6gPEA{ofjRZOG_x+f{`5@va61+iGdXuaVoKyLKCvCr} z2PbVm(3+X#L!9n>s0hV$LV%mSB8-X;65!0EnZg7Fe>(z@bi;8^vBld4DKNY%;WGpT zzukY)F@Rz22fEzaVPWp0UtAU0yS$-2z@qU_%Ktu==PJN*i-bm->z*A(U3EeyqX?Fz z5xVNe3HEm${p;a@CJTfu9P)5Lf-M{v z6m9Wp#{RNMi){pP4Y!QNyWlc)8R{-t*4(^nF|A!z!j!A}i z;2LT#mu0(T7jC=eH--XLMz{;hc99|R^b*R6kC!JQ;`K>1;qIPPsXtQ);_U}ozHf$x zLii2b%!!vLM@an5hY|%KMuQM>50wv)6s{0@gEy0ZyvNG&3%CD7GZ1$2%M0A&0JeG` z)9aC3-;X<_uKsO?bpV#7)XP6_OkuPgP;SWEGk#b{EqQ zf#wPwYX*e>o}@<*;%scZvnzz?Lk9T{*-3*8;7@_! zBDcuo-fD#BXEdrP^6ukcxs2TBuIT+e==OIs;R_Z|e!%vG-)XUU@*;zo!AK+d-2pYdIyPX3qI$gV;THSp~dP z+%Qm{RW6JEg1OP#z{pv(4WdN}u*|+`QrbL8JjLR9P0+Yit9wU%wg*B%1DBiM+_D&{ zPk*vqwPs=p?^74@h_3zi$9{kq8bz<_nM`cuEG5r{AE}-a&e?Y&H?y71;*5K0{u$Rx zx_S;I7)~oJL~IT|E}+`J4H4eeMexqNPdZgtt&mC#{Ep>#R8(eV9%LR5(8%ISY+`*D zLP;+yo`#~eLJ{qrFt@d)+vgtVG4T=>lWy82dqucnSLa=fo0|fzFUXHgeM6t*M>@EG**uI zML*uJfew=};69r}mVJ^4c;7Tsw5yKZuHJ+Y@Kb9uE_-7WU)yuJmQS32%TOQPJk{mB zhB}L2R2`isq*E*?tDuULgvv9O#MYp$qiT?wxMIKaGNxavA``>lZD}tqB;ja;f}Z;R z<30-G&>$V5e#5)L;qj+o@k$kLKbvg5t~2wAo*+!s7k8&%Sg+9w@H?R;R;pXm8bw<# zmxTOg6pI>FtCyqqR}zO+Hv46Se^#XhX{sD_6(EH-HR^ibhwc)GJ)gIl0KIPDpBmm@ z8#O%9Hkep9{-7e7+Jkp8vP&)c-0^Bu~US+2kyH9q|Z-`#CTVDN70*MNxl8G$KFmwvS{7^qqt<5;8x-w1= zKEHUe51}E#TS|1mu`Jez5;j2TR^vl%ct`C6^gE@#ZYCxIAR3>;auGQS?Kd9j`Kzof zhFL^GBBr{In$tNr$tYB#;81mWS>ESE`D7t^!k3H7D6=f*xoU9ZT1Zn>s~TnbrN_Z+ zE6Cg2EoB5JvDvGkq_ei*#8tWJ(wW{b!85YI_^`;QY9Lc5F;N5e+jj&X4) zrZqH0X4dR0c*e{%lpn9DT^T5b0Jijw7?FmoFXG7} zfN+cDU;RyqKP$7fFxi&9Gff8K?+7#g;FrAo?`q9E*K3>$Jrhj^(M)YN+Tk50(V5;{ zQ}Q zu&6-d03sO8%d2q0GsdrY*5L!vyX2F&wQ=Nig1JK#u|)CU&wr+7D#URvw>o4_9QmTv)@Bgn!?|ixTlC_U>j7W z8KBqy)m$Q# zfDoDV!gB#IWx2j&CGv${^{gV-@jAZPpMr>~%F>?rWXNZ1g zZD+}+Akk@bM%V}+1ATrN*0HD$_UC03JUi%+18Yt*UBW!7EnGZQttnBYBa$*oQd4jt zosv7$T_z=Q)j2cgs^emcX$C8j^b%2>A>Mx(m2`=C$SUkKc_?CpY(r?9om>tDD#}~h@nS`M#mL>Bar_uv@H2QD$53N*gq|Y7hKf;?L5E`>%o5R5l*n1rcr(WZxdqob2LR4|2Z~Q zVTeKe+}z@wBm6JUH@dk`@)^D&fSSLaUQrS0Is(0bz8M_3K0r7%8VyEB>Sm`^@1O7* z`G%M;cz(aeU(sM``#@uzRxFh7oQcUChaPTTRv-VbuRHX=MCxR0r1O#@ zs=}}&D8^V1#!$~(Vcb`+Q{`ZB%yE!-2Pj<`DMWk3BcyTE5b>|l^k9W>fGw%5Q8DMR zoGIEwS^ZeDhZ=gV2?{kit+d!66t=;s>dc2sY5BTM9< zlH8hRW4`1CucT)3$Cw<0WO%iUXyLZs6OK+lS`}EVl}bz+9`j<75IbF^)Z!$Jm@qI} zv0Tn@s{I9A-I*p6Fd8ZZ0BDiq+M29JqtaG6wG}QDxSFSRcQNVYdi@6q&chXFGDe$@ z(MqdwZ3caYGZ%CHFgd()Q&LKXTDbV09Q!rYilkX(u{Eom?N(&qr1Z(-!Y(^Mn79$R z?2{z$>4xEIS*PyEC}N5*p)f)E6Rcu2zmZWY)=J6zIF@W+CyigtfW06@|7K^tTO)`j zJeOaS2h<|z3rkEf+$dhPcGhpT>coURRTaMNQ8q!VB;<`n!J#xa_)BP?>=YTff~wjj zIzl#5aMWRYfXW7K<3@h@%keO0mQw4ez9vlgqaGKG+$^wGI#MEakQ4MX8 zYiyw}=|X{Y8p^@!C?!-W9AURag{tir#>Ifck^kcNpAlPut}=pg@%aa?>5yfU)coC3 zf4JcCjt?+q)h4ffNu-VY1!A#GV>!gAPV7v1)wa`*_17$`Y|M_8zllf6Iruo+9@+yu zq&HB0kO}0rCyE&1b~Osw?Up6lX#KJuWJ;>-0rEfpaS66)QF1J?9H6oH`G0mZRo_9_am zrIwngf0_y%wyR4eet>-Nutj_ct}nf?#0JmjTNV-Lu__e4GC10eM>(Be2iXi-@+n;~ z9uvAh%fYcyfC(!m)9daByVt|mYfs^d3E@@ev7^{9xk@)CXEO7I5WKjnvg&)cFaHJo z$Bu_=@vyIkdD^cu9R^Hxo2B%)a{3qtCbIVGiooN)M@SjQ%3Hv26%+mQ$woSv&mQOsor<``{E zGfZC95T+Si(||SBNrGPX)B9KfwXnHXT>gt57$<)?LLT-vfMtdy;g?OPozvO<(b9P^ zzQG-fN86={egF&1gKp^=e2IkMBbt=n?2p)UNqDnFu@#$zY%AmxoxhNAx+;7(+Y^Zp zZ+=m9&43~9XrkTkvp7C^kig>l82_?aLg5ojb$#u96F_t-3GQk%l!y&8TVoCaRxlSP z3&8?HRNSTq*-G@W1(|A?UOoa4EpYv;s~xZlv7*$8)VyR*fDExWbM>0y;=V@lq+ex$ z`YOi!WMr{*^Qd@ojz*{fg4gqy#E?Sf5P$s^D0ZzFi);%QH5~XzX)!Gp0t*hbyM9SF zh-@ciF5U32J06kywc@vDR;R?{Adtg_2S`g}km3K*caMpdL;Xk&B$Ea>Z>S=D#nl|P zH_r2vO5qaiLX=7QM!MK!uUg3@=||#XZbIZZC!;TwHhfc8kL$-aKq4Kj8S4#2nxj*A+v>!3Bfof&G^25aaC|W<=+( zmMS}>-d5!;UWJp%UZt)wb=hTf?xFUlc7uCfpF?(_quUZZQPFg<(SG-0{g zE_W{l$(GI9Y^$d%t%@x2m|m{NzOt40Nv?owmj$lo9Fbn9*Ju^sR<=sTX~#mzY zW?fpDl`1>e0N<4KFGcoMLx)t;@l)KD1JJ zVMJ-|@C>RSs-+d+BH?%8uNy})FpWD#`;BD2wF%3Yi#$+`b&R#&y=jsVtv;|!Wg#kz z;BhJodxf4e6cJ>Uv)4Y7@C&1C|IQCQ`z7Uo6`b6bdGO;!^#&-PmG0HM)8Q&(8MR5q zJdgiEvX46kTGfD=4AGA{>J$0jR=-GvOGN8X*09?%eZ`!>iXa!8~F zdnD0$?C4t~D5mAPh{f<4*6c4SIIx8nqDO;)`K{x03Z8J{d=zQ@?=k>^H-q=frcB~E zzgB`Gu57S=TSe^rQE9BQ^z705r-mX}@kPA$8oyt1jIj=j3Z#Ow1F5t|-!kIbfmxVH z(eTg_gM_BiTA39m$ED)00so^RPg+M>;4ELEr4pG|!oWp{H?`=0 zMsV(|@$x>9-~7}Y0O9cx3eiVniO7CY`^|cpRkck#I$Hrk2`p40=el@WG-IQ;_c6SEbHi z_$6VA8O->EL|-CNtfB3|?*fXVxI_B0%mKz4t&}!^r6V4tCmyF)((1Sr+Or$D9$sq< zk_-mWsxGxe7tHWihAtjGrm7{5wX&9GwND7_O*}~85-uYp0w4^%>1+20DAQn zYQ%BEBkxJ`9>?AC*Ftv$@1DWOxFrDgYNg|Jy*=dFN?$CZ$1trQmPr1-o$T$9E@=^A z21+FnNi@F;Vh-HG39>MMdf$XPfYI_xIq4hkzw}6(X{xm4e&FisAIlH%WFvI^WJ7Vt zGBWAa&ncb+^opL)+>n?WA8I61_2D5VuR%9IWz(q zYu9%ukyg+)5>LDQDG*fVPCC0+c@uKWf8|tg*lou5k(Ssm#@;Vyy9pl|%!b^yp1+dd zVBP8fvdodFXFiWsm+N=!N@<#d1FuHQ#wD|{t=r6_@X#E``fzk1|2aaJ>{Q^%8jnM~ zznucU*IX_liTW4Cegwgawn$`4uT24zmQNpoG7I@ketp@@jHVxOa++9TGxn<=p-$)k z7cI?U%3s{R&fF*?x|jUb9$gKJhwKhX58&xu*JMDlzb6x8LaiFiUDHgw%pSoqFFV>s zr|`4=o-&#;Gb(J69?-pb!~%Qz3J95P=qqHkrtEQ8oyu5h@22;$@pK2=jx(*~D0q(c z=S{8vq?g|T*DQF^EvX8lHFwuwuLr#mR1}xehLFd~N#S@ki@=?$ftg^A95x6)nfV!; zZt!J8Gv)waH}a%y^@_$Lb4U)9G4>PeKPxET3+3rq2p}K|JiwIZnFp#G z+IKg{RPh3^Od^e#ljv!ZYhVzsx{X+MvseuVEd$(G0zxsXoB4bY?$w`&C`lzp5hqMO zLB~wY%>ND>$VSyzP-8 z^tYx+tx;xotzCu`^bE4;B^Z>SdseBvM={&T9DZOL!-RY*nH_!NJV0lkx~OCT2XApw zG~MW&)2g*-BbsvFfEwwE9Ey$yzCuA{75x^k9w?HMggG!lavV>?#SMA}wWUs&5fm&d z`X3K)z8e0rvQ=wiqfHY>bxW}x>C(Iz7sFQSGmeys%K`_pKHrgd$#?Gjq^XRd2X2#& zRYuqbh2wAkFn!vq3c!9`X67xtA4mZLtseRV%YtLL~!jZOI$k#_lx` zmNO)rv)Uuh0uHlZ4TabD-98K&1^LWa+L}G(LU899jIK`p^>$ch7)PPmtJ=|z1dUk4 zE&bNIqT!ZpT&VdU{x|h>Rb)+V0h7$8?8i)1)RzMt8xH6AV#iR`Pxb6i0 z>}88k1(k?C7i+%PSu*A&5iMC4kx_UECb<9m_ld64g_*v7nyudW1dG15m)7(IOznV` zBT@LXwiR!!frF!A)xBdDH$IwfWNOz1T1Ix&mHWnWt5f9tk_-&PkQq#&rTT182~1jn zTA#CS;jVZ!G9V&XJ69H^dL3saxSRp8He1=X?oCg*MrVJq0$RpHb-`IpW23MttHL~~ zEmK>C!E42SvwB3TDg73vs!gV^YL&jeaZB~FkJv*eO%{I+&uz3dEH)%hkyEP`M9S#3R0;h3 zwlt&-tt-|8tt)y924R;U{Mvo$j9IvA=%G+(=jv1{{1P%K!Z;Q0X5by_?dXAbY{9j z@@eHR-c$C%K~&cwH%yvP zC?|mwIZbK!Y7{SlTLViBY|J=5NT3?E!mQ90h|_?G8S$w}vOTyI($s$vW8+A_o2#j^ zm#evgay_`7=1sZGDf*1x&Muu;ED`8dg#ZavQX~BHq_L*HRMM4)DZG;u6g2jn{TUvfCGNjf&@kt@Jz7 zg7vP4SxL69I>Qql1BX5H1?2&?T+9Ky^q9I`-z(!bn;Ney^#g)VNHpO#D%T&G-H4Z)TVa*iPZChbE6&)2s+ z+(7D+uXm78;uKQbNj$-DC5wgy9BGLw+jROif?thyDZ3tiG9cgo zn5`whv+w}y6c&EACcZszx0cbdX(HlfMb|(Z;S-6=p{K*KD6=$W+9_9~E)#C_b5IErjmYXPv%Jx@d8*Q#V*>UW#Zrvz5=xCN z9=?EVOgjdgAvJ}h4Q2aW;&C&PBacIhf#0MEM9Y7OItAbV`Hv&h#;qcz@-Xc{ZaH7$ z9~%ZVlk&(CMDi@-S?Vm+vpk#kOsq^&2-k#ewB zVnc)_sHbm0xaP1h#WRDV(_yto$Us~f^2Gtf!d}19B8=Y1KFu=ty+E-kyxW3}&anod zadPW7Kf&ietsK@$VN}NRJat@q(Q8Vn`NCuwElf`@Q;VN*_@%6I$gCpDq36b!tP~`p zX8|-bPe@~!{v@3u)*+KZ$4Ymb{Xjm5xl%a=O>=+oETn=Msp*P#xMMfoT>#x;qDt?Yu)*Qtd&Q!CcC9W=U2c^q?gdITrIHIIR)b z`MX*_`aC5XQSQrs!C|UkGQX0~*p-Qjo%Y+wQaE(S$&0Dwwq(`?sk5Qp(~GI+I4rSnQ5M_qnBnk_t~?ry69GMcf zkg+feh*!a}H`eUy3e(Y4tS>i$o`7=+%&hLZk!>)CUZHKP^v^J=PuHp3GSA>4IPvc; z57aKB=C*t~R#;UD8v|6-1pR?C>2t};wwrO9bVlsVfyVJY$EjN)=(+`~yAhxGm@rlA ztms^<*xO{1U74Dinx!Y;AMQ>;{qtyWb?syWXxc7ucdoT%Vn`~ODG?`}M}j!=1+7TQ z@w^K`E+EDM8o+Lp4uM+8nx}N{bA3W5_H)MEQ~1)F)rxAOQ{@OEn=p#-wTha<)}8^q z%w2>+J^_b&pNuw@QB}=<2^tL->7g3xyTj+36Un1u*hd+{W*|MdzxZ7jOLLx&Oi}sE zT6>LCbceVb(o990ML2V0o3tbRrPQI4aKnL?U2W`dDU!(oe&^4sU16P1>JyA`Q9K%r zKGd4~JSmq%mAn<%sTT)IVMZJ+^6U2;vseUI4J(;*kzVxbe?eXuk10vhu7rB=L!73Y`Y4FpT(+@Klmj9N8?T@+F+te$kELb z6H0^mL^w9GF;Em#Kl?4U>CT?rHdhEm@%yMRjAS5@6u$zli=EtckZhBMlc%pHr+x3I zCa*rzBBj^-%z+Up4h{cLg%dCeMIfvcx=#LsH8ZA(<;fAtNr$1DiX|SDX zp%Lny{;ZU|%?eLMJ(eF<0Y1w@6>upE8xg3x;W_HaV05JcGy~|5pTae|h|etBXA+`< zj~l`u;TUIBJv{u))^Lv&s*%iykFlIBB27*YS}#SFYWW0Y_EJB%|I9Tw`q8gK+nsdK zhB0l1F_8+x=?V@DVgw8Gu`va}F*ByZ(HSNh9RfDXcxyG>ghAu$O?P>Qv9P!e`ZB^s z;7VL>%||}~0|r~0?iVj9XQMWSK8R>ptT_5F$__Xl@SCEv5gH_?zejCmh?iH-PMQ_QczrpMF)sg zIm%{1GP%cB*^ppUCM3xf$CQ7F(|V@fRf4SLFc1i@@#4qrux#3P;&F-&h*lBf*pG)r z=piKkk~CFr53S%ZS3R?rI3+blMbQ@09|sXX@sWIiJ zwD1J~X{_m!XD=|4e+j|mstXmX?mbTb z8hQ`?0aryBr2F55HEsmEnVRsPOAgxYxrQ6D(^ok0B{%xs{RpCZs5bTckJ7b=p&pY= z_z@0hAF@rqwTsLf(1{s6gNn)D?1d3o(}y*XLJJrBoIcBYNRp`Vdf8U@qz3O zL+Fz42EzqJ3i#^P_`(Z&0!w>BD{Ut~acaufR8EV|u~E8m`IE1xQLNuV7cnnDB1sC8 z?Pv-`V@J*aO~847i4;gC*k$j39d^W_5dK9`5DQ7;l`|2Z{}Z}_JVw7s9FN*T9<#@= zG)WTfb69a0C{GzH_k<4duiD!?dKf!?M2oyjn1fyC1I#YY|K!x>TP#^MTv&TJ*(s5| zkq;w9kI}LewEZyuub=E(PY@*Xuki51++n#!lay--YT$uGIZ4mX_)_ZM5e?V>8M20Q z{%T-9A=~}~LbCjS5R&~88IY>7<1nv?_9ah^2I~^AvB-^%%!!4&)QufOfg&e6Y96#U zu+1=A&v3N7=`Q|FY2Z6I2>A{4O?A*gpS?vSl+}D9(R-hJowM=vb$^c;0NQM4s??My zLLWcEaqeksG$I_F;Ik*i=q)wMmNf#_gd3yVZ#|QIwfAbeTZw4A3vel&hYjl&z!+b+ zWwR15)0d>`!lZFk6F@pT&MavGQ zD9CxyaLu2zVkx`a2RNCxYl#piga>vZy?bx-$y`$>P><`Pj4ED za%uWshOF=J)w0RN1zBW7SbA3WZl9AtG>!MFBfK>lo}vdh0)k1y=^Li5z5;Gz@j*ER zTzI6&(N-BLfLf~p#-tVFB57<~l3 zVrJ)1ZvIhSi8AS_qur3EE(&QZroL8y&2M5aHJL(7SN3j9_ipqI2zSzA9~S7BYt0_L z$+oM`;Lxx=z~R`Shi5$cZx)5)lqP&Kk9Y`lDy{)6r~T$BW7CLu{{L1uMk?Zm#Q3q< zvZek(82=}tAd-JeK>@4`b%zqaq_Z+Py}et_)*AT@ZTCR`r7^eGAF2ET!j|DkYe+<# z)bvggCzy%IL~i90Ztq8qLy9v*1qn0^2Mg*jg$-PjYwt%Hy+T=?YBX94<_~};wgnm) z@&DY;o|`TF~Yorw-SP;5&c3gF@iO= zG+1QP<@vd<(#yW|f-aU9r&st+ZZL&aiCthW{$_^emI%@tvs|n=;_BO?6xS`Kv8y{L94=+Svkgr ze{a?qr_C*=G(B4^I%4cCB<;3Xk%~jTP^>%ROnzgRd6*94Ek?5>ooZ0I#K5ZN(#gSIZ{W#%U@(j{Tr`n5Y)d7go|9A|!H8;RjJ`UB84ilHludRE8k-1mYWju3NqVbD;u@JLM@CiO zvG6*LDGT5dXyixP!fwD^0W)!8T~2|bkd<3@8F5jlZxv!%H+usSQWBveI9YzO)~nvq zE~Iy}gJw0K8D_V_h-opOh8fzAEWNT@w2@$%mj;%ZYPFo4%vv!u83%Ub4Q6IF*^vwS zh>4uqWZKdRVy;@Lt}@taZ)vDC8d_#|`?p-9xdEVpsy>I)N2$J&59wcGZra*Z>!!%~ zt)BQAq@<*?R>CiZT{K^g8>Ck}W&_hA5fpiaMX#IK(fRia8$o=%$`1HmL(JrI>9WDl zX0_TLI=m8pLp_wFwC3VNEQOl~3qitzBg8$kChiZ|_#5-G@35DX*(4h}KJ&koJ4L>B zdRxGJWDj_OBvpfCf{yaI%L83>YnC+NYH_vOBpX|&3<^B7s*t|#=FO0<*q=8!PgEiz zsmwRDv$d(Bx=kh)%p%Pe$JW8B6)d`jT@Hc#unq2`n47^kLWBtcg!I7mwankVGsZY z69ENz1}ukyRVa*=#R3BkQkm^y&a^5DPCJE5fWY>|3u0cOxV9=9*p3o;uRp?E@MP7p zdMSq7WjIf5+-+!*;~!KKE4bBo4a`t#Pshd-LE#{IpCc#dV^*T5?5Dobvsh*V_f(d; z?%Y*Kl$Zv5rehb8yCzpI^?vmsn-xIZoJ#Jf%jhk{?<#JWp>NSvpi}&=nJ!pfkYi^G zj`PFgD3A4_d#}H2Oe_nGeNDXUDkcoe5mtI0j6OPSz&siq$e#HUL|MPEhv(82OsBgh zSr~0wEBbaZ)AYKJH8Q(Gd7!Q4PmLV@bchfxeT({{yWM%vOjjTz7z33`o)+N3K2aO5 zRLOw1L?yEVQb&8z(|0{5lNEeHCQLj~S$~fEk2!+lv|5e@T)2y(Rw5d+LgWo2QMO<9 zKe@RpO;{V!(9r`3sY+#MxXmaXxXl1u_|0nZoxV%a@<94&=waUWSPJ^E<|wOOpLPXB zKC}yjq`qe6V!8E>VAt}nHr*equa#IEx3YF#_BDG+O?NDm#ByRiXJ%yb_ZzrK=mDm( z#`%O0S6G_xP3G!|h@nQ}wh0d{ z&5pmtQL&gT({6f`Y+kiN3*lNA@O+dhHrI+%xnY~+9+a`J^{kCswr(KtTHLaGYw=hj zJ(SO;8OoT^KjuIztYiS1DEO{m0F!B(E@J?(&!N6Z5970?bABM_5oFkA{!ku>jR=9_ z-f<>DKEYT74=ynLYk{uqXz(4;^Hi(_^VHvSfS9E(yuLXDiEV%QAK`wh;9_rp>&~KhMl{uIrrpY%{;# z+~?f4JC@;0qnH3%7q-ouKQNt*l^2M%Srdz=)2hufS4Bpt)S()MdaiJt4!hQqA7vIa z({NF!QRs|(5i`~xnUK3x{Q8Ah-kbAg%k=}(PM5X>m3b2EOni1QGx_Zcb#dN}S?_b4 z7ZZxLFX3W%=ihT$gmQm=$Qg?DQRrgRZU{B$tq*no?EccMe*lw0LlvaCs*)-uk36$s z$#GW!tvEsnHJ$Z54=?QU*+@)%G{(J2P32$fm2NPrz?Gq4DY~Q&+>S9kDRsWY5p=PV zS&O>(*1oEiL}jRAoWk;ZYa2_u1TtD>(lR&x=VtKnh~Cq@#pX)Iq>5tS(^hTW^d)H= zN!dn~P`ds=D-AyUx)W@MyXztQgryL`HoZ&sabGPZ;H%-Ik&n~4{m|&{BjYdL0q(Af;V7M1V zJuA*A`TEgnqP)?~8ruk0Nga)sZyY+{O>(k}jDg^f+LOxn_y4^FEPQb4uT07^`e^Yi z%`A7g$7i&9J!P2BFW>9lZlFGvLCV-F_35#U(-^KNUV90z@)U|k)eCX3Yo_J4X@$9t zZ7h)-5V0m_fXErNSR%5N&Q+uSXhWge`kdJL0aF0ytXz{dQW zeGawwArS&ai(xhH@N$)0KzJ@1+A7@DXQ9JT7N0}8vc`DXM8CUY`lT{>ZNOPT@$zH-^)y#!hvZjm=bykz@;^2+_P;1TclWaP zjSo12l02o6=%SX~U)C_SYM#1mn2o5Ik7bF}p!)jFvr=dAk*Yw}*CC}AYl*3}M?+7% zP`O7|W&-=`<}jtW8q?T5;nZ~}0ofvEe-_@{yu=LnrV92WkL{lQS3-qdq=TMs?UBvm zsg+Zi6KqeG-FIwHIm=8s50QJc?M~P$kd2GAc-Bo;-3J3?JffhVnbe4)Nn&@OxVv?o zP~l6@ANM?X32JX*xT9oUy}F`#oM5Ofh$Nq~(<~(q&FCJH zvc9Fz=&>6+FhXBlv1Bv7!D;G9)Vdl^qTrjnqGK~28S9N84r(l$~WTvl(@CIN5JqJEau z%}FK(V+~B;-^@ySZ;c8ISpZufNvl)*VNft=0b~zf(K3mOS4RUjVU4bN%8LZqOeVI~ zU2Rt&wc$OAk84w0dqv4lF>9Sq!#eQCXT`IgNHqCN$%^U0y0bZVSawe8~VPGUbR#6{jr^PBkp#$twb~m z1|5_igk|$;)o#hFn=z;>GcFX;2|6hZZyviv@p1~X@f3Fb7NXCL(ZXJgy@^>q@&sXE zFw7J)#Z{%&_PLNYHG{IbM*v~g=26-_Va z&OURiyEa4FgY7aL3)6;6Q!W1#^FQ{5FE>R$c4C}H$OopLlge)Uvdu5i*=W(~TAt(A z)H9WA=pSgoHxQFOafkLxv{@8Zw6O#op%};z6_t*AfxUS-r^g&A+hM)OkUay(M%R~O zkmUgj$D>jkbm-un6A>4wUv#X~IJa-1)4E^ietjv<)C(6263pkajCml(H>tsL>bj^T zu1NVo;!E4);peL}WVa>ar1aVI2-E!@;Z@2ws>f~0V}@mK!Ynm#vG)}^-qm7lt0TUQ z>us1vJuT`z${A7MdM-zWQ%70k-H7|%eN1tH0j^F5vOmE)b9FMe)6%s5m2~uMRlw|< zSajA#%GFNZv~HQs_3Z&Qnhidbj=^gfl@M}MjB$4rDWri*L-lpR+^{+mGViW!*v!3O zO~%d+QI8TRv(9Lhe4)4CdQ3M#Im}(r zKg+*@K720R51F-+@ZL*6$o)OT9y|oxS5cRJUOtlLzRllga8fnLAc3hk`J(RV_U6w=_kz(J4KgFa0`CQjL=fW- ztEp~GsA_mXJjtu+XJ-V!Oe4qK>M_r?B?Xs#1Xz*FJh`zMDf-iTZ}ojo(n^>#h1{}% zcl5^JGJH|h9U{S8S+>&(4W9MHHUB$fT-JTodZAI4RlI=9rfWz1*#ql}H;(u1O@g*%CrAvR1H|ra)EBk6(`PWCS~a=dR)` zn7rzl;^CehKZxM>mRaU*b85c)pttKhmAiIj>J&@F82vd~5od{L@07qqTYRqp0cvL}l zKT^_4^l#gT&mCiCxI{l?$u*;;Ub^b4{>e$UHK~yrZq;eQjTCba3U0*kN;!cmBv z+x{8~5xJ&sy_uBtG2&upvzfOEE8Fz5xASio&}mdif9`o+UYlGhH`H!7`_A&K=3e3n z7mcm@x|E%oo9+qbOC2p=Qr|P$gqA^$P|JB2rLY8`Ipixe&F`3R|8-BE(q+{s*Z=a` zD{kRt1Fqz~ZmykUS|@BTpVBnXHE2c~v!pt*ltdS$b}775sC|PDE=0rdDmK@k)1fItH_q2>t#@(I+C$YWpuJK*n01&kAp z^8CIrmOsL6X*tqz#w|C}0CqoUwp4aBd(VG%|qFCNp5X!E~rgzw=~}k#Ujew+`rV@t;{U z{yPl^A+3oKt-;eAq|*?7@jwVT<}m(YElH?hlGb#TLD9idVQYlZ{4B`~&@>_rL*^y} zSX91=fPA@01O{4ZAGVwZJ@Vg|+?g!|WZaZka(xTDLk0$^KtOoWM1Z5`%pZ3A4p{MD zJ5=NwR%u@oDb8Lqs2iJ$vL5BwqxOv1#Bz93hB&QG2iMKbv z7TivJKP~iAkr`kbOQieHa~|?v6VG%5h4WBISv**L1)yIzycK_+yd@(;{j3UnW(M4T zM6AtZf$LCh#G^_;^a2zTn@TKhUEn-q+riO~Jg_Sb;MymxEhe2v$1NTO;F8RM=Hg)^ z4!rY~pezrRNs$;4|LlhheyEiLcYQYab(jH;f;0*JS0Ua@_C52>fA=uaZ3@JIbli(W^utDwxT#2th%6*ZB$inY*?i!o7zMj%3r?~k34NlN zNJp!%|7TQ4+!iDfwwIuU3-n+d{k1gdJ|Q4(EdZx6-!JGE2nBY75EpRG^7kUH0^zJa qVB*t7aIw?dzyQ<=HN@)!@b?Oei4vTEgKuzgGF8xDa&_R~)BgdN;^uV# diff --git a/samples/sample/gradle/wrapper/gradle-wrapper.properties b/samples/sample/gradle/wrapper/gradle-wrapper.properties index 15de9024..3fa8f862 100644 --- a/samples/sample/gradle/wrapper/gradle-wrapper.properties +++ b/samples/sample/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/sample/gradlew b/samples/sample/gradlew index 1b6c7873..fcb6fca1 100755 --- a/samples/sample/gradlew +++ b/samples/sample/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +130,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,6 +197,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in @@ -205,6 +213,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/samples/sample/gradlew.bat b/samples/sample/gradlew.bat index ac1b06f9..6689b85b 100644 --- a/samples/sample/gradlew.bat +++ b/samples/sample/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/samples/sample/shared/build.gradle.kts b/samples/sample/shared/build.gradle.kts index 29fb0733..b45abd6f 100644 --- a/samples/sample/shared/build.gradle.kts +++ b/samples/sample/shared/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -8,7 +8,6 @@ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -39,38 +38,31 @@ val KERMIT_VERSION: String by project version = "0.0.1" kotlin { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - targetHierarchy.default() androidTarget() - ios() + iosX64() + iosArm64() iosSimulatorArm64() js { browser() } @OptIn(ExperimentalWasmDsl::class) - wasm { + wasmJs { browser() } sourceSets { - val commonMain by getting { - dependencies { - implementation("co.touchlab:kermit:${KERMIT_VERSION}") - } + commonMain.dependencies { + implementation("co.touchlab:kermit:${KERMIT_VERSION}") } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) + commonTest.dependencies { + implementation(kotlin("test")) - implementation("co.touchlab:kermit-test:${KERMIT_VERSION}") - } + implementation("co.touchlab:kermit-test:${KERMIT_VERSION}") } - val iosMain by getting { - dependencies { - // Only if you want to talk to Kermit from Swift - api("co.touchlab:kermit-simple:${KERMIT_VERSION}") - } + iosMain.dependencies { + // Only if you want to talk to Kermit from Swift + api("co.touchlab:kermit-simple:${KERMIT_VERSION}") } } cocoapods { diff --git a/samples/sample/shared/shared.podspec b/samples/sample/shared/shared.podspec index cd3c4d7f..fa4c533f 100644 --- a/samples/sample/shared/shared.podspec +++ b/samples/sample/shared/shared.podspec @@ -11,6 +11,17 @@ Pod::Spec.new do |spec| + if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') + raise " + + Kotlin framework 'shared' doesn't exist yet, so a proper Xcode project can't be generated. + 'pod install' should be executed after running ':generateDummyFramework' Gradle task: + + ./gradlew :shared:generateDummyFramework + + Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" + end + spec.pod_target_xcconfig = { 'KOTLIN_PROJECT_PATH' => ':shared', 'PRODUCT_MODULE_NAME' => 'shared', diff --git a/samples/sample/wasm-browser/build.gradle.kts b/samples/sample/wasm-browser/build.gradle.kts index d9a8f7e5..1e3230f3 100644 --- a/samples/sample/wasm-browser/build.gradle.kts +++ b/samples/sample/wasm-browser/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Touchlab + * Copyright (c) 2024 Touchlab * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -15,17 +15,13 @@ val KERMIT_VERSION: String by project kotlin { @Suppress("OPT_IN_USAGE") - wasm { + wasmJs { browser() binaries.executable() } - sourceSets { - val wasmMain by getting { - dependencies { - implementation(project(":shared")) - implementation("co.touchlab:kermit-simple:${KERMIT_VERSION}") - } - } + sourceSets["wasmJsMain"].dependencies { + implementation(project(":shared")) + implementation("co.touchlab:kermit-simple:${KERMIT_VERSION}") } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 548720ff..c3e5a345 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -38,4 +38,4 @@ pluginManagement { gradlePluginPortal() mavenCentral() } -} +} \ No newline at end of file