From 78f5b73bf2f760b5ef89cee096d998a14eb09ecc Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 24 Apr 2021 01:27:23 +0200 Subject: [PATCH] New app version based on native Kotlin implementation --- .gitignore | 34 +- CHANGELOG.md | 10 +- app/.gitignore | 1 + app/build.gradle | 46 ++ app/proguard-rules.pro | 21 + app/src/main/AndroidManifest.xml | 26 + app/src/main/assets/web/css/style.css | 292 ++++++++++ .../src/main/assets/web}/icon/icon.png | Bin .../src/main/assets/web}/icon/plus.svg | 0 app/src/main/assets/web/img/icon.png | 1 + app/src/main/assets/web/img/trash.png | Bin 0 -> 5397 bytes app/src/main/assets/web/index.html | 101 ++++ app/src/main/assets/web/js/main.js | 167 ++++++ .../src/main/assets/web}/js/vue.min.js | 0 app/src/main/ic_launcher-playstore.png | Bin 0 -> 22700 bytes .../java/tech/platypush/platypush/JSON.kt | 54 ++ .../tech/platypush/platypush/MainActivity.kt | 30 ++ .../java/tech/platypush/platypush/Services.kt | 249 +++++++++ .../platypush/platypush/WebAppInterface.kt | 67 +++ .../java/tech/platypush/platypush/WebView.kt | 27 + .../res/drawable/ic_launcher_foreground.xml | 26 + app/src/main/res/layout/activity_main.xml | 20 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 14655 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 16665 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 13010 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 14664 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 16490 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 18859 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 20767 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 23919 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 25585 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 29716 bytes app/src/main/res/navigation/nav_graph.xml | 4 + app/src/main/res/values-night/themes.xml | 16 + app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/dimens.xml | 3 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 6 + app/src/main/res/values/themes.xml | 25 + assets/css/style.css | 121 ----- assets/icon/courses-icon-10.png | Bin 28193 -> 0 bytes assets/icon/ic_launcher.png | Bin 9490 -> 0 bytes assets/js/androidjs.js | 306 ----------- build.gradle | 26 + .../android/en-US/changelogs/1000100.txt | 3 + gradle.properties | 21 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++ gradlew.bat | 84 +++ main.js | 21 - package-lock.json | 501 ------------------ package.json | 30 -- settings.gradle | 2 + views/index.html | 96 ---- 57 files changed, 1540 insertions(+), 1099 deletions(-) create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/assets/web/css/style.css rename {assets => app/src/main/assets/web}/icon/icon.png (100%) rename {assets => app/src/main/assets/web}/icon/plus.svg (100%) create mode 120000 app/src/main/assets/web/img/icon.png create mode 100644 app/src/main/assets/web/img/trash.png create mode 100644 app/src/main/assets/web/index.html create mode 100644 app/src/main/assets/web/js/main.js rename {assets => app/src/main/assets/web}/js/vue.min.js (100%) create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/java/tech/platypush/platypush/JSON.kt create mode 100644 app/src/main/java/tech/platypush/platypush/MainActivity.kt create mode 100644 app/src/main/java/tech/platypush/platypush/Services.kt create mode 100644 app/src/main/java/tech/platypush/platypush/WebAppInterface.kt create mode 100644 app/src/main/java/tech/platypush/platypush/WebView.kt create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/navigation/nav_graph.xml create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml delete mode 100644 assets/css/style.css delete mode 100644 assets/icon/courses-icon-10.png delete mode 100644 assets/icon/ic_launcher.png delete mode 100644 assets/js/androidjs.js create mode 100644 build.gradle create mode 100644 fastlane/metadata/android/en-US/changelogs/1000100.txt create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat delete mode 100644 main.js delete mode 100644 package-lock.json delete mode 100644 package.json create mode 100644 settings.gradle delete mode 100644 views/index.html diff --git a/.gitignore b/.gitignore index dda9ca6..5d8b128 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,12 @@ +*.iml +.gradle +/local.properties +/.idea .DS_Store -node_modules -/dist -/npm - - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +/build +/captures +.externalNativeBuild +.cxx +local.properties +/platypush/build +/app/release diff --git a/CHANGELOG.md b/CHANGELOG.md index d76bc8e..27e655c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,15 @@ # Changelog All notable changes to this project will be documented in this file. -## [Unreleased] +## [1.0.1] - 2021-04-28 +### Added +- Support for saved/favourite hosts and services. + +### Changed +- App migrated from AndroidJS to native Kotlin+webview (and APK size dropped to ~4MB). + +### Fixed +- Improved speed and stability of services scan. ## [1.0.0] - 2021-02-26 ### Added diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..ba3ca21 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-android-extensions' +} + +android { + compileSdkVersion 29 + buildToolsVersion "30.0.3" + + defaultConfig { + applicationId "tech.platypush.platypush" + minSdkVersion 23 + targetSdkVersion 29 + versionCode 1000100 + versionName "1.0.1" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.core:core-ktx:1.3.2' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c7a0ad1 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/web/css/style.css b/app/src/main/assets/web/css/style.css new file mode 100644 index 0000000..e0a3d95 --- /dev/null +++ b/app/src/main/assets/web/css/style.css @@ -0,0 +1,292 @@ +html, body { + width: 100%; + height: 100%; + margin: 0; +} + +#app { + width: 100%; + height: 100%; + background: #e0eae8; + font-size: 20px; + display: flex; + justify-content: center; + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: #2c3e50; +} + +.services { + width: 60%; + height: max-content; + min-width: 17em; + max-width: 22.5em; + background: white; + margin-top: 2em; + box-shadow: 1px 1px 2px 2px #bbb; + border-radius: 1.5em; +} + +.services h3 { + width: 100%; + text-align: center; +} + +.no-items { + text-align: center; + padding: 2em 1em; +} + +.service { + width: 100%; + padding: 1em .5em; + border-bottom: 1px solid #ccc; + cursor: pointer; + position: relative; +} + +.service:first-child { + border-radius: 1.5em 1.5em 0 0; +} + +.service:last-child { + border-radius: 0 0 1.5em 1.5em; +} + +.service:hover { + background: #bef6da; +} + +.service .remove { + position: absolute; + right: 1.5em; +} + +.service .remove img { + width: 1.2em; + height: 1.2em; +} + +.name { + font-weight: bold; +} + +.add-btn { + width: 2.5em; + height: 2.5em; + background: url('../icon/plus.svg'); + position: fixed; + bottom: 1em; + right: 1em; + cursor: pointer; +} + +.add-btn:hover { + opacity: .75; +} + +/* Add host modal */ +.add-modal-container { + width: 100%; + height: 100%; + position: fixed; + display: flex; + justify-content: center; + align-items: center; + z-index: 2; +} + +.add-modal-background { + width: 100%; + height: 100%; + background: black; + position: absolute; + opacity: .87; +} + +.add-modal { + width: 80%; + height: max-content; + max-width: 22.5em; + background: #f0f0f0; + display: flex; + flex-direction: column; + font-size: 1.2em; + padding: 1em; + border-radius: 1em; + z-index: 3; +} + +.add-modal .header { + display: flex; + align-items: center; + justify-content: center; + padding-bottom: .5em; +} + +.add-modal form, +.add-modal form label { + width: 100%; +} + +.add-modal form input { + border-radius: .25em; + padding: .25em; +} + +.add-modal form input[type=text], +.add-modal form input[type=number] { + width: 95%; + font-size: 1.05em; + margin-bottom: .5em; +} + +.add-modal form input[type=submit] { + font-size: 1.05em; +} + +.add-modal .buttons { + width: 100%; + display: flex; + align-items: center; +} + +.add-modal .buttons .button { + width: 50%; +} + +/* Splash screen */ +.splash { + width: 100vw; + height: 100vh; + position: absolute; + background: white; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 1.2em; + z-index: 1000; +} + +.splash .icon { + width: 150px; + height: 150px; + display: flex; + margin-bottom: .5em; +} + +.splash .icon img { + width: 100%; + height: 100%; +} + +/* Fade in/out animations */ +.fade-in { + animation-duration: 0.5s; + -webkit-animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: fadeIn; + -webkit-animation-name: fadeIn; +} + +.fade-out { + animation-duration: 0.5s; + -webkit-animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: fadeOut; + -webkit-animation-name: fadeOut; +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% { + opacity: 0; + display: none; + } +} + +/* Loading animation */ +.loading { + display: flex; + align-items: center; + justify-content: center; + font-size: 3em; + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: #909090; + opacity: 0.5; +} + +.icon { + display: inline-block; + position: relative; + width: 80px; + height: 80px; +} + +.icon div { + position: absolute; + top: 33px; + width: 13px; + height: 13px; + border-radius: 50%; + background: #fff; + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} + +.icon div:nth-child(1) { + left: 8px; + animation: lds-ellipsis1 0.6s infinite; +} + +.icon div:nth-child(2) { + left: 8px; + animation: lds-ellipsis2 0.6s infinite; +} + +.icon div:nth-child(3) { + left: 32px; + animation: lds-ellipsis2 0.6s infinite; +} + +.icon div:nth-child(4) { + left: 56px; + animation: lds-ellipsis3 0.6s infinite; +} + +@keyframes lds-ellipsis1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} + +@keyframes lds-ellipsis3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} + +@keyframes lds-ellipsis2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(24px, 0); + } +} diff --git a/assets/icon/icon.png b/app/src/main/assets/web/icon/icon.png similarity index 100% rename from assets/icon/icon.png rename to app/src/main/assets/web/icon/icon.png diff --git a/assets/icon/plus.svg b/app/src/main/assets/web/icon/plus.svg similarity index 100% rename from assets/icon/plus.svg rename to app/src/main/assets/web/icon/plus.svg diff --git a/app/src/main/assets/web/img/icon.png b/app/src/main/assets/web/img/icon.png new file mode 120000 index 0000000..9ca39a4 --- /dev/null +++ b/app/src/main/assets/web/img/icon.png @@ -0,0 +1 @@ +../../../res/mipmap-xxxhdpi/ic_launcher.png \ No newline at end of file diff --git a/app/src/main/assets/web/img/trash.png b/app/src/main/assets/web/img/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..447f99ddc233c05e04becc574879b45dbef8b329 GIT binary patch literal 5397 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4rT@hhPm4t-!L#ReW?nGC<#g|S12gTPs_|n zRVb+}NL5I!$V_8ksJQiZT5R7FEuPloV&7}WuK(~Sh5tKu zo9Bg7KVSU(RDa{8n8oa_d36Gx%Jy2!i=UFs_Dx*TPC8OM>TezARBw+THICCAY`2RR z7yjPSnmi}B{>_o|)@!R43Wml41qMVaZ;N~U8jGOYff-ZWlh~(*89b)r) z+h^6bh8of3KN3S9PCa#ZasC_q0G0XQ7!DU3e7;+ksb0G=zA3T&$Kf-V-p!o1wd3-0ns=>iex1=52rTQp!^8 z9gDwOhoDg)xS^4lTUa%x`&V zp}XCi4~u2CD%M72-74DrY~j=}>++Wt>Q(Qq?VTRS&b#E2hqJq!SFgZf>Ff+k{|pQjb808rdK`9;IT~-jL`jsr+oSMAz}zSS(ZVZQ zA`6{Xh(?tf?EJz#%S1&}udgZl;KBZ*tD3tvuj5FEeJ*y_@2`_$_bcPv<|Q#|(>M^MBOAs3Db zf$prK5gr#-O-xd9{_V+Mf8}HMlSwB-8I_MSWd$f&)_t)5ad&OxoH+%P4|y(lesr6? zTjK@23t2b5eczb7-LK(*alz8kKU>udK6_RzUVOB#p)vQtqg{(nRv&oEXYglXQ2>tmIipR1RclAn~SSCL!500K7l6$OdO*{LN8NvY|XdA3UL zckfqH$V{%1*XSQL?w=vZ=7D$SufCElE_U$j!+s zwyLmI0-I}l#hD=EpgRf_NpP;kyKN>wn?Gto29b*;!OGg7kSQm`pXNwW%a zaf2FBl#*tvlu=SrV5P5LUS6(OZmgGIl&)`RX=$l%V5Dzkq+67drdwQ@SCUwvn^&w1 zG6G_TOKNd)QD#9&W`3Rm$jro~{L&IzB_%Ee1qG<#6}bhzzHsC7ilL#9oS&;-kyxN_ zsAr&`o2!qkqqxMitOUP~;*iRMRQ;gT;{4L0;ANY6vkZCE3a?zbH4c#8xRYH!(d`zaTFiYzHX7tsDb9 zZIz7l3=kp#If*4{`9-<5NUCTCDtwGE?(P5<%(IR>=^oqawG!%DE^tu_V7JBtJjLRte-J z1tUE}190+Iuz^I1M`m$Jeo>_zI7Nf=O>k-uC za*`3)8*tN$^V3So6N^$E(^KKd5n8kvU} z7+9HDSQ(gT8yHy`7%1sOylA5j%GEF*+vsD22}A)>F<{4~01*pvakJyH(Fd1BpmGUf zAgElRC5FZYEv-;c7`23?@Er}V(cmH}1V~amnz}}Vi=+@BN%3gvqFQiqAv!#%c`3F^ zvyfT^Kf3mw@u{TnmZL7iVHdwR=?=D9WRpe;P>p=$KRgkI4S&v zPhorf|2nppKN-s&Oj#Go+EL94@%jS>Eha8r=f4jt^6zfjef_VG!F1ocO|~}~T&r32 T{r;|z1}XD&^>bP0l+XkKEpZOd literal 0 HcmV?d00001 diff --git a/app/src/main/assets/web/index.html b/app/src/main/assets/web/index.html new file mode 100644 index 0000000..a0d6069 --- /dev/null +++ b/app/src/main/assets/web/index.html @@ -0,0 +1,101 @@ + + + + Platypush + + + + + + +
+
+
+ +
+
+ Platypush +
+
+ +
+
+
+
+
+ +
+
+

Saved services

+ +
+ + on + : + + Remove + +
+
+ +
+

Scanned services

