From 16c34e0e434eb94f7762756601eb4eed358502f2 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Tue, 13 Oct 2026 20:45:43 +0200 Subject: [PATCH 1/4] feat(SemanticEmojiFilter): embedding filter with a Laya decision verifier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New example: a Compose Multiplatform app (Android, Desktop, Web) that ranks 208 emoji by the meaning of a typed query with on-device sentence embeddings, and an opt-in second stage on Desktop/Android where the Laya decision model re-checks the top hits through sk.ainet.decisions. System 1: MongoDB LEAF (mdbr-leaf-ir, Apache-2.0) on the SKaiNET-transformers BERT runtime โ€” engine WordPiece tokenizer, mean pooling, 2_Dense projection to 768-d, L2; the query carries LEAF's retrieval prompt. Catalog embeddings are computed once (shipped precomputed for wasm); the sweep is a dot product. Calibrated logistic confidence (balanced fit, F1-optimal threshold), top tier capped at 12. Debounced 120 ms, mapLatest. System 2 (-PlayaVerifier=true, transformers 0.59.0 / 0.59.0-SNAPSHOT from mavenLocal): one BooleanProbability question per candidate, one request per item so every decision is a cancellation point, verdicts stream into the badges, "?" for an abstention. Policy: reject below 0.2, accept from 0.6 (the base checkpoint is conservative). The model source is one interface (DecisionAdapterSource) a decision cartridge can replace later. Catalog from CLDR 47 annotations (en + de) via scripts/generate-catalog.py and a curated selection; LEAF fetched by scripts/fetch-model.sh into the wasm Compose resources only. CLI: bench | embed-catalog | calibrate | golden | query | tokens | verify. Measured numbers in the README. Tests: shared 11 (jvm + Android host), verifier 2. CI workflow mirrors KernelRace. No iOS (bert, laya and decisions publish no Apple targets). --- .github/workflows/semanticemojifilter-ci.yml | 63 + README.md | 15 + SemanticEmojiFilter/.gitignore | 6 + SemanticEmojiFilter/.java-version | 1 + SemanticEmojiFilter/README.md | 186 + .../THIRD_PARTY_LICENSES/Apache-2.0.txt | 202 + .../MIT-coi-serviceworker.txt | 21 + .../THIRD_PARTY_LICENSES/NOTICE | 21 + .../THIRD_PARTY_LICENSES/Unicode-3.0.txt | 39 + .../androidApp/build.gradle.kts | 67 + .../androidApp/src/main/AndroidManifest.xml | 24 + .../kotlin/sk/ainet/samples/emoji/EmojiApp.kt | 17 + .../sk/ainet/samples/emoji/MainActivity.kt | 34 + SemanticEmojiFilter/build.gradle.kts | 9 + SemanticEmojiFilter/cli/build.gradle.kts | 40 + .../kotlin/sk/ainet/samples/emoji/cli/Main.kt | 256 + .../sk/ainet/samples/emoji/cli/Verify.kt | 9 + .../sk/ainet/samples/emoji/cli/Verify.kt | 34 + .../composeApp/build.gradle.kts | 135 + .../sk/ainet/samples/emoji/VerifierFactory.kt | 8 + .../sk/ainet/samples/emoji/VerifierFactory.kt | 22 + .../files/catalog/calibration-queries.json | 293 + .../files/catalog/calibration.json | 8 + .../files/catalog/catalog-embeddings.bin | Bin 0 -> 638976 bytes .../files/catalog/catalog.json | 5517 +++++++++++++++++ .../files/catalog/golden-queries.json | 1 + .../kotlin/sk/ainet/samples/emoji/App.kt | 13 + .../sk/ainet/samples/emoji/BuildInfo.kt | 5 + .../ainet/samples/emoji/CatalogResources.kt | 32 + .../ainet/samples/emoji/ui/DiagnosticsRow.kt | 49 + .../sk/ainet/samples/emoji/ui/EmojiGrid.kt | 117 + .../ainet/samples/emoji/ui/PlatformChips.kt | 22 + .../sk/ainet/samples/emoji/ui/SearchScreen.kt | 99 + .../kotlin/sk/ainet/samples/emoji/main.kt | 28 + .../sk/ainet/samples/emoji/VerifierFactory.kt | 7 + .../sk/ainet/samples/emoji/VerifierFactory.kt | 8 + .../kotlin/sk/ainet/samples/emoji/main.kt | 45 + .../src/wasmJsMain/resources/app.html | 19 + .../wasmJsMain/resources/coi-serviceworker.js | 146 + .../src/wasmJsMain/resources/index.html | 222 + .../src/wasmJsMain/resources/logo.png | Bin 0 -> 213270 bytes .../src/wasmJsMain/resources/styles.css | 7 + SemanticEmojiFilter/gradle.properties | 12 + SemanticEmojiFilter/gradle/libs.versions.toml | 67 + .../gradle/wrapper/gradle-wrapper.properties | 7 + SemanticEmojiFilter/gradlew | 248 + SemanticEmojiFilter/gradlew.bat | 93 + .../scripts/catalog-selection.json | 1580 +++++ SemanticEmojiFilter/scripts/fetch-model.sh | 55 + .../scripts/generate-catalog.py | 108 + SemanticEmojiFilter/settings.gradle.kts | 47 + SemanticEmojiFilter/shared/build.gradle.kts | 91 + .../emoji/model/AndroidLeafProvider.kt | 21 + .../emoji/platform/Platform.android.kt | 21 + .../ainet/samples/emoji/domain/Calibration.kt | 103 + .../sk/ainet/samples/emoji/domain/Catalog.kt | 58 + .../sk/ainet/samples/emoji/domain/Ranking.kt | 14 + .../engine/ByteArrayRandomAccessSource.kt | 25 + .../samples/emoji/engine/CatalogIndex.kt | 107 + .../samples/emoji/engine/EmbeddingEngine.kt | 122 + .../ainet/samples/emoji/engine/LeafFiles.kt | 49 + .../ainet/samples/emoji/model/LeafProvider.kt | 30 + .../ainet/samples/emoji/platform/Platform.kt | 36 + .../sk/ainet/samples/emoji/verify/Verifier.kt | 42 + .../samples/emoji/vm/EmojiSearchViewModel.kt | 163 + .../samples/emoji/domain/CalibrationTest.kt | 36 + .../samples/emoji/engine/CatalogIndexTest.kt | 56 + .../emoji/vm/EmojiSearchViewModelTest.kt | 107 + .../samples/emoji/model/LeafDownloads.kt | 68 + .../emoji/model/DesktopLeafProvider.kt | 23 + .../samples/emoji/platform/Platform.jvm.kt | 16 + .../ainet/samples/emoji/CatalogSchemaTest.kt | 48 + .../samples/emoji/EmbeddingParityTest.kt | 55 + .../ainet/samples/emoji/RankingGoldenTest.kt | 53 + .../samples/emoji/platform/Platform.wasmJs.kt | 11 + SemanticEmojiFilter/verifier/build.gradle.kts | 52 + .../emoji/verifier/LayaAgentLoader.android.kt | 46 + .../emoji/verifier/DecisionAdapterSource.kt | 16 + .../emoji/verifier/EmojiMatchSchema.kt | 46 + .../samples/emoji/verifier/LayaAgentLoader.kt | 8 + .../samples/emoji/verifier/LayaCheckpoint.kt | 23 + .../samples/emoji/verifier/LayaVerifier.kt | 114 + .../emoji/verifier/LayaVerifierTest.kt | 94 + .../samples/emoji/verifier/LayaFileSource.kt | 79 + .../emoji/verifier/LayaAgentLoader.jvm.kt | 19 + SemanticEmojiFilter/webapp.json | 14 + 86 files changed, 11930 insertions(+) create mode 100644 .github/workflows/semanticemojifilter-ci.yml create mode 100644 SemanticEmojiFilter/.gitignore create mode 100644 SemanticEmojiFilter/.java-version create mode 100644 SemanticEmojiFilter/README.md create mode 100644 SemanticEmojiFilter/THIRD_PARTY_LICENSES/Apache-2.0.txt create mode 100644 SemanticEmojiFilter/THIRD_PARTY_LICENSES/MIT-coi-serviceworker.txt create mode 100644 SemanticEmojiFilter/THIRD_PARTY_LICENSES/NOTICE create mode 100644 SemanticEmojiFilter/THIRD_PARTY_LICENSES/Unicode-3.0.txt create mode 100644 SemanticEmojiFilter/androidApp/build.gradle.kts create mode 100644 SemanticEmojiFilter/androidApp/src/main/AndroidManifest.xml create mode 100644 SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/EmojiApp.kt create mode 100644 SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/MainActivity.kt create mode 100644 SemanticEmojiFilter/build.gradle.kts create mode 100644 SemanticEmojiFilter/cli/build.gradle.kts create mode 100644 SemanticEmojiFilter/cli/src/main/kotlin/sk/ainet/samples/emoji/cli/Main.kt create mode 100644 SemanticEmojiFilter/cli/src/noVerifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt create mode 100644 SemanticEmojiFilter/cli/src/verifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt create mode 100644 SemanticEmojiFilter/composeApp/build.gradle.kts create mode 100644 SemanticEmojiFilter/composeApp/src/androidNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt create mode 100644 SemanticEmojiFilter/composeApp/src/androidVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration-queries.json create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration.json create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/catalog-embeddings.bin create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/catalog.json create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/golden-queries.json create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/App.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/CatalogResources.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/DiagnosticsRow.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/EmojiGrid.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/PlatformChips.kt create mode 100644 SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/SearchScreen.kt create mode 100644 SemanticEmojiFilter/composeApp/src/jvmMain/kotlin/sk/ainet/samples/emoji/main.kt create mode 100644 SemanticEmojiFilter/composeApp/src/jvmNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt create mode 100644 SemanticEmojiFilter/composeApp/src/jvmVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/main.kt create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/app.html create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/coi-serviceworker.js create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/index.html create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/logo.png create mode 100644 SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/styles.css create mode 100644 SemanticEmojiFilter/gradle.properties create mode 100644 SemanticEmojiFilter/gradle/libs.versions.toml create mode 100644 SemanticEmojiFilter/gradle/wrapper/gradle-wrapper.properties create mode 100755 SemanticEmojiFilter/gradlew create mode 100644 SemanticEmojiFilter/gradlew.bat create mode 100644 SemanticEmojiFilter/scripts/catalog-selection.json create mode 100755 SemanticEmojiFilter/scripts/fetch-model.sh create mode 100644 SemanticEmojiFilter/scripts/generate-catalog.py create mode 100644 SemanticEmojiFilter/settings.gradle.kts create mode 100644 SemanticEmojiFilter/shared/build.gradle.kts create mode 100644 SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/model/AndroidLeafProvider.kt create mode 100644 SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/platform/Platform.android.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Calibration.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Catalog.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Ranking.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/ByteArrayRandomAccessSource.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/CatalogIndex.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/EmbeddingEngine.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/LeafFiles.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/model/LeafProvider.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/platform/Platform.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/verify/Verifier.kt create mode 100644 SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModel.kt create mode 100644 SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/domain/CalibrationTest.kt create mode 100644 SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/engine/CatalogIndexTest.kt create mode 100644 SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModelTest.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/model/LeafDownloads.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/model/DesktopLeafProvider.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/platform/Platform.jvm.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/CatalogSchemaTest.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/EmbeddingParityTest.kt create mode 100644 SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/RankingGoldenTest.kt create mode 100644 SemanticEmojiFilter/shared/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/platform/Platform.wasmJs.kt create mode 100644 SemanticEmojiFilter/verifier/build.gradle.kts create mode 100644 SemanticEmojiFilter/verifier/src/androidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.android.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/DecisionAdapterSource.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/EmojiMatchSchema.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaCheckpoint.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifier.kt create mode 100644 SemanticEmojiFilter/verifier/src/commonTest/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifierTest.kt create mode 100644 SemanticEmojiFilter/verifier/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaFileSource.kt create mode 100644 SemanticEmojiFilter/verifier/src/jvmMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.jvm.kt create mode 100644 SemanticEmojiFilter/webapp.json diff --git a/.github/workflows/semanticemojifilter-ci.yml b/.github/workflows/semanticemojifilter-ci.yml new file mode 100644 index 0000000..0f17576 --- /dev/null +++ b/.github/workflows/semanticemojifilter-ci.yml @@ -0,0 +1,63 @@ +name: SemanticEmojiFilter CI + +on: + pull_request: + paths: + - "SemanticEmojiFilter/**" + - "skainet-ui/**" + - ".github/workflows/semanticemojifilter-ci.yml" + push: + branches: + - develop + paths: + - "SemanticEmojiFilter/**" + - "skainet-ui/**" + - ".github/workflows/semanticemojifilter-ci.yml" + +concurrency: + group: semanticemojifilter-ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: "21" + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Make gradlew executable + run: chmod +x SemanticEmojiFilter/gradlew + + # composeApp's Kotlin compile tasks depend on the bundled LEAF checkpoint (fetchModel โ€” see + # composeApp/build.gradle.kts) even for a plain compile check, since Compose resource + # processing needs the files present. Cache them so only the first run per revision pays + # the ~92 MB download. + - name: Cache bundled LEAF checkpoint + uses: actions/cache@v4 + with: + path: SemanticEmojiFilter/composeApp/src/wasmJsMain/composeResources/files/leaf + key: semanticemojifilter-leaf-4262131b + + # Unit tests on JVM + Android (no device), the Android debug APK, and a wasm compile check. + # The Laya verifier module is not built here: it needs transformers 0.59.0 on Maven Central. + - name: Build and test + working-directory: SemanticEmojiFilter + run: | + ./gradlew \ + :shared:jvmTest \ + :shared:testAndroidHostTest \ + :cli:compileKotlin \ + :androidApp:assembleDebug \ + :shared:compileKotlinWasmJs \ + :composeApp:compileKotlinWasmJs \ + --console=plain diff --git a/README.md b/README.md index 792bcd8..f5ebe21 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,21 @@ falls back to without NEON hardware. --- +### ๐Ÿ”Ž Semantic Emoji Filter + +Type what you mean, get the emoji. Every keystroke is embedded on-device with the MongoDB LEAF +retrieval encoder (23M parameters, BERT in the SKaiNET NN DSL) and ranked against a bilingual +catalog of about 200 emoji; items above a calibrated threshold move up with a confidence badge. +Desktop and Android add a second stage: the **Laya decision model** answers a typed yes/no +question per candidate through `sk.ainet.decisions`, so ๐Ÿ• drops for "healthy things to eat" +while ๐Ÿฅ— stays, and an unsure model says `?` instead of guessing. + +Semantic Emoji Filter โ€” matches above the threshold with vector and Laya confidence + +๐Ÿ“‚ [`SemanticEmojiFilter/`](SemanticEmojiFilter/) ยท runs on Android ยท Desktop ยท Wasm + +--- + ### ๐Ÿ’ฌ Kllama Demo A Qwen3 LLM **playground in the browser** โ€” chat, completion, translation, tool diff --git a/SemanticEmojiFilter/.gitignore b/SemanticEmojiFilter/.gitignore new file mode 100644 index 0000000..e7752f8 --- /dev/null +++ b/SemanticEmojiFilter/.gitignore @@ -0,0 +1,6 @@ +.gradle/ +build/ +local.properties +kotlin-js-store/ +# LEAF checkpoint for the web bundle โ€” fetched by scripts/fetch-model.sh, never committed +composeApp/src/wasmJsMain/composeResources/files/leaf/ diff --git a/SemanticEmojiFilter/.java-version b/SemanticEmojiFilter/.java-version new file mode 100644 index 0000000..5f39e91 --- /dev/null +++ b/SemanticEmojiFilter/.java-version @@ -0,0 +1 @@ +21.0 diff --git a/SemanticEmojiFilter/README.md b/SemanticEmojiFilter/README.md new file mode 100644 index 0000000..514ee45 --- /dev/null +++ b/SemanticEmojiFilter/README.md @@ -0,0 +1,186 @@ +# Semantic Emoji Filter + +Type what you mean, get the emoji. A Compose Multiplatform app (Android, Desktop, Web) that ranks +a bilingual catalog of about 200 emoji by the meaning of a free-text query, on-device, with +SKaiNET. Desktop and Android add a second stage in which a typed decision model re-checks the top +hits, the part embeddings alone get wrong. + +## What it demonstrates + +**System 1: embedding filter, on every keystroke.** The query is encoded with the MongoDB LEAF +retrieval encoder (`mdbr-leaf-ir`, 23M parameters, Apache-2.0) through the SKaiNET-transformers +BERT runtime: WordPiece tokenizer from the engine, 6 encoder layers, mean pooling, the model's +`2_Dense` projection to 768 dimensions, L2 normalisation. The catalog embeddings are computed once +(or shipped precomputed for the web build), so a sweep is a dot product over 200 rows. Items whose +calibrated confidence passes the threshold move to the top tier. + +**System 2: typed decisions, when the query settles.** Cosine similarity cannot do qualifiers: +"healthy things to eat" ranks ๐Ÿ• near ๐Ÿฅ— because *food* dominates the vector. After the query has +been stable for half a second, the top candidates go to the **Laya** decision model through the +`sk.ainet.decisions` contract, one boolean question per item ("is this emoji a good answer to the +search?"). The badge then shows both numbers, the vector confidence and Laya's probability; a +candidate the model is unsure about shows `?` instead of a guess (policy: reject below 0.2, +accept from 0.6). This stage is opt-in +(`-PlayaVerifier=true`), Desktop and Android only, and visibly asynchronous: Laya is a 322M-parameter +encoder run on the eager FP32 CPU path, several seconds per question on a laptop. + +**Honest numbers.** The diagnostics row shows the kernel tier, model load time and the live query +latency; the CLI below produced the numbers in this README on the machine named there. + +## Run + +The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples/semantic-emoji-filter/leaf/` +(desktop, CLI) or the app's files directory (Android); the web build bundles it. Set +`LEAF_MODEL_DIR` to reuse an existing copy. + +### Desktop + +```bash +./gradlew :composeApp:run +# with the Laya verifier (needs SKaiNET-transformers 0.59.0; until then a local publish, see below) +./gradlew -PlayaVerifier=true :composeApp:run +``` + +### Android + +```bash +./gradlew :androidApp:installDebug +./gradlew -PlayaVerifier=true :androidApp:installDebug # verifier: needs a device that grants a 2 GB heap +``` + +### Web (Wasm) + +```bash +./gradlew :composeApp:wasmJsBrowserDevelopmentRun # fetches the checkpoint into composeResources first +./gradlew :composeApp:wasmJsBrowserDistribution # what the examples site deploys +``` + +### CLI (measure, calibrate, regenerate) + +```bash +./gradlew :cli:run --args="bench" # load, catalog, query latency, RSS +./gradlew :cli:run --args="query healthy things to eat" +./gradlew :cli:run --args="embed-catalog" # writes catalog-embeddings.bin + digest +./gradlew :cli:run --args="calibrate" # fits calibration.json on calibration-queries.json +./gradlew :cli:run --args="golden" # records golden-queries.json for the ranking test +``` + +### The Laya verifier before transformers 0.59.0 + +The typed-decision contract (`skainet-transformers-decisions-api`, `-decisions-runtime`) and the +Laya adapter (`skainet-transformers-inference-laya`) are on the SKaiNET-transformers `develop` +branch and ship with 0.59.0. Until that release is on Maven Central, publish `develop` locally and +build with the flag: + +```bash +cd ../../SKaiNET-transformers && ./gradlew -PVERSION_NAME=0.59.0-SNAPSHOT -PRELEASE_SIGNING_ENABLED=false publishToMavenLocal +cd - && ./gradlew -PlayaVerifier=true :composeApp:run +``` + +The Laya checkpoint (644 MB, `convaiinnovations/laya` `multilingual/`) downloads on the first +verification into `~/.skainet-examples/semantic-emoji-filter/laya-multilingual/` (`LAYA_MODEL_DIR` +overrides). + +## Measured + +Laptop, 12 cores, JDK 21 with the Vector API (`Panama Vector (SIMD)` tier), SKaiNET 0.58.0, +2026-10-13, `./gradlew :cli:run --args="bench"`: + +| | DIRECT (default) | OPTIMIZED (traced graph) | +|---|---|---| +| LEAF load (SafeTensors, 92 MB) | 345 ms | 352 ms | +| catalog embedding, 208 items, once | 23.4 s (112 ms/item) | 45.2 s (217 ms/item) | +| query embedding, p50 / p95 (20 queries ร— 5) | 81 ms / 98 ms | 106 ms / 123 ms | +| cosine sweep over 208 ร— 768 | 0.28 ms | 0.26 ms | +| RSS after the run | 512 MB | 960 MB | + +The query carries LEAF's retrieval prompt (`Represent this sentence for searching relevant passages: `), +which triples the token count of a short query and costs about 40 ms per keystroke; without the +prompt the ranking is useless (every cosine lands between 0.70 and 0.79 and ๐Ÿ• beats ๐Ÿค’ for +"feeling sick"). OPTIMIZED traces one graph per sequence length and buys nothing here, so DIRECT is +the default. The catalog embedding is skipped when the shipped `catalog-embeddings.bin` matches the +catalog digest; the web build always uses it. + +Calibration on 28 labelled English queries (151 positive pairs of 5 824): logistic fit +`k = 22.1`, `x0 = 0.279`, F1-optimal threshold 0.8 (cosine 0.341), top tier capped at 12 items; +training precision 0.60, recall 0.60. LEAF cosines are compressed (matches 0.30โ€“0.40, the rest +0.10โ€“0.30), which is exactly why a second stage earns its place: for "healthy things to eat" the +twelve items above the threshold include ๐Ÿฅฌ ๐Ÿฅ— ๐ŸŽ ๐Ÿฅ’ ๐Ÿฅ• ๐Ÿ… and also ๐Ÿฅ“ ๐Ÿฅœ ๐Ÿฉ ๐Ÿฃ. + +LEAF is an English retrieval encoder; German queries work through the German names in the catalog +text but rank visibly worse, and were left out of the calibration. The Laya checkpoint is +multilingual. + +**Laya verifier** (`./gradlew -PlayaVerifier=true :cli:run --args="verify ..."`, same laptop, eager +FP32 CPU path, exact GELU): checkpoint load 9.0 s, 1.8โ€“3.6 s per decision (first one slowest), +RSS 4.8 GB. + +| query | candidate | P(match) | verdict | +|---|---|---|---| +| feeling sick | ๐Ÿคข ๐Ÿคฎ ๐Ÿค’ ๐Ÿคง | 0.94 ยท 0.95 ยท 0.95 ยท 0.85 | yes, yes, yes, yes | +| healthy things to eat | ๐Ÿฅ— green salad | 0.34 | ? | +| | ๐Ÿฅฌ leafy green | 0.17 | no | +| | ๐ŸŽ red apple ยท ๐Ÿฅ“ bacon | 0.07 ยท 0.07 | no | +| | ๐Ÿฅœ peanuts ยท ๐Ÿฉ doughnut | 0.03 ยท 0.03 | no | + +The ordering is right (salad above leafy green above bacon above doughnut, under every wording +tried), the absolute probabilities are conservative: the base checkpoint is a starting point its +publisher expects to be specialised. The acceptance policy is therefore asymmetric, reject below +0.2, accept from 0.6, so the salad shows as "unsure" and the doughnut as a clear no, and the apple +is a wrong confident rejection the demo does not hide. Four wordings of the question were +compared from the CLI (`verify --statement ... --no ... --yes ...`); the default has the widest +spread between the right and the wrong answer. + +## Architecture + +``` +shared/ commonMain domain/ Catalog, CatalogItem.embeddingText(), Calibration (logistic fit), RankedItem/Tier + engine/ LeafEmbeddingEngine (BERT runtime + engine tokenizer), CatalogIndex (sweep, .bin), + ByteArrayRandomAccessSource (web), LeafFiles (pinned HF revision) + model/ LeafProvider + LeafResolver (pure plan); jvmAndroidMain: streamed download + verify/ Verifier API (Verdict, VerifierState, NoopVerifier) โ€” no Laya dependency + vm/ EmojiSearchViewModel: debounce 120 ms, mapLatest, stable-query trigger 500 ms + jvmMain / androidMain / wasmJsMain platform actuals, checkpoint providers +verifier/ jvm + android only LayaVerifier (one request per item, cancellable between items, verdict cache), + EmojiMatchSchema (decisionSchema { probability(...); policy { boolean { abstainBetween(0.4, 0.6) } } }), + DecisionAdapterSource (the seam a decision cartridge replaces later), LayaFileSource +composeApp/ Compose UI; src/{jvm,android}{Verifier,NoVerifier}/ pick the verifier at build time +androidApp/ MainActivity, EmojiApp +cli/ bench | embed-catalog | calibrate | golden | query | tokens +scripts/ fetch-model.sh (LEAF, pinned revision), generate-catalog.py (CLDR -> catalog.json), catalog-selection.json +``` + +The ranking flow never waits for the verifier: verdicts stream into a separate state and are +cleared when the query changes. The verifier sends one request per candidate rather than one +request with many questions, because the Laya adapter runs one encoder pass per question either +way and a per-item request gives a cancellation point every few seconds instead of one long call. + +## Catalog + +`catalog.json` is generated from Unicode CLDR 47 annotations (English and German names and +keywords) for the emoji listed in `scripts/catalog-selection.json`; the `tags` and `group` fields +are this example's own curation so the showcase queries (healthy food, feeling sick, rock band) +have a defined answer set. The encoder never sees the tags: the text it embeds is +`". . "` (`CatalogItem.embeddingText()`), and the calibration is +fitted on `calibration-queries.json`, 28 hand-labelled English queries. Regenerate with + +```bash +python3 -I scripts/generate-catalog.py --cldr \ + --selection scripts/catalog-selection.json --out composeApp/src/commonMain/composeResources/files/catalog/catalog.json +./gradlew :cli:run --args="embed-catalog" && ./gradlew :cli:run --args="calibrate" && ./gradlew :cli:run --args="golden" +``` + +## Out of scope + +* **iOS**: the bert, laya and decisions modules of SKaiNET-transformers publish no Apple targets yet. +* **A trained classifier head** over the embeddings (the PRD's "Mode B"); a follow-up example. +* **Laya in the browser**: 644 MB of weights against a web page budget. The seam is there if a + smaller decision checkpoint appears. +* **Cartridges**: the verifier loads the checkpoint through `DecisionAdapterSource`, one file; + a SKaiNET decision cartridge (task profile `decision/v1`, blueprint) replaces that source without + touching the UI or the view model once it exists. + +## Licenses + +MIT for this example. Third-party content and licenses: `THIRD_PARTY_LICENSES/NOTICE` (LEAF and +Laya under Apache-2.0, CLDR under the Unicode License v3). diff --git a/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Apache-2.0.txt b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Apache-2.0.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Apache-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/SemanticEmojiFilter/THIRD_PARTY_LICENSES/MIT-coi-serviceworker.txt b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/MIT-coi-serviceworker.txt new file mode 100644 index 0000000..4932a51 --- /dev/null +++ b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/MIT-coi-serviceworker.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Guido Zuidhof + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SemanticEmojiFilter/THIRD_PARTY_LICENSES/NOTICE b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/NOTICE new file mode 100644 index 0000000..5a07f4e --- /dev/null +++ b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/NOTICE @@ -0,0 +1,21 @@ +Third-party content used by the Semantic Emoji Filter example +============================================================= + +MongoDB LEAF retrieval encoder (mdbr-leaf-ir) + https://huggingface.co/MongoDB/mdbr-leaf-ir (revision 4262131b32c3182bd06e67e92ae69d7bd66e0c5c) + Copyright MongoDB, Inc. Licensed under the Apache License, Version 2.0 (Apache-2.0.txt). + Downloaded at build time (web) or first run (desktop, Android); not redistributed in this repository. + +Laya decision model, multilingual checkpoint + https://huggingface.co/convaiinnovations/laya (revision 7b928d828b7b0e022f929d9bd2e44165aa270148) + Copyright Convai Innovations. Licensed under the Apache License, Version 2.0 (Apache-2.0.txt). + Downloaded on first use of the optional verifier (-PlayaVerifier=true); not redistributed. + +Unicode CLDR emoji annotations (release 47) + https://github.com/unicode-org/cldr common/annotations/{en,de}.xml, common/annotationsDerived/{en,de}.xml + Copyright Unicode, Inc. Licensed under the Unicode License v3 (Unicode-3.0.txt). + The English and German emoji names and keywords in catalog/catalog.json are derived from these files + by scripts/generate-catalog.py; the tags and groups are this example's own curation. + +coi-serviceworker (web build) + https://github.com/gzuidhof/coi-serviceworker MIT License, see the header of composeApp/src/wasmJsMain/resources/coi-serviceworker.js. diff --git a/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Unicode-3.0.txt b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Unicode-3.0.txt new file mode 100644 index 0000000..56da589 --- /dev/null +++ b/SemanticEmojiFilter/THIRD_PARTY_LICENSES/Unicode-3.0.txt @@ -0,0 +1,39 @@ +UNICODE LICENSE V3 + +COPYRIGHT AND PERMISSION NOTICE + +Copyright ยฉ 1991-2026 Unicode, Inc. + +NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR +SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT +DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of data files and any associated documentation (the "Data Files") or +software and any associated documentation (the "Software") to deal in the +Data Files or Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, and/or sell +copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that either (a) +this copyright and permission notice appear with all copies of the Data +Files or Software, or (b) this copyright and permission notice appear in +associated Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +THIRD PARTY RIGHTS. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE +BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA +FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written +authorization of the copyright holder. diff --git a/SemanticEmojiFilter/androidApp/build.gradle.kts b/SemanticEmojiFilter/androidApp/build.gradle.kts new file mode 100644 index 0000000..a9630e2 --- /dev/null +++ b/SemanticEmojiFilter/androidApp/build.gradle.kts @@ -0,0 +1,67 @@ +plugins { + alias(libs.plugins.androidApplication) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) +} + +val layaVerifier = providers.gradleProperty("layaVerifier").orNull == "true" + +kotlin { + dependencies { + implementation(projects.composeApp) + implementation(projects.shared) + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material3) + implementation(compose.ui) + implementation(libs.compose.uiTooling) + implementation(libs.androidx.activity.compose) + implementation(libs.kotlinx.coroutines) + // Hand-written ARM NEON kernels โ€” Android JNI only. + implementation(libs.skainet.backend.jni.cpu) + } + + target { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + } + } +} + +android { + namespace = "sk.ainet.samples.emoji" + compileSdk = libs.versions.android.compileSdk.get().toInt() + + defaultConfig { + applicationId = "sk.ainet.samples.emoji" + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + // ARM only โ€” the JNI NEON kernels are what makes the encoder fast on a phone. + ndk { abiFilters += "arm64-v8a" } + + // Shown in the diagnostics row โ€” always matches the dependency in the catalog. + buildConfigField("String", "SKAINET_VERSION", "\"${libs.versions.skainet.asProvider().get()}\"") + buildConfigField("boolean", "VERIFIER_ENABLED", layaVerifier.toString()) + } + + buildFeatures { + compose = true + buildConfig = true + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + buildTypes { + getByName("release") { + isMinifyEnabled = false + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} diff --git a/SemanticEmojiFilter/androidApp/src/main/AndroidManifest.xml b/SemanticEmojiFilter/androidApp/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b837ef2 --- /dev/null +++ b/SemanticEmojiFilter/androidApp/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/EmojiApp.kt b/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/EmojiApp.kt new file mode 100644 index 0000000..56143ea --- /dev/null +++ b/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/EmojiApp.kt @@ -0,0 +1,17 @@ +package sk.ainet.samples.emoji + +import android.app.Application +import sk.ainet.samples.emoji.engine.LeafEmbeddingEngine +import sk.ainet.samples.emoji.model.AndroidLeafProvider +import sk.ainet.samples.emoji.verify.Verifier + +/** Application-scoped factories: the checkpoint provider and the verifier live for the app lifetime. */ +class EmojiApp : Application() { + val leafProvider by lazy { AndroidLeafProvider(this) } + val verifier: Verifier by lazy { createVerifier(this) } + + suspend fun loadEngine(onProgress: (String) -> Unit): LeafEmbeddingEngine { + val source = leafProvider.resolve(onProgress) + return LeafEmbeddingEngine.load(source, onProgress = onProgress) + } +} diff --git a/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/MainActivity.kt b/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/MainActivity.kt new file mode 100644 index 0000000..d7a2d96 --- /dev/null +++ b/SemanticEmojiFilter/androidApp/src/main/kotlin/sk/ainet/samples/emoji/MainActivity.kt @@ -0,0 +1,34 @@ +package sk.ainet.samples.emoji + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.viewModels +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import kotlinx.coroutines.runBlocking +import sk.ainet.samples.emoji.vm.EmojiSearchViewModel + +class MainActivity : ComponentActivity() { + + private val app get() = applicationContext as EmojiApp + + private val viewModel: EmojiSearchViewModel by viewModels { + object : ViewModelProvider.Factory { + @Suppress("UNCHECKED_CAST") + override fun create(modelClass: Class): T = EmojiSearchViewModel( + loadEngine = { onProgress -> app.loadEngine(onProgress) }, + loadIndex = { engine, onProgress -> CatalogResources.index(CatalogResources.catalog(), engine, onProgress = onProgress) }, + calibration = runBlocking { CatalogResources.calibration() }, + verifier = app.verifier, + ) as T + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + App(viewModel = viewModel, skainetVersion = BuildConfig.SKAINET_VERSION) + } + } +} diff --git a/SemanticEmojiFilter/build.gradle.kts b/SemanticEmojiFilter/build.gradle.kts new file mode 100644 index 0000000..25e833d --- /dev/null +++ b/SemanticEmojiFilter/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.androidMultiplatformLibrary) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.kotlinJvm) apply false + alias(libs.plugins.kotlinSerialization) apply false + alias(libs.plugins.composeMultiplatform) apply false + alias(libs.plugins.composeCompiler) apply false +} diff --git a/SemanticEmojiFilter/cli/build.gradle.kts b/SemanticEmojiFilter/cli/build.gradle.kts new file mode 100644 index 0000000..9f22b49 --- /dev/null +++ b/SemanticEmojiFilter/cli/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + alias(libs.plugins.kotlinJvm) + alias(libs.plugins.kotlinSerialization) + application +} + +val layaVerifier = providers.gradleProperty("layaVerifier").orNull == "true" + +kotlin { + jvmToolchain(21) +} + +dependencies { + implementation(projects.shared) + implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.serialization.json) + // Panama FFM kernels for the JVM. + implementation(libs.skainet.backend.api) + if (layaVerifier) implementation(project(":verifier")) + + testImplementation(kotlin("test")) +} + +// The CLI reads the same catalog files the apps bundle, so one copy stays the source of truth. +// The `verify` command exists only when the verifier module is part of the build. +sourceSets.main { + resources.srcDir("../composeApp/src/commonMain/composeResources/files") + kotlin.srcDir(if (layaVerifier) "src/verifier/kotlin" else "src/noVerifier/kotlin") +} + +application { + mainClass.set("sk.ainet.samples.emoji.cli.MainKt") +} + +tasks.withType().configureEach { + jvmArgs("--enable-preview", "--add-modules", "jdk.incubator.vector", "-Dfile.encoding=UTF-8", "-Dstdout.encoding=UTF-8", "-Dstderr.encoding=UTF-8") + systemProperty("skainet.cpu.vector.enabled", "true") + maxHeapSize = if (layaVerifier) "6g" else "2g" + standardInput = System.`in` +} diff --git a/SemanticEmojiFilter/cli/src/main/kotlin/sk/ainet/samples/emoji/cli/Main.kt b/SemanticEmojiFilter/cli/src/main/kotlin/sk/ainet/samples/emoji/cli/Main.kt new file mode 100644 index 0000000..d15ce29 --- /dev/null +++ b/SemanticEmojiFilter/cli/src/main/kotlin/sk/ainet/samples/emoji/cli/Main.kt @@ -0,0 +1,256 @@ +package sk.ainet.samples.emoji.cli + +import java.io.File +import java.security.MessageDigest +import kotlin.math.roundToLong +import kotlin.time.TimeSource +import kotlinx.coroutines.runBlocking +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import sk.ainet.models.bert.BertExecutionMode +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.domain.Catalog +import sk.ainet.samples.emoji.domain.Tier +import sk.ainet.samples.emoji.engine.CatalogIndex +import sk.ainet.samples.emoji.engine.LeafSource +import sk.ainet.samples.emoji.engine.LeafEmbeddingEngine +import sk.ainet.samples.emoji.model.DesktopLeafProvider +import sk.ainet.samples.emoji.model.defaultLeafCacheDir +import sk.ainet.samples.emoji.platform.kernelTierLabel + +private const val USAGE = """ +Semantic Emoji Filter โ€” JVM spike and tooling over the shared engine. + + bench [--model DIR] [--mode direct|optimized] [--repeats N] load, catalog, query latency, RSS + embed-catalog [--model DIR] write catalog-embeddings.bin + sha256 + calibrate [--model DIR] [--labels FILE] fit calibration.json on labelled queries + golden [--model DIR] write golden-queries.json for the ranking test + query [--model DIR] "" print the top 10 + verify [--model DIR] [--top N] "" Laya verdicts for the top N (needs -PlayaVerifier=true) + +Options: --catalog-dir DIR (default: ../composeApp/src/commonMain/composeResources/files/catalog) + --model DIR (default: ${'$'}LEAF_MODEL_DIR or ~/.skainet-examples/semantic-emoji-filter/leaf; + missing files are downloaded) +""" + +private val BENCH_QUERIES = listOf( + "healthy things to eat", "junk food", "feeling sick", "rock band", "cute pets", "rainy weather", + "going on holiday", "team sports", "very happy", "working late at the office", + "gesundes Essen", "mir ist schlecht", "Rockkonzert", "Haustiere", "Urlaub am Meer", + "Geburtstagsfeier", "winter sports", "breakfast", "something sweet", "fruit", +) + +fun main(args: Array) { + if (args.isEmpty()) { + println(USAGE.trimIndent()) + return + } + val opts = Options.parse(args.drop(1)) + when (args[0]) { + "bench" -> bench(opts) + "embed-catalog" -> embedCatalog(opts) + "calibrate" -> calibrate(opts) + "golden" -> golden(opts) + "query" -> query(opts) + "tokens" -> tokens(opts) + "verify" -> verify(opts) + else -> { + System.err.println("unknown command '${args[0]}'") + println(USAGE.trimIndent()) + System.exit(2) + } + } +} + +private class Options(val flags: Map, val positional: List) { + val modelDir: String get() = flags["model"] ?: defaultLeafCacheDir() + val catalogDir: File get() = File(flags["catalog-dir"] ?: "../composeApp/src/commonMain/composeResources/files/catalog").canonicalFile + val mode: BertExecutionMode get() = if (flags["mode"] == "optimized") BertExecutionMode.OPTIMIZED else BertExecutionMode.DIRECT + val repeats: Int get() = flags["repeats"]?.toInt() ?: 5 + + companion object { + fun parse(args: List): Options { + val flags = LinkedHashMap() + val positional = ArrayList() + var i = 0 + while (i < args.size) { + val a = args[i] + if (a.startsWith("--") && i + 1 < args.size) { + flags[a.removePrefix("--")] = args[i + 1] + i += 2 + } else { + positional += a + i++ + } + } + return Options(flags, positional) + } + } +} + +private fun loadCatalog(opts: Options): Catalog = Catalog.parse(File(opts.catalogDir, "catalog.json").readText()) + +private fun loadEngine(opts: Options): LeafEmbeddingEngine = runBlocking { + val source = DesktopLeafProvider(opts.modelDir).resolve { System.err.println("[MODEL] $it") } + val engine = LeafEmbeddingEngine.load(source, mode = opts.mode) { System.err.println("[MODEL] $it") } + System.err.println("[MODEL] loaded ${(source as LeafSource.Directory).path} in ${engine.loadMillis} ms, ${engine.dimensions} dims, kernels: ${kernelTierLabel()}") + engine +} + +private fun buildIndex(catalog: Catalog, engine: LeafEmbeddingEngine, log: Boolean = true): Pair { + val started = TimeSource.Monotonic.markNow() + val index = CatalogIndex.build(catalog.items, engine) + val ms = started.elapsedNow().inWholeMilliseconds + if (log) System.err.println("[INDEX] ${catalog.items.size} items embedded in $ms ms (${"%.1f".format(ms.toDouble() / catalog.items.size)} ms/item)") + return index to ms +} + +private fun rssMb(): Long? = runCatching { + File("/proc/self/status").readLines().firstOrNull { it.startsWith("VmRSS:") } + ?.split(Regex("\\s+"))?.get(1)?.toLong()?.div(1024) +}.getOrNull() + +private fun percentile(sorted: List, p: Double): Long = sorted[((sorted.size - 1) * p).roundToLong().toInt()] + +private fun bench(opts: Options) { + val catalog = loadCatalog(opts) + val engine = loadEngine(opts) + val (index, indexMs) = buildIndex(catalog, engine) + val calibration = loadCalibration(opts) + + // Warm-up, then timed repeats per query. + BENCH_QUERIES.take(3).forEach { engine.embedQuery(it) } + val embedTimes = ArrayList() + val sweepTimes = ArrayList() + repeat(opts.repeats) { + for (q in BENCH_QUERIES) { + val t0 = System.nanoTime() + val v = engine.embedQuery(q) + val t1 = System.nanoTime() + index.rank(v, calibration) + val t2 = System.nanoTime() + embedTimes += (t1 - t0) / 1_000_000 + sweepTimes += (t2 - t1) / 1_000 + } + } + val e = embedTimes.sorted() + val s = sweepTimes.sorted() + println("mode=${opts.mode} kernels=${kernelTierLabel()} cores=${Runtime.getRuntime().availableProcessors()}") + println("model load: ${engine.loadMillis} ms") + println("catalog embed: $indexMs ms for ${catalog.items.size} items (${"%.1f".format(indexMs.toDouble() / catalog.items.size)} ms/item)") + println("query embed: p50 ${percentile(e, 0.5)} ms, p95 ${percentile(e, 0.95)} ms, max ${e.last()} ms (${e.size} runs, ${BENCH_QUERIES.size} queries x ${opts.repeats})") + println("cosine sweep: p50 ${percentile(s, 0.5)} us, p95 ${percentile(s, 0.95)} us") + println("RSS: ${rssMb()?.let { "$it MB" } ?: "n/a"}") + println() + for (q in listOf("healthy things to eat", "feeling sick", "rock band")) { + val top = index.rank(engine.embedQuery(q), calibration).take(8) + println("$q -> " + top.joinToString(" ") { "${it.item.emoji}${"%.2f".format(it.cosine)}" }) + } +} + +private fun embedCatalog(opts: Options) { + val catalog = loadCatalog(opts) + val engine = loadEngine(opts) + val (index, _) = buildIndex(catalog, engine) + val bytes = index.toBytes() + val out = File(opts.catalogDir, "catalog-embeddings.bin") + out.writeBytes(bytes) + val sha = MessageDigest.getInstance("SHA-256").digest(bytes).joinToString("") { "%02x".format(it) } + val updated = catalog.copy(embeddingsSha256 = sha) + File(opts.catalogDir, "catalog.json").writeText(Catalog.encode(updated) + "\n") + println("wrote ${out.path} (${bytes.size} bytes, ${index.dimensions} dims), sha256 $sha recorded in catalog.json") +} + +@Serializable +private data class LabelledQuery(val query: String, val matches: List) + +private fun loadCalibration(opts: Options): Calibration = + File(opts.catalogDir, "calibration.json").takeIf { it.isFile }?.let { Calibration.parse(it.readText()) } ?: Calibration.DEFAULT + +private fun calibrate(opts: Options) { + val catalog = loadCatalog(opts) + val labelsFile = File(opts.flags["labels"] ?: File(opts.catalogDir, "calibration-queries.json").path) + val labels = Json { ignoreUnknownKeys = true }.decodeFromString>(labelsFile.readText()) + val engine = loadEngine(opts) + val (index, _) = buildIndex(catalog, engine) + val samples = ArrayList>() + val unknown = labels.flatMap { it.matches }.filter { catalog.item(it) == null } + require(unknown.isEmpty()) { "labels name unknown ids: $unknown" } + for (label in labels) { + val cos = index.cosines(engine.embedQuery(label.query)) + catalog.items.forEachIndexed { i, item -> samples += cos[i].toDouble() to (item.id in label.matches) } + } + val fitted = Calibration.fit(samples).copy(queries = labels.size) + var tp = 0; var fp = 0; var fn = 0 + for ((x, y) in samples) { + val predicted = fitted.isTop(x) + if (predicted && y) tp++ else if (predicted && !y) fp++ else if (!predicted && y) fn++ + } + val precision = if (tp + fp == 0) 0.0 else tp.toDouble() / (tp + fp) + val recall = if (tp + fn == 0) 0.0 else tp.toDouble() / (tp + fn) + File(opts.catalogDir, "calibration.json").writeText(Calibration.encode(fitted) + "\n") + println("k=${"%.3f".format(fitted.k)} x0=${"%.4f".format(fitted.x0)} threshold=${fitted.threshold} (cosine ${"%.3f".format(fitted.cosineAtThreshold)}), top tier capped at ${fitted.maxTop}") + val f1 = if (precision + recall == 0.0) 0.0 else 2 * precision * recall / (precision + recall) + println("${labels.size} queries, ${samples.count { it.second }} positives of ${samples.size}; accuracy ${"%.3f".format(fitted.accuracy)}, precision ${"%.2f".format(precision)}, recall ${"%.2f".format(recall)}, F1 ${"%.2f".format(f1)}") +} + +@Serializable +private data class GoldenQuery(val query: String, val vector: List, val expectedTop: List) + +private fun golden(opts: Options) { + val catalog = loadCatalog(opts) + val engine = loadEngine(opts) + val (index, _) = buildIndex(catalog, engine) + val calibration = loadCalibration(opts) + val goldens = listOf("healthy things to eat", "feeling sick", "rock band", "cute pets", "beach holiday").map { q -> + val v = engine.embedQuery(q) + GoldenQuery(q, v.toList(), index.rank(v, calibration).take(3).map { it.item.id }) + } + val out = File(opts.catalogDir, "golden-queries.json") + out.writeText(Json.encodeToString(goldens) + "\n") + println("wrote ${out.path}: " + goldens.joinToString("; ") { g -> "${g.query} -> ${g.expectedTop.joinToString(",") { catalog.item(it)!!.emoji }}" }) +} + +/** System 2 on the CLI: embed, rank, then ask Laya about the top items. */ +private fun verify(opts: Options) { + val text = opts.positional.joinToString(" ").ifBlank { error("query text missing") } + val catalog = loadCatalog(opts) + val engine = loadEngine(opts) + val calibration = loadCalibration(opts) + val embeddings = File(opts.catalogDir, "catalog-embeddings.bin") + val index = if (embeddings.isFile) CatalogIndex.fromBytes(catalog.items, embeddings.readBytes(), engine.dimensions) else buildIndex(catalog, engine).first + val n = opts.flags["top"]?.toInt() ?: 6 + val ranked = index.rank(engine.embedQuery(text), calibration) + val candidates = ranked.filter { it.tier == Tier.TOP }.take(n).ifEmpty { ranked.take(3) } + println("'$text' -> asking Laya about " + candidates.joinToString(" ") { "${it.item.emoji}(${"%.2f".format(it.cosine)})" }) + verifyCommand(text, candidates.map { it.item }, opts.flags) +} + +/** Debug: token ids of a text through tokenizer.json and vocab.txt, to catch normalisation differences. */ +private fun tokens(opts: Options) { + val text = opts.positional.joinToString(" ").ifBlank { error("text missing") } + val dir = File(opts.modelDir) + val fromJson = sk.ainet.frontend.tokenizer.TextFrontEnds.fromTokenizerJson(File(dir, "tokenizer.json").readText(), File(dir, "tokenizer_config.json").takeIf { it.isFile }?.readText()) as sk.ainet.frontend.text.BatchTokenizer + val fromVocab = sk.ainet.frontend.tokenizer.TextFrontEnds.fromVocabTxt(File(dir, "vocab.txt").readText()) + val a = fromJson.encodeWithMetadata(text) + val b = fromVocab.encodeWithMetadata(text) + println("tokenizer.json: ${a.ids.toList()}") + println("vocab.txt: ${b.ids.toList()}") + println("decoded(json): ${fromJson.decode(a.ids)}") +} + +private fun query(opts: Options) { + val text = opts.positional.joinToString(" ").ifBlank { error("query text missing") } + val catalog = loadCatalog(opts) + val engine = loadEngine(opts) + val calibration = loadCalibration(opts) + val embeddings = File(opts.catalogDir, "catalog-embeddings.bin") + val index = if (embeddings.isFile) CatalogIndex.fromBytes(catalog.items, embeddings.readBytes(), engine.dimensions) else buildIndex(catalog, engine).first + val t0 = System.nanoTime() + val v = engine.embedQuery(text) + val ranked = index.rank(v, calibration) + println("'$text' embedded in ${(System.nanoTime() - t0) / 1_000_000} ms; ${ranked.count { it.tier == Tier.TOP }} above threshold") + for (r in ranked.take(10)) { + println(" ${r.item.emoji} cos ${"%.3f".format(r.cosine)} conf ${"%.2f".format(r.confidence)} ${if (r.tier == Tier.TOP) "TOP " else " "} ${r.item.nameEn} / ${r.item.nameDe}") + } +} diff --git a/SemanticEmojiFilter/cli/src/noVerifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt b/SemanticEmojiFilter/cli/src/noVerifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt new file mode 100644 index 0000000..38cd96f --- /dev/null +++ b/SemanticEmojiFilter/cli/src/noVerifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt @@ -0,0 +1,9 @@ +package sk.ainet.samples.emoji.cli + +/** Built without `-PlayaVerifier=true`. */ +internal fun verifyAvailable(): Boolean = false + +internal fun verifyCommand(query: String, items: List, flags: Map = emptyMap()) { + System.err.println("verify: this CLI was built without -PlayaVerifier=true") + System.exit(2) +} diff --git a/SemanticEmojiFilter/cli/src/verifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt b/SemanticEmojiFilter/cli/src/verifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt new file mode 100644 index 0000000..7d49f62 --- /dev/null +++ b/SemanticEmojiFilter/cli/src/verifier/kotlin/sk/ainet/samples/emoji/cli/Verify.kt @@ -0,0 +1,34 @@ +package sk.ainet.samples.emoji.cli + +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.runBlocking +import sk.ainet.samples.emoji.domain.CatalogItem +import sk.ainet.samples.emoji.verifier.LayaVerifier +import sk.ainet.samples.emoji.verifier.layaDesktopSource + +internal fun verifyAvailable(): Boolean = true + +/** Runs the Laya verifier over [items] for [query] and prints every verdict with its timing. */ +internal fun verifyCommand(query: String, items: List, flags: Map = emptyMap()) { + val schema = sk.ainet.samples.emoji.verifier.EmojiMatchSchema.schema( + statement = flags["statement"] ?: sk.ainet.samples.emoji.verifier.EmojiMatchSchema.STATEMENT, + whenFalse = flags["no"] ?: sk.ainet.samples.emoji.verifier.EmojiMatchSchema.WHEN_FALSE, + whenTrue = flags["yes"] ?: sk.ainet.samples.emoji.verifier.EmojiMatchSchema.WHEN_TRUE, + ) + val verifier = LayaVerifier(layaDesktopSource(), schema) + val started = System.nanoTime() + var loadMs = -1L + runBlocking { + verifier.verify(query, items).collect { v -> + if (loadMs < 0) loadMs = (System.nanoTime() - started) / 1_000_000 - v.millis + val item = items.first { it.id == v.itemId } + val p = v.probabilityTrue?.let { "%.2f".format(it) } ?: "fail" + val verdict = when (v.accepted) { true -> "YES"; false -> "no "; null -> "? " } + println(" ${item.emoji} $verdict P(match)=$p ${v.millis} ms ${item.nameEn}") + } + } + println("Laya load ${loadMs} ms, ${items.size} decisions in ${(System.nanoTime() - started) / 1_000_000 - loadMs} ms") + val rss = java.io.File("/proc/self/status").takeIf { it.isFile }?.readLines()?.firstOrNull { it.startsWith("VmRSS:") }?.split(Regex("\\s+"))?.get(1)?.toLong()?.div(1024) + if (rss != null) println("RSS: $rss MB") + verifier.close() +} diff --git a/SemanticEmojiFilter/composeApp/build.gradle.kts b/SemanticEmojiFilter/composeApp/build.gradle.kts new file mode 100644 index 0000000..46b95be --- /dev/null +++ b/SemanticEmojiFilter/composeApp/build.gradle.kts @@ -0,0 +1,135 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.androidMultiplatformLibrary) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) +} + +val layaVerifier = providers.gradleProperty("layaVerifier").orNull == "true" + +kotlin { + jvmToolchain(21) + + // The Android app entry point (MainActivity, manifest) lives in :androidApp โ€” AGP 9 no + // longer allows 'com.android.application' in a KMP module. This is a plain KMP library on + // the Android axis; :androidApp depends on it for App(). + android { + namespace = "sk.ainet.samples.emoji.library" + compileSdk = libs.versions.android.compileSdk.get().toInt() + minSdk = libs.versions.android.minSdk.get().toInt() + + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } + } + + jvm() + + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + browser() + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(projects.shared) + implementation("sk.ainet.ui:skainet-ui") + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material3) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + implementation(libs.androidx.lifecycle.viewmodelCompose) + implementation(libs.androidx.lifecycle.runtimeCompose) + implementation(libs.kotlinx.coroutines) + } + commonTest.dependencies { + implementation(libs.kotlin.test) + } + jvmMain.dependencies { + implementation(compose.desktop.currentOs) + implementation(libs.kotlinx.coroutinesSwing) + } + wasmJsMain.dependencies { + implementation(libs.kotlinx.coroutines) + } + // The Laya verifier is a build-time switch: with -PlayaVerifier=true the :verifier module + // is on the Desktop and Android classpath and the *Verifier source dirs provide + // createVerifier(); without it the *NoVerifier dirs return the no-op verifier. + val verifierDir = if (layaVerifier) "Verifier" else "NoVerifier" + jvmMain { + kotlin.srcDir("src/jvm$verifierDir/kotlin") + if (layaVerifier) dependencies { implementation(project(":verifier")) } + } + androidMain { + kotlin.srcDir("src/android$verifierDir/kotlin") + if (layaVerifier) dependencies { implementation(project(":verifier")) } + } + } +} + +// Single source of truth for the JVM flags SKaiNET needs on desktop: the JDK Vector API +// (incubator) for SIMD-accelerated CPU ops. +val skainetSimdJvmArgs = listOf( + "--add-modules", "jdk.incubator.vector", + "--enable-preview", + "-Dskainet.cpu.vector.enabled=true", +) + +tasks.withType().configureEach { + jvmArgs(skainetSimdJvmArgs) + maxHeapSize = if (layaVerifier) "6g" else "2g" +} + +tasks.withType().configureEach { + jvmArgs(skainetSimdJvmArgs) +} + +// The web build bundles the LEAF checkpoint as Compose resources (wasm has no filesystem). +// Desktop and Android download the same files at runtime instead, so the directory sits under +// wasmJsMain and never reaches the jar or the APK. +val leafDir = layout.projectDirectory.dir("src/wasmJsMain/composeResources/files/leaf") + +val fetchModel by tasks.registering(Exec::class) { + description = "Downloads the MongoDB LEAF (mdbr-leaf-ir) checkpoint into the wasm Compose resources. Skips if present." + group = "build setup" + val scriptPath = rootProject.layout.projectDirectory.file("scripts/fetch-model.sh") + commandLine("bash", scriptPath.asFile.absolutePath, leafDir.asFile.absolutePath) + inputs.file(scriptPath) + outputs.dir(leafDir) + val modelFile = leafDir.file("model.safetensors").asFile + onlyIf { !modelFile.exists() || modelFile.length() < 80L * 1024 * 1024 } +} + +// Every Kotlin compile task AND every Compose-resources copy task depends on the model being on +// disk โ€” Gradle 9's strict implicit-dependency validator fails otherwise, since the +// resource-copy task reads from a directory fetchModel writes into. +tasks.matching { + it.name.startsWith("compileKotlin") || + it.name.startsWith("compileJava") || + it.name.startsWith("convertXmlValueResourcesFor") || + it.name.startsWith("copyNonXmlValueResourcesFor") || + it.name.startsWith("prepareComposeResourcesTaskFor") || + it.name.startsWith("generateResourceAccessorsFor") +}.configureEach { dependsOn(fetchModel) } + +compose.desktop { + application { + mainClass = "sk.ainet.samples.emoji.MainKt" + + jvmArgs += skainetSimdJvmArgs + jvmArgs += if (layaVerifier) "-Xmx6g" else "-Xmx2g" + + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageName = "sk.ainet.samples.emoji" + packageVersion = "1.0.0" + } + } +} diff --git a/SemanticEmojiFilter/composeApp/src/androidNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt b/SemanticEmojiFilter/composeApp/src/androidNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt new file mode 100644 index 0000000..db0848b --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/androidNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt @@ -0,0 +1,8 @@ +package sk.ainet.samples.emoji + +import android.content.Context +import sk.ainet.samples.emoji.verify.NoopVerifier +import sk.ainet.samples.emoji.verify.Verifier + +/** Built without `-PlayaVerifier=true`: the second stage is off. */ +fun createVerifier(context: Context): Verifier = NoopVerifier("build with -PlayaVerifier=true") diff --git a/SemanticEmojiFilter/composeApp/src/androidVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt b/SemanticEmojiFilter/composeApp/src/androidVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt new file mode 100644 index 0000000..0efa5bd --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/androidVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt @@ -0,0 +1,22 @@ +package sk.ainet.samples.emoji + +import android.app.ActivityManager +import android.content.Context +import sk.ainet.samples.emoji.verify.NoopVerifier +import sk.ainet.samples.emoji.verify.Verifier +import sk.ainet.samples.emoji.verifier.LayaVerifier +import sk.ainet.samples.emoji.verifier.layaAndroidSource + +/** + * Built with `-PlayaVerifier=true`. The checkpoint is 644 MB of F16 weights and about 1.3 GB + * once up-cast to FP32 on the ART heap, so the verifier only switches on when the device grants + * a large heap that can hold it; otherwise the UI says why it is off. + */ +fun createVerifier(context: Context): Verifier { + val am = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager + val largeHeapMb = am.largeMemoryClass + if (am.isLowRamDevice || largeHeapMb < 2048) { + return NoopVerifier("needs a ${2048} MB heap, device grants $largeHeapMb MB") + } + return LayaVerifier(layaAndroidSource(context)) +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration-queries.json b/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration-queries.json new file mode 100644 index 0000000..f6f10c8 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration-queries.json @@ -0,0 +1,293 @@ +[ + { + "query": "healthy things to eat", + "matches": [ + "1F957", + "1F34E", + "1F966", + "1F955", + "1F34C", + "1F347", + "1F353", + "1F951", + "1F345", + "1F952", + "1F96C", + "1FAD0", + "1F95D", + "1F352" + ] + }, + { + "query": "fruit", + "matches": [ + "1F34E", + "1F34C", + "1F347", + "1F353", + "1F34A", + "1F34B", + "1F349", + "1FAD0", + "1F95D", + "1F352", + "1F351", + "1F350" + ] + }, + { + "query": "junk food", + "matches": [ + "1F355", + "1F354", + "1F35F", + "1F32D", + "1F369", + "1F37F", + "1F953", + "1F32E" + ] + }, + { + "query": "something sweet", + "matches": [ + "1F369", + "1F36A", + "1F382", + "1F370", + "1F9C1", + "1F36B", + "1F36C", + "1F36D", + "1F366" + ] + }, + { + "query": "birthday cake", + "matches": [ + "1F382", + "1F370", + "1F9C1", + "1F381", + "1F388" + ] + }, + { + "query": "breakfast", + "matches": [ + "1F95E", + "1F950", + "2615", + "1F95B", + "1F34C" + ] + }, + { + "query": "feeling sick", + "matches": [ + "1F912", + "1F927", + "1F92E", + "1F922", + "1F637", + "1F915", + "1F48A" + ] + }, + { + "query": "hospital", + "matches": [ + "1F3E5", + "1F691", + "1FA7A", + "1F489", + "1F48A", + "1F915" + ] + }, + { + "query": "rock band", + "matches": [ + "1F3B8", + "1F941", + "1F3A4", + "1F3B9", + "1F918", + "1F3B6" + ] + }, + { + "query": "classical music", + "matches": [ + "1F3BB", + "1F3B9", + "1F3BA", + "1F3B7", + "1F3BC", + "1F3B5" + ] + }, + { + "query": "cute pets", + "matches": [ + "1F436", + "1F431", + "1F439", + "1F430", + "1F42D" + ] + }, + { + "query": "sea creatures", + "matches": [ + "1F42C", + "1F433", + "1F988", + "1F419", + "1F422" + ] + }, + { + "query": "rainy weather", + "matches": [ + "1F327", + "26C8", + "2601", + "1F4A7" + ] + }, + { + "query": "hot summer day", + "matches": [ + "2600", + "1F525", + "1F3D6", + "1F349", + "1F366" + ] + }, + { + "query": "winter sports", + "matches": [ + "26F7", + "2744", + "1F3D4" + ] + }, + { + "query": "team sports", + "matches": [ + "26BD", + "1F3C0", + "1F3C8", + "26BE" + ] + }, + { + "query": "going to the gym", + "matches": [ + "1F3CB", + "1F3C3", + "1F94A", + "1F9D8" + ] + }, + { + "query": "going on holiday", + "matches": [ + "2708", + "1F3D6", + "1F9F3", + "1F3E8", + "26F5", + "1F6F3" + ] + }, + { + "query": "camping in the mountains", + "matches": [ + "26FA", + "1F3D4", + "1F332", + "1F525" + ] + }, + { + "query": "very happy", + "matches": [ + "1F600", + "1F60D", + "1F973", + "1F970", + "1F607" + ] + }, + { + "query": "sad and crying", + "matches": [ + "1F622", + "1F62D", + "1F494" + ] + }, + { + "query": "angry", + "matches": [ + "1F621", + "1F624" + ] + }, + { + "query": "tired, need sleep", + "matches": [ + "1F634", + "1F6CC", + "1F6CF", + "1F62C" + ] + }, + { + "query": "working late at the office", + "matches": [ + "1F4BB", + "23F0", + "2615", + "1F4C5" + ] + }, + { + "query": "cleaning the house", + "matches": [ + "1F9F9", + "1F3E0", + "1F5D1" + ] + }, + { + "query": "video games", + "matches": [ + "1F3AE", + "1F3B2", + "1F9E9", + "1F4BB" + ] + }, + { + "query": "money and shopping", + "matches": [ + "1F4B0", + "1F6D2", + "1F381" + ] + }, + { + "query": "beach holiday", + "matches": [ + "1F3D6", + "26F5", + "1F6F3", + "1F30A", + "2708" + ] + } +] \ No newline at end of file diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration.json b/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration.json new file mode 100644 index 0000000..de57099 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/calibration.json @@ -0,0 +1,8 @@ +{ + "k": 22.117331604372698, + "x0": 0.2785088608201167, + "threshold": 0.8, + "queries": 28, + "accuracy": 0.9790521978021978, + "f1": 0.5960264900662252 +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/catalog-embeddings.bin b/SemanticEmojiFilter/composeApp/src/commonMain/composeResources/files/catalog/catalog-embeddings.bin new file mode 100644 index 0000000000000000000000000000000000000000..4c9ad045ff91a7acab9ba9e7eb0a41f9cf702f6e GIT binary patch literal 638976 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 Rda?43bv+!Ijy zh!>d^8HcUbQ%RSDJG-NC1zR?+0UcGcNp{J9aOlJfsQK0nmZwVC)D`WJm-7!7O|+s) z^_=N%-g2zfe-08n!KU#}XGr%KBOQ;9!e#9MGHY!gNT#)b#RYDzzSKq@hTdgvH9y0C z!DQ%2)S(04rRizycE~Y!%lxxWqDmP(JfrLb>}YEdyq=U#zg;t7FOHt2wOc#THSrh; zO1wlpFM86gV(~=%s1kI=ucgEF)8J{yW?E&Piq{?cpjA>EZeD5z{-YiUEeaz)T=QWH zUj;XBpG>Z9lp@pr=%I}LdD`2V1asDInih`n{O?{wdpO1{ZL%82|`4kV7b;|+WKt-g?tagl9)}92PrtIR)ktBijbt& zZ<$<1+({+em-v|zn%VLI3-um?u}U7^y110*rr8P)q^d!0OaeW03t;V%$)q(WfLQ*w zn1*fep`TrrvD)_SaLMi|D0|Hy>MeQXa9k5x*qsSI4TjXORF$d}7m!)Il6eN3r-1hI zFxqOLMl07of=wd+xZWd*%2Ri;^VLG|tq*Ke5AY`M%u0#2#!aU9^DS=fRp8}LTSdbI zdvL|CEp&FRK2zwv4qirZe$e?cWJ2mf+A;S$-JJ%RHUOlvyw4(+qzF|qE%Iy;)m>+EHx?c7OX{VJ*QaU)Xvy@WiH8(`Pg zwKKj8C8>h8E-?xWqKBJgiNdowXwweCT@GV7Fja`WaM^;3U3&P=twuOSB8N$SBTY_U zQ=#m}x#Y5VEUt?>1hoMhVcRS}6zPj%j=oi*qGK1p$7T_}n>Uf(_%NB`BQxr%`?YcQ zq7p#C>E z?{VMuWuTWa&Q71ld25>*@JD7bY?nrNXpmy2)^P_T=o-ZTw6ufw(P;TPh~JnSPdgap8(&`lzE`5NWme4c_UkeRzH?d zu|xT=pSEGLY#GGpe1kr@1vs3d2|Mn1Vu<<728}QylJac`x-Xj&$80h3Dt;UaGYrY@ z5ugvkGMH~%W@g|1V%W|5B_Jr-ucLt}Ad+BU#H!>t5nUS%%K<Z3ccHk|Z^1A?`YGPo#Z69W>%z2lJg!iG3(KgEu})1fnNnvzsSOCXo@F}Tvgc^T>x1ewTC3F(oZk z?a5ADu}lK4hF3!1S~(1=)+B6_EO_SoVT)K8cyLs$Cqq6mw`u`IA+1g zGZ1iOJJcy9vY&k~<9CxN3+K<5K)tD&H1l0H z1~oZ=$-78Apd&<=C;AZo$8pT9=knyrf`#OZ0uPV0zhnI4bD0_ZBBt)oB#2Mt@ZzO17V=L4d2$E}cDzqTz zBJ_*8(|G~N{F_q>6F)v@tg58osP1RDAf^U=?k0@;a5HRS?=YPw=kYJ9x1;Z#b0B6r zja}=nLbcX9foSI#GbyqeK8@eTUqL6)xA8V~Wu%cude(IR$H}N@z%uVmA~6%Q@Ib8^ zzsao%2RvOcxIuy*uy_e`?Z3h3>L~X9=VqKGp@9C9(qLVZ0j`?5VA1M8Ki`yLFI;_# zVm*IY^-X-%*vlMTju?`c6BAkaWn#RzJ(Zk?LY`W`O+xm(HXhjR2Q!1Gveg4;A)AS% zfv>&EzJcGUw&)F*YdQh!tH)Q?>rkkEJ~7PO0gcn1;!*Y`Zkn?gtrn+Ihr{z|Et?4J zG;?w!Cl8lCi3NE}b<|i|&iD{zx<9c3)<*X;X@9#wWP%LY&9?Cm_FjRLZM~>wyMh-S zF%@H7uR%+HA)0zg(VZv9;AUF|&Rk)RfBbSWB2}I~IV6dK?|ZS|GJ;*bqL`nV5kl?n z9s`jNNg$WrjBmCY^0oBkh|SSrII+GF+ibba+B|MQXL%X&-5u%N1sX8vuM`YfdP3HZ zJpTOUh1fN;lYVh`B$aj_kaQNaw$ESV88aY@#LwYL8G97pnu4?T9Km`uN&MOB58itl zdFM;2nEQN74CMAA|5P~N;lU9$IR7(ryw@emWR%FwKZYbO_b9(_>;y*r{LTmz8sf~j zQRbaM6t(EGqDOB{VlLTLG_D9yqV}qPP;Xv1d^M6~KJb>&Uy)aEyJkA;_UtB8xm^>N z4TqC~WlvG1$dN>+1K;nCBII8cBSP+#u$JSDDo?A0D!(D}Qd*U=rG;erKnl^{rAK3H zWt=+drqcgD2hhnWfiz-r0r~r-fG_3a0wp>7X#h8C`rXWCUUJ-UT`q%n|Gfm6@K>4U z?zW-TWvhr&kPNlFwwk0%bYP<$i^?lK@X$RMW?_CFsQr9My}AZq;B%LowNHWAV02osop7Z+V#OiI%Vuzj&GyCXE2 z7x>SB{&%&8;`I}7`gS6_DR3(zGf#o0DeF*4<0A4^yM(Ez5OUgitP($ex=Qz(h|)C+ zlF7xQh{jol!5|j5nB0D8OYWG*vr8)lAkX_A7*=W#&G9HEbNxU5%ZdWt>cmL=Ptcrv za(@L%r+1V6GtE)@I~|8#M!Jbisu* zPbp<~{(V3VOp)Hscm~@HvOzUi3Qo6W(*&D9h{)u1!(!_Oq81(p{-@P3Ix(3ZSaY6y_k2RH*p~B63OP2i?iX$+ z-44D2-ej*>C#?;Mf=|E4F=d?`wK+PK?0CKf9n%Aeg5PWM`<*Z2)wYC*m|IEz&ecM< zw8t>_o+y8RXg#TDEF^kQVzKIj4@n5^g_f0hg#TYX{W-pgh+l|cHeV7Y9?IVEW@sIK z@#i7qR1ifL+B?%b+urhK-keChb3*8W#x>-jKpn}544{J_s$o@i3SBQYmE0%?dgIIh zbbpve#3saJ&188xGjs>PU+5&t7kyz$i9hyCbp%^MKDaFHz_24RWaf`GZ0A5E>UyWa zlc+DKrI!WQ1`nfkqYq?#FU4Smzu0ngE^QkSpdA-1xVhvaBS0#SY=YS<*2A!-c+<83Z#r$lC$@7W#a*?rbHKCx%v#>SA+*&*S3LhH8-OOs7RDHm)&*|#4tGw?X5~4C z*)oV7%f~_OTJGI-d6}jLFv~Tb$=|sfI#TY#@ust=zhOIVt>|L6-jBtB)V4;kDjhf? z6NK)|Z9uU3EFOq#MpL~^u=?*NxY?%yjc$jnHAWzCS%jObk5TQ9f}9>*4qq)a$dygc z(fa!&I^Pd~AMpf3wcf(&Ik6l=h-1#(%>$45mN-6Ci6I}HAn8CiUi!X;sE6p%-~x3h zTfdQg56>eV#083njL?6j}oRIwk69~8&aRo67>3ug}~R~fqds( zkTs~saFa|NsC$XB5@oEu&}SIXYhb0pko605qfyVf@8{nH{_cXyY>Xt2>VMaU=|q&Q z?d|0}KXW0hZ86hbxEXiuD#mnK?uhm(0CyV!z*rn4r z-li~V+}OlCz59}#wK5(gs1n`zag;83aR8kAbk`yW;&=Nf8@-jwL#_D;Z~5AELP8N7OR@N%Dm)W>r z0O^61k_~@Z}7S zAKVqnOtbI8*^j1TgRmlMg>ycPNv#k#v5TE1*UQa7;>?=`Wgz~>1`?f~!R)5U#yl+v z>iOk2?|DHK^0Jj-Qoa<8d=XDCc74axt*hAEif4JB?zOSK)g^dW(upz$zhlQzL3;RW z5lH^)W(LY;Fft(?%yAcgIPg6QT=ylAZNYA2b%hj(loBT$8q+{|f*`o2?1%YRoXOC% zbBwEI8i=iTBG)R_>4S+eB(sZ91*V!UaLR*`U4A6>!co5P&^EZ6eG>&0Wr)7&2mbFo zKHJu5Kz6Gg0y`H$&I7MRwylx|EB8D2?lm8?7vEt=U60^(KXrP|K?&+l4lujNypxR%HNVozyW&E0-zhE*rn%!l8YR+L?8{e>3tr8(1SrqsE8RW8gTt@d# z2KtVNz=M){92`E!YId(>JO3y#F*Eu&M$aU;&hLke-BXBZQ8}KS^9<`O9)sQzH4-hA zh@y8mUh?ryC|z@bUF5Ds|BK}KNcRU>y<2;!^)3tY6Oxcz9Q(S96sDhIzlVD+RH(3-|h$Y^v1 zM~=yT!P=NM2J6wa^NTnxO#=C_c|I)xMOtyw0_K^9;OWA4T=-9iJ-(aM?=<_^<9V9Y z>)0^Z%`_vw6M`^ENd#Z75TK7l3(%oA4ydIsi}SqcxrY%jRiT#cj^GUZpA+HSr4tzZ zmt&r507NUYY=HyCNkg{uUTGX!uR6e=(R_u`modarW;Xf6X*>gLK4VbagNK|JL3sB! z9yWR7xW;!@dV@C^y#5!=?SJFh-w_ygR2w!MA>Fls(+gG?vj64i5wnUftd@uw>@Ui7 z^m}@et><~1C#lIP80bw4Z8tfGS`k&(<++&p44Z0Hs`bXi?@v8Nl)}lI()Sh6EAG$J7g&1q_10e$>-m(KmBWXIZKq_6$)a8 zZxKFxl0eUm^zqJdvv}`xadMFBV5u(O1Thu|Kt(-@?>}oh(qHFsp;aTZ$5n?u?SH}V zja>js4mL85>FRWnQw*90I+7nJhMCSy7x1$22@LGRvJEoJgxz=#0_b}1=(#`d^m=OI%(e#2mOM1uek-UE*RAa(hl5#tj240#< zTQ)P)TzWT2ekV=^oDInuLnHQqtS-4ZgF8>RNf7JShftnU0HMN`R8(s^JyelNnz}>i zXn8()yQ-Ht9qbIb@hQx(Mh|ar;y0eHU=Mxi{RMKWTnHxEQom`#4BbB$TMnl2otbIO zjQ=dVev@2cOsz98V1%d0y6buN=p@K>Fnq<*I zj){IEksdB-2IC%7Qedn4e0%1pCwAM@tvQsXY2^ACM=l(xj#DF?03GW%y0a$kk#g?2c4L^Ky>0Rc6AL z`CMjpBys$^EhfbM@j{-}l8G?$Z#HfDDCsnotK2lZTY)~c7pK2gh(n&{R`!9F9Qf!| z)9G!MWYNZjbo0(HtW%8&xxLnnPO<3+yH!F?6ZDskd`kN=xroKcy`nI2D-U;!!aF}bxW~&Y&NSTqe<3( zkEa-{3^FIvvB|*^C-79rrVSP3?U5q3`${HRvqc^oFG&-7Z-%zKkRs<#{{xq{JcKWt zSH(Zfv7R*GsT56yXQ@u&L*KJvr-xu?u_nFBaigf+bDl)F32#btKIC6<#vDNrB3mv* zf7i*vic)11eZ_TXrJK;$qIP__E*dRX_re7mGYT@O)lPGzvk2UXZhKl-RsH;jxEHNZ1 zitkZeQiHfn?u4&R=lDuK>kFO1E1&hSoOdWzdGazb=LI{%ECF=_H!hFjT8 zw$(0>-DAn=SRvj-hIa~>MQ?fGKZg1I7#*w_wkBUS6=+GQ3molh-df*9S4+_%8U(2otB5A~YaEl9qVv#v!Uop`3;%w!1$BefxKQmLsBcun?=DN&?2Ve3n8js=te3O4 z`O}G2mkSv)ErLHYg{k%|PJcNNgK|rDlNfnERz4J`&rTHZSS3BSEbKQ}9_huDW12KH zR{~SLTX@rFzXj8B3+RxG!+`hElsxZ2t?GLCH982^D{Sbuv%f*CeLnFW(WdWnC_Gf! z49ull$ao)R!)~e30-If=(yR)1)%KywOEboV+XL8{U4~Qpt6+55Y%KD-119pb?sUhZ3dHi3-o?SpsX0`vvb&a3KIfn%dl=r-*j2|J*KPg~5Xn@&15Ka(bf`XY4k zq69{xx{cw9*Wp_mMTk9Y0XDK~II1Se!1oNMs_zh^QbVEZZ6X}MT>^f~UP8viLRM)_ z4(N`k@Xoz9M}>A^?w)@OD;oQtBmV&QvuAi2TxZ_v;#Ovw+3l_~1;^d^Ex3U9pl2edlRd=Jy&7O; zW<&3O{EW>4OHgAt03Fpx62ca zj};(gv9R%Jdhl3Zs5n1GFtfpWSv|$bQ~AKLvrzu8?zrD#hyjw zcgBuuu4QB9R6>68@}WRcjpXEChv`|8_{cR54gdZGLC+?b`p_32@9`qqJ%*%on}wrS zj0Zj7>j@8MoaT#J=414{OQ3Mch1gGig*yiaL2k!!JZ*7+H@HUzbfN(6C{?4m?w-cw zX>oANXq#iO$OdApAxZWn}L`+dtw; z*A}qL$|8RYKBCNM8(N(2VQR#cX#wvXChz*pj5{^4DhI3h-Dg^HRI`K)SN#Na-rU{! z+C4Oj7-i=#OJu5B)&u+NJjV-{pgGwOdBywk@pPaW2EK6NiFwCi*7J1u8S)Yq%4{HoV^pNh3cQL&=xS zv21M;BNquT-%X*)BOmb9ihbah(m_Wb$x{C6)i5+sl04Qu!S?*i|^HEosX)2Edn5T-({ zKFL99zc_o%IvsnhG^tGcYTU~8i7nP^VTWxksZ6{XNnLjfd*)=KK&b`(tQI5_432={ zqE2=}yCm^ex(14OIOf3*U0 zM)`ry?6!lE@?!Z@GVsTqY+A{AUwtZZpV|jd3vz&;pB(5#F?aIHQk5>*m(JaF zlE|9-UMLnS1Qmrf)L=Xs# zNGjtXMa~_tfU6$+=*bCdiRa#pP1>6}$#-9QdZ?!p9;WnTliEZw^Smwny26*9U#UnI z{42!ggP+l&d?DVlt|uGn8T$TJ9I0=!$AFkJ+-Eh+J1A&L?7~}N`)LO5Ma1KeU+Z8@ zK!{A`-gEypQPQ{MB>vdik8^vc5|@apbmDPeY9!O-sJ+dU^iOgp`@VI+jGndRLC8~b z*Fl%;9D0SG%3;jhYux@P?J1;889*f~U-Hy;Wy9ONHipU_Ader;fJv4-`gryY>LDUV zUYy)d+Y|EeM%OJes9HpimRn$22FGf#wxK3H9n`GW3WQEM(o%IHYCULzBPMNFo*77f zeY?wd{GCFk?olTH4jgB-qc##tt*vavachhZmZt+E5$LC#1*-(axSVtkaS-LaIUaT7 zgHI?<`TL6Fz0IM<_ad<-$CauI3zM?_9KUhi7d$!h6&N{fpf8%vQ}LTD-aZ@4dVC*& z()ICBka3hoix-lCzrIkqD~^a<`voDMp0umBj=j@(mAus~V?+)mq3RYl=JL`?Y@Bu8 z(T9JA@%cK)4$Md;FRiYy`#-qhhKZ82uXqXN^Rv*l_8vTZ+YVKS7zm2dhsE}4=zZxR zt+BpHCKbeh>=z?oPPb!2YcZ8wXh`H%Ok=~T4-LBc16B;?L$t#TvQpa=l4MRWwQsUm zv*9ib{<5Bi?drqbq9r^9aV6^VbSZKC3RGR~9GqRVko>n!f)-2h={o0h@-}}6OgmoV z*O&ctqu>#YKUYH1+~rB%8wVm4D@U`+kMcu_94WFn#jNjILeIzlfohd#uov3c=(sYB z=$y<3(Ipl^uW9LA(XCxP2I5FQN|Dja}Ybho&jVxs0n4vGra_|GlneCH{yr(gyd@ zP12Hle)<#=hd-d~lr%P~tQsToM9GD95AjL74`})9gez7Byo82kJaA!%5wkDAanj2? z)t?NWQRx_o$?)>`3x~fA=Sl6Pb$DBS60}S=Vn578mjYgXd%?5P0)6e)1YNWRLD=oBHJD4kbpAXd$kKaFYRa7 zK3~b@lPpm_#*WKAy~Y)H#UP?kgqB^DWtLC3rpKQL!Zi0PST^|rR{Bz?n0$-fu+b0` zUmt*aZ38s8_Y0~QYM=`L2)p*?U8deefe8!LXBX&gCf9B>!g>vTa?=Cg2j{ag=-Q7y zkD2v)M$nRR3WY7QVd|P#obG2%AC@@Nk_1gCvm?ZF10R}VW~16) zd5})mB$|^;SqZ5g)Ze+3eRod5JjOqea%Oy2dPZtKx}k z^nt;ft(-TD%ja*%fD5IL^xV#qjM{J^6KNX3`bqO(H1j4qIIKcsJ1I=Bkwxv#kp z5|_m{$7pp6WT(Vpp6h84&k-guD?7kzVmX={YJpm+1IgKy3*mG5td2)3&pp8lhZYE; zZvS<7w%(M!``7Dm=9fI!)T@GH{|VT*W+Hi4vf3Z@5s|ifGmVvAN1CX!qkNU+zWWn1e|+9eeJBmKDSObraPd^~wao;Kd(I-`!uv3I_yk!QCUq8`od z#H#G68CZzAVPMSZE5)g3jWSy^o#eY2pG8z?$B4cE%L0SJq#j+w%wzp3r5WvpK)_;T@!L+7;N%J=a{Uk-cHP6sK%V z!bN>EXknis`RBYD9xt&)fy8PMn7s+F9C!l}qW7Wubp_}t$&leRb^OnE3jDqKgY9{4 zMDivUk6c!i}#Z8jrr-}+)t^W;b@`M>viF!CWnd@70FsApoZ1nwtP%=r> zgmy>i(Eq&bpfYqJ)igbejrE~O%6DK;tRp1KPD9NVJHhN-4Yb>~qj+pE;!=IAtds%1|Vkr;w;{&)O;~6`IRb z3Pls8l19Gs6I}P6v-eu>`#kv4(F~QY8Xun;W-zc4d`1~xx{Sw4C-_su8w$oXBB_nW4aGyf@kD?nA8@?d`i8=X3g$k z6HQdvH%fEq5z%RMsPr{3OXk9k2OZEi90_wg?x2_FW?Zmt9X0EmLk$$SGRK5X=t7}Y zV9P#*XP1205Irl}_1um&%o8StoS)Cq+l?lE|A$?z?f854SEke06>Hxnk?t>-`7P<= zP&KieZ79|zgUixEqbvvFblphtW!n9#o2> zU(YAf*wS3G_^crsuJU8@PdKxtVnNV9r2{^CYm<9Xp~QA+HCl8(VvnW<;83bLdE&T^ z!sk`whUh1DWuX`<+N@$`c*WpP+YUy+dpV8&Pmbv5O(GvZs$cCtDuK3N7}Rf7rC&dL z^PXOI0nY|Sx?Y(_?|sOm3nMuui`_FAzA8mGGuO%d!HD_{!{0<^I24y(Tg*1}8PoLJ zawOtQ68pz{J`YmGMBa0CykTlZ_cG7PibLVJs=b8h8H6wgj`rcRa0$9)uOioJ z7ADRmi%Gg6m*+^k!7*vj1Sd3Sn5k8@kX=euOy{o8xX&<@+)h8pX8sA~+wG`g{*|ADkH)%G&#I9e z5PZoFbuXml%GLCMZ3QR}ET!wCeOLkW6Xb?iBpoR_0bAniIhW`yY(Ko8u9p(Su-$hs zNJ)mtC~IR*?%Qa(wOoYU?jHpQhYs?(M4f!nJ4}667?N+4<7DqkhkvT`sjF@#j%;`c zbFO8vnz>tv`j74Tl%sr0Yc;g^hHKaz3i$u+4>|F~B465k7t+uQm`xkr- z7jll+B&K`vZbtK?3QYZDiPxX6!_kQA_|QLw_}y2`Fp2H1IcE(xFO%*swa&i}VFn#t9j5fUQ69C@lJ9O=4eQMJYO|qSo$cZWeq7plWQTdq)M6?8n=sY}&dT zsA7;0E!-@uiLXjmP}ABSkld|`VL9_*z#$iOWfL%3VFJ1A(##&ivqaT$HGbndkg3~Vg5w8S zW|fQ~!&=>DCGUhYTUWO-vhB0ckmHGrpS_4b#yK|rzfOqO@qpiZbtdI!&mgMD-oSSG+dQKv8A_cAQG4Es zO2wJ@+t>;o`8DutrvPtA_&#hnssu0G@1T(LYsg#C8?9jh>}1omGMMm5Vw z5>l`juey{m*&NF;LW`RnPIMqoR&rji31wKbz!Fk-L}SMb3!?OHFCCf5hsP2!AZ@L{ zJkL;~ZWqIGp2Hy6&U*lgouAo6cRQHAZ3^+bnq^vf*_Ga2ca7J@pGvQdw=t%BYr)eo z8z(im;~I=%!{?>rf~i`BQCt9RACkewq!Q;lrh&PX3UO4thDvK^pzTI6xKMfs9$&wO zvj?N-K5cn)*(*x({y7Izki0MD@Kx+_I?a}(w zW7j{QNR5brvFK5JbwHlmAI`-E9?4kxA&sTe=JItigYn+s1ep2#D%ALn!orjm79tAS zfmNDJ)ah%cvIq0{)lPmyAD#HqX4K(%>D%Z}o7h*62O$3LU$i+lnXVTYhruxPM{g@*F>VTx&ZsXrP8^W!+TTQUvm5F{rtdyZ5Ny#&SOol51{-QSI9FOsFJ1 z`eiP>xT{1S?cx!ggXd9h(2MR2e+@$hPIx&Z9P&nvah|_OQ=`KH_;gD#8Mx>L_M2pB z?)sw`tf)=87yM#>m(Rp^J8pswcUJ5huw&HEykdOpkJACaEOuS|6R zF8<~J? zZ7|w8ila~MG!ix5%MZyKV4fVcAr~qGiJJHdHuz8-2G@lnD;0tBlKPptJtbId?*c8c=MdhNqK@Y$9F7Tv zCHwTjH_Mc4yzvvldLHA%qn2=4#f^Wkdoyd@Q3^pGXMx!l#T+=ROsc{)iPK~Op25a3 z7*UpCHzpcjct{ci$|=$LE#1)nH-)*MUkcsV>S2!X7O>kmj@$WDNT%LT5T2Ke)1v*z z(EVXBKN1Fe#me!roFxRg@nCW|=Z$&q4{q`gVcb25^?ExGWW(a{=>0&*S2+aZr&Qtk z&>ToxR?TwsD|n>f3S-N;oOWIY?6F?Q`QsGu+A2QC4tlYNR@Y+2)GQE~8V0*mCz1CS z&FnSG&5z?WLFIb_Ij$f<#e{$1%PT3YPsa$}?N~^+2;{S~6ZV6&#xxSRbb!q__{=1h zf8vD|d_l8I%URXkIlNVEoWF633Tby(G~skG2_Tda8P>882X5UP})oO=N%+&?k1cP&pJW=jvcNlJw){o%E`i2>5lH({_(9Y-RCJ-pf4x@`<~Ht61<8|=X>@b4HDevjU~GFH4wTNszP38%%YWQmIPWDh$NfEfd4na$ zNA0Ief5hXP*S|pKmA37Pd1 zpMi!H$Cuu{hPEi2hG_@laOLTpcv`}e-uUo?J*z7VJEBZ*%KP11Kerm~r8^-bOBHt2 z*+Dnk55?{8nOEI@thtj6+e4#>*_40$@3tFA^^rzW!E&C1?X_e~qmoLf@#u~F)99Yh z3Pi0t2tv+Z!~}-WWp?^R{lFboXq7lAo$5wbZ+wKZZpw7E`Wu|9V?lQ0pP>OS33opG zg>M#F(ZkL%WYdAEWJ8b=@oZg2HJxXZ!Ld^End2~-%DB=VO%3vN{0!}_jUCD{Mo z2t}2?K#hb6X6)6VA?EXF+xkG_H${Oy)%`)vlq_UTrhQ~{bJ`g9v+B?xJ(HB3{|7q~ zl}Kgl9Qv{R4VxRc1D_boqt`f&L{)Dwnm@}YTgX?=Mevvx;dKf0yem;~l`)xrk7F7P zw3-^ddrKw-){&rP#W-JN3!CxXouu3d#!J7S;f{y&pr!MAy0OB75!0pk-1RoA z>KaPZJh^?g*bds%Zvaaqxqfw9Czjt`Kzq*WkrN`jaLS}(^jCTwSiNdQerge}^eKcZ z+})EouM8(ze2L4YU{ZfTo!Fk304f3EWCuHkm^fvC{?|y_|DPiHvB8wRyyiGRCFB%Y zaBT=0*e24^EW>4{mcWbaCm^CroZfPiq@v$;z}%E$?0~^WcAej9bjEVDEa6jck$iam zyap9x)_`$T3M>IHTDN5{QL7zee@`DJl8&cINJtDl`KO7U70b;Bvx@7+Mb4r}%sPH^ zUOayLQ-!H!$$YPDAnjpU(Dg)%@}ynqy;cRfc~Bik>V7iow2HV6k30!FI~jgA-GLJw zf0(32I<&q#o|K7s;pYbv(5GCF`f$~-{HxKVYxpjf-g2YH!^*Jv`BY*Q`WeP_Ye<9L zYM3E$8?|SxMsT;{r#yJa8jcj0^PYJ)*yPQ8T78oSL^wj!pgu`_ zW(9*slZnoQiPSkb1p-#QqUjyQ!%`6db>5ZG(c>hL`-pBaOa0hX3|M zc(2i)zk%E7{48%~7X2CLO?Io~YjIra?o;)!Kn}I|<$tHR*GI)mh$+R+4&EMkGY}4c?y}BK5n5EJ+TN%iJuI0=ZWO=yLKFMdjRii9-HqLRb3gd_QxKa z7JCLis@(<275UH*sz~)`m@-R6oA|bW%h-k~i7?%CoWDcQlYMjkI(}aF154&);55q? zI48_?3AIG&PWCyDl@`L{+$orNqz6m>u=s(QN|!~t(jOwz>EP-!An-v2+)^hJace$! zMLuIZkGjIA{6%C@zBtJgegJOf2{1Zy22q|@14}#C6Wi&pR|0YqDJ*xGZ_K7SlqoCayho}kGk{l zwnc*I?GVC^3rpahjSqbI62xkZd&6**5;5ccYP*oBWHJ8<|AD>`_-yiLe)*q71@k)g zfzC~+toesdEgQ%YSpsdnbKtLMJ+zKKWChj^p|@%ubmkb6Mi&|S_WO47$7B+T;25`p z54|v;bOKI&qYNu6R#PpDZ_u)j!ongmdf?AzzWsl1F!8Gzgf9?>UneJ!D!&@m&Mbzh zn+7ENTP(iGe$PC%C}193VNjt{gN@+W|EKcKL#g2@20z4Emd=cFe=)M8CCqhtV$EWMZ$0=v=ory26=p7PJ{>*P&;EJ((9iL9d5C2pp> z4WoO7>D?(yFeGO;WZd?F3E{DzBUuN-e(LndQX!%*q)D}FU$93VOWAJjp0*(@0UOpx zaoLQo@N(xo+7J_qH#!)Y!=9n7uMa?E`#Uxzc`|v!InEr5~dXzr{gYW|;Nn*ay@8vx2WdqS&!o4VZWpnz}a& z;(h#)^!&vS8Um(F{xZ;l(UAmzSFj z`GEyFa&;WZvp`&}>uRFBA`Rmj+8NnP*FnabfX*<1fU{1BiCk}fp$(nC@GORHUruIM zX2Xu3kC}XjI_No8h(`8~{EedW^w+urD75n)Z2rEO+U(qn_iU0N@jwle^Jg*L@mil+ z?F}H=($nElvo)>$BS9w`#4~TltD$I{FSeurnZr2*z6_4R)svx+R!=!E!g1KK!G$%@ zDj?hbQm|3XCC07>v}b&jytR@eL3}63cX~i1{l8Kt89@+~K1LTgtl$l?ndmNg4SP+@ zh;!5!I2<)6*NZ9N!|NRHUuh*iFK>pxF$-$pP(%8f&!Fb)jbsw%EB2`H5JIS(LNU>N}WYW9jHpl7{{omh|P>dHCsZ6?^T7 zFS*t!1WFrA*}=y{(CQvsZ$!Cf;)yIO95s~|?vkZ_mzAkr$z}G5TRJ>F7z8&IN3pu0 z6v^@|oPH*NJUa0V-=FM<*-!P^!1yk_&pC}Uca@U^o?URnF`R0N>5$;NK{#r9oE$BA z11oiPfV-WnYVlNqR4>OPEbfcSw>)(|R%DeH__#dohX!O~87q9O9pOom?!J zhp67IG{m%$AKiY1|C#d%+%?@xp8imRM~@l0xqSuP@brMI8B3Tn+rLznnFAJ&RjH5{ z9|W&EkXfQhv@o#(%U|?D?RqVGvwMshe3?V9+Z3VHQ*-dRuz(yo@CRJ}y~RZzI^pA` z^F-UJ4&r>CG6n@TBs<-K9=XG^MJh{arHvkGm9eL)1%*sX)^4(8sV50}!YA`hS5oOM zJ@`!E6y(-4qN4v~DzW?s(dqjN2^L>ilPMe{nakoWa{ob%HXVghi&lv0$$|^*Rj_Sm z0u>xfBT@qwLBjebsdbt}{%D8M*9~EGe}OaQO>7bzLhMVZcKF74#53VIn2Mv zJwv|;(b5JBobp?n9xmDj3(q^!RpEpfD_e5etUOe=$e`;F29lvQ8;H@YEIgYjP~V^4 zfY)bn;*8OGB9W|J<@2n{V`8V*ny;L>QgCm379qQI=ByZ!?^roOkUB>Hcam_-EElz5mp)~b)X5d zxjp`z{cqXUhtgE*Vg}NsQ*GIh<}_s8?GvY@U_N2>+c*Oh&_rapeem(xx9O z9`muqi1U5aFCwREg{Tw=z{c(^FkEeb9tFmj`WUF4uMt|=TVqd%Bl$V8h25aKgv?BQ z!ia8kLB;+dHfy;8%)31cmst+--|jACgFkZ}XZLK<8m)?wTK0JAr6?%UEbQ{o=0{$> ziV|Mc7}`tOIW9eTW0M@1bV!jPb~DCrk$_Q$X2$oDJG7MTV)EW3z~xq3R!;vFR>n88 zM><+iQPH17pA)4ywNDW9PJr9!XVZb8H?Ts1!S$Jo*jqKqv{A4X-9)**Xh$6dkKAhUkD%?$nKRLogT_YB??+Rnnu`B#(sjYM^*Yyo~ ze}TF8FHfBGRgEzw z#oySgwli^jRS-m8u}7i6Xwp072zYUw_f5CX0jQ`;)FxC(a%WvgD_a{|GdbcmT@KiP%)o~aO z3HZV?!D(do{snB+vLv`zcN*A8Yi8A5|Lp~JIvNn-@)(5yqto| zH#gv6g>9^gTpPCBzk|}JC(>AMAhNBs99O0&L!pZZ>~0kN=+IhxRCF7uTYS zB|mW4`^iuoE=G>Tmcw(-+Y^@l7Ro%T_%WU9NQzDawzwa}SN+%Vtx-ISy_?9DdB>QZ zAJ(wiEry>_o{vWboY|d53P^tnkwB>oT-a?&`m|RPYVnahSN#Ns4og$9Z@>AEV(($p z+DT+GZ#SvTWAVydE@R(Uj0sM4O#g^GjtqsvwDo#y`2<1ga=8{(e2E16lo_NbsZEo_tyZA3kT|u#N@u-K2nDF?a?JPT9tMxc-IVTc)ui8XvLtqZ4cv`^Y*? z5F|pqVpMRB7DijHVHY{=XEID=+1<{yxc|m1_+u7>G9CZekgJnm<%t~B)L9L}uD|#O z6+gIK+a$cZBnNbH0n@wpEBh)d9alZgMb|OTmo~Q-cdnm~9zM2YGZV_Fzn(+mayC(u z+2XiAri$7H#Ng>Aq3Ge7$h@)N#uI#!$^JN1g?yWC)_EF_25$NQyH}s%i7a>y_rB{g z%SG3+Rl6@hnPw_Gp|%qOY-C}&_!|(m6Qjy)0`xd;<86jCwC+p>ok$g`F=Wjaw?&~i zJA!5*Ul}F2OV|@=N-uD`xwHDw=ok@*njZyV@(v5KavrcAw>9zeVt<$!dJT$RN)l$% zCMvSrl@v){VF$l_XUyJ8kPz(-=D&Y+_;^ApdA&;~q9PbH1gC);Uoa3b0{(1rr7PydF(=O(Ow+wMz zkk9N*6lWR*i`Xk$oUzm7F&GaeVb`Qj*q(8pC;cuPZYrzM+PR&W;MWcnAHRY@wiNA` zPQ>hwO{_`FEq1Yp3|hQPAd%*UjF!*{^Jb$Ywidhs>9#8%{!|j#2dhcAQ7L)5=Pvor z-<`hIjU#d|GRa%+EMPMKIaxFPD~dS<;)<9?YVdgi*?vL;xY$0^x8X4At4(Ar!#10W z{uzdazO}g6cNRDEGoka9q^SSZ2ol$-OebsIBz=aav{mg5yFT*_7{*oOmnj0o{PivB zJSz>hX*dxx!-MqV9SJ6v^up8b0XFwp9Yh3ktd?(FKQnV4U3OwM&AdDl_dSv$iC4BT zG-5B@az0is%=<(#|DL86(|XxkHrm8u`Zq?Sv>L1jJJ>sYg2daa2);*~(5_#Gxc>VZ z@~={w3ypF9SP5M+Nk1Poc|5l6>tnd)7>=*>xL!z81YCXk1Lw3Xh3i_O*zoosmE5|3 zwoISK?w@~{eDJQN?mLe1NbNZMd#6k~TRez%Mh0uvB}aRA_HzE5C~`D-fZ;9Wym9rZ zoQvxZK0K91uhVaAs_PpNe)TgS42+qo7yC3JGtZy(*+uVwE&Len1Ha2VqX&Aj}uYh3YYG zmYmGP9Sw_MQtWf+EHnncr+*PPEyV>@i%@K{BaxdnjV+B_O8TD+;nT%tG$ec@c|B9P zZr`cJ#DC;FR@sNrbI&Egd73XfSYuBTcJ2m4KVk0tr4I2Pp}@PON+$|uqoB=6Ci89_ zz5XYZs&ko2%}c4^BVP|A=UTD4i|hOsX|a9&HO%FP4UC$VA`NQwCmVK$;@n54;r4-D zpwuZ(#Z!EVUE*!D)K8*E=aduK{0(IIT?5u`*GCPnC3M*OIX;c#=HKCcT&C89zG?c$ z{L(xH1I`zq$v_Cp=T9ds`&aOscL~-%j4PuGeOd6!XEDXfldzOj(Y=1iXx&=D+g~=3 z%;k1C9Wmp0{uT@O^kU)B$UE5cWjj6Onon{BEOD3jdET1XXySXJ0?o!7&{qB)eby67 zJepq7Ng^J!(ta%!x9-D}HJ8BQj}WOmC`-rnONe~MQHDlyed0%wcwy9&3O{inXI=`L z1&vG5e9h?`JL3}jr(BQN8VXSBlLyG&pO)m-k|l&Wc%DkdzJ`5^R7g;mxEX7Mv}aig z>FeU$XS3y*FuRGQYPv2J@7>G1+w0E^bDvkvs2X)D*@1)IEs(qB9kb=5GRb|o1&mL5 z0ByI%_^MP8xK@f%4>o{?&MG36I|dg<7SJ8H-AJZ)J6_AV!JLXZgUVcf>5J1wUc{>k zTdmz zPFS0DnsqaNg~2zidbVrD|lrDnppavsWY%*6-M zL)bgm%)H3F4h`Z<;cLq|P%dg=8;?k!zxrG9D`+El($^6502<%fzw7lGbk#{#6JU=&)>{8JaZ@I z)4XT~kK@^JotpTxSwuH=0aSOdqAiQcu~SBwN&M9WU&lltP9=sf8vIpmZ|8>%X6k?bFj;1F4eefuWEQniKH&?8W9lIjY<1-^*xoy-&k zd3xY%I7!d0hr2WUXfVe3vGOGUusg_JeTNqL)fgOb zmnrMojz;U^N%i~@)-c7FHr7<5s?2GS4OT$i*lASb_hwupp-w-2pg4Ks9mpTu0PRyl z*;hW^pvLtSWrm}fg2qG4)EA2}=vom>QQFPeeUQgXRny__@i<0P{1i$nx5Hs;XPEM2 zFY9+$936j5f&Y4r!6nH~I50Mq+vkU|8m-(MX+=05H!NmN_LqR$g`2F#OGP?1It#zo zJZG9c^5M?T^GtZ!6-*Q1dfCF$+3%K)7_c#endX{}8v8zCad0g5wz$J{F3bGpiaDOR z6pHOaCG3g9S=2|HvW815pmq2+-pR~D%dt72k>kS67X;XZNpWOgkpQ%>k{})27r<(5 z0@Qjq!&HqI@Q-Z=-BbN=S0)&?ttmm#=n1G@qDtOH{6|mzK8qsms?g@5Kte0V@zm}l zoSc({w^qdB+KCD@-ipv!q6MVJ`6S$I_J_2P3e2y%0-d3bxaN#2PTV>PLz5Cv64hzZ zjfuSQ#yhO=s=4@~*$w`Dh=qH>{~-SB0&pIPBz-a)&}%LqJP+0|s=3cGPU8uCbcHaP z-1HT_-*$rG+{f_F#216RTAB5VZA|EmrvdytP(skE_u68&IBKD6V!}utC+H!=c44uh{J}lvF%^BhaIMu_k z<Cw^SuResQjvfGm8wC4uu*9LHp} zUTEi@gTn$vsPJ(G9V?TednTB`?ncwP-OWDyv^yrud#@;J{7Z~ZGI+&?91X|Dx@#Cw z+k;jYnt0k{$@pk26w^+Hq159b@*-*uQ7He#8lODCHUuZYdjktncEODPt(ZafWa&WG z%BxVI{0L6V%)+Jb%;@~VSfV@j4ZD`<(c`yVz%{7=)~PB{g&HxQf%!06rS5@`E=zFz zn^;)A?Hm-R?1C#bZ((PlJl6Bh;=6V(limIc@(us+oXZ0M*Qk>S5lK>W`Y>F3y_M}M z6QRrY8j+}L%Jlxm)oAQ$LDI|8;OSyY$i0NKWN~r~Zr46f-mJ?Z zPo(u|7}Yi#AG=Qr235Cu?{1Z^Qo;b2O%z}*;`i`}{ew=*g8XOY5h$qGyX`Zn%u|Y+maI*+) zCrIGs6<;CXt1Ycg3M9u~Rj`Q(@szG6XtL0go?9$UKgo`;OXP-GAIUPjHeqdjm((r7 zYjdDeGcTZp>twp<%Rihx=OlYJVKJfYx4}~HByRsMMH*TXAV+LI`R~IWm@;cJ2}!Ml zbv;hBJ^K_K=g6`vvs&SW+aptBV;!RVDFtmHlKhxG8%^8S(;A15RC^?bZA|4H3Fd{= zr~WhehZ*C%UrMm7`YmkvF^sRx(|C(aDY=r9O+L2I=b5<_GGY^kV2iaCn_~I~m*qFH zF{lP7!<}jGA17R2vDu{A(OKm+xVnZ1UEk+Z<<*_|RYC&1ANR6<--m+h&8tMHyo(o{!ey0gPLR~K0wij# z5$><@<~mc-B&gmOMx364*F7&{;N?PYOiCgtf8R2DKlSpTyyKp=kqKb(OpO0bMS%=H z&h?3MTT5>Dd>3^x;Si?%rw1|H^YA;d>03Wzj5IrG$1(d<+T8#L2f=3go@+G9vjfh5c0Rgdgw!#(KrgaNv6lyKa*M`zret+xohN z{ps6*#d7;Ow~i1=FF8;5$&FHlm77WYA1%^36vkTJDyO1OPtZOuii|Dek!`nh$?Z6< zr)(>V%S*1p&BH=OVkm(YDXk^3B7@KuSO~@&&J$ZtHTo>>6Fc($E}dVIKqOB-qBDN2 z1fyS}H0s4A{z+j0(jzp3^I9fT3Fogc`PO;HufYWW&??v!n8y0WUL^5Hf0CH3&OG^x zPH-juI%PG*NM(=>80RWL+tM7eCSwCRweC7PK9wXa$6-kB7BJg6dm}CE@gNn^+hN|+ zW;UsE1>}8j;4&d;7=HW>^sp=G62sq2iQ8AEFR&BMh26=hMk$0}Ji~r(G9{)vy3r-L z2^=}6X%o$aSK`M&{@+S0+sJuNUgR>4PmJl_oad~}h6Ki_WGmzkDUz4x?%?T`rbL%T0{H>QMj+UVjg{t)2jdy&V^-r14^YzHGSARij zNi?)|cC)<5_fS)4iJ3JoxU9@sd=SEids~f3$WB>mwO|Ha_HP{Y-1I3&1|(N!mz!f+vQThWhyWy)ZF)&}Bc+zWmCPV!0de;72R0=`whVJME! zt`vY4!;?(K>lV~6zl09)S9p881!2f^1(C?G#^?X`vf*JP;GL^Q1T!-AXlk-6fKxmr`-Wd~sM{}du{3T*ow#o@& zvLdn2{Q}z*eHK4|i)G_3&WA;x;$cdKI~lRIfm9K3>bRVT7gwe8WaEN~0hhTE374dk z&-n3<`Sh`lrh+8Gxe}j#tjC+9adRSt;^65bj934_xo>6J z2cSaZ?y7K|xt4y20$rTxxmpDVM#?3DZdJ)c?PP2CT4+@JRs&5pikXvU zlYe-iU@JY}?}$Uuju`hsop`>OLo7aCW|rIc^RoN5lKKBVW)~?rv8?->{4MnIT6~`yFA1$U!Vz9D*UolGs}HM9zyMjyaNXjP6$j-udoZd><|! zS2oWJEVxgYw=;8G?lTki#1YPm#1PT!Wb$C(3V54bgzFf|s>zGs zu`D%GtF@5K+PM?g1onX8l}E6nRf8^jZc5UJL+M&;6Wk?aK>C-tlY8=>sML50QjZOw zNplpi5jwOr;U&7J<`Gq?b8u*dFT8FRh4bgUnc??O@b7CkX3WzWz6(mymbue0FWZ5i zm-?2eTbAWghH%Uk{b_S%k@$OkWyEvd2nqRGj*^vGpp)l^R==y64Y9Al{`MB;(svg; z{^%iV5uFCU44)0lv>{Qs>ck^Z6}P4+AxiH_NmcB53KOv(I9YLC`_H@8?ngkI}HER zXXhW`?w=eNqj?8qw5u+{8JlCQ{aqiNF}jqtq^hFdzz#_GdzVrBl!vAI?-|^Lcrc9%)UkYuxYI(9xz--ToO5luA?g&ybH!ht#V+a6-GDKJx0r;BDm+C z99Z6(LT|0!#H#gOM(d0we%OQnT0cJ&?5b)_j!B$_CgTBc_+iDE1`87tE^Dcvng@TR z&%vl58lKrSnfez-4mHcwAPPNELWu&8jTiI6E8Lv?4Ly#T-8j>#{Ke z57`|Dn&EWDQ%+%=$By?epsv&Mm=y|K&U;BL%=F&|vj&%wv4kqzadjf9HY79VlPzdc z$3!BiZ%E&~H-z9oIbx?*49kLN)1Qi>^!=n#*fwwhHocfnFK$WW=}GaqCRQoqUVaq~ zC+;LaIDe+w%{tyn<3OI|SQ`YJD3Gfj>HIUL95-+4E>b?+N>2Zbr~l5hkqXlYa%@Ew zxW6tVoB@wEUKD~a*TSfIqZwK3#my-Dl*#K)Cs^&1A0Y!$N$!<5%;{T+B=?LtrQvm0 zyz~Nd@=iUuZy>>CD(wmW5@BO&d)aeWD%l#vb9Bv&+wkA3eCl*z7190R%DFNg@gDT@ zLGy_auaS349TLGnUeT5ul~od&rc65_(A> z3Zm8!yejEH$O{EBF=r3N4VKZFI$ZvL$sM9?_MKfeY)Ty`Eg@s|s#MK<4+Z6DqGcLR z1?FbcFqII->GeC1oDxa)#O!v zF1+4Tcl*{MI)7UjWALR5oZGlW?#pT9`1YeXt%4z*;oG5V+X&XT=JD@#jo^bvJgAY> zCjtJxWT?FmtnJk4$0dbK_SJ2eBzc%#;0r;hN*OX9E9kHOH~i*@2DEM6L~?VqmQ@Ko zNz;GE0hUrCA-{)-t+FHedw;Qtv;O1G!hB{~(+qm=Kq7{4XMv`B#~^x2DMoN$GQpnT zDA{Gk-;s5WrVUk7-THW9@@)tVwwdDu`CnA{b}$v~$%o1h8%gT)sYG(K3pDQh0u48$ z$oQ=N@VbWE6$RA5o`o4i*L4*3Hl9cEm*1eUWEI9vZKD#hJIU`hS6U!+31hToKB>85&$(Kx7kxY-wZh!}|+vz1`B`BD0M+z1H zWAAO{VPn)8D0pYbe2U_nod(;eS?dB~c<=x@ng4=GG&_z#8|q=YM<=VHpbTq_9BEvI zAU^svh2*~G7=QX4v#eku5w=vK{z^_f|Mkn5zL|Tmdo6c4MPM z1FYzCsQXsLJFTUUq94?8o1G!`W-g<}S4$e4p2LWD1w)d$9Oni41)j_XC|#~j@4dGm z12mLL@m&uM$)W6l@OU_QQ-Kjwdq&ch$;@BQNlA$yOC(6&Ox{l1Qd zBqX5}p`p_Js5CUmESoaQ3T0KIq1^B55Q-v_lu=2fG^nH$rSJRq`w#NyzR!KGbG=^A zXRR&w=Cnc+zYS}Uh7Hzq*WQVsuN?&XvZ}-=bSgd9{R`41o@2%LS}1#F%A9bGVrpGv zDmw0a(N32Md~wHpOu1GdWA$JMn`3p5EE*J|yQG>i^mptck zmnVhGMCqo*LHN0(0Q21o*#}!|c(b(Qcy9M*6Q3}79EvQ3M~kBIlF1gPvmZfH?FIAX zbRn-#CJroeDBBRx1wE$nbXKYuoa=tb7!F>AzvEX><3BB$@MAs%aH!+Tng5_lB?p{T z&cXA|CMa6$LB016u|toJQU~TGp6BK^DWkjSn$(Y$StINwAw`_;GMxlPoW;WKA;>Vk zkBPNEU}@t+SXPpSZ?s}@9+%%dB0hrh^MYV2mpQ1pR|pS%FJn_o1N^sODTXY62hVP0 zK>8M6yu5S_=cG&lSM>&VcThL@nTnxEN*1O+k0bW$Y#_l{6@zW2;KgsNaL=m+RKQl2 zp2&KJi=MAwMccTHxrPn$;v>XqD z#O+h`*$%**eu{^Zmm^Beq2tqZFxGGgZkiWk7OQ zc0o_oMs#1Y2)@04j%qC<82WrAiF;y+ULh|*^PU1cSUiNaRop(xt)IEGDuE7}Ov0<| z0$Q~HFj&dnWQVSqk%?mkV0~m6-Ol?BJzEWNYJCWiE+?e;T`GEPlctKi5SZhj2}%VW zjBC(EcBi8ZD&>yxKDK6)Q<78AJWz%9NH|fA6mg=HsY<_E`r>5W?PRm33JhMq13_1J zfcU0R{3jd&&5nWa-EAJndt@2SUao&OA%acm7`3YeE_@Q$Z`0xcMDnfDw5Fl>G@}S?QO3toldMxL6l zG5pxyh1VPIg1fZ@`agPU*}qR5T8&J|e-jrl+m#SLb?pF!Qw{ihkv_@v)xouUf*?^~ zJzU&kO5~E-na0bBjJ1Fl`?c^SouXv`om`&mOWYV9Q&%H(hW^aHrd=ees*({jnho9w zWxTMYXY66Y65a>Bzff{94azxoQK$YSlKa}4e9bq9^2&a6a|_3i$6647&Ic8AEOFr+ zS@3z$!zQ@DX8N|daM^B4SbF6qfBo$=NMA6CR=6eL&5#wK^4u8K=`DmC-lp(rs}9B- z+rk#b%p}pTrt|Cy#_{+3UU(zuhjm&6@W2{0oMVp3&vhVVK@_fnMy%_O~tzvMs2tBQ!hwQpn7&&BF?sv)!47_^Tzwuvq zfjgo>&r*VpC_M$~F|KzWH3x1eoW#r5M4;D2hq|4OgUil;m{kMZz2ZV49u}O#)XY3Z zE6HsPU2~NYb?9N^%Rs)Y%(9g9q!C1cnLnQygzNNjbc( zR-ev`R-=wnbD42|ApYBNn7OOQ`AIpJ(8AG+;4_k1o}bnNzb@MW$q|HB`WZh}ra+3Q zFu9OA3q*3ka&z}lY)xB6zp3^BhyjT|QM96)RM zNm>+>XtOWw^Z7PfpI9Tg zJFJJX10LLNPmUf_L-Dmrgn!)#{XSOVO8=+uwpWkIxe!LA7le_00dd6Y$_*+MI81J| zHIk-x@1TC0w$(hd zvSa`5sbLnzQT$_8Ny;QPQtR!VBk2br^u8-?J~FAICUFcL6i<+E zU*Eu+jp4k6HCLeSd=Y-z?nCT5=d$k;xV%GT4>np=VzqH5J5A>qvxXi-5nMyeuKH9I z?Wrf{mYv3#hZ9)SghTYN?nj*WYy$kg6-eeD`vb*X2hGHS^YdwIQg!}pQn~RM_+Hsd zKHho`_noG*ceWTqPJk70{$mK$w_|ZxdI5Y;oloztD+4ClyR^ILB?T>2i)dzgai{US!8T!WDw9%qWq-Y06kMI>nIO)P(ENKS$%Ev z%CHVJ2Yjh!3Cl~eO66U=U`887xxQcbLkP6~8$V9x^^lLhaYnu-%*4fv66i4&R>!&$C49VIJAH z_b~YMykZ7CSA&p>Hg23(NwcJ$V!mxNTeCO~{m`UC84wubMsKs)-D5Cq-1=}?*Gd+~DSJXFB{SOy7 zKe-UTWS3L)T+a@y5GDr;Z-K?6Sh81VCcgW)9@Q;Y(L|jeP&sD;J^t(_E9(&kN1o_F zo5XZ-X$26J+zUe2m8k5?acaz+Et2*wjZehzLl5n!vLN#d zcVdu`7ICp7*mbLv+<&})j&9jZnz-&o5c?nVWab9q)9{&{9McRggQH}-QUHxB%Z10I zE;K!lVQ=^(F`tk6;P^HrQXa~=j_Y2+ny`4* Rm$bUeh-^tOdHYbP%QKa<;1#rs% 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%0DXTYz|G70l4}1)29m@&k;7d*IW{ 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

;V*2B>FzlZ|V$z$q3Y%<~Zg zI&t%L5VQ&*&sMJIOZOA5GrfRgW;kH&fk2Xbrw(4pE0Ed7`-#Gx8ZzT;IPJQ!mn6@N zAVn&x$nd>b(%^I(%|(Q$dm-obU9JLWOB`u+Bd1fd21h==IP12VlMF4ecr^s!SHZymSKG%I$+Z&y?4$4x!=Y+H$@->yPn#RJ}_4ppYm&92dT zc?LfyeDe7d?UcZg1K=CQKe5 z>cSDuZ?N!q99cb6fXukDm9*WIptnZmk$1bdQ!S5BMtZUl`25%hI{mE_PO8$3_$tzD z{ed3mx?TMzZiBd(Gv{-jLS7nWp{Cn(E0>;THPe@n{RJLmi(mwe z*w&0=e?Bvjb#=7;?S9ILM)HZA02#VcPG8M_0X)+pD&~|<1v|HsZ>Or@(d|K6Q5{H{ zbjA5i%f#rl8bbG}2+_aW>X=Q1qNsFf3T?Seh_w&r7y8#o3=(p1`$88+18$uWMf|>06G>AkSlU}iN+oB|?8^Rf2-2VjJd^duNM*?ua?nJh=umJuV3(^=n zXKH#Yl8S3Zk8((+fy+HrBrr=1d(cQqf`%NrjHft8 zLtw*oIK9OPsyrq&iry@u)AT-pz2qV?KR=otdDF*k<1M1W))VZdTNaS}9AlHdoKC*9 z$3O^w1(A^b1pd~K@knwsxi6(fM8!l{82!yNrxTiE^+=e*NukS5#y z*i*%;B2@3F6rH+hCHxvZO{m#o@;m)9M(7?Q53?*OXXj*p%&DjIo;eYxFGcvy^&V`J zI*n77Nn%&{9BN_kj}hYjKBtjNI=!NTq$y`Gx+n9%;-Ncx`dT=(d=rTptL|ZnS|hxy zIf@IvJO~Ka$Cy38VOM?(E{T4GA2c!;!M&ZlYhR;Cf_ol39d#z6ul_Jq z6}6zM{sYcc)bSRNrom4$9UAyilbpCv%OvT_(*%94;~#N|%DH<%x8MVgHzR~0L6gY2 zfQxp+;j9^lo;?ZK?H>mSpOwyO8@f7)&Fhe~a^j>rR1H(Xw;1~kRyVU5U zo4qL0UJvz}cNx>P0_LFkZfK6Wh)=V}p<~F6z2Vsh=hNTPes&&xq@qSPGcw4x@j;7= z=_uCEdChqRxayu5)$DhG_mRsW$j6c7L{~t5q9pCoS_cPzOk=7~xZ|2FPZ+~hCN`Tg zfAYx=0rIkZKH2NI9b8WK;~_m&*gd!c*SMvTY|ejEc~1f=RXymR5G`1|Rv%m|Gw4Y! zXY}HbH(g%khx_flnSgc{p9Gk3Jf15&ok9g@@yl=6kR(r#JH;V}^Hl)@^8sMJrF_fQPgXhy`^Q8@*v-@*( z$^Go<)JRN?qIfnutVm@Kv>%6_(SsoU;W6|Di{bH!-`R(zcI;2;M>emJr%JVP*zZ>W zTIB+m`2QI_IfY99T?QL!#OZqPP(G@}GCr5oF?U5RTpBLN2CWKod*qJwTLf@=s}}t+ zy8~61dou%HW0~%GE^M$|2e{nY48J`4@MEMn<~}!KT)K*Jw2@;#9gYIkk5$~A)D%6V z;>aeyaa3_HhjyF$P&Ri16|2@Gbv|B{W0lY{qj1Lj(imI1shdrhdm1w;xOnQ`HROZf zRJ;0sSL~0*B?NAS`TZ)3xMk71K^0xxjU6;`;d5)z0c*}N#4+41!- zJ5^*Mvv}u1qNm6CGo&rxW!_5Il9>r_?y3;&cVp~IT`OkxhAH$h$4f3K2?e7!G6ZJy z!qKxM{Cg&Gp7OBp>sawdK^XC+N*q}&TXZgV=y{*8+E@xroVt8}?Ha;K8#GcQa zp}z7xfA6tLOr}d7L3Mpx))WRYB3eY^-2kL&S#v&iL3(zs8Fe%c=2*WWAZ}a3*6cY- zwr|PeSFZeqKOlzm?7fT^jzo}a9P8}Of@L_$@y@@_&x9X;D)9*Sz4BD%ctr7knOoU) zOvU>H;Pt(aUA^@X^Uz%nvg`f$*3}kdAnYJ^7I!nE9Ty?zWiSMXynwqWs$t#QTpZm| z4!wz`r2Ec#I|a{kWO~Vc5HiWZG5fvrPl+Grmrf#+4))^>5m5r_$KkZ`Sw`FUAsGIA z&mIvTVwC?Hz$}pfvT0Z!TY4XXmW(o8|GExjwj@EkSJHl0aVM9CM(|k z#Z`;`V7<*-rsm>IJo$VTXgIyY^KDrGU6Jrzc@DYba0j-xnUJ<)9REN39@F_{2EDga z73MDBvSZ4D=m^fl%xV}@8zPZOv4$IBQS687bx8QhjJTr%Ol{gvp3OK1RcU!(^=~2( z6!V7sML#iWi$5b8(#`DREkXU6%HXi=1t{fcQt@4}c=^~Jh_MKyvkDFAbg6l`be=23 zEly;T&Y#0)YMkcByi^Lq(dgd*5^M%>4 z@ANq8ZE0aO&fdKo6x9j^>t`c*HOLCFADAbD^4Rp>6r5q-j*TzhLi@3&7}Xa?o3dt- zxyt!;r^$C{0;G;pj~FmoGx91>q-piD4&~~jRfhc zMY|ZYYaB~RP7>22)X2|RJ}Tlv{C>9zO0|kGWv2rzY79jGI4q;HYi_+A-P8#p)eY1?ORH#u55>hZ=o-E0U-w`s2REo^*<5GQ>EG zL5Ib0()P3jj^4gUU3|TWNlPuY$-fF(K6Xr)Xehn6<_R{sdp9P_DUlXKBf2I+m@>~& zY3vDE3|_bsycaGdhm?&;QJyC4lC45P=mU0UD5+n)i&l+Yhk^V4bWUajUNBN8xl3cn zfY&r|;X0aa2A9YLTO<1W-BrLhfqYAly&?7XObe`&^k=%Q4nM)t+JuQKg zwe^Yo_&e6l;34f3uO@zj%J!?a?SMV+1V~2W77|sz9kVx|pd`!&rf07vFT}+fPnPT8 zbG0U@-Id#*A-|Vu8Q+05lPYPwkvGk3-AO9@rbF+IM7qp(D>=Oes2Ing?!BT!?WfOR zb`~yYCybIdQle&7tN)fx8@QZj9_!+USn2!JmH0$Ar4zcu^Fy zYVr!4vAY%G=j~(me|^OGueJd4G@X0vpFsbt(Ikhx8^Oic6@}vVvMX&esl>v?#Qtd_ z`7kho`)YV>8u1{SXQlC5l_t?%D}f#lde||A24H*7v3pd0Fc!MDv}3XWIsUW*N}F#} zb+^?tH^+b6vX0p7iRJ~5ClRM9luVS#C&k~3*nr#I(wb)s>-P(Rizc_b z*Bkc#$wkb~fv;pDoMEM1wk8m5s^Ajo19#Oj8_R!Ow63I`3`-CYZDX>uN@`_CLo3`b~V*d153lR|(Ia zm4Y{~J!trE1&Fxp$PUjAU`2cd8h4tg&~ql{z!tP?YPXZ4IGZztx6JHeC-j z)0C+}^fJ!v<%9jWjr`fGMx+=s=-BWScl~$DE+^5L*u)FbGLuzo_P#~z%cV0o?&MSE zl({P_uwI7Kwdh_fcn&Zi+*Mvhv~n?ehY*}+xE1MGtXH<%^Ee{F5g{bokC z$&vf1$Ju9MD$LC7l^DCNg{O4nAl3U7!sH&3gq^%RcF*=nSh!sh-lt}gX7zB^YmyyJ zD?EmWADw|K^Sm+b%s05AHJRUOXh*L_PDQ;GA$t9~3z4=?#)0Q{oHO$#Boqr0$1A4f za>8M%ARdJ?j&bh>Udwpl8}b@v92Po#PA}f?u(!rrPY51-&ps=?>OJt3%*aZ;l@?3+tAz!stj};;O5| zT(#E5|Msbqa{a3q*0u}8Z%=@bLm_lsRSs*W=ZLfJBmONq4rzAU%m;5S3#68g=?9eX z?K}~fZoH2;p7kL0!Y^3M4k_vwVh^(){b1!9PP3*skuDd%iCpNE?($9|vai3gUUiSz z1OJ)Rk;^NHs6YkV8Ml-k%qzrW3S5_UvIN@5odsQwB1Y=|GuFvZ3mz&Lvug6YA#%9@ zJypB_;fE>NY3~Y>!ju(Xvkfnb6~LQVLC|)7h+3y286U?FU|B!H&E7K@?>%i$?w!tY znWadpL^V`-0}OAKz{L)+@bHgMLvCCfw(jwuYInGf?2rcdY4t$us0O&3{>G5QUbr>C zjP-L}fRpYiko~&JxT^CA-q$vyizLrsds79Q_DdMI9KOPv)Dz8incPCfUp<%>-o#uR z7(lheb1;%{h3gGJhlDHhsZuK;{1j`lrj*NtcnabjNdZ#aVZc|je+oIt&9KDn3bU^A z93(E{93vr-FZ-ckW2s}}>pkEID1>df_j9XJBZ>ps^2s{3QxJMjEfaB6z&F+QQj0BZC zC_vs!oJ1EqxxoCHCPUPdKl6uv$wEf05Ruk+2LHeg{CbozZrOFb=C~2B^d*x}y_L*5 zn_6P~oXg~VP^Of>nTl@BWH%&LfWoEASW{)sk(N)xBlS~Qx3>u_Js+XehkKy<`!Fu# z-XrhKorOMe`Rop#ov^m4fOAJ&g3Bde*$I!X;3}Ub^y{_5pyfBt-W8C=4db>D$d2LX z;C@)DSciFQuQ72VrLg723Xa<6e;Roox zVFJ7r-GHxj1>vKV0yF)zAlwOMv1F|%sbeSNBM(*jMBbEEY<kL5~~*MnwzZ!}}lLH?xIFY#jiH)Mz|7E{zuy zZsETtwp{*KleHGyfIowpQMSDld6^7eojR39UK+zU=36oQS}BcNJb}#qZCKiLg~eh;z7 zz=^yYUPSi?4P&@xBG<17CBGH#;-YyKxN2}Qo|HVyUYv`ti=Jjm(D%WJI4kliH8<;F79BPRejP63ZH%dg&~boj3_*jQqvSijQd9a)&)A ze+*xCpJqZY7vcfiQOwjXfu{Tf-ptD~G~2@ig`Q3(H|n1;j{Tmb%uJfpS+xRU5lD}R z+H@?n#{my7jzf5x;s5#v^XE?`e&JnYyd@Q@AN?er=NS^Gd5FzAA!IL|7f!eT*+Hdz zv#I978D!|a9bWS5#bxdJpr7&;*0sNd{QWJQk82L=nInuR{WR%3<|f;#Gnt!{PBDt> zB;ZIw665WpgkOfWsNu34dZS5+y*@vcy7Yf$@7Y+99McAD3!6eVmf29<^jxf}x=n;- zrqZF>bn5?`hhMgpQ4%m8qiXmN{%{Gkl!ySc%Ds)vNzvrJ&P@FC+8niAQ|Tw;9}p<_ z0{(sGc3PVqNuOji|K%?)n9mERr=o?3@-uJDnILViQ8L5;DmwAyuBUe1{ zycuREjN;}g`823k5-0RmBNL^K&A}USw{`_dElgz(zSCt7U#erzADuye&`D&M zk_diWyMw&Xu1Cv3JA80SlsMeH54`g}bQ(X0@ZTGgkQsX9*QJlBSFFd}kn4g+Upa5{ zgFJFI$%jnpeodrLX5$?_S;&@kg_SEW(uJudbmM_DWYg?v99zqlXquXl&sD;d=;zbC z<09l;<7}|>z6KS$+F^3=N<1`YK8PAl#H-uAh|~`+n3(BFmk!UQDHm*r+`4u2t;ru) zwRt*ge4~YNS{}(R7rR3ZpWT5aMiz`^Og+2~=wz2K9>hd-j_Z6Mn|O=!3^oTv3FNUw>oT>(4XELGRGbr5g^nzd$W5Y0MZeg5%E~(Oq2< zjW?zINPV&vJaW~6H6bM?x|RGtiq6BW#`llo?KEf;p-Dre&^XWME{Y^cMN*W6j7mi$iPDrr zgGyQ&loW+@p3fbU_*N>jtVl?jRLcH6zdxYsT-Q0L=iK*uyxwRsIh?q>51=Qj44`Pb zEc{9_gskHaAg3(?8cLtyb2&rOJ&=Q=@^=~2qZ+tuv=Bw-h_H70i^=0VAPFM{4=vIN<|D+xXd=hlxSbHbZd+^~mnwM>Rh8WYLAJ$JCx zt`(B}w0X)6QZ)C;Nyc>IRNU$j&bG;TFwTl^;K3?cvhq?EyY)23E}XdpH_nux;rpbC z+*1WmxF$vnjFR!%EDQMZx*OFwW~}S3gY34qI&icipE-1U9bG*5j167=jIoQ9rA^Zg zL9wY0Y4Wq7$FBF{R|z#3yHf?$SC6uatui3#KZXk~JONFYZ|qb5Xn1vEa?QLM>6oRF z4Ufua6NS))_>|k+(k&7q)yGOuaYZiQTeO=U*yD?07{jCncfp~?{qXCIBkNhGOvHul zS>Z(s!9ZmtZYbq;$Q;)({<_{oO*9QJT~0?2cR6xBeit0&b{a~J!$DAUB5Xf(3cNMb z*t2f(r2dI1jq`a5gUh>Fcb8+}|1%hveo?&YKOK^s3t;XJu8*^PF-T;@!_2qN@JdRS z_O1_RA0?^M^XK(3b=!036aIoCPDV6-dXSlAaw4;u}U+~`76+zXVXi{lvi+|@q z=Hu%n@X%ET4_c`cpNXxwHTpbTT6CPe`t%JhIh}@(#s#Qf#`TTL>d|uY9BMb;nC30e zVA!qpuwr}|YJQv`>0@i~y^aihxP@cfXU=5at!H6srx!V)R0P&ngsJnBPP65G4fwO} z3y_34%rl-iJv1N`PFtGC zXHS25&z?MR0}Vb((#r1HwCl%8p8kXf7*?DCC(jFU=Q>d;%jXzK=?%;rRSi-z?HV2} zl7g_g?ace&rMSl-9D{9Ul7tfi@Z^jxd9M?O`BB<<#p@*`Kk4A#u*{>94PQ)KrZJ42 z%6;$`JIgkzuOzdiDsi6OQFP4JhYoH}zss<1IOWx z!yUNix)aMDg))m?l;dcXImwx}9%QHVFoK@bNdDb((6_t*Z2r82za^2}M*CoOOXn9j zqjwO6?-jwNbPwq8I#5p<+`ADi16miY9f{y$dVZWqY!j zcT=Zv`>aZ=LEaun7L+2VKHr7yAL7tuaUho40&R-1~E6v9`NqE=#wAy*FfyO9!WM+Aup}= z!Q`Z$5K22B>!v1O`_MDE_(6iq)0#q}Pv?TW-zv1Q{sB&>{=x5}S=4py7T6g3fjb*r zhs%>RsY(BAC`hhimI@isOLKmpOP3{cbDAl!jd;R7f94Kn4Y{7ZL@Kn*dWoN3snVg% ziA)oh-Pr8d%U<1T3n6ibpm9_gA6!(X3yiM9PR9(kfH}@no-mo9=XZ20Y=RwUrP->| zS3l&wkgVk$5FWD2vWXmQ3FMn~s>ru-?)%Mk{_ZY@^OWf7j*HjieRjxzlUS-hOpf?!g8 zk@=yfLv2^)k~w&VWv_gO4V{M}yU>qh2_&+syp2%O$rj!g7xIhVJAia_Et4lSfVC>g zm=w2!*5{qYHz)MzuT?zyduBB&9lRb&`{Q8ptpjlS=M`Q&Z;*XPBN$iDLb!HP1dZ0u zBdylv_{dEbc29C=|3=gz4o!X4Y5(yR37QkFl2{I;H3Ip4P z@!RHcC_AqVcaM)V$E(|+x#2X_Jz0mUN0#%Mu=RNJg9|kaZNlph>zMmamq2s71X(6# zK`Jgx#cs-VPGW|+KK>fC&^Lg}0#Q0}Pof$tf?#6*Q@-aDj!DU74gY97W^Am=*zJze z^n}4rbl$ogJSBF4O$N6y0^D9Z=P_1ax(o9*7(<@g2hh0t2KJxd&bnRjB=l1Z`I+{e zsE(J=P;o_bJ&z0`q;(u8cBYa@%j-Cp(u~s1Yw2UglH55PL$~~0Pp@Qbr8&mY@Vrx* zEWDvb+U$2j)EO7rs2EOwapjoj}XC9LB5Em3j$Hpi?hAU@GM} z9rKU_xi)&VCLmLpd>NWRyU&C%h8*X=GD(D}Ca0j%&@wV&SqpCD3)8%p!#QmVqcv$e z2;G}Pn~WcjfSKx8B<;_{InHPF%-=yumlkf?rAnU2%TeWw&$K|*1%yvc2L8g=c&<^C zMvdn(b5|ronM*TWlXMTo*@YYjY!I$}X(Ca(1yPvW1yT53Kt^XBAo%bjyj~X#ZRUiy zzI+cWm0N*5Fb}^>4IwYK22k~{^_cPK6Pvs9BXi@TAl;gG4s`Bspfj`oVCrBL5jwb? z_m<1w4h9DkN4p0Y*_=+tn&k16K^jVU9>uL86X`kId2qEP2p0U%ph>pzW@KFbx zvMYszjeQ1l`8sMB5=yg;Cy|9u*HGQ3W_WDA6W4(lVPHYOpSD^V3$4UDzpPhF?gPd-U1m$8|a?bl4x#wv_dw%So zsdkHM>YHLAiDNI{dwYsH?}#Bb(urhQ+ErL=^Ov1I!3$*c2%cP=iw{f-AbS0BT>kV2 zgqd{Vn*2>D-)^~5r0aa8Ze8THZv=PId-4P6_mFFVi>!Tc9eKgv02Z^gCjGj_p3cb_{bfi zbWD`&)A|9;4vADb%#1qTdd3Jsm-o zo|{IC3U4H z#EtVkP2Wu+wo&(c0hlo#@DRsL52MeY>w$}_SzXeD1XB7wX4O+i{CLgsC|W3N zve|x`)O(r-_dZKg?Q4tpmIW^$=EN^{gmTP1vDvI?)J?3O)DO;CQ&2IYmfHf|%L{JZ z%#7ZzfR&NUx!$!mlb1Og#O9RY>fi5C#`Gdh)u{#5vJb2;^AY3}OF(e3F8Og-kncU^ zF6$AS0@q(8L;b}OX0?ndDf{AyV-|+YVbgfheBd?2-|Jv6Z>(g!kI%qyNeOyoYBE~! z63~s?3|;WS8mgXWz=BX)5>l}bQmrY5rEGzC;Ru+-7babz{=`FZF}(T6^%@$5Fz@10 z)cUALF35`T1db`vVn51U59)&b|8k+n=Oq0V(1*xS$EZq*<$&dZ_L=scB3p9@`~+$b{!a_ojqx zJpYRw{I3^xO-;fJ>RxEBGKF+&6@amJFn8`ps9Y9S5SO>B7qXXouP$OKNUVj) zB~ptPVPW-ri08Auu3kTI@+uO$CTJ zR4@=23K#6ZGv)WODN)O^|E&D<7KDz_2oeH@=>*-|%C1#F17 zNA+w8m~~$k+d_AOcDN|JNqRC3jXuRD=a=H`E=64M;2Tf1=o!-{nGecF=8XH9>DW6Z z7T!%M)8jgNCum*dM50yq zn`b@j&pMk55$nWKG?U~so$JQT`<#nxpU!1WP7sFErz@GS$rYd?pA1!1*KkwJCA@X~ zA5K@9MNV@V=7v>Um|3CX#6fwd))bV#WlB&1Hkvy%hZsHg?j_9E0pL&_|Z%O4j`k}%0_ z>cyF5!%R^;VvO4W>~lYbf_G%_^M8wBt9AqkIcj0%pds~3|Ad0z3_{U_^rKd$I;xT@=mi2e^E%S|SV` zmY{mGGH}~NPuN{u0dE>}v2*ejATdVZ?7k82s86RhA|3E_oil!wNoKW`#lh@Z9~LKh zaQ)GZXxq0DmgSy-bt1;3*-MXR9ucDQ0m;njFJqXtUm9OE{$*`cxGsUE5T#D-s2@oA z=57&udnpBa>6R(v)%t=`cr&ivu>#dT4#Car864knD^46YBlb7$<8Yi6x&O`@b5|vx z`?lL?@F^8eJ`iU183(cj_6)5zI7BF?#Z`&P(`_HeP|d3W#$P$$j_xuvuutZ?XG6@E zlo&Q@Se~>r8}mPZh-5SMGw@+&KL6RuLpUKglNb0k5mrvR0i7ERNN`yLJhn+QV@?a> zkLk&1bF2mQR}rSScnM#z89bkhsk3-`XV|w}9GhA(X0p2doXYO#F7%LerJM67N z=K95f6}LUp>8c9OD@`$i7Z2{ij<8#0FY5TWK%;dNt9%N`Ui;5bB%)|OYG6Sh+PmV0a8Srhh}Th4*l1x*id#|A;{zakP@VZkqZ=(xV;jjLp_QNIGRk-_F{Af&aGD ztj_f%J>BK3c!o57SG1zpar&?&T$~6TJP%Jd*EMW z*3mGxesJ~IC0^ol;T$s{A(vl6-^*{AEU|Xf3rx{ z!8nNYTS-G*XOr|J9G68iiY)a#NaP*Pfyh`rdF+3Q@oG~iLyqSl_S_7-{xgo+f4>P0 z$Hzc7HUP3$tc1LeKiE!4d>~kGy8@bQ7B%K1`1}QY)*3ZktLt_yjo?HX;{g! z+ZTas`VZju80a*!xE3_JUavSuKV7iL@%O^C_ICgg zq358`QaU?UKPT~9= z{Nfsdi_{~?%>{9Enr1T%iz_ETUe4#c0q0RVzomEXInr6)+ey~T5YiSGOm3ZTWv&$Jg&{1$U2{T+@cr9>0b)Qg`Ty=ma9HlSF48QUsqH zx42BKKJ06n3+vyxv1!NR=~%QE2^USKwskVJ`tuBuPGV{I`gjs_@DOR2%knRp25N`>DDQkM*p7T34uR@A!{1#1(4LwP9#68yEJdO2o zH6_b`o`h3QhiS_bEtqr3f|eiONS|(NgX?Zi^laQ6cJB-?7#QD3Wt^+Xq$|mIsIeLX zlv3Hn?gPB{8EK#^au{;YoWQ?p?!od2i)rq54H{lH6W8bkvVA_Ca8^49ZPRne{;hJn z-L=Tv=brU*2%k~SKMu?J34DL98#>HOL__JX)wi&(@t+x!d~4TqR?+~_lfxH_)E@bSN_-TDHk4eUk9KjExssS)Hf3Q+cx zC|#>E10p2TKsKlef4vuhTY}1T?t6V`Qd1jo~)9=xy_#3P{_7WSk z4Dso$F*Z@bk{soD0unFoT#_xxjmSIj)a>~HyYdli)YcqU)Fpd*#jlp?ADWjn4OvG6)T(S2Iz7OzY zQ@a%5rTtsjXa-c}(J*eBK8+?lQY0gK9*i<4pj-T@g1!i4S|i|%!}*QazM5kzkDJrn zJT0oLxRsmW`45*lxxjlBDdOtUj{Z49*sfcHrwuw7T}BA|=6qw?&#JPcMKh`X195Dw z)FT_de*(#N2e7(k2)nCh<4p@5Ir2Ucmg|?&_|M@`nV7*un_qBpV4-0GOqB`Ablnds9@TJD0hR2+%8K!&VPY{o^zPjF@Zi(nuq24Z$W}g9U64{ zgU-a?%-9zT?7#XMZa&Tjjef41bmHkvkL=^H!sRvW+#LreMMPl2lYBUTl!ZfG7a8Y3 zX~s{-m>6h@5&23FPS<{{B%D_>aAi-Z>#v@Z_8Fx_mJV9t;)2~b|<_4 zloXBlu7kzHFPO1dF9=VVOfFn|40%&yP_NvHJb3Z}3>!<#9)IfL&v%s}FQeY`gAXqw zr_Py^B++ZochL}6i`)SPn-h@ZJqd;16?ZtQ!kwIu)pnhA-G`o=BG3ajfP!9wedl1shwc!1%2wh5gsJk&nW1`0;Bh z{6lxLeEdD82wsHIJ`1x?c~|)pdR7vzn-f8S>)}tm69o}3_LDsWV&w75`>aRJ8N4em zM82k-CPzksn4gLo1Uzkt>PQEFA;qc$J;?H+me8lHo46Iw=FfIrc;YklgP~- z$)IbT3Z^Sc@V1pV9&~ueY>HFCEf@_6qPEmXs~tA9?SZg(Q4-lKPYph)|v*Ek7um2-@xgvHM}}8 zZqMqBI~d7T@9^3ns9BI|TQwr}3@oFz_q@cT~8cyMH^x6su549UZdAD`PfRP_nY}?*Z-1M&+9KwGxe}j8qMnwuP+;5MUmuPc&wqtb7(kk{|t^*C8qC!P2 zuQ1ICx8W^qVoj!0AkXI?gcav9`xmQV>(CQO96rxiJ2VVoX;o;}{vYV}t%hZ8e_)f^ z7~?do3NkHHw0zTSB4Dpca})=$=2ky$9$rF@ZP||l*)PyrXB9i;)K_NAL=l*mRgfBc z8MwYA-KuPX;&JzxwE?O$=cXI%h&;h~En{HM=XTgJ`V#t+S=`uOz|+ywrw$5MV9MR6 zhpvXO)93$Y>J|(!i@g^xNB3}CG)thtFTcV3ipNlPK!eUNPs1hZe5v=35<+qKei=Y~|q@Jg0;^_$gp3Ga>#leH7J+z1bJdRt;D}>ylL< zwKf9ZmE>TL*=(YINsEeEWz&V9dGvr_Kd!xNOsDS(VhbJLu|eY=++NH6ns4U+5jby6 zCmXDRw|<<5@+5&AS z)uHRDHqCx&M=pBaH4}@EBozsJ>GbG_#N6l+d6^pkdwGXhuX(-9QGH3eEV_nuxA+Dz z{8HHL@r0%s&ctz>Lr~=t$<8!*NMmnZVjRl{amg1Ga+|RyZ26BV^cdVmoaKWTx)tXuTBLmC!qeqzM+ZRl29 z%$ClSA?4iJs9WPPt@*3O(S(mtz0NAIyk3UGTHj!C-Vj_iOyY;^%p#$lvSj$n3fg{M ziDp!+Ar<+N?4ngs%-2HhIy~_bT(Fx&zI^bfqiNnWa%(;xD&kOS{|0o}Y7LW^wX|r` zR1(Yiia{?TaHFRhnWeOXn2Gt|;w3xrNf%{Zjr(C=+Zg@YQ-IGZE>b@oMWU-d%uXyG zp?~K#kRZ8aGXBJxe4BC>=S@99?8ld5-Hop}V}T>gGbur-Ige3(+cz9uzMXvDw~)k! zI5NiuGkC8;IG?$tm0q;3fn6f&sFbua=@Dgah6+P~=2 zdM$?bj%iXhL>1oiquB%Lh2+ugxp=fD72{XRlduC8lo^R9l^?pva|nRiinT=R(Fm33 zx1s|j-_2n8VRV|boG)rmVMmJsnKUPfSoavRr|&e8`%0Io?(zt>b~qWg>2sYbhXJ@J zsEA#vW|R#&Ln@^*@!t$7`t-<8c1V69tN1t?)h9K=zYz)4UEfOP$A+V(fgL$MD&vM$AxHcWEKY?YR6Y;g17(6lwsU8}##x2A0HSR=(jx13mTbm?^y-EVUwn(SX zmRQ2|8d>(kuM}LMCP21rQJ|Ss>(IH+5|%FF)ZKI!+>xKhw(8BJxkqOZNuDF{Qx1a8 z{_hwb$ejtkNuWYq7T5-Tz;$NRV0!UxlGSa*cfVN66y3VToS!0vx)IIryy-W7$*lov z$AheyMIR%zS{}ZKn?kVc81r-XZ}!g4%;~Xdna$H$; z&KHY@0`2>_W6orvmidaY=t|>|iGT2L)+#*JJy>1v;3H$KtV}hc&w_$5*X`_ki0N-b z$T?Y8u-?sa@AY?Zy}zSie<+4^lBs}pyHa{i=_kKEUJ&w955lugbI5~h_SJNcEw28z zftDnw!m6lu%*12wA;<9%llGtsAGG+=*_GG8=FTBV(6vOjxv7}DFOk3F!)6>VEhb3@ z0>t{NI}=_xgiSW8M0m<58!SAV*Ux48?U#L) zv==r?{UWr!VJJ}Rmyzn~nl9gc0XK68K^@s64aYXO1ejLpl zN6FU;%#?q#xa@r%o9s};Y}Vfd$_;Wn)jLXrS07F!o*+2&n!)FzTy`=v4^87eiQ=6h zGlBhKOmY7UX4j_*rqk*^g666@Z}Gi4?Wxi~hJUTS5*Xq5lxHSuBRmd!NzK zSB}Kp%EYF@RWR5gLH+YMrpm|~ymQo@U#sbgsvl}$j2>YM<1Hb`K9YPt+|T|Fj%8;5 zYk^;i)7hO$rX)qbwOUMFgm&*ALFIk&WWw5&RM*KD6EoEj9E))1pAvnWI)&Wwo<}@i zn8SVBKRBn`2EKZIgqg)HnEjON>TVICvO9;N`KvCo!DR>Bv2MnU>NXr!_QI+tE=S+p z2w5%05INKgc7^qfe`OqRe4aT9-VDbtwXwKrZOzTeMin>JV(M9st5SPh%%od%sU z?O3Sth}q5c8cMHyKmjICz= zEGxlxo)^Ke=n*^>vPb!yFS+kDg~N{@L(l6+@H6Zx6OtK){Hyw8^KC(T-**_UGO1M{ zjc~1II)416hZi5GK+t#$m~_SR>K@O<6Yt()tux1f&=aQ-<&C)6Qk7OJ_|o8y!faH) zYDP%vA@fIa0Ed<~Lf_<7@KyL2t5NPnRG*(`6K02z#Ef@rvXCTJs&YHC=5lZ)w$W@+ zS`rLKc+l8UW3qqa1N_yYOV4&xvU68*XSq&2YW3F(uZjM_xUwy%=GP04-M9_4E*A_- zm!wK&D){>LTK?G2D=3=wlTqh9V|%$cNXVSS@*5|UKZ_zcEW&+EwVr`*1Kk+S(Fu5? zYCR1PD1-C4|1plChU|11H(b;xM292u7{Rs$FdV2uE#4W@f0^O%V!bbDIlDmZn`2Bh zcgG-)hvCf{Q3#N*2Sb}9kdYCHd$>)9yM8G|`tfhlbyFVgj%k|z()A-V@@>fBRmo)a zd@p)QGnp<1El?jUQT>}yWd-w9C% z?O3Xv?2bp)hC_FV4goOs3d1rbC@ zGJ{;Ya34bag{qDIj6mSSP&(hb65=|YNb9<@_~?uVRk_eg^EG;zUdb^^B1a*tZzDO- zB2QvAWs~b+Q(+yKnOnLmoqWs4BaBD{OgJ=yQrAV0?3G0q{QZgUYa1cPC6m#Z%F>Qi z_3YN$;^=-{tU9EkiOMEZ&ZB?Aeq22f4TmGh<_|nd?|0&j^ReXSl?W6K&7y6WU$CEN z>d@f2Tt?-l9n$kXu;82t{!KT>Nslg(?;j25Do;_ew(A6O;y_#G?h|l+GQysRN6Gqw zqj-J&U$A@o10KHEMh?uqM^^30guI}`Q2)}KC$mNi-wo!|Kl?0k3-=p$P|=Zm`|lG7 zq?ypXz>VDIk_~8Y%Hz%jQQ$Oc3sKqKU{EIk6Q4M-SAr%HzrU$?y+?%3nQlqR{hRPx z&j)q5-H-VOIYjTLB<3b7(JvNCR6|FUv`g~ARnQ!+Jt$$uP9CAtIXyf{YabCa%jU&B z5TF~B^5KWq4DxGbEJg*-B(6*PK~LcuNX>e~XuJk`>2VIu3EE3W))?SP>GSlOnJLM6 zcML4t50k{9d?KMC%~vqG4=bee@q>0bMx0zj915e@$7*U=bZr`YXSOaKZj^?BZ;h}i z;VZ|JKR~6Io+he&JHgJ@i0BIaN6SB+qsc)$68UZ_k*(TECcga!jRiqar(#J)HVamh zN?mFZnnq3?k|ofz7$o<}5XsDKj7g9sOn!Ntp1&qe%ru|VzLY+g(jbLb4CiCmf*p+b zmfhsQa#QNs`<`TMoJVKBO{7I$rR472Q`8i5Nc*#NlG7(h%sNZh^rd^L@7@deeWft{ zGpQ2)TNFqhJ17xV?HlYh5dz+`BB7e&iAqGCrdJc?;iP^93M{gNYgTvQoKGzC%!uQi zB+e(_uNE=B(s9@{u1co85TPr1e?Ztn2M$;sqqsej+)|iIWklr(eQ*|+#m3`+Zvive zcs^=1)MCVjqr6|;;?&phFDs+^l#Ml52Bs;x_!S&npJYTT^xJc z&jag9z0mVP4_w+;#&&0l!EY<6tfW%g|GI4t;upuM929rsou?^q~0%NmlLpN>>OBNv#FskqkfB-#~* z!HUvs_+q#K{#6;n?khiG5}6Hc8Cl@f^Z++()ui(}ZsV9=EPhB4WJ6zS!-Y-KG$}!h z?pk<<5wB3gCk4u6QK1ObK3k9Si<4QGk-Lm}Qv^5~G+>mLC~n{01mkXPOuTJ2=G`=> zs@@{n@chN7MAB~#Tzw4F*brQ| z--K!o2ty^eK|i+WtC{G5Vw55xTxRA7eU&C%L~@p`~UD8s?RtX6pomt5TlGOekK4>yb%yz@Qv}NGSC||OpZ|isx95h{B>0zt=&^-d3H1m%@kquMK`j= z@0XGbpKd_jr)TW(`!OIq*$g6GC4hhD7L1?#54!^h6LD-lq|ez3HA&r2-BghRGoRWhT^No-KD*6ckhnxn z#XCM3P{ZYMrS?5SX}@;H|9(6Q3C=;XRG7GiP9s|DSMmKHK8MS7VI*^377B$J@`bnT zXaBqsf$9Y#psR5U?Ue*UbHP$Le9VpDi+*OwJU2YDkIRGBPzd<^50rv5abAceS-nx3 zWK{>_Y_~yNj}z!|DOqxGT{?B$s!h6n@)+HUwTyg(8#&hzg7-&PlJtxW=IxWe)g=8N z59b#0k~#73pwTV9+3YhgWz&8(ZO?VIe`rA6Ox{7a**y$s&%~$Yszj-xpV@W-h@$CV z>=sy$FP7@Vui0}*z}o@5KUE#?@4p5m2lVLV7mr!q{w^jxUmRv?o@A|0t)Rz$#B;2! zyAUP(f<4n6&u{z?L%Yo;lfRF&$%Xz?pmcaOdZt^U$^#L4HZT!9RjTpy-w#ly7thu; zy*ArB?H8{hArx)jZ=lY4C-%>~#p^B^SliqaXOI&?-rKXY34FkKPP?K1W4gEvjj_+!5*;#ewMYM@72 z3c@gCYA*iS_?ofWor{b5lJHmXZD!N*3(PTxaI(F~5kG|&!yFN3$T#SQcC$DpU=qj2 zIX#1&xLN?zU*CYE++9Ilb}EYK4PlbuRQgdKNTX^bihIP+S3C5G?_L$AxKNnB&HK&X zsN?wdBlVD^CWM{x;zT?80=#tl1cz2mqo<~PW=eKyFqK$<=lcYZxS`s)K1MIYnl8SVTfnNen@jm50M>;m|_;V2G< z$G`zu7wR4&MQbgmk@Hr*)oIK^T&Z~)iyCHv^5t^I()crY9$ZMe^v|*NgC+RfS_gwh-#~KzZOHlaoCI7m0na~5=2nwZxLsfcvTt`X`F#319Tv2vo0RgX zvVaWPG89X1`AITIANpeZoqTv*s7DqhaUS^cF<_Z)OzHK;1{EpJr|*RwjTD=gmBCdV zVOT0`PIu}O-mR88IxQp`j1)!af6WWwHsSP=sb`S!@PLyI`RMK^O&@GL&rFT>V0MjM zqrYCPqz2>LsN2WwEE8yoj`MEOtqH>b_WNsEtSiXVDSN5l^-L5>YoLFpY0|F=3y4y^ z6-h5x#v0pmtW4D!G}&KGceq*;>%|UKEaxVvlN6`Vd#+)RRT43Be@fWxvgGQO6nJg+ z3fdAWPHMe?qF)Q))eiv{woIf(&Qs`mQ(LlN8<*elnTJ=bHOQB}Ke=9WF1hxw4Gj5` zOk_zrS-ST;F?CyobF%E{aksr7;X8#&|L8`&wx8(q<2abyX`odfJ+MXiHWRhs62we# zqTwBbkZk*s%ZzfJX72)`;Y09LIG>*qQ46*Xcd>rqQR-`5#e1Hc1zG=H0;2*q#;3gx z8rA#w8R`pxoVrcc?ij*~(Cc`h@grov7sEkjCQXmiBT(Z^O7(8DJHUv17?@2aw9h5? zbMKP+j4r<2?CGF5B_EdknngRpVyMfnm+aNTk3hx$favK`zLI$!I=(wf?@Cud*IY}y z@kxhyVVw&x;mhG~_!Q!_^%Xi=rINc{`&rjmBkF!6h0fW>ZApi#(b@WWaIoVJ2)xt8 zw5vS4@4JDX%RdW`?M=v@#-DJrpn~yL(4z+5m!bI$A0l3T4xVpMMF03ww9@n^ou`-4 zvfj10IU$O9)c6yZ-uA$-fpf?l6r-`B2Z-+9k7#UgnZ{qaMB0DWfymMsM0zld94=CX zHyy%IHBFFy|L+ES@;S$}xV!@*xSWFUW=V4XVJh~>OX0-ok8p9dLCwRoTw3@!mH6Je z0xpasGc>!IZs58&c^7{}=lU%6--#gNxW|z6J6Ljzjc#!LbpZU$8T$RmDl#v3F`3<; zi6M`Rv69P1eq&zXZTUxZPiQ6CwCp4;pH>6oeGKbNV(>~UCkINo_dT_ROT|NX+os=_I)~al^ee_)e8&fY=XoshlqduL=xlI z3EQ^5#`R*6aL)nArLS&uAR9!{0=inC)4M-agOpt#BP#nHNv3W4R7Ir-|?7Sb;Amd|^r-4l=d}w$MtP3B5la z;>i!&!0d4tIvPkY_9d$1vc5J9#Lg%EASl6ITO6^2ICi*z&Ei1(4gQ8@>`7r3+oP%nYJ>euP!aMm* zkQ|z4gY2X@W>kAN=={*bx7Qo7(moXeVif3-SBshZyBe8&eJZ5T*p$BCFc)e*E78yl zA9xeKjViBjI#>M z?gCDK1_?1Cpv~pFna_EANo$7wjczyFlb4C3{#k6Tw+z{qc^0+ehcHFW9g3ESfrfJ! z+3RzLvAh<9rw+&A%Z=M%=BFmm2+75%*VXYMx0|-kHwG)7Igv$Kl4RoNxfN^Q4KYC< zb+DP+EuNLwiq6B8z%RasKlatK$uDZ4EPWC@@lz%FfqbyJ+KiZN0ZQ?w@KXI=?3y)` zOzv!EZA*`#&+W@tQTLkpIz5s!g!r57374eGF)k<}qzUu(x5C|b9eA-*l*$Fp#II&A z;EEN2mQo`Y#*;ahq8%sBOd1W_z)Y7snQ#LXx}R16#j3;)kx~^jPF1qV818T#A#R z-T^D2=IM5P`8kPyp3{0)(?#65ypnl!Xfk=C_JeWqe*!YbCt>PZ5eVH~4CE&tEL;+p zY>nA?zGesfj9o|^H!g(FNe@|(`egRsjirz_!Ila6Fr9f+XF{04lXy=+0xD!KfE~+l|pgkjeG|7!Ii=b0+Z{ur_&Ynt)H8wLc zwz0U9nv>_&=EQ|#;H|Rd*jNEpern$w`koRA?zrlLd0B2T2i8y&{??l?F5q z8ovGg=9hCk``K$<_jNjfQe;UUyvIB*rZyMAMPV+^^ETzr%}=0rfwRDCv%vD+Suf7W$)*=yInj>k ze?*I3nXD{S7-_?8 zpMHl9Mi0g1Jw}jxI7nbX1t#{vGKebwBg_rEggxj3ZlC;WQW{sp89o`yM=TmaNrNTW zukRbNPu-ARyK#cnJ{wK5H3^OiGaMJ&U;N!nRT}NsFY2ES@I2)pC&?q1ddm+WrQlcg5q)i1>g1k^H(|Dd z1U1g1N&ZwQWIYT5y{U(AU~3tipRbJVIq&G+uZNhMug=wmmO!lTdpuO*&DO5Uq$2wk zmN>o#Vqt2OsIzgl;mwo`EKre&R5Ei>(t4uyOH1^7b&m=-gXi_^6R)$%yHB z+5(t1F_NA3yU!)ad&0s+kNK>Hq3mO=FWWG#1$1(REX36-@OnZ7tRJi??qB>&>^gcJ zRxQn;AdM_MFgOJlKllsd-Oq4irVbZxyElN@=?q{R(+i=cBGPtKpKR6B9d~J#p9h`| zk;DI1#xUuoxfuCOj%EHgh*@in#n_@DY*tAO?;8+_QV-h5CvpvYx>y!HZ%c5+n}9So z4`K~#_0VHMCM?UEKr#z1aGOuWQ=wZew|xYU*=tTgO13s^)f~n~+os^%d*j(4LtpT^ z*@zpK)#DAlYq)Jz38;?L1UVgFZpfcy?48$ncDvFQ+l8EBlyMB4`jP}DAMztTNh9T2XS!XFt5uDZb79o@x zG7Gni)n!d?A@olw66S8}s@(2_ENAUD));)4Jv@CGZgnkUi;85~CZ8g%_Ino$RXGcL z>Xu_}{WPZRFM@Hc*Qh1sIgw)!X?$rEtG^9}Tip+VyWS3pC5tig)fL!LDPPsN@(vUK z^u@%n%6Q2#8nd5WX1ev7%;{w>%30py17l88W6Kh3JZZze9UP94Ju5Jx|04A^$k0L) zDe~g)gQQIeJe`%!#&(q3CZIdhYfr_T#B%l|b`PAk4`K5zo~QVW9`rN72Y>gQu-}K% zaLr7278-e-N;74!^jRu6hVzlnzsh$|jXX zL%6vgACZoq0>?@5{33-qINLjdb9Y+A*=Pzo8DYkD_VW@}5bzavlX);n@N9iN^Nru{ z7K(C8dE5^feTceqhMt_(V=wEA>DL@1ymkK}fBx=JSRyM+VDtpmnn*B7nLv1OxR`G_ z{2dHjgf8N5^_1);&;IRh<4U~3Dd}D+nM4bnI<+I1ugiQol=GMCk-h+3$--`+_zLtG zWYbXzZ~XSAhJQ4v9`0;ctQu@MfJHUi{W z9&hffgxX!^0uxYA$NWCQeu4M09~{WuwT)x#UtQSuo>TC;N(COJX^}&FKXoqtS#f0H zE_!}yINmvO1wQTAN%B(*xtA_H{C%N-dCtSxY2iTkzu5#Qj$4EFbzs*Itzi$0G{noh zN3yuBtHe#CM^MVm6QGr%1NOaRDP~4FH*dBb$c0u@?JF@z2>r~<3!>?k6~m1=vN$QM zjvKqSl4kilqyalTDJr0iHjiV-J&W3Z+p}jD7MTY3+@NMLBOmOMMU4<=P zJhxZy!_MyugZ%IV+!TZNq5=q}xL0vF=v*-GUL;3P-z|eaIY~GWrH@})UXzAj1kKzR zZ*zhiO+K;@%y`vQ06ib(>phqHAtk;->dpUh%1rr(fp5$ADrc`{B&nA&qkm_ zk1Q^2x=Z&isn0q!if?u*BlD=mP86dn)!8`NuLeg=5>cl=eIU|G02H4^; zA)|V6??vvgNjPWHIF#?W_m`_UCj9Ls)bRb6WBkdNRiO4t2EKYq;hxkYuE{!Acv7xL zBg<6M_phecS$nzh@RDC5c*m>jCcsS9n|!j)XW0Ks8zeV+a?pH*0^X0u15%0L`XH2# z47av@m{rL8o{b>iKY0{hl*!kBYNRCny#lNI)Anw_BX0a18O-sT1+yid@%wVp`TDv? z)PC8Ef0BKRayQE2%+L8`>^o3gx?n7D?MbxtDRE}AkCSMS1(Qr4M@r4Ll<|tlsY=*W zEVD-6*G4#LpDnzrn1<1s61eq%EtRLNfE^=@ur|&Zwk-Y#64PZ+#mNQ-*}3ADS^xN~ zDPf@5ya#T#2wmT`W&Dh}pP*DL5kfczx-m$dU-j=Rwco8J{f<6f#|J1)YbUOg4Cd-n z%eX&zx49b?CK$Iwjcxtu!Pjq-!I{+_utaMYH{HA)92Omc7q3eAlnJu@vJhvya%sAF zxzq-J@tf^nems}DX6SPkKZX0$)`7zJQk5hwR>1q|sq|y0BD(3@;NsW1tX0t)HpR+{ zvnMsus>N2=B5-BegLWq{G&=ychi2Q$T;+51M-{2=87$!mnE+xKH|%X;oMa{1*Bu zY?dhD;%B3wK5r*+T2DCs`(Zxi_;}(E>(Rfv0(U35916tN5FPyozN-XM)5sE7pBqK{ zM;sCQGZ(|+&aoJ6=geL+iW;xN%7hR) zxK)uI$<2lLBa_L1$zag5uWXW;x|lb;>q%Qi*s-7Ofi!;Jbt*HR&(=TI!|?)xc{gMUIScbwoA-JA z;RoNj=8Zyzag{VDvAK&TNg1MOT98=e=K`n8T=}M7EpX@hSS*lKUc#lSKL?=4=q}Xtf4!qvSi6&aQwB4 z-CwW71*HC=;Z9ml=o{Eb77i=Y>CzInwMH)Q42Nv~Jg7pPSRF84QS6ZfQg1nHK+8oQRs5$}f zHQEJNlP5j!mxD2~M`26BQ&fuHPKMntuo;Z;{)0W-oxgWcMQ$itu42jlOweXB@w0G` zR2z3L%M`AKD&W1t5vX1shH67^P@X{;1r9nzIz?HeTe_d6@85!Q-|bmlpDAXZoWhUL z*(2O1m+>3k`>=JVkT{tWF!|uBc(P{*BKe?kQhf+i6QLx z=te^8WcJ^Ntq>HL=raY}2T!Q@e_&LCF6$m<y8n`v}Xzn|CXmabYT9YQbmYhqA) z3QUpo6><^xdHwyqsQqms#1^Pw$u$kEaY|&)*L+!tND8k@4JMft)i7?&UGB!ecyR1e zWFHS?GFe|)wzYTGySi^FofKBj^$ zw%E~i!|lw+?-p9t@NCa%#C0v1^hqWPl(u((V(VYdv}7zCku@NXFXf;k+}|!N`~`_i z9K?|(y--{!&6ZSTk~mijblna?S%e=2jhM@#rSs_N(Pc2i-Hk@2I!^wnCY;IP@+=^! zi}yLZj{J?3L_@FZU|o(8DU4eva3j~~bpIu)`J;gDLg!$ZO%*>!Jd&ohPsh1(Iy7m* zK=LVlNCu^&IU#aFd(M9V=c}nO;r1Z(NW9Pc{L)0V-?O;a58TAF(|>YTGam3p9#e5r zy9Lt=O5hJIbq2Fn*|eghkhTf^n{#8PF#pMCsC?ut*yY;^?GMFtzBCbX+FjYiY6aZv zp}^{fR`X6t!>cZi8O|Qve8FE95*0T;TC+DPifrNdCTQ6-mVJtxNqZIM(~}hfBiC&U z4UVedKKUDLNjXTzenbEpBg;60Q#5*>3X{8G!@YFtrnHse__(EwThUoeIf{iaefxbl z=`ay|t0nNj-H{+K8N**veL@cgyoFzGUubJj1*{l#gfdn*z>{qy{02UR2DT-^>J$Iq zT#OvL8!Ur8Bb{J`;2mA8TTh40&hR(Zj%DQ`IyB{kBu;+RPO2S!bZ?j)h4fD)=`Wul zbNOz%sx*v`q9&@)aRv-q~K5PX>w3Nv93xok9{ zC&GPyV5c)RIc}jG`4Ud!K{2U18qucVBk_4k4DKJL1>-)~@dnAg-0A=WnpkoPT4nM; z`Nkns3^QWi?PDqp8f7UVYAw$FZyK)~>%iKM#zMd$YZ%Affo%n&+0TWNj4F50uhvoU zK;tcZx427{NsgRv(g4=fT*|N7o86w{tl3JaUQiw<160Lt-h;GUa94`*59 zw$^GcuQP+S&4`Bg5gVXvvNaq_9l$zj_o0!c#N%6S0y*bA)UV^%xk9{4;GCd_JSL9$rCf(>VNINnB>@VxnSgB5`c$Lhpek0AQxGVI)!Ir|EB%!uK3AgwNdF_*4 zAUCI!Y`2J^!eKR52tJJeI!*%%8-hob9&ryhI%DSfy|^)xaZ|fgNPnO-|1!ZEPTtsu z`5R`iiV%T=*ehh$Y+u3!1&;TbXvuxnZKRDoiz+))6iG3zgD+AZgQu=5(08>^e#9um zN!#OK(32(XmO~T&YhMDjcqj3%1+F|S;tX7C9Zi$WZo;PZaiR+gKSP}F1PXO*gQ}V4 zu*o)>+!we-YnmD&O`aiw*OU)K z8^2CEa5D+cN1X>*LrJVZZ3k(#N-*K2HH}&R2Ht;&L6_M@;u^uNCtD|vuKjLYbd?l) z9cd2T<6m*rw$lav(hAo^?gWjr5KeC{7jSJfYp=};TNfBUae+vzi(e$*TI zvV2-=_6`mTIjOZ5N}{kOt z`W<88Savg%Koyt2#g1Nn)5P@wJRf={3xcO>W8S?fI5akd%Xd;|e+4(X>t+jT?=*wW z_SuxQG?IGvej(>tA+LKrAKV3|;DpV3_B&`Ev_BE{i^|dhbCyp9Cx5`2zz+Cxy@&s7 zqz5Vkqe;sk2CjWHr@+7A@b7do86H%{ufm+!%54^1z3asiZH%z-@i|&x=*!fOFXG>1 zZGtgUvq?)dP+YWSH|RPYgG7ll@L59*$L{O|POg)j`=@Z-2A3gCaU~lww2{)5sNtpJ zTTmtBnPaV%;~62_7qnlCK1jN<-&_bqx!Y3fo>a2(TR_Q?0U+;qk)G}q{TX3Mo%YkMl?d&EQI%`LF%u_o+EQ^HpcyQunYG~9Yp&dtA8$W<-V;Z~H?z`=fV z1a)^%PHn{<_8qW|m$LJGJOCdJ9Lg-WJb{l^e(dDNrWX*dTjPu`5~?|kT2k|}zZc{AI#E3_`k z6t2I$MW&|j>0wj^^V43AW6m_QlnHP7s+JiT-5`ypPIzN`Qz-7L{6pF{l6FCd#KJw! zA5ZP@V@v$+z^0HmCU-NL*6dj>PA_{-iSuQv>V)^3l%xi*wQq-~A=j99MK(-ynhg=T zZ=j`ZIvn$i;w#>aAw7?YxIW<#zwm85oACDtSPR{B-sW;JuTg^S?w*TY-Tz?z!!MAw zJ`kll`b5mfknQL>j#KSo@h*gs;fK`_8WDwEyCbNew-9IlorYoVE|~CZAAa(d!B@Fs zF=Jm2^vmY4@k7=Mz02}wpFSHOO;HAw#wnDu{U?>YBIdQsi;fizrDG$7p5_~g@I7*l zkhNNgPs9rJ!f*}ReXoaLon+?za}Sd-w8fkMj?l|5%PQB!%qFB+IC7vA+mX7Pp1+<8 zBdQMI&pGn=wzGr}>Mmo->5J*a{PCDG(-k~|$1~lc0sMls`+yccqIqYk;kKF-)61H} z8U71lhYbWjFB?yK5QJ;?z2G{pJFpAVDQHlbj9aRNe(tF8_^zm*!tVay*3Epw4O7%- z5|f%?M(lD{nCd`t7QGh8@ z1+%u1v0L`76|bI zJgiExV^ZI1=)a`_;)O#bf!jI?W$cO}x_UROd0GdPe+S`(ZL;JUB=nT&3}=6YpXJI4 z-ko@Xxl{;7*B2u3+@_1%ZsTNDzd4`ZBc+H(!`!)w@?4rEI~x||4rApa50Vn{4Rda- zgNY@&nCW}eRxZIFZ^*u&Ppc2pR?ku3^8EofU(yxC9W}Jzi5WI$C5m*HjO1SrT@U@c z1&*}UpCT6vm1ZZRV7}Z`oDq}_jb*7YvwsfUncK|O`a7XVf)0~5n*xyqZB$>IM!0W+ z&@&xQx4IT`Z+y=}%;Y+HE()jarRe~UiJW~}GdFwncF(s?HXv(4|oV)b(o zzjzx3Iy|-37@I>b^ET6N<855XAmRJ#u8uq5}f!`O*##g{0?pee@^rZ9@IO*wYlyX#Ye&N+Oc#$R2$2i zCW4iN6nnN);OvLYp;hs62Bh+*|I*zE{d%`jVZrRQ)K#E|6hmQZHcK{3cH7 zq#xf9A;FGp60$r(f5*>{KOs;%lUCkV;k_Idqs(qO!PB~(a^4q{mBs_gEB-~bHIHb= zId@q3D4N1HzT>X>JBr*t3>SP=Js?-6A@=TlB3kfOxKG@cpoweZz~JIQjNIx%>ibU! z?0ypOwR98=H7^iLWgTXBPtX$ZzP*%{~IRj1aZ4$^=M-Ddj4WVKEXu4fU`ioWB&i{OQNl_FfnkyyPuJT zp(NvO@1UjT(`nL0R~mgYhTAY)1~#OO;M|xb)qjwoBi<8*e4-XuUShoG(b3$BWJ${1 zFp$#k?194?zsPc&9sjPnn0#*xVe#)C3tifM;^%pbIZaV6Y?XEb-)?g#lDBr({(^^utHo1nIA&9}@!>AB{xiGfD(Wqb2ra%hR1fF4#2- zpmCiVrB9QB98+6J>HkW8YX;-OJZtMW-4d~+8}Ro}@f z6wkouuWzAgQ4Ez%93ni+gxSx-P+b4tLrRRT;gtO*)2AP%G%&;tIyYSA^=H0@)WQr= z&;98zK=7X_2(0GK-6iy@-2uFt8Pt~Qu&lbFXrdm;S*#ON>z%)3aZec&ByE_#oeDF( zW6lTJYcahrZx(GZ0AtQZg0Pz5*CiFxH?N;C>_H;ky_8A!N>*_*Ch4&6z1N}i-arUx zk-+x3Ra6)4%YB4QbSm zwB(N|@N}?h3U--YCx=yH8hyQv3J)KlyI=HZxs?Q)`0lJIII9@4%+_$ZN3u!dpaHA- zkS2;c*F}|TbD%(NI^2^jf~yywQTM-cS6b zJ7WsF)MStuj-dO$0i|ACg;{A%7(Q=3&H6ovr}#7&baV%#{LmMTE;3+CJu)az@iY~= z4P?bB(_mOYF1JAO472kX1$V5}DZoCDi?tG*)OX{cNcAnGs_VhSgO9;$ZwtT0Oa&IC zZ=}nTzeU@E^mvO|Um@183@jQIMT3TfvcSz#aBxAKFq<=B8&Z#Px6W#T(kTOGu_KQf z_qEf+mfH~C7|T(~GuYMo9F{D%qP|*vUTb^~U;1zXo2z@AFkgx?SRj0Ouo@IJGT?~D zJbG;%PO@rmX@qwxDC{0j=BNLXT9S~b7t(@3#N@PCA;UZ z=wZfv-hW!Lu!nj8dpf3}W86#f*{O{=O4W2}TN%Ihv?DBt)kIH~@%ZxjE@-yigCUDo zu??>4(P_|FG|)IfkB_~>h)z!y=QD?Xwm)ZYC#z$`=Nas!&wr3`=?_WfHAC~G|3spX zLvYBiLCmn!9(keDvTvCzIjmie6SAY({FMJdGX5c1_5Z(Sz=g#MIe=P2byR#3&0>r> z5PG(_0>3YnDfvTa;PU@qS9}ToSn{|i?M(_C(m2AlT1+LYd=I8DyOrNQ$(m1|E5~#f zYy&gJRaNIkc3{@QT2}060VgXQ*-o2-+-cWls>~Td<0n)_JLIY>I|L5#!H`=x zqy96!cJ0LJM@#9#cs;(`NFP(J?qNdYCs=#)7~S2hg;~YRSo$@4Op6=AuK#V}mE-H! z_FaQmf*InX0ee}_Pd8KVxB-^x(|!$Q>gm%ri|ATI_dR=ERS680X9s?V}14+%f7jtqky;s&^5V6 z#?eOX%Iw2ro+lJU;on8Wm^U7QBNhf}3Ooe#-JdpZm!eV{#6^pBXE@ydWNTAA7^z zOn#4|*EgA#=|$S7mB4(8wvzXMr%Ai^1W1+SQ=fc1`b;;WkzXR%fRCSGmPQcYa`Oec zHowI8o8l>3m>F&kddj{}lEAsAtYJa3(Cyu8iEDR!;9lE3rUknufM7=h-MeL&dBvS= z88;AvY4~Nxp3wylSh0u6^#L`%4m!mqk#1kS70VvpQU#)kMKz zGR$kAE9|`(!1mtzOGkVAV5a^ISXx&~-ig`5yuFX~B0SK=e>^XLPltR&1BAGvD=Qzz zAnT`;c$RcmWh%`fHDw#TAY`GF^0H~e14~}nZ#~I;oIyp+Ut#X_V1BZb9qqa41jW9B z%XO|SW++Oq5!XgS?D%$Ct>J>t|NF=gCWjGm+0MOXj9_ ztcB#iT9DHbMU88sAYCqjo6>avzUFmv&fj-YO71}}=xj3_u;WE)?&09=7Q|Ketf9SL z-pr8+c{GPb?A(5WCpe8u_k2Mf3SQ8Zu?M>3zL1*BAFk%F9i+6>@tN%tXxfGK_;}E0 zRP~t6YA*_Y96vq0b!U-iU6U%9JUzk&9+RSZ3E#zA{vGAFlLRj4D1aBk6*;BgG&*3o zh1b9Rgu7q296VlD3VE|5loop)67N@ISGEsmabcX=^K7~tdw`rTy|rooSj9bX`ovBA z7fbUpbeZ36q^W?~z{F3Sxr`caj~c-^V`b)5UL|zw%5ztLY2a6vBhZ=UNR6Kv^{&`X zs$_Gl*HLO)Fq}vDY!HbhR@Y+V1 zV6ls%Dq^L{XHGjHQ*qzg@uc?ZKrUk6#ARC@QfwS2sg+mT7T%D>umoU55P z9|vSaaCQa;v?usJ_cy(eo?cesqSl^=CqZ(sXsXctadQOoR4w3DR|)s$Zvm{u-kiAz zKFN2%GR)pBcWgGu-GC6bk$5t9}b?8Pcnl~FWt%;sj zT!0n3<*+$JiPCe7ah-!7W;@*g|L{Omb?oNv`0MbW&->$_i_+}rrcUmBa0pj)T=09W zc`QnHapqSZtRb__Nt7*Q;Zweuu*J^j(Ze-?UsC#+=Wcib|0M&aly=dITgjyHUty)Z z$t|v`B9r%Bu>q!@tb~WRhOm;v5p11JC}jS;Pvi7=K*gpD;CD2Op8aiy>penGq+1`q zLwN{n2}%|A=|kb?&Iveok~84lI#Rk72%1kb;m|k_-lSL;rN1_iXtx(^SUCqW_evnf zjKLna26$@}NneJg@IFo%STa3;T!iOS^c`Ca7!@Vb_+-plXIuvF-sKpt6UCmHKZk;v z*|0SI6qo;f1C&Y_vKtH3Ao}AIKJ$SNhI;C=yNN-NRd2)(KFj!_g|0a7%rz*f2&Qox z^vLnrc(gP5Nh7^n`Q^i^K!2(ZZJqZF#x0WPLf;Id@3p=B$VCI*{w=ZqhOp=J5|F(3bb1T!Du+ zb>@$OC9_H@TeR;`S;!|E>-o{<;=sZ5Z@4P`2+|-v)d|yoJmmJ~eWyR0v>9AW7Akm- zvc)04>B!ba6ggBCJ`6Bm2F2y%%$t+d%mDD1zlRM_b>lL=>0pq+$fq65h5+X($ckx) z9V;VYe}j#X*^>s}NG(v#7)0j9b1AA|HU=FX&7__^fu-(7Wa(x{AI3_t?Asq`Ps&^V z+rkuDoi4``of0YTmM6i?8cLnKn>NO{qK3Q^CMKvuRgV*-I4+>e6-MaROJq@?4?8~< zP|=))(0Nt{r?l8GeyN|h{a)xqNVU!I@5 z2jb4G#9J=?6qnuzXHMn6!kiSYKHP?@{4<_96ys2Du?^Necqw#^4dLHN4P;k# z>?iT?I~2XB5?4qGY^J4VWuJ>JMj8ocVwm9Yeq72HuNsUQvVp8FR$6>1EQ>z(Tw!CI z^jK$PG50cg8YFA>awn!+5aSsOTzis#^s}41K2(70K!J5{ccC*^XW}VZR<+#70q>8T z%>4Ajsi3^Cp< zqMxaRtNS}4CD{hr=4A4X2i0NSuw5+6UhpWZXyK!4u?&4;Sw@u+$4M+l>WW}{E5q5# z>*h>DUz7Oa1DH5S0`(s{kXLyPuK#xy?Z4RL#66D%rQ=3$2zO>GBR4YnM~I!*LLkoR z9W&NGEqb6B2WFajDAiQJUhNj#?|woz@?LGU?@hyz;TiPC>oeWi?1h?U#JT)zC*NnZ4wB$dUd%e$Ra-UQmEu3I8~KRYro%s zuN9UoKr)(>*O`k|jwW1EbV3H=B z;T#ZrbGGsre>)wlB~0;OY#I1IzXU%Pj)rrl??9vCGAP+8z{UZaQF3mM;I8l?sZ}T7 zTS_gr}s>0AsG?^T$} zO}wAYPFxY*kGCeEc;HmjHI&6Q5*eh_Sphc>{9=p7?L>)H_>%+x#zdM&VEDYvilq)FV z{5Qc*T1-uCZLs^i12;0RlSbQ^QuZJh+B(`2CVHph%${@`yEgi5C2k#DEr_hd7%?8c`wTw^d>pPxd9OSM_ixn+FwO-B;{7IwWq z6!HB+j!6al=2Y&Vp{Jt);Lxi;`1a?aXhzsR{%rjn3g3Sdtc>N^Ooef9WAIF>_$t9R zJ_51#?aSP!Atty&Jp_zqRKQ_{9q^~)JLs!~iVyt_VLHW(_Fb}K5-;Vc-0HFTM$%f_ z{qr}2)=fLO7JP-XEsO)UC>!Jqq*%3YH)pOp5G`&zh5x2j)3bxt^kfim4wubop6V)k zE?vxSoIVborOJ$BuJG33DP10V72eec@(CdeA(e*k=7;Wavem`>kzGr0$hJSEsptZ$ zr));!_-uIiHjdok8gbvQQj13~%`7aWMJ{7O>X4j`>$6md+nZOpyM90ZP?<+dOXiVB z?orVFJ)HH*gwmgz%`j_3jQE+cG3#-ELHpKNv4&xDgq%|Y#ok&#C$D+KlBkjRNPaY? zm{~F3E3YZ7eLnFc^!dt+cxWwGXFp+kB|O-{UN0->B~NbUWuHsa^3g+>|AQPlU-^qm zP_kghi#}Fb)C|L(=_A<59(`uGoMWp^0`OqDkiA?nhBE46Av3*%7K?(o=)Dba^voOK zoHBzK?!NHSkSEPXBb0yeM{K@!Cp$Oe1t0pZ4nn83^M?iIE=?f~L%sfjUqBwcUaSN% z+XnEZ$I>ud(U+8ehmy~yP^LJr4HRC_MR#?v*jOo@FH`!;&7Qf2Yqd$njP%hYQyE1I zB`30*`wPLkLlu@{5}lh+BD%d!o^%E)LkB+$-Li*6{*8OEeUK(?((2^KXPLu&qiQZa zC|bDR>foIb?|9EqtGFizmx&zrH-o~30cd(fnY+GyEUoM)A=qjUn_r2bY(_E7-Ye{; zJkP<%dIhqZ*}cknChAzTtN{?T5C@o1k1h6%H%=htrV!7_iq_m~bB#f9RRq{&#2*0`0H*5LmCpFx%BxUrKQm5*S+w^4V4+^_jPRA6C zQGUNJkkoOGVxNPRQzdsUMU`17I?}omncSF5Pq=BDGI+~~YVKToJcOMNrt>WVE4$AS z#(lVJ;}kXn1rH5;{cj&@+_DYJ<_=_q){f$)qwmFWLLSCW;O(c#O-K9p^0+kc8lAuV zM6}J>oO$L35j@kuKQD(Yr7(}?^zpct)2WAxncmajiol)IG{9|7iHErZ6^)?hL}yK<&=0%+}#V{6o; zadSWsS@wOTg=-JP+Fi|nKYr1ls)EW%1CE1R-U_ytH-Oe^by7L#hyz@7=zidKT4Xqx z)PvI@-QBMkeI~W5F zr9yAVQDd$`u8ltb)&sp^rZ_V;25_YjDC(Z%-tLpZpNk*TO^v&-MtM55TfPIMC8^xK z(hGE2S`EKMbcu!)s?tt1Mysuxf*c&1 z{fLs3B+!}(`x0*%Rw-oGPs=-TkyBUWy#q>=XVwqlZ+*$*#$^8gd4u{~)hab8Q7~p9N{TEHhFi(Tcc2;29?sV}KewxC)Jo#QT zb1L<3fIh)xbEe=EnJ1XRcDD;~cj#GiP>6+737Tlw77z3NJGi*hd+i?}SI8nQ=C#P>zBS^acV_Wg|n z+cEnzRw?JfqnH1|G^Aa4`M)%dHx z@^_C}!8&Oud)-bCY6ija4HfVzZVp>x8;O3EZdEp9hH{>ZSnZNTnlve&-8-#^iw2E@ zy0kLtky}aEPYV4fDl*VWsqD(<;b`@|jpOCi?Vfe(vi8R}ZAS~vp~ zYNGIN>mzKKQOZxz+XMwgBjJX+3VSHAfr(PQu(;U?-+ruz-W^VqF;0%@DMzpy{dt^i z&>paESV&_wwevL%kuW%H0Io1T0{ac8;F1ep$Ze;Jc7l_JPru>yk! zm*E1*d~T|_G;Iv?l^keu@ zUYT_ZoNn*TNNjg(rhz}w@n_{tl-YQVo_~^sr9XbN#hy0o_AG7oQ>&OHw#`6Ae?{b4 z(_sXvqU0_fb=XCbn?v_-=n^vXqmfX|@xY zlR-EywJeRl{-c(^X7mXv6y@2uGa=lyyfb{MLm>U}sjQsh7(+SFV&OpG96rge6J+me z30}zmF?8PHSiNB!myzrlBC;~FvXb}Q4^oJ-Qc+ZtA}v3XG-PB%$x6vAiAqa|_uLO@ zD@92XErn<+rRjJ6c5z+2uIHTRzQ5nk=N=B~d9XhO6zS+}R}`N)i@dh4gug~h$woP8 zfbExH>pcnFHYi8DHR@T>qt^Jruas^7m4fSvZn8vpKj=8jDre(|2}laAm`EShZv}lecIM z>N0iU#cD7yd*o>8<#Kju+X5ylUyyM<7f-@&e&osR+0Wa!e=mwEgy3Pld&~+=NxG|i zGag#3$@~f4P591L5SU45iG&qO-1mgjqp2VqD@NW%R5rLA5N6`~A7GP$7kRwch8lk> z1IGm-O!ii$wKb#@HHA4Np&onS(r9;;*LM;(s~Qflc&jT<6x zPR>y_wLpS)SB&zmEO1Ai6R+9D6R$E7+#SH|Ydpp)Ik7P(UBI*SAh?8ZJJ-PnIFw-n zeR~!|Ozbf}-}f|K(7lhH_|J_daITVqr&HmMmNMTlPYPC`E^aN&!`;HV5a6DR^G0=v z!mmQC`sV==94DViPvfOlAI8e<6KISRA3xq3$AjO0pw)5_C|2jA^57|muu5lAhO^1p zENPk{c9A{#N)bM76+{QqMAmla60*1}iM@UO7d|Q0#N8K0aPbFe5?9S}zC{yp`e+Hr z`&{4;91J8g(#&b4_b+5iCh|@cD8O-_HqJNl17FsM@#j}Bp~q*=WcYg|8eSiHgSwB@ zX>NZCF531V6uSJvmEA```!Kg3HZ-FhS6<+7k^`p5){xZKS7FYW9`h&gDEw_%hR2gM z*lkzOLAA|V_%2ZbY8=Za#ry~Meb6E{LORULo-8_3t`xOK#&``nnN06$S9+?SkW(qb zaA|xhHB;wUxwn#;I|<>WrS2>&Y?_Q#pJnNuAvNqTQXv+z-t+%NC}6>HQOI_dq)(?6 zl4rlZuo<%_(qYd)IxS0{1aE!A@Pb~T0UHfJBAZb}>kBhw10VV{J~7uLI+@~{scg`- z3S8^t04v>mnCow+(E%<4$gK5%4MH+t%SteJXYPl|p;F}Jei^vk5XRS+YQi-AJFu); z4|7vLFqtj=a7J5{j9u$N8}%r#I(COw-8lrF$qz7eBR4yA&%=!YDtO}8IcDULETdNO znQ75-0D}!)oQtOcZVYMBk;Pw_SA0==W6~f>n8mW4zy0yL$r6}<#+rUtPegkCDk{nf zP}ObXP!Rf!pX_=TyKgb`2-0%SGJ1qra!9wJmlmd0H)Fz{As&L1UGCc9{V)d~MB;yn5l*+eo zX8%=KbiEfR@wYG^oXu$3`VbTxy9Q1&6LIlGMY3-5S(vL|2O))_#4$q*1LU||PE0#g zJl{=1S6ai$eSxHE#Vm5;iWKNBn@hbHDRNl_E%HIhiXN!fB!SVx%yLIA)A`;Vq8SyA zvo*?0sBc8M*QR_iK?C~2dzh!`YR}3xAZz$+A*nabVDq=FM~jIk@V9I)$cBY5S>IRS zT=kt$`$GZOgc_5QIs?2F+RJV}ln5^KnxHIMnI0TDk2^Op?BhAZ__047pS?QFY!^NP zwU^wnCgeT7GuLAKpIXC*>+`4;s_H22x{gvLZ(E?EWDk8hBlnyv*l3E8Qni zp=6kqo3k3`-ByCVHLaNQ^CWZ*iIWRg`*{zH7+O@qL+MW!*=UV8x?!;grh9mB+`J-~ zwp5u7zSRtp5pK{EEx`DOTGQgH5N1|;1SH-54}ME{GY*G~@ysqq(j(Fg;{le?pY4r8 zTygoP`d{`gF<`gV2$C2HG5S0$AJkv1z#5H8B#%`os!HOZ+%|sqGhrIKHkQs#ECt)$ zgRCrfR>*!4q5WLWD`V9gxT08vlA{h}R{akq=!Z9Pyxol1)|}(!q$+4xOo4;H4ngb% zM_iexLB$r#AvQJ)UH^iitGDX18*BAQ&NGUwnNvZ&j&NPk6zp_6Wy_QVFugf(AlGJq zf1g(3t}$zzJJXtKIRxUn)Kd`l>i~#i8a&*iPo&~QG4Ny~J9?j?(Vg>VdGlz6H!j!005L@Ky)in5O-oV=iMQKdi$tT zur7){P=UzE8WM0go-QmmWOcawx#HP39A7pKK2|n^zqBxMwx7W2Jc~yi+X9AvGo2(} zR-^O950Uj(?BPq%2oj+v`n#R$qI0t?5Bh)(ZuY|&odxjp`yw(hw~95eEugpmtYL(b z!%0@L6`h<=Lv`fJ;Ny%_IJNN(YKW{LGWL=*G;liIddamhAnzz>TW_O~DNI)!il>2} zI3{lgp+lCUgwJ(|Pw}SGx@TF`Jz0-Fi+zjlr@UtCnPa4+djJh@UE*z6vYD8-%;kQk z*~GUfidp|E7V~-g>9*QU^s$B^@z(6YlAwHgWX4=>M^p&WwY_vtlLfo}$9-GF^Q(C& zQ|FTi5oh`^SD%(ntR^UCOIG=&5lyL4T(fB|d3&cGV(%OWl|B_R#n=QY&;O)avNJKm zCjul+@_DqTlN!rKkUQ=y71%$CJqKL>Hf<5!AaPvR=K#53pNGHt57CMz+lbUPfQ9l~ zak0@_%;`wPCr5)}iJTeUKDC6b*cd>oKd6#JZ|9KJA$#c0jpvzD)+SVwt|#G@Pcc7a zK3ce)AYy;QLH7M?;&>{8rfN%*iNd?#MN|@c?N_81H1ERX9u+vA`wo`Oy$&lpGbnR4 zfeIms zTSeXu6XZL}Q>SIpLaK4h*l+GdBq??oOFE)mDKAJ2i(*ADn1*=ifGTZ+z_QA%&D zv?bH$=fK4W&%t!$2`KU6sRrj=S<#zA4U_$d;0iu{x%MfzJg#Ey+uMP5+f-t&avXfr zFT!~ARZ?+RmE$$cp}W`UkSzg4RM4%JJaIokTsXGKDrOn%HX5dj^-l5be3=IOSY1f* z(c>nOB!s?=s@@5TQ_)~@0{s4nxg-PY-I+W97xb0mX z-QV{L({5F9j=*_ToToB(DcN_ei65b2LX3Qmz{Z#55b2tOzr-d$YmXHXuuZ`0 z%Ph#gQ@5BqU1iLQ<3a42`TMwj&Qb{6phcQ9Iq!`?J6t_BgJ!-iz{`r2u&r_-yxjAU z=`1|M9C`+1SGNdt?N>q_VLK9@F^xu9Or+{QdStfZVywTo83r%zhRTJU^PyrLJu^BV z<=+2emgap1rbCF)y>kT)H;XhzH&k)lkiW3rOAIRXOQ11a7u61PJgFE7a39=cKAW@B-C%qD(oL|nn@*y|YS`0Rj&F8mvO0@)!Skp!B!KI^?D~|- zzFjzo*|iS3GUVnhZuc(f7Z9@G?_=;-RWY%&|&9yP*%f ze-AgoOy?F*@wo+iWeGEBo)2l9FUgxTtV&1Rub@QzGMXX5@z(-gvZu!cs9)V(%$qcV zrg=q}IZ>Bf^|6G9*7qQ;GYL}?vw61`^nk^|c$BG81A!K0;+_7M`E=U~v%bsF!R&o( z7}da?(W#J|!?7{*3JDGzhMBh{S;??fP~PYOx-)O$s?XY_aY_NJdcpuKucwi3Du0-g zOXrbHR$%mA&%pWmjp#SBo;|Wyo9Zu?W1laHK;bZDOc^*ptS!&*dbjLGUiEQky;RG; zK3p_Q2Jxh0HFi4=_RWHvU(_ z+Gk`u|zZ9aISPJq-bf5*tY zU&rp*dzfPc^|4N+!>n&*C5|umq!Xth%rbq1=>t>1NnjCK_$C&#TVtTHJQypUFQo3l ze;7@pI7s_DoAsWo&U=|=4!&EJ*is=GvfsdwC$V<|Eu7E;8J|j6Z^;A9!cY?wO6+4x z(kGG#w@r*sl{8!o`i6}nLd0@hoCr#7fIYejy!&?!!?Jb}>hwMX{=Pg6b?U=x>Y8Mb zDRv~0?xJL2;CBdLbDZg{%!2W2(j>=D8y_5vrmy98~8skDaE{H`Bi3#&IBR zW1B%axd5gv90h$lDI&)&We;7uhGhp**+q^nD4HP#_vO;y_YQlKAJ+m;=C1{}Wmzx> zx4<(mXSiwk9=?1FV|;_ST#IWO8XnKUk^vFOx@bWzEXl?8CrOM~#Q?KW^$;E#^yQq^ zvzd>61DLpJI?M`MM+0tchmBVj!%1NmGF7yRdHEy(UKjbnul~8j+Q^kSMvGvAlqqp7 z;r>=}?|6QRt7zA12W;GDPd50-(8YWyLJJt)fpIDNf#cMa1>eN%qh8El)^lcV$4=PQ z{E$7Oe2RMq6~Ki0%lut$O>DDPWZ}Fs3iM`8I*O{Ju{ZQbB~9$N2{r;pPq#>gp&9YVSK>_HYT?%KwAu%Bpyy?=vP_rJkEIIPtYrmv9yUxOCcPh7O|MVvb)h!2sNPS6 z%PUdo_B(Wg7kDzukVO78fpE~r^Fe1I^?@tzjG7v`d$AGLSL%?8A5U2;>3EcljDyY; z0XpnMA?0NZEEMO?)21#ky_*N8l5Q~__0^c)p+N_^Or>RgHdJ*<(qcmoaIOdjucI~W zt!@5v{el5_*da-nIDcrk8%>R~f|y77PhkAbW&RbHME-|LBl54x5R~JWcA%xZYK0Hjyt=A!~$8Nt3da9s6_-eZTw-R9{&_M`JW; zWz9Xb-~AYdWcSjY$9&=bMsbpM%$oQoykovT&7u2@TuhAMjH#Jpw< z1f(v4u}U(PnqfspRIK6R+_$v8Yd$^+$^gGySGsKQIlJTE913k_oYzwqESCCX*Y$&R zhr?Y==AMo1@>gNU7{%h%o2k*7E_C$S)R(ubFr{{D=mp_IlCG9P!$W@{&r_40l&xlTjpmVaiNYlM-$tr4 z^EO#4&Ly8t3ju+X$ z4hT4L98+T}$m}s6IOw^V?%$e49$oUmj}y3EdU8FjzIB>uPE$w4HzlY$m%HcO|Hv`y z*OJHm!Kl_g2%}f5h_a6ob*ihQ8%2+irJF_>7nR9GzWZK-cULWzlw6@kmJ_H*kq9*@ zR3rg8@9;pwaop^fNhW{Qp{>1|#BQ_zp4^+rdF@50?^{vKUogsF8gh{wS+EiwSJh$X zkS9BNa5*g(JPwlTJISf4GUm^=OHj|{fmh6lVXuN&{t${M+x4saG^^pS( zkjO0Ia<=x}R{TM?cWjJmJpY{jI_OyR2X$9D!F+CSPPjR?a?DlE14(KA>-l7Fts;@r zk7F-Hl+ac6?@>p8CwVV-kVF^EBU?95AlK(>lF9ECiTk=45aPw-MzwlG&)t($j;0yMTlb4UV6au7V)%C<=Cy3bj^ElT9=+qM|!zz;=Fv^*jkRG!AnSd^$MuGrv$ZQ z@`NYb12e)GbDi}aw6S^y^C#{AzT=qFXF6_xR!?L@9LKN;St~?7ecw)VSt%+IGu|+C z_%_dd=qQ;!H=2!oQO4$8vmlvvtC*=~FCaPFmUel5g#SiPg2U@Xo;vr;J(6lm0v#^# zZ^%j0(Z==6ES&^SC>KQ7lWsVEFoYa7t%Q!QnV@$~ijh&P#7~o!K;c$Dq&eo~J!a#G z-g@@%>W|F2NeyUctA_8+O0fnS=V8b#9=19GGqUI?^Gt0zbL(&`6Y)y_R zj*C~BU7YiGrj%skD~CKft5u3T=KZ+*DQN{Ge?1YFg>ejIOC8!h%?g5Zo)2e5B&b|7mBO(z%@w2D+R^e`DjbChS=*5m}C!oj!ATmZGuB+n&^i2UDWtn-@V7DlO!2MejDeTHR9bl zcL1K;2!ZrB;h?p23SB3vL$v?f2WLH;X`=mKTpoD{3Mzl{kChnVyNxTU!q#wNsN0BA zBfH@Ix=%1iJ%|{YJOQHvic~RQi>|q{99(w)VH{UfG9`7Z(N#wXoS75kS;l+*#nMG^ zJN6|e+Nsl-H7yt(8HIg$yoM8N*TC>t2JQ?WW!DS;M?{|}z>zN*C|a72_Dk$RLB$6n zgB6KlLN9+zR~sL0mc&b5aESw2POM(@uy~Z(G*6H{rJK&9am$v zN-N+%#4TpT=s5P~%p^&Fm8gmObH=X9n+A8~@RgixsF&+Pw4O8oT1x`iTYKN2z$n-G zU;CFm>OO+joEK^)?>c+xF=bwItkRP{eqgy%hRdlqU*6E_M&>65LFs2f;&UM%n&wGj zqTmQ)ICDB<_oaziRosPdhBc_vEy4uEC@`gR$H`64N33t24Sl})H#<;~hL;Rf$uLt4 zLGB+|xdLG-=W!Q|jno-!`3wA=e-Ya3A*K`MA$irh?Zp0b~PsgA+mk0Pzti!0U9f0CE zE}!wX41dm~(3+u5cB`I&t5=5MSW+iEzY~QnxqI27&-=i9Q7YrOZYKSvC(WMJOvG8| zU5M+&Wz;;i5Bxe**ta)(;oR!8n0O}=gbP*4={6g>N0&Rl0&k&Emm2Z-5eN9x3g$)# zkTXf;fZfmVuCp&AV5~rwy=lhX%K5lF+lAx1coF5fDR_UT3`|s(CZ|&vIJ&DJR9$1p z_7E+6GARinw{lGK$&Rq8@UZP#gJANcF%hD67LlY^%A`JjFm2<&M;s60<3H41+5Dx*vk<6n9nnYmLOI&c2@{{EU@f;jsr+e4pw%wi(JMbH9?-sFxjrQO$yaj5o z0)KjYqW8#tD1N8U^;@|+)Gc2)xIP6J9uVZtNGX(@z}>qmqe0T_BIdOeV%?$`CR<(& zZ_j+hs*O#BnT9PqQ=fABHKqtE^Ym1f8;#sLWhbV!>(= z?W`@J`dfs=_|L?PFO+zrxE+qYS0ODT@4#k}5t-VOf&)X*NL0dzs8b@YRlmsu#mj(I zYA$;@q7H9&B;I)FlfNzw{IP-uApICAPyeM+}|QHi|kJ;XTl!R|IV5IHR-@`XAydp zXG=mC7qVymB;XBC2JeflZd6o>BO;pr*hLvpuy`n$PBRZCS4{6RC6-+0^`QmFAxxmQ zn=`1K#RD7>%5Ko{n8?ix8_0jSiM_13jI?}x%Cm$*l)iF@3EchxTDJs|j|-l_Nr_-;^J|jbjXDXt z-P3+S?`acq?a6)SPn8+9FONsIXc=ZU-C$Gt#^?j}XsEuwuwl#T`(S_7fkLo4*tvz% znFUYS<(BH$#dD+|9Mb5mm#5(pD#OwX*|^v8E)&!43h_^6>Gi1*bfC8c{W4{ld7sun zT+m7KH_{vWqi^9`VJ@3?F_v>2`jYBeQ@GG3NX2v{k^I^P_cZuqRBjQ3s|69=bUk+J zY(XL+s!gu=WYOYuJ33?MWAJ#t9aVfvQL)+{KN-4#Q11Z!WfX#AmeTatOLMY(u?9>s z-oXA&4kd37Xwf~KZ{TIoN|YXciy6Z!Sre;0_|dW$V}4jQs6Y4)t2Vi@YwPS$K%pJY zXVt)?kpW2eALL&xF2Es&Zj6qwCy#c$Vpjb)fpaU|u<=VKb2yuGD{(BWLhpN6IzgHQ z{Pp1Lyp5wTL;s><%WBMO=_gMM-{QX2=jrKuj*F>LMrJ(}fH^O_;H-BbOjbLJ>H$yj z{7D~TCMHI;m}Xdh+kjV7W<%>5AL2faxjAZ^$({ApwCTQhW2~<#Il5AW-m!I{KU4ov z{~dK0ye5U5+egXxP#vjzs03Qe1xV};1#*r#0|fKwmo{Z zVA=$7qOXN|e>+IlyuVDBX+HyT)l53gqlX>&_8lHyd&!)TUqclSoF@aX*V7mKIM<0m zBJ^m-Fq7B4A?qWzkgR|Nntc2;FS=HRx*Fu6YEA%%JU)WbZ&XNSCx)Z40Cq<%mQI(1}{l;}h^I);vaY){%Lx-jvXDiT)A|jgadr4ZaXRBQ(UQncoksuI>e9XC3GgOpGLBa$&^kaVl)J`$yjTlX=u^XEn|kZba*(TG%sf1FV}IKx+n(f6rtAD|{aDp05pjH0g#@ z&1c!$BQ02(a0kxqUr91bzT?cOEBJ3?2;6csgzrx%KOr!MvOcCzvhWk0s+mj1MDM{% zju$ZfVF@@bD#LY-)>Pl=5R?aVeA`KWL`QrQ-4pPD={^`mnkIIz!&eV8&$;u@V&`^j zHY!7Bx0kpy!V6=+sG`YjJya`-hZXYgAl|ix?^tZb6Mb95jMWLjpo=T){hm)WCyl@w z7e~57G!LiGFva{OZ{cRO6xG@^few0Ih84!@=sDY$tb64~cb}1@-^BfKmQy!e>f`>u zy7gez%HzY;S-q70(T^NZLlJamX>l*NX)u5aI7k17i zKX&1%uP~l1%ze!lAMF|8WwyL!U$lQ?dA9xFR4It(q6LYcvIvTPJcTb-9fP-40WiAp z68-gH40`n*vIU72aJ#}6jg_B6=u=t9_#j6QB_F`fhB0R0rAYF(iF3X`48!;NoRdtx z81?Fmd2bT`FwMk(R;cUZt@>xU$@w@LA2`MQ_hvq={8ESJRaWGxdOJSo>BAyx4M;h) z9es!u%vtlBop;2Z{z}QkP5YFfx^X4i>`*4N76N#lYQgGKBQh8##jkR>!|{|>Bdxj* zmE6vx&@llL&jvDgLgh*4`{l4OCKD8#0(t6+>k0qQKjziB9pL??2QS;)z`b>rn0Up# zUU7~b4cpd)(^mHIwWf@-N$th3bha(>4{CzSjm!AuY%4R56FQk3(nBz5F>h4d(`H_fKUXd>_EG2g?}!6E0X=oC^usUf^|hHoRrEIIfl_ zL=|P9R6{T>v?F2LpyO1&YKz31m4m=k;3ukWa$D`Vx;di7Y)z$sX z+%i#yj*8E4#X}FD`N`vTKR?`T*@*e$!L(PY3J>TVA<8F@!{zBm`BRy4=qSm7QzfQU z9A>lstsP}GR)4^+K9ZcTxRklnVg}AaznQYqx4cprIbv(S7L<*X8>CBRiNX81>^XmV zB5=SCW1Hd_jl=<_*~y)Jo+V42bHa#3&rI0&SR2m-?*h~69>{wkO4eQ5M7*EhV)ZU$ zlc9^pVcVM!xU*+6VcJ$eW^)4jHbBC=)c0(~S?V8PcA*K@Z9N9c<{h>tr4EAeep&jv{vh7r@-I>Grm$z> zAR}8V0Cx>yJO zW@oA1fXGxqxWIK}YuxvuR`W%6^)3ULs`{B3D+mUYn)PH|>I4uJS&SA3EV(@lx62+Y z#k|YOY}rE{*x_W)oY|1a?%%lCHZx{DXq`8OVk1$;H0~Mf?A2iM{u9M}qQ9VZ(PQSd z-8anaJ&RMTL@}zpf=+2HYnWG<$lhB%0_Kn8QLR&iEqAG8w@mb8|C5|RZw02nk>~vUC?seNB$^1WUJIO zN!7SGb!XO+?};*$S-%4njmO~Sd>hhR@R#xbFPLu;o+;(*UEER5Yn91BC>0I*)r-J}{{R;u`Yd zbKGHQbLs$R9WCk;YQX!aVvgtd_t355EtKC1r%zi&Nlx`f@MgX+0hM7`Y;^_&%eBc5 zLth9tn@5MsG+Crqp<}QCtd|8d-gGwzTV8<935$q+LY!@euQ^OV_ZCuLE`^+eV`M?z za$*#4i+KIKhGt{3c6+|8CN<02;5p~Be3s)x!~5Uk4%Z<(FR`Bd>B_*p_WevxmIcjx z{t(m~j7gN!epYq$9w-s5rz2-~;G(4r`&0^vo^lQoIHV6_cX+mnTMFozIls_+G><+} zSwMWgEuyc6(^*q zgRl*;v9r^?Lvg;wAK1%Rf)d-CaJsgc-U#G8^K&?7H(wnqeq_<^#(Llf#lTXdZV(xG z2?mG#>3G&Gnmlxm)I_)7UDvgA(23&_k_23B<&N$%gxPwbad_JN5F75!WY=EFA|Y2d zFxmIdz})@YiOKQ9q+#L<{84O8Te?5-%biZ+OyyVnuJeh+$?^j8q2e;PpG}7H3V-sV zG>MJ5*oYF`j6jHFGK%B=Osb0*nL6NzDN80&(;d6%<6XWDVTm!YiR0$@6{wP3cpRn& zT9B(tR3T3wmSgR7gPUSIT`ql)nr-pL_)i7+^{g5BQ#hTnQ5VqlwJ~+@oJvKm^YMx$ zWz|2<2X3=YTi)wYyT}HV?R$ecLx;)jR$*$w%|*5A=8)Q)Y+Chw64~VTnD@xF7JhDT zr5jvEFt%BNe%s+rnmI<-bH4`8bHrtsuKa}*4Jkb5#`U0`haq@v1+&dXohm851-FOM zWR0H@nX9Ucl|=$XJbW6~#aw3NA{UdTq4qRi=LVJiy$7DW%I7VP)?*BOzfec>GK@Oc zOs+2UBXi;tK_I&V<`>7X3)LIRDNhA5BVVjhz~mb&&|3^$F9#dmYUHBu{tEoha4REj z#?rS}-jKq7ujtB=45+jZMuClDWKr=5Un~3@SiL<*E8ho^rc;viK-xoOPe_o>8eAT= zE0q|9Um|bRufbxE3b5n$OhjP|sw#iMpk?|rKqQuE8ZQDg*B~J=KA`oO4@Wd+6S=3G zsrPg}(yEusq((;*?dz+_E$(@+@7Gh@6km&(*JbG8d)%FVS~?jxCd*}6?ZD%=7;*S0 zL!H#NlC?Kw$Rp`%@VjvYf0>jY7lYxC7Z@|psvW=d3 z=2T^_{)!gI@$-Ff?prodJ<|n7Hv7>mDj2W3{((0lZy+n73M%66@%rp} zxFqQse4n!lKK*S(g$oBjf%EJPy=3r*iv-n){Q{aMcfjvt0r0k)gU8z92C13Zuz5`` z-V&=ub#8azR*g{+na-%xSVSHRCnAu=^uP*;#l+Lg^bVNCRU0& z>u+t8ARbdZsG(s$`hUw zfX8#39%%u*U#2{b>SEF~YbH!?{SR-Pp96kMsaT#-%oGetkq5;_%<@aKsF$ZGY`5rT zHP-7APcvVpMSd-gS?}kEWp}{!8YLoojL@iTJNiWVB3h?)!25SmtmYFd6q4a)D&flJEnplnNn&BJbG+g6-&O%414)Jm1xvuD~7@X7H9 zVy}rJ_H*&W1mT9f%rlVLlm)!11f0}152_Z5k)P5+pxJLqG^P*owxkX5G;b%s&MB^7 zbnOBwRk;OhwG@b^Z79ytTL6x#!Q^IzByoM=2fyDXp~kv;+&jw#a@LB|OFO*SweyNt z_xe%HZBAqBx~7o*b26a+l{KqW`JU~NkwlA0e0;F`Boi4aM9W-^`IA4&qIIe>eXEiQ zH*Y=1ZB~?h8eGU^)D6UAN;F~VPZf)`ZuffrdSPw$TIz`egdgVU9L z>6$Otvt5$9p8d(}xU_*>)aCd&TJi8Z>n-G;uwkDkyWrOABkV!T zeAXgPlwR*_X6Alv=Eo*>z|eYc^fQY`-=0o3b@Os;JFm&;ONbFG;Zk%I3n0c;rOc#| zba*=1oS0YZk^g3kV``Ht$86k23M>Sugu!mo{BSj%dSt|$Te*f9ui@^q9utXbGs3~} zZOp-)9WZ&~5fty%q~w=8{tI7EK6xgh_m~WEo+(Spt{Sr&zv|MEA%EKsLKuW{Oa^T$M58yd+T{hGmx=enG~ujtdEj?3)r zmbvVL8560nf;vjBTL9X>xm|Dg@`kdhbJ(L3tf6MhTVR}yu%DAMz-!qXJZ!rc+yD!W(LQvy%qz!&OEkga}nEPa~?n5J%-CVgvh;_Ie1Wf2DNV; z#5uN07~jG}RBYco|D`%9`ifKyB_u zsFV}H?ml%wvX8@_Ru)_~EP>nOnUHT_hI%Iq>HNq?V3)|f&yBUgg4%rCq%w&Ne^sUZ zx5Me{@@rsfp-MNpSz-V1V^9ry!C%ztj@y^^^7+#xh*8{J^j|xTZtGh_e0HzGqb^&B zUV0_As0Wh1i$}rZX+O-3t%tFD-dL3L5wBbtfZov*JQ&!A0zFHaY5`-i(k+?wTVhO| zI-WBczA~u!PYhpJDy6j=7j4}im{0#TAlc4m; zAa@R}WS2Q=)ABA6Qab-GJ2xerdE4a$cJcZc`K6mJ{xydlTJAxsH*1ojyNj6DhxF*G z-cpRJ(8vAv^%yJ zeCFLOenW0Qk0Tq_4MVQX8M2})m=-E)(^Iw-9-GIf>SMju0IPSc*f}Sc}L(CKBB6c=`#$Frrn6Q_xTfKlfi5SzDGt7vQ;XXPq z{2H2{;_hg+Jlw8&3;7&lniGJ~ODdU+h0SHgSLN;m!W1^c54ByV{j{yAwwMw4G)h@U82o9<0p+b4jr zivswo{UXzR&FGnP(zq-%9p2R25ZhK$VuG6Z!J~#ZQ#qU6b}$c*IOt*J&gqb8F`sr= zb9uCdbws>#AJzRZi89+t$q>g|yVQ_O%zvhX_Gl{lmrB{)`R+xI9sI#8Xr4*0ZkvWZ zB{ekr!#50gk;6u)%m#70|7hTd0{JQb8@}pZVc&M%qLvj6ygQuRVu|4b((x;sNxdsg zMSnW*Xa4cWcll9x<#GbH@K;eo=~z~10|zV;3B-QRvAFg40p{*uI~cydmK@+$vup{s zW01)qFL~9Va=QYB$SNA1lg(SC@{QT~DxM@*eIpwle~0*BC&=OSu(A&ikgGYqP^P(+ zuCzWwQ)5Cwkjpwz!O3LXHb<&{sF~euoJcLj5e);mXWqA0aIY>4oI-`@vt9GZ&P{6c z(6b1VYGp+_iz%KQ=KLXPZ7?sp7L_=@wV>PqTw|~b>Lo0hf*^02Rjg#&!Utc zdWezbZKL-?6VPYLF?8tMLqa-}@%{H;R-pV1BYgJ~7qPkn^W1tk4w?|7<$a0{*gj|7 zuHB*X@!WI#oH0-TeH8s-8cH&EB@k&@VcdRO3rb5lzQ(u>qm$bN=sbg6GiNVIHvVEX z*QrvWeRok}HpkA54Pb5r>XIujeo`B&TIxGFmK@3Hg|^EJ;oIjY^qj0Ko!q5I?&?_( zVsnQ$2R{R+s|xhr&kbZz`cbGbKTQYCJ;=GO!QB6C5t?mqBo|+rGcRZ`q$I@CIUg^P z9HT5$b!gzljw_Kr&GPuS{5R_49Dwd6F4VV6&@MgQp5yU-ViWwD$(isZ`p;++`F7?B zu@8#HH9djk{E<8=^Bl+zwN%@EN99oZZzK^O9fttLBiL^*#odpW;^cpIWXvvzYLj_H z_d*ZG`1z2}ldH&&CRytEJb*c{@&l~?a}PZZe88Kxv>;bfoYvb5!mmPc$eZFvzeoK? zp0I0RwzV20wBN_3dtaf$trWyJjPn0ow559^=CNW0vUIQGd1n7UVXnWt4Xz2zA}+xq z^dGrMMAA!a|30e2DCbsqJLeJG`gkkzhI7g~&EE^ED{^qx&r4Y3bOUECus{-e8!avS zn5bvhz<;0<1fx3H$N@_-#bYj>oo~omUirwd<)%>YAW1r}nDM-}sN!oOEwbGJ@tDwF z*pco4X1h;g_#}P&b?rXfj&|YA2$f}yUtRzMYB6+H)hr^rp__ME%?@aR1{b%bICu4O zcJ-9WaMrhc)7cG)xoEkj8BfnB z!NKl)Fg;{}A^U~c(6UrKyULwZXFq2J&QHYLm*f1TP>ANNcy_~Xs<5=&c%(H<4)u=Dv*&U zv*^_dYj(*&Q6_tx1}yx}$FkP*H2#kn8vebA5@}J4;$tydwdVm7_p}0Li&yayWggE6N)7#~a|MwocBsoQC~Z zi}-!FqF`yy6w>nA0fs)D#RbAEnZUdsY{1O<(0f#!Tu68VZmvr7tVsl#|L);C*wu61 z_GRp;qndQ|7!R+12?URozhSJYLRZIoj6@Ah1PEkWPjI`u-{8*v9Jda)S?Z$vTV%oO4r-UXL3C(~b|MI38o0LEQ*p+Hd|W0^jO zU+LA3NhVe}TfC9fKG=)}TYlk`Yp!%hd?Z=?>jGx!CE}`o(Y87sMqGEJ4_+S|1&2w$ z@zAkdSY@3D|7l!=vfJD&JWQ0Bt8zVA>9yob&JKuB_y&R#Yp_eOhxxmN+Ybz@KvQ)V zbLHzk_QxM?#%xJZW65r2#B4FSzucPlNNg>BO}=XDUEYDS#^%Fil`a%b_rfQ=QT*e1 zFWKjMzW6jihnt7H!-qfL*^MG@7?mYSzK43VVgV&Ef0aCavgIAFj{k}8M>9BHurY6b z7awOYHek?HgDRJ^7<@;Bo{WCV^wE60c(|5#c9RHc|MwRP8~gBhi43t&bR!Y3c<7?p z4bP^If=|q5w5|{!y(_#)w*Cg@gI^fN?rw%fA{o3vhX&Yat3nkwDMM&P66?Pl;o2P& z`r^a{l+{werhUOUbDA#oNHAkY)<%=18pXEfsuf7|@$K+Mz!!veS#yl&E6m<|y?A5W zz-(#tEQZlngg2o_;g!vFoUJ;UmIetDqXY%;x>N);OH9b>pEKE@HHM@~I*&<};`aZa z?t;0=O_-QtMEzg+vWBX1q`$+*`FMaUg*NtoYW#QxT= z!jS(;$m4GzkmRI-k=GYM!KeuRF>@JNsNsPLw>D9k2cq+UdWbxh#k^nsN{G)hDxMTqk;T@@>YzF$wHPR^naZA{ZSmgFit6Y-^Mz z=bxX$pzwfD32aF|gMOXU#tdrg5U|e;*{M>@*E(>vJ8}TkWBe zX`T?Y>nf!F&(L}JbM=35+}=_4D641?B^jT4-byJIl~Vd8Ewqg2TNJ76gi0hMq9Kt8 zS)Y5}B$Y}?(J)d-iI9dO^}GLp2R`?6&pEHx^C?%tTz53U6NXD6V?`cYx2%+XWn+h3 z*AO&6Z3El6EAY8)0tETwF;9QbBq!`|Vo-=bVJ)=rRm(%L*;33zo6AuJ9D*L{nLMrd zYjE{hBs&;>i}BF&W;FNP($ycvSg#kKaKd*Hm5zVToIb+mJR+^g6_L5TwGTUkh?AgO zlhK%+N^Dc#pvzn-qHOz|dF(DkjwI^=`>Gh60#n$F>rC*mlQ`w<(j+uy2emG#z@{^i zkhofmI2VetH?{7tH9_B*Taza-E_n*9!wFU5n%~dtUhx8X7fwTKqz-J8(4vki%VA*e zC@UT%M@FO1!t9xiF#q*ZTyQ|1cJ+H>>f=rDRoNbPnw-GJ1BX!X@G$f`m|)XoZQS!< z9N#9%ksu?^W%#cL=gK}P*L#)&$6zv$sT-i(U=S8MNYXzX>*jxgPqEEQ9QxP32RZd3 z_QRw@L_|=4%=)H7PApsnKejg!p@7w7oykdh>-P%G8h@(aD_I^5S z+a1eq*f_*oEEA+1kJh5KemHtHmyw0TFJb9U1F9|TPI5z3%Jpv;k*KWAVD5E-yu7rE zmS5RLCr!7d1uu8ePd+X*LRFSy57k3+ZXI14cAQOgQ3N-!40_vZH+dE~7a|wrFx4yG zk{|nba6Q&=qHVC5Zu86l{xIUlk2kQ&aTMYkT2Q(=ihg%F3f*5bU{-`P1O)s?b+_bI z+%;99i2;A0_Hh{5*m;_s=kgXNx2_SB<%{T10R{TG-hf8Vpvyy_|`uC^m{8jpfw*%{iiDV5CqDF7Q zK`cbI=(oQTo57p7Fgti`i9R)-Ou3~$(i(;vLi{We$O^Vt{~3y*HDkUW_as*8+??=qT2VL zV{J?XgzGDk>cJTLqfd**+NV)3`)KlfR|59%Ltg)(tgkB}`f}rtE|-hD zT||gqcOQ1|IK%2n>}Q{UdVNCP1mb=U= z>DtqAui5mC?<>Ntct8e@tC6CD7N%geCh62Kf(_~2D4KhLdL0!frf=4enGN-%U-<(( zi066>?t4l9_P6xK$0KBk$8{Qj4)7_xn04P5j2bddDBt)48qTOu>6Pb5(ivrXv*#j8 zOB9eCqe#@rf1=HQyhsC;<`Yhk|;OF6b?4Gz`0|BBsRYhW+@C_Js`V^eDv51o;SL1rEU&eV`GLT4vQ(7bb)6o zp9j)kJz>B0Mj~|I0<#-N;l;Npuw>_Y*3zSZp|us3Et8``Rk#yx%a(w2+$QwX0cvaY z68D9^#XEmb;(z+yL^&{({r+M*$Gu7i6^#lge*T_~AVa)ymufhE_6*KB`x9Sh4dIkm z_pzm<6SRjTY0T~x6nibf%{~Wl=a4ssroCsnlEul3EW_smiob&JlaQ6K?E23)TK9oCnVnSNp2L`m8b>Uz3cx;yM3q;6JwT;4K{YsAjes z%M)iwTUY{WSR<9f%s#XTlQ5yA z48d8qC^YLS!ushPCR<`J5&bp7gsc#z-(MQS^oReL9i_gEng3kUX2XMLoU?gB zz9c;m4XAk5AL@i+D{9{=(RrCx%!-o-*{fnaA{-q?Z(hBFc13gP*C%6mbJ=ycs_=@n zyJ^omHa(KwxM~ZsW!$d#svi4nA{h6H3Zsb4G^SG$ zvsz02vhGa8^AlVz#Rl&dCE_Ldm0V`N3brK_GYuE^!Tit0s5A z_#*f|{y)4@)dVXLxB%7v2sV>R&XB$t2Jv80C1`8>0d zJowdE!n2xK0P!0L9I(x2iGDUYoKyvK`gG~e;%Ri*^B0i!_$U@}?4RDh?&RKqY3%)Q zL2@uN8oJ*~(w~ZT6$NF5@SNkRZD|l8GUkfl634k4i-tgarZ?Yafje_+juSPCO@v{7 zDib?+jn}mB3!A_CI&*8A1PRR3B6nIZR7|N*Aj1btP_r$cnQuRXnP<;AaK45>x>_FY zjc!9XJp=r6`vO+<9psf<;@CQCC*YUveat#lg0hb`X2`-S2gzoTQZFC?a|AtO@^Kp<}~%gA-WOU^O%y;YRVebt64Mz6tX z!FM2WVkElS6X&;o<2R?}RxAh*p)kb(hIgSptUx@Mr4;&# z9mn9N$c&W;&nEm^;(x1np-G?>173O?ziY=J-qI6Yg4X%jE-*uFgW zSll^`H91Uk7Ougqot{ibyDofsa2h-CBRI=$q?VRPm<=^k>9+!B$k=U$Lv!X5|HEU< zh1nliu@ge%_(xfqBV@|oFc!<3V$cIh#wl3aQHM@$D#U!}8}QTlQ{K1hF>0!{v&(mi zQ~!g(ctmp@`n=wYL0X)5cxofG_bY%{S`=e@$${~F7YsivCYbk;S;WnU`ur=FmGPx%eZOE0{wJn-yuz1BN;&_#;1YEvdVZ$)pFl z!;8xbm<|s32Xe4|K^JUZnZqs;^g{>hx!4p7%(m^`w6p&J1mYdow5y7pwWkr{x=Vo8 z8d2ZcA$0es#!@{WJhwp!uXjyjDxy|nDE$W4H*SVo!pSK2%$N?$nNRF=F2bEUSGs0h z1kCz21m5Zutcmq?9P2wo@F<5pD(1L#99rzxn_f77*d1~mcYFFylAl#kr1WA1>e=&BpYHi8!5gB8Y6NkHGWel=YAx=wZzDOl`WjoBKWz z;QSRGZO_n{;FP@Y#Qt~K9E`}2)RjKL^we_KogM0;>o=zlc%-2lA2u@CmiEvD^}bK#ZD z*2*JV!=%vrGiIzlLv1?x=-q)3TpOhdJ9R2B=tdUXwQdktV>8TVM)=R`c969{2f#}y ziG2C^0QmRHQMF%z_Ml+ll~t);-Yc>uyOH?GhLJ|eZ_K7~Ws-3t0-n5_ zMgu!4__|Ziz#p!2`nG5TUhnINHI@Nzp>H`|u;VcC$#Bi zl3x71lf$8{$sfON4hKoj(O|_I62%cCVk_4~B%a+Raohe{K725Rlqe|^Pwiv0(IbjR zUkfK!W*C!yJ1oifM>=%$wj-T+*@{kFxXxdw|R8!Te#ClFAkDVZMKxCKF1GcZjjc?BStOB;J$7i z727U=i2^6Fy@Jb;=G|d=lS^?)nF0v@oBbo^f1n^{fcv3z{wI@{D9m+C8`(fu z;`x%SPE2R-?>C{JPFNF>byj4pfGZ4b6(DdQ#$Nc>G_i*d|Uk3uvvT1Ss~I@8z*WZm;Fl4X(Nq^jDB zT;#1Hf!B87N5?)WOf!XZzXR#R#7hJ|C6HOKw1_^R4{Cq8XVcnFj8(crNB;MkJXqXF z?+0>xQ^t%=I<=4vjIZXHkZZ}c@#T0h`U6uK5k{+8g6YokOAsHU0Baheh?-~yQB0}F zDgjRtFFs1=F8j(Ko~8|7VqWvNJFF+|QExD8%Lwy&jVLsQOT+mq3B($A(NhY4ETy@9 z(E{Zt5^GaK?9R_5(=`s`{0S4{b1;hLh-u>TJ$+ypY(qAsCZM~6C0S@>M$fL0Bm1S} z*yn?z75y#tw8q2(KGg`4H3Nmb&9(Eei46h`!&gL#uDsK>hj&rei(# zJ@`+M?4Qwqh4J0+Gh+%)ceW*>_d>8a(UrWsF9+l63b4}CiKf5(fd=-&_hS|4L!*_&YYwZ30a9?P5N6M?<38DCR1xMCl7Q&^gqP5g(7D`)w91U-zWW#RQ8y8Ji~wyt zDu*6({$jOpCo8=%6wWDg-5I|UM!&iYKdp1M(Ll?OSzR|!iJEWP-4AkC${$wYXUEz#d?sUMChlO1Cct4eq zy@!WgyYL}D5&y_fCKb^wILp!<2ScYay|GVm_Ocq-Ix-H^Run^Ub_Dy&wHYq_Sq}bZ zMp4s=^Xr{+fsOx#fJVX;=r3JJ!*y;meoBL=p?!-vvEv;?MXtx@|1x0T_lvBp%^Ftt z9nWZQ6V=$s%8teG9h2f3zz%zmC<21GMs{7~CXFJ#OuB@C*d4>y! z1UE}OB2w__MhslOWDfB%o47s&kCr~WiE_@KyziGsc=;t4VAw$)h5NojiSj}^f2$bN zx9~cnKeDd8<%~PBTh5@pS3iXR>cyv{r7$C;nDGr-iwU!O(KW9NcRy1irIKZ!zA%IT zr$h~Go>pMDgDcZAYzpD)dT_Ta*SFM?V4V_-7%lso&~@+_w~IPS^S?gk?|h|>#?f<7 zAd`=$KO2%sktT@!v$6Bf07K{)|E^L!m_GdkZ3iyF=MUHMzJfga-`3+G@y`eD>OEw? z*6x7+{v2Zymfs=0W6PZMN8JIo2x(QsHwS@zpvx zS{4+5UyB^^WZ5GY-c7^f>v>eD3aYO6M8QS1%zrW^@FnOnEKm(2TLc-RRiA;8abcjE z^$*Sq??B1jCXmD3oKj}3CG&zg4&1O6oOe52J~>v6q;K4ba?>*z{-WQ|%;)&gMq!{k zG#x)4^J5R*7N?_k3)u@MvY2{Y5;V2l_+nOzVcxd_(D*GxOb$y^Kg~S0M^1_N_>Tq? z7GO{9`|}}3=`!5UxWe9gm4?;t&4}L>Z{~K66d6zF@?T2xsF3jxsN5N69$bjR$M?Th zgnxbo61}3VJ~xA?YXZ4{c`n^<&&T&P2!{(~+4CFyh-*VXO8ID$UBhSLbr1{3bEgpF zHVbB7Ng;~(t|ZN~uahL<802|;0M^i(n5{uf9hc<#qXuN-cLm~&n<)3|2e}>(V7({U zyw2BfHt;eYF+YR}-7~P;GYD3l_=`iGh%(1~z-`#Zl6OU!=y2Js+x_d{bV&uDyoa|N4FHSj&yV`_k z)9&R^`}`ktD{sdA?RIpE`au*{`N|~wFUA-=$v1D2rjN(wa{aAK;MW*T@~bJ1W}m}< zO#)C_eh5~3J+u^s=lH2|207M$8n5qv#Vj~(N%5y2%~^g1>^q&HabX6$9Ew5t?Dg=p zF@=|HmjuP-8SHvtA-r|xJsYZg7C#@hoh zyl^=O!F%8GB%3zSA1l8=v9ls|o5X$J87sm331t%YdK;LOO5>Vd1Bld{&FA}#qnv{r z9p*SJf>JE2QJ9T8Jf1_^TcBI^a-W%`9bi0=z$S}yb6!gq65gvwcgm<@(7-dSo9_q9 zRv1)V*mn=>QYdR~l)(60TFHdVo6;wV7BuXl5IG^Oj#^JEQT9Lzmc0`pRZp(5*E~bu z{Ejf9d~%HOjM4+AI}~LyB-rvc8Imob2B}sq`ML~x;ZTZwmm{N`&a-uJ|~W}b_PQGS}tQQmx>~fL&;*PNLn}PIuV{}K?L59 z!RwVVoOVQ(cooJ&k5eb^7FkZdRR`m);xO7CE>128=+c|Q5wxqI8<#3s5nkRky433! zT`sFh6I`WOh4+L6PqV@3umL>X|AWL%t0H>?BFSZr5qvRkGfu7gj6c7$&a%#b44FO-yblVrA+^ zl;M6K#}9K3s4xTSyG)Pxy_hlUChUQ&1vA#G@BLv7)!3)n~q1TPSMqB z@pO{oR*3eupqEM=P{;TlicX@idPV_XXX*+%U-TDtx$sDnjXYk9%;Y#VrSy52EIsaH zfV(}+AvNBGo?W_xIxJpA2DIkT%9K~QcD^_HtNsTR%+0BB&=fl2P)*Z!?i%IRrXJE1PFqu*j$}0OT#{+Km z-#U;0vG z7BcbEq2bdR=8|YS8b$UIT|r&s$*rI}>&n1hxSA&4%pplhIizP>AZ*$#OC~#()4e{k zdHx4^q@ynyf9r>k2W6adthk;8P$mdCK?eglpu zn2`n6aYXdOHpb-0ZZz(g0E26Uh76vrIQ}ser`Bk|^6MI;;l&CR3A;`r)y|=S@>N_v zi}Syi+v4@5vf%0*&)z!s6!I1vfnVKj><>F7bpHN={kvyA4i|?L)Y}Ag3cJX;JY?54 z8<8QO3HHl=KHU7-%w|8T<(hoCkP*vqIkNupia0LOvTfXsc-ky(exFW6MD*z5>^yuX zFNJR1)5)$?l~}jq7R0V9#G=?N&KYt8Z=2o5)pzA9hvU^T;#2?_OsI3t?il>2y#sx} z1j3NhC;VZkNS7{XVm+mfV1U>*JhA>1KHC=vTg5YBu)W+;FKHQyIISmgi=Fs${5gk^ zl@o>wx+G`2(F zJa;Pl<~APhodMo=)nKg95j$jyAm9BoSj6@6#1}0h2Mp8L%Re3H0r>&E7spT+*&J9l z{{!r_RG@Ztmq8yO zNqyB-Eap--3fb3)fw?MPU+hCdw+PYZ;Y5s&ab!(6Z{_Z}3RG4-8zfV7Fohjry4{tD zs>4}qtS3tb3W{ ztVc}e&0IKlbrBsXUWUg0*YU&}N#gDMkpF4C5F>YR-&+@s({OIr5FvMo_3h)M)8uJ1 zMw8F+m;#s_lc{_SU32*6djNcP)?ubt4Q75YVL!c?Oq5?Y@-)Q+z$-qC89uH=Pu?rw z#q_>`+xE$LcwH3S+--o98fW5vYTCr3I0zSizfA`@He}8}4O+OZm2Z1$9{X+^*NLg< zLE}0Gm%g4%!u_OhmFjfzH^ZF-&pv|3CLZJ2)8XWwF}Jg~sIllda}X|A3z9uY^=Xw_ zC@D>S!A>rIh}WuW@LttvsF4=uI{%lM+gHgybWn#CVDvV<`bdc(Buxq|g3 ztJvuDm$2!7ci=&d0nIlBjQNWJ_82i|x#w|8bq>dLABL0W z*I`iS1TVErf(VG|GZzjvGW+Lp-GVEB(8A~xxw&b%9!fq%W%gUeUj7c2}0k+$+uqzA#sxwaY_g!?bQ-weICc)9=iq`^(^tN zuQ74*cnz~&Hh{aj5YaF4wv0Rw4@Xq*F-fOQDco5Mca{`0Zl*~vc551r6^qjYPFL~C zmPZ)yHU~d^@t0ZID*T@o7JJ>2r+W z_En+ftB6?NJw`BNh%w8#g!Y_^v|Yi5I9TY?BVX;v%YP@~x9}9=T_z6?l{diu?#`tx zHSyr_L5-}O%jIbjZJ_UKEZnt?0b92Uv=cCas;JH6^41Hu?#xw2GftBHFdD&E&y2~< zk`C0by$QqGYV>{R0Q_CYNAYH7o_()A$+COPK6@-h-WRE&{?!Gje}4;pS$qf#ls++M zzVP@LWhRjg8Y4LQ-9k3?0O!ZknoflulrvEl8^N!^3pG|Rz+}xfcoVe(-!)C8p)d>! zXI)|SPVg~oq8txNQ+z%mOU7<5#q^=?tf>Aqypyg*3`;ZFNg6kJsuhvAwd551{m3yx zubtzYdNiO+(m9MUoq#og>)8DZPGM&8TvT)6SctBfU^9OX$us%G91YupxjIKc$GjXB z8g@b1>|U(4*QW|=MtI+75c6d$67Bq^lQSJtm{*>5be6yXD%4dn#si_WzS0sk=j{Q9 z3SkJfUkTa=G9c>jCwBFL1GwiP*UP(_1cI&{M{gcsjs$S;LF*3lg>OCqt@L{+Ui*m| z@w){Q>Z4G+HI^Q3y@+95dSrTuB%OI|D(ihI4o!|tViT7pGV4y5($9AR4SmGXievWa zwf}&qe;!b3p@x0MYV?`J1=43d7ruXfjq&pWK{##}YqfhZnejas?+*#FiuG$a29+Z5 zsL?0z@D%@Y!Va1Q(XjV9qRWScbWHRv?`6pikhY3P<+ft3Q`*GFNLH1-+N6R@$`^w3 zwphIT?*UY}g|ZPLgJAkspDGs(vd(fU@VDQe`QvOt_Dy``I!8BeHrKd2x9aGXWVW{z{Pi<2nqEX(#Eb z_j5WiJP_}l9Zus5SQ#Bmu7k{0T|zf4 zd4`|bvM9gUgUtJGS@GS4%lz_{iHDIC8@bIAK5Tx4`LkX!9~vIAvnwU7WI&$G3EL0N zWknb~!y81b=TvCMrGV*tA#$G)rs-nd`0`Q(&%Z>9k@^DEU=io5U6l%Ax1LbDsumau z)Q6f*ZuiR+lM&;0@TzAirS63!Zsq`4wdWYfJlVz9QSZbD+Tr+AOB2N_waGp6Rd9Ir zICYsjjeOJ$r2g3#ab^mSKCdo5Ozq$slHZYX`d=QHk< z-h%sYQ~YgegB}gRxM$Zx2srQr)!jYVxZy-H>*zJhgpDF-H`+~Js83=OHky;_AFokJ zB#AsXZG&;+XKZ7FAih1ag0$Ahk#BP{pya_WlKtlu+qI?}H%slHm!51OJ{HEXxKkIG zl>A5j9{qySC;vxPwn_3gmfFxT%|{s5qDqIS3(`HB>g=00g6xT*WU_uOADl}fsnwAH ze6hZe+0ki4om)7+&8u_ZqPm6K-3ME5By)9J!_ZaL3GTjf2 z;#=76yoN60dd7>|mB{nL5dPz{yDaXtHq*M<0o3c`MRMj@7@5k=8affv$Q!k%_==fA z@|P=;{|0*K2Mq<%t{qM4-OrI6|7VQrSUX-HeZ~YuWYJC=e^T9_N3ECeiM87TYO`S{ z4Gl|#nFkKSuPv$6)L4s*zE(ifKRWcK+BNb*={P-gG>p)cG~(-GK-T*$A^Sgd(hr+- zX`N#OV1p?$x#1)U{_za7rOq<<&ij*5j)(4cdl3;fI!cQSkD}MqE*No{O7w%5kbSxJ z><#nhSUPzPiQ7H}S#2OV>mjebs?Q#lV8Jzh@)UpwR0{ENh`VhY$#dI&l<-(aVP z1>3!+9fGGVB%fz2$Bx&ZneFT6QH^DFD16igQt}ExRK}WAT=b)jQ$4|0&l`Gw=40e+ z4|q`Qi<qqtW325p7rOR z)!G?MmZ<=IRQQAM9jw6RmonsfO{Hyydhl7f3x>_qsAA46_Vsqo`!`pJp4M53ZyROV zO|fraQ;`654UuIaY5;%8QfPU;2g=?xGpcEdm3M#JQM-{3ke{{?-ef2{2>IhdWoIgmJZ!8_BJ@P%Vq{ct{o<=OT4 zY(+dNtBHgtH#aW7S;xGKFJ*2;dlNR%AMVQBv^4YEf|)zgc_;llK_g#*#+#MF^+~$; zOzH_7kGFul&Cgkx26y**FyWl*{Jrd70V|SxICCJ{byiEdUg}o zk!VfZht=6lN}o~MOAw8ZOOU(Ug~>DjUbeD{2m5bSG5@nLB~Qmq=#@9?@ypxQa6Y3A zvh7>hu^SiYydqIzcJ&UEyi}1lZgGnF@_QPoarFXOP3|+TCWM8#Uf?pMg4HGaNSb{u z+iqY2bxD`V;*gKfl&sAta#^uV-*fC8-vn%zRHg^5L|Li4A}AH+IuX9BNRz-BvNB!R z(qiT~DxFdzX~&}>sz#78QC25SRekV$yC~h)&w!bW5{)gMP39$L;QfYk?CzG=Jn`Tg z(1fz&Z%{Yt+}5G1Eyd}3laox3;0WB^7>A6pBTq~IvNy5}Zv ztN$Ek56_C;+vN&x1n)pMaJTWUnUr%)L!hc2kz-#lcy)AfcgEoI) zW)y54-hw`#Z^Pdwp@x}gs+l+@0yxM&3D$L0~``O@U= zu>%m7^Oo@uO=I_zxI)562RN+^;5^m$;F4qm4BKCaryC9Eb@6;SFEW#VK%yB({M|5O z2}8eIog-VvQ$a~|GH8YThLFT7Ah#hK3k21u`Jope&b@EHCq`I1a|Jo&Qw5*zI)cfV z6TNioF8GZ9W}i$+hep|{#Cv5Ax>`t*At}z0I^+bZwuZPsZW%Xo%2V&F8;BRzK|XG{ z1dq5YVW}PBu{T#C`?fvlH|KnLB{HPKxe~4}<#KMg1o}Q#Bh9K{5AA!v>{kpXJ5P>r z_oXew>e~!ZKC%E+uFRvgx#mpxEFsb?;ZL! zOS%DO4DDlFg0kQi{|zJlUmF{@!-L&b*nshW{aKC61)w$d1N4KOd1th^ncVLKM2=4I z{I&)Vwa8#}*YC%*D=o0e!GheIbrXA2I3BWLEfb&6$nT80jb?)>z}5=k$i)G;(|ZSN z(mXp^SNK%5o?fd`gn`*g>_OmII!kM@rFERCa&5$h-csgZd^z^bi@^^i zPg(EZVz_hmeQ->#!oE~1I`TLecldr{+%3Pc%4*Ybf1EZMUZq6`PYyC`$LC?H${5>W z6$Rhc+`*r+0%+zqAI{F=T&t0T?9z<~}NxKM@l~>sBGn3%$m&g1g_BOcM5wX)sg*rP<=5q6k*ymYdRKQ^whG&>U`hj1N zQXPg5evQG~cuA-|(}2I!l!?kQ%1l+3BQ>+?F)U0IR*9W}`trYJuh)C91wsO>uWSI- zjXe!nf4*b=R5#1ziXU*}pa?0pD8r)jWB9`DE~A*U1tWiyz`iSI*jQ^1X5VNlE>lfM z*KN*BuEj+h*f@zYZYt>bpcT$=eBqv*hQzC?0CQ`$W4sVI$Ir8a@1mcW7Zv?j(Ygl5 zH6z)&tEsSTZ9Gc7Fs0p}3*fNhY50<6N*5lQfj{@IfGx=bu-1A8DRKJ=m5!B&0^S5V z8<@Tt1(ta+kBrv1z^q48{4_DrQB(+H+B0a3i)9Me-_03VOU+Lp~WE z+fN&c?*1# zpNkHG|2QW67Sc0#7VfK-Ld-{9>KzIse)?vpUviVQA3Xt{Bjs>+@DCI6{TAaEr$WZd z>`2(U+oUL>fM&J*57i|&cY%y5#i?Jh8kgZa%NTO!a~Dl`d>khC)UvaS7UFM(btJ@H zi>O3M&;~1QD_PP(zPKBK$n2MRGjt7qqrNhoY-LBs$7@Je`qi;PO=(wc{RQ z>Ny_f7@OzdqTfqON`)bGZ)OkfhX zog0RVD9+2~8pbRemmsP~CK2~4Jsb{-qJcK1xcHvk-51F&t8yq}$QNNe{_%-1V`}wUAHJ=m+DSMM) z)s3b2r&a?bnylzNqdQogEK7DjQKacgvuMQ1ZhpUp9OBS+qJnRWPywuFgYZRf`i?7l>i=$|Jzd22l3@2RVnk={+3IFtk$W_x}aLP6&=FbdB z$B$5$Rd5%5uFs*S1I9e?^nZzUq6WOeHymm(|G-@tp68c22Yji5{(#fTRt3rw0hZzw4 z*NNCS{|AF3)>Jm>20!WJ1Nx;~lVtjYQ}-+{vhmwosyb~uj*wQUgxuoI2St7k9l(p*y(i8fI>Y81_=|NSz4|9r`gM$&|)uda* z>jUSBKPJEgmrCNXS_RS>mPl=Pt|gw%s?^uLn$1qPC)3uQMXB`#%m*%qDt^F}u8onv z_9Z<2)eV*W2-}DFWMcys_++y;je?0?=NiVXuMM2eG@&ayjaj&zayzp$5M4K$D#yr^ z`l#(Rotq&)vSu$YT|gY13J@p;?}EYVNbLpTnRLV{>mf3SlCyz-VlQd zuDdrrN0iR;FJzqpREeePA-c2iGe(SZ+3H#;s^3%23i!@P0g*p&P_3DBdToWAUvb#w zc^&?1u1B3M8!*6Ks`B~v?XiSc`vUW>h3G zt~EMjB*w_Kq-0XGQUCtPr^;u#jG@Hs>;0vDh{@n2jP+aei|qbh+HX zvfm%z>$FF3hcSl@4>sWZcLG$dUWnFyW04;sL~r;@lYGS#nE0weZ6lpvfBp~D2r0!Z zSv%4lB2CIAy)2`Y3UQj54vD?Hk=PlY!>O;1GF2C!L)OhuD7m>1G(T*knHvnjCI26z zX_CNLwaTMi_!qG8vLOGJPNG9^)X~*E95(IgV|Pb~knjE~bbXUD2KHu??YX|d*3ISV zjkMxbw_oh0qDPoK{snh??Su&rJ;s91hh52o%ptTQyJq}kkI%Nn;0aaozo}+0Q*SjZ zS$u%_J$wR-GE{Njv0zkjJ_LVTO31Fi4)l!u2Yj|#7aW&!J1EWteecgDJg+Z7ff2>L zYu77m-zGuK#COXFj|9ns%xHS=lRQqjznI={Jjar$!E9ocJ^n1c!X_opq?Nk0%(sPB z#PhubUAQt5@1MHC-bqvIxVz@^j%gaDFr`4SMJ5Qrt1?BtP%eWq2v;$M#M`_PWPZ`ns&Za&ORa+$fO^ zDbeyYYNHgaU6O|@hMwR6$J1$AB}=#DoX45_3~0`x#q_vX3154}2@XGzXKhxfkVhO_ zB@r?}A!7}*cCQ_YPntxIoCt@Oj*HBl_;Sdg2-6cHiPA(0>HE$(>pm<1DPc$a%FT){ zK@UOmk0u>|Axo@M2B0bF3;d~)p*AkUxF?LucGrerkWml*uxZD|>rRsaXWj-%7loiLc* z2anw+Ftt8{b3)gEeZ&ELS}_|}iL4~Ax92g%VY1{zcNL_m&S7Yu9Yly6Wcxb&*i0FD za-8(xrCldM`5F)ME7ZtAeIJ~6(;jau8OD3$D7!&=J?S6OLFsqXNm9!H$SpS)=DA55 zjv3_P=M*8%fiaFE%l^RlnpnsQZ^lFFex%^7CY~*kCg;oDVZBT>9P-$J&h=tYFBr?r zPJYe4I;sLXzGl?&VhMZ6M+X~LDUqMueB4ngLS@b_B`xoj*iBM=Xp7y7K4F}PD{c!v z-0?RIiTy$ce%I06XiGB<9-xWx5X7uqTV^EO(<8`&1(Y-ac@qBXe)T zB}a3{U5;}FKCFVAw-G3=_!M*`KcRe@3-m;XuvPB!$$c?pTJU59w@SuBX6IohT{@3DV#(!lhLnzA z$K4XxETs*0{Ts;jy+e3JXd_sDeFyQif$ZzG$G}L}kQet_kbYG@4!(> zWp4&FE}F#uUQ|!wImcUq;u~_2`<`zoI12+xSIB0eSG4Y01^f2B2(93}jhY`vn?F_^*S^O&1_9V`t($z6xc&Mj)p2fcyI@ny}!1WW|v&oOi8|%5^`$ z*03(7ut=B7;ulhj56`)uy&EPh^r_r%7I$;z_Ua2~(ot@v@w93{@3IVfFH;u}6a>;k zb5uxsn-wE4VNAUf9zv+zrpk3!FOx63Z0Ul>+`d!Kg>v7RL{XEFiwg}&>F24mFZdUF zRNX?Ri}PEZxk{+$Oi1-8Bmm=h z4@&GeQYUL39kHv)DIK!+2mSx0y&U= zkX(E41}D8-Z8=b_%dFwe$NL|H$p_h6@MNJ2La3TFgYG+dkGHIY>z+z-y8!Wa{Qht|-dtPDs4Y%L zOG^_H`gj3wM_NmRnYYP5+dmBd!!#1%eu%yu9Op95V$`fY5`rC^h~D%|aC+Yx!i$(; z>342`eG_;dJEJaRz|Sc9PkNZS?6{h3<$k{2-zrqf@I6za7*ADx36q6SHE`2=G2+i! z;cM?5IJ$+)OWN8I`L~9IU%Cr^A6iUj{4Jt`5;o-SfGA#Wk0$QiJxV$~gI&4i9_Ej8 zIrOk`6pZAu0i!br2fU`AT`Z`k%3)eByb3xLdw5&^m&>!YI)k~~=fQ4VkyZxnCk_`q znYK!6(2U?Zl^t7Xz>h7oKhKY3NvsFkgkAJ5uNO96e2=e}6cE+29uQsq0H?qtEMColv3`rBFJhjCq>AkWda#8g@O-+oX(KQdj zl-vI>`O#n7jBEG?{y_ zug&(d%GpPmysnE@)=E)LOxNMlsBAa^u`ndzcXR zHhS!ShTk_upp~2y?7iebzJ@&K^~^iXxGKiMTbBrU`RyoQC99b2(pt-2lJ8_Jt~lWK zMGT6WctN*@I;AmsbeXFg@V#!Mo}MP2nLdXkjZ2eF6OZuO*h`e>-f8pPBuS;U0gAq< z1?LLE%H{jQxO;dLX!5JsXU3rz8)C|&JbVb_S*2{uwX1BkpB2Nk8X?1f5xe!pA~?33 zWk+|X;=}SYyttJd@^Ubm`FY_lhBUcB2v?mt$Im2qc{4CUYViMt&cm;!KaAtrLtEN= z50%Wi=lP~6BQqjJQv6huLPU~M+CwCzL`oA4&3m42Au=l=D;bf9kSGy;=P$Ug*L~f4 z&a*!6_u3Z~yj8-P?Anq0aNWI*DgRi&tmNMWqdlV3Y|1hsxP1g~{rkXE3Je0N;0HGD!iC8wbkOh;00QRE!G8@mu{^(P>C!Bu1H3Pid@BbfmKq zCAb-k0)9Jm0vE3df=d!NK;(ld)2M0Lc(!&vTddmx;}1pfYHkT?8BHWHh0|eh)Q`U0 zI+KRwJ%^a3rEFs53euMK85%6KNR*2(EbNV99kqn;>B*H4S^pWOMRya8Jrg*WSpmE6 z8^?6Be#Opg5Teh64`Yz74XxY~kG(~v?AOQ`T-RlZdnHmhR-P6+!y}xGt7r2ASHz-S zfGrH{4FiXoTw8%UK_W4J&Ne5p0-ry&$I1I`X}e=A*&6=@%ZIaYjkYjJc|E{0RB8gZ zZyC7vat(Wd%cxHo31$YBq@il#5u9RH41;CP7;Zm-zMjNAzYk`hzp^0}d)LBN4t&J_ z66a9eRW)E+U{219*ul(mYY=xl$6Y&TkepTO*fS$`gJ;{3m``P&2VX!6BK?%mR4 zFom?*t>h2Bn#Vl)GLuFOHZY3x5Z^}7gZUE-^qEdQ#_thl4b+oapS6Mz4z;jOd^Hwd zI|%FNa+!Yz9rB`FpO%$Yvnj@(SpC)n_M(RXhzcA-pW7K&cxV*!V&7qe!DmR-tHh8H z6=L6XiJfL;P55E%4cV{Gf`7gaIWtF#BpnRqXL|^f(Y!IH{)7=E`m85a`!$J->?w{l zeH*US+rf$2m0%Wb4U!_mI5OoU!}r-q@`OrYf?ox5s_`_)nE$|AjwR?>VMjNF^3i&X z;~W2~W$j83jC~*3y=>_R^bFOFEA`mBonRQFg1eC zMDoTV_-P=AGQSql*tjlUNP!J=U^JW>f8mjwXl0_ZBM(cq8j>V0CoFir10}WRPCXp)qkGAt=gWVLwtFru;o>X|`ilb|%cyY?A# z^OYZ@H{W4~aT+!)d%VRB=qBJ>N=U9p5 zVwp_k7ESUX#hMO2H>XZ7A3|>3HHaP+A;ll6uw?o&;=UN5_1qyw`OHiRYTN}Ue1EZ1 z{L3&+)E=+Bk|Jwf=E8~A`&c|(iw^uIm?Kb5?bljzuKO6g;L;1vl$W#Wm-oXlzlTit zI(_&wpo%;8t3$I=Cfs~f#<~X7!~16fG-|B@v9*Y1aw@wa!XBAr8XQYc_X?^_9%irJ zpF@0wdeC8l4hZC#(c!F(=-nqkTm9yu?Xn-h+XGZ>dMEbKPB0DPGR#iCn9t?)*q?$N z`@4zNn(jnjfd)~%l#L(Q2r_f<7xK#{W9=DzcH!4JrqkyL>iG9Fn!Vw4`{FU!woaF3 zH&39ZMK+MJavJILzkuQ^PvVce(il-_2EF?@o~f-7cwBwYEQ~4xS1Vy&&#)=GsNg&L zR}W$N%_jcpfM*QW-vvPiNzB}nPVAJPPE>ib5Vj04xc=!N9=WNFXCIe8ljK!9R3lVyB$cN(lu%Z1vE07*Z+;-2ml{J?nJ$^^v?Wb(u zeN!R|NAj6>V+q7`yBLPWIsG!0^cS&ChxhTHzrV_^(Q={g3IABp#38J+ z6mNQ}9|EP~_H?B2C0y8H53Ypklj=WlGseA5+d^~5tEY*Se{~#VS012uO#(qs!;N?j z+L5)vT)o|X8nbtaV#M)MN>ythQq>YG+Y3q8J6+r$Xb4N=S9k=#gTOtB1}_fBvrI8 z1TUi(T!!-gMIs3*mLJZ;Awoy7(Pu1exGYr(`_z^$at)x|RvPw+i)|rt(s= z)WH8x3kZ31k%eC>QRd7Wh`2qG3|{R3;od*kw(l|T;g=A&$JLKypDH;MyNyf|$sx7N zoX9kDX|z3Qh=E#Pz{<*%`aW@`r)QgysQF(o&7&TIom+wTnh&l!xf%6r0nS$<#~cX0 z0k^GZv$q_8eF+@v>6#L$PTflWRW7jo)09XJ%{JnS+1B*b=>a_FHjO;%wItz>qsgAZ zF*tMf4T>tc;sYlkGI{+03bzIhOp!+e7T+q<1iP zejUH4ryrWv9ERcmJ-k&n8IIqmX6#?RY~21;9e?i12AwJ&2=bDl&ewXV!l*XsOu7UM zf}Syoo(*)WEg#1_iph(myNNf;dEQebi0psD4@sBvG`e<5DQjrJd8cKP_)m`1;L4K=$kd?g`1ffp`4ROU zBW51w9j$#$-2AzGN!WGrT0z%N@?abL-=S-ag2Y35K2)8S-SmVlaXoPNYX=zZPaqDT zR&(|J8P1DUPF}bEM|NuO;_7cp9B~q*#tCKQZ_E}f|96!&)77AIQ*Ob?w;8l{$cT2o zcn@17b?M23LWuP?CF#5KST7GnqOte|X38!miF{2Ou3L>47jb>@jos8jv4g#k;023r zN6>QLCh*;@(D-s;HnT?O4zu7)0Gk&$kqE4AVuj=NU{RPcc*hGf-T|NBe51PU8Gj>^ z5W~lEyD(f(E`aW;@^s$FEEJnW!LIE+({^_{`99Z#I?D)?!iGa#?3g&911Y^2l1#PsI#Ifi}81Cx}d9TOtyW#{=A=irg z!cEB*nNU#tA`IqlWt-mIT1c<_xWa1pa=Ag3B=EeTN^5O6epMDl>eAkr+|9W({OftD zGDGOh?G?Qxj^dM}4eUT1u(wC!4_53x-!}*)pNI5mKZeI=loR$ZxRw%)Z z6S2hfX$`0-dB6&O49t-q2Z2BNH1L)Ll@pjkh1OOuFUpG8x*T6jsC|Z$c6TwSq|9K? z=B32uN*jA9DHfG)uK<(%qGZH220kqaqlbly@ZW+#h&|oUWLPHBQ7<*h?^R(IXS89T zw+*=&FO8?)TN5?y24LhQuv9jj-D0qjH}JO$HMiYnd@45L0S$4kUy3C~Zts~eS%d?s z7x2tgSuED|V0HMB=on>>8>X!VZ}(ZuJ@F!TX0R%G9+ibHOb1R#y2~=BGdK?JFymR{ zNb+^0c!9xA^nuQDwAHf0o!suE{_Y)&e5ONp7%yQDT+@T*E8PAlcm!iF9c7mprQr|L zC6N3?jNEBm!u@9!@W_KK>XgVwvkA9wg^vL~o8Ut?sz$MeTVtVMXfE5O)(i&!ByBy? z4e5N{TuhJt!F&&pB6Ir;P|GtAjui0VhNC*Gqa#f9cXBg?UTJ5X`V z8dfY3K-R+xPFzmIy)(J~{;LVCGQN${Q_N{{WewTRYO~GnS$uWVf}Y}TgdaUshoUX7 zak$|;jO=*8%E(Nh4fE95(E$UvHY=2^=UBa|GNs)WJ6M3QVlsOq#tWGuO#hJQ5{JAHV3p`JubW+_g1KZg3apj*Wwn zyMTL#+-SV=1(X_3!QBs}fIU3S$`1NL6}yQzyK$4!Ge6kXy8|Io@iFT{WSY4= zl*jG_7+!G<`b^Up6VFX}RQeb)0Rv=w})7D-xt3*=0JG#MEd5?SN7rdcE)xM zL-c~~BAuOwTMMH(_oX3*4u|8~_Cu&C+6Z?Vg)wFo$J>f_2JfJizzL|)Z&4yY#dkRs zh^%59n1_wZr;JF!t|fF=k_sJ4{)pP5f6$~aoB32C1(_4i!-veHc;Jd48-MW^4p(p) zeEl035*~u}b$Jja-p|aN;KJQ!e#SI&UG|FLZTz(;9hThphg~wNxNQCmCdA-8L>a2E z`z<8soFsYrpKu%dbKXlV(>ja?|3+a1kHyU}_VT z)m%^YB)XTs=dL(ySiccVK55gIJ)V7+7y~awZs3UtoL`#FhPC11RQ9|S zxw~-*|IVr1WSMX|Chh10(?=1g8RmiwKQp1o_7bbUW(oC3T}#?5Ea;LfRoZ0{fZuAg z$=&}%sFFi6oAyN=!u0)MjhGZ%44Vwz*<$Pifw|z%eXjmvD@HR+o1R@z%%pqDLRG;W zqJB+-&{QEJp>-9G%1XiEyJA$)WsFIkG>0{eOQQ1aJe=Yw!YuwXxiLAK;kV9#$p z+?~@5lF@&0JTwDuPe0EeNjnR5Z}M=a4MWzxYep44W7rmR0`v;cVD8eJu;apG*1+}@ zk()RSFIMCcnT(CR$3`PWf13yCG9QOWhkrsC8%odavZ5mEi)m-l46-+02tRNv0`ul# zlpmJj?(HveeZDB~_>ZfgCm%+m%Qw>vQysCgEQBoH>(0t?j_0v)aa{8)4jZ_ga`LvX zlvSETBu8e@u&OQCeQp+6GqnZ7q}AZ5c`CC#VkXV{YzvuT-t_a6YqU*TfDyUxK^u0o z!mAU3*mNt9K8!ObH&<+G>iO+Lo&+AEK7mu2ZJMc6EM<`SB&16kioU}sj!`nVkYm)w zKEqh~Y>wTG7`7(^cc`2uc?Yk9Qnw`6(-;%yOhq#B(GpVZH-M!Ek^D;bHs0MgiEbTI zA;$)mQ2+PKsJ8|(dxzdapL{$P9Bjb1B^-yzaV_wZwvu0N?)>`mwv;#Uf~>l7n#gdM zn69_KGJXs4$)1v5?DG}joO8O8eRTXR6Zxo{^AgPf#>yQWmSix+{1N$JafyS)k#0Fr#BXp)o(DZVH>eV(i(uf7ug)1OjII& z65mTxQJuSa={7w`hC6z}apfOaHWvKf+6`SBnhu7Kagus1gX80M6Z*h9W{C+ zR`)ZkDpI8?a}UvlZw*0ndo!GMUrC%MMquD&McSVI5G5QAz(BMJ$@q~44ysWg(N@Sm zcrk`3>qa)FhSrnaOg}oh*rV{z9Q+t&0uzcY*=>HOAiH=X3iiz;87AB#X6z81vXq2G64 z?xyBDe7m%V7zgQ+rgsy`HIAFxrEN%DwAO=zf^gG<4|>Go^&awc;42$-J`Q?48`;>G zt{`l2i>^(0MS9jm&`-yK^7^Z=(TQ`(G%M5gr>;D?`xCMA%X2bMZwL#|ZlF!_5k$+$ zoK8%vC0icWk)$y*JWwu1q(;S>_F8?h6>6lq$jH2%f-@YD7_e_-WH;(no5B0Cj@E2mtkw6Gp{J*KQK*h!Fg4I zkmkejSabh?>qc|X>ry1;ZU=BqzcvxmnZzG?o5~*dTE|Qbh-CZcbACs!nVhSp5tk?x zLSFhP9?F}878)FXv8o0WHamg{`3rJJK5#|&8@fq)lf9@$vo$8e{E2Oil9Te#Ay1=e z=USjC8~DuHlVW7k0ULZ^^M!VHSE?Xs z8`_4!{X(>MECFitM!C6X0It`0#{A~)z4Q$p!DKEoE*X0oRo#}e`F1{#clb9SqGLVq(u<4RD- zc_V2rC9m*T0l7%ly>nQ57+o6SEryX3G(`AN9EK{6DCE`WdX2|3%O1ao9I64Lc`$kQtM{ zva=2-;Zolou=O3rBELkGYnx9>t3;`j=o}IiA5@Dx|t4 z1Oy+h;hCiB!Rm9>khd?FEe(;P2_*&OuD33p5$b1Z)M{Yy2T>f}V$L|YSWrQyPE1PY zZloj!@W#h}u-w)LM*o?xCM~L{a6AYf*DF%Rv76{4kj~oX&0(kSPhl)}UcSJ`1WQB} zxZhe7bN`hPN$H5e{ezLPQ|Trcrp)4Yv+v==q&c|%YZGgKN`jbH< zL}%YN;5Au7ioK7p;i0v>PwN0`HaX#(10f`?gUIaJ-EQHIxnj9PGDUY{p2E5We4mNf(F?ja_R9UwP?DlNO+7e}= zbg}}2osVF?$|HPWeV6S}tHZ(F0w4x*WYMYww)*8=w5!;LyxE*nyvq)fyElT&+w08! z{#0!LQvumA7qE%rQoDQUQ~QoM%w3!XS~uewXN`BUA~t_vbTA9$pY!N|496HbmW2B9 z=jp=FmF%6+0?3Y9hYNya@Wu>xFx{hz<*!Cjs$Z7w&{M>rWp7x!jwMVKS1)G#Hv>O# zJc-|2ChFO_Pt5+}Tde$xy4fl1i`bRD1K9FWgS6yXpcBV^ofb04Za0?){`WY10+Xof zmTCBD(@9*fu$xA!h@qCIHts8Ujq~C=aZaQe*|lvNDZP6EpOwgvw31$CpNT8!Q;osM zzFE+Idm5ARrxd!raarr2+iW895ubluNv4H((>c>M=|QeHIJMz9EWa#BR~64=V}jo@ zOaHFpZqIh$be|IDRQ_bxeCsOn!)GD7x0nI1Y!^NMcMZ-yzk#&etB3o88sw<^JXjmk zgqQL>&{*IZ{#9NL=390{<@)z5yEp}><*Jh9FLDtmxQ{<;1n69hOfQpaH9t z>HgL?;IK{tYb$>6ce$97N7EcJ_s&$Zw=56tsI0)zK+X%_qCo!cc?KEN>aqA!J9)aM z1qb@H?GDb>CTq*HaP_~VelfmC(@nmB_Ki%uBeaaH^ZLgId#93j^NtW< zt1GyE!!2g7^>G?2*vLqKS3q|+9U?jS5j|YvArF?)o;wEA>#H~oe<($pdzzto_Z~VT z-N#rQ(Z(Vv5mM*F%^=F9VRT|L`gQSvq^Q&D-gjvE<&U_;c@^z{Sr6s37FJ$Lr=9oH zK+G$)Y0R2W@{1p1+Xq={W9>*gb)$Jl7D|%TFKO`dh7mbjssR>Jkx)K#2lJ$dV2MjF z$}Q+5(fRRkVy^^Kn)wwRP7FY&(q+!^#yKP=t-_|6k?1hvJS#R&oJL&C<#qZ^rJ3G) z@PwQOVS7vIkas358%t(S%Bm6N&x7Pm-YoPCti)*9G;-2AkKCD31-}jrGM5j?qx6q7 zY?N+Brv_m>xLg43C*P#YX8~h2M-Tq9e9z=QcBeZ;Oh~OcS9@+SBO_jKnWNV8F!kXy zDi`5M_SM$mr|uGJyznJjetC-{7Wesg@E7aS@c_G2V&NVy3* zNWm~S53JK+HtrLmyVuzhBYymxR38y*-9hl0TWe9BIXM&$#{8qWR=!s2A8v zTqhDg1c}T3AbQN$j%t2*!gqO3I1XkpZ>`@cMq$rfqV~HGZ9YZO?U^4LyQA}=jAH?( z{;gt9H`OuOmZ41b#c}4sAvf}H|9TXUSBKGU(m@tE%f?{O=O~>Cx*DGaRbMxO+oh_AhYc%F**@P zM!9VC8GTO@dvgMN`R5LDB&Gwd3}2vSHj+dmM~AhkErh8hnM_yrOqk?(2rgE((2ePb ziTU6rdVjDHyAEHV>0b=l2>~oKFFK0khtHr}7T1uNTc;o^U=E%CpdEI7lYrxcugOuL zT|}qkC#GqLkiZwiRDb0K`e>&os;*fD_awVX=V~b;Vtba%iKSph4ii=&3}JK*h~Nj3&%v-vshx^RBeGot>}&SN=A@`cuzfzU3EYF`R(5LDeSv|Bh4T zgn#f=p$r!70L*tZrSo=16KPbStE!yP(J>SsKK{T4v`oeN+W^s}u2^1N0Oc1hqrc^M zR2OS!U0$lO!jtifiDF_&7Uf!vP5BkbwB= zmGtiYE9{2^H@dyyJySlR51uP3(V~4*`8r2-;HcFaZePYDy1j`!g_(J%Cq0Lr`>jiw zZ}h;8$mMju8pq)GZv^oG1Nh#mgyV+~^8ap7C(oj<;OnADcBS4eKn@GDDYQX*WiSK7FNZg zX?DkYExy=rFvNJ5fOj>^wv7 z?+}N$RXI4SmxH%0IOc!&Fy1s#VWNIsWBLA?5U*@QMl`|iCI02^kFKm+!Km%aquw5Kv9Vd5 zjRs4uC>~<%>6klrjWrHtM@~dWDi`e_hF}H-@#*egkc8k(CJ4n z$k+(524So5OvET(rJGMSWk#Y%t{q(?){Tav+sF^mcIMpcd-zO1mvq*3VDR_J;Ka@G zS{%#3`$;}-8*?HZvrO5o3x2SZzHI`HGf$c2pFTm%`fjKWGb0KdTk5t{1w?2zg6&I7 z(ChVqcMdXe+(H#bd@M1NyIIgP*-WM-sDhLKcg9s?4Cctr#+_1=;74x^z8LaAn3Il@ z+d}YZ7N9|+JloAV#QXL4p@Tp_`z8OrgffO+mm_n?VkF@80AXv8wF($_=E3b94BJ1u`2t9s&8YhxOZQNMk1_;mToQFe6vk zxbs7{hR)q^>PRlE@L$UKG`aBFjT*u5Q6j4#y&kpj9G=DLVvuj_gHC}sI1<8; z#)M=19jA-2-VEW}b``S1@f?ck8j|1?ZPIov4xZ&E;U&G}?4#KOu)lg5-MIS+lw@p$ zpIqO%SkZ`7xy#c9*^_a(`#NmZbc2XW2NZpAfh8A?vs*fsK%MV6GwkdM7yUQeB)CgJ zooO72c1=X#E4T5njWSv9SA%lO0vy+HJt~Ah$2Qdvc%Bo=W$HNJ`gtyY!(_s(YCb;s z?LhtBNZ_ZVm9Vgld(PjxfX@Ra!r4u=@G)%_gxtHroJ?9rr9wZzKW+z{JIRyC&`zw| z($29PqOnr;HeOQb#yx_!VeDuTh{s2B>=+gN&N-wnIP~F{7iX9x>y!NAlu6`|R0Si( z%^43@d$9*%>wz7&g2TR!*pU^A^P6-qw^$u%$Oxp%r^CTfTjZ~qL7TN(+30~t+BC5V z2ZjZR+bV88^D&l*X)R)n9>v0V+#!BO#w>a>NFNk#R7vY|>b&U9`K^(o+g}VZ0Fe&sD zUJ;p36K>YBSISH{|CLx_CpdaW=sR8VdAqp9mOU*i36==3;L|Ha|O}9e&vTgV*z9iE7Ie=7n@9W@^e% ztBF@xzfJ=P&l98@z5O7;^8rs#;{ Unit): CatalogIndex { + if (!forceCompute && catalog.embeddingsSha256.isNotBlank()) { + val bytes = runCatching { Res.readBytes("files/catalog/catalog-embeddings.bin") }.getOrNull() + if (bytes != null && bytes.size == catalog.items.size * engine.dimensions * 4) { + onProgress("Using precomputed catalog embeddingsโ€ฆ") + return CatalogIndex.fromBytes(catalog.items, bytes, engine.dimensions) + } + } + return CatalogIndex.build(catalog.items, engine) { done, total -> if (done % 10 == 0 || done == total) onProgress("Embedding catalogโ€ฆ $done / $total") } + } +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/DiagnosticsRow.kt b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/DiagnosticsRow.kt new file mode 100644 index 0000000..0be6782 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/DiagnosticsRow.kt @@ -0,0 +1,49 @@ +package sk.ainet.samples.emoji.ui + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.width +import androidx.compose.material3.AssistChip +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import sk.ainet.samples.emoji.verify.VerifierState +import sk.ainet.samples.emoji.vm.SearchStats + +/** Timings and the verifier state, so the demo shows its numbers instead of claiming them. */ +@Composable +fun DiagnosticsRow(stats: SearchStats, verifierState: VerifierState, kernel: String) { + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(6.dp)) { + AssistChip(onClick = {}, label = { Text(kernel) }) + AssistChip(onClick = {}, label = { Text("load ${stats.modelLoadMs} ms ยท index ${stats.indexBuildMs} ms") }) + if (stats.queries > 0) { + AssistChip(onClick = {}, label = { Text("query ${stats.lastQueryMs} ms ยท p50 ${stats.p50QueryMs} ms") }) + } + VerifierChip(verifierState) + } +} + +@Composable +private fun VerifierChip(state: VerifierState) { + val label = when (state) { + is VerifierState.Disabled -> "System 2: off (${state.reason})" + VerifierState.Idle -> "System 2: Laya ready" + is VerifierState.Loading -> "System 2: ${state.message}" + is VerifierState.Busy -> "System 2: ${state.done}/${state.total}" + is VerifierState.Error -> "System 2: error" + } + AssistChip( + onClick = {}, + label = { Text(label, color = if (state is VerifierState.Error) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.onSurface) }, + leadingIcon = { + if (state is VerifierState.Loading || state is VerifierState.Busy) { + CircularProgressIndicator(Modifier.width(14.dp).height(14.dp), strokeWidth = 2.dp) + } + }, + ) +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/EmojiGrid.kt b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/EmojiGrid.kt new file mode 100644 index 0000000..c0ee5e2 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/EmojiGrid.kt @@ -0,0 +1,117 @@ +package sk.ainet.samples.emoji.ui + +import androidx.compose.animation.animateColorAsState +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.GridItemSpan +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import sk.ainet.samples.emoji.domain.RankedItem +import sk.ainet.samples.emoji.domain.Tier +import sk.ainet.samples.emoji.verify.Verdict + +/** + * Two tiers: the items above the calibrated threshold first, with their confidence badge and, + * when the verifier has spoken, its probability next to it; everything else below in rank order. + */ +@Composable +fun EmojiGrid(ranked: List, verdicts: Map, german: Boolean, queryActive: Boolean, modifier: Modifier = Modifier) { + val top = if (queryActive) ranked.filter { it.tier == Tier.TOP } else emptyList() + val rest = if (queryActive) ranked.filter { it.tier == Tier.REST } else ranked + LazyVerticalGrid(columns = GridCells.Adaptive(minSize = 112.dp), modifier = modifier, verticalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp)) { + if (queryActive) { + item(span = { GridItemSpan(maxLineSpan) }) { + SectionLabel(if (german) "Treffer (${top.size})" else "Matches (${top.size})") + } + if (top.isEmpty()) { + item(span = { GridItemSpan(maxLineSpan) }) { + Text(if (german) "Nichts รผber der Schwelle โ€” die nรคchsten Kandidaten stehen unten." else "Nothing above the threshold; the closest candidates are below.", style = MaterialTheme.typography.bodySmall) + } + } + items(top, key = { it.item.id }) { EmojiCard(it, verdicts[it.item.id], german, highlighted = true, pending = queryActive && verdicts[it.item.id] == null) } + item(span = { GridItemSpan(maxLineSpan) }) { + SectionLabel(if (german) "Alle anderen" else "Everything else") + } + } + items(rest, key = { it.item.id }) { EmojiCard(it, verdicts[it.item.id], german, highlighted = false, pending = false) } + } +} + +@Composable +private fun SectionLabel(text: String) { + Text(text, style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(top = 8.dp, bottom = 2.dp)) +} + +@Composable +fun EmojiCard(ranked: RankedItem, verdict: Verdict?, german: Boolean, highlighted: Boolean, pending: Boolean) { + val container by animateColorAsState( + when { + verdict?.accepted == true -> MaterialTheme.colorScheme.primaryContainer + verdict?.accepted == false -> MaterialTheme.colorScheme.errorContainer + highlighted -> MaterialTheme.colorScheme.secondaryContainer + else -> MaterialTheme.colorScheme.surfaceVariant + }, + ) + Card(colors = CardDefaults.cardColors(containerColor = container)) { + Column(Modifier.padding(10.dp).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + Text(ranked.item.emoji, fontSize = 34.sp) + Spacer(Modifier.height(4.dp)) + Text(ranked.item.name(german), style = MaterialTheme.typography.labelMedium, maxLines = 1, overflow = TextOverflow.Ellipsis) + if (highlighted || ranked.cosine != 0f) { + Spacer(Modifier.height(4.dp)) + ConfidenceBadge(ranked, verdict, pending) + } + } + } +} + +/** `cos 0.71 ยท Laya 0.12`; the vector score and the decision model side by side. */ +@Composable +fun ConfidenceBadge(ranked: RankedItem, verdict: Verdict?, pending: Boolean) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(4.dp)) { + Text("${(ranked.confidence * 100).toInt()} %", style = MaterialTheme.typography.labelSmall) + Text("ยท", style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant) + when { + verdict != null -> { + val text = verdict.probabilityTrue?.let { "Laya ${(it * 100).toInt()} %" + (if (verdict.accepted == null) " ?" else "") } ?: "Laya !" + val color = when (verdict.accepted) { + true -> Color(0xFF2E7D32) + false -> MaterialTheme.colorScheme.error + null -> MaterialTheme.colorScheme.onSurfaceVariant + } + Text(text, style = MaterialTheme.typography.labelSmall, color = color) + } + pending -> Box { CircularProgressIndicator(Modifier.width(10.dp).height(10.dp), strokeWidth = 1.5.dp) } + else -> Text("cos ${formatCosine(ranked.cosine)}", style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant) + } + } +} + +/** Two decimals without `String.format`, which the wasm target does not have. */ +private fun formatCosine(value: Float): String { + val hundredths = (value * 100).toInt() + val sign = if (hundredths < 0) "-" else "" + val abs = kotlin.math.abs(hundredths) + return "$sign${abs / 100}.${(abs % 100).toString().padStart(2, '0')}" +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/PlatformChips.kt b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/PlatformChips.kt new file mode 100644 index 0000000..2bc7c48 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/PlatformChips.kt @@ -0,0 +1,22 @@ +package sk.ainet.samples.emoji.ui + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.FilterChip +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import sk.ainet.samples.emoji.platform.SamplePlatform +import sk.ainet.samples.emoji.platform.currentSamplePlatform + +/** One chip per platform this sample runs on, the current one highlighted; informational only. */ +@Composable +fun PlatformChips(modifier: Modifier = Modifier) { + Row(modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(6.dp)) { + for (platform in SamplePlatform.entries) { + FilterChip(selected = platform == currentSamplePlatform, onClick = {}, label = { Text(platform.label) }) + } + } +} diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/SearchScreen.kt b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/SearchScreen.kt new file mode 100644 index 0000000..38ff96e --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/ui/SearchScreen.kt @@ -0,0 +1,99 @@ +package sk.ainet.samples.emoji.ui + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.FilterChip +import androidx.compose.material3.LinearProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import sk.ainet.samples.emoji.platform.kernelTierLabel +import sk.ainet.samples.emoji.vm.EmojiSearchViewModel +import sk.ainet.samples.emoji.vm.LoadState + +@Composable +fun SearchScreen(viewModel: EmojiSearchViewModel, skainetVersion: String) { + val status by viewModel.status.collectAsStateWithLifecycle() + val query by viewModel.query.collectAsStateWithLifecycle() + val ranked by viewModel.ranked.collectAsStateWithLifecycle() + val verdicts by viewModel.verdicts.collectAsStateWithLifecycle() + val stats by viewModel.stats.collectAsStateWithLifecycle() + val verifierState by viewModel.verifier.state.collectAsStateWithLifecycle() + var german by remember { mutableStateOf(false) } + + Scaffold { padding -> + Column(Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp, vertical = 12.dp)) { + Header(skainetVersion, german, onLanguage = { german = it }) + Spacer(Modifier.height(12.dp)) + + OutlinedTextField( + value = query, + onValueChange = { viewModel.query.value = it }, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + enabled = status is LoadState.Ready, + label = { Text(if (german) "Beschreibe, was du meinstโ€ฆ" else "Describe what you meanโ€ฆ") }, + placeholder = { Text(if (german) "gesundes Essen ยท mir ist schlecht ยท Rockband" else "healthy things to eat ยท feeling sick ยท rock band") }, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), + ) + Spacer(Modifier.height(8.dp)) + + when (val s = status) { + is LoadState.Idle, is LoadState.Loading -> { + Row(verticalAlignment = Alignment.CenterVertically) { + CircularProgressIndicator(Modifier.width(18.dp).height(18.dp), strokeWidth = 2.dp) + Spacer(Modifier.width(8.dp)) + Text((s as? LoadState.Loading)?.message ?: "Startingโ€ฆ", style = MaterialTheme.typography.bodySmall) + } + LinearProgressIndicator(Modifier.fillMaxWidth().padding(vertical = 8.dp)) + } + is LoadState.Failed -> Text("Model failed to load: ${s.message}", color = MaterialTheme.colorScheme.error) + LoadState.Ready -> { + DiagnosticsRow(stats = stats, verifierState = verifierState, kernel = kernelTierLabel()) + Spacer(Modifier.height(8.dp)) + EmojiGrid(ranked = ranked, verdicts = verdicts, german = german, queryActive = query.isNotBlank(), modifier = Modifier.fillMaxSize()) + } + } + } + } +} + +@Composable +private fun Header(skainetVersion: String, german: Boolean, onLanguage: (Boolean) -> Unit) { + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically) { + Column { + Text("Semantic Emoji Filter", style = MaterialTheme.typography.headlineSmall) + Text( + "On-device sentence embeddings rank the catalog as you type; a decision model double-checks the top hits. SKaiNET $skainetVersion", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + } + Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) { + FilterChip(selected = !german, onClick = { onLanguage(false) }, label = { Text("EN") }) + FilterChip(selected = german, onClick = { onLanguage(true) }, label = { Text("DE") }) + } + } + Spacer(Modifier.height(8.dp)) + PlatformChips() +} diff --git a/SemanticEmojiFilter/composeApp/src/jvmMain/kotlin/sk/ainet/samples/emoji/main.kt b/SemanticEmojiFilter/composeApp/src/jvmMain/kotlin/sk/ainet/samples/emoji/main.kt new file mode 100644 index 0000000..567c3ec --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/jvmMain/kotlin/sk/ainet/samples/emoji/main.kt @@ -0,0 +1,28 @@ +package sk.ainet.samples.emoji + +import androidx.compose.runtime.remember +import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application +import androidx.compose.ui.window.rememberWindowState +import sk.ainet.samples.emoji.engine.LeafEmbeddingEngine +import sk.ainet.samples.emoji.model.DesktopLeafProvider +import sk.ainet.samples.emoji.vm.EmojiSearchViewModel + +fun main() = application { + Window(onCloseRequest = ::exitApplication, title = "SKaiNET Semantic Emoji Filter", state = rememberWindowState(width = 1100.dp, height = 800.dp)) { + val viewModel = remember { + val calibration = kotlinx.coroutines.runBlocking { CatalogResources.calibration() } + EmojiSearchViewModel( + loadEngine = { onProgress -> + val source = DesktopLeafProvider().resolve(onProgress) + LeafEmbeddingEngine.load(source, onProgress = onProgress) + }, + loadIndex = { engine, onProgress -> CatalogResources.index(CatalogResources.catalog(), engine, onProgress = onProgress) }, + calibration = calibration, + verifier = createVerifier(), + ) + } + App(viewModel = viewModel, skainetVersion = SKAINET_VERSION) + } +} diff --git a/SemanticEmojiFilter/composeApp/src/jvmNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt b/SemanticEmojiFilter/composeApp/src/jvmNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt new file mode 100644 index 0000000..1c99b8a --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/jvmNoVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt @@ -0,0 +1,7 @@ +package sk.ainet.samples.emoji + +import sk.ainet.samples.emoji.verify.NoopVerifier +import sk.ainet.samples.emoji.verify.Verifier + +/** Built without `-PlayaVerifier=true`: the second stage is off. */ +fun createVerifier(): Verifier = NoopVerifier("build with -PlayaVerifier=true") diff --git a/SemanticEmojiFilter/composeApp/src/jvmVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt b/SemanticEmojiFilter/composeApp/src/jvmVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt new file mode 100644 index 0000000..c7a6c02 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/jvmVerifier/kotlin/sk/ainet/samples/emoji/VerifierFactory.kt @@ -0,0 +1,8 @@ +package sk.ainet.samples.emoji + +import sk.ainet.samples.emoji.verify.Verifier +import sk.ainet.samples.emoji.verifier.LayaVerifier +import sk.ainet.samples.emoji.verifier.layaDesktopSource + +/** Built with `-PlayaVerifier=true`: Laya loads lazily on the first stable query. */ +fun createVerifier(): Verifier = LayaVerifier(layaDesktopSource()) diff --git a/SemanticEmojiFilter/composeApp/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/main.kt b/SemanticEmojiFilter/composeApp/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/main.kt new file mode 100644 index 0000000..6256bc9 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/main.kt @@ -0,0 +1,45 @@ +package sk.ainet.samples.emoji + +import androidx.compose.runtime.remember +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.window.ComposeViewport +import kotlinx.browser.document +import org.jetbrains.compose.resources.ExperimentalResourceApi +import semanticemojifilter.composeapp.generated.resources.Res +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.engine.LeafEmbeddingEngine +import sk.ainet.samples.emoji.engine.LeafFiles +import sk.ainet.samples.emoji.engine.LeafSource +import sk.ainet.samples.emoji.vm.EmojiSearchViewModel + +/** + * The web build has no filesystem: the checkpoint is bundled as Compose resources (see + * scripts/fetch-model.sh) and read into memory once. The catalog embeddings are the shipped + * precomputed file, so the page is interactive right after the encoder is built. + */ +@OptIn(ExperimentalComposeUiApi::class, ExperimentalResourceApi::class) +fun main() { + ComposeViewport(document.body!!) { + val viewModel = remember { + EmojiSearchViewModel( + loadEngine = { onProgress -> + onProgress("Fetching the LEAF checkpoint (~92 MB)โ€ฆ") + val source = LeafSource.Bytes( + model = Res.readBytes("files/leaf/${LeafFiles.MODEL}"), + denseModel = Res.readBytes("files/leaf/${LeafFiles.DENSE_MODEL}"), + configJson = Res.readBytes("files/leaf/${LeafFiles.CONFIG}").decodeToString(), + denseConfigJson = Res.readBytes("files/leaf/${LeafFiles.DENSE_CONFIG}").decodeToString(), + poolingConfigJson = Res.readBytes("files/leaf/${LeafFiles.POOLING_CONFIG}").decodeToString(), + tokenizerJson = Res.readBytes("files/leaf/${LeafFiles.TOKENIZER}").decodeToString(), + tokenizerConfigJson = Res.readBytes("files/leaf/${LeafFiles.TOKENIZER_CONFIG}").decodeToString(), + ) + LeafEmbeddingEngine.load(source, onProgress = onProgress) + }, + loadIndex = { engine, onProgress -> CatalogResources.index(CatalogResources.catalog(), engine, onProgress = onProgress) }, + calibration = Calibration.DEFAULT, + verifierTopK = 0, + ) + } + App(viewModel = viewModel, skainetVersion = SKAINET_VERSION) + } +} diff --git a/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/app.html b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/app.html new file mode 100644 index 0000000..79a9f79 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/app.html @@ -0,0 +1,19 @@ + + + + + + Semantic Emoji Filter + + + + + + + + diff --git a/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/coi-serviceworker.js b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/coi-serviceworker.js new file mode 100644 index 0000000..9901474 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/coi-serviceworker.js @@ -0,0 +1,146 @@ +/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */ +let coepCredentialless = false; +if (typeof window === 'undefined') { + self.addEventListener("install", () => self.skipWaiting()); + self.addEventListener("activate", (event) => event.waitUntil(self.clients.claim())); + + self.addEventListener("message", (ev) => { + if (!ev.data) { + return; + } else if (ev.data.type === "deregister") { + self.registration + .unregister() + .then(() => { + return self.clients.matchAll(); + }) + .then(clients => { + clients.forEach((client) => client.navigate(client.url)); + }); + } else if (ev.data.type === "coepCredentialless") { + coepCredentialless = ev.data.value; + } + }); + + self.addEventListener("fetch", function (event) { + const r = event.request; + if (r.cache === "only-if-cached" && r.mode !== "same-origin") { + return; + } + + const request = (coepCredentialless && r.mode === "no-cors") + ? new Request(r, { + credentials: "omit", + }) + : r; + event.respondWith( + fetch(request) + .then((response) => { + if (response.status === 0) { + return response; + } + + const newHeaders = new Headers(response.headers); + newHeaders.set("Cross-Origin-Embedder-Policy", + coepCredentialless ? "credentialless" : "require-corp" + ); + if (!coepCredentialless) { + newHeaders.set("Cross-Origin-Resource-Policy", "cross-origin"); + } + newHeaders.set("Cross-Origin-Opener-Policy", "same-origin"); + + return new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: newHeaders, + }); + }) + .catch((e) => console.error(e)) + ); + }); + +} else { + (() => { + const reloadedBySelf = window.sessionStorage.getItem("coiReloadedBySelf"); + window.sessionStorage.removeItem("coiReloadedBySelf"); + const coepDegrading = (reloadedBySelf == "coepdegrade"); + + // You can customize the behavior of this script through a global `coi` variable. + const coi = { + shouldRegister: () => !reloadedBySelf, + shouldDeregister: () => false, + coepCredentialless: () => true, + coepDegrade: () => true, + doReload: () => window.location.reload(), + quiet: false, + ...window.coi + }; + + const n = navigator; + const controlling = n.serviceWorker && n.serviceWorker.controller; + + // Record the failure if the page is served by serviceWorker. + if (controlling && !window.crossOriginIsolated) { + window.sessionStorage.setItem("coiCoepHasFailed", "true"); + } + const coepHasFailed = window.sessionStorage.getItem("coiCoepHasFailed"); + + if (controlling) { + // Reload only on the first failure. + const reloadToDegrade = coi.coepDegrade() && !( + coepDegrading || window.crossOriginIsolated + ); + n.serviceWorker.controller.postMessage({ + type: "coepCredentialless", + value: (reloadToDegrade || coepHasFailed && coi.coepDegrade()) + ? false + : coi.coepCredentialless(), + }); + if (reloadToDegrade) { + !coi.quiet && console.log("Reloading page to degrade COEP."); + window.sessionStorage.setItem("coiReloadedBySelf", "coepdegrade"); + coi.doReload("coepdegrade"); + } + + if (coi.shouldDeregister()) { + n.serviceWorker.controller.postMessage({ type: "deregister" }); + } + } + + // If we're already coi: do nothing. Perhaps it's due to this script doing its job, or COOP/COEP are + // already set from the origin server. Also if the browser has no notion of crossOriginIsolated, just give up here. + if (window.crossOriginIsolated !== false || !coi.shouldRegister()) return; + + if (!window.isSecureContext) { + !coi.quiet && console.log("COOP/COEP Service Worker not registered, a secure context is required."); + return; + } + + // In some environments (e.g. Firefox private mode) this won't be available + if (!n.serviceWorker) { + !coi.quiet && console.error("COOP/COEP Service Worker not registered, perhaps due to private mode."); + return; + } + + n.serviceWorker.register(window.document.currentScript.src).then( + (registration) => { + !coi.quiet && console.log("COOP/COEP Service Worker registered", registration.scope); + + registration.addEventListener("updatefound", () => { + !coi.quiet && console.log("Reloading page to make use of updated COOP/COEP Service Worker."); + window.sessionStorage.setItem("coiReloadedBySelf", "updatefound"); + coi.doReload(); + }); + + // If the registration is active, but it's not controlling the page + if (registration.active && !n.serviceWorker.controller) { + !coi.quiet && console.log("Reloading page to make use of COOP/COEP Service Worker."); + window.sessionStorage.setItem("coiReloadedBySelf", "notcontrolling"); + coi.doReload(); + } + }, + (err) => { + !coi.quiet && console.error("COOP/COEP Service Worker failed to register:", err); + } + ); + })(); +} diff --git a/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/index.html b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/index.html new file mode 100644 index 0000000..0a91300 --- /dev/null +++ b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/index.html @@ -0,0 +1,222 @@ + + + + + + Semantic Emoji Filter - SKaiNET Examples + + + + + + + + +

+ +
+ +
+ + + +
+ MIT License · SKaiNET-developers · + ~92 MB encoder download on first load (MongoDB LEAF, Apache-2.0) โ€” the Laya decision model (second stage) runs on Desktop and Android only. +
+ + + + diff --git a/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/logo.png b/SemanticEmojiFilter/composeApp/src/wasmJsMain/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae74ca10331e3f7aa6f1584709e115b37b9744e GIT binary patch literal 213270 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

N9>pL60c6!ebV%t9SCO6aGc%fHBn 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 Hy?y1T?5L*?MQE<*V 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

S1!Q^}mvly-(@WOu`($pzwGy{IM0-Co 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/SemanticEmojiFilter/gradlew.bat b/SemanticEmojiFilter/gradlew.bat new file mode 100644 index 0000000..e509b2d --- /dev/null +++ b/SemanticEmojiFilter/gradlew.bat @@ -0,0 +1,93 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/SemanticEmojiFilter/scripts/catalog-selection.json b/SemanticEmojiFilter/scripts/catalog-selection.json new file mode 100644 index 0000000..54bc2cc --- /dev/null +++ b/SemanticEmojiFilter/scripts/catalog-selection.json @@ -0,0 +1,1580 @@ +[ + { + "cp": "1F957", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F34E", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F966", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F955", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F34C", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F347", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F353", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F951", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F345", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F952", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F34A", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F34B", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F349", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F96C", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F360", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F95C", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F95B", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1FAD0", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F95D", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F352", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F351", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F350", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F33D", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F954", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F363", + "group": "food-healthy", + "tags": [ + "food", + "healthy" + ] + }, + { + "cp": "1F355", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F354", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F35F", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F32D", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F369", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F36A", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F382", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F370", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F9C1", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F36B", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F36C", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F36D", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F366", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F37F", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F953", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F9C0", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F32E", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F950", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F37A", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F377", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "2615", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F35D", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F35C", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F95E", + "group": "food-indulgent", + "tags": [ + "food", + "indulgent" + ] + }, + { + "cp": "1F912", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F927", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F92E", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F922", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F637", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F915", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F48A", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1FA7A", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F321-FE0F", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F3E5", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F489", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1FA79", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F6CC", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F691", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F9A0", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F9EC", + "group": "health-sick", + "tags": [ + "health", + "sick" + ] + }, + { + "cp": "1F3B8", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F941", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3A4", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3B9", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3BA", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3B7", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3BB", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F918", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3B6", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3B5", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3A7", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F50A", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F3BC", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F4FB", + "group": "music-rock", + "tags": [ + "music", + "rock-band" + ] + }, + { + "cp": "1F436", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F431", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F42D", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F439", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F430", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F98A", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F43B", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F43C", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F428", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F981", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F42E", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F437", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F438", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F435", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F414", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F427", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F98B", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F41D", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F40D", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F422", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F42C", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F433", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F988", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F419", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F989", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "1F418", + "group": "animals", + "tags": [ + "animal" + ] + }, + { + "cp": "2600-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F327-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "26C8-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "2744-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F308", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F32A-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F319", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "2B50", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F525", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F4A7", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F30A", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F338", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F33B", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F332", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F342", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "2601-FE0F", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "1F30B", + "group": "weather-nature", + "tags": [ + "weather", + "nature" + ] + }, + { + "cp": "26BD", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3C0", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3BE", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3C8", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "26BE", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3CA", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F6B4", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3C3", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3CB-FE0F", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "26F7-FE0F", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3C4", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F9D7", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F94A", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F3C6", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F947", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "26F3", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "1F9D8", + "group": "sport", + "tags": [ + "sport" + ] + }, + { + "cp": "2708-FE0F", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F697", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F682", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F6B2", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F680", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "26F5", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F3D6-FE0F", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F3D4-FE0F", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F5FA-FE0F", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F9F3", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F3E8", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F695", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F68C", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F6F3-FE0F", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "26FA", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F5FD", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F9ED", + "group": "travel", + "tags": [ + "travel" + ] + }, + { + "cp": "1F600", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F602", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F60D", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F622", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F62D", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F621", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F631", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F634", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F914", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F60E", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F973", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F62C", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F644", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F607", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F917", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F624", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F970", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F605", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1FAE0", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F610", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "2764-FE0F", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F494", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F44D", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F44E", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F64F", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F44F", + "group": "emotions", + "tags": [ + "emotion" + ] + }, + { + "cp": "1F4BB", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4F1", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "231A", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4F7", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F511", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F512", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4DA", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "270F-FE0F", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4CE", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4A1", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F527", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F528", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4B0", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F381", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F388", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "23F0", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F4C5", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F5D1-FE0F", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F9F9", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F6D2", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F3AE", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F3B2", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F9E9", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F3E0", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F6BF", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + }, + { + "cp": "1F6CF-FE0F", + "group": "objects", + "tags": [ + "object", + "everyday" + ] + } +] \ No newline at end of file diff --git a/SemanticEmojiFilter/scripts/fetch-model.sh b/SemanticEmojiFilter/scripts/fetch-model.sh new file mode 100755 index 0000000..773028a --- /dev/null +++ b/SemanticEmojiFilter/scripts/fetch-model.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +# Downloads the MongoDB LEAF retrieval encoder (mdbr-leaf-ir, Apache-2.0) at a pinned revision +# into a directory laid out exactly as on the Hugging Face Hub. Default target: the wasm +# Compose resources, so the web build bundles the checkpoint (~92 MB). Desktop and Android +# download the same files at runtime into their own cache instead. +# +# scripts/fetch-model.sh [target-dir] +set -euo pipefail + +REPO="MongoDB/mdbr-leaf-ir" +REVISION="4262131b32c3182bd06e67e92ae69d7bd66e0c5c" +FILES=( + "model.safetensors" + "config.json" + "tokenizer.json" + "tokenizer_config.json" + "2_Dense/model.safetensors" + "2_Dense/config.json" + "1_Pooling/config.json" +) +MIN_MODEL_BYTES=$((80 * 1024 * 1024)) + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +TARGET="${1:-$SCRIPT_DIR/../composeApp/src/wasmJsMain/composeResources/files/leaf}" +mkdir -p "$TARGET" + +# A local copy (the desktop/CLI cache, or $LEAF_MODEL_DIR) is reused instead of downloading twice. +LOCAL="${LEAF_MODEL_DIR:-$HOME/.skainet-examples/semantic-emoji-filter/leaf}" + +for f in "${FILES[@]}"; do + out="$TARGET/$f" + if [[ ! -s "$out" && -s "$LOCAL/$f" && "$LOCAL" != "$TARGET" ]]; then + mkdir -p "$(dirname "$out")" + cp "$LOCAL/$f" "$out" + echo "fetch-model: $f copied from $LOCAL" + continue + fi + if [[ -s "$out" ]]; then + if [[ "$f" != "model.safetensors" || $(stat -c %s "$out" 2>/dev/null || stat -f %z "$out") -ge $MIN_MODEL_BYTES ]]; then + echo "fetch-model: $f present, skipping" + continue + fi + fi + mkdir -p "$(dirname "$out")" + echo "fetch-model: downloading $f" + curl -fL --retry 3 "https://huggingface.co/$REPO/resolve/$REVISION/$f" -o "$out.part" + mv "$out.part" "$out" +done + +size=$(stat -c %s "$TARGET/model.safetensors" 2>/dev/null || stat -f %z "$TARGET/model.safetensors") +if (( size < MIN_MODEL_BYTES )); then + echo "fetch-model: model.safetensors is only $size bytes โ€” download incomplete" >&2 + exit 1 +fi +echo "fetch-model: LEAF checkpoint ready in $TARGET" diff --git a/SemanticEmojiFilter/scripts/generate-catalog.py b/SemanticEmojiFilter/scripts/generate-catalog.py new file mode 100644 index 0000000..6c25481 --- /dev/null +++ b/SemanticEmojiFilter/scripts/generate-catalog.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +"""Builds catalog.json from Unicode CLDR emoji annotations and the curated selection. + + python3 -I scripts/generate-catalog.py --cldr

--selection scripts/catalog-selection.json \ + --out composeApp/src/commonMain/composeResources/files/catalog/catalog.json + + holds the CLDR files common/annotations/{en,de}.xml and common/annotationsDerived/{en,de}.xml +of one release (default names: annotations_en.xml, annotations_de.xml, annotationsDerived_en.xml, +annotationsDerived_de.xml). Names come from the `tts` annotation, keywords from the plain one. +The script fails on a missing annotation or a duplicate id, so the catalog is always complete. +""" +import argparse +import json +import sys +import xml.etree.ElementTree as ET + +VS16 = "๏ธ" + + +def load_annotations(path): + names, keywords = {}, {} + root = ET.parse(path).getroot() + for node in root.iter("annotation"): + cp = node.get("cp", "").replace(VS16, "") + text = (node.text or "").strip() + if node.get("type") == "tts": + names[cp] = text + else: + keywords[cp] = [k.strip() for k in text.split("|") if k.strip()] + return names, keywords + + +def merge(a, b): + out = dict(a) + out.update(b) + return out + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--cldr", required=True) + ap.add_argument("--cldr-release", default="47") + ap.add_argument("--selection", required=True) + ap.add_argument("--out", required=True) + ap.add_argument("--embedding-text-version", type=int, default=1) + args = ap.parse_args() + + en_names, en_kw = load_annotations(f"{args.cldr}/annotations_en.xml") + de_names, de_kw = load_annotations(f"{args.cldr}/annotations_de.xml") + den, dek = load_annotations(f"{args.cldr}/annotationsDerived_en.xml") + ddn, ddk = load_annotations(f"{args.cldr}/annotationsDerived_de.xml") + en_names, en_kw = merge(en_names, den), merge(en_kw, dek) + de_names, de_kw = merge(de_names, ddn), merge(de_kw, ddk) + + with open(args.selection, encoding="utf-8") as f: + selection = json.load(f) + + items, seen, errors = [], set(), [] + for entry in selection: + cps = [int(h, 16) for h in entry["cp"].split("-")] + emoji = "".join(chr(c) for c in cps) + key = emoji.replace(VS16, "") + item_id = "-".join(f"{c:04X}" for c in cps if c != 0xFE0F) + if item_id in seen: + errors.append(f"duplicate id {item_id}") + continue + seen.add(item_id) + if key not in en_names or key not in de_names: + errors.append(f"{item_id} ({emoji}): no CLDR name in {'en' if key not in en_names else 'de'}") + continue + items.append({ + "id": item_id, + "emoji": emoji, + "nameEn": en_names[key], + "nameDe": de_names[key], + "keywordsEn": en_kw.get(key, []), + "keywordsDe": de_kw.get(key, []), + "tags": entry.get("tags", []), + "group": entry.get("group", ""), + }) + + if errors: + print("\n".join(errors), file=sys.stderr) + sys.exit(1) + + catalog = { + "version": 1, + "cldr": args.cldr_release, + "embeddingTextVersion": args.embedding_text_version, + "embeddingsSha256": "", + "items": items, + } + # Keep an existing digest if the items did not change (the CLI writes it after embedding). + try: + with open(args.out, encoding="utf-8") as f: + previous = json.load(f) + if previous.get("items") == items and previous.get("embeddingTextVersion") == args.embedding_text_version: + catalog["embeddingsSha256"] = previous.get("embeddingsSha256", "") + except (OSError, ValueError): + pass + with open(args.out, "w", encoding="utf-8") as f: + json.dump(catalog, f, ensure_ascii=False, indent=2) + f.write("\n") + print(f"catalog: {len(items)} items -> {args.out}") + + +if __name__ == "__main__": + main() diff --git a/SemanticEmojiFilter/settings.gradle.kts b/SemanticEmojiFilter/settings.gradle.kts new file mode 100644 index 0000000..f7e2707 --- /dev/null +++ b/SemanticEmojiFilter/settings.gradle.kts @@ -0,0 +1,47 @@ +rootProject.name = "SemanticEmojiFilter" +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +// Opt-in second stage: the Laya decision model as a verifier behind the embedding filter. +// It needs the SKaiNET-transformers `decisions` and `laya` modules, which ship with 0.59.0; +// until then they come from a local publish (`publishToMavenLocal` as 0.59.0-SNAPSHOT). +val layaVerifier = providers.gradleProperty("layaVerifier").orNull == "true" + +pluginManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + if (layaVerifier) { + mavenLocal { content { includeGroupByRegex("sk\\.ainet(\\..*)?") } } + } + mavenCentral() + } +} + +// Shared SKaiNET design system (theme + components), consumed as an included build like the +// sibling examples. +includeBuild("../skainet-ui") + +include(":androidApp") +include(":composeApp") +include(":shared") +include(":cli") +if (layaVerifier) include(":verifier") diff --git a/SemanticEmojiFilter/shared/build.gradle.kts b/SemanticEmojiFilter/shared/build.gradle.kts new file mode 100644 index 0000000..4def24d --- /dev/null +++ b/SemanticEmojiFilter/shared/build.gradle.kts @@ -0,0 +1,91 @@ +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.androidMultiplatformLibrary) + alias(libs.plugins.kotlinSerialization) +} + +kotlin { + jvmToolchain(21) + + android { + namespace = "sk.ainet.samples.emoji.shared" + compileSdk = libs.versions.android.compileSdk.get().toInt() + minSdk = libs.versions.android.minSdk.get().toInt() + + compilerOptions { + jvmTarget.set(JvmTarget.JVM_21) + } + + // Runs commonTest on the JVM against Android stubs (testAndroidHostTest) โ€” CI relies on it. + withHostTest {} + } + + jvm() + + // No iOS: the bert, laya and decisions modules of SKaiNET-transformers publish no Apple targets. + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + browser() + } + + sourceSets { + commonMain.dependencies { + implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.io.core) + implementation(libs.kotlinx.serialization.json) + implementation(libs.androidx.lifecycle.viewmodel) + + // SKaiNET core. BOM applied via api() so its version constraints also reach the + // composeApp / cli classpaths, which construct the execution context themselves. + api(project.dependencies.platform(libs.skainet.bom)) + api(libs.skainet.lang.core) + api(libs.skainet.backend.cpu) + api(libs.skainet.io.core) + api(libs.skainet.io.safetensors) + api(libs.skainet.frontend.text) + + // SKaiNET-transformers: the BERT encoder runtime (mean pooling + 2_Dense projection). + api(project.dependencies.platform(libs.skainet.transformers.bom)) + api(libs.skainet.transformers.inference.bert) + } + // Desktop and Android share the file-based checkpoint download (both are JVM code). + val jvmAndroidMain by creating { + dependsOn(commonMain.get()) + dependencies { + // Streamed download of the checkpoint files from the Hugging Face Hub. + implementation(libs.skainet.data.source) + } + } + jvmMain { + dependsOn(jvmAndroidMain) + dependencies { + // PanamaVectorKernelProvider.isAvailable() for the kernel-tier label. + implementation(libs.skainet.backend.api) + } + } + androidMain { + dependsOn(jvmAndroidMain) + dependencies { + // Hand-written ARM NEON kernels, dispatched at runtime. + implementation(libs.skainet.backend.jni.cpu) + } + } + commonTest.dependencies { + implementation(libs.kotlin.test) + implementation(libs.kotlinx.coroutines.test) + } + } +} + +tasks.withType().configureEach { + // SIMD-accelerated CPU ops via the JDK Vector API (incubator), same flags as the desktop run. + jvmArgs( + "--add-modules", "jdk.incubator.vector", + "--enable-preview", + "-Dskainet.cpu.vector.enabled=true", + ) + maxHeapSize = "4g" +} diff --git a/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/model/AndroidLeafProvider.kt b/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/model/AndroidLeafProvider.kt new file mode 100644 index 0000000..6c27079 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/model/AndroidLeafProvider.kt @@ -0,0 +1,21 @@ +package sk.ainet.samples.emoji.model + +import android.content.Context +import java.io.File +import sk.ainet.samples.emoji.engine.LeafSource + +/** + * Resolves the checkpoint files into `filesDir/leaf`, streamed from the Hugging Face Hub on + * first use; afterwards the app runs offline. + */ +class AndroidLeafProvider( + private val context: Context, + private val hfToken: String = "", +) : LeafProvider { + override suspend fun resolve(onProgress: (String) -> Unit): LeafSource { + val dir = File(context.filesDir, "leaf").apply { mkdirs() } + val headers = hfToken.takeIf { it.isNotBlank() }?.let { mapOf("Authorization" to "Bearer $it") } ?: emptyMap() + downloadMissingLeafFiles(dir, onProgress, headers) + return LeafSource.Directory(dir.path) + } +} diff --git a/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/platform/Platform.android.kt b/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/platform/Platform.android.kt new file mode 100644 index 0000000..95ea9f8 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/androidMain/kotlin/sk/ainet/samples/emoji/platform/Platform.android.kt @@ -0,0 +1,21 @@ +package sk.ainet.samples.emoji.platform + +import android.util.Log +import java.io.File +import sk.ainet.exec.kernel.jni.JniKernelProvider + +actual val currentSamplePlatform: SamplePlatform = SamplePlatform.ANDROID + +actual fun kernelTierLabel(): String = + if (JniKernelProvider.isAvailable()) "ARM NEON" else "NEON (unavailable)" + +actual fun readTextFile(path: String): String = File(path).readText() + +internal actual fun platformLog(line: String) { + // Host unit tests run against stubbed android.jar, where Log throws "not mocked". + try { + Log.i("SKAINET_PERF", line) + } catch (_: RuntimeException) { + println("[SKAINET_PERF] $line") + } +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Calibration.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Calibration.kt new file mode 100644 index 0000000..7f068c7 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Calibration.kt @@ -0,0 +1,103 @@ +package sk.ainet.samples.emoji.domain + +import kotlin.math.exp +import kotlin.math.ln +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json + +/** + * Turns a cosine similarity into a match confidence with a logistic curve, + * `confidence = 1 / (1 + exp(-k (cos - x0)))`. The two numbers are fitted on a small labelled + * query set by the CLI (`calibrate`) and shipped next to the catalog: cosine thresholds are + * encoder-specific, so the PRD's guessed `k = 10, x0 = 0.5` is replaced by measured values. + */ +@Serializable +data class Calibration( + val k: Double, + val x0: Double, + val threshold: Double = 0.5, + /** At most this many items form the top tier, however many pass [threshold]. */ + val maxTop: Int = 12, + /** How many labelled queries the fit used; informational. */ + val queries: Int = 0, + /** Training accuracy at [threshold]; informational. */ + val accuracy: Double = 0.0, + /** Training F1 at [threshold]; informational. */ + val f1: Double = 0.0, +) { + init { + require(k > 0) { "k must be positive" } + require(threshold in 0.0..1.0) { "threshold must be within [0, 1]" } + require(maxTop > 0) { "maxTop must be positive" } + } + + fun confidence(cosine: Double): Double = 1.0 / (1.0 + exp(-k * (cosine - x0))) + + fun isTop(cosine: Double): Boolean = confidence(cosine) >= threshold + + /** The cosine at which the confidence crosses [threshold]. */ + val cosineAtThreshold: Double get() = x0 - ln(1.0 / threshold - 1.0) / k + + companion object { + /** Before calibration ran: a steep curve around a typical retrieval-encoder boundary. */ + val DEFAULT = Calibration(k = 14.0, x0 = 0.45) + + private val json = Json { ignoreUnknownKeys = true } + fun parse(text: String): Calibration = json.decodeFromString(serializer(), text) + fun encode(c: Calibration): String = Json { prettyPrint = true }.encodeToString(serializer(), c) + + /** + * One-dimensional logistic regression by gradient descent on `(cosine, isMatch)` pairs, + * class-balanced: every positive weighs `negatives / positives`, otherwise the few matches + * among hundreds of non-matches push the boundary above every real cosine (the unbalanced + * fit on this catalog accepted nothing). Returns `k = slope`, `x0 = -intercept / slope`. + */ + fun fit(samples: List>, steps: Int = 4000, learningRate: Double = 0.5): Calibration { + val positives = samples.count { it.second } + val negatives = samples.size - positives + require(positives > 0 && negatives > 0) { "calibration needs positives and negatives" } + val wPos = negatives.toDouble() / positives + val total = 2.0 * negatives + var a = 10.0 + var b = -5.0 + repeat(steps) { + var ga = 0.0 + var gb = 0.0 + for ((x, y) in samples) { + val p = 1.0 / (1.0 + exp(-(a * x + b))) + val w = if (y) wPos else 1.0 + val err = w * (p - (if (y) 1.0 else 0.0)) + ga += err * x + gb += err + } + a -= learningRate * ga / total + b -= learningRate * gb / total + } + // The curve maps cosine to a probability; the threshold on it is the F1-optimal cut. + val curve = Calibration(k = a, x0 = -b / a) + var best = curve + var bestF1 = -1.0 + for (step in 5..95 step 5) { + val candidate = curve.copy(threshold = step / 100.0) + val f1 = f1(candidate, samples) + if (f1 > bestF1) { + bestF1 = f1 + best = candidate + } + } + val correct = samples.count { (x, y) -> best.isTop(x) == y } + return best.copy(accuracy = correct / samples.size.toDouble(), f1 = bestF1) + } + + private fun f1(c: Calibration, samples: List>): Double { + var tp = 0 + var fp = 0 + var fn = 0 + for ((x, y) in samples) { + val predicted = c.isTop(x) + if (predicted && y) tp++ else if (predicted) fp++ else if (y) fn++ + } + return if (tp == 0) 0.0 else 2.0 * tp / (2.0 * tp + fp + fn) + } + } +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Catalog.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Catalog.kt new file mode 100644 index 0000000..596c285 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Catalog.kt @@ -0,0 +1,58 @@ +package sk.ainet.samples.emoji.domain + +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json + +/** One emoji of the catalog: CLDR names and keywords in English and German, plus curated tags. */ +@Serializable +data class CatalogItem( + /** Hex code points joined with `-`, e.g. `1F355`; stable across catalog versions. */ + val id: String, + val emoji: String, + val nameEn: String, + val nameDe: String, + val keywordsEn: List = emptyList(), + val keywordsDe: List = emptyList(), + /** Hand-curated for the showcase groups (`healthy`, `indulgent`, `sick`, `rock-band`, โ€ฆ). */ + val tags: List = emptyList(), + val group: String = "", +) { + /** + * The single text the encoder sees for this item. CLI, tests and app share this definition: + * the precomputed embeddings and the parity golden depend on it (see `Catalog.embeddingTextVersion`). + */ + fun embeddingText(): String = buildString { + append(nameEn) + if (keywordsEn.isNotEmpty()) append(". ").append(keywordsEn.joinToString(", ")) + append(". ").append(nameDe) + } + + fun name(german: Boolean): String = if (german) nameDe else nameEn +} + +@Serializable +data class Catalog( + val version: Int, + /** CLDR release the names and keywords were generated from. */ + val cldr: String, + /** Bump when [CatalogItem.embeddingText] changes; the shipped embeddings are only valid for the same version. */ + val embeddingTextVersion: Int, + /** SHA-256 of `catalog-embeddings.bin` computed for these items, empty until the CLI wrote it. */ + val embeddingsSha256: String = "", + val items: List, +) { + init { + require(items.isNotEmpty()) { "catalog has no items" } + require(items.map { it.id }.toSet().size == items.size) { "catalog has duplicate ids" } + } + + fun item(id: String): CatalogItem? = items.firstOrNull { it.id == id } + + companion object { + const val EMBEDDING_TEXT_VERSION = 1 + private val json = Json { ignoreUnknownKeys = true } + + fun parse(text: String): Catalog = json.decodeFromString(serializer(), text) + fun encode(catalog: Catalog): String = Json { prettyPrint = true }.encodeToString(serializer(), catalog) + } +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Ranking.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Ranking.kt new file mode 100644 index 0000000..9d4d839 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/domain/Ranking.kt @@ -0,0 +1,14 @@ +package sk.ainet.samples.emoji.domain + +/** Where an item lands after a sweep: above the calibrated threshold or below. */ +enum class Tier { TOP, REST } + +/** One catalog item scored against the current query. */ +data class RankedItem( + val item: CatalogItem, + /** Cosine similarity between the query and the item embedding (both L2-normalised). */ + val cosine: Float, + /** Calibrated match confidence in `[0, 1]`, see [Calibration]. */ + val confidence: Float, + val tier: Tier, +) diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/ByteArrayRandomAccessSource.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/ByteArrayRandomAccessSource.kt new file mode 100644 index 0000000..51fd812 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/ByteArrayRandomAccessSource.kt @@ -0,0 +1,25 @@ +package sk.ainet.samples.emoji.engine + +import sk.ainet.io.RandomAccessSource + +/** + * In-memory [RandomAccessSource] over a fully materialised byte array. The web build has no + * filesystem: the SafeTensors files arrive as Compose resource bytes and the streaming reader + * wants random access, so this wraps them. Desktop and Android read straight off disk instead. + */ +class ByteArrayRandomAccessSource(private val bytes: ByteArray) : RandomAccessSource { + override val size: Long = bytes.size.toLong() + + override fun readAt(position: Long, length: Int): ByteArray { + require(position >= 0 && length >= 0 && position + length <= size) { "read [$position, +$length) outside $size bytes" } + return bytes.copyOfRange(position.toInt(), (position + length).toInt()) + } + + override fun readAt(position: Long, buffer: ByteArray, offset: Int, length: Int): Int { + val n = minOf(length, (size - position).toInt()) + bytes.copyInto(buffer, offset, position.toInt(), position.toInt() + n) + return n + } + + override fun close() {} +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/CatalogIndex.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/CatalogIndex.kt new file mode 100644 index 0000000..328a528 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/CatalogIndex.kt @@ -0,0 +1,107 @@ +package sk.ainet.samples.emoji.engine + +import kotlin.math.sqrt +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.domain.CatalogItem +import sk.ainet.samples.emoji.domain.RankedItem +import sk.ainet.samples.emoji.domain.Tier + +/** + * The catalog embeddings, one L2-normalised row per item, and the cosine sweep over them. + * 180 ร— 768 floats is 553 KB: computed once at startup on desktop and Android, shipped as + * `catalog-embeddings.bin` for the web build (and as the parity golden for the tests). + */ +class CatalogIndex( + val items: List, + /** Row-major `items.size ร— dimensions`. */ + val vectors: FloatArray, + val dimensions: Int, +) { + init { + require(vectors.size == items.size * dimensions) { "expected ${items.size} ร— $dimensions floats, got ${vectors.size}" } + } + + /** Cosine of every item against [query] (unit vector), in catalog order. */ + fun cosines(query: FloatArray): FloatArray { + require(query.size == dimensions) { "query has ${query.size} dimensions, index has $dimensions" } + val out = FloatArray(items.size) + for (i in items.indices) { + val base = i * dimensions + var dot = 0f + for (d in 0 until dimensions) dot += vectors[base + d] * query[d] + out[i] = dot + } + return out + } + + /** Every item scored and sorted by cosine; the top tier is what passes the threshold, at most `maxTop` items. */ + fun rank(query: FloatArray, calibration: Calibration): List { + val cos = cosines(query) + val sorted = items.indices.sortedByDescending { cos[it] } + return sorted.mapIndexed { rank, i -> + val c = cos[i].toDouble() + val top = rank < calibration.maxTop && calibration.isTop(c) + RankedItem(items[i], cos[i], calibration.confidence(c).toFloat(), if (top) Tier.TOP else Tier.REST) + } + } + + /** The unscored catalog, for an empty query. */ + fun unranked(): List = items.map { RankedItem(it, 0f, 0f, Tier.REST) } + + fun vector(index: Int): FloatArray = vectors.copyOfRange(index * dimensions, (index + 1) * dimensions) + + /** Little-endian float32, row-major, no header. */ + fun toBytes(): ByteArray { + val out = ByteArray(vectors.size * 4) + for (i in vectors.indices) { + val bits = vectors[i].toRawBits() + val o = i * 4 + out[o] = bits.toByte() + out[o + 1] = (bits ushr 8).toByte() + out[o + 2] = (bits ushr 16).toByte() + out[o + 3] = (bits ushr 24).toByte() + } + return out + } + + companion object { + fun fromBytes(items: List, bytes: ByteArray, dimensions: Int = 768): CatalogIndex { + require(bytes.size == items.size * dimensions * 4) { "embeddings file has ${bytes.size} bytes, expected ${items.size * dimensions * 4}" } + val floats = FloatArray(bytes.size / 4) + for (i in floats.indices) { + val o = i * 4 + val bits = (bytes[o].toInt() and 0xFF) or + ((bytes[o + 1].toInt() and 0xFF) shl 8) or + ((bytes[o + 2].toInt() and 0xFF) shl 16) or + ((bytes[o + 3].toInt() and 0xFF) shl 24) + floats[i] = Float.fromBits(bits) + } + return CatalogIndex(items, floats, dimensions) + } + + /** Embeds every item with [engine]; [onProgress] gets `(done, total)`. */ + fun build(items: List, engine: EmbeddingEngine, onProgress: (Int, Int) -> Unit = { _, _ -> }): CatalogIndex { + val dim = engine.dimensions + val vectors = FloatArray(items.size * dim) + items.forEachIndexed { i, item -> + val v = engine.embed(item.embeddingText()) + require(v.size == dim) { "embedding of '${item.id}' has ${v.size} dimensions, expected $dim" } + v.copyInto(vectors, i * dim) + onProgress(i + 1, items.size) + } + return CatalogIndex(items, vectors, dim) + } + + fun cosine(a: FloatArray, b: FloatArray): Float { + var dot = 0f + var na = 0f + var nb = 0f + for (i in a.indices) { + dot += a[i] * b[i] + na += a[i] * a[i] + nb += b[i] * b[i] + } + return if (na == 0f || nb == 0f) 0f else dot / (sqrt(na) * sqrt(nb)) + } + } +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/EmbeddingEngine.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/EmbeddingEngine.kt new file mode 100644 index 0000000..d242da2 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/EmbeddingEngine.kt @@ -0,0 +1,122 @@ +package sk.ainet.samples.emoji.engine + +import kotlin.time.TimeSource +import sk.ainet.context.DirectCpuExecutionContext +import sk.ainet.context.ExecutionContext +import sk.ainet.frontend.text.BatchTokenizer +import sk.ainet.frontend.tokenizer.TextFrontEnds +import sk.ainet.io.RandomAccessSource +import sk.ainet.io.openRandomAccessSource +import sk.ainet.io.safetensors.SafeTensorsParametersLoader +import sk.ainet.lang.types.FP32 +import sk.ainet.models.bert.BertConfigParser +import sk.ainet.models.bert.BertEncoderRuntime +import sk.ainet.models.bert.BertExecutionMode +import sk.ainet.models.bert.BertNetworkLoader +import sk.ainet.models.bert.PooledExecutionContext +import sk.ainet.models.bert.createBertEncoderRuntime +import sk.ainet.samples.emoji.platform.readTextFile + +/** Sentence embeddings: one L2-normalised vector per text, so cosine is a dot product. */ +interface EmbeddingEngine { + val dimensions: Int + + /** Embeds a catalog text (a "document" in retrieval terms). */ + fun embed(text: String): FloatArray + + /** + * Embeds a search query. LEAF is an asymmetric retrieval encoder: queries carry the prompt + * its model card prescribes, documents do not; a symmetric engine may ignore the distinction. + */ + fun embedQuery(text: String): FloatArray = embed(QUERY_PROMPT + text) + + companion object { + /** The `query` prompt of `MongoDB/mdbr-leaf-ir` (sentence-transformers `prompt_name="query"`). */ + const val QUERY_PROMPT = "Represent this sentence for searching relevant passages: " + } +} + +/** The execution context every target uses; the kernel backend is picked by what is on the classpath. */ +fun defaultExecutionContext(): ExecutionContext = PooledExecutionContext(DirectCpuExecutionContext()) + +/** LEAF on the SKaiNET-transformers BERT runtime: WordPiece tokenizer, encoder, mean pooling, 2_Dense, L2. */ +class LeafEmbeddingEngine( + private val runtime: BertEncoderRuntime, + private val tokenizer: BatchTokenizer, + val loadMillis: Long, +) : EmbeddingEngine { + override val dimensions: Int get() = runtime.dimensions + + override fun embed(text: String): FloatArray { + val encoding = tokenizer.encodeWithMetadata(text) + return runtime.encode(encoding.ids, encoding.attentionMask) + } + + companion object { + /** + * Builds the engine from a [LeafSource]. The weights stream through the SafeTensors reader + * from disk or from the in-memory bytes; the projection head comes from the second file. + */ + suspend fun load( + source: LeafSource, + ctx: ExecutionContext = defaultExecutionContext(), + mode: BertExecutionMode = BertExecutionMode.DIRECT, + onProgress: (String) -> Unit = {}, + ): LeafEmbeddingEngine { + val started = TimeSource.Monotonic.markNow() + val files = when (source) { + is LeafSource.Directory -> DirectoryFiles(source.path) + is LeafSource.Bytes -> BytesFiles(source) + } + onProgress("Reading model configurationโ€ฆ") + val config = BertConfigParser.parse(files.text(LeafFiles.CONFIG), files.text(LeafFiles.DENSE_CONFIG)) + val pooling = BertConfigParser.parsePooling(files.text(LeafFiles.POOLING_CONFIG)) + // LEAF's tokenizer.json is WordPiece; the engine returns the BERT-class tokenizer with masks. + val tokenizer = TextFrontEnds.fromTokenizerJson(files.text(LeafFiles.TOKENIZER), files.textOrNull(LeafFiles.TOKENIZER_CONFIG)) as? BatchTokenizer + ?: error("tokenizer.json is not a WordPiece/BERT-class tokenizer") + + onProgress("Loading encoder weightsโ€ฆ") + val loaders = listOf( + SafeTensorsParametersLoader(sourceProvider = { files.source(LeafFiles.MODEL) }), + SafeTensorsParametersLoader(sourceProvider = { files.source(LeafFiles.DENSE_MODEL) }), + ) + val tensors = BertNetworkLoader.loadWeightTensors(loaders, ctx, FP32::class) + onProgress("Building encoderโ€ฆ") + val runtime = createBertEncoderRuntime(config, tensors, ctx, mode = mode, pooling = pooling) + return LeafEmbeddingEngine(runtime, tokenizer, started.elapsedNow().inWholeMilliseconds) + } + } +} + +private interface LeafFileAccess { + fun text(file: String): String + fun textOrNull(file: String): String? + fun source(file: String): RandomAccessSource +} + +private class DirectoryFiles(private val dir: String) : LeafFileAccess { + private fun path(file: String) = "$dir/$file" + override fun text(file: String): String = readTextFile(path(file)) + override fun textOrNull(file: String): String? = runCatching { readTextFile(path(file)) }.getOrNull() + override fun source(file: String): RandomAccessSource = + openRandomAccessSource(path(file)) ?: error("no random-access file source on this platform for ${path(file)}") +} + +private class BytesFiles(private val bytes: LeafSource.Bytes) : LeafFileAccess { + override fun text(file: String): String = when (file) { + LeafFiles.CONFIG -> bytes.configJson + LeafFiles.DENSE_CONFIG -> bytes.denseConfigJson + LeafFiles.POOLING_CONFIG -> bytes.poolingConfigJson + LeafFiles.TOKENIZER -> bytes.tokenizerJson + LeafFiles.TOKENIZER_CONFIG -> bytes.tokenizerConfigJson ?: error("no tokenizer_config.json") + else -> error("not a text file: $file") + } + + override fun textOrNull(file: String): String? = if (file == LeafFiles.TOKENIZER_CONFIG) bytes.tokenizerConfigJson else text(file) + + override fun source(file: String): RandomAccessSource = when (file) { + LeafFiles.MODEL -> ByteArrayRandomAccessSource(bytes.model) + LeafFiles.DENSE_MODEL -> ByteArrayRandomAccessSource(bytes.denseModel) + else -> error("not a tensor file: $file") + } +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/LeafFiles.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/LeafFiles.kt new file mode 100644 index 0000000..5f1b2fa --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/engine/LeafFiles.kt @@ -0,0 +1,49 @@ +package sk.ainet.samples.emoji.engine + +/** + * The MongoDB LEAF retrieval encoder (`mdbr-leaf-ir`, Apache-2.0): a 6-layer BERT with hidden + * size 384, mean pooling and a `2_Dense` projection to 768 dimensions. Files are addressed by + * their path inside the Hugging Face repository, which is also the on-disk layout everywhere. + */ +object LeafFiles { + const val HF_REPO = "MongoDB/mdbr-leaf-ir" + const val HF_REVISION = "4262131b32c3182bd06e67e92ae69d7bd66e0c5c" + + const val MODEL = "model.safetensors" + const val CONFIG = "config.json" + const val TOKENIZER = "tokenizer.json" + const val TOKENIZER_CONFIG = "tokenizer_config.json" + const val DENSE_MODEL = "2_Dense/model.safetensors" + const val DENSE_CONFIG = "2_Dense/config.json" + const val POOLING_CONFIG = "1_Pooling/config.json" + + val ALL: List = listOf(MODEL, CONFIG, TOKENIZER, TOKENIZER_CONFIG, DENSE_MODEL, DENSE_CONFIG, POOLING_CONFIG) + + /** Sizes at [HF_REVISION], for progress reporting and truncation checks. */ + val SIZES: Map = mapOf( + MODEL to 90_272_656L, + CONFIG to 829L, + TOKENIZER to 711_661L, + TOKENIZER_CONFIG to 1_529L, + DENSE_MODEL to 1_182_880L, + DENSE_CONFIG to 137L, + POOLING_CONFIG to 321L, + ) + + fun url(file: String): String = "https://huggingface.co/$HF_REPO/resolve/$HF_REVISION/$file" +} + +/** Where the checkpoint files are: a directory (desktop, Android) or already-read bytes (web). */ +sealed interface LeafSource { + data class Directory(val path: String) : LeafSource + + class Bytes( + val model: ByteArray, + val denseModel: ByteArray, + val configJson: String, + val denseConfigJson: String, + val poolingConfigJson: String, + val tokenizerJson: String, + val tokenizerConfigJson: String?, + ) : LeafSource +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/model/LeafProvider.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/model/LeafProvider.kt new file mode 100644 index 0000000..faafb19 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/model/LeafProvider.kt @@ -0,0 +1,30 @@ +package sk.ainet.samples.emoji.model + +import sk.ainet.samples.emoji.engine.LeafSource + +/** + * Resolves the LEAF checkpoint onto this platform. Desktop and Android implementations do real + * file IO (cache hit โ†’ streamed Hugging Face download, one file at a time); the web build reads + * the bundled Compose resources directly and needs no provider. + */ +interface LeafProvider { + suspend fun resolve(onProgress: (String) -> Unit): LeafSource +} + +/** What to do for one checkpoint file, decided without touching any IO. */ +sealed interface FilePlan { + data class UseCached(val path: String) : FilePlan + data class Download(val path: String, val url: String) : FilePlan +} + +/** Pure resolution policy: a present, complete file is reused; otherwise it is downloaded. */ +object LeafResolver { + fun plan(targetPath: String, url: String, existingBytes: Long?, expectedBytes: Long?): FilePlan = when { + existingBytes == null -> FilePlan.Download(targetPath, url) + expectedBytes != null && existingBytes < expectedBytes -> FilePlan.Download(targetPath, url) + else -> FilePlan.UseCached(targetPath) + } + + /** Streamed downloads land here first, so an interrupted download never leaves a truncated target. */ + fun partPath(targetPath: String): String = "$targetPath.part" +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/platform/Platform.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/platform/Platform.kt new file mode 100644 index 0000000..b088989 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/platform/Platform.kt @@ -0,0 +1,36 @@ +package sk.ainet.samples.emoji.platform + +import kotlin.time.TimeSource + +/** Every target this sample runs on โ€” the fixed set the platform-chips row displays. */ +enum class SamplePlatform(val label: String) { + ANDROID("Android"), + DESKTOP("Desktop"), + WEB("Web"), +} + +/** Which of [SamplePlatform] this process is actually running as. */ +expect val currentSamplePlatform: SamplePlatform + +/** Human-readable label for the kernel path this platform/process is running โ€” shown in the UI. */ +expect fun kernelTierLabel(): String + +/** Reads a whole text file; only the filesystem targets (desktop, Android) implement it. */ +expect fun readTextFile(path: String): String + +/** Where the platform writes a log line โ€” `adb logcat` on Android, stdout elsewhere. */ +internal expect fun platformLog(line: String) + +private val processStart = TimeSource.Monotonic.markNow() + +/** One-line structured events: `event=... | +123ms | key=value`, greppable on every platform. */ +fun logEvent(name: String, vararg details: Pair) { + val line = buildString { + append("event=").append(name) + append(" | +").append(processStart.elapsedNow().inWholeMilliseconds).append("ms") + for ((key, value) in details) { + if (value != null) append(" | ").append(key).append('=').append(value) + } + } + platformLog(line) +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/verify/Verifier.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/verify/Verifier.kt new file mode 100644 index 0000000..589d163 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/verify/Verifier.kt @@ -0,0 +1,42 @@ +package sk.ainet.samples.emoji.verify + +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.emptyFlow +import sk.ainet.samples.emoji.domain.CatalogItem + +/** A decision model's verdict on one candidate item for the current query. */ +data class Verdict( + val itemId: String, + /** `P(item matches query)` as the model sees it; null when the model failed on this item. */ + val probabilityTrue: Double?, + /** The accepted decision under the policy; null when the model abstained or failed. */ + val accepted: Boolean?, + val millis: Long, +) + +sealed interface VerifierState { + /** No verifier built in, or the device cannot run it; the reason shows in the UI. */ + data class Disabled(val reason: String) : VerifierState + data object Idle : VerifierState + data class Loading(val message: String) : VerifierState + data class Busy(val done: Int, val total: Int) : VerifierState + data class Error(val message: String) : VerifierState +} + +/** + * The second stage ("System 2"): a typed decision model asked, per candidate, whether the + * item matches the query. Implementations stream one [Verdict] per item in rank order and + * stop as soon as the collector is cancelled, which happens whenever the query changes. + */ +interface Verifier { + val state: StateFlow + fun verify(query: String, items: List): Flow +} + +/** The web build and any build without `-PlayaVerifier=true`. */ +class NoopVerifier(reason: String = "not built in") : Verifier { + override val state: StateFlow = MutableStateFlow(VerifierState.Disabled(reason)) + override fun verify(query: String, items: List): Flow = emptyFlow() +} diff --git a/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModel.kt b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModel.kt new file mode 100644 index 0000000..d060634 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonMain/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModel.kt @@ -0,0 +1,163 @@ +package sk.ainet.samples.emoji.vm + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlin.time.TimeSource +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.debounce +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.mapLatest +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.domain.RankedItem +import sk.ainet.samples.emoji.domain.Tier +import sk.ainet.samples.emoji.engine.CatalogIndex +import sk.ainet.samples.emoji.engine.EmbeddingEngine +import sk.ainet.samples.emoji.platform.logEvent +import sk.ainet.samples.emoji.verify.NoopVerifier +import sk.ainet.samples.emoji.verify.Verdict +import sk.ainet.samples.emoji.verify.Verifier + +sealed interface LoadState { + data object Idle : LoadState + data class Loading(val message: String) : LoadState + data object Ready : LoadState + data class Failed(val message: String) : LoadState +} + +/** Timings the diagnostics row shows; all milliseconds. */ +data class SearchStats( + val modelLoadMs: Long = 0, + val indexBuildMs: Long = 0, + val lastQueryMs: Long = 0, + val p50QueryMs: Long = 0, + val queries: Int = 0, +) + +/** + * Drives model loading, the per-keystroke ranking and the optional second-stage verifier. + * Everything platform-specific (where the checkpoint comes from, how the index is obtained, + * which verifier exists) is injected, so the class runs under `runTest` with fakes. + * + * Ranking: the query flow is debounced by [debounceMs]; `mapLatest` drops a sweep when a newer + * query arrives. Verification: once the ranking has been stable for [stableMs], the top + * [verifierTopK] items go to the [verifier], whose verdicts stream in one by one and are + * cleared the moment the query changes. + */ +@OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class) +class EmojiSearchViewModel( + private val loadEngine: suspend (onProgress: (String) -> Unit) -> EmbeddingEngine, + private val loadIndex: suspend (engine: EmbeddingEngine, onProgress: (String) -> Unit) -> CatalogIndex, + private val calibration: Calibration, + val verifier: Verifier = NoopVerifier(), + private val embedDispatcher: CoroutineDispatcher = Dispatchers.Default, + private val debounceMs: Long = 120, + private val stableMs: Long = 500, + private val verifierTopK: Int = 6, +) : ViewModel() { + + val query = MutableStateFlow("") + + private val _status = MutableStateFlow(LoadState.Idle) + val status: StateFlow = _status + + private val _ranked = MutableStateFlow>(emptyList()) + val ranked: StateFlow> = _ranked + + private val _verdicts = MutableStateFlow>(emptyMap()) + val verdicts: StateFlow> = _verdicts + + private val _stats = MutableStateFlow(SearchStats()) + val stats: StateFlow = _stats + + private val queryTimings = ArrayList() + private var engine: EmbeddingEngine? = null + private var index: CatalogIndex? = null + + init { + viewModelScope.launch { load() } + } + + private suspend fun load() { + try { + _status.value = LoadState.Loading("Loading modelโ€ฆ") + val started = TimeSource.Monotonic.markNow() + val e = withContext(embedDispatcher) { loadEngine { _status.value = LoadState.Loading(it) } } + val loadMs = started.elapsedNow().inWholeMilliseconds + val indexStart = TimeSource.Monotonic.markNow() + val idx = withContext(embedDispatcher) { loadIndex(e) { _status.value = LoadState.Loading(it) } } + val indexMs = indexStart.elapsedNow().inWholeMilliseconds + engine = e + index = idx + _stats.update { it.copy(modelLoadMs = loadMs, indexBuildMs = indexMs) } + _ranked.value = idx.unranked() + _status.value = LoadState.Ready + logEvent("model_ready", "loadMs" to loadMs, "indexMs" to indexMs, "items" to idx.items.size, "dims" to idx.dimensions) + startSearchLoop() + startVerifierLoop() + } catch (t: Throwable) { + logEvent("model_failed", "error" to (t.message ?: t::class.simpleName)) + _status.value = LoadState.Failed(t.message ?: t::class.simpleName ?: "unknown error") + } + } + + private fun startSearchLoop() { + viewModelScope.launch { + query + .debounce(debounceMs) + .distinctUntilChanged() + .mapLatest { q -> rank(q) } + .collect { result -> + _verdicts.value = emptyMap() + _ranked.value = result + } + } + } + + private fun startVerifierLoop() { + viewModelScope.launch { + _ranked + .debounce(stableMs) + .mapLatest { ranked -> verify(ranked) } + .collect() + } + } + + private suspend fun rank(q: String): List { + val idx = index ?: return emptyList() + val e = engine ?: return emptyList() + if (q.isBlank()) return idx.unranked() + return withContext(embedDispatcher) { + val started = TimeSource.Monotonic.markNow() + val vector = e.embedQuery(q.trim()) + val ranked = idx.rank(vector, calibration) + val ms = started.elapsedNow().inWholeMilliseconds + recordTiming(ms) + ranked + } + } + + private suspend fun verify(ranked: List) { + val q = query.value.trim() + if (q.isBlank() || ranked.isEmpty()) return + val top = ranked.filter { it.tier == Tier.TOP }.take(verifierTopK).ifEmpty { ranked.take(3) } + verifier.verify(q, top.map { it.item }).collect { verdict -> + _verdicts.update { it + (verdict.itemId to verdict) } + } + } + + private fun recordTiming(ms: Long) { + queryTimings += ms + if (queryTimings.size > 50) queryTimings.removeAt(0) + val sorted = queryTimings.sorted() + _stats.update { it.copy(lastQueryMs = ms, p50QueryMs = sorted[sorted.size / 2], queries = it.queries + 1) } + } +} diff --git a/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/domain/CalibrationTest.kt b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/domain/CalibrationTest.kt new file mode 100644 index 0000000..4e453d0 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/domain/CalibrationTest.kt @@ -0,0 +1,36 @@ +package sk.ainet.samples.emoji.domain + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith +import kotlin.test.assertTrue + +class CalibrationTest { + @Test + fun confidence_is_monotonic_and_crosses_the_threshold_at_the_reported_cosine() { + val c = Calibration(k = 12.0, x0 = 0.4) + val values = (0..20).map { c.confidence(it / 20.0) } + assertTrue(values.zipWithNext().all { (a, b) -> b >= a }, "monotonic: $values") + assertEquals(0.5, c.confidence(c.cosineAtThreshold), 1e-9) + assertTrue(c.isTop(c.cosineAtThreshold + 1e-6)) + assertTrue(!c.isTop(c.cosineAtThreshold - 1e-6)) + } + + @Test + fun fit_separates_two_clusters() { + val positives = listOf(0.62, 0.70, 0.55, 0.66, 0.58, 0.74).map { it to true } + val negatives = listOf(0.10, 0.22, 0.31, 0.18, 0.27, 0.35, 0.05).map { it to false } + val fitted = Calibration.fit(positives + negatives, steps = 3000) + assertTrue(fitted.k > 0, "slope positive: $fitted") + assertTrue(fitted.cosineAtThreshold in 0.35..0.55, "boundary between the clusters: $fitted") + assertEquals(1.0, fitted.accuracy, 1e-9) + assertEquals(1.0, fitted.f1, 1e-9) + assertFailsWith { Calibration.fit(positives) } + } + + @Test + fun json_round_trip() { + val c = Calibration(k = 9.5, x0 = 0.41, threshold = 0.6, maxTop = 8, queries = 30, accuracy = 0.93, f1 = 0.4) + assertEquals(c, Calibration.parse(Calibration.encode(c))) + } +} diff --git a/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/engine/CatalogIndexTest.kt b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/engine/CatalogIndexTest.kt new file mode 100644 index 0000000..72567ae --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/engine/CatalogIndexTest.kt @@ -0,0 +1,56 @@ +package sk.ainet.samples.emoji.engine + +import kotlin.math.sqrt +import kotlin.test.Test +import kotlin.test.assertContentEquals +import kotlin.test.assertEquals +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.domain.CatalogItem +import sk.ainet.samples.emoji.domain.Tier + +class CatalogIndexTest { + private val items = listOf( + CatalogItem("A", "๐Ÿ•", "pizza", "Pizza", listOf("cheese", "slice"), listOf("Kรคse")), + CatalogItem("B", "๐Ÿฅ—", "green salad", "Salat", listOf("food", "green"), listOf("gesund")), + CatalogItem("C", "๐ŸŽธ", "guitar", "Gitarre", listOf("music"), listOf("Musik")), + ) + + private fun unit(vararg v: Float): FloatArray { + val n = sqrt(v.sumOf { (it * it).toDouble() }).toFloat() + return FloatArray(v.size) { v[it] / n } + } + + private val vectors = unit(1f, 0f, 0f) + unit(0.8f, 0.6f, 0f) + unit(0f, 0f, 1f) + private val index = CatalogIndex(items, vectors, dimensions = 3) + private val calibration = Calibration(k = 20.0, x0 = 0.7) + + @Test + fun rank_sorts_by_cosine_and_applies_the_tier() { + val ranked = index.rank(unit(1f, 0f, 0f), calibration) + assertEquals(listOf("A", "B", "C"), ranked.map { it.item.id }) + assertEquals(1f, ranked[0].cosine, 1e-6f) + assertEquals(0.8f, ranked[1].cosine, 1e-6f) + assertEquals(listOf(Tier.TOP, Tier.TOP, Tier.REST), ranked.map { it.tier }) + val capped = index.rank(unit(1f, 0f, 0f), calibration.copy(maxTop = 1)) + assertEquals(listOf(Tier.TOP, Tier.REST, Tier.REST), capped.map { it.tier }, "maxTop caps the top tier") + } + + @Test + fun bytes_round_trip_little_endian() { + val restored = CatalogIndex.fromBytes(items, index.toBytes(), dimensions = 3) + assertContentEquals(index.vectors, restored.vectors) + assertEquals(3, restored.dimensions) + } + + @Test + fun build_uses_the_shared_embedding_text() { + val seen = ArrayList() + val engine = object : EmbeddingEngine { + override val dimensions = 3 + override fun embed(text: String): FloatArray { seen += text; return unit(1f, 1f, 1f) } + } + val built = CatalogIndex.build(items, engine) + assertEquals(listOf("pizza. cheese, slice. Pizza", "green salad. food, green. Salat", "guitar. music. Gitarre"), seen) + assertEquals(9, built.vectors.size) + } +} diff --git a/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModelTest.kt b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModelTest.kt new file mode 100644 index 0000000..e05ff0c --- /dev/null +++ b/SemanticEmojiFilter/shared/src/commonTest/kotlin/sk/ainet/samples/emoji/vm/EmojiSearchViewModelTest.kt @@ -0,0 +1,107 @@ +package sk.ainet.samples.emoji.vm + +import kotlin.test.AfterTest +import kotlin.test.BeforeTest +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.advanceTimeBy +import kotlinx.coroutines.test.resetMain +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.domain.CatalogItem +import sk.ainet.samples.emoji.engine.CatalogIndex +import sk.ainet.samples.emoji.engine.EmbeddingEngine +import sk.ainet.samples.emoji.verify.Verdict +import sk.ainet.samples.emoji.verify.Verifier +import sk.ainet.samples.emoji.verify.VerifierState + +@OptIn(ExperimentalCoroutinesApi::class) +class EmojiSearchViewModelTest { + private val dispatcher = StandardTestDispatcher() + + @BeforeTest fun setMain() = Dispatchers.setMain(dispatcher) + @AfterTest fun resetMainDispatcher() = Dispatchers.resetMain() + + private val items = listOf( + CatalogItem("A", "๐Ÿ•", "pizza", "Pizza"), + CatalogItem("B", "๐Ÿฅ—", "salad", "Salat"), + CatalogItem("C", "๐ŸŽธ", "guitar", "Gitarre"), + ) + + /** Query "food" points at A and B, "music" at C. */ + private class FakeEngine : EmbeddingEngine { + val embedded = ArrayList() + override val dimensions = 3 + override fun embedQuery(text: String): FloatArray = embed(text) // symmetric fake, no retrieval prompt + override fun embed(text: String): FloatArray { + embedded += text + return when { + "music" in text -> floatArrayOf(0f, 0f, 1f) + else -> floatArrayOf(0.8f, 0.6f, 0f) + } + } + } + + private class RecordingVerifier : Verifier { + val calls = ArrayList>>() + override val state: StateFlow = MutableStateFlow(VerifierState.Idle) + override fun verify(query: String, items: List): Flow = flow { + calls += query to items.map { it.id } + for (item in items) emit(Verdict(item.id, 0.9, true, 1)) + } + } + + private val vectors = floatArrayOf(1f, 0f, 0f, 0.8f, 0.6f, 0f, 0f, 0f, 1f) + + private fun viewModel(engine: FakeEngine, verifier: RecordingVerifier) = EmojiSearchViewModel( + loadEngine = { engine }, + loadIndex = { _, _ -> CatalogIndex(items, vectors, 3) }, + calibration = Calibration(k = 20.0, x0 = 0.7), + verifier = verifier, + embedDispatcher = dispatcher, + debounceMs = 120, + stableMs = 500, + verifierTopK = 6, + ) + + @Test + fun fast_keystrokes_collapse_into_one_embedding_and_the_verifier_waits_for_a_stable_query() = runTest(dispatcher) { + val engine = FakeEngine() + val verifier = RecordingVerifier() + val vm = viewModel(engine, verifier) + runCurrent() + assertEquals(LoadState.Ready, vm.status.value) + assertEquals(3, vm.ranked.value.size, "unranked catalog shown before typing") + + for (q in listOf("f", "fo", "foo", "food")) { + vm.query.value = q + advanceTimeBy(30) + } + advanceTimeBy(130) + runCurrent() + assertEquals(listOf("food"), engine.embedded, "one embedding for five fast keystrokes") + assertEquals(listOf("B", "A", "C"), vm.ranked.value.map { it.item.id }, "salad (B) is the exact match, pizza (A) close behind") + assertTrue(verifier.calls.isEmpty(), "verifier not called before the query is stable") + + advanceTimeBy(600) + runCurrent() + assertEquals(listOf("food" to listOf("B", "A")), verifier.calls, "only the TOP tier goes to the verifier, in rank order") + assertEquals(setOf("A", "B"), vm.verdicts.value.keys) + + vm.query.value = "music" + advanceTimeBy(130) + runCurrent() + assertTrue(vm.verdicts.value.isEmpty(), "verdicts cleared when the query changes") + assertEquals("C", vm.ranked.value.first().item.id) + } +} diff --git a/SemanticEmojiFilter/shared/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/model/LeafDownloads.kt b/SemanticEmojiFilter/shared/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/model/LeafDownloads.kt new file mode 100644 index 0000000..ba06485 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/model/LeafDownloads.kt @@ -0,0 +1,68 @@ +package sk.ainet.samples.emoji.model + +import java.io.File +import kotlin.time.TimeSource +import kotlinx.io.Buffer +import kotlinx.io.buffered +import kotlinx.io.files.SystemFileSystem +import sk.ainet.data.source.KtorRemoteDataSourceFetcher +import sk.ainet.samples.emoji.engine.LeafFiles +import sk.ainet.samples.emoji.platform.logEvent +import kotlinx.io.files.Path as KotlinxPath + +/** + * Fetches every checkpoint file that is missing or truncated in [dir], streamed straight to + * disk through SKaiNET's Ktor fetcher: the 90 MB encoder never sits on the heap. Shared by the + * desktop and the Android provider (both are JVM code). + */ +suspend fun downloadMissingLeafFiles(dir: File, onProgress: (String) -> Unit, headers: Map = emptyMap()) { + val plans = LeafFiles.ALL.map { file -> + val target = File(dir, file) + LeafResolver.plan(target.path, LeafFiles.url(file), target.takeIf { it.isFile }?.length(), LeafFiles.SIZES[file]) + } + val downloads = plans.filterIsInstance() + if (downloads.isEmpty()) { + logEvent("model_cached", "dir" to dir.path) + return + } + val fetcher = KtorRemoteDataSourceFetcher() + try { + for (plan in downloads) { + val target = File(plan.path) + target.parentFile.mkdirs() + val tmp = File(LeafResolver.partPath(plan.path)) + val startedAt = TimeSource.Monotonic.markNow() + var received = 0L + logEvent("download_start", "url" to plan.url) + try { + val content = fetcher.fetch(plan.url, headers) + val totalMb = content.sizeBytes?.let { (it / 1_000_000).toString() } ?: "?" + content.source.use { source -> + SystemFileSystem.sink(KotlinxPath(tmp.path)).buffered().use { sink -> + val chunk = Buffer() + var lastReported = -1L + while (true) { + val n = source.readAtMostTo(chunk, 1024 * 1024) + if (n == -1L) break + sink.write(chunk, n) + received += n + val mb = received / 1_000_000 + if (mb != lastReported) { + lastReported = mb + onProgress("Downloading ${target.name}โ€ฆ $mb / $totalMb MB") + } + } + } + } + check(tmp.renameTo(target)) { "rename failed: $tmp -> $target" } + logEvent("download_done", "file" to target.name, "fileMB" to received / 1_000_000, "durMs" to startedAt.elapsedNow().inWholeMilliseconds) + } catch (e: Exception) { + tmp.delete() + logEvent("download_failed", "file" to target.name, "receivedMB" to received / 1_000_000, "error" to (e.message ?: e::class.simpleName)) + throw e + } + } + } finally { + fetcher.close() + } +} diff --git a/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/model/DesktopLeafProvider.kt b/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/model/DesktopLeafProvider.kt new file mode 100644 index 0000000..9f0d396 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/model/DesktopLeafProvider.kt @@ -0,0 +1,23 @@ +package sk.ainet.samples.emoji.model + +import java.io.File +import sk.ainet.samples.emoji.engine.LeafSource + +/** + * Desktop has no bundled-asset concept, so this is cache-hit-or-download per file: the + * checkpoint lands in `~/.skainet-examples/semantic-emoji-filter/leaf/` in the Hugging Face + * layout and is reused across runs (and by the CLI). + */ +class DesktopLeafProvider( + private val cacheDir: String = defaultLeafCacheDir(), +) : LeafProvider { + override suspend fun resolve(onProgress: (String) -> Unit): LeafSource { + val dir = File(cacheDir).apply { mkdirs() } + downloadMissingLeafFiles(dir, onProgress) + return LeafSource.Directory(dir.path) + } +} + +fun defaultLeafCacheDir(): String = + System.getenv("LEAF_MODEL_DIR")?.takeIf { it.isNotBlank() } + ?: File(System.getProperty("user.home"), ".skainet-examples/semantic-emoji-filter/leaf").path diff --git a/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/platform/Platform.jvm.kt b/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/platform/Platform.jvm.kt new file mode 100644 index 0000000..925ce84 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmMain/kotlin/sk/ainet/samples/emoji/platform/Platform.jvm.kt @@ -0,0 +1,16 @@ +package sk.ainet.samples.emoji.platform + +import java.io.File +import sk.ainet.exec.kernel.PanamaVectorKernelProvider + +actual val currentSamplePlatform: SamplePlatform = SamplePlatform.DESKTOP + +/** Static capability probe, so the label is right before the kernel registry is populated. */ +actual fun kernelTierLabel(): String = + if (PanamaVectorKernelProvider.isAvailable()) "Panama Vector (SIMD)" else "JVM (scalar)" + +actual fun readTextFile(path: String): String = File(path).readText() + +internal actual fun platformLog(line: String) { + println("[SKAINET_PERF_JVM] $line") +} diff --git a/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/CatalogSchemaTest.kt b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/CatalogSchemaTest.kt new file mode 100644 index 0000000..908d7f6 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/CatalogSchemaTest.kt @@ -0,0 +1,48 @@ +package sk.ainet.samples.emoji + +import java.io.File +import java.security.MessageDigest +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import sk.ainet.samples.emoji.domain.Catalog + +/** The bundled catalog files, read relative to the module directory. */ +object CatalogFiles { + val dir: File = listOf("../composeApp/src/commonMain/composeResources/files/catalog", "composeApp/src/commonMain/composeResources/files/catalog") + .map { File(it) }.first { it.isDirectory } + val catalog: Catalog by lazy { Catalog.parse(File(dir, "catalog.json").readText()) } + val embeddings: File get() = File(dir, "catalog-embeddings.bin") +} + +class CatalogSchemaTest { + private val allowedTags = setOf("food", "healthy", "indulgent", "health", "sick", "music", "rock-band", "animal", "weather", "nature", "sport", "travel", "emotion", "object", "everyday") + + @Test + fun catalog_is_complete_and_bilingual() { + val c = CatalogFiles.catalog + assertTrue(c.items.size >= 150, "catalog has ${c.items.size} items") + assertEquals(Catalog.EMBEDDING_TEXT_VERSION, c.embeddingTextVersion) + for (item in c.items) { + assertTrue(item.emoji.isNotBlank() && item.nameEn.isNotBlank() && item.nameDe.isNotBlank(), "names for ${item.id}") + assertTrue(item.keywordsEn.isNotEmpty(), "English keywords for ${item.id}") + assertTrue(item.tags.isNotEmpty() && item.tags.all { it in allowedTags }, "tags of ${item.id}: ${item.tags}") + assertTrue(item.group.isNotBlank(), "group of ${item.id}") + } + assertTrue(c.items.any { it.id == "1F355" } && c.items.any { it.id == "1F957" }, "the showcase pair pizza and salad is present") + } + + @Test + fun shipped_embeddings_match_the_catalog_digest() { + val c = CatalogFiles.catalog + val bin = CatalogFiles.embeddings + if (!bin.isFile) { + println("catalog-embeddings.bin not generated yet (run the CLI embed-catalog); skipping") + return + } + val bytes = bin.readBytes() + assertEquals(c.items.size * 768 * 4, bytes.size, "one 768-d float32 row per item") + val sha = MessageDigest.getInstance("SHA-256").digest(bytes).joinToString("") { "%02x".format(it) } + assertEquals(c.embeddingsSha256, sha, "catalog.json records the digest of the shipped embeddings") + } +} diff --git a/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/EmbeddingParityTest.kt b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/EmbeddingParityTest.kt new file mode 100644 index 0000000..14a637d --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/EmbeddingParityTest.kt @@ -0,0 +1,55 @@ +package sk.ainet.samples.emoji + +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlinx.coroutines.runBlocking +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import sk.ainet.samples.emoji.engine.CatalogIndex +import sk.ainet.samples.emoji.engine.LeafEmbeddingEngine +import sk.ainet.samples.emoji.engine.LeafSource + +@Serializable +data class ReferenceEmbedding(val text: String, val isQuery: Boolean = false, val vector: List) + +/** + * Model-gated (needs `LEAF_MODEL_DIR` with the checkpoint): re-embeds the catalog and checks + * it against the shipped embeddings, and against reference vectors from `sentence-transformers` + * when `reference-subset.json` is present. + */ +class EmbeddingParityTest { + private val modelDir = System.getenv("LEAF_MODEL_DIR")?.takeIf { File(it, "model.safetensors").isFile } + + @Test + fun shipped_embeddings_are_reproduced_by_the_engine() { + val dir = modelDir ?: run { println("LEAF_MODEL_DIR not set; skipping"); return } + if (!CatalogFiles.embeddings.isFile) { println("no catalog-embeddings.bin; skipping"); return } + val engine = runBlocking { LeafEmbeddingEngine.load(LeafSource.Directory(dir)) } + val catalog = CatalogFiles.catalog + val shipped = CatalogIndex.fromBytes(catalog.items, CatalogFiles.embeddings.readBytes(), engine.dimensions) + val rebuilt = CatalogIndex.build(catalog.items, engine) + var worst = 1f + for (i in catalog.items.indices) { + val c = CatalogIndex.cosine(shipped.vector(i), rebuilt.vector(i)) + if (c < worst) worst = c + assertTrue(c >= 0.999f, "item ${catalog.items[i].id}: cosine to shipped embedding $c") + } + println("parity: worst cosine to the shipped embeddings $worst") + } + + @Test + fun reference_vectors_from_sentence_transformers_agree() { + val dir = modelDir ?: return + val ref = File(CatalogFiles.dir, "reference-subset.json").takeIf { it.isFile } ?: run { println("no reference-subset.json; skipping"); return } + val engine = runBlocking { LeafEmbeddingEngine.load(LeafSource.Directory(dir)) } + val refs = Json { ignoreUnknownKeys = true }.decodeFromString>(ref.readText()) + for (r in refs) { + val ours = if (r.isQuery) engine.embedQuery(r.text) else engine.embed(r.text) + assertEquals(r.vector.size, ours.size) + val c = CatalogIndex.cosine(ours, r.vector.toFloatArray()) + assertTrue(c >= 0.99f, "'${r.text}': cosine to the reference $c") + } + } +} diff --git a/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/RankingGoldenTest.kt b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/RankingGoldenTest.kt new file mode 100644 index 0000000..7770f17 --- /dev/null +++ b/SemanticEmojiFilter/shared/src/jvmTest/kotlin/sk/ainet/samples/emoji/RankingGoldenTest.kt @@ -0,0 +1,53 @@ +package sk.ainet.samples.emoji + +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import sk.ainet.samples.emoji.domain.Calibration +import sk.ainet.samples.emoji.engine.CatalogIndex + +@Serializable +data class GoldenQuery(val query: String, val vector: List, val expectedTop: List) + +/** + * Ranks the recorded query vectors against the shipped catalog embeddings: exercises the sweep, + * the calibration and the catalog files together without loading the model. + */ +class RankingGoldenTest { + private val goldenFile = File(CatalogFiles.dir, "golden-queries.json") + + @Test + fun recorded_queries_rank_their_expected_items_first() { + if (!goldenFile.isFile || !CatalogFiles.embeddings.isFile) { + println("golden files not generated yet (CLI embed-catalog + golden); skipping") + return + } + val catalog = CatalogFiles.catalog + val index = CatalogIndex.fromBytes(catalog.items, CatalogFiles.embeddings.readBytes()) + val calibration = Calibration.parse(File(CatalogFiles.dir, "calibration.json").readText()) + val goldens = Json { ignoreUnknownKeys = true }.decodeFromString>(goldenFile.readText()) + assertTrue(goldens.size >= 3) + for (g in goldens) { + val ranked = index.rank(g.vector.toFloatArray(), calibration) + assertEquals(g.expectedTop, ranked.take(g.expectedTop.size).map { it.item.id }, "top of '${g.query}'") + assertTrue(ranked.first().confidence >= ranked.last().confidence, "confidence follows cosine for '${g.query}'") + } + } + + @Test + fun the_showcase_pair_is_ordered_as_the_demo_claims() { + if (!goldenFile.isFile || !CatalogFiles.embeddings.isFile) return + val catalog = CatalogFiles.catalog + val index = CatalogIndex.fromBytes(catalog.items, CatalogFiles.embeddings.readBytes()) + val calibration = Calibration.parse(File(CatalogFiles.dir, "calibration.json").readText()) + val healthy = Json { ignoreUnknownKeys = true }.decodeFromString>(goldenFile.readText()).first { it.query == "healthy things to eat" } + val ranked = index.rank(healthy.vector.toFloatArray(), calibration) + val salad = ranked.indexOfFirst { it.item.id == "1F957" } + val pizza = ranked.indexOfFirst { it.item.id == "1F355" } + assertTrue(salad in 0 until 10, "salad is in the top ten for a healthy query (rank $salad)") + assertTrue(salad < pizza, "salad ranks above pizza by vector alone (salad $salad, pizza $pizza)") + } +} diff --git a/SemanticEmojiFilter/shared/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/platform/Platform.wasmJs.kt b/SemanticEmojiFilter/shared/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/platform/Platform.wasmJs.kt new file mode 100644 index 0000000..eb11b7c --- /dev/null +++ b/SemanticEmojiFilter/shared/src/wasmJsMain/kotlin/sk/ainet/samples/emoji/platform/Platform.wasmJs.kt @@ -0,0 +1,11 @@ +package sk.ainet.samples.emoji.platform + +actual val currentSamplePlatform: SamplePlatform = SamplePlatform.WEB + +actual fun kernelTierLabel(): String = "Wasm (scalar)" + +actual fun readTextFile(path: String): String = error("the web build has no filesystem ($path); use LeafSource.Bytes") + +internal actual fun platformLog(line: String) { + println("[SKAINET_PERF_WASM] $line") +} diff --git a/SemanticEmojiFilter/verifier/build.gradle.kts b/SemanticEmojiFilter/verifier/build.gradle.kts new file mode 100644 index 0000000..f3e06e6 --- /dev/null +++ b/SemanticEmojiFilter/verifier/build.gradle.kts @@ -0,0 +1,52 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +// The Laya decision model as a second-stage verifier. Desktop and Android only: the checkpoint +// is 644 MB of F16 weights (about 1.3 GB as FP32 in memory), far outside the web budget. +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.androidMultiplatformLibrary) +} + +kotlin { + jvmToolchain(21) + + android { + namespace = "sk.ainet.samples.emoji.verifier" + compileSdk = libs.versions.android.compileSdk.get().toInt() + minSdk = libs.versions.android.minSdk.get().toInt() + compilerOptions { + jvmTarget.set(JvmTarget.JVM_21) + } + } + + jvm() + + sourceSets { + commonMain.dependencies { + api(projects.shared) + implementation(libs.kotlinx.coroutines) + api(libs.skainet.transformers.decisions.api) + implementation(libs.skainet.transformers.decisions.runtime) + implementation(libs.skainet.transformers.inference.laya) + } + // Desktop and Android share the file-based checkpoint source (both are JVM code). + val jvmAndroidMain by creating { + dependsOn(commonMain.get()) + dependencies { + implementation(libs.kotlinx.io.core) + implementation(libs.skainet.data.source) + } + } + jvmMain { dependsOn(jvmAndroidMain) } + androidMain { dependsOn(jvmAndroidMain) } + commonTest.dependencies { + implementation(libs.kotlin.test) + implementation(libs.kotlinx.coroutines.test) + } + } +} + +tasks.withType().configureEach { + jvmArgs("--add-modules", "jdk.incubator.vector", "--enable-preview", "-Dskainet.cpu.vector.enabled=true") + maxHeapSize = "6g" +} diff --git a/SemanticEmojiFilter/verifier/src/androidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.android.kt b/SemanticEmojiFilter/verifier/src/androidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.android.kt new file mode 100644 index 0000000..839217d --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/androidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.android.kt @@ -0,0 +1,46 @@ +package sk.ainet.samples.emoji.verifier + +import android.content.Context +import java.io.File +import kotlinx.coroutines.runBlocking +import sk.ainet.context.ExecutionContext +import sk.ainet.io.AndroidRandomAccessSource +import sk.ainet.io.safetensors.SafeTensorsParametersLoader +import sk.ainet.io.weights.WeightTensor +import sk.ainet.lang.types.FP32 +import sk.ainet.models.laya.LayaAgent +import sk.ainet.models.laya.LayaCheckpointFiles +import sk.ainet.models.laya.LayaDecisionModel +import sk.ainet.models.laya.LayaPreprocessor +import sk.ainet.models.laya.LayaWeightPreparation + +/** + * The library's `LayaModelLoader` is JVM-only (java.nio.file); this is the same six steps over + * Android's file source. F16 weights are up-cast to FP32 on load, as the reference does on CPU. + */ +actual fun loadLayaAgent(directory: String, ctx: ExecutionContext): LayaAgent { + val dir = File(directory) + fun text(path: String) = File(dir, path).readText() + val files = LayaCheckpointFiles( + agentConfigJson = text("rl_agent_config.json"), + encoderConfigJson = text("encoder/config.json"), + tokenizerJson = text("tokenizer/tokenizer.json"), + tokenizerConfigJson = text("tokenizer/tokenizer_config.json"), + ) + val preprocessor = LayaPreprocessor.fromFiles(files) + val weights = File(dir, "model.safetensors") + require(weights.isFile) { "no model.safetensors in $directory" } + val raw = ArrayList>() + runBlocking { + SafeTensorsParametersLoader(sourceProvider = { AndroidRandomAccessSource.open(weights) }) + .load(ctx, FP32::class) { name, tensor -> + raw += WeightTensor(name, tensor.shape.dimensions.toList(), tensor) + } + } + val prepared = LayaWeightPreparation.prepare(raw, preprocessor.encoderConfig, preprocessor.agentConfig, ctx, FP32::class) + val model = LayaDecisionModel.build(preprocessor.encoderConfig, preprocessor.agentConfig, prepared, ctx, FP32::class, exactGelu = true) + return LayaAgent(preprocessor, model) +} + +/** Android: the checkpoint lands in `filesDir/laya-multilingual`. */ +fun layaAndroidSource(context: Context): DecisionAdapterSource = LayaFileSource(File(context.filesDir, "laya-multilingual")) diff --git a/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/DecisionAdapterSource.kt b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/DecisionAdapterSource.kt new file mode 100644 index 0000000..0779c87 --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/DecisionAdapterSource.kt @@ -0,0 +1,16 @@ +package sk.ainet.samples.emoji.verifier + +import sk.ainet.decisions.DecisionAdapter + +/** + * Where the decision model comes from. This is the seam a SKaiNET decision cartridge replaces + * later: today the Laya checkpoint is downloaded file by file and loaded through the + * transformers adapter; a cartridge-backed source would open a bundled or locally imported + * cartridge instead. Nothing above this interface knows the difference. + */ +interface DecisionAdapterSource { + val modelId: String + + /** Loads the model; called once, on the first verification, off the UI thread. */ + suspend fun open(onProgress: (String) -> Unit): DecisionAdapter +} diff --git a/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/EmojiMatchSchema.kt b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/EmojiMatchSchema.kt new file mode 100644 index 0000000..a1aca28 --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/EmojiMatchSchema.kt @@ -0,0 +1,46 @@ +package sk.ainet.samples.emoji.verifier + +import sk.ainet.decisions.dsl.DecisionSchema +import sk.ainet.decisions.dsl.decisionSchema +import sk.ainet.samples.emoji.domain.CatalogItem + +/** The one question the verifier asks per candidate, and the policy that turns a probability into a verdict. */ +object EmojiMatchSchema { + const val MODEL_ID = "laya-multilingual" + const val QUESTION = "match" + + const val STATEMENT = "The emoji described in the context is a good answer to the user's search." + const val WHEN_FALSE = "no, it does not fit the search" + const val WHEN_TRUE = "yes, it fits the search" + + val schema: DecisionSchema = schema() + + /** The schema with a different wording, for experiments from the CLI (`verify --statement ...`). */ + /** + * Acceptance band, measured on the base checkpoint (see README): it is conservative, so a + * candidate is rejected only below 0.2 and accepted from 0.6; in between the badge shows "?". + */ + const val REJECT_BELOW = 0.2 + const val ACCEPT_FROM = 0.6 + + fun schema(statement: String = STATEMENT, whenFalse: String = WHEN_FALSE, whenTrue: String = WHEN_TRUE, lower: Double = REJECT_BELOW, upper: Double = ACCEPT_FROM): DecisionSchema = + decisionSchema("emoji-match") { + model(MODEL_ID) + probability(QUESTION, statement) { + this.whenFalse = whenFalse + this.whenTrue = whenTrue + } + policy(version = "1") { + // P(true) <= lower rejects, >= upper accepts, in between the model abstains and the badge shows "?". + boolean { abstainBetween(lower, upper) } + } + } + + /** What the decision model reads: the query and one item with its English name and keywords. */ + fun state(query: String, item: CatalogItem): String = buildString { + append("User search: \"").append(query.trim()).append("\"\n") + append("Emoji: ").append(item.emoji).append(' ').append(item.nameEn) + if (item.keywordsEn.isNotEmpty()) append(" โ€” ").append(item.keywordsEn.take(6).joinToString(", ")) + if (item.nameDe.isNotBlank() && item.nameDe != item.nameEn) append(" (").append(item.nameDe).append(')') + } +} diff --git a/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.kt b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.kt new file mode 100644 index 0000000..a7e8a9b --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.kt @@ -0,0 +1,8 @@ +package sk.ainet.samples.emoji.verifier + +import sk.ainet.context.ExecutionContext +import sk.ainet.lang.types.FP32 +import sk.ainet.models.laya.LayaAgent + +/** Builds the agent from a checkpoint directory; the JVM has a loader in the library, Android replicates it. */ +expect fun loadLayaAgent(directory: String, ctx: ExecutionContext): LayaAgent diff --git a/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaCheckpoint.kt b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaCheckpoint.kt new file mode 100644 index 0000000..ef2357f --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaCheckpoint.kt @@ -0,0 +1,23 @@ +package sk.ainet.samples.emoji.verifier + +/** + * The multilingual Laya checkpoint (mmBERT-base encoder, Apache-2.0, Convai Innovations) as + * published on Hugging Face: a directory of five files, addressed by their path inside it. + */ +object LayaCheckpoint { + const val HF_REPO = "convaiinnovations/laya" + const val HF_REVISION = "7b928d828b7b0e022f929d9bd2e44165aa270148" + const val HF_DIR = "multilingual" + + val FILES: List = listOf( + "rl_agent_config.json", + "encoder/config.json", + "tokenizer/tokenizer.json", + "tokenizer/tokenizer_config.json", + "model.safetensors", + ) + + val SIZES: Map = mapOf("model.safetensors" to 643_835_514L) + + fun url(file: String): String = "https://huggingface.co/$HF_REPO/resolve/$HF_REVISION/$HF_DIR/$file" +} diff --git a/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifier.kt b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifier.kt new file mode 100644 index 0000000..5e7ca00 --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonMain/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifier.kt @@ -0,0 +1,114 @@ +package sk.ainet.samples.emoji.verifier + +import kotlin.time.TimeSource +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.ensureActive +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock +import kotlinx.coroutines.withContext +import sk.ainet.decisions.DecisionAdapter +import sk.ainet.decisions.boolean +import sk.ainet.decisions.probabilityTrue +import sk.ainet.decisions.runtime.DecisionRuntime +import sk.ainet.decisions.runtime.DecisionSession +import sk.ainet.decisions.runtime.decide +import sk.ainet.decisions.runtime.openSession +import sk.ainet.samples.emoji.domain.CatalogItem +import sk.ainet.samples.emoji.platform.logEvent +import sk.ainet.samples.emoji.verify.Verdict +import sk.ainet.samples.emoji.verify.Verifier +import sk.ainet.samples.emoji.verify.VerifierState + +/** + * System 2: asks the Laya decision model, per candidate, whether the item fits the search. + * + * One request per item, in rank order, on a single-threaded dispatcher: the adapter runs one + * encoder pass per question anyway, so this costs nothing extra and gives a cancellation point + * after every item (a few seconds each on a laptop) instead of one long uncancellable call. + * Verdicts are cached by (query, item), so retyping a query is free. + */ +@OptIn(ExperimentalCoroutinesApi::class) +class LayaVerifier( + private val source: DecisionAdapterSource, + private val schema: sk.ainet.decisions.dsl.DecisionSchema = EmojiMatchSchema.schema, + private val dispatcher: CoroutineDispatcher = Dispatchers.Default.limitedParallelism(1), + private val cacheSize: Int = 256, +) : Verifier { + private val _state = MutableStateFlow(VerifierState.Idle) + override val state: StateFlow = _state + + private val loadMutex = Mutex() + private var session: DecisionSession? = null + private var runtime: DecisionRuntime? = null + private val cache = LinkedHashMap() + + override fun verify(query: String, items: List): Flow = flow { + if (items.isEmpty()) return@flow + val open = try { + openSession() + } catch (t: Throwable) { + _state.value = VerifierState.Error(t.message ?: t::class.simpleName ?: "load failed") + logEvent("verifier_load_failed", "error" to (t.message ?: t::class.simpleName)) + return@flow + } + try { + items.forEachIndexed { index, item -> + _state.value = VerifierState.Busy(index, items.size) + val key = "$query\u0000${item.id}" + val verdict = cache[key] ?: withContext(dispatcher) { decide(open, query, item) }.also { remember(key, it) } + currentCoroutineContext().ensureActive() + emit(verdict) + } + } finally { + _state.value = VerifierState.Idle + } + } + + private suspend fun openSession(): DecisionSession = loadMutex.withLock { + session?.let { return it } + _state.value = VerifierState.Loading("loading ${source.modelId}โ€ฆ") + val started = TimeSource.Monotonic.markNow() + val adapter: DecisionAdapter = withContext(dispatcher) { source.open { _state.value = VerifierState.Loading(it) } } + val rt = DecisionRuntime(listOf(adapter)) + val s = rt.openSession(schema) + runtime = rt + session = s + logEvent("verifier_loaded", "model" to source.modelId, "loadMs" to started.elapsedNow().inWholeMilliseconds) + _state.value = VerifierState.Idle + s + } + + private fun decide(session: DecisionSession, query: String, item: CatalogItem): Verdict { + val started = TimeSource.Monotonic.markNow() + val result = session.decide(schema, "match-${item.id}", EmojiMatchSchema.state(query, item)) + val ms = started.elapsedNow().inWholeMilliseconds + val verdict = Verdict( + itemId = item.id, + probabilityTrue = result.probabilityTrue(EmojiMatchSchema.QUESTION), + accepted = result.boolean(EmojiMatchSchema.QUESTION), + millis = ms, + ) + logEvent("verifier_decision", "item" to item.id, "pTrue" to verdict.probabilityTrue, "accepted" to verdict.accepted, "ms" to ms) + return verdict + } + + private fun remember(key: String, verdict: Verdict) { + cache[key] = verdict + if (cache.size > cacheSize) cache.remove(cache.keys.first()) + } + + fun close() { + session?.close() + runtime?.close() + session = null + runtime = null + } +} + +private suspend fun currentCoroutineContext() = kotlinx.coroutines.currentCoroutineContext() diff --git a/SemanticEmojiFilter/verifier/src/commonTest/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifierTest.kt b/SemanticEmojiFilter/verifier/src/commonTest/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifierTest.kt new file mode 100644 index 0000000..25f25b0 --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/commonTest/kotlin/sk/ainet/samples/emoji/verifier/LayaVerifierTest.kt @@ -0,0 +1,94 @@ +package sk.ainet.samples.emoji.verifier + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNull +import kotlin.test.assertTrue +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.take +import kotlinx.coroutines.flow.toList +import kotlinx.coroutines.test.runTest +import sk.ainet.decisions.AdapterCapabilities +import sk.ainet.decisions.AdapterOutcome +import sk.ainet.decisions.CalibrationStatus +import sk.ainet.decisions.Confidence +import sk.ainet.decisions.ConfidenceDefinition +import sk.ainet.decisions.DecisionAdapter +import sk.ainet.decisions.DecisionQuestion +import sk.ainet.decisions.DecisionState +import sk.ainet.decisions.InferencePolicy +import sk.ainet.decisions.LanguageSupport +import sk.ainet.decisions.Prediction +import sk.ainet.decisions.Primitive +import sk.ainet.decisions.QuestionTrace +import sk.ainet.samples.emoji.domain.CatalogItem + +/** Reads the answer off the state text: pizza is a confident "no", salad a confident "yes", apple undecided. */ +private class ScriptedAdapter : DecisionAdapter { + val states = ArrayList() + var closed = false + + override val capabilities = AdapterCapabilities( + modelId = EmojiMatchSchema.MODEL_ID, primitives = setOf(Primitive.CHOICE, Primitive.SCORE, Primitive.BOOLEAN_PROBABILITY), + languages = LanguageSupport.Unrestricted, maxContextTokens = 512, maxOptionTokens = 192, maxOptions = 44, + maxQuestionsPerRequest = 64, batchSupport = false, backend = "test", precision = "fp32", + calibration = CalibrationStatus.UNVERIFIED, calibrationIdentity = "none", preprocessingVersion = "test/1", + ) + + override fun predict(state: DecisionState, questions: List, inference: InferencePolicy): List { + val text = (state as DecisionState.Text).text + states += text + val p = when { + "pizza" in text -> 0.12 + "salad" in text -> 0.91 + else -> 0.5 + } + return questions.map { q -> + AdapterOutcome.Candidate(q.id, Prediction.BooleanProbability(p, Confidence(maxOf(p, 1 - p), ConfidenceDefinition.TWO_WAY_MAX)), QuestionTrace(q.id, 40, 20, 0)) + } + } + + override fun close() { closed = true } +} + +private class ScriptedSource(val adapter: ScriptedAdapter = ScriptedAdapter()) : DecisionAdapterSource { + var opened = 0 + override val modelId = EmojiMatchSchema.MODEL_ID + override suspend fun open(onProgress: (String) -> Unit): sk.ainet.decisions.DecisionAdapter { opened++; return adapter } +} + +class LayaVerifierTest { + private val pizza = CatalogItem("1F355", "๐Ÿ•", "pizza", "Pizza", listOf("cheese", "food", "pepperoni", "pizza", "slice")) + private val salad = CatalogItem("1F957", "๐Ÿฅ—", "green salad", "Salat", listOf("food", "green", "salad")) + private val apple = CatalogItem("1F34E", "๐ŸŽ", "red apple", "roter Apfel", listOf("apple", "fruit", "red")) + + @Test + fun one_request_per_item_in_rank_order_with_typed_verdicts() = runTest { + val source = ScriptedSource() + val verifier = LayaVerifier(source, dispatcher = Dispatchers.Unconfined) + val verdicts = verifier.verify("healthy things to eat", listOf(salad, pizza, apple)).toList() + + assertEquals(listOf("1F957", "1F355", "1F34E"), verdicts.map { it.itemId }) + assertEquals(true, verdicts[0].accepted) + assertEquals(0.91, verdicts[0].probabilityTrue) + assertEquals(false, verdicts[1].accepted) + assertNull(verdicts[2].accepted, "0.5 lies inside the abstention band (${EmojiMatchSchema.REJECT_BELOW}, ${EmojiMatchSchema.ACCEPT_FROM})") + assertEquals(0.5, verdicts[2].probabilityTrue) + assertEquals(3, source.adapter.states.size, "one request per item") + assertTrue(source.adapter.states[0].startsWith("User search: \"healthy things to eat\"\nEmoji: ๐Ÿฅ— green salad โ€” food, green, salad"), source.adapter.states[0]) + assertEquals(1, source.opened, "the model loads once") + } + + @Test + fun cancellation_stops_after_the_current_item_and_repeats_hit_the_cache() = runTest { + val source = ScriptedSource() + val verifier = LayaVerifier(source, dispatcher = Dispatchers.Unconfined) + val first = verifier.verify("snack", listOf(pizza, salad, apple)).first() + assertEquals("1F355", first.itemId) + assertEquals(1, source.adapter.states.size, "the collector stopped after the first verdict") + + verifier.verify("snack", listOf(pizza, salad)).take(2).toList() + assertEquals(2, source.adapter.states.size, "pizza came from the cache, only salad was asked") + } +} diff --git a/SemanticEmojiFilter/verifier/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaFileSource.kt b/SemanticEmojiFilter/verifier/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaFileSource.kt new file mode 100644 index 0000000..69e995c --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/jvmAndroidMain/kotlin/sk/ainet/samples/emoji/verifier/LayaFileSource.kt @@ -0,0 +1,79 @@ +package sk.ainet.samples.emoji.verifier + +import java.io.File +import kotlin.time.TimeSource +import kotlinx.io.Buffer +import kotlinx.io.buffered +import kotlinx.io.files.SystemFileSystem +import sk.ainet.context.DirectCpuExecutionContext +import sk.ainet.data.source.KtorRemoteDataSourceFetcher +import sk.ainet.decisions.DecisionAdapter +import sk.ainet.models.laya.LayaDecisionAdapter +import sk.ainet.samples.emoji.platform.logEvent +import kotlinx.io.files.Path as KotlinxPath + +/** + * The checkpoint as a directory of downloaded files (desktop cache dir or Android filesDir), + * loaded through the transformers Laya adapter. The cartridge-backed source of the future + * implements the same [DecisionAdapterSource] and makes this class obsolete. + */ +class LayaFileSource( + private val directory: File, + private val headers: Map = emptyMap(), +) : DecisionAdapterSource { + override val modelId: String = EmojiMatchSchema.MODEL_ID + + override suspend fun open(onProgress: (String) -> Unit): DecisionAdapter { + directory.mkdirs() + downloadMissing(onProgress) + onProgress("building ${modelId} (FP32, exact GELU)โ€ฆ") + val started = TimeSource.Monotonic.markNow() + val agent = loadLayaAgent(directory.path, DirectCpuExecutionContext()) + logEvent("laya_loaded", "dir" to directory.path, "loadMs" to started.elapsedNow().inWholeMilliseconds) + return LayaDecisionAdapter(agent, modelId) + } + + private suspend fun downloadMissing(onProgress: (String) -> Unit) { + val missing = LayaCheckpoint.FILES.filter { file -> + val f = File(directory, file) + !f.isFile || (LayaCheckpoint.SIZES[file]?.let { f.length() < it } ?: false) + } + if (missing.isEmpty()) return + val fetcher = KtorRemoteDataSourceFetcher() + try { + for (file in missing) { + val target = File(directory, file).also { it.parentFile.mkdirs() } + val tmp = File(target.path + ".part") + var received = 0L + try { + val content = fetcher.fetch(LayaCheckpoint.url(file), headers) + val totalMb = content.sizeBytes?.let { (it / 1_000_000).toString() } ?: "?" + content.source.use { source -> + SystemFileSystem.sink(KotlinxPath(tmp.path)).buffered().use { sink -> + val chunk = Buffer() + var lastReported = -1L + while (true) { + val n = source.readAtMostTo(chunk, 1024 * 1024) + if (n == -1L) break + sink.write(chunk, n) + received += n + val mb = received / 1_000_000 + if (mb != lastReported) { + lastReported = mb + onProgress("downloading Laya ${target.name}โ€ฆ $mb / $totalMb MB") + } + } + } + } + check(tmp.renameTo(target)) { "rename failed: $tmp -> $target" } + logEvent("laya_download_done", "file" to file, "fileMB" to received / 1_000_000) + } catch (e: Exception) { + tmp.delete() + throw e + } + } + } finally { + fetcher.close() + } + } +} diff --git a/SemanticEmojiFilter/verifier/src/jvmMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.jvm.kt b/SemanticEmojiFilter/verifier/src/jvmMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.jvm.kt new file mode 100644 index 0000000..cdc65b9 --- /dev/null +++ b/SemanticEmojiFilter/verifier/src/jvmMain/kotlin/sk/ainet/samples/emoji/verifier/LayaAgentLoader.jvm.kt @@ -0,0 +1,19 @@ +package sk.ainet.samples.emoji.verifier + +import java.io.File +import java.nio.file.Path +import sk.ainet.context.ExecutionContext +import sk.ainet.lang.types.FP32 +import sk.ainet.models.laya.LayaAgent +import sk.ainet.models.laya.LayaModelLoader + +actual fun loadLayaAgent(directory: String, ctx: ExecutionContext): LayaAgent = + LayaModelLoader.load(Path.of(directory), ctx, exactGelu = true) + +/** Desktop: the checkpoint lands next to the LEAF cache, or where `LAYA_MODEL_DIR` points. */ +fun layaDesktopSource(): DecisionAdapterSource = LayaFileSource( + File( + System.getenv("LAYA_MODEL_DIR")?.takeIf { it.isNotBlank() } + ?: File(System.getProperty("user.home"), ".skainet-examples/semantic-emoji-filter/laya-multilingual").path, + ), +) diff --git a/SemanticEmojiFilter/webapp.json b/SemanticEmojiFilter/webapp.json new file mode 100644 index 0000000..f645bf1 --- /dev/null +++ b/SemanticEmojiFilter/webapp.json @@ -0,0 +1,14 @@ +{ + "id": "semanticemojifilter", + "name": "Semantic Emoji Filter", + "description": "Type what you mean, get the emoji: on-device sentence embeddings (MongoDB LEAF, 23M parameters) rank 200 emoji live in the browser; desktop and Android add the Laya decision model as a second stage that re-checks the top hits.", + "platforms": ["android", "desktop", "wasm"], + "distDirs": [ + "composeApp/build/dist/wasmJs/productionExecutable" + ], + "build": { + "command": "./gradlew :composeApp:wasmJsBrowserDistribution", + "description": "Builds the wasm browser distribution, including the bundled ~92 MB LEAF checkpoint" + }, + "screenshot": "docs/screenshots/grid.png" +} From ede0dd1326d1fa1611769ef1151a356ef2dd9e80 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Tue, 13 Oct 2026 20:48:34 +0200 Subject: [PATCH 2/4] build(SemanticEmojiFilter): track the Gradle wrapper jar (root .gitignore excludes *.jar) --- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45633 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SemanticEmojiFilter/gradle/wrapper/gradle-wrapper.jar diff --git a/SemanticEmojiFilter/gradle/wrapper/gradle-wrapper.jar b/SemanticEmojiFilter/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f8e1ee3125fe0768e9a76ee977ac089eb657005e GIT binary patch literal 45633 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�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 literal 0 HcmV?d00001 From 9ceeade591434ea5f129c9c044a558df6559b11f Mon Sep 17 00:00:00 2001 From: michalharakal Date: Tue, 13 Oct 2026 23:32:53 +0200 Subject: [PATCH 3/4] build(SemanticEmojiFilter): transformers 0.59.0 from Maven Central, verifier in CI The decisions and laya coordinates move under the BOM, the mavenLocal gate goes, and the CI workflow builds and tests the verifier module behind -PlayaVerifier=true. --- .github/workflows/semanticemojifilter-ci.yml | 12 +++++++++-- SemanticEmojiFilter/README.md | 21 +++++++------------ SemanticEmojiFilter/gradle/libs.versions.toml | 18 +++++++--------- SemanticEmojiFilter/settings.gradle.kts | 8 ++----- 4 files changed, 26 insertions(+), 33 deletions(-) diff --git a/.github/workflows/semanticemojifilter-ci.yml b/.github/workflows/semanticemojifilter-ci.yml index 0f17576..b5ab3f1 100644 --- a/.github/workflows/semanticemojifilter-ci.yml +++ b/.github/workflows/semanticemojifilter-ci.yml @@ -48,8 +48,8 @@ jobs: path: SemanticEmojiFilter/composeApp/src/wasmJsMain/composeResources/files/leaf key: semanticemojifilter-leaf-4262131b - # Unit tests on JVM + Android (no device), the Android debug APK, and a wasm compile check. - # The Laya verifier module is not built here: it needs transformers 0.59.0 on Maven Central. + # Unit tests on JVM + Android (no device), the Android debug APK, and a wasm compile check; + # then the opt-in Laya verifier module (desktop + Android source sets, its own tests). - name: Build and test working-directory: SemanticEmojiFilter run: | @@ -61,3 +61,11 @@ jobs: :shared:compileKotlinWasmJs \ :composeApp:compileKotlinWasmJs \ --console=plain + - name: Build and test the Laya verifier + working-directory: SemanticEmojiFilter + run: | + ./gradlew -PlayaVerifier=true \ + :verifier:jvmTest \ + :cli:compileKotlin \ + :composeApp:compileKotlinJvm \ + --console=plain diff --git a/SemanticEmojiFilter/README.md b/SemanticEmojiFilter/README.md index 514ee45..a3af91e 100644 --- a/SemanticEmojiFilter/README.md +++ b/SemanticEmojiFilter/README.md @@ -37,7 +37,7 @@ The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples ```bash ./gradlew :composeApp:run -# with the Laya verifier (needs SKaiNET-transformers 0.59.0; until then a local publish, see below) +# with the Laya verifier (SKaiNET-transformers 0.59.0 decisions + laya modules, from Maven Central) ./gradlew -PlayaVerifier=true :composeApp:run ``` @@ -65,21 +65,14 @@ The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples ./gradlew :cli:run --args="golden" # records golden-queries.json for the ranking test ``` -### The Laya verifier before transformers 0.59.0 +### The Laya verifier The typed-decision contract (`skainet-transformers-decisions-api`, `-decisions-runtime`) and the -Laya adapter (`skainet-transformers-inference-laya`) are on the SKaiNET-transformers `develop` -branch and ship with 0.59.0. Until that release is on Maven Central, publish `develop` locally and -build with the flag: - -```bash -cd ../../SKaiNET-transformers && ./gradlew -PVERSION_NAME=0.59.0-SNAPSHOT -PRELEASE_SIGNING_ENABLED=false publishToMavenLocal -cd - && ./gradlew -PlayaVerifier=true :composeApp:run -``` - -The Laya checkpoint (644 MB, `convaiinnovations/laya` `multilingual/`) downloads on the first -verification into `~/.skainet-examples/semantic-emoji-filter/laya-multilingual/` (`LAYA_MODEL_DIR` -overrides). +Laya adapter (`skainet-transformers-inference-laya`) ship with SKaiNET-transformers 0.59.0, which +the version catalog pins; `-PlayaVerifier=true` adds the `:verifier` module and the Laya source +directories. The checkpoint (644 MB, `convaiinnovations/laya` `multilingual/`) downloads on the +first verification into `~/.skainet-examples/semantic-emoji-filter/laya-multilingual/` +(`LAYA_MODEL_DIR` overrides). ## Measured diff --git a/SemanticEmojiFilter/gradle/libs.versions.toml b/SemanticEmojiFilter/gradle/libs.versions.toml index ee10991..b35c59f 100644 --- a/SemanticEmojiFilter/gradle/libs.versions.toml +++ b/SemanticEmojiFilter/gradle/libs.versions.toml @@ -14,14 +14,10 @@ kotlinx-coroutines = "1.11.0" kotlinxIo = "0.9.1" # The transformers 0.58.0 pin; the catalog JSON and calibration files are read with it. kotlinxSerialization = "1.11.0" -# Engine and transformers released in lock-step; the bert encoder, the SafeTensors reader and -# the engine tokenizers (WordPiece for LEAF) all come from these two BOMs. +# The bert encoder, the SafeTensors reader and the engine tokenizers (WordPiece for LEAF) come from +# the engine BOM; the typed-decision contract, runtime and the Laya adapter need transformers 0.59.0. skainet = "0.58.0" -skainet-transformers = "0.58.0" -# The typed-decision contract, runtime and the Laya adapter are on transformers `develop` and -# ship with 0.59.0. Until then the verifier (-PlayaVerifier=true) resolves them from a local -# publish; move the three coordinates under the BOM when 0.59.0 is on Maven Central. -skainet-transformers-decisions = "0.59.0-SNAPSHOT" +skainet-transformers = "0.59.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } @@ -52,10 +48,10 @@ skainet-frontend-text = { module = "sk.ainet.core:skainet-frontend-text" } # SKaiNET-transformers โ€” BOM-governed skainet-transformers-bom = { module = "sk.ainet.transformers:skainet-transformers-bom", version.ref = "skainet-transformers" } skainet-transformers-inference-bert = { module = "sk.ainet.transformers:skainet-transformers-inference-bert" } -# Verifier only (see the version comment above) -skainet-transformers-decisions-api = { module = "sk.ainet.transformers:skainet-transformers-decisions-api", version.ref = "skainet-transformers-decisions" } -skainet-transformers-decisions-runtime = { module = "sk.ainet.transformers:skainet-transformers-decisions-runtime", version.ref = "skainet-transformers-decisions" } -skainet-transformers-inference-laya = { module = "sk.ainet.transformers:skainet-transformers-inference-laya", version.ref = "skainet-transformers-decisions" } +# Verifier only (-PlayaVerifier=true) +skainet-transformers-decisions-api = { module = "sk.ainet.transformers:skainet-transformers-decisions-api" } +skainet-transformers-decisions-runtime = { module = "sk.ainet.transformers:skainet-transformers-decisions-runtime" } +skainet-transformers-inference-laya = { module = "sk.ainet.transformers:skainet-transformers-inference-laya" } [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } diff --git a/SemanticEmojiFilter/settings.gradle.kts b/SemanticEmojiFilter/settings.gradle.kts index f7e2707..2500646 100644 --- a/SemanticEmojiFilter/settings.gradle.kts +++ b/SemanticEmojiFilter/settings.gradle.kts @@ -1,9 +1,8 @@ rootProject.name = "SemanticEmojiFilter" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") -// Opt-in second stage: the Laya decision model as a verifier behind the embedding filter. -// It needs the SKaiNET-transformers `decisions` and `laya` modules, which ship with 0.59.0; -// until then they come from a local publish (`publishToMavenLocal` as 0.59.0-SNAPSHOT). +// Opt-in second stage: the Laya decision model as a verifier behind the embedding filter +// (the SKaiNET-transformers `decisions` and `laya` modules, 0.59.0+). Desktop and Android only. val layaVerifier = providers.gradleProperty("layaVerifier").orNull == "true" pluginManagement { @@ -29,9 +28,6 @@ dependencyResolutionManagement { includeGroupAndSubgroups("com.google") } } - if (layaVerifier) { - mavenLocal { content { includeGroupByRegex("sk\\.ainet(\\..*)?") } } - } mavenCentral() } } From 52f47c7d0916911d0819f33cd84bd15dc9844e26 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 15 Oct 2026 08:43:39 +0200 Subject: [PATCH 4/4] build(SemanticEmojiFilter): SKaiNET 0.59.0 / transformers 0.60.0 Engine 0.59.0 adds erf and gelu(approximate) as op metadata; transformers 0.60.0 runs the Laya verifier's exact GELU through that op instead of a host-side loop per FFN per layer. Catalog, BuildInfo and README follow. Base targets and the -PlayaVerifier=true set build and test green. --- SemanticEmojiFilter/README.md | 4 ++-- .../commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt | 2 +- SemanticEmojiFilter/gradle/libs.versions.toml | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/SemanticEmojiFilter/README.md b/SemanticEmojiFilter/README.md index a3af91e..07cdab9 100644 --- a/SemanticEmojiFilter/README.md +++ b/SemanticEmojiFilter/README.md @@ -37,7 +37,7 @@ The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples ```bash ./gradlew :composeApp:run -# with the Laya verifier (SKaiNET-transformers 0.59.0 decisions + laya modules, from Maven Central) +# with the Laya verifier (SKaiNET-transformers 0.60.0 decisions + laya modules, from Maven Central) ./gradlew -PlayaVerifier=true :composeApp:run ``` @@ -68,7 +68,7 @@ The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples ### The Laya verifier The typed-decision contract (`skainet-transformers-decisions-api`, `-decisions-runtime`) and the -Laya adapter (`skainet-transformers-inference-laya`) ship with SKaiNET-transformers 0.59.0, which +Laya adapter (`skainet-transformers-inference-laya`) ship with SKaiNET-transformers 0.60.0, which the version catalog pins; `-PlayaVerifier=true` adds the `:verifier` module and the Laya source directories. The checkpoint (644 MB, `convaiinnovations/laya` `multilingual/`) downloads on the first verification into `~/.skainet-examples/semantic-emoji-filter/laya-multilingual/` diff --git a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt index bfc0b6b..bc9fc0d 100644 --- a/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt +++ b/SemanticEmojiFilter/composeApp/src/commonMain/kotlin/sk/ainet/samples/emoji/BuildInfo.kt @@ -2,4 +2,4 @@ package sk.ainet.samples.emoji /** Desktop/wasm display version โ€” keep in sync with `skainet` in gradle/libs.versions.toml. * Android reads the real catalog value at build time via `BuildConfig.SKAINET_VERSION` instead. */ -const val SKAINET_VERSION = "0.58.0" +const val SKAINET_VERSION = "0.59.0" diff --git a/SemanticEmojiFilter/gradle/libs.versions.toml b/SemanticEmojiFilter/gradle/libs.versions.toml index b35c59f..be8796c 100644 --- a/SemanticEmojiFilter/gradle/libs.versions.toml +++ b/SemanticEmojiFilter/gradle/libs.versions.toml @@ -15,9 +15,10 @@ kotlinxIo = "0.9.1" # The transformers 0.58.0 pin; the catalog JSON and calibration files are read with it. kotlinxSerialization = "1.11.0" # The bert encoder, the SafeTensors reader and the engine tokenizers (WordPiece for LEAF) come from -# the engine BOM; the typed-decision contract, runtime and the Laya adapter need transformers 0.59.0. -skainet = "0.58.0" -skainet-transformers = "0.59.0" +# the engine BOM; the typed-decision contract, runtime and the Laya adapter need transformers 0.59.0+ +# (0.60.0 runs Laya's exact GELU through engine 0.59.0's gelu op instead of a host-side loop). +skainet = "0.59.0" +skainet-transformers = "0.60.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }

49t|84b|NH zWt!;$MqA$+lSUNjal0odoxKGfjNivwYRP!zbsg|V(=oAmKGy%f$fyizpz~B^!i%hf zPqS;`i@0#Dma;q5wR{27!%axnwd4HeJISbU-iOd*a*X`203>Cb!rDEyP`82m`R~CX z`z;5)Z8BkhITvE^x;T`WJ(bu?s8Uakm(?rE$Buy_@>Aah`};q$ye+$6p->IZvZEjdl4H=B~m^k z1TI}T!CPZtL{c6Jkm4$Bn%Wn~#B?@5YcMyioAwM#_D`p?_7}pLoC*9d8>=8gTZl|d zjsbN8Ygp!T9u2M(pu(9jNWc1p=dENyELJ99dyoj&wR@2}M*=a^NsBJ}Rl|p(n z>d`Y`KqZu8ecF(@8gnr+cQVaerV6K&bYQ)OCb&E}f=f4sQ@?#D@ZeJeX8g%da2Zpl zy?IS=W3f0LGLObLZ$&^cRT*ae&Ia3Kp3wUJB7CTwhh~)mBY8L>BfxZ&y0?oeDG>Sdb@nwY;5O2{`@7cI@Lz zqSU`5tl`3ml$DCc4Tt(!i{u`>u~&_4e|ZAmR|3QJvLuk>Q)n;pgFf94_;3FjcE_SI z=v#FgG#!@Wd`(f<%Os=FWgWU`rz5>}^aAVQJBQ3azk%J{x`_E^ZAjc!{eYMQglg$z zvV%Rx@L;z%RGgH>odcXBG%yj;|5K$o%G$K9SCy=M8_zo2xx@teT9PHAtMRnrdqy{1 zitY})2SE{zFjn{t*78c9cCd3xDhmWCdMr z;SH%WNPGbB!o!{pxekH$y;gkp;TyBr{U)RFryL|gRJQw>{o6ll4?d{25-RU=!39aZ8sPR zKZJ<+93Ndm3%14`0db8CxNmTpy}<3m@04A^hfVL9-w|#^boe1Udvt^C*T*<5SQeYj z&ADe~H>$N-g4<(vnxv;g-(0c>k3)u-yFdnhypO^_`; zq>s#I&?j4#k(@Dg@Z&OoMoomoye{Xs@!Ls>TrFI#(I?829LTjZQ_1kX6Xe{{QOGg2 zA(vLKrh8S!iP9T6qF1*QUhL{4QP)q?_ZKCojwaV3Iy!|oi^o%sb@5d9%6_z3wUc^i} zKaT&Fs^RzE;93fm#Mf^Fm-Q1P!?jna$KFVo(Yk_Js`dliU43yE&g_! zN1TtIz_c5$i1@4{NXSdxl9OuiI_(a;;R%rim0j2u*#di?p$O71(c@k>z5H$N0`{gCegROv&o)tb^3IrB(0w#3)AOp zr)*pjKD?bsOmEMk!uiHjC#Ij3*8Rsbc{7NMoRevnrWcX#I*e%_waMPCA>^U6Ak``R z2n{aV$lwioBJA6Yzc~Iu)vrxNDb$faE6td+lK^rw;uFMk_vFa0##n78M6|N9QTpR0 zdL%cG1}>OEQXS{xv&VPYs^S9FGHpZgL2FtZ)Xk#w7OJ%N1POj5O+J;JqcwwKFx^ZA zf{$({XZMtn`}?23l*RAC_O2Mwu(QIk2o>nb-Nc+6Mc|%yq!p`8jjMM$ z)$?!4Y4AKZ#N~@-kYC#5EmvcQvA+}}eeyS32 zmLy$VNBewl;j98Nx<=(b>V~I7Rpc~`mU>KoJ^K#RHlL&pc1G;+cN*}@ycm~6w8El) zN68bZY4nSTAXLoxN%eP~M-QKwRQ7ihEEt-{vDsfj@{Ij7gK>w$uOirntE$$^-w4t8 zebb4jXAPUr)OWk$ekaG3)qIEBxxV!LN>38lW=Jo& z?BSc;NM`@5H6vzcWNCJ$2Rv|C14qNGP=%W#S)H-x?n0BOg?@I;-;a6hq+42eaJwGa zB0SDsb~->5R_B4n`Xumqu1{L`2$C$`WRTx89Va-dK!$%ED*SP$ex}Cs(N=w0XZoDK zuj>WG)^7xp3(H_rW)2P)Z3pB1V_17I9pdHtS+5VAe|J(1w66DMGdy0gg7pcQ_)(5# z7g21Q=SZ9iOsN|*qsNT(#3n8b`ooVf*#`yS&T4Tg^UaT34E+Q3Y#LC5e>7q$Lnrrj z!o6=YwM`jdJ3A8dj<)NYwPFhU^fBhb7y~9n;hB~lyNxE9F}jB2x`A{cpcm2 zXz$8Ah@9p|CC+~1x~gN?QhkZ65v;OktN)2j{qP zWQ4w-gXgoi0 zy2H!t8LjYGQdM-GU9;>TMzlm*#rmxxE^b=n{ySZAXr%%Pw%SAE&t8T*hJvu@3wPEB z2jg|N1A`k&Awx8QSu@*?Bjse>=P~`z9p(r}^vC!%d_MIw zYJHx;Y}qV`&c*q-P=Vt&U67@2A&tz921A(BCPtIqXXAzsD^Yu@Dp_^ciGM7g;{-04 zgz68@Gxn!`vvWD-oYH_!%~xYl^71{G>uVonhq{)4RObksEGee9e{6sXfn1pDbld7j zrwQBPmjI$udGMdiL>dru3L6(lu)|ZflA?oVWNN7&PdF_Xx9=T;iBg}~^1EWx<83qh zwqg@Lhh%h|UqU`VH>Y3oZsH;?i*ZRg6;wyEdF^Qu_)>EK!o=UBr*I}TSBx@b%nzD` zbJ+^lPF7nt6lTpyhE)#MSeLe!v9NF^r$bNRkDt*n*0%|({dJg&i$uum`lDd%m&=MS z(1VybBQibrJIEvu- zz!`K(7r}qqf1+br67Ov18CZDj5W0qQY^qW&k7O!?QI}uC!9X8!nJZ1Kk(h`98f9SN zE=VT5e0T%5hmrik5AgMNAQ&qiX2eF9F?Ie`u*g*qLjJf=^;SvT<&y^@0rIfTwU#xh zkt1CtFL1|tRT?(QljhB|Ld)89WV6&GMs1NSqNSTH;F`jbHG7sChDCDSohZ zOCD+p9cBhzufc*(O|0n^j(I4}kk^k4;ZN35n7Dc~{26XTg_c5Q)ns-2UA+=kwL6i& z$z|ZGGlehjmk*@{*2HFu2<;k(0lWAh)X9E=iGi`?;j@DvY-vDhxIXCPR0Wc(FG0Mn zpTUkVw=lYE9M0b`AV0ZE&?GY@Vk&$R`k5PO9wAK2-af_N;m>@Tffd-hXev=`s0GFH z4$SrxA@u?}H0swq%xVlrS^f7QttZ92A8loAGp{6>Mv%KE2?;8!tl}A3PT09%t z4PLOP7r7GdHi>ncJ%}dPF;eZFNF@V%z-LORRpsYvtj%&msx2OX4lYu3$1-zV7JL-{ zM6)PtRE5zAONo4sGVT9o$Q%0eg#EPs5KNj_3cjBDn7W`I=8N3rU%VPcBEG*vI_)*c zY-(g$9~+aO0dt@-Rvf%CjcLoQc(QxP1iDxF656ja2J8MZsM*!Vv?<-d?tCjIGd+;M zRc{_o#fR&oaL;IG;7dp|)}YBbmr?q_3yjdYi;463OorrH=r8#SF0b{8qL3Tjx-b(8 zRvUu&zcDz?x!j}%kJBYlsm#)sr{L7XUN$vw1sw``j_>(N5a5|_arLYay)kx#aow~M z24Y3Y{7h-sFnJpBC~%>#-)C0xXE*j`djf>Aak7UAMqtR9Ol1!N)IbA{VFKf#u1fk2Z1w*!K+A9 z=77|3_Dh2dC8`D(RVx7L2Y8fFdv=6PMUP<(x-Y63&HQH2+}F~?i`#K;a-9bPnLJP$ z9Ri6?pg$k(q|@zA(ucN^1kPV$uD-udm2b83w7;&U7vnYQ13Mprw{}s%c7~n^jHzAP zbCaBR(Bi)nH7BY9SEyTRF5?+w1_d4kaQ)vU5W8r`EWJ6EHrt-U)+Op>kF+y&pHfGL za%HK4^m(ka)kX#701~<2G12J52oKhC6_k(nK#0&4O>I5 z4&J0TDcPlpu99g|vSzSscI zhI<_=eK?*((I8D*Awi#fcmf4}S+I2DT3TacKuT=+bj^}{uoB!1{S8Un_pS3dHBy_j zdT*g$R+Q7+X|LIlvqyPqFScW1n+z`9zYnz3a^ML*VEo^ukavd#U{SUfv+Y;{iEm?w z@46s<%a|&PrgwwAgDfdCb|fvj2}I$WI(hEEc^TX?A@l%4)_yobD(M?)^&*Y6UU~+a zYmI4Tw>83`l!h` ziZT5m;L03hM~8mEqQ(gJweLo-*&jv8yLD)5GJ#lcn?U8;&rD2>zB>n9V8173zjp|H@eWyY`oED~2LSBOI1XUXGdI2@zRzW+1oC;6I0*ck&Gcu`Q5rGlGLbYmOJ>~JN_Z$n9Ll7r zmeUqOR^DLX>QQ=;>xs{E*$jUb6o{+(PdHrE3lkUDvfeXHXxa8O5_;k@WxaGj#Kw_Y z{9SUxK}!R*ubELH?P5B^cPlB2F{3m7^`Xu0PMESF55rC!C2KiGr+CRxwlq<)_3Ak=&cwlymfpEE{i$~+VxiC zYs77~d}liQ=6M+rFB7M_w;HKHgE)Ema0*?&ejTZ~r%u9c&f(Ezilp*+0cuCz;<6!< zRPVVS98k)JQPTw&*OiW!D)pGW6Nz-f*g|%g$zpT)eN6sG&TEzDgP|uwNMOK0$Xs2` z%#PG04GNza3vpAZ803+Yq7J0lc?ZV6zJj4jQXKiA7{lc%*$o1%jLhEi;J#Ihob{HY zU$5}Nt)-0jJl+u^9tl9!<)@r)#ga^$sDKZhN?46K51DYj7S*0VhKkE>z}63cvCj%H z?b#R%RR%L1m4|S(Ts3^ktHvlDDdO_{7n4@Y2Md#lwfoj9(CcTPGw$2eNvLWr3OAiV zi_KBwFY08$T0(JKZ(<|*#a2YPy$cA zB+UhKgpP^CMHZ^|Z0(=U5`N-OI<9&S|*j7Uy97nE-|*E8+MYL6Tnn zn%(K-aBZ#AQjf;lkz|{HRg{`k5^_Ii(MJPK(egu&g0Wb!bIV#FW)Lhm&tUt0QWdyVx4t@9vDdi-}8bnKeZA&RRdtR*L3nb#F)x5 z7TDCBg5eKMc<-wNiG$Vz;+f%#dOu95=>|FS=G!ASXww9&i_L>8L+)sQR~U~P6q0Fn z<>+}Gxg5O=eXP3!nx?*G*pw5veDPg)xI%z-xt203%Azsw&><|H9>@63Eo8-Fx1pET zbVS?NO!xdF=s)`x{E=Ra+cYK;%_C7*fAa}5;ISWaeFVwkKeEKF>k5Bp#F%tP-o%?L z55u;II1=q<0>8Q5ZPW2-wBQ+wK{XfH-G3fKS=2k!Et^Z><0|y=FJ*Vn?BH@aoDXEU z1a@&0mrsW_V5fR8rhlu3Ld^0MMra@IMU^54W?p*lymO}dn8BL>4}Lk5e(OT=X+kENCd9+)wS=g7`7(9w-(dyX z!KTxaaEE%qaR&opB&PDc<6IbW^_ma3&Y}=obA+56+{g|XUB=x7-@xo}FmV(E z+Msrr)MVTQ@j^|^dMW|S{R%K<-%a@Lq|9*<3Hj>V1@Wr|bl3@<7k7bcP9AeCl@H4jCa`Xguk*b6GI5WC24T3I$i&@8QSn|I`!=!} zA5Q%UmrKs!M6|?(v?nD!tvTAWMfCtS#ar4BKXfb%v9{~gxQ5HXvi&;cSaw_`%kQJ z5tqYRu-u!mNoi!)EpQ=omk42&%>oqPu0w^#0%8BzrS#v`F65UhFwvr%^`!0`#<#XI zs<~T1!DA*y^fjZMzbyIp@&lXP-hgZfAHHdo;Ms3=;4d$V+Wg7HNRiL#%5i75=B_O#G?(x;Sjg7?PQ!5S6h|+`YC+h7v_3mC~#vex;cPM5Pi6A!I12 zltRTlYpX=bOoOB(6;e`4ljJ?`e{etUbUb%Q+v>pCD z?uuJylwjW;XXdh56jZvdVPd=sw|)I3yt!vLz4%*;cIPQ#Q`t0XpL;?0r$ra^TGcSC zMG`|Tig(mG2=3G!U<>XWP%+n)OkuAhQy1<+=RJM!?Dc12vFlLeKPbvv9ue;yuZNMous0@*h0{ zKV|RIoim!K^0Gb*&)F^<+m_8ntLibM>ORg|J(heFnMG$#Q^c2#jacNDojCohE3IjH zgE8+~Xz;*AT(|2i_O1guIPMJ?E; z!5hE)pO!zyRPLsYxUyqqXhvW^J@~3++d}bv>j{)FK@WPF+Vpw?m zX5I;Thsuat!PKR4Y-;jzPOI#+Ab*k<`{#R!G#^o=_n!80>1IZB_%F{nH+5ze=Nq`T z)7!}nZ*f|te-3s|$mIO)qrju?`*h_|L11Oy$@`po$PL>RI1)ONJ+4>)>|P!WE?kLg z&aY%L^GEUSpA0k&x(0FK9M|x=nsXXa%rfUM!s5%}P;)a>__mnO00}FxU)+zf#+Sft zc}T_b?fB>C6D&F| zIOeyErt2j{*|f7yA#zC`_uA5+G%x}5Z^F-Et*G^^0AGg1AiS`HNNzROtUFDY%$z`Wu4%=)hwZ3-zy>1y>;NrHFQDTD zA?)SW@l?Dymgz1C6V#p>MYNtxf|DY{K=!N@EGf^0uxBweq&S8=^4UT6XI)^oBj%%; z#5EK<L03(MY#X5npWEhfDCyr;C{gCbQj@8I-uUSQx3T^PM2785Rig|Q!g3QEaz`n^fHbj3Vn7B_Gi zHh-6*bs;`j>0rQA92U?L{<*v~NgKaBFh#p%N3er`M;*^-=C(w52=bEoduUt$7}u%b zzo(UiJE{r&%dT@@mHv@ac3yP2+Em!8orDo8RXF7lq3&-)sN;`)WKB>FcdSPa)54E| z@-}HY{NF#Ev)=|%{)>Y-^<~h0*BxGWW?)HH6zA7JlU7GqLFCC3#K-zGG}!$E>(2?S z!2TggFZzMT)mpGtQ-l7Qa}pao#8`N?8O-jtU=y51awF2`k!!2Nuq(?RBoEj_qWSrqNNj|nie{vRi{OSkUpqYjB z$==|vZixeT>}Z6`cRYFSG6wXIriQ|1>`!CDWtP6EqFIQGV(+4^!!&TeIfCDJOhZd~ zGZgIS^Eszo=oE8B`t-gi8{vPs{Chv$D9RYBzSIkCJ0exmYpp0mNC% z!HD0BaBY0Lz;0s#ObJw^*>8U!#;(Sh+p}Q9c6;bD;rOLcFzYgw4MdQN-2og;8pR^7in4Eq6kx^pcW{$><7*s)A~F|Y zdul%3Zr~aFvr_1q_>H*ldNMeVOC|pjrs4i=-7uiO3oZm-V5_l&JKQw_%3dc!`^_9- z|1oWf%QDFfZ(DZ0%Z7}w9OfF1@@fd41C+MvE_fZ7&3bsA$afb{>`ZMJj(Hr6`|C%u zY3~WU`1t~D>of)>yE^>W5y|o~5#IkvM2(V{`1#2ss=RhFMz!X1;`$xr#oEVMTIh|N z`Hk=<=TR(PPLurF=?&po%b;Mg5RU!l2=?zeIQb}mJW$Ysy_c7g8Jg0dducR8*P6n( zJ_c?x#c`_UE|6*rq2IIe!J&iSp*SSr;W17a)1gF1o{+-azy92byPxq}ga%CxnF=eX zYIEDBSCSEu6VY3G2v>DHK#;nLXLTOJ&3O_`fb8hv{-v=b>*v8yMqzx9G_!6G(Y@{_Pqw4O-hOHqBjPu$CDH7a$) z0Orev0MzL5QnF8!)o1@93)c7w;zsMyud&nF5(5b|>N+8Ol%0=iZChCC zp$ni!n_*i-46^SNnEfbEQvAY%YFhPhlE&d6`EV9HS#bpK-&g}N+5Bvq@1f^v9c8l@ zMxw*LuR?#G-+Z(EI&ro84qqO%;ECZ2INigMO&UZ=2F8@jDEI;F>8Qsu&Pa4v6!s!Fz4m0YK&p~Mmz zSIuR1%TpmaJON%5NO1JZC_@6{0V#BU^{%Y1IT%5ViNCClhkfPEnUGX-R^! zZFeE_Pa<5*KZ;fd7c&j_3_4!ImOYs)&YS`!L2k=R8h7=oP^@4zik~x~D_V=e;Fl;q z{Ev~wuAT6@-W>l8Hu87$WXL_XiW%Kjfp?B-RNOZTls?$f;YA;zI+VZ2Pu+k6m4g_Z z!q4Eh9V>ZX^$0gzP(%r}Zb+DX2dABTkD?oHq2$#B7@Rj2{f_&xKGk+~d7Mm2EgZo{ ze2!p1Cy+ijb0p{c7lZwyiGo?;)8J$08d|ZS5W>a@sDk=^a9Aj5_pfp*O1^nPzZFcR z6GWSMcBBTa+-}O2_eQf2n|Z9@-g3dVJ@Z(^?)`Xp7vJd|1AtDNG{ANwD;OGt=KV5k zGQSJ?ol=8G)n9=6(|e#KiLkEd2&;7Qpx&86CZQQXKb3sq=<10m zDdgYp|4z_XeAhsA(2c6i^JW$6JD6A7LE@Zw0ZnZ-!z4c=nylC>-19Ar&VJ}u+R!GX zro}s%N0k(_T#(Bm?y2BDKL`5ytRmT-L8#o14A>iM%1Va-l^UJsa-V#G-Rk``c=A!U zQ{gn%)^8^VgGV_cfSyh6)=d)do8-kD%7om4G{pdH1Jo-obJw18gHoR6)!(YsRb}DJ{eYa$R z-^!aHyE=$I+@ym};aYr_&U}|`{t;0w>H`7&#^)PwyQ94`EjG0=6vx_U<;Xa$y)OX+nHfqvTPdci_*o26w%$d($O^y$swxKn! zTs;WG-~;G}T<6_b;`Ggq2(S<&pqS`0k}EDpdxHni{{x~AmjV~H7eHD`6DUYc1?dla zX#4nMcx~zr_W0f%_FXQSwuqa7&MU6~bt((Kago)018vb%kCl48{!g zY+7SpQX+D9GfTS|Mh!0V8LZbjxTRQ+MGYCS$&Uk3Iwpths#-#q_!~2iC1&heIATtG zB;#f8EF}FuZcnA4QwH-s{TDEIp_L$zG{>(CV}q+a$5lI?@LxtbY zOs01G^-FX~?$`ml*p@xNcl3J-1nsj_CMFPW>K< z0ot=@<)?V=O}TdQPPGIZsT=uRyi@?hkq`Ln=o_ML+z5S-gN6GzAWluQ;Mlv#?8qG# zxI6dE*}=9k3^s7J6j=g0krg$`!%w=nZIpF_-%|^cCL}C86Hm1f0H5 z)b{zW9T@I5hfcQZgCkaxVP{er+VS(0P3O;%)l1rm$l(>7zWjH=gdPc&uVMom?|k9} z0n=$u;(dHGCJdaf+!0#IR6u6WB&rem8-CumhUAJ95HH^ZMu&4iE@K1RnzDk^dJu(X zQpIp;og$bta8MZBf|}>FaLM*q+$M4gw9iDKy0Rhes-1+QJm+TfE=^i~B^QHxLou*o zE{aP30Lx|RIC^rM@V`M5nD=cHrKZ#=T&zpx=91&|K(;uTMq8 z#$CK;`s{76!FaZKRXTi~l1B`=3!E*_*ZTinWN+<$ObQW2h3*gJ*P;>hl(Q&v_EKc@ z*i=$jvJFNj-ohCTckt1QS7cVaE>^FyqHS7#h?3Y9Jic(Zu#tBdJE*q^)#rz!dV4B) z!0pBJUJC5(>wK_v{)W{-72tBqgVyO!X7OrPEcn?AGXH&1Nxz>S`Rrnj8NV~Y`QvUJ z+G)TBi;h!wX(KMBe->$!N=02hH}N1_o%)7#ku(1tVZYz0!1P-$p=IPA_;`)aj|8_u zxp`lSW$-iX-?$g84@N+!vA0$X{3E50zFr=9Deyhld>{oozS*PY zG+(^9muD}#DN}8df!y5PG_lf{?uqVzj!9A2E>{KxYu4~?g9;)abr`hA^pSn`#&k)k z5<7BaE~z`u(TdzGvNu={PhV6cJ}Zx6OqT-H8BxwT-S_79)MeqTbsDUq?i11YJ&&9_ zoJ1BZk`|WzP-g0<|3mli*C-{h;l7>w#WfV0qMU{y3pjZieWR{I`|NU@x%oa`QjlUz z1xwi8a%Z;8*qT-ez3`^O0bFd>3(H+)R& z1{8kF)43D=LC8G*{5HP^6qH10*Rn(8w{HV}A-NzhIRjJX6q92Qw7J14KIkQ>j)O9+o8H*b)3HBsTt+vHiaHG<4h!(FODX6M7jPv$d=8^%xvgnwDJYKr1_g;b z!8-92oNH5Hv!6(lu*gGP*xa#D|7|YCj2UqAQY~1`zQcXHmJe!UJGp>N83_JcgwmVz zsFwa>dS*id=^D3`wp#pvotH#FCSn>y4(yvKEPI^*_vtFw{-yw4P4S1oiP~roX^wLT!l}08T3n^) z3|HD8kZ!diK>~?`w5oYbD}FEceUA=|#0m7>jSzM!k}5|9J}jJjAc_DYGaWXsM8pa(ckb%8VRN>mD@3?B|6VTgMj*l%? zlI!1oV5zbepY5rF+JyJy-K90C*b)q(Xb%p;bKGvLG0ZrDSf(j?g*;5awOgLXC8OPnW5j*^C;7Klp`K-w#hXvXz}$Rd%yUMdQ!P3x0L{C34Bp zP`1{a^SI!^cv3yRc$@byTTErH-xIiL#Wj4MtBPAM5W(aSF=|wrKqS8$7Sw<30SW$W zs9=5;$J{vt!@Cqw>2M6o0>tk@#;|R&HqH4sk(SkzL)>}(j$Zd!nBAz$WaPETNR15` zm{5aWj^#LJS2$OD%#(zC5M$F)Z=_gMxef~v|RLzIgmo|aX^lmt_SDVUg`9R}$tipE|aWr+LEByOf0E^uA z(&ldwOz!!1wrj<7e!kvEdd7LOos)FY-iY|)PwhonnKg__d9w=S$uw3L|TSip{vLlDq>joPPqm3CgZMg2WfSg7R| zHsBD>sFplr)*8^i{_5EG#EH%ulAt;^nQVCfYRvSyN;kx%3Vgrrp{Xu$%r(c73)E+KOB*E)vd&XVkD;c>D!#+$9THx!&$Pz0KKMOfgNmD9;XbL=tagDE zyj2n4%EjR@%J~yXv7b)s{wlEQ3v=1`y!YIxYyZ(ClUd-CSOyzz9D|iRLt$mUEOi@g zNXO-l#Vw&LsM45dC}<60^=q}+uEDp$u6Q?c^(tlZ1^d`}!_mwoauBkc7t)8Rhw#9y zSh{cgUAk;Yh5pGq0M3Dza7$IEjkx;}K(}B{R#b@lj{8CU$8JaqN+)Y`Ga%_~I354E zlc=06Vt-1mGo#stbh!QxERpqqlC&@E-KkCt-swhNR`A_sT|YW3$e_=2vpAJ0N2%3) z0CyuB_PS6=XM{X}fTdr#FavMq+U3FapVa`Xyvt15B8Ik&b!YKGpK)&R6HM8Akgc|? z;(N+jAka60*o*PhTRM$Y+e~0)-#*c=+a=jw{VGy*=OBHl8prNsIg*(<=A~yEtU&k4 z8_f9}hbphk=|&Md>U?yIpg>QQR#rZRrA-mEaIy|dxNsTgX`N)Ff7PKdFp<7IGfe)S zSb;BUN7!+D`Ap^cXFPu-n;g3H6@Db`v6-Et5Bq;@WC=6PaYSb|3K9gg= z)qMOCrpR}gr=k7$5;Fh(dGcn41)qzkgtR{|A@!v)2u57PvX2=MPd(XkuhW2LMNs8l zYO{S}3_jlfjc4ya$Fn&t`BU$&f z6qXGa;;G>{JiGNAeqO&AX3x*UsGyP9xKkPIgR9}q?iEygeIG_&-i|Uy$AIr<5nBH4 zB91k4gV(o~5s4>ytlDA>eXRSJ%+?MWWccx`3RmlR)i)%kk{G?McLs$x-Skduo~8Z?=6NeA)2CP7{KcT3dNJGcXWL+RGn&_1#q>X$?^ z$*3a``&I>-E|?Od&nxKE4ZM%hn9ukaSCC5UUz{-JJ?!=4{Weus@Z-93WNX|4DDYa1 z$6gm=)$b%>_su|5h<2xycMrfj@or4HU&xVv*{tiIop9a4B8({fLbg3I;**IWuwLIHr$(O3p4)Pj@`j_Z1c7K^r5;A z+-sNS?rFzkOnM58I=O)Nr)5B;tv~CUM4;#4bBKE@jj}g8xaJpUO1>F+lZvU=v9URf zJ9_RGh)9~ybPq|oztjY^ipQ{wy4SCbBU|)`33#Jeg6djUQc2G2K)HGfa54YeGBTtS}){?>2BU>zkl* zT_Rp@I7PkZEv9iBMCsqB+PK|)H2iKdz%t(V(=?(DI%Fg7f@T*08%3HbD)0ev?7o%333gXa%TVD1f%vHyo1@fh7fqW1)qm^|BvDSVgi zyo(}(K>nFFb^zQ@2oZU9{a4-fX`T}&w{P7m9VSnHCP^+0;lC3qfhV? z?z-$nP&;}Jc6uCx$B(p#-=-lbGbtmN2aZFa<$b}=3$5fm@28KSn+Xd}SW~;pfpDjC z1zmJ_I=wctnhf#&5~G<;B#zUD)FuOFqb0>>O7+NW%LxaRiYnVE+6lDCnNZTwi z+Hdc}7WEzi4_{*_oOX+B3K)Pgt<8am^lAI`XN6Py=!33jnY!BW)< z2z{Z-gu5@6#O3r7izzDf70=0-*H(kQ z?>sUmKcxoozE~9ell_PntJkAywg$Y;v8TQ1R&4LB2i*OP5d1U4pSyF+0xG8dgg>Gy zsig5l^fj=>_|6yj!&Z}x?VW==!<5LtnH^wLtBh}#$HUSEQkdVhhASJshqvm~*=gM? zuzZ^ezUxlG6+9=-)&CRO+2;X6BeycE*lheZX(zina}Ow0@LB&^M=)98AnR~Aht2$V zxI+4&(74S6HAdxe?;S34;-w}qDQFnh`@V$v-KSyw1Adn`md`|spMYbU5_B2A^Kd=r zfZq-3;m>GyFs%@wX0EHj_hteTW<6#?ciI+DJOzd$Y~z#LAfWu4W_7&hxKLpG=CmMFIRz!-PYd4e2!O_I%Fw2J0;UD`@Gc1r`d}~>AMDYCkC8`( zWyPD=0iB;{|2qM0O_)VplB?j)!AW#oxCZKyR=G0;Lx7M zHrDN3svPfd>K87&aOGbtqxYD zGd%h3=6p+hc|(-FJ*&;uPn<`0+sc(jH%CChY!@78s27xH%%=OssZke`5^hX%7(Ki; zf%D6|$XvdPv#;)9Ebi_`*k&~qbk66q4zE0X6zW$xa&9@5X+SjE)=Ii%6Is(rDcZJg zBh1oTLN%@`5sUvir>APku&tZk;)ZoTwDVOB2ED&Smwi~sKEIG*`){k0H0_!6ztwrT z(eo+R8HLgJ-lO?l*%_S0GZbdUsX+FEdR#LkgTgRZdVEC=6Z`!VR*QQ<#2i!d_NxWe zGwtU7iMFG6Un*6L{z+vQ4Py10ayBh=@1Xf zhTfe2vRKxYx`X;!tKwW!-kswv1d+c(=(=P9Q~Em$Yg?Dl5$EmD|EnlmTYU!d3%_A> z*;drmZz8hh@^n<|LvYj1qT-K#3vD9L5G9`@H1pwI2o*Vn+s5C)8Cwis=IPPYXZr~l zBOgt@{NpiQTa(UtAcI?5Jt1eD4V53gjeXg;hh2XMl>M`u7%;CG|vS1M&1sk+)@ZGZSpxr)(KMM%pUEf|( zS9qGdjhzN7e){2t&!Q|})E){mQUnWQC8s~Qu^G~TnXqGax}>1~jKIf}?`F^ZfKLx3 z3+J0(LHVv|codkA&(G*{hKEO%MrO$}zeyeNru;IdUSVXxaRuh+yM>zYuHZ)BNQ{a4 z3C-P>#QtV0m!$1YPTH-6QX@4yzWsz?+!_m>L$-o<>CJ|7Yu(|{ojz{vjve&bD0gzb z`YPs5kzrFb??dCFA-JKQ2-kO{5rZZL{Jy3e7us@QU@ecb)k1*XN6@6l3I<)<$oFvXbKgr|!7bhoD7k+gYkw}!X;cV7=i3C5H$Mg+8XafJ z=LfhB6CZq6d5jh*1l!6Sl%aa(Ik?}NE{GYaia$1eAgT$Ckn5pG@17K8vI8O5aC$%8 zaWfe<+g{~@Tn<3%@@;6GXvxhSG$nI&*K$6$8LBp}ftvfXx#gnyu%X2Zl03F@_7$JW zLwe74HvNYUhbm#&wgPgv-HHhxA)b{pyoJfT^Tjw&Dt6t#GiTsyE9x1&+ zJLl^t^3j@Gk{b>sE0UnOa}K-+cnI5jj<77{60H9CQrPM977U#q;omuq`0DOU2oT|U zFjAMnEn0#8%C~2m#*AZWn?t#Thf>h*IDre*n+FfO)Lm+NUnShO>%P1J7id`oAdA2;k!DmgRs&xd7Kdwtlw+(P} zXK#iozR&P!;!XIkAPuAJQeeuR+roJh&EZM>Y7}`QNk_Z4Ld%#3@b!HUIehI1{qv#O zrqSP)jPW4M?b#RHoh6B$(_^rCK|Bg0tFhAk0p8snhffdhBh@lLiIc zd3kUhtONP7YrJ#!Dpo4+%i1xic%ru=&_qCj)w>+J(=7lr; zZlg~Rja`6!&BJ)`SPrsKEfn3I%6uE$K{KhFc&$?BZks5=$t5Wmu78PhPZ)-Ej%E;V zF%6t6WJ&QHS8l&_aOB z1#H$M14w(bk9+)@&+!GTvYpRIV$xT6y3@mi`TW<7s%5Qk&tVUQBsCF@xOZ4syal#9 zZ6J09)`S~V&t3d1#}Yq_**2KF;iE!TI)V#f%SaCDWQw!<{YQjm(_MLX+(~dA;YFkR zQ^@nCZZ2~96I>`oS>hkyetbG*n_04+cv>95FaPm(x!b?6?8E`Q-*%)VP5m`CU3vj4 zwbo(DsW>uHdnBzZ$l!agifpygLN@o#AM|KA&bnSKKuzylqV}a2Yu{$zA_4DJ9@ma* zA2;CsFN0XRH3jAm%7K1{m0$y(sj7k__bs#`?-D^ahdurlNBuf&*dD)DxZ=GS@3pkS(260U4>99TnJs4LaW%D# z8pFyJ2yQ%m1RqDdCU14KaYUvHn|sL)OaG+6te3KEdFps-wutA)$j^hHhql5MPL9tj z30Xl;7k-~B2M2;}=$GJr2$BchFC9YirR~t%<|q!VlSOU!J)rG>pX@G?KwsNb7#J)9 z7ydcwbZaFJYebL*!4Gig_c}KAQwX;3+y3bZBRG|gUcgdGTUfl2FUL$}c+ z_HdF0YL?rwGDc`X8=sFcUdyR>y3tx&T6!q4mO5F5u{qOP(a-BDd)4v~3nDY1wpRl- z`b1N$0=^+@C&qMR#&G9-A|buM8Y4s*t#!MD3O?zaW=bsIRga;swVkPmTnzh?UyIWh zDX{*U?ablBQIvE~<(8h2X0floausQ3VR7MRl(=ido*r-~7h;>i?XWU^ii_#f8|&%S z>_i%AaFd?+k0-R;*2j>`j9N~rhQwc?-~uVMciA=6U$0P_^K2!q=OQ7tQ-Z1<5@oI) z@t`M0@xsre@V#0YjDP2%(vNF!_GT=t3D0FG>#SL}j4S$N-{+DZjA0^g0=YLI8sNH) z5j`MY1m$>=#>W)GrCV=s&ANrJINW-E(jP zb*x>6Uv*6AZi!5soqe1Qw5OoR@>}4%V45&2U5`FmLs3KYCZ}8enE7prVY)9uF>3x0 z%H*h#V_I75sYxI;(gwJkHfhpQPP!_#N&_QeWy0l9~8O5hc(VPGa8q`vQFW#=hT~%u+u{7a+p&Qnw@VTe<4>-#vj?*Zy zwt3^70NeQeQ(s0n_we@&bjVMF+}xd@v&@}#ILC1LPu=O5I0vH1?^Ol;PGQWNJf(jJUh4<%;!HO zr45IP%cmJ|t3#Yla4=)CjeMSRq8a-=Tc6&#l!s$~o+E`TvUpxV4fc*RCY$mNsKrH1 zsQ4+)eQeO+c^U+Jr(1*9U@^8AX|c0=WSQ3Tk)S!lm8C}}@OiRjB*4poMNSeWWBMa7 z$z%eZB`ZzO&Kb+S=XV1a_k{u-mM0r{)_2QcZ8o9Akp-VzLxXC~u=b-Bqofh{x(DHb zd41d-MG5v;I}L03z0l%`ck#W11bpK6;B(Iwz)V94ykD(`dxwT_++Rn*s(0I{h+!8; z>*ItT&AV~jzfzo(JdNIsv0@fmCo-#|LazB)IjBFk2Chk)eX@Fo^_R`?K-Wx=UNVs; z1Q+1FIF9V{kYJYc8N_dI!j{@p*qNX}q5?e0ZfPZ&5>kRGS54_ui$QSOug;=tY}uht z4@qjsTe$aV4E@k?#dh|G{cvpA3CwC-&CV9d(jZxRe6diCyR=>#-?>?U4u1xX+^R~o zgA>_K^9t1A?^B*paok4bPqwA&mcdP>Tik_*Ex7EX9A~@e0?gf|N7ohJgQNA5_|#Jk zgYK&H8UDvaOzSUxf@tAV&rwwThaGEI@}$4@wS>2=wejie2@LyGz*Lo@l#LQNp8ZO= zRZqAt(+yd@_*$+zIhm6#>wqbyPe@#Gv_S9qX3lrbe!8-5tl;?)eLCEDOJJ3`3-)|0 z!#eMOkn{8gEPl*$6g@<#wEGD%AzOx$lm-%VYz;Xr+(^Uij&R+dSHiLH@5mmp39Q~+ zz<0(*g3i_k{9EV6=9*T))POZOE;tIhEpnizb|38D@&}#H9KzZ;6Ip-Z8OW@ZXKR`~ zuylAG8?Pt{xM&!jIcu|&uD>X;q>~#yRg9BGEZIV1G05AehwqI_xX!Pa;BVa(5FM>V zU#|F%4vo%-7F#FOOO>D>Yi!}nuNH2aLnD+8#e%rR4m@&6j0^kW29B9$xkwoi+W*s> zElhI->s9^WDL)$Cy!wZ&d7sJp{X1|!&!nl@wi3;!X<>W0GnnRHgFR>e;5nx{VfW$B zuw{p@+zJH)i|1Gk| zV+T^{{S_zS3j0S|@+(37Ge0|A+#xJ!@TQ+MZ_+d=H}JHYLY+dbV1ryQpQG*OcS@pY zv~eU(7n9>>^kZr3uN-blUJG8}cROQK=dkk1aP9zq{#lZE6dHH7q0#A1(w=%%IQ?k} zNZvD~p___@_hc5q!#jqkC6h)y%yS@5&Q0*LYo1Nvj1D65RRw#T-g6oqPDKBnC@S^K z((mgLXC=M_|9`sh&v6-A{k({i9OlyX*=ONf_#J#DA;jLXS%UpX^&lj55%Kw5MqVi= zqsX{8{84uS2huF*erXf7_#W@t3Y1}=W0N?KUH_tYnyJo^eYDHHr@o8z)W)1_$v2>T!3Tb9sUuC!S;9;dO2Q_*-J=J$-t#h zG~+n8@)e)$$Qa}^`6J#xmgo$Vmtr0bNF+bi^(>p1&g}L*2XdL)3_Q>j5I~z{vBLn(MonHC51dz8qWo| z@iRQ(IGTSd0GcuQS?dJ&;ONP^3QxgFukjd}wS-o#-;Ud3l<{InoG|3J zCzJIK1=lN4tinE!9t(;i(=57$ozI$tlg}@sSMsHqY-cFdImlKwj|%SjH14hrT3)H5t`TFIs&qcCdD#ILx8CCAZgHM7pMxnjKo9TT!Desddl$Vq zf~Ml-^vHvSxX@-kgiY6?QF-lb{u@!8)?q>`|E7=uuLvrlZ$SHMt8nYjN%U&&ZK~m? zM!T91urEdn=`zRDJd0YJX^e8D{lZmLO!5Q!XP*u)p6F2Vgh|+RXfqqUr%Uggux3-O zQ((zeo;$m7EjMeoBJ;Svh5lO9g*FdP3BOedZ{H~!!iv3NOiJ@KbRM^)6-l239PcZ;iVnwdEntWl<-M~Z3GGyb=ySq)3_^0=#8Dh0~2r)du#qDixrp<^|ZsYlYM z63h9OIH5Qj?ms-s632!zh4*X8tIg%$UVIX}+-~E=Ew3QhZ8MwA`_{BN$1|&4M``d^ zQ|g4lY>vV?DsLRZQd+|4l4rbg=KLI%pt7DtzHjE7cwbAKa3Y9F*mCQSdhvT{iV;3* znNQJjlD1$XopkfE@U^rBW*KUNVqisagzh*RCvue$2!_TR*oLd7Y|{Djl$b|SDO+>)sxSj$N?uTdE1z(dv>Sa>c9obs`^USf z9k`C`lc3>^BMuKPAyb``A>2TX&RxfFZ$UDg-0~1MZi`|2ic6TTl@INik&7aUr*Lb} zLuSVF20gsI=?LFEnjjZRlY>L4+fONa@2e!$KS;@r;Qg%lQ~+ICx0Ci6?V>}Ai(&Z= zZG1LNK~4q^PLM?hnP&3C|nY%j?rw$a_a(lin%B$wpM-f+O|aeVIrsT1Mbt zE8IHJOnt2)*#^}q^s(Z2T=?;_ZRCunw0dwi+U-bW6Zc2Z6(^LKO4|*t+jBa7oS~0l z?W(j@RFTTYx8eHvW9jj4d>2j48pk6zsU$O6Sgg69ZD3aGI2gz&>1-z zF38@5>@)JEw@y=*@y(e&ZH>pdat@rSjVu(@O{J?kesPl9rC0=4M;dQL!ruDR7#DVn z$SG9fr7;t^s>)zo^-;h+zR?2P|1osl4>f;b9M?ueixi0lmC=swd5#E?Bq92Sh)N=f zkkwQvsgz1Xs3a5>sqT4BHWj55%E)Y(8HLR6=O4H~bU*jgInVQczg|6Qgd9iq=4c-a z^Z|O$Yz#ZOZX0VV_C)>cakSvZWcpzJ5sVK|z&8i=iS4SDxTSo8V z#`rN?ol=g;l|k^MARKHo7E*t;OVB=gF?*6#1q0U|g9t}?KI-))!9z2QH+uHKxrS(B zfL5e&M+z#BxyAgtoN@hCV>&ByATG=a!=rk7IIis_TzJ+BJ1PZE@GgR{+Y`krbl!^2 zXB@#edsEil5eKj10@>)Rx^xEJ38U7RiZ@>I1LK>PU}9H*)w_*AX+{y;^LP$J{wzV4 zMQ!5WdrwfklN{Ig9%5hi){!xxBnv^P&-b#PYz*K zuU>=ycxm2pWD2exP=-U@_mbY#x50p4W)`snY0!2netxzJU*sc8oZi*3oo~!h!A)?< z)!v36uW5YhsYtNR83cE%Gcn`DR6fjUH0~LXu(e_z^N!2Fk-1NqMPAiVx zT}IyDdj(T>b&+UkH*h`e2qjh1d2G8RezvKv+#7oaf-BA0in;2n_oN2?SrbWb=^X@9 zbus>~Zp3GsZK%rJQ@HqLhE3cpd1{(u%G$1|LwCz*m4H1$*smWmwus!x*4w+wt?I9 zJ_NJg{miI6hDF%dKu7W!@Joyon@f4q!*c^k<=zn(lHWt5rrv~+`)sl3v_CD_XH0Xv zIziRR7)s*1Nmx|}c{lM0Tus*F@6T&OhxrZ2sm+DTWm^1%{&Y5~nUaBzpQFWsXV@_| z3Wqq_(6s>_qM9Z(IJ)8#+*hgxTgR(dA25(tEziJOx4QysDH=S4yoS#L5uUl|0D~?C z^XK{RAnD9J%pKhY-%6|D)?q7L^50`2Pnd@{#)?T?f0sCA^b%O9Hi>;as72kPgkFL} z8lLUn2VzOVQJp;zvW{ecuX!yy=XV|+g`Fbv**K_w)c~U`8u4SgBtND#jfNELrn#o} zm_F?VCoo(eww=?Be-JnbWiPN z7IM2_<{2rjIBX%lKf0GK+&qU)Pnp5JZvMnRg;j7^W*lE1as|H(Z-B06D)e}f2pbL$ z~lC%)httRXfB2FPDS)AOkvKh67j25%DRNj@Y*FBavNy6A~AX zp@a5HfyF$)wFd1|E=d z8*1OV42yL}qmSWp+?F+lMK)TK&y&xyaVaafeWVWl8Lz}21qt1lZ66_F>`hRxR^*>H z-Vo)i@?-m@PLKsZrgG!I3#;BNNcV1* zZyvMAlDT~Cnm#aJH;}Abp#=9=<&l}2pJVh6Eq-^n5;|9oM&n8;zTL)~pOM-C#-a1@ zR7(}Rvhyi(K6(xAe|tkpo(~1BL4&E!gHl!)I*newEW;lN?~4qHXsDfh8`izjrS^+1 zixzMFF6{88)3+D>dHUBcxM+zdrX7C{+qA}UyDWjVvf;VFmD~-z?wYvm(?BW}9?PEZ ziy%JdCg8&hbtvn#il1%1jk4|&P<7r5SoE_L7H$>JYJp))YSDcRZdgwC%o>mCx&35h z<#>K$Ww`jfn=|?38cB>!C*uL9#Ad);vI%GD2*Tq-Vv!wt{l?PC>938Rtz1jGFOdq5t zT;(o8J}~FkTRv^oL9%T`F6s|dg3tf-MOoq!Jf|-~-zT4E|AI>K>!abkA?q&DRFohe z?|y`@0>djNN|HOi(4zYt1gCW1NC;Rykq-+CqFaj+dEuLUaLrr@U0+Ut;>uw(SH+54 z${xmd%Z-B*V?Lm_e-i(=QlB5XQO0*Qr_h)Yi|D4h-F%#T6_j@PR+rTjQ>&m9rXOO- zgH{s^5g0|Q+We_&buJ4v8$gf6I8#T{`IIJPIa=^-HLe&WJ`HV2J@8ngid&Wo%=unz>hr9a?^{2TZ}eIP z4c>Bmrm)kD)1FBEKAx!B@#iIdWRXpy&W_`imwscU$%v}s!kzJszZ$IRJVKqItB!Ebj830#6+iP7S)J)2a$LF2Cv}rq`Mv zoXO_1*Ih-Mv&&icR|WWPdy%*e^yP`ctLcc08jP(JLHMoxU>PCBpR6unowg=?cHJ6! z&N+?QPHF)2d6G0Gd=|F}#or z-%v$&xK=>w+Z`aE7Y;@dH8{EY68eD_Kje8GZ~YiWKL(BG|7@<|vr)({w&>8}vleuI zKn0(5t(z;ES&Qz*#D!S`){($^^*L%usa=WFicdTs6F-7#zcNE7?e-i31=N_c>6V9 zz9L!|oUC_qrKDE;HTE-hZxdKlyDX^Z`C`xzp1~h|&S2M23i)xbVB@qQ{Ms9LSRAKD z&1)}#^N)D8C`W<5`z^=Q;xCeUPmQX0NdiQL3>G-DY3xQ$CRLyCiaq#ylZ|`zf=!d$ z0c(Ywt6Eny@^%OIt2YEMy0(h^|CsOx9hXG&8_Gn>&w9}MJBL8UF`cF8??s=z@4&@G z$e{L|CJ9d4pe^|oj9JVt{1zy*+7MWLE`A7ds#+|2=yxX^)=;7g*%K zQCzk^TeL(g1V{edMjpA@3q0vlAoi96_lcX(XvGc~UwB8fXiNvJTDc9H?;Cx7)2q8qIIaTYH%p2E`3-y|Y96+WsJ z<8Q-SEQ*_o#}CzGpWRu|{F01WdRmn2L$>xVBR^v9VOg*PEH2$A>ddW%xd-e?m3;wt zUvQxFN}i&7*hg`{F=K_BM)TzpvM^P<9WTN}>=8X-mTp^!QCTg_-8BnN$*8lCKs7$K zIT8|@QrNK|VV5_1Ck?#(fpzFk=W+s{&*-2}RqQrbnrdajLw-nrn}Hs-?5hUXE;X{X zxg3{Q)CjY8Rh%vCo6ikQg!vsKxNWBs%ZZLh4S8#{{IC~49X&uy_+*~+LKa(X8eo(4 z0hC)DKo;Ie0o@@M82bJ{k^d$G{B~O4Gmx=7(O39<#r((}C?u=T44J3?yMnqmuj$=U?u?$^ftcR;l_R-Z& zb~Niq9Q^I{Vi7S$!rw6*mT$;Ky}v)vQ~3pku89ZHAX%*UQG$8%ZnC=HQJ6AE8DBUA z)E6t_iaS@aIbao*8=O22-Hvo()OVoj>#P{ow>p$|o9p6W;jH~=#z+X3U5wA(Yr^Wp z3Fvfw7j~Qx&I`frSY2I6mp{!Q-M1FYa418$s9DThJ_{f9 zx3adPd#ISGiV~lV_)KdPGOg-^XcyWEz1d9GXF8M*Q{RaV0YY~}=_1M~XEUu0ru5gt z^SJcI4BQeKAUM~Kv;W2{BCZB+VW{~YY|r+`fwT=?CtqWqM{B~?Wrh&3q#vD@8Pg4p zt!%tqKY?Lu=s1-%ILGW0YUc)U+3IPK5t+|3Wis&I_~-C>;UKzXmpsjH@qo}n-|rshlc-Ky*Qi62G?t@`+ZJl@H3KI-TLNQd$1$ZNs@&!1 zPr!Ri(9lD0r*GORFoo`bb<<{4F8GaR>q_v)mb+NeJ)3`9r;motE1;95+EhaGviQ*es{24l(bA#hlLtC8> z9kT%G3L~7`9RNS>8M5u~mC)Tmma4n&XXAG|qe-3;dz1eS-yVLAV?s}%lAH?NbjgmV zbb6E8ypeD^Lmmu{s8K^_N{<{IjH~5K(P5fA{7o3k!a9WWlkrX-ImHRgj*MiM%U6-p z`2pBFbq9AHu1()G)q|B~AYN+nq#~uWkk>VW=88h#&cicsD)An<<n&d%Ubx5 zs!gBFnhKB2l_Ax@j((n>N1u*d%kLb%O&5~cbp6O-bcOUL%72LX>^;JaYVr-9J;jO2 z;d+ud(TvzlXd%xlY-rbt{a`K3UfldM(5O8Qw`^I%OING&u~J*$wQ3()X;p~gpLCKr zGGScP>$XU>PKAH^?m!n$8B*=)BLIR!N+H9{bzj}Bj_3a z>6*};>0i#*Ur?iGmxhBzats&i4c!5ThTuM3K$fT$F|7F zvAbht@lE;VFikZnMJyIgYxPX40W#Fb~{_C|RIOCN>!GR14v`b<2R8wHvT!o#yWx?!ny8_!g!{9f6)B9>_Jn<9&k| zm|%Pmyo9da*ZAuYyLmDOVhtO=DS$fNUkD41Iq*}XPeJ%zp#IB&KAx&a%LWiS!>Jxp z^W}i|ETS`8PSZ{9TCD%q7=CB9Dc3dl22o>PvZOUPVVKaGo07_4Do& z>sAF$9`v$eGgF=-;YmX>qR?*IPFjCsG3+`T#RLD!@K#klzDa*L4@jF#;|4!NlL$o& z)Y4}M4`^`BVhcX}ZxYeS+lxQl{)5J$>fBRJiaLLsLZQAKFKn0O0Yo0OaW0L0CdqdO z^y0w%Cg7)MhtFo}@IB>+am=$d{6O@2THUHZ|1C)58Q;gz>VP8ZTWBM=EF{o8&=(8F z`eMwc17LS!GT(FKB<_G72pp8oM2}+dP=R5^kmf|{v2+~WX7-9}o0RhF`UP~dNArfeD_}mA$Ji@)`f}1T>d+TEq%joKDdLo7Cfd$*&8f% zmE|*4oatgq!BMcPgg&^+XiZcO7U^t zNdJ+l-lb&E3KMC991TIbIb9}x} zksBRzLG@#X0{d_Yu`qX}L-)S}lZ4~&@3%4NIU3OT#3N{T?UTrw0_~W#jf~K?rOyH< z<5{1b;Q!GN^bL&pmY6O0E7!aqQZ637$(Fs9Y#? z&?~Z*z-ImHtle=TILYerEjmZY1A|z6(76!Q@(+=ZEPc+kC zR4k}^A@m_X5a$h=*q9NP)uNnvMR-djqcU+E2 z?9K$ubTd?`#dF*g3g;BA}w9oqn`l&0^Vl6dVdgux{I?0?Go_PW=wh7#l zf8$$U6}r@M4gOGg3uQO^nfA|C2pe-n@Q=h0=glYBVMlMeS$!aU`(OnAuS!XpTB#`T zVH_NdX@?yS(!70`7;8;(phG7b?5~L7!s|fNNTZ!t~7KeHag07-TD4~^M}<=rrJ_5~7kF9VBq4yQ&--m|W}H!$UV1pMPd z9{O|!v^1KKHt$j8Mx_Mh&{w+^m@~C zbiW%0vQKMZ)fNxn7b4<`Bd9HtlC z#o$|C;M2)n{IZuY%VH_4ZiOuG{@DmhO%8nB&#y4-W`!_6jett`D`aJ<#J}@tNXsDHnY;qxhaSLX!_VNHBNm|I(hd&78CzxI z3|_3`fQxrO!hkn#@WY>}-2cW?TpR}c#qE4i`m9fAGusJ*-Y zPNbg=Z&n_<-h~(xMW+4Cg|l~SMFFakv@1-3*7gwmxALC&))GrNqmab26wb4oHv3tK zM=u%hJ(8-Itf4av=0T$5Uno)?!*_)Ekw-^vp><9(j{Rdzwrc+Y=bT+ID{Q^+?mCNI z{SP5^Q6zCYE_mzR)8O^BeQ@RKPT`!fmOLsRLQ7m2<}EX!>civVGI~IfNdzs|EFfMZ z4pXBM-H=z?N!R?b;d=_(slyy$4>>Us{`M8Z)HVKidf#hov8G&h`9AvI$Aqiw9?W0H ztO7mlSyVhPPhf~D!GnvhN%`i%Vy%y_+2HxxxXs(ObZbo;KAr4OD+YN zq{s4kT5j~=w0wS0EelF?a)r$DWfrkHjGE(^|#PZ={~&Ana7RH z7+i4F0+NNWZHze|Q60xEh8Tj{O#|*2@C73jcZxS(`-js5?@`A-hE9u);8m@GQ@eMj z)7}GTF@2RB|K&Lcih{dv;=2d9wQdAg5C1EU)77tz>=vW5>1AjVm^UvPqHuVOfLC{L z<)b$og{Z_ewB1gY_q5vbh2Je{QH?V^)ELW^RqgPB?qYu6m=Yd;eTdkZ8AJPu9JXVZ zA8xcOqPOma2|Tz-;-k+lLY>iPI2qH0ayMdFRrg0|^*aQ`qsPdbb_D&AwT1o@ zc5ybpvZ(sFD0-o38gI{a#DlT9wB7Rw$*#G<4kS%tHlp#Ve{eYVFmYOGOyg$nCFD>Le^}CuBe%A(GT#i5^@)YFWy@W-8Ds$IAvekA z+qH)d3#h95t4*PdH!qu_i-0!O3j8GWCEA$P~E#@C#PY$uqI*eqS zw1A_Agpj?==9kYBK0RUz|6-O2SN=2RrrYto7;KcVF4M zqrai8I2=CQ9)jB+Hj%b)I~MwMGfk5i&foZogr3F@%J$sh%{}3~%jYz;|GElX|Gp++ zA*$7?tHQbEt+CW)@*(@IR4#|46{53(tM8@RKY?Gq*NLN z@9rto-BC{K_8jHw>ju(c2ZKec-yNr;#(UA^`-4IHnj~i3^`|u^3UDm21X7&isC{ZS z`VAY#6)hsM_qGX7i58feTmR!>2YLmrST3%8dj_^Sr;&vLb6`inR~%&$0U`ExaeT5L zNLhYGQ*jZP&zeW`?#{)N?E=>+eR0Y^x+^4!-TUT- zO%h}Hdg1w9(0T%;x(eZ2!yeXH{}nO^jAtD|cc9!R4o$XrvunjIL@93>3=2tP-Lc8o zxWWbZKYa$8|Ecp$%2k-9YfQh-Tfi+lZeU*KMH}0jdBkX47<+KT2{w=1gtvd?!S?cY zyx~&^_qyb(rN_?Z`y!HI{-iwdiyQh}!{P{P9~E4vb2z59eqr^JW3aGmFthsEO&-;K z0D;iPrhb|!y5<^-2LG1v|2~apKQ9>Z($sWZE@Uw7yKJLtJdDY>?5F6rNREatSjOza zRq4TqY&frE38!XLtkyQgrS|)2LiPZz&x9_6#9OAaN}9TknTW|ko)nk^ebg#JH@Mw` zy#vFcamz>=Y)}vTPb?Lj>3h)o>Ret@AxGm2l zMdyTbXUbr}pd<{vrAS?-F5-rxJb2vaFCbGuuqGyyZG08Zf7Wi9d`J2{8}Z3heB!#B zkVOsxiN{jB{GtRdIxveInB)d&rUu0K?F70lrtx=1Er$dk895d__2Wu@ zLcECoUZ~FZEA&F(-T4q&TL={;@8I`_DojaMV%9qxsof+UTHyOmG~@6R+?6;Qr`pCq z`l!2bR5^n`95fZCsksW=KPoQSuFUTn{6~BBuS4O%HY^Tt$Bmo6kl2LXw0+SSs&F!v zSv_9Jr%c++PUfD0+uG8!sx1ho+>qtQN{P75JcLg6EMm*;n2<5Chs;^e?OO&0?n`qTt1%0+{#v9#}aViS3=D*-T|AYSj17M*Z6@ z(6M)A?)4mO3YI~*WDdA$_EzEhW@fQd5#pjz{dg!v)+Hri2=rSvbAH6J?S|V)Ozx<}p7ERw)?aBwJ%qtH=cgcfEiZ z`#iQj%aj&s2^`}RNxFQ)M{>2tk*<~0hjsBnf7a?gym%iAHb4EqYH|iBZvO^K-@|EY zh2X$_7sdJ|ufgFkVU~UKBx?D*BS~|@aau|)5>0I$5M3b7Uq|T1+WS~KtBEyk6w&!M zv9Qp(6Ptwm^W~?FXz<%hynSjp$*-6M$AV|mkIvQPi?1y2ntK8sn`Pp_Y&CM*YA#h5 zW=#$XAuvax82!%m;t}cVB>v!M@CcOUH#?;1_c6n1+1q+_@E$`|Lx(f}BZ1bZN6)6- z%Wkkytt~Kr*HP$A|3jwDoU`ypz_6* zt4o%mRsTWID0JdSKAO-@ds(V2u?zP!s?psi<1l)#JiRcl2R~jr1uYgD{HLrovEMfe z+f6LsXRj$}hE0PNYZT$#W#HcgXXE7S8r&=)m$W9%{(?aki4Z}?qWY2NI=PEe-QkH%I|I_$>dZwJ z^vV>!m_>otK1Csy=qZ|^GL<*TTT->p7X^2bI`RDSAN<%p0SvcFl0NqmvBA$8HfHc( z`g}_)OscZx`9lWt$cPe5P)^~I%iHl~&wPA(#F2eleS%z_PzxsihVT^Uc(K8)q5N<5 zX>vx%&Z>3xVAT5jowQdD2bE5Q^__*}tBzoY_nk><7u(SlI?0%DH4BUbT43K!TT!f^ z8jWcF&ib9>SwyHhcfR)+o6Qc2Oq0TJ`@j{vbkZH@`TT^jf!##MHJZ7Mw4h;aub|_M zB>((T@R^4Sp0z;}>EBNhT=PI3oE_dvGR*kQc3H*m|c3RckGCAY5js{l z$6nws=E0)q&BUax3>|Mr3%%!jkXhZx0yK_7`+HSdH$jCzyLlTlD`drXf5OQ>o{piI@=4MXyfDqPNF5qK&{4KQ5N$$KLPYQ)UT!hey_snx4nM zO?@ZUf2;TJ+aI$%PtBoXRt6vKzn40#ox)!)_{)O~ zbJ_g?5!^KU65IMvRq!AOCE&Odu*p|kMY>w{Jz)R>@e+DKk0{I4u> zI*C4BS?qX~Ck(UgBRMADE?kzvCS}KSdX^wzhGUIUkJYO2>ZAHu51^=ea zMXI+-ernZ2IUYS{G;bMSNiUbn()lU5e1-Q9l(I;okeSF;8?QsytWWHfo(4^;%;3Lv zxWbYr;r!51L;N{9Pc-geJpZ|k@^D`tnz>YrCwJ%a%v&?*;;#lc|EbWESRoD5u36JH zgDj|N{0InMcajG99mDRgC$LL6V>E3urm2sFd|CS?yz+7cZH_m@lPbU2^}RPKX+e1Y z;1IC*FZjZ4HcuC3`wgqsa)bOYY{amELKjE`j+;BHw!EFh)%AofnATzbaPBGOW4ff#4I9R4lU!AGfi-iV*&A6y87`t#FD7uc5qF_-^nSq^zXtyb z4B(zTFZ45%=Az^{9w3}^ntdYpl0)%y#&tt@+LFN6om8Nm2aZy^7%2>U<44QZ48*6~ z2`vhe!^GvMMS7byaH(VJ)MNe+{CdHZTEtMSx-kW0`y*KDo=#r=Fp!Tp9!HPuZG^}q zSGvc%hab^1=Rb5V&^_CWKqn**5~jp}m-A#Mn^Xqdokvk)exBcrJqqvFUx(IqTRK8{ zFljik3-eby!U^YCZoNGP8ctp1<6qQca`S2)BvFRy`VAO*uN7RkD)7}Om1(x^BrfS6 z4L3h+qn+YPl#E|VAM8Fy2Z!eKfqiRei9;S|jf43N!%Dc-)5q)&3$FN;{xDPP1$&|z zO!scshbLssX_5R8UU+3RGt}J3!X}5)%3mAkqyWOaMrGpl#J6`$)+5AHc7? zxGdf$3S~DY=i}V^6lk+*Bl>zdbm+PBuvOQ9+C`=j1?S`9Nnf&<>I^q%)v=;wr)_bo z+Z1RRJ)YOL=!(`XNM{rNi=bnz)L>MX1$|_94NV0`&bOd(B+c=Rus8=BR{tgso1f#Z$z`J7iUX*uyoBJHDZpL2Cm<*eD@D8I`AVUmLz?5zC^84X zDwc>clMMhYWUF5;p3D;tZ=u^OuHaU~CVY1L4es^=y6I*Tdl%eEMu60R`&nkIwvCRR9iI_egy*j3z+ugWAfG)E)k3<^M94+YKc~sNs(ym9 zrycs&$kD&|gM@t6X*OnO9(z%#0Pnxo!}iZh=!?5EZRsyDz>LKLQY}vqoJfSZ73Jbzs4>q9b#Gb zL-~Ql33zJjecbz1%oh0s+bGW&hB|m&lyj~UCv7jm6&9nolBFd|HVFL8l2ta^q>~V% z??hpyFJ?OB(r}4Gu;pbWSSec4Q~ASa-MBE+ZaypU@1^LwhlW(IdJuKW5WHwjNupsD zFCk^)bv)p7j8x^S(ESQAP%`i%#uaoC4oAfc+zq+WHZwL>&lg8u?E{6!;W+nC2`S!V zLaSW~1a_}vZO_)C@8VautEduE?>dv*Hc4n+I-E{7Jt+>0kLRyE4XMZWZIH3W4kv#Y zDc&*d2o8$wVc*}X!m0;3EI!Hvj;qawzVG)id#4=T?`uz{j`ieA&3?g!iI3O`$u66Z zGy%T-oxlg&FM``k>O~1cE>GJ;nl|m)haWbth0qf#;m7ltG=J?`QYF8R&e`!AYHe53 zVza%tB0mw2;6T4jID%wa+L11FJn@^Q$SKT2N!sbp-Tr9k|=L|uv-}q`QkZn`dB$Q5E)*wrU?u` zXrb4GeRP|uD<3B6MW=3cI5t29*RE*5zTn3suswiG-gQ`9=;MwaTT5X=*Z^LnP> zQN&4bwdnMz3EkXbbeT5+%lOrNs^ZVeO?7wh`r&=p@oylxT`x&Dwl1d61~*}j-(7T6 zyntO6`|xv|G|z5$Fr{WkG#tpiNVGMF(5(W4HT{v`obAZN-<=Yr+!NtqqJ*+zuCgU~g}9zyh#kuH zqOD%@$n|+IiSLuIFmZmosPt|LxMd8&xk4Vus9c8L>bzZ*(=?Rlol~MkgVK57E?pk= zcpX~BjiiZVU3lfB^ElWvkOf#hgp8U^#PfnM3Zk=Nw^TA1?2^aK7B%Rey@Ai0=#SU; z1b~Dn6(T+{@M1c&{kala9Gioy+7mI}!31|-Jk4Z|9>?O%94*I35Cw%=;`re=ddJMh zIRYoWZ~A)i17B$#=sbqk_3G31&;wA_WdiAcr_;5~+wg?YVO%ihGgGV85S%0^DBj0X)s?bCPq_; zl*bfS)jpi6CO?GIwR&`e%S5_XX+2M#?Z!WCenuS2(r9MwD|Fo@jn>}R@XG~9F1@q^ zHv9y>C`X45iC@C~93-ej|607HHG+O|Xv5p%dr8V4U*6a6L2vhj@gS2ze)3Wu8oXW4 z2mB3Ys?xzMIAJJXDzLQ6UVB&Xe6pLKyLND^wz2Pc+&cH!abE5|G6Yu4DMYSt^-JvRYSIVH>dD))LWKltG}X(WmeAxguKO3ws_UNVhvpTL(5^`{Z@ zYv~~mSKc$L1Et^AQ9m6A`sbzKmws>_ZYA%bZ7yGVe+5GHXIOVj)C%6;rmcNK%J&tgj@B>e8<;4^ln8yHbkmZ$>_5*!a0Ogzpkcy z_e_{+cAoUV{6PBr{dq-c9JkkSqQ&?6Ksm&XwvWxi%Gu#~RAwGu-n#(@m9E0bFBwp9 zQP`m_ti?8yRj{PvpyY3&1Eofd;tG$nTSmr7l@u_6KdA)#8vGI=(&HM5HMgH zPn_mLA8tv6mXp8W(YtJVovDD7l{HTa@2{O#Zp z+8N&f6}o3>D;FA*Bkx0W_*-m=vlg4|_5=^hQevj;&A)EFMN6(_@fXY2^Z)kC3Ld`$ z(Av`oYl38`e98pey;N|vthD4YieF&Kf@$3M)CE|#IRRwu-(Y(m9>5#I{zk6a0C`$A zI{0Y8+L&;Z30MzrbCN|pCllywy}?xDfY2Q_A4pdy9Y@j2>!R}-9->JN`Jg*L4U62o zv1fn`d+I$5XS@ceI4N}Gq$}Xoxm4KYY>Y3y%!JPC({S>J4IG(w_eS(M0PNMDV zX1IN#jU8Fq3BGm9;iFSECU~EK5zmGT?4~cocX^S>_x&+yd0m;s{oIKIHRBn(<0Rx# z{b}GzU(xP|Lour}0>8bE#iZS8w9M%SUQ3C90jt|ZMXQzQ%RN$<(>oUB(jJnP@0`h! ziMlr5)KvIGR?i0iizXTJH~Ho2BK9CG2saMMfxBH2bcyB@rg=byr-z4O#G+(;;QkKw zM|gtw76rGz&QA2ihAOVB8pUasHeVDmTxbjPB{fy%F9p zv9S*)9V%dlciqIml12hETONOXoz5fA9jU0_D<;dmWAVpZDI4+dWdaANSzu^> z#*9~=nXqwy%+Z2-c+C@1?O)H1&#)3Q(EkysceVI|#L-JBN-(beBp7!678muUv8A`Q zA!AV$xEfvH&4(TF`uJ2hHa-vrS&R|-XMNBkWU)1BSMk)j22dCnNeYJU1n-?^;X*?Q zYc`n9YwjbPE;uJNZzyv236VIa)Pb$dHsO&657K)_(=mTS3gbH z#3Ms-aqBpg>Td>pl83?fbn)J787x1aV$*JR6z#@q;L%| z1RocXU`;w$qKxc+I|+9F`^6e1p25jOWpK16h=)t6`G+TVRvLNNTXA1kIIi5wkqXul-Zv_Dhs)QY@7D zb(a?WG`B%Cv4#lu&N?#kM?cE_9m4ZCaxAFvO*>!fJAWD+%M;{FozPq7k*!vd& zyr!uUKa_9AXT2TBHCDh7xp?w*%RSr`d0*5xR*Nf4s$|1GHn1&ai{ZF-8M{8j2Xy#R za{cjlR;FbEK~>G<%+MU-xF(W~bXrOEw#!ln_uJy+vw}QJF%B&PhC+G8L3|^)^&-ySVy8}yWy1nK zitMd2`C;LvceTzD2Z!2Gk3H$UJI|II50!xC*Ja{I&8bYo^Di4AymPOIj^_o1f3Qc{ zgk0aT7WZGwU>hgjf@i9~SkkfoNZH{-7B>4~2MD|rq&1>$bbMYcYq_BqtCWWtBeZWrRDC5} z?l;HmxzcnYmz&I7wT@aXC}Kq~89=1#UDy>bMLq}%5RL9l{MBm=@Loa;8c%xzZNjH{ z13iYc!Dt@)-7N=9YwW;5+@9LGhS7|jGs$D6a@e=_FSflcMuS6|lip?spMOo~6ptF9S|5PX(jQT@29y^KKw+GQXn%2bXl>i+1c%E0pxkFb}`ZVcvQ*znG44XwW zF=&KEd65M05=bHuo3Fvd>(gNC&?YS87!Yax@=V>zRT#E_P9jf z+HWMK9HX-N!DLz#){XDH?ZzyfO0tFL1~r!kNwA0t^UggVXjK9v-zBs=dIQ~e#j@emhGTs8y&QQs@)P4j z*OBvIZ&I0#yNx*Xf>CSOM~sd|k*#vqFJ|je+IAYbFM`2$ZIfxT3fP5oI_Qq7M zk6p4C!k=Wq`?;_9s)IL)XhR0gv8dubulJ-So3E3D)pzOQ&n!DNK$hbR`cXZ5phBu? z{8{l$Vm`BNWmE?70V7Q0L| z&~n`la$<%C=}OK(MYWlvU5XEHEZ&hfZH2VwXc~ERU=FSyo=%?U{sX+9$O`o+QC5CG zxo9(mwx_njsW=M~kTDY#`HE!7u7cc48N-A}RbVb3h-*Ilf)yI`=*`4x#{0Z7`6=R$ zcS{s#@U~+hYOod$=oRzd`sxB07B@`gSfx`udKsU;=|sG83$BVn#BG&ud;MJ|!GPtx zOs~d?I~9nW+g9xTQira&GnumR=P0@P30#e>0Tr{i>?XrpSi3P9Cu$x8;dcXQKld_I zAeF`{n!n)XvL+DB2-0`+g3zIJ0oi=094kZz@SjQ|+^KkvyR!vZ&z1;m-F=b4+HAa@ zaui-i8`C;%Pjc|N9ozqFF~A?urWz*)`a|L(+&(a$iTG;C-yCoRKhRqEx-Eo#^q>n5 zyt~l&Qeqzaca;e}ucQh5x)*RO`WHGB9A?yOI@#fK&-j1OCE>O&k)cOgUgE-uSF}KH;Pa8 zr8Q#i=%cfV%+0O_d9E*4w~))?R02#d^uz-L3G^46i+f&AqtiTe$nWjWIB}~XyWyD& z?5juwX~8P^zP}lyT7N^F{C6h0emLRjsNYIDaBg3vSQ(COA3+ioQ zi0luBps@8Aja8G%m5Zcw`r zMEU&|I52x7p7m~EK4nS~JFO`eMJ;=^1*_QlwJxJGCm;cIf^|eE3hJ&>v!Tq z%qK@-wZRn-j~YQmhpG5(QylV5GT9r$r z*S>3rxH*e0M(^NNwHUi%(pef5p9QO@e23j1Slk(Y2*SPR5w{DQ_}vp{(CffpK~V;z zN;;7Bz0u^I%Xju7$I5;!C`U5iKZ5Ybn|b54i?MM-6Gn-w!bHKFM6g4PdCu{*g5G_` zwtsJ6|5aI#K4nN<6aHJp{*s7W8q`N1L zy}IQC^Vm5AqlBih*O&fggjdxwx3{a(E16U2M`n;+sk{jP+S)LGq(sQs!}7?b!cm;x z0~f>o;G&9EFkecH?#Kz zHJ(t_Vh-2t2j7b8&{a9Y4o%%i>c4S&?D|HS#ASeFr23(?-;}Yt{t4=gqsWytRh*Y4 z9byu6v8{*W>`NSB80RUpCu|taT1H{X-3cTS5;8-enmH!(7Q@%H z19A5SI5drn$O#dC)-{%STmaU6{@5XG3jdkiW%svihp_m|;P?DB%-+R-WLF70@ZUTl zeOkSTB_W6O*0E&m1M3lOIC< zZ7PL28+|@+RFc{+7G)1#pGj5^{KR_yVi=VbB^!s+(ON}`^j-PM<{F-X+r9y~(|A5< z4r<141A80)IVzDQ`}!Hpoe8iurHNU_6T%55Tu*0CAenl>4Wi}%9rK9e?xXWyr2R8v zuik_SVn?tgx)DvDA-R1)pK9y);I9SpWFX3gt`0ehemVzMnb^cl`8lgGC1} zS*Hw=m;3SGOnuyDG|Ep}a1^Y=`hg$Yg0>|q!NKhoC@%R2)22_wqkjL`4eC0$OFJ0V zqzK$wr9wBzlz@fpV;0?SvcoUMsqbw+Tr2*YHzimA!7qwhZd4$xB{!K(I@!4Dh$6l) zwj#3LVIX#4E>?G@f=_q|{JXh=6sx?%yjkV&FFTxPzoVGV>KpES1VSBmm=Ef-aWn%`3PT!f|lhjC< zW(F0k)W)Zy3!taSlWde8gmBj>u&l`#t{;rY39I7RIn$*rR19vSb&4)sJDP@f#kl*1 zPxG+&5uv*{BGr|fqNKfL8WgT~q?Ii?m?T;S6D1Bq9^PONUY$;E|J_0(R%f!0UM+*W zmJdK-y*KE@+kxW<*E8^a%zQGhBXgYh(-r2UBy)2TY1kLf^NGGj0*y`SP@dc)-W zZKW}ny=kGL3U%={!zB~aIUY(27$%s&&Ba@q4qBZf;)zOB)K`u;xW&=+qBSUeJRhAq zp5k6P0m8d>7HY0;ML*Lu%vH68#G(EQzc-?g%(EFmsWXH|bzCAbIui+x;aG=hV|eYr zXPEkM5Nkd?!#F=3NLlVd$K;CWle@~aAVeAVgrw758ogL2!ee$7x9~HLPa*4O|AklP zwrs-Q6Qp))7g>KX7kgD^!b zUu)`ol84(hb?8mQuc#doPFnKMQXL;7=JhRkawIAaj5XHK<68GIQ*|Qx?`ps&&A*u+ zZULZu@-K|Ux8>hF-g44I>lxv2~i}Ac{}emMzENbGLL8Tj&J3 zxgxkFa}qJXR6+(HabC>Cc_buHjhH6CCUW8q@aoNbtL#EYF#dIxVHX?_l-CN#vwo3>nYSAg3%B zGkrxo-ZK3?kh-@EBDAvM_MHQ?+-wH#@6a(?-ngF>I`5^W!NGLj5`bW>$z+UMbA~^} z!?N1VI4ELH_xLZyKW{dZ&qtJpNBteen0=|o8G}ThkVin@D$b6-2rtG;gkw};TgX7w`NW`!{1*e|lfUBX z&G|%mvMRV(Eu{lv0>q{N8M~|_gQ&PP5T~#m^w!8fUS#Gp+W+J)#2I~Mlh*OU_(Lo6 z`HTzU2W8{U@Ep>v^$y64Go*9uKU$%*ml*w*%UW03lNj?QWWMAix;o=J4mIq7KWpP? zga0lVJ@gt9uK>DEkt7c>iL|Kd&@+Pb$W_B!tZ7Vw=l>Z|)384bE27EGP#^NQ-8s*G zQ=Ck8yJRxIhW_Evcz?*crT`0SyJ5|=HGGqlQ>4{2438PLue(@d-99XOoCTA-*fd@Ha>izmG9qb{Cgu7{dPToOUXsJm~)y2+CS%~ zFT9AFmCH!kbZ1zxKZ0ZO3O7mUThgA8N+^FML)znIn3~JNG{y7~JRe!i-hZ8sk=aqq zD!UoXinIAyh8q;QaQFuwX<5=I%6sy)g&jY{WuF!Z?9?B@|#Hy@8b?J@9Uo0SS(h$1vVvbbXKm z6_1yl@I< zF3=?x#uQdUtQ_CrZpHn%O2-0^&(&W58^p4-C*{5BlJH^gtkNSB!2dMn!JtT z%7u?mcJgG@H_|7Vc>>S=R)Mi7MLJ`qHf@+3BkAA{1Wx9m}~^>A)O8S7GTf#=)50Qyh*;J$20QWB4%N9bt(@5N@^Arc>)raSrJ&=oeriWFGen zbSH6nss+saLs_`KU^?t*%?4TVmGEsq6M`ev*;!5V;I>jS8>?^zf4$sH!gZ%J`?3<4 z?VUEL5urd=r96l9{fXEezlr0tbFPJdvxv!PFS}^B4y1Raz*yo>yjr%5UJ^ToRT^^i zS+fjT)?!X)trSPbqXb`FN@msvvCNpg9o{=&Mek}{$CZ0Z@m&e$P}GP4mjgH(kC`+eDK53S!DIA|1i(Cl9yt?onHSEhpK6-$@N{G z%!c%2W}|7jmD_C#kX#W*V|M?;)6F%wFz+>r@uK;+G>i^^rtZf*#o+gFQW`NA6JfyoVwnp}=Y?wO`U#VAK?k7ME-gG`Rp$@E1j4nO&XrQbfYC2jxMwJZ0~*tNY@`ym}=S5L>;%V*;T?%gx#>`Ep} z!W9m(Y3xtTgf?F{p1_l2e&2Fi9=a4W{Fj3;rL2?lFLHjPmBUQ1!wB0wD-RFUi_k9) za@<~AmWF6;hubS1V0-8s42hXUAKg%=1^IomxT=qDqhH^BJ?4ff#OYg&vr zK85idWn#AdJL_n;jAP{!@SYM&67tWmPu02p@?GvsY5kJDHs7o)1Xx=osvT5}v#QTAvCj)ZRrVyK_IM+I*;6w%S6Q94)tt^~A7|m5 zX({eL{~sJ0bmI8WDX{j;A!bR~X*l(G6}C+0c(4s77^swtZD(C^^ZaErY}z?2Q?MsD zOD^+scF&}0&APZr$_zxqx={5Xq4y^G&`;}48KDjtDB;-B$}zllvdnUhFM z$T!?Pu#8^27e-u+YS@uu;@qBBmYFxcp0JaPK*~jpN>uKrk`GMim11oo;buz3IJc4U zhZiW%<=!UFyoL>PEYW$L2lKa~o3fM2;O|#Ly!qoO^w}ABqY;ddSr<;ojzV!cTiBKH zf{M;$u-oOTMKrf^y?~YOOhgbh4Y%y>buBx$rEUF;xbIz`jUQQrsFKem9#`| zBtbl16x$n(4hM4KvAI7wA38!l8ck)QhEzz=)$`OQ$bfq8^&vBAWl6{PgUnEW9`3*O zp80Nb183Z*CWdbM@Y3CjwpwJ2dV@2ltiyUHi(unFrZ!?sdH!1UhFwM+tdd)!~fCaE(d9Bl_L3E6@d@j7&2Wp3@@D!AX&U)v}0yIoiF^F zJ9ixsV2Dd4f~9UHPWkGoURj9vYiczQt^?VHs^!ml5rqU{arqS@|LImrdD*nY*XO%kO4vjxpul1Yln z55r!CWi+Q?2=Xl!bF3YIQmlEBjH^e}?t8Y(v#c}JX3qcj8Hc#{rY=k}T1lqgT~3(v z9#nX_fMbQ`vCif%h#YH0T>{TTTvr4&JmN%0?vN)t)Q&RHtj=69uEiMV6iC%r zNu54DWcTX*V!QAj@;X<8@9z~j$t;H4JK%!WSwGP#kq=t3+!$|i4$M6ifp8!JzFgUa zdQZJL|1`4CANb$}(LQFInmhAEpoN+Dd>3R)T!pJWFM#!}qxf^Sbw3syl4yqS!lg79ab5LbF04TXFY2YgN(CzWF_YE}XxV zOlCKNmFO4f-y+jw5tc>&+Mi&$cHP6f^|h?ukRpEnZ$6kMRAHlQGn$LuVNdQl&2;TP z##mP^0FAW@q~V|u=lMWb{8$S`#><&<_9*0LFJnxuM&gQ#q2x<}D&}vIqtiDj!!^zo zd@$lXWUf_()ZC|_#Dm8AM>erx1u7%~cmKaaHB`RD=~_)2ROL zL&SCSVSs%*nabf(e)#v(xY4PC?Q{---nK%VlzkoU)h)pK7VZvC(S=m{#z5KL7IIt5N_t)v&oD>%XT5-GC6YH& zVe-6eh@bTtv()$Vc0G2%Yr1+Q+HnpVO-knG(DBgNE{pxW+PD*?O4j-b#SF?xNoGz2uL;_P*I zm}m9&5}tx0nyx8KOK80N;9# z;);3Wn78XQd^X&PpZ^xay1jeAlj9<)Jr9I=%6S}vG!!#lZYLpShd@o|1=hN2@f^ON z!H{iAC?R(qi<&6g-yBB&U5|p@;(BzdLK57Wz;Qc&D^W|kO_(k_8Mc&mk2@l&|t7PGgrbJ0S`;&UwWw)psK2 zRK&@>EKBOSNQjgzI*!u~nplVDogn;u3sm$f(UWyEh-TFeLVIeMJ7yWACMXsjxpSSQ z$5nXZW-E5xd1oasHHm5|h=Q+tF87|A0tq|+f+~m9uXPh~A>ZyWZR-!W(uFPN|_1ZZ9i|IK$(p?HpYrcWZmLr_& zPLo_b#PLkK9k5p<428b$A|h=Pbj3em>ertG5l6l=>8FHf+^)a4!2K<}ZF_}|Yxd&H z=0C_Y2tc_2JqVSogmVRBpeHN>`ggxUl9~v6{cn8Z`mHUf*4%`5J%xzG?grG{wjF1h z?IKF26{zYdCwll|G@W|+271{9)6_k&*zW#^ZAz+#N_!(PdUXI*>>N-vXa;`JRiMg0 z?y;8=a}bpq#jtbQUkiK z3^QT^_t|C5R@nIV3n~n7{hpC2*q14QvknK+fsS?vQrnIjj~zj`!~fWG^UR6RKV7ow zN&v2@d;#lreBdVzN)X|D@^p8Z1jnIy2Z1jKna$kaE&as5agXmjs*v;n_AIxjo?eUS zggcyfHf9k_Set=O*S}+}$uUTGmqdr9cNl)BAd&a42jh!t!FKv7Ec5!wUivIdYt|fr zf%mhS;IMkoh%jUZm0!We!5*A{-VBbdXhdJtYao}Qh_B8Qx>@%rrm!5hn%1#D&bZRY zmCx~Uq7{({C}cCPyU^^IA2@KO4KB%bVujU1_OP)!aZ#&dms&oDUBALG=G;$?C$NX8 z|FR`(@0NhygJGOvR7-Ti*3<8@qShyOOn{+Hp)l=P8Htz*RAZ(Z+k0g(?Or&_cunHw zClfT8x-a92{ZLs<<-QA(6M4zB|8g-F`#*$mlxAuht=Tz~USR3M7_7DAdVK3SrdI7~`s3UQ zDAJUnzYPefTDTW)*4|+I+Qsnn>itd5>B%H+XbnC2#0~d6tEA#L+JP_K30DN|(ZocU zSaO~Jon8gdTOmg`$(|!sEeYH?poC~9iZMc_hLo&RhaTH)9IGpjJlv*BZ~G(?0mF}U z_iBCG_S6BG-s4!<_y#k5TX9+AL=tnwhwcse#YVaQfmdcx%=i@>QuoP*t(iH>3QxR6 zTo(yit1fQC4g06kH9NWe;_eRi)wk!&W%V>HdO5^?Ti8oW9VCc9SxJ5v#K6bKTlB?f z9+7&nAKQ!K@L-1_Hs{x(zFr$%oJh#$d!Mj!^CA4aI0KFI3Xs*lf+^3wVmejDp-YkQ zY26(1eo)%lY}P|icJ^R{O%Ic06SonU>JbpK=lGW?%gI-hY;-8R1I|K}RBst&Oix9V zK>1BrYu?H(+wTftWolI94+kO2+ejL0X0mBVgK)wqAN|&=Q(k*B9apTt&8kgIm1-)n zQJTU_eU(BliYy?X%%thVNiC$}NIn!=*5azA7wOnEG4QVUfUOIgdCtvUyc3=>Fl)vm z*630oo%>mj3f>4LOjs|Jj?bXQI?s5+-ipNi)GBD7%*|hnp1`*H$s`~umZ+2tbD3I> zHx^}rxf|LczubrJd-w>Seh2x% z;P-n>&|NDs>-T#4aDNKshxRiEoad0V_Z(C9?kCt8;6|K|Z=$Ud_h_y7dSboeGb~B1 z$6e#UsCdO3dSY@BIqkcbbY=}hN?bR4XT?#*f%CnHtIvUFp*FP2fn$MeJ4i+<(qJk# zj|orJYe@Ym2EESh^lEMq@d#+8%Uo)Z!;;fZGKh(GdenlykVGhLqdr0;K4JP29}Y-5D2h9ghziH;{AjC2U`@HqFd+BdM$e_1h;39`Vj(Iq>Mo z@BPeMfiIx-v4FR@ZXF|Hpo#Z$RiIDy6zY_8g6yyB;Jn%l^rtCfU5o(fQw!t1KQZ=D zS{js}+yWt`YGgDmm$$JdfGGP;!DYP5n8L09{p%-z6nE}=7a_$P@>x$*W@qBn$`fc8 z#iMRDt@wCyBWqP;O|%;Jq5Zy<#DB|dD&!_aoKS=LoaI0+A5TJO8V#nY(J;c-qTA+6 zQ<^AFv{!DRcg1ArCob2!v{Hz+&b^9DX5Z(XI+4l9lw@G2jv=`Dr}K+O97$WDFWm1i zfhsE3l*HK5R_<(n`o?U2<6J&}Md%(jwtq6IKj%(Q^qJBpn~iT{VtXJKgE%E>s7HLu?&M^5*VSA8;F0M6gmHV z8i4URIB<6l?)Z`p=hx04N<-Sz>xl=+Z!gCiUsy296Q%Kj8}Z)*7Myz=NkmdS95X(G ze~-=qr#}uT(&|YASEaJ5aWiQ0>LDgt^E!8~j>O3qb+Oh$1?pw@;SD22a`3@VrslLI zYvuQyoju^i-#kr#TzInusioe1={0ICqiy1cmYdq-_ehGzN zCKFkc0^XpwIkp!FGmAc(L%W3>xfl&V4Dp5RU6N)*G zb(muP17|1&;p+Q(P|h)56fSgu|9lCuNz#lN4N!(EOErv{YQR`SGY>B$ldaKm#CP>M zG}&x~M)TCLfSVBv%V%R?-Yohf*A_U53^=VY#5f6CJ$czMI0 zy?b>xgo=7o{ks=YORt@+v##c!GZ@166%(kEz&;4}noKoDU%-7ECvx)Ldz@;ogyL^F zPWB%u(&Ju*T@1Ik6X;>pJZ#a>@IB5o@F4SJYhg%!6|CKq0!eLIc)gJZYpL`z2+G{3{jid3tM>6No<@zJ3A7Rmd3HY>OKAqHg3&x$c zqS4Yr%#`0Y;D2o^uDacX9e-XzhvXP*k@|;;Sp0*zALqs%OKX52!Ao#nYZjyHt3xH) zj&WHEGvb=x&nzEU!#ppwMc-%nU=u#xn8cRiGx5X3Ktqe2<}bzTDocmYMP{tZ+FsVn zUl{xXkMma7p2uz9%W>Y6V<^?(32qBqx%tu|HXv3UZDOrCc8(7ly!a{T!4W(pB11RT z$k1Q&fAa^Q-e3gz&)9GCOVG=VE>I5@Qm6@;Wp8 z)sUF=g%eY`PA0-qok?$2C3#k|Ok$`mF}h<)?yyT>mzV`(ceD<=6`w+vz--dsyo{>r zRIzh&zrvhOF%p&Fii?KlGr?{WR9yEmdcL-$(T!qEiTQqFBP4^fL{sq|*MG1Z*^7F! zg{Z+Z0s7`s6ApHl1NbJeCFOlE@X!SAsPwP_W)`&LRS}$dJQoHz*I1@?4hWN^G@xr=k zsy-T9bhy7CQpb+O*)yWu!gnN1+wB`R<$%Zxl45h9-)_uy|u4H~7B&McW^ z0kHv`%f#{{JggpoKD{y4`(Zy!Y}t(NnbR3A72inxu+B_i~FyD8Ml7cqzXr^9O%Nw!bwF~=*O2;-D5+92XR^P4_;=xGNY)Z2o~F3fNy{jRrJ(= zKgMb#>Im1BZ|cMgt9GMISp_&RTF;0F6kxJzHk`iw83Oiy!Y1YlM*et)dYlP(!nFZt z{5F*lHjC%joSsM$avFD6Y=Q%2MXYUSEe5V~MT76J;M0mkWUo!8u}2liP*F8=++YA_ z*(=lY7ldf%14sJ2T!i}N)!>goL(uP82_NF8;Swctx?blj(|BScy)&{2^^Yd;t5*Hx zk8QUGmp9rpc1VdR>O_L*BO#KpAPqNu&w{1j_8_~VlNH?Z5q`%%!;zgzr0upkx;(IF zUz^OLKP_w7<4uZ4`c7b}rwf&S6vej|C}19ldV^?J2y@To9N1gzhw0LbaF%vGG%s5M zm-6Ds$FJga?2{%L7Ak?f(U6eFq&M2U>$H{|V}0h#XwV2ZLYRprZKxFna2;rt3dNmBS} ziyNsfPvbv00U+l45_g3fFe_`t8QpXR>YFu_ek}X~N3F_Ob14Omw_bq%{nrYCUndYP z10mY6tN<_NNW-b2DG($P4hB}+N!i3WOgSbGDH`jrJZUaD`CvDU)>OdRbNVE0H-#z9 zQr1oNGW;)v-^rt!b4V)JZFVUrf@{A9rGq5>Rp3B;5X~0-kh=&}&9|R^zj**p9YV z{*r1jhIiKlj=Yd19uHDz1IJssaz~oH-8PjBT-`)&r6eb(&~K{|u4kx`ga_YgP?jG_XJg1|w=j6|N0&}s;Xxc)dT^WSHd3aY z#ZHKqrx#4bn4@o}5Wl5i+!{EIhUN5u;4PM!es2YhkI-g!Yz`;ie21WZaVxpeoJvf~ z+)yK`k^f#tobb2|<+Yp3(fs9M*ePL7dS`~Rjfy!W-o1oOTPjNCta2t_ul~T0q*zui zBMBNJl<8$%St=s+2!0ZCPTDh@s8l3U!4q%TwrwFa-RwPDk8<68&O!6w{Rk7Z@eq}Y z2_!d8s?f%PljQo;BHoV&2f*ZyB~6qK#`RMs(f=a7$s60l+&yOo@sEq8&#H@P;u1l+ z;HDipQCG!3mZ=T9gL0vB+DlaX@SWMULYVv>m7!Y43qf>uE0mefpbeGxnO}#5Xv3=@ z$i5m$kFSfy-G*CenP&o-6S$a&$jZ?Q^EpJpw3fID9f0&|9dc~*Byiuh0&6NBz=isk z_;og6V8uyz@TH!Af3g8tw3KrSPM0NP|4iV(PT?ktd5@?FTSvSn)PUg1G~D;+1GW7v zMKy(^h;u*=x!CPTg5DRC170g(tSOlUCdi>=dKA6VA59J(-b5~L-o#p;yN#Z`S-8e} z43A}>qN&|O&>-VaUpDGc4{te|;kks?pSpva9p=D%^ZE4dLq4(j)y_;alceg8(@0Oi zb{c9pgJ@mMA<6mSR3gxc+-Q|+`m}i)p2;8MynY!t!ZGEJEmP-m{!>V1q%GaH;V41m-R8rN$ndi~O#@nv^CezM%+bLcZWGwF=hic^v*V+6SM+`q`Xiv+&FB zE+p2kz%Ndo%qNp5-)|B;{{D zAVXVV|okaoH1oGt4177SQbM&e@#Q)Fb0{iXtXM|E2 zrjxk^=N^1y4Qi4Ym-{T_9IzuwxzmV2u^c_=B2DK14To9No%p7QjR>esCY#pPJ!hHodo!@}n*w$ID@jg+4&9az4jYb4A&swv=+Q=7`tp|ooE=*V zZRS~6`kb%|+mnIexUaI8E};9QGvte88A>X|@TN%n;Bzix@112w1R^Fw&NMC`xAQm@ z_ll8-Tl2u-N)iT$*TD4&9~V7LSk=gz`PVZj7bNz>6MOF$Z^cY5#}d5V?8&cA3cQu=1cLv ziS|tNT+5%04U}LBIlbuCgnBOLGR11-n?SH8I$6umj^RbzyH8 z3zJS1<9pvuTHXrb#6;1Q$$WKdB?lj2n$yUdJEpOq<$-hi6}m0&;woP+4HN? zQD)6_^4rCm^PN40=q2*ZyV*1Np~vKD57(WZWB(oBjL8%8aWOKdp$flfbH1VL(^wVj zd^YEODVR?eB|*;X;QXEzCU@d**ty!As^9nozfJ3W&5?%M)e##J#} zIR<_USF)B#Va#B4a@JVbA?wSH9q*|V67m!CpkL?ygt z-|}zIOhc#t_L9Ac8*pdwe~go(7`p3LVfRWP_nl4X*@9YD@njM^!`_rw?43$&3eRCy z_6yLAvY}qyUeviT4Pt-Qzz@w2nD=B9x7NABB3l6nR%yY$E$<-K?Hl&mrnA1TZy=59 zGXL#Vr|Lq2bkQPNT7I#Csc4!2IriL)d&@AyXvv}0SPquIjm3Yj1*z1hTIls}U=)kz zGm{j{@$z~Kk6V-}Uvd`XZTJFhxcg=^fffkmM_oGem2)-l%V3vb8zVJ=d$!%?Qf)PP z9MJWm%%U|7#*T`lGsK;*GslHW?e}5*=y^P(vXa@gy%SSwtWaBE0$OU%!*iRzK-fSR zZi`o{!XCFfC9i@D@dXeq>n&mc==S$<=E5f*xCQnsuG z-J0vzhuJ$&C36)`C~$)n|7R+PcJVsrzCq=OP0X&+ld!ewbHiRi9}xb}hv{llCUOqZ zn4GLg(nK1VL90&wzKoloT0D#Y=+s_%zS@zT^8q^NryMu4YG9uF48akaibl~o^!TMe zFlEDbCT`an{9yeXtS8MNkM!R2{H{L*jib|Oq(&w+9N`?`y)Suhv@gT!q@R%Vgu?NQ zSJ5wiC%%a7!6B`QFno9}>XYwS;<*EF-+0S>U#yH_$y>4@n5=u$^AT=gbzEyo|a3@;LShK*7pD0UI=l|)PUC47f6)) zYFeiiNZe;Icz0ksX;923k+Rw}abG#3{<(@CesPiHr@`z)M-!q`_ZKo-)A71O z7GGewCJ|wFZhbzLrfa8#Go-SHTeR zmLW11+?pf;Uz2x=X>_n}5ph5Klv>zK1*szo*x7f2;fi7symM@ZE9b8?`f<6Tt#vkJ zr$jHRGQ}kPOBz$MN1twa8Hnv_VsuT>1d<;qLMun!f!BgFG;{tN_7G2wnosd2L20p+ zs@I{3=L%+c#eMv(EdrXV9FJYC7enRNll)vmykM+O&rB{SZ^F-$Web*5*_a?O&Q63I zKWh=@>Cuw`y3FZMP0ZEbl1-uao`N&9V#BQ{=E(*h`edpJ**I!P<0rYJ_tBrg@+Q*I z|CZ1@eHkRj<2=gcxznrLcX6(GIhxd31Ulb1A70ySMp93Q+5NJC9bKDDicXa=W2g?I z+74vHk3mM?sUQEdFJhCZAzl$mL*Bqmh&-4>bjBQ+3BTpY+4~nDPQsa#IYb~``Ihe7 z$l@w1IWSHTge{VMIQvkAoEY|pL*EpeB=9M|Nm)dN8biVDCc_BrD5S$bF7obNkfJ9q z>sUXP*#ncZIG(@Gdiue(20z#x#Scex$=|O`u8W}z0U|p{={-H1I`btz)e~O$UlCGTRZm@%GeEl5gm~D*k#(&%K+@cW`FgDt7yPbADPavdJQ{@&Q(rWM zq)n%bx6LMI-B;KjhcY5Lk^>yd@{e)}7^w9Aj$x>eFmnt9|`_(YOr(*;?k^2BdpFg?-h1T$PX?t(!O zd7ycOx^|E8>dN#`#lIEZZ#1Lhy&g72Je9_LjUlUcaIEb0ljz??rljk;4^$HmqW86j z1a-`y%35(m^N3v2&f{rVt^XJK#=IL*s^Ecn3K3|d{x~CWi@6^Ebo%%4ke;O9q z6_O8LYOM0-Q22Pvl-_SU!pzalWKuk4vn#dp@Urh8n6t%?Djna?objKADU)t6?Q8GA ztM5rzxOEY^C4G*GlFMXA?S|puq}7n*-D5SjhgwD)I|A1(TjLSwD=;eah^J5$ik+=@ zSf9gb5LNmQa*CcYd8Y$$!75`SleL@OGW?6xd*;W_9rA^T(aOxtA!UBuBFqj3`qowuY9l$OEQi~x+!n@WhmVm#09gv_mCO|Q;) z)A3nSq(xo5q^$KSRe{ z505cQhbkfJrUYAOp+Tnf9%L$|pK|%)R1g~cgyY_U%$hq#V5h)cp8qZ(T&up5ethr) zGCULT=y5l4`!eTP`LzqaXqm%`XbJd~u1rfyVxXg;3&rG>h>XTve4U!Ye$$E~rjeOE zXR`r(u^<=&HlIedQVCY=?=DP?Q(+u;MQ}UBH`sB&i43}oK+{KIq~01-xws1WRl;PV zvkMrn3ng2AE0C(0Qz-K-0q!35VPnR5MDEri`j6v4&DQt}Pqr5`yC%6Zug!$H-0FJV z{$m4PyWYf<#!3*w@<{M2x&zCl1*m<80QKR#xt{}mu|bg%=w*=(o)!%AVA33#zj6?C z1B$@YT7sU_zKqMyyaK5T1@b}07N#cs1!fC(wepIbTF06Jfe*O%(WB{{un)4%j); z2IpfqF8>A@`c-`nu3HfZSB?82YSLM-65^x0Z74<_%OU62e`UO0PoPBH6+^g;piHSW zRS}s0CpMg7&M0WpQ&0CmfVVrcYol;9F`jK)D@0%PSE2uES(wl{!tDG}$h&DO8R$5ChU^(wMD(=OalWW8 zzgi*{#qBzQvSRp9mTUPM9YfhPC9>S5lhx=x3<_!L5dG{kBT}&gwVp4=f8J|g&Fr5* z=><&A=gvXrdGv^@8|QUA$D1XoPb07a6F!Wyotux-@#Zi*vZWI)EKoybpKt8lkQkUO zoD6{m?-_G%8S=t8m;BtX$$fX7A+9cj2)K{4mJ!Ji%==+Gb3;^a@?XMtQ<#I9KGtb?_+rK6^Cc zFf_~f!2%g+>bT@NicXb785=tq@v_wP z;N~y9gHOj8Yu7S3KE)M`Mz68=Gd#&p87szagA7`3I>oQpA_{-Qb%|JI1!i7wVQ(wS zaWmy$Ql6qqXOE{q`JrUoamAmFs}5im$%p~jexHf-4dGQUufz4d)r`{vIW!wvjK8&0 zn5F_d>TxZLRjA8{BcJ6+#*i_+6cdAqn1Jp1LSSvL2a#VEVqV7$Q06$|TLpyh`td(F zkT{O9PmiO{I~RWNPiy?K_yZOUw7}71K`QLlW*l^EF7+}EWRyD$!2Dk{%IG+v%iZrV z=fyVWVxS^b%6)=*y?fA4ESg3ph?&=0M zqH=J}aVHpZc`DJSn>gP)8T=-PGl{PTP!fBus2)-2Tc`1}Ae=`=PVA zPt=GcjnzPH_9pmqw+YVAcdUFN+ez$_E$F>wp!5DaNrghTkcIzxa8KSRrt4ci%q|S) zDL*U26LGs)%bXT?yhWJq2$@ALNWTN0w~IIyVl*t+vyZGS-%V`HMQDy{Exb+OcFzVW zcuI-o_%vUzuq%ds`!a@6La}7BN;j3v^5i9W>|=gDZGq4uNhD|XT;7~HUwL(3n#quH z0V!rAjSCO;tiU9A*jiwh=RqE-ld^2@sqj)-liv5&{__3Oj1{gyA@KG?{d`XtA8Ij)B)xndaO=9&9MPJlVL zo7$gfN_2ik;DO2U=(6uLm6N_gLcG-G68rAae|}4;PmwA~*OsGw25ID-y8?))y~ddLgLH_y`)c<+#0`n&SYOyk z54v+6h~AmR)uIL9y%Evf^Z~+ar;?pMBPhO5l}HVn&=ned^4>LyWMs;aUyT!?AzzEG z2+W5s0jp?FO(ba*e?WV!B#3A8CAxUuR0@xJpnHou-z1*vHC}&A*uMf)y=*p}+m=TL z13FNv*^^Yzt0W^<233vo;Gxu{%EmSQI7MUjOux%>JYqFZJMCr@2r&N+)Q@1q{GpVqdqGqPUu3=aGPy<2vu)S^s9bYk#O zgd(*$8P45714!IJ5wk~m3xBr78=MpV5sY+Gke!qQ>#pAB)rK8s>;#svxun+vl41LVw_T+A$^y$HHUL`|fghp`e5=J>C58 zB0`l4Tz}+WtpbrjHS%0?G8q?7#Fd6U_+x1?9($ogGXktxIi?ivsa;?X>8*iv{;J@9 zs0A!{*F#XR6fSd;g^@^Es?<82L8m1c>bHe>=5GXVvJ(2;bXX@_CE$e%khzj);r5;< zI6|}$WQt&kW;KlN=h$as*WksWfA}(r%Z_f==I3_BvfZmQz;wz2G~4!@sW>>qWJ?`l zPiTtK#$Y4*>gGZG_tT!v3u^$=+|SIXIUZ;}e<>b(z;y~bBx%O?Ldf!vB9&&pSc479 z#OPQKca{t%4bBtkLFoa;A?Xsx6}$(FpnSHDo6`t5-e59v{;*kk47tmlg;W2|ChI27 zGIhwAMx%#Uur~Jhpm9?MuD#6*8}R) z)6jru;Epw)VZz#4R`|9gX)&2Zjw?NZ`%^xldk!Ib2V|h}?<5?wa3yD6YV&_b8B=Q+ z8@%Qf&#_~s6T{D(Tb1KTTyJ{{iE4tRiOc2wsP(2>0&DP}!$j!bD@a!ACXyAeDp5Ww zkg5Cr0VgI0GWY#5(dnT!iWc17UiUEM zy%>XA@?WG*Y<%SSd72Zf9PoHB)CweiH_V<8AwGqq}ehrr~3En=4xvT8RssKLBN$|vKH(%D3%L$a6 z;m&2t>tVx@wOpp`1>+l*!5(|?2Kof=vTBapUdi?b6Jx6eHWzc)qx&?dYwI?CALkzm z#tn4r(=&7)^1z!{-mv|)6na|!FwW-|;1|~fJS&!iOJ0t%rRPi_-)avvTcC<_L7Ao` z}q2_C!E9cYi#)S-zBN{v>PPu=>~Y}uoCtUYLR}`VqQ+~0Bij+ z3!S+0dZB|ot^1II1}b5oR(1_e%%4PdSY_h#vkGJf=Q7$Vs19*ueGuxVPP+xA*yKs8 zL9k{T?vd=k&+iyA9I8R*`Na_VIv=>&c8V33egw;$%fNo}bO_1WK;#Fq@an7cr1J#J z-#(|CIrMWJn!gHwi+2m!pDu!crP5Mo&WKRV=S@!@Be-$F~6GfnHn-p=F%jE#x$wAYHBe29LgPCFP3Qzog zvpW8hn4H9VjLjW^2UY>h?@d1t_p1^0)h{8j^e80N0ebKoQQl-1BO~lik~44PMDw>O zzdr;zmm1MgiAQLmoCP^o`B>8Q4?kYIhV6F?p!#wU{92L8J~@32TiX<9#xWVXqVFB3 zCwzt90}OgdUjW5*a!4I#gX7s~99>0zs|>%A12c0R}a9mE!OPjX{WfpwgCUD`gcYvAP?{TZ9#uc zA?D`rMq23l&7@gY21JM7z{iUh@o{}Bb2ri)pD7-JEz9KTyD4vAqJA2DR!fAdV-jT8 zo?-R~>5-V-OJQ#3A?D-KGPu&2#IzNE#P)Y{ur*JQSX>`rN8>NTXsr!?=r^Rjk4Dk| z?IYCqpa~P12<+dso-X9RTZ7foY>aRjZ_=DThVkG-{AM4B4Qgj!4+|2Rmjn2=LWan{ z(4-ajOK_El1E@ai1X%Ku89T+fGd%=pqPHD6P@~LLy#EjH$hVquHG8;PKY+LO^O*1P ze8zoMHM1#e4^{|j!bYiJct2i%MW<%r(CR2`H*3ed*SB%TXeBJsN?@g1%}D!9U2@M> z&{Vtq5?-#aXQw>Ajz;HHVY+`X9p^>D6%-)b<_6-V)iStkP@2aT=!uEiS@8Fb!?itW znC4|eUf;h6;jQMt_zW?HhEeE!c>yHYox<lB z`jc(4k^I#A{?y2BIhiSD#K=S`P@}UG$U&}aoRvS1_Rc9}>J-xHRquUpw!xmJefom2 z3s_jc>m~bA$%qJP*sce#6pmjxp>Mj)nvIxb9Ujwe8wP#BUU{ zLc=wjv(|zXH9K)`=!vi!@39s>t+4YQ=dozhA%zJO=svr{pugrL-fOX@Z!JS;d!{n| zWRXY~Y-pwjYy!c!!VZK}3<&o}K(`|W0m)>%v-dJN@#+onSntH&Z*0KIEx*O=${xb# zQFqAp3?bWYuc0?cCGDQ;jVs1;q5h~e9Gsy--QTPy4Cmmz#LY&fnu6I#CvBRdl#1t? z!^!8DQ^=~h6g?faz%|2!q%Cj8k-dv(qU#R`yW`66FRsQapCTfC-@Tn&4KULEqpL2w*@ISSyAZ>i}Y19j%QnFa_V59Ec;+Xn9G|(~ie>G`uOr>wUt58|E78kx(r%ST8G7DVHNU?+}b?5vN>+hd| zmH;90<$?T) z`_=*VzLfxnI* zdMOH$N<`^^@pa~T!xdgk#4Ubrlmg?l+!1~W3c{HqW9XsWYbqlwO;+C?!f(7~xWDTH zB*;inIk!Um!+XxSuh>d51$gx4QywIB>_$-OW0F@*XJsn*5O`>6WyuUHI#6stKA+Se z2im(p;rux6W1^XLC2<(a{WiW>IRmXNkd-5sacR&_=$u;5KF+CxfN$)1fDKGikC<=GXnLLDA>0xL(I1X5?8pOk0`^;d_PAD>D_hU*_RAy}3lh zT9SUUtpw*K(ln~z8k~)*;uU%akfJjzk=s(e4n7(zMGhzmH~D-zrbt;B46VG^C^5Hopa3$ltst! z>`G<2Zp?tjnq0$>s_*Q^U0!rlwj5siTmp5+g>*~Q0B*36gv!af#NmrLoT4$9bnGUs z@E%8Fxve;z>-ros{9&3R&)ts>r?JOlTUbMtR>&CM1dCs%(9dThVc(rl=wEygw8RH_ zz6#Tc*Ro=Czv4{KX5M3?KYYf@B|#)EVJCUdJBqU!KH%O-pSk?@Y&f3h0yWClnA=Nb zU~u#n&N;o4ynUs|%b6fbUvPVWiRvB1ckm3p;9T<4*KUE1eGRBQvLC7wYB6ZxByNvo zO9$Jl*^$F%aWsD?G!|0WlyZo5OBN#6l2vgjn+S)GK4i~aGDj`P4EQbD!8E;FpZFg1&En5foP)|sl1t?Elrv9%0;NQslMejYb}U5rOwp8z}= z418Y$_DjDNIb~`?#-b*}=K>A(j7A1TeGGzm-6`PIu!P!wN@o5ZnMiJ)83V@mA4*Os z2W$5`>^-HG%*8o7vGR&BJ<@xcL{9F4qe(ejzCRMaelBM2{vO3P%{;#LU4KlQS%-Iy zTQO^H)q?{VW1Qb|u;q5?k;{Te@1PVrJ6Q?NNeeQ50A{Bnt?sbfRv5oK_wz4sG%SYvyfB$)+iAg2;|iKFMTNd;mL@-*c~Y2v31aAf%-ai> zS&f}Kq~o|MEy5zWukjvJP7X5fW^f!N$tcJZU|?!pG`1B#07VZ&4AhRq6sb$-$GHXc zGn`54+dp{l>uAM*@nhbGE1zNY=?NH@u8#xnL-{2hGszn1cf4ieT#w1Fz|_WAmc~yv zqX*|nlcUAlBMJAy$$ba$&fkapIW6azkv-2*mYajmc<>p!l8o38Ninh=pF^$jENs}Y ziqRalVEs477ASDM(4EGo z;cC$oDt?Cn$*vrBWN$eWG*c40=5ssRWm9m+?sGgl3lF$4w+9~;q~P>1Q8qr?g|3^s z2p6A-;PRo3@Go-?{iD$hdj*ByM$mqCWxX6-xTqWUT%EvN=Vn8NvWrM5q~Z=Xip17Y z_TCy_SpLNTqBh(F_lJhOrMY!j?z@0Q?*GNURo?~o@^+!o`3GqB-Vj$U`hX9Q9KxLc zX3`q8qI0)QA&wlEZ2NyL@MfJpd%`9ZZk(^R`t|5UWS7^+p=RH4hWSUWp;0Sf`)4*vL=;05?#ePnl?9Lq2Wh%YvdS& z%lv}3-=>0Wi6~L5s=?C-lR)#j12#8a16^h&vCJQ5eh(nKw77vC*oj=vU4iC33MP#f z3&>Sb5t3P&Kpa)mY1H5As57Yqo5fAYHOn0|dY>`JEp;Sw6v9Yum;gEW_X#u8fP;WG zEQiRyg_Jq65s1$%xG!ag<_q=`y}K^pwQ&M9(J6#^QfbtAh6#CZn?`r#J!eJF5%Plb z+~?mrPTj=1@Lk9yaIDKDj<-sKm)st)_iAt2GELrA?WOQZufAY6f4INj}@7)_02zAWxbDN26mB)3F<^hWt`2oT8YE{k6CR?ZSI_$ z1@9YPuDsO0NX{YNcqn` zc$lQh<>DgX;ZQs1tX+*?Hr4U7XdszbmBR?v8c=on3UckV5gwT?NX^;;$zHAlVi;yY ze(GLh_KO}T-)5Xcwp}*~qkcxoG zcp_K@?s$em$i2htf8Q?9uH4CJHolLRUkZnwpncH(z6}1D6_DZWQAjgw$jrrD=Cgy) z&VW;_q@xpbWlExbfg*Yxyk~OIH-=O?a{h`2OG*_igTk6YGwUnL6@R+T4aZ|9t{$0)@x{mmhdlB9P;U&!f+;w-MW2 zlJt$wM>^0ofn=4bkx0%paO6o1%#Pu~yo?9z%6KE})$M~GLST?{idkOlVfaM{Nx6wQ zPTGEj)PB&wTQB9Pl~p6%{#=1%ToYrTxfb&GA8e*;o{3TVG@nHOlp%+2B@?~yKq5GO z7OCelhA;03g8ShF>aC+svRYS@m80Jw(k%nOy#9kfS4J`m4;-YvDtYkz=pfCvT@5`K zc2L1IH;622KQ&0aB@Cw+x80gVX4Wr8-^d-`ypMp0a#QL@CsKt^ck#ayi2z1{BqMtQYrbPXnXVGX?wM;9^$ic_;pN%7EUxyb=#x(I9gU$3d;$DYzFR zM*B_8Vg8F2w%7d~Z;i4nEGY4W@k)YsRn}62Z5x?a9LF|p=SG@!qywRuI~%Hxp`d0Q zW`5a^e4Aw?%F2-@J>)t^x>rnF1fyVkTOs=?We)U=O|4w>Di39pbx2x(4T-xl3~fc> zm{d#I{qIds=u!pu-sm7dQuYc@g}b#7MDBKRlZM8^#|C(mVG%7_F)2k#1TD zvmDG>H}M!!&L3lS4kt6pSM|_%aULjcItcSW$U}wISN1iJ!I@u2*tC;w#H2)r9ua1U z=dHUq-*-Qx=RGoZt&zaZmn&i8rx&19HXT1b(&Q;^o(>=MAM42DcHSv$YEqN?5tx0-2zNT)gR%E_adFOdtbdoo zUVbr`ygGgzOrEc$!;&-Uz?u+Te`*6<@t8nLGX&_<#b=lY+^(%tQVkp%r_#83Q5w@1 zNNt8W*RS7tP`)NePsU7ORJNBu-GoxydF2ky+G7AVD>TVZng;S02GON58<&YsM75F# z967k0^xf!Zt**=@Z;pjCtNcoMyMMigJU9t|yRXrg3m8`FPyw^KIu4z6GjY~9A?>YS z@x(ns%g(Gu?OkW^)-`#uZk{Rm<5R@{aoCR*7JuSx`QXOpaXsI?lAqc1-V*+R_y}sP z_9SOy*P(OKXU^p{o0b@?APJryIv*#}1m09e%e5R+%^Shle+B)1x{aBC zq#MK5^j7%kuZ835b=bo^Yhr)oAam+z4lMc@0+ZLp;Na^ErY_BiAaUmeXl%@2Pb{{A zk-t5lZ{H4edw+vR-(`^TT7-kl0DFJ@I{x~z9lBO&Pul4f|DAnXs*=;=JvrJcS{hOfdlD^}qAPE*u= zI)De({)e%3N1>%V7muH-W+xpRhwo{VVfh0wW^Mi&*nV{ekvjT@ZFb=PXD)mQsm}q- ztE`FS3wv@a=P&ah^bUJE{Xh6U9>EO87Q@SFcJy9I0q|`^VA7HGjNR$)ShM~OSbjW$ z9(`u$(RP!Sxww*s79^1t)AKN|dLM|K$>T|6>}TyvP4LXV-?*i4oL%v39&NKZ!CxBM z%H(F;fp6T*pl*&6`zgeZ1Y2L=_gPs(qeMNkG z;&_p=uEZob5}G^4Q2R+e=qHXc8-@wv+nxz?_?jqqY!B)6eG5YJ-EcRx4#q-qFkwm+ zK31GgUR%qN{Wc9yx;}yIZI1=Tfvd1RT9*!p-o)1QQE&?1L(NO1nIj3WnHW-p$~G^d z^>032g>8_wp6jRB9fE}|Twi_8Q)VH@yxqEL7f&{+9(HlhI_Ie`Kf)#tv!u;KQ5_V@bD#MkZ(Ds>&eM_1D!I7o|1ev+bvx46BV z<5kwLNrn#T_@Hz2R}i1&&vqWyLwT-Kq*-B3jY9UL#q~!T_%eH$4kx`**GZL$wT?D)149_N%~*=~JlnU1Pp}1e4&LkPP8FjtG9wo^8pwY zX@|ukKfufHF%DQJVXfjv`0)p@G|Unbro`f~#x%D2xEUs-??jW|ls&QQF>Y6g;<69< z+&Q_CIV;u$>m;YrJudoWm4GF?Nbe%kx!Vt7yYtzxkBVfYun4W)&GA3yYcd~?>+>I_ zgz_`LR$u}bU=+WnWoD(Y)dU-A3w+ai6iuDk>f#O29^dMOh3Bn!!kWDLm-!?mAH;Mm<< z_~w3<9ld5U5R%N2+*EczOY{?6y{G2fIEY; z$gdqoFpujrYn%#VIs>J+*CIl$3(147UJrYz+5}a;KOs#^qG|pbKDp?g$i^jphE0`U z$kEW*^une(G}ktwBZWpJaqS_hllzEGsPQ3Zn*PGt@C^{(r%$@ibMs@{ugs4(Ty2LZ z$nQ8KN)E+pQt;>4xpq^??CvFaD52BTYli|YIj+i3!7Ws>Q-Ka|RUmY?8IGSgPrHNH z&;v^&A!S`W$=t?yNlf}_^+-P)9uKEsJH*(kq5q$kF zWa!D;_Vk~t2KhiD*k*$~XuAIp)cukmMM#j`dF@2azzq){9>u8lS4sA(V(7V^16yxS zqf&pSk?7QVX6!mc)0Wi2i1=xGKYtogzwC{EB%9vM3ZmzoQ&3Ymi}=6)LJ!LSVE13_ zfZ6Jm{D1iz=QyVZ!i9vPxwC*+J*gpA-2}ngvK)?joaagJ<32BcIo9+t7jkcM1n>6z zvvhB(7KZNEDWAIW9u!QdrAd#%$+fg#YWzij9`Y)LuCZrwthFlbNmcBxV0wi!fD-;|h5NT;{9zU8uR zo5=A=)$B1E28V_n$i~(iaNqwdQ~F;S#`ecxe`5rB?rsRK^LSMBO%w#K`j0$KXord` z>I~UrO6KY3fXZ%N&LbU+W&_gTcFLH{er(5-o*zV0VPRUiD3sQjM-ZJpdwx?n*Tp`i zNXEEa{?2|Dob|0+DUF z0uDO6DX;Put%$ybnp%%cOV$VTyae0npC)nY{F+A=d1e#YQ4d&Xv4}iuvB9(d6iD65 z-;DhDCEB+42#Jt6O9I}QlKY&`C9ORbg{qC%qx2=E)oVzzN;&;FMi`sxdbDcqA|^ft z;NsA9qIWZi4g{Sd<8Sy_Ena!IA8YEU?k~xps4WyRf;UYMJMcG z`qElxp6msqJM4&b(^_i%l40I;ZUtvU4e}&&0iA8j`E=|GS?@F+8IkINUHd1|Uz<6X zqgVmi8Qq8NUK8o|lR>E8H<@nU>WMjR>&Q7(9+mx7&N}HVT7j2tLNz<-q}CPhQ0Z3zAkjh3fV8!S21kcvlWb^P-0Y$$0cc ztb8s8sykI6zD$bvKD>Yx`7`OcIfba9DMn=T3(?dg94CC-2M=RK z36TiEviTiskft9SE_Di~=v-vqTsQ%_M$;;Pr7fT@loW}*aWAAuXp-vGlh_jag3X>d zk^h=GWF|@w#rudEVSZLm?_l9Osy9n4y9+{QGGWCulT@rDu%+PWwSA!)glG6vY6?Y z4RCKpI+=f7oK$4&$Kir>%nJ@<^=2DF&V)AnmaKjB_91(E)F@A#P? zr_=7}HduGZ9oW)R*ccZ~j?FyU_DC(?f#s%UAUj=` zq^gf%@$nSYKbmCn#$qxI35Suo^)qRkc?ek7D$-+DG?AYXi$8Q4@f+h!RouCLeq9?= zr8I>aA9xLqC(OcwN7OmboeaIJE(QUoOh`?!FFfc8zzNf8IQB<0S_GA1Y2+qy!2K0i z2K)p=uV}`lX^;{8I*Dvu9R}i)I%&?|LbzdihBe%FfNi#(&j^m%LX~O{mv@V#iF@_Y zEMym^zI5Su2F|3KXMo-VBAh?e3W6;*u_~SqSowxtX6%F@o>V?fZQCZ2tgqfEl;KQ+ zmKf4!_L9U(I~jBACgIwIGu(5M;`*rH*=mbs_O^2;v)4z2YkQ_b|KSIC`u%M-&5yHm z$;|^DDM3PQcfxYn*{o}q2>R@~&i9M+;@#cPG2w?fUQ6U7#z-*@*4(}iaVv{i_YIp# z`&I?0DVD(A6&5HV{8K)rE};Dxppii*(jk9#R02Cc+Y0W;gg<5eDO>SzAXHT+vnGzdRrAV zN6*2dl|#(2^35>S#~!XZ*zkVVwZIC^U}7gNh$6X3{DG3&%$NQLY=7l;^1)7q>?mJ= z_f?lMj|;>}V8CVgL2mUl&%uV&6?EunGia*1RQxqLiWk;;V)y&Y z=)h)??$?Xqm$#-Ff50@TT~))j-#Wk?PBuWl z-e`Q^EC{Kd#x$(su{3-81hc+s{e1y|09>R_f4tQ*19-a(bhbTLNS=oMwo_LnTn^FFTU%2!YXgUnz zuB;3ExNvp2tCoVhXZ*ytVm*%G;s_15fm|{xhValU*f_R?q!py{w$BoTqd6h)+b)+8 zG8@G?+a9CI3_W5jF%4T7W6-XChE*?~<2HM1dg$L2dUDN7MxdTYx2Jf~)czSn_}VJC zGH;xn*W_6-;UCj;|ho)17G$uaOT$il0$s zT#;O^iANdt)sR;)oy{%Mxn>}+Z~9_h4%)Ijh3_U)>z|1AgQfFKC*3eA4bl@04^=>vWIGf~p)n2{72>Z+1SDtPZnRgxeX`a2n~##Y0nN8(g7Cl+qA)?|@)8LW#%ns1Z~+4ZO3 z?!_1|tuUk}AB{*$sSLgH`44jU6b5lOz59dn^4*Un^oJ#}Oi`yvQCHYzy;vf_xi)m} zW#J#O?-22}jd$Q4!+rjX$k@9q3@<8S&rF;^rUon`&y}V!iVHGvM(kX&)kmMsv{}ua zVQ-P8*T;Zo!Oi&(#IPMxHh-$Hic>l_^D^TQ?2{m9^4T}ldekp-@&K>trP^_#-^#^P&1K|C9qHi#0B z^HFf^+dfh_@SUkN4Wnb%>v8{=V3OEf1R~C*I48*wie7U$BZ+kQRb9c9k8OkvZ%?zS z50;V8h)6oC`7zFKJ9*g&G+U>dcy+BqrMN3}iMA!l5eOoFU*tev zRhT4b36aT9Ua-xnnP}%ON2WCu!{FC_WRb8x*3j=z+tV7& z407+qI(n&e8~msWC0E=YvGdP#lMsmv(xH~mi*jmZQ)*^cHih?byV4RcEDeH*GiH-b zTZD*n%L=^uwjXrZSEwp6k$h>NMLq1hAo{<#?7`7wlH=)5sz%(f`FlC$52cgG0f(uM zfHu9RnTc2CsZcAqLtwdNCebdeL3LMSGM->a_-6}Y=k3GzZ1!5nbnbxj6?>VJ+m$dP zs(>ePF@Q>K{milaOPPGxC{U9-M53qEU|PWl+!QW{OC3Deq5cNGmzDF?uH0ir$qA_U zpGp3@OvZt@_ZVPlM87`%g0pTu!J|&qpzbl5_%AGhh`^2X_THQBG9I(vF|FQY#fzFN)!q zNe?^3&C%i-LqU>bCA$Q_g>sG?rEOx3uge6O<9mT#-gXx*xC>(VdCm_gp@nV@t!$a| zY4*B|63I|6khuM)jEhdFGKW@BQRoopre9}v`yL=ahuhHeK>|*@oj?{&h-8}2 z{W1;WSep`V57F3qA$<8KK|M32nM~;-MoFR?wXSvWVz$^5!QL{?Eh~!U?+QU8iVu|Q zDE)DBBYC3{oSShJwW8C}O}&p@VD|$C4&}4gwKb@>s+W}cA9C?@4YxjVhP!) z=0}Dzg&7Z7DSGEX1Al?oS@vyq9W(dOBDV3(Ad^!oKwCQYkS8xcu?EYe=~VBjG)sFm zshBjAHA>HBoZdS#L&KtU!pd=GtNwR(ibn){u*rp1W@N*jJ+Cm6s$#LnM|e5l!at z>@IunMHM83QMi_Kk8RDr2K8}PWX7kxn38@N;^jYq(6nB*;j9E1F(>4b(jwp=zl`GJ zUqFRK;FNRkI2X<$dhJI${CzJ6Vs`By6B>$JiynZnryClFR4^O&JK~_u0&3F{L0(mV z0LKF}KzP9d^60)9BVm36g>5h6B9Z0bvA2ZHahwBmU^?e~)nh8BzhV{Ie&L}tfkful zW2Ph~4iaWggF;n~u{J#gh80ubncHf{t!q24wC@Wj1t?PONt(nN`oU+e3LblU3Xc8| z!oiPzU>L%&-sa53sk)QN_XZYLG@1ar_%E;-n{ij$6l%Iyk=*b#B!9}TL*k8NME=G+ z@;$PXS9#x-o+_MzI>H6uxNRq_asaB8*m7t<307;z0%qR5eBbatvgdW@y0m{8<>@W8Ls6Uv7 zDgnjVoD|7cEwUi;9pBm7FSk+lOEKRmozM=h|IF@D2G97%>?<8)qIxB1L}>@;I!l3D zNId>}3>c@bMjMCEW5qxuyiuJ*mdsp@_FCPHx^OU*aaoM`EsOC&{%uzFs1t-NY{09d zr}3rJRqlPVr{2N~kgp!jXa#rj()0BB0*giX0W~`4A$J4l>~p9tvWPw5osIUwp|~^G z70p~SIWFT{M(g`!+~tyw(YeBS<-l)TtvJljEd0vzGOPe5X9zFo+-CGv8pDz|m%zPA zk5cZn1dIE^o!_rGrmPNmcZo&M-A=@>+Xe!v(&4ww66km81hMW0cIodHWOw_JtkeRQ zYP5mJVnprY*Ldel8767VQ=_>_cwp5X><>+*o@Ejcv&{y!ic67GcYono@iTBdI2aho zdRFdl3sh~)!JC>sWXFpc)OE!Q_E`8cX8I)-ws(lbTkY@ISH#WRl@Ab4<5l$P#m`u{ zE{4^Z(gN2P^QO@I|eYKnYJ`U?+CLg z{h?`~??RF@$$_{$%OaBx@5kDfhs^$&;cT$)UikZhRtThSps)SUg0V9X6eV@>n9n*a z&s&4rH#b7&yA~*YVouWs)!6uprew2*Jo#?y1lxsAJZa(r7t6UlwrK&p+M-R; z|EK6Y{IPt$I4&c5XGcYnnTqh-=cp*jDx*nDX=zC+rBHTOAt99&MFSO{`&?Q|TI5@z zw2OAMcfb4h2YB&%J&*gou5&)0_gi;6S8WywkJFCRpLaQ+U^AD!F+YeC#tKRGOINu~ zO4%rPt%r^8aAyrW3fcC`k?0c{MwK?F=-fdI(U+Rhc;3$k-JBSNItQVLtT103Y|Bhv zhvMBX2@q+{WdF)i!7A_+&5Hs*=@YRPQ|5B_?dDR8Z3=gdsMM5bOo!@^#mzbt45LiGjLg^#7>xn z(}$W)_WFu0rjJmgFgSv#6(OjR%dz(H%IxU-9Jbsk0$)GXVB56zVtlg^KHXA4C#+w? z0-pGq#UlK@@(}MC8ZDmXzKXeCyT=`8Drg#ci0ZES@jLx4fXWr&teacP_6bfChfPaK zvT+D_O!_B?b6>!Rc{UVSwG;J|Rh;k5WW2rLgGp^w!-{N0<{LIrIP2GA#peUy8}N~} zXU)PF?Y*=|c?il(m1fmPvgkjp-=us+$QLSGQ`_6KaB^I7~au4xpXYDwxcj2fbsH!SJRCzusO2@lDq_8Iwfed9oQgm#WjPrh%~Ng*8qx z?}YkcE=;9qDGi!385SLgfN{>c!b~|4$DUCXdh+q~JNpBin?D=2j2Xptju-G5*Bo(Q zTNiy2c7fG1&r<2?4Y**+W6o6KHNS3*7QWS8ip?EAx&7fz6xp%_EjyF>QCDMVTGxIY z_f%Ot{D?gF?fxN@%echy{7YC#oGY9Wc61LGC$S|xB~&-8kV$_I!Ep!d=XfKJL`Ag*MSpA(cFx!O$q=%`!~GLSVz=aJg_n7l?-=%aypZnB}1wMVkJbP_0iUoZhhe3B=@j?t2FFhAyoVhxT?A8Zc#cDQAltU(^ zQ=DF(V#wY!z^hedSnrWfA5yh(d3Z1XW6eQ)y{U(IfeAV(-j(*9zsYY@LoA6m2mATH z7;k2WXLhWh!3D~!s>%i*3Nwzb&+8j@3`m1H0}nA3$4G3B93}YYCZe6T6w}@i3wzqP z!rp!3SW0~`)dy_n)-RByZUr4yR?T3a)rPR`$aqDAMz`gajYYz2R1*ihi8{! z(aq}tKY=^N<&93@8>L;yB7ynFgb#zgx}?3nisNCwNh3SQ$@?F2D8#l^Kk1ZCA=AW ziiOG-^FNB`PlbI3J6xqc)y*&=ri+QfKzm_BA6V!Fh3;rne!#uTl z%yN7so4wMG<_EnM&hJVvK;^Nxee4_X7JLrD*CM&hJGK0ScY!cHrBj$e$D?1yOMb7L z9>q@s9P@S=Kk?*EdhvTMrI$=&#tMVjB^Ch%KHAjHM#Ir5wW3wApCMXF*l*TL;kemI z*B>5&9p1ZXVsVksCC!3*$2xMAvSpW?)9Cbsxm14T3uLzmI|Rt0y-&UP=IJ7^xljj` zt;AAwZCUhvOW3L#!t2i9;NqJk8k6>ut8`kzR#i^tw$%yyIy)CO|ITL`AM=V|zSI%# zPwl7hwuvx*n=m`}5DWNuHBQ290Q0&t6xFVOpuE~~Vn@1bqZ5;=EAk0EHk9K7VsoikG zu#I!iTZ3v3>cDe?H4WrPG22=-SRgNt5pTjl6fusE`&7WmRb8N_J-hHtSUlaAmSB@N z=TO7b64>US2v#o2z-Oz2{f{F0cDk6>cv;c(?60&{$%?fn#naqMp8MF_3GMk|^y8^H zsZ{4<@l|R1a@-c8{C|t@4ZaCyce_(S?RNfy)qC!CEAY=05sQ2RXkBK5sI@5vPxZ^; z4=D}YRqIZ)yqbIZ(4HyuNwSBXe`&Ci;1E6_iOZLjga62Q_|;+sWyQr5 zc|uHbHRE8j-v~BXeG#c2HDe0G9ng4L0_~GF7nM%VZ#W38RQ8@|zHd7{(W!xzJHK(c zX_?TkqlIfOuHih3cZ+N5wQ=2vIxy_+ptia`Q22ftZddJrIOWxNKwJU4Y8Qcou?P3= ze7Sg6Bf=k=4Uj70%{-q2S$bf_Shoi6hIeFABF8D{yAU_MfcEHy^6_y7Z2gKAxV51a zd`hN4)`&5=3^JC+T#G zKC%_utJ5#J+4eT<_clHL+ByYDvy}jo|DH7*O>^Kh+;Yh3`#79_IvD1!+{NNP2Ef{n zheg?AG#T43bdm4~Z*+blYR2?%(brxHe)t)$%_$s8;qSZl*_*bq07U9+4G5|hg~4XL4&lB*;>_FV8?NKZtSyIG|1N)`>y zOl31tX%1fl zZ_&fqTf{QwUx=n{O~A&2NSgRKiBx91hL&k2tTsfRaXZv8_U|D4vRDzP+G^AG!N;gc zHyvum#Y3Oh1gfx!V(R-Y@Pqzl@zag>!KB@m?0&*(^5{(yKZ*;WS8rUzJKc5gNyR;0 zZQL}jrYe&T`dPsd&%dT@K!ZP?On}wL}5-c#HqD9RMhH<8MGvV2e4gAdjfn2j_EU?ug zG)w;=?oe}Kp>bh~r>(Z4@3Aoa6nmg`n^)3i5KZ8m>FOgiEc3qHyU&G;p32T;)`O zg!}Q8=^N>kwmO}OILP%HZG|Zt9N??RT&6E6iQYdn@w3ziQa(H!HbltNxi&NWHaH#L z2y?2r%`ae0xDr15V~3p+i(yl=w1=N5R(zxvb)^zzSU*!Nxl*MU%s(_^Q|#w4S{p^@IYNv0Ugj^b0$?ZBxLPBbjv@c@JeBNuO}q!_~|_Mx7O|@?<-PHRJERFh1QeAL}E`an!DFB>!_hb{)?KnQlM)yfYDu zA}r}}_b^s{;5z+r2qcr4%52SO1$y9H$SF@L#FBzdOr7L#i%~yi1rBASa|Ab+{bUHs z=z;0(0r;zf;TfUxIx5luRu`M1*}xo{5D-jiePgiu)d}uib1NI2cagv2{+dQ755o4| zM5dpR!hI~C$L8tSa32;9CHJ@<4#w_td^_<8y7(GmL)}>BJEao}L?=bj&qtDukaanK z))zZ2l)ypN0vKp)i}7715EZV4`_C8SCLGGh-U7mjXR}}I)GWV z$!J~Si<7QolS#lH5I|zw&{O}B{NN?bYxY}F*cn$EykCjzt_j^)OMmRPKhJ_Kn?;Ta zX^`nT23@{Ya^+*BVcpctVE;A+X6wI&CB^Ho^zAc&hkcaFWOl)^Jzi|-1!T#-JoiNC zNYptA_u$(v_+z{hW@I*k{D~ECR$!{h&l-R=*|+KG$>&^)b`?11mxJH)KB4R5gvW0s zvaeoy*dBl4M%2W>wLK?U%N#it9(kS(v3LiwZrf06aS&T&bP$(#>7&Ws0RHoDcXsgO zMov^<&l&dHgQcRtc#e(d@|S*rNp-&{Xt}^8`sO2=>llMqM|z`dU^R1IV${fPwZO8j zbc#Da2qiCEVO#o2d8;we;4(fF($zQOc&`g!K5Gd3bK)S(Z}+9h?|Yd=sV;U(2rn?X zei(Ub8eWec&lbAefzq+*u<%A4rf5nue%f)0x6}7#O;sHJ+%1XWH+`YEP?g!Gyuej^ z6IrP+7k;q!8ZNStVcc$p@6R2?0YBEmNsR(NTSC1tQLGD_QdID3b`ki7CE((&)fl9t zM6Kl)z&g{LFF2Ej{ewc-!fG+t)a1a@?Z^0}%ad`Jz-Mv|nu0TLDB_Xsos^~dIyL(>o z5odzPXviH{`1~T@8Zm*alJ4?5gngKO$PBpU@s@52+??f*4wtvt!Ushcns(_a4N9vN zRo-#p^CRv-WZzVJxikk%7V1%*!F13|_QOGu22A>I87RA^fy~4u+%oMJ@vZ50IJ<2# zDQqj|BmZeKo%`dc?WY%5e;L3uXSuTNU)E4}`7Sm@1h~_98NXB8k(Hrn7JuTL#Oc8C2*}?z2E-=TvlErIPW3d0S5x2fHlzZJc7fqYb@$VjC789tLS%B~3NUFY@#6K4twhy=ah|K1$ zdV zn@LBL%J_#ho=~*0m5L)`8>lgrecLotER*O!FE-dSgHjv%Fz*O_pQVRupAX||N+h8` z*BwVpc|*CGv$(n|t-NMX1K3trvRQ80bjMbQ3_sP9$(5^gc=ra3k~t>!z1|7gP(}wF zPr?h&8JLZl5O!fRvzU32do(2nv`U;s{wt4zg*X|9DGXz^xyj6bV+Q0Uiplhj37Waz zf*z?Vsywuc?QnYt>&Ir&=h-e|4V5y!G+;M>Hm#d_43^{Et+)Ani8;(f?I*v-)mWGz zoCew4F3>7YgsLVFW?_&)4IkuK_t}A>yaX{_o-~woYXSY6R|;DU)xg;D2Zc1};q|ID zAYaP$EgHo%Flz%m^qN~X$M?B-A7|Wsz7D3Fz>%J6>g9CBJg8|;)|(r+*O~m z^hd&qF7wy8c@x9v>j!1_``SNRu*ZRJbv%OKAC<7k!34+MXoo;Y6Vkg9OD`9DFzdkM z@WEf58EvxT?aJKPH0xj*eIb_ydmwEwJwOg)%P52`qsvvbJUA!8pPF~HKKeGOY}*ax z$sS-*AI3Wu%HjB+#rU}+&dGD|30Q73UEuva5RV*Tfls&RL+Rs%aM*GxKG;xBk7kdj zcN;oj|6o~W6l;vjc_$Pt4hGRlH+o^~iER!0Np8Yh@;em5$-l0n6+g}K+~+UcnRf>v zsy_u>3?4$dz?O8C9m=d059Qh_4pQe<1;mLp{LitGkS;$O#*R{Fu`O1@4D&Qszvni$ zCd``K)-ABDE*u9Rjd=d&6AKcZm!*k&vmmV7ku6UO!1AX9F!Qeua}~Hjvn=by5*lu- zY<)1)Z2V3ejF;f>6N(t6v=4SaQNks`#js-9E1DN)ibwBm#ITR)l(x7@q?bMeWM37+ zdzQosOYPa3eP6)cVhe5gwG)cR2tRu(o94S$iR|v1(`jP~ky4*L`x0u6+cdIRr`~Jc zDr-7yNGamxz0rcH3W=Pz2+^A0qF9&sm3Zc%wrAh-2p1|((d zf$tMW(-jjPHm0mV{7Wx|_N)zE#v6z7d=j2Vw`xm-aE*8R14NzCFxJz zLi495QPS~7+U@+7H2clK;&U}jkKF_Ib9%YDuR63T(?ldKH;TqSP@={)&Z3iI33l>I zDHW6~g%v+D;a$82J8YuIc2BLMqsP9`N&61kI_v;_7#4#E9=xVs1BBnVNQ0H6m(Z-A zoWRns#n`Fg+}od7bbD?J9GiQJez^9C3@x zHRCltDbOeJYbZUS%pE-&fMw;DY~hm%kUb^lR)=W7ox(D1;I*^d1EXrPRZho1SK@sf zHCT(<9?BB-h?{$pC~oyIwr!XN>Nrc%c=-cxti2MvmhFSSe~d2N7y2#9isC4Njp)|1 zf_8_lhRAO_xMP3PV0-m7NPgJJub#hx^RnMfQrdCA4eS&z7y8KwR`??s%9ggPx*;x;g%`rQhAi?v~t1h z`~x5%sY25h%|VgbFRoqI2I~%0GI!Gy6rQd)Qf?5Gv}NK1hdS2q_!s#oE@jJGR)deR zA$wmbo=$(;S7r@MFUy zIuboo=!;EaV@}_N7oFYmLa&N0AdO%!;Ov(P>C zFqVI2WKWW$c{YWadn#eJNqq%v#a4qq-oqW1JhTxQcuE2=!F{^U-%|rpZnFY9Lo}U<{{m|OY9vYoCBAGI53pD{%yf? z>jbaW+(XRQcoRgm|DiJ5JT_g)2XCHRPs4A@Q_Y=Xko|s>d!96n{azs4?b4*txGx8C zHqXG(M~;Ka$0#QAG>APb8HC+=1Nl0y6%EEkZY-fFlWJc$!r0jk0>3aHdvB)08VxT@ z-DwTYLf*&Iq^;g$%WlxWHjVjB^ulPhSPIDwAd7(65Zy8sKg~SJPQH+5vTQG8yzPL2 z%UXr(?`Dc4YxMb%NUJS=z?R@FPI6N{i|`9%rgdXO^CSbl~2@5exduE409 zwT(TPVS`ai3$d&p=z!TEN7 za8hPv;?vK6vZIcgDBywUVcG7mDFYd6(-|wQ`>=)3!bEU8!?B+6SOqto0i##8B z15W2Q3fb2s=%MWd(z{1d=|?r}XR_SD+yqdM_duOj$;?9H2-A0$Ky&jW6fpfiQrV;4 zIQ&>D_w02DhQGfL%;XBzWc-1|wFY!p$k>WTm2l5LA7xEj!}0d@gDBatm&`Vdz%S~{ z*qONNF#3iTIk%6+ZFGeVs4xKU$(n4)(;Rptoy>2X5sR<3Wee`^WLzhaD`eenu?;HM z@b{1Bw8qd8TcS_k=(vmG_8+;zOyfUhWHQXbx?(8i&Hv18wy5D=bS1)%`NFep_bRkl zGmYOEIS`ufQ@bP6)RaboyAmpQHpQ{=nP z--LB{`(dW`7}lEf6%snG)0E?`m^L?np6Rzjj?7@LAufww*gi!#KWR27W(ol_rAKsV zlO6s2blNFRdIU-(xN}2iti{}c;ZDB6?gCSBFZAm_q5M|^amVjciqRc|&ObOh?UTp1 z{ar@x1v>1zq5;c{-vxOsJS^Cuf%&tKvKh{P zt}vC7A#tN!Dpy)iaXN z8O~j`-Um5X*Fp9fp$F_4!p5ZdqOPJp_(zLymd+Ak)Go=c-ai1-g?De>VS#5DE!=tV zCZ&(Drg%3M{wm&qf@A8eJfle9i7Miup}rLVr=C0;I|Wuwn-g!A0BZw1NUuVYk0j=!S>r!>@5$sU%iAzPkT0NeJne7GZ~)e_|nD|zrb9q1KN3k%IKlcE#K{Tid#K?5xv@w2@g;EQbHvUUkY_$ zd*FDQI64OE9=CI5cMtM8>30P`r0^X+Cd^a^c;l#xyST!SSLurWYq}@zz%(yRXWK7V z!he~)w5=*0hR%$l$#+EXk{3G2LVtT%!bk4eljT%2Q1Hse2_YTb@#q?82KRoOQ&_cv z*zNfc*1FsQTlRAlWZlF4JRQN`kB%p8Q#%~{PntQ`mXhx4aLSEa0=Il6@LY&HeVKd? zTvUcJo!fuNX=pEvQMy9Pj^FrCX9~E1BNuZyS8mYd`|lyYDGSU8)=>LuHCP^(4CbN1 zu*9xeV0wS%67Ma7XBG?i_BHExb-zH=wgU?2Y-u*Vs~^qCY7>Ub+#&CpI6lVv4|)BYfQL3F^VPVXEGI>a{oiI%XOt3K zy)9>3wP+6w^Iu8d@)a@L$pD-NUjs#{?X=NP;2c}!@>yecfvbZFJ6qCEpFx$GO<+`K za{|8SN7CqNUE~)j!M=x`b__P#MO{;OVukt{zJ49guf0(SE*{TBBlS+xhBd0FtZ*3y zp1UY=T#>=u3`v2*!pu6pX&p}MoQy`Z_rUL!B2?U73I`{jr}1}G(W58^Y~I#G_EiUr z-emy!+pf@|j~eh(4>`F%MZD@d1O9Q~SgICw2v)IfWZ)Fb>Gn?$Torv#_Qjg@sn4dT zc7?Q9VhsP*I0epB4yHltvq02*hs(*2V5vv%L%ZWn&Zf7Cd-%Z;xO4$E#0sYaMf|H%j@e5Qt__u3^6Nwqr8ios~eR4*9{7aT`$W`4w??rveme&qK|;aN>`}vQsXp^fzWW?o?dN zURdd&^6p1`^zsxc7ptQC5aIrR{xp|Z+blYFXtaK25Nm_z+Xd_(K^&=DM^MV`qA9=q|VezVA3^20F-dN!+pkXZt#`icSKT~?!wl=0kqKh z19iPPF4jzoXYsk;=xU|{d8hiLRINPhn>d+I`2JU5HWbnSJ+%3@n%u%CQ-qzsWO{Wp z5h6cIvhz>lMbQtv2YfW9mZb?@YwGaH2a_+m_7t;*aLGT7hr2CDV{4`Qairv>V( z*s*`Ha3R(g+y*@2F303F)aIQ7*saUlCzOfrvf01`MF6IXc?)jw)AHa(r)5@N9yBkfrXp@A&mp!?|$}pC&o=X z2ZJsru+VXWC+g!3OtbRf;<-G0eK3=Wo#Ocw6PL4khZr1J{Ejx2*HTmRD0m+*5AVH> zg~PQ<*!$^|(C4q=!aF9iGe2fR+vOB=-0RPj&x!C`oGX3`nLtCvY~q&OEMmv{rE%>& zq3>HUhx;BRa8G`&V(_;cTJc zqVca=!84o*0c%PjBh1I1r1w7xJ9>fc)9Wy1kDsAexH6b;5<>DgEnXo$53O+^Fj zmg6#^|B${($bSdj#f!g;(Bte<<~e&Nypmci+F9JhWwTonnf$t zo#pG(%+V_|nA#q%V|)54p=^o3Ed9EKZY)@Z8k$`+tu_a_XK~PDyOLe%Eyoz^*_gR# z5fls<&QyduOvUIy?7hK#%2<&EQwAq+o^yV~ir8Y*Q%#`2898KGCb%s|-QfG4gs|9#?aDSO99!OK*$A$&Nnw#a|epru0N0#FEbMbsr zj}`x=u9>7dcF~nF>)7o>JK>Jn92{I1$P^BrW|)5RQj`aDeyFD{JX z2E6vgp_8;4_ZE+XVeX^3salulWt9~gt<=WRJ5koI(-vamx>_imro+Y-7^2;URN=F+K>MH$ z_GRHLRQo7_rgL0Saf%#i-4$H7`5D}|v@780;XpQmzhcYLGb9zLfpec$!*gXxy!P=u zr8-GqVg6Oh8-JPG6C6+3N!I4J3H9$SJAiDkA4squWb~0xXoSxgv8M+Qf+dkRGy!HK5 zVC_^+nIS)UL8!kLEc8I6gzoe%FvpB2I;V`ae47$aChwGEi@;hfY zlEU*W8mzGsCw!d8{65&jlo3~8^t?oHzvD{d_D$xVsLDY`N~q}X7{O`3wS_(}-AC3o z$LPNiK``igIh}ms$#&1QgPGH{@R6=DyBl_n-pC-GlE~-nzX##KGEKw=F|D~O&HH&- z;f&SlsFRorrfnCg&_xk5<$l7u>n~`{tNrZir^z6HuH*~ONnioGmK3!R$>}ckBggK zS5wplXUcf|wISk)A`Z&y1&?b=lz1nC;<6ubB>Kwrj+P?RFe4l})P|&=pQAwT|M}oC z^itmm)gC_}hg_jMJG6z`#~2Gv`8_aXz)9-5sL95f+EDs~%e=g>qYya@4)BrfBIj9A z?4_YRU2opQzxT>z5#y1bIu3v}!w*5iR2AM%INwQW>SCOt6dP@NlqzRG<Y_md<}|Zi(L^;jnu)Xx}Pc1RwQ5-MQHJ}mCWjQsO zcs@l`E#75@(4IS)U!^sJd#q9l&NCeFs@qRkG3qFNFHyuzR*&eT+7ePd(8BL8Po=VU zYbwlGNBix%IZX1zFkw$K=8du7xtidp7qypn3)(=j3hprX)e_cJ?+q;*4OzyFXyOpK6?_qXIaP71`%Aeyw~wLA#7Ss5 zA)B02c*t&a0Dh)EhRkusIqPcqDUI52UGUQ%Tp!Cz@0bmvzFWh<cj>I z%|{D!HLhlJ8^2q9CR5T$MYyDkL;uRKzio0@dt#ILiAgo}+#81j%^X?D`zw(D?g4kG zOhUZnXC>&^OYsTK%eZC3KEg@C&6itvfsYTD!?Z2MaNzHB=pJgs9*EbnuTQ1uo&FFu zplb;(6aHt{q7<_nqKT!MMKoA32J(86;E|nzzz7wb(yMal_`O=_(tZyKIfHTY6M@w+ z{x%d}j$^}9+8}A{U6}L3mVz@Tf=~EnDi;_ZDGthf_PtsGR`imb%5J-Ygz8Hw6!H`01}Ez}gKgQ*35tB349^+$ z8IW`NA>Qgy0TgvT5qj`(;M_Avbooy&N#ZW9=&^{+6D82NRRJ(b$TG$y z8RR@6hxrdrC*GrsqEI<+g9o(z;n#es|IMMNs88mxiQTUA+0_g_wH&Lf&KX%LN)@n+lx zMHU_Vf%mO;VC%B|+52CqoY8(&?Akn$*}M~cCzq$=f*d1^7;uZ&l1XX0ULQ4tWuVv zNuRF6SXB#Jl=zX$X^nz&4?a-EO$F$f6wg^k-{Pu+vuH|^3OgQ?3O_7EL_vq@MPokahIVLny^i$~5`LN)Ce$ME-9P=}BX6}bp(yhk*Eb_`V&|BZY#%a3> zULPZDe*c*sYR558hh#8ZbBOHxJWzRg3GX0oVUwPhlk_BCR0?+@9MQnRAh&%n)2Um8u3|ej zbjk&sD?DoooTkENu7K=b7SX-=8F<0(I_<6B#jzvvn3>Hy7UJv5UpLwTy(&CiYI+N; zf0D58YYH2=Ocv8taTujpOqciD;0#j>w*Bh^a@Apog~Oaj|FMVoAYG6yKL#C3;^=c; z4p%m^itGJr3ERDt8jDs;Mj6koLf1?grHw~BH5f)dhI7>#4~u25&9;~B6@Lyxsgdc$9MCd=5EQe0xu$1ONN3^VSj zpo+k-`F7?vt@EnOdW|!7PBwd#9tA*$D7>C`J}08P+4q% z6E(9TtSA*LTh7B6l_zAd_#S84wiB0#j?jUY{p9W92v@&;;k+xO*=_&f++6u-OmciA zPFQpZ%4c6-`mP5t@6BAeTBMB!=Y-%r1ARECaS6sKw!;L$Q=C2LEFHC1W;y=By#Hih zcq(va@4I;7D_afhHNM6C*k`8lT^FAj{;02cGf&u2?qSig6WG9#bl4|3933_uK<-d4 zyz5M$C}B?R-RT2K$5*gt-AzN7h|l%FDgu|gLuXDMJznjA*c61uZLn;IuwqEoA#S?tsRe#Yt?nA3g?xa&K> z^+qP$eXW7=m5KDowSd38tOW+FxDEk|oj?NjDAm-G7F?PG#%n6*)S8X_f}z!ra;up> z%lYy5_syrxM}&UZZ%KN4tPet_lu(F}({JDQiynPS;^e;z-HUZ@Z1H;s(MmHNX!WiD zy&fIb2VY@$fQ;ZAlx3@?T!E3Fq~OcMQ20AL8*FUf@wE%y(!!}dd{nFh=iMja9>k%yXpGn3VN>pYLjG_uT{19*)T1U#lnEN(#w7r1VJU7JF_k-B@ zx?kLjqpGyxVim|_oe|UVK=-=0z=b$1xV`Wj7z;Cn z;ce&mx3QNwO+&$h@Xel*Pas8X--Cna_i(9=&2(G)E@`aqtK*%WC{Cb8%P ze<0Hzwr?nh;F#|3Rv`2sqQ=E>bncZT`)N9bye_M=P4c~>j_V;%c3?b>lk_G556y=i zmm;H;39!C*HFPUhQhH$Gdx5c`^6@kk3;CXR@?K7RUBltHN-9jAr3`&n4nS<6 z6vSKllikK-v{SEuu!fP;YN^3LT&l-PyteSiMjsT7Fqpy$TH8swpoOF}S3>2+&7xQ1 zX7WZSwXk};j4M9a{(h2!sD|qzmA&S;WaEkX?4EYETUf~8p==`J$mj?T!01A11xJeuXDFN8-$W~(*TIhMpP+J62*q_J!@n(=JRkj! z`@HBWOldnex}KfgkVqE8KXVVZ zj1hW0yJ*_>3b>f)4GYKW2|k7&)VI;P05u|N6zTCd@8##A_uVV0~{ZCfZO)C zmh)Hf#Td)0^hIYO6(~92v*sM$((n&xU%o2dXJ^1{g=}7bU9q^|xquuyec6(LLu`eU zHiTy;!uZmE~)*OW17*bMq5%tx07&SP_z83<>;II6NN;S96Q zVWg`EZU@R@Ry-2 z?)`O!3ajUnX+}0|f3CrTJfsBnwv>WZb+1Djf>x+3taCo8n>m zF(-m-)wl9vxCfx-Q%cq57X00gC#3WBFK42bNkQL`*&Z3lo+vFAX^qmQ*B8yeStA5S z9q!=cwelfMVBKbaYUWZT0#W|YJxI;!2bnf2*5$evk6kEWpDS+QfQQ1fL`h7G%C8A| z)YEKYZzoA8?q~VEGx1BeIeT==i{+~6avKIzz<^2SxORO$+z7Y@6QqjS5$#OYJVXUe zsu!Z|>=4$o{~pY9`6)`8@5mw-{)TCd$jlaeh5qO~7Ug?Kyku!2{aF76951`EZo!ZG zlrJUo{~|F@DNoqn)Uev65w!OC5#ii)ggbS3E=+#aMW>JL1ITb|oEbV1W2*1bt9(f` zSyaois(o-{=0SR}M;*--gpAXMJhu8~9PHmVmT4H4V)=GCR`PkE^RV0oSZ&8sg~Kt( z(jG#!u@yL0rHT|z$TBtUi|q2oT)siRkgP{_ft%|?^4@!roSf~^<&72FSR#vAg2y7W zB!QNFQARocb)blhb{!WS(+$sYcUzxGYR_Ss7rzZp&-@I}N7%5bf%DMV`5+$uSHcF| z_ylFkzS77AoAJ2gROX`kol^Iyu;{lt*!GlG{_qf0woyr){nxk&SB}qy#w9<-K|Lrb=fnBgHT>t@3HW~TGa5XwhBww3hcC8z;|Nt<$OxJvbVv_y z>0AHtB@WBs$gMiu|0oU4_ZDL6qE>1gX@%sHrX$(r3z%0sV?rMNTv6m03%r}OuAqw-j3a(<`;x5{Ec z^?nz;n_!NqC5Q0I+I65itAJg*kptp0!aS~a4x1j}a=w_JpNS?deFo`x^ekIy*b}yLU{>Sg%mO~qK2C^4DQn+(kELOgl zjoVv3k@L2%?1J=vRJfJsxI-V^TKbedlU~Rs3_63CRtvk%`TiJvBNILzUJY{Rs-3DI z7~mwiE9~#hnwfyo{B+3N@`8>0GlV-i zDG4U4XXB?ukHBxR0v206h3|C{xM52(C-0YlYc^e_x1qVbA+ra!>4!weZd<^8uUXLB z@suB7yAOT#&SnoH7qdA5@ffKa#SM2W=7&8JL+ECIHq74)0#%bJfBRBAlp@VKwZ1^h zPz##A{SO^qyMljP+Qt?Byp=OiutzKehubT0j3o*%+IBWkIQBE~)Kk;zxN9eVHa?Io7`e`DOL+uYNVycn)WkBYrkG zbIqi8Hj~#$o=Mz|^RV({4L4|};CG$XAR5%P1nigpp$@Ox+$v#z8TYJ%LIx$#nno@9 z9&QYZCkiRFNfJXJe5UKO%`nuyf_5dFp-hEDV|b?m%Zh3Qg;#-~d}y-3os?vAM)>1) z_W{g*lQ~p}q|w7pd$Kujfp3*AgF6#Esjklr3H>{pPm6(W*~Uv zcH)R@OL)2DaB3-4#4pLdkgXMpXKPGI2uJZh`j%WkE*?nQJkeLq_gl|~AGMNG=44MG|Yz=J>j zR2rqiVtyZ>YJsP9bG{jB{ovumf-@9dp9uQ8$)FMN$7zOdFYWN-=#g4JTz+x{R0iv@ zvjV?h$38E3<*!ET%X+x4c4ny5RRdGp9ni2si`5ACt*tpu09tu;{gpBX9S8ype=b&c zO+wXVZGQCk9dzWs`+U0QES7a#i|x_WVt;RIGV@Cf>s*pv@_=--BM2nc3q#%{vSi<;fPfmhH)#|TZ(LvJ&JhG{YVsP zh<4g(m$bCAw`652T1H5P;yw36R*_LwWi+KUH1vhEzVk1<Vi&Qc;`>{KRssozEj23kv*_ttyh|$Pk4g z6Ks!t!h3ZfhScV-t5_2(NT!wjWWOBqVQ)*^fic-9@FpUNx@8-{(4yaLR?|#aJSQ0r zE!Q9={*zG1BAQk-TmxI55N4{24oN-n01{OwWBuBXGSX@6mKC4)ZBuj6Fsp-ApT)A9 zyrL(B;0@M10xIX)jNQ?OBxAk{o}aE%)JKr4G znU7$V{71&yN*VsMjUzd4Z$J_U066+s0nV<_#G!a;Fdh_Q3v!;I&C8d_7k-H=j0O4D z>J!LUpEX3y;v^d}em zycL(5PZPzC5Dz3<FHzaa*CM8txYa!k>+Mv6FM!@17z_${LQ~E9+)BwKW75 zw2P1p%k;>JtHW@&S`_ztFN5ECn$UG&3$z5k1e5e?OwWzsYr1p$8R467DW(90Tvf;y z4^<5EEN8v9g`uMJO%yOZMrtK^4DF7Bw@&WlYfmUl7CS^6rbJQU<0~0e!!BlE^=D|# z@q&k0N8m1#gB6cm>CcFnfbJ>4vt9A}6tSwFKGZbm7h&(LHkVmpElwIBES{@vj&YYM$AL?|+af;dkqHx@T zNZfQ_mor)r`tUmwFe?@;2f6*`)ywQuiE;k+FVW~XK@dhU)>EK4o=7YR}5+CeKFD|dj>i~4nWk4Du(4))Dkf@a8UgkRNdIi z*HwCqCVQU2itUGKg`yJF-tZuOiA|W>Q4FSug?R4hN%Z^8Ie;^}dG4J*vF^PM-PayX zfBB>_m?%lQ<_J=0oj(=FCT>C7Zv`;t-E^G$pbFAsmGR9P4>FN^uY8M61kqe+P#B2^ zx`4vQW3m;V?-Eh$j4N>qm7wOc=g{|ZZMa(aA85=v&${mPpsUVDGB(%CIVP4Bqn5+@ zqUt!N_7E_B-;$>if2Yvh_kv-S*B8bm;0kIeeZ_s}tVzn5P;ist z&TWsUK~tqQueSL!r1h#}yQdY|-Rwr{gC(G#SC*I^vL$ELzd^Lt1sbGzizw#$k{McI zg?2STf|oYksAkmd=B~qPs!?%`+rLfbW{aCPJ7fCl?UnXkMQrlj zH|)lh#jrcOhRUg}Au+S#;Z}hqK5d*u?kp0o%+wxWP7Um)y=&XaBd17=de=&BrD+kN z7JuxI?ZmmerHK2@Y+|$cI$C{QM;!zUxZU$taEtI_kC9Ed;a(`dxzA<4f#Y^-j z*R`A|G@VozMIf9?2cugHF>-n$qg9thymIqNaL!in{+37_Yo~y6$~F}Fy#>e8?8u9D zYtmr&i}IdFv6rJu(8`SCrwqo>&iyGM@ydXk2g}gGc^e@AZ9L4MZ%U=V=5lj<5!{vK zPGwE6L%!W2zLvH*n2B({hclDO_OM0R+LsFxmzI-9rh=TeVl~lSc#eckFd*A3_2{Zq zNAU4wDg3J02uf!6*(YxuiQcFxDfxVuRHw+{wdZQ2%eNdYB2v-3p&V6BH{r#hTUdvo zBz*Zg{C-D;c$+BhRNUkh+0ty&QSWp zG%6wpi1N#&vUbAQgb!rb{TWohs2SgGZMKuvDZ(M46zaa^DHc_!(zeH^;iKp_Fwy%; zKP?I&#Y5*{{Y-@Or86*m%}(^6Ba3gs`vhRL#40Kcv>Xsn0g$C7Uz?qJ6FjMQ9UXtDM3mOH_;{k zC|mXM80;QX=3H0VL?D78--j}>tdb$Kd#7NMd>C<}Yk>Ae} z;E?kc80OBWU#%-J>%dAXlzx+3XqeBPn;W2~$pFOXTwG9n=w^(=(&sjtj5i)$vALnmY|;e`K)N1)@QE<~1Ce+z8=rtKp!50Jv$b zg~(_pw#D!dd}(k+w|OQ+xj7LIR-S>wlV#|MhF5r~Pl~pRt{|O$dx_VD7&5d{fhMd` zBdXJHps=kHc{nQ^U5j2btXmP}Ylu_Ser4wp&artU8c|00A-H$x5iut*c3mVaEUj-*Js3^IOYFq_QU@mGBaZrRhxoh47vf|mts{7@&K zNzjAlpS#)luQZ9YI|Yx&cfoJyAa=)y;iu#_mW{v5Wxt&$|HmiXBkVw*X9yFsD}l_$ zZRPlN<5j#oRRC9qD3FiODE!s?%Ky62liQWA!2ZpdAaf{-IeID&x?l^Aj~pXwk|oiy zL6wGY=A%Tl0V6OnpSqeDl7h>gzXFE<%BMlSp>tH9XO@ zo^`r2m#7YfGsdd~>C#84w8zSdwoiYG9&|U%=v{+NTl?U@x+}lR0_z@Tc6B^QFt9O1=j=HI6}xz;dcAElnGmW-{GuC>)=5 z12&N{Y%$zP{YQ4OQH5iyg{vyWH-zFfO+#3aS=`je71w2eKo6)ZGexS46%Q{{(=Yp#OeI0+N|HA`ON9N8uSv$=I_29OEPSu z&^tB@LgZTP7H~cFoSOq6GI=AvbyFzq%XTJ0?_D5w@-SF8nu6Y zi+Qxe7wkLsl4BzM&@eL!+7DaOtkVt4=G1Eb|opviFMoMM)*hg%4%;G06-XU)NWJrLSc^UbMr7pZP2q z1+qMU2KmsY38q))+NHYMqpo8;vr9XX*{=T*^R8RcvOTivwE++p zo5a3estOA~m2qxnE|>iDK4=fVM3v{pa3<0XG*@(h*V{L&{kLW0$hA8R>gMCvqk~-k zqa0&Ya>;nD8q8dqz`mp4qcOO$!#QEV~F9Ua( z9awsC2N_&vf&FeT;L|yIBGomMGO|PP^+*KH4-zGPCL1C3Zvl828B*s=XL9Jh3OU(6 zjORCL!HfMb*mai*aOO5qGOt2}{`Vmk4uo|v*|(IKRqJ)h{gY8J?s|jma-KrclOsv^ zvsxzh3|1^R5h5$*an7L09AoZ&5>B-AV`lBSj*tFG6VrGAoo24=7LQ7{2&6)@I zO8`T-9b>PB6s5zDF-Z3;ILPk8E}{p&MgYWpr$BbU485v~u+_YR(MkTtzpMU)a~yQr z&N45AQGOM6C=}tKod#PuB^YE!=1?cOGcfmSH4L`JqiOId{@~b8*7o{ah#b9zszp-t z&b0*QBs-C{J@d>l(l`r9>_ffDINRZh@lGl{_+A1$IbM(L^S-nmIv$aw}IUI9lZO=_nNAH+q?oZw&9GDI6?Xp@z&GG# zH9ICuBGY8&;tj=Idgez8+IZwZLv0T)bcPGnUY&$@6z{Skg^r{+CxGLwx|7)-<*4hN zbgZ3qgQvQV;{6@P>SsJ?z&?=*OyBu48W49<}_CZ z$hXj4Ft_p*vqWnp#@Z+1`p1vK&g&fWdaEJ-KWCDtcaIKjsU^SVnxV>jGt5=lLp*L9(F0~N zR4z}N>VM_jY6=1L?}H9Jnj}ZxN6sX=+alzmSE&DgUY3+&n)RoKEcR#Qu zLcyz<_?lwM|MQSd{4bZmHBN_ z0=HlLP?cp#By{m3U=PTGkFWWUC?7u_>a_4|2%m>t}FHR4VP=+s!w8)CCUH zzoC?{5IZ9%9Z>KGxQLliJB#PU)r7^JCmCA0Se$GPTY}pF zO*URNCQFV76VdWQqHysL`Y+ODJ-7_^p3gSqu!C zd9<)@5$<>vjtiA9Vba$-XkaEyCUX0dS87|Sn^rnmTE}JJb)sq1SPn|1tS1V3)*uZ@ zO!dP%%(;7|U_r&`QJ*S&eMptARW%~NG*i*$&mub1Si;jZwZQ5*quldsCJpf`!X-5w z%m?cY;GEHm2S#(C`R)YL)!)LTi3Q`(xNsjGEWrglJv&)4_VB5lDaNb}u`8%7PO_U)L-|y*tBr6``Y0htX8_h=6_2e>cdQ!~pDlSqR&|L*-{Pb(~?^hhGcMW7kP{ zE?O3jn`E1C`>Ep`XKEJpe-}b};Pv0z)X7v`$BG=Yu zuu~?5(PqOH@HSEkKGzI_-=|X6P|<>Bx11!?4}Id}lZ$Mj#u|2?_*&4xH_U0FVet6) z6*UTCAXr`zZB(1FEA%ON)@;I$EeXU;M~1x^U`CP?x%2#LV`i1{HJ0bg?eJdvz`@N; zOi=1NIAAZ0;`!o~Z}I~h0&O^Fh6g+OA0fFB*LkrcqGZ*YZ@BDP4k+5`(xT5V*vlI2 z(7y39>pC)rq?i?8_|8#A>zND0ESgML-x$M^eRn}G=r&gT>}GBLa@mbO9(m+vPPOkm z{ny9xol8Jr1 z9Mg7AXL?U>M6&}P5E|vow-_wvK{u0BJCpfg7)*!&uXS>CqWDG(YYl>v*V0+X!M)@lznW=T6^JsNt9!NG z7i^~K=;fu4w|1*iB{MDhe4a6^oT$l+d7Oj9!!MZpA~m=?D}yk;G5qBjW9S-M4|6l4 znV($(41c{9;bj^yY3-6!U3v|ENsnQdwF#1^lUJk7lTrL{S1L-0%>tDfFQB>GiuOzi zLgoaQ^Zc)e33V1Ho~E6+Ozaq2{%!(YY=4zq(lv=PpF*%ha{)cR?jPp_me-({Psl5c|oDXJSs~Xdn`ZCzzqega()G<#qsz8jb z2c03#dA>N2V+E{awa>KCWsduyO?`~rF*_C`k8!ROBXQz5-vLLP#pzoWXPjtXf;Z)M zkqg@_h>A6j^Ozi^%RiW~YXq+1x`X4)cJ54WT6!6rj+fzH@dYG#;}UfFY0d0Sx{UUZ zB}gTg+09GRqpH!Lm=)m%DXXN7mzRiPYH<_my?7b5Qp*OzogL_3D+7;rwljr%Icz8! zg0*kmu`lH`tG_FOy>;py%$ffT_*cu}&DEK(+#(xRh8vS2nOsJgaxT}Ca%8PP*QHI- zMyJw9xZ?5xLmNt1$qUc8IiwUly=w%o=gHHb8KPvbk|0_0av`(lWGL?8=~C}A5}5XK z73#}#-Sx+3@U1k1<=#s4_N!Ca0UMa#zb%*_5w=uxb_foyzJo1uSMkGJIDWRwBSuZ# zk+qPTPd-?$0*TY_vE!l=AwGLZfWaxd$lEjE{Yr80G~da)x@Q^3Pj!LdsS(VRTelcB z$p*-s&cg#yu-59T~yXj#S&_J!szx=6zpfjpg%9u=u1rSz*(R(xO4+;@5>_tA`kM{GQ1F zs`HR(owyDPJB*3Pjh`r0mjSnU-lDj{n1E{>79Mta)!q2LE11u?5?}P}{`r$=Y_d zMejBC8(-p)j4O z$2{zpH>5}Y#IcwDnvj?odr)2112ZM6p@h%SH1ih5QZboHZv4YI4P-%eh&yiU3xv*n zgYY21hGP|#vz{XXcqHIGsO=RXqQ(Kl)BF?~-H+sb%$|+w=R3lIto`_FKM%Eh;@F{; zeK=oF8UOrL!=v|~;LoPx_;bl9Oll~E)83DHw|JsVeDNZ*EKLKo;B$ESOCWx3F2M`xK++u|G?9+M&*T8b{K3&IoXj@aa$ z!gCv{!Wj*w5Hv@CxNrN(@)~YH(N13;dAW#GREtBI+FoWu#$S-z*azm8arphXFHR>`smj0XA3mdNIfP#Y)$KQU9^|rs^ z?94pwI}PCHT(n~L4gX?JIi-V)_dYy%U67P=o^VF934YBTWCk+~V0@7V-B{HQT0f`L zs5pHpsK=uLv-QcN@rPJ9bph7)8{0)q*MSyM4bBZFL_Vb{5}xiJR{LWys{mis3}& z=?M#7ePR(Bizc(#!^?O>$q~50oMHbHJr9xZe=`X#5@hwPQt*9w6ZI6Pk@Y>xP*rXP z>ltq7CnUEye8*+(ke;G&)FEb)Xd>0cvwK%BiK1+p-vzcEVNu)1Hk)}&0lPi%y zB=n#V&0om*8xCtx)5+H4<&E34>`oDtDZ9X~7ruoCh1S$N=K`HcW7xYr8_1g(0hs&j z3r%?OhhJ@EK^G=Z1L@RsG9f;g`sulV9Ct!D_W~^T(jwOpQ<~llMJ~OyPb*yX;@XgH>1Um<1B#rHm%jo%jI{ zUOs@cNB2^-tZb+lu0i+42YAmpiUuqZq*uRgBrAiiP`5J%xHqjGPWFB0GQEOir*{kg z^s6KE=TcdFL+N~Cm;IUlSHhUa#T$^#xvF$_06`CSpY7>C)3_|>BdSnvmZ`fH0)tU1 z7%zT@2Cq6svVKgVA+LRz=S5}k=VlEvVg4XKNRuF|Kcv%Ho!^YN(geWbr* z@RQ2`gx`#@Y2Ht%j3=D>3RXcx_+H(kYp#FxBQG99*3U?w>+n z-E={cnvw;{@ng6=(}k{EvW9lBZ+I^`4y{0s7S}VW!WAW=RV$DA2MWVgB}B|l5K&OeWQ-X9BI_EG3&DO8#CP?@$h_2S26QT$75M#x$I z3-*Mes z5LNnNz&_cq7sF4dg8thHq_=rH{Z~v#y>2GX_SgegX7lL8tk-DcwHb_;|KSUAw=Ki@ z8^GtU7X24!#JJX!;qbdNxVZ2jDT|ZDmP}ic*EJO$pNYfMks6F&c?uep?FEChHOw!@ z9}1lxAtw&Qq#|`H)kLs+N*z9``wAlddgO8GLFT>AMCx$&FX*IrF%P(Ypissa?AfxA z7cQ?sDjxOW*og+XGI0_)T|1R7;J%Oh?-IxrJ9&=fWlBR0v*Gm1Nbs(lPG2@UgH}Zv z+i*&ptiEf7MuX-M?;=_0^+|&+c0NJ|3r4{8-~fC`Q^xZn^O>=r-MC~*5F@SRgjRVE zU`wJTE2gIdU1~dFw(hOu=qmkHfIl{lXWBJHs+dG$97`FJ26 zSDOkFr~294{!9@AN24KL%m{t=8sK1t4iR!BG;5>>?3P*M0Jkq%l%RyM3lo^Z*j;SR z%VehLo)~&71i|xz`s854Dujo7(W%85CG`ez_9&0pc)yRSk9&icJHDc$c_5w|{(^sg zdy_m(3plCxnlbylnfZR@FuQZ|8~CzY2G3MYL9@$Qu!zZoRXj)Ro0*4eg1&?J1tCl# zH(*~v0E*unhtJ!yn8t`xN>=BaWujEtoCx zB5n7NKx6!LT6RDI&jx8??_Fn-diV%_-FX0pUo2(*nixRf9DU-u?<%UWj*D@*(M2@Z1ex0MPUfktxA#}@wkrcu#!YFH_;>V0S+Z~BG%ip#q`kSE$8n!CxppxTkN-`; z7|B@`KQBk(4351o^0bg=8aM&cgWjOfs^`r3KQMkB2jEu?uU{2mu zWc$1oX~6R?X4hL+kn1`I%Pk9-PmV6U_nbQ?reBD)iN1huEn~^hyyI}4KE;V*rRY2{ z0RPyUv8NVq_$O_*`^5^5AN~T)-8}(vT=($Zm=1~;y~649Bgwn_)yx)K9cH9n zjI8jy%5?8gLr1rF*koVM{@Tj5z8`a3od@kOzU~dIc=Q}j{842$OXWhW0<}A@uft52 zk7MMoCu7m!I-Z%|eP;SSe>^oS4wq*A2aY? zfypOnqBo!2aFhE?Qb$m9&1TT=nZkKwOJVSV07P9ua5zfT}PR7c?xj*paWYkV?lC9yX@X&9H+c8HAehpHhKgfhaV!Y)ZG3E zoSLIZe9KITw!0(UUl+%Ived%xUuIO%CkGAW2)kDC7cwcfJlR8r^y9B{?B*@PL}vYa zY-D|K;9CObgtbDS^HN5K>o{)j)S`!%x-sJc& zy564Ts-qp;$dZCCzY1_tj>9CXN)%|h#WLcvCJg#D_7c_k!#MEPk9qIEoO_>4ftuFc*l<`LF3Ay|``n!JMVg@3X4+&Q-G_XOJTx&-)O$U0`6#>mlLX2B&%(jSzLC7T84 z>9C!sF4qT5i=;`&l;iBAyf?U9e+yGJ-;A`Ljf7-jdBW__LPcv|Qg|tl&Au25;&uk) z#t9|<)Ti>`6%-A>M_Y+j;v;;+Wd(flACPyBSIe)J#*kTWdug+rGxZeGrq=Z;;GR{B z-52#}!{yf?Se8J34EmF4BBlJTuMgm*7j@`czLOs1wZhx<^`v>(DsH})2oG1MLRIQY zx>D*X$Y1oQaV7#pv*$2PkXgpM_(hZW3Cbj6`3lxKLyFdYdc&6UL`cQ*eCFu2LRy=2 z+OAAFk9Kaq1g}RAk?NVNXmR=`XmLMWney0#^xW&mhLc11DyNDrSYk}|rT<~*Lp^c^ z_P{S$E1VHI&ZI5bK)0G-<+*KcVGj;aQZu)L3GGS&&k|4g_w*bgKb6VSf1YH+AtNFZ z{|4Jus1VMbL)NvQ;kf8a8K<%+9NJe$ZktxpmyaIf&oo&QU3Zsvwp5Q?4}F98BJyZi zSp&J2=0oH#7R;#|h6$;XpdDeLAd`uocIT3cjJ-5I<|duqElg&;F($g>%FL9M6Lk8G z5OSbal}_HJN>}tYgZX0%_*egn6_207Ijv-fT6!x!W<9}tQXqd*n+n~qR)ppsj$qjX zb-vG_xs(B_kK$j?KQXnws5xtHe+7B%7YMYS$v2azd|wPExkCzGj>FJbEF8;+;F zgthvVjrVJ&Fk5G@A}b#}gb5EH;W7Ojct7V6G@W6{N1tHgo#X-+Hg!Y&x8;O;57WPC zJ+S(^3Q;}s0WVnj(dgrA=!r`!>F%e=?q8)DkWUFrEFiEwCP0Evi}rV^Wi;q&Y-3_nH)Z>1FyoljfB}@!^qAti9$8BDLxWweC+Ksw;fy zdxvJmpfG{#Om?E*Z{Hw+Iif_vpa5hu6v@2NdK!J$f$keU%`CKk2PcwlkO8A}AaZyG z?R}v`4!6BT(+%CETA%X^wY4!XJcGdTs4^{A+(8VgS7L3U6$oUpBxAS%w{v^z1u|K9 z^?obXmj7jvcJtx(?R3V17XfnyxL#u3G&pP=g07WP&>StwZX_$%a7ADGea#5#AF-1L zwin{jkqdmy3)vNu3|rxo*AI-jw~F{3u&VeVBfzeA4u!HrSzJHxjh`GU&zf-T*NLeV zbG*9o_SBi^dAbx&-uqy8Ztyew9Vq9{y+U^B4gYZNx&}MyD=zk7I7FBI38x{wD` zN??NuA4U^haBk)YocaDE79YGwrdx9N;>B`A_ThI{H_4lA%`st*9kzo*99MC3XC{zXRl0+n zcLsSwQ_{F|(=zz>_A4CD5eUnVa~5;~8t z-}YM2iFZa({}q?{4><&jR0c6^=rRUY`SZsTC*n+weULCPl|J;frwf&8`LID4kJbEU zPTC(u4_AiVd?H9y_D#W{7z=vn@EdHrHI-J&N3d5NKJb1;52M@R7Vf#03<6$}n5QBS zf2(e>?H)Gd-{=a~>$)^7OZ?47eh9#xxK993L(;y^$9B!Sa za8Gn8T^u=;?0KgM+N-DG@yzpJu-us>-4=tx<`b#T{8HBBTnJVhxs&~}8btdApy!q* ztXg-I8Mez{POnPjrR3gZ?q6R_3v{_>$q_H|X!23UttADeo0MqIpc+Yg#^tJCBwN&d$Q@2JObyC1=WW=Z@xHw^brDMsbOSvbq%5P3N-iLa2k5sn@6Cc%yc z%r+TYloJ1oe;vP}Z-N@0(`aWe71r_ohP&gDW=Fg*+{tgfkqsf+%OHMk5cIy*!bw6~ z@YwHQ*f_9(?^8X1O{xOW%f0@(8ueLw&#SOYa|v0OEQk$03Xn6Fgf;fdK~vWQEN(r< z2SG1k&2%%O+b9cO@8yx|m%xOM0k%;@1b%jZhyH8A?2lL7;P>zdxsEJ+_}qw3eYmXh z6NHdPOWOBn0IpeaS@(HsQEb90^80}lo#lCv-TLn@JLjbUv^K7!UM~V*EJB}npSS}e z>>^^n^a+zMcZtdV@BrhDYvI&CDK_Q$N~*uJmfvR1<%JTkRclzl)ayT)%&_p zv&IPwHyOe}X*r~RFu=~iKkVo&V~}{A2!B~Y>KKv)Pd`M$q0J^R3o~%SCV7azqC#~? zys)k80NjZG4=R^i!j9~82tRh4y`A!mvFo|O?*FNZJmF#NkvM|)ex*Up%EwTR*)j1!D02S61U_6x%l?i+!bWbd zVHC^lm-S(su=e>EwRoHOAutoXVe9b&!70v!=0MqM=YKh<(as4#ZWpXyxo7X3dBt>5Z3T`B8_g28FxM;uSIWN&0d(Iolhq^2r>ny&te3jAZxt?5Lf z6Mvv>r#bD=KZ_p?XM_4YMWXs@1*75m01C{$vw;nFn8n+d+9}1#)6V$qteC3@{I<=4 zwLh=G%QSIf^P~z*CYCWKi{GKCjWn#?WrgQ+VsXx@ue^W;L3lE^2%ct@;Pl8iY&>p7 zE?lxB7v}%OO}nDd&q$Kg4yVEIkYdoFIwWHKTKHMwL*%z?hbap_aJ%u@*qn5y1snwJ3B+aercwYCdXp$1bvX76~u9k7ZPXnIOhGi*T^oDp!U&e zH2TO&SaZ>wnruj5&3vOt`=&THKf#a|OejIKl72qxu$gRpUa^Z?S8IX;SzX*Y!(<`pM4dm^eWwpmY24pqmv0l{gt76!t_YILl{jB z@&%KsIC!vW88w!5q!+I2Art=-C38;fq{7QoNPou{Mle*5)_+oBGJkNq!J>C4xHX1v z(Q}bJ@#TKQkp?iMa}BxfxgHFJ`KV-PO?LFoBGIKn)Y$9<@ez(BeLbApfoUN=_dYVC z3$~DxTu0gX=KI=t=_QX2gG6Uf)|q8g2Xb~l*nzr%l0WRV8|KHmD5;CT&u@X*Y6oqs$@VfAGJ&J+w}FGRc3)?J&P}!I}AaFgs9@ybe1CI!X~R zTJOgEapv~-3Sn@e-jXt#zO%Ai*V@S`oE-aLPHZ;3p@%Q^(AJbsjNsgSyk>6)IU(n1 zx|;xvUU`9-7HuSkDrbpzR0wk~UYU4J58`F_dBF3LP};LEk{nJlCvDGW6X}{IP=9PX zJ=yw=&06nG1C@@F+Ot#XH=Xa`f5)4eY_uf0mI@?g`x(sHl|+Z{KO!S_#$XqGnkERS zlC2w)821lRWTZ)v41Zh$Q-{kSUnqx~{ov6nHD%CrSqu)2YLoAar;^2`AMnYe9AYas z7sd?=$(?%~tHx*xJh>Eus)5c#bn;?yuvd*f_?3+>Lu$!i(OCNAjTI^%6TzFk?^xpi z2af5?<*xSI(lZmEfUrRhR_L$?{zPfD}Nkf#JOAGpi9{OrXE7tceCYB^q8ri$YlSvaH<0=}c!ShO(|?Aq&C zOGO5a=IM}+`$X8_!+c&{!c1zH*1`Lb^cY3s!$^PWAK1;t;Dg4EjNHsLkRNSi8vbTL zg@OfpVPY=R-X6xRy6ZvQ_VMUBA9HRGIh}6arVB#_+Eka@fty*6q6yQ*oD?#_xTO)G zq^-?=s_27xKiAQRyH;Yv2T2-l)dB*aXAu_#EAIYfLU(3-W~(EUcp6QW5X4Owu@oba|KL0vlYbrMd=aaRBDy~+&1RmMC!-0BtPqS!G|L} z5=GqLW`#Ok*~E2uT`xlQKMyATlpJvy@5J`^LyWUt07(zEMPcVGe*2XWED1V?yB37P zVe3RbNbkeDjY5p_UPoU0(igC>MUWVtPG`)N{<4uz55bOQR#;5qaM`(O|l^hq5H4jB0(}Wf;mnYy;sxXVc)W zo(MeBqCEp@Bn#+TYp9{Noql`pUeFuU;4zhTa@6s z2v@i%Pw?ZI6rIp4P3KHdq=}~gutg{YpY~5?O^0{#oTN@et8Xd9yHMj^l@_V0 z*hPl@VwjU}j&qs*N*Mo+uxYsx`JfyJfiKVTKX07_UO6pLd*nGx(5(U9x@9!QW(z!; zDbFmuDMj|$%%pb|>S4QO5-*19sGFa+rnf7r(QUwLcr@ za9!&E($ZNt+rs2xBCsdw;e}Z=$Ud=PcfaE9H+N@|N$)+d>A*pp7uX3GoHS_M5pm|^ zID;m>lkia{mwm0YC0FInp@~%oJgOHZd8@^#=j2O}S*C{P537QP@d`4yz8#IC))UXr z>-;r=IjqLObR zJ~X*Q5Omc1!0q@o_TbySMC6wO74!9Dyp#GdHS;X*n3opDs5Ua2cuy)cO^O*i%Urf> z%$~L0Rs!os9MErNDMUF4<3IO_wD9=>W`)Ofj(v9yI2r_fbIAlhCg$4}9uOqj_Ho$t zrvz6X4j}pfw7FfyhE><_7q|1bR$T&?^J{rL?|oF%xQv}7 zt_l)sEP0W#)99)NdAQdh6*v7o$?sox9nPP3z==AV#6>U>{U_+)I;DSXi|{Ch?03i7 zOKL%NS|ZRXD}L4wH^p;PhJr_W2Z{k$*cAu(679%Bg_r>%#Ey&JbqF zPo-Jdz~1baqe?Lg8TU<;)g3rVu+a-U*;2>}?S~rcA~cEepq;kaaB)H}K0D$GGgMx{ zVDfML&2fc7hOWTx&-!FSz&kssGpV4sC!6lSGlgm`Oe6jsCXDvy4k(z$!&}>i&|uRK z3>GQFTSph8cX2b$65K~qkA=ax_wr!5HV8Hh`(b9iAPGJyMx^^6;k%O(#HGm*6aKRz zS^H+uxsKnN=o43AlGuLS`pAKiw&C_X;YqkVUxsX}OQCyI2hb;YlpUDhL?W%P;5YA^ zIBjpdb-47HLrtgPUx@P$YBUy%GHIO~$AoVWeNwNtdx0IlXZO zb#(iV%?>K0J4A;4b?G8}Ev|#uyk7p@RXPwLm&|^DlngwJKoYQhGP-}s;qN?Nfd_mP zN$H>|J$*rzi1)81V&`I6mG-T+HL-e?Dch#e?u4y$>6#G?UoTDP8r`C{YUi=fM}uhI zn+pQ>mchro8d%Moru=+K@>nr|bYv~2zBUi(3|}Q!lU@TVZZoKA=U>+cC3gXhdsi0TCZ3NEg!JBaXAgIv?m$DtBFwv z$LtTJ*rL3)lJ{{R`O*Crzn$Gd^$v5~ZP912|CJ4qpMM?xr|3K!YWm+eUTJA*D$z#T zQ{$fJqoK4TBU?qtOl0O;N=r*aQ@dyw39WmcPbeD5Y)MvTvPWd(cYc4uz4zR6KIeJf z@7GK2P!UQwd zK!W@;TqJLgorY(K$oWR*>|qBkgMXLY=|0H@ZYcnxyLr4VpZME}Dyx=bO4_`j&98&Wx? zVh-oizFbQl{CI})8Gsh(jfXG10*)5(Br=Z=*>eWr0sY%(`h6|5-WR< z42)o?#}4W$wz~1omIvrOTaak33!wLnxNKCPA6?j2fdh*Z=#TzmP@NkI58967n%7@Z zdgpJ}^UnwVSjkM#UUvu9_RPaoT32nqbmw#XQcbvDn~a}UR*@Yg#&p)Bd@BAODR&zK z)AU6ocQ41T<^D#!lfCF1d4)Oq^C}uQ?cn_d% zj`a za{*#dGzI_Is*%gON$6Vgg?Crkk#*%5g+Fgg@f0p$8`7Yf5z?n#TC$pyd(U`HVjP2W7 zh-EMW?Z4+>e$YvF(C`g&?ZpKmalei+77d5B9a40%QaRLp$VJDknIz}qDR_Fr4o}b8 zgJMTdu`Z_1c;__!fz6Z&&{*Tiv^zY2pu zYw~O16!I;83p>7LHGe?yFcb8l6`Rw}@zu}fa~-TQYS^9xyzWcT5FNq!$|U(vZpwIT z9Kc7Lv|zH5GQy%m5(>3cA|Bo1CJTue46^|C}e z6-?rr$$?oQvNy`<;T5`alHh;dm8jdWHLs2Xk+726I|ZUW9ro&qf5kn z7|6bghgRw{G6A!gSEgQIx^xBYSah7(kk$n@Q9kh1;|5f@8Idg|e;MBcxnL6f1jl#Q^kP^8@{8vzjn~oLZ{6alg>6{FL zQmy#rfiy|{OWEq>9q7F3H8aU07DfFO&^{}d>m$F#(3X|tU-2Szh>wKWx>&L=SO|3s zOY!Mg0X|X=g!ct;usl5i*R@ze5%pne>^Rp}L_gk7uZMFACggk$=Nq*)A<7R1aFfzG z{GfCavc1L`Mk1HbOBSW4($~?jAR%0~Y#TgY?M4RgM6;D&!g;UkJs@1=8nbP+F3Gty zmHr)C$Vg4)I5eAPa+!t!Mtg7y7@K)h<#XcnhEXFkO*#mzio9^VvI?~f-tsT{iIJq# zUe;DjpYfcoM>=*`G4Ey8@`_$JGPZI{$$2hUCzMkPHlG`quoK9RAG9WO-~435PJF`0 z<_t4iL4ZCz+{POHw}}is4`i!Kb>R5`Avas2aQ$Cj~hJm_V# z_nMO8MpLr7--$*!TH|`p2An$1u@L=~$m)yF@Q!RJL`F6+b51_uT|4ARZYqeAtqCu{ znfIHqVykg{`a0(2oJ34mzXv|HowUs_O~Q*+vv8vKH+ZgF%uZUiiMs3;C#4fYcygBE z=vnmvJeSVGmR0XSf7qAfeJo+f?U!)o$O__7#PPD0jd0=34Iq9x8zu8N-caBya$O}3 zFSv?O_m+Gd<`^ShZlCam)J$?q_$6#NeS;C}55k5!{#>7w&!~0EK&5y#S&_LOljCMn z_fZM9E%gf6r4`_SPbS<>(SZ*Nk~F)|fUJ+X2}_C{p!rM|TRtn3(fpLk^i4bk_7XoZ zDOrp?zd4HtB+sME6}cJH&I^qH@+S7>$Wof0mktw*eNguKU##q{Wjqzl*v5t|ka2f_ z`8L9I`#Li?xAi2R(u!mA>R*A5lp#+4v>BiFq%r5%cWgn@JKW?n2q%86WIOsN&>ClZ z7}sovMM*MjIp=+?^bsRBGJrU&c!+;j4bwa$z<*IdBj! z{wjh?>fYF&TL999<$Tf_jNf&o$sYA=e9g@zY?&(f=+AY_=L$f)gB_+vyn(MKYsrSJ z1N8P)b4W{XWcAmGl4)tOIOFYmmW-L;+bz+UI~D~RXD1Q;7f#gu^dYi8=KvhL#kqJN z^|CJSSqM?9LVfKzRycST(p_5gHyaD)nwoUUkz&U5xgDqv0v=&J(BOy&9XKYyi!Kx3 z`bnB-(@?>`JzI+Oay+~AC-d<7J3St2Hpn*qSwZ*kJ8?AY2y`m$hoYC9dgY?M?Y&%X zejF1C1`XFx%kUFh`-p;Vm)am7yGSoyW3;vbmQ&I6a zT($oxT$jHHzk)d?y+W<+g%j_gY;g&i9B`toS}sURLrCzAPV_ci0xn^_P{DMgZteyA zebA8Jdv_g%50=sBA_*dIK8+}hFszoIGiEKbU>1ZNWy;FjNc%=9{F|ZHyixNy*ELb4 zHifzH)NvY>Jm62;y!9b%mS?kiM;4j?^%iFC5aH|p%cB0>4Mb=0BG4{P0e-{?vmmG( zfnSc_-r7;sfN3P&QV9R-xkavT8{#r^x}1M+HhbguKbV&{mAoCzV5Z9Lz*FjL>AKC; zXyj9jFLy1$?S+}xw<(=JC>#l1iHg+bf-F;99mquZCg7Cd#pFp|HDfs6kFImjAl2^Y ziQzS8bc>LpM{`DSs>)|5+vN>OpMCL=n*g*dnbkZp7E1O0EyVH9D&&CnF&b#_6z=YN zft6mHQpP#-;z!9jC+1FJ>JvPu&lXAg-^mmRNa%%Ukqk39(S?X?PX_0+ z0-)8KPDYA4n&xR}(WZbnqE_wA-|M-8@w9r+$`8k4PoouBL~#Ad+gr#U&d-zNy^UNA zGbFz?qsXO?`QTm>OS`|s(U9eBq;#?XjQ_aLs_xApSJWfXsb!GLjcvjsXI!S)YjC zEl;!Y1KJSeQHqg1wQS39IRE)T1q_V&qbk=;75K4}{Ibo$dH3J(?M&L?y1;eYD~V=w z*Rs8^efvf*{bWtYOns<>v*aN&03*&H{3%eUE<4mFIdC6Yh)85!&a*OJ9C~%L>Uh*XEqZkN-)doA43ryIlhl)Q^)3ZMCpp z$btOe_}i5Yxx`;Nm7bP628qjeV!0U)o9v`W=?O!;HJZ#8+Qbm`jhVFZPB&VdnF5n4 zY{-lqgRnVU1|AgTqO9E)R(8jJ*d}dDE-D4ndv)r-d-MrJTM;KqJm+(^3G%M@9tQt3 zXMcQhz#HBTY$JEAWsKco?D#6=M2z?~6{ zut+imWYYzk-9}~U{cKOrQ7dIVYOk_IMg!OrU(Q7QH<6w^d=N)cHL>{JZ~Vw!Rp1w z){)yWc$uR9t2oxuXCK&evtfk>d#b2XgIA`_hQ#Ot{P~U<_$PfCjr=8tMZXWBa|f5z zEtx|$YF&lS1@6pl&jQ=Yrt={ApDuWlJK()A4RUh4uqfRKcb+*%?(TjL1`jf^{*xD$ z%1Tq;s80N)cMDYnZsXI0x%?*{IT)8(0n!2-_bogIQj}$Aoq-{-Uew6UJ`WHzL7ANP zD}}M{AGk4PI|zS!#=URblU$CC6z}>C8*LPrUcHa(*dj?1_5B`h?o^?E!lO7O(+W{p zULbR~0z_r+Lx044njD$Qi-}dhKgXKco1=HpPh0`B%vxa68v(kLzZR`OTkw9?aekYy zc2o;j!YTa{oI~CVuO}BW`Fri)m~6BA z3b(%G)6f*|H*!~mnfEjBTSF)MB(37+N42&zQGUAw z_4&IH+FA#hN^uq%B7DGAcLD2o@I7l1UPtCX5P`*dQgq$;WOT8fM|78&({U<@|LIyn zSi*S>s!v6+7-_01u?W^&`h+qK4P3wPHKX<96o?8nV{Z04e#L*YN!a1{uvBpu$k^B6 zxv2*s{`Fy8ERX@0izi`sYZuOOONFNWCD0bD%m%g?k&>>}M7FFD+=nhT`6^$)()2hc zBeVdSSAv-C{Qxs`8*K$@^O=pTJ9xCm!_Tovpz~@WeU-kFPMEq3a$`QQC40^wyEmLk z+V6YI){KDAg3qau@5jB-ay#b-m3Jo>hXaU&WiiKOR3pn$Dq(0i7hS{ysKK50xM)>9 zyo~gw_dVajwZ2kVJADI_^U;JHuf2>j2j7BHz%&g(O@^)XE8ENhy4$P0}Q4Zw~=SDR8Cd0?9C}wc^R_bF` z1Twc5kdZcJI3dL1J-vgtw_KW*bvHmnmKop9qL|(9{SzG8-ms@VC-9D6n9F*5Ucr1g zh3~2*(aTMUNIJZ?Srsvxtabm+uDO%I1P%nk`i--3_9he1Xyw7uhlaE!x(-s>LqU3F z2KLOEO6LbequSKHbdUIU8fshzBYWqAMOi93l*gPd>_q}_u&oN>%M`Oq0`Xz z!ul28`II64T^XG$^nCGaYo zDS86Nd+YG(v8fpLx*Q_BGGX4#J?z)tC15Q59$PI;fC=}7Rv8Bf=(8f}>*m4Mb}4e| z**x<5dk3+$7{s*dYox(Ghv*(?hrlB#WY5iERH)Xb8<#6mvH#8xRrf!r$a$4*IIh<< z%UQ(3TAAo-zGEiO66ZWx&bTu!kme}(fLHPw@_hj}!%;29IE`UA^{D{I=kmb&UKtHk z(IRO9h4i?P8s06pW`*G3`uZCt^JPeK(*-JW?+EuU?~K21 z`QrV1&a^b+I-Eab2qBf{>CnOj=ysFiMAgI~UxiEA?ke_{3g7dd^MTub_I( zhLz?I@JdIVasBEF&bfV>=|5J?M8&_R&$=4XutAFStnkLG zCg?58L7jz}AQzkrzjdOSEyg4K>3(+P#03YY_2n=d^sbqVt*#(uQN#r%rAo0IEuS$8?K}uQvViX6 z{A!L-m)OisQxZL6CJ9+>LT#(P=&nD?WK1@l-drCIA59lPlg%A?y+Vb?>B~}^wKK`L z-E#<0U&+gseFxSl#bBl}7pK?w!g05DIJ%vIH>9!67(u=~OF)HRDOB5x8yDuiyNWJ7BKS&^z z_p%Q;X+7zZjzcSBar)Ba3~_&eq<~{?1oSV0Jr1di?b8mJ zEfht&R1TBar`PBV4=HxlU_4zrI~Yq+g=kdzX*}<5Lc?sfk&LM})QDsKOwe9WR0faI zuC_#S`+6&R<{b+T>g`RRJ7k*W%R6}!CqH9!zABTW{S2w<1ro7ClGxR26Gd(}J(@d< zBq>|b>W1fVc#a7EK3oQdvvP@B@k6v!I**nE>E!Zr7up^$pU!`m15Bj_jkKD9^POIT zh|~}pU1LaGdM#*4sXF=aQk?D|)q^hwM92giF?!>>Jrh$a39kb*XexQht{CyghaD?m z;_^deP(X?X-wEYdLo;xT_#`|MV?hM-r^0f#-%wwrL`Ek3g>r+Bysg|UX{&HDItfWq z^^{4RgYql19dls3{kbj@&x?Xd8Qj~lkbg2;h08b@!Q8PiP%zN~H#-4JzfOgqT_vzD zcQ$>?%tfC349G~EPF?nW!j*zSth$a9*MV-pQjI8>qNI+BRf?pFIl|k&bvgH*q|n@W z#+>q1%OPNCE>Go64;T;u+V^@o=`{U@s~1V4@fvB&KHveKhl}|8G!r45FAKWq8i298 zxU+f*{(Du)a|>HdqjomHmglX!N7H3UpxP3Yp*C!~$QjtP{48Vp*@VmMbwT!(0qA+D z3nLeMSsCu0tz@i4ZN6~H)0jZ^jCdVnK6`|x#MXkTs~!~Fac+%uAt0b}kTD)MB60`T z@kTyW(iDNyxc13($`zu)VD%8x2v@PK0W0af&5Ll>-4dMWBubu~k|Z6KmKfue&*XD^ zkD4q=a_ey#{#Po4Qe2*Se$RhUT&+S+dWBLA(g6DMt8u4%HEfYy4eFm|$tl+wUZh+X z`&fpDM|AaJU}p^Pd%81u9<~;x7TjcK3oIbpoX>;Vqa;QvYYBD>>Epxe$FcE55k@TJ z9CN%>n7Gdjk8b-3-HP)`b}8pcn0}6(JoP+mi;sgsrAW3XVIFB7JqbF|XYfu-2QO&+ z67H_!k+Vz{E4^9)rx&&WgedTLeLfC-8r&{JT%1nie5ZrGsjzhA31*)G!SUZGfqj}q zh0l4yql-Cs#c~fjGSQk=aPxBB(#6pHTa}uxd&4miZ?ZS-xsKAoO03#r0%yjI$S&?P zEiKRBw;X6-qK`{bE%`_^&d?x1FaI#w*W;Msnmm-?KjuyB6DL1%EFfcD6~#+uK_{Y; z4Y|~Uf3|2ds%DOyd-5ut?O|wzb_Pgy?Pl{6{D{Fqb0Ygwna&w^r_0x8gE{X5%7pr1 zNMSS#DICGY(m}M^D3^>UTfxB>H@Ig~18%7hC;DZVa6(Hcvu0}>{LMF_$*Ccr)NTSN z0}Y$P=KsVq7>xn0-*G3m;}kvdg-N@;1Llalfr1yW*~q2C{C9gg`8nI(f}6r4X4k|- zrre=|NtZE0%{FJ^99hN22bn-$ek9q)J^&d>7gQAyq0v=8QS~Xn$^2UDy74~tQ{4bA zs>s0)$pDVqAHv30G9*V+jQE%7Q`!1=C_O8a-MT^bjV@vBdUIUd^8p{`r(r9Pn{{okLg$uFMm_rq^Q7Sm2qeca&xN(g?YY~C?1^n) zFDAgg37<$*%#@kD)7E6sjWnhyCIia0aQy7xa0n1v4&RnDaM)g--draRiap#jy=*2t zF^I)~7w^E#nu};TArE5)kD**LVC(RH^6t_FCTPb^MsGXEW;i$#vXum>X{82TX2N51 z;_tE{UenoNVh$HaIhKmUTxRtnX(|@PBRi)&XM$i41Z1kif@~w|V!R4e{rRkpryncQ zuLdTM@51GQVpc6pghaMJhbtRHu$AM#&y2r@;#W(s!RZtHepHO#*9ee~hu!deiyTp; zc@XQ{iWyr4sM4Va@ZxA5i4k~RH&0U>&*%bZGyrSr~h4I~}&KC_?qb6qv#0p5vi zJ#6gmHq26r;3e0{!S-WaY;e z2)$*<@yP!j;ydGJhUcq9wf(L#aPA)N{G!6`;-*sJwBL;Jl}_Nu%^G2&`+2nWGjJw4@Hm4`n*6HUZsC?G}2afxriP=3^r00a$U!utB-YA?@ zKM6i9+Kvwon4p2wB7X26KYYV%`cr0%m41DRXCpg+O4mm4Uu^|G_V9#nf_#8NWqR29 z1a=lifk6Lauur|h#A{6=Gw*isEB12#IXQ76#dfoYcWIHCAO14(49A$YHNx!fL{b;B z53hQ?A*OK?$jB@+GA(D6?A2|>+t+lckHdDlDfki0Ofsfr^QIATi6gl7SR^(~7Y4aZ zSE{ys8@r@s3H<4frDZyiXns7HO!l#+b}yr-@qvrD3%fDfQ5vTgHB)0_ZDMjhjXv1- z1I&XbkUNbR(XK6z?s=rfbMsK55`B|c_ujwEd6{vVo3n;){A)?YUO$JRo3|M=n6jaYxO}N1cEiRbp-Y4K?YROz z&lZuBX%*}>8Vv^==95_!XK6@9DL&4TqG1na!`9cEDeI-hXzz=nGYwZ!^^@sjm&Y9X zDtsy3TYZ!~sjq_tp&YYN$%xiz2vhdPBvjackJnng30(HclYs4flpaqd50~~ZQ%>$< zg-17mm8v<-`tuwUjDvAkajgm&(KlkAD<#vB zV-56fk3I=&NF)()$sqB4CCS}mK?`#_=+NF{^!~dsSY+7Be7Q4`T);b+BB)F1;?+2X z`XX}w+9YPDVlO+QA4eBkzJiN46{tXL9U3b%Vfn~(@^^s@9iQS#_t}5Oj_w**SiTwW ztlNx7a~ZPts1dDQ{vIV|@?m%SFuP&nEl|`;B1;AYX>5W!96mGzONcYt9S@~Hl@?R$ zqGMF|<6bgj&=W4r5~Yv0-!EN8o%DOek{h4qlDg#;5H4X1LB9z8`z1iyZ*v_mhcmEP z={MW*LxH?g6QrV-M9I1GEx5Qp9n(%+q+fp=gQJ>`l#wzf6{j<(>hK(jLfT}_yjZgP zsXwWC`H!3s3FW;>OoS?nQGQcwDL(u!pOh$Ff=nehvc=tp{7|l=hv%QeG5mv`ubN1I zN-LeddpYS@^@E;$-h{VpFJX3J9_Wbs(}0yRBtOs@jreS;Ed8TlDFY7Rm%({&aeH5m}MlnaZI1?Sa}pi zk`U6XwAfvPl0>uiCMcblMMYz@$v+h%TKq1X79<}e@x44!lsuDsGQY`XcqU-9f(*H~ zqz(%h8_E!)8Wb8J^ zk(uUZaPyBOmKrIO63ziB@mQVgQBfjVwr0diG#zG7UkH9(<@iMX5nl1T&&?F8Q1)vk ze4b-Q*7nNM1>42Q%S~=fSfLY~a}{D{$@W2pRVQCub|D41QRbgmH-v0Y!57K`^rf*m z{MYMFuT4CJU%wQwo6--0bzs#SGvnFBH=K`EO$hTY4#PvaPxQY2AZ~he2ogDW z?kkHw%!Gm$IB+tGiI&;Q>xmran{2oQ&tB)F;)6@D;o)4ydA>L>sYmeX^0Ro4%QbEc zMJOGVqqPA_Wc08+J$$B+wAppRqGiF*9I+7FhWEkq<4eJhb6>x_do7o*dL zRiyu+4z=wJ1;H2}xZ)^G<~jAD{{njw7QdgAcn3pqBgJNc5Kw!p4BDQnkk0a;zYdn+ z&OhR`pIHuSbGzX0T86ph(}`E|kMdRL)$t$t?5GjW-_z-#*^ z_CfGV+*GehQUffIp3Y_7n(e0>PMx&<@OCrZ$X!e0s*Aw!jT$&NaUPP%aqMr?3FO&J z1^DD&jnq+)XumFCmKuF#)eKun@)Q~Jkl%&ZmfU5Q_;KvPtMa(!_7Y}#g9N{0%?Pjk zp)MU?K9iJ8&>=z!t9fI0p5T~#CJ24}h1Jc?@VsIrIVqY56`h)_qg6IH7c`(}%wxzU z%_sO=T#H^?&7Gg>!a+=6BW#FD!*VM#n$V@mq!lP}`S40sb+sL4CtiiFNK1Mx%at!} zz7|}MyKp=5NBj-%E-{9gG0>iO2A7XNV|E!hqk2{p9$xAV!&z4tU&$6ARfk~g^)F`n zq!-NJF$?bhHO@MEMnkE89HgWVL#MtyYqGGD=_b7}YpDv53zuoSku{7QF@Z?e&nV|R z6$J-ENxy_WR#!J+Jim+A|5TmqJYWJ2T~SS$i$v)rQ;zNTq7qD}?P1&QW}}6kH2QS7 z^2Bwd>9FB_l6-F>RhPWxZH`?lBi7RR3-U1tT?1_MEUX9lZN zww-rH;2u~@ABBzgN@2cb7@52!gqW>51t|%~AiupHcgs$IU(d_gw;D3+;IBkHx6T%B zcWTh?{!|dN%!c1SMKIr`4xe!6Th%Fl&>?C7dXG+`4cYlP@zF1oOxcW&7tBM|O-6J{ zf+W3s(hfc6T}SN&(hQkq1ezYIC~jKHx_5Mh0L*aHB>c)&W+_<=zpswqFie9@?pkDCaRey4%FtC^ zX|VF*Yev3^^JuPa$IKZ5^w-=&;+T09$C|!_^0+>HFn)$5@iDZ>0_eW`15ovcJEO!*hDSld7^=i| z9aA6)O5ac^qZU@m2cwb7eGJQ;25W3K6IcEJcoklkn3+<7tcM+8PUIUh zS=I*lFjNYKce`SD#1dRFZ;0V&g>2e|)x2lopJ8{%9BQ!J6z&<^#)p%lN!p{s?1u5B zIM6VRCgXLO`67Zj`u7^#IH3x~F``&~xtCcWIfC2W?CH*~l`ujI@Tx8Yxm9);sb>IP zGbD&=$Q1Crw;f(@UV(MhEaX^A@=We-LSZ*ma{t&J#$0j$AD|Ix9IV5(@OZkjL7s;0 zjAahYHDlK89K|{|6C>8{ghaD+Y|a+J`aWB7-bstdzVGF0*+-Jb@Lbk;<~VfxdJJZ- zw!qSu-K>sHJ;;9asf9X?brta&LI54WpKkS2PCH2LbP`;>ui$;hZ`f?dKk)r;N)D!(?W;1`qp#&4sj^-$Ya{W zrRkH+<0xk8OI~Q1)AS8`q{d5vd-j>2d#5uiJ##T_(Y7ZEf}9i5ax2;O&5`WVc?42( zP3X)}W9o7!6cRqYgW01;fXo$Z{&8(PE9)3QO@2hPV;tY`AtOw8tEzxo)%@n8-=fGe zp-g-^Zy0a&h%~goz&g02sjp{4@-t}k6Cpi;x zR8tyvtY1Y|+f_4*Zk>VjQ&}(`;!VcCtJ5i(Z*X%XkA4pL&5Qcwj5CaRw5H@VDRQi& zPxP+BGPirU%D4~TKUl`dy$Oeg$Q3ZIRYr~lcM|9G&FrAM9&Opc?Qc#C!So|@>AY9} zAlD`n1BD*b*xyBbpN2db9ry&kj_c`4&Tn?>pgEOS34rv2OGs{OH=2msv0pO;=8T+_ zgh%fd;n=HI`0v_t=BUCfTE6Nbh)!nVm8TP#Q@8_SWeMP@ud0?*BlvbmSPqV;JL`0*(RR&B1w+8|@>V&=mNB`vBM z?#7#*GlA%jwl@`AwICf+?m(~S2KxMg5KW)LM?X0M%voMcgBBm4I-M=lq)(Il%#)!` z?j=;WE{}Yw{S8^AEwIE~47FYy#Gv*XDE?H-zuGp9I4$*LX1QsQ6G;qxveA{i99RNv z1Bqn0csaSeCxt$hI7th$!^xS1Yq&JO6$~d`r1YWyZP_)6$mgDcn41-Z&$&qMTq|V@ z^(tU$_z4{F0J>4ZgXkrc!q(}BAQ< zcGlE!GU@QR0^cGk$erLpSh02^O#S&2c)Mqy%8^UNx4wgVKW%{B7v482&v}AAhs=q# zv^RXVP2!&@KSP|Pq_OYAPSlz&f$KJK?)NXJnI(Z`P$FbXr+BBbia%4?0~X3ei_7F0 zmU0}&A4dS*yWmQTIW%fwG{}*Axajt8v{)mGS+d?x+IJgnFG&V7;WJRV_1YHGMxV_4dytnaW^Hd$cKI143rdm_M*PP?X)t)RWE`)w3dE&+N;lM)9 zKfNLt_tuqjEMpN=(yoEsj|Z9KJ2dI`&$scL+anmteu8Us45>&2pDn%r2Y+nJMu{nl zA#^wALYC8|B1!_}`sWa~dyx%k@FUc}WIxnX@#ZsIT&Z1|ExBGoV9v??c#wo~e3paY ztM!(B;46!h@|WPr$v5zii6uMlpDp?tAHZWO7g=RxZEzn|pmML3!PjaE)tYEdel)Fy zNBXT$Q059<^1ZB(A!St$E@bAED3Hu=Zp=`{3fL|%otYY_g&mK)NJgJNwYb^G&#ilbL8&#|FtkOl@jE~nj5HK{DhrhX2feu zNW-5~zk$vkLQh|Kg;t4Wn9@_kc6;@~#(i=4Bcg^U%;os&KPNM9Ha4Phx-M z45^HEWCL2}fLVnL+5{hCeY8j6#O3?oQIJYUAIRXB7f+e$3O}ZOb^-sV+X*hy>B)Y0 zoIqbr9pt@{PUMeV`V7lW^vP$LOjcSYhMo(52+gBYFgA6N7yr}`-|>q$$BZgf|C2>V zG&V!2m^ppB?>e`~>;LiduD-!=vm{vh`6lR15+i<#op4&!Vw^0vo*C#V zsjHoIm~oEphSs+VTyA44>Lli1{|8HaG*gnBGEc!mm0j$|qq*$oL|sh0S;)SdFk ztCB+ZBoLM{rax9YW1jB>`YdoQ$Kd~i=g*li^WA6BK>I?Tp0FtDON=9z_QaltzWAa> zl_qf=ahuP3ST)YeFu1T33}J)|@t=c~9b@d;N1KW6jaghLuoNDY)-!K@rNZyfS1@aQ z6L~YY0p?!Y1|K=z+Z(XKQ}^;Qb+`~tHM!G=?yVrYa0p%p^*~E+0M`44khNU5vrAK& zvNsRHq(D*ndiHwaf8KyepT%+co|eMjIUC@^`#YF(qy&ZU=A$o@fyP+M+Uux7fu961 zP|@cH{(6W$*OH*GPY8~!u(Dk-Du@R!aM>#-MdG%62@V;hp|4pUbWkM+MrbK7eGf*o`pg$eeX?2t;@#AK4Vo(UaW9CGB=PPEKmLg#^tm*IA zLbg#|jtW#p!Xk$ts(HN&P8}_UqBlh#aP~4B|23ca_9zW=Zg%5`rT3x4xEG>%A$*03 zeN2XO2G?_c27bOT&|t+g>~I_d2M5Bi?gDN+%g_yR!4T`_h@Cz^ z(E6n)^@vm99XX%C+h81xiZ^80=gT4~@AW! zzUH+QX7e95xAJdnd5a|(hB&Tq55hlx;Sb(7qBpB0X=ubtR`r1ZJ$p=$_78EMUcL@7 z<~aJlUimO)@9$%+SvKB%aG1uv;_9GhIbN9{Hyd(NCWpei*~Xc3z(7R+6%6}9WylK} z){nxphgQ_ua{_*dktOvORwy%c8N3}M@#cnkY_aB9OljVXz8~J>i>$SD``L7QKgf)H ziRpqXc2`;D@dUQ-i6W%P*ud(VV)j;#9+_VGm`QplL>|Yh(2sp{fuAi0Ul%=rw>{$w z)Wt!$#tD4i9wvT|Vr++nta z5KewR!jDvTg1r?!^wgay-u~~+a4^S{IiK1I*H1M;>e`p+elC@Fw{aF_e;tN3hZFhv zVlim{riSC-{A&u!P{u{aPveQi2-Hgtf(>D_$eznXXeoRjQ(l$8+q0ar_SsYB;KmL{ zlw&_-KawL8(@Nmr3~_QmFEt3;Q9+%{Jlsuaoh{N@Ui zmSqsT-gB(z!z8dilnoP0l&JCIaU_M-G;8`z!u^@)1=k#YPFW1BT>lh9@2Jpyhkrm~ z=0*0`(0^p`Pa0gR(Qf{`Qv+A~aru;yN3eK6n7gLTu=vneBRgNIhQV?T5|~u%Q=>iO9dF7 zu7r>8$KgQz2`1bp8tYzL(|-rKY^v8c-g)AUFW4X&z;&x#S{8%i9!vW4i#hrZ{{X`S zp6HycLGG;6g&#Zgaq93GbjREx?}-zp$X2nIM_1xyg(DCuo+dz7axsU%Wn(?$*N!r`c(0-UXAAxkJ;JQ} zqJ*iE)y%`kf8c@g1*kRs0$M8$lk@(iq)2)$qoNT{Gi;h@C|rjn0~#pmB*eJP)g@cH zxbG8Lnil*L0+;Q?<9p1Bgv)uXYQ2t0KT^PM-A$&?{}lOJvw+;{Ur&FZ|BY{UdgD9Q zFgj^>80fthA*#vOkVy~BA35@f*ikREY?d?ubKbw-+wo;Da{J%zJErwqGs~6Z7CSunnrwv-HFJ~ zpER=KJl(lWkK9j=g%Op_P(QtkHgo&@T&Xy+CZUSl+;oC$UG|>2Ypg=jDy}eMQ)TJz zR}6h~H-mE!8j{D8`k34`BII+QA=qr-c403gDDkT$-+TVjqpN&ymHt60*TFfB{&M#h z8(sP*#E-R#3g>40W;Er(Rx09)(4>5^%WMQQO?e{w*roT}xi(~+Y-L?fPouz5{nJh+(ST;!ou zNG9?AR89Bwy5rrE0dO9Sz!~*%czi_@Bu)2Z&qv1)eAUgY+`zG|>zp_?+f&HO6$cyt zN(^t6#TGvnzQ+BBAD_A65zu2k+3$itRT+|QRDr1*Pe4WTZC0fx%C>ht$HD%5l;eeH zqP9jc@D$I2ht^sQSyRqCw00hrS1HopDjeg@J{`PyLS)a2spP6bEt3^1O8gC@aLe~N zW=h*QPko;g*zbx!?=nLgAU72{btjNe#Yt59=UjY$@*$MCuAu`ByYY>Z7kv66M+T>a z(}t9F5cR=|=Ne`W8WU3ZYv=Vq*(=dzn-op@Aua*7cYK4|x>}~Gb_+M7wE>I&B&czW z3+z#wPVJrEu@_eDNADkLaASco&R%}O$Lq@dq>Sey)tQu-M{(O-D-;bK?8rdE2?}8k8Tatm#SX-()?m+La=dKr5b>en58ybR4=rVo> z9?iRrH$<(l?S?I+=cq<%wcT+VRZp3bEAn3CP_O~{@OceAZTSse zY~w?>NeWN&*aA=t%ZAEr`ZP{Sjg@+0rc=QCf_bbzBYprm`ksz||Q6g=e zt_*?amhdl%8bgcZH!ioYhQD2kS$cOJmMFI4{zE^QQ1up+G&jQ4p*f_{{U5t>wj$ZN zD2X-KUH}8hui?qrOCXwhhPHoEX1*@cMA58c?D^Oxvx#_lRE!v9fpp7B_}UmQn9l-aN%BT__( z;{KjXrD0Yo8c2vrS}JLq5oLsol8huIE9?HAOOa?18AU0pQYmTtDuw^||Hz}Bcy-^d zbI#}Uey3XpqH}T<5#0WXeZ24`rvH6`DU2Oa{W6T}_#J5Ua0YSKTta)+FNTonPnc&D zfQGV_D5~OvnbXzq%g$JK?VhQ)EwT@u`KQBc7irQU7zC@Y_h5Uou&L7TeVE^p3q9T@ z@Nh>5c9hSDhI+~r)^$UUlOI`g^$83+RD)e`Gv|&*toD2c_PWv_(5lJCUiZRC^{G%O zcK}43-?G|~N#J%r2xO8O-kA3WRDUH!`7Jx)__vvrzOIvT>kehyCeVn=qq6J+#S3`E zM~Pmt)Wn11706pAf=7lp$KxliV^Y76y!dgMwY*aVXSBO`PksfGUh_M!|3EA+EoPX% zF-emAfOO&v`FQIFMlZ(bPTZRYbH?vx;bYcIis zL(`eBMU&|2eKKUj`dQ?i;&Ei;KS3}zrzy&aqDbouYBzfxbx;2RPAdDUR7w|I8xVA(1-mR$>%GGCgm-u9a@;~7Hi z6)4gF!z&*gpAsGHM1 z7bC)3`UjtsasR;z6ky!7kWspr3AfiJFhPE^Veb?LGC}G9%*&L)#xd> z1`Y1Mz?YLJGYfYc;32!YbjYxXnecKQ6$#DfT>%l|Gtm{g51t~EkKcx^tCr!rab0TN zc@=vfufrSvqB)MmVfET>o62lpR!{`vn~7>7}9U@4IG@B<#*~?@Y$MbH(uM zDi1n6EtuYZO!-+49zeN85MA}1fENwM4N1inPd8;_ymBagxndoeAsIm>9>uVS+Rsrd zlYTH2tHT{J-eC1Okoqadf#D9IJ{_af&-*<6PfU#NJZeMiUVZ|_l)YF~s6giA>s7sx zkL4K1mLU0E0{%EQDB6XEh{h`n!kyDj+jSu_(3>lLK%6o zCx}d!@EK^J+&X>@CnYNIHv3)x zkN1H*ucwa0S$|@cpwmNWmHo;uuu&x{C!XN1H*95r;TCwlx`=(KwU>17dCXqupG#XO z{Q=wX_2Bkn0n@#5J}TLtBE3G7NwxKN_Nd4@vgZ>^p4aHZ)u<@aI5!T)Lp!1Gz-pqm z{WOW%{Sp7`^`K|uIiqI+{QRK4vYYyR5;^LDS`O&b&-le2T^<-lMX z^;??Uol}qJ3+nNE;4Pxz?v9!7vS{(lIixC4iE*J97{P4r#yi!Hrc14X<12Ra7i_#w zhSw<&<--x!`{puS_!Ej#Di_dn|1j|RI1}tWmV=w05$xWzgk~g8#zPk>*-s%!s4cPq z=k-scg8r z3HuYtvI$mD<&{j!6zjlh^#mg8EJJ=?Jxk8o&ZCl}lX2jH1pZzxP8`x*z_{lDQyFc5 zS@tUQ;P%Iy^V5S|V)rqd|CUl?xm4<)rv*d0PPjRD5gdQLhxVE$(sd6)p>lOIGjKJQ zJouQvOg^!J2rIW^`b~ZEX8R)=n9xL2o87Rmkw;b!oP#fl6?ntwEcSjap-F1jh~dQh zH02nV@3L&6roTDIbaNAL^`1>6#Qy}lQ+14-S*1gtoKB~@$zkN;tuY)Lyh!X;MG(8l zZJ;+&0UEg_)av$f-mXpeQ1go&M*R5(56cb^*X)aMzxyKD+vyFSaf77b(MI~V_z5^J zjKryFmNch!BYApCiby7uvIaJ1$S=nny0Jr%9%m|$=1Gw&o3oKE-bcz6r6_aKhIjO# zEBkuiQ-~~?L&Nf8n1as;D_(K?)y|7J^O`jA;=H~^Npo=99wFFca1msd?I9Wy7Qq`| zHBvZ;@Z?P)d)Db13WSJJmm6o9^8&44AL$2`w|?Nvd$P>pa!2;^Mn%qzC(HR z6V5L!;$JzfM#Xi6(mUFBw| zFW^tKAn*P2lez|*~T8WW||vb)1HcfO%o~Ktp^q^lp&U@+>!lS!Ev2{i1vE3svobT z*AxpB+tFHSTE7UNx@psX>)q6A(>RoT(?H^5Nv7_yW0Y;?lFF)O=y+{EvutS~^PAfh z?5~an#b9r8*rNht+qzKX1E1VzqU;pk2;8wt3}4I~#lrJ9n6q9H{Mn+hNVqJ{lA=%y zj*JBVvsI9!pN;l`TnWaKM@DQGu`$kFj5x>J{(1BalNQmAQuEZIqM;0x>Y|A==T2y! z-iRBA|1y8-VohFbxCoTvqk7-FkLBVyl^^)#(6-PTrio3aqQ9Pi8=j&iTbC5UJE zDC?tl7cyNp6Y-xD=s!~)2_0W*>SqzgxL<1n!AMPFz2Xd=>~6~5$X8`&UyQ?wh%l^s za*~)2j4`3VQz_qG5-y!M2_@8l{8%xC2vwD{XG_O%p|=R}k2Z(NAqnUuRSHLTc;oG0 zZcchliO5Jid@?V@2MGrBf~F=}@ZKE1lWmO2{s0shZNrGij*RqzLUgo!%@%Eb#@;KY z+X-OJHzerVu18?8s1WKuHZiM871)u#)9HHl8_z207wcSphG(8w&jvPY!Zgulw$u6_ zyXO0K;7EZOdcBmjavMOI)+1PCl@HI_i%|WLDu%@-;)aj`w$&mXb($>cf1W;g>KvDNg?y1;|F7={*!4qavHaFPa}deHHpuX`%ro>3|72sVuvSLkzKz0 z$|T(}m=raY@W(RXZtzs>`}-S*XU~KtK@oCb;Uv1M?>tW9_{};(g`nDLLlyH0*({B? zh~v6!rYzoC!mw_4+{mjc%53I5hi!c+AY#JZ`XjkJN<=TNT)dSDY749Ai_gN_qlGZ< zR5#pr5k|k!f2{BQ47k=h3KPZ-GG(VEVRP~!8kx5gP16%V`J@8Qyc3DJd+bR^up0Y8 zD;yMTOz8&vAfPUo)A&;Hl*OzmL%5BSde6c|i6aM@YNX zjGkOig@d%PIR@p>&|*sC1MgvxwHcV}x{-=89_>z(L4n7C(5uVcMO+I|Y=1ZNE>3_r z%zDoJ=Msl&m-J!9oNRQfd&g)M--qw)L%QTa8J4hROnYq|lo(6W2K5OQhn~M;TUUxP z{QJ9DhLOcvfj8mXlWNp5&BDptPSVP1F5MV)l%2e&0B$@92gi_FX4_4c9Z4_XcNhf0 zKJIqmIc$hgUU5*IY=Iin+i~#a+BqgcrxGc?N`p6M31+Y(JLE`Zm>o9g zYoT#L0!)n*CcY-dc+|fF4<27lUgm|vH~bFU%)?=;PdE-$at^u0Zfvlr5viT{8?y`Y zA*)B9-dNzwe0|fwkdrKW&z2&+k$udq4+8WG=N#F`#=@&M9gb(OO^tu?=$Ed!q~UEi zMtKI~3PV8s0WMp;hr%NJQg+?;$>g%;ImRUDI`K#^VNGMNfUxB$NC;|V?25S@So8-r z_3sQ?1d(K!dM4`KtU;;EVwGp_Y-Q!#YH?yfAAVT<6V|E?vjZ{W)RR>v{forO+IC57 zGoDB_cv+FOi)9D-i)2dR%M^Bylbh;a_dIidu#*; zYz0~0;~wCuS;bFa?P$Z`bozNt1bnm5{+m!H z>>_yZ5cXR9<2|(G-inUmOwNxw-sbGL+-{I1nNim0x9A7SjT;1MC2{(yz?W<9LJDlxNCjGE4y z4^wpQ=>e^Fdewe1_Jsye3In`va40zmF1|~GcbkXs+2baXcrFW5JFb&i-_~H}UIvfppCz7!+b^5$bH}2uiGzmg?UShTlmXX}2m+)zoI;aMS5$~&UWP27pLzhRkL4m z-{+E~=Eqg;?zo<)tSToL2ej!W%?}vRmrXt$3ZgzQf|y69$;5uGDPwMu&!0ZUk=eQ{ zAEeyN=#2_fbpAj<-|Yw(Kd)~<*#8;o)eAQxt45ys7jXRF6W%TA8_lLBlsWh zBp$T|C=C!NGOhc_xOW1UOcFBtSqr(u^}HqNg2iCi_5oXij;#SK51 z7vT%Yon2Q*f8#91%iuqJ_%w{Xm%9u!d@U6*lc!Q#PVNjFNyg?q!D1C3S{W3~rs^pX zV@VmlWXeqP{T6q3zV`;*$998uh6g)xtQec#P9|Tc?q-e5^P$(H5#}%0%$Rd;yG5#J zsAb+$`q7$4N>0f^n0h$QlrN{>tb?h%Pd`~DTnQBiLrLRZU4HW@$MQ{Oi14AepmVIA zmT9Mw-4BaMu5Tt2x%&aQeBMMaJ8IJ6Iv;x9>MD6`EJdS37f^i>1?u7Zf|>X|kQTAF zred}gApWt6yjmN?etqprOOj6zqyOCT^;^ylmwlc*7p%a>{aeWUzuX(nHLp_p>^Z)H zXdsOA=aJoc2nuK0$-<+8mzXUFc7c%vPX+&Y$71h7R$S zc#7qkLb&>}B(ZOgVt-u{qRajc@n*Q>R4$Ww0)Gz5GcmkGGK(E#l#je;*Npyw!=>Gz z)+mp6&a7q%xBmmN`4Kp~o`Q;tCd%$vevOmHb zU;Q|X7OUK0M}C~?*VOsE8N3r%$}x47dTYV=vu?Pnr9};cWJ9rUX?GHg}bsn!gYGz2{S-d~fmX;22SulG=djI!qIB;_V2^EiE zf~(ESKhn3X<_ud5kA4k}0qdBN1qOIoR2635>VOh>tz}qJ4z^klyahdB)5PQ_a zKDqN3?>^HZE898eUFj;~_TwD%-W!HFwd$nylmo5SOTovkCXjdd6y998lzfYSj(4kV zXwHp~5Uy=Qx2R1bMC*gYnh*yMTy(;GpICW z2kx;gt5njv!s~cnj9Jb;at9Jvpm^2 zEtcKB{63U@u3?VbYfzU0ee&>dKDbC^aJ=5zY}eNNSZB0`zury>PimRNBXS;vnt1fK z=1-=@H5wT&^lN4C;^^=%NbrxTa%n}gc3e}m(K2yC-?3}u(@GX^Sq@qy+=tS%SB{shMVRfq373t`fQJZ6SSHhj-r&QuLs!)Co^=Cx@F zT9fZ}ua+ zMX$44XIWA5x(-*Erol@7XWUm}2x^jdD_0zs8FE1RDMnf^R+d{eQm&wAM`_ zDPI!dX2&j~)dFbCz|sl(>wqV!JgdT>bBhxMv$P`3CSsJ#l{GIi5&hqOEm3R9ul zTl3KQk{~&_HG=0GBu{i2HB4(oCs!6r>Cl1i#i-vMieW_@L#E&WFq$`jcX1CKofE-- zMkZqF-chJJnheKp4#C!rFYxWd9-3Vf4^s;s@Uu~!KGaf0mB={aVt<{ly+wvZBrSD zwk-kbR%L*cNi{0Zj>Nv6Cg!WtU0C!;5ksEnnr^uJj;kx;1)Y8G2XJ^_86Ib># z{hc#u^~>LEX#7q#(!GJ-^YJEX%{)c*UHzEY6#ATR3%Eue8}F`3YRt0czX8t*^dIrZ0Hd? z>Z`ksee9CQoE774ehpIK?u8MIf5=j!Vi!hHK?GXTD$xDWMH&tVhtbV~{B63RgKToGK>Z3m4B>quK-K3?bdfaM=C-rrZ-fOl{qDgSaE z4QGU7|5kr!W_77W*k<}fL5O}95GL(Dv3T%(Ca$#@Vn4{$FaaO6*dIAVOj4>Sxqe)f zK9~@PHNtJs$Q+>}a?#K^G6Z=74zP3OJYt_gt(iKkXGNb8lrD`p@0;U0@q zr5{6A&u;cb`+Vj~$!qw}s2MK3Rs~1Zc971$N(>~m>8*BIvrfnLcX$WCKBdZ4q1p0vyZja`><;0%keHVuIHs-<*Qa6Y@I)V}JFB1>+f09|YKlnq74Qd{VXVwmt z;gZ)LWWm8`yl|$08NRy)qou>CE(0}Ytte;RjF0ME7!M*%tnF{n6F05M zjIj`qTEvHbuY2@!*;aBTUyS|>cjBW8_deJ(1S=8*E6NAaR%6kBfbh242B4(vtN5M_yS-hWT$ zGF_i)XlcAEIyhNTr!;5$)7r&+>Al6}qaKjJ8*#9?%$4*VsD?t97|t6SPaFG>qVeP| z_7R>HTd>&THq3&|U! zB8FA?2Xe+0lUf9VB<) zGMPJJD~Z+p%-yxj(d=3#baKDjy8~a)V}BU$hejjLGVOtr@ns;aD-Qx!R+1T3k*rBd zAvJ6IO&@!Hh34PEAQxqfZgWDZS?~%v5W9~QTL}`6rXVuOHk!=-CqEU4N^T`E3n zF>xwM!+^iFWK~-TcK_|h-RJ`!t~p_P{UNetD3M(6T~AMN^TdWlJv7|J1g7@AV4aVC z;2kP0AzzKQkg5hNW|_khsQ;Y@ejNeCUm%92n6TWPo`u)`&odbWO9OoNC=MB&5oBhnK>Ff!#PY5_*}hDc7^N(syLkd+nPegBaIBF( zz;O&McoWH`!`dY0S}BgcDQ3n*Gx@XU$5t+0XAarAx4F;t0y@ugFUQC*Yq#K>v=y$A&crk+e`=pKgS0%i!5(XF zKd{^acNexYR*H&jyxuZq$C-FI`K6W}sQ%77aM^}7O0*f|ICt25RdESN(@yD8R z6je=!Z;O5+e`YXwxo^nyP+BRZM*o0eX-W8U;~FCqHxoozdA#*(Ev)$|gR&ei2D%Ru zp^~+HSSO0F6qYcKV}CGnLnJ=C+R9FPJe?i4J_~NG5^S-20EpGT1H%)i@dI_i)ZZ46 zT8MCG{XaIZVF6Kfp298}Nyc2i5ZvwmkNp>R8#4C=VcN69^o>jjv$nB|-*WW=)~uLD z7ccWe`GE}PqLCFZV|60uPz}V|d9}=EhX^XAdksI$I)E5WS+hej_;$$vG)-4yN4n?G z&b_tJHb0jn1rOqz#0(s^2xR9>NP(@Nl9@~ELm9iNk0Ds+H)`!vqK#`D$>CNlhHd)> z*550bhUxjHKNqM#Pa_|SzQxgLP2RA%?kA)*0h|mBhwN!8uK*-{Vd5{K%%L{)LZzHgM~EIUCOT zscv#R8^wf!us?PNRaeQvMg9_0u+W^X-#Z_}0^MMS)j^I?>cSqED#E`zb!q5CRZytS zt2`uc2f11tn>T4H>AQRfe+O*=2~~BnJbRdX>-xdAfFjtv&;WNj5V+r*3JGsBdCcb} zjF`JSTgBbFh9Z(-WvnVK7jR`-3)InWvNgCSt-<*8ON^eX6MU9D0D7F0Ct;N)rag5c zhgo~3?C}KH_C1m}{2W2YZw1Y0&Bg{5uIqcVlIOwfhd*_J;5tc^?3~sQ77;QiIJkrS zSegS8K|F}IQg^S7klVe3IB7oFtMB>N4CyZqt)_UZ*6}h+0b$c=il`p zQ@0-`!4J-3ifs^Xa0#ePZN1LV3we*3OL&;PzJt9hmWgWLRuR8ONeW`=yir|O&~I<# zx)E>C;dL7?hKQ1u&qi3A{E!(buHyxt?PUkF199U&4I))3$f!$RWHKbX;I6X?Gs4{D z`}+k`{l%srb2Sh?&3FYGXKZNt_f|-6+e)H0OH<>Eq8O;01bgPzvE;~Wwzo!w{))ZC zvpD1d?7{UgK6f5Y>GGm4-6H@mOoh)MfW%)3rS^~8Ip&cGIlaeNpUO1ABLs{0J5bTxBkbb-B$h9E65oVaUWsbjiRtv+iGhqM&Vxu``)-0$waE~`~Y65W$6(W0o81YZ;e9!EX zo`nVs=Q5hx$*#OEM)JOl!2Am%P&C~+&;zuj96{vtwjU&?p1`|<`4mbRelSr@QV z>x9onLXae#hWtslvG~9sl)koP2DN_T@S!jO?E|#Q)722zs)M{N?tc))wE$>ThDSTSU}MSam-L3@8$lcd5kMRf#UvjHeHl z`BT}}3Ai^%2?B15K*9>Ht9t4zQ9B_=>=w4Od|g*I?7}rXsr?&I*Bel?gL!1O^L*5t zB}mArWo(pD1KTdW7d`dfvg>vnC5r{isN(S;#)z9Eo{g^N+st~6JKKJMtjv6>>g_@l zThH^RW~Nc&vGaIdc?^Fa4u*qnHRQ!<4aPT%K8wIc zen|HT=5gm1=$i4H(Yw*W(^3s%kDsohEiH41lhG1duOet>VAY6=J$K>L7HcB#VH14& zl@Bjpjq+%;C`jylg)s-s*$rD&;QLGo)J(Gpn2Ng3BoUXJaOskNkp6HoxmYSskKYm`gMYa^RGT)jHcVx^Y8Qcv*E}NE$YS!; zP{KUSAiW>9kr!+bu{Zw+gG*+R(yZOYbaf{EEVGhIs4pf@?ONd_$8-IB^4DSkjsv-; zIe|WUE&_5I#bB=zM$9WM=*a8sDCS_y?Q5iIYNdc#>WoJCDm#PTRSl#SeI?9>-2)i5 zG8XzXQd$3uZ{XKe&jyP~Qq^q-`3AdQg4C}Fes6>gt1>Wv!EfYfDFrOfI0Kh6YvJEj zb*lGb0_jp(Pc7Elz)z0>z6f6%)Rt6J_MAHHJLW{!X@?MJkx4{)*pNQ`6a?)SEEzBB zgzmz3V8p$Hp7a-@LsB13e4K)VKR4swkbGvm+mY(l%p#}mO{L!Jf52Ipa5CZ3CHijs z89k_FO@{dYRqY9Ryu<&W_u>>zvn8o`2d0RH4@ z5u=WopmS~w6ZKS@TrgFlA7)74c)K0_Ql>zhcOIk{e>JjFrxV$E1rqe10tIl^Z6e&AB+`?4a1gc){u&3F1QFydVlK6RD zB-YJ3WP-&6y4%KytTkSa(o2y{;GCAa?{gvXxk$xgiB(uGCQCH@W3b@ADBd~ZN1``e z#ZR-{=&>*Nm__6sdc86x=Zid<^&jil364rcFG3u5E$8-b`-JHgi56HI5XabG_JA$# z7t)U93h?r}6u@4j^N%?FVX#)2S!d3odAwm`Ow|H@}0d+MT zhx)Vcadq8v(m&%H&b@gB4z5sx$`AdRAhd+qb2rahdi}iWv)5tgS`At(>WJZ24ilIB z0ycVo5_`KxndkJ$58K|Gv)6o`e6R_@j@^hW#*IK*P8>c|ITQZoD(tqF zqCB0+Ape+qKi%aR4BU5>bV>k|9(RBA^?4G#_Q?SM{BtD{X2q;fl?kyA zx8vV`B#(;2oWFCrC)8dpq*4>3StgZY5Z8%2D5J<8>xhMjg)MlN!7&l)ezwaLR6SWQ|6a5>avRrZE~auhOX=Tli|M^{TOsI-Dwb|| z3K92Lz<;fkKDl=x^nxOsTVzOL-l>xvk{OlX?+U?= z&>2wl{SPpOT<%}z3~e>L4;hL#Amnib6wa+h$JTCK5blEP_DW0@PQ}F>6Jz<*K++sD z0a*91kZjI_)MrzfV;|yiS7sLb^2v1^-692U8p8aB^=DbqAJ2E*v5cKjv=q1BD1zQy zUr_&h8qB(11h0QDVYW63fu19anjFTjZo&;bW+6n<6oSxUeKSZ+6d?0%{z47-kI5Pn zqSkmF>N$?n-^Kap$aO#-uegPd)dNrg0wkb55)UN_Q#02XFghblYV2218`B(aR-mwQ zL>yv_g)YVyN z<52?^PS!L?R-VXa9futK&v1XKAT>Qb%x0fU#Kt&DSbM6Eoj7e0tPn^<55s&ccM_z_ z@jUKu>qT4Z78tX803CMy%qJybs+8wN41c~w#Wo!{G}(%!5w(nstQ<^w0S^Nslz8YFP-B`{F#oQ)OG4XW`Z|?*vB0nY# zx|&6>{#P5DRZ#^cT>gGgQl1R2U4-!BBh2FWfscs<$FkL@BHVmhBdkEn!j^O1lq>L^ z=S{>t_VTvn%F!EM3Ty-44;L<74L$~EnB<2N>>Gt*(6!wTp+=MN(j*glSW^%VAI-wV zbY;xv`aFvg4?tsi3U~LE;M~Gjan;~@wDIjmTdOOm8ZwL3Je9@@XXrz$k{Xp9Q>EAT z8IX;SPr!?oUzKg$1B_ik3=GatAd`o~S#Kv%@_YX+esjQDQY|UN9EJ+c)vZgq4`{*e zyjRfiel6(@2_kX1tyr;5%*;k;6;%=>fwr?0vSCP79k!q;%>q{A&tC zANvN^-juQn+CRgbm!Ggk_d8QADNY@x%Tb?LH7-+fl-zPtr#;rQ$-PT+>5E1$`eb7# z9+1#P(SPE=yXHshyKjMqcoV2v$kCf+L5yzKBh(&U#-gnN$y`)~j|=*#`hqchoBoWS z+^Rw|AM4XQLjqLN=M0ul+F2DW;Y2#-a#spKH%7hbdv3Rkzl+8HWD|J@GS zkh33id@j-!={c}RP?P?Vjv;=P8_AwSdQ7CLD~OOIw1dxEqUs4kuP;xqDnI*0~e|avM**|AWb^moX;~BCME8s z3E8g1i*x+OIT>N|#!$K=rGyk{N8v5r9Gad~grgdBP>I_iOCK+WIU=Ft&0be{s1}aO z`)XiaYy?_u5nyLLjUd{mkMcc5m(ifMb@a;cE|PsLnVD6uL{=xsk{^@Y$%T>%B5qiU zlAL4BKeHM?7v<8vg!feDq$Y7oaYQWzS8lI#85*{SQ%0+R{`9TK;?vW}`j5LvTGc9C zP_0F`_+23~U)E43VPgO_j%{&0hvv>)NtGwAfGK0csA0VX+8mcN-9M+o?W4iqnQ1}4 zsMnapFI6SIJ2a>St$`y$eYitw7UeB1K;40Pr1Q*GTyZiCEL$#uQ?!1FA}yqkCN?>BOd2xJo4n*Z6vos@Q*w=IlXm42>mhMG(yX zSx%A^F3`QxlEM2j3j@ZR;Ig9yStQRR>vpNYYe!kKV0H?fn{W^hY~t?d4p$)iuLv>E zEdjiC0f(3ihvKEBqp<&w7c*b(4u~a*;`#bKrqCrATfdq^1lJe&$#v$oA5Oyhr(*QzQz0x| zat7EwZ5nYW2~RQqe=D1FJZZZPTIapqf&A*pko zT(vyjhmM;yLeS!92v|B`fdH?{nKM;dUl#ZnShyN?zKdqShyO+2|}68a^bulQ!N0@@y21fQijU>?2>*M^S6 z*Xy4k`iLpNPAU)6oXR<_^ioRFJJC;7g*fhdgNJ#uF;q&rvbnH~AAhL?T<18j>jX#n zfrZK_Rq_%HNi=*XT=#II81+c$hOCY$*p=OYvVIBliMR|YFyNRjA~Q(G#CuHlBpIS| zOaNQmXQD9%vQnScK&A$R+4_=XM^-*teRLumeVak{t{8xJc}X~JWQc!1r(wy&PW;m| zg)Scyrq4Qu_;LrhJ6ymWcFs>TqV#3}KD<4MW{*4|bV!TKuiStE-4Q_228se9IP*p# z)JH4O(AMeXdEG4(jQ)p#neoh+st6rP{|;q~_MyO}A1pKTI`b)c2MDTN;oP3}yyl4< zgS{t;E-c71eY2Un=}dXby-Az!%=j=X_tYBN9Q1Ho*edYQ%z$5~sxj1i56+iyV73e` zAosN0@uij~Fpo3AIfS9|OaXJh_!N;kJji9P)|1ic@uq#USI~zqMyj_cVA|gMG;`}8 zcHa42sFGg9)9<#RvWC}5M8$oaCTmV7=1u`7E(O@xoO5jE<|NdQj$?#u z`r+{TW-h97IreK}f>2iM2j11Yn40JPuwm~LW<2^jss`PHRo9i!Z2mUr%(6uNdDSR* z#TkBTUt&|I2ZK&v6)cRAB`a=sFd;7mxVh{UeezKkoD(*(+l)KW_;fb>ckV3OZl6bA zUHJo|6EpDNKX+`IpTKLm+Jz2WZ|D9;D-`mVMmK&S+gcyS90;38e!n>jZ)Ls6!K_Wh zLnjlwKbw$scNJl0z+$iztO7ZyG!X82!ra^L#eUl;4NlS_;BnfE<3LQI!>>2t<;2-! z%ogm z-?E3ihf7iz;}~ytAGgCk{@9f~t2E<2Qw)YJ5h4n^wlV>Af>`+rNqs5_}4o@-Xtw)}7Gedzk03AG8GyWA7SUT>D`?7#6qUiv&}m_;(im zeP;rzgRiiTQc-Y|X<*HrRfwx?AIx<#Wh3ri041|E#7uGkuGKB4B3!3zou(V95}H6O z*qg9(*&5z(n=!+@okjFlJ;T`}(s;%)mwoeX9<1@H#b3e8nS-|;!hgk9kg@a`T$r^9 zGWPjl%|$Cr_WKDRR|$cFv;fODFeRn2?r`XwI5E4y^>>&~b}>jX2iDw%oIn5Y&HECJ z^U7lM`V8skS82FMr2@QS>%mk19@c(e!K`UHiw)hn+}$>w$=#F0{$4$d3#%hwC$9s- zllvG|tsZtk^-1)ov!UX{Q{i>zBFvF|0}0NP;ka)K8po)xuP)i5!?7ex+V&R;&zQ15 z1smXN$0bHN?>#ssx}t|nKCIB`V1-rl@ZH^&SZDtTGZuH^A-_wI9~=+P!w!hk{PBzP z27D43$7Obsv2@uS!mGACfqe4 zgY&0@!l4InY=IveBsGOOawjn+@E@+KRDfr`kFa;+L&n6FV>R9lhvha zdrBNy7g@lg{rA|$$A3XFZaFdZ3C8l3VnnXa6NtlqOjk=P1m;dfLv=zXjLaj$y&XjU zzvsx0k~Yh%*CzhANBAorB$Fq*_R`YO5)58)gO=;aliEc}^u+BGr2WyW#nG?y$#km- zBHlEJ_h^sFTi@-}a8C#(Tu=eYkMiV6Jd3`ElDK<)F7hiT(4ppE_#YcdPoI?}3-y2D zo{Bm6k~1i9mx|K6IPTOxGrXa36^5PeVVl<&J!cZl_U{&^f}viZ%j)9CZ60*4 zx*GFfYFL%hA{$csEQZcd%R}*}(bP#k1u72ogU8Jpran-O2+yx$j~?C3>^057y+>_{ zW>z$M2DOupO>uB#3uQNSH^9M}Ct#y~DcKuT&r2v z;b|c(nf?um68yM)NEEmvU1N?m$?`(Zb&`hCOE|vf4{AS%CWBqpBz(~m=2qMV_P&G{ zUgUS;@mL3Vz9f`Y>-ir==N*>g+s5(IF72eLqJa`E>bcLWgeX)*NK#4}C9;L~kd~Gd zX(%)(CDn7ES4yIVWb-Q|sYu8Uz4!Zn$MGCT&$zGaJip)1=QQ%CHPg-w6#x8d1&{l? z!1vmEy6Kc2`Mgt(*K!4!#Gb`ON>_s}XnK!_KHlZLGMczFPKs(8FQ_%ti$-##2SgqF z`J#`C*duTL!m*4S@T)hDNVsx+6nhc;92Z6cl;wfRj=`^Ya@Y$Wx-e&rJn*^v|MOpW zh(MDWS@-uM+2CowzBXP*%F3Ex;FS?gIDCvwDU&Al(~mQL11Fd_iYc&)V+0tdj^V?e zI7~b>BJHls@@buwhz6*iD8W-WPdAo{!pd2C(NWqd)HF8uMP0WO_>TQ zpNG-SN6FuinK;zV_2Qq5Lul@LqS$Fi_}ve1`zs0hNc$Xrlk0UT-nf>?7QAK#6P|)? ziVK zQyieXSdaK;nW9B%AspT=ME}-mK;r6HBK$xT|cpX7=OajRG z7}wDeehYaDNxTbr_h7Kh7Brva(<9q&5hzWfW4}%@Ug`U;9lKV9?;noO`m;|;_=ghqvd+9Illgv6Y=|MjE zC!$H>Cp?F=IDOK%PL2q#*h8iahf^uZN@#5wz}E}XVS%+5DcJK5W-Z_p29hTsGX*%V ztU0ys^y65ag!87JfcZN(?^nMCRljgO8iAzYKZ81oMK4SMC zmS+!j&LeJ9Blz!6^}tElJ!sh{hOL$DxW#QDv1#qb*0n77Bq?B~&}Opn-3Iv4lEHXe zUS^e8gh=HuFc*H$PU0!T-ONSoflbS(+Spyx`D{(o>%19sQzeTz-ob=TchRvX2#?sh zvsNnWNmX+O&%LM_yDm`_?I{8KdzBC}WgeC48pEJNbK zrM1#zXS5F5aGCJ1{!dJMb}-J~e2h8kunvTspW<)Hd|2a~hbdLX=(O`Z`83wWY@KJs zw2!3W^H-0s?07NjpFG6ce4PPC1{a}RWi!|}C`7qv7WiK$@PgG$03@8kp25 zRaVfl4K)7$dFl% z+{iEO6`HwEqCYpB1iAbsD%5fTLl*1j zV2PF}Js;W(nOt93Z`ldfs3nZ+ulqoDnFqew?GDLmWi0u%3YTa#fM`GrJbI){IzyL2 z&B~XMZPS5r)!B@{OgStOasvVRlh9s2#1@Xthlh$Pm}<>~s;`sC*-}&HkGBHGscnTy zZ*8h!{0p+Kacq;j2RJUrPki;L83o}ZE4gP4OqZDq2d-}gc4Y}$xKoU3rdQR;ZI6La zqwA=)JQNCVCg67+CECCQG7cqE=-(eAcx-$NexEBsvjTNFHkdAiEbu_}RvsQ(DNKg{ z&H)i07uL^Fkcf;gCw((o`I6VAIY!%i=K7Bi#=F9U#2QKw^AnFj{$LcZHsuu5b~5Bv z>P7hBWJ>iOcC#X4I^c=>)L?4`oR<={NiY+BYU>Ki^j|aKl-oaZq_wfhjTc05}Z%6*X z!b?otbq}b$-OfB-au$;7!ccbMEZh_3LLx0hF}PlxmQ3FPktY@+lP*K-jWnpmgSYr~ zOp_7&WkAx~wP?jkYrb+(Ha|`C1Ws4soHgA0=5RxhXpEia-%XXHuXFuj|1LhPKDQ3s zjQ8V~8N28qaAGh27-Ag5t6^Y#5@iZ+;EsjI@r)(Gqc0Tbk#)JCmwAE9xjyD~REjYd z%#!i;G9(Y61~T`iVXs^Qcedf6Rq19@NqDKlZv_A?zFkCgDycUMrSmg==|`dn6VgJ?9v( zc`KlH)q6&MH9%N@3q&ev(Iu;rNbmey@GlP|i5}jJ&B8BW$<3jgD=KhijR!1{ypOhz zTHw)YB^3Ycgr@~FG1pO?X3jIi=a!zh=}{a_yuT0ER&cH2-aHty=oCF4_`fT_|oo^7HTYW<4DBO?=GOSm&M=vz^_C2Bmq{fimbv{}6PjA^ui z`|XMN{0#g{x%1918!FPRhnhdHg2J9rUa!$4*fmR!tY|jI;Z=)CirrOyXH^;dh_xe+ zR0^RbT9vrR&mzZjs!7-2HB0~r>yo<-GZO;c!-%v5^jc0B1jKZAbj z*TJ~)JJ?~flEiGYCi%T}?ADZfJiD9~m@c-NUQU{caXo>Yt1*+#Z82vemmXqwL@%bD z0`H;!XB=HwGr)6ooJW5=8ev>BR}lFVi%H#TajI|Ng*hG(@ zEYj%Xy~3nqksmXT#}(8h%5 zoX%jLZ&aX9?mE#gdQnV<%x|nLd`!wmDw)_NHz94WCh=7DC(3bOL7dCdx76Q;|8DbW zPU!$1?^R)!`G~WoJ(Fp+#Q7;#uD(0geqBKuSTAa zKZXMj^=P^IPI78#8?0;6@|WjVf>dR6RT$_knvHrzFg)zo;8vq z+k}VN@XP1f{5?x(<-wW6-sC3qyx1D#1A^#4wK^&IDMi*PXTp+lOQyhpyH_W< zf%}aj`iy&xbypLKpVMBt&##EiZxpYWJ#Il9JllcW$k0MTGa|Nh2|?9#SSq@mxNn?J znD85z^lTIH?z#ZxA9S#AWcdobSrGS;YUm@1=f{wOgHPzStO5w-9EL;RmP4!n@F)DZ0e%Pe(4WRlWUxe# zo|x=QzZ`TS*}!p5ewUD2-x`Tau@dhFqeqHK54Dvz&fa@qNc1Wn;YR=YTmAyGHdC4`bBghv%RScw{&4JzDtIv@MEcYY z@^#7|qTO6ATOOZAOo5Gx5;^=-?5&j&k;CY_f!+XFn zK->dV=}G20w4C|@VH2IH(Zv+B(<*`F+so;fu$}11pTOJ>6DKE9;_*PBGxVga!_MDL zFnRB6{1}?WLaKVYc~FA(J53qI@y*QZfz7x* z{!iVS%6mM28E-~KJqn+<&S35o%F=b*Y+HM6CMKn4fW`3;Tw$$5rvI~p!`5|mc@_7V z$wgFI1}U%TbC*9VwwJz?bOjH7fe$C~e$p^XKK9x#>~!0!I2$}Bnl z9F!f?K-W18kH;8*NV+&#Ha!kED(|5}Mnd$>6n83BYyx`^wSahwDx=&%Xqzh6Tg^X- z{LH&jZ zcy8v{`s?(tb=M1K;?}<)aX}I`=uLpFm(}YQxcK01ktvM-(oZm9Lm+03Uu2rZn%Ivs zoA}S(tCOO%L$G8<7QG``$wcXgFxP_K;l|#T%mc0`{kxDmEBouw&x+~D^D~0>2S%iE zzYKZfIEacLcG3g8n}GrnlqbH5 z0yKEgi1|J~f%6H>;TYNqKD~o5!-z+GK7QaYiBqA!wVdlt zYvscy8=z*&+wq6q0?ttyLGY+y{-O`#-G=^XHnhqD`U8Mt?Bs@acU4GS{zE7*41v_m z^FY;3kPZhbG1o$mfTwa5$jz(ZoE#-kW4s64Ro9TC4g)aoQ=SfPDd%S160}t!3I8j< z0H(L=@Ok@8j&)@K1;PIy$mJjV0p`RFJ}25iH*&O)hsO!sZK0L3^JN zeQ0z5zL;B)vfoM6;FStl$>n~kp8sSHai75v2O(Pa#1+&7qZwEa<0SS=e zDbV#?M#^<=GPL_NG9v;qWHIMXNVYFyz6h&gg~k?Uf#El7SsZD(c3vfZFL{FRPNreV zYHgBIrVo)DOlf0`Bjq2t#w)1sr?XP+agR#?s$3I;yp0mHxcVSu?7hM^smHQyBID?v z`UXn%li{;i22}3)42LX(QS$jTa_C+svr$r?)SPc&m6psUa=3{8dMHZo?keTad{m8j zyekl(5s&Frk(d;&ON(ck(=VRYs2IJGez9Lfhb+Qy|7aNh`?puvyIG0IKA*sGOJ2cS z-Y={%wIL60m1FgwJTV;ApxuX*AyVC((%J;Id3s_ z@E04@&viI%2B7@TPpGc=0B9+Nr6Vf9=zQf%?A9lO18cdgd?Pwvj)taLrgU-dJrule z3^M9hKvPx})U)e)CzB&_t6|uW<5+z#fd@A>qqFV;vb!-I zR1ZjzU5SHMGeZ5zU2#P`vRu&GFzGO93kiWMi^hpIDpU86SX%UIFSR|#<(>XavT{!3 z?q73S*o6wJ)KXZK41RdUoe`ulc?OGxmxuZLI3DjAkNt!vQOs7nPhq~RkHM?w2~4Kt z9Ns=fA(~=d1dq3w)0tIY*@1u3L~eTxBx^orU(asG#*is^uj>xnl-t49&g!NgLy}od zwFr8@DF;=oR-uN47rn;gcuKWC_4QM7$OjEy+^jc-d;g74X~{m`&FO3L@}5Z~SEvho zee!WAM4lP$s-`c$&ms1G)2Z}82QiTQ2dDO=vdtD7$>m5dh*CTUH!J?(Aa@rzG~JKh zUCpE9P8+HRZRA}k@S&e|rD(r{E!n2Q(m6)TVEE}K&glw*t=+lgazPKHX&gq|A7v5q zhaX7LdwDV;Vgr6Hlce@}jc_zNf$>iN3EfAQ(}}62w36EmH!5r(GOj~RPn8uF`=n1U zaJ-gdIy=Ba&N{NRaV89H(`5_)8^v&rkyqY$jnVt(PXb$Z6Q!IcxSr!c zbe5HahqM6+9;^jj*=+jMe=UA-Faz)PfX|NElKCr2$)(r>^o!ay`YqxvUd!W{6;W3B zN=^ix@BR-BiguE(_KWMZMQg}wL0#hbMx)ZcFc+figM6}xF2fw>c!Hq3n zutNC^hH37BvZ!f)a|L5PQ)8N+6E9~OG^Xa#(mfR)|pA(4fy~89x{Wys{Z9$#3%!4_CxmZ4J2JNjWA`h076Xw7NF1N4? zJX9N?CP10a)vTgjXJ(N*1xOEA7%_V?ylAV{bvC+LoaW3BA)jMR>25EUsJ9u?>HD*( z&c|NppPN9_4dRHka|lQV5D=KV06Q2+%nGtW~Sd_&TRdIY+?#?qDC0woo(pe zuv9#$T?fSr@}M`>gIw&%i9<26u*&hDi&sx_B>C9`6J1!K*N#q=lLI z`7jo4O+-#aLl54$!l>sjfRvRkP-7rZUMEhZd3oO;nBByP)+7SWFu~uG9AI+(S(v2r z7ax~%jE&TpM600@Q)VXPGm|xpwU;He&sC&%W6PP34~9YD{U_9z&7GC|uHrdwadL3O zY?La^g}Pv2>qHJ0ouS_lyUK(tHDcf{uQ}heoOC?DPYh$pxTm!FaH1hk-NPt?P z1uw`vnRy@T$F6ubhR+`Mp}VyMtG1>K)qixe7iu)wFPy_l`sY!0@uniC@{A7Ks(G35 z*=9y8xLH-I*bGd4xEF7zodm1FKG5zcD1kw zS?JJVncR1wObPV@oE=Qtbs-7_nK;nX#pj zr0!T9c=XP|xoJ)8#4Uc%E;hpT^d?Z74<0D1T?T2&D{w`R5&gRAB7N?f1v6P-?3YTA z%=GWDbEh477jTPlJ+lY#wmKT_bp{Dx0jB@0Gg;}?hF=85*#8tS63-*2fccaJ8o4*w z7f(4J*6mYlkeoN3YW%|-8JYl>PnCl1whkCD5G12%`@pMI883_r5JA&Ta9Z^i%r$i) zhM^BZ?iJa=%EUZCH?k2iu}&w z_r7U|64nBbhYLVRfjj;G-0^Y1B>c4MJjREOvL+!R*eUlO_@C2px78^0(Fn|6v;a?T zF2>usBCK`bdh*X>J17Zfv86XCFI)UIYOIMwzXSV81_~q3Mw;1ac@Z_sIDgJ7W3pPC z4_no9Xo8n6I8HnWXNPrA+g1a!R_!7R%TJ*EW<9#l>n7{|v=hH`U9OiM4kWIN<4|As zqrPu7h=)KdlSNyY8z-uP9NvTb!ozUFtuv&2jUiT5B;x^YcPiss4SD~)#mc_3OsDT0 zvQ%y|6&Wyx9jdChAtSkt*ISGyELi9)(?G$AcR`!H02SXND^Ilu=AjD528tSIstT^) z2Z?czIj8_Hcw1qs!~`r*MRDlcof;p@pzR92}{z0cQpstl=Ii{*2PO`r>zUx zM;RR0&v~SK$N52A4$;_s7B&|xgvuXZ!TFmcY3mWgxD`TlwAi1WZ5#w;Pj};?f}^;3 z{3k{=9mCPzFQLQv0$v=LheI!h@ykCGTKH-lrMgntKs!my=qLcwXjfKsh9=|jCJNV| zTu$~?yOWgq9lSLT%4oEz5%6^ie^2BV@?XtqP<^b-ye+AOsTXY^J^2sBwFnX+^rb3R zUJ&q~3YpK%)PzoIRtGeMtiz2N_mLpC<-Y{Dv1%`5tLFY+zDgo<3 zLNJ0doaXGlvv)XfghOyxZ_SWGpZ3Z|j7EcDH3(#G1 zB2Efm7@-dd=-*$1U+Zj{$6KQCj#nEG7i!Q&hxKr9(hn`LJa$YVxm2O}~lO^Cv${KXG|AD<}V|+KU3B=>aL9pWZ65F}6 z?GL+$Z04`IoF}pXUH&eD9fPTi)#Zt_(W(T*7OV$h>2kDF)Szdg&%mUOs&yjkl|jZ` zjTjd{N6+P9Wa6brwzz#3Ih`J0RW_zWY66VtZ-F!nYWM;nx|$p(LX_y*-R0-lmE%1_ zXErE`n>EWcV8^;L6ctON(vhi5-Nz6JeDBMAyQBs!5*0ALDh+<7O7Lj97}1|Af{Xf% zNxb$KwC*HeTeXTWl_EoK@4N&`3dZ;>H-n1bo=>y|JTRaHF=J#qmTY(oDMjw=oLxoi zLvtO%g#2PfJA&Z4y&;&^eJM z2ld-=d!v|j(3#c5C`N<03Em<<#`9@OxD+jkRG^B5+T?kb7X5TXn2jm91F0)wAun|o zk!>ezcgT{8_Ew--a|V`&`jSj8D_+$b24}Bagx;)0OkC>-WWKJXftoYO)9)*& zo7Pe^RMOrMUBPcNuxHXag1;45UK$ zdCZBBh!z4T1337T*y7cA1IkCLXN(j04u_!piWVe2%qCv z>1(=Jv91+F!Dtp;#qqyaF04TbOGnr%ycgfpZNZAa4y3}OjTn5n$t2G7CzrfbNkP2@ zofI~cl=SvOZQ39j8_z?9-KX%U=SL{CItiyo1Bk~36I|dIMffO2_DZcH9uXVJilAF` z?6@S2AG!bo^CgIF#C}YuMH0MUo{C*{rQ!-^)NgPRJU?Iw5*H2dnCe8jUYbW99=Qza z$4-%nr|rlp%h}X;O$e2oxDU+!#9;7jDY$fe5L}{ZpZjIsC$CPCj(ap9F!<1q{F62y>gbU8==g@_f}>jCi{agldX;bCf?)iSfl; zrhX;u{wPiCp35^0wsG_myNUQI#Dk|%KWu2^dd)LbY2eNboV8^OJPKXTpDSz(6A~xU ze}h{feQg$=8kEHplT=LHegj1J{-v85PtuCi3KCj%7pkuXgN|r3-N#d=&rU{=n7j65 zl0pZ32t5Ihs&&~>=_qK`(?<)@?KE{qJ<%;`g*hFIiBnc2yx3a7JD$E3)pVR_`5a?% z`*Z@`HnfnzwN=4mh`?&8T#P)qj+lJYC4StFB(KkgyvyfyYjOdkFLXAw%;^Tf zB|TR1SxYhU*=&-%+yX6MPoaCg{UG{N2rb7cbjvJm$0!p70rLZh=>NH0g(}p~v5{zf zoPa-cyzs1?GF5!*3oA9Y!mMBCk#kw%{x3tkwPHQkob8MCK0BabU_DDG`;%DCxo8>| zP3qV0$9?}^<3{5?*zK!|g+CMEDaTv8AzlyN(pRwmmnFN|^8?bA*9qUay{Bk&) z{LUqG(yUXk#IpepnO=b6i0M=|hd|r=6>x^@zh9F)kH^0mutpojP)zM4hHkN>axX+_ zwv8oS9C(-G7Tb`~cbc?cRe-Ka+lqJUma+y8SBTqOuBTvRg<6@y*l9>eqtS1^ud*oZ zKVQ!O7C8vpr{yzkFPhQ+^CFsQaTWxGWZA+GRS-R|pSdH$afkXpGo!W9O#0&meARk0 zxN5i+kGZOoS`EYkwG{O13MY>t3~dXKz&lIib!=FUTH-P^lPc zAVaG|RH0eb3e`JANr#LUHTCXCS;d98Xtp*4dfbI5GaXtYzzwhGbyWS*UOon=UE=M(~?Xc?AU6A4mmW;<8So~=pHh8D7=O(CO?8ii6 zr+5Q5c;(=3-4n3w|5;vlKQigfX}H(_9*s@x=(!y;c#&f<{Hm>!;oG$;i2b+?1*(i` z=B=wl(oz&sR&i|4XpZHwcL)>$e&ge~Vid5QfF~q3p=NC(x{X!iO4paTZ5`)V=o^Kp zRdF~fD@kG#+Tg)KH{3Bck?bC}VJ_@S0wczPMw~kex>ZT=j^ohWPSJzz1WSlh+d+Jn z@tM_AwP;oBbYi+Q7ixq%Y-M?A58(BuMzHeq=0_U^BwoE4gQv#haVZ`>mQk!F4vow5P+2 zr+@L8s1Ei2eVx7jKA04Z3*yd;J^&>>Ab4snSpR&7R|_s+qJIv0aqM+7vffIQ<1Gt~ zG=k>MNH)JugARy)1md$8k{9iT6V7*_;Istdfyw0fvLDPqVJ6HPR|JQ5|3O@uE$n@E z9aQ%Qk{9bIVXBWi>-_5?rmT9!ANe+gy!gEhDZ7y9S6af%CQ(>*&F$HTt3i`W-5 ziNr1sBqE`{n0M_Rmr;8Odt}_1H!Wq@^~at4lP*nWtrVlN?svh%)sTNoN07?&`jFQX zkKjj%V(_nJP-kBmgv?076ZU>6y`U1LgTkO+av|tv|KoWy9K|mdt1wM^HaU4u1(Sb> z(*LIGfq=9zU10nSIxOljCrq0@l=Oghfgf;0Kp*ezi002TQ9-5Y9XR^goW5FB0_TRT zL7|kpKd%;Jp6=Yqzi~AiF4%FOU-3OK*)Wt|kClNZcno4EUxlgf=3~wI`8Ya%90Ox? zVPcgX+TQA6y7m89-IFdwqoQE;`KEj(PzkZzG>5mUK>#K@%Yw9W6y~bsfJA&GZ=sDm zc`S4Wk3Q^zAGcPr+c&qchIt*R{p1`ttvmrkZFA{8?rw)iO!%`;sMGZ0as1!sD>#Pt zI#AylkES<}T{Acf_BFAj z*|08Wj-PFU%P(BOlWts=P^}!kPmafn+%xUiK5vLo8D^d;s?&{2lzA)4PT(#bE8@6m z4ba8*;NQ1`Pay&Z?>3QI82mtS@!Tt8Iu3q zgS_n1ri}C{>QNpuodvj4xSS#+B%^OL6z7LFSvj5M8$`0^j=` zqeaRKtyUDj;o=y6Ddsga2My_52wEbow-h#2eIHQ(yxIs+{}F| zJpDQbSo@AdR9ivUnRBQt|Au4+3t9j5y^oTPGHif*IJgT>r;DalqR6FU)_I#GiOG?! zuWp$_%tcaRf75KTL^_UIiR!V>3O8Vwv^UY~5GK!Nm*c9wt<=m&oP02z#)m1pY3+F* zberG{dSas}{Wc%#Vyn@jpt7zoO_{JA8N_dgB3_W9@U!WF z|5hnl;h#tnu11h6PeO^~2Pv{rnuPasX0)(vfv7@vV3`NdBm9`VrGBalR=s~|9QYOb;2Y9Da zp3@?wr!-o^gcQ!c!XCQl%A2^Lm!1p1f}W3;6Hx;*qJNdKG zr~$e~E17Is-vSw1yCFtP09Gn-eXHyvP_4zMm#4*X^Ot2b{6jh0vjXV;DJ8hQrH%RT z#{x2X{sGRYsUWQlbr?E3iSF*)jLVeV=%T@wB(bxUh%X4hZK0_|Uui;pH+!D`Iq@H_ zRc9^E8-7L-Qwli0{7T5|z70oa)v}d)x05pO0QzL)I6S|ph(6o2Nk4m*Tp1W(US+6( ztbiZU5NO2Jw?ydc1`j-AUyMpc(s(d(I$?h=qd%ryA-_T_=(WK4Aek_VgT*2sw}wLK zfkO7%>vgy^q!_Mw%%@_y{>;ZIhHQ#LE=sQF_P$$X=#D)uWU=fYxW3v5-InN(CSiRT z9&KZ5HA()Zy_h{+U_9Jn=wL zl3u1j#b*CyYB%TLe%I$P?}9NbTD9nE{tESalizEpz@;BhvQ?SXt{Om@9U}DRHZjuh zhLak;&c!^zgE%l$KQH5b3aT#41bG^cR~nx%;ip$J%Q_8d^+ZjgqPm^y>DFVu)kVC& z*`4GCYqF{@x$L2M5}I!;g|!{kpd_lv<>;chd{GGWac9G4S0}-Vf(}fHn@aMRwqTLh z7+7C=2OBROgCda@USh-$oWFjD-g%K0M z-RQgEJg!+D$7Y?12AlGpy1F_qOg9V1yf;Ib<7`4?mz?9=?b39Afiw*|n1~}UA42e# z%k0aV_X@25BY&c93SWSs*||eMvcUXzC)u0 zBY1FXAbFbL#?Ss+jd7QbVXM0?|HUC~Dy1-;RqCn$i5FWjNo5BFt4Nb)9K%&7q=B_} zUBe2vX_2J@BJ3sEVJNRqARWTfh{APiDmkad>ifA^R)yo%^uA1D^C}B)|Arhm+!4;2 z=6I5^FYhq(`Yt@bMgsm_8iKX)gh)#Jqk0neJ6G>Z@BMj?;?M#n+@suyRtub)?YB8u@%r3`qM1&8;dlaatuzG0wxjI0Z(ocRv2|`wz~wi-FyyOU(X= z7Fc#EgxOQ@6LPMf0(=(*{ofinpN}yaHt6Ed<<2qXHj%7Das{hvrh2VDEqKX!?&YSUyQdv~Fmb_~iK}Rd?LO9QqX<1aNsZ3j@D0ab zBJ*T03c{P#;IrMzr1;n_SUSZ48p`-kK5;$Cvkix%29%w0f!llUE=SMuaX6@JMecr_ zOzxCRLSOrHHty|j(B33Pyjor%Z*C0S%q?O9t}lVpx-Zxyzm-sWvx$Gsqyy9LzCas~ zY>b~`NKTIQv9lB7AbRuxJ9B~*+?tt%$3)t3^G7utJ>1I(>x|;TZIm(lc?&!=jx)hW z#@T!~3vxonj1{wsfZNZuL(Rm=^w*FGcu^TrM61{}L(C?1T{#-M6v z1FrBX1=|xjd}T{d67Spt&ZDbw*-cq8Z`UBdb+!_j>MBR(yVf!;y;Eu5?G{M*r9z@t z@_BBDd%*gTIvGB-4qx96M#b|#S>u(yuvj|> z+;ir73D?0M#r3OV*fQNz{AJ3qp#H{#sjCd}ojeUL375b%Zm#+BfGAC<>EL&c-+)I^ z5zMW33gmEmBD(eOVcbio-HwV5Ti zXMm8gF=YAQ=h>va=RZ2O5oZ>s;j8RQ_+yy>^^NNMyQR&T^ZpT(rwY*6aeq`en}rc7 zmbAO(I4pcH53Vq+kQ&I%9op=%>#iVGTWv|JQgm6DiYR(%k|1sSa}BJz*MfW5PLwxV z0Ga2q7^^84xGrxyI=}h=Ne(e6*0LBb>Aq&7&RX%p0=E;X((7nbmkEx)9oW9F^U2u3 zW;{MFjgch?*;i%ZU=AU+OXAtZvRBZ?Pn_1kA1tfb1)Jn6*_SfG^ta=zy31=_@oo#p zfbSW>8TY1;?fcZoya8J_=z%)9Vpz=%zmy_Vf9unl(i|Y)e=}W)T4b~7RJeM6GFpF# zq$yrDB#zrpGto-4*`1Hu|EQ7cyHDV+o)~U6`~>>G1T&`cPITce5i)&GIBd8VY$dSx z6uy~xlO5si3wBEHA^La-#9zJ1Uq9cHR9sgk>c&E}XZ3!(q$@%%e7M6WlYcN_PIdS@ z{{=1!ddBmTF~LxQN=$kyNq=~7bI8>SAm+Q41{_hMUp@yw<4ZFbzt|1u{hn|=n`Ydy zbsmXLUTC#iSB@|Fhext^=QBmu=Yj`!zE%hxAVIzZc;83LTCMve$=vS)pK7v5ka;B) zyS54sd7MPAxND4Oq&-!b_L;Xl!iHqHr|{Z1*R%gRC!%e78=qA9QrnN^7_*<7t!;}T zPjiqqUG<>PH@naz@5k8m-N8?=-g#a3m-9986Zim zF1-aom*bdW)JDzBj==R}C$V%-EmR&HXG-0&sQr&ujC1SO`V%(7)*mfDVPtgz#Gkmv zrlw6tE3wZwe^nv5h=JIyXO1$NZ%{9A4NXaDBBA0y+s(QB`_~h&H0vE`S1%;9UPh3H zgiRO#58&{W9i->IIqfTvr(drAf@-VvG(*aS`Soos{c(Fb+17oAhQ0fM<1;hKpm{v@ zRL8*WqzGnw+DH2Cs(^L+Wieu2dkjp&&!fW0LH6+Z)l|VP5{C=FgHqmiT-Osr8&`_s zC8I;Y?+_=y2Ub!HdjKVECoEkI&huW(;8w|3qwva~$LMn;pL|?#8>5B&@zx_k3S~#( zL8c~z^!tC3@);oHI!-Q?8IYyRhgr=cTQWAKl#ajlruF9Lq^;D1?&&bXZ;AU+xyOvX zI(&!Hz?qFWcFM+8x%OEk< zhI|sP=J|GV=lebbZvX91_x*B#+<`fuv?H4)Z?>diLmITF=r|l_g&?Z@DE+@LcjV1( z5`jnXU3da^+h4%OmMSJ|hXiRm#CbaI2*b9^`lS5JT6|P1O4isNrJa86FfD2reuqC{ z($o0#+G%xKnwyC&a|{UiQcdS>*-Mw-Pb1Qb$?WpqndId2CwSH{6A#_oMV^0;g>0b+ zDqw<~ljJ>wd;f-6lPB;!qgwfgbAs60>&dq18bCwqO?p)Rn=u zLvvNUbkX(D?|oNo7;O*{&v>9Sys=kskP+5UNmIk~V5Bpycd~)oTI$X};@`jxA>#r4qZ$|%vJ56PH zZKeRdTepUXSo`YNUCS1im&s4U5lC!uBaq==pRi*q`DYU&*3$&Vi%k z{hBPMc&RHd$#D^0zTXN05?K)KN{G}%y*hXE#ca3D7mV)_A#H2N*rdHWjJ9DZJ5PQo zIa}<7Dc^PBbgL|H;{-)KYszQ9F#vlzOTlDR9MfAZ>G7g#_%(Gk{r*vyT&$~sB_^?0 z$aN!cD!hQ(8Ul>-KXI~)<7P7%*HKzP5boKi67xMAtH|Iz=Kr){Y+Izr7sXP1FEPY0 z=1Fvz>*F?GbisWGB*N2i@U8 za3V2!U;U`uS0vB)VL4##D~S7%jZBkaGPEvBr==XO5C^{laEY2Jx0VE#(OqQp2_T7btvi-~zvn{Dthg@G;gjQgBOdd^;!23@hiqV_1bvPv9}8wwE%2X0P(eGTp3a-DrO zvIe_K9ms+au1oP{9j4W}P)Gkukm;mD#ycKEuf-k+v>m~t{b4vy<1EPuSBI#z*HJ9y zHQIDplK%8J%t2l<4u@QX8~-+fZuUZud?!psecs^mYq2=VbC~u0=grEAOlLp)+<<`A zMY!h6Trz*G0N!bF4h>E+UesX?MtK5cdQCYqW%?UlL*xG_IupN|zAg@zG|wZI(x5a* zl%eifTgWUzi4^^mR47GKD3zg6kw&Gt6wMjxp0z`iq9{a?kTOO}NWy#G|KNV^boO5B z`+Xia440cqHi#}GjU1coqLv1ERnZ2?XHGL;uK+cgGnv}H?XjHk@)k-|hvT1R^XSQ< zC6@2vo-*FC*IJ+&ev#mHVfje zzh`sbeZ?&Y3h~uTQQGIEiZA?S=ta&At!fd(#8%3a^ydtF;LA7Ovf5nm*7YJ|1#RH5 zaw@;)`ac+}5}>zTUO~tHV^DMW5jWW@WID>ZnQloZ)NSa7M|Ul#9eWO^epG@#~p$Z29d7a<_RlnWCtG`k4lhRmaD^WjAp|W*C)cZ0Aeo zb?~B9W`J#uX>H=l`|P_wBhFDjkqKUC0uSaT;_2trp#SGJ+xz)HR13@pffir(UfCaf zbjuM#%IjgHqYhZM#F2>)CzEWU5YEe%j0er%qW@43JFh^M)Sij8>=9i-wpnT6{ihnZ zUUnE&<_3c2@XF z*XC<-jLu2RIREk$agdT)g05^gK00@cNu2NiUhUICV~#z(FU^JOdHuCG`zsDV9?)W4 z7hT}@X$Y|mj{Q7N1p+6gtJ1&q_N>asF*Zfx6}vev6j$aca$0!{>^}LDeOv5Bh{0Nb zSROt(V-AP6SwWb<7l<7Ai0h?SgN))soOx#gP0p!cd#DPjOWhAW-s1FN!6w>&V-9gO zwx9v)iy_HPl7@J+qJ-pCtXb;^WK}LtBtHXQNomt-YhM6;RRitzb@0?&f^`wh$MEiq z+QR1(8E>tVWH`J8bPMC5CFdiG7Tjiax*a%QiW*h$j)OT-^XYFndHQYsGahUgL>Flx zNORSuN^pq&ii>5?%K%f(PD9(#t?+QMJdruWd9085;?w61@HjORd>)08mWsu=ZQE3m zYI+XLnm8wYp9Bn?zm4{s`)`-PRFYmKMs2ux-r-w{|xi>=?z&XMU+0N~geu!(6_-zviSP$}N zz&`I|}B)2mObbQC!9R*7yyx8(4l>btk^ucpkUt zmb2CZXV5|aGMhT+OSbb<=;+}za%zGGd~Wx{p%)&QAbF9?M!OOLA2-hXQN``E*JGfD z6s^7JMLlLlz|2w>(|z}nX$At!m4DCZO%GYB<6X{+*!mMPRYl45J^6I^H4Xf7cXOSD zdpv14D@cQUF5|lAnN&EXlehJ`0d2IifSsHx!}5MPS`XG(w7lp+nH>e>aFQ~0eIG@J zuACs>a}(*4M3(eVP$SBR`5!2P`K|ElyR)tB84_wd#(wy z0{+l^B~5rc}O(N%u~GdvltCl#*={YL-c|6C%E0zOeET^n6r-sLCyIPG2<9J zpRKk-j;#Uh4lqXTKY9@7l24?@uJa6kWD=kEg(Rmj6U^V0la*n!$s`MotzC4KW=s;~ za+vDm$J=Nu=kEVz2hUOy7K^i`ru1gEPp} z-+5HwtsB*`D1}M+$Emz?Fwt*vAw75IqP>J9JHbGY>iYJx>kMZ=sV$F)+e#C)cXBjg z*%S1R7loZIcBJRaJ9gpsKv>_m7!<{9S&_R!tWcCRnZEA_{LQ+A6II2io=h;^Z_c^t zs%80dr_!jWk~KY(lBw!!qP@7NtSoorWjFSGvYJ=SJkF&HoZ%R5x_ z*z(k7JN|`JW31D(R%qiito5H++AbwUa)e!QQsNBq^I`_ooGV3dTsuY@PWqCdx532B zV**)|vksf%mAUSg6B!9iq79p>iKmkznQ$l%jSa+5)7yy3?w&wBjuz7m8o&6Wc4ujr z^?a^eq!Op_FiN0P2;W3nSk6sK&BB%@xc%y?xR*{d;%W5=V|WQjJm z_uoYrtaK*%bvwyz^A=pODigjwv8PY3=Ant%39_u-nogrJ&{S{*4jXmhpMd8u^Ts49 zks%9@CU@e7GYb4CzPI4)XK`X3cAx#&-^e+bMd|2g!t}HlVD!^L*j{#=q%Xe5?Pnth z-~2p0-M#>4$PPe_(`~$e8f%GKDDDMG4tMOv;nWyA>St-<}Wvh;((U#8@=BKhY3 z67&zhgbSZvqr#sozWDc05Nmk`Lc3mL%x_Iba%2!rmTsWev$+0?eJQN|n}v4_1#yLa z42VeV<#LT2*Svc_*!;?dH@#(8_qLRovg;>?M-gJHbOOyY#vyZwc-^_@l2mfxdib9F z8cgO^pkU>Dev8T=GhF|xR;76Y6<#h*OO*=Y)-*lnof!jT+C?yUb~zXhTmkKmOVL8q z4+<}w!jPg+d^fQP&O8JXxS)!kuBA`i{7*A_H!~OocWZJ`Qj#p$s10v4-eKJSFT8R+ zbrL5mLt7kAz$Mv-d2tUp|6{(r#4wy^eZe2K;Gma@Erg5${?#sTj-T&w;VO*C&a z(R&-a##56~vu29*SjwZV-I8qhw@on3}Bp=Ze)(tA>kDPgK<%Jg1PUFnXeJIx@|<^a3m zohdPYCP>)^N&0>NJx12ko1eXJH`&BI;=V5-xWX#~6Vx|=&Km-CO0FOuqJ-o_K08__ z!8vl)6Wf9hZ1!>u`i5hooqERkY#TE9QRRi~?P+)5c{n1^;{^If?#7pAs*Qv+fIRQKqi=I%E6~~h{b&k?30Q< zXw9m}BgVhjH#?MJ_>MC1GIVF&+`7ah-0kD;Za3kt@I&T(Tp>n`UT4+QfE5$&M3g#_XHSkyVeuHG|t#2vp;lqkE~w`CLpkn}jBHX;|7WfMbUj z!EObHI?I{Rxhkn>6#9jkQ=JM4Q3z-9MaXvzV<=szOv3$J;7gYcj4w%J%pBU_*U1uS zhfYWh&?WEU3n4zZjrpDVnD=(eY*@O_7XF>FqF2T))doG=!|uK#M@E{ISl=Z#VBt&7 zAs)g#Bc5d9_RR}8r&=13`PB#qgRgrWX`lI=}&*-Jw15GfOKZ;M8dPj->`ZyO&9-f=muyl<>_)EbWcIEN;@no8ISo2cgHuTUTmf!n4pvQ$zZ zfl2FzG4b#LexOeoUfxHU$ZNK^fcvb+eyku}k4Aa2??icCnw`v0hB^LC7og=_=5SVp zF!O9gm+4z1N%T*4)~>AgBo14q(q`u;%w`FWDSOwD?3|ay{(CYBk3_}8e_>Z}UxEW; zCpV{7x+0J3o!jB5B`YyEOpU6X?1LhDhZ%ZM!+a>*OT(PX*dlp9DAUY_jLWCkjqiJ~ ze04GE{F(;ciN-v?rCZq>8}*pxTiOsN*~NTRKZUjTt!ZXB$I6s!g)N>OhvSbX)pkw+ zV~ta|Pird4i$92&k(vC+5;drsXUyH3=Cbx=8iE_;FV4(;{+qUoIF4Tw{!noW`D;?HFef7c z9V8dhD`s2B328|*nj?Yh=d00)b!KFA#xkO-P|i-ctVm|%r|@1Jl_O|<6C2WU;kt+$ z_L)8chdBU?PKhxwn_Q^crZ5uqybOoe&8Ni{y7=l&JLHFJL+7Q9)ULUk@BH5hd=MfC ze*!%)_Q`xOyXS<5YGyzL__S9{Bp#0t@}51E`pW&+ADQb2Y8CR`_)hZytJa)(JQ z6rMN+4;1GR(fDkrYgOX!-p!reH{FD`3zG?NZ4Ow+nG?TRc4Qh;N%W<>>7hOP#2*UC z2H*W4kaml#vtC5^CoHCWcN$ZR7#?vQ9ATRT1>j4^Ryy;Z6gjRaNDkZ^hkQpVj`J{! z4((T?!|4~9G_QT+xqmXf{IP@gX-6uWJd-6-!txk#o}q-hKkj*OoyMGB1Crr-q%vp< z;g9~pxNZ@0;%6kCy4#YR^*g{y4DFy7@^iu3BZ2NT`ow;z8be>DG#WaVgPB6Mbt8w% z$WlKGy7}=IYCEBno|-F2tS*JJ2X;MR_&)^bgaIXLBrZ>jb9wZ`=QHG1E(<4)&v;83D_Zz1D=Sga>@R4*SPFUcRyc%9F7yyI)_RPN!hIDnf(?9dw zaI5ZnShh#EZup%JebsXohDscW?%CNi+b@TewYf~4T(9A1q!!VX)5GVR7E#xPLUQpF z*E624PQ?oI82g__)c;u~rt1C%*Y8uv+SsMI^{N!zy7m`=o!p(wP>#YpKF7mUg~WB0 zc;S&h_1im$=HC76wHwbkmR1b8VklLcyiJYtUQ;A8?FX^apGUm5mN7p2i|DPj)0xAU z&7l3O4vwt&3jE+0^y&D1 zoa5}{PrEIIRw$B$=p=eC zo2l+cZEjwAh^gE-muy-54UL16NMCvgfSM%bpE4zf)lK1YaRb@OUL<)N!&uefQH%d% zYUsaxQ$R;y0`(KLBjcVrWNt$p3`~-u52aJ=VV$V*DGo;mwD7e&B z@-|+tgSLWMv`hUsYdO6Vb9LY_)^jaP>&lyb1zSAk=s@}T^{Kj!j- zM@T}hG3hO<&^b?$sSNF5vULVv^(!-S>dph+xUe^l`DH@jXU;KG?TV#9^V^SC1ReS;NV@pFVcgDjMrG=$LyI#FWzQ7Tnk z%2-9@!*KQn>R>4V-Z`$w_Y2|s2VWw)O%0&cK$7R@mBBW%b>K3*4!1)qCT?0mW7BhC zx9=5H*f54EGexP_Fb|HnOr*+s4|v8(i^;L0gRpXEE0 zpL+rO!KDnQSLYEEqtAFgNvpPv?8EpSNhmwxJKNdoSmVd)P+F{xe=kqR7nJhfQO;%I zY=KYj=3*ItI~e)?U`^XrgZ5of628udWBP~H?0J5P8GdC<-x)0>yxms#RBkd(*6?I5 z9lp#Y$C{B7W)5`k_cYvO^AO9m_VYFW4Kp&Yj_{&iC9^*#cv0bxZ+H#ee{tD?>sVg( z0_8i;Gvg=kz`&MnJX);*2|nhNFdLZB152{Q=d zUC!5jbY%>dI&r_Xx+-x0I*Kxqml$P<6U_3QDr#Bt9h_5g8S%p7;E-?5%;*_{{JKTF z#}Tus@4F*lw)!`-;>lK$<6H-ugU*8VmAy2ocoH!ykHH&O4>8YWF5S4?nl_4uqsEte z#LK&lvFc3_-v&Q~G{TL~eXN+12AA*Afu?|9 ze7CfR*B*vUrr9T6aOfV==q^t_Jrf}d_qXB774~qg`Y)!K8sM|{f#CmMmdqK{gk?8N z;Lz!A7Tg}n8f{pHKFLY2alQy$`f(Ai-Yi3f0~GKd1(cNw#817p=wv&{y3HnZ zRChb-=W8>k5^b8oph1mPCqt0*z<(yx6oDo_?u2Noc+ag3${g zy-AhGesuB#8FhyBc*(kE+=X)eQQoV{ z9wsrdjorI;J}o*XNp4;(;Qg8z4^5jqna1tUQPKG_9Ef&jzPNQWKf1=*95X$_tpU*F zY$8lq*9{%KsdQ@TQ+UBS=tL6a@aj4@a((|GX30fEJ%$qQA`8u)E6JgS1U{D%&X071 z(JBZh#KsfrBu|pG#g?S$r!!vNyN13vAItd+!x`0$9Lvnnk}Q4l5LBmnfL-oFIN|Jy z?l#Y$=Jp@He8^ssnde1QK7IrF=O5t1wH|o!)t6bS9*sfQGTE(c1}?fD1_t_~Fu(9L zvxGTBERka@+>HVgpZoZHvj|OJCIJd3SChjtzM|ebVfL3sH#2VLiDTCU=y|(pNdEMj zIk|BbFq;msQ9h?}EbaqiX!RYEk6D4owl&z0S%tT~rx1sory;GFW8?H4#^}YyxGLX* z>o~jP`@{^m(HlZkX2&4!N*-R>na-Qpg}BylGyNBJhhKNPfqAqt3Qa!VgvGxP!qyx5 z@a|O+zDm-<_i58nIb52)OMJy_p8p;qW&&;q?+kN3)ppz9+TCfz|xM^8L_U`U!4n zyae^U0~ltw3jgY6;EY8+VB@)&k(%$qkVgw}>j`;QcdsJN{8r8?{Me2!J+JfX*I+t^>w z{eFFV<{rH8oJNNVqfjhVmXz&SPCm4}hLoT3gj17%SZEh(t8$SEPIO>I zt<$lHuTC#G7UKG+6^zc7b8s?hJEiMPX!^uq0F9TdV@?5v)s~`Si8iD7Jq^BJkihS| zd%`WzhrqJ(}o18MM2paW$aE< zCj-^8lqAdqou^^2H?19inJbVQlQ_;9vl=C-0Bya!m>ORH3`W;C*J*m*C+KdCu7H1E_@a%sKfA$%SeQ3;iLwxDIW_PIW_9OZhP5fnlgUJk-M%Se4v3cr8 z*oa4KAxdumo-LDwX?Htd4OF1|R~ZapM7VR}0RKmfB-KwpKo{aw(zZd0%Ma&)=21=h z#nX^@-IRcDu0p)&UHj=;b*TkUBEq0AOhN2@P zbxvFE<7S_$JWI3N#B5b1%I~X$C-<(?5v4$E`*jjNkBcIGVTSTki^$XbSSqd?f+m-S z8M6z*be5nC6bY7tHpj<`S=Gc7YO;gQvH_x)Cr4kLsKBlE^NB>|YOtvM%!_q4rT-w3 z_%vIB;F2@2#H@sfhAw~v4HI%GD*@Z=<>~4FQiwx*13P2hf3$4IV}6fx798Bt&v-?i z1ig|RR$iu^ev6YJR!y_%yA~bJ6JZ8k!rkcqZ68#GEuk*4T_opi8JNCRq^nvlP+mwW z?$|X0SH(9mH)aOlWxXJ9d+0|rW>!#nox7<0xCst?euK7i=2E%AVDKD10`n^B;E$s$ zIW&HaUR>`(o(0WjI$yp)h13*YUxXBSvoITX2`kd@+;Vp2y2Z3h{yx|}Ok*?~7NBtF z0rJech78zDrLi^?*7i%XM`PT;N_!`?9&ATTNe$@z>xOggmr&)~Dj<0PXl4Hna;!p` zYzmjGQ(StK9CiLKLIwcukGm%-Bekh>bGfwCN_fAbXiC(tOFLP$5#dJ&S(7>_t<%t1!}l zVV0?vutCm>u=LS!lngB+CL_lf(Vtr6i6ZB!?O%xcW7RCv-U7|v2bsTAnXWDOpvINL z#91x~XjO5&@I_R0wKcu7CX}vZxZIbTDRtZ-51%bLhOCn| z*3a2X6&<>v_t0c&mh^#N7e0{)I8jWFHX*#*_PE|io%;>dp>K38=ozPOgi?Wu50X^1h=yUQFtF+>9|9j2j=DnKyQ8{G~p$F3!Av@v!I`F$~nnb~Mb zqeEA-hd!!sb8K&TU&B3962=ogbS;f&bwqsEXtheic1-=>h^ajV{37SN0s-~d-WL0Lt z@(tiED}@So{=(*QVRnf|3)s4F{p1}N@#60hT)U|ntvKdoN`Nwm_sNrfb4TjCGoCsB zmSVp4I1>czAxQixZyc#o;Z`p#t-kDU(S8ZOUOawizCvH8}mpex7BS6tUqrkbZJJ5R*v(f5BR|DNKv*Vy(zFmqs|F_7A)) zJyCjv3_Y`UGfZ#1#mu--N<(!8$Oej-HhzL_PddRX*s}?q_}W5blN|>5CBw8kRhHg? zgd7?80iU9pnH{&{>HJx-P|J1Pf6sLU_hS!m;7}!Mg}gv(q08iQ#5Sg0-wZ;|e8jO4 zd9qrh5cP-WFi9H^!YoBi>Ub{@UYDf7$i-vaJ?RvXSRPr_`kL80PY5k_uE7D_<4jmq z2^^Pjf$>IT&qtrM|Wv}P8wy>>QvkgQ2o=-Dz4cAj7ZulK?VSqqZ!@GeSi z-$0%;h2ze};?(-iYSd5d;%!-DkE01r^mgW4!V8~-DfJ>GpRi8V>WwOR2&NYS73vk zIoZGLGpsp$74K{HVw~)LBI6`R&cuIVmzJcnHx!N#tBZNe$WC*jv+f843wW>yh8F z8$HZ=;m-YuWPXw$ygdB@48$g&ryqk0XQe{;n=&XWl7#%fU-?fYvhdz~bIL@#fmJ8P z>4?=o&@`&x3vRZ-p_gLh+nl{ zop1qE@ZFmY#8UbO=BBs-o!0_|Z_?5Gs~j<*tKsZ?b$od409#UEL1F|a@vPmZ5m~O| zS5|)o+{_f|zWzU`5j6__+F}bo|Zb) zY?%rwJ-)c2-;fi@9NBWA8)s zQT~Lg<>oLarYr2@(Q1x z{*H3|*G%@8Jg`_Xj~Uj!$}G|C=dF`I2lL_^VMd2MJ_vpVqd|zPx+7WrY|b%bAVcdq2+`F7N$(y&3fkOm@0Yp zNS-WM&druKw$#dMtYdYq8gxdUp|-AJ)p5j^esk6_{P0%wtxma&|y{uH8ZajQkndtIuu(@!1<;(Y|)P2Ai5|G>SxcO3j;mLY?&vR)Odh( z>)?2)muEm`{B52?=}Izd`$-ai?J5;qI2R&M93{WSTuHsM7YS_^q1I|iG@G08z7Lfl zH4}G(;OR0thKp#BrU>p|9s$z+8;Im82eKg2h+f&QL_dnu;9B=@E_HE3LA1$-Rh=0Mp9 zYu0VX`8ShLC#Rei-8aCec0J_c-_6AF@fRrEv4YNi^V)Lvg&x={*3Mjy%(1*1C{ACU z%*V9HGjZd%5H0A6Cg%E1WXy3AEqxYEC5Qka>w2-#N0>ZqA7<*umyo=oQfSaNfwB@Y z8e?2dv>XyhwY46aR>_00o)CS=Wx4YC7w8W0N3eUEIelWLS*N?J5RYjDviq$JNy`E& zx>&#r4~(CrAy-eagFc(ciaGXZcWFL55+*=WyW*vL&dCEiG%l+?1T`__^C zi`w*i6t|o>ZOk5X@uvn4r%(|eQ<$0?LJO8=K~<$5y)dLo^QyH;737nQ&(pxoU`8grp+9=PN#VcNg-;xg+VGUK`o7DXu0sdtXknp1tuF!%kQSf&Y%_hPtvMgp0f zB1~?~TTCrIV#&S-j;H~`WZsi7GBaQoc9ISzPQBB zUiAV0%DI#3A5XwL`ZV#sxq%Kmn#TKmS%q`CPbVtHW!OJ+4|NIz8kv3zoUA(NdkYte z#TUq%(D_tQ$QF)nucT3fhv-nJ4;9{Vo@OTH~^NDx{}161JI6CKuKgpskGKv)g#!{DT#3pF*zed<{0{iR}HMXm+iYdzJVf4 zu(p8IHA|S2rMGyCCr>8U#jX4UE_v8rY0R~OzO#?-DKV!z+(E@xh>7|804|iYgXUL` z2PE8v)@Fo++{s7N=n8mRr%Y{xfpkB32@a}1@%lrqAME6h3IQ{ihp_$sdvFUOy`|(F zcZR$=x*kJr$&%9B8Q{}uM->KUa4v`#8og@*txcFn26J{pY}aMXid@17_p9P#DQzgc zwv=3*HpY`{5+m2HMqz492b9R$V4sI7vt?Q^UHp0~aoxU%ntT30)0l}=ykU@+C_0AL z-xs3eMs2d{#blB`Uz>6Nq)Cmvk5Sno&b2pv0bGn9;MXU+V8uEY{;*3ZX#iQ;J;xau zRVcIQjUOxFaTdJXBiSi`#OT@42$r3sg#w*PdLDq`)xY3* zojC3N`j40UDHGR^AA{q;SFq`*3ns}-geb)#zINXLmcKs>*Al0asN;Lc=8h3CmYPfr z6}lkfh!~dbwWmL?euTK}9hlpyOyY|Nz^u8Rc^Tcr3@Kklv9OLi8;Te~ z#}hFkT`NaD-?-q%2W`A`S`3c;Q%UrkxuA2f6b`HjXAC{|GY4kf0q?Ub(ecMOrq+Ew z=5Lf|OdCottU8u|_16IQh5_BJv<1u-%b^zBg_ltqNr&-icCE;HNQ(@wwdJz*IqwC? z(cTi|CA8zG+9PzSy%YSns>OV+e~8-U@$9N`5!iF|4Vs2lGsXtuy+?tXvhoDftPSmWL8XUN2~opAJ43ICwf6p*|*fv$WR4u7~^kjYby`y6c_jF2AKV+b&z2~3 zqe=EuipMDHag<|qIc+3bF~@OYR4X$ zwkQWcA@@28lgjbSzgc8gr2t*nwSsB8HwCJ7I@!DSsU$1-E~{Ue2CAM#>;jE+41OpC z3a`Al|B6o3sFy?WZB4K%O9Uh$e`8R>a$aS2Gz@((%iPD>+{D%F9A1shY^0wPzFin-O@hcqUzX$%R~$ z%EP?lc68Cwbo?3}0c!>K!?&x2e5Ze02GS}Cc;c;?)TP9XUKobiD~9pY*=rb_IGz1) z$CzX^CE{EMN0fcB1O58AZsy`Gm~+q?vP!E^`-=iTaeu-*8_H&~H%H)?wuv-%DKc9+ z8sVsEI2N}^Q{Fli{H!7a?}zHa;ZYqU=(7%X4^O1?O2XLb>m}*C|NgK`%6`Kpo(P?M zk9+U*Z^N6s-@IJ09=1_@HT3CxLBTbLY15c7dHsF@8+WJ`-x_kA**z5UbN|5V;sy-e z@6H%FjNq@6W+bKeG~l-;n5P_r12$T)|C}W8;PR1?OZ{nn^GP_XP=aopZ;}_OMjpLQ zf{KoHbVzC|Bk0H77hYFGam4`?**p^#^bTXeNf&T(mFJvY+lig-Vru%3bC{d11bep# zvb6Ues8{^qXtY|S^TG*6zabA}A2@-tTsc-HS<#*UG}s=`Blyv*7J?Vq(B!NOXsh!K zzBcQ_9kXN}|HuQ(-gBE-e8G@Bna~Ff<+FfS_?@lly8s6UB)D8;7rT_05$5<;cJOIB zh~JN3wjJF<B8yO!Q8O@*BO z^6--LI5PjHkVn!Yu(DHwe7@^Mb*|2#kxlY=ZsmE>u_XduFSi33j=$MbstM646X~CK zrTE>+h-{WBRS#;^qe`T^CgG;J5p*PPG876vrlpc4 z`2JB1b7NGAjyJTxB$-WhCmLGFu<;8TwBZI@P#;0Rep*Nbi$h7C>~#?Lo`#zCsWiLe zDz2Xqi~nYCAcCQJjOoW5verQb*L3cpTMD_k&b?DGq3RnPetQ_*LhQg)%Z08D_=W2m z77N4R+EvLzNB~kY^t^+f-Un2(~GE* zvkvoL%OcXDTaLmHD==f5EBTk`tIbP7kB6OI_-DxHV zfnXoE@7+6(ME>%kGiJ9FT?s+*&s(3CN+eUa#g8CLIRc)(Ernpt8LYH40H1XJ1|fq; zntj}m^9L*^%CA3y-m0T?!9x|^rRDzY$<@-#hRwo6aFGWMTP;KuY_}vc-}9(W^A&EM z5MgP##EfeCPoV1}#o4O!$7sv`&(QLfbJ`lq(Wz=vcpBf!h{skZ4CU2AIJLk@>>qG- z%L2<=f*8xO*;4a3UecXrTAX zn{=XZIbFN{AUWVWfs7POkPSa7!DDAFI#d^snuiy7=51H$!IMYG=l(mu+NO~HpL*bO zXg^%DQY3<=7ig~PF5)enMWZ&Zq}vC~XjR@jruFVMESvrV3XGL$yxdt*!evdQzNn&Y zS2gJAnbJ7-OwwoBKpr2@WTnh@kf^Y`G>LX$sIRs~9^Z}K`Qb7sdMcB588hjO&9h0` zcNyN%gjk;!ZN}f&1pA4a_cQJ3D zl@PpF&<{K{zy&MT=99^S)G$f@j-os$FVL&b&Mbb@uPMZXf4>n4Jkp-oLPP^&xomHWf-$ zpTnENiFMh(rc!a&TF87K!+-OlgB3Y;ie`4MCa!)4Y%@29O4$>Q+lQN&%dOHx**_b+ zrh7nhVi>!LbMiS9=3wipN@i8Z4tBw_49I#R!6F;gUwyOc@M z`HRr-BnQsh7}ERBO5{b6Dp{^bXy6)alATnFg*F}RMClFel7)ig4o{F#+h$5qk7wfD zD?W_+aVb)LriN{rqC_v7Pe+RdU3fnIAN&169_VRD;GbtgRIoQ2e||yiUU`~0JI!Yj zi&$u$6wligQP14xuf<`KjcTRaakD}JI5T%Ke~th((2%Cn{>?;Q>q_e7*Z^t!C?w@v zgB&r=XS5+1zpoXhOwR)NXe=Ta1@wdm&P4NxPOFu;vRj=~JX9>~(_f#x?^O`$nnZk(;>&a@lgKVv) zDazYs^AmkKQ9#U>SVwE)@vbBIdGRu~QEMLIR|*iJdTko9l|gUYe%@KXOvbl)0$H@# z9gQc=0H4{VG;YUFCg6bp^%+;fcp^%-H{3=Yya#R;g{!%ltX;ue2I;#pv(loL@p38E?EhUSNtOCo%D_FJo0*vhO$N!{Y^p54Qtf-$A&om`wj~wxfPY3Sh*tTPD)0ht;|B=UM&%+m~caXj@lIkv5 z57r&OFk#L#XlvBrJcK*w2j@jpNvf3?8Es{EZ<&E>q}I~#e=blhHq4wpd6-{yzaDCW z73eaX+-JruaAp7r}f!U_9;5`2o+nKta_?lm1WI{Q2va|wb#(%-e6bbg= z_Yq{bME>W2VhH4XOMLow8 zEPH|~pJu|5p9i>^g%MrSVUFIS0-&3rK?8gD!?6-u{3mb#r>GA?>g5sWHtuIa)h6N$ z>O-7Dg@{*qGM)?GfGLp|xcovO=kA>$vLr!WhW47~ zLp+Z=I~v{s+m)I){m5HJ%Q+E+rIaxDmH@YdsKrg&wh*^l%2Z6^3)oI_AfhU{jO3K* z@OxP|EA6|Cb8a{CW8zBjSA-l>;i3!4J*Qx%@NBALKACV`X%vy*90P&%4E+0saT!)@ z`b8Ot$Y_B038Cy7nH!+sZ%8M^8biMH&X&X z=DX8>!6rm|-Un8hnA0HHMev_P2yU&kC-V-e)3Dz%WarZWXu9|e{GWW| z&2^E+NtufQTBp)E|9ydJWC|vJIL)_Fss+Z^AJ4@-XKD+Vqh`@_w6yiZVrLCf&%VLO zdCl->!fNb4zYm8vp049n17ayvz$~4(f#1DXk7MtMqFPG~Y|?+ollZ&>tW4a|`j0#{ z@tjEvT023=-GhD#w#C97w^;Hf8vAu4G3wf4$ls$*!s0AJ`^W^E$WiS>TV`l zUSsgHvM>JBO@h9-uTW*eGTTgA;kS$cX1Sfg#1jR4{;43$cS~l&*<{f9w+I`#uI7#h z%kf?3N&G7mO^fqm824Gt?B(e9Tu7Y7@sSC*CFl)iYhFhwd1rKN-M}$#kV%tlW@YzD zU}KjnZu0pA?ED(IC-#yRjrkAmee!3+=aoR`pe&Wre+;^ZRmj#ymC&J6iupI>2ruRg zwn}I-^A63%+?yZSUzS^`zYTYGKURv%Mzomc?~)k3dCsuVp@qrnFXZW^BXrr^f?3@E zN7@2a%hRkVDbs(A>q-ZhLH%AB66)l?H;ShH{?DOcM-BQ&OVX3S4glljOiZmRaD9FP zo4KxoT|8f$V@=CIV$vkiR3!u6ZWF*VH5Po=uO%NOH0j4Y8Jshm146HskdV2uBw}M6 z$=?%&(|tZ;ORzCLm{7r_&(6V7rUi=z0&&NIVP?ATMlcI8pm*e?@#LdqSS+80V(n+y z{*#X}U0)7f`-`w911TUAAxOGk+0h#-hTwPNe=zzWAKS&m$?< zAXcsOFvQ|Cxn$9U`#;gowmtc)Q{| zjt+6(rPE?$_nvZ;4tNUZiU>WTB*0X?TTYbf#ffzI94hJ{u%LD1I*IXWXR9{OW{sBk zl8SA6$lHcZ_;h?38b~|`i4gI+kSaTRkjsq!l3PI5^>J>OLKotmT1xA>)uI16LsZf& zsOf|S^kQ>0aS|FwpBC1y+2WyPx#gWEozkXF3U7Ne>z+-=hmQBSr)UZ66tn?D??`lfk^lJ|sgJ^Vdy;laB9cl;i;9|iPIjV5_C4DhNraF{`;JPb&C;S$N}_e{`4!5R zl57!5QQ1SXhWGvhGk4~5=g#k(=Xt)5rbY_Z3%it(9DPB*s%5|J$MEZai~$wbGklwQ z8LgXeg0t?^#K3#I*+a`zVV)a}R$mJt=;j$VaPv2QU1Kz4w%>ui&RF~$BE#~RcEaE5 z%kcH4&*ZE%h2rY0=$3m4O^r^W*x)yOUbq~ad=c=GuzSc%wPN>TC((&7lJ-%Rnyk!b zFrJ$|98+5VK|qEfe{Jwgt_7n&C>&MRw|QKE``i z^1H$!aZlz@JiXV0AMkr2%AHDLbNT|&{^WXgv9glHbB-}vfo;Z(E`dn<5KJ9%n^Y6i zapFt{z6-5b_`^1^y>NhAwLbvayc@W<@)Jpf3J1uKcbWagS9EhA&->=pl55aCm?h-< zww3qO&)Y%IzyIu7}&N*x`T1!)cW63Njw_1orQr&DBjW zVQ*9Bp!ih_=aZJnJX zz%983`us=O#XeG`l@sK+LfxZc>*9gj=iz4Hm^cTmmcQW_p1lJTzLit@yb0X(ZL;j+fPvH>k z3%x&5D?smVIjH9olo%ZWFW*!;6?K|27R-U)9)sw1a6arfISTeKa>lsK3OM|LxC8H> z^GB4Az_S7i4DNJ-TmOxMc7c(sRqu#BFQdR)Po9;iz5sFjIf}S(hnH~hrm$Q~jOdP_ z*O#U6SjKUF(}Tf$+~k*VR_-|`f6R_$?tVsU*OsvR)$=QrV{XCWi~+1fFP5KNG?0xD z^s>1!OE9HdjvjTr;)X2z$rZJXg-WLjoUw*1i~O2N-+mnjspdu!sugIdqH_Q2%?F=cz|EBcx&Yx}7-rs4u^8 zraJdyxDn|ssH3*7DeT61Ls)zJG)*}gOtPx*R_wzHUCv7*}yCU>-3thS{d%Re7&UwzF zRd;?Xm4KzjSk6K4HV@j`LgQNB!^tBnz)6^W+CC3O_?yis8`#K~>M6KU?17myom)j!75QAw@80Dy|1)nGuytCl(8dz9HPcP-&exP z%X*>hqY6Bp_zJ|`J~XW%hiu=Eg6lm+w0YW8@Ub`!W(|%Y^IkYBta8M5={wXqumDzD z-RI24cF?zVOX1suN!05njk9HvDWK5{S6DYtj_L)t6#s;CR~pIInh(K$A@4Z9NKIaP z?@-)Qzlt^X-2?lFg8n>u5U;L36|Gn5QLUiYUq84W;&eBlMQ43ww4D}iGt$KY@(p~1 z-6vWU(o5HlCW5SrK8u;T4}))MbDYF%lJAd)<=TQbQh3z;*QZFK87k;_WeD4~@e&;S zn#xN(mBjVxiB#4zgm!H0uK3kHnz)oe>hQYI`%v_ESwhkvlT`f{z z&-vX)6i`OXmhJoZ5c-|Qh)&ucjytVkF=qNmS8^qMekdEe`pi$2nsc+3uuIJNPczeVa`@a3*&oqA_ z8rkJ(tu zE7&x^^wgW;gI?F@^LrE0TlI>rChTB0H4{lyLXUL)y`g`x0!vA*;rQM?)S?(