From ad52f7e456cee0285b84b862f500775ed72629dd Mon Sep 17 00:00:00 2001 From: Jai Date: Wed, 31 Jul 2019 02:09:59 +0530 Subject: [PATCH] Code Commit on 31st july 2019 --- Complete code/BornToCode.iml | 20 + Complete code/CabBookingDriver.iml | 20 + Complete code/README.md | 0 Complete code/app/.gitignore | 1 + Complete code/app/app.iml | 277 ++++ Complete code/app/build.gradle | 53 + Complete code/app/google-services.json | 55 + Complete code/app/proguard-rules.pro | 21 + .../utkarsh/uber/ExampleInstrumentedTest.java | 26 + .../src/debug/res/values/google_maps_api.xml | 26 + .../app/src/main/AndroidManifest.xml | 65 + .../app/src/main/assets/fonts/Arkhip_font.ttf | Bin 0 -> 78232 bytes .../softup/utkarsh/uber/Common/Common.java | 46 + .../softup/utkarsh/uber/CustommerCall.java | 214 +++ .../com/softup/utkarsh/uber/DriverHome.java | 1209 +++++++++++++++++ .../softup/utkarsh/uber/DriverTracking.java | 545 ++++++++ .../uber/Helper/DirectionJSONParser.java | 98 ++ .../com/softup/utkarsh/uber/MainActivity.java | 355 +++++ .../utkarsh/uber/Model/FCMResponse.java | 64 + .../utkarsh/uber/Model/Notification.java | 11 + .../com/softup/utkarsh/uber/Model/Result.java | 20 + .../com/softup/utkarsh/uber/Model/Sender.java | 30 + .../com/softup/utkarsh/uber/Model/Token.java | 20 + .../com/softup/utkarsh/uber/Model/User.java | 68 + .../softup/utkarsh/uber/Remote/FCMClient.java | 21 + .../utkarsh/uber/Remote/IFCMService.java | 18 + .../utkarsh/uber/Remote/IGoogleAPI.java | 10 + .../utkarsh/uber/Remote/RetrofitClient.java | 20 + .../uber/Service/MyFirebaseIdService.java | 30 + .../uber/Service/MyFirebaseMessaging.java | 27 + .../com/softup/utkarsh/uber/TripDetail.java | 120 ++ .../res/drawable-hdpi/ic_location_off.png | Bin 0 -> 807 bytes .../main/res/drawable-hdpi/ic_location_on.png | Bin 0 -> 715 bytes .../res/drawable-mdpi/destination_marker.png | Bin 0 -> 2520 bytes .../res/drawable-mdpi/ic_location_off.png | Bin 0 -> 519 bytes .../main/res/drawable-mdpi/ic_location_on.png | Bin 0 -> 484 bytes .../app/src/main/res/drawable-mdpi/marker.png | Bin 0 -> 2545 bytes .../main/res/drawable-v21/ic_menu_camera.xml | 12 + .../main/res/drawable-v21/ic_menu_gallery.xml | 9 + .../main/res/drawable-v21/ic_menu_manage.xml | 9 + .../main/res/drawable-v21/ic_menu_send.xml | 9 + .../main/res/drawable-v21/ic_menu_share.xml | 9 + .../res/drawable-v21/ic_menu_slideshow.xml | 9 + .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable-xhdpi/ic_location_off.png | Bin 0 -> 918 bytes .../res/drawable-xhdpi/ic_location_on.png | Bin 0 -> 884 bytes .../res/drawable-xxhdpi/ic_location_off.png | Bin 0 -> 1598 bytes .../res/drawable-xxhdpi/ic_location_on.png | Bin 0 -> 1461 bytes .../app/src/main/res/drawable/add_image.png | Bin 0 -> 2713 bytes .../app/src/main/res/drawable/background.jpg | Bin 0 -> 266500 bytes .../res/drawable/btn_register_background.xml | 16 + .../res/drawable/btn_sign_in_background.xml | 16 + .../app/src/main/res/drawable/camera.png | Bin 0 -> 3291 bytes .../app/src/main/res/drawable/car.png | Bin 0 -> 1283 bytes .../res/drawable/ic_launcher_background.xml | 170 +++ .../res/drawable/ic_pin_drop_black_24dp.xml | 9 + .../main/res/drawable/ic_star_white_24dp.xml | 9 + .../app/src/main/res/drawable/map.PNG | Bin 0 -> 20797 bytes .../src/main/res/drawable/side_nav_bar.xml | 9 + .../res/layout/activity_custommer_call.xml | 85 ++ .../main/res/layout/activity_driver_home.xml | 31 + .../res/layout/activity_driver_tracking.xml | 28 + .../app/src/main/res/layout/activity_main.xml | 82 ++ .../main/res/layout/activity_trip_detail.xml | 190 +++ .../main/res/layout/app_bar_driver_home.xml | 60 + .../main/res/layout/content_driver_home.xml | 61 + .../src/main/res/layout/layout_change_pwd.xml | 70 + .../src/main/res/layout/layout_forgot_pwd.xml | 37 + .../app/src/main/res/layout/layout_login.xml | 54 + .../src/main/res/layout/layout_register.xml | 86 ++ .../res/layout/layout_update_information.xml | 61 + .../res/layout/nav_header_driver_home.xml | 58 + .../res/menu/activity_driver_home_drawer.xml | 32 + .../app/src/main/res/menu/driver_home.xml | 5 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes .../app/src/main/res/raw/ringtone.mp3 | Bin 0 -> 310471 bytes .../app/src/main/res/raw/uber_style_map.json | 254 ++++ .../app/src/main/res/values-v21/styles.xml | 1 + .../app/src/main/res/values/colors.xml | 20 + .../app/src/main/res/values/dimens.xml | 8 + .../app/src/main/res/values/drawables.xml | 8 + .../app/src/main/res/values/strings.xml | 14 + .../app/src/main/res/values/styles.xml | 16 + .../release/res/values/google_maps_api.xml | 20 + .../softup/utkarsh/uber/ExampleUnitTest.java | 17 + Complete code/build.gradle | 34 + Complete code/gradle.properties | 13 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54708 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + Complete code/gradlew | 172 +++ Complete code/gradlew.bat | 84 ++ Complete code/local.properties | 8 + Complete code/settings.gradle | 1 + 104 files changed, 5436 insertions(+) create mode 100644 Complete code/BornToCode.iml create mode 100644 Complete code/CabBookingDriver.iml create mode 100644 Complete code/README.md create mode 100644 Complete code/app/.gitignore create mode 100644 Complete code/app/app.iml create mode 100644 Complete code/app/build.gradle create mode 100644 Complete code/app/google-services.json create mode 100644 Complete code/app/proguard-rules.pro create mode 100644 Complete code/app/src/androidTest/java/com/softup/utkarsh/uber/ExampleInstrumentedTest.java create mode 100644 Complete code/app/src/debug/res/values/google_maps_api.xml create mode 100644 Complete code/app/src/main/AndroidManifest.xml create mode 100644 Complete code/app/src/main/assets/fonts/Arkhip_font.ttf create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Common/Common.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/CustommerCall.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverHome.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverTracking.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Helper/DirectionJSONParser.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/MainActivity.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/FCMResponse.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Notification.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Result.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Sender.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Token.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/User.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/FCMClient.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IFCMService.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IGoogleAPI.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/RetrofitClient.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseIdService.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseMessaging.java create mode 100644 Complete code/app/src/main/java/com/softup/utkarsh/uber/TripDetail.java create mode 100644 Complete code/app/src/main/res/drawable-hdpi/ic_location_off.png create mode 100644 Complete code/app/src/main/res/drawable-hdpi/ic_location_on.png create mode 100644 Complete code/app/src/main/res/drawable-mdpi/destination_marker.png create mode 100644 Complete code/app/src/main/res/drawable-mdpi/ic_location_off.png create mode 100644 Complete code/app/src/main/res/drawable-mdpi/ic_location_on.png create mode 100644 Complete code/app/src/main/res/drawable-mdpi/marker.png create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_camera.xml create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_gallery.xml create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_manage.xml create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_send.xml create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_share.xml create mode 100644 Complete code/app/src/main/res/drawable-v21/ic_menu_slideshow.xml create mode 100644 Complete code/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 Complete code/app/src/main/res/drawable-xhdpi/ic_location_off.png create mode 100644 Complete code/app/src/main/res/drawable-xhdpi/ic_location_on.png create mode 100644 Complete code/app/src/main/res/drawable-xxhdpi/ic_location_off.png create mode 100644 Complete code/app/src/main/res/drawable-xxhdpi/ic_location_on.png create mode 100644 Complete code/app/src/main/res/drawable/add_image.png create mode 100644 Complete code/app/src/main/res/drawable/background.jpg create mode 100644 Complete code/app/src/main/res/drawable/btn_register_background.xml create mode 100644 Complete code/app/src/main/res/drawable/btn_sign_in_background.xml create mode 100644 Complete code/app/src/main/res/drawable/camera.png create mode 100644 Complete code/app/src/main/res/drawable/car.png create mode 100644 Complete code/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 Complete code/app/src/main/res/drawable/ic_pin_drop_black_24dp.xml create mode 100644 Complete code/app/src/main/res/drawable/ic_star_white_24dp.xml create mode 100644 Complete code/app/src/main/res/drawable/map.PNG create mode 100644 Complete code/app/src/main/res/drawable/side_nav_bar.xml create mode 100644 Complete code/app/src/main/res/layout/activity_custommer_call.xml create mode 100644 Complete code/app/src/main/res/layout/activity_driver_home.xml create mode 100644 Complete code/app/src/main/res/layout/activity_driver_tracking.xml create mode 100644 Complete code/app/src/main/res/layout/activity_main.xml create mode 100644 Complete code/app/src/main/res/layout/activity_trip_detail.xml create mode 100644 Complete code/app/src/main/res/layout/app_bar_driver_home.xml create mode 100644 Complete code/app/src/main/res/layout/content_driver_home.xml create mode 100644 Complete code/app/src/main/res/layout/layout_change_pwd.xml create mode 100644 Complete code/app/src/main/res/layout/layout_forgot_pwd.xml create mode 100644 Complete code/app/src/main/res/layout/layout_login.xml create mode 100644 Complete code/app/src/main/res/layout/layout_register.xml create mode 100644 Complete code/app/src/main/res/layout/layout_update_information.xml create mode 100644 Complete code/app/src/main/res/layout/nav_header_driver_home.xml create mode 100644 Complete code/app/src/main/res/menu/activity_driver_home_drawer.xml create mode 100644 Complete code/app/src/main/res/menu/driver_home.xml create mode 100644 Complete code/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 Complete code/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 Complete code/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 Complete code/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 Complete code/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 Complete code/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 Complete code/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 Complete code/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 Complete code/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 Complete code/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 Complete code/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 Complete code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 Complete code/app/src/main/res/raw/ringtone.mp3 create mode 100644 Complete code/app/src/main/res/raw/uber_style_map.json create mode 100644 Complete code/app/src/main/res/values-v21/styles.xml create mode 100644 Complete code/app/src/main/res/values/colors.xml create mode 100644 Complete code/app/src/main/res/values/dimens.xml create mode 100644 Complete code/app/src/main/res/values/drawables.xml create mode 100644 Complete code/app/src/main/res/values/strings.xml create mode 100644 Complete code/app/src/main/res/values/styles.xml create mode 100644 Complete code/app/src/release/res/values/google_maps_api.xml create mode 100644 Complete code/app/src/test/java/com/softup/utkarsh/uber/ExampleUnitTest.java create mode 100644 Complete code/build.gradle create mode 100644 Complete code/gradle.properties create mode 100644 Complete code/gradle/wrapper/gradle-wrapper.jar create mode 100644 Complete code/gradle/wrapper/gradle-wrapper.properties create mode 100644 Complete code/gradlew create mode 100644 Complete code/gradlew.bat create mode 100644 Complete code/local.properties create mode 100644 Complete code/settings.gradle diff --git a/Complete code/BornToCode.iml b/Complete code/BornToCode.iml new file mode 100644 index 0000000..29169eb --- /dev/null +++ b/Complete code/BornToCode.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/CabBookingDriver.iml b/Complete code/CabBookingDriver.iml new file mode 100644 index 0000000..0f8d69f --- /dev/null +++ b/Complete code/CabBookingDriver.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/README.md b/Complete code/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Complete code/app/.gitignore b/Complete code/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/Complete code/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Complete code/app/app.iml b/Complete code/app/app.iml new file mode 100644 index 0000000..76c28b6 --- /dev/null +++ b/Complete code/app/app.iml @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/app/build.gradle b/Complete code/app/build.gradle new file mode 100644 index 0000000..1a2e1e7 --- /dev/null +++ b/Complete code/app/build.gradle @@ -0,0 +1,53 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + defaultConfig { + applicationId "com.softup.utkarsh.uber" + minSdkVersion 19 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + multiDexEnabled true + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:26.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.0' + implementation 'com.google.android.gms:play-services-maps:12.0.1' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation 'com.google.firebase:firebase-core:12.0.1' + + //Add Library + implementation 'com.google.maps.android:android-maps-utils:0.5+' + implementation 'de.hdodenhof:circleimageview:2.2.0' + implementation 'com.squareup.picasso:picasso:2.5.2' + implementation 'com.squareup.retrofit2:retrofit:2.3.0' + implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' + implementation 'com.squareup.retrofit2:converter-gson:2.3.0' + implementation 'com.github.glomadrian:MaterialAnimatedSwitch:1.1@aar' + implementation 'com.firebase:geofire-android:2.1.2' + implementation 'com.github.d-max:spots-dialog:0.7@aar' + implementation 'uk.co.chrisjenx:calligraphy:2.3.0' + implementation 'com.rengwuxian.materialedittext:library:2.1.4' + implementation 'com.android.support:design:26.+' + implementation 'com.android.support:cardview-v7:26.+' + implementation 'com.google.firebase:firebase-messaging:12.0.1' + implementation 'com.google.firebase:firebase-database:12.0.1' + implementation 'com.google.firebase:firebase-auth:12.0.1' + implementation 'com.google.android.gms:play-services:12.0.1' + implementation 'com.android.support:multidex:1.0.3' + +} +apply plugin: 'com.google.gms.google-services' diff --git a/Complete code/app/google-services.json b/Complete code/app/google-services.json new file mode 100644 index 0000000..bb62d3a --- /dev/null +++ b/Complete code/app/google-services.json @@ -0,0 +1,55 @@ +{ + "project_info": { + "project_number": "21625424728", + "firebase_url": "https://uber-798e0.firebaseio.com", + "project_id": "uber-798e0", + "storage_bucket": "uber-798e0.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:21625424728:android:366153b4406cffb8", + "android_client_info": { + "package_name": "com.softup.utkarsh.uber" + } + }, + "oauth_client": [ + { + "client_id": "21625424728-1q85m5dvv7pesadams64ti492a6flfc6.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.softup.utkarsh.uber", + "certificate_hash": "e620ca98dc64d4a59cc867cccb87ee6e0913abf5" + } + }, + { + "client_id": "21625424728-fhujpkrdkte2g7rucdkjoqvgcdtick8l.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyD1EUcJZ2OFQ3habqilOdfo2grbguSmO18" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 2, + "other_platform_oauth_client": [ + { + "client_id": "21625424728-fhujpkrdkte2g7rucdkjoqvgcdtick8l.apps.googleusercontent.com", + "client_type": 3 + } + ] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/Complete code/app/proguard-rules.pro b/Complete code/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/Complete code/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Complete code/app/src/androidTest/java/com/softup/utkarsh/uber/ExampleInstrumentedTest.java b/Complete code/app/src/androidTest/java/com/softup/utkarsh/uber/ExampleInstrumentedTest.java new file mode 100644 index 0000000..bc72bb4 --- /dev/null +++ b/Complete code/app/src/androidTest/java/com/softup/utkarsh/uber/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.softup.utkarsh.uber; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.softup.utkarsh.uber", appContext.getPackageName()); + } +} diff --git a/Complete code/app/src/debug/res/values/google_maps_api.xml b/Complete code/app/src/debug/res/values/google_maps_api.xml new file mode 100644 index 0000000..ee1ad08 --- /dev/null +++ b/Complete code/app/src/debug/res/values/google_maps_api.xml @@ -0,0 +1,26 @@ + + + + AIzaSyCGBMKqJny_m658EFB-42vAaYKxOdpoJXI + + diff --git a/Complete code/app/src/main/AndroidManifest.xml b/Complete code/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6ded73a --- /dev/null +++ b/Complete code/app/src/main/AndroidManifest.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/app/src/main/assets/fonts/Arkhip_font.ttf b/Complete code/app/src/main/assets/fonts/Arkhip_font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..837bc86fb46e74110144d49b45c26d23ba772a9e GIT binary patch literal 78232 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 literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Common/Common.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Common/Common.java new file mode 100644 index 0000000..8864628 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Common/Common.java @@ -0,0 +1,46 @@ +package com.softup.utkarsh.uber.Common; + +import android.location.Location; + +import com.softup.utkarsh.uber.Model.User; +import com.softup.utkarsh.uber.Remote.FCMClient; +import com.softup.utkarsh.uber.Remote.IFCMService; +import com.softup.utkarsh.uber.Remote.IGoogleAPI; +import com.softup.utkarsh.uber.Remote.RetrofitClient; + +public class Common +{ + + public static final String driver_tb1 = "Drivers"; + public static final String user_driver_tb1 = "DriversInformation"; + public static final String user_rider_tb1 = "RidersInformation"; + public static final String pickup_request_tb1 = "PickupRequest"; + public static final String token_tb1 = "Tokens"; + public static final int PICK_IMAGE_REQUEST = 9999 ; + + public static User currentUser; + + public static Location mLastLocation=null; + + public static final String baseURL = "https://maps.googleapis.com"; + public static final String fcmURL = "https://fcm.googleapis.com/"; + + public static double base_fare = 1.00; + private static double time_rate = 0.00; + private static double distance_rate = 1.00; + + public static double formulaPrice(double km,double min) + { + return base_fare+(distance_rate*km)+(time_rate*min); + } + + public static IGoogleAPI getGoogleAPI() + { + return RetrofitClient.getClient(baseURL).create(IGoogleAPI.class); + } + + public static IFCMService getFCMService() + { + return FCMClient.getClient(fcmURL).create(IFCMService.class); + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/CustommerCall.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/CustommerCall.java new file mode 100644 index 0000000..ff2ee59 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/CustommerCall.java @@ -0,0 +1,214 @@ +package com.softup.utkarsh.uber; + +import android.animation.ValueAnimator; +import android.content.Intent; +import android.graphics.Color; +import android.media.MediaPlayer; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.view.animation.LinearInterpolator; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.android.gms.maps.CameraUpdate; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.JointType; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.PolylineOptions; +import com.google.android.gms.maps.model.SquareCap; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Model.FCMResponse; +import com.softup.utkarsh.uber.Model.Notification; +import com.softup.utkarsh.uber.Model.Sender; +import com.softup.utkarsh.uber.Model.Token; +import com.softup.utkarsh.uber.Remote.IFCMService; +import com.softup.utkarsh.uber.Remote.IGoogleAPI; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class CustommerCall extends AppCompatActivity { + + TextView txtTime,txtAddress,txtDistance; + Button btnCancel,btnAccept; + + MediaPlayer mediaPlayer; + + IGoogleAPI mService; + IFCMService mFCMService; + + String customerId; + + double lat,lng; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_custommer_call); + + mService = Common.getGoogleAPI(); + mFCMService = Common.getFCMService(); + + //InitView + txtAddress = (TextView) findViewById(R.id.txtAddress); + txtDistance = (TextView) findViewById(R.id.txtDistance); + txtTime = (TextView) findViewById(R.id.txtTime); + + btnAccept = (Button)findViewById(R.id.btnAccept); + btnCancel = (Button)findViewById(R.id.btnDecline); + + btnCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (!TextUtils.isEmpty(customerId)) + cancelBooking(customerId); + + } + }); + + btnAccept.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(CustommerCall.this,DriverTracking.class); + intent.putExtra("lat",lat); + intent.putExtra("lng",lng); + intent.putExtra("customerId",customerId); + + startActivity(intent); + finish(); + } + }); + + mediaPlayer = MediaPlayer.create(this,R.raw.ringtone); + mediaPlayer.setLooping(true); + mediaPlayer.start(); + + if (getIntent() != null) + { + lat = getIntent().getDoubleExtra("lat",-1.0); + lng = getIntent().getDoubleExtra("lng",-1.0); + customerId = getIntent().getStringExtra("customer"); + + //Just copy getDirection from Welcome Activity + getDirection(lat,lng); + + } + + } + + private void cancelBooking(String customerId) { + Token token = new Token(customerId); + + Notification notification = new Notification("Cancel", "Driver has cancelled your request"); + Sender sender = new Sender(token.getToken(),notification); + + mFCMService.sendMessage(sender) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.body().success == 1) + { + Toast.makeText(CustommerCall.this, "Cancelled", Toast.LENGTH_SHORT).show(); + finish(); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + private void getDirection(double lat, double lng) { + + + String requestApi = null; + try { + requestApi = "https://maps.googleapis.com/maps/api/directions/json?"+ + "mode=driving&"+ + "transit_routing_preference=less_driving&"+ + "origin="+ Common.mLastLocation.getLatitude()+","+Common.mLastLocation.getLongitude()+"&"+ + "destination="+lat+","+lng+"&"+ + "key="+getResources().getString(R.string.google_direction_api); + Log.d("UBER",requestApi); //Print URL for debug + mService.getPath(requestApi) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + try { + JSONObject jsonObject = new JSONObject(response.body().toString()); + + JSONArray routes = jsonObject.getJSONArray("routes"); + + JSONObject object = routes.getJSONObject(0); + + JSONArray legs = object.getJSONArray("legs"); + + JSONObject legsObject = legs.getJSONObject(0); + + JSONObject distance = legsObject.getJSONObject("distance"); + txtDistance.setText(distance.getString("text")); + + + JSONObject time = legsObject.getJSONObject("duration"); + txtTime.setText(time.getString("text")); + + + String address = legsObject.getString("end_address"); + txtAddress.setText(address); + + + } catch (JSONException e) { + e.printStackTrace(); + } + + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(CustommerCall.this, ""+t.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + + }catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + protected void onStop() { + mediaPlayer.release(); + super.onStop(); + } + + @Override + protected void onPause() { + mediaPlayer.release(); + super.onPause(); + } + + @Override + protected void onPostResume() { + + super.onPostResume(); + mediaPlayer.start(); + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverHome.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverHome.java new file mode 100644 index 0000000..3b45eb5 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverHome.java @@ -0,0 +1,1209 @@ +package com.softup.utkarsh.uber; + +import android.Manifest; +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.Color; +import android.location.Location; +import android.net.Uri; +import android.os.Bundle; +import android.os.Handler; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v4.app.ActivityCompat; +import android.support.v7.app.AlertDialog; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; +import android.view.animation.LinearInterpolator; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.firebase.geofire.GeoFire; +import com.firebase.geofire.GeoLocation; +import com.github.glomadrian.materialanimatedswitch.MaterialAnimatedSwitch; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.places.AutocompleteFilter; +import com.google.android.gms.location.places.Place; +import com.google.android.gms.location.places.ui.PlaceAutocompleteFragment; +import com.google.android.gms.location.places.ui.PlaceSelectionListener; +import com.google.android.gms.maps.CameraUpdate; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.model.JointType; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; +import com.google.android.gms.maps.model.MapStyleOptions; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.gms.maps.model.PolylineOptions; +import com.google.android.gms.maps.model.SquareCap; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.AuthCredential; +import com.google.firebase.auth.EmailAuthProvider; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.storage.FirebaseStorage; +import com.google.firebase.storage.OnProgressListener; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; +import com.google.maps.android.SphericalUtil; +import com.rengwuxian.materialedittext.MaterialEditText; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Model.Token; +import com.softup.utkarsh.uber.Model.User; +import com.softup.utkarsh.uber.Remote.IGoogleAPI; +import com.squareup.picasso.Picasso; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import de.hdodenhof.circleimageview.CircleImageView; +import dmax.dialog.SpotsDialog; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class DriverHome extends AppCompatActivity + implements NavigationView.OnNavigationItemSelectedListener, + OnMapReadyCallback, + GoogleApiClient.ConnectionCallbacks, + GoogleApiClient.OnConnectionFailedListener, + LocationListener + + +{ + + private GoogleMap mMap; + Context context; + + //Play Services + private static final int MY_PERMISSION_REQUEST_CODE = 7000; + private static final int PLAY_SERVICE_RES_REQUEST = 7001; + + private LocationRequest mLocationRequest; + private GoogleApiClient mGoogleApiClient; + + + private static int UPDATE_INTERVAL = 5000; + private static int FATEST_INTERVAL = 3000; + private static int DISPLACEMENT = 10; + + DatabaseReference drivers; + GeoFire geoFire; + + Marker mCurrent; + + MaterialAnimatedSwitch location_switch; + SupportMapFragment mapFragment; + + + //Car animation + private List polyLineList; + private Marker carMarker; + private float v; + private double lat,lng; + private Handler handler; + private LatLng startPostion, endPosition,currentPosition; + private int index,next; + // private Button btnGo; + private PlaceAutocompleteFragment places; + AutocompleteFilter typeFilter; + private String destination; + private PolylineOptions polylineOptions,blackPolylineOptions; + private Polyline blackPolyline,greyPolyline; + + private IGoogleAPI mService; + + //Presense System + DatabaseReference onlineRef,currentUserRef; + + //Firebase Storage + FirebaseStorage firebaseStorage; + StorageReference storageReference; + + Runnable drawPathRunnable= new Runnable() { + @Override + public void run() { + if (index= endPosition.latitude && startPostion.longitude < endPosition.longitude) + return (float)((90-Math.toDegrees(Math.atan(lng/lat)))+90); + else if (startPostion.latitude >= endPosition.latitude && startPostion.longitude >= endPosition.longitude) + return (float)(Math.toDegrees(Math.atan(lng/lat))+180); + else if (startPostion.latitude < endPosition.latitude && startPostion.longitude >= endPosition.longitude) + return (float)((90-Math.toDegrees(Math.atan(lng/lat)))+270); + return -1; + + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_driver_home); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + //Init Firebase Storage + firebaseStorage = FirebaseStorage.getInstance(); + storageReference = firebaseStorage.getReference(); + + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.addDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + navigationView.setNavigationItemSelectedListener(this); + + View navigationHeaderView = navigationView.getHeaderView(0); + final TextView txtName = (TextView)navigationHeaderView.findViewById(R.id.txtDriverName); + final TextView txtStars = (TextView)navigationHeaderView.findViewById(R.id.txtStars); + + CircleImageView imageAvatar = (CircleImageView) navigationHeaderView.findViewById(R.id.image_avatar); + + txtName.setText(Common.currentUser.getName()); + txtStars.setText(Common.currentUser.getRates()); + + + + if (Common.currentUser.getAvatarUrl() != null && !TextUtils.isEmpty(Common.currentUser.getAvatarUrl())) { + Picasso.with(this) + .load(Common.currentUser.getAvatarUrl()) + .into(imageAvatar); + + } + + drawer.addDrawerListener(new DrawerLayout.DrawerListener() { + + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + //Called when a drawer's position changes. + + } + + @Override + public void onDrawerOpened(View drawerView) { + //Called when a drawer has settled in a completely open state. + //The drawer is interactive at this point. + // If you have 2 drawers (left and right) you can distinguish + // them by using id of the drawerView. int id = drawerView.getId(); + // id will be your layout's id: for example R.id.left_drawer + DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + DatabaseReference uidRef = rootRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()); + ValueEventListener valueEventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + // String userEmail = dataSnapshot.child("userEmail").getValue(String.class); + // String userID = dataSnapshot.child("userID").getValue(String.class); + String userName = dataSnapshot.child("rates").getValue(String.class); + //String userUsername = dataSnapshot.child("userUsername").getValue(String.class); + //Log.d("TAG", userEmail + " / " + userID + " / " + userName + " / " + userUsername); + Common.currentUser.setRates(userName); + txtStars.setText(userName); + + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + }; + uidRef.addListenerForSingleValueEvent(valueEventListener); + } + + @Override + public void onDrawerClosed(View drawerView) { + // Called when a drawer has settled in a completely closed state. + } + + @Override + public void onDrawerStateChanged(int newState) { + // Called when the drawer motion state changes. The new state will be one of STATE_IDLE, STATE_DRAGGING or STATE_SETTLING. + + + } + }); + + + // DatabaseReference driverInformations = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + //driverInformations.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + + /* DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + DatabaseReference uidRef = rootRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()); + ValueEventListener valueEventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + // String userEmail = dataSnapshot.child("userEmail").getValue(String.class); + // String userID = dataSnapshot.child("userID").getValue(String.class); + String userName = dataSnapshot.child("name").getValue(String.class); + //String userUsername = dataSnapshot.child("userUsername").getValue(String.class); + //Log.d("TAG", userEmail + " / " + userID + " / " + userName + " / " + userUsername); + txtName.setText(userName); + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + }; + uidRef.addListenerForSingleValueEvent(valueEventListener); */ + + + + + //Paste here + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + mapFragment = (SupportMapFragment) getSupportFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + + //Presence System + onlineRef = FirebaseDatabase.getInstance().getReference().child(".info/connected"); + currentUserRef = FirebaseDatabase.getInstance().getReference(Common.driver_tb1) + .child(FirebaseAuth.getInstance().getCurrentUser().getUid()); + onlineRef.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + //We will remove value from Driver tb1 when driver is disconnected + currentUserRef.onDisconnect().removeValue(); + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + //Init View + location_switch = (MaterialAnimatedSwitch)findViewById(R.id.location_switch); + location_switch.setOnCheckedChangeListener(new MaterialAnimatedSwitch.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(boolean isOnline) { + if (isOnline) { + FirebaseDatabase.getInstance().goOnline(); //set connected when switch to on + startLocationUpdates(); + displayLocation(); + Snackbar.make(mapFragment.getView(), "You are online", Snackbar.LENGTH_SHORT) + .show(); + } else { + + FirebaseDatabase.getInstance().goOffline(); //Set disconnected when switch to off + + stopLocationUpdates(); + mCurrent.remove(); + mMap.clear(); + if(handler != null) + handler.removeCallbacks(drawPathRunnable); + Snackbar.make(mapFragment.getView(), "You are offline", Snackbar.LENGTH_SHORT) + .show(); + } + + } + }); + + polyLineList = new ArrayList<>(); + + + //Places API + typeFilter = new AutocompleteFilter.Builder() + .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS) + .setTypeFilter(3) + .build(); + places = (PlaceAutocompleteFragment) getFragmentManager(). findFragmentById(R.id.place_autocomplete_fragment); + places.setOnPlaceSelectedListener(new PlaceSelectionListener() { + @Override + public void onPlaceSelected(Place place) { + if(location_switch.isChecked()) + { + destination = place.getAddress().toString(); + destination = destination.replace(" ","+"); + + getDirection(); + } + else + { + Toast.makeText(DriverHome.this, "Please change your status to ONLINE", Toast.LENGTH_SHORT).show(); + } + + } + + @Override + public void onError(Status status) { + Toast.makeText(DriverHome.this, ""+status.toString(), Toast.LENGTH_SHORT).show(); + + } + }); + + + + // Geo Fire + drivers = FirebaseDatabase.getInstance().getReference(Common.driver_tb1); + geoFire = new GeoFire(drivers); + + setUpLocation(); + + mService = Common.getGoogleAPI(); + + updateFirebaseToken(); + + + + } + + + + private void updateFirebaseToken() { + FirebaseDatabase db = FirebaseDatabase.getInstance(); + DatabaseReference tokens = db.getReference(Common.token_tb1); + + Token token = new Token(FirebaseInstanceId.getInstance().getToken()); + tokens.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .setValue(token); + } + + private void getDirection() { + currentPosition = new LatLng(Common.mLastLocation.getLatitude(),Common.mLastLocation.getLongitude()); + + String requestApi = null; + try { + requestApi = "https://maps.googleapis.com/maps/api/directions/json?"+ + "mode=driving&"+ + "transit_routing_preference=less_driving&"+ + "origin="+currentPosition.latitude+","+currentPosition.longitude+"&"+ + "destination="+destination+"&"+ + "key="+getResources().getString(R.string.google_direction_api); + Log.d("UBER",requestApi); //Print URL for debug + mService.getPath(requestApi) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + try { + JSONObject jsonObject = new JSONObject(response.body().toString()); + JSONArray jsonArray = jsonObject.getJSONArray("routes"); + for (int i=0;i points = greyPolyline.getPoints(); + int percentValue = (int)valueAnimator.getAnimatedValue(); + int size = points.size(); + int newPoints = (int) (size * (percentValue/100.0f)); + List p = points.subList(0,newPoints); + blackPolyline.setPoints(p); + } + }); + + polyLineAnimator.start(); + + carMarker = mMap.addMarker(new MarkerOptions().position(currentPosition) + .flat(true) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.car))); + + handler = new Handler(); + index=-1; + next=1; + handler.postDelayed(drawPathRunnable,3000); + + } catch (JSONException e) { + e.printStackTrace(); + } + + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(DriverHome.this, ""+t.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + + }catch (Exception e) + { + e.printStackTrace(); + } + + } + + /** + * Method to decode polyline points + * Courtesy : jeffreysambells.com/2010/05/27/decoding-polylines-from-google-maps-direction-api-with-java + * */ + private List decodePoly(String encoded) { + + List poly = new ArrayList(); + int index = 0, len = encoded.length(); + int lat = 0, lng = 0; + + while (index < len) { + int b, shift = 0, result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lat += dlat; + + shift = 0; + result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lng += dlng; + + LatLng p = new LatLng((((double) lat / 1E5)), + (((double) lng / 1E5))); + poly.add(p); + } + + return poly; + } + + //Press Ctrl+O + //Because we request runtime permission, we need to override OnRequestPermissionResult methord + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + switch (requestCode) + { + case MY_PERMISSION_REQUEST_CODE: + if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) + { + if (checkPlayServices()) + { + buildGoogleApiClient(); + createLocationRequest(); + if (location_switch.isChecked()) + { + displayLocation(); + } + } + } + } + } + + private void setUpLocation() { + if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + // Request runtime permission + ActivityCompat.requestPermissions(this, new String[]{ + android.Manifest.permission.ACCESS_COARSE_LOCATION, + android.Manifest.permission.ACCESS_FINE_LOCATION + + },MY_PERMISSION_REQUEST_CODE); + } + else + { + if (checkPlayServices()) + { + buildGoogleApiClient(); + createLocationRequest(); + if (location_switch.isChecked()) + { + displayLocation(); + } + } + } + + } + + + @SuppressLint("RestrictedApi") + private void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + private void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + mGoogleApiClient.connect(); + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) + { + if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)) + GooglePlayServicesUtil.getErrorDialog(resultCode,this,PLAY_SERVICE_RES_REQUEST).show(); + else { + Toast.makeText(this, "This device is not supported", Toast.LENGTH_SHORT).show(); + finish(); + } + return false; + } + return true; + } + + private void stopLocationUpdates() { + if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + return; + } + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient,this); + } + + private void displayLocation() { + if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + return; + } + Common.mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + if(Common.mLastLocation != null) + { + if (location_switch.isChecked()) + { + final double latitude = Common.mLastLocation.getLatitude(); + final double longitude = Common.mLastLocation.getLongitude(); + + LatLng center = new LatLng(latitude,longitude); + LatLng northSide = SphericalUtil.computeOffset(center,100000,0); + LatLng southSide = SphericalUtil.computeOffset(center,100000,180); + + LatLngBounds bounds = LatLngBounds.builder() + .include(northSide) + .include(southSide) + .build(); + places.setBoundsBias(bounds); + places.setFilter(typeFilter); + + //Update to Firebase + geoFire.setLocation(FirebaseAuth.getInstance().getCurrentUser().getUid(), new GeoLocation(latitude, longitude), new GeoFire.CompletionListener() { + @Override + public void onComplete(String key, DatabaseError error) { + //Add Marker + if (mCurrent != null) + mCurrent.remove(); //Remove already marker + mCurrent = mMap.addMarker(new MarkerOptions() + + .position(new LatLng(latitude,longitude)) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)) + .title("Your Location")); + + //Move camera to this position + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,longitude),15.0f)); + + } + }); + } + } + else + { + Log.d("Error","Cannot get your location"); + } + } + + + + private void startLocationUpdates() { + if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + return; + } + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest,this); + } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.driver_home, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + + + return super.onOptionsItemSelected(item); + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + + if (id == R.id.nav_trip_history) { + // Handle the camera action + } else if (id == R.id.nav_way_bill) { + + } else if (id == R.id.nav_help) { + + } else if (id == R.id.nav_sign_out) { + signOut(); + + } else if (id == R.id.nav_settings) { + + } + else if (id == R.id.nav_update_info) { + showDialogUpdateInfo(); + + } + else if (id == R.id.nav_change_pwd) { + showDialogChangePwd(); + + } + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } + + private void showDialogUpdateInfo() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(DriverHome.this); + alertDialog.setTitle("UPDATE PHOTO"); + alertDialog.setMessage("Please your Photo"); + LayoutInflater inflater = this.getLayoutInflater(); + View layout_pwd = inflater.inflate(R.layout.layout_update_information,null); + final MaterialEditText edtName = (MaterialEditText)layout_pwd.findViewById(R.id.edtName); + final MaterialEditText edtPhone = (MaterialEditText)layout_pwd.findViewById(R.id.edtPhone); + final ImageView image_upload = (ImageView) layout_pwd.findViewById(R.id.image_upload); + image_upload.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + chooseImage(); + + } + }); + + alertDialog.setView(layout_pwd); + + //Set Button + alertDialog.setPositiveButton("", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + final android.app.AlertDialog waitingDialog = new SpotsDialog(DriverHome.this); + waitingDialog.show(); + + String name = edtName.getText().toString(); + String phone = edtPhone.getText().toString(); + Map updateInfo = new HashMap<>(); + if (!TextUtils.isEmpty(name)) + updateInfo.put("name",name); + if (!TextUtils.isEmpty(phone)) + updateInfo.put("phone",phone); + + DatabaseReference driverInformations = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + driverInformations.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .updateChildren(updateInfo) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + // startActivity(getIntent()); + // finish(); + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + + View navigationHeaderView = navigationView.getHeaderView(0); + final TextView txtName = (TextView)navigationHeaderView.findViewById(R.id.txtDriverName); + //txtName.setText(Common.currentUser.getName()); + DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + DatabaseReference uidRef = rootRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()); + ValueEventListener valueEventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + // String userEmail = dataSnapshot.child("userEmail").getValue(String.class); + // String userID = dataSnapshot.child("userID").getValue(String.class); + String userName = dataSnapshot.child("name").getValue(String.class); + //String userUsername = dataSnapshot.child("userUsername").getValue(String.class); + //Log.d("TAG", userEmail + " / " + userID + " / " + userName + " / " + userUsername); + txtName.setText(userName); + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + }; + uidRef.addListenerForSingleValueEvent(valueEventListener); + + Toast.makeText(DriverHome.this, "Information Updated ! !", Toast.LENGTH_SHORT).show(); + + } + else + Toast.makeText(DriverHome.this, "Information Update Failed !", Toast.LENGTH_SHORT).show(); + waitingDialog.dismiss(); + } + }); + + + + } + }); + + alertDialog.setNegativeButton("BACK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + + alertDialog.show(); + + } + + private void chooseImage() { + Intent intent = new Intent(); + intent.setType("image/*"); + intent.setAction(Intent.ACTION_GET_CONTENT); + startActivityForResult(Intent.createChooser(intent,"Select Picture: "),Common.PICK_IMAGE_REQUEST); + + } + + /* @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == Common.PICK_IMAGE_REQUEST && requestCode == RESULT_OK + && data !=null && data.getData() !=null) + { + Uri saveUri = data.getData(); + if (saveUri !=null) + { + final ProgressDialog mDialog = new ProgressDialog(this); + mDialog.setMessage("Uploading..."); + mDialog.show(); + + String imageName = UUID.randomUUID().toString(); //Random name image upload + final StorageReference imageFolder = storageReference.child("images/"+imageName); + imageFolder.putFile(saveUri) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + mDialog.dismiss(); + // Toast.makeText(DriverHome.this, "Uploaded !", Toast.LENGTH_SHORT).show(); + imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(Uri uri) { + Map avatarUpdate = new HashMap<>(); + avatarUpdate.put("avatarUrl",uri.toString()); + DatabaseReference driverInformations = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + driverInformations.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .updateChildren(avatarUpdate) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) + Toast.makeText(DriverHome.this, "Uploaded !", Toast.LENGTH_SHORT).show(); + else + Toast.makeText(DriverHome.this, "Upload error !", Toast.LENGTH_SHORT).show(); + } + }); + + + } + }); + + } + }) + .addOnProgressListener(new OnProgressListener() { + @Override + public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { + double progress = (100.0* taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount()); + mDialog.setMessage("Uploaded"+progress+"%"); + } + }); + + + } + } + } */ + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode != RESULT_OK) { + return; + } + if (requestCode == Common.PICK_IMAGE_REQUEST && requestCode == RESULT_OK + && data !=null && data.getData() !=null); + { + Uri saveUri = data.getData(); + if (saveUri != null) + { + final ProgressDialog mDialog = new ProgressDialog(this); + mDialog.setMessage("Uploading..."); + mDialog.show(); + + String imageName = UUID.randomUUID().toString(); //Random name image upload + final StorageReference imageFolder = storageReference.child("images/"+imageName); + imageFolder.putFile(saveUri) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + mDialog.dismiss(); + // Toast.makeText(Home.this, "Uploaded", Toast.LENGTH_SHORT).show(); + imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(Uri uri) { + String s = getIntent().getStringExtra("EXTRA_SESSION_ID"); + + //Update this url to avatar property of User + Map AvatarUpdate = new HashMap<>(); + AvatarUpdate.put("avatarUrl",uri.toString()); + + DatabaseReference driverInformations = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + driverInformations.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .updateChildren(AvatarUpdate) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + View navigationHeaderView = navigationView.getHeaderView(0); + final CircleImageView imageAvatar = (CircleImageView) navigationHeaderView.findViewById(R.id.image_avatar); + + DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + DatabaseReference uidRef = rootRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()); + ValueEventListener valueEventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + // String userEmail = dataSnapshot.child("userEmail").getValue(String.class); + // String userID = dataSnapshot.child("userID").getValue(String.class); + String userName = dataSnapshot.child("avatarUrl").getValue(String.class); + //String userUsername = dataSnapshot.child("userUsername").getValue(String.class); + //Log.d("TAG", userEmail + " / " + userID + " / " + userName + " / " + userUsername); + // txtName.setText(userName); + if (Common.currentUser.getAvatarUrl() != null && !TextUtils.isEmpty(Common.currentUser.getAvatarUrl())) { + + Picasso.with(context) + .load(userName) + .into(imageAvatar); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + }; + uidRef.addListenerForSingleValueEvent(valueEventListener); + + Toast.makeText(DriverHome.this, "Uploaded", Toast.LENGTH_SHORT).show(); + + } + else { + Toast.makeText(DriverHome.this, "Upload error", Toast.LENGTH_SHORT).show(); + } + + } + }); + + + } + }); + + } + }) + .addOnProgressListener(new OnProgressListener() { + @Override + public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { + double progress = (100.0* taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount()); + mDialog.setMessage("Uploaded"+progress+"%"); + + } + }); + + } + + } + + + } + + private void showDialogChangePwd() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(DriverHome.this); + alertDialog.setTitle("CHANGE PASSWORD"); + alertDialog.setMessage("Please fill all information"); + LayoutInflater inflater = this.getLayoutInflater(); + View layout_pwd = inflater.inflate(R.layout.layout_change_pwd,null); + final MaterialEditText edtPassword = (MaterialEditText)layout_pwd.findViewById(R.id.edtPassword); + final MaterialEditText edtNewPassword = (MaterialEditText)layout_pwd.findViewById(R.id.edtNewPassword); + final MaterialEditText edtRepeatPassword = (MaterialEditText)layout_pwd.findViewById(R.id.edtRepeatPassword); + + alertDialog.setView(layout_pwd); + + //Set Button + alertDialog.setPositiveButton("CHANGE PASSWORD", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + if (edtPassword.getText().toString().trim().length() == 0 || edtNewPassword.getText().toString().trim().length() == 0 || edtRepeatPassword.getText().toString().trim().length() == 0) + { + Toast.makeText(DriverHome.this, "Please enter all the fields !", Toast.LENGTH_SHORT).show(); + } + + + + else if (edtPassword.getText().toString().trim().length() > 0 && edtNewPassword.getText().toString().trim().length() > 0 && edtRepeatPassword.getText().toString().trim().length() > 0) + { + final android.app.AlertDialog waitingDialog = new SpotsDialog(DriverHome.this); + waitingDialog.show(); + if (edtNewPassword.getText().toString().equals(edtRepeatPassword.getText().toString())) { + String email = FirebaseAuth.getInstance().getCurrentUser().getEmail(); + + //Get auth credentials from the user for re-authentication. + //Example with only email + AuthCredential credential = EmailAuthProvider.getCredential(email, edtPassword.getText().toString()); + FirebaseAuth.getInstance().getCurrentUser() + .reauthenticate(credential) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + FirebaseAuth.getInstance().getCurrentUser() + .updatePassword(edtRepeatPassword.getText().toString()) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + //Update Driver information password column + Map password = new HashMap<>(); + + password.put("password", edtRepeatPassword.getText().toString()); + + DatabaseReference driverInformation = FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1); + + driverInformation.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .updateChildren(password) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) + Toast.makeText(DriverHome.this, "Password was changed !", Toast.LENGTH_SHORT).show(); + else + Toast.makeText(DriverHome.this, "Password was changed but not update to Driver Information", Toast.LENGTH_SHORT).show(); + waitingDialog.dismiss(); + } + }); + } else { + Toast.makeText(DriverHome.this, "Password should be atleast of 6 letters!", Toast.LENGTH_SHORT).show(); + waitingDialog.dismiss(); + } + } + }); + } else { + waitingDialog.dismiss(); + Toast.makeText(DriverHome.this, "Wrong old password", Toast.LENGTH_SHORT).show(); + } + } + }); + + } else { + waitingDialog.dismiss(); + Toast.makeText(DriverHome.this, "Password doesn't match", Toast.LENGTH_SHORT).show(); + } + } + + } + }); + alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + //Show Dialog + alertDialog.show(); + } + + private void signOut() { + FirebaseAuth.getInstance().signOut(); + Intent intent = new Intent(DriverHome.this,MainActivity.class); + startActivity(intent); + finish(); + + } + + @Override + public void onConnected(@Nullable Bundle bundle) { + displayLocation(); + startLocationUpdates(); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { + + } + + @Override + public void onLocationChanged(Location location) { + Common.mLastLocation = location; + displayLocation(); + } + + @Override + public void onMapReady(GoogleMap googleMap) { + try { + boolean isSuccess = googleMap.setMapStyle( + MapStyleOptions.loadRawResourceStyle(this, R.raw.uber_style_map) + ); + if (!isSuccess) + Log.e("ERROR","Map style load failed !!!"); + } + catch (Resources.NotFoundException ex) + { + ex.printStackTrace(); + } + + mMap = googleMap; + mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + mMap.setTrafficEnabled(false); + mMap.setIndoorEnabled(false); + mMap.setBuildingsEnabled(false); + mMap.getUiSettings().setZoomControlsEnabled(true); + + + + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverTracking.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverTracking.java new file mode 100644 index 0000000..4e0b2f3 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/DriverTracking.java @@ -0,0 +1,545 @@ +package com.softup.utkarsh.uber; + +import android.Manifest; +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.app.ProgressDialog; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.Color; +import android.location.Location; +import android.os.AsyncTask; +import android.os.Handler; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.ActivityCompat; +import android.support.v4.app.FragmentActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.animation.LinearInterpolator; +import android.widget.Button; +import android.widget.Toast; + +import com.firebase.geofire.GeoFire; +import com.firebase.geofire.GeoLocation; +import com.firebase.geofire.GeoQuery; +import com.firebase.geofire.GeoQueryEventListener; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.maps.CameraUpdate; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.Circle; +import com.google.android.gms.maps.model.CircleOptions; +import com.google.android.gms.maps.model.JointType; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; +import com.google.android.gms.maps.model.MapStyleOptions; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.gms.maps.model.PolylineOptions; +import com.google.android.gms.maps.model.SquareCap; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.FirebaseDatabase; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Helper.DirectionJSONParser; +import com.softup.utkarsh.uber.Model.FCMResponse; +import com.softup.utkarsh.uber.Model.Notification; +import com.softup.utkarsh.uber.Model.Sender; +import com.softup.utkarsh.uber.Model.Token; +import com.softup.utkarsh.uber.Remote.IFCMService; +import com.softup.utkarsh.uber.Remote.IGoogleAPI; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class DriverTracking extends FragmentActivity implements OnMapReadyCallback, + GoogleApiClient.OnConnectionFailedListener, + GoogleApiClient.ConnectionCallbacks, + LocationListener{ + + private GoogleMap mMap; + + double riderLat,riderLng; + + String customerId; + + + private static final int PLAY_SERVICE_RES_REQUEST = 7001; + + private LocationRequest mLocationRequest; + private GoogleApiClient mGoogleApiClient; + + + private static int UPDATE_INTERVAL = 5000; + private static int FATEST_INTERVAL = 3000; + private static int DISPLACEMENT = 10; + + private Circle riderMarker; + private Marker driverMarker; + private Polyline direction; + + IGoogleAPI mService; + IFCMService mFCMService; + + GeoFire geoFire; + + Button btnStartTrip; + + Location pickupLocation; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_driver_tracking); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + + if (getIntent() != null) + { + riderLat = getIntent().getDoubleExtra("lat",-1.0); + + riderLng = getIntent().getDoubleExtra("lng",-1.0); + customerId = getIntent().getStringExtra("customerId"); + } + + mService = Common.getGoogleAPI(); + mFCMService = Common.getFCMService(); + + setUpLocation(); + + btnStartTrip = (Button)findViewById(R.id.btnStartTrip); + btnStartTrip.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (btnStartTrip.getText().equals("START TRIP")) + { + pickupLocation=Common.mLastLocation; + btnStartTrip.setText("DROP OFF HERE"); + } + else if (btnStartTrip.getText().equals("DROP OFF HERE")) + { + calculateCashFee(pickupLocation,Common.mLastLocation); + } + } + }); + } + + private void calculateCashFee(final Location pickupLocation, Location mLastLocation) { + + String requestApi = null; + try { + requestApi = "https://maps.googleapis.com/maps/api/directions/json?"+ + "mode=driving&"+ + "transit_routing_preference=less_driving&"+ + "origin="+pickupLocation.getLatitude()+","+pickupLocation.getLongitude()+"&"+ + "destination="+mLastLocation.getLatitude()+","+mLastLocation.getLongitude()+"&"+ + "key="+getResources().getString(R.string.google_direction_api); + + mService.getPath(requestApi) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + try { + //Extract JSON + //Root Object + JSONObject jsonObject = new JSONObject(response.body().toString()); + JSONArray routes = jsonObject.getJSONArray("routes"); + JSONObject object = routes.getJSONObject(0); + JSONArray legs = object.getJSONArray("legs"); + JSONObject legsObject = legs.getJSONObject(0); + + //Get Distance + JSONObject distance = legsObject.getJSONObject("distance"); + String distance_text = distance.getString("text"); + Double distance_value = Double.parseDouble(distance_text.replaceAll("[^0-9\\\\.]+","")); + + //Get Distance + JSONObject timeObject = legsObject.getJSONObject("duration"); + String time_text = timeObject.getString("text"); + Double time_value = Double.parseDouble(time_text.replaceAll("[^0-9\\\\.]+","")); + + sendDropOffNotification(customerId); + + //Now we need write function calculate fee base on barefee and distance + time + Intent intent = new Intent(DriverTracking.this,TripDetail.class); + intent.putExtra("start_address",legsObject.getString("start_address")); + intent.putExtra("end_address",legsObject.getString("end_address")); + intent.putExtra("time",String.valueOf(time_value)); + intent.putExtra("distance",String.valueOf(distance_value)); + intent.putExtra("total",Common.formulaPrice(distance_value,time_value)); + intent.putExtra("location_start",String.format("%f,%f",pickupLocation.getLatitude(),pickupLocation.getLongitude())); + intent.putExtra("location_end",String.format("%f,%f",Common.mLastLocation.getLatitude(),Common.mLastLocation.getLongitude())); + startActivity(intent); + finish(); + + + + + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(DriverTracking.this, ""+t.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + + }catch (Exception e) + { + e.printStackTrace(); + } + + + } + + private void setUpLocation() { + + if (checkPlayServices()) + { + buildGoogleApiClient(); + createLocationRequest(); + + + displayLocation(); + + } + } + + @SuppressLint("RestrictedApi") + private void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + private void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + mGoogleApiClient.connect(); + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) + { + if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)) + GooglePlayServicesUtil.getErrorDialog(resultCode,this,PLAY_SERVICE_RES_REQUEST).show(); + else { + Toast.makeText(this, "This device is not supported", Toast.LENGTH_SHORT).show(); + finish(); + } + return false; + } + return true; + } + + + @Override + public void onMapReady(GoogleMap googleMap) { + try { + boolean isSuccess = googleMap.setMapStyle( + MapStyleOptions.loadRawResourceStyle(this, R.raw.uber_style_map) + ); + if (!isSuccess) + Log.e("ERROR","Map style load failed !!!"); + } + catch (Resources.NotFoundException ex) + { + ex.printStackTrace(); + } + mMap = googleMap; + + riderMarker = mMap.addCircle(new CircleOptions() + .center(new LatLng(riderLat,riderLng)) + .radius(50) //50=> radius is 50m + .strokeColor(Color.BLUE) + .fillColor(0x220000FF) + .strokeWidth(5.0f)); + + //Create Goe fencing with raduis is 50m + geoFire=new GeoFire(FirebaseDatabase.getInstance().getReference(Common.driver_tb1)); + GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(riderLat,riderLng), 0.05f); + geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() { + @Override + public void onKeyEntered(String key, GeoLocation location) { + //Because here we will need customer Id (rider id) to send notification + //so, we will pass it from previous activity (customercall) + sendArrivedNotification(customerId); + btnStartTrip.setEnabled(true); + + } + + @Override + public void onKeyExited(String key) { + + } + + @Override + public void onKeyMoved(String key, GeoLocation location) { + + } + + @Override + public void onGeoQueryReady() { + + } + + @Override + public void onGeoQueryError(DatabaseError error) { + + } + }); + + + + + } + + private void sendArrivedNotification(String customerId) { + Token token = new Token(customerId); + Notification notification = new Notification("Arrived",String.format("The driver %s has arrived at your location",Common.currentUser.getName())); + Sender sender = new Sender(token.getToken(),notification); + + mFCMService.sendMessage(sender).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.body().success!=1) + { + Toast.makeText(DriverTracking.this, "Failed", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + private void sendDropOffNotification(String customerId) { + Token token = new Token(customerId); + Notification notification = new Notification("DropOff",customerId); + Sender sender = new Sender(token.getToken(),notification); + + mFCMService.sendMessage(sender).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.body().success!=1) + { + Toast.makeText(DriverTracking.this, "Failed", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + + private void displayLocation() { + if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + return; + } + Common.mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + if(Common.mLastLocation != null) + { + + final double latitude = Common.mLastLocation.getLatitude(); + final double longitude = Common.mLastLocation.getLongitude(); + + if (driverMarker !=null) + driverMarker.remove(); + driverMarker = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude,longitude)) + .title("You") + .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))); + + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,longitude),17.0f)); + + if (direction!=null) + direction.remove(); //remove old direction + getDirection(); + + + + + + } + else + { + Log.d("Error","Cannot get your location"); + } + } + + private void getDirection() { + LatLng currentPosition = new LatLng(Common.mLastLocation.getLatitude(),Common.mLastLocation.getLongitude()); + + String requestApi = null; + try { + requestApi = "https://maps.googleapis.com/maps/api/directions/json?"+ + "mode=driving&"+ + "transit_routing_preference=less_driving&"+ + "origin="+currentPosition.latitude+","+currentPosition.longitude+"&"+ + "destination="+riderLat+","+riderLng+"&"+ + "key="+getResources().getString(R.string.google_direction_api); + Log.d("UBER",requestApi); //Print URL for debug + mService.getPath(requestApi) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + try { + + new ParserTask().execute(response.body().toString()); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(DriverTracking.this, ""+t.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + + }catch (Exception e) + { + e.printStackTrace(); + } + + } + + private void startLocationUpdates() { + if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) + { + return; + } + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest,this); + } + + @Override + public void onConnected(@Nullable Bundle bundle) { + displayLocation(); + startLocationUpdates(); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { + + } + + @Override + public void onLocationChanged(Location location) { + + Common.mLastLocation = location; + displayLocation(); + + } + + private class ParserTask extends AsyncTask>>> + { + ProgressDialog mDialog = new ProgressDialog(DriverTracking.this); + + @Override + protected void onPreExecute() { + super.onPreExecute(); + mDialog.setMessage("Please wait..."); + mDialog.show(); + } + + @Override + protected List>> doInBackground(String... strings) { + JSONObject jObject; + List>> routes = null; + try { + jObject = new JSONObject(strings[0]); + DirectionJSONParser parser = new DirectionJSONParser(); + routes = parser.parse(jObject); + } catch (JSONException e) { + e.printStackTrace(); + } + return routes; + } + + @Override + protected void onPostExecute(List>> lists) { + mDialog.dismiss(); + + ArrayList points=null; + PolylineOptions polylineOptions = null; + + for (int i=0;i> path = lists.get(i); + + for (int j=0;j point = path.get(j); + + double lat=Double.parseDouble(point.get("lat")); + + double lng=Double.parseDouble(point.get("lng")); + LatLng positon = new LatLng(lat,lng); + + points.add(positon); + } + + polylineOptions.addAll(points); + polylineOptions.width(10); + polylineOptions.color(Color.RED); + polylineOptions.geodesic(true); + } + + direction = mMap.addPolyline(polylineOptions); + + } + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Helper/DirectionJSONParser.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Helper/DirectionJSONParser.java new file mode 100644 index 0000000..07ebb0e --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Helper/DirectionJSONParser.java @@ -0,0 +1,98 @@ +package com.softup.utkarsh.uber.Helper; + +import com.google.android.gms.maps.model.LatLng; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class DirectionJSONParser { + /** Receives a JSONObject and returns a list of lists containing latitude and longitude */ + public List>> parse(JSONObject jObject){ + + List>> routes = new ArrayList>>(); + JSONArray jRoutes = null; + JSONArray jLegs = null; + JSONArray jSteps = null; + + try { + + jRoutes = jObject.getJSONArray("routes"); + + /** Traversing all routes */ + for(int i=0;i>(); + + /** Traversing all legs */ + for(int j=0;j hm = new HashMap(); + hm.put("lat", Double.toString(((LatLng)list.get(l)).latitude) ); + hm.put("lng", Double.toString(((LatLng)list.get(l)).longitude) ); + path.add(hm); + } + } + routes.add(path); + } + } + + } catch (JSONException e) { + e.printStackTrace(); + }catch (Exception e){ + } + + return routes; + } + + /** + * Method to decode polyline points + * Courtesy : jeffreysambells.com/2010/05/27/decoding-polylines-from-google-maps-direction-api-with-java + * */ + private List decodePoly(String encoded) { + + List poly = new ArrayList(); + int index = 0, len = encoded.length(); + int lat = 0, lng = 0; + + while (index < len) { + int b, shift = 0, result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lat += dlat; + + shift = 0; + result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lng += dlng; + + LatLng p = new LatLng((((double) lat / 1E5)), + (((double) lng / 1E5))); + poly.add(p); + } + + return poly; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/MainActivity.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/MainActivity.java new file mode 100644 index 0000000..cc95aff --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/MainActivity.java @@ -0,0 +1,355 @@ +package com.softup.utkarsh.uber; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.rengwuxian.materialedittext.MaterialEditText; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Model.User; + +import dmax.dialog.SpotsDialog; +import uk.co.chrisjenx.calligraphy.CalligraphyConfig; +import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; + +public class MainActivity extends AppCompatActivity{ + + Button btnSignIn,btnRegister; + RelativeLayout rootLayout; + FirebaseAuth auth; + FirebaseDatabase db; + DatabaseReference users; + TextView txt_forgot_pwd; + + @Override + protected void attachBaseContext(Context newBase) { + super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); + } + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + //Before setContentView + CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() + .setDefaultFontPath("fonts/Arkhip_font.ttf") + .setFontAttrId(R.attr.fontPath) + .build()); + setContentView(R.layout.activity_main); + + //Init FireBase + auth = FirebaseAuth.getInstance(); + db= FirebaseDatabase.getInstance(); + users= db.getReference(Common.user_driver_tb1); + + + + //Init View + btnRegister = (Button)findViewById(R.id.btnRegister); + btnSignIn = (Button)findViewById(R.id.btnSignIn); + rootLayout = (RelativeLayout)findViewById(R.id.rootLayout); + txt_forgot_pwd = (TextView)findViewById(R.id.txt_forgot_password); + txt_forgot_pwd.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + showDialogForgotPwd(); + return false; + } + }); + + //Event + btnRegister.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showRegisterDialog(); + } + }); + + btnSignIn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showLoginDialog(); + } + }); + + } + + private void showDialogForgotPwd() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this); + alertDialog.setTitle("FORGOT PASSWORD"); + alertDialog.setMessage("Please enter your email address"); + + LayoutInflater inflater = LayoutInflater.from(MainActivity.this); + View forgot_pwd_layout = inflater.inflate(R.layout.layout_forgot_pwd,null); + final MaterialEditText edtEmail = (MaterialEditText)forgot_pwd_layout.findViewById(R.id.edtEmail); + alertDialog.setView(forgot_pwd_layout); + + //Set Button + alertDialog.setPositiveButton("RESET", new DialogInterface.OnClickListener() { + @Override + public void onClick(final DialogInterface dialogInterface, int i) { + final SpotsDialog waitingDialog = new SpotsDialog(MainActivity.this); + waitingDialog.show(); + + auth.sendPasswordResetEmail(edtEmail.getText().toString().trim()) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + dialogInterface.dismiss(); + waitingDialog.dismiss(); + + Snackbar.make(rootLayout,"Reset password link has been sent",Snackbar.LENGTH_LONG) + .show(); + + } + }).addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + dialogInterface.dismiss(); + waitingDialog.dismiss(); + + Snackbar.make(rootLayout,""+e.getMessage(),Snackbar.LENGTH_LONG) + .show(); + + + } + }); + } + }); + + alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + alertDialog.show(); + } + + private void showLoginDialog() { + final AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle("SIGN IN"); + dialog.setMessage("Please use email to sign in"); + + LayoutInflater inflater = LayoutInflater.from(this); + View login_layout = inflater.inflate(R.layout.layout_login,null); + + final MaterialEditText edtEmail = login_layout.findViewById(R.id.edtEmail); + final MaterialEditText edtPassword = login_layout.findViewById(R.id.edtPassword); + + + dialog.setView(login_layout); + + //Set button + + dialog.setPositiveButton("SIGN IN", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + + dialogInterface.dismiss(); + + //Set disable button Sign In if is processing + btnSignIn.setEnabled(false); + + + //Check validation + if (TextUtils.isEmpty(edtEmail.getText().toString())) { + Snackbar.make(rootLayout, "Please enter email address", Snackbar.LENGTH_SHORT).show(); + return; + } + + + if (edtPassword.getText().toString().length() < 6) { + Snackbar.make(rootLayout, "Password must be greater than 6 letter!!!", Snackbar.LENGTH_SHORT).show(); + return; + } + + final SpotsDialog waitingDialog = new SpotsDialog(MainActivity.this); + waitingDialog.show(); + + + //Login + auth.signInWithEmailAndPassword(edtEmail.getText().toString(),edtPassword.getText().toString()) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(AuthResult authResult) { + waitingDialog.dismiss(); + FirebaseDatabase.getInstance().getReference(Common.user_driver_tb1) + .child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + Common.currentUser = dataSnapshot.getValue(User.class); + startActivity(new Intent(MainActivity.this,DriverHome.class)); + finish(); + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + + + + + + } + }).addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + waitingDialog.dismiss(); + Snackbar.make(rootLayout,"Failed"+e.getMessage(),Snackbar.LENGTH_SHORT).show(); + + //Active button + btnSignIn.setEnabled(true); + } + }); + + + } + }); + + dialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + + + + + + + + + dialog.show(); + + } + + private void showRegisterDialog() + { + final AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle("REGISTER"); + dialog.setMessage("Please use email to register"); + + LayoutInflater inflater = LayoutInflater.from(this); + View register_layout = inflater.inflate(R.layout.layout_register,null); + + final MaterialEditText edtEmail = register_layout.findViewById(R.id.edtEmail); + final MaterialEditText edtPassword = register_layout.findViewById(R.id.edtPassword); + final MaterialEditText edtName = register_layout.findViewById(R.id.edtName); + final MaterialEditText edtPhone = register_layout.findViewById(R.id.edtPhone); + + dialog.setView(register_layout); + + //Set button + + dialog.setPositiveButton("REGISTER", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + + dialogInterface.dismiss(); + + //Check validation + if (TextUtils.isEmpty(edtEmail.getText().toString())) + { + Snackbar.make(rootLayout,"Please enter email address",Snackbar.LENGTH_SHORT).show(); + return; + } + + if (TextUtils.isEmpty(edtPhone.getText().toString())) + { + Snackbar.make(rootLayout,"Please enter phone number",Snackbar.LENGTH_SHORT).show(); + return; + } + + if (edtPassword.getText().toString().length() < 6) + { + Snackbar.make(rootLayout,"Password must be greater than 6 letter!!!",Snackbar.LENGTH_SHORT).show(); + return; + } + + //Register new user + auth.createUserWithEmailAndPassword(edtEmail.getText().toString(),edtPassword.getText().toString()) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(AuthResult authResult) { + //Save user to db + User user = new User(); + user.setEmail(edtEmail.getText().toString()); + user.setName(edtName.getText().toString()); + user.setPhone(edtPhone.getText().toString()); + user.setPassword(edtPassword.getText().toString()); + user.setAvatarUrl("https://firebasestorage.googleapis.com/v0/b/uber-798e0.appspot.com/o/add_image.png?alt=media&token=4433425f-b9dd-47f1-9364-a70679cefb7a"); + user.setRates("0.0"); + + //Use email to key + users.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .setValue(user) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(Void aVoid) { + Snackbar.make(rootLayout,"Register success fully!!!",Snackbar.LENGTH_SHORT).show(); + + } + }) + .addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + Snackbar.make(rootLayout,"Failed"+e.getMessage(),Snackbar.LENGTH_SHORT).show(); + + } + }); + + } + }) + .addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + Snackbar.make(rootLayout,"Failed"+e.getMessage(),Snackbar.LENGTH_SHORT).show(); + } + }); + + + + + } + }); + + dialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + + dialog.show(); + + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/FCMResponse.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/FCMResponse.java new file mode 100644 index 0000000..a39ff33 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/FCMResponse.java @@ -0,0 +1,64 @@ +package com.softup.utkarsh.uber.Model; + +import java.util.List; + +public class FCMResponse { + + public long multicast_id; + public int success; + public int failure; + public int canonical_ids; + public List results; + + public FCMResponse() { + } + + public FCMResponse(long multicast_id, int success, int failure, int canonical_ids, List results) { + + this.multicast_id = multicast_id; + this.success = success; + this.failure = failure; + this.canonical_ids = canonical_ids; + this.results = results; + } + + public long getMulticast_id() { + return multicast_id; + } + + public void setMulticast_id(long multicast_id) { + this.multicast_id = multicast_id; + } + + public int getSuccess() { + return success; + } + + public void setSuccess(int success) { + this.success = success; + } + + public int getFailure() { + return failure; + } + + public void setFailure(int failure) { + this.failure = failure; + } + + public int getCanonical_ids() { + return canonical_ids; + } + + public void setCanonical_ids(int canonical_ids) { + this.canonical_ids = canonical_ids; + } + + public List getResults() { + return results; + } + + public void setResults(List results) { + this.results = results; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Notification.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Notification.java new file mode 100644 index 0000000..bf96688 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Notification.java @@ -0,0 +1,11 @@ +package com.softup.utkarsh.uber.Model; + +public class Notification { + public String title; + public String body; + + public Notification(String title, String body) { + this.title = title; + this.body = body; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Result.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Result.java new file mode 100644 index 0000000..b79a767 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Result.java @@ -0,0 +1,20 @@ +package com.softup.utkarsh.uber.Model; + +public class Result { + public String message_id; + + public Result() { + } + + public Result(String message_id) { + this.message_id = message_id; + } + + public String getMessage_id() { + return message_id; + } + + public void setMessage_id(String message_id) { + this.message_id = message_id; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Sender.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Sender.java new file mode 100644 index 0000000..be888f2 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Sender.java @@ -0,0 +1,30 @@ +package com.softup.utkarsh.uber.Model; + +public class Sender { + public String to; + public Notification notification; + + public Sender(String to, Notification notification) { + this.to = to; + this.notification = notification; + } + + public Sender() { + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public Notification getNotification() { + return notification; + } + + public void setNotification(Notification notification) { + this.notification = notification; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Token.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Token.java new file mode 100644 index 0000000..05510da --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/Token.java @@ -0,0 +1,20 @@ +package com.softup.utkarsh.uber.Model; + +public class Token { + private String token; + + public Token() { + } + + public Token(String token) { + this.token = token; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/User.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/User.java new file mode 100644 index 0000000..fda2750 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Model/User.java @@ -0,0 +1,68 @@ +package com.softup.utkarsh.uber.Model; + +public class User { + private String email,password,name,phone,avatarUrl,rates; + + public User() { + + } + + public User(String email, String password, String name, String phone,String avatarUrl,String rates) { + this.email = email; + this.password = password; + this.name = name; + this.phone = phone; + this.avatarUrl = avatarUrl; + this.rates = rates; + + + } + + public String getRates() { + return rates; + } + + public void setRates(String rates) { + this.rates = rates; + } + + public String getAvatarUrl() { + return avatarUrl; + } + + public void setAvatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/FCMClient.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/FCMClient.java new file mode 100644 index 0000000..3945d06 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/FCMClient.java @@ -0,0 +1,21 @@ +package com.softup.utkarsh.uber.Remote; + +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; + +public class FCMClient { + private static Retrofit retrofit =null; + + public static Retrofit getClient(String baseURL) + { + if(retrofit == null) + { + retrofit = new Retrofit.Builder() + .baseUrl(baseURL) + .addConverterFactory(GsonConverterFactory.create()) + .build(); + } + return retrofit; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IFCMService.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IFCMService.java new file mode 100644 index 0000000..0c4eaee --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IFCMService.java @@ -0,0 +1,18 @@ +package com.softup.utkarsh.uber.Remote; + +import com.softup.utkarsh.uber.Model.FCMResponse; +import com.softup.utkarsh.uber.Model.Sender; + +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.Headers; +import retrofit2.http.POST; + +public interface IFCMService { + @Headers({ + "Content-Type:application/json", + "Authorization:key=AAAABQj5y1g:APA91bHgHSVtQPQPXfeLVgjQZ9XiTPPykaiTn1BqICyCznRa5H8ZKrQsYMdQIUa1F_VQQDR4iYLPdcM7BPNWm5DsktAAEoo0FobgcLFVeizQxh-x9VcQ04xMI-bziJJ8CI0BUQMg9oX1" + }) + @POST("fcm/send") + Call sendMessage(@Body Sender body); +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IGoogleAPI.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IGoogleAPI.java new file mode 100644 index 0000000..9582291 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/IGoogleAPI.java @@ -0,0 +1,10 @@ +package com.softup.utkarsh.uber.Remote; + +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Url; + +public interface IGoogleAPI { + @GET + Call getPath(@Url String url); +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/RetrofitClient.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/RetrofitClient.java new file mode 100644 index 0000000..f6f5e57 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Remote/RetrofitClient.java @@ -0,0 +1,20 @@ +package com.softup.utkarsh.uber.Remote; + +import retrofit2.Retrofit; +import retrofit2.converter.scalars.ScalarsConverterFactory; + +public class RetrofitClient { + private static Retrofit retrofit =null; + + public static Retrofit getClient(String baseURL) + { + if(retrofit == null) + { + retrofit = new Retrofit.Builder() + .baseUrl(baseURL) + .addConverterFactory(ScalarsConverterFactory.create()) + .build(); + } + return retrofit; + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseIdService.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseIdService.java new file mode 100644 index 0000000..ac082b6 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseIdService.java @@ -0,0 +1,30 @@ +package com.softup.utkarsh.uber.Service; + +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.iid.FirebaseInstanceIdService; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Model.Token; + +public class MyFirebaseIdService extends FirebaseInstanceIdService { + + @Override + public void onTokenRefresh() { + super.onTokenRefresh(); + String refreshedToken = FirebaseInstanceId.getInstance().getToken(); + updateTokenToServer(refreshedToken); //When have refreshed token, we need to update to our Realtime database + + } + + private void updateTokenToServer(String refreshedToken) { + FirebaseDatabase db = FirebaseDatabase.getInstance(); + DatabaseReference tokens = db.getReference(Common.token_tb1); + + Token token = new Token(refreshedToken); + if (FirebaseAuth.getInstance().getCurrentUser() != null) //if already login , must update Token + tokens.child(FirebaseAuth.getInstance().getCurrentUser().getUid()) + .setValue(token); + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseMessaging.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseMessaging.java new file mode 100644 index 0000000..6e43954 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/Service/MyFirebaseMessaging.java @@ -0,0 +1,27 @@ +package com.softup.utkarsh.uber.Service; + +import android.content.Intent; + +import com.google.android.gms.maps.model.LatLng; +import com.google.firebase.messaging.FirebaseMessagingService; +import com.google.firebase.messaging.RemoteMessage; +import com.google.gson.Gson; +import com.softup.utkarsh.uber.CustommerCall; + +public class MyFirebaseMessaging extends FirebaseMessagingService { + + @Override + public void onMessageReceived(RemoteMessage remoteMessage) { + + LatLng customer_location = new Gson().fromJson(remoteMessage.getNotification().getBody(),LatLng.class); + + Intent intent = new Intent(getBaseContext(), CustommerCall.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("lat",customer_location.latitude); + intent.putExtra("lng",customer_location.longitude); + intent.putExtra("customer",remoteMessage.getNotification().getTitle()); + + startActivity(intent); + + } +} diff --git a/Complete code/app/src/main/java/com/softup/utkarsh/uber/TripDetail.java b/Complete code/app/src/main/java/com/softup/utkarsh/uber/TripDetail.java new file mode 100644 index 0000000..ccc3ae3 --- /dev/null +++ b/Complete code/app/src/main/java/com/softup/utkarsh/uber/TripDetail.java @@ -0,0 +1,120 @@ +package com.softup.utkarsh.uber; + +import android.content.Intent; +import android.support.v4.app.FragmentActivity; +import android.os.Bundle; +import android.widget.TextView; + +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.softup.utkarsh.uber.Common.Common; +import com.softup.utkarsh.uber.Model.User; + +import java.util.Calendar; + +public class TripDetail extends FragmentActivity implements OnMapReadyCallback { + + private GoogleMap mMap; + + private TextView txtDate,txtFee,txtBaseFare,txtTime,txtDistance,txtEstimatedPayout,txtFrom,txtTo; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_trip_detail); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + + //InitView + txtBaseFare = (TextView)findViewById(R.id.txtBaseFare); + txtDate = (TextView)findViewById(R.id.txtDate); + txtFee = (TextView)findViewById(R.id.txtFee); + txtTime = (TextView)findViewById(R.id.txtTime); + txtDistance = (TextView)findViewById(R.id.txtDistance); + txtEstimatedPayout = (TextView)findViewById(R.id.txtEstimatedPayout); + txtFrom = (TextView)findViewById(R.id.txtFrom); + txtTo = (TextView)findViewById(R.id.txtTo); + } + + + /** + * Manipulates the map once available. + * This callback is triggered when the map is ready to be used. + * This is where we can add markers or lines, add listeners or move the camera. In this case, + * we just add a marker near Sydney, Australia. + * If Google Play services is not installed on the device, the user will be prompted to install + * it inside the SupportMapFragment. This method will only be triggered once the user has + * installed Google Play services and returned to the app. + */ + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + + settingInformation(); + + } + + private void settingInformation() { + if(getIntent() != null) + { + //Set Text + Calendar calendar = Calendar.getInstance(); + String date = String.format("%s, %d/%d",convertToDayOfWeek(calendar.get(Calendar.DAY_OF_WEEK)),calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.MONTH)+1); + txtDate.setText(date); + txtFee.setText(String.format("$ %.2f",getIntent().getDoubleExtra("total",0.0))); + txtEstimatedPayout.setText(String.format("$ %.2f",getIntent().getDoubleExtra("total",0.0))); + txtBaseFare.setText(String.format("$ %.2f", Common.base_fare)); + txtTime.setText(String.format("%s min",getIntent().getStringExtra("time"))); + txtDistance.setText(String.format("%s km",getIntent().getStringExtra("distance"))); + txtFrom.setText(getIntent().getStringExtra("start_address")); + txtTo.setText(getIntent().getStringExtra("end_address")); + + //Add Marker + String[] location_end = getIntent().getStringExtra("location_end").split(","); + LatLng dropoff = new LatLng (Double.parseDouble(location_end[0]),Double.parseDouble(location_end[1])); + mMap.addMarker(new MarkerOptions().position(dropoff) + .title("Drop off Here") + .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))); + + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(dropoff,12.0f)); + + } + } + + private String convertToDayOfWeek(int day) { + switch (day) + { + case Calendar.SUNDAY: + return "SUNDAY"; + case Calendar.MONDAY: + return "MONDAY"; + case Calendar.TUESDAY: + return "TUESDAY"; + case Calendar.WEDNESDAY: + return "WEDNESDAY"; + case Calendar.THURSDAY: + return "THURSDAY"; + case Calendar.FRIDAY: + return "FRIDAY"; + case Calendar.SATURDAY: + return "SATURDAY"; + default: + return "UNK"; + } + } + + +} diff --git a/Complete code/app/src/main/res/drawable-hdpi/ic_location_off.png b/Complete code/app/src/main/res/drawable-hdpi/ic_location_off.png new file mode 100644 index 0000000000000000000000000000000000000000..de70312d8f9ab78bf83cd7ef8a3b8d01ef6dac34 GIT binary patch literal 807 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 JPDHLkV1jMD>6rik literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable-mdpi/ic_location_on.png b/Complete code/app/src/main/res/drawable-mdpi/ic_location_on.png new file mode 100644 index 0000000000000000000000000000000000000000..346cfa7f3274730c8eeff8373373ac44c5015bb4 GIT binary patch literal 484 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 Hu0mjfRY~Pz literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_camera.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..0d9ea10 --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_gallery.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..f6872c4 --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_manage.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..c1be60b --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_send.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_send.xml new file mode 100644 index 0000000..00c668c --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_share.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..a28fb9e --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable-v21/ic_menu_slideshow.xml b/Complete code/app/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..209aa64 --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Complete code/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/Complete code/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/Complete code/app/src/main/res/drawable-xhdpi/ic_location_off.png b/Complete code/app/src/main/res/drawable-xhdpi/ic_location_off.png new file mode 100644 index 0000000000000000000000000000000000000000..77857f14f45784fcf888851ef31b398aad13285f GIT binary patch literal 918 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 wF8}}l07*qoM6N<$f;rm^O#lD@ literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable-xxhdpi/ic_location_on.png b/Complete code/app/src/main/res/drawable-xxhdpi/ic_location_on.png new file mode 100644 index 0000000000000000000000000000000000000000..34b56d30386cbffbd33f8ea5e1b87130b059f2b3 GIT binary patch literal 1461 zcmV;m1xosfP)v4Vryv=YDyEu_+1dCe#Ngl zRQ}t}FCCK21?6sccJIx*`6ZLxpjmcj-kX{Cn|TlC3M?dj#Wu){udUj=CU|>Jpe+t2Uu~FMb$&AbCw)>Z{) z!DAKK5RKBWg{k6+gdg4kBS_8yF7$h!{T!2=_MkFS&c->xSun1_0OzG#4`oxIrF|cc z2~vUitOnw3LE>Y{mCZ`M7qTOv88Gj49O&-u-i{_I3Exj6cUZ6ldPv9sx3~k(U*2D$ z;zb6i!gWZ!7q1ys1q^V<>jfDqNfNz1;E+(b7aSN^usstn0NNmTdTW3}q3{8{;3EkG z&~rLHG{B1224MbwIbaub+w1xOuRw1|1Yx=k2&Tprp@rd+RRK~N@PO#J)Sr%#d*O%9B-7GX(T3Kl!8T-uE^2z z{?t?v8_%d?t%~djDJrv^omesB9^4TKJjqdCC*No?z+U01*hYn#D%=7~HH#W_OrByj zt;PWG!M<$35X#0bIc?2Z90b<_kuj$YOn^Ptu6(#Sbon`jKyT>p0l1$Tr?pL;UjCqV z15_%NubftJFkVt@fE!NxCJh9zj8nwSQe9eGj5zJ!I`OhX1N?&~0~Z2lh5DUB0~~gt zfQ$9_6=golUe|sTx}xv37yva57aF)}Yem86Ujn7>LIfB^pEDwC#Guh%a-o8|m9P3t zx;3*8LF+8&l{}72a{E&hMF(8y;6nKy9;ThY_}=p)29y>(V@jW@+zXu26;1gNkW+SE zs1C^JBfaf`@4prd<&coBuC;LVSFx$kwJQ+xX!`%yLIa$3?S6Mk8g8s^a5)3lGw<~#YoCA?bBXP)@%_D&?(Q&n;8H*^@HzhXccfA4vp@&{UL}e#`9zhF6cjc!(mFDrlEZJqJ!}RnD~IF zF4Ihoz(ITnxL{8u5BM`Q4r~IP;KNj{xY7!6Cz~nXU@#aA27|$1Xb%4Yw!~X9W^`FU P00000NkvXXu0mjf{Zz1_ literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable/add_image.png b/Complete code/app/src/main/res/drawable/add_image.png new file mode 100644 index 0000000000000000000000000000000000000000..bda43673e61476b0fe4fe0816418bb325a09a242 GIT binary patch literal 2713 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 Ts?}h>kvJUBFNk}}Hzxg0J8@^U literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable/background.jpg b/Complete code/app/src/main/res/drawable/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f6d0de4b8cad234fdff0b8f6c7535ef8787f07d GIT binary patch literal 266500 zcmeFZbyOVPw&>e<@Zjzq92#ic-92dV&@|Gx2Mg}*?jGDNxCM6zt_cL!ggn0e&ffdn zbI*BWzjN>XXU@HJXUj7Z>72u!p`#S(j z%GDg=34j5>zZ6>l0Kd24*sWb$paSgd_Regk77k{XY~~Jj>>j32c1|`9c7Twm2h`LY zV(CI@X89g$FHHTTqlcOjY#~go%cIPp43)IB2FrOlS!#NzXqkIK%=s;-MMWruJOn)K zpmvrnrj#Cbw)V~f9>UarGcNG5{Z}zNHRa!$xIl!d#sBJ+@~yHOrKE$CB_$6V534x` z7bhhjKN}|x4<8>F3ndo^Cyg;LnV(P(a?@aS|3sRQO=1yR!3)sP) z@-K^~W)7|{!qhLG{=Y-8gZ{(pf6D6LHB?sq|88n$_ZNV_nRRy2u>7aL|EXbTEl;Q= zyN0E+gR7IdJJ_;NswH?Es~el>8etN=9976K9+9Fn|zTtEpBFOZW{nvY+ak5dxJBO}Gb zAuh!y#r1bxDF<^`J4<_)zw283QZ|2Av^@PF+K z*MDj6-*hehYhSqkOI`LCXW0Kbxc}~8|GnrXg8th4N9exn{3G}+?O!6^=_Ry(p8+ub z7O((|-j`Dd=Jy)lBLL=K7ubIa+&|>s)L~&@UTR-{|ETy^H-7g5uwEhg!-L>pumG@F zFmPBfzXt$gFXuT7Jlu=*f6M_$@Cb;nVBwHqP*7h=|El_D9RLOn9u@%+>GjJ7EId3M zJQDmXI0SeYJQx5h92PtkHUc82I1ZA!DYYXP?yG?K{22)inz}wbQ3mox@ zabk0cn>xbd2IQZ|Q*+n#&1`ER(BNG-Ntgj83uu3@0?^=IyugCP0*C^BGPBPR!T*sz z1pW~CL*NgAKLq{|_(R|ifj;17X61pW~CL*NgAKLq{|_(R|i zfj5P!yRw+?+B~}vzw{-1Y+hp6P6t_22Z*+=o7_U>esgRltGC4WkuH%lQK%l zVN%kY%p4813VTm^iSo96I+T(@~rm5%r%sO%Sx@ANPq4=YuI17s5$7Hk(AV+naTYf z1f%n`9B%??=Y16^bBKmbHfI$D`Kjrbyd8A$Ejh}$Wk=L>O&6Dmp+NrEuV4Gn`)BC* zXLvl&N?Qe0R*m^VF0Uw55eO#q4w8pfKVP2LH7{O{9X?f~L1||j?Qxw({W|JLs_8ZD zx^!Lox$943ZhJy&9STO1rduj$s3$N5IsoOr0d);OE!|(Bs@oX#eD#u~V13@0F9_sK z71)j=GQr*AuJ6><@qS{mEi=RN|*R(W3X3B zj?-7YZk&PF2VEb@$(y&e9(0bWL$L^3D10O1{z9=5t=QwS~h)Q|U8gL!ULDG~F7!R>I`u)+F zvsV_@Ky!L;FY(cO;$RZ{@khv!^=zjeLn?nR-HObqO_Qw~RTj&F%a303+6~%S+R4#3 z$L-?`3<>8&`JmjKKZRvz7B7zM)790WfQ{svIotKz}!q$gptWS2DNhi^SkXzrQ+^xN90 zj#Qj4wRRD(&u5kPQ<;@D-8DquRE>|l_zeh({N66o^a>+UWjbcM;MrDUtsSP}!ES}9=O5?|Wbb0@ zCgZ>xpT1@^Ug#gM@=R__T=FvJ2gi7iZzyQN=roWsi+<_5uf3Kg319n>P;K^#^(JSZ zs4!qp5iz)wKgRis+*cA$5Z!lA`WP!i06FvM-SgeE_1gX%#gI?Nxtp&6vcuXbl09e2 zs`1#`E$_L>C`K&$WFHXECt(9Qat}BR5K3Xs{*W6x>Pp!?*T`H(+c%}?3mIOXD@hAnF7fwZnGao}XXx?RgBk zdRk*N@ApRLzEu)kucd#l5mpIbu*en)zBorr&sLz|>ary|Hew95OAhZ$a@9Am9eeM~ zt<^b`hsFuiem|wcMW;+68G?vRhM_Y=tVa?o506cjwk@fO5Xhw>zxxH*!puI-gB9Ic zB#r~5dEuv##56fa>g+N;k~c{kJd9?|flGKUzL7$5PiE(iN*lZqDMn;Cx0`i9>q!}L zClfeHzFSTjx?K`ID}#zzeA-`}$vK%81H?Ty4sH2WMi{9WDekO@3`j}T*Chuz>Bh+Y zAD@8|n;Iu2q?skf0B`~Cuz0VZb6mWz$T(#TOiKb}tw15Ik4V_e;<0B^4J4>k)9yX_vgH@%sno?*R-X8R`BInI;4kd%Tgald*nikc>AKuI6V$`Gz!HOV^xtt#*o zLOHWvaU0+4NVUgbST$}alZ8{1atSRvkl_m4LR6ArK8AXiPdaD~5;E2w>(j1&jQ8#p zkU>GTDr1Aq@~r4u>d11O!M}=dUMvr*o*^FdSR4&JT>wKg@9C#otl`VbItZ{W*c>}u5&*)D!dh22k{N$eAv=NXTuclpow@4`5>EPD>#E6Li6`z4sot4@Bs(JTFrhqk+hg zEXNEhd_SkBt&$x?0VixrTs1y!`ATQ_vNX>C`0Ba?3PWh|{*%VXbG@s{hZ4|i$Z&@2 zDh2z~d)qHONZ?7!BdWz8!PVd>0HT>=Z5gy+s=@DJY9D#!N^VI|yvDg0i&x_+fN3O8yD3L4<-#1Tl!Wc6(kYj0ik!xNKS zHLTq?R*&a7u!_v2+;-HDDMCUAUt9PMvW##+f%GOqUJY{Ak5oy5&QO~UrIW$_qSftwe9#2z`i3KqnwRPTr`ZeDyo3QC`B z&v^YazdOo!Mum`+p!AeW`A!Lpa%mPx-Q>L5ZmZq&&1)B{UN21_;GJcZ1d4$b@U0LY zCQ0@v;w2sx)Fbh-9f3hQpP2_}5^El7d3zjQ8(0aCErMm?aM>_$Cp_n2QpdA(GFa{} zDps6rXeft!FR#iEzbjCX^SG}K9N@?B;Qa;=(B@z4YL|NHH~YfO%8j)%k4RZ%!THmA zBM%zIuDi%e^Lv(ce~oNc3o+Z-f%1P932ANg4Y032E2Ta&OO!(S>#K+Vwjim+&1;#y z!&_ik5F$%nJt4-lhGj~@(|K2Fo$*0(>q9}dliF|^ zm8;!CoKgP8XLX6?6Ld%V+%_f60ccg>*O;9CcTc#plbU@a!ljRxopdboz7t>ZXdeK6 zrV4uHeSJgvkLI)<8NWsqc_a_qV?C2ZkQI4UkxY01@d`Co$=jotW&g>nDcoH*m-V(^ zg%vUBIqUO%U5oZDj9M%$MW-_<9xTRYRiW2&(4bO$XzufZmogT+sy+KRkZ#zV`@ z-e4l=cAv!#)tvr_eQWC$T=GeR=%g?VK5m_pT-@AVE=2&f#-2Km<3i%|ES!z9I8X1k zw6V%4iDR8xqRW%qL3&PG1}D@`hO|u7X5`~xp*5myH5wOMk^eyyrvrdLZ>pO2gKbRG zi2f@of3EbdHi&-(GKtc(SqLu-5&+Q_GCrW0fR;nX!0gN720T=KzZ_Jzs+q-l1V@kZi-i zYW?#u2}#9{GY}@pRKXv?u~-dabuwcfA)B^pFhj%2wX24XT zIg{p(l<>!9y%K@{u+YMOsUUHBjh5rI6t!WnY%aq8j)qw5Hk6%Y{lms{;!m=bP4Z70 zkxzU)GoNY3mQPQe+HWiQupo2s9ii76KHP;j7p2r3!)OpyT(tCa zXKPSao-Srh7<+~$H6KSa%aFpkE7v|ce|R2lo_J-~j9tfBE%`9cZ@@zStL-p!Hb+9@ zK#8^Q-e=e9xy{0cyx-~N7=Xp(i;YoGI85x0sr9kZoo3c*!)<+?+{jqsVAYm=*0(|* zV(aUwXc&uSL_Dg|QAkSLs$iKlPoh#K*$!Q4T9yj?3x608e26T?P_e||Lrpu1_lXg z0#6R4oIVE%q4VQS&M8{?gy>=?I zD~u=UaK6cqseqrA9sC7aYQqa2a2#XeBIcnScx4tW{#{k}VoVcg%HTouOa^J8*&6%Y zBO1y?9!^Rx@OId)w(7_Yh)J&iG)BBUipk@6E&>~pg|p|CMMM{}K&H@5y)EVlce3U2 z;wgv?$NCd*V|aB5kr-)r4AZ5s3Yz^lh48t~>zC_re`vc<;)@fc zIyaWJ&=4a4!K<(yJ1YqS+f6z<**uuf zHTv?bMy2Ylk*cA697fx|VNV`#qSBsAte~a|R_FZuE}M0!&7N=A(H-%KF514K+W4!~ zisZ;^d8*|6CQqvM0NSnY6qZ;AOP1Yl_n|qtZgz=!Xhh;SL*$T=i~d;-W52dh*WZ8& z@Y~pvvoA+Cssd!6SWRd!KrpB07selMo|T)Fo+R)meF3a^KGBw9qyQw8#g8-6EB5V7 zz`XTI^5Keck2>@i-u>b?yQvqZlHyyHI5J=7E<=Eg{v^YIGh?lx?pJieqAI4aZC~(8 zOZ>NEJB&ZbajiiRQv#Br8hQHfJ`%ta?4zLqTiwQgvIRld;s2_Qb?2t636~8t~K3t7;FtQ*Xwj z=C#7CI*T8I8DDjR!Jv}2jJF83Ryl0085hy6CFN;G2K6#C( zDXFHcTY2i}qO`HgQ7CHb)v%Gv;;g4I6ldjZo}KPHOOeYV^hIqGZ>lxCTF*z1jjq}e zx5o6kIr&#b6kf#AXeCl)`9U`{fPl7WAN86 zh}c6rsP#k0Tjak1(2gfO!iu~4V}!R9P*=tskERH@4U7z~4PETxob`bL$slXw&v_Z_ zl55*7Y>cD6X2;J;dOc2Ro}Tev;^r22zBBhGs(|K$+tu%_1! zI!{gm%WQT13Rd3EWK0ip&H(}cSHA%`u|gcm-#XJzn!iB}>Q3t;S+--aiPDvt&{;-L zZz#%@-gkorByinUwPY7$fz!}2k)Xib#6-EDzS5Ud$`KMR`%&8 z(yf3OK4-8E#;kpNhp^FZo`$GD9UmD6@>E06Rn4lozx8Yorm*9(jj0TGgx{IKAjFhK zkTIyKH=}$RbykmkKLlM>lhfXwr5IC)hLo{lqw}Tw%G90MyW()4Kb9P~SMzgca<+(*t=>V?`1_1%Z{J38(_tPvVKR^7|Z z56%3X(eIVUiJW0dv3e=E^&O3TvNB|MPqsr-QWE9{OPOw?@Ymi~EVp}3U`FPN{Ra_$ z6l|ISi`{3ZnS8Hdvy&lDlvL{`9`~}1bO|jOb$KGye3T)a)(k(Co*rjuELkxa z_bX3X2A^v$>E5wf=rm7&LIreNb>~J60=*7Q*_oeRpKXD^=1iSeyH~%;iv(ezuV-{M zlx>IwT94~C##BkB4f-Ntnl3nKT}fSf_BUm$*uOP~VTD3`f@N1brdC+cM^>P9i|TUX z6GN7`K-|0?A>H`Qq(^~D_zGMM}u`34wyg83nfCL0lkFCHp z7B0>hLamEFc+1w)aoR*?mvNWyd0>7QZ6#H-8$k5wkWK9`rVzyFGp6 ze3^o^gkaF~i^cLwQ351Y=}x!LZya|XK?v(t6k3#^t-ucX9=CX3yeqh@Mg9=$-ic!> zNI-m)J$VaPo@b3i#0uv=+u!C}1t z!=YW507*8sWeyCJvN6v#FOf}nSqiMO7WYIOJ_3Rz6)sgr!K_13Y=an`h;wV>ZZy&Z zm%mn!dO8amo4su2_Z0%mkDPXj`rj#ZwY1c>w<;zBvxJBYkV_PcA&b$e^6fGEpKD#% zGeEf{#Y3T-7`{$U+tP<$gnKGgTdL`1gtO;pS!^|6C&)>NJdj4e6hqJZBo$H=`7!t~ zju4}UchPd-Lr;qyLNs$0abY^d%45aFpp?xBv}OPD|y?3Rm zEuJ!k@H^7s9{g%EX%GHd>_;c&+ewO~w9n926oE}PDT$py#yNl_$WNb)*PA%C`r1Or zOEYUYZce9>+;s=(RNSLs`Y<8(JvFy3ag6a71SQ~;A4S0rwp78izR6JbLNs(HeHu-^ zwRYDb>s4h$q>0=kd{xH{@*q%GT`L+<*+B@5z6Z{PxArSDf_68Lbupn~;vFH(bOVkL zn+q&&u2ekO3OzhxTqwE>IZ4Ll^=OW!IY|wS#TZS-pAzaf4cZOfyAr>dQP2p&V64Wo zacoB3h%-9`wYTmlD}yxgPRxIG_|n{?V1*%#x{2gb{s*~^g!pmV^_$x+x5zp)dOs9I zS2O&7*j-4Z;Vzl&ikcl}xJ`l6PyTACQ+>pQ&mfk@_<-C)0PN1F#R=WY z#7e=!MG~3FEO+F;YK2r=Dw9@%@_anC?rSj!7#(~sYaRPutotiH- zD(K%&&k7L>i=+kN$d6VRM=pJ(qL51RG&-TG_kMUF2G%!6Jav|oYO!#!bJ~+@F296k z`q+-^!%tU@B7e{O5gHTXRJRJ*;AV@AECbuDT^||?&7mA0Rzc{Im#g_K@UwOZx_m5a?t*LId z&!yUCpLF+YVSqNFX4=V^lV`yd2C25Bp~~$-48*8SAQt>}l>wmY`>yKLtJvX#)LevL zCdPgjZ0hp5&JNgar@B5WYcCg--u3!TXtvrd1tVnTorVm$ z)@egx(}OWLf-X z*j)eqUfuZvq~2XISdo>-fRA(WM{7$Q@u%MP+Dfnjh>v4;Jfh?*vaNCJ!b&GIwl#qZ zwA0$vW^2w2|7l1W6p%f0AgX^@NFs~pJJ!l~b6GTx*!R6eaCrh-%({zZ zUj!P=n;;qFeP@OaZp{Yyn}SP&t3WMQ={ns;T`BDrw6KhS)$eg$~0rJigy#H#L$pR&+I z;EU*ZjS?O}4~P6~?8p6-F3xH2K^Zd%t9?WO3p~2QT+t`p+^)oTTc;U%`r-Mu8k{xn z(b~k|y(O~0XT+>cz5$SsIwFQH@t_7a4`$|P%eos^gE+6`9$h3{0%+ppINSVVaI@Pr^ zj+Iv04h@DP3-Guvoe$0bN@tH`ub66RB!D&k@fi?S}1W zdehgO)~^X_qt}@;$!PLd2C(tagyMvfE4aTnM#dG*g+;OomgNm7eGTYOg>7wrs?AvE zdMMqF!YFm-7_ON7vMTtW?Uyzp)ZZ0FHJaGPhG=pi5on#%{gi1i%sQV z{IIZitL*3BU;CZ*L|%Ntkz$2hQHMXXDm=%Y0WVeA3RD-lrXbF05LRuYddA#nyE}KE zKRIlNtHCn~#$Z@DaU8hl&EhnuYCj9R4pA(iJ`UU0;b{NXHlEP-Ki=VCNbrHQpdzwo zMpA1koP+Ekt9u!t08E%9=wm`N_>PRtT)rIdyu6HjC{g@|)}o)3?H~s;n-?HvVyCR~ zPX2LKTzLY4YTZ}K!XDlkicH;0btnrS6i;9i--pqMC`t>O%8eU|lOQ z{=PfRQ~)_6i+=OPY(BUs3Z9QxpmT~^HSm>zt2^Rol`lO;k;iMX5_aIWl6JGxV}XA3 zy8SnURY^)dEdN`OSI)EwVh$l(pPSI=4FcKRNyRtZz6%H1f z5E-CC=j!|i;o&>0tdVQJT=W=CQ6B?evH4G%F{%)%)v_PHtMsyuwR@{SjOMloke@g4 z9?+)5eq#+$U~{-j-LzdXcI14Bj0C=F-~(b(w+0blZTFe2cKc}T^DfRYfNk5oNte_F zgNpsc=3i5f zy($3i%Pdjk^ZCq3(|uX~ve^8ECMz**4+JfK!(Z|vE2>a>MTs^1jyJ~VloGL7=(EBF zTmPJb(}nUTZx(6s8-wq%?f8UMoKT{-BaZNwK)j0R!!TX*U=k5jx( zix%~>voz~^L&EjtN>PX{E0%&-CV9y1evaQ_kIScgGn%EcRVS~WkC!BJe*0i(=`8K6 z27AK(4#R70z;o2kl(l-0^c4nuLE6J*?*qHeS9K9pk+b6)gH#o%|2d!gFO^WR8Xt&q zE0ZD*V-k2gy;kgS{hpC6FF7d0i;d$6OBxlXq~MC8y?(e7Ps3_4mk9<|tTAz8wP_$QhlCP5jcwPyz7u z6E7WUdB=?05V;0rCukZlQDOQhoB%6`^M`~zOW zOz$?X83`vR=&2u{YD$$fbMUSP$_XbIqG~2~-l#C3d3c)k*$+NJQ%I`TxEQn6`)YVF zwudM1O#JzzXT8~92;{zpl8MRnhp0K;79+XVWI6+r*l5Z1z^7Xr;wk#4E5;;8Wu>tEyVn z!NK9=iE&8R2bt77@O{I$1q%mi#}t9U~o^JZ)bkBhSSb93BsggPG&Ko#8>euI8_ku9Q=cuCDy zyt5t*-jV(=Tl+`>u%!qK-JA6M$364lACBJ3zw}!8YgUbyg9@v%NS(c8fVc+dPaf@{ zwO;GncAv6z3&{GOl4W)9*)#bF>tNp#^UB!ISpU+MDL*Z zFr;u?Xc1K?S!8YjF-8g-Lnlbh+}I1xFyg#%ZLx}5{Z+h@-9zj>kzvGQ4W#?7uN`0dJr?2hV^N(G2RBDaXH(vCnT6Gw)f5UmA6tb!&%VT3+fjp@fyK-k zd@LKaiu$MNK*)$Uj?*uTmtreHKd@|>2tzwP&t60eBQ9xYMYj7l2I&k5=;}r@vP$d--ZjTzMpG5d%|E}LE$oe0@YHLS8lYcKot(kT0dvdeDz@4? zx{*ohYpKn>7CPy?U34}1C0d$Y3t3;+M}H%?fBlhy?R|4n+GSn-GLCpK=dUu(HWveV zd-xh#dt4#eFrf=l4SF*O>7ejgr1dg#1ml$zU>fc?zjm=>y+@A_Bj1##$snx&T%P$M*&-R;;1o@IWt5H_F}Y@RIYb-t9IiGveqC+)WE}Us7S?zTVpIq z4y1{&e<-w{q`EXpFaNwgYp{=ZzPsPY=QG&>46d-l*m?7u+V1$d$1Ho3hrhacRfDm) zollxZ|1F_UFmvRGcKYu&`R*+rM+t%30lhg2Rq6J%$LV=zyvaLA_X@S{3=aypPRD01 z-}A0BU;%lLNoRYD`sXWli#q1fdT!Z;vKmrKeR;8R2Z$m(tdE0S|duqXfVnTiwKq_%Q-*m>bg!RPkQ65H`TYt0{9N!zDWT324it5I})+LbEGs{ zu?daBc1Be4f;0K=Yx*~@6`Q>Um0KXjRPlo|AzIB%<>0bf3{>9l4^0(ABaN*I?9-|9 zyGk6}vFr#qX9E0@>C4S?Jd2+Oj@qefE5$HQ&@kX)^GYWgO&{-U=)qN)K$XU%S`Z8C?;`aBA6hdFW(xcL^3hJC)%aHWJH zv)it8?N{=GEAsb4R_EPb{8lS4q1tOGbvUUhdiv@{Qd^_B`N_zl7J0TIO|^#w5<3MQ zwUHmVX2XU=GluYCX*dJb+ne1v&6V5bgnKSV;j#Q=SBmg<_j@C2SXwt#Eh}(fw%g-; z5b@F{+KsRF?R0h$uX)zS*+I%fQAe5%ls1zL)sCCMFQ(c}~s3mf5mRO|(8saz86U=!+IJt2;Nk_o0 zf@UD{A=vFmhIKC^5DX`|EOtGO&G-sft!B%+u#BS&JrF-}I7SkDt*3Tk#t8>cf?4;Z zNVOm}J97MXG4SoBg|(10@kxLbiL+^a)lNf;MH~`H2EbwtPSOH65=OkKJ-k*D++XFT z`sgEAzMb@;&rlZ*ZK*l-sPpq2sb6TY3}WdwUA@(hSgkHd62}IPxV2HHX}U~A;=Rz% z-GkE~c}~#-x4KuFCLWuLpyY_%1BB!cAH|!k?n}4`Pz6gu5dCS<5MEZ}01P0h0w$VZ zTd9vud8MID?=<_x7@UoB>)f2ee69DI+iIV?%VSf;$;M}oK)3F@qslH&OCcIzcNVJ^Tad8a3yDNRX-t{cf`yjS z9d^MN7mCmikUy+*U3jnWAf=ZNm9blSgN0e!qrV8jS(Ace;ED5EKOdQbuStH41@EUL()Rx6+V)Zl^Tre84`-(q$gR9Z%H$XF*5DVvIG#Q z*E8;fJr@#@5H8KDApv<~@P={8nw#CkhiC8%^&j^f+EoZ=TPeGcq-_b!dgC0y=#(fX zuksIqsyCQ6vWH?wRk0xxIo6;^5PjnO)~L|B9TTJ z%fm{QShvH=5sJOFGc8}uKZlJh9-^9`3D(Q@_xEfh2VLD(|8=?PT+@@dPOL6s) z+2K`OT?ubfUq7=ovw|QiD8fEtG+lOdx*FjbkFb(SX zIhJFWZwENvDRp1SiNuTKLJRFruL0d(p?r6Dl^Ubd5IzOYFOQsSM9ye; zgz!Zwn^N=V?BhB&kAr6v=~{o$%iM_s=ETjaV$x>T$ z+S%u>#fh7=Kn8+q(IEyQq++mX?7UAkCuvnPxM4ZSsEW(0mSN+d&2qsurvNp zp|OJ&2$My#_j?(i0+|&6*)c$76~%F1ERkDi@GEOTiJ>a<3a0#uzVFPpnh$;}Y8>cu zjp&K*TPQ7am=tByKXa;5-6su9sKOk6y_%J7uJo1hr%9je%X2o4A?K5L+elR$1QSAv ze`c8OJTZ8oOg3irtuSdUrhHL-@d#p2CY@Yu_m(*c=AGQG3bT7tdizl=IrwnWYgqs- zqq`W+{Dx;1ByT7wlDO@7{D4h5Hi2QQM zdW14{#i31Ao_)*2_a5hT%rqpa_5=6pi)yV=NY^NKwQ5m!zB7};ghgG1m)fAn#S`+pOvX}*y!U;~)dIpAXG(RNlFldrejfxrHDG4E!S^1Q*t@=)mhXJO23C;JqqPT^H)?2f&4??e};Km;HP-!yF}Wfz?OrOerXXoNUZ z^qNU>96m>A@ND(;6c3WU8z9u3!RBRq$ca&X7OUf2I$EiUCbPz?aS#-~r6Pn$jGzJ@ z6rx`9W5`RpMlWx5INgeGJMzOYmoz4-D-67J-h5ADmW(Z(3ciah#O7M>N_Z`eK#Cwv zWHbPM`xqk0XLo1#x~{e{frCl6HHRj)xqLpEo7Z?3FZ^OQnys3%KSWf)mCCVcSukXW zlE##MGHu?`0al1f1E)+^b#-#a)nUdQ6*9~!26BeO&X#OYI;G!hDP%BZ!1U(4=qJv? zDYLA1OEgZQZ)zSGP1<*sLEl!G8z@z4=%~-^st+A!HXsKAGy*$+E)ZEkdXueB?W-X_ z1k0pcX)#&7`3$8Pb;fIcKpD=Yv3tBTwz+3Gn9YdBq zFP1pL?RaG|Y;n8|Hfc%N zoIMBJn!j_H4yv(!^v8rVHYT@bEd9vK2aGs`NAdT-{3a1EwCwt2)xO{k$XU|O>acTO zb}6L+bdg?tpNd@XkB*FsTN=z*JD9){9zI_LMr|~zY>L0hfISRRv#^GMH6^5xDoU}d zH$N4DQJ9|Ic!CKlA|hu;SDL{PFGBj~{+x-Ps5A%*vu7y3bHj zp9Yj)5zMepb_IT_%{^uXR&S2I?$vu?V*P&uw$+6av3TTGMKTjeB$S!RRNqW{-p`m- z2_uXhBwrTx*yxaMu81VWxZ)qSd&_d)eK^lQoPB2=T1xH!JJmEv?qL?mG5j<=%C+d7arzDd8!|md;YJvXoqZZbXsL>3tbsAbiT^Mo2ewM^(eQHW|u+t_( zGc3A&wXHq!RyE}&9!Q!D@b#F1k6LzWB=*agF~oo=q*x8Y|4OV}l|i;QyK_769Pf~6 z^W78H`sE#b7Voq#IaMSh3Mby&9kCJDobD3pgu9edkcVrjGzYO1A;A~Ls z5R3ZJ7L}P8MA&!Mre3`k@&NMPv3{Kko_QyFaDvlg(&*v9mMPdbv67)eu`1LR(Q}JK z#uZw%(K*NJv^-O~8JXG;@c`*4ZlSR7;+wKxiS&L&x@yULp0fKJu)HcG0yOMUBvDks z^mXK~I3ac(?)MjOczUmdp9dX4*#be;x#-4y1=hBgrRCwVB*Q7UHSm!2Z%9l?oxNKR zZk=}x)y%w-vn%tH8+ZC+7bf!h&umZawi0Z1h8B~N!qK;{YpTzP@4D@`ZQT*Mzri~r zT|`{f0GQ)uH`Zv~buXtV`)Zs$oQEmU7z6v?(^XPB!s}uUlgf)QGHzw88kBDNveJ61 z3OI|?+mb97C11$uhZACwTh8xCTL(ei28?*6RCi3M3(_K>kJIn198ojQD9LGVDU*0h zI&k(QR(={us`tXeId1X)b>E?29P)MaJ3`@2w&s2qyc*OH)veh2d(HJFQa~vhKV=Nh z_}jtGUyet`vUidm59)|ncbcAd)jbFco!8vgMYa}LLm^q9%G1-2LXHoi^Y0foUCZC{ zFX3O*{YapBCu4SKxg%TBV-|myywR4ze>Q?HtcPreh{OqeeAC5Z*d3)Swdng+yty(O z3Fnt6_RaZ(3x83i-SrqS1Bx{KvJ9T;68IINu;Fga_#Lxd8gzMOWRPNY6mee|N!Zpj z96FkwZfBZ!0wjcmc4_AMW0K{) z_vcr}GPVtzK%A8L^Us2Qb0?bTnqi~gxA2u$<_pT`QB?p zlztzFED^#B>ksTIH3Fgvn&4vI{8dh3mup$vcA@AnTVu9lX0szrEaITA)af;t+x)I0agy#R*c}U5XV5F2$t~+^x73C{}2pw42|5=FFV4&$-xh z)~|Q~R}- zhMJ%}mDCFfTw9Wo#xhya-4HwW+e?HkGF!zi~VA0=9#zS7g(x# zXPk~=Js)+?w}kTY=mJQo>M8?droj~_YfLQU&{k)790J_e^D5KU?L{3+nzYYU-BnR= z5CMpQ1XA_tJt>8%NsVgB7{9A3!7Rnwd_5az(Tdw?7M^Kt{zbnZ%CCY(Y)vzbZjeXA zC}jh_C7n#N?|NdE^?hEhXs(D{mUeR}mGC9I<#F5#s4|Em-Fy$INB!FPv2)Fz9FcDD z`m&oN`Xhl^6dA-iqU_{T?He!Nng>`%1_RRlSjs+jBPh<}OZ28Psy}%>hv+l^=!%TZ zQoSrpWJINP(mtP-FQWQ8SOA`2?Nns0~z9gg^${+=k<>M|n(UL|GKvO(EF-%D)`yzTx8HFMu<7WH|Xz z>49XX-`3D2W2IsY$SMN@9T+BOqOYilt6Jaij}f}7h2ldJ|6~)EcVAGRp3ZKC>9))iA|7a}`v`Uc zNAfYjYQrI+U0;tqs_$v8xYSHLFu;6nGYi%mNI(Ji<}tQF1uNaGZAc#l?5ft5+uaoo)>aP?hRhXqycNp43bem-71%-h zwo}Kz_7(2vjc&+g19IBkukUK!vPzY&e=dOG?pN|+(MrD>hMktJn#Hsfe|?1X?4c5S`-eFh?D@11NLks=`WW;lwKhA$rV}lInvt{eY$LaQv(;)jkI$A&p zSLYzoGfrnwV`IJy_@wIYEhymSUhHZGt1%WNuoAlY6ecf~RkyjiASxou)3>Ursa60< z!eR)nZEhrW`4*Hy>AI${lnA|Mc#cs5EKZ^P zynlP-f10epnri0-%HD`@UKUU4S^kS5Hb4?nH&M14h_>aO4?a7eMf$D92Y5&yRVUkY z@c)kk3+#knnr;Bn4RtuzjW$?*f}U9*j-D%dcF4ROuKXHXbrXM zl$!ZAeWa+=G5oB6^_*p#xYyl9Wg0fV+8f6)+m7{v#UTWDrBr?@!GTsZzr6AjISH}{ zH>FT%XSqcs_*7=?C3(9t}@bi41!@Kv?MH5D65W*~s2UAeLn)4fq z1+#KYmkqC`ZaJ1dfpoV~dac3AW%92I{+i089pqrX4d2~-arHEG{H}iEC{zh&6SK%}Yjuc=S}U34mLnH;$n9pYbJ2 zj&Y{_k_aNA34b^o(xr(-Y*oijCaP`lb1>>+Z)$`u3?Sdx-4f?EH&k)JQkNMnRYW9; zW6x}`_+8;z5C0LP1?;%tL1;TZc`O_|H<+&9!51G&vOfNmaRa47;xs=?G~ET>(6eoi zaC7F6HFG>KAC^(&!JP!ZTBM+D3FvzNq_Umw^N_ILPL&Qv(onoHkzp`|wt{bcg)H|a zo)8@2RPB6pG1T)itA}d2YwhG1)0BXo71IIy2EoS*9I20iYWz(Y8WdKs1KeDmvBl~U zZhpd*E0CRJsT#?Dl>s!_;_1f5Q`WN=Jh^l12OTJpYmwwze|Wo`AMYzLQ=iF{TT<@h zFsb&3SANqVq(Gtce)Oa(59#V>N?pB!sv)&ir!o?2dw*8)pk=>QZn60`1V+P=2f*;e zS;|HX+kVer_H6iycX^8Zopwn`ckII za4h$-LyZBU(SMOHc|0#CHtb_yfEvSa%y?I}6SQGD3rLT@^L;t5@-{eQx zx-h{S&RKOl`&0MdDCxRV{;iIc_Tr-^$M=0tBP^x_GI2@~NLoN=<5>w|t>{<7hNI}#FFwjmhCqK-G-jntn0qX#ogkPms^5^PR*Ck>!6y@y>c$_? z-m&9x({y2Jby@^2mbr6hp!mwnxI}|v(_vd3wKSz=b@AF^jc>m)pAH#$pgSD7frX$o z`e|0hd+AnAx3x}o{hffT`+ zg1aHKWt^5fdQ$tU;jtpiz%|#)_oJ|LE4AL?6{fRiu?cvfqf~S}-p&I&UY+WrS~R0w zR1P&eoS%TjM%UMjFO#cn!R1?g7EiJ&%q$XgR7Gd8db-1U(bA;c<+(5yx7bC21Kc|4 zU_o-*coICE=#Xqlh$P_Axb-jze3ZyInncMseE%8B-WG0hBk>+0fq|=gA{q7yNw805 zAQZMADRq(Gd^3qjckEWi7SO>a3b>Sm>9$*K%`N`lFWEjn_pV9<+KE%94||n-9#)nN z6IFxt^nO||pChGiKlwQuWis`#Tc3uWq`ElWDfaT@qG!&vjwqO>8r~>yIA? za)Rm0Z|is)ZQd_(juyrCPkm62FlsT(G|uG;y@CV#QVL%O{sZXP^HE98hW_6-kpCy= zx@5NBq5A>V0)G#y9`;71FC5=1f+9QV-t_D52&9N}apyW^I_v2cgu2b}8P&i@JXj{?y%c)K&c62kz zlr33D6lyfsvyTv*e^U`>9J!o%rL#T)b4`LN;1a1J+<$$-4hy!39Xj|*ieV_h@It)Pa%qb+AyPJc*P_FDq`Yn5 zi_YE93@0d4);g%tknv9dENMmF27%Svs=)BeD)gM?gS{*5b7IZd7w8tWp6v(qEsaNE z2-va+XWpzWN2W}%*Ev_rP?^}HC!}x3@rOiM6Ld&SLvUpVJ5*>PtP62ENXA)KFSp@k zRH;E~jhpQefLtAtKVSVFBoGRdjP>$H9yXplMW5q*F!sBPbk;dLTsHSUu^dmX`zQj1 z2B|c{*z?k8j{@F$BzvsAXd!9b;GTk_J!rN=XH#F5NNv?v!){K6`^|n;$^*VSJF5c1 z9IMbwiYsc+?!6bQ(-5L2VFH50L&xck*0wck;szH+P7+Tt7o4z6c`kr6k@r&7TU)jn zbh?cbRcq}>z*mYOZ${WvnMGUoqIP4^fP0CU$8qaY#!}Fx!q9Nd^R}fXn4skIzT9n& zI1)^zP=cXd0b^_4^)? z%(KT)(l8UFYRKV#S&34hom<4G?oVDd(_hEz@kc?Qmvh?AIAi!Jt1#~ zBM=zGdb)48RyP51r<{o(|2Tj!eFlsOUYJzrCC+*IgD%#;yvi?jWUZ@FSg`NNLEfn+ z9gO`${RvuD6{KHRoc=)nRz38iRwheq9yGbLi6GDdq$o_KnH>xM+40nv3&a z<^0LF`u<4^VWSo~3g-o!U;uJ6v}v{Zg}wx-;#y8!V|&I4jws89NAyfCc%#f`s}_jf zlenRz3;m&~RyNty%<0A~DKWIf68B+onS?4*;0Hd8nUz9WS4rq<`1-6LX=xOAPOavX zQ{|;%*0ST?i6RA8oZT9+1ga>x+igr=^rZolNV!9YWScO&+xYhO@?60s{xkioaW_pB zwn(O$7<_f5^xt?g5}68@HGCb&xunI*2=Qy(Lcna}8ZS?*OX3c;!cP)>xz0Cc)H^-O z1$Up;+0-Oa1+G}4?v(KYSX$QGrremjcU`*?rb4m~^%A2+E^gi;4%W0dA*0Z$rTdQQ z3OBd)b<(D&)al`+VA5wlaYD+-tNkUAm=2@OAGc32z{_8&TE8^qB1sUQtAubfh2*4T zp`Un~22bYDr`V-p&ly+;T{Ak&` zz0*Bf9Y^pdwtNNS+s4|JYu(x_4W2b)!K0IuDkr!Z11Vzjr6r5=Io_IC*RpEkPkxO2 zU!Cj6PurJ$RTqBOIoyx@@q21H<6K=ge{w07nATXE5U*C*nrE|pAK_B@=59GovHvhN zX@D=?{2(O2LM4r|8}XXY*Q?3)I9@eBfZZt9Re(Y3=QB@k&}J5^6IQ=*x_P^+yF1=Y zVH0V~z;qHINQY}>@8R|DF55e^0<&7F%#@f8D4v8mczM>KK$FyFkWeIOXBe`u~nHzm9kQf-Xaum+&bm7W~<#bt)os4 zJA`TqaLN6)$nm4|FSij(W(uEP6Nh&{iFQ;5xiYj!XUo%c+gmKHO1jugSDVbYtuhpY zANuP0Mjtl1T>x3Np~6Z~APxtTkVUnE)lWfZ&P>EE*lTxZ*aWFK5;e^CKKChyWaR{{pA{^0G#w z)E?KnM?Y9YjvWs-2x&^37CbJvMHam(xk2-w;z`IE$Ui`lC}XQJ)@ylE9uxuG9>M1c zg5wki#M%^xZGK?7S9{|6y<}ZWm&{* zu}alcaeHjSWp{Y4X(ag0=&CwxMfc^y20n>(AA4GjCA&98_G`_5!fb}wc89+MHNrco zV(7Hi>J5UajZWOpqyb<>H8oagl17lz#ygK6j|2He?>yq&NC^qz$R5i>7gPOZF0cMh zw>7kq5$*gR$-4e4lBL1|BpP(H-u};4JuFVyyE2PHyV!*eR7bBv%$KQI?L`cz@FY@p z?N47c{ji0Oc$X>;)%9TDmV3EuVf57Tth9<|GcLC&&B+u>LHvlD4}wp+xCMLy-tPH7 zW`A(62@jP7g4R=i6G6hRSTSBF1yvg3$sQv!srgdLR-qpG2|m};ZO!3k{@+a5B}_Or zl{TTMe)HwN>N}f@ONO|HDkvR_Lj!{@NYD?9+XhLB#2>4;R=tfYv=$+Y$I8_^x zqhDMk_ZyMN?g*}2HH=;?nf0R<=J~Fcd~MPrYLA0bCe6dwoW|`^<;T3t26{n};D8qB z`)fH$oCiz7VXj2Hg1KAX_MufJXfxm6C!^(kc|ZtCXHTZlvaETZ=iFK>_5E%ov;KUh z-X-9df3>>98`Af&b5$(+bWNJWmc0lv5&+O|3V+X4n{Vqcf2ZONLw_|6a7a<)op<1$ zOONUpBqrr!bMKcD2*}+7(F(s~}8QtVUhDgB6Zz>?9g6NX#T{`-}wfs7R z9rTW;pM{(IhmULtSQq}Lnv8ZrONL84K8fV9*^=;;D`!IMMel0{4%_eea?RqIBpNa- zuAJt$tO)gcfCo2k{@xdk;|u))X?(N z4CX}wgkHTKdmmAHAl#r7XQv&v21gUVdk$#vx5>3R!*`S(Pw|+Y%M^P zq8M*(LQ(>3`5L|Ky?E_w9OmsO$UEUg1JV_TvNxso^MxfH4&93l}x61o&7>9dUm9Kd*EgPTSR_Nyu~V&{p;!_V!8=86_xLS0y7CW`&ZP;zKj#*z zvn@w2HjhZYD#??TlNmjXCF4K*;Z(_9jfsKT7wu1E3FzNarpEnQJwU(Eo>ALNGsRaM z@j{VHD~%w}w|MEs#4xGTr{134*DK&Qzc%)mZ*hACtK`7>mLTU@x9z$2Zp5G@y6{as zl_xF1@B!EB8M-kG>6U*0G4qe~uT6F;mNw5ULwjNz`SJp&Q#pmsQ`}Xg0;-%7 zVAt4Gn{JHM#cUh+!@vhKf=qv+=cywuOMxrCUYh^$bX-zX)-dlht)sCo%ns~X@RU^a zkYL)v%@zNy*LRJzN5|eLvpOW`!@S`-tO6?!@;!;lw;F+HFab=Yu6)eOd zpR4<=8>kd6Q=ucD+9{e~Pq+%?YJeY3`2y_nn zWWg(8Vs3UcBu2{)5<1WS^r+7lmO9lewK|VR{^#RJ-k}Gl_dMDBGVK@@i*d*6oOSOF z*_aiY^(H?;-j_@3{1970eYH?O8_?)7&_L_gQ|tN}KIyF9iwh zLwV?e1lXRD!r3Z6;R(`+?rGy=xob3S^&)gkI6T8y@w0U)`1+{#N|z$rIQ@={vd-z2o@^`<^*k-5AVe^>LF z-R~KNQg1cOIksceYDhU|r`(&C+F)>EI=lG5#y?=W*Uv@0tVbM=+IX-_{?DR&A~P~o zg)R!br+lIc^a>BMo-})K|1zJ_$d!iFNLGWoIg>$t0*?Htm&sDwO#$nZCP>*_+v6V3 zFEOvTp1Vx%@Z(J-hSQd^f9Lscg{KC*U$-bY9sDr@6d2E%^{esklY|ujuRPA}J9}To zXKj4c-GLO~=xBq}zKe>ZMqUX3eDxc4j!%4sZm9P%?=w~^3oHTbE>-Nn&Zv)1bEN;^ z4<5%criuM{+DPIg@FbZuzu+9=_nb>ilhZM3Ymv09co{b1%@%71X51-iN$j?PT|LWa z*lc4j{jqgr@HgJ;&ev-sst%jm1Be_VDX|(A@|veua?Ps{#y8XY)t{K&hqEF-y{&=0 z96@=-8$MuS+EbqH*hnhu1+|<{00|CZLp2C%ot<9F>H25R0{-NyUGzjEq*s~yS=2;E zwS^(ejJS-&4{e`)#aF%$+63e@%tpk?zZ(0&^azBbkDP z0qGD5a{vc6nLbhh=Le`UF&}>eAKHu)FFA!v*v>>cm?KkF8;=jsGmvE$?~v)@mi~L1 z8kVpsDZPf@m7he$r~onQc$Iz^3CC}6VR8jgX764^=uzq~$HGE(I_2Ckvd@}dtei#< zG;~3-EvO$;TTW&1rGu7#@A`@c?ha9_=ki#xPccy!WD6%LYQ;L0(E}&-&WOb8j>LX6 zpUE!_-VEZnA4>{=YgP1Q#_&ZiENNQR=HEPW?X$F%@D$I2_rC?E*+?hY>zQ8Jz0+9@ z-jILL*DCW3;O3Pm-ep0Evu=+)p-{E*_`$MiC+SIhR7g1Mj1~}X$w2m4gV?gNc=`3x z%G)fHJxJ1&Mq7la8t$E*5-@kU{nueGYY|B`W$U0g_Nrm^N<%#u=Sk*NgmkeVM6+)3g;YQAO!gG5XI%0TaVM-{gLxM8 zgsX5W&zZw|?KVY^}g_f4a z*lgvI^Jyy%zjczZ6CvB|E_5DkK~8grgoE;xwHlfd+qrA=tlE50{$tS1i+o$YAPZA-jsyFX%MFvGBgBv{Y z3ku5)GaSBjcrDlGb*JeBCr~d)yz1dJLX#EcB%%4i*d4}kc}c6x{{YH=$qHPRPBU*` z)gDPy!**aVE%`)jn$^Dt+Vt<4}_|5x~0 zi*|=CorMl`>8lG8#V>#EsP8oF?c?aSN0btizTGZiuzQ$;0hF->yb;i|8~JW0Wxff@ z0w)o)yWtGj#iWeACDP^G27um&c7t!d@u&vx#> zsn!;HL%^gqfWxLrb4q7vg84MUh0QM@7CEfiu9Aw9s6c@rwdptS{yrGmUAr{Y%P`>- zpTOKs@Veu6FSZ|NAgYBnqYB4Q4!EqPJpH_w=)CO1&5|qxSU$4e$h=~m4I+x#ORK%l zUY==JZgM?lE2TbSOy7>UQLn|rv9}IMogXOVM2BZir_i`@7(^43Y=3f^)Uh(_jt^L- z2yB=ZFt@`h$oLHZv?^2r)7P_}9Ge3)NR?HuaA2&Ck14k#?!@+HB8@@x;_V*cQ(+Pfg~ z4BzMCOq(f0$#S#D&8@HpJxhudZl@PRIaXqY44viYue6&kgD0DLSdBlavm^;RF>LGU z;xcNFCq7H7P8cw1r<>2l+KvJ%@VnlFB_V5RGt5{UkNil%C4r9y@R4{sb<&E14y5~A zg6GnTB&oy^ZLItKBIE&UeMj8SZc)w59U`g0#Qu6Hz}v6+A--e<0@WfrUh#G>rEk>` z@CX#EA8XiM3K$8ib>S@BqGSMo>^)Vi5ZyRq8)1X*(zE85o#~BAHcNIln(|-v42kNp zSvvpP2@iEQ8C|?tQGEQ&ias%o^^#mR2|JM)wlEH_f3XZezQaeea8M71xN8debV8aa z2M;(7NqQB5#P!j^&b)rCgEftQ#u$M(Cu!d!ch72YHu+S0#*Y-6p~rd6NR_st;u=peQ&d= zPuK%Nf1KsD8h64}LERgWU!J$g+ULHHX!VxW`63F@5F6Q_g!Vo_4iw(>;G~R1khUzx z2C3piUf)ray%_WbDLg8!##61t$>0C?CyKT}5W%0pU14R+a3=Pc!FsR{|ZG@P? z&<}-ZXDBSPr7?`vNfg)5HiEX2-o_f`HL;1?oOs^_nyWC71z4(=s1Ks=qREPgd-54P z`VqIiWZ&gYJysX3q<`lTeY)^bTg_d8oqSYmPON&KdblLRE(Gp240ht#>d1aCM(%o2 z0Md4y^t4E4VI1Hk-z>K@c;j5Zk~&Tr@cKZ2A(s5{1FSDenx~NXVrW+A_%M1y4Uu2V zn@!;ebm;s9%dEYX$lgl;B72e6Dy6E}D@JuTeYCBlr_5uiCU_s<)pW{Z z7Z)tuAmpZxCy0ylL0f~=Ydx#r4};i}NCNK{|RKSf~n8;Bg1N*a#(Dl^OriC5**J>V=XxC!h`| zpkaudf7<1OO4>-Ji&f_elZSY0gc6*ZGj4DSKPHrI4kg86m^G^G2*#6Y8CRVA{u-$NGn>pcSt#`Jtq}f~a0I&*SwR6~MUTO|z}w*t6KIAS zO5v!iUC%sFu-f>E%d%v)kw?33i+^0*Oo4zZWZ?kDerWQPG;_)(`gB2^=fO$ZPXu5zXPNmeosnQdYjO$5arceYPFIe@%*} z{@i&1R>U*k*s$oW!pdj>P2_ibDxkhjG3_T6x2fVc38jalDR>{@+G6l%2jV=2ZE@2` zNFhX-*)YAZKIo(dD4dUA9Myl`_idsI3a4i87@`dF8t|!Xz8w!RJzqJ_xoPY^W07%=Utby^`qYFnuS89x#9U z?*=r+Kziy+WkQmA4NKy-#`%AUMY$W(C6d1{dt;t461!z#X)vZ>o8I{}cXTOpwd4dA z!~v%11NhGc_{+gCIf)0$C(jLXH5ISJ^}vQk?&qWYDRWMTCgT+1}fd z9O7pS)E%=FfI$?8mE0RuA?DLo_FT2~KN!3dFivER^zZ6JWyvB2X0Lq;)9K`XQeKOM z-P+)%+SzWAC~waPj)&-Xk3J^QuYN0;3wr5jg!B<)>P>p3BP11{h1H2Ql$=E=o&Ba( ziN58bb*$aVa?L7D#PIs8_b%^4>#bRe*u$I!#~5@tvyU3~F?Ooa!+q~Q+SYj83=U_S zGuWnDr`zhObz5WnCES}%DKQSud`-RWP2mnVFI#h-szB{~8yV)mC>9jFhL@Q41W?C% zk%Ji)P)}MA=4)PNW9qj$@jf`(+hzOYsM<~=8}TS)}rMFHNF=^Nh=X;RM8#|Bm+g$_?+1jNlOo?gRj=5 z{SD>q_S7|JV-kJG8yjmM1n)X+zU-5j_9yNqdU1`F&FUOK$na}@aeg6jj){Gwja4Ak zkXaM(rATdc_P73{^UH!Bq>rZSo(%KvfVk$+-f0-#>u3Ck3eu6_CzX4hV*^V++9b56 zR~+r$$e1pz*y?&0*^qpg>b|vss>ii}&$i{ueXcYcu2aXS(WS~N;lm8VLZunX61F`r zrKi80JdgwqtD;$P*weUO46~vB2XJ$c->d z0UsB{m;-8FV0uM`XN*D8 z%$9Qc#BP<$tqmN#Z-Qlun~H)UtF~F};9CMKb3nl$YGMWp8g{OZcgGRHYGKC1R$xm246oO*R zX1-C6WaK9Zc6(gscZ<{hc@Sw+3)ZcwBOX#S9T_leM>8_`nuX{BH=g)|Od`?H<|ziVBSP_tk8M%>-U9u`?nD?L{? zLV~}q8S(2y>Tl1k1AVS+9URcm*_lH4;hor`=;wAeYcLtXth1k0qr2%|X8kXzcV+#+ z*Tf(~_k!B7Q|SQ$j`h!#h2L#q91yXw&y&GN0WC;5{fF9D;m&s~D+O}e)x(VXd~sMc z*y&qY^N=pd>U5Or>u*dZ%k=@_4OiW_K^sCeo6&O-(wpvVb)qgFzip&; z84NDK#wM6A<}+4srym!>VM&rG z#cbIUBbWJa@ukbNfk}fBOlhnP=Y1I4>Sg%`&3rLohZy?Vx#D2q^Q-g0qR^R>>aM#z zh=;FzL*O*MjO?(8NHJ^!M;=Fzb-uI%`@var3Y?N9{`>j$w3x8Tai5r8kD{MZ2j5oR zKE{!}0`mOg^|8qzP8b#v%!=Rf>mR`0@mm9iiT<|$_VU$28H}$_8>Hoy53XS#Q~%XosfT&%jbS4>*~Q%3}ir8N9Ol{EGIioOkpJO!SkF z`-KhpWbG4}=cYF=60Qz{V+wpP1%Lll!Ti;E{sXl;?Lz|#C+4rNd^;_P%OwA)8*r%q zhAfz~STcQ&V2yZabSzflg!$>DrPcs>S|zq0WL6rwWD( zC(a@a?#JegPZkg_{u&U&Udu_vNH(_pRWoz^^6>jhov8*>G+9mJVV z3zL8I_0o*bW?)kqf2_C=C%cjKBq%>Igfsfh33v2Qd>n7~zjQBiCS3FrjyG(C?D2T1 z1fnwK`vn99T=w8{dP!$6MP;E{5Ii1la`^2tUAJEINes^puMupGBQBb92qPJ+4Hm6 z<4=2)K5)wy61r(Ox-yI&4)5)8o#XWJ3+_(p2uBhmcO(qR7|#Bl|;)E z7UgL&pJ^Of{%TFM%|SvdHnZ1=@O`r9n(if(_xd-!Az~xnaX#3B)pA=)2G-8i(|Z;^ zD(gr|tFMFWtX~qU^-TT&);+N2ug2_umIz@7XCwDQ58Ye0{K<0G6Z~fSmIL+d=_O;0 z#S+z-(t$q=G(UrJfU!t!{)E+xuzok(U0L?@i;d8>@hwd#eRLXy;7KSeWrK3TYL=k_Q3`-Cl@*~(T%U)_&!B=1r_{X?a~Tq>s#g- z+UL;*X;ZoiicS-Nn`-hIqgZYpYYToF|Il<^i;yGhm9O23 zwVpWNN*q(ZtMS{6s!d$-AW9rqPcU~PkmNs9xZS<)8&2hRd+{9Xf{N-vaSf*AUw?4m zDK&$Se)^9{9cgU-w!jlPPtl&w!SDa|HqVNb^&Y--)L>$5dh5n)kn*h%XmRjXBAZEN zE}x3LBqdm$#*4}b## zpr@53jBQ>C*z zAQ)!2k)O)MUEUPxlSOdoG=4ZGl^9L`1GFUO#wuVnplTq44#c&yCTSXlvMgu{1o9+U zqu9@Bg~psvx88#VHI|L}QXDATN7caPZ02zM(iUU9gU!?TpJz(6fXu9=DmFoe`CP-c z(e2`=szqXNe-u&A|9tnpDQTWUf$`G?!4|`0sK&y{(v;GEk})LhRq@$*26`0d)4 z*IOF@0L|7e4UV4V1)KQ^kZc7I;{H2kVl1s7@A<7)o#fok-=Z8)+-O!v0S;ZP@r3>T zXs4OWf6NKVw_Ee*U&Ybm3OW5VQrUpBF(q>a&;hO6%D~0iD!+Do^Gu@z!K>3M4$u@h z)8=@|97`7P>0xk_b270dIn=#_SD4{B@GMm-=ms|dka7&=BoxrYmMM6q#DN$BVp(#wvEDSJvq z2KfpyC(^CukksNN4Kip~9LOP25Ud&n?oBRbFx=9!X-=igatve2W+7GpfLd&!xlV#H zI%@;oe&3tv!Sse$>64Jzh*$Y!Sa{y2^G)cV=(;_TsDfGwIesAp3%DoTodIQYc7%@> z=f{D`Yn#t#4NJONqE}0eTaBYN(zY9GPNG6fseY30KYiUl zz>m|-aBa@t32Ra{3mJB-^CF;A&ps2SPntO82<$Fi)r95de*i;quX=NDjt?Kz*trs^ zAjZ`4glF6wi!KD+QBQ?h>u+7VIa-r@Yw^&ofuF)onj#sE!>7h72c1KVqGMq@6h5l# z{c-QgB~G#RAAzl9i&$iTl7pEW2A32@o;8+YZQy5;d3nZjFmRT6EN*2@-%x2;0cMW4 zPy!5k`C-i+l+3&jPhoGSjGkbLS&2a%$=iV$R<2BGY7VQoh0WmnFun zCsIXIM(!)Og2&-b$yJF0X0CjEc=~ro<)jQ@=`#r-f%&dnpBj!S`|$?caNfgOZw8 z7uT0$#yZh$_52bbx9S>Jr-Utbfh1Ou1l6=m?~Q5M-ZZ}NiX*&y>G-WnYFmU>p4!q; zgbQJ6cSPyO?)EqQj;zsP2~*u??7+#;96xaU=N<6fmeY6j?ZK1)ZpcjJQ^_;fW9!Ll z&Bwp%x}N_)|2?W|Ki`Qka(^OI7*i?o;u~dO`mxp6p7;Rfu_ZkN44$;MM*2;n7?^W`q7WO7-v3vhj)i z1x`wi=myp3Fo|yT#z-r~Avj(Qgr$Aw4P5H%vg~@Ko-}Uq6d?c@+$1jN7KVVc zVPkl;1TDqN5~RZ4n44$Ol|y^)?cmurA$dYpvdHiSa@ym~iQc*=&%G-%%_pI&#b}{{ zo^75|ec{A(#P)!WdUb4?!x6%LQWa>^5t}y_KIFRwecjrVKw-_XB%ZP`JTAchy~_Phi%s2o$iU=U6EYVmW|_{l@I;o`e;KSs+7c{0SG zmuN&G;f89N#@DE2^^zd@86v;m`3;s%sW-Yk$3k}4@3$Uj41M6ypu{||($FWa(C@7l z6iyrt&n4tR`25w%L6PhyJ>@1nj?YL_>E(e+puQheyc^5mnGsYJ&X$*gtJ<1)g%F_+6r8r7T1}c?YQiAyuv8Z{px;j5%ol z$i@R_ntDhSAL;g^-vnkH1l|jMG3{pi;cS9bOFy9GueoNqHXWgoZIk`PK=)x>z#jnFEEdCWYRW%Os(#YWcJ^R`NHYWFtRYt4^x7V6@>GTNz8{d!Emn z#>mOM6fzIrJiMz0a@pwoJk!Maok3Gd#@5jL$mjabVnM<$#wuu?#+DbxjC=6*-GBJN zL?~_=Pb2^s#i``>wV^okP@RTTmK?9+W?|9yXofL=9tHEI(Ohmn{gl11XVc=G@xIcI z+cuQ#apseo@i?fLuboM<^kov~d=q-Ngh*)WpDJ z205eoF_bRKT%qnOS>ao2aW2oFhz(m_Czv12m+@@&SBYtK;c0eZ%iX;I0XZG7KWL4JO2g0tgORr894G@OQsa`{_w z&5kdk&)?VPL|m)o*@&+vs8<6L?}7h$cwut$rN*bfui7-s?i>CAQplEOpV=}+cpWuU zY0@95f`TAQ*^dOVuhEUCoWW;ATx-gZ7jyK=Hnt{qnRyp}Csp$bk z{s(aX@w@?S5#+FVcB@$_h-p@yb6RC?NB=6fYkH3!f&kDqPh)3QR4FVsb@7^?e`(;* z=TA8)S;@4cg1N*B)vd|TH|^0i3t5x)$$|Q3B75wzugB(-_$)?FHhAxtp$Vg z$p%!eU_76`afpCL_xa=na2;S=*exST&!ZLT{sE%e8(rV*K{h?Vg&lmAO(7d1_cj#d z-(Q2LntV}fLi#5r5po4Lix6{95=T{FvW}sGR_&q=oKN11W}n7{N!O&(xAyEffCYk( zW7}JuOoA46^A1$sJ6C_?QsbEHNyU-!DFtu%pILlExpfJAs!A{YU8PAlTb<=My)`7- zueW!xAKFfHa%o)W^SRdzT;Y02mtblRAlr}X-yCp>_jWO(n}*XG1U0y>iC{8a`9%0! z%fGUG9#FQjA4V|ew}Xs6Ya|h-&*@GAYHsn zIaDfQL_mIz&fCxU+fTb%qUfr$wJ8y*qo^75vst%h?TFqXF6G*?(!yl$Za9tMe24yx zW8*&n*&1)pbep((GB!71w_dCY0WOnBiG^v_%b6?B!R)tTFNiD4p_*Ym{AAz&94Q& zk4?)nD)T95Awhy;VabvK$Hn7M$(%$PYT+=SgLp}~zKECW3xOFzro zn~2soU30A&lgm;(|hmvJZ~$NLu9zQ2gQC}nE_S`@3MpE9yrZ+wE6;%y zFI@Vh;UQIN)SCutJaLv3CUDVR>Ekv}^d!g8v@t4;A^XHX0ITfCC|Hk$rW&c8F;B$0 zhN)OJSMULyC!XZPc2%2#FM4B)Kq6|9>7N2Kd%CjsOq)g0f9O4}zR8N(es#QAj~vrF zH^{o4?BgIC1IV7=5#G(`3{RVK@4u4D)qg+^{nZsK{ufzi8Pvx2c>T~optx(WBBe!& z1ecOhtazbFaBU#CdvW)o!QC1t5L}A8yBD|OrO-m@_n+T9FQ2!$yLU4?vv>CHIp=d) z_c`#(4pUQKX8(Ub1;Fh4MAvBakT~Cm+VyerEI!N1LNB+TUMlTEz$=s~iK>pmy*a}# zU*#o2>T`wOP<*8`_taL!({FglwgmSpQm#3D*mxnNu#61o)BjUkOhS*&V+rn?@M-_2 z(k1odsl-&{Dj|Q953hlc5|9sU8pJMMy!?eHi#8vv z_E1P$h7U87N0`Q!(`D7G;|#k#O}i=#E?Bldd%O~8&^ z4{hptJZ2#LYT95BaMZnp^Aa$$ruAOe=yoIJyxRLMv`(VTJ$Fq8TVj zg6=~7x;A%|jaGL^omHF5??vr8i9Q>Y--pKAvx;nlZF;>L0}iwQaA{irj?saRc!&1~ zi;?q-rV~Xri!<|;a${v$x97y}$**6SA)c|fd`?S_*oT`zeirQ>SS_k$H%5G93NJjD z^fLId7TEW`Ik}aVuPAD!M5l9BVY9dtdrKR0m=9GpO23m-S{_RZ#6^Hn*BS$b3 z)wZs-Nv|6WbeNe3*}OK>$ogy`!na6f(p+a2A;j*f?yn=9qM&0wh4pTy^QGyYzt1A+ zVtJ7qg_XY=yTZ?HY=~T8kod~gtIPv=dP!&&;IQ<&7BJ~d~ABkXn(b6>nzTkwc;B3Mlt56t6xHw z09be7+zb9d(|p4#gT)x$YRNQ&mQFw%;gGa(xqugWI<=KmMG4-l(R;L*HK7wor>AA9 z#$|7=aIxN0KAOBynrj;PGK)XJ#79dz6m2L4v)osOgVU{17 zncHKf*sI4Ux6YoTC0E!(R(4p~!!ICA9p~digwnEGorHnc<1=&isvKON{|+omj#W{w zH4ozGlMiGo3tG&OK5+kl^-R(J_Ttikehgy#g3vTQ z3{!GD@%EZQys50sT}z=C!&xVG@(k}wV8Rb8pQv2&D@L@LVYnQ)_b$*^g!QmYV_CuJ z^cW^Z67U;55+8>`(E$lj@;h+%^!7=0Z~-{Af7TB2!{_WHLsqsBhaVOnHZcj+sEe*g zFV`aP3K}XjY3`r$1WMV*DaC*H72o104`}3-zK$H6HHJngg+XV<6qG!l1(&DexI;d+ zN=|7vxD_^cx{!+;iY51F_8BrV1n>OqC$S*%U3)<8FKKsulqvnQqKGvf8NkPZJyL!m z5tagxbIGkG^65wF_?0tp2}an#B3$q?UW{eVlZ)?0*5MF0czogry-)NzGFc^L2p1=( zO5e>cY9!_CvT}D4Oc@S$6|O18qhjBUSE~A9p_8f8){J^`^YeJGFV zT0U-ye#>hmX!@_>gp89IOe_rcp|6SX`sjjfFOV)~uDSqcViMk}iK9_{yC@dZ?a)V< ztfEKK4Q$ZM#Eqm{!YtG(91Zi?K-97o=c+)QdCjCcWf@k7UcQ*)B6#L&yW$6T&6V}K zy}`kV@xiS_-8AR@iMQLCF^l+|aF2HJ?XYNPVp|>v-iyizDOM2AWhP!pFP!Xsg zW~P`}WZ8=7LU(fa`31w^wuJcT?d(8HL@4I3nS6j=k96bDBo6g2mV9ReWiS74xB z(W$n*ZYgaZv#40 z_M+2x$r%$Il+0QA2QP2`MgfA&x@4Th#{8EznVa zD5d+DfzA7UP-r3q?2-L-xQqI^)WI)RV2@kRFT%2p7Xu&?nNnv0Lt567ASR^(AR!zP zLg@6qvprAQaFH^Ge0IzDq&E#W5yGT(jQmY#$th9X2!bDV}&pCDkJYR z+Tp?hsOs1n<}MyI9KhPb^GsK09h!@ZVWrr#>e&L3C0GD{f%4e!3(gX?Mvvm`qZ4uG zxBePy${U)x?;eCQo}f-9Ftu++H;^A~YVQvDt821ATbVocQ#LsYJ${|W;iMQ9HilP@P14{hy( zBW!}-A1mYXc)X>!SS3+6`9`c)gjg-1kMC9K#8jH zfW}{7v3czf6=J9L44bv=?XoBuK@mEkh!ml(n7u)B|8yFD_O~^n_v8F>U<^3*hjynKxiW>FG6o?1FJYTTv<9S9d}0zE@VR#ul<|FQdg*$Ld-6i+x}PuN zRD9ky4&V&#qc~F?g)zm&i8DIXFSgMU>gW<6b4_CfC6h2T9@=rX;vq#H)?Q|`B&GzQ z)h1;~TnxFet}rkfU2%MlIOOZ5#|QRXXaGXqMfiCakV_~Cga=_|2EHWQ3i(rLvRZfU zS89vMGzgtpzpPi7-C0!TE zo3%xVFw?%&H!8bOh6Usb@)!ujc{-|K_Y(ytHJg+19K0MNPI9a2UL|*~VZ$d4rEc#+ zFei_*t4Qx$lw82L)VR*z_aTKlo31c{91~mvfNKibL^LPeYbnW?Ru{kz$c z$kAP7V-3|M^y{Kw)2aBlI6EaINfdv#+ahqD(JMQCu1zE}!TyZ+nV^tP9CtiPKF31t z%nu-F@s7Ye2gnd~FnbR)dZAivrv*Y)tN3`lNYTfX4+)f5m#X1@L7JOllO=QpvNd$% z!J@WW>^Z~4XSL2)#~pC&0t?XFhq$o@%{C=YoGnR1&cooXMdGZ0r|cNV3&doQyJ+O3 zJtb!&>hTL<|5GKGJ_z4O=91sM48L#w2C6ou89J1*2_(q&@;k@1b?NkoULF7b8#9{w z%e*i_>ntwj(e_&+rg<5EY}Yt5i1t1Y$U1;IggLR$K!-u47q)!HnLODKs#}-RD4D?w z;8>5`dfBsNO65S4r{7}V)c-g#B9tKi__tMKCSJVkpY&_yWCJe(f?e8A z-5V(g*P{LwmZWL}|PF;0Kj-m+__EEyFk753*HGyK`56h%*$~=)soW zxC148#p{MQfORYv-U?jm&%yUPf1^km^p#cWNA17bYO_SRp#x=V3E*#;D=`G zDP3Hdb?Mf6#d++Of119b6zVSnoiZDzu1jmrjvB_7|2=~naE*{69)df&ULYb(+7sQQIBfje5+J##Su>s%@XpMfae2`o(`oY+m+ALQIU zud@?UbAdR16=v8aBJ=!H%4YtbVlcvprnp_A6y(^oa`aQedj)9W7n?KGB!waYq(7N< zq57%qXmAo;8?~@8Qs;ywQmN(bf=dL?w4xDqbFko(s)XUqg zmXW;UdUKxHF}3C>AW`#sGifHI3#AAD>xgQm(-SSzsY2*{GbkSp_i_4@re1WvQ;#vCMis_2N~pWgmYbAkmTX!`>w;pREYW z5&C&^)S0rB|0TNAfkxeScn1d^-iHB~o3r1sStghW?-N zF~lHclVHn3p5!)xLv5*@O2drCGVgfz`iZ%0tJxev`@>M`QbkstKc0@4ON89HX|W zV65#e#D{~z6Ho$Mx+L{IY!v{Y#ZP~9*OCewYx+kolmu{1vcua$^kMcAWfQFs7qnKv zA%qwun0#aTmhQ$2S~m|~=X!}tPt4izGGq+ZV`yu0Jik9N#7s_%1FCfTQyfCa;nCt$ z(N+-L+m-KG)(EX)$k&c6Gg%Hgp$La|H}0en4UxAuWbuAD$No9;vBDOOi0{`(5$DG$ z3fmiY5p%21E!||i!J@*LZ0dTmNJ!ClD9S?7e6#h|02Us)ldkj5@A2-X#cbT{`&46f#=ruNe^^z zf#zZ)KfL_Tl~=!=JVf9yAN|!VtuS_%tEY{U&?om#|Hh#h4FDOGU+}8cCedYH zVvS;Sk*EWo8FRU&yB63)1MrjDL?AAJi~9f{lZ5w;b>Em+%%?>#v5ktML;R0$#CfAl zAr9XIe>y?#)ZJ>pr&uhB%ADn35*!ng5snPI_J&e8Gak+%AAF6)(O$r%d*{XNmnf5_ z&1%SLh+!lqjgNv?N4fAmE6*&|e8<10=qk6Odk=liI&_AEqc&Dl-^`ap&M0dq_;b(Y z3QBWcxf^I`EPWt;Kr9A6&|7GwQ`j$K|6MTU30iG!h*{HKvT(Bo&M~YiS&Gf{Bf*=K zc$|?_=59RDrYj1CpkX;$0;o)pphQjoBi^e!ktXuDtfUI`zmbfZOJWp*5pjjk+Q*)i z)!bH^cKa@K$0eDag$a%e%V75e`;{DkQ-moy{S{M#3vFw{et-Suo1vxY1L+|lq&`$k zeEyaN)tG54FO``%$4k}!?LlYfrKb18EE{zPI!`R{q!yjcE$nls))$t5n>EA?<_<}S zdYLClRiE2_*A!heXmSzvEoS~(`8v!*iw$CpeaVJ2g=8b!;qlAJog79l2d0I>%hQ^anmPE7V5m`5d-FLbrB<1|2 zq*l}nZ#F5wp2f979MKcSQNI+~OkPUs=b*JIlq-IE9e&>j>YR(LEqI`)>g4?j?4I4y zj5+Da+j{C-hf$AYjZ=u_%=h(pweH18MYa9mTSqoUV`oTaD>SvnZ03qKnN1%8LpQ+$ zu5&%6XODx6>Q#CXn0jK96aNw~A)7U0(|#Ud6n_T)#_=i8-Q_pId~P>k=w48kP9A(#nsrFQHqI)g@9#BH}bBXknWHF0qS&3(Wg6@ z(D_*U&5_-@&_2;&w1Znf%=hH|I|f`!Zr&|>9%0rJer-M?%IC<5{C_^t`%v(Cr|O3p z%?#ZdDM5<>wplxpm}1KbN^?wP$RZ{rE6QHhH-|&Y2uGlTMa#A?aH13ZL-?Kisx)%5 zeaA)_Q9ePHQ<&PCBOx+;=(nPe#lCw}-KCMSZl9JotWf+3LA6+2Bcx#iWv}blO9C1( zkhOpfqlU<0$}qfYkq!0yZ?{^3eAR7L^(WuhsGW_5{xW+jjI6KsG}C+Zb-OwL2M`qB zWY!}#dRct<>DNQc@=uf7#Iecy6=W`&29>Ba*LQz=A7*|f2hmD0Wq_Ry)F42>XoHI> zQ8oCCz55zj@%-f2F;b`9XDWvJ?QIW*-6eKV)Y?FKa33>H%7gF0N1cT>#ulE@4=C@?J6YlTX)74!H$}ptTK3mFNfC&v!I2vdb|NfxH0%Dc_$~x1~z*CIro*c z(!z^=h&I2t3myk5wzcua{U(a`K8`mRbZHa06E;yj~C(hPhtr1lAv&2Y&7M}&yN=;aByF^L8T7crHm{law- z{-YC*?pgN%S&{v5gK8KFQ}7)s5646#D=Y^($F7YGDrdW+T0v4IC%c8fmWO zNc_d-XJNx`CG5%BSXnTDO|Xu7xzMcH#uc5MYPoI8TM8p`3-S&%!Gk<>(5tLi6JFL` zMIBICyOH$~{w5C$59q9bHfKCLRJEr7GOH(026}b{`5nZQwd6_Z#JhZN*H+xnG-?Xq zV7kzsC{MicUm3jm{`26lfV1vFHOK9p>&1d2IrD$%tnGc zkBcofCiP4Io05+5TXzY<2-_zbYn-g9fFhnzQ>TB{;;n6`$ZfKaMEcK}YsgFysVh0Z zcw1(5^WT`pUEQ^23H0RG`X>Jx5;H#be#W`vdJ0X(^x)`kdmq#)Zbuglbrq|O+Z40H z%0R^Vsx1*#ugJx|aUftM7WGpeBA>1v{sWjtYOtiZj(^JyrtTlRS!+H;;c-&HwJjP)pf zxX)*vI_;2bkRV`BEViZW>A|4D%HCn#(qmnOA1JCGH4+bRb=PhmROXBh{MmiRBHj%! z8^H${7zWaBY2f4U1q+c>MD#Jua6D@s_HKiGa`ViY=#3YcuNU3B6;* z7&)-8-_8W@U+~Gu9}MNMDEyl_x}A8HvOdjxy$r+=!-(73dnWcikLkxvx*>xq4wwA+ zF}O;LT?+GhFdG3Oo`bverkvU8I)1NnvIq<*t;+0SM4LhoB$=YvQZ{g}Q(CK+se zW+cg~NEe%&-VQ%Q1iW%Cg8{I%h+Oc`_D&TlCJ)u~RxZdzxez(ra_=C?AuBfO6;U>A zFNE-)H$0bkq`bQQ&D*rybaW7DtSdeBEOs$xaQNu*NsUv!K*-L+538Y6jIKqR=`M-O zpqP{8#vdVO*{?m~z4C*If%3|pX?WV&&mz9AeFG7f_0k1M_-(Oct-PGWr)*tXRDQuB zaCPR{S9F3xpWAVkrzxlbWezob!AicA+E?ULy>aT2)z)e-eC*qi+!uV_Gy!S6jlUFYYYIyep6RprORU6h%9C7-CNEKmkOil8dL1Y0aq^YHmHbfT zqHB3+Ypb>J?E<_9Bl-9v-c-EOK5GflGmXWiPVd~Wr9vsM^Ojvnw;;c_Lwst_TdiLU`cg zh~c1K>CyEXRvxu-{=D4ocz{At%>-u2HTpDk?^B-rB3541S< zN2pwtJH@U=m0Rldkv+L>4wS`K2?plu!jcfGBdvQ{P?@3h@MV#XRk8NwO0Cd7B z8a^nfdJ*j5bh1covF_Ow)Qj^K6*yGd_bPU3>v z2B#MGrh4LuDk_DK^IB!ju?7G8g@};B$8fDUj0NJq=sTCQ?rM;5z_f|O8BEhU#OSZK zK$JZo7Ybl@Xuw=XJa>>3cO)hCgzLD*$GK-&p^rKf@AUeoudbjaojYg*8=Dyl{lrJ!5;`#wCL;0X5Hz9L- zdZv5s*Q5x{S>YWMQt16dFZN{lLujpeO^CTs;1Ccm zQy8`bZ)>Lq#l-0x+)-ro=4;)v{jptRK<=u|$Oz7A+6IfaEKPJ!%Y1v5r~y$+Zjqoq zx962+VF(txyzVYHcw1g*f98|sR^&Zyd!EA`T*IoHI#3K>O83;TNBJa)py*z_mpbt- zXrVsgjpa5^qOVUV+`BT8!r=G%o8Qc_Pq#!W93Ypn;r!(>L`LV%Wp_hy+@a|4C!1^wyzw9+hs?cW)!%uY-$0OrwjD6wzK0_z(Q@w*w0YY~N$}cmnN9 z(G`6ec{m-DQ?ut>v8zwLWik9E8VuC3WM6|zSbUP}zio6GKZY6iEZr>T_*0{Mn zQGs)xNc{*Y$Glz&8@o;_WvA`(gI|^j$Tv{vpqfN)uQx@W{XHde@fpfyguct~uc2eV zM>V2FzL<|5*svdz!O*iIIrs|FD@Ul8JT%!Y(YEsyV<}lbf=iY9aF)6guOB|SM$6fG z(N8XJlHcKGW~H5Rw$c+ISZ;D)vdkJ(gBl;H4Na=9<{na&sf`bt61*}GC!WSZz$kzu ze>Xl^kdD1iQNo#J+hWG;tMR+xqfQ3|*Q$=C3Dp*A=**Ji(}x#(NC`>HD#Ht+?@yDY zo0=}WwlC5X;uC|%M@Q#L=4+WbjF&CGQ);2x&UYIlHg{MCRb~;eZpO44tPVqkcC4O{ zv`q7x=}q^?F*m~povp>Rnai^~^y@>>*pw73>-7EydWw=tmauEAGTrtKJU#&v!_lGo z_e;26X&>d*y(_V&4~T20L-qXn>bjUd-H9X;I>XesLB&A0J||f{|F!c#Phr0{67NE_ zu04hJ8u+5Ze3WbHbG$PO2cLvRZ>?h+bl{&ML9r=a&*A*!xd)ht%X;GINr$tE(}M=d zVB(uit)s_i|IVXtL@S*c?f?PxGe6DNH1y<^+p99K=8cnvAk!C4qVHGY8?AYJn&DBt z1oUboUu>S#$P5gp^P<$MkwfUOG=QyXF>(+s%Py_QMxRBZ(8eMm4`7bN7M9>$kafGc zjIMWs9Z58#*V{64f?g&Wq=b^2$|8mfVkB=K5Ynx!7O%?x18A+-a6*WY28TF3eV{`} z`$F89>~E@{m7CMApN~-Dbfalfh9qj)#cOVoW6meH0ULIpgB_I@s4WawaD}U*$&ZeL zqnXHUFLDO@uBjl-4zT^fj>*!0%2OR=XF70`&9#GGC`A5H&uq*(^EJz`{pmgcT$NXp z;QsnEh2E?FERaIS-pk(JwIBQaFJQI-mY;NFlIS0$fv5#8x2Nk6)xU>;RT5q($T$5CS;uWaLpzcQ)|%GnyySZk>HuG zKz}cWrIZQ4DuL{mFSlm5{RenYHpaW(vRIsz;KoP?AXT>fZJCr)+=orE5ne){u-W=G z9i;3+fSo>=SLddojpWAI&BmRfac2+GeZ`|IyNyT&amP5C`1php*Um!`-7UeT$P^Mq zNrD2AU+E3so1l1~Xdrqg&tfn@iDHT8PVNNl(3HU!(Pht>q?GUH@w00)0+_XYQW%t0 z@nq7m(sQK5ScXL+&3JCO^S&&)r~plt_L4AdZ(GW6;JhrD7zcZ%+#UrYJ<2VGX_{*j z-~`kF2{k?K)=1uoT>H!9JJI^t%5rh}4?>vc>BGBZ49|pf6;xJuSC3TsHfVdge)CEt zV3SnhI(}X?W>yYw8k~G~D-sle?hx(k4x<|kUuzz5q4W)?hCS_7gy7Q$N5JrRO$)JS zN%Rk?&7*;Z)1 zT6tMJ84wFVSb!CDH~xFeR-8Jlk%jGpAesd%X{5*V{nx_n11_vlhcj;sv@E=@@1+Q+DQH2ZJanxWY?? z*G}aM(`JPyV8fuo+t1?#3GE|mM;@qLp3{(&H|nko=RZ*{Y#~HMvyj-kVTXO3I?>Rp z!L*+4dmomGGZEp5zPA%D&Vj@{qlUEXzTtKOY?zElL!)ncx%ZfNDc`Fkf!fr#c=jt# zFjvT7wP!C8XHVIvNZap!IW>MTuvJgVAPkFF2F|we`s+ijVdpD%2kP0@SqWu=1`!cl zCD+j4J9voi%IlXf_s#Z9zUKkm6Z5ag0EYcGW;m**GyN+0k00CZEEXrIewK`6^N4D& zX2x`NebD~)bm#E-Fkk+cx6HOwe+&C>@PACX>&0KfI3S)Y$YDO_cKv#p0gg2K8TSB-7(H!2SrY zHZ$5jt8a<^oxYb+kKR$xdS`uGK736&*?!$ueS|$y;!%TIiH^TK%0Y`1?=>pnsAV|)^G*gM22}myKVXo$f~eAI0}^Whn}TqUJ|!)ml&x+ z%glOLC5w#)B>=#(c>HQ!b=i*RgWlV-#cs0CWCgJ1Wy7L z5?2@BTu;)D38qs|qjg%Af-xL3g3&wh_O}7d$B;Etb7NC$9?wc2{o?zA7_0=U3KJ9c z8x;gvt(j;gI(ZFUhr(I5#3cIDEX~l;r6r2xgZ}{{8Ex7`sUy&Y1^0EO%6RN*LLb-O ze2-2C96e{95#p*~Bi*ruT|s?4!+}3in3b5yz$i!4hi*MES15H}?<#lwV5}})6bs<* z__z`~vwJ%>?RjmX!HD;@oiidV5fR{1-S<$zOP?N(GfrxV#V8cq{h=?{=Y0i-`k*Z= zFtP3Y3~Wg_U*yoB4+Hw16<0?}kYf5FQO&$tU76B#gIo9iGAlqq0RBrX+_eA}8qwf_ zC+IR@IR74%=p6?Ves3foot7ffI<30%;smQE5Y#bDkQ{Gh`*rhI-Yot4thE~w7!Te) zp)9ovDStC<{JOuch$aeYH0$D0jvvDk^{`u{-_uaypTuvxv5u7l(U$Voi-+%HpsiCI zZVD-zt6zw*ce~BJ=K$U>X#LYa4-aRZfcVTbzda0QvV2A8Ci)R-Hthr4l;6QtmVbA+;C$9B=-sV~>~avK z4?OQEy!SFxy18MFnN-YjG`>s*{=x};CLyV~4-s$B0WF2bi*I9+R-@~JaKoKJ`_qK) zl7-2$84#-^&G%u1D?vphu3e^g4ycW;Ov1Di!)}6IXJ@{TC14H03Te=cRf3H?zu&N@ z)=4SXx-*MQ;eg)f?y$yEfdm1q{>vc}`hUM*+Dzf3a6~X?5Xl#kR_s_y2c*C|(!)GR z1;i0}1XZk+zq}M_#n5~bfMk22Z`+4HJ#B1_otr;t5hwj&zhx;tRrt@`YO!I`qZfg8p{yup@`3NOR>Mo`|{u5Lb72WEt=96@Z@AW-q~RG z#tVKlEwPY5CfrTBqd_XR)PtRGUHtZXc5pkZ@uoR~X`Zerzv--mXo_ZW@o|{%(9VEN zJ!=0q!|o|G*3p4@mcR@2RtPZ7kc#zY>uKKzsN{|U+L)ZdV@B-4I%)nS!GSR=6s%lD zBzjIf`n99+sGiK`Z}=a>ROxwQD%ORYlsD&-pWc{Qc;(v~u8dR)YRZrE51UuOEvpFR zst2p)r9N*MI*D|8fo~_QzN9E)cQc!6Z6+!A=A{LakW&vsMs|jW?$wlJ0M2v)g>V&? zST(;)Ja2*E6GRRG6v||jZoe^e6s>J!JMJ_3XGa_crZ*A_BKZ2G>*%p6ISL^k-U;pr zF3OSDKrTc!oMb9C*W=xXPuVCC5(Ow?x*d>cx$LsDlwnhf*qq&SbEqtils8U0%~`L0 zHtXbK=cJoTxC*q}2gj^q)xF!k{$VvfqBO;c!D3vlOJwaSvIbq8}@5%wf z;VuCwiuVb%@VC#Bu*g1HdubU z9P7fy`7S|23!arYgDRw0 z5=K9^#Fg_pUtz!`m!_7jG8!@o$B<)veygy@oNx8npZBz+{F{DEu5Jvjw#_YLi@>sN z+I|QRL5RF6Ub9*oJY-~F2pXrq)>}DJU6pN6qBv8 zC`~IrImaHpVhlV?dM3hGz(#fJx784)2`DYSX*B@doPl%3llYq2Hx`e__C}{!n0o>@ z|GRK@(Izjxw8+y{Cy(rkLrZ!!{o&{KwdQ~&K7|~75{O^Uk<}XMn(!n?a+jWU`G+~u z6MkQ%!rE~EB~LH%MPoL*rUO>LDx%et2MhW7_%BY)Iuv) zayd75t~aSo23&;V5;$b!_bgpp`=}a1pfJwH z^I0baFPCF(b$JD;(7Gp*1;<>};*MH=sejSu)BDP61lKFoL7NUxM~+~qP$&D?3tkVC z9hXuNn2JH`OVJmg3zU-3+n$f8fN)qrTNZ2QDQBU9z54)&y8tGFSp4;}cPWk_+z z`vn8ZT4&RvHY`3_bu+R*XiIUo;wI(AvGC=GiJuhEZ%7gw-dftD!>{4f-wk?PRcN~z z+?*(s{KYf>7Aab6xlxS9NF0tpY}RZ>kRSRWx2yGJ1j8iFj`}Cxl}SKlMS1!)pksUP zC^Jh-zddKjz(C0oF|+{dhGm_o(ALt$o{^o9&#SD93Q~d6w7&EGP|fN_2R3UgLH~3C zq#s;ug@`S#Fy-q(z!%v60jwmWOX=~L-{CXL+!}7rrihTv$O^VaWZqZ(Gf|SPnBrX#CM|tSQI8Gp%yk@3;_Kb%uMVZyTKB2_t zKLDWz)pK5A|M>?D-{A8K?GZCLfitw+Xq_L_Q59MFe%Y@mC@kcK_5~g7%nfr01 z;!1Bx2fbATj3SJ1oOh~^eIidoHRy9 zM2*Q)>7wMyRDELXm$suI(}Hr1oVdV%VjF8r(+!C>!~n*%DwQG8+VinfZZx*t#vw+w z_m0MvC!6_-n_F35MXn5feACvQ@-tPIm?Z&G)5?`tV~?>8p#qsWHK|jk5s4HRWFM>> z^sC4go683%n0gp(CzjjifmOE9V2n1R)HBdx?o8C319RP%nHj*A?m~-fW-rO$txgZ^ z4Rg8f4hcA;Na5eyMO0mT+}J(GiODocr@6yl20W*#CRVAIHx!wyg*2zfJrJoM(0r{M zXa8#Uv{L4lwpI^>IQUKs8bFRpiC9D?E27C-SH*3H%ywxko6ViJww1jGTP=*}N_@1CA0lXtHq?-{@_8eyTP2 zG=a~pQlTw5NG=i6FcBm@Aw@o>pa~g zUPZQ^(7ugN5=Yr+9gWCZU}Gxk;km9_ksG&q+xZlk(|3{6xYOvLTZ@pNSL&@?t!IIY z#jtZHlCoHqLv-?w-y<1#WZ>K7J97C*3Q&@x-Rr7BI;lBX)=W7=6# zc7n3A2^1u?h__-og8*g)7GBx(lJNB-ix^uIX?u8YiEF8V)D?85vFRtz;kvxOG02$5BPL+&D#t2 zxMJjih#>GKqb8o4iOX$4v(uW=enW`aw2j*sj%@~hfbhNM+t)bkHU?n$3J~@;Ovg6@ zBOVWEfJu$*eXo?3OJp(*Mg!yk+zF5>g4BU4F%j9N-b+I*qXj8EVYVQtBy+>icX5gw z}u=ziOla`;e>5+r~c|9J-CSfbP_PVSaPW)GO#|leYQ4c(8ef^w{ z0?D;A8mZvB;K{J9w{e9Kl$xRT8$B(`7(AiCAHLQLjg=@)KvC0eyq_Qy<~V=IC&@<*$fC}ZJCEGTTm!Uy(MgI5F_J6Y^rycOz^}~z8ha$WQdHyY1SE5s1--ozF{G%7WG*MK2} z)e*eWDm~b5J01hSdelw9GiMEr;KS)(IyN$ntxY5gwPOg?jM4nb6Cp?YOZZo*3C31R z@rIZ?KamM;vE)~_ALpDqrwmKElc*`&THOwUU2ZiO$NN-_r2pVMj?oG^$*zlYFaL5+ zie)(=dlLj_NRQcw70zIO_Q=X?bk42(+->vc1u&H&Bk1Z@X40EYq}$9k@EUxSByeEs1p>GfT#O&}+g?oIW##Hg_^I z*tJ@sZKq|-HQ8MZ+svC6(;@LzI)sdjTP4` zFjV^utqUaV{O&8~fe>Sd5KB?p=RHHXm*H`cKQUF9Ck6_+l=|p}bcY$&8q0`^C^0Hy zrwLeQEniWx5i7ByP%Su*EsZVk7R1k=Q}&jT+dM`yG2Ew8mtLqJtR*&TD+cl z4EDQV!XiVu>FaUMk>x)cDdse)js(J&5Gr7mexAetqa7(P=Zsn^{sg@5eof4@wZ6X_? z%JVB+@LI(ZAU`H=n}4x{w8@_#zhO(2-u!3$U3gJa@%`*A-^qNx&3^!yY{DgCUhDl< zXPy9~6A}1S+d0(7r?t$qY@+Bix1C4xfwvXv39Jih&H&LVkO)pmCjT0wf5|Trd zy~<$PS&MG*WzjPz`&q!tIgL4Hj{Z(g;r`ZHYV-jvsgXvBSt#E5N7ox7T#c+*j~7nlOFJ3jQIS?iL>qwf)!szc&%Hg;UPTH zw7I0>82TUJKEqqWRcDX$Iaa(kHj~{&Ii6`@*YTeNe=m(^T}gz=*4^`$P(;(GSg(! z#M(!LjvwIJA3Tnxe`PZLqTrucPoCugcv{=LqS6CADrE<02t$It?mIiP)_6QEmDbE>^~EKpp<-M0pzNJ_FuQgL(eKm6O}B3m zw5(s2Cj8j`sanLM%EA^$=p`R3Tn-LK+Z_H3>Q

fsw@OJ-8Xtf2RpO?`UXr&-3Wk??j5q zSWe+YL|iqP{QKO4T7CBqaq~Dl8<&%LoyHVP01Bj?o_1yY6x8?Dq1_Pdk^+6y?CWXV z?!(6>UGn=?9l++eY3q;{;@67@mni~Vi!(wE{o6zIu25*z5LK5= zH^B)QC|j&tSiqT=JmpGbwPGQE1tLJgbj~^0O8_8L5HK&u+agsf5@ zFyyJB#>}!o*;>-z`~AN85)4)r8!Bt3)GFzedYsU(|bZ$38uGGI~}tyvo_+ZoWe#;@N;xmZcqiNtT5CH4-& zsC1qmO(F;pGb4B@`>f+-sE*ena@*G5itQ%Tbnobj7hbzFHeeXr%6~o8emlQp%m$;k z!lrjF*p{WKJbSQ$wi;~7EJ)5(Pbp_pH2R+ZZf&Nw{(_31>z#9k$jWFti$8u#^)3@@paLtcRwAb7SeeyD{@aCqsN7DM^KFX6iV zB63!6ULg@_gE;X(Vs*#FFe$y{g)sP4M~uwG2+@wir)Q1+55qt_zc_#0Ba#lHFZ69m zw^mXZa=-N%1zQ}0HX-dE@gW4Qr|+v-ZNzsr*(AwF+%WMxf6B&`_TqxocdKYplRLFB z8}13}Hb5HS8|WUMAZ2Lwj8H`z-+pKtUfyZ#v){Tlnz4hV9VIgWB%uT!Vhw4Zy&uIR zytn$fbg@kk7;c41mcS2Q@+g$lkoLJ(%~ z*L1^W@XRm5`!es zECGS7by*{Ejl_y(9`0`z)dnHFZkYGQr^@V^9bTs_-XQY`Fsp4JRhm#Ewvyr}A54Hz zp|mv3fkBafvUPI6@e9BpI}_^!VgpIxj~^r!tGydtwjjxEo;DCDTT{;;paO!(<_FC7 zO%$2S3tq!qjTHu@5krayvsSyl(e;0b(i6rayjOdK%M=pK z9t(rZvl8q{z~-V0otC+&YCD47-TCA$f2XJmn$cPc;t)^TMwf9et6(k~(-D>!w*A~px04~A(K(^D6$2kEwWU^crQIc( zzMR{4TNgJt4s&reBN6}vQm8Y_-sS50J(au@M>9i|gwbuPu& znsLO?AE|d|GFrc^^(Kn!UKhRwLnB=J;~T&$4X)`=*~(CWtB-)rvQX0L_$vP)9B(F%7||K|3>a!Ij{E>@YmJF7fxr zsp5-uJ-;2R+cqE)3+V4LS{itjy)L;dt*+n^M&~f)0nR3%8rOveCWxyy?aLZEPr_Vg zWWr2wZ85~wsu)@BlIHZoG0Y>c+BtnHjQx@7zuWiyKcghKw3*Lopvp+(YfAqBQp(n= zzj%Vy;t&AN&?`?+rEzJ(hZUpS^O2Btb9fD*yC9nJ$KY>TZ71V{9^eemB-8Z4`&N9O zBYtlz9d%^e{WZ~EY4|=kDSG|oc1024hYE4Ig@IhS8 z-QGany`=AR#z9&T(gES0f#QQ@2Hw)ejw7gpy9nWn;jQI zI(y|{zP^#Mv8`~1_r7MnK0Yn}XSXNr1*$BjLfc3ahT0xsO~vRX%<@zqK~x8U_BMbr>w*Y*z2OmMJ76Fgk5< zmNNHLjwGu3EgPFZ^Do|l*QG7IcK1;bDsFbj&UTCb2g{P z#05;Hy89|w9XO57t3e!qI3E#@BpXFy&}{*!sNsp@%MT)gt~+0dAWK(NfN56La3cy+ z1Qpk|#@^E;Ln})N#O5>{fp$0`#w}Rz_qdz|Pt(f^_@K7mInqkd`Z|>qpx^;M81O-6 zv^KxQpkv3YKMceQ_|l+pK_=-sF}b{wZkWnN0T^LcVTZ8>WiE*vMXr26f+^~$$B#3D z4$D0%+1C;NgK1yGQC|w>B%seMbjU-)x^ywnGK7j(6TsuZAj)I5qeUA^_~ZLZ3~zI> z@Yy;>0!VE#fm-q8E8>Cx*DvLgM!nIwu5AFrfCSU&LDJn)N#Se~$QwXMsjcCSFro<4 zdg#`-R@V;!k9|Gyg-B@dAYp(2&+yYoSY;9t_7jL}oZ#F? z1$1&l&3*m7rQdsqlb$$Peqpu^6##NH64?^OherfmxtZ|zuLo}@I#+a_6>4>BVBXRA!S!&Bzgpx)^ zW|omkii~OwAo5PTgd@5(+;PP@ir7aviPA_aUF!gvjKqKyvBoNfukNm`n_q7&4rqFX z)BrK=0GiNXJd}+{?rx)P9-nmyePqd)I5>b@MNc|WU5B`bn4Q<8n#`u1T#d}yU~9zI zoN4C0OdYb8Bir8I&%1Sq;A}3E0W4StJODF_l3GC`i;UJ=Y<`t{Ry|4B+e=K^T09mu z*0IBL8=KXcnY~RE%mqmt77VxD6G-H3*%MevQO_&w80Ho<8G{^K8v!jQlqP_j7HPIF z=It-!sv5Lv-wm(!2xY}BP)Fq19!Ng@@U=A%AfY10y zsGw8Va$9S*_T)0@E|9RaJTSe$xyGXrOmM`c-7^%CeB0U-wpXA-JDHwf;L_Y=fEvA^ znv&w`W5seOjV>6jq9R(v=*CC{EMNi8x?wSp_MG^V&rqqZBBPoM zt2YDzf;e4MN4&sU#o3-vNdz0l4yEZy~)Z;+5FA$I&6wyl{ zG^sR?)k+RL7gk*}JW$YW@3A*N&(=+j;nObdTpWE}2L=}d>IL~lKpd)7g5PDPX;-3> zH>UWq(dRJ|7uLRR5X$hR!g<)r-jg5HKIUB4$D@S&{5RHR<%K9Zq;U%{{TP_iN>MyJWmh_@Ijba z>2bwl80n0}Ji4_ttdBTU;eiMetjz*pFVUo}XqWVO^7`5auvz0taaH>e$u45I_-dE&dXnJsDD8bzxh zzl=DX(Yiv{R1CzCUNj@ig0&4q*EC4tn*LJev6XkHfIjsoID2Tiw)?H^8dbim?Y=tl zQy9oPqP1}j;m){lU2fl~(p}-DGHdzW6k{b^dGXACmF$16zHY~NSNVS-8q25LM<~Ds zhJo&n%zT%jSQiLJSin4LYP03;WX<37b=)zfq>+yvCzUD9R;7zyM8-%9MKhdnCy?=4 z@%BPh+IaP}^KAg~{*_iGo!eWwSm2VCVURLUFe!(Xe3m=Ar`5jB$n=Dhr7?gsKq){5 zGu|GmALd%4My6r158{CMkSz%`i?vhU9UFinZ!hB z9Z)?))5D*N3`-^IlgU9gk#Pi|Y9K=A0$SFzddC{z zDim*I)n3j$A98#iS#6I|!N5E_3Pft>I1|K&0IbI|mU?gF6sxOo+icd}Y>vZt=(hBR z;lfF&OqDIj;mnqmZq7XxExN9|V|3{ZGPE>tZeVF%0~6%0!-~kQAriJhJXaFh2&5T= zlpq=x3RajOC6_)cB6vpux*eMCyxJ|by_T|BccnG52SF(fa|;P$dQ8Ir2iCCdS)khe zFLms#X4B&A^>$d#B*m??xQ4F5vAaBS8p7D!o`4)`3T;`S&Ggu8=P|$dy_kvb6l9my zOsxnc-p5jpQTnR9_)H!Lx)9haV0J-HpsI#&?8waLYNihwQ8f6)C7SuX|nX$rz zE%G$13i+=$04QBrAk4Pq z?0OyRb$dA3b8H^ir--$z4-X(ZS}->$XvYc!8&#&;>H6lCZ+BysS)S1=q=(_&+f(m; zpnF{6)|`B35La2ocE-P9sldlgEFpqcw-GcX{;Xyi(KA1PKS95t>lc{=ZXf1oMo);b3@Op$N(VY zOb}qZw^r0OspM?I%rj(sVU25;Kn9tJZX9tz6zZCumA4|2_i#2O3U-t9rF>Jv*8fzsu4RyLu{CeeUVte7-qG6BqjRoHpS4NA2Qyqf0f z<)POzIj)n#i-;hKV^UU>uJFcUZfknR{-Xt2Ny8pSp;4Q<1XtcYUS~H;v=Wl=UL4RH zn6nyyKn@uFD^?!p8NbW#dY`wiw9P*D`bZyST-yNm7nvI)gD1Cpqz-RHwY3$*5@@OS z-@PCD{{T59>YkS+w!f#@YZg}n;O}D(aC_M_P`-e=HU>ATK;waP%EpIX-kA3i(HxE~ zK9(_=L2d=E8C>J*2E0!c6ztLGv@O)HpqAd&KT~9t?2Vu_{{Z2!xm@g9%?87E@8%mq z+P0Q<(%;%z+1Wj!=3{V9p?uIN%V?m?V`OgN2xxbj4@P@u-JLVJT2`EG<%{85A!{`E z$lUQWrp%p357cwRa3q{c4V2sWdS#ZN#te*TprCQ&DaN%biRPBk?EPZG8-bCnlC{0fwp^JE~jYH*+a!eK&CXtmx2Drp7X% z?IpmBu0KyI(FR*>rO3i7UsXJKwzT8zL3sE#M;%DVk_=B?wU$^NUICP)2aAd2#)u$& zdr7&PThv>qZO6Ku9;+Ex)GTj=l}|ex|IY_ z6dr7M4{+{nTU6AYcKedaT{pvqdV?Y_cU7QJ15@oGUmTF4?EcS(Sd`rAO_JT>Zmq0x zwEAQOjN-g&=A>`_+}K(}ZJ-SiH>nxUL!L>l9N$2K^Zx*)Iz!){X(BN=fn3k4LBlYk zs!M93c}S;=Wjk-)MK+E)k+Md}_qEP0A+F;`IEwuWgtm8XM}4VUTGu(2Or}N=QzL^& z7*GLEp#l(l$|z<2}H1PoZP5r>Db$2}@7f zF+kWZ87m(4J-E@NhS2**5IG={E%wO1iYAvdMqf}U8|$G4xpJNd*n+D60BKlTTDk!K zoX-@@!sk|kxQ98waY2Y&ZCK%eIkFiZGZN>9`c4#}r7;L2%l!%?ahl=gqNHRLs0O^a z(4gTVwzY_elJ^_cvCG2VL8-xt$o0z4ZS8F`14u;49?19(Q+3aWX%OFS(;KdRyuA zv+%dwsi5&z;qFW{UvOT!{`u0EXM4#7!~;?6rd&OX)xp|BYI_B?Vz7nx!Ho|foYis6 zMQ{}*xRoB`lntS5@04QG6$mt^?=?J^mzTK`$uzMf(K6fxx%7BMjB8G4P@b*14q5VI&hW93YjYt!rpN%Is<}H1k2oYw=`gHpDoQz`RyU zalyc0UT7~?n}$IdWN=mBdYek-4#05)jJWVYjbC4CGhX!E*S;nkz|$}JhZg!kKAe<6 zki&C4w%s8aji3g&kPjacMNnG$ZG!2(tkS$@sX3@K5L=fP^6){=RfhAW1LA95GZO67 z1c6Fm5Lm4D#r=Vr$<~Y!u(&bChmR5ot#Ltv?rp=WUp3EWSgP!O&(r`=00^KU3Sr=b zUANHG?=9w#$t}FCW0)x8m8~rxv^4q%HSkwk+J=kn8FgzdTI$AGB#p0hgi6rYx$u`d zgl229RCoc!bRsQ&>M1kDbv7(>nG}zsTv*aWI8!m8=7Kog7n+8jVjHKuvPwW8w1Pk) zqXSS%2#wczCf)5i+YxE?_Sq1w*ZTz5BFbt94;I@(yew{B@6 zwRIfUH2NgX?wW%@Yl078J73z~-}d^#-YaV>N8T8sbeArO2MK5@dXi_#N#rS2&HbW& zit|h`P%udzW{@0RI{|3)kse&FAQehoQ@cvIV~ed?_Qo^4vBKz!nL^y8vmq@cj2Cuu zC9OTv>>k+eZI$b4TX~# zqJm8Bjn-t79I?MKc_p9}Rf zQUVOCXYHHK!+8#s6fT|e7PqTH3{>>UNM=^kHF%B)H&?fPw$V0a>@Iw4y1i~*yWG4hJ#g;)5T#)uI;}96*4$HZW*%8sKrn z{Urr6_Y77ub&VvpG+?a*1F1qyDOw=6-|O!9s2yhb<+F8Po-)?}T+^6W8qgFN_PMwr z4r46cR=84XQPg?F5=}^>u|XH>+M{k_o+yZxM#AvtP+=w%!ju#qNFhCHSD0gpD4N$w za!f-3%^?mU#F5|*0e5FIQ0Dm3*(IEkMq3-Q^xRq~YfM4*t5DTl(X&m3XP+yb(`fMn6OJ{f0#}(ez$ofuNM-$K`|nfYgwCt zG-znV_$r1*`*=PRss42<+|zpQ%an;MY9NC~%QgB#QSX*->wABfZS80cl{G6_t9h4NN2CQxV`*1Vr+PKz{wBI(~fJF3bi z#jNeC9YX5S{cqwAk;APkzY#w1Cz5U1px8}2=TBbUx+F7cx&ticHm-_y!w|~JeK|i` zrP+=&3cR-47S-E6t$OD=>6cd% zzx=}B=ip67H1SgxO}vI}rS`K_c*`BMtq#gSdq}Sy6&U%hy6@ITYj4?oRj|H!n&_Cu z=O&zJ2^FRa%yZS>##0CvaP|vx?rmagrioo`4272NAdtrKC7h{JuZy~Pz@vxdXL4K1 z)q-OkBli!a<|W0%90<+iR9!KA*8Vax{k(h0+W^}QA6CAS761*Lrb(?#N8OCI!R(-? zwR6*tLWxEm_II)-vD0a~YhD`A;}yTIfKVI-DnMECL`B>=B34azes^DYMV9(zSvAAb zSjigpQ`7E>0mH#?BdZ;ux-IpO;`)ZCd3)7(l0f-nEHoj)j6RS84^%!;`;%p(T*qg3 ze)mXO6C`ZX7^Gy4V{@`H@&kiifIQH9Ikhh|?P5C%hF)7|m8@}duOrV#G#V3|hzAu! z^Gj*AByqZI@6;lW0YTO3HyRodQ_7eq8*{XGrrpq^Y*XqMaSR0}y@)stbgPCqpp@;m z?%urv;jir^4#J}LBgg*o45k~+HP-E&_qLfHD_31c=8p^kp$IWuTXSfZ#q2trhFTi6 zvNpI-@UJ8q@4tJqplNQB7_|#*0cW z<6dLO6d3~@ZooRG5`PX#A8lw#4vVYHc7Pj0>H4^Y7{%F+@IE%UGL5MoAXk^M1ZAys zAqA~#aB-=is4#6-2V6lZiJ8e@8GVfa;q)NY?&4{Bu13cNyMU3zJTy}v;f@$o zVuMpVo1@)Bqt9(LW#qNP)$FY)^q|n)=eFUpu)V&KtP(cdw2%NGG#^jUgH?9k(y-Sr z=9^II2n4eR^%@I$Z;{4=yg{nIIU!Os2I$vd*+#%4C#R92pf;z41{DfMd!=q2Mm9CA zds-WS4R^XZfsYy>ku+U$;^(5tOQi-z03JyImjFJc6Us!7quSnT6Nq7qmp#pE8Zo1Z zpcGUkv%6<+-RP0UEU_7%(`%bn)Wqii(n00#AenTXJ6gJ9OcKiIq-|W+IOJ%ha`3=m zf(a{3(Y0x#irLN#%5yZZ;sB-q_#S8`O%Fnz8+Mr(WjQjtHBW_4mjoG&j%c39L?8j` zZWuICwq`WZ7hRkD_H`ze#{S$19jPxMr<<2tlqFw%VkZKM?!3 zKQn`mPOWQkCn;&Ks37XrY+H4u-F#GrxfxeH<6O9L6x0zSlFR(tJ>1w z0mRmTE{BzS^K<_I8osaj^02&A3@b`5 zCT4l_5{`=nyb(a>#Mek1(i{NIUPK!4s)0IeTee=xU<{eA%+@*Y7*e8un((UT?%5lK zw6u`~@VL7%e?utahG0!U?y6GsL$$D5{27m|*ySv44|Y-RjwJIzb>273v6+xuIuje- z&>qq%Mpse3VFYieTw8iw22tt`$~hVwe$*L8+H^9#vdff~ftb6Cf#rze5O!*_!E1S% zHn_m|8n!W3vXu9*JZttKy-NE=X;NIq=QlHR5^$lRz+s9A-%7uV?)F(X97IiS=esTSI{2C@Fx&1b3;1%L}KBWdY7}h~`15tqvrV5pJ`sz$OsL zW@}<_XmfqsKqQ01iNyqMytfULH2bmEE-Y!GarOJP#a(Y~A*NfySG2jdy1ig%yof$H zr2usu7^nicno)E#uXgSWi_5p#Gd^=8!JF|$L&z-$kO(Xj>Sea#-OqERzwdihO znbub=43;;&&tsh2t#e5)7}d1of^>nmcMY?&LfzO_$O>X)Z`Gv(V#WHDW8FD1{RFv`H;h`LE&zRaAh7E;9a!D)?Q0y^s!KqvD(|o$ibTcNuCuv*EPGzUdCB-l=13?vN3fe? z;dHx=ZtOSWuS~xUGu!Kpu}>@~Be;6HbwNExFpgOm4RNE66>%dHc$(D({>NLm(`Jd* z?|mo^Mv?#sC%wJg7DuPrw&j^7E^b)~qrK7gswbSKC|LJu*H3|tyqh<}lKQd0yD8v2 zcqkM-!|t7<_VoI!OcP0_+6&0oc*_~Dh9-*sn9&Vc)BbKW$y(@c;{rg^3kemEkE{$b8!3USsbJXGFe+( zz~Wg`!oC$wn{*HTeA$tS9Toc>Jf^Zl9@4@Mb2#Jg0-ZMKF-=dsn{mKP6w%=*cf8ZV zk8W=Y`jR3ekdF0U;#gkCH|mLc&UB1xjYp_ZQ^(0jiFGY*=Ke`Cmqr+A6%G!~QT9{q zL4#@*SNf22QUQ?EQcf=p<_9nkVK=?Kot3(`wsel61+HP@al;N6uA=L$%UnVemgf*>f*rbm=u{}mqyi?WU zD!oh>#?7^!Kiu21NJsK%Z@0L~Lf3*r>4i@NRc~Fon|5grqWOPr&DH5@7RCqC|6o*g;#|<+gaVU>`~hOoV38WfHd_XQ9Ax!1*cwyQ z`&Mkd6EV@qu8!xsr8F&l4rd2r;7uvZ!B!>>HXCQzLxWliMOrvkf~V`vJ zi**}|i+S%GlQYDQY+&QYpfpzi3FW~C0jM2bc}Z=dEp`Srv<%)<0)+*U_8N`EtZcUT z40$9B#o1edxK)vvz$+ZN7)KY%b#e0Oj6BcDgr~g6GCYB)XL}C1pZi(RLky z4S0w~;LvL5+w1TImg7VjOnMcqywtdB83b8rk&Og{`As~63fsLZYwLGgSXtdV-Pjkn zxxvE^cN_&ct}ec8z0s5xUc4fz7XgP*G^=fwt@=`g@m|ah{Xq?TVuXE z-&51=Slj7L;s)o9%#o}P$}#t-+<252R^jg-a0an8xw)XrhDoJsf#OR@a4jSZX~_f! zyZ83))iqci`?+&<8rLw-DF-p7Tnor26dN(y8(mWFD;HhOSG}#1(&uNW%R^FY%?GF5 zrk3i;*4Q>l2{DG#JGkeB)Z%f&iVdia{_*zgaCCsNpw~0G`GSKf(skLx7|C-;Z~(o< z#8dmklo`dn%(FGFB(zfs5-U(^UI5Vr)8XZvptZySP(@BAr}rSExVN6yJHvBkiOsDm ziLFN@5xn+y6I_?+BkM}0fGTLWc#>bh9i$shM46Sfrb!a_^G;_IILAr*UeE9tl z%?56pKx-=ytfL^KePm;XC_M4Fx}QYVX0wDBu+1oJc;w0?Z~!;m01u&G9FV!)-`>v# zc-;eDIkYr8hYZ6SsTednic3edxDYb}eSnJ91i7{ML^mcX642=*1<|;*bE)UB?s zpx_!sC|WC27x{I2>kC;v05S-D0{|G}OTZNkrZ}L3ZgNc_%bBP&j7=B*G~ z^$lBd+g)aT)Qw}PA&v7()C3<VkQmvWm(gs+l?rjL$U8tNKm%s~X!m|}u} zO{ibGLQIcg1WTRHcc_Yt!Nh`Sf;-(hW=N$Z427hPB)RyqAKVk?6RDe1;3~(}y zE)@)K5yyZOK?-kco9HyVwzcv%&})_M6{C1y;lLo$eb2A!>}1ih@?M)<;2QblH0O<6 zX-fS_HQROE>$;OCjn`%)(s!-0xuoIZ*8o-4@6*!qVpF6X`B{+A$`8 z5N zoB#yXrNGe8V0fUNcHeBQpfIxb84JXW4KD%3r^UI31bHBwHm`29h$Rk)J%qir6akJT z{xM2Ar^R!3Y>kA{_S?QHCb7mR*)gOxGnc9!(!rZ8E0j8;!BUpMZQV@h_POPnMu^#& z#7N*yP$&s5#Res=@B2M>Qe;AByQLuF@_2fDPd6aR;%%+ea5%{*7&sW5=97m9IP;Y9dx#NN0hz&S9fKZc6?tG+|PL6y18(nGIR-mh5w0;6rk^ zjSnv(gITw}=CFv~8Sm}i5Mzu{w6?N(1v8EW*O^ya+X!jK;oWZ3ZVN2tiI&ZCn;;lu zp`mF2^5(i4`MGYH4fN8$L(J1k(M}ojx~>$Z2`DRe-irNVV8?+YXbEG$b82c%4g^&O z&1gNhv4#Ht8Fy&!A91xHatAMh33E@=G$<__lEM}iu!ft9c%0w}BP&aoa@WBH<4MxA zyP2`Jw{&@iW^^K<6|Dnu(A5OXXW4BxR+C1XO}1+;F0O6zxv@39GF}{LTF_g7rV1|Y zk?-frk7}-T9k-@ujjxfKYz+m>X*B79O4EQQv{WUw_Ip!cji6SobDK<{ngS_G zpvYUcgmJV!M>v87UQ3TWDoP8CTY5Gyxvt7cp)I3H72#3Hkb@o8v=ber#IXS*$N|8B z?BMcu8jrCCp?7DuHn+NVt8!t1y=^}6v%n#brb%NMdOJ-5EL zlTNmg@BLu#7|d}PQw%VoqIu7%Sv7;LF6$x6SVbg`gCnRh4sQog_^1_noNT?*Z|tZG zOeWtc9+3?Q5oI`ZhbHh^5c4l_Slj7ai&V9TBb>|Yh{MZ4EnujnPv9OL5Mi3V+b$Yy zjl?u)AcoKoDfn{Y4mcpTUFbGjg3*x2K2s3&xu%5EfN|n#P+4NrMxFkaM;m!uOEShw zD#nU~K}r_}{irA}r+jP>XLd%pxnG>srlNov;hTX$VADP^_qP&FcPuQ=kTuf3AdTEy z0dN4|F~J0;qPVq!kCH`s~2b0Fx6edXC(KIwCRYOHe$lYh7cG4G^G`yAk;Lb!8OA` z&(wZU;wtA*2I6>}Rkq}tVw^-@xHJ=QH(MYD&Mqe?uc+Zug-V^-)=|ZR>Kc5e86DAS z^|*&+X(UwAr-`cdvCVPYKmB9)FyG%kva;EOYddOk@TeGa$A=|jmceOy_%_yUGD(1> zez$+991l|;U(;3d^Udg_-8S{Iu(h`^hEj!-<#UU8PzO}zAqH!t&2G$@9$FgapGl<% zAc85tf`US{)oi7Nw=ge^9L_%R_MSXf7xqt}wZn6o=1E*SZI7s08YtNYR{&fF4xz^$ zYZ?~4QzZ7xoU=A*0hQUZNLtqeQy}#ml&A#pK`M54vD(jdC!XRqOJSfzD_cINGflLv zVB;KQWiNBb2XP2Dp2Ov1wK`3dQQv7-_t#QH8FKrrW=NrAf`N~PuM)M7k)WIaBv%#P zmvqfW9k2YMcAHd+QEO|dSlnD@VFhxT|-eHE90;cD_t^X2oo} zwu1NWox0ad`6aN9Ypq7i43u>Ct`2N$8IJ*t4O4nFD%YJCVNDI_4w6a9AWCJ6q5-SF zNWqjgH#3356yA*rrro>Q&0kr&h6_r?1L;{YY*CNO0H6mNt1Q2+1mAD+-=xEA*WTP} zcQ*}^j*>GRtZ5BrrKWOT&>dO;Xe;Ks5_a7AbJO)JU@i44`$n|6jCJ+A4}&{Es4_4Y z&=bLB&ENDyt=pI7?^V!8Rg=Z2TfF|I)}F^QIH)~5a=Ey1@ikQlgK=z)TS|uFY$j=F z^u{RaHK1coHKsgP%zcoUKzCXkliWUOArZZ=IokHOGfhSg!lbUo^j=u9IiF`OoU&VV zi%7W?Y(j>CvK(;nSP+JH29z{w_FqORV=2o_#I?WOt!sxqB?m~js00B*0UnXVm)L{h zmekg?KGF~Us4AIc9ct+dYXq$bqGMxi(Ihk~@o=XLTiTBQUL8 zcvie>Q>t~5U2U@Tr;0~t*2qt##f>C+)```2vM<(suhT9hW8;cB$*7g4Ham+=X;5jD z;+<2d%3IovFHVQ7#zgqsSX~cIhDx}A0422m9x2s!vNMe%Y3Oi7)|)t(K&UT+3x(V7-1zOSW|%q7%IvberLFdd3NA0?LQUH` z3ttR>#7x%?84VowJC1DC%;QyEWhtjiwbNnf#MYRaDd~3%2Ow|(MDgY%7TM^ogf-b( z=L|?|N7GOgQU$E&RuH({+O?7pXyE2F;4!JMwJ8IMb%$Ajfq*mpQfT&?gN>0U}}A~?I#tbuq9Z8H(>w;XUM zg=((1lp$B8Xu4g*QarLSWc>qHGQN!r%1YSyx{ z(k41Pt9OSsQb@@&2*7ayoDgmng>G!LxL@wNb_V7Ghk(MgK@o0^cH2nTXZX8GB+LNo z15nJw06{z|O%P%lwy~tid1&S`GG==VV#v;+#%RC3gOC#Gm{Q$OwAc+XiGo`moS3Qs5Q)kD~UB_ zaW&(de$aw5y^`&-{*z0YQIDD9`w(|ec`dsSR-w`~H!d_7QM4Y!7?!K2L2+kwBh5>J zIEs&S4hP5}(_ZH2V(iWu23R9-7z$xiP=i!;ttGP9-C8;}5@0O^v8I)8sDei`#Rr-F z)Z13J8rz+0#x?GmS&mjUwCKp-_KFM}P_#!RA)P{dds}nYcTT4ar!TXI6cL7?ZZoyE z?GFXb7~_F7Cm$pe4#BhzHs)Xh#L;B~fjQesk20cpPoVTiu$p@>-7H-(AdG-nlp4^~ z@*q`Emh44i@V0Dgvd9?Gm8}ExK>XD3L5u1aBH`trQL*4fFeDlR;BYi3Bz=RY3EIhs z1cw6BKqMSE6No{yc6wB1(jw-ywQFkXP?MJmkO?R`zfFoNJ%Od!fUPkDjX@%z1~a&< z+Uw}aV@c_ZOImqiaU4)}Lm7@D)58ikkQL-O3e^Sn#?VSV4Qq2Su;l@@CxJAl1QCAm z4H4W!M%E0_y8(-UE+qN-&}*ICIo&ldYYUu5D%8}{w5knv?k=ZpWESqDO$%JngGkGT zK%giz$9uZbtho0<%y9rT)|@IiAlBV(dwjDT#D0soeIZ|OY$4`f%mv%os9i+~{V4>_ zV_)i$Sxd<+VKpsjJc5y_yGyp0`@2`8t!AsFbcKYH*15!&05}R0$!xan5$Knqy{q{_ zhW6dJZn3G#+SWD`S`IZH)SHI&_S5Ae+eEn+QR&QN;EJ)3#>TfEL9GBUGO{=OWA<}J zp23=J-HUpy8FLueU5Lv{me&%Mk=MMwS)hkaHIf9a0QlvH9eOy;oa~k~JS5dX;-oYUb%wG37#MY*{Yvxt7gfkls>uzSY zI9S%cCsHc60^WJ5IB;BF5kYZxba$1Drfyxwy{9p2oH}`MZd`pihk~+@FuQ3k zVr{+Db4nc665rH#F7>>J6POb0c&MZcl$)blkhUnUXM`|kA+0Z|=HlwqxP>%0Ce_ufj0$qKZI^ zcP6K*Na9-ePQwGbk8_FTi3P;)QX!UI+zF-tdR-%nzqCt@N#sys-8Wrpt+lCiGDzpW z#MdL->X6#|v_1$otF#@y(`C1`lIfAx0|Sd1T`P#G4kT6M9%weH+iOM*%LAJualyb- z>ZTZ=qPyFAVTFKNLzs{TS&20`3JT&>Pa#ihwqS;MofI#Oi5O}s(eDp>fK)1LDQ>53 zG}hSa`W>{O7RoJS8Gt!mZ$~-J&00Ct#Hg%~(BEdXJA0j-VRIW=T`i0ZZ=_+AF~)|R zz(FNVY4FZ1$}s0a_aNz`d9|jvVh7ed&~`S{rXMdBxrMn-AQC~t>Oqa)0qboCtCkc# zROW&h?hcgJ=y&&Jt#f0JY{0Y-;BBWgcZjQaQCW}068w7n>+4Oh?u2iKHa9)h(Rphc z+{Lr;bpWZyim+-Ux7F9emPFh{k8MT-Vn@6<1QhV^08Bx%z6+RTbEauEiw3(8E1Mi^ zjvP=z`_FRA@siBSo0r1l18VGYpH>{uZzp4SWyZbROKYag#>-(lB9b?Hh#~RK1x*30OtWf4-61jX?vSgp5iD4%Usp~#)lF`0jCZWC^HQ|TfX?> z$H^p_WO!_XNA#nkz0%6%^r)l>i%*_!g0^s#;Jw7SweA7c1oAkFr65Pf@8gdC&Ccq8)=89_f(t{aL8!v0 zF?MS*Ou;5<#}BGv`nYBof$FFPxdut2wbv|hV<I^ybR zEyQEga*DKY1*Cu}!mUBJJ8Ng!YS!`f*kv}Zb7(16kkUEw6u|~rW3e>nvOw7SZe)Zw zxuBN6m=MdT)&gbl?K@aZE-&#cZ z9}Z_XC0!}5Q2fuU2sjb}A6gAk?iSXCfL2Dmu(Y|wpa%M@KtRHwOiafirQ4ft^tBd- za1NEh--rnbbt}e$GIdU}A}w=Ix9W5yYa5Z|7Y4Pi^?IvNE6r=iKcW)|r*&B|rL1SE zjX7FP2_u##61x%8?IE4cjJp=NwZoM`H54Aj=-D&T9*~Zkbc(TkO2RnF_-NSoH^r^4 z28Wk2y6T-|>9^}2;_-MHms8B9Kr9vSKc(h)|`3Li^W1f*nPa!ckbrVcD;;m zo8zv;m+b_eg|w}4bbxXZG-mn`dl#W>jWc8D_8VtPgW;{T+gPA{PH5`SaMm}gb1Uc_ zAbW?VybyD`hC|dj-%>F-om>V0o;U;_G{F>2mRZhvHj$UrNP>)DEBqp$3Hf#{9M1X`02p_1ZR43mtb+jvY$I5z}s&e)1h9 zSsqrkw*}5E6dvjfn`iAiohw3y2inBzkkJdc3G;vjKmZa)iki%F8OD#duI}D#uPvpw ziWx|(?8^5L)|!kxQIKh06zZL1NY=J2(sH$c2&e;E&;v`Ui>L-#pA{9E<}xUwZPm1e z&W*u*aGn9~jjxcA!o5ctcm**t z8jWAqcEne3Pk&_C*)&x%#g(;{)W)7QqIF%Yjo95gR@(mnPBNS?V{R1u*a9#E1p*yykp{OsLBhN$4L~>? zJWxuS7j1RTz}ECx{)x_LZ^5>#0Ql5YG;{JnFlb*Z+U3!XOPA%fmF#O>#IQJuyUKvo z1dDC*fjj`q715qaDUvR4C-B$UgF4%PCYzzvzkREPlt#AVq!&5BvDL&^2Oel83lEh0 zTbSv6YVNE}Eh4xmgx>4t0xsq|!NK0FOjYZcCu9COOX(<@#;z<%*n zeZ8=UcAcVsshT=rG(t=O{9`w;A5xKf(sZkfT}hu3D%=BknhXU=9tbuIMbizon`lY( zUFHPy6yR&c2M^#u(>xaf2zEYH@x^CLt_{6;90Dm`?f3kvG(QV?jw}Yv~0ZN~* z=s}X|THUp!lV;(Q(@Z#^p&E^@r3-EaKg#Ly0Mj$D<@nG?dd2peX7QT6XUj?t3gOO( zFP4$pT-u3T0WNKE$A=CyC-yb-*#e8pAX)H zNH?A5`+rQ-C6LvZF+Ghm;dE*p^k*nM@Z9nL03X#{*uTuq@cRC2yLNjybsL=)D?+xvDaD@g3IH6{Ewk0Xi+$M`m%9kgaVNdS2P zPrisOS9(>U#NZf9{)U2h*MbP&Qo6Cazi(2bA?S>Gw9x%%GMig1EtdI-2QX>GgTlYI zs531iPtzV6XaH*{3BtHn$RLmRjC*>_+(&X7)N^x;1}$-Oap6-|lp3wO^<4tpw-)y8 z8KjJmKmwVIfX5ybL8klfPtzX-%!Rpb9hmj&Q$ve=nMMda`R>lAZKK>s44qt!HGdG` zSl0|GLPcnUO80MYEre6?AEPG<{{U+q1A@NZ*h56OPhWa&NZ^dshIuk^_j8aq^Tvut zqaQ0DF5eS8H@9|S&2(|RIMW==YpQGQR8Cq=Dw;ii*qxTsbfIVdh-1W41N3mjsNM4@ zpL9;&TUuL>^kUGH%;r4D(1R+m+4kadlA+v)!tJH|fU& z9&3010BY}R3)x+zyg_Ryc3H^xC8#bn0<<9pokMB4X1)#7b!SfKq#(cv4RIj0w5>fP z*XTh$ZOwxYqo)ZbX_iMf7L&}33FkmpR&y5nuFGmScYo+*Ep~8Yfbb@?rZ{ja05YSMF#1;)@*#KAJ4nl?6D933fHCL9AFWiDFT49)E|S*V z*v&l7cU6xT?G$hMd2?3`YH9SVG5DfTroW}O3vc1aIJ+$_cf{07n34Wf1qkt03x3ku z_xDnpJw_@19n(@dr2rO;tihOjpS=Y6ruJ?tnOW1DsQ1LuU6z1ENucAz8m9rzSM0Wd zWen|^?l)34kMP7{P9uT{4{>%UPk{iOyew)VrWcSLbA&Cj>Dd3>&}E_P#5DtVM1 zllJ3mi(N6UxBmc3=xGJiBoYC_ybdTc1E&xjOX4s!K}c+5WGs6w^F59ZYiMzENG%^p z3MY`yww;UbW0uLqVA7a1+g3-Mk%OI3Pxg;5VhVfx z<7pgyLvSL>9Nf4XfH{4CVhwQDH>@|e*F@a)qK;QmF~rd0LtY3bKbNlm0BQR#az9Mf z80hxyuI51_9O81$eGN1`D*RA-EZt%W+TB9Zj<>mJmI5*TCyKKlFo6cCnnyeeRm9=L z`eK74vfN>pHf)FAY=N)-@WI~GR1*cR>~*lT%n!Ut1aqc1VmP3VJFnflZL_rQOW~Z3J z1=b76<9g9NM>eo32PcS zJ+H$l0C6Co&$iETC8TgZ)8RVLXd^XCszncwLAjd~TaFm4CVvTB(SossDYVVd2=8|>d?8w` zFr!~liTVN!j@vs<%E~y+#5ra365Jh}0&;=G3RmqxGuig5Lf!f%y{BI3AL(xNOUdDv z15Hi_2UwpS4rwl?Nu*wUu77!Sjh1`j^qy3?BGb&TPTa16>?a*{~L*n=O| zHM=c$PrHLsv-N)tmRLneIjv-TwV|yE%!6I8u5`I9pBxr$>VRuQ__24FiVgbRdq!JJ zV|KxprBWINLwV)GycAo?1Qm4^Zcgtfcd>)W9lZ3CbATTz1MXQi@Z6SUKnsRIQp6W>R^M>-I?2cH%GFEqir3L7Va%*AXJ7D8$*sO zI#NcPp^HMmK?ZWxkxW2#1n}g8V>@-*tINm7aV?0JAm+L!xuiLx^Kd7E4XKZ1#RZfM zx3cNDur@*(YDolPfv6=039WYWOH(bt)3Q0hmbNyRXLEr8&MmD7Cb*#J?bm5_jbmPh zd&?J?3*6A|o6B0<>>!gs1pq)S_KFd6gZ%p=Fyp>`WbE^ z>97in0TkeH_8{%iw6|(^eP=Q5iKUsaIOZ=6(~N(mnprY6ptv!)%^FAq3IeaUwh+X0#^cm+EOcIx58;;}re}GYDH*ob zv9{E;Q8c3~qp2gwyiPR34`QNur6Fn|u+g#H$o^DlC+h}#Rf%b1p4IcwPZ2?9M+j5W8CR$OdpgQRRvAP zfn&DyR+(5`B+YA$0jo&F6ULaJg?Gy?wGG#AE9%xqEKh~R5k|4V@igKB4cF}i(`pmx z!senl`fUZk(bUVrxL`amLF%V&^vyOaD5tl|C-evUhxudzYs2vdpqS>EIkCr4>7_9o zNToc`cG<-&l2$W9+8Q6lTJS-a$8_l0*yfw2=8PH$sqw?f1|7U_@><44%$a$Sz26g9`W>)`JuhUX;g2YSz4pwVz1~Pc=?nI3Rw31B1 zj-`Dd)}n|cs5a%*ow?6)=>tX~+y)-;_HaRk>y~%-kvh`Zz_sqnBY~(4>8pUIUsWr{rl>U=xm~8xVUGA}PIb(O++&(R&C_mT zDk+PqP-q_e?Ushd>I{-o3%YW2BOD_ca0AUiS@F)43Kvn1 zlQ1TL(*ug=d&$^7)Ip$a%V$es#@!r;z%=A(rFak(6U{BK(=^Y9G;TB)fsF^490Gxw z>9)fuJg9wKtK@m0u51run)aGGjt*(4z_ipJ9w7vow_bau4!-ObwQ;@B>jjjx3)T4koF-=%2DAd&v}27*3^P*QdTrBNYUy*k)*YOR zwxPTM@u%2>0o8V0hOrU7f#x~cS4L_&Z)x=(QNp5#J2uvhZu^$SbjVoiW7F#O8B!W6 zn~#Y>EjMs!8V#GHl2*>*_c5n1CBBw`J%XH2Sg&;(JF8|+>)TeG#o?Jmjtwr%F>OU? zg9_ERC5ziNwDVa#k~A^7<1HixfxwEI5kwlpzgeW|^G|zea04F4I!3}h95KoTXcgA- zgf%x_d^)?OHm4|i-r(opNG_l zk9gpMf7m^>+|00jz227A^|-^O)kEJ9ygGhqkg1-Y*sO&#Y`MX9d=7u57sC zMH`620#HdhcXRgb%nkUg(YuX78L9^lrl>1l+>NPj!!K4$J>1+0<4V(*K?rZ&`9~B} z#iv^_t|9G?cQ_1kiV#l|_Mr23<{y8~{il6@sa}yZt+^45z-4oq!;}(uxC{p{6?gb1 zACvz8noVYHcX`h@#C2HN?iw6OpbwRV3f7p>dKf!V4NKJR;I@x7#m+~Wv$QmWR%B?d z2ZeuP)*-Fed35;aZLIaRGB`QTAXZ#60D1aof-?RaG@t4-3Z6v%TI2MfqLvqzQO2?| zSmcb30J5BX@Tv{4?GMau=h|~arRp$$6Vh15!fozY=QcQoG_-vv(Np!Tc{}9|@7kT- z?cV6NWYb^V=%mKid>ph9{6Q5UzAC)1JDFSwA)B9LTHD)R4aWoI&z-@oFEuoAq4%6I zz>tFHsrRRDS!t!ZWG~gOfWWz~BA!4D0YRu+nft$eYF{0AUTw1g#uhrY!kkc4McZv| zYjEe=HMGXA1aQa61!3*}xX9v(md$W`gDTKS8L-6Gf|Wsi(YEHHac%r6>J~>Nb7c;9 zq>N1*0Xzx}XL#)mN&xFP$p%Ky9BJjV~9sm z=)Duje3$gv>3RMD@sP7X$Plgmt*Zi(W_mEOMIg#JSjE&1=Wm32Xkd zZ9I~Pvk+WK0~%xDi3WN7DRFVBttp8sO}XMNh|&%$^GWP1 z`kVya2lNdIZbMgB8i7ngpOFIlaq`)0@IDlgf#g65@*_ivJJ$OLsA=T<2zdh#LtRV- zaUf6+6!{P>I#$NiG+A?M7G=e>A^A>9gU2@t3Ma^o1jn~F&DGnj+%4M33));x9+S*h zimx_kyA{^!0#lnwb1h!R0v!Z0Ik;n3<8!{+FDVa2{zx?;ZMC=Vo^iN*`eo~z`1)=U zHbNOp*-L6FgJ^H{KhwBz1jAAzr{QINVDX_L1mb2VlMG1m9Vhs1#MP$H&964nl zwFcOBs@@ArO;wBpK06t+niKkcDY}@9C`}M(rS{v8RNNQ;01XRY9Gac!eqsR;{6q6M z%Dhl!TGwU`=AUaUF^EH=X=5A2#ZqhI?^Okvy@Ifk7;buHganA@tsNdNbtnNiE3NHAMKxUx zdtFNU2cOZ3>Tt%K9ha#80KIfQTitqOk?GS~+_$Fb1A%b_HN=cd9B3TV$gU#$Y0f_} zt~%C-9-U)#)*!(%2y2cE%s@E7nA`DlwW6kJiT4;dy~CIRI;`-R8@Zxv^LGWjlE?$1iOwx?4R9?4 z(;6C@Dk~bLC~fV77Nx0Md_xOZ#8+x3;%u@8_+}N$&X@`%CrK5TJ-gFOizc#)j;;l?B$3Dz zr0F9++500*(qSSi2%2459H0zoOh`&jgJE{YjSMhHA&w@o-jLQ2m>Ppp8;BTvX-U#W zyLag^+)2}9W{;>Y%1d|yfu$0Yq>sB}O87RhnMiG0O0=|LUSwjFodoftTeL}US`0an z<@cp0L7QAywpQlAfY30;hacQhlcbDWRI-9AcgXMwZ9qJEa6WY@Nzz6G@wU;D%z%)8 zvtPF!NlDOJ_X90&G^qh?3z+`^P8Gv2;pPJ3ZnoK_(-9-jUi0YP3x{09#}L5i!$TZs z94dJl3Y8m}{{YHAI36$j+h}Znvi*tI&5yL6GZA*a4Ro1D<+$xn5lnvze_sF<4a zOFzHca7}d9+d}ra+!`ZwU4}Hmqyfz-It-^x+h^f{Fh*F~7nuD{4H&wB8rGZ=lcbB5 zncJ3Yx}~&M_EWyp+`%l8Nfe9#wpO@-A!ut|h8U$MNgI{3dq=i3s|Z~TQH!^RiI~tQ zer{tsYFX_{PJ-3BJ29hbdaI`C0hl&~w*o;1fZ#X^B_~M{rt|Cug@17bw#*UBY|tJu z(ZrFIP#i^Sl${0hMcGW-5!f-bh(N+~N$6;$GK#n~RMW*NI!M?}hrKSWiENJoHpm7p z9<~B8ZB8Pil~R+Wi8EI2T(;y~#0#QhMI&jVbGZz33X0^O?e_=%5WOJDO#zzhHv*t1}pQpnx9-7x2Mio)H zkNl(afqRnrM@9{~9Uw5KAaJfCpkq|r$No|Iz=r#UxUcl6&BQaa{HHpZ$EJgc#1X+a zEdKx~{Kk!ME%~TxV&q)hGD~b7{q#RjDJ1Aaj^oqu6!+O@Gs z6T>m;l1pvFKqS1tC=EDKD;keFx4xrsGw!Vyh ztHaWa;`XYN=$PYWIK;le^V?((ckz$xYneQ za)U}yK#(*I$9HiUfzBX2G#Z)@MQd94RR#Y40A78RSjg8r3INvv>U%3x5k~0M<-CGN zMIbIQlIAtR&mO1p6(9hEU*_vwn}H)-?4{Vz#8g)f6bBv^K>>FH{r2x;85{bsweBP| z`dBzP;ZV`ygGT$2d3CA2a_8phHRZ$}6<{K#hYWE+=7)AQHd^XVh4a0xk+M_*X@Mf6 z#4GLXLUZ{@me%)BwThwQONPSdR1#VU8QtMf6pwhe-qf>;ZCbwCItI2P=^EO!dK>D_ zFaY~i6U{3{@c3(+pzlUzfYS%BH3uI}YE%opn{aAvkE9L+;l%lhAjlZUIn5bKtC~0- zW}XNn?YV9m#@7Q@;C-UF8dU|qxfT%r00z3akbd;MzU+y_fx&|U&_e| zIo$VU%rT&;IMD@~Z&b2ezUojz;$vLuj;Bz#II#XO+@iGcK`B{Db8V%=8Fa3IGr*l2n#JP>iFnG)Ql_kR(dZnoEx_jhx|nlH zPLeRK%N697j?5+L^c(}^V}LcO#m)d#U2h~HJv!On#Z8>GlQAwav=Z?dKJjR&%T9Ds zFZT_LPIR9PK$km%B&f>KQ$SAuMG$PqXzxa{=;EG6hvjQp3z`eape3T9pS1^~+bdz| ze*z}FF&0or*SxeaxA2_D0@82?n$DEVr|H^VtWkzTZB~|&1+WyM99>E@4<1M)?WH}W z?tEs_E|fr*NYV&vN4(?iThASV|M=l>E-pc z#iY^^BcIiU*m?wS_rb(_d{AsY!|(pq-HnFc`uaO*T6%6|w-H9t@F+jbc*eXuP;3>o zot^VpbEWDLPZOC^89Z_|q0}If(m*O{Iu285_V6*zxYR{JBt1A)udS zQj?^OL+>|qwqDk@xR&o)w--^DmRm=01gv>z`~|NxB=ZSL(0GsYMe{MJ>h|}R+J0|= zw|tTa{xywxJsBGV`a$&oV@x@&FShBWB1eUN!`*t0tEv#^<&eek6FJkiTFUtx;T=Ia zUctm1R_rqoZyo|JxW2o+4Hr3!gK~pIgFz$@t!jyhg-*z8;iNb z4>V?QKm(I%>@xw$2GsV)L>KO@!(SsRC`iJT^qS%-LJfsGO`1b;*;%sdO|SW-xut0% zi2xoLpr&q_bSCOZAMmd^TGutfwRRN5Q3iEmqsHrI)<BRXUz;^_8(!P^G=iD@g76unQ29R-PQsGJe|J4+=QPBpDua2}d-C?TEw zys|{tEyR(|*$z@c5jlpm^!4T0Ps2S2i-{ zxt7L2O#=?GE8lB0GBwO}CXa}gG?D9R! z+cM%exuJ|Nb6V$M()SNb1C0T5h{MGxItfJWLJeuu?xVN5dnbv;2R>00 zrKCn2Nvm`4%nk?51QEVlYYvyI++0H78DlgDGf(QiN4@dns2PZ3#|o>h?L*AH<)g

r*&I5j`5Ys%J2I5IKBq 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 |9W&pYdx8eIc1QoCI(&>r_X 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 + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/app/src/main/res/drawable/btn_sign_in_background.xml b/Complete code/app/src/main/res/drawable/btn_sign_in_background.xml new file mode 100644 index 0000000..e4c8fd3 --- /dev/null +++ b/Complete code/app/src/main/res/drawable/btn_sign_in_background.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Complete code/app/src/main/res/drawable/camera.png b/Complete code/app/src/main/res/drawable/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..48004974a173f8b37f69d87d37a2964b0a34afff GIT binary patch literal 3291 zcmV<13?%c3P))svHxfq{Yd_xHKEx#i{M?(Xj7&(o|w!y8Q000a&NklTbrUV42ElmDk31DoK*1t|I00?BSH#o6I_|c?`Cgyps)0hrfI@fe_iZr1$NeF>MZFX8ev6Jf9~J2x7X8VvsphB z_OyOg^M5y+>sJ10S?;5Nq$#rymIeE9?&8LJ{N)eN!U*4(83^mj5sXBFvk=`Jdcvz9 z;%ns;F0wu3glmV8Pl}(B4WcI8Q+~i3;u_Z?YQl<~kcmC2MZ|<_P7cV#4mA{M32UDo z5Zg~_2@Co@+9<6NZ6YP~X6U1hM1g1&C83+l^9f}?_3T?kNjS$ebCcNFw~CN3O6LNU zrp@&e2+wo%Q7Mt+|DUj&5m1gqYZIJ~a0Y9pE8lj-P!a~Q+`(>6r^m*1ecG1Mh;gx< zZJN2s+5%S)Zg<1&tK5_NMXCBhW?LzK5mm3YAO7Z*ZijFYfjWm}Z zp{_dTO7Z*VEg4}k`aSpo_>;rzpHP0p%*r(d5SA0WbRG}>B%XT^-d=3A#{dYYHV9() z5sz;nWT}no4IrG_s6*(WTEH#Qe92`Z99IR^Pk z7#|15%-g?`v4n7vP;HlY3Ei-dB80yy&gWy|^UsFl{#oT!?GWY_@BdwO&D##()|>22 zD}t>AJHV^ulQ2&EA293sf84eI(VtPSmTV1;$6rEk&_nyXh?r(oxXpui(T;H^19n&s zLXY*{1Q^&67EzM+2j3%{_L45GLa!cl zBsVWNhm1Kil)UI~KyHL}{|hRN+^uCRSL9@Y8 z*eEdcR>+mu(1Dbn5-g+eyI-*(9Bz5lyJ@5IGvQw>T-ENjLUvZ+cU~(Aqv7Kmu_pT}k1?+ouCyzlzhKtb}zS90kL_{NmjqerEW(tt+sD|KE21Z7&F_%$7C^R6R zvP$`pCUThyF&H6aq8cF9Q|G+%0D@MR9^rb7P%bFF*`}NV1b!4)Zk|U{d9HZ^;hyaf zMKVe#r~P&3ljN6yAE5vLGY!Dp3y)cnwu_GMCs}p5PPye9M9Ueqv0O$7<$p-RGH4Ea za!>9|C!QvfDNEap!^-C`ZYLpxBa(|Z)w`{n3yr^Ug0KmePphiRd<`qupI8T@b;aPl zt;EbO6Mvmso#2VYoglowU+3Y@xFxecj2;ZgcU0q>k=V+Bb7BobJ%RBHPrjp=Hir0a zJ2oP%{CsjYB_b5n$Vi%=r0x&lyRp7%W86psn~2a?ItAngVRDjsHi%u+zf^7!b|u#f z8p4stL1{XhG>j+e;po{oYh4mTQ7H#d*+0>meAdXXbudT#2}lUlE`g1Ovt@Yn@Q_7p z*-uVEsGdjd3`(xF{!Ye?b!rMiWvG&+IXO6bc*=O)clJ!zJ*bv);Mf8-Ca&t-#PpF) zj3-nEncMDp+K28GW6?C$+9~mbsxuB;Os#5qHeE3&2vhjiwpqNoQp9yndx~B~K&Xfp ztkIDh0`}P&nx_PW0^Swk?86U~m}m6(Iq5xq?K$iCd-@ z0;G65Fi0Z%$AJRv8vS2U5^fNLP!uZdFjOqL`lcz4usORLi26eC@GjuWWOIfjgcd9E z1TK(Squ*$bBZOQjj*lydmAAz zk=Nvxqo8lN*KZ?^5b&eW=WF|)gwWRJJ%su>#gK$R8i)4~MsFg7_P_Mm6(B%Sp+iVQXk%mGCDIaj#;osEmxLz-p##N25$AFd zfZ=3tla;R-#_Iq&^=Z9{;6!6!Rv-z%O+KwF3U)f{w;4+aO{OO2Ces4D$@*>IkonNz zmqm=E;TsH2X0U`{oC0N=t>7qJ#byme5-O6462&UO*F25lR`I=*fsLS=iRhQvRYlM&xDl$yu7~@S5T55j9fr3!^5fQ0rm6v9WeI$|) z52=7u`#Ie-pYKcU3?aBPyhlUW|rnVjRXc2Lx&aGj3 zorIAQa&@JfLDE-^hbb@0TFef zoXYpe*H zLr_b*Bm2}7tsIZV#DuiTFY_bT+3B(RhX(8^!Bl&GV|nPKNGE0iIbjpWinyOwf($ieLaaE~CC{c9RfiOqF7(Af%{?(&YN04V~ybJ4GeD#-+M`wxW=P z+F903#gmQg^1nY4RV`_9?yc(i>J;;AG*6&PWkFVarpcQ~9%|Q>;Jd3~Uv)jI@7E{| z8p4?d;!T1lYlGy;(FR-j;q~oBTN{Da_8z{4v%=Hrtoin+$Z%?_=J>X$;6WZ<-&b2{ zX1tPL5O0bZN}stmLQL8*T?ye=hfP^SDGH);T_kgquWRFR+B!2c7;ez}r2M2hhwH0X z#&KMhrFXp)yTqTXI^R!xCwy0-)K+b2M#s7T!^z5ZL9c4VnOZ{XJ>rMxmJs1qvuozM z=>JFe2<981{ym}v>7G^fURjR(F3InP&}4tjp)a z^bCCcB_xR^{1}Pnm8@r_)ju_#c5(xCs^$Knq3CoXH@g*&!@pwMINdX_m#Wp5zk&Fg zp!c;d_n$y?UJq(}wblPXM|FA;{{8ClTfI^gA1g6Pu-qqH#mSOa4L*!a9T2YE;%Bj+ z@dqfWH6%0+C;S-k6uKD!5w3!8y70}%NpQG=3rM(H)n{i}jKVo9!p0PYt5tLn^zO@< zBwMNuYg7_8b%!hAd_JVa+igY;M@9&x>eJD8=5+YsBm{R@wH`l<9Ve6u%5||zec}9k zmK@=yyJB5V9&Jq$E?!^4R*uP@>9^(9=szJ$xymvH&|5-wj~!sY8rxP1M6 Z!hbCez;bNTSD*j@002ovPDHLkV1h~#S^EG0 literal 0 HcmV?d00001 diff --git a/Complete code/app/src/main/res/drawable/car.png b/Complete code/app/src/main/res/drawable/car.png new file mode 100644 index 0000000000000000000000000000000000000000..96d711d64e0f76a60587ce1a7e82ec323fe5c31e GIT binary patch literal 1283 zcmV+e1^oJnP)kdg00009a7bBm000fw z000fw0YWI7cmMzc7->U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-Wl2OqRCwClm9a_#K@f(&i>KtOkW>-U zh!Q0!6a^c*1njR71i>fpG4cRfT1Y|)(JrlRf@KODPcRBGF<7KXm2e28zi{a-2TpA3BCI&Qc5i$y(BgF63u>tt8pBoH*RLBsGBa%X7C7_xJsHOu} z5&ZA6(!0-Ewf5n7Hix1#64Z+Vi)e1*a4u)rJ~+wr5P3Q zrm8c0z%N3Mki(~>)~@4|i;9kk3VpJykyQW-URjvkv=N3>@YN2EsWAL=5B@D+Lsbu1 zwmAnLO-{KMetVp8pqxhKN;7nEln%}@@=9~nYx06^^=CS<8DWaUZLDWOx{19+(|hS2 t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Complete code/app/src/main/res/drawable/ic_pin_drop_black_24dp.xml b/Complete code/app/src/main/res/drawable/ic_pin_drop_black_24dp.xml new file mode 100644 index 0000000..49a3317 --- /dev/null +++ b/Complete code/app/src/main/res/drawable/ic_pin_drop_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable/ic_star_white_24dp.xml b/Complete code/app/src/main/res/drawable/ic_star_white_24dp.xml new file mode 100644 index 0000000..fa1c999 --- /dev/null +++ b/Complete code/app/src/main/res/drawable/ic_star_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/Complete code/app/src/main/res/drawable/map.PNG b/Complete code/app/src/main/res/drawable/map.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fac3417a3b6493b0f64363aa01238e909f107da5 GIT binary patch literal 20797 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 + + \ No newline at end of file diff --git a/Complete code/app/src/main/res/layout/activity_custommer_call.xml b/Complete code/app/src/main/res/layout/activity_custommer_call.xml new file mode 100644 index 0000000..516eed4 --- /dev/null +++ b/Complete code/app/src/main/res/layout/activity_custommer_call.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + +

%~sj=Hruak3wDC|q#C7>5&}+A9n?HWH2Bh08*QxvY}jgDSvMBme03)`@f$i~ zYg+XuzCjK9jc(aSVGM^<{BQ+sZH2I&*{#3~6)f4p1w{&)S=}lu9}_opJDN0y!Aw zkmq_GgFqmk3Stv>@{4A_r(8UeKcRg8>@h1r}%4G5tgIC83P z-ccgx&X7$QkQRoKl)C_N6{nX3-MphcmRB+o1${sf#}Ss5^WdAelwexj)S?MvEpTQ+ z{KOg;Rl=306y3a{5OwX*xsaIT_sAZXa0Y;Yai%G`ex(%`_m=}tbBu3jaBv09Bbgk< zRTtyCCEaMFP0a3uvs|4$(Z5>L-QeztfL>N)V zIsh=GO$`YMC;cn7l1(M0%(2MV2AuV26a*Yj6ySp>+r69AZuMpu#J>dTSOYq5$U%6( zoV2IzSod#rM#|duhU(flAhEO%N*>Q!Vj`z70ALMqP1}ky{kz(|eh22bG;Ux^auDYa z0a3*_Zz#>7?FIGZ(Yevhl(>@Yj-zli$AA@0+sZ8S_77Tqxz>Qa@smK=81oaWfjkJP ztw)+}->F7ZtNgHCUs|$BnEt6?c1YuS7z|ASB!u0+Qi%2+mn}*QgKrU@BFASX%zJ$R z(2Qw?ToZQUirr7JI+e6tS#EPgFmp@V+|&e->UgOMxp77_A8YiuUdBm%WfPi6baGwW zvCSftBpF2k{mHv|MebhK=~p)GWIKmMv@LT>jQX9EE8&+s{zvOo-+oJ}NUAwA*fiaz zp=pp>UvB-e6pW6hS8IA>0RsX}Zh28x{{Sw9R$t@2uC{ZH_jNWstAmac?tLMIGYVjC z#sJk>XScsBbxcip9MzEbJF;3x&o6j8c`R-95&rDa%}+7^0L}R>z7^U?`Fry#^7m(L zBR}^c~lu2Uo}oy5q$@71~JG{onHq*o|q@#_sC&_ontat^WY?r$)uapb!bW z;-3obBxt{M`+?h-I>$iXyCUv8hCI4!ebJ?wmsXjBZjMum*^k*zM04ac{$0(sA2g1+ z-J5yA(!JSRtk^lDGpk0s;yq0j!1G=F8S^TK_4{43s9s3+?k%|HI$1~~Rj}aa7YhEj z8WkT4*YWf!)vo2kqf2lsbp2yZx^;1Fz4feymHy17Pr{hv#H*H>vdlU+S_d{*%T8Cu z_DI(naQ!zpo(gyG&`+JO+E+!Id*-y`acuUqMsqkeRy)&1{Yo#*e@yW39>MnN%1tM4 zX;VWP4ET7&j2=K$r=3cf zZO!GXmd7cL#@4i8%5(UK5O}vJBM%i`?dhWTal0cnmvc`Hk7jrKfYqcm#;zQ&3#)Is z?r24JTkA(_E}fF#xv!TdPZ3&!;<^+%S9e&}O$<>MNfe|;*AH0)y0}ufP#~(`?IojL~AsnmM?NcvV2gt?%V! z#a;_rQ9^L7IAipnk#uX=?j0DCMgyIkPxgi%Y6+7_Ya@fI9NZgFYA8?EgIzoGzHPKU zB1s)P^Fr5>-k=bg`h7r}Qx(;{!@-X1cV5Eld0aj2W7sEnen*1fNpNTaymJt)Ln+&v z<_qmK3t;yTKrF35^B@`ua$MiqGW#2u?ye%0-9o_NLnE$W;%QnAKp(AAmU}jpWp*1g z^SXCN8e@|e0fDUtm_di%?dUr3gBgrwc4FZ{z;pUgSf|riZbh(+y@E)~UeQ*zgx05* zBod9ayCaE^&|JpYM4dKzs9HJs)djCmw}r40VJ>yis~81LPpEB30c8>pNKGU1Jc9gRsdH+ z5Z3H0=CXVRt*B$L=amMsU1=?|+{WpQ%GbH^1Hg3i(WH3*g2%2f$9m{M{U^xtUM(QF z<6kg?Z+kDdBaRz8#x$2SG`fKLYTEj#$p@huTXopkFlpDUXoNrE!=6ALCi|}h{t~mL zFInn)cJaC6m`9f!ra&u9aq>ZZu+^+|_c~}Upy?cCXqB`viWh_QAfViP{{T!D&yG1F zBO%3)8HFjs5`#`Vi@fF4C6TeuTSoEen#@Za90N$@mUXSATDf9 zid>X^DAzuY6ddxPstrl8|M6{t0C{&!i{#vMmk zx|q{EZ8N?yNgXoqaKJI;2A%gqdTSTXn(J28CL^fu0J?OP0B0_6bGn>n|;7sW&6N_J&;jz#HXnY)lO!W;a?&9)$mpHw$kU^#mpfw0Bj z&{*#p;%Vc>25VtqLr(3m;dxVS=I#&7&f`R6yxMr#i?AsO)Xm)WvJ42bwX!Nwv&kYp==|Lf#LB=a9 zVh%|GGyec!(*WU2DiB>@xVDV!aw0aB025wZXajFVyjb2L-=3B($R*{*Ynp7NV z$OIL-9m&2geAqbtZYRW0jB0|xz4nVtP1Nl}qHqDgP>!iCYh6q+qg`L21bb@BYj%Tk z9(IsHF5pc*+92g6zL4j#c3U$zc%h)<$Z$b*o(4MHTtqRTWf=Q=^S`c(;w#}b2 zUrfyPwWo`St^>^klc8(&(XuYIL6S!9oAc46Har_qOgNy=px3N!NfDUA1)u=o>i+<; zh%%F`#@OSDk!H;iE_+2o4M@cDAp}dgH5(bHYaZz40q!J%4p&$Fv&y2CrOb+*q@ z4~|QA7@~ZK0s4auTCJApMgk{wWk0lu<|OS(1z9GTi2;L-te%>_A8#Gsyb{*5M=phfEGn~Qci;M9Jv zO{P{;#g45|cL&HCJuV`H8em6{yUhoCwHLz1TSN=zkkOGe9PgabRf1T{9wlxMgtfrtX{B25P9A7Cud&}T z+D+b-r|f>^-a5+a#J1l;+z|%3&bJh4W~TR_dBT(~;Y1s|V(6}PnWfWiqSUna5ZEs5 za=nv>G0zYEDvSeo`Jl{ue@U!di{#4`HNwR1YO}y{Kw_{{XtTwzar)j16F8pBo)OUnM`x9Pulm z`RR*R)?C)Lx}KuvfrxgYcvufQW}38KjA6cFu^bZZ8s@te2T{C|gw>xJctc1OrZVzP zi}VL;yOum))^$Nz9Id>Z0nVT2jtQ}Ti5C6xLgcAl-R#P z@=f=@VJ#Nh!*jsVO1j@&)mfBR-W0h67L0JkHZRazZTq3z=<<9waW}+HiOqO>cQ&@e zAz{oLm|hn)r<$1d_e|30{W69_Z}Sh|%{lSMXWlO5Tjh7@vOV3cx;7EQpx!maQ^2df z7B4Tz;>vA)ZT@QP05(4`J=wN%ea6MTwfLeH6g7>v#|jfqG@oUM%kns{mcKmTI#y3> zt-fTty$Nr+=I;$<;9*bvOWM^w7A<4)IHVmf`I`R#FijP#8h6c4c45m#x39RaWoqQPxy^GMmn_ryikX z&8Bbcr^3bM`5aQUkNsDl%(~D<%bgpsm$A3rYqm_*?vQ_J@!y&|%mp6{4Qs>lII>8; z>c{!|l(o8_Yi76JbN{YKWJkPDoLKFb%EyrmLqKP{R=Vijv*cD;KhTAzHntp=XK>{0P^^6CBvqQ`0c_4Hd7F_xb%8hZq7 zYZ~V3cQh?v4QUl^Xh7$RkBy)FXY4X9JNf--HYYUSFP1kGQwZIy+@GSk3wU{_#?SsU z_9)6f{{W)v=t${&yJ#h&!(6$o1u0sva#J4HJ$TzcVv@-%zv^e+x+@$s50;&iILhx` z{;#OGwwxW7qO|ZU(D+!qza;Tnr~d$|L*^1P9i#ROwKi{U9LHP>>2f`|vD6QBXzXa8 z3m2EI^<@p>@HmUs4KbRh~JLSIlr0&(kudALJxGtfsaIIsNjRPM9_*lHZBZ~*s{(nAp zb!Gvme8=}%c9#-b{nx5uOGr32-~q)x7B4Tz;=nHcYyM}o7d`iV^X^`AQc2xi3IMw4 z!fx5Ch}U-@0Dl_QumEGMY8Aj!AN2{-g&Vl_aF22BduQf{aO=#IAJ%5Ec>e(XxoVv_ zQ@duYlS=OgbaV#)0QDDt?yC|p5!>rG?S`WoWPI-*Vz1$0(A~$XeAz!gA2nUOn%d)T z_ghzgL9Ki3wT4^jmU0+~e@1BTA#r0EU-+Y$YT*Vs;>EVK>{<_aE$lbG4$GX4jKJTvT*><~P z$F>`9VBbB04MSercefWej%8ZzrK@!TD`0Ufr#uN!KkMlgvLmS7vs7i_vx4I~u+cj)P_xb7m zX`P4L@%IyFcSmphz;>7iO&+7D?X4qPys@;0)zQ3`*Q0dy2H@v5q$;i1y6&8lNFyb; zO(J-&eW3pUsmHn6Eyb0Gcs^Y=PQPax;}`ml(AIA>OZXm3S|0mrwp}t881wpCL$gp| zDzw|}a9`OmKSz9C+kCNqIlqzr0Gi7)x3s&92< zH>`7{^mQbO?i{%){nz^3kz`IAYc=qvA-LMD)D~}+7$%P;^{KnJm9J@Jw(l8*)K3R2 zmaYd0MPoiI%FBZ;7_Lic0|n4^(FAvF%^Z?-g$up+HO5S@U?Qd`k9FSbsev>qn=Xs% z(Z+)DCDX2jVROcDSpjzg$c$-B7kw9KEEC?xYjW6#e9w`!n8s)s5pe(-&>UKD6;UxU z%w2l+@kb=FIkCoKIdi?BxSH}Nyi^TS?uF}qJ@|J(U z8&k5lY0J`_^-tt%1PFkM%I`NrgpW_$s=gWFp(pP@&<|1c7w}rm>-!N?S4zE zC*3|MnCFIpDLq!yWuR#%A2l}HF+4|>`=b8uQ`b(eA2~M@{;WMg`d~Pa>gJ)$K;eqD z4V~=`$zOv(Yu!*P-v<#|E^qA{f1zm?*CIE-3np_xYg|1!aKIYUwN#}x={pZ! zxU^-&pvC|MlaTsA!-Kp~TeUrvsRx(!nD9ZT4j_0Ef+N*5tyfFbI?rRJV;*W5mV*(; z9)DsC;>NA9eb^Lp;Bm-l=rklZk;bSnOG~X!T-0FGtz1Lmxh6`23q^QU)CIo6f@J>y zV{0ZR&ks$YkjDVlxy8T&=MdVE4QLQoN7>zDP>9`iV|&AE(`k*MWyA3~xT`I?A~>Oj zYMrpvA~z;@WN832(6Was8U+Ax;s9NBTd0Khp4)bfWL)++t`NPsjVfL0pdb@MS6tv~ z9;sz;`R1MV9XTW($~gF7Xb?wp&mh%X3y6{l981_pG7{oR%4$FrK1e+R?M2KM`a~u+ z0390xc~{WUg?ONxp$>g4mhKT&0BZPK!V&s4o-R2yyEh8x`7A-EKZ6emzDrMQ)!oj-Xv~&GN&30wVG=DzKxL_0#JDYR!zLS^kRo%`?b^MTHKTqWK z?V}r`QvKW)Dlw19Kf(Fgqhc?I>ee_Ut3qYt`*1us7JxG4{MQtoW9|xEGdCHQp3wIF zq9uC2<~hnOV}Z9th{HET>e_zJ%-KZ;7|NSwrVcvCh-E`3^-BKCrI)BCf+({mDd_44 z!E=4%n^np2;|c9njeu$vl6ovdhiJ=#M$+SSh-rSCTQ3P4j4ir{VTh3@)Rtei4NI^{ z{)JFUHMU;E-C3=2pGNOx(RxWN@2(s_d_!#v5^p0UYQKLB)DnF941@`lcg%>>f@3b;6yzTB zvWWEEk_2LZjph$yX43+9u?q$zGk?`~z_rXwbzIce1ST?XcV^{0nQkB}&{{%sU*)%w zJc{UMIoJoP`;Jbyj)Ly3kG1fock>q!2Ja^qfiZ(aaOK<~)K{ww-)f3$rBXzRJ+k!V zAu&3NEyceU2%@B5#iw0Tq3B;P@UOvubCZesOV;lGGf|dJ`(C7mzZ{f`Z-)l^5*^4~n!tAADElHg@# z?;1J4-+brN04tVxXJmLdx-4LqEUi3i>8;UIh1rDv{3E$cz$*)spCoDL@kz|a1!YXA zK7y(&x$9A=mJZxA#jN~0JR?$Q%QDx((V35S?JV512iVlQkU;d+!t*d8k!`x?+cTqLM=fceFWB^=CCb!K=;Xf zrc-tOm8oZMY|7t0fISn6#3bcHf7{x+^z}y~S64ynU=U0WlG4hq{I-sxy^ zJi#g*&SN67y2J2&d-Fd4y6}9;b$-oa;X9oLl&GQQrx#Om;<+`U3!S6=6d2Ll?I~@U z*o=1+oY{fk=JuPqG{2J_y77GA2*mn`IrV<7Dd%gHwQvPkrIRvK`8V@>Je8I z>vjYp21H5&uj)WMro^(+Q*MG{`NcsbM~^yCGNm1Pux#(sa?qi*oq>w| z)RwVm>)sw4lk_KX^ zhdc{1rGy1X$edeh{1+{KV6Hpy^pri3MZm%PD|VI59Q-BglOx9+TN!IiZud z(v1=X$3TH910L+vWR@ zB@zANB7_d~mL6q?c`{z%j45)9msg;Lp2MOS3D#ua@kL9Vjnz~XLIXi}AcKknF@ln0@rs?u&d)EQMS_`BLXbpZ#Yv#I?`l=6{r>n^?>tF!Pwz$j|R)$^DQ5l^Z-56im@8q|v;0zDt{|9<;> z5S_qnXKS2Si~X!_!8;yuwug3xQ+$vXF0@O!&?GW@*#k*~H39LDj#cIV;{uYcspu3r|an|y$JlXMLr+}{>Tut8s>G(oI777y~yAQKVSDPcBVbH zlU9`Hb>X`T&`iu{>iQe~74+pMplSUm3#ZM8Cj0C(CYOS1Ml5C}D`)eJyW4~C$=Xeg zR_tjG;UxEbw!g08T8_ZO)W5bPw=j+l(9QNZK?{sBPS^TY5_=L%;7Z4ZB2C{s$#Tt zNp5*ml-yi0?Q6pgISCItDOc^4gczlY?m?2i)0lDf|Lk0|WgTvnsu2K@=AFB0%vQ*? z^aFp5>{VqTNpJA$@21PvF<_#SY*NEp*Nkh@#)PylV;7gGJ^Ol`MkeTAeEkCEvQl%8XM|(K(F3e8>CV; zUK3nGozfXch>%S|?W2MRJ+WGHQKSUL;(*C#tOB?xLU$a95u?cbma?UQ&o-uvX#P{H z5LwX0=Nv0cXFq33IDbo6a6E~}`u1v<2sb8v1VwxZZmVf)G<64q0~3Et9B^@$3NSTg zTlNQ?AZOY;^JK`bUPx*WffF6xl;h$Z&@}s`<4n9dyL?zv!$qesYBMGyIDTjDp zMhIsGoQ}bnJ;s8&=wna1FpA0iu?5Ax087lBwMPX|lQ^A0zK`voZ@v@(c9Ciao8h{Q z1j;Vx9`xAC<(|Pw{fKykrZQKNjPmHmdJkak0j_HbzdtHWYLk{;M z!TMjUf~rcjt%6np7C7|%5b+dwqVuV>5KR5V=EfrXnY!d zx2#U*MI;&KPCwr1#8=qtu^)x(jEXP5Hieij;r7&ThX}?wL?@djMpan~N)OjuS?yi-?}g_(>#<){87-SDePOLm`wYV{IwmO=qbvmjT-rsN)Xfb7>v(8>L^XHebjw-rydb6){F+;?YkG@VsJyG8bbgs<7bozg(^R$rM2Pi4?hP zZ|t}duCdLa&@0ZAcl4y=gdIk(Mx1l_{c$YRE8M`=o`v3you?!b%tpI5^UApyfgOPs zC)kyVC~l~3$t__GZ9gxF?8#8#pg}ho%_PiDm2icN5E4HN10R;LSqsUziJ)khX@!Qz zMAL*WGsPb9z%4q5z0Kaeqxk{x92}d9|+w(%b1Xb%2 zyMT?uk*JNwqK8Bo>zI~@+5;3E?3gMwt3PfN_PcL?n^uly8#8)uFau0_qTeXc1n1sP z74HF}6uTi82K0Y^s1fSUzk(}e@UQ<~03zvVkzkJKx{iYQ5MrsV;gY_?L6sW)_8J`Y ze{y@7*3ozoHjX&DE2r>JgjajQ;`MF?@@y$(d6z#3v15>r8! z-gE^B{xFx_d$mxxHt66?sp)MbOD`m9hfq>bD6{aK>$`lpD=5?cNxUCxUN zD7JNqC>T|}SqOVWl(dA>f3)(^+r!0;zNT?Z+G@aeW@znP^fJMIEzx6D<VldE;U9s=Y2x{HBfGTk>t&QyLDb6UzFSv759CC9@g{=O~dTk)m%7WT{px(dq4co#$iXx`pw{mr22)i&vEr zr`OCD4C$-q#d@2LSr2~)f$-m&f4^AAQG8|2WR|bO>x>^Ok4@If&6e#V{+_XzWd~&w~bE>!;)DxxDN#5Fh_X&;y@dWCdpqU=IWeTgdGLNd*^&b z2IIW_wJqXnHF+P(Xh!`XK<)XE@&DaOWs{Ya5Ss?bCNsu{7gd5J#{~}5(3R;!DbMSP zp>DJk;i6BZ?_vyO&LQTCz^ymh>_doB>KZ~BIg4AClc9i)jb;pl9Q(iOd&H@Da$hVq zh#qn5BrM$wr!(me-9+2<+XIiMYFoov;=Fi+0#!>{v6R(xV;n48r@r)2Wv~Tk+Q2=` zO;?Ta2E*`vVlrFDz7|0nqjjHKb(Dn-<5;22KjmKz7>7#{2J0F~KG?BXhE+Cn(YW<( zO%4v@(DAF6DHFCW?ZnehB8E)=BUvOTppm$pxAW`bkf<%7z%xsh{fUEd=EOk zBOi((-zT#7{an!kp(*!nZ)LN*bx^-Qi}`w2qy5ZEq|!jh@@pYX68!I2Uy|2r$9^RA zTtyX0&H!bSHBY2Rnxw>SLCocUlC@M?q@2$amHEKcO>nm4oyUlb-MZ~8=iGU2QzDs> zZ6Zb;A|l`4EYV@L0^K8v{L4rr?nVd^g3y~$3 zy)@QM?kRnqXAcvz6;Cs&P*tzBaRp6mByVHOc;UbiBX1CBdQ}soE5*4&JJ;x)RcW&S zkg75hMK;99l zBqZwgMuFoUTN)CrN}6X>f$zd&t2a%#LD0chnDjm!68`}V404d`eoHQQ%@qZ>jA{wz zH~^KM_q5Mdm$UqtFU@2CJFL#!k|+;y+X!eqj;R92Z;eHED@+>t{bHufooIrJ=bn^D zQ>MRFtQ{pFLPsoUmoKVq)n??CLqmA(##dmj4a6eJ04F&^B8!t{##usCIdVj$+eS-22NbgseexV^Hd(uS>(4o>a5{lMA*(;s9NIJM5 z)6wF*BAozVx%uZ%Vzg$5n<^;*b@or6FZi~IsCyg;+;1&lHCLl*C5k;u{{gD#w^EhC zwg$oaw|EdpWa&>TMsoIXix&Ud_bu5-)0Q;^vjQ=O(B`sx!TTFik!%L@Sug%}iWlYk z{2pQbyzC|xIweviioHKZ)X&)V8BQFS4L*NI?ik2Pkk3R`(uhz1`*s@c=bOnwI|Pw~ zUUYgF`$UvJ0Bn5B;K0>Nb8O%#TuG%n5$@{{w`(1Vo!>^PWc(ih>VuKKX)4^beR-ku z4h^kjh~EDVuC~u{+Mm79(@broKb{rw&r&z`FswKK3!haRIkV3y*ZRmoqw|@1@BVgu zI6&LPGI%2sn6&~`jY6wppTr2q6*s7ty2g?EgS1N06iG0#JlpvqTaIhuj68V=FISor@oQ5 zI*QF#o37teLo`~Pj>@RfZ8t^#G1ZEQbU)?SG9_0rux}vmv~bz;Tr`*`@PD$+u8_Zpsl}EMx6(2V zQ#({Nf!P_ola7m#kk62ZKyo@p65oX2&foF3O=e8>4RlB~rID_#I;e$`%5Km6kt2h6 z;2sUQf9R-S)KMm;bR_z?`mMXr(Ons6`%CgB7JKKNqa$xPH~+U|-JxkcRX}&$wq&3! z7Tmvaq4-Y(Svtk}-U~uMH}D%9yN_IMqErqJ<2QbkjK9p9Yx*#riC)OvJNo)=!o(Uq zi8C3}*TS)2!Cr!r5o9qsYAtW4R91L6JQNNxo9zYp@5{$nzE#wv9j6JcHV9ol{ubK7 zA>~FZ;*A9VTH!|(+VmUJxP%ENOB2+UgDZL7k~@vT?IQWDo#2#Z0G(J~WfBg$)R-bg z*J;>R@A&1!%MCrDd;7pC9W8qO{+fnriFR?X-N=scuvjlVj1}E(=z@I*n7_WVwA}LM zkLf}kz@ZPw^9DV=bdi)bNr{8u$vDRu1s=Cez}w_+!3J2K3WEQ%dG#)SG1hYJHt7+Hf0 z6MG4TxL`vcFcm5tG{V>Q!|Sv4Q&oDp|5&vFM}njFVP+Cq8OXrZ)8uf)8SL0wvKd=$ zY)(wEiW>d5b`Cg#9OMe7D!pX!AvHp4p8ArwC%Us6{7u2kN-Y*h_@Y1b5Qjl*7vcX;>?O__&Yp!~ z{hX}kYdmNPt^)fK>Cs+-4)S>Tw#gYAbI?@Zv#?Ulf!VnvX0WwXME=Ea+7G~Onna2+ zi70hei;2+@Qr3{2v}LchvFs%21v;B(k$U9bFxL5?f#;h=>AxoZz%DEk;M*@>Y=~8) z{sTmYa0KXg;=KOcCzI1Q=?`4I+{DP)I>i;sJusBheH4BSPVCS3hp+59xuVyso38Z? zy)=_Y0+(~KP!aGY-p{-1FRGk#eW~BZh6zTEdvyR%`yy%XDuq`|{>nPFGd2`P!>+t+ zp74o5vGebeuve{-{2b4?Jhv-ZS-MlG&`N%6(?nG=0elJeTlOzjCs?!;X-++}{v1yt zP`)veLdA;R<&e1>AC-$2aF0^=0=K7DS9zkgL-eQa#mgNJ*PnVbxjtFHO}7lJ`+>)+ zw;q129Dc5zAuBlWPy?jh?^)0D6WjL4EyL9Ox6?EW=Fgsp>Whw`e{bpc8|>WXgb>&I zHEg`SEz=>!E$BR0HEs)pJN5Df*?7Ci1`%n$1PPoCdQBVdibVumsJ6J9{52%T8V|7D zw%?UoW7;%xw%FAzX2f}DJdtysO*66%X8SIfkbvI=amJsUG&-t!>4(^8^ z(*w4^7CMM+oE#A1l%GA06e z8M)<4pe9z}y7Yela(pNF<&*My2*T_5rFDt4HpwO8Of0X2p5EUtuv7{H>L0@@Am`q) zDB%W=*VwUm8ZZB2*;aY-L+oo}L1iaT@`+iOzOUjIz~UUb{PFs+G&_jXp0p-VaIEWo ztas?B8@?Zg$45qEV)TOl0QM|L>_CjNk%E7-i~BJY`i&o46Zm3tVocg4;z z_le590+VsMHCU4Djq$43!=S~)(xiIBj&xBY;66R3FV5FG*H!1a1_r7f%$84yBN2!T z>gP}A;AzfmEysp9$w;wEY><`OCahQ`BXQCF_fvw7Dy|1`z7B^87@!zUB> zp^ECxx|hkyNiF-X|EvIj6K58L*okxy1KWSMb&ETF<>F?FREgUv5hMY?*cG~1-hV`^ z!j&M{bKS3P-VkUXUO_3XEl-qY+#KR<+vl>MdovI&m2^LC(q8*RO$-Y7>&KweNwQUt z-Z!J?)e|Oc>^%mS=ef$&onmqV?Ir(g%)YfgHa#jKH>X=i8!DFl`91_XVB_<^dVA4YrqbOKiaC%6$#jZK zVingkP;_XBK*BE`KjdJ!?C= zlWn*JQeO=ZVyIqZ2`Sy-cC*J!(88R<;zYR~-4pc9Lg|JPeeMTu9HMb2jaFL*YM~V8 zRZLU%>a;t_-{35XJ*Dh%!*Xi6ub0?kv@ijx*J5t{I5M)Iq|vv{foKI#Q51$f9nsP- zOPy04OV9j!0)rS7j>t=ypB|Wc6!Dz+1W?3v5v5`)A>p7sTQ3nS7;C8RLFq$v2SKuw zqiWCGoH7xm=4PIu6>dq&b)wNWI5{6Rzzk7E^p1{_ z4~W&upZSBIT<72?H|z7i!bvUCgRn8Nryk~TWUO+r4|c7Yx!!HDa%_U&On0)lf)D35 z-(!&yrOYvokTkN$l1#!$jnK)I8rR7{ zFwBfX+zP&Q!^0i>A=)K8Kut~?05pfyvo|frH|7CU52k}CUEW;&3;ysegYd_sPKB<@ zRCi)t^1eOjaxi*}cjjU{b9UGRXxE%MD4p2^lLr8vaRu9zwk2r|?^J-ihAOU_i0##? zF;j&s1ymXkc^txZbWSJyy#zTX-*;IC{4jr)SG9arRM--uQ7t{U`&79P+3EIVWn5%w zn2T4T9^mw4nF2B?<0phDpZyi0&T89D9Qt@12x3_t4_@PK$5yGRav>VEMi4{Gt%1EL zA5gI^6qVavlNAmbEmU4zhn z805$DSmmSrcIM{s3)5cG&|Rvippv<%3KdmiJ+m62)S%~h^C?$D8oRZ>ElTye=O1oB zO&xwPu8d~EL4Va`0xfp5AUxKSP8Ld1P7x97toHikRyXRwYv~`eYwtTGtkY5)9uY)@ zxH4e<*czAS5|S9cOPQn`Ex8?z&>@SGH6>MS?HJ(wbj#*UtDbo&vl9`4|Na57;Jj97 z(!x;o*~@K66VNM;a?~K1g1vp6?X(i8S{R$H%FAfK{4R6>5F&;Si4gY9ypJ_Ta?2BO z=q_IU48hN^4(#)@y=fz?1VxLd8=#mD0}~VL+<)GE^1qhs?@7+fD^kTd1?xEFIaRT| zepM32dmjCdbsPs$)qz{1=dk z^n!jv1GK1aIuL@6YgrHRZ4c)n{7x(`IB^UdkaCX|OA%Ib$VKLX1spys~sTt&I5EfEH& zQo(*_B$Dm9pD6B$BU7U8v%9S*F~@syKxy93Xd>v^U4n7c+x$csxU`TTL>Yh6mu1e` z?p$J&&+5_8e6#B~+B(?|Ko)$rS-*1{nzuIYJ?bA(^CH62-K)kry={uxZTx21P&hDG zG&MQ94@Z^tXeu-4RLL<|4P&I7>UrikeA@7WV3c}gMOL|EZA!`1nxzRCSBd7K$h+Un zTsFCTeeI0W7yY8Yu&OsxA~4%o$yWOhV7fBzLutFVzBC78fHMA?IO1$>@R!j**aLz3 zp6#!5z0*9MKQ)DHb5|~JWl4JoduVLptuUD1{Rgl~rhU4nhFnA>Hr$i77xvlsm#$)o z1TiXD;3G!)>JN>anX6_^>lejwBu|NGgHEri=a_n6QZoWKlUwJlb6hrz?`9aG0&Z^n zUG5w#*Vd0U_mgiHG4Q54HiDRFL2P*(HzeGxtE`j zw-6xmLP)=TpyMq|!fmCR-Ql+W(0=&skTZ0cgU@~+%L6tUf{Q=++2V*IJR_GK6aLJ4 z?7-RgEebmsoU!Kf29jmho)`F+!W5-NxjL-FL$(5Q!X< zVI8EW`blHMS#A=q-(ou&Wtldw>IY@XCAa^QV%a<8j`h9!=gl=(#ggM&I*Jjtq#9s! z%iIj;TV_6fO7OZN*=N=T-^iordvGh9C3br&b~qCg`>+@Mu;!t~58qp`ZHkmSH_;_2 zjfb_saT~X^mx`Hfjl&JjV(K0=qb2(R|BGUa$`cJP2k2SubK-se#*sxk#{b>p5C{M5J?3V_Ayf$Sdr!#> zT%t!F*zltliqa=eq=^0?h8HjfL4u{ndG0`nT^>_kmeRwJsr^iA4aj{ms)G9~Nd=^L z#_UeK3j|&wr@*%cr{G0JZd4go9(-f-SF`MS!v&HRaQkXA9rC08@g)k+dSp zA~hE;bZ9@p{MtBkDv()?xcN7&bph^I&E|Nv)BHkWQBJH5{S5jkG)#Q@_)n{`wP)v9 z#SnZWHlZt)C*Ga6`LZ(0J!!00IsyLm5rcxMO$L$dr*E|g^0^>D%6Iao@IJRo?mV?c z0#m$A(57Fshnb0t#9MgAmNUU2E@khs{PXeiiD&X0m`kU}c-0Z)8we?PSDaCyBsZzC zl3%T2`q5-5UquPL(&zk`AS)^Fp#ame+b^?1LF7r|vD*t{A-$3PCNWIAV_Gpn8`PS% z&2l`Q;${<%R_DcGtMGM4xXVvl+}e5Xv$@`k0@rrD(5y-tgV5Fj{!x~cvjzd|=12}c zrVFfT^NiibFKe7fgA*kq7moj+ueCOE<-VB^_=}YOn+mK}cBD9-3RY{YecZI{x z)P%uwFv!}&SVn=+V0vrRcHTup6L@M?A#8>cNy$0iD`mCa!SiIoTl3At&j;*nJ+014 zPnNa16kPbL429d_rGVLw2H6)fDeM2v{)$kqIC&!d=6O-6R`rs&BIiY}b?a!|KkEia zy|bY4k;#GDA>&2^zeVK{g2tab!H%)A`y>%kb~~- z`^f2evw*y?=3H}SLKP~+6ezo_-3xtls)*4+y%@ zq=)EgV=^ezh^aT9eQZcc!torfmC6VN&_gQ&NbMxvK%y}yM!WlRh~ddBP_Z&xA(L#u zUZEWB^^r}5aLR25g@HV5z5HS1t#mX<6s>F41H^JRckZ12wx*SLhof&K7WuwW$o1Y{ zwvOgC|1f202;XVqX=Eo4j)?JOmqU;M*l?}e!2^?hn~q|2`R34(dt0a&Fe@O?;F8(Z zzT`MTF3d%vvW%{dTcpkOB92Ce{6pqjfqiT9`G1L&Y!=>Za@16L(9LY}57V;Q?wh8* zt;`1W?_lASsHp!isY2a2TAkM+7plNuc(7^Dqc+22Yec4kn0t0L3;t8^TV-CXDj=+i ztd5=V+>)g@DOz;^lvsGQ}72)*G1?tVSZmEC-N1jI41+PR1OtmoeE&^y3f)x>sDe3 z8nCWWtsEo_EK81k(y7zY`A|R+RA~w$T@?%P@G4-D!@a@|tLMmMvP1++5L**H*aJHA z=V5)j#|vR@bP0Y(8y%HxcazrXHr5*%6;*b#bpS^kdPJ0`a-DIP3$xq80PZX6bkwp5C~<1C3a>0sDfu8@>fp9|I7-tW_2-J zOd*`^vVW*r0bTs91KH!bjGvlKG`fNaP_8Dw=C)dM$nV2t^}q~~r5q3V(fEi|>&(S! zq{1uBdOA#j;j}*bnNx7X6ScZXgC&2mBvMJsuF2QGEl!R2>Ev!%Y~V%nxxK&;?gW9N zrsT^Oj&h9ITa#eA)|92pZ3TKwb%!`JJ+*f~J`P8fK9-!X@chwC+Gh9^*%I<*6DTyq zqlMKsvsgi8T>Rt3uk18(Fm!HYarHtEg|H{*)lw1L@jFUv)t3B3%g8J7`%N=?ldELFCY9zI~!%H}bd1k4DX#)47@G&N1+g%I6X z-s_UPtb22b7elJOym5d#xII@O6W6jy-=pc)lv|aa0y}dQQKdAgZN)tO5n6+A4-&16 z|Jc2h&P<~SN57cgi(9)7g?DHq?6@vfC5BdtkgI^{)|Trt+P!X5@qygLn7?~72@Tv1 zsg2{3m3}9Au5c0FXJrgzM3r#Rr?iV^^J+J>)WJdD_dkp!rR)5XP2V;Z;rD%F<^Qzc zX}_Q8P~hntIH|FNVp%a7xZz+ZT2?mrpIHT0Vav@uOMIczq9g(#J3I}4p69;jGNV7( zaVqf7PPrjOTQy0x9SDuKY-S)>oVdQwPJ{0`uOFVOA64F(;onXs0WjF+JWukm?y^h8 z3L8|+WxC_2%*a3dd46kRnqFVY+Z0b93A1IH!lh;S{l=f$hL}cC-xsOJCK<-V=SF zS2GEQZX4(?35k(17DqU9ChMfHo+joL;dC1N*Y}iHbKY&JW+IilOw_eavdDhwMAruw z5H{`qMESuzoQ)T6POlN1;e1GFuEZqVh2=;W>Ic1!Cer-mn1Q)K@ANCZDCM_mPKve7 zpd>U;QU!s^o1IQ^D+L%`L7s48eyf6-Akf|zuR;jng4&WsoppbcWvY&F?gxc3`Betv zgpfw4{cj@&x>vyY)RnpMGAhoA0!8I^`4DoKx#*L!*C?a+ZclAdv_ZK3_1G-+!adx$oMIoy%zc-62CzE5!DmTYfcQJW!!g+f!wRdMhG3(mnKN}m82 zYLt|dR<uoUM@v{tBv&OR6RuRuONd47pQ(VO$LHL6*n#%s z>A(6;W}D9(|97C3I5&6c*`85O?tjnWLvXc8cUIyUiDEwBBaUB{vizEQ3eckCx;lJ;g=l;yS*PWDEz8l+21(uXA$OJ2N)L_?Xb1=Qebczdt-Z zR;F_vRb1`O0)r!Wq8mxRP74-fuE(NGD1kVM#z~E)M)jvX84s~CJKCPsA#rO}Vnx2J zmPDy|gCFWVn1<=0#Bh}f`#tM00`uP9r2Vh^3@g8_uVXr8-?wI9Kd&TxrJt(Tj+k!E zs(!`9oOfZC2c3sM*ElR$5O}HE=bR>mXJ!z+8P8qx8nY?Eb?6>3asJ!Yq3bPvwDjle zd@Xke-Es)s-QR~NP@yZpmnb#46N0}+fT9eLBDtp?j&^qVT(J&$o{rz5Nwx8PU$(80HbFTU%T=OWDX|`VX)~18y3LSgX^04B2~%#mYn>SeT9i%<`S8}uiOBq@IWL~FO=-WuX5e3|k40EG zSGv48+_OC~73sGYt$bzEA6yh_+2OOgwKxvC`Dd?pVuGR8nYqth(PF!;Pi{Sd+|s9D z2&UWN>`1f9sFR+<(D6xgxv1m+Fm0ls^jbOr7@h&q=@9`IW?qBC7MuG6#j1|FH;%H!p{g}~`!vD2 z5oM1$N@=MJQh|N*3kfZB?4og1u8%!UiAQu_W~uJ(#&U$%tuexkO(KC;2O)Sk^2jU^ z`o&(uds`yTl!AB+jowVW0*FIr@9Nkjq_#a@tp-M+W!sAmv-QlDoj;p?v)}htD8fsy z;93MbxWBk#mRvu<^GxUp@An%N&Df3!V2NcPqG9d)ljR|cyLTw|L)$8zv#RLx5MN`% zW=wi6kvhF_qMB4eJRx_8OjF`~WvVW#Lu}GK0P^J4j|us4u0A7TdIUzBB!Xl*4rJPi za#dmHDw0~Z9Jp`fH5fD;bJ-R!z7odWLYA?RIO4CRwb%1|AH~^@X@za7!$g|9a^8Y$ z?tNKS7_s&VK)XzhGW~1jvib8NJrlB-`t|!Tx%#>Dt>9`EMaGx`D+6@L2}51<6Vr_9 zTaH|IU;pMHqAoX<_t=P73A??3d5@*~eFL=%B)_x?IGB>No?EoG>D#IUd56Bxw#lGO zM}*zsfwzDgV80|NpU~BLvE?7Cd*wqj_Ip@FvSc2JQM*^hKW>b;mH4Gk?d?r&I7pEt zXvv={f&B@^>y+RrmbDj;yO%4qz}SszQxKuC9u15D!;a8*+xA(4*;UuF}4SNAQG=lv_6PO~|VNc68C<`UW@i{X@r5kc8mT1p>} z2&EbJ7I$e;L3)6DtjhlXfH3c99=!a=&KvxDGsozSh3A?8xPxTdRjN?mWg+C;k_8Mc z57VPki1`gc?yEm3RW~!9_l)YwvlUCsniWa*0`v;%nN#W-{HSY%ZQKKD zCh>OuPmN@aqJto07pqb>SBg|Qgh+i_>|UMn*w<|F{K^q_O?FN;%7nno1 zy)YPagMpDO)0ioZp|?@pbA8l$ggMe~EV&=?1PEfLh8aYgv-EB4F)cBEkj%nf)QZR? zriwP99gA%ZrjU9&rn%S9^inYq8hyWlW&Sorj$~c}n2Rvg{Q|vQ8LUsFe&$&CCMmJw zKUl&@P}WpOz)@ejqub0aj_@i%vbm1U;ukN8j5Z|nMgzS+7w&OpgtL5)!|Emdzd~os zfo#Hn**gH%;x@z>`J+4IDAUyEvw)F}bru~(eNpHThufHYr#OIOv)W=!wkCp~S0_um znUpr?@PIS+cJC-bWz3P-@tGj;*Jlkf3lp(s!vk_Oh}Ks`>I^3N#MrmMQ|EUZrpv}_ z>uYVbNj%O!MFZ9LM|}Uh!(*V}2-js_-d_G3lkge3g5pUB2g#S z1+>@ki@zqjc3!*4&_vp7ybj+s6Ih!OUI5o8UfEB{EWv;)N(qA?QIvi1TT=6keA-?M zQBCJL3?=M}*p`qWdipucv^;wW2}zi;hH@~}&Z+A+IszXto>$k5#Pq1EFN(LPw4(Cn zAm$2*1M?g%Tsex{tZUMGj**cbG)SO5W^Uuky~FizTQV^^zMqzVCKceCTGYw+@ONq|+>wjs*z-Oc;m0bzcSZ50(7c85!Li;?gBkUX(k+8r zd+T2v(1Kb&&90IsjHfSn8&(-Najc&XE&8$x+@Mxk5DO^NUf1zrVL3`ET5=fakUoS} z{`zK|8A$b%;C}ek^&j(z{QqwQM&9i~ogr%0y^&Zrl+4tBJs8Oj6MYOZE70`;(IL|M zt|-F)zaclW|3!wm?4uXY5qt$*fnZtXw2db;d$x2EsTV`PpHO9i-jaj6uf_rKuR8CT zfn)jgRkFEAGZ_o9K-#{7LYlMdOIjA-Cu0@`dig4iuigUj7F# z#+NjGz?1x&pgIxl(Yr{BS3t|Fy^3QcujW4``mG>XpY^OXDIQ&W1ABu$)j z|KxI4o?6C0^es)kzJWY%1HQ^N-s_kG==Z~S!o~hA+;UP}{r$JGrjRn2woIdMHZ2DI z!W8ql+`u%EMikv44luf6NPe#49* zqSbXEmHx>Yhh9I!z}NlkUA0BEK0D;~Sqa4;UuA$cKuW?hXH{Dlw!w6X-GMRgPb)L# zAM3Lse$%Hn&~{wQq!oR+e>1s@aS(m7XW{3#;vaDI_2ME;_ROT!)hDe{BG&e-t;KdV zkWNB8!&St_hQ1+tb^*m>^HSFcX?VfTMl%p7+zVXO2sKCL2O zBsxdse7CVkX`%sy&goQHYQXv!zzP8FMjwuk5m_zLguf@`ss zFZ!)Ni!U^3U+XRVT*PReQ!i#u~IM9$e$J8yz@QCq~ ze-Z7N0Hm5rR=w+9tXo>nU`fLP!|^f zjd<{26m4SfxP)}HFkLHM{R<8P-&LWmzE!!Mz4xoXx#zVm0t(Mo${p&7UMa^RUkinJ zH`12kjm{9W_8#Fi@9OS1oSaqVHF){)bHWOTiXjBopp`7)~@n)!dR!cDHDSwJA%vkrKctIRS$% zYZgmTjLKB=CR3*X(r|GlQ|@og#}5q+r!zxUDKQk}FAF?|3T&KTt@yjFWVy~-i6Y!E ztu=^07=Nf)RVAZ}D3uePIF>2sd(EB4#LZh-PYNL7tm?vEh}sk?reekVz5Un1_@*eX z0%G#+^s!ux)FGvAa9l&tE(B+t##{WiwijPG9oN_r(E3KQ`ujN6V;DhX39@zNTG1F* zcFy|u<8Ob7@PYq_ske@5>xufkgS!-$6lkG9ixdeE97=JQ0u4}#6N0;I3lx{)?pB~k zaCa~6PH}>}_2zfq=UMN~U&%UiX3m<-oY^yb@6VUXi6?27Y+YGV`rW%i_WWr#=>|}v zp1eFIeZ+3L-iT>7(0k5gt74;ZRDLAR45?Q+8G%$->Fg)OY?EUgojfc?qfA z=j%!!V@Z)LGU!7Zb4Q$dC?rzvH8*MARQ7A5Vhx8h{c zbj)2XOg`vifV1J!F4WGSOFOBFO8RGxx3@QXq1{Vj`D~lh47~EZQJTrM0+A9qgcU&8 zdbvDvxh3$rHBf1Oj@yQ9W8V?a2`&)*5x|e6$B6T$G(N zwRxDircDz%12rT%P>*q2|GbWzN3aYBClv84eOXC-v1%|%%PEHY*E}+hRj_oI=5~rz z8Cj-v612jD!@+)e$VMw{iRMpHH!iW~A9+c=Jcu%?U_6bSqLs^u5X?OKPAh&2&uk4JX`Rb?l9>X1 zAkmj)Vcw0E_4nNAUwPR)>q0;T30*=8o?O1Py$!t$ZfNbD7%+%X#=r4rE3-XVe?JQe zH;&`i8`!Cur~!}2MM*f=YC@*=3~(x8h7EiHHT*gPZy>vvNM$MY&R+C#jOjQEuD%;; zKsm~#!$wF&_8mjaWr#dJr<z6-G8_M1`>l$?bU(ugcTZUS zL!tv4ZzEA%o~;l^g!*WNr{`GUu+%qB$*R2SR@k08~RduvNr`5ckaXa`e=ly`F6E}cX_8htpt zO43$~PfsOXCft-qQq%H1d?X_qzbL|#mVpphCwj$-_U@;Fi$vCJ4(o_N$&L9te~xSX z{{i6WIoWzbu3d~*vag1iy*;2W2fo{{fR#Vsz7I`8MWHni_$RP7cV_(Ox@DFWmCcgs=?knSOGuNFuen+~%v9 zy6*4FL}$Yi*nedYPIGZ{&QDs4#qSH?4Su)RfBpg57)rypn|;P`!hG5+!7trZ@5Rpq zi(lG5HrgE~4Fc&q^=~B)L5Hq@kbustl7o^?x!r$&*_q|e4@(9dW9Vj4~CUoal$S%s--fBi^lv(x~mA!MU>Pp@em3td9-0rFjgCE-i(}&W%SA()2 z+itAEK{aq8M> zDa&GWbNMmp=*c72U(~kxXV^c$ij5YY_Y#^rs7|Wxs(LP!1a#MrPk{1uhb&CzsC;PQ zCDr)V*PY4oxH0XPuY`=8Ks9w`_ze)FbCIxAQJxB-F6LQZBk!IymhTABZ< zBB4h3Rc+(QSPBE*bogpFJ!s_us8?Xcglc^pz(68K;Z49zw`tp#m#ZgS+_0pdW!AEG z&U})5=uE;za$7+472U4?8H2Gfii4A2P$o_(zxFFzByBf3Fm(>h%lI*YL3AYcr$wd) zFAc+8LWc+#uyKqk{W4nop%@IB>CCSc2J*UlAoZGKUu3CxHb-fz_x%)!amJ-g1R}DT z3qoR1f1=-J?-&ogGgM!nUxVCb@4+s>{tE=+?5ZMn=aP%7F4XRRsr~#dKC65XpZ2$M za=_%1<9`5Mh%5;MVYu5@Nq09S`Ap*5ypT}28E7VJrU6T_BAqmr~b-inAl5#%Ea*Z zZ5AKCf|H#JQV&(g%p?!(RqqUXEOKMC6GS@WoXwcJLvgvt`lSy=VoP6!?~2V~XQ{mD zAAqTA!o=xK-uzMdo1+55=xkw%?e%x=w`H3G4bjGaN$q2FLsQpL&F6*}%A^8V!}QKf zK5YTzYjO*=UfeBqE9l&|qI~D(-Vmm^(2r-+d~gR_reAb7OJnS@aaoUk>G1WVEbYR_ zgU77nwV%ExR>JSKldT?P)$M0o`A=#H<7JoAtd4|s`c9Nu8FL&mXO0-(GSWC;xFKqe zeZP-#roIMVUy1JBf9%(erOlciQhmWIpW_w`q*y|v`{i}tN2|9ds{WB)8~Wq8KL4<# zk!d^ZhNo3syG#++B+ud6mgBs$uym|vS^60bufrN)3D~^&!8S5_w8cVWPhW44x6~@2 zKk3{$n%{3%vgbMa(=#!lWPV_&*zSn=M|GzQj8A`%>UJ6DbiIXr{6HCOQw@CZP@?Dx*D)2T3q(4iX#jhv*=O)lvzzcj})nrd`W3A`n%lu z+YInACSq<8kL*B!zWM5=D5#RP5mSgM<0P8C6CrTU)#+o)+41nv*HkYZImZ2l>bEp~ z;Fbt%7Y{WyneZDz>a*K&DrWUfSCO~AwBPvc;g4U04 z>*~p4xe-UmU#IZa&x*zJeCvVwmhieCv9e4m>{N;VSj9V_ob4106Hg6kvUt-1(Km%r zgBo}~p`0{)ON=wrv_AHf>anu{<&_2SO-sS-j5;yN%Hdah9$(qZSv%bMgD5eh>E8X= zNgS27vi)Uhnw$dR8C2DBL8ExG!uk@6oFhwf2GsKezs2^QN+3Z;*i45UCpiZu{O;@h zFBpsE`fBOG*(D9rwGmMXNinsF@f5P4B(Vg`*KMp^1}2RVm2mUBHQ`;mQn6${r%ViN z6gUW|qkSVWO?T*Kf1tgtH)eA*oKFAJ$F?k3NgfMpLjN09?s2(joPynnF*KnE-YW4$ zl7$3kJxC1h8|%uLx%fOW=CwH4&Ff_5;zTDViE(|RK2cxqwZhkh_x7piBl_gg3oI(jG)Chbt?Yzgi z!Mz+jw08k7=de4#A&_@K3x^`vTCNCJ==Ns1g*46QBm2)BL|qHN=r8(>`D zX^gZde3S_LrQ@brO6ykR3jraFF_*0-1_sb*BOIFqG+7ygMdlcJ8}1~==Lc+S5z@Jq z15aXQ{;ptiz7bs9_9wb{1-sLIPSZd=H8Vg5f(=#B%h^?kwMJ z&#ZO?LEwRQ2>0E~WK8hAVwC!*T2ih+oNf~TBHO?cb*L=f;wjyt{Z}(+2Sc6!@%-=P z)j{l=)~}TDlA1ry$ScQ#Ud+^spPp{^yO?@V8*hEsQW5cCnA?*iKhz7f;;RG5lGEwCNU$k!TYYK2w_`)%(MYEi08ZP{KMFF4%$+QLo!Y}$)*2VT9?_zHH!3vZ2}S3w(t_dyfCuN)DZ!=-jQspKTZmyzNn+Q=$s_ zW1Mhzi(a#JVr|2lcIw7yRv=I1Q~*xXY&tYLyo2_`*1ATqwTU!e#H*3R`wakr_ERlc zne8!(n8npw&A(Y!t4NE>ZqIHdUl{Z6GC&PRgCt7_>;D7XAXmYP>&3qhep1MLN7M2g z`k%klm()De-ub z#49a*wI7MX9Xk>=S#~^X@F$Kfu{k*5c*= z+xX(xU%P>2;OI;_-)K4TeG$4Av8B`j*W3TCAY`CfPOHAjryCa3zH+}`VE@eGzN)o3 zm};+je*&vet-lnLUi?s!v36`KQ+1-;(W!tLseSM7!#gAX|8>v!9VHaE_+e&+Y9-lD z*{APk9$fJNU$TNU;=dYf{=!x`%zcAb^cCzi+4%ofQux?^QxMRZ zhLlCI(s{D({|*iC08TwOFTvswPeieTmoonvJAE_C;gu` zNY6PZ$$#DTp5%k<9>y$Qj9%AOhW$W;4Fq~uyONeU0c!q z_3AGbbnbFnAQy_J+wX2ljfJKx)&Ir>o6+6)$w!p~KZ?oBXLAFZgB&E)Rzc#1jL z0xE25@qq~-pR-`wMOEYR_qPjX{WutaQ65)@6=z@^OlHGWI+( zN;+eaEByof3Oh|H+8Pv|gW_e>|It1%^JT1Wey1k$>YnP#@97KRJN;FgU-ZCg^Puwk zvFifI>yYarW6UHFMcovqks3Cq%V2@`r!_)^AAM}QUtGyQfZ#0Jl*~+68o&%GvlGEe4vpd?GJ3+e3#}b93 zazxZ)wa3khogcW@wuI-NASt^W$Rm*8OFZDMTKXMXmD6LiMAWt>lx$;6E z{c_rUV@_=PhnOz+Z{E9qCcU+F?Or>g{uUn=&EBq1JuKRrkS|NG>HG8wDWbIPc@R}| z5^*izspvw`?1sX$rN&s7#)Xz4TlLw{>6!aZ9$8x@E!uBN8>1;-V-U$M%J<{g5=knD zzx&eVfC9mHj;1%R%CDE8%1p?IbCX>dTQMME_qtnJ3LFQXTv6gfVXfoz>}nHNo2+H4 zH|-mC+bjdk!)I68NcMI!WQ48g#;`8wF4(gFA#rhH42vRgA@#9{zCh2`diu$=UuQ-b z`JO6z{C$Gs@OwG!H6s60REQIlS7u|RPRhepABF5jModIUZvpho{Isg_Lrh0Fvjd-d z@8)k51*9(Sy7?hmD2EWIHD2x^?Z$)qAuGxDxMLUItbUFuI65*a)1}{;AF*KabF%hK zY%*;D6y4bF7B?qu?A2&DdthB|w!)8vh7sA@!4!7(BOmOp85VhzDy5`sT!#OYd2Ckh zx%A$^O-|c3A?;Bdz;LyW^9M2`T2Ua<|Ppp^hRu1RS7`q#T){2qnIo zUwzkJfEbBY)JD)gD*3AWf@+r-$v2t4~-ss8r$rpUOX$Dn}okrr9dm$-<*YJdghXB>M7vo zb$qJrgac>PJLKZ)l*s z5N91GO?T#@bv^DzZ>#%9V3@@b9x+Gxt38Zml+x~frA3@9w(XA5 zt!#Qu!FGP^Pa@7GmPNyv=!m<201NfZ6RMENl|_W@(b4SFvQO*Uz4CQrqigTeXl6Oo zek?s-N-$V(BeZ8yk1Ma80xN8W?%-$+$u;1M z6xO|5}Rqk;>&vt}Pf zt-#8us0<1rG6!UD_|$M*QAOx*Eh(x=IOSpV<^E)92xAzxOF8bA^{KsjTf4VNZEfBZ zqu!Xp{-RC0?w#~E7dxRWP!v!$*7Hk}TcOor1PS~}SY!RmB7UWfl>-o9a5cmlS8MsE znRO!PxVKgyrJ9Ok>^Tpi<%n<1ptTBuUC0;%mgy>|Z7gyLigg9J8^$5QJ7fA`#I zD1fIg%wPY+wFw)=;f;R@?p1*pSgF^+q<6r)`THS z1R2V(`+bHJ>DhXp#wJ;MKWE)U(mJc735+IW_sV_mV&(HH7No{`Q!$BK9WHF}VM-}7 zuXL_U$bwH9LbEJ^`m?m+q44fkSh(=M*&u#&gHumJ*&Ps*%q~)g(TM+T^H=YRL|HQe zK$6hU0x&9eE>7Gkbcs`4q@WSvU@!I{70pS`$`cMXXW*WagP>XB{ib>#HmqHm?ewxe zQRi?cG4i+E;iAgUtV^u7AgrOyi=nHbA~fmBZ9qvPZb*CW9yv0}+4f$=`nPlXQF%T% zMgQ$k6wv3#1f7|#>vk0?_Zy(W)_3s3yNnk*pTerKLIkG&0X&LU8Iw;@gcwR&s@GBV znBaiq?hNg!0|Qq&*#<$RvAcYP871O4DvNJ??Pe zYT2^x?GHjDlkVFBU1W|*EfV;I-$#c0;3 z_j&Zgr_H#jN?tUYDac)hdVU{`iR_Vnbs*Z6-;zp#om~L< z+q~K=_pVkIzB%G{$K1`nWH+e0Jp-%98u`~7f2 z+C!h34Sp~19$Y9Ei%pf;+45AgE<%v`E<7;@(?svs=S(w8u4t7D5wyF()w5mOzs;Z= zmSp7^G6d>#Z*zCW0vgLl>5E#C0JVVu8$znHGnGcxj+-yb)27kvvy(4WrwL$XF~;jS zeYKTjhjG!eUPQGB(AeyL-CQCE=4rL%8;<trJ>K|k|u{kLzAm4|n9cY2}onuh3YbwVI zR_@_emM=d|U4B+qoe((3gPKGd*2l-YUIvp(ezz^hJkeN6y^5Hv;){jWb2r9uKfNA- zzsciMnknEeU<*XZrJVjIm`7RAdL`=$} z?QqL28+;hYabe}g`c7;{;kejwFYiUmFfzH>FTmUIFf+nc6o|vC5TrD-ZeNo;a6A8b zdSqzlb+*^foN{k9*Zw8ltm#yb2$eYI(PIm6<7n}#TDlWLIZlCQ+?ho)n&+C$Xs#Gc zP#hLoN;=@0VRm%8-d4^YmSZ|@ZfQn<4Xzg@kY_m0CGehMKmL_9)$pTe+DSChh0soY z_&@{&sNLcdldQ{G2vek*l8NCG37L@o+V*+n!!Sz&UrI8X6)X~iyNLHA#ehpNDSOT+ z(YIz{X(=hmY!TR>UM#ya9QUMt74hg0dUBP~Hj{Kngoaq8uiTzvBFQ^%0w+|W@ihLs zpE~tOp@|OcjD2v-IZOpCqE$HBW|@1J3wzO8-TBJQ6r*7dcS~JE(|pAYB&Vm>K#B-2 zY+Lkx?errwiK2OYU2^DpT~ayCB`(r`vGsTf@+<$K5p-A-v)V%7CkH0#>2H&r`KuYt zH+qYxTkN$8?%YeeurkmKvq~H-)LnC6`UT?^U&(hD%Tma;pQ-PQEX3qhZhd~^xewV} zvv!i8SzmVwIPA(k!{$nRqS-P`xlf;}ZPH2l*iZR&j%zwbo}91~Lu_>(sq3N|BhS<- zBhJrp8HiH`rJ{NfhzB2A$e0V*uE8Zt8|0wh{yIk_+j6iOScjcudO`a|5r@FTqpU0h zbvYZ?gCT?8Jnsy1mNk8(?h<_v(iD&%bbywM)2+}_e~8Hg!Cy$nv6a|T*zWp?%>?FT zUqA~@X;o_5vmaK`b)Z5fu?HP^));^$hGVNRFPB)wzh&ldyy?*r>>tE@RrW=S%hGg3 z;=r?%z>*a^Tk?+h8OzySJH0jh!1v=_%QM!gg;R$A1=UxND3SQTswthrx9n|9cN6n> zr|Ruu7FhJ_ZeK7|2eNnr9&t~er|(F2?8W_8ea-&?R10Jt@6ze@vR4{ATi!u6ivGJ> z{duwZ5%HX*5FIOK^t{-#%SI*6O^$}xL0(P1dtPXIqIl)o$NyR)Txzpxl`{x;R1>)Cg&M!F+iukHV zHB)o0M#pNq;F6v9A9o+i-pcP-o{NP!LKykMVahGOL3PTMTJce7t|B~1jvE8TYrW5} z9_c^*1MDUB{{w8x{sVX_KN@Zd%cPWWnG}vm^fb;^pree{X6M>%{sYjjgPX=~QFnC5 zkn3zTr`W8&?6}s6@qZVDq~RB;8j4|@ zPDcd*b9d7Lm5kc0oY!Zuu(vFs&^I%DAn&|ukvCj0w4*3j^WebwAZdv>@BEpWVxDcL zF!nnWdY%3JUaaL&LQJmZyl|-6)*o&@2YQ9lL?~L)7d0y;FYi=KteD*pxVkS@({b_N z5SSe&bvScI#UmoqwR!1Vw$7fuw^P^_;ntjuKgE4p5doO$q+-$U5l*@V)Ugx}YDGX# zmn!Wgq`9L%wE)3i_tOFQtXaU#0YvlC$}pF7y@P~_vVSa_3pr1h!Zm0uH! zXh>EXj-lEg6vPm|E6{S?&2(W&`E8v3$C9T>z$u~A>&Q_kP>vx=T6%S{Zp3{;gxukA z_XcC$N>B6a0YNsAHS)~z%M>I;NcdL=JwuJRNNSYS&P`H9hnr+1D_Rj9&O%#I)4=3}@m;}#-Wc2X`Rn<|*qUA~PEMNLT`W1u&Vj!qkSGt~w;N$$2- zUg@-YR7~^85$sGUN#f1(ik>Ik+PNU(IcggjO}h2-0wp%C-MZZytkm>Ee2cCx9%DLohXS#;@h>`R9L{5K6Z6q!7Li2Cy|GssKG_FtZY9mL}sSK*~dhF z8u7liRbkc%|5_)pl9GQ4erB2|z~i1KYyO#cy%L9R)6KkJ{@L7*J=Sf_N(%d~^vFEc zqTnV?GMKeZ+!GNg_To+5O|>EqS(2n>)=GpanWII`S1MNBZ|YQtXtN z&nNkW3ysNwxn-y&t zU5h49@Qici`bwCHRoj4NhVBXbK{l*UL6zF08dDk#+xZ80J<}B!?C-eSO_EO-{R;i1 zV8;uE%Uhi+LOH%atq}LRDLy%Z*o4640P1gz)zo=T2I(fL+3P_a$G3>#r@SWkTZHpN zB6Kl5cT*&$As~&~2E5_SkB$|6?lIn44k)L~tq2Yz0fzL-21^%D8IL$_j)HXdb zER9iL-#f|KYL3naX$KO^$LM`r;BqP~z;s=oQewp*uR-yWnE(-)I{bpSM2iOR!f0^;~{x zSa0O35u(RSDBxHaPCFkabF|S}fCt`Ljfv4^O8}mGsIt8SQ&MMRB&o5JJy0RisJLE{ zUud=4H_^CYzhS9!H2k&b(}W^wuq;Qn=Zpg6p;<#pAoOFowSiI(FAWW$ucgSuF<~vj zVU8q_u3t$J=fJG!tUHU*G7?~2`fHiyIzyf63?!{DhGqEtTAWb3jQCc_8ev`-AW1rVDF8Kie z{SQE9Z|xAX2iXPJQVRCTTgk6010-@5lbc(JD{{-2I+aMeqLThp<^Ws9S9wToNS4G68pNOVztk0hH5==_9)1ct=)u@t zRcLT^1!{vCTR>YgrHypXUaC(%zEP@5lEDZWxNm63g{Ul2m8UqOX*VCT-}S9!P5+d*C;KGMn1L&lfK}0N;eK4l#-btN z+R%FOeEu75zB0ER$7+Jvx3Rq-rDEL()l_*k+$Y0-5Et(lptI&f2WJZ?f6Gp;?J3c;rrI;;nEn1ab8f!%3bCFI}@ zt(WES*)1>6#EUs$32K8)aMU|O+`g9z6L*mCISjEO z$Sa8oFlFH!F69b{!dbSYuH6PPrH~)!sEc7l8kO%&BZDURkK3)S9^?(D=pz)IK>qUX zgeX0ZpNTX1eG};SR!0=+hTzv7g07=GHEYX6^3RS8UImHMh7?IT$2(PWsjo(iylNGli=dw zVBPmYkyGfK=wC`K;5(X$4^v~sJoDxC_*{)oZ$mjYcUqpnbm$CyZ?d#}hI=AnFYW)( z=6QVWum^;F4XV&yZqhj01KfX}vL`q%Q1jKNSp?vKQAVB)*Y-ka!I!Ssufd6^DomNC zXKyDk$3$NmFuVH{ov4KJJM5M0*FP9;x~*mqTW^j3-|ym{&XP6JvUK5C$R&)l?Q$=g z*Mc@VLd$GK^;OEUW-dXxr?3#IFVg1zvF7-rZa(Y}qXk`*b$!Yhpl_4Fo+(Sr`BZ<7 zu6VIO_Yj)9GJ+I*=Nyt;#};Yfe&rB%Xj50`#P3i|RrmcEnIkFqohQzI_Y2rw%Vn*k z#-wUV2C=N`8vTI^Qs8EGDp3a zJEKvIP=nEk2p1W&(C)q56So&N=24Ax@MQv&SUD@0n!fCJBA~s#L0rwfAT7V;!}DA# z!wcG83Gnpu#HX?CzR@sw*U>$%fGEgDM++fZ44JmxvD4?5{3Dv<3svJ!jXwS`X6Rou z{TuOla7Eh}ACvPS^HFO4ge8N8GJcjNsGA`n1V6q_pq`a663oW9IwE_J$vm3svw$cv zN1p4ZAPSlV^|Y}wyIxAF>5or+5(h2RNH2;Z)jNZnclndmI(9YEOC`%$OVh7aY5puP z)X2WScHXqkLg7>sKUbxvqkAWCcK0+@V}`4C2rjSuPp<54LM1aFfcX8kT>6aOCzVkmyd+^+_H1pDJGGupr|XfM7~U;DkOm z)K)VPS+*ux0#RncRjr4u7zu`O8FP0P>_3&YSA2}n%49~#Ry9FW|8ZYayrbVZ+NLjqe+W^A^v*<`TbjISNu8Y zDPA$;xTCnM6I-%XLvUx7j#u*xX{0+&ws@4&KKq#>Of=i;(|i>umiSuiZ5{f4mXn>_ z<-uqIck5Dt6_(Zl%H0u|A6CUfwQ!&Ru3f0i@&TVpCMAdG+P^XYTY0vAh>XguH>OvK zn5)AhKYA$_)J`PLA%K=fC6%?`X%i10mD4@nB9F-A-UmKC@pcS#%xwgec^EfET!wu- z<*zCxg4zyV9uO40m(V;HdF~tIBYn^*gCFBJ);OW$>E8k8VmEh!BsBl3lq~es8@SHd z>jkdQZ&OXZDw8{dmb@v7%ZlBJOoy31&^t?@wSN~ej6}@Sb?2JW9j?PTK7C_#98`)D0Dw&g*;PZHZXq;Na@8LG5>yYQz9;Vo z`&0()nahVHa{5}H+upfVoIfV7(V!_y=^1jTU6<57H|{q__{xVDF8mVoEYt6w2fLrH zH}Ca6i@SNvwRu^3hobwGHY2JTFMF9*TQ1L|__HW}gR-Dxr4=!@tGAoGlND}7{#YS| z^ct1SK##X`!1NWLIj47zjh=C4BQJl7c2E+cPbO&EvaxSj3ko)DDn=^HgU9jT*;8@w zn-4|_*=%cxsgd9SrUYIDjJ!Rd4@+;Mq+D~k&x99YQ36_*0)_>hmfZ&KZx7-avbKmS&aGM*!um69=;x& zc1FfU_3kk}CsPCffQdgiBe z9nEGMc|5iV=3ACZlf?&nHK=>t7Ui-T4-9)tGsfFJOSU-)N1ng9;QsCVwb{eLX<}&( zQMoD`eEQj?@=Fp^eud89o z1e(Onrx}r@zkwKTMy||J_=a81H*#Fiy;`lwtX6cp24Ug4%|`ks$TI$sYPEY`=#+`b87-{BYO(>Kkb`zX&~5W zKC-1>y-U`E0wDyBE74NA>~pIO6gAx1AAss(uQOdvB}J-Flv2TetB_FZcVEyP(>(-; zxleZj<8HL;{Aq9-9QZo2h*!xZ1N5!xc~`}vQCS8yXSb<94a95;>$vzua-F>wo~b)g zDPZDr?kfkeq3i*~)iB~6FFR+Pz#P^OgAQYG7CODE=Z#J4U)NKiL$%=d4)6jt$pc0b z5jCZIdIvXy2acvQy`^gR`#8~f;mf?6OeLE_H_SOgOIDY%Q7^qK2$QJya4jHBYn*nuf}d^ zI!hSM;04$3*dGz8TU$CHlU|J616O56DL?M=x1o&alrUCCnB}n$*a1@2NZF^AlbDCH_=Ftp>vlMXmmdYldRDEi39gYThCc(AV@&^B7c?>-;u8h zJ{rXZnRG;zFX@R-PB5SOk(ZEE5`i9qic`E(*0kR*%76ah!4CK}u?1MPyveL!re<*(hFYgOVFyRyeTKZ8q5wbBn=G6pp=q| zX1t9KslsTGCLfXAl=RZmkY|d)A`zTcN3U75Ikd=zi6dH73`44?(ezA2Du-!{QaWS# z#vA~sH@J6Xq+`uFJ%`YfAesm0mIDv>-TYZFL!d+{He^e_UZ8q(O3(q;Diea1gleBx z98^ffRG%D*ZE7l%Js!3Vx{1+f9VHcM5*T`nx(pHgRW1t>K1b{vwsuV?t%HFiLWkdhYIG3qPvn|6FJt*MfxfGT{@Tm6p>yR9?bK zoh&Auir&Zm9!{Ay|H7~(rB7^pPZxPQHxg$4u%}|#&j(^HWe591-~3przXTx>C8Xj7NQT`5jKfba;^UE7;j#HYD=IzEX z#0eP;-_}Xe5`+bm?^&PK47}paN+s99HQ{m&DaI$gKRgEZn zX~Hk8c$TbqdLDH18F`%skb473Kzw4(*J1Ca0h_jfMFY-FuAL>W9>70>g3i+&h(ehwQ(Koq&%) z!T9BQ(Zx|X%^q5#xvme=lQexxl6bFSDU&ecp2mEjz5@uC<;|QlOH8V3ML^*JVMg^5 z4>TDK!sEP1^;T0RhCpNvjjaJu9yzUn$GU(q8~`$6z&v}MN8}m$8lf?HDBUDv`g`yU zKhKxJ9N*ccGn+^m7KS5hx~S4kb{_io2H)t6D={^_|3y#5`;;gtGf>^<<&O)TQZ%|4 zj{f5?$i1HAt-%}LrM^uq=PTAkV{sE%!O>(@Ae`*RX0h%%d`e{oTu%kmq`OGQTLo5p~0J^~|q z7Az8F`K=pdWoJdM6@42ECc*Q=3{VFrsUIUKK-j>y!v^Pr*3>BkHE68*$GO&YJr{Y= zHaafZVS_KyUW-0&X&7kBM?;&JUkjvkSR z4B@zrK_;nNYtq5JThyGwZIl0+TzD0>`~&!6zdy5#d|kvAx*b~iVwhapW51VIJnD7z znj}#?o9=8gQZKtfKnmHRJCp-yG4_9*UR`Fh&!ob*qpIa83aTKF75g zq*P`wCOlRN9h8GlomAvS=$&hc(b8hVZgI=7rj}P&z3!ziu-I!L4e`6W(}V-f zDY*?h&y>ZVYKuy-CgGKL);3@#$wjZ&dVR&BsVhwIX`U`@)1A|{S5VNMWv)|2brw5;^tZ%HwOJ5oykyj7@C;d`;T zy0zULWgd|)hH2i_aQ`{+yE7Z;$>Fou=-wBD%de9KuLJH8fDm0MlZ0(DjV&Zrb$!<@pRG1i(HZoG2_6)1 z@z3^KM=qqElV#RV$qi$AIXL&X{c$l;m#Rp(^TiPgZpF!01*ih2V~fo zG-I>WFD&BuTz4!iA%3m9^#5)*&B$8DI4Nk=OPS95OHiQ9I(|AEjT8qGC@1TOH>VV4 z;mSdg67XXB%W1Re6nd=zji1%|($B_y0XI4^o2ul(v*EmTzByK7dA0rNT^TG({7P`3 z)$Q_;XqoNhfrBpRb(;REZEamkAor~{&$mpF2@TPa^8WN@&GHckh5fE--nd%aHILl# z8vo_;5ZP*m3LAO9P2JyeFDcGfgk&he#-|>d#W%)8_2{b^pSGVGO>|xsO`Tf1E&hCy zpVZKc7p!^waAc2~Z(QUy8WwKdn$tXFXj8V3I5+v;B%ZqxC2_e=s)Y!{oPD}|&(Y*2 zqjE(%At7;mwM#|q@bf}Xpj4B}C@YyA2{de`{f%z#?82P&1+{a=$AEs0#-9RzE;|^A zNI$KL#CwmMESQ;RPdo|;!6{y5*1@(iwWkeV*#L$ zuPEfZ>K|0I0xKQs5qqKpcf5BI(Pr%i2myzHIWOU5W$|0vqlptdCbP8FT|GV6q7&JYf_j0vnX%25ouMIGcR{E#T4$j-m_bZVDiGF{`4qdj@9QQmbAsUKA zZO;Aoe}KZJyRyOaveka?yqmNyE=5LO+vR!$B_#*ddXJo)$EKI{@CJNuqeM^Uzi~3% z{G!~vOK;G^)4l&V9hH!}w)hF;*jamu=R#rB?7_dWhv(Pvdyo0!Kq6ltVw9mpCaG39 z#W{w2$3?l83C^kCTYpiHWP>jrzRNw3g>LDLx;V|1*gFMlA`h&uHv>gi)MR}uA6WXB zEMcuwVNJn5Ir0Mfdois2N@eRt;=2cCVn#1hpQ$-3;VwUz)3rPyWUkdxjOj z3?ei6(cvl2ph9-aUZ6g zKOl`RUVn#jPi!KbRGoIvTb_#9Z%xqf)knWWPwl9Yai~L?4Wffita5}1KCeeDw>}pv zSS!2(I-zK&xY4ol`8n?iT@tm_&;DZGH%irp_e3SzqoZ`F4~_V;{(Mos{~NIRQa^zk zK2b}lcIGjx_Te{d&Vk>oZD*>2?m^i7guT1KKR9)WHk3(=ubA2O-4Ke|K1~Ds>$xqJc-2!d00K$*bKB<^xUhn=r$19hABeihu-ay z4yE%l#HLzTaxBQF>aROgrZsE^2Kori(#Y+jliirbE~Fl#Q~0|x9MSY}f0z|=r`c28 z_Y66}JdM$z5lfJ?ZJ6%MvFG5}cFy-#M2oI{$p4CqBLGE&raza@sh^K)ZF8J<1e;lq zt_QkI@FUU8p4!?Ve1;#(z@Zl%b>B2X_9SB?b1M32Q-OHzzUb=f&%KCxHG@u1h|R66 z`EgphCXF+T(0I36RnG2nZ2>0446L0S%BSdOEi9_=7Nu^#8T9?!BBA1Y2PJA>NO1Es zfUg1@bfY&Rli|r>X6en{de!jWNhykaeJ)>qBl#Bp{{R?4=e~H8nuCvm3$4zn8)(1ff50Hk~=>#7L9T-}h_!7a>> ztgz1KT18x1OIqCE99_Wis9JFLH3+Kk$j;hI;MHcwb>8rl-`QC5LoD&(`BKjH>P zu!h1piWdTS`@pQZd(kYqHaX0V!R6U%TIV&bHL0yYpunnzd9g2OXMVs z)TTLWlmG`I$p@fXMdUZSZj*Tw-DtY@?3xyweHn7dOK9OwB7=Rl_OTABpy^`BiDtHJ z5KPx#7$S{~FQ_9AN}_qnQl_7E18s|9XpzGQ2ROC00~!!TR14j{uMC(w5^$y*@a4$` z;jf8+hWbaCsP>wYf*J0vtv$Au*{x?~oy2nfjpR}jBU~|Si%D}?k-!`PK_+&;=L1F2 zwprVK#V!tyELIwjBO!rko#ukT`pDO_f(5xJ%BCK#O2m|7FFf|A~VeZ#Z1gAWp1?lnP- z!E+RPqs={TYp7~ZK0>G@?G`gMa5Vau_L4;@Q&Y@Q!vKRWwziH3iZX;dFsUxYi}eUB=D;q=P|r_0H{K4+nt__+{FEOO$&<)-pE?>)XE9UGLe@x zIe4JlF4=sV&)iFRZ#8>aw7ss!$0Romns(mYMAri5N7a;u%J{(zCkmk29li2p+l>{m z*l7E9&hI3Rbn|OgzaKQmnd?aRvO4&R1Ra}` zE%(iY&wUe`@JMr9Dk=CL!0LI`1zy$IcXLN+4V9bcksV8RiX~W~57}?W+wb=xNIpdhQudRNNg6+1u zJ!z*ovgvLyWsH{q9WSb;xJ+fH6hUm<4Q_{i%PHb>nB$qxc4pPiBpwu?8F?Vau4lC{ zPc9D2AS`HcZdy{D9aF=a499KjcI`0C>b7S!p~Sh|y)E?DFSyak1gaX{M%|JDm`uRq zTAbCx=&d;*{2+)Wp#3m#7|`S9y{+7uj`0iVF(UzmczJu=lXoVvDuubAaFlN6{O0};=a6jKb4p-&@Z4?_ij;O5j@f>%y2~+yxX@29Q;hTWLn-;?maE389UW z2QbFWpgf#Nr#h_pCf>Q}N8ytNSUHmd3NLvbE|Pdnbcv0{*hc8h8~qW z*J~(q8)`rXRxpZS;L22TKJPWIGg(Ni@hTmwaPl)ThyMVzfrr&aJGN?7TsEQia}2J) ziU0^W5ODBS*9MR}W!g=L2*UuO^oERUz;GuNt_>hl{{Xh80|t;O$h>~aC2(m1mHHjy zUK-hEYjLO&%SwcbmJ+gy+|6 zi(4V2cQzJf&h)ac{XiWwP?0|yNI9|jKQP#rrnxAx{fP zG8%)WE|+7$avVpd9Ydtw`?-b#1lzMgUl+`cxqF1WCsSjAAHEHopyEGXUzkT~>cm_$edp{9(rHMcw zV~FEIn|5d}@%LM_m!~bpu>)qI%=hV+jRbSda%F3L*J82_OSHP-X}8xjH-|V^^}2jW z!z+NV9vs&E6IPd|b#FBVXW!%41EjK-x(Jxr> zEME%I!a*CITtNq@9hZ+Z+`m~w@rq9-5vq1N#imb%x_jFC3~Q9-BALCEuh5&9>gR6F z7%lH+?qemE^B1@r7zKWx6y3=jrcR4AV%MFo*KI*?wwdh?rf9>1xD(5k3$5(G8-PBW}$Y#;Ks&2FUG8OM*bm!HpKtgCm`R z%v#pC(u-Hf&HhrIyEH{tI|EMEuVS*Z((YlpmG5)iY|;c#xVP0SO>n0VDywmOi}>~3 zCf%Akb&kZ|+cm>W)Y)|)8M;z1i8BF<1F#hZTk?F(ym}$+b87AlzVgjSOSz7XsF9$$ zCpR;joVW@COHLjOMl8K?TKKc(i*34==*LE20dS!>)4_UJV-?X!h?!F4sLzibxu)wP zB55DMR%y47)9>wWqYi0~K<7QKH8db&jVVrC6O(X#w1=`tCzE`5{ z7jiX*%kwAl@uS*ldxYJVI`e((7Q9+%d&bmA@h$AO?rUuCLuy+o5}E+MJN>>Kmfc%x z71QXKxmOo=B2jNV&v^&&o*X!?1w^;Su{gQJwkEmYcw_~`@baPzLOYL$ymay$@wwFi z(10sn1Q8bT0n>|s2c~y|K*uSoY3!;DV@$M&Ob0=abne2S8v02%pvtZ^2)dC(`#8r{ zgo?As8h9X)_V$xyW2U|-Z6M6>Y3LQH9#r8(5&rJAw~`s+EMs37sC5A$l^`?&h6JF2 zHN6VLe_X6a%xP-?>#hVi5jzh&yRoab5ys>;*#oQ7OtS#wfF5t}XAD2j)}8}Fbuhi<9t*jpT4a_%bxOE&!au^bWUbS=Q4o$b3B4YJe8Q@Ci+hytoIu8 z-!mt4u8y$1jv1+#lH3oD0chK^M5!(J{Q4|~^>~2#3u8X3J)4F~nw8y40rKk~-m;&T7Qs z&|624Dkv#Xqi)RxL8a>Pz3rAs#8WdChLMl63_{C%L|-u+klIe&cMRD701bxfcbiE% zQOF$Xv_Ak{<5kG?8)fe~tQ%)6HxbFF-!?d$$ea#X@{F%{6PUM(j+h%uWvRA%Sl?wV zH#U+q30@spZOsNFDXlAlblafH*v2r2HK0(3bLHcTblae()OSpJZJpK3(!~0b(GYmd zz(?T6-thBIn?|>9UCD1XjmDvH>6sHA`C_c?am>J6-m48pT8wa_j+=BEjjQf9>(;l@ zODTh+)PgAMLDDX+W{-ChMCrFdhG_e{UeS8Z()CS7$&9Oq!(Go1eGLW;c;Kg|-3Lyk z-!9?L9M)299ck??bV1Tz++__ulF~B(YB0x|blaea^*!OJTsg*BF6FstB3UGsNork* z^*zqSlCdz z1*gO*7U}gGY8Mi@k#AC~X4UpO}+sk0d z3z}ZYfe!G(zg|4hW)8Qv=|>=V&SM0-nZ*6bEEm8Yt4zdH!A~gBZy2y zZp=$T09TJcGJ-tRT;Us=oVl&dOmN~<#LRJyVj0}JaJp-*TEIhR>AIZXT2zd2s_xv` zE$x{TM``xsEi}%vZP}XP!>u+@TmywmYHBDH&V17po2G+uwnm8)rL$>lrLQdq(?H=t zLG>!;>7HY9c6Q%xpJ;VCVQdoIkR@(hVxXYo!l6;sDQ(YUJ8n1jw*}3_4{n>JxwG89 zNb^TLd4roAgoH(+Xi>GffL&Z3G#OUksporaEC% z>bp^^nsZ>1YioD0v$3(3=5Vf4oq)7`1gBNnjQ3F4QCwNa(5p?uUIQa&Bp#V}pBhm* zuGC2VkL}!gToUUVup{B-kTTkK(Xv-C4gk>AM9j}IINaTU)|l8K0n+7bMFv{8EdWq0 z_Oc12eO$qqhl4KU&0 zgJZVS8*OOAbZW?>0yaAU=8SMb_<j|^xzpzU_OYm~G&J21*xaRhUy zsltdV?DxIqk07|y@29emlBuDgEi zyJ#3o-y2QT?`=URAQcCdR~yh(KkeSdcCSE+AAr4{YuQ`>0MFd%)7(uYgynOD(Y>7} znh!@1aps%QReZed9>cnMWyR&GlPw)qT-oO1S2`NM)JNhxQ+hNwDPioM$J5BTx4hFM zbd4}V`R*r?t(DF$5;hZq94p6~&67O!%_fjDZN0Iytvcp6oztVWuJlOOvf-i4Y05)@ zz>G1fuYT=DQ@T3|+HK>fzIeCRiKgqWZh0Ymutf`}cf15{x6B4%z>-sb?MAoizbdzo zP6n5(=z5^cXl-@fJ|3X159!>%);BoDoCQ;U?M15NKaTIBV)6U$- zgaC_u7~`$?{+Z6{l6)djU>LZJ>w`ikM%^72PEEtt6ZId-msjfMAR#eAHyVc zU-#||&k?lv(5CbiS#LWPyJF1eXgZfrd#-{h9??@n=ncmLo6uEhe`PmzQ=3QCz`~^2 zONKw(P3X|8i#tQOBlO9l-@5}tEtJh~_@icI-h!~Bo3%R29D15P=2~IXhWrrY!nAL@ zN~ZK^RYCs%rMmEQh|{ief$3m^)su%XxUSp1ZI`G$r`Ue_&22|dH zt{?hot;zoY`1|J5^4PhxuaBfFEWfOD%iCRQG8%048WCE26NuyNU5>VPyI+tK4xe^e zS{(2?Bbx$!AOJ-O#RpW~vD^_1Y^G!BTx|@e%hp9{fT$XI0OvMWeG+)F89?xna6{v6mbY1`?A^dpK7&*rVSuXJ5r?`&$( zYC2}6VRvOPc-8Bsckv{%ZpyC9Y-=#16eDbLrlQ7 zw5N)@4|Mtvk2UVxT3lLATVOibnCO2=l{69y3%*1IFv0- zk}KPI?pkv+$8j5GgtPPHkU6GIPCRf6P7K;`;>(}9JsRn}`(!#_f^Bih;RM2o0 zDiY5&2JpDsTFehJ${~{CCdk1f!(?Mz3tIMq1DX#C)l-uUchiivUivTmcrHv)AwH1y0&B646t5lFEU2? z1DR35J@>M<{xcQ)N09!p-LURIZvJ6=S=*lbcAHjizp^`(wX|)`w>1k_wo1jSTMN6L zCscuiw%b$D?wsf+2h&U3AdEH9)sHLvb(!Aq&ER+*C@vdIM;8}RNh?E|!ul76oTH~DDP9=S1j{CkZUizp zk;vwXH!~XQ1K>!)h%5dAF#-K1VAD@X!1(YZnh1w=TEZf{bK212!q&KfTIL3TpouQD zhCU|KsQ#lUdSu`~wN4=h8LI5la>h5N;L`s9{9jOQY3|nnUUcw5uYJ+&Zj~z~w!f}R zraF!dX~=LC@~RIqH;-zxJvUs{B7$n=F~rdz8H}B0zdk(ZK&rORNSB%a05iK{`VD?x zgK4;qI3F9@;hDMP5)$Gu6=-mwU5`H5rrdSRQrnX7;!Ls(%nl~B2Zcflvvm1{u(Y@z z({*whFr3sB0}6mC^dRFVog<}%OG^2RON23J=SC7Zxo}C zwFIqaY4GtITR7?iNN|V-7dL~NGSd>(6UbyD(r<>0{2rhSDCRi2N-&H=fh30IDuk`q z8f14N{{R&Xpg0`U$?7bqKCHwO#ICLGfdub;p&U@>iQPs^)u1?nGPvR~s<{s)zGrsx zEg`s>;6~O59L)i^hfp@4a3xubym_f}BV5rjbqgdhi1ErnC)G|B8GhBREF)aFbcd!M z?2UGC+{S?AaIGpuXjY$VWM7hEc~klfK3NP!?yU_yCb*1G15ri0V#GeScfK~u)OL8y zb7ncQ^Qkn!HZ4md)9;xxV~R>p;OP!7sNgDb1g6D^XWCp%%jjfnaCj_{?FKhCjTJTG z>eq_H?yQS1h>a4>EhhsmY{ktqtBrV5+^!-pcn@mKGJ8vy8eJ@|^#=3hP8?8B&9B8A z?~XP(?v%9kpI0@FV_MQ$PXGYN%?CH`$Xju0E$&OBVEso%=Vi_b83hjlM+J{3e4#h( z?ez`KgfP0|D|?7TCuBf|nudc?2jUBXup0}%cXlwo%1P&RmTnKW9ceP%HRJU&H#HvE zNg=)g2E%PHn{7u!FKmJ{8_CSaI<0Wz94kj4lLyZQsg_60Ak~&rK*D$7WhYn~W4Ntwyv%ZGb z8Hlx+;7=UH+&ov_h)UvefKX);_YN1^+uqsS$o6_nu?bz22mYVCnwV!nTPC*6LKxj_ zOuaxH{KmOUNOwBWf`WqS$D&`;mW;&DNUUI#q-MrY=$Yl+QAj5*eY1-^Y* zx<#>j-dS=%4r^VOMvT7nL{Y*+z>$p*V0W9U3wWPA(l|#ke@(A-WzI;<=aY#iFro@A zFIbA^K*KxU_Eqi7^6z?t3~Fd7gKPFSyByketX(#>!Gbvm4F&a~tNETNBqJ-F$5F>9 zIY16H0|P8&7;2c@NxK+Zf2Lf>%P(?b%ubN{6 z9_CQejd5*jLya-Us4c9teb_NHbt0AhNh&invK&jOaLhim8&BH3GB|ejNn>oRY@dyx z;lNW9o5#%tNe;kIid?A6xp`pzgfCm9z1R3qzJ!^Ny1uK+_e`W1)0-hnLAw7Fb zXx45n1Z@s}LmPuYa~~N5Ij$JB!!HnmBJW0m>%QA-&&tQ{#5v*E zo-{$_O_lU^m#<*}f31|a04T;50?|$ltGFQBF5f{Gw>6txLfIMvT4+IiDZt@V`w&SN zl3eMxZqtM?B}CXv({&~nU!qe^6#^A3zJW18Gt z{{VZ&pz#!{4Wro>tdC9xRy0o7sw&W2>;Vou^BQsTL6_WB_F3d(LqnL?w1G!8^#--# z9nZxFp54rAw9V~*XB?&jLOn<^yD(;S4v3b@T<<_M4Wy240AMiv zs3c}y-dkzosAMIN4F%6}A)<#Uslx;xkg;jBCunSTcGRF1Y_zWdUs28VuUu8z>02i? z9b;-;_^Tspnz)+#P*$BAXE^oFl@plIKn7a0fzF&LP(Oz3vxo3_asL49jN$cps2_iV zY;lOwV+3>R@blxzNUn=R*>7X3Wp3(%Kh7039z1GLasL2rY@h!C7DxX8;RpU?;*jmV zlHrxwa{xR@xHZEc5|orVMYVPjcn`4+ZZ$s=;Y={$PHDtd9jUT7HpBG)05G|APk^Z? zJ0RM706+Dt8d*#;ToN;3Ob}$&8W(P?4^f(Bvx|Tqs`fp&67CKM6;5fGh@mXL!&KTf zghgwmX)rnYKzpsNrhlTeAi6SHOx#BmpQ`O;49X4VV#vf0O#~f3Q-n-pVeJEhg9AYc zGc(LnT<=>z_Q>1T#hsJ_Gt=~fK?f}b2~a-T?<*ojZzC)YCo`yA9YIR}vA1;O{?o*zhd3#=CEI@b0<&Ygi4V z=Z(x@w`n%Tt}bkaz;g{M{{YjZB^liJ&*mgUad6G)aU)0})zkF<07HST2UgIJs}*)B z#}hqK6!bYeHt&8r?R*}~joCE64%2fh-==AjWNabCgObRQ*H@n!EBf&N0E~W6Ecc%> z-R%-SF}x!s@<{t&%^yw#GQObtS#TIr!BvuMnsh`!qdzhI=%3Wh-4pJjs|<2!)+}x~ z`@aW6$BL{{&GRkZi&qHd-7sf!bCBIHPml_d+Em#(p6>;#1-8wTSdLB;hq}4iyLR=4IV!^&W%WKskO>ksq_7%r z!i&VuIl0BxesV4ry92h6T(QSu=s8KQQvo1?d^)_pV%LW2_N}bVXo+MHY+l(s+&FBV z91$d$Lu^_@Mq+5!bvO=QO3tgbkzPA{+Y$s$*?J*-gD`Q8!NWEn57wwotF@7k4%POG z>@>}=w0Ot>7d9sY!j-6)Q97>HMQeLQ+1LwP9>vlo4eZ(nRK+^3)h6>Y=a?&IbPR98X8UE!`|3;2Tf;i^^Vhbr%$ocx0aEpT=Cotmmp@8YwZ+($i8C~D;Y8}YSrLt{-uPBr#>W~P>$xRua5XI~%-$Gd z_N2_uF&6J#JUc5I&;vbJopMM8tdz703J*(ZLBMfZaQ4rsNS<)O zFSN;EnnOlO3u2^@y{&ax?A$@9%2n}o(aL1$w@7Nob+%ElmHO_TZ%YT3y5>0A8PIWK zYT_GA9BNmo?Q&NfMbla0$(E6QAqcRzv^m5$nwqx(LQY?)v|h#=teB+4Ra2P!!-zEp zm_8u!1x9#^@TDl8tD}WwvOS^R5nNi!w>3!~_DDKW^&Va_v}JF+TsQ^eXSUkU2;`ot zwUsXO+fwM-rOOz=>luNb+2jLWsV{2*;Xob3!D7dC*4;fbG3eVJvFL}jD|ZTzNO53@ z(9*HBrLBz9iyFf~4gg@iTz5^@{;993U$XD|S^of;jlR{~IU_V2IRM%%{* z#=+zm(e?q2SI%R$>n4}a6Tuj3R@ofmN&pT3P<>S3RpKGm=-Ejb8UZ-C45J!UjtDXh zvvgyCyQ>)hw+1z!)x-`X+JaAx_(>B61mvxG;5~%`Jz_RPD;xoEuNoiQTo6RNqWoR9 zc;jP9sd4m=0tf9ugxIocc)GIGi47VnT2mY=!393AebRZ{u^dnWWOPA*7dRIHIB*nJQ2FyT$mg&-CXyb#HVHbnX_?mf5n)X;-r&jBMh@hf%J|+GTATNx&M#yF(vQSIDi?IeB@>iO}f4l7?(+RHCh+RGaF=EV2L`5f91 zC>(f-@~9Xq@XXC>Mb~R8+dW;7ygD}-93ILs#Fo;y`bjNUC#vmbHR&6c!fRNgl31dX z0OmP^-k`)`;=KO=d2Mn>qfQx_wri^;Zm9!6mA7%000lVE_M6O%)4c}!0T;9HU zs0qku+ESwdK(yk+TX|KJE!Rc-D@Gl2yq?#Ok|QWLBHuw(shPyEC}EJF8C$*0fRat^WWMs{Lh_ zX}#XlVz`O76Ui0CEewiCp5`&245Tjt?GB|+H5*anbzQ8aNH^w)@AGwAOPACC0GMUJ;j5(~I9{my5cCxVQ zoyXCf({FEkXycXHrIO^uBLxqwpg2{{<4$U01@-#6w(Gj1jPqbxk8^a`j8Iu$H{xm- zZXDuF)gWaKtxjt2T6Uw!wTREYH2EZ$w*D`PaU_Qv%wx~u%5bV}N07d4{^Q;0ugNsV z=GpEwIg6tJgHKK^6f_|=qsUGg4|BApHYuaJlE02IE3yYu0hY9-R~a#WjufbpfAt4% zUPjA_wJ4(i4~d8n9UHkEIB;3Et|+tIZ;d1MZsNU+#@0EO=Aef((Df<9HCxBccaI#z z*6vB78P>PEZ!euGyJ=&dTOK%*;3|9-y*B9s4ZPLny|_MymNemt=k;d6B@HIoWUlrhuAqPMdUrC|NhBYexD` zS5&tGeLTqGQ>NPTfv`Qa)Qpyp+tt7_D4OPjgNsj%y{|)9QxjcKYH5-)Zn? zA@yl%t3uL1K9j^_;JF)5ZzJyQ!<_dzcDR0-aV?-Y9Hi5N&X=seE*G}9eXY@=udT9P z7d!DBvh#NyA7TlcRe|ubDPeC>k8?!`4g#cdH9_-4)&3UktclJtNh5mAsi5|b9+VQ> zW)j-AMt_zDX1{@R%>$cWVuc1BsMwh$Ga4FK6HE!?iSt1i_eu7#cGq=BaMpnBK3MZ* zZF3QZG(5r&9ABZx``Mpv(E1LuYS4JN1ID!^k@g^+yIs32^bKQ2(r@FXYjYlV%aDgLtqyGi zxq(`mpv!i*Z0zjiY^L4v0YGyA@r^L`R=6OVw2i5!+A-zPh{+_ij%fEXv;Z*oY7QI_ zQ0mqeW31TnW05si!mGgBaU7 zOt$yX#dOv=ugOM+w>ZJI^-{GoK{9F^X5H3KAQrT=I5gr#M?N)j55mB^c;ey@Iupn0 zUbw4m+o;o=)`RgM5AOsQ3vG7jTs5B<13&_Y5kM(HTGa+ct?QaNw{OBd*1D(v0Jb*M zGql`z2DqAne`*Xxy0zwESq&;Hk1C+68l}+STs?>S&~pAQdHLV|Fa9JP|Y-NfPapr-yWxVnHo9ZnoQ${#;b9)Gz7M4G<14iIXRNlXX^oNyGV#Rp?G zebJGn@#;)C`bz;IR}4>xLEHZ3*W#pa>gHz=DRW*ckEj4Zz@Vyb>(z3%J#$c3)b2l0 z4r6(1ZNax;fM6R}RiJPfQ{4zMOD$t_U+Fj6wW&9d*fO_~ii2X&{{W2aNg>A+80E(C z)$Z-Zw0ByWH6#B3sq8OtC-COui6}Gv(e^8HYC7$n_18|Jw)8t2nXe-{o>49BYT;}g z`m{P~WvMg-pqqCVudRO<)*YbR>03ufxq+5UmOVgPYBx5WK8vqqHlfYCVVL^j4joq2 zwZ#SK3z1(;%A8(^1?Hia_aD>93sINUg+eFD`W|#*jTkAl*Ir@)g+|E2iw- ziL_(id#aZ3Uu&~PbF1yWho?mLz26Yq2Aw*4+jcOPlI$d*#RL_-{{WYs$=kb1>Rmrk zwVQBT-!;y?)R`1bmJ;U)rnF<+*yDf?b)0KTE-$;LDj>~M~>Jhn@5P~g{=)yIu+ zRtQ$|7xhI=#X|rldWWA=xKh5K-nILF$@Tt;e2Jy3p{;6otHt9=-CCa1nb)>6n|jF^ zY>jblQYlk`@l|BU7xD2!)?bwF>0WLP3SZ+opT$VmwkVr?;vuW#aUTfaNpT?K{i?4g zHW-<&i1ZFW(~dcgIochMDvF9%fK)_MD1~*k*{>5rj}z_ZhczO<;<2p-d~vVrL3_2l zbw$2oUNt2Bp2QhFwxv0lz_1ZR{-A-C^!zOxi@13pwQJHyV{ODP_<15dX2(-mA0Mr) z{{Xz^(F8-U@7-?DNoZJK)M;i~{%j~Y4k#kcS7d7YmI<%lX_1mQIe7yNL%!M|);-U) z#kK5_Ii>SOGZp1*K@(rmgT>Bf1j7wYLn8dFk6~ zw-aXD`p#Th1)b4rN#jQ#%RigvWOV(N-r?OH4UyTyy5wwovJ!exSZ=#ENh`1AdosDP zYH&H13?uQd4rnotl)m$`y80VCS-mdfn|DWfl%-35>F<=qrb3xmLbLwWsV_aQ4rtVH4{*Ne+CXlnu&% z?$prm9M!@-)ij$;P6_O919}ri_Q_B^>Jc6k^9sy)I#}~}%SAVq)4JOlOH)vhGpwv%QF?_D%g7oEvvZWU!xD)w_P(fM9(@Qa?^D=^qZ?)PTIA%pDTtm zIZie46<%h3e?nV_WbHq>J4M72HCQ2z=G*{9W`Tn^C-R2_g7dBJmiXD!}CviN7+ zPB1NtQD`%tCGvmlvBn(HZMy#eGOfDYo1WRSKG=}VfP()3%jR+9vZWd7T8*TTO*h6c zhDPUb96rPtJX^{K+jL^QYhKA5FcdzT_;~_?Qq%W+m9~{@Gw-W5LJtgT04E+OFl}$R zY-^qH*BwW>;iZkk(BNuEE+8PN(KQ$~X!A%;e|+Q0w54lYDuXzErH{ig(r|4^0}2{r zTo6ZFlH$jr8y!6_b$yr*F9aH4-YdISi5lyXXxA53V@e8gIF2YhGWmw?yKgsZ_U4=n z&{^EgZ9Uj=4Kp-3#{o<-xEd>L8A{ZUJ#WJkKt)$$A)iRKztgTF zpsNGjk2;^&gI+aV1&z6!Fj1lAhJ%n5@aBUN)HH(wGh<9o+2KqvK^p6p<;{0gks0@C z`FVYaB8%%#E(S~nY7a5Xg*hPI50$chI@WrU);xmR;ArA89MF4kxk#m|o2 z%y4PSYes|OK`X0!ph8{7w79g_QFf_XpFx+yRsI3RKitHWp z=%YVudZXK^dTem~#E+zZ+O@JU+lZbdbJzju5>0X8!`a1OgU9HYQppp`bGrhe}XRlLTh86eo^8+Kx)Qtc$0MP7c}ic1x(2s>H)nUsgER-f-hZX3vtYF7v5n^p~7G%53=@Nwqn; zZOg)fhs*k?n=_%sWOR;uobpXv;^Y4Sc+{+SVY8}uc!0dT0)g%W!mjLtSutA?&TEylT zGaANgUuPm^rpdUOj=7LAs+K<8Ha|?q@7)3CspyNWZU)?^aZEnQgw$`5p=Mr29 z1lJnjUpxr%T#eV#w>7oRt&Pp8{{ZI3IMavyp2eLnNIp>eji$OA{hO%Xw$|nOuk?00 zo~J&h;hsY+ev})HtL__XMo10gaASz57!RpzzG&L5H-U*T0y}e$P(Y(C8M| zf!Ft@X|6{Mt!br5@MwPo8U-cX8fl&r5Sro9#PNCurG&M>G}FYI{Rl94I<|V$TY>ik z+`}s*WW@SQVtA7v94Z5A!3OSZ?a<9t+J2(Rgv`B$7vY9kTj`VQG(omIVhFV-HVH6v ztZq}!f#wiwR*|*sE%cb6ajdd5$kKS4R2)qZW4gO9ESl(HrdGC~nv+_QO=!=6<41x%gcMtgyB5;IY^;Y!(<5dljRC1Vd4wN7`>r%ssN6C2aOQCwNby-V-Bni3#=vJVbbG|4|kevm0#@pyLV_> zC(!eMJ^-%q*-PS9VxRdT zH)+~liLP2ld2Jk5F-p+pNY}O09B63bLgPPsV!!wvmk`M%lsQNKYfGEuh9@>F%)h!( zDKlp2Is;!HR?klWiVV@y682DIO5Ft&s{ja}q|-*2Pov(r73 zGqB^pU``ys=FS{@PPE*)|1DY z33o%^w)?Y9k8W&@8%@wGw8AFo*Rl2Z#r!yLSBtbFm`QWmj zZ*7OZ${92(317JGV2?Sw)NUB*vNV7}B2XH92|*d2&F;?cZ!H^YY};6_qSc*iJ?l@b zbnhl)&uhafMsAfTc$E{%N9b?m+vM|U?ai&HZHeI;zSP>fwW!ve6G)r88_wP+rJj9Q zfJB>LYrORBnfP7`p)K3)X5HOTTI`*xl1Xw3}38+$#<2a2A)ds(m83V1o#_+L{*8 zxz(S2qyGRBbd7klWz=xZEu-IvV=f4F&UpytXoFohwt=f|DS@)lrPHn>8T84XX*r#z zFG=$d8ZF&!_mV4Iz<40n{qMG|Lp~c{Hu7CV5Bgg%6Qq(UTwx(4hq4dyXUg^QQY5~86prd?vggZ($;~G5zNz?^gX6nvmC_# z0GINF!(HdmbsZk|D5f=yuX9P|>?eZLzXKc8;CnCKZxJ0Si(f80vWHQ3H+5s`{Bt}T zY4Y*isP>KRzMW-nr@+B8W0vPqxsVBSO6OMIHi9CiYI%`W=4S0Y9?b0h!tKGN+Ug?S zDO)YHa&;qib~`YwTH%IewFceVUfR1X(A`?i9UojjMXqoz{LKXiyd8q>R)g~$+i|Uj+S%_7COEA(W{DAK z65YiZXYqKOTKp~kLhcj~stEJA+acO^u3q0mB@!1!_*;{wOsAc5*8~vGsh~k~5ox#T z7J|~}13+;!siqV`0q<>_8#-M$dTk>yYio;%f2+*l_8``6!J!*R+{Z&sqo2UgmtpMW zf-KaufXLr12tLk3?_Js51R$>J>_NG<>#k#Kh3$(Zd=&UO4why)Q)hb~pZ zxOpwFIqRqLPyS&#r^w&UR+Xb}U0(Lvvfba3!)I@cX(nj5(=YDs;kVLvT$Le%;O-`F za!w6xO5-o>UH<^A{{RP8cSo!Dsobq^QIk%STF~`Bh|=$4W&Mrqtc*7I`hKHg%k4h# z?rAM>du1Ndye9Uuf4}!#uAOt#ymXNg@aE9ahZ=D{6lu2l^n)D(fCTuGRkm_OtyXc#9E^$ablm{xkkNt5_^|P+>}BouDq0#cKlN%W?DA0@ zgaxif=`XIcInQiTlGz*xF2Ecr1!-D+3Purd^EA(4CO{23Zw0Mx6rd*p5Mdh4yF;$M z)&moO0m6g(Ad`&{YyO}zT*SkH7bgROAWCtkf(^s@W(M0(wT75FQc30NI5xbFC_T09 z_M>v^TR(*~s|_(6IUi+KbhZ~nxs8Fp#XUzbsTk87Ptb!Z`2Du;OQn07a4jt~aOMxS z20wi+m>-(ev;Z1Vc^Xv)z4s=4LAFmfPIIk5mn&j$5@kN<95Btt$p?kMH=(z`8w5E6 z%yK{0(q^P?E_ENnhZTRf{n+##PTuKu_biOaD=T_~3fBWqtS>-8+pf-gYp2zZ5CTI< zV}J&Rl{BXXtJ+-_+~&^RU9GEJc|KZweG2 z5LGfGJ3|f>91q%ql-8LeYe(S#VdMvb4i?s+9}f@fL2>w7bBW@3;80N;QaF$4^`QCi zwZP$A4Sev&6ckcH@ba;v5MI$yh^0p{{9B~{)JXNACy}6d!-~t@ywbXC`n$ncz;DYg|>o+jSB+ZvLARG-3kwGMF-Qwp; zZKQKXV~HmyuLFrRp(rJdGh3bmTSv5$#)K1(8e)TFJAd7q%OGuT&-y_?;mjWsUkYp(y_VdG~um*t&1TPkPg;usQacWKuEgmSS?T@?~)?F*t_` z^9!pxhL3B#*4*3gT$fbU=Jh?#Xo{kpD*AbF0bGa3uih?1p#F)Bw<)Ljgs_83*MKN3 z8rh#vk~T!(9UF|8iUJE<1wOPJAJ`4Y4V}yyUbgo~0B{kSQ;BeWNdlNrSAT&ILpHy| zzId)|CeLddgPL4u*5=0oa6a#ftu2Al^{HNCjl_@}lo5!hx7dQ=cQj#=zGpSD9=#RNyWpQ>n@p$12EB$(uF z3F`{+cZOnv@o&_({J&uP*Wc~it-qVj;`{NDH_{_C7!OJ1f^=D}znR49z;VmR+5Z4C z^6s+kso^}(toYbCQ}%z_qo(a7d@{m80j8uHaqwDp?9tMb=_$8nf%KHyvq8nd&J=5$ z)0w8NsdiA{TmT$u&_d??cEz(u;fNt<3tf?-g{Hqz2ruzp<*!CIn$o>NmxXDTw5i1f&c^yjMmgL` zV}QfbC}~arAdB^_THwn<$Gy#QYv>$t^Pp4Hc9JRKxqa2Uf%3tFrS0iLDd~i?U4I8s(niu-c+49eYrpMYFcli2_|Z+6TJs z@_TWC_?xSf(+wE8*ixuAJGeS#skL<-BTCm@b9=9D%ga!1C5}igAk`$1w+?8EHisBq z@#-|CDx$Hd^{3=xv|Yv88uPWSM`BIzHu_Y0jn?OQw|%4UF05u|fv4$`v{|?%I|zK1-RJ89B`PL%lC~WoYmZ7Ppx}4(hvJTirT$ zFjcWTJVJz!=C$n(U=^tuxggj5Teqg+vRz#1?J^fVrs_!C*<1i5HO15+qlyh}-u<;O zwtIU zg5~nU?z6KO)r1`MIB>0KyR2$8FLmvUdrPW1-KCzU%-IH4Ii=41HnqSKM;dvnEXg*- zBaqS#>uiZ1JaI&dpL<*5w487hAU#YAp7*vR&Od*6d-A^qd?r(8SRh z%pBYaEnb!hoBh3ff4Y1Zjf(_M+?ICt(m`z$liPzVva%>~m{O0BwTBKkteJ7&F~ZsW zhrU}F>6%8<(X8w>IBt5DcEQcGo+FHD@c474~71Rh>N1@7A9pucI?1lzT|UBI^zapEaTpr+Sf5Vew#xIM8* zLrYC_1{3xWgHU^!t+|%WwXIz(z-B;wUZ+x&81X^2J*Lzh{2NTOXRWQbh37A-gf*qW z&|pR=E}hrW->vPrrHQV4qMCD7G`t4n%1JH5DJFg3+esVR z@#%0F6c-Pd&hYF1052WU(>G;4E);OhwhDSZcvPtP7q);>$QvgDdtUKpw z)2zc7Gf4M2h7p;r9B9`x9K>^{3ZT~=Yeapsq+`J)w5iHS2AH2U=PKzll0r;FipdPQSdN?n#F5@xzrJ_CW?aaCks@=z71HJ<3?`6#+ab#0T z{{WWoGS?OCW4hV0DKRX0ExK=+h?*c$(-91QU`MCc3tZ}9QVk7F6|oaMqOLkF(p+G{ z&aM^B#|~q~ReVoPJX-C#*ocXktsBAEt?{JmIz8Ue-7&IlJ5mD1R>VZ%ycztWS#-f7xw)S>1#WM_V^_?x`P0wq6gNT>26;b^|U;Cn^z1#JVq1* zpu)9lTwhFRc?y9*J+ufTt#a5Nnc@HyB8H!|AcD2~X8!;Zbi{$vkhEsQ9LFF(-W(8Z zXUnz8`1^S9FOL2T&o(M;+B%J>%m}EcsI6&-99HhDb%h-l z=|7Tz_EI>K(i#UG)dIdX_9s=k!wJb=%hKE95VauHE838ZWRgDZm@-_=pL(` zLznYY53holn4U4oDoEbbA)}kinD8UV#Ynh936aDCK_-L>gMi?IumE_Vp&)`m1Qz1p zK?DyHIUx8R8fplr$C3-Byyd_&;5m|LFs(eegcq2c(-;7PYTPP0994OHB@(*9?zj8D zy<|fo)8}oxt(Dldr_?+}NucrIsn6LStNp)x`XpOPV7jHuah$JcXl_zVTrtexF3cteWSw&-9N;X?LU?4QNd&q)9fGj17>qhYZ4{rl1_7 z0!2kuY~9i5huLB|z=^JVK&-hc?9Hk43JhE+T6wBRIION7;PBV6r`--?hF0T1MF)!0 zis*}JGYNgvVti4tuBpoufV+qV*~k_8SAAB~oCqURXogvyPFK1|dR>FDCWk4V zXVtEyy>q0-M+Z2%rl9l2tE*yqxQPcu?t5P}5lb7I@Y)wTtpUcAY0dbJICEB^CR=Ws zySd?fPR$r1p`;wX70X&6n6~8XzMX2M-qacO@~j4EYE?FK{fzJMq!C=BaKUiP-0t;W7um3 z;&`Hagbpr^rH<+rfl=wEYM}fHueW*P0uEu0sPwytlpWDE z!bXzU0gfaQ_)3R(zj7CQ8Q*Pr1;l2OK_g{g99-rQ;L+ylES~3+XM@$P14z^LeW9Rg zlE@hA?IzxAjddR*%LaEe4k4}-E64X7zNdoHcFnv6(%ZgF*^j;rGI79>iKq)8xoOw$ zw7QNNy02j&phgMi1~dl>AlS{laig}?k9%Z+&ua^eu!%F$w53J`p#7*bdn@e_PaByl zoc4o39iwt_;Q9kf(FN00)Zw_ccw`xfs~GmeBf^|00IRV<0&c0Nb-bW5M?}}S7eXrb z$;7erW1k2nr|(iu(!NByL!39Nz!c&qo-+5 zTC#DfYjQR2+c8`-9;6=@OJ)@J#S{(G(YA)2-){N#j=`^G{iIP@YTE6@hoB(tEiG)Dt4{4n@mfaj;ulwN+{h%2qo))R!UG|zeeeba21e^hA%M6& zleQMP$CQU;$|`+?HmESYS@x0GT-`|KLoCb=Iml`0<{qO`D%0YFS+}G%_eMEknkR=b z^~m6JFcF@VJkUp%EU|^LwURR^wsGk-?WmJGeQq3>G5XL%8uT`DNc)J4##l*oj5YW| z(|{EeZervR9_D-(Gv3-wA2s58kKVi0%%@v>^4Dcys~Tv-$h2V7;fPd=&Ay`}O&vIH zY(qpb7C_ZkBvlWTC7YuQ9a(*F= zSa1}^q@d95!EpYAqSVbrId5VBy?rdWr}#^ zXe5?KUFm5bl;DHZ{{ZE;-`i;Q9ZTioduptkO5V}t*<$+Tk^cY*-1bbonkz`et^uc4 z640<>^APY=5;U31$l9%3fnm%TBp7C(_AHMp#n_r4UvuXLx&d-JvFZt*wk&;x4K5)JQon>dg+7C zH6Zgr2J0F_Va)ub7kjuId0|nFP(_=|Y+G(E15nbhAtyXfeY=Z&+lo6CsikC9Si8q!n#( zkHg7gdME={(%M9f0;IM0cpRq%0!;Z_@7C=3Wbcl|?%vnBxU`>cYfU=VpKe^(wXG8J zXql;4U9?a>-g{u+;BcW?y~jBGYKQKC>J0CXYIbjPwmsLyZN2li>~+g&EnV?Uf!8rH z^T8ys7cf2ChO-7AcIl?Z@ugX1RS-f?&Np>05bUSFO94x zGq9yV7}FFH!}Xm~8`ju$t|k+^CP(JPH1Z!x4C2FQ={Kx1Ut0&8i)n^OH`HbQJVi$q z*X=<`tZf|<$~JVZgNtEfM9pnl>Ix7D6gf@>1Zk;lOA_W7?c$fH<0c>ziObAz6hWTi^`C<6%%Xrn=JFX2jK_aM}b@Mae?T1OMyD@KO2;wi@tI4i8}LNFS6f2gp6 zNdysyAmyjnx)zN?MqrL-JY_C5#Br$bK@aP;IdjI=xRzG|TICp4lsHfzfp-q5>gV)W2s#{s<)@^o44q9MAEgzVU zG{I*|e9@*i%w{5!dSiGv9K;IO+Ji8IZd^JSxtA=%GjkF$wa12IS^yAPFRX4Y8sPb0 zos=T6mbu25oV;3AE zC)5b_G*iq9tNp+3$Ds2$<)YR+&CP?FMGgd-k7f(d94rQUwUN1{zNZQrxs{=9InF(!`c2KbRitv=tK-%sWt%iTHl zw-UuHZfoPp9_KWQ;eo^)Fj`XRZJ>~F^b;wk3rj-=O#;YP31+4&f zXx#8yM$i*OUO!juROjrERsP?;eHoUNCyq7|CQ;5a_k9Z^T1V0@qLJ){?5%Rv;%kOIpYP4mALJvHLQh%B@=W2Z$Y-C%(0AAevK_92RWcTLJ=t)Qu>aKnvgMhGo8ahO_Tco*GGYV8zgX>!H_Cistx01x?0@ntDXia!~a;pWJY1?*O3x~Yn?{g>U zLH5$!j;=~L0!2nRit(T*GF>{@KIz#fWFeF?MSgLMxfRpg8d)Ai7zGLg=Oerbm!*;Kz@3&+q{R z$D!)bO6X^(j_I+8BxGigNC{)QgO+eu2e6bA=GoQEQrj0%%>)N997{$bpki@BDp}sP zO-1(+jDU!`Z0BE9Y0TiO$>2g&g6<=49MTq<02OUc?wO!6dZD&1N9)ULC>c1hEs|T#@h_d zsT8R3{q+ciS3!dj#BkyF1USCsBN9JiiI|A2@>z@bAY_ee+VFkHx5te|2iCJ^w(Fzx z#amv=_Ty#iSG}FsTD7Fm+{1aK0^F`$>&h@P45svO4M*Vx%&xUqYq zj2Cqq)4+q4rjI0yR#8UntEoWvZl`M<3*A;VnRBz5F2{usNE&?h?6+)htDL|AYbNOy zR=)KC%}_pyAih{!L?>&a1&to@l5VCag)>r!GO=;hiwCf?s0)a5a2ZBE_6Q^0!KB>W zGU{7vcTrD~+ICh6AEw=s1eC_GQS?;H?iwpLeGu6I`2-hr*7 zL1|@31kuhYINa&8UcqqjrP%=7TO*`kal;ZrPc8@|EptY=6LqJwZ%d>`XdJ=^_Cd{6 zs>|$)VkUeNjWt-GZrre2xW-4SlqIK|T|!ABn69@h)L3;ZNMqB7RymmIXjlpNiN=D5 z41J3v^FmharM{tcuW3w{-SSCgspxaf6Y{n$YPU{oWJ>w<0$UqyA4-hIxdTZ6@uJR`>z}Y11)Z*yq{!md+Ze5- zh&iS2F}yZlT;_r(Wy2DKZZ$g+Z6KQ16BJ`JgGVYJ0Af&J*V+x;)v0Z>q>RYtbtuvc z7~pDXN992rYWrg9TMvbu`Oaxr1cbG&iU4J8U0PAkZ3mhSc-&i4UA4H5M#XO1HkV4q z#_;(8ZwQDd-IBPVgg1T7)|BaPr-a+x&chW=Izrfj_pk<+QbP7L`vM3~&r^m?K+7cV zk&kL>JbYBdO!5#;_0e1+zKxcp#xa$}xd^FXAk-Qfsp+_BKJnYO^TmAm zY@P9NHS$Cr^1xY{;l7Y*?}uWnvL+*n8biKeW}P=(*g|R zH7MqDI!?}9*OA15;MMDUOYMv?6FhkT02ISs^_g2NaxvfL+sYkUAJqT@$Z{Bc3uUo4 zcJWKokCh#MEkm{f7)Pg1y6N08?IDdW^t4n8km9^gaTL#VPOe)u4bMf+jzA(TacN+w z3@!AQ*BXY>l~fADdfu}r?m+YAJ%sQ94++nZ=mVibS_I(8dbnX!C zA%_6gvCfeGMuw8-8gc``6pk}U<~;E3Ug2z-)GGC+>knf)si1ccNVSVkyNZ2M%H6$dc0BbMBw>p= z4h`X6RVrr=OJmms9zU$wy@uQt8MWg3uoNTt6?nh z+CWWQ$u*rnsKb_-<^rV$md)AP{+Vj+GgP^{(>03=%}YVotfyrqvemRphuYml8uOWq zb3k)H3G|@#8|c>AOU+ z{^RTmi&#V48?UA*?Nh}}se<18M4I@1yw1F4Q4tPn#Q zy@R83<18V;#0KCGkQ7!~eA_-lOTJ;de)%JZb=X_Ew-7kTc^qN2k}yehj-kXqiu5r1 zt1XIMcLcQE#-}h84ttu=d}@6^LiTN*t72o6!v)>b>iD`tVY@rJ&S>;2`A0_Kq(mN1 zt**lkLZI_l=G(1`%Wm#HSDoLYw@ts6EQPRLPUqXp#ifzEGuYZx;5=1RlE~*N+_Gko zC~sM{k|}0%EOBNe7US*9&lN^l+?eR%>&5!%{{W{C=LvvQ& zjW9;zM`bywL687WCbjwySnfMm*5|vG?{i-K8s?wV2Bb6CgSDNn(4&G`U1 zXR1Cmc<`zWGg8tWp)zJf(B=m)L`cQi%Y>nZlo>@TgBjMKwl+)=MDC?QcqD!xNi{eC zD1%maj_RLE)g^#L<}x=@GDoD2Ja}=z2BB|Ve^k}=tBGABqH6<0aaOs#auWP1F$e5H zhu-L})$Qah>51TAkiEmy=Qvf(C;KH`XKE2vqoRnj${s4}gOdT7zLQG%wRAB1`&^Ni zz1hVLN0-t(5JVfA7FKEE6$Up0Oeo?FTjNw3zqs5Pc{88s4q<4o=B)_!)db_%=@{$F z7Kc^BT!drqkO&+(p!Kt0zSi2_&9ksPWjsYm3p!gHr%!D(a5}`cog&_oD$^UB2m}+9 zR1_KRo1|XcMq`Q7^xVwul*rK5yn~7L*A8eYZ|npS$tB7C0@EA4P4tj4c*mI^Y6t^; ziz~e%`rg&i#^%K^bARz3X-1G}Y3ipm9xHs9&qJhe$Ax05~<+E3iyP zNSWk3$98wsjRdzlh&7t|jtx8XHpT*0_&Prl%j=rZ2Yc5hBB> zI7>AnIp}zbiqsFy;YA{qmMxi%Y~!a_N0I07)VntWQCbC~1@_xssiz?x?j0HLuVr`mF31dRg z37qVvmGHxW{i@x|HA12=87cgu0Dh75sNAzrTGAhbasHlacP!L*bl>?($#mA~nB`O* zH~vzfTV(wYa}a*dKecXjx831Fcme+aGLyk$nay$Zn&bDNrz8PW!3D+#w6_EOG4Vlr zfz1K9j2-*cd3zAN#zWY^(_BHr$z($;u?65YxR5GGfCZws`KmMaN2>n-Z{I$Q%FU&% z0E&OuR#vuap}nlQ8Jn89e`~*L=5Ds$VrAP}T-uG(oe(h=Hz=(#I6M=Gsi_%MZds_B zv|S?F-ZnBw>nL~XoTRirl_`J}RAss@n3&NF>If~E0FEH%0aEY<8^aHxl~oGD)=3>h z41~C`#)kkYhCTrXGq3Ha=eKk18%drVKpvBTrWML6D1%wIK9zRc=iA+|m@+u$sLWhB z6UMkLc>5tJM^=xbUfiXvX)OWRkxoXHsa6aIb1ZU^9F=^IbK22RXyZ|j0K1HNCMyxZ zTp+!g2tx&Pyq1AXORI<&4r+F?Xfy4xr0P0^*DquS@bShYIof z&{y401Xi^fTH*uS%B%wuUK9ZZq8;aJqzGR;jUn>}GzU_Z4k6yblkGt&ZQkS93E3ya zg2%Ouppv;N;o(w)WVWunZf@X~DIE4rBXFy#DMN_xrEy$e6Fi2-+es_!;gEyUm89ns zr>20^40*0PZcB&pzl4xPbG{SBtsn~Usi_#JO~U(UahBdon2G6<;z=XY?2RR$6Ix}* z=}w!p5XSi3M&3g=RgGg>TbRisML;}S1wNGNyFsM8(|XOQ-rh7zBihKMirBJ8xspBS z)YcbcT*UECn}$)a-Fb0qWfLWk7lu9YxRO}*xx$XZgqkN!!)h!pukG~uO5)tnfZCsW zg9133Q-xEe?FZsCM)Cmz1Li*U_OCry(MGf$AOL=VgS7YnY{2AR=i5DCuFR{`;qwYQd^v_Eg%y2Qk-yc zp*UB7Qyr~u(3fE}9X8YD@3!u}Z0wZi@=WKvytRyb$p!vKNs=~H2C#)f7TwpR?bs*yYc{pv*`;`Mx=oKWNXiVkTKXT# zN)2zpoZ6thN3BT< zKx~EayAt-#8-;jMt$E@C2_IlDv51 zS`bJDw)=EQ$$UYWGPCfG#A{CVc+@VhkHt zd{4PCNWfr-QIE=K=>`UZl^Fd9HZ!xEYxtJ<(lvnQIx8KmbFAIL6!5W*n#)arw;e)c z4KI)48HW>G0imKtzrQWpPSbMh+Y<9ng|-r0+3Axw78x0JBjl1dM%OSnOxRxFYTAzl zoiEgXYqsqA7T(e=?&mVzw$jYS6{|}lba0kA;ra5=05NHyBY-F-{X=qF>6Q(e_GoP_ zEtp?-Jo86y9jgGT6TW9LmhPayJc4;3)?L~2nb_^J+n6r5j+h@D=Ec_xy=<{EV$A-e9~+A_%N!_gYGyXIr9!}^Tr$j}8I+G9^76%qW~b~ANH z3-n#pr)qaCjLjSjmfl8759S8kJ;l``fd#I8Q)G7`&twmdK`3?8`fsZ%?2|EXmqA(Q@7)-;?phQj_h0#+Biz!8r~)K%4<#|!3DQ@ZQYNhX;Z~- zsawf=G;U~)Ib+Q$Sl?N6csRA0vBL`DgH3m?+1ij=d_!5LT{-eOt!r}`8!N~m&v0lA z$AL5)RhaxyEl}Oh)2$zOXD!y8>xP2nLe~gd#!%6&nr@sgAaiLx3c;ow#EJ{sEk^Rv zHuWr6=1I{ld`}g5YfQ{8gt(U)jMW1gP>P3`oyG>{;%7RPY|k$hAEy2#hM0P4JdkLY zah})R%hWhPT~kl&g5DLVD{r^uA5+1uS2uRSlQr}*7doDo8r9CGG@$gaU)%Pl!MtB5 zTaq|5oz0;V!pVAf06Ekwbw|-qSBLKZ0R1=r0PKe7%{;wFIGXib=d`u$a3SQl8n(2p zd931}<0f?Aw6uoceNE*+Mkc5$z9{F(j(-lD>HaLae$*8<_wC5yBp3p5s2Bokh(U?& z{mUd40ir>b&2w=yYlE9YDrhNBp>=0;dW|UDlCxLbZJJjWvf6PYoErBq1|B(@($co2 z8g7XT%5{L>8)?ncMBf=i}F zk|)MXWiN|?tBGJ~rZhZw6~NPt;kAT)M;M6>V}ppxOvSut4RIx1XKEUEytbQIFZSGnoZPZSLhcNz$ zH5tV~G#*Gi!Q9$t(>1%hCbujx%QN954^w)M%0@iE2gQ9>AKA1209gJEH+N5~8&;ul z(y!lVeFfwbIwxBYSwQSSbx#0KB~EU{Hwqb{-Wxh8q5^$J-XSz(QLb}x)@;s`D_TQA zz>rGva&vcQbb6spYfg~IJ4k$I)f=4|XpxSm5m#VGj|J8qe^&1m@3GzF-XAXA-q{`C z**cZZnYuPc6NMa#{m$2rH<~e;;C2jXMZu?uT)<2>j)br&# z<|}9X>HM!e;>s)OPBf-g4Q@%7$jk<#y~QTCmK+Yv(_s?WrJ-^o2)Jaz^F0w-9l?xP_zNT zNbj3&O>-OC;Kn)a$kqk}jcZ!dD8tMkv}&6Y_TC?fWPq{phCAJ>NZ=`2@hBku*R^GH z9Tb$BX1Kkr^o*?lW;vWgarW{-1@0Rc#^VTW8rKZwpk*x{?;4PNkZI3$&90$z>sTWU zmM40o114e%i6<~^P-)hp#=ljP6713kbjAjiX*^9RIP)kkT6L3wmNMLAjEZ1E01#?M z6#7-xcA*(-x@$z&u{FMin!{2CXE}{89BSG;o-3gh>Q+)R+3l6SvK$LTnEZKEF~*fa z1a8QswgHY|YafZka3t~sk@TR}E!zWrCB$&*Jd6!#n-2rQ1h?4FPOEEEPyVPdePGcC ztosnQNUYcg`FwV$~VPUY4W+wXeO-=0l9Il90h6Ni6}EoCjS6%v4Ns_ zT^Rs82&8YM;O-;A2Sx40GpBp=InIsDk(rys{-c18hnfhVT^fDGrPFO%=Uh5B zjB46FzNdm-06vg-6dpi)(pbp&uZx%j^m|#DvA_cV08zk^fL&SKJjEIu@Ui)>I>pkt z*;>~OqNm7U706OeWzvo0&LX2uV&F|jFa{)_pe4|;&};DXK3eKI}m zj1yWGm)DhQ(BbqTw_fS2b22r}lQnvd10W6M?*`QI;DS5VH1fy1hK`syT5~WHPX^}9 zwqgChs~&&c`Z4J(x?W-7%}nh=`zeIce^@i4O8XV?oWaxx_Y{ zPl!QYAa6*t9InEY@*w`i754BJ4B3esDfRv8yuFBD?8psiIB_3c7DO{GFVOcn*at>H zG_6i{o&u+Wr$1zRulD`(=+CSn&z7SHQ!XN;&|yl{aOSc#vfC)ca#6I-(#noN5_#}c zXYfR}b7k7GmT=0_IEMH^{=(8`LH_`S(rlF(95WXe z7S|4S2sOXCTYe%9%vBG{?CogxNT_Z+2_SOuTJiQmT8pmf@(Eu9n0leEeF+}m{8@<& ztvObz!5J)|XQ@5t^R@f+d?nbazd3Q5HHG zMPu}W9Mi)RFf{fc&n@m{5SjufbZv>i;gnPghZ-{uI37qiN331gb)t^#^P6V5?|ZW} zVhtNtftxRtP;tHPCDp!?--!XG@kq#@T;!9$QJI|D`JjV!J=Ln}Q-%X0;iJ9T8p6la zQNgZrP6DF}@j)SMd9@hkiK6Oa_KfXoTh{F+sSSe}7y_ZEs>6C40#ZZaJBo-KaF;5MFhCN@nE^KdYBBn@}?Q z9bAVG0)m>$cHOqtNF4Lh>bb6^T}R|*7*~}Kf(T!@^55!Ame$q8_2X%K+UAavO>q?> zr1%U%4P(}{JH0L_ZXDOh);QI~w39+=a)%dvh$LR$?tYYz9*?1bik1<<&aFiO7}W;G z$Gc;=fB@iH#tMMfoV=(2X(#AG_|1%Z8|+_QR!ytl3&12%*kQn>O{?5`ukd%&e)Ore zd$yC(xgAb5$NpqCZ*Xhmc&m7E=GbdkBlf+#&aLJeu$Y-G3dy0A(GNX-duUuAflKExPwaX};94@v-B z;p*u-0^Bg*f=SUdi#vwH@ot5%L|WG}Awu@l65`%9#Rk^xeXXM!Ke%X=@f+msuGBEpaUM6I?1O zfTs^67&Y8*w7Idk1`HY_X$=*jIe1W22Su^7jglEy(n+avoyW|B?x4Z9w&2qATPt}Z zk}~(o_m&AN_J)(0#10Jw1~ELBm)bl!jl4ouT}Re{u-7|sIzj-TIkLCuLAswSTR`f1 z#+9heJhry2(l1PQt9cz?(#dB-L&V^N^&#>dv3B;Q-JP?iocf>pGjCen zx!of@jg`yX`TiV-igU62S_ZQ~J=MMW&+I^SP?>5%OY?DE2sKz9L*D+_xX4S8yY)pKwYii09 zMxgUoy5Gx#=27Eu-fR8p(e!JViC)b!M1G@pEY~rxy@uv0JEH!xMrRBS6vS3(1I=FO ze2M(W?6~YMbM9Ku_33)>@%(HO{VPwB=%1cFUyg7LXGM$O;4 zbv3%)&|f+)w&|06yBL&EvLR!KDD^#eUj27M>u`f-w3M zYVjEFU2e|e*WsUZOblru&8}w*xQYW%NL^cs__`)_8tbd;CO5hpETR_z*S+5R+IZHu z;ue&!Ek1XNXiGrSsHT&(aafxf$?c=LY%i-ebtUb z+>eqz>&L#kbr#yYn>MYtn#K;HJy{~9G0jrpMTaGm6V>2}Oa1WL*7tVy`m_-c*Fg5p zTG|@4I6Dp})T$c2x4s^K;u--hBL2$a7=^@T(XwJH$pa6(<`KaMsh=a7<33?NPd;Kk zOLt7B>vndu-1jrI@!cQS{u09^*ZNkPB=ttfuAy-)97K&A(0Idprrg-w>Q)zp%$#a> zop_uw$!k5W%$Bl4mxyd`gD>}*M@bZ`@e0+6qiksG7KQHw5~4>b7|#3 zqB2`EPZEzkyRUd{<(Agn++8Dx#0;gznE0!s9n;8ZM{qPbbqIfpMH@xLALg_!PsdX7>mIj}kGa1H{&#eJY%m z&DPQtr!LZNX>_aer(H^21>tR4>Xx%RfGh&M!Crm-+br?nPghoVN2*5NT01Q6=D3ZS zpuV?!taC+J9_F570P2;_Ja=2qR^%6~*htA7O99Fn@@hRGmeJ$$789DB=)D|w*;tFY z57QU@HDAmX{f_UBv+{}Dtysa^e)V0p?`K?H&gNL?J;Y>J659r{M`el)b{lg6I5o1$ z)tlbpi>&Im!}|~3X0dJX@;$GGt#EUJ#2Sd?>AIBWc#jc^_};kr9Ue51X@Rgk=cd7v zDXw8dT8>3&9kVfw4K0iln~<*~$H@h!RJ@tC;f4ydwoW7Rv=Dgtpw>;-tH~o}CLFTo zosIO;p{2aXg?^M8&${N2#$4bU_dJurn3_}m)Ear*jV#Z0>0xtBjx=^xaj9`2{RIZ7 z>Y6jHHCfv6>$r9&HZ2u6gW^gG?LK1@$Sno1vCMOgDrtZ|WQBE|s7Bj@rhAF0=`XDZ z9sqFq7eX@C8x)Z_%xP=Ib2ti;c@RC6K?H8-1EZDm)!wHV+()R2;7F&WfP+@IR4nVb zjv1X#Wl(0FpfZhC)1y!Rb+Y1V=^S|T!3V5;wdma1*v9!>)`48^1U<*hU{-XtTF!fY zJ(0-~4taAysKnHcNHVB3+v37tj1fxHq(MGF9weaQajD#2g3FM|=m?`)D~Q8A0Lf1^ zF%{q;?b-0wHnXxh7%m*iU6ebBq0K@$<*MtV;pFeke18!g#E&4c?UIJIH3ahFrrTyF zvWJ{^l0|6|bZqKK=^Vl-g$Z#czefdN#V+*uZb^{F$1&&K>NI4+xrna;;I6~nK7=i? zLhDk0RE9_D3>+#=KAaYmu2br8zS*z5Y*EJxBZ8 zl!w*6lSUFMFf=^I2&!U}N#^d6&4>p*%>aOSf@pEzh+@}Qt;Z9J-sz9b_Q-uT;y8+V zA{}9_1R8KYNR?DgCBeX82=YNzg5?k{U;~LK_NwysA$PZl;f)j?JbjBI8GfBOZ%x2v zZeZ7g`AsncnX0EhWO}dm{qyLN?IRJtGYL7NYna?wwe3FQ-cv(zV12!- z$Rxel0c8iM0x`jJZP9ljy8Cr&0bXC zNX^9rVY;;#G-wG8Y^C7!T1d>`Xd8zdD_@~au{TX4nAW}3+^Z)-`&NSst=*Z2DdO7t zIeXPz?Osu0*&CYgUDV+HDIV9o(U2NxkPu6}IJ79b%dLvfA-a1h0MBuy{n4_>_K8_}iN^#~c{xt!!2YFaIE`qO^xM4h7im}$_> zZ~RkoM#dLa@mSb(TtI7x$uzHsf(QqKuQpq*$1yyH<@U3;n*+3PkM`b^n^L$fI)<}* z402u0M;wH?#ww0LtO#ejqjFmoX0x`Hu4yi=Mp4E1yqY}F)CwTSG);bK9@(U|bD0~% zgI>{EhYV>_C^13bzja8pCPRH4li(4@l1!{$^D;wd_s1m-TIP}m_Ju$MgcBWx&yK;sjXLT_7=2m#bPlZn6qgW! zYtZzIt8FqEe}~D_nWkJ^+|4g*SxzSkF$IHH+xHBeqB|>$t*g#Z!aZc+Qz8hXa_wD4 zNMw8NY5*ix8*!3G_5e|vLj zEv}tmCB^KoF+#}L;^(;Vb^`{IgJV8Xen)qA%x8HvmWjQ(+GgFly0+D|L(@4R(rimQ z&`4b#5!?`1Nu^waWxtunXZ9~+yU(U}=e9adnWbsbZA~mX(%$CRt8n;WES=AYNXb@^|%?Hl!ZGKo{+g-4=)%JdYxwXA6 z<5rf}R=cs$^lhuPZAB;D`<@$Voptb$#vJHjwq&;xk(I0jgdQP$=>GsP&;35_=DFN` zA7S^)e{Ab_XxCPq+1BhO>`u(wT7Kp?Y}4fJ{@>hIcYC{Y>96=X9^1jwW1#@$tAiI- zcMmJIkDTpydu}a$`)O|-Zt~MXW{Gz-^wa7)>$Vz!)byyXAEzC`d!TLIdd6EbIJceh zT1Ol=91M&VHz9Sr`H9!^SZY@`6ZZFY%L6X-&2MjNv1%F?xYklY>s$MGxvz`TD#4OMi?wvyf8v*VrjGkfH&wTL11vRb8}R92yAEI= z=E(Dy(WC-JNok++WryQ+SuWUHaLXM!S&S^GaCpqzp`c~yj~c5i=81ktHT`t%t>b+r zv8c01(KOq)THHr)ByfEkL21azGKw>eXsj95pTGM#V_iRO>^lw1J-Z0hwXMM=ww1N5 z%K-gbjb8K^&3#x$nb=}DAeF4XW_uZ+?VUB&x`$(}H62UhZEdVAKZ#hwadl|&+2FC( z?lh0#x{Km1p?hDH5kwe{^6rmoH`biZ4{`0?8o~?vBI`Xu7U?tDUOnOFIduJJPoE@> zd(KfDjBJ6-B;ZF*wo zBQ%y=%Nqk43+*Ih-z8fotQWb=VfEP~4 za`|r4A-mqc6+5Xlm9&#ZjT&@7fCd7&vE@o}!FhSPK|GrE zy>+RyOUAUh&0#fmQHUpqH7ymYw%*wE82y&~wUhq<6oNl7BOZ128ZL%kYq+iNN9jz~ zR{&&?j7}eiG8|TYc6Z4UXT&~7wT{K7GeH33Q;iT{uZuNa_u?_Dju?297Kz!KLe{;6 zyEQR1;q3B3kKe@L*%$~8B7lNvQ0n*$3JK5Uuew*gukLP3W>d+3HL#^nRgh z32O`5(lF*it1n?M(53glZrz$Bw`jX%-GRHdENF3Xk&VPqme6O%ipqwAZXGsFy{)o$ zMqw87l3dSuo~{58(VByT33IW%<&)*J=5Mt<@fQt;ZQSZMn}2*mj!XTexSt-IsR`q# ziOsTftey3C0hK|Qe=y$6X}zQQj@+{CKrS{W{{V2`J4W&sHTJSu>#$p2&lRk+X_6Po zb|-EWtnTnZq&+z9;g;RaIr2(a9NrSOh0%DQc?E|~n^V#yv(_~0hiTf*jXO16A5*ul z#p&9NZ(wZEf?G-8lG?2mp=_9u!3XO1=>-{P4i+TW2Tfg z+9<5|3o7FGTWSTa&PZu&fQlX{D7%fb%yG=fE!uOJ)I2ynt`!br#zF&!3@SX;H}@r_ zTf=QgS$N3pFm3>r(Y49}Am!niax{Ot8(>)J*Y~f9ts$+FOtmf@Ha|56P%|3fxVQHY z2Z`O$ozm;Kln15PxQVT%B9gocj|J;v*|-l)JWSabBx zkk*~?wzVCxtX^9iSH{_eZAk<%{7h{E>n;nwyZ>(V!F+rPNe_XgS4taY6a zREh42dn>&@;yLYP4q*-*IoJuu-CBA#aqvU>jsE~E-<%6qS6IJ0ikfZw3=nEA;IMPGDwl`A@?Km? zt6hkps3U;-P-@R`9Sx?m!Pbq9GG!7MewlV+G6zzj{#53J9+vLb)(KrB!(R3h(T6;9 zal{pMov24Q5=U|$SArbp5NrLT<&F!XiE3JZO_vhJ1B0tfeKer*C?K8b251R$C`crX zDPAO3=|QPGvImQz$_ly9ry648N}73~%KKX0p0#ZYFnnZ}9t}9-Ly0_4dYP~yp61HU z>~M@0(wT^HCcG#q$IWL;W3)2eI@&j16EoUFz?k}+;6VTkMNb40HJ0bLgtec;+nBSc z3s}+s0=325P+K*9XXDv0hRQoqT77N7&%|*6VO7<=&^4#HOt^|UZ&@SW@f@sU1BcQ}b1R-QagB9*EN zX&{!}rSm~FWYwk4Xbk!eVtIHgu=h`)3?Eayx3_<)c*bHy1F>-ffb&{Xz;$bh?%V?& z_~MMaB~1gvs7?a4rcw2vvP@)r9X2(^?f0v|@udxFf}R^&`IusCF33$BT~JAd6&O@khYFy$u*TLFfO8Q+Kq+6Ys5oUl2kJp~wrL@wh9u+ls`BR341>7qv0!5ZUW`ov&5~wX$>wJRMh7R+fMX zrW7S&_Z*;lNwpbor`W}Br!pwAMbl$rU=3vk4RN5M!BLCH)Rcv%>zCHBbll+i8sk?# z3}^riW|+{*VBFtTit2SOavPz!Ro)GirFtw2G6&1oDln`m0X>QS!^4QDJ)7=1`K zKet*~x7!vjbHI{t_uMhK=MjOF$CwP?O%O>IEI0kLRvF|1|3f%8MF~W zBu+1DOtXR2H1|Li0y2N81=m1~Hu5I9gc%E5*AeLgqX!aAI3Saxb)0Piv9IF`2eJOrh)Ez4N1;2P+`qeo44vqaWvbq9~>PPoPjLcD z5CfX#fLlz*3|3?_>pQS6BL&~5R_6eUp9%_!pq%u(xTLXU5nGvCD?qEjZ3rB(I2xe( z{jW5y>cbg`{{Wc$h1qh0jZRVO@TKvQw(y0L>R8Ip_@6_=1Cjg z;2&2w@B@Rr28RqhkaM@V7gp?n(KdOQz}6N3Ul9lJgG$i{<~@)!HKU-@fW!e$*u4tQ zsa3-H;=ou+=8PI!1Bf7C2sv>SO5LcxSP3U-e0p=8O4Jsx8uQ{n9MZF_jCWACm6u+N zKtIEenW3tR&Z8~cTaNz#M{tSuS>t&O870NJh!w1q0+r`gpKm6=#7mk^v2%AcGK#?F zOB>qPUc?D-b4x)ifDS*}9?+ueFSgmbXOvYOQ`V2D-ZCp$Wrhj8O*xI*9N<8%Y`L*n zK2NG?DSJ(tO+wZ=TWJ_1<)d8AsKD^Vig@CmA}5_nO5r}AFlY~f?P;Tns>~>BLK;h| zRBzj)lw&uqbdv}J3s?sk1_X>KCG{klm-eS{ev#x%sx{{T)Q*f`MF29lfh=_M6A zrq*kH9^g5ReHaT|#<+k_(9$Tovm{^16hd*?TS;sga|3Q9YqJcc&1*9nnw$wID(p&o zX3EQ<7>diK(+v)+`9Y{OpeGtp24d?BvLDc^OkvsEbHHY$E11yXiV0IqEgDt3Vzy(; zW1)PP4ybiF4mbh(Rd?izCX-T&W!=|Ct&-B-M{)GaBd|O@Q~;2<-?vFk7#8K!nH`*f zTec^?jv=6jhULSF#MYHoTX$4-LK@!KC*9iAT1K6xNj==pqvZfR0$-2@H!%Ug09QkH zduj6hrELpl>bru+dk?!lUHiqRc9&nW zy0esO!b^Qkv%>dX$*x(qQhmHZkLd|p69Z^zM-h!NPPi!jvi|@pZ3@Rv`BAsKv$A+Q zpLA=Ql#@=@&mo#82qcx#IJLqs<`4*}1n^ZQzdGa>Y|zy`M#dF64 z9n{Qtf>HQhSm48n2Z9X*)&5vMTch2(qh9YXZ8UxRuI_?vHGRjswA-!GaeHkQeiF{& z<5JQttQ%uyPGJObh@5!Q2bZ7B2jv^(yS+PeLC_(#*Y#a1WjbeVtsDKpxZ<+gwlB?} zP0=71G=kbmCwtiwV`O&J4UM@;Qxi$3^SiVCz1sf(FM3|*+P$pp-r}%>b=pU1szYkxO9!7uh?DO zUu})T%X70VFD7rMO%66&T~DT62NRKzfWw;-7dKrK6oLA;`C9G0k7PSjXSOV@b6trnl_tyz)LP~w76u8;$*9v z(s3uIK_RZG3%S6b1VVBN{C-`-7gpz5;944Q_8rO6JH zV`*v}z!?+TNnqnqi>?YaKYsrJE=@x~(zIJg{K6g0plFYl`om?nOxJELbmw2op5>Z; zeL?mB+_;xX?zOHo0E|uJ_GfVR^HI{}+uEd&?MYc=$LP0h7gqMu#TaYvAhv6A z+s`xF1BPQj(T+47MAwWAmq*!>Z#ibV)FQdIeWY*)7v>P$y@Ls$z?O#&Ac0CL7-xIo zxr=CgH5wac*&)O`Gn*5O8b%m`1w!u5=pp8Qr!aiYt6VckXiX{Uc^*DX)4|-7``B5{ zuDvbD%@|{PPj*x4AK4=U7a6_Pkz90|!7|>9Nz06KLR-^wSmGaCLx3Wb!-B(-_`WzH z7WX%2L9E)k>e4#RQe|ll%-WJmsL)1IcrN2Lu@t1HtwNsGYb%FaIyjjqBnFW2P%y1B zQMO_ zAghC4W5{H-?QLo^v=2@mB=e#QYpaN*E^{4Po*eN%QVVlrF;5iisF9L2(GX}`D0XH# zyr@?f+c#TC9`}5acWK?h?c5qY+@$K;dCanV3z%edA-PMboVdqYaRAnfHTF%BSw$C) z_U(A>wHvviWX_6l)RDvtrQ_7#%6SfIn{SJzf)BaV#^uTj1um71-K+Qf*J>i{!UyZo9jgFMFNxwRLOT?d1bxk=mX1$bp5MTUnAb zm^rSrfzin47UK!>sA#RZjOKFz605sN*2V{ZG1cCP-@<#1)Z+GeFFf-ORhdm}Pw z)5zB}xQYTw57pl0+xlj&WZSzE-Adl}#h1Eu%y}H!=q_OsLiilhk@St?rnFSw+?I)N z&79cH+&Nzyk{7yxzLpABhYmkj`WGY5p8Rd!h1uHlk7i>Xtp2JR;M2yV0u<3P*})x?7e`durHIB{ET%NECqD!6S;rzF!dS3(O&4knZ|AP^1(P2-tJYZVoSxC^?$nIxV>UTnOog<`rqoMkH~;VZPb2D=l00=_#YQ8Z-`?$6U0h!)oyvNhCP%A5&Va%GB5v0A3w*4;FSloz;cTMTTujjeb!IS8#@(hEbVC>mW#`7Pep-Q%|2 zo1$jEo@;zw*#7|2^Yh_<@}={0rFOq?>M}>#j{M%)?OnlZb1)WmJA&=q9XDAGl2$S) zP0QNC;f`KPuYH0&#yQ)hPoMT5(W_9}TGixHhT63!*@;GWMb27O>LRTu)BFJAZ2T-Tn%yMism@m)!;B4Q)F(|nLZy)yvDT|9ZWG4 zpyxypZn4|#`8I62E$pM$fMbp(l;SDL1QWWuN8MZMvOT$|7;`znu8saaO{GXd1nXUc z?)0~AFzr27N;f-lMDCbvNXp`9b5vIWz@XJF_wujb?PFDZmfIInmMGm;#MmVxI4(K8 z$`_DA2-^PuiJZd1r$ySC_vq7lBW**@#-cu3XuuA>Vg z4=$KS=P=^u&;SeS0q|XQ!9-biadl|d!FdF*NF*_s=3$NPb!ciImkd*`3L<^xU@ej$ z+|Of6+*?ehoM?EbToh_1?}Q7JIBijBi$8D`7hhMjq#1l8W7_M?o!tlTin5UA+64-Y(^1 zARX2o}o=(1}fC*3+5qI<65Z&uqJ zt@U*n;woHl$^rJPx2@7sRuOL$kGL?jzFS-RfRF+VR)CUi(H?7i2u`OFow!378EP_@7C_x^kj72DMR$F&eRs>gg>8)pU zGm_VW1|IDQ8F1m}iVa;l{9NlbP9HuJCb{nSYn#UPXNokZ) zY7!|?;ll$^I1;C3?O_`iYYbZE%6xq|c==)XEj3QX+QYs!F_!FUX{jJqoHz>c;FUz- zx+1lQCqe)uaR8ov9@Q$HQMcCGgG%FqiJC=a3yULT+!`7IHK9I0pWLe6w@E6wM#ivH zn&SMCb+mzdvp8`85a4QQQHB^QP`cZO31a{kv9Axx&NUcTgn$6Ail;nG+Z5G)4*B#* z7FXbi*yfglMzES-MKN^_7<*P;o3v|7y|mH4+#9CG!cy1Aosy0@L1C>92a4kRw&~Rz z$Fn`N46xE5v|(%?pxDhQBX>!;LE}?_@L4iXTyR2e(r?`bp)uqqsflHA!-BS%lx!1C6D4sMf3B$kHoT}0L@HBu;YME1Tn7f0!7!0;xR z)kxTlhjRqGZpKGS1eV42=C#Vl5E?Vk5;F6_1eK>m$l)`B9tCjYnEqyhFb9a{gCVt! zOb=1C!1Lks0)qa*J8j)0WsEfik`n4=7?z3*4KP7$yS%=8Y4HsLUqy2})0(ZR!n7HX zKz-EQH}?B;Q=Uoa`=&5LGhkvqflz-DrFp4{tk8Mmuj^Mc*j_YAD>`yH%yoTv-1<0- zebNb5?A@#sL)UtQv%%7r)sU8#IMw93pb^X7s zc()2+MR>gIon6hldqay|)yx4P0KoQ&c#~2UIlF$Owrfw-?nJiF4{>Xp65N3 zagYMwd|N|+L20>-_7=N%6hYInm_G9YVt!3FD8X zaq~^cD9*GkvoMYqbOdr3+FdAXs^=ajf_1@1bp|xXpGpj;MBU>|$mdzc{+pWY&vAFUYfuQri<_gW*^OXNx*vM>Naa(nA9+qR)-AL@~V7$M{J$Zu(rvb_SKJR4hF3x z8WTzmY4PnC_Pz59rkgvBILjTwhyb~vtpgkhs5MbIqaPS0j97O!N4klQ>qaD(C=3)B ziq@xwB;cV5b3oTFH3*_MR?*1DjLvhXV^4qpRk)B4NVa#nm}6x&md(!{17(mJ0OQ7l z)L?=^vE27BuomA7r!q*vp%12NG!g0c^HUgN{{Yn_RgK(kIlz0h2UuCa9`I{$*xmp* zx`Y!$$xp_$JW(HTdx^C)n;|3hduIYBWjgJqX2K;Ws%Qu$^x;rcO}!tb5}y7`Ha)KE zbN9{cHPdFD)7e~8I~>7K0FY6x^{}WLm%X(kHT!hP7+xm1wX?R25FI3wNFy{f#)^x( zr7u(#bC9Nt4r(Z0+v5rrh zZtM3pYdEfKH>YiOhNF_=9PPP&s~hI{he?B8A)YLPg1CC)Lyg9|RlBG*(SUxwIWOJ&)=2I!*wQ`d|2j5yP255bn*nCZ8ml zmEFz9Mb0e|KIFv7nm+?zc4HlXvVs8DcHO?`eDShhgdjLMjD|N#*!Y)cm7l3l5MWUD zV`W>-Zu|W{&gf@+qD@JSnoF4@222=ngk}}+C^lnc?C4IL4ZXY;x>lVn)NhI#0~-%P zg_%7JYhOlXH8rLvC+H%Dv%1b3$GBwzPNiPp!PAN=5JejvY3wY7UZ~kK@P7GL>nus zY~6>tG{@R+U8$yOMoxq>>M=kezP64wy|ETu+KBp@gR6iArMU4y3fz3EY`JEV<8SUw z!5y+keY{{Xh` zacL*2&mu#z<{nNWtGhekhnH|^bKdI`wBv6S!wjbifJi3+#IH{Wa$8l~yErt?iy3an z-#lgc%W-IEz`L2v%YyU$$M0S0iEJ*5fALm~lzIyYiOi_?nMRTb94Zwe?{hfHTaXa( zmTKdfxBwgB#RL<-HW9ja@m)3s^|`UMC&!l@0u6q-wwBrMj%JpS4-j#|Z%ZG!lvbHf z*WpjO1t@(;6yxTDxq_}}JjxDzMz%oOI=(roF$aUwg{Es6Br;gf5IDLyt=!TLO;AMIur9Lrh{Yzek(Ui1)P}r< z)Pc#lNkL@R^!MueYp&zQOo!G1qlj<$jHL@mbE-TDLHbJmR$nuNygibCYqwsZHQxU0 zsc*`()j+NG&fxAjvGYZ+l~L#+0rBQ-5+>o4PaNB z$3W9i?xTSwwZf%HowlaMg4a*#PXw8ZT516U7J@+JF+p*<&@JxluIw&hYwhl=-D2iF zppS=nB!UhZiN>frTJKM9?)!bcwLL0GX=^0zlFiQq2_gI~ZBG`_eHIRI^ZZd5G%Y>^ zAE|n{`zQYZSrxW-vfDX^6P95sTqHPvGYkm9dH&GQ%`F{+VZOW2rLcKYf!nOHfEOAUhTEUiAZ(HqR9-$N% z;A-;G1)_~Eu&2^A3~Ao zM#+|IYYPDkjTE6Qr3n?paiY$a#p$;!xr!Ic3^^RuhgP{FF7;FjW}{GL*3Qu?;x8KM zBdeNA9BNyL9DGo9#%v^=-7Am@G$h7I$G}&T2-kecAcoCL3eS08|-qz+{-aI*=<`no^v6xUK9i=0FJ-L6p(8HSuW26HYXu3cDMy@Y!I3NZlrOGpk=vYlSIB zyB85r(au&?+LoVlZA{s+P)QvLb$mj>?{CL+ThZtIko3z$*IgBaZf{Yp zV{wh+r6UBGw2*2jLvW(=#J9BfL{Ef4avUh{eeyRgXfff%25oJr$2^Y=c`&{GF(xz* zXdaplI5--hmvlV_>s5{x!)qg&7}kq}giau00jDaeukK4L9l6%t_!!2RgPnt#OV}|r zp=lL0`&R-N@5gMn1UAsd_PCJ`>CV_5?zLJEsqJwsBQ+>|71s8lqgQ($cj<6kOE#H! zZJ1tSm|M#3vw1iS539{|GEUfPmo~=tN7V;GvOV%b$)a-$p6599++Bkn-Uq;-*sCWu zp$TaPucI;!MWU6hao~dEZFKJfLG%5Xc_7NZDluo$Bo<{Mt*@!1)B=2HgBrOmcw;L_ z>MHVZ%fOmcazUw`-PR+%WyX^XgC(82W6m8`m&D@Ya`CBM+20~_9*~}F2CPug#`39nmnPBaoJs z7YxDlp&$$h!3Oy3oi5RuWt4X@w93{Vn^?f&14Bcz5yGaFK_f?_wlVPxw=QXoT*&1VGZVTBds{`Y~p@F9mL&3*_3%_gi^YQXpUOYzGKlyU^2LKKY zpcLapRsG3r9+4boL)8MA+VVq7vqhDpj~`zjDy{`&+AX!!({3VT3z+kf#fRK3u3A^# z91u#|UvApU*1B6}x;C^?jTLn{gTNsCII~>S7{;;MtWPay1?^}pbq5ekxPrayi?wF? z9$$a#<^JG5_;-*P{{R6z+4xVt&8jvoK1Y||`z^N`&AquUxxI;j#Gli6kmHXG&7y2v ze2*`>y4PLNAU>^T)=zC)``y7dE-}^2{b8X@X{wHgWALbruv2pS|zW)H(NbPe) zFKe5sS^8YlkjNm8q1CsV z7d4SnMtqzPnbz=MMw7;ZGf6=pwa*I(67 zr}sqXr-$8mq#wi?(XGx>LI7^(9TzK$Sd=LKLZ|;wg<@aFvht8*P zucDIMPSUM3_}oYm+y&UP$hTPUpLBKi$m#b5 z&UP$o|&<0CH~)!=>q$`lh3P>+9%kJ{9v9w>`_5 z2sv6951>|pm8}+h{@12AI=T6Ob=F@tr5v2 zvcc7RoZ7gsmlc&{ql-BU_CqoZO${`Kz8#nN8WJWtjml14S8kl1Bwn=9x+KVpl! zqggr0_wg?EcJUGv+9sF&BBg|5>9G12d>{F zo4uR&x4oU+nm${J?>6S8+x^V^->U`2+`ktV7cV&nR*}0XjOEHP%y=O2`~ILUdvo_2 zL)uzi-q7uJUA@^2VY|axx3;x)&ZP*yx3jRi)pZx!M=70=8%l-{(dzfGsSjGemsHK% zKPo+snT&f2HfEaMjmr#fiz|y>>c`a%FA?*n6dr=x+P*hAjI_>L@grW@03a~eDD*m& zrysEf54|>?nRjevzhj)@T_B1_RM*}OW2(^74>})W4N%@=PtxBU@yiSbHx{|#M#q(` z2QO0-nueYgK?}RMowcykh4$#ygqJLpw6?c%T`lBb(ec{ZwdRj&YrwjwH_vbGU8|++ zy+2#j_S3Y}sOjv~G|NbdxxbH0fBAFH;}ixrO28ahl#yN~23xjo_SWi#-&4@-CVUgc z(wb|E!1!O*ib@!0{J`|-T)_vDU(D-fO{#5MT}w)aQE10r!F4r^u5`_jj&U))y*A|z zryR!~ORH__AD>O1r}qm-g`1N~w|DS{UR=X0T9n;(xvxm2EMg`qv}v)|;w5w~$Wg?kqzc6ej8cK42OhmLML(45K%{S69OYZJfTS zm!3Z{x;zuxNuE6NSY~sbhG^UB%F5EEt*0Ncc05PXX~zy@q8 z%4T>uaL?h(&1cDva{0crtchc4PmJ+6<;`*N0ky7H%^zPco<}<+aIYE;3yqIIvM9~o z8#`L^au>8XwuRIr14{a9MNGvegQngX4i0Oa(^`W5JZf60 zbB(!}1!>RfY6KToI(_A(^{{&`Y;Iz^wVjVF=}!am2hcR;1(g)Tjd?1s$JZ3C2k95( zpSZDiN3=RE^zt@qkzp2{s4=pMjBkyhg{}rT@g!EX^7C1z2GsRdwelqj_a{Mi+}tmf zkYschQqOMo`ZKWPIJS<PsSnqIe~ZU~t!m8eB~4bx<7l0TZ&0{oT8vYG z*}-L`E;0gGeM6TO#M@b@{fz0idvkv5TMg5X+_ihi1+>g*mcL5%vF3_WoZ^U_6p5PnI@|9LX#J|3mUYD|MG2R+ zo0{uH*P$>=(TVaz*M~bWk+lKs;3-!7Rvg~frpd|G$~6A#G55n^`$}0xk8rd!?hOXb@wBgFUy`#kivR3qJE1xY(aLYny z?ikmK3=eqdR(qREy|vUMYozEnvQWTXOr%pSMRDg;ADS=bkMiLYGz;zNq}j2TT1b3_ z?6zop_T|L8GutpRmbaZ9R3Dkme^U|6BP{{#88Y=hE*=AzSH~zrGVR>)vs1Gqf?VQh zQHK(IP8Cu;5Zc<5aK#Lj4s0Xb&6hPi@u$>Pdwyk7eU9^rMlv@%MMpGL$(S0NQ2JUZ zLT&k#WcGUFT>R0?ZsxxX-9Q5e3Xnm}M}`Tv=2d&sw;W84StOF*E@w2z9@iF7A68ln z*z&4v`ITY2r*=P9wY#^4k%-xBVkA6PXEnjydgTR$l&vwXDN)5X{K~w%`H;F1S=^V+ zoH_#7#|+MEiF>$^4LM@0$BMU7qs(}92;Dr5E)Dg_D(BF9;L^0jm43&c*)(^*Q;ruu zHdp10xvdh{sNzFIJ=2z;*0}Io-;bgzTA@02vrCUnvX56RV=r!|%?Oq;AdRjdngZdR z_#7yz6K=bG4ZLs{%2?vwq_Y=iCC4Q|ZWL)e1#m%yTc^F} zB>CWirrT9yFb2Z@uUFRdnPXsVYn)q=*gip)H}k>3xYL&fW!O4xt$xD61Q+_P+bk?C zjn&o6vBhN#yWK19T{-P6gCY^{&Gdy%-b?X9!4i@jf6)u)Qq8w(gEyD_?17{MR#(`i3X*ExkTdz|1;;a-30)oP~qO4?n^)a|TyM&Hr3tt#mJGwrtyn`HUq zhDMz3w!Dfvc_5lRgVY*mNbp@*GjBd4QvPE90GH;Wwlpi=;C6F8?%j!xyVbUX=NHNy%)Gh1;UEa}MF2V|7gza=O} zQ9>x2o<$pR+pVW*tIQf+O|_(gAq!yYIr24;IK9WJ+EhFW(C|&qB8})paN=6YH?pUOE{j%E`g0 z&%ykgmm1c*a91TyVWwP7sP!$|)n&`W*z$T|j;JFaR%1YX6*;?pq_%%yYPWh*VvgXt zv5?0!lGe3=gPE`OSHhGFG8_Hb>!xn2?Is;QK_tdN$r|IAqQgd)=HTjpaKncb9-`p0G2RW>oq+9fWAV-O7OF?B$cN1R(5F2c6Hr}CZW)Fru;K2IkFK8f& z;48KS7HvG!Ak8XS=;S(9yTIRLI&0xz{ z0P0}+VOm$jE+#27N_*P2){wI_0Cg#go$6_ID^Sl(KGg&Hy8i$Wm~i3Bj>4R&hYByX z`0?cPxIX^?61n{E{{ZfePmdZEb-MCbbAQt#o%=$3csM&hh)YUz;r8UkK0Ih}aQNwY zG9Y;zg9GB52M57@b5U0?j$tlBSV9*Y7z``Gx~c1e0cIWKAlEhOkn!ce~^*@#8QJP@V8Wo^6`Xc0gy;CmkQF93ZHfRQT6^!xO*e&{bBb4=;+%~ zwoa9>216Vy48^86SR-f+z+lFJzGEM9=~DcgY0zr@;G0*FhuY}cb=}dpb3hT~jz_uT zxHPqls=Ds!Lv-ZTMbFFoHH+L^zk7k)t?Ne&KOPf>x*+3@0iT1x08Hh?QA?X50G&LBY+7IQWy{B)>Z*R2g+YzGP zXu1@3ca|-1h{Y2rHM88;(ZJ0Nq`kbUf)7*lJNs#E&D4{?;Uf#!BXDss07-T<^;4IM z4Rh}oa4l>llnaRBhTW1m#Jq!*jU@U<6Hf#l6nx8k%(@Hvts6$Zy0|y8J&;KhrHyQj zkUR$(;KJt6p9B$CV0&%dPUG$gdzme@&ZnmBSZ=RvUvg#^V*Wd6ozfxWEYU?=#NucW zdw70uK3O!*(Cpps-p%u(Y!_-aQE3{qTD|LS8K&ymd&QL2bGR|W7!FM13KpLv8!g+O z;dWzH*plzQ-EW--bL`2q+q>H>UqI9>bxkf$gLG3L^>&vMWRbvABihGOrkEh`JLiY_ zi0th#+lOyR+kHbs({3Mj=%97GW|m2d^Dq)kS?A!pvzjI3F4y_h?9kh~#5%UCV{30T z*O&3>hT`65!|{(UY+$g}uV`}4u~;$zt!}p6!&a&wo}J5zfN%K#Xvx)B7ouIx239E{{U(= zmk*ZQdVq6-LqPQbQB&qZ2!eY%i*iJfxF0H?+=GJ|>C8iesZiQrYv;=Z6;a#0;5Y+Z z2o&={eTPq!#McVet@P8`_aMGSp}yiF9UL7g4K5ADVPD*X(2tOP{{VNicWk>WQMr6t zeyaI?8W*^j#KFyTNCtoc+Lcaj*!3mpe|xr|xzpm+pn=jo@y2A6FQ%o(29a9OEXZoN z!3}F?Yg#r9}xzm{jrEN8<^Tz2Vw3g~76PeJv(&7lis2yKo4$aZGWYjdN z-1~T$Ac67q-1d*sm4rylj-^Y-j|3j%{{Sa{nc=whp0)DZyR`;MuI(#n^(~1t^zg~n z+wFXlUTIPFU0EFr^F7Sx%YXm)2m$8FAW+Tnb{j*&Wp*cZ!lY}v=VDa_I7G|U=tr!+QFDdw;22 zX*;{No5w`l+GW**kGFK+!!9F}P_=VnG%eLM=1U0}kJR9BUWER{`hOxH*jMC#=Bs6V z==`vDkLDL-YB1hfZ;h{Ob*o!3?R?s9zQ(X>`dz?j^hu`OlFASqL8$?J&QIRE)_;iF z`5ssS02-(rU32+I)=+i5`RGWc5Oq1(O(|cc2Og)F+xrI?418aNJUE%#2$*E@wl z`zR1trS(YWa_G9gd{B9Z^V_%d%~!V@nj4r}_D!c=+O{)7A1ke-kUZCc4irK7DDHjZ zbZzIZ*-1u6rs_8_HKElG0_H{rouZT%021&|_LvAk z=jY5evnA!b+Yu6HV}n6?q+qz_Amdv3t1)+vH(vG&*Pv4}*6FO%qlxF??P7th6aW(Dw1*lTDoV_U zJ=v^|q#4L{VXUx%YnF`ZxujxA0M!No75fa58~`!6vAK;|%-5bME?Rb=TFA(CMNS#8 z;)5)X{yAY|h-+kx=7P1arM!3)82;vvTy3ptD~U5g>uIJfAQ~2M81M_LJD`S->KcKI zPrS)jMq1#eR=8h)m2HiebkZ32Bz4DxCrkFV%kyj7qA2wqlhM7>Jfmlv0}QdzQS zt^*wBKINgTE@or;G2}U8w`jqw7y(6{40*Q((VYk-o33zw>r^~p=&5G_g79^c9Sjb( zF+xZ(Ifa8E!15qb1c#>2Xz493EpD9mKxCB1BgBMU$OrpiXD^BxnDB!lb%g6m7sqb&V@P<)Zg zc=*~|fS?#JAKYi*M%M1%?|nm4>Ari*sbI8_)=?l3%)?yfSBgGshdY6GA+-z7w=Z4u zZ;T86k-T*I26kQuJt3ik7dh1x1DPRMGOJzY*>0nWhVabWYlqw1%^{9B* zT{A(au?FCFx4Lk((p%m9T&%ygmd&PP)MiN=8)brcq^nF*P=SXEp!1jJ$Fdq{ZhNLT z7TJtLwfDSoYI<;up|C-!Im~tKn*cP8f=82vC?y`%?f7gWx02Epxz8ObCU73NG&DWM zyfar1U_rb)145eq`r0EK8yruF$PEZAG%t1|3R8j&oYl4a9lxhK#==%c=-66X+6say zNum5%tMs6WnXQ|-OwXK9InFV>;Bov1i6kK9xU6h9CW&)xe*|;eO95btMvq2eK>h^Q zhO|ND?|M6ZHq*Gcn@?;_w7Gnxp}-18=eV~FN4v>i9HY??Ht@MNEMe40je+lTy2QS&0E`Le zL>w-)`L6^{7tecK*AV>Y3Oa;wrYI?(+)rr&cl85bkQY4QFg5nnpt$NKy5*I`eMV1m z$V8Am~YnA@hoGxNB{ z;`bj*4g|Cx0;#{cQrg{}u0+?hj+Qr607p`w8dJq`Kb(LR092ZDs{76FD0%O{U)G!6 zP#<5`o8C|#U)G!6P#<5`o8C|#U)G!6P(FcD1y9zS-cUKYfC6fMzv@lzC>&a7K_t;P zyr5UGM%IY~oJqojiVFV#*rM#6QA$J(z~(&DjXhK}JxF|Ka} zA49`E%xlLsJUCK;z9=dona4H_!k#?q=j6D$$iJE${YQ8Yx9?nR+vZWo4C1HRhu6-& zDx8+ZlSt7HE)+Ce4_7~whQ^C>cjH&wGQ`5&v!Xrhd%eRvl#zl;kIH!vy#D}o?k?)u zq;$vgq_$!GxO>A?s7KIxy8BSB97X`ETxDn-8}Y1JEz!39LVI_UnIbVRtVZ0&Um>z7X^r3BJ4*H5yAkw+ZwzkF_Bo$ScM1!#OwdJVYy zg@2(~PcD~{xh|(Rz)beq$EUNT=wCClxyOZY+%UmQ++HbJ)+o}2F=;~YTIk+Hkv$kFSE+sD$3&8HnGw}(~@^Y!Pk}T zZCw1%B7mUMZtZE^o$apW(zSbyD?-)w#kQr_)GV&z()Fz@zFA9dEiQDOP1nxM`6VT? zWE4D2C>K`6W|B15y?@M4}9t-PRy*EhGE$pDXkEY0_n%SSNJHe;wz3&;00Mmlz z>w39}<9=Cb))!N2wpxw2b+o|T3u#1hNf{tD;jxyqkWCI86m&sUcc}Lw8w+_NW!Rc$ zx2XP`-0;%&02x=k$2LF-$BODAgH=1P+}O^We;k(*+q!r%^z#A4A6Typ%14eJ>ek(> zYc_VSozlJ121eGppta;bHaWdm`xd-ikd65jK&& zbx)T+m|ctAofYQDZ9Ugvs%nkT)3&?OA3H{^X6hC>;`YVvjJGx`Mmu`qv&}Sge=v`m z{=;b<_21f`U@UF#=iXNOZT79M#MYa5Ka5+)tK4X83@nI$3%I*;K?0*O1ez~P+xrYz ztedWzqGD;`{S;)$HeE>3w=b!~R!&zoET$kdS*b z^Siz~Dcv0hx>_x?EY&oLV{@X8Z-z3&*HTzt5p#VP3>0v!4;&NzuMhcM_Wp+T+C%gi z+OPVE`+cs&G>-4~+V4q<{?XRbUuogawjEY<-!2zYI-J7uGkaXNWt(xuY>DB|`ZQZT zR>aFL>>qi)UHk9dz16w47U|O=msGrE#g3P(TtRO1dC&)a`XEW)I=I;~jGwV>uOVOZqLnsE8AtKZt)azYg>BI&p7yTsRqjSHPx%yG330@_Fm54Z)9f0GdJCJ zCcM07!UyyXn3_Zh^*Nc`%#LY|!NsnP#F7h|Lh|jK=ei(MIl;8AI{0!{aQcotKz-bN zf1oM{0&9su@dYH_{{YYsTW+Lq4rl^`gP$-7=7Pm6;f7fqL6#R9V~!rw9#ee#Zwq}N zw%eNGP%^s1QF|y&M67~H!DR`=gXfA5z=w33tZohKxNa=$){ZhM`3p!5dIeoVL6-248=&4I+DJ+*;S5jl@ZW zEX30@&NQM7LhoU23oP@sopzAs$XX9jxM1uC6{$4A1&-c3yAWf!wYh^Us0`wnh90Jn z8Zz-ge1c-=r}n~O_Y>U#3f15EYfRq5c1t5{1I(yk7xsoL7c=ZR&W*{yr% z8JbCmENB3FUG%LvdkKE8wkFy=zU+5w^c_9SwbP*6T71`cA?*{k{{GGxE?oFx$k{_) z;u=G1P9(1R0jILo6~}MC)v>k|&xn zMzn(CP}=9G1HdSltWb0Ay}i!)?5}k;-mCD8ifxT|cM~SLW9fNea_)rL9LEDIBX(ny z3`P`P;KOejtkpc z+Dg@VZ2NwoxFR`tGB69X9KyAD^oj#jrBBDVS!6w}+iu<+&Di^8rJ(COn@O=bsg#MY zV`*uvMI10$z26KIPcP!?+&0-gQ8N8vzIbSYjMi_XESt%-*_V(hQt7c|- z4pGE3*W1e-#BLQ~m6#d_kkCNna~0B3zL{?+)vcJU;OXm}DY6G!)HnFO@ABfQRrKB2r@{ucT z^($y(xM+57b+3!l?KP_I+hRm}+0OT9lj(M5<_ViOMk&aQ9EM3EiOvHtamrpeR;#Xv zMO*XQzT-`<%PaKzXF?eRmMGb8LTUHEf- z2sJOiR}kN5%yG(Pf5ec-99tAlaEP3J^3m$$ReW-fL_A&Z9^<^yU3WB3IbjkO7Y9+2 zROOMmOMPtM6ptgjmEA37(|BvJ$A0=tFt{#rotdxUM&)pBT6ooaF@oB2mRZkskcPEB z;_JGHR6h1c2~Au9b{<~$y1KUoy-~(_oA+r9b-SNXiT!Bh0#WJ@CDqK_K|Z{3Tef3a zPW}2qo_^x%Z9Ny>ymdV#ttTn3jY-1=F^0*SOwA4Zw1txMbm}v)#NJI@Fb>0r<4kxf z{x%(M`yV3hA#0OVyOuKd&iA_v3yB;@(?t`56_M3!-CsHz_fLctx3bMJVGU>?)VDBq z+DNVoHe8dBl@Y&oke_yRh8Zkp4|^RL4Q@k9lHhYY1COW4dA{c@+3nl9kr6fF`14zj zB;Pch8>QMUY1ewqv{wymogS>Mk-^2~@v@*FQ4~JK=H#|4io)tQaodXNmi-_aVvaUA zx{vA(qXDCRL9_?SQDyUV%uj+JbiL7kZ6oHA=3j&*t?8FKq&m2fQHaW{6JFcZ&F!dt zysdm=j&tj2BD81(3L5wz=+(7(?F*X1+PL)zc52krP*KAVN(Pm=ucNtSre?;+FtOAw zrce%M(=oyI#RPx2_w+hmqQM2(ZN!qx=wTUKR~iAuz%(9cB%axK2Um2F8Sfn6((_uJ zYb(eE*0?r-b2dcHM&<2I{{Vbuw&~o}vbDL%bHN@>qttXkSK=wQK!8h)NEQB+Uu3}h z@FVk|v+h9n5&6&A_aJ--{O9cZkUj){bM}469|Au)`#$6!MUV!$&-D5beKwU8&HX;4 z91Vj=rgQdv$T^EjHz;|h+x5{0Y&L{A(d3-G&zSZg?{%Zy_^Irt@2U=Q*uNS$o*aSk z@S+a(T1?8)nA3|-D*pgzc%biPv&cElHNt|Qw3HPLw2+TU!o0$DwVwtIoQE^XN7-Q7cD6oIrZ!OS3&i9V01c^>cg=jr?# zF@D@PU%mQ=Q(d@YMn+pPpfH?6$N;qXimc099or})(|ZZ3S<2TLwe3F3Oo4)xmgjV9 zwvoWr;Zyo-G*sQ)DQzdrrlW5@to<$?m&57yaA}N=A^LHD42)Vek&2Mk2E$5tE=Paz z`T4!uzbPHr+%DgGeD3Ym`-0ZPacWv|H`8cW7Sb6l^(RB<54Hyh7#inO08o0_^K<;s zK2`Ld#_ydEWAA7;hO@jhTl*$Qr5>%+F>3Kg1;$fGWPEIB$xw2hAfVTN(ckHs_hvS1 zdWMlJH4T2>N7j0}#LhC$rpQG0(=aw?x{r~-<*6iqgJE`#>a@PyPG!EQb*aBcy^hXZ z2JP9tDBij#pqbFgZQ(X;^BX)MrLEO84S=IG8_1!YY?$27hk~zm-{?th5V0iP!h)OF29${oF^wkR#^e}`CG>ycfuW<8e>-2xpoti_dnAkvGw zIgg%-=j*yJD|m1bIJyA!eI3z3tJsoRG++j%PM0^9lnbj&s2EA9s(M z2^>1(R_);2c4IBXF)^>Jvbp8Qs9ltr&6To%90(Xvm>|;5>24|Gx0K5p z5o=GRda%oz1I-44YEE{cyzBu6Z-taTyjw?*>N>xa6|Wa$CL0f;=)W1NXgZUviMM^* ztfJ{ruIe%u%hZsN>a;zy<$zWU<9u0xB(|;29W&q#jqV2ClSP^DaG)k&Mh7)KkU&wF z!6_0DIyW}4hj6Y+G?QEjbusZlH(AW*HKzx+d7$EUv-}_$|o;~#u-MBL8++Xv*++kHFxFw0I}JH0@Huaq4!Ov@!{;?q!5T=Ex!;vOF>D zsjUd(R~&2P2fOTlYJc|rP|KgXJs8w5&ex0`5I&}{q|+(jam|X_rBGnFGv;H znEN4T>Fz;x@0iTQjY3e|%ze zG91mGW>94fCm8D22I1pXSn((3bAH)b_a{dF82I%YeF`|^yK7E%8=&FIu5YALwBmy^ z)^yl=k=rZpjJGA)&Yy9TDF6|&S6fIUbS-;aT0_V@O1B5^+5Z5%e-}4)&!fV9*`Z!- zoyD%`myz_}YpL7{WgrH&M|85|g+ltKCN>e?KKNfW`=?qy-R+|U56m1Y97BVcYC#pj z%O|+){CPHbH=9D#?YFmX*>3qnmpW7|_-sc|WFDbcW~d-|1?An`lnJ;r`5YN705Gxa zZUZ|fp$vO#QC7CJtyZiZ&@pb@Z~fcZ&gJb6=Is4a??>JH6JFD|9)qdbI!JD#ztV15 zcEH&pa|CAZr;+4SFmV`FYtMt^Sr+LvL;ClBEZ?0yzw_<#Z`yADX;*N+Thug5eGh!; zjC%~)PV~{OI2MXg~6XrY+QBNy?FQBbF4KSyg3ncT%=eQiS!+`$C z^FfF1y-PEn8)Wa?2itUlxi9s)#Qt;-M zl0k~60ZRFx{NGzQL2cc|$+NQ$neHx;u47B{IJmrr14lTTtK*a*lUYHx?rxhDJvPfv zdCg&9z<4lLp4B5Oe#X(SA?ivkSnvME#;`Y^Fzx{aKf82$otbhjE!_DnB{|@pGx|ZT z#Ag5soIH?Wk#`2-LnLy}&}c(Q%-m^(YVH+5XV&%Kj%!4>&Sqc+Xx!8qB$YAbM$>o(o!2_R`TbXPbG9U;#=HTOluLYq0^CHh`*gcE_nL z%i24$O~29LvJZk0X6}=j(Q{^gMt~?w$UHn2WHT0SF+2r~jy#~2Rm^a9R^TXe4|=%a z;DW_=?LJ)O^x&1?xu8+8AIx1)<655-5w_#fEp>}|qXGv@5O8auk(ko10FfD?sX?x~ zl#=N;lH1%0=Wak49CF4S@Ex4c16ut^HA}yJ!?Asj`(H?%vQH_A_mc{ffWjuY5CL!E ztybS{i>}(GrjuQkWoEqw`LEjX1PyZo9LC7Tnq$YB(T9>@`9Cw6q?%U-w%+Dh z4ri?D^WQ@#BrK*yO#BdW-mn3mLKrA>H&TzD%I**}zy%J+YM z_m5%g8#7|-+SQhyy0n>%)ux+wJTWzwQMuAfEK!!Rt!+(fK}DP1e#H96@kGC2JL}|A z=4Wx<#i`qE3wSN3hAW`Sbr^cm8K8aHZ3XviHG7yN zA>!uJGjSUs0Q#i6Y@ISQ5rqdICB^){q&q+Q$o^wB2wQgjp8I&;Mncz4$R0yIU`WS0 zLgFdps!BcF8xOfXvc3)7x;~+$NodDJE*|17XAH^+>trngI*)E-8BWsQv&(Prre?HW zu-i#+=|lQ2bHN4|3RD&~)$kx7z`k~OCY=vqwwB+DX>PS0e|%a#2i-VTwpK7SNi$nU z64w&%R|Rf9NR&(1y&4}b5H?~lHg(5hLHFp>e>L> zxyA0NCkHrT^aK&!>r=7SXuJ4vl#g%> ze0@vkBa_c!Eip#d2IEjhG$$XYlAC$QsusE9n6>=?9CElepp#k}cw)CYcG&IRO8m6+ z*c{?0=QP!)$KI-mo|vwPTyD0EvBX2Jqt8K}FxLkYTmxNK00H)@x97}buhQnX4~|z5 ze*?fT7*OKVmbD&gZOb>$PZ7sWj0x)U{0VMsfDdg0oOmid$k-j6?9Yv&NSqlSaMBGy z4`8YFa2c1IcR#B99p6Ucc9v*uHM?iL#tgB&ji}=!pf;4Rn#Z5Ds$0JXNf;&lBG-mB zp~KSVGB%7wc;>3fi@NWjE)v_9SEth<-upvp(M}W>YPwx)_bU5Nz)Dxv^C&jLE*-vpoVp;kllOY zq@2x`V^CdIfm};R5NLy7whrOb;bd)%!hyB*kX#9ICZuJ;q=18GcDCn&Ary_3r!zyc z)RNvb09OhGACY#tT&<(9pr`bz`s%|2m1g|k)BH(T3eEYyr}&bvDu@)~czB<^D+DRJ zj`1s=sA}1;&hvnAuO&TDY}i&&iFO~;%{rkwHfU#gz&O|Xd8br3za6&QGaTPDN--|O z`gxT#hIh`R{{S&c!0m=o9CH#zUPhe9f>sA)laK~Xz}Fg*e|mKsT&?cpW@?gaPqL|4 zIIa;~zFfwnQlD*7uyItf?a_h@jY+N|zDZaepBzu(KjEkBS+jAw=!tNe;m?hLIMv2S zVZ^p3X5sziQXi<#<)5UxY<#k5mlHx6KH}A-y=<9i^Oe^!Msr|titzAWN4x#``hNz@ zKer3_b*|e!zkJDE=$_^_iF0NybBsS=bI4hix0`HP{4;w?wjlLc+;2^r@iDjuI$KQ+ z7V4J(la2+CC(GEVySh@ydy#!Mr>xzPA(8KvX`JKgags?K_mXOOxyJ)chwX6$hAB#g@?sBXaE~J_%#DxnKqdL_ItjH~?@wd=&IrKSN(3x0^p! z`Ecz;?&8<2ul3f%%@Xc=xgob2MA{ADiICel(a0LW+<-Dl5`5JuO`F!&U+wO!%~wvj zW~+H|E%Vs@J}Ax1w((s9)P2MHVb9AbdqZmKHvoc6?*9PrYyQ&*?pBMPX7^8%QPUYI zbELnyn%b|D8+N&^5Q}UJ4rg^5#L&weTs^56No+1mteP2b%ew{?8yU7L$-Qs(;d+SWLU$m>&gcK1BAVMmX_%VUprC;)`x*0#zGj-#w?)-qf!?dh z^@jrYxx+iDkh+wQgOF^thw``F$Laq7!nMr{Pr13#?QL&$2&^w&`J{P!dXq&R8`TlF zkgo(2mvS{bUfyg?GeCW$u7n7Bazf%S1l<_h(~>cdMmMvE3e{bX%Wk%_sPj{}`-4-} z9d$Wt9TTQ;&ek;Ljic7rHke2U6=v0mM17grnxAm@j<+6@3|CTV_Onl0mlz>AK_SLm zDUe}KbXDDa&wBGNn@76>ZF!7CeShC48$|Xif-ODYVrvql2G$j39~fPg!EiP2_q0l3A=ce zw0U1GoKJBD#yIf+0gDxL#%eFQo#KA96nfRjhSZ0ga=YyYpK8^$VrbXRVqq=e1pCIG z9O>oarZHO+QA=WLBbssSV34#>9BskiNd1mn-!m4>$1ykPaI)$q+si{6<9ldu ztr$ojTF<+B5%#yDze~S+SrKd!JiNHn^Q{3Qyw^8my6B|x877Z#1EFOBgwc&O6%tfY z#Pbvf1;C$ln{vxYoMSJ_+|GL$!LDvn4F`cio%Y{yN4NL3mvR zediq9N)7by7Kt9cv~BfhnCYAFt(G^mnu69a`iSFNu5Pm1x%dr3(&cWWplX^NjjWdJ zlHw*hrQVV20-&A?yKb9emX9I+Y&2~rZEuM5ZBEIyvg&rMxi^8dd_8wg_`~qy&Zm)H z$Fa+P)c*kO{GrX*?Y?U~+EsC;%WakRmu72xFk%fI%PsG7t}cl-0DOQCGd z;jDBpwb1n&$XwBbX18zYIEqlPa~#(ReoA!qUw03=5yDw3rPg)#HPPbY*u%%A)Fy#w zyB)C!qth+bptoyj8WxijCAN@QwU6oXWy2dsxz4RfZ7WU-CAluMEwgX=NAX1>Vv_Lt z=9@*fv+fQ3-L&BRW5n|@qZ0NSgI+-RFQCWna^22jo{IKtYZVszW@b3Ky31^it9iq@ zk8{goce>&M91aG&Mm$tqj@$TLt9tgr_LE<2l+Li8M|9+WNH83rhx%&nMPv6kG1-o9 zw!KwZk0sY#(>$5J>C&Wz`c?+!WU@ABPBamgyN``)#H?22y2-7r2s?6Ex(TLxV%abypPT;x_K$kIz4Cjw^+{W#_cun1eC!)* z%b?3R_dbUgOIWkBWR3t_-Py>(;NN_-o+lkn#q-t zJ+!ExV3ZFv^H$py-E};L6XD59jy~VLb|~j@Vf5jEK0HYr&{}4?aH(+>9zbDA{?dZm zE#sdVCC_NYXA!iw?dO6F3vzEgCvC$m&ZDSXMk9^SEtSlTlU~_UhM+S_c(T6xh`*K%6f zd-4Hkb$c+gd4a8Y5n55@?KSlh`qYKhxh}SA9L3{L`5&{<=C)?36W$p!9Pr^TQy8s9 zIbyr{8Fhg)+kCri-6AK)r&&VB#c!RibXkT>%m%r*lHwOPX1?g8@)+#huR2BZZlbrh zEn}iCg^)FY?R(2!P9F6a9d``3NbMUpWz7Eo!3@yO9Pn(;as$8_LtJ=fApJ?#aGbV3 z$_uXGW#;gjMm5hQS+KY~F{Xzx1QhGIXS%1$pKA07-y>~c07OHbB!#Ciue{9Ov*xU} zW_h8bJ^SpY)wr;kyFwU_p^`_AnJxE>f|cjPhAW}r-*&q(t!Vm%-ObIkjg_;_A$O}1 zNi?T|^}U_e+lDL7vY2Wu?wfuu8*T8U+`4DR*qzjDul11Liy2cPBA6}Kd#SUwWAZpQ zZ?yjaDIYK$)ns>DE4O>2Q??Il{v_#hTU$oVSX}Fwm>65f5V2?X7i7L`Jjd#PNR zt<&9GdizhcmEqqJaSNTNIkB2C&$?(KnVKqTfnI&rOkFV?s!@Sxy7jEr65AUeguLoJ zG9#KuW*LnnU~r*ph9k*y*Km<-BWr`*a9?I%_keT1T9}Nq^YByGaYf!OV_LtugG1YP zm-^PFdqB%gB029aGQ8#KI@SidV(BYEnMYm1Qr|zx_vf?btG7{Y4F^Kf`*oo1SJ>*h zrmwwkq_8cqw9NY$z72#<(>o+Ng*{x?cILj`LN0IpCcXEEKo33c?c;SP+c&LcBkv=( zbkU5#kzL5r8ViZVU2nb5Y*HpaAs=in`ffX)+D-2L)AJE=r{8whOOQ_;&epqTqYkcN zCoD3Yf>;|QrJOu*!B5Zk8pq^4n(WtX_U_(&r)~aPyK^0gvu&g|9|2(lUcng+l1t4} z+9Kx2*0i|hb$Kpt_nER=({#l>2fUrJ?2e#z){Sx8Ct80Wwt@jYjB=ZXxCofg`QMx0 zjjaHVWUT#n3Gur(O*S%VcFnZ-H?opjG8Tr=U~;?OA3;gFXPDN_>+?paCN83a;7=QQRqO7`YCi$?>< zAkd!T{{SV8iuP((-LKy_);G;$@6&XxMXi?5J0Uq)BWN0FfUQm_KOz4B%}Z`~@3Q^! z(K~;>_QtQFZC$5p4w<(#Ic=t9ow%JVoayfDZW_#wequ#QzSAS^>@t8VRNcimLwP zwr~Bls9v%g&bw`4mNvd8P(Lw{exnO(L6!9jfk$_>wFuxA(SN9xO66q;e8tWu^aDZ7 zQhu};Wd8syUCG^754-qyG)+F?u7#3nat7S=UNDk4W2}b*%vA;ty1$lggSa9(j^^$S z+)}nMBxRMkKB{`!8H2dj6N>6DnBY9j`M&;JEZh4dS(jmMy-#pmzRp=4r#9Bq>K2)6 zl4nBWS>q!R8CQ6xUBmKg-OrWo0bL$5#6G))`*w8A;)HX_w+6sl$aA z(8svNPD-|H(G_VOqV7Jh1Fd%6p*sl~O|`U=ImDU<+ z*|<#L0Wo!>1+95)a^uE}t9|#lwtAvszJ|?@J3Ghxn7e(q^(n3PmY=KI-?g$m_IHCTu7xiktoa0J*=qWAZj^dA+{=MK!H~d8i#S>gMhGc6VJ_OAbq`XqbIW zZ%h`<%)!2_PX)!k<0aF^j;*rWINQyH?T*~*kzZK9OpfkbyJ?!?YWSYl86!U7Bm+RA z>!$dn&YRP-`%~Qw$D>6pzJ&W%K+rPFD_ZC0E+;Qg`lv_RshEoF7rn~HKbstGik1Pym$(`?#KT$OUAQW|L#X9aNvD|#O_m1d- z%?eJOgEMC`Nz!ns#JKQv2M+}ucMCn|%XfJ+i)p8eOBWKohvCJ!bc}3-VjSW);wm{S zEtH!CYkL?Zg4H>RIBY?vJ%Mn_yV|UHx z(MtZ+U%Y;e&Kg}Ei_l?tEIA9Pag&)%-!#$F2XA%o#yOC@^(&f;ue-yR9`bJalw5!G>vH7|j?!0t zU?Vj(;lvtHChwXkw%zQ#!vP(AF6Ew@ibnHXc;YarP2Vz$B-#d}8LRECq5ylM65x2_ zS2Umd6}ax|iusbH7B_j~V2c#;?aw+#igc-_~eEYtpOYv z<7jKKYA*#_gapH1^Maeu?zn@7-P(=F`ZtP7zO5NcM^+giTlKIUAP7ZbBlYi?u|0K`D822g?<`KI}d?jFO@ zHy)?5?X910qQfKg8+(g6?&fq185-CkiI29qj2hIrq~pbRXEFI}?r-xm@9cZo*Ls%M z+SYcr!f)Zze+&34wz-!#C6_OP8H*!$Y!t6Wr_YhK2sd+l{cbJo4UL}jhS}d2B+$Li zmr`hXk=dL;bfP!6%9IE`==*}tbKKj$!$yUc<;;*?#|4xuE`4%!9W)Lv;AzbU&C8(N zZ7qdyty^9`)z?r+`Qg&!w|tr1mCcfQBW8FUK{-QcF(@>@Uhn10cN`Y%pHj8Fw$rYK zqb9f|(@hIpT+4~xU2y20-&kv$TT{UXrgvw#`iAp+TRgGK*tG~g5%9=kEP>33%N(X6 z!uR|`r1z^vk>s@D?fRw~t=!#p+FVncLljMDov)3eIdi@3VUn$oKCW{?$BMX5A1S+G z_S-{R*YB;4pC0PHc(#xSHsVb#C|#N$a|cA%$kKB&D~RT@W$!|L)vc|gdndJQeMqfh zx2qThZQ44LHO&Au?sRSyaRuD#RalKR>sX?-mKeiZ5o5I%3#nZ*-7MhN8%SewTw2aK zT~r#KxGmonp!PY=bT6J$>WD&I3*AEIG*&V}#101p8Mcf7vtVz!8o)h)v>b8Zg8u*y ztopIX+2P?&6d3mCk|tWasw(WR%Zr9NNgn9|Z%bY8?gOrz>iUHXP9xMf8ek4SNIUGL zEqHM}Ppbil^?6`|MBB589MEV>UFq`U;m7Sq}v7w!7 z+BLSVq#K4?jU18+vSP!wT`1p*aJpkP-=MbL2Tb!e*XYyZh2#KGR1E*W`WIM11NBIdea(! zIMoNDUAWiVzI$06sADc(%Oc4OsMA));L^~*-Wg3$X{dqPF8Gg6p?TCb7T6YLrdH20 zV{jbEE&4(aH9wdRkEqYzjYmi5!E<*Vo}F!P42%)d0UV5Bj7AvBh6+}dCAH$cUt{}I z{{Xl0gu_E++xMC+=fK{^`&Kd;&%;SWLe_^h!S1Wea~~D4EFx&@z5>66SgDd&OLF^HzcX_&q_y2Bf%-^{SLv$9lfGQ9 zduK=7JBwM;qBC4vS-Sqx-d2Ye#36f{*G5?$Mtitdir{{VK3#rv_x}LOzK@}7`zr`F zj^0^YTM6`e=5yxLUD1uRPi|fvH2LUGSG~;~g7C6_<=(UWTkY+SN30gVF+H>Sq3j=U zrrO%Aqjl)EzOH7`OpK3LiN-p+;jNxSC86LNxZ>$s^tis^`S~lrm~#*(zX5NFxFbLGud6HdnWGDYWfM+UcI7)nITm0D|gQ!l7mN zpR+!&w-0-7uH4;gLWfX>THV7799xyXn8QdlprOQ$OUY|OyNbd0t)T>rncqsZ=4q{S zGb`JVh6PQ$;AZ~-DL*jVm*pGggR~zoJ7VHnd+yqAeIH)FWHMxZ&WjD)ZPqPY3xnX9 zw-zpQT-Pzc*1SL?c3;>Z*>AF)(c69U?H6x5!?bTA)ON>mHjab4^gFA0VwN9**0kGO zw_9e0jWgNZ$t+S-W~)Fv7t8+u^O2h0U0d4%`P%mew3dbfPb%;un&?0q-@Q6!)3{@0 z(e-P{h^yTVtd0!;nq(v69cIU?^>$)};kRIn3P(7^@mWuEu zg#}Y#u@;UkX^!$Eo2e9FzDUPBmC7qm1Rr$cscKV*w9Ojw?oI?)SQef84 zBSeJz@wx7JX$OTU73gIa`+vAvbajt!YHjJT0LMo25oo3lWLaM3k1SU=c8s4+y_7Yq z)@?7Da?|S)mqi>-9_SFi*72B9pI!=-v#keeL8x3mSBfa)l!8l43<1DahJl$yIQgK; zU)#aDq%cWg4tB8RkVGTO8%ETa!vzI-puzS2(3>YZ(q_i&tjgC%6BP%vJkUKG@ z52m?%kXCN4+-u|gRfX-vyW`6grkEZ_^xPdE)DUY<`t9zo3#5|n>Uo2jONo)-X7zFo z0DA@s+c_dyufI06?Y)z7pI9$&ds-UqpC*z9ID^Kkv7sHx?ZxK#ano!x=iln?pDmrd zO@4c)hh#9)BHEK)JXQGeTWz$FwBIgY%O7g(D93dB!(nTw>y7wp{U2)06x|z8Ksj!l z*<(J2fN`nE72fr!dM_sC(==#pw0*BVqy5*h0EKvhiEYCOgHn)y*@YwlaSwt3B< z-bo{#E*NAwS$oTiD(7c1OAHg^$malax3b zg5DIz=s|kAv$fT&CbHEnpwuj`8s^Pqc@r)zBo1j|t*oKY3^|6>8WD)93{PeD*I;(q zJJ#%dsiW<&sNBhQeC#(QZxrq=dmdiu)VBiKHN@40z@7vk(GQyMmcGyY;`YyT_M^I+dd^#y zSYF4q_kY2OwcP_(g4(unT3%*l!(x1;poclluO)4qkuSqW;_U}>{!Tt&wVurD7FUg* zL)A-6*CFlxC88N0BsV~~7>lR1EcG^qql)Z%U)ZkVZPxAkD~oH={Y9{cPiH$~bEA~d zxquNu(a7;tU)-2&PL0y4&{eZ$qlGJIkxPrrZc@SR^cItH`UK!qXvm6(!XuH16Tshjd=IQ@xT?b8hJb zEOQ#(lV0Oc%#3I}c$`m)2w%Pb04e$ox1&kF^sN(3{yx|BHS0L6A`t4fWMlC*t#89T zfKRI?Z#7p%-U)eyx%*$YHa@h?XGGF1qtfq~(A!}Nj>gV#MrO7~yW%qw!!wN(#kWM% zZI{c}VK&a}gzpX2r8iNvGqC8|RJQM$8>@)k*9XXCcThtUz{0e6<5jDET^KzxM^lohSJ=8sx3#g{Trw!lTpB0GywJ9mnW#eA+S0(Mb~{87k+TzM5hj(h3Wf zkJ!CDUB#(PTFpXM37|bXwAQ3V_>EwxrxMzr{MBkRgB?2V@D(DXhnJe(=Wfj%8Z;M| zau(ad>G8vzc>;#rnlh&Coyhi=jVkU)tNv^(d#U?YNy&YAqi)R~ZerK;hG#bSR`kcA z)2N`w@id-E885FhZp{}x8+k=6oh$IjCSeAyV+9BxjxDAIYgo*!H$I%nbF-r?k0GV` zSU8Y9MW6~5&DD!$W1R)!_gE8K(l)>ZjmmOTwKS)WHCcBr)fHKz)3y899?0ybaj0`0 z9AVFU3xxm#0BAnM+`m*zM8zkQzUyl1R?v%yw43~`ZYSZ#7XSe{N#IX{ZeOdNyEI}? zxP7jEvrGsUsm-RX7!_tK?whGI!h~b9MIFAQXD#PbJ91`hw7%yEJ1u zg!Xcms%<@=b$O@74x0;0?`^~Ku#C=Zt!O-Hz^VBe{{YHS zw`PygPSUov+ufELMQ^n2x@{N+iERB;7}BjYRo!*h&sEb~oy0^%Ba>cxI~;oN z%of76V_PF4-6HNroLXCCdiahfD`NW>DQ`{AqSyCRd+IoJ?KZXTqp3!;9a~p$aHBv2 zsKG-{N;+Uen(hAp#mh6}bqRcpX|D!mIa}dC6m;95!X%O8+mhl*kg$`@ppj3hbS&Dm z(#dK=q$Z$@Y0jg_Alq-{%iFzEbZ;*3?%llIPUm>`r(sFGw)Liod2eXVUgpYdw;D~< zmy&!Df?Fm!M;3zM?h86w3*8R)-S5q7Ow}|y-LWOb?c{Q6cEmC8X_}qxgLS5zGF?Hp z60-HtUO)XnjiJC+ltF;QsOYx0`UU)=^G0=@y~Mhm!(!C0ZS{NGr&e2TlmNEfu~X1p z6X-b<6VBJwW3kgB-1f29Zg%Qg#%Q$NG8hHbrL1GAG_u`aY4A%YNvtwCq=3-FL>uYY ze&p>P$*$k+=Wg8(_^zLAXLE5B(aSENWtwJ9Z*JLGO_6jhZ4N-%0aOzwe6-sQ$Fwgr zXU(J7K5m=jZOg=rEVnLrWSKKa8G7gbDyfN>S8!Z~Aze=^gEG#ZOh*jZ@OTPj#7D19vWi1}Bt&J8k1 z#)C$EE2}1Ec%hzOcKb=$+h<4qDQL@A8Cv-dUNBm0?pYg|D_Qs?tq%?g!4CJ2ydu*` z*E9_V>RWr*?;F(9qPJ+$<DuBU>G@{+O=WFX58@OU*saqG1}L1_pXn&^w{5VajV{C^;OZpOpFpual|$j!CXxR zXtLy)wkCtv4YQ)!?cEmBMv9G#NVNVR41uAc=Gs4odxL%2yDb(;nVGEfLW1_*D4QNk zrb&bPtYt)upy>t@;#o-|V}6AKH`nZq*HT$vFg6nA!&(PK=Kw36v?mXt2Dfj0E<0=6 zNZS6hp2oUYl3ZHy0e)j#PHsGLLCZ=RM^3(g0H-V(aY24>r`^N)d7#0!mB2Rmo&fXm z_KyXmJaG;qpgmsB8LfR&ZGuw~yl( z`Q*&umW6=_nEwFG(_HQSr_5HnbFsHop5t|`?XI6ZZ4K+`_m<*8EDe#MW(;eZYly3t zsqBAhfA;=R&zAeGx|Yo%k23duqduXkKxTW}Jn_ihqud_sxp93(a5=uku~zO)RJ*HA z(DdD{rkfe#mg4D^x^Q(&Zv@u9stT3VUvzMZ;NotZrnAk1Xj*I+@k=Dq^zu2ajjqC= z06*fV+NW~;P|u;!A#?%@a@gEJai=zO7}o-@)nnV~alRrS;Xm@Z0-( z#B?H?Q;GKvYeDJ;$OByB;NyiC8@V-iwU0=8L4MPB9qpai61ptSjm-hiqe%dg1#tt1 z1?Sy0x@XPTE)mHR+V1V;+RbD5{?xv?(w@jBwz*?vENu4E;Usb~gDaZx;wrft@BFV| zk8*Af=4!5upBXeJSz*cpvr6j7;s*lbiCuNwJmhQ_%~k%Fv9`YL*7aL#9&U5R6ymnY&1Y0_>W|_-G}@l89<6(*&uT%6d;Laf3&^SKy~a0kB!E}aMm!P9 zAVIr^#rBs^aI0f`i>b(y?ZsOcTUtYmos!2_Y-*c%9iQGf0$a+D7_^FW1#x}0-)~LP zSXqa?wjHR}hO4KuNS0FhWsTPECY2RPX!=DyAdt!}`y5^ZSnR#_(cWxnjUgpJ6 z@6?EbL$TyZ3k>j{8i)^b*vSpvcw%FWj**Pb$;KHZ^;Ux^>CpQ^+l%%7oA}y4qA&d> zKRz+{o8?n^e46ilRrfu?`DVO>TG^3aUI$$3U8LQ!O)aE$ZG9w_n{Qf%c1cQ>3x)z| zMT`B1w!?>}>{i59wfcYL@P4-pQ8c`Wo(o*|gEm)^0V1u!l)-pe?wfmf9t&O7m6hC5 zHs;RKcGTf5tPk)UOm$I$>#nwD>8}w8@7~7jeetGhRwBzcXb4!4l{umd4; zWhL026r#9(dOmZ%mbQa&a4&SNFZf=i3#OmpqLq+~xL@mQq9i%ABN8~E^BTjj8iv4% zX|-tc#T@Q}#`-A9jF_HdES068gKqYi$)+Ww@F*vZi?#KO^9`kpBI8> z#+uUtK9nAt_9NuA`mnRyTk2k$9@u2~7@0>&6pat*ObsaT4Gk!R(EYvJ4T-U$7TQkU z(qM`(BCo;1`5Yr|K9Jef<;@+}M=X*#ggwp70I3aWs)3BycFt`bw(#lVNurcIJ=q3P z>EYu<8SdWLw-$FISu-_~G_ldOxYf>SB;bE448s2avhZseu3-hPm4TU@4H`~4hHha7 zVY7Q57L}3n0dXg%EZG5YAo&U)m-Q~%+B-~Zgkz}3#`B$k7df@aX@)JS`p`k!$6#l- zy@*>euKxfrj{=82Q<#bxVo+$eaCY4P01q@X>CZW5a}1z5j%em-%qfYOVt@< zrODNB+ur%PkjrzYTC|H-xyFH^g}Ixar!5E-JU9gEyHTfhmJE_?t(ZCSmoe`ERn>7c zG{XSuE+!&ov&?38dL4|Ga~3)_$^it@q&k?^wW5xjMe}LTsc2UsYa83ENf}VtV4d;O zm}UW_G*{TV6Gr*po2zqn%U|19H%`8i_f3Dn%Q%ilM=M*DJQCXGq6z2u8+^L&C=UJk zhVE_U#-ni#uX(gKTrvS2oN`*aw|BxY81_qT?$^x+=yvi}NLiY$EzOV@IDlR#No{Cw zJkV0cOGs$Jt{@RXh&U1Bz@WKl?r<_RA4$N94j7(1P-L+CzthB^=zN~KKNcF*ys7{r z!tdv?V+4{}Tu(Cy%_G}CNLQ3&nx3nNgWCtV8lKbC z^FZQ5oFkgrXL@7G0QBa@pGt|Do@3K5mR;ix{{Y?=uebtsX$6- zUeZm=N$N#(`5fFcNXERDRMNNsf(r(ZV9H<3xK`-d{mNy!Fw)dg^ zIifc5G3;p%jDj+nx822c)o}9fefEyiQ{P*YXgbx>S}7Ue4^D8%}3E-wC zW028(-`lHLt~JYcT0&uvNDO7Tb&I;KeF->#6!l%G*B!a1e+blMwJ?gubo!cmwK+x} zV10@vW_gL*LefibqPS$4TP7ekfadOW#PRkh6C`$%+}pQL5% zc=ADqYkE=ATXOf#$tDl@Xv0W$YiyzIJPsX69gh?kg!&b%iG8zk%AXR zD0n`L*j(nu^N+shn$zH&S86UcFJrzbq&1JtSf!x-Ibrvh-a|7&bzDCu7k!oAdQHiG zt3yy)Mp_qh;DR^Z8#h4Sjhb6mNv7QrL3AKR z6TR=tO1aev+&%vQLK?BS_THnjUvzJS#4)+i+sNfjE5*mswIvxxs<<)rd$UO+ zpHguwJO>^KJMHxrbp>R~NgNF`dwghvG}HAOmSnjA3RgSmd3(OapFcQ6v#U*7;h~vz z0NemHl#V>Og+Q;k)}@Lg{=I;^5=4fkxKjgE81{>*&3n8y{ehUhmpa~>%`9%X-$yoD-MU9BOs?bMY6^9&06%_d{f`0w^5$!Q<@gp+_Ecw^wzL|DAs|33D@QOOVhW$ zg6+q+A#>Onduy!e`u^;WE8_N9NojW!G3lDMy})GRa%jtU2OoNXk^*n+e$bD%ciPU6 zq~FPDV|^^wI!&#fsil(@ zU3hZo(>Rj&BDG;I&m&{TfLAZE1U1|(#j>_$(z(?xuPpTaX8Pfh+crCyHAde$MwsT5 z+CIG?*v@KFqKmsZqFz|{Gr70+Q`^Mb%L%ki&lUcf%ek$=j&j-CbDfrssD^k0ot4-c zxY1fXdm_em7(Xc0Nhad46m!M?0;=C4Zvzto*^7G}J+E8NIPacP*j<=IU=>gMLP zVg0G~{zGtnPWH8&8usSgccZI$4vPi7vrJWeytkK3YfCN&taT%m7A)MP@Ol+|T@>Q?g2AG}Cssra0K5Y6TV2eAe(eH$MW zt?me&uY}z&M~P#A!YRD)=7U_fg`6_q&mn7KFN)G`m;s_E%*MV(vIa~qDh$LZ(3yrZL0x%$c z=Ae`|>lh+ygIXOxYe8DpoPCPCosuRk6a2XRu^!MW571UbCM^P$X)Z0RDqIZ>K@>Ie zK~vm)DX!5)dRK`-t2Xkz^9R1OWoh)k)C;RX;tw<%;qvReEpq-yh&I>eT04CsY}sy^FCnnJidbc{np=@<=wuILnAlxV=9f0Of`jtq-VIi5!`+?f ztlT^ib+|9&4~}Cy4oTl0cDxfxmM>G;e$@W}?fjvaKXiI9>-IY8IEB675-@x3cj}D8 z)X?hG3>L);B=(mMZ^OwmricMn<}Qq$B;_@2YEV__ws&w`+jQ7uf=7DTeb(i6TGNLl z6GoS6ZfAEvtu40#Iovq3P!b6k(-ns&eEPTI{kUd*y3tE}v9@|M8KAs;k~Og(R6PfR z=HbAO1#s=Z*Ag<%TN5-=8;3d>VXLk~K)nU83eNe!6&X^1rt_^7p6|DtG zIE-mt3IxCWyL-27+P?n)L7-|^54F&@ljg9xxSm4T+davxvm6~p657ysAoRcI&Op4N4)Y_6`Y zrf?OB@>#sG<-TOKdV901oKi;P`G3{5F4JFkD&8VRguurDXv;0ArfEo~G$mbwB;A(S z;^QY|w5mps=Fm{O9<#?LexQng4g)a@)MI>Qa|#+zgY~1_qt}=-WqUhkX+aZ?+aQ86F3k9jWHm%1?NvW8jrbc zSoWTBHX`PcxFd5Tcx2AgWa(c<*Mb`@vt9*Q2;=>qWxrqKhxPf=HH!^@Ot9CqZAQ~n(e=w4 zJzGoE^!dcrI)#P(v^N&Fc8+64-t$e}8ri zcbaY1vg=kr$XzCtuG&Qt82B$3GDUR@TG5rvV_F<=H9>CqDD6a=uDg4Ati=(x)1Q}5 zY>@}D=4QVzIb7N~?Tmw86duE}CfQpu+T4ak8(JvOOI%n8&OpGEL>4Q%k9#q$CyjX5 zpVWga+S+NdZX>5VPkEa;Q1N|%}2M=XgCm1O_`&%uxw3*j(82sa*i2D z&BMlsGTpZ5-ES5`DqZSm;4$z)nQFG}lG(!}XvWlFFg_#C1Q8D5w6yqHpLEAOxvn0O zf#h>kV@^ml7kus8S*_;d91oS!W_SRH9!)gif(;7aI!gt`-K*RHWS0^^$_%m`tpdD_ zGN9d$m0g`>W!oK2{fvpS-pcB=v9YJB90QI6i9Aq39qG}<)!wiEo;Dc6gl`NPp5YTg z#9~f#8Z)J6+KdxiK1N2+>14P2oyjnTUtrH#OYTtW|i{z!Ct z9k=q`wA*7GF*jGf*Y%sh3mF&}7h0?0o_7X;`m?YA;&E_6v<|oq2brOvt~K&CBw~V@ zvdGsp+1_YDrelo{52XdiPQH-J;O0;lP?1qju%OI-APD2jg+??upQK`gq|DQa753x% zLJAJM1nr;$97w{W3=mypnz>rTmjG}y^5lbqWCJmOs|+(^Ltiu&>#K%{CgH$v9@H3= z*U;O<`Q;K36I|~_Y3EuBaX|u0aCIGHP`Zv;!z6p0$fSFSsKTvjAbm(YWHS1@sv5stk5b z$za=Ci`Sboo1>d4C(*(PMrcu>dl4 z<8Dyu3^M>If@AGvxn{MfJmVXiA!82!XmJCDY7lK6&nMuoMNI^bpsoWG!^46KqDYbM z281|c&l5xSgcoCP9HKhL!sAj&0=NqCBg7!7g4nUnE%dmw(1I(Q3UC9#1X0{0b#bX$ zbRy};3`9=$0^YG0(n3A@oN@3$s+#GZ;`>&S;n`t|=2usP-q@T0Jc$T2@sH|XUEMTL zv|RNMH@i6zx!lQTFKP)k#`ahlrbfcz{{V(;k~+AO@F+F~+ZnW8Y;VU_OTP)o%RB7RnH*W< zYhRjsmz>}lx`!Sda6#iV8{4^U478WFS_HaT0k=9^wF`@=Cg2>`_3ho$9z-oYS8FI> zJA+BwTAlUH=7-yO^cWu3XVY~3OEsyT#F-35kbwhpoGFM3dal++2K|xU8?3->YsR(4 zg})aIu;K%W#r_zsMnk7w?tP^jKaOneRv``-ch>z0nHk2Fbt^zPppZX}*lt}ZzX5Y> z>8NmPTI;478W|$TrUB+S1=m&D$is9kvvaM>s7I?rU2z1CZK;fror8n0@hUp5k^!A#QnzPZH@2a~X7`>J%v@qBm!DdV)Yf;m7VdL{Ad%3w6OLCOKLzN; zw$qe;L#o?U^%}UI6vu}j-lwL`Bl1flx78>yd#Wi)IMi|T!9?T7JnfIl1D!akmi){%>Lm62)YGgv@y@TfeNR4{Ln zsJea1-&)b7bbW`ckn#a@9eViS4r7f=NoXRY8Wb7v+)lL8w^Xl{?h|gQu4-Q5dUns;!A1(M@XZLVN36+cZ6A2b)u3%48l zf9U$I;nDQrYqK;kU$1W+a^ejOYiP!pPkXKE8Eu(zMjsCmlzAi%O+S%-tFm;@oF3=s z8b5LLP3O2B+PkZ(tv792Ufx*4Y4O&k8Ahu2TiL#q;?PbwEjQV1I7EI)ew%x_wsyyH zHr}6KKZ4tn3?@ZG_i0H&+)i%XM+0Rkd`5)LEw~Bj#V;t5}%qEg%FgOUvt!TQp zxOx@ap5H?Z>6*<5iNqiKUiYSE*XCz1&}VeWgK18`|NkT0wkF%uqV7QKbQJUDQ00~#RS{^4kr zdZc?tx>`$vUDvi{;fjqSrrLnHv?MZ)r-fA+rec&#F@NScsLOHk^|kNqW|^+Lmff+- z9ItGJ#vxOj9LFn%ir0oKZxQ*~w$n8$%ez}Q*~=ui_i{w*p_;Fi$EfE>?k|*=)RIXx zUe~nfjB^ta-Ta}<+Y`oO9QBR6b)w5Qa8E*01FQL(0W}}@mcFcdLD6oIu?wq)0MN<~ zKJ9qp$S&=RW-Ad4nPMXPLz{IQ)_aBQrwqB9PpXP~ZPFE_ZKbTH=m724lpyX2->Nc|UURS^h3uZ>+|vqQG*8IJmX$ zAQw0^;9O2F;mvS0S5=o$+M4x_y=3V=H%Ps=xwp#aHO0_M*L8C=*Qn6mJZQG`+oUD> z65XBn+dJFjqJHQzQ;2FdJ6*aisLc4YQWi2XxsEk+q$3__(`<5xADJz;qUsy7UYZyh z`=?*tzIMn7a1PWj-A6j4gI2#E5V^_9eFwEV2W+kFdosN*^abW+0`+8r!4 zZ=vDM9=dW~bmYlx@iBD7*I6kO9ABLd;_Z9gnZ9=}+`MN_Z8rXR9KbS$!e=jx28saM zfr9#vXLZ+NtfO)vy`~nBTE{x2ts&K*qVT=v>9!`` z6JP4L4cAT6S)NU3)offDa3_tuM$0T@mV!u+(kghK3Nc-DQj;x6Yf@yk(n&NKbHeiY zhH}RVI&$F<2j7-F(Sk7#dsnS&TYfvD_=~57E64Jv{-7W9)_nIj=G){CZ|n`*tg`#M z-!0PG_TzA}NnJjtceLPuH)ZQD>bdgW#}$NT+3s<53_-jA3*-IYx5*i%XOZIl4!(HK zEvtbqB*@Son8@PbTa@GgoChG5L_}~D&wgiBxC(N>eUx1aJBe~rsL*5Sc9+`6C$WaA<%Qc0bg{D|soUDdRACKxZ z29Ye~*>PqlRNjpz5}s+fut0?59dMXPNxPO-o7RK!R-BF~r=h zV;C8fU>X1-f`p17maXm~_+k2vCzdB4tdtyu(5Us3h{G{8@}a=h1aG~r!(@o^Yuf5@ z;70(17K2jG%#|QJ3RKhE$HfOHHlwEh08^q4bBl#tN3^ztky0^15AQa{Ug+EaW3w;{ z3IgH)pyW_%FT+EnU+M!kM>=yUAeOj+T909>52J9yG?IS1=*AF0d#HU)uR3u-o9#Wx zVqWOqB?|)xp{69$l{p}nU9DJ8Y$IdCoc0=$K_CDK#~&0Be(l%diPGD!)Bx~BYB+(z z6dLilXE(O8M&d{^x`3McX;uN z)8coo4Lastu9)D_?zTd6Q^g0QOr#_>N}A9b<4WONd7!Jy2j@T2=|Rnpw~5)y-IQYC zS^_-r#Rf#l%h?0i1EKs}=nF_6Z4iB$>L}wb%HBiV@ig;6XX_I`RN~SpPuOX~s4r1n z0?T(RH{k z^(_YSZF6@+3-Y$k=IgKgD%NH+<#WR$sILG;7j%K(KGN4MK0d|`MpGa+`dTx=la1C&Cvt<UB)vpvAd$ljFZRasa%0oOqq&YqA7!olA*Tn`# z>E7uiZ%LITA925!Vle%vFOf+rOeDkz%Z>t=ww3b52Uek|%Wme$kOnknkbz1vn4fA0 z4|8v5TFqAe@>aob6Q6Hx;(abI4s%cUsKP772BPcx`W-&n=1aLFbM<*;w71FtJvmz9 z91j|w6cGi5m8HbfiZQXdu8Kk$-+A?Tb^uhL6cyGQg{{@x5yzai21{zkwZsbBWN9y< z#+io{8O5Wafvse+wo`P{7;BicF~!s*^T7qLUA=}#OoB%S&oe-6O+V8Hk^lyjC@tEy zsc9{=R}FSp+X$9&Fr!0AVKn22KExW0yZ2mi-A^EKEp5xLTI!r*gq93Rt{@=8Ki}5E z#^JA&klCAf=9e6#NYPJE3gWJ|Bc`ZzLBBM}p?6Yh(=>E(t3&U_V{otHXc!(!X&MMj zZTm0|OFA{*Z<(hOq;Z39>8*Rm!a22ZE)BpJR~!c%P+o1cOB&%EVw@`*NgT1L;t*rI zuW0EvT21gaEg;mnu4{6f4RZ=oltJcKcxJNg=H}7$of4L!<C4 z&s1dvNyYAnhWk)){yA*cy0-GUqB#I*efCjU+|h)wwlPZcC?QF;%Uf&v!25`yY?3(S zoy0R290@_+2CbyX{Lt0gNzg7o8*dL@a(PG{nO4?iNL zRmVKh*C8gftxLI9oDfyTcP$T7jc~=>D1y2TLnCQl#7`682Q?RV&!Q!t_N!QPJDaka z@ACfu-1p=1|N>p+TT&*=7N=%U})EoxVBEVv3yI&2Q^$lIM;|lA8Hro&481Q z1$h46IG~<>PySnXug&jyEcPCeFw^$Nlb2iHJFJiXrfvPJ7B^oI{vuo83meQ75LfeO z`Lf&k_Ux18*RnB5wEkVbTQt+6UT8Xd+{=F8???Okwy`96I?Qb<1euZr`~H@l-E*pZ z`S*I_=)3;_s$HJdTF+5ATWzXZI)L(M4fauNzn9T3-d^hw-a=-CyQsiqV?iS`+6#kl z@o-*NPVcD*4{}>s>UwOtR;OhPnR;ZlkX>7{@(!G>ERaiYBVO4fbaey}a4JWFKQ;dV z%Aap;y-!=+9gNi>?cS$FX0@8`8`*Sk;t!CBqT0Ik$Yd8-VzP!wt}Jdru6ub{NNF|6%8JZ!TfT%f-+%XG zPoH*9=4}|Z#D-lu`pPfjX6DKEnvICm;k$w`>O10%>3DGlfwWpWQiS)`{{WKy{uf$m zQ{6GH%=WaomhnxL)J6dwzqMV56kT-s2)gTXUtJ5!VORC?7neA@)#~*c{v%#0{{W9@ zuv=MO%^+>GF1nvEE`%IjPdfQ3vg3;>PZ68xJ6VQSPpCpzTSM@C2yw>0TBv0&ae?r{ zX_P*ZunJ|4fCdqOBoI(gZ9Vm=?Opj4`dsdgc%2M_9Kz4rJ?i2;wZ9Z??d64ttEieSsuPVUV~h5p$f6s z_vaag4Uz)lI0KDEM*~8F7T(tJNdxB2W6PVV1x;r^iQaj*pw@lmm-u9pfsw2v27&I- z&<|)qiD+A!_;31Gl1azZNyP>syR{p8o2L-s2o=EdqTZGv4Zw39!meo^c#2lMP-J>o z%;q=5fP!bx?VC$%^$j(t9ywi4_?3A(BuP4SQZ_~w)WQRS{{RW0#=nVVLPybGl13Wg z?eQaqAq2l_P1U)8aDBUj&-Q&FpB^M2)4t&8U&D74?uh<`j-Vj^B5TLk5L$GnN-iTY zlTlO8h^j{+=$B-71Urvt-|bCIlNZ88ELp1TvcnrB)4B-Ynjg|kbot&MX>6z3W_(fWsy+k>=+lG`dcF1J33W77gjFY`979;!BB znv}r$DfBJ2-_ru;Wox;+ySjAF#qHg{X>+LV4dD9-HF%&6y|;Y#0w;B@a^VDFfR7AR z?jnpQ=5OWCb9}Y;BKx+xmr}OW^($K_F5|nim`@ROmeJfg-OpwnOMa$D4k5vMp4MxI zC(c~Y4P?q zN50esi@UWOX`|EMo2T&tW-*L=Ym|cLP@wiFvY#P#9j4N@{_@<{jJeeAG`Mf&vn^|z z6QyXKqbaC4TyVn$R!&psB&}3jTWZm{vF9B|z{rIF_;#Pd0idG-^Dgd>QR1ib8tq#) zp8nH!rk!ik)AvkNoS!ZG z-Fl31Mn$dkvRy*z`bn46Lq`AwR~Wn++T*L(hR-Xg4r5Wk(6r{m*l2yL*~QL;y}|zg zr$6Uq-zXobD(+kC}E{{W?Xos+%ov$WQ4-__b$v&C`;L92lsd>*O)0AuYf zj6HMCgZh|t8!0bq%%ITq03A0H0U{zj=0;9h_=WOTOw8Tt3c+L5?qPwkHbQFasEq;S z*vX|U!l*n?`I7DxorAlVtxI$n6|9$fYgkSu^5%D2F|P3jCIj@K?D>4(dTz6|Y~QBd zwd{*Ywsp;M%W-KVnC6cPyTJtgscW}(;nEXQ=NA$Q6{)R!C{Sb@M_0O%7G8WyK$>?& zPGXLs2E1s4Xm-Wj$qgLxgI-4fYs#Y(5-yvmR@hhRul>F#D_e8w81o$b{{Xy#BHntT zn^1}h;T)~5HLVD!t#}}{+T7qhqaWx(3$4ZJi=`!a7FM{_64v91s1-r29n9Qsg67rn zlRl>>T$tw1=TY$?lTh_ z(-@%*!L&YTED|>2-ae#Kd?VZeA=rT6DOzwf2rRd{q`9LKOVp5xNcNH&BdLpk^YB5| z?QN}=Hp6Q7xHX`h#)N_DJWmpXQ$B6}XS8jfvgO(PXIO2<ZOj=Wl0 za3KZb`A+=h!Sc)A%Qo(vMX>hEx}~~CRM*G zrdn$nP1T;EVW`?$Us!53au;d(j-N3G3yXKwmBb%36%{@w>nIt#P9A3j7i&#hrfY?ABVBaW!j8n?13z?Vnrs>JEg6Zf{xt z0Fey1pJKMoNSER>yS?MyUCG^h$GpA5)n}ht-dd^DZd)td=wL3nmOFcUJj9QOw~3*x z;YSB9#k*_n?}(lkXKVVIUdJ|r(%=XKiVWLY-LmPIaZ3cf3y}j|Z!Jw*BV5@7fgA|( zLFo_6r_7ax@U_v6#-hk~HiaZGYL+7p;`&rf5F3yO5Ww7~yh}=^?&Q4<)UUS2zqZ@0 z*xv?PoT2#Q$=!}xjua(wA^S^){{R@Fd3(gJ5Nw@wT$Aq?_dyg?N=2kWC6$tH5RsM= z1nJJP(Om*chk(@R&Vj(#fYFUGYJ@OGDly!UZhZFrJ%2p^JokUQ>)L(2uKT*LbI#|y zk7R0KO7ugfhJB|yq+>X9?O&#`uLq}!=J{LY#Km8|dj8q^?E^R8P#b=8sY&mg!Fcl5 z%GbNvj8R1~+k?tHgGpu&UN?e}s^0c(ZDjYac!dgMRhEpd0q}8q(%^XKv-cUqVKrtw8%gzCvg*^fza(I4{>!36&2pD%*tFc6#UU-& z*C7f*PR+5p$pQ%oJnnmR+i0MNw4HSW%LMz2>H1*D7d-`Z^%!ANd#;!G^7TpK*q_U6 zz@5^+1GP=-rGV#%AqRAZ5`E!-!tu*RJUc~Zi1C*5=v|K*b^4C>7hpm{7$9UJ zX?%H0En{`~G+LDjymg=0LIR@iW$zNPX7!dQ11TQ>_%PU+ zyh?R9z5=SLXRecJ39glVWc~ER3L0(8GXjj6J{HE*y%x6|C=)zRt5nji%kzUXm0U|Y zn$sbnV*X>V*<*(y?vDnQlY}#<-cR}T+swbPVvmT-OGp7NTqp#K0IV$Vd#sYypYMF%gJpeE- zPD6S4=_FDuSAx~6Y%RfL_fsrB$VwHq_jvFm4h9~9hdO?Seq7r8M>KfrE}d>m>cPdy zetCj-Ib>_w$MlP`|I>;Hx7cq+D8;mg+M-n(eYYR8^gTyAVz5+gXY%Pl@Zk()tFPLVT51{2f1K_px$ow&6okm|;5!Q( zHEea!YT&zNE>sr0KSo!092Gc?KyA2!G5ghe0})qa!opbEL36~6x3}5jLz2XM(|<%H zPET*T_9Yl2tg8~J|D9rQU;`U1d$PBrbnFsVB?K7{6atG9}%|8+0WoL9g%u$#vUb6t~#;T z4eHy)*PDp8-(`J^3@jVPQQyF%5nlc7K`h9kKb0010{Yt;(sMYgnWw^PC(1$OY|LJr z^6kJx2#14p&j!`~w+!{$nRMXtG}HJ|@sH-(r*FA4>jy=cFss`T9{aBBl;b#Rn0<=A^Aq zh$H_1dgCldT*t3`XM7k)h?gbt9U-W^4U6i(`z}uFrJB3!{FR$|)#ExENE2Jrb1WVm z9fzRyzIcF;fCnjQ3rU)qn@O`97q|oT!x@CuJ*ubEe;i=P=Vp{_iK0m7dG>F8G8%gd z9SWJLNK>OfKVOfenFIB^rYfCz&A1cUcNY-j3~lzp8BW&GdKjj)3x~{yEu9@*5z{}! zBR29?rv?+Nikq%K|0C)4U4C0B9 zUCuyB%PcT%Mh%enxu~}Fnp!%rnNX@Nz0G@x?L2+|CZrWrK>>1D8jHF?n& zbFh4M!zumEmd&*|aJV=pFeJlm33EuBRdil9t+*1Mp^8zocFXbfkTkH#k zr42JB8)_Nihnab%kTyzImjR2QRs1e-B@lD#X8p&DJm%yoDSMFBx)bF+9*z+iy`>Ij znt*0839*Re5(|QHu1pqNO@#o+0aS=jFU+sAT@wL0A{HhhtX4^6e-wFk=BGwTmpQm8=hYv1&iQeBkQma7yEg z@3QwizYrR;j!@JUxyNC(|G3OB_=YW!hBEyeg?E@k$C!wUGKVhJM1|tAnG*{b7sjOPg6H|OrGOe5t-AXZr8Pq zhpWd_>4xFp94a$n0pT=S3sGWV_t&SUB3o>)MVZ0hxqNF~M26Sk6SWreYP!EqgIrf6 zWz`d4(5(RjiKH7qjE#M1c|(+_crKWckyq#GcML|pQg<89g?fLMD(SgNHoIA93C{ogBSkFnXA@WBH0I^J?go z?4{ss8}9!o=z|OiJBHJSfpj$Ab>*f1u7SQ zpp|Q6qxkYcoP1S8zoMryl}gkr(R^8Kr|%xdW#2i!gCh0ymbA@TZtu3~4`Gk5B;&;e z?@t=+;mmK%*Cz@HE|=MGXOqMm^xRR$NU52b34kd~uW|M$2l1YXKfj^^GvH?}=YEuv zWrF%;nC$b9h>PLK;nxkK;D_ZF;Pv^RbFM!_K7X1`Wgw@HP$-hDRoeBv>OLda{v_Wj zs#y)Ral0ex{4aS%Yd6`w@0Oft%p09H!S?lJt`{Aw5(Xl2csHqBY(g{p{WfUP=!f3T z`rw{ZFiRRt;Fr&^L}r7!b@75w&mb0Wn32s)%*~-%aK|UFGSpVyC)5#|h$vhJE{JKD z{YllV1mFN*Q@_d-u$+vDmas6l#1458Wtc!gZj_5@y#7Mlm!7C?%s-+BQ?{)sT~wC= zF-Zr=X7;-qMTAw9KgZm&e4cV!v`}`@Nuw%Wu8tVV&w8gKg1np%MMg_<0L#9&@^yYG zm1Lxd%00jTk{fKQ*9`Zq@Np4&FmDfXm=Awyog5J^j>G7qOrmC(Tc*pSzO5P1QJR`L zq*ow=yjPb})DBiddI#y~{Ab=*if)+UX>aOVI9p?UaAX9wp$gCRa|wO&ZcA3~K)UNOw{t1-_qKq7 zP4m4V)jd||J2{zoyJwJ`MCs5}WsgCqndK<_U^|G`H zAdi(s7H{6W5J;eT@wlW~j`auQwbQE*ozB3*w$@;pItFG)>jb1!=qCjRBmLNY zv|LfXpejBT1IM=q=HXmIihVB>MS@#{3Ft(YHp<1kUVz_|QQ;>lgWu!xq>|DPj)^5{ zz;D)YiddD&^VxH6Oh!5kFOXi+J~)lm0!}n%P`p5;I;^kXy{K#{0Qwxxvc8D*oVx*a z8pD3)EnUoeA2ID%d*RuklM9?zsVUeZK@ySg#mUhDMg&;;s}&^GprQFT20S%T6~yMq zg`ZiRvz&0_jW?!+ez=xw)aUglj+h1Ai?`uj)!U?CLCwKcnz$MuEAl5Ncw@?ij^ppq zvIS}+7_lDhF|6MAOSZN}pE^@>m7{pw*UmudzkMbY5&1=yw-@p>4353N40~EK%Mf8VxcZA#XE{>V5hy zRr)|l`#XpJ{neJvh0aAqYD1Q*wN6Flu6~IY>5Oa+S6d9wui1L04mkS7(v>sdH2!;i zYK6_OS<=(`^S$79*NzVNn`s=Rud{i`6lN~Hc|qzdZPye^rb*#Y@09ssq&p#iYhb{{ z2+ej8?KjuZ209wQIyo7<1ej@Ze5GvCWZLDmT0upwlS&BKz6kFvu4?cwoB$|Hkp0#e z)uej>O!__QC8}pGqZOXg=C~=iJ-|O|u1idsPn7N;>t%-wRtH0)J69&+!*(-hwy!_q zFiCwG>o53=m)b_hOCSSGeI}z>tL}WjF)hfw%@39SO`S4L9WptsVw7u3n5`N-4q5qQ z=Xc9&=_5@pKf2r$=x=yzs^q6hsP%98Qn3j{PR8}3eXhR7{IPxQyGky}r&1e0NtBT9 z%cGJ!#8UPVS&wWIP2ui# zU$}{vB*gOD{qs85WK7q^dNT{WO0~-Amf_N(S@Ybfpj24^NI!dqfF5TZV6qJhQo0)P z(Il6#ZWmQQCZD6v;hamZ*0koB`b3f!}CdZ;{%)AFoKLG&z4dR{NiQdlQ5>FFU37Wvbz+Et(R2KaDn( z3Gn)9V2vHu{MDD;Ur8AB{0O!#%RNesQL{NXiGaZP<5U&l2x#Hhnh9UQqic;0mW7VK zMX#N?Ox2G~UWLi!A9u5~tyK8k1tHX8Y>%)8)l=;8+6xiOX<@RFl6~m#&<5F)wPk;G6 zQ>Lbe@=fJ}Seii_n-ag8U1`=ouOVUP01z`IdG>lXQF8D-5c0yK*MV*yd zWEL{8T(4irt4&{_wWwCs4o0cQECB=}=AOi5v#_%Z6DKm|A;(yB8lI1CeSUkR^g(7H z^YN53O%(VoXL4- zVcp?pnI(1A*k~fJiS0Yn!CXmp3FSqNih}?W%c{3ysv_k$P7mkX_aAn99q7%1zI$Uz zTY2|a?2N^-wraHLv*1Z}XlFZEK2v3k>k0h9l4;9Y`o65>x;t(00NBRC`BlfRk#nch z5&wQu0n`UwR1TOkd_dqB%htk^HpQysXcT$xePN_wJlKYMD9{ zbmcOhlGYe9QDh>vFDqB?(^0cUT<83(Kbu$kWfg3D>k&I{q{cL!EXDl{tkek2Eh_0_ zex>*EA?OF(_ZlD7_cPENlCkIIM%hs;+5a{fYk|$EO;RP@bf*e0>$ETR)ceR*(X}q)X%)9_qk=QkG6n~ISrfr>n0%Op--a^ z>5z(~apOKnE4#)JT=pO!sg_XWAwTS#~g|5@9j@8sM?N zUum=!8w(!#)Qn|#t3$vbI4P2L{-818zh`aq@SX{~2PM@+{P(SBwg=t$X%!r7KPbqYy_HW z*w~VR>vKgH$wWbgP-|Y*iW4Xm(AZ~%yjV8lD6MwPh7T1 zI)8>yzs~F-pfX(l%?_FXjy@S0gtjZYii>8tv&OiR+IpU*Wsd)J}E-)c|kdr@&qk9FvRkbI*8EpPT)~ z4rD#aZPx|rpSUJ}Rtde2TcCXR_W_lji8Q2e?YOY133{nx>iQiJB%#voef(uyNG$pI zLa9fz>UL#z%%+$lqKp5!dK%bVROFHoDDWG_U*4Xqp1QgGX!0kgyLIBUSa<6Hw71m# zznMffbq3Edf0X!!w{j7Ud>K@uu0*N6(}8^SK!~{8<4~W5=EqwWw+G?l&QJC5w`qEl zSY;n4z?H`YaLbJAx4+7jlBi0hsW?qb<~EBmhZ{J=g7uNF`Z|5YTJfjUZr)WTL8NKW z1rPclO?A3w_&Y^Qigg6Y&ngTLe(xfh|Cel0_^-~Hjyeg^{q#GYt0+U7k%DnJLQLO_1nCu zGlQs5JMc^SQ=H}iy})M@{>AN+RS!Ehx@YJfOJg-*W`!(D!BZz^V5#l(}LxS*HgIr)3<(( zAaxgVV|5ZE*d^?x@Rsa!*OZn~hFhi53Z@pX>h2U4Uf&`V4FTatmfbSQ`4N@o*>I|! zkh#1dD)$`>kVX?2zdmM1K}qt6r#y}Ik?``SQ*xZ6TuPUWqa>*`6sf99{b%+=T4LJ6 zvCkwOqEUFNX*UdIccaA4VvSW|_ttH6>$sHU)Xc@~%@2Ywe}cf&4At~OE3CEQ;T3Vy zLwapZMUN{~*3JTGk0sXwp9d4XBqq@hapW-Nu8dWHuM|&5)>jkdP*kcejmh@H=qjCtC37o8ii8 zzb-BAFxEb5d*SHnp>aY-8nKie^1;DM9?aV@Fh9?_^lk_Xk^kn1q!BGO$}y36vOMd} zn_bx1kjmAXDyp$K!rT&G@ahhv$YNOv_Q$e1{l9g>~%>{$;`DG_0p_|fZDu;i{DAexMPJQCPzBDDSN>#AMFKJ`5 zP*=ag7945|BLhIuQ`LBWt{-dVzC)l(w79UU#H$@Gl5#3rcK5={)%Nk=Oa%!xiLf!h z*KNM#I5zX7OZ|iipd){$x-|-|Dss)CNB6{G6HgY`ISQ(Hp>+6Vxf74Q9-gVg*Y8y% zVNP}OYR4_k&Hm1-?NDk-r+%1`B{nB41!9t&{1o2f@axmZ*ED*m4?s1`)aatI-1Z7kSa~P#ZG2n@?+S>$b zyFuisK=%3Ks=wDqeB00L*er-XVR~7}%L~0^@@J^bO;vnGM@REsyzP~mlYp<`OtLf& z7XDEhGRGhfSphA(N)B|EwRt!Bp0Y*2?2(YAGGx_G)DUkzv%hzc}?7g?NQjqa|UH$Tkby?+~mYpJd5M5##nDz1|l|Ck&Mlkb!=Xq+Zegg{4lKy zq2VEN4`Qj@Q~7U1hAjt5gcH~2{evcaT7S1KOV<@|aE@*<$|1JwJkTbR8Fve4mdII& zyJ?ptv)fXTEQY(3z6&hau4G+rIE_?UT7Cku%HHeNT;{FUwhe>TH}OXWBmbR*TB0=9B#pz~A<~i3TZWxJz-f(P1R;sgpDJUtJNZ67_CoXNx;NPcX7J zT+tuedU@x?0FouC4isY=U6_v3%9 z2gC8R-2@*JeQ>cDB*5B)d+?xOnD9)F(w1XXt0>&X6Nx?eXA(`#=$b#N6QbJH%Fxa%Vg}p|Kv@sa=HcthSuu>t{3&GBx{7wavt~MA#)GD z+;lN`cxQ@ev7irI-cZz86HOgC*pTSRe=rH;M#}l_QlPBx+ky}f)La?glK^Db zJV)~T7KVeQ{AU#}LYZHjrAtAwD(?L^URua;8V+ELJP#>#dO9*0@u{EresOA2jZZXr z-kS+kxX($6|27ajPb0EKf8IUB?)AXzaP?(#P_Q4y^$0C8r2ftl)NtO6@I2+3_i$-! z?aTof#%p@L7{-5dOVu?8=NIo7Cf0Us`2FTKZ|mh>y6nUh{q12V?;~QcK!u;MidjU% z24pO&xtb?;;UASjOLWPc{ovGKNdr`306&w3D&eX%s;#^fp(KdOUD;suUo__a9kIHhgl8I}8w`CF4N?#`aCvkndCl`KngDvU>hcCa(I zgA0|`YDrO8bCF4?SerUwl#HINgi5G<+Z5jTFk?0^6+X1CPTX1vNF*vIM5=)-BE0~0 z!arouo$%5M;v@RM%QxYXm9N_yxtlK zog{asO8oh?u%w z5ZZZo({QL%;iCOe_}9^2Ao&1~6Yo&!|2wQ8)|@vy<@PE2^p8_&l2;y|mBGdv%}>?; z?+p66R!kz}z&IS{kv$G%;&Jy@oKZ+DZR~2RUb0v|M;x2_yeQ2x+`X$~hW{{@l&T_0 zm#Srgoh`Lm5w1V$)Ia}ka-hXB#Sxgh*KnV_4*?AXx4iTpo$ORz6^P`W^w*`ypM6Me8?Sf{y7D4GZanO zy)~un7Y&ROJ4^8?qwNVUo-=A*o?PNU&{@*Tn-b_$j zr6}CSlmI>pSTy}}&|Db1&ZP)&My@FrfoyZQ!3#;}kX}R1D z@V(T7V%q5bvNV?hJ0e4TO3l>+Pb|%RjuUlOb2yGaO+5DUju8Zy>qagLZhmpV0ic1v z#NWsoS8kuyh^OKeS368g;u5V z#|3`UH&=ZT2M1mkUr*T^y2eTxLJr^#X&rWQ#VZtFzP6#=HE-t_y>Itnq{@a2p8>Ny z*w2K>f!;Tnix7$pMlTsksK3ely98yk!^U0;!ly{z^=4^M{OliI`U*b%CXR2wC^Lo@KE=?$Dd^43;5`1ac1sL7- z?~?B+=6RmVaJ!-N`PPuhh{jqL$%hu3Oe4zRWX_(%D?SgR$nI6={wjJ{iQnS~8h=er zi9g+@`P5JCayJgErSE0V#N zX!0TgA%mnuhgrW)K~Ik`4(93rdQbG&E;`P)2lP*_dwVEf6F zVMgkh3Qo1OjV!bNVa$$KMbGDp?*lVrY-)86Tg2cYP>S4goB%zC*4H zg9DyU#-CoPRB=W!v$2eqP}Y%_HabRa;Jm7Eyuglz?Q}A48OJJDoXR@tUDWywYYrRJ zXJNG=Iw&3K6KJGH-Di57gkCgnd4&IhUi^BHA}s+-U$c~G6_|L{Ii3k0Z?4476~X;D zr;L}!#~OOs3>y{-UMsm!)3SK@?bLcOX&#y$(j2VWHtj((7fg3CJ(Lf6DxHg$?*Rp* z?Q1iu?g@PDKOP@@8~|DTN0d*6^$mghB6JKPpW!;*hJNXJ<3YJfa{KF3 zcC$urw;a@H>L=QOj(_hJX+}v>9{S#S_`uRJ@*mL%TQaS27w~hXov&*Dr9xorf5Lr+ z{NWCVf>zPpDh_W~V80##O7q@`^dgDa>XZd(LHT*baANwnM6US{&i*%)?n$!iK!Wv; zcinN}oL=ySqiVUXe?)>6hYw+pmO39^BWG}F#3naM#_D(RkA3c?4(a}~bKhEgOMJ~v zc3VtXyDBU#oDUXOoF|%QfWLh@X7i983$2ZaC@T|F4vB{efc`Hz7+Y+kgUiV#=_P2KK#^Vw(m=yV^kVl>VXK%x245aBd(r~l&(R6UMBmi`7x_~X`LUl@Ss*lcZcTA)+oc4qq5JrNZP_N6E6~N z$+{D6HIKI?&>P_8T4RDXI&WZU(X=S78U+mCz2kD1gn#2Ms{#3V*R_N>Dug{@>?Z8( zU(f_l0URB~DIRF)DU;b5L(s&P&AGxUQO1gqrXggeJVgGhB{!*}gaym$u@Q7dA*3ix zt-u^Fe+rYfM}&&wk1u*U?K`?_+5$t`GZkp~inD}Ua_QLaUvuvtxv5?gs;yO8sx0~* z0w*#pCKddaj2ksgwf2_Ku{hBMukS;&NEiym1w&-1Y~+-mmr$3#KZ(>6zhv6nj*Tq~ zW4()jg|K?Mt!$-V4ZzC=H7#)4a_vpjNTB2Q6VflG!V6K~tUKqrmKG!LLU@^5haR}V z!sa%v^e%h#Ls@iv)Av6%y7+(`*;~Apx?M|}q zWr>v%pWpJ9-KQ<2KoQ3uqK76!vV8U~Dq_`$HIUB)9c7#k>Xw}(L?!-rpPqqK>TEeg5R+~2MB+GWg%ewn^)v4}h z-qT`v@Fsqnwdg4#5pb zHyq5NFSib5usrfG{O>wIQ@d`YE~PT{!_A0wq?b`**>@KSJ!lf~rpS>DMT>y2ajV^e zJUjc;<(D?m>@^`52@r()_P#YGAB5gT7{p%<><8U3W z_LsL81ryk}?_DElf|-9Mp;OG!81pKS(qNM{hw7sqN1;rrw+#_B57L zQPMLi7E`Jz7QA6i1Cp*;1q^S$zc_YYF&fnLN*JdV6DYc!GT3sbfn2{V)y7glV9i9I zxQFcV?f*75mTpuc^&drybCpYmEeB1Thu z0Hd6!ut&QeZ+ z`j6=9TQIcA03N!z%tqw2nd4OF;1Fa*ecsb(;BFjUV;F*1lm@)@W!C_yfhUbQE60@? zv4OHLKN#;ei*8*Hktb#rjpo(I>!c(B!l}fkU(GO5w5moNc3GslTea2Op0IAWz?wRz zj?US|yvE#L4>{f@jo3Wfl%I8wsfS_5)CQXiQb8y!j)0@PkzDS_!d#dAG;d5Om7gS{ zQ$94TJjYZdPh%QKN+d6`=%*}#rOI&w=Gy0Ue^5%LzCYm%PHJKok`j#HFo@ymRLfM> zsje5vPK_!XN=(dH3dyMEern)joff2{jg5gs7)M^2eba%{1JhLZaL6Mw4Q-+!dKOjN zFGTCD=b@WES0O4o(0@eV47c#fDj}JRa>K3y9C3mhfw_84j7p{=(OR3Qdam!~N@cCO zmF3gNE|*UJ=95f?5`r<)JMyiZofR0|4qRM2)_0D<`?`bqGSi6PA87Y%9!44Y|UHGG*b+WMQbj8g?<#@RQ+Uf zumo{BW}JO@S%(04-;~NxO#9aT32B*z)uq5L?Hh50;wRFi;pHZy0iYqdLD@N9-5&dj zj+C}+W#{qonhB)OA$quEcxCh6g4V`&{6Z&`-LF*?r>zcYw)MKxwa=>={f{WGvia+; zAjnT`mvdg%w&%n3(v;damU%y-zyBi=Mw|M$AQD_;!aOazROjr$C&GNCa~tAAa?oiX zD}beH)bFE6<@paKlY5)?S3g3HWmK2O(N{&Fp9PhtbZvxK?-4TeP(N7}E#o=wZg%(R z5@%^tns*mp;{W{9{$PBquQ{EeZMYz#e6YgT%&|Qmc>nd`c_;!0`z2w*tZIh-3zA%G z>uPWOytJrO)(OzRGkPq^@^Lg*1a)Ue`2?#V+0nBgw|{Q80-2JjKx6#u@Ok(5CuT(R zP-PRq$NTr_DK0{8EIv0lxDO=z(b8GE9;9Hotr6#N1gZkP?L~jofwXl5o&H4f0h4er zE4d_C_AhZ~X5$^87tJT~iB5F6ziJFRQ3RHTUGzSXn@Ft9sK0|um`Ok~j6AM?U~q&f zM2dGI2`|z)pov>;?_FSMCPe`RDrUM?<9s;Sms$AJQG{`3?%Pp{UeEKL+0n zY0Y4*TG-{T)ygtVi|EMtUFaqP)?eVnQ5STQKxe}X%uK!|NjA@Hi_9XbSE zu|4U0qU{RHAe4zKOFi05m=54&&l=QTRoqnk)x3Igj!T|(9U_xy*&Sz$BWR_5qKWCJ z`N&H^ukEQ)N=a5F86i2wqG?{N-?0ipIOjgl_9IbdUMF?-XobhOK?axLs0xVJZDaP z{kKTo3rDx;qQJ;dL61~?D-6K3DQDe~mpciw*hUF7$LyWp#>+TIhkCUt<7Li1o|~tp3jPA<5zXUcF%Z`LBWoTh+NG_-+#yp&%W?`5|&kNi^FkSVT0x}mR8UCyR#T$&UoZuaJ_K$c!lS!YJ7;+>wZH=m&(38eVVbYXbv7#i4T z17f0hFV{GI@`Ac5k-yw9wRupJKc=?V0=lQ-Bt2eIYPy164CXD2F}n*X-c`K-o+i?I z;XB&hbJk0U=MiCxGF9MhsA>F&*Zpj(#IMZ$dRh0sM6`;gMI;;k)W-$|YB4!#-k{)8 zS!@-0X&v=T5(}N zsO}3@Kvh;%vwNXLkv|H#wqXBVNJuQOUEX8yoL5Hyf3^6GjxyU?`x8B2rhYcycq-+A zPHN$T&rwn923a38mv4hZI_4Sx6q!OoiTvq_V@nHmVwK$#@e}6^N0MBv2%W~5uVzkQ z?_VmU#znT_MIg!=ErMW-UBE0?@Rz2=Wz~XKwixtO+C0I;{Fg^TbV!XUtFaRgv#B(Wg|8^z@5NL$rh^eHc>fDlj_uH1<>T zq>1$S4~bXNuVCbc@LL3oGTb&RHuhWd^?_KTZC--UC^s{aSk=LRWd=7V#?T{6pL~P+rD^)vRmz6-Wma(}c`$(url3z+nr#P4maW*a|q_gWkwc8*<1-}$sSj)hNF@mO=`iwB9LVo}A6M$5?V&HcW(W5{;rB6{#4 z!l6Fv#df4GQfFrb&^Q{%o*-G`<3?JeR)7#yiYV0tpO56^R`p+w*cTf zKP`JA8LNggo(>U2UbSJBEJAM*_=oZ@!f|tv z(Q$+jng>YJVbt+h9Uhu`F0kAPU^eMiD|UbgV6^+@Z|wks zkmbB_8tD2lyE4?SP9R1c;$B4(TY)#ZG1L;cLbii7;+5!fB`9|b`?E8@$4R#A)^4sAJ29p{Ve57I~yI;91zBg?c zAX-!YVZqXHm4`QaYQ!?>%1CuLE7r@W$?e{nz}FGm+gfu}q**i?o|{6|dxUR20Z603 zrYgXREOS|xHIMCEbg3UoLPH>FG)@~cj>$g}i$^a6Ue6e~o4tGQ6g^AyKf|E7iP<)5 z#$9!>y{WHG=%7uC)4Nss;QzmY3@|7RwNrUVO{UjBB2#Xfq4>(qFbD5IGlQ;+ z%r+`+^Vw>Df@K|cwbLZcZ1#`nn8_PB#g4IZAY=VV4M4c zwWdVtL}h6R`zyDW7uz>P7a@OeiQTFcsNs`eb+YP@E2eWqiUy{h?6rQ`{D{wEkj#L~ z>10w=oN$e8d)Pl=`LiPZ){?pmBxf@Ih{yO&cOn#`LcAvKs1(-{+`cIPRXSP>vewS_LfijTzW?C{>HPg(+&!eF8`e6{o@F zpaTf3Rv5cLQIL-tIafN~!S6}S`X8Fr^H2q$`jYdU;F{nbz^kDuKbz^F03*sKJH}?z zY6BGRHTbcURZY#>U$pM2*UOxa(*Chfh1h{tIt$4ub*n!os*O(-?3^!_Q1=SLD)21N z7x6RQ>agt`K;s6_^vn&o!f;qE|V7+vI5mzXp@ODetavSuOkuX}VJ{EQ@R; zV`Y!c%g4N_q3)PTN|4{a6VW*1_XNE}WAe&{$#;3$BBQGEqv_KBVeGA=+6un4;ovQW zK#LZFw0J2_AW#Se3KZ8u@fIj@LT`<_1n zIU{G!oSm6HduBfm`iz1Y0z&YKOL^Kc^Ara*cR1kat3PRCV|O9F&-?5_bpHFgMnv&f^#y1j+I&~?NZhC_i~WjW+eitkbjel|^tBT&r5XCB!xAI93iHCUq_ z1fR~_t?02%(RiA?1sMsMNEiCZG*e=z%7<6N5rddu5#J>#cA-6d-nknoE~7E#ax6Nr zeX!&?z?MUf6TYAxLe1i@osROiGl~vG%g_+0>&cuqSHB*Ws{J$V4-)bKgVZe-mp{n< z5n;-DN)160^l@#9iK=BBE5azxy66XvO{0F@!VOgj^(qhgOUz0w_Di>FY@H)|7-L_4 zMvmY`&DYi;aM#7C=PmWUcwT;~2M$WO^`({6#+3i*zgak&A!}g&>pX-}MI%zn4 zVjLEREo~)q%-$Zk83Ypyh@EnODPA&oDAJiX8?Z`=m1|oeYYDV6mE_$}Kj#pX-)h(F zyGx!H{;W6e9FJ!mCWheSM|xoR>Pgb3Z#m@6pKHHz^VJUR6fL!{W7)<3uG0E(OO2dr zdkh@UZs{NoPRx$3crp(IeUXYE!2waPCngJ|Pg8F?637QFU*}9;2fr()VjD`PgLzdU zy^GzvLMMUkVYDz_QI`8;$EvCQDSoVnN|>S*jFn>EkL!lIofBy0_F0}2q}!LrUw<(! z_sp)EA98`k{im+T%oq=5QGVMa%lK`UMrM76}2Ug(bJtiF#-dS5#;(DSrGPT*(Q{{h3iY! zZB(^ZR>u?Wj!qtvu!cmE&VJmGHGb4Kcs^@QSyMImZ6YKv{H+7^l%PMZ8bHXjv1lPs zQ8l()8s7t3YLgdI!Rx8s(|XR#KN`eMUjCTT5|Fm*S2N3{^f^ z(1Jwki`UWgSoBjr`)59zS8tD_9EREbM6#&yG^-5qTsd})n+g#%9{uZX&{6^%HD)H?OQhu0((Xdecu+PBK6Mc z8A1aq0J2``92oSbqd1&K?&i(l?1gIK zEGYgxTpC5Nc-2%A2LYSf8zoX>gkgTd9=J47^;aGN>()3h6R^jwF)JA8P4nr5VgIZh z|7k8T>hgGp`hiW~@P0YD_2l&|?0gA>TdyF`8Dl~*A>ZlNP;o_<_tSs0XY|_TtU5sp z@3)ZZN7$B&quVoKofhhINf%9_1&z;yJ8~7RXBMUfO6uKR4Ct6`3w0KN)RUWAhcSdx zx}H)=HWscW!M4-jTkA}?@j~YdiDJMluBiY_{SAw)yj3%0nqGL zOFgo)r_CD@PItvxeBl2^ilVO5mYv>%!5;F4Dfu?rZT=QAX)Vo8uPtfp^dl18LTi(p zT1SmR&@AyS=7?5vE^hn+pfmwM*zB>*F)*HF!Sb{C<$PCq4b9!;TkvK2;SOgl*N7kT zRn>W-dMeH!j@+@|r{a9G4m=@f%o4{!xUv*O?OR$59mw&Tkl0cT(W;?2mFPLm!USor zRhNaBC~C8H$+t)wM?DnQ#{+Uk8$J+KeEZgxxCArA)0i#@*GW5w0`R@GmbRw3t1b+t zh^zE?>RUXeyvg=_s|3tTEF%5%ZR&cxFzJr{=j^ZcA$Ydun|aX405Im+o0n6vp-nH% z`a7t<7!Dsiv&Kt->>y+LVZVENjVxGWeyvDtnhAw-7cVhqaYA3oycqSf*P3PL_H`Nvm=$m+R!_a=M`hjZ@4-U04Ab!v6RoD zcc2+ckk?}bR+Wd7KPTBV;`MjiY{ zNyXvg+$ncpBlVe)fk-s_0&;MOu4vCJXenv}Z;!e};5ox&M z>SE`@R2C^$ssHB*EoA%qAuOYN5%Xr@>Nl`d#*4&1#o}&%I{TtKavPc{JgpR3pEZf45ov+HGr3}$bZEasy=8nJ~@pzUhL{15>e&=rp#TL+IDJZ>x01ArV*nk>1P!0;jfLtFgMx` z2tbnTnPs3DjqZ&L?Oq~(#-P}8Nv<3%^nIy3$fnTKT&$tRp4rBMB?Yrf!rJ&G8a!{ESC}5)!A-( z;vdz|r)%?4^F#f-(hc6e_n4+x5vQNu=&7(*#B}$2IQ+Rx9aBzrDWfP7=7%J0Au>jg048Am{p@*qmq{|raPIqQ-1s- zl6L9fO4j)DVQB2gi8`flSE9%=(J|#6`z*-D`KwJ=tNs(Ns>y5@R=&~^1FF0uAqwGx zq2d~2tD(@skKGo6ywS#_#b#)6%81|;I_DM6PaD;+`AMf&jauv*Bm7nsN4&zK(e{~U zwbhXq4FNr9^t`trY`i#lPjOTBaAi_2M@F~ugZ;BKCSW9aYn-~;9yNn(NM#(SH{-%T z#}ij{=AEkQLa`0dw)SvpI z=TheN6*C!? zlexMk{{X+iopknn;gz=2&O1t}ss%R#;IcViVldlmDhpV+mpuVSlxdn5B&kRUuSFTh zFh{u)k=(dZHupt+`jomueZzNVjhD24=H8Vm&(=s_cTV3*vjEpX7A1JC5_Xfvn zif7tg=emA4KqGhSLg49IjN8p+Hi8WM1j7V_Ig6;SuI`%^#9FKx+H9HU8|lJ)flS2i zx1glf`E1($Y>1p>xaQJjOSne$ymL1&KG;Gi?U#p>_5?q5sZ;T8g)H37in^PlC`6~7|~yX9gRtzL~4m=Jp4;1E!F{KSl&*M(n0 zkz$Wb#E9cVQaXx2_|2BLg7qoG@YT0v*m2DiS2C>n6!l(-{ z9)9Pw#rE6mq*_rwiBk$4P5XozRf)kJJpPAz;gD~`i`3x_iaJR))}c)5Vd6AxOY+7JordeShqS@vwubl8z4a_1MhOdSFphF}c4$RsMctCs9o=64|^F%<(SnYX_P{Q9vdhTQk(VC7vBT4GC!kN%>q7bRIwWvHz-d)u*Lh>293fOK&q0 zTOI$d^s!&Reb=AB^fyqFj28z|iEb7s1ncmR0=~rAGMVz+6rF!=!Sm^$JNfCR{;M_L zM#www0)kq&E%ovpp_3Hd=P@qGRPk!7^LQJUxDMzIt0FIrYj&;L>V|NhK)G@4CW2px z6R{(@;Op&7ZukKGg||Mue>cJtE>dwMI)ncNik&BLk+$}|;wrO{?gCK+eVY12Abdpr z`&hjz`*NUdr|`x#h3a2`X&xxagH>LEt~HsECQk-Anq36G^3K2XU>4xso@_43V7j1K zVfi)9MO-Xz>Qk|1Wf9syJ%$h z6NT?{V6@D3dB@|{wP00R2lm)=f54qL(c7sxnc11+<PFh1OUaYb3TNN8bbMhuw< zG9V4C_A~%%_d*GD7X*oUAid+wmSh=GA9?zv9OC74of?=oNZsq~G#%bsEOORbjR}3_il)2@|U)Q%HCpPh7AWD_xvZ$`9@g#H1jSU5BTY11=#Yb6McUc|#u4IktSdc9# zk#X{Y*-(AYOp-5jDXJa!avF8SdXj z$4R@kY)^jT9G`8DKCEyfYHo1@MS@{kYY5WX))@`RZIXyyYwOx}vT%AhycsQFb4U@s zMFGtxVJ61Z8T#71N)?f~XOH0Y6X-;r!;^{cr~xw;ir9YL`>gA)E+TvC|D8jDw?7FG z;F8qx>g^P*DWl(->4Lne-a3t(Zx}g6`kcbR8*pSr zU;m_zatsEMBEIOl40g?$vh)|MQ zaD>nUpUDSz?`c*=gU_a4n4h|k>K$WY(w)Z2$t|CSVxFaiI5L_^h(-s7w7+nq|>6PypjA;urK_no7tlsf^^#H#_U*(@FJ zXWgRfwFz_uEzit(_OEH&=cNP|)it^Nw0+6ZZp#0t$A2j^dYC=`A*-7x>qU>|MNEQ$ zCh85C#&e&}_z^>&dWS;q*LSkdXtRU9IXL{)qO9M;x{>=~>CVmFeb7ettvRV1{F9)< za!pD|6!T^Xjmb6~2PA(V$Rh*O(5KIw=l1&sw`AkeaU7)QdQi06{-dn+XTW(F$S+kM<~$`47f)j3%uX#wc{2<}k5AZlL)Uj(=?Cv-1A}0uVQk%a06{{4SK2JM5Md zzs>R;iE}Wi4ZC_PoFZGSqYfTfaga_E!#B~!M|9s8>Ho*C4Cm&T>#;W0%6GVyiyNpX zG^4=0{W1n4N5_xBWp%lC5?w1k9?5YqKbG6yjLQG2r`Y2XcG1@Q6j{xPhcEua`=%qj zOkqfvcDY7cFJt+(kqoSK zut+pcSsYHA=g~3KElr!>AI}@{OzZtEvE^bBn(V{;$25dDs^xzw+)P8w2FP`LP;6%K3!pg)ymLF{jyLXA(|Io8l%Lvh z4`mVpPlNx?tbR6NC%?rws?_*loYvZa+RVQ=q&HL&T7Rbb2$Z)%`KiUfFEWhc*sfUZ z^UTX)vj04Y`JusQOyOnr6W1M-IDhr%_fRhj4sWW@t{kebnldpu%5naYLJk@c9z&YI ztiRxMpDOxBYk&U>7(sQs6_XLv&VH~s&zd!5d2)gs%t{HdvexHJDC1t}o)(o7A=?EIo&k_g+Va0k_+WC%c2 zZT@RrQ=<&n-@7s;Vq#(mRGRyY=0!>am@L&GIcu7ul8%N(cEZFN=M7 zdyRe$e=|qcGh$Dm%wd77G!W6s=G1b_IZClVX-BsR7c7=HMJ~>kyXbyC>s!jQ9*{LM z{1HYwF_ui~UTf3kB-iDv;WN)3y!L14j$v^xh0JXyHf}x&U)4&lsd|)eccpRO@V&5J z1jfhgr=Px;p2Vri=!@Kj#d*#b2kfyaj1GL?iY~;2`)p}b3S zq1|~g(7|QV@)>}P{xH++Od*VY66oqbHn71GIkR&>0=s@9Wx+m_zbp}VRe?Y8kRVABNE+fzGlpXuJ@)zRN$ z%F$yeqWoW+z=B=ky9FVF zs9n_aes3q#&wW67R>WNw8J;gJNW)o6j2WeuL&DsG{ZqxvrH_lr@{QSjQJShi{WKdW za#@_>Xm8&MgF9MSS6c8I$WTfAz+LeTLI+wx#t~PautceZvc|&lh&QBo^kf{7 zcgCsDxRy!Pi@j&3JJjbiZe)An7^LZ^dV7Kt!Z zi*MFo%W#W8q=d(Uv$74sT^}SwywS{&*xoDBEK)CGrVg