+ +
+
No Platypush web services found on the network
+
+ +
+ + on + : +
+
+
+ +
+
+
+
+ Connect to a Platypush web service +
+ +
+
+ + + + + + +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ + + + + diff --git a/app/src/main/assets/web/js/main.js b/app/src/main/assets/web/js/main.js new file mode 100644 index 0000000..daef38d --- /dev/null +++ b/app/src/main/assets/web/js/main.js @@ -0,0 +1,167 @@ +new Vue({ + el: '#app', + data: function() { + return { + loading: false, + splash: false, + services: { + scanned: [], + saved: [], + }, + addModal: { + visible: false, + host: undefined, + port: 8008, + name: undefined, + save: false, + }, + } + }, + + computed: { + servicesByName: function() { + return Object.values(this.services).reduce((obj, services) => + services.reduce((obj2, srv) => { + obj2[srv.name] = srv + return obj2 + }, obj), {}) + }, + + servicesByHostAndPort: function() { + return Object.values(this.services).reduce((obj, services) => + services.reduce((obj2, srv) => { + obj2[`${srv.host}:${srv.port}`] = srv + return obj2 + }, obj), {}) + }, + }, + + methods: { + refresh: function() { + this.services.scanned = [ + ...this.services.scanned, + ...JSON.parse(app.pollServices()).filter((srv) => !(srv.name in this.servicesByName)), + ] + }, + + onServiceClick: function(service) { + this.connect(service.host, service.port) + }, + + onServiceConnect: function() { + if (!this.addModal.host?.length) { + app.alert('Please specify a host name or IP address') + return + } + + if (this.addModal.save) { + if (!this.saveService(this.addModal.host, this.addModal.port, this.addModal.name || '')) + return + } + + this.connect(this.addModal.host, this.addModal.port) + }, + + saveService: function(host, port, name) { + name = this.addModal.name.trim() + if (!name.length) { + app.alert('Please specify a name') + return false + } + + let overwrite = false + if (name in this.servicesByName) { + if (!confirm(`A service named ${name} already exists. ` + + `Do you want to overwrite it?`)) + return false + + overwrite = true + } else if (`${host}:${port}` in this.servicesByHostAndPort) { + if (!confirm(`A service on ${host}:${port} already exists. ` + + `Do you want to overwrite it?`)) + return false + + overwrite = true + } + + this.loading = true + try { + const rs = app.saveService(host, port, name, overwrite) + if (rs?.error) + throw rs.error + + this.loadServices() + return true + } finally { + this.loading = false + } + }, + + removeService: function(savedIndex, event) { + event.stopPropagation() + const srv = this.services.saved[savedIndex] + if (!(srv && confirm('Are you sure that you want to remove this service?'))) + return false + + this.loading = true + try { + const rs = app.removeService(srv.host, srv.port, srv.name) + if (rs?.error) + throw rs.error + + this.loadServices() + return true + } finally { + this.loading = false + } + }, + + connect: function(host, port) { + this.loading = true + app.stopServicesPoll() + window.location.href = `http://${host}:${port}/` + }, + + splashScreen: function(duration) { + const self = this + this.splash = true + setTimeout(() => { + self.splash = false + }, duration) + }, + + resetAddModal: function() { + this.addModal = { + host: undefined, + port: 8008, + name: undefined, + save: false, + } + }, + + loadServices: function() { + this.services = { + ...this.services, + ...JSON.parse(app.loadServices()) + } + }, + }, + + mounted: function() { + this.splashScreen(1500) + + this.$watch(() => this.addModal.visible, (newValue) => { + if (!newValue) + this.resetAddModal() + }) + + this.$watch(() => this.addModal.save, (newValue) => { + if (newValue) + this.addModal.name = this.addModal.host + }) + + this.loadServices() + app.startServicesPoll() + setInterval(this.refresh, 500) + } +}) diff --git a/assets/js/vue.min.js b/app/src/main/assets/web/js/vue.min.js similarity index 100% rename from assets/js/vue.min.js rename to app/src/main/assets/web/js/vue.min.js diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..c255832bbaa50ab08f9578344319ed5027b04404 GIT binary patch literal 22700 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 IbxsLQ051y7_5c6? literal 0 HcmV?d00001 diff --git a/app/src/main/java/tech/platypush/platypush/JSON.kt b/app/src/main/java/tech/platypush/platypush/JSON.kt new file mode 100644 index 0000000..0457fbd --- /dev/null +++ b/app/src/main/java/tech/platypush/platypush/JSON.kt @@ -0,0 +1,54 @@ +package tech.platypush.platypush + +import org.json.JSONArray +import org.json.JSONObject +import java.util.* +import kotlin.collections.HashMap + + +class JSON { + companion object { + private fun toMap(obj: JSONObject): Map { + val ret = HashMap() + val keys = obj.keys() + + while (keys.hasNext()) { + val key = keys.next() + var value = obj[key] + + if (value is JSONObject) + value = toMap(value) + else if (value is JSONArray) + value = toList(value) + + ret[key] = value + } + + return ret + } + + private fun toList(arr: JSONArray): List { + val ret = LinkedList() + for (i in 0 until arr.length()) { + var value = arr[i] + + if (value is JSONObject) + value = toMap(value) + else if (value is JSONArray) + value = toList(value) + + ret.add(value) + } + + return ret + } + + fun load(str: String): Map { + return toMap(JSONObject(str)) + } + + fun dump(obj: Map): String { + return JSONObject(obj).toString() + } + } +} diff --git a/app/src/main/java/tech/platypush/platypush/MainActivity.kt b/app/src/main/java/tech/platypush/platypush/MainActivity.kt new file mode 100644 index 0000000..01ad9cb --- /dev/null +++ b/app/src/main/java/tech/platypush/platypush/MainActivity.kt @@ -0,0 +1,30 @@ +package tech.platypush.platypush + +import android.annotation.SuppressLint +import android.os.Bundle +import android.webkit.WebChromeClient +import androidx.appcompat.app.AppCompatActivity +import kotlinx.android.synthetic.main.activity_main.* + + +class MainActivity : AppCompatActivity() { + @SuppressLint("SetJavaScriptEnabled") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + webview.webViewClient = WebView() + webview.webChromeClient = WebChromeClient() + webview.settings.javaScriptEnabled = true + webview.settings.javaScriptCanOpenWindowsAutomatically = true + webview.clearCache(true) + webview.addJavascriptInterface(WebAppInterface(this), "app") + webview.loadUrl("file:///android_asset/web/index.html") + } + + override fun onBackPressed() { + if (webview != null && webview.canGoBack()) + webview.goBack() + else + super.onBackPressed() + } +} diff --git a/app/src/main/java/tech/platypush/platypush/Services.kt b/app/src/main/java/tech/platypush/platypush/Services.kt new file mode 100644 index 0000000..257e9be --- /dev/null +++ b/app/src/main/java/tech/platypush/platypush/Services.kt @@ -0,0 +1,249 @@ +package tech.platypush.platypush + +import android.content.ContentValues.TAG +import android.content.Context +import android.net.nsd.NsdManager +import android.net.nsd.NsdServiceInfo +import android.util.Log +import java.io.File +import java.io.FileWriter +import java.lang.RuntimeException +import java.util.* +import java.util.concurrent.locks.ReentrantLock +import kotlin.concurrent.withLock + + +/** + * Service data class + */ +data class Service(val host: String, val port: Int, val name: String?) { + fun toMap(): Map { + return mapOf( + "host" to host, + "port" to port, + "name" to name + ) + } + + override fun toString(): String { + return JSON.dump(toMap()) + } + + companion object { + fun load(obj: Map): Service { + return Service( + host = obj["host"] as String, + port = obj["port"] as Int, + name = obj["name"] as String? + ) + } + } +} + + +/** + * ZeroConf/Bonjour/mDNS event listener + */ +class Listener(private val scanner: Scanner): NsdManager.DiscoveryListener { + val serviceType = "_platypush-http._tcp." + + override fun onDiscoveryStarted(regType: String) { + Log.d(TAG, "Service discovery started") + } + + override fun onServiceFound(service: NsdServiceInfo) { + Log.d(TAG, "Service discovery succeeded: $service") + if (service.serviceType != serviceType) { + Log.d(TAG, "Unknown service type: ${service.serviceType}") + return + } + + scanner.resolveService(service) + } + + override fun onServiceLost(service: NsdServiceInfo) { + Log.w(TAG, "Service lost: $service") + } + + override fun onDiscoveryStopped(serviceType: String) { + Log.i(TAG, "Discovery stopped: $serviceType") + } + + override fun onStartDiscoveryFailed(serviceType: String, errorCode: Int) { + Log.e(TAG, "Discovery start failed: Error code: $errorCode") + scanner.stopScan() + } + + override fun onStopDiscoveryFailed(serviceType: String, errorCode: Int) { + Log.e(TAG, "Discovery stop failed: Error code: $errorCode") + scanner.stopScan() + } +} + + +/** + * ZeroConf/Bonjour/mDNS service scanner and resolver + */ +class Scanner(context: Context) { + private val nsdManager = context.getSystemService(Context.NSD_SERVICE) as NsdManager + private val listener = Listener(this) + private val services = HashMap, Service>() + private val resolverLock = ReentrantLock() + + fun startScan() { + nsdManager.discoverServices(listener.serviceType, NsdManager.PROTOCOL_DNS_SD, listener) + } + + fun stopScan() { + nsdManager.stopServiceDiscovery(listener) + } + + fun getServices(): Collection { + return services.values + } + + fun resolveService(service: NsdServiceInfo) { + // Service resolution is a critical section + resolverLock.lock() + val scanner = this + + nsdManager.resolveService(service, object : NsdManager.ResolveListener { + override fun onResolveFailed(serviceInfo: NsdServiceInfo, errorCode: Int) { + resolverLock.unlock() + val msg = "Resolve of service ${serviceInfo.serviceName} failed" + + // Retry logic + when (errorCode) { + NsdManager.FAILURE_ALREADY_ACTIVE -> { + Thread.sleep(100) + scanner.resolveService(serviceInfo) + Log.w(TAG, "$msg: Resolver already active") + } + + NsdManager.FAILURE_MAX_LIMIT -> { + Thread.sleep(5000) + scanner.resolveService(serviceInfo) + Log.e(TAG, "$msg: Maximum number of resolve requests reached") + } + + NsdManager.FAILURE_INTERNAL_ERROR -> { + Log.e(TAG, "$msg: Internal error") + } + } + } + + override fun onServiceResolved(serviceInfo: NsdServiceInfo) { + services[Pair(serviceInfo.host.hostAddress, serviceInfo.port)] = Service( + serviceInfo.host.hostAddress, serviceInfo.port, serviceInfo.serviceName) + resolverLock.unlock() + Log.i(TAG, "Resolve succeeded: $serviceInfo") + } + }) + } +} + +/** + * Services manager class + */ +class Manager(context: Context) { + private val servicesFile = File(context.filesDir, "services.json") + private val servicesFileLock = ReentrantLock() + private val emptyServices = mapOf>( + "saved" to emptyList(), + "lastConnected" to emptyList() + ) + + private fun initServicesFile(reset: Boolean = false) { + if (reset || !servicesFile.exists()) + saveServices(emptyServices) + } + + fun loadServices(): Map> { + initServicesFile() + var services: Map> = emptyServices + + try { + services = deserializeServices(servicesFile.readText()) + } catch (e: Exception) { + Log.e(TAG, "Error while parsing $servicesFile: resetting it", e) + initServicesFile(reset = true) + } + + return services + } + + private fun saveServices(services: Map>) { + servicesFileLock.withLock { + FileWriter(servicesFile).use { + it.write(serializeServices(services)) + } + } + } + + fun saveService(host: String, port: Int, name: String, overwrite: Boolean = false) { + val service = Service(host, port, name) + val services = this.loadServices().toMutableMap() + val savedServices = services["saved"]?.toMutableList() ?: ArrayList() + val dupIndex = getSavedServiceIndex(service, savedServices) + + if (dupIndex != null && !overwrite) + throw DuplicateServiceException(service) + + savedServices.add(service) + services["saved"] = savedServices + saveServices(services) + } + + fun removeService(host: String? = null, port: Int? = null, name: String? = null) { + val service = Service(host=host ?: "", port=port ?: 0, name=name) + val services = this.loadServices().toMutableMap() + val savedServices = ArrayList(services["saved"] ?: emptyList()) + val srvIndex = getSavedServiceIndex(service, savedServices) + ?: throw NoSuchServiceException(host, port, name) + + savedServices.removeAt(srvIndex) + services["saved"] = savedServices + saveServices(services) + } + + private fun getSavedServiceIndex(service: Service, services: List): Int? { + val matchingSrvIndexes = services.indices.filter { + (services[it].host == service.host && services[it].port == service.port) || + services[it].name == service.name + } + + return if (matchingSrvIndexes.isNotEmpty()) matchingSrvIndexes[0] else null + } + + fun serializeServices(services: Map>): String { + val parsedServices = HashMap>>() + + for (srvType in listOf("saved", "lastConnected")) { + val outputList = LinkedList>() + for (srv in services[srvType] ?: emptyList()) + outputList.add(srv.toMap()) + parsedServices[srvType] = outputList.toList() + } + + return JSON.dump(parsedServices) + } + + private fun deserializeServices(servicesJson: String): Map> { + @Suppress("UNCHECKED_CAST") + val services = JSON.load(servicesJson) as Map>> + val parsedServices = HashMap>() + + for (srvType in listOf("saved", "lastConnected")) { + val outputList = LinkedList() + for (srv in services[srvType] ?: emptyList()) + outputList.add(Service.load(srv)) + parsedServices[srvType] = outputList + } + + return parsedServices + } +} + +class DuplicateServiceException(service: Service) : RuntimeException("Duplicate service: $service") +class NoSuchServiceException(host: String? = null, port: Int? = null, name: String? = null): + RuntimeException("No such host: host=$host, port=$port, name=$name") diff --git a/app/src/main/java/tech/platypush/platypush/WebAppInterface.kt b/app/src/main/java/tech/platypush/platypush/WebAppInterface.kt new file mode 100644 index 0000000..8298335 --- /dev/null +++ b/app/src/main/java/tech/platypush/platypush/WebAppInterface.kt @@ -0,0 +1,67 @@ +package tech.platypush.platypush + +import android.content.ContentValues.TAG +import android.content.Context +import android.util.Log +import android.webkit.JavascriptInterface +import org.json.JSONArray +import java.util.* + + +class WebAppInterface(context: Context) { + private val serviceScanner = Scanner(context) + private val serviceManager = Manager(context) + + @Suppress("unused") + @JavascriptInterface + fun startServicesPoll() { + serviceScanner.startScan() + } + + @Suppress("unused") + @JavascriptInterface + fun stopServicesPoll() { + serviceScanner.stopScan() + } + + @Suppress("unused") + @JavascriptInterface + fun pollServices(): String { + val services = LinkedList>() + for (srv in serviceScanner.getServices()) + services.add(srv.toMap()) + return JSONArray(services).toString() + } + + @Suppress("unused") + @JavascriptInterface + fun loadServices(): String { + return serviceManager.serializeServices(serviceManager.loadServices()) + } + + @Suppress("unused") + @JavascriptInterface + fun saveService(host: String, port: Int, name: String, overwrite: Boolean = false): String? { + try { + serviceManager.saveService(host, port, name, overwrite=overwrite) + } catch (e: Exception) { + Log.e(TAG, e.toString()) + return JSON.dump(mapOf("error" to e.toString())) + } + + return null + } + + @Suppress("unused") + @JavascriptInterface + fun removeService(host: String, port: Int, name: String): String? { + try { + serviceManager.removeService(host, port, name) + } catch (e: Exception) { + Log.e(TAG, e.toString()) + return JSON.dump(mapOf("error" to e.toString())) + } + + return null + } +} diff --git a/app/src/main/java/tech/platypush/platypush/WebView.kt b/app/src/main/java/tech/platypush/platypush/WebView.kt new file mode 100644 index 0000000..d60e130 --- /dev/null +++ b/app/src/main/java/tech/platypush/platypush/WebView.kt @@ -0,0 +1,27 @@ +package tech.platypush.platypush + +import android.webkit.WebResourceRequest +import android.webkit.WebView +import android.webkit.WebViewClient + +class WebView : WebViewClient() { + private fun shouldOverrideUrlLoadingInner(view: WebView, url: String): Boolean { + view.loadUrl(url) + return true + } + + override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { + if (view == null || request == null) + return super.shouldOverrideUrlLoading(view, request) + + return this.shouldOverrideUrlLoadingInner(view, request.url.toString()) + } + + override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { + @Suppress("DEPRECATION") + if (view == null || url == null) + return super.shouldOverrideUrlLoading(view, url) + + return this.shouldOverrideUrlLoadingInner(view, url) + } +} diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..230b730 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..edad1d1 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4499d8841271e64bf35396fb2c17e5ca57c6256a GIT binary patch literal 14655 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f950817f27bf1110eb656e0128cf22e03bf70e6f GIT binary patch literal 16490 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWYcidk12U7785lGs)=sqb zIP4&EG~RxRlBl4yh~UY9xjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI4~{2YJ$N)S zoITu8;15G#adA+|M4|uFMWT*W6x``A|1MYlo}qs6p%7yWz7?}lmrUkVoEqwKdQu^N8Wq>PiC*zy_5!jg?XvF5(V=G{PUx%p4UF&(Dvl| zX!&u5qqs`llU;8?N9E*mAR=iUz@Z~IHEL7!KtA~>ePw@PIJO~MT9eN`B(g4m)-B7H!~*Hph#x{ zm*}L&?EjnZ-<{QZlG9vs4#TdvoZrbT9B-MCD(69 zz2SIqn@w-s?OA)+W8N`bRF5@Map$`5MV#xvZ^_zVK8YQyRoCv^i~4O*%V2aR^c9-ap&Ruimq7K3jC~a_01E1_lO&WRD&6g+Yg59Yapm1eIh41_sUokH}&M25w;x zW@MN(M}mQYfxX1j*OmP#i-e$t%)S$cni&`v4^@RklmsP~D-;yvr)B1(DwI?fq$+@; z-=cSEaO64}MV>#;MJ$^>ave`xFtO-A_mP~lPVHyP{!n<% zP|v-ZWzU1~y^p`O$UF7*yS$kl8DjWp9fRBl$^XylBtm$%uC2G?`xd!_p^W?7JJ#pT zw=;X24_|e;zrDmPGW3g(pcUiox12RC2X6LHp0IK2#T9%@cV4(6`)c~J2^-)3&%P@; zN#G9Whq(?vteYd`c-j`E8^#<>6O3}5VLS2LM}G7u!y`I(UwL0r-u8D}nMMA)?hpTzFRm6iEdSt>f|j~Yw-^Hh17m)XUkKy*Mdh;? z7{s@Ex;TbZ+ zpUj%IWTl~5=Ay`BOKyd1zBF~#l^3f{p7qLGG$VV^+}0|9<)VztwMQ&$U%c1bDm?6LI1xiGDBTG3j_3zZ+N+()*@Oca*06oM^Y85xmfe=NE%v-O8fLas7x0H0 zmftu#W4UI#$_}Lm)(7l&sMq8d$W{pbSfhPVj?+x@Zi_rq4r86k1^*)P#XOt;tU6%F zXryj_{+P}4`_12X$p5hPD_N_|6f$G&+-k1v-)HpS%-PP}+FW9q7JT`+fdr3xlw~idKWyE$%}h#KTK3uNuT`f`pVmFZzGBs?MLT!id}wPmmv63L`}Q4I zSEk;S(lFKhG>i+Bq zy*1M~eMi|_sfQ0AnmyebrThBY+QkbOHpc(^G=0g^rIj{8Qnz2P%=j}a%~^PQl-A6G z`%LfT|0polHSQB=_5RV)Q2+n;{WVcryPVtk6g`Esrglw_ue<5CqO`O$W>3XMt+%hP zuD){R%7hs+GN#_Uc=6z~v$HFIzukWEWyzE0&p-e9e13DrMWucZ15RNNCe9t#!p_>C z-+#O^R&;V(?fiuYv-*{0)-p!EU%kOKF;VgN_xHyW3>I8}eREHx@%#P%?Q(N-!=7ek zXYVY0+!i`3Z1vJjn=Wac%`llXd-m!0f1kupe+do>I&^PuwV_n6+}5?;dnU0MdAhZ4 zocZ|r|C9ei_8r}*-JWrMdu2#`{zGA=Ns}jYa&vF~bM0lxn)vgt^(FDI$`E(|cJ`%|&r=i0m4J9i%YUb(yK!RJ@y zKksjrFIf6>(ectM?)d@+RbMh@TmJv_^z@!@x3Xm{3K-`4xqEtYy7$X%z1{3T$HFl& zQPJ1ecaBZvq|nu2g|Dt?t~Q!Dabl0G^|kJ6GpDX|*?zHMW=B}E@XxQif4u*+U2~1K zPy52d-M?&`{YxB5N=!60HK$CO60vl?UG1#taaElc7rO_Cgt++n_TK&7-PQHu=J~o~ zKR!Or%*lE3;o)Jk)THEONz<$l{b;QT6JBg;R#EYhu)H4QS9>+}T;_QLU)$M=2fzPx z@@eSj;Nap?GBus*Z}*dB^2wB`;Q;{-j*g9&e}ApAy?XU(NO-ulj=fII%;B8HZ$B3HiNF7gy&VxH=&{?q-Zbxq*Z)4kWE<^EfSf0)J4eDJ{9 z=P$?BWAn{3U<4O;AxhsghS_w&C-g z^c>Bb9yhNF@whq9x9z?j9FUl(IKS?f=E{{TQ&LhET+HC$;uC}nXaA0e!KI5ZrHY#f-FI}g}#o7Gg$&p?s zz3nk6QEzI{!Yd`|K65aeB9jJKVPk0 zAF-=sk_N3?(WDP1&Ufz|E^e`%5uS1u|zp=lh<*z zzgfRUi&on&TlSKt*zIg`ii?fWN#m`rHVREs>1>y)>X85Qfc>wW`9~IEHJ=B^?f-3z zeHi_${LOk%FWb{rI_eh_vzCAOC3sJ}a`xZn`<{e7*X_Uc@~VhQ(h-ih%BP~UX3hF> zegD6wTPKKcu?7YPy12V94qEx*&6_93dZlCbR$bK+d8io_92~i~YHP6f%H1uh7ge9! zUhKGQal>0*=WE+%uiRPlT4{dB-)8T#&wnO9QexX_sam<#cGBd@k$bC5&z?Q|Qd@_Ql$sdh+n*K6M5KW8=x!)LLwq5Q|+t1WT^ShIX%%Ss!JG7`Hn`)PLdnH!|B6>vR<4QJIccGD`>s$s zYwOviudf*vKl71(Sbp&S{rQEDk8MmlDCD%vBf~RuU5s(&s|OSRSbTi0;}PZ3VRR(-=hs;bGkx6L+}NDkcnTxU?Cj== z$Jb2Uvc+WktFYBqb>jEU;S^Tep(8CKlJe0p=HR8@FJJQC=$!OuhKwSMRwTpZ_O#FO z_baF4GwT(P1f z`FJ0w5YNiWGLV?VzT(p5%borG-&ak%c=4joER)Xl`~Tfq8M-C?yxghNr#(G9K(Sx= z_?ThZ8HuE%Bn~dFO&V#hHC=Zl7hMvawJ*8eORR`RLD?!nKWlKYW?1wdu)|6eeco%*@Qfh;s=B0l~q} zzP`Nibw5=fK75#ABDKtS_OW1p+oK(V%4_mBRP3AN`lI~Ir@0an9Ukb1Pn0q1lT<$Q zQGVx{t%(SP{&$>u`!u;p1bx z-O1k<%m01B$9Q+ogL%QV{`wLu&7p=qeU%-ZhnEY=UHHwBQNF{s;bcmY-?7ny}Y%j?m z!UAGq#~vN+=H%j9v}#q?>FN5r_dd9E?b@-O#h}Jq-20zvRKW=;7Ie$PHH_lM1;58f3-OD$Zu@XxR7`_mpCYMo?Fpi`ri%>F4Hbj9U1LbMi@-$VkbvXU~>xm)X@6w|@DWHD}WJ1N~QoXgzxT z*wf2PNm;r1%o(3alO}a^b!~dTz?11nuB$dnV^_hu{u$?%B;HRim{2{hcE2D)TDq2% z)vYA4S0z@jUcbJ%t5m!G-{<*rqg-8GT|+`b3<@8)^h-yEhr7qc%{$$@<@2+%k6Xp# z9M*;jOG&+QdU=25YgJFjoB$zyp1J2|obZ{_Rd?I;?Ot^qPoaei7pkbK8C8GFS+r=* ze!qf;hgi4e-hQ@G&tRs{n|pg_3#%KzR7`O*yf#va7?_tLfC-o7UDaCd-5+})YirHVr_)nXQUs)4S%}H6lky7s;nQ>IKsnp_M3033 z?>ox46j_`);yKI{Or%`%^43Y1W`%_3TwkkgYa3hh;UN2?XJ==Zz0S?e6|MgEM$ppI z(n)Rd&e;5jh#3*v^X6vc=9b>d+q*INMep2qHc9b`lW#A+C(OhrW1(=YPxkf154+cO zbZ~4ec^UNaqPu+OV)y>8;N^au$;bOTWv$CPmd~s5T5&aN{j1)-KC#*6`C?Uj?=9QQ z*6g@t+qSO0KE6bwneXzL`sD5P)cohYnL1%tyrQCF(vJ@hl~h$-dn62Mdt0-oS3H^Me&n*hz3#qWuU7w4S(wkcV#Nx9;^*hyZv9YOxpdjG zuD`#(N4KoGnswB_?vt?hzeh*AWBo$^IyQudT{zgxesg>NeDm$!q`kbnZfs0$KWeV2 zr}yl^!RBdyy1Ka5#qKt{aP~`I!3CQ`kjvs64?TwDxNPl-G`GxKr5-tFrb1Zd2# zELJOie$I7m*zFsC0|NtnW*V_B4f1q%XSXhYw`J3nbul|1ZC*QB&bHm$eCe`fM&<8f zR;^wwX_6t3e5^;&*m&~$y6?M}EMKlX{dDBcB31dC4~^FaL(*SFsaAhJYaX~VWXhB& z1+T7Xe){yuqVkhU`1-iiOG`X`=30q1yn2=O?d|RKr}ZXgWMaK@%e=pGa`1E z=}w(GRVQLY11q;!KzzJ^U7ekzq~wXGMSXI%r>?DyUb$k$hE>k%uTP#n{kVSJNACH1 zk3SH-6L`pJMs346zvJ6VLPMuY7^n64i{!YtwA|R7-e2+kZu!v#j?F9zO3KPdmHTa! z?0!BG4h#)d-Ijk}PfRyT#YC$2!{^V%8JpI{?hcFDQE>2K@t289pGeyukSu$5N7Kp4 zsm7_nM@_i?$6@&+lT^KPJ~=r%A8p|jcJcA)i7wTg>SdUIPUhp+>+#*^&iP%ucTaC! z>~6KL?(U=8a&I3wH`m&=x_b9{jt?iTlhh`6PFD9XdOhu}Td3!x2`VSo>bA!!HqGlb zpXn148fsYjD#Y&ppW@X9TfjNBQcoZ0ku-M6$XIbVZe`HQ zBS$)gj~bu1QI@Oy68P}_`}|-vWo73#x3~K*S-$-H%@aW@L!1@{+*o4&`_1OPvaElt zSwq9Zx}H2q*=@LB&mJ3)$Fj1sk0$rqriBXxFY^&p_nRY-o1436*RH5D^X=~+v+nEZ z5s9z)*c!1h$#uPLdir#yg#zpM{aO`V`@L5=;rY3_Voz_BW|~ON{&3*e*Vk{q?NFar zacI?XS?e;Nl+@J7sS{5>O}e|Q^wEWd&Y(<}#~HLT#46-O-@22N)w?&Rpa142PlyzmiyFEQ?&u%rth_nCi7KXyuVEQSBDL<(oCbZ_nYu2uZgsOZ3D>u;kXJ3BiU zZP{|=Im?eH!K|?XT2pzXOim>3b6TjNsd+MMpTCEPg36JP+#%iF(y+vV$Kw6w6y-qY5`c5c3X|N4i!^&ju-WS6UGNS{~9wl=IgXl2T` zH#haZPvBBqv0_ES<72&Z>}qeR)t{K4xMcbA-Cw^aCntM)d2Q;9+`4Vst~*8d#U%=u zCQX_Yv9n0kZL#1?pJzqC7l*A*y}mAX&*yX2A|fI;dbhc`xa`===(99PP*^y5vR+>P z@$aT=a~M1)-MP0TIx_NPbpGC>%jeg5IXgEWF53Qe#_ik<;bH5q7ytT_IcxUpxqh8{ zTm4HN;+;4S?yLQMV^eB(@I&Tlxi8->SiAP@v%`%E-;C}4d~i0)yK`gp`IKFUVx1dQ zJXzS;ch~$Cd2nlMwuqS6E>o_o?CjiYT)Qq@xNu;WY4(i`iOjyfzIK)CcDFGYXrGy= z>@Fnn;*alBu(WMdDv@e2R^`LovVKtr_SJqNYPfiXmN?_>jsIqN{)k*oWW7!(u~urg%Y`l6#p zk5+yy>O8(fdf9?`8Tt9*>-T)>3ecLmH?Co(Y4)@gD_6dJt;Xl0vts{(5Ut2P6&uf{ z8TuQRy@{BnAMY0v6SIHo-)KjMJCSd`i+Or_?)mrYwa-kWrSZ4_u2o#HZ{NOfxz{b6 z!Y9t1dw2EplY0-Moe%u{{QT{_Yk~p-4habhPG5ZZ{{8*;huDvYO?bc0{H5}h>(_7Z zSvqshoHO}#pQWdGEqxmNv$wbR&8@Ac)3*GG_`&z|Wk*Ar!}-{vkhO8^pI=()9ky}) znl(CMYolEK{P>J!o)OxXmzSrerPb9dZ638Zyga4v7vFMak|p<(-T!V?d|RV{Q1+-(edE>{{Oa{)6Z{PdE8z9HD{iD zY6gE_#(FlbMo(r1|9-{krz1C|a7y*I?b&1V?Ck94Ukcc_MxE`}-*@6@x45RBp4-wO zK{2ss+Dz-1kISZ7S)VCp-LNcP^(Om^H*ZQ_FIIBmC@L<#xh+>ZGBWbaTpDg>Vk@eaH|Ju8(3~|=gnJoYi$7U2exO%m-kQo z@cp~GlG35@L*|U{8Gp|eEqcmc(>9akyIpW8f2;wcJX8I#9N((4MP?Dcu3Bf(AFX4k zDONeQo%`$owKKBUKS`zKbG*=+-ukoSon*uNKG9v(3t9V^-ZSlHJpFv{9L=)nTKm}r z|2c4_eKrv_7Q9z`{LO7fy=?X>DB#S1_ni!)CkWsPfsld4h9AW zE(Qih76wKJ&@ev(10xcfiIJIsnSp_!je&tdh>;nr2Bc1kkrmADVPIg8hO(zHFfeF9 z)qwOEGBPpnGB7aAVPIe|Vq{_vVPIfb#lXOj*$%O59|Hr!1qKEN4ltB~Sk3^W-93E+ z6pZu?4fKpm7#NHUj0~*|OstGd6bvn`jE${~4Hy_17#AR11adqFL4TMrGB7Yh-3XeP zWJ6+$LfIg=$VSiD#0X>vBPS;(4>yklFRz4=qKu*u$>9G120;!+21W*EMkNL&K}Kdl#{Wkc zkx|JhscGpMnOVgprDf$6l~v6xt!?ccon4bAPnkMx`iz;g7A;<~ zblLJ1D_3pWyk+aQ?K^hvI&}ER(PPI?oIG{u@|COCuHU$M>*1rvPo6$|{^I4UkDoq& z`TFhqkDtFl{sQ?E>@7x6T!8$B<}X18CPpR}7G@T9kiQt2%0V6%WMNe_WD{}>WKS#< zRx)bj5OJEgaN|KvW#ga^qDe&;xx`dV9;$u>c@69{;yl(wme1fGL-^|!0}nGJ1Ct=L zAcH-_&wpJS3z)igF3k+T^=xJSvdn3hV(!J*omk|zrhWoL%A^Vgp#s)g^9S*bRpRYQ z;!(dG*Jio1a4Orm*y~9;33pnmKTEvn5vn|af40ee-t1dvcgJK_sV%K#+UYjw+SR84 zH`rNLC|f8zz7u->hoep6e+H*zJO48@z1;s}*6+G5h9AxU1pFoHFRWZw|6o`CKehf* zMRX2=O<#4@gD$QUyB~7--JA3jzKwUCE*i#6oFKv6(`5W6`@Plr+QjsgH&3S5XR_X1 zGvhwb$4J4{Vf^4K`hLFPKBl!>_a58$;OT@V8EbBN-g)D|UhMW{((#2i ziu}(ue-GQk*TAK*sDVpktv_$(hSzplmrQoIO-$Ikx9y%=Ps733Lz9d+&hal?z`x`l z>km;I>xU)R-?f$M#;HzV3$^o+RAt(5^5?;DoBoF^OnZJE6$xN;MaHhhg|bVxY!^1W z@i^#AEyFsIKPevyCa2#%SKQb9CxdzaqSZIz4z7$iT$%Ix;Y{bnRn1`<42!yO?=e~YLo0mBYL7<75yv^Yz>WgetUwOf!~KU$D2QE3)LmCU;29TkKg6Qt96nUUH8f+ z2I|avAfh09k>Au^;p0vQyPGesHQ4EZtXbE5VE(6oKc@c~5~Jh)N^L!V-SL6{PmMaM z{|p<}uK(8?#qhfhoCh@)Fl{bfTkrGXYxljZ^1y>aJx}}9Uq*#~5HgccB{hP1E zjXYU=r0#P5bP~M6zb=FMRXyL2e!q`)Q)aczv^vc#WMR|%KI-bn>xb<-%+KDa;a zZ^+hptC#MsJubB97xT5f=ia^ImX6fRQ;B%k>uqd!fT=+%d)Cwb_L7-fb=^|C?kP_4 zeEmjCmifpn|IRgG@4a{Tl_*c(SAM1a^nTZU!DkurT^BZh zBewo{{U?7L@Ba)5tJnV(xq2bo{_*~w>ho0pGi(UG{;w;G;YSlFVt4T~)t_|!aQ$y< zZvB_6>-MqijrLC#{>c7!Xxsi@rWwp{e}VFbmiFu!Yu={rn0v@oYFe6Y!x~@tWB25* zD~D~ovY_a&g4n?Yd`!iH6pv2t2#~uH?e#x4eI8~uPFwXn8Q`D{V z4>X=ny%H0BN7-rT(@kabFU(^2nYUN?z-wrZOsMt`4!9mIZv(?{~5*|_PxvgiKY3)`l*SgHOG{HT>5Hr zYQL~z*40Zkp5;q+IMv*)dvSN))M;0_Lodx)@Lnuw$)oqe*S4IEyByl!nXjP!W5QR_ zx;=6C-c@TJx%SB<&${cqiN2(Bj&uI3JZXYHLOvEsaE#<^D(U}{sBYr-i>4}~vE z({`QPu#TFsZZrGw_0F`5f0SmG?kM>FcH>;f195+@pWblCH&=Zo%O#ip4ENl$>J8%y zE9M^#lheMKcDaKCbWk>MxTec<25^nL<4wmi#I5@oS5|K#S3md$J$+JNEc*{qkGP zVE)gnKe}bf-|9XF_7_gOVg9|?LC)8;be__W!bkBuZIiwoohABOr>5)43x;*=2mcvf z`6IrD`>*XMjw2H`{*0-h6aZB8j3+#LTov%}!_1k6VMRmSIXWBYXJkWeQ z>)Wp9HPR1x?GNq}i7K7Mdmt^+4%u>5LFl%ZM0wn! zJy~mR#@~7QxpVE(l){%6{${W1(+ap0wRjnXx}`n;KZC1j#D`}a zZk?O^++((i^VW?QuGY)`XEwCDJ-c$peo zvB|Zm%S@(+8@XL%i(^npwp_qJOK;(C(>oXPc%OQl+);k;Se8~;TDi_~o#QI=o=s}t z`ntdQKLhvit~~o~rXlt>Cz=Tv*Xwo5D#l$*SszbChhKuyoDLddsBMbxHgAQ*CjrwrONx=Uz!@gyg2rgmT>P8o?qcN?(_T+UG~HKaDnNzn|XPGDbs3-j`Tl` zm;SPTaSijw-Ok%S{Oy~$rgB4!LzA+ak@Wpr4YsGcj$Zl`xiDLE*YV)(({EUuSUcfh zTS$|wD?@>t2CPD8ySn>P|4-i2U*u11xV0}{@K0scyxjQC38pSrjYD)@{3->ux(98w zyL9T&uR`7}KJRMTyP<9cP(qvjXhb!Y#!s`hBMv~;cA&D^&Wl=!c0vMK-1pz`_1{%>5n{xe+k zjb$zVXZ@dHQstxg->k9qFP5$QvUZX6rEMMHY9tZ0+Q^=dmXfwGe*0Vb{8(+!XU`8J z*TszY2%FhnvH#fa!Sn5d>X*vLCv6_z+hP4zIQX*Uv~R~M%;w0xaQO3rsZ}JqYP++pb`m-ua*5i8;9T*qT={|DSU) zs8Uf5Kb=(HZy$UPTxdju?pXVD=M-0-oOk{VTyIL^IgaOrJ^C%=eZ~Do*o`XTRe$gH zJoE~cYqwln5%oGm$M}Kv>X<>*~!vY2?M(?<%GB%pJ z=GHF*dTqCJX)M}q#`XLUf!JTb-=VRni$QzA2lYQw?0M^NgkAs7;I_8->xBy8e_rx! z``>71|7Tbn)?jxZ)EZfnFZiOY>R5YquIU!P_uQ+DHGcZ>@#b9bsY(8^Y?q2qhLp*H z`zLnH3blXLzWiE)UCyqS+p%XEEe${J&EU*6W1#BR6XS9q3buEnyCwfWnxpOIL=J@wQd$B((&TWqvT zYnA(LCoJKd7uoN%@X`6MebOKHu4!F&?bQqZNgN(3^Pk2WRNOu;HNW?3a%Ig?#W=+V z`Dup#Oc>9{-Z@!aX?o`DF3*_V@z{#%M9PeBs`D69-jy>kyY2VC2{ zWwmebHH9aBTE4eta&fWg(=*e}g-j-U9G!dP$>jLtKYkx(e9UjoTPx_etFz_=pM6K! z`nfi?AM%gR`skkRzwyA`l=)5eTnwLIX}^r;`*+?dbcUzt?BjbT%bR4Gt*c!<@yE#z zoA~)0c75yVmTkB#bKyTj!8}G0#>XOot_%zliukk&tIL!=wO%=7|E{uKeyXD@1Iwf$ zKTvpTEZSTA;QnEcJ%QG*tCn3}7QNB6-@bO^x!P8SN?9vQIY}{(JBwGI+B8QX`}S9V zmKyWxTTjo`ce@^T=$|GROPaJw-UH$5a#v5i{?EW#6TDd2H(w}A?A6ZC3h%#&Futj0 z{ikrJVzbv|zy0pnr&Sr39p~G-^XsE+b-F)RRKyEC62*RGwAU?||OlKR>&Un6~~RGwGA^vRz96`~3FO$rWk*bDrBg+r6IqPxMFkHiuTd zeOI&CY*zj}a9qN6wechMw)=52Wz{SWQTVt7&G`Z%}xsCd5F z;(BGxoHZT=tG|ezF9j8^n?Lv;*;{@v=(y~feWeXKdslxsXle1q^jM&SeA0{kVm5}W zUTCj8T{G=Sp-Pa9(X2yP_t{lM9eKOO=wlF@m-@-Qi+x_`7f#pHpEU zvN7b|r`sD`kB1$XUt7~u!~AH$)B25iC;u~))b}z}uYdD)Y3=Mo(|2_T03y8}fshaiKYWJGB{|uSg<==0rzZDnqGQQ4p zj+#?yw9D%brTu8tyRE4=cJ}|y8eA1tq4^OP7H?yq~{;PKIFdOrv z8MrU0+(6>C?`I;5I-)cP#b@SnkODyz`xgI zr&z4kC70i8g(m(C-Sz2x(>?R%BXVNxK09XAXWZ22o!YOrc;WiM1x!2oySEG8{$q5_ zX9>fHDe)^Ggy+ZG{HgnR#@x=oEk}({aL?&w!4u!?e}1XKMrs#7%j*e0ijQ8CT6)O% zFi&$u+yc3;=Px?QSG<(kJ8kE(qxFeaXIWNHIF1ayb^Wk; z;F|Dax0yF48Lg{jT)-{mx4w2!mf-!&>-?;T|Q^*yy8zt_I{)}OuX_R^+(juT|I*)OeBx$IeJeAamLi6@(lWhP}#31DDU zXPz8uyZ-Qg@q33RN52s7mu?7c>Jj{TJ@!NY!`|baTQ#=Ux+%>H(UB~#KOJPhv^G#C zlgC>oOH?F*@kRjq$tv@M{bDg$V#{9pe_HT4kOl>zzRgCxHh)>gY3KcWCZFEA^@{GZncpUF6?4@ou(V+KvVec*i$z@wpk_HX zeE8$kmzV!YuZh(>?4GHte?9YPjm^81va(l4CdU{2IP5g}$UL!qmy+h6sP6dIeylLw zFzS!QN1J^bQZ5%b9l{=r#6kvE+7CCcxe(LeM2wOuy+UJO6911{^A%wC*b zpRK#)0rMu;g9le_{kr|=`gVgK$KA}Q6|Q=9ZIw?B`>%t4FUPB$&DY&}`1V<8m5UqQ zoGe+&7VvMZ6VkiiR%I^n_r&?9v0DrGb6r_}xK_ews-44w9=WMEA;F9zfyY0x{km`d zhwDd*V?Cc9yH#_cdCQzVUCEBeR~z-`d_Kxh6A04iDiXkcy`H_MXrJMSl7bj-%8&yjv43bD;D#fVCdbckdnf@1JwS;h8Hti z9ybB^P#su{HvO^waOKyRTSso?_?K$3Zr7KT{TLf6!f;|yAICI{2}&9VLM52yLyK5Y zvo8Gn{4M%@Vd32ew+Wr#@!R~$f@i_pg^T+w5A&FPGH@$Pcp_l_Pr0V}a!Gb|ul}LS z?zO9oG{iSfopg`)z?0@lvImY!+~RyPcWL&s&gZjUJ&Nw`Oqo>~vuBdW(U~{qO!9m( zsq!p?J2bdJjRyA2Wq+bRKAW0%A^OL(w-@K^H20d$JBRVG#~O#n%L=bwxqALb?0$j& z3@;M@Gn~|}|7RXo@5)fc{zvbANBtLr{|ry2?*Gpqz4)Ja{t^3M67`?F?*C`#y*~e< zgIwc(2JY>TlEANl{a$^V(O{XfIw(&t|S*ca3vdi$gOKZ7&> zKhNm@3?FydKP>y>{GVZA`+o+Nwf`A@+^zg8!uUe|!|po8{|pxn|7VyK_MhQTUjL}8 zKJGev{ZIX){UXY)YqF;oA2=bnAV{h6KrdV` zWnf@XEpd$~Nl7e8wMs5ZO)NB7LkAO*4^wIVak$|%CzZiMM*)O{-rA`%Ffa(hRXOM9 zCOP=rgmB$lLxWadJgiMFt!HM|+LR6`i9*tH@v%|9)zIJJbq z(9*!C@ADxB1_lwhv}bN&da6%qUV2FegORD(>(j?{7#J83+QIVSnJExyi|yAIqWC5_ zKdq!Zu_%=RdBq1~t?~)Z*gI z{5%G;pQ#1m3=9l%Sk!@?iSR~1fdObCh%7FZa1V8`{Q?D-1{Q^00j}8Wn{MY)M34913L(LwWB85kJ!iPZyjmW7dlf!XVO^$ZLQT3ECOWaO9R=cbkvWhR4d zEhtJYNh|^TTS&A^3bgSXi!Mkq0wt(`%!_So`NirhHAzI={ovLI4~{2YJ$N)S zoITu8;15G#adA+|M4|uFMWT*W6x``A|1MYlo}qs6p%7yWz7?}lmrUkVoEqwKdQu^N8Wq>PiC*zy_5!jg?XvF5(V=G{PUx%p4UF&(Dvl| zX!&u5qqs`llU;8?N9E*mAR=iUz@Z~IHEL7!KtA~>ePw@PIJO~MT9eN`B(g4m)-B7H!~*Hph#x{ zm*}L&?EjnZ-<{QZlG9vs4#TdvoZrbT9B-MCD(69 zz2SIqn@w-s?OA)+W8N`bRF5@Map$`5MV#xvZ^_zVK8YQyRoCv^i~4O*%V2aR^c9-ap&Ruimq7K3jC~a_01E1_lO&WRD&6g+Yg59Yapm1eIh41_sUokH}&M25w;x zW@MN(M}mQYfxX1j*OmP#i-e$t?t8IAI~f=l4^@RklmsP~D-;yvr)B1(DwI?fq$+@; z-=cSEaO64}MV>#;MJ$^>ave`xFtO-A_mP~lPVHyP{!n<% zP|v-ZWzU1~y^p`O$UF7*yS$kl8DjWp9fRBl$^XylBtm$%uC2G?`xd!_p^W?7JJ#pT zw=;X24_|e;zrDmPGW3g(pcUiox12RC2X6LHp0IK2#T9%@cV4(6`)c~J2^-)3&%P@; zN#G9Whq(?vteYd`c-j`E8^#<>6O3}5VLS2LM}G7u!y`I(UwL0r-u8D}nMMA)?hpTzFRm6iEdSt>f|j~Yw-^Hh17m)XUkKy*Mdh;? z7-VEUT^vIyZoQpbSrQVu?Z5r@AkR=WBPRuiLvtoL#BsPBTH?U0bc196HbHi&w~4m3 zcWnxHW-OI<&Dpy9;Iw6L(-$kPk^l84^S8ne38|=*Nt&`e0&Oi0P7^d8gp3@5JVR6e z|JxBdbyho1OWf-H*>|U2+53E6^}B!bHlMfq{ib-`AzLoNmlytsxW0T9UKGD>onC{e z9g7@G3zMLO!~*6fMqY&m$qY801F{dcJ>7oW=e?@Yt}QBZEpkjpn3)?69uQbye}TJ$ zO)2o?g@r;435!C1lscFeaB8r6H55;~Z@NQqsW#`%*Z$uWzGx(97>J!d{u_L6Soa-X zmwLxn$m*|W9*aDC4SxlX1pk*E+4--zgbU<;NPh@lz_2{*;?0zjsCRiR^89C*=CN%G zj6SfpW%df)B-?@+yIowCKY69{$K%281DjX;vfUAUZ^`2T-W;}T4DK&eu3lMaX~h}G zc#J`xiGN{~-hZDROf@Vu2|wd&SMsSXJX};PRA=+y{ek)gQO5t*2t45U5PhZYP|Ds5 zfi5K;dVYuGS#{W#UCvrw-EuNz(Y}3hlTWs|Eml-gVw&rBJ&@^*MhJ5~<3Em&DE~4R z&bOxydVYvXko%zZis6*Lh=|CCce~#Q1qV0BtxrGL#OgEOZm)9d^}r0qZH(THPOneu zNgwI#_$#QXn9Cys)F zYu?|N`w=2ory%!3_5;_ej%#hlj=8N`z1sF(hKZDA@iU&YXV;3wdwOzy{rXkz{mRv= z7q45l?riJc%Q2_db-%tD_RDVi>vP*(8zc|3ADA5Wb89+9x~@(zz4Jxclg z?d`g(!wD10?^U|*Dt)cikdl&eLVbRX(1u-F>n)Y@pZ^btvo`UaCO1RvG{3D@yvX0k zbyuc(dwY8?c(uaKWuB;@Z}io`=+FS257k%vuCxC9`SZ=az0#9Uwp`3exx1^h=F3HQ z6EicbCEEJ>%U7*B^)MzkS2z9qyi$vFv)L!lo_#vE{NBcu^A8g_h7;Z_YS`YudTkA}>cM=bH%5HUSHJsLdd;3T z&8?(l%iHqUSlQKKYm+W7^W|gG*3(Cr^Kh1Zcofm^jhV#l>Yd%M+ZQR!u!t^h`d|IbcH6WkL01Ewo);ElD875*g079w zgObO>2l(Ik&+t)ucW3A0kBpj{nqOXCUOsnGS^ta~5}P(}wvEfr$S9Dwv$J_?lGPXH zYxm72iHP(bTKmjvTg(snYvSu3Uis?elQwz#n!}CL1D8kC9+DTG!nUWuiZjo-uFfvL z<|C`5q-08J>cly7d{R{{BllQYlvz15$%OCX% zPkcppsvcMumfbj?S@YZV{QLXPw(&~;c+kw>(b1t`X*u)Fo19~PvZqf>RKEE7>z{Y! z`#-Nbe7pJ7DX+T!zwZmn%lqf#=p65te|}-1^OL7f1EZq6LPJG^m-!@qd2#W}ySukt z@9}MwReu=Wk|)T*)#a&K=y#a`K76&wB^=IQizU0tYstnz?Z!fO40dj&r* ze6U~fPfmK@&u7wNIuQq2xy5DPy}q_q+SAk1#m%kg%?(2yHs|F63~T@PgspyhsFnN9 zuF}(vvTm-fAD7$z?fm)qx%HKO-lgd`D(WQ5d$!JSZQkj6P-jJbw8)u737h`p7g^m; zIvJ;PEttR7U+rt{1WwP%9hcm9YCrSi7BszPWPP~RYWH*w*R4Mv&s{&?vbe3Qi);Fs zSFc`Kl)egC&UtsIjJn^P4;6dYt?NrZ-e*|;F6K+s_pr@tSre`+-k7+;V$SiWe@YLV z7J1t*Uh_=Gn9c4`!wts_k@mb&rB@|yj?X*w@+_BBztze|5gD!z53kn zXFYS~$jqyF#JT;@_Lt>%Rx=#6TzkBP%U74}Q@-4z=0oK-YaeRAGr7Ofe-U$CkLsOc za}Pc;n6=egpy^fKj`Mdw=#xJk0_siK<2?z-_ z9ZcZ3aXh)dr-vtOO~k<;A0NlAyJ~uO$%-odW7E`Jt~k!V%P+xW-)FjPzh>vyZ&kiQG^1c!hmD|t zv^~?ZO`A7Yem-kn`S0g*%gRqn;+ZaGnE1@InR&EZ+&J%!#i7H8W!Ldb8ntXpK5kU| zt0Zh~)X`(T(tqEb5f&DX+*P7!oPKW0%)@b>8#s1{%B=m{m}`^Z-e%sxG4bGCiOa=I zoa@$ga~|NhvcZF$c7R3VnLgxrnV&=|ISF7^uPaFKY?RzH@kv}>4$7_i&cu{S5?@rZhRtc zBE=gS8TsYKL+e8Y7Zy1F`E`B2nz8Za^?N2ynpE*}>GTsPPkx+fW@B^5jO`<9^xNZ= zHV=+@cRlxuaJi7}BzZqu=>NZb?wJ#8CTFJLbhwyblU>$Z{eewAP0eQ#Ea}OpYyuP+p#-gC%_4W0?zp*A>Kltdj%vP>A7mkZBByZZb z&rki+q{+NYSWc)D7XyBOQV~QYIP-52Ghem~i06#^js3%h!jm&N$vDJIAuP?O-$ek8#Q(brM}yLEfbx+P_v<}6i(x&KOlwd6Rmh(c=#lUv~(b1=u`OdZ|dg5`wpO=?+Y5e{= z7S^pRFED(0cX#%R6&m|>bQ`8k6I-=v)rwWC9{u|I`p*M)`wZ0sc_MGtyqfENP@&|y zx{=*S$75e+diZ4QzBb{=;;fmIuYGK=WxQxnX*)Om#PnGoS$f?rzpL<{>*roja9ini zbW~J~+qG@C-kE&Zv`SWBix-D;lF`gbHnR^FX3pC)uhD^GMjh5D!#|!ri&=bnbG468x_q*jecXk*) z*tcNm($=@Pw-^8UQMmr)mnz%fWj>0=#*=T{h**DU`&kR67tM=KzOw6fXVXojlaEl*?qOYzI>EioNPAx=bO#vZ|p2icUV}>%F0^v<6*nq+4G<@$F$YN zYeH(l(uL_6Qo)n|HNRK=-_g>s&+h$Og_Z^17`1c)_c|&~x;^bG*V(gYH|5>6>g?|? z?CXdSB8ny{?EOAebc6DhkH3YH(xK3K6^IF#Qc8l!P}1|%US;DUWobj z=B6^JrR?$JnzET$*t7HV_2<|9S}9{$rlN9U zSLy3J>!b~4`dqqjLBZG8H#YF|+mFfVOieB+-U^mAzu#^*s{8Z9jPvBbj-H+=cD27e zs;YKZfuI`h>Ff3T-+2j%?NENO z{@=aWm>3=7^m94eKUjZ0apJ^;ySvM8x5Pw8Yx~>%T=MqUp32WPt5*3ndAdA{G&-)wRrmJW|J!j^E+l`$xk-N?^4B}8zaAVB zapL9W<(3s66x99ZJoxqXb&ss|G(cZZ8!Tz?c85tUj-FlUbjVH(Lt+M$YFku)(2XtL z=a+k;ZvWGB`P$?U4Owrt_HNO$mQ`n5Q(`{*?4>(zZcfwF)SS4`xxLJbU0PaN+q&${ zgzxw3?{CX7)zk9>MeWZ&pU*E{vc$zK_m)b(?Y9{!>gwJF1smKammcjB{dBkdeq~L+ z--apsgeG$QzLue?5b5G&{Yo=>Th7E2CrCtbm zmT{FP?`C|Po2;v=JIA81$-4aAj+kH(R@cBkT$WqfDmx~>U$Jy)>!e9Saup94_x<_g z&2CQxm&;7-MEbr z4_8fI8p^x&6-QTgb~dQE)!XVDC^FNga+6Nno`_|BbF~5k1Lgi&B_HdV=-MrIlE40k zbNgAFHSS?y)85?L>h0DeaWPTXd;Rt9u+^oO{||BNmxO4q5TEFIPW05g26b0ijV;{i z=jTn`vc+V(-GXLz{;q=w6Fz+^s(iI_`5msLLoJ*|e|{8Z=H!4nk27tnx1D}rp{M7! zE$^DTM=-*4S#ZBPDW8=Wj|qEf)Pe!*Dul0CW*(_1g?wQ`^xO>+UV^mudb}*)3?jHVPIMP zZO!d3+w<>F6V(nop@=7S1bw{DeNFWu`_`Sa;?S*wdTH>X#x zEd`l>dwYI&hevYq;^=Jd37MCdoqT%w-frW?7d7_(eVczbDpFHZv*^>4lYK(_0$t{b znQy&+_ZI{6gx7)LtPFGg+_&e+Irm=3+PY-fGOHKA4>q$4OG>`{IPb%Ug6RE$fq@Up z4)<@^VDRkB%*UJDZruHxesH*<*yWiW1=|;Ka=IUC_?Q55-I+4z^vLhfS=FBY9Yz-}~qMi2^yYsvCNIbm$`S-WC z-dS0zy3em#xbR^5iCTseu6Gsgr1Ca0Gj=VCnC-#(LDFE7-@OOcrlwP`$5r!gzS-lp z_@m^%i0J6k+j4JLyx;r%#Oc$;uXB5Qd%s#U_^iJ^dBzJVA=POGfA|ilUg(<}5VAG~c$yO5&e9JGMel5c!C?v$Cwsvp$ z)EDe#iG}t%q8%S!V!xrP<$l-GW<%+sxh#T-*Vo0aiQj*3^#{i2h+Xy>IXO=*sb1GT zbtcVte$6M&>}zW>&zsE@4@`YgcyaT3-P3lie{Z==cMcR$Qc|kXvuE8=_?YeI&!2T$ zn?8Lin!b}sTT5HJ^7Y#7KOW2f_we=gjqcjpxQ#F8=tcW0s++H$`|<1b`qUd65{1OX zo?UJ=D179isjvTiR(x^sW}WD5XVzLD`S;@5+SxkM+kCXNwV5^F84A7>Utv|^?y#fd zPkA_Zyvvex>-_j+EEMX0o{mqsx2JN_ym@+pf`WN-3#<0V#Z|pj-Tr%O*9t?Y+2;Av zo;*p}U*q)gED}yiHxS^4@IkLxXam?;A-)rk)Utddp{qn`#-P>jCYHr+DS|>iy zpuXk(!PlTIyyXa{f;y9+Zx$}QbGJTw_*HUW(Pm`@k%-P+&DU&OYkz;+ zm~fD3zVh`669jzJCSSj4u{ZAgn#j!_{{HUkuiq|v`s)6E`@`-0-&0va80}sEvT$8+ zynXxj%0+fcpT4gPb3A7t!LupnrqRWhC2!|7%(ScBHD&75txF|*l{UFt(Ky`qS7fm) zF4Kdv)SkBa;-!4)6y9tLvV0#>g#K3lZ>`zx|L1t_>$HA;qSdYw>_u-l`Sp5v0B!@^magC;Kg

1G042MWSfrK{mh9+w{EjBU-0(zT#p+qyUd^2IvzUOEq=Fdt+I*9lnomU=Fd&^ z@bHLk`ClHg_(>DHdM~2|jM) zbEPz`y!K}2$&^W7Utd4{;9#?=g$1}~Z0DE%CUL#;<0IFZrrFb+)%O%Ubjr-i`t)^$ zlwhQq(%mI{^VBvJaouu{>#swKIH_Kf>Lnh zQ_=W?;jT)bW<)%yddK;&T0zmpMNWJo-|UNgEOl3s1OpcD*QG`u;o1gTED$I#x7KZm@q>W`1(js#Tx9sV++rtn{-Ad|Fa*{$a=gfh)WT z|Alwl|MYu4qj})-!vEX_GrsOm-@h!2-+ZeITLsJ2z^P~Vdb^0e`mSW}^0zCiz25e! zrRbVn|)qr*uxfzN>R#reDc zFO}K8dR7^&>n>PkD)+80w?5pRKdV0s{jB2N=pgEN6hx?w-B@3PyT{ z26{#&3=BpFMut`fCRRo!3Wk5A1R0qH8UG()kY`|E zWMu>ch*uaG7@3$^SlQS)IJvn0A7R)kz`(@F%*@2X%*x8b!oa{-%gDscz#_;hq-f~K zCLEZ^u2d*u)Hrb=hqBYggQ7tfKd2Zd6*X~kiHS={N~x-;YiMejn3|beSXw!|xVpJ} zczOkggocGjL`Eg2q^6~3WM&nYl$MoOR8}>&w6?W(baqXeJZ0*%=`&`|TC{k{(q+q6 ztX#Ee^OmjKw(r=v>(JpNM~@vpaq`rq%U7;myME*5t%r{uKY9A>`HPpYK7RWA8K@SeRMZLH=T7DhGL7kcCyzkWI)jkUgH!&=ejElcChe%F|Z(=3>6W-**!wD<7g{hQlX z7C$}vNH&UFC5ll_gfLWcx&s@gq_SP8tRe?>36~t*$?)2 zn45j{n;N;AGY{$_+L|${NMi!v;Q;n2L5N@ zdHk6F7iUKO_ka2SOym8rsR}9ncW$3i+r7x3_il49a_a=%@sKgq{)mNdoYx}f&k2Ib&g=nf2X{44avj|iu^cgzHGX=)SzW&d^ zvPW>ewb!niSt)NG&hoW9;?S_;_J*d05_K*$91as&oG?`8GZ9agFh@Oe^ZGHT^Q|ip| z?BxeuZN7Jg?}Ddf2=n_L!E*|%QhIv+hCj4teG$iXdDeN?EuZ$>T~;}_`=qhP0iEL? zEhGXw4@jCYKK{r1ckceHaX!}DsU|`H0_sm?~BWJf+T-hw|pxtUOX(OX@^V{b+ zj~D!BkYafMV%0bC4Ow9Z_oD57qy@aVx8N$KhfiPoW4`D|-~AKUN_Klc;ds%O(QJ~~ zCY@aBRA3pz&wOc*@X`C5w=GWJ_59HE`L_f<{%bEgHJN{xMV;VIoywaH3_p8oeu)*Y-~4Bgtueo_r!uYXF8}0}?t*={{@J|m zp3~FQ@Ou73`+GT}>ZYHT_x#~qTOl6eEt{lqVygM!LPlMY!#!_Rm?!vgCW;iw>U zS0vDZ6&+VCKa}5cx#HAA)80gt_QN0TnN_1cHa-pc%E8Zb`0vGYUh_Hk3Hv_QZnm$E{vZPX8>*#nq_{6_AJN$S&&p(Ab zKa^vF-ke`{?ts5sRs9z2*L$r4wq4Cp+`D;dYEvlBn&l>pr)xs5UU&UbygEks^zkP> zrKjiazqZeK{ZjjkyTKcepdxx)v)c0vW+r{wf_k(?_O#R!wF>HIj{fv(P ziuI1`+5XP{8g#8{-L$vgWxTpy@JD^O-n~L6H)ZFJiOFrII%keEa51c0mp#o+_EOrF zt&-EUE80BO*Kb%+!Y`a@r?xSAuiiV$3w;hY{VUc_uhXt^pM7lB?xaohQy zA;SHm)X5*|rK{Z^uQj^uwW}hk@`?xJ!wE9m+%HHm{I=_2cXVYC33O#Bjym6&dU>m2 zzKqwY1!5;(&$@QGv^&;M_rgB;9}~Wc9;;aX&v|mK_|Gtt;?ubrlf*S1d~jSZ`FOeC zo+(?yE$&vj<^7i1?pjo3-aRRHL;OSe1(P@ax*pcINh2lURFz=dTCEK$){B)KT9US| zbyd~6smbdy%catm=gOX)dnjj``isLqoA@}CCpajxgr3rNI^S=nR%5*H1KSE&p6OP) zhbLy2xhs7A^yE0>f%g|1PP}mXQ2Kq|>ZK8{XT=_yx$?GqaeBdQ)y`iA{}P&;IGzY_ z92EWJe&l>x`8|fK%nK(ycimB>n|I=g+`gC@4=iMV8A!@<1n}`8R~)<_rZ?(%P~&Ny zhG@11E3Tirzx7-^BK2+VYL%K8m!$IVvh1JNFA<&E7Sd$vTB-k*GdtV9Ve!21z{323 zUasfUPTs0_%3yxF>x(~AP1IEz(PjP#8~?6idnQ`^Z_R&(*2=pgjF)~KK5n(Ycip4; zAsNS~aP%rmFq@tYbY&=!6Z+V<^1)fp_gl6(yxScalOh-!-fL%=^-u4@qRTug2b@ z{u>Y2n_ZQuH+GP_>8hyc=E+cfO>O;SUT&ApdA|djY!_SHo$MezB{bLW-|dhMZQm|A zst9Y8B;JwQ>>yYBX#P(=-!Jh`BXpzhY5ZrH@Z`ShztEPepC$Sqdtdpi^~a}mb-2ez z)q9g3a(>SJy}0aGSagVPxK~m0p2)7r-Fy6_E}K^ShB2z{X_)`W`AX=okJZ&X-z*o7 zK5=o!JMBFe_N4MYyP>~PJpL>;)@#C{*$sEzI0Q~Ua8h|KL-q1EUmv7Sefn|gpCD%8 zEmCFP8tR#mD#r{C^KOutIQOR{L;r%;_RbgA{IOklGgFLn)3r;gokk40eQRzoh^ed0 zDe^R3=pg6&@%53-8UF-*t?pP(fO_~N~@-y zEfhF@Qr~`Udd2nQRm=NKIo{=;=(Cv4$z*P7x-=LT?aJr-!G0u8{noGA zZVCTCTkFJj8~(PhSaE#E=^W|bI~VY)E!uTnu*Tw}ew(vrb<$a`uhZ;Yi%J;6oge&X zka$(ceU0_syq_#d9ua@m*}k5)sKNSe^<(y~uZK>5JHP2jeUse%-h%Jq<>Ez^(~VCX z|7WOj*Qt+c+xAEMVXgDgS$C{*TT;6P_kKL2UzEXouReXh(AnBWF)t>!C#E^OJShX_Avy*9pcb;r6?qN9aj#=f2odJXBm-u$mwreHttz2#@$*%2d+x$=Q zN1{#agIs^_Pd2X?3r;)3yRhYz(Tuc*MRh?HKO@`Rvaj?^nR@Y+o0r#%AB(y)mIZ`w zs5@^b{qOR}rN?%B%I){)e(G>TS7qUZl;o*gD(4lR=LgRE`0LmC2X38a{U1)<%lvcT zSMQPOP3AodT@{qRzT!G2BWEO0>%qP(&{a`^XL6$hcg*&_KeEd!jvxLU6}Q4u(A(9{ zvZwFs%9Rz<-7YEX*RHsIi2eJV@EJc&Kkjc|bSZz$mSdA%J@dGwaQXmCPr3=?XV)wC zX}f3f9^A81(wy&y#aUOcGv}Vpcsk?Bt;~bN_Yi zKLgiiUaf;)eWNZNGyHsB>zKW8eEyGe_w5%-q;1V^8B9DZ5yNP1`nX_s~uB zSmfBS$}sq%D}!rcKJOJ>k&kO8Za5ew$+j==$H@h?3zoj3}Z`yL7vm%de+il&mr*tNr?~9oDXZ7Q{sbBIN>dZ6B?#XYwY}#+e-67zT za?H8m&HUA8g4nO_K zzF$B1?COt3Y%69h%W7TGd0t6u#jCL8w<2TW{S>!#&ON{2Wvqbji=H>PH)&t@URdGw zJW$*8gu(5vPl~Qy%!uP_I-c`=$E>=A^{v^f7#JH2v@b4hc^&-Ddc}i(SN(UaO-{~V zep`3%CKktES7&Lg`?7YC^`&hcKbarfxBX{$DDz`#{WjkZui`%%^y^NGH=JEy!&CF{ zgXPb%&vUNNzkaEHOIxSu{kAQ=Y5Inf4n2G{Rm|vs&VrgZ_YX0N&$MfsYPO*u8 zpEr5g;l&x(tYUY2T!@T5o-gg;n6zS{qXk1c^M&wZ^Z9i0O!+(GWZJIT8@XOloY8wA zQ8`h0Uae@v@5g=FZ>t!z&)XTlnm)_FVcCw2b05sEYIsrLS|wZb&-TO2kJH;yFHL*k z5ZTPGY^%Zin0xi>-7llOS9hkBS*qTcm$kPlZubZKqq`i^w>Ro9J}>9_T<+_^`!8nA zn{j6QHsga^9=vyAf9@ax>ae`sCv@w0`A21MPZ5Fjd(y9j-!%Ogez?~oGtTx>o;K4X z$%})N)C8IMmlj-M2y~6vc&U`vv*~7}zoj~Jl90U>LlgJRw<-KAms}1!5lOOKzj7Z- z*7aN4o0m=c_sqLftZ3n!Cy(~zJN;09^fsASchyZd|H$(yb)sL)5BIZdZ`{Im`QDQl zm%2rC2Q1+J*?8V?_OX70T2)sp#kN1&_d&JBUCB8(^h z_+3uCS|?f2b+2q`AyvwKJH|&yZQ3kKArXZUq9&nE!}GzxO2mv{?og* zPJKAjoO$b&35S)NoA|vL-q~^1pNzY(|Lx=d44zNcuYdi7zbXDx_!j-&75^D7RcgQf z1@2*LOCPC{owsq}z1zOI!n+T>>N#Z>+}s>(`dD7#pXRzwmRW4Q2Iimi)Ta9XTKMwo z0{+>03(c+y{+Xqf=i#TsWig{0h6Nw|b-fH21_uzy11|O@rxa(SCuN=-h|=TzBI=9-mLqWJ;fw zd}&3+=11$>{^(~bW^diKi}^{D5U2Xj@H28|ACE16TpMvO-q0hwBZ2*CPkk>#@%3_} zxO=|E#(9&%^^V_})z+oKc%t=gVAV#3@LT&>KKxzQ{ZQ73WqXI0LeM*r)XwLV<3*Sp zPdvDO;XYfP*3U=!ysszMec;`8dFSu@Z{}Aqe4nMUsKG*B_&>vmy!b``8MNAcF65P} z^ES)a-uchq_4ZxKZtc^pvoe}@eX)EUE-EUb)gV&BwCDVrr&^a*nlDbb->_$Ps;;%? z*2_t^xp?p1`D$9#rG2RVF2+YN!7U+x!2jPujPCeV-lw{pgqf8AQKuu3Pfy zab}!A+2rYy%zN48)||54d|vdMEx7wrdH?8nxzi8U^RK$)=KJIL4$TUAs)xZiF1sPEeR+CIQe0UoJ?csTS+l%#%-1h|2?!} z(qKLY@*$(b6Pb`l-`==BnHi@npYCL<%@U$yeX;==(yv=173uP}N?TK z_R@b6`8#a_rj?mb;D1Lx^37abX;*$D@6par+jH-4Je+%u&$uU@ZQuL#4cc$(+pW%j`_FKA zEq9>4%_P%BM|CF8*?m&}-QCWU=OQJZd@4R~!gwVR93vtO;oWr?tB&8?W0<^DnfH2d zTj_s>)XIMe;ajes`p+Q0b^i7rA9F$*`%Ve$k?W~c{u#hNCD5dRQ07V5 zFZ0{t*>iMl?DF=wXH33(cU{eL`B&FB{JOw?=1cgRKUp96WS$DQv#A*-oh<_mA%5Sf|680yB9w%qa-mDefza1W z*?uy|UC34Ou;v=w=*Q1n*ZAFb*1auwu(x9U)K7&y7aintD#VXXt24jgwm8eoYNKb8 z`V`a4*W2sP%gOHFd^x{#=H16zcUdQOe95U7t?mWqdeFc}`s-cuzp1xxwT(XcdEeno z-Sbm-=l$)7&MPRKlWbx7p|v*uoP5q>M&%olCw`jZ9(>(; zV~=pWN&sWL>%X(J?&vShw&JeLwlQb=XsmEoX;({*evD>sQRVN)%j@TAulbStsP#j8 zzscRON|k8aXVQDu9jNp(n{|5%!lRq&*Xnf6cz)`?}zV%Mad7`_B-x z`C6%2HFtGoP{#EicUH30vWtGXt&ysAK%lBQGV0s@Wk2%0r@i|3%(}$I+F2(3GE;+H z(vPQWkFKt9n8q@%<4ZLI#gbnX57Df73)cxs%FF&6%twI*<8n#c9k z8v=h^V9)>X_~F*~eP5Z5&f>LF{(W=f$!~IBzbxzhu>Vk%?xKTYQ+bxl8=o;3s;yid z&;Q4sz3q?W@*77Mm`{;&JFasiWpb=7L*@OhI^G}2N6gkgiR#u~Q#0xCG5*U-YYsm; z&-F@<|JswwrYt|FPnp0cTkBeTG|v0u=fe|T#qmgO@c%NKokxPtYaYk1@&)|URxkNr z-kScgy(_om#EzZ~m9sB0KHItLOMFxK`_zw0XT_JixVZiD`Y#Lk*OpbH?j9R>o&0|E>(V#`cFvAG|yl0xZFPVsCg>ao_&<>EY(e`H?Vzr_>|xi zBZ({Xr<%(x4Ck_tVLY&A7q~6->p#PT?>+k;>VGiZe=F^?sja=(_UhSsKjc-~bt2xy zttp%qe%$K|*N@8&+k2ON@bAgZoA=1&(mNT~dI|Mxw<6{Vj4BJQ+t~a#Sn^E2*$5vl z%@;koXX9Cx6>^r!38!AUIkFTu$~)WDE zPHB)6>i%lO_4f7i`Th4S+n%5NaJJ>(A@i9fr;2Q+|M?Zb-W=}uU~Z8-U&XG&Av@eE z5+~$yUtzwt^Opwmds*f1P1j9stbd~(xnOFMq;K5%zI`$^9{WDnEfbyj?6Ru;-iA4E z|1)HSU!PU`rmAl~>l25LXAZ9?Ha9znfqDzt$N$+^oc=9-=;M#7bGh4Zt^f75x2^Av z{A`N^x6iFl1Wu`lzM8deb@IZO09qC;2fjPx4?^xqehm@1yJY zo*M7+HSs4EjdltgIlseE%|jgu!;sx=tA0QXC}7_?vPZ-^I&`gP}reaJlb z9gRHGgib4c7GO5$`Q-KK@cPpe4>-=BtL33S>)Ipj?#h(5ia9n#Zbu^}WI#i(m1h}h zzq?lcXE=1eQ>@PN!sG3;a%a6=;-#-x!>nh(bGm^ssH(v(sPJ;8T_fhyfxGS=%Sv}t&gX!4h)%P=IwUpl~J$$gBy)F3qjq4j<+}{$n zFh6f%)~uZ39TG+h530Y6lXqpP`rf(E?se7P#kXE=dzr9)LJGTX|I0W}lS?r^pMBnZ zveY?qTxC|O2m^!XfhX7fvp>8)`hCNaYrj|@AA2C0u$ZN;^m>i*kL1Efxn8>QfgQ`H za7=AD&n5_3O~J zySloH+j|m~9J;?Si<*L(eUN`LD$o8In_?GRR=D3{>avl=Q>5>Ok=AAozfSHAP zxAM~y?1CR(KjO}cTKHkwOq=fXl>ZDb&rH(v?yOL>c+OEg!T;Vlw*aY+R;UxE+_S<~ z*DicD?bp1S#j0DM?tb4D@@n}{0XIkXCQf#R>(~A>@cdJY`0<~?TjP;+Zq{AKU0c|j ztSToypVad0)shEaS@+qj#%sg{_IoAa)BjlhIJ@-6@xRQW0+~@eZmj6lfA_BQz~7s; z5*z zZ9E@lzg5%x)4roWqb6PSv*`MR{lcdoH7@aG=u;@V?mXr8yv6q#EdDYdu3F#u{@>9h zx3+v{oZQFMUwmt;zMb@sU8j;oW~rW@c+d2Xz16SN2k&uT`Xjkib#9CHGr`|CJATgj zo4xqJmj(PyTX~JXd+svZ{%zB3KL%@+7#XS6@zFI=KZ^N#N|GznrPi&@T5{|_{TlhZ zrk`@IeYzcEyXWF2UulsPLUu@P4e!|Cb z@MY{&29dxx{g29zm(J^c_R>zYLjV0d{n-JY%!l)iOWba7>Ft@f+woX=%_#;`JDop~ z?FYBLU;N^|%sqvvmKHqQvfOzNFD$YQwSO;XApNxS`K(uuqPsg&W>v=QndEVF=8ZX% zJfBReJS%+O^y-oA;zB1)KJBbjnb>W-(NbmdNtMsD`Wm=27GdIV=iBegt>1FJ-REPr zXKmWK6}#I1Y~Aj=0>EBboU0ER>M?zlN`?jKRXjVUog$v!uWnlSX}2LU-2Vl|LS^IMa3() zlnb1aT+Cy%`}!*3=EDpXc2id(N)ZXkbC$3&Z0huf_uH0VUv^FHa#Hn558a&=C*F6x zTFoE-vA^9$r{~tSjhPt_nSbj1UYe@AMYOl*jqyAOTmFR$cxNo?Y+}6CtaIazaYNypdD@3<0)M;R_j}LY`sKvi1dY?* zWtjRph<9#oMy_)}1wPqLrK02r%}1o_Dyf;*G+O#~*%W zS1hf~@{qk??5aBF=!A*i{jMl0FK6j@%6{Ud!Tk0=!wz(m)`B*f4hv=+*$OS&YMq=sbXLY#@VWbCtW z?qvoB24T2j*NV(E|FpE?)Di|mO9P+2&xaTo7)0RGp1FzXsXnQB=_MHqMy6)3Pao4k z(GHdm&rE?xTWr6!5XCpa`DrEPiAAXl$ZOdcYn^U0FfgdVEh)(;%}vTn%*?^=dj;t) z!3+!xGFa3*=jRp_r4|=w=I1e({Y)(gXJBBE!=euCOoTTA3JgF?++=a7gnOui?H4Ek zXkbz372xXbnOBlpl$?>6m!9gDUzD3z!eDG@79BL7m4SglpIALmXIYw<7%}WfY+ztu z(88iMAS1sdKR30cC^H#sYe7+JNn#1u-$J5YQlOJ_u;_v$BT#}0$gD`sVK9Dp{cIEi z1A{b3ZDw+^RdRkoWl?5&MhQbeX;MyRvVu!~ZenKMwuy$(3=9lPFl8yJ#mPmP1z`KY zQJGYlnNy;hnWs=34A0#j?OJUE_o_2ALS zaQ1LVfjRp-@ee0`#{HPLt9(nKiKbgH=_fi`C73QVxN)*f&@XwF3dS3g8L)(+< zqvgjLj^ZkHPjjBR;ktQ}hDI+dA8~99c$2WRIr3yc=kku^u2q5i>|bv>RN1{b zYURdjwm-QKSLUY9d~MP`;fT^S1*e7{sZ%QsIL!&`6%o$7*n2KEw9Usv|0EE0n1s%fENE({EehpIv%N`ey06$*;-(=u~X6-p`#QWe0_ zZ_&FnIC7ngBF~@aB9=`bxsE3;m{|0m`$*2_y_FN=k~p{S>Up~{}b-6=5zbV z(7WO8%)b{7@xM1u6;+OHRmz*8SdpBNu}5Z??2 zsOMhIvgbkg-pAis*VbF{eT&?|P{w`k9qaSv z+nK%1hp)Qa-(F%C8Tv&?(2DW)Th5x612_98PuRHi;tIZ{J1<<3eKq~qgpF_iXWx~a zByflG!(4|S*3A)eJZ%fo4P%a`2}Zfju$}nrqr#sf?93H5o$AtDZRU)-mrd#T5II3m zYrRKixV)Rj=lh>hZbY|r-uIewf17sTYU99CvH21i@pA)TX)8YM_nBB6-%~Z~_KwV_ z{hWrkzeLZvKVufNRIJ%|GxtTtl_A?_ig&M7^qAMUC56p3Pk&dmo4TM#mT^D@XHWKA z@#1r-;Srs?ue>iQZ~MEg%p(6?_lJMV7gq}$mVfX`K}%hyTa1B$fib_xFNE>@qVib` z3>w*UK zVD{@s+xCCgUKP&$w&rP8^@j(6t6j6UF1V2;$il5Lfr*Jz$U}j1`knXXlTND4oO$NW zefh*BC$-5lPx`23?91j=`TXvC?f2dH^XL72^L$$(SMZEOA~CEd1I2}$cKnK5mY}L~ zGI4!v4U1H(3D*Js4=hs}a+r>%aUD)%+2X)|fm0$c*C5X5X6ZJ`M;Z+l37i`^W-z)K zIjFE2sLqRFwk=>@!P?b$`GDqvKE@)($I27Wrr&dtRVK?4%&Qva9>{OZx;%Z`gcEX1OPSX*lp8NqsF%LL|3~zPY5=33!Ucg(M;O*K zem8WTmoNOQ@q0r&!`cMf&SNSE1wO54n9ukzP}NS zXEtx!Xv*>_!6EZo(bvhoiB1A%8Uk-?!o_-Mb^lk58U4qa(&{>F3*x5o~+7e+(N z8F9$pYsBIZXrFuic!Y*CA_Ux4&pY!^-!(X>Kow}`mdGYlfyR4HB9-ifPO(5gY zzYr^H>y_))xh=mOd3E3Z{qr9^O0u%Hc9+S{&tJZ3)v2u1sKplpLPK5s{riLGoz>tG z*=ib@!Pn+pDy_&eckbLdHkFfP zt;;6Np6%`L&!4q*)`0^KK|w(}R$rr{qE@V3Yg+BI_+mh0WT)HWgZJ;(U&)r>VLLa^ z_Vl*g+dp2dUT;zKgyZ?SxsNZp%ctJkQ&~}IdF+p>z!zzDmDMdhbqkj|&Gp~Ct?}49 z(KDRUUK7$Kj534%_(tP+}6g{ z{X9H8JUBi+|Jw|KrcIlSqN1YQY~wi`Gcz^U@BJpV+<*SD1cQM1`1958_a48tHrle_ z0YlWb2+#E~iz`%w zKL7jueslJ9y<4|$pPi@OvS8P)sw%7X#zjr*|yLa!DsZ%4T2+W;3HzYK4=GF9Bvu0I%zgvEDZ}s+@ zui4qyCQX~x7PPYD9)riS|0+Ea8Sk{!x4+Am(Ybwg>a<0-ouqb7amdTdOG!%;5=puD zBp@v8*z5KC&s|*X?!M-Xi4<@6x|oeSl3u@i_w3i#*UGm_%E~^SRG+`0`1!fO>AxO6 ze0XM_t@O+@ADvb1esVPWt8+1Vk7Ho9-tSZ8MT>qJtev&YQ@1z9OJSyuo0AjM!i5Xd z`neS~G&B-^e|tN}x}2~1V8g`>m(^E;;^O>#eS43-{{HoA;n!DJ9nISXn)dCp`vDE)KEZ@+$a`lD{6ZY(}Sr@lA>*Fma4!?OeC*Rk7 zw|;hR?&&#}#Tohe&%a)ee|~AH_u_fa-@WroOH*THWaO*8wvk7ByO)~pe_pPr;+5A! zirs&3878oxQp`{N>A+ z8&8FW#KxZOlePZv^{c9>spwq4<43#2b+wMm$;qjxsXco6vO;;!k+VA9oGOZLrI|C9 znKi#y9#-7TJXJTObZT+>6|YCk%N9@A{pTv<7j(exd5*IGWE%MSMJ{TjQec(YFBoI zSS7#YQs9Z0?^5cmH;rv<=Dc{35nj&Bur%mo6D#+J z&zrU8ol@hOYWYmHZ^H`pnSFOJY@c|$UUI@BV*k~Jm z|MBM4)hl-f_8xo@@qeyq!71s>FH5FOo0eoE)!EZ?i7`S*SQ@})~#zkDfqc5be>mlv0y zpx}?6KNp5*weyw*2MfEpy7GN*xZQm3UYuUs9*?xNXB#rlBp58X{4ygyfBCj;(@sy< z4~~fN2n-aAjEwwqd;eeQg9i_q-8s4BYX{>-rM5K}emtA-vO95`(&Te0jVda?diKV= z(pa!`dnfB$?+B5tEt&fSg%?R%{^5&SJMGS$7`y*}ild^VEz90WOq@9J$kC${XU_Dj zs%-^I-TnRfcbC0Q`u^_jE7AJ!QCbLd%0|M|Wp-2`Nh}-~DsR#r)(N z6R90p$?>x8S^NQu*Cl0!@U2YDtk9f0+vjls)72|iKJ?fBX})&tnqy#mSeRR6q-6TJ zIf^DGQfce?Yqsm}isKi~wtlOTs(KZ1 zrBuD#<*w(B_a@6*J1wR-RPCK-oPMt0*O$!AT}#~-FI=>!>C`DNzj-#D{r&uIiwiHc z&SMf05dl>pJ#Naev9V%vw^_~YdwjfqbJ|&{O`A98UV6I3u+F?TJ&r{S#}zFCU%q^?(5<;5XduBO=Iof~ z3iABn^uEw#9S2{YJo8;yQO9JH zPs_qx7oUgD|8)J*-6{hqtt`Po9pO*58lTlnge?%SN*M;$IiOPPV z&uX?cWnNzP@k+4&!iyOG`|}H(+bycTtT_53Gg?qc=#a3#%|YdU zo212z7n$5NPCtuT<9xe&_PogGeC3P!UsjaHJ}#@b=yjN+GI7e3BcIRP`=_U?|Ni!N zvzGhmq;yfPXJ=*}PVToo_Uh{D&b~gmtFDipK6TB=&@fIrlko6R>yo8QKmPmuJ~%GU z?wv!WzP|po_3`KX>;ELrUL@B3(q8$EgYweJ53apDBQy7y!c55%6NH~i9-ecda>wq- zsSQ?IbFyAfJDGB3p6zV$_?n65&iVDpTBn5y%&_#BbVRoN&cXBb|B5$l-n@2}k&5S` z%aMr^i)wPSp;NdaEg4RTmK<@%sAu;~6HOX5aslcBUe$c*4mPo#<^n&*#_AlQd4d z;W=-%nSw+f`y*-d;};q>9}Jx?@$asAnL_q2g$WY`SIs(hspF|mSB%q&@)^!^t_wf< z7p5U{W`^P6cS~zsTv+_=|C;>&r2jw3xU%ig`SbmyudjW4vAF+M=vL=RDoRR99o^l< z1y2rq&@45H^I9ys`G8{Mf!Jk9ehFf;)Ben;UUuL5!L5RT|LQt*i}vlir>7dWFknO0 zRjsh~ac?J>Jf1K?K(6jbqL@xZ!snfA&5dnsY*EqCvPNpoe`6PGS~hQ69L?*|{G4+$ zUzjk{)Prj}e#zN;)K1wcICI66zS49biNlEx*djokvR)vJ(9)0=2U5MSbg=<-MhZU#m3?5Vjlkb`nu-t*XuPupH4T^f9&k!wBvD~H3v^gjb2Dd zhzPg1-jg36ADda0?%ut-^7Y#7JIdZl6+b(psHxfcu+YWTXCg&Q{tt_{mBy|`jwM^~4UuI|}I^(W&hs;Z3A&&f13H|Nfql$D+R z^TT2Oo4d>PA3l7zWXTeP+FvD`Hf{3o@ljDyYHDa;2+^84bIA(4P(>O}Flkz^)OgpNhZl=Iz{_{xAA`?9($zC@vZ*R-GKNjM8F$)$fXn6K4 zEh;MN!poA!W;a}2T?K`N9!+7Ne)?(i_3iGncrBfD;X=TnLx)bB zI;Etn+`Rk!zG|10Ll=%XW!DNUetCnbarT+H8RuQ5xui@s)a9-ZZ4mx^(=926#Ylo@ zj(z>S+}qm%gM%Lj)KB(Ws$^+-bET^hGc$8%XXnG$>-WoDFZBs7_x0s9H8m9x6Pq+? zl9Q7Y)5eV(mE%{OY%@NhW|HyH&{@au(eB1=|MD2m@Wq^%v_d9{`B7oG&!4o3kEc0g zZJpKE$JcJHEy~5}=;*j(w{?ENo;`awI5{0xhTJke+Q&B6&pka|eed4A9Exqi8DBUy zME7(ltM-*_Ze&soyyvOI6@PBdhf0k(9o0~6R_UpvcqUBfr z3p(}8QYl!yJ4vImZQZ$joG*U3MXh{dw}e$E$@7ZWBc^4Gr&w>SnrLqU%hno>eDGDN;7@hX3xHTV!DnF%ca?u>sfYq%BlQ5pYC}j zONePwVR+B^=64=F-3~@Gdv4r_n5G|p?&s&{pn-+3IHy!dd6SE3WgtXZ?%)_%(3O)-*u_wL<~U%!Neg%3Bea(nptrXK5&R8dtGl*+PX zPTC?N-{_!ODfD*wxkDeWs<5Ax3%|0!*f3A_#O2GAj~sDX=0E>jm#B6|R@S0*>-tuQ zuP^%e=;*;EhfbaHnti!KN=iyYTU%LG_2|RPOTtz!U9#lJx;ZBD^72B$!k!);3CDUQ zmn>gCdBOyTkPs0^N5?QpJJpk0lpmbEwEqrIu&ZA~kRYd6x^@vQj5{+nI+?!=j?2 zPo6$)yxX@)b;s`ApFbSt-<)`uZJGakzl4Mb3%Czg-O2had7{5yvQ6g~KV{`Fa+8>! zKUg{^M*8TC=F4+dYE9*u>g8HcVBqQL2`Vj~oDejTdTlQG^6lHFM>>UVJ{(|9NlUX@ zlh4-N*wn=I>GS8@um#OcO+W5^-*>!AR9j}tFOdcr`&5>bb>&9tCbJ9PODwl?knQB0 z*qfJ^r=qTYTXa(4!$Yigzuy?oR&7-^F){h@@wj|&SXkQUoq>UYM~)r4!Op*67PLBDa$8Eez8)jeVi}-=>W?yX5aaCclABdn>&?pVjX!!Ak4CojD>dzO%#INJt+Lr!{PEj&HSc#WHdItS z*dmZDrm>+#JAB=TYti|JxwlN7otvBe{mR1YuR+~n>#{csHg3GQF8j;3Z;QfKpVhyp z>!7Fkp}60ru2_0qK&aN{=KbzT4r*~;@z#f*s9WYu%fGF5taH;QqmOSkpXZX7mk;ik za#nt-m#SIrEfp>t$kMa^p_> zvUgsEOCI$<%6K~8CHH#hLh~2Lthbyy;(xS4_sbzhmR0N5i~s*9|6j4Gsp(B!=Cc0f z%a?;jT%-0oUlzWr)#Ms~LF?(+9yH*em2tknNfSWr;0?)&cho!`Ed%|3Q0!-Olh ze*J}S-#Hf>_}QrDG{5G&a_yShzu)`+N4K=K_5EHt(=IPBFX`Hv$Vb=r|J$meqaz|K zE4yg_{`w<(zgF$d$jlU6?mu75{{PSOt|1{)CY(&+d+i<*Gv~)+`TrVMvbL^{-?BMD zv~kWd=9O2o?0&sa{`aBX-eSwI8FA~Me|ma)&#zajWvt73mU>S&Dt_kE)YSCh>(`?h zCYNsB^z`=TW@TlaV^P>NX_8R;^XK7VVVi1ym;L$scjx0In>Bm( z%U7=!Enj|orKpu&{Jt~Wa&Le5_%ZS4r>AMU7ykbJD`QtP<8V9woHa`-+&_?S<{=p`g}rh5eX`bSn>KHjU6t?itv_g`2*2%@ z2^tz20&LBR1vWiyi!CZXEb#F0k-27PWE3>Vs`S)VmO_q387slnSF^soyLO{r&ZobLE0(ITj(E zVJkzPJbCireZ_;dnzV!i|b98KHWVuR8&@0wt14O ziOH1E)nUBFV%M)+DfsiFaPu=}MV9dOaZA^&JC}Le%U49kPeEQ@K5T8&(SyzGD_5+L z(5bI}KDT_*j2Rw2K0I}Gbtj${sdy?`Sj+(R0s8v*_~dL}6x}^}`SN7n*=8S)2>S~N z3OdHd%3fa=n|y6e7f8AWyZn2FeFN3CdsXB3(NbxTB zoBQa|(eB0fmakpgs~x^>L%~C*RBNwh+1CK+_|Mx|G(V|5WTeC#J->g?oeJ~SS6diwV5TN(ShIqh;)Csv-Ee6B5+`SRt%#r<|k&(F;@F*Ut-#9z?93#1{rJ}67y!hiI*Y+d7d&H%B+q|di2}($un4Q1R(x->;p%Xpz#qnopkB*2Q{zcyLthtux49yKY_Ity@v6RC>lA#nx_`q+(eAuSTx= zjUf*k^K`w~M_*oEo-%D(U*_4bA3rME+JaK7VevB`D=Vvt-*30?EPH!v#q$gkDJ^a7 z$lYbS#m~+xT(>Uo(6Pm9*XEvy**a;G(7r#Pyq}$$`+Cck{OpHCOk1~XDfsuNvb%0! zOAE`koSTQ3`E43})D|yZ-2CTHOSbyJ?M7YiEBn=?ly?aYjarxK+a=gg4_TN`Dn`KLoqb;7}f1uIr$gxJqm zzh1xJ?w7`F^L#Z0g@hZ1!BrcVK3%hXxjH8&r!t$BkF^IWf&P&!1BW?#+CoNcRS&zAmvw_Lv8 z{@;$9HAejW{F5e4`tad{gz4?8w{OpWd3pJ4(=;_TwNGb^&tJH3;Q(mTVMlN_Xnisi4Gu<=VAdsh@*ZhJadb zIrEP+$Nm6YlORU9xnk zpo~mU&`Ou}*Dv3?b?WKq=|7)L_O~c_&~Ua@7Br3U>+5SyF0NT0%2UPX?CrV!vgFaF zrQVP3|Nnd6wWj9JgGr_L_EbJP(8%nxeDfUh(x0DFCr+Je`f5_eF0!GuSqCQ`jO zb`~%1=B(K~bIjL84b_WzYvtzPXK96Y(=&&T6yz1X{Ydqvmp`P8*y#R>`2^0oW- z$A^T5cHaN@ZM(9PsBW#3v-8pH^?TK-s;cJfDwAirzWi%M_p)Vb8`ICrZ7h2m1zVoa;vnNsoH!xiZ}YLmqUOhj7q4Ck zIdM#!K3yGDLOi+qS5$XWqVjoAmqJTO}>6Q>%8o_ML6k+116BzQ1eX4%;^l z1_J(|vD373b3AKnZ6hNi!)}`I*|W#P-~aiChliElID+O))YPJ$p5f)-NO*j#7u0*0 zGsnlrhli_`Y4ODqKR-V|zQs&?suyVN5Hyze^^1^zz=2<1U+=8@Yn8w6=Q3CMS+i$L zZ%#kI&2ny)l7S`%3$tT-W@hG@IhL2RSTCAvU}R)e{AN>EsHS+4I6a4bvgKT+6u)9Dx9rO ziKVg*Gkx4*Vr2gP`={L3+TMP9o9xrG)%>pR?#E}SewgB=T7I`w{N>A+Ws=`~8ndS5 zSXJ$v_xk#J>n%rm7aOePNa1&Ka`N!=J9hp&e|&s=O>HeF508qeX=zO8*CaADA{!|sMmKy#nD%dcj=eEW9pje}d6w%a!D*}FG#XVKFQe~Krw{0e2q_5gqEBjaes#W$kKde=_P_f|h%OB6}|DOcSV~WSuIJ&#H`#zt2 z$mjU&_KoWTty{+5i7+<wo9dqq4XM@wi1BVYY$H&L- z*|X=xt5=&|wywIGrQ!){lAB42WM^gF*jH-KF;4UGqv z{q0rF&9A=_xOwrx!-of(Sh?qHQ=D%)Lumr*jBQ^`DsT78+uJ>}oI7{!oBR9c@7ZIM zl$6xb*QchU(z0!vSyoooiq)&7uj_Tn$;nkzSMwi>O;1VLVR9t7%OOm`%4(MHY_q_S zkd&)ak}nlXNlTwRfByL0yR{d>)47?LnP*y;>p40)YKU-!XkC2}^7{2_?}`eG&FSaM zUf%E#Ji)bN=gz|Ow%;ero_+e=-QBs93)Zji|MsnHxhNAaH}~WC|6k*OUhJ=PDJa;mTK>A0kKhTmFJHd&L}}j=?C9zO zHFxzkYu#?vWV*=^tgD=!8~EVav$o~Sm#>z;tmd=!P|kr~X>*-viy9mMm<8+Y30pl^ zq*Q(`XEw)|w{ncqpo!FOv$-7|9M{&z`v(OHg@%U4>?}$(ICU|>ARsI(%}~HcZL;sG zhRW;&-bS@}y-w}~0|}k5EssJ=}O)PFX{PV{4RedHMH*HJjtsr=Oo^3+hKN zepaqI_0&lhh1F~3UlUltYGB~@=E8Pax5X1@&63)@G$klF_~xcmZfUa|37(4b@^bl& zld2wds;^kNGV%MnyJ^iYR6S?uu)Jbj!zH}Ity7O(&A-t>{Gf={#3@ruGT0}bewvb+ zy0P?im|W$PiH4h1laiAw-|c*U;^axgY;U8tE3G&$a7JtmUui1zLWnsi<5Tq3IUKD{ z2lsxz*FAl@`0n!e&#tTtUb1Z2r$3+1Po6wExzr=4s>Y&lPgw*x)4-b>&9e4TD3Cwg-&D?eA{q zeERgMh?tm=yu5!&iOIfw`}FwFGuScKv8-q`ochZ!^q->2FUAjM_X}fBOcZcRFpyv~ zzdxHLgUO6J{=khVjJIPXe>dLskrb0H0T1RsViu2Hsn2aX zoXB9u7MI@O5ti)3bT{da7V|&(39nzN&ucoIkdjbVDVf3YdMW>n=e_6I;}RTh7WG9} zaS5~Pe$e|MRB&`2_YISu_Z~&^F>hn&XEt0X*Qt47PJ z2Ll5G7Xt$$3j-qqXl)_`10xcfiIJIsnSp_!je&tdh>;nr2Bc1kkrmADVPIg8hO(zH zFfeF9)qwOEGBPpnGB7aAVPIe|Vq{_vVPIfb#lXOj*$%O59|Hr!1qKEN4ltB~Sk3^W z-93E+6pZu?4fKpm7#NHUj0~*|OstGd6bvn`jE${~4Hy_17#AR11adqFL4TMrGB7Yh z-3VGu&4$Dlg|b0zXJmr7(T0(MfeFgyPypEhbMOBf{~s_2c)5AHF)%VRfE>fX@c%Z0 zGXn=38#@~-2Rl1ECnpCNj|eXhH#d)@kTAc9tdzW*tdxw5f{LEHf|8E1jEsi4rjCK3 ziHV84x}~j!k&T|Qi4n*UMovyn9&R29US0_!MHxlV1Q==f{{aR;4n_t>24+Sj1|~s9 zW#U-U>$dGXcJ4ZK_{h;?$4{I*b?NeztJkjIxOwa0qsLF4K70P+ z<*SdMK7aZ8?fZ|Pzd-&1`4j9dMo?UU{D$T)K?Wv9CKeWE7Iu)o7@5jJ9v5U`RWxK1 zatvfoEEHBUYUB`cnz(S|K~81kpbw%+MHjimR7@VKegt_9>@(s#)lOnK zGb00&AhRHYJ;Tp`T^b9Rx^^zj48QekW&X0vX_sQ|#n_!#`ui z@r_mD?MdQMzZ}*2|6|tgx-Nzv&Hn`aCF(D%Tvz{K zSN=b>{!vAA4uVZzb=89|t`oZ-a{1kx^c230cbzU8#!Q?b!Q9hi{3iRo)%x1R^p!VH zrq^e(-d!`}KF`Na!3~a*!3PgA{1ajP;41olzTiHlwOjWd+xXz=ge4hkZh78$RC_sDbqFxpKEDvlAjd*^0f}4Tghc(BWKWhusC9q%mdh(Co<;1IX zk`-O|$|eTt%zGfBAbXMD)Lr4@P6oT1FRwM&>42*Biy~yAGTOH5M>!E?ryi^Wkgvy{z)UgF-z|`_*4Yg?c{Jc?K{lv zIIfHAHh#HzgYfZr^WSp)dhd5dcWX39e$La#gsINjnr9h`?u(X|UaXUOb)DtY$Dhiw zMbGoUuJ3vM(*Kru$R``)%rY6`tAQzY+VcIY5r%J@Z`ShztCQpPq)2PT2EQn2xK3tczJof zs&42x^SHp-`;M=@7&EW;(Ua*p;y>J9sJyA$dUf%dE=dWac`f0qz1C=HADwHkQgZde zj741+Hh?3x{&@W-e;e=r3<;~({}s797){-5geRR1$<2)+KVD~sVr6DVSL@iWz* zbpCMtZ)=|p`rtX+~$W>}unr*`x zU-@JAi|Ga+5nwmIOp+7Lr z`?pint@95wo=?3J6MaY7Y3I{TW%Do0V)&W2SNOnuv912BnUinm)MqvBY>oNPu-g7% zT)8Vl$v%UR=hi>Y-m(0ul;Kk*WshSFXNyAu9c0;C_9U;WFb=AIt2@DZ-L-H@mhjNW z{ykCqySHd;IV`a?_&%ED-q;usq?l-RH4u5Cuoh7m2yl2L_R~BGuQ(vQMN@jPvlz8#$<`dX)^>&Xj- zb?pcL8D9A#zJ~j+?I(^S6E^;gslIOO%20mm`!Rme*R9jv&QI<5&%k24U+UpIy?1&~ zKI^4VOaJ$!FXG=;-rOJIhkmtpo9-yN&2d^xx%zQS+>;CJd;XoTQ=RqOW#>h8zC&l) zI!`>%d^_vguIDw<4|(km?h=VAoy2<}Ez;xX+})F7MHwppGawQ|-jBu5^dTI6`jLIV ze(>4VAC1ITL@m#1U3ujBMDAcMw-v8TQqHxze2l#}?X<{|v-y87RmyvP@wE=wa#ca- zwwFYC+@n2NYi`EhdHK0>?b4LOmlytKuj|taxD>T`8HBo}J^$nVKaCLY4cJ4Z_~Q{UxLF|N@{8^zS1*g>cx+&B7r^& zh^h@VIT=#sa4|$Z-BbSHt@SZG`B|5~I(c+OX?{GDQoh#L`^YY{iIUZC-R=q4?|HQ6 z__27I8e6f+wW-TYriUB3U1W=6P)W92z&}fG;cwGB7xH+YdYs%*e(+e9R#;lO&T*aN zD)XLAYT)|1zxh7{_wlYg`)#Hn_BSV*2^ra6+x{bbMrIiQs;q0%4EyI*h8g~t^}GJ? zF57+03vRyLcCn>T;?M)Wzb}~HE}goyb(do{m#YvDYhc&BE)6E_?uxvH8OwW9dfT`* zoG|@de$2mh;*035f5mhn4gdbpvcEd{PIdUDtNx*v7hK)4dp7qJevyw;65Oh~7=9Ra zUHzyx>6d)R`!CleKB=Y3``urf8o<0b_LG)y?-8C~;WzH{{1ILD!~1Z7>9(7Bd4Va@ zYKo5ZKaH3EvVL(5^T*xJ+dlm5o4KZPLySX{vYL_f{aX#Tr@D?_`V+Y@TXWa(;O*0I zSe#fp;b2=xldUU5ft&`cLTJ0X`%(W--qT;?Pi?rhFJACZW!1dg_|6HYE?131bY1)^ z1-7~eZMC~}>d~)4-Yq`wYT3PBH08Ubr`??xw=0(WkhxW7?ozaIgyMpd;a2q5%NngrPlUQ0?UaRd{TBvjG zxXNzfv*GK#uh+5v*zUpe?Stx<%Eu>d9^czx{Z}~nvgEXH$12R`$i8s+^Ma{WB+x;2 z`=RKFcmGr}GnJY|zxVv=`mMH4>qp^AUhU(%d=Coxg1h({IX7}flFicG%LS_ zD-EKxHJ__I$Z>Li?jYb;Y`doM!7Ps%GEF`1reDnu^hW&-`%rQz{?5rlrE?+1bLNEi zzKCb}6T2pH>DFkCldmnG^dH*S_M`B@v=3$tx2o@Sx0UNf@Fd%=V4B|fpW%r)xc1nZ zS26#eb1|q=Q4T+yRNrqOd=6Y_M1<~G`*i0NSDu`A{tR4iO5!<==Y>7`E#!U0{YKc0 zD&bXs@Af?O3YBZOTwD?LIz-9SvF-lvBSm#nUr3cr&0OZBysbxnb-8I_h*rY_1}jGI zxTi8Un!4uJF9UjQw{vMM+HS`6{11WHU%=m?v8andd%*|wKU3^^>u-cz|IgsIw)pFX z3gLfV@@@OyXlMUtSRB@1cOTRmS(7jLqO9szdv&hq7Qgr0tBf^%`tkART<@t#{;_PA zicp4>$$|SPcFYR3f7QPHT7zBAu9n-eXBjOGJxqre3z-gc=5zV zuStrB7qbPwaINkAu>V*=#r{KOpYr8%wg<|*oaZR}`f=6$5B=R+_1UvES7d&Y_f%4U zIx8PTJmT9iVvX8a-+pnLISin8?)E~!> zx!YT8v`cH1`)wyI;hY!Q@3rvJ`L2D^ANH!KIKl?@>cD-Z+DJ{d3o`btFJWHdl?3XxxG|b)6}K0%m5Tc)NMMvfAqXR z^+S03)m&w@Z|^mQCw^MKw`Ov2vFXz@)6IoUCVL#6d*jLE_~bu+A7*^aZ_ZmQ=(wx1 z<^-R8N7?$hHntz~kIwq&p6$Q!z}=MjP4-+2pI>RejOY7z-YRs4r|InDdnU`9WSOn2 zT|M!~$q$?O`5bnA>*gyIb{E?vR!_v zqbmc;q#{31cxo)#Tm0buVUIn5)~~CUU0xQw(Y4>ccH_C)R)$JhD@!>^F^@ZoSDxB5 zM(hx*=- zAAt{7)QCQqvGj_h?z?yGbIoTIgxl`t`Z&M$pF#VPc^cl<(yg;joyg^BSJ?U5K_X7@ zNAn|D{UcVDv%`1Kx^m~3TI3S_DLUq*c2mE(>v1{g-~9=yP4OEAF@7{WTs_@_1YW}qhHRoNc&L3OP@N%EP&W*b+ zEh=eyv7uC5!Qjh!wFOLFU(Pqzv2XY|ZF}k8WqsGKoseKC;I5MT+Am)teW_HQSN@H( z%eH;nSQp>2zgE@kAg_CU%^%aNUnA}0er$KWwCvNm#hrOc%F`5{Sjhcg{=8m$$M#v5 zo_SY3&Un__waefjOL+B%WzC#59tEqvh@LM66|b8=_#fF@elX~`?3#V04LN&Pe>rGr@x}C5po4tU zi~V9YhO1s^uRL8d?MR_Ykc`o+Ls$3NRYVz702cFYQH$eapK@h2YLG%@gEWQvMTyxw;go; z*UQqp@ZU$#FB}pQB3-MxL_;)W8AP@)KDFP%HvQZE_We1bs%xIRKfW+`|FwN#>v!x) zT~?n{VIQ(F_gLcbu&pl zt6gl@rG0btYd6sQ_Qj5V@bl3U)LiY@3 ze;s^f`+CZc%n#*}`>(9|I@fpJp?mj2W|{so*K(A1JX&jZO44fsi`;^1VSCrV+$VkM z>8|}d`|b+zT{tfJ<-h{|8T%}=3$yMEs5Yre=Ohb=%O9zl_1S9onz;WAnc3yvZ>ql) z7xFT`&U55HL)2=Kw8%-Ouil8%nK0h|WAP)m`te?ejcLt(9sj=N6xFuxt<_vyqyJ%E zcg6Nm-z~%I8?67+bjNH>hGI19-CcXTAAd2 zdHq*|`8BV#|Mp8?Ug+cos2D784Y20g3N3GFQP#l99P^~-)^2rEUV%r@m>Yl0|H$)$ z-@EhS7UMg2Qj=94hWwiKGyX`O*4013HP@roUOsj6)UvwJUtGVkAL}=L)tAU9+xRl0 z*LF{9*Tz?d@ut~!+#mUx6}{hTJq>m9>6A>7?~n;#3!2Z^X4ORV(mUVX4Gfg)aaesueW&N`oINDJNmn~ z3*P=?bj@c8!-pyHD<6dC$J_j=`*_CO&c7{3jZbjT>1Dwa-|T;Wsli5S7eCAE2|tRD zUXxmS$oMc%b4A<&xv%FhI>=YNl-fIO=dz>qiB@M>R!=yU^|hw-!{bM;-y6RgtT}Hs zQ}gc|mgo7uo%Zdy{66_g$q#)c7I!1|m>wA^hRvXooECW;l+Tf|sLZwx=UUY|W&HyV zo2rU1e(pd1o~4_6cDz95wS&4bmEqhH2g2Ue%hh{*c=dbzk*LsVTNlJdWC^x!o2JIY zpJ#RbuzBE`@M5=_Hzpaat7TlkE##-n#XQ?z5TSCT|sU)hV#FVED3tf9H!u zT@0XRIW~Owy}vh?tEqYg1P^Kjrpn{^ZqluiSk|TZy;&$K;ygZ z>Y&dL_jj*ZX6U&nW~c1q*u$UKuh}E}V6XncSwWFEoc1Nk@14;<^Zd14HvC=;KePib z>zB-4oL!%-yX67%Cf9=pS8e^e{pk93gCED;%%>HudUb7;PY(O9gMTl_tDVi)-Fo=; zS!tDv8{M2NS;`jhZ>$s2yWdu2F7fxo`KPg43-@zfS$?=y!f2|U!-F2VsW&0Pj3a@^ zKeGM0Z~lktM~Y)TpB}qabD??5oIPF1j>lIU_2+y(%1{#s(&#D@z<#}+y{2fN;fIof z7;oiQw~|!ETMx@Vo+vZB)4E&hQ}Nt`I~aO?sn!@i>=%ADPw=|p)i0fYR(JeJ%?k># z4Ln|IAwNN(iBUfMhxnuU?SD!Iy6(kq%t~flqZjME@%D}x=jtmK^PXVn-Kmh0!n_02 z{>FwEGg}@v0ryZHSc^9OvHo!7*OyyIZsquwYO-$Emz4b&8!EzZVo@K*G>ZvJ8V5op znC3%^SWvSr{QUea`h8*H-3PY`o#64?{K|r7!Q6$5`z;Uin0+#ED@%AHVE#|JrucG6 zc6G1*q08>ItBf?nH%^^&kN3cn=1H;#j!WF)d@^@w_Os6CvtB)l?(R&PRT;BqlE=}R zH|9+8d@`x>EQ32VxIm2t_RM8}qCP&Gns*`k$F#Q>=j=51n$A0i@vz4lhsVnbuV1-( z{zvS7f&UCI68|%t)UN+$9#`+mP{sa7?|w)97lZ!{Pp0nw&mg_{pLqTe`(G0EpS zXXw2?|DuCj<9`P3?T_UD^4R}W&HvAE?8SeE*4rQX|Fy~gnY8^s!{gHDUjo<{)E|2L zqy0aFGygx&=>H5KciBHI`{VqdVPX4!29>q{8GhWY{42uvLjJ?rAC7Y_etm=yM( z;ZI)wsH;BiI(+?4{iFRN%C2j&rxzbMA-Et&sq;YY;gSrd$@7ZbD&(4W?gH1Spt&jL z|2OMT-Zo`mU{Eb_jVMV;EJ?LWE=o--Nd>Q1&^0j8H8Ke?G`9k+STNN#Ft9Q(*mM5i z4-^f#`6-!cmAEyWomA<*$OS&YMq=sbXLY#@Vu%b1*8MIVG7_Qj0A~VfD zEv-1Ugu&3#z^Cu?AqEBp5xBHxZen_>PikIzNd|+FsoCq($8;DN7!caQ^5K~&5NV6; z*A}AqCOAK>q&%@Gl>vFh2VNd5M`h*nO`c{Uw-zfk6g~dguJy zf}+&o;>`R!2D6{31>p<~402f1ft`u)MnHi9Xd#F!E|qW(b+G*c1(yaEgwEPK3=CRWv<774m*nTB zmK0?sgKaG+N-aq&0sC7>v`dPCfk6R_E=V#0C8&VRiqsqiMJMlmojNQ2a7CMR1Z z=ND8KWu|A8Fa(q)V{10P&LeoAT%14wIhf~PZR ONr$JapUXO@geCw%H23rX literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..c54dcd43d6ac43edeb347bf7d2fdf576898d8559 GIT binary patch literal 23919 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4498ead4ac97d2ca6a11dbcedcb9bfea449a6c61 GIT binary patch literal 25585 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml new file mode 100644 index 0000000..7775c01 --- /dev/null +++ b/app/src/main/res/navigation/nav_graph.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..1b1f0ea --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..125df87 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,3 @@ + + 16dp + \ No newline at end of file diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..489382d --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,6 @@ + + Platypush + Settings + Next + Previous + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..32ab82f --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,25 @@ + + + + + + +