From ad90b8baa0c76e083c362ec2f60c72bcc92fd2d9 Mon Sep 17 00:00:00 2001 From: Armand <4831c0@proton.me> Date: Wed, 27 Aug 2025 17:01:13 +0200 Subject: [PATCH] wear: initial commit based on 549b7e3e1169f0168830631a271f29eaafd2b570 with some parts removed, and some parts backported from the latest commit --- .gitmodules | 4 + firka/assets/images/wear_pair.svg | 42 + .../ui/phone/pages/extras/main_wear_pair.dart | 0 firka_wear/.gitignore | 47 + firka_wear/.metadata | 30 + firka_wear/analysis_options.yaml | 28 + firka_wear/android/.gitignore | 14 + firka_wear/android/app/build.gradle.kts | 883 +++++++++++ firka_wear/android/app/proguard-rules.pro | 1 + .../android/app/src/debug/AndroidManifest.xml | 9 + .../android/app/src/main/AndroidManifest.xml | 56 + .../brotli/common/SharedDictionaryType.java | 15 + .../main/java/org/brotli/dec/BitReader.java | 289 ++++ .../org/brotli/dec/BrotliInputStream.java | 172 +++ .../brotli/dec/BrotliRuntimeException.java | 21 + .../src/main/java/org/brotli/dec/Context.java | 58 + .../src/main/java/org/brotli/dec/Decode.java | 1357 +++++++++++++++++ .../src/main/java/org/brotli/dec/Decoder.java | 72 + .../main/java/org/brotli/dec/Dictionary.java | 94 ++ .../java/org/brotli/dec/DictionaryData.java | 75 + .../src/main/java/org/brotli/dec/Huffman.java | 137 ++ .../src/main/java/org/brotli/dec/State.java | 100 ++ .../main/java/org/brotli/dec/Transform.java | 236 +++ .../src/main/java/org/brotli/dec/Utils.java | 119 ++ .../org/brotli/enc/PreparedDictionary.java | 16 + .../enc/PreparedDictionaryGenerator.java | 185 +++ .../main/kotlin/app/firka/naplo/AppMain.kt | 88 ++ .../kotlin/app/firka/naplo/MainActivity.kt | 92 ++ .../drawable-hdpi/ic_launcher_background.png | Bin 0 -> 4550 bytes .../drawable-hdpi/ic_launcher_foreground.png | Bin 0 -> 2909 bytes .../drawable-hdpi/ic_launcher_monochrome.png | Bin 0 -> 7519 bytes .../res/drawable-hdpi/ic_notification.png | Bin 0 -> 1184 bytes .../drawable-mdpi/ic_launcher_background.png | Bin 0 -> 2854 bytes .../drawable-mdpi/ic_launcher_foreground.png | Bin 0 -> 1847 bytes .../drawable-mdpi/ic_launcher_monochrome.png | Bin 0 -> 4629 bytes .../res/drawable-mdpi/ic_notification.png | Bin 0 -> 668 bytes .../res/drawable-v21/launch_background.xml | 12 + .../drawable-xhdpi/ic_launcher_background.png | Bin 0 -> 5961 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3798 bytes .../drawable-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 10091 bytes .../res/drawable-xhdpi/ic_notification.png | Bin 0 -> 1726 bytes .../ic_launcher_background.png | Bin 0 -> 9628 bytes .../ic_launcher_foreground.png | Bin 0 -> 5994 bytes .../ic_launcher_monochrome.png | Bin 0 -> 15772 bytes .../res/drawable-xxhdpi/ic_notification.png | Bin 0 -> 2924 bytes .../ic_launcher_background.png | Bin 0 -> 13070 bytes .../ic_launcher_foreground.png | Bin 0 -> 7975 bytes .../ic_launcher_monochrome.png | Bin 0 -> 21392 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 0 -> 4299 bytes .../main/res/drawable/launch_background.xml | 12 + .../res/mipmap-anydpi-v26/launcher_icon.xml | 14 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 3182 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 1968 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 4418 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 6803 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 9357 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../app/src/release/AndroidManifest.xml | 8 + firka_wear/android/build.gradle.kts | 49 + firka_wear/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + firka_wear/android/settings.gradle.kts | 25 + .../fonts/Figtree-VariableFont_wght.ttf | Bin 0 -> 62868 bytes .../fonts/Montserrat-VariableFont_wght.ttf | Bin 0 -> 688600 bytes .../fonts/RobotoMono-VariableFont_wght.ttf | Bin 0 -> 181388 bytes .../assets/images/logos/colored_logo.png | Bin 0 -> 38774 bytes .../logos/colored_logo_only_mustache.png | Bin 0 -> 12693 bytes .../logos/colored_logo_without_mustache.png | Bin 0 -> 24480 bytes firka_wear/assets/images/logos/dave.svg | 15 + firka_wear/assets/images/logos/loading.gif | Bin 0 -> 16742 bytes .../assets/images/logos/monochrome_logo.png | Bin 0 -> 44659 bytes firka_wear/assets/images/logos/splash.png | Bin 0 -> 22616 bytes firka_wear/assets/majesticons/cupFilled.svg | 1 + .../assets/majesticons/parkSolidSchool.svg | 7 + firka_wear/assets/majesticons/sunSolid.svg | 3 + firka_wear/devtools_options.yaml | 3 + firka_wear/flutter_launcher_icons.yaml | 11 + firka_wear/l10n.yml | 3 + .../lib/helpers/api/client/kreta_client.dart | 519 +++++++ firka_wear/lib/helpers/api/consts.dart | 52 + firka_wear/lib/helpers/api/model/generic.dart | 58 + firka_wear/lib/helpers/api/model/grade.dart | 90 ++ .../lib/helpers/api/model/guardian.dart | 52 + .../lib/helpers/api/model/homework.dart | 70 + .../lib/helpers/api/model/institution.dart | 100 ++ .../lib/helpers/api/model/notice_board.dart | 42 + .../lib/helpers/api/model/omission.dart | 98 ++ firka_wear/lib/helpers/api/model/student.dart | 133 ++ firka_wear/lib/helpers/api/model/subject.dart | 32 + firka_wear/lib/helpers/api/model/test.dart | 60 + .../lib/helpers/api/model/timetable.dart | 149 ++ .../lib/helpers/api/resp/token_grant.dart | 54 + firka_wear/lib/helpers/api/token_grant.dart | 90 ++ .../helpers/db/models/app_settings_model.dart | 12 + .../db/models/app_settings_model.g.dart | 571 +++++++ .../db/models/generic_cache_model.dart | 13 + .../db/models/generic_cache_model.g.dart | 494 ++++++ .../db/models/homework_cache_model.dart | 29 + .../db/models/homework_cache_model.g.dart | 562 +++++++ .../db/models/timetable_cache_model.dart | 29 + .../db/models/timetable_cache_model.g.dart | 562 +++++++ .../lib/helpers/db/models/token_model.dart | 69 + .../lib/helpers/db/models/token_model.g.dart | 1206 +++++++++++++++ firka_wear/lib/helpers/db/util.dart | 26 + firka_wear/lib/helpers/debug_helper.dart | 17 + firka_wear/lib/helpers/extensions.dart | 193 +++ firka_wear/lib/helpers/icon_helper.dart | 148 ++ firka_wear/lib/helpers/json_helper.dart | 9 + firka_wear/lib/helpers/ui/firka_card.dart | 57 + firka_wear/lib/helpers/ui/grade.dart | 70 + firka_wear/lib/helpers/ui/grade_helpers.dart | 74 + .../helpers/ui/stateless_async_widget.dart | 23 + firka_wear/lib/l10n | 1 + firka_wear/lib/main.dart | 232 +++ firka_wear/lib/ui/model/style.dart | 263 ++++ .../lib/ui/wear/screens/home/home_screen.dart | 366 +++++ .../ui/wear/screens/login/login_screen.dart | 258 ++++ .../widgets/circular_progress_indicator.dart | 115 ++ firka_wear/lib/ui/widget/class_icon.dart | 31 + firka_wear/lib/ui/widget/counter_digit.dart | 24 + firka_wear/lib/ui/widget/delayed_spinner.dart | 42 + firka_wear/lib/ui/widget/firka_icon.dart | 34 + .../lib/ui/widget/grade_small_card.dart | 52 + firka_wear/pubspec.yaml | 132 ++ firka_wear/vendor/isar | 1 + firka_wear/vendor/isar_flutter_libs | 1 + firka_wear/vendor/isar_generator | 1 + firka_wear/vendor/wear_plus | 1 + 135 files changed, 11771 insertions(+) create mode 100644 firka/assets/images/wear_pair.svg create mode 100644 firka/lib/ui/phone/pages/extras/main_wear_pair.dart create mode 100644 firka_wear/.gitignore create mode 100644 firka_wear/.metadata create mode 100644 firka_wear/analysis_options.yaml create mode 100644 firka_wear/android/.gitignore create mode 100644 firka_wear/android/app/build.gradle.kts create mode 100644 firka_wear/android/app/proguard-rules.pro create mode 100644 firka_wear/android/app/src/debug/AndroidManifest.xml create mode 100644 firka_wear/android/app/src/main/AndroidManifest.xml create mode 100644 firka_wear/android/app/src/main/java/org/brotli/common/SharedDictionaryType.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/BitReader.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/BrotliInputStream.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/BrotliRuntimeException.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Context.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Decode.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Decoder.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Dictionary.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/DictionaryData.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Huffman.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/State.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Transform.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/dec/Utils.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionary.java create mode 100644 firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionaryGenerator.java create mode 100644 firka_wear/android/app/src/main/kotlin/app/firka/naplo/AppMain.kt create mode 100644 firka_wear/android/app/src/main/kotlin/app/firka/naplo/MainActivity.kt create mode 100644 firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png create mode 100644 firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png create mode 100644 firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png create mode 100644 firka_wear/android/app/src/main/res/drawable-hdpi/ic_notification.png create mode 100644 firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png create mode 100644 firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png create mode 100644 firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png create mode 100644 firka_wear/android/app/src/main/res/drawable-mdpi/ic_notification.png create mode 100644 firka_wear/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xhdpi/ic_notification.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_notification.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png create mode 100644 firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_notification.png create mode 100644 firka_wear/android/app/src/main/res/drawable/launch_background.xml create mode 100644 firka_wear/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml create mode 100644 firka_wear/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 firka_wear/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 firka_wear/android/app/src/main/res/values-night/styles.xml create mode 100644 firka_wear/android/app/src/main/res/values/styles.xml create mode 100644 firka_wear/android/app/src/profile/AndroidManifest.xml create mode 100644 firka_wear/android/app/src/release/AndroidManifest.xml create mode 100644 firka_wear/android/build.gradle.kts create mode 100644 firka_wear/android/gradle.properties create mode 100644 firka_wear/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 firka_wear/android/settings.gradle.kts create mode 100644 firka_wear/assets/fonts/Figtree-VariableFont_wght.ttf create mode 100644 firka_wear/assets/fonts/Montserrat-VariableFont_wght.ttf create mode 100644 firka_wear/assets/fonts/RobotoMono-VariableFont_wght.ttf create mode 100644 firka_wear/assets/images/logos/colored_logo.png create mode 100644 firka_wear/assets/images/logos/colored_logo_only_mustache.png create mode 100644 firka_wear/assets/images/logos/colored_logo_without_mustache.png create mode 100644 firka_wear/assets/images/logos/dave.svg create mode 100644 firka_wear/assets/images/logos/loading.gif create mode 100644 firka_wear/assets/images/logos/monochrome_logo.png create mode 100644 firka_wear/assets/images/logos/splash.png create mode 100644 firka_wear/assets/majesticons/cupFilled.svg create mode 100644 firka_wear/assets/majesticons/parkSolidSchool.svg create mode 100644 firka_wear/assets/majesticons/sunSolid.svg create mode 100644 firka_wear/devtools_options.yaml create mode 100644 firka_wear/flutter_launcher_icons.yaml create mode 100644 firka_wear/l10n.yml create mode 100644 firka_wear/lib/helpers/api/client/kreta_client.dart create mode 100644 firka_wear/lib/helpers/api/consts.dart create mode 100644 firka_wear/lib/helpers/api/model/generic.dart create mode 100644 firka_wear/lib/helpers/api/model/grade.dart create mode 100644 firka_wear/lib/helpers/api/model/guardian.dart create mode 100644 firka_wear/lib/helpers/api/model/homework.dart create mode 100644 firka_wear/lib/helpers/api/model/institution.dart create mode 100644 firka_wear/lib/helpers/api/model/notice_board.dart create mode 100644 firka_wear/lib/helpers/api/model/omission.dart create mode 100644 firka_wear/lib/helpers/api/model/student.dart create mode 100644 firka_wear/lib/helpers/api/model/subject.dart create mode 100644 firka_wear/lib/helpers/api/model/test.dart create mode 100644 firka_wear/lib/helpers/api/model/timetable.dart create mode 100644 firka_wear/lib/helpers/api/resp/token_grant.dart create mode 100644 firka_wear/lib/helpers/api/token_grant.dart create mode 100644 firka_wear/lib/helpers/db/models/app_settings_model.dart create mode 100644 firka_wear/lib/helpers/db/models/app_settings_model.g.dart create mode 100644 firka_wear/lib/helpers/db/models/generic_cache_model.dart create mode 100644 firka_wear/lib/helpers/db/models/generic_cache_model.g.dart create mode 100644 firka_wear/lib/helpers/db/models/homework_cache_model.dart create mode 100644 firka_wear/lib/helpers/db/models/homework_cache_model.g.dart create mode 100644 firka_wear/lib/helpers/db/models/timetable_cache_model.dart create mode 100644 firka_wear/lib/helpers/db/models/timetable_cache_model.g.dart create mode 100644 firka_wear/lib/helpers/db/models/token_model.dart create mode 100644 firka_wear/lib/helpers/db/models/token_model.g.dart create mode 100644 firka_wear/lib/helpers/db/util.dart create mode 100644 firka_wear/lib/helpers/debug_helper.dart create mode 100644 firka_wear/lib/helpers/extensions.dart create mode 100644 firka_wear/lib/helpers/icon_helper.dart create mode 100644 firka_wear/lib/helpers/json_helper.dart create mode 100644 firka_wear/lib/helpers/ui/firka_card.dart create mode 100644 firka_wear/lib/helpers/ui/grade.dart create mode 100644 firka_wear/lib/helpers/ui/grade_helpers.dart create mode 100644 firka_wear/lib/helpers/ui/stateless_async_widget.dart create mode 120000 firka_wear/lib/l10n create mode 100644 firka_wear/lib/main.dart create mode 100644 firka_wear/lib/ui/model/style.dart create mode 100644 firka_wear/lib/ui/wear/screens/home/home_screen.dart create mode 100644 firka_wear/lib/ui/wear/screens/login/login_screen.dart create mode 100644 firka_wear/lib/ui/wear/widgets/circular_progress_indicator.dart create mode 100644 firka_wear/lib/ui/widget/class_icon.dart create mode 100644 firka_wear/lib/ui/widget/counter_digit.dart create mode 100644 firka_wear/lib/ui/widget/delayed_spinner.dart create mode 100644 firka_wear/lib/ui/widget/firka_icon.dart create mode 100644 firka_wear/lib/ui/widget/grade_small_card.dart create mode 100644 firka_wear/pubspec.yaml create mode 120000 firka_wear/vendor/isar create mode 120000 firka_wear/vendor/isar_flutter_libs create mode 120000 firka_wear/vendor/isar_generator create mode 160000 firka_wear/vendor/wear_plus diff --git a/.gitmodules b/.gitmodules index 4aa91bc..496bbed 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,7 @@ [submodule "firka/lib/l10n"] path = firka/lib/l10n url = https://github.com/QwIT-Development/firka-localization +[submodule "firka_wear/vendor/wear_plus"] + path = firka_wear/vendor/wear_plus + url = https://git.firka.app/firka/wear_plus + diff --git a/firka/assets/images/wear_pair.svg b/firka/assets/images/wear_pair.svg new file mode 100644 index 0000000..d799bc8 --- /dev/null +++ b/firka/assets/images/wear_pair.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/firka/lib/ui/phone/pages/extras/main_wear_pair.dart b/firka/lib/ui/phone/pages/extras/main_wear_pair.dart new file mode 100644 index 0000000..e69de29 diff --git a/firka_wear/.gitignore b/firka_wear/.gitignore new file mode 100644 index 0000000..2ce9e99 --- /dev/null +++ b/firka_wear/.gitignore @@ -0,0 +1,47 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +coverage \ No newline at end of file diff --git a/firka_wear/.metadata b/firka_wear/.metadata new file mode 100644 index 0000000..bad0587 --- /dev/null +++ b/firka_wear/.metadata @@ -0,0 +1,30 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "d7b523b356d15fb81e7d340bbe52b47f93937323" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 + base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 + - platform: ios + create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 + base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/firka_wear/analysis_options.yaml b/firka_wear/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/firka_wear/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/firka_wear/android/.gitignore b/firka_wear/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/firka_wear/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/firka_wear/android/app/build.gradle.kts b/firka_wear/android/app/build.gradle.kts new file mode 100644 index 0000000..c47a20f --- /dev/null +++ b/firka_wear/android/app/build.gradle.kts @@ -0,0 +1,883 @@ +import org.apache.commons.io.FileUtils +import java.io.FileInputStream +import java.security.MessageDigest +import java.util.Properties +import java.util.concurrent.Executors +import java.util.concurrent.Future +import java.util.concurrent.locks.ReentrantReadWriteLock +import java.util.zip.ZipEntry +import java.util.zip.ZipFile +import java.util.zip.ZipOutputStream +import java.util.zip.ZipOutputStream.DEFLATED +import java.util.zip.ZipOutputStream.STORED + +plugins { + id("com.android.application") + id("kotlin-android") + id("org.jetbrains.kotlin.plugin.compose") version "2.2.0" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +fun loadProperties(file: File): Properties { + val properties = Properties() + FileInputStream(file).use { inputStream -> + properties.load(inputStream) + } + return properties +} + +android { + namespace = "app.firka.naplo" + compileSdk = flutter.compileSdkVersion + ndkVersion = "27.0.12077973" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + buildFeatures { + compose = true + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "app.firka.naplo" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = 29 + targetSdk = 36 + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + val secretsDir = File(projectDir.absolutePath, "../../../secrets/") + val propsFile = File(secretsDir, "keystore.properties") + + if (propsFile.exists()) { + val props = loadProperties(propsFile) + val store = File(secretsDir, props["storeFile"].toString()) + + signingConfigs { + create("release") { + storeFile = store + storePassword = props["storePassword"] as String + keyPassword = props["keyPassword"] as String + keyAlias = props["keyAlias"] as String + } + } + } + + buildTypes { + getByName("debug") { + applicationIdSuffix = ".debug" + versionNameSuffix = "-debug" + } + release { + val config = signingConfigs.findByName("release") + + if (config != null) { + signingConfig = config + } + + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } +} +dependencies { + implementation("androidx.wear:wear-ongoing:1.0.0") + implementation("androidx.glance:glance-appwidget:1.1.1") +} + +flutter { + source = "../.." +} + +tasks.register("transformAndResignDebugApk") { + group = "build" + description = "Transform and resign APK with debug key" + + dependsOn("assembleDebug") + + doLast { + transformApks(true) + } +} + +tasks.register("transformAndResignReleaseApk") { + group = "build" + description = "Transform and resign APK with release key" + + dependsOn("assembleRelease") + + doLast { + checkReleaseKey() + if (System.getenv("TRANSFORM_APK") != null + && System.getenv("TRANSFORM_APK") == "true") { + transformApks(false) + } + } +} + +tasks.register("transformAndResignReleaseBundle") { + group = "build" + description = "Transform and resign bundle with release key" + + dependsOn("bundleRelease") + + doLast { + if (System.getenv("TRANSFORM_AAB") != null + && System.getenv("TRANSFORM_AAB") == "true") { + transformAppBundle() + } + } +} + +afterEvaluate { + tasks.findByName("assembleDebug")?.finalizedBy("transformAndResignDebugApk") + tasks.findByName("assembleRelease")?.finalizedBy("transformAndResignReleaseApk") + tasks.findByName("bundleRelease")?.finalizedBy("transformAndResignReleaseBundle") +} + +fun checkReleaseKey() { + val secretsDir = File(projectDir.absolutePath, "../../../secrets/") + val propsFile = File(secretsDir, "keystore.properties") + + if (propsFile.exists()) { + val props = loadProperties(propsFile) + val store = File(secretsDir, props["storeFile"].toString()) + + println( + "Signing with:\n" + + "\t- store: ${store.name}\n" + + "\t- key: ${props["keyAlias"]}" + ) + } else { + throw Exception("Release keystore not found!") + } +} + +fun transformApks(debug: Boolean, i : Int = 0) { + try { + _transformApks(debug) + } catch (e: Exception) { + if (i < 5) { + e.printStackTrace() + + println("Retrying: ${i + 1}") + transformApks(debug, i + 1) + } else { + throw e + } + } +} + +fun _transformApks(debug: Boolean) { + println("Starting APK transformation process...") + + val buildDir = project.buildDir + val apkDir = File(buildDir, "outputs/flutter-apk") + val apks = getApks(debug) + var c = 0 + apks + .forEach { c++; transformAndSignApk(apkDir, it.nameWithoutExtension, debug) } + + println("Transformed: $c apks") +} + +fun transformAndSignApk(apkDir: File, name: String, debug: Boolean) { + val originalApk = File(apkDir, "$name.apk") + val transformedApk = File(apkDir, "$name-transformed.apk") + val finalApk = File(apkDir, "$name-resigned.apk") + val finalIdsig = File(apkDir, "$name-resigned.apk.idsig") + + if (!originalApk.exists()) { + throw GradleException("Original APK not found at: ${originalApk.absolutePath}") + } + + if (transformedApk.exists()) transformedApk.delete() + if (finalApk.exists()) finalApk.delete() + + println("Original APK: ${originalApk.absolutePath}") + + try { + println("Transforming APK...") + transformApk(originalApk, transformedApk, if (debug) { "6" } else {"Z"}) + + if (debug) { + println("Signing with debug key...") + signWithDebugKey(transformedApk, finalApk) + } else { + println("Signing with release key...") + signWithReleaseKey(transformedApk, finalApk) + } + + if (finalApk.exists()) { + originalApk.delete() + finalIdsig.delete() + finalApk.renameTo(originalApk) + println("APK successfully transformed") + println("Final APK: ${originalApk.absolutePath}") + } + + transformedApk.delete() + } catch (e: Exception) { + throw GradleException("Failed to transform and resign APK: ${e.message}", e) + } +} + +fun transformApk(input: File, output: File, compressionLevel: String = "Z") { + val tempDir = File(project.buildDir, "tmp/apk-transform") + val cacheDir = File(project.buildDir, "cache") + val optipngCacheDir = File(cacheDir, "optipng") + val assetCompressionDir = File(cacheDir, "assets") + tempDir.deleteRecursively() + tempDir.mkdirs() + if (!optipngCacheDir.exists()) optipngCacheDir.mkdirs() + if (!assetCompressionDir.exists()) assetCompressionDir.mkdirs() + + val brotli = findToolInPath("brotli") + ?: throw Exception("Brotli not found in path") + val optipng = findToolInPath("optipng") + + if (optipng == null || optipng.isEmpty()) { + println("Optipng was not found in PATH, optimizing images will be skipped.") + } + + copy { + from(zipTree(input)) + into(tempDir) + } + + val metaInf = File(tempDir, "META-INF") + val metaInfFiles = metaInf.listFiles() + for (file in metaInfFiles!!) { + if (file.name.endsWith("MF") || file.name.endsWith("SF") + || file.name.endsWith("RSA")) { + file.delete() + } + } + + val arches = File(tempDir, "lib").listFiles() + val compressedLibs = mutableMapOf() + for (arch in arches!!) { + val libFlutter = File(arch, "libflutter.so") + + if (!libFlutter.exists()) continue + + val compressedFlutter = File(arch, "libflutter-br.so") + + compressedLibs["libflutter.so"] = libFlutter.sha256() + + println("Compressing ${arch.name}/libflutter.so with brotli") + exec { + commandLine( + brotli, + "-$compressionLevel", + libFlutter.absolutePath, + "-o", compressedFlutter.absolutePath + ) + } + libFlutter.delete() + + val json = groovy.json.JsonBuilder(compressedLibs) + File(arch, "index.so").writeText(json.toString()) + } + + val topDirL = tempDir.absolutePath.length + 1 + val zos = ZipOutputStream(output.outputStream()) + + val coreCount = Runtime.getRuntime().availableProcessors() + val flutterResources = tempDir.walkTopDown().filter{f -> f.absolutePath.contains("flutter_assets")} + val pngFiles = tempDir.walkTopDown().filter{f -> f.name.endsWith(".png")} + + val assetIndex = mutableMapOf() + val indexReadWriteLock = ReentrantReadWriteLock() + + if (compressionLevel == "Z") { + if (optipng != null) { + val executor = Executors.newFixedThreadPool(coreCount) + val futures = mutableListOf>() + + pngFiles.forEach { pngFile -> + val cacheFile = File(optipngCacheDir, pngFile.sha256()) + + if (cacheFile.exists()) { + cacheFile.copyTo(pngFile, true) + } else { + val future = executor.submit { + exec { + commandLine( + optipng, + "-zm", "9", + "-zw", "32k", + "-o9", + pngFile.absolutePath + ) + } + + pngFile.copyTo(cacheFile, true) + } + + futures.add(future) + } + } + + futures.forEach { it.get() } + executor.shutdown() + } + + val executor = Executors.newFixedThreadPool(coreCount) + val futures = mutableListOf>() + + val blacklist = listOf( + // "AssetManifest.bin", + "AssetManifest.json", + "FontManifest.json", + "isolate_snapshot_data", + "kernel_blob.bin", + "NativeAssetsManifest.json", + "NOTICES.Z", + "vm_snapshot_data", + "fonts", + "shaders" + ) + + flutterResources.forEach { f -> + val relName = f.absolutePath.substring(topDirL).replace("\\", "/") + if (f.isDirectory) return@forEach + + val cacheFileRaw = File(assetCompressionDir, f.sha256()+".r") + val cacheFileGz = File(assetCompressionDir, f.sha256()+".gz") + val cacheFileBr = File(assetCompressionDir, f.sha256()+".br") + + if (cacheFileRaw.exists() || cacheFileGz.exists() || cacheFileBr.exists()) { + if (cacheFileRaw.exists()) { + cacheFileRaw.copyTo(f, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "r" + indexReadWriteLock.writeLock().unlock() + } else if (cacheFileGz.exists()) { + cacheFileGz.copyTo(f, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "g" + indexReadWriteLock.writeLock().unlock() + } else { + cacheFileBr.copyTo(f, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "b" + indexReadWriteLock.writeLock().unlock() + } + } else { + val future = executor.submit { + val brTmp = File(f.absolutePath + ".br.tmp") + val gzTmp = File(f.absolutePath + ".gz.tmp") + + var blacklisted = false + for (f in blacklist) { + if (relName.contains(f)) { + blacklisted = true + + break + } + } + + if (!blacklisted) { + println("$relName: Testing with brotli") + exec { + commandLine( + brotli, + "-$compressionLevel", + f.absolutePath, + "-o", brTmp.absolutePath + ) + } + + println("$relName: Testing with gzip") + ant.invokeMethod( + "gzip", mapOf( + "src" to f.absolutePath, + "destfile" to gzTmp.absolutePath, + ) + ) + + println("$brTmp: ${brTmp.length()}") + println("$gzTmp: ${gzTmp.length()}") + if (f.length() < gzTmp.length() && f.length() < brTmp.length()) { + println("$relName: Raw file wins") + + f.copyTo(cacheFileRaw, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "r" + indexReadWriteLock.writeLock().unlock() + } else { + if (brTmp.length() < gzTmp.length()) { + println("$relName: Brotli wins") + + f.delete() + brTmp.copyTo(f, true) + brTmp.copyTo(cacheFileBr, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "b" + indexReadWriteLock.writeLock().unlock() + } else { + println("$relName: Gzip wins") + + f.delete() + gzTmp.copyTo(f, true) + gzTmp.copyTo(cacheFileGz, true) + + indexReadWriteLock.writeLock().lock() + assetIndex[relName] = "g" + indexReadWriteLock.writeLock().unlock() + } + } + + brTmp.delete() + gzTmp.delete() + } + } + + futures.add(future) + } + } + + futures.forEach { it.get() } + executor.shutdown() + } + + tempDir.walkTopDown().forEach { f -> + if (f.absolutePath == tempDir.absolutePath) return@forEach + + var relName = f.absolutePath.substring(topDirL).replace("\\", "/") + if (f.isDirectory && !relName.endsWith("/")) relName += "/" + + if (compressionLevel == "Z") { + if (relName == "assets/flutter_assets/assets/firka.i") return@forEach + } + + println(relName) + + val compress = !relName.endsWith(".so") && !relName.endsWith(".arsc") + zos.setMethod(if (compress) { DEFLATED } else { STORED }) + val entry = ZipEntry(relName) + if (!compress) { + entry.size = f.length() + entry.crc = FileUtils.checksumCRC32(f) + } + zos.putNextEntry(entry) + if (f.isFile) { + zos.write(f.readBytes()) + } + zos.closeEntry() + } + if (compressionLevel == "Z") { + zos.setMethod(DEFLATED) + zos.putNextEntry(ZipEntry("assets/flutter_assets/assets/firka.i")) + + val indexUncompressed = File(tempDir, "index.json") + indexReadWriteLock.readLock().lock() + val json = groovy.json.JsonBuilder(assetIndex) + indexReadWriteLock.readLock().unlock() + indexUncompressed.writeText(json.toString()) + + val indexCompressed = File(tempDir, "index.json.br") + + exec { + commandLine( + brotli, + "-$compressionLevel", + indexUncompressed.absolutePath, + "-o", indexCompressed.absolutePath + ) + } + + zos.write(indexCompressed.readBytes()) + indexUncompressed.delete() + indexCompressed.delete() + + zos.closeEntry() + } + zos.close() + + tempDir.deleteRecursively() + println("APK transformed successfully") +} + +fun transformAppBundle() { + val buildDir = project.buildDir + val bundle = File(buildDir, "outputs/bundle/release/app-release.aab") + val bundleTmp = File(buildDir, "outputs/bundle/release/tmp.zip") + + val apks = getApks(false) + val apkCount = apks.count { it.name.startsWith("app-") && it.name.endsWith("-release.apk") } + + if (!bundle.exists()) { + throw Exception("Bundle not found at: $bundle") + } + + if (apkCount < 3) { + throw Exception("Excepected 3 apks per abi but only found $apkCount") + } + + val aabTempDir = File(project.buildDir, "tmp/aab-transform") + aabTempDir.deleteRecursively() + aabTempDir.mkdirs() + + val apksUnzipped = File(project.buildDir, "tmp/apks-unzipped") + apksUnzipped.deleteRecursively() + + val arm32TempDir = File(apksUnzipped, "armeabi-v7a") + arm32TempDir.mkdirs() + val arm64TempDir = File(apksUnzipped, "arm64-v8a") + arm64TempDir.mkdirs() + val x86TempDir = File(apksUnzipped, "x86_64") + x86TempDir.mkdirs() + + copy { + from(zipTree(bundle)) + into(aabTempDir) + } + copy { + from(zipTree(apks.first { it.name.contains("armeabi-v7a") })) + into(arm32TempDir) + } + copy { + from(zipTree(apks.first { it.name.contains("arm64-v8a") })) + into(arm64TempDir) + } + copy { + from(zipTree(apks.first { it.name.contains("x86_64") })) + into(x86TempDir) + } + + val libs = File(aabTempDir, "base/lib").listFiles()!! + + for (dstLibs in libs) { + println("Copying lib: ${dstLibs.name}") + val srcDir = File(apksUnzipped, dstLibs.name) + if (!srcDir.exists()) { + continue + } + val srcLibs = File(srcDir, "lib/${dstLibs.name}/") + + dstLibs.listFiles()!!.forEach { it.delete() } + srcLibs.listFiles()!!.forEach { it.copyTo(File(dstLibs, it.name)) } + } + + val zos = ZipOutputStream(bundleTmp.outputStream()) + val bundleZip = ZipFile(bundle) + val bundleEntries = bundleZip.entries() + + val brotli = findToolInPath("brotli") + ?: throw Exception("Brotli not found in path") + val optipng = findToolInPath("optipng") + ?: throw Exception("Optipng not found in path") + + val indexReadWriteLock = ReentrantReadWriteLock() + val assetIndex = mutableMapOf() + + while (bundleEntries.hasMoreElements()) { + val entry = bundleEntries.nextElement() + + /* +if (entry.name == "base/assets/flutter_assets/assets/firka.i") { + println("Patching: ${entry.name}") + zos.putNextEntry(ZipEntry("assets/flutter_assets/assets/firka.i")) + + val indexUncompressed = File(aabTempDir, "index.json") + indexReadWriteLock.readLock().lock() + val json = groovy.json.JsonBuilder(assetIndex) + indexReadWriteLock.readLock().unlock() + indexUncompressed.writeText(json.toString()) + + val indexCompressed = File(aabTempDir, "index.json.br") + + exec { + commandLine( + brotli, + "-Z", + indexUncompressed.absolutePath, + "-o", indexCompressed.absolutePath + ) + } + + zos.write(indexCompressed.readBytes()) + indexUncompressed.delete() + indexCompressed.delete() + + zos.closeEntry() + continue +} +if (entry.name.startsWith("base/lib")) { + println("Patching: ${entry.name}") + zos.putNextEntry(ZipEntry(entry.name)) + + + + zos.closeEntry() + continue +} +*/ + + println("Adding: ${entry.name}") + + zos.putNextEntry(ZipEntry(entry.name)) + + if (!entry.isDirectory) { + val data = bundleZip.getInputStream(entry).readAllBytes() + zos.write(data) + } + zos.closeEntry() + } + bundleZip.close() + zos.close() + + bundle.delete() + signBundle(bundleTmp, bundle) + bundleTmp.delete() + + aabTempDir.deleteRecursively() + println("AAB transformed successfully") + +} + +fun File.sha256(): String { + val md = MessageDigest.getInstance("SHA-256") + val digest = md.digest(this.readBytes()) + return digest.fold("") { str, it -> str + "%02x".format(it) } +} + +fun getApks(debug: Boolean): List { + val buildDir = project.buildDir + val apkDir = File(buildDir, "outputs/flutter-apk") + val apks = apkDir.listFiles()!! + val flavor = if (debug) { "debug" } else { "release" } + + return apks + .filter { apk -> apk.name.startsWith("app-") && apk.name.endsWith("-$flavor.apk") } + .toList() +} + +fun getDebugKeystorePath(): String { + val userHome = System.getProperty("user.home") + val debugKeystore = File(userHome, ".android/debug.keystore") + + if (!debugKeystore.exists()) { + throw GradleException("Debug keystore not found at: ${debugKeystore.absolutePath}") + } + + return debugKeystore.absolutePath +} + +fun getDefaultAndroidSdkPath(): String? { + val os = System.getProperty("os.name").lowercase() + val userHome = System.getProperty("user.home") + + return when { + os.contains("win") -> + "$userHome\\AppData\\Local\\Android\\Sdk" + os.contains("mac") -> + "$userHome/Library/Android/sdk" + os.contains("linux") -> + "$userHome/Android/Sdk" + else -> null + } +} + +fun findToolInPath(toolName: String): String? { + val pathEnvironment = System.getenv("PATH") + val pathDirs = pathEnvironment.split(File.pathSeparator) + + val executableNames = when { + System.getProperty("os.name").lowercase().contains("win") -> + listOf("$toolName.exe", toolName) + else -> + listOf(toolName) + } + + for (pathDir in pathDirs) { + for (execName in executableNames) { + val possibleTool = File(pathDir, execName) + if (possibleTool.exists() && possibleTool.canExecute()) { + return possibleTool.absolutePath + } + } + } + + return null +} + +fun findToolInSdkPath(toolName: String): String? { + var androidHome : String? = System.getenv("ANDROID_HOME") + ?: System.getenv("ANDROID_SDK_ROOT") + + if (androidHome == null) androidHome = getDefaultAndroidSdkPath() + + if (androidHome != null) { + val buildTools = File(androidHome, "build-tools") + if (buildTools.exists()) { + val latestVersion = buildTools.listFiles() + ?.filter { it.isDirectory } + ?.filter { it.name != "debian" } + ?.maxByOrNull { it.name } + + if (latestVersion != null) { + val toolExec = File(latestVersion, toolName) + if (toolExec.exists()) { + return toolExec.absolutePath + } + } + } + } + + if (!toolName.contains(".exe")) { + val exeTool = findToolInSdkPath("$toolName.exe") + if (exeTool != null) return exeTool + } + if (!toolName.contains(".sh")) { + val shTool = findToolInSdkPath("$toolName.sh") + if (shTool != null) return shTool + } + if (!toolName.contains(".bat")) { + val batTool = findToolInSdkPath("$toolName.bat") + if (batTool != null) return batTool + } + + return null +} + +fun signWithDebugKey(input: File, output: File) { + val debugKeystore = getDebugKeystorePath() + val debugKeystorePassword = "android" + val debugKeyAlias = "androiddebugkey" + val debugKeyPassword = "android" + + val zipAlign: String = findToolInSdkPath("zipalign") + ?: throw Exception("Could not find zipalign in ANDROID_SDK") + val apksigner: String = findToolInSdkPath("apksigner") + ?: throw Exception("Could not find zipalign in ANDROID_SDK") + + exec { + commandLine( + zipAlign, + "-v", "4", + input.absolutePath, + output.absolutePath + ) + } + + exec { + commandLine( + apksigner, "sign", + "--ks", debugKeystore, + "--ks-pass", "pass:$debugKeystorePassword", + "--ks-key-alias", debugKeyAlias, + "--key-pass", "pass:$debugKeyPassword", + output.absolutePath + ) + } + + println("APK signed and aligned successfully") +} + +fun signWithReleaseKey(input: File, output: File) { + val secretsDir = File(projectDir.absolutePath, "../../../secrets/") + val propsFile = File(secretsDir, "keystore.properties") + + if (!propsFile.exists()) { + throw Exception("Release keystore not found!") + } + + val props = loadProperties(propsFile) + + val releaseKeystore = File(secretsDir, props["storeFile"].toString()) + val releaseKeystorePassword = props["storePassword"] as String + val releaseKeyAlias = props["keyAlias"] as String + val releaseKeyPassword = props["keyPassword"] as String + + val zipAlign: String = findToolInSdkPath("zipalign") + ?: throw Exception("Could not find zipalign either in ANDROID_SDK") + val apksigner: String = findToolInSdkPath("apksigner") + ?: throw Exception("Could not find zipalign either in ANDROID_SDK") + + exec { + commandLine( + zipAlign, + "-v", "4", + input.absolutePath, + output.absolutePath + ) + } + + exec { + commandLine( + apksigner, "sign", + "--ks", releaseKeystore, + "--ks-pass", "pass:$releaseKeystorePassword", + "--ks-key-alias", releaseKeyAlias, + "--key-pass", "pass:$releaseKeyPassword", + output.absolutePath + ) + } + + println("APK signed and aligned successfully") +} + +fun signBundle(input: File, output: File) { + val secretsDir = File(projectDir.absolutePath, "../../../secrets/") + val propsFile = File(secretsDir, "keystore.properties") + + if (!propsFile.exists()) { + throw Exception("Release keystore not found!") + } + + val props = loadProperties(propsFile) + + val releaseKeystore = File(secretsDir, props["storeFile"].toString()) + val releaseKeystorePassword = props["storePassword"] as String + val releaseKeyAlias = props["keyAlias"] as String + val releaseKeyPassword = props["keyPassword"] as String + + // val zipAlign: String = findToolInSdkPath("zipalign") + // ?: throw Exception("Could not find zipalign in ANDROID_SDK") + val jarsigner: String = findToolInPath("jarsigner") + ?: throw Exception("Could not find jarsigner in PATH") + + /* + exec { + commandLine( + zipAlign, + "-v", "4", + input.absolutePath, + output.absolutePath + ) + } + */ + input.copyTo(output, true) + + exec { + // -keystore $KEYSTORE -storetype $STORETYPE -storepass $STOREPASS -digestalg SHA1 -sigalg SHA256withRSA application.zip $KEYALIAS + commandLine( + jarsigner, + "-verbose", + "-sigalg", "SHA256withRSA", + "-digestalg", "SHA-256", + "-keystore", releaseKeystore, + "-storepass", releaseKeystorePassword, + output.absolutePath, + releaseKeyAlias + ) + } + + println("AAB signed and aligned successfully") +} \ No newline at end of file diff --git a/firka_wear/android/app/proguard-rules.pro b/firka_wear/android/app/proguard-rules.pro new file mode 100644 index 0000000..1b493d5 --- /dev/null +++ b/firka_wear/android/app/proguard-rules.pro @@ -0,0 +1 @@ +-keep class org.brotli.** { *; } \ No newline at end of file diff --git a/firka_wear/android/app/src/debug/AndroidManifest.xml b/firka_wear/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..0f06c9a --- /dev/null +++ b/firka_wear/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/firka_wear/android/app/src/main/AndroidManifest.xml b/firka_wear/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..526221c --- /dev/null +++ b/firka_wear/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/firka_wear/android/app/src/main/java/org/brotli/common/SharedDictionaryType.java b/firka_wear/android/app/src/main/java/org/brotli/common/SharedDictionaryType.java new file mode 100644 index 0000000..b592d2b --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/common/SharedDictionaryType.java @@ -0,0 +1,15 @@ +/* Copyright 2018 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ +package org.brotli.common; + +/** POJO enum that mirrors C BrotliSharedDictionaryType. */ +public class SharedDictionaryType { + // Disallow instantiation. + private SharedDictionaryType() {} + + public static final int RAW = 0; + public static final int SERIALIZED = 1; +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/BitReader.java b/firka_wear/android/app/src/main/java/org/brotli/dec/BitReader.java new file mode 100644 index 0000000..bae9452 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/BitReader.java @@ -0,0 +1,289 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +/** + * Bit reading helpers. + */ +final class BitReader { + + // Possible values: {5, 6}. 5 corresponds to 32-bit build, 6 to 64-bit. This value is used for + // JIT conditional compilation. + private static final int LOG_BITNESS = Utils.getLogBintness(); + + // Not only Java compiler prunes "if (const false)" code, but JVM as well. + // Code under "if (DEBUG != 0)" have zero performance impact (outside unit tests). + private static final int DEBUG = Utils.isDebugMode(); + + static final int BITNESS = 1 << LOG_BITNESS; + + private static final int BYTENESS = BITNESS / 8; + private static final int CAPACITY = 4096; + // After encountering the end of the input stream, this amount of zero bytes will be appended. + private static final int SLACK = 64; + private static final int BUFFER_SIZE = CAPACITY + SLACK; + // Don't bother to replenish the buffer while this number of bytes is available. + private static final int SAFEGUARD = 36; + private static final int WATERLINE = CAPACITY - SAFEGUARD; + + // "Half" refers to "half of native integer type", i.e. on 64-bit machines it is 32-bit type, + // on 32-bit machines it is 16-bit. + private static final int HALF_BITNESS = BITNESS / 2; + private static final int HALF_SIZE = BYTENESS / 2; + private static final int HALVES_CAPACITY = CAPACITY / HALF_SIZE; + private static final int HALF_BUFFER_SIZE = BUFFER_SIZE / HALF_SIZE; + private static final int HALF_WATERLINE = WATERLINE / HALF_SIZE; + + private static final int LOG_HALF_SIZE = LOG_BITNESS - 4; + + /** + * Fills up the input buffer. + * + *

No-op if there are at least 36 bytes present after current position. + * + *

After encountering the end of the input stream, 64 additional zero bytes are copied to the + * buffer. + */ + static void readMoreInput(State s) { + if (s.halfOffset > HALF_WATERLINE) { + doReadMoreInput(s); + } + } + + static void doReadMoreInput(State s) { + if (s.endOfStreamReached != 0) { + if (halfAvailable(s) >= -2) { + return; + } + throw new BrotliRuntimeException("No more input"); + } + final int readOffset = s.halfOffset << LOG_HALF_SIZE; + int bytesInBuffer = CAPACITY - readOffset; + // Move unused bytes to the head of the buffer. + Utils.copyBytesWithin(s.byteBuffer, 0, readOffset, CAPACITY); + s.halfOffset = 0; + while (bytesInBuffer < CAPACITY) { + final int spaceLeft = CAPACITY - bytesInBuffer; + final int len = Utils.readInput(s.input, s.byteBuffer, bytesInBuffer, spaceLeft); + // EOF is -1 in Java, but 0 in C#. + if (len <= 0) { + s.endOfStreamReached = 1; + s.tailBytes = bytesInBuffer; + bytesInBuffer += HALF_SIZE - 1; + break; + } + bytesInBuffer += len; + } + bytesToNibbles(s, bytesInBuffer); + } + + static void checkHealth(State s, int endOfStream) { + if (s.endOfStreamReached == 0) { + return; + } + final int byteOffset = (s.halfOffset << LOG_HALF_SIZE) + ((s.bitOffset + 7) >> 3) - BYTENESS; + if (byteOffset > s.tailBytes) { + throw new BrotliRuntimeException("Read after end"); + } + if ((endOfStream != 0) && (byteOffset != s.tailBytes)) { + throw new BrotliRuntimeException("Unused bytes after end"); + } + } + + static void assertAccumulatorHealthy(State s) { + if (s.bitOffset > BITNESS) { + throw new IllegalStateException("Accumulator underloaded: " + s.bitOffset); + } + } + + static void fillBitWindow(State s) { + if (DEBUG != 0) { + assertAccumulatorHealthy(s); + } + if (s.bitOffset >= HALF_BITNESS) { + // Same as doFillBitWindow. JVM fails to inline it. + if (BITNESS == 64) { + s.accumulator64 = ((long) s.intBuffer[s.halfOffset++] << HALF_BITNESS) + | (s.accumulator64 >>> HALF_BITNESS); + } else { + s.accumulator32 = ((int) s.shortBuffer[s.halfOffset++] << HALF_BITNESS) + | (s.accumulator32 >>> HALF_BITNESS); + } + s.bitOffset -= HALF_BITNESS; + } + } + + static void doFillBitWindow(State s) { + if (DEBUG != 0) { + assertAccumulatorHealthy(s); + } + if (BITNESS == 64) { + s.accumulator64 = ((long) s.intBuffer[s.halfOffset++] << HALF_BITNESS) + | (s.accumulator64 >>> HALF_BITNESS); + } else { + s.accumulator32 = ((int) s.shortBuffer[s.halfOffset++] << HALF_BITNESS) + | (s.accumulator32 >>> HALF_BITNESS); + } + s.bitOffset -= HALF_BITNESS; + } + + static int peekBits(State s) { + if (BITNESS == 64) { + return (int) (s.accumulator64 >>> s.bitOffset); + } else { + return s.accumulator32 >>> s.bitOffset; + } + } + + /** + * Fetches bits from accumulator. + * + * WARNING: accumulator MUST contain at least the specified amount of bits, + * otherwise BitReader will become broken. + */ + static int readFewBits(State s, int n) { + final int val = peekBits(s) & ((1 << n) - 1); + s.bitOffset += n; + return val; + } + + static int readBits(State s, int n) { + if (HALF_BITNESS >= 24) { + return readFewBits(s, n); + } else { + return (n <= 16) ? readFewBits(s, n) : readManyBits(s, n); + } + } + + private static int readManyBits(State s, int n) { + final int low = readFewBits(s, 16); + doFillBitWindow(s); + return low | (readFewBits(s, n - 16) << 16); + } + + static void initBitReader(State s) { + s.byteBuffer = new byte[BUFFER_SIZE]; + if (BITNESS == 64) { + s.accumulator64 = 0; + s.intBuffer = new int[HALF_BUFFER_SIZE]; + } else { + s.accumulator32 = 0; + s.shortBuffer = new short[HALF_BUFFER_SIZE]; + } + s.bitOffset = BITNESS; + s.halfOffset = HALVES_CAPACITY; + s.endOfStreamReached = 0; + prepare(s); + } + + private static void prepare(State s) { + readMoreInput(s); + checkHealth(s, 0); + doFillBitWindow(s); + doFillBitWindow(s); + } + + static void reload(State s) { + if (s.bitOffset == BITNESS) { + prepare(s); + } + } + + static void jumpToByteBoundary(State s) { + final int padding = (BITNESS - s.bitOffset) & 7; + if (padding != 0) { + final int paddingBits = readFewBits(s, padding); + if (paddingBits != 0) { + throw new BrotliRuntimeException("Corrupted padding bits"); + } + } + } + + static int halfAvailable(State s) { + int limit = HALVES_CAPACITY; + if (s.endOfStreamReached != 0) { + limit = (s.tailBytes + (HALF_SIZE - 1)) >> LOG_HALF_SIZE; + } + return limit - s.halfOffset; + } + + static void copyRawBytes(State s, byte[] data, int offset, int length) { + if ((s.bitOffset & 7) != 0) { + throw new BrotliRuntimeException("Unaligned copyBytes"); + } + + // Drain accumulator. + while ((s.bitOffset != BITNESS) && (length != 0)) { + data[offset++] = (byte) peekBits(s); + s.bitOffset += 8; + length--; + } + if (length == 0) { + return; + } + + // Get data from shadow buffer with "sizeof(int)" granularity. + final int copyNibbles = Math.min(halfAvailable(s), length >> LOG_HALF_SIZE); + if (copyNibbles > 0) { + final int readOffset = s.halfOffset << LOG_HALF_SIZE; + final int delta = copyNibbles << LOG_HALF_SIZE; + System.arraycopy(s.byteBuffer, readOffset, data, offset, delta); + offset += delta; + length -= delta; + s.halfOffset += copyNibbles; + } + if (length == 0) { + return; + } + + // Read tail bytes. + if (halfAvailable(s) > 0) { + // length = 1..3 + fillBitWindow(s); + while (length != 0) { + data[offset++] = (byte) peekBits(s); + s.bitOffset += 8; + length--; + } + checkHealth(s, 0); + return; + } + + // Now it is possible to copy bytes directly. + while (length > 0) { + final int len = Utils.readInput(s.input, data, offset, length); + if (len == -1) { + throw new BrotliRuntimeException("Unexpected end of input"); + } + offset += len; + length -= len; + } + } + + /** + * Translates bytes to halves (int/short). + */ + static void bytesToNibbles(State s, int byteLen) { + final byte[] byteBuffer = s.byteBuffer; + final int halfLen = byteLen >> LOG_HALF_SIZE; + if (BITNESS == 64) { + final int[] intBuffer = s.intBuffer; + for (int i = 0; i < halfLen; ++i) { + intBuffer[i] = ((byteBuffer[i * 4] & 0xFF)) + | ((byteBuffer[(i * 4) + 1] & 0xFF) << 8) + | ((byteBuffer[(i * 4) + 2] & 0xFF) << 16) + | ((byteBuffer[(i * 4) + 3] & 0xFF) << 24); + } + } else { + final short[] shortBuffer = s.shortBuffer; + for (int i = 0; i < halfLen; ++i) { + shortBuffer[i] = (short) ((byteBuffer[i * 2] & 0xFF) + | ((byteBuffer[(i * 2) + 1] & 0xFF) << 8)); + } + } + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliInputStream.java b/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliInputStream.java new file mode 100644 index 0000000..7bbe2f6 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliInputStream.java @@ -0,0 +1,172 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.io.IOException; +import java.io.InputStream; + +/** + * {@link InputStream} decorator that decompresses brotli data. + * + *

Not thread-safe. + */ +public class BrotliInputStream extends InputStream { + + public static final int DEFAULT_INTERNAL_BUFFER_SIZE = 256; + + /** + * Value expected by InputStream contract when stream is over. + * + * In Java it is -1. + * In C# it is 0 (should be patched during transpilation). + */ + private static final int END_OF_STREAM_MARKER = -1; + + /** + * Internal buffer used for efficient byte-by-byte reading. + */ + private byte[] buffer; + + /** + * Number of decoded but still unused bytes in internal buffer. + */ + private int remainingBufferBytes; + + /** + * Next unused byte offset. + */ + private int bufferOffset; + + /** + * Decoder state. + */ + private final State state = new State(); + + /** + * Creates a {@link InputStream} wrapper that decompresses brotli data. + * + *

For byte-by-byte reading ({@link #read()}) internal buffer with + * {@link #DEFAULT_INTERNAL_BUFFER_SIZE} size is allocated and used. + * + *

Will block the thread until first {@link BitReader#CAPACITY} bytes of data of source + * are available. + * + * @param source underlying data source + * @throws IOException in case of corrupted data or source stream problems + */ + public BrotliInputStream(InputStream source) throws IOException { + this(source, DEFAULT_INTERNAL_BUFFER_SIZE); + } + + /** + * Creates a {@link InputStream} wrapper that decompresses brotli data. + * + *

For byte-by-byte reading ({@link #read()}) internal buffer of specified size is + * allocated and used. + * + *

Will block the thread until first {@link BitReader#CAPACITY} bytes of data of source + * are available. + * + * @param source compressed data source + * @param byteReadBufferSize size of internal buffer used in case of + * byte-by-byte reading + * @throws IOException in case of corrupted data or source stream problems + */ + public BrotliInputStream(InputStream source, int byteReadBufferSize) throws IOException { + if (byteReadBufferSize <= 0) { + throw new IllegalArgumentException("Bad buffer size:" + byteReadBufferSize); + } else if (source == null) { + throw new IllegalArgumentException("source is null"); + } + this.buffer = new byte[byteReadBufferSize]; + this.remainingBufferBytes = 0; + this.bufferOffset = 0; + try { + Decode.initState(state, source); + } catch (BrotliRuntimeException ex) { + throw new IOException("Brotli decoder initialization failed", ex); + } + } + + public void attachDictionaryChunk(byte[] data) { + Decode.attachDictionaryChunk(state, data); + } + + public void enableEagerOutput() { + Decode.enableEagerOutput(state); + } + + public void enableLargeWindow() { + Decode.enableLargeWindow(state); + } + + /** + * {@inheritDoc} + */ + @Override + public void close() throws IOException { + Decode.close(state); + } + + /** + * {@inheritDoc} + */ + @Override + public int read() throws IOException { + if (bufferOffset >= remainingBufferBytes) { + remainingBufferBytes = read(buffer, 0, buffer.length); + bufferOffset = 0; + if (remainingBufferBytes == END_OF_STREAM_MARKER) { + // Both Java and C# return the same value for EOF on single-byte read. + return -1; + } + } + return buffer[bufferOffset++] & 0xFF; + } + + /** + * {@inheritDoc} + */ + @Override + public int read(byte[] destBuffer, int destOffset, int destLen) throws IOException { + if (destOffset < 0) { + throw new IllegalArgumentException("Bad offset: " + destOffset); + } else if (destLen < 0) { + throw new IllegalArgumentException("Bad length: " + destLen); + } else if (destOffset + destLen > destBuffer.length) { + throw new IllegalArgumentException( + "Buffer overflow: " + (destOffset + destLen) + " > " + destBuffer.length); + } else if (destLen == 0) { + return 0; + } + int copyLen = Math.max(remainingBufferBytes - bufferOffset, 0); + if (copyLen != 0) { + copyLen = Math.min(copyLen, destLen); + System.arraycopy(buffer, bufferOffset, destBuffer, destOffset, copyLen); + bufferOffset += copyLen; + destOffset += copyLen; + destLen -= copyLen; + if (destLen == 0) { + return copyLen; + } + } + try { + state.output = destBuffer; + state.outputOffset = destOffset; + state.outputLength = destLen; + state.outputUsed = 0; + Decode.decompress(state); + copyLen += state.outputUsed; + copyLen = (copyLen > 0) ? copyLen : END_OF_STREAM_MARKER; + return copyLen; + } catch (BrotliRuntimeException ex) { + throw new IOException("Brotli stream decoding failed", ex); + } + + // <{[INJECTED CODE]}> + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliRuntimeException.java b/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliRuntimeException.java new file mode 100644 index 0000000..1844907 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/BrotliRuntimeException.java @@ -0,0 +1,21 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +/** + * Unchecked exception used internally. + */ +class BrotliRuntimeException extends RuntimeException { + + BrotliRuntimeException(String message) { + super(message); + } + + BrotliRuntimeException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Context.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Context.java new file mode 100644 index 0000000..10bf0cb --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Context.java @@ -0,0 +1,58 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +/** + * Common context lookup table for all context modes. + */ +final class Context { + + static final int[] LOOKUP = new int[2048]; + + private static final String UTF_MAP = " !! ! \"#$##%#$&'##(#)#+++++++++" + + "+((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# "; + private static final String UTF_RLE = "A/* ': & : $ \u0081 @"; + + private static void unpackLookupTable(int[] lookup, String map, String rle) { + // LSB6, MSB6, SIGNED + for (int i = 0; i < 256; ++i) { + lookup[i] = i & 0x3F; + lookup[512 + i] = i >> 2; + lookup[1792 + i] = 2 + (i >> 6); + } + // UTF8 + for (int i = 0; i < 128; ++i) { + lookup[1024 + i] = 4 * (map.charAt(i) - 32); + } + for (int i = 0; i < 64; ++i) { + lookup[1152 + i] = i & 1; + lookup[1216 + i] = 2 + (i & 1); + } + int offset = 1280; + for (int k = 0; k < 19; ++k) { + final int value = k & 3; + final int rep = rle.charAt(k) - 32; + for (int i = 0; i < rep; ++i) { + lookup[offset++] = value; + } + } + // SIGNED + for (int i = 0; i < 16; ++i) { + lookup[1792 + i] = 1; + lookup[2032 + i] = 6; + } + lookup[1792] = 0; + lookup[2047] = 7; + for (int i = 0; i < 256; ++i) { + lookup[1536 + i] = lookup[1792 + i] << 3; + } + } + + static { + unpackLookupTable(LOOKUP, UTF_MAP, UTF_RLE); + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Decode.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Decode.java new file mode 100644 index 0000000..bf9b681 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Decode.java @@ -0,0 +1,1357 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; + +/** + * API for Brotli decompression. + */ +final class Decode { + + static final int MIN_LARGE_WINDOW_BITS = 10; + /* Maximum was chosen to be 30 to allow efficient decoder implementation. + * Format allows bigger window, but Java does not support 2G+ arrays. */ + static final int MAX_LARGE_WINDOW_BITS = 30; + + //---------------------------------------------------------------------------- + // RunningState + //---------------------------------------------------------------------------- + private static final int UNINITIALIZED = 0; + private static final int INITIALIZED = 1; + private static final int BLOCK_START = 2; + private static final int COMPRESSED_BLOCK_START = 3; + private static final int MAIN_LOOP = 4; + private static final int READ_METADATA = 5; + private static final int COPY_UNCOMPRESSED = 6; + private static final int INSERT_LOOP = 7; + private static final int COPY_LOOP = 8; + private static final int USE_DICTIONARY = 9; + private static final int FINISHED = 10; + private static final int CLOSED = 11; + private static final int INIT_WRITE = 12; + private static final int WRITE = 13; + private static final int COPY_FROM_COMPOUND_DICTIONARY = 14; + + private static final int DEFAULT_CODE_LENGTH = 8; + private static final int CODE_LENGTH_REPEAT_CODE = 16; + private static final int NUM_LITERAL_CODES = 256; + private static final int NUM_COMMAND_CODES = 704; + private static final int NUM_BLOCK_LENGTH_CODES = 26; + private static final int LITERAL_CONTEXT_BITS = 6; + private static final int DISTANCE_CONTEXT_BITS = 2; + + private static final int CD_BLOCK_MAP_BITS = 8; + private static final int HUFFMAN_TABLE_BITS = 8; + private static final int HUFFMAN_TABLE_MASK = 0xFF; + + /** + * Maximum possible Huffman table size for an alphabet size of (index * 32), + * max code length 15 and root table bits 8. + * The biggest alphabet is "command" - 704 symbols. Though "distance" alphabet could theoretically + * outreach that limit (for 62 extra bit distances), practically it is limited by + * MAX_ALLOWED_DISTANCE and never gets bigger than 544 symbols. + */ + static final int[] MAX_HUFFMAN_TABLE_SIZE = { + 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, + 854, 886, 920, 952, 984, 1016, 1048, 1080 + }; + + private static final int HUFFMAN_TABLE_SIZE_26 = 396; + private static final int HUFFMAN_TABLE_SIZE_258 = 632; + + private static final int CODE_LENGTH_CODES = 18; + private static final int[] CODE_LENGTH_CODE_ORDER = { + 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, + }; + + private static final int NUM_DISTANCE_SHORT_CODES = 16; + private static final int[] DISTANCE_SHORT_CODE_INDEX_OFFSET = { + 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 + }; + + private static final int[] DISTANCE_SHORT_CODE_VALUE_OFFSET = { + 0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3 + }; + + /** + * Static Huffman code for the code length code lengths. + */ + private static final int[] FIXED_TABLE = { + 0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040001, + 0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040005 + }; + + // TODO(eustas): generalize. + static final int MAX_TRANSFORMED_WORD_LENGTH = 5 + 24 + 8; + + private static final int MAX_DISTANCE_BITS = 24; + private static final int MAX_LARGE_WINDOW_DISTANCE_BITS = 62; + + /** + * Safe distance limit. + * + * Limit ((1 << 31) - 4) allows safe distance calculation without overflows, + * given the distance alphabet size is limited to corresponding size. + */ + private static final int MAX_ALLOWED_DISTANCE = 0x7FFFFFFC; + + //---------------------------------------------------------------------------- + // Prefix code LUT. + //---------------------------------------------------------------------------- + static final int[] BLOCK_LENGTH_OFFSET = { + 1, 5, 9, 13, 17, 25, 33, 41, 49, 65, 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, + 753, 1265, 2289, 4337, 8433, 16625 + }; + + static final int[] BLOCK_LENGTH_N_BITS = { + 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 24 + }; + + static final short[] INSERT_LENGTH_N_BITS = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0E, 0x18 + }; + + static final short[] COPY_LENGTH_N_BITS = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x18 + }; + + // Each command is represented with 4x16-bit values: + // * [insertLenExtraBits, copyLenExtraBits] + // * insertLenOffset + // * copyLenOffset + // * distanceContext + static final short[] CMD_LOOKUP = new short[NUM_COMMAND_CODES * 4]; + + static { + unpackCommandLookupTable(CMD_LOOKUP); + } + + private static int log2floor(int i) { + int result = -1; + int step = 16; + while (step > 0) { + if ((i >>> step) != 0) { + result += step; + i = i >>> step; + } + step = step >> 1; + } + return result + i; + } + + private static int calculateDistanceAlphabetSize(int npostfix, int ndirect, int maxndistbits) { + return NUM_DISTANCE_SHORT_CODES + ndirect + 2 * (maxndistbits << npostfix); + } + + // TODO(eustas): add a correctness test for this function when + // large-window and dictionary are implemented. + private static int calculateDistanceAlphabetLimit(int maxDistance, int npostfix, int ndirect) { + if (maxDistance < ndirect + (2 << npostfix)) { + throw new IllegalArgumentException("maxDistance is too small"); + } + final int offset = ((maxDistance - ndirect) >> npostfix) + 4; + final int ndistbits = log2floor(offset) - 1; + final int group = ((ndistbits - 1) << 1) | ((offset >> ndistbits) & 1); + return ((group - 1) << npostfix) + (1 << npostfix) + ndirect + NUM_DISTANCE_SHORT_CODES; + } + + private static void unpackCommandLookupTable(short[] cmdLookup) { + final short[] insertLengthOffsets = new short[24]; + final short[] copyLengthOffsets = new short[24]; + copyLengthOffsets[0] = 2; + for (int i = 0; i < 23; ++i) { + insertLengthOffsets[i + 1] = + (short) (insertLengthOffsets[i] + (1 << INSERT_LENGTH_N_BITS[i])); + copyLengthOffsets[i + 1] = + (short) (copyLengthOffsets[i] + (1 << COPY_LENGTH_N_BITS[i])); + } + + for (int cmdCode = 0; cmdCode < NUM_COMMAND_CODES; ++cmdCode) { + int rangeIdx = cmdCode >>> 6; + /* -4 turns any regular distance code to negative. */ + int distanceContextOffset = -4; + if (rangeIdx >= 2) { + rangeIdx -= 2; + distanceContextOffset = 0; + } + final int insertCode = (((0x29850 >>> (rangeIdx * 2)) & 0x3) << 3) | ((cmdCode >>> 3) & 7); + final int copyCode = (((0x26244 >>> (rangeIdx * 2)) & 0x3) << 3) | (cmdCode & 7); + final short copyLengthOffset = copyLengthOffsets[copyCode]; + final int distanceContext = + distanceContextOffset + (copyLengthOffset > 4 ? 3 : copyLengthOffset - 2); + final int index = cmdCode * 4; + cmdLookup[index + 0] = + (short) (INSERT_LENGTH_N_BITS[insertCode] | (COPY_LENGTH_N_BITS[copyCode] << 8)); + cmdLookup[index + 1] = insertLengthOffsets[insertCode]; + cmdLookup[index + 2] = copyLengthOffsets[copyCode]; + cmdLookup[index + 3] = (short) distanceContext; + } + } + + /** + * Reads brotli stream header and parses "window bits". + * + * @param s initialized state, before any read is performed. + * @return -1 if header is invalid + */ + private static int decodeWindowBits(State s) { + /* Change the meaning of flag. Before that step it means "decoder must be capable of reading + * "large-window" brotli stream. After this step it means that "large-window" feature + * is actually detected. Despite the window size could be same as before (lgwin = 10..24), + * encoded distances are allowed to be much greater, thus bigger dictinary could be used. */ + final int largeWindowEnabled = s.isLargeWindow; + s.isLargeWindow = 0; + + BitReader.fillBitWindow(s); + if (BitReader.readFewBits(s, 1) == 0) { + return 16; + } + int n = BitReader.readFewBits(s, 3); + if (n != 0) { + return 17 + n; + } + n = BitReader.readFewBits(s, 3); + if (n != 0) { + if (n == 1) { + if (largeWindowEnabled == 0) { + /* Reserved value in regular brotli stream. */ + return -1; + } + s.isLargeWindow = 1; + /* Check "reserved" bit for future (post-large-window) extensions. */ + if (BitReader.readFewBits(s, 1) == 1) { + return -1; + } + n = BitReader.readFewBits(s, 6); + if (n < MIN_LARGE_WINDOW_BITS || n > MAX_LARGE_WINDOW_BITS) { + /* Encoded window bits value is too small or too big. */ + return -1; + } + return n; + } else { + return 8 + n; + } + } + return 17; + } + + /** + * Switch decoder to "eager" mode. + * + * In "eager" mode decoder returns as soon as there is enough data to fill output buffer. + * + * @param s initialized state, before any read is performed. + */ + static void enableEagerOutput(State s) { + if (s.runningState != INITIALIZED) { + throw new IllegalStateException("State MUST be freshly initialized"); + } + s.isEager = 1; + } + + static void enableLargeWindow(State s) { + if (s.runningState != INITIALIZED) { + throw new IllegalStateException("State MUST be freshly initialized"); + } + s.isLargeWindow = 1; + } + + // TODO(eustas): do we need byte views? + static void attachDictionaryChunk(State s, byte[] data) { + if (s.runningState != INITIALIZED) { + throw new IllegalStateException("State MUST be freshly initialized"); + } + if (s.cdNumChunks == 0) { + s.cdChunks = new byte[16][]; + s.cdChunkOffsets = new int[16]; + s.cdBlockBits = -1; + } + if (s.cdNumChunks == 15) { + throw new IllegalStateException("Too many dictionary chunks"); + } + s.cdChunks[s.cdNumChunks] = data; + s.cdNumChunks++; + s.cdTotalSize += data.length; + s.cdChunkOffsets[s.cdNumChunks] = s.cdTotalSize; + } + + /** + * Associate input with decoder state. + * + * @param s uninitialized state without associated input + * @param input compressed data source + */ + static void initState(State s, InputStream input) { + if (s.runningState != UNINITIALIZED) { + throw new IllegalStateException("State MUST be uninitialized"); + } + /* 6 trees + 1 extra "offset" slot to simplify table decoding logic. */ + s.blockTrees = new int[7 + 3 * (HUFFMAN_TABLE_SIZE_258 + HUFFMAN_TABLE_SIZE_26)]; + s.blockTrees[0] = 7; + s.distRbIdx = 3; + final int maxDistanceAlphabetLimit = + calculateDistanceAlphabetLimit(MAX_ALLOWED_DISTANCE, 3, 15 << 3); + s.distExtraBits = new byte[maxDistanceAlphabetLimit]; + s.distOffset = new int[maxDistanceAlphabetLimit]; + s.input = input; + BitReader.initBitReader(s); + s.runningState = INITIALIZED; + } + + static void close(State s) throws IOException { + if (s.runningState == UNINITIALIZED) { + throw new IllegalStateException("State MUST be initialized"); + } + if (s.runningState == CLOSED) { + return; + } + s.runningState = CLOSED; + if (s.input != null) { + Utils.closeInput(s.input); + s.input = null; + } + } + + /** + * Decodes a number in the range [0..255], by reading 1 - 11 bits. + */ + private static int decodeVarLenUnsignedByte(State s) { + BitReader.fillBitWindow(s); + if (BitReader.readFewBits(s, 1) != 0) { + final int n = BitReader.readFewBits(s, 3); + if (n == 0) { + return 1; + } else { + return BitReader.readFewBits(s, n) + (1 << n); + } + } + return 0; + } + + private static void decodeMetaBlockLength(State s) { + BitReader.fillBitWindow(s); + s.inputEnd = BitReader.readFewBits(s, 1); + s.metaBlockLength = 0; + s.isUncompressed = 0; + s.isMetadata = 0; + if ((s.inputEnd != 0) && BitReader.readFewBits(s, 1) != 0) { + return; + } + final int sizeNibbles = BitReader.readFewBits(s, 2) + 4; + if (sizeNibbles == 7) { + s.isMetadata = 1; + if (BitReader.readFewBits(s, 1) != 0) { + throw new BrotliRuntimeException("Corrupted reserved bit"); + } + final int sizeBytes = BitReader.readFewBits(s, 2); + if (sizeBytes == 0) { + return; + } + for (int i = 0; i < sizeBytes; i++) { + BitReader.fillBitWindow(s); + final int bits = BitReader.readFewBits(s, 8); + if (bits == 0 && i + 1 == sizeBytes && sizeBytes > 1) { + throw new BrotliRuntimeException("Exuberant nibble"); + } + s.metaBlockLength |= bits << (i * 8); + } + } else { + for (int i = 0; i < sizeNibbles; i++) { + BitReader.fillBitWindow(s); + final int bits = BitReader.readFewBits(s, 4); + if (bits == 0 && i + 1 == sizeNibbles && sizeNibbles > 4) { + throw new BrotliRuntimeException("Exuberant nibble"); + } + s.metaBlockLength |= bits << (i * 4); + } + } + s.metaBlockLength++; + if (s.inputEnd == 0) { + s.isUncompressed = BitReader.readFewBits(s, 1); + } + } + + /** + * Decodes the next Huffman code from bit-stream. + */ + private static int readSymbol(int[] tableGroup, int tableIdx, State s) { + int offset = tableGroup[tableIdx]; + final int val = BitReader.peekBits(s); + offset += val & HUFFMAN_TABLE_MASK; + final int bits = tableGroup[offset] >> 16; + final int sym = tableGroup[offset] & 0xFFFF; + if (bits <= HUFFMAN_TABLE_BITS) { + s.bitOffset += bits; + return sym; + } + offset += sym; + final int mask = (1 << bits) - 1; + offset += (val & mask) >>> HUFFMAN_TABLE_BITS; + s.bitOffset += ((tableGroup[offset] >> 16) + HUFFMAN_TABLE_BITS); + return tableGroup[offset] & 0xFFFF; + } + + private static int readBlockLength(int[] tableGroup, int tableIdx, State s) { + BitReader.fillBitWindow(s); + final int code = readSymbol(tableGroup, tableIdx, s); + final int n = BLOCK_LENGTH_N_BITS[code]; + BitReader.fillBitWindow(s); + return BLOCK_LENGTH_OFFSET[code] + BitReader.readBits(s, n); + } + + private static void moveToFront(int[] v, int index) { + final int value = v[index]; + for (; index > 0; index--) { + v[index] = v[index - 1]; + } + v[0] = value; + } + + private static void inverseMoveToFrontTransform(byte[] v, int vLen) { + final int[] mtf = new int[256]; + for (int i = 0; i < 256; i++) { + mtf[i] = i; + } + for (int i = 0; i < vLen; i++) { + final int index = v[i] & 0xFF; + v[i] = (byte) mtf[index]; + if (index != 0) { + moveToFront(mtf, index); + } + } + } + + private static void readHuffmanCodeLengths( + int[] codeLengthCodeLengths, int numSymbols, int[] codeLengths, State s) { + int symbol = 0; + int prevCodeLen = DEFAULT_CODE_LENGTH; + int repeat = 0; + int repeatCodeLen = 0; + int space = 32768; + final int[] table = new int[32 + 1]; /* Speculative single entry table group. */ + final int tableIdx = table.length - 1; + Huffman.buildHuffmanTable(table, tableIdx, 5, codeLengthCodeLengths, CODE_LENGTH_CODES); + + while (symbol < numSymbols && space > 0) { + BitReader.readMoreInput(s); + BitReader.fillBitWindow(s); + final int p = BitReader.peekBits(s) & 31; + s.bitOffset += table[p] >> 16; + final int codeLen = table[p] & 0xFFFF; + if (codeLen < CODE_LENGTH_REPEAT_CODE) { + repeat = 0; + codeLengths[symbol++] = codeLen; + if (codeLen != 0) { + prevCodeLen = codeLen; + space -= 32768 >> codeLen; + } + } else { + final int extraBits = codeLen - 14; + int newLen = 0; + if (codeLen == CODE_LENGTH_REPEAT_CODE) { + newLen = prevCodeLen; + } + if (repeatCodeLen != newLen) { + repeat = 0; + repeatCodeLen = newLen; + } + final int oldRepeat = repeat; + if (repeat > 0) { + repeat -= 2; + repeat <<= extraBits; + } + BitReader.fillBitWindow(s); + repeat += BitReader.readFewBits(s, extraBits) + 3; + final int repeatDelta = repeat - oldRepeat; + if (symbol + repeatDelta > numSymbols) { + throw new BrotliRuntimeException("symbol + repeatDelta > numSymbols"); // COV_NF_LINE + } + for (int i = 0; i < repeatDelta; i++) { + codeLengths[symbol++] = repeatCodeLen; + } + if (repeatCodeLen != 0) { + space -= repeatDelta << (15 - repeatCodeLen); + } + } + } + if (space != 0) { + throw new BrotliRuntimeException("Unused space"); // COV_NF_LINE + } + // TODO(eustas): Pass max_symbol to Huffman table builder instead? + Utils.fillIntsWithZeroes(codeLengths, symbol, numSymbols); + } + + private static void checkDupes(int[] symbols, int length) { + for (int i = 0; i < length - 1; ++i) { + for (int j = i + 1; j < length; ++j) { + if (symbols[i] == symbols[j]) { + throw new BrotliRuntimeException("Duplicate simple Huffman code symbol"); // COV_NF_LINE + } + } + } + } + + /** + * Reads up to 4 symbols directly and applies predefined histograms. + */ + private static int readSimpleHuffmanCode(int alphabetSizeMax, int alphabetSizeLimit, + int[] tableGroup, int tableIdx, State s) { + // TODO(eustas): Avoid allocation? + final int[] codeLengths = new int[alphabetSizeLimit]; + final int[] symbols = new int[4]; + + final int maxBits = 1 + log2floor(alphabetSizeMax - 1); + + final int numSymbols = BitReader.readFewBits(s, 2) + 1; + for (int i = 0; i < numSymbols; i++) { + BitReader.fillBitWindow(s); + final int symbol = BitReader.readFewBits(s, maxBits); + if (symbol >= alphabetSizeLimit) { + throw new BrotliRuntimeException("Can't readHuffmanCode"); // COV_NF_LINE + } + symbols[i] = symbol; + } + checkDupes(symbols, numSymbols); + + int histogramId = numSymbols; + if (numSymbols == 4) { + histogramId += BitReader.readFewBits(s, 1); + } + + switch (histogramId) { + case 1: + codeLengths[symbols[0]] = 1; + break; + + case 2: + codeLengths[symbols[0]] = 1; + codeLengths[symbols[1]] = 1; + break; + + case 3: + codeLengths[symbols[0]] = 1; + codeLengths[symbols[1]] = 2; + codeLengths[symbols[2]] = 2; + break; + + case 4: // uniform 4-symbol histogram + codeLengths[symbols[0]] = 2; + codeLengths[symbols[1]] = 2; + codeLengths[symbols[2]] = 2; + codeLengths[symbols[3]] = 2; + break; + + case 5: // prioritized 4-symbol histogram + codeLengths[symbols[0]] = 1; + codeLengths[symbols[1]] = 2; + codeLengths[symbols[2]] = 3; + codeLengths[symbols[3]] = 3; + break; + + default: + break; + } + + // TODO(eustas): Use specialized version? + return Huffman.buildHuffmanTable( + tableGroup, tableIdx, HUFFMAN_TABLE_BITS, codeLengths, alphabetSizeLimit); + } + + // Decode Huffman-coded code lengths. + private static int readComplexHuffmanCode(int alphabetSizeLimit, int skip, + int[] tableGroup, int tableIdx, State s) { + // TODO(eustas): Avoid allocation? + final int[] codeLengths = new int[alphabetSizeLimit]; + final int[] codeLengthCodeLengths = new int[CODE_LENGTH_CODES]; + int space = 32; + int numCodes = 0; + for (int i = skip; i < CODE_LENGTH_CODES && space > 0; i++) { + final int codeLenIdx = CODE_LENGTH_CODE_ORDER[i]; + BitReader.fillBitWindow(s); + final int p = BitReader.peekBits(s) & 15; + // TODO(eustas): Demultiplex FIXED_TABLE. + s.bitOffset += FIXED_TABLE[p] >> 16; + final int v = FIXED_TABLE[p] & 0xFFFF; + codeLengthCodeLengths[codeLenIdx] = v; + if (v != 0) { + space -= (32 >> v); + numCodes++; + } + } + if (space != 0 && numCodes != 1) { + throw new BrotliRuntimeException("Corrupted Huffman code histogram"); // COV_NF_LINE + } + + readHuffmanCodeLengths(codeLengthCodeLengths, alphabetSizeLimit, codeLengths, s); + + return Huffman.buildHuffmanTable( + tableGroup, tableIdx, HUFFMAN_TABLE_BITS, codeLengths, alphabetSizeLimit); + } + + /** + * Decodes Huffman table from bit-stream. + * + * @return number of slots used by resulting Huffman table + */ + private static int readHuffmanCode(int alphabetSizeMax, int alphabetSizeLimit, + int[] tableGroup, int tableIdx, State s) { + BitReader.readMoreInput(s); + BitReader.fillBitWindow(s); + final int simpleCodeOrSkip = BitReader.readFewBits(s, 2); + if (simpleCodeOrSkip == 1) { + return readSimpleHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s); + } else { + return readComplexHuffmanCode(alphabetSizeLimit, simpleCodeOrSkip, tableGroup, tableIdx, s); + } + } + + private static int decodeContextMap(int contextMapSize, byte[] contextMap, State s) { + BitReader.readMoreInput(s); + final int numTrees = decodeVarLenUnsignedByte(s) + 1; + + if (numTrees == 1) { + Utils.fillBytesWithZeroes(contextMap, 0, contextMapSize); + return numTrees; + } + + BitReader.fillBitWindow(s); + final int useRleForZeros = BitReader.readFewBits(s, 1); + int maxRunLengthPrefix = 0; + if (useRleForZeros != 0) { + maxRunLengthPrefix = BitReader.readFewBits(s, 4) + 1; + } + final int alphabetSize = numTrees + maxRunLengthPrefix; + final int tableSize = MAX_HUFFMAN_TABLE_SIZE[(alphabetSize + 31) >> 5]; + /* Speculative single entry table group. */ + final int[] table = new int[tableSize + 1]; + final int tableIdx = table.length - 1; + readHuffmanCode(alphabetSize, alphabetSize, table, tableIdx, s); + for (int i = 0; i < contextMapSize; ) { + BitReader.readMoreInput(s); + BitReader.fillBitWindow(s); + final int code = readSymbol(table, tableIdx, s); + if (code == 0) { + contextMap[i] = 0; + i++; + } else if (code <= maxRunLengthPrefix) { + BitReader.fillBitWindow(s); + int reps = (1 << code) + BitReader.readFewBits(s, code); + while (reps != 0) { + if (i >= contextMapSize) { + throw new BrotliRuntimeException("Corrupted context map"); // COV_NF_LINE + } + contextMap[i] = 0; + i++; + reps--; + } + } else { + contextMap[i] = (byte) (code - maxRunLengthPrefix); + i++; + } + } + BitReader.fillBitWindow(s); + if (BitReader.readFewBits(s, 1) == 1) { + inverseMoveToFrontTransform(contextMap, contextMapSize); + } + return numTrees; + } + + private static int decodeBlockTypeAndLength(State s, int treeType, int numBlockTypes) { + final int[] ringBuffers = s.rings; + final int offset = 4 + treeType * 2; + BitReader.fillBitWindow(s); + int blockType = readSymbol(s.blockTrees, 2 * treeType, s); + final int result = readBlockLength(s.blockTrees, 2 * treeType + 1, s); + + if (blockType == 1) { + blockType = ringBuffers[offset + 1] + 1; + } else if (blockType == 0) { + blockType = ringBuffers[offset]; + } else { + blockType -= 2; + } + if (blockType >= numBlockTypes) { + blockType -= numBlockTypes; + } + ringBuffers[offset] = ringBuffers[offset + 1]; + ringBuffers[offset + 1] = blockType; + return result; + } + + private static void decodeLiteralBlockSwitch(State s) { + s.literalBlockLength = decodeBlockTypeAndLength(s, 0, s.numLiteralBlockTypes); + final int literalBlockType = s.rings[5]; + s.contextMapSlice = literalBlockType << LITERAL_CONTEXT_BITS; + s.literalTreeIdx = s.contextMap[s.contextMapSlice] & 0xFF; + final int contextMode = s.contextModes[literalBlockType]; + s.contextLookupOffset1 = contextMode << 9; + s.contextLookupOffset2 = s.contextLookupOffset1 + 256; + } + + private static void decodeCommandBlockSwitch(State s) { + s.commandBlockLength = decodeBlockTypeAndLength(s, 1, s.numCommandBlockTypes); + s.commandTreeIdx = s.rings[7]; + } + + private static void decodeDistanceBlockSwitch(State s) { + s.distanceBlockLength = decodeBlockTypeAndLength(s, 2, s.numDistanceBlockTypes); + s.distContextMapSlice = s.rings[9] << DISTANCE_CONTEXT_BITS; + } + + private static void maybeReallocateRingBuffer(State s) { + int newSize = s.maxRingBufferSize; + if (newSize > s.expectedTotalSize) { + /* TODO(eustas): Handle 2GB+ cases more gracefully. */ + final int minimalNewSize = s.expectedTotalSize; + while ((newSize >> 1) > minimalNewSize) { + newSize >>= 1; + } + if ((s.inputEnd == 0) && newSize < 16384 && s.maxRingBufferSize >= 16384) { + newSize = 16384; + } + } + if (newSize <= s.ringBufferSize) { + return; + } + final int ringBufferSizeWithSlack = newSize + MAX_TRANSFORMED_WORD_LENGTH; + final byte[] newBuffer = new byte[ringBufferSizeWithSlack]; + if (s.ringBuffer.length != 0) { + System.arraycopy(s.ringBuffer, 0, newBuffer, 0, s.ringBufferSize); + } + s.ringBuffer = newBuffer; + s.ringBufferSize = newSize; + } + + private static void readNextMetablockHeader(State s) { + if (s.inputEnd != 0) { + s.nextRunningState = FINISHED; + s.runningState = INIT_WRITE; + return; + } + // TODO(eustas): Reset? Do we need this? + s.literalTreeGroup = new int[0]; + s.commandTreeGroup = new int[0]; + s.distanceTreeGroup = new int[0]; + + BitReader.readMoreInput(s); + decodeMetaBlockLength(s); + if ((s.metaBlockLength == 0) && (s.isMetadata == 0)) { + return; + } + if ((s.isUncompressed != 0) || (s.isMetadata != 0)) { + BitReader.jumpToByteBoundary(s); + s.runningState = (s.isMetadata != 0) ? READ_METADATA : COPY_UNCOMPRESSED; + } else { + s.runningState = COMPRESSED_BLOCK_START; + } + + if (s.isMetadata != 0) { + return; + } + s.expectedTotalSize += s.metaBlockLength; + if (s.expectedTotalSize > 1 << 30) { + s.expectedTotalSize = 1 << 30; + } + if (s.ringBufferSize < s.maxRingBufferSize) { + maybeReallocateRingBuffer(s); + } + } + + private static int readMetablockPartition(State s, int treeType, int numBlockTypes) { + int offset = s.blockTrees[2 * treeType]; + if (numBlockTypes <= 1) { + s.blockTrees[2 * treeType + 1] = offset; + s.blockTrees[2 * treeType + 2] = offset; + return 1 << 28; + } + + final int blockTypeAlphabetSize = numBlockTypes + 2; + offset += readHuffmanCode( + blockTypeAlphabetSize, blockTypeAlphabetSize, s.blockTrees, 2 * treeType, s); + s.blockTrees[2 * treeType + 1] = offset; + + final int blockLengthAlphabetSize = NUM_BLOCK_LENGTH_CODES; + offset += readHuffmanCode( + blockLengthAlphabetSize, blockLengthAlphabetSize, s.blockTrees, 2 * treeType + 1, s); + s.blockTrees[2 * treeType + 2] = offset; + + return readBlockLength(s.blockTrees, 2 * treeType + 1, s); + } + + private static void calculateDistanceLut(State s, int alphabetSizeLimit) { + final byte[] distExtraBits = s.distExtraBits; + final int[] distOffset = s.distOffset; + final int npostfix = s.distancePostfixBits; + final int ndirect = s.numDirectDistanceCodes; + final int postfix = 1 << npostfix; + int bits = 1; + int half = 0; + + /* Skip short codes. */ + int i = NUM_DISTANCE_SHORT_CODES; + + /* Fill direct codes. */ + for (int j = 0; j < ndirect; ++j) { + distExtraBits[i] = 0; + distOffset[i] = j + 1; + ++i; + } + + /* Fill regular distance codes. */ + while (i < alphabetSizeLimit) { + final int base = ndirect + ((((2 + half) << bits) - 4) << npostfix) + 1; + /* Always fill the complete group. */ + for (int j = 0; j < postfix; ++j) { + distExtraBits[i] = (byte) bits; + distOffset[i] = base + j; + ++i; + } + bits = bits + half; + half = half ^ 1; + } + } + + private static void readMetablockHuffmanCodesAndContextMaps(State s) { + s.numLiteralBlockTypes = decodeVarLenUnsignedByte(s) + 1; + s.literalBlockLength = readMetablockPartition(s, 0, s.numLiteralBlockTypes); + s.numCommandBlockTypes = decodeVarLenUnsignedByte(s) + 1; + s.commandBlockLength = readMetablockPartition(s, 1, s.numCommandBlockTypes); + s.numDistanceBlockTypes = decodeVarLenUnsignedByte(s) + 1; + s.distanceBlockLength = readMetablockPartition(s, 2, s.numDistanceBlockTypes); + + BitReader.readMoreInput(s); + BitReader.fillBitWindow(s); + s.distancePostfixBits = BitReader.readFewBits(s, 2); + s.numDirectDistanceCodes = BitReader.readFewBits(s, 4) << s.distancePostfixBits; + // TODO(eustas): Reuse? + s.contextModes = new byte[s.numLiteralBlockTypes]; + for (int i = 0; i < s.numLiteralBlockTypes;) { + /* Ensure that less than 256 bits read between readMoreInput. */ + final int limit = Math.min(i + 96, s.numLiteralBlockTypes); + for (; i < limit; ++i) { + BitReader.fillBitWindow(s); + s.contextModes[i] = (byte) BitReader.readFewBits(s, 2); + } + BitReader.readMoreInput(s); + } + + // TODO(eustas): Reuse? + s.contextMap = new byte[s.numLiteralBlockTypes << LITERAL_CONTEXT_BITS]; + final int numLiteralTrees = decodeContextMap(s.numLiteralBlockTypes << LITERAL_CONTEXT_BITS, + s.contextMap, s); + s.trivialLiteralContext = 1; + for (int j = 0; j < s.numLiteralBlockTypes << LITERAL_CONTEXT_BITS; j++) { + if (s.contextMap[j] != j >> LITERAL_CONTEXT_BITS) { + s.trivialLiteralContext = 0; + break; + } + } + + // TODO(eustas): Reuse? + s.distContextMap = new byte[s.numDistanceBlockTypes << DISTANCE_CONTEXT_BITS]; + final int numDistTrees = decodeContextMap(s.numDistanceBlockTypes << DISTANCE_CONTEXT_BITS, + s.distContextMap, s); + + s.literalTreeGroup = decodeHuffmanTreeGroup(NUM_LITERAL_CODES, NUM_LITERAL_CODES, + numLiteralTrees, s); + s.commandTreeGroup = decodeHuffmanTreeGroup(NUM_COMMAND_CODES, NUM_COMMAND_CODES, + s.numCommandBlockTypes, s); + int distanceAlphabetSizeMax = calculateDistanceAlphabetSize( + s.distancePostfixBits, s.numDirectDistanceCodes, MAX_DISTANCE_BITS); + int distanceAlphabetSizeLimit = distanceAlphabetSizeMax; + if (s.isLargeWindow == 1) { + distanceAlphabetSizeMax = calculateDistanceAlphabetSize( + s.distancePostfixBits, s.numDirectDistanceCodes, MAX_LARGE_WINDOW_DISTANCE_BITS); + distanceAlphabetSizeLimit = calculateDistanceAlphabetLimit( + MAX_ALLOWED_DISTANCE, s.distancePostfixBits, s.numDirectDistanceCodes); + } + s.distanceTreeGroup = decodeHuffmanTreeGroup(distanceAlphabetSizeMax, distanceAlphabetSizeLimit, + numDistTrees, s); + calculateDistanceLut(s, distanceAlphabetSizeLimit); + + s.contextMapSlice = 0; + s.distContextMapSlice = 0; + s.contextLookupOffset1 = s.contextModes[0] * 512; + s.contextLookupOffset2 = s.contextLookupOffset1 + 256; + s.literalTreeIdx = 0; + s.commandTreeIdx = 0; + + s.rings[4] = 1; + s.rings[5] = 0; + s.rings[6] = 1; + s.rings[7] = 0; + s.rings[8] = 1; + s.rings[9] = 0; + } + + private static void copyUncompressedData(State s) { + final byte[] ringBuffer = s.ringBuffer; + + // Could happen if block ends at ring buffer end. + if (s.metaBlockLength <= 0) { + BitReader.reload(s); + s.runningState = BLOCK_START; + return; + } + + final int chunkLength = Math.min(s.ringBufferSize - s.pos, s.metaBlockLength); + BitReader.copyRawBytes(s, ringBuffer, s.pos, chunkLength); + s.metaBlockLength -= chunkLength; + s.pos += chunkLength; + if (s.pos == s.ringBufferSize) { + s.nextRunningState = COPY_UNCOMPRESSED; + s.runningState = INIT_WRITE; + return; + } + + BitReader.reload(s); + s.runningState = BLOCK_START; + } + + private static int writeRingBuffer(State s) { + final int toWrite = Math.min(s.outputLength - s.outputUsed, + s.ringBufferBytesReady - s.ringBufferBytesWritten); + // TODO(eustas): DCHECK(toWrite >= 0) + if (toWrite != 0) { + System.arraycopy(s.ringBuffer, s.ringBufferBytesWritten, s.output, + s.outputOffset + s.outputUsed, toWrite); + s.outputUsed += toWrite; + s.ringBufferBytesWritten += toWrite; + } + + if (s.outputUsed < s.outputLength) { + return 1; + } else { + return 0; + } + } + + private static int[] decodeHuffmanTreeGroup(int alphabetSizeMax, int alphabetSizeLimit, + int n, State s) { + final int maxTableSize = MAX_HUFFMAN_TABLE_SIZE[(alphabetSizeLimit + 31) >> 5]; + final int[] group = new int[n + n * maxTableSize]; + int next = n; + for (int i = 0; i < n; ++i) { + group[i] = next; + next += readHuffmanCode(alphabetSizeMax, alphabetSizeLimit, group, i, s); + } + return group; + } + + // Returns offset in ringBuffer that should trigger WRITE when filled. + private static int calculateFence(State s) { + int result = s.ringBufferSize; + if (s.isEager != 0) { + result = Math.min(result, s.ringBufferBytesWritten + s.outputLength - s.outputUsed); + } + return result; + } + + private static void doUseDictionary(State s, int fence) { + if (s.distance > MAX_ALLOWED_DISTANCE) { + throw new BrotliRuntimeException("Invalid backward reference"); + } + final int address = s.distance - s.maxDistance - 1 - s.cdTotalSize; + if (address < 0) { + initializeCompoundDictionaryCopy(s, -address - 1, s.copyLength); + s.runningState = COPY_FROM_COMPOUND_DICTIONARY; + } else { + // Force lazy dictionary initialization. + final ByteBuffer dictionaryData = Dictionary.getData(); + final int wordLength = s.copyLength; + if (wordLength > Dictionary.MAX_DICTIONARY_WORD_LENGTH) { + throw new BrotliRuntimeException("Invalid backward reference"); // COV_NF_LINE + } + final int shift = Dictionary.sizeBits[wordLength]; + if (shift == 0) { + throw new BrotliRuntimeException("Invalid backward reference"); // COV_NF_LINE + } + int offset = Dictionary.offsets[wordLength]; + final int mask = (1 << shift) - 1; + final int wordIdx = address & mask; + final int transformIdx = address >>> shift; + offset += wordIdx * wordLength; + final Transform.Transforms transforms = Transform.RFC_TRANSFORMS; + if (transformIdx >= transforms.numTransforms) { + throw new BrotliRuntimeException("Invalid backward reference"); // COV_NF_LINE + } + final int len = Transform.transformDictionaryWord(s.ringBuffer, s.pos, dictionaryData, + offset, wordLength, transforms, transformIdx); + s.pos += len; + s.metaBlockLength -= len; + if (s.pos >= fence) { + s.nextRunningState = MAIN_LOOP; + s.runningState = INIT_WRITE; + return; + } + s.runningState = MAIN_LOOP; + } + } + + private static void initializeCompoundDictionary(State s) { + s.cdBlockMap = new byte[1 << CD_BLOCK_MAP_BITS]; + int blockBits = CD_BLOCK_MAP_BITS; + // If this function is executed, then s.cdTotalSize > 0. + while (((s.cdTotalSize - 1) >>> blockBits) != 0) { + blockBits++; + } + blockBits -= CD_BLOCK_MAP_BITS; + s.cdBlockBits = blockBits; + int cursor = 0; + int index = 0; + while (cursor < s.cdTotalSize) { + while (s.cdChunkOffsets[index + 1] < cursor) { + index++; + } + s.cdBlockMap[cursor >>> blockBits] = (byte) index; + cursor += 1 << blockBits; + } + } + + private static void initializeCompoundDictionaryCopy(State s, int address, int length) { + if (s.cdBlockBits == -1) { + initializeCompoundDictionary(s); + } + int index = s.cdBlockMap[address >>> s.cdBlockBits]; + while (address >= s.cdChunkOffsets[index + 1]) { + index++; + } + if (s.cdTotalSize > address + length) { + throw new BrotliRuntimeException("Invalid backward reference"); + } + /* Update the recent distances cache */ + s.distRbIdx = (s.distRbIdx + 1) & 0x3; + s.rings[s.distRbIdx] = s.distance; + s.metaBlockLength -= length; + s.cdBrIndex = index; + s.cdBrOffset = address - s.cdChunkOffsets[index]; + s.cdBrLength = length; + s.cdBrCopied = 0; + } + + private static int copyFromCompoundDictionary(State s, int fence) { + int pos = s.pos; + final int origPos = pos; + while (s.cdBrLength != s.cdBrCopied) { + final int space = fence - pos; + final int chunkLength = s.cdChunkOffsets[s.cdBrIndex + 1] - s.cdChunkOffsets[s.cdBrIndex]; + final int remChunkLength = chunkLength - s.cdBrOffset; + int length = s.cdBrLength - s.cdBrCopied; + if (length > remChunkLength) { + length = remChunkLength; + } + if (length > space) { + length = space; + } + Utils.copyBytes( + s.ringBuffer, pos, s.cdChunks[s.cdBrIndex], s.cdBrOffset, s.cdBrOffset + length); + pos += length; + s.cdBrOffset += length; + s.cdBrCopied += length; + if (length == remChunkLength) { + s.cdBrIndex++; + s.cdBrOffset = 0; + } + if (pos >= fence) { + break; + } + } + return pos - origPos; + } + + /** + * Actual decompress implementation. + */ + static void decompress(State s) { + if (s.runningState == UNINITIALIZED) { + throw new IllegalStateException("Can't decompress until initialized"); + } + if (s.runningState == CLOSED) { + throw new IllegalStateException("Can't decompress after close"); + } + if (s.runningState == INITIALIZED) { + final int windowBits = decodeWindowBits(s); + if (windowBits == -1) { /* Reserved case for future expansion. */ + throw new BrotliRuntimeException("Invalid 'windowBits' code"); + } + s.maxRingBufferSize = 1 << windowBits; + s.maxBackwardDistance = s.maxRingBufferSize - 16; + s.runningState = BLOCK_START; + } + + int fence = calculateFence(s); + int ringBufferMask = s.ringBufferSize - 1; + byte[] ringBuffer = s.ringBuffer; + + while (s.runningState != FINISHED) { + // TODO(eustas): extract cases to methods for the better readability. + switch (s.runningState) { + case BLOCK_START: + if (s.metaBlockLength < 0) { + throw new BrotliRuntimeException("Invalid metablock length"); + } + readNextMetablockHeader(s); + /* Ring-buffer would be reallocated here. */ + fence = calculateFence(s); + ringBufferMask = s.ringBufferSize - 1; + ringBuffer = s.ringBuffer; + continue; + + case COMPRESSED_BLOCK_START: + readMetablockHuffmanCodesAndContextMaps(s); + s.runningState = MAIN_LOOP; + + // fall through + case MAIN_LOOP: + if (s.metaBlockLength <= 0) { + s.runningState = BLOCK_START; + continue; + } + BitReader.readMoreInput(s); + if (s.commandBlockLength == 0) { + decodeCommandBlockSwitch(s); + } + s.commandBlockLength--; + BitReader.fillBitWindow(s); + final int cmdCode = readSymbol(s.commandTreeGroup, s.commandTreeIdx, s) << 2; + final short insertAndCopyExtraBits = CMD_LOOKUP[cmdCode]; + final int insertLengthOffset = CMD_LOOKUP[cmdCode + 1]; + final int copyLengthOffset = CMD_LOOKUP[cmdCode + 2]; + s.distanceCode = CMD_LOOKUP[cmdCode + 3]; + BitReader.fillBitWindow(s); + { + final int insertLengthExtraBits = insertAndCopyExtraBits & 0xFF; + s.insertLength = insertLengthOffset + BitReader.readBits(s, insertLengthExtraBits); + } + BitReader.fillBitWindow(s); + { + final int copyLengthExtraBits = insertAndCopyExtraBits >> 8; + s.copyLength = copyLengthOffset + BitReader.readBits(s, copyLengthExtraBits); + } + + s.j = 0; + s.runningState = INSERT_LOOP; + + // fall through + case INSERT_LOOP: + if (s.trivialLiteralContext != 0) { + while (s.j < s.insertLength) { + BitReader.readMoreInput(s); + if (s.literalBlockLength == 0) { + decodeLiteralBlockSwitch(s); + } + s.literalBlockLength--; + BitReader.fillBitWindow(s); + ringBuffer[s.pos] = (byte) readSymbol(s.literalTreeGroup, s.literalTreeIdx, s); + s.pos++; + s.j++; + if (s.pos >= fence) { + s.nextRunningState = INSERT_LOOP; + s.runningState = INIT_WRITE; + break; + } + } + } else { + int prevByte1 = ringBuffer[(s.pos - 1) & ringBufferMask] & 0xFF; + int prevByte2 = ringBuffer[(s.pos - 2) & ringBufferMask] & 0xFF; + while (s.j < s.insertLength) { + BitReader.readMoreInput(s); + if (s.literalBlockLength == 0) { + decodeLiteralBlockSwitch(s); + } + final int literalContext = Context.LOOKUP[s.contextLookupOffset1 + prevByte1] + | Context.LOOKUP[s.contextLookupOffset2 + prevByte2]; + final int literalTreeIdx = s.contextMap[s.contextMapSlice + literalContext] & 0xFF; + s.literalBlockLength--; + prevByte2 = prevByte1; + BitReader.fillBitWindow(s); + prevByte1 = readSymbol(s.literalTreeGroup, literalTreeIdx, s); + ringBuffer[s.pos] = (byte) prevByte1; + s.pos++; + s.j++; + if (s.pos >= fence) { + s.nextRunningState = INSERT_LOOP; + s.runningState = INIT_WRITE; + break; + } + } + } + if (s.runningState != INSERT_LOOP) { + continue; + } + s.metaBlockLength -= s.insertLength; + if (s.metaBlockLength <= 0) { + s.runningState = MAIN_LOOP; + continue; + } + int distanceCode = s.distanceCode; + if (distanceCode < 0) { + // distanceCode in untouched; assigning it 0 won't affect distance ring buffer rolling. + s.distance = s.rings[s.distRbIdx]; + } else { + BitReader.readMoreInput(s); + if (s.distanceBlockLength == 0) { + decodeDistanceBlockSwitch(s); + } + s.distanceBlockLength--; + BitReader.fillBitWindow(s); + final int distTreeIdx = s.distContextMap[s.distContextMapSlice + distanceCode] & 0xFF; + distanceCode = readSymbol(s.distanceTreeGroup, distTreeIdx, s); + if (distanceCode < NUM_DISTANCE_SHORT_CODES) { + final int index = + (s.distRbIdx + DISTANCE_SHORT_CODE_INDEX_OFFSET[distanceCode]) & 0x3; + s.distance = s.rings[index] + DISTANCE_SHORT_CODE_VALUE_OFFSET[distanceCode]; + if (s.distance < 0) { + throw new BrotliRuntimeException("Negative distance"); // COV_NF_LINE + } + } else { + final int extraBits = s.distExtraBits[distanceCode]; + int bits; + if (s.bitOffset + extraBits <= BitReader.BITNESS) { + bits = BitReader.readFewBits(s, extraBits); + } else { + BitReader.fillBitWindow(s); + bits = BitReader.readBits(s, extraBits); + } + s.distance = s.distOffset[distanceCode] + (bits << s.distancePostfixBits); + } + } + + if (s.maxDistance != s.maxBackwardDistance + && s.pos < s.maxBackwardDistance) { + s.maxDistance = s.pos; + } else { + s.maxDistance = s.maxBackwardDistance; + } + + if (s.distance > s.maxDistance) { + s.runningState = USE_DICTIONARY; + continue; + } + + if (distanceCode > 0) { + s.distRbIdx = (s.distRbIdx + 1) & 0x3; + s.rings[s.distRbIdx] = s.distance; + } + + if (s.copyLength > s.metaBlockLength) { + throw new BrotliRuntimeException("Invalid backward reference"); // COV_NF_LINE + } + s.j = 0; + s.runningState = COPY_LOOP; + + // fall through + case COPY_LOOP: + int src = (s.pos - s.distance) & ringBufferMask; + int dst = s.pos; + final int copyLength = s.copyLength - s.j; + final int srcEnd = src + copyLength; + final int dstEnd = dst + copyLength; + if ((srcEnd < ringBufferMask) && (dstEnd < ringBufferMask)) { + if (copyLength < 12 || (srcEnd > dst && dstEnd > src)) { + for (int k = 0; k < copyLength; k += 4) { + ringBuffer[dst++] = ringBuffer[src++]; + ringBuffer[dst++] = ringBuffer[src++]; + ringBuffer[dst++] = ringBuffer[src++]; + ringBuffer[dst++] = ringBuffer[src++]; + } + } else { + Utils.copyBytesWithin(ringBuffer, dst, src, srcEnd); + } + s.j += copyLength; + s.metaBlockLength -= copyLength; + s.pos += copyLength; + } else { + for (; s.j < s.copyLength;) { + ringBuffer[s.pos] = + ringBuffer[(s.pos - s.distance) & ringBufferMask]; + s.metaBlockLength--; + s.pos++; + s.j++; + if (s.pos >= fence) { + s.nextRunningState = COPY_LOOP; + s.runningState = INIT_WRITE; + break; + } + } + } + if (s.runningState == COPY_LOOP) { + s.runningState = MAIN_LOOP; + } + continue; + + case USE_DICTIONARY: + doUseDictionary(s, fence); + continue; + + case COPY_FROM_COMPOUND_DICTIONARY: + s.pos += copyFromCompoundDictionary(s, fence); + if (s.pos >= fence) { + s.nextRunningState = COPY_FROM_COMPOUND_DICTIONARY; + s.runningState = INIT_WRITE; + return; + } + s.runningState = MAIN_LOOP; + continue; + + case READ_METADATA: + while (s.metaBlockLength > 0) { + BitReader.readMoreInput(s); + // Optimize + BitReader.fillBitWindow(s); + BitReader.readFewBits(s, 8); + s.metaBlockLength--; + } + s.runningState = BLOCK_START; + continue; + + case COPY_UNCOMPRESSED: + copyUncompressedData(s); + continue; + + case INIT_WRITE: + s.ringBufferBytesReady = Math.min(s.pos, s.ringBufferSize); + s.runningState = WRITE; + + // fall through + case WRITE: + if (writeRingBuffer(s) == 0) { + // Output buffer is full. + return; + } + if (s.pos >= s.maxBackwardDistance) { + s.maxDistance = s.maxBackwardDistance; + } + // Wrap the ringBuffer. + if (s.pos >= s.ringBufferSize) { + if (s.pos > s.ringBufferSize) { + Utils.copyBytesWithin(ringBuffer, 0, s.ringBufferSize, s.pos); + } + s.pos &= ringBufferMask; + s.ringBufferBytesWritten = 0; + } + s.runningState = s.nextRunningState; + continue; + + default: + throw new BrotliRuntimeException("Unexpected state " + String.valueOf(s.runningState)); + } + } + if (s.runningState == FINISHED) { + if (s.metaBlockLength < 0) { + throw new BrotliRuntimeException("Invalid metablock length"); + } + BitReader.jumpToByteBoundary(s); + BitReader.checkHealth(s, 1); + } + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Decoder.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Decoder.java new file mode 100644 index 0000000..e33f5a9 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Decoder.java @@ -0,0 +1,72 @@ +package org.brotli.dec; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class Decoder { + private static long decodeBytes(InputStream input, OutputStream output, byte[] buffer) + throws IOException { + long totalOut = 0; + int readBytes; + BrotliInputStream in = new BrotliInputStream(input); + in.enableLargeWindow(); + try { + while ((readBytes = in.read(buffer)) >= 0) { + output.write(buffer, 0, readBytes); + totalOut += readBytes; + } + } finally { + in.close(); + } + return totalOut; + } + + private static void decompress(String fromPath, String toPath, byte[] buffer) throws IOException { + long start; + long bytesDecoded; + long end; + InputStream in = null; + OutputStream out = null; + try { + in = new FileInputStream(fromPath); + out = new FileOutputStream(toPath); + start = System.nanoTime(); + bytesDecoded = decodeBytes(in, out, buffer); + end = System.nanoTime(); + } finally { + if (in != null) { + in.close(); // Hopefully, does not throw exception. + } + if (out != null) { + out.close(); + } + } + + double timeDelta = (end - start) / 1000000000.0; + if (timeDelta <= 0) { + return; + } + double mbDecoded = bytesDecoded / (1024.0 * 1024.0); + System.out.println(mbDecoded / timeDelta + " MiB/s"); + } + + public static void main(String... args) throws IOException { + if (args.length != 2 && args.length != 3) { + System.out.println("Usage: decoder [repeat]"); + return; + } + + int repeat = 1; + if (args.length == 3) { + repeat = Integer.parseInt(args[2]); + } + + byte[] buffer = new byte[1024 * 1024]; + for (int i = 0; i < repeat; ++i) { + decompress(args[0], args[1], buffer); + } + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Dictionary.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Dictionary.java new file mode 100644 index 0000000..c2258ad --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Dictionary.java @@ -0,0 +1,94 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.nio.ByteBuffer; + +/** + * Collection of static dictionary words. + * + *

Dictionary content is loaded from binary resource when {@link #getData()} is executed for the + * first time. Consequently, it saves memory and CPU in case dictionary is not required. + * + *

One possible drawback is that multiple threads that need dictionary data may be blocked (only + * once in each classworld). To avoid this, it is enough to call {@link #getData()} proactively. + */ +public final class Dictionary { + static final int MIN_DICTIONARY_WORD_LENGTH = 4; + static final int MAX_DICTIONARY_WORD_LENGTH = 31; + + private static ByteBuffer data = ByteBuffer.allocateDirect(0); + static final int[] offsets = new int[32]; + static final int[] sizeBits = new int[32]; + + private static class DataLoader { + static final boolean OK; + + static { + boolean ok = true; + try { + Class.forName(Dictionary.class.getPackage().getName() + ".DictionaryData"); + } catch (Throwable ex) { + ok = false; + } + OK = ok; + } + } + + public static void setData(ByteBuffer newData, int[] newSizeBits) { + if ((Utils.isDirect(newData) == 0) || (Utils.isReadOnly(newData) == 0)) { + throw new BrotliRuntimeException("newData must be a direct read-only byte buffer"); + } + // TODO: is that so? + if (newSizeBits.length > MAX_DICTIONARY_WORD_LENGTH) { + throw new BrotliRuntimeException( + "sizeBits length must be at most " + String.valueOf(MAX_DICTIONARY_WORD_LENGTH)); + } + for (int i = 0; i < MIN_DICTIONARY_WORD_LENGTH; ++i) { + if (newSizeBits[i] != 0) { + throw new BrotliRuntimeException( + "first " + String.valueOf(MIN_DICTIONARY_WORD_LENGTH) + " must be 0"); + } + } + final int[] dictionaryOffsets = Dictionary.offsets; + final int[] dictionarySizeBits = Dictionary.sizeBits; + System.arraycopy(newSizeBits, 0, dictionarySizeBits, 0, newSizeBits.length); + int pos = 0; + final int limit = newData.capacity(); + for (int i = 0; i < newSizeBits.length; ++i) { + dictionaryOffsets[i] = pos; + final int bits = dictionarySizeBits[i]; + if (bits != 0) { + if (bits >= 31) { + throw new BrotliRuntimeException("newSizeBits values must be less than 31"); + } + pos += i << bits; + if (pos <= 0 || pos > limit) { + throw new BrotliRuntimeException("newSizeBits is inconsistent: overflow"); + } + } + } + for (int i = newSizeBits.length; i < 32; ++i) { + dictionaryOffsets[i] = pos; + } + if (pos != limit) { + throw new BrotliRuntimeException("newSizeBits is inconsistent: underflow"); + } + Dictionary.data = newData; + } + + public static ByteBuffer getData() { + if (data.capacity() != 0) { + return data; + } + if (!DataLoader.OK) { + throw new BrotliRuntimeException("brotli dictionary is not set"); + } + /* Might have been set when {@link DictionaryData} was loaded.*/ + return data; + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/DictionaryData.java b/firka_wear/android/app/src/main/java/org/brotli/dec/DictionaryData.java new file mode 100644 index 0000000..ad96f38 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/DictionaryData.java @@ -0,0 +1,75 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.nio.ByteBuffer; + +/** + * Built-in dictionary data. + * + * When this class is loaded, it sets its data: {@link Dictionary#setData(ByteBuffer)}. + */ +final class DictionaryData { + private static final String DATA0 = "wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?\"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+\"sj`hfujo'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sksolpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\u000ElupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8\u000EojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\u000Elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\u007F\"+njmfyk9\u0004abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{\"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\u000Bwbmhzbqgaltoavpk965YIbub03s{\t\u007F~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\u0005rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\u000E\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\u007F.\t\"331*mgltX2^8X^8\tOld#pbow\u000E\t\n\nabmdwqjnabwk*x\u000E\t33s{\t~*8hl9\u0000effpbg=\u000Ep9,,#X^8wloosovd+*x\tx\u000E\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\u000E\t~\u000E1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?\"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\u000E\tabmgprvfvf>#x~8;3s{8`hjmdx\u000E\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\u007F\u007F#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\u000Fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#\">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?\"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\u007Fpvjwfpoj`fkbqqz213!#ptffwwq=\u000E\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\u000Fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\u000E\t?\"pwffo#zlv#k1=\u000E\telqn#ifpvp233&#nfmv-\u000E\t\n\u000E\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\u007F`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\u000E\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\u007F\u007F#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\u007Ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\u007F\u007F#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\u000Evpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\u000BBl\bQ\u007F\u000BUm\u0005Gx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\u000BBM\u000B|j\u0004BV\tqw\tcC\bWI\npa\tfM\n{Z\u0005{X\bTF\bVV\bVK\t\u007Fm\u0004kF\t[]\bPm\bTv\nsI\u000Bpg\t[I\bQp\u0004mx\u000B_W\n^M\npe\u000BQ}\u000BGu\nel\npe\u0004Ch\u0004BV\bTA\tSo\nzk\u000BGL\u000BxD\nd[\u0005Jz\u0005MY\bQp\u0004li\nfl\npC\u0005{B\u0005Nt\u000BwT\ti_\bTg\u0004QQ\n|p\u000BXN\bQS\u000BxD\u0004QC\bWZ\tpD\u000BVS\bTW\u0005Nt\u0004Yh\nzu\u0004Kj\u0005N}\twr\tHa\n_D\tj`\u000BQ}\u000BWp\nxZ\u0004{c\tji\tBU\nbD\u0004a|\tTn\tpV\nZd\nmC\u000BEV\u0005{X\tc}\tTo\bWl\bUd\tIQ\tcg\u000Bxs\nXW\twR\u000Bek\tc}\t]y\tJn\nrp\neg\npV\nz\\\u0005{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHv\u0004Su\bTF\u000B_W\u000BWs\u000BsI\u0005m\u007F\nTT\ndc\tUS\t}f\tiZ\bWz\tc}\u0004MD\tBe\tiD\u000B@@\bTl\bPv\t}t\u0004Sw\u0004M`\u000BnU\tkW\u000Bed\nqo\u000BxY\tA|\bTz\u000By`\u0004BR\u0004BM\tia\u0004XU\nyu\u0004n^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\t\u007Fm\tav\tBN\u000Bb\\\tpD\bTf\nY[\tJn\bQy\t[^\u000BWc\u000Byu\u0004Dl\u0004CJ\u000BWj\u000BHR\t`V\u000BuW\tQy\np@\u000BGu\u0005pl\u0004Jm\bW[\nLP\nxC\n`m\twQ\u0005ui\u0005\u007FR\nbI\twQ\tBZ\tWV\u0004BR\npg\tcg\u0005ti\u0004CW\n_y\tRg\bQa\u000BQB\u000BWc\nYb\u0005le\ngE\u0004Su\nL[\tQ\u007F\tea\tdj\u000B]W\nb~\u0004M`\twL\bTV\bVH\nt\u007F\npl\t|b\u0005s_\bU|\bTa\u0004oQ\u0005lv\u0004Sk\u0004M`\bTv\u000BK}\nfl\tcC\u0004oQ\u0004BR\tHk\t|d\bQp\tHK\tBZ\u000BHR\bPv\u000BLx\u000BEZ\bT\u007F\bTv\tiD\u0005oD\u0005MU\u000BwB\u0004Su\u0005k`\u0004St\ntC\tPl\tKg\noi\tjY\u000BxY\u0004h}\nzk\bWZ\t\u007Fm\u000Be`\tTB\tfE\nzk\t`z\u0004Yh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYc\u0004Kd\nfy\u0004Yh\t[I\u000BDg\u0004Jm\n]n\nlb\bUd\n{Z\tlu\tfs\u0004oQ\bTW\u0004Jm\u000BwB\tea\u0004Yh\u0004BC\tsb\tTn\nzU\n_y\u000BxY\tQ]\ngw\u0004mt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\u000BRb\twQ\n]Q\u0004QJ\bWg\u000BWa\bQj\ntC\bVH\nYm\u000Bxs\bVK\nel\bWI\u000BxY\u0004Cq\ntR\u000BHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\u000Bxs\u000B_W\td{\u000BQ}\tcg\tTz\tA|\tCj\u000BLm\u0005N}\u0005m\u007F\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\u000BQ}\bTf\u0005ka\u0004Jm\u000B@@\bV`\tzp\n@N\u0004Sw\tiI\tcg\noi\u0004Su\bVw\u0004lo\u0004Cy\tc}\u000Bb\\\tsU\u0004BA\bWI\bTf\nxS\tVp\nd|\bTV\u000BbC\tNo\u0005Ju\nTC\t|`\n{Z\tD]\bU|\tc}\u0005lm\bTl\tBv\tPl\tc}\bQp\t\u007Fm\nLk\tkj\n@N\u0004Sb\u0004KO\tj_\tp\\\nzU\bTl\bTg\bWI\tcf\u0004XO\bWW\ndz\u0004li\tBN\nd[\bWO\u0004MD\u000BKC\tdj\tI_\bVV\ny\\\u000BLm\u0005xl\txB\tkV\u000Bb\\\u000BJW\u000BVS\tVx\u000BxD\td{\u0004MD\bTa\t|`\u000BPz\u0004R}\u000BWs\u0004BM\nsI\u0004CN\bTa\u0004Jm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\u000BWh\u000BWk\nxS\u000BAz\u000BwX\nbI\u0004oQ\tfw\nqI\nV|\nun\u0005z\u007F\u000Bpg\td\\\u000BoA\u0005{D\ti_\u0005xB\bT\u007F\t`V\u0005qr\tTT\u0004g]\u0004CA\u000BuR\tVJ\tT`\npw\u000BRb\tI_\nCx\u0004Ro\u000BsI\u0004Cj\u0004Kh\tBv\tWV\u0004BB\u0005oD\u0005{D\nhc\u0004Km\u000B^R\tQE\n{I\np@\nc|\u0005Gt\tc}\u0004Dl\nzU\u0005qN\tsV\u0005k}\tHh\u000B|j\nqo\u0005u|\tQ]\u000Bek\u0005\u007FZ\u0004M`\u0004St\npe\tdj\bVG\u000BeE\t\u007Fm\u000BWc\u0004|I\n[W\tfL\bT\u007F\tBZ\u0004Su\u000BKa\u0004Cq\u0005Nt\u0004Y[\nqI\bTv\tfM\ti@\t}f\u0004B\\\tQy\u000BBl\bWg\u0004XD\u0005kc\u000Bx[\bVV\tQ]\t\u007Fa\tPy\u000BxD\nfI\t}f\u0005oD\tdj\tSG\u0005ls\t~D\u0004CN\n{Z\t\\v\n_D\nhc\u000Bx_\u0004C[\tAJ\nLM\tVx\u0004CI\tbj\tc^\tcF\ntC\u0004Sx\twr\u0004XA\bU\\\t|a\u000BK\\\bTV\bVj\nd|\tfs\u0004CX\ntb\bRw\tVx\tAE\tA|\bT\u007F\u0005Nt\u000BDg\tVc\bTl\u0004d@\npo\t\u007FM\tcF\npe\tiZ\tBo\bSq\nfH\u0004l`\bTx\bWf\tHE\u000BF{\tcO\tfD\nlm\u000BfZ\nlm\u000BeU\tdG\u0004BH\bTV\tSi\u0005MW\nwX\nz\\\t\\c\u0004CX\nd}\tl}\bQp\bTV\tF~\bQ\u007F\t`i\ng@\u0005nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\u000BxY\u0004Kj\tAJ\u0005uN\ti[\npe\u0004Sk\u000BDg\u000Bx]\bVb\bVV\nea\tkV\nqI\bTa\u0004Sk\nAO\tpD\ntb\nts\nyi\bVg\ti_\u000B_W\nLk\u0005Nt\tyj\tfM\u0004R\u007F\tiI\bTl\u000BwX\tsV\u000BMl\nyu\tAJ\bVj\u0004KO\tWV\u000BA}\u000BW\u007F\nrp\tiD\u000B|o\u0005lv\u000BsI\u0004BM\td~\tCU\bVb\u0004eV\npC\u000BwT\tj`\tc}\u000Bxs\u000Bps\u000Bvh\tWV\u000BGg\u000BAe\u000BVK\u000B]W\trg\u000BWc\u0005F`\tBr\u000Bb\\\tdZ\bQp\nqI\u0004kF\nLk\u000BAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_\u0005{A\u0005wj\twN\u000B@@\bTe\ti_\n_D\twL\nAH\u000BiK\u000Bek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\nps\u0005Gt\u000BVK\npl\u0004S}\u000BWP\t|d\u0004MD\u000BHV\bT\u007F\u0004R}\u0004M`\bTV\bVH\u0005lv\u0004Ch\bW[\u0004Ke\tR{\u000B^R\tab\tBZ\tVA\tB`\nd|\nhs\u0004Ke\tBe\u0004Oi\tR{\td\\\u0005nB\bWZ\tdZ\tVJ\u0005Os\t\u007Fm\u0004uQ\u000BhZ\u0004Q@\u0004QQ\nfI\bW[\u0004B\\\u0004li\nzU\nMd\u0004M`\nxS\bVV\n\\}\u000BxD\t\u007Fm\bTp\u0004IS\nc|\tkV\u0005i~\tV{\u000BhZ\t|b\bWt\n@R\u000BoA\u000BnU\bWI\tea\tB`\tiD\tc}\tTz\u0004BR\u000BQB\u0005Nj\tCP\t[I\bTv\t`W\u0005uN\u000Bpg\u000Bpg\u000BWc\tiT\tbs\twL\tU_\tc\\\t|h\u000BKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|b\u0004m`\bTv\nyd\nrp\bWf\tUX\u0004BV\nzk\nd}\twQ\t}f\u0004Ce\u000Bed\bTW\bSB\nxU\tcn\bTb\ne\u007F\ta\\\tSG\bU|\npV\nN\\\u0004Kn\u000BnU\tAt\tpD\u000B^R\u000BIr\u0004b[\tR{\tdE\u000BxD\u000BWK\u000BWA\bQL\bW@\u0004Su\bUd\nDM\tPc\u0004CA\u0004Dl\u0004oQ\tHs\u0005wi\u0004ub\n\u007Fa\bQp\u0005Ob\nLP\bTl\u0004Y[\u000BK}\tAJ\bQ\u007F\u0004n^\u000BsA\bSM\nqM\bWZ\n^W\u000Bz{\u0004S|\tfD\bVK\bTv\bPv\u0004BB\tCP\u0004dF\tid\u000Bxs\u0004mx\u000Bws\tcC\ntC\tyc\u0005M`\u000BW\u007F\nrh\bQp\u000BxD\u0004\\o\nsI\u0004_k\nzu\u0004kF\tfD\u0004Xs\u0004XO\tjp\bTv\u0004BS\u0005{B\tBr\nzQ\nbI\tc{\u0004BD\u0004BV\u0005nO\bTF\tca\u0005Jd\tfL\tPV\tI_\nlK\u0004`o\twX\npa\tgu\bP}\u0005{^\bWf\n{I\tBN\npa\u0004Kl\u000Bpg\tcn\tfL\u000Bvh\u0004Cq\bTl\u000BnU\bSq\u0004Cm\twR\bUJ\npe\nyd\nYg\u0004Cy\u000BKW\tfD\nea\u0004oQ\tj_\tBv\u0004nM\u000BID\bTa\nzA\u0005pl\n]n\bTa\tR{\tfr\n_y\bUg\u0005{X\u0005kk\u000BxD\u0004|I\u0005xl\nfy\u0004Ce\u000BwB\nLk\u000Bd]\noi\n}h\tQ]\npe\bVw\u0004Hk\u0004OQ\nzk\tAJ\npV\bPv\ny\\\tA{\u0004Oi\bSB\u0004XA\u000BeE\tjp\nq}\tiD\u0005qN\u000B^R\t\u007Fm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\u000BHV\bTf\tTn\u0004\\N\u0004\\N\nuB\u0005lv\nyu\tTd\bTf\bPL\u000B]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\\u0005ia\bWZ\tcF\u0004Jm\n{Z\bWO\u0004_k\u0004Df\u0004RR\td\\\bVV\u000Bxs\u0004BN\u0005ti\u0004lm\tTd\t]y\u000BHV\tSo\u000B|j\u0004XX\tA|\u000BZ^\u000BGu\bTW\u0005M`\u0004kF\u000BhZ\u000BVK\tdG\u000BBl\tay\nxU\u0005qE\u0005nO\bVw\nqI\u0004CX\ne\u007F\tPl\bWO\u000BLm\tdL\u0005uH\u0004Cm\tdT\u0004fn\u000BwB\u0005ka\u000BnU\n@M\nyT\tHv\t\\}\u0004Kh\td~\u0004Yh\u0005k}\neR\td\\\bWI\t|b\tHK\tiD\bTW\u0005MY\npl\bQ_\twr\u000BAx\tHE\bTg\bSq\u0005vp\u000Bb\\\bWO\nOl\nsI\nfy\u000BID\t\\c\n{Z\n^~\npe\nAO\tTT\u000Bxv\u0004k_\bWO\u000B|j\u000BwB\tQy\ti@\tPl\tHa\tdZ\u0005k}\u0004ra\tUT\u000BJc\u000Bed\np@\tQN\nd|\tkj\tHk\u0004M`\noi\twr\td\\\nlq\no_\nlb\nL[\tac\u0004BB\u0004BH\u0004Cm\npl\tIQ\bVK\u000Bxs\n`e\u000BiK\npa\u0004Oi\tUS\bTp\tfD\nPG\u0005kk\u0004XA\nz\\\neg\u000BWh\twR\u0005qN\nqS\tcn\u0004lo\nxS\n^W\tBU\nt\u007F\tHE\tp\\\tfF\tfw\bVV\bW@\tak\u000BVK\u0005ls\tVJ\bVV\u000BeE\u0004\\o\nyX\nYm\u0004M`\u0005lL\nd|\nzk\tA{\u0005sE\twQ\u0004XT\nt\u007F\tPl\t]y\u000BwT\u0005{p\u0004MD\u000Bb\\\tQ]\u0004Kj\tJn\nAH\u000BRb\tBU\tHK\t\\c\nfI\u0005m\u007F\nqM\n@R\tSo\noi\u0004BT\tHv\n_y\u0004Kh\tBZ\t]i\bUJ\tV{\u0004Sr\nbI\u000BGg\ta_\bTR\nfI\nfl\t[K\tII\u0004S|\u000BuW\tiI\bWI\nqI\u000B|j\u0004BV\bVg\bWZ\u0004kF\u000Bx]\bTA\tab\tfr\ti@\tJd\tJd\u000Bps\nAO\bTa\u0005xu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\u000Bw}\u000BqO\ti[\bQ\u007F\bTz\u000BVF\twN\u0005ts\tdw\bTv\neS\ngi\tNr\u0005yS\npe\bVV\bSq\n`m\tyj\tBZ\u000BWX\bSB\tc\\\nUR\t[J\tc_\u0004nM\bWQ\u000BAx\nMd\tBr\u0005ui\u000BxY\bSM\u000BWc\u000B|j\u000Bxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\u000BeU\u0004e^\bTg\nqI\tac\bPv\tcF\u0004oQ\tQ\u007F\u000BhZ\u0005ka\nz\\\tiK\tBU\n`k\tCP\u0004S|\u0004M`\n{I\tS{\u0004_O\tBZ\u0004Zi\u0004Sk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\u000BGu\u0005yS\nqA\t[r\neK\u0004M`\tdZ\u0005lL\bUg\bTl\nbD\tUS\u000Bb\\\tpV\ncc\u0004S\\\tct\t`z\bPL\u000BWs\nA`\neg\bSq\u0005uE\u0004CR\u000BDg\t`W\u000Bz{\u000BWc\u0004Sk\u0004Sk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\u000BRb\bTQ\npl\u0005Gt\u000BuW\u0005uj\npF\nqI\tfL\t[I\tia\u0004XO\nyu\u000BDg\u000Bed\tq{\u0004VG\bQ\u007F\u0005ka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps\u0004]j\tkV\toU\bTp\nzU\u0005nB\u000BB]\ta{\bV@\n]n\u0004m`\tcz\tR{\u0004m`\bQa\u000BwT\bSM\u0005MY\u0005qN\tdj\u0005~s\u000BQ}\u0005MY\u000BMB\tBv\twR\bRg\u000BQ}\tql\u000BKC\nrm\u0005xu\u0004CC\u000BwB\u000Bvh\tBq\u0004Xq\npV\ti_\u0005Ob\u0005uE\nbd\nqo\u000B{i\nC~\tBL\u000BeE\u0005uH\bVj\u0004Ey\u0004Gz\u000BzR\u000B{i\tcf\n{Z\n]n\u0004XA\u000BGu\u000BnU\thS\u000BGI\nCc\tHE\bTA\tHB\u0004BH\u0004Cj\nCc\bTF\tHE\nXI\tA{\bQ\u007F\tc\\\u000BmO\u000BWX\nfH\np@\u0005MY\bTF\nlK\tBt\nzU\tTT\u0004Km\u000BwT\npV\ndt\u000ByI\tVx\tQ\u007F\tRg\tTd\nzU\bRS\nLM\twA\u0004nM\tTn\ndS\t]g\nLc\u000BwB\t}t\t[I\tCP\u0004kX\u000BFm\u000BhZ\u0005m\u007F\ti[\np@\u000BQ}\u000BW\u007F\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\u000BRb\tio\tPy\u0004Y[\nxU\tct\u000B@@\tww\bPv\u0004BM\u0004FF\ntb\u0005v|\u000BKm\tBq\tBq\u0004Kh\u0004`o\nZd\u0004XU\ti]\t|`\tSt\u0004B\\\bQ\u007F\u000B_W\tTJ\nqI\t|a\tA{\u000BuP\u0004MD\tPl\nxR\tfL\u000Bws\tc{\td\\\bV`\neg\tHK\u0005kc\nd|\bVV\ny\\\u0005kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\u000BW\u007F\nqs\u0005lv\bSM\u0004Zi\u000BVK\u0005ia\u000BQB\tQ\u007F\n{Z\bPt\u000BKl\nlK\nhs\ndS\bVK\u0005mf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\u000BDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\u000BeU\nBf\tdj\u0005Mr\n|p\t\\g\t]r\bVb\u0005{D\nd[\u0004XN\tfM\tO\\\u0005s_\tcf\tiZ\u0004XN\u000BWc\tqv\n`m\tU^\u0005oD\nd|\u000BGg\tdE\u000Bwf\u0004lo\u0004u}\nd|\u0005oQ\t`i\u0004Oi\u000BxD\ndZ\nCx\u0004Yw\nzk\ntb\ngw\tyj\tB`\nyX\u000Bps\ntC\u000BpP\u000Bqw\bPu\bPX\tDm\npw\u0005Nj\tss\taG\u000Bxs\bPt\noL\u0004Gz\tOk\ti@\ti]\u0004eC\tIQ\tii\tdj\u000B@J\t|d\u0005uh\bWZ\u000BeU\u000BnU\bTa\tcC\u0004g]\nzk\u0004Yh\bVK\nLU\np@\ntb\ntR\tCj\u000BNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfD\u0005ln\t|d\tbs\nqI\u0005{B\u000BAx\np@\nzk\u000BRb\u0005Os\u000BWS\u0004e^\u000BD_\tBv\u000BWd\bVb\u000Bxs\u000BeE\bRw\n]n\n|p\u000Bg|\tfw\u0005kc\bTI\u0005ka\n\\T\u0004Sp\tju\u000Bps\npe\u0005u|\u000BGr\bVe\tCU\u0004]M\u0004XU\u000BxD\bTa\tIQ\u000BWq\tCU\tam\tdj\bSo\u0004Sw\u000BnU\u0004Ch\tQ]\u0005s_\bPt\tfS\bTa\t\\}\n@O\u0004Yc\tUZ\bTx\npe\u000BnU\nzU\t|}\tiD\nz\\\bSM\u000BxD\u0004BR\nzQ\tQN\u0004]M\u0004Yh\nLP\u000BFm\u000BLX\u0005vc\u000Bql\u0005ka\tHK\bVb\ntC\nCy\bTv\nuV\u0004oQ\t`z\t[I\tB`\u000BRb\tyj\tsb\u000BWs\bTl\tkV\u000Bed\ne\u007F\u0005lL\u000BxN\t\u007Fm\nJn\tjY\u000BxD\bVb\bSq\u000Byu\twL\u000BXL\bTA\tpg\tAt\tnD\u0004XX\twR\npl\nhw\u0005yS\nps\tcO\bW[\u000B|j\u0004XN\tsV\tp\\\tBe\nb~\nAJ\n]e\u0005k`\u0005qN\tdw\tWV\tHE\u000BEV\u0005Jz\tid\tB`\tzh\u0005E]\tfD\bTg\u0005qN\bTa\tja\u0004Cv\bSM\nhc\bUe\u0005t_\tie\u0004g]\twQ\nPn\bVB\tjw\bVg\u000BbE\tBZ\u000BRH\bP{\tjp\n\\}\ta_\tcC\t|a\u000BD]\tBZ\ti[\tfD\u000BxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlK\u0004oQ\u0004lo\u000BLx\u000BM@\bWZ\u0004Kn\u000Bpg\nTi\nIv\n|r\u000B@}\u0005Jz\u0005Lm\u0005Wh\u0005k}\u0005ln\u000BxD\n]s\u0004gc\u000Bps\tBr\bTW\u000BBM\u0005tZ\nBY\u0004DW\tjf\u000BSW\u0004C}\nqo\tdE\tmv\tIQ\bPP\bUb\u0005lv\u0004BC\nzQ\t[I\u000Bgl\nig\bUs\u0004BT\u000BbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\u000BID\u000B|j\u0004KO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8\"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\u000E\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#\">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\u000E\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\u000E\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\u000E\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\u000E\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\u000E\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?\"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\u007F\u007F#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsksbo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?\"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-iptfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\u000E\t?\"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\u000E\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?\"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?\"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\u007F\u007Fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\u000E\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\u000E\t\u000E\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp\">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\u000E\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl\"..#fmgojfp#jm$^*8\u000E\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?\"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\u000E\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\u000E\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\u000E\t\u000E\t\u000E\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll\"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbmgjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\u000E\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\u000E\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\u000E\t\u000E\t?\"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\u000E\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?\"..#fmg?,psbm=??aq#,=\u000E\t\\slsvsp\u007Fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\u000E\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8\"..#wjwof!=?,irvfqz-?,elqn=\t+\u000BBl\bQ\u007F*+\u000BUm\u0005Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\u000E\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\u000E\t?\"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?\"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?\"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\u000E\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\u000E\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8\"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\u007Fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\u000E\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@\u0004Fr\u000BBl\bQ\u007F\tA{\u000BUm\u0005Gx\tA{\u0001yp\u0006YA\u0000zX\bTV\bWl\bUd\u0004BM\u000BB{\npV\u000B@x\u0004B\\\np@\u0004Db\u0004Gz\tal\npa\tfM\tuD\bV~\u0004mx\u000BQ}\ndS\tp\\\bVK\bS]\bU|\u0005oD\tkV\u000Bed\u000BHR\nb~\u0004M`\nJp\u0005oD\u0004|Q\nLP\u0004Sw\bTl\nAI\nxC\bWt\tBq\u0005F`\u0004Cm\u000BLm\tKx\t}t\bPv\ny\\\naB\tV\u007F\nZd\u0004XU\u0004li\tfr\ti@\tBH\u0004BD\u0004BV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\u000Bxs\u0004Zf\nqI\u0004Zf\u000BBM\u000B|j\t}t\bSM\nmC\u000BQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\u000E\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\u000E\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\u000E\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\u000E\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?\"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?\"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\u000E\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8\"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\u000E\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\u000E,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\u000E?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\u000E\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw"; + private static final String DATA1 = "fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\u007Fwkvna\u007Fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\u000E\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm\"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\u000E\t?kfbg=\u000E\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\u000E\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\u000E\t?,kfbg=\u000E\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\u000E\t\n?,gju=\u000E\t\u000E\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\u000E\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\u007Fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?\"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#\"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\u000E\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?\"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\u000E\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\u000E\t?kfbg=\u000E\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\u000Epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\u000E\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\u007F_p(',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\u000E\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\u007F%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw\"Xfmgje^..=\u000E\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?\"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?\"Xfmgje^..=\u000E\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?\"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?\"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\u000E\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\u000E#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\u000E\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\u000E\t?,p`qjsw=\u000E\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\u000E\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\u000Eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\u000E\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?\"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\u000E\t\u000E\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\u007F#?b#kqfe>!?\"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\u000E\t?,p`qjsw=\u000E\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\u000E\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\u000E\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\u000BBl\bQ\u007F*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\u000E\t?,p`qjsw=\u000E\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\u007Fwkvna\u007Fofew\u007Fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\u000E\t?-ip!=?,p`qjsw=\u000E\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*\"y\"W\"W\"[\"Q\"U\"V\"@=i=l<^<\\=n=m!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\u007Fqjdkw\u007Fwkvna\u007F-ip!=?,p`qjsw=\u000E\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\u000E\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\u000E\t?,gju=\u000E\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\u000E\t?,gju=\u000E\t\u000E\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\u000E\t?,kwno=\u000E\"y\"W\"W\"[\"Q\"U\"V\"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\u007Fwkvna\u007Fqjdkw\u007F1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\u000E\t?,kwno=\u000E\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?\"GL@WZSF#kwno=\u000E\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\u007F#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\u000E\t?,gju=\u000E\t\u000E\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\u000E\t?,algz=\u000E\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\u000E\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\u000E\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\u000E\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\u000E\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?\"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\u000E\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\u000E\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?\"GL@WZSF#kwno=\t?\"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAO\u0005Gx\bTA\nzk#+\u000BUm\u0005Gx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?\"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$= reverse(key, len) is the bit-wise reversal of the len least significant bits of key. + */ + private static int getNextKey(int key, int len) { + int step = 1 << (len - 1); + while ((key & step) != 0) { + step >>= 1; + } + return (key & (step - 1)) + step; + } + + /** + * Stores {@code item} in {@code table[0], table[step], table[2 * step] .., table[end]}. + * + *

Assumes that end is an integer multiple of step. + */ + private static void replicateValue(int[] table, int offset, int step, int end, int item) { + do { + end -= step; + table[offset + end] = item; + } while (end > 0); + } + + /** + * @param count histogram of bit lengths for the remaining symbols, + * @param len code length of the next processed symbol. + * @return table width of the next 2nd level table. + */ + private static int nextTableBitSize(int[] count, int len, int rootBits) { + int left = 1 << (len - rootBits); + while (len < MAX_LENGTH) { + left -= count[len]; + if (left <= 0) { + break; + } + len++; + left <<= 1; + } + return len - rootBits; + } + + /** + * Builds Huffman lookup table assuming code lengths are in symbol order. + * + * @return number of slots used by resulting Huffman table + */ + static int buildHuffmanTable(int[] tableGroup, int tableIdx, int rootBits, int[] codeLengths, + int codeLengthsSize) { + final int tableOffset = tableGroup[tableIdx]; + int key; // Reversed prefix code. + final int[] sorted = new int[codeLengthsSize]; // Symbols sorted by code length. + // TODO(eustas): fill with zeroes? + final int[] count = new int[MAX_LENGTH + 1]; // Number of codes of each length. + final int[] offset = new int[MAX_LENGTH + 1]; // Offsets in sorted table for each length. + int symbol; + + // Build histogram of code lengths. + for (symbol = 0; symbol < codeLengthsSize; symbol++) { + count[codeLengths[symbol]]++; + } + + // Generate offsets into sorted symbol table by code length. + offset[1] = 0; + for (int len = 1; len < MAX_LENGTH; len++) { + offset[len + 1] = offset[len] + count[len]; + } + + // Sort symbols by length, by symbol order within each length. + for (symbol = 0; symbol < codeLengthsSize; symbol++) { + if (codeLengths[symbol] != 0) { + sorted[offset[codeLengths[symbol]]++] = symbol; + } + } + + int tableBits = rootBits; + int tableSize = 1 << tableBits; + int totalSize = tableSize; + + // Special case code with only one value. + if (offset[MAX_LENGTH] == 1) { + for (key = 0; key < totalSize; key++) { + tableGroup[tableOffset + key] = sorted[0]; + } + return totalSize; + } + + // Fill in root table. + key = 0; + symbol = 0; + for (int len = 1, step = 2; len <= rootBits; len++, step <<= 1) { + for (; count[len] > 0; count[len]--) { + replicateValue(tableGroup, tableOffset + key, step, tableSize, + len << 16 | sorted[symbol++]); + key = getNextKey(key, len); + } + } + + // Fill in 2nd level tables and add pointers to root table. + final int mask = totalSize - 1; + int low = -1; + int currentOffset = tableOffset; + for (int len = rootBits + 1, step = 2; len <= MAX_LENGTH; len++, step <<= 1) { + for (; count[len] > 0; count[len]--) { + if ((key & mask) != low) { + currentOffset += tableSize; + tableBits = nextTableBitSize(count, len, rootBits); + tableSize = 1 << tableBits; + totalSize += tableSize; + low = key & mask; + tableGroup[tableOffset + low] = + (tableBits + rootBits) << 16 | (currentOffset - tableOffset - low); + } + replicateValue(tableGroup, currentOffset + (key >> rootBits), step, tableSize, + (len - rootBits) << 16 | sorted[symbol++]); + key = getNextKey(key, len); + } + } + return totalSize; + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/State.java b/firka_wear/android/app/src/main/java/org/brotli/dec/State.java new file mode 100644 index 0000000..94db93a --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/State.java @@ -0,0 +1,100 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.io.InputStream; + +final class State { + byte[] ringBuffer; + byte[] contextModes; + byte[] contextMap; + byte[] distContextMap; + byte[] distExtraBits; + byte[] output; + byte[] byteBuffer; // BitReader + + short[] shortBuffer; // BitReader + + int[] intBuffer; // BitReader + int[] rings; + int[] blockTrees; + int[] literalTreeGroup; + int[] commandTreeGroup; + int[] distanceTreeGroup; + int[] distOffset; + + long accumulator64; // BitReader: pre-fetched bits. + + int runningState; // Default value is 0 == Decode.UNINITIALIZED + int nextRunningState; + int accumulator32; // BitReader: pre-fetched bits. + int bitOffset; // BitReader: bit-reading position in accumulator. + int halfOffset; // BitReader: offset of next item in intBuffer/shortBuffer. + int tailBytes; // BitReader: number of bytes in unfinished half. + int endOfStreamReached; // BitReader: input stream is finished. + int metaBlockLength; + int inputEnd; + int isUncompressed; + int isMetadata; + int literalBlockLength; + int numLiteralBlockTypes; + int commandBlockLength; + int numCommandBlockTypes; + int distanceBlockLength; + int numDistanceBlockTypes; + int pos; + int maxDistance; + int distRbIdx; + int trivialLiteralContext; + int literalTreeIdx; + int commandTreeIdx; + int j; + int insertLength; + int contextMapSlice; + int distContextMapSlice; + int contextLookupOffset1; + int contextLookupOffset2; + int distanceCode; + int numDirectDistanceCodes; + int distancePostfixBits; + int distance; + int copyLength; + int maxBackwardDistance; + int maxRingBufferSize; + int ringBufferSize; + int expectedTotalSize; + int outputOffset; + int outputLength; + int outputUsed; + int ringBufferBytesWritten; + int ringBufferBytesReady; + int isEager; + int isLargeWindow; + + // Compound dictionary + int cdNumChunks; + int cdTotalSize; + int cdBrIndex; + int cdBrOffset; + int cdBrLength; + int cdBrCopied; + byte[][] cdChunks; + int[] cdChunkOffsets; + int cdBlockBits; + byte[] cdBlockMap; + + InputStream /* @Nullable */ input; // BitReader + + State() { + this.ringBuffer = new byte[0]; + this.rings = new int[10]; + this.rings[0] = 16; + this.rings[1] = 15; + this.rings[2] = 11; + this.rings[3] = 4; + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Transform.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Transform.java new file mode 100644 index 0000000..6a57a9e --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Transform.java @@ -0,0 +1,236 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.nio.ByteBuffer; + +/** + * Transformations on dictionary words. + * + * Transform descriptor is a triplet: {prefix, operator, suffix}. + * "prefix" and "suffix" are short strings inserted before and after transformed dictionary word. + * "operator" is applied to dictionary word itself. + * + * Some operators has "built-in" parameters, i.e. parameter is defined by operator ordinal. Other + * operators have "external" parameters, supplied via additional table encoded in shared dictionary. + * + * Operators: + * - IDENTITY (0): dictionary word is inserted "as is" + * - OMIT_LAST_N (1 - 9): last N octets of dictionary word are not inserted; N == ordinal + * - OMIT_FIRST_M (12-20): first M octets of dictionary word are not inserted; M == ordinal - 11 + * - UPPERCASE_FIRST (10): first "scalar" is XOR'ed with number 32 + * - UPPERCASE_ALL (11): all "scalars" are XOR'ed with number 32 + * - SHIFT_FIRST (21): first "scalar" is shifted by number form parameter table + * - SHIFT_ALL (22): all "scalar" is shifted by number form parameter table + * + * Here "scalar" is a variable length character coding similar to UTF-8 encoding. + * UPPERCASE_XXX / SHIFT_XXX operators were designed to change the case of UTF-8 encoded characters. + * While UPPERCASE_XXX works well only on ASCII charset, SHIFT is much more generic and could be + * used for most (all?) alphabets. + */ +final class Transform { + + static final class Transforms { + final int numTransforms; + final int[] triplets; + final byte[] prefixSuffixStorage; + final int[] prefixSuffixHeads; + final short[] params; + + Transforms(int numTransforms, int prefixSuffixLen, int prefixSuffixCount) { + this.numTransforms = numTransforms; + this.triplets = new int[numTransforms * 3]; + this.params = new short[numTransforms]; + this.prefixSuffixStorage = new byte[prefixSuffixLen]; + this.prefixSuffixHeads = new int[prefixSuffixCount + 1]; + } + } + + static final int NUM_RFC_TRANSFORMS = 121; + static final Transforms RFC_TRANSFORMS = new Transforms(NUM_RFC_TRANSFORMS, 167, 50); + + private static final int OMIT_FIRST_LAST_LIMIT = 9; + + private static final int IDENTITY = 0; + private static final int OMIT_LAST_BASE = IDENTITY + 1 - 1; // there is no OMIT_LAST_0. + private static final int UPPERCASE_FIRST = OMIT_LAST_BASE + OMIT_FIRST_LAST_LIMIT + 1; + private static final int UPPERCASE_ALL = UPPERCASE_FIRST + 1; + private static final int OMIT_FIRST_BASE = UPPERCASE_ALL + 1 - 1; // there is no OMIT_FIRST_0. + private static final int SHIFT_FIRST = OMIT_FIRST_BASE + OMIT_FIRST_LAST_LIMIT + 1; + private static final int SHIFT_ALL = SHIFT_FIRST + 1; + + // Bundle of 0-terminated strings. + private static final String PREFIX_SUFFIX_SRC = "# #s #, #e #.# the #.com/#\u00C2\u00A0# of # and" + + " # in # to #\"#\">#\n#]# for # a # that #. # with #'# from # by #. The # on # as # is #ing" + + " #\n\t#:#ed #(# at #ly #=\"# of the #. This #,# not #er #al #='#ful #ive #less #est #ize #" + + "ous #"; + private static final String TRANSFORMS_SRC = " !! ! , *! &! \" ! ) * * - ! # ! #!*! " + + "+ ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : " + + " ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F " + + " G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D " + + " Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K"; + + private static void unpackTransforms(byte[] prefixSuffix, + int[] prefixSuffixHeads, int[] transforms, String prefixSuffixSrc, String transformsSrc) { + final int n = prefixSuffixSrc.length(); + int index = 1; + int j = 0; + for (int i = 0; i < n; ++i) { + final char c = prefixSuffixSrc.charAt(i); + if (c == 35) { // == # + prefixSuffixHeads[index++] = j; + } else { + prefixSuffix[j++] = (byte) c; + } + } + + for (int i = 0; i < NUM_RFC_TRANSFORMS * 3; ++i) { + transforms[i] = transformsSrc.charAt(i) - 32; + } + } + + static { + unpackTransforms(RFC_TRANSFORMS.prefixSuffixStorage, RFC_TRANSFORMS.prefixSuffixHeads, + RFC_TRANSFORMS.triplets, PREFIX_SUFFIX_SRC, TRANSFORMS_SRC); + } + + static int transformDictionaryWord(byte[] dst, int dstOffset, ByteBuffer src, int srcOffset, + int len, Transforms transforms, int transformIndex) { + int offset = dstOffset; + final int[] triplets = transforms.triplets; + final byte[] prefixSuffixStorage = transforms.prefixSuffixStorage; + final int[] prefixSuffixHeads = transforms.prefixSuffixHeads; + final int transformOffset = 3 * transformIndex; + final int prefixIdx = triplets[transformOffset]; + final int transformType = triplets[transformOffset + 1]; + final int suffixIdx = triplets[transformOffset + 2]; + int prefix = prefixSuffixHeads[prefixIdx]; + final int prefixEnd = prefixSuffixHeads[prefixIdx + 1]; + int suffix = prefixSuffixHeads[suffixIdx]; + final int suffixEnd = prefixSuffixHeads[suffixIdx + 1]; + + int omitFirst = transformType - OMIT_FIRST_BASE; + int omitLast = transformType - OMIT_LAST_BASE; + if (omitFirst < 1 || omitFirst > OMIT_FIRST_LAST_LIMIT) { + omitFirst = 0; + } + if (omitLast < 1 || omitLast > OMIT_FIRST_LAST_LIMIT) { + omitLast = 0; + } + + // Copy prefix. + while (prefix != prefixEnd) { + dst[offset++] = prefixSuffixStorage[prefix++]; + } + + // Copy trimmed word. + if (omitFirst > len) { + omitFirst = len; + } + srcOffset += omitFirst; + len -= omitFirst; + len -= omitLast; + int i = len; + while (i > 0) { + dst[offset++] = src.get(srcOffset++); + i--; + } + + // Ferment. + if (transformType == UPPERCASE_FIRST || transformType == UPPERCASE_ALL) { + int uppercaseOffset = offset - len; + if (transformType == UPPERCASE_FIRST) { + len = 1; + } + while (len > 0) { + final int c0 = dst[uppercaseOffset] & 0xFF; + if (c0 < 0xC0) { + if (c0 >= 97 && c0 <= 122) { // in [a..z] range + dst[uppercaseOffset] ^= (byte) 32; + } + uppercaseOffset += 1; + len -= 1; + } else if (c0 < 0xE0) { + dst[uppercaseOffset + 1] ^= (byte) 32; + uppercaseOffset += 2; + len -= 2; + } else { + dst[uppercaseOffset + 2] ^= (byte) 5; + uppercaseOffset += 3; + len -= 3; + } + } + } else if (transformType == SHIFT_FIRST || transformType == SHIFT_ALL) { + int shiftOffset = offset - len; + final short param = transforms.params[transformIndex]; + /* Limited sign extension: scalar < (1 << 24). */ + int scalar = (param & 0x7FFF) + (0x1000000 - (param & 0x8000)); + while (len > 0) { + int step = 1; + final int c0 = dst[shiftOffset] & 0xFF; + if (c0 < 0x80) { + /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */ + scalar += c0; + dst[shiftOffset] = (byte) (scalar & 0x7F); + } else if (c0 < 0xC0) { + /* Continuation / 10AAAAAA. */ + } else if (c0 < 0xE0) { + /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */ + if (len >= 2) { + final byte c1 = dst[shiftOffset + 1]; + scalar += (c1 & 0x3F) | ((c0 & 0x1F) << 6); + dst[shiftOffset] = (byte) (0xC0 | ((scalar >> 6) & 0x1F)); + dst[shiftOffset + 1] = (byte) ((c1 & 0xC0) | (scalar & 0x3F)); + step = 2; + } else { + step = len; + } + } else if (c0 < 0xF0) { + /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */ + if (len >= 3) { + final byte c1 = dst[shiftOffset + 1]; + final byte c2 = dst[shiftOffset + 2]; + scalar += (c2 & 0x3F) | ((c1 & 0x3F) << 6) | ((c0 & 0x0F) << 12); + dst[shiftOffset] = (byte) (0xE0 | ((scalar >> 12) & 0x0F)); + dst[shiftOffset + 1] = (byte) ((c1 & 0xC0) | ((scalar >> 6) & 0x3F)); + dst[shiftOffset + 2] = (byte) ((c2 & 0xC0) | (scalar & 0x3F)); + step = 3; + } else { + step = len; + } + } else if (c0 < 0xF8) { + /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */ + if (len >= 4) { + final byte c1 = dst[shiftOffset + 1]; + final byte c2 = dst[shiftOffset + 2]; + final byte c3 = dst[shiftOffset + 3]; + scalar += (c3 & 0x3F) | ((c2 & 0x3F) << 6) | ((c1 & 0x3F) << 12) | ((c0 & 0x07) << 18); + dst[shiftOffset] = (byte) (0xF0 | ((scalar >> 18) & 0x07)); + dst[shiftOffset + 1] = (byte) ((c1 & 0xC0) | ((scalar >> 12) & 0x3F)); + dst[shiftOffset + 2] = (byte) ((c2 & 0xC0) | ((scalar >> 6) & 0x3F)); + dst[shiftOffset + 3] = (byte) ((c3 & 0xC0) | (scalar & 0x3F)); + step = 4; + } else { + step = len; + } + } + shiftOffset += step; + len -= step; + if (transformType == SHIFT_FIRST) { + len = 0; + } + } + } + + // Copy suffix. + while (suffix != suffixEnd) { + dst[offset++] = prefixSuffixStorage[suffix++]; + } + + return offset - dstOffset; + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/dec/Utils.java b/firka_wear/android/app/src/main/java/org/brotli/dec/Utils.java new file mode 100644 index 0000000..cc4a9f0 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/dec/Utils.java @@ -0,0 +1,119 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.dec; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.nio.Buffer; +import java.nio.ByteBuffer; + +/** + * A set of utility methods. + */ +final class Utils { + + private static final byte[] BYTE_ZEROES = new byte[1024]; + + private static final int[] INT_ZEROES = new int[1024]; + + /** + * Fills byte array with zeroes. + * + *

Current implementation uses {@link System#arraycopy}, so it should be used for length not + * less than 16. + * + * @param dest array to fill with zeroes + * @param offset the first byte to fill + * @param length number of bytes to change + */ + static void fillBytesWithZeroes(byte[] dest, int start, int end) { + int cursor = start; + while (cursor < end) { + int step = Math.min(cursor + 1024, end) - cursor; + System.arraycopy(BYTE_ZEROES, 0, dest, cursor, step); + cursor += step; + } + } + + /** + * Fills int array with zeroes. + * + *

Current implementation uses {@link System#arraycopy}, so it should be used for length not + * less than 16. + * + * @param dest array to fill with zeroes + * @param offset the first item to fill + * @param length number of item to change + */ + static void fillIntsWithZeroes(int[] dest, int start, int end) { + int cursor = start; + while (cursor < end) { + int step = Math.min(cursor + 1024, end) - cursor; + System.arraycopy(INT_ZEROES, 0, dest, cursor, step); + cursor += step; + } + } + + static void copyBytes(byte[] dst, int target, byte[] src, int start, int end) { + System.arraycopy(src, start, dst, target, end - start); + } + + static void copyBytesWithin(byte[] bytes, int target, int start, int end) { + System.arraycopy(bytes, start, bytes, target, end - start); + } + + static int readInput(InputStream src, byte[] dst, int offset, int length) { + try { + return src.read(dst, offset, length); + } catch (IOException e) { + throw new BrotliRuntimeException("Failed to read input", e); + } + } + + static void closeInput(InputStream src) throws IOException { + src.close(); + } + + static byte[] toUsAsciiBytes(String src) { + try { + // NB: String#getBytes(String) is present in JDK 1.1, while other variants require JDK 1.6 and + // above. + return src.getBytes("US-ASCII"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); // cannot happen + } + } + + static ByteBuffer asReadOnlyBuffer(ByteBuffer src) { + return src.asReadOnlyBuffer(); + } + + static int isReadOnly(ByteBuffer src) { + return src.isReadOnly() ? 1 : 0; + } + + static int isDirect(ByteBuffer src) { + return src.isDirect() ? 1 : 0; + } + + // Crazy pills factory: code compiled for JDK8 does not work on JRE9. + static void flipBuffer(Buffer buffer) { + buffer.flip(); + } + + static int isDebugMode() { + boolean assertsEnabled = Boolean.parseBoolean(System.getProperty("BROTLI_ENABLE_ASSERTS")); + return assertsEnabled ? 1 : 0; + } + + // See BitReader.LOG_BITNESS + static int getLogBintness() { + boolean isLongExpensive = Boolean.parseBoolean(System.getProperty("BROTLI_32_BIT_CPU")); + return isLongExpensive ? 5 : 6; + } +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionary.java b/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionary.java new file mode 100644 index 0000000..5197801 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionary.java @@ -0,0 +1,16 @@ +/* Copyright 2018 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.enc; + +import java.nio.ByteBuffer; + +/** + * Prepared dictionary data provider. + */ +public interface PreparedDictionary { + ByteBuffer getData(); +} diff --git a/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionaryGenerator.java b/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionaryGenerator.java new file mode 100644 index 0000000..3813429 --- /dev/null +++ b/firka_wear/android/app/src/main/java/org/brotli/enc/PreparedDictionaryGenerator.java @@ -0,0 +1,185 @@ +/* Copyright 2017 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +package org.brotli.enc; + +import java.nio.Buffer; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.IntBuffer; +import java.nio.ShortBuffer; + +/** + * Java prepared (raw) dictionary producer. + */ +public class PreparedDictionaryGenerator { + + private static final int MAGIC = 0xDEBCEDE0; + private static final long HASH_MULTIPLIER = 0x1fe35a7bd3579bd3L; + + private static class PreparedDictionaryImpl implements PreparedDictionary { + private final ByteBuffer data; + + private PreparedDictionaryImpl(ByteBuffer data) { + this.data = data; + } + + @Override + public ByteBuffer getData() { + return data; + } + } + + // Disallow instantiation. + private PreparedDictionaryGenerator() { } + + public static PreparedDictionary generate(ByteBuffer src) { + return generate(src, 17, 3, 40, 5); + } + + public static PreparedDictionary generate(ByteBuffer src, + int bucketBits, int slotBits, int hashBits, int blockBits) { + ((Buffer) src).clear(); // Just in case... + if (blockBits > 12) { + throw new IllegalArgumentException("blockBits is too big"); + } + if (bucketBits >= 24) { + throw new IllegalArgumentException("bucketBits is too big"); + } + if (bucketBits - slotBits >= 16) { + throw new IllegalArgumentException("slotBits is too small"); + } + int bucketLimit = 1 << blockBits; + int numBuckets = 1 << bucketBits; + int numSlots = 1 << slotBits; + int slotMask = numSlots - 1; + int hashShift = 64 - bucketBits; + long hashMask = (~0L) >>> (64 - hashBits); + int sourceSize = src.capacity(); + if (sourceSize < 8) { + throw new IllegalArgumentException("src is too short"); + } + + /* Step 1: create "bloated" hasher. */ + short[] num = new short[numBuckets]; + int[] bucketHeads = new int[numBuckets]; + int[] nextBucket = new int[sourceSize]; + + long accumulator = 0; + for (int i = 0; i < 7; ++i) { + accumulator |= (src.get(i) & 0xFFL) << (8 * i); + } + accumulator <<= 8; + /* TODO(eustas): apply custom "store" order. */ + for (int i = 0; i + 7 < sourceSize; ++i) { + accumulator = (accumulator >>> 8) | ((src.get(i + 7) & 0xFFL) << 56); + long h = (accumulator & hashMask) * HASH_MULTIPLIER; + int key = (int) (h >>> hashShift); + int count = num[key]; + nextBucket[i] = (count == 0) ? -1 : bucketHeads[key]; + bucketHeads[key] = i; + count++; + if (count > bucketLimit) { + count = bucketLimit; + } + num[key] = (short) count; + } + + /* Step 2: find slot limits. */ + int[] slotLimit = new int[numSlots]; + int[] slotSize = new int[numSlots]; + int totalItems = 0; + for (int i = 0; i < numSlots; ++i) { + boolean overflow = false; + slotLimit[i] = bucketLimit; + while (true) { + overflow = false; + int limit = slotLimit[i]; + int count = 0; + for (int j = i; j < numBuckets; j += numSlots) { + int size = num[j]; + /* Last chain may span behind 64K limit; overflow happens only if + we are about to use 0xFFFF+ as item offset. */ + if (count >= 0xFFFF) { + overflow = true; + break; + } + if (size > limit) { + size = limit; + } + count += size; + } + if (!overflow) { + slotSize[i] = count; + totalItems += count; + break; + } + slotLimit[i]--; + } + } + + /* Step 3: transfer data to "slim" hasher. */ + int part0 = 6 * 4; + int part1 = numSlots * 4; + int part2 = numBuckets * 2; + int part3 = totalItems * 4; + int allocSize = part0 + part1 + part2 + part3 + sourceSize; + ByteBuffer flat = ByteBuffer.allocateDirect(allocSize); + ByteBuffer pointer = flat.slice(); + pointer.order(ByteOrder.nativeOrder()); + + IntBuffer struct = pointer.asIntBuffer(); + pointer.position(pointer.position() + part0); + IntBuffer slotOffsets = pointer.asIntBuffer(); + pointer.position(pointer.position() + part1); + ShortBuffer heads = pointer.asShortBuffer(); + pointer.position(pointer.position() + part2); + IntBuffer items = pointer.asIntBuffer(); + pointer.position(pointer.position() + part3); + ByteBuffer sourceCopy = pointer.slice(); + + /* magic */ struct.put(0, MAGIC); + /* source_offset */ struct.put(1, totalItems); + /* source_size */ struct.put(2, sourceSize); + /* hash_bits */ struct.put(3, hashBits); + /* bucket_bits */ struct.put(4, bucketBits); + /* slot_bits */ struct.put(5, slotBits); + + totalItems = 0; + for (int i = 0; i < numSlots; ++i) { + slotOffsets.put(i, totalItems); + totalItems += slotSize[i]; + slotSize[i] = 0; + } + + for (int i = 0; i < numBuckets; ++i) { + int slot = i & slotMask; + int count = num[i]; + if (count > slotLimit[slot]) { + count = slotLimit[slot]; + } + if (count == 0) { + heads.put(i, (short) 0xFFFF); + continue; + } + int cursor = slotSize[slot]; + heads.put(i, (short) cursor); + cursor += slotOffsets.get(slot); + slotSize[slot] += count; + int pos = bucketHeads[i]; + for (int j = 0; j < count; j++) { + items.put(cursor++, pos); + pos = nextBucket[pos]; + } + cursor--; + items.put(cursor, items.get(cursor) | 0x80000000); + } + + sourceCopy.put(src); + + return new PreparedDictionaryImpl(flat); + } +} diff --git a/firka_wear/android/app/src/main/kotlin/app/firka/naplo/AppMain.kt b/firka_wear/android/app/src/main/kotlin/app/firka/naplo/AppMain.kt new file mode 100644 index 0000000..6a4ad1b --- /dev/null +++ b/firka_wear/android/app/src/main/kotlin/app/firka/naplo/AppMain.kt @@ -0,0 +1,88 @@ +package app.firka.naplo + +import android.annotation.SuppressLint +import android.app.Application +import android.os.Build +import android.util.Log +import org.brotli.dec.BrotliInputStream +import org.json.JSONObject +import java.io.File +import java.io.FileOutputStream +import java.security.MessageDigest +import java.util.zip.ZipFile + +class AppMain : Application() { + + private fun File.sha256(): String { + if (!exists()) return "0000000000000000000000000000000000000000000000000000000000000000" + + val md = MessageDigest.getInstance("SHA-256") + val digest = md.digest(this.readBytes()) + return digest.fold("") { str, it -> str + "%02x".format(it) } + } + + @SuppressLint("UnsafeDynamicallyLoadedCode") + override fun onCreate() { + super.onCreate() + + val abi = Build.SUPPORTED_ABIS[0] + + val apks = File(applicationInfo.nativeLibraryDir, "../..").absoluteFile + .listFiles()!! + .filter { file -> file.name.endsWith(".apk") } + .toList() + + var nativesApkN: ZipFile? = null + for (apk in apks) { + if (nativesApkN != null) break + + val zip = ZipFile(apk) + val entries = zip.entries() + + while (entries.hasMoreElements()) { + val entry = entries.nextElement() + + entry.name.endsWith("$abi/index.so") + zip.close() + nativesApkN = ZipFile(apk) + break + } + + zip.close() + } + + if (nativesApkN == null) { + throw Exception("Can't find native libraries") + } + val nativesApk: ZipFile = nativesApkN + + val compressedLibsIndex = nativesApk.getInputStream( + nativesApk.getEntry("lib/$abi/index.so") + ) + val compressedLibs = JSONObject(compressedLibsIndex.readBytes().toString(Charsets.UTF_8)) + + for (so in compressedLibs.keys()) { + val soFile = File(cacheDir, so) + + if (soFile.sha256() == compressedLibs.getString(so)) { + System.load(soFile.absolutePath) + return + } + + Log.d("AppMain", "Decompressing: $so") + val brInput = nativesApk.getInputStream( + nativesApk.getEntry("lib/$abi/${so.replace(".so", "-br.so")}") + ) + val soOutput = FileOutputStream(soFile) + + val brIn = BrotliInputStream(brInput) + brIn.copyTo(soOutput) + + brInput.close() + soOutput.close() + + System.load(soFile.absolutePath) + } + } + +} \ No newline at end of file diff --git a/firka_wear/android/app/src/main/kotlin/app/firka/naplo/MainActivity.kt b/firka_wear/android/app/src/main/kotlin/app/firka/naplo/MainActivity.kt new file mode 100644 index 0000000..858230c --- /dev/null +++ b/firka_wear/android/app/src/main/kotlin/app/firka/naplo/MainActivity.kt @@ -0,0 +1,92 @@ +package app.firka.naplo + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Context +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import androidx.core.app.NotificationCompat +import androidx.wear.ongoing.OngoingActivity +import androidx.wear.ongoing.Status +import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugin.common.MethodChannel + + +class MainActivity : FlutterActivity() { + + private val channel = "firka.app/main" + private val channelId = "ongoing_activity" + private val notificationId = 1000 + + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { + val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) + as NotificationManager + + notificationManager.createNotificationChannel( + NotificationChannel( + channelId, + "Ongoing Activity", + NotificationManager.IMPORTANCE_DEFAULT + ) + ) + + val notificationBuilder = NotificationCompat.Builder(this, channelId) + .setSmallIcon(R.drawable.ic_notification) + .setOngoing(true) + + val ongoingActivityStatus = Status.Builder() + // Sets the text used across various surfaces. + .addTemplate("Firka") + .build() + + val intent = context.packageManager.getLaunchIntentForPackage(context.packageName)!! + val activityPendingIntent = PendingIntent.getActivity( + context, + 0, + intent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + + val ongoingActivity = OngoingActivity.Builder(applicationContext, + notificationId, notificationBuilder) + .setStaticIcon(R.drawable.ic_notification) + .setTouchIntent(activityPendingIntent) + .setStatus(ongoingActivityStatus) + .build() + + ongoingActivity.apply(applicationContext) + + + super.configureFlutterEngine(flutterEngine) + MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel).setMethodCallHandler { + call, result -> + when (call.method) { + "get_info" -> { + result.success("${Build.MODEL};" + + "${Build.VERSION.RELEASE};" + + "${Build.VERSION.SDK_INT}") + } + "activity_update" -> { + notificationManager.notify(notificationId, notificationBuilder.build()) + result.success(null) + } + "activity_cancel" -> { + notificationManager.cancel(notificationId) + result.success(null) + } + else -> { + result.notImplemented() + } + } + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE) + } + +} diff --git a/firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png b/firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b37589b9e4ad1e752d48ea1ffaf0d52b1dab9b GIT binary patch literal 4550 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png b/firka_wear/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..31e7cce7304622743f94899d8df66c9a1b5af6aa GIT binary patch literal 7519 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 F0RZmSOUM8K literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png b/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8c6a874206e91513bff2efe758f5f1bb7b22a9 GIT binary patch literal 2854 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..835a3af5bd96460c2c079d34185a27c1759e1d84 GIT binary patch literal 1847 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Vs4mJh`hW@nhvkVMu|2$nBLn`LHy>8p^Z}Vt)mc=M_$Ya(L)~Ruq@7y@E ziG8{%_o*Clvz6DDrijZ&#d_$v=AMf27I$fRe{TKDbML~$e!Ks9SAOohX>ogX-Sas! z-_QJh$6EZ|LU9)Dy*~U3|Llc&Bsq`uuq3-R87d!~F)`tche4W(gfUfxkG*dG`jS2U zw&a|b8Sc|xM($}0XDPOL_(Hzx!QtwHhJV_pdwx&&+s(e=*W~^U|MzW_C||>Q-1po| z-X8X1i^7*}`;*U$I=)(UxcbH1URI5&?NVE-;@_;D!KG21z@g-If7x7DVZ&uFZB1s* zyQ%W{AXBs8lH`}q7Y1gz6pCiel74aalg*RRX^V9JTS{ea)|O9i;L^M0b^BRd|BTD? zA8dKK)7Mb$&EdTk5l@#r72Z4{d-H1VFSo85YHeK7_AltO$+flTT)ei;Hv9c!)xB_* zl^b%*ZMP&@8Tp*g?fRH->+$D+h^=DMX`+`NwMgy=-oHp>O70ig6P;d5F6M_Ptj#w2 z^mU_h@C3P;4Bzj`-pH-W6W*gVqwEVq-#RbnZ{6A-3bxHYwMgjd+A3QE7hX>phy83T zL<9I(Q~mW9PUU`VaPP|*wF=)2GYUJpXE!~mpX+w}-1LoKH$T2&lf-3IQ#1AQ=dhQ8 za;uLW^{;?}z?fk{M=5osUK8rZ( z{4DB?Se(}vAAI_F^{=|?m6MAmC?Dj>tm1$Fx;_2&!y~Gb-!1BiY}NSo_4l`e#K0_< z8>J>c0+j7uTukKsG%F$g`Y+2{+t;-GUdt8o#LijzD|>IgrO(bZ<*xzC@5~Jr3C2mE zd3?mNX3p$}B{}9(Rn7)h#@~Pcrv3C;pR~5??3b;qFKks4{yF#gO6AIRS|8TP-}L|L zuY0U$^X0EPVh3%mojpG3U!uv2V=7aZZND9TvFa6zow04Wf0C$A{nt+kT1Il~7R&R? zbUj>e->L3<{>tSD*2CfZnNr*zi(M|BaY%2*RZoL79buhYtv8zPCr;jU@M0O;f18_4 z!s>jBcJ5@X&t2pAw!OOW#Fw7Ci8B)}izhCuk2j65e_t!v#KiXK)`y6mva|n+%(wn& zmWrzq>Ce?a{`uY?_Ec{cZ+*vi8w|5vmCGz*;|VlB6WyL3RHT{zHs;ROZ0Ub@nw86D zt2VjrHi&e8d2Zw1!y!*LU0<=TN>=XH28LGIw>v%@_PpVJvBzqkLet=XIJ8(cQ*(p|CbKZpJ9@0qJM+??vXey)9c z@b7zz-X1=tz#Cw;_u5s@_&GU_#R(l<7jHK!UHRbtIy3yFk5A=xDQlm2_BBF2zb~id z{C=dOCX%}}{Htt)-9D`i^%|~IpFa$Lsk$X@|F4{~tIuP!V^%Q`hZ%=K?oZU5WMNuYYc{V}G*ohF!d#w$7;kZM5U-EniQq(sJIbPmU=&-YLq*n0yzklkcyseRZ7~~UHjtCV>KJo zuW}-<-~N!Cv8?&;vpA78H(e)xU4HC@OV92t<~h0Pdmqbl>B{=7UhlM3Jt9M7-F18W zj069)%%}ODS;V@2`eV-gPFBuusdH-6{Vo>%->3B=g*(dTb^m$ijde5TzMHKhzvivZ zIsFdToFf`t*Vmg}{#+w}n*DO0>BAEn)oik>`rb{TNo4@9X#Pldi?aT`VaHIxz`(%Z M>FVdQ&MBb@0N>+-9RL6T literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png b/firka_wear/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..a6cba6b692e37c26f782db4dccdcf1ad82581426 GIT binary patch literal 4629 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 + + + + + + + diff --git a/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png b/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..8732a1f85e4173d2633d7611895844772b43fbdc GIT binary patch literal 5961 zcmeAS@N?(olHy`uVBq!ia0y~yV7LLo9Bd2>44n$PZy6ZG1w36GLn`LHoy%S@CG`4n z{+G5B95^m9HJJozE=q88bY!d+ua=*B{(RS8(cd@h9CH>YhqH)^3hHolad9;XFlsgm zICwRbTsm$3U;Fg#H}}$`zvWG;{kMOnY+?E4^Y705`*yGTo#k^k+aG@0*%VtO6j!ah z&!G5_hgJEAf=G`*bAW*pkJCX8Lyi$7aDs7_)~nR-_E&?p><&A1`qh$seoI2NC;nK% z;py2wsi)6y(gc~CSMoQzIv&h9*LOB_Q`$+pn?J&LKFMD#nEBz)A2Z3oOMgF9yeuwR zRPt6t@N@#j8`^RagHJ^JY)^{jHhl=il2xlC_b$zStNkYP>g`vmn9Or8c(t&CNh%(bQ5Q zX?ew!xr=Q zCAh?r%JSDwTY7)`iCOo*d#3(8c)vu{$D?~v-`!-@&DlLEC4Ce5A~y<2UfuCByfk(1 znHtsjqD|UTKi}C-{_8#S&8;9^@xS@iUoAOUxg{-cKK=Cijnd6s`%Znb6ixja6d1O4 z-x9t@LP|@#*IT^2q8w)R{m=LPYn5um`6eFB)PFN2S9;C**QXTQWt8Sxl}`HcqhjUC zl@sg#{dC`!b92$Pyn6?#>%X6rE&924=A~V^Th3qS3D=mBn6>Iv>bu|7SJzi7But6^ zpT2X~$$uL6HZEVf>SaVp&-0ZtCcXYSca!e%%`q1*UNkCu6S4EfqVAL<9fFf4PJH-n z&Z9?3Kc7yIe{$L1eyYFSPnU0RZ>RsPI$E9e^l*CFsjK|5NxwJPu^Mwcnf2|E-px(x zj55}D9yoO8`?pj6^TkgYE)Gupps6V&{akO>`l8svqoPKcmsC!kI`!$to-0>ER2B2i z+x=c+^ZAUiQRSzUmFuptdw;OAueOXoc7L*_U|r9Shit6IC-%H#b)0&7=BG~_QOH;qE{=I|EhhvE%&z8LB0KdigtcD#GU%~*4A6kpRQdy z#dUM{(;vpsziWF78k-~+C4~3t{NH%xaj}w;(vtl9`!0T&F_0$Ul+@~YgzNZzrRmUQuTgv#`ydc`T9SBzvs+P7xkL2 z*g0ul=J~G@tj0$U>2obTs3bFQ-n?~nf7N|vDBRs$9{yc%!iJ=yTsQaC?p_nQ+3nwt z$NZ6dDmGrZdi7_C?V77~KUYPF)yBRt8e=M=3)Wq~v><^kV)GK8Fx_kHi~=q{-fTX=2!;zS-sM@ zxwClr?Z+G!p5(8d*5haBxHr$cp@~&8=S9+~Wz4~cuE$mTo@{+^VD0vMTKRiE9&SWc?e!;iKA*R`_D_GM zs?oDm+uYXOowG2(QLVhRwQIr49d9ok_RT+4`*l-k?b4L5z5FMCXXpiNP)MHIS8_eJeB}qTf{thW zuCA^{|Nnkp?R!su|DPbM@^?Cm-TT9~>+k#Fl(+9^+G!6Jw>=A;+ke%bb#U0gZ1n!t z*3)k{?kN@NF=?7~C~E4_1<7}I6u#PjqQPN{LBPL1pZz6`(|Wl2m8Wvfsr_~{E353| zQE}~=F_r)Set-I~U7pYLZCFam5~(%A;o$7))32|{PLzGFBOzgw((&chRqtzSqo04P z>8V&Kbmn97Bd?i9`2#GR4>ozsE(@GALu#e$$z^_Xwe-D(R%W`@XKR-Kr z>-WT8ON7^Kbo%Wa6*cSIzgMe{_1@7H zbs@^UmljMoyO5isf_e5XD=n=rw^<4c3+v*Q1B!}@wtQFLy6yh;vvu<=SbBCZTf67y z3HzY9NAo0R%%87cey6aVD@a9E^`!OtJ&TP@HuOJzZN)iLc6waZ%5R3NS1NpBb!IJ6 zFI`f;A>PfF)tKQ|U`$DLb>;t;bAzHE?~|KpmOE=s>9xpJO%e(5uix+gAGWhizV63D zuYRX#R-b+aaC912FRP2)RWi}|oP~3r?YD@xr5|NhZ<-j8TBLAXNHfmLD#h^Tbe7J( z_G2ekcwbIAx4U|4|NWB7zFIl&BfJwYSN!?$@m1T`S^H-nx^dvxeWwsvW_G?WKetXW zZ3@&dHxKvC-nh2mjNqT`vAfIU{)^{We^M%FLvbv!TKx~<=&A)-^lBQY;WbB3|T=L=J-esC|E5^+CK+kt&i zuf)z%r@wy9KB#21Z7Prb^4^QtCg~ax9S$tHSALkxG+(RmV(-JbFR!nkpQYcR%dk3u zb5YIon4(ViokBuFPo@O>1xjCu-kuj~&Jy~^w^^#NPTJFV`}^x>_RZhJDN&TQD&=eE z^qGzxT+IANv}+134zW=;-PS(&e02@rd*7F5c2y z30c7_4goB={1;v`=RRBGw(aM95wG)$g_iiTT~9b-uy5PuZA|gMCMvt1ni?Lra+A#; z!P5u5_4lUSd?%F|9WlLzY9#`C*x?!CXq7qCI# zVRy`ne=XbcZai^4r*zHZ#ss%18~x|o6&>PKkC?Xd2h*a78Ecm@S4Yl!a_D~2{=A!; zQnPs5xw29gCUh@!Zs*h5E_69Kc5c+Uu1^h{f)6ori80koJzbJ*`owD5v{$z)@7I36 zd+T@o@3-cmI$dciJ!TiNItrvLSHlL`?mi>GCW-d)&%k(Q^ zT+JiUW4F%c=ab2CPm5UJ?ze4hU^lz_)+BUELfeOMy&S#A*YBq!KKb?a_15o?r-+2d z)%|?hu&&WV<0Q$1jE+cl0Cj!j1r!V3g`H%y+CJNbwA!KR-5%Hp>Yt)qOE z)df0tYOLDw>Ws*T->WX|mv8x%oXoGMd{Bey69twr!a_(uo*TXUE!4rwQFQ@qOh^knYN_xpbHO*-AE|J?MogFdg1Xlb^6gOMml>lStP z6JJ0!U3syp`aEBOnZ&%;3_m-q_+H9o&z`KO8NtA!?aW+Rx6Wd_tMlEdq0^Tg=CeNY z{`=dCTA4k4n~$vdCGI!N#B=X|ZoM534%FW0anm;U2{yd6(@%2ZkM8fUdqT6q-a9VL zZn||Pz`&k!T8xBa%y0HbKP?nw8yoxW|J`_OH|2BZ)QqFO4y;Yw9d{~E?>N5YY;ZKw ziRLrEZf;IreJZ2JtAi^kpQk-+!N2TlYa&;z7PVsImp1b$Jzlg<@$fbVEvAw$QW^7W zT)3XGA3US$!tWF=kb78e()Jayi#q!5eUVVT@c!P$i9MN;Zc?%7S~u-=TMh2{l{pqL z<=!bcd~v(RyEz7lO+vi$1(v_Au2~8ls zGqeX7oS(7g`JpzQDsd&H=UkgKC$K(@y4Rm6Y1X_^?$Xt=g-aQJWm!D#j**<3^kh@# z%%G?Ub?*HdQ@(0^6zCy@-l*b0S4SY;@(Qp%xgDH6zJ}d@!NIeX50i8 zc7qpY%^L%ImYMc#o;TM~LUxnYeCB8UF`OqSzA8KTe@l2}lf{Olr{|Y$GCu#^MDy=+ zk*ilLuKXzJ+-#v@H)mmj)G96K;Le^>38CD=;-jT1lm0piut>)o>}a20B~&H*LwmaM z2|=4*Q$!?fj3UGS#i-ez(U{O>^xiotq(s}(t9QziEgqTI4c)B1_e{?F`$$Fe>b`j6 z-*rXY8`x%ke6&tY|MT&K)$3jqi8ERSJ}j_f@11yBvS*X~+!<@G`K@rdH!XPOtqq}5 zuX|TU?!9u|%p>cz#!Fj^z+XImQ>J|Jh~CQlftBmop>p}RQ}=9rcXzT(%c^#^Z@X$9 zempL3zv6Dxh9^aA>PKYi+x}WPu`+W#bMY(NsWW?hezuxoUO;o%4GCVG)Q!rgnWi4* z^Eu%v#m;)$KR36z=5yn}9pRiCV;E-dK=C1#I|xa;^71{fl;O9`aoRhKpLH z-c;+x?TM)S@sPc=Mxam4Nib!@qShleB0R@G<*b^t*ZRxU?c48`&9;(SvC`q3V$hgK%F_e09w_Ft4)5Tna|n|s^O_g<%uggyT!be8ed)lVDtChT1OHC;9N{^?criNOv# zqtrysI2kxM|cx(|o<3YA{9n&&Ih4l^XsRb@pFS(iM5FKS!(ca^SZ7`*}ZQ zPKnyx@H1HbrqX1J;nf>#>=zea|8r$!aO%4|JLTqk?>xkPn{!)fvz?9no0kuFmA(#H zZQjuutWj$j(_hpozfE|}g+<>Vb_gmP5(jmguswZO6^7&pYu-SpE6ENeinEO#X1FtVvbP{lq?@?<(;u@+Hru ztPlJ=e0sWmxUxuIx0vpys)(KDN=hzmz1h0zbFM}yDOYNFS|nK?G}@e$n!K%g0dxC3 zURkS-ZVa=R$(NZmAz2_{Di?1JGS(`9* z>QvBRj-*M(1gngiqg|qtrcW2YlC8eP#pAtWr_qNcDJS1ZNng3Hc2@W{=e7EbNq@dn zPJE-i?y}v!oSR0a+-w#fHwK@NczI7hZr9iD>1Xr|FKIOeJ6b1NA6%5Iobu&|$;_Xp z-aXh~p&ckxdRsr_`MixnvdR04J5SbcoSU%V{REYp8+S&Do&UJc{3)-@!e8$>MAai} zA4#UEvnP5VJaB^hvWlIdlUPky#?71I?lDd+DPMah=hgm~U3%$O`#y`wTV!&yB_zzY zZJqSw_{`Q#AJ=mUo;3?gnc}fruJBc*#7d*hNh(dRH6AH%6XPj4(KXfk-H9oe4nRxr>(k->_s^owUlC1qm$@Elq++0$gq# ljv5k*Yzv3Gz?1)srU4dHAB3?wGcYhPc)I$ztaD0e0syl4KPdnJ literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..780a3748235211b24c7245d75b3a056c27865329 GIT binary patch literal 3798 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png b/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..3caae042e420e611caf2e2f117ccef02e6416249 GIT binary patch literal 10091 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 O1B0ilpUXO@geCy%jF5-` literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_notification.png b/firka_wear/android/app/src/main/res/drawable-xhdpi/ic_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..519466c006b7448e78c64606f3300e8e29729f07 GIT binary patch literal 1726 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FRnPj*S($RH&9c^Y?%r(t!Edhp zji18So-h3(weu6rj_%oDbLeL`)6Ol2Id>XABP*_W63%1ieiv;Y0;*OH$%cKynOM+j1Aok z6<F z)tj{W=A5>+Hu)JoX-0GX?3V>-xP5WMpLjSJT_u^Z7r0`0zo5gT+*auf6!ym6b99`}XYl z6Ser_nYcX_8%=C%Y>w$MT{E2NbNb%Bdl3x$bsG+-PxP?qaa#DRsi}#ny{)ayaksdB zoP>jIt5c^y_tD(Q$jHcqhp)d@H6_!&YjB&`}{Xsh~YzQZ0uWxd0tB|&6+h!%F(j_`0hEg zXP;&}9vT`dTC}s~!r8ODta*Gwoh;n)Q6V8A%feQNet&;||MXe2W_c+HbR=!uaWuhT z&$e!c8@^F)^V}AzMm})lld*6(_OM`{t*vcsVPWC?pFe*5Xju6vO@6j{{;^~OiIDX4 z^y^<=Uthg0cDGuLZu?oL%F4=kS2s5|bv3mhX=!QcHLnj$c3l|Ya6p8qT4k!&)md}q z%*l&quQR*M~@%(x3#vm-rG^=oMblp zYk2RS=iaxfBgFOOI%D$>~FX=!~MH=?;4w% zoA0gv|L?@CS+gchm>{sLRQh!6$8X=hZD~EK*4WX(Aygsbwe(VSes;2CC4;}x#6=-m zSA9}aQa;_d5uqX0z4hJ}-ODe({J3@N7T<2p2`8UuY>l%0_~PPX_59}TJv9{-6-S;t zd7`5+fBt;)n7vg~52tNDxP>`CC*l2jS!rqSZL=9F#2GF-stEnv5fmE}b0=|OKt!@+ zCHEfHsZ*!srk|f@df;I}N@?lWRHK_UylCRh3nte$6f-a|FnGH9xvXw?8HT literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png b/firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7073561b78a3f531f65ecd9b6c0a79e97dc82e94 GIT binary patch literal 9628 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_notification.png b/firka_wear/android/app/src/main/res/drawable-xxhdpi/ic_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..785b2a59a8802b1b49f42afd87a337f4d405d1e0 GIT binary patch literal 2924 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 bpZ)lalNE3@7{yv=|tSu6nvShE&XXdzZc9O6acR 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png b/firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..c9ca9ce224334ede15ae7a5f28361665c64cdda3 GIT binary patch literal 21392 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%09Bd2>3@7{yv=|tI!#!ObLn`LHxyv3Q{9K;> zgLz`JQkMniI=!NdyQ*TU5u$TMzbc(u^}uCq!?j0Bg6@A;KR9G{AZlw?@m38!hb=04 zkLGbklsm5JvM6Nm{8yX%!LfT%%jq3YzE{o*;r_nwd$3~syLYnNI2afh5)`6?#TghF z7+x?l@h~tjC_6SVGB6~la2PN!F!Zo6vN13;OjJ0)z`$T2#3I4Kz~I)zz|6pKz(XK` zfq_ASb5zr4Kn#3}_~JHciMrE?&(6o6JbQL;!pW5K-f+E62-I=59UcA#qTBGZfd8y-p z8jzu`fBycx$;rt%k;U;ymSNR}n2Lv0N0UBEEDW&lQW26hD0Mtw15&5zG3kqF_fe&m zfN*C1a|R-P0UAF1yu7iZqM}<{7OjX07H9F{X5xv^ouraoxbsfdQ+u_E9&(;bFR3qE zeahfU)>ns?3tlY~+E-?;R5EKnJX1%kyFF0ks-uFylNq}d608Ig4rEPGiJX1LRXt56CIhnO@-@dn&GUqrZsZ?Ju+0Ge%@IiE+^3NK(x`+Lu z&z?Ptn|w0mQ@xS1PvDi6Yu2nev}ccvD(~~l($i0u`gnWaPCEGTE1RQ$vVQEYBV63v zvo$84jGM7bF2P11;lQJgqmKe6skBbjHS(SuCBw(Q|CVA)LByl}xd*mOwK_fYo9OXn zwqRBTH=q8_n0b8yuTtI=&*qq|&=J_#*{LHhKRVeIJtzIBunmef_^bAHTl79(nZW(fVDxcHIkJ8SFclW_$JJ-nVFGIqW|>MMJ+8Y ztu=P_o6;^u6gS>qDl6b5%hB{gKwSL$BLDez`@K~rc}(;u>3=u*A)|C##j~Yht0#Ib zt%?i^`t*MD~2LuGfcy4Z*GiT0c(V9D|hK3urIw(lQtc}__QAg}_jz{U8yMXl7wt5?eCg7)Vv9NdmaTK;_N%e0=a_%~y_yJD zzl)n&UQd6&|H8$|XN}kAmb6XxT3WR%K*K0(ZPeG-*VaZ~o@ZC!zvR-N>b11$&ySCdJBy#!?asMr z)O>dHsq^ReZ%#Wq>+Ami|EeD?aBQCCKgXi*x4V4p6JPiHDxP{fN?u;#m6x9%|MCU@ z40R5J10Fvj&tF>VU2bHs=hWfzFKz!ka-u2FP zm2p{Hf4O;hbiBB+F?sf?TjH`JTt^SD3|?OL|M&a-%ljn^lhnG8u3F~0`FrNP88alV zE_7zEkV|V+IKc3@rLCG{`ZW*XmQYE<}fYisuOmzq=S7#SJUe|>qW?BU_@ zbeEE-qgG z;W!)L5$i_-_^Tz?lgUWYio9{y}kW@DbuWyg0ix*RLP{s&aRCwIMxR* z_e*7GXa9cs^l9VYAG9XVo?ZRy#6;!4?EG>*54E*we;wF9&s9l~Wd>^_19Q)V_wVDC z_4M*q+wJDa&J%qnXCx+Ec0QSm|F5pDj;sCkg;T~bsbzl9%0EZ0UAwks|ME|tKg;t- znP|-Ld>EQ`VuIq!=jY~f$8X8Fs8(B-_MpJxuCcLkG#d-c9Al5h124|}n#~)bx95fK zzEckiELPmH3(eXYv(C@o-`!~Do3k6|&6`)Ta)m0#LjSLp*I!*-T_3YG>*|y_bLMbO zx6it>W8>{BD}&uz+uHgH3JNm*y_>zby`5d|<@Jx3mU@3SHZt;?V_p7k`TY8SmDktr z|JN06_rLb}xw-rMrA)a>-{0FC`1jY>y}L_aUt3oF{oUQw;p_jgb{{pG{eC02xL(Tl z7Z(@be|vkoqvxG9)fyZ`IfB zmX?;H=a{?t`tq!^udO+I?%cWgq1UGG-McsX{5;#;53j$txR`s<;>GE?H#Q{Z-h3V$ z9Gw5q{%{+w^aqZEKR0gN*m!xle|%bcdU)pjwzl}yU$3evx!9)SncuZ&6K{Z=ff0v6g2|6n-a2BBMa7OOw|rP~*Z;$#bx-*;ujNS0 zJoEf>y{EUg^_(eFLSDUmx$?T0WQFIFkB^TZ4>jqWdiv=tz1UqPo(TyLSj4(hmuKHE zeRXB!-nzfPt_Cmn`&)KC{TkOC+v>7k*VabczrV3D`9cFD^C7G9 zcYmh#_V!*Bmp*oW&y1?u8Myx6qVd%9dfNy(P$8!i8p%lijjNnxJK-owGf zBf+}wlTi0jSpg?@`wudw<31m1H0?S3P)CHTb@u;C{&!2yTjt-{QCRu+*H`=fzYF!I zpPqL5X~oZ_jK97_x1CMfym#;3z0c3h-JSL8%gc+&$NOYIoYvoe;*|X4xpQOZ%$+-T zQ{LTOQ})&V-gawO>1!Qz_2mzW!soKJx=Vk1dwcrD?Y!EXs=mHD?A*@h`|M){b7}7B zhXuPpt!BzkYqMi&Cc($I&b%FXd4RS#-# z_|CN|RdN)FzkTDzl?9voKAoFmxmd!YV8PMW@R_Bruj&4H)UD5wV-|f~p3Uyz=bvwv z2Cclut-<`6fsyT=g6F1L5juR19Hu(IXSgU?s!jCx(6mC7*YdhoN=iy}%LOIdS({E> zU(~&3%^L6he?FbQRc>!r|L@PtxVSjwuP-+n>FMd^*xTueRQ;2nwzC*DzCH|&z6lFFa9)p*8b$#GdmFumcKI$&U?oj z&3w}owDQi0w9Tb|zo&4v9_mz@$idX}P~iZ>y!h7bUk_}5yRW8vlEM7*$Je*3c)s)W z@`{=`Z(bdjy~lO2>8IEFO?r~%eC4m*_4V=kGt6?Mw$C=tpEm7(#p!9f``_H%{XNHd z{`|9P;om=fikdiaqM@dd(Wm2Au3U*<7qj!zd|sX9zO&1UZ*9rkyE7(l_s-(yeQ)mU z{Jdb6Y4)zruYZmnJ-Xhi?9GkO*VaahNymA7KJ0LQp6&nXvu0TZ^rv_Kn>TNs-iBi1 z&5jL`hG(;$ofdSO+WTR(r@)a7J9g|?SkcfLpmD^S>;9!@GDSOUIGkQ2S7}{4ci#TL z&BGTL7nk4r`(vSV`=OkioStu{`N_$jKYn_8`f=Ks86W>1>y_UB@89qDsiLyW12p{j zBn%#?^dFBFk(0B_|M1`-lUVoC*AH6E-@JJv<1uN?=9H6@w630Kk(89QEZS+a+O=CO z{^gA=i5VFywtJ{pr7pPCAn4E#sX0kScDi0{7rW7yiwh<9ExqoqAyTI5X=G_@TN@b^ zbm`{z*ohNWI{WAQM_-IOar(4&%>KH+@5=4py?_6HU5J)v^0lC4d3Se}F7ugLw59Iv zuhmJ($;;#SR((x%J)WAHdiT_+Q&MH`?(Dp(;;EN&dt0u$?Y#F2HvPHZ-rT(Jwe-?m zb^m!=er)~ECvUgMy`SN*wfW=d+X4wZY>a73k0ccuIca#De|D9#Nun=);>3x!S(py` zbS=sYDTvW-37DGS`SQ@olbRpT&9(l|$zeBNzo5AIa=GkYt>S`$1b%tDnoSN08JCy& z&d%d%ef0BpU+kt7&uf!Zy?@-^o|UGZzm!pwJN(Iw9;EDAxa=2tWCvp&zeAP=Fmr2dC@D*A;$#c9zvN``Vp_r#)wx=lij+ zvhG~IbgAu%pshRw4-d5-&e~el^wErs;TZ$dnNvP93>MDio80;J>I{XBN*2eAVo|r* zfByX0eat34^v2Dbq2IrLmED|rdfLicGWM09p8TzFPc)mo_Uo_uZ{NPHD}H|N=x$y0 zu$2*P9zH&I_U7E&G~Mc5*aHb+;mh$VLNC8GGaAT)d~^Q!>pfrmL@!ubZZ~>+d;9-C zweziOeiW1)?~^Uv#hRY+_*gIZ9E-w5VT@%@PE1S}>U@&${M_937e#$hTeDand@tYI zozn6A{Cx41SF@(BJI~qs;joN>0*66@p_Ez9jl?rE4CP*5Tf6)JyXW8D-rj!u{Q3M2 zLG$@*rg$y=Rr2J-#C!ICzf2C(UYvh#kEQE%hU_~#Hpad7FuJ(2`1wCjJ_-)L&e+4w zbmrF{qf*AUM-Lu6*pPIz%k%ZMwX;9Jd+s;SW~cMou={BnBjznz`ELK4H*elZnPe>Z zYSrJ`+WInUYt&kAj>nZLe0+Rn>*Mw&9ol?Q>*tTh{U2LgI1IFz7}HW)oF1Aj42XCs zkhg5p=FPKDJuM2?5b0|AByV5wVZo#M`pbF^IG%!6_XtkV8vtApy`Pub*d#k_K{Q2=QT6os+e);(YKR!HsSXNf{tVHx%MEBvi-31Su zR+YWIB`)9;#Xe*0+O@vl-`$O^|NpmqZ#K(;7?9ari_Sfoc#}gh_W2nDx8r@X*6(j@ zRL=YKL;KR(t>QgJrRzgM%O>g%hLbIq4$@7?>iG`25&V?>rNpLV@X+~mOL zyBHFfI1IF>Or5&5>-gifhNZGqhr;7l742VtAw0g;wC>uPNY-X{{<_zdH`c}O?t6E4 zx4DgqO3K!aW>ahAmj?Yz`2Fqe&Sh&3PP((Z{QOqGxmL^cm?Z>RW{7feb4P1WKkZz) zQ#3U#;ucSughj!F^7Qlb?(VJl_~_H==!G|K+%Wz6>Zeq`; zPfv^4pS%(A?*9Jw%#3NV3J2B*>|3iQz){t4H0e*mlEo`uUv!Qvt1ZxVHJklbKvZ;U z*`FUD>)QEbCrzuB`TvudiOI~})zwlba+6DoKvu$6sLOK zzqO~}<)x*a%l+ownm=K}hUp3%i|vK?6hHUtT6lh8(8?>*_2akw&<%~+mUA+6Wk^}h zHotzek5`zEt+~hakDKXCm!?S9Zx%-%5w2Etk4baBo_9U?+(iFVc1D!#;i7^91u?yt z9kx0;IuQ#4_H6au9HR9%`^ANYbKQESzP{a%czDsBJ9kz|uDMm@H`l5(=kzq)>e9^M z-DSC7UR+%KDlhNW`+&n~o4sRVV%~{~i@y$5O9qv$ytB_@v+S=;6Z#UB$xmq9DFD!g_XJ`9lb$_vU zx3}k?Ul+Su=eABFJI|as!*zehrAwFmzP`A)*m-r>S~bqrL+@i^VzMqqI%j5Pp4?gd{F`3Pj)G$o zmEB9^_FP;UtRD9H+1c4IFR}6O*4NV7^n!EW{Q7@8i@(0Q`Zej5#c9r#A;8Zs*?tveo?}!TQ3fzZNB~H*4FH`t5;{wFLM5Pzv#n*gU{Ld zpB0_yXa9G$a(epndBxApNZOUZyVEOg_3qMAZ+=!L zM-wNFTeolTE-fkfvO~_c>Oq2-dPcKHs2zdt47raEbeoJ-sovD-!IqI2%8 zl=SrZl6EyeW<+hx+IaZz;kWPa>|A_rXK{L=qvOHo>E`Nwb1Z5fwItpXzM5saZ>@FY z^)g;5lMO%2UnU-I`+9Y`tZU%&7wg$1gjpnh^mlZ0%(9WoXYrg=@qWX%WpNvu@^r*j zcLr$Ke0_3q^1Y8AKXU2L+7lKLv7)QD_iE__*QplP*0+xzJ*w--(faz=`v&#u<42DC z$=dNMj(th*`t|vH8JXF(?63NoRqOA6{@K-4f2}73FAY-M8B@2h^7FHw)!*J|*8TbM zk+Zt`_oC0w&rkpN^ZEQOHq)i8N;0NPnPv%8ne3f4b?VZ~MsWxJI5aeF|MC0x_5SYe z$%-v|d}6yBP5<8i|8M%P`v3n7i+0-Fy>c|<$o>2OKle(Tugku(qp-U6mbkcheDt=Q znT~0O)fE*x^dmMXOi?*mXPR~8$D&P-Jtx(C{@v8nWS@O~UG1|A3!SfDzI5r5m|jdp z#C)ked-q0mc6MIQ&CM;XlNaV{wSV^XY2=p&V%eZxNk>OVhM>6kc6P-hhNZg460);j zt4{SQ&%eLVw&c-~&gd;OC2}=Pv#+iBdNn-Wva+J0f?v*NNAL9M;r{;q=gV@;ZU^4C z+n#fC(z=_K4PvFQt|anH8nxJ`o|>|ujaT~Hwv8JvW}l0Bduyw`BS-C}mBH$JK79J} z;ll^}_jh(~Ry8y%e0^(cc7E1v|KH!hVZ(a65 z>+!pHdFFM0e(>_k+vR*d%x~|bsik#kQRvm5KYuRtxBI!od9hpXiJ8Xfbw7W6eB7UP zbyeu(W5FxR-{1Rd96Q(2+WPv!8+#Ji32M<2%f4}edxeKSQH$Fc*`}+Ic@Au74%g(+%?P$_oxw81xVrzrX1$cU% z%m*p=b&u~B)0MKzy|ra0$3nM~FW>DdRC)9B-+#NkE%*1^tEZ^fZ&m2(Fl!ABjh%IWe+k+6zd1M8dL}C?Yklm_BG>nJ z)!*Np{q*4j$1I!5PamG0o&7y!^G&w-BJ*aFA@%q2y zS?BHl&)J`RoNr&$+AuLOF*&P(2M1P7m>^Jd+w-+(;q9&2;qDqD-`-tYJNv@1W6KuK z3+LVyl%A5(AtWRuwCd8y7Z(@*TphmtURri`c3JViRpIOV{>w?fy7_0Ri_%QrV$TCD z3J2E6Oh0{e@tu3S_v|#2c8}7sIdI_aUE72M4UCMcs;WD;ZQHiq{fn$c!Gp-e#D|h% z-CxsEe+Mu3TY2~HU4JWU>-uZka&L>}-rACxou0n@@1~ET%TJv;B?KBc2)oZWXU-fM zw_d5O6-T>7m3s=8X5{SLxpOxY6H@|XJU0_#+Eb57CH40YSK0`MUf=p%M=);h;y(=2 z^x0L?`C{HbIZrozsvVJce)7O-C6wnf9TTr7cN|wsvW-0msE%3>uyvjj6crz$X*;LrgSf#?OjRPfj-L zMsLfxxuftgzqF(|#;+Wsw<>o zJHP#d5x=UcYJX8tkx(0-tW^2KL#<9yySCiilzO^tSLy3lo2Osfy;an{{$I`WYipw? zzq_~hcNJ6V-m0(rWUR~HJpb`p-PH8!<#Thb>r?ad^A`uL%({K!hQ!luFQthpDypiI zRYg|daPsn=x_X$K!W*m&;$g`hQdEX_l|A zufLBuDs@%eZ;pqISk3{iN)(_hzO`6oSXwjnCg@uK?KP-A% z{{G%w&B-U<#qB6){N~!$+|+d8!^6YrS#A-pmM&T1Vw!elMyj-VUeBe4GqaBO$?pER zI{W&%H@iw-x2=ubtaj$;(WP_mwbn2=3N$}@^k^G53)2p+%?<(y4@@U|lr$=Id{psV z*SMbhagf&3pP=ToLC%d0Uo9;y>m?u0$-T8j^5wH<$F6R#&CGoHx%Bn5UQn#*|N1s@ z;>5=3yP~#dU)S67x%@OMx7e4m(o)$gYa)&H&1UDW&)@(4)7P(m8&yswi@1tjxTJw?N;8KQz#hPd|2*+xBl{(QTRwe|0L8_&Id`}VC(`MWz3 zwfT2NMMY(^Z*EF`admZg=FRLkFE1}w{r&yDeP{gtKU>edytX#_^trj#?LAVatBT*= z+Il8dV6bYc$Ccg z>3@HJpMQA$&(F_q*L}Sj-ZyXFJjUExTYhS(sHC(kUYyKpyL+yjpkSebon4$$@lH?y za-beGpV`~rKi_H6lRccmY9>!V|9r3atvh_-hs%HD{#V2-y>0u$SN4C>$0}x6JiFRo5w*8sca>z8c8lq%U5pPrI?t{)YFF{|bLkul z@BWxNXU?DMqM}cHX0v0X``_g_J3B9TXowW!F!&JnV`k&Cod-KV$$$U)_2~B0Q-_X8 z)_0tKdQFMrQSl^|+X^io#6CympIdQK*XF*@+Mo5Cxi&pNKmWO=o*X{o8HbFJ(C{Aj#$=g$83cXlSP*`$4Cv3vhC89w*t zwOiiZ-#_0z=}5=Ywv}GinwpyJZvAq$iC0&J?zghEeEG-JNuWjFbJ98yS6f4$)&n;b z4m6xgF_NsC+S_wj*o8l<&i~>6BS(%{aJC*Y_2&=Q&@eDUF|P5+0vG_HnTSu7au?H;6cLo z%gg=E_mscCx13kXWXGjVsi*H8IdbGRXh?W-`uTagMYsNaIz4_x;p1Z;Z*R>uckB zM7iCX*?g>5`g>tX$(5aVA0BS6577{@+Wz~?W&haa{`2qspPj#N=Bc#Jdrz-hB`afB z!}#LKla}rr+vHq5P}PMzGdXOH;TS68FE1uj+IH*QjB zF*G#%?W%N9bMAkK18*D}7#C0QTDtwvp+o!ndV1dYO?skKqrPsF+0#5tsjoX{Je#7e z?mw?)@rDfo?He}wdwF@e{Jc4HWQxALxVZV`$&-gBOqejg?9C0q)a2yLA;;gnX>oeUx98;+ z4;8D}tG6059UB-IPdu5T&%$)@eT?3B2PdaPDR%SYUq0)e^}y&=v0;suy87~W91BIA z7H)7+5z_1}jB^H+XU4I&14Oo}s;j%d_Eq@%=TDT1y88R_va)rniyNmNm^|CM?9C6? z-DPis`eiIP8E9%|9-m>DyzJ%0snY{A?sx}YInLGkNb_zf)8j@4X1C=58uLI6S8iV3 zvt2zsG5rErL7u|X(sUXx=4tNQwQE;~TZCPAM@PW1ZOu-a>b3M*@#U+# zGBY#pS5{V@HFM}Z;GuA!!Sg}7R$yQtdvH*Y-Bb@1d&QQvkV{K+cK4L3wjDq5*gPp( zu0LEzUf%zARm-s}8xoz>tz$2}zF)uieo;};mR(LOBR4O5-f#c!$Kttj=Q(#Px-85q{`egyC+Fwdnwovf zmn$XY2qYYM^6AqjFIJ|5r)JEUvDj&0K##zxH<7&uo!>k>-2OfLT8**z?l(0(M<0JI ziEDa!XJ>IyZeRALB`1$p2*&N@T6}P>b-CX4_3{6MYi|j$82ajnsdKY5J^m8T#>30R zGlO@cM~U0QfFE5)lWbh9c1&t8is*P4*wNbBy7Sw&Z&$s%y(Q)2DxOX`-Y-A->gw?8 zyLzM6hCO}y)b`4=2)_2q$EFCMznb-R=WO$QyR0iKE{a#hOxAKO^)RmMTDRdvb^e^ah{5hwE z23DGynmYRW=N&?soEsRJ(>xajtgtS5@gX)X?U|q5{P~Hi1f2h~&HVk~U~@TW(te`T zLW8$id)$gXK62eNWm?$rdpimr&j8tC^QrL8jzZo=ixzzoX8D+$kno_qs>HbK_~YKi z8mE>d@{}+$vYm;lsQ6*IGp6spXXUarhp%3}n)mF?%qJ5Rox^5q;TkoBQ#+ zh<*F^E!OCYN}r+CsOZqZxcTVQqPI_rDrc=cyt>D0>8g^S+QlW$&diL;+B$3PX$JP_ z=-cA*xAd0nVP@xhaw=sLi{1SAo5tSF37c>Bm%qPPEArpY((-5M?QOZ?=Vll_uHW@d zSVBTVLR6HM@tA@@!U3JaoiWF^Y}t}q!8Lhhw&vmxtzJ{l>0zy{tuaf3GSjnH|J`1_ zI&7`fhl)K>nwpyYTP*EtY-+wu(~V||-kS9_GBoR|ds&&;z145eraWnBX)#SqOl*FA zW##3d>2(}U93tIE=X0|#y?r;AX>v0Ib6Wf9r&cGQekv*E(*N>a>!s+sz|?m+xw-Q< zMd*mu%~_r+U0wZq7gJ+Gf|u8+tlYli*<5+Ix8;H+3H>FinHlw_&yM}~|MTb1^FdvV zB_-Ds7fFCPub1T>EloOq=$tduOZoukTzv6F(n}+MZWC@o19h zW1eeE?@my3UN+aNRIC2xrqtbAD*L{j*55w|)Xv}4(9m%4*c|b)Pft$%|C6vW=_prW zznrbujoY_(zrHbd{rdI!!ZUr!n)h)vE(FEQ!KX!YpB7bWIe9$KwZGS@uKf6J#Hsxg z!%7Vw$Xb^f6!EWYX6Ij(cX!v;-JX-xcKKb)1+^lcG%~ZheW=)zI#qVg{Q2u&-P!rs zWvbWJ=A%iKui`i6<=xv;`R#6hYFe6IkcJ3*)V7?Jud6!wWcZfru}Bz$tZm4bUbb{; z?lR>)6Vi-|b_%RE+8VWXPyPRY@g-kUbCxb$nsIuXuIJ{ov#*XPZ7lgU@A&z%HMOXHdp+Q zs^_KtMH-U2M;V)&7?{}7jt4iPBvz;sd?))6f%WY@V z`t>w5AKt!oD=t(+r2YJS`}uWmXBCRq&M;0t_wVK9YR%LG@T5r4F-&-C2>%l?ht-E*cUibgQ zhkYjmKJc^pcojeW%6<2tD`*Ni?@C!}m(k3bGXv*ZmCibvwmEys?x`!QetdX%a9i%} zzTI_yf0Z_i{FW1OT`Oyp(qYH=E$Z{Lv*PRG_WpX$DXf{2O3UhtlM)YZ_C5oAJ(4u z`uh6%%3mS7&sN+2d?LKO^7FH`4?h1~taYQWHFk5_*>#qdmeqEDzg+%io_D7rZNeh$ z2@@u40JZ(T-@S9k=1b=Jq>XQm_sj2pcy6xs&5av3{;zx&5|@+nM$~Nf->+*TH~Zbb zb?eoxEt9uhDJ(3MzHffu$l0@Ri*4B^uShYvnOb#{Yw2{jf>OOj@YQ>IiQ@ozOm9;L*C_Ue=;yGQ_ds;wTT-;sz63}vq@`{QdQ&t8q zmwFo+7#4PI_5Hfvxk(urFT}*UmtKB0?Wx6?xz^@0&!&Apyqmq|g~LRTlGL-aOphGv zl}=}8V{6+Kp%e8ztop}?hj(Llm;L>-@BHsyzka>G_*S)Rk%VQ$aZruBcyaN(>vOHk z<#^<5cD%p3I$Zz!Z1eYzrf3FV+qGjy&4<@g@qxDW|Ni_rJKKD|FiYS|EqUwmcQ*B3 zUtN7ZRrdJPqSc*8AK42yz1^~MZ|(1IbN~O8Gl^bzNg07*VgdPHp~5$d~Ho+ z^6jnJ*S}Bpw>$Xyq2=R)GG0qJZP~HoM`dE-!-H3@T#-#a*5fJIef0DePJ^vcu`gd7 z-dFqEN;iIA%$nSa#JajV-z~P&{3cGEnEd$h<80HM8wLxwK5u=)!gTN(GdtgwbEi)I zdXRfz|G!_{{Y`rwJb!MU{N=^P(_3Q~y>j;Q_MWd3x97*+({`OMO7YUtv;9lnhU-mF z58G*xU?PxkAj2d)ZcC5Zne*rM-`w1+&bNNfC;9)M&)eto$=lgTDYnF$g2oe;wzs#x zUBCZdRKd?rPq&Bp=3iM6_a>>g-Rtq&&1!zrW`}_C% zed|b_X?Ee7>wo_EQB(8a0Apu&H}}3tH9_k|v_J5KHubFE6Xsy{q9c(Agva;j}k z{h!DE_U~4|5T0vQnssGWsP^1?r}ZZ;E%kQ)^7i(1|LbMHzrR1f=<%Ol2R`q#DtTd` zqobpvX<{N`zy5OeTz7T#`^rN~DcPlF?9kZ$a_U6PA&&g@GZ`?4s{CG-M z*P>@JI|>qS|K{7Ub!)0=-klj&wm!ad=T5THM32?6D;g^s7?|1IpJyE2|L@o9iw%s- zP5F0sg)W_#RAaY)+T6Kw!>W5UMY^IzYv-JPx~Sjo*NX6zlqW&8c}Hz4J}kJjTFiOU z$&^;3nL0PFUoY2k6zKl?k~!Yv=dWLW=g*v}5fczF*uUxVeB0_}eH|S?Kr5W0pP!kz zx#mCvV{*=ia|@#?etufIYQu(tV+R_U#cN;em}Qz>wK_ygJXZfeiqTERxl#_-*ynItpQ8AQH|I2%`Pk*=Anps;{*Z=&Ve|_EEbY=IxH`lgiUti}t+wASq zd|v-~HkNDiqpjxJR)1r36j;U8_9wgh>HGKg`OnYI{dT|Z_uFOB+w(%Ll7bfoOyQ9> z%Q@7<${ofdX_Run{C>^l%U7>%-8y;lE6+9an;RfXS?q2udiRKodTMc z*mO1Z<=^^;+Ph6;Z!-utGcdC`Kc5;N7kBUQLg#k2#~0f|->$Cx{VgXy|2;=;-`@KF zbqBw`zW(&E$KGrK9YWaTmw|94?Wkf`_tmAt4RcfEm?_aOi zKmYRPW^q+u;Kg%Su3RxKes;#P@ad_k-}~&wf}ZT#|ai}UX8 zdi(7B{P)@E>FxCe0r_`#m0HhRp)=J>Tb4DdO`+p|%L1_vF`KljwlJ%)FtYJ9ovVyX zKR@s6yUWY{?RDo>W*)tHbLZ6Q)2D}NZ{EFQhYTMlr=+ZynAypzSEo)(Ppc4c%F24R z?8%cSzu(uLJ9u#6u{%49!`WF`dG(~9KY04|s@VRjFE0cyZOy*E(!F2K*27(Pwpp%} zpoqwpd1uouf3pM4u>>r3>upq2RAg>$Zq8r6e7U@rukT%jsb2h#99Auvcf6wh%+YS~ z*R|UHr=Q;9ld&jRC+9nP^QKMr%vI!PXmS`hSf5?>DYNA4XCV%jTRb-|M7_PW^>w!O z%4;`o?#xd~Nim3heyppjEAH#->-uc#e|>oO{NJC?=PTpl;+nOyo)DYpizb*H6 z*x|z;Kr2x*6A~6Ik6ODed1FNB>P-=wWAyBolqV+`2_!U_m7M#$tM+$U;`+F~8M|{M z;ugF0W?j6yT<_Z2=S6|LYSI6Kl=Q zw_nRKi=KZ_!s_&?Q&x&oz2v1I$27zVBrG_!BW9g#?D;((Y}Pk2v$MtTE<2l`-6UNp zKG{4(D>O4GDCkEsJO4eK->1%;$vOP|bGXE#u%(vCn{WO&|GP>~?%zXp#V={>&!e{X zR5#9y3jF&dsrG ztg)M~wRSRlW%%pZz&Q7!?RjkriyH~dW?DsmeiUBWS^WHA_4jvY z3yX^{r`Kzh78V*#ojm#R%|))=Ue9H0Ykz&I^zk_}d#e31-`Qd>oHo|$%R^<- zk%oqb?|E&UGZ>k8Ua&wSJ1&vgKWJa!y|5>!s_Q1*8l(a>ixaF)$PsA&7RK}Mq2Js{wmSx^zopt1tX~6v-X1R z`Ro%D6y5gb{;+H3m)~ceaDbui^fcY*it6h6iyM>O=l}Zp+Whs6jf=x?8n*Mv?$Vp+ zu}xiF{eM_MKtRtw*_Ml3>wkww{{LZl^W0o({|`U^RLz_@^JImpw)6j)2kIX3|JU%tePa<#5}&1lldz&v$P^}Oo~9Gjc$x6EF*@nK~oJHMPwd;IFKwU<_%eRFg3 z{!5#xL%+VdYJBMM;g8Rz%7?EESio&_{hg*$#@ZOY`|lq=c0SE?0@Unj6aIQsr_=cTdc}{eR;_}%QTzqq3ilj+PCi?=B`p`nHMZl zYGZExeVUKj>4h4vS~y=byMgB4y+5DHwwHZ4b^iSL4)euZT0S`aXS>lSXIs@0S|$_s zb)V;Cwd9`QsYicDD^1Lq;Gxo5VW7EBy7ymf*QzOtRtN=)v-j{b@q~1ogEn_>ZeH%m zo^#(jJO$wSkY0|mpPoExq!2N-ZMPfyO zlhYw3zV^%8SN(nR{JH%LXq)-@h2WW$6TFtDzkT!O!&HY@tKXqoQ_FL6ax&gdPOLj( zFVE5HWa=82S+OuaSe)gIIE%y&{*4hj4?h2#y!zJplatls`_1;${@!*prgCa{P*Bs0 zC`Y;eFdt9P$UCdU^=;I1Wpw8nUG~_sNy2lI_T)*E=FQk8k#JApz=7yLfB(*&sM6W~ zDD>sN@VvZt&Nc~$C*?`+d;Q>G^QQ$16r$EmTN3ngvkdGe&C zec~Y&8=e14U6d-%JpcSsbHdG8LM(-#)iTLVO-+|RefpFzf$axBhrtK8n3y{ZEf*SA zeVI6W_U|hD^{d0zN0n48tPg*7qgy~K{%GD6?eKLmQ|8Y7EA-#r&FvUpef|IUy*mQ- zS*~^$aPi8^d#7eM-`-1Ws+Mo8fPp?}>P>HY^x^B*%cDYn9r(PbskvGA*S5sU-DPi2 z$=KEWDE0S0zby2Ha^drHb8nyeSAVdH^=9yLzrCTG)6TkW5j|CNSXIbVxY5C&d(jH# zWqNEgK(3q>qj#MD{OuRF<@(KzXy-(DS1hc*Zc$@b^5Vihc0L)4)a>lnOR}qX#_Th; zv#ax|tE>CTFaGz>=kvFh`ON%eyY{G2y!*z8J;6#7zwmKzSY*9QYN%{rVD3;k+4ldB z)|KslXBwyHeR+9#dHd2nvp)hWLsm&xm#rx{JInO*mYKqB|6~h)B%PmUEB*ZZeEHt( zWtG?W)&8E=(%Q+A0~ zojG$R_`S8Bvhricu&`^B*2V7D`+cGEW8bBxPG_?)=+b z>Diwo;H7RG;loBaOX-oMRF zP1iQw%*p-CoM_xBzwSg_!$K-~Jj)<#e7yVtxrl{dM_LZ(J_Tc1LQ zqrry5yBr!K4gLMkPn)&0y5!TNqus{LY&<{C8iYp5pPhQWN_&6q552IP7NTc$kDkg? zZ{uh^)XmhG&^YlGa~i|G#5EBa85!)gw{&B6OgMG!oZhniO0O4JK4aa^d*A=Hqn3)N z-{~`F{@5xg9LRD%5+%)Hpndddk)Wf1P3&#Wsa~aNX=*XG7afY9Zsj}FZI)MK_g}+v z(mfH^yT+x42R?vSUV2XYR`Ibi_BLqU!vv>=JMw0%T66r~-fH#(xz5ciTqmV)xCUzb z#Bvze{CKu8uJM=2tqqBXw;ejMMh1i#e$%7>!2=7%Q=?Q&J}EHapWI(B7%#+4`; zJ_#PCGhQEm{;}Jo=NJ+c^r`0ex3|A}!>2yIy}LZ$Ug~+}(T941PCusQ$x8j&ED}FK z<)xBPXF}eL)@FvyPW$%lGc{#gHhIsUJ=!;K-ZbY4p89lg;k@w97`^%LU%lEj;qb!{ zXO4$=H;0Fn%A0#T39!V?h{}3p)sX1e5V`QcfdjvO{W&sk>eSL}2BML6XKnPO+@w!E z{S+ZDKR?1oz+G>;{ju53$}Me5Ep?6@SC=hMN>lc{B+hi^6I6TOuPwWao^ri8x}?46 z{GL@(ab7!P^mw?q4((1;w#l5Xz>yjibxWDAy;w@ogi~<~)4C&Z?KVD}wlfJNgmoN$ zTzYl+-Ck+)OE1X(lnXNLbvwm8z%)a3QF=%;dvK%L!BU8f9VrxUB% zp9PC-y?(`%;czpZ_-ErOn@&#e`04eRr|V(a}+!XT8zWbw}ob()sF-!Yu*)TGtMkcun+}lJH8Y zq0pfrQt<4j!1!0U-u?UgdwtovJDke9wglwO6PG=|=h^QcKRQY>7w;50+-xhS)UwZ= zqc$^Dc&@TWSJPI3wJa<%L=`!h_D?LmzBM*8GqWvGYm<&iT;;>)#*L1Sj-R(!e6u$R zPg-^4hzo1~ac&0=PXVWOp=(aQdHU?xvIqO?q3hJUCaBzWonHo8`sh(_I<56tWn8g# z^|Me(nIu`Ol7O_dw0X}z{}kj{=n@+qmng7j%T0MlM@Obsr;n#VTfrL{HtSjG-|Jqw zbZP8@{UWCwAFuk9fA;etX9tG{FCDS}K9f}TO|_VmsMvPhXiuv^)|Yv^K05S%7ID=T z)x8>-r927K-6&dvs2l!zMuDe$T+<7OUSpnj~_pp$HvBb zE)1yPQhbu|;`7BNX(=gBj;vU*qHviW%M5uA1MLSdUv{=QB`#U_*2~-5`_0?8^+rCS zXHr*H#+3+kx=e3zQjF6toVD?sXLF*8=Rb!)ku~`o_m~*dSSxJg>K4nc$hMy9Ra*4( z)6)&hgDhuVY*U;4+?9Q2%)UN_4viLp+c%zHo4h$fC(c3ONP^8Sp#~#?glh}u+U19V zme;4xD4KDS;q#tnmqTXxiEte?ZBm#d;I!Dcu+ElOh^zG^Q)7cssUqkggh<9oDz{%6 z*HqozRjSS#EciJi?1sVXi*2_SX?XcgN?G!3)f_|NIi8bb`cIpe%0hJb`=7tIYg^#z zt4qVz$4!-7rj)j@aEs!;PeK8yKBoy z15v}n_x4u*&d!q#`&sRxH(lT0XvX1FDyphexmpk9&Z<3Zw{&N%dF4wbO-)Z-5w30lr~Q9} zU;E73y}nuCP%+2hjCbO{U(J8;H$+7!*3994gQLO$9f|3u*Y*p1y0&$$kJ{;~udhNU zCayBdpH&%Ga>q>Pw&%?U+Bq-0KkM+sxBmTg{=Du*lk?n%>+Aakoceh;$V`93*ID2=y6Nm4i`mHA4yL&%<{W_Pm*>a6E$P6ByC$BE+sjEL1`FnMS`K;%aoM#ia zEZnwe(IT&-NrwB*-sJB8vUuZbhO=UNzXhCZGv0hR&3QN-gIy!*UmLdmA&A?NnsqVc;;}cAd1O_nCUa zTnlUKebx^o#HRuFlP`* z5X+gej{oV$4?kO4T4MX1A4<6LmlDDG?PH5BHk%B;SO62D{UWg&r!q1SKSPOgaAeqF};)<(7XfieDI* z&M>jEu|2xVFZJTqyPKQS#q56>7#kbkxPQOiw)^O&AC+;tCY?<2P@4GU)6W{K-KC2( zUVRPe+pxi4WsF{Yw}4c1>%R}7*RAa4uV1v@ri(3Y&R$x0f$yX6KhP^l@EgTKMQl|Dwf%2oS-UDtRN-V{s`$nl z*UYfl$LclkGJ~!J6kg)rKF~{Yu8%y#y+ZyE1qd~-kZN- zgX?~;K27e4r`Wh+PoFxqEAk&RSL-82M}f7MFI_qYO4cn?Z?oUhHeD<}{m9XyZ@as? znm#b)J2XVjm@#9si{fma7b#*xpU{PUSA(?zcPM*U9haIZ1$zA z>(k~(_b?VnWi#{+f;9;4;dQnII>GJH|pura>Ah1Ge2XE2)N z-@CJ{`1!eerdd}c1Y~7>Z{56Eo0Xg#{B&Zg=*E`HxLpf0Ud?k+l05nRbNMT)=^Jcz z#_Zeh=d-@ddj0-y+=LcXV;bn1O%kp+uQ$7J3GsC>(;GHtBqZ9A5_LUX-nk(aO7%rauqnDu!lv&bJBg~ zmRTW1N2|T{rvDcZ5!oVoh+Bf0MZ%%4ukX8W>AMRTE`-JID&gee;d%4^*|TfMW`sw) zPd@p1Ps!2%jVVlx3ARoddn0t@+$O2Sxib5^=*^zi;Ld%j#p$71tJB7*i&luM=}AU_ zR+7ue$b9J7`?<}I-%&tMzV^#S^@9fw##>oheysZX>gn?b4=x-ycI;TpKEC%Ht%oKo zS)#Ie&(f?crp5&0IG5=vp4*Fr=S~%Io%x1cA>rQAyPMO` z%($p;V^cF@_wH(Kc6RpSyKd&u3IboQt#M(rYgn|xec3uj1{TJ&!VgT#{XZtK$4Y&D zbMv!w%LT8NfT{Oq?EClY^|JZ(|9(D?uleZeE!Thj=Gn7rb@!bxZjWw$|8dHq6)s(i zo*j}lW;nydnC58mIpdph%dgj$)BGRl&BB=0=%RFyZDWK?tH7dMZ9(JmaJ}jB;Tj_K3N3yCBC5+ZUUh=Z zln`T?!MaG}RiBH}%p=b~n@d-0j1E4yo$cd^gSAczKk#=g+Vr7IaG4$#Lqd!|f*2S7 zGY@ZX=>rc7O5*0;<9YZqa{H!DoA{P4UoIb{Au|0*(a-r6Ywd!?*%%CDISja4!-f65 zyt;(ATK{-$%P|lCA@(4#C196>!VRauE6%~GDf4(3>hfm$JX!FYKl?Qk`T_!0`^!PCC zQ_(~Zmg3C}3{lMto0)!y-C62A-HWp+qFKP`=)b5N-hX7c6{mOwUMcKaS7`t*>O z1Or2@V?!jTy!`yPhK7dfElvx07XIH}-o9sQNFqZU|3h;H?G0-WOpFV?86U8duUTRC zGR1=v?ntR{F5+u;l4;(%PW-Yc3uCprkc;Dl2Za*^yJH+TrQW~u{G)ODo!KXUo;y?V zzH?e^{pOE{=M>+&d-v_P-+$lxZ_z7YVR_TBraI~LrakqwwSQ|i->mt?)@EI2EyJfj zE%j$+&&Q&3J7*XF`o#LdjpN3|$Y!JGe;z%0^yu~P-@nfvmyqu_y!W?%dvv?bwU-C- zx8HtiUVKiTH;%#I^+4a1y8ZtjKY8+G^4YY{H-G;8={|k>^z`)fboo9*yNa`^^?inQ zwG|Z=J8!?;7d`E%!Lc8y=UxgJet5$2ro-0GZeNx1?^n;BrOlZ)Z(ng~>DG7sfA`+a zo4;4;hlLE^{qvUfanqja&(C1GC&qMa|Fy&Cw{PG6x^hkF{x_%p|E^?+b3ee~A!NWX oiG`;@g^^jobCf$|LgOE!$z->RTSey2K<8b0y85}Sb4q9e0E6HuwEzGB literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_notification.png b/firka_wear/android/app/src/main/res/drawable-xxxhdpi/ic_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..abe6efe0f85b3d95c327aa5f73ec93cf55a7d52c GIT binary patch literal 4299 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 S$ew|Lfx*+&&t;ucLK6U?jZVA( literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/drawable/launch_background.xml b/firka_wear/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/firka_wear/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/firka_wear/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml b/firka_wear/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml new file mode 100644 index 0000000..407dab1 --- /dev/null +++ b/firka_wear/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/firka_wear/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/firka_wear/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84rT@hh9qO>QU(SF$r9IylHmNblJdl&R0hYC z{G?O`&)mfH)S%SFl*+=BsWuD@4C?}XLR=Xb7#RJ!7{h04Zu=H;^aq4w44VZJaXaum zG@>0o`I5 z6U6gpN>(hBs@ovlyiK}omrVN}&28UY_JdsVcA=Cl0|SF_NswPKgMfg5KtMnO2sE4r zf%}pIPku2lFue41aSVw#{PxUsz9t6&hrp0GdlTMw^~h@f`fs1s!olsWbZ#C0v7PJ9 zExVjNeb(Ol`RU07XFf|X@qSK7qke0_C&kUH>MnD(8u-mi5B zt(&|xZ@%@sBNk%nt_5+E&U1QAlyT>>sMB2Zd5T5*R3&Sld5=98o%0qdm+@@-JjKB8 z(xcUiGOB?O=e)LCdt!o~wXBiQlFwyn4JZByV%AM;NvVnbCP}O~19@}THwiM^gE4RA5Q1`DDyQ|q}|9xk!zn}H~@7d3G??2nT zkA8Tp{U3pFFbW&6|gAFS2eM{??b;ulQA3!FjXj|6kR*vr4b! zJ&*D&6L~u0=Crysg39VzhMC*AUS$NDTTE8>Kc+sv<`6^Ws+~I}V zWK-##zF6b>o3_mt`+b)#1*Ng7s;U-PG&G%7 z`)*v-{CK5h@v{eW%kLdr<~v*BP51IyhQCF7&%c*5aIl%j%-8N-|J>3b=aR06NLb3+ zXS@09KOAKL@#ph-NrCBp^X+=y@Bc5Szwd{Vk&)4d!~FIS?v~$AJ#Znhu(t8>rP=xW zI{WSaN%Z#iYWz6bkscS;eE$1caaNXqKP<9IlfLc8Q<$c3@bUbauf(C8K*RXA^|;rfCFBl!_VH!{CLfxylT}dgRCnWOO`MH{zK=JYxugD#C<6@H>L6jyj(uN?v=5^r45OP z@BD64lQuEjw^di6p-V4g!i+`DN{eJ|>=wvowN!23d>VczG5fKy(ZP-n8FFE7wj@40 z)M`=p$3ib=#{r$C>X{~f^A}#tx_i9GZE^VfEBEe6>VN#PH}2MICMJ*j3a;Ne8F@}E z*yuZ9^({pK%Lx;Tq(i>mcXuNnH1Y+jstdLi_LVS)=cTYol7Ji`jMEt>>8V-GUN z-R1kETdLok%yHp%{(j!QarNz6XPixo*;6sG*F~>a#`05N{_eWJR(!HnNB#u+`0%vx z%lAE>SIx)O%JlW?*E1IvE3Lc?U1|D`jtcawe1I&W^&zvezd}@lt(u zc6NL8_Pm2h8#g2`p3m`7dlsLB!dC@hW<>$31sv}!2W$Ql5=ZE-m%GnQ?tG4;%BoKcBq6-w$Gy@Au{Zx;mDTx#V$^)GZd}79r~= z4|6A+$SvP%rZ%yCiX~snpKCwOU9W7}>7p#)dU$i%*+Y~4?OtwcPgS!u&2j`Z=T!Qqut`0_iN5l z3wU}xDzI#==tt!gyX~*#mP*-dG4YsKt|eu7Qdi~>PSl{3^; zEG7Mg;XnU>a>J@G8PnnlJeObI`F-)? z#W&OQr)^I>%w~2e@cLq>TRWE5NS}RYsc^pP+_~_^um4N=e(#Svm0ow$RAzFlQtLt~3fN+apuB)|-V*Qz6+_|9p>=AD1hS&QU_NO!DrY%^vu21y(z3TV2ViPBSExkJ9 z3rGvjH>m80L}ezc*&*dF)!QquCE)?r`<028>6EAoh^uw zvE*Zlv5&6bey7X^^8yc(riqJ}tuxKMq_QSZt8!47|VmXHf~y(fPICW`-Adn0Q^xY4@HoB}lP1 z#gHlcpEIYH!lau4wWcDoDukDKX>(hgJ*yORCDzeLHflr?6pBA?? z)sOuz13oMkQ(kt>S!c8IFGXf9W0N-#pDy$AsKg7*_g;DmKYPe_)Y$r6&=-K%|^UEzBQ4~vrZtn9zr<$iFV$SPg%XxC;Tk5Y;J zXKQVavL4rz>(XB(D3+WS<{Z0L&A#WS)T^M7lQKs81kE=o{ml$A|H-;y*NUrqdya;` zekm=pJSWU<)u)g%Q7cwoRB;TAlTdohJE1jFaAt-}X`O^mZ=>|9zf2*ImjD0A*601T z)r&{!@fL~PMT}D|6E$|r^gYouzq!J!z(;u9^6cu`HuF#10WaU5d*>SYeTruAo?X|) zEmU^*_D4T0dNyOJV%Rpe2W3lTe$76YsW$P(xt~1wPmC9YE#}>tdM-(P?Uz^HH$`M; z+JyeH`}IQk`^J5T3OirjW$AD+?BD6ylWp(jWP5=nc4@ishL}&10j`P9mAv%+U%qsy zsrdQ1jjDPf(^jlpSvdc*7@udjn)_O{7T1eszn;@d+#T7m%jy5K167mGH}w2ESGm5W zrN#POVC=K!^XtoXgFW zp*17xm`S61Kt?9_+3nv|n2i4jvIae0SrfPU^88Pd0Xd6W*7~g7m6+)LEM{_}G^Zr;U#a?P{p9*= z?NFyZn=%=^&0lHXx>1$BNgygzs>Ah8Jzopr07>lby#N3J literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/firka_wear/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/firka_wear/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..09d4391482be68e9e4a07fab769b5de337d16eb1 GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4rT@hhO2JvAPLD5*NBqf{Irtt#G+IN$CUh} zR0Yr6#Prml)Wnp^!jq{s3=9n40(?ST85kHsj{eZx_Kne_fiZlx=C*GkM}LGI{lOSM zJLKpO-pGCkS99Ap_k-UdY{uXzjN!Aza;8BPGwAv==mjz8hcFm~FxcfWYPvCMc`=&B zF`6eaTBI;qXENFsFgg@5I+ifHRx`TQGP>6>y4N#$)H8ZEGkUc!`m{6pbTImMF#2{f z`gJk-_b~?aGX_m$44TXsJQ-wH$W+GA>5O4B7{g{VhRtFOpT!tHo5?tW$tsn}K99+{ zjLE&4*|Uz>tC88eNi3sZJbQ{n(LBkDd1t=Sn-plsE283-d*czTa-zm@iQD#kujt@|Kvt4hp|H z71QJA-@DE-vCc=}m3vdfeqD}l&W>B;IduNM%M_}RPx;yPVrk2E_T?&?d+vqXsA}xF zGk52_Ny78;-$vOoENNLjTll#WOG?YLuZ?eO;uVxk)@?h*_~6>qo(~l}_f@BaD>p=c zm>yaWRpaQm|`^KGX?!;c=*_;KycpYksb1 rdBk${xlomwC<})`ozHbP0l+XkKcl<5t literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/firka_wear/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f55a4d5eaaa8991bb49681c66c0433b4584c9d99 GIT binary patch literal 4418 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 literal 0 HcmV?d00001 diff --git a/firka_wear/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/firka_wear/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a8161896ffa4780048abbb91a1257639998bc2fe GIT binary patch literal 6803 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H9Bd2>4A0#j?Oe}X zJXBS43oOtzFB4#)3x zjTc^*=Isr0pU70Ccy+2SO1J@(ap; zel26sR1kMC-f`!5=l$C^WW=`||Dj}bP28}v?tSOY^$#sqR@HUe2lM z*&VS~=qNsOMUbB|zVsV1Nt|e>-j$hv> zziQW^j-U0X5AQVY_1jUDy=~o!13NGG?)Z1m;>XYGcJJLQSW8O6O~cM;ySa95yjv{& z%Ew}EsD9u4Y10lL_itZvg(0Pf$L-mQ31!IwUFiqs{4qPa`0`7GoEru{b1Vdz*?1g^ zij0_;m;z#Bdnc>=CtY6`8?m!Ul~2|x<+E+y`}Ie!=ZigRV}C3wwnKYI2J4p8O3Q0C zftMa$mzMUmsNCWw^ICj*(vPPPCG0GD{xx26T2%4u+&SmMeYqcF%I}u`I3545si%i$ z_VY6{44wb%%)G4j=jZwQV{N?BA?Huui|&3}+->mo+YP>2^Yo%Xt`{HnuQu&;_w-FQ zzNV{lblcUZ5@r)uFEU_h|Jm{U%(UavDt48Q@ z;z1*OKwMm2>A82jp&l=j9iA;!l-f75OwWqZFe2`E=OdP_hx&4 z{Mvnb!_VJEJo{~Unvb)*7N0{BZonSp4_e%EJyx$dOA+N`nbn5Z|767KhMnfA3QNpInhL_wcDcN zgTky?vjPGF8hWM8lWuRz&B)2I=Ez%P{&2bK(;IuX$f!v>Ptu$xsvTD1VKZ&X^5xw- zGTz+SsG*tpm%n-1#CKmm{lEH6GHS;PmXN3$8cEEmb#--4GCT<mF)2krm=^#9l#=wkDHalc(wuupDhyPk%P%^l7A-G!H*&#&*(Ubn+3BEq|D&DsMi zG6ltBR_)%of@Mo?DQnNQW9;VlDi#ay-@Udba`T6y;_+Lm<|+OBbXx!8*X!}gzrMVz zc(?QUhj+W*KRT&CUu4mv``+H(Z+Ee6ep)!K;*8Hco5&qob{0S1RyF5-`Tz5w5{0eB z_UGfQ);84qnKf}rU|+)owJCGBoC5PEWPQ>zFc9#!{W|5x@A?0}sB3?WxOC@E&-#78 zxV)$99d+inZL$CNvA^PBtN4c-$^8$XPLDrk|L-GzNJz+yn%cCqWx=}rlho%`FnxY@ zcJn4D_p)mqj59C(HaVPf>EM+d>*EKD*?i7A2mGk~E;K!?w^_RBNSDXSZvA~7aeJ#C z9_bXWc)fP}n_X?UZbhA$XB)j{UR?d((mMr*c@Jp?hOFQFO)9SPsc2!}q>c`b>7DH# zsxJtwjoP~E>f`iHuPy}Ke>1Ua=64Q{bf@#)-7ONcdaXoccn_}JE10or`?t4(v9I(x zj{EH2Xj<_^_`%efTU4IQUw-}d(3{Ds-qW^7%V?iGe_s4u|GIulDYhf$?S8MR=vfq` z_NVUGOZABYZ?3JK{rLWUzaKZf7$tih>hf%NeJ!hBdnTJ@%ACl)AM>8aPUv6H8T%_# zXUF!gR<2xm;^fJf7rqAe zcpdAJOjccR=gu9zz5DlG&~0yPi+b7;ar!e$obrOnyOjmz1+*{VxLw$_|6s=!LDi1; zk*$koCvC{DWHM3{RZuy$>r~zM*9XpBeI6dSMWn>>{oe2MPAoMsx4yS{@{}nlUn5dd zmRwB^4GrbnzkRU*=PH-?3sbgS=jb^2>D|)Kj`yLhOX@^dy*ugSQNqmTYuznut-P^5 zmFbtC&W25KjE+`ks_wN+&ok|O^SR&tpT?`e`?cR?)6UK5eDo-(eO>;Q6@g*>D_NhO zsn|Vf)-0*3Ax;S!(nX$_GAXGomiyU$xTV|6W4+6#2BRO+SJt-PWA~5^>v}Oo>Pb$& z%dsU+KiIa|ecv>@G~!1W=gr+*A701*mtyCWIdElV@W$lhe2R;{zP^6DG&Vf0a;b-a zR$%lg<9kJ_)!*N3J;gk+Bf@@q-8$VpUJhw9m`_>Dv>kdQptxkozo#F#L&Sq3Vr+l; z>bRWDZ1!M`Saf-Qd1`+jbDylW+AYm__5UiDELpZv z{`1AW%XjHcvv|RF)uQgtj;qO0+3{}=?wTRRdG}B3ubtaIcrng2G<#L}%)#PQf9rzZ z6M`PzE7AJt+NHhCed`Ke&H3-`-P#2&``p;YGQ&8%uORvH@qY2EdC$r!3>=mn$Ve3u z5_+?1o4?)9BUR*$Iu@880|U$1Zf9d*pIq*|wW%k-WU-JZ9rwnc2qnR%jT^6f`e#1v;_q1k5=kQN zE=hAM&fHkhywOwL=-M}<&y@+6ofa%wdb?SbvG{B4sVSOD+mkr|FTH#!z~WEf?dH|` zVehW$IM&wgU9m8b;f?L4>2s~iADy#)e+r$wXeU)vp&?>_U=Q(~_^1I2LOC!Bn#A(szT)o>{1%y@}o?`7A z@nzMv?+;gXUVHX#_j|FzDfir@X2kZEOwPLS=tL{ zU#<$uanCzjF}ES>^xuueg+hmfUb*xfK4$n|VeyK})?-(1`smy`z2$eq(e;McpWJxe z)ZF}W_x-@9($U zX43!7Ys1^#)iT>^DXkY4$jtiSc+%7Ka*k6)(%g){2JBb*Cf#su|Cj7@BRyV7swKRjsWUv+I?&c=d=PARFWk+$b-1b2%iCtv+u637#C>~liExp~T6y>lm?lDgM< zxYT09R;j=4Re9O{;an%otfoAdJaX_`|2t=I0hy;i%pPqtf7H}4!)DL-d(}tpY3r?z z%wFXE^4{LvFZMp%Cbdh){Q>{kW5%j6D>sUzd)t)6p6S{=vA5B3`p3iV{Ni^f`swbs%GE2qeLjMdXh9k)BCF1qrtLsZ^Yw&FKqg2S@na{n1Oca^SQv0F27&tjj5 zpq!q`H>|v`FKy9wUM6+J@3fj(+8JHT(k*<;H@}*2$N0j^`v*ZSfD1v!$*%i!^aWln z?si#|!Y^28b*3gmA+F-c&)w=5F5OziW-YC2S^iFD-QI6eiKRJ?*)HMV{{4Qx+U)4X z)rIT-+}%7`P~waCyUuG2vA5Q}-*w{+Z_wjbOMhj#k9s@j9d753wmsHXQDzwR>4b9s z7EL*CDJdzJq=|-;Hc7>YrX4wd`m{k^)s$n}<#W2795P<2-`cOmxc9iIlF`by4Augg z8g`dN=j&CA+E#xP>9k8UTn1BAEqV<-1s@z7*rc zt|VbOsjDsS&u33CjEWTqoWU^PnLqKx1Viy(l{*e?yt?V4;FUH-i|plYK0ZAe7oV1? zde7=TaL;$DME%_AwHI8K6+TbtX$tPGD6{(TiA{J?b#(U$cE^Z)1>vjH4DzJQmNi8D z4q7xVC#B$w&Nk(ObdFg0?`uTG#I{wvJ1{M)XSbSAmARk6ZVi?tbIu3HaoAY0RwTD` zE}XdbfBLlt7DYu-`itk@ZCkbN&2o>O^7l90@7Nu?b4~e@y=5OB99)#yTdA2^x^K-2 zPWQ5_3*HBOpK5Nkw;|{3^ONTpzpD(=5r4)AO?NOTrufE;R7yqfaZFxk|qky#{ z6ZUQ~mt6DiiNcpvd!?5*&v#Y!y1;7uptwe@PqupD)k>KcOIj?&)g)#{EID2Aa_RIp z`}CsP&F|M-&f0oJ*Y!=u6AkNQMlIE6EqWSfzW%mg=@O2ML41M5-7;sN`&q4RxHX$6 zZQdk7d71vW9j^~Pj(@*JFHb8wsQ&Nkcvs(3Jkg0a4_XvFaM-=BS9|yGcf0*NJUF%g z-HG~gnBSh`^s%e*)-v}i9`kNg49q>dp~PjQR5S`~B`Gijqbt9QW#ezYR;B@b>oh=)LOIi?6md z?3(1Ks-QcKUH5L|sktI&1U5gP@%L2L@3kDWkDghrt~dXu^XB>O_FB^)ZTs=#aeuB~ zlxz3a#|pk`M(_9kuM_Mx3_MZ$gQw4OQrmskoxv@)S6-bowbM3c_sYOtKV^lr)7m#| zkKDO>^IG{EJgm+Vs|${%oMS3hJrXOIHJfwi=VspYw+AiSruDN|_e$gkURkrRxX&b6 zHm~K$yy|O5e>}gq*gf>9-0h=(s}EbXHf)KKGww6lGCR@XOp|)O$GfzxI*I{3siLeJ z1~uJLPY$pj{NT*eC$D$#cKp7MA6GuVY)Si_wMR+)Nb|Mc=o&3;?W2kOI!l(N{%bnE z`^F*3X~%hD8P5l6o8EZzzW)F2jD-tk2fu6G|7(_Zfz7|Dkfie0;$Io(#h2Q-W#t$= zJR_)(EnZMyyx}?fgEgh|BegY3+}#D@>%6Djek@A$+y+$IrV20Z4eLF5CzBy>I+o!i^5 zb7p*P5}I=|OuqE_8_o}2H$3iNTRW|ST~_b0|3l{KHUAcLs-^U;J+g6rQb5fiOiQeRnpFSb3^}`P+)7=Y`WF; zc{9V6BWWD@hYqZ)JaJE`xA^9~z4|kB_qaJ&*N2qH`n)YR+q663Jg>J%R)Ed4v+?%z z#rr;goT;iN;S{ai(DdNXF=gqbqx0uvE@^rGgVm&)bL+{!r$d+b6;zk&8-}drT>jna z+Kp#?dz>83x(WBa+w?AXVS&ZU)6yG4Z$IL@zI++u=J1yf#4kiK$V|AJT_X5xy@x~Y z&h;}&*KRRMvWd?!-=Pj%^#_v_Eios)L` zq34uo?w(#zJm1!HI6RyBGi-8FrsJjK^A5jLjlFPXfqVbMYlU*@$;B z`RCObDc2*KxvA+k<^f)v&+F$-Q)JBAVybs8c1vjJ^46VMX*_KG+^)Wo1qHctZroW> z;@VUAt55&PLHS2Vvn>olG$&lR!S+QWu4&C#!xb7FBGbGrAGNK2X|}4h=$O&u0Fvw{6@z&7E`Y;gz<6NiUiwE$QK! zGKcR_XY51{4#QP!*KFOy7JrIi$kP7Pa#YGdb^TP=#{y;fhaNK}UE8_uTGiKsZo2*t zS3C_Y%JR2xTJ(CY+R31bOy%y4zjy0dY%_FQvu28;ak5%hhhwSlO8akm{vy-5-@Uo> zG2w~)$C!s9y#3r7)$6~$;?~_R{((hyt4){j(NA-)Ia}`6u-GJMxbmvTDb9lzdkvM& zFYYO|u<8EprG17=RLSbk;_NmD3+8@qjqLfQe-2OF_KdgWoy+Q{8<*_#)MrY%H!E0@ zzf?A$Z_%8DE8#yocZJ{Qyk;2uYJ*Ure#BO5vnpXZQGwfLTz(P#$%*oPy9@iCX8MK} zHWXN&s;(%wDR+6Vl~`nT5Z=%y-VIpKiROyRC`QRT9`vVXqII-Sg! z9zXp#Ygfu5)spDr+g&@Yg+5yBRA<_ITx{z;v2A5v)*bn{cHLh7NcWF38a9Q7#TQ)u zbT@X|@kvc<1hg3oH8L`C_MS*^-crx9I6G};LH^ov#y56uJi}b!;}EI!Q{F6RrEh+@ z+Pf__)27VfaSC3{x39~=Qf1Y{rUr?C=YOoZ{;G*?DJtJ1y?Fa0LB@@>%Fi3NvL@YL zQF)<3`+@EO%iYJt)(P<+DZjRO-68)w1~(=xIC1TNY}vJjHD@m-O+8k<{HZLLbK#(lV=UjL+t?d0hT^%0&duMkjHyIvY`mrHUaYjY3NRyM*_SYZ8Y?KyU;bGpkc2nNV zCk>u_CJ*#N`U(~=EiBowRBDSwZ5!+3NvE9zXFr*%+IX(Zo#lvU)E1{KW|6RUF`9h3 z1{QvP+zz)I6u!tLIMkTe_xo?$5%IC3;Y-!r4##Kzb@|=YbM%)d2<`gWy<1}W7sHN= z>hpG#U(*-tpK7%08`qI3l723yz6) z5r*42L{)RykGBcf234`gZ7|w+a-RG;m5)vHUVL$M^mseH$5wiEL4vpFry}VKS2BdW z|F($K3+fwA^L(TCSR(((W2PnvmzBpabS6G}@F)40tKGf{O)pt0S{rm0X4KrRzV6n^ nw#Uz5(z#Z8PO}L4{$XD}PimX)GqLjw3=9mOu6{1-oD!M_WOc@v$BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFy0FA32|j$U7=vLLgJC#>aTJ4T9D`W`gLwjjbtZ#N4x^eAqnb0LmM5cOIHO54qe%>- zNi3sjJfm3xqeU{KMGB*38lzP@qg4i@bta=t7NczrqirsuT`r?t9;018qkTT3eF39G z5u;-~4uK+6lW`UY0|SF-NswPKgMfko7&thbzyBTz-gcI+Wnf^o^K@|x zskrs_3VX0{ph#Pyi^G})N%|2R%{L?-ZV(U%Y+lqcfu(WAio}U)uIrV(+3WUaecD+A zmQ6SJem|Gdo_Kp z-*x@+`J3Y19B#kQTkx(t_`-K<>p6dn#rh_GuokuWC9d+nXX1zFdIcZVw{qEhc&=6O z^|eUFqwV?=KCBk6c(Pr4!l%_@70=G=P581}wBp75D22D-njfy%?{qk*AOB#Z{bq-g z`q2+|)-Q6ns2@Io{eMN{rubzF`u|EA+wSjG@UL6#aQc1N1oQe;4(H#;OmN?SS>~@F ztIeOC+&g|0i+=ccTfE@YZP5>((!~ot`|Cb zb^PFdrt-VXypJEaJ95?T2$v)Ws{O#V4Ednvz`|Pb} zf4VOe!@bWom-}e`tT2YtP3!%mny=z+}-K6mV2ZEt5Icwo(g z%Zr!wX>UAuh9QhqUj7<;)5IBxDQpH>KRz6|eoM6P*rQ_`EdPlXYgN?$U-3W2|NYf9 z3~H?J-^u1!lq%j3KgpL6_~F~TxcJXA&m~w0?N0Rh)m167XXobE9?sqiHmlnth&$|i z@b&H6->;epMCgPeb()B(Tr|RH~O+1PwlVxdT!ROU2OGQ3PvhLeQAwP zO|AMWqpQ}lM;-?Ix_3Z(ZoZK*%HiZ|EUDeVf^rGH<21r@EM zSf|zZ`p5aNP1ut4@|gFs0GYW>Kcl68^QPJ_Y3_*8t*clj9LOfj@Ln`LHoy%Dfa`or2 z`zOteXTGWS;1D>ZmM9p>BEpzjymE!^yRhu5de^S)_ud-1X2+FV*RrD5Mis98y-q=+ zgKI~F!tZ^p4kz}#KdJJ${+=*f+rxX-#wS&Z)xZCl_uOv6NuBZsd!E-kzwLL!R-doH zLCH`fv2h<`r^*BmMh~7|k%l7|20Np%z(Qt)*4D+Fj`Z!yvYz$o_QkYv1(h=_n^jr1 z%?MCg(x#}VDzk9mGKc$l{R*rXPG{z39$)vB_r_Oe=1*lNi#D#i`#Ag1A>S9)H+mK( z=USxB;k~xvg51vQ4hpOnyftrJZ`pb}Ys2q$wk_L!l!@)yd$p1I_N*gcUur*4Wxg%Q z&;`2x&#H$;{0$Vn_2%wp$)~MrD_$;idg9l0=*#>g%2s+m+WkM&H#1zibfvGU_UsCc zOwqLFqf$*bmKYpa-qOvhn)`CzgA3|9-b`g5b3yj zM?=)dfD|8&O~q?ZoG??~TYp?s>RP2^&c9t^-D1-?t@j#7=!g|=-LhrD!i5K)U$?&1 zxKw}o;)Tn2gP$EMf2YROBhny#CFI7(lisN}cCXBqKHWB}Ea&gCxR@h3rimvq&3fhw zHgBm*n}4sn`TyhRr&>H8@rJDy-JEvz(3_i^4b#p@@JN|(6c!d9f4_DiBRikWfnBAq zKU@uuPyG1ksD`HI$5(s9>jG5I9Net$+i+4OCQeC{fq#nl)<^aAnl8CZmuucHpCv7O zW6v(X80NOPztzCKeIQL%ZKY@XPJ3gPY{&@TTKQTkYSIfLoQdHXb<@MIh z|Mz8iMqb{r&*$y?+2tx2T3cJ??4R#mYTDt=cl^fY=F>8hm@X_>v_n+?|4xCgSO3ZX zc~|n|F1KNYkBZv4PS^X6rWlbgK96acA4F%@gzSmHC+_ z$?57Hyjv#koh`jb>W|Ex|G)45|L|D;|Bln&lQ-Wic)$1iqeb?ZQrxU=IZkz zWxwE$vvyx@J|;4WDPW<+e#vUHs`Ss7r^(q=7;tfM6+Ag1II;M0DBrt`Lx+C%C0tlJ z(c2&*uxj-AvE!O86-)Dq&+K zbn)Xa`M6*E4>N2?Ow}!`iC_P#I#2C><#X9HGYlW!NDd7Rt@v`${phicJ9bE1ym-+` z;!Z=6*}Z+W*3)#O)z~hanyMWb9Q^p}-wxKJhZh|>|NF^g|6REstUY~wk1n5I*A=+f zZQ-6hF&`~^de{8k!*;oD&V{w#AMr0?xRWp;`{(OZ|2O( Oo1S65rlt9Zm|^W#DD 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 + + + + + + diff --git a/firka_wear/android/app/src/main/res/values/styles.xml b/firka_wear/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/firka_wear/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/firka_wear/android/app/src/profile/AndroidManifest.xml b/firka_wear/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/firka_wear/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/firka_wear/android/app/src/release/AndroidManifest.xml b/firka_wear/android/app/src/release/AndroidManifest.xml new file mode 100644 index 0000000..e0eea99 --- /dev/null +++ b/firka_wear/android/app/src/release/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/firka_wear/android/build.gradle.kts b/firka_wear/android/build.gradle.kts new file mode 100644 index 0000000..cac7250 --- /dev/null +++ b/firka_wear/android/build.gradle.kts @@ -0,0 +1,49 @@ +import com.android.build.gradle.BaseExtension +import org.jetbrains.kotlin.gradle.plugin.extraProperties + +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + + // fix for verifyReleaseResources + + // note(4831c0): taken from https://github.com/isar/isar/issues/1662 + // note(4831c0): and adapted to kotlin + afterEvaluate { + if (plugins.hasPlugin("com.android.application") || plugins.hasPlugin("com.android.library")) { + val androidExtension = extensions.getByName("android") as BaseExtension + androidExtension.apply { + compileSdkVersion(35) + buildToolsVersion = "35.0.0" + } + } + if (hasProperty("android")) { + val androidExtension = extensions.getByName("android") as BaseExtension + androidExtension.apply { + // Set namespace if it's not already set + if (!extraProperties.has("namespace")) { + extraProperties["namespace"] = project.group.toString() + } + } + } + } + // =============================== + + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/firka_wear/android/gradle.properties b/firka_wear/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/firka_wear/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/firka_wear/android/gradle/wrapper/gradle-wrapper.properties b/firka_wear/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..afa1e8e --- /dev/null +++ b/firka_wear/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip diff --git a/firka_wear/android/settings.gradle.kts b/firka_wear/android/settings.gradle.kts new file mode 100644 index 0000000..a439442 --- /dev/null +++ b/firka_wear/android/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.7.0" apply false + id("org.jetbrains.kotlin.android") version "1.8.22" apply false +} + +include(":app") diff --git a/firka_wear/assets/fonts/Figtree-VariableFont_wght.ttf b/firka_wear/assets/fonts/Figtree-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..06f9fe5724b5c89685ba416126b5c624be18c3ef GIT binary patch literal 62868 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 z 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 z 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

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readStringOrNull(offset)) as P; + case 1: + return (reader.readBoolOrNull(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _appSettingsModelGetId(AppSettingsModel object) { + return object.id ?? Isar.autoIncrement; +} + +List> _appSettingsModelGetLinks(AppSettingsModel object) { + return []; +} + +void _appSettingsModelAttach( + IsarCollection col, Id id, AppSettingsModel object) { + object.id = id; +} + +extension AppSettingsModelQueryWhereSort + on QueryBuilder { + QueryBuilder anyIgnored() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension AppSettingsModelQueryWhere + on QueryBuilder { + QueryBuilder + ignoredEqualTo(Id ignored) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: ignored, + upper: ignored, + )); + }); + } + + QueryBuilder + ignoredNotEqualTo(Id ignored) { + return QueryBuilder.apply(this, (query) { + if (query.whereSort == Sort.asc) { + return query + .addWhereClause( + IdWhereClause.lessThan(upper: ignored, includeUpper: false), + ) + .addWhereClause( + IdWhereClause.greaterThan(lower: ignored, includeLower: false), + ); + } else { + return query + .addWhereClause( + IdWhereClause.greaterThan(lower: ignored, includeLower: false), + ) + .addWhereClause( + IdWhereClause.lessThan(upper: ignored, includeUpper: false), + ); + } + }); + } + + QueryBuilder + ignoredGreaterThan(Id ignored, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.greaterThan(lower: ignored, includeLower: include), + ); + }); + } + + QueryBuilder + ignoredLessThan(Id ignored, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.lessThan(upper: ignored, includeUpper: include), + ); + }); + } + + QueryBuilder + ignoredBetween( + Id lowerIgnored, + Id upperIgnored, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: lowerIgnored, + includeLower: includeLower, + upper: upperIgnored, + includeUpper: includeUpper, + )); + }); + } +} + +extension AppSettingsModelQueryFilter + on QueryBuilder { + QueryBuilder + customHostIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'customHost', + )); + }); + } + + QueryBuilder + customHostIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'customHost', + )); + }); + } + + QueryBuilder + customHostEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'customHost', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'customHost', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'customHost', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + customHostIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'customHost', + value: '', + )); + }); + } + + QueryBuilder + customHostIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'customHost', + value: '', + )); + }); + } + + QueryBuilder + ignoredIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'ignored', + )); + }); + } + + QueryBuilder + ignoredIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'ignored', + )); + }); + } + + QueryBuilder + ignoredEqualTo(Id? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'ignored', + value: value, + )); + }); + } + + QueryBuilder + ignoredGreaterThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'ignored', + value: value, + )); + }); + } + + QueryBuilder + ignoredLessThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'ignored', + value: value, + )); + }); + } + + QueryBuilder + ignoredBetween( + Id? lower, + Id? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'ignored', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + useCustomHostIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'useCustomHost', + )); + }); + } + + QueryBuilder + useCustomHostIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'useCustomHost', + )); + }); + } + + QueryBuilder + useCustomHostEqualTo(bool? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'useCustomHost', + value: value, + )); + }); + } +} + +extension AppSettingsModelQueryObject + on QueryBuilder {} + +extension AppSettingsModelQueryLinks + on QueryBuilder {} + +extension AppSettingsModelQuerySortBy + on QueryBuilder { + QueryBuilder + sortByCustomHost() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'customHost', Sort.asc); + }); + } + + QueryBuilder + sortByCustomHostDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'customHost', Sort.desc); + }); + } + + QueryBuilder + sortByUseCustomHost() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'useCustomHost', Sort.asc); + }); + } + + QueryBuilder + sortByUseCustomHostDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'useCustomHost', Sort.desc); + }); + } +} + +extension AppSettingsModelQuerySortThenBy + on QueryBuilder { + QueryBuilder + thenByCustomHost() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'customHost', Sort.asc); + }); + } + + QueryBuilder + thenByCustomHostDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'customHost', Sort.desc); + }); + } + + QueryBuilder + thenByIgnored() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'ignored', Sort.asc); + }); + } + + QueryBuilder + thenByIgnoredDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'ignored', Sort.desc); + }); + } + + QueryBuilder + thenByUseCustomHost() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'useCustomHost', Sort.asc); + }); + } + + QueryBuilder + thenByUseCustomHostDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'useCustomHost', Sort.desc); + }); + } +} + +extension AppSettingsModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder + distinctByCustomHost({bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'customHost', caseSensitive: caseSensitive); + }); + } + + QueryBuilder + distinctByUseCustomHost() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'useCustomHost'); + }); + } +} + +extension AppSettingsModelQueryProperty + on QueryBuilder { + QueryBuilder ignoredProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'ignored'); + }); + } + + QueryBuilder + customHostProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'customHost'); + }); + } + + QueryBuilder + useCustomHostProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'useCustomHost'); + }); + } +} diff --git a/firka_wear/lib/helpers/db/models/generic_cache_model.dart b/firka_wear/lib/helpers/db/models/generic_cache_model.dart new file mode 100644 index 0000000..026695d --- /dev/null +++ b/firka_wear/lib/helpers/db/models/generic_cache_model.dart @@ -0,0 +1,13 @@ +import 'package:isar/isar.dart'; + +part 'generic_cache_model.g.dart'; + +enum CacheId { getStudent, getNoticeBoard, getGrades, getOmissions, getTests } + +@collection +class GenericCacheModel { + Id? cacheKey; + String? cacheData; + + GenericCacheModel(); +} diff --git a/firka_wear/lib/helpers/db/models/generic_cache_model.g.dart b/firka_wear/lib/helpers/db/models/generic_cache_model.g.dart new file mode 100644 index 0000000..587d5d8 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/generic_cache_model.g.dart @@ -0,0 +1,494 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'generic_cache_model.dart'; + +// ************************************************************************** +// IsarCollectionGenerator +// ************************************************************************** + +// coverage:ignore-file +// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types + +extension GetGenericCacheModelCollection on Isar { + IsarCollection get genericCacheModels => this.collection(); +} + +const GenericCacheModelSchema = CollectionSchema( + name: r'GenericCacheModel', + id: 3174486726793780620, + properties: { + r'cacheData': PropertySchema( + id: 0, + name: r'cacheData', + type: IsarType.string, + ) + }, + estimateSize: _genericCacheModelEstimateSize, + serialize: _genericCacheModelSerialize, + deserialize: _genericCacheModelDeserialize, + deserializeProp: _genericCacheModelDeserializeProp, + idName: r'cacheKey', + indexes: {}, + links: {}, + embeddedSchemas: {}, + getId: _genericCacheModelGetId, + getLinks: _genericCacheModelGetLinks, + attach: _genericCacheModelAttach, + version: '3.1.0+1', +); + +int _genericCacheModelEstimateSize( + GenericCacheModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + { + final value = object.cacheData; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + return bytesCount; +} + +void _genericCacheModelSerialize( + GenericCacheModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeString(offsets[0], object.cacheData); +} + +GenericCacheModel _genericCacheModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = GenericCacheModel(); + object.cacheData = reader.readStringOrNull(offsets[0]); + object.cacheKey = id; + return object; +} + +P _genericCacheModelDeserializeProp

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readStringOrNull(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _genericCacheModelGetId(GenericCacheModel object) { + return object.cacheKey ?? Isar.autoIncrement; +} + +List> _genericCacheModelGetLinks( + GenericCacheModel object) { + return []; +} + +void _genericCacheModelAttach( + IsarCollection col, Id id, GenericCacheModel object) { + object.cacheKey = id; +} + +extension GenericCacheModelQueryWhereSort + on QueryBuilder { + QueryBuilder + anyCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension GenericCacheModelQueryWhere + on QueryBuilder { + QueryBuilder + cacheKeyEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: cacheKey, + upper: cacheKey, + )); + }); + } + + QueryBuilder + cacheKeyNotEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + if (query.whereSort == Sort.asc) { + return query + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ) + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ); + } else { + return query + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ) + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ); + } + }); + } + + QueryBuilder + cacheKeyGreaterThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: include), + ); + }); + } + + QueryBuilder + cacheKeyLessThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: include), + ); + }); + } + + QueryBuilder + cacheKeyBetween( + Id lowerCacheKey, + Id upperCacheKey, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: lowerCacheKey, + includeLower: includeLower, + upper: upperCacheKey, + includeUpper: includeUpper, + )); + }); + } +} + +extension GenericCacheModelQueryFilter + on QueryBuilder { + QueryBuilder + cacheDataIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'cacheData', + )); + }); + } + + QueryBuilder + cacheDataIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'cacheData', + )); + }); + } + + QueryBuilder + cacheDataEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'cacheData', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'cacheData', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'cacheData', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + cacheDataIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'cacheData', + value: '', + )); + }); + } + + QueryBuilder + cacheDataIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'cacheData', + value: '', + )); + }); + } + + QueryBuilder + cacheKeyIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyEqualTo(Id? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyGreaterThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyLessThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyBetween( + Id? lower, + Id? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'cacheKey', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } +} + +extension GenericCacheModelQueryObject + on QueryBuilder {} + +extension GenericCacheModelQueryLinks + on QueryBuilder {} + +extension GenericCacheModelQuerySortBy + on QueryBuilder { + QueryBuilder + sortByCacheData() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheData', Sort.asc); + }); + } + + QueryBuilder + sortByCacheDataDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheData', Sort.desc); + }); + } +} + +extension GenericCacheModelQuerySortThenBy + on QueryBuilder { + QueryBuilder + thenByCacheData() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheData', Sort.asc); + }); + } + + QueryBuilder + thenByCacheDataDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheData', Sort.desc); + }); + } + + QueryBuilder + thenByCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.asc); + }); + } + + QueryBuilder + thenByCacheKeyDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.desc); + }); + } +} + +extension GenericCacheModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder + distinctByCacheData({bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'cacheData', caseSensitive: caseSensitive); + }); + } +} + +extension GenericCacheModelQueryProperty + on QueryBuilder { + QueryBuilder cacheKeyProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'cacheKey'); + }); + } + + QueryBuilder + cacheDataProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'cacheData'); + }); + } +} diff --git a/firka_wear/lib/helpers/db/models/homework_cache_model.dart b/firka_wear/lib/helpers/db/models/homework_cache_model.dart new file mode 100644 index 0000000..ca92f08 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/homework_cache_model.dart @@ -0,0 +1,29 @@ +import 'package:isar/isar.dart'; + +import '../../debug_helper.dart'; +import '../util.dart'; + +part 'homework_cache_model.g.dart'; + +@collection +class HomeworkCacheModel extends DatedCacheEntry { + HomeworkCacheModel(); +} + +Future resetOldHomeworkCache(Isar isar) async { + var now = timeNow(); + var weeks = await isar.homeworkCacheModels.where().findAll(); + var weeksToRemove = List.empty(growable: true); + + for (var week in weeks) { + var date = getDate(week.cacheKey!); + + if (date.millisecondsSinceEpoch < + now.subtract(Duration(days: 30)).millisecondsSinceEpoch) { + weeksToRemove.add(week.cacheKey!); + } + } + await isar.writeTxn(() async { + await isar.homeworkCacheModels.deleteAll(weeksToRemove); + }); +} diff --git a/firka_wear/lib/helpers/db/models/homework_cache_model.g.dart b/firka_wear/lib/helpers/db/models/homework_cache_model.g.dart new file mode 100644 index 0000000..fa95e9b --- /dev/null +++ b/firka_wear/lib/helpers/db/models/homework_cache_model.g.dart @@ -0,0 +1,562 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'homework_cache_model.dart'; + +// ************************************************************************** +// IsarCollectionGenerator +// ************************************************************************** + +// coverage:ignore-file +// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types + +extension GetHomeworkCacheModelCollection on Isar { + IsarCollection get homeworkCacheModels => + this.collection(); +} + +const HomeworkCacheModelSchema = CollectionSchema( + name: r'HomeworkCacheModel', + id: -356692531669197690, + properties: { + r'values': PropertySchema( + id: 0, + name: r'values', + type: IsarType.stringList, + ) + }, + estimateSize: _homeworkCacheModelEstimateSize, + serialize: _homeworkCacheModelSerialize, + deserialize: _homeworkCacheModelDeserialize, + deserializeProp: _homeworkCacheModelDeserializeProp, + idName: r'cacheKey', + indexes: {}, + links: {}, + embeddedSchemas: {}, + getId: _homeworkCacheModelGetId, + getLinks: _homeworkCacheModelGetLinks, + attach: _homeworkCacheModelAttach, + version: '3.1.0+1', +); + +int _homeworkCacheModelEstimateSize( + HomeworkCacheModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + { + final list = object.values; + if (list != null) { + bytesCount += 3 + list.length * 3; + { + for (var i = 0; i < list.length; i++) { + final value = list[i]; + bytesCount += value.length * 3; + } + } + } + } + return bytesCount; +} + +void _homeworkCacheModelSerialize( + HomeworkCacheModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeStringList(offsets[0], object.values); +} + +HomeworkCacheModel _homeworkCacheModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = HomeworkCacheModel(); + object.cacheKey = id; + object.values = reader.readStringList(offsets[0]); + return object; +} + +P _homeworkCacheModelDeserializeProp

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readStringList(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _homeworkCacheModelGetId(HomeworkCacheModel object) { + return object.cacheKey ?? Isar.autoIncrement; +} + +List> _homeworkCacheModelGetLinks( + HomeworkCacheModel object) { + return []; +} + +void _homeworkCacheModelAttach( + IsarCollection col, Id id, HomeworkCacheModel object) { + object.cacheKey = id; +} + +extension HomeworkCacheModelQueryWhereSort + on QueryBuilder { + QueryBuilder + anyCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension HomeworkCacheModelQueryWhere + on QueryBuilder { + QueryBuilder + cacheKeyEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: cacheKey, + upper: cacheKey, + )); + }); + } + + QueryBuilder + cacheKeyNotEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + if (query.whereSort == Sort.asc) { + return query + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ) + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ); + } else { + return query + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ) + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ); + } + }); + } + + QueryBuilder + cacheKeyGreaterThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: include), + ); + }); + } + + QueryBuilder + cacheKeyLessThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: include), + ); + }); + } + + QueryBuilder + cacheKeyBetween( + Id lowerCacheKey, + Id upperCacheKey, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: lowerCacheKey, + includeLower: includeLower, + upper: upperCacheKey, + includeUpper: includeUpper, + )); + }); + } +} + +extension HomeworkCacheModelQueryFilter + on QueryBuilder { + QueryBuilder + cacheKeyIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyEqualTo(Id? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyGreaterThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyLessThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyBetween( + Id? lower, + Id? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'cacheKey', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + valuesIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'values', + )); + }); + } + + QueryBuilder + valuesIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'values', + )); + }); + } + + QueryBuilder + valuesElementEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementBetween( + String lower, + String upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'values', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'values', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'values', + value: '', + )); + }); + } + + QueryBuilder + valuesElementIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'values', + value: '', + )); + }); + } + + QueryBuilder + valuesLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + valuesIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + valuesIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + valuesLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + valuesLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + valuesLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } +} + +extension HomeworkCacheModelQueryObject + on QueryBuilder {} + +extension HomeworkCacheModelQueryLinks + on QueryBuilder {} + +extension HomeworkCacheModelQuerySortBy + on QueryBuilder {} + +extension HomeworkCacheModelQuerySortThenBy + on QueryBuilder { + QueryBuilder + thenByCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.asc); + }); + } + + QueryBuilder + thenByCacheKeyDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.desc); + }); + } +} + +extension HomeworkCacheModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder + distinctByValues() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'values'); + }); + } +} + +extension HomeworkCacheModelQueryProperty + on QueryBuilder { + QueryBuilder cacheKeyProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'cacheKey'); + }); + } + + QueryBuilder?, QQueryOperations> + valuesProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'values'); + }); + } +} diff --git a/firka_wear/lib/helpers/db/models/timetable_cache_model.dart b/firka_wear/lib/helpers/db/models/timetable_cache_model.dart new file mode 100644 index 0000000..0883421 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/timetable_cache_model.dart @@ -0,0 +1,29 @@ +import 'package:isar/isar.dart'; + +import '../../debug_helper.dart'; +import '../util.dart'; + +part 'timetable_cache_model.g.dart'; + +@collection +class TimetableCacheModel extends DatedCacheEntry { + TimetableCacheModel(); +} + +Future resetOldTimeTableCache(Isar isar) async { + var now = timeNow(); + var weeks = await isar.timetableCacheModels.where().findAll(); + var weeksToRemove = List.empty(growable: true); + + for (var week in weeks) { + var date = getDate(week.cacheKey!); + + if (date.millisecondsSinceEpoch < + now.subtract(Duration(days: 30)).millisecondsSinceEpoch) { + weeksToRemove.add(week.cacheKey!); + } + } + await isar.writeTxn(() async { + await isar.timetableCacheModels.deleteAll(weeksToRemove); + }); +} diff --git a/firka_wear/lib/helpers/db/models/timetable_cache_model.g.dart b/firka_wear/lib/helpers/db/models/timetable_cache_model.g.dart new file mode 100644 index 0000000..e2874b1 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/timetable_cache_model.g.dart @@ -0,0 +1,562 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'timetable_cache_model.dart'; + +// ************************************************************************** +// IsarCollectionGenerator +// ************************************************************************** + +// coverage:ignore-file +// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types + +extension GetTimetableCacheModelCollection on Isar { + IsarCollection get timetableCacheModels => + this.collection(); +} + +const TimetableCacheModelSchema = CollectionSchema( + name: r'TimetableCacheModel', + id: -8626340955125680275, + properties: { + r'values': PropertySchema( + id: 0, + name: r'values', + type: IsarType.stringList, + ) + }, + estimateSize: _timetableCacheModelEstimateSize, + serialize: _timetableCacheModelSerialize, + deserialize: _timetableCacheModelDeserialize, + deserializeProp: _timetableCacheModelDeserializeProp, + idName: r'cacheKey', + indexes: {}, + links: {}, + embeddedSchemas: {}, + getId: _timetableCacheModelGetId, + getLinks: _timetableCacheModelGetLinks, + attach: _timetableCacheModelAttach, + version: '3.1.0+1', +); + +int _timetableCacheModelEstimateSize( + TimetableCacheModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + { + final list = object.values; + if (list != null) { + bytesCount += 3 + list.length * 3; + { + for (var i = 0; i < list.length; i++) { + final value = list[i]; + bytesCount += value.length * 3; + } + } + } + } + return bytesCount; +} + +void _timetableCacheModelSerialize( + TimetableCacheModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeStringList(offsets[0], object.values); +} + +TimetableCacheModel _timetableCacheModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = TimetableCacheModel(); + object.cacheKey = id; + object.values = reader.readStringList(offsets[0]); + return object; +} + +P _timetableCacheModelDeserializeProp

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readStringList(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _timetableCacheModelGetId(TimetableCacheModel object) { + return object.cacheKey ?? Isar.autoIncrement; +} + +List> _timetableCacheModelGetLinks( + TimetableCacheModel object) { + return []; +} + +void _timetableCacheModelAttach( + IsarCollection col, Id id, TimetableCacheModel object) { + object.cacheKey = id; +} + +extension TimetableCacheModelQueryWhereSort + on QueryBuilder { + QueryBuilder + anyCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension TimetableCacheModelQueryWhere + on QueryBuilder { + QueryBuilder + cacheKeyEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: cacheKey, + upper: cacheKey, + )); + }); + } + + QueryBuilder + cacheKeyNotEqualTo(Id cacheKey) { + return QueryBuilder.apply(this, (query) { + if (query.whereSort == Sort.asc) { + return query + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ) + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ); + } else { + return query + .addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: false), + ) + .addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: false), + ); + } + }); + } + + QueryBuilder + cacheKeyGreaterThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.greaterThan(lower: cacheKey, includeLower: include), + ); + }); + } + + QueryBuilder + cacheKeyLessThan(Id cacheKey, {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.lessThan(upper: cacheKey, includeUpper: include), + ); + }); + } + + QueryBuilder + cacheKeyBetween( + Id lowerCacheKey, + Id upperCacheKey, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: lowerCacheKey, + includeLower: includeLower, + upper: upperCacheKey, + includeUpper: includeUpper, + )); + }); + } +} + +extension TimetableCacheModelQueryFilter on QueryBuilder { + QueryBuilder + cacheKeyIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'cacheKey', + )); + }); + } + + QueryBuilder + cacheKeyEqualTo(Id? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyGreaterThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyLessThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'cacheKey', + value: value, + )); + }); + } + + QueryBuilder + cacheKeyBetween( + Id? lower, + Id? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'cacheKey', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + valuesIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'values', + )); + }); + } + + QueryBuilder + valuesIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'values', + )); + }); + } + + QueryBuilder + valuesElementEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementBetween( + String lower, + String upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'values', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'values', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'values', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + valuesElementIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'values', + value: '', + )); + }); + } + + QueryBuilder + valuesElementIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'values', + value: '', + )); + }); + } + + QueryBuilder + valuesLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + valuesIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + valuesIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + valuesLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + valuesLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + valuesLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'values', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } +} + +extension TimetableCacheModelQueryObject on QueryBuilder {} + +extension TimetableCacheModelQueryLinks on QueryBuilder {} + +extension TimetableCacheModelQuerySortBy + on QueryBuilder {} + +extension TimetableCacheModelQuerySortThenBy + on QueryBuilder { + QueryBuilder + thenByCacheKey() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.asc); + }); + } + + QueryBuilder + thenByCacheKeyDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'cacheKey', Sort.desc); + }); + } +} + +extension TimetableCacheModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder + distinctByValues() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'values'); + }); + } +} + +extension TimetableCacheModelQueryProperty + on QueryBuilder { + QueryBuilder cacheKeyProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'cacheKey'); + }); + } + + QueryBuilder?, QQueryOperations> + valuesProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'values'); + }); + } +} diff --git a/firka_wear/lib/helpers/db/models/token_model.dart b/firka_wear/lib/helpers/db/models/token_model.dart new file mode 100644 index 0000000..b404b14 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/token_model.dart @@ -0,0 +1,69 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart'; +import 'package:firka_wear/helpers/api/resp/token_grant.dart'; +import 'package:isar/isar.dart'; + +import '../../debug_helper.dart'; + +part 'token_model.g.dart'; + +@collection +class TokenModel { + Id? studentId; // Custom unique student identifier + String? iss; // Institution id for student + String? idToken; // Unique identifier for the token if needed + String? accessToken; // The main auth token + String? refreshToken; // Token used to refresh the access token + DateTime? expiryDate; + + TokenModel(); + + factory TokenModel.fromValues(Id studentId, String iss, String idToken, + String accessToken, String refreshToken, int expiryDate) { + var m = TokenModel(); + + m.studentId = studentId; + m.iss = iss; + m.idToken = idToken; + m.accessToken = accessToken; + m.refreshToken = refreshToken; + m.expiryDate = DateTime.fromMillisecondsSinceEpoch(expiryDate); + + return m; + } + + factory TokenModel.fromResp(TokenGrantResponse resp) { + var m = TokenModel(); + final jwt = JWT.decode(resp.idToken); + + // TODO: Add a proper model for jwt id + + m.studentId = int.parse(jwt.payload["kreta:user_name"]); + m.iss = jwt.payload["kreta:institute_code"]; + m.idToken = resp.idToken; + m.accessToken = resp.accessToken; + m.refreshToken = resp.refreshToken; + m.expiryDate = timeNow() + .add(Duration(seconds: resp.expiresIn)) + .subtract(Duration(minutes: 10)); // just to be safe + + return m; + } +} diff --git a/firka_wear/lib/helpers/db/models/token_model.g.dart b/firka_wear/lib/helpers/db/models/token_model.g.dart new file mode 100644 index 0000000..dbe50d6 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/token_model.g.dart @@ -0,0 +1,1206 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'token_model.dart'; + +// ************************************************************************** +// IsarCollectionGenerator +// ************************************************************************** + +// coverage:ignore-file +// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types + +extension GetTokenModelCollection on Isar { + IsarCollection get tokenModels => this.collection(); +} + +const TokenModelSchema = CollectionSchema( + name: r'TokenModel', + id: 6587729607152393036, + properties: { + r'accessToken': PropertySchema( + id: 0, + name: r'accessToken', + type: IsarType.string, + ), + r'expiryDate': PropertySchema( + id: 1, + name: r'expiryDate', + type: IsarType.dateTime, + ), + r'idToken': PropertySchema( + id: 2, + name: r'idToken', + type: IsarType.string, + ), + r'iss': PropertySchema( + id: 3, + name: r'iss', + type: IsarType.string, + ), + r'refreshToken': PropertySchema( + id: 4, + name: r'refreshToken', + type: IsarType.string, + ) + }, + estimateSize: _tokenModelEstimateSize, + serialize: _tokenModelSerialize, + deserialize: _tokenModelDeserialize, + deserializeProp: _tokenModelDeserializeProp, + idName: r'studentId', + indexes: {}, + links: {}, + embeddedSchemas: {}, + getId: _tokenModelGetId, + getLinks: _tokenModelGetLinks, + attach: _tokenModelAttach, + version: '3.1.0+1', +); + +int _tokenModelEstimateSize( + TokenModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + { + final value = object.accessToken; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + { + final value = object.idToken; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + { + final value = object.iss; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + { + final value = object.refreshToken; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + return bytesCount; +} + +void _tokenModelSerialize( + TokenModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeString(offsets[0], object.accessToken); + writer.writeDateTime(offsets[1], object.expiryDate); + writer.writeString(offsets[2], object.idToken); + writer.writeString(offsets[3], object.iss); + writer.writeString(offsets[4], object.refreshToken); +} + +TokenModel _tokenModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = TokenModel(); + object.accessToken = reader.readStringOrNull(offsets[0]); + object.expiryDate = reader.readDateTimeOrNull(offsets[1]); + object.idToken = reader.readStringOrNull(offsets[2]); + object.iss = reader.readStringOrNull(offsets[3]); + object.refreshToken = reader.readStringOrNull(offsets[4]); + object.studentId = id; + return object; +} + +P _tokenModelDeserializeProp

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readStringOrNull(offset)) as P; + case 1: + return (reader.readDateTimeOrNull(offset)) as P; + case 2: + return (reader.readStringOrNull(offset)) as P; + case 3: + return (reader.readStringOrNull(offset)) as P; + case 4: + return (reader.readStringOrNull(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _tokenModelGetId(TokenModel object) { + return object.studentId ?? Isar.autoIncrement; +} + +List> _tokenModelGetLinks(TokenModel object) { + return []; +} + +void _tokenModelAttach(IsarCollection col, Id id, TokenModel object) { + object.studentId = id; +} + +extension TokenModelQueryWhereSort + on QueryBuilder { + QueryBuilder anyStudentId() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension TokenModelQueryWhere + on QueryBuilder { + QueryBuilder studentIdEqualTo( + Id studentId) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: studentId, + upper: studentId, + )); + }); + } + + QueryBuilder studentIdNotEqualTo( + Id studentId) { + return QueryBuilder.apply(this, (query) { + if (query.whereSort == Sort.asc) { + return query + .addWhereClause( + IdWhereClause.lessThan(upper: studentId, includeUpper: false), + ) + .addWhereClause( + IdWhereClause.greaterThan(lower: studentId, includeLower: false), + ); + } else { + return query + .addWhereClause( + IdWhereClause.greaterThan(lower: studentId, includeLower: false), + ) + .addWhereClause( + IdWhereClause.lessThan(upper: studentId, includeUpper: false), + ); + } + }); + } + + QueryBuilder studentIdGreaterThan( + Id studentId, + {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.greaterThan(lower: studentId, includeLower: include), + ); + }); + } + + QueryBuilder studentIdLessThan( + Id studentId, + {bool include = false}) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause( + IdWhereClause.lessThan(upper: studentId, includeUpper: include), + ); + }); + } + + QueryBuilder studentIdBetween( + Id lowerStudentId, + Id upperStudentId, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(IdWhereClause.between( + lower: lowerStudentId, + includeLower: includeLower, + upper: upperStudentId, + includeUpper: includeUpper, + )); + }); + } +} + +extension TokenModelQueryFilter + on QueryBuilder { + QueryBuilder + accessTokenIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'accessToken', + )); + }); + } + + QueryBuilder + accessTokenIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'accessToken', + )); + }); + } + + QueryBuilder + accessTokenEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'accessToken', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'accessToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'accessToken', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + accessTokenIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'accessToken', + value: '', + )); + }); + } + + QueryBuilder + accessTokenIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'accessToken', + value: '', + )); + }); + } + + QueryBuilder + expiryDateIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'expiryDate', + )); + }); + } + + QueryBuilder + expiryDateIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'expiryDate', + )); + }); + } + + QueryBuilder expiryDateEqualTo( + DateTime? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'expiryDate', + value: value, + )); + }); + } + + QueryBuilder + expiryDateGreaterThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'expiryDate', + value: value, + )); + }); + } + + QueryBuilder + expiryDateLessThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'expiryDate', + value: value, + )); + }); + } + + QueryBuilder expiryDateBetween( + DateTime? lower, + DateTime? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'expiryDate', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder idTokenIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'idToken', + )); + }); + } + + QueryBuilder + idTokenIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'idToken', + )); + }); + } + + QueryBuilder idTokenEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + idTokenGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'idToken', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'idToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'idToken', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder idTokenIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'idToken', + value: '', + )); + }); + } + + QueryBuilder + idTokenIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'idToken', + value: '', + )); + }); + } + + QueryBuilder issIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'iss', + )); + }); + } + + QueryBuilder issIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'iss', + )); + }); + } + + QueryBuilder issEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'iss', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'iss', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'iss', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder issIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'iss', + value: '', + )); + }); + } + + QueryBuilder issIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'iss', + value: '', + )); + }); + } + + QueryBuilder + refreshTokenIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'refreshToken', + )); + }); + } + + QueryBuilder + refreshTokenIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'refreshToken', + )); + }); + } + + QueryBuilder + refreshTokenEqualTo( + String? value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenGreaterThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenLessThan( + String? value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenBetween( + String? lower, + String? upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'refreshToken', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenContains(String value, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'refreshToken', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenMatches(String pattern, {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'refreshToken', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + refreshTokenIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'refreshToken', + value: '', + )); + }); + } + + QueryBuilder + refreshTokenIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'refreshToken', + value: '', + )); + }); + } + + QueryBuilder + studentIdIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'studentId', + )); + }); + } + + QueryBuilder + studentIdIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'studentId', + )); + }); + } + + QueryBuilder studentIdEqualTo( + Id? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'studentId', + value: value, + )); + }); + } + + QueryBuilder + studentIdGreaterThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'studentId', + value: value, + )); + }); + } + + QueryBuilder studentIdLessThan( + Id? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'studentId', + value: value, + )); + }); + } + + QueryBuilder studentIdBetween( + Id? lower, + Id? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'studentId', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } +} + +extension TokenModelQueryObject + on QueryBuilder {} + +extension TokenModelQueryLinks + on QueryBuilder {} + +extension TokenModelQuerySortBy + on QueryBuilder { + QueryBuilder sortByAccessToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'accessToken', Sort.asc); + }); + } + + QueryBuilder sortByAccessTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'accessToken', Sort.desc); + }); + } + + QueryBuilder sortByExpiryDate() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'expiryDate', Sort.asc); + }); + } + + QueryBuilder sortByExpiryDateDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'expiryDate', Sort.desc); + }); + } + + QueryBuilder sortByIdToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'idToken', Sort.asc); + }); + } + + QueryBuilder sortByIdTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'idToken', Sort.desc); + }); + } + + QueryBuilder sortByIss() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'iss', Sort.asc); + }); + } + + QueryBuilder sortByIssDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'iss', Sort.desc); + }); + } + + QueryBuilder sortByRefreshToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'refreshToken', Sort.asc); + }); + } + + QueryBuilder sortByRefreshTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'refreshToken', Sort.desc); + }); + } +} + +extension TokenModelQuerySortThenBy + on QueryBuilder { + QueryBuilder thenByAccessToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'accessToken', Sort.asc); + }); + } + + QueryBuilder thenByAccessTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'accessToken', Sort.desc); + }); + } + + QueryBuilder thenByExpiryDate() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'expiryDate', Sort.asc); + }); + } + + QueryBuilder thenByExpiryDateDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'expiryDate', Sort.desc); + }); + } + + QueryBuilder thenByIdToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'idToken', Sort.asc); + }); + } + + QueryBuilder thenByIdTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'idToken', Sort.desc); + }); + } + + QueryBuilder thenByIss() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'iss', Sort.asc); + }); + } + + QueryBuilder thenByIssDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'iss', Sort.desc); + }); + } + + QueryBuilder thenByRefreshToken() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'refreshToken', Sort.asc); + }); + } + + QueryBuilder thenByRefreshTokenDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'refreshToken', Sort.desc); + }); + } + + QueryBuilder thenByStudentId() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'studentId', Sort.asc); + }); + } + + QueryBuilder thenByStudentIdDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'studentId', Sort.desc); + }); + } +} + +extension TokenModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder distinctByAccessToken( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'accessToken', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctByExpiryDate() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'expiryDate'); + }); + } + + QueryBuilder distinctByIdToken( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'idToken', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctByIss( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'iss', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctByRefreshToken( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'refreshToken', caseSensitive: caseSensitive); + }); + } +} + +extension TokenModelQueryProperty + on QueryBuilder { + QueryBuilder studentIdProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'studentId'); + }); + } + + QueryBuilder accessTokenProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'accessToken'); + }); + } + + QueryBuilder expiryDateProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'expiryDate'); + }); + } + + QueryBuilder idTokenProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'idToken'); + }); + } + + QueryBuilder issProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'iss'); + }); + } + + QueryBuilder refreshTokenProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'refreshToken'); + }); + } +} diff --git a/firka_wear/lib/helpers/db/util.dart b/firka_wear/lib/helpers/db/util.dart new file mode 100644 index 0000000..455099b --- /dev/null +++ b/firka_wear/lib/helpers/db/util.dart @@ -0,0 +1,26 @@ +import 'dart:math'; + +import 'package:intl/intl.dart'; +import 'package:isar/isar.dart'; + +import '../debug_helper.dart'; + +class DatedCacheEntry { + Id? cacheKey; + List? values; +} + +int genCacheKey(DateTime date, int studentId) { + var md = date.month * pow(10, 2) + date.day; + + return (md * pow(10, 11) + studentId) as int; +} + +DateTime getDate(int key) { + var currentDate = timeNow(); + var md = key ~/ pow(10, 11); + var month = md ~/ pow(10, 2); + var day = md - month * pow(10, 2); + + return DateFormat("yyyy-M-d").parse("${currentDate.year}-$month-$day"); +} diff --git a/firka_wear/lib/helpers/debug_helper.dart b/firka_wear/lib/helpers/debug_helper.dart new file mode 100644 index 0000000..d0c04a0 --- /dev/null +++ b/firka_wear/lib/helpers/debug_helper.dart @@ -0,0 +1,17 @@ +DateTime? debugFakeTime; +DateTime? debugSetAt; +var debugTimeAdvance = false; + +DateTime timeNow() { + if (debugFakeTime != null) { + if (debugTimeAdvance && debugSetAt != null) { + var diff = DateTime.now().difference(debugSetAt!); + + return debugFakeTime!.add(diff); + } else { + return debugFakeTime!; + } + } else { + return DateTime.now(); + } +} diff --git a/firka_wear/lib/helpers/extensions.dart b/firka_wear/lib/helpers/extensions.dart new file mode 100644 index 0000000..26b487f --- /dev/null +++ b/firka_wear/lib/helpers/extensions.dart @@ -0,0 +1,193 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../l10n/app_localizations.dart'; +import 'api/model/timetable.dart'; +import 'debug_helper.dart'; + +extension IterableExtensionMap on Iterable> { + Map toMap() { + var map = {}; + for (var item in this) { + map[item.key] = item.value; + } + + return map; + } +} + +extension IterableExtension on Iterable { + T? firstWhereOrNull(bool Function(T element) test) { + for (var element in this) { + if (test(element)) return element; + } + return null; + } +} + +extension DurationExtension on Duration { + String formatDuration() { + String hours = inHours.toString().padLeft(2, '0'); + String minutes = inMinutes.remainder(60).toString().padLeft(2, '0'); + String seconds = inSeconds.remainder(60).toString().padLeft(2, '0'); + return "$hours:$minutes:$seconds"; + } +} + +enum FormatMode { yearly, grades, welcome, hmm, da, dd } + +enum Cycle { morning, day, afternoon, night } + +extension DateExtension on DateTime { + String format(BuildContext context, FormatMode mode) { + var today = timeNow(); + today = today.subtract(Duration( + hours: today.hour, + minutes: today.minute, + seconds: today.second, + milliseconds: today.millisecond)); + + var tomorrowLim = today.add(Duration(days: 2)); + var tomorrow = today.add(Duration(days: 1)); + var yesterday = today.subtract(Duration(days: 1)); + var yesterdayLim = today.subtract(Duration(days: 2)); + + switch (mode) { + case FormatMode.grades: + if (isBefore(yesterdayLim)) { + return format(context, FormatMode.yearly); + } + if (isAfter(yesterdayLim) && isBefore(today)) { + return AppLocalizations.of(context)!.yesterday; + } + if (isAfter(yesterday) && isBefore(tomorrow)) { + return AppLocalizations.of(context)!.today; + } + if (isAfter(today) && isBefore(tomorrowLim)) { + return AppLocalizations.of(context)!.tomorrow; + } + + return format(context, FormatMode.yearly); + case FormatMode.yearly: + return DateFormat('MMMM dd').format(this); + case FormatMode.hmm: + return DateFormat('H:mm').format(this); + case FormatMode.welcome: + return DateFormat('EEE, MMM d').format(this); + case FormatMode.da: + return DateFormat('MMMMEEEEd').format(this).substring(0, 2); + case FormatMode.dd: + return DateFormat('dd').format(this); + } + } + + DateTime getMonday() { + return subtract(Duration(days: weekday - 1)); + } + + DateTime getMidnight() { + return subtract(Duration( + hours: hour, + minutes: minute, + seconds: second, + milliseconds: millisecond)); + } + + Cycle getDayCycle() { + var midnight = getMidnight(); + if (isAfter(midnight.add(Duration(hours: 5, minutes: 30))) && + isBefore(midnight.add(Duration(hours: 9)))) { + return Cycle.morning; + } + if (isAfter(midnight.add(Duration(hours: 5, minutes: 30))) && + isBefore(midnight.add(Duration(hours: 14)))) { + return Cycle.day; + } + if (isAfter(midnight.add(Duration(hours: 5, minutes: 30))) && + isBefore(midnight.add(Duration(hours: 20)))) { + return Cycle.afternoon; + } + + return Cycle.night; + } +} + +extension DateGrouper on Iterable { + Map> groupList(DateTime Function(T elem) getDate) { + Map> newList = {}; + + var today = timeNow(); + today = today.subtract(Duration( + hours: today.hour, + minutes: today.minute, + seconds: today.second, + milliseconds: today.millisecond)); + + var tomorrow = today.add(Duration(days: 1)); + var yesterday = today.subtract(Duration(days: 1)); + + for (var elem in this) { + var date = getDate(elem); + var day = date.subtract(Duration( + hours: date.hour, + minutes: date.minute, + seconds: date.second, + milliseconds: date.millisecond)); + + if (date.isAfter(tomorrow.add(Duration(days: 1)))) { + if (newList[day] == null) { + newList[day] = List.empty(growable: true); + } + + newList[day]!.add(elem); + continue; + } + if (date.isAfter(today)) { + if (newList[tomorrow] == null) { + newList[tomorrow] = List.empty(growable: true); + } + + newList[tomorrow]!.add(elem); + continue; + } + if (date.isAfter(yesterday.subtract(Duration(days: 1))) && + date.isBefore(today)) { + if (newList[yesterday] == null) { + newList[yesterday] = List.empty(growable: true); + } + + newList[yesterday]!.add(elem); + continue; + } + + if (newList[day] == null) { + newList[day] = List.empty(growable: true); + } + + newList[day]!.add(elem); + } + + return newList; + } +} + +extension LessonExtension on List { + int getLessonNo(Lesson lesson) { + return lesson.lessonNumber ?? indexOf(lesson); + } + + Lesson? getCurrentLesson(DateTime now) { + return firstWhereOrNull( + (lesson) => now.isAfter(lesson.start) && now.isBefore(lesson.end)); + } + + Lesson? getPrevLesson(DateTime now) { + return firstWhereOrNull( + (lesson) => lesson.end.isBefore(now.add(Duration(milliseconds: 1)))); + } + + Lesson? getNextLesson(DateTime now) { + return firstWhereOrNull( + (lesson) => lesson.start.isAfter(now.add(Duration(milliseconds: 1)))); + } +} diff --git a/firka_wear/lib/helpers/icon_helper.dart b/firka_wear/lib/helpers/icon_helper.dart new file mode 100644 index 0000000..6221f33 --- /dev/null +++ b/firka_wear/lib/helpers/icon_helper.dart @@ -0,0 +1,148 @@ +import 'dart:typed_data'; + +import 'package:majesticons_flutter/majesticons_flutter.dart'; + +enum ClassIcon { + mathematics, + grammar, + literature, + history, + geography, + art, + physics, + music, + pe, + chemistry, + biology, + env, + religion, + economics, + it, + code, + networking, + theatre, + film, + electricalEngineering, + mechanicalEngineering, + technika, + dance, + philosophy, + ofo, + diligence, + attitude, + language, + linux, + database, + applications, + project +} + +Map _descriptors = { + ClassIcon.mathematics: RegExp(r'mate(k|matika)'), + ClassIcon.grammar: RegExp(r'magyar nyelv|nyelvtan'), + ClassIcon.literature: RegExp(r'irodalom'), + ClassIcon.history: RegExp(r'tor(i|tenelem)'), + ClassIcon.geography: RegExp(r'foldrajz'), + ClassIcon.art: RegExp(r'rajz|muvtori|muveszet|vizualis'), + ClassIcon.physics: RegExp(r'fizika'), + ClassIcon.music: RegExp(r'^enek|zene|szolfezs|zongora|korus'), + ClassIcon.pe: RegExp(r'^tes(i|tneveles)|sport|edzeselmelet'), + ClassIcon.chemistry: RegExp(r'kemia'), + ClassIcon.biology: RegExp(r'biologia'), + ClassIcon.env: + RegExp(r'kornyezet|termeszet ?(tudomany|ismeret)|hon( es nep)?ismeret'), + ClassIcon.religion: RegExp(r'(hit|erkolcs)tan|vallas|etika|bibliaismeret'), + ClassIcon.economics: RegExp(r'penzugy|gazdasag'), + ClassIcon.it: RegExp(r'informatika|szoftver|iroda|digitalis'), + ClassIcon.code: RegExp(r'prog|alkalmazas'), + ClassIcon.networking: RegExp(r'halozat'), + ClassIcon.theatre: RegExp(r'szinhaz'), + ClassIcon.film: RegExp(r'film|media'), + ClassIcon.electricalEngineering: RegExp(r'elektro(tech)?nika'), + ClassIcon.mechanicalEngineering: RegExp(r'gepesz|mernok|ipar'), + ClassIcon.technika: RegExp(r'technika'), + ClassIcon.dance: RegExp(r'tanc'), + ClassIcon.philosophy: RegExp(r'filozofia'), + ClassIcon.ofo: RegExp(r'osztaly(fonoki|kozosseg)|kozossegi|neveles'), + ClassIcon.diligence: RegExp(r'szorgalom'), + ClassIcon.attitude: RegExp(r'magatartas'), + ClassIcon.language: + RegExp(r'angol|nemet|francia|olasz|orosz|spanyol|latin|kinai|nyelv'), + ClassIcon.linux: RegExp(r'linux'), + ClassIcon.database: RegExp(r'adatbazis.*'), + ClassIcon.applications: RegExp(r'asztali alkalmazasok'), + ClassIcon.project: RegExp(r'projekt') +}; + +Map _iconMap = { + ClassIcon.mathematics: Majesticon.calculatorSolid, + ClassIcon.grammar: Majesticon.bookSolid, + ClassIcon.literature: Majesticon.bookOpenSolid, + ClassIcon.history: Majesticon.compass2Solid, + ClassIcon.geography: Majesticon.globeEarth2Solid, + ClassIcon.art: Majesticon.editPen2Solid, + // ClassIcon.physics: , + ClassIcon.music: Majesticon.musicNoteSolid, + // ClassIcon.pe: , + ClassIcon.chemistry: Majesticon.testTubeFilledSolid, + ClassIcon.biology: Majesticon.covidSolid, + // ClassIcon.env: , + // ClassIcon.religion: , + // ClassIcon.economics: , + ClassIcon.it: Majesticon.laptopSolid, + ClassIcon.code: Majesticon.curlyBracesSolid, + ClassIcon.networking: Majesticon.cloudSolid, + // ClassIcon.theatre: , + // ClassIcon.film: , + // ClassIcon.electricalEngineering: , + // ClassIcon.mechanicalEngineering: , + ClassIcon.technika: Majesticon.ruler2Solid, + // ClassIcon.dance: , + // ClassIcon.philosophy: , + // ClassIcon.ofo: , + // ClassIcon.diligence: , + // ClassIcon.attitude: , + ClassIcon.language: Majesticon.tooltipsSolid, + // ClassIcon.linux: , + ClassIcon.database: Majesticon.dataSolid, + // ClassIcon.applications: , + // ClassIcon.project: , +}; + +ClassIcon? getIconType(String uid, String className, String category) { + ClassIcon? icon; + if (category.toLowerCase() == "matematika") { + icon = ClassIcon.mathematics; + } + + if (icon == null) { + for (var desc in _descriptors.entries) { + if (desc.value.hasMatch(className + .replaceAll("ö", "o") + .replaceAll("ü", "u") + .replaceAll("ó", "o") + .replaceAll("ő", "o") + .replaceAll("ú", "u") + .replaceAll("é", "e") + .replaceAll("á", "a") + .replaceAll("ű", "u") + .replaceAll("í", "i") + .toLowerCase())) { + icon = desc.key; + + break; + } + } + } + + return icon; +} + +Uint8List getIconData(ClassIcon? icon) { + if (icon == null) return Majesticon.alertCircleSolid; + + var iconData = _iconMap[icon]; + iconData ??= Majesticon.alertCircleSolid; + + return iconData; +} diff --git a/firka_wear/lib/helpers/json_helper.dart b/firka_wear/lib/helpers/json_helper.dart new file mode 100644 index 0000000..4e07713 --- /dev/null +++ b/firka_wear/lib/helpers/json_helper.dart @@ -0,0 +1,9 @@ +List listToTyped(List dynamicList) { + var newList = List.empty(growable: true); + + for (var item in dynamicList) { + newList.add(item as T); + } + + return newList; +} diff --git a/firka_wear/lib/helpers/ui/firka_card.dart b/firka_wear/lib/helpers/ui/firka_card.dart new file mode 100644 index 0000000..e27c867 --- /dev/null +++ b/firka_wear/lib/helpers/ui/firka_card.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; + +import '../../ui/model/style.dart'; + +class FirkaCard extends StatelessWidget { + final List left; + final List? right; + final Widget? extra; + + const FirkaCard({required this.left, this.right, this.extra, super.key}); + + @override + Widget build(BuildContext context) { + var right = this.right ?? []; + + if (extra != null) { + return SizedBox( + width: MediaQuery.of(context).size.width, + child: Card( + color: appStyle.colors.card, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row(children: left), + Row(children: right), + ], + ), + extra ?? SizedBox(), + ], + ), + ), + ), + ); + } else { + return SizedBox( + width: MediaQuery.of(context).size.width, + child: Card( + color: appStyle.colors.card, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row(children: left), + Row(children: right), + ], + ), + ), + ), + ); + } + } +} diff --git a/firka_wear/lib/helpers/ui/grade.dart b/firka_wear/lib/helpers/ui/grade.dart new file mode 100644 index 0000000..74b3300 --- /dev/null +++ b/firka_wear/lib/helpers/ui/grade.dart @@ -0,0 +1,70 @@ +import 'package:firka_wear/helpers/api/model/grade.dart'; +import 'package:flutter/material.dart'; + +import '../../ui/model/style.dart'; +import 'grade_helpers.dart'; + +class GradeWidget extends StatelessWidget { + final Grade grade; + + const GradeWidget(this.grade, {super.key}); + + @override + Widget build(BuildContext context) { + Color gradeColor = appStyle.colors.grade1; + var gradeStr = grade.numericValue?.toString() ?? "0"; + double eccentricity = 0; + + if (grade.valueType.name == "Szazalekos") { + gradeStr = grade.strValue.replaceAll("%", ""); + if (grade.numericValue != null) { + gradeColor = + getGradeColor(percentageToGrade(grade.numericValue!).toDouble()); + } + + if (grade.numericValue != null && grade.numericValue == 100) { + return Card( + shape: CircleBorder(eccentricity: eccentricity), + shadowColor: Colors.transparent, + color: gradeColor.withAlpha(38), + child: Padding( + padding: EdgeInsets.only(left: 8, right: 8), + child: Row(children: [ + Text("100", // TODO: Make this curved + style: appStyle.fonts.P_14.copyWith(color: gradeColor)) + ]), + ), + ); + } else { + return Card( + shape: CircleBorder(eccentricity: eccentricity), + shadowColor: Colors.transparent, + color: gradeColor.withAlpha(38), + child: Padding( + padding: EdgeInsets.only(left: 8, right: 8), + child: Row(children: [ + Text(gradeStr, + style: appStyle.fonts.P_14.copyWith(color: gradeColor)), + Text("%", style: appStyle.fonts.P_12.copyWith(color: gradeColor)) + ]), + ), + ); + } + } else { + if (grade.numericValue != null) { + gradeColor = getGradeColor(grade.numericValue!.toDouble()); + } + + return Card( + shape: CircleBorder(eccentricity: eccentricity), + shadowColor: Colors.transparent, + color: gradeColor.withAlpha(38), + child: Padding( + padding: EdgeInsets.only(left: 8, right: 8), + child: Text(gradeStr, + style: appStyle.fonts.H_H1 + .copyWith(fontSize: 24, color: gradeColor))), + ); + } + } +} diff --git a/firka_wear/lib/helpers/ui/grade_helpers.dart b/firka_wear/lib/helpers/ui/grade_helpers.dart new file mode 100644 index 0000000..89e3ce0 --- /dev/null +++ b/firka_wear/lib/helpers/ui/grade_helpers.dart @@ -0,0 +1,74 @@ +import 'dart:ui'; + +import '../../ui/model/style.dart'; +import '../api/model/grade.dart'; +import '../api/model/subject.dart'; + +int roundGrade(double grade) { + if (grade < 2) { + return 1; + } + if (grade < 2.5) { + return 2; + } + if (grade < 3.5) { + return 3; + } + if (grade < 4.5) { + return 4; + } + + return 5; +} + +int percentageToGrade(int grade) { + if (grade < 50) { + return 1; + } + if (grade < 60) { + return 2; + } + if (grade < 70) { + return 3; + } + if (grade < 80) { + return 4; + } + + return 5; +} + +Color getGradeColor(double grade) { + switch (roundGrade(grade)) { + case 2: + return appStyle.colors.grade2; + case 3: + return appStyle.colors.grade3; + case 4: + return appStyle.colors.grade4; + case 5: + return appStyle.colors.grade5; + default: + return appStyle.colors.grade1; + } +} + +extension GradeListExtension on List { + double getAverageBySubject(Subject subject) { + var weightTotal = 0.00; + var sum = 0.00; + + for (var grade in this) { + if (grade.subject.uid == subject.uid) { + if (grade.numericValue != null) { + var weight = (grade.weightPercentage ?? 100) / 100.0; + weightTotal += weight; + + sum += grade.numericValue! * weight; + } + } + } + + return sum / weightTotal; + } +} diff --git a/firka_wear/lib/helpers/ui/stateless_async_widget.dart b/firka_wear/lib/helpers/ui/stateless_async_widget.dart new file mode 100644 index 0000000..2c078ba --- /dev/null +++ b/firka_wear/lib/helpers/ui/stateless_async_widget.dart @@ -0,0 +1,23 @@ +import 'package:firka_wear/ui/widget/delayed_spinner.dart'; +import 'package:flutter/material.dart'; + +abstract class StatelessAsyncWidget extends StatelessWidget { + const StatelessAsyncWidget({super.key}); + + Future buildAsync(BuildContext context); + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: buildAsync(context), + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Center(child: DelayedSpinnerWidget()); + } else if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } else { + return snapshot.data!; + } + }); + } +} diff --git a/firka_wear/lib/l10n b/firka_wear/lib/l10n new file mode 120000 index 0000000..a23aa7d --- /dev/null +++ b/firka_wear/lib/l10n @@ -0,0 +1 @@ +../../firka/lib/l10n \ No newline at end of file diff --git a/firka_wear/lib/main.dart b/firka_wear/lib/main.dart new file mode 100644 index 0000000..c1e3865 --- /dev/null +++ b/firka_wear/lib/main.dart @@ -0,0 +1,232 @@ +import 'dart:async'; +import 'dart:io'; +import 'dart:ui' as ui; + +import 'package:dio/dio.dart'; +import 'package:firka_wear/helpers/db/models/generic_cache_model.dart'; +import 'package:firka_wear/helpers/db/models/homework_cache_model.dart'; +import 'package:firka_wear/helpers/db/models/timetable_cache_model.dart'; +import 'package:firka_wear/helpers/db/models/token_model.dart'; +import 'package:firka_wear/ui/model/style.dart'; +import 'package:firka_wear/ui/wear/screens/login/login_screen.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:isar/isar.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:zear_plus/wear_plus.dart'; + +import 'helpers/api/client/kreta_client.dart'; +import 'l10n/app_localizations.dart'; +import 'l10n/app_localizations_de.dart'; +import 'l10n/app_localizations_en.dart'; +import 'l10n/app_localizations_hu.dart'; +import 'ui/wear/screens/home/home_screen.dart'; + +Isar? isarInit; +final GlobalKey navigatorKey = GlobalKey(); + +final dio = Dio(); + +class DeviceInfo { + String model; + + String versionRelease; + String versionSdkInt; + + DeviceInfo(this.model, this.versionRelease, this.versionSdkInt); + + @override + String toString() { + return "DeviceInfo(model = \"$model\", versionRelease = \"$versionRelease\"" + ", versionSdkInt = \"$versionSdkInt\""; + } +} + +class WearAppInitialization { + final Isar isar; + late KretaClient client; + final int tokenCount; + final AppLocalizations l10n; + final DeviceInfo devInfo; + + WearAppInitialization( + {required this.isar, + required this.tokenCount, + required this.l10n, + required this.devInfo}); +} + +Future initDB() async { + if (isarInit != null) return isarInit!; + final dir = await getApplicationDocumentsDirectory(); + + isarInit = await Isar.open( + [ + TokenModelSchema, + GenericCacheModelSchema, + TimetableCacheModelSchema, + HomeworkCacheModelSchema + ], + inspector: true, + directory: dir.path, + ); + + return isarInit!; +} + +AppLocalizations getLang() { + switch (ui.window.locale.languageCode) { + case 'hu': + return AppLocalizationsHu(); + case 'de': + return AppLocalizationsDe(); + default: + return AppLocalizationsEn(); + } +} + +Future initializeApp() async { + final isar = await initDB(); + + const channel = MethodChannel("firka.app/main"); + final rawInfo = + ((await channel.invokeMethod("get_info")) as String).split(";"); + + var init = WearAppInitialization( + isar: isar, + tokenCount: await isar.tokenModels.count(), + l10n: getLang(), + devInfo: DeviceInfo(rawInfo[0], rawInfo[1], rawInfo[2]), + ); + + resetOldTimeTableCache(isar); + resetOldHomeworkCache(isar); + + // TODO: Account selection + if (init.tokenCount > 0) { + init.client = + KretaClient((await isar.tokenModels.where().findFirst())!, isar); + } + + return init; +} + +void main() async { + dio.options.connectTimeout = Duration(seconds: 5); + dio.options.receiveTimeout = Duration(seconds: 3); + dio.options.validateStatus = (status) => status != null && status < 500; + + WidgetsFlutterBinding.ensureInitialized(); + + if (await Permission.notification.isDenied) { + var status = await Permission.notification.request(); + + if (status.isDenied) { + exit(-1); + } + } + + await ScreenUtil.ensureScreenSize(); + + // Run App Initialization + runApp(WearInitializationScreen()); +} + +class WearInitializationScreen extends StatelessWidget { + WearInitializationScreen({super.key}); + + // Place to store the initialization future + final Future _initialization = initializeApp(); + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: _initialization, + builder: (context, snapshot) { + // Check if initialization is complete + if (snapshot.connectionState == ConnectionState.done) { + if (snapshot.hasError) { + // Handle initialization error + + return MaterialApp( + key: ValueKey('firkaErrorPage'), + home: Scaffold( + body: Center( + child: WatchShape( + builder: (context, shape, child) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Error initializing app: ${snapshot.error}', + style: TextStyle(color: Colors.red), + ), + child!, + ], + ); + }, + child: SizedBox(), + ), + ), + ), + ); + } + + // Initialization successful, determine which screen to show + Widget screen; + + assert(snapshot.data != null); + var data = snapshot.data!; + + if (snapshot.data!.tokenCount == 0) { + screen = WearLoginScreen(data, key: ValueKey('wearLoginScreen')); + } else { + screen = WearHomeScreen(data, key: ValueKey('wearHomeScreen')); + } + + return MaterialApp( + key: ValueKey('firkaWearApp'), + title: 'Firka', + navigatorKey: navigatorKey, + // Use the global navigator key + theme: ThemeData( + primarySwatch: Colors.lightGreen, + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + localizationsDelegates: [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: AppLocalizations.supportedLocales, + home: screen, + routes: { + '/login': (context) => + WearLoginScreen(data, key: ValueKey('wearLoginScreen')), + '/home': (context) => + WearHomeScreen(data, key: ValueKey('wearHomeScreen')) + }, + ); + } + + return MaterialApp( + home: Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + color: wearStyle.colors.secondary, + ) + ], + ), + ), + ), + ); + }, + ); + } +} diff --git a/firka_wear/lib/ui/model/style.dart b/firka_wear/lib/ui/model/style.dart new file mode 100644 index 0000000..5bee898 --- /dev/null +++ b/firka_wear/lib/ui/model/style.dart @@ -0,0 +1,263 @@ +import 'package:flutter/material.dart'; + +class FirkaFonts { + TextStyle H_H1; + TextStyle H_18px; + TextStyle H_H2; + TextStyle H_16px; + TextStyle H_14px; + TextStyle H_12px; + + TextStyle H_16px_trimmed; // TODO: somehow implement this + // the design has this trimmed to 130% line height + + TextStyle B_16R; + TextStyle B_16SB; + + TextStyle B_14R; + TextStyle B_14SB; + + TextStyle B_12R; + TextStyle B_12SB; + + TextStyle P_14; + TextStyle P_12; + + FirkaFonts({ + required this.H_H1, + required this.H_18px, + required this.H_H2, + required this.H_16px, + required this.H_14px, + required this.H_12px, + required this.H_16px_trimmed, + required this.B_16R, + required this.B_16SB, + required this.B_14R, + required this.B_14SB, + required this.B_12R, + required this.B_12SB, + required this.P_14, + required this.P_12, + }); +} + +class FirkaColors { + Color background; + Color backgroundAmoled; + Color background0p; + Color success; + int shadowBlur; + + Color textPrimary; + Color textSecondary; + Color textTertiary; + + Color card; + Color cardTranslucent; + + Color buttonSecondaryFill; + + Color accent; + Color secondary; + Color shadowColor; + Color a15p; // 15% + + Color warningAccent; + Color warningText; + Color warning15p; + Color warningCard; + + Color errorAccent; + Color errorText; + Color error15p; + Color errorCard; + + Color grade5; + Color grade4; + Color grade3; + Color grade2; + Color grade1; + + FirkaColors({ + required this.background, + required this.backgroundAmoled, + required this.background0p, + required this.success, + required this.shadowBlur, + required this.textPrimary, + required this.textSecondary, + required this.textTertiary, + required this.card, + required this.cardTranslucent, + required this.buttonSecondaryFill, + required this.accent, + required this.secondary, + required this.shadowColor, + required this.a15p, + required this.warningAccent, + required this.warningText, + required this.warning15p, + required this.warningCard, + required this.errorAccent, + required this.errorText, + required this.error15p, + required this.errorCard, + required this.grade5, + required this.grade4, + required this.grade3, + required this.grade2, + required this.grade1, + }); +} + +class FirkaStyle { + FirkaColors colors; + FirkaFonts fonts; + + FirkaStyle({required this.colors, required this.fonts}); +} + +final _defaultFonts = FirkaFonts( + H_H1: TextStyle( + fontSize: 30, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 700)], + ), + H_18px: TextStyle( + fontSize: 18, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 700)], + ), + H_H2: TextStyle( + fontSize: 20, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 700)], + ), + H_16px: TextStyle( + fontSize: 16, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 600)], + ), + H_14px: TextStyle( + fontSize: 14, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 600)], + ), + H_12px: TextStyle( + fontSize: 12, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 600)], + ), + H_16px_trimmed: TextStyle( + fontSize: 16, + fontFamily: 'Montserrat', + fontVariations: [FontVariation("wght", 600)], + ), + B_16R: TextStyle( + fontSize: 16, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 600)]), + B_16SB: TextStyle( + fontSize: 16, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 700)], + ), + B_14R: TextStyle( + fontSize: 14, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 600)]), + B_14SB: TextStyle( + fontSize: 14, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 700)], + ), + B_12R: TextStyle( + fontSize: 12, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 600)]), + B_12SB: TextStyle( + fontSize: 12, + fontFamily: 'Figtree', + fontVariations: [FontVariation("wght", 700)], + ), + P_14: TextStyle( + fontSize: 14, + fontFamily: 'RobotoMono', + fontVariations: [FontVariation("wght", 700)], + ), + P_12: TextStyle( + fontSize: 12, + fontFamily: 'RobotoMono', + fontVariations: [FontVariation("wght", 700)], + ), +); + +final FirkaStyle lightStyle = FirkaStyle( + colors: FirkaColors( + background: Color(0xFFFAFFF0), + backgroundAmoled: Colors.black, + background0p: Color(0x00fafff0), + success: Color(0xFF92EA3B), + shadowBlur: 2, + textPrimary: Color(0xFF394C0A), + textSecondary: Color(0xCC394C0A), + textTertiary: Color(0x80394C0A), + card: Color(0xFFF3FBDE), + cardTranslucent: Color(0x80F3FBDE), + buttonSecondaryFill: Color(0xFFFEFFFD), + accent: Color(0xFFA7DC22), + secondary: Color(0xFF6E8F1B), + shadowColor: Color(0x33647e22), + a15p: Color(0x26a7dc22), + warningAccent: Color(0xFFFFA046), + warningText: Color(0xFF8F531B), + warning15p: Color(0x26FFA046), + warningCard: Color(0xFFFAEBDC), + errorAccent: Color(0xFFFF54A1), + errorText: Color(0xFF8F1B4F), + error15p: Color(0x26FF54A1), + errorCard: Color(0xFFFADCE9), + grade5: Color(0xFF22CCAD), + grade4: Color(0xFF92EA3B), + grade3: Color(0xFFF9CF00), + grade2: Color(0xFFFFA046), + grade1: Color(0xFFFF54A1), + ), + fonts: _defaultFonts); + +final FirkaStyle darkStyle = FirkaStyle( + colors: FirkaColors( + background: Color(0xFF0D1202), + backgroundAmoled: Colors.black, + background0p: Color(0x00fafff0), + success: Color(0xFF92EA3B), + shadowBlur: 0, + textPrimary: Color(0xFFEAF7CC), + textSecondary: Color(0xB3EAF7CC), + textTertiary: Color(0x80EAF7CC), + card: Color(0xFF141905), + cardTranslucent: Color(0x80141905), + buttonSecondaryFill: Color(0xFF20290B), + accent: Color(0xFFA7DC22), + secondary: Color(0xFFCBEE71), + shadowColor: Color(0x26CBEE71), + a15p: Color(0x26A7DC22), + warningAccent: Color(0xFFFFA046), + warningText: Color(0xFFF0B37A), + warning15p: Color(0x26FFA046), + warningCard: Color(0xFF201203), + errorAccent: Color(0xFFFF54A1), + errorText: Color(0xFFF59EC5), + error15p: Color(0x26FF54A1), + errorCard: Color(0xFF1E030F), + grade5: Color(0xFF22CCAD), + grade4: Color(0xFF92EA3B), + grade3: Color(0xFFF9CF00), + grade2: Color(0xFFFFA046), + grade1: Color(0xFFFF54A1), + ), + fonts: _defaultFonts); + +FirkaStyle appStyle = lightStyle; +FirkaStyle wearStyle = darkStyle; diff --git a/firka_wear/lib/ui/wear/screens/home/home_screen.dart b/firka_wear/lib/ui/wear/screens/home/home_screen.dart new file mode 100644 index 0000000..6076c68 --- /dev/null +++ b/firka_wear/lib/ui/wear/screens/home/home_screen.dart @@ -0,0 +1,366 @@ +import 'dart:async'; +import 'dart:math'; + +import 'package:firka_wear/helpers/api/model/timetable.dart'; +import 'package:firka_wear/helpers/extensions.dart'; +import 'package:firka_wear/ui/widget/class_icon.dart'; +import 'package:firka_wear/main.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_arc_text/flutter_arc_text.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:zear_plus/wear_plus.dart'; + +import '../../../../helpers/debug_helper.dart'; +import '../../../../l10n/app_localizations.dart'; +import '../../../model/style.dart'; +import '../../widgets/circular_progress_indicator.dart'; + +class WearHomeScreen extends StatefulWidget { + final WearAppInitialization data; + + const WearHomeScreen(this.data, {super.key}); + + @override + State createState() => _WearHomeScreenState(data); +} + +class _WearHomeScreenState extends State { + final WearAppInitialization data; + + _WearHomeScreenState(this.data); + + int? currentLessonNo; + List today = List.empty(growable: true); + String apiError = ""; + DateTime now = timeNow(); + Timer? timer; + bool init = false; + WearMode mode = WearMode.active; + final platform = MethodChannel('firka.app/main'); + + bool disposed = false; + + @override + void initState() { + super.initState(); + now = timeNow(); + + timer = Timer.periodic(Duration(seconds: 1), (timer) async { + setState(() { + now = timeNow(); + }); + }); + initStateAsync(); + } + + Future initStateAsync() async { + var kreta = data.client; + + now = timeNow(); + var todayStart = now.getMidnight(); + var todayEnd = todayStart.add(Duration(hours: 23, minutes: 59)); + var classes = await kreta.getTimeTable(todayStart, todayEnd); + + if (disposed) return; + setState(() { + if (classes.response != null) today = classes.response!; + if (classes.statusCode != 200) { + apiError = "Unexpected status : ${classes.statusCode}"; + } + if (classes.err != null) apiError = classes.err!; + + init = true; + }); + } + + (List, double) buildBody(BuildContext context, WearMode mode) { + ScreenUtil.init(context); + + var body = List.empty(growable: true); + if (!init) { + return (body, 255.h); + } + + if (today.isEmpty && apiError != "") { + body.add(Text( + apiError, + style: + wearStyle.fonts.H_18px.apply(color: wearStyle.colors.textPrimary), + textAlign: TextAlign.center, + )); + + return (body, 255.h); + } + if (today.isEmpty) { + body.add(Text( + AppLocalizations.of(context)!.noClasses, + style: + wearStyle.fonts.H_18px.apply(color: wearStyle.colors.textPrimary), + textAlign: TextAlign.center, + )); + + platform.invokeMethod('activity_cancel'); + return (body, 255.h); + } + if (now.isAfter(today.last.end)) { + body.add(Text( + AppLocalizations.of(context)!.noMoreClasses, + style: + wearStyle.fonts.H_18px.apply(color: wearStyle.colors.textPrimary), + textAlign: TextAlign.center, + )); + + platform.invokeMethod('activity_cancel'); + return (body, 300.h); + } + if (now.isBefore(today.first.start)) { + var untilFirst = today.first.start.difference(now); + + body.add(Text( + AppLocalizations.of(context)!.firstIn(untilFirst.formatDuration()), + style: + wearStyle.fonts.H_18px.apply(color: wearStyle.colors.textPrimary), + textAlign: TextAlign.center, + )); + + platform.invokeMethod('activity_update'); + return (body, 255.h); + } + currentLessonNo = null; + if (now.isAfter(today.first.start) && now.isBefore(today.last.end)) { + Lesson? currentLesson = today.getCurrentLesson(now); + Lesson? lastLesson = today.getPrevLesson(now); + Lesson? nextLesson = today.getNextLesson(now); + + if (currentLesson != null) { + currentLessonNo = today.getLessonNo(currentLesson); + } + + Duration? currentBreak; + Duration? currentBreakProgress; + + if (lastLesson != null && nextLesson != null) { + currentBreak = nextLesson.start.difference(lastLesson.end); + currentBreakProgress = nextLesson.start.difference(now); + } + + if (currentLesson == null) { + if (currentBreak == null) { + throw Exception("currentBreak == null"); + } + if (currentBreakProgress == null) { + throw Exception("currentBreakProgress == null"); + } + + var minutes = currentBreakProgress.inMinutes + 1; + + body.add(CustomPaint( + painter: CircularProgressPainter( + progress: currentBreakProgress.inMilliseconds / + currentBreak.inMilliseconds, + // progress: 5 / 10, + screenSize: MediaQuery.of(context).size, + strokeWidth: 4, + color: wearStyle.colors.accent), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 55.h), + Center( + child: Text( + AppLocalizations.of(context)!.breakTxt, + style: TextStyle( + color: wearStyle.colors.textPrimary, + fontSize: 14, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 600), + ], + ), + ), + ), + Center( + child: Text( + AppLocalizations.of(context)!.timeLeft(minutes), + style: TextStyle( + color: wearStyle.colors.textPrimary, + fontSize: 12, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 400), + ], + ), + ), + ) + ], + ))); + + platform.invokeMethod('activity_update'); + return (body, 200.h); + } else { + var duration = currentLesson.start.difference(currentLesson.end); + var elapsed = currentLesson.start.difference(now); + var timeLeft = currentLesson.end.difference(now); + + var minutes = timeLeft.inMinutes + 1; + + Widget nextLessonWidget = SizedBox(); + + if (nextLesson != null) { + nextLessonWidget = Center( + child: Text( + "→ ${nextLesson.name}, ${nextLesson.roomName}", + style: TextStyle( + color: wearStyle.colors.textPrimary, + fontSize: 12, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 400), + ], + ), + ), + ); + } + + body.add(CustomPaint( + painter: CircularProgressPainter( + progress: elapsed.inMilliseconds / duration.inMilliseconds, + screenSize: MediaQuery.of(context).size, + strokeWidth: 4, + color: wearStyle.colors.accent), + child: Column(children: [ + SizedBox(height: nextLesson == null ? 20.h : 0), + Center( + child: ClassIconWidget( + color: wearStyle.colors.accent, + size: 16, + uid: currentLesson.uid, + className: currentLesson.name, + category: currentLesson.subject?.name ?? '', + ).build(context), + ), + const SizedBox(height: 4), + Center( + child: Text( + "${currentLesson.name}, ${currentLesson.roomName}", + style: TextStyle( + color: wearStyle.colors.textPrimary, + fontSize: 14, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 600), + ], + ), + ), + ), + Center( + child: Text( + AppLocalizations.of(context)!.timeLeft(minutes), + style: TextStyle( + color: wearStyle.colors.textPrimary, + fontSize: 12, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 400), + ], + ), + ), + ), + const SizedBox(height: 8), + nextLessonWidget, + ]))); + + platform.invokeMethod('activity_update'); + return (body, 200.h); + } + } + + platform.invokeMethod('activity_cancel'); + throw Exception("unexpected state"); + } + + @override + Widget build(BuildContext context) { + Widget titleBar = SizedBox(); + + if (currentLessonNo != null) { + titleBar = ArcText( + radius: 99, + startAngle: pi / 180, + startAngleAlignment: StartAngleAlignment.center, + text: AppLocalizations.of(context)!.wearTitle(currentLessonNo!), + textStyle: TextStyle( + fontSize: 12, + color: wearStyle.colors.secondary, + fontFamily: 'Montserrat', + fontVariations: [ + FontVariation('wght', 500), + ], + ), + placement: Placement.inside, + ); + } + + return Scaffold( + backgroundColor: mode == WearMode.active + ? wearStyle.colors.background + : wearStyle.colors.backgroundAmoled, + body: Stack( + children: [ + Center( + child: titleBar, + ), + Center( + child: Column( + children: [ + WatchShape( + builder: (context, shape, child) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + child!, + ], + ); + }, + child: AmbientMode( + builder: (context, mode, child) { + if (this.mode != mode) { + Timer(Duration(milliseconds: 100), () { + setState(() { + this.mode = mode; + }); + }); + } + + var (body, padding) = buildBody(context, mode); + + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.only(top: padding), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [...body], + )), + ], + ); + }, + ), + ) + ], + ), + ) + ], + ), + ); + } + + @override + void dispose() { + super.dispose(); + timer?.cancel(); + disposed = true; + } +} diff --git a/firka_wear/lib/ui/wear/screens/login/login_screen.dart b/firka_wear/lib/ui/wear/screens/login/login_screen.dart new file mode 100644 index 0000000..1a06da4 --- /dev/null +++ b/firka_wear/lib/ui/wear/screens/login/login_screen.dart @@ -0,0 +1,258 @@ +// ignore_for_file: avoid_print + +import 'dart:async'; + +import 'package:firka_wear/helpers/api/client/kreta_client.dart'; +import 'package:firka_wear/helpers/extensions.dart'; +import 'package:flutter/material.dart'; +import 'package:watch_connectivity/watch_connectivity.dart'; +import 'package:zear_plus/wear_plus.dart'; + +import '../../../../helpers/db/models/token_model.dart'; +import '../../../../main.dart'; +import '../../../model/style.dart'; +import '../home/home_screen.dart'; + +class WearLoginScreen extends StatefulWidget { + final WearAppInitialization data; + const WearLoginScreen(this.data, {super.key}); + + @override + State createState() => _WearLoginScreen(data); +} + +class _WearLoginScreen extends State { + final WearAppInitialization initData; + _WearLoginScreen(this.initData); + + bool init = false; + bool isPaired = false; + bool isReachable = false; + bool isMessageSending = false; + bool isMessageSent = false; + final watch = WatchConnectivity(); + late Timer connectionTimer; + + @override + void initState() { + super.initState(); + + watch.messageStream.listen((e) { + var msg = e.entries.toMap(); + var id = msg["id"]; + + debugPrint("[Phone -> Watch]: $id"); + + switch (id) { + case "init_data": + { + () async { + var data = msg["auth"]; + var tokenModel = TokenModel.fromValues( + data["studentId"], + data["iss"], + data["idToken"], + data["accessToken"], + data["refreshToken"], + data["expiryDate"]); + + initData.client = KretaClient(tokenModel, initData.isar); + + await initData.isar.writeTxn(() async { + await initData.isar.tokenModels.put(tokenModel); + }); + + Navigator.of(context).pushAndRemoveUntil( + MaterialPageRoute( + builder: (context) => WearHomeScreen(initData)), + (route) => false, // Remove all previous routes + ); + }(); + } + } + }); + + connectionTimer = Timer.periodic(Duration(seconds: 1), (timer) async { + var p = await watch.isPaired; + var r = await watch.isReachable; + + if (!isMessageSending) { + isMessageSending = true; + + debugPrint("[Watch -> Phone]: ping"); + watch.sendMessage({'id': 'ping'}); + } + + setState(() { + init = true; + isPaired = p; + isReachable = r; + }); + }); + } + + (List, double) buildBody(BuildContext context) { + if (!init) { + return ( + [ + + ], + 60 + ); + } + + if (!isPaired) { + return ( + [ + Text( + widget.data.l10n.wear_phone_unpaired, + textAlign: TextAlign.center, + style: wearStyle.fonts.B_14R + .apply(color: wearStyle.colors.textPrimary), + ), + ], + 60 + ); + } + if (!isReachable) { + return ( + [ + Text( + widget.data.l10n.wear_phone_disconnected, + textAlign: TextAlign.center, + style: wearStyle.fonts.B_16R + .apply(color: wearStyle.colors.textPrimary), + ), + ], + 60 + ); + } + + if (!isMessageSent && isMessageSending) { + return ( + [ + Text( + widget.data.l10n.wear_pairing_request_sent, + textAlign: TextAlign.center, + style: wearStyle.fonts.B_16R + .apply(color: wearStyle.colors.textPrimary), + ), + ElevatedButton( + onPressed: () async { + debugPrint("[Watch -> Phone]: ping"); + watch.sendMessage({'id': 'ping', 'model': initData.devInfo.model}); + }, + // TODO: This is a placeholder, style this properly + style: ButtonStyle( + backgroundColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.pressed)) { + return wearStyle.colors.accent; + } + return wearStyle.colors.accent; + }), + foregroundColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.pressed)) { + return wearStyle.colors.accent; + } + return wearStyle.colors.accent; + }), + ), + child: Text(widget.data.l10n.wear_try_again, + textAlign: TextAlign.center, + style: TextStyle(color: wearStyle.colors.textPrimary)), + ), + ], + 45 + ); + } + + if (isMessageSent) { + return ( + [ + Text( + widget.data.l10n.wear_pairing_check_phone, + textAlign: TextAlign.center, + style: wearStyle.fonts.B_16R + .apply(color: wearStyle.colors.textPrimary), + ), + ElevatedButton( + onPressed: () async { + debugPrint("[Watch -> Phone]: ping"); + watch.sendMessage({'id': 'ping'}); + }, + // TODO: This is a placeholder, style this properly + style: ButtonStyle( + backgroundColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.pressed)) { + return wearStyle.colors.accent; + } + return wearStyle.colors.accent; + }), + foregroundColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.pressed)) { + return wearStyle.colors.accent; + } + return wearStyle.colors.accent; + }), + ), + child: Text(widget.data.l10n.wear_try_again, + textAlign: TextAlign.center, + style: TextStyle(color: wearStyle.colors.textPrimary)), + ), + ], + 55 + ); + } + + return ( + [ + Text("Unexpected state", + style: TextStyle(color: wearStyle.colors.textPrimary, fontSize: 18), + textAlign: TextAlign.center), + ], + 60 + ); + } + + @override + Widget build(BuildContext context) { + var (body, offset) = buildBody(context); + + return Scaffold( + backgroundColor: wearStyle.colors.background, + body: Center( + child: Column( + children: [ + WatchShape( + builder: (context, shape, child) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.only(top: offset), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: body, + )), + ], + ), + child!, + ], + ); + }, + child: SizedBox()) + ], + ), + ), + ); + } + + @override + void dispose() { + super.dispose(); + connectionTimer.cancel(); + } +} diff --git a/firka_wear/lib/ui/wear/widgets/circular_progress_indicator.dart b/firka_wear/lib/ui/wear/widgets/circular_progress_indicator.dart new file mode 100644 index 0000000..075b49e --- /dev/null +++ b/firka_wear/lib/ui/wear/widgets/circular_progress_indicator.dart @@ -0,0 +1,115 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +class CircularProgressIndicatorWidget extends StatefulWidget { + final double progress; + final double strokeWidth; + final Color color; + final Size screenSize; + + const CircularProgressIndicatorWidget({ + super.key, + required this.progress, + required this.screenSize, + this.strokeWidth = 8.0, + required this.color, + }); + + @override + _CircularProgressIndicatorWidgetState createState() => + _CircularProgressIndicatorWidgetState(); +} + +class _CircularProgressIndicatorWidgetState + extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + duration: const Duration(milliseconds: 500), + vsync: this, + ); + _animation = + Tween(begin: 0.0, end: widget.progress).animate(_controller); + _controller.forward(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _animation, + builder: (context, child) { + return CustomPaint( + painter: CircularProgressPainter( + progress: _animation.value, + strokeWidth: widget.strokeWidth, + color: widget.color, + screenSize: widget.screenSize, + ), + child: SizedBox.expand(), // Fill the entire screen + ); + }, + ); + } +} + +class CircularProgressPainter extends CustomPainter { + final double progress; + final double strokeWidth; + final Color color; + final Size screenSize; + + CircularProgressPainter({ + required this.progress, + required this.strokeWidth, + required this.color, + required this.screenSize, + }); + + @override + void paint(Canvas canvas, Size size) { + final center = Offset(screenSize.width / 2, screenSize.height / 4.7); + final radius = + min(screenSize.width, screenSize.height) / 2 - strokeWidth / 2; + final startAngle = -pi / 2; + var sweepAngle = 2 * pi * progress; + + final paint = Paint() + ..color = color + ..style = PaintingStyle.stroke + ..strokeWidth = strokeWidth; + + if (sweepAngle >= 6) { + sweepAngle -= 0.6; + } else { + sweepAngle -= 0.35; + + if (sweepAngle > 5.4) sweepAngle = 5.4; + } + if (sweepAngle <= 0) sweepAngle = 0; + + canvas.drawArc( + Rect.fromCircle(center: center, radius: radius), + startAngle + 0.3, + sweepAngle, + false, + paint, + ); + } + + @override + bool shouldRepaint(covariant CustomPainter oldDelegate) { + return true; + } +} diff --git a/firka_wear/lib/ui/widget/class_icon.dart b/firka_wear/lib/ui/widget/class_icon.dart new file mode 100644 index 0000000..cacff20 --- /dev/null +++ b/firka_wear/lib/ui/widget/class_icon.dart @@ -0,0 +1,31 @@ +import 'package:firka_wear/helpers/icon_helper.dart'; +import 'package:flutter/material.dart'; + +import 'firka_icon.dart'; + +class ClassIconWidget extends StatelessWidget { + final String _uid; + final String _className; + final String _category; + final Color color; + final double? size; + + const ClassIconWidget( + {super.key, + required String uid, + required String className, + required String category, + this.color = Colors.white, + this.size}) + : _className = className, + _uid = uid, + _category = category; + + @override + Widget build(BuildContext context) { + var iconCategory = getIconType(_uid, _className, _category); + + return FirkaIconWidget(FirkaIconType.Majesticons, getIconData(iconCategory), + color: color, size: size); + } +} diff --git a/firka_wear/lib/ui/widget/counter_digit.dart b/firka_wear/lib/ui/widget/counter_digit.dart new file mode 100644 index 0000000..94823eb --- /dev/null +++ b/firka_wear/lib/ui/widget/counter_digit.dart @@ -0,0 +1,24 @@ +import 'package:firka_wear/ui/model/style.dart'; +import 'package:flutter/material.dart'; + +class CounterDigitWidget extends StatelessWidget { + final String c; + final TextStyle? style; + + const CounterDigitWidget(this.c, this.style, {super.key}); + + @override + Widget build(BuildContext context) { + return Card( + shadowColor: Colors.transparent, + color: appStyle.colors.buttonSecondaryFill, + child: Padding( + padding: EdgeInsets.only(left: 8, right: 8, top: 4, bottom: 4), + child: Text( + c, + style: style, + ), + ), + ); + } +} diff --git a/firka_wear/lib/ui/widget/delayed_spinner.dart b/firka_wear/lib/ui/widget/delayed_spinner.dart new file mode 100644 index 0000000..53e4b65 --- /dev/null +++ b/firka_wear/lib/ui/widget/delayed_spinner.dart @@ -0,0 +1,42 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +class DelayedSpinnerWidget extends StatefulWidget { + const DelayedSpinnerWidget({super.key}); + + @override + State createState() => _DelayedSpinner(); +} + +class _DelayedSpinner extends State { + Timer? timer; + bool showSpinner = false; + + @override + void initState() { + super.initState(); + + timer = Timer(Duration(milliseconds: 50), () { + setState(() { + showSpinner = true; + }); + }); + } + + @override + Widget build(BuildContext context) { + if (showSpinner) { + return CircularProgressIndicator(); + } else { + return SizedBox(); + } + } + + @override + void dispose() { + super.dispose(); + + timer?.cancel(); + } +} diff --git a/firka_wear/lib/ui/widget/firka_icon.dart b/firka_wear/lib/ui/widget/firka_icon.dart new file mode 100644 index 0000000..fa66125 --- /dev/null +++ b/firka_wear/lib/ui/widget/firka_icon.dart @@ -0,0 +1,34 @@ +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:majesticons_flutter/majesticons_flutter.dart'; + +enum FirkaIconType { + Majesticons, + MajesticonsLocal, +} + +class FirkaIconWidget extends StatelessWidget { + final FirkaIconType iconType; + final Object iconData; + final Color color; + final double? size; + + const FirkaIconWidget(this.iconType, this.iconData, + {super.key, this.color = Colors.white, this.size}); + + @override + Widget build(BuildContext context) { + switch (iconType) { + case FirkaIconType.Majesticons: + return Majesticon(iconData as Uint8List, color: color, size: size); + case FirkaIconType.MajesticonsLocal: + return SvgPicture.asset( + 'assets/majesticons/${iconData as String}.svg', + color: color, + height: size, + ); + } + } +} diff --git a/firka_wear/lib/ui/widget/grade_small_card.dart b/firka_wear/lib/ui/widget/grade_small_card.dart new file mode 100644 index 0000000..649d2ec --- /dev/null +++ b/firka_wear/lib/ui/widget/grade_small_card.dart @@ -0,0 +1,52 @@ +import 'package:firka_wear/helpers/api/model/grade.dart'; +import 'package:firka_wear/helpers/api/model/subject.dart'; +import 'package:firka_wear/helpers/ui/firka_card.dart'; +import 'package:firka_wear/helpers/ui/grade_helpers.dart'; +import 'package:firka_wear/ui/widget/class_icon.dart'; +import 'package:flutter/material.dart'; + +import '../model/style.dart'; + +class GradeSmallCard extends FirkaCard { + final List grades; + final Subject subject; + + GradeSmallCard(this.grades, this.subject, {super.key}) + : super(left: [ + ClassIconWidget( + uid: subject.uid, + className: subject.name, + category: subject.category.name!, + color: appStyle.colors.accent, + ), + SizedBox( + width: 4, + ), + SizedBox( + width: 200, + child: Text( + subject.name, + style: appStyle.fonts.B_16SB + .apply(color: appStyle.colors.textPrimary), + ), + ), + ], right: [ + grades.getAverageBySubject(subject).isNaN + ? SizedBox() + : Card( + shadowColor: Colors.transparent, + color: getGradeColor(grades.getAverageBySubject(subject)) + .withAlpha(38), + child: Padding( + padding: + EdgeInsets.only(left: 8, right: 8, top: 4, bottom: 4), + child: Text( + grades.getAverageBySubject(subject).toStringAsFixed(2), + style: appStyle.fonts.B_16SB.apply( + color: getGradeColor( + grades.getAverageBySubject(subject))), + ), + ), + ), + ]); +} diff --git a/firka_wear/pubspec.yaml b/firka_wear/pubspec.yaml new file mode 100644 index 0000000..f68c181 --- /dev/null +++ b/firka_wear/pubspec.yaml @@ -0,0 +1,132 @@ +# TODO: make app icon with adaptive functions: https://pub.dev/packages/flutter_launcher_icons + +name: firka_wear +description: "Firka, Alternatív e-Kréta kliens." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: "none" # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1002 + +environment: + sdk: ">=3.6.0 <=3.8.1" + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. + +dependencies: + flutter: + sdk: flutter + + cupertino_icons: ^1.0.8 + flutter_launcher_icons: ^0.14.3 + dio: ^5.8.0+1 + isar: + path: vendor/isar + isar_flutter_libs: + path: vendor/isar_flutter_libs + build_runner: any + path_provider: ^2.1.0 + carousel_slider: ^5.0.0 + webview_flutter: ^4.7.0 + dart_jsonwebtoken: ^3.2.0 + zear_plus: + path: vendor/wear_plus + majesticons_flutter: ^0.0.1 + watch_connectivity: ^0.2.1+1 + permission_handler: ^11.4.0 + flutter_localizations: + sdk: flutter + intl: any + image_picker: ^1.1.2 + image: ^4.5.4 + path: ^1.9.1 + flutter_screenutil: ^5.9.3 + flutter_arc_text: ^0.6.0 + flutter_svg: ^1.1.6 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^5.0.0 + isar_generator: + path: vendor/isar_generator + android_notification_icons: ^0.0.1 + integration_test: + sdk: flutter + +android_notification_icons: + image_path: 'assets/images/logos/monochrome_logo.png' + icon_name: 'ic_notification' + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + generate: true + uses-material-design: true + assets: + - assets/images/logos/colored_logo.png + - assets/images/logos/dave.svg + - assets/majesticons/ + + fonts: + - family: Montserrat + fonts: + - asset: assets/fonts/Montserrat-VariableFont_wght.ttf + style: normal + - family: Figtree + fonts: + - asset: assets/fonts/Figtree-VariableFont_wght.ttf + style: normal + - family: RobotoMono + fonts: + - asset: assets/fonts/RobotoMono-VariableFont_wght.ttf + style: normal + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package diff --git a/firka_wear/vendor/isar b/firka_wear/vendor/isar new file mode 120000 index 0000000..ad88c42 --- /dev/null +++ b/firka_wear/vendor/isar @@ -0,0 +1 @@ +../../firka/vendor/isar \ No newline at end of file diff --git a/firka_wear/vendor/isar_flutter_libs b/firka_wear/vendor/isar_flutter_libs new file mode 120000 index 0000000..a85581d --- /dev/null +++ b/firka_wear/vendor/isar_flutter_libs @@ -0,0 +1 @@ +../../firka/vendor/isar_flutter_libs/ \ No newline at end of file diff --git a/firka_wear/vendor/isar_generator b/firka_wear/vendor/isar_generator new file mode 120000 index 0000000..a393b88 --- /dev/null +++ b/firka_wear/vendor/isar_generator @@ -0,0 +1 @@ +../../firka/vendor/isar_generator/ \ No newline at end of file diff --git a/firka_wear/vendor/wear_plus b/firka_wear/vendor/wear_plus new file mode 160000 index 0000000..a6fb67b --- /dev/null +++ b/firka_wear/vendor/wear_plus @@ -0,0 +1 @@ +Subproject commit a6fb67b23edea4b2657bbd0cbb7150de85b88db6

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 Ak^lez literal 0 HcmV?d00001 diff --git a/firka_wear/assets/images/logos/colored_logo.png b/firka_wear/assets/images/logos/colored_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63456bc2c939653cb11267eeee76f879f1ce8274 GIT binary patch literal 38774 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 VCo*%Q~loCIB)1MPvW~ literal 0 HcmV?d00001 diff --git a/firka_wear/assets/images/logos/dave.svg b/firka_wear/assets/images/logos/dave.svg new file mode 100644 index 0000000..0eaf9eb --- /dev/null +++ b/firka_wear/assets/images/logos/dave.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/firka_wear/assets/images/logos/loading.gif b/firka_wear/assets/images/logos/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c4d0f694f6f47c3b4faf7a48fd43002f049873a GIT binary patch literal 16742 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 VS!Ke$-@zbHdb;|#taD0e0s#5~crX9} literal 0 HcmV?d00001 diff --git a/firka_wear/assets/images/logos/splash.png b/firka_wear/assets/images/logos/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..daded96356e04b100d7b5e8d54fe0c586780ba77 GIT binary patch literal 22616 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 literal 0 HcmV?d00001 diff --git a/firka_wear/assets/majesticons/cupFilled.svg b/firka_wear/assets/majesticons/cupFilled.svg new file mode 100644 index 0000000..5f741a8 --- /dev/null +++ b/firka_wear/assets/majesticons/cupFilled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/firka_wear/assets/majesticons/parkSolidSchool.svg b/firka_wear/assets/majesticons/parkSolidSchool.svg new file mode 100644 index 0000000..5caeb66 --- /dev/null +++ b/firka_wear/assets/majesticons/parkSolidSchool.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/firka_wear/assets/majesticons/sunSolid.svg b/firka_wear/assets/majesticons/sunSolid.svg new file mode 100644 index 0000000..37f133d --- /dev/null +++ b/firka_wear/assets/majesticons/sunSolid.svg @@ -0,0 +1,3 @@ + + + diff --git a/firka_wear/devtools_options.yaml b/firka_wear/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/firka_wear/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/firka_wear/flutter_launcher_icons.yaml b/firka_wear/flutter_launcher_icons.yaml new file mode 100644 index 0000000..7342d0f --- /dev/null +++ b/firka_wear/flutter_launcher_icons.yaml @@ -0,0 +1,11 @@ +flutter_launcher_icons: + generate: true + android: "launcher_icon" + image_path: "assets/images/logos/colored_logo.png" + adaptive_icon_monochrome: "assets/images/logos/monochrome_logo.png" + adaptive_icon_background: "assets/images/logos/colored_logo_without_mustache.png" + adaptive_icon_foreground: "assets/images/logos/colored_logo_only_mustache.png" + adaptive_icon_foreground_inset: 0 + min_sdk_android: 21 + ios: true + remove_alpha_channel_ios: true diff --git a/firka_wear/l10n.yml b/firka_wear/l10n.yml new file mode 100644 index 0000000..fca49bc --- /dev/null +++ b/firka_wear/l10n.yml @@ -0,0 +1,3 @@ +arb-dir: lib/l10n +template-arb-file: app_hu.arb +output-localization-file: app_localizations.dart \ No newline at end of file diff --git a/firka_wear/lib/helpers/api/client/kreta_client.dart b/firka_wear/lib/helpers/api/client/kreta_client.dart new file mode 100644 index 0000000..4be1063 --- /dev/null +++ b/firka_wear/lib/helpers/api/client/kreta_client.dart @@ -0,0 +1,519 @@ +import 'dart:convert'; +import 'dart:math'; + +import 'package:dio/dio.dart'; +import 'package:firka_wear/helpers/api/model/homework.dart'; +import 'package:firka_wear/helpers/api/model/timetable.dart'; +import 'package:firka_wear/helpers/db/models/generic_cache_model.dart'; +import 'package:firka_wear/helpers/db/models/homework_cache_model.dart'; +import 'package:firka_wear/helpers/db/models/timetable_cache_model.dart'; +import 'package:intl/intl.dart'; +import 'package:isar/isar.dart'; + +import '../../../main.dart'; +import '../../db/models/token_model.dart'; +import '../../db/util.dart'; +import '../../debug_helper.dart'; +import '../consts.dart'; +import '../model/grade.dart'; +import '../model/notice_board.dart'; +import '../model/omission.dart'; +import '../model/student.dart'; +import '../model/test.dart'; +import '../token_grant.dart'; + +class ApiResponse { + T? response; + int statusCode; + String? err; + bool cached; + + ApiResponse( + this.response, + this.statusCode, + this.err, + this.cached, + ); + + @override + String toString() { + return "ApiResponse(" + "response: $response, " + "statusCode: $statusCode, " + "err: \"$err\", " + "cached: $cached" + ")"; + } +} + +class KretaClient { + bool _tokenMutex = false; + TokenModel model; + Isar isar; + + KretaClient(this.model, this.isar); + + Future _mutexCallback(Future Function() callback) async { + while (_tokenMutex) { + await Future.delayed(const Duration(milliseconds: 50)); + } + _tokenMutex = true; + try { + return callback(); + } finally { + _tokenMutex = false; + } + } + + Future _authReq(String method, String url, [Object? data]) async { + var localToken = await _mutexCallback(() async { + var now = timeNow(); + + if (now.millisecondsSinceEpoch >= + model.expiryDate!.millisecondsSinceEpoch) { + var extended = await extendToken(model); + var tokenModel = TokenModel.fromResp(extended); + + await isar.writeTxn(() async { + await isar.tokenModels.put(tokenModel); + }); + + model = tokenModel; + } + + return model.accessToken!; + }); + + final headers = { + // "content-type": "application/x-www-form-urlencoded; charset=UTF-8", + "accept": "*/*", + "user-agent": "eKretaStudent/264745 CFNetwork/1494.0.7 Darwin/23.4.0", + "authorization": "Bearer $localToken", + "apiKey": "21ff6c25-d1da-4a68-a811-c881a6057463" + }; + + return await dio.get(url, + options: Options(method: method, headers: headers), data: data); + } + + Future<(dynamic, int)> _authJson(String method, String url, + [Object? data]) async { + var resp = await _authReq(method, url, data); + + return (resp.data, resp.statusCode!); + } + + Future<(dynamic, int, Object?, bool)> _cachingGet( + CacheId id, String url, bool forceCache) async { + // it would be *ideal* to use xor and left shift here, however + // binary operations seem to round the number down to + // 32 bits for some reason??? + var cacheKey = model.studentId! + ((id.index + 1) * pow(10, 11)); + var cache = await isar.genericCacheModels.get(cacheKey as int); + + dynamic resp; + int statusCode; + try { + if (forceCache && cache != null) { + return (jsonDecode(cache.cacheData!), 200, null, true); + } + (resp, statusCode) = await _authJson("GET", url); + + if (statusCode >= 400) { + if (cache != null) { + return (jsonDecode(cache.cacheData!), statusCode, null, true); + } + } + } catch (ex) { + if (cache != null) { + return (jsonDecode(cache.cacheData!), 0, ex, true); + } else { + return (null, 0, ex, false); + } + } + + await isar.writeTxn(() async { + var cache = GenericCacheModel(); + cache.cacheKey = cacheKey; + cache.cacheData = jsonEncode(resp); + + isar.genericCacheModels.put(cache); + }); + + return (resp, statusCode, null, false); + } + + ApiResponse? studentCache; + + Future> getStudent({bool forceCache = true}) async { + if (forceCache && studentCache != null) return studentCache!; + var (resp, status, ex, cached) = await _cachingGet(CacheId.getStudent, + KretaEndpoints.getStudentUrl(model.iss!), forceCache); + + Student? student; + String? err; + try { + student = Student.fromJson(resp); + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + if (ex == null) studentCache = ApiResponse(student, 200, null, true); + + return ApiResponse(student, status, err, cached); + } + + ApiResponse>? noticeBoardCache; + + Future>> getNoticeBoard( + {bool forceCache = true}) async { + if (forceCache && noticeBoardCache != null) return noticeBoardCache!; + var (resp, status, ex, cached) = await _cachingGet(CacheId.getNoticeBoard, + KretaEndpoints.getNoticeBoard(model.iss!), forceCache); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(NoticeBoardItem.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + if (err == null) noticeBoardCache = ApiResponse(items, 200, null, true); + + return ApiResponse(items, status, err, cached); + } + + ApiResponse>? gradeCache; + + Future>> getGrades({bool forceCache = true}) async { + if (forceCache && gradeCache != null) { + return gradeCache!; + } + var (resp, status, ex, cached) = await _cachingGet( + CacheId.getGrades, KretaEndpoints.getGrades(model.iss!), forceCache); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(Grade.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + items.sort((a, b) => b.recordDate.compareTo(a.recordDate)); + + if (ex == null) gradeCache = ApiResponse(items, 200, null, true); + + return ApiResponse(items, status, err, cached); + } + + Future<(List, int, Object?, bool)> + _timedCachingGet( + IsarCollection cacheModel, + String endpoint, + DateTime from, + DateTime? to, + bool forceCache, + Future Function(dynamic, int) storeCache) async { + var cacheKey = genCacheKey(from, model.studentId!); + var cache = await cacheModel.get(cacheKey); + var formatter = DateFormat('yyyy-MM-dd'); + var fromStr = formatter.format(from); + var toStr = to != null ? formatter.format(to) : null; + var now = timeNow(); + + if (cache != null && (cache as dynamic).values == null) { + (cache as dynamic).values = List.empty(growable: true); + } + + List resp; + int statusCode; + try { + if (forceCache && cache != null) { + var items = List.empty(growable: true); + for (var item in (cache as dynamic).values) { + items.add(jsonDecode(item)); + } + + return (items, 200, null, true); + } + if (toStr == null) { + (resp, statusCode) = await _authJson( + "GET", + "$endpoint?" + "datumTol=$fromStr"); + } else { + (resp, statusCode) = await _authJson( + "GET", + "$endpoint?" + "datumTol=$fromStr&datumIg=$toStr"); + } + + if (statusCode >= 400) { + if (cache != null) { + var items = List.empty(growable: true); + for (var item in (cache as dynamic).values) { + items.add(jsonDecode(item)); + } + return (items, statusCode, null, true); + } + } + } catch (ex) { + if (cache != null) { + var items = List.empty(growable: true); + for (var item in (cache as dynamic).values) { + items.add(jsonDecode(item)); + } + return (items, 0, ex, true); + } else { + return (List.empty(growable: true), 0, ex, false); + } + } + + // only cache stuff in a 1 month frame + if (from.millisecondsSinceEpoch >= + now.subtract(Duration(days: 30)).millisecondsSinceEpoch) { + if (to == null || + to.millisecondsSinceEpoch <= + now.add(Duration(days: 30)).millisecondsSinceEpoch) { + await isar.writeTxn(() async { + await storeCache(resp, cacheKey); + }); + } + } + + return (resp, statusCode, null, false); + } + + /// Expects from and to to be 7 days apart + Future>> _getTimeTable( + DateTime from, DateTime to, bool forceCache) async { + var (resp, status, ex, cached) = + await _timedCachingGet( + isar.timetableCacheModels, + KretaEndpoints.getTimeTable(model.iss!), + from, + to, + forceCache, (dynamic resp, int cacheKey) async { + TimetableCacheModel cache = TimetableCacheModel(); + var rawClasses = List.empty(growable: true); + + for (var obj in resp) { + rawClasses.add(jsonEncode(obj)); + } + + cache.cacheKey = cacheKey; + cache.values = rawClasses; + + await isar.timetableCacheModels.put(cache as dynamic); + }); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(Lesson.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + return ApiResponse(items, status, err, cached); + } + + /// Expects from and to to be 7 days apart + Future>> _getHomework( + DateTime from, DateTime to, bool forceCache) async { + var (resp, status, ex, cached) = await _timedCachingGet( + isar.homeworkCacheModels, + KretaEndpoints.getHomework(model.iss!), + from, + null, + forceCache, (dynamic resp, int cacheKey) async { + HomeworkCacheModel cache = HomeworkCacheModel(); + var rawClasses = List.empty(growable: true); + + for (var obj in resp) { + rawClasses.add(jsonEncode(obj)); + } + + cache.cacheKey = cacheKey; + cache.values = rawClasses; + + await isar.homeworkCacheModels.put(cache as dynamic); + }); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(Homework.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + return ApiResponse(items, status, err, cached); + } + + /// Automatically aligns requests to start at Monday and end at Sunday + Future>> getHomework(DateTime from, DateTime to, + {bool forceCache = true}) async { + var homework = List.empty(growable: true); + String? err; + bool cached = true; + + for (var i = from.millisecondsSinceEpoch; + i < to.millisecondsSinceEpoch; + i += 604800000) { + var from = DateTime.fromMillisecondsSinceEpoch(i); + var start = from.subtract(Duration(days: from.weekday - 1)); + var end = start.add(Duration(days: 6)); + + var resp = await _getHomework(start, end, forceCache); + if (resp.err != null) { + err = resp.err; + if (!resp.cached) { + return resp; + } else { + homework.addAll(resp.response!); + } + } else { + homework.addAll(resp.response!); + } + if (!resp.cached) cached = false; + } + + homework.sort((a, b) => a.startDate.compareTo(b.startDate)); + homework = homework.where((h) => h.dueDate.isAfter(timeNow())).toList(); + + return ApiResponse(homework, 200, err, cached); + } + + /// Automatically aligns requests to start at Monday and end at Sunday + Future>> getTimeTable(DateTime from, DateTime to, + {bool forceCache = true}) async { + var lessons = List.empty(growable: true); + String? err; + bool cached = true; + + for (var i = from.millisecondsSinceEpoch; + i < to.millisecondsSinceEpoch; + i += 604800000) { + var from = DateTime.fromMillisecondsSinceEpoch(i); + var start = from.subtract(Duration(days: from.weekday - 1)); + var end = start.add(Duration(days: 6)); + + var resp = await _getTimeTable(start, end, forceCache); + if (resp.err != null) { + err = resp.err; + if (!resp.cached) { + return resp; + } else { + lessons.addAll(resp.response!); + } + } else { + lessons.addAll(resp.response!); + } + if (!resp.cached) cached = false; + } + + lessons.sort((a, b) => a.start.compareTo(b.start)); + lessons = lessons + .where( + (lesson) => lesson.start.isAfter(from) && lesson.end.isBefore(to)) + .toList(); + + return ApiResponse(lessons, 200, err, cached); + } + + Future>> getTests({bool forceCache = true}) async { + var (resp, status, ex, cached) = await _cachingGet( + CacheId.getTests, KretaEndpoints.getTests(model.iss!), forceCache); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(Test.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + // items.sort((a, b) => a.date.compareTo(b.date)); + + return ApiResponse(items, status, err, cached); + } + + ApiResponse>? omissionsCache; + + Future>> getOmissions( + {bool forceCache = true}) async { + if (omissionsCache != null) return omissionsCache!; + var (resp, status, ex, cached) = await _cachingGet(CacheId.getOmissions, + KretaEndpoints.getOmissions(model.iss!), forceCache); + + var items = List.empty(growable: true); + String? err; + try { + List rawItems = resp; + for (var item in rawItems) { + items.add(Omission.fromJson(item)); + } + } catch (ex) { + err = ex.toString(); + } + + if (ex != null) { + err = ex.toString(); + } + + items.sort((a, b) => a.date.compareTo(b.date)); + + if (ex == null) omissionsCache = ApiResponse(items, 200, null, true); + + return ApiResponse(items, status, err, cached); + } + + void evictMemCache() { + studentCache = null; + noticeBoardCache = null; + gradeCache = null; + omissionsCache = null; + } +} diff --git a/firka_wear/lib/helpers/api/consts.dart b/firka_wear/lib/helpers/api/consts.dart new file mode 100644 index 0000000..2896f57 --- /dev/null +++ b/firka_wear/lib/helpers/api/consts.dart @@ -0,0 +1,52 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +class Constants { + static const clientId = "kreta-ellenorzo-student-mobile-ios"; +} + +class KretaEndpoints { + static String kretaBase = "e-kreta.hu"; + static String kreta(String iss) { + if (iss == "firka-test") { + return kretaBase; + } else { + return "https://$iss.$kretaBase"; + } + } + + static String kretaIdp = "https://idp.e-kreta.hu"; + static String kretaLoginUrl = + "$kretaIdp/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fprompt%3Dlogin%26nonce%3DwylCrqT4oN6PPgQn2yQB0euKei9nJeZ6_ffJ-VpSKZU%26response_type%3Dcode%26code_challenge_method%3DS256%26scope%3Dopenid%2520email%2520offline_access%2520kreta-ellenorzo-webapi.public%2520kreta-eugyintezes-webapi.public%2520kreta-fileservice-webapi.public%2520kreta-mobile-global-webapi.public%2520kreta-dkt-webapi.public%2520kreta-ier-webapi.public%26code_challenge%3DHByZRRnPGb-Ko_wTI7ibIba1HQ6lor0ws4bcgReuYSQ%26redirect_uri%3Dhttps%253A%252F%252Fmobil.e-kreta.hu%252Fellenorzo-student%252Fprod%252Foauthredirect%26client_id%3Dkreta-ellenorzo-student-mobile-ios%26state%3Dkreta_student_mobile%26suppressed_prompt%3Dlogin"; + static String tokenGrantUrl = "$kretaIdp/connect/token"; + + static String getStudentUrl(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/TanuloAdatlap"; + static String getNoticeBoard(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/FaliujsagElemek"; + static String getGrades(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/Ertekelesek"; + static String getTimeTable(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/OrarendElemek"; + static String getOmissions(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/Mulasztasok"; + static String getHomework(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/HaziFeladatok"; + static String getTests(String iss) => + "${kreta(iss)}/ellenorzo/v3/sajat/BejelentettSzamonkeresek"; +} diff --git a/firka_wear/lib/helpers/api/model/generic.dart b/firka_wear/lib/helpers/api/model/generic.dart new file mode 100644 index 0000000..1e63b74 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/generic.dart @@ -0,0 +1,58 @@ +class NameUidDesc { + final String uid; + final String? name; + final String? description; + + NameUidDesc( + {required this.uid, required this.name, required this.description}); + + factory NameUidDesc.fromJson(Map json) { + return NameUidDesc( + uid: json['Uid'], name: json['Nev'], description: json['Leiras']); + } + + @override + String toString() { + return 'NameUidDesc(' + 'uid: "$uid", ' + 'name: "$name", ' + 'description: "$description"' + ')'; + } +} + +class NameUid { + final String uid; + final String name; + + NameUid({ + required this.uid, + required this.name, + }); + + factory NameUid.fromJson(Map json) { + return NameUid( + uid: json['Uid'], + name: json['Nev'], + ); + } +} + +class UidObj { + final String uid; + + UidObj({required this.uid}); + + factory UidObj.fromJson(Map json) { + return UidObj( + uid: json['Uid'], + ); + } + + @override + String toString() { + return 'UidObj(' + 'uid: "$uid"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/grade.dart b/firka_wear/lib/helpers/api/model/grade.dart new file mode 100644 index 0000000..1611a01 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/grade.dart @@ -0,0 +1,90 @@ +import 'package:firka_wear/helpers/api/model/generic.dart'; +import 'package:firka_wear/helpers/api/model/subject.dart'; + +class Grade { + final String uid; + final DateTime recordDate; + final DateTime creationDate; + final DateTime? ackDate; + final Subject subject; + final String? topic; + final NameUidDesc type; + final NameUidDesc? mode; + NameUidDesc valueType; + final String teacher; + final String? kind; + int? numericValue; + final String strValue; + final int? weightPercentage; + final String? shortStrValue; + final UidObj? classGroup; + final int sortIndex; + + Grade( + {required this.uid, + required this.recordDate, + required this.creationDate, + this.ackDate, + required this.subject, + this.topic, + required this.type, + this.mode, + required this.valueType, + required this.teacher, + this.kind, + this.numericValue, + required this.strValue, + this.weightPercentage, + this.shortStrValue, + this.classGroup, + required this.sortIndex}); + + factory Grade.fromJson(Map json) { + return Grade( + uid: json['Uid'], + recordDate: DateTime.parse(json['RogzitesDatuma']), + creationDate: DateTime.parse(json['KeszitesDatuma']), + ackDate: json['LattamozasDatuma'] != null + ? DateTime.parse(json['LattamozasDatuma']) + : null, + subject: Subject.fromJson(json['Tantargy']), + topic: json['Tema'], + type: NameUidDesc.fromJson(json['Tipus']), + mode: json['Mod'] != null ? NameUidDesc.fromJson(json['Mod']) : null, + valueType: NameUidDesc.fromJson(json['ErtekFajta']), + teacher: json['ErtekeloTanarNeve'], + kind: json['Kind'], + numericValue: json['SzamErtek'], + strValue: json['SzovegesErtek'], + weightPercentage: json['SulySzazalekErteke'], + shortStrValue: json['SzovegesErtekelesRovidNev'], + classGroup: json['OsztalyCsoport'] != null + ? UidObj.fromJson(json['OsztalyCsoport']) + : null, + sortIndex: json['SortIndex'], + ); + } + + @override + String toString() { + return 'Grade(' + 'uid: "$uid", ' + 'recordDate: "$recordDate", ' + 'creationDate: "$creationDate", ' + 'ackDate: "${ackDate ?? 'null'}", ' + 'subject: $subject, ' + 'topic: "${topic ?? 'null'}", ' + 'type: $type, ' + 'mode: ${mode ?? 'null'}, ' + 'valueType: $valueType, ' + 'teacher: "$teacher", ' + 'kind: "${kind ?? 'null'}", ' + 'numericValue: ${numericValue ?? 'null'}, ' + 'strValue: "$strValue", ' + 'weightPercentage: ${weightPercentage ?? 'null'}, ' + 'shortStrValue: "${shortStrValue ?? 'null'}", ' + 'classGroup: ${classGroup ?? 'null'}, ' + 'sortIndex: $sortIndex' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/guardian.dart b/firka_wear/lib/helpers/api/model/guardian.dart new file mode 100644 index 0000000..a324abf --- /dev/null +++ b/firka_wear/lib/helpers/api/model/guardian.dart @@ -0,0 +1,52 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +class Guardian { + final String? email; + final bool isLegalRepresentative; + final String? name; + final String? phoneNumber; + final String uid; + + Guardian( + {required this.email, + required this.isLegalRepresentative, + required this.name, + required this.phoneNumber, + required this.uid}); + + factory Guardian.fromJson(Map json) { + return Guardian( + email: json['EmailCim'], + isLegalRepresentative: json['IsTorvenyesKepviselo'], + name: json['Nev'], + phoneNumber: json['Telefonszam'], + uid: json['Uid']); + } + + @override + String toString() { + return 'Guardian(' + 'email: "$email", ' + 'isLegalRepresentative: $isLegalRepresentative, ' + 'name: "$name", ' + 'phoneNumber: "$phoneNumber", ' + 'uid: "$uid"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/homework.dart b/firka_wear/lib/helpers/api/model/homework.dart new file mode 100644 index 0000000..eafdabe --- /dev/null +++ b/firka_wear/lib/helpers/api/model/homework.dart @@ -0,0 +1,70 @@ +import 'package:firka_wear/helpers/api/model/subject.dart'; + +import 'generic.dart'; + +class Homework { + final String uid; + final Subject subject; + final String subjectName; + final String teacherName; + final String description; + final DateTime startDate; + final DateTime dueDate; + final DateTime creationDate; + final bool isCreatedByTeacher; + final bool isDone; + final bool canBeSubmitted; + final UidObj classGroup; + final bool canAttach; + + Homework( + {required this.uid, + required this.subject, + required this.subjectName, + required this.teacherName, + required this.description, + required this.startDate, + required this.dueDate, + required this.creationDate, + required this.isCreatedByTeacher, + required this.isDone, + required this.canBeSubmitted, + required this.classGroup, + required this.canAttach}); + + factory Homework.fromJson(Map json) { + return Homework( + uid: json["Uid"], + subject: Subject.fromJson(json["Tantargy"]), + subjectName: json["TantargyNeve"], + teacherName: json["RogzitoTanarNeve"], + description: json["Szoveg"], + startDate: DateTime.parse(json["FeladasDatuma"]).toLocal(), + dueDate: DateTime.parse(json["HataridoDatuma"]).toLocal(), + creationDate: DateTime.parse(json["RogzitesIdopontja"]).toLocal(), + isCreatedByTeacher: json["IsTanarRogzitette"], + isDone: json["IsMegoldva"], + canBeSubmitted: json["IsBeadhato"], + classGroup: UidObj.fromJson(json["OsztalyCsoport"]), + canAttach: json["IsCsatolasEngedelyezes"]); + } + + @override + String toString() { + return 'Homework(' + 'uid: "$uid", ' + 'subject: $subject, ' + 'subjectName: "$subjectName", ' + 'teacherName: "$teacherName", ' + 'description: "$description", ' + 'startDate: $startDate, ' + 'dueDate: $dueDate, ' + 'creationDate: $creationDate, ' + 'isCreatedByTeacher: $isCreatedByTeacher, ' + 'isDone: $isDone, ' + 'canBeSubmitted: $canBeSubmitted, ' + 'classGroup: $classGroup, ' + 'canAttach: $canAttach' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/institution.dart b/firka_wear/lib/helpers/api/model/institution.dart new file mode 100644 index 0000000..d390ab7 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/institution.dart @@ -0,0 +1,100 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +class Institution { + final CustomizationSettings customizationSettings; + final String shortName; + final List systemModuleList; + final String uid; + + Institution( + {required this.customizationSettings, + required this.shortName, + required this.systemModuleList, + required this.uid}); + + factory Institution.fromJson(Map json) { + var systemModuleList = List.empty(growable: true); + + for (var item in json['Rendszermodulok']) { + systemModuleList.add(SystemModule.fromJson(item)); + } + + return Institution( + customizationSettings: + CustomizationSettings.fromJson(json['TestreszabasBeallitasok']), + shortName: json['RovidNev'], + systemModuleList: systemModuleList, + uid: json['Uid'], + ); + } +} + +class CustomizationSettings { + final int delayForNotifications; + final bool isClassAverageVisible; + final bool isLessonsThemeVisible; + final String nextServerDeployAsString; + + CustomizationSettings( + {required this.delayForNotifications, + required this.isClassAverageVisible, + required this.isLessonsThemeVisible, + required this.nextServerDeployAsString}); + + factory CustomizationSettings.fromJson(Map json) { + return CustomizationSettings( + delayForNotifications: + json['ErtekelesekMegjelenitesenekKesleltetesenekMerteke'], + isClassAverageVisible: json['IsOsztalyAtlagMegjeleniteseEllenorzoben'], + isLessonsThemeVisible: json['IsTanorakTemajaMegtekinthetoEllenorzoben'], + nextServerDeployAsString: json['KovetkezoTelepitesDatuma']); + } + + @override + String toString() { + return 'CustomizationSettings(' + 'delayForNotifications: $delayForNotifications, ' + 'isClassAverageVisible: $isClassAverageVisible, ' + 'isLessonsThemeVisible: $isLessonsThemeVisible, ' + 'nextServerDeployAsString: "$nextServerDeployAsString"' + ')'; + } +} + +class SystemModule { + final bool isActive; + final String type; + final String? url; + + SystemModule({required this.isActive, required this.type, required this.url}); + + factory SystemModule.fromJson(Map json) { + return SystemModule( + isActive: json['IsAktiv'], type: json['Tipus'], url: json['Url']); + } + + @override + String toString() { + return 'SystemModule(' + 'isActive: $isActive, ' + 'type: "$type", ' + 'url: "$url"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/notice_board.dart b/firka_wear/lib/helpers/api/model/notice_board.dart new file mode 100644 index 0000000..ad709f5 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/notice_board.dart @@ -0,0 +1,42 @@ +class NoticeBoardItem { + final String uid; + final String author; + final DateTime validFrom; + final DateTime validTo; + final String title; + final String contentHTML; + final String contentText; + + NoticeBoardItem( + {required this.uid, + required this.author, + required this.validFrom, + required this.validTo, + required this.title, + required this.contentHTML, + required this.contentText}); + + factory NoticeBoardItem.fromJson(Map json) { + return NoticeBoardItem( + uid: json['Uid'], + author: json['RogzitoNeve'], + validFrom: DateTime.parse(json['ErvenyessegKezdete']), + validTo: DateTime.parse(json['ErvenyessegVege']), + title: json['Cim'], + contentHTML: json['Tartalom'], + contentText: json['TartalomText']); + } + + @override + String toString() { + return 'NoticeBoardItem(' + 'uid: "$uid", ' + 'author: "$author", ' + 'validFrom: "$validFrom", ' + 'validTo: "$validTo", ' + 'title: "$title", ' + 'contentHTML: "$contentHTML", ' + 'contentText: "$contentText"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/omission.dart b/firka_wear/lib/helpers/api/model/omission.dart new file mode 100644 index 0000000..42fbd55 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/omission.dart @@ -0,0 +1,98 @@ +import 'package:firka_wear/helpers/api/model/generic.dart'; +import 'package:firka_wear/helpers/api/model/subject.dart'; + +class Omission { + final String uid; + final Subject subject; + final Class? c; + final DateTime date; + final String teacher; + final NameUidDesc? type; + final NameUidDesc? mode; + final int? lateForMin; + final DateTime createdAt; + final String state; + final NameUidDesc proofType; + final UidObj? classGroup; + + Omission({ + required this.uid, + required this.subject, + required this.c, + required this.date, + required this.teacher, + this.type, + this.mode, + this.lateForMin, + required this.createdAt, + required this.state, + required this.proofType, + this.classGroup, + }); + + factory Omission.fromJson(Map json) { + return Omission( + uid: json['Uid'], + subject: Subject.fromJson(json['Tantargy']), + c: json['Osztaly'] != null ? Class.fromJson(json['Osztaly']) : null, + date: DateTime.parse(json['Datum']), + teacher: json['RogzitoTanarNeve'], + type: json['Tipus'] != null ? NameUidDesc.fromJson(json['Tipus']) : null, + mode: json['Mod'] != null ? NameUidDesc.fromJson(json['Mod']) : null, + lateForMin: json['KesesPercben'], + createdAt: DateTime.parse(json['KeszitesDatuma']), + state: json['IgazolasAllapota'], + proofType: NameUidDesc.fromJson(json['IgazolasTipusa']), + classGroup: json['OsztalyCsoport'] != null + ? UidObj.fromJson(json['OsztalyCsoport']) + : null, + ); + } + + @override + String toString() { + return 'Omission(' + 'uid: "$uid", ' + 'subject: $subject, ' + 'c: $c, ' + 'date: $date, ' + 'teacher: "$teacher", ' + 'type: $type, ' + 'mode: $mode, ' + 'lateForMin: $lateForMin, ' + 'createdAt: $createdAt, ' + 'state: "$state", ' + 'proofType: $proofType, ' + 'classGroup: $classGroup' + ')'; + } +} + +class Class { + final DateTime start; + final DateTime end; + final int classNo; + + Class({ + required this.start, + required this.end, + required this.classNo, + }); + + factory Class.fromJson(Map json) { + return Class( + start: DateTime.parse(json['KezdoDatum']), + end: DateTime.parse(json['VegDatum']), + classNo: json['Oraszam'], + ); + } + + @override + String toString() { + return 'Class(' + 'start: "$start", ' + 'end: "$end", ' + 'classNo: $classNo' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/student.dart b/firka_wear/lib/helpers/api/model/student.dart new file mode 100644 index 0000000..d295363 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/student.dart @@ -0,0 +1,133 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import 'package:firka_wear/helpers/api/model/guardian.dart'; +import 'package:firka_wear/helpers/api/model/institution.dart'; +import 'package:firka_wear/helpers/json_helper.dart'; +import 'package:intl/intl.dart'; + +class Student { + final List addressDataList; + final BankAccount bankAccount; + + // final int yearOfBirth; + // final int monthOfBirth; + // final int dayOfBirth; + final DateTime birthdate; + + final String? emailAddress; + final String name; + final String? phoneNumber; + + final String schoolYearUID; + final String uid; + + final List guardianList; + final String instituteCode; + final String instituteName; + + final Institution institution; + + Student( + {required this.addressDataList, + required this.bankAccount, + // required this.yearOfBirth, + // required this.monthOfBirth, + // required this.dayOfBirth, + required this.birthdate, + required this.emailAddress, + required this.name, + required this.phoneNumber, + required this.schoolYearUID, + required this.uid, + required this.guardianList, + required this.instituteCode, + required this.instituteName, + required this.institution}); + + factory Student.fromJson(Map json) { + var guardianList = List.empty(growable: true); + + for (var item in json['Gondviselok']) { + guardianList.add(Guardian.fromJson(item)); + } + + return Student( + addressDataList: listToTyped(json['Cimek']), + bankAccount: BankAccount.fromJson(json['Bankszamla']), + birthdate: DateFormat('yyyy-M-d').parse( + "${json['SzuletesiEv']}-${json['SzuletesiHonap']}-${json['SzuletesiNap']}"), + emailAddress: json['EmailCim'], + name: json['Nev'], + phoneNumber: json['Telefonszam'], + schoolYearUID: json['TanevUid'], + uid: json['Uid'], + guardianList: guardianList, + instituteCode: json['IntezmenyAzonosito'], + instituteName: json['IntezmenyNev'], + institution: Institution.fromJson(json['Intezmeny'])); + } + + @override + String toString() { + return 'Student(' + 'addressDataList: [$addressDataList], ' + 'bankAccount: $bankAccount, ' + 'birthDate: $birthdate, ' + 'emailAddress: "$emailAddress", ' + 'name: "$name", ' + 'phoneNumber: "$phoneNumber", ' + 'schoolYearUID: "$schoolYearUID", ' + 'uid: "$uid", ' + 'guardianList: [$guardianList], ' + 'instituteCode: "$instituteCode", ' + 'instituteName: "$instituteName", ' + ')'; + } +} + +class BankAccount { + final String? accountNumber; + final bool? isReadOnly; + final String? ownerName; + final int? ownerType; + + BankAccount( + {required this.accountNumber, + required this.isReadOnly, + required this.ownerName, + required this.ownerType}); + + factory BankAccount.fromJson(Map json) { + return BankAccount( + accountNumber: json['BankszamlaSzam'], + isReadOnly: json['IsReadOnly'], + ownerName: json['BankszamlaTulajdonosNeve'], + ownerType: json['BankszamlaTulajdonosTipusId']); + } + + @override + String toString() { + return 'BankAccount(' + 'accountNumber: "$accountNumber", ' + 'isReadOnly: "$isReadOnly", ' + 'ownerName: "$ownerName", ' + 'ownerType: "$ownerType"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/subject.dart b/firka_wear/lib/helpers/api/model/subject.dart new file mode 100644 index 0000000..6204fa0 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/subject.dart @@ -0,0 +1,32 @@ +import 'generic.dart'; + +class Subject { + final String uid; + final String name; + final NameUidDesc category; + final int sortIndex; + + Subject( + {required this.uid, + required this.name, + required this.category, + required this.sortIndex}); + + factory Subject.fromJson(Map json) { + return Subject( + uid: json['Uid'], + name: json['Nev'], + category: NameUidDesc.fromJson(json['Kategoria']), + sortIndex: json['SortIndex']); + } + + @override + String toString() { + return 'Subject(' + 'uid: "$uid", ' + 'name: "$name", ' + 'category: $category, ' + 'sortIndex: $sortIndex' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/test.dart b/firka_wear/lib/helpers/api/model/test.dart new file mode 100644 index 0000000..7d16de2 --- /dev/null +++ b/firka_wear/lib/helpers/api/model/test.dart @@ -0,0 +1,60 @@ +import 'package:firka_wear/helpers/api/model/subject.dart'; + +import 'generic.dart'; + +class Test { + final String uid; + final DateTime date; + final DateTime reportDate; + final String teacherName; + final int lessonNumber; + final Subject subject; + final String subjectName; + final String theme; + final NameUidDesc method; + final UidObj classGroup; + + Test({ + required this.uid, + required this.date, + required this.reportDate, + required this.teacherName, + required this.lessonNumber, + required this.subject, + required this.subjectName, + required this.theme, + required this.method, + required this.classGroup, + }); + + factory Test.fromJson(Map json) { + return Test( + uid: json['Uid'], + date: DateTime.parse(json['Datum']), + reportDate: DateTime.parse(json['BejelentesDatuma']), + teacherName: json['RogzitoTanarNeve'], + lessonNumber: json['OrarendiOraOraszama'], + subject: Subject.fromJson(json['Tantargy']), + subjectName: json['TantargyNeve'], + theme: json['Temaja'], + method: NameUidDesc.fromJson(json['Modja']), + classGroup: UidObj.fromJson(json['OsztalyCsoport']), + ); + } + + @override + String toString() { + return 'Test(' + 'uid: "$uid", ' + 'date: $date, ' + 'reportDate: $reportDate, ' + 'teacherName: "$teacherName", ' + 'lessonNumber: $lessonNumber, ' + 'subject: $subject, ' + 'subjectName: "$subjectName", ' + 'theme: "$theme", ' + 'method: $method, ' + 'classGroup: $classGroup' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/model/timetable.dart b/firka_wear/lib/helpers/api/model/timetable.dart new file mode 100644 index 0000000..154b1ba --- /dev/null +++ b/firka_wear/lib/helpers/api/model/timetable.dart @@ -0,0 +1,149 @@ +import 'package:firka_wear/helpers/api/model/generic.dart'; +import 'package:firka_wear/helpers/api/model/subject.dart'; + +class Lesson { + final String uid; + final String date; + final DateTime start; + final DateTime end; + final String name; + final int? lessonNumber; + final int? lessonSeqNumber; + final NameUid? classGroup; + final String? teacher; + final Subject? subject; + final String? theme; + final String? roomName; + final NameUidDesc type; + final NameUidDesc? studentPresence; + final NameUidDesc state; + final String? substituteTeacher; + final String? homeworkUid; + final String? taskGroupUid; + final String? languageTaskGroupUid; + final String? assessmentUid; + final bool canStudentEditHomework; + final bool isHomeworkComplete; + final List attachments; + final bool isDigitalLesson; + final String? digitalDeviceList; + final String? digitalPlatformType; + final List digitalSupportDeviceTypeList; + final DateTime createdAt; + final DateTime lastModifiedAt; + + Lesson({ + required this.uid, + required this.date, + required this.start, + required this.end, + required this.name, + this.lessonNumber, + this.lessonSeqNumber, + this.classGroup, + this.teacher, + this.subject, + this.theme, + this.roomName, + required this.type, + this.studentPresence, + required this.state, + this.substituteTeacher, + this.homeworkUid, + this.taskGroupUid, + this.languageTaskGroupUid, + this.assessmentUid, + required this.canStudentEditHomework, + required this.isHomeworkComplete, + required this.attachments, + required this.isDigitalLesson, + this.digitalDeviceList, + this.digitalPlatformType, + required this.digitalSupportDeviceTypeList, + required this.createdAt, + required this.lastModifiedAt, + }); + + factory Lesson.fromJson(Map json) { + var attachments = List.empty(growable: true); + var rawAttachments = json['Csatolmanyok']; + + for (var attachment in rawAttachments) { + attachments.add(NameUid.fromJson(attachment)); + } + return Lesson( + uid: json['Uid'], + date: json['Datum'], + start: DateTime.parse(json['KezdetIdopont']), + end: DateTime.parse(json['VegIdopont']), + name: json['Nev'], + lessonNumber: json['Oraszam'], + lessonSeqNumber: json['OraEvesSorszama'], + classGroup: json['OsztalyCsoport'] != null + ? NameUid.fromJson(json['OsztalyCsoport']) + : null, + teacher: json['TanarNeve'], + subject: + json['Tantargy'] != null ? Subject.fromJson(json['Tantargy']) : null, + theme: json['Tema'], + roomName: json['TeremNeve'], + type: NameUidDesc.fromJson(json['Tipus']), + studentPresence: json['TanuloJelenlet'] != null + ? NameUidDesc.fromJson(json['TanuloJelenlet']) + : null, + state: NameUidDesc.fromJson(json['Allapot']), + substituteTeacher: json['HelyettesTanarNeve'], + homeworkUid: json['HaziFeladatUid'], + taskGroupUid: json['FeladatGroupUid'], + languageTaskGroupUid: json['NyelviFeladatGroupUid'], + assessmentUid: json['BejelentettSzamonkeresUid'], + canStudentEditHomework: json['IsTanuloHaziFeladatEnabled'], + isHomeworkComplete: json['IsHaziFeladatMegoldva'], + attachments: attachments, + isDigitalLesson: json['IsDigitalisOra'], + digitalDeviceList: json['DigitalisEszkozTipus'], + digitalPlatformType: json['DigitalisPlatformTipus'], + digitalSupportDeviceTypeList: + json['DigitalisTamogatoEszkozTipusList'] != null + ? List.from(json['DigitalisTamogatoEszkozTipusList']) + : List.empty(), + createdAt: DateTime.parse(json['Letrehozas']), + lastModifiedAt: DateTime.parse(json['UtolsoModositas']), + ); + } + + @override + String toString() { + return 'Lesson(' + 'uid: "$uid", ' + 'date: "$date", ' + 'start: $start, ' + 'end: $end, ' + 'name: "$name", ' + 'lessonNumber: $lessonNumber, ' + 'lessonSeqNumber: $lessonSeqNumber, ' + 'classGroup: $classGroup, ' + 'teacher: "$teacher", ' + 'subject: $subject, ' + 'theme: "$theme", ' + 'roomName: "$roomName", ' + 'type: $type, ' + 'studentPresence: $studentPresence, ' + 'state: $state, ' + 'substituteTeacher: "$substituteTeacher", ' + 'homeworkUid: "$homeworkUid", ' + 'taskGroupUid: "$taskGroupUid", ' + 'languageTaskGroupUid: "$languageTaskGroupUid", ' + 'assessmentUid: "$assessmentUid", ' + 'canStudentEditHomework: $canStudentEditHomework, ' + 'isHomeworkComplete: $isHomeworkComplete, ' + 'attachments: $attachments, ' + 'isDigitalLesson: $isDigitalLesson, ' + 'digitalDeviceList: "$digitalDeviceList", ' + 'digitalPlatformType: "$digitalPlatformType", ' + 'digitalSupportDeviceTypeList: $digitalSupportDeviceTypeList, ' + 'create: $createdAt, ' + 'lastModified: $lastModifiedAt' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/resp/token_grant.dart b/firka_wear/lib/helpers/api/resp/token_grant.dart new file mode 100644 index 0000000..6c05232 --- /dev/null +++ b/firka_wear/lib/helpers/api/resp/token_grant.dart @@ -0,0 +1,54 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +class TokenGrantResponse { + final String idToken; + final String accessToken; + final int expiresIn; + final String tokenType; + final String refreshToken; + final String scope; + + TokenGrantResponse( + {required this.idToken, + required this.accessToken, + required this.expiresIn, + required this.tokenType, + required this.refreshToken, + required this.scope}); + + factory TokenGrantResponse.fromJson(Map json) { + return TokenGrantResponse( + idToken: json['id_token'], + accessToken: json['access_token'], + expiresIn: json['expires_in'], + tokenType: json['token_type'], + refreshToken: json['refresh_token'], + scope: json['scope']); + } + + @override + String toString() { + return 'TokenGrant(idToken: "$idToken", accessToken: "$accessToken", ' + 'expiresIn: $expiresIn, ' + 'tokenType: "$tokenType", ' + 'refreshToken: "$refreshToken", ' + 'scope: "$scope"' + ')'; + } +} diff --git a/firka_wear/lib/helpers/api/token_grant.dart b/firka_wear/lib/helpers/api/token_grant.dart new file mode 100644 index 0000000..2885e69 --- /dev/null +++ b/firka_wear/lib/helpers/api/token_grant.dart @@ -0,0 +1,90 @@ +/* + Firka, alternative e-Kréta client. + Copyright (C) 2025 QwIT Development + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import 'package:dio/dio.dart'; +import 'package:firka_wear/helpers/api/resp/token_grant.dart'; +import 'package:firka_wear/helpers/db/models/token_model.dart'; + +import '../../main.dart'; +import 'consts.dart'; + +Future getAccessToken(String code) async { + final headers = const { + "content-type": "application/x-www-form-urlencoded; charset=UTF-8", + "accept": "*/*", + "user-agent": "eKretaStudent/264745 CFNetwork/1494.0.7 Darwin/23.4.0", + }; + + final formData = { + "code": code, + "code_verifier": "DSpuqj_HhDX4wzQIbtn8lr8NLE5wEi1iVLMtMK0jY6c", + "redirect_uri": + "https://mobil.e-kreta.hu/ellenorzo-student/prod/oauthredirect", + "client_id": Constants.clientId, + "grant_type": "authorization_code", + }; + + try { + final response = await dio.post(KretaEndpoints.tokenGrantUrl, + options: Options(headers: headers), data: formData); + + switch (response.statusCode) { + case 200: + return TokenGrantResponse.fromJson(response.data); + case 401: + throw Exception("Invalid grant"); + default: + throw Exception( + "Failed to get access token, response code: ${response.statusCode}"); + } + } catch (e) { + rethrow; + } +} + +Future extendToken(TokenModel model) async { + final headers = const { + "content-type": "application/x-www-form-urlencoded; charset=UTF-8", + "accept": "*/*", + "user-agent": "eKretaStudent/264745 CFNetwork/1494.0.7 Darwin/23.4.0", + }; + + final formData = { + "institute_code": model.iss!, + "refresh_token": model.refreshToken!, + "grant_type": "refresh_token", + "client_id": Constants.clientId, + }; + + try { + final response = await dio.post(KretaEndpoints.tokenGrantUrl, + options: Options(headers: headers), data: formData); + + switch (response.statusCode) { + case 200: + return TokenGrantResponse.fromJson(response.data); + case 401: + throw Exception("Invalid grant"); + default: + throw Exception( + "Failed to get access token, response code: ${response.statusCode}"); + } + } catch (e) { + rethrow; + } +} diff --git a/firka_wear/lib/helpers/db/models/app_settings_model.dart b/firka_wear/lib/helpers/db/models/app_settings_model.dart new file mode 100644 index 0000000..de9a71a --- /dev/null +++ b/firka_wear/lib/helpers/db/models/app_settings_model.dart @@ -0,0 +1,12 @@ +import 'package:isar/isar.dart'; + +part 'app_settings_model.g.dart'; + +@collection +class AppSettingsModel { + Id? id; + bool? useCustomHost; + String? customHost; + + AppSettingsModel(); +} diff --git a/firka_wear/lib/helpers/db/models/app_settings_model.g.dart b/firka_wear/lib/helpers/db/models/app_settings_model.g.dart new file mode 100644 index 0000000..37b7cc3 --- /dev/null +++ b/firka_wear/lib/helpers/db/models/app_settings_model.g.dart @@ -0,0 +1,571 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'app_settings_model.dart'; + +// ************************************************************************** +// IsarCollectionGenerator +// ************************************************************************** + +// coverage:ignore-file +// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types + +extension GetAppSettingsModelCollection on Isar { + IsarCollection get appSettingsModels => this.collection(); +} + +const AppSettingsModelSchema = CollectionSchema( + name: r'AppSettingsModel', + id: -638838212012723081, + properties: { + r'customHost': PropertySchema( + id: 0, + name: r'customHost', + type: IsarType.string, + ), + r'useCustomHost': PropertySchema( + id: 1, + name: r'useCustomHost', + type: IsarType.bool, + ) + }, + estimateSize: _appSettingsModelEstimateSize, + serialize: _appSettingsModelSerialize, + deserialize: _appSettingsModelDeserialize, + deserializeProp: _appSettingsModelDeserializeProp, + idName: r'ignored', + indexes: {}, + links: {}, + embeddedSchemas: {}, + getId: _appSettingsModelGetId, + getLinks: _appSettingsModelGetLinks, + attach: _appSettingsModelAttach, + version: '3.1.0+1', +); + +int _appSettingsModelEstimateSize( + AppSettingsModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + { + final value = object.customHost; + if (value != null) { + bytesCount += 3 + value.length * 3; + } + } + return bytesCount; +} + +void _appSettingsModelSerialize( + AppSettingsModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeString(offsets[0], object.customHost); + writer.writeBool(offsets[1], object.useCustomHost); +} + +AppSettingsModel _appSettingsModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = AppSettingsModel(); + object.customHost = reader.readStringOrNull(offsets[0]); + object.id = id; + object.useCustomHost = reader.readBoolOrNull(offsets[1]); + return object; +} + +P _appSettingsModelDeserializeProp