From ba209017e27ea9378cc46e5857849107bbfa49ae Mon Sep 17 00:00:00 2001 From: Arne Date: Sat, 31 Aug 2024 20:41:31 +0200 Subject: [PATCH] Initial rebase for monocles chat 1.8 --- .builds/debian-stable.yml | 59 + .circleci/config.yml | 77 - .project | 34 - .woodpecker.yml | 7 + CHANGELOG.md | 1210 +++- Gemfile | 6 + Gemfile.lock | 221 + README-en.md | 149 - README-fr.md | 135 - README.md | 117 +- art/LICENSE | 425 ++ art/conversations_mono.svg | 337 ++ art/conversations_mono_dashed.svg | 400 ++ art/date_bubble_grey.svg | 168 + art/date_bubble_white.svg | 168 + art/flip_camera_android-black-24dp.svg | 1 + art/ic_launcher.svg | 25 + art/ic_missed_call_notification.svg | 344 ++ art/ic_no_results_black.svg | 54 + art/ic_no_results_white.svg | 54 + art/ic_notifications_none_white80.svg | 54 + art/ic_notifications_off_white80.svg | 54 + art/ic_notifications_paused_white80.svg | 54 + art/ic_notifications_white80.svg | 54 + art/ic_search_black.svg | 54 + art/ic_search_white.svg | 54 + art/ic_secure_indicator.xcf | Bin 0 -> 1240 bytes art/ic_send_cancel_away.svg | 54 + art/ic_send_cancel_dnd.svg | 54 + art/ic_send_cancel_offline.svg | 54 + art/ic_send_cancel_offline_white.svg | 54 + art/ic_send_cancel_online.svg | 54 + art/ic_send_location_away.svg | 54 + art/ic_send_location_dnd.svg | 54 + art/ic_send_location_offline.svg | 54 + art/ic_send_location_offline_white.svg | 54 + art/ic_send_location_online.svg | 54 + art/ic_send_photo_away.svg | 60 + art/ic_send_photo_dnd.svg | 60 + art/ic_send_photo_offline.svg | 60 + art/ic_send_photo_offline_white.svg | 60 + art/ic_send_photo_online.svg | 60 + art/ic_send_picture_away.svg | 55 + art/ic_send_picture_dnd.svg | 55 + art/ic_send_picture_offline.svg | 55 + art/ic_send_picture_offline_white.svg | 55 + art/ic_send_picture_online.svg | 55 + art/ic_send_text_away.svg | 69 + art/ic_send_text_dnd.svg | 69 + art/ic_send_text_offline.svg | 69 + art/ic_send_text_offline_white.svg | 70 + art/ic_send_text_online.svg | 69 + art/ic_send_videocam_away.svg | 54 + art/ic_send_videocam_dnd.svg | 54 + art/ic_send_videocam_offline.svg | 54 + art/ic_send_videocam_offline_white.svg | 54 + art/ic_send_videocam_online.svg | 55 + art/ic_send_voice_away.svg | 54 + art/ic_send_voice_dnd.svg | 54 + art/ic_send_voice_offline.svg | 54 + art/ic_send_voice_offline_white.svg | 54 + art/ic_send_voice_online.svg | 54 + art/ic_verified_fingerprint.svg | 54 + art/logo.png | Bin 0 -> 43688 bytes art/main_logo.svg | 1 + art/marker.svg | 110 + art/message_bubble_received.svg | 182 + art/message_bubble_received_dark.svg | 182 + art/message_bubble_received_grey.svg | 167 + art/message_bubble_received_obsidian.svg | 182 + art/message_bubble_received_warning.svg | 165 + art/message_bubble_received_white.svg | 165 + art/message_bubble_sent.svg | 165 + art/message_bubble_sent_grey.svg | 167 + art/omemo_logo.svg | 273 + art/open_pdf_black.svg | 55 + art/open_pdf_white.svg | 55 + art/play_gif_black.svg | 68 + art/play_gif_white.svg | 68 + art/play_video_black.svg | 59 + art/play_video_white.svg | 59 + art/qrcode-scan.svg | 48 + art/quicksy.svg | 366 ++ art/quicksy_main_logo.svg | 1 + art/quicksy_mono.svg | 181 + art/quicksy_splash_logo.svg | 1 + art/render.rb | 157 + art/splash_logo.svg | 1 + build.gradle | 345 +- crowdin.yml | 6 - docs/MISSION.md | 25 - docs/XEPs.md | 32 - docs/encryption.md | 18 - docs/observations.md | 97 - docs/user/backup.md | 19 + docs/user/migrating_to_new_device.md | 41 + drawable/baseline_tour_black_48.png | Bin 273 -> 0 bytes drawable/baseline_tour_white_48.png | Bin 277 -> 0 bytes drawable/chat_graphic.svg | 1 - .../ic_account_card_details_grey600_48dp.png | Bin 380 -> 0 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 1002 -> 0 bytes drawable/ic_account_plus_grey600_48dp.png | Bin 795 -> 0 bytes drawable/ic_action_chat.png | Bin 174 -> 0 bytes drawable/ic_action_reply.png | Bin 343 -> 0 bytes drawable/ic_add_white_24dp.png | Bin 141 -> 0 bytes drawable/ic_android_black_48dp.png | Bin 410 -> 0 bytes drawable/ic_android_grey600_48dp.png | Bin 511 -> 0 bytes drawable/ic_android_white_48dp.png | Bin 416 -> 0 bytes drawable/ic_archive_black_48dp.png | Bin 309 -> 0 bytes drawable/ic_archive_white_24dp.png | Bin 278 -> 0 bytes drawable/ic_archive_white_48dp.png | Bin 306 -> 0 bytes drawable/ic_arrow_back_white_24dp.png | Bin 115 -> 0 bytes drawable/ic_attach_camera.png | Bin 236 -> 0 bytes drawable/ic_attach_camera_white.png | Bin 242 -> 0 bytes drawable/ic_attach_document.png | Bin 152 -> 0 bytes drawable/ic_attach_document_white.png | Bin 161 -> 0 bytes drawable/ic_attach_file_white_24dp.png | Bin 253 -> 0 bytes drawable/ic_attach_location.png | Bin 261 -> 0 bytes drawable/ic_attach_location_white.png | Bin 269 -> 0 bytes drawable/ic_attach_photo.png | Bin 190 -> 0 bytes drawable/ic_attach_photo_white.png | Bin 198 -> 0 bytes drawable/ic_attach_record.png | Bin 235 -> 0 bytes drawable/ic_attach_record_white.png | Bin 256 -> 0 bytes drawable/ic_attach_video.png | Bin 133 -> 0 bytes drawable/ic_attach_videocam.png | Bin 137 -> 0 bytes drawable/ic_attach_videocam_white.png | Bin 141 -> 0 bytes drawable/ic_attachment_black_24dp.png | Bin 217 -> 0 bytes drawable/ic_attachment_white_24dp.png | Bin 584 -> 0 bytes drawable/ic_audio_grey600_48dp.png | Bin 626 -> 0 bytes drawable/ic_autorenew_white_24dp.png | Bin 274 -> 0 bytes drawable/ic_backup_black_48dp.png | Bin 813 -> 0 bytes drawable/ic_backup_white_48dp.png | Bin 813 -> 0 bytes drawable/ic_bluetooth_audio_black_24dp.png | Bin 283 -> 0 bytes drawable/ic_book_black_48dp.png | Bin 382 -> 0 bytes drawable/ic_book_white_48dp.png | Bin 390 -> 0 bytes drawable/ic_calendar_grey600_48dp.png | Bin 230 -> 0 bytes drawable/ic_call_black_24dp.png | Bin 244 -> 0 bytes drawable/ic_call_end_white_48dp.png | Bin 389 -> 0 bytes drawable/ic_call_made_black_18dp.png | Bin 132 -> 0 bytes drawable/ic_call_made_white_18dp.png | Bin 135 -> 0 bytes drawable/ic_call_missed_black_18dp.png | Bin 141 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 134 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 136 -> 0 bytes drawable/ic_call_missed_white_18dp.png | Bin 147 -> 0 bytes drawable/ic_call_received_black_18dp.png | Bin 133 -> 0 bytes drawable/ic_call_received_white_18dp.png | Bin 140 -> 0 bytes drawable/ic_call_white_24dp.png | Bin 246 -> 0 bytes drawable/ic_call_white_48dp.png | Bin 420 -> 0 bytes drawable/ic_cancel_black_24dp.png | Bin 303 -> 0 bytes drawable/ic_cancel_white_24dp.png | Bin 314 -> 0 bytes drawable/ic_chat_white_24dp.png | Bin 154 -> 0 bytes drawable/ic_check_all_black_18dp.png | Bin 468 -> 0 bytes drawable/ic_check_all_white_18dp.png | Bin 473 -> 0 bytes drawable/ic_check_black_18dp.png | Bin 404 -> 0 bytes drawable/ic_check_white_18dp.png | Bin 408 -> 0 bytes drawable/ic_clear_white_48dp.png | Bin 257 -> 0 bytes drawable/ic_close_white_24dp.png | Bin 243 -> 0 bytes drawable/ic_cloud_download_white_24dp.png | Bin 262 -> 0 bytes drawable/ic_cloud_white_24dp.png | Bin 209 -> 0 bytes drawable/ic_contact_white_24dp.png | Bin 201 -> 0 bytes drawable/ic_contacts_white_24dp.png | Bin 320 -> 0 bytes drawable/ic_content_copy_grey600_24dp.png | Bin 138 -> 0 bytes drawable/ic_content_copy_white_24dp.png | Bin 148 -> 0 bytes drawable/ic_delete_black_24dp.png | Bin 410 -> 0 bytes drawable/ic_delete_grey600_24dp.png | Bin 120 -> 0 bytes drawable/ic_delete_white_24dp.png | Bin 118 -> 0 bytes drawable/ic_description_black_48dp.png | Bin 247 -> 0 bytes drawable/ic_description_white_48dp.png | Bin 257 -> 0 bytes drawable/ic_done_black_24dp.png | Bin 130 -> 0 bytes drawable/ic_download_grey600_48dp.png | Bin 187 -> 0 bytes drawable/ic_edit_black_24dp.png | Bin 165 -> 0 bytes drawable/ic_edit_white_24dp.png | Bin 193 -> 0 bytes drawable/ic_email_open_outline_white_24dp.png | Bin 653 -> 0 bytes drawable/ic_error_white_24dp.png | Bin 232 -> 0 bytes drawable/ic_event_black_48dp.png | Bin 228 -> 0 bytes drawable/ic_event_white_48dp.png | Bin 221 -> 0 bytes drawable/ic_file_download_white_24dp.png | Bin 131 -> 0 bytes drawable/ic_file_grey600_48dp.png | Bin 252 -> 0 bytes drawable/ic_file_pdf_grey600_48dp.png | Bin 750 -> 0 bytes .../ic_flip_camera_android_black_24dp.png | Bin 472 -> 0 bytes drawable/ic_forward_white_24dp.png | Bin 125 -> 0 bytes drawable/ic_group_add_white_24dp.png | Bin 234 -> 0 bytes drawable/ic_group_white_24dp.png | Bin 217 -> 0 bytes drawable/ic_headset_black_24dp.png | Bin 230 -> 0 bytes drawable/ic_headset_black_48dp.png | Bin 466 -> 0 bytes drawable/ic_headset_white_48dp.png | Bin 473 -> 0 bytes drawable/ic_help_black_24dp.png | Bin 298 -> 0 bytes drawable/ic_help_black_48dp.png | Bin 656 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 670 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 704 -> 0 bytes drawable/ic_help_circle_white_24dp.png | Bin 656 -> 0 bytes drawable/ic_help_white_24dp.png | Bin 304 -> 0 bytes drawable/ic_help_white_48dp.png | Bin 659 -> 0 bytes drawable/ic_hourglass_empty_white_24dp.png | Bin 135 -> 0 bytes drawable/ic_image_black_24dp.png | Bin 183 -> 0 bytes drawable/ic_image_black_48dp.png | Bin 295 -> 0 bytes drawable/ic_image_grey600_48dp.png | Bin 405 -> 0 bytes drawable/ic_image_white_24dp.png | Bin 506 -> 0 bytes drawable/ic_image_white_48dp.png | Bin 304 -> 0 bytes drawable/ic_input_white_24dp.png | Bin 239 -> 0 bytes drawable/ic_link_off_white_24dp.png | Bin 337 -> 0 bytes drawable/ic_link_white_24dp.png | Bin 322 -> 0 bytes drawable/ic_lock_black_18dp.png | Bin 225 -> 0 bytes drawable/ic_lock_open_white_24dp.png | Bin 211 -> 0 bytes drawable/ic_lock_white_18dp.png | Bin 229 -> 0 bytes drawable/ic_lock_white_24dp.png | Bin 217 -> 0 bytes drawable/ic_map_marker_grey600_48dp.png | Bin 557 -> 0 bytes drawable/ic_menu_white_24dp.png | Bin 366 -> 0 bytes drawable/ic_mic_black_24dp.png | Bin 232 -> 0 bytes drawable/ic_mic_black_48dp.png | Bin 487 -> 0 bytes drawable/ic_mic_off_black_24dp.png | Bin 271 -> 0 bytes drawable/ic_mic_white_48dp.png | Bin 489 -> 0 bytes drawable/ic_missed_call_notification.png | Bin 488 -> 0 bytes drawable/ic_mode_edit_black_18dp.png | Bin 166 -> 0 bytes drawable/ic_mode_edit_white_18dp.png | Bin 171 -> 0 bytes drawable/ic_navigation_white_24dp.png | Bin 250 -> 0 bytes drawable/ic_new_releases_black_24dp.png | Bin 277 -> 0 bytes drawable/ic_new_releases_white_24dp.png | Bin 287 -> 0 bytes drawable/ic_no_results_background_black.png | Bin 1763 -> 0 bytes drawable/ic_no_results_background_white.png | Bin 1819 -> 0 bytes drawable/ic_notification.png | Bin 529 -> 0 bytes drawable/ic_notifications_black_24dp.png | Bin 191 -> 0 bytes drawable/ic_notifications_grey600_24dp.png | Bin 197 -> 0 bytes drawable/ic_notifications_none_black_24dp.png | Bin 226 -> 0 bytes drawable/ic_notifications_none_white_24dp.png | Bin 234 -> 0 bytes drawable/ic_notifications_off_black_24dp.png | Bin 339 -> 0 bytes drawable/ic_notifications_off_white_24dp.png | Bin 338 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 253 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 256 -> 0 bytes drawable/ic_notifications_white_24dp.png | Bin 194 -> 0 bytes drawable/ic_open_in_new_white_24dp.png | Bin 292 -> 0 bytes drawable/ic_pause_black_36dp.png | Bin 117 -> 0 bytes drawable/ic_pause_white_36dp.png | Bin 119 -> 0 bytes drawable/ic_person_add_white_24dp.png | Bin 210 -> 0 bytes drawable/ic_person_black_48dp.png | Bin 359 -> 0 bytes drawable/ic_person_white_48dp.png | Bin 351 -> 0 bytes drawable/ic_phone_in_talk_black_18dp.png | Bin 253 -> 0 bytes drawable/ic_phone_in_talk_white_18dp.png | Bin 261 -> 0 bytes drawable/ic_phone_in_talk_white_24dp.png | Bin 325 -> 0 bytes drawable/ic_play_arrow_black_36dp.png | Bin 194 -> 0 bytes drawable/ic_play_arrow_white_36dp.png | Bin 195 -> 0 bytes drawable/ic_play_circle_filled_white_48dp.png | Bin 464 -> 0 bytes drawable/ic_public_white_24dp.png | Bin 607 -> 0 bytes drawable/ic_qrcode_grey600_24dp.png | Bin 439 -> 0 bytes drawable/ic_qrcode_scan_white_24dp.png | Bin 188 -> 0 bytes drawable/ic_qrcode_white_24dp.png | Bin 435 -> 0 bytes drawable/ic_question_answer_white_24dp.png | Bin 137 -> 0 bytes drawable/ic_read_indicator.png | Bin 179 -> 0 bytes drawable/ic_received_indicator.png | Bin 257 -> 0 bytes drawable/ic_refresh_grey600_24dp.png | Bin 277 -> 0 bytes drawable/ic_refresh_white_24dp.png | Bin 295 -> 0 bytes drawable/ic_replay_white_48dp.png | Bin 457 -> 0 bytes drawable/ic_reply_circle_black_24dp.png | Bin 502 -> 0 bytes drawable/ic_reply_white_24dp.png | Bin 503 -> 0 bytes drawable/ic_room_black_48dp.png | Bin 524 -> 0 bytes drawable/ic_room_white_24dp.png | Bin 283 -> 0 bytes drawable/ic_room_white_48dp.png | Bin 537 -> 0 bytes drawable/ic_save_black_24dp.png | Bin 171 -> 0 bytes drawable/ic_save_white_24dp.png | Bin 175 -> 0 bytes drawable/ic_search_background_black.png | Bin 1667 -> 0 bytes drawable/ic_search_background_white.png | Bin 1725 -> 0 bytes drawable/ic_search_white_24dp.png | Bin 267 -> 0 bytes drawable/ic_security_black_24dp.png | Bin 287 -> 0 bytes drawable/ic_security_white_24dp.png | Bin 637 -> 0 bytes drawable/ic_send_attachment_away.svg | 34 - drawable/ic_send_attachment_dnd.svg | 34 - drawable/ic_send_attachment_offline.svg | 34 - drawable/ic_send_attachment_offline_white.svg | 34 - drawable/ic_send_attachment_online.svg | 34 - drawable/ic_send_cancel_away.svg | 6 - drawable/ic_send_cancel_dnd.svg | 6 - drawable/ic_send_cancel_offline.svg | 6 - drawable/ic_send_cancel_offline_white.svg | 34 - drawable/ic_send_cancel_online.svg | 6 - drawable/ic_send_location_away.svg | 6 - drawable/ic_send_location_dnd.svg | 6 - drawable/ic_send_location_offline.svg | 6 - drawable/ic_send_location_offline_white.svg | 34 - drawable/ic_send_location_online.svg | 6 - drawable/ic_send_photo_away.svg | 7 - drawable/ic_send_photo_dnd.svg | 7 - drawable/ic_send_photo_offline.svg | 41 - drawable/ic_send_photo_offline_white.svg | 38 - drawable/ic_send_photo_online.svg | 7 - drawable/ic_send_picture_away.svg | 6 - drawable/ic_send_picture_dnd.svg | 6 - drawable/ic_send_picture_offline.svg | 6 - drawable/ic_send_picture_offline_white.svg | 34 - drawable/ic_send_picture_online.svg | 6 - drawable/ic_send_text_away.svg | 39 - drawable/ic_send_text_dnd.svg | 39 - drawable/ic_send_text_offline.svg | 39 - drawable/ic_send_text_offline_white.svg | 34 - drawable/ic_send_text_online.svg | 34 - drawable/ic_send_videocam_away.svg | 6 - drawable/ic_send_videocam_dnd.svg | 6 - drawable/ic_send_videocam_offline.svg | 6 - drawable/ic_send_videocam_offline_white.svg | 34 - drawable/ic_send_videocam_online.svg | 6 - drawable/ic_send_voice_away.svg | 6 - drawable/ic_send_voice_dnd.svg | 6 - drawable/ic_send_voice_offline.svg | 6 - drawable/ic_send_voice_offline_white.svg | 34 - drawable/ic_send_voice_online.svg | 6 - drawable/ic_settings_black_24dp.png | Bin 322 -> 0 bytes drawable/ic_settings_white_24dp.png | Bin 321 -> 0 bytes drawable/ic_share_black_24dp.png | Bin 573 -> 0 bytes drawable/ic_share_white_24dp.png | Bin 282 -> 0 bytes drawable/ic_speaker_notes_off_white_24dp.png | Bin 201 -> 0 bytes drawable/ic_speaker_notes_white_24dp.png | Bin 134 -> 0 bytes drawable/ic_star_black_24dp.png | Bin 263 -> 0 bytes drawable/ic_star_white_24dp.png | Bin 271 -> 0 bytes drawable/ic_unarchive_white_24dp.png | Bin 279 -> 0 bytes drawable/ic_update_notification.png | Bin 302 -> 0 bytes drawable/ic_verified_fingerprint.png | Bin 677 -> 0 bytes drawable/ic_verified_user_black_18dp.png | Bin 262 -> 0 bytes drawable/ic_verified_user_white_18dp.png | Bin 270 -> 0 bytes drawable/ic_video_grey600_48dp.png | Bin 223 -> 0 bytes drawable/ic_videocam_black_24dp.png | Bin 127 -> 0 bytes drawable/ic_videocam_off_black_24dp.png | Bin 193 -> 0 bytes drawable/ic_videocam_white_24dp.png | Bin 131 -> 0 bytes drawable/ic_voicemail_white_24dp.png | Bin 221 -> 0 bytes drawable/ic_volume_off_black_24dp.png | Bin 279 -> 0 bytes drawable/ic_volume_up_black_24dp.png | Bin 235 -> 0 bytes drawable/ic_vpn_key_white_24dp.png | Bin 201 -> 0 bytes drawable/ic_warning_white_24dp.png | Bin 249 -> 0 bytes drawable/ic_warning_white_48dp.png | Bin 364 -> 0 bytes drawable/ic_wear_reply.png | Bin 429 -> 0 bytes drawable/ic_web_grey600_48.png | Bin 345 -> 0 bytes drawable/intro_account_details_icon.png | Bin 880 -> 0 bytes drawable/intro_account_icon.png | Bin 951 -> 0 bytes drawable/intro_contacts_icon.png | Bin 984 -> 0 bytes drawable/intro_location_icon.png | Bin 1408 -> 0 bytes drawable/intro_memory_icon.png | Bin 694 -> 0 bytes drawable/intro_security_icon.png | Bin 1574 -> 0 bytes drawable/intro_start_chat_icon.png | Bin 794 -> 0 bytes drawable/intro_xmpp_icon.png | Bin 1623 -> 0 bytes drawable/logo_800.png | Bin 12367 -> 0 bytes drawable/logo_actionbar.png | Bin 10192 -> 0 bytes drawable/monocleslogo_chat-signet.svg | 1 - drawable/pencil_overlay.png | Bin 1873 -> 0 bytes drawable/play_gif.png | Bin 286 -> 0 bytes drawable/play_video.png | Bin 720 -> 0 bytes drawable/raster.sh | 36 - drawable/show_pdf.png | Bin 1807 -> 0 bytes git/release/output-metadata.json | 97 - gradle.properties | 22 +- gradlew | 294 +- gradlew.bat | 35 +- libs/AXML/.gitignore | 1 - libs/AXML/build.gradle | 31 - libs/AXML/proguard-rules.pro | 17 - .../main/java/fr/xgouchet/axml/Attribute.java | 66 - .../axml/CompressedXmlDomListener.java | 92 - .../fr/xgouchet/axml/CompressedXmlParser.java | 515 -- .../axml/CompressedXmlParserListener.java | 101 - .../fr/xgouchet/axml/CompressedXmlUtils.java | 60 - monocles.doap | 531 ++ monocles_chat.doap | 579 -- monocleschatFree/debug/output-metadata.json | 73 + playstore/release/output-metadata.json | 72 - proguard-rules.pro | 20 +- settings.gradle | 4 +- .../de/monocles/chat/test/ScreenshotTest.java | 169 + src/androidTest/res/drawable/carrot.webp | Bin 0 -> 19044 bytes src/androidTest/res/drawable/cheogram.png | Bin 0 -> 2897 bytes src/androidTest/res/drawable/komona.webp | Bin 0 -> 93778 bytes src/androidTest/res/drawable/pepper.webp | Bin 0 -> 20734 bytes src/conversations/AndroidManifest.xml | 32 + .../android/da-DK/short_description.txt | 1 + .../android/de-DE/full_description.txt | 39 + .../android/de-DE/short_description.txt | 1 + .../android/en-US/full_description.txt | 19 + .../metadata/android/en-US/images/icon.png | Bin 0 -> 43974 bytes .../android/en-US/short_description.txt | 1 + .../metadata/android/eo/short_description.txt | 1 + .../android/es-ES/full_description.txt | 39 + .../android/es-ES/short_description.txt | 1 + .../android/fi-FI/full_description.txt | 39 + .../android/fi-FI/short_description.txt | 1 + .../android/fr-FR/full_description.txt | 38 + .../android/fr-FR/short_description.txt | 1 + .../android/gl-ES/full_description.txt | 40 + .../android/gl-ES/short_description.txt | 1 + .../android/it-IT/full_description.txt | 39 + .../android/it-IT/short_description.txt | 1 + .../android/ja-JP/short_description.txt | 1 + .../android/pl-PL/full_description.txt | 39 + .../android/pl-PL/short_description.txt | 1 + .../metadata/android/ro/full_description.txt | 38 + .../metadata/android/ro/short_description.txt | 1 + .../android/ru-RU/full_description.txt | 39 + .../android/ru-RU/short_description.txt | 1 + .../metadata/android/sq/full_description.txt | 39 + .../metadata/android/sq/short_description.txt | 1 + .../android/sv-SE/full_description.txt | 39 + .../android/sv-SE/short_description.txt | 1 + .../android/tr-TR/full_description.txt | 39 + .../android/tr-TR/short_description.txt | 1 + .../metadata/android/uk/full_description.txt | 39 + .../metadata/android/uk/short_description.txt | 1 + .../android/zh-CN/full_description.txt | 39 + .../android/zh-CN/short_description.txt | 1 + .../android/zh-TW/full_description.txt | 39 + .../android/zh-TW/short_description.txt | 1 + .../entities/AccountConfiguration.java | 0 .../services/ImportBackupService.java | 508 ++ .../services/QuickConversationsService.java | 38 + .../ui/EasyOnboardingInviteActivity.java | 187 + .../ui/ImportBackupActivity.java | 379 ++ .../conversations/ui/MagicCreateActivity.java | 161 + .../ui/ManageAccountActivity.java | 433 ++ .../conversations/ui/PickServerActivity.java | 97 + .../ui/ShareViaAccountActivity.java | 81 + .../conversations/ui/WelcomeActivity.java | 244 + .../ui/adapter/BackupFileAdapter.java | 169 + .../utils/PhoneNumberUtilWrapper.java | 11 + .../utils/ProvisioningUtils.java | 5 +- .../conversations/utils/SignupUtils.java | 77 + src/conversations/new_launcher-web.png | Bin 0 -> 19483 bytes .../res/drawable-hdpi/main_logo.png | Bin 0 -> 23948 bytes .../res/drawable-hdpi/splash_logo.png | Bin 0 -> 16643 bytes .../res/drawable-mdpi/main_logo.png | Bin 0 -> 15309 bytes .../res/drawable-mdpi/splash_logo.png | Bin 0 -> 10492 bytes .../res/drawable-xhdpi/main_logo.png | Bin 0 -> 33496 bytes .../res/drawable-xhdpi/splash_logo.png | Bin 0 -> 23030 bytes .../res/drawable-xxhdpi/main_logo.png | Bin 0 -> 52900 bytes .../res/drawable-xxhdpi/splash_logo.png | Bin 0 -> 36548 bytes .../res/drawable-xxxhdpi/main_logo.png | Bin 0 -> 74056 bytes .../res/drawable-xxxhdpi/splash_logo.png | Bin 0 -> 50538 bytes .../res/drawable/ic_app_icon_notification.xml | 11 + .../res/drawable/ic_launcher_foreground.xml | 13 + .../res/drawable/ic_launcher_monochrome.xml | 13 + .../res/layout/activity_easy_invite.xml | 85 + .../res/layout/activity_import_backup.xml | 50 + .../res/layout/activity_magic_create.xml | 113 + .../res/layout/activity_pick_server.xml | 96 + .../res/layout/activity_welcome.xml | 96 + .../res/layout/dialog_enter_password.xml | 53 + .../res/menu/easy_onboarding_invite.xml | 10 + src/conversations/res/menu/manageaccounts.xml | 31 + src/conversations/res/menu/welcome_menu.xml | 22 + .../res/mipmap-hdpi/new_launcher.png | Bin 0 -> 2431 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 0 -> 4220 bytes .../res/mipmap-mdpi/new_launcher.png | Bin 0 -> 1788 bytes .../res/mipmap-mdpi/new_launcher_round.png | Bin 0 -> 2767 bytes .../res/mipmap-xhdpi/new_launcher.png | Bin 0 -> 3334 bytes .../res/mipmap-xhdpi/new_launcher_round.png | Bin 0 -> 6040 bytes .../res/mipmap-xxhdpi/new_launcher.png | Bin 0 -> 4837 bytes .../res/mipmap-xxhdpi/new_launcher_round.png | Bin 0 -> 9299 bytes .../res/mipmap-xxxhdpi/new_launcher.png | Bin 0 -> 6584 bytes .../res/mipmap-xxxhdpi/new_launcher_round.png | Bin 0 -> 13131 bytes src/conversations/res/values-ar/strings.xml | 20 + src/conversations/res/values-bg/strings.xml | 18 + .../res/values-bn-rIN/strings.xml | 18 + src/conversations/res/values-ca/strings.xml | 17 + .../res/values-da-rDK/strings.xml | 17 + src/conversations/res/values-de/strings.xml | 17 + src/conversations/res/values-el/strings.xml | 17 + src/conversations/res/values-eo/strings.xml | 20 + src/conversations/res/values-es/strings.xml | 17 + src/conversations/res/values-eu/strings.xml | 9 + .../res/values-fa-rIR/strings.xml | 20 + src/conversations/res/values-fi/strings.xml | 15 + src/conversations/res/values-fr/strings.xml | 17 + src/conversations/res/values-gl/strings.xml | 17 + src/conversations/res/values-hr/strings.xml | 17 + src/conversations/res/values-hu/strings.xml | 17 + src/conversations/res/values-id/strings.xml | 16 + src/conversations/res/values-it/strings.xml | 18 + src/conversations/res/values-ja/strings.xml | 17 + src/conversations/res/values-nl/strings.xml | 17 + src/conversations/res/values-pl/strings.xml | 17 + .../res/values-pt-rBR/strings.xml | 17 + src/conversations/res/values-pt/strings.xml | 2 + .../res/values-ro-rRO/strings.xml | 17 + src/conversations/res/values-ru/strings.xml | 20 + src/conversations/res/values-sk/strings.xml | 15 + src/conversations/res/values-sq/strings.xml | 20 + src/conversations/res/values-sr/strings.xml | 10 + src/conversations/res/values-sv/strings.xml | 19 + src/conversations/res/values-szl/strings.xml | 17 + .../res/values-tr-rTR/strings.xml | 19 + src/conversations/res/values-uk/strings.xml | 20 + src/conversations/res/values-vi/strings.xml | 20 + .../res/values-zh-rCN/strings.xml | 20 + .../res/values-zh-rTW/strings.xml | 20 + .../res/values/colors-themed.xml | 63 + src/conversations/res/values/strings.xml | 16 + .../utils/InstallReferrerUtils.java | 15 + .../monocles/chat/CheogramLicenseChecker.java | 45 + .../utils/InstallReferrerUtils.java | 70 + .../res/values/strings.xml | 5 + src/debug/logo_actionbar_white-playstore.png | Bin 26887 -> 0 bytes .../logo_actionbar_white_background.xml | 4 - src/free/AndroidManifest.xml | 13 + .../monocles/chat/CheogramLicenseChecker.java | 19 + .../services/PushManagementService.java | 33 + src/git/AndroidManifest.xml | 11 - src/git/java/de/monocles/chat/ui/StartUI.java | 42 - .../services/EmojiInitializationService.java | 14 - .../services/PushManagementService.java | 33 - .../utils/InstallReferrerUtils.java | 13 - .../conversations/utils/StorageHelper.java | 80 - src/main/AndroidManifest.xml | 434 +- src/main/assets/animate.min.css | 11 - src/main/assets/font-awesome.min.css | 4 - src/main/assets/fonts/weather.ttf | Bin 99564 -> 0 bytes src/main/assets/images/layers-2x.png | Bin 1259 -> 0 bytes src/main/assets/images/layers.png | Bin 696 -> 0 bytes src/main/assets/images/marker-icon-2x.png | Bin 2464 -> 0 bytes src/main/assets/images/marker-icon.png | Bin 1466 -> 0 bytes src/main/assets/images/marker-shadow.png | Bin 618 -> 0 bytes src/main/assets/jquery.min.js | 2 - src/main/assets/leaflet.css | 640 -- src/main/assets/leaflet.js | 5 - src/main/assets/leaflet.js.map | 1 - src/main/assets/map.html | 84 - .../java/de/monocles/chat/BobTransfer.java | 201 - src/main/java/de/monocles/chat/Config.java | 44 - .../de/monocles/chat/ConversationPage.java | 14 - .../chat/DownloadDefaultStickers.java | 222 - .../java/de/monocles/chat/EmojiSearch.java | 237 - .../java/de/monocles/chat/GifsAdapter.java | 58 - .../de/monocles/chat/InlineImageSpan.java | 59 - .../monocles/chat/KeyboardHeightProvider.java | 69 - .../de/monocles/chat/MonoclesViewPager.java | 43 - .../de/monocles/chat/ReadMoreListener.java | 9 - .../de/monocles/chat/ReadMoreTextView.java | 241 - .../chat/RegisterMonoclesActivity.java | 41 - .../java/de/monocles/chat/SignUpPage.java | 123 - .../java/de/monocles/chat/SpannedToXHTML.java | 191 - .../java/de/monocles/chat/StickerAdapter.java | 58 - .../java/de/monocles/chat/TagEditorView.java | 65 - src/main/java/de/monocles/chat/Util.java | 78 - .../monocles/chat/WebviewAwareViewPager.java | 26 - .../java/de/monocles/chat/WebxdcPage.java | 511 -- .../java/de/monocles/chat/WebxdcStore.java | 94 - .../java/de/monocles/chat/WebxdcUpdate.java | 106 - .../chat/services/ProviderService.java | 92 - .../monocles/chat/ui/PermissionsActivity.java | 106 - src/main/java/de/monocles/chat/utils | 15 - .../eu/siacs/conversations/AppSettings.java | 136 + .../java/eu/siacs/conversations/Config.java | 200 +- .../eu/siacs/conversations/Conversations.java | 118 + .../android/AbstractPhoneContact.java | 2 +- .../android/JabberIdContact.java | 67 +- .../android/PhoneNumberContact.java | 155 - .../crypto/DomainHostnameVerifier.java | 2 +- .../conversations/crypto/OmemoSetting.java | 72 +- .../conversations/crypto/OtrService.java | 312 - .../crypto/PgpDecryptionService.java | 2 +- .../siacs/conversations/crypto/PgpEngine.java | 5 +- .../conversations/crypto/TrustManagers.java | 17 + .../crypto/XmppDomainVerifier.java | 74 +- .../crypto/axolotl/AxolotlService.java | 2 +- .../axolotl/BrokenSessionException.java | 2 +- .../crypto/axolotl/CryptoFailedException.java | 18 +- .../crypto/axolotl/FingerprintStatus.java | 8 +- .../axolotl/NoSessionsCreatedException.java | 2 +- .../NotEncryptedForThisDeviceException.java | 10 +- .../axolotl/OnMessageCreatedCallback.java | 2 +- .../axolotl/OutdatedSenderException.java | 2 +- .../crypto/axolotl/SQLiteAxolotlStore.java | 797 ++- .../crypto/axolotl/XmppAxolotlMessage.java | 11 +- .../crypto/axolotl/XmppAxolotlSession.java | 272 +- .../conversations/crypto/sasl/Anonymous.java | 5 +- .../conversations/crypto/sasl/DigestMd5.java | 6 +- .../conversations/crypto/sasl/External.java | 5 +- .../crypto/sasl/HashedToken.java | 6 +- .../conversations/crypto/sasl/Plain.java | 7 +- .../crypto/sasl/SaslMechanism.java | 32 +- .../crypto/sasl/ScramMechanism.java | 11 +- .../crypto/sasl/ScramSha256.java | 7 +- .../crypto/sasl/ScramSha512.java | 2 +- .../conversations/crypto/sasl/Tokenizer.java | 2 +- .../entities/AbstractEntity.java | 18 +- .../siacs/conversations/entities/Account.java | 105 +- .../conversations/entities/Blockable.java | 14 +- .../conversations/entities/Bookmark.java | 558 +- .../siacs/conversations/entities/Contact.java | 152 +- .../conversations/entities/Conversation.java | 707 +-- .../entities/Conversational.java | 19 +- .../entities/DownloadableFile.java | 137 +- .../eu/siacs/conversations/entities/Edit.java | 38 +- .../entities/IndividualMessage.java | 156 +- .../conversations/entities/ListItem.java | 81 +- .../conversations/entities/MTMDecision.java | 12 +- .../siacs/conversations/entities/Message.java | 511 +- .../conversations/entities/MucOptions.java | 105 +- .../conversations/entities/Presence.java | 154 +- .../entities/PresenceTemplate.java | 116 +- .../conversations/entities/Presences.java | 21 - .../conversations/entities/RawBlockable.java | 14 +- .../conversations/entities/ReadByMarker.java | 274 +- .../entities/ReceiptRequest.java | 66 +- .../siacs/conversations/entities/Roster.java | 149 +- .../entities/RtpSessionStatus.java | 10 +- .../entities/ServiceDiscoveryResult.java | 584 +- .../entities/StubConversation.java | 72 +- .../conversations/entities/Transferable.java | 44 +- .../entities/TransferablePlaceholder.java | 47 +- .../generator/AbstractGenerator.java | 117 +- .../conversations/generator/IqGenerator.java | 97 +- .../generator/MessageGenerator.java | 87 +- .../generator/PresenceGenerator.java | 4 +- .../http/HttpConnectionManager.java | 42 +- .../http/HttpDownloadConnection.java | 51 +- .../http/HttpUploadConnection.java | 44 +- .../eu/siacs/conversations/http/Method.java | 32 +- .../http/NoSSLv3SocketFactory.java | 419 -- .../conversations/http/SlotRequester.java | 6 +- .../http/services/MuclumbusService.java | 8 +- .../conversations/parser/AbstractParser.java | 319 +- .../siacs/conversations/parser/IqParser.java | 9 +- .../conversations/parser/MessageParser.java | 445 +- .../conversations/parser/PresenceParser.java | 123 +- .../persistance/DatabaseBackend.java | 759 +-- .../persistance/FileBackend.java | 2768 ++++----- .../persistance/OnPhoneContactsMerged.java | 2 +- .../persistance/UnifiedPushDatabase.java | 6 +- .../receiver/SystemEventReceiver.java | 41 + .../UnifiedPushDistributor.java | 41 +- .../receiver/WorkManagerEventReceiver.java | 32 + .../services/AbstractConnectionManager.java | 34 +- .../AbstractQuickConversationsService.java | 50 +- .../conversations/services/AlarmReceiver.java | 23 - .../services/AppRTCAudioManager.java | 13 +- .../services/AppRTCBluetoothManager.java | 6 +- .../AttachFileToConversationRunnable.java | 157 +- .../conversations/services/AudioPlayer.java | 480 -- .../conversations/services/AvatarService.java | 1158 ++-- .../services/BarcodeProvider.java | 316 +- .../services/CallIntegration.java | 169 +- .../CallIntegrationConnectionService.java | 92 +- .../services/ChannelDiscoveryService.java | 280 +- .../services/ContactChooserTargetService.java | 6 +- .../conversations/services/EventReceiver.java | 40 - .../services/ExportBackupService.java | 646 -- .../services/ImportBackupService.java | 479 -- .../conversations/services/MediaPlayer.java | 11 +- .../services/MemorizingTrustManager.java | 29 +- .../services/MessageArchiveService.java | 24 +- .../services/MessageSearchTask.java | 174 +- .../services/NotificationService.java | 2183 +++---- .../services/QuickConversationsService.java | 180 - .../services/ShortcutService.java | 53 +- .../services/UnifiedPushBroker.java | 1 + .../conversations/services/UpdateService.java | 244 - .../services/XmppConnectionService.java | 1952 ++----- .../siacs/conversations/ui/AboutActivity.java | 78 +- .../conversations/ui/AboutPreference.java | 15 +- .../AbstractSearchableListItemActivity.java | 179 +- .../conversations/ui/ActionBarActivity.java | 40 +- .../eu/siacs/conversations/ui/Activities.java | 52 + .../siacs/conversations/ui/BaseActivity.java | 53 + .../conversations/ui/BlockContactDialog.java | 125 +- .../conversations/ui/BlocklistActivity.java | 172 +- .../ui/ChangePasswordActivity.java | 196 +- .../ui/ChannelDiscoveryActivity.java | 116 +- ...hooseAccountForProfilePictureActivity.java | 39 +- .../ui/ChooseContactActivity.java | 38 +- .../ui/ConferenceContactDetailsActivity.java | 121 - .../ui/ConferenceDetailsActivity.java | 607 +- .../ui/ContactDetailsActivity.java | 818 +-- .../ui/ConversationActivity.java | 19 + .../ui/ConversationFragment.java | 5196 +++++++---------- .../ui/ConversationsActivity.java | 650 +-- .../ui/ConversationsOverviewFragment.java | 884 ++- .../ui/CreatePrivateGroupChatDialog.java | 36 +- .../ui/CreatePublicChannelDialog.java | 51 +- .../ui/EasyOnboardingInviteActivity.java | 151 - .../conversations/ui/EditAccountActivity.java | 874 +-- .../conversations/ui/EnterJidDialog.java | 185 +- .../conversations/ui/EnterNameActivity.java | 131 - .../ui/ExtendedFabSizeChanger.java | 29 + .../ui/ImportBackupActivity.java | 385 -- .../siacs/conversations/ui/IntroActivity.java | 195 - .../ui/JoinConferenceDialog.java | 195 +- .../conversations/ui/LocationActivity.java | 416 +- .../conversations/ui/MagicCreateActivity.java | 295 - .../ui/ManageAccountActivity.java | 568 -- .../ui/MediaBrowserActivity.java | 191 +- .../conversations/ui/MediaViewerActivity.java | 610 -- .../conversations/ui/MemorizingActivity.java | 124 +- .../ui/MemoryManagementActivity.java | 185 - .../ui/MemoryManagementPref.java | 71 - .../conversations/ui/MucUsersActivity.java | 28 +- .../siacs/conversations/ui/OmemoActivity.java | 353 +- ...ublishGroupChatProfilePictureActivity.java | 31 +- .../ui/PublishProfilePictureActivity.java | 50 +- .../conversations/ui/RecordingActivity.java | 289 + .../siacs/conversations/ui/RecyclerViews.java | 29 + .../conversations/ui/RtpSessionActivity.java | 192 +- .../siacs/conversations/ui/ScanActivity.java | 425 +- .../conversations/ui/SearchActivity.java | 412 +- .../conversations/ui/SetSettingsActivity.java | 178 - .../conversations/ui/SettingsActivity.java | 1537 ----- .../conversations/ui/SettingsFragment.java | 91 - .../ui/ShareLocationActivity.java | 146 +- .../ui/ShareViaAccountActivity.java | 115 - .../conversations/ui/ShareWithActivity.java | 115 +- .../conversations/ui/ShortcutActivity.java | 10 +- .../ui/ShowLocationActivity.java | 258 +- .../ui/StartConversationActivity.java | 774 ++- .../conversations/ui/TimePreference.java | 136 +- .../conversations/ui/TrustKeysActivity.java | 785 +-- .../eu/siacs/conversations/ui/UiCallback.java | 10 +- .../ui/UiInformableCallback.java | 2 +- .../conversations/ui/UpdaterActivity.java | 444 -- .../conversations/ui/UriHandlerActivity.java | 51 +- .../conversations/ui/VerifyOTRActivity.java | 450 -- .../conversations/ui/WelcomeActivity.java | 255 - .../siacs/conversations/ui/XmppActivity.java | 841 +-- .../siacs/conversations/ui/XmppFragment.java | 78 +- .../ui/activity/SettingsActivity.java | 70 + .../ui/activity/result/PickRingtone.java | 51 + .../ui/adapter/AccountAdapter.java | 42 +- .../ui/adapter/BackupFileAdapter.java | 168 - .../adapter/ChannelSearchResultAdapter.java | 39 +- .../ui/adapter/CommandAdapter.java | 69 +- .../ui/adapter/CommandButtonAdapter.java | 22 +- .../ui/adapter/ConversationAdapter.java | 367 +- .../ui/adapter/KnownHostsAdapter.java | 63 +- .../ui/adapter/ListItemAdapter.java | 330 +- .../ui/adapter/MediaAdapter.java | 304 +- .../ui/adapter/MediaPreviewAdapter.java | 224 +- .../ui/adapter/MessageAdapter.java | 2170 +++---- .../ui/adapter/MessageLogAdapter.java | 97 - .../ui/adapter/PresenceTemplateAdapter.java | 84 +- .../conversations/ui/adapter/UserAdapter.java | 82 +- .../ui/adapter/UserPreviewAdapter.java | 61 +- .../ui/adapter/model/MessageLogModel.java | 21 - .../ui/forms/FormBooleanFieldWrapper.java | 80 - .../ui/forms/FormFieldFactory.java | 29 - .../ui/forms/FormFieldWrapper.java | 93 - .../ui/forms/FormJidSingleFieldWrapper.java | 43 - .../ui/forms/FormTextFieldWrapper.java | 97 - .../conversations/ui/forms/FormWrapper.java | 72 - .../settings/AttachmentsSettingsFragment.java | 98 + .../settings/BackupSettingsFragment.java | 166 + .../settings/ConnectionSettingsFragment.java | 73 + .../settings/InterfaceSettingsFragment.java | 108 + .../settings/MainSettingsFragment.java | 46 + .../NotificationsSettingsFragment.java | 205 + .../settings/PrivacySettingsFragment.java | 48 + .../settings/SecuritySettingsFragment.java | 180 + .../fragment/settings/UpSettingsFragment.java | 109 + .../settings/XmppPreferenceFragment.java | 124 + .../ui/interfaces/OnAvatarPublication.java | 4 +- .../ui/interfaces/OnBackendConnected.java | 5 +- .../ui/interfaces/OnConversationArchived.java | 5 +- .../ui/interfaces/OnConversationRead.java | 4 +- .../ui/interfaces/OnConversationSelected.java | 3 +- .../OnConversationsListItemUpdated.java | 4 +- .../ui/interfaces/OnMediaLoaded.java | 2 +- .../interfaces/OnSearchResultsAvailable.java | 5 +- .../conversations/ui/service/AudioPlayer.java | 486 ++ .../ui/service/CameraManager.java | 13 +- .../conversations/ui/text/DividerSpan.java | 32 +- .../conversations/ui/text/FixedURLSpan.java | 117 +- .../conversations/ui/text/QuoteSpan.java | 72 +- .../conversations/ui/util/ActionBarUtil.java | 120 - .../conversations/ui/util/ActivityResult.java | 24 +- .../conversations/ui/util/Attachment.java | 92 +- .../ui/util/AvatarWorkerTask.java | 113 +- .../conversations/ui/util/CallManager.java | 125 - .../conversations/ui/util/ChangeWatcher.java | 30 +- .../ui/util/ConversationMenuConfigurator.java | 190 +- .../conversations/ui/util/CustomTab.java | 30 - .../conversations/ui/util/DateSeparator.java | 21 +- .../ui/util/DelayedHintHelper.java | 21 +- .../util/EditMessageActionModeCallback.java | 2 +- .../ui/util/GetAvatarFromJabberNetwork.java | 127 - .../conversations/ui/util/GridManager.java | 4 +- .../conversations/ui/util/IntroHelper.java | 63 - .../conversations/ui/util/JidDialog.java | 5 +- .../conversations/ui/util/KeyboardUtils.java | 121 - .../conversations/ui/util/ListViewUtils.java | 95 +- .../conversations/ui/util/LocationHelper.java | 100 +- .../{utils => ui/util}/MenuDoubleTabUtil.java | 28 +- .../ui/util/MucConfiguration.java | 103 +- .../ui/util/MucDetailsContextMenuHelper.java | 295 +- .../conversations/ui/util/MyLinkify.java | 313 +- .../ui/util/PendingActionHelper.java | 4 +- .../conversations/ui/util/PendingItem.java | 36 +- .../ui/util/PresenceSelector.java | 14 +- .../conversations/ui/util/QuoteHelper.java | 24 +- .../conversations/ui/util/ScrollState.java | 61 +- .../ui/util/SendButtonAction.java | 91 +- .../conversations/ui/util/SendButtonTool.java | 225 +- .../conversations/ui/util/SettingsUtils.java | 17 +- .../conversations/ui/util/ShareUtil.java | 225 +- .../ui/util/SoftKeyboardUtils.java | 57 +- .../ui/util/StyledAttributes.java | 61 - .../conversations/ui/util/ToolbarUtils.java | 166 + .../conversations/ui/util/UpdateHelper.java | 298 - .../conversations/ui/util/UriHelper.java | 41 +- .../siacs/conversations/ui/util/ViewUtil.java | 59 +- .../ui/widget/ClickableMovementMethod.java | 56 +- .../conversations/ui/widget/DialpadView.java | 12 +- .../ui/widget/DisabledActionModeCallback.java | 33 +- .../conversations/ui/widget/EditMessage.java | 69 +- .../ui/widget/FailedCountCustomView.java | 77 - .../widget/ImmediateAutoCompleteTextView.java | 27 +- .../siacs/conversations/ui/widget/Marker.java | 64 +- .../conversations/ui/widget/MyLocation.java | 61 +- .../conversations/ui/widget/RichLinkView.java | 199 - .../conversations/ui/widget/ScannerView.java | 32 +- .../ui/widget/SquareFrameLayout.java | 2 +- .../ui/widget/SwipeRefreshListFragment.java | 5 +- .../ui/widget/TextInputEditText.java | 12 +- .../ui/widget/UnreadCountCustomView.java | 25 +- .../conversations/utils/AccountUtils.java | 27 +- .../utils/AndroidUsingExecLowPriority.java | 96 +- .../conversations/utils/BackupFileHeader.java | 14 +- .../siacs/conversations/utils/BiConsumer.java | 6 + .../conversations/utils/CameraUtils.java | 221 - .../conversations/utils/Cancellable.java | 60 +- .../utils/CharSequenceUtils.java | 90 +- .../conversations/utils/Compatibility.java | 103 +- .../siacs/conversations/utils/Consumer.java | 6 - .../utils/ConversationsFileObserver.java | 6 +- .../conversations/utils/CryptoHelper.java | 57 +- .../conversations/utils/CursorUtils.java | 3 +- .../utils/EasyOnboardingInvite.java | 10 +- .../siacs/conversations/utils/Emoticons.java | 306 +- .../utils/EncryptDecryptFile.java | 73 - .../conversations/utils/ExceptionHandler.java | 10 +- .../conversations/utils/ExceptionHelper.java | 80 +- .../siacs/conversations/utils/ExifHelper.java | 0 .../siacs/conversations/utils/FileUtils.java | 294 +- .../utils/FileWriterException.java | 2 +- .../utils/FirstStartManager.java | 29 - .../siacs/conversations/utils/FtsUtils.java | 153 +- .../siacs/conversations/utils/GeoHelper.java | 255 +- .../conversations/utils/ImStyleParser.java | 7 +- .../utils/IrregularUnicodeDetector.java | 396 +- .../siacs/conversations/utils/JidHelper.java | 7 +- .../conversations/utils/LanguageUtils.java | 11 +- .../conversations/utils/LocationHelper.java | 51 - .../conversations/utils/LocationProvider.java | 5 +- .../conversations/utils/MessageUtils.java | 9 +- .../siacs/conversations/utils/MetaData.java | 74 - .../siacs/conversations/utils/MimeUtils.java | 69 +- .../utils/NickValidityChecker.java | 2 +- .../utils/OnPhoneContactsLoadedListener.java | 2 +- .../siacs/conversations/utils/PRNGFixes.java | 326 -- .../siacs/conversations/utils/Patterns.java | 128 +- .../conversations/utils/PermissionUtils.java | 44 +- .../conversations/utils/PhoneHelper.java | 54 +- .../conversations/utils/ProviderHelper.java | 13 - .../conversations/utils/QuickLoader.java | 45 +- .../eu/siacs/conversations/utils/Random.java | 2 +- .../ReplacingSerialSingleThreadExecutor.java | 36 +- .../utils/ReplacingTaskManager.java | 37 +- .../siacs/conversations/utils/Resolver.java | 159 +- .../conversations/utils/RichPreview.java | 336 -- .../utils/SerialSingleThreadExecutor.java | 2 - .../conversations/utils/SignupUtils.java | 73 - .../utils/SocksSocketFactory.java | 8 +- .../conversations/utils/StylingHelper.java | 373 +- .../conversations/utils/TLSSocketFactory.java | 14 +- .../conversations/utils/ThemeHelper.java | 759 +-- .../conversations/utils/TimeFrameUtils.java | 2 +- .../conversations/utils/TorServiceUtils.java | 3 +- .../conversations/utils/TrackingHelper.java | 41 - .../utils/TranscoderStrategies.java | 31 +- .../siacs/conversations/utils/UIHelper.java | 298 +- .../conversations/utils/WakeLockHelper.java | 40 +- .../conversations/utils/WeakReferenceSet.java | 32 +- .../conversations/utils/XEP0392Helper.java | 5 +- .../eu/siacs/conversations/utils/XmppUri.java | 20 +- .../worker/ExportBackupWorker.java | 607 ++ .../eu/siacs/conversations/xml/Element.java | 2 +- .../conversations/xml/LocalizedContent.java | 4 +- .../eu/siacs/conversations/xml/Namespace.java | 4 +- .../eu/siacs/conversations/xml/TagWriter.java | 12 +- .../conversations/xml/XmlElementReader.java | 3 +- .../siacs/conversations/xmpp/InvalidJid.java | 194 +- .../java/eu/siacs/conversations/xmpp/Jid.java | 3 +- .../xmpp/OnAdvancedStreamFeaturesLoaded.java | 2 +- .../conversations/xmpp/OnBindListener.java | 2 +- .../xmpp/OnContactStatusChanged.java | 2 +- .../xmpp/OnGatewayPromptResult.java | 7 - .../conversations/xmpp/OnGatewayResult.java | 6 +- .../xmpp/OnIqPacketReceived.java | 2 +- .../xmpp/OnKeyStatusUpdated.java | 2 +- .../xmpp/OnMessagePacketReceived.java | 2 +- .../xmpp/OnNewKeysAvailable.java | 0 .../xmpp/OnPresencePacketReceived.java | 2 +- .../conversations/xmpp/OnStatusChanged.java | 2 +- .../conversations/xmpp/OnUpdateBlocklist.java | 16 +- .../conversations/xmpp/PacketReceived.java | 2 +- .../eu/siacs/conversations/xmpp/Patches.java | 11 - .../siacs/conversations/xmpp/WrappedJid.java | 1 + .../conversations/xmpp/XmppConnection.java | 638 +- .../xmpp/chatstate/ChatState.java | 46 +- .../siacs/conversations/xmpp/forms/Data.java | 184 +- .../siacs/conversations/xmpp/forms/Field.java | 98 +- .../conversations/xmpp/forms/Option.java | 8 +- .../conversations/xmpp/jid/OtrJidHelper.java | 17 - .../xmpp/jingle/AbstractJingleConnection.java | 4 +- .../xmpp/jingle/JingleConnectionManager.java | 70 +- .../jingle/JingleFileTransferConnection.java | 52 +- .../xmpp/jingle/JingleRtpConnection.java | 76 +- .../conversations/xmpp/jingle/Media.java | 1 + .../OnFileTransmissionStatusChanged.java | 4 +- .../xmpp/jingle/OnJinglePacketReceived.java | 2 +- .../xmpp/jingle/OnTransportConnected.java | 4 +- .../xmpp/jingle/RtpCapability.java | 2 +- .../xmpp/jingle/RtpContentMap.java | 77 +- .../xmpp/jingle/SessionDescription.java | 2 +- .../xmpp/jingle/ToneManager.java | 237 + .../xmpp/jingle/TrackWrapper.java | 9 +- .../xmpp/jingle/WebRTCWrapper.java | 42 +- .../xmpp/jingle/stanzas/Content.java | 6 +- .../xmpp/jingle/stanzas/Group.java | 2 +- .../xmpp/jingle/stanzas/IbbTransportInfo.java | 2 +- .../OmemoVerifiedIceUdpTransportInfo.java | 1 - .../xmpp/jingle/stanzas/Proceed.java | 3 +- .../xmpp/jingle/stanzas/Propose.java | 2 +- .../xmpp/jingle/stanzas/Reason.java | 1 + .../xmpp/jingle/stanzas/RtpDescription.java | 18 +- .../SocksByteStreamsTransportInfo.java | 2 +- .../WebRTCDataChannelTransport.java | 23 +- .../conversations/xmpp/mam/MamReference.java | 2 +- .../siacs/conversations/xmpp/pep/Avatar.java | 187 +- .../xmpp/pep/PublishOptions.java | 3 +- .../xmpp/stanzas/AbstractStanza.java | 74 +- .../conversations/xmpp/stanzas/IqPacket.java | 128 +- .../xmpp/stanzas/MessagePacket.java | 160 +- .../xmpp/stanzas/PresencePacket.java | 6 +- .../xmpp/stanzas/csi/ActivePacket.java | 8 +- .../xmpp/stanzas/csi/InactivePacket.java | 8 +- .../xmpp/stanzas/streammgmt/AckPacket.java | 10 +- .../xmpp/stanzas/streammgmt/EnablePacket.java | 10 +- .../stanzas/streammgmt/RequestPacket.java | 8 +- .../xmpp/stanzas/streammgmt/ResumePacket.java | 12 +- .../Activities/LockscreenActivity.java | 221 - .../Interfaces/ActivityChanger.java | 9 - .../easypasscodelock/Utils/EasyLock.java | 69 - .../easypasscodelock/Utils/EasylockSP.java | 73 - .../Utils/LockscreenHandler.java | 51 - src/main/res/anim/dft.xml | 8 - src/main/res/anim/ufb.xml | 8 - src/main/res/animator/fade_in.xml | 8 - src/main/res/animator/fade_left_in.xml | 15 - src/main/res/animator/fade_left_out.xml | 15 - src/main/res/animator/fade_out.xml | 8 - src/main/res/animator/fade_right_in.xml | 15 - src/main/res/animator/fade_right_out.xml | 15 - src/main/res/color/button_state_color.xml | 7 - .../res/color/hint_on_tertiary_container.xml | 3 + .../res/color/text_input_stroke_color.xml | 7 - .../ic_link_off_white_24dp.xml | 26 - .../ic_link_white_24dp.xml | 19 - .../drawable-hdpi/ic_android_black_48dp.png | Bin 710 -> 0 bytes .../drawable-hdpi/ic_android_grey600_48dp.png | Bin 866 -> 0 bytes .../drawable-hdpi/ic_android_white_48dp.png | Bin 733 -> 0 bytes .../ic_attachment_black_24dp.png | Bin 295 -> 0 bytes .../ic_attachment_white_24dp.png | Bin 792 -> 0 bytes .../drawable-hdpi/ic_autorenew_white_24dp.png | Bin 410 -> 0 bytes .../ic_bluetooth_audio_black_24dp.png | Bin 420 -> 0 bytes .../ic_calendar_grey600_48dp.png | Bin 305 -> 0 bytes .../drawable-hdpi/ic_call_made_black_18dp.png | Bin 159 -> 0 bytes .../drawable-hdpi/ic_call_made_white_18dp.png | Bin 174 -> 0 bytes .../ic_call_missed_black_18dp.png | Bin 179 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 180 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 180 -> 0 bytes .../ic_call_missed_white_18dp.png | Bin 191 -> 0 bytes .../ic_call_received_black_18dp.png | Bin 159 -> 0 bytes .../ic_call_received_white_18dp.png | Bin 169 -> 0 bytes .../drawable-hdpi/ic_check_all_black_18dp.png | Bin 520 -> 0 bytes .../drawable-hdpi/ic_check_all_blue_18dp.png | Bin 495 -> 0 bytes .../ic_check_all_green_blue_18dp.png | Bin 561 -> 0 bytes .../drawable-hdpi/ic_check_all_white_18dp.png | Bin 526 -> 0 bytes .../res/drawable-hdpi/ic_check_black_18dp.png | Bin 428 -> 0 bytes .../res/drawable-hdpi/ic_check_blue_18dp.png | Bin 347 -> 0 bytes .../res/drawable-hdpi/ic_check_white_18dp.png | Bin 432 -> 0 bytes .../res/drawable-hdpi/ic_clear_white_48dp.png | Bin 347 -> 0 bytes src/main/res/drawable-hdpi/ic_close_black.png | Bin 236 -> 0 bytes src/main/res/drawable-hdpi/ic_close_white.png | Bin 288 -> 0 bytes .../res/drawable-hdpi/ic_close_white_24dp.png | Bin 277 -> 0 bytes .../ic_content_copy_black_24dp.png | Bin 0 -> 195 bytes .../ic_content_copy_grey600_24dp.png | Bin 208 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 253 -> 0 bytes .../res/drawable-hdpi/ic_done_black_24dp.png | Bin 177 -> 0 bytes .../ic_email_open_outline_white_24dp.png | Bin 785 -> 0 bytes .../drawable-hdpi/ic_format_bold_black.png | Bin 313 -> 0 bytes .../drawable-hdpi/ic_format_bold_white.png | Bin 300 -> 0 bytes .../drawable-hdpi/ic_format_italic_black.png | Bin 262 -> 0 bytes .../drawable-hdpi/ic_format_italic_white.png | Bin 255 -> 0 bytes .../ic_format_monospace_black.png | Bin 212 -> 0 bytes .../ic_format_monospace_white.png | Bin 214 -> 0 bytes .../ic_format_strikethrough_black.png | Bin 378 -> 0 bytes .../ic_format_strikethrough_white.png | Bin 379 -> 0 bytes .../drawable-hdpi/ic_gps_fixed_black_24dp.png | Bin 698 -> 0 bytes .../drawable-hdpi/ic_gps_fixed_white_24dp.png | Bin 728 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 592 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 639 -> 0 bytes .../drawable-hdpi/ic_headset_black_24dp.png | Bin 349 -> 0 bytes .../drawable-hdpi/ic_headset_black_48dp.png | Bin 857 -> 0 bytes .../drawable-hdpi/ic_headset_white_48dp.png | Bin 865 -> 0 bytes src/main/res/drawable-hdpi/ic_help_black.png | Bin 532 -> 0 bytes .../res/drawable-hdpi/ic_help_black_24dp.png | Bin 458 -> 0 bytes .../res/drawable-hdpi/ic_help_black_48dp.png | Bin 1176 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 888 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 1297 -> 0 bytes .../ic_help_circle_white_24dp.png | Bin 966 -> 0 bytes src/main/res/drawable-hdpi/ic_help_white.png | Bin 526 -> 0 bytes .../res/drawable-hdpi/ic_help_white_24dp.png | Bin 476 -> 0 bytes .../res/drawable-hdpi/ic_help_white_48dp.png | Bin 1177 -> 0 bytes .../ic_hourglass_empty_white_24dp.png | Bin 159 -> 0 bytes .../res/drawable-hdpi/ic_input_white_24dp.png | Bin 263 -> 0 bytes .../drawable-hdpi/ic_link_off_white_24dp.png | Bin 493 -> 0 bytes .../res/drawable-hdpi/ic_link_white_24dp.png | Bin 461 -> 0 bytes .../res/drawable-hdpi/ic_lock_black_18dp.png | Bin 363 -> 0 bytes .../drawable-hdpi/ic_lock_open_white_24dp.png | Bin 321 -> 0 bytes .../res/drawable-hdpi/ic_lock_white_18dp.png | Bin 362 -> 0 bytes .../res/drawable-hdpi/ic_lock_white_24dp.png | Bin 320 -> 0 bytes .../ic_map_marker_grey600_48dp.png | Bin 899 -> 0 bytes .../res/drawable-hdpi/ic_menu_white_24dp.png | Bin 417 -> 0 bytes .../res/drawable-hdpi/ic_mic_black_24dp.png | Bin 344 -> 0 bytes .../res/drawable-hdpi/ic_mic_black_48dp.png | Bin 866 -> 0 bytes .../drawable-hdpi/ic_mic_off_black_24dp.png | Bin 402 -> 0 bytes .../res/drawable-hdpi/ic_mic_white_48dp.png | Bin 870 -> 0 bytes .../ic_missed_call_notification.png | Bin 740 -> 810 bytes .../drawable-hdpi/ic_mode_edit_black_18dp.png | Bin 285 -> 0 bytes .../drawable-hdpi/ic_mode_edit_white_18dp.png | Bin 291 -> 0 bytes .../ic_navigation_white_24dp.png | Bin 341 -> 0 bytes .../ic_new_releases_black_24dp.png | Bin 384 -> 0 bytes .../ic_new_releases_white_24dp.png | Bin 395 -> 0 bytes .../ic_no_results_background_black.png | Bin 3629 -> 0 bytes .../ic_no_results_background_white.png | Bin 3793 -> 0 bytes .../res/drawable-hdpi/ic_notification.png | Bin 835 -> 0 bytes .../ic_notifications_grey600_24dp.png | Bin 285 -> 0 bytes .../ic_notifications_none_black_24dp.png | Bin 393 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 405 -> 0 bytes .../ic_notifications_off_black_24dp.png | Bin 573 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 575 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 427 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 437 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 319 -> 0 bytes .../ic_open_in_new_white_24dp.png | Bin 312 -> 0 bytes .../res/drawable-hdpi/ic_pause_black_36dp.png | Bin 148 -> 0 bytes .../res/drawable-hdpi/ic_pause_white_36dp.png | Bin 149 -> 0 bytes .../ic_play_arrow_black_36dp.png | Bin 236 -> 0 bytes .../ic_play_arrow_white_36dp.png | Bin 242 -> 0 bytes .../ic_play_circle_filled_white_48dp.png | Bin 666 -> 0 bytes .../drawable-hdpi/ic_public_white_24dp.png | Bin 774 -> 0 bytes .../drawable-hdpi/ic_qrcode_grey600_24dp.png | Bin 630 -> 0 bytes .../ic_qrcode_scan_white_24dp.png | Bin 284 -> 0 bytes .../drawable-hdpi/ic_qrcode_white_24dp.png | Bin 568 -> 0 bytes .../ic_question_answer_white_24dp.png | Bin 192 -> 0 bytes .../res/drawable-hdpi/ic_read_indicator.png | Bin 272 -> 0 bytes .../drawable-hdpi/ic_received_indicator.png | Bin 356 -> 0 bytes .../drawable-hdpi/ic_refresh_grey600_24dp.png | Bin 429 -> 0 bytes .../drawable-hdpi/ic_refresh_white_24dp.png | Bin 509 -> 0 bytes .../drawable-hdpi/ic_replay_white_48dp.png | Bin 675 -> 0 bytes .../ic_reply_circle_black_24dp.png | Bin 602 -> 0 bytes .../res/drawable-hdpi/ic_reply_white_24dp.png | Bin 615 -> 0 bytes .../res/drawable-hdpi/ic_room_black_48dp.png | Bin 948 -> 0 bytes .../res/drawable-hdpi/ic_room_white_24dp.png | Bin 415 -> 0 bytes .../res/drawable-hdpi/ic_room_white_48dp.png | Bin 966 -> 0 bytes .../res/drawable-hdpi/ic_save_black_24dp.png | Bin 317 -> 0 bytes .../res/drawable-hdpi/ic_save_white_24dp.png | Bin 324 -> 0 bytes .../ic_search_background_black.png | Bin 3446 -> 0 bytes .../ic_search_background_white.png | Bin 3553 -> 0 bytes .../drawable-hdpi/ic_search_white_24dp.png | Bin 425 -> 0 bytes .../drawable-hdpi/ic_security_black_24dp.png | Bin 419 -> 0 bytes .../drawable-hdpi/ic_security_white_24dp.png | Bin 846 -> 0 bytes .../drawable-hdpi/ic_settings_black_24dp.png | Bin 453 -> 0 bytes .../drawable-hdpi/ic_settings_white_24dp.png | Bin 546 -> 0 bytes .../res/drawable-hdpi/ic_share_black_24dp.png | Bin 753 -> 0 bytes .../res/drawable-hdpi/ic_share_white_24dp.png | Bin 427 -> 0 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 285 -> 0 bytes .../ic_speaker_notes_white_24dp.png | Bin 177 -> 0 bytes .../res/drawable-hdpi/ic_star_black_24dp.png | Bin 369 -> 0 bytes .../res/drawable-hdpi/ic_star_white_24dp.png | Bin 370 -> 0 bytes .../drawable-hdpi/ic_unarchive_white_24dp.png | Bin 312 -> 0 bytes .../drawable-hdpi/ic_update_notification.png | Bin 404 -> 0 bytes .../drawable-hdpi/ic_verified_fingerprint.png | Bin 950 -> 0 bytes .../ic_verified_user_black_18dp.png | Bin 471 -> 0 bytes .../ic_verified_user_white_18dp.png | Bin 488 -> 0 bytes .../drawable-hdpi/ic_video_grey600_48dp.png | Bin 352 -> 0 bytes .../drawable-hdpi/ic_videocam_black_24dp.png | Bin 169 -> 0 bytes .../drawable-hdpi/ic_voicemail_white_24dp.png | Bin 478 -> 0 bytes .../ic_volume_off_black_24dp.png | Bin 407 -> 0 bytes .../drawable-hdpi/ic_volume_up_black_24dp.png | Bin 364 -> 0 bytes .../drawable-hdpi/ic_vpn_key_white_24dp.png | Bin 289 -> 0 bytes .../drawable-hdpi/ic_warning_white_24dp.png | Bin 342 -> 0 bytes .../drawable-hdpi/ic_warning_white_48dp.png | Bin 714 -> 0 bytes src/main/res/drawable-hdpi/ic_wear_reply.png | Bin 518 -> 0 bytes .../res/drawable-hdpi/ic_web_grey600_48.png | Bin 476 -> 0 bytes .../intro_account_details_icon.png | Bin 971 -> 0 bytes .../res/drawable-hdpi/intro_account_icon.png | Bin 1330 -> 0 bytes .../res/drawable-hdpi/intro_contacts_icon.png | Bin 1263 -> 0 bytes .../res/drawable-hdpi/intro_location_icon.png | Bin 1867 -> 0 bytes .../res/drawable-hdpi/intro_memory_icon.png | Bin 711 -> 0 bytes .../res/drawable-hdpi/intro_security_icon.png | Bin 1863 -> 0 bytes .../drawable-hdpi/intro_start_chat_icon.png | Bin 1044 -> 0 bytes .../res/drawable-hdpi/intro_xmpp_icon.png | Bin 1976 -> 0 bytes src/main/res/drawable-hdpi/logo_800.png | Bin 15307 -> 0 bytes src/main/res/drawable-hdpi/logo_actionbar.png | Bin 11388 -> 0 bytes src/main/res/drawable-hdpi/marker.png | Bin 1740 -> 3591 bytes src/main/res/drawable-hdpi/open_pdf_black.png | Bin 0 -> 1499 bytes src/main/res/drawable-hdpi/open_pdf_white.png | Bin 0 -> 1569 bytes src/main/res/drawable-hdpi/pencil_overlay.png | Bin 1199 -> 0 bytes src/main/res/drawable-hdpi/play_gif.png | Bin 343 -> 0 bytes src/main/res/drawable-hdpi/play_gif_black.png | Bin 0 -> 761 bytes src/main/res/drawable-hdpi/play_gif_white.png | Bin 0 -> 791 bytes src/main/res/drawable-hdpi/play_video.png | Bin 1031 -> 0 bytes .../res/drawable-hdpi/play_video_black.png | Bin 0 -> 4799 bytes .../res/drawable-hdpi/play_video_white.png | Bin 0 -> 5087 bytes src/main/res/drawable-hdpi/show_pdf.png | Bin 3582 -> 0 bytes .../drawable-mdpi/ic_android_black_48dp.png | Bin 410 -> 0 bytes .../drawable-mdpi/ic_android_grey600_48dp.png | Bin 511 -> 0 bytes .../drawable-mdpi/ic_android_white_48dp.png | Bin 416 -> 0 bytes .../ic_attachment_black_24dp.png | Bin 217 -> 0 bytes .../ic_attachment_white_24dp.png | Bin 584 -> 0 bytes .../drawable-mdpi/ic_autorenew_white_24dp.png | Bin 274 -> 0 bytes .../ic_bluetooth_audio_black_24dp.png | Bin 283 -> 0 bytes .../ic_calendar_grey600_48dp.png | Bin 230 -> 0 bytes .../drawable-mdpi/ic_call_made_black_18dp.png | Bin 132 -> 0 bytes .../drawable-mdpi/ic_call_made_white_18dp.png | Bin 135 -> 0 bytes .../ic_call_missed_black_18dp.png | Bin 141 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 134 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 136 -> 0 bytes .../ic_call_missed_white_18dp.png | Bin 147 -> 0 bytes .../ic_call_received_black_18dp.png | Bin 133 -> 0 bytes .../ic_call_received_white_18dp.png | Bin 140 -> 0 bytes .../drawable-mdpi/ic_check_all_black_18dp.png | Bin 468 -> 0 bytes .../drawable-mdpi/ic_check_all_blue_18dp.png | Bin 347 -> 0 bytes .../ic_check_all_green_blue_18dp.png | Bin 1445 -> 0 bytes .../drawable-mdpi/ic_check_all_white_18dp.png | Bin 473 -> 0 bytes .../res/drawable-mdpi/ic_check_black_18dp.png | Bin 404 -> 0 bytes .../res/drawable-mdpi/ic_check_blue_18dp.png | Bin 276 -> 0 bytes .../res/drawable-mdpi/ic_check_white_18dp.png | Bin 408 -> 0 bytes .../res/drawable-mdpi/ic_clear_white_48dp.png | Bin 257 -> 0 bytes src/main/res/drawable-mdpi/ic_close_black.png | Bin 205 -> 0 bytes src/main/res/drawable-mdpi/ic_close_white.png | Bin 200 -> 0 bytes .../res/drawable-mdpi/ic_close_white_24dp.png | Bin 243 -> 0 bytes .../ic_content_copy_black_24dp.png | Bin 0 -> 130 bytes .../ic_content_copy_grey600_24dp.png | Bin 138 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 148 -> 0 bytes .../res/drawable-mdpi/ic_done_black_24dp.png | Bin 130 -> 0 bytes .../ic_email_open_outline_white_24dp.png | Bin 653 -> 0 bytes .../drawable-mdpi/ic_format_bold_black.png | Bin 228 -> 0 bytes .../drawable-mdpi/ic_format_bold_white.png | Bin 217 -> 0 bytes .../drawable-mdpi/ic_format_italic_black.png | Bin 205 -> 0 bytes .../drawable-mdpi/ic_format_italic_white.png | Bin 197 -> 0 bytes .../ic_format_monospace_black.png | Bin 179 -> 0 bytes .../ic_format_monospace_white.png | Bin 174 -> 0 bytes .../ic_format_strikethrough_black.png | Bin 275 -> 0 bytes .../ic_format_strikethrough_white.png | Bin 274 -> 0 bytes .../drawable-mdpi/ic_gps_fixed_black_24dp.png | Bin 398 -> 0 bytes .../drawable-mdpi/ic_gps_fixed_white_24dp.png | Bin 420 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 353 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 376 -> 0 bytes .../drawable-mdpi/ic_headset_black_24dp.png | Bin 230 -> 0 bytes .../drawable-mdpi/ic_headset_black_48dp.png | Bin 466 -> 0 bytes .../drawable-mdpi/ic_headset_white_48dp.png | Bin 473 -> 0 bytes src/main/res/drawable-mdpi/ic_help_black.png | Bin 336 -> 0 bytes .../res/drawable-mdpi/ic_help_black_24dp.png | Bin 298 -> 0 bytes .../res/drawable-mdpi/ic_help_black_48dp.png | Bin 656 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 670 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 704 -> 0 bytes .../ic_help_circle_white_24dp.png | Bin 656 -> 0 bytes src/main/res/drawable-mdpi/ic_help_white.png | Bin 345 -> 0 bytes .../res/drawable-mdpi/ic_help_white_24dp.png | Bin 304 -> 0 bytes .../res/drawable-mdpi/ic_help_white_48dp.png | Bin 659 -> 0 bytes .../ic_hourglass_empty_white_24dp.png | Bin 135 -> 0 bytes .../res/drawable-mdpi/ic_input_white_24dp.png | Bin 239 -> 0 bytes .../drawable-mdpi/ic_link_off_white_24dp.png | Bin 337 -> 0 bytes .../res/drawable-mdpi/ic_link_white_24dp.png | Bin 322 -> 0 bytes .../res/drawable-mdpi/ic_lock_black_18dp.png | Bin 225 -> 0 bytes .../drawable-mdpi/ic_lock_open_white_24dp.png | Bin 211 -> 0 bytes .../res/drawable-mdpi/ic_lock_white_18dp.png | Bin 229 -> 0 bytes .../res/drawable-mdpi/ic_lock_white_24dp.png | Bin 217 -> 0 bytes .../ic_map_marker_grey600_48dp.png | Bin 557 -> 0 bytes .../res/drawable-mdpi/ic_menu_white_24dp.png | Bin 366 -> 0 bytes .../res/drawable-mdpi/ic_mic_black_24dp.png | Bin 232 -> 0 bytes .../res/drawable-mdpi/ic_mic_black_48dp.png | Bin 487 -> 0 bytes .../drawable-mdpi/ic_mic_off_black_24dp.png | Bin 271 -> 0 bytes .../res/drawable-mdpi/ic_mic_white_48dp.png | Bin 489 -> 0 bytes .../ic_missed_call_notification.png | Bin 488 -> 589 bytes .../drawable-mdpi/ic_mode_edit_black_18dp.png | Bin 166 -> 0 bytes .../drawable-mdpi/ic_mode_edit_white_18dp.png | Bin 171 -> 0 bytes .../ic_navigation_white_24dp.png | Bin 250 -> 0 bytes .../ic_new_releases_black_24dp.png | Bin 277 -> 0 bytes .../ic_new_releases_white_24dp.png | Bin 287 -> 0 bytes .../ic_no_results_background_black.png | Bin 1763 -> 0 bytes .../ic_no_results_background_white.png | Bin 1819 -> 0 bytes .../res/drawable-mdpi/ic_notification.png | Bin 529 -> 0 bytes .../ic_notifications_grey600_24dp.png | Bin 197 -> 0 bytes .../ic_notifications_none_black_24dp.png | Bin 226 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 234 -> 0 bytes .../ic_notifications_off_black_24dp.png | Bin 339 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 338 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 253 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 256 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 194 -> 0 bytes .../ic_open_in_new_white_24dp.png | Bin 292 -> 0 bytes .../res/drawable-mdpi/ic_pause_black_36dp.png | Bin 117 -> 0 bytes .../res/drawable-mdpi/ic_pause_white_36dp.png | Bin 119 -> 0 bytes .../ic_play_arrow_black_36dp.png | Bin 194 -> 0 bytes .../ic_play_arrow_white_36dp.png | Bin 195 -> 0 bytes .../ic_play_circle_filled_white_48dp.png | Bin 464 -> 0 bytes .../drawable-mdpi/ic_public_white_24dp.png | Bin 607 -> 0 bytes .../drawable-mdpi/ic_qrcode_grey600_24dp.png | Bin 439 -> 0 bytes .../ic_qrcode_scan_white_24dp.png | Bin 188 -> 0 bytes .../drawable-mdpi/ic_qrcode_white_24dp.png | Bin 435 -> 0 bytes .../ic_question_answer_white_24dp.png | Bin 137 -> 0 bytes .../res/drawable-mdpi/ic_read_indicator.png | Bin 179 -> 0 bytes .../drawable-mdpi/ic_received_indicator.png | Bin 257 -> 0 bytes .../drawable-mdpi/ic_refresh_grey600_24dp.png | Bin 277 -> 0 bytes .../drawable-mdpi/ic_refresh_white_24dp.png | Bin 295 -> 0 bytes .../drawable-mdpi/ic_replay_white_48dp.png | Bin 457 -> 0 bytes .../ic_reply_circle_black_24dp.png | Bin 502 -> 0 bytes .../res/drawable-mdpi/ic_reply_white_24dp.png | Bin 503 -> 0 bytes .../res/drawable-mdpi/ic_room_black_48dp.png | Bin 524 -> 0 bytes .../res/drawable-mdpi/ic_room_white_24dp.png | Bin 283 -> 0 bytes .../res/drawable-mdpi/ic_room_white_48dp.png | Bin 537 -> 0 bytes .../res/drawable-mdpi/ic_save_black_24dp.png | Bin 171 -> 0 bytes .../res/drawable-mdpi/ic_save_white_24dp.png | Bin 175 -> 0 bytes .../ic_search_background_black.png | Bin 1667 -> 0 bytes .../ic_search_background_white.png | Bin 1725 -> 0 bytes .../drawable-mdpi/ic_search_white_24dp.png | Bin 267 -> 0 bytes .../drawable-mdpi/ic_security_black_24dp.png | Bin 287 -> 0 bytes .../drawable-mdpi/ic_security_white_24dp.png | Bin 637 -> 0 bytes .../drawable-mdpi/ic_settings_black_24dp.png | Bin 322 -> 0 bytes .../drawable-mdpi/ic_settings_white_24dp.png | Bin 321 -> 0 bytes .../res/drawable-mdpi/ic_share_black_24dp.png | Bin 573 -> 0 bytes .../res/drawable-mdpi/ic_share_white_24dp.png | Bin 282 -> 0 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 201 -> 0 bytes .../ic_speaker_notes_white_24dp.png | Bin 134 -> 0 bytes .../res/drawable-mdpi/ic_star_black_24dp.png | Bin 263 -> 0 bytes .../res/drawable-mdpi/ic_star_white_24dp.png | Bin 271 -> 0 bytes .../drawable-mdpi/ic_unarchive_white_24dp.png | Bin 279 -> 0 bytes .../drawable-mdpi/ic_update_notification.png | Bin 302 -> 0 bytes .../drawable-mdpi/ic_verified_fingerprint.png | Bin 677 -> 0 bytes .../ic_verified_user_black_18dp.png | Bin 262 -> 0 bytes .../ic_verified_user_white_18dp.png | Bin 270 -> 0 bytes .../drawable-mdpi/ic_video_grey600_48dp.png | Bin 223 -> 0 bytes .../drawable-mdpi/ic_videocam_black_24dp.png | Bin 127 -> 0 bytes .../drawable-mdpi/ic_voicemail_white_24dp.png | Bin 221 -> 0 bytes .../ic_volume_off_black_24dp.png | Bin 279 -> 0 bytes .../drawable-mdpi/ic_volume_up_black_24dp.png | Bin 235 -> 0 bytes .../drawable-mdpi/ic_vpn_key_white_24dp.png | Bin 201 -> 0 bytes .../drawable-mdpi/ic_warning_white_24dp.png | Bin 249 -> 0 bytes .../drawable-mdpi/ic_warning_white_48dp.png | Bin 364 -> 0 bytes src/main/res/drawable-mdpi/ic_wear_reply.png | Bin 429 -> 0 bytes .../res/drawable-mdpi/ic_web_grey600_48.png | Bin 345 -> 0 bytes .../intro_account_details_icon.png | Bin 880 -> 0 bytes .../res/drawable-mdpi/intro_account_icon.png | Bin 951 -> 0 bytes .../res/drawable-mdpi/intro_contacts_icon.png | Bin 984 -> 0 bytes .../res/drawable-mdpi/intro_location_icon.png | Bin 1408 -> 0 bytes .../res/drawable-mdpi/intro_memory_icon.png | Bin 694 -> 0 bytes .../res/drawable-mdpi/intro_security_icon.png | Bin 1574 -> 0 bytes .../drawable-mdpi/intro_start_chat_icon.png | Bin 794 -> 0 bytes .../res/drawable-mdpi/intro_xmpp_icon.png | Bin 1623 -> 0 bytes src/main/res/drawable-mdpi/logo_800.png | Bin 12367 -> 0 bytes src/main/res/drawable-mdpi/logo_actionbar.png | Bin 10192 -> 0 bytes src/main/res/drawable-mdpi/marker.png | Bin 1133 -> 2211 bytes src/main/res/drawable-mdpi/open_pdf_black.png | Bin 0 -> 1168 bytes src/main/res/drawable-mdpi/open_pdf_white.png | Bin 0 -> 1259 bytes src/main/res/drawable-mdpi/pencil_overlay.png | Bin 1873 -> 0 bytes src/main/res/drawable-mdpi/play_gif.png | Bin 286 -> 0 bytes src/main/res/drawable-mdpi/play_video.png | Bin 720 -> 0 bytes src/main/res/drawable-mdpi/show_pdf.png | Bin 1807 -> 0 bytes src/main/res/drawable-nodpi/bg_dark_blue.png | Bin 55038 -> 0 bytes src/main/res/drawable-nodpi/bg_dark_grey.png | Bin 42857 -> 0 bytes .../res/drawable-nodpi/bg_dark_orange.png | Bin 54722 -> 0 bytes src/main/res/drawable-nodpi/bg_dark_pink.png | Bin 52630 -> 0 bytes src/main/res/drawable-nodpi/bg_light_blue.png | Bin 52785 -> 0 bytes src/main/res/drawable-nodpi/bg_light_grey.png | Bin 42389 -> 0 bytes .../res/drawable-nodpi/bg_light_orange.png | Bin 57525 -> 0 bytes src/main/res/drawable-nodpi/bg_light_pink.png | Bin 50438 -> 0 bytes .../drawable-v24/ic_launcher_background.xml | 33 + .../drawable-xhdpi/ic_android_black_48dp.png | Bin 838 -> 0 bytes .../ic_android_grey600_48dp.png | Bin 966 -> 0 bytes .../drawable-xhdpi/ic_android_white_48dp.png | Bin 852 -> 0 bytes .../ic_attachment_black_24dp.png | Bin 399 -> 0 bytes .../ic_attachment_white_24dp.png | Bin 801 -> 0 bytes .../ic_autorenew_white_24dp.png | Bin 525 -> 0 bytes .../ic_bluetooth_audio_black_24dp.png | Bin 479 -> 0 bytes .../ic_calendar_grey600_48dp.png | Bin 430 -> 0 bytes .../ic_call_made_black_18dp.png | Bin 174 -> 0 bytes .../ic_call_made_white_18dp.png | Bin 189 -> 0 bytes .../ic_call_missed_black_18dp.png | Bin 201 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 188 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 193 -> 0 bytes .../ic_call_missed_white_18dp.png | Bin 215 -> 0 bytes .../ic_call_received_black_18dp.png | Bin 175 -> 0 bytes .../ic_call_received_white_18dp.png | Bin 189 -> 0 bytes .../ic_check_all_black_18dp.png | Bin 571 -> 0 bytes .../drawable-xhdpi/ic_check_all_blue_18dp.png | Bin 580 -> 0 bytes .../ic_check_all_green_blue_18dp.png | Bin 2959 -> 0 bytes .../ic_check_all_white_18dp.png | Bin 574 -> 0 bytes .../drawable-xhdpi/ic_check_black_18dp.png | Bin 470 -> 0 bytes .../res/drawable-xhdpi/ic_check_blue_18dp.png | Bin 412 -> 0 bytes .../drawable-xhdpi/ic_check_white_18dp.png | Bin 472 -> 0 bytes .../drawable-xhdpi/ic_clear_white_48dp.png | Bin 436 -> 0 bytes .../res/drawable-xhdpi/ic_close_black.png | Bin 284 -> 0 bytes .../res/drawable-xhdpi/ic_close_white.png | Bin 283 -> 0 bytes .../drawable-xhdpi/ic_close_white_24dp.png | Bin 431 -> 0 bytes .../ic_content_copy_black_24dp.png | Bin 0 -> 180 bytes .../ic_content_copy_grey600_24dp.png | Bin 204 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 224 -> 0 bytes .../res/drawable-xhdpi/ic_done_black_24dp.png | Bin 188 -> 0 bytes .../ic_email_open_outline_white_24dp.png | Bin 925 -> 0 bytes .../drawable-xhdpi/ic_format_bold_black.png | Bin 400 -> 0 bytes .../drawable-xhdpi/ic_format_bold_white.png | Bin 378 -> 0 bytes .../drawable-xhdpi/ic_format_italic_black.png | Bin 292 -> 0 bytes .../drawable-xhdpi/ic_format_italic_white.png | Bin 287 -> 0 bytes .../ic_format_monospace_black.png | Bin 289 -> 0 bytes .../ic_format_monospace_white.png | Bin 279 -> 0 bytes .../ic_format_strikethrough_black.png | Bin 498 -> 0 bytes .../ic_format_strikethrough_white.png | Bin 482 -> 0 bytes .../ic_gps_fixed_black_24dp.png | Bin 871 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 936 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 754 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 796 -> 0 bytes .../drawable-xhdpi/ic_headset_black_24dp.png | Bin 412 -> 0 bytes .../drawable-xhdpi/ic_headset_black_48dp.png | Bin 1006 -> 0 bytes .../drawable-xhdpi/ic_headset_white_48dp.png | Bin 1017 -> 0 bytes src/main/res/drawable-xhdpi/ic_help_black.png | Bin 668 -> 0 bytes .../res/drawable-xhdpi/ic_help_black_24dp.png | Bin 579 -> 0 bytes .../res/drawable-xhdpi/ic_help_black_48dp.png | Bin 1406 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 1435 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 1679 -> 0 bytes .../ic_help_circle_white_24dp.png | Bin 1109 -> 0 bytes src/main/res/drawable-xhdpi/ic_help_white.png | Bin 670 -> 0 bytes .../res/drawable-xhdpi/ic_help_white_24dp.png | Bin 585 -> 0 bytes .../res/drawable-xhdpi/ic_help_white_48dp.png | Bin 1426 -> 0 bytes .../ic_hourglass_empty_white_24dp.png | Bin 174 -> 0 bytes .../drawable-xhdpi/ic_input_white_24dp.png | Bin 417 -> 0 bytes .../drawable-xhdpi/ic_link_off_white_24dp.png | Bin 603 -> 0 bytes .../res/drawable-xhdpi/ic_link_white_24dp.png | Bin 585 -> 0 bytes .../res/drawable-xhdpi/ic_lock_black_18dp.png | Bin 342 -> 0 bytes .../ic_lock_open_white_24dp.png | Bin 377 -> 0 bytes .../res/drawable-xhdpi/ic_lock_white_18dp.png | Bin 342 -> 0 bytes .../res/drawable-xhdpi/ic_lock_white_24dp.png | Bin 386 -> 0 bytes .../ic_map_marker_grey600_48dp.png | Bin 1163 -> 0 bytes .../res/drawable-xhdpi/ic_menu_white_24dp.png | Bin 386 -> 0 bytes .../res/drawable-xhdpi/ic_mic_black_24dp.png | Bin 418 -> 0 bytes .../res/drawable-xhdpi/ic_mic_black_48dp.png | Bin 1002 -> 0 bytes .../drawable-xhdpi/ic_mic_off_black_24dp.png | Bin 454 -> 0 bytes .../res/drawable-xhdpi/ic_mic_white_48dp.png | Bin 1008 -> 0 bytes .../ic_missed_call_notification.png | Bin 943 -> 1151 bytes .../ic_mode_edit_black_18dp.png | Bin 223 -> 0 bytes .../ic_mode_edit_white_18dp.png | Bin 232 -> 0 bytes .../ic_navigation_white_24dp.png | Bin 434 -> 0 bytes .../ic_new_releases_black_24dp.png | Bin 480 -> 0 bytes .../ic_new_releases_white_24dp.png | Bin 498 -> 0 bytes .../ic_no_results_background_black.png | Bin 3950 -> 0 bytes .../ic_no_results_background_white.png | Bin 4137 -> 0 bytes .../res/drawable-xhdpi/ic_notification.png | Bin 1136 -> 0 bytes .../ic_notifications_grey600_24dp.png | Bin 309 -> 0 bytes .../ic_notifications_none_black_24dp.png | Bin 407 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 404 -> 0 bytes .../ic_notifications_off_black_24dp.png | Bin 595 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 596 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 421 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 422 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 319 -> 0 bytes .../ic_open_in_new_white_24dp.png | Bin 488 -> 0 bytes .../drawable-xhdpi/ic_pause_black_36dp.png | Bin 156 -> 0 bytes .../drawable-xhdpi/ic_pause_white_36dp.png | Bin 155 -> 0 bytes .../ic_play_arrow_black_36dp.png | Bin 265 -> 0 bytes .../ic_play_arrow_white_36dp.png | Bin 283 -> 0 bytes .../ic_play_circle_filled_white_48dp.png | Bin 883 -> 0 bytes .../drawable-xhdpi/ic_public_white_24dp.png | Bin 1231 -> 0 bytes .../drawable-xhdpi/ic_qrcode_grey600_24dp.png | Bin 476 -> 0 bytes .../ic_qrcode_scan_white_24dp.png | Bin 273 -> 0 bytes .../drawable-xhdpi/ic_qrcode_white_24dp.png | Bin 473 -> 0 bytes .../ic_question_answer_white_24dp.png | Bin 195 -> 0 bytes .../res/drawable-xhdpi/ic_read_indicator.png | Bin 416 -> 0 bytes .../drawable-xhdpi/ic_received_indicator.png | Bin 451 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 565 -> 0 bytes .../drawable-xhdpi/ic_refresh_white_24dp.png | Bin 614 -> 0 bytes .../drawable-xhdpi/ic_replay_white_48dp.png | Bin 908 -> 0 bytes .../ic_reply_circle_black_24dp.png | Bin 964 -> 0 bytes .../drawable-xhdpi/ic_reply_white_24dp.png | Bin 675 -> 0 bytes .../res/drawable-xhdpi/ic_room_black_48dp.png | Bin 1093 -> 0 bytes .../res/drawable-xhdpi/ic_room_white_24dp.png | Bin 508 -> 0 bytes .../res/drawable-xhdpi/ic_room_white_48dp.png | Bin 1121 -> 0 bytes .../res/drawable-xhdpi/ic_save_black_24dp.png | Bin 301 -> 0 bytes .../res/drawable-xhdpi/ic_save_white_24dp.png | Bin 309 -> 0 bytes .../ic_search_background_black.png | Bin 3856 -> 0 bytes .../ic_search_background_white.png | Bin 4067 -> 0 bytes .../drawable-xhdpi/ic_search_white_24dp.png | Bin 512 -> 0 bytes .../drawable-xhdpi/ic_security_black_24dp.png | Bin 486 -> 0 bytes .../drawable-xhdpi/ic_security_white_24dp.png | Bin 956 -> 0 bytes .../drawable-xhdpi/ic_settings_black_24dp.png | Bin 557 -> 0 bytes .../drawable-xhdpi/ic_settings_white_24dp.png | Bin 662 -> 0 bytes .../drawable-xhdpi/ic_share_black_24dp.png | Bin 852 -> 0 bytes .../drawable-xhdpi/ic_share_white_24dp.png | Bin 546 -> 0 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 297 -> 0 bytes .../ic_speaker_notes_white_24dp.png | Bin 214 -> 0 bytes .../res/drawable-xhdpi/ic_star_black_24dp.png | Bin 467 -> 0 bytes .../res/drawable-xhdpi/ic_star_white_24dp.png | Bin 475 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 505 -> 0 bytes .../drawable-xhdpi/ic_update_notification.png | Bin 511 -> 0 bytes .../ic_verified_fingerprint.png | Bin 1516 -> 0 bytes .../ic_verified_user_black_18dp.png | Bin 466 -> 0 bytes .../ic_verified_user_white_18dp.png | Bin 475 -> 0 bytes .../drawable-xhdpi/ic_video_grey600_48dp.png | Bin 432 -> 0 bytes .../drawable-xhdpi/ic_videocam_black_24dp.png | Bin 171 -> 0 bytes .../ic_voicemail_white_24dp.png | Bin 487 -> 0 bytes .../ic_volume_off_black_24dp.png | Bin 493 -> 0 bytes .../ic_volume_up_black_24dp.png | Bin 434 -> 0 bytes .../drawable-xhdpi/ic_vpn_key_white_24dp.png | Bin 349 -> 0 bytes .../drawable-xhdpi/ic_warning_white_24dp.png | Bin 381 -> 0 bytes .../drawable-xhdpi/ic_warning_white_48dp.png | Bin 590 -> 0 bytes src/main/res/drawable-xhdpi/ic_wear_reply.png | Bin 564 -> 0 bytes .../res/drawable-xhdpi/ic_web_grey600_48.png | Bin 788 -> 0 bytes .../intro_account_details_icon.png | Bin 1677 -> 0 bytes .../res/drawable-xhdpi/intro_account_icon.png | Bin 1968 -> 0 bytes .../drawable-xhdpi/intro_contacts_icon.png | Bin 2046 -> 0 bytes .../drawable-xhdpi/intro_location_icon.png | Bin 2839 -> 0 bytes .../res/drawable-xhdpi/intro_memory_icon.png | Bin 1187 -> 0 bytes .../drawable-xhdpi/intro_security_icon.png | Bin 3167 -> 0 bytes .../drawable-xhdpi/intro_start_chat_icon.png | Bin 1621 -> 0 bytes .../res/drawable-xhdpi/intro_xmpp_icon.png | Bin 3171 -> 0 bytes src/main/res/drawable-xhdpi/logo_800.png | Bin 21915 -> 0 bytes .../res/drawable-xhdpi/logo_actionbar.png | Bin 15841 -> 0 bytes src/main/res/drawable-xhdpi/marker.png | Bin 2328 -> 4815 bytes .../res/drawable-xhdpi/open_pdf_black.png | Bin 0 -> 2247 bytes .../res/drawable-xhdpi/open_pdf_white.png | Bin 0 -> 2431 bytes .../res/drawable-xhdpi/pencil_overlay.png | Bin 3465 -> 0 bytes src/main/res/drawable-xhdpi/play_gif.png | Bin 351 -> 0 bytes .../res/drawable-xhdpi/play_gif_black.png | Bin 0 -> 1052 bytes .../res/drawable-xhdpi/play_gif_white.png | Bin 0 -> 1110 bytes src/main/res/drawable-xhdpi/play_video.png | Bin 1357 -> 0 bytes .../res/drawable-xhdpi/play_video_black.png | Bin 0 -> 6572 bytes .../res/drawable-xhdpi/play_video_white.png | Bin 0 -> 6953 bytes src/main/res/drawable-xhdpi/show_pdf.png | Bin 4306 -> 0 bytes .../drawable-xxhdpi/ic_android_black_48dp.png | Bin 1548 -> 0 bytes .../ic_android_grey600_48dp.png | Bin 1865 -> 0 bytes .../drawable-xxhdpi/ic_android_white_48dp.png | Bin 1602 -> 0 bytes .../ic_attachment_black_24dp.png | Bin 551 -> 0 bytes .../ic_attachment_white_24dp.png | Bin 1199 -> 0 bytes .../ic_autorenew_white_24dp.png | Bin 790 -> 0 bytes .../ic_bluetooth_audio_black_24dp.png | Bin 724 -> 0 bytes .../ic_calendar_grey600_48dp.png | Bin 735 -> 0 bytes .../ic_call_made_black_18dp.png | Bin 202 -> 0 bytes .../ic_call_made_white_18dp.png | Bin 225 -> 0 bytes .../ic_call_missed_black_18dp.png | Bin 247 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 235 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 235 -> 0 bytes .../ic_call_missed_white_18dp.png | Bin 263 -> 0 bytes .../ic_call_received_black_18dp.png | Bin 202 -> 0 bytes .../ic_call_received_white_18dp.png | Bin 228 -> 0 bytes .../ic_check_all_black_18dp.png | Bin 682 -> 0 bytes .../ic_check_all_blue_18dp.png | Bin 771 -> 0 bytes .../ic_check_all_green_blue_18dp.png | Bin 4400 -> 0 bytes .../ic_check_all_white_18dp.png | Bin 687 -> 0 bytes .../drawable-xxhdpi/ic_check_black_18dp.png | Bin 540 -> 0 bytes .../drawable-xxhdpi/ic_check_blue_18dp.png | Bin 514 -> 0 bytes .../drawable-xxhdpi/ic_check_white_18dp.png | Bin 537 -> 0 bytes .../drawable-xxhdpi/ic_clear_white_48dp.png | Bin 524 -> 0 bytes .../res/drawable-xxhdpi/ic_close_black.png | Bin 393 -> 0 bytes .../res/drawable-xxhdpi/ic_close_white.png | Bin 575 -> 0 bytes .../drawable-xxhdpi/ic_close_white_24dp.png | Bin 457 -> 0 bytes .../ic_content_copy_black_24dp.png | Bin 0 -> 258 bytes .../ic_content_copy_grey600_24dp.png | Bin 290 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 344 -> 0 bytes .../drawable-xxhdpi/ic_done_black_24dp.png | Bin 227 -> 0 bytes .../ic_email_open_outline_white_24dp.png | Bin 1249 -> 0 bytes .../drawable-xxhdpi/ic_format_bold_black.png | Bin 614 -> 0 bytes .../drawable-xxhdpi/ic_format_bold_white.png | Bin 594 -> 0 bytes .../ic_format_italic_black.png | Bin 393 -> 0 bytes .../ic_format_italic_white.png | Bin 384 -> 0 bytes .../ic_format_monospace_black.png | Bin 458 -> 0 bytes .../ic_format_monospace_white.png | Bin 567 -> 0 bytes .../ic_format_strikethrough_black.png | Bin 718 -> 0 bytes .../ic_format_strikethrough_white.png | Bin 707 -> 0 bytes .../ic_gps_fixed_black_24dp.png | Bin 1660 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 1774 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 1397 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 1490 -> 0 bytes .../drawable-xxhdpi/ic_headset_black_24dp.png | Bin 586 -> 0 bytes .../drawable-xxhdpi/ic_headset_black_48dp.png | Bin 1867 -> 0 bytes .../drawable-xxhdpi/ic_headset_white_48dp.png | Bin 1896 -> 0 bytes .../res/drawable-xxhdpi/ic_help_black.png | Bin 999 -> 0 bytes .../drawable-xxhdpi/ic_help_black_24dp.png | Bin 834 -> 0 bytes .../drawable-xxhdpi/ic_help_black_48dp.png | Bin 2613 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 1979 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 3315 -> 0 bytes .../ic_help_circle_white_24dp.png | Bin 1676 -> 0 bytes .../res/drawable-xxhdpi/ic_help_white.png | Bin 1025 -> 0 bytes .../drawable-xxhdpi/ic_help_white_24dp.png | Bin 842 -> 0 bytes .../drawable-xxhdpi/ic_help_white_48dp.png | Bin 2702 -> 0 bytes .../ic_hourglass_empty_white_24dp.png | Bin 255 -> 0 bytes .../drawable-xxhdpi/ic_input_white_24dp.png | Bin 513 -> 0 bytes .../ic_link_off_white_24dp.png | Bin 887 -> 0 bytes .../drawable-xxhdpi/ic_link_white_24dp.png | Bin 852 -> 0 bytes .../drawable-xxhdpi/ic_lock_black_18dp.png | Bin 650 -> 0 bytes .../ic_lock_open_white_24dp.png | Bin 545 -> 0 bytes .../drawable-xxhdpi/ic_lock_white_18dp.png | Bin 657 -> 0 bytes .../drawable-xxhdpi/ic_lock_white_24dp.png | Bin 571 -> 0 bytes .../ic_map_marker_grey600_48dp.png | Bin 1834 -> 0 bytes .../drawable-xxhdpi/ic_menu_white_24dp.png | Bin 420 -> 0 bytes .../res/drawable-xxhdpi/ic_mic_black_24dp.png | Bin 581 -> 0 bytes .../res/drawable-xxhdpi/ic_mic_black_48dp.png | Bin 1846 -> 0 bytes .../drawable-xxhdpi/ic_mic_off_black_24dp.png | Bin 671 -> 0 bytes .../res/drawable-xxhdpi/ic_mic_white_48dp.png | Bin 1866 -> 0 bytes .../ic_missed_call_notification.png | Bin 1468 -> 1680 bytes .../ic_mode_edit_black_18dp.png | Bin 444 -> 0 bytes .../ic_mode_edit_white_18dp.png | Bin 450 -> 0 bytes .../ic_navigation_white_24dp.png | Bin 607 -> 0 bytes .../ic_new_releases_black_24dp.png | Bin 699 -> 0 bytes .../ic_new_releases_white_24dp.png | Bin 736 -> 0 bytes .../ic_no_results_background_black.png | Bin 8130 -> 0 bytes .../ic_no_results_background_white.png | Bin 8555 -> 0 bytes .../res/drawable-xxhdpi/ic_notification.png | Bin 1778 -> 0 bytes .../ic_notifications_grey600_24dp.png | Bin 463 -> 0 bytes .../ic_notifications_none_black_24dp.png | Bin 723 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 729 -> 0 bytes .../ic_notifications_off_black_24dp.png | Bin 1085 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 1087 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 731 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 737 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 558 -> 0 bytes .../ic_open_in_new_white_24dp.png | Bin 546 -> 0 bytes .../drawable-xxhdpi/ic_pause_black_36dp.png | Bin 247 -> 0 bytes .../drawable-xxhdpi/ic_pause_white_36dp.png | Bin 249 -> 0 bytes .../ic_play_arrow_black_36dp.png | Bin 366 -> 0 bytes .../ic_play_arrow_white_36dp.png | Bin 390 -> 0 bytes .../ic_play_circle_filled_white_48dp.png | Bin 1331 -> 0 bytes .../drawable-xxhdpi/ic_public_white_24dp.png | Bin 1608 -> 0 bytes .../ic_qrcode_grey600_24dp.png | Bin 536 -> 0 bytes .../ic_qrcode_scan_white_24dp.png | Bin 409 -> 0 bytes .../drawable-xxhdpi/ic_qrcode_white_24dp.png | Bin 531 -> 0 bytes .../ic_question_answer_white_24dp.png | Bin 256 -> 0 bytes .../res/drawable-xxhdpi/ic_read_indicator.png | Bin 764 -> 0 bytes .../drawable-xxhdpi/ic_received_indicator.png | Bin 622 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 803 -> 0 bytes .../drawable-xxhdpi/ic_refresh_white_24dp.png | Bin 1094 -> 0 bytes .../drawable-xxhdpi/ic_replay_white_48dp.png | Bin 1390 -> 0 bytes .../ic_reply_circle_black_24dp.png | Bin 1280 -> 0 bytes .../drawable-xxhdpi/ic_reply_white_24dp.png | Bin 911 -> 0 bytes .../drawable-xxhdpi/ic_room_black_48dp.png | Bin 2010 -> 0 bytes .../drawable-xxhdpi/ic_room_white_24dp.png | Bin 782 -> 0 bytes .../drawable-xxhdpi/ic_room_white_48dp.png | Bin 2071 -> 0 bytes .../drawable-xxhdpi/ic_save_black_24dp.png | Bin 497 -> 0 bytes .../drawable-xxhdpi/ic_save_white_24dp.png | Bin 504 -> 0 bytes .../ic_search_background_black.png | Bin 7855 -> 0 bytes .../ic_search_background_white.png | Bin 8152 -> 0 bytes .../drawable-xxhdpi/ic_search_white_24dp.png | Bin 792 -> 0 bytes .../ic_security_black_24dp.png | Bin 674 -> 0 bytes .../ic_security_white_24dp.png | Bin 1338 -> 0 bytes .../ic_settings_black_24dp.png | Bin 827 -> 0 bytes .../ic_settings_white_24dp.png | Bin 1185 -> 0 bytes .../drawable-xxhdpi/ic_share_black_24dp.png | Bin 1190 -> 0 bytes .../drawable-xxhdpi/ic_share_white_24dp.png | Bin 778 -> 0 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 388 -> 0 bytes .../ic_speaker_notes_white_24dp.png | Bin 276 -> 0 bytes .../drawable-xxhdpi/ic_star_black_24dp.png | Bin 668 -> 0 bytes .../drawable-xxhdpi/ic_star_white_24dp.png | Bin 676 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 619 -> 0 bytes .../ic_update_notification.png | Bin 763 -> 0 bytes .../ic_verified_fingerprint.png | Bin 2374 -> 0 bytes .../ic_verified_user_black_18dp.png | Bin 842 -> 0 bytes .../ic_verified_user_white_18dp.png | Bin 867 -> 0 bytes .../drawable-xxhdpi/ic_video_grey600_48dp.png | Bin 699 -> 0 bytes .../ic_videocam_black_24dp.png | Bin 224 -> 0 bytes .../ic_voicemail_white_24dp.png | Bin 625 -> 0 bytes .../ic_volume_off_black_24dp.png | Bin 704 -> 0 bytes .../ic_volume_up_black_24dp.png | Bin 626 -> 0 bytes .../drawable-xxhdpi/ic_vpn_key_white_24dp.png | Bin 493 -> 0 bytes .../drawable-xxhdpi/ic_warning_white_24dp.png | Bin 560 -> 0 bytes .../drawable-xxhdpi/ic_warning_white_48dp.png | Bin 843 -> 0 bytes .../res/drawable-xxhdpi/ic_wear_reply.png | Bin 866 -> 0 bytes .../res/drawable-xxhdpi/ic_web_grey600_48.png | Bin 1014 -> 0 bytes .../intro_account_details_icon.png | Bin 2064 -> 0 bytes .../drawable-xxhdpi/intro_account_icon.png | Bin 2670 -> 0 bytes .../drawable-xxhdpi/intro_contacts_icon.png | Bin 2764 -> 0 bytes .../drawable-xxhdpi/intro_location_icon.png | Bin 3848 -> 0 bytes .../res/drawable-xxhdpi/intro_memory_icon.png | Bin 1547 -> 0 bytes .../drawable-xxhdpi/intro_security_icon.png | Bin 3687 -> 0 bytes .../drawable-xxhdpi/intro_start_chat_icon.png | Bin 2229 -> 0 bytes .../res/drawable-xxhdpi/intro_xmpp_icon.png | Bin 3894 -> 0 bytes src/main/res/drawable-xxhdpi/logo_800.png | Bin 26689 -> 0 bytes .../res/drawable-xxhdpi/logo_actionbar.png | Bin 16842 -> 0 bytes src/main/res/drawable-xxhdpi/marker.png | Bin 3794 -> 7462 bytes .../res/drawable-xxhdpi/open_pdf_black.png | Bin 0 -> 3076 bytes .../res/drawable-xxhdpi/open_pdf_white.png | Bin 0 -> 3301 bytes .../res/drawable-xxhdpi/pencil_overlay.png | Bin 2119 -> 0 bytes src/main/res/drawable-xxhdpi/play_gif.png | Bin 497 -> 0 bytes .../res/drawable-xxhdpi/play_gif_black.png | Bin 0 -> 1580 bytes .../res/drawable-xxhdpi/play_gif_white.png | Bin 0 -> 1652 bytes src/main/res/drawable-xxhdpi/play_video.png | Bin 2715 -> 0 bytes .../res/drawable-xxhdpi/play_video_black.png | Bin 0 -> 10044 bytes .../res/drawable-xxhdpi/play_video_white.png | Bin 0 -> 10668 bytes src/main/res/drawable-xxhdpi/show_pdf.png | Bin 9223 -> 0 bytes .../ic_android_black_48dp.png | Bin 1868 -> 0 bytes .../ic_android_grey600_48dp.png | Bin 2224 -> 0 bytes .../ic_android_white_48dp.png | Bin 1951 -> 0 bytes .../ic_attachment_black_24dp.png | Bin 759 -> 0 bytes .../ic_attachment_white_24dp.png | Bin 1475 -> 0 bytes .../ic_autorenew_white_24dp.png | Bin 1035 -> 0 bytes .../ic_bluetooth_audio_black_24dp.png | Bin 867 -> 0 bytes .../ic_calendar_grey600_48dp.png | Bin 1096 -> 0 bytes .../ic_call_made_black_18dp.png | Bin 212 -> 0 bytes .../ic_call_made_white_18dp.png | Bin 247 -> 0 bytes .../ic_call_missed_black_18dp.png | Bin 267 -> 0 bytes .../ic_call_missed_outgoing_black_18dp.png | Bin 257 -> 0 bytes .../ic_call_missed_outgoing_white_18dp.png | Bin 248 -> 0 bytes .../ic_call_missed_white_18dp.png | Bin 291 -> 0 bytes .../ic_call_received_black_18dp.png | Bin 214 -> 0 bytes .../ic_call_received_white_18dp.png | Bin 257 -> 0 bytes .../ic_check_all_black_18dp.png | Bin 740 -> 0 bytes .../ic_check_all_blue_18dp.png | Bin 809 -> 0 bytes .../ic_check_all_green_blue_18dp.png | Bin 10062 -> 0 bytes .../ic_check_all_white_18dp.png | Bin 737 -> 0 bytes .../drawable-xxxhdpi/ic_check_black_18dp.png | Bin 609 -> 0 bytes .../drawable-xxxhdpi/ic_check_blue_18dp.png | Bin 559 -> 0 bytes .../drawable-xxxhdpi/ic_check_white_18dp.png | Bin 595 -> 0 bytes .../drawable-xxxhdpi/ic_clear_white_48dp.png | Bin 702 -> 0 bytes .../drawable-xxxhdpi/ic_close_white_24dp.png | Bin 1189 -> 0 bytes .../ic_content_copy_black_24dp.png | Bin 0 -> 319 bytes .../ic_content_copy_grey600_24dp.png | Bin 367 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 439 -> 0 bytes .../drawable-xxxhdpi/ic_done_black_24dp.png | Bin 277 -> 0 bytes .../ic_email_open_outline_white_24dp.png | Bin 1512 -> 0 bytes .../ic_gps_fixed_black_24dp.png | Bin 1977 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 2185 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 1657 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 1831 -> 0 bytes .../ic_headset_black_24dp.png | Bin 786 -> 0 bytes .../ic_headset_black_48dp.png | Bin 2162 -> 0 bytes .../ic_headset_white_48dp.png | Bin 2214 -> 0 bytes .../drawable-xxxhdpi/ic_help_black_24dp.png | Bin 1122 -> 0 bytes .../drawable-xxxhdpi/ic_help_black_48dp.png | Bin 2945 -> 0 bytes .../ic_help_circle_outline_black_24dp.png | Bin 4762 -> 0 bytes .../ic_help_circle_outline_white_24dp.png | Bin 4689 -> 0 bytes .../ic_help_circle_white_24dp.png | Bin 2216 -> 0 bytes .../drawable-xxxhdpi/ic_help_white_24dp.png | Bin 1132 -> 0 bytes .../drawable-xxxhdpi/ic_help_white_48dp.png | Bin 3067 -> 0 bytes .../ic_hourglass_empty_white_24dp.png | Bin 273 -> 0 bytes .../drawable-xxxhdpi/ic_input_white_24dp.png | Bin 1121 -> 0 bytes .../ic_link_off_white_24dp.png | Bin 2832 -> 0 bytes .../drawable-xxxhdpi/ic_link_white_24dp.png | Bin 786 -> 0 bytes .../drawable-xxxhdpi/ic_lock_black_18dp.png | Bin 643 -> 0 bytes .../ic_lock_open_white_24dp.png | Bin 725 -> 0 bytes .../drawable-xxxhdpi/ic_lock_white_18dp.png | Bin 649 -> 0 bytes .../drawable-xxxhdpi/ic_lock_white_24dp.png | Bin 768 -> 0 bytes .../ic_map_marker_grey600_48dp.png | Bin 2520 -> 0 bytes .../drawable-xxxhdpi/ic_menu_white_24dp.png | Bin 450 -> 0 bytes .../drawable-xxxhdpi/ic_mic_black_24dp.png | Bin 773 -> 0 bytes .../drawable-xxxhdpi/ic_mic_black_48dp.png | Bin 2108 -> 0 bytes .../ic_mic_off_black_24dp.png | Bin 832 -> 0 bytes .../drawable-xxxhdpi/ic_mic_white_48dp.png | Bin 2141 -> 0 bytes .../ic_missed_call_notification.png | Bin 1919 -> 2179 bytes .../ic_mode_edit_black_18dp.png | Bin 331 -> 0 bytes .../ic_mode_edit_white_18dp.png | Bin 345 -> 0 bytes .../ic_navigation_white_24dp.png | Bin 798 -> 0 bytes .../ic_new_releases_black_24dp.png | Bin 897 -> 0 bytes .../ic_new_releases_white_24dp.png | Bin 932 -> 0 bytes .../ic_no_results_background_black.png | Bin 9084 -> 0 bytes .../ic_no_results_background_white.png | Bin 9494 -> 0 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 2446 -> 0 bytes .../ic_notifications_grey600_24dp.png | Bin 577 -> 0 bytes .../ic_notifications_none_black_24dp.png | Bin 806 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 818 -> 0 bytes .../ic_notifications_off_black_24dp.png | Bin 1131 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 1129 -> 0 bytes .../ic_notifications_paused_black_24dp.png | Bin 794 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 803 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 624 -> 0 bytes .../ic_open_in_new_white_24dp.png | Bin 1204 -> 0 bytes .../drawable-xxxhdpi/ic_pause_black_36dp.png | Bin 364 -> 0 bytes .../drawable-xxxhdpi/ic_pause_white_36dp.png | Bin 365 -> 0 bytes .../ic_play_arrow_black_36dp.png | Bin 394 -> 0 bytes .../ic_play_arrow_white_36dp.png | Bin 461 -> 0 bytes .../ic_play_circle_filled_white_48dp.png | Bin 1826 -> 0 bytes .../drawable-xxxhdpi/ic_public_white_24dp.png | Bin 3975 -> 0 bytes .../ic_qrcode_grey600_24dp.png | Bin 585 -> 0 bytes .../ic_qrcode_scan_white_24dp.png | Bin 492 -> 0 bytes .../drawable-xxxhdpi/ic_qrcode_white_24dp.png | Bin 582 -> 0 bytes .../ic_question_answer_white_24dp.png | Bin 320 -> 0 bytes .../drawable-xxxhdpi/ic_read_indicator.png | Bin 751 -> 0 bytes .../ic_received_indicator.png | Bin 799 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 1082 -> 0 bytes .../ic_refresh_white_24dp.png | Bin 1225 -> 0 bytes .../drawable-xxxhdpi/ic_replay_white_48dp.png | Bin 1885 -> 0 bytes .../ic_reply_circle_black_24dp.png | Bin 3323 -> 0 bytes .../drawable-xxxhdpi/ic_reply_white_24dp.png | Bin 1196 -> 0 bytes .../drawable-xxxhdpi/ic_room_black_48dp.png | Bin 2283 -> 0 bytes .../drawable-xxxhdpi/ic_room_white_24dp.png | Bin 1014 -> 0 bytes .../drawable-xxxhdpi/ic_room_white_48dp.png | Bin 2439 -> 0 bytes .../drawable-xxxhdpi/ic_save_black_24dp.png | Bin 598 -> 0 bytes .../drawable-xxxhdpi/ic_save_white_24dp.png | Bin 614 -> 0 bytes .../ic_search_background_black.png | Bin 8540 -> 0 bytes .../ic_search_background_white.png | Bin 9156 -> 0 bytes .../drawable-xxxhdpi/ic_search_white_24dp.png | Bin 1011 -> 0 bytes .../ic_security_black_24dp.png | Bin 872 -> 0 bytes .../ic_security_white_24dp.png | Bin 1707 -> 0 bytes .../ic_settings_black_24dp.png | Bin 1073 -> 0 bytes .../ic_settings_white_24dp.png | Bin 1384 -> 0 bytes .../drawable-xxxhdpi/ic_share_black_24dp.png | Bin 1556 -> 0 bytes .../drawable-xxxhdpi/ic_share_white_24dp.png | Bin 1036 -> 0 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 534 -> 0 bytes .../ic_speaker_notes_white_24dp.png | Bin 348 -> 0 bytes .../drawable-xxxhdpi/ic_star_black_24dp.png | Bin 887 -> 0 bytes .../drawable-xxxhdpi/ic_star_white_24dp.png | Bin 890 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 1425 -> 0 bytes .../ic_update_notification.png | Bin 1006 -> 0 bytes .../ic_verified_fingerprint.png | Bin 2720 -> 0 bytes .../ic_verified_user_black_18dp.png | Bin 772 -> 0 bytes .../ic_verified_user_white_18dp.png | Bin 807 -> 0 bytes .../ic_video_grey600_48dp.png | Bin 964 -> 0 bytes .../ic_videocam_black_24dp.png | Bin 270 -> 0 bytes .../ic_voicemail_white_24dp.png | Bin 971 -> 0 bytes .../ic_volume_off_black_24dp.png | Bin 924 -> 0 bytes .../ic_volume_up_black_24dp.png | Bin 828 -> 0 bytes .../ic_vpn_key_white_24dp.png | Bin 652 -> 0 bytes .../ic_warning_white_24dp.png | Bin 654 -> 0 bytes .../ic_warning_white_48dp.png | Bin 1044 -> 0 bytes .../drawable-xxxhdpi/ic_web_grey600_48.png | Bin 2346 -> 0 bytes .../intro_account_details_icon.png | Bin 5313 -> 0 bytes .../drawable-xxxhdpi/intro_account_icon.png | Bin 6431 -> 0 bytes .../drawable-xxxhdpi/intro_contacts_icon.png | Bin 6681 -> 0 bytes .../drawable-xxxhdpi/intro_location_icon.png | Bin 9784 -> 0 bytes .../drawable-xxxhdpi/intro_memory_icon.png | Bin 3715 -> 0 bytes .../drawable-xxxhdpi/intro_security_icon.png | Bin 10568 -> 0 bytes .../intro_start_chat_icon.png | Bin 5163 -> 0 bytes .../res/drawable-xxxhdpi/intro_xmpp_icon.png | Bin 10769 -> 0 bytes src/main/res/drawable-xxxhdpi/logo_800.png | Bin 18969 -> 0 bytes .../res/drawable-xxxhdpi/logo_actionbar.png | Bin 19273 -> 0 bytes src/main/res/drawable-xxxhdpi/marker.png | Bin 5177 -> 9950 bytes .../res/drawable-xxxhdpi/open_pdf_black.png | Bin 0 -> 4626 bytes .../res/drawable-xxxhdpi/open_pdf_white.png | Bin 0 -> 4986 bytes .../res/drawable-xxxhdpi/pencil_overlay.png | Bin 9724 -> 0 bytes src/main/res/drawable-xxxhdpi/play_gif.png | Bin 467 -> 0 bytes .../res/drawable-xxxhdpi/play_gif_black.png | Bin 0 -> 2334 bytes .../res/drawable-xxxhdpi/play_gif_white.png | Bin 0 -> 2436 bytes src/main/res/drawable-xxxhdpi/play_video.png | Bin 3632 -> 0 bytes .../res/drawable-xxxhdpi/play_video_black.png | Bin 0 -> 13926 bytes .../res/drawable-xxxhdpi/play_video_white.png | Bin 0 -> 15040 bytes src/main/res/drawable-xxxhdpi/show_pdf.png | Bin 10923 -> 0 bytes .../drawable/accounts_selected_black_24.xml | 5 - .../drawable/accounts_selected_white_24.xml | 5 - src/main/res/drawable/active_indicator.xml | 11 - src/main/res/drawable/background.xml | 11 - .../background_account_profile_picture.xml | 15 + src/main/res/drawable/background_label.xml | 5 + .../res/drawable/background_list_item.xml | 4 + .../drawable/background_message_bubble.xml | 5 + .../drawable/background_message_separator.xml | 5 + .../res/drawable/background_no_results.xml | 7 + src/main/res/drawable/background_search.xml | 7 + .../background_selectable_list_item.xml | 5 + .../background_selected_item_conversation.xml | 7 + .../res/drawable/background_splash_screen.xml | 11 + .../drawable/background_surface_container.xml | 5 + .../res/drawable/baseline_tour_black_48.xml | 5 - .../res/drawable/baseline_tour_white_48.xml | 5 - src/main/res/drawable/black_cursor.xml | 32 - src/main/res/drawable/business_black.xml | 5 - src/main/res/drawable/business_white.xml | 5 - src/main/res/drawable/button_have_account.xml | 16 - src/main/res/drawable/button_outlined.xml | 16 - src/main/res/drawable/chat_graphic_white.xml | 9 - .../res/drawable/chat_selected_black_24.xml | 5 - .../res/drawable/chat_selected_white_24.xml | 5 - src/main/res/drawable/chatbg.xml | 4 - .../res/drawable/choose_file_black_24dp.xml | 5 - .../res/drawable/choose_file_white_24dp.xml | 5 - .../res/drawable/comment_bubble_light.xml | 14 - .../drawable/cursor_on_tertiary_container.xml | 6 + src/main/res/drawable/dark_cursor.xml | 32 - src/main/res/drawable/date_bubble.xml | 14 - src/main/res/drawable/date_bubble_dark.xml | 14 - src/main/res/drawable/document_black_24.xml | 5 - src/main/res/drawable/document_white_24.xml | 5 - src/main/res/drawable/duration_background.xml | 6 - src/main/res/drawable/email_black.xml | 5 - src/main/res/drawable/email_white.xml | 5 - src/main/res/drawable/grey.xml | 7 - src/main/res/drawable/greybackground.xml | 6 - .../res/drawable/ic_account_black_24dp.xml | 6 - .../ic_account_card_details_grey600_48dp.xml | 9 - .../ic_account_multiple_plus_grey600_48dp.xml | 9 - .../drawable/ic_account_plus_grey600_48dp.xml | 5 - .../res/drawable/ic_account_white_24dp.xml | 6 - src/main/res/drawable/ic_adb_48dp.xml | 5 + src/main/res/drawable/ic_add_24dp.xml | 12 + src/main/res/drawable/ic_add_white_24dp.xml | 5 - .../res/drawable/ic_announcement_24dp.xml | 13 + src/main/res/drawable/ic_archive_24dp.xml | 12 + src/main/res/drawable/ic_archive_48dp.xml | 12 + .../res/drawable/ic_archive_black_48dp.xml | 5 - .../res/drawable/ic_archive_white_24dp.xml | 5 - .../res/drawable/ic_archive_white_48dp.xml | 5 - src/main/res/drawable/ic_arrow_back_24dp.xml | 13 + .../res/drawable/ic_arrow_back_black_24dp.xml | 5 - .../res/drawable/ic_arrow_back_white_24dp.xml | 6 - .../res/drawable/ic_assured_workload_24dp.xml | 32 + src/main/res/drawable/ic_attach_file_24dp.xml | 10 + .../drawable/ic_attach_file_black_24dp.xml | 5 - .../drawable/ic_attach_file_white_24dp.xml | 5 - src/main/res/drawable/ic_attach_photo.xml | 5 - src/main/res/drawable/ic_attachment_24dp.xml | 12 + .../res/drawable/ic_audio_grey600_48dp.xml | 5 - src/main/res/drawable/ic_auto_delete_24dp.xml | 20 + src/main/res/drawable/ic_autorenew_24dp.xml | 12 + src/main/res/drawable/ic_backup_48dp.xml | 12 + .../res/drawable/ic_backup_black_48dp.xml | 5 - .../res/drawable/ic_backup_white_48dp.xml | 5 - .../res/drawable/ic_baseline_check_24.xml | 5 - .../res/drawable/ic_bluetooth_audio_24dp.xml | 12 + src/main/res/drawable/ic_book_48dp.xml | 5 + src/main/res/drawable/ic_book_black_48dp.xml | 5 - src/main/res/drawable/ic_book_white_48dp.xml | 5 - .../res/drawable/ic_calendar_month_24dp.xml | 12 + src/main/res/drawable/ic_call_24dp.xml | 12 + .../res/drawable/ic_call_black54_24dp.xml | 5 - src/main/res/drawable/ic_call_black_24dp.xml | 13 +- src/main/res/drawable/ic_call_end_24dp.xml | 12 + .../res/drawable/ic_call_end_white_48dp.xml | 5 - src/main/res/drawable/ic_call_made_24dp.xml | 5 + src/main/res/drawable/ic_call_missed_24db.xml | 11 + src/main/res/drawable/ic_call_missed_24dp.xml | 5 + .../drawable/ic_call_missed_outgoing_24dp.xml | 5 + .../res/drawable/ic_call_received_24dp.xml | 5 + .../res/drawable/ic_call_white70_24dp.xml | 5 - src/main/res/drawable/ic_call_white_24dp.xml | 13 +- src/main/res/drawable/ic_call_white_48dp.xml | 5 - src/main/res/drawable/ic_camera_alt_24dp.xml | 13 + src/main/res/drawable/ic_cancel_24dp.xml | 12 + src/main/res/drawable/ic_cancel_96dp.xml | 12 + .../res/drawable/ic_cancel_black_24dp.xml | 5 - .../res/drawable/ic_cancel_white_24dp.xml | 5 - src/main/res/drawable/ic_chat_24dp.xml | 13 + src/main/res/drawable/ic_check_24dp.xml | 10 + src/main/res/drawable/ic_clear_24dp.xml | 12 + .../res/drawable/ic_cloud_download_24dp.xml | 12 + .../drawable/ic_cloud_download_black_24dp.xml | 5 - .../drawable/ic_cloud_download_white_24dp.xml | 5 - src/main/res/drawable/ic_cloud_sync_24dp.xml | 12 + src/main/res/drawable/ic_cloud_white_24dp.xml | 5 - src/main/res/drawable/ic_code_48dp.xml | 12 + .../res/drawable/ic_contact_black_24dp.xml | 5 - .../res/drawable/ic_contact_white_24dp.xml | 5 - .../res/drawable/ic_contacts_black_24dp.xml | 5 - .../res/drawable/ic_contacts_white_24dp.xml | 5 - .../drawable/ic_content_copy_black_24dp.xml | 5 - src/main/res/drawable/ic_dark_mode_24dp.xml | 12 + src/main/res/drawable/ic_delete_24dp.xml | 10 + .../res/drawable/ic_delete_black_18dp.xml | 5 - .../res/drawable/ic_delete_black_24dp.xml | 5 - .../res/drawable/ic_delete_grey600_24dp.xml | 5 - .../res/drawable/ic_delete_white_18dp.xml | 5 - .../res/drawable/ic_delete_white_24dp.xml | 5 - src/main/res/drawable/ic_description_24dp.xml | 10 + src/main/res/drawable/ic_description_48dp.xml | 5 + .../drawable/ic_description_black_48dp.xml | 5 - .../drawable/ic_description_white_48dp.xml | 5 - .../res/drawable/ic_dialpad_black_24dp.xml | 5 - .../res/drawable/ic_dialpad_white_24dp.xml | 7 +- src/main/res/drawable/ic_directions_24dp.xml | 5 + .../drawable/ic_do_not_disturb_on_24dp.xml | 12 + src/main/res/drawable/ic_domino_mask_24dp.xml | 10 + src/main/res/drawable/ic_done_24dp.xml | 10 + src/main/res/drawable/ic_done_all_24dp.xml | 12 + .../res/drawable/ic_done_all_bold_24dp.xml | 10 + src/main/res/drawable/ic_download_24dp.xml | 12 + .../res/drawable/ic_download_grey600_48dp.xml | 5 - src/main/res/drawable/ic_edit_24dp.xml | 10 + src/main/res/drawable/ic_edit_black_24dp.xml | 5 - src/main/res/drawable/ic_edit_white_24dp.xml | 5 - src/main/res/drawable/ic_email_48dp.xml | 12 + src/main/res/drawable/ic_emoji_button.xml | 8 - .../res/drawable/ic_emoji_button_white.xml | 8 - src/main/res/drawable/ic_error_24dp.xml | 12 + src/main/res/drawable/ic_error_white_24dp.xml | 5 - src/main/res/drawable/ic_event_48dp.xml | 12 + src/main/res/drawable/ic_event_black_48dp.xml | 5 - src/main/res/drawable/ic_event_white_48dp.xml | 5 - .../drawable/ic_file_download_black_24dp.xml | 5 - .../drawable/ic_file_download_white_24dp.xml | 5 - .../res/drawable/ic_file_grey600_48dp.xml | 6 - .../drawable/ic_flip_camera_android_24dp.xml | 20 + .../ic_flip_camera_android_black_24dp.xml | 7 - src/main/res/drawable/ic_format_size_24dp.xml | 10 + src/main/res/drawable/ic_forum_24dp.xml | 12 + .../res/drawable/ic_forward_white_24dp.xml | 5 - src/main/res/drawable/ic_gps_fixed_24dp.xml | 5 + .../res/drawable/ic_gps_not_fixed_24dp.xml | 5 + src/main/res/drawable/ic_group_24dp.xml | 5 + .../res/drawable/ic_group_add_black_24dp.xml | 9 - .../res/drawable/ic_group_add_white_24dp.xml | 9 - .../drawable/ic_group_selected_black_24.xml | 5 - .../drawable/ic_group_selected_white_24.xml | 5 - src/main/res/drawable/ic_headphones_48dp.xml | 12 + src/main/res/drawable/ic_headset_mic_24dp.xml | 12 + src/main/res/drawable/ic_help_24dp.xml | 13 + src/main/res/drawable/ic_help_center_24dp.xml | 5 + src/main/res/drawable/ic_help_center_48dp.xml | 5 + .../res/drawable/ic_hourglass_top_24dp.xml | 5 + src/main/res/drawable/ic_image_24dp.xml | 10 + src/main/res/drawable/ic_image_48dp.xml | 5 + src/main/res/drawable/ic_image_black_24dp.xml | 5 - .../res/drawable/ic_image_grey600_48dp.xml | 5 - src/main/res/drawable/ic_image_white_24dp.xml | 5 - src/main/res/drawable/ic_keyboard_24dp.xml | 12 + .../ic_keyboard_double_arrow_down_24dp.xml | 16 + .../res/drawable/ic_keyboard_return_24dp.xml | 13 + src/main/res/drawable/ic_label_24dp.xml | 13 + .../res/drawable/ic_launcher_foreground.xml | 37 +- src/main/res/drawable/ic_link_24dp.xml | 12 + src/main/res/drawable/ic_link_off_24dp.xml | 12 + .../res/drawable/ic_location_pin_24dp.xml | 10 + .../res/drawable/ic_location_pin_48dp.xml | 5 + src/main/res/drawable/ic_lock_24dp.xml | 10 + src/main/res/drawable/ic_lock_black_24dp.xml | 5 - .../res/drawable/ic_lock_open_black_24dp.xml | 5 - .../drawable/ic_lock_open_outline_24dp.xml | 10 + src/main/res/drawable/ic_login_24dp.xml | 5 + src/main/res/drawable/ic_logout_24dp.xml | 11 + .../res/drawable/ic_logout_white_24dp.xml | 5 - .../res/drawable/ic_mark_chat_read_24dp.xml | 12 + src/main/res/drawable/ic_mediation_24dp.xml | 12 + .../drawable/ic_message_bubble_received.xml | 17 + src/main/res/drawable/ic_mic_24dp.xml | 10 + src/main/res/drawable/ic_mic_48dp.xml | 5 + src/main/res/drawable/ic_mic_off_24dp.xml | 12 + src/main/res/drawable/ic_monocles_graphic.xml | 12 - src/main/res/drawable/ic_more_horiz_24dp.xml | 12 + src/main/res/drawable/ic_movie_24dp.xml | 12 + src/main/res/drawable/ic_movie_48dp.xml | 12 + .../res/drawable/ic_navigate_next_24dp.xml | 13 + .../res/drawable/ic_navigation_black_24dp.xml | 5 - .../res/drawable/ic_network_node_24dp.xml | 10 + .../res/drawable/ic_new_releases_24dp.xml | 5 + .../res/drawable/ic_notifications_24dp.xml | 12 + .../drawable/ic_notifications_black_24dp.xml | 5 - .../drawable/ic_notifications_none_24dp.xml | 12 + .../drawable/ic_notifications_off_24dp.xml | 12 + .../drawable/ic_notifications_paused_24dp.xml | 12 + src/main/res/drawable/ic_open_with_24dp.xml | 12 + src/main/res/drawable/ic_p2p_24dp.xml | 10 + src/main/res/drawable/ic_palette_24dp.xml | 12 + src/main/res/drawable/ic_pause_24dp.xml | 10 + src/main/res/drawable/ic_person_24dp.xml | 12 + src/main/res/drawable/ic_person_48dp.xml | 12 + src/main/res/drawable/ic_person_add_24dp.xml | 12 + .../res/drawable/ic_person_add_black_24dp.xml | 5 - .../res/drawable/ic_person_add_white_24dp.xml | 5 - .../res/drawable/ic_person_black_48dp.xml | 5 - .../res/drawable/ic_person_white_48dp.xml | 5 - src/main/res/drawable/ic_phone_24dp.xml | 12 + .../res/drawable/ic_phone_in_talk_24dp.xml | 10 + .../drawable/ic_phone_in_talk_black_18dp.xml | 8 - .../drawable/ic_phone_in_talk_black_24dp.xml | 8 - .../drawable/ic_phone_in_talk_white_18dp.xml | 8 - .../drawable/ic_phone_in_talk_white_24dp.xml | 8 - src/main/res/drawable/ic_photo_24dp.xml | 12 + src/main/res/drawable/ic_play_arrow_24dp.xml | 10 + src/main/res/drawable/ic_play_circle_24dp.xml | 5 + src/main/res/drawable/ic_play_lesson_48dp.xml | 13 + .../res/drawable/ic_play_lesson_black_24.xml | 6 - .../drawable/ic_play_lesson_white_48dp.xml | 6 - src/main/res/drawable/ic_privacy_tip_24dp.xml | 12 + .../drawable/ic_private_connectivity_24dp.xml | 12 + src/main/res/drawable/ic_public_24dp.xml | 5 + src/main/res/drawable/ic_qr_code_24dp.xml | 10 + .../res/drawable/ic_qr_code_black_24dp.xml | 40 - .../res/drawable/ic_qr_code_scanner_24dp.xml | 10 + .../res/drawable/ic_qr_code_white_24dp.xml | 40 - .../res/drawable/ic_qrcode_black_24dp.xml | 5 - .../drawable/ic_qrcode_scan_black_24dp.xml | 5 - .../ic_question_answer_black_24dp.xml | 5 - src/main/res/drawable/ic_refresh_24dp.xml | 5 + src/main/res/drawable/ic_replay_24dp.xml | 12 + src/main/res/drawable/ic_reply_24dp.xml | 13 + src/main/res/drawable/ic_reply_black.xml | 6 - src/main/res/drawable/ic_report_24dp.xml | 12 + src/main/res/drawable/ic_save_24dp.xml | 12 + .../drawable/ic_screen_lock_portrait_24dp.xml | 12 + src/main/res/drawable/ic_screenshot_24dp.xml | 12 + .../res/drawable/ic_scroll_to_end_black.xml | 9 - .../res/drawable/ic_scroll_to_end_white.xml | 38 - src/main/res/drawable/ic_search_128dp.xml | 12 + src/main/res/drawable/ic_search_24dp.xml | 12 + .../res/drawable/ic_search_black_24dp.xml | 5 - src/main/res/drawable/ic_security_24dp.xml | 12 + src/main/res/drawable/ic_send_24dp.xml | 13 + .../res/drawable/ic_send_attachment_away.xml | 5 - .../res/drawable/ic_send_attachment_dnd.xml | 5 - .../drawable/ic_send_attachment_offline.xml | 5 - .../ic_send_attachment_offline_white.xml | 5 - .../drawable/ic_send_attachment_online.xml | 5 - src/main/res/drawable/ic_send_cancel_away.xml | 5 - src/main/res/drawable/ic_send_cancel_dnd.xml | 5 - .../res/drawable/ic_send_cancel_offline.xml | 5 - .../drawable/ic_send_cancel_offline_white.xml | 5 - .../res/drawable/ic_send_cancel_online.xml | 5 - .../res/drawable/ic_send_location_away.xml | 5 - .../res/drawable/ic_send_location_dnd.xml | 5 - .../res/drawable/ic_send_location_offline.xml | 5 - .../ic_send_location_offline_white.xml | 5 - .../res/drawable/ic_send_location_online.xml | 5 - src/main/res/drawable/ic_send_photo_away.xml | 6 - src/main/res/drawable/ic_send_photo_dnd.xml | 6 - .../res/drawable/ic_send_photo_offline.xml | 6 - .../drawable/ic_send_photo_offline_white.xml | 6 - .../res/drawable/ic_send_photo_online.xml | 6 - .../res/drawable/ic_send_picture_away.xml | 5 - src/main/res/drawable/ic_send_picture_dnd.xml | 5 - .../res/drawable/ic_send_picture_offline.xml | 5 - .../ic_send_picture_offline_white.xml | 5 - .../res/drawable/ic_send_picture_online.xml | 5 - src/main/res/drawable/ic_send_text_away.xml | 6 - src/main/res/drawable/ic_send_text_dnd.xml | 6 - .../res/drawable/ic_send_text_offline.xml | 6 - .../drawable/ic_send_text_offline_white.xml | 6 - src/main/res/drawable/ic_send_text_online.xml | 6 - .../drawable/ic_send_time_extension_24dp.xml | 16 + .../res/drawable/ic_send_videocam_away.xml | 5 - .../res/drawable/ic_send_videocam_dnd.xml | 5 - .../res/drawable/ic_send_videocam_offline.xml | 5 - .../ic_send_videocam_offline_white.xml | 5 - .../res/drawable/ic_send_videocam_online.xml | 5 - src/main/res/drawable/ic_send_voice_away.xml | 5 - src/main/res/drawable/ic_send_voice_dnd.xml | 5 - .../res/drawable/ic_send_voice_offline.xml | 5 - .../drawable/ic_send_voice_offline_white.xml | 5 - .../res/drawable/ic_send_voice_online.xml | 5 - src/main/res/drawable/ic_settings_24dp.xml | 10 + .../drawable/ic_settings_ethernet_24dp.xml | 12 + src/main/res/drawable/ic_share_24dp.xml | 10 + src/main/res/drawable/ic_smartphone_24dp.xml | 12 + src/main/res/drawable/ic_star_24dp.xml | 12 + .../res/drawable/ic_stories_black_24dp.xml | 5 - .../res/drawable/ic_stories_white_24dp.xml | 5 - src/main/res/drawable/ic_thread.xml | 10 + src/main/res/drawable/ic_touch_app_24dp.xml | 12 + src/main/res/drawable/ic_tour_48dp.xml | 5 + .../res/drawable/ic_travel_explore_24dp.xml | 12 + src/main/res/drawable/ic_unarchive_24dp.xml | 5 + src/main/res/drawable/ic_upload_24dp.xml | 12 + .../drawable/ic_verified_fingerprint_16dp.xml | 13 - .../res/drawable/ic_verified_user_24dp.xml | 10 + .../ic_vertical_align_bottom_24dp.xml | 12 + src/main/res/drawable/ic_vibration_24dp.xml | 12 + src/main/res/drawable/ic_videocam_24dp.xml | 11 + .../res/drawable/ic_videocam_black54_24dp.xml | 4 - .../res/drawable/ic_videocam_off_24dp.xml | 12 + .../drawable/ic_videocam_off_black_24dp.xml | 5 - src/main/res/drawable/ic_visibility.xml | 9 - src/main/res/drawable/ic_visibility_24dp.xml | 12 + src/main/res/drawable/ic_visibility_off.xml | 10 +- src/main/res/drawable/ic_voicemail_24dp.xml | 12 + src/main/res/drawable/ic_volume_off_24dp.xml | 13 + src/main/res/drawable/ic_volume_up_24dp.xml | 13 + src/main/res/drawable/ic_warning_24dp.xml | 12 + src/main/res/drawable/input_bubble_light.xml | 14 - .../drawable/input_bubble_sent_private.xml | 15 - src/main/res/drawable/link_black.xml | 5 - src/main/res/drawable/link_white.xml | 5 - src/main/res/drawable/list_choice.xml | 9 - .../drawable/list_item_background_dark.xml | 32 - .../drawable/list_item_background_light.xml | 32 - src/main/res/drawable/lock_icon.png | Bin 692 -> 0 bytes src/main/res/drawable/logo_toolbar_white.xml | 9 - .../res/drawable/message_bubble_received.xml | 32 + .../message_bubble_received_light.xml | 14 - .../message_bubble_received_light_private.xml | 15 - .../message_bubble_received_warning.xml | 14 - ...essage_bubble_received_warning_private.xml | 15 - src/main/res/drawable/message_bubble_sent.xml | 44 +- .../drawable/message_bubble_sent_private.xml | 15 - .../drawable/no_results_background_dark.xml | 40 - .../drawable/no_results_background_light.xml | 40 - src/main/res/drawable/open_pdf_black.xml | 5 - src/main/res/drawable/open_pdf_white.xml | 5 - .../res/drawable/outline_chat_black_24.xml | 5 - .../res/drawable/outline_chat_white_24.xml | 5 - .../res/drawable/outline_group_black_24dp.xml | 5 - .../res/drawable/outline_group_white_24.xml | 5 - .../drawable/outline_keyboard_black_32.xml | 5 - .../drawable/outline_keyboard_white_32.xml | 5 - .../res/drawable/outline_photo_black_24.xml | 5 - .../res/drawable/outline_photo_white_24.xml | 5 - .../drawable/outline_video_file_black_24.xml | 5 - .../drawable/outline_video_file_white_24.xml | 5 - .../drawable/outline_videocam_black_24.xml | 5 - .../drawable/outline_videocam_white_24.xml | 5 - src/main/res/drawable/play_gif_black.xml | 5 - src/main/res/drawable/play_gif_white.xml | 5 - src/main/res/drawable/quote_bubble.xml | 16 - src/main/res/drawable/round_call_made_18.xml | 5 - .../res/drawable/round_call_missed_18.xml | 5 - .../round_call_missed_outgoing_18.xml | 5 - .../res/drawable/round_call_received_18.xml | 5 - .../res/drawable/round_camera_black_24.xml | 5 - .../res/drawable/round_camera_white_24.xml | 5 - src/main/res/drawable/round_keyboard_24.xml | 5 - .../res/drawable/round_keyboard_black_24.xml | 5 - .../drawable/rounded_location_black_24.xml | 5 - .../drawable/rounded_location_white_24.xml | 5 - src/main/res/drawable/rounded_tag.xml | 13 - .../res/drawable/search_background_dark.xml | 40 - .../res/drawable/search_background_light.xml | 40 - src/main/res/drawable/selector_bubble.xml | 14 - src/main/res/drawable/shield.xml | 10 - src/main/res/drawable/shield_question.xml | 11 - src/main/res/drawable/shield_verified.xml | 10 - src/main/res/drawable/snackbar.xml | 6 +- src/main/res/drawable/subject.xml | 5 - src/main/res/drawable/subject_white.xml | 5 - src/main/res/drawable/thread_hint.xml | 16 - .../res/drawable/toolbar_bubble_light.xml | 14 - .../drawable/visibility_toggle_drawable.xml | 5 - src/main/res/drawable/webxdcs.xml | 5 - .../res/drawable/webxdcs_filled_black.xml | 5 - .../res/drawable/webxdcs_filled_white.xml | 5 - src/main/res/drawable/webxdcs_white.xml | 5 - src/main/res/drawable/white_cursor.xml | 32 - src/main/res/drawable/xmpp_logo.xml | 28 - src/main/res/font/notosansblack.ttf | Bin 556500 -> 0 bytes src/main/res/font/notosansblackitalic.ttf | Bin 402948 -> 0 bytes src/main/res/font/notosansbold.ttf | Bin 557380 -> 0 bytes src/main/res/font/notosansbolditalic.ttf | Bin 401608 -> 0 bytes src/main/res/font/notosansextrabold.ttf | Bin 557028 -> 0 bytes src/main/res/font/notosansextrabolditalic.ttf | Bin 401612 -> 0 bytes src/main/res/font/notosansextralight.ttf | Bin 559028 -> 0 bytes .../res/font/notosansextralightitalic.ttf | Bin 407288 -> 0 bytes src/main/res/font/notosansitalic.ttf | Bin 403724 -> 0 bytes src/main/res/font/notosanslight.ttf | Bin 554712 -> 0 bytes src/main/res/font/notosanslightitalic.ttf | Bin 405132 -> 0 bytes src/main/res/font/notosansmedium.ttf | Bin 555264 -> 0 bytes src/main/res/font/notosansmediumitalic.ttf | Bin 402632 -> 0 bytes src/main/res/font/notosansregular.ttf | Bin 556216 -> 0 bytes src/main/res/font/notosanssemibold.ttf | Bin 556932 -> 0 bytes src/main/res/font/notosanssemibolditalic.ttf | Bin 401372 -> 0 bytes src/main/res/font/notosansthin.ttf | Bin 561488 -> 0 bytes src/main/res/font/notosansthinitalic.ttf | Bin 409140 -> 0 bytes .../res/layout-land/fragment_conversation.xml | 661 --- .../layout-w945dp/activity_conversations.xml | 40 +- src/main/res/layout/ab_title.xml | 70 - src/main/res/layout/account_row.xml | 100 - src/main/res/layout/actionview_edit.xml | 19 - src/main/res/layout/actionview_search.xml | 21 +- src/main/res/layout/activity_about.xml | 137 +- src/main/res/layout/activity_calls.xml | 66 - .../res/layout/activity_change_password.xml | 168 +- .../res/layout/activity_channel_discovery.xml | 36 +- .../res/layout/activity_choose_contact.xml | 26 +- .../res/layout/activity_contact_details.xml | 712 +-- .../res/layout/activity_conversations.xml | 67 +- src/main/res/layout/activity_easy_invite.xml | 72 - .../res/layout/activity_easy_lockscreen.xml | 276 - src/main/res/layout/activity_edit_account.xml | 1050 ++-- src/main/res/layout/activity_enter_name.xml | 85 - .../res/layout/activity_gridview_gifs.xml | 18 - .../res/layout/activity_gridview_stickers.xml | 18 - .../res/layout/activity_import_backup.xml | 56 - src/main/res/layout/activity_magic_create.xml | 152 - .../res/layout/activity_manage_accounts.xml | 80 +- .../res/layout/activity_media_browser.xml | 40 +- src/main/res/layout/activity_media_viewer.xml | 63 - .../res/layout/activity_memory_management.xml | 255 - .../layout/activity_muc_contact_details.xml | 132 - src/main/res/layout/activity_muc_details.xml | 809 ++- src/main/res/layout/activity_muc_users.xml | 23 +- .../activity_publish_profile_picture.xml | 175 +- src/main/res/layout/activity_recording.xml | 51 + .../res/layout/activity_register_monocles.xml | 95 - src/main/res/layout/activity_rtp_session.xml | 125 +- src/main/res/layout/activity_scan.xml | 2 +- src/main/res/layout/activity_search.xml | 44 +- src/main/res/layout/activity_set_settings.xml | 334 -- src/main/res/layout/activity_settings.xml | 36 +- .../res/layout/activity_share_locaction.xml | 98 - .../res/layout/activity_share_location.xml | 79 + src/main/res/layout/activity_share_with.xml | 41 +- .../res/layout/activity_show_location.xml | 76 +- src/main/res/layout/activity_sign_up.xml | 29 - .../layout/activity_start_conversation.xml | 68 +- src/main/res/layout/activity_start_ui.xml | 6 - src/main/res/layout/activity_trust_keys.xml | 101 +- src/main/res/layout/activity_updater.xml | 32 - src/main/res/layout/activity_uri_handler.xml | 8 +- src/main/res/layout/activity_verify_otr.xml | 156 - src/main/res/layout/avatar_dialog.xml | 12 - src/main/res/layout/camera_chooser_item.xml | 38 - src/main/res/layout/captcha.xml | 6 +- src/main/res/layout/choose_account_dialog.xml | 24 - src/main/res/layout/command_button.xml | 8 - src/main/res/layout/command_page.xml | 94 - src/main/res/layout/command_row.xml | 20 +- src/main/res/layout/command_slider_field.xml | 42 - src/main/res/layout/command_text_field.xml | 31 - src/main/res/layout/contact.xml | 94 - src/main/res/layout/contact_key.xml | 78 +- src/main/res/layout/conversation_list_row.xml | 239 - .../res/layout/create_conference_dialog.xml | 47 - .../layout/create_public_channel_dialog.xml | 60 - src/main/res/layout/dialog_block_contact.xml | 12 +- src/main/res/layout/dialog_camera_chooser.xml | 18 - src/main/res/layout/dialog_clear_history.xml | 17 +- .../res/layout/dialog_create_conference.xml | 36 + .../layout/dialog_create_public_channel.xml | 55 + src/main/res/layout/dialog_delete_account.xml | 22 + src/main/res/layout/dialog_enter_jid.xml | 54 + src/main/res/layout/dialog_enter_password.xml | 56 - .../res/layout/dialog_join_conference.xml | 49 +- src/main/res/layout/dialog_presence.xml | 105 +- src/main/res/layout/dialog_quickedit.xml | 17 +- src/main/res/layout/dialog_show_password.xml | 23 - .../res/layout/dialog_verify_fingerprints.xml | 11 +- src/main/res/layout/emoji_search_row.xml | 43 - src/main/res/layout/enter_jid_dialog.xml | 67 - .../enter_jid_dialog_gateway_list_item.xml | 12 +- src/main/res/layout/form_boolean.xml | 13 - src/main/res/layout/form_text.xml | 18 - src/main/res/layout/fragment_conversation.xml | 858 +-- .../fragment_conversations_overview.xml | 23 +- src/main/res/layout/item_account.xml | 82 + src/main/res/layout/item_autocomplete.xml | 11 + .../res/layout/item_channel_discovery.xml | 66 + src/main/res/layout/item_contact.xml | 80 + src/main/res/layout/item_conversation.xml | 163 + src/main/res/layout/item_media.xml | 17 + src/main/res/layout/item_media_preview.xml | 26 + src/main/res/layout/item_message_content.xml | 126 + .../res/layout/item_message_date_bubble.xml | 30 + src/main/res/layout/item_message_received.xml | 124 + .../res/layout/item_message_rtp_session.xml | 42 + src/main/res/layout/item_message_sent.xml | 134 + src/main/res/layout/item_message_status.xml | 48 + src/main/res/layout/item_user_preview.xml | 17 + src/main/res/layout/keys_card.xml | 20 +- src/main/res/layout/link_layout.xml | 54 - src/main/res/layout/list_item_tag.xml | 17 +- src/main/res/layout/media.xml | 17 - src/main/res/layout/media_preview.xml | 28 - src/main/res/layout/message_content.xml | 205 - src/main/res/layout/message_date_bubble.xml | 31 - src/main/res/layout/message_log_item.xml | 40 - src/main/res/layout/message_received.xml | 175 - src/main/res/layout/message_rtp_session.xml | 38 - src/main/res/layout/message_sent.xml | 190 - src/main/res/layout/message_status.xml | 68 - src/main/res/layout/presence_template.xml | 47 - src/main/res/layout/search_result_item.xml | 78 - src/main/res/layout/simple_list_item.xml | 5 +- src/main/res/layout/toolbar.xml | 10 - src/main/res/layout/user_preview.xml | 18 - src/main/res/layout/webxdc_page.xml | 91 - src/main/res/layout/welcome.xml | 123 - src/main/res/menu/account_context.xml | 17 +- src/main/res/menu/activity_conversations.xml | 33 +- src/main/res/menu/activity_publish_avatar.xml | 10 - .../menu/activity_publish_profile_picture.xml | 10 + src/main/res/menu/activity_rtp_session.xml | 14 +- src/main/res/menu/activity_search.xml | 9 +- src/main/res/menu/block.xml | 7 +- src/main/res/menu/bottom_navigation_menu.xml | 19 - .../menu/bottom_navigation_menu_accounts.xml | 19 - .../res/menu/bottom_navigation_menu_chat.xml | 19 - .../res/menu/channel_discovery_activity.xml | 25 +- src/main/res/menu/channel_item_context.xml | 2 +- src/main/res/menu/choose_attachment.xml | 47 - src/main/res/menu/choose_contact.xml | 10 +- src/main/res/menu/conference_context.xml | 7 +- src/main/res/menu/contact_context.xml | 8 +- src/main/res/menu/contact_details.xml | 85 +- src/main/res/menu/conversations.xml | 54 - src/main/res/menu/easy_onboarding_invite.xml | 8 - src/main/res/menu/edit_message_actions.xml | 7 +- src/main/res/menu/editaccount.xml | 84 +- src/main/res/menu/fragment_conversation.xml | 245 +- .../menu/fragment_conversations_overview.xml | 36 +- src/main/res/menu/import_backup.xml | 6 +- src/main/res/menu/manageaccounts.xml | 24 - src/main/res/menu/manageaccounts_context.xml | 17 +- src/main/res/menu/media_browser.xml | 12 - src/main/res/menu/media_viewer.xml | 18 - src/main/res/menu/menu_show_location.xml | 23 +- src/main/res/menu/message_context.xml | 37 +- src/main/res/menu/muc_details.xml | 56 +- src/main/res/menu/muc_details_context.xml | 61 +- src/main/res/menu/muc_users_activity.xml | 10 +- src/main/res/menu/omemo_key_context.xml | 6 +- src/main/res/menu/one_on_one_context.xml | 9 +- src/main/res/menu/search_result_context.xml | 16 +- src/main/res/menu/share_with.xml | 6 +- src/main/res/menu/sign_up_page.xml | 11 - src/main/res/menu/start_conversation.xml | 19 +- .../menu/start_conversation_fab_submenu.xml | 16 +- src/main/res/menu/trust_keys.xml | 12 +- src/main/res/menu/verification_choices.xml | 12 - src/main/res/menu/verify_otr.xml | 15 - src/main/res/menu/welcome_menu.xml | 12 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - .../res/mipmap-anydpi-v26/new_launcher.xml | 6 + .../mipmap-anydpi-v26/new_launcher_round.xml | 6 + .../ic_delete_forever_white_24dp.png | Bin 674 -> 0 bytes src/main/res/mipmap-hdpi/new_launcher.png | Bin 0 -> 2385 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 0 -> 4216 bytes .../ic_delete_forever_white_24dp.png | Bin 498 -> 0 bytes src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 1922 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 885 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 1922 -> 0 bytes .../ic_delete_forever_white_24dp.png | Bin 671 -> 0 bytes src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 4200 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 2656 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 4200 -> 0 bytes .../ic_delete_forever_white_24dp.png | Bin 828 -> 0 bytes src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 6754 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 4169 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 6754 -> 0 bytes .../ic_delete_forever_white_24dp.png | Bin 1065 -> 0 bytes src/main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 9394 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 5724 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 9394 -> 0 bytes .../raw/letsencrypt_with_intermediates.bks | Bin 4119 -> 0 bytes src/main/res/values-ar-rSA/strings.xml | 812 --- src/main/res/values-ar/strings.xml | 655 +++ src/main/res/values-az-rAZ/strings.xml | 1207 ---- src/main/res/values-bg-rBG/strings.xml | 857 --- src/main/res/values-bg/strings.xml | 941 +++ src/main/res/values-bn-rIN/strings.xml | 107 + src/main/res/values-ca-rES/strings.xml | 1212 ---- src/main/res/values-ca/strings.xml | 920 +++ src/main/res/values-ceb-rPH/strings.xml | 517 -- src/main/res/values-cs-rCZ/strings.xml | 1478 ----- src/main/res/values-cs/strings.xml | 1004 ++++ src/main/res/values-da-rDK/strings.xml | 989 ++++ src/main/res/values-de-rDE/strings.xml | 1498 ----- src/main/res/values-de/strings.xml | 1074 ++++ src/main/res/values-el-rGR/strings.xml | 275 - src/main/res/values-el/strings.xml | 949 +++ src/main/res/values-eo/strings.xml | 2 + src/main/res/values-es-rES/strings.xml | 1552 ----- src/main/res/values-es/strings.xml | 1088 ++++ src/main/res/values-eu-rES/strings.xml | 516 -- src/main/res/values-eu/strings.xml | 737 +++ src/main/res/values-fa-rIR/strings.xml | 1032 ++++ src/main/res/values-fi/strings.xml | 934 +++ src/main/res/values-fil-rPH/strings.xml | 547 -- src/main/res/values-fr-rFR/strings.xml | 1531 ----- src/main/res/values-fr/strings.xml | 1095 ++++ src/main/res/values-gl-rES/strings.xml | 1554 ----- src/main/res/values-gl/strings.xml | 1074 ++++ src/main/res/values-h360dp/dimens.xml | 4 +- src/main/res/values-h500dp/dimens.xml | 4 +- src/main/res/values-hi-rIN/strings.xml | 2 + src/main/res/values-hr/strings.xml | 79 + src/main/res/values-hu/strings.xml | 873 +++ src/main/res/values-id/strings.xml | 475 ++ src/main/res/values-in-rID/strings.xml | 571 -- src/main/res/values-it-rIT/strings.xml | 1253 ---- src/main/res/values-it/strings.xml | 1080 ++++ src/main/res/values-iw/strings.xml | 276 + src/main/res/values-ja-rJP/strings.xml | 1494 ----- src/main/res/values-ja/strings.xml | 1047 ++++ src/main/res/values-kn-rIN/strings.xml | 395 -- src/main/res/values-ko/strings.xml | 390 ++ src/main/res/values-land/bools.xml | 10 +- src/main/res/values-ml/strings.xml | 321 + src/main/res/values-nb-rNO/strings.xml | 457 ++ src/main/res/values-night/themes.xml | 37 + src/main/res/values-nl-rNL/strings.xml | 1549 ----- src/main/res/values-nl/strings.xml | 805 +++ src/main/res/values-pl-rPL/strings.xml | 1085 ---- src/main/res/values-pl/strings.xml | 1104 ++++ src/main/res/values-pt-rBR/strings.xml | 1996 +++---- src/main/res/values-pt-rPT/strings.xml | 372 -- src/main/res/values-pt/strings.xml | 403 ++ src/main/res/values-qwerty/defaults.xml | 2 +- src/main/res/values-ro-rRO/strings.xml | 1347 ++--- src/main/res/values-ru-rRU/arrays.xml | 12 - src/main/res/values-ru-rRU/strings.xml | 1600 ----- src/main/res/values-ru/strings.xml | 1089 ++++ src/main/res/values-sk/strings.xml | 503 ++ src/main/res/values-sq-rAL/strings.xml | 1084 ++++ src/main/res/values-sr/strings.xml | 667 +++ src/main/res/values-sv-rSE/strings.xml | 445 -- src/main/res/values-sv/strings.xml | 1028 ++++ src/main/res/values-szl/strings.xml | 986 ++++ src/main/res/values-th-rTH/strings.xml | 16 - src/main/res/values-tl-rPH/strings.xml | 84 - src/main/res/values-tr-rTR/strings.xml | 1725 +++--- src/main/res/values-uk-rUA/strings.xml | 1462 ----- src/main/res/values-uk/strings.xml | 1120 ++++ src/main/res/values-v21/dimens.xml | 4 - src/main/res/values-v29/theme-settings.xml | 16 + src/main/res/values-v30/theme-settings.xml | 18 + src/main/res/values-vi/strings.xml | 980 ++++ src/main/res/values-w300dp/dimens.xml | 1 - src/main/res/values-w360dp/dimens.xml | 1 - src/main/res/values-w384dp/dimens.xml | 4 +- src/main/res/values-w820dp/dimens.xml | 6 - src/main/res/values-zh-rCN/strings.xml | 1726 ++---- src/main/res/values-zh-rTW/strings.xml | 2258 +++---- src/main/res/values/about.xml | 77 +- src/main/res/values/arrays.xml | 283 +- src/main/res/values/attrs.xml | 193 +- src/main/res/values/bools.xml | 18 +- src/main/res/values/colors-md.xml | 48 + src/main/res/values/colors.xml | 159 - src/main/res/values/defaults.xml | 148 +- src/main/res/values/dimens.xml | 30 +- .../res/values/ic_launcher_background.xml | 4 - src/main/res/values/ids.xml | 13 +- src/main/res/values/strings.xml | 1522 ++--- src/main/res/values/styles.xml | 282 - src/main/res/values/theme-settings.xml | 14 + src/main/res/values/themes.xml | 1685 +----- src/main/res/xml/automotive_app_desc.xml | 2 +- src/main/res/xml/file_paths.xml | 34 +- .../xml/network_security_configuration.xml | 2 +- src/main/res/xml/preferences.xml | 790 --- src/main/res/xml/preferences_attachments.xml | 56 + src/main/res/xml/preferences_backup.xml | 20 + src/main/res/xml/preferences_connection.xml | 33 + src/main/res/xml/preferences_interface.xml | 166 + src/main/res/xml/preferences_main.xml | 55 + .../res/xml/preferences_notifications.xml | 82 + src/main/res/xml/preferences_privacy.xml | 79 + src/main/res/xml/preferences_security.xml | 48 + src/main/res/xml/preferences_up.xml | 17 + src/monocleschat/AndroidManifest.xml | 108 + .../ICarrierEuiccProvisioningService.aidl | 8 + .../euicc/IGetActivationCodeCallback.aidl | 6 + .../ic_launcher-playstore.png | Bin .../de/madebyevan/thumbhash}/ThumbHash.java | 2 +- .../monocles/chat/AndroidLoggingHandler.java | 63 + .../java/de/monocles/chat/BobTransfer.java | 201 + .../java/de/monocles/chat/BrowserHelper.java | 88 + .../chat/ColorResourcesLoaderCreator.java | 1 - .../chat/ColorResourcesTableCreator.java | 1 - .../de/monocles/chat/ConnectionService.java | 89 +- .../chat}/ContextMenuRecyclerView.java | 2 +- .../de/monocles/chat/ConversationPage.java | 14 + .../chat/DownloadDefaultStickers.java | 211 + .../java/de/monocles/chat/EmojiSearch.java | 235 + .../de/monocles/chat/FinishOnboarding.java | 119 + .../de/monocles/chat/GetThumbnailForCid.java | 0 .../java/de/monocles/chat/GridView.java | 2 +- .../de/monocles/chat/InlineImageSpan.java | 59 + .../chat/MessageTextActionModeCallback.java | 4 +- .../java/de/monocles/chat/SpannedToXHTML.java | 191 + .../java/de/monocles/chat/SwipeDetector.java | 2 +- .../java/de/monocles/chat/TagEditorView.java | 61 + .../java/de/monocles/chat/Util.java | 31 + .../monocles/chat/WebviewAwareViewPager.java | 26 + .../java/de/monocles/chat/WebxdcPage.java | 506 ++ .../java/de/monocles/chat/WebxdcStore.java | 111 + .../java/de/monocles/chat/WebxdcUpdate.java | 106 + .../android/PhoneNumberContact.java | 154 + .../entities/AccountConfiguration.java | 50 + .../services/ImportBackupService.java | 399 ++ .../services/QuickConversationsService.java | 179 + .../ui/EasyOnboardingInviteActivity.java | 166 + .../ui/ImportBackupActivity.java | 236 + .../conversations/ui/MagicCreateActivity.java | 153 + .../ui/ManageAccountActivity.java | 477 ++ .../conversations/ui/PickServerActivity.java | 104 + .../ui/ShareViaAccountActivity.java | 103 + .../conversations/ui/WelcomeActivity.java | 337 ++ .../ui/adapter/BackupFileAdapter.java | 170 + .../utils/PhoneNumberUtilWrapper.java | 0 .../utils/ProvisioningUtils.java | 9 +- .../conversations/utils/SignupUtils.java | 76 + .../drawable-hdpi/ic_unarchive_white_24dp.png | Bin 0 -> 258 bytes .../drawable-mdpi/ic_unarchive_white_24dp.png | Bin 0 -> 181 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 273 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 391 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 503 bytes .../res/drawable/android_messages.xml | 26 + .../res/drawable/background_splash_screen.xml | 9 + src/monocleschat/res/drawable/bar_logo.xml | 20 + src/monocleschat/res/drawable/getjid.xml | 55 + src/monocleschat/res/drawable/havejid.xml | 56 + .../res/drawable/horizontal_space.xml | 4 + .../res/drawable/ic_business_24dp.xml | 10 + .../res/drawable/ic_chat_black_24dp.xml | 11 + .../res/drawable/ic_email_24dp.xml | 12 + src/monocleschat/res/drawable/ic_launcher.xml | 57 + .../res/drawable/ic_launcher_foreground.xml | 17 + .../res/drawable/ic_launcher_monochrome.xml | 0 .../res/drawable/ic_link_24dp.xml | 10 + .../res/drawable/ic_logo_mono.xml | 21 + .../res/drawable/ic_mood_24dp.xml | 10 + .../res/drawable/ic_notification.xml | 20 + .../res/drawable/ic_reply_black.xml | 11 + .../res/drawable/ic_wifi_24dp.xml | 10 + src/monocleschat/res/drawable/irc.xml | 12 + src/monocleschat/res/drawable/jabber.xml | 36 + src/monocleschat/res/drawable/main_logo.xml | 57 + src/monocleschat/res/drawable/matrix.xml | 22 + .../res/drawable/palette_24px.xml | 10 + src/monocleschat/res/drawable/pill.xml | 5 + src/monocleschat/res/drawable/restore.xml | 22 + .../res/drawable/schedule_message.xml | 11 + src/monocleschat/res/drawable/shield.xml | 10 + .../res/drawable/shield_question.xml | 11 + .../res/drawable/shield_verified.xml | 10 + src/monocleschat/res/drawable/snikket.xml | 192 + src/monocleschat/res/drawable/splash_logo.xml | 20 + src/monocleschat/res/drawable/subject.xml | 10 + src/monocleschat/res/drawable/textsend.xml | 9 + src/monocleschat/res/drawable/thread_hint.xml | 26 + .../res/drawable/toys_and_games_24dp.xml | 10 + src/monocleschat/res/font/archivoblack.ttf | Bin 0 -> 89156 bytes src/monocleschat/res/font/poppins.ttf | Bin 0 -> 158192 bytes .../res/layout/actionview_edit.xml | 17 + .../res/layout/activity_easy_invite.xml | 96 + .../res/layout/activity_import_backup.xml | 50 + .../res/layout/activity_magic_create.xml | 113 + .../res/layout/activity_pick_server.xml | 96 + .../res/layout/activity_webxdc_store.xml | 16 +- .../res/layout/activity_welcome.xml | 343 ++ .../res/layout/button_grid_item.xml | 3 +- .../res/layout/command_button.xml | 8 + .../res/layout/command_button_grid_field.xml | 15 +- .../res/layout/command_checkbox_field.xml | 8 +- .../res/layout/command_item_card.xml | 0 .../res/layout/command_note.xml | 10 +- src/monocleschat/res/layout/command_page.xml | 30 + .../res/layout/command_progress_bar.xml | 8 +- .../res/layout/command_radio_edit_field.xml | 13 +- .../res/layout/command_result_cell.xml | 5 +- .../res/layout/command_result_field.xml | 7 +- .../res/layout/command_search_list_field.xml | 13 +- .../res/layout/command_slider_field.xml | 39 + .../res/layout/command_spinner_field.xml | 9 +- .../res/layout/command_text_field.xml | 25 + .../res/layout/command_webview.xml | 5 +- .../res/layout/dialog_enter_password.xml | 53 + src/monocleschat/res/layout/emoji_search.xml | 16 + .../res/layout/emoji_search_row.xml | 42 + .../res/layout/radio_grid_item.xml | 2 +- .../res/layout/thread_row.xml | 4 +- src/monocleschat/res/layout/webxdc_page.xml | 28 + src/monocleschat/res/menu/block_muc.xml | 12 + .../res/menu/conference_photo.xml | 6 + src/monocleschat/res/menu/conversations.xml | 44 + .../res/menu/easy_onboarding_invite.xml | 10 + src/monocleschat/res/menu/manageaccounts.xml | 31 + .../res/menu/message_text_actions.xml | 0 src/monocleschat/res/menu/welcome_menu.xml | 22 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-hdpi/ic_launcher.webp | Bin .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../res/mipmap-hdpi/ic_launcher_round.webp | Bin src/{main => monocleschat}/res/raw/emoji.json | 0 .../res/raw/federation_diagram.svg | 295 + src/monocleschat/res/raw/jmp.svg | 33 + src/{main => monocleschat}/res/raw/webxdc.js | 0 src/monocleschat/res/raw/xmpp.svg | 435 ++ src/monocleschat/res/values-ar/strings.xml | 6 + src/monocleschat/res/values-bg/strings.xml | 17 + .../res/values-bn-rIN/strings.xml | 16 + src/monocleschat/res/values-ca/strings.xml | 17 + .../res/values-da-rDK/strings.xml | 16 + src/monocleschat/res/values-de/strings.xml | 16 + src/monocleschat/res/values-el/strings.xml | 16 + src/monocleschat/res/values-es/strings.xml | 16 + src/monocleschat/res/values-eu/strings.xml | 8 + .../res/values-fa-rIR/strings.xml | 6 + src/monocleschat/res/values-fr/strings.xml | 16 + src/monocleschat/res/values-gl/strings.xml | 16 + src/monocleschat/res/values-hu/strings.xml | 16 + src/monocleschat/res/values-id/strings.xml | 16 + src/monocleschat/res/values-it/strings.xml | 18 + src/monocleschat/res/values-ja/strings.xml | 16 + src/monocleschat/res/values-nl/strings.xml | 11 + src/monocleschat/res/values-pl/strings.xml | 16 + .../res/values-pt-rBR/strings.xml | 16 + .../res/values-ro-rRO/strings.xml | 16 + src/monocleschat/res/values-ru/strings.xml | 16 + src/monocleschat/res/values-sr/strings.xml | 9 + src/monocleschat/res/values-sv/strings.xml | 5 + .../res/values-tr-rTR/strings.xml | 16 + src/monocleschat/res/values-uk/strings.xml | 12 + src/monocleschat/res/values-vi/strings.xml | 16 + .../res/values-zh-rCN/strings.xml | 16 + src/monocleschat/res/values/attrs.xml | 7 + src/monocleschat/res/values/colors-themed.xml | 63 + src/monocleschat/res/values/colors.xml | 12 + src/monocleschat/res/values/strings.xml | 51 + src/monocleschat/res/values/styles.xml | 31 + src/monocleschatPlaystore | 1 + src/playstore/AndroidManifest.xml | 15 +- .../java/de/monocles/chat/StartUI.java | 42 - .../receiver/PushMessageReceiver.java | 43 + .../services/EmojiInitializationService.java | 2 +- .../services/MaintenanceReceiver.java | 33 +- .../services/PushManagementService.java | 4 +- .../services/PushMessageReceiver.java | 39 - .../utils/InstallReferrerUtils.java | 69 - .../conversations/utils/StorageHelper.java | 188 - src/playstore/res/values/push.xml | 10 +- src/playstore/res/values/strings.xml | 4 + src/quicksy/AndroidManifest.xml | 52 + .../android/de-DE/full_description.txt | 14 + .../android/de-DE/short_description.txt | 1 + .../android/en-US/full_description.txt | 14 + .../metadata/android/en-US/images/icon.png | Bin 0 -> 34816 bytes .../android/en-US/short_description.txt | 1 + .../metadata/android/eo/short_description.txt | 1 + .../android/es-ES/full_description.txt | 14 + .../android/es-ES/short_description.txt | 1 + .../android/gl-ES/full_description.txt | 14 + .../android/gl-ES/short_description.txt | 1 + .../android/it-IT/full_description.txt | 14 + .../android/it-IT/short_description.txt | 1 + .../android/pl-PL/full_description.txt | 13 + .../android/pl-PL/short_description.txt | 1 + .../metadata/android/ro/full_description.txt | 14 + .../metadata/android/ro/short_description.txt | 1 + .../android/ru-RU/full_description.txt | 14 + .../android/ru-RU/short_description.txt | 1 + .../metadata/android/sq/full_description.txt | 14 + .../metadata/android/sq/short_description.txt | 1 + .../android/tr-TR/short_description.txt | 1 + .../metadata/android/uk/full_description.txt | 14 + .../metadata/android/uk/short_description.txt | 1 + .../android/zh-CN/full_description.txt | 13 + .../android/zh-CN/short_description.txt | 1 + .../android/PhoneNumberContact.java | 90 + .../siacs/conversations/entities/Entry.java | 109 + .../services/QuickConversationsService.java | 551 ++ .../conversations/services/SMSReceiver.java | 22 + .../ui/ChooseCountryActivity.java | 131 + .../conversations/ui/EnterNameActivity.java | 50 +- .../ui/EnterPhoneNumberActivity.java | 241 + .../siacs/conversations/ui/TosActivity.java | 67 + .../conversations/ui/VerifyActivity.java | 361 ++ .../ui/adapter/CountryAdapter.java | 70 + .../ui/drawable/TextDrawable.java | 246 + .../ui/util/ApiDialogHelper.java | 101 + .../ui/util/PinEntryWrapper.java | 159 + .../utils/PhoneNumberUtilWrapper.java | 101 + src/quicksy/new_launcher-web.png | Bin 0 -> 23321 bytes src/quicksy/res/drawable-hdpi/launcher.png | Bin 0 -> 4512 bytes src/quicksy/res/drawable-hdpi/main_logo.png | Bin 0 -> 19860 bytes src/quicksy/res/drawable-hdpi/splash_logo.png | Bin 0 -> 14191 bytes src/quicksy/res/drawable-mdpi/launcher.png | Bin 0 -> 3001 bytes src/quicksy/res/drawable-mdpi/main_logo.png | Bin 0 -> 13004 bytes src/quicksy/res/drawable-mdpi/splash_logo.png | Bin 0 -> 9070 bytes src/quicksy/res/drawable-xhdpi/launcher.png | Bin 0 -> 6005 bytes src/quicksy/res/drawable-xhdpi/main_logo.png | Bin 0 -> 26976 bytes .../res/drawable-xhdpi/splash_logo.png | Bin 0 -> 19010 bytes src/quicksy/res/drawable-xxhdpi/launcher.png | Bin 0 -> 9070 bytes src/quicksy/res/drawable-xxhdpi/main_logo.png | Bin 0 -> 41177 bytes .../res/drawable-xxhdpi/splash_logo.png | Bin 0 -> 29217 bytes src/quicksy/res/drawable-xxxhdpi/launcher.png | Bin 0 -> 12398 bytes .../res/drawable-xxxhdpi/main_logo.png | Bin 0 -> 55474 bytes .../res/drawable-xxxhdpi/splash_logo.png | Bin 0 -> 39466 bytes .../res/drawable/ic_app_icon_notification.xml | 11 + .../res/drawable/ic_arrow_drop_down_18dp.xml | 12 + .../res/drawable/ic_launcher_foreground.xml | 13 + .../res/drawable/ic_launcher_monochrome.xml | 13 + .../res/layout/activity_choose_country.xml | 32 + .../res/layout/activity_enter_name.xml | 78 + .../res/layout/activity_enter_number.xml | 117 + src/quicksy/res/layout/activity_tos.xml | 93 + src/quicksy/res/layout/activity_verify.xml | 197 + src/quicksy/res/layout/country_item.xml | 29 + src/quicksy/res/menu/item_choose_country.xml | 11 + src/quicksy/res/mipmap-hdpi/new_launcher.png | Bin 0 -> 2829 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 0 -> 4704 bytes src/quicksy/res/mipmap-mdpi/new_launcher.png | Bin 0 -> 2031 bytes .../res/mipmap-mdpi/new_launcher_round.png | Bin 0 -> 3020 bytes src/quicksy/res/mipmap-xhdpi/new_launcher.png | Bin 0 -> 3900 bytes .../res/mipmap-xhdpi/new_launcher_round.png | Bin 0 -> 6674 bytes .../res/mipmap-xxhdpi/new_launcher.png | Bin 0 -> 5642 bytes .../res/mipmap-xxhdpi/new_launcher_round.png | Bin 0 -> 10202 bytes .../res/mipmap-xxxhdpi/new_launcher.png | Bin 0 -> 7697 bytes .../res/mipmap-xxxhdpi/new_launcher_round.png | Bin 0 -> 14559 bytes src/quicksy/res/values-ar/strings.xml | 12 + src/quicksy/res/values-bg/strings.xml | 12 + src/quicksy/res/values-ca/strings.xml | 12 + src/quicksy/res/values-da-rDK/strings.xml | 12 + src/quicksy/res/values-de/strings.xml | 12 + src/quicksy/res/values-el/strings.xml | 12 + src/quicksy/res/values-eo/strings.xml | 12 + src/quicksy/res/values-es/strings.xml | 12 + src/quicksy/res/values-fa/strings.xml | 12 + src/quicksy/res/values-fi/strings.xml | 12 + src/quicksy/res/values-fr/strings.xml | 12 + src/quicksy/res/values-gl/strings.xml | 12 + src/quicksy/res/values-hr/strings.xml | 12 + src/quicksy/res/values-hu/strings.xml | 12 + src/quicksy/res/values-id/strings.xml | 12 + src/quicksy/res/values-it/strings.xml | 12 + src/quicksy/res/values-ja/strings.xml | 12 + src/quicksy/res/values-nl/strings.xml | 12 + src/quicksy/res/values-pl/strings.xml | 12 + src/quicksy/res/values-pt-rBR/strings.xml | 12 + src/quicksy/res/values-ro-rRO/strings.xml | 12 + src/quicksy/res/values-ru/strings.xml | 12 + src/quicksy/res/values-sk/strings.xml | 12 + src/quicksy/res/values-sq/strings.xml | 12 + src/quicksy/res/values-sv/strings.xml | 12 + src/quicksy/res/values-szl/strings.xml | 12 + src/quicksy/res/values-tr-rTR/strings.xml | 12 + src/quicksy/res/values-uk/strings.xml | 12 + src/quicksy/res/values-vi/strings.xml | 12 + src/quicksy/res/values-zh-rCN/strings.xml | 12 + src/quicksy/res/values-zh-rTW/strings.xml | 12 + src/quicksy/res/values/colors-themed.xml | 64 + src/quicksy/res/values/defaults.xml | 4 + src/quicksy/res/values/strings.xml | 12 + .../utils/SmsRetrieverWrapper.java | 16 + .../utils/SmsRetrieverWrapper.java | 40 + 2719 files changed, 87259 insertions(+), 92153 deletions(-) create mode 100644 .builds/debian-stable.yml delete mode 100644 .circleci/config.yml delete mode 100644 .project create mode 100644 .woodpecker.yml create mode 100644 Gemfile create mode 100644 Gemfile.lock delete mode 100644 README-en.md delete mode 100644 README-fr.md create mode 100644 art/LICENSE create mode 100644 art/conversations_mono.svg create mode 100644 art/conversations_mono_dashed.svg create mode 100644 art/date_bubble_grey.svg create mode 100644 art/date_bubble_white.svg create mode 100644 art/flip_camera_android-black-24dp.svg create mode 100644 art/ic_launcher.svg create mode 100644 art/ic_missed_call_notification.svg create mode 100644 art/ic_no_results_black.svg create mode 100644 art/ic_no_results_white.svg create mode 100644 art/ic_notifications_none_white80.svg create mode 100644 art/ic_notifications_off_white80.svg create mode 100644 art/ic_notifications_paused_white80.svg create mode 100644 art/ic_notifications_white80.svg create mode 100644 art/ic_search_black.svg create mode 100644 art/ic_search_white.svg create mode 100644 art/ic_secure_indicator.xcf create mode 100644 art/ic_send_cancel_away.svg create mode 100644 art/ic_send_cancel_dnd.svg create mode 100644 art/ic_send_cancel_offline.svg create mode 100644 art/ic_send_cancel_offline_white.svg create mode 100644 art/ic_send_cancel_online.svg create mode 100644 art/ic_send_location_away.svg create mode 100644 art/ic_send_location_dnd.svg create mode 100644 art/ic_send_location_offline.svg create mode 100644 art/ic_send_location_offline_white.svg create mode 100644 art/ic_send_location_online.svg create mode 100644 art/ic_send_photo_away.svg create mode 100644 art/ic_send_photo_dnd.svg create mode 100644 art/ic_send_photo_offline.svg create mode 100644 art/ic_send_photo_offline_white.svg create mode 100644 art/ic_send_photo_online.svg create mode 100644 art/ic_send_picture_away.svg create mode 100644 art/ic_send_picture_dnd.svg create mode 100644 art/ic_send_picture_offline.svg create mode 100644 art/ic_send_picture_offline_white.svg create mode 100644 art/ic_send_picture_online.svg create mode 100644 art/ic_send_text_away.svg create mode 100644 art/ic_send_text_dnd.svg create mode 100644 art/ic_send_text_offline.svg create mode 100644 art/ic_send_text_offline_white.svg create mode 100644 art/ic_send_text_online.svg create mode 100644 art/ic_send_videocam_away.svg create mode 100644 art/ic_send_videocam_dnd.svg create mode 100644 art/ic_send_videocam_offline.svg create mode 100644 art/ic_send_videocam_offline_white.svg create mode 100644 art/ic_send_videocam_online.svg create mode 100644 art/ic_send_voice_away.svg create mode 100644 art/ic_send_voice_dnd.svg create mode 100644 art/ic_send_voice_offline.svg create mode 100644 art/ic_send_voice_offline_white.svg create mode 100644 art/ic_send_voice_online.svg create mode 100644 art/ic_verified_fingerprint.svg create mode 100644 art/logo.png create mode 120000 art/main_logo.svg create mode 100644 art/marker.svg create mode 100644 art/message_bubble_received.svg create mode 100644 art/message_bubble_received_dark.svg create mode 100644 art/message_bubble_received_grey.svg create mode 100644 art/message_bubble_received_obsidian.svg create mode 100644 art/message_bubble_received_warning.svg create mode 100644 art/message_bubble_received_white.svg create mode 100644 art/message_bubble_sent.svg create mode 100644 art/message_bubble_sent_grey.svg create mode 100644 art/omemo_logo.svg create mode 100644 art/open_pdf_black.svg create mode 100644 art/open_pdf_white.svg create mode 100644 art/play_gif_black.svg create mode 100644 art/play_gif_white.svg create mode 100644 art/play_video_black.svg create mode 100644 art/play_video_white.svg create mode 100644 art/qrcode-scan.svg create mode 100644 art/quicksy.svg create mode 120000 art/quicksy_main_logo.svg create mode 100644 art/quicksy_mono.svg create mode 120000 art/quicksy_splash_logo.svg create mode 100755 art/render.rb create mode 120000 art/splash_logo.svg delete mode 100644 crowdin.yml delete mode 100644 docs/MISSION.md delete mode 100644 docs/XEPs.md delete mode 100644 docs/encryption.md delete mode 100644 docs/observations.md create mode 100644 docs/user/backup.md create mode 100644 docs/user/migrating_to_new_device.md delete mode 100644 drawable/baseline_tour_black_48.png delete mode 100644 drawable/baseline_tour_white_48.png delete mode 100644 drawable/chat_graphic.svg delete mode 100644 drawable/ic_account_card_details_grey600_48dp.png delete mode 100644 drawable/ic_account_multiple_plus_grey600_48dp.png delete mode 100644 drawable/ic_account_plus_grey600_48dp.png delete mode 100644 drawable/ic_action_chat.png delete mode 100644 drawable/ic_action_reply.png delete mode 100644 drawable/ic_add_white_24dp.png delete mode 100644 drawable/ic_android_black_48dp.png delete mode 100644 drawable/ic_android_grey600_48dp.png delete mode 100644 drawable/ic_android_white_48dp.png delete mode 100644 drawable/ic_archive_black_48dp.png delete mode 100644 drawable/ic_archive_white_24dp.png delete mode 100644 drawable/ic_archive_white_48dp.png delete mode 100644 drawable/ic_arrow_back_white_24dp.png delete mode 100644 drawable/ic_attach_camera.png delete mode 100644 drawable/ic_attach_camera_white.png delete mode 100644 drawable/ic_attach_document.png delete mode 100644 drawable/ic_attach_document_white.png delete mode 100644 drawable/ic_attach_file_white_24dp.png delete mode 100644 drawable/ic_attach_location.png delete mode 100644 drawable/ic_attach_location_white.png delete mode 100644 drawable/ic_attach_photo.png delete mode 100644 drawable/ic_attach_photo_white.png delete mode 100644 drawable/ic_attach_record.png delete mode 100644 drawable/ic_attach_record_white.png delete mode 100644 drawable/ic_attach_video.png delete mode 100644 drawable/ic_attach_videocam.png delete mode 100644 drawable/ic_attach_videocam_white.png delete mode 100644 drawable/ic_attachment_black_24dp.png delete mode 100644 drawable/ic_attachment_white_24dp.png delete mode 100644 drawable/ic_audio_grey600_48dp.png delete mode 100644 drawable/ic_autorenew_white_24dp.png delete mode 100644 drawable/ic_backup_black_48dp.png delete mode 100644 drawable/ic_backup_white_48dp.png delete mode 100644 drawable/ic_bluetooth_audio_black_24dp.png delete mode 100644 drawable/ic_book_black_48dp.png delete mode 100644 drawable/ic_book_white_48dp.png delete mode 100644 drawable/ic_calendar_grey600_48dp.png delete mode 100644 drawable/ic_call_black_24dp.png delete mode 100644 drawable/ic_call_end_white_48dp.png delete mode 100644 drawable/ic_call_made_black_18dp.png delete mode 100644 drawable/ic_call_made_white_18dp.png delete mode 100644 drawable/ic_call_missed_black_18dp.png delete mode 100644 drawable/ic_call_missed_outgoing_black_18dp.png delete mode 100644 drawable/ic_call_missed_outgoing_white_18dp.png delete mode 100644 drawable/ic_call_missed_white_18dp.png delete mode 100644 drawable/ic_call_received_black_18dp.png delete mode 100644 drawable/ic_call_received_white_18dp.png delete mode 100644 drawable/ic_call_white_24dp.png delete mode 100644 drawable/ic_call_white_48dp.png delete mode 100644 drawable/ic_cancel_black_24dp.png delete mode 100644 drawable/ic_cancel_white_24dp.png delete mode 100644 drawable/ic_chat_white_24dp.png delete mode 100644 drawable/ic_check_all_black_18dp.png delete mode 100644 drawable/ic_check_all_white_18dp.png delete mode 100644 drawable/ic_check_black_18dp.png delete mode 100644 drawable/ic_check_white_18dp.png delete mode 100644 drawable/ic_clear_white_48dp.png delete mode 100644 drawable/ic_close_white_24dp.png delete mode 100644 drawable/ic_cloud_download_white_24dp.png delete mode 100644 drawable/ic_cloud_white_24dp.png delete mode 100644 drawable/ic_contact_white_24dp.png delete mode 100644 drawable/ic_contacts_white_24dp.png delete mode 100644 drawable/ic_content_copy_grey600_24dp.png delete mode 100644 drawable/ic_content_copy_white_24dp.png delete mode 100644 drawable/ic_delete_black_24dp.png delete mode 100644 drawable/ic_delete_grey600_24dp.png delete mode 100644 drawable/ic_delete_white_24dp.png delete mode 100644 drawable/ic_description_black_48dp.png delete mode 100644 drawable/ic_description_white_48dp.png delete mode 100644 drawable/ic_done_black_24dp.png delete mode 100644 drawable/ic_download_grey600_48dp.png delete mode 100644 drawable/ic_edit_black_24dp.png delete mode 100644 drawable/ic_edit_white_24dp.png delete mode 100644 drawable/ic_email_open_outline_white_24dp.png delete mode 100644 drawable/ic_error_white_24dp.png delete mode 100644 drawable/ic_event_black_48dp.png delete mode 100644 drawable/ic_event_white_48dp.png delete mode 100644 drawable/ic_file_download_white_24dp.png delete mode 100644 drawable/ic_file_grey600_48dp.png delete mode 100644 drawable/ic_file_pdf_grey600_48dp.png delete mode 100644 drawable/ic_flip_camera_android_black_24dp.png delete mode 100644 drawable/ic_forward_white_24dp.png delete mode 100644 drawable/ic_group_add_white_24dp.png delete mode 100644 drawable/ic_group_white_24dp.png delete mode 100644 drawable/ic_headset_black_24dp.png delete mode 100644 drawable/ic_headset_black_48dp.png delete mode 100644 drawable/ic_headset_white_48dp.png delete mode 100644 drawable/ic_help_black_24dp.png delete mode 100644 drawable/ic_help_black_48dp.png delete mode 100644 drawable/ic_help_circle_outline_black_24dp.png delete mode 100644 drawable/ic_help_circle_outline_white_24dp.png delete mode 100644 drawable/ic_help_circle_white_24dp.png delete mode 100644 drawable/ic_help_white_24dp.png delete mode 100644 drawable/ic_help_white_48dp.png delete mode 100644 drawable/ic_hourglass_empty_white_24dp.png delete mode 100644 drawable/ic_image_black_24dp.png delete mode 100644 drawable/ic_image_black_48dp.png delete mode 100644 drawable/ic_image_grey600_48dp.png delete mode 100644 drawable/ic_image_white_24dp.png delete mode 100644 drawable/ic_image_white_48dp.png delete mode 100644 drawable/ic_input_white_24dp.png delete mode 100644 drawable/ic_link_off_white_24dp.png delete mode 100644 drawable/ic_link_white_24dp.png delete mode 100644 drawable/ic_lock_black_18dp.png delete mode 100644 drawable/ic_lock_open_white_24dp.png delete mode 100644 drawable/ic_lock_white_18dp.png delete mode 100644 drawable/ic_lock_white_24dp.png delete mode 100644 drawable/ic_map_marker_grey600_48dp.png delete mode 100644 drawable/ic_menu_white_24dp.png delete mode 100644 drawable/ic_mic_black_24dp.png delete mode 100644 drawable/ic_mic_black_48dp.png delete mode 100644 drawable/ic_mic_off_black_24dp.png delete mode 100644 drawable/ic_mic_white_48dp.png delete mode 100644 drawable/ic_missed_call_notification.png delete mode 100644 drawable/ic_mode_edit_black_18dp.png delete mode 100644 drawable/ic_mode_edit_white_18dp.png delete mode 100644 drawable/ic_navigation_white_24dp.png delete mode 100644 drawable/ic_new_releases_black_24dp.png delete mode 100644 drawable/ic_new_releases_white_24dp.png delete mode 100644 drawable/ic_no_results_background_black.png delete mode 100644 drawable/ic_no_results_background_white.png delete mode 100644 drawable/ic_notification.png delete mode 100644 drawable/ic_notifications_black_24dp.png delete mode 100644 drawable/ic_notifications_grey600_24dp.png delete mode 100644 drawable/ic_notifications_none_black_24dp.png delete mode 100644 drawable/ic_notifications_none_white_24dp.png delete mode 100644 drawable/ic_notifications_off_black_24dp.png delete mode 100644 drawable/ic_notifications_off_white_24dp.png delete mode 100644 drawable/ic_notifications_paused_black_24dp.png delete mode 100644 drawable/ic_notifications_paused_white_24dp.png delete mode 100644 drawable/ic_notifications_white_24dp.png delete mode 100644 drawable/ic_open_in_new_white_24dp.png delete mode 100644 drawable/ic_pause_black_36dp.png delete mode 100644 drawable/ic_pause_white_36dp.png delete mode 100644 drawable/ic_person_add_white_24dp.png delete mode 100644 drawable/ic_person_black_48dp.png delete mode 100644 drawable/ic_person_white_48dp.png delete mode 100644 drawable/ic_phone_in_talk_black_18dp.png delete mode 100644 drawable/ic_phone_in_talk_white_18dp.png delete mode 100644 drawable/ic_phone_in_talk_white_24dp.png delete mode 100644 drawable/ic_play_arrow_black_36dp.png delete mode 100644 drawable/ic_play_arrow_white_36dp.png delete mode 100644 drawable/ic_play_circle_filled_white_48dp.png delete mode 100644 drawable/ic_public_white_24dp.png delete mode 100644 drawable/ic_qrcode_grey600_24dp.png delete mode 100644 drawable/ic_qrcode_scan_white_24dp.png delete mode 100644 drawable/ic_qrcode_white_24dp.png delete mode 100644 drawable/ic_question_answer_white_24dp.png delete mode 100644 drawable/ic_read_indicator.png delete mode 100644 drawable/ic_received_indicator.png delete mode 100644 drawable/ic_refresh_grey600_24dp.png delete mode 100644 drawable/ic_refresh_white_24dp.png delete mode 100644 drawable/ic_replay_white_48dp.png delete mode 100644 drawable/ic_reply_circle_black_24dp.png delete mode 100644 drawable/ic_reply_white_24dp.png delete mode 100644 drawable/ic_room_black_48dp.png delete mode 100644 drawable/ic_room_white_24dp.png delete mode 100644 drawable/ic_room_white_48dp.png delete mode 100644 drawable/ic_save_black_24dp.png delete mode 100644 drawable/ic_save_white_24dp.png delete mode 100644 drawable/ic_search_background_black.png delete mode 100644 drawable/ic_search_background_white.png delete mode 100644 drawable/ic_search_white_24dp.png delete mode 100644 drawable/ic_security_black_24dp.png delete mode 100644 drawable/ic_security_white_24dp.png delete mode 100644 drawable/ic_send_attachment_away.svg delete mode 100644 drawable/ic_send_attachment_dnd.svg delete mode 100644 drawable/ic_send_attachment_offline.svg delete mode 100644 drawable/ic_send_attachment_offline_white.svg delete mode 100644 drawable/ic_send_attachment_online.svg delete mode 100644 drawable/ic_send_cancel_away.svg delete mode 100644 drawable/ic_send_cancel_dnd.svg delete mode 100644 drawable/ic_send_cancel_offline.svg delete mode 100644 drawable/ic_send_cancel_offline_white.svg delete mode 100644 drawable/ic_send_cancel_online.svg delete mode 100644 drawable/ic_send_location_away.svg delete mode 100644 drawable/ic_send_location_dnd.svg delete mode 100644 drawable/ic_send_location_offline.svg delete mode 100644 drawable/ic_send_location_offline_white.svg delete mode 100644 drawable/ic_send_location_online.svg delete mode 100644 drawable/ic_send_photo_away.svg delete mode 100644 drawable/ic_send_photo_dnd.svg delete mode 100644 drawable/ic_send_photo_offline.svg delete mode 100644 drawable/ic_send_photo_offline_white.svg delete mode 100644 drawable/ic_send_photo_online.svg delete mode 100644 drawable/ic_send_picture_away.svg delete mode 100644 drawable/ic_send_picture_dnd.svg delete mode 100644 drawable/ic_send_picture_offline.svg delete mode 100644 drawable/ic_send_picture_offline_white.svg delete mode 100644 drawable/ic_send_picture_online.svg delete mode 100644 drawable/ic_send_text_away.svg delete mode 100644 drawable/ic_send_text_dnd.svg delete mode 100644 drawable/ic_send_text_offline.svg delete mode 100644 drawable/ic_send_text_offline_white.svg delete mode 100644 drawable/ic_send_text_online.svg delete mode 100644 drawable/ic_send_videocam_away.svg delete mode 100644 drawable/ic_send_videocam_dnd.svg delete mode 100644 drawable/ic_send_videocam_offline.svg delete mode 100644 drawable/ic_send_videocam_offline_white.svg delete mode 100644 drawable/ic_send_videocam_online.svg delete mode 100644 drawable/ic_send_voice_away.svg delete mode 100644 drawable/ic_send_voice_dnd.svg delete mode 100644 drawable/ic_send_voice_offline.svg delete mode 100644 drawable/ic_send_voice_offline_white.svg delete mode 100644 drawable/ic_send_voice_online.svg delete mode 100644 drawable/ic_settings_black_24dp.png delete mode 100644 drawable/ic_settings_white_24dp.png delete mode 100644 drawable/ic_share_black_24dp.png delete mode 100644 drawable/ic_share_white_24dp.png delete mode 100644 drawable/ic_speaker_notes_off_white_24dp.png delete mode 100644 drawable/ic_speaker_notes_white_24dp.png delete mode 100644 drawable/ic_star_black_24dp.png delete mode 100644 drawable/ic_star_white_24dp.png delete mode 100644 drawable/ic_unarchive_white_24dp.png delete mode 100644 drawable/ic_update_notification.png delete mode 100644 drawable/ic_verified_fingerprint.png delete mode 100644 drawable/ic_verified_user_black_18dp.png delete mode 100644 drawable/ic_verified_user_white_18dp.png delete mode 100644 drawable/ic_video_grey600_48dp.png delete mode 100644 drawable/ic_videocam_black_24dp.png delete mode 100644 drawable/ic_videocam_off_black_24dp.png delete mode 100644 drawable/ic_videocam_white_24dp.png delete mode 100644 drawable/ic_voicemail_white_24dp.png delete mode 100644 drawable/ic_volume_off_black_24dp.png delete mode 100644 drawable/ic_volume_up_black_24dp.png delete mode 100644 drawable/ic_vpn_key_white_24dp.png delete mode 100644 drawable/ic_warning_white_24dp.png delete mode 100644 drawable/ic_warning_white_48dp.png delete mode 100644 drawable/ic_wear_reply.png delete mode 100644 drawable/ic_web_grey600_48.png delete mode 100644 drawable/intro_account_details_icon.png delete mode 100644 drawable/intro_account_icon.png delete mode 100644 drawable/intro_contacts_icon.png delete mode 100644 drawable/intro_location_icon.png delete mode 100644 drawable/intro_memory_icon.png delete mode 100644 drawable/intro_security_icon.png delete mode 100644 drawable/intro_start_chat_icon.png delete mode 100644 drawable/intro_xmpp_icon.png delete mode 100644 drawable/logo_800.png delete mode 100644 drawable/logo_actionbar.png delete mode 100644 drawable/monocleslogo_chat-signet.svg delete mode 100644 drawable/pencil_overlay.png delete mode 100644 drawable/play_gif.png delete mode 100644 drawable/play_video.png delete mode 100644 drawable/raster.sh delete mode 100644 drawable/show_pdf.png delete mode 100644 git/release/output-metadata.json delete mode 100644 libs/AXML/.gitignore delete mode 100644 libs/AXML/build.gradle delete mode 100644 libs/AXML/proguard-rules.pro delete mode 100644 libs/AXML/src/main/java/fr/xgouchet/axml/Attribute.java delete mode 100644 libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlDomListener.java delete mode 100644 libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParser.java delete mode 100644 libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParserListener.java delete mode 100644 libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlUtils.java create mode 100644 monocles.doap delete mode 100644 monocles_chat.doap create mode 100644 monocleschatFree/debug/output-metadata.json delete mode 100644 playstore/release/output-metadata.json create mode 100644 src/androidTest/java/de/monocles/chat/test/ScreenshotTest.java create mode 100644 src/androidTest/res/drawable/carrot.webp create mode 100644 src/androidTest/res/drawable/cheogram.png create mode 100644 src/androidTest/res/drawable/komona.webp create mode 100644 src/androidTest/res/drawable/pepper.webp create mode 100644 src/conversations/AndroidManifest.xml create mode 100644 src/conversations/fastlane/metadata/android/da-DK/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/de-DE/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/de-DE/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/en-US/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/en-US/images/icon.png create mode 100644 src/conversations/fastlane/metadata/android/en-US/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/eo/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/es-ES/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/es-ES/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/fi-FI/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/fi-FI/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/fr-FR/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/fr-FR/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/gl-ES/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/gl-ES/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/it-IT/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/it-IT/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/ja-JP/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/pl-PL/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/pl-PL/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/ro/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/ro/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/ru-RU/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/ru-RU/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/sq/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/sq/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/sv-SE/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/sv-SE/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/tr-TR/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/tr-TR/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/uk/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/uk/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/zh-CN/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/zh-CN/short_description.txt create mode 100644 src/conversations/fastlane/metadata/android/zh-TW/full_description.txt create mode 100644 src/conversations/fastlane/metadata/android/zh-TW/short_description.txt rename src/{main => conversations}/java/eu/siacs/conversations/entities/AccountConfiguration.java (100%) create mode 100644 src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java create mode 100644 src/conversations/java/eu/siacs/conversations/services/QuickConversationsService.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java create mode 100644 src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java create mode 100644 src/conversations/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java create mode 100644 src/conversations/java/eu/siacs/conversations/utils/SignupUtils.java create mode 100644 src/conversations/new_launcher-web.png create mode 100644 src/conversations/res/drawable-hdpi/main_logo.png create mode 100644 src/conversations/res/drawable-hdpi/splash_logo.png create mode 100644 src/conversations/res/drawable-mdpi/main_logo.png create mode 100644 src/conversations/res/drawable-mdpi/splash_logo.png create mode 100644 src/conversations/res/drawable-xhdpi/main_logo.png create mode 100644 src/conversations/res/drawable-xhdpi/splash_logo.png create mode 100644 src/conversations/res/drawable-xxhdpi/main_logo.png create mode 100644 src/conversations/res/drawable-xxhdpi/splash_logo.png create mode 100644 src/conversations/res/drawable-xxxhdpi/main_logo.png create mode 100644 src/conversations/res/drawable-xxxhdpi/splash_logo.png create mode 100644 src/conversations/res/drawable/ic_app_icon_notification.xml create mode 100644 src/conversations/res/drawable/ic_launcher_foreground.xml create mode 100644 src/conversations/res/drawable/ic_launcher_monochrome.xml create mode 100644 src/conversations/res/layout/activity_easy_invite.xml create mode 100644 src/conversations/res/layout/activity_import_backup.xml create mode 100644 src/conversations/res/layout/activity_magic_create.xml create mode 100644 src/conversations/res/layout/activity_pick_server.xml create mode 100644 src/conversations/res/layout/activity_welcome.xml create mode 100644 src/conversations/res/layout/dialog_enter_password.xml create mode 100644 src/conversations/res/menu/easy_onboarding_invite.xml create mode 100644 src/conversations/res/menu/manageaccounts.xml create mode 100644 src/conversations/res/menu/welcome_menu.xml create mode 100644 src/conversations/res/mipmap-hdpi/new_launcher.png create mode 100644 src/conversations/res/mipmap-hdpi/new_launcher_round.png create mode 100644 src/conversations/res/mipmap-mdpi/new_launcher.png create mode 100644 src/conversations/res/mipmap-mdpi/new_launcher_round.png create mode 100644 src/conversations/res/mipmap-xhdpi/new_launcher.png create mode 100644 src/conversations/res/mipmap-xhdpi/new_launcher_round.png create mode 100644 src/conversations/res/mipmap-xxhdpi/new_launcher.png create mode 100644 src/conversations/res/mipmap-xxhdpi/new_launcher_round.png create mode 100644 src/conversations/res/mipmap-xxxhdpi/new_launcher.png create mode 100644 src/conversations/res/mipmap-xxxhdpi/new_launcher_round.png create mode 100644 src/conversations/res/values-ar/strings.xml create mode 100644 src/conversations/res/values-bg/strings.xml create mode 100644 src/conversations/res/values-bn-rIN/strings.xml create mode 100644 src/conversations/res/values-ca/strings.xml create mode 100644 src/conversations/res/values-da-rDK/strings.xml create mode 100644 src/conversations/res/values-de/strings.xml create mode 100644 src/conversations/res/values-el/strings.xml create mode 100644 src/conversations/res/values-eo/strings.xml create mode 100644 src/conversations/res/values-es/strings.xml create mode 100644 src/conversations/res/values-eu/strings.xml create mode 100644 src/conversations/res/values-fa-rIR/strings.xml create mode 100644 src/conversations/res/values-fi/strings.xml create mode 100644 src/conversations/res/values-fr/strings.xml create mode 100644 src/conversations/res/values-gl/strings.xml create mode 100644 src/conversations/res/values-hr/strings.xml create mode 100644 src/conversations/res/values-hu/strings.xml create mode 100644 src/conversations/res/values-id/strings.xml create mode 100644 src/conversations/res/values-it/strings.xml create mode 100644 src/conversations/res/values-ja/strings.xml create mode 100644 src/conversations/res/values-nl/strings.xml create mode 100644 src/conversations/res/values-pl/strings.xml create mode 100644 src/conversations/res/values-pt-rBR/strings.xml create mode 100644 src/conversations/res/values-pt/strings.xml create mode 100644 src/conversations/res/values-ro-rRO/strings.xml create mode 100644 src/conversations/res/values-ru/strings.xml create mode 100644 src/conversations/res/values-sk/strings.xml create mode 100644 src/conversations/res/values-sq/strings.xml create mode 100644 src/conversations/res/values-sr/strings.xml create mode 100644 src/conversations/res/values-sv/strings.xml create mode 100644 src/conversations/res/values-szl/strings.xml create mode 100644 src/conversations/res/values-tr-rTR/strings.xml create mode 100644 src/conversations/res/values-uk/strings.xml create mode 100644 src/conversations/res/values-vi/strings.xml create mode 100644 src/conversations/res/values-zh-rCN/strings.xml create mode 100644 src/conversations/res/values-zh-rTW/strings.xml create mode 100644 src/conversations/res/values/colors-themed.xml create mode 100644 src/conversations/res/values/strings.xml create mode 100644 src/conversationsFree/java/eu/siacs/conversations/utils/InstallReferrerUtils.java create mode 100644 src/conversationsPlaystore/java/de/monocles/chat/CheogramLicenseChecker.java create mode 100644 src/conversationsPlaystore/java/eu/siacs/conversations/utils/InstallReferrerUtils.java create mode 100644 src/conversationsPlaystore/res/values/strings.xml delete mode 100644 src/debug/logo_actionbar_white-playstore.png delete mode 100644 src/debug/res/values/logo_actionbar_white_background.xml create mode 100644 src/free/AndroidManifest.xml create mode 100644 src/free/java/de/monocles/chat/CheogramLicenseChecker.java create mode 100644 src/free/java/eu/siacs/conversations/services/PushManagementService.java delete mode 100644 src/git/AndroidManifest.xml delete mode 100644 src/git/java/de/monocles/chat/ui/StartUI.java delete mode 100644 src/git/java/eu/siacs/conversations/services/EmojiInitializationService.java delete mode 100644 src/git/java/eu/siacs/conversations/services/PushManagementService.java delete mode 100644 src/git/java/eu/siacs/conversations/utils/InstallReferrerUtils.java delete mode 100644 src/git/java/eu/siacs/conversations/utils/StorageHelper.java delete mode 100644 src/main/assets/animate.min.css delete mode 100644 src/main/assets/font-awesome.min.css delete mode 100644 src/main/assets/fonts/weather.ttf delete mode 100644 src/main/assets/images/layers-2x.png delete mode 100644 src/main/assets/images/layers.png delete mode 100644 src/main/assets/images/marker-icon-2x.png delete mode 100644 src/main/assets/images/marker-icon.png delete mode 100644 src/main/assets/images/marker-shadow.png delete mode 100644 src/main/assets/jquery.min.js delete mode 100644 src/main/assets/leaflet.css delete mode 100644 src/main/assets/leaflet.js delete mode 100644 src/main/assets/leaflet.js.map delete mode 100644 src/main/assets/map.html delete mode 100644 src/main/java/de/monocles/chat/BobTransfer.java delete mode 100644 src/main/java/de/monocles/chat/Config.java delete mode 100644 src/main/java/de/monocles/chat/ConversationPage.java delete mode 100644 src/main/java/de/monocles/chat/DownloadDefaultStickers.java delete mode 100644 src/main/java/de/monocles/chat/EmojiSearch.java delete mode 100644 src/main/java/de/monocles/chat/GifsAdapter.java delete mode 100644 src/main/java/de/monocles/chat/InlineImageSpan.java delete mode 100644 src/main/java/de/monocles/chat/KeyboardHeightProvider.java delete mode 100644 src/main/java/de/monocles/chat/MonoclesViewPager.java delete mode 100644 src/main/java/de/monocles/chat/ReadMoreListener.java delete mode 100644 src/main/java/de/monocles/chat/ReadMoreTextView.java delete mode 100644 src/main/java/de/monocles/chat/RegisterMonoclesActivity.java delete mode 100644 src/main/java/de/monocles/chat/SignUpPage.java delete mode 100644 src/main/java/de/monocles/chat/SpannedToXHTML.java delete mode 100644 src/main/java/de/monocles/chat/StickerAdapter.java delete mode 100644 src/main/java/de/monocles/chat/TagEditorView.java delete mode 100644 src/main/java/de/monocles/chat/Util.java delete mode 100644 src/main/java/de/monocles/chat/WebviewAwareViewPager.java delete mode 100644 src/main/java/de/monocles/chat/WebxdcPage.java delete mode 100644 src/main/java/de/monocles/chat/WebxdcStore.java delete mode 100644 src/main/java/de/monocles/chat/WebxdcUpdate.java delete mode 100644 src/main/java/de/monocles/chat/services/ProviderService.java delete mode 100644 src/main/java/de/monocles/chat/ui/PermissionsActivity.java delete mode 100644 src/main/java/de/monocles/chat/utils create mode 100644 src/main/java/eu/siacs/conversations/AppSettings.java create mode 100644 src/main/java/eu/siacs/conversations/Conversations.java delete mode 100644 src/main/java/eu/siacs/conversations/android/PhoneNumberContact.java delete mode 100644 src/main/java/eu/siacs/conversations/crypto/OtrService.java delete mode 100644 src/main/java/eu/siacs/conversations/http/NoSSLv3SocketFactory.java create mode 100644 src/main/java/eu/siacs/conversations/receiver/SystemEventReceiver.java rename src/main/java/eu/siacs/conversations/{services => receiver}/UnifiedPushDistributor.java (85%) create mode 100644 src/main/java/eu/siacs/conversations/receiver/WorkManagerEventReceiver.java delete mode 100644 src/main/java/eu/siacs/conversations/services/AlarmReceiver.java delete mode 100644 src/main/java/eu/siacs/conversations/services/AudioPlayer.java delete mode 100644 src/main/java/eu/siacs/conversations/services/EventReceiver.java delete mode 100644 src/main/java/eu/siacs/conversations/services/ExportBackupService.java delete mode 100644 src/main/java/eu/siacs/conversations/services/ImportBackupService.java delete mode 100644 src/main/java/eu/siacs/conversations/services/QuickConversationsService.java delete mode 100644 src/main/java/eu/siacs/conversations/services/UpdateService.java create mode 100644 src/main/java/eu/siacs/conversations/ui/Activities.java create mode 100644 src/main/java/eu/siacs/conversations/ui/BaseActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/ConferenceContactDetailsActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/ConversationActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/EnterNameActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/ExtendedFabSizeChanger.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/ImportBackupActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/IntroActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/MagicCreateActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/MediaViewerActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/MemoryManagementActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/MemoryManagementPref.java create mode 100644 src/main/java/eu/siacs/conversations/ui/RecordingActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/RecyclerViews.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/SetSettingsActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/SettingsActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/SettingsFragment.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/VerifyOTRActivity.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/WelcomeActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/activity/SettingsActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/activity/result/PickRingtone.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/adapter/MessageLogAdapter.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/adapter/model/MessageLogModel.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormBooleanFieldWrapper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormFieldFactory.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormFieldWrapper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormJidSingleFieldWrapper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormTextFieldWrapper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/forms/FormWrapper.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/AttachmentsSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/BackupSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/ConnectionSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/InterfaceSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/MainSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/PrivacySettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/SecuritySettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/UpSettingsFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/fragment/settings/XmppPreferenceFragment.java create mode 100644 src/main/java/eu/siacs/conversations/ui/service/AudioPlayer.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/ActionBarUtil.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/CallManager.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/CustomTab.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/GetAvatarFromJabberNetwork.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/IntroHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/KeyboardUtils.java rename src/main/java/eu/siacs/conversations/{utils => ui/util}/MenuDoubleTabUtil.java (77%) delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java create mode 100644 src/main/java/eu/siacs/conversations/ui/util/ToolbarUtils.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/UpdateHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/widget/FailedCountCustomView.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/widget/RichLinkView.java create mode 100644 src/main/java/eu/siacs/conversations/utils/BiConsumer.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/CameraUtils.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/Consumer.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/EncryptDecryptFile.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/ExifHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/FirstStartManager.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/LocationHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/MetaData.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/PRNGFixes.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/ProviderHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/RichPreview.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/SignupUtils.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/TrackingHelper.java create mode 100644 src/main/java/eu/siacs/conversations/worker/ExportBackupWorker.java delete mode 100644 src/main/java/eu/siacs/conversations/xmpp/OnGatewayPromptResult.java delete mode 100644 src/main/java/eu/siacs/conversations/xmpp/OnNewKeysAvailable.java delete mode 100644 src/main/java/eu/siacs/conversations/xmpp/Patches.java delete mode 100644 src/main/java/eu/siacs/conversations/xmpp/jid/OtrJidHelper.java create mode 100644 src/main/java/eu/siacs/conversations/xmpp/jingle/ToneManager.java delete mode 100644 src/main/java/p32929/easypasscodelock/Activities/LockscreenActivity.java delete mode 100644 src/main/java/p32929/easypasscodelock/Interfaces/ActivityChanger.java delete mode 100644 src/main/java/p32929/easypasscodelock/Utils/EasyLock.java delete mode 100644 src/main/java/p32929/easypasscodelock/Utils/EasylockSP.java delete mode 100644 src/main/java/p32929/easypasscodelock/Utils/LockscreenHandler.java delete mode 100644 src/main/res/anim/dft.xml delete mode 100644 src/main/res/anim/ufb.xml delete mode 100644 src/main/res/animator/fade_in.xml delete mode 100644 src/main/res/animator/fade_left_in.xml delete mode 100644 src/main/res/animator/fade_left_out.xml delete mode 100644 src/main/res/animator/fade_out.xml delete mode 100644 src/main/res/animator/fade_right_in.xml delete mode 100644 src/main/res/animator/fade_right_out.xml delete mode 100644 src/main/res/color/button_state_color.xml create mode 100644 src/main/res/color/hint_on_tertiary_container.xml delete mode 100644 src/main/res/color/text_input_stroke_color.xml delete mode 100644 src/main/res/drawable-anydpi-v24/ic_link_off_white_24dp.xml delete mode 100644 src/main/res/drawable-anydpi-v24/ic_link_white_24dp.xml delete mode 100644 src/main/res/drawable-hdpi/ic_android_black_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_android_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_attachment_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_attachment_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_autorenew_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_bluetooth_audio_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_made_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_made_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_missed_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_missed_outgoing_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_missed_outgoing_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_missed_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_received_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_call_received_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_all_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_all_blue_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_all_green_blue_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_all_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_blue_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_check_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_clear_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_close_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_close_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_content_copy_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_content_copy_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_email_open_outline_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_bold_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_bold_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_italic_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_italic_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_monospace_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_monospace_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_strikethrough_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_format_strikethrough_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_not_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_headset_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_headset_black_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_headset_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_black_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_circle_outline_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_circle_outline_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_circle_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_help_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_hourglass_empty_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_input_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_link_off_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_link_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_lock_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_lock_open_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_lock_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_lock_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_map_marker_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_menu_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mic_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mic_black_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mic_off_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mic_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mode_edit_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_mode_edit_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_navigation_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_new_releases_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_new_releases_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_no_results_background_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_no_results_background_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_notification.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_none_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_none_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_off_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_off_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_paused_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_paused_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_pause_black_36dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_pause_white_36dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_play_arrow_black_36dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_play_arrow_white_36dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_play_circle_filled_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_public_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_qrcode_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_qrcode_scan_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_qrcode_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_question_answer_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_read_indicator.png delete mode 100644 src/main/res/drawable-hdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-hdpi/ic_refresh_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_refresh_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_replay_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_reply_circle_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_reply_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_room_black_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_room_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_room_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_save_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_save_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_search_background_black.png delete mode 100644 src/main/res/drawable-hdpi/ic_search_background_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_search_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_security_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_security_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_settings_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_settings_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_share_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_share_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_speaker_notes_off_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_star_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_star_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_unarchive_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_update_notification.png delete mode 100644 src/main/res/drawable-hdpi/ic_verified_fingerprint.png delete mode 100644 src/main/res/drawable-hdpi/ic_verified_user_black_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_verified_user_white_18dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_video_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_videocam_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_voicemail_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_volume_off_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_volume_up_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_vpn_key_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_warning_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_warning_white_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_wear_reply.png delete mode 100644 src/main/res/drawable-hdpi/ic_web_grey600_48.png delete mode 100644 src/main/res/drawable-hdpi/intro_account_details_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_account_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_contacts_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_location_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_memory_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_security_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_start_chat_icon.png delete mode 100644 src/main/res/drawable-hdpi/intro_xmpp_icon.png delete mode 100644 src/main/res/drawable-hdpi/logo_800.png delete mode 100644 src/main/res/drawable-hdpi/logo_actionbar.png create mode 100644 src/main/res/drawable-hdpi/open_pdf_black.png create mode 100644 src/main/res/drawable-hdpi/open_pdf_white.png delete mode 100644 src/main/res/drawable-hdpi/pencil_overlay.png delete mode 100644 src/main/res/drawable-hdpi/play_gif.png create mode 100644 src/main/res/drawable-hdpi/play_gif_black.png create mode 100644 src/main/res/drawable-hdpi/play_gif_white.png delete mode 100644 src/main/res/drawable-hdpi/play_video.png create mode 100644 src/main/res/drawable-hdpi/play_video_black.png create mode 100644 src/main/res/drawable-hdpi/play_video_white.png delete mode 100644 src/main/res/drawable-hdpi/show_pdf.png delete mode 100644 src/main/res/drawable-mdpi/ic_android_black_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_android_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_attachment_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_attachment_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_autorenew_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_bluetooth_audio_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_made_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_made_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_missed_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_missed_outgoing_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_missed_outgoing_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_missed_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_received_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_call_received_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_all_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_all_blue_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_all_green_blue_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_all_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_blue_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_check_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_clear_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_close_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_close_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_content_copy_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_content_copy_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_email_open_outline_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_bold_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_bold_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_italic_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_italic_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_monospace_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_monospace_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_strikethrough_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_format_strikethrough_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_not_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_headset_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_headset_black_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_headset_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_black_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_circle_outline_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_circle_outline_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_circle_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_help_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_hourglass_empty_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_input_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_link_off_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_link_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_lock_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_lock_open_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_lock_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_lock_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_map_marker_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_menu_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mic_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mic_black_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mic_off_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mic_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mode_edit_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_mode_edit_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_navigation_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_new_releases_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_new_releases_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_no_results_background_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_no_results_background_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_notification.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_none_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_none_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_off_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_off_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_paused_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_paused_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_pause_black_36dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_pause_white_36dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_play_arrow_black_36dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_play_arrow_white_36dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_play_circle_filled_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_public_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_qrcode_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_qrcode_scan_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_qrcode_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_question_answer_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_read_indicator.png delete mode 100644 src/main/res/drawable-mdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-mdpi/ic_refresh_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_refresh_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_replay_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_reply_circle_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_reply_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_room_black_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_room_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_room_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_save_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_save_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_search_background_black.png delete mode 100644 src/main/res/drawable-mdpi/ic_search_background_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_search_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_security_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_security_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_settings_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_settings_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_share_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_share_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_speaker_notes_off_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_star_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_star_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_unarchive_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_update_notification.png delete mode 100644 src/main/res/drawable-mdpi/ic_verified_fingerprint.png delete mode 100644 src/main/res/drawable-mdpi/ic_verified_user_black_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_verified_user_white_18dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_video_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_videocam_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_voicemail_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_volume_off_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_volume_up_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_vpn_key_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_warning_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_warning_white_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_wear_reply.png delete mode 100644 src/main/res/drawable-mdpi/ic_web_grey600_48.png delete mode 100644 src/main/res/drawable-mdpi/intro_account_details_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_account_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_contacts_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_location_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_memory_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_security_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_start_chat_icon.png delete mode 100644 src/main/res/drawable-mdpi/intro_xmpp_icon.png delete mode 100644 src/main/res/drawable-mdpi/logo_800.png delete mode 100644 src/main/res/drawable-mdpi/logo_actionbar.png create mode 100644 src/main/res/drawable-mdpi/open_pdf_black.png create mode 100644 src/main/res/drawable-mdpi/open_pdf_white.png delete mode 100644 src/main/res/drawable-mdpi/pencil_overlay.png delete mode 100644 src/main/res/drawable-mdpi/play_gif.png delete mode 100644 src/main/res/drawable-mdpi/play_video.png delete mode 100644 src/main/res/drawable-mdpi/show_pdf.png delete mode 100644 src/main/res/drawable-nodpi/bg_dark_blue.png delete mode 100644 src/main/res/drawable-nodpi/bg_dark_grey.png delete mode 100644 src/main/res/drawable-nodpi/bg_dark_orange.png delete mode 100644 src/main/res/drawable-nodpi/bg_dark_pink.png delete mode 100644 src/main/res/drawable-nodpi/bg_light_blue.png delete mode 100644 src/main/res/drawable-nodpi/bg_light_grey.png delete mode 100644 src/main/res/drawable-nodpi/bg_light_orange.png delete mode 100644 src/main/res/drawable-nodpi/bg_light_pink.png create mode 100644 src/main/res/drawable-v24/ic_launcher_background.xml delete mode 100644 src/main/res/drawable-xhdpi/ic_android_black_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_android_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_attachment_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_attachment_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_autorenew_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_bluetooth_audio_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_made_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_made_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_missed_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_missed_outgoing_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_missed_outgoing_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_missed_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_received_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_call_received_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_all_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_all_blue_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_all_green_blue_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_all_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_blue_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_check_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_clear_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_close_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_close_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_content_copy_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_content_copy_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_email_open_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_bold_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_bold_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_italic_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_italic_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_monospace_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_monospace_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_strikethrough_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_format_strikethrough_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_not_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_headset_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_headset_black_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_headset_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_black_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_outline_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_help_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_hourglass_empty_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_input_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_link_off_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_link_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_lock_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_lock_open_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_lock_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_lock_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_map_marker_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_menu_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mic_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mic_black_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mic_off_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mic_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mode_edit_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_mode_edit_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_navigation_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_new_releases_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_new_releases_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_no_results_background_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_no_results_background_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notification.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_none_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_none_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_off_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_off_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_paused_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_paused_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_pause_black_36dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_pause_white_36dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_play_arrow_black_36dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_play_arrow_white_36dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_play_circle_filled_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_public_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_scan_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_question_answer_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_read_indicator.png delete mode 100644 src/main/res/drawable-xhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xhdpi/ic_refresh_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_refresh_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_replay_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_reply_circle_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_reply_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_room_black_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_room_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_room_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_save_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_save_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_search_background_black.png delete mode 100644 src/main/res/drawable-xhdpi/ic_search_background_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_search_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_security_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_security_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_settings_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_settings_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_share_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_share_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_speaker_notes_off_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_star_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_star_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_update_notification.png delete mode 100644 src/main/res/drawable-xhdpi/ic_verified_fingerprint.png delete mode 100644 src/main/res/drawable-xhdpi/ic_verified_user_black_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_verified_user_white_18dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_video_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_videocam_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_voicemail_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_volume_off_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_volume_up_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_vpn_key_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_warning_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_warning_white_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_wear_reply.png delete mode 100644 src/main/res/drawable-xhdpi/ic_web_grey600_48.png delete mode 100644 src/main/res/drawable-xhdpi/intro_account_details_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_account_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_contacts_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_location_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_memory_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_security_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_start_chat_icon.png delete mode 100644 src/main/res/drawable-xhdpi/intro_xmpp_icon.png delete mode 100644 src/main/res/drawable-xhdpi/logo_800.png delete mode 100644 src/main/res/drawable-xhdpi/logo_actionbar.png create mode 100644 src/main/res/drawable-xhdpi/open_pdf_black.png create mode 100644 src/main/res/drawable-xhdpi/open_pdf_white.png delete mode 100644 src/main/res/drawable-xhdpi/pencil_overlay.png delete mode 100644 src/main/res/drawable-xhdpi/play_gif.png create mode 100644 src/main/res/drawable-xhdpi/play_gif_black.png create mode 100644 src/main/res/drawable-xhdpi/play_gif_white.png delete mode 100644 src/main/res/drawable-xhdpi/play_video.png create mode 100644 src/main/res/drawable-xhdpi/play_video_black.png create mode 100644 src/main/res/drawable-xhdpi/play_video_white.png delete mode 100644 src/main/res/drawable-xhdpi/show_pdf.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_android_black_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_android_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_attachment_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_attachment_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_autorenew_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_bluetooth_audio_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_made_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_made_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_missed_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_missed_outgoing_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_missed_outgoing_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_missed_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_received_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_call_received_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_all_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_all_blue_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_all_green_blue_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_all_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_blue_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_check_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_clear_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_close_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_close_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_content_copy_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_content_copy_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_email_open_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_bold_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_bold_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_italic_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_italic_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_monospace_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_monospace_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_strikethrough_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_format_strikethrough_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_not_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_headset_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_headset_black_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_headset_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_black_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_outline_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_help_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_hourglass_empty_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_input_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_link_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_link_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_lock_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_lock_open_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_lock_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_lock_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_map_marker_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_menu_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mic_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mic_black_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mic_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mic_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mode_edit_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_mode_edit_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_navigation_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_new_releases_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_new_releases_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_no_results_background_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_no_results_background_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notification.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_none_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_none_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_paused_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_paused_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_pause_black_36dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_pause_white_36dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_play_arrow_black_36dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_play_arrow_white_36dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_play_circle_filled_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_public_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_scan_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_question_answer_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_read_indicator.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_refresh_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_refresh_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_replay_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_reply_circle_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_reply_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_room_black_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_room_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_room_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_save_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_save_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_search_background_black.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_search_background_white.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_search_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_security_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_security_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_settings_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_share_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_share_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_speaker_notes_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_star_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_star_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_update_notification.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_verified_fingerprint.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_verified_user_black_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_verified_user_white_18dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_video_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_videocam_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_voicemail_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_volume_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_volume_up_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_vpn_key_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_warning_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_warning_white_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_wear_reply.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_web_grey600_48.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_account_details_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_account_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_contacts_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_location_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_memory_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_security_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_start_chat_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/intro_xmpp_icon.png delete mode 100644 src/main/res/drawable-xxhdpi/logo_800.png delete mode 100644 src/main/res/drawable-xxhdpi/logo_actionbar.png create mode 100644 src/main/res/drawable-xxhdpi/open_pdf_black.png create mode 100644 src/main/res/drawable-xxhdpi/open_pdf_white.png delete mode 100644 src/main/res/drawable-xxhdpi/pencil_overlay.png delete mode 100644 src/main/res/drawable-xxhdpi/play_gif.png create mode 100644 src/main/res/drawable-xxhdpi/play_gif_black.png create mode 100644 src/main/res/drawable-xxhdpi/play_gif_white.png delete mode 100644 src/main/res/drawable-xxhdpi/play_video.png create mode 100644 src/main/res/drawable-xxhdpi/play_video_black.png create mode 100644 src/main/res/drawable-xxhdpi/play_video_white.png delete mode 100644 src/main/res/drawable-xxhdpi/show_pdf.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_android_black_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_android_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_attachment_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_attachment_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_autorenew_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_bluetooth_audio_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_made_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_made_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_missed_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_missed_outgoing_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_missed_outgoing_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_missed_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_received_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_call_received_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_all_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_all_blue_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_all_green_blue_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_all_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_blue_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_check_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_clear_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_content_copy_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_content_copy_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_email_open_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_not_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_headset_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_headset_black_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_headset_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_black_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_outline_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_outline_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_help_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_hourglass_empty_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_input_white_24dp.png delete mode 100755 src/main/res/drawable-xxxhdpi/ic_link_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_link_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_lock_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_lock_open_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_lock_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_lock_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_map_marker_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_menu_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_black_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mode_edit_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_mode_edit_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_navigation_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_new_releases_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_new_releases_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_no_results_background_black.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_no_results_background_white.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notification.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_none_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_none_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_paused_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_paused_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_pause_black_36dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_pause_white_36dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_play_arrow_black_36dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_play_arrow_white_36dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_play_circle_filled_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_public_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_scan_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_question_answer_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_read_indicator.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_refresh_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_refresh_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_replay_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_reply_circle_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_reply_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_room_black_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_room_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_room_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_save_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_search_background_black.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_search_background_white.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_search_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_security_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_security_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_settings_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_share_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_share_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_speaker_notes_off_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_star_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_update_notification.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_verified_fingerprint.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_verified_user_black_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_verified_user_white_18dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_video_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_videocam_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_voicemail_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_volume_off_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_volume_up_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_vpn_key_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_warning_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_warning_white_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_web_grey600_48.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_account_details_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_account_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_contacts_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_location_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_memory_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_security_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_start_chat_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/intro_xmpp_icon.png delete mode 100644 src/main/res/drawable-xxxhdpi/logo_800.png delete mode 100644 src/main/res/drawable-xxxhdpi/logo_actionbar.png create mode 100644 src/main/res/drawable-xxxhdpi/open_pdf_black.png create mode 100644 src/main/res/drawable-xxxhdpi/open_pdf_white.png delete mode 100644 src/main/res/drawable-xxxhdpi/pencil_overlay.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_gif.png create mode 100644 src/main/res/drawable-xxxhdpi/play_gif_black.png create mode 100644 src/main/res/drawable-xxxhdpi/play_gif_white.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_video.png create mode 100644 src/main/res/drawable-xxxhdpi/play_video_black.png create mode 100644 src/main/res/drawable-xxxhdpi/play_video_white.png delete mode 100644 src/main/res/drawable-xxxhdpi/show_pdf.png delete mode 100644 src/main/res/drawable/accounts_selected_black_24.xml delete mode 100644 src/main/res/drawable/accounts_selected_white_24.xml delete mode 100644 src/main/res/drawable/active_indicator.xml delete mode 100644 src/main/res/drawable/background.xml create mode 100644 src/main/res/drawable/background_account_profile_picture.xml create mode 100644 src/main/res/drawable/background_label.xml create mode 100644 src/main/res/drawable/background_list_item.xml create mode 100644 src/main/res/drawable/background_message_bubble.xml create mode 100644 src/main/res/drawable/background_message_separator.xml create mode 100644 src/main/res/drawable/background_no_results.xml create mode 100644 src/main/res/drawable/background_search.xml create mode 100644 src/main/res/drawable/background_selectable_list_item.xml create mode 100644 src/main/res/drawable/background_selected_item_conversation.xml create mode 100644 src/main/res/drawable/background_splash_screen.xml create mode 100644 src/main/res/drawable/background_surface_container.xml delete mode 100644 src/main/res/drawable/baseline_tour_black_48.xml delete mode 100644 src/main/res/drawable/baseline_tour_white_48.xml delete mode 100644 src/main/res/drawable/black_cursor.xml delete mode 100644 src/main/res/drawable/business_black.xml delete mode 100644 src/main/res/drawable/business_white.xml delete mode 100644 src/main/res/drawable/button_have_account.xml delete mode 100644 src/main/res/drawable/button_outlined.xml delete mode 100644 src/main/res/drawable/chat_graphic_white.xml delete mode 100644 src/main/res/drawable/chat_selected_black_24.xml delete mode 100644 src/main/res/drawable/chat_selected_white_24.xml delete mode 100644 src/main/res/drawable/chatbg.xml delete mode 100644 src/main/res/drawable/choose_file_black_24dp.xml delete mode 100644 src/main/res/drawable/choose_file_white_24dp.xml delete mode 100644 src/main/res/drawable/comment_bubble_light.xml create mode 100644 src/main/res/drawable/cursor_on_tertiary_container.xml delete mode 100644 src/main/res/drawable/dark_cursor.xml delete mode 100644 src/main/res/drawable/date_bubble.xml delete mode 100644 src/main/res/drawable/date_bubble_dark.xml delete mode 100644 src/main/res/drawable/document_black_24.xml delete mode 100644 src/main/res/drawable/document_white_24.xml delete mode 100644 src/main/res/drawable/duration_background.xml delete mode 100644 src/main/res/drawable/email_black.xml delete mode 100644 src/main/res/drawable/email_white.xml delete mode 100644 src/main/res/drawable/grey.xml delete mode 100644 src/main/res/drawable/greybackground.xml delete mode 100644 src/main/res/drawable/ic_account_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_account_card_details_grey600_48dp.xml delete mode 100644 src/main/res/drawable/ic_account_multiple_plus_grey600_48dp.xml delete mode 100644 src/main/res/drawable/ic_account_plus_grey600_48dp.xml delete mode 100644 src/main/res/drawable/ic_account_white_24dp.xml create mode 100644 src/main/res/drawable/ic_adb_48dp.xml create mode 100644 src/main/res/drawable/ic_add_24dp.xml delete mode 100644 src/main/res/drawable/ic_add_white_24dp.xml create mode 100644 src/main/res/drawable/ic_announcement_24dp.xml create mode 100644 src/main/res/drawable/ic_archive_24dp.xml create mode 100644 src/main/res/drawable/ic_archive_48dp.xml delete mode 100644 src/main/res/drawable/ic_archive_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_archive_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_archive_white_48dp.xml create mode 100644 src/main/res/drawable/ic_arrow_back_24dp.xml delete mode 100644 src/main/res/drawable/ic_arrow_back_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_arrow_back_white_24dp.xml create mode 100644 src/main/res/drawable/ic_assured_workload_24dp.xml create mode 100644 src/main/res/drawable/ic_attach_file_24dp.xml delete mode 100644 src/main/res/drawable/ic_attach_file_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_attach_file_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_attach_photo.xml create mode 100644 src/main/res/drawable/ic_attachment_24dp.xml delete mode 100644 src/main/res/drawable/ic_audio_grey600_48dp.xml create mode 100644 src/main/res/drawable/ic_auto_delete_24dp.xml create mode 100644 src/main/res/drawable/ic_autorenew_24dp.xml create mode 100644 src/main/res/drawable/ic_backup_48dp.xml delete mode 100644 src/main/res/drawable/ic_backup_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_backup_white_48dp.xml delete mode 100644 src/main/res/drawable/ic_baseline_check_24.xml create mode 100644 src/main/res/drawable/ic_bluetooth_audio_24dp.xml create mode 100644 src/main/res/drawable/ic_book_48dp.xml delete mode 100644 src/main/res/drawable/ic_book_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_book_white_48dp.xml create mode 100644 src/main/res/drawable/ic_calendar_month_24dp.xml create mode 100644 src/main/res/drawable/ic_call_24dp.xml delete mode 100644 src/main/res/drawable/ic_call_black54_24dp.xml create mode 100644 src/main/res/drawable/ic_call_end_24dp.xml delete mode 100644 src/main/res/drawable/ic_call_end_white_48dp.xml create mode 100644 src/main/res/drawable/ic_call_made_24dp.xml create mode 100644 src/main/res/drawable/ic_call_missed_24db.xml create mode 100644 src/main/res/drawable/ic_call_missed_24dp.xml create mode 100644 src/main/res/drawable/ic_call_missed_outgoing_24dp.xml create mode 100644 src/main/res/drawable/ic_call_received_24dp.xml delete mode 100644 src/main/res/drawable/ic_call_white70_24dp.xml delete mode 100644 src/main/res/drawable/ic_call_white_48dp.xml create mode 100644 src/main/res/drawable/ic_camera_alt_24dp.xml create mode 100644 src/main/res/drawable/ic_cancel_24dp.xml create mode 100644 src/main/res/drawable/ic_cancel_96dp.xml delete mode 100644 src/main/res/drawable/ic_cancel_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_cancel_white_24dp.xml create mode 100644 src/main/res/drawable/ic_chat_24dp.xml create mode 100644 src/main/res/drawable/ic_check_24dp.xml create mode 100644 src/main/res/drawable/ic_clear_24dp.xml create mode 100644 src/main/res/drawable/ic_cloud_download_24dp.xml delete mode 100644 src/main/res/drawable/ic_cloud_download_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_cloud_download_white_24dp.xml create mode 100644 src/main/res/drawable/ic_cloud_sync_24dp.xml delete mode 100644 src/main/res/drawable/ic_cloud_white_24dp.xml create mode 100644 src/main/res/drawable/ic_code_48dp.xml delete mode 100644 src/main/res/drawable/ic_contact_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_contact_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_contacts_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_contacts_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_content_copy_black_24dp.xml create mode 100644 src/main/res/drawable/ic_dark_mode_24dp.xml create mode 100644 src/main/res/drawable/ic_delete_24dp.xml delete mode 100644 src/main/res/drawable/ic_delete_black_18dp.xml delete mode 100644 src/main/res/drawable/ic_delete_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_delete_grey600_24dp.xml delete mode 100644 src/main/res/drawable/ic_delete_white_18dp.xml delete mode 100644 src/main/res/drawable/ic_delete_white_24dp.xml create mode 100644 src/main/res/drawable/ic_description_24dp.xml create mode 100644 src/main/res/drawable/ic_description_48dp.xml delete mode 100644 src/main/res/drawable/ic_description_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_description_white_48dp.xml delete mode 100644 src/main/res/drawable/ic_dialpad_black_24dp.xml create mode 100644 src/main/res/drawable/ic_directions_24dp.xml create mode 100644 src/main/res/drawable/ic_do_not_disturb_on_24dp.xml create mode 100644 src/main/res/drawable/ic_domino_mask_24dp.xml create mode 100644 src/main/res/drawable/ic_done_24dp.xml create mode 100644 src/main/res/drawable/ic_done_all_24dp.xml create mode 100644 src/main/res/drawable/ic_done_all_bold_24dp.xml create mode 100644 src/main/res/drawable/ic_download_24dp.xml delete mode 100644 src/main/res/drawable/ic_download_grey600_48dp.xml create mode 100644 src/main/res/drawable/ic_edit_24dp.xml delete mode 100644 src/main/res/drawable/ic_edit_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_edit_white_24dp.xml create mode 100644 src/main/res/drawable/ic_email_48dp.xml delete mode 100644 src/main/res/drawable/ic_emoji_button.xml delete mode 100644 src/main/res/drawable/ic_emoji_button_white.xml create mode 100644 src/main/res/drawable/ic_error_24dp.xml delete mode 100644 src/main/res/drawable/ic_error_white_24dp.xml create mode 100644 src/main/res/drawable/ic_event_48dp.xml delete mode 100644 src/main/res/drawable/ic_event_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_event_white_48dp.xml delete mode 100644 src/main/res/drawable/ic_file_download_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_file_download_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_file_grey600_48dp.xml create mode 100644 src/main/res/drawable/ic_flip_camera_android_24dp.xml delete mode 100644 src/main/res/drawable/ic_flip_camera_android_black_24dp.xml create mode 100644 src/main/res/drawable/ic_format_size_24dp.xml create mode 100644 src/main/res/drawable/ic_forum_24dp.xml delete mode 100644 src/main/res/drawable/ic_forward_white_24dp.xml create mode 100644 src/main/res/drawable/ic_gps_fixed_24dp.xml create mode 100644 src/main/res/drawable/ic_gps_not_fixed_24dp.xml create mode 100644 src/main/res/drawable/ic_group_24dp.xml delete mode 100644 src/main/res/drawable/ic_group_add_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_group_add_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_group_selected_black_24.xml delete mode 100644 src/main/res/drawable/ic_group_selected_white_24.xml create mode 100644 src/main/res/drawable/ic_headphones_48dp.xml create mode 100644 src/main/res/drawable/ic_headset_mic_24dp.xml create mode 100644 src/main/res/drawable/ic_help_24dp.xml create mode 100644 src/main/res/drawable/ic_help_center_24dp.xml create mode 100644 src/main/res/drawable/ic_help_center_48dp.xml create mode 100644 src/main/res/drawable/ic_hourglass_top_24dp.xml create mode 100644 src/main/res/drawable/ic_image_24dp.xml create mode 100644 src/main/res/drawable/ic_image_48dp.xml delete mode 100644 src/main/res/drawable/ic_image_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_image_grey600_48dp.xml delete mode 100644 src/main/res/drawable/ic_image_white_24dp.xml create mode 100644 src/main/res/drawable/ic_keyboard_24dp.xml create mode 100644 src/main/res/drawable/ic_keyboard_double_arrow_down_24dp.xml create mode 100644 src/main/res/drawable/ic_keyboard_return_24dp.xml create mode 100644 src/main/res/drawable/ic_label_24dp.xml create mode 100644 src/main/res/drawable/ic_link_24dp.xml create mode 100644 src/main/res/drawable/ic_link_off_24dp.xml create mode 100644 src/main/res/drawable/ic_location_pin_24dp.xml create mode 100644 src/main/res/drawable/ic_location_pin_48dp.xml create mode 100644 src/main/res/drawable/ic_lock_24dp.xml delete mode 100644 src/main/res/drawable/ic_lock_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_lock_open_black_24dp.xml create mode 100644 src/main/res/drawable/ic_lock_open_outline_24dp.xml create mode 100644 src/main/res/drawable/ic_login_24dp.xml create mode 100644 src/main/res/drawable/ic_logout_24dp.xml delete mode 100644 src/main/res/drawable/ic_logout_white_24dp.xml create mode 100644 src/main/res/drawable/ic_mark_chat_read_24dp.xml create mode 100644 src/main/res/drawable/ic_mediation_24dp.xml create mode 100644 src/main/res/drawable/ic_message_bubble_received.xml create mode 100644 src/main/res/drawable/ic_mic_24dp.xml create mode 100644 src/main/res/drawable/ic_mic_48dp.xml create mode 100644 src/main/res/drawable/ic_mic_off_24dp.xml delete mode 100644 src/main/res/drawable/ic_monocles_graphic.xml create mode 100644 src/main/res/drawable/ic_more_horiz_24dp.xml create mode 100644 src/main/res/drawable/ic_movie_24dp.xml create mode 100644 src/main/res/drawable/ic_movie_48dp.xml create mode 100644 src/main/res/drawable/ic_navigate_next_24dp.xml delete mode 100644 src/main/res/drawable/ic_navigation_black_24dp.xml create mode 100644 src/main/res/drawable/ic_network_node_24dp.xml create mode 100644 src/main/res/drawable/ic_new_releases_24dp.xml create mode 100644 src/main/res/drawable/ic_notifications_24dp.xml delete mode 100644 src/main/res/drawable/ic_notifications_black_24dp.xml create mode 100644 src/main/res/drawable/ic_notifications_none_24dp.xml create mode 100644 src/main/res/drawable/ic_notifications_off_24dp.xml create mode 100644 src/main/res/drawable/ic_notifications_paused_24dp.xml create mode 100644 src/main/res/drawable/ic_open_with_24dp.xml create mode 100644 src/main/res/drawable/ic_p2p_24dp.xml create mode 100644 src/main/res/drawable/ic_palette_24dp.xml create mode 100644 src/main/res/drawable/ic_pause_24dp.xml create mode 100644 src/main/res/drawable/ic_person_24dp.xml create mode 100644 src/main/res/drawable/ic_person_48dp.xml create mode 100644 src/main/res/drawable/ic_person_add_24dp.xml delete mode 100644 src/main/res/drawable/ic_person_add_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_person_add_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_person_black_48dp.xml delete mode 100644 src/main/res/drawable/ic_person_white_48dp.xml create mode 100644 src/main/res/drawable/ic_phone_24dp.xml create mode 100644 src/main/res/drawable/ic_phone_in_talk_24dp.xml delete mode 100644 src/main/res/drawable/ic_phone_in_talk_black_18dp.xml delete mode 100644 src/main/res/drawable/ic_phone_in_talk_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_phone_in_talk_white_18dp.xml delete mode 100644 src/main/res/drawable/ic_phone_in_talk_white_24dp.xml create mode 100644 src/main/res/drawable/ic_photo_24dp.xml create mode 100644 src/main/res/drawable/ic_play_arrow_24dp.xml create mode 100644 src/main/res/drawable/ic_play_circle_24dp.xml create mode 100644 src/main/res/drawable/ic_play_lesson_48dp.xml delete mode 100644 src/main/res/drawable/ic_play_lesson_black_24.xml delete mode 100644 src/main/res/drawable/ic_play_lesson_white_48dp.xml create mode 100644 src/main/res/drawable/ic_privacy_tip_24dp.xml create mode 100644 src/main/res/drawable/ic_private_connectivity_24dp.xml create mode 100644 src/main/res/drawable/ic_public_24dp.xml create mode 100644 src/main/res/drawable/ic_qr_code_24dp.xml delete mode 100644 src/main/res/drawable/ic_qr_code_black_24dp.xml create mode 100644 src/main/res/drawable/ic_qr_code_scanner_24dp.xml delete mode 100644 src/main/res/drawable/ic_qr_code_white_24dp.xml delete mode 100644 src/main/res/drawable/ic_qrcode_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_qrcode_scan_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_question_answer_black_24dp.xml create mode 100644 src/main/res/drawable/ic_refresh_24dp.xml create mode 100644 src/main/res/drawable/ic_replay_24dp.xml create mode 100644 src/main/res/drawable/ic_reply_24dp.xml delete mode 100644 src/main/res/drawable/ic_reply_black.xml create mode 100644 src/main/res/drawable/ic_report_24dp.xml create mode 100644 src/main/res/drawable/ic_save_24dp.xml create mode 100644 src/main/res/drawable/ic_screen_lock_portrait_24dp.xml create mode 100644 src/main/res/drawable/ic_screenshot_24dp.xml delete mode 100644 src/main/res/drawable/ic_scroll_to_end_black.xml delete mode 100644 src/main/res/drawable/ic_scroll_to_end_white.xml create mode 100644 src/main/res/drawable/ic_search_128dp.xml create mode 100644 src/main/res/drawable/ic_search_24dp.xml delete mode 100644 src/main/res/drawable/ic_search_black_24dp.xml create mode 100644 src/main/res/drawable/ic_security_24dp.xml create mode 100644 src/main/res/drawable/ic_send_24dp.xml delete mode 100644 src/main/res/drawable/ic_send_attachment_away.xml delete mode 100644 src/main/res/drawable/ic_send_attachment_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_attachment_offline.xml delete mode 100644 src/main/res/drawable/ic_send_attachment_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_attachment_online.xml delete mode 100644 src/main/res/drawable/ic_send_cancel_away.xml delete mode 100644 src/main/res/drawable/ic_send_cancel_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_cancel_offline.xml delete mode 100644 src/main/res/drawable/ic_send_cancel_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_cancel_online.xml delete mode 100644 src/main/res/drawable/ic_send_location_away.xml delete mode 100644 src/main/res/drawable/ic_send_location_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_location_offline.xml delete mode 100644 src/main/res/drawable/ic_send_location_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_location_online.xml delete mode 100644 src/main/res/drawable/ic_send_photo_away.xml delete mode 100644 src/main/res/drawable/ic_send_photo_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_photo_offline.xml delete mode 100644 src/main/res/drawable/ic_send_photo_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_photo_online.xml delete mode 100644 src/main/res/drawable/ic_send_picture_away.xml delete mode 100644 src/main/res/drawable/ic_send_picture_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_picture_offline.xml delete mode 100644 src/main/res/drawable/ic_send_picture_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_picture_online.xml delete mode 100644 src/main/res/drawable/ic_send_text_away.xml delete mode 100644 src/main/res/drawable/ic_send_text_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_text_offline.xml delete mode 100644 src/main/res/drawable/ic_send_text_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_text_online.xml create mode 100644 src/main/res/drawable/ic_send_time_extension_24dp.xml delete mode 100644 src/main/res/drawable/ic_send_videocam_away.xml delete mode 100644 src/main/res/drawable/ic_send_videocam_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_videocam_offline.xml delete mode 100644 src/main/res/drawable/ic_send_videocam_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_videocam_online.xml delete mode 100644 src/main/res/drawable/ic_send_voice_away.xml delete mode 100644 src/main/res/drawable/ic_send_voice_dnd.xml delete mode 100644 src/main/res/drawable/ic_send_voice_offline.xml delete mode 100644 src/main/res/drawable/ic_send_voice_offline_white.xml delete mode 100644 src/main/res/drawable/ic_send_voice_online.xml create mode 100644 src/main/res/drawable/ic_settings_24dp.xml create mode 100644 src/main/res/drawable/ic_settings_ethernet_24dp.xml create mode 100644 src/main/res/drawable/ic_share_24dp.xml create mode 100644 src/main/res/drawable/ic_smartphone_24dp.xml create mode 100644 src/main/res/drawable/ic_star_24dp.xml delete mode 100644 src/main/res/drawable/ic_stories_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_stories_white_24dp.xml create mode 100644 src/main/res/drawable/ic_thread.xml create mode 100644 src/main/res/drawable/ic_touch_app_24dp.xml create mode 100644 src/main/res/drawable/ic_tour_48dp.xml create mode 100644 src/main/res/drawable/ic_travel_explore_24dp.xml create mode 100644 src/main/res/drawable/ic_unarchive_24dp.xml create mode 100644 src/main/res/drawable/ic_upload_24dp.xml delete mode 100644 src/main/res/drawable/ic_verified_fingerprint_16dp.xml create mode 100644 src/main/res/drawable/ic_verified_user_24dp.xml create mode 100644 src/main/res/drawable/ic_vertical_align_bottom_24dp.xml create mode 100644 src/main/res/drawable/ic_vibration_24dp.xml create mode 100644 src/main/res/drawable/ic_videocam_24dp.xml delete mode 100644 src/main/res/drawable/ic_videocam_black54_24dp.xml create mode 100644 src/main/res/drawable/ic_videocam_off_24dp.xml delete mode 100644 src/main/res/drawable/ic_videocam_off_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_visibility.xml create mode 100644 src/main/res/drawable/ic_visibility_24dp.xml create mode 100644 src/main/res/drawable/ic_voicemail_24dp.xml create mode 100644 src/main/res/drawable/ic_volume_off_24dp.xml create mode 100644 src/main/res/drawable/ic_volume_up_24dp.xml create mode 100644 src/main/res/drawable/ic_warning_24dp.xml delete mode 100644 src/main/res/drawable/input_bubble_light.xml delete mode 100644 src/main/res/drawable/input_bubble_sent_private.xml delete mode 100644 src/main/res/drawable/link_black.xml delete mode 100644 src/main/res/drawable/link_white.xml delete mode 100644 src/main/res/drawable/list_choice.xml delete mode 100644 src/main/res/drawable/list_item_background_dark.xml delete mode 100644 src/main/res/drawable/list_item_background_light.xml delete mode 100644 src/main/res/drawable/lock_icon.png delete mode 100644 src/main/res/drawable/logo_toolbar_white.xml create mode 100644 src/main/res/drawable/message_bubble_received.xml delete mode 100644 src/main/res/drawable/message_bubble_received_light.xml delete mode 100644 src/main/res/drawable/message_bubble_received_light_private.xml delete mode 100644 src/main/res/drawable/message_bubble_received_warning.xml delete mode 100644 src/main/res/drawable/message_bubble_received_warning_private.xml delete mode 100644 src/main/res/drawable/message_bubble_sent_private.xml delete mode 100644 src/main/res/drawable/no_results_background_dark.xml delete mode 100644 src/main/res/drawable/no_results_background_light.xml delete mode 100644 src/main/res/drawable/open_pdf_black.xml delete mode 100644 src/main/res/drawable/open_pdf_white.xml delete mode 100644 src/main/res/drawable/outline_chat_black_24.xml delete mode 100644 src/main/res/drawable/outline_chat_white_24.xml delete mode 100644 src/main/res/drawable/outline_group_black_24dp.xml delete mode 100644 src/main/res/drawable/outline_group_white_24.xml delete mode 100644 src/main/res/drawable/outline_keyboard_black_32.xml delete mode 100644 src/main/res/drawable/outline_keyboard_white_32.xml delete mode 100644 src/main/res/drawable/outline_photo_black_24.xml delete mode 100644 src/main/res/drawable/outline_photo_white_24.xml delete mode 100644 src/main/res/drawable/outline_video_file_black_24.xml delete mode 100644 src/main/res/drawable/outline_video_file_white_24.xml delete mode 100644 src/main/res/drawable/outline_videocam_black_24.xml delete mode 100644 src/main/res/drawable/outline_videocam_white_24.xml delete mode 100644 src/main/res/drawable/play_gif_black.xml delete mode 100644 src/main/res/drawable/play_gif_white.xml delete mode 100644 src/main/res/drawable/quote_bubble.xml delete mode 100644 src/main/res/drawable/round_call_made_18.xml delete mode 100644 src/main/res/drawable/round_call_missed_18.xml delete mode 100644 src/main/res/drawable/round_call_missed_outgoing_18.xml delete mode 100644 src/main/res/drawable/round_call_received_18.xml delete mode 100644 src/main/res/drawable/round_camera_black_24.xml delete mode 100644 src/main/res/drawable/round_camera_white_24.xml delete mode 100644 src/main/res/drawable/round_keyboard_24.xml delete mode 100644 src/main/res/drawable/round_keyboard_black_24.xml delete mode 100644 src/main/res/drawable/rounded_location_black_24.xml delete mode 100644 src/main/res/drawable/rounded_location_white_24.xml delete mode 100644 src/main/res/drawable/rounded_tag.xml delete mode 100644 src/main/res/drawable/search_background_dark.xml delete mode 100644 src/main/res/drawable/search_background_light.xml delete mode 100644 src/main/res/drawable/selector_bubble.xml delete mode 100644 src/main/res/drawable/shield.xml delete mode 100644 src/main/res/drawable/shield_question.xml delete mode 100644 src/main/res/drawable/shield_verified.xml delete mode 100644 src/main/res/drawable/subject.xml delete mode 100644 src/main/res/drawable/subject_white.xml delete mode 100644 src/main/res/drawable/thread_hint.xml delete mode 100644 src/main/res/drawable/toolbar_bubble_light.xml delete mode 100644 src/main/res/drawable/visibility_toggle_drawable.xml delete mode 100644 src/main/res/drawable/webxdcs.xml delete mode 100644 src/main/res/drawable/webxdcs_filled_black.xml delete mode 100644 src/main/res/drawable/webxdcs_filled_white.xml delete mode 100644 src/main/res/drawable/webxdcs_white.xml delete mode 100644 src/main/res/drawable/white_cursor.xml delete mode 100644 src/main/res/drawable/xmpp_logo.xml delete mode 100644 src/main/res/font/notosansblack.ttf delete mode 100644 src/main/res/font/notosansblackitalic.ttf delete mode 100644 src/main/res/font/notosansbold.ttf delete mode 100644 src/main/res/font/notosansbolditalic.ttf delete mode 100644 src/main/res/font/notosansextrabold.ttf delete mode 100644 src/main/res/font/notosansextrabolditalic.ttf delete mode 100644 src/main/res/font/notosansextralight.ttf delete mode 100644 src/main/res/font/notosansextralightitalic.ttf delete mode 100644 src/main/res/font/notosansitalic.ttf delete mode 100644 src/main/res/font/notosanslight.ttf delete mode 100644 src/main/res/font/notosanslightitalic.ttf delete mode 100644 src/main/res/font/notosansmedium.ttf delete mode 100644 src/main/res/font/notosansmediumitalic.ttf delete mode 100644 src/main/res/font/notosansregular.ttf delete mode 100644 src/main/res/font/notosanssemibold.ttf delete mode 100644 src/main/res/font/notosanssemibolditalic.ttf delete mode 100644 src/main/res/font/notosansthin.ttf delete mode 100644 src/main/res/font/notosansthinitalic.ttf delete mode 100644 src/main/res/layout-land/fragment_conversation.xml delete mode 100644 src/main/res/layout/ab_title.xml delete mode 100644 src/main/res/layout/account_row.xml delete mode 100644 src/main/res/layout/actionview_edit.xml delete mode 100644 src/main/res/layout/activity_calls.xml delete mode 100644 src/main/res/layout/activity_easy_invite.xml delete mode 100644 src/main/res/layout/activity_easy_lockscreen.xml delete mode 100644 src/main/res/layout/activity_enter_name.xml delete mode 100644 src/main/res/layout/activity_gridview_gifs.xml delete mode 100644 src/main/res/layout/activity_gridview_stickers.xml delete mode 100644 src/main/res/layout/activity_import_backup.xml delete mode 100644 src/main/res/layout/activity_magic_create.xml delete mode 100644 src/main/res/layout/activity_media_viewer.xml delete mode 100644 src/main/res/layout/activity_memory_management.xml delete mode 100644 src/main/res/layout/activity_muc_contact_details.xml create mode 100644 src/main/res/layout/activity_recording.xml delete mode 100644 src/main/res/layout/activity_register_monocles.xml delete mode 100644 src/main/res/layout/activity_set_settings.xml delete mode 100644 src/main/res/layout/activity_share_locaction.xml create mode 100644 src/main/res/layout/activity_share_location.xml delete mode 100644 src/main/res/layout/activity_sign_up.xml delete mode 100644 src/main/res/layout/activity_start_ui.xml delete mode 100644 src/main/res/layout/activity_updater.xml delete mode 100644 src/main/res/layout/activity_verify_otr.xml delete mode 100644 src/main/res/layout/avatar_dialog.xml delete mode 100644 src/main/res/layout/camera_chooser_item.xml delete mode 100644 src/main/res/layout/choose_account_dialog.xml delete mode 100644 src/main/res/layout/command_button.xml delete mode 100644 src/main/res/layout/command_page.xml delete mode 100644 src/main/res/layout/command_slider_field.xml delete mode 100644 src/main/res/layout/command_text_field.xml delete mode 100644 src/main/res/layout/contact.xml delete mode 100644 src/main/res/layout/conversation_list_row.xml delete mode 100644 src/main/res/layout/create_conference_dialog.xml delete mode 100644 src/main/res/layout/create_public_channel_dialog.xml delete mode 100644 src/main/res/layout/dialog_camera_chooser.xml create mode 100644 src/main/res/layout/dialog_create_conference.xml create mode 100644 src/main/res/layout/dialog_create_public_channel.xml create mode 100644 src/main/res/layout/dialog_delete_account.xml create mode 100644 src/main/res/layout/dialog_enter_jid.xml delete mode 100644 src/main/res/layout/dialog_enter_password.xml delete mode 100644 src/main/res/layout/dialog_show_password.xml delete mode 100644 src/main/res/layout/emoji_search_row.xml delete mode 100644 src/main/res/layout/enter_jid_dialog.xml delete mode 100644 src/main/res/layout/form_boolean.xml delete mode 100644 src/main/res/layout/form_text.xml create mode 100644 src/main/res/layout/item_account.xml create mode 100644 src/main/res/layout/item_autocomplete.xml create mode 100644 src/main/res/layout/item_channel_discovery.xml create mode 100644 src/main/res/layout/item_contact.xml create mode 100644 src/main/res/layout/item_conversation.xml create mode 100644 src/main/res/layout/item_media.xml create mode 100644 src/main/res/layout/item_media_preview.xml create mode 100644 src/main/res/layout/item_message_content.xml create mode 100644 src/main/res/layout/item_message_date_bubble.xml create mode 100644 src/main/res/layout/item_message_received.xml create mode 100644 src/main/res/layout/item_message_rtp_session.xml create mode 100644 src/main/res/layout/item_message_sent.xml create mode 100644 src/main/res/layout/item_message_status.xml create mode 100644 src/main/res/layout/item_user_preview.xml delete mode 100644 src/main/res/layout/link_layout.xml delete mode 100644 src/main/res/layout/media.xml delete mode 100644 src/main/res/layout/media_preview.xml delete mode 100644 src/main/res/layout/message_content.xml delete mode 100644 src/main/res/layout/message_date_bubble.xml delete mode 100644 src/main/res/layout/message_log_item.xml delete mode 100644 src/main/res/layout/message_received.xml delete mode 100644 src/main/res/layout/message_rtp_session.xml delete mode 100644 src/main/res/layout/message_sent.xml delete mode 100644 src/main/res/layout/message_status.xml delete mode 100644 src/main/res/layout/presence_template.xml delete mode 100644 src/main/res/layout/search_result_item.xml delete mode 100644 src/main/res/layout/toolbar.xml delete mode 100644 src/main/res/layout/user_preview.xml delete mode 100644 src/main/res/layout/webxdc_page.xml delete mode 100644 src/main/res/layout/welcome.xml delete mode 100644 src/main/res/menu/activity_publish_avatar.xml create mode 100644 src/main/res/menu/activity_publish_profile_picture.xml delete mode 100644 src/main/res/menu/bottom_navigation_menu.xml delete mode 100644 src/main/res/menu/bottom_navigation_menu_accounts.xml delete mode 100644 src/main/res/menu/bottom_navigation_menu_chat.xml delete mode 100644 src/main/res/menu/choose_attachment.xml delete mode 100644 src/main/res/menu/conversations.xml delete mode 100644 src/main/res/menu/easy_onboarding_invite.xml delete mode 100644 src/main/res/menu/manageaccounts.xml delete mode 100644 src/main/res/menu/media_browser.xml delete mode 100644 src/main/res/menu/media_viewer.xml delete mode 100644 src/main/res/menu/sign_up_page.xml delete mode 100644 src/main/res/menu/verification_choices.xml delete mode 100644 src/main/res/menu/verify_otr.xml delete mode 100644 src/main/res/menu/welcome_menu.xml delete mode 100644 src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src/main/res/mipmap-anydpi-v26/new_launcher.xml create mode 100644 src/main/res/mipmap-anydpi-v26/new_launcher_round.xml delete mode 100644 src/main/res/mipmap-hdpi/ic_delete_forever_white_24dp.png create mode 100644 src/main/res/mipmap-hdpi/new_launcher.png create mode 100644 src/main/res/mipmap-hdpi/new_launcher_round.png delete mode 100644 src/main/res/mipmap-mdpi/ic_delete_forever_white_24dp.png delete mode 100644 src/main/res/mipmap-mdpi/ic_launcher.webp delete mode 100644 src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 src/main/res/mipmap-mdpi/ic_launcher_round.webp delete mode 100644 src/main/res/mipmap-xhdpi/ic_delete_forever_white_24dp.png delete mode 100644 src/main/res/mipmap-xhdpi/ic_launcher.webp delete mode 100644 src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 src/main/res/mipmap-xhdpi/ic_launcher_round.webp delete mode 100644 src/main/res/mipmap-xxhdpi/ic_delete_forever_white_24dp.png delete mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher.webp delete mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher_round.webp delete mode 100644 src/main/res/mipmap-xxxhdpi/ic_delete_forever_white_24dp.png delete mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher.webp delete mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp delete mode 100644 src/main/res/raw/letsencrypt_with_intermediates.bks delete mode 100644 src/main/res/values-ar-rSA/strings.xml create mode 100644 src/main/res/values-ar/strings.xml delete mode 100644 src/main/res/values-az-rAZ/strings.xml delete mode 100644 src/main/res/values-bg-rBG/strings.xml create mode 100644 src/main/res/values-bg/strings.xml create mode 100644 src/main/res/values-bn-rIN/strings.xml delete mode 100644 src/main/res/values-ca-rES/strings.xml create mode 100644 src/main/res/values-ca/strings.xml delete mode 100644 src/main/res/values-ceb-rPH/strings.xml delete mode 100644 src/main/res/values-cs-rCZ/strings.xml create mode 100644 src/main/res/values-cs/strings.xml create mode 100644 src/main/res/values-da-rDK/strings.xml delete mode 100644 src/main/res/values-de-rDE/strings.xml create mode 100644 src/main/res/values-de/strings.xml delete mode 100644 src/main/res/values-el-rGR/strings.xml create mode 100644 src/main/res/values-el/strings.xml create mode 100644 src/main/res/values-eo/strings.xml delete mode 100644 src/main/res/values-es-rES/strings.xml create mode 100644 src/main/res/values-es/strings.xml delete mode 100644 src/main/res/values-eu-rES/strings.xml create mode 100644 src/main/res/values-eu/strings.xml create mode 100644 src/main/res/values-fa-rIR/strings.xml create mode 100644 src/main/res/values-fi/strings.xml delete mode 100644 src/main/res/values-fil-rPH/strings.xml delete mode 100644 src/main/res/values-fr-rFR/strings.xml create mode 100644 src/main/res/values-fr/strings.xml delete mode 100644 src/main/res/values-gl-rES/strings.xml create mode 100644 src/main/res/values-gl/strings.xml create mode 100644 src/main/res/values-hi-rIN/strings.xml create mode 100644 src/main/res/values-hr/strings.xml create mode 100644 src/main/res/values-hu/strings.xml create mode 100644 src/main/res/values-id/strings.xml delete mode 100644 src/main/res/values-in-rID/strings.xml delete mode 100644 src/main/res/values-it-rIT/strings.xml create mode 100644 src/main/res/values-it/strings.xml create mode 100644 src/main/res/values-iw/strings.xml delete mode 100644 src/main/res/values-ja-rJP/strings.xml create mode 100644 src/main/res/values-ja/strings.xml delete mode 100644 src/main/res/values-kn-rIN/strings.xml create mode 100644 src/main/res/values-ko/strings.xml create mode 100644 src/main/res/values-ml/strings.xml create mode 100644 src/main/res/values-nb-rNO/strings.xml create mode 100644 src/main/res/values-night/themes.xml delete mode 100644 src/main/res/values-nl-rNL/strings.xml create mode 100644 src/main/res/values-nl/strings.xml delete mode 100644 src/main/res/values-pl-rPL/strings.xml create mode 100644 src/main/res/values-pl/strings.xml delete mode 100644 src/main/res/values-pt-rPT/strings.xml create mode 100644 src/main/res/values-pt/strings.xml delete mode 100755 src/main/res/values-ru-rRU/arrays.xml delete mode 100644 src/main/res/values-ru-rRU/strings.xml create mode 100644 src/main/res/values-ru/strings.xml create mode 100644 src/main/res/values-sk/strings.xml create mode 100644 src/main/res/values-sq-rAL/strings.xml create mode 100644 src/main/res/values-sr/strings.xml delete mode 100644 src/main/res/values-sv-rSE/strings.xml create mode 100644 src/main/res/values-sv/strings.xml create mode 100644 src/main/res/values-szl/strings.xml delete mode 100644 src/main/res/values-th-rTH/strings.xml delete mode 100644 src/main/res/values-tl-rPH/strings.xml delete mode 100644 src/main/res/values-uk-rUA/strings.xml create mode 100644 src/main/res/values-uk/strings.xml delete mode 100644 src/main/res/values-v21/dimens.xml create mode 100644 src/main/res/values-v29/theme-settings.xml create mode 100644 src/main/res/values-v30/theme-settings.xml create mode 100644 src/main/res/values-vi/strings.xml delete mode 100644 src/main/res/values-w300dp/dimens.xml delete mode 100644 src/main/res/values-w360dp/dimens.xml delete mode 100644 src/main/res/values-w820dp/dimens.xml create mode 100644 src/main/res/values/colors-md.xml delete mode 100644 src/main/res/values/colors.xml delete mode 100644 src/main/res/values/ic_launcher_background.xml delete mode 100644 src/main/res/values/styles.xml create mode 100644 src/main/res/values/theme-settings.xml delete mode 100644 src/main/res/xml/preferences.xml create mode 100644 src/main/res/xml/preferences_attachments.xml create mode 100644 src/main/res/xml/preferences_backup.xml create mode 100644 src/main/res/xml/preferences_connection.xml create mode 100644 src/main/res/xml/preferences_interface.xml create mode 100644 src/main/res/xml/preferences_main.xml create mode 100644 src/main/res/xml/preferences_notifications.xml create mode 100644 src/main/res/xml/preferences_privacy.xml create mode 100644 src/main/res/xml/preferences_security.xml create mode 100644 src/main/res/xml/preferences_up.xml create mode 100644 src/monocleschat/AndroidManifest.xml create mode 100644 src/monocleschat/aidl/android/service/euicc/ICarrierEuiccProvisioningService.aidl create mode 100644 src/monocleschat/aidl/android/service/euicc/IGetActivationCodeCallback.aidl rename src/{main => monocleschat}/ic_launcher-playstore.png (100%) rename src/{main/java/de/monocles/chat => monocleschat/java/de/madebyevan/thumbhash}/ThumbHash.java (99%) create mode 100644 src/monocleschat/java/de/monocles/chat/AndroidLoggingHandler.java create mode 100644 src/monocleschat/java/de/monocles/chat/BobTransfer.java create mode 100644 src/monocleschat/java/de/monocles/chat/BrowserHelper.java rename src/{main => monocleschat}/java/de/monocles/chat/ColorResourcesLoaderCreator.java (99%) rename src/{main => monocleschat}/java/de/monocles/chat/ColorResourcesTableCreator.java (99%) rename src/{main => monocleschat}/java/de/monocles/chat/ConnectionService.java (81%) rename src/{main/java/eu/siacs/conversations/ui => monocleschat/java/de/monocles/chat}/ContextMenuRecyclerView.java (96%) create mode 100644 src/monocleschat/java/de/monocles/chat/ConversationPage.java create mode 100644 src/monocleschat/java/de/monocles/chat/DownloadDefaultStickers.java create mode 100644 src/monocleschat/java/de/monocles/chat/EmojiSearch.java create mode 100644 src/monocleschat/java/de/monocles/chat/FinishOnboarding.java rename src/{main => monocleschat}/java/de/monocles/chat/GetThumbnailForCid.java (100%) rename src/{main => monocleschat}/java/de/monocles/chat/GridView.java (99%) create mode 100644 src/monocleschat/java/de/monocles/chat/InlineImageSpan.java rename src/{main => monocleschat}/java/de/monocles/chat/MessageTextActionModeCallback.java (94%) create mode 100644 src/monocleschat/java/de/monocles/chat/SpannedToXHTML.java rename src/{main => monocleschat}/java/de/monocles/chat/SwipeDetector.java (98%) create mode 100644 src/monocleschat/java/de/monocles/chat/TagEditorView.java create mode 100644 src/monocleschat/java/de/monocles/chat/Util.java create mode 100644 src/monocleschat/java/de/monocles/chat/WebviewAwareViewPager.java create mode 100644 src/monocleschat/java/de/monocles/chat/WebxdcPage.java create mode 100644 src/monocleschat/java/de/monocles/chat/WebxdcStore.java create mode 100644 src/monocleschat/java/de/monocles/chat/WebxdcUpdate.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/android/PhoneNumberContact.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/entities/AccountConfiguration.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/services/ImportBackupService.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/services/QuickConversationsService.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/ImportBackupActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/MagicCreateActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/ManageAccountActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/PickServerActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/WelcomeActivity.java create mode 100644 src/monocleschat/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java rename src/{main => monocleschat}/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java (100%) rename src/{main => monocleschat}/java/eu/siacs/conversations/utils/ProvisioningUtils.java (85%) create mode 100644 src/monocleschat/java/eu/siacs/conversations/utils/SignupUtils.java create mode 100644 src/monocleschat/res/drawable-hdpi/ic_unarchive_white_24dp.png create mode 100644 src/monocleschat/res/drawable-mdpi/ic_unarchive_white_24dp.png create mode 100644 src/monocleschat/res/drawable-xhdpi/ic_unarchive_white_24dp.png create mode 100644 src/monocleschat/res/drawable-xxhdpi/ic_unarchive_white_24dp.png create mode 100644 src/monocleschat/res/drawable-xxxhdpi/ic_unarchive_white_24dp.png create mode 100644 src/monocleschat/res/drawable/android_messages.xml create mode 100644 src/monocleschat/res/drawable/background_splash_screen.xml create mode 100644 src/monocleschat/res/drawable/bar_logo.xml create mode 100644 src/monocleschat/res/drawable/getjid.xml create mode 100644 src/monocleschat/res/drawable/havejid.xml create mode 100644 src/monocleschat/res/drawable/horizontal_space.xml create mode 100644 src/monocleschat/res/drawable/ic_business_24dp.xml create mode 100644 src/monocleschat/res/drawable/ic_chat_black_24dp.xml create mode 100644 src/monocleschat/res/drawable/ic_email_24dp.xml create mode 100644 src/monocleschat/res/drawable/ic_launcher.xml create mode 100644 src/monocleschat/res/drawable/ic_launcher_foreground.xml rename src/{main => monocleschat}/res/drawable/ic_launcher_monochrome.xml (100%) create mode 100644 src/monocleschat/res/drawable/ic_link_24dp.xml create mode 100644 src/monocleschat/res/drawable/ic_logo_mono.xml create mode 100644 src/monocleschat/res/drawable/ic_mood_24dp.xml create mode 100644 src/monocleschat/res/drawable/ic_notification.xml create mode 100644 src/monocleschat/res/drawable/ic_reply_black.xml create mode 100644 src/monocleschat/res/drawable/ic_wifi_24dp.xml create mode 100644 src/monocleschat/res/drawable/irc.xml create mode 100644 src/monocleschat/res/drawable/jabber.xml create mode 100644 src/monocleschat/res/drawable/main_logo.xml create mode 100644 src/monocleschat/res/drawable/matrix.xml create mode 100644 src/monocleschat/res/drawable/palette_24px.xml create mode 100644 src/monocleschat/res/drawable/pill.xml create mode 100644 src/monocleschat/res/drawable/restore.xml create mode 100644 src/monocleschat/res/drawable/schedule_message.xml create mode 100644 src/monocleschat/res/drawable/shield.xml create mode 100644 src/monocleschat/res/drawable/shield_question.xml create mode 100644 src/monocleschat/res/drawable/shield_verified.xml create mode 100644 src/monocleschat/res/drawable/snikket.xml create mode 100644 src/monocleschat/res/drawable/splash_logo.xml create mode 100644 src/monocleschat/res/drawable/subject.xml create mode 100644 src/monocleschat/res/drawable/textsend.xml create mode 100644 src/monocleschat/res/drawable/thread_hint.xml create mode 100644 src/monocleschat/res/drawable/toys_and_games_24dp.xml create mode 100644 src/monocleschat/res/font/archivoblack.ttf create mode 100644 src/monocleschat/res/font/poppins.ttf create mode 100644 src/monocleschat/res/layout/actionview_edit.xml create mode 100644 src/monocleschat/res/layout/activity_easy_invite.xml create mode 100644 src/monocleschat/res/layout/activity_import_backup.xml create mode 100644 src/monocleschat/res/layout/activity_magic_create.xml create mode 100644 src/monocleschat/res/layout/activity_pick_server.xml rename src/{main => monocleschat}/res/layout/activity_webxdc_store.xml (80%) create mode 100644 src/monocleschat/res/layout/activity_welcome.xml rename src/{main => monocleschat}/res/layout/button_grid_item.xml (79%) create mode 100644 src/monocleschat/res/layout/command_button.xml rename src/{main => monocleschat}/res/layout/command_button_grid_field.xml (83%) rename src/{main => monocleschat}/res/layout/command_checkbox_field.xml (87%) rename src/{main => monocleschat}/res/layout/command_item_card.xml (100%) rename src/{main => monocleschat}/res/layout/command_note.xml (79%) create mode 100644 src/monocleschat/res/layout/command_page.xml rename src/{main => monocleschat}/res/layout/command_progress_bar.xml (82%) rename src/{main => monocleschat}/res/layout/command_radio_edit_field.xml (78%) rename src/{main => monocleschat}/res/layout/command_result_cell.xml (76%) rename src/{main => monocleschat}/res/layout/command_result_field.xml (86%) rename src/{main => monocleschat}/res/layout/command_search_list_field.xml (75%) create mode 100644 src/monocleschat/res/layout/command_slider_field.xml rename src/{main => monocleschat}/res/layout/command_spinner_field.xml (79%) create mode 100644 src/monocleschat/res/layout/command_text_field.xml rename src/{main => monocleschat}/res/layout/command_webview.xml (88%) create mode 100644 src/monocleschat/res/layout/dialog_enter_password.xml create mode 100644 src/monocleschat/res/layout/emoji_search.xml create mode 100644 src/monocleschat/res/layout/emoji_search_row.xml rename src/{main => monocleschat}/res/layout/radio_grid_item.xml (96%) rename src/{main => monocleschat}/res/layout/thread_row.xml (85%) create mode 100644 src/monocleschat/res/layout/webxdc_page.xml create mode 100644 src/monocleschat/res/menu/block_muc.xml create mode 100644 src/monocleschat/res/menu/conference_photo.xml create mode 100644 src/monocleschat/res/menu/conversations.xml create mode 100644 src/monocleschat/res/menu/easy_onboarding_invite.xml create mode 100644 src/monocleschat/res/menu/manageaccounts.xml rename src/{main => monocleschat}/res/menu/message_text_actions.xml (100%) create mode 100644 src/monocleschat/res/menu/welcome_menu.xml create mode 100644 src/monocleschat/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src/monocleschat/res/mipmap-anydpi-v26/ic_launcher_round.xml rename src/{main => monocleschat}/res/mipmap-hdpi/ic_launcher.webp (100%) rename src/{main => monocleschat}/res/mipmap-hdpi/ic_launcher_foreground.png (100%) rename src/{main => monocleschat}/res/mipmap-hdpi/ic_launcher_round.webp (100%) rename src/{main => monocleschat}/res/raw/emoji.json (100%) create mode 100644 src/monocleschat/res/raw/federation_diagram.svg create mode 100644 src/monocleschat/res/raw/jmp.svg rename src/{main => monocleschat}/res/raw/webxdc.js (100%) create mode 100644 src/monocleschat/res/raw/xmpp.svg create mode 100644 src/monocleschat/res/values-ar/strings.xml create mode 100644 src/monocleschat/res/values-bg/strings.xml create mode 100644 src/monocleschat/res/values-bn-rIN/strings.xml create mode 100644 src/monocleschat/res/values-ca/strings.xml create mode 100644 src/monocleschat/res/values-da-rDK/strings.xml create mode 100644 src/monocleschat/res/values-de/strings.xml create mode 100644 src/monocleschat/res/values-el/strings.xml create mode 100644 src/monocleschat/res/values-es/strings.xml create mode 100644 src/monocleschat/res/values-eu/strings.xml create mode 100644 src/monocleschat/res/values-fa-rIR/strings.xml create mode 100644 src/monocleschat/res/values-fr/strings.xml create mode 100644 src/monocleschat/res/values-gl/strings.xml create mode 100644 src/monocleschat/res/values-hu/strings.xml create mode 100644 src/monocleschat/res/values-id/strings.xml create mode 100644 src/monocleschat/res/values-it/strings.xml create mode 100644 src/monocleschat/res/values-ja/strings.xml create mode 100644 src/monocleschat/res/values-nl/strings.xml create mode 100644 src/monocleschat/res/values-pl/strings.xml create mode 100644 src/monocleschat/res/values-pt-rBR/strings.xml create mode 100644 src/monocleschat/res/values-ro-rRO/strings.xml create mode 100644 src/monocleschat/res/values-ru/strings.xml create mode 100644 src/monocleschat/res/values-sr/strings.xml create mode 100644 src/monocleschat/res/values-sv/strings.xml create mode 100644 src/monocleschat/res/values-tr-rTR/strings.xml create mode 100644 src/monocleschat/res/values-uk/strings.xml create mode 100644 src/monocleschat/res/values-vi/strings.xml create mode 100644 src/monocleschat/res/values-zh-rCN/strings.xml create mode 100644 src/monocleschat/res/values/attrs.xml create mode 100644 src/monocleschat/res/values/colors-themed.xml create mode 100644 src/monocleschat/res/values/colors.xml create mode 100644 src/monocleschat/res/values/strings.xml create mode 100644 src/monocleschat/res/values/styles.xml create mode 120000 src/monocleschatPlaystore delete mode 100644 src/playstore/java/de/monocles/chat/StartUI.java create mode 100644 src/playstore/java/eu/siacs/conversations/receiver/PushMessageReceiver.java delete mode 100644 src/playstore/java/eu/siacs/conversations/services/PushMessageReceiver.java delete mode 100644 src/playstore/java/eu/siacs/conversations/utils/InstallReferrerUtils.java delete mode 100644 src/playstore/java/eu/siacs/conversations/utils/StorageHelper.java create mode 100644 src/playstore/res/values/strings.xml create mode 100644 src/quicksy/AndroidManifest.xml create mode 100644 src/quicksy/fastlane/metadata/android/de-DE/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/de-DE/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/en-US/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/en-US/images/icon.png create mode 100644 src/quicksy/fastlane/metadata/android/en-US/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/eo/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/es-ES/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/es-ES/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/gl-ES/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/gl-ES/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/it-IT/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/it-IT/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/pl-PL/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/pl-PL/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/ro/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/ro/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/ru-RU/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/ru-RU/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/sq/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/sq/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/tr-TR/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/uk/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/uk/short_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/zh-CN/full_description.txt create mode 100644 src/quicksy/fastlane/metadata/android/zh-CN/short_description.txt create mode 100644 src/quicksy/java/eu/siacs/conversations/android/PhoneNumberContact.java create mode 100644 src/quicksy/java/eu/siacs/conversations/entities/Entry.java create mode 100644 src/quicksy/java/eu/siacs/conversations/services/QuickConversationsService.java create mode 100644 src/quicksy/java/eu/siacs/conversations/services/SMSReceiver.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/ChooseCountryActivity.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/EnterPhoneNumberActivity.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/TosActivity.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/VerifyActivity.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/adapter/CountryAdapter.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/drawable/TextDrawable.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/util/ApiDialogHelper.java create mode 100644 src/quicksy/java/eu/siacs/conversations/ui/util/PinEntryWrapper.java create mode 100644 src/quicksy/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java create mode 100644 src/quicksy/new_launcher-web.png create mode 100644 src/quicksy/res/drawable-hdpi/launcher.png create mode 100644 src/quicksy/res/drawable-hdpi/main_logo.png create mode 100644 src/quicksy/res/drawable-hdpi/splash_logo.png create mode 100644 src/quicksy/res/drawable-mdpi/launcher.png create mode 100644 src/quicksy/res/drawable-mdpi/main_logo.png create mode 100644 src/quicksy/res/drawable-mdpi/splash_logo.png create mode 100644 src/quicksy/res/drawable-xhdpi/launcher.png create mode 100644 src/quicksy/res/drawable-xhdpi/main_logo.png create mode 100644 src/quicksy/res/drawable-xhdpi/splash_logo.png create mode 100644 src/quicksy/res/drawable-xxhdpi/launcher.png create mode 100644 src/quicksy/res/drawable-xxhdpi/main_logo.png create mode 100644 src/quicksy/res/drawable-xxhdpi/splash_logo.png create mode 100644 src/quicksy/res/drawable-xxxhdpi/launcher.png create mode 100644 src/quicksy/res/drawable-xxxhdpi/main_logo.png create mode 100644 src/quicksy/res/drawable-xxxhdpi/splash_logo.png create mode 100644 src/quicksy/res/drawable/ic_app_icon_notification.xml create mode 100644 src/quicksy/res/drawable/ic_arrow_drop_down_18dp.xml create mode 100644 src/quicksy/res/drawable/ic_launcher_foreground.xml create mode 100644 src/quicksy/res/drawable/ic_launcher_monochrome.xml create mode 100644 src/quicksy/res/layout/activity_choose_country.xml create mode 100644 src/quicksy/res/layout/activity_enter_name.xml create mode 100644 src/quicksy/res/layout/activity_enter_number.xml create mode 100644 src/quicksy/res/layout/activity_tos.xml create mode 100644 src/quicksy/res/layout/activity_verify.xml create mode 100644 src/quicksy/res/layout/country_item.xml create mode 100644 src/quicksy/res/menu/item_choose_country.xml create mode 100644 src/quicksy/res/mipmap-hdpi/new_launcher.png create mode 100644 src/quicksy/res/mipmap-hdpi/new_launcher_round.png create mode 100644 src/quicksy/res/mipmap-mdpi/new_launcher.png create mode 100644 src/quicksy/res/mipmap-mdpi/new_launcher_round.png create mode 100644 src/quicksy/res/mipmap-xhdpi/new_launcher.png create mode 100644 src/quicksy/res/mipmap-xhdpi/new_launcher_round.png create mode 100644 src/quicksy/res/mipmap-xxhdpi/new_launcher.png create mode 100644 src/quicksy/res/mipmap-xxhdpi/new_launcher_round.png create mode 100644 src/quicksy/res/mipmap-xxxhdpi/new_launcher.png create mode 100644 src/quicksy/res/mipmap-xxxhdpi/new_launcher_round.png create mode 100644 src/quicksy/res/values-ar/strings.xml create mode 100644 src/quicksy/res/values-bg/strings.xml create mode 100644 src/quicksy/res/values-ca/strings.xml create mode 100644 src/quicksy/res/values-da-rDK/strings.xml create mode 100644 src/quicksy/res/values-de/strings.xml create mode 100644 src/quicksy/res/values-el/strings.xml create mode 100644 src/quicksy/res/values-eo/strings.xml create mode 100644 src/quicksy/res/values-es/strings.xml create mode 100644 src/quicksy/res/values-fa/strings.xml create mode 100644 src/quicksy/res/values-fi/strings.xml create mode 100644 src/quicksy/res/values-fr/strings.xml create mode 100644 src/quicksy/res/values-gl/strings.xml create mode 100644 src/quicksy/res/values-hr/strings.xml create mode 100644 src/quicksy/res/values-hu/strings.xml create mode 100644 src/quicksy/res/values-id/strings.xml create mode 100644 src/quicksy/res/values-it/strings.xml create mode 100644 src/quicksy/res/values-ja/strings.xml create mode 100644 src/quicksy/res/values-nl/strings.xml create mode 100644 src/quicksy/res/values-pl/strings.xml create mode 100644 src/quicksy/res/values-pt-rBR/strings.xml create mode 100644 src/quicksy/res/values-ro-rRO/strings.xml create mode 100644 src/quicksy/res/values-ru/strings.xml create mode 100644 src/quicksy/res/values-sk/strings.xml create mode 100644 src/quicksy/res/values-sq/strings.xml create mode 100644 src/quicksy/res/values-sv/strings.xml create mode 100644 src/quicksy/res/values-szl/strings.xml create mode 100644 src/quicksy/res/values-tr-rTR/strings.xml create mode 100644 src/quicksy/res/values-uk/strings.xml create mode 100644 src/quicksy/res/values-vi/strings.xml create mode 100644 src/quicksy/res/values-zh-rCN/strings.xml create mode 100644 src/quicksy/res/values-zh-rTW/strings.xml create mode 100644 src/quicksy/res/values/colors-themed.xml create mode 100644 src/quicksy/res/values/defaults.xml create mode 100644 src/quicksy/res/values/strings.xml create mode 100644 src/quicksyFree/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java create mode 100644 src/quicksyPlaystore/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java diff --git a/.builds/debian-stable.yml b/.builds/debian-stable.yml new file mode 100644 index 000000000..77872e518 --- /dev/null +++ b/.builds/debian-stable.yml @@ -0,0 +1,59 @@ +image: debian/stable +sources: +- https://git.sr.ht/~singpolyma/cheogram-android +artifacts: +- cheogram.apk +- cheogram_google_play.apk +- cheogram_google_play.aab +packages: +- wget +- unzip +- openjdk-17-jdk-headless +- android-sdk +secrets: +- 6b782fde-a43b-4988-b102-38fa541bb788 +- 7eed327c-05c7-49b4-baed-a4d8785588d5 +- b1f1df57-d41c-45d9-9684-b66d3fa8d063 +- b412b263-bdde-410b-997e-6326aba90132 +environment: + ANDROID_SDK_ROOT: /home/build/android + SENTRY_ORG: mboa + SENTRY_PROJECT: android +tasks: +- sdk: | + wget -qO android.zip https://dl.google.com/android/repository/commandlinetools-linux-6987402_latest.zip + unzip -qq android.zip + mkdir -p android/cmdline-tools + mv cmdline-tools android/cmdline-tools/tools + echo y | android/cmdline-tools/tools/bin/sdkmanager "platforms;android-29" + echo y | android/cmdline-tools/tools/bin/sdkmanager "platform-tools" + echo y | android/cmdline-tools/tools/bin/sdkmanager "build-tools;29.0.2" + touch ~/.android/repositories.cfg + yes | android/cmdline-tools/tools/bin/sdkmanager --licenses +- sentry: | + cd cheogram-android + sed -ie 's///' src/cheogram/AndroidManifest.xml + sed -ie 's/\/\/ PLUGIN INSERT/id "io.sentry.android.gradle" version "4.2.0"/' build.gradle + sed -ie 's/\/\/ ROOT INSERT/sentry { includeSourceContext = true }/' build.gradle +- build_free: | + set +x + export SENTRY_AUTH_TOKEN=$(cat ~/sentry_auth_token) + set -x + cd cheogram-android + ./gradlew assembleCheogramFreeDebug +- build_google_play: | + set +x + export SENTRY_AUTH_TOKEN=$(cat ~/sentry_auth_token) + set -x + cd cheogram-android + mkdir -p src/playstore/res/values/ + mv ~/push.xml src/playstore/res/values/ + ./gradlew assembleCheogramPlaystoreDebug + echo keystore=$HOME/.android/cheogram.keystore > signing.properties + echo keystore.password=cheogram >> signing.properties + echo keystore.alias=cheogram >> signing.properties + ./gradlew bundleCheogramPlaystoreRelease +- assets: | + mv cheogram-android/build/outputs/apk/cheogramFree/debug/*universal*.apk cheogram.apk + mv cheogram-android/build/outputs/apk/cheogramPlaystore/debug/*universal*.apk cheogram_google_play.apk + mv cheogram-android/build/outputs/bundle/cheogramPlaystoreRelease/*.aab cheogram_google_play.aab diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index d0c9ffa55..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,77 +0,0 @@ -version: 2 -jobs: - test: - docker: - - image: registry.gitlab.com/fdroid/ci-images-client:latest - steps: - - checkout - - restore_cache: - key: gradle-{{ checksum "build.gradle" }}-{{ checksum ".circleci/config.yml" }} - - run: export GRADLE_USER_HOME=$PWD/.gradle - - run: wget -O libs/libwebrtc-m85.aar https://www.pix-art.de/files/libwebrtc-m85.aar - - run: echo y | sdkmanager "platforms;android-$(sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' build.gradle)" > /dev/null - - run: ./gradlew lintGitDebug - - save_cache: - paths: - - .gradle/caches - - .gradle/wrapper - key: gradle-{{ checksum "build.gradle" }}-{{ checksum ".circleci/config.yml" }} - - store_artifacts: - path: build/outputs/apk/standard - destination: apk - build: - docker: - - image: registry.gitlab.com/fdroid/ci-images-client:latest - steps: - - checkout - - restore_cache: - key: android - - run: export GRADLE_USER_HOME=$PWD/.gradle - - run: wget -O libs/libwebrtc-m85.aar https://www.pix-art.de/files/libwebrtc-m85.aar - - run: echo y | sdkmanager "platforms;android-$(sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' build.gradle)" > /dev/null - # build - - run: ./gradlew assembleGit - - save_cache: - paths: - - ~/.android - key: android - - store_artifacts: - path: build/outputs/apk/git - - publish: - docker: - - image: registry.gitlab.com/fdroid/ci-images-client:latest - steps: - - checkout - - restore_cache: - key: android - - run: export GRADLE_USER_HOME=$PWD/.gradle - - run: wget -O libs/libwebrtc-m85.aar https://www.pix-art.de/files/libwebrtc-m85.aar - - run: echo y | sdkmanager "platforms;android-$(sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' build.gradle)" > /dev/null - # workaround for fdroid nightly circleci bug - - run: sed -i "s/os.getenv('CIRCLE_REPOSITORY_URL')/\"https:\/\/github.com\/kriztan\/Pix-Art-Messenger\"/" /usr/lib/python3/dist-packages/fdroidserver/nightly.py - # generate version number - - run: sed -i "s/^\(\s*versionCode\s*\).*$/\1$(git rev-list --first-parent --count HEAD)/" build.gradle - - run: sed -i "0,/versionName/s/^\(\s*versionName\).*/\1 \"$(printf '%s-%05d' $(git describe --tag --abbrev=0) $(git rev-list --first-parent --count HEAD))\"/" build.gradle - - run: cat -n build.gradle - # build - - run: ./gradlew assembleGit - # publish on nightly fdroid repo - - run: fdroid nightly - - save_cache: - paths: - - ~/.android - key: android - -workflows: - version: 2 - test_build: - jobs: - - build: - filters: - branches: - ignore: master - - publish: - filters: - branches: - only: master diff --git a/.project b/.project deleted file mode 100644 index ccd5dd982..000000000 --- a/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - monocles chat - Project monocles_chat created by Buildship. - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.buildship.core.gradleprojectbuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.buildship.core.gradleprojectnature - - - - 1632834367800 - - 30 - - org.eclipse.core.resources.regexFilterMatcher - node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ - - - - diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 000000000..affaf7110 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,7 @@ +steps: + build: + image: codeberg.org/freeyourgadget/android-fdroid-tools:latest + commands: + - ./gradlew clean + - ./gradlew assembleConversationsFreeDebug + - ./gradlew assembleQuicksyFreeDebug diff --git a/CHANGELOG.md b/CHANGELOG.md index 4137e3b6f..fedfe63c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,1203 @@ -### Changelog +# Changelog -#### Version 1.1 -* presettings correction to avoid connection problems -* some text corrections -* added optional monocles registration link -* changed appicon -* changed registration and usage for monocles users only +### Version 2.15.3 -#### Version 1.0 -* initial release +* fix call integration on some Android 14 devices +* Introduce 'Invites from Strangers' setting + +### Version 2.15.2 + +* Fix Quicksy registration on Android 6/7 +* Play incoming call ringtone on notification channel + +### Version 2.15.1 + +* Show message status as icons +* Introduce 'Large font' setting for message bubbles + +### Version 2.15.0 + +* Use Material 3 theme +* Reorganize settings +* Synchronize read state across devices + +### Version 2.14.2 + +* Restore access to Channel Discovery for Android 6+7 +* Improve logging for failed call integration + +### Version 2.14.1 + +* Fix A/V calls on Android 8 +* Fix race conditions in new call integration +* Fix video compression sticking around + +### Version 2.14.0 + +* Improve integration of A/V calls into the operating system + +### Version 2.13.4 + +* Fix minor regressions introduced with 2.13.1 + +### Version 2.13.3 + +* Provide easier access to 'Privacy Policy' on Play Store version (Quicksy and Conversations) +* Remove address book integration on Play Store version of Conversations + +### Version 2.13.2 + +* minor bug fixes +* slight modifications in Quicksy onboard flow + +### Version 2.13.1 + +* Support P2P file transfer via WebRTC data channels +* Fix interoperability issues with Bind 2.0 on ejabberd +* Bundle Let’s Encrypt root certificates for Android <= 7 + +### Version 2.13.0 + +* Easier access to 'Show QR code' +* Support PEP Native Bookmarks +* Add support for SDP Offer / Answer Model (Used by SIP gateways) +* Raise target API to Android 14 + +### Version 2.12.12 + +* Support Private DNS (DNS over TLS) +* Support themed launcher icon +* Fix rare permission issue when sharing files on Android 11+ + +### Version 2.12.11 + +* Bump libwebrtc dependency to M117 and bump libvpx +* Go back to AAC for voice messages +* Support per app language settings + +### Version 2.12.10 + +* support per conversation notification settings +* use opus for voice messages on Android 10 + +### Version 2.12.9 + +* Introduce new backup file format + +### Version 2.12.8 + +* Disable opening backup files (.ceb) from file manager + +### Version 2.12.7 + +* Remove channel discovery feature from Google Play version + +### Version 2.12.6 + +* Fix 'q' falsely being recognized as cyrillic + +### Version 2.12.5 + +* Bump Target SDK to 33 again +* Fix issues on servers supporting SASL2 w/o inline Stream Management + +### Version 2.12.4 + +* Revert Target SDK bump (back to 32) to fix various issues on Android 13 + +### Version 2.12.3 + +* Improve support for new emojis +* Add ability to remove account from server +* Show timestamp for calls + +### Version 2.12.2 + +* Increase corner radius on profile pictures + +### Version 2.12.1 + +* Fix crash in UnifiedPush Distributor + +### Version 2.12.0 + +* Integrate UnifiedPush Distributor to facilitate push messages to other UnifiedPush enabled apps like Tusky and Fedilab + +### Version 2.11.3 + +* Fix messages getting resend when using SASL2 +* Fix black video between some devices +* Fix crash on empty passwords + +### Version 2.11.2 + +* Fixed regression in P2P file transfer + +### Version 2.11.1 + +* Fix resend loop on servers that support only sm:2 +* Show 'Switch to video' only if other party supports video + +### Version 2.11.0 + +* Implement Extensible SASL Profile, Bind 2.0 and Fast for faster reconnects +* Implement Channel Binding +* Add ability to switch from audio call to video call +* Add ability to delete own avatar +* Add notification for missed calls + +### Version 2.10.10 + +* Minor bug fixes +* Restore ability to call out via JMP and other services (Playstore version) + +### Version 2.10.9 + +* Ask for Bluetooth permissions when making A/V calls (You can reject this if you don’t use Bluetooth headsets) +* Fix bug when calling Movim + +### Version 2.10.8 + +* Fix wrong avatar being shown for group chats + +### Version 2.10.7 + +* always ask for battery optimizations opt-out +* set local only flag on 'x connected accounts' notifications +* Minor bug fixes + +### Version 2.10.6 + +* Minor bug fixes + +### Version 2.10.5 + +* Security: Stop downloading files that exceed advertised file size +* Security: Limit POSH files to 10K + +### Version 2.10.4 + +* Fix interaction with Google Maps Share Location Plugin +* Remove footnote with regards to server fee + +### Version 2.10.3 + +* Store files in location appropriate for Android 11 +* Attempt to reconnect call after network switch +* Show caller JID and account JID in incoming call screen + +### Version 2.10.2 + +* Fix crash when rendering some quotes +* Fix crash in welcome screen + +### Version 2.10.1 + +* Fix issue with some videos not being compressed +* Fix rare crash when opening notification + +### Version 2.10.0 + +* Show black bars when remote video does not match aspect ratio of screen +* Improve search performance +* Add setting to prevent screenshots + +### Version 2.9.13 + +* minor A/V improvements + +### Version 2.9.12 + +* Always verify domain name. No user overwrite +* Support roster pre authentication + +### Version 2.9.11 + +* Fixed 'No Connectivity' issues on Android 7.1 + +### Version 2.9.10 +* fix HTTP up/download for users that don’t trust system CAs + +### Version 2.9.9 + +* Various bug fixes around Tor support +* Improve call compatibility with Dino + +### Version 2.9.8 + +* Verify A/V calls with preexisting OMEMO sessions +* Improve compatibility with non libwebrtc WebRTC implementations + +### Version 2.9.7 + +* Ability to select incoming call ringtone +* Fix OpenPGP key id discovery for OpenKeychain 5.6+ +* Properly verify punycode TLS certificates +* Improve stability of RTP session establishment (calling) + +### Version 2.9.6 + +* Show call button for offline contacts if they previously announced support +* Back button no longer ends call when call is connected +* bug fixes + +### Version 2.9.5 + +* Quicksy: Automatically receive verification SMS + +### Version 2.9.4 +* minor stability improvements for A/V calls +* Conversations releases from here on forward require Android 5 + +### Version 2.9.3 + +* Fixed connectivity issues when different accounts used different SCRAM mechanisms +* Add support for SCRAM-SHA-512 +* Allow P2P (Jingle) file transfer with self contact + +### Version 2.9.2 + +* Offer Easy Invite generation on supporting servers +* Display GIFs send from Movim +* store avatars in cache + +### Version 2.9.1 + +* fixed search on Android <= 5 +* optimize memory consumption + +### Version 2.9.0 + +* Search individual conversations +* Notify user if message delivery fails +* Remember display names (nicks) from Quicksy users across restarts +* Add button to start Orbot (Tor) from notification if necessary + +### Version 2.8.10 + +* Handle GPX files +* Improve performance for backup restore +* bug fixes + +### Version 2.8.9 + +* add 'Return to chat' to audio call screen +* Improve keyboard shortcuts +* bug fixes + +### Version 2.8.8 + +* Fixed notifications not showing up under certain conditions +* Fixed compatibility issues and crashes related to A/V calls + +### Version 2.8.7 + +* Show help button if A/V call fails +* Fixed some annoying crashes +* Fixed Jingle connections (file transfer + calls) with bare JIDs + +### Version 2.8.6 + +* Offer to record voice message when callee is busy + +### Version 2.8.5 + +* Reduce echo during calls on some devices +* Fix login when passwords contains special characters +* Play dial and busy tones on speaker during video calls + +### Version 2.8.4 + +* Rework Login with certificate UI +* Add ability to pin chats on top (add to favorites) + +### Version 2.8.3 + +* Move call icon to the left in order to keep other toolbar icons in a consistent place +* Show call duration during audio calls +* Tie breaking for A/V calls (the same two people calling each other at the same time) + +### Version 2.8.2 + +* Add button to switch camera during video call +* Fixed voice calls on tablets + +### Version 2.8.1 + +* Audible feedback (dialing, call started, call ended) for voice calls. +* Fixed issue with retrying failed video call + +### Version 2.8.0 + +* Audio/Video calls (Requires server support in form of STUN and TURN servers discoverable via XEP-0215) + + +### Version 2.7.1 + +* Fix avatar selection on some Android 10 devices +* Fix file transfer for larger files + +### Version 2.7.0 + +* Provide PDF preview on Android 5+ +* Use 12 byte IVs for OMEMO + +### Version 2.6.4 + +* Support automatic theme switching on Android 10 + +### Version 2.6.3 + +* Support for ?register and ?register;preauth XMPP uri parameters + +### Version 2.6.2 +* let users set their own nick name +* resume download of OMEMO encrypted files +* Channels now use '#' as symbol in avatar +* Quicksy uses 'always' as OMEMO encryption default (hides lock icon) + +### Version 2.6.1 +* fixes for Jingle IBB file transfer +* fixes for repeated corrections filling up the database +* switched to Last Message Correction v1.1 + +### Version 2.6.0 +* Introduce expert setting to perform channel discovery on local server instead of [search.jabber.network](https://search.jabber.network) +* Enable delivery check marks by default and remove setting +* Enable ‘Send button indicates status’ by default and remove setting +* Move Backup and Foreground Service settings to main screen + +### Version 2.5.12 +* Jingle file transfer fixes +* Fixed OMEMO self healing (after backup restore) on servers w/o MAM + +### Version 2.5.11 +* Fixed crash on Android <5.0 + +### Version 2.5.10 +* Fixed crash on Xiaomi devices running Android 8.0 + 8.1 + +### Version 2.5.9 +* fixed minor security issues +* Share XMPP uri from channel search by long pressing a result + +### Version 2.5.8 +* fixed connection issues over Tor +* P2P file transfer (Jingle) now offers direct candidates +* Support XEP-0396: Jingle Encrypted Transports - OMEMO + +### Version 2.5.7 +* fixed crash when scanning QR codes on Android 6 and lower +* when sharing a message from and to Conversations insert it as quote + +### Version 2.5.6 +* fixes for Jingle file transfer +* fixed some rare crashes + +### Version 2.5.5 +* allow backups to be restored from anywhere +* bug fixes + +### Version 2.5.4 +* stability improvements for group chats and channels + +### Version 2.5.3 +* bug fixes for peer to peer file transfer (Jingle) +* fixed server info for unlimited/unknown max file size + +### Version 2.5.2 +* bug fixes + +### Version 2.5.1 +* minor bug fixes +* Set own OMEMO devices to inactive after not seeing them for 14 days. (was 7 days) + +### Version 2.5.0 +* Added channel search via search.jabbercat.org +* Reworked onboarding screens +* Warn when trying to enter domain address or channel address in Add Contact dialog + +### Version 2.4.3 +* Fixed display of private messages sent from another client +* Fixed backup creation on long time installations + +### Version 2.4.2 +* Fix image preview on older Android version + +### Version 2.4.1 +* Fixed crash in message view + +### Version 2.4.0 +* New Backup / Restore feature +* Clearly distinguish between (private) group chats and (public) channels +* Redesigned participants view for group chats and channels +* Redesigned create new contact/group chat/channel flow in Start Conversation screen + + +### Version 2.3.12 +* Fixed rare crash on start up +* Fixed avatar not being refreshed in group chats + +### Version 2.3.11 +* Support for Android 9 'message style' notifications +* OMEMO stability improvements +* Added ability to destroy group chats +* Do not show deleted files in media browser +* Added 'Keep Original' as video quality choice + +### Version 2.3.10 +* lower minimum required Android version to 4.1 +* Synchronize group chat join/leaves across multiple clients +* Fixed sending PGP encrypted messages from quick reply + +### Version 2.3.9 +* OMEMO stability improvements +* Context menu when long pressing avatar in 1:1 chat + +### Version 2.3.8 +* make PEP avatars public to play nice with Prosody 0.11 +* Fixed re-sending failed files in group chats + +### Version 2.3.7 +* long press on 'allow' or 'add back' snackbar to bring up 'reject' +* bug fixes for Android 9 + +### Version 2.3.6 +* Improved handling of bookmark nicks +* Show send PM menu entry in anonymous MUCs + +### Version 2.3.5 +* Fixed group chat mentions when nick ends in . (dot) +* Fixed Conversations not asking for permissions after direct share +* Fixed CVE-2018-18467 + +### Version 2.3.4 +* Fixed sending OMEMO files to ChatSecure + +### Version 2.3.3 +* Fixed connection issues with user@ip type JIDs + +### Version 2.3.2 +* Fixed OMEMO on Android 5.1 & 6.0 +* Added setting for video quality +* bug fixes + +### Version 2.3.1 +* Stronger compression for video files +* Use SNI on STARTTLS to fix gtalk +* Fix Quiet Hours on Android 8+ +* Use Consistent Color Generation (XEP-0392) + +### Version 2.3.0 +* Preview and ask for confirmation before sending media files +* View per conversation media files in contact and conference details screens +* Enable foreground service by default for Android 8 (notification can be disabled by long pressing it) +* Audio player: disable screen and switch to ear piece +* Support TLSv1.3 (ejabberd ≤ 18.06 is incompatible with openssl 1.1.1 - Update ejabberd or downgrade openssl if you get ›Stream opening error‹) + + +### Version 2.2.9 +* Store bookmarks in PEP if server has ability to convert to old bookmarks +* Show Jabber IDs from address book in Start Conversation screen + +### Version 2.2.8 +* fixed regression that broke XMPP uris + +### Version 2.2.7 +* stability improvements + +### Version 2.2.6 +* support old MAM version to work with Prosody + +### Version 2.2.5 +* Persist MUC avatar across restarts / show in bookmarks +* Offer Paste as quote for HTML content + +### Version 2.2.4 +* Use group chat name as primary identifier +* Show group name and subject in group chat details +* Upload group chat avatar on compatible servers + +### Version 2.2.3 +* Introduce Expert Setting to enable direct search +* Introduce Paste As Quote on Android 6+ +* Fixed issues with HTTP Upload + +### Version 2.2.2 +* Fixed connection problems with TLS1.3 servers +* Attempt to delete broken bundles from PEP +* Use FCM instead of GCM + +### Version 2.2.1 +* improved recording quality +* load map tiles over Tor if enabled + +### Version 2.2.0 +* Integrate Voice Recorder +* Integrate Share Location +* Added ability to search messages + +### Version 2.1.4 +* bug fixes + +### Version 2.1.3 +* Do not process stanzas with invalid JIDs + +### Version 2.1.2 +* Fixed avatars not being displayed on new installs + +### Version 2.1.1 +* Improved start up performance +* bug fixes + +### Version 2.1.0 +* Added configurable font size +* Added global OMEMO preference +* Added scroll to bottom button +* Only mark visible messages as read + + +### Version 2.0.0 +* OMEMO by default for everything but public group chats +* Integrate QR code scanner (requires camera permission) +* Removed support for OTR +* Removed support for customizable resources +* Removed slide out panel for conversation overview +* Add ability to change status message +* Highlight irregular unicode code blocks in Jabber IDs +* Conversations now requires Android 4.4+ + +### Version 1.23.8 +* bug fixes + +### Version 1.23.7 +* Improved MAM support + bug fixes + +### Version 1.23.6 +* Fixed crash on receiving invalid HTTP slot response + +### Version 1.23.5 +* improved self chat + +### Version 1.23.4 +* keep screen on while playing audio +* send delivery receipts after MAM catch-up +* reduce number of wake locks + +### Version 1.23.3 +* Fixed OMEMO device list not being announced + +### Version 1.23.2 +* Removed NFC support +* upload Avatars as JPEG +* reduce APK size + +### Version 1.23.1 +* Show icon instead of image preview in conversation overview +* fixed loop when trying to decrypt with YubiKey + +### Version 1.23.0 +* Support for read markers in private, non-anonymous group chats + +### Version 1.22.1 +* Disable swipe to left to end conversation +* Fixed 'No permission to access …' when opening files shared from the SD card +* Always open URLs in new tab + +### Version 1.22.0 +* Text markup *bold*, _italic_,`monospace` and ~strikethrough~ +* Use same emoji style on all Android versions +* Display emojis slightly larger within continuous text + +### Version 1.21.0 +* Inline player for audio messages +* Stronger compression for long videos +* Long press the 'add back' button to show block menu + +### Version 1.20.1 +* fixed OTR encrypted file transfer + +### Version 1.20.0 +* presence subscription no longer required for OMEMO on compatible servers +* display emoji-only messages slightly larger + +### Version 1.19.5 +* fixed connection loop on Android <4.4 + +### Version 1.19.4 +* work around for OpensFire’s self signed certs +* use VPN’s DNS servers first + +### Version 1.19.3 +* Do not create foreground service when all accounts are disabled +* bug fixes + +### Version 1.19.2 +* bug fixes + +### Version 1.19.1 +* Made DNSSEC hostname validation opt-in + +### Version 1.19.0 +* Added 'App Shortcuts' to quickly access frequent contacts +* Use DNSSEC to verify hostname instead of domain in certificate +* Setting to enable Heads-up notifications +* Added date separators in message view + +### Version 1.18.5 +* colorize send button only after history is caught up +* improved MAM catchup strategy + +### Version 1.18.4 +* fixed UI freezes during connection timeout +* fixed notification sound playing twice +* fixed conversations being marked as read +* removed 'copy text' in favor of 'select text' and 'share with' + +### Version 1.18.3 +* limited GPG encryption for MUC offline members + +### Version 1.18.2 +* added support for Android Auto +* fixed HTTP Download over Tor +* work around for nimbuzz.com MUCs + +### Version 1.18.1 +* bug fixes + +### Version 1.18.0 +* Conversations <1.16.0 will be unable to receive OMEMO encrypted messages +* OMEMO: put auth tag into key (verify auth tag as well) +* offer to block entire domain in message from stranger snackbar +* treat URL as file if URL is in oob or contains key + +### Version 1.17.1 +* Switch Aztec to QR for faster scans +* Fixed unread counter for image messages + +### Version 1.17.0 +* Do not notify for messages from strangers by default +* Blocking a JID closes the corresponding conversation +* Show message sender in conversation overview +* Show unread counter for every conversation +* Send typing notifications in private, non-anonymous MUCs +* Support for the latest MAM namespace +* Icons for attach menu + +### Version 1.16.2 +* change mam catchup strategy. support mam:1 +* bug fixes + +### Version 1.16.1 +* UI performance fixes +* bug fixes + +### Version 1.16.0 +* configurable client side message retention period +* compress videos before sending them + +### Version 1.15.5 +* show nick as bold text when mentioned in conference +* bug fixes + +### Version 1.15.4 +* bug fixes + +### Version 1.15.3 +* show offline contacts in MUC as grayed-out +* don't transcode gifs. add overlay indication to gifs +* bug fixes + +### Version 1.15.2 +* bug fixes + +### Version 1.15.1 +* support for POSH (RFC7711) +* support for quoting messages (via select text) +* verified messages show shield icon. unverified messages show lock + +### Version 1.15.0 +* New [Blind Trust Before Verification](https://gultsch.de/trust.html) mode +* Easily share Barcode and XMPP uri from Account details +* Automatically deactivate own devices after 7 day of inactivity +* Improvements fo doze/push mode +* bug fixes + +### Version 1.14.9 +* warn in account details when data saver is enabled +* automatically enable foreground service after detecting frequent restarts +* bug fixes + +### Version 1.14.8 +* bug fixes + +### Version 1.14.7 +* error message accessible via context menu for failed messages +* don't include pgp signature in anonymous mucs +* bug fixes + +### Version 1.14.6 +* make error notification dismissible +* bug fixes + + +### Version 1.14.5 +* expert setting to delete OMEMO identities +* bug fixes + +### Version 1.14.4 +* bug fixes + +### Version 1.14.3 +* XEP-0377: Spam Reporting +* fix rare start up crashes + +### Version 1.14.2 +* support ANONYMOUS SASL +* bug fixes + +### Version 1.14.1 +* Press lock icon to see why OMEMO is deactivated +* bug fixes + +### Version 1.14.0 +* Improvements for N +* Quick Reply to Notifications on N +* Don't download avatars and files when data saver is on +* bug fixes + +### Version 1.13.9 +* bug fixes + +### Version 1.13.8 +* show identities instead of resources in selection dialog +* allow TLS direct connect when port is set to 5223 +* bug fixes + +### Version 1.13.7 +* bug fixes + +### Version 1.13.6 +* thumbnails for videos +* bug fixes + +### Version 1.13.5 +* bug fixes + +### Version 1.13.4 +* support jingle ft:4 +* show contact as DND if one resource is +* bug fixes + +### Version 1.13.3 +* bug fixes + +### Version 1.13.2 +* new PGP decryption logic +* bug fixes + +### Version 1.13.1 +* changed some colors in dark theme +* fixed fall-back message for OMEMO + +### Version 1.13.0 +* configurable dark theme +* opt-in to share Last User Interaction + +### Version 1.12.9 +* make grace period configurable + +### Version 1.12.8 +* more bug fixes :-( + +### Version 1.12.7 +* bug fixes + +### Version 1.12.6 +* bug fixes + +### Version 1.12.5 +* new create conference dialog +* show first unread message on top +* show geo uri as links +* circumvent long message DOS + +### Version 1.12.4 +* show offline members in conference (needs server support) +* various bug fixes + +### Version 1.12.3 +* make omemo default when all resources support it +* show presence of other resources as template +* start typing in StartConversationsActivity to search +* various bug fixes and improvements + +### Version 1.12.2 +* fixed pgp presence signing + +### Version 1.12.1 +* small bug fixes + +### Version 1.12.0 +* new welcome screen that makes it easier to register account +* expert setting to modify presence + +### Version 1.11.7 +* Share xmpp uri from conference details +* add setting to allow quick sharing +* various bug fixes + +### Version 1.11.6 +* added preference to disable notification light +* various bug fixes + +### Version 1.11.5 +* check file ownership to not accidentally share private files + +### Version 1.11.4 +* fixed a bug where contacts are shown as offline +* improved broken PEP detection + +### Version 1.11.3 +* check maximum file size when using HTTP Upload +* properly calculate caps hash + +### Version 1.11.2 +* only add image files to media scanner +* allow to delete files +* various bug fixes + +### Version 1.11.1 +* fixed some bugs when sharing files with Conversations + +### Version 1.11.0 +* OMEMO encrypted conferences + +### Version 1.10.1 +* made message correction opt-in +* various bug fixes + +### Version 1.10.0 +* Support for XEP-0357: Push Notifications +* Support for XEP-0308: Last Message Correction +* introduced build flavors to make dependence on play-services optional + +### Version 1.9.4 +* prevent cleared Conversations from reloading history with MAM +* various MAM fixes + +### Version 1.9.3 +* expert setting that enables host and port configuration +* expert setting opt-out of bookmark autojoin handling +* offer to rejoin a conference after server sent unavailable +* internal rewrites + +### Version 1.9.2 +* prevent startup crash on Sailfish OS +* minor bug fixes + +### Version 1.9.1 +* minor bug fixes incl. a workaround for nimbuzz.com + +### Version 1.9.0 +* Per conference notification settings +* Let user decide whether to compress pictures +* Support for XEP-0368 +* Ask user to exclude Conversations from battery optimizations + +### Version 1.8.4 +* prompt to trust own OMEMO devices +* fixed rotation issues in avatar publication +* invite non-contact JIDs to conferences + +### Version 1.8.3 +* brought text selection back + +### Version 1.8.2 +* fixed stuck at 'connecting...' bug +* make message box behave correctly with multiple links + +### Version 1.8.1 +* enabled direct share on Android 6.0 +* ask for permissions on Android 6.0 +* notify on MAM catchup messages +* bug fixes + +### Version 1.8.0 +* TOR/ORBOT support in advanced settings +* show vcard avatars of participants in a conference + +### Version 1.7.3 +* fixed PGP encrypted file transfer +* fixed repeating messages in slack conferences + +### Version 1.7.2 +* decode PGP messages in background + +### Version 1.7.1 +* performance improvements when opening a conversation + +### Version 1.7.0 +* CAPTCHA support +* SASL EXTERNAL (client certificates) +* fetching MUC history via MAM +* redownload deleted files from HTTP hosts +* Expert setting to automatically set presence +* bug fixes + +### Version 1.6.11 +* tab completion for MUC nicks +* history export +* bug fixes + +### Version 1.6.10 +* fixed facebook login +* fixed bug with ejabberd mam +* use official HTTP File Upload namespace + +### Version 1.6.9 +* basic keyboard support + +### Version 1.6.8 +* reworked 'enter is send' setting +* reworked DNS server discovery on lolipop devices +* various bug fixes + +### Version 1.6.7 +* bug fixes + +### Version 1.6.6 +* best 1.6 release yet + +### Version 1.6.5 +* more OMEMO fixes + +### Version 1.6.4 +* setting to enable white chat bubbles +* limit OMEMO key publish attempts to work around broken PEP +* various bug fixes + +### Version 1.6.3 +* bug fixes + +### Version 1.6.2 +* fixed issues with connection time out when server does not support ping + +### Version 1.6.1 +* fixed crashes + +### Version 1.6.0 +* new multi-end-to-multi-end encryption method +* redesigned chat bubbles +* show unexpected encryption changes as red chat bubbles +* always notify in private/non-anonymous conferences + +### Version 1.5.1 +* fixed rare crashes +* improved otr support + +### Version 1.5.0 +* upload files to HTTP host and share them in MUCs. requires new [HttpUploadComponent](https://github.com/siacs/HttpUploadComponent) on server side + +### Version 1.4.5 +* fixes to message parser to not display some ejabberd muc status messages + +### Version 1.4.4 +* added unread count badges on supported devices +* rewrote message parser + +### Version 1.4.0 +* send button turns into quick action button to offer faster access to take photo, send location or record audio +* visually separate merged messages +* faster reconnects of failed accounts after network switches +* r/o vcard avatars for contacts +* various bug fixes + +### Version 1.3.0 +* swipe conversations to end them +* quickly enable / disable account via slider +* share multiple images at once +* expert option to distrust system CAs +* mlink compatibility +* bug fixes + +### Version 1.2.0 +* Send current location. (requires [plugin](https://play.google.com/store/apps/details?id=eu.siacs.conversations.sharelocation)) +* Invite multiple contacts at once +* performance improvements +* bug fixes + +### Version 1.1.0 +* Typing notifications (must be turned on in settings) +* Various UI performance improvements +* bug fixes + +### Version 1.0.4 +* load avatars asynchronously on start up +* support for XEP-0092: Software Version + +### Version 1.0.3 +* load messages asynchronously on start up +* bug fixes + +### Version 1.0.2 +* skipped + +### Version 1.0.1 +* accept more ciphers + +### Version 1.0 +* MUC controls (Affiliation changes) +* Added download button to notification +* Added check box to hide offline contacts +* Use Material theme and icons on Android L +* Improved security +* bug fixes + code clean up + +### Version 0.10 +* Support for Message Archive Management +* Dynamically load message history +* Ability to block contacts +* New UI to verify fingerprints +* Ability to change password on server +* removed stream compression +* quiet hours +* fixed connection issues on ipv6 servers + +### Version 0.9.3 +* bug fixes + +### Version 0.9.2 +* more bug fixes + +### Version 0.9.1 +* bug fixes including some that caused Conversations to crash on start + +### Version 0.9 +* arbitrary file transfer +* more options to verify OTR (SMP, QR Codes, NFC) +* ability to create instant conferences +* r/o dynamic tags (presence and roster groups) +* optional foreground service (expert option) +* added SCRAM-SHA1 login method +* bug fixes + +### Version 0.8.4 +* bug fixes + +### Version 0.8.3 +* increased UI performance +* fixed rotation bugs + +### Version 0.8.2 +* Share contacts via QR codes or NFC +* Slightly improved UI +* minor bug fixes + +### Version 0.8.1 +* minor bug fixes + +### Version 0.8 +* Download HTTP images +* Show avatars in MUC tiles +* Disabled SSLv3 +* Performance improvements +* bug fixes + +### Version 0.7.3 +* revised tablet ui +* internal rewrites +* bug fixes + +### Version 0.7.2 +* show full timestamp in messages +* brought back option to use JID to identify conferences +* optionally request delivery receipts (expert option) +* more languages +* bug fixes + +### Version 0.7.1 +* Optionally use send button as status indicator + +### Version 0.7 +* Ability to disable notifications for single conversations +* Merge messages in chat bubbles +* Fixes for OpenPGP and OTR (please republish your public key) +* Improved reliability on sending messages +* Join password protected Conferences +* Configurable font size +* Expert options for encryption + +### Version 0.6 +* Support for server side avatars +* save images in gallery +* show contact name and picture in non-anonymous conferences +* reworked account creation +* various bug fixes + +### Version 0.5.2 +* minor bug fixes + +### Version 0.5.1 +* couple of small bug fixes that have been missed in 0.5 +* complete translations for Swedish, Dutch, German, Spanish, French, Russian + +### Version 0.5 +* UI overhaul +* MUC / Conference bookmarks +* A lot of bug fixes + +### Version 0.4 +* OTR file encryption +* keep OTR messages and files on device until both parties or online at the same time +* XEP-0333. Mark whether the other party has read your messages +* Delayed messages are now tagged properly +* Share images from the Gallery +* Infinite history scrolling +* Mark the last used presence in presence selection dialog + +### Version 0.3 +* Mostly bug fixes and internal rewrites +* Touch contact picture in conference to highlight +* Long press on received image to share +* made OTR more reliable +* improved issues with occasional message lost +* experimental conference encryption. (see FAQ) + +### Version 0.2.3 +* regression fix with receiving encrypted images + +### Version 0.2.2 +* Ability to take photos directly +* Improved openPGP offline handling +* Various bug fixes +* Updated Translations + +### Version 0.2.1 +* Various bug fixes +* Updated Translations + +### Version 0.2 +* Image file transfer +* Better integration with OpenKeychain (PGP encryption) +* Nicer conversation tiles for conferences +* Ability to clear conversation history +* A lot of bug fixes and code clean up + +### Version 0.1.3 +* Switched to minidns library to resolve SRV records +* Faster DNS in some cases +* Enabled stream compression +* Added permanent notification when an account fails to connect +* Various bug fixes involving message notifications +* Added support for DIGEST-MD5 auth + +### Version 0.1.2 +* Various bug fixes relating to conferences +* Further DNS lookup improvements + +### Version 0.1.1 +* Fixed the 'server not found' bug + +### Version 0.1 +* Initial release diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..bc1d46abc --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "fastlane" +gem "screengrab" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..22cbee257 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,221 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.5) + rexml + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + artifactory (3.0.15) + atomos (0.1.3) + aws-eventstream (1.2.0) + aws-partitions (1.566.0) + aws-sdk-core (3.130.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.525.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.55.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.113.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sigv4 (1.4.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + claide (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + declarative (0.0.20) + digest-crc (0.6.4) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.7.6) + emoji_regex (3.2.3) + excon (0.91.0) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) + multipart-post (>= 1.2, < 3) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.2.6) + fastlane (2.204.3) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (~> 2.0.0) + naturally (~> 2.2) + optparse (~> 0.1.1) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.3) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.16.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-core (0.4.2) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-iamcredentials_v1 (0.10.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-playcustomapp_v1 (0.7.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-storage_v1 (0.11.0) + google-apis-core (>= 0.4, < 2.a) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.5.0) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.2.0) + google-cloud-storage (1.36.1) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.1) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.1.2) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.4) + domain_name (~> 0.5) + httpclient (2.8.3) + jmespath (1.6.1) + json (2.6.1) + jwt (2.3.0) + memoist (0.16.2) + mini_magick (4.11.0) + mini_mime (1.1.2) + multi_json (1.15.0) + multipart-post (2.0.0) + nanaimo (0.3.0) + naturally (2.2.1) + optparse (0.1.1) + os (1.1.4) + plist (3.6.0) + public_suffix (4.0.6) + rake (13.0.6) + representable (3.1.1) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) + rouge (2.0.7) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + screengrab (1.0.0) + fastlane (>= 2.0.0, < 3.0.0) + security (0.1.3) + signet (0.16.1) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.8) + CFPropertyList + naturally + terminal-notifier (2.0.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.1) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8) + unicode-display_width (1.8.0) + webrick (1.7.0) + word_wrap (1.0.0) + xcodeproj (1.21.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + xcpretty (0.3.0) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + fastlane + screengrab + +BUNDLED WITH + 2.2.5 diff --git a/README-en.md b/README-en.md deleted file mode 100644 index a8b3fad6f..000000000 --- a/README-en.md +++ /dev/null @@ -1,149 +0,0 @@ -# Announcement: - -## Monocles Messenger becomes monocles chat - -What you can expect: -- Range of functions remains the same -- Support chat rooms are merged -- Colors and logos are adapted to monocles chat -- App is still available for free on codeberg and F-Droid Store - -Your monocles Team - ------ - -# monocles chat - -🇩🇪… [Deutsche Version der Readme hier verfügbar.](README.md) / [Francais ici](README-fr.md) - -monocles chat is a modern and secure Android XMPP client. Based on blabber.im and [Conversations](https://github.com/siacs/Conversations) but with a lot of changes and additional features. -The changes aim to improve usability and ease transition from pre-installed and other widespread chats. Here are some screenshots: - - - -Screens designed by Pigeonalley (https://pigeonalley.com) -### Presettings - -monocles chat has different presettings compared to blabber.im: - -* don't show previews of weblinks in chat -* don't show previews of locations in chat -* don't automatically download all attachments - -### OTR - -monocles chat supports OTR encryption! Though it's not easy to use OTR does have some advantages: -https://en.wikipedia.org/wiki/Off-the-Record_Messaging#Implementation - -## Download -monocles chat is available for install in the F-Droid -Alternatively beta-release APKs are available via codeberg: [Releases](https://codeberg.org/Arne/monocles_chat/releases) - -#### monocles chat nightly and beta - -nightly or beta-release APKs are available via codeberg: [Releases](https://codeberg.org/Arne/monocles_chat/releases) - -## Social Media -Follow us on monocles social - -There are also English and German speaking XMPP-room focusing on support and development of the monocles chat. - -If you are interested in the development of the chat, here is a MUC for you (English and German speaking): - -Development-Chat: [development@conference.monocles.de](https://monocles.chat/) - - -There also is an Support-MUC where you can ask questions and get help with issues you may encounter, see further below for details. - - -## How can I support translations ? -You can create merge request and add new languages as locales and add and edit translations already existing. - - - -## Help! I've encountered issues! -The easiest way to get some help is to join our support-MUC (both English and German). - -Support-Chat invite link: [support@conference.monocles.de](https://monocles.chat/) - -If we can't fix your problem there, you can open an issue [here](https://codeberg.org/Arne/monocles_chat/issues), detailing your problem, how to reproduce it and provide logs. See instructions below on how to create log files. - - - -### How to create debug logs? (adb) - -#### GNU/Linux, OSX and other Unix-like systems: - -1. First install The **A**ndroid **D**ebugging **B**ridge, if not already present. - ###### Debian and derivates like Ubuntu / Linux Mint - ``` - sudo apt-get update - sudo apt-get update adb - # Debian Jessie or older: - # sudo apt-get install android-tools-adb - ``` - ###### openSUSE 42.2 and 42.3 - ``` - sudo zypper ref - sudo zypper install android-tools - ``` - ###### openSUSE Tumbleweed - here you need to add the following repo (e.g. via Yast): - http://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/ - - alternatively you have the option to use the `1 Click installer` - https://software.opensuse.org/package/android-tools - ###### other systems - install adb using a method appropriate for your system - -2. Now open a terminal in a directory of you're choice, or navigate to the directory using `cd`. - -3. Follow steps [6] to [10] of the Windows instructions. - -4. Start outputting your log to a file on your computer. We will be using `logcat.txt`. Enter: - ``` - $ adb -d logcat -v time | grep -i monocles_chat > logcat.txt - ``` - -5. Follow the remaining steps [12] and [13] of the Windows instructions. - - -#### Windows: - -1. Download Google's SDK-platform tools for your operating system: - - https://developer.android.com/studio/releases/platform-tools.html -2. In case they were not included: You also need the ADB_drivers for your version of Microsoft Windows: - - https://developer.android.com/studio/run/win-usb.html -3. Extract the zip-archive (e.g. to `C:\ADB\`) -4. Open the command line (CMD) using the start menu: Start > Execute: cmd -5. Navigate to the directory you extracted the zip to as following. We will be using `C:\ADB\` - ``` - c: - cd ADB - ``` -6. On your smartphone open the settings and search for the item `Developer Options`. If this option is not already present on your phone you will need to unlock it beforehand. To do this navigate to `Settings > About phone`, there locate `Build number` (or similar) and tap it 7-times in succession. You should now see a notification, that you are now a developer. Congrats, `Developer Options` are now available in your settings menu. -7. Inside `Developer Options` search activate the setting `USB-Debugging` (sometimes just called `Android Debugging`). -8. Connect your phone to your computer via USB cable. The necessary drivers should now be downloaded and installed if not already present. On Windows all necessary drivers should be downloaded automatically if you followed step [2] beforehand. On most GNU/Linux systems no additional action is required. -9. If everything worked out, you can now return to the command line and test if your device is being recognised. Enter `adb devices -l`; you should see output similar to: - ``` - > adb devices -l - List of devices attached - * daemon not running. starting it now on port 5037 * - * daemon started successfully * - 042111560169500303f4 unauthorized - ``` -10. If your devices is labelled as `unautorized`, you must first accept a prompt on your phone asking if debugging over USB should be allowed. When rerunning `adb devices` you should now see: - ``` - > adb devices - List of devices attached - 042111560169500303f4 device - ``` -11. Start outputting your log to a file on your computer. We will be using `logcat.txt` in `C:\ADB\`. Just enter the following (without `> ` into the command line): - ``` - > adb -d logcat -v time | FINDSTR monocles_chat > logcat.txt - ``` -12. Now reproduce the issue encountered. - -13. Stop logging (`Ctrl+C`). Now take a close look at your log file and remove any personal and private information you may find before sending it together with a detailed description of your issue, instructions on how to reproduce to me. You can use GitHub's issue tracker: [Issues](https://github.com/kriztan/Monocles-Messenger/issues) diff --git a/README-fr.md b/README-fr.md deleted file mode 100644 index 57300ff90..000000000 --- a/README-fr.md +++ /dev/null @@ -1,135 +0,0 @@ -# Annonce: - -## Monocles Messenger devient monocles chat - -Ce que vous pouvez attendre : -- La gamme de fonctions reste la même -- Les salons de chat du support sont fusionnés -- Les couleurs et les logos sont adaptés au chat de monocles. -- L'application est toujours disponible gratuitement sur codeberg et F-Droid Store. - -L'équipe monocles - ------ - -# monocles chat - -🇩🇪… [Deutsche Version der Readme hier verfügbar.](README.md) / 🇬🇧🇺🇸… [English Readme version available here](README-en.md) - -monocles chat est un fork de blabber.im et [Conversations] (https://github.com/siacs/Conversations). -Les changements visent à améliorer la convivialité et à faciliter la transition depuis les chats préinstallés et d'autres chats répandus. Voici quelques captures d'écran : - - - -## Télécharger -monocles chat est disponible dans F-Droid -Alternativement, les APKs de la release et de la beta-release sont disponibles via codeberg : [Releases](https://codeberg.org/Arne/monocles_chat/releases/latest) - -#### monocles chat nightly et beta - -Les APK nightly ou beta-release sont disponibles via codeberg : [Releases](https://codeberg.org/Arne/monocles_chat/releases/nightly) - -## Réseaux sociaux -Suivez-nous sur monocles social - -Il existe également des sales XMPP anglophones et germanophones qui se concentrent sur le support et le développement de monocles chat. - -Si vous êtes intéressé par le développement du chat, voici un MUC pour vous (en anglais et en allemand) : - -Développement-Chat : [development@conference.monocles.de](https://monocles.chat/) - - -Il existe également un Support-MUC où vous pouvez poser des questions et obtenir de l'aide pour les problèmes que vous pouvez rencontrer, voir ci-dessous pour plus de détails. - - -## Comment puis-je aider à la traduction ? -Vous pouvez créer une demande de fusion et ajouter de nouvelles langues en tant que locales et ajouter et modifier des traductions déjà existantes. - - - -## Aidez-moi ! J'ai rencontré des problèmes ! -La façon la plus simple d'obtenir de l'aide est de rejoindre notre support-MUC (en anglais et en allemand). - -Lien d'invitation à la discussion de soutien : [support@conference.monocles.eu] - -Si nous ne pouvons pas résoudre votre problème, vous pouvez ouvrir une question [ici](https://codeberg.org/Arne/monocles_chat/issues), en détaillant votre problème, comment le reproduire et en fournissant des journaux. Voir les instructions ci-dessous sur la façon de créer des fichiers journaux. - - - -### Comment créer des journaux de débogage ? (adb) - -#### GNU/Linux, OSX et d'autres systèmes de type Unix : - -1. Installez d'abord **A**ndroid **D**ebugging **B**ridge, si ce n'est pas déjà fait. - ###### Debian et ses dérivés comme Linux Mint / Ubuntu - ``` - sudo apt-get update - sudo apt-get update adb - # Debian Jessie or older: - # sudo apt-get install android-tools-adb - ``` - ###### openSUSE 42.2 et 42.3 - ``` - sudo zypper ref - sudo zypper install android-tools - ``` - ###### openSUSE Tumbleweed - ici, vous devez ajouter le dépôt suivant (par exemple via Yast) : - http://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/ - - Vous avez également la possibilité d'utiliser le programme d'installation en un clic. - https://software.opensuse.org/package/android-tools - ###### autres systèmes - installer adb en utilisant une méthode appropriée à votre système - -2. Maintenant, ouvrez un terminal dans un répertoire de votre choix, ou naviguez vers le répertoire en utilisant `cd`. - -3. Suivez les étapes [6] à [10] des instructions Windows. - -4. Commencez à sortir votre journal dans un fichier sur votre ordinateur. Nous allons utiliser `logcat.txt`. Entrez : - ``` - $ adb -d logcat -v time | grep -i monocles_chat > logcat.txt - ``` - -5. Suivez les autres étapes [12] et [13] des instructions Windows. - - -#### Windows: - -1. Téléchargez les outils de la plateforme SDK de Google pour votre système d'exploitation : - - https://developer.android.com/studio/releases/platform-tools.html -2. Au cas où ils n'auraient pas été inclus : Vous avez également besoin des ADB_drivers pour votre version de Microsoft Windows : - - https://developer.android.com/studio/run/win-usb.html -3. Extrayez l'archive zip (par exemple vers "C:\ADB\"). -4. Ouvrez la ligne de commande (CMD) à l'aide du menu Démarrer : Démarrer > Exécuter : cmd -5. Naviguez vers le répertoire dans lequel vous avez extrait le zip comme suit. Nous allons utiliser `C:\ADB\`. - ``` - c: - cd ADB - ``` -6. Sur votre smartphone, ouvrez les paramètres et recherchez "Options développeur". Si cette option n'est pas déjà présente sur votre téléphone, vous devrez le déverrouiller au préalable. Pour ce faire, allez dans `Paramètres > À propos du téléphone`, localisez le `Numéro de construction` (ou similaire) et appuyez dessus 7 fois de suite. Vous devriez maintenant voir une notification indiquant que vous êtes maintenant un développeur. Félicitations, les `Options développeur` sont maintenant disponibles dans votre menu de paramètres. -7. Dans la recherche `Options développeur`, activez le paramètre `USB-Debugging` (parfois juste appelé `Android Debugging`). -8. Connectez votre téléphone à votre ordinateur via un câble USB. Les pilotes nécessaires doivent maintenant être téléchargés et installés s'ils ne sont pas déjà présents. Sous Windows, tous les pilotes nécessaires devraient être téléchargés automatiquement si vous avez suivi l'étape [2] au préalable. Sur la plupart des systèmes GNU/Linux, aucune action supplémentaire n'est requise. -9. Si tout a fonctionné, vous pouvez maintenant retourner à la ligne de commande et tester si votre périphérique est reconnu. Entrez `adb devices -l` ; vous devriez voir une sortie similaire à celle-ci : - ``` - > adb devices -l - List of devices attached - * daemon not running. starting it now on port 5037 * - * daemon started successfully * - 042111560169500303f4 unauthorized - ``` -10. Si votre appareil est étiqueté comme `unautorized`, vous devez d'abord accepter une invite sur votre téléphone demandant si le débogage par USB doit être autorisé. En relançant `adb devices` vous devriez maintenant voir : - ``` - > adb devices - List of devices attached - 042111560169500303f4 device - ``` -11. Commencez à sortir votre journal dans un fichier sur votre ordinateur. Nous allons utiliser `logcat.txt` dans `C:\ADB\`. Entrez simplement ce qui suit (sans `> ` dans la ligne de commande) : - ``` - > adb -d logcat -v time | FINDSTR monocles_chat > logcat.txt - ``` -12. Reproduisez maintenant le problème rencontré. - -13. Arrêtez la journalisation (`Ctrl+C`). Maintenant, regardez attentivement votre fichier de log et supprimez toute information personnelle et privée que vous pourriez trouver avant de me l'envoyer avec une description détaillée de votre problème et des instructions sur la façon de le reproduire. Vous pouvez utiliser le gestionnaire de problèmes de GitHub : [Issues](https://github.com/kriztan/Monocles-Messenger/issues) \ No newline at end of file diff --git a/README.md b/README.md index 9a1ba1948..900b16b22 100644 --- a/README.md +++ b/README.md @@ -1,105 +1,40 @@ -# monocles chat +# Cheogram Android -🇬🇧🇺🇸… [English Readme version available here](README-en.md) / [Francais ici](README-fr.md) +This is a fork of [Conversations](https://conversations.im) to implement features of use to the [Sopranica](https://soprani.ca) project. -monocles chat ist moderner und sicherer Android XMPP-Client. Basierend auf blabber.im und der offiziellen Android-App [Conversations](https://github.com/siacs/Conversations) mit einigen Änderungen, insbesondere zur Verbesserung der Benutzerfreundlichkeit, um den Umstieg von oftmals vorinstallierten Messengern zu erleichtern. Die folgenden Bilder geben erste Eindrücke der App: +The Cheogram Android app allows you to join a worldwide communication network. It especially focuses on features useful to users who want to contact those on other networks as well, such as SMS-enabled phone numbers. - +Based on the app Conversations, but with unique features: -Vorschaubilder erstellt von Pigeonalley (https://pigeonalley.com) +* Messages with both media and text, including animated media +* Unobtrusive display of subject lines, where present +* Links to known contacts are shown with their name +* Show timestamps for calls +* Integrates with gateways' add contact flows +* When using a gateway to the phone network, integrate with the native Android Phone app +* Address book integration +* Tag contacts and channels and browse by tag +* Command UI -Download ist hier möglich: -Jetzt bei F-Droid +## Getting Help -Folge uns auf monocles social +If you have any questions about this app, or wish to report a bug, please send email to dev@singpolyma.net or join us in [xmpp:support@conference.monocles.eu?join](xmpp:support@conference.monocles.eu?join) -#### monocles chat nightly bzw. beta +## Contributing -nightly oder beta Versionen kann man direkt hier von Codeberg unter [Releases](https://codeberg.org/Arne/monocles_chat/releases) herunterladen. +If you have code or patches you wish to contribute, the maintainer's preferred mechanism is a git pull request. Push your changes to a git repository somewhere, for example: -#### Wie kann ich bei der Übersetzung helfen? -Du kannst einen Merge Request erstellen in dem du Verbesserungen oder neue Sprachen hinzugefügt hast. + git remote rename origin upstream + git remote add origin git@git.sr.ht:~yourname/cheogram-android + git push -u origin master -#### Ich habe Probleme, was soll ich tun? -Am einfachsten ist es, wenn du unserer Support-Gruppe beitrittst, dort werden deine Probleme mit Sicherheit schnell gelöst. +Then generate the pull request: -Support-Chat: [support@conference.monocles.eu](https://monocles.chat) + git fetch upstream master + git request-pull -p upstream/master origin -Development-Chat: [development@conference.monocles.de](https://monocles.chat) +And copy-paste the result into a plain-text email to: dev@singpolyma.net +You may alternately use a patch-based approach as described on https://git-send-email.io -Solltest du dort nicht weiter kommen kannst du [hier](https://codeberg.org/Arne/monocles_chat/issues) ein Issue erstellen, in welchem du dein Problem genau beschreibst und welche Schritte erforderlich sind, um zu dem Problem zu gelangen. - -#### Wie erstelle ich Debug- bzw. ADB-Logs? - -##### Linux: - -1. Installation von ADB - ###### Debian und Derivate wie Ubuntu / Linux Mint - ``` - sudo apt-get update - sudo apt-get install adb - # For Debian Jessie and older - # sudo apt-get install android-tools-adb - ``` - ###### openSUSE 42.2 und 42.3 - ``` - sudo zypper ref - sudo zypper install android-tools - ``` - ###### openSUSE Tumbleweed - hier muss für das benötigte Packet folgende Repo eingebunden werden (z.B. bequem über Yast): - http://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/ - - alternativ kann auch der `1 Click Installer` benutzt werden: - https://software.opensuse.org/package/android-tools - -2. Navigiere im Terminal mit `cd` in das Verzeichnis deines Vertrauens -3. Folge den Schritten [6] bis [10] unter [Windows]. s.u. -4. Nun kannst du mit der Ausgabe der Debug-Logs beginnen. Nenne die Log-Datei bspw `logcat.txt`: - ``` - $ adb -d logcat -v time | grep -i monocles_chat > logcat.txt - ``` -5. Fahre nun mit den verbliebenen Schritten unter [Windows] ab Schritt [12] fort. - -##### Windows: - -1. Lade dir die SDK-Plattform-Tools für dein Betriebssystem von Google herunter: - - https://developer.android.com/studio/releases/platform-tools.html -2. Falls noch nicht getan, lade dir die ADB Treiber für dein Betriebssystem von Google herunter, für Windows hier: - - https://developer.android.com/studio/run/win-usb.html -3. Entpacke die zip (z.B. nach C:\ADB\) -4. Öffne die Kommandozeile (CMD) mit Start > Ausführen: cmd -5. Wechsele in der Kommandozeile in das Verzeichnis C:\ADB wie folgt - ``` - c: - cd ADB - ``` -6. Auf deinem Telefon gehst du in die Einstellungen und suchst nach dem Punkt `Entwickleroptionen`. Sollte dieser bei dir nicht vorhanden sein, musst du diese Optionen erst noch freischalten. Dazu wechselst du in den Einstellungen in den Punkt `über das Telefon` und suchst dort nach `Buildnummer` oder Ähnlichem. Diese Zeile musst Du mindestens 7 mal hintereinander antippen, es sollte dann ein Hinweis eingeblendet werden, der dir bestätigt, dass du nun Entwickler bist. -7. In den `Entwickleroptionen` suchst du nach dem Eintrag `USB-Debugging` und aktivierst ihn. -8. Schließe dein Handy mit dem USB-Kabel an deinen PC an. Die erforderlichen Treiber sollten zumindest in Windows automatisch installiert werden. -9. Wenn alles ohne Fehler geklappt hat, kannst du wieder in die Kommandozeile gehen und testen, ob alles funktioniert. Gib dazu in CMD `adb devices -l` ein, es sollte in etwa sowas bei dir stehen: - ``` - > adb devices -l - List of devices attached - * daemon not running. starting it now on port 5037 * - * daemon started successfully * - 042111560169500303f4 unauthorized - ``` -10. Falls dein Handy als `unauthorized` markiert wird, sollte am Handy eine Meldung `USB-Debugging zulassen?` kommen, diese mit `OK` bestätigen, sodass bei `adb devices` folgendes dort stehen sollte: - ``` - > adb devices - List of devices attached - 042111560169500303f4 device - ``` -11. Nun kannst du mit der Ausgabe der Debug-Logs beginnen. Dazu gibst du im CMD folgendes ein und die Ausgabe beginnt in die Datei `logcat.txt` im Verzeichnis `C:\ADB`: - ``` - > adb -d logcat -v time | FINDSTR monocles_chat > logcat.txt - ``` -12. Führe nun die Schritte aus, die zum Fehler führen. - -13. Nachdem der Fehler reproduziert wurde, kann das Loggen im Terminal mit `Strg+C` beendet werden. - -14. Zum Schluss schaue dir die `logcat.txt` an, lösche ggf. persönliche Angaben und sende diese Datei zur Problemlösung mit einer Beschreibung des Fehlers und was man tun muss, um diesen Fehler zu erhalten, an mich. Nutz dafür den Menüpunkt [Issues](https://codeberg.org/Arne/monocles_chat/issues) +Contributions follow an inbound=outbound model -- you (or your employer) keep all copyright on your patches, but agree to license them according to this project's COPYING file. diff --git a/art/LICENSE b/art/LICENSE new file mode 100644 index 000000000..34ec65f34 --- /dev/null +++ b/art/LICENSE @@ -0,0 +1,425 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/art/conversations_mono.svg b/art/conversations_mono.svg new file mode 100644 index 000000000..8bd294736 --- /dev/null +++ b/art/conversations_mono.svg @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/conversations_mono_dashed.svg b/art/conversations_mono_dashed.svg new file mode 100644 index 000000000..a8bba9414 --- /dev/null +++ b/art/conversations_mono_dashed.svg @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/date_bubble_grey.svg b/art/date_bubble_grey.svg new file mode 100644 index 000000000..38db49f9b --- /dev/null +++ b/art/date_bubble_grey.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/date_bubble_white.svg b/art/date_bubble_white.svg new file mode 100644 index 000000000..452ae9272 --- /dev/null +++ b/art/date_bubble_white.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/flip_camera_android-black-24dp.svg b/art/flip_camera_android-black-24dp.svg new file mode 100644 index 000000000..f50c0d721 --- /dev/null +++ b/art/flip_camera_android-black-24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/art/ic_launcher.svg b/art/ic_launcher.svg new file mode 100644 index 000000000..68c403ecb --- /dev/null +++ b/art/ic_launcher.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/ic_missed_call_notification.svg b/art/ic_missed_call_notification.svg new file mode 100644 index 000000000..78f0acead --- /dev/null +++ b/art/ic_missed_call_notification.svg @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_no_results_black.svg b/art/ic_no_results_black.svg new file mode 100644 index 000000000..fb0f78117 --- /dev/null +++ b/art/ic_no_results_black.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_no_results_white.svg b/art/ic_no_results_white.svg new file mode 100644 index 000000000..744616a48 --- /dev/null +++ b/art/ic_no_results_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_notifications_none_white80.svg b/art/ic_notifications_none_white80.svg new file mode 100644 index 000000000..d333130ff --- /dev/null +++ b/art/ic_notifications_none_white80.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_notifications_off_white80.svg b/art/ic_notifications_off_white80.svg new file mode 100644 index 000000000..f0af47b61 --- /dev/null +++ b/art/ic_notifications_off_white80.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_notifications_paused_white80.svg b/art/ic_notifications_paused_white80.svg new file mode 100644 index 000000000..4f92e8475 --- /dev/null +++ b/art/ic_notifications_paused_white80.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_notifications_white80.svg b/art/ic_notifications_white80.svg new file mode 100644 index 000000000..398e51385 --- /dev/null +++ b/art/ic_notifications_white80.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_search_black.svg b/art/ic_search_black.svg new file mode 100644 index 000000000..e3d0e8096 --- /dev/null +++ b/art/ic_search_black.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_search_white.svg b/art/ic_search_white.svg new file mode 100644 index 000000000..7186d8e23 --- /dev/null +++ b/art/ic_search_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_secure_indicator.xcf b/art/ic_secure_indicator.xcf new file mode 100644 index 0000000000000000000000000000000000000000..a9069c9bb5f6d16b48eb0ab450b2424de76f58fb GIT binary patch literal 1240 zcmd6nPfi;#6vkhYY4Zot5Yd1T4H$$_5DE~fCtwXL4uFP7`l<_ykk3&o8JvewByp&^8a7-InPUZA57#fN5Ux?!)|=KkIFlAy@86O!$f+geYw?(0`8YLoj;@H z1JHm6V9kYPqtOr_1p6EnVD(f+PiJ&BqifK1VUSeJ<4y?s5ST09#r^m@ zvaO%LfcFS~gFl=b&San)D(df4)!S6po7B)Pn%C>Jpx0FV^y6B-nmFjuoKJrrY@2YdAnXd@JGbDMNgCg|gLe-ez)#NM_Gmn9 LN`c>n@$>ux7&hU- literal 0 HcmV?d00001 diff --git a/art/ic_send_cancel_away.svg b/art/ic_send_cancel_away.svg new file mode 100644 index 000000000..1ee9c40f6 --- /dev/null +++ b/art/ic_send_cancel_away.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_cancel_dnd.svg b/art/ic_send_cancel_dnd.svg new file mode 100644 index 000000000..67a562b2f --- /dev/null +++ b/art/ic_send_cancel_dnd.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_cancel_offline.svg b/art/ic_send_cancel_offline.svg new file mode 100644 index 000000000..b88ade09d --- /dev/null +++ b/art/ic_send_cancel_offline.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_cancel_offline_white.svg b/art/ic_send_cancel_offline_white.svg new file mode 100644 index 000000000..f84f62f57 --- /dev/null +++ b/art/ic_send_cancel_offline_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_cancel_online.svg b/art/ic_send_cancel_online.svg new file mode 100644 index 000000000..133e69f11 --- /dev/null +++ b/art/ic_send_cancel_online.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_location_away.svg b/art/ic_send_location_away.svg new file mode 100644 index 000000000..fcd50b521 --- /dev/null +++ b/art/ic_send_location_away.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_location_dnd.svg b/art/ic_send_location_dnd.svg new file mode 100644 index 000000000..705cdb6f4 --- /dev/null +++ b/art/ic_send_location_dnd.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_location_offline.svg b/art/ic_send_location_offline.svg new file mode 100644 index 000000000..56529b723 --- /dev/null +++ b/art/ic_send_location_offline.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_location_offline_white.svg b/art/ic_send_location_offline_white.svg new file mode 100644 index 000000000..f7f60a8f4 --- /dev/null +++ b/art/ic_send_location_offline_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_location_online.svg b/art/ic_send_location_online.svg new file mode 100644 index 000000000..76d146ccf --- /dev/null +++ b/art/ic_send_location_online.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_photo_away.svg b/art/ic_send_photo_away.svg new file mode 100644 index 000000000..31a20e09f --- /dev/null +++ b/art/ic_send_photo_away.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_photo_dnd.svg b/art/ic_send_photo_dnd.svg new file mode 100644 index 000000000..9ef8b7821 --- /dev/null +++ b/art/ic_send_photo_dnd.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_photo_offline.svg b/art/ic_send_photo_offline.svg new file mode 100644 index 000000000..b2ca20a6f --- /dev/null +++ b/art/ic_send_photo_offline.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_photo_offline_white.svg b/art/ic_send_photo_offline_white.svg new file mode 100644 index 000000000..45875731c --- /dev/null +++ b/art/ic_send_photo_offline_white.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_photo_online.svg b/art/ic_send_photo_online.svg new file mode 100644 index 000000000..f29c3c7c7 --- /dev/null +++ b/art/ic_send_photo_online.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_picture_away.svg b/art/ic_send_picture_away.svg new file mode 100644 index 000000000..a85a1eecb --- /dev/null +++ b/art/ic_send_picture_away.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_picture_dnd.svg b/art/ic_send_picture_dnd.svg new file mode 100644 index 000000000..0c7d06356 --- /dev/null +++ b/art/ic_send_picture_dnd.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_picture_offline.svg b/art/ic_send_picture_offline.svg new file mode 100644 index 000000000..048508a35 --- /dev/null +++ b/art/ic_send_picture_offline.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_picture_offline_white.svg b/art/ic_send_picture_offline_white.svg new file mode 100644 index 000000000..16131740f --- /dev/null +++ b/art/ic_send_picture_offline_white.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_picture_online.svg b/art/ic_send_picture_online.svg new file mode 100644 index 000000000..ff388a4d4 --- /dev/null +++ b/art/ic_send_picture_online.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_text_away.svg b/art/ic_send_text_away.svg new file mode 100644 index 000000000..ea83086ae --- /dev/null +++ b/art/ic_send_text_away.svg @@ -0,0 +1,69 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_send_text_dnd.svg b/art/ic_send_text_dnd.svg new file mode 100644 index 000000000..1b7ad51f4 --- /dev/null +++ b/art/ic_send_text_dnd.svg @@ -0,0 +1,69 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_send_text_offline.svg b/art/ic_send_text_offline.svg new file mode 100644 index 000000000..c87bfaac6 --- /dev/null +++ b/art/ic_send_text_offline.svg @@ -0,0 +1,69 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_send_text_offline_white.svg b/art/ic_send_text_offline_white.svg new file mode 100644 index 000000000..4434d33db --- /dev/null +++ b/art/ic_send_text_offline_white.svg @@ -0,0 +1,70 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_send_text_online.svg b/art/ic_send_text_online.svg new file mode 100644 index 000000000..ff01bd6ef --- /dev/null +++ b/art/ic_send_text_online.svg @@ -0,0 +1,69 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/ic_send_videocam_away.svg b/art/ic_send_videocam_away.svg new file mode 100644 index 000000000..52b8478cf --- /dev/null +++ b/art/ic_send_videocam_away.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_videocam_dnd.svg b/art/ic_send_videocam_dnd.svg new file mode 100644 index 000000000..254e3859a --- /dev/null +++ b/art/ic_send_videocam_dnd.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_videocam_offline.svg b/art/ic_send_videocam_offline.svg new file mode 100644 index 000000000..91a7778d6 --- /dev/null +++ b/art/ic_send_videocam_offline.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_videocam_offline_white.svg b/art/ic_send_videocam_offline_white.svg new file mode 100644 index 000000000..67f5563a6 --- /dev/null +++ b/art/ic_send_videocam_offline_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_videocam_online.svg b/art/ic_send_videocam_online.svg new file mode 100644 index 000000000..7ee2fff97 --- /dev/null +++ b/art/ic_send_videocam_online.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/ic_send_voice_away.svg b/art/ic_send_voice_away.svg new file mode 100644 index 000000000..379f55b7d --- /dev/null +++ b/art/ic_send_voice_away.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_voice_dnd.svg b/art/ic_send_voice_dnd.svg new file mode 100644 index 000000000..b1b7a7a97 --- /dev/null +++ b/art/ic_send_voice_dnd.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_voice_offline.svg b/art/ic_send_voice_offline.svg new file mode 100644 index 000000000..64ea44731 --- /dev/null +++ b/art/ic_send_voice_offline.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_voice_offline_white.svg b/art/ic_send_voice_offline_white.svg new file mode 100644 index 000000000..25ffe3223 --- /dev/null +++ b/art/ic_send_voice_offline_white.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_voice_online.svg b/art/ic_send_voice_online.svg new file mode 100644 index 000000000..2c5405236 --- /dev/null +++ b/art/ic_send_voice_online.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_verified_fingerprint.svg b/art/ic_verified_fingerprint.svg new file mode 100644 index 000000000..689c42ebd --- /dev/null +++ b/art/ic_verified_fingerprint.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/art/logo.png b/art/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c606a582914da0281f35e846a25413d0b443d9e7 GIT binary patch literal 43688 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

AVQ-Fqlj3lEK;gTMYvpT4hl+6BKG0}) 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 e#{O;LNE|!iO_@*a?@ + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/message_bubble_received.svg b/art/message_bubble_received.svg new file mode 100644 index 000000000..06c9bf92c --- /dev/null +++ b/art/message_bubble_received.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_received_dark.svg b/art/message_bubble_received_dark.svg new file mode 100644 index 000000000..06c9bf92c --- /dev/null +++ b/art/message_bubble_received_dark.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_received_grey.svg b/art/message_bubble_received_grey.svg new file mode 100644 index 000000000..e1d8347fc --- /dev/null +++ b/art/message_bubble_received_grey.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_received_obsidian.svg b/art/message_bubble_received_obsidian.svg new file mode 100644 index 000000000..a1e743733 --- /dev/null +++ b/art/message_bubble_received_obsidian.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_received_warning.svg b/art/message_bubble_received_warning.svg new file mode 100644 index 000000000..765ca7041 --- /dev/null +++ b/art/message_bubble_received_warning.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_received_white.svg b/art/message_bubble_received_white.svg new file mode 100644 index 000000000..52e599f05 --- /dev/null +++ b/art/message_bubble_received_white.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_sent.svg b/art/message_bubble_sent.svg new file mode 100644 index 000000000..90ad5091a --- /dev/null +++ b/art/message_bubble_sent.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/message_bubble_sent_grey.svg b/art/message_bubble_sent_grey.svg new file mode 100644 index 000000000..23e13d665 --- /dev/null +++ b/art/message_bubble_sent_grey.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/art/omemo_logo.svg b/art/omemo_logo.svg new file mode 100644 index 000000000..ca20a5b94 --- /dev/null +++ b/art/omemo_logo.svg @@ -0,0 +1,273 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/open_pdf_black.svg b/art/open_pdf_black.svg new file mode 100644 index 000000000..0fa22285a --- /dev/null +++ b/art/open_pdf_black.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/open_pdf_white.svg b/art/open_pdf_white.svg new file mode 100644 index 000000000..a307529bb --- /dev/null +++ b/art/open_pdf_white.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/art/play_gif_black.svg b/art/play_gif_black.svg new file mode 100644 index 000000000..a2b426a24 --- /dev/null +++ b/art/play_gif_black.svg @@ -0,0 +1,68 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/art/play_gif_white.svg b/art/play_gif_white.svg new file mode 100644 index 000000000..f8ec27426 --- /dev/null +++ b/art/play_gif_white.svg @@ -0,0 +1,68 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/art/play_video_black.svg b/art/play_video_black.svg new file mode 100644 index 000000000..72d6e756f --- /dev/null +++ b/art/play_video_black.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/play_video_white.svg b/art/play_video_white.svg new file mode 100644 index 000000000..c8a1558ba --- /dev/null +++ b/art/play_video_white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/qrcode-scan.svg b/art/qrcode-scan.svg new file mode 100644 index 000000000..63f1f6a15 --- /dev/null +++ b/art/qrcode-scan.svg @@ -0,0 +1,48 @@ + +image/svg+xml \ No newline at end of file diff --git a/art/quicksy.svg b/art/quicksy.svg new file mode 100644 index 000000000..e70bf4f01 --- /dev/null +++ b/art/quicksy.svg @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/quicksy_main_logo.svg b/art/quicksy_main_logo.svg new file mode 120000 index 000000000..6fce608d9 --- /dev/null +++ b/art/quicksy_main_logo.svg @@ -0,0 +1 @@ +quicksy.svg \ No newline at end of file diff --git a/art/quicksy_mono.svg b/art/quicksy_mono.svg new file mode 100644 index 000000000..8ca8d3e47 --- /dev/null +++ b/art/quicksy_mono.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/art/quicksy_splash_logo.svg b/art/quicksy_splash_logo.svg new file mode 120000 index 000000000..6fce608d9 --- /dev/null +++ b/art/quicksy_splash_logo.svg @@ -0,0 +1 @@ +quicksy.svg \ No newline at end of file diff --git a/art/render.rb b/art/render.rb new file mode 100755 index 000000000..59cd7b156 --- /dev/null +++ b/art/render.rb @@ -0,0 +1,157 @@ +#!/bin/env ruby +# frozen_string_literal: true + +require 'xml' + +resolutions = { + 'mdpi' => 1, + 'hdpi' => 1.5, + 'xhdpi' => 2, + 'xxhdpi' => 3, + 'xxxhdpi' => 4 +} + +images = { + 'main_logo.svg' => ['conversations/main_logo', 200], + 'quicksy_main_logo.svg' => ['quicksy/main_logo', 200], + 'splash_logo.svg' => ['conversations/splash_logo', 144], + 'quicksy_splash_logo.svg' => ['quicksy/splash_logo', 144], + 'ic_search_black.svg' => ['ic_search_background_black', 144], + 'ic_search_white.svg' => ['ic_search_background_white', 144], + 'ic_no_results_white.svg' => ['ic_no_results_background_white', 144], + 'ic_no_results_black.svg' => ['ic_no_results_background_black', 144], + 'play_video_white.svg' => ['play_video_white', 128], + 'play_gif_white.svg' => ['play_gif_white', 128], + 'play_video_black.svg' => ['play_video_black', 128], + 'play_gif_black.svg' => ['play_gif_black', 128], + 'open_pdf_black.svg' => ['open_pdf_black', 128], + 'open_pdf_white.svg' => ['open_pdf_white', 128], + 'conversations_mono.svg' => ['conversations/ic_notification', 24], + 'quicksy_mono.svg' => ['quicksy/ic_notification', 24], + 'flip_camera_android-black-24dp.svg' => ['ic_flip_camera_android_black_24dp', 24], + 'ic_send_text_offline.svg' => ['ic_send_text_offline', 36], + 'ic_send_text_offline_white.svg' => ['ic_send_text_offline_white', 36], + 'ic_send_text_online.svg' => ['ic_send_text_online', 36], + 'ic_send_text_away.svg' => ['ic_send_text_away', 36], + 'ic_send_text_dnd.svg' => ['ic_send_text_dnd', 36], + 'ic_send_photo_online.svg' => ['ic_send_photo_online', 36], + 'ic_send_photo_offline.svg' => ['ic_send_photo_offline', 36], + 'ic_send_photo_offline_white.svg' => ['ic_send_photo_offline_white', 36], + 'ic_send_photo_away.svg' => ['ic_send_photo_away', 36], + 'ic_send_photo_dnd.svg' => ['ic_send_photo_dnd', 36], + 'ic_send_location_online.svg' => ['ic_send_location_online', 36], + 'ic_send_location_offline.svg' => ['ic_send_location_offline', 36], + 'ic_send_location_offline_white.svg' => ['ic_send_location_offline_white', 36], + 'ic_send_location_away.svg' => ['ic_send_location_away', 36], + 'ic_send_location_dnd.svg' => ['ic_send_location_dnd', 36], + 'ic_send_voice_online.svg' => ['ic_send_voice_online', 36], + 'ic_send_voice_offline.svg' => ['ic_send_voice_offline', 36], + 'ic_send_voice_offline_white.svg' => ['ic_send_voice_offline_white', 36], + 'ic_send_voice_away.svg' => ['ic_send_voice_away', 36], + 'ic_send_voice_dnd.svg' => ['ic_send_voice_dnd', 36], + 'ic_send_cancel_online.svg' => ['ic_send_cancel_online', 36], + 'ic_send_cancel_offline.svg' => ['ic_send_cancel_offline', 36], + 'ic_send_cancel_offline_white.svg' => ['ic_send_cancel_offline_white', 36], + 'ic_send_cancel_away.svg' => ['ic_send_cancel_away', 36], + 'ic_send_cancel_dnd.svg' => ['ic_send_cancel_dnd', 36], + 'ic_send_picture_online.svg' => ['ic_send_picture_online', 36], + 'ic_send_picture_offline.svg' => ['ic_send_picture_offline', 36], + 'ic_send_picture_offline_white.svg' => ['ic_send_picture_offline_white', 36], + 'ic_send_picture_away.svg' => ['ic_send_picture_away', 36], + 'ic_send_picture_dnd.svg' => ['ic_send_picture_dnd', 36], + 'ic_send_videocam_online.svg' => ['ic_send_videocam_online', 36], + 'ic_send_videocam_offline.svg' => ['ic_send_videocam_offline', 36], + 'ic_send_videocam_offline_white.svg' => ['ic_send_videocam_offline_white', 36], + 'ic_send_videocam_away.svg' => ['ic_send_videocam_away', 36], + 'ic_send_videocam_dnd.svg' => ['ic_send_videocam_dnd', 36], + 'ic_notifications_none_white80.svg' => ['ic_notifications_none_white80', 24], + 'ic_notifications_off_white80.svg' => ['ic_notifications_off_white80', 24], + 'ic_notifications_paused_white80.svg' => ['ic_notifications_paused_white80', 24], + 'ic_notifications_white80.svg' => ['ic_notifications_white80', 24], + 'ic_verified_fingerprint.svg' => ['ic_verified_fingerprint', 36], + 'qrcode-scan.svg' => ['ic_qr_code_scan_white_24dp', 24], + 'message_bubble_received.svg' => ['message_bubble_received.9', 0], + 'message_bubble_received_grey.svg' => ['message_bubble_received_grey.9', 0], + 'message_bubble_received_dark.svg' => ['message_bubble_received_dark.9', 0], + 'message_bubble_received_warning.svg' => ['message_bubble_received_warning.9', 0], + 'message_bubble_received_white.svg' => ['message_bubble_received_white.9', 0], + 'message_bubble_sent.svg' => ['message_bubble_sent.9', 0], + 'message_bubble_sent_grey.svg' => ['message_bubble_sent_grey.9', 0], + 'date_bubble_white.svg' => ['date_bubble_white.9', 0], + 'date_bubble_grey.svg' => ['date_bubble_grey.9', 0], + 'marker.svg' => ['marker', 0] +} + +inkscape = 'inkscape' +imagemagick = 'convert' + +def execute_cmd(cmd) + puts cmd + system cmd +end + +images.each do |source_filename, settings| + svg_content = File.read(source_filename) + output_filename, base_size = settings + + svg = XML::Document.string(svg_content) + base_width = svg.root['width'].to_i + base_height = svg.root['height'].to_i + + guides = svg.find('.//sodipodi:guide', 'sodipodi:http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd') + + resolutions.each do |resolution, factor| + if base_size.positive? + width = factor * base_size + height = factor * base_size + else + width = factor * base_width + height = factor * base_height + end + + output_parts = output_filename.split('/') + + path = if output_parts.count != 2 + "../src/main/res/drawable-#{resolution}/#{output_filename}.png" + else + "../src/#{output_parts[0]}/res/drawable-#{resolution}/#{output_parts[1]}.png" + end + execute_cmd "#{inkscape} #{source_filename} -C -w #{width.to_i} -h #{height.to_i} --export-filename=#{path}" + + top = [] + right = [] + bottom = [] + left = [] + + guides.each do |guide| + orientation = guide['orientation'] + x, y = guide['position'].split(',') + x = x.to_i + y = y.to_i + + top.push(x * factor) if (orientation == '1,0') && (y == base_height) + + right.push((base_height - y) * factor) if (orientation == '0,1') && (x == base_width) + + bottom.push(x * factor) if (orientation == '1,0') && y.zero? + + left.push((base_height - y) * factor) if (orientation == '0,1') && x.zero? + end + + next if top.length != 2 + next if right.length != 2 + next if bottom.length != 2 + next if left.length != 2 + + execute_cmd "#{imagemagick} -background none PNG32:#{path} -gravity center -extent #{width + 2}x#{height + 2} PNG32:#{path}" + + draw_format = '-draw "line %d,%d %d,%d"' + top_line = format(draw_format, top.min + 1, 0, top.max, 0) + right_line = format(draw_format, width + 1, right.min + 1, width + 1, right.max) + bottom_line = format(draw_format, bottom.min + 1, height + 1, bottom.max, height + 1) + left_line = format(draw_format, 0, left.min + 1, 0, left.max) + draws = "#{top_line} #{right_line} #{bottom_line} #{left_line}" + + execute_cmd "#{imagemagick} -background none PNG32:#{path} -fill black -stroke none #{draws} PNG32:#{path}" + end +end diff --git a/art/splash_logo.svg b/art/splash_logo.svg new file mode 120000 index 000000000..e62f735a0 --- /dev/null +++ b/art/splash_logo.svg @@ -0,0 +1 @@ +ic_launcher.svg \ No newline at end of file diff --git a/build.gradle b/build.gradle index 564eda7e7..1a63bc19e 100644 --- a/build.gradle +++ b/build.gradle @@ -6,130 +6,121 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.5.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10" - classpath "com.diffplug.spotless:spotless-plugin-gradle:6.23.3" - classpath 'com.novoda:bintray-release:0.8.0' + classpath 'com.android.tools.build:gradle:8.3.2' } } plugins { id 'org.ajoberstar.grgit' version '4.1.1' + // PLUGIN INSERT } apply plugin: 'com.android.application' -apply plugin: "com.diffplug.spotless" - -allprojects { - repositories { - google() - mavenCentral() - maven { url "https://jitpack.io" } - } -} repositories { google() mavenCentral() - maven { url "https://jitpack.io" } + maven { url='https://jitpack.io'} } +def tags = grgit.tag.list().findAll { it.dateTime != null }.sort { it.dateTime } + +// ROOT INSERT + configurations { playstoreImplementation - gitImplementation - implementation.exclude group: 'org.jetbrains' , module:'annotations' + freeImplementation + conversationsFreeImplementation + monocleschatPlaystoreImplementation + conversationsPlaystoreImplementation + quicksyPlaystoreImplementation + quicksyPlaystoreImplementation + quicksyFreeImplementation + quicksyImplementation } dependencies { - constraints { - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") { - because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib") - } - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") { - because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib") - } - } + androidTestImplementation 'tools.fastlane:screengrab:2.1.1' + androidTestImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.test:rules:1.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + + implementation "androidx.core:core:1.10.1" + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' - implementation "androidx.core:core:1.13.1" implementation 'androidx.viewpager:viewpager:1.0.0' - playstoreImplementation('com.google.firebase:firebase-messaging:24.0.1') { + playstoreImplementation('com.google.firebase:firebase-messaging:23.4.1') { exclude group: 'com.google.firebase', module: 'firebase-core' exclude group: 'com.google.firebase', module: 'firebase-analytics' exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' } - playstoreImplementation 'com.android.installreferrer:installreferrer:2.2' + monocleschatPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2") + monocleschatPlaystoreImplementation 'com.github.singpolyma:play-licensing:1c637ea03c' + conversationsPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2") + quicksyPlaystoreImplementation 'com.google.android.gms:play-services-auth-api-phone:18.0.2' implementation 'com.github.open-keychain.open-keychain:openpgp-api:v5.7.1' implementation("com.github.CanHub:Android-Image-Cropper:2.0.0") - implementation 'im.conversations.webrtc:webrtc-android:119.0.1' - implementation 'org.jitsi:org.otr4j:0.23' - implementation 'org.bouncycastle:bcmail-jdk18on:1.78.1' - implementation 'org.gnu.inet:libidn:1.15' - implementation 'com.google.zxing:core:3.5.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.exifinterface:exifinterface:1.3.7' + implementation 'androidx.cardview:cardview:1.0.0' + implementation "androidx.preference:preference:1.2.1" + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + implementation 'com.google.android.material:material:1.11.0' + implementation 'androidx.work:work-runtime:2.9.0' + + implementation "androidx.emoji2:emoji2:1.4.0" + freeImplementation "androidx.emoji2:emoji2-bundled:1.4.0" + + implementation 'org.bouncycastle:bcmail-jdk15on:1.64' + //zxing stopped supporting Java 7 so we have to stick with 3.3.3 + //https://github.com/zxing/zxing/issues/1170 + implementation 'com.google.zxing:core:3.3.3' implementation 'org.minidns:minidns-hla:1.0.5' implementation 'me.leolin:ShortcutBadger:1.1.22@aar' - implementation 'org.whispersystems:signal-protocol-android:2.6.2' - implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.legacy:legacy-support-v13:1.0.0' - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'androidx.exifinterface:exifinterface:1.3.7' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.emoji2:emoji2:1.4.0' - gitImplementation "androidx.emoji2:emoji2-bundled:1.4.0" - implementation 'androidx.recyclerview:recyclerview:1.3.2' - implementation 'com.google.android.material:material:1.12.0' - implementation 'androidx.cardview:cardview:1.0.0' // for compatibility - implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0' - implementation 'com.google.android.exoplayer:exoplayer-core:2.19.1' - implementation 'com.google.android.exoplayer:exoplayer-ui:2.19.1' - implementation 'com.google.android.exoplayer:extension-mediasession:2.19.1' - implementation 'pub.devrel:easypermissions:3.0.0' // version >= 3.0.0 needs android X libraries - implementation 'com.wefika:flowlayout:0.4.1' - implementation 'com.googlecode.ez-vcard:ez-vcard:0.11.3' - implementation 'org.jxmpp:jxmpp-jid:1.0.3' - implementation 'org.hsluv:hsluv:0.2' - implementation 'com.github.martin-stone:hsv-alpha-color-picker-android:2.4.2' - implementation 'org.conscrypt:conscrypt-android:2.5.2' - implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.25' - implementation 'me.drakeet.support:toastcompat:1.1.0' - implementation 'org.osmdroid:osmdroid-android:6.1.16' - implementation 'com.leinardi.android:speed-dial:3.3.0' - implementation "com.squareup.okhttp3:okhttp:4.12.0" - implementation 'com.squareup.retrofit2:retrofit:2.11.0' - implementation 'com.squareup.retrofit2:converter-gson:2.11.0' - implementation 'com.google.guava:guava:32.1.3-android' - implementation 'com.github.AppIntro:AppIntro:6.2.0' - implementation 'androidx.browser:browser:1.8.0' + implementation 'org.whispersystems:signal-protocol-java:2.6.2' + implementation "com.wefika:flowlayout:0.4.1" + //noinspection GradleDependency implementation('com.github.natario1:Transcoder:v0.9.1') { exclude group: 'com.otaliastudios.opengl', module: 'egloo' } implementation 'com.github.natario1:Egloo:v0.4.0' - implementation 'com.github.singpolyma:Better-Link-Movement-Method:4df081e1e4' - implementation project(':libs:AXML') - implementation 'com.github.ipld:java-cid:v1.3.1' - implementation 'com.github.woltapp:blurhash:master' - implementation 'org.tomlj:tomlj:1.1.0' - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' + + implementation 'org.jxmpp:jxmpp-jid:1.0.3' + implementation 'org.jxmpp:jxmpp-stringprep-libidn:1.0.3' + implementation 'org.osmdroid:osmdroid-android:6.1.11' + implementation 'org.hsluv:hsluv:0.2' + implementation 'org.conscrypt:conscrypt-android:2.5.2' + implementation 'me.drakeet.support:toastcompat:1.1.0' + implementation "com.leinardi.android:speed-dial:3.3.0" + + implementation "com.squareup.retrofit2:retrofit:2.9.0" + implementation "com.squareup.retrofit2:converter-gson:2.9.0" + implementation "com.squareup.okhttp3:okhttp:4.12.0" + + implementation 'com.google.guava:guava:32.1.3-android' implementation 'io.michaelrocks:libphonenumber-android:8.13.28' + implementation 'im.conversations.webrtc:webrtc-android:119.0.1' implementation 'io.github.nishkarsh:android-permissions:2.1.6' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.documentfile:documentfile:1.0.1' + implementation 'androidx.browser:browser:1.8.0' + implementation 'com.github.martin-stone:hsv-alpha-color-picker-android:3.1.0' + implementation 'com.github.ipld:java-cid:v1.3.1' + //implementation 'com.splitwise:tokenautocomplete:3.0.2' implementation 'com.github.singpolyma:TokenAutoComplete:bfa93780e0' + implementation 'com.github.singpolyma:Better-Link-Movement-Method:4df081e1e4' implementation 'com.github.singpolyma:android-identicons:3361281bd4' implementation 'com.github.woltapp:blurhash:master' - implementation 'androidx.documentfile:documentfile:1.0.1' implementation 'com.caverock:androidsvg-aar:1.4' implementation 'org.tomlj:tomlj:1.1.0' - implementation 'org.jxmpp:jxmpp-stringprep-libidn:1.0.3' implementation 'com.tbuonomo:dotsindicator:4.2' - implementation "com.daimajia.swipelayout:library:1.2.0@aar" - implementation 'com.nineoldandroids:library:2.4.0' - implementation "androidx.core:core-ktx:1.13.1" - implementation "androidx.compose.material3:material3-android:1.2.1" - implementation "androidx.emoji2:emoji2-emojipicker:1.4.0" implementation 'com.github.Priyansh-Kedia:OpenGraphParser:2.5.6' - implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'me.xdrop:fuzzywuzzy:1.4.0' + implementation 'net.fellbaum:jemoji:1.4.1' } ext { @@ -137,54 +128,38 @@ ext { abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4] } - - -def tags = grgit.tag.list().findAll { it.dateTime != null }.sort { it.dateTime } - android { namespace 'eu.siacs.conversations' - //noinspection GradleCompatible compileSdk 34 defaultConfig { minSdkVersion 23 targetSdkVersion 34 - - // versionNameSuffix " -beta_(2023-10-26)" // " beta_(XXXX-XX-XX)" // activate for beta versions - versionCode 174 - versionName "1.7.11" - //resConfigs "en" - - archivesBaseName += "-$versionName" - // archivesBaseName += "$versionNameSuffix" // activate for beta versions - applicationId "de.monocles.chat" - multiDexEnabled true - //versionName grgit.describe(always: true) - buildConfigField("String", "LOGTAG", '"monocles chat"') - buildConfigField("String", "DOMAIN_LOCK", 'null') - buildConfigField("String", "MAGIC_CREATE_DOMAIN", '"monocles.eu"') - buildConfigField("boolean", "SHOW_INTRO", 'true') - buildConfigField("String", "UPDATE_URL", '"https://monocles.eu/chat/update/"') - resValue "string", "applicationId", applicationId - resValue "string", "app_name", "monocles chat" - resValue "string", "short_app_name", "chat" + versionCode 42025 + tags.size() + versionName grgit.describe(always: true) + applicationId "eu.siacs.conversations" + def appName = "Conversations" + resValue "string", "app_name", appName + buildConfigField "String", "APP_NAME", "\"$appName\""; + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + splits { abi { universalApk true enable true reset() + //noinspection ChromeOsAbiSupport include project.ext.abiCodes.keySet() as String[] } } - dataBinding { - enabled true + + configurations { + implementation.exclude group: 'org.jetbrains' , module:'annotations' } - packagingOptions { - resources { - excludes += ['META-INF/BCKEY.DSA', 'META-INF/BCKEY.SF', 'META-INF/versions/9/OSGI-INF/MANIFEST.MF'] - } + dataBinding { + enabled true } compileOptions { @@ -193,53 +168,119 @@ android { targetCompatibility JavaVersion.VERSION_17 } - flavorDimensions("distribution") + flavorDimensions += "mode" + flavorDimensions += "distribution" productFlavors { + + quicksy { + dimension "mode" + applicationId = "im.quicksy.client" + + def appName = "Quicksy" + resValue "string", "app_name", appName + buildConfigField "String", "APP_NAME", "\"$appName\"" + buildConfigField "String", "PRIVACY_POLICY", "\"https://quicksy.im/privacy.htm\"" + } + + conversations { + dimension "mode" + buildConfigField "String", "PRIVACY_POLICY", "\"https://conversations.im/privacy.html\"" + } + + monocleschat { + dimension "mode" + + applicationId = "de.monocles.chat" + + def appName = "monocles chat" + resValue "string", "app_name", appName + buildConfigField "String", "APP_NAME", "\"$appName\""; + buildConfigField "String", "PRIVACY_POLICY", "\"https://monocles.eu/legal-privacy/#policies-section\"" + } + playstore { dimension "distribution" - versionNameSuffix "-playstore" - applicationId "de.monocles.chat" - buildConfigField("boolean", "SHOW_MIGRATION_INFO", 'false') - resValue "string", "applicationId", applicationId + versionNameSuffix "+playstore" + applicationIdSuffix "playstore" } - git { + free { dimension "distribution" - buildConfigField("boolean", "SHOW_MIGRATION_INFO", 'true') + versionNameSuffix "+free" } } - if (project.hasProperty('mStoreFile') && - project.hasProperty('mStorePassword') && - project.hasProperty('mKeyAlias') && - project.hasProperty('mKeyPassword')) { + + applicationVariants.all { variant -> + variant.resValue "string", "applicationId", applicationId + } + + sourceSets { + quicksyFree { + java { + srcDir 'src/quicksyFree/java' + } + } + quicksyPlaystore { + java { + srcDir 'src/quicksyPlaystore/java' + } + res { + srcDir 'src/quicksyPlaystore/res' + } + } + conversationsFree { + java { + srcDir 'src/conversationsFree/java' + } + } + monocleschatFree { + java { + srcDir 'src/conversationsFree/java' + } + } + conversationsPlaystore { + java { + srcDir 'src/conversationsPlaystore/java' + } + res { + srcDir 'src/conversationsPlaystore/res' + } + } + } + + buildTypes { + release { + shrinkResources true + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + ndk.debugSymbolLevel = 'full' + } + debug { + shrinkResources true + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + + if (new File("signing.properties").exists()) { + Properties props = new Properties() + props.load(new FileInputStream(file("signing.properties"))) + signingConfigs { release { - storeFile file(mStoreFile) - storePassword mStorePassword - keyAlias mKeyAlias - keyPassword mKeyPassword + storeFile file(props['keystore']) + storePassword props['keystore.password'] + keyAlias props['keystore.alias'] + keyPassword props['keystore.password'] } } - buildTypes { - release { - debuggable false - signingConfig = signingConfigs.release - minifyEnabled true - shrinkResources true - runProguard true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } + buildTypes.release.signingConfig = signingConfigs.release + } - debug { - debuggable true - signingConfig null - minifyEnabled true - shrinkResources true - runProguard true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - - } + lintOptions { + disable 'MissingTranslation', 'InvalidPackage','AppCompatResource' + abortOnError false } subprojects { @@ -250,29 +291,31 @@ android { configure(android.lintOptions) { disable 'AndroidGradlePluginVersion', 'MissingTranslation' + abortOnError false } } } } - + packagingOptions { + resources { + excludes += ['META-INF/BCKEY.DSA', 'META-INF/BCKEY.SF'] + } + } lint { - abortOnError false - checkReleaseBuilds true - disable 'ExtraTranslation', 'MissingTranslation', 'InvalidPackage', 'MissingQuantity', 'AppCompatResource', 'RestrictedApi' - error 'StringFormatInvalid', 'StringFormatMatches' + disable 'MissingTranslation', 'InvalidPackage', 'AppCompatResource' } buildFeatures { buildConfig true - viewBinding true } - android.applicationVariants.all { variant -> + + android.applicationVariants.configureEach { variant -> variant.outputs.each { output -> def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(com.android.build.OutputFile.ABI)) if (baseAbiVersionCode != null) { output.versionCodeOverride = (100 * project.android.defaultConfig.versionCode) + baseAbiVersionCode } else { - //output.versionCodeOverride = (100 * project.android.defaultConfig.versionCode) + grgit.log(includes: ["HEAD"], excludes: [tags.last()]).size() + output.versionCodeOverride = (100 * project.android.defaultConfig.versionCode) + grgit.log(includes: ["HEAD"], excludes: [tags.last()]).size() } } diff --git a/crowdin.yml b/crowdin.yml deleted file mode 100644 index 4602c9426..000000000 --- a/crowdin.yml +++ /dev/null @@ -1,6 +0,0 @@ -files: - - source: /src/main/res/values/strings.xml - translation: /src/main/res/values-%two_letters_code%/strings.xml - translate_content: '0' - translate_attributes: '0' - content_segmentation: '0' diff --git a/docs/MISSION.md b/docs/MISSION.md deleted file mode 100644 index 1fe8915b8..000000000 --- a/docs/MISSION.md +++ /dev/null @@ -1,25 +0,0 @@ -Conversations is a chat for the next decade. Based on already established -internet standards that have been around for over ten years Conversations isn’t -trying to replace current commercial chats. It will simply outlive them. -Commercial, closed source products are coming and going. 15 years ago we had ICQ -which was replaced by Skype. MySpace was replaced by Facebook. WhatsApp and -Hangouts will disappear soon. Internet standards however stick around. People -are still using IRC and e-mail even though these protocols have been around for -decades. Utilizing proven standards doesn’t mean one can not evolve. GMail has -revolutionized the way we look at e-mail. Firefox and Chrome have changed the -way we use the Web. Conversations will change the way we look at instant -messaging. Being less obtrusive than a telephone call instant messaging has -always played an important role in modern society. Conversations will show that -instant messaging can be fast, reliable and private. Conversations will not -force its security and privacy aspects upon the user. For those willing to use -encryption Conversations will make it as uncomplicated as possible. However -Conversations is aware that end-to-end encryption by the very principle isn’t -trivial. Instead of trying the impossible and making encryption easier than -comparing a fingerprint Conversations will try to educate the willing user and -explain the necessary steps and the reasons behind them. Those unwilling to -learn about encryption will still be protected by the design principals of -Conversations. Conversations will simply not share or generate certain -information for example by encouraging the use of federated servers. -Conversations will always utilize the best available standards for encryption -and media encoding instead of reinventing the wheel. However it isn’t afraid to -break with behavior patterns that have been proven ineffective. diff --git a/docs/XEPs.md b/docs/XEPs.md deleted file mode 100644 index 19aa9b64e..000000000 --- a/docs/XEPs.md +++ /dev/null @@ -1,32 +0,0 @@ -* XEP-0027: Current Jabber OpenPGP Usage -* XEP-0030: Service Discovery -* XEP-0045: Multi-User Chat -* XEP-0048: Bookmarks -* XEP-0084: User Avatar -* XEP-0085: Chat State Notifications -* XEP-0092: Software Version -* XEP-0115: Entity Capabilities -* XEP-0163: Personal Eventing Protocol (avatars and nicks) -* XEP-0166: Jingle (only used for file transfer) -* XEP-0172: User Nickname -* XEP-0184: Message Delivery Receipts (reply only) -* XEP-0191: Blocking command -* XEP-0198: Stream Management -* XEP-0199: XMPP Ping -* XEP-0234: Jingle File Transfer -* XEP-0237: Roster Versioning -* XEP-0245: The /me Command -* XEP-0249: Direct MUC Invitations (receiving only) -* XEP-0260: Jingle SOCKS5 Bytestreams Transport Method -* XEP-0261: Jingle In-Band Bytestreams Transport Method -* XEP-0280: Message Carbons -* XEP-0308: Last Message Correction -* XEP-0313: Message Archive Management -* XEP-0319: Last User Interaction in Presence -* XEP-0333: Chat Markers -* XEP-0352: Client State Indication -* XEP-0357: Push Notifications -* XEP-0363: HTTP File Upload -* XEP-0368: SRV records for XMPP over TLS -* XEP-0377: Spam Reporting -* XEP-0384: OMEMO Encryption diff --git a/docs/encryption.md b/docs/encryption.md deleted file mode 100644 index 8557779e1..000000000 --- a/docs/encryption.md +++ /dev/null @@ -1,18 +0,0 @@ -Dear users, - -Monocles Messenger will remove the implementation of OTR encryption by 30th June of 2020 with version 1.0 - -Unfortunately, it does not make sense to continue support on a rather out-dated technology, even as we see some users keep using it. For the moment, OTR (as well as OpenPGP) can be activated via the expert settings for advanced users. Monocles Messenger always tries to be usable for even [non-technical users](https://github.com/kriztan/Monocles-Messenger/issues/227), OTR however is not counted as appropriate for this. - -Please consider to use OMEMO in the future, many other clients has implemented this, have a look at [omemo.top](https://omemo.top/). However, if you really need to continue using it, please refer to e.g. [Miranda](https://www.miranda-ng.org/de/), [Pidgin plugin](https://github.com/gkdr/lurch/), [Profanity](https://profanity-im.github.io/) or [Coy.im](https://coy.im/). You are also able to fork Monocles Messenger and continue the implementation on your own. - -Please consider the differences between encryption protocols and also advantages of OMEMO: - - -Source: [https://conversations.im/omemo](https://conversations.im/omemo) - -Some limitations of OTR: [wikipedia.org/wiki/Off-the-Record](https://en.wikipedia.org/wiki/Off-the-Record_Messaging#Limitations) - -Please inform your contacts who may also use it. - -Mastodon: https://monocles.social/@monocles diff --git a/docs/observations.md b/docs/observations.md deleted file mode 100644 index 71502424c..000000000 --- a/docs/observations.md +++ /dev/null @@ -1,97 +0,0 @@ -Observations on implementing XMPP -================================= -After spending the last two and a half month basically writing my own XMPP -library from scratch I decided to share some of the observations I made in the -process. In part this article can be seen as a response to a blog post made by -Dr. Ing. Georg Lukas. The blog post introduces a couple of XEP (XMPP Extensions) -which make the life on mobile devices a lot easier but states that they are -currently very few implementations of those XEPs. So I went ahead and -implemented all of them in my Android XMPP client. - -###General observations -The first thing I noticed is that XMPP is actually okish designed. If you were -to design a new chat protocol today you probably wouldn’t choose XML again -however the protocol basically consists of only three different packages which -are quickly hidden under some sort of abstraction layer within your library. -Getting from zero to sending messages to other users actually was very simple -and straight forward. But then came the XEPs. - -###Multi-User Chat -The first one was XEP-0045 Multi-User Chat. This is the one XEP of the XEPs I’m -going to mention in my article which is actually wildly adopted. Most clients -and servers I know of support MUC. However the level of completeness varies. -MUC actually introduces access and permission roles which are far more complex -than what some of us are used to from IRC but a lot of clients just don’t -implement them. I’m not implementing them myself (at least for now) because I -somewhat doubt that someone would actually use them (however this might be some -sort of chicken or egg problem). I did find some strange bugs though which might -be interesting for other library developers. In theory a MUC server -implementation can allow a single user (same jid) to join a conference room -multiple times with the same nick from different clients. This means if someone -wants to participate in a conference from two different devices (mobile and -desktop for example) one wouldn’t have to name oneself `userDesktop` and -`userMobile` but just `user`. Both ejabberd and prosody support this but with -strange side effects. Prosody for example doesn’t allow a user to change its -name once two clients are “merged” by having the same nick. - -###Carbons and Stream Management -Two of the other XEPs Lukas mentions — Carbons (XEP-0280) and Stream Management -(XEP-0198) — were actually fairly easy to implement. The only challenges were to -find a server to support them (I ended up running my own Prosody server) and a -desktop client to test them with. For carbons there is a patched Mcabber version -and Gajim. After implementing stream management I had very good results on my -mobile device. I had sessions running for up to 24 hours with a walking outside, -loosing mobile coverage for a few minutes and so on. The only limitation was -that I had to keep on developing and reinstalling my app. - -###Off the record -And then came OTR... This is were I spend the most time debugging stuff and -trying to get things right and compatible with other clients. This is the part -were I want to help other developers not to make the same mistakes and maybe -come to some sort of consent among XMPP developers to ultimately increase the -interoperability. OTR has some down sides which make it difficult or at times -even dangerous to implement within XMPP. First of all it is a synchronous -protocol which is tunneled through a different protocol (XMPP). Synchronous -means — among other things — auto replies. (An OTR session begins with “hi I’m -speaking otr give me your key” “ok cool here is my key”) And auto replies — we -know that since the first time an out of office auto responder went postal — are -dangerous. Things really start to get messy when you use one of the best -features of XMPP — multiple clients. The way XMPP works is that clients are -encouraged to send their messages to the raw jid and let the server decide what -full jid the messages are routed to. If in doubt even all of them. So what -happens when Alice sends a start-otr-message to Bobs raw jid? Bob receives the -message on his notebook as well as his cell phone. Both of them answer. Alice -gets two different replies. Shit explodes. Even if Alice sends the message to -bob/notebook chances are that Bob has carbon messages enabled and still receives -the messages on both devices. Now assuming that Bobs client is clever enough not -to auto reply to carbonated messages Bob/cellphone will still end up with a lot -of garbage messages. (Essentially the entire conversation between Alice and -Bob/notebook but unreadable of course) Therefor it should be good practice to -tag OTR messages as both private and no-copy (private is part of the carbons -XEP, no-copy is a general hint). I found that prosody for some reasons doesn’t -honor the private tag on outgoing messages. While this is easily fixed I presume -that having both the private and the no-copy tag will make it more compatible -with servers or clients I don’t know about yet. - -####Rules to follow when implementing OTR -To summarize my observations on implementing OTR in XMPP let me make the -following three statements. - -1. While it is good practice for unencrypted messages to be send to the raw jid -and have the receiving server or user decide how they should be routed OTR -messages must be send to a specific resource. To make this work the user should -be given the option to select the presence (which can be assisted with some -educated guessing by the client based on previous messages). Furthermore a -client should encourage a user to choose meaningful presences instead of the -clients name or even random ones. Something like `/mobile`, `/notebook`, -`/desktop` is a greater assist to any one who wants to start an otr session then -`/Gajim`, `/mcabber` or `/pidgin`. - -2. Messages should be tagged private and no-copy to avoid unnecessary traffic or -otr error loops with faulty clients. This tagging should be done even if your -own client doesn’t support carbons. - -3. When dealing with “legacy clients” — meaning clients which don’t follow my -advise — a client should be extra careful not to create message loops. This -means to not respond with otr errors if a client is not 100% sure it is the only -client which received the message diff --git a/docs/user/backup.md b/docs/user/backup.md new file mode 100644 index 000000000..4d81d8ddd --- /dev/null +++ b/docs/user/backup.md @@ -0,0 +1,19 @@ +# Making a backup of Conversations + +This tutorial explains how you can backup your Conversations data. + +**WARNING**: Do not use the restore backup feature in an attempt to clone (run simultaneously) an installation. Restoring a backup is only meant for migrations or in case you’ve lost the original device. + +1. Make sure that you know the password to your account(s)! You will need it later to decrypt your backup. +2. Deactivate all your account(s): on the chat screen, tap on the three buttons in the upper right, and go to "manage accounts". +3. Go back to Settings, scroll down until you find the option to create a new backup. Tap on that option. +4. Wait, until the notification tells you that the backup is finished. +5. Move the backup to whatever location you feel save with. + +Done! + +## Further information / troubleshooting +### Unable to decrypt +This backup method will include your OMEMO keys. Due to forward secrecy you will not be able to recover messages sent and received between creating the backup and restoring it. If you have a server side archive (MAM) those messages will be retrieved but displayed as *unable to decrypt*. For technical reasons you might also lose the first message you either sent or receive after the restore; for each conversation you have. This message will then also show up as *unable to decrypt*, but this will automatically recover itself as long as both participants are on Conversations 2.3.11+. Note that this doesn’t happen if you just transfer to a new phone and no messages have been exchanged between backup and restore. + +In the vast, vast majority of cases you won’t have to manually delete OMEMO keys or do anything like that. Conversations only introduced the official backup feature in 2.4.0 after making sure the *OMEMO self healing* mechanism introduced in 2.3.11 works fine. diff --git a/docs/user/migrating_to_new_device.md b/docs/user/migrating_to_new_device.md new file mode 100644 index 000000000..e7d50a1ce --- /dev/null +++ b/docs/user/migrating_to_new_device.md @@ -0,0 +1,41 @@ +# Migrating to a new device + +This tutorial explains how you can transfer your Conversations data from an old to a new device. It assumes that you do not have Conversations installed on your new device, yet. It basically consists of three steps: + +1. Make a backup (old device) +2. Move that backup to your new device +3. Import the backup (new device) + +**WARNING**: Do not use the restore backup feature in an attempt to clone (run simultaneously) an installation. Restoring a backup is only meant for migrations or in case you’ve lost the original device. + +## 1. Make a backup (old device) +1. Make sure that you know the password to your account(s)! You will need it later to decrypt your backup. +2. Deactivate all your account(s): on the chat screen, tap on the three buttons in the upper right, and go to "manage accounts". +3. Go back to Settings, scroll down until you find the option to create a new backup. Tap on that option. +4. Wait, until the notification tells you that the backup is finished. + +## 2. Move that backup to your new device +1. Locate the backup. You should find it in your Files, either in *Conversations/Backup* or in *Download/Conversations/Backup*. The file is named after your account (*e.g. kim@example.org*). If you have multiple accounts, you find one file for each. +2. Use your USB cable or bluetooth, your Nextcloud or other cloud storage or pretty much anything you want to copy the backup from the old device to the new device. +3. Remember the location you saved your backup to. For instance, you might want to save them to the *Download* folder. + +## 3. Import the backup (new device) +1. Install Conversations on your new device. +2. Open Conversations for the first time. +3. Tap on the three dot menu in the upper right corner and tap on "Import backup" +4. If your backup files are not listed, tap on the cloud symbol in the upper right corner to choose the files from where you saved them. +5. Enter your account password to decrypt the backup. +6. Remember to activate your account (head back to "manage accounts", see step 1.2). +7. Check if chats work. + +Once confirmed that the new device is running fine you can just uninstall the app from the old device. + +Note: The backup only contains your text chats and required encryption keys, all the files need to be transferred separately and put on the new device in the same locations. + +Done! + +## Further information / troubleshooting +### Unable to decrypt +This backup method will include your OMEMO keys. Due to forward secrecy you will not be able to recover messages sent and received between creating the backup and restoring it. If you have a server side archive (MAM) those messages will be retrieved but displayed as *unable to decrypt*. For technical reasons you might also lose the first message you either sent or receive after the restore; for each conversation you have. This message will then also show up as *unable to decrypt*, but this will automatically recover itself as long as both participants are on Conversations 2.3.11+. Note that this doesn’t happen if you just transfer to a new phone and no messages have been exchanged between backup and restore. + +In the vast, vast majority of cases you won’t have to manually delete OMEMO keys or do anything like that. Conversations only introduced the official backup feature in 2.4.0 after making sure the *OMEMO self healing* mechanism introduced in 2.3.11 works fine. diff --git a/drawable/baseline_tour_black_48.png b/drawable/baseline_tour_black_48.png deleted file mode 100644 index 10e2511d1519fef26e6781ad30bf1597aad19885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt8=fwXAr*{ot_$)w1&Xje;BQi> z*r&kL6mwW%xk9|3<@0x^EzfA4_+E3c`}XbIe0w)TR?3;%ND^lZ+G#m48@YWM7^Y?%Bq=JC_B z%q7b<_fIjG-e5F0H=%wmuf>dWsvGK0v+dbn;MeZ|fi+r%!L5Ti>_x#L>wWJd{z}z` zu-9x{SI2#qi{Y8(=Lr_aUp2V@zViRp{A5O;9~vD0UEBRUfQ^#_4j9DSwTiP@>Uiyd O@(iA?elF{r5}E*CV{8-v diff --git a/drawable/baseline_tour_white_48.png b/drawable/baseline_tour_white_48.png deleted file mode 100644 index d220b1447547bc173a0cf9cf29e1ba447e4fbf07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtJDx6%Ar*{orZcj&I7qaLCkj4e zNM!83Aj{O!Ct&5^{z9O73ZGy?zkt;NnS_gW9FsmO&s+ZgBjdA=4|`{}>&o?~TR$md z(tE&k=gcdnxtknV{8JnIf3bO`HqNZ&Ub}!@b;SV&r47rHxpWlfeA(l$rEj|C1+`sl zuPbIUDP9b{dHl5S3E|lM!#|sJ1Jrj_9sW5{_XF!qPk)BhAK6aNVA}1%TO{DXEtcTB z_@C6=E39=30_wSYUol \ No newline at end of file diff --git a/drawable/ic_account_card_details_grey600_48dp.png b/drawable/ic_account_card_details_grey600_48dp.png deleted file mode 100644 index aa3f0faee3d1a2f3fe4410fe03b0205e110ffad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmV-?0fYXDP)McYGq|9THyR<3uEv>VBH;@Klu})yTg2& z*+&-76NyA3>k7kgs+20oCvxSukz;|JACuoRNc`FRJA@wjim3~aN!h$CCy#ORcmE|o z8OQO8JddJi2;&*Q;lGbBY^k;Y2XgQxc%a)j32;u5WcKL=XoI#cme9JvD6O3XK%IXJ zfVR$+5G6Hg05Iw;0Q(YRKZ(049c#;|O@K}|GWJIaIm`(_j{uHT_gfgxt^-`i8%kDT z!qQUd*DRmDp3Dkubsy^hJ6dIyS(Z(juG{E?zKCH1;7TKz<#|46d-y^O#6rwp0hBay zi>@!v5YxmyQ3nv2x&cIN;{a)zj!gj|ws8Q{_pkyWJF$ZR>@RnDU$3+Oz`_0#lSm{I aS=9}3g1?0`2nqB60000XL(*-YB^p$yuoUZ%TerX>HtqbJ?dn%Qh z_+JFx+}u190USc3KZBZtLttxTW8*R-JpzBL(+q>pU{1BtMxfzy5&TUNq-H`2s1xP4 z8Pu}}^$bdM-*G>#Wbo88Xxs&h!2co2ceb>&j2a2aWO4zXzcexrx;nhir&{mtx6$*X zf`RU$#7rOVx0&eP;Q10S8eOGlC={BJX+6PUa2m8vGYo!YPQWNwuCEjK_nH}pQE}r%TfPkfK1@wKHra&+#NvlOP%bVyP*-F>4JpVTh3<#NN%w7zA zeTH*EyR7%oyDRam+d%UkT;sTh-O_A?h@PvrF%qcf&tv^C$DrLO#C}2l?hbr1>s$@- zY#N~Z9B5AHLW6rmitGnJf=}>wozboi+vrkgXi@b`@GJNNnv=58qND+TCPvB*)MKlCQT(3oX!Da#1C+p+Hz1d3kPTo1Mkc@FL?Tf_dwfiIYccU{M!j2U zLZdwcxC-|c(`1L@g&CeZ6xG(&j#JJ6zu!L@x*gD;!Sx{m@1TVYe*eIAP~`L>u}DhO zi4GldqTChQ2Y?H0ws$GYwt*>Rm!18rtj7tj?+d zaGFkQTeFc~C45d>V%axObBOqi^qOxlp&sp=W#wY_*79V+F@2k`EibXq zJ@C?i%3Kb8JBOx7y%Q{SeO~_8rz&5;3*L9K*I@(L05*UPU@#aA27|$1Fc=I5gE6-7 Y8+Yx>@KTz$_5c6?07*qoM6N<$f-BC?OaK4? diff --git a/drawable/ic_account_plus_grey600_48dp.png b/drawable/ic_account_plus_grey600_48dp.png deleted file mode 100644 index da2e9201d7589269b8246cb41088d846fee256d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP)(@679)nHvfT1OkCTAP@)yfk3fX zY|iC!H#3<`Z!(#@NAf?P@!gqqJQ|H&fwN=jbb22A2JV6fio5FBJkv1kS!(eMsZ^>5 z&dq{{V7UgFW-gIP+@Y=Y0%Wt`m(~aXySKUp0HXi;PLUu<||RB4?*MyEpI)occ<41@dNo(2K_pqyc2 zE!-%p^nw<=pVBb)Cz+RZ0ub2AwIR(C%0Bea?P;^jJdBQUlLDxyupQ|>cv<&pYkZP3 zEdUV?hcBZgpCSEPjn#qg)=<~ywDDz@_d@`8Wq=4Buz3WIgR7|1Uy}d9H+;u5r*agg za~ZS}B7g`W0*C;n1SpkC7cslvMt&n|r}$b$iL;7R>KWgSAO`57jgpdH?dT#O^3@m`6W@BJHt(P62qaiS&=rdhhZ3S<^+nW|04=mc40-vXr|((A3Z2p|H803tvmS8IVG>lzXW1OkCTAP}5$ Z`~wXwNSs~y1mOSx002ovPDHLkV1hl+ZD9Za diff --git a/drawable/ic_action_chat.png b/drawable/ic_action_chat.png deleted file mode 100644 index c7109a2f16a2d187396131e06554f6dbae906847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJQcoAhkcwN$2@ z-gvXW={e76oZ0icF`{gNOvC*mDeHy}Pfbb~3a2f$T+n-@rS&}H(IroqE}07QS#FYH z;M$fXWN=m1!Pn=v#(~5zLsh;Nj7g?kg=Z)9H3hQs%wWz4{2SG0R^oP0LxS}O1H*Qe WveISG{~iN6fWgz%&t;ucLK6UwG&}hK diff --git a/drawable/ic_action_reply.png b/drawable/ic_action_reply.png deleted file mode 100644 index ce00dbc4b436cb7b84cfea033ad660f96bb306b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GKRsO>Ln>}1B}lL?PFT_O|NsBbO$JM!8BEN!oG^>?NLEQX zgQ>3iO~xzR=BTh=I8?Mq)9+9Xz?hgCKopV_qG57TJY(G)P zFtz5NOh#31XE=q(=M%&bP0l+XkK#q@oT diff --git a/drawable/ic_add_white_24dp.png b/drawable/ic_add_white_24dp.png deleted file mode 100644 index c5d5ae2fed35c218d3d4512f50cfc07861ff1bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ5KkA!kcwN$2@!5 zpWz5!fR2FxA44P$Gv8u9iP8frm^0>{-}sP8g5t*`8~%&hzrhd8GY%*E_?|pJqQ&1tKo0pPqM5Zok#-l3)%V3D#elENVSW@|rBu zdYHTyuXOY~z#Ji9nek?WZL|38}O42&#<;JL$cVJr_48WX4}IWay$K9+22WQ%mvv4FO#n)t BseJ$d diff --git a/drawable/ic_android_grey600_48dp.png b/drawable/ic_android_grey600_48dp.png deleted file mode 100644 index 5040f8ef249d7c7810dd70c7a085ce0db5de77b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVS6os?%0YqH*|3og_`2sF9l+ZLu)4qePkKoEzum~>P2trZl%6+Z4NX2dZJ6BRD zB~GSE=Z=;;aA3$Zcg{C6ncPVor(|g~8n;0Z^lP=+df6DQR%-)s2GF&`UC`+r^aY4P z9LIA*c%Db*AF~)Y>;TPXa}Aw8Odx0`>h<~#>LIT6pdplIqI!?oFzQ>`$WP4o5o^`4 zQ3wJC?#T%B483P{l~UaEV%_}IQaaW!ovSbmk8GRwpwF@ZbT4M%#EN;}_YW(Y{}JL) zj00BlQ55Z>)3>VTr}T=M*yLO~7qcd&+LUI0`yBwzShyTUR>8*!P~J5jY*i+GrFd`O;(kz57k53 z&3WB-xdDoNsB)ZfPT+(apvZ@6mznnsY6PIDT>u0?00ck)1V8`;Kme8$Ao&aFbde7g zKqu$Mjs*av59N^(r=inq1QI$K**a3Hd{p_YGBOA-;`pq-ZwO*Uv2Faxp|x9--c><{O2FZ>xP%hGzf(002ovPDHLkV1n)a B=YRkJ diff --git a/drawable/ic_android_white_48dp.png b/drawable/ic_android_white_48dp.png deleted file mode 100644 index 032fe27811066bd0d80046bb1999d9b0b65a1761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Fs6IDIEGZ*dOLHYACsd%+xEk= znhrUA?9|b%VYJTd`5;xkuc`Aq!^X|VQ65j3J2F_K7OnfQChV*?z3}etxq?RZpF+#G z|J*MyE%MyXBNgxS58A#kjYt-^X~zow(pr|CVFDZ4UjX{(CgoNi=d+u*o0c z={ab5WBru<%(2TSb{&~>>ff}2^Q)_Vnszq&pYJUDX?$NN{z1sZQaJice|%()ic-`bF|!Dsjq18>8H^Yff*?x65bqVjJRw(Io23) zt(lX0xw*fPJ*Gi5u*vU@*-ev;wib<>((VR1HoQH^sgo@iqrtHOD761y(=(xj^|Ko| zXTZ^cX;u&@jZCkr|!+xgzA|JG1Uwlv3dmCD4 z&AuCKovAy|^0nFw;NNaT0z5Jb(1!#VGBW}o00JPup9HX~ivS3q8Gr=FXwqH*QiK=V zLZk#QdIm@VUi=V~FuckwM1t^Y*C+|WtG)vy0IxpGQDS(LX_OMen~l?y2p<0f2w)MQ z&j`K?32@FRKob&R#lB_$?->jWM|dt|lr00000NkvXX Hu0mjfy7zlp diff --git a/drawable/ic_archive_white_24dp.png b/drawable/ic_archive_white_24dp.png deleted file mode 100644 index 7944feb2a310718dd797c94a1c49edbff29dad99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmV+x0qOpUP)d9*8#su>%Fz5s1$K@jH;2#9FQf#CM?%NTARG zAe;ikAA$G|$ZTR9um*_#{ii+vnYoG>2mJg`JMfbj2hbFZI$+p1pa4sDE1;(X9I)tf z7`6_0j?F?M%yEF~rAi2Z4Duksat~~lQyK+Cg#<32Q!5SN4GDZcr)DC2jwca5r&lgO z2?=6+PK%Q8IZ`3?e4vWr=cHIZWa+7UZ*pptttdTknmyV zwbV)K!S+c#j;UuZ_=VJ&{c}mZa|krEMH}OtUP`sIeurNd+)2H&K9TP|S5mjBXX?Gz zF0_?;a`_C2MI+F2ob(!jS0I5=BM>SOfB*y_@FxPL)`b8BoCU~Wj3)0LATM~!SBN~| ztJJx<|rq8scDpQ!IvDTDF-~h2Ov;LU<|}R zXauf-1UiktM(Q2_J~7nVX|bMmVkq=my;H*@2!goe1LQ~5HN+}3|Ln>}1CrEG}kn7l8kWlT# zYkn}w<|2iZSe_+{^)o3sSrd9K@#@dWs!k-l!z7*=eItNRO7-fgmnr zfo>;59*cl1N1G5oi4N`wN4OUx@l@0}O=0Z{m@b|$@pSvE;6+E6!ZId2;9?V8AvG)N zfLkZ4SAgX#R>2~b=ZhuvSf+X}Fqvtkuu`xwX_abl%6tvS$1S|4{1&A7E%OR={Cucy i*3qqIhczTj7#L*JXIZTFyd(g0K7*&LpUXO@geCwgPfX7M diff --git a/drawable/ic_attach_camera_white.png b/drawable/ic_attach_camera_white.png deleted file mode 100644 index 4786809533d8bd558cc708c52b5b384876b8aef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjJ3U<-Ln>}1CrEsI@c;jRM~6L< z?0k!^6o@O_YdOv|VUF>}wn(OrLN;xJ-Qvs}SF{Z**3qaDIDKCBg&r$Bti%68+B~x(W0IgQu&X%Q~loCIB(ITzCKg diff --git a/drawable/ic_attach_document.png b/drawable/ic_attach_document.png deleted file mode 100644 index 623de59699394420454f0c2ff48b9a567072263f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj@t!V@Ar-fh6D0Z^q&r?W?C54F zQ@!34rNpy-$&pEZN;(2SN>9mvS#_E~Hsj4{6OtGsr%lLW+@%__u|edtdjsp0F#mdP yx5o)4d>-2u^f4WN-LcW3-N*aYf~#*0m>I5Tb}&pc(2oOJ#o+1c=d#Wzp$PzvwKF3C diff --git a/drawable/ic_attach_document_white.png b/drawable/ic_attach_document_white.png deleted file mode 100644 index 4112e30f2d4bc4cc066e0551cbf479d3e17c8ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj8J;eVAr-fh6C}zW{Qv)7%wdm2 zhq>^9z$Z}~IyeqLpOniPa9K@BM?n3yP?Ao=D&_M+NxBNRg@SYxP74L;I&5!|;5G|x za$mrDCCtB`+wF0J3EzoL37o8AI%>z5yp41jLpO^ZUN6YV;M;hp<=6iBD4?ATp00i_ I>zopr0C~GKJOBUy diff --git a/drawable/ic_attach_file_white_24dp.png b/drawable/ic_attach_file_white_24dp.png deleted file mode 100644 index 0611da2b1a7260b5a4447c5e5dd3321ed840552d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmV}1CrEHM@ORiY?%?RS zy@EnP?Fz`6nAavOJqXggKxlbYvxgU6XqsA$ypfbsDiCo9ug*)WB z_o!=%i6k1vFnGo>bgQ~9iMY_V?52FTRK1C5E|BAu&CS)xv53v9=|sPSih07s@5)D+ zB84Vt@SL7FOT5U#z-IcKIcpr7Sf!qbiLZ2#nCIr1sNSaPzd+sB(91hS-A2qJaIswi z(<2?7wsgm*E0``AhcQPTTg(-}{D@B@Y;ow}1CrEsI@c;jRCkGk+ zBf$+7vLgPCU7UegJ8T8kGd((MVc>DDPw24uLqnN1^NBf}CJ|wRi58puTRb)@$aO1v zH(Ky^O;4KGuY9ygGlEClagzAaq>~~+IuY&5EP1bxJQG5;Zo40i)Jqs RMS=cf@O1TaS?83{1OUy%VQ~Ne diff --git a/drawable/ic_attach_photo.png b/drawable/ic_attach_photo.png deleted file mode 100644 index fe4d3b25444f8cb9fd406ea97d16b46cf888bdd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjt)4E9Ar-fh6C_wwm}C{!F+b8X zDwMs#Gp9l5@I>8%oV!-Exa&%6O%RB2RiJSvzk>x98Rcyd6s~KKao&gTLLbaLW&cj7CXG)r}_? ocq}u~U$-*wVMhP8+bWCmqmh03F2O>FVdQ&MBb@0D_G~RsaA1 diff --git a/drawable/ic_attach_photo_white.png b/drawable/ic_attach_photo_white.png deleted file mode 100644 index ae19aee6b749df830b4b1a216113bddcff7c764b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjy`CT{T w+{i2Gx#L71@yok*Y+G<|{Ln>}1CrD^Euy!yv?BMMB zyD%w)S>f>R3mfcBbu$hnISQNVzBttAu6rQc@%f2u3wS#&bEsTqQ~7DKLT-^Gqri1$ zL*Xg!`;Ri&uaGgmvWY23r=UqHsVgMp$72nxGYhijdTeZ9?#OP~A=&Zt!-~nxt5&wX zQsg}0Y}$P28gmEh#3wBal5$-vnDi&GJW|^7iQV!L_rfd*d7I_G&?U$^0~53 jd_|lKk3F}W0t15wpSg|2tFBz2>lr*<{an^LB{Ts5`vO-g diff --git a/drawable/ic_attach_record_white.png b/drawable/ic_attach_record_white.png deleted file mode 100644 index 667061c21cc0f782af157dfbb86e5ca286e4c1e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj$30yfLn>}1CrAiB`2YX^8izT2 zN3<7897$Wcj8%czeDTAQtf&n_-K^RxGY_WaRGf(3ka>m4Ni1i{kpra;cbpVv>N!u! zXMMDFNrZu5$8;t`<9R*PxTYqvMY3IT?qW?0aE_VS)n%d($9Obz!y+b+-Hun=CM7Y7 z3+Okn^;*f5zH->ZwQ5@Tm5K`uS!_q$bp*NHk-3AN(lL-R1WmMeXRyFQQz3^dkLJAXu%bPQ5?HRQhKrb)x_x?bDpc3%G)Ufa<>sEiyS$Tiszp;zmRJdIC3l9Li%EaVEcM_;#!_dy fy8;ckJlGk|-^kQ0`Pf|!G?&5C)z4*}Q$iB}=LRZ5 diff --git a/drawable/ic_attach_videocam.png b/drawable/ic_attach_videocam.png deleted file mode 100644 index 66aa2fe49c1b3d6bb5a39198eb209edd2c0be045..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj0iG_7Ar-fh6C_v{H{4R-@2K`T zQkjv)@o@8kcAuV{3e&YZ4U+eqxw$9sF7IT$YSGk_CH944r#iT!FmU{3aV<}5l jS3OPFqZ$&dOPCpcAILhusy6E%&};@zS3j3^P6`T_|NsBJ z4tr+0+-Xj0v#{efo7_B+m;KRBlZ^~%7Mof_HZ$BTh>A22kDd^Cx#_I)J*HXgg1O2w ppPigCrRSRSNklJdcK8)Je;5pSrZ3Rp(>49Z?a+)jjDZDjtk%`muwXknM{*S_a}?JaF| zqS~ObrgZH?{McK0SsLeCD+g*$+zSt~jj%PtxmFU&;8f^kov;F}m;`g>K@yI@r*Q1M zxklK@UW7Gx66(FWklhM*W>|QXCga|&oU`z5yj(i;OIHS=p1LzPo~6p+&-T6m`Y3=! TwSzT~00000NkvXXu0mjfti4`b diff --git a/drawable/ic_attachment_white_24dp.png b/drawable/ic_attachment_white_24dp.png deleted file mode 100644 index e6e585bab96471139693c8deb59099398e89520c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3?EKHuPe46lvQ(G3G#&;*kZ@ zs=7Gj9HQSpkY(YPmhODOsMO@CEqA~#dgG*!vSTi)0)KVx9I(pSv^z=p&GoZ9pU?mP zZ_cl!^-n&_Id^q!X;NX_74K5pwc<)2bssQAFzj;J?~>bnK<@)*PK!X@Jzp*PRpqZ< z>EB(y;{2=1Yl+ddzTK-!zedTPKdpAjGL-#tscz{u-V$dH{*`-;6ND|;>`u)%S!58# zzi98mst~0`X+nYOrwjSOz?3~P77weth zblv0Mr?tDnl-}<=Qhec2HD8tk{|@$h#jZ{kI)9RcPIvx_D4F#CRIaP5S^R-$&mTPI zTk?RRqgvt`QIe8al4_M)lnSI6j0_AdbPY^&jSNGK46O_;tW1rx4GgRd3=(g=&_dCW zo1c=IR*74KKx@D>pau<)4aH^YR!ND)sk)^_nG9)}IjL6q`uZig1^T&(>6yvdx}JW9 Z#fgcAj^*!e?g#2&@O1TaS?83{1OPaJ%)tNv diff --git a/drawable/ic_audio_grey600_48dp.png b/drawable/ic_audio_grey600_48dp.png deleted file mode 100644 index af727b96b3599d26979580fbd335c154d63c0d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)%+t+3l++GeB&?*yO>(Fh;A zw5?$n(^7-y08G=Y6ZmO^{S9eB7chUyv5OC=a0RD*~Gm z_|4ke;-dska^!mc`(y9x9XXvD$<2J}?H1DgH{PH+`U>(>5 z{>GRK|9n+1G?hlesUO_R+F^f7FZflx(Aau)#SK6(7;HlC?=iKa+7-M+BjK>;_n8E@ zE~DHXl@{rAa+n}3 zpfzdJ=DU$_0B~8;-R7@8a9}E(DF10L0F=^4FMaviY08s30>Nmh@I{*Lx M07*qoM6N<$g4KrYP)2vJrsyZ9|%brtgLJ`#H9OJTI;S}P9US^H0u}bBc)Qjs zA8t~x!Yu6T5l<=DViJOTyrrPQC76mCiszsTmgt&|rMiSH_3%4$+O}pq1Xc_&aMVnSdrLQC| zgkeUOQBWa-g%v~;3H`7%`yM(M9>X)=eRpQ=+;`6xKJd`@X6BqZGxyB7<9Q;HNF)-8 zL?V%C%>tEREy#j;u#?#iHi0!@34gb2G!L|bi(nAE0bjs4m}JKJZ}h)M-~wpj-zHWW z&;g!-KVT{(^qZ&P5Vw`689xGEf{79gSNRQIfWt|Mh*ccwIt*8t;I>z~YJ43SGGMsM z6Hx2g?!E=QvtWF{DEH~a(_#Y{wrG67F!vp+mVx^*7$0zt#}M0Ye=bJj1I~iEaX6rX zlb5(1Kx5cp%VbQQK=V@pz*gz8`$o z9JVLa0bi?8b0pu%$te?sx!6)jo#E`{0Gp^$w(oxAq>s_r=520E9!V31W$(7mX57{ z2nYBU#xurcHLdGENe&>6db}Re>VO{V>~o48@Yd5**-5Gceo|+b)9!$SXmE2`_!|JK{Nf8OZw%gx<00000NkvXXu0mjf>7#T| diff --git a/drawable/ic_backup_white_48dp.png b/drawable/ic_backup_white_48dp.png deleted file mode 100644 index cc199bd789d2d2b9e4edf026a89f1d933173f2d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)lpHNFKrR`&G> zH2b!@F9GkAJ9YD%H9k0?3A|G7MRPVKZTwVlOC_h9bPY-F_QzE6Itpr&aKI`qUXm7F z!%A01Q<=H}9O5EHR|Q5_*K8ZT4x9nK1|wJGYO#@j*HxR1+Z)yJx4}2VXSlIK8OT;s=sQaAsTrGox;I2YrdW#Y`YQ1oOiaOy{awZ%BW6J~Y z_cihsGlBYyo63V;G-Uh-&`!lj1o;?-=0_Q)o#)ckoj-R5{CMr?*jkL?fTDxz`ATiI z!0`G{lLJV516~hVb-)#x>~n@4@HQ~i*-5Jd`e?G#S$DwptS^BUK0;>E0hejAdeE6s z2ka|PxY<$*%=bcQ>F{rP&RL$YhYhO)7hkyC9nmDgi)Qd%WkXc_Z3(B{7_iO3Qt&~? zhmOO4S$}&Ro)3}`J*br%Z3C)PrH7mPs?hjnU_qrj@oM(gV3n-->tJ@=4h;1Rskh#p zV&kcKLXX-_(P>3Zc r#$r`^ufm*CJ;oC8=@+t!@p>$f}a hK5f7SZNQ}^?i-8UfZfY2g-`$h002ovPDHLkV1nmwdAk4r diff --git a/drawable/ic_book_black_48dp.png b/drawable/ic_book_black_48dp.png deleted file mode 100644 index 1cdaa97a2db26138cecfb212b0e3c4eaf0e9d2a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV086#aSW-r^>(&x-XRA8H}O+b zmNXSKduSFh6r5&s+QFWCh|_}8^und3JuK5b9(o9Nxp;nByJeb^$dUICj@Hfpl6BrD zS}(19j&h4YQNgSv1+}DU#{1gB3(Gr?tzM*Ucho;+$--@`mNv}$(YN6zPyFr8p`W)W z$rXN<+;?nNYlHj7Jxq+J176>}EcUuyuHsDp>(c=Z>o=w<)>eIgWpY{QwlC9{X0Lm4{b}vG#Kc9fc_yzt zvqaErew(q!<*74u>KtFX_Qd}44t^ZqeOSFVdQ&MBb@ E0RH5YU;qFB diff --git a/drawable/ic_book_white_48dp.png b/drawable/ic_book_white_48dp.png deleted file mode 100644 index 0a1430a0837c3ad1263ea0f670e2e77338dd1879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD$BLaSW-r_4c-*A5)-6>%)nc zgtQOJ&WPB+u&|V|;rD{j@B?0JE>7#aGAmt*B}BTV*&>tEX3>c#lu zaL4p`F`xRhb$wTtYcW2NKsOJ@Z>VQ3`M={+blIV}scZk9zT~_5^XpHX4+YG8c)C{H z_&#l>Yn%9cM;L^lw`#y_Big-bALY&7E&hT#K| z8D5!l>tAs#u6t4M+fd4nXf~EIE5V7B=Mqe$oQv{eMZ%~AkCr5CG`FAhC0z?|`qFlU zX+EImR=AL7%cn4sXJ44xRamyF)3{C!^}xW3xjUzh4cnd^3E|S3fmc!XrPW^jW#(P{ uS%*zG;@@=JcBM)N#kvD$9(<@wEUI4=uVbN7%%kf70000Gh#=i2 zxUHW#j;ZlmFB~yTpC3Sx}?~Nic9mw!VXE%t4-O|}Tsh_|+P54s)>dbrr zidFQ20(vVbVGTk9pdd6u1?s{B?p^l`+zDx(acj#Hu#H<)l7cYeNZ1sJc>*koG@S1d z!I?N=0P(RwPMz)%p_8y#Kp{S-Sj5)v5kV&^WRQT%Q2D;s0U^mDyCjevmSBfHh7cVH jZ3Zxa0SsV(e*t^~=a|RM72~P_00000NkvXXu0mjf^Vpp> diff --git a/drawable/ic_call_made_black_18dp.png b/drawable/ic_call_made_black_18dp.png deleted file mode 100644 index e7293a0a908533354492db32075a495fce03c286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|myggkULn;`PB|H=kJZNBI-LQg@ z>%V&=-w$6ap3oNdFU+Dc44Q}5FOkmK%3P<)Bj8#w^?=C3z@~tfXwE~+nJlIXd=g{~ fUsg|e?eV;MYM{an^LB{Ts5^4KS0 diff --git a/drawable/ic_call_made_white_18dp.png b/drawable/ic_call_made_white_18dp.png deleted file mode 100644 index 3c6a23529c5c3178c8c8a59cde53fd8fbd911e43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m{5)M8Lp07OCrDU)h<~u3nM>rr zvJ(&OwF(a8UrLrwe71HY+yMjvcP!%`TXxjua*@R2l8gl3z)u6d)6h{Fr|o#0+*7Vxhgk5 pZxi{o;osZ~CS9U8#SiT-Vc4=z-NJ8Y+%cf}44$rjF6*2UngC%{Go}Cl diff --git a/drawable/ic_call_missed_outgoing_black_18dp.png b/drawable/ic_call_missed_outgoing_black_18dp.png deleted file mode 100644 index ef4ad9622324dde04abeff9ba9ebbdc0f5d525b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|md_7$pLn;`PC2l!1EtKg@KTyEH zr+&b-(d(b_mt>7!ydt&@Ibrq@lDkgi&rtG7<+#VVLn(waMXXJ!Ma9X`NpP7_%T_jr g4&DY|DLn=TmeuOHUh`@~fCe*oy85}Sb4q9e0CYws#sB~S diff --git a/drawable/ic_call_missed_outgoing_white_18dp.png b/drawable/ic_call_missed_outgoing_white_18dp.png deleted file mode 100644 index 8fe42b28cb80dce13ff80b2712a2fa481c6ce8fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m{5@S9Ln;{Wo@Ez3V8Fp}@x+Rr z9o;-yoUyUj&DS%t>fZbypE;jT?bzF^p2u@$F}gTvPxu~Jn4T6En7Gd)F!7$t)Vl?) jM*Ejuj&~4yt6#`e-j`@xnen0*Xf%VTtDnm{r-UW|*$FPg diff --git a/drawable/ic_call_missed_white_18dp.png b/drawable/ic_call_missed_white_18dp.png deleted file mode 100644 index 4d6d77962a322eb08c404b91ac1022bc2def1eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mqC8z3Ln;`ro;t|epdjFKG4rrq z#<_?it0II-3xCR)2^h&5{5Lsy`P$>fXSrs@%5Xf*bT}T!dQP|dBm_VUF~kvH%H+QQ)J>gTe~DWM4fe5W&x diff --git a/drawable/ic_call_received_black_18dp.png b/drawable/ic_call_received_black_18dp.png deleted file mode 100644 index fe45b55175eb4c6ab1e2bab7687b0465a432c3de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|md^}woLn;`PC2SVVU)Zr>(tn=2 zDH?(a1q?|{%PbgLWj|;+YB*^eT*1jYo_rZG6)Dy+`Xb+e7ep0L*g6_UDoPtYI79Bt7 nQZRXYk%_pot5yA^eUA3hQ`Py5oR)3{8qeVA>gTe~DWM4f^MNbz diff --git a/drawable/ic_call_white_24dp.png b/drawable/ic_call_white_24dp.png deleted file mode 100644 index 77f9de5e3ccb30fb6e580454412c98e2f6c553c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmVdC{Hk}*!A?jJR>)4GKBfXec?}<0&9upF*X8-^I07*qoM6N<$f?IEA=l}o! diff --git a/drawable/ic_call_white_48dp.png b/drawable/ic_call_white_48dp.png deleted file mode 100644 index ef45e933a99b720cc5f6127e6da22bc2fa679244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)u7H4zjb0wVlEO#(-afhJ{~L_owyniLh<44m_hh=0)JC~(EtGz}i`o*rY-v?y@O z7&HsExZpoDD~cS_W+YkQAr(Fol6E6IIG(V_N51l%CO?U|VOMi=rhWlQl3!NbcvwOJ O0000^Q}YV z8|J?V=m>Jjc*5Oz?J>DvOqMAoE9T(EQ>M~WruW!J8-Cen0&RYDR9r*zs5wCXh#l8W zB6+swzfd8cA>uJ6Exrk>P<9#(G^5TtR7);S9Un(g465OZL(TvI002ovPDHLkV1lpt Be@p-X diff --git a/drawable/ic_cancel_white_24dp.png b/drawable/ic_cancel_white_24dp.png deleted file mode 100644 index 7ba7a596a0528cc71ee44dc71c8a837712114c47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)68O&jqEev`CCjH%cu=nuXDZh@b6_!u0wa&dNKQ(uAw{bUpcw*FO+`rx{w{gO>b2P@y z;ak7Ne?#NluKa|?TM#B(Jy_Mrgg?h!yEq-O>9vi7F&#EP68QWGkJLyGjKC7EIT1zJ?UDu4A3$LPgg&ebxsLQ0P=@4 A(*OVf diff --git a/drawable/ic_check_all_black_18dp.png b/drawable/ic_check_all_black_18dp.png deleted file mode 100644 index f87da8b232a2d9938d09d1444209775cee57a849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6R~NK=9LfcRi5e zEbxddW?X?_wfUrhf*UQX$&eXtxNn%^kbRC z+F4v9oO2@?PjXu;~o!-HN&yUUdeKzLZ&azh$j}4!3xmEbO7S${k zKOs~9!$N#zQm6c$_lk$TC$jqlPrP-`D$-=8tdrG`F6jftVi}J)=Ra5YAg2GU(R9N> zv9)vWTXs#6WZBl`rXR7`L45L**(ud$XI*?_{&jm4QLGD*sv( z4Y~O#nQ4`{HTNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6R~NK=9LfcRi5e zEbxddW?X?_wfUrhg4;Y@978NlzrARfFO(ETHRJ}cB z>!q$aVtV5h7fT`gBeo+(EZyf13GZO(eD7&BH?QmW{h5|aFU9`XO8McSS|jgCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xh Rq=1STJYD@<);T3K0RU_Vp8x;= diff --git a/drawable/ic_check_black_18dp.png b/drawable/ic_check_black_18dp.png deleted file mode 100644 index 7f66179d5eea8c7617e018e84efc42c40822658b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6R~NK=9LfcRi5e zEbxddW?X?_wfUrhf`y(gjv*GO-(K9v+Y}(;_K;uOo6Vp_G-pmX?~+2+%r!T= zHZXKD2RMB8$T0aa!Re9YgFBP|e@fTp+o2e*U76q@sO?$6Kk4;*kG>U!b(=kRK6%Bd zyKCl~l;sA1RZJ%_v(K1+-kX#5JNMC9x#c zD!C{XNHG{07#Zjq8tNLFhZq`LnHX3ZS!x>?SQ!{JKM(Rl(U6;;l9^VCTf?VauRZ}a wNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aE&|)78&qol`;+08r0b%7 diff --git a/drawable/ic_check_white_18dp.png b/drawable/ic_check_white_18dp.png deleted file mode 100644 index 84ca0053f26605729bf36e0efcb2cec9a1221882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6R~NK=9LfcRi5e zEbxddW?X?_wfUrhf~B4=jv*GO-(K9v+Y}(e8n9(i3PaLAE|YUd*>3G%GP#oD z8gZb7QKPSQf&{nH{D_1-%yY_%<0t+3JoQ0`^r5gNAAKadWdeLpq^ffSZP5@j+gVp+ z>fZmmXRTY@24O26i^YBSSQ4|$*5z%wp!3c;KVqBY&t4k_HNkbqD^}Jl1v)^r#5JNM zC9x#cD!C{XNHG{07#Zjq8tNLFhZq`LnHX3Z8)zFCSQ!}Hx+>0$q9HdwB{QuOw}#an z>-PgSNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aE&|)78&qol`;+0MWvH A`v3p{ diff --git a/drawable/ic_clear_white_48dp.png b/drawable/ic_clear_white_48dp.png deleted file mode 100644 index b7c7ffd0e795ba76ed3a062566c9016448795f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmV+c0sj7pP) zOA5m<3jYBNi%A&<@ZO?$P9};P4Y5CjG5$M&YXI45J{s}~# zf|&?x1_gn4B7+hS@X!l}&!voFhmZP^sujifL@~PKMMM~{6xH}^g$q7WOzwCQ5vHTU z6`v~H@rlA8e;CUh_(b84zg=+ih`wG<)HiJjzSlQx5#CnjMR;A)R^jtaTa9;7rSy)7O%~`cm?ZjXImW?6TYRT<;U^@VKiSj`soFk00000NkvXX Hu0mjfhD&W| diff --git a/drawable/ic_close_white_24dp.png b/drawable/ic_close_white_24dp.png deleted file mode 100644 index 27c293b2e7accd4f717798281934a28513ca6480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmVvr$f1yyDwdIpKt@a>9x4DE}n_eU9MlwzKbqg>u=Ap_n|!= diff --git a/drawable/ic_cloud_download_white_24dp.png b/drawable/ic_cloud_download_white_24dp.png deleted file mode 100644 index 1936cf196d709879d3ba67d498a6658b7b6aa6ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmV+h0r~!kP)L(K(OEfw}6-lm*KKNd>Nl^EPAj3b6hUJOvrgeTJRZ&_W-dsvce)_ z{7<9>$e<0T@C=PC00BRc!tZz#G!T*E8t~{pNXP=bmJl!;1ild)L=9vZ4!59?$nb0+ z(QtSW5tU3~mXKgL2>277(Z~Ru*fLxpG)}&gY3Mglu)tkD3I+uL0KYOem0MNpZU6uP M07*qoM6N<$g0?GWXaE2J diff --git a/drawable/ic_cloud_white_24dp.png b/drawable/ic_cloud_white_24dp.png deleted file mode 100644 index a503ce8f29a20c291361d2d9652dc2e724d3fa0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i8J;eVAr^vn4;u0v3}86^aR16V zj!BbtG(>x_&yF@I**rs{^JpqhzIqGG-gcXnWj{JQmQ1pH8~wXBi1%W$ug|H;(%QRz zwX+!;eF|DulAM`s7rh;?o=viNpe({^ z*W>Xa@u-}9n9qkqmjg3jIeBie3_R;3&(d@ANZ)2XrHYr>mdK II;Vst0P(g{Gynhq diff --git a/drawable/ic_contact_white_24dp.png b/drawable/ic_contact_white_24dp.png deleted file mode 100644 index c61747dc26fa64bd61032cbf59b40502685ca211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj6FglULn>}1CrGe5GyVDhKVG=Q zoav*u2HVD~D>Hwz|DW-|HdLo^mza2jKQH&b2OA%7uhsqG^IGAS126ZLg@RtQJ=&rc zv2_Jx6x6cqoRihY|MJdht|R*#Y-Bt9nLkP^{9`_vzaZ)I!mJ2SQyYN}`9JD%4OiF% yvnx*3e{wW36x*}pK$G~92nRul3T`*XyNnDxD_xwz{=5J=k-^i|&t;ucLK6T*rAcrA diff --git a/drawable/ic_contacts_white_24dp.png b/drawable/ic_contacts_white_24dp.png deleted file mode 100644 index eff5707aabe5686592617424c42a1f37914065bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE(}6TtKSPDj(q%x-X-^l&5Rcsw54MaY#HrnFtf1z*gPImE? zM{YQO>EJ0*zO(S|9aWD&j-LVv8M=xhPtx~45Z7d4SLtNx=(zFPx%0;S#uVR8>6TTK zzOK-o*2q>6x$?fF%er-rr@rht^IJ@L*X5R$wdP{mJ15pkwp^(E5!-dJ?s>xM_$`$u zcCww6;0-d$V6^_Adv=iK`e4bj?pBFjQG^7w|TUUS&EsyJGJ@riHU3*2Fi&-Q2vq xkxfd2!DwDQ^Gk!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3dh64!{5l*E!$tK_0oAjM#0U}&LhXrOCg z9Aao`Wnyk+YN>5tU}az+Rb;mkMMG|WN@iLmZVlP`ZK6O88Xy~r%hIiq5{pxHON%lY v(lT>Wt@QQvOL7bJa}(1ule2YAElnZbP0l+XkK6VNH9 diff --git a/drawable/ic_delete_white_24dp.png b/drawable/ic_delete_white_24dp.png deleted file mode 100644 index 375924994ded0476dcf9e2e2c08d73825abc660c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1TTd6qkcwN$Kh8TyrARRFa{ZV8 z)85GLAScKBgQ3)9!bA3^XZ=|cR~?qLg-1-?e_-vw|Np&pPSvto`3pBNFnwmtF4(#) Q31|?5r>mdKI;Vst0EW6IIRF3v diff --git a/drawable/ic_description_black_48dp.png b/drawable/ic_description_black_48dp.png deleted file mode 100644 index 7bc6a6846ccb2a843e0ffb2635db2b067be301c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUteV#6kAr-gY-t^@<gTe~DWM4fafe%r diff --git a/drawable/ic_description_white_48dp.png b/drawable/ic_description_white_48dp.png deleted file mode 100644 index 9759bde2987c7cd7a619e121a3d843a6b11164f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmV+c0sj7pP)DArtjtn7~f4mV_ln6Z(G{{6Fb-+BeV*G>xJtUt?yi*VSvZ?J4Zx zPhP#nrZ53#!=$hPQMX@G5Z>ewG5vBD9}x*iK|}-S2n2wNKmlk7Kk$hHP!MPU9KirU z5iGzbL{)$_#BKm+_@M!l00IbrYaqZ64PFB58BoI#3n0M1FR=+A0I)#~ODuo@8v$eD z{6hrbmI$~+06MRG!tnF2tv2fWXtz8G#_Kf9Hy<{*N+Z?81^f`y@!;%@f7R+mTkO><-znKL^^& N;OXk;vd$@?2>^J}Itl;) diff --git a/drawable/ic_edit_white_24dp.png b/drawable/ic_edit_white_24dp.png deleted file mode 100644 index cd5c69a2537081bd76a73ebf0a5eab4052b3617b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i4o?@y5R21iFYo1TP!MoPoc4LT zWCt$8it;z3xekqn7x}9eovUx zkea&qYl>nu`_}n?6=F}!cR0a+$>Y4#^NR-l3#v}Pe=uveiGSma_(r9E$CW4jCp_Ev sC3@;l&M7}-Ex7J7X@0JMQ&LnuW%J6P(@XsmfNo;&boFyt=akR{01A&xod5s; diff --git a/drawable/ic_email_open_outline_white_24dp.png b/drawable/ic_email_open_outline_white_24dp.png deleted file mode 100644 index 9cfa92a0ee48636c0bc92f084f9eccf2c04432f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3?EavGtB|6gl?srm1UzVQGX( ztGok~+x|vP5l4~e)4962y1_Zgnc3Md+c}&J<~xYQpE|HBL(#3yO#SqN@9*x_dOl|s ze|FC1v;F6yb4yHGF1QrWunawDx}~7K`b}b1&t z8y>Iu%iUf3p!;E^@pco3E!Vj&eF=W1>vehU^*NUqKHhh*?&4gxLGXTPSVpeNDT~Yt z2O5??iVpSr>F~<7%=(9LWn7f9GV2K&=J~HTGKE~s_N$eN5Uo9N%UpBmP0u$5UwWZCm|zyGt?t6!N+=f>Q*wMUf+7{sb2t`Q|Ei6yC4$wjF^iowXh&_dV1NY~IZ z#K^$P$im9hRNKJ7%D^BtZW$=*5gKyyQ!>*kacj_FmIFnt2FQluvUIDY#Nt%l(xOa; uw9K4TD}8;$ diff --git a/drawable/ic_error_white_24dp.png b/drawable/ic_error_white_24dp.png deleted file mode 100644 index ca148fc7ca20a34ecf4aba8fa0245637046ded4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmVP)9pDS`rt8>j14g%vJK^s@CixA{JOk4QTA=JOC;K#wgGmprXKRz!nAc zA3zb4$$%jWbOzK>BbED)TQ7myeVhoz0TM>a5*`eP5=BOxgOJk>P?-u-<&_f0-raNB4dY zw)&$S9w4!2&4&FaPFG4w{L|29WN~hAWvY;7QUO{Kb3Wa~p?rHB1B2G@dPW9@3oHtM z0~jNKECvVB2@E_;0lU2z7y@p_C#zrh@_d~+%M8_q`)NyFv$hvM@5&6cGAlm&p+%sm a-mFz$nt98%|2u&i89ZJ6T-G@yGywqFwpQN& diff --git a/drawable/ic_event_white_48dp.png b/drawable/ic_event_white_48dp.png deleted file mode 100644 index 2fb9a7a2c7edd64d23c14bd494c4c9b407629c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtC7v#hAr-gY-n8XvFyLuR%wKG~ zC&B-kqj`N2>+-y1NkNtNCsv#dZV|g&x@4n=VE%h%h6hj6+G7l_E8S1ud7bapv)?hE zZ;HPfWH2oL;dzB&lJbEyjBENBm>3uuo;SP=Z+Mosmx195a~aUCE6iKiMH~K{VFa=n zmN77XU~hOD%EZv%)o|43!PWV@FA64HVsN_5+?RC3B)Z1z`nlD!)mtX`7couJ=n~qp R!CMrh&(qbov=oQt@sc3sx~Dh(TxjsOEb}*i5Z0%yYx*Fl&-$ZjLb%`iC%yau?uQl5 cU9M1MXj{Fmw1e$?Gtg89Pgg&ebxsLQ0L8B?djJ3c diff --git a/drawable/ic_file_grey600_48dp.png b/drawable/ic_file_grey600_48dp.png deleted file mode 100644 index 0a97d3d448cad57b21cfff9151e30c791c70830a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt!=5gVAr-gY-t^@=q#)4tP|k(_ z!B>tAYo9A#oNc;nZ-eY4J=55dx;2&iQ?{M4Il$G{D6naE)N9@6e>9fr1ie>Qecki! zu=nHZ7Y`m5xb$JA!n=XhL{JB!SdQbnd pDeG=~>hLvxms|V&N%QOpf7dAeoqKn7$ul{Seot3Fmvv4FO#q8MWnusT diff --git a/drawable/ic_file_pdf_grey600_48dp.png b/drawable/ic_file_pdf_grey600_48dp.png deleted file mode 100644 index 291968bf54416ebe1c60eca68c538784f83612d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVBj96%EXbAMw9!f9L z60y*p3VLV>*i&2d;KiGs1QU#4)c7ZUPu{|?Bw=G_X0xyZADPbXWWV3co7tC6Pfu9F z5*E+JG|izzB2j?8K=n=(kH;TsHJ?l-&)~tOPL2Bp!6RRnEo~5ZSVe|m%w)zF2w5Y} z;iw-%CV(#xvH`S1r~uFkp$b47gh~J{5dUHJBMdA-MK1u#A=)%wL)sC^WHQI7FH9_Z z0ZH-v706!*zd5-0-5Ui?Y`5VJEJ z`;$DHw}J-nocdr9_cDMTC;-|*Vg8`dcP(fDGz%Aw3iDzPhORIsQ@s&!du-vngPCcSEYH`Gw_;5U&!@M zRdKI!5z|S{DzvNGxJ-bGF0&0(>DnVEk1EJI6P)d|U~54l@iP`xooSQNQ!Q3bQt9rhd(Ww^TlZf6JNht#Q(WK)FSy1D7E%2z z`6TYp>@sdKmqM61z&<|X_Z3z#fe{R06!rL5nco2_DFWN^`Gz(06!=u4&}&Ylt3XCR zS!CRXT25p>MPQ=@d4}cad*g?|{}jYj^x`u5EM${K=bOg>_V5tLF8bSSK5!V{XG?61 zNZ$TuJ7r0V@Yq4%F~u?Uh&sjM<1Yn{66XqWChT;j!`grl*!wtkw1S*``dCk zkt|R}BQDlU2xQpoCO}B@rjYiv668~OPZ1y#tW2b?_#*URJx9KkB2dYRG==nE#yEyC zh%uqkUPqfxt;9<%F>^vQ>DF)>${pu7^a+LQSZF-YLfbr#bJNl0AL9!El#2Rcm^Oa^ O0000<{#Qh*d(e`s%)dCuS|FslYie@ Xu0f2yYM)0e&^!iDS3j3^P6uu0hhcBq0#V4t(rMqlKk{CY>VuR=LE)k%*n1X%5W&m|*=GH7A%Gm?6g2ghVw$_{3Z| z6X7A&)|{Zhvo;uY0gsR+TW(z0uwX(P5fBmL)xnTm?UE@2#1u&BSC2gKDtkl^fbH{m k3s;K0`%0@sJAbCAh!^Hplb;{tIn1>;{FkBP;zO5$CMml3 z`F=k%G2mm5V~5oPj}5hlITd#`C@*{~-RCJMnK|{zkxQ!SI&GPg_SdvqdQ0(H$W%*l zrEvtZtU2Cz&Eimu!IO^O^Gt!WO>|nVbGP2b+NB*j8_^s1Z)hggMwA+J(Q8m@%)~RL zu~-_|<;;h;R_Mh<&7F8uScp!|g?LriidN03_*RIhBXVf)x5|Hn!PnkkrSPyfm@2gH geO7~&sS`)z7w37E&qCDKX8-^I07*qoM6N<$f~VSMG5`Po diff --git a/drawable/ic_headset_black_48dp.png b/drawable/ic_headset_black_48dp.png deleted file mode 100644 index 36b51394872acc2ac60f0261fc4dab53d2d330d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)xr`LYa8^9mGQ}dD zR$Q2Eobiv6mP%Z-4L9>UaK|9Giy7RLu-Z;s&%c737P4EIMf0aNcN?zw$l?S=B@p*E z_W3>2Hcba>ti`m`&h(rZFblThaF^>c3;W3=aOp7v`p_D~YCBq0-z054?hg(M^+Aw7=(eKK|?2|1FG*dstf#y&_wP9!Aq2yn%0 z-<3sAMc*01EKC0rG$VatS~h5Wt%R;5i_Gu>_#Od>3B= zAj2;-k!~tLxB$qo1|v1_5vFGrwk?1hdwy&(^D31}rTQQG2GXim&zh~AZvX%Q07*qo IM6N<$g6crbVE_OC diff --git a/drawable/ic_headset_white_48dp.png b/drawable/ic_headset_white_48dp.png deleted file mode 100644 index 798e229c7b913fa96b1fdbf0fbed1f4a5094a350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)hnNduqY1$YeZgHv#fPVt)lZHf1C+UOcSo9Bj%o}`m= zCMMk5!6*JvGNdve!-jkETX5GRw}%v#{fU6YWV^n00JNY0w4f?9-ycYKw$!~sSv>01mLMc03#EC zE9SfS5&*h~#Pmqp`YnVf0A0IfdoI^+VuW*|2mqjKtg&Vii9{liNOVG9SlB9U?}A!h P00000NkvXXu0mjfphC@} diff --git a/drawable/ic_help_black_24dp.png b/drawable/ic_help_black_24dp.png deleted file mode 100644 index f6e789ba1f23834205fcc6fedcca4c8a69faafb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmV+_0oDGAP)4m5vzP&kJVR$_+YO{YNJ^r(?<8#tgzli|B|1a2QwEJFm$lIXgBE=-GfX?5 zcQf1+KG(;J1Y~xglDi8I|IRII7$oQ1@Q14fY^wwjTKbF8$bm|lu#gv z&Lv|)CMWFd%^hcQlYEK6z1e^6c4udIBazTT3r)geKo%$iO`s1}M)KaudQ202BDq5Kfr`55T@(;;(_RfN+ZKGw-GFZQ#)Z;gmY|C2Bjs zix1*|X#)w#H_s8@1xi2)h$AWdt;-BTRq;87-y9=| zyqi?1nr#Xi{)>$4q?KY##+awW<^*T~Q>2Bz(cz>zCu%w?tm-0Fau7dpXlDUw()O0I z*s)gZDkEE@$g`~#ZCj*mn$b^%QcxXx}xnTX&YzOPD%w}*24vA>LLJ}j7k7y z4+ChDzD}9X8!7=bJrZv@%$GZ+kA_MBeGkOjS?P@Qa|nDe{q$44gltvAq0JezVp@2`r&r-sRS(dOfdHNz7DH`IXa*68!`?gZ0A{e!iwcSO~1VdrGMdKx~MLfQ13%w!d z7HP|Q@m+8sjMcbkDq>!WIyK?+1#LMwQ51{!!8`EGVg4d0bFS}1(dEpWV(~X1DaPkP z0i1y@G0%C9`C{h06;3p5W1_Mg|{6Q?( z0l!E`ynnBpFgDIPHUKZ90`FKDDyi}3puw@RE~)1ocO9-h|Y|xHQKeO{@_J2;T! zRo)kOgmsIi8p>oMF0Q* diff --git a/drawable/ic_help_circle_outline_white_24dp.png b/drawable/ic_help_circle_outline_white_24dp.png deleted file mode 100644 index 2b14e173bc14b14b282d6823419711df80abf5e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmV;x0zdtUP)LjKG+T*k{I`QMQoR;#a{Q_!);cBfD?r{>{R(U={R5@tFT#ffm>z z=Jx@|#v(reb)##V#W%qZQ5Jy>PZ)h4`9KzLsY5Xe?tzcsJNdxAlC{B>Y@+Y=33~g!9AC#;d>$Oq>+Lq8Z_HVn z=!nc-YIHDs5^w*k$4(n>i<24Kz9&O*(no4q<_wx+lr-f`|PaNQx(mJ?cWDQSqEwlXYkob09C3ol%r&WxG( zS0k4VK<)}S7R4sa<|oK{H;~B$jPbXk^m*EK9Abi0Cv?a!iTn|`;JI7W2^TYmp+o)- zbG%6|4?ME|FmxoMW`GGUlA=e}pNJf(II?d*OLiH&A4m1^0zElt-AP}^gp{=P zlvC=8+^)A&W5(;tb=-Ds0)1=zBE#B*#UEPNaV0dl)a8at3X)5qKHw-whQS3%N=bG? zXY!R~cjfw>t|SwMbw^P;U`)5AC~dQEkV{dTQ(3+nZ1cc}NfkWd@lJY}M9d}C+#V(= mPqP(ynwj5==k_%Fr`sQ^n>usk<^!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3=dvwfAFklsI}nVSz!?qODu! z_C~xA>|s?<6q$Fh`oVnV3J!|~^9gdzw>j7iRLrtIZT@iCCn2ruK-ct~GUNNRzn9%N zw^q)zidn^RMP;k1sj95E)rLzxmpm>7TsmO+ed8wM3yfT+J~C|y7re*x&bURqkU6A? z$LZ1fZ?2`gqYhZ4OcM6?sIfnAck?Z!TZSK_R6h4z)o+kAU_F<+M*5|vZpwx3l<4ih zuKd@MzTJD~<-b?Id^6o9&1SCfzH;0z<=p&f`4>*aWW-Ne_jafF!#OQVv(ojBYd@aP z_+Ic_O>8s!V>!lr&bSK?EDt}pu%lmfPvHvo#XWzxch8^pVV)CP^BlI@UAOce>Si;B zCQQ2dLWIl7e%8#GWocD=L}qz0?)csAxZfmY0n?pzg1-04-b!vYsy6aG8dR1Nrn>dZ z=Ith1YEt-Ac;^<+znQ#EOP*yE*jVMV;EJ?LWE=mPb3`Pcq7P-x$b8_O`@KYB7mZ1_t`D2EOuDo_@yjD$TZ zuP)TWc&<3Pz1%Cs0C;E+YmP`g72Rsn-)}?*v4t^i- zOzhbZkkt9*F~N@kRX_%iV92oF#z+xy9Rfs$%?3~gM0apSna@UaIO&+MqQMstyhVhF zl1i!+%{FBT{t6;HrDOzj5Mw^dwaozrfHebs&Up+c(K*qQSz$#Nsj5ftD-XXVAj|pQ zAr`wdMnDshEizo&!4BU6=bJ_J)4&vFnA#@6wO{Y>{p5TT$l56;BA{S!fm$mFpq3XA zP%|i?&-HbNZ10E&=o<=t=`mmKksLh{0W$-^)2wvP^>YmPK=MpQ1gta%PlLSR`ZxrP zWd21F0j|d2X}NI8@gD$QCHY+20&YFZ@)rd@*X9r!{Vp+B>CjV61R?^angmoh-YX59 z6Ps!Dl;eHWz$uhQ9ZdrEINrGiPRCj)VJJD|O%!vs>`nMIkDZtW&Fa_<%{D;6<2E!* zL_0tNS~7d$l*$pJ2cN7hq|Z(1kwyRnT&tc9b$t}j(RH*q^g+NAzZj~BNXm!^#NjUY zPjoE=-_iEvcT8*(7aR-a35!gzElrEvmT}p+V&a6PS=k{|JJH&vPW-s!`=bENvr@dr tHbqPFbInShC+wZWeEq*>4K1{PVBaMKlFt@#3%39O002ovPDHLkV1mA4Al?7~ diff --git a/drawable/ic_hourglass_empty_white_24dp.png b/drawable/ic_hourglass_empty_white_24dp.png deleted file mode 100644 index 616df098dc6863f99b42c991e9e0050636f1aca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1KTj9O5R2aAgaz6^`k4d5nGKUl zu6>ASbai3e-^RA!4Redwf=}!Y6WQiS1#A^qC=Z-Q?EsCWkJy}1F2%PyabwitRK^RAXP2+^NT%I#L+6ULftvJI}BlXUh zgYo7Zp5>B!h8rAGcSx*zbm_y~gB+(OCrxmebUEoqSFE$qxh-=XS`%tr1AcOc@c!e` h=hXNvyJe<4!{gtg&1u^v`~|v%!PC{xWt~$(698OCMb!WR diff --git a/drawable/ic_image_black_48dp.png b/drawable/ic_image_black_48dp.png deleted file mode 100644 index 6b7cd7838b5ab18a63036d58a054a7f7588df8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmV+?0oeYDP)A-PL#CT5Az5qiARtADF310vJ002ovPDHLkV1k7`cx3

UlB}o9;f>?&VP}KwYk_0d&T!3nR1M&Cb;$mYG>`S1F2Y`;>hA&A#2gS00YEwwH6JLIymIsJR z666AW`GFc9ASp?Z3vlHJYIq=pfldHhei&`c4Mh(On!#OQsrGrO53g?^XM#f=G`TQj zCpchD1EA*h1Cg9S$p#eiWIKKojDk@x3g`j=@ydjLXU-ZM00000NkvXXu0mjf`ADC@ diff --git a/drawable/ic_image_white_24dp.png b/drawable/ic_image_white_24dp.png deleted file mode 100644 index 0626807e05e8d2af37cf27794becbb685756c617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3F|-dcX{P26Sf7tek)#SZ~wfyEZu>vCPY=Kwd2mDn2Fab&0ezy{P?`OyiMc) z;|r$W3$~fgi;X=XD)FmI-h$D6LAnj|gGpRFn2R@?v$+Z0=UEZN@cPQi_Rk!z>;Jzw zCH5(H$A$)9=Z?>kk@sJ7`m#E2+m!o}2j~se64!{5l*E!$tK_0oAjM#0U}&LhV4`be z7-D2-1wy9U1_o9J2B&=|m7!?J%}>cptHiBgmw?tOpau<)4aH^YR!ND)sk)^_nG9)} tIjL6q`uZig1^T&(>6yvdx*l1kRcRIlskU!|Zvpi%c)I$ztaD0e0swrEsT}|S diff --git a/drawable/ic_image_white_48dp.png b/drawable/ic_image_white_48dp.png deleted file mode 100644 index 2642b9e09ec00be308649f62d9323f22ae2b6c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)0++mR7nD4pd~x$TQLGba6~{cu-M!3I>jYZG8L#~C$dSzGCa?>% zii{qBH_l~3H}Ow_R&mWIA6&_uY{DqeDkOK@%2_vI7ibl>$R-Q|t-=u5gh8NHSX1ob zZ91p^`0a>6o%RQ$Cqo6Qpk>-nPOXnuLHxL2AA)bf8YiVe5h%F;0000m7<6*=5B`qxLGz=P~Jh=26v|~EBIGZvX zm>fbpc%s;OazuD4lw>~SSUh08I63V^W?=P8Jv&EjSsKs>44$rjF6*2UngIWJR5Abn diff --git a/drawable/ic_link_off_white_24dp.png b/drawable/ic_link_off_white_24dp.png deleted file mode 100644 index f1a75d4859c182848d1f5610c7f96957163986eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)i>T9DsxJUaprdFE=*A5%`k#r?2a^cgg%#{AbXBUaAZOzTl*>feFW8%00000NkvXXu0mjfAtsW_ diff --git a/drawable/ic_link_white_24dp.png b/drawable/ic_link_white_24dp.png deleted file mode 100644 index bc32d7bfee6acb6ef98cad40b3b8d09f6c41197d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmV-I0lof-P)66gRsh&PikVAu!yr!$_w@!;Q&p33w5aH zIxb>;K@jlN&b`S;NZyAzTb~mgEH$9CJ|8%Hg$8SPLNZ&j_7JnC3hP^--E`I-g5=Se zuVrwe1(F_(JJ$lG^(`P-&(slBS|GX<^R1|@&j-%7P;c#CG=TquXh$@4AD{mSC#DsD zsV3(}TI-8KGOAt^G|*n{Tzn7RN#NT?Z|X#o@m9Iu8?GNq43Zo1hVfVm>)-fYK6(&z UegCGhu>b%707*qoM6N<$f)$*JEdT%j diff --git a/drawable/ic_lock_black_18dp.png b/drawable/ic_lock_black_18dp.png deleted file mode 100644 index 472922f85bfac928a05b8183dfeba953fb3d8cd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rhe6`n4RAr-fh6Ati4G~Qt8ij+LT z66f%Tr{ll#N8=R|o(|$2^-Lf06t=ZLx*K2^8^kk<^GJW=3}(+B;g0zZPdnItH&n=q zef%0=x#%FHLR_@wg_%fj$^|)v zw6;fkr$}7sR=Muo=_ub|A=hOeAmtXqowJFj%ArY-|AXWbwj-tvcN`e5J6sKtXJDA@ X)Ru7i#8y+Fn;AS^{an^LB{Ts5)s#`% diff --git a/drawable/ic_lock_open_white_24dp.png b/drawable/ic_lock_open_white_24dp.png deleted file mode 100644 index 7c07b701a27fbd85472222207de4bbc7527e3afc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmV;^04)EBP)6Nap;K8vZ%owH8oWE%qx zpw)u?64>D)l}Kc+$iv`_w9hs;hC!#5^x4|YeYxr9DES&FH0D-4v_63Oa;V0@`{gFj zegz86bEC_kd2MtV)S!$9xk@Sfr&o#sb#OGwG00Vc@+@||qkfHGJOGEE%4_GR0|)>B N002ovPDHLkV1mKkTk`+_ diff --git a/drawable/ic_lock_white_18dp.png b/drawable/ic_lock_white_18dp.png deleted file mode 100644 index e9b327fd00f503d8f719ef4fd80c4a6c29952088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@RheHJ&bxAr-fh6Am!{`~Uwu*AcaV zGp8K*7_z=FJxc#C$Z+JF(p7<2g@2q!b~oOT>ne9XTHA$uc}LjW}|>=}Cv-0_l$bf7E##vUYutbm>tv_#i#sQH3#xcNgzb z5y>s=9WxhJ=&Q1QRXX`KDCq*bLSOqM{wZyOSD9w(G|Np$ILBPWwvw@sSHN80fP!fj c&lUy-$7@+LlH-E1fbM4SboFyt=akR{0CCMx;Q#;t diff --git a/drawable/ic_lock_white_24dp.png b/drawable/ic_lock_white_24dp.png deleted file mode 100644 index efe76e87687c880d3bc943a0ad18684abeaa8958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmV;~04D#5P)Nkl2M>lo;Hn5!P`~t7P}7Nkl52R`9c5|8NjEyfGw@yY5L3Lc%uM(svFqU z6{tnhFNNS!h0UUPz-ChQky2{FtP&KBlsILetpNj4-T&$2lY@#ppM2@!#z;9v8 zR4=rvfI!z+Yq8O2+z^0y2Jmy(Fxnptg5dRB0vMZ@wtDXj0=?Yy*Xi(eo7@3#!A~$I zSC<5y=RGqUz8k!o%NrWnj6BAM<>mR73C-XB0RnyFw=#^ZbpKBeb&6-sB?ztY$DQhJ viQk+{lB9!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3 z7N_c#7G*M|W#*(>>Fev4P)H;?C}1_!@?CvWq1VFURB+Cu!3L>r6hhJe(6cYQyEz6@0}XhR;KfvC}X0K2*<;4 z;b8Q@84^5jW-xl-I|&~6J{UdlpF}+Bfr0eEzflhium}E*dSHM(@MqKm1MGp{qaGMw z5BwVS02$yXk^^!mY|MScqCXEw{wFOw@C?a^qgmxyruc_3y((<=nTKakYa)4~JVXb!2wqDF>*CoTf9G!}hT zXzH|Sm67+MWkfj~o%;f`VU^QBoDan8Sk%iw&4QV`mzE`wCA29Fv+M*Ab5UR(HxQph zYi3)}x;UMJ7Tx=yX_!<1(sKaKtjY8m|2c+c@k1c?CczAEs2=p9m2TrjpwK&uC6gWp z;$$F}!lDP1c~hWj(Dj`qGZrZVyg%+w0uc_s09DJ)Fh~KYTo1?M@NgXU#-Ig*ejsbq1EU@o^}sOqz$h36 dqhJ&e1_0wRm-mkgaex2-002ovPDHLkV1fbO%ZLB~ diff --git a/drawable/ic_mic_off_black_24dp.png b/drawable/ic_mic_off_black_24dp.png deleted file mode 100644 index da605a5a19a6840369f56899c68de52b65fff291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)IJ2%uL;t)9p{%BV39DvuU|=GIiGgFQMv{d9^xKgHN#?CUlDSKNwI4Rh VaA?C^Ro?&r002ovPDHLkV1oGvbIbq$ diff --git a/drawable/ic_mic_white_48dp.png b/drawable/ic_mic_white_48dp.png deleted file mode 100644 index 80d851e95147f64d5b57edcc743b207a193f69e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmVJ5Qako5rG0qLUMsz0M3vDqyz~%o=XP}G>8MhHK0a_0962yh(Jz20YY?COL&>z zl92|>8}@-?3(YV6(n|K&^XK(Rv;p zGi)huV?8RpUQVQ#W?c4KhwtA?brEF zL!0;xt|l0xs$zaDt$jN$Qg^Rq_(;#;Ie5YlQ-tSLA6>09PcbXRD16Xk#d%Vva2<6W zrG0qBRsAyn&%%!)xn#_YFNK_3O_tzxjKtfjZ^73?Ub(K<42joF{|#^D{XrH3FaQJm fa{v~L#fqgbUFi|h1xRcY00000NkvXXu0mjf=lap8 diff --git a/drawable/ic_missed_call_notification.png b/drawable/ic_missed_call_notification.png deleted file mode 100644 index 9a7f39cf0f289002639bb94701fff165eee5ba9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)^6vxMumolX(u~Jh)7NlXTNHz*7AtfJy63v3_Y;0s>LrqCd`2-@dkd36gEGP>v zMJbe!x8r~3-kI+6cjuY0=2yR(Ip^GSy3cdxP9X4S5RpT;`zR3l4DK zBuGTz8!d3*H$d?OBivsNSfj#c*aFMpwiVAdKoRHW6{5Fivv1{ltavU1USP-`Fvu06 zU!*#!^`ehtigkElea}RzJz$)(hDJC;u`PH>Fiv)ujpw~A50000f|Jxf5r%1A0S;BFI%c17KJ(G^w)d>L#|5%SmdbBnEXj~%2^!c2<%Hf)m zrYvlAO+1UP2uvt<(lCAUy+K0A$bzR)s-z*wd4q(@JjH-!H3wd6hi!_@K*z*Bw)%JZ S0b3~0b_P#ZKbLh*2~7YB!8{HC diff --git a/drawable/ic_navigation_white_24dp.png b/drawable/ic_navigation_white_24dp.png deleted file mode 100644 index c445d26207dfd7869be8c94362fb893befa5970e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmVf-HkelSH zc+2lQkD~l&lqr1&rcA!clU%uwkOzGLdh%cofF+yPd9Ef0mOfa>Zds8yzenP1FHbmlmeE0s9h-yT&ulX@+T*f+#{_l*zw&6zHBKpI51I5Emp?% zWV}j&6B+kXCZx<;8E0W|njd!>2G0tBz8fhFl93*8ECs=@Ltq#O`6Kp?q*(v-017Ws z;FEa(IPZ3?JcPkr*U^~D*f&;5Eq;2mt3hGAIo@iU=DIA zS3%052Jcv98a$#C1l_#`=O#F7f`Hrvuecg4at9`WgoO&sVHAM40`X`N)kjJg(`|hu z!SROG3(L)Gy_j~b!jlOerap~agCkN3`ugFSgYNTo>`~Irv%}Jq1v;@-^b5}wA=_M1 l@WIM3(4W9MTZjRy`2%*(KG7s2s%`)P002ovPDHLkV1kSAcWD3s diff --git a/drawable/ic_no_results_background_black.png b/drawable/ic_no_results_background_black.png deleted file mode 100644 index 52da4021cbaa12b1cc560595de720a232750b9fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1763 zcmV<91|0c`P))J3UQ(ye7S z3|&~-q(YZe5~14y*2Jko&k1)7r877$&vVYX_x}IMe?wsAdCvK9-(Q@AAP9mW2!bF8 zf*=TjAP9mW2!bFeCY>Y~$iw6tM;2N`6~IIhhRG=^Jo7+zUII4Fv1_EI>{sCyT0VuR`Mo!#y`uONQ-S9^@+Mqey#{j zJ-_f(A3x*kNS7UTlW&s$HV92UKPBHH_aJ>bIz;X#&jkccJ^w@=Bp*at^Vb3L0Qq4A z;OzD9`G8ro-pMPnLDyws^@j>#v$qrN)G69DCvo+KXuF8|dj^3Q;yVK4a31w=YW zUIP?O`%m(_sl(Ifdl~?u^T+K5F^^`18H0p6gN+?A05pkYs(B)Gc!rQf zbq|FK4=+E!th$X^{NR>?@B*lLB+rb?F0e&uV@R4gkA(scFEiLg!pwOyl&<|9B+IO) zt;17L3d|q=yB`IR#1;Rn%Szv0unG@v`ujx*p6cqncZ@@{;-9fv)oVb+IWoC zGY%2MbEd`=j|M~o7Q5|B!a-Pe_16VkgQylfnh-5oD}@FOlsr};+7BL0i25x7G;a(Z zD-bmTj}}B_EAaFfskW>^)C@dY5OrGsXv$#8qYY6j@Mu6Zr47$9CwDSfyGNc#LA1N8 z-l}?qV#>KYstM3YApg};5M=?6bZI%F2~a73c7;@eLIAv$XSLwrqjWX4=U7ZssPI&` z19iq;eOXReh}D*fYV2MB19W*OF65GDx4)N$hmY{Luv}F$fw90-UG^$^EyIOC=9%(J zWK8f>eO?lvYldE2I-xPNd20DfNq}aIy}VRnV=Q@8+Ci%Z1CV!uV}^(QSPGt#Mgx#% zqGPSL_FCl9yn^u{WS#KXOP<~Cl>lfsfIwskQ7Z7TKa~LJMj*k+sya&r9`?9IP;Lhl zkgQ6g6yRZhBN3QVU_sF+i9&=&Y-WBbz`#gC6e>K`-5SY`0a>WdLWW0dENDI80OeT{ zg$~cQ&u#9C;h5g6A&LQ>>M_B&Yb%04WeHI%@UUM1AOK_@AXH(f!qA9DBU-N!jcz=; z@fb)1L^b^oQyG}bFh7-n$y7|Hwxw~DJkdgQT_Px0P!=ylA`8k23BmKoVM%M|I*~xN zmFlAU<5G1yw)MmZk=V8#7B&{f2a)K;!mA0DJgIDL{z4KU9Ig;wNz@|=5RP|=3!-%= ze7uYEbtVp&!U0n)3rF0=(1#2 zZEH&CWpUX`_P*&1s9P{Gxb7*!>z-I;!I#E`bJ=*#8B)J+Vj6)6S6=S#OO^oQ3tSh4 z1At3++uMC%?&|MBg~ZeH^Xs;lV|Cf0unu zf)aOGH;_DaZ#doU-EC7HW zsSD#nB7Wjy9i{qQ9LEG(^)nyisKvAP&ynn0w&xUGBDxHSGKc4iOH6~l$OQoHpDtf? ziK-6`>$WFIKX8ew%Xd2gMDtzsE(g6FC&FN3bAyDZfX)9$tTFA;*!08^;8I^a`G;Bj z+Oz6Iz@sto!t*&m^V0L=v%sP`@xGh(4P1I6aYs_?~x~++(~I!_$m38 z6F%G<+FyKB8=v=gpZt$OX!uU{lG`~~@)*)(TW@%nxF_?MayNX&KT9Xl5~lbF|MTR} z$#>n(wMKbfnZ&?+<-hYagg;L4rFncx1z+*Vcfj&xvwY_DqKAO*j^K4RTizA_v&a5- zX8qq>_n*O^bsS-ZAP9mW2!bF8f*=TjAP9mW2!fz^^e@Fa#*8*q?veli002ovPDHLk FV1f)MMbrQQ diff --git a/drawable/ic_no_results_background_white.png b/drawable/ic_no_results_background_white.png deleted file mode 100644 index 4c1b5e3a7198db9fe3a50725f28f24dc494fd41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1819 zcmV+$2juvPP)00000 z0000000000004*vB09m*$1%cjo8tk;9LEaBI>#nQkz?0I(fw@Q{mz{Gn+f+B@>%Vu z**Ils;W)=}gX0?~L8Fk*{+8pW`_2|*AWUgGI7T@hyOzTjTO2d4Ebk&SwxwxviF(TM zn(VRTZhcb5w~;YB;`DIb;rNTf;T6X{j$UNYk2K93gBi z6d%8GT!u)Elc&J(jN<2Kj(%i3J8`-=rYV2O2=aXxP`fxy9Ag|WD8Ibq7?(aDjHphY zQydEf_II?qVMb;04ClPnDTma_CorVEIISF$@Z?aYIF7=Y|H{+J@gv-*7#WRr!JJf{ zGaMUmqH6x&_#p4{47ia7sC|_7abD$->HBRsP&cwx>2luWxnlH*d8kNTUd@X=TJQ%9$A$8pu(+o2v3H?kqw#FdP6msc}$rv7t z0>2E0Do;1zsk#Lu2i>8`Ba7Y_kvlWU+N$P|1R6)q%rPE{JYAH&kqK4fy|z4tB`PbA zXNd+a3AAWQ9zzlxDvw8r7OcqAYvHzKP@;U~JSqn;aD!FU(DbQ#L|J8~TWg(AtYdPvupgHUP3dID4Ab2TeeaRzR z>H2s*$6}&Fm4{poJ7T|mSx#7pw=Ms-F-muRr<_X^a?7)yC))DJ@c|Z=tNKh}Eb@@c zWs9aj=R$bS)WAf>B+tK`)fDI^*+Mg+G4y##@r9;9Gh`2q#Kze2==X!Du}3CZZHZ!* zM_AL6=LFfN5s8lVw)KD7H3aG-`(&B$*jt|c6f^`Hp)klwqP)l>T-OljHibjotw)aJ z5hgS$mM3KlN6g33er8vk$qKM=Xb|4T0GA|HrVYr2%6OB%^zfLrU z@fgNqA`udmWC@QlJj#Pd8F-kAhp7q`Gl7;TT8VC9L0N_^4`D$Wmb79?YgMQ$X>E`F zwnh0}RDWFS-j3IL;*)4ivvY_S3*(bW^~J&)Icj-)i0XsSH3h=v3h}i>y_y1HdzZK* zk_Y5^+q<}nf0AQ)Vv|UBgDH36*y1jpKGBE|fw0MD94(QbO*Y*{&qAKyCHl_SvqEe% z9>?u$#HTYy!t?kQXRANS-gd_nP| zD{hGh2hP2T`NRrbm_g;l94Zmv$jigHU`e1RN)K|?1c&a{&JtNW`kM=M$wOiev_yns zzbnDkvEQyTj!=52y*G)-{;I#dA--Wd_ku% zKcvD-sp}+0_`(J#j%|XivMqI-#0;fR?O!9;nIm;Nl;i=v&?}HAb9t^NdBU|s+sJ+0 z6m!$^l<5aTLas z7wH<|DSj!WPKIGfWfIBa_<1<9$0A2J%&1NxdDraIoVP|Y${MH87K0h=U_Z>EJddcx z%_Kl+kv^jIou=54YwSnH8zYgtyeRMC{}Q1%a**E;S$pL;;{MTvNIKe!?wL!cB=e`|Vfc(I zO9wI&rc81y!cI39DXHBgu}C(M`bJKsVE;*?4b%`0$Rr}PZi`;_i^z3e2|bn9$( zT@>BV*4*#Ry1%*QK0`k1IBFIE000000000000000004k^_y-$i*7mLlLz(~p002ov JPDHLkV1g40W|jZ| diff --git a/drawable/ic_notification.png b/drawable/ic_notification.png deleted file mode 100644 index 9bb538d895c1d70148a3010c4754805b3fbfaa26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)6o$uHl;}VWv~eK>!x$|B8QT_2;ld!KjY<$L#Z`h7vx#V-);^{ea?;X!QGfXqH)fXPP=brbx-<@y1dlQL0BM~_Q$Dj++ zzTdD2Ny2%Ug`ZNXH7LSaXz}wk#lR_8jK$T~Tj=&VRfTa3wp~Cy`U{tRUQ8IS_^Af9 z14BNyBpNx`GUn$n0k`3yxgTi;CMEE^H1{{*sL$60G%(USJTSHH@e5PW!+TTTgI}gD z`tVK(eqN+U5)aVc9aB%4Yn490V^jZulwIJWX{tWKxT&AQJ5#@bXQsXhpG~dG+Xb$= z<_dg(TN3Q^lX$zNIobUWK1wiSb;&L;>YCnMkNnJ_UErK+dUHMUGda6JN`m7R$(wb5 z^Aa3}4(NriF^9;qx&8*p@&e%^_LO{w0^EmTXbn9Vpf9{`gOSjqUi-Z&#KOaYG^`qv zev3}SA;`jY_zfEp1ZLncoPjUlj7m>n>47RlL00000NkvXXu0mjfji~bL diff --git a/drawable/ic_notifications_black_24dp.png b/drawable/ic_notifications_black_24dp.png deleted file mode 100644 index 520cf1bfe2c66c875033c801b0f62f30946169f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjZJsWUAr-fh6C^wvI6EFMoY5&J z*1+?R|LDgnW^;r)o-0Ng@N2n=PT)9_KY^$Hp?QF1mjkC*^Tk5Woo(4nAM=%T7*<|X zINqe`BEfe!_{7EsY@A|ufc*C=5g+EtaQ~a!;jSx@BxW)p(UDn~SN-Iq|00hLa>ps{ n{G_U@^PyepkI*SOMFs}x_Ki#ePoyG&E@JR>^>bP0l+XkK)d4|m diff --git a/drawable/ic_notifications_grey600_24dp.png b/drawable/ic_notifications_grey600_24dp.png deleted file mode 100644 index 25809a4b02ed87e3090a6dc7d157b748e929e784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i9#0p?kcwN$8mS7rk0vFk_#R$z z$$n|=l8hhGzvNf6dhq%!&2Bv9SdhDtS&>&~Y4O6Y!~(GZo_@BHrvkbbrWVP8d`;hW zn5;RxFwsd$nl*(cQJUn`njxgN@xNAYi&t^ diff --git a/drawable/ic_notifications_none_black_24dp.png b/drawable/ic_notifications_none_black_24dp.png deleted file mode 100644 index 237c8eb01dfdc885e6b34a325d58985c48a8c56e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjD?MEtLn>}1CrEfUaCSUiIHOZc ztbykr|Iv?E%;pGpJXee~;MZ~!oxpJ;Tu6F ZhHHmXHdd<_Cj%YL;OXk;vd$@?2>=pDRgwSz diff --git a/drawable/ic_notifications_none_white_24dp.png b/drawable/ic_notifications_none_white_24dp.png deleted file mode 100644 index d945e688cd05bcf3f7175c3ab58e8805eb02cfca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj8$DedLn>}1CrB7R`2YXEkAn>V zQJ*av7*Y&)js)K>@Kc!Ap2FC1)>HSeaO01&^*#(j-b=205K>`2&s?Z4GT&WDU-5c@ zufjiGQx)+J$%#)S7AE~)m}PQeV*=NehSrKJI!&u)I`y%dFPNqKamB`#RXZK~Snn^K zwe!P@hfS+~`t`9UIOvux7UMDEZg?f_v6W#-d&=RH47@xlJ34d>R%CCP?!i~<$<6&| i;k1Sg|4(Gyu_-i|4q~z3HxO%(W5E<8 zL*463%Q28L~`j%9F}YX lVi$5P@P``w63QMS008dRrZ40tGS>hA002ovPDHLkV1m4^f<^!U diff --git a/drawable/ic_notifications_off_white_24dp.png b/drawable/ic_notifications_off_white_24dp.png deleted file mode 100644 index 38ba80cb981bd7919ba02e7098ee9f4d83757824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>UtP)e@K?cJ>JS7&a0pjmK?207D1;q1_ESLwxoa9>I1H?ap z_$v@QK*eVL#{_SHIFV9IJ_E585VHaCj{n#}3AvV}Lk;)<#HP?-I*7%B-$1NEjs;VY z40#8{20+XQ#HX=XGKCxqZlD?R3W&9VSQv<}pvm1J$ATYNT>2b{)qz+Nh;Ji_e<#NR zT;K^1D*>?r5I=$mQquwucmTw5P~W_yg#{pR2Z*JCSRa%KXkh^eTnA!tY()#TEC7Ma zKrBM4;SK*u1LuHPkXDAnz)4U>q-M}y1BZc_hZdC)ClK$3TC#;)LtY}e^d$~UHUY5< kxfb|CEdgQwk<(ZJ06j_{;02~1TL1t607*qoM6N<$g64LCO8@`> diff --git a/drawable/ic_notifications_paused_black_24dp.png b/drawable/ic_notifications_paused_black_24dp.png deleted file mode 100644 index 076df7611298ba22ca662348b968f177ecebad0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjM?75|Ln>}1CrEfUaCSUiIHOZc ztbykr|Iv?E%;pGpJXee~;MZ~!oxpJ3*j(x26H?kZzQ%GY=3RS3USNS(r zhWi5Ve!e4r0%~NtZCu6nH1C=v`KtT>m2C@HwT|_Qh#RlWWLy~XWxiCQ1IJ_*sS_I( zG)`-qoN}_B>*E7f{fRL@Cy9yuaOSP!Ozjt7V36~kzO2V4?HSNN44$rjF6*2UngDSM BUPAx? diff --git a/drawable/ic_notifications_paused_white_24dp.png b/drawable/ic_notifications_paused_white_24dp.png deleted file mode 100644 index 37f202d5f477f3d1d7077e6b2f765b7e3d81f4e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmV+b0ssDqP)~+i*@Go`+-sh|NhY!xMq{&3{Y)5=*4i@RI+8K?%8r zYXb3aA}j!@(ICfyDM*GiV3BV?lAl731viikmCAu>{99AZ7+) zRUm$cB>tTo3(&!JAm)eS>*$h{TJR3)YG$Y}{!`n67N{6EQe4cWrUisj(SK^h0bW3= z;SK*u2Mx3|oOnzAQwRoijrJ1Bp)YA+fj`s|5cVHAjRgR$vAvw}H#{@|0000#2KKxber?dLITM?ifKFO-Er2V;N7C(TJ%A8hY`15*iVJ`yfQ@;QF=N1-mILsNd6Y)T q=X`Jg8b6TigoZ5UY|4*MQK&zK1jEgeCm`|k1|%Oc%$NbBY&=~YLn>~)y|$5)!GOcn(f$0h zw8jVyF~@fY-|MV1ahf!5Zc^~~x0`NUu@!)U3uPC|{r4>~jlFg5x1jH_|k1|%Oc%$NbB>^xl@Ln>~)y|$5;L4m{7(XG5# z#zD*3@k^Z3_ipXZ2}?GgiMd+(Hs2vNwpsxO7VtZ4o>$|kzm+jbSiscS-*perBnD4c KKbLh*2~7Y=HX@Y( diff --git a/drawable/ic_person_add_white_24dp.png b/drawable/ic_person_add_white_24dp.png deleted file mode 100644 index 7d84d062d43e0fbc3d11d6e356b93c6dd602cd30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+inVv3=Ar_~vUN+=wG7xEaST1#W z!;8Ef>>u^2RGAVFazC&&*(K?d==9k*F)CBHrE`Dq3L~!p?QZNSuM^LX<Vz>KIHM!?tbN$`p3Rj9Y9J9a6yzFo@O1Ta JS?83{1ON&SP>cWo diff --git a/drawable/ic_person_black_48dp.png b/drawable/ic_person_black_48dp.png deleted file mode 100644 index 76858f701693fdad6a60ff4a66aac35908e2e353..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmV-t0hs=YP)S6ouo`chI%cP4ywfeciN=q+OezK7-(@Zf&6jeF4o|SP4P`ns^58YyuUVnP#qX zKKLMzft(XElN&{Z5JHGw&R_y_Sc&F3mV0VBgfm#fW{c)tCTrD&U;Yrh?Lu3L*$&~Y znWk^P?ogoCvL})b;jOWT0=YwhTtk7%p+Lz3fj^;F4FzI{0=Iwt7#(W)7o;5uB-%!a z#SY;gwa!E7FNV29WBB%-h~;!DMLSLpBSMHuj^G$h;T*oeH~0y^^;CWx658wzsIfUNkGrW>#?1dA!+C%WRYk2BA`~`gPA-uJKm%hTAxAD9C7ASlaXadUuED*W?A%u|s%Qq7R3kZxBXSM(U002ovPDHLk FV1gm_nrQ$4 diff --git a/drawable/ic_person_white_48dp.png b/drawable/ic_person_white_48dp.png deleted file mode 100644 index 4966999857127321d4094f4f110728db1d453086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmV-l0igbgP)6_1T6v$NU3A594$g5JFUL+$!wC0epksa0UP1zr9|hQz7F5z`h38K>+o&(E9J3<9arHSa3keop4oI! xU?TpQx+w7DvB26z0k5zC3-~TT2qEOI*#o1VrodbRab5rb002ovPDHLkV1fq@pdbJM diff --git a/drawable/ic_phone_in_talk_black_18dp.png b/drawable/ic_phone_in_talk_black_18dp.png deleted file mode 100644 index ee45268537a84e0ef206e792d47286a5c18fd434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmVktCG`aOc#Dh6f>p4e;zocrr)ss-6x2h0@rkd6{87Rp7>!uAZ?Z z)32u?co!aZl|mnYj&I=zz`C%h@asfoUswddhikmJm6MEL6eTl3DO)~~YZ4-1X+jHsOwu$-&!?jH5c^!n300000NkvXXu0mjf DB1dNb diff --git a/drawable/ic_phone_in_talk_white_18dp.png b/drawable/ic_phone_in_talk_white_18dp.png deleted file mode 100644 index 833386bbcd7d403260e5f4e17ea79de10ae630a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmV+g0s8)lP)5>2 zzb*p-901^-G}VbW;01Is*(9~{5C-W&3`Qx9L?W@_1sKEwkoc2}TudYeiFgBQZNltx zan3bGr+#0=P+5~oC8i?d!oIoa=SprVGH$)$#zgdTBDWP^)HHQHn~ajSToM^)R#eq> zrBTw5Ye&W-u2nVBh=Ph&?8G;VSXT3HFG@Bs9X~udjd15YO2&2E8;!v%;Lu16riCN5 z$k>(I)>Myv)_r&|<3J&a-^_c_D~-Px)6!8$<3B29Z8&ymHHPXFyN1GZ*_DqY00000 LNkvXXu0mjfAe3xu diff --git a/drawable/ic_phone_in_talk_white_24dp.png b/drawable/ic_phone_in_talk_white_24dp.png deleted file mode 100644 index e6f98af95bf0027481d1c66ab3fc99354458dd8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)Y5a?hDBK78)1nDb?lTJ#_HAxQD2M9OC$xk3SiHJBy*jivDgy5nLNmDe1 zgogHfa?~p~@AY4fo|D{GR-I}ZPQhPW<_+a?4wWWTQ2MMl7ui;tNkO|lZ~VZHft+Vu zX(bgpEn-J+>dY%Ob>^5oA3aI5S;VK*d7<>hog8y&I&s%e45muMp%ZJmQ*h5K`xr@# zV=i^x;j8Xcc#RK<$M}{y1K8G+3SIb<=)iu?^BxPiIgjjOEH~#l4m{02+I8hRCUM|p z3K}-FteQ1tIF~cw#FG0OHl1naDxTTJZ{OAAY93m4L9VCYTP+p&KM#zWv*wqUmE2ZG XfRjN?g6O-M00000NkvXXu0mjfGVqI( diff --git a/drawable/ic_play_arrow_black_36dp.png b/drawable/ic_play_arrow_black_36dp.png deleted file mode 100644 index e9c288c991550ebfb609a82f85a1ff8e4a11f4f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8r>Bc!NCji^0XDaT8U~A|Io3<; zlH9Q(@j|`Ap5qU^Seq9V7&ddXvK@Sw-4@}+>vUi)PuCR5mWFsqFNqnN#vF|2Cr#G) zm)v~8#c`+O2N2QW;walJ7I=8UZk}~lINs>7>1Da>S2Pt$F=YO%a8hZ#WYUU>nc{&F pJqMI$1u=AH{1W@OI6;Jg!9HnCPgkS=OQ53|JYD@<);T3K0RXaJLVW-L diff --git a/drawable/ic_play_arrow_white_36dp.png b/drawable/ic_play_arrow_white_36dp.png deleted file mode 100644 index 57c9fa5460323823edb0289c1d15f0f561e0c06e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8m#2$kh{y4_Q_k`_IEb*R=ADxY zV6uJDq_v_+Z-tYfR|K!cZcn#wZ_1w*Zwfx3^1JLFH&cH)|4gqfmxMH3rgg?BZ~AgX zO7P4Ssfnoy7dsLbs)cmuJnq)8IA+UruCTi)d!Bot@+%Rg#TB=_7E65dSjDj^h($AU t;!LNFTjoCMkvN)I{QpIN|NiIvIZ;mvueQI+xBzq&gQu&X%Q~loCIB@QN?HH_ diff --git a/drawable/ic_play_circle_filled_white_48dp.png b/drawable/ic_play_circle_filled_white_48dp.png deleted file mode 100644 index 5dcdf0d7a4b7daca244384a566c3a36ddf563b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)8qwL)}Di@L#=vc2@L4ggOYl3qLMETUUz&Y@xg0B7)Z;_5v!psA;D{ljZ5) zc#?BoPeMz<=Us&de(}5?&XfNETsn+db08ohBH+N95p7%?Q<;9yV8)pwPJEzlFQ~F4 z!bFHq#YWKQ2T}rhj|mEV;Zb}%si4RX8@3cBf&x2i+2WZ6pGkvn67)&SJDs4)PttOu zoGe(91&bs>L;I}W^9vavFY$sIIvn2c4H?rofy)^k_ZRXN2}g3Opo1RgUc#tas$eV= z2%{RRg0)N_jB2F{4l;o-s=X=*WCCGSS5*+n1j4AozbLSe=q>Vyvj52c;BPuYixQ2V zfhuTc+A5l=z~z)#v-=*`>>NI#;~tHSN&GyhXEbnrQ%f3|K3OnNp2-yg(sH4sTU&ah zrE6NeeA4jAyxDndv1LPEw*1;DHoTIq?;gHIIQhp8kRCUrTauV3PJ9BnkyBi8E#6WD@4ijR86d^;%0vU|)xA44-?-Ck>7U7f7 zCyanT##)$@o~7Y!!UJJw>xJi9gv7M&J|=XqOH<)BZ9>5~EHHjT=o%X3otFu(!egwX zWJH1{7bh^z@`m+s!VTeDkSLhMyfeYhdCj5F6Cqp*5^YsZAmKDIXE*NyT#8$SC5NsE zJTZh$OH*pvY;P((8V6aH0b$24@frqhZyMxOS*&|>O-OXHmeTky;m&|Sl<c6y7#&I!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3GVgKlUL~j1i6Y1ZJ&pP~cI67TpN2<8374xen5rO`R+?M4NKXJ|u)swFgW`A6$1stxXUc11xhMmW$^`mD1zeJnc zxy64MKTKy3v%0-|f4P-H>>IWGi#n>7G6vl7xltO75wBBsUWi$%DElC@Y@Uoy>1BZf m`sz{V<$m=#GBLcm$+x6)!>`G%ZM%WaVeoYIb6Mw<&;$UQ=SGqM diff --git a/drawable/ic_qrcode_white_24dp.png b/drawable/ic_qrcode_white_24dp.png deleted file mode 100644 index 7e28f95dc1124738b312558edb0728455d9d9f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3>VMX5XR0~i7jQIW>m&Za4Z#6l!xkQUzwW_* z2l*rNg4H!omFK^EKCAIlV;6tmhf{jLO4wdJi3s#g2OC7#SE^=o%X68W@Hc8d;f|Ss5B=8yHv_7`V1Z??cg$ zo1c=IR*74K$&JTMKn)ro8;Z-)t&$RpQ*}#=G8xh`b5gDJ_4P|~3-ogn(=(H^b+diF Z%MzV^Q>A^}tATnLJYD@<);T3K0RWcXj6?tc diff --git a/drawable/ic_question_answer_white_24dp.png b/drawable/ic_question_answer_white_24dp.png deleted file mode 100644 index dad29526ae38bae2ccea06618caec7e2aae05c6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i08bakkP619rwzFp5_p^+%GpjA zezj65g6021&PW%7{1=zj-{S%;9qx k{a7pnAGkCKGwZRl2S4EAmlFCB0W_Pz)78&qol`;+03PivF#rGn diff --git a/drawable/ic_read_indicator.png b/drawable/ic_read_indicator.png deleted file mode 100644 index 310f4283eb6c6f07c6168580fe80ff29b369347d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4Do+>3kcwN$2?}B&|EDKv{5Y{z`J*;RB?Yfy_1Wr*K!vY?_`S+p6*s(! z73M2&02Q7C;$JGWRO|^lMP-i4ETH25s*5z6oe&fS?;?=UlZ^jF> zc}Z{emtK1C-&ZYNk+4S#%Di@FPZZ+vKXmPiNBHp@F}iy?wrmiJiX!7py0&bNr3SX0>MgwnRzNc9#kQT!*$*QnwhO*%-L0}kAaAzQeZQxh8oyuNH)lCt zI9GlZd&T+P2Hx%Z-!($g)VOwb?)0iCDAQWI^U^zw8t%FGAK%@+C2Zwd-PzWu{~!3* ZGhaBH;iZ(P_ZsL=22WQ%mvv4FO#pCza)bZ? diff --git a/drawable/ic_refresh_white_24dp.png b/drawable/ic_refresh_white_24dp.png deleted file mode 100644 index 9b5f21cea9f7c8b15bf028756b48f3005812fc0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmV+?0oeYDP)eYMubd~k5Qq9^zaBm47)NW1t(3uO>(}ipgw$>^_t>R9`MM1Mf t(Cp$~701@G=LcA@!KIvYrXSk)#}^&@1A3&^I2`~0002ovPDHLkV1n7Zf}#Kb diff --git a/drawable/ic_replay_white_48dp.png b/drawable/ic_replay_white_48dp.png deleted file mode 100644 index 3b41913257dbe14e552f8203ba4612c9e49fa7a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)FTt0oJ-PWqJo#>PDsS z`vtg-Yj!6pzZnU2 z{;GZt-a)wL?((iFE#iaElDy>m&CA`pJJ0(Me&j#__@GGmbS>9Q;RSFALeK;e_$DH{ zChi@Be3rsCnX}c0_M9B9s(s$2W^J9q)pGR)4SN>8{ox3SmhOLa!sseBpx?W z;{5YR!^>*m&cQ^T-ffM*@Xs&76q#@t6BV0y-Z0v0B{D9BdR!?O@W19ZXuiJeUm3(d=)=FU_IV3b&Cs^Z)<=07*qoM6N<$g4fvU1ONa4 diff --git a/drawable/ic_reply_white_24dp.png b/drawable/ic_reply_white_24dp.png deleted file mode 100644 index 4beb49bcfc0447b620e89405b74ec0d68c5d3fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St38O{GcuT~~VU3)0Yif6D`sT}TZ=e0}aqs8@N1&ow|NKQ=&bfAJByVw>%;anD+G*(^_W%X|pCdQ*F@ekb#OwS6G7^>bP0l+XkK@cXF> diff --git a/drawable/ic_room_black_48dp.png b/drawable/ic_room_black_48dp.png deleted file mode 100644 index e604545372ce62eed3fa0a017dab7134ecb488db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)748qeCC$D3|7q@$dqP-QS;OdOVEi}n*pe>uHQ;>)^9gZ{st)s!1oH`z$`EBqcYe}8QBpBsZyC&w z&k5Fv-DEVMu*bR1`w9ZY*I3{P;ASv!1vo$faqt**yvq@wO}zL)N)3-#qs0+mK)mz+ zsY9sK=LirGF6R&uz4Xvup5TGs$(b*K{&rNEvF9D+r=0`ZjD6JD4z7d{lq$qtKPZ+HD zWz)y8e&ehk62k*G3f`c&8B`Piuwlt O00005w4s&IyU42CQ_n_23>KpyGh;D{aiI#47?g`mbQ zRQo)*(^VCygw4|A%{~qvzPxnfA&*?tc(;8(D|#Q|%)~w=_Q}R&YzJI2pRQ<`D_2V2 h>~xdH-#&qexC1m*=VT1&xqAQr002ovPDHLkV1i`7cOU=& diff --git a/drawable/ic_room_white_48dp.png b/drawable/ic_room_white_48dp.png deleted file mode 100644 index 8c51d01ad8d4afd300a8f7abe540950326d8cea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)kBv-pFvs|ofUlp+XrxHJ61Pc3@!?qQ49zP z%K0Dsf`i6C>HU`k^1-)+%Xi-w?k;!#2~nUx0WFYHmVq{K0Gt9nV1V@SSs&Y!vt+yi z+y%Ol4j134q-}l~IFret-d#$|du`Jpu0X_ybCK7__X;IQ$fe)#Oe2`B8eKs%&TXOyj=J-@nrS$l+_e@0vPTAKao9=M}YA?MNyzY b0XBRA@{5BY_N^uj00000NkvXXu0mjfrlaS7 diff --git a/drawable/ic_save_black_24dp.png b/drawable/ic_save_black_24dp.png deleted file mode 100644 index 280cb23301dc2f33bc9f386328cbbe9a92976c2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjMV>B>Ar-fh6C_wwnj94BIFJ1I zJi>b<%AxO}N+eUTkB-7kAunBp3{F#>ANCqL3q<;(9BR4i7z+6WK06och4f^JJxK_h z?e5F{W8(@@i6F5jm#jMK9C$?<9@!Kr|5O#7^n$xajKx7TAZf?{jJ>`>3=D5|zqqbl S@$3N5b_P#ZKbLh*2~7ZL@i(LZ diff --git a/drawable/ic_save_white_24dp.png b/drawable/ic_save_white_24dp.png deleted file mode 100644 index 24eb15f8d64edde35d27f81aeaea2c5e1825a924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjWu7jMAr-fh6C_xdH2nYnpPlLB z>HkZb*^+b>ju$-AZCt5x@c5EQCsytc(N3z||M>T?PH76{&PY1QuW*hrsZQfuYggde zCK;Wq&nq$+?Zvh-IiG5ZiDJLVzoL;TV2*p9%KjxzTD6Vmn;0fAdGW9({lBfG%M0boFyt=akR{0MZmbY5)KL diff --git a/drawable/ic_search_background_black.png b/drawable/ic_search_background_black.png deleted file mode 100644 index 9d40a03ee432df9d26cbac43c503c5a22c35c6a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1667 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 diff --git a/drawable/ic_security_white_24dp.png b/drawable/ic_security_white_24dp.png deleted file mode 100644 index 45c2aa1e731badf61f5eeecfa0969f98de85be21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3?!qvDIe@6lwohy|=U}$i!PY zYf^4aL#~NXtDBOy4JD0}-{dL&J1JsZ zeD3p{nbyV5Ke!#`#V#DP3^TaE{lUPj;BED~i$@~VA4ruI%x8*Av~@3;f92Y$hV+Yv zytytM6Z$oI)}lQRSw5#Wows=`@O9FxLrY$Fi)9%dtGN7CsZAiMY?pvjhvBhBZEsq3 zUI?j=*I%Y{`oFNvw}zhqYCCur{t513;1 zK{+a23mBxTC9V-ADTyViR>?)FK#IZ0z|cb1z(m)`FvQ5v%E-XV$WYtBz{nC}Q!>*kacfvOH}yGCg9gZk;<9wBq{QM>-O{2=hP2F_R4aXb{gT`Q{oKU#%;aoc cx0H}HM@!Sn-6z}1fO;4_UHx3vIVCg!0EG18Q2+n{ diff --git a/drawable/ic_send_attachment_away.svg b/drawable/ic_send_attachment_away.svg deleted file mode 100644 index cd43bbefe..000000000 --- a/drawable/ic_send_attachment_away.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_attachment_dnd.svg b/drawable/ic_send_attachment_dnd.svg deleted file mode 100644 index b6a51c163..000000000 --- a/drawable/ic_send_attachment_dnd.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_attachment_offline.svg b/drawable/ic_send_attachment_offline.svg deleted file mode 100644 index bcf8abed1..000000000 --- a/drawable/ic_send_attachment_offline.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_attachment_offline_white.svg b/drawable/ic_send_attachment_offline_white.svg deleted file mode 100644 index 2df228a09..000000000 --- a/drawable/ic_send_attachment_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_attachment_online.svg b/drawable/ic_send_attachment_online.svg deleted file mode 100644 index 2c3c9134f..000000000 --- a/drawable/ic_send_attachment_online.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_cancel_away.svg b/drawable/ic_send_cancel_away.svg deleted file mode 100644 index 510edc324..000000000 --- a/drawable/ic_send_cancel_away.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_cancel_dnd.svg b/drawable/ic_send_cancel_dnd.svg deleted file mode 100644 index 0e70479e3..000000000 --- a/drawable/ic_send_cancel_dnd.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_cancel_offline.svg b/drawable/ic_send_cancel_offline.svg deleted file mode 100644 index c247af3a6..000000000 --- a/drawable/ic_send_cancel_offline.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_cancel_offline_white.svg b/drawable/ic_send_cancel_offline_white.svg deleted file mode 100644 index 6d847d700..000000000 --- a/drawable/ic_send_cancel_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_cancel_online.svg b/drawable/ic_send_cancel_online.svg deleted file mode 100644 index 291dcfa77..000000000 --- a/drawable/ic_send_cancel_online.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_location_away.svg b/drawable/ic_send_location_away.svg deleted file mode 100644 index c92ed2f31..000000000 --- a/drawable/ic_send_location_away.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_location_dnd.svg b/drawable/ic_send_location_dnd.svg deleted file mode 100644 index 354604776..000000000 --- a/drawable/ic_send_location_dnd.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_location_offline.svg b/drawable/ic_send_location_offline.svg deleted file mode 100644 index f7826cf94..000000000 --- a/drawable/ic_send_location_offline.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_location_offline_white.svg b/drawable/ic_send_location_offline_white.svg deleted file mode 100644 index f990af9ff..000000000 --- a/drawable/ic_send_location_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_location_online.svg b/drawable/ic_send_location_online.svg deleted file mode 100644 index 4faecf099..000000000 --- a/drawable/ic_send_location_online.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_photo_away.svg b/drawable/ic_send_photo_away.svg deleted file mode 100644 index b1a34fa0f..000000000 --- a/drawable/ic_send_photo_away.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/drawable/ic_send_photo_dnd.svg b/drawable/ic_send_photo_dnd.svg deleted file mode 100644 index dc4fe32bc..000000000 --- a/drawable/ic_send_photo_dnd.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/drawable/ic_send_photo_offline.svg b/drawable/ic_send_photo_offline.svg deleted file mode 100644 index f5769ac04..000000000 --- a/drawable/ic_send_photo_offline.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - diff --git a/drawable/ic_send_photo_offline_white.svg b/drawable/ic_send_photo_offline_white.svg deleted file mode 100644 index 7588164ce..000000000 --- a/drawable/ic_send_photo_offline_white.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - diff --git a/drawable/ic_send_photo_online.svg b/drawable/ic_send_photo_online.svg deleted file mode 100644 index a43cfd232..000000000 --- a/drawable/ic_send_photo_online.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/drawable/ic_send_picture_away.svg b/drawable/ic_send_picture_away.svg deleted file mode 100644 index 0cc1b450e..000000000 --- a/drawable/ic_send_picture_away.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_picture_dnd.svg b/drawable/ic_send_picture_dnd.svg deleted file mode 100644 index a2ebab5ca..000000000 --- a/drawable/ic_send_picture_dnd.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_picture_offline.svg b/drawable/ic_send_picture_offline.svg deleted file mode 100644 index 2c5727dfe..000000000 --- a/drawable/ic_send_picture_offline.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_picture_offline_white.svg b/drawable/ic_send_picture_offline_white.svg deleted file mode 100644 index d043c2d15..000000000 --- a/drawable/ic_send_picture_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_picture_online.svg b/drawable/ic_send_picture_online.svg deleted file mode 100644 index 94aace022..000000000 --- a/drawable/ic_send_picture_online.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_text_away.svg b/drawable/ic_send_text_away.svg deleted file mode 100644 index 266c484ac..000000000 --- a/drawable/ic_send_text_away.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - diff --git a/drawable/ic_send_text_dnd.svg b/drawable/ic_send_text_dnd.svg deleted file mode 100644 index 471fe78bc..000000000 --- a/drawable/ic_send_text_dnd.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - diff --git a/drawable/ic_send_text_offline.svg b/drawable/ic_send_text_offline.svg deleted file mode 100644 index efdea008b..000000000 --- a/drawable/ic_send_text_offline.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - diff --git a/drawable/ic_send_text_offline_white.svg b/drawable/ic_send_text_offline_white.svg deleted file mode 100644 index 4d7dd5470..000000000 --- a/drawable/ic_send_text_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_text_online.svg b/drawable/ic_send_text_online.svg deleted file mode 100644 index ebd007b85..000000000 --- a/drawable/ic_send_text_online.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_videocam_away.svg b/drawable/ic_send_videocam_away.svg deleted file mode 100644 index ceb472e73..000000000 --- a/drawable/ic_send_videocam_away.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_videocam_dnd.svg b/drawable/ic_send_videocam_dnd.svg deleted file mode 100644 index 6681b854d..000000000 --- a/drawable/ic_send_videocam_dnd.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_videocam_offline.svg b/drawable/ic_send_videocam_offline.svg deleted file mode 100644 index a0c820532..000000000 --- a/drawable/ic_send_videocam_offline.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_videocam_offline_white.svg b/drawable/ic_send_videocam_offline_white.svg deleted file mode 100644 index af282b7f6..000000000 --- a/drawable/ic_send_videocam_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_videocam_online.svg b/drawable/ic_send_videocam_online.svg deleted file mode 100644 index aa8d5d82e..000000000 --- a/drawable/ic_send_videocam_online.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_voice_away.svg b/drawable/ic_send_voice_away.svg deleted file mode 100644 index 61039bb82..000000000 --- a/drawable/ic_send_voice_away.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_voice_dnd.svg b/drawable/ic_send_voice_dnd.svg deleted file mode 100644 index 2f95543b1..000000000 --- a/drawable/ic_send_voice_dnd.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_voice_offline.svg b/drawable/ic_send_voice_offline.svg deleted file mode 100644 index f0d1ff12b..000000000 --- a/drawable/ic_send_voice_offline.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_voice_offline_white.svg b/drawable/ic_send_voice_offline_white.svg deleted file mode 100644 index 6b5dc1348..000000000 --- a/drawable/ic_send_voice_offline_white.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/drawable/ic_send_voice_online.svg b/drawable/ic_send_voice_online.svg deleted file mode 100644 index 3c99c1e5f..000000000 --- a/drawable/ic_send_voice_online.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/drawable/ic_settings_black_24dp.png b/drawable/ic_settings_black_24dp.png deleted file mode 100644 index c59419c02b6273e09063a0529d2239784818207f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmV-I0lof-P)J%}fHzV<>iUk{yCv=|P(yFM9CIKrv6;vdj!^e)OQ=oM~3L z3Hov zYMc*TMS6^4Y*s#v8YK}AT(ig&XB4{J=afm7xZ$2C{CQWp)PoCx)G7YcXPY7T1DnU) UWG_v5V*mgE07*qoM6N<$f<$+V!T}LHt|k$e;k-cn>_6q;Imj$*7PJ!3cpZp)p!hlgwQblehymgs zI5bQKVrC?@%uq3G0AxlCu3$0;;zw9q&WuGZGZvqK^qLV$NmXc?dhn?2MN?ZzOj4zt z1<)XROk@zT0PzhhL1d20@K_-JNn|9044*<$BomoTd!hIS0kzGv%xF)6mir9mHGMkyu=xq;-X}l$sWlW3ixYWHcB6yQT`5 T-H0qR00000NkvXXu0mjfqF8*a diff --git a/drawable/ic_share_black_24dp.png b/drawable/ic_share_black_24dp.png deleted file mode 100644 index d4ebebd0635b58eb53c44c080748ae4107acdd49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3Hqr# z^)4=Qlr26Qu=sYzE)~bw3Keg~-=vw$Ptc$E|D5WLgChD8>gU8QCxuk>1no)I%b2(K ziF3?jZLbXn4o+~Zy}h+?QRSR%-Iv2Hg_h)OFFF=-!JgZ9(a+@%W;mYM_)?*1x69dx z4Np8dJKYY+N$uDFSs`tH_xRMUzV8dS@Gj!wzsCQTDLvwtMR>yc)$5hMUM!usfkUmr zTfpXfchS1ff}Ca-rz$nfc6qmLic3rFnGYh5LmIb#+WvvLaZlj4?;odq0fvNXiEBhj zN@7W>RdP`(kYX@0FtpG$G|)9L4l%T}GBUI>Hq#kdoSCL*=I9;(X Q2dIa^)78&qol`;+0I)F76#xJL diff --git a/drawable/ic_share_white_24dp.png b/drawable/ic_share_white_24dp.png deleted file mode 100644 index 58cd61e17f36235c7527c7d3aa8632c18fbe294f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p7#3oIO#$ZaUfwJ0f9poz#epqXZ;q}+<4tY^g%Db0a}QuDWvF`JormG@i! z>Uj@+3d(O!`8UX7;^AVDkpYuW=`!F2z>$C=&j8p-AVrr8-kY}yThf&>_$NM}09kuvBw*i6vy zfGrLA@s(NN$s7Hjo@&o@)Rs*?I4O1)~6HGN3ZR g!a_@K`d`1s3m-$Qe>`(&8UO$Q07*qoM6N<$f?5!Exc~qF diff --git a/drawable/ic_speaker_notes_off_white_24dp.png b/drawable/ic_speaker_notes_off_white_24dp.png deleted file mode 100644 index 2378a9f051b3786fabd8f9b64b601e7a7afd9101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i37#&FAr*{sFS;`_8H%(#ym(-u zwky|B?uriMJprx(ZGKhHTK{j`{qvGo{Sn9e1;=HNGlb`qKl;OcVs9^l;>?Vu{5=zF zDi$4_S~KzGY=xCfHipdpGeX(kd0*k${+`?4$00|Dy<&FVdQ&MBb@0MwsO A9smFU diff --git a/drawable/ic_speaker_notes_white_24dp.png b/drawable/ic_speaker_notes_white_24dp.png deleted file mode 100644 index fc41de624e915cc7eea1a932013d228787a89719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1Ur!gu5R22v2@AM?$p85NwBG5# z)%yAtwnL{JAE-JpPi!dSH85+FU%4!?!m9I@REGRzmIK_EO!oYE-@R^O;}0H}Sw$P# h*e-3#U_PwC#85g{F^%1c?ujP)wy>Q~O4(cG+o4>KCu6T+^BCOrw^!GuQE#HdwSrIsaKw_?-sW8HhPsQ^&e^6HMX(vec#v}05LvoCpRlKN)&1ls@r N002ovPDHLkV1jAvcYy!^ diff --git a/drawable/ic_star_white_24dp.png b/drawable/ic_star_white_24dp.png deleted file mode 100644 index d2cbe4c92baf6023c039159b6e01be017696fb6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)uvNGQX>sqmLdrH2qH8~<3YN()zIR{kRWh!ao3KJwpuzm z_~~&T)Or8wn(}$1e?o(X{(=YYRUAhId{R+S+z{!h7!G(LvY@0Q=#XeD4>mQLxJ*er z<8nd`TR+joCm>INPge;nZuw0gOW$!#h{+dM+Qlg!WO=8hY}D~dTjI!!F=>y=!z*b^ znQ=^(s!TX17UJO%5<8O#BO((VZBXZl$WSKCS#g1-Ei5j1W2S7_++iz)Lk5(!&(?(s VPEG8{S6~1D002ovPDHLkV1nDAZGr#* diff --git a/drawable/ic_unarchive_white_24dp.png b/drawable/ic_unarchive_white_24dp.png deleted file mode 100644 index 0480fea9822faee0c7841ed21c645e86fad13d4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)d9*8#su>%Fz5s1$K@jH;2#9FQf#CM?%NTARG zAe;ikAA$G|$ZTR9um*_#{ii+vnYoG>2mJg`JMfbj2hbFZI)K^^cn-w_;(+H!S?xK! z9RRY>14)kuv5ugI1HeAVqK~MMpws~ndyNkl|Gy{@uK?oDK>V9R`~`^D0kI^q1)Kg;AM8W6;3Ewz_={}8X99{J0P$Tk{D6=R zq*x$`CEf%_Eg0GsoB`t1NSGUo1>9(A&X8ikQy^9+p(Id;>LDqJo&&Ka5r%6*)shtl zFMwDZkKx)-H55hiOCZ+8Vz@3;jw-3>6%gwosn>&wQ7xH*z-u5jfa2H0ly;MZ=!~u{C6;q5LW{+3pE=ChCqB4h%W)L1;bzg0C8vgOu&(+m;e9(07*qoM6N<$f(0pb AWB>pF diff --git a/drawable/ic_verified_fingerprint.png b/drawable/ic_verified_fingerprint.png deleted file mode 100644 index a1d188ddb82c57408e2bc1ddecac78fe4791ead0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)Px%Ur9tkR9J=O*sqV`Koke?@0;ZW#cfas(liyAGw9W*6Z{b*b!h$sH0II-eY)Zl z8jU%#f;1aMRmGZ}u4vyov9}i%rnL0Ok?cJ=eeHZ0W~TEBe8#YSdu03esEKD$otqus zc~DSOQq%_kVTlMRj5Y#Rdrq{tG;@U;C5bnE#4Kny-G_)s>#RS<&@2`9^hlVw>{YoK>b znA1Kkg233F zHknYh{w6~oxgZT~Og=?b#=P}W?tu0l?%JJ^n9t9`q8Yq=#cNyzBP84XY`->L>*U>} zGad9)&j=z#mSVN&q8nFPO*+#--nHCiA9+y>#wPDNDYB|ynE7G_a&aGe!Al^JQsqmT z5J;RL$^DUqpva3fGp_`4Rk4?Y(agLmDjW-U>d*@hDW|2*GM6IdbQOAG;UVp=%)_34 zKF9ap?hhb*CD4~^AOg`~d=I_wSDE~)YJ10bhDxb9p4gUGOAB$_}-Kd)T<9 z*H`c`o;)f%yHL1r#~b!5N|PGQ1oGRS{n#I{%}n*_BomRxtPHOUX9nh_{mch?jKR~@ K&t;ucLK6V{;$YJN diff --git a/drawable/ic_verified_user_white_18dp.png b/drawable/ic_verified_user_white_18dp.png deleted file mode 100644 index 10ccdca7bfeed5628b9b9c0ffca7d4a16446c3be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmV+p0rCEcP)4CDf!W;Gz53dCQa7{pd1#Q+B&-U!5h|6_u`P&o&D1_S`{x&OoiklFxj z1|9fMIygXyLC>gR&^#dK0^;M87z8qe35Y#__&Yv>_9AI|PJ|&Kum_t#%b}9Tq0XOA zzz`5vj?JJlsN{F3CXnU?JcfWkDK>-DkraRpgNoxa^CrL$={d-C98W zgNS4RGF+2TUIT^8KRkwj3VxQRGi1`)FArIM*ypn6c>nW&P@rmtf&-S1c4L3e{p zier?5>cX;_+?SZrg;w#;0*XyNA=pu0c||(;)^VoGOLk3gnRES-GB?oD2bRh^cDO&y S{?pUt? diff --git a/drawable/ic_videocam_black_24dp.png b/drawable/ic_videocam_black_24dp.png deleted file mode 100644 index 0722a69290367ad1e31ad9a158b9eef749de7980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1H%}MGkP60R1;(DH$vpoH4+sZ{ za;=d1_qZ+KDSyW`hR}cWGk67_s$?)|s{0A3~!2V6Io`n((;pn-QM6E zMQTy$Q~nCEBzC^@XO^R0E zB@$rzfKlM-fB6Xu7?;Q_nyA4m@N`K=MMHs9q13<2G0Z3Zl&)S@Vb}iFVci(~H*k$- dvd9Bg24TD2RUWTqYyg_d;OXk;vd$@?2>^H7D%Jo1 diff --git a/drawable/ic_voicemail_white_24dp.png b/drawable/ic_voicemail_white_24dp.png deleted file mode 100644 index e5aa7db0557bf06ee521c54d2b92e2dbbf402e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iC7v#hAr`0Kp7+jTa+Gj=$h~XA z0zp@Cp$TgOj!wMrV3$;ELx13#^Nt=t2SXmI7@z+zM?Np~(*wVrHE(0ztl{~u6F0ZE z(CB>r(G!x=$+p70eQYbmvva!KO(N7*idOe<+q%wP5*BkoyF@VA~UEv`kM<9e}OA1x`895eU-<$BM{Ws~WOz9-RtP5diu}lVu zGm3I0|&xc5oDx=D`6cg!s}R&$h2#Fm=V6}KqA%> z_^t!JL||2TsRLC;c7;>L4kbWFnmRTaPmBy31VVVUtS8*6&xs9C d>1vzQegTRRkWq31_4xn*002ovPDHLkV1fXya%KPk diff --git a/drawable/ic_volume_up_black_24dp.png b/drawable/ic_volume_up_black_24dp.png deleted file mode 100644 index 4ed27786a14065d9c6593b522ed2b0f99e580138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmVSZ-ns}-Ox1blNm2bV#qBV-0>fz>GiJ>};*0p%m)yCHw led{*W=WWm_b7I@y=L_YThWS09+57+i002ovPDHLkV1jr0XO#c| diff --git a/drawable/ic_vpn_key_white_24dp.png b/drawable/ic_vpn_key_white_24dp.png deleted file mode 100644 index 21ba92179029d09a285e232a1fbd3ef84560562b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i37#&FAr*{o&s*{xG7xZkxN-yk z1lOdUinD9(boFyt=akR{0KAJ$ Ax&QzG diff --git a/drawable/ic_warning_white_24dp.png b/drawable/ic_warning_white_24dp.png deleted file mode 100644 index 28f95e0756a6225478616c805e70ae4d13c99361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i1D-C9Ar`0CUS7+4$U&mvq4(sj zRaylKj?HbXyBK&FxDPOFfKUbu85a}|Hm+KgacK|7uj1TapG{v@KRfb0#;%wv^!C+ym;GAz6TT7k4-T>#nfD_xg&AOK^x-^6Q7vgUi30jW7A}{(JfC0RLh+CcO=75^ngZKl6m)_Mj_wyHnbY@Kdom|q>Q!N! zuKrSPN6~>vYs7*aW;d*1iZVJdZ%>)ffeC*S0>n4$oFpH!;WcA$*Q_gyHuprn9=gna zO{M$)$*^4x(>I6+T)N2I7r@of%(q~H3B#+)ak5d297i1l-t1R+#Vl%>6z}j+pLI=# z1bas^mq5_tiscN7s(qFW9-Ya23_*`0*gblaWfe^ON*k_NTw??Z%;)iFP3C6^dU%7m zA;jVv1F{^uN8{r)*^ekp6x00ZyC8Qbxrq8qfR%h9ZNftDnm{r-UW| DcZiV2 diff --git a/drawable/ic_wear_reply.png b/drawable/ic_wear_reply.png deleted file mode 100644 index 6fa6a03c9c2926bfd44d163dfb737fea72e191d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sfLl!|U4k0VKE^VODR!i@oW*0`;4~p2a%WQuOLJaO z_k-IT*)OJ6=5C*SP2tSYT&I!p(wzK@xKx zJytbZn8(_F#iRCn@Ua4}wkLZ&Y}|i9s$r^|;7^~32a`lP4EopIIAS3Bsf644OC^K8 zdn6BY^~SG252%*7MwFx^mZVxG7o`Fz1|tJQb6o=yT|@H_LnA8#V=F@gZ37^~;7>qB f0g8s){FKbJO57THc@LZcYGCkm^>bP0l+XkK(e{+? diff --git a/drawable/ic_web_grey600_48.png b/drawable/ic_web_grey600_48.png deleted file mode 100644 index 0aa17eabfe81d46a7c21059bb60ddbca82570acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jB-nS1Zd zxvA8@zc38bwry99F>S|j2Czf=jB)K{vg^7zkbA%${uu>!1pd#AagCf;$unR9zXp2( z9O0i_@TWlk>jG@v z!veot0h{`XCaOUnH4*=nn=wj23ytd87|R-CC!xxikSLZqg@j`o#LZhF#fwN#d+CBQ rj-y| diff --git a/drawable/intro_account_details_icon.png b/drawable/intro_account_details_icon.png deleted file mode 100644 index 3b2fd3f10ab7e0140f8bea9fc8b84a58b297cc2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmV-$1CRWPP)Uj9Rvq)aBv9drgpJK7jbZl=wcKU zG)t+2S>sns5ijO0-{h#lk81osa6wxWo9mtT-o^h9{#+5lz4yy|&pq#Zv7>_!LI@#* z5JCtcgb+dqA+1xZ)fVM)x!uS<714ElPcoV8Z7ZpfNTf5L&%eY4))eI(&cBLMDV0(w zl~O5{Qax;`Lb$No*=+Wyia_X{N~O}@j=gHHrfG{+M9wX}GFJ?QG$fHo^q}^Ppaz}7 z@d|Pi8AUBTgY1&qh?Z<%n&tq+JwiSq-{(9ze;`$4GLy*+(N+s!HXej9y~WmK8aW|P zbDC>Hu~^)W+r4VD=lfhLmG;wK10ZGyLZ=qkOi$ypTiE>10Vg_Z)yoA9R32pEa5zM% zv!%XpIMBD!R8y)&I-MSHGE3`S0lI-3^?buZ)6fQT|K$*9dLT=&nJ+#=owqCc{vqt0bcsI@cU1}e0<#WjUd1PiW zvoFcQf!12DvCAOtB9caC>cIo80O40n(;ReIZbH(ps)+KfN~_kc#*Ewu(QDkOopMq5 zVxqDDP!UXy$DZ`5Uc&eOluD_TN~x4eseX_ut&{9B$;r?<9Y#Moioc&>08`ehXz5X_ z__q%@P9WpR@p8F5Y#7E;e4eYS-*%_ALf8cy@8kFy$1gU&^>0W@ma7mRmS3;@cfSL$ zHi-Km?+}jv>K6P6!6#Fx)N;@EE>(fsbe;SzO5S{WRJ$~s?*>*co7-`AcFX%CC;O!? zylOe$Hve}?)3kos??k>TeA=$D2Z+t3M782`&cn{or%I1>>4PAH9~l*@O^62qA;)bcIscqS8_5{N2bUGb@U&EuNFp|k+uJXF$INN!@sI3fi6QJDzw66%K z;o=JBbqBu7=R|LjhKGlnT-QAdnBOXZT+S(!>T`hGB$`k%nG6HU5TMMg5op548VVC1hj0%7qPMfL&iJc-!%qWHskHE4l3Hv zF^_p;VvYlG+z|sIKew7%r(jHngeTCZVEcT(hD2pGIa2hM*RZ z-WeN8>TdXlA*er@o-M0WQA1Fp)~r^QW>vEux23b_6x%~K37H=B80w&n>#6&Z@vKKc zbE#D7K*&Z-PEH=L^+*66Qvp5}vRS!Y?s65|(N(WXajiCFyVyIU#2x~S%sNYG4nC;E z75|S2_5jKg!dWHI@7$5a^Ls^c8BI(~w3ZfKDm4ilk`18wXce_8l}skLmO8Rdl)~#= z7iGxb`FCCyB}tMbNs^?6v#O1;Sge^xAn|jH>$+PoR^6G;=MQ5DbqYhM4ju|-$lu{3 zyw3Z0KcD0CjK^w-oB;vMc>ubN@F~JK7>kZ`g=rOsE#^x1kMnuPgLoO=1pwd26WW2E z-zO4@7G!o8z}+iNElq4s=MmoL6qxA;VqJilK*l&LdH{bkc-&{H<3FF^M<~H38xk(t zH*RGh6YqV3Sjl7D(gED&h5*XW1*P+O4cAD$@(h}z7kJmB^}GNQ#()2Yk5zolO#|TG zs=KdRxcr8fd+EVP5vI;t@x5Qw%`zgY`wqO&=SGCN#D?J)=EwIckCz##;dfAedmdm% zd^^(40lW`qO^p~MmtJ3HXGpkhy_002ovPDHLkV1jw0!TJCI diff --git a/drawable/intro_contacts_icon.png b/drawable/intro_contacts_icon.png deleted file mode 100644 index 493ffa0feacad960861a465a992d7c8ad1d9e08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 984 zcmV;}11J26P)6c6y$DM0QhGO_-ULzXsnvg>e}D%;4fI&_(pwHH=&jm74pvAm z9s<=0F(&RNo39OcDdfZFl_^$tO_SYCHrYNeJZ!qz*_ruuGW))hnMo+*&bDUpp%N;g5-On%G}L0T_y(El0oL2TLoJm`7xCYm4yvSnAsUTFqtR$IZ>?Ib zPQW(}!+(pw<=9Zpf1su68PRn;oKB}FypEn`0W^V3c7q&6wTZ5z-U(>NE1+|@Y34A( z{8wmL!eP!8&{nH;1ULFfpnqvgxVQ;L7YWfS^s$RhTj^2UAWn$3iVL5vq1I}(Gf2Em zfVSEeK29D`Q_xoew3Tp~B2!>E-UT_2_dgSA zcM;6%d_I4^UHRmFxsFgf)ALT<6}b+TTO-u=%9YFIQ{9wPu1C5bglZpG?`oPh?{Iu# zUeXh)RY`oD$DBY-rBY*(o=~kVbsbPg9EQ{*cxbH?s#Ot}LzK@5)v8seLu!%^F4iic zS`~FP@&k)TqcWlvB~+_+vf1o$hb?tn(i5sxO+0MwIvh;DC+P{*-UFzjZ@kh?Ipun! zt$02AeySH`28jH2(HsI&fUQA8gv!z z)MYu!-*O&WR@c3P`t4#3E>s250F)=$YAHTdA5-dcx!hUgx!HrRVPK%j$NV8;_LKcwtDtGx3FP|#GJ*!R z4w!fRTnK`0;kJ|`5KxhM6F^s7P3iW)B!84=B`8q8Ihr8b12au?(xXKozJL7V(yt8y zR4Io?Q||qRik9)-=@)uE=mN%3o_B;wsDw(WL;RqM$+U8*kl&J!SVdSv54C~ diff --git a/drawable/intro_location_icon.png b/drawable/intro_location_icon.png deleted file mode 100644 index 3c67dea97a26b791fa825a46a1f6cf73c927abd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 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 Y7m&y{X1jC7e*gdg07*qoM6N<$g8uOCDF6Tf diff --git a/drawable/intro_start_chat_icon.png b/drawable/intro_start_chat_icon.png deleted file mode 100644 index 09356f98d971bdd196b0b0222300cb8783640440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)3R1igvXv-PA$k3tdr0E!}tP!RMcc+iiapTLs`bLdF~QHgkHkp|R5 z)f#EgMDlOVZXzgBH9jLNS}IC*C&_H~_rSy4W~aYS-uIoIoylYnLI@#*5JCtcgb;FG zzV9EX*XuXrNAg^nT&vaYtG!;SRHlo?;eK+O$(=M?9KNVskoUy`n$PD))yciI z1O3yDM&qs8smM?@<#(!+C19@ce5cb{7YV9>Zk3+`ajiAsPDh@tf_e#vfAwR{){#h1 zv)Sy3I=Cr+1>`EfYPDKBBG1-xxjdm6y8y^lek1RSRS77D>`_^<2+ZG5HPLp*u34+q z>S2NX08ooi!^OZ!b@(ynfJ}UTra?Vae@<9q$*HXk1gfdeJkPrjGjYuZL9o44Dvh~f z{as^b^(as)eTN!`fz4q>5Ov8nd>fM1s4dd&i zI$i{-Whpl9)dPH>T9y*m@h&TZ%Ps=V<#HP|w&zYjRpwl;hg|6b>au(=@|&I>$m9rx zvuhgHcPF5RKbxZz|3C#QP=N|mpaS)uZpbek@@x5XVxg)YoHLt>W{<}uYo&KAu~0Rb zi>@wHHMS>-gv#0fI}Y6LH+g3{{z8@Wz&cHTB7);_y;OblXT+me^Qxrh_k7dWzHh$ zL7zB9Z9fFuP774e^G@|^d-sTiBbLK`Gex)3gGLow&7}(~Lk#p?tUFXb2 z-S!g%!Q?=`@-ROQWybvq2j}ElCa7yr^GUSE|MOldwbRXJb6W->gb+dqA%qY@2%*I2 Y2Rj+^ofzo^1ONa407*qoM6N<$f_4UYd;kCd diff --git a/drawable/intro_xmpp_icon.png b/drawable/intro_xmpp_icon.png deleted file mode 100644 index 635cf19635e013e50e2f771655ccea09e2beb703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1623 zcmV-d2B`UoP)Tk6e&^E~n){C)&U72%+7U|?W|wsO352^9QVs4!14 zeKEpe$XXD5X)TjU_G2_Yp*-@W^2nln$8*0CKPGN}5s3R?GQ~wCg~oQ_olXpws`uc3 zJreQ=fJ+`bYo#E((KQ1F2UssDK}$W20y;O|}4=E2G%A19B*Z{k88c>&pBYycLf z4F(Ms4i%R?7_z1k9t@AVcxY&70qtUxN5*aY1bNQbAP{jkg8}&-Oa!k9l2o+2nnsSH zM-~-0+hSvb`uqD^pyY2ZW0X7_B&pOMv;7%(f3uZQ_{#e^je_TF4A@gQGLyQG<4eE9 zY}A&3J++(JDK>E!wFGjC(Wvdl+Yy6pAx7GEMpB7~B^<-&S|~cfXxMIawkaS|n?UMr zM%zz-k2x$~8_GUoH0i3X(isl#wW4HPh1gKo_Rt8eXF)u&q`#cp6hiAgzV+@{p$S8YW9;q!% z`_p4a$0mmR)^;>_njz%7*{7jDpCPm!LqG2eG=q*tx7m6E7QT0Vnxfug7)fsjek>7- z#jZ!=e^?rRhV(EWm&}9iGnRJsd!9G1BIiA5cqxp?RXmmUe=pr+>7}_;D%DoegEVyF zHJeBa@Bc^(3x_RqQbGD`LTJ4IYQ;|{vE{f7#{6VC-0o-E@V8rf>Cvh={Y7Wy!k}L) zNTo1vwv7#$OlCH1)GY}8*|$*CB80sYhK*PxSzfT5hMu<|G>!M~aH?1AF3p`mw<_y=OXpY_@(ER`IE?^RO4OwpeSNR-Ea~m4 z>L|%Cs0xx^+nj8{a6gK9_iCq+5sgN#R5h?E%Vf6;GB+Dt8mm`;l-pIw=6Ov*>G=VA zUs#+Z+XQ)0BX4ku%Fn49McA8s0c%kUSh?OxA?kX+>IZ5bstkTFrQ7B@=&G(9JxpXlR+e!EDGqYK z!Y*JPwNsY_Qhh%y^P=QO3ax#m7Y65bp^$AVqsdWZaZg6>~XWIri$8a$9s!{ zx^LhslF8)qa_U6kT{%jWKwiOq^R800094kg4jVT^elI70pcEwDxwoE4&8e+Z6h!WU zEHe!&Rq5n1==z-WsiTryqmW7q4SD0obVD1mT-{6JiqVPOIkXd?^CytFQ=PJo*A=Ol z!)DP{8FX|(P?ypQLH}U_wI7K@+D1l3X34%wAP@)y0)apv5C{YUfj}S-2n2PDe*jFj VG~e*$l6C+9002ovPDHLkV1m;>{igr` diff --git a/drawable/logo_800.png b/drawable/logo_800.png deleted file mode 100644 index 05a1d575a4930d849b7e3a9d9cc2123b7f46be11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12367 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 diff --git a/drawable/logo_actionbar.png b/drawable/logo_actionbar.png deleted file mode 100644 index af2b15416ec994392ed63e1485cd9c20fb8250c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10192 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 \ No newline at end of file diff --git a/drawable/pencil_overlay.png b/drawable/pencil_overlay.png deleted file mode 100644 index daedd4d9f1117332da6a47d020eb30632b1e2b91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1873 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 diff --git a/git/release/output-metadata.json b/git/release/output-metadata.json deleted file mode 100644 index 9451eaa0f..000000000 --- a/git/release/output-metadata.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": 3, - "artifactType": { - "type": "APK", - "kind": "Directory" - }, - "applicationId": "de.monocles.chat", - "variantName": "gitRelease", - "elements": [ - { - "type": "UNIVERSAL", - "filters": [], - "attributes": [], - "versionCode": 174, - "versionName": "1.7.11", - "outputFile": "monocles chat-1.7.11-git-universal-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "arm64-v8a" - } - ], - "attributes": [], - "versionCode": 17404, - "versionName": "1.7.11", - "outputFile": "monocles chat-1.7.11-git-arm64-v8a-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "x86" - } - ], - "attributes": [], - "versionCode": 17402, - "versionName": "1.7.11", - "outputFile": "monocles chat-1.7.11-git-x86-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "armeabi-v7a" - } - ], - "attributes": [], - "versionCode": 17401, - "versionName": "1.7.11", - "outputFile": "monocles chat-1.7.11-git-armeabi-v7a-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "x86_64" - } - ], - "attributes": [], - "versionCode": 17403, - "versionName": "1.7.11", - "outputFile": "monocles chat-1.7.11-git-x86_64-release.apk" - } - ], - "elementType": "File", - "baselineProfiles": [ - { - "minApi": 28, - "maxApi": 30, - "baselineProfiles": [ - "baselineProfiles/1/monocles chat-1.7.11-git-universal-release.dm", - "baselineProfiles/1/monocles chat-1.7.11-git-arm64-v8a-release.dm", - "baselineProfiles/1/monocles chat-1.7.11-git-x86-release.dm", - "baselineProfiles/1/monocles chat-1.7.11-git-armeabi-v7a-release.dm", - "baselineProfiles/1/monocles chat-1.7.11-git-x86_64-release.dm" - ] - }, - { - "minApi": 31, - "maxApi": 2147483647, - "baselineProfiles": [ - "baselineProfiles/0/monocles chat-1.7.11-git-universal-release.dm", - "baselineProfiles/0/monocles chat-1.7.11-git-arm64-v8a-release.dm", - "baselineProfiles/0/monocles chat-1.7.11-git-x86-release.dm", - "baselineProfiles/0/monocles chat-1.7.11-git-armeabi-v7a-release.dm", - "baselineProfiles/0/monocles chat-1.7.11-git-x86_64-release.dm" - ] - } - ], - "minSdkVersionForDexing": 23 -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index cd8a7cb3c..af22f6954 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,22 +1,6 @@ - -## For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx1024m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -# -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -#Sat Jan 22 19:25:52 CET 2022 -org.gradle.parallel=true -org.gradle.jvmargs=-Xmx6144m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -android.enableJetifier=true android.useAndroidX=true -org.gradle.gradle-args=--max-workers=32 +android.enableJetifier=true android.nonTransitiveRClass=true android.nonFinalResIds=false -org.gradle.daemon=false \ No newline at end of file +org.gradle.jvmargs=-Xmx4096m +org.gradle.daemon=false diff --git a/gradlew b/gradlew index 4f906e0c8..1aa94a426 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,99 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +119,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,88 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index ac1b06f93..7101f8e46 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/libs/AXML/.gitignore b/libs/AXML/.gitignore deleted file mode 100644 index 796b96d1c..000000000 --- a/libs/AXML/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/libs/AXML/build.gradle b/libs/AXML/build.gradle deleted file mode 100644 index e2a71a2c2..000000000 --- a/libs/AXML/build.gradle +++ /dev/null @@ -1,31 +0,0 @@ -apply plugin: 'java' - -group = 'fr.xgouchet' - - -dependencies { - // TODO UNIT TESTS -} - -// Additional tasks for jitpack.io - -// build a jar with source files -task sourcesJar(type: Jar) { - from sourceSets.main.java.srcDirs - archiveClassifier.set("sources") -} - -// build a jar with javadoc -task javadocJar(type: Jar, dependsOn: javadoc) { - archiveClassifier.set("javadoc") - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar -} -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} \ No newline at end of file diff --git a/libs/AXML/proguard-rules.pro b/libs/AXML/proguard-rules.pro deleted file mode 100644 index 1ecf581f6..000000000 --- a/libs/AXML/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /opt/android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/libs/AXML/src/main/java/fr/xgouchet/axml/Attribute.java b/libs/AXML/src/main/java/fr/xgouchet/axml/Attribute.java deleted file mode 100644 index 67fdf2b09..000000000 --- a/libs/AXML/src/main/java/fr/xgouchet/axml/Attribute.java +++ /dev/null @@ -1,66 +0,0 @@ -package fr.xgouchet.axml; - -public class Attribute { - - /** - * @return the name - */ - public String getName() { - return mName; - } - - /** - * @return the prefix - */ - public String getPrefix() { - return mPrefix; - } - - /** - * @return the namespace - */ - public String getNamespace() { - return mNamespace; - } - - /** - * @return the value - */ - public String getValue() { - return mValue; - } - - /** - * @param name - * the name to set - */ - public void setName(final String name) { - mName = name; - } - - /** - * @param prefix - * the prefix to set - */ - public void setPrefix(final String prefix) { - mPrefix = prefix; - } - - /** - * @param namespace - * the namespace to set - */ - public void setNamespace(final String namespace) { - mNamespace = namespace; - } - - /** - * @param value - * the value to set - */ - public void setValue(final String value) { - mValue = value; - } - - private String mName, mPrefix, mNamespace, mValue; -} \ No newline at end of file diff --git a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlDomListener.java b/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlDomListener.java deleted file mode 100644 index da2584f1e..000000000 --- a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlDomListener.java +++ /dev/null @@ -1,92 +0,0 @@ -package fr.xgouchet.axml; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -import java.util.Stack; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -public class CompressedXmlDomListener implements CompressedXmlParserListener { - - /** - * @throws ParserConfigurationException if a DocumentBuilder can't be created - */ - public CompressedXmlDomListener() throws ParserConfigurationException { - mBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - mStack = new Stack<>(); - } - - public void startDocument() { - mDocument = mBuilder.newDocument(); - mStack.push(mDocument); - } - - public void endDocument() { - } - - public void startPrefixMapping(String prefix, String uri) { - } - - public void endPrefixMapping(String prefix, String uri) { - } - - public void startElement(final String uri, final String localName, - final String qName, final Attribute[] attrs) { - Element elt; - - // create elt - if (isEmpty(uri)) { - elt = mDocument.createElement(localName); - } else { - elt = mDocument.createElementNS(uri, qName); - } - - // add attrs - for (Attribute attr : attrs) { - if (isEmpty(attr.getNamespace())) { - elt.setAttribute(attr.getName(), attr.getValue()); - } else { - elt.setAttributeNS(attr.getNamespace(), attr.getPrefix() + ':' - + attr.getName(), attr.getValue()); - } - } - - // handle stack - mStack.peek().appendChild(elt); - mStack.push(elt); - } - - public void endElement(String uri, String localName, String qName) { - mStack.pop(); - } - - public void characterData(String data) { - mStack.peek().appendChild(mDocument.createCDATASection(data)); - } - - public void text(String data) { - mStack.peek().appendChild(mDocument.createTextNode(data)); - } - - public void processingInstruction(String target, String data) { - } - - /** - * @return the parsed document - */ - public Document getDocument() { - return mDocument; - } - - private static boolean isEmpty(String text) { - return (text == null) || "".equals(text); - } - - private Stack mStack; - private Document mDocument; - private final DocumentBuilder mBuilder; -} diff --git a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParser.java b/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParser.java deleted file mode 100644 index 5e3c28959..000000000 --- a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParser.java +++ /dev/null @@ -1,515 +0,0 @@ -package fr.xgouchet.axml; - -import org.w3c.dom.Document; - -import java.io.IOException; -import java.io.InputStream; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.ParserConfigurationException; - - -public class CompressedXmlParser { - - public static final String TAG = "CXP"; - - public static final int WORD_START_DOCUMENT = 0x00080003; - - public static final int WORD_STRING_TABLE = 0x001C0001; - public static final int WORD_RES_TABLE = 0x00080180; - - public static final int WORD_START_NS = 0x00100100; - public static final int WORD_END_NS = 0x00100101; - public static final int WORD_START_TAG = 0x00100102; - public static final int WORD_END_TAG = 0x00100103; - public static final int WORD_TEXT = 0x00100104; - public static final int WORD_EOS = 0xFFFFFFFF; - public static final int WORD_SIZE = 4; - - private static final int TYPE_ID_REF = 0x01000008; - private static final int TYPE_ATTR_REF = 0x02000008; - private static final int TYPE_STRING = 0x03000008; - private static final int TYPE_DIMEN = 0x05000008; - private static final int TYPE_FRACTION = 0x06000008; - private static final int TYPE_INT = 0x10000008; - private static final int TYPE_FLOAT = 0x04000008; - - private static final int TYPE_FLAGS = 0x11000008; - private static final int TYPE_BOOL = 0x12000008; - private static final int TYPE_COLOR = 0x1C000008; - private static final int TYPE_COLOR2 = 0x1D000008; - - private static final String[] DIMEN = new String[]{"px", "dp", "sp", - "pt", "in", "mm"}; - - public CompressedXmlParser() { - mNamespaces = new HashMap<>(); - } - - /** - * Parses the xml data in the given file, - * - * @param input the source input to parse - * @param listener the listener for XML events (must not be null) - * @throws IOException if the input can't be read - */ - public void parse(final InputStream input, - final CompressedXmlParserListener listener) throws IOException { - - if (listener == null) { - throw new IllegalArgumentException( - "CompressedXmlParser Listener can' be null"); - } - mListener = listener; - - // TODO is.available may not be accurate !!! - mData = new byte[input.available()]; - input.read(mData); - input.close(); - - // parseCompressedHeader(); - parseCompressedXml(); - - } - - /** - * Parses the xml data in the given file, - * - * @param input the source file to parse - * @return the DOM document object - * @throws IOException if the input can't be read - * @throws ParserConfigurationException if a DocumentBuilder can't be created - */ - public Document parseDOM(final InputStream input) throws IOException, - ParserConfigurationException { - CompressedXmlDomListener dom = new CompressedXmlDomListener(); - - parse(input, dom); - - return dom.getDocument(); - } - - /** - * Each tag starts with a 32 bits word (different for start tag, end tag and - * end doc) - */ - private void parseCompressedXml() { - int word0; - - while (mParserOffset < mData.length) { - word0 = getLEWord(mParserOffset); - switch (word0) { - case WORD_START_DOCUMENT: - parseStartDocument(); - break; - case WORD_STRING_TABLE: - parseStringTable(); - break; - case WORD_RES_TABLE: - parseResourceTable(); - break; - case WORD_START_NS: - parseNamespace(true); - break; - case WORD_END_NS: - parseNamespace(false); - break; - case WORD_START_TAG: - parseStartTag(); - break; - case WORD_END_TAG: - parseEndTag(); - break; - case WORD_TEXT: - parseText(); - break; - case WORD_EOS: - mListener.endDocument(); - break; - default: - mParserOffset += WORD_SIZE; -// Log.w(TAG, "Unknown word 0x" + Integer.toHexString(word0) -// + " @" + mParserOffset); - break; - } - } - - mListener.endDocument(); - } - - /** - * A doc starts with the following 4bytes words : - *

    - *
  • 0th word : 0x00080003
  • - *
  • 1st word : chunk size
  • - *
- */ - private void parseStartDocument() { - mListener.startDocument(); - mParserOffset += (2 * WORD_SIZE); - } - - /** - * the string table starts with the following 4bytes words : - *
    - *
  • 0th word : 0x1c0001
  • - *
  • 1st word : chunk size
  • - *
  • 2nd word : number of string in the string table
  • - *
  • 3rd word : number of styles in the string table
  • - *
  • 4th word : flags - sorted/utf8 flag (0)
  • - *
  • 5th word : Offset to String data
  • - *
  • 6th word : Offset to style data
  • - *
- */ - private void parseStringTable() { - - int chunk = getLEWord(mParserOffset + (1 * WORD_SIZE)); - mStringsCount = getLEWord(mParserOffset + (2 * WORD_SIZE)); - mStylesCount = getLEWord(mParserOffset + (3 * WORD_SIZE)); - int strOffset = mParserOffset - + getLEWord(mParserOffset + (5 * WORD_SIZE)); - int styleOffset = getLEWord(mParserOffset + (6 * WORD_SIZE)); - - mStringsTable = new String[mStringsCount]; - int offset; - for (int i = 0; i < mStringsCount; ++i) { - offset = strOffset - + getLEWord(mParserOffset + ((i + 7) * WORD_SIZE)); - mStringsTable[i] = getStringFromStringTable(offset); - } - - if (styleOffset > 0) { -// Log.w(TAG, "Unread styles"); - for (int i = 0; i < mStylesCount; ++i) { - // TODO read the styles ??? - } - } - - mParserOffset += chunk; - } - - /** - * the resource ids table starts with the following 4bytes words : - *
    - *
  • 0th word : 0x00080180
  • - *
  • 1st word : chunk size
  • - *
- */ - private void parseResourceTable() { - int chunk = getLEWord(mParserOffset + (1 * WORD_SIZE)); - mResCount = (chunk / 4) - 2; - - mResourcesIds = new int[mResCount]; - for (int i = 0; i < mResCount; ++i) { - mResourcesIds[i] = getLEWord(mParserOffset + ((i + 2) * WORD_SIZE)); - } - - mParserOffset += chunk; - } - - /** - * A namespace tag contains the following 4bytes words : - *
    - *
  • 0th word : 0x00100100 = Start NS / 0x00100101 = end NS
  • - *
  • 1st word : chunk size
  • - *
  • 2nd word : line this tag appeared
  • - *
  • 3rd word : optional xml comment for element (usually 0xFFFFFF)
  • - *
  • 4th word : index of namespace prefix in StringIndexTable
  • - *
  • 5th word : index of namespace uri in StringIndexTable
  • - *
- */ - private void parseNamespace(boolean start) { - final int prefixIdx = getLEWord(mParserOffset + (4 * WORD_SIZE)); - final int uriIdx = getLEWord(mParserOffset + (5 * WORD_SIZE)); - - final String uri = getString(uriIdx); - final String prefix = getString(prefixIdx); - - if (start) { - mListener.startPrefixMapping(prefix, uri); - mNamespaces.put(uri, prefix); - } else { - mListener.endPrefixMapping(prefix, uri); - mNamespaces.remove(uri); - } - - // Offset to first tag - mParserOffset += (6 * WORD_SIZE); - } - - /** - * A start tag will start with the following 4bytes words : - *
    - *
  • 0th word : 0x00100102 = Start_Tag
  • - *
  • 1st word : chunk size
  • - *
  • 2nd word : line this tag appeared in the original file
  • - *
  • 3rd word : optional xml comment for element (usually 0xFFFFFF)
  • - *
  • 4th word : index of namespace uri in StringIndexTable, or 0xFFFFFFFF - * for default NS
  • - *
  • 5th word : index of element name in StringIndexTable
  • - *
  • 6th word : size of attribute structures to follow
  • - *
  • 7th word : number of attributes following the start tag
  • - *
  • 8th word : index of id attribute (0 if none)
  • - *
- */ - private void parseStartTag() { - // get tag info - final int uriIdx = getLEWord(mParserOffset + (4 * WORD_SIZE)); - final int nameIdx = getLEWord(mParserOffset + (5 * WORD_SIZE)); - final int attrCount = getLEShort(mParserOffset + (7 * WORD_SIZE)); - - final String name = getString(nameIdx); - String uri, qname; - if (uriIdx == 0xFFFFFFFF) { - uri = ""; - qname = name; - } else { - uri = getString(uriIdx); - if (mNamespaces.containsKey(uri)) { - qname = mNamespaces.get(uri) + ':' + name; - } else { - qname = name; - } - } - - // offset to start of attributes - mParserOffset += (9 * WORD_SIZE); - - final Attribute[] attrs = new Attribute[attrCount]; // NOPMD - for (int a = 0; a < attrCount; a++) { - attrs[a] = parseAttribute(); // NOPMD - - // offset to next attribute or tag - mParserOffset += (5 * 4); - } - - mListener.startElement(uri, name, qname, attrs); - } - - /** - * An attribute will have the following 4bytes words : - *
    - *
  • 0th word : index of namespace uri in StringIndexTable, or 0xFFFFFFFF - * for default NS
  • - *
  • 1st word : index of attribute name in StringIndexTable
  • - *
  • 2nd word : index of attribute value, or 0xFFFFFFFF if value is a - * typed value
  • - *
  • 3rd word : value type
  • - *
  • 4th word : resource id value
  • - *
- */ - private Attribute parseAttribute() { - final int attrNSIdx = getLEWord(mParserOffset); - final int attrNameIdx = getLEWord(mParserOffset + (1 * WORD_SIZE)); - final int attrValueIdx = getLEWord(mParserOffset + (2 * WORD_SIZE)); - final int attrType = getLEWord(mParserOffset + (3 * WORD_SIZE)); - final int attrData = getLEWord(mParserOffset + (4 * WORD_SIZE)); - - final Attribute attr = new Attribute(); - attr.setName(getString(attrNameIdx)); - - if (attrNSIdx == 0xFFFFFFFF) { - attr.setNamespace(null); - attr.setPrefix(null); - } else { - String uri = getString(attrNSIdx); - if (mNamespaces.containsKey(uri)) { - attr.setNamespace(uri); - attr.setPrefix(mNamespaces.get(uri)); - } - } - - if (attrValueIdx == 0xFFFFFFFF) { - attr.setValue(getAttributeValue(attrType, attrData)); - } else { - attr.setValue(getString(attrValueIdx)); - } - - return attr; - - } - - /** - * A text will start with the following 4bytes word : - *
    - *
  • 0th word : 0x00100104 = Text
  • - *
  • 1st word : chunk size
  • - *
  • 2nd word : line this element appeared in the original document
  • - *
  • 3rd word : optional xml comment for element (usually 0xFFFFFF)
  • - *
  • 4rd word : string index in string table
  • - *
  • 5rd word : ??? (always 8)
  • - *
  • 6rd word : ??? (always 0)
  • - *
- */ - private void parseText() { - // get tag infos - final int strIndex = getLEWord(mParserOffset + (4 * WORD_SIZE)); - - String data = getString(strIndex); - mListener.characterData(data); - - // offset to next node - mParserOffset += (7 * WORD_SIZE); - } - - /** - * EndTag contains the following 4bytes words : - *
    - *
  • 0th word : 0x00100103 = End_Tag
  • - *
  • 1st word : chunk size
  • - *
  • 2nd word : line this tag appeared in the original file
  • - *
  • 3rd word : optional xml comment for element (usually 0xFFFFFF)
  • - *
  • 4th word : index of namespace name in StringIndexTable, or 0xFFFFFFFF - * for default NS
  • - *
  • 5th word : index of element name in StringIndexTable
  • - *
- */ - private void parseEndTag() { - // get tag info - final int uriIdx = getLEWord(mParserOffset + (4 * WORD_SIZE)); - final int nameIdx = getLEWord(mParserOffset + (5 * WORD_SIZE)); - - final String name = getString(nameIdx); - String uri; - if (uriIdx == 0xFFFFFFFF) { - uri = ""; - } else { - uri = getString(uriIdx); - } - - mListener.endElement(uri, name, null); - - // offset to start of next tag - mParserOffset += (6 * WORD_SIZE); - } - - /** - * @param index the index of the string in the StringIndexTable - * @return the string - */ - private String getString(final int index) { - String res; - if ((index >= 0) && (index < mStringsCount)) { - res = mStringsTable[index]; - } else { - res = null; // NOPMD - } - - return res; - } - - /** - * @param offset offset of the beginning of the string inside the StringTable - * (and not the whole data array) - * @return the String - */ - private String getStringFromStringTable(final int offset) { - int strLength; - byte chars[]; - if (mData[offset + 1] == mData[offset]) { - strLength = mData[offset]; - chars = new byte[strLength];// NOPMD - for (int i = 0; i < strLength; i++) { - chars[i] = mData[offset + 2 + i]; // NOPMD - } - } else { - - strLength = ((mData[offset + 1] << 8) & 0xFF00) - | (mData[offset] & 0xFF); - chars = new byte[strLength]; // NOPMD - for (int i = 0; i < strLength; i++) { - chars[i] = mData[offset + 2 + (i * 2)]; // NOPMD - } - - } - return new String(chars); - } - - /** - * @param off the offset of the word to read - * @return value of a Little Endian 32 bit word from the byte arrayat offset - * off. - */ - private int getLEWord(final int off) { - return ((mData[off + 3] << 24) & 0xff000000) - | ((mData[off + 2] << 16) & 0x00ff0000) - | ((mData[off + 1] << 8) & 0x0000ff00) - | ((mData[off + 0] << 0) & 0x000000ff); - } - - /** - * @param off the offset of the word to read - * @return value of a Little Endian 16 bit word from the byte array at offset - * off. - */ - private int getLEShort(final int off) { - return ((mData[off + 1] << 8) & 0xff00) - | ((mData[off + 0] << 0) & 0x00ff); - } - - /** - * @param type the attribute type - * @param data the data value - * @return the typed value - */ - private String getAttributeValue(final int type, final int data) { - String res; - - switch (type) { - case TYPE_STRING: - res = getString(data); - break; - case TYPE_DIMEN: - res = Integer.toString(data >> 8) + DIMEN[data & 0xFF]; - break; - case TYPE_FRACTION: - double fracValue = (((double) data) / ((double) 0x7FFFFFFF)); - // res = String.format("%.2f%%", fracValue); - res = new DecimalFormat("#.##%").format(fracValue); - break; - case TYPE_FLOAT: - res = Float.toString(Float.intBitsToFloat(data)); - break; - case TYPE_INT: - case TYPE_FLAGS: - res = Integer.toString(data); - break; - case TYPE_BOOL: - res = Boolean.toString(data != 0); - break; - case TYPE_COLOR: - case TYPE_COLOR2: - res = String.format("#%08X", data); - break; - case TYPE_ID_REF: - res = String.format("@id/0x%08X", data); - break; - case TYPE_ATTR_REF: - res = String.format("?id/0x%08X", data); - break; - default: -// Log.w(TAG, "(type=" + Integer.toHexString(type) + ") : " + data -// + " (0x" + Integer.toHexString(data) + ") @" -// + mParserOffset); - res = String.format("%08X/0x%08X", type, data); - break; - } - - return res; - } - - // Data - private CompressedXmlParserListener mListener; - - // Internal - private Map mNamespaces; - private byte[] mData; - - private String[] mStringsTable; - private int[] mResourcesIds; - private int mStringsCount, mStylesCount, mResCount; - private int mParserOffset; - -} diff --git a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParserListener.java b/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParserListener.java deleted file mode 100644 index 2738713d6..000000000 --- a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlParserListener.java +++ /dev/null @@ -1,101 +0,0 @@ -package fr.xgouchet.axml; - -public interface CompressedXmlParserListener { - - /** - * Receive notification of the beginning of a document. - */ - void startDocument(); - - /** - * Receive notification of the end of a document. - */ - void endDocument(); - - /** - * Begin the scope of a prefix-URI Namespace mapping. - * - * @param prefix - * the Namespace prefix being declared. An empty string is used - * for the default element namespace, which has no prefix. - * @param uri - * the Namespace URI the prefix is mapped to - */ - void startPrefixMapping(String prefix, String uri); - - /** - * End the scope of a prefix-URI mapping. - * - * @param prefix - * the prefix that was being mapped. This is the empty string - * when a default mapping scope ends. - * @param uri - * the Namespace URI the prefix is mapped to - */ - void endPrefixMapping(String prefix, String uri); - - /** - * Receive notification of the beginning of an element. - * - * @param uri - * the Namespace URI, or the empty string if the element has no - * Namespace URI or if Namespace processing is not being - * performed - * @param localName - * the local name (without prefix), or the empty string if - * Namespace processing is not being performed - * @param qName - * the qualified name (with prefix), or the empty string if - * qualified names are not available - * @param atts - * the attributes attached to the element. If there are no - * attributes, it shall be an empty Attributes object. The value - * of this object after startElement returns is undefined - */ - void startElement(String uri, String localName, String qName, - Attribute[] atts); - - /** - * Receive notification of the end of an element. - * - * @param uri - * the Namespace URI, or the empty string if the element has no - * Namespace URI or if Namespace processing is not being - * performed - * @param localName - * the local name (without prefix), or the empty string if - * Namespace processing is not being performed - * @param qName - * the qualified XML name (with prefix), or the empty string if - * qualified names are not available - */ - void endElement(String uri, String localName, String qName); - - /** - * Receive notification of text. - * - * @param data - * the text data - */ - void text(String data); - - /** - * Receive notification of character data (in a <![CDATA[ ]]> block). - * - * @param data - * the text data - */ - void characterData(String data); - - /** - * Receive notification of a processing instruction. - * - * @param target - * the processing instruction target - * @param data - * the processing instruction data, or null if none was supplied. - * The data does not include any whitespace separating it from - * the target - */ - void processingInstruction(String target, String data); -} diff --git a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlUtils.java b/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlUtils.java deleted file mode 100644 index 5e3d24b31..000000000 --- a/libs/AXML/src/main/java/fr/xgouchet/axml/CompressedXmlUtils.java +++ /dev/null @@ -1,60 +0,0 @@ -package fr.xgouchet.axml; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; - -public final class CompressedXmlUtils { - - /** - * @param input an input stream - * @return if the given input stream looks like an AXML document - */ - public static boolean isCompressedXml(final InputStream input) { - if (input == null) return false; - - boolean result; - - try { - final byte[] header = new byte[4]; - int read = input.read(header, 0, 4); - if (read < 4) return false; - - result = (header[0] == 0x03) - && (header[1] == 0x00) - && (header[2] == 0x08) - && (header[3] == 0x00); - - } catch (Exception e) { - result = false; - } finally { - try { - input.close(); - } catch (Exception e) { - // ignore this exception - } - } - - return result; - } - - /** - * @param source a source file - * @return if the given file looks like an AXML file - */ - public static boolean isCompressedXml(final File source) { - boolean result; - - try { - final InputStream input = new FileInputStream(source.getPath()); - result = isCompressedXml(input); - } catch (Exception e) { - result = false; - } - - return result; - } - - private CompressedXmlUtils() { - } -} diff --git a/monocles.doap b/monocles.doap new file mode 100644 index 000000000..9fe876acf --- /dev/null +++ b/monocles.doap @@ -0,0 +1,531 @@ + + + + + monocles chat + + 2021-06-12 + + Android Jabber Client + + monocles chat is a freedomware client for the Jabber network (using the XMPP protocol) with a focus on features for gateway users. + + + + + + + + + + + en + + + + + + + + + + Java + + Android + + + + + + + + + Soprani.ca + + + + + + + + + + + + + + + + + + + + partial + 1.0 + When used with XEP-0050, images over HTTPS only + + + + + + partial + 1.0 + For MUC members + + + + + + complete + 0.2.1 + + + + + + partial + 0.2.0 + For XEP-0033 and XEP-0066 + + + + + + partial + 0.2.1 + Receiving, hashes, thumbnails, one HTTP source + + + + + + complete + 1.1.3 + + + + + + partial + 2.13.0 + As part of XEP-0050 and XEP-0077 + + + + + + partial + 1.0.2 + When used with XEP-0050 + + + + + + complete + 1.3.0 + + + + + + partial + 1.0 + jabber:iq:gateway + + + + + + complete + 1.4 + + + + + + complete + 2.5rc3 + + + + + + complete + 1.32.0 + + + + + + complete + 1.2 + + + + + + complete + 1.2 + + + + + + partial + 1.2 + Avatars only + + + + + + complete + 1.1.3 + + + + + + complete + 2.1 + + + + + + complete + 1.1 + + + + + + complete + 1.5.1 + + + + + + partial + 1.1 + Read only. Publication via XEP-0398 + + + + + + complete + 1.2.1 + Avatar, Nick, OMEMO + + + + + + complete + 1.1.2 + File transfer + A/V calls + + + + + + complete + 1.2.1 + + + + + + complete + 1.1 + read only + + + + + + complete + 1.1 + + + + + + complete + 1.4.0 + + + + + + complete + 1.3 + + + + + + complete + 1.6 + + + + + + complete + 2.0.1 + + + + + + complete + 2.0.1 + + + + + + complete + 0.7 + + + + + + complete + 1.1 + + + + + + complete + 0.19.1 + + + + + + complete + 1.3 + + + + + + complete + 1.0 + + + + + + complete + 1.2 + + + + + + complete + 1.0.3 + + + + + + complete + 1.0 + + + + + + complete + 0.13.1 + + + + + + complete + 1.0.1 + + + + + + complete + 1.0 + + + + + + complete + 1.2.0 + + + + + + complete + 0.6.3 + + + + + + complete + 1.0.2 + opt-in + + + + + + complete + 1.0.0 + + + + + + complete + 0.3 + + + + + + complete + 1.0.0 + + + + + + complete + 1.0.0 + + + + + + complete + 0.3.0 + + + + + + complete + 0.3.0 + + + + + + complete + 0.4.0 + Only available in the version distributed over Google Play + + + + + + complete + 1.0.0 + + + + + + complete + 1.1.0 + + + + + + complete + 0.2 + + + + + + complete + 0.3.0 + + + + + + complete + 0.1.2 + 2.5.8 + + + + + + complete + 0.6.0 + 2.3.1 + + + + + + complete + 0.1.4 + 1.22.0 + + + + + + complete + 0.1 + 2.5.8 + + + + + + complete + 0.2.1 + + + + + + complete + 1.0.1 + 2.5.4 + + + + + + complete + 0.2.0 + + + + + + complete + 0.1.0 + + + + diff --git a/monocles_chat.doap b/monocles_chat.doap deleted file mode 100644 index 6e37477ae..000000000 --- a/monocles_chat.doap +++ /dev/null @@ -1,579 +0,0 @@ - - - - - monocles chat - - 2021-05-04 - - Userfriendly XMPP Client for Android - - monocles chat is a modern and secure chat app using XMPP. Based on Conversations and Blabber.im but with many changes. - - - - - - - - - - - - en - - - - - - - - - - - - Java - - Android - - - - - - - - Arne-Brün Vogelsang - - - - - - - - - - - - - - - - - - - - - partial - 1.0 - When used with XEP-0050, images over HTTPS only - - - - - - partial - 1.0 - For MUC members - - - - - - partial - 0.2.0 - For XEP-0033 and XEP-0066 - - - - - - partial - 0.2.1 - Receiving, hashes, thumbnails, one HTTP source - - - - - - complete - 1.1.3 - - - - - - partial - 2.13.0 - As part of XEP-0050 and XEP-0077 - - - - - - partial - 1.0.2 - When used with XEP-0050 - - - - - - complete - 1.3.0 - - - - - - partial - 1.0 - jabber:iq:gateway - - - - - - complete - 1.4 - - - - - - complete - 2.5rc3 - - - - - - complete - 1.32.0 - - - - - - complete - 1.2 - - - - - - complete - 1.2 - - - - - - partial - 1.2 - Avatars only - - - - - - complete - 1.1.3 - - - - - - complete - 2.1 - - - - - - complete - 1.1 - - - - - - complete - 1.5.1 - - - - - - partial - 1.1 - Read only. Publication via XEP-0398 - - - - - - complete - 1.2.1 - Avatar, Nick, OMEMO - - - - - - complete - 1.1.2 - File transfer + A/V calls - - - - - - complete - 1.2.1 - - - - - - complete - 1.1 - read only - - - - - - complete - 1.1 - - - - - - complete - 1.4.0 - - - - - - complete - 1.3 - - - - - - complete - 1.6 - - - - - - complete - 2.0.1 - - - - - - complete - 2.0.1 - - - - - - complete - 0.7 - - - - - - partial - 1.0 - When used with XEP-0050, images over HTTPS only - - - - - - complete - 1.1 - - - - - - complete - 0.19.1 - - - - - - complete - 1.3 - - - - - - complete - 1.0 - - - - - - complete - 1.2 - - - - - - complete - 1.0.3 - - - - - - complete - 1.0 - - - - - - complete - 0.13.1 - - - - - - complete - 1.0.1 - - - - - - complete - 1.0 - - - - - - complete - 1.2.0 - - - - - - complete - 0.6.3 - - - - - - complete - 1.0.2 - opt-in - - - - - - complete - 1.0.0 - - - - - - complete - 0.3 - - - - - - complete - 1.0.0 - - - - - - complete - 1.0.0 - - - - - - complete - 0.3.0 - - - - - - complete - 0.3.0 - - - - - - complete - 0.4.0 - Only available in the version distributed over Google Play - - - - - - complete - 1.0.0 - - - - - - complete - 1.1.0 - - - - - - complete - 0.3.1 - - - - - - complete - 0.3.0 - - - - - - complete - 0.1.2 - 1.0 - - - - - - complete - 0.6.0 - 1.0 - - - - - - complete - 0.1.4 - 1.0 - - - - - - complete - 0.1 - 1.0 - - - - - - complete - 0.2.1 - - - - - - complete - 1.0.1 - 1.0 - - - - - - complete - 0.2.0 - - - - - - complete - 0.2.1 - - - - - - complete - 0.4.0 - - - - - - complete - 0.1.0 - - - - - - complete - 0.1.0 - - - - - - partial - 0.3.2 - 1.4.3 - - - - - - complete - 0.1.0 - - - - - - 1.7.10 - 2024-06-01 - - - - - diff --git a/monocleschatFree/debug/output-metadata.json b/monocleschatFree/debug/output-metadata.json new file mode 100644 index 000000000..a3bb9e6ac --- /dev/null +++ b/monocleschatFree/debug/output-metadata.json @@ -0,0 +1,73 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "de.monocles.chat", + "variantName": "monocleschatFreeDebug", + "elements": [ + { + "type": "UNIVERSAL", + "filters": [], + "attributes": [], + "versionCode": 4209171, + "versionName": "29082ff+free", + "outputFile": "Conversations-monocleschat-free-universal-debug.apk" + }, + { + "type": "ONE_OF_MANY", + "filters": [ + { + "filterType": "ABI", + "value": "arm64-v8a" + } + ], + "attributes": [], + "versionCode": 4205304, + "versionName": "29082ff+free", + "outputFile": "Conversations-monocleschat-free-arm64-v8a-debug.apk" + }, + { + "type": "ONE_OF_MANY", + "filters": [ + { + "filterType": "ABI", + "value": "x86" + } + ], + "attributes": [], + "versionCode": 4205302, + "versionName": "29082ff+free", + "outputFile": "Conversations-monocleschat-free-x86-debug.apk" + }, + { + "type": "ONE_OF_MANY", + "filters": [ + { + "filterType": "ABI", + "value": "armeabi-v7a" + } + ], + "attributes": [], + "versionCode": 4205301, + "versionName": "29082ff+free", + "outputFile": "Conversations-monocleschat-free-armeabi-v7a-debug.apk" + }, + { + "type": "ONE_OF_MANY", + "filters": [ + { + "filterType": "ABI", + "value": "x86_64" + } + ], + "attributes": [], + "versionCode": 4205303, + "versionName": "29082ff+free", + "outputFile": "Conversations-monocleschat-free-x86_64-debug.apk" + } + ], + "elementType": "File", + "minSdkVersionForDexing": 23 +} \ No newline at end of file diff --git a/playstore/release/output-metadata.json b/playstore/release/output-metadata.json deleted file mode 100644 index 99887c851..000000000 --- a/playstore/release/output-metadata.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "version": 3, - "artifactType": { - "type": "APK", - "kind": "Directory" - }, - "applicationId": "de.monocles.chat", - "variantName": "playstoreRelease", - "elements": [ - { - "type": "UNIVERSAL", - "filters": [], - "attributes": [], - "versionCode": 138, - "versionName": "4135a60-playstore", - "outputFile": "monocles chat-1.7.6-playstore-universal-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "arm64-v8a" - } - ], - "attributes": [], - "versionCode": 13804, - "versionName": "4135a60-playstore", - "outputFile": "monocles chat-1.7.6-playstore-arm64-v8a-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "armeabi-v7a" - } - ], - "attributes": [], - "versionCode": 13801, - "versionName": "4135a60-playstore", - "outputFile": "monocles chat-1.7.6-playstore-armeabi-v7a-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "x86_64" - } - ], - "attributes": [], - "versionCode": 13803, - "versionName": "4135a60-playstore", - "outputFile": "monocles chat-1.7.6-playstore-x86_64-release.apk" - }, - { - "type": "ONE_OF_MANY", - "filters": [ - { - "filterType": "ABI", - "value": "x86" - } - ], - "attributes": [], - "versionCode": 13802, - "versionName": "4135a60-playstore", - "outputFile": "monocles chat-1.7.6-playstore-x86-release.apk" - } - ], - "elementType": "File" -} \ No newline at end of file diff --git a/proguard-rules.pro b/proguard-rules.pro index 75902f079..7098945c6 100644 --- a/proguard-rules.pro +++ b/proguard-rules.pro @@ -1,7 +1,5 @@ -dontobfuscate --keep class de.monocles.chat.** --keep class de.pixart.messenger.** -keep class eu.siacs.conversations.** -keep class org.whispersystems.** @@ -15,9 +13,6 @@ -keep class org.openintents.openpgp.* -keep class org.webrtc.** { *; } --keep class com.squareup.okhttp.** { *; } --keep interface com.squareup.okhttp.** { *; } - -dontwarn javax.mail.internet.MimeMessage -dontwarn javax.mail.internet.MimeBodyPart -dontwarn javax.mail.internet.SharedInputStream @@ -39,25 +34,12 @@ -dontwarn org.openjsse.javax.net.ssl.SSLParameters -dontwarn org.openjsse.javax.net.ssl.SSLSocket -dontwarn org.openjsse.net.ssl.OpenJSSE +-dontwarn org.jetbrains.annotations.** -keepclassmembers class eu.siacs.conversations.http.services.** { !transient ; } -# JSR 305 annotations are for embedding nullability information. --dontwarn javax.annotation.** - -# A resource is loaded with a relative path so the package of this class must be preserved. --keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase - -# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. --dontwarn org.codehaus.mojo.animal_sniffer.* - -# OkHttp platform used only on JVM and when Conscrypt dependency is available. --dontwarn okhttp3.internal.platform.ConscryptPlatform - - - # Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and # EnclosingMethod is required to use InnerClasses. -keepattributes Signature, InnerClasses, EnclosingMethod diff --git a/settings.gradle b/settings.gradle index 609b97313..4193570fa 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1 @@ -include ':libs:AXML' -include ':libs:xmpp-addr' -rootProject.name = 'monocles chat' +rootProject.name = 'Conversations' diff --git a/src/androidTest/java/de/monocles/chat/test/ScreenshotTest.java b/src/androidTest/java/de/monocles/chat/test/ScreenshotTest.java new file mode 100644 index 000000000..a35c96379 --- /dev/null +++ b/src/androidTest/java/de/monocles/chat/test/ScreenshotTest.java @@ -0,0 +1,169 @@ +package de.monocles.chat.test; + +import java.util.concurrent.TimeoutException; +import java.lang.Thread; +import java.util.Arrays; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Bundle; +import android.util.Log; + +import androidx.test.InstrumentationRegistry; +import androidx.test.core.app.ActivityScenario; +import androidx.test.core.app.ApplicationProvider; +import androidx.test.ext.junit.rules.ActivityScenarioRule; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.rule.ServiceTestRule; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.matcher.ViewMatchers.withId; + +import tools.fastlane.screengrab.Screengrab; +import tools.fastlane.screengrab.cleanstatusbar.CleanStatusBar; +import tools.fastlane.screengrab.locale.LocaleTestRule; + +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.entities.Contact; +import eu.siacs.conversations.entities.Conversation; +import eu.siacs.conversations.entities.Message; +import eu.siacs.conversations.entities.Presence; +import eu.siacs.conversations.entities.ServiceDiscoveryResult; +import eu.siacs.conversations.entities.TransferablePlaceholder; +import eu.siacs.conversations.persistance.FileBackend; +import eu.siacs.conversations.services.XmppConnectionService.XmppConnectionBinder; +import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.test.R; +import eu.siacs.conversations.ui.ConversationsActivity; +import eu.siacs.conversations.ui.StartConversationActivity; +import eu.siacs.conversations.xml.Element; +import eu.siacs.conversations.xmpp.Jid; +import eu.siacs.conversations.xmpp.pep.Avatar; +import eu.siacs.conversations.xmpp.stanzas.IqPacket; + +@RunWith(AndroidJUnit4.class) +public class ScreenshotTest { + + static String pkg = InstrumentationRegistry.getInstrumentation().getContext().getPackageName(); + static XmppConnectionService xmppConnectionService; + static Account account; + + @ClassRule + public static final LocaleTestRule localeTestRule = new LocaleTestRule(); + + @ClassRule + public static final ServiceTestRule xmppServiceRule = new ServiceTestRule(); + + @BeforeClass + public static void setup() throws TimeoutException { + CleanStatusBar.enableWithDefaults(); + + Intent intent = new Intent(ApplicationProvider.getApplicationContext(), XmppConnectionService.class); + intent.setAction("ui"); + xmppConnectionService = ((XmppConnectionBinder) xmppServiceRule.bindService(intent)).getService(); + account = xmppConnectionService.findAccountByJid(Jid.of("carrot@chaosah.hereva")); + if (account == null) { + account = new Account( + Jid.of("carrot@chaosah.hereva"), + "orangeandfurry" + ); + xmppConnectionService.createAccount(account); + } + + Uri avatarUri = Uri.parse("android.resource://" + pkg + "/" + String.valueOf(R.drawable.carrot)); + final Avatar avatar = xmppConnectionService.getFileBackend().getPepAvatar(avatarUri, 192, Bitmap.CompressFormat.WEBP); + xmppConnectionService.getFileBackend().save(avatar); + account.setAvatar(avatar.getFilename()); + + Contact cheogram = account.getRoster().getContact(Jid.of("cheogram.com")); + cheogram.setOption(Contact.Options.IN_ROSTER); + cheogram.setPhotoUri("android.resource://" + pkg + "/" + String.valueOf(R.drawable.cheogram)); + Presence cheogramPresence = Presence.parse(null, null, ""); + IqPacket discoPacket = new IqPacket(IqPacket.TYPE.RESULT); + Element query = discoPacket.addChild("query", "http://jabber.org/protocol/disco#info"); + Element identity = query.addChild("identity"); + identity.setAttribute("category", "gateway"); + identity.setAttribute("type", "pstn"); + cheogramPresence.setServiceDiscoveryResult(new ServiceDiscoveryResult(discoPacket)); + cheogram.updatePresence("gw", cheogramPresence); + } + + @AfterClass + public static void teardown() { + CleanStatusBar.disable(); + } + + @Test + public void testConversation() throws FileBackend.FileCopyException, InterruptedException { + Conversation conversation = xmppConnectionService.findOrCreateConversation(account, Jid.of("+15550737737@cheogram.com"), false, false); + conversation.getContact().setOption(Contact.Options.IN_ROSTER); + conversation.getContact().setSystemName("Pepper"); + conversation.getContact().setPhotoUri("android.resource://" + pkg + "/" + String.valueOf(R.drawable.pepper)); + + Message voicemail = new Message(conversation, "", 0, Message.STATUS_RECEIVED); + voicemail.setOob("https://example.com/thing.mp3"); + voicemail.setFileParams(new Message.FileParams("https://example.com/thing.mp3|5000|0|0|10000")); + voicemail.setType(Message.TYPE_FILE); + voicemail.setSubject("Voicemail Recording"); + + Message transcript = new Message(conversation, "Where are you?", 0, Message.STATUS_RECEIVED); + transcript.setSubject("Voicemail Transcription"); + + Message picture = new Message(conversation, "", 0, Message.STATUS_SEND_RECEIVED); + picture.setOob("https://example.com/thing.webp"); + picture.setType(Message.TYPE_FILE); + xmppConnectionService.getFileBackend().copyFileToPrivateStorage( + picture, + Uri.parse("android.resource://" + pkg + "/" + String.valueOf(R.drawable.komona)), + "image/webp" + ); + xmppConnectionService.getFileBackend().updateFileParams(picture); + + conversation.addAll(0, Arrays.asList( + voicemail, + transcript, + new Message(conversation, "Meow", 0, Message.STATUS_SEND_RECEIVED), + picture, + new Message(conversation, "👍", 0, Message.STATUS_RECEIVED) + )); + + ActivityScenario scenario = ActivityScenario.launch(ConversationsActivity.class); + scenario.onActivity((Activity activity) -> { + ((ConversationsActivity) activity).switchToConversation(conversation); + }); + InstrumentationRegistry.getInstrumentation().waitForIdleSync(); + Thread.sleep(100); // ImageView not paited yet after waitForIdleSync + Screengrab.screenshot("conversation"); + } + + @Test + public void testStartConversation() throws InterruptedException { + ActivityScenario scenario = ActivityScenario.launch(StartConversationActivity.class); + InstrumentationRegistry.getInstrumentation().waitForIdleSync(); + Thread.sleep(100); // ImageView not paited yet after waitForIdleSync + Screengrab.screenshot("startConversation"); + } + + @Test + public void testAddContact() throws InterruptedException { + ActivityScenario scenario = ActivityScenario.launch(StartConversationActivity.class); + onView(withId(eu.siacs.conversations.R.id.speed_dial)).perform(click()); + Screengrab.screenshot("startConversationOptions"); + + // Not actually online, so can't screenshot the gateway selector yet + /*onView(withId(eu.siacs.conversations.R.id.create_contact)).perform(click()); + InstrumentationRegistry.getInstrumentation().waitForIdleSync(); + Thread.sleep(10000); // ImageView not paited yet after waitForIdleSync + Screengrab.screenshot("addContact");*/ + } +} diff --git a/src/androidTest/res/drawable/carrot.webp b/src/androidTest/res/drawable/carrot.webp new file mode 100644 index 0000000000000000000000000000000000000000..cf0cd12885c02f43dc9a3f382f15b6ab5b09c4eb GIT binary patch literal 19044 zcmbTd1y~)+wk|qxhoAw1L(o8QcY^E0-QC?axH|-Qx8NRJgS)%CyS$mT);@cm`|f$) zySJD<`|nX>bdSHPtE)!OfxNhgh^7Pppdu_Nr!2>=3J(AP*g+c$*q@KMkdRz9IOq@n zo^5GhW}vSzTC}$^gv~r z_RqQg_d5Th6v@!Y!2kdNBLZpg8`#=Ag0L~^MkAYjSc@` z&p+78(h20-U*!)&L?de@1<;-hwBZ3n0pb8@fE<7bpbu~Ym;o#SjsRNF-Wnuv0LX*t z1^)+o+`sJQKvw!7D>Hxr$l@Eo24Dry`^z5irw>3npz`mwbueaP{7VFeC+jkp@CuuWjbzLUQ;Qziv_U)sUPKuMakmYZsGWz3Ye34?GI@+5=b$ zNP6#I9tYN+m0wpE%Y7TDZV8XSH4D7l{#0YVEl*WSp~K8`9Ts6%u!rT_sy=w^>?zHF zYSiaWTi)>q6Y(W{e70k`D13G!kQ;B>V^dXd1w ze-d%`j*h#MB{npHQ;BYd6=`enCno9K_vW80i-i~QMq)-}3fSjs#uT>qZjEq8*;u@% zXlIUN%iV=|c$uGs;y)u4nI`Q#SMrMqCXucok&eUY%v>908iBAgf(00#9Yct(1k359 z#6mkb5`3?qNF8=bvz1>b-cZr4Bd*{Hj*%R=73i{q_28PEvDSbJil6`RWS=XZ5pYCB%tQ(1BJew}HrtqSvQtH_?nbc?4zJ$7(t3%1u~$;A@dB0k?t^2dIsI%W zk4D8$JLFmLbfI?oSxXAs2h*Gnc#cFRAGmv%&eK)TN>B@NrC4Ua`NJ7Y0&Hc=kj0a- zJ#wtvH}#z0DJo`$G7?G@IN+XSSTgczzM(&uCf<^j3~%IeDRn8uo)jjm9ufSI z7rUzTPqwEW+)YeL&W0H>N+e9Lo9~;HtG=CAgLyzum0_eR6A#)62v!m5(sBJPoeR|# z7>e?%n>pSBTvkAZPe9`<{!G^fsp$#v!AaIPs!k4^8)s?wQHPH7?CTh9Lx{F10kb%6 zTh-|@xwJ|x{Zzlb%0m`^lVV&vh*cA7zdP-c8Gl*agDek7pyMD3@`4A%q$4!R5&XAV z)R6Lz&LNd3b0IeS;JptAfZj*lc2fQJpIV_I8rDI@%ShE#5zr9UNDaYA3Km@vi50p- zV={0Ni_50I0w1BjE8RC7>Z$(jY*IedUH2E(-I~E;DNj$$^)LCT%-*?%wa~d&t z0Dn`YCzc7A*rkeN5F+?4a&bvxk&WE8LJ7fle8naz5RcL|9ZFz(2Mit9u*TmwXKnh* zeGkLlW_SUosU0ku1?-~WRyO00wxYl-edrGj@*92f3okM1;j++Ru=dp5thx_ixaewb zeZ%j~WaCZ^HHYp>qbo#NTM~&_I5YOIl5lJD(#sZ%Rn}wxNBSn+XE)-Ro8xAh`1-A< zq_BFlo30KiZ!WSf>kB>F>kLgTE8^^FfR#vYo|qc8g)vrX8%E$PyCWt_F1>1md3d)a zo5*Q-Af+x__o5mG>nA_f9Gt!QE@iA#RCN>Jf+wU5Zb5}Pmu@|qOk6%7uGIRuA%{5Z z_H-#^Hyq-tUt7A8a04!OmppdTaT)`w+O*YO#Dk`KYnb-jWI#;j==NNusj!`Cu9Bsx zgqu)$5_3^g0BWf$b8!f_dpO4D9<4psCJD)q z{U$m4Sf&vUYb^`N%ZMHlU+6sQnegSPgfhFhhR%g2e$S!U9O%#IxMDNVR~(EpEAZw- ziYbBIBDuLUxb{q1M41Nj>iNf)Nf7rRD&cz_98J{_^N7WS_qNzMZ@5bnEbM|@qj(i| zxYcnWaX%AfY&Xg!fSV9+l!FH-=;w$L`<;OEpSq)^H*0X3YnP0EgZ|4kMvW ze!6HU5^yn5h@b8gxm`^|Vcj|Bh`((stv>^9*_&2Yk5vtJc>07k=aCkIoYbOR+-hkF z(hXM3b$#U?@Ci$OFX)2p>st5Iwo^3EotJw;15S8)0{Xvtqge0zT7l>n+us^^CrkHL1fRox|D=i&RLa^*L_u= zq2;_K@WyUv6;{yvJ>0NPFg}BEw66xA4XK~UeUsG)cb49|33$zVyt=p5p&$y2=5ffv zum$K_wIMUGt$@X@|2T;#=DS+hZsJxg3&f{|GGGpyBsL({8=h(+ujO! zp_vh~JmU-E&w#~NS1Wn;pOGWb-SP7&yY9ID1jNQ!GL{Zn6-wWAr(HUF5D&5EYaazr z1Ab`c3j=qAfu0YmlagmK8P3wvr-7%*S_;G`ko?-3w0!ujqH91b;)oREQTN7AbFc0T zl}jz(3m=8u)aKWR_3wY_jG!qgejWZI``cc5Ui$f1b{HH0T6q#3-~a$0k^vcD)U05v zV7#${Y2u&rN%E;3mMMRt!AY-Re|*Ou@wG+SK-u-lCR}Xm{On5AlD?fK;oUm6b@bK~ z_=@Usp62t!TlKEs-RlYOaCeRKoOjG{=>HP+ESe1?Ie$0${`y4N%Qx|!=D~SM{pvJt zl+@nPTCd;|s`J}oBU7m3{%rYF20B8IS?zJaVteKEmS&ri9lfulGo)&!h7+uWge{T< z?%T@gX=Hu-PO$w}RSqjWSA+7FSBV-LV$p9%#m!+>zKka?Z&$$EJr3IK>u&HYY5>{#)Nj}a`H91?N}u?{q*S5*D1@eK{)#2#Y=7{WY@kBFhw;~dG>LU zZ6zqORH%*DOpWw-r6>6j@xTSANiZSrxen4|?*w4Gn-f){a$cLA%n;p&ev^RjnL90- zCWAtx*ULFySG`(}ga~n@^QxZL=XbQDrttE}39%5B<<-8GqC*zNTfECDQJLgNp^0mM zA48D2OR`HIOe%_q8}#+4SUYxuJ23vzz}`yG9AX6aBIzeLA;^6`iA%B3i0RfeN2K3a zWS1w3pv&$lGd~!g-}|#AhQg&F+l*2^8Ur`9-v5IE|E%Zn)JY~h?VFN0h6dLO_$05k zE_5M}hJDwmIfEh=jfS#k^iBTG+ZA_Im|nomd=`fr(PmtZiVCsarw3+|PuKC(6gNTG zxtis+~82M2%%+c0C3yzq>s3RF_PRg{wW2@UZski65AJEB^ubFBTjEeqA%xHf@taDpiRss2UgM=wY=3df zc)-7}&$6M1!0q!Z`WnLY{s@0I62o4CO1R`m>=(2{d@histA7T>aGS`KX3>Z$9$%S+ zCNBz6X0@b3|HR_weB)X9;!aOeV)bc*ym;glW+JFNSktkHwuMGN6Qse45$d4p6c$Y6 zX%Tjls;_VWKkQTffOn}k+F7k(oW8p`3Y?9U23^qu`T#frp`oeGZr9_>_zma+#eqdgQrb}K=`!h! z3pIs1bwrYf{xEM!n+MZxRg+dK%b3~4`FhBkA$jF8KZ-2sN`I-cw}tQ&dCPKL@`iR zoi5m`C=^W|3|Lpgt9RRU@)O75BZeNX!Pz-xhMCs%@&tizNYUl+9dRduEL2Wg^U934 z^qHUy$?K_08;7?S!sk?YS?gb2KlD&+84O1svT3EaiMoEvoU<$tkX~l_rYjKK1)lbZXCMm5%Y9(ypkVyIbQUX zn2}~?Fe~R?EcvV>Vrlo9KbNG#!S_Mp?;6F<9AR%_0TdNPS;QFa?PX}&YR!T_<~O?< zggD{lG=n!66#T-8MN%Uq=qyRTK(i>3ookme3 z2b)=}$FV)Hx=4`m`}!y=!uBXYR$*$%E6^=FzvJYxS3V<+seHX#Cw-`;Z+D-dabg>{ zV;KG7`&D4ja?Wt4;Lry|7o~o#xxx3l^6e}1PC}=Je8jv%Yff6CeDtU6aKC4cvaerC z-P$GfWX|Ily}j68LnUZ!clmJ!=R?d~IxTuC;kh2n;YNJO^vv>IvgzH6uc{9^NjkPl zUoceHV}!GTCE6MbGO(^W9*BHbY?7fZiLooKdr7N^k};|ksEuFm3MbN2vwzlx%QD0U zupZ*`6Af@DnZ! zH%+rFpIe$eP9$VJ#GK*|XxUAT#R;h&#e4Q?^P-<63(dM8t0KV%aE{bhUC}e1AK>v| zZMk&r4jXN)E2H9ST1!T|4kqE@hvhJ?~_>(Y8_1{jnV3SnyfuTYkpPJg=zUukFR-Q-+#_Yb$H{Wtvf?08X?@TYvXng2YFG(V+HF*N{V3)dYccq=b)2A2 zA~rWnm%^Q&Cq?8JNXEw}BR`G1B7H5CSUYeyCs2E(@m($Ks}omh_Lt;6FZDaSY&-qf zeWq&FC;c)U9bl)(qdIQPQ~u$PxefUyM7?2MsPC})SSvJqz7J_x#+32qD3+ztk>~l8 z<**X#5&oYHc>-4V*gusNF{mZ>P)cBsUM6Ks)Vkc}@p?ZiR3?>42bw=iK5@I>T|frr zI=J~O;JyMNV_EBxk7N*|M1{UDy+Xu=Nc*rh=k{wGGvXL~O5Pr+7a`s6hi{O`d}RKT z9Xe+PKV&*I%I5M&BFn&0Nbpb*+2TxM&MGJ%i(q~O^F;#>!V~ELX^lI57-!>Y9gl^x z@%V`#VY}ZqH~~yWmEbGU{2ev?oBhRNU5D7dq9oNSCB?zw^p_$NaD1#`e{~`V+u}z5 zwbk5p^SZkv>(n65x2SLn-LMRm!yWqgdBrtSR{9Y1fpW~n;@#x4FIlQI$YMdDbeDDi%5&cld%otV(p zU#cA*DSkX|7{Ng!_6&_cCba07#!;h}Jn4q`t?>-`bt%omGq7!V%P&n9K`J?%;1cg0 zjTkjw_EU_VVcAMnY1nd*<@Rao_i}m4gYyOh_e`g0-!)l=+%Jzw!uo@zl3c2pm3R)_ zD{h`4MDVzLyp{IOPNSxt6!_wB4X($yw0*hFis7kt)7G4ER<|<5MrD%VobBA-0;7$_ zU#5+NP`yU>9vD=vE=u@c59GNzj<=44KU$c^sai(rX$$wk5KA-FChJp%;&Ew@e@8!t z(xHIc&X}2ML1jOe&ABFm`f$g{G@FgUaP)G=%p1$p&gV$1%U%;VjD^`(!Hz{x*cw$KBip{=kBqC7BC4NK?MT^!pF#h%4HiFmXZYM?)3)k*y z{Z*1dFMn{bvMCiWMc()jXi2x2S*L%~E z#B-$At)76W2Lto2#R`mIrh2~uVdY^sq0uFNn~F~lUM=)rH>Ub&;0g(&+M=D;N0 z@zikt+60{lZviHxUDWF1FR%s3ob5#H0KJWqO3?_ciw8(u`)BD?s8D9Jj{T5@ikz<-{Z>S1Dqh{s9@rb-rs3b{V3S0 zKXuhqR@d7zJLq2uFF5~J3#8+yAkLG9-mN$T+a$a}JEg~+VpjTV+KDA{@J(N#{g z9XGh!XTadPSUW(&9dgBFYd3D0$1Gg}-aiYT8Ac#XdP-1$lo=}tLi)%rv0z5ArLz$=Pha~$#IZryOmj`!LpC5obJP%nE zEFH*>1G(5iSM;H{4=lF{;{G}piN*qPZ(UChMVDdqv#wUnjX|T?8GJp4`=m1lE-dgj zb4r^I#ff-1S-4>WR$kW9d)0mL;6FR6P}OR%ue$7(&x6#nB5&D6cT$U{-ec{XznT>I zAfQX*V8I~8@xN9yO3oa6zUPB){@PvUprvJ(rME)2t|!gysnz%$$*!i_(C)jEk~Xg)4u4o0K;2b#pR8+= z-nQYl9A1u~Q;Dc&0R2p&xH;``fEL=QlbuO`50#A)5js8MLnRS>J*) zJq)8X#7{{Z{{5b0?L)V$^*!=^M;ll?RL6?+?+x<{%J|kn!fx!3ezP zFp=T>jMWe+J(ZkHhaefBvZXEdTYW?tpoZwl;dE@V3gUOyTt9yOJ%=9YcBQX3ZuWju z&G%l)f)NOn%+(3{DPf;h_l9?$)f`vcb8Fn}ZrY7eFyYI{%PzW3Rvf1~<_Wq6snZP4FBB|_-3}|aIRgNs}05pvK zPL5XGZNTH!j1W|thqdF@2M^=_hVE^C_n`m#nOR%PlM=E5x2i=kka-4T^eevww#wY> zVblBO?Ga*MvGj?dy;GV`^l@^<1OjsbSFRhFE(`9HufO;cjUgZr$^;Biq2 znB@*pzqlsu@LsPtLnaFuJM>#ZX9i63OBxhPaHJ&>(&p6NVoox8%|RS=o&^l=)f+~P z_}?_1813de_kR*Z|7oQbIC=NOP!#d=J#WCl1%=SBqeB69*&J~~Qz`;;gT!p`rxzg1 zV6-mpSQDy?)#FCwl%OiawzY~sYCnmTjPEX#tQPkDGp_Ns@CIoDeO=n=G zS*60m+;pC${mGSHiI5Zyb)wia%(Fy7J2Fxq+vw5J&d9yaD{7PwO)r^PH}uI+`7#|-d)TkOAE_h^1uHk>XHfp-6h!aF}I)^OJZwZe{!&(Z$vnExl&IZ2PP zXJ^!<(lV#a<2a%7D94l?M`fHZ!iV$mBMEOGrFVl%?2Wki{59)fi1GA+hjr9=ppv}Z z5?8<*u{$=*>wzmzhqOUL-qFeFl%&wqE3K{c!GZ^|7%Vs)pphzLTRbDw#%MP<*n83! zDR61^+(hv`xa~eJ<6AYaHq4o`6&Bh>R%ZLK%2r)*dk`i)CzLt9%j%YSE^-!AMVf7p zpJ#!z0{r(BBjQIisrNm4alXOlrl9aoPcve|Vfdd*P#`>f5NEcXT;HyIO@BClF8bhM z^_br7bH2+Oi&Uh}BkUzritP2%Is|uaZT9wIYuxtwaGgZ4#JPfkfR>#3T9#Ekz7Bzt zbavK-HQ*!NRNoFxH}Wl`kVT53uAfXYMoHd6)jud*R*U_L%r%b2F!R zFO7`SE%0q5OU&l%k`2Xsy+2}>x;RHf^q764z1&Zf&~QRzyE-wY+Iza)XKTdk2NESd zgJS#p4jP667E$zAR9Z`1nV+07K^?nS*)WaV8-}rrw5bwh)(d)pMHAHdn(wRDr;<~w zbWA#W|4tqvJVs9d>FavZ?%~(?nMwwRUJ}$AMqMJp*k&P2A%*o8SVLMFTEISc+I3Th zh<9S)C|!5#9^KUV8-^{T@vG5F$c{}meAtTLoG74ts)QDNLJ!9da8ovvMJ<9IgmK1Z zl=78a@)}5kgMeW7!tqXz+*ok3EiTCZSe`-uqw%gBjm;!;FayX(N3saNw*&UI0psks zM~k*rWig2ia;N~@ylg0q{PJ_6XKkCq;#jcr?#+2gE#)IVH zzi@oteF8l(oQYw0ZNw;|X27CXK-T2uy)1Et>l@6s>*((5jI_|-yYB{#; zd#fL5Nu%0{YEJhsqguKW)@a8|f@+x-yj~vWjkL?6ePI{3I0;PwzNT0}6$3H5?LjWG z^=Ld^AP%LCtX|i#dkV8on~Q5~e1MWKq+xN!O$!dUstGrY+oueroa$wu4De&fS>=a{ z0;{^g`{J)}O}$!~l2MW`#L`xR9vfi7(<=J9{p@i)=l%+xy^g2JZIwjaO`xH9+hr^IPc_ItE`&}8p7th0()zol0AKtG5x37cuGEWNR=gPp8XpQVY=AI zv)_ZvTPD%#+2T_!mi}o{tlz2i9GAO(#G1A_bF*>*5U;lv*o+g9!`sVbz&{t27|6mjpHYR0!bJ;g)X6P&T%J?Yf9)44x6khxm zaH&u;x+mEn3T_b)+25=VMKx>ix)PihXc~fUt=Fl*P~9tNR}*YtzP%)opLLI$G?q60 z^IF!=(o^AGRZZ(Le;03CjO*ict(VkTLT0A*@Z%gZyx3Aqfg)$d!O{NpK-nPGiY55! zH~g%?=ngvih5=;k<10+jHrVBrmqb8v$0i#>a-KtZ+pqU8*G;yhtJ}Z~Da1$=KtRFC zZwbEl2OoTmLr+lN%!q}G4zC!5PkkQ%Z(NKh{GOU$Nx1d?!x*cT{f_69hZ0+pi+`Jb z<(}A;rSMCedyvU!Q6coTvH{gM(hOALM1Ip<*qhNU(N`=%W=I4X&oPv^7-ylNA@uA8gO<$2$tFR-E$VsRT`-M|9tnCP_1HCZV^vlJJgs!iE$LThaE%5$>|g}i2^r?X@h0|+ar+aA1?p+{^wNx;_(Oni^m^+5dZiH4YGj# z4~+Q_{*y2R2L88?+<$EU!KHuli9qFVf8Q70Hvk_bM8riv7y9Em=<9tMAOwJghK7NL zf`x&BfrEpEN5nuvL_k2qK|@Euz{e#dz{kbIBO;@tAR_rfiibzZM)ifBfti_^kb;AU zospZ4iJ9@wNx_(IS}#yN01_1njhI0I8Xc$yLt=-) z=ogymxP}?q_leN-An*7FITP4o;zO!Xlz#;t~pqO3Esr z1SSJRBV!X&Gjj(=CubK|H+TPlz@Xre(6G4pgv6xeA1SH1dHDr}Ma3nhHMMp14UJ9B zE!{o6efUq|uktsu|AiMS zh!;2{Bm^YPA6{VKE`NxlLP8NUK%)r&Vf5_KNf`ZLF$80Cs=MGwndC1p_3bC&vB;P= zKVSZ#_7}7Nf5g83UorbHV*lo~1VDrU19ct*Du560_!dT)jgtEdoX!));~k(!#do8q zbWBAkapmJXLh|5MJS-w;&PX^+SymS;_oKI_&2sn6_^~?d!cJbUd|9+WFue!~x%%T$ zc{cWvy9!>*uj#jn;1|T%WiPi+@O1EvM&^!}F+m4T^z~mHpUoCd)u>9FbW)Vs2Qc+% z)v<^q%2Uo~RGhfAa8Aa=fyFJj_@;d%E$qWTNoR0HV@UEJ}|ZXhpYTLx6Go z1ckMqX9q|iDP9Y=Z%V(~k)5VsX9;L3)xs;@M3paLyS3l2kk4#}6AQ#VJH8y%nzPCK z@0J6f)2mDU?9G+5Eyk00%h#g%k0MBbnS0N6D30#{VfKOs5d7r^sAR zrE;UYVxJn_uUFM$v)Yz9w-R#Ba=8|a!hkK}@R=$4W-;*?VdDBs<1AHf*r_w=hN!Ws zr3)K(x%PI6({$<0c_jt*Rp6m|&RuvBlLp07hBW(p+!3j9Uu286E7{AJEyMF6<}tme zfN^miDa9qig$iXeC0&Gs@m;R0R%8EqPHD(&tWl4xIGKLfPV| z{X4onGq{@b>=75g4$@0*#xd=j;>sGthT`wi&)N0M<{~g9-LT)I!6_Nmak@WLCvPf7- z_4~LvIvnsl&HCGw)(glhhg197avWXCn4rFEACa|sv@Zv5Jw(_-4bgZh*WK1U( zuZzw)$PIf!?}w+%_2rFtK>wI_F|G_;mrL;3!7i)(`CCJzsFL0y<26%`uVNztHoVK$)H%s3)_(B*|>=-%{~HNq=?zS?ZXR<79fM3jpp| zo@4^60H}a3OogIU0s#L(wbf!^fJIhHzzAFE?Z_Z@upa10Hs|$P@&j7C?4{Ja(kQ0_ z?y8k>wrE^GWuHd#bqm{C)p^vBHN0ky2D@XzbiwxpFEmoUg+5G8*hQGGUr9{p)P`K}L@{wNsS0sJTaOGwR6S=u`HJA! zQ>z>UGwUNqG)P zH_>}#V2=n0#HZd3$BXI73`#p?n)8D)v zeb+s{8I@?=PCApT^WsnIl!`&Pa z*-!oZ>!)BPPLE_(=Ecob1#>Pm z4pk@ea0DpA78*N&QNp&f$pW)8b@q0$z)=P_Orovkv{sHEmwjT?L}nY8>LTBmC6Fjt zu+6o$Dx}7GuEnKSMb!&%5Ihc)FmgjB}bJq|u4bsKi$>Va&)CCS!63 zy)5KXD@;&gVe!Y+(^JirmEogPt%A%7qh_W&X2e5@E6uUki{eK`UM)V7s^-}Bn^Qq? zH@IT-kK*-xHo!WJcX+|m0^6WLyqI^_V7F^n=S_S`eqa?0PbC^7kZ z!QN+wc65(^8nqLAH3ZmByz zW!EsaI9lBurY@0Wh*M1OoaQuvV!bz3#|AZa2GY=!wIwY=skVxBysGtx}EIlZ~m9D@s0 zj=P*R`H>m(`Ghz^tTaW$w6%?;W2;j0%xBa*JUU_19x@erQJ&WFSoUH117YW>&M`ar zq>wQsd1n#j3-KfKPlou|%7*sz#!&(d-;QXaQG*gGyn}A`^6SVDBvitr zrv2?k?HN}G$+W3rbOs7nLNg?7MZo&a)vy8Lhhh7bg-jB?j;9)W`;^i$JV-gxiZWjf zDyBX8m!b-GV84sj#g0ka68^XGR@u{C9muFD9;mc|u4!|MNg{c1EbFK{?4@)#9HS-BlUnHvUpa=CMO2gG^#fYu6Xf2|c}clc_vK!f=m z@C-i$8qK*?+U0Azj+B)-klAJQ$~Qd6A#XLL$(A<*wd5B`nL73m-esg?OY{eFBk_ccB)xefR*BYa{0Ek z&8`;#?$zho9E8hu7kczW(13vU=#`#0#kesu0M-Rvm(w0Pu-0c-@9zT#b0~?QKJ1Qr zu_Wr418qYSbRbYro*(AKjYhpfLrK({WowShQ2^PJgk)?k!LO!hAMxpmC0|;I(MAwS z!r29n*+kfaC~l2I;89HglbwTQ#4I&sdSI~f$5ua+-FrBgikh<$xVS-D=RyshTcD z+0}4+K&@E7;RcJ>I5H4F$|w$gC5y={hlRuZ`x&aK!SuQ=bL*GG;;?${qH&is%B!xGsUZBmYgxe~uSubn z+}%jx!+A_?F@LW;@-{2vfXd-UHd=;-ESIG+uk>w)boh4SuvK@&JN%;`=tmzB5J{8R z?=b7xhh>u}55mQD48@DoGDI$|riqzSu$?jepTFe}TDMSUHY|d+_Q0XoRGVzX+zIGVGNaAyT2A4GH+u( zSF$$mfD;;ux3I8w_cs4K2fj<2s{fLB*Loy;Z|*=nG@4oCFS36Jl*4mI>r^-<1c1}K zD`Ot?m*bIHNR*dIixb!&oy1-}dMhD$UPaT`cYr%TC%k%g zP~qFHF%e#jt=X*d5(6T&ZxYYKJ&U1!Q~vFQm8vc9fNFbX#-mzn3O-F!+0tPg7cmJ_ z#N%u-x_2hBI+{rFGl@bsxQ9XdTy+>7gQR^#Bw0XwR)u3G-lTDqY`xa^yf?LepOi9n znecmS8`4iL`J#=@6&Ez?of|7w9OnxgeOqVEMBFMdZaPZBlePsn#JmunSV{!h-i~Gq0Zy?*-stmNJaV~1GG#q=y`8F! zHVeNH+-ZUqlIieAc>x*Hv568hhi4<<78c=;ZB2^lPS)Kmkz67{gQ0}?@$RwRuhcIe zgl({+$YAq+me4Hb_y^Lun51Z6Qm4{>fLEsyb|H;XzxulL^*;xAWf(~EpF@6bVnymP zER3=uxOc&3koOh{wtiAmlmRe!Enw7%JqLHr!u3) z1*4*xNkl@FN;QlXrtFO+eFwBL$>tWU7;B9O-z>+Dd_pP3Q>M$=RB8x4Bk8!>5{M(y zywq~CC*bTbJteJ)tlsk+KR=*JYUh+dmJeMFEKyg&ASI1@n@r$>?4jiIn5(xeFZ>lD zZgXmRFv{LD)QiGck_gcy6-BP}cm2 zu6~5JpbfjKkVqR5t7YidR`X%A6?cbQ+QJIYEST4gyP7*yad+&Ll+&uQ_*LR&D8#CB zK$pjS;^NYj*P|}yE8)3R0lkD)9YBKBG0GsjN(i>&v zY!dyZp_~|`d)SRDa|SOx0hj5Rh!Fj#9qw#Z3Tz6@NV{yklQ!lI?`j@N^~g`})7mHR z#6zR&h|1KNtpO@_s=lW*&_AQf0d6pIlfrJ|X08Oo)TvL13bKLfWZ?6E57_d54OsWK z;JfhuK49}*&=>wJNB`-?jMsF~!XiuOzq;{`X3)ok`yJ5zt7G65>hJiY%3!YGOdc&M zjE0o~wBASp6BDMzE-^JQ?W3czQ_#f;yI%iTouxr33JbtI2vC9Bat%9PG$PhwM5*K( zto&kco;dH&N@uZbu~3lLO%f8vYs|q?QxrBDyaNaemz#wuXIDtJ#z5Zt<+dh2ace?g zEM9h0Vw|b|!H5T@z}~+1Uj8wjL0?uu0V>X|Z3y}BQ-#&i0#(Qv;IhxULfkD?gc^2F zVWh5AEsy7-^M+;aP^Ei|czp9v?PID1sUb?jtOZr()Pdoq#&_z%M6p$5ab~9}KN3tH z*un>S1+z+NQ`sSEG?=FS7juke5vll5CJFsD%9=R7bG%o22T2$T+`+wyPg8MT(Sm*0 z1$}fhht0C!TXK{j_W9sIVOpgC%pILNlmCpzwW^3;^Z0f$7kn0!`Cc(;HC>=R2ZS+{ zd!hbB<)8`Dl@P_|`W+zf_d{}V)D<*0{`X*fen2KM%{}3JQiS{zAfFj11_|nLA+#_} zphV|q{fD^zPwgygqNqd2hEYNb+eH&|la)H4y9^1RcAH|f$;%f-<{hx9s{f^=kv8&T zsHGaXvN^938xO|tF!M!wONUWL^(~Qcksg3OF4JALv~b$BINt8Loj_X38@Y&7UBk_Q zcUO@hfE$P*jNC_1SU@vaDL$U^V_3zINwB7005H#0yktpsk2$@KDe|;DCMc?%=(s;T z0Ov?`sQhuMqKS3#Y{|L$3pCHD^Af8cR&t8g%W@JnZ4`z({9YTe<6KKhqcy}1s@AI) zG<+bJ$G3X!5hwF7?eT1&q_Dd(_au`rEyf8rP;q}IJ8&3jY`a)JkVRJq1y1;O)ZmLS zDVo|BHvkB)F;1gc2?bU~KtKV4vhKeBj@j{(&9fB_T+c(FZm z>U#2ZjO(1LvA+WvfGSl{?(;F;WBzZnum6s`t9EFO?`g7+Wa`#rc}fI zEV|Vt)Ft#Gv^^@c3Uju^F&YdSc-2w7Z``yY0o4cwqTzGJ*`M16ov5+qbDHzbi z{46G%DsNP;B8G=6G(+e8c*U};A~5?{C4uK_FUWGSFPA$WdC`PIano9|X~nr=ce2cXg);_sE?yld=bd=(0CVxbBVveF0xz0D zJ`-n%PPPXen^W<>Lg&tFU;Ei{igVn8?3e5FL&v53q^mf%H&!iplKuadHR^7mqQ@-mfQ_luk{bF|jY@)#D%f`{c`?wO`ag)+8X1Y26&`l}h z$uuG*~VE-vk0x%nvn1Zq^V>^7hsk$YUz-_}$1riwOHRw&DvkB%BwmNLHlI7Mm@40@1UwT(P=&Ct zcHalpcn7CS4vA~iRT^PNgykF~Yqgeb9*eAKubC{0}S^b)9iF6)KK-yufHxXJ-RFT0o&SS<{4Q&RvbH@%U~&{$#(j z-j3{1! z3p<(ePbHvlHvDagQMLQ93P-6yMZUp(I%j9*){C9M{YNZ>eX-C{rB>B9}D{j+2 z40E^jJ`86LEJZuDLQNa8DKH1?gAbH|R|t3;2uE%j^4_d6%=lA5WK!R3;piK&^JdnG z7o078n(O@JGJ>KbambASr5kDF__=3-U^Znl5?calrv^*dpoY(GWnOQpy}SeF_w(XQ zG}EWhcR;e-W4O35PL=L8cuXc$+(<0388#*UP^E#&B}tnVR0=7d+qh15^YND1q)I$X zfuNICZjePwoxKj35G@`B2mVso(z?iLv+M|`zv}0OYO?*zn`vSdqfCbIwVw=R7E2o*-cVD{9I*x%S)e*wcl@P0xCw zroJ8U>a2}G?rwAWe*)bFBKr1!U_23fyYBx0X~=)_6jkdIP3ABIr(s@YN~uaq%pbfJWnj4RymcuOEqA}LhB8FBND#L?ZU)jQ(p=3U)aZ@GD^jPxl<;SBO{{TAbhH(e+M8V*n z*^wTr;8c;?eKK(i9(WfeNsro;7VB)dEK|C(zVBk?ttdXGxTyP zqGu{hrZsqy1#3?x6nw8qw1{EqSPIn*EKe2ay=%&-hnqX<==q+N>6_1dUEe z9ZB^ky?R(|3zxk;5MnX0hr10~7N21bn`*H_I2})|d4KH;bKol<`wB<@0HUR@SwAmd zx@*ZlXihu_Vmp6n$NvDLrLSV1l1Uys?$d1fvWh6K;5o;E?|G$=*>Y{x>M{IKADjO9HJA26on1PjikFIKEymjttx0l0u zOwoC-Y7vigC4ZGvm%)}z7-;97GI|0-S3I)Xoh;4PK9l&Bj%_t57x;}!{jA=CuS?+D zfs+;FY%`8jil+V*)X?x@Z}=W7o>&@-c$zBsd36D+Cv+cysTWg(^;Q*8{5z~CBH3Jj zvf`os#nuO1K1};CsCX&=04pn=gW5>d{?LGq59vX?gBd59%^D`Hj%;Ngh^GGlWa@v# zVL#-I4ZZ& zB6TROUgD!Up7sa@k?HZShFXd7boxPAbR4TBYV1>BW>s_2a&!GFPz5_r zW5?r7WAYzWuF807biNdD)WlS&qk0Y}}sRRSmuP68B%_gueH?6lR@mj zF-AWr>0U|uK(YS-gbu||ZB9S^6)k$CvW8F(3@gcgJ~rHpVQrQ+u39{Vad%PSKcR4%dsDXOpliAuOgEDDK~6jDW% z=nt__3yc&HP>L!eAe3Aze;{%xl0^v#5&|)i3TiM3xk0iao1MMQrMr(mW_tQ|dS)*@ zyJp|5+3oIg`keE<{hjxG=j&NXG-J`u7T7P5(XKad?jl z^f5>e;{k)pK!j&#?lBcI9Fxn?ss{Mst?QJFYKe2~&;`OnSNO~wnMn~*y)w2iR7QDy zz#W!U5`f1nzX@KVUE`xj_n*5YO2DENYJIF=xC3*Il)huXH-wGy->3G6pa%xq3HpwE zEGgnpJRUH-^mqyJPB|C#>IUg9!*8>rxpLhSg<+Z$FRCK#!v9pm&sl{ipKx1o#NVkS0(S<4jIggE|w1@Cp?qqQTRy=CE`G8`5L1Ay}CHNNCPbrmZkETryvt;n~Yhp4v@ zgvy*6HWm_d-1P@4BJD+ZWvM-_Aj$)y5x&=%X63&og^+BI7c{SVDnf$d9X0K|b)7r> z_oBGR?b{ndm<*24ocLh`FF5<8s4avS>M7|+wO?<70V1BO-nur0sy8(r0u8;|zr;pj z`)X7P3QjBV8XiSatr*-pj37mBW++Hxi9C&%S^`0WCJfRfNMVptJ_L!4NePnzB?jD8 zOtq&{?YC4!x`S}*c&|kf=Xk4A$Hv5tS)6r}WN0Bl77eX#eSuB_odjtzv^e=7zt7b2 zmf+B933gPv#9Nkb6@2o%ByFeYWKXb2Pnm?KgISdHcUg4rD)QmhJp10xQ|$A*e=Qg! z$uN~98O5lF4#TTC^$@IEt6Qx`z2oNUEWA2J`_crnmLw2*{l2ZDWY=p0YWpK`&8BV?^F{-f_dTlnY z?q>a}BMf$1t}*B|b36&sBX2wav5G>~d1M43{zSX#+`E{E>t@;n7yK&2!fR5o>TiFS z#S6C`V$1JyXc$alI$C&P9u=wtMG=7Kx?jeJR(JN7bS`^3OY^My0y$D_eX@^rHwvu& zA#F=T@&&x1vL9(tf`(Cqo z=E4$Ij9FT-ih}eT=>Aqso1o?d$rHew4xME$WYH4Q9e3}vc>UfZyz^M^ke2VZxe2~_ zYb$45JDEgNw2-}hpGD`bX5IFN3h_${GAOda-%(!W#zpRw%gz+6_(wBM)6_=?0X{pm<@ zy5F~1v!sXh_jQek9Dts^CXZftfLDHWL|HC0`05&?ruPm99+3`prP$S%q1s9c1Sfo1 zXa1Gyk#)as^Tc^M_P^T$*oaa5AO#zLKETGGsHf7DPYJR!;)y3TH96swhvPHheVa?x z**{Jx+sYr6JlT=s@ctY&cBO^UeRR@n{HevBb$(CGcSGkbCcS%yvNxy?Be*;V2`Hbt zS2WKxZ!Wo|U88-eI!If4Yd>8dNL|E%>YNCF<05J|E_~6pb7jWjFhRBj@BMMWH?3wZ zPO|V@S@K71Ha*nK;1O3tny2e5S=mgYNwD?teh&WA^$a~BIP-=qZSxcScWs{i&&9v3 zP$3itsrOfSYJ`u|Qw6ttoDDVJ^?5%-8WeRNKRER zw?}rEzU6uG4b4?@0NUm!Xg@!VKrru;OqCn}BQ038q8Wi8+ot=-0r>37v6*7ZUc#Hx zU>qc|DN$sAL3)s>{E#}c6k2MRoU*V^IoIqG$Uw0*MsKC71gTP~!c$3NVp5<;9|d|S z(vMYncV5V;ML3z&d>*uEbw9;Ex9+|-itK*1`~`&_&lfnj&1Ep(ZL|3|{Rjkw9?9lk z_gBlL4R75&x?pq2KlhNAVB_QfB{p{D^@qg5u6$}iPYLemo9UZAj*<7YeT4MHa;t9VpF;g{-zd%CEsgOULPqmj4>mp+}{ZH zL8{Mxo>yn7PP;loYr7FkA0ROB@Ar%hoO8F%S61sxnH&ELM=dTf+xc>l-UHzjhMp2! z{zNOf5l=rpf&^Urn9h>hHO{zM&fF_ql@K~CxJKjZw+s@^@z@oc2MGk5AI#IUN1X^;yfVYrem8kk zo@7+scV%b56))+Wev?{4wM6Av#DG}CQFBo8;!VAg<)>YjX2qr{%sg}W@2)g-3@ypL zZwRj4YH;GxXa?5ZY*CCJ#;_pnqAT{TcE_qLpSw++GX{_rY=64I+Yjg2yS{!1kZ2N| za_J<#a7Ti+g|%H{+aorw+!#+j8bI8|;n)chI$ZJWB<5XK|5eS=ofdmHm>hW1B)89| z)Gv`XG|$p#oue`9EQ9urBt|sfRs8#D$zPUR$Qbvq;%9suf3gP9lW^^Z$;@0F@2lV_ zYK*Li%t#SU{VbLh$B*mO$(kMOazy`_R?~?3(sWD#TMeH7wY7t!3*-X0C zZPzZrjz5=p_4YhRciFTrH8}11Bqv>LkeWQS{=2qGc0LC?{v|SeSII0R0+3C7fe1j0kg zczf>9FeYKHK&xf~$6fG-iH1(GviRy~B&z4f8X7vq^fAsKHv$dwAc20&lLHO&AW z)wNcyLRVEQN{EU|S^)vnz6;5#%5$hg0{{TZuWJAtunY!}5Ehot2L8GQ0B2hmSlWX! z0sxj)4t9!SLWJrXKL{ZX03ZN(00Mvv0HIaIRp%B>>R$Z?ic>%>|pa3r+i^lgI{`vU%31W)7pJi@Cz^h5>gf+5KQTmEWzb;&W7(fCb1CR$00`vin08@YkzyUz_6;Z~j=|cY( zdF+4W<-er#zobk7244~)0Be9HK<^)Uz~6W9mFJ88ZCiU|7Uq9gK(Imp0NCc|=Pelk z01*!WyvKZgzUF*>zUKk}AnO1?x7EMpt+N3Dj{7fu%)fc0SpWb+007X~|8JgtG62vN z3;Yqs=_rt?p#g%XwRP{+ihC z=hR18hZpAy#>3~rhs+z|^`A@vyBRf#PSMZcoGHz>EsvVdsnekclj=Vi(Mmez-mbh_ z{A^xG-bVLWAF-e2l}poOk2njLi~cW&e9~Ua47x}wCKR@Iu`P=!5-ZQ@7WAdjy|I_W@`RB)z`_=7w@Kh#;n=)S8 z=cQtoCzwnv@qZJM|0n9l#s7;=0vpdl{-GQnOLw!Ya0GXt4VAwn0`2>(B3%x;7H^_u z3|TXgbTkfk?kaibpiVFE`72!~BGvi7$#WwX>Awj<16qR&C0=7=hJr z_93~!LL)6fnzJO0vgX*H6gf;}y}usmR5v7&7>mUErPf}(lPf(Qc(#W|<6Qd!?*GvAR+Bp#SaG4-GqO$tlER z(L2yHm&az_n{6ND98x5pqAjHXl)ze=vxZJ+>~q>DvO~DiNZypcrT-_DSSVf}U&w|d znhS8gZ~Tik@lL;LQa$A2;iuif@SFHh9qjA`Co>sT8Zj`tLuy`H0Z)z69s|JOjDY&k z7>(ZXBq6@GcE%-D8skxOBZeT((Z$2s$Y(EGrA1>O>IEL>RmHEcLljU%CJj%+{3q-H z{q$tbL*jyJF2{UFJv}I>(h%&D$TofbM^uV=wi$Yl0|A@^yy#aQ+UC~8;);7GHuvYO zNatCP*uG4s+K}s`qGnnZYg_fUMk6|Aw~`-I?zLv&0F1AGDbXPm!Gpfax$A_GOefzy z0m36HBPYJX96R*W=91fLIH7jL3BH08*}H%*hY}J9ENRpd8co6xwJ>Lewo3O52shJD z@OD1u^Vt9!ce13IV8cRT~DxEr>< zDU(#-21D_rbGl2ts}*!GENa{0$P(%Tgcf8DGJ${yQ1}%;)!>nIRBADjTw+D+SukVo zAJyGk7D3MORnXW7g?QgqXaRuLhO9>`AkP``bow85t*DjdDq`PHOf?S27#T@qe(!vK z>mM9Ydp7UXD#Bh+@08TO)%gAAG3o8zCXe{V4%C;@G#y6rvT9-C z{kIZs5CU(dM_shPW$Noi&{`nGo!P@P>I7NMl-LbS<88q4-@I6 z9;Ek*FP6JX@kIgqCIB_2DYb0LI5Oe*tSu~}FO~#)J*#2hk?M*~7ZlV=V}34{kiJ4| z{8z6KQt)qstNi%K8T#61h9<)*guQ&_5g@rutP<_6kfUrdhH%k<#T+5_$uXh8Uf^~~ zotX-uwqui`7=^S-OC*t;sBw?bAr;h@MzaWux2u*3X>Nr$M~oNl(^$CT9=9JZRezqh z*c5Mb><3a0zQc-~s2N6_G#g7C6mKd51u2@FHY@QVy}BuY`ez31ju=uA#$pKjEe ze^$ih<*@zM0!mG*JR~(#DBs7XRtD{a_fzJMRj3h^L}5>u-8WOI-Ma^S5G$^-xjOy! z2#1}+;_TZ!?e*Vp{(r_wL>{jl&Pvd(IktSN4ZB_P390=AoFua#dxzD)7Z*R(fNC07 z$2wwKOu^I$BuRksvlZqrG*2ykTDdc#5lSxAn8SMFlV`Cc$@fZ3^}Oxm)s6@>P6H3U zm01(>ivo+2HMy~ZInbV_7J-F-s5nfHR}cXex*=&^NX?@qlz74>`!GybrR+#z`=I$r z+t+3h&!BTc&(#Q?>7|w^zcERX_GyDy#{Tzc^*5Hje+mg^MdE+C3w12bO{B_jSVIMI zM)ZkN7A?cE(P*XfsU|!rl3427n>L&mgjm;!hK2uy4!^}!B9I&=V)W>f1RdS?i$yrfrU~0&AVlNX%STk) z$U^jX-u<0aB>#!4iVRCuoXAFzRL`_OQmC}qij%@pTJv|cahx!_JlCE@^T;{aXD_+9 zAm%-*3A(9^HOTonj#YZ;f$>tP1&SeGecS&eUOZh_vJdwOO=y-(pMH`1;<|^0<&}jV z`vzox%^cEckz(!<&bI*Ldrp%^Y#Kij^Zf7g=%weYW?)&qlHF za3JQSm4Rg{H7Ye@a3M{QVFoP4BlF*7enaaRF;fbJ-fe^kyECgXUbsJy^fc~!bIa*2 zD{sq{xvd@uiF~+^CpJ%vHH{^0AD)~DeJpJYOPsW?$wo~6PY?g+u6%Qk8iLn_z69cG ze_+=PS#8zY%|3F-@ss587iZ;6tcP*p7E&_CUKnAD&UnclXRBe)-2Bp8r~aa^71|1kUZcw%T=;x=4`LD7irVI@z(+ZpH5Q$m{cKdy3r3l zL#;;k%}5-So8vHg4Nqt}_>1;YP%fKq0xU{+pfESlYLw!t1FGAS_Vw84-`MK6i~Pi`!#713dR+eeAHNbssXzBJ-DKYJn{G-#x!BS13Oy_ZWK0Y-94ja2EshMt-EI8c%Ueq# zxd*UN9j^*vBV*t0)q_F$ z35Dxk;=djBsCwu)7?a-js}>M@!zpiW`s(3)-iNafodp@ML3~H}Sl}RvkzAv+Ubjj9tpv<+y4WhaNsF7`$IE9ZKO$U7j*tWeyjX!#gImXm77{ksK^A zHqhw_yWVy9xNwSi+{X8SVn(eUH1w z%G{Z6JIGd2K!mK(dLxK6s%sOwCrQR*C1uP1>#h9~TV?v0lw>kO`SD zHBffa1ikG3Y3R)ZoE#MLP>uhs{njx5(ICWgr2tCLn;UtS5NGhV=W|#W8&MY$A7PWlDd<%@Ab_M4_TFLcCM;$YAGU}np5u+SQi1)Pm zk6A3(^YAj_M3@+*jKyUkXjBl`7o&|Bfxy~ev~?@p?B5*-zm^lZ;u|jhXbW$00)@RdYBwQcT2@;7s)I?hY1hadKt)$;Tz1H&!(#KRJb;yR{XI1=0 zIILw6wYR*(RK$CgebLrNPus$sh7)151&w5c^lr`rA1RVgg6Q- zODU@Vare|vVZ?%cb8d~!DSQx2+XrPE#nMA$h)RTCiR5CVfNmVs5iZGL{Z&Xdt2Edtx{@Ll4ev|C?T$vFQb z<7_p%ZUHh}q%?$2uK@(l`DhuZ6hAW?`QLhI=DiB#U>>>tG_oj?B*16NC#(;06(ld_ zvi0Op!#h@rGUG8jltl`a*Vk}_Wqgr=t5*{_B1rtthAc`IpjX*w;kNx@aE}DG)PSk~ zXW7sT2SD=pCW4xD`p}p^Vh8z9#d4drnsw!3%AI<pJLM)c0FA%FyIg$o2CZdlkgA zk4)-GhpFEiDFYwSX{L53x-ey_xZ6)qm8}iK1lKylHClquN7A0aOsqCkVAXliZjFZV z*U~;r4|n1wC#I{cN59O=S{UCB=F6j_0jcVVJ3JV|YM>iFs4~k2%Gor{?MxdHhx?Dk zmCqTRVC`DG##X4~MFkPh9`ooci4A*~+lIl}@xw+*-;)lTMlJ_2Ao9L`=DzygcI>%+ z0{0KmpiJ=p{GctoXBBZ|5;I^;!^tl}YB~-qa+mO;UV-9s09jqb-g#S&#@U?N0}AU6 zSiY%63HU7$pxOO0Z#pC*x~D>(M=ZtGpPnm?L%?fMI1!z zYr=1LkMhHflPN)qgcBKjz5t1#Dq%{{5jrs@dx94qeRNt2)>{(#ccElB9(^CGQxa!Vr6038dX}Nw?|S+W{`g$+`RX1YD$Q0hbve+y`pIp7Z^4+){>y zYs9ij4F;QQd$zWN6L)AfqMqcWq-yTlAY`hSi;=--PJOr+K{VIcL^~{HI&05ANz=;! z|HDC*g;9-Ai?r;^u4m2Df-LK7CBMC+%51L?)1H7T@D@g*ZTeAA6I3};pFy{x%EG*_ zBghW8;s7Z=bXm(vjJhREjw3$~2j7`lzo$Mf(i(~7XTgnFhxU87+Keu5Fl-dY?#0Sq zl4eqsKM(4*k{EPAr7?jiiEE8|r5GTt7R7eM#uUw+G%RNOl2i69v2MAtxXBX0An^`l zgqpruoeA?VTb^8>QT?tEe}I26<`;9&-=@5zu5 zKkUJVA*^nFnEuBM$L6Y=&LJ}v@y*C^AJh9s8F+D8{JDd(ta=bLlE@g=k3;QKIzIH? z%jt$}04ODW#O5_^IF%%F;#d&W67 z5kGd1E*ZXotLGVgiXE7_k?$RvhAi9PRE5N%0Tk)Ca;!-!lk^ZPaAkV~Ic7Hff zFnqR1^c+G-b;rtPlj+T@51uY!HW!EEi0c}^@2LI2yKUde*a;hAz7fckk~Om!x1Yhn z*_c2BMJgTJDQQxZ#w-HgY=Y=CbP$HFp9AN_it6yK(E5UBJ~m|zNNYh7ciqC)5S%e7HlMIQmK^{12PrO>AX2U*lk_579<;n~*T?-^lV9fwY_ zw|B%&&qm%_Pb3+QsX9 zcN0n$eC6zzcP)x;4i<)pmUSGFf$45N_4)Ym2=`+==cPc1ZI?`sHvAuX;1BvaP&6$8 z(M_3ByRdzERhcnZRAJXdprFZbYN6^4a$Jxa4Zb8y=uaExD zW(w)#=tM7Z)d)aveew2Tps+TK@+xLRKXww1&-;a1EGkM{!!4I#w0~&pk&erCGvtax zW=q{CoO!d5gA0ijK!s;8MTS}5Tbsgr|605m6txjHI?82$6U5q0NZBpqLx)p0%v53nE}@K#DudV9l_a zCSO5iL95JaeOEVmskd3I3#k}5+|_hk>LzhUgXeb=cn;n%gP3S*117J8KPtN6nEt%7 zlE_MZ^~mteqyA>pQe#iJwCm`WQs%^TO&`(RiRw*P^Fj|6McO#+IBYRPa$0?GJ?%m; zR7Pt;R;p@Y@&xx)^^Ny?uvfWE}o^s46N= zb{1Yh)p&jaqL)H|n=Dj!6h)r-<}^j^?;5#_J#e-coTsHXdJ)(04ObH}HRkp2M@2V} z{&gGY6~wYbj7-jn4H2KRgBsi_s z@Z*fPnVmyr#oI1{dpJA+H}Q+5s+5Jtz6ebU#>?;Bc_-z_I8Xz0 zfJk^$scXoCT7NRx`ZXx$KCSQI=a_y2?B`$yu^>NPhOjgJSYEYS!0l10yO%>UBNgGl3E}X%s8f;>B~-{1kcoG1*UquNr1m*i&i1sqRMlQj zSHQzQ<9OvuQd;Pebul1X%_r9IGPaL z+pi^%P^#AHgCvPya6i!f7s3TeZGiBgMl2_sE=K7}<&HAf;ltEXn$5>14sg*ffe72V z60IwN-kSAh+Yp*<>x;Mqsym)iCD~IPOyUJ?biG{;?q)k}mC&HcOaxEKXAvT5kRQ}D zRvRTxj|ii8L5N~-*=MGvu_715)SQU`&hptZM1BqNGBlk0=d)-$88%w1eDI5?j4lr+ zEL(aDoI#!7y8uJ&$b&-N%+;qk?Q6~FUh^!5@V!v=;zLQUd;PUEoj2ZhjSU&G5aH4o#3W@F? zk=QdCrcG^lGVBs#cWH$B;V5*sEQQ6J^&VY<2D2Is`F!n)MWA*k%C~w~a-HPWs}ot9 zx6y;0X07_SW(6iXT_N5-gNk&>IT|280w6RKzB%9AeQl*3VC`x%3jYAd_=&x3+$JAx z(%LFUsZZ^I1tKT!t}8wY@e_Al_Hkv9$ak}4{RJvg!zV`g+QCOx$jVI$FRs^bkNUva z4rc#uK~kT3Nt~rWtHQpBSA+M5HLPjo;X3L#5HWNCc@|5E5ex=}h;nG`s{tzpW#gHU zamzQ1KPEwu(b)1=kga^gJ{O>&I))$JnA2~`& z?O|C@S06{HdsSt~Yr0rJ>}*hLvrg~2JICj;7v~I(GnD+dL|21)QKpX&*Cz5Hee&N; zl6DKG@)<6Oi7ij&)WiZvLn;{O;692k>;>qDtou<2Oc$*nIP>AdkS4D|{NW4+A!AkU z{RFup(36V#3!aX(%R>v6cD9<&_Z_gpfqZxY_@Pm?E?!5D4qAS7VRV4<6ZCbIG2RXhF40S;vKQ-=K~o9o%%HC#mvvZo8q zoE2)T+{8*`#wu_G_N@x&o$U9iJkKAF`M8`sq|9Ptv-quIZkS&wYO$$?$(x~K`qp%9 zMXguNSsEeUJ(3|D*Ce!fD26jm2Ne|5-%lw5*SNaN6gYR8mDS)P$IVwd%5^hF3ecvM zoSV&cm2lVEwm}fRAPz4xRD)=dqa^}?pCCZY7=5HR6~rcf$Qz}Sqg4Xx3mJKAHOkUZ zTTxHYre%)K-1N)GJXoAVqFj-c-O(nc@1a}ID7bSYDU=#q4RCZS-e3^?4r+lz=e^hvWV=fRk z#)jpTwX;^quPE@{t4!yxjIH0>dVq*P2eKOb#u#K`^>E^ZJCi~IIXxWWJARMZ$rP0D zO?FuE2-5;0cF(6-WoK4c(sxC}=keWkw8uok8dWb=5$3V$C`vV2Mz42>Ubveb$o(N3 zfWL^KUgM!xc&N4dOREU!gcRW_&^}DV9d&p!!&~H>LO~nJ+=F}4N<7)XFzZ;|!Vyme zRUY(STeAC6b&0JA$%1t_i{9oGBt|Q3)sY{bfAwV8J;?bF+G?H*CxXyyQR5Q}7H=?n zV%#tV)%XlvPFZ%6U#t+slZ~e<5;=xaw_*h=D(|8wKGnjvjhi*P8v@23H@`n>4;Hg9 zexr**v8r?nc=vMKobb;VG#i_vGvr9W(j?hUYKlp6iFFR9h_1jGUj4!$y|TmJQ+g+} zE<8J8T3Ydz0f9a0w8cTFCRYJM>>Cr3_mS8f?h(#LiC$>U_WFc;G#j1cC6aIIG5VOM zNN)%Dtb5W{9Qob-Z2yF}=uopJR@l@HE zt|SOB_8oWc1O48#!ggFV4x9Y7R?zV6bE@uSjRcSiYl>(~;h} zRpJb!PnL5!!deg4(c8cz^g!p={*3EfrpjS<)oRG>H`xV(;KY2aD}OMQ=>bvRg%-mR zu-}%f0g!5KQt?dD?L+zKVif^FY6>;WE`5nAs`G*Af+?ai-3E^zVrG@W?d={aGXAON z2|1|no1;1fFS$t`?RWW(%nS}OS_>J#@o06EBr#(Od1IHBj{}?=V5$+Y!M0bXS!jqT zWZ_xD-+#LxcX2d;7_?uw=;}P{>3oj^9*T{0-qhJ$6>?ZjXR=swIjmE*!|=%_a$e8M z;_9_>$5L;gbtvSiac!JyYc5@@q=EDl6fLXJI7f!%_p`uGSJ!)sQ~7+(sF{PFe2LhIR8r0YdX!aFu)yiG&h+AP zJseq_erJK%Oyjs3ZJAE$SZC@3 zaz-CL3U`Lk?jmW%ydrGPFRWyXPOBGeg9#QC>qx-pol1qPniVG&QnJz{6oL0@O`3_r zzRy`d{C>M#aZPEx!B$;n*G!M#^sv?zPwCn(UwUH=j!mO{k605!Oi>bSp^hhp<8C~i zcE>sTEzYt|9BGFdn-XXFNM~TxC&1tC*1^_2$p?3L8$!#QbH`^(nm|9Sf~Zg_jjPa+_`)FuZkXtkcl`)2k7qCbuNuNBsvXnJSbdQeiq-` znfSC1pPnkOAsU7xMNi4U~4b3(FZXn z;Cz-QqfT*fD;RvRT;CjO=G{}b+t(@kDUKlENopUGeG;4?>dCl27yCdYz%IEFQn%

BN-PqB*fUEY5-2ouI+p{$Rtorx^2&1aW7hCe3Il+(o*tG z3cqC|TC?bsX^dCG%v*Ly!k()S%~a@9xjf3v+;_>)T30#u)on|?HMBp_?7B|bP11{OCeBW#`CFw^5EU2M%NlcB5anA*z8#{QwB zx5eLB(^hQ?$|7XAJV^Kyp+PG7L+*R#Spg`stPKn%Qg-6UUo7)s}aNiCG9rFEeWEC!(4U?ccxlg+nLE+ z_2FBH9{j5|87v)IY_fLhm87v!49O=DSq(Kau~^ukxU4Pli_iA5BbUbQz+`ZK3$AXF zN`vU@(syos;xKd3G&i=Wb0<`7@g*&w3$8)ar=Zd&s=R=EMuE<){EtUqRiFQgXdi3!;& zcjmS!%@f+3@xHkkp5|H&LwtgMs!enm(O94?EW);JE4f7au5|ESMEA(jRev7bFUrME zxDG8jIax{HqD*w*ghK5avBJ?-PjYkd+-*xGMj%A*ZliW{L@n|56&Wn5<8y13TE7u9$n;7a{$uX)HNyAqDw>_)*2bymj75M3O>&1K#~sR4Wc1a%{G$7vEfglq>F5<U2figR%aMg=2W%$9rx`Rb%;a za42Dd1k)-RJWwXqpbo@upT0e5bjXz{+4<0jg*%+!_ZF9FhTaPgjZ{q@AF(iXs*ita z7Ux$lhnWNyX{V$Ui!elcQdl^!OzpG&1e&f93!BaRtHK zgfxG0$zU}(4V@3@CyF{We|P9X-zjM;#!512#=il<3IuaS=-nu zKMq7@_q}0qXZUjzDAD&HNLrP~QefTYlY>Zf8$Ulf=0_#g&MH~Jighp?e$?p%Yy;>d zdh9xY(|gV+Keng4Oqi3zw{!Id8ra$_IotDyPNV9WlMwWtHXJnQct3J+x+E~98;>atrgd-%tg zimuaF_zY4Ee$f44Q|rbqcn&*Fs=O~g#xJ8j`yJ?qh@8Yze{=zGfzvz`k-ke`l&#|- zPNwLsHl@$AS&Crd3ptdR-6jx*lzgLvm<2sAbXT(VEiAu{3%uNs6 z+#J}vii-R)`VE}*Z|)#dWsaiTKQQ!6F4~#B92;%CBPL{PguUY&hbHeeO!ghQ>LneM z?0P^1yu|_;G9dQwcJT7lW$yfo%C5JM&dx?Zo|tAe7kJ8v#wEoW&1=_E5PuJz2!Uo& z)2@*NcQ(5l+M2GGtykiqlaOwwNDq)ln4m@UF_o3RCvJw!Huyt4s67yEBhF#^0oiu} zzZ9;dLjKA^c(R9*`#DK1BeeG_5Yk}=hTILx$mOVchQ|X3yHTmpp)EX(Lm;7ag28tm zUM7u{+~PNk0y4_xlDvFAKWn|unSED!@!oER_b&a;cBQ&_n}(3xJ6T)_af5_(xV0=h z+w8RrC1?N7hQQZ)&DSYYq7J5r&7Eb&$Ck4_2Cx&zE1%rQ?_j^q%_m9|nA#h{gEzl- z67+MKRINki>`&%AZ*IO8Lj)KLA#A6x!6;qDL2jbcTQc8;5W%9qi?Kns)sl0U)^^3o z2i7u``H|MrqJc=XO0t@-7HlL7i{BN|-jFoEkg>P(y1lWLFeLxFoU+ive3Y&;r79>N z>ro~|4d2zyV{j5D47uSb@@ow80J<%UG^RHu92OkJirAStfje4;pcwTo4FL3{)TE#nn0fCGTEHT63%js!F% z7Q?8uOz#O#Efa%jHMdWVr@wC47mx|;|L9`N01cn6!)5tJ@$8&VX+Jd%w1FR$Fv07>s?ILRm$*F3nYXq|7hJA`P=SC+s$!X?;#r9MYkV?Q9p0JXX5cRwu z>fV_qKO){$u`ZuRs+Hc?OyexuB8lwaY;*dN=SS)!fHI|8|KpE`IUiEiD1O?Ls0?W< zMX!_%o?y0h;wM4RO~W`F*5LJ6j38xGJr+NW?ZmkIO)WjbOF?UkU*`MzT0%hmzAh(x8 zFy1q|@?CF>js4$(PecJqujXPMrPk@XpPBW6koa{*Y`6vSYfw_XLO|$isikNVEU&2& zRr(lAF2>EB@aS|APUb{8l00m?%#Jeqb2wtBkdDSa2z)me&3Ckl^q2m zJ^`m{hrGGBHifp{I*Ws%2(ucF700chjl-}~f<8!2Wn8H*)-nrxB;N2&YEF!nmZ=6H zcXvW}@DjgSPlY=k?>Bh3cA~)N&Q%GR16&Nck%H3<(bjbQtbVC z7INR2@_9h?=Zppe_&9f5REk)Hh98n*r_%Xz8&V(Ov9UiIB*}J*Zns5dBUgh1R;G4`NqK+)XWZK$8?;=M1XIYIZ{jw z6?&}mESWXSc$D7TMvJ;eCdU4Ab#S6FZ&(OE_*6eO>+nEu6fFfkn0SSG`+HjQa9qd? z{eyW%pdmY}QrGC6im;9}XkP~S^Yjy`L~z{)qncb-mPtz_tS6oiYC> zs$Q$}<_4zoNq9}BgY3^vI69~Z4~|kK$sdW>2NcaW+#y1hVM7)xoD;%J*~KJ@OEm%{ z&Q&v6bE7{dh&n*xbMx*Bn^zBm3y=#X0hBrHc5G0w{&V1a`=>Nq5YC2UVy!HgByBge zGI>IFNI%Ep5p5IP%yJ<_QYcl;S(p*q2@wjT-vf(2+ zCSh>~coe))7s}d$T=3?hP?_b;&Mkk|e#fNvK$+*#(%5d)n0J2a&z>f9^stme$M6lA z7-}8{v+?xOi7{>&g1HQy_rrS#39LlHF56f&(Rk*GJ5~3+ik$Y$ zQhBmAv?hON&KT9aC7M9y3Af`N*yw~WmPk#UjNdT1WadNb0D{jPQAU=THn*g3^g;y| z;G(VNi|Si>v<1xpF1UUcy1PAOAX6d-6Ec^*OyzBS?ncpGf}eRl(6;LLjKkFdG0KjK zgctSgL`NLi{QBB1MXP9W`SyO?;x^*FXu>tf`+M#7G|wnn`}Jm`(i7+L-h#5~5Y=Ii z;HAlQta`|=i(4*ZE(k~Q1;t-|UWrx_@%Y&n$-_?5dmKjTeXioTv9BBaE3${v?WERl zw2SKP!nFlp%?{Ug8bxVI3Fn}7ilPxn`YR=uV2KCfA?%Fc83div8kDGYoTZjacIdHq zdT6G%5~yVY$b!j4PFQavHVN4vc;|ad3&B29Jj46yb<-WGCuUizX49l%w*uU#$gB|;3iidaP3>vnRSRh z+`?~jl1#%H+a51|<^%NjcC^3bFgYAFkb=|bdbKriUF}7en8uej{GjYob<1Txp?Hvlw0dw7 z?l~GEuix@ABhE!D0)1GBf>R_32&-0i?s>}zy^44nR6Ter+O5P3tIZ#Def~NNl)|wS z_<1p&a1a$`2kEd8_z46acWzuPv^U-!NX<8ttb$t`_w$mQ0odhw?z=}3IwSCWQAPH+ zv?ok>;&1G4P$F2)*MfM>iY&2q%TV^#`iS*$%PE}@(2%Jh!6b5lTb?bwSXnyiopaf1 zBr?7Rm3SaGr6q(+%-6_G+KO8XDRr}b!Nur0iih{Vc4{V7?f_*KOEZzoOL)Y$gp&8Y zq-d@(z9U|aQJlbdc4=K&2#t=AB-j3TFYfpmz3uh2m+geJ!9P-r8!enI8AwYk)_Bt_ zfs96-0463z@9puta~Mg*1tPFu)B)8kUFn|%L9mwE-GXX`qo0?B#p(;4MPwP2n`g%<#UsH75a6CLLH^-RM+vMPqdGTZU(M- zlXseObJ9DEX@BtZ$fmy8w=S|tQ$?2d=N5s!cLDW6KfKTs^RuAr)?(9Xag1@i^EUl{ z`XScKUvOgff(J&RLtr7DIgA@wGjk60#n?zgD=G0ZTd)GK72x<|#Mp_2YN_=MSj$ls zF}vUaNF!Y+YwW5}#M{Mk4a!Hrer8wXLfGoQ+$zhmwI)_?_(Gx5r$HwyEKCia!%E0l za@hjyg}W5aLNl@oAL==K5tAg*1Di-s46YAe>#@w4R(AUG9oJ@rzkO9C1g=}~VM{q4 zDOJE2w<>_-u(f-QQ~yu`l?;uB^C9F_0zb(kFyuij9j4wqL{((O^U>L+>)(3KvhHpL z;ms4kfdqywiRyBcQ$F^Cqe+V~R&gCZnk$3Sq^rm|0&zAkzKKws)xs4fuM>r1)Zf8u zfkQZT-S7}w$v?dfVL6N}wxh&c?GEX|8*jjR6*kE@_GdH{dOh~fG;XjcCF-15ThAIGALRhFs3Lz@6p%%0 z@oIKm8ccqk=&u8RvdMr~ro@^KAqKP~&W~z}&8{`2skkS<2cdLnAgd+6na(*M=MTUOifVN+n<-9P_^F!>Ipd?>aKsm6%i-KXelOJV{SKYsJom3=n zQ%!P9mWKLXIb9=Q{BGZ}WPkPNTAPU)lwhuGR1Bhp*?WcJ704(#AQ`8}id86~S6imB zz9$_9?6+wt9cmxc0NcvBK->n-#t z(jmt!yaj0g*fw!1((iu6VK~pl(nuLZ=#ju8y93qq=%pmQ-GJ$wuOq$Y=|-g$hmEeT z$N-I;`gCRm!MUWmQdgmpC5n+0O06WuhH3xcw75#gQi&Dk^$<9sEF z2otbyH^1F)7}TEiV1?pY=MG!_NjFG|2d2+bv~WM1aCS&}%{8(*!FmxbXeuTxXEGW* zdzXTY17j5sCnF-Iy>Eq*{2&*)lj#w_Xl;7X$=>Hh2wE|Cdf4@oWR#y5MbE-rm){po zil@DIO`ohrb=*dMmG6`(GflE}M{1wTZ{i_Z!pxlJpggx3@3Drr_zx-@HK9QcknpPeMwP74&-@uPLR-{FyTv!TseOe zJa&P&z(=43ys_S-GH{l-`-nxUY<~K%U}kJBkBlZ9ify_nE@A~We$c)Un9&%A6uNPr zTk2Pqo|ga#{Y*u6$uYgbGP-d+>kZ9)NT|@xk&2zI!d4)yD_sf zCFrmaSF;4!ojfR*C?@dR<7Rj!jrjSi=9VU}LyG|f)xi-1Q#BE|vEDY|U@HLUGv+8r zs!u-}!tqx7*R}=|(`mEd&qZIt(wVM%?x>}Pd5(oY0-KQ!u}8`=awshnxi`$Ze*VGf zd6Pch#$;c(edu%|E%Vtjv0wFJ3+z~VGxI!qk@x8<7F{LnxFs99EGrBHJ};98Q@X&+ z&5Spq)OhcJUUOE4&Z6Bujvpx0AhqK=GiYzhY5%?E>#$L#3 zMCpwVeG-CBIvX7|>WIxdkshB0u)m73Kry;H?0@|N1&>+}Z`N1uUE^`pO#AEnZf`Re zLX%6(JTP9A;=|HO_Gj$Mc^tTwb>7MdcCt=fiD*F?DtE)BahGpvqZ6Zy`u!Z#wU>TR zEw5I}?{`8Bys*|(j-aR3aI9YTBo-(>72u)dKD1&fd_*^`+g~a{9k}rCd zo9YzIvpQ+>jbOT76Alg5RxjsH7b_#CKxq21v^9CU_c_dE)^p8q^BHCZY}}9BrPaA` zuCmH%pz{4QGHDPy1@o}FAB2PpO0w%*2TB>>f=sxZb*$^2n9mai_}*SMZ*^{2kE}m+QQT63hG%iD_`Dt+r5-wEfP`N6JT#wvNFvr&hk<-lw`E8iL+mfk z*grRs;>}jA3Lm_0ikKgGVNWb8kwLa7AL|!J>KK!bl+lOkkTK@tue0R~nS~r1o;r~3 zu~%KDSRvCss>VQt88x`QoT`(kA|K(Iag`SPa{Hf(z%`2SYL)C)mN%!_P%|h%%&x$} zQucq|U%oUU3^dQ3-rzhbvW4Uib!uW_@I+A=-45CPSOLnp3-mV|a9-fwY%}Qlc`bT>1g@vjFYu#GcDxgP`Qbh)$W}7OGjANf|vB>uPJ* z2Z;_JDIR&Z6M&m12!cxFz>9CJNBxw>v#Vc@qwbrf#ZW|;Wt2_D|8|_b{q5Sl@{w0hW+(wD zEsjb!#&Om%V9$Gf!~rVFX8Uoe+{aEGjoF)-S?y54Oww81KVnh|CZ#U_E*|M)0!O~2Q zFQJ)99j);JlI^E^z3NGl(+Keamjy;n_fNkCkr6*n=q`qHC5)6FMu7`Ryig`s1C z8iddk`Yb1ySxtpHE>2-9-uG;ys>uy5UWlEP%hL=dbvc#hBWor0!at+y$H+Ylakx{A zY1MM=t7%&pgaDif2OP%JhvCZe4(OLqU{&0ctaIvnePtFWXA}Dt?-d-Rq?IAs&HUk= z3U=s0Ydg{m>1Hf(BL~jUxIgN4P7Q4wWj4z*DrZc}17+fCugj!iZ=xQ8v*AFK-pah< zdlQ8ll}hDH9lvgE6eC@YZ_Msi9fCH4329@gwl1|-uD)1}6JWAQy$4l3G&g%TRiHPO zrEb6s|FZMv>2T8V;G;$nO_H+{gJLo{d3Aym!3h79S40sn2MG+I3rPpe^;5MSI4 zh?nKmcl;x0u=2z1lF!4@hY`;c@NC^M7X|BtgXZ&t<#e^x05p9IaN;@+#+Qo9{={pl zFu~_%6GOxxrn9^G_(E|%RrDR6W>a=y8{({Ler77-SuAJ+im)ZTtAvGak(FR3-ylQ$72}PjsuUZ(>%70R!m;xn5~ny8MpdGPQ*-{@KHM##gk| zWQWA^%&`GFgy*I+LV1y(2;v9{$8Mhb$uVUrzVdEarqk`PJ+|4YHVI|vTfwrZSp6ak zR9*j5$eeNPa{}Fm{Tw<0_X8&Z8F4F6g_QTNxD$9rDcWWr%uN%b){twCt^meX_;>2o z$8bX1jd?2>(y7l%HDCC`ccP(uki z5Q+T49W=bbJyb;pEd5iyTw9gg>XOmDAs)rSm)Hu4aeM-MdM82B7EgSMc8ib#<#{2_A&Ybka1&z(cjB(oPMsjHFCu`A%Oo@t-*B4nt(6v2sT(gU$(9${FR{<k)xe*bPCcnZIXK)%lbY25p#6+B0R z9zsZ}bw`b9B91M4wqOh97m`DS#HPnRHH&N8sDD&BPB*$VkXX2Zd-Q(&howr5;9WrZ zTQ6{i(qwqNUV?{wXySeA>dgHrEP$MN?q+EV8Ex(tpR`n-&;ay^6}M9<(!?+p^>?Wn zwg*J%YPGK^R&cRuz76k7s{jw$-`e#ve$hdvAqf||49z8LhvF9}lB-xeY7Fb zOLgs^J8&aS|JG=VOZ8|TsKWZ_J^fk=kq|@X>5tY{r}u}=>lT{gcgstcCz%ab^%b5l z462+ab~$6rHhmOT6NB>zLsf4>Hb~{y)GBqTHi)8< zvpo1}KuBrr;MA@=9jAg}9WPZjF>0Y^`x#uW$> zX15}EhEnJJy(n(z9H@w-jDe<6w5X0eZ2~zWC`In>S0v@xxBK~@xKM4+EJ(nc^Lfx0 zBu&zgcYGQVag@V27u7tcTVp$-zXN=+nsLWd`S)xRoGBY8Z&tX!Z4)p;9&GHnE~d_%BlTY)}CXE;|vQWv0h})&HTSQBcbIpP-P6h zywphvbA9*3j~rD+RisidBZmHL#NHw{s0LOGmXRP`+oaYY=<7UYH=&Z`XIzje8@IR~ z+fCI)B3SgRorKbVZcu%uk@#*ufuPMa2h&q=pV_)?LmgQ~VY;GZ%8%9%R-cM>A}L4T z;O)KNZQus61<1**!)0x*`m{?&n zH^UQ`AcK&-#rCL9e+?=Jw&r{l4Mz?qpOs@fXg05EPk=2>*|j* z9JNPGVoZ4~uO8P^17(6j34*d*ib(SlvU4vU7SEKXT!61bcka&eh9Qb7@*fg z!X}U7yb)|S>SU=tMiFJ{r-6qIgK-o8j@WitUP0D^twW&$c6gtEnAic$p5#kSGjBtDVI{1zq_fls&R>L z8|I>EyGYPNT3bF6s^PdJ9mweA;nU5aQtLp!7fv1w)UNiONl+r7!ix*S(hU%}n?Wa} z-@)6%N1S8&k50EUo7{^|vn;fg!Qc3S#k|w9xS-%5sj=d8W}Qzg^iD&7GJn$oQCJHb zv%{j|H8BCJ!Vf;Z;_g?Pprkq)uPrjmhVn!W^$UKwAzaWPW9?t~UuiW?kfQ@p*(n9h zK!PhFhE-SC;g3fYF48|=i@=$w0-l0^;D$8Dx0uvYF@Cc%5`Xxx0hlEHF}Amp(HgDZo@$oM(q}6H`PO&Dd_}Mu?@=aMUo&S~oLLrYI`n21ygIgn2)Ma_IaU zc?>h_XQd?&fAqadUk{J6Y7^j0feMz+K`@7xH0SsB#nP-^XweyD!Kc+ zif~L2lA_U+Ey?zGm`$c~0`we{Ca#N0*Dz&Da%P z&Y=|&)P;Q5<}~7g;(>xt`=q?BU+9uBRNy}r2$Y|3q-tX%h!^c$J9;tMu@P<}VbCKF z?ppuFU-p?zV_Gl)Qj$f$Z?CNq$cgDcV_XJTs=7l&gx3%g9zo5WbZ3rA#O>I9t^}mw;S5bMR_nU|c!Tvj3MWzq%eNWGKtc$yM z{PHt-_htEQ@2F2Mws6oPppEg%u&nh5JOZFP@(19CzXm|o)Pm3TC+`Pu+=U_ryB|5li7^%nXW=n!N6_ba2^;U=BO=l^25qu4S{Q`O`A_#Q)Z+)I0 zn^0EuAF6=93vxu(z7W81A=U)jAJ0-VRC7Gm@Y;mN z!PaIu+w}LB5io1&=Y1j~z!qG80I-SQk3yfGzUBu2Y>eEnOBCp4R&5nvGujSRCQf>9 z)3Ga+&M_a43Pi*|e{2Y!^+10!?J?oECqmy2#%M|ckmBD&0gw&!2f*@4c9>WvY|P65 z(HUK*)`hfjYt(bZ0fc8N#9g`@c5U3C>G082Hzwoj*Vd1Uf>O#cD+6Xhme`(NqSZjN z6ZaLE`Ysr>ITkGrwj1H07jXi=H2N2SI43ELJxF5?*72E}S_vIR{$>MWWEB|1h*TgC z`8cM&S`!#Wu&LsKFLWe3j42OxHLv6`7o>A`=w6&!{E_Pq@emrC(jxlY6;0x+H)l)bo?-rL;yGyAkm_hEMwj51&QL9Cgxl zi|5~SnlSBrM`c%-EoJzhJ7 z;E|`!z^~JEcgyEG!z2#{b4w+*zw$mLg?4QRZ`azl^amhepZZQt2fd+x1OR154?tmP zJ~-{aXx?g4EwYY%DK`;=!fl{Cd?1V*R8#VohLFRI`7TzBf}bk5fL;<(qK|dnnYLKC zVQFzwXoH2~DJb{H7WZe)16EwKaxWOgu~UG@PrHIi8l(Q_hiY%gd$tL)6guF_(sfns zzc&WTOwuKgE6WpKFmM^dldS+NY21K4TLqTZd7HIgdF4bJi`)}c`6ujdkWSa`PDJkf zqm>iOKcy3Xj%tJ*=FLPuleWF^yY|H8Q=`KwIW8P3k!YaV3@tQqE$JFRcl z9~OO%W3W0xb3v$lKJL7ydlA+d$@$v|5;s0F^M{&_<>CG(@tx?-^Rz1o{c7_BcKPTW--^k{6YcHn&$9>M$OHCs0qEgJOyJ}K>xmU+Qe^CF z&TU|=D-f6emLRp4Z>e%mwAwIMPHr13U#BA3#4y4CYt`(wCz$Eu7VJr&%Ry$ZCRNXX z!If>`1v>MW*)%bh3F#m$}lmRG^EB$w{$P#Kr2@8C(uLZTYq!yYjIIBaPMq6l95C3lXP#G>U%dCkux3{HC# z#Z5SRD;h6+mpr;5JKQZoMJlF?%5~Mc{W1KtJJpIuX$fMa^q*%hm z5F_-*UGoQUaa{fV^;Prq2jna6R^Gz^yHh0%r?MC_ZL{SFXSKsi@`@>%_)4q>n5>@Yp|(isR=Sc&*9_U zdOZ(t{IRAxCM)h{eJewQUrfhUa4t~fvC!@Q=*$T(l}#Ek#k40f*O=)j)?5Y&C_Ng;h#gsF{_2B5AoBF%N~#0vEpK(2y@FJuUFvM zDYg&ELMGLe`@DQBN+epDGaxzvX^?qxRron$;t1G&oH8(E*A(A{g58 zm3#X|t|WtGTOtNC(HLt&cPIE2AX_!FHPuvjafO2B7)17j;BsXk<6KzJqFqTojt9 zJ{E~2=J4X#Bqm4F{#l$X44s5TKyVywMrPkn`0YjpHj@|VbC-cYw?KcHSwPDXlMpE~ z1wHX3b_rWTKyZ1QH|ipT1z3M=Ub}p>VTB(r){9W z8#W_P93C9`_7fr$aQ4hfMg{^Nxesm?j$SVBg_^@98^J*1QXle-OQD^gG5kxyP;kTu zFZL3ru~n){>ZviowSaBVfc3%dt^w`xQCqvfIKtM3B)_+^mkw6M$YFUBlNV<2>H_L^ zTUVsF;;!v6`p~~s0qg+)T>1f^OaOo#G+mz7csP-n%T@cT3Afm|IUhcX@ECg~yCFp4 zl0m30G#7qmFSnWZMW!EFLio+y#t_4^Ayixh&scE)+jXm%cqpv=ozlM7W61?8H|{L6 z9jHT#O1YPe>*TjA-=hu$jfHgaC2N=a50?s~DFTqB(QjO1At+I_^KNUPd0LBAWmWng~6*>`u< z1P&3E>Usma`Q>SmoouP0+KZ%dVU<4LWs%>9h;p=oSo-5J0wkAHpg?!vP#tVaNdZ)IT~P-%2#bX{g4!_&iUv) zel$Gy?(H|!y@e5VAr>r06XH5XS{Y2y;N3U)t+OiXj|{Aiiu#Gmy)gwY^=pA3!sA!K z{K~(b%N;DPLjEo^yb0zr7`Z}E`C?Y=c|pqu+q$qWn>zg=s>mY&Wp%^Sz|CDyi!SDR ziJVgnixQZ38rlomA z0emYUexT5Gf4knSO>nM%g)Czx##U%Pu~BwK(@`AizrWd!#{4I&UZ@hTWD?OutDV$-(EUQeIP#`18L674k}jZ+)gftmKYpwmnf0H~9aQd(F z{xiT5GgNX+aoZ#&4)4ok8d9awa?|9$q`y&1izU*#8@RPr5{ir8w%rpexnLZFVMJR?WiBsjz zT@7-&aCGA+bgY3T;*SaI0v-kHScU9|1(~TX^G*@OV z&D3hM%ddHEs*#f9mKNZins(WB zl%yI^+|m@MAWcr#jv)jei{bv5f)eB^^zWujgmM=K#ZSa~l``gEH zRA|_b+F8hwTS17P85hCCU~uM#yg8O7OxEROy5K0)gAl7O+9S;SDKOFxs(WE=W`rJ}%PFv%G zV$7PG_6*u6@gtKTEs@vqfdj<2frIkAk~Eg(=J1A99&t_OO4 zY8+}4;lD`O(jtL?osDpFXi^Y*^ujzx1X5WMHQh4h`dQ6;~X=Rb+94D0vS_}iJ^%>xo=4lvE14TNU5P68g3nscVTk~$wHPB^b!I88o?5puYg2^Q=9uotb_DdJjsyq{7WhtRI{3V03XGg)}Cmkz0SIilT+h@?&uUp5*r`vb2j& z#a|+JmR=SJA~v}S2-+KDd-9|!!B2d7rC#)jncKFBSvvAPqnUH(s3vfOyc+}?wPBB197uIL|YLs0zO`bAm zoh3)QC(eQ(`C8$Xt#Q2j|Ih8eBLXLq^4vc%%+`u>KunPtHMaYBt5*#o&R8mSMvwr6 zc8h)(@FG)0Lq#_LOE+O}7=mDuD|7(WH8)GJhMSA1k2Xp$^3XGsSks`&>kheyV=AZZ zAShi(v|6iGFkVaCzM=;vxvAb$@yNmbC*@>0q*V0u@mIg*XOvu4=aa(4&z? zW~#`cAaF1B6&%hJ=A3lgE^@=aSc?gb7uhZ%$Tm@a!bDJc$r4-Ys=RuxbeT z{dl7qI8HfvRIjuC8x$o3>1kJ!A8JEd+SK@|r4`Rxxz0)xGZGWiVXvNNLlbfKxB4~G zV1z9%PhK`*=thOsc-*Bd7DD1cS`TaEiSCMZlq621xxz)^WbDe%^I|V;q*O{G24fs$&93W zmS^n1DDTF@8jEUko~a^PCiatvIUUhjSP6-|wOD))H$7?JJD?QIWowB|&O>qnuHDP- zK1DUHlqNw1I1wp7ICM+m;FfY30&+tq%GyAWtX^~5VsC|~gHHGKp5qeSjx-t)&jQNNyPNemBX zL8#jNp{PwzO{;gXg-i%Dh%S11x7C;VIM((>zKd!>Z^2=^hD1U1AZ(uzn@;pU_3V4wx2KbGEh=D(m)%oSdMuuFGA@3V;$M-H zlJqmJk#g8ZxkRc47Bu!$6oUrg|2D5>*Nkyid(z zSy_bMEoY?vrVtqPu5I>N3F;K1jqK=X7r*bUVJ`mT_izpv@&LE_i~;@tmttsOpZ&jJ zA=%6I7tb5l7b5}4k7BUH3YSPC#(Yyl89q8u!>EH>5gq1CMxTBin8uLFP z(ZAL;-+!PHo>8GYMZtRnPc!8`W(ZaG@r$;6+d3 z6BmN^`yOOqtdIh-S~0VN3{uF04dydw$ub~G(#kWZNDdB1*~!X(2d_}qaaxKw<69fR zfK-&jw3};w3`XFHd+H56FWENmS#hOV zB}~ay;&o*nt>x+)KiqX>J>)9$!suWCpP>F`>hZU%zp%8dt=O<&(pz(_(&gml{E&e! z!#jAKlCFpXt|Q8D6s(GV3AUAXMKQKoS6zb!@f2K5X;9p3(@7_sGQH;- zq3cR;9+^!~Fwn_T{uv&fHewsAh)htRz${Y~!DAP`?K187#|WDIld8@0hj=x(_Y1&I z><7H`W@>PJdW4z`5h~!)AJ4KNfBLqt@&gFr@xa0l06+=M%q@f#vvNxj4O7f!kOlR~pmy&>;e`#Hwgd#WYghH~obkf^CoL;7 z!8m7rB0|{NLy#!=ns{9x`&N`JZGp!V6IwKAlQh`?DH6!3^)^TJ zfRo4p@j9)~^0e`!gX4mKH4`4)aFf+2un34SVDCtDrlbBMrkMbO1!y!CUsrMcjTy=C zlB`bpVr@M?T)Jmr$wC;IH#OWW9N6bO#%I4#P9;d*#tQyAakVu;fythzezqJ_<9zV} zlNex+Ak@(Wk#kabuKz?~KX#S);IwEdZ}Qm>7^4326O&pTai|t#S!_#hpebK@-%)ipJj#v9A(9+at{`d=^m8?VGKmB=^dV0R<1oB^Q6O< zVR4CRNI?7eW)3)pWZctPoSZfzFk*{YTODVGK;w%!rGlF^pf_5(MsFAk2({y-KFhPo z5)Y7H=)A`ScYWM_r#W!Qs!E%vj#)Li=u0P=peJ$?jeT+eC$lDk#eYJ1<)D9zu_EWB z;v&Xcb6TZ>JkLSs7N(V^GpiCWTJJm9yeXhM%uz2mcP*p2{yE*~%?*4W!TdnwqWw!m z7p7;n{1)@S*gkTstgBdGIsS{YG~~6&(ly6G_6qm{*x=gK59?rpvH=~<0SSjTLI}Qp zbB&Cr6|OhbVeeVdybbdF*$__R>$;Q9Gv7&2T`ij)ih)(B&#GK%Fv!Xf|DmX1bJCiV z=~2*zU}L+EIla@Fn$p7%Kur(6;9?NNU_&(L%)N(C_<(8}>vslE_1ZVA5u^D=3jBf3 zq5`xo4>A@yOTY8ES~@oBY5a%&E#2WJdyJ<@7wD3k+3-fZx4-qQ6+{94&^*Ndf8p^v zh!%#CKJ1LHE(HbX6!^d_p$Te~!ZG#JtLfiT(}0G}E$YKox4PHRlg=uPl}zt(0USKq zyWz6pGLQ1iTQq)obA*Y_&aNH_idFFrGLfJS4Xq_4fGh7h2Gl7ZbHFVZD_bBY! zLCEu9Isl)3j#wF-`@`dO22nn90lOj)`DtYX>$V|uFif{0G~5au8yR~-*HMoXCMw{*?sP~6lyMv6 zim7SfO^|kBVrbW5PlY{Q)3ep~DxpPM9}YF8tdI}dY9|LBC-uLfN;2*6=OcWJQ#-JKz57Ou$o$Iz{wy3bmaHklp^e<9m4Q-{60 zq(!_G$lgU)u4yeJ`C*{K)#YvJ3(h{~#9NjC^-$pHla!L8&ohuRtz_{37dhnp0O!-3 zf;w9()>Y7$e1zpe@)gDaE_)UNcJIguMe_cHl*sLnP22Ofx4hLGXw$*?f zWMFsj1p=v^UQMbQ=Qfe{@q%m(SRJ25{wl{Ad>fW2wxoz-BzD_I2u~?+pK<%KV)@QI zZ}x8vx7pXc9}_Q$R>6X(AgYNdDqJKYMJ8RNM6r13TRn5cv_l1Io(VmGCTILZPJXD1 zpogcU!K7fq@l!7}`Z}?%3R*-pP%UQg6@KiB7<;Mu;kFFunYU0ORTGtHKz(FxhJY0t zMW3X*e_*zz4L@wwdeA}#jW^w;U=J2kzu?KZ5^afep z!q=p|mGO9HVF(s4H4e8M6Res&q94dYsN~lZ!rkIjW4)qP=}k$Vt6++H#h;9MXs-R- zP6DyU>By;RMSriRN2Co=F{gUO*ictT4!Xys)<-E!juz0GOC{;JG?{Eh42{9P-c%+z znl=U53|&*y!WV@YeVAE-Af%u(eG|WY&jM9X-bkbemzrVj7W_nc!9bN)*AE0*i4fI) z@zsd|$c;*Xzys`X%0L>?|6eEq0d9=HJ9Hrr#vzZ-fC*GjB4_J|5d$#K{BqpYW;aL% zVVGG?;hT`|^&+n5ql+9ib# zq55Dyv4SudU%FLe(n6+fy^ zJc|a;%1~ZEw@BBO=^m%(yArK0al-&?bXFIFuuh7&)?Tk(d44>bp4@WhXVr_Thj2H} zRtz@&nnT@WP1qCLkIV0%nxjOpa^G#-2_2A3!2z^LM9AS!%h`AS=|$j8oVhg&_@RtK>oQblnmL=>i3-3oG^=5O)(!nId)`bA~m;`^5 z(&9mcM)A5Xj!yzD3{I7*OBv}0kAzBeoD!+no=&>Zs^PpPYlu7$%2@by37#(yY|vt* zKlEvg!1|C;r-?q^v|S#h`92MPPP~=Qn)!XMmaj!bKZ=FvX|$yiL>#<9+Nz++BYPkZ z5MKDt%hV@7-(%i$6Sjx}9igSDiJiK3av;9Y%v!e0gU((Y5)Dl*uvI#EVu5SDp>!JI znbX8lV}9o+8N@h=LfD~nmYF-Fl_&`8*0iAxa!0aox&`=6Qz#JbLnZ82grJ7H|W0Ft1@|VnXnegP#*1HyJu4DBM&$qL&(~Mh9 zbwwvKpWgaVX0Ac~z-5p>qI#zb)EC==@IdybmCOsyI|L#qIz=53gk_^K2{$|I zG)10O&#ZrHS{eFY)=%yt{;PxTuiW7Dhol&XYys|{|7BwUq?)CIWit5}w_r%2;J9t^ zpL!xs;nfOZbpc>=M6l&Tfc{l*6RIdQTob#;8#G#!<9=$0c4pa$L1OMi{;lap$|OU& zgqicwIMH8`$oml$@tg;REDYH4J<_O^wgagkl4SBg&72ut&!JR>)-eGgJFjD6g^$#} zHIj~IEZZWWOR~F1Z<_1=J{ijpOmb2IFFhaGAp)a(@CSL|J}nh{%!ukCvSpeBHE)Zx zKA>iSvB1*Z@tolwy>0%SAY)YLWnziiXeo>)J?p86D++7bgeenO1LEPSt63QWe@A8r z6+juImYXC;QHa}69H=lihMz~%x1*OBsIbvv=8IrB??PU#8)NqTV-$$$H$9H3B{WIc z(Aaip6HC1{S*iAe-MQrKT7YXi6n{cA(PmC8#p(isX}$@WP+C7KN;pE|5+pjT^~m~V zeG(g$o`j&M9XOcPzvK-{aJuYE=$4^1O$Xuj!v;hz0SyIJC=i#N!_e^$S31-2(omH( zMxA<5!@I5=M(WWGe)Y}qK1YH~L%L$Mt@NS_y#!_W%AsB3{J@Y0QaGa_-GNy*Qf+7D zF%OBi?aJFi;WukhG|@VQQz7J6=Y{R`7XE`}Y`%uu5COe`tB3c=#h zrX7D4u|r?jUR@yp1cA1|tLA~w{>r>Cuvvc3ooSsW=da|zLf|gZl;^2YAZ&|(!jp%V z?POb6{R<@TU+JxzYeM(M>Lr9W6WW+NbI-+DzUHldOwsHcv zFq)9*_8>qw@xw|FiJvQ;J@@zW3iW~ej#EuRg|WMq3Q{n+rmA_dZ?vSbmGA+K4_(wH z*iMAx5@0dazW_9}sLJ!??ZcLKk{i@hG%Uc#!jT-`UwlpYPWBB*rtX$<4|&zj8F*Cc zCR|DS$$0Vp)uvpz-68TuPmHB?^OIcTdUqbcl=^VI0wG{{<8p>-5M~Yl@Jf;t&AO=M zLGz_@F8*K01E;KUhHLwHLNxM|e}Q7HGER!{hyL}{ax_kzbLMyT?Um(<=JVDU`WW#0Pcz^f6*exn9j9Qmnt7TS3 ztd|Zpi-|UfC>p)wn`&fr?HMadd8czx$*|Bh3`DR9MEa0&cIo-5Z$~{Nfl2eI7&Io& zV!rY-*W+BH#bMXF30MvqVa$*@`=TJaSUfXZimZ8yoVxhD9m&*uoa_v5_@*sn+(o_* zEAM3Oq)2s@rby_xC+L=nLxTYV8*?U-$&G~T0~J6*k>5vlQLNI&VG2&NkW`&mYwvzc zoLX#+XaB_dC0h~8x4Az9>ENis!@O<>E15CdlL3xkdK+x68)_jz$KFYq?-ln65d<#{ z0*?mLr1Q)3^b;Ol=tp_@6O?`a;q zWR7BG));8M=TtiIZc79Gs;Cj6crg!b)#5jNvsd)4FxumdxvmK4J(;#`d;nxrgQ#>d z;U2dd9ueR2xvSwK=$^>NzcNwH?PW&?q@=6&l0MYVxJz}oUAuR3j-bB$sa3+j0#Dj2 zSHvz7&PlhTc4Z^^iX58bVTV|Az(!GKO&k?qKFss=ip!u) z5+R(XUgEss=XDd48J4nh#6UCAel>{s6=4ob!P0y(ajqY7uSAhe97#H_$}3CGme_w~ z2#S30T?i*LZSA$6rNPV*&Y|LcGYk(ljYk{p;EAJSXO&iP#?PS*A-dZuMB}=BB5GS7 zoAP!0MXzKs@ymBjd5G;CT*K!vT|6{(Y};L15M2LXmIt{s+mIRfe%@rLyU^)z3u|X* z`|{mKlvi6(c2vM~Jd;{2Q;)UF1azEC9=y=^KRc-<{g=AmU}dtAdvD0aDPMLN>iD%Q z@GtsV^Q&Gg>&OU2*OBL-=*~O3?#W)9pDU-U+}9 zl;R{;Ym*-_H40XXVe{RmLtVcZm-j~huuDX5j@QdaI`ji3-j>7Bn zdJYwD`@s}HEVU+4=|VY9yg@1W20$TU!E76oyt4uoOBs2NLqJ=bUzTtvUPXt_{78;3 z2i)VH?~{3G^gL48SiY***q4N5Ks_@eqWjx9l~AI4SP2!td9`Pnoyc~-#)g>U;)T&5_urCOBy;&X!(~| zC^&6=PJQh_stT_(>B#Fa?rZ1Fm8>p|IlPYa9zeB0qAa)G53a1dS-`%H) zoBkXJ7SNyyUcQf7#Mmb=3Q^Q~R=pk^lv>K`fpg)iI}If9IY35#3wMn+l58-X7AmjM zlH*PpKkSY_!QXM^ouEbrZaX6TF&zmS7OlS?Kj#QubaTM?CTqRMq@fzdsUSC8x}F3v z+lG>{_TgoAmmJ^Y2j&AdZPehZ&WqX#T?K$B8Wo}Fj7-8PEIMGaC;8Z<%B2g?X-Qxf zBnB48(E5m;td0#@eP^nau5bo0_465194{N|huX=5SLG z0MP}_!3N%SkR*IIeiB-S(Wkr_{*8oUn!j7}zjk__vMC`WAAgA^lG^>R9UIRzmj`e) zr^^?q2Z}O(RdWLkH22TBz@$&B$e=lNj@i&N`tKFGB?i*OsF{B5@v5i8bp$XScPVBs zBw=6|mR!a6uaC-rSP4kR?6^H=s6@0)?Ry7WK83;z#IK(fCFv+eJpRcE23 zAb5`f4WbkX#D|`G^pnB{WrEHcVShXd+lp-O6v)H}j>8w1^r+6~Yml$M!616qXo6W)0;%Ew%00a3-b2{o=tQ zh!hPo&6%lu=<0Uf^p_@I^Z2K3)F^NBikTup`>c#3TZK1^(;>4Y_jx9jCXKaGP9PJY zdpnTIysKk%ae%=V<%L@JjFmf^F(Zb}(h7t&%o%hK33Jano$s$NmJD!^0+~kCgsE^(+;DNyOaOcjOM;nf4DuhB`kf#&L zzkNx}(jjndW-^O<`FTAliW@eamA^S)CI`eg`=+3A1zuOaoiSQrxPqt1?V|W-a6BuG zkI^$*Fb(*#NPOKmY&$0005O0^1Zat3qGbLgvh^#YG8bF&G7mVJ7V7(BI>u2tE?g zRGK=TVU);wwCUw_eo^0yJ9%tx%dDl#AS=J`K1S0VOrG__F98D#Hs^p+QmR!UG z3hPi%N4*`WReLM_bGXXc+8oXyBvtKIGdk6Cpz+pUX_vPjL1nB_O;8kseK4M4HL`tn zgUU*PTpwgthtMkAGWf>*6X9xKNa#DCB?_@F;~p7vr>;8rJrc>Ffwe5 z*X<~?#U)aQyfGA7(m2GkD$r4&aYj`w!(Lw43_%#o#z~Qe4Q7N0p{viU;75Kr?i;#zj3#`SJ@kK`}VLGmn!|yeix8d z!)`ZC@sS^eDXJBCRRvy2<@>Vn=i9S79klRMwD9cRP(+=0MXea|fU^B>DmX`>R90O1 z+WS>5a6M}0{X#)beQNY)JC$`7#A6q<%3dYnW+XfZOcVo@-fYnjh5~ckR+Vh-{@SC5xP9V4(@7VoZ58Uoo2sX3KZb)eml=6?p4;Zc^)*rCL;OBSkB|wAzP#Ua20+Q zFS|D|xVx8a5Ap<@E@TiLe5FS50ix(?l_59qttMGN1JTPmUEuH5t!^xItkz~52y(S5 zhzyT5t(9V-OrS2i#?SE3U1;0Xe3{wm4`e4lIBq4$EG1GEn*qlZK|mDDT+v%s z&P{o9db>51WxvkghE;uQ5c*E3&0%8GWQ^KWS8mel58CFPFk~+X_@AwhtUcpa&@I9S zK1$qMiifd6+td^Tq2Bkg+TtW%#An%%ZLo|2)te(pllylL;!m? z(rc1X*^>I7iI7T z2%;4KJl;}Ihk)at>I^o@f+^+LKwo4DDhyR4I=M(g4)O1l94`{JrO92$Mo@b@bYI2t z=jEiO3c-1KLzJ;kEUSDV4a5Kd0003fglFxutE%emFpyvcNrfzkKRkcbodtVh&cW%j!_sWNN^<8`rCe3w;AnJ2ijQG@-hNL zYN=2RJH0~6I&7$XOg!3UWCj_XZPcMLtMXTo>RY6@qLfxe54faScnt z(C1bxua;0;G^N~_h zd5l8bh5hKe(SBj>`Y6-wz}vdQ6>Zt!Kpar~%S8~7>o)1jpkMCxWd{*<|F3M0Q!j4U z%9Hs-t!G@Z_yvMb3d16);7$CdX4Q0BqenL9)Bv!!Vd|N*M=YC`A#|aJ%J`3Vt)?}E zMvnPoW50qcC7I~i!oQQ$PLwJXFUejY`{_&z-ou)(yW`dA0kmhbXF0}uy7{FiuMEn; z6->^6wgN&jWvf<+Cf<8fioNjwGLeq=+q?rYcrsKX;>{0Nle~{betDBT8^)k$AI&e) zG*A>{ZirS!_2NAcKw?6t#y4YnZCrD82({*^_<=#F33*8R z`qe-FqxhV7Q^UP{YEA-IVlQq&lKoOtTIeEM<+gJX^km})(1Z&mQu5h93;JFmQbZ^+ zzf^xZ*gEk6g{oLo>uJKxJa81PXLzk;w66=(QA!)Hff$O*39Dc``S!!Br)*_}LWJ4x z!xirwyHGow+JqDiT`h{$!+mz2ay3f*Pq4XJL$*6e!`c#-bQz``_ao;O5Fyw2uJI5^ z3=I}Z`Jh?`nM|wf^yhL_B9X7|Vot+RtF}Z4i2H;#hA_K@U!>Pa0000006$>x_2T6K zNM=$3`qp}B4r&xf?<>Mm@K{gm6?iurdtFyZ*Q}$*gHwSM!$8_}&2s#Xk2JVFpw0fev__g4qIhkr;PPgGPo4@% z8d)V}=J?(O`=(2#kEPcFD!Ad0>)yn{uE zY~v@bLoP5P+)*{i2$W8rAx(z?vCkH?sA?(3Es|lK zUu!c;T5W$cXF>_nXTjaDc)kOSK{&fXimA~8gYDXbyFcsH5ydy{kdl{-TaalFeo)Kk z5-Jj3m|_hzuVcP8zaKVW2#JB-Sg%ZD)|D;}V4W_3q6L5bm-Jd+hdd6{w zC|$N{i423COq#nC1stp@936XC!R_P(7nUOn+u{+VXC`7q{GldYE)`i=geZOjyfvxW z)s3j#=H>z|d~Qc>dCZV3y#u&EY>_4iC^)^WUAhn%9r{NKjlr(O8f%JQX}x+8k>{RwyIeVq1|0 z;GYkNbfigy`ykzG=ZJNXK{vp_0B0Q75TtVQm|w%ihO}~WyW&pxy^FC1gRaexuoebE z|8QU|!A#&~9BDMWPmN%AS%t3fRhtK4a^@A|N4oDur;5m{JSG-cyKJC@kKp%*tnG#9 zoO|6dfqRIE-tz(}l43(3i0Pbm5#>%u;&dbBU?^%k=xEt1c5icpLLbX^vpt!ex(+q6 zW9e)czN`2!+){i7_hIY>0M_yD`mhwM~ z2r{Gs0W5N+RXJ~NE{!n4Djj}jeQgRqrQuHry@=xd@kbAZGtIb;Z*+y0752yttHy=!&A_Wlw3n2q2baOQWoA#Oc5#n~ z`uVod^Gr+>8Id{W^~~-nXW0@a{FZpzK*imBSoK6>*69jgy}itBA(Rl)^OW~6LVLs( z)=D9TZIuNvGg!gp5@cjgZix&bRQb*WLwrATM73s@pcY9Z`gnnEo4}yUtWx#>9O(Ob zOmXkSpQGVC`iHvY68(SFpry5Nj)dJUjp{LEg;h=$P=354^U>Q;3rd;=s|qM2eZpJZ z`4Mk1eHBf)=tr)5I%NZwSpsMvB!m4$_k&b6?Xe;@?`hFFKWH^*c{c@{=8+%yA5v)L zW{Te6*v(({)EXZSqA9*`g@OPq^ia1BXGaB6^MvfV6Qtp_2FfZlq6A5 z6h)xq13>R1rHAW}pI+KixWrtiq`xyrrGzxeZEwC;?EbBl6a|XxalOOAA{V8vppS$s zVhl{i_4UBGi>jFw)_9)|Xhr+Z&@s9&GLaD>^ZiX&#a+sUJRku87cthT0`^PwZ$sSP zbW+7*z5%|Tr;?C*V$9T$v8%;!=-{jq_QtEdGH)COIOIufz&@UYhA+OYp$$9*z|Yk9(Vm<+vMtxLu1PkGoR^RIeghq%#)J>M%I0e?VLWGs z0L?IA_*I;V#+)!8x(09qIA~*UAVdd$uLuFwb$JAPIL9Ds5s*u@I#*>=fNJU~z_R(9 zy-Dw3j6Rpd8k;_^fScAc*flFtC|CFzadF1*9ela&a(w=k$K(7N9)wc^w63uk&-kFB zn9W9D;;B%Xr#Bi;yJq0+Sw7b*WYy6L#CI~@yS2~weK~CII0c+w1_kT%s~=%oqawm(c>$(AgpOH1hIJw~GaKCkdMbOM`R3+4bZnF}umq55L`S4)RZR6k+~Q8Bd13uMEbdjKnwTZkp8# zn?5XAkx(SoktmrduYe}+XH1=iiN7+1zH_xC9ke9Y@CRcdD0UdLEjEcVS+FUN?@Tc_ zMwNw-$TK@`1kN2?K3w`(Z&c;+;PSvML=clh5`Aqrk@2Q7eD2%@;2=7>NMnJl4@GXuLA8WRrJGKpB(A2_Klrqf zE#v=_0f$6qD4L&DV>4RX*Pm@l+V&h??uvcs*H_XR!n2lBg zkdOW`U$#_){UK%P2nhMCuY(YQH>H7g%6xc6H**Q&R|wF}nvFv`u-(~PPBWH)qLfrZ zZp(Vk;#%_?Iy(1V=Ei^`u23G4nR-QM5VQ_8Th3rf3l5Gm__BS{cNN}5;K9tFpj{yg zVFq3cyFJPL$i#0h!tZFl*6oA@Z*nW6b|_&4dpStlb)i?qK2)S-D}uy+&HVFBr=PTk zv!PHa|4Ef3VhXi)_JUjt1ZksyDM-1A8O=gp-&W6(;07=wNU;Q;_pqtNmfm4vw^#0U ze1DKyOE78${)x5mBI<8nw|siXUimB83G$CUN!!I`H*51`)se6G-vsULH4=0j?+>}I z5nYw-H|2oFPuSHPw9w`*OYR!;etpEf_^bZNLtEp(sxh$v^$WLw_>CWe{ETGmOZQlp z21oCl(Sc@;Hr%o?SG+7)EVGx%B|BV06=$r{((pvf_ZhlqHy%VTbi3{ zH!U^VesdE!1Y#PWP|bvP&?UW4jUU#ZR=vDhwdcmj*Ty)Kgjd=C6aIrTNwl%gR&&O>T}!-dXSFrl*1&0y?M8G$5*k$mS-fR4pG=m4I4aw&(nkWpzgB~XAHFHVg(82y|yDAI(9%m-n(c2YIy z-03Pb^^glnXgf?D@rBFtUsB}5ead*PXtDvu;p@Xs)9+4&mH7hXx-p;4Cdj=}Go7D_ z#m}V>e42F!UdvhY^B2WD73-RwVjpT_@wYV8JsJHs~fi-cOe~(`Ue3g~0t?t}zZomD*HL$&^rv-9+fl z)bwNk%0;U~D)b!0=gj~LE4KhwH`O30Q|d2y#aM_*{oGnWHzvbM9MI|w$XOsV+AYSi z^c-b_rPu*5Hv=h&9{k1aUGfZ*b6QR*R1J0bLk;36kEDD)((gh~H`&LKH?Me>!Ir+O z$t*863XEd>8wA`31%cczY4LbUn9OxaO(oaqbnjp$o$}@547GD2#!1(tixefAQp4y9 zCW%(4jjWg5N6>O!C?ARX1gd zy5(Be-s`GTBaBVEA-6zb$J}Q8r(ZV66#_n*OO>Zm%DC0t8quw6cSI#e=mw)L2`zk8 zsg9xyw~t+2Fo>r3D?=F-Auzrr+VGI}EMiZjCAxY&=;ns5qALTC?Ox%1PLtA99W=xop^)_{{kP`rP@+}$wyr3d5wAOLDezd|e z*u5^~(75vI7jX7tQkFvV(xHBSxc_dajVZbC(M8+A5JuO%)dG%-wRNm=YhmI^akU8g zbMRajB#p)}nvL#M5gZH9qt*OSSS-35GnOscL{dJu^jDVtM6l3!>=S7^x0Q~8eH5LN3nby zPh8)q5VU-an|2fbdv~5-mZIlJ(jmGpN~QMMPra?w->XMh(by0P|Gr{*pXXHop3(r_ z+?c17QcG~--~a$Mph(0JY)E8WNmKBBXb+NOk_=w>97P*?smnPYFYDMp%v=w=IJJ|p zB{{*+M}St~00VCO8i?|B#t;4!D0>YDhOF>^B`h%&#tomtA-kwQYT)>A5XV9ge#>`T z`EpgAM9M7@!Eekj*7~%rd6c8DBRK{0xUIZe2!b#1cun5Okz;_DJ%YF$W5y%Br$e=L zmJG_P2onMGv`ryZCmM}}qmiUTXWzThGD-I)NLpZo^c364A8wGE{_~*lvbX({C~yh7 z*Z=?zhaUjjh7i>SjEvarWy*ue-;Cf15!K+uhO;ScTI?(4H3qy0;=+Idqs$yi`$sqM z?BrPOY^MY>m8TLrWa@1u@_44fSm12>UWHvX(3eEq!BVcySypO zQ0_#SGk*P3_-QE#q9ln;Qd7D~O8Nq0VRn0<7&>c& zcY`mTWs{Vy8v^yK3AIxyCE`2QqP__=oGN)DoX{MtRg&ertl$;*5G6;&-}_m-P~IDC zd0k!{uA;b|{e4pg2%D4|NLm`#nkU`jV6!@9#Y?1V=|=_%)qh^~f()Iq8~xBeO-^}K zOAu;42!{cw;9F=O_c_-i>5EAN+xMU9oFSPR;tNe8sgj;Q5kn=%Cwuk@{-b-H6W8Q^T?3Heic9pz*{g!$@*S*Mx%wZ16p^14Z@XdryV z7Y9=p*&q3yAV{UYMyS}H@;k#%kaEIA@qyqaZh+F{v-T&*_}CJytlEjs;!gn+BRiqk z?$y8?1BL)d3-@wbCFa(X8mj8H0D}CGY02bR|8b+Ek15>#!AwBZ>!#P-pu!aj@7&r0 zX@vPwAUoqH>fBV>m=|Y`})jtMHKSs6FXBJJ}o3)!z`-~adLT@!*m5OXw02xuY z*;O2r8|!tmTc)2Qp~$<2nh`^P&1p$0cm*5@04!S*jzV(VlM_4GP1zS) zj5T zrFsi6M6z5tLmmKqR%RinRNX-U7;D&Z|LTp8)(^B}X~7KfA|BPNISLU&ArnZ(sA!?OQSETe|+P2ecfv3$}FVaL5&!xR^#(;jcrLC=G@p`iA z{5@7t0X0-Zt(3HGnVrg0sq?QW{MxX}_iRvL1}-@^Qy(fy02Al-J#W?z=-ayyz4Vg#H6@kb<&rJ% zoRHmA)H}okz(CYj(&hfc1>U}ptL#yZ*||vL=h=3_JmW?Trh*>_;j%bHaCuGjC3Ucy z1Z%exm`?q(@amb>4D-b*6Pa`uwO@X~@hd>!f)>R}v3Jfs;lvT^(gT6x!;sg+40L%~ zLAhPH3){09t8KsJ;~om=Zo9v5e*!vA^Ok`ww{*d5+;TE{Y^a@Vc{l(uRh{Ga3jpvx z?Vy4k8FXimDdm+16i2!%0h+59q_e<0edW-rCX)cC;F-i#SV_#sgL=0q*V(A~B$w(` z=RASv1xdJ9v?cA&Si|(?46-zQ)b z7lw*VJZ!)O5Gokt%Ru@Ixp_D^v7UGBBk?93PBH3%W8ohX3}`LTLVinqCcbSe+b1x| ziRgGM)se98V0c~eu?GFk1hp^+ce{}RW&Q|JJf|;6DA*<2e!x-*i+%=XknE4&A*~u}E#lEB`gIMpR9zQJ=oGaC9O9 zwgTYJ5SY*>HynLwpfM~)<5U*9cIf;5Nop?u(iHy~*mt`-j9X+$%>7lsIRF)nu1aOo z-I;f)t(}zI0stQZte|{~8Wv{Ck z!$bJD`7&k`ambj^u)_s+QY@`Ca-dV%ScoMdT0ZK$eT#}beRU?T7A7tiN`ou8LAM&A>YLetT9yq0eVH>ITmoyTFV{+^ z<&tQLzs1I}u23rMvvif8fYT)e;P*e|oIGzyxy}8SE4A#4m$X%qKjsX~c{r19%q%p3 z!YTX#H!spMT>ctY7j`ny)Wv{}!B5*jmcvxRSLLAeb(kVj;%!1pY0ZAWMEMU!eaLB2 zDbD4_bet%Q{eyiO1S#5Ka-j=&-du|JCPuf!l^-0;yCuYpp66LGx=U?HeClBih@6+u zL8+^X6d-e01swb%yL;zi=r~FSlH?YT=*blV8LP9jM^c9&W&OzyGI#n}*+3dX&fkQ= z-|}4g*L>EZY>wfJ)8tdRo~_pxsu7%-Lr`pHKn?C-Z&;#KI=BFDq0|V!t#61Z^S?A4 zPmDlFfsD}gP^lq@#iz48po0)kahnMDY=j0#N1*Q#{l!D01S;TL z5Zsrla9+tqLur_P8zri`BcRi!p5Q0Nz4tN;V-88}D97zGT5_S>ryGkTJT(NThs6P& zx2owJY@=BFP%KKaqjelNo0bQi%(HWcr;K3a$c$es{WT3Hlzd=BfqK8L=SlIYYRZ{j zVnqh>dr`4B?_e(Agan;=LfBjew#%d37H?wKC*y4U43QM2Khuf-ey{-ou(V|yb1!7E z=r+Tsq(>Wfi?T8DiWi_Z>VY4CsggLu8UvBflg4h>h(=B7kw^TOlW;x|v`JS4@H{E= z1&f<@h|&UXO2~Z<0|1_82jf5hN)8iGIg}rNwhGZ5fo)a5#FOnEGI9emy2&ITQ-EIJ zns#=m!{v5aI^R>L@Q24rPKwDlC#<^Z%a7`ijWk9tM~?xo-w+^(?BM#Acyv1Jx~S2& zs6Y_xl-G$C{|kzcHK_V!*zEKBcCJO{X?9o)jT!gmZH&b-MP99z+;iCErjD;Pxjr+J zt?$S%Tjtn@EqRSc-CxKa#?<0pGV6QOfuE{Lg<#UF{)y(_r`=Jige=gn zkEha@@obXgU?29pc}U86_0;5bzI<-V-gSx#f!;Z*B?V#X7m(IWFgVp@8r-_4&CISh zsbVLWoO;+7z?tGR-44a+YNS}aA}YynUjpl%lzPnR9-=~$`z$We|}06>UxZjHl>uO76$rLlQs zx4v;7!E;mN9^;bQmxs_i@J-*mRGa!+rjA9k?4MCxCuWv&Pjhx=w+)2@Vd?htO!u`< ziB<4uR(#}X&!Z-aHit=T`npxvN?qOCxkRXqvr+3ys{J+u{dJqM#zDSG`cld1H|#UQ z?*rV-aQmE8a4YI_W%C&ho*xpy?)O=e?cg%FbjuYfZ1W3lle-5y*oqziEga*?{;u|7 zJCTB43GY(|kHJcWn`NBuo9V2wBxL7lt})jbx40LBn4|D2?cUDu!vaUW4Pr=h0#8jG z3P+5G6+h~MGo9sZEfMn9iP$N{qFxS+)Bp#HNL3pG#j@EQ{#`IqgTMbiXoi=QBrWCo zfX}q)P75t_Fx1#qq~G8IpVZeyvH>(-<|k|K^&j~=@^e`u=Ex4}Jn0hB%o?HAtL?j& zynZE`IcZR|b_lvb0!~hW!0pyH179-v7miejE4=z7wWqZa>w+NNXOELcw#w)Jmo~>C z&kziqdw%jMNK;=6e@_}&Rtql3x3d5C6ZgM zhVV{vpdRJ3Dx3Lf909!OQ38cLfwoz)wS*Zz4Xtgd3*>Cn?Poq4LsT)=C4li20NPGoiwAS7g#0@n~j!-P!;&|NhFvBQ+#XY$wR=zATfT; ziz^#-eVG`$V*A%1_~Dac8Xntr4zS?h?vE0}W4U_&?prl|5F%PF`hm@o;b9-Z78Wyv z-rO20A9+F_+}@Sxgoe`?TjA@a?udL240@@JD#jvG9Aks_HFT;`dlkH}E%r_)wR9Td zeP{^AYNmL$!T&=ovXeu*;lxhhX>%+kIW9!Fwq|Ek(GUqb;s!+Vvv#G`wRv7W9bxjm|!D=5vecKt>NhY>_jj0=rYs{;WLA|tE_A@g(n=^O6_V02-v%iq> zmze_RrzAQu=^)`q_`2u~{z|c5rAZwSg22Kk9frBITGjpC)m>0)4r3si$RH!Ly7j8V z=clH>q7|h`%^-5oy4?3N3((3}8@y6U!y3_gNPbaxu6oDB4OFTc`1I7k97PI1!vQx{ z>7tRkIbZkz4sJoI`u1d*6k0)DpP`g$sQ?E;BjH-Nn{~$+lu6c7l(uTfU94mUrtv8= zvj!spBO@Z3QXcwsE#h+o;Jf6soxjkRaS_9;9`)R%UL+NY@Aw!y!q&c@Uy|BX1!E)2 zPj!**McF!0*p%Izb%OwGOg=aYv&n}`WNn{dPlQCZy6jIE8g!VoQ4~hOY$m>307rJD zMs05ULhMUJMy2DSM^m1#^c$h&=!I?6asaZJAliC}o^FXuopEu@fUI{e=GB~p9iJH`CtPvNV&jA9}riM^(nr2clgirIRj znoF?8y@P2I&QQnYdCvvFr=e+IYF~9F-ni*TV6a-_SCv=O#)bTR z&T>KV>TukfYzt|RB*UNvU3kSmW@rOY9YLVBfv85cXVW~LD?}^Rk+YXAR)T66ui=l; z1y^+*crv*vmp;uJIme)A;0)7yjgjhSLTKnbV|&2|jPy2f#D^Nv4FZQt7qWfbn)J3D z^!vb$ERJtVVi8f*h9u5A@Vh4c1pP9WcknC3oFb5R5&(^>`Q_2~kFrkkVhaqqD9_c2 zVy@acI+97zmb79-CpA>CvG$MuBfT)6{HFcl)j{L~b0l43=&p4#%K*=&StQR8#IRAa z>W@FL%~)cd3K_FFdQ#~J<23}7Y^J5&3*b<*P_OTa*Pt@yA7^b_@tkDt``qX1-Mc=a z|IO#3F8HErxMKcLcT&~8;vCdtE&9hMQ`DaC3j=Gt=;ov{=?o#})_Y774o8cepWMiGP}{X(kMT&9 z)A8we^Po{+4=On~A75ZcVmT`?R57p*DgNfI+4Ql7z!K<}-9&bqC3$ z-)`rLIjhZ91GRAEgofQh;xmGnu0t|lv8P(KPi5=B_!JE!rRi^n>&)O3`d|C<{;hdamK9{``%$6k1)|1cH1 z?kw_pM)_2Bb0>4QHst&upB;z*L}tTJFmf7BiWy#xh34eERmfW?*UH z==eGtN$OPTDG`omJeQD|4s;!l-(wlOJ-1d?kw9-|=uzm~jR z^K&(nbiyoAL~yep$LH>gFqT@6uC098`P1!H@FVU)CD`S57C4Bn`UXhl(n6C)C01Zy zG-S~aMI0bwwl4g)E|e%b=F|38uUyuLyBnEyQY}d)tp*%>+cFr*DeO<&KePwmJ2m*s zx{XF6@reT);Q+)=A%0vD=CJnA`%g}u!w!n3F{Ur@_e6h!_mb4R-%76RpVM%F#D~XtHztbC+9`U;gcPq zu=j)MGW!|iz*P$@OEi-gQQbqLF%P^d{8`je$&k&lA)zU*li|b5j74s^j?X|3EB2=} z8O0}`#^y-c1>7>7T6FsTY7kd6&HmK3p|S{3Ly|rS1k{U`v`ZKvm7IK_Y}oTc3^HOg z=fy`N1$=hn<0$uesLeL!!Hya^uT1<0aKTqp%05%XyGXLLD3PZrDiX#a#|OY98WhL4R2{bK>R%T{!gYrw+7uwsREV2?H4gs|CF)*b_^6W#ug^uE@}* zqSLz2U9hOGC3Y+&jx>K9g~XSS!K!a;k3cQd>_c~M37&OfqS+_yWPf{=@l4b3pRAB-e?n zFk+>G`wbigF<3#-FKb&0zOeJEIKX6)m4yuA3AWVh=6W5-Hjv@Q$ zv&K9Pl(Y4ida#jC@6(bMmd)f~4Aq(p0jJ~@yfkxz3mDG)+iPe;Z>(b{KmkGuS4$2_ z3kBPR`TxTqkmzj`lZdD?CFA6$fjvv}u%IBg;QA6wub4!gTB~(@L-{Cw`drw~CwM~X z08TYv1?&S~y}Jh?+BkM0aL@L5oK#GIawNAtr=Xb;C<)72U0>{}8%WD`Bhw@VEn8%= zKW~1u@C>u(5RwV6zP&ZsIMZxRLtABJ1V579{wKikR1i8uf)MQ+eYHF3zZcGF zu^7Y3L#At%Z3Zn;8x0czHGO_vPv{U1ogYE|G+7%7D`WM)bKe5ADD4yHzagb11bvkx zezWsd4mw!`)A^Zxx^LTUtEL0um_>|ShZ+3UevcFpbt4YRmy_rVW%Az_+Rdn}m{Lh6 zF*IlL(8bQYs~ZuA!N$oAq&p_>hz2Iw*LR}r7>(ByaL|v;=|GB5t5zA$w8i}FUGK@F{|2w-(N`J<)E@uFttA=7}i!9dbt8At8i&Z6$|4@Q2 zdFq`|Pk2A~d;^R@Qub-fKI@mf*SsniFC8c%4R4NkBca2|OiwtgK_X(mOW+i1+g%Pq zsQ)(-w;{iS-P$rzN~*ofsPU+d1%NexG)@hOe>D7duCD&FYiu6_Btm$-L$~+>l4wI7LhL?_ygI>@OWf*k zkk5tpJZk{?|BlEB(%IayWlf90`)nx7-1dPV^{XS$Ev)(6 zVa=L2c}08L^Ki*@sfLgpd<*zY>ES|X(~Opvcqm`i^`8Geq;&Kmy(6(c=z~@K$FL-? zrjYAT2j3YEOwGY;5Rw<=B|Q_grh>T2#J67wQCPZ_00{if{dlICv#`7(hFitNjzk;s zpiA7B*baI=tJ(9W8gh5r>J2Bo*%Z#*4>jZR(zir9QVW?p@qNL&`?QlIVjV=9d6&G$Huc5{#8OJ}WQ!8xMV8D{!rjW>+QOcJ)*8q4^} zZ>Hxm(Q&sno^`yIw3v;?^8c8v4@4p@WW&{X?QP!Ex8TgL8thx5n6;%kjrZw)IegOB z47Pw)ra(-UJn_}jU1fK5rX!U`vxJhp`S*5Z+UjD2BVTOI>`69sL3t;C z&*{3dUv$xWmD`^m$jr|_oEy;6aEL~=q*o9(ROqO*PLL!uzBMWTsJ*xZB{B#wk@K@* z_@22|Q+U6j@c&xfzRDnvX|#H3m%*A`0-HjmEQ<(mRJYf>D;9ZbI6QuzShtTe(xqG@ zsy=|yV0Q{l51cWIbPBnOp@*rJIJ*M!Y^x@UvGWhLU21+bq~90id=F@-XAE$?__f6O za?|#A#KD~v@)&ixU6Q*aQ}akqaTQ%Q%7G4jxmjh|0Ng>X?&I2LlztW_s2q?)=ajW00nd&T3O}=tF;*|r9+YRwJ45kN5{~0_HG*^NY0xV zCIP>)!FJkT>)&y#(ZGuksY$IHECn`*0S$56`r^v8Irl=mNN+vLpTq+pnIxHFBLMza zcYpCn@&777h-QW~oQ5fW4f5D~%Qhs~bq{B>)rVqfz_bRBe-q;Lal@jLz!KilRb#}T z{>_Gv_wTVpQHqlJXg&ufEq)&lz0Q2Kk}$Xkaw4zCiDcQi>w8`p)fztLY08IP8i-9{JyDQm^XaD+ofif&BVDgt$7=|~|ncla! zQ(VPwv=R?&cn)w#%N`GK5Sdy~07`cWU&n1E>$xbPA(SDrd|H%hSVA*a4x%2ru z%DplHY&zh+oGBl~ze0ZC(q7+6MVxct$wU}vZ(&U+ce<|*S*x=tlf3g`&v&!`QtG-z zE7%ERbwWi4Du2=5S26}x(rWguD}t28Dy;1#k@8x#xe_nu#%AC4RED#-5uoE^-r`}N zHH6Xn#XkSP?GS@gPXBcDNyT%1J=HWc4i$g=j)kE%ohIaFbV534oeKYkrYCxcBM>)3xzEcKd2*#+YOA(b+#^xAf;pe18 zxZ)B5aul>;X|IOz!(wb+&A~fcnd>0tpgOhgID&ceC{w{uru5O{zWPIUHj)Rj^!7Lz z9wd^E!>qkN7&~BgX6_Dg1viQc;BT^76L4PzXn8Rx)DUpOY{}Pe1)I*Obx%PG8HGS$ z#NIsseTer{V-hg%`_CiRw^eXn-L9XDbeIMV%1&PJnp%g!ca06S$lL`iG5Elg;wKD8 z3|#kRZmQg+BX|NQ!$`@|xe$`M07F2$zsC|<&1|!3O_<9Tv3F$_)QhD{&wK^%y zPq4jHBB)$_I}3^@c4Tzzw6>1jVHqSjeQ(EzhoAF_Ox6JG%QXmRyG!Hra}P2H7Z++%IUZ4d>Uerp#Eca?n=U&=xdO+z|omxt;3?RmdP!n^n$|<^9cTSe&t9+DHly*Frf{ z=rSp`ZcPFO4Zf!n*dW&0WK%>mS(}8#7v8&2ob?X^zN4Rw3}@S51$K8+fw^LKTSO*# z!*n9+wHvcH0N-qSwnNbwnL77hPJ+~IbEB?LuSxkfwn;?#-O~EX$~NMmtj{A&iXaURSg3%sJ;)$QGGzc~H(!U_(q_7t;q3Nb zk$hc)-d{S7*-OVFc%BX4bL@5T>}c`27qUrT(a6ZJvzD^E3y{67W2>m~kT8Ef0=3d5 zCSxbUV*R9vUflhP+m$3ShTc=?ptPbp+|i&XIKB8%gQdE{pU9s>BUR8-cfI2ro$j_= zIJ-nWP0@c*EAHEAE$^Jf{EnocT_B<$msb15cu-)Pl7&G3rnetvLwwG#pY?`rj82maqrU+ zIgZ<`ZM}-6m8Glwvs2sDWD#6C32Y8_j?bj&pfZK>bfLjUNWrv;(e9`3l`c;AbI5+F zu4hGKL7*a>F$4|bqMCn&S9Du!2jt1rz?N!&2@$e;r_=Y$wFizM83u0N^&(aCt}xE@ zW5Ye+D&r%OE&danD8_bg#0hU5jm~#uE8b0X&(>LWSxSdK6;D5pWO9tMfQvV2%m0Ku z!myP5?SLRaXWl*^!|xzeqVx8u#LiK=S0$M*NU%cc;YRKfE2zK?UPlY5^W3-|jaePW z)e=f5IQ3;>53LMPDwskxdLDZ$%zskRGdagIsY#M+m(z(CvCi=DTZ@<+nDW<}DKZ2&yb765WI z#=Q`0ncy`98qu}(-%=St`}Wd+#d!pogd&&=GUpTMZ5vO_};%&OtMjTf`LI2 zjQtyy(DFHBYY!GrjVX(7XPl_>lQ9~Nx;}=_!1zUO39mM=3Tso|cBv?({i)+nGDBCh z3wQjA?J6J*kQkO0q8CFcwkGjP@~)vi1b56|!4a$D>3RW$tg~L(WJ8gtb&MV>2K|;L z&(xF7r}O`Hz>1N;uhqkg)G-Uz%4TLMYYQjzCa;p!Z`%swZy{J$x0Y|R8?xCX*R#-EE33DtB2l&$VSmtAPwwn6a!INP>wUlztQ1$nppUxn65G`$fx@jr8;%J!mkcLz}|ii-k7v!Gk1|obSVC1 zf0&q~s7*vCuXfMn5|4f{7`5bpSx6!aJ4NTxGjUBRum^6pGH)tle!OLq#5e5NP$AAP zC(F7ocoD0g3X}A~-9CkQbNrcI9S+IU{AdE4YbI2Mvz(_Z`DLgp7hg0}q!0)@SrE=0 zRzd2kxx>-v=X$8iqfUVnQ*;-LA-UVw6o~42NEAphS5rQ1i!R_aNhm6wS(ew=1O-I< zFKiI%;ez}j`ybl4YDFszniq@Vkg#pt@fT$z1jcr~M6&c)(H%{6cOb6uh{irub*wKC zQe0I`TQ%FG7Lf6qnJ0&<($_l2BW*;SSZVYrSV>4Z$G41BM4~>gN)UdeAX~<+kA8C7 z7FB#OQ({1erzhc%F4SbtRh*CMSSu=a2cpIx`$?(u*Vs8*X;uJ%dmIqh2Eg><=}us0 z>G7&;xCst72hoNOxY@Kt+aWZvrdPjGlyK!NVasBrVR#4%Kt{6sdyH}~MiJ^%%Vpcr z*V4ofJhJ=8z`Xuj4r8Upl7z2jHB~2j-4xSL9RJJ&Bnfm9yXCB^`^2fr8TK>nFao?( zAQ*D6G<*sKy=kyrQwqlwa~B(_Yf9fBKbtrV`HV z7!A#NbSM&k6IH=dPQL^6Ukm#s?rxJC2sdGvGWR`GQ@RWSC~PdLLy%mfVHH? z$8My}XMI)fcZ(I7(;ZwdEw5j2L5aK9a#1w87HUi_Z3U4narD)acIKTk@Ev544bU(Y zHNHLo8x%~9(Cg`JEF(GSB_xkeOyy86v+MXpsQz>i+<1lL!4rpjdB)p_Cp&Ge;L87- zljscm?~@v6)=na)fg$(jU+5roMxmz*Qi-wPhKT)nKG1&fx&mS1V3DAtFQ@-n9zeG0R zWb-EVDJ>Ri!7D&_;dn?|5T8v++I;>|6@51Z!Lu*j^N+}DxeOHH{QOcdA#!p(zcGvz zcCqj}+XwGuXp;wW(%xu4{chA`tQZ=Y#IGJ(gx{r~6ebs}+Tg`$I}aSAb~SDMvhm_e zj1&HtgYwi~Dc$V_hVca!%lXoGz$2S?yHoRfdYu0S&5-#kt`7g59j$+Hs1Y4jBf!?(CzqIE%MwFPwL?of0OJGU^1-Oy=C( zh*}Y|pk7ZlQuVstJ-+k^_uy8Apu;hyH7GTJouR&i%$5ic37Pf}W7x0@?Q;E39vD*u z&xV-4JRp*!-l&hI}{^C&XDY9xT>j3b4f2^GbCJg-Q|%SGVaO^I!s;S|R~H3lE4OdEaas zm})YxppKl@l_abjnec0tDlupAkrZ)pdBWeb_3M1>%v z-Wm0T^N=QuDM7vv(04jRF)?y4g$ak$NL<2+)!2R>0d1mQT%rgf9nKFX?oW>${oxho zy8SJjBOLxlVkyo(h%KeIfSb^atL>ZUKozI^Yj*`Ny}Buw>>s9D+28@5ItfxH9ETgu zb};C!_kR2uk!aFCW@zS9)ZhUz2(c5d5GUuOQ2yk$Ujy!sZ!~`$U`HHCr{qg&Y1ZxA z(M5rCc5yR3rNwAicweU43Kmc5E+fM^c_13%P{gSoAI&kuZjiX>2k3H_noVkwd3)5t zwzByukAn)ma4CNP2iJfB5IaBc zT`bf+FO0ZIn%Xjdo28dsU^Q!&A{1y)Rl~wlA_RR7IZb?FOx?4(Vdt(kQZ%?O!H{3# zV-3O8n(jqz)RyN; zZ4z@Z2^MrZiY6(f1;z}QddR;VXS(6{HO**ntk<^GHF+3gOw=n+M$ETe!Sh|AC85a{5f8)nq9$QCC60KaDhjhNJ-V<4e<+d@=6*h09< ztI|)vto8ktC>Y&`fTv3sI#2%)29z#5?CLg$&=}Ik0YUdHL`5_DE}e%Xzes}G!6vuE zvbZq}8Z*%mM!q}BI$$@b|0^LT^!;CCT=@`1Ssnin?hHvnXj9W|i}pyV?bN)C0plI3 zOqAQPZMgkqpk#;b_vq{F7gbA{h=JI`iVKbj(5@7w%^4^wT-bJo|M46#PJvvBsmvs= zVoyW-5M!ec3?ENal)*)|WvXft@05ZJ(Lhy@&s-j!h!*Xveyg{j@p$FosDF=4DortU1C?zp_Fx?R+9A8T#O8Ndr5cg~N=`WD zqyGI3?}rCH9m>%=d!oy2r|Kfee6$oL*7)FTJ}9Zhu$@34ZYHSwA;|--J)_U+@>;i1 znz<|eZ_c@L{#P9Q+Zu!$eOv9}|Hp&rp36q0TP&X`b@)1a&TjhOgBIz0q2E64_S<8DO+kmWc`F5c8c`!yuXnf=;AhU7kqy z`c^i8M${ECAI!Jz4#EuD4V(C+hEyQnk1^~ zT%VHu9g-MOsTmW^&6!yYeI-jpu7hgq?L}_gfZ2us-pJH)r5Q4E-_F2)P_jy5<`Qc}d}E=HxMGLtKNkWAIdw&D4l`7LqA)&CYcN zSc@cLOMmM;Svo~3RSSI#dy6TVsWFp463{QP0#n24{y1b14{$1w!EDW` zk_RG=%;6{z2P|yg1-T#V-T!~vMT@}+evTXLYth^jFf|_v;xhH@ZlnWX%a~#;lMp+4 z-ObB1`|;}@4=JhDyd5j)PwQ^!X_JDqCUE~oFtlw z=F-w$tF}1ep9wIiz@fqPMHa>j;agLLfB-i2{`OMm_cKSo1u$5htx?x5nDrE7yUc+Q z#x}jO>Jrbh8so|-C z)4e{zLh!;mx`903O0`lDXrPbuc$Y*gh)B#Nu7SYZuF&(^(%2n0lWWP>ZD9_xxzj{W zg^DH0BV^fEW7Bf(rTk4yY;J;2)^~j(McRC;#_3Y#@Z?|Bhc~e#qLK}b!!KiDY+xzE zNko|>60TXWe`ilbbp08~m8&P!6Cre4=_VGTG;aVR{>!F(N-B}YuNAA;&04YhDq9DoyX+NSXMfl@P)CZSQ(V!qIYkmOpwL~bYk~B=MdY~ z;ETwe&$bxQyH<>j&YGhrYtcXE&eN?8F*C!GfyT_2oirI^BY_gTemZnza0Jdmkd2SW zIfSn&x#5C-zloD2X_WFslm^pzs}a@4*Ru5rYh&{jx7P?JnYaXW!EE|X3oIy~K* z`Y!a~Pi`}OO=VJQ+pk}kX>&TWKCX)xvGZUAAllpd@9cWcw=4AM`0*S8#3Cgyw5Av| zqUWEG1};pmU6Q#6Z@8UU_Y~qqLA$6MaGW$aS(U+}S}h{50754CYE7H_Mo)I?xI?#N zq?BtD4W;cmNqT$+%fvivL$v|i$ndScm0Brsw{y^3UYOrs8~XPe1P)JG!Eygn35a7V zPDmv7?8So4?>FdnfDwD@xFsWYxkNsiI7+nEJec44H+Tor1p?+kGv%B}RpjV5F88a* z1%Ln=AeF%igsfPic3^apk+ElaBSd{dZh4;nB+U9wY~P4e6DF&jMIoqnT^M)!i~!oi zGap}rwOcyf(JtiOC&qpIKV%Xt*5!%G&;e0OmGzL7nnAX~Q92$~%oXkAfVw#ch2VzF z1-nG=73Bu|>-hC8xBU_Z+Tq}h$n?I{NZ$jtgzG$b6{mj17QT5nc%z||YD;W5=^HX3 zeH9~&cP~EDY8hmL42ta+yTIsKHiZFd;<;g-fHEj50l2iG=jvK5pXFeXp2b|VB@qrV zHVAcWboK=1mQ?DOGR7466F5mU+_NEK!U$<(HA6piKDE+{me|2KX07*bfL)C<*o}v^ zL@z3I;gAp`a5Eq9683kitm^C?iCLtz&Mu8t^L7}~@A(2m84U?PD(hn0YQM)ER zg3JysF)_d4;N)Zizv-ShH4x9D_&sqY-saE#8Rb0#?Z|Xr zaI)u0x8o5!gFmY7&<39r^jYTyIrMU;pM+#S*R5l~rX%u5c4}HgBj_IN6ktm| z00M?1@X*+1Q9w`y|DL(0ihC#LEZXHL&D56XHaij){<7bA!@)V@*KCW^=$ywhth#x1 znme4E-Ng(Sm@95+B+)-t={aI2#kTF(sv!r(KnG~-j+aplvX&chbO(UL)p3CN-cstK1^epn%ksJMF*y}+NyAzP3o)et z5AHv+{}iDi^!*DGvfyo#VJ{R`t%S851lceu?m(WUC?LwbpOnW71F=WGi^*O-9eTiZ zYf3RAB-<%&IFX7@&VH%*mc9?JVGJE!OMfLV9IpJxpu^DYAm`-&Mq~ayWk+7ct`jq< zYOe#=9CNjjD1X+&vrQx6G@xmsy)?4DP;jw%DbwLGf=HCNB|1W_@nwQ7i0g!zX<4uJ zcz6IW+CI`+Nr^=%!T7~>$3cy;whz~{%=ECfz$L>Zk`H(D<7VOs`t1snMB4=@A-0AF zq0QzEsfOp<&y1$0gxpzUaXRMfWge+OvMSo4Z!}|c)@Slk^Ex*)P$FL05QSnr?Vin- zBh3U$_zf3#PG`G~)7K2iK2DTZVG}_>b1l~wbtZ*GO zHeIBFiwBbR&(OWlf=dNcJE47xZIjdfoaG$4AiBX_l5%{|Lbs{l_4Cv6!xu@5zi3fW zL8K|p$3uy7)}4^2wk&B9yeMTA>ORLz0Nj(-1j#Hi!}qGHG;7oqRt`X$PG3e{A=B1U z<`ORPxoP>(e#J%kHS#e| zHEH|VX(&hs-$Bf=(gCHe__fS8@yaO56&m_(f>%C{5e8heOIIqk&R8215BT=n5$@U4 zHi}~(f`qXV{IrB3hk%Dc)vd1lc)m7J&;XwFC@qp+PrI+=kUQC|%@1}}+y4Ws*jrft zYG8%grCN?h3NfaSLnnA76&CYa%dX$Dt7O^7$ct2?!RKlm_Z!=SWvo*I&SYo04vzZG zDD6ss_PaXJi4lKv#QyL6EcSzwZs}@IpEfgGz~hWYpEn${#FDYFQig9^{*pY5ZeTbD)CcP#jk0u#tjcIy=o=+$?|*hi=IdxW)+8C7G&AxPuAtjvE04mk)hEL z;@@d{@1!08lK>ExNm`9vWxRpYS`uy&;ttTvdEaEAgFkeCeIv4Eez|ewYI4kcqY+_t z->_=3Pg~o*K)258pakVDrVO40q!+ni@Ez?002?;>P7uDV^)me z88p0a6hD0Lxiz%g14I906YQ?ykxhj8*v`#7G}YHJAY2&2*>9s>dcq; zZp*j!EoJRgLeI4itQDG(009VMusK>=a4wE&`vAPpa%ww@PBRQv;WiM7CP^naY;SXf zW!wG+6+DJNHBR5ur8n2oJ=Q!F_r;*T?d=r7t@iPVO!BSe_!Yl)8vP9i?pi-9Q_a9K z%MND@;k9?gIwH>io*&n-+hYLHE4#6VRpPNnXEJXCxS%76IN*A#^P>;(j|%i6793Cb z+2h|4m^B@2jMxt$MLzViE?MfUm=Z=>JWz{RuGX&_dpk_0*H>V&n2i*=J2(@k5xUCL8pwwPZtV(Pxv?t2@H14AfvZiB2{Ioo=zF+G~ z)aO8%je8~z_REZh=`rXA4reOZYI5n+zi()Ta5>TDlxj`|$;L01v^zG&H z=O>M}nG74VFi7YiHX+yqEw7MxM^NPM4H0*BE5rnl^ofNo)Zv+G`FKZk)b3Y<$Esz0 zt2nXi=%Ehl>Pw&c@|L{!w~M!sP|K_1AbC}=+F^E?n;I)FCj@;hg0%;NJy@Tazja8F zd_1ldkwhEO-z#tf3`F{?;l)jOeU)rot0PN>YKl!zu`(gr2n#hEVIk^>+PRHSCo9<^mng2}Y6?B49~|AKJJPr!Ihx^_Ot%&GS4d+L0=%Unr0uoem=#mz((L zsDQO>o7CRO0&k4a>#+B2!^qH)dr2$7hFsiH_U4;%P+zb97BueU>;1rLw-^!kf#W~P zS1#xrwa>`b#eBr#gVV;PAK?k+{{&+VEjgGsq%&7Z@E?7qxKAQX+C1|u5qJtjgG=Eo z%0VZOMB>|XcAlglyXDWSF&68XxwyYoB!CbL2%#0u-%J_Crac3*`HC<=db2MHgpNegaJ**)da8vc0S}%wuZ$CBoq1e6Bc@%pL0u%wMANp8t>Qy&k@k`de`+t&!kxv)H%}#CB0%G*nDTC zTLb=|jYUw^S(>)Gfn%3>Ney_D5;|Gdhfi~)$`x<*5@nJN3ryQSdgG`R4ToB@*6+cJ zohLV18gENl-vb4p_Fc@tblP)B?z^g* zyBIg?Evd!1nE=tjMn0AKcej)`rEx*FC9`{zIJ8=BUf$kZG{wO4a`8?)?j01hu~}S=+CqLN!fG+(>yj%A8gkP#{~-Ye+}Zv@L6^E_ebrNTWgAl? zW@-hIkNqZ}APW@I#D33a%ICBWO4JxF{$leRX3#oTxNE^;3=eBI{FlQ*GQg)$Br@G` zf(heCPUws^fL%)$I4V4Q_N7wQw{^VCkos_@Ct|>RosunTL~YnjbNiK;w+KI{y=qG|bwO3Iaj9QEX}!Ks`Gp zk^-%MP%IL}8kc>&%ue0N1kHc$M z0zD*IEUicxALtXb4tLk%mfp>e$K4@-aGj8@$uUh*=wCr!CmSB{tPqKkznBul@+>>upHl~I-$uR_wsyH6>= zGsp_4R~fK02F@q|-lCH|Kj#N&JN)um)RJIl6aU=cXM_4yCO;S3f-mk{1yU^FyYk5J zXgiDiHhWZm0I;>JT+g3sh)d2k4?X)XPL^4q821&Hq)9p*Rtj2AA0{$KZtOeNR3mN7 zVfC-m0Zo@`dg7?5zPXdbG3i7Ez#%u_3sQ}e)2Xo2Lez;XJs7BTe22w(0(_1z`I-i~ zpwMd8G59&d;`rTB4cb|vk|#gmnA#fA^n;c`0^Pfo)v?!wXotq-xF%b4=$%n`@f-j+ z_F;m2e(3Q$gr4}Q8JjOZs{5YuAISLK^ht*K@u5pl)HmCgq}M-Y&{W4SZ~j5vkd#(Z z!S(aehIbDD-q>5Rhkr0Wr7OuQW|u6_ryFTc6O4!_g!0j^m)|Aj-EQKsfQ00C6w9Dm zAdTz91MFqWUyD}(-f+!6TfN3y@W(C0X4kdH{=HweW!) z_x6!jm;%qA=ebU32v8#9x`?cMw7Gsm*x-E14G$1g5qzf=Vi5o+xxb1p0giSQ=jAvR zS$GoYKrJkmIp>1w5(h?i{375RAf!MU?u@wXm|;tW9AvFDoPbl0G0DO+{=6zQ9+A3S zZ6oOHB%vRgU%=Ap=3l$Q%It-(k+HT)^urczvXSAvot4t7H@KB>1clcN*4oVFvy1F+ zaE>-R5RBnwo~MwB&z)x!V9vRswp2ve@+a;(#9)u8)C__0>TRjw=UoY$=3FI{ifv zMUUmHUv(@u6K60z9nFJll1)9iVqF(jP=(&?axEfJ=S{n?jdSY^K**jg;#NHCjI#>ga6~z5d|15xgKNO^($)yDepT@v;R@$eHj@Tciua z4Xfww z<^Qla7+U!sr?|x+eG7NEA_vy}Uu#S6xhrl=u6ne+b=(eQx7T`o-p^Pc^ukD{2`*(d zb3XMUm43nTxYl@3L}xuhD}AGB|A|^hv#2@xx$4>n9Q&^GJq6Ngsw)XZ^i(|~s!9+~ zjyf^2h^UoO04Y1F2ev1%KrUbak)DHivfuw5z{MWW1`n^!j9j@7ulZLPC2Jf-283so z$kj4Zs|MI$`7&D5B<5@1Iw62VB)wgf!e?MsJ% zwnQyL1iV`p3H2ZUx;XG5Kv5sI+><{4Qt$vFV^gavYfc8!4C>=f126gdg09u3l5ol? z#ASlmFFKSxfk6o5mYW;-$-y~c0fUIvj&lH{6?w@7W%^Q_o-4RG8sd^s&fq{?>leOr zhT)gMfusIlePAOkU@_e;O z-ZpBO zJEL?KpqYSRkixw!)myZv73l3}X!SP%G4Bup5dx=G-6af*;$l4wdIbY8Ne6>V&)6p zK6_&nz#gCZ$n6mNTXU85c#MI|T3)iWbzbB)_UfES+l{LsH~qPO1l8?a{2P)-;>#e_ z#*MSS2{dv;JErh6%V{i|#kC%9;Gi{l*cqH^h#37$?6d_U+nq(3U1iYG)O? zv@iO6r9ab>iGDjJ%{F4J49egxb_?!0+fJQ7_fwUHBNEW8^m6N#A{btt%5=*?qo zY9Dzp{`}=*)qm#gyuhIrF)LnzEH^1E`dWsCpqLJ&4DjtJU6#246x7H<=jH*|tEjla zQ-X9@M@Go*w{O9_Xa{t=A-Yp(Kzwe-Wn-nW=zvVR&}`6F2Y*da7vlb5_X7Qe;Y%^M zXs-uI0>26bNU zzmJ#|QL)5DR-wYvsuziAn!WH_=YRkbhTAJlN~V`M;6~`k7_xPJ~k9 z-H)1Qy>c@nO7n!b1w1_XoRqn{XUlMbKiX^5@8~)Y)R)|Iuqq?FC)z?a_AHvW+FggX z3%0#I@bPF|(PUv2VldgKu;+^)%yMC%7F5Z6qSt(I_E)_E533q?8-oQsah5gbwT|FB zj1<*RU8!$7hoic)LNGFjdceDGxWQNLo^35RvtrDscn)?|;5jk!XS?xRu~v*6S{B{Z z5AL1XIqPf}(cY;ZGRCSV@+{CChBjpkD#|QZF}nb6S9vR0VYh^w2y5Dd@EFvlr=wDw z^~a}p;#+)_`390200popezGO)XM&jP^+z8zpEV1PTCq<0^Xl>eJe`oBP(Dep)kZrP z#nDMuU@;#qZ8?sHgB_6YTQ&IQY56-hhUs&Ucr ziX?%u(}S3t!uKnrP&pgMl~H=I?HX>(_$_|1g=7Kmjb9OgI9`HtTFeE&t;PR|?DM6D2N%XEIM+Bm6bRnBunL82xh3xjX z5IQ3E+BCU=Rr(>N+MootRO{QpF2WL`uIsNa!6W9H*OHAa$Y#u)dkAei;WG@oG%Bmy zQdr0Ci2CuP6GR)BRDq8%qJ36js>9Aw2NtoNr9PszaiQ^$wxUNEz@}d2w5w#1k2c_| zbu(aRzoCN2+cC#t&1i1FBztH^Ef^+K62%N3)D2A~XAWeP|GZCsIUA3qbI(u}nIqA1 zE<^Y;CF)ppmMG&Cg{EWa6>TjsIh6gEm+0tuPN$T`MsXYYeiALw5X~|s^ZaJdpPMJA zJOivn_}Wh{DAuAMWU$LXwPr$yPr7XeO;F2)s za^bQO;V{a0GOakckzqx|tVAnn7@LW#xW)nQSgZfwoD#j9ZSqr6o>9o%Say+QO-lG( z-bSgUFmPP61^aneH+>#lKAUQ+wJPcvWW?mr$le1(O>A)8V_jJv4%f|kW^WpeR9FTt zLN?JWj8AdOfu)jxgyCpDZ^vAfEevulU)?iy;cRYis`fv!AEPV(@DvExkCu^x=4As? z3p`5;xiTa6wxRN^kTTSuME^G+F@1QcWy44YLzM8PgLT>|7|WV@spUJHhzqaOI83~6 z9-VX*M~RO-fAAt$)~NNl7dQ513}0A3^ADW29rqwVtV863Xmt|M*JkZ9gdHE)2gK|0 znW-=raYy@3J;#NGv)%chYL-@TYsM;|n?=%R=rBkvMz8sT_}pDlQ>$$CDyW`DKvH1v zvSvOBN6wXKl`$a+BrqgPuP_NR^uw|FSk=Nt4W3u0Q4WBE-mRC*=LKMrCO?35hHj>O zkRLEGOD}YArN2gG(B#vGnO_$R8#sFX$HwUM5ywq%&3{;?R=8Bh&6svcQz{AA4l*SH zM%Tbqt1|r~eEN?m#t#tNf(jq1^eD0>`VeRoEY@W&rsY8Liwd%*wjSccA}BRNNZOYC zvUTNY!Fru|Yn_-=XoLDP>V56V6p$XeKnl>$ql>7jLnNj~XJI`Mr%T7Q^~5)S|suPUP6bQb^@M*GsD<`{;eaC$DfTWojVM|w#Q>kb9T`E${E#jqew98;# zP@JYa?bJ@@@y}+tmxpOdE%X)R#I--irQ{D$f{von0f1aL;?zWhdy0)g33rpC$bC$q zoLKWP7g#=T5ea;C<3hyT9|sVDeSFzq!0aCtN8}-^0(u`YN$eJ_5}Ae02?n>QS>2g{ zH*BWTF;{yH47tg}&=!HG1F!q&?Hwrlo{bz^nayX&jXQv8aw2XmbP#ec1LMY07Y)BX znE*TktrI9%ynD+(5_n65t$EVVbP95Nwmd=QXK7kwma7W4)nzeyW{=W7LDIceCdGBX z>TJlg8|8hAmddLC`O+ITDHH@ocfvX!y>g2~0GR2Y9x=p#Qcj5)XXU9dwt6Vj1dY8A zgeKamM&_}d4$#lmwRy(e3LRmDcV!^N+c8+Tr`!4K45wfvC5SyFDuN5we@7`877A8q zo&`B{<@ywvcjBS@l4|`2-Q=~A6Z7~+gi^e|2j{Q8Jr0C8Y z{Ha@+7p{it)(T@X&cHutT;$Dz@^P0dZ=N$oYC;m(e(Jr>>G#)1(D`Yw=_MGs7#tZb zcT1G;zsz_1zijr83t%a5h@gOoDRZ=jHO*jf3P@cDCVY^SiEYVOoKNSlmZM5a-SWq; zvBd;2jQy+43rrb2=Q-knq9*F{?+%iZW?kI=2*_4dOB*)vD_Yu%EJb(@lyFb5?`~pz z{++0=T@-)EzdXCL3KAB>-m|u;_nIFP-C}2!Lmq)6qj5IgN!DnLOt8Kj6V5~+0x#Lu zKOW#;>2*4O28x{7Luu$HdNK#@1Ng`T2OudY(O=(+8k1_C`gx`~KGs**I6wfgen# zu5Wp-tA*WKW<#fRxm1&xGepX%ymOVNDfaLbZcUCt{om#c2+C~2-^D7{&7ZQVDsG)F zTaS7K&H-Q}bY9q(cRh}bVp%s9e1=Y0XsW43L6*N9p6df#Jp+HLD2Kufw054YNgYf&_T=FX&s5u_`^AayPUGgILd;(VldeSWmw-iQKrw=c*s>dx zwcxrV$jjuvNfj(Hwkb`oyB4s>sC*zRqutl(4)-lE^#^N-8nnNttXeQ$Jse}iME{ir z!s}*?I^O>D0Xmai3GFCv@)p};WQ@DCwfD=2!VuObmH*8+D$-yshg~feJ0B;;evfC! zDuDfYaH`D`@)#+Hf}{<~2*1%N!Q%WBVh$fgOmWEbevw1WeUO(lUDQU_ZmCiA)e@xI z_yhG*2TN3mbLca@ll8~6b%AqnAHX^{RxO^_=g)Z9LyD+kCTIG!Khxca+dV&3%2Te? zFNt4$KH&jG+Y?s{s!Vq{`3tzaq9h-ECRmC}Zd5#6%qxiZ$E7L(ef359ll$H(ufj2{ zf!eabFH7>|bI`A=k@obWb^L|y0N$$is4lKWiP{Z4hyrca6JL6Q6kCOv_xZZMs{u@} zO`QFi1R=S}E0!>S%J;>A_~E+z~;$rk-8jt;V;O9u%lGSCZ6HgAL=LilFX& zA%aUDQ8e$yUVR#p4}cO}V$r~YoiGHc^Zo~#`6O^?NQCG9T$5+CfL`fNGVDA0XCt6Ew0Z)NHE>iLnoKBV9yu$QOVXC}bP^rl-P6&BbatO}N>+#xZ|O$* zvZhRD?Z~f9*y@0L7f2!Aa7>U-2_S-a(|m~lq5+r#RH;Kyzcn*6P47U3X{K2}LHI>v ztq@Z|KAajbMm$(|v4|7JK<%I|fv$M{K5K#U52exC8BwbA%%wn4pf#abrG+Lg-i4HU zsvEm$I*gMNZ}e``d;_MfSE9FZy~B^Ly4ZF~Nn`Gy18s_U!Z|{94t#o*@fIHh;4q}* zZ=#^zl@u#zfXn6qHbv}1IbfQ0fn%R0y(SA6UYGVV1i4=D?-OJhpJssxR)Xz#&XnFs zu=QN1bX1PsVV;=$fX0!nIVBI5#>Y95PyJ(n{e^ET(Uwj1 z!&$;2uKZ4`5l&XyW8H1IsX7J-Wm$wm?A!CecPk;Vov!|Kd6S>lEA>#hLt+E@{a@#T zse0T}4_pAW{&Ik(wx?2aYAt+^{=Gz7RAen}{?Z$zobZGQ|#-YQ+oM=)z@zBZ}eY(64<5=e;*s2v5V99?X z?Slxjb~<9DD7n&ykBZfA=5L3SLBpP|&e*Ui!k8Z}a?ZhQq(A0t{L=qx(3fvKcI#!P zsv%?`9<}Wo*k;-p8wH42iHJT;|3xG1Xn0KK^HZ!N{e5eCJB6?|itEO%=H1Wxp|}7ofDX0bZ9wILS7+ zQDjZKG_LV`aA)Ro4V3a2s1&E>2lR>m;cM29Ow&=r0^^)fOD$UgbSg-Z6Fri9-n=!L zKZ~y2lXI5EDl=8_2!t2$e zt+-fTKUd-6rvHcsTdiv0JKtbL!U=WJCkHGCn}Qkvb0~EYykHCv1USS+g_*ieq0Rx5 zJHRzCAV@Af>VyFwUlfhw4L-#f*@a(#00Q0G5QpqSbi<>0BiXSB(-agH+H(dpq(A9kZQ2#_8~k{EYPD8F!%YQxqun`MDF|DUl^vtveZ zmd(vpnZ|pIhfltxQGKIOY7v~4P`TmpSG`Au)8aJCkC20zj3g*?iX(zr!g1$kxifvo zqXu7wrBJJpF%$}odhI~nA<|nNFfMjSs-HGhu@D3aiILBWIVg5aZ}`NmTqd!|qyNn; z0T9Ri3`hHb+R?x;FW|9ffoS7}Dj3WTQ_dix(B+8*l3S|=r15c7%D$}tTR@s=kt)G$*MuRUxYH~j-#;3bFYSS(oY{zv^B zm(Nwy8vefLT&nTxT1($^>^!uqvk<~Fj4Q)kK8l$pWMRe7Sd;RN8vR*a0pVI!LHu0v zrN-fGPm1$1rD+reQMqxf&c`DRxULb|D!l%SQWo8h6)r5pw3$P}P$gCk;05!N1$IO8#(g^uwfwf zMw#BHQ6gd-MYXj4qC++1jO#yQ>E4@HYCed_oHW(Mr|^~7;NSvY&#M~wc-K(Dg0_x) zg5)n+*g6=O8)fCuCj_lf)_$}+8X28~N&876f{=67STM*p5l=yx%qY!1Ig{&AI;J>a zepJ>DKFQb|ylO>*Y0;)C;ALY9^IL{A(pemd!xKg!)g-6yRem9H2yj+E&;mr@V-T)_ zeqwz?LO>~0=g+^>>_lxlK@Tr~$`N1q(B6O`#sbc_MFEf~stv`H!r>1-H6z+et5q1G@QOXHFrpHd@ z7Ne_9I~9!dTA4(f`N3aSMrFa=nR40WT>mX)sf-AFBI1*W-?Eo04i4am633j2?e zLr-vecXlGE78m$v7uNX}N!G9Y{U7@Aki4aUNKf(YzMo|AEvUm zXgGQ!MVXxHpbzm;#Op1E!=>r#*tQfS1cQyK`UI@msBCx5{nCXZlM5C3rllXVksF0= zE7LT6$R@XD!<%%-?wt`T;_n43E-A(F)xYW&D_AWA$K8A|%Iw}qobQ&-nd(+fQ@ zW{f6Z8(@4v>9<41n`R6LPx4LrGcz4)kxz=^(6dV}?oX40vH?~G)y;X1(sDh(A<1`D z(Eb_okRt>uM{P!Iuk<1Z(S}O#meK<}H*jq#emOMx&gYm769V#Ajcp?0yy!KQVqvPrP0d&;^5DTD z9}sS5Mt1nLo3-sFkcxH7$3o~_TbNQ9j9%;Ub+=v-YE`Ktb<1#ZUtNjiUbD>URmVQ6 zIePzdaOj_^Xu)_`TD-ZZPiv&>nEJBL$Dh9FCACsOq(q@$$YKqQ1W39bbof?u2`uss zQ~DmfI$dx`a8A!WMN|YTg^`BFT=Z=8?#y5VWXDf;}zAxrKmE{9gonH;jp)o^@*|A*f8#}&&UZ9sJoUi^1uP?o} z6L{fP=#YN;OheAi@bt+Vr2uNPyA~p>J8&%oZ+b`mO#ES1Yk5F9_rFi5^oVH*W^0-` zL?LuZW{uDhf!mxe9o7!oq)WBl_c2A==kF6O6HtJ{*R-H)Z@_?${4a`%x6)2xCT}ZV z`Te1&OOLPR(4fwnM3Uylp_tdyfp2~0H_!smJFbk+uYr8>)RQe1*c5<#iZ|N>1kh$%pSZqT(YQKNw+@&lT^K8E6Q4i6%NOo)3 zXXf7is0eGppF+0`L9|87o1iNvZ$h}^*GGVBg!+-{gICY0oAUlw-p_<S&xd}Nf1_ZyE)|b0_*CtIqXRH8 zK1>Oc8sE%m|C{>x`6$KZO$p2OBve%4l8&2GUW~g8S1Z2Tj(C?H)Gslnn!##R)TBj_ z_|CPS7#>g+s^n}56&)kOmSde) zWc+ELwje6J&`ZNGoK8dHueMe#OSD5#7TZ3@MobUWTeaajal9=)0dr0TdmFkJj(|Il zrO*$ap+QGm8XG-@CtN^{7!{Y?cW6IzYJxliI?o6SI~C0wf(UIqm(~;+C*QXSXYKYa zIE+38T>c7;86>`qs=(-^9VuT4_A*UAo^qYhxxU`PDviX*D8YSs=F};4qeHFW1BB)S z6YrU@CoG7@YeQPo-tEDY;NSVQ9%;{Q1!=cfaph?zIFTt4CqOdsS*>ol?TP6f?wE`yC1=S|S)cHmV?GF=FMiNz^To zaQ#5yhxL^r5SZJPlcSqulRm*WXU2dvb~l`_ONCKfOLpKxF0;Ff?OpnS@H)JQW#k;g zZ0JxVv>!IuP#-mu2lTPR3kEg1>N@?%9*K#>n3%C zvFY1HLl6UTmGE=K0l7hX9Vo;BIR*&|Lly-QLh!&OI%m^B&WMQ=&QhP&6xT{*N+^oe zE|RKLE*vED7~jCZ0+@nv)}yr|{~e}i1fo}mw2HErFxsqS_a4^kOhih>hZ$Ggg6RK< zvMQ6C>O|EkXd%S(S6d#jrh8|25$vhGuO`J#}l#Jecm_rnpA=RaCR*$PX zXEmuAXwN3>@+k>V87MY~db2)!iU0104V&dYGxI4T)_NQYx9L$*lCc@VOJh-d;xFy% zh1B){y!yW<1IYbE*_v*CT8m$7dHYRW@qbb}DaQw%oO?VVDPZWF*+z$R*2Z+gXLpXP z!kv5ad|6hzwGr-%6(}Cp&7x(*A(@hrgcO@I>0~xe&vl8sAQD;WDlRS@gDejTibZR& zebsA>cV((C6z+C`lvaX{3}Jb*_Mnp)1L_^bls~p21y*SLq}Hcy#N1S^rSCd_%3Y8v zu;evv0&tC+G=3HOqE2$b3@AAT<#}okgjvXPcDy4(+Fuv#>&N~l0QmR0O3^|*PI+Wz zD|$j|hXjS6(QXt^B4?cSfruhb4+^Zizyq%F1D)K16Z}CSLH{O`hl=AXTdbx%AAGEpvCCtxyLFX*ZNo&Sfv%w;J} zbvKoPraQlwqvvG~XFM(`!p;+rV8C+J{({jmmVE8Q9ehNOJaL*C_#mpjfEzLn@zar? z3IxjX0Job-Tn-ReTjOWW+6n?|1lJU?c%;iCK#8lL$q!Q1ZQ*msF9jB$g+f0s9&RHP zz&@_77yJ)lXZu&;RMp$PS$l?(EfuDQiOCM4RdW>Cr!_oQ&a8Vr|j7)E0?l5D> z@^*g;^%bPh!jsBOfp#wzfl?|4uNZ9qZV1)G_ERl`*_-67r$qf#DA#y112k_Qrak*m zHJ+)G)n@5AcOPJ2@{OhL{17!0H}?P;#W1t10fRHR&=MY~5I9sm)o}6{!MUe!<(7dM zvl$Ray?9#0f8C2@!o=gk*cnxPLTCJ$%`bS*467}pndA=xO7%kVE9%TR!AK>Tydv%~HVn8+gDXd@5h>|` z90pv!my3~7lBFYqV3Mwaj~(CJ`CXLMPS%8==FVI^KonS=u8Pv5^|5)Qqk^Jt^9)!@ ztxCmN@YGhn`NG%VqtMls<#w=91FiCAT6Y1ny)D7lZGv7?g3aA}S3Vq6P15$*NY41-J3xiHBUiRZkmlcN9qTbtl&B7X)XKp5E5#tOvB*vcJ%fwYTdovs zKTcU+KCDi&+KbJSQ3ez8&G9Lq%sACTT#ZU=s>T=`1y_dHEX3*_pDCD3iDH^j%ae<(|dL z6O3Y^kW+`78%cZcwxchfmgd#JK*0=f*RBpRqq1&YG6XT|E4e=`RD#7^bppST*l(|@ zkcM^(m8Wedx3g-2;1p{Bct;ho*ZsJe7TPam;H{+%NYvj!sSgegⅈ9V00M#gnQJr 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 T`?tD%|LKbVk9qi??|}aXPWo-V literal 0 HcmV?d00001 diff --git a/src/conversations/AndroidManifest.xml b/src/conversations/AndroidManifest.xml new file mode 100644 index 000000000..5b111101e --- /dev/null +++ b/src/conversations/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/src/conversations/fastlane/metadata/android/da-DK/short_description.txt b/src/conversations/fastlane/metadata/android/da-DK/short_description.txt new file mode 100644 index 000000000..166643398 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/da-DK/short_description.txt @@ -0,0 +1 @@ +Krypteret, brugervenlig XMPP instant messenger til din mobile enhed diff --git a/src/conversations/fastlane/metadata/android/de-DE/full_description.txt b/src/conversations/fastlane/metadata/android/de-DE/full_description.txt new file mode 100644 index 000000000..d6b5d4b1e --- /dev/null +++ b/src/conversations/fastlane/metadata/android/de-DE/full_description.txt @@ -0,0 +1,39 @@ +Einfach zu bedienen, zuverlässig, batteriefreundlich. Mit integrierter Unterstützung für Bilder, Gruppenchats und E2E-Verschlüsselung. + +Designprinzipien: + +* Möglichst schön und benutzerfreundlich, ohne Abstriche bei der Sicherheit und Privatsphäre +* Auf bestehende, gut etablierte Protokolle zurückgreifen +* Kein Google-Konto oder speziell Google Cloud Messaging (GCM) erforderlich +* So wenig Berechtigungen wie möglich erfordern + +Funktionen: + +* Ende-zu-Ende-Verschlüsselung entweder mit OMEMO oder OpenPGP +* Senden und Empfangen von Bildern +* Verschlüsselte Audio- und Videoanrufe (DTLS-SRTP) +* Intuitives UI, das den Android Design Richtlinien folgt +* Bilder / Profilbilder für deine Kontakte +* Synchronisation mit Desktop-Client +* Konferenzen (mit Unterstützung für Lesezeichen) +* Adressbucheinbindung +* Mehrere Konten / einheitlicher Posteingang +* Sehr geringe Auswirkungen auf die Akkulaufzeit + +Mit Conversations ist es sehr einfach, ein Konto auf dem kostenlosen conversations.im-Server zu erstellen. Dennoch funktioniert Conversations auch mit jedem anderen XMPP-Server. Zahlreiche XMPP-Server werden von Freiwilligen betrieben und sind kostenlos. + +XMPP-Funktionen: + +Conversations funktioniert mit jedem XMPP-Server. XMPP ist jedoch ein erweiterbares Protokoll. Diese Erweiterungen sind ebenfalls in sogenannten XEP's standardisiert. Conversations unterstützt einige davon, um die Benutzerfreundlichkeit zu verbessern. Es besteht die Möglichkeit, dass Ihr aktueller XMPP-Server diese Erweiterungen nicht unterstützt. Um Conversations optimal nutzen zu können, solltest du daher entweder zu einem XMPP-Server wechseln, der dies unterstützt, oder - noch besser - einen eigenen XMPP-Server für dich und deine Freunde betreiben. + +Diese XEPs sind es derzeit: + +* XEP-0065: SOCKS5 Bytestreams (oder mod_proxy65). Wird für die Übertragung von Dateien verwendet, wenn sich beide Parteien hinter einer Firewall (NAT) befinden. +* XEP-0163: Personal Eventing Protocol für Profilbilder +* XEP-0191: Mit dem Blockierungsbefehl kannst du Spammer auf eine schwarze Liste setzen oder Kontakte blockieren, ohne sie aus deiner Liste zu entfernen. +* XEP-0198: Stream Management ermöglicht es XMPP, kleinere Netzwerkausfälle und Änderungen der zugrunde liegenden TCP-Verbindung zu überstehen. +* XEP-0280: Message Carbons, das die von dir gesendeten Nachrichten automatisch mit deinem Desktop-Client synchronisiert und es dir somit ermöglicht, innerhalb einer Unterhaltung nahtlos von deinem mobilen Client zu deinem Desktop-Client und zurück zu wechseln. +* XEP-0237: Roster Versioning hauptsächlich, um Bandbreite bei schlechten mobilen Verbindungen zu sparen +* XEP-0313: Nachrichtenarchiv-Management synchronisiert den Nachrichtenverlauf mit dem Server. Aufholen von Nachrichten, die gesendet wurden, während Conversations offline war. +* XEP-0352: Client State Indication lässt den Server wissen, ob Conversations im Hintergrund läuft oder nicht. Ermöglicht es dem Server, Bandbreite zu sparen, indem er unwichtige Pakete zurückhält. +* XEP-0363: HTTP File Upload ermöglicht den Austausch von Dateien in Konferenzen und mit Offline-Kontakten. Erfordert eine zusätzliche Komponente auf deinem Server. diff --git a/src/conversations/fastlane/metadata/android/de-DE/short_description.txt b/src/conversations/fastlane/metadata/android/de-DE/short_description.txt new file mode 100644 index 000000000..5249bddf2 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/de-DE/short_description.txt @@ -0,0 +1 @@ +Verschlüsselter, benutzerfreundlicher XMPP-Instant-Messenger für dein Smartphone diff --git a/src/conversations/fastlane/metadata/android/en-US/full_description.txt b/src/conversations/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 000000000..998dc6832 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1,19 @@ +The monocles chat app allows you to join a worldwide communication network. It especially focuses on features useful to users who want to contact those on other networks as well, such as SMS-enabled phone numbers. + +Based on the app Conversations, but with unique features: + +* Messages with both media and text, including animated media +* Unobtrusive display of subject lines, where present +* Links to known contacts are shown with their name +* Show timestamps for calls +* Integrates with gateways' add contact flows +* When using a gateway to the phone network, integrate with the native Android Phone app +* Address book integration +* Tag contacts and channels and browse by tag +* Command UI + +Where to get service: + +monocles chat requires you have an account with a Jabber service. You can run your own service, or use one provided by someone else, for example: https://snikket.org/hosting/ + +Art in screenshots is from https://www.peppercarrot.com by David Revoy, CC-BY. Artwork has been modified to crop out sections for avatars and photos, and in some cases add transparency. Use of this artwork does not imply endorsement of this project by the artist. diff --git a/src/conversations/fastlane/metadata/android/en-US/images/icon.png b/src/conversations/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..046dbfb3a09088f55918613caf3ec002ab521551 GIT binary patch literal 43974 zcmXtfby!sG^Y_`MmR`DJDM6&9duddZl#-T4It7HKLnIUhkyt(Rq73LnxK=~n83T6?(1Z=)vVQ%uQk6V2Uj013;MTeQO6O&zvXf(rr}eYyiMNNL zPLWTQ)_+l~pI)fI5YegAcJ`J4LR}_#Rp#3s)7em(z#H1<6Q29NQqurnRXb&Sl4Yo{ zKYsqS^_BD?R!Hd4;1VI`{p6pbMq*Vi5-r>yb%&KT+r@^K*1KD)x736*`}N+9Nd0^w zO8JfXt1RC_y6aj}f@YN1LLUb4d&eQoz|u)Wvq#?S&Pn|v%P^D5-gTFM7{zMglrNu0CW1Dei(5ZIQC9Dx>7DeS zYmHFtp3~C8MuhkM$%=Z+Ot!0 zoF7y@3VM$9Ty{AB_=lxLrdsv;y_&X^J>V~-oWbg^3hBv;k`X~`yeb4Sst@vo%FVgj z2v1?p$Vv^?XpnpsR>13RpUBHAImpPsR(nWYQf85I{Cd0EdF$5YG^q{c%R4K8_IPO9#WmAH(Je%*XZ{1Jafg~q=76CDQR#dtuv zJ>~2EWA4l8Sj{JGB6=K{I9eEtI0XtIU_1N0%}S-5l0wImWFbA0o0CUW0+X~Xl(`O1 z8)`v`{Qb1p*^mTK%4xx*+T+SbBFem_lL@d00;sAScnvXux=xYMdQon9`HR7J?8>n=vN4`%Y}q$< zk#;;iM$VBqD3B1;u6D7S@gmPM)o5SOHgq|g$M@x17hAE8-@eNU^Sb52YC`^iaoh7i zFX}wPWa*Eh$N~s>&9q4QtAxG#*{?FvPnFM-FU`KcvEMq9oZRr}62Hi`wTz|Tf`qDq ztdWAO+2IGCcjJU}^)k&dNbrnEKevV)@Qhu*S(hfi4c&Z4q$YXGQ^}U-8NEnJ^isMp(iWyaz2^dkp{mpfegJN{ zwT0n`adG`VJ{x<347b=(*P)PG7!w*i_9x*x0KdhgK;NFIVH$b0zfA78^e}n#GoA=q z6nPZ?5s3G|r#wh`7V>waqpD+(QkOBztVt|4@^iBLr-jJZbb@9X`O<8FQY?d~4XN?y z189NP(eu}$41TqqD#E2YHN3c^ndPZLvO{~z0yQx?0#P_ADn`@>ao3x~@PK|UC}Fkk zF?rcevqjr_w zqtmyzN07C*8lc6GKLG`E|A_HVD;41-bz5eORe1RUXV%<(ZBbt5hg@m#P!v9EY-DF% zTEgOrWK*)S!hrYOo#7*31TOT6@AJxFySR3j-CP`$H5O8qpEt+>gznpF?NGe<%;PgG z446^3FSB4k8{KzA7UZibQ-apaKf&Qf;y8`hZ{<8M`uJD*qq3+3lLgf6#By z;+Mw*o8A_Q5_bfzwbV8iuilF@__FEIlzbDO3% zT)Wafa`WHiHz?68P{@MnF~%8W>LnVmwi_u#_%wa@&SpV#BGWZ$jn!+=%XcY6>{vmT zL~X$nQm4;|LLVJ|<&vcK_Y0C=I(TZDLG?8@qSuagiPNe(<$zyDLK2y-4nb+tj~?Lg z9+%_eBIx9Ye;o+^ySL?aXe&|2oL)z(uTt2U=1=?$4G=b=LP?Zvr?5N&D(O&atxBxPo}-VtgE=&KGlJ320iHOu?izz*69vWh%4dg8eMF$Gy2Q*B4I zGSFx9aA@RDVR7ID_pj`qpYcaKa~l->2vHP22eL@n6>ht~Jz$b$!Uf<35 zZv*cs+_GRkaT)~`s=M?#3)i$Q|i)`{2jddz0ExtA^8LN|uLO;bWm#>~~SWJ|$ zcz=|+3>_b`T{5x`Kz4YYS;+hfrjE;^uzj>6HG?a|t0iwHS6hiYIvaX7Kd|uZ_~K1T zaNq=26TaNT)Mzw-Y>>y|qVQZWbYww5&XD+2&NgXj@5cL)lK$Zs3QwY$XFJZPRfY4j z6h%V`0iLJ0Q;fp?c{6wpAh-V4a$yj+6UVWWdjgr=KYQkUSku1gUobI$w^7W`-uY5* zPVUH9rR=L~nd_`&&$jq0?Ro*qt^^SvO;w>f2@bpN0aG>Ir z{FeT_)r*@>bX)Vs&R&wJFp*c-q`S<#4TnUid}6gjpB0}LK?_67q?Tv+5nl3Y6PgoV z>5R|W<41nFNXe3Tz)2PaN4@p8v`cqPw+lN7opgXru6d|_sHAq98AMk!Q$HNM2|CTv zafn%lCKsHN{dpn-V*aJ@w%qH%AAi^+<>@`l${om^%{lq>fp{uKqSbIr3U7Al$D@Az1%qTm_oAhfddaU5T{W9bW8V5F8lNp@DV49a zG#ebc-4s>JrT}3kj}N8=3XG;Kad~MmJePC|r4E*_M#GGbxb0^vAG#N|6taW%yKJ+n zl3x3IY$32CX~L#^C^4L{air8$9!!6WCqH&{%j!c1)IipXH6ffo{QNJ0eG-otsv#i$ z$D!{H9^JNyGZVq!`$fG8g+f~1Rh#_D5*#X(jbvzU$ zHbXpT9$j;G7vxOaWF5ytotDrV)q83-^`4JiAC=GP7JOZb9Nos9(0NB6d1UCNiqftXuvqj&XH zsXUl{Xk_9;_RT=8wzy#^7A3>tz!+fkIT`L?p@i{CfB#z41r!>E1nYFYZ~vef5r@Jw z3CJ2VEx=^~3QbYe7RnwAX(fak#{C`|%1s$f8iiP!OjyP2F}HMLd#+@*6~3rAME7Mp zdC;T#Jp9Kc6Js@7HQVf<$Hl@&LFs2?ATbh4UN{+|Do0 z@Ya)x>Xh7zN3{50nT&!_-Cn~{rgtRaP*Dx75z!)c|1xbW1Z*?o4hAXc$}&m4$vPqZ)L@6E=*;2Up$ui`8+lGJ#}QtY&L z{zm)-VF+Zu#b<7;C1$Q&#q3rd<^ze`hGm7e7yAcjoHKGem_pe%NvwiYo`b;|9`w;u{Lfjn{ffHtJbdbog25ZzEasz^nd zRMl?5W!C$AL4L?Fd!0i(&n!#n~aB_Oq}?v|={G*g-k z^!f!JU+QfGBkz*m)88L*l-yLh7&p7YkMA4_MI{F3YL%BLQc3RqJz-D$7+^vl(7V$o)f&D;Vp>j%dhKl%oywo;dZ+tClt_0u zX5$^b%#Ol5X5vp-;wdf^XXYnNflmPO*8}uawAXQ59?^8qA({W3bbHmXXZ2UKe010SXLA6zp&dF$N_PuF#-!hg5!-#hV~>U6{1VHs)VSVi$p17D8ZAS4JPv9 zz2d-UPyhCRm-m?a#y|_D)q)@qh#Xvh5S;Ha*Z)2UtGsl6&=omHpkFP8{yx8UwldAY z@TAdpb_%paeiDELwtHC=CUN{*==jktdha#7B00s*LWK#kBix+4-?~a(Ai9GV8d*zX`%Ptz&q}~lqEL#W0e3_HlQx!>2;rb z&VTdwt+8%>M#GQK52}W&JqI`8R%#`SaPMepQ!a!fVIxtaNd{n1$wIeI2o^m})~p!2 z^P1V3XQU*M3Vk4zzwWU0-;#)Ui*zLPgK97UpC4_hiCm>IByQx>k6TT!Vo&Y zlB6thLL@bLl5N1(uT#c$i>0*VqV5SBUJUS^ABd-&JF{-uT2a<}g|vqi>$d1mI*RfmJ}ZC!)xM$p64o+9+y>f9X5UqU8&BO~ z-sSGvcG0?SxS8uZCGhxV&(ch!8~3@jl&bd8v{5zjz5X`^^Rt5uwBP@&{u39e-+bAe ziAMuq=l0xh1I&;OEw6Ru18bV0Jb9m8&A5?#?V;wzFli;31IP=I2|vWd%fxpio~l`r zFZ=~wJ~P41Pu7YAg~$OS&WdfQ4XG+hl^kW0qxFKHqqZON1Sih$+UnN4>q?j8n2A9V zsDj0VmEymfVEyvgGSR;9rPgbUZ|8~90ORnPTec?jT%}o;u{|ezCdcLEm!ad{oyw19 zuRWanMx99@(eQb%;OwB)4VGzx<{0qw`#-ZW%}+UoLKt(dSYl9NdP8H<6rDCrYsvQl zKmf&PR!|Lrf*0IS!jxCo@hT~ui8Y0ZZ2PFMwioggtx1nz6?d5RU>giyAsdK|-9@i~ z1~(P^gFw5({T>H86#PsvOUONa3q4}X)8W$n!#oMyr{eJPg|CYyyvfayqsA) zm-|RczgZ?w^sPbN-Qmm`w>^@L-BTVgzi|6kmVa$69<1(4iQRGZh1cZ-?Z`@!ckE{8 z$M7_qPMDlC59h5d_d#N-1Leccx44J5i`N!f22V};r`Ntouz`N{dMnwr$p=H1?Vk&_ z0nVF~ezQ$4pEiz_>DI2yH3*YH=8KC|oY%v#kJhdAwAKchmE2+mY#yJ-*@Ke4b<0%y zT5c>4QfNF`pWp~AO>9wj!DgG~h2OxIDu)Zm%(pa>FyzNbTk@|6K%-NFNRX6EWF zEZHI?`JR&fu^+UxBt%5}9bCIMCInOS=Ml(uhd1lTHJztE9V^7IR1g4?j0m-qkE`!r zSGq0b{#RmBGDe)+m(W1yQ%OH(bgD3@>&tPU64~Zhe}RH&GO1EOqs^kH&;PBcAULJ) zkbO)z&->YCFD?JYPYPmVZhH|X-DmG_AX9~HI;c$$h6bFAPddcEv>ovJiCIV@mtg?l zoe0i9P^1@_&4R+tkMhS%OrL%!4aYD|l1=i$Rkcl7zDTW%jpbDctECsbFVN2@Z8#$6 z!VID^NdUxiY;3!z(`2^Lr#D8V+YN*(hhv+lX!zBPQMJH|CKQak4ZbtsA1&h;b4lVq z0bUeDZRJa61behS41X$wHRHj)#54m5LtM?6R#RCUg|#=3wI?-Ejm7GOG-E`%3F1fK zaB&D{&_;MqhW6}NW8md<| znq;x4Oc;QOyHZdtsFP?tDpO!!;<)d^B1tp4=^emsb)&r;N zj=T>Yo0Z+D29FcI-6nxkvE}PnLY68_L>|dai^;t8S5X}g7`JozH5wnvE{%u=RY&;f zb1ev4!r2w>5@sk^9_i={+d1Fl{EUYjrcBMl>?IuD_^8{I=%NCxemc8v{Ob|ezJC*r zfvfU7GW$l|xE1hCSS>ZkuqprOaz&petQ zp3s9WwpoTM3{mkcbn7vzn`}=5naaP_!^#^?;>+Q~&Fq|?H5>rg+fyPk@zQtSlm@aK z9V{kMAd2?uz(Ho>?kpCD7-?TUTv~L%X@01D=`V2QdRztG$Kdai`7>XI$o%*SeN-_S zu@1at}+Idz10DWZ>4TV8wOi>GL1Q)8>t@|D%!U7$|;C<3Y+R ze*sGcCCbTctElkTSEK{Ge|E!d+9c*)SQlIrFBOwP^yz@$CuibTqQ4`LDGJq2^SncL z0zhnk=-LzXANq$#VxL_uf*n)IJr#c~Nh{e)5-B5h)Z*UW6;zPDokNUC|FQ{~4@_2# z$v&jqKg5aQUSDD^b$T4gH@wDdZzv&(OQIAZrosv-Ec=j3UojGP6g`~L@M`=)Sn9MGrE^gbt2KqJS4zBrKX8xDhXLppT{OKL^TD?B?0wzv39Eetbf%rQ8!c8{ts!e(l$OIn-&P@dzw>!E#)P6dvU0GJ*@(U?UhsgyA_i>adr7(QnTUm$q zU1lmpbA=z3<`1C;ow-Aqj{g47%pj(1yYrRPi-U!P)8Q2lTT2o|w0ibe$wwo9U3wWNsa zi}wCE{Jm`JSU%v)!ZaZC?Mjh36{txBO=;U$W*p1{UVH%zAJ#3t6&VPjpa{J|2$V2H<|DLl995uXO@XzD#Prrz_Ua8wmsjjVpws;HofE?;zSKZel74a`4gX zyqJpf!}cA#T@|sn)Uj6jgu%ZKb71IHHC;+guE!8?ZA2sI2~oLmSemdD@7^1uTk>9H?N6;>*!zH^f>PSF^@D|!)&B}PO8tR;-G zT2xis$e}`@feb**Vu981Wy8F&?WedeH;qSJ!of4;-g+zMB8el}nSRz4C~XP@M{_6A z=My7SbUh4?qQZhDo%iEhCX~T>xDD&=eK)@p=*EdGq=6Jz_ZzsR??+cCW`m%j5QHMaOy7is66b!|R7rZtuhW z!sO7U&^FnK#_-j%&Y|!uf3fBC+Bc6u^nB6*6yS&;&7Wm&ovOg}n*ZAch)Jd-8odu} zJlzU~*qipMudc-EGECXnq~w1}YTmXW9X>{L_DmcVyaT)*OwHlaI|N!ETk6Qn zZq?+2=;41dKN^fCJ>YRf7J)K?0g8Lr8`zMQf?Ha~tg98l-oZJT%b)B2Nu652-~jNG zBSAk0iLK9vGbg<|_QTQSmP_}WETR8h;Qn6>;$vF` zS|2d}P)-6^>R$S$%dGS`CFczlCo8$jG(y-GDE@a3K84YJMT?Z(YQRR49Q_o4oud_i z&P<}7%d*Z5n`U~1dS&BViYo+Ih9s-cy;v)C0UQk>x8xSuhLuz78HYGRvEgFH`PSQl zQ=L13mDlcxzkGi7d?OXojp6;nS$yauMuK($>7rPHu%pUCa5Lh=qpA{HPXAK5za_KZ z|0}OEh99)FdLbbZ`DB;)Nep-utPs)U?<|Kv)XBy1+1sJz>uCdM+_nPq-iD$!T}kyA zUQN_;J2Hy^h5j0@0I2=Bdizx4jz+zCwTODo7mACm({I9Z+%eWO~ z`o&DU2VySMCnzZs&yTNh(eOW!@?k1vQ!Yrf9;e=I50#BWNP#dA{S%kMr1Zyxxmqy3 zf4!q7%l%r7U83LET9>xB_&N1BVV%*WUJU=*ZSJABAn5hU)^UyxjxV&C^@{@m04G(+JgLpJInpZjE z-{f;TLL(scbsUxG1Adh8HT{x@@AxdRXtX-gDwaH+9mkPb7^}R|4^0M?1 zoLlxwj?PVtdON`Ivt4Byes+V<)*m|wAO;-!`Q+xcMHX0i^(v=gJ5=6B69{P%b1jF! zyA%7r0RqEbVrWNgYFJQWdMm@9};3D z68y77=qy8y?uG$GZK6ISeeZTO8$H5q3+>XgK2hkq=8l%+n!A%b>%kO6<^+-PFXLl| zy_k^$$~lPVIL$vPP4~KM)Mu?~bJ)+-VEPs|b=G@F^km~C_`#SbkxXL5%Ic7YqQQqb zgnGYqT~e0AqudjPJir2;OLFFA2N6fjl!w!`%o6um7oScIts%br7`Z1JKO)*@OG}R| zbiylEgtp;{%9Qz79d)!b)IFs8qPJj9p?rB$O1_-?zSi)PtBpAxf=3P<%@u~EEqA-A5pOG*q zsq-~}jRj+g67no^oCKIp!8Q|SpyHa#7-FL#hFpoS#>w$!U2EHmtk7K1>ax|l=M%$= zdwK)Alaj2wdfa59#8BcoXxrh2Hy_G+H*QO11b_!%lnG3TpM@7T%9HWDdvy(vY4W~M ztxX^R7N7iGIp5LhZu*v(u zcO(@pkOb)PtB~yWK)jx%0I)Q>JMADe!I&e%Y<6<%`_wP9RvM0M4Dx|MbSfiHpl)l2 zv`5z1=hd+SHr_D$tWXZgAjZ>GS%3{R`OvUd>yc$Q$&Wxo9ImX>!ACwEDBdpa1RLG* z<-dgQGYv)M>V54w`}q{es-Di4|2bl=2fGeCZJSc-U9Kme_NMN64ZC_+KOcecY7$B? z(P_6q0TI=17ob}ch}^|K1^57Cg%lH;-s(gNxaMcxYLJ+V1mQ2jeiGyf*fjS^)M3w}slx*;AG+F;*1Y7V@ zj5L@Tk(^|-J#<{1S&+*1Bt8=wu%Ybe`TPQ$#JcK(X4~PtWV1Fg$N7P6a+#AFFJf*_ zXQW|p1)>n2fgY7WjY3dbPC)sR34gb9iP72$m>?qBT*AJgG-UL?ju|gEG{B$_O1ik_ zplG(7LZD@EH2rK@K(>Xh;ar);m##?)5nUXMN5t)v^mdSA_)l7M^Ni6ZkIKVRfx{5} z_k4mMxfzV{6O{nkQndkY&|~tai@P z4%A#0Pm>sAv6shB8KF1Qi!Z1M9sYG@9ch#)X4QWE>IzvlM02p%rI$4!LghIU-LpQq zU5w&4tAo!E5x~at`{E340@3V%#FsBNV3EW|!K%|Fz!iIW%m}Yy%5HF?W zFZmNA)Zb_`|C@q7w?VIqqMeKNxMA=8?&C#glknH~`PyqNvs2 z$kp=8h~CS0qgIW-ML0MtyI58^$gvU9pEDV9NK|4Nr4Rj}TtU7nY5WLj(47DM z0I%<=mfP=QQ8k;Ag8nTCN5Q{C53hpjLMBzi^9;YZ#OCG{8jKO%eL%-Arhz^>LKP3K zw$bv3GN!J9q2OYXGySGMEh1W*YI;RW?wF2ZoPzM~K<{ZoX?n8woWFg*+Fe3OeqM~Y z@2ksw7Rc{O2){hR@LN5wF7}N$3%f09+}rh}Y+8 z;Q?&0V~1i19J6pYqMe8On0NFW;Xt^_dWX>x3_S z=@sUX>fDCYj0Xgl#c+%DxN!Jj#v?KiSL=?5`el<`Od*MM9&r8Jp22O=`+hAra%nH- zyQ+MQD{+&_+lWj3c%W_cW6g0q+B}4 z-b7>KQN$XVu{;|#VeP&OKSPfKv8o$ltm>+asgL4}_ekprdlB8) z9Zr@xl0^B2z{?@L)CO`(?UMqu{l&?8m`TZhF41 zZ5@wNUHa9*?Flg5tWEnaiOQ9WKV5gJniFxZ z^R(>}pgu8*tja~hM@2x7`~5idH$HiDG?8&W^1CQ{tr$hG!nr`3@+3rxP@a%`C@oH< zMn%-SL$hXdXY;#u1e3qBmJ@70Q5eH2YX~4uFLBPF2tceh{AZKwO^($s>p6g;n_(lN zVhlthZzXOw|I$KB_}|JuaF;1!-kCBS0vRwPH}+T)(R`q^-xuKz%SmRqvi*$@v}`NW zC#40ksltc_%Lh_Sc9)%~KDDCJ4`qgZ(vdGj(G$f0CA-;4NonH+$eh6~0WRifv`6Uh zz6t|tTf{NUoT$y4b)DfX<_2*!-xm>vIISEk~*|MPMUnLtBk{F0& z6f#l((tW3!|L!f-WJMy!g}H6Xf*JDAwXlVkFH;R7hy8(Yk4 zuX4s)RRg+&U!x-E4GHf?Lq2>Y0$aS5`v-NR7pfrKEpMaunihEu=HcXMXtWYj>UYp+ zK1txfDl2w+(AqQQa$@VC(ZEGAz3gNI_0kr3_t~dOqw9?*o=oa-PjMZ%b_LG|^yvd& z1cCg4G2e$E75?(S@gfIr0oq&%p_qeHQJf$LIhQR@paEh!@ga1gO7&_RSL5bn0E7)>Yn? zqdXiER^Qsnb?1GkaP<@||C#J-?BM&bKYW2S3Q8$_%8ghhu&Z0D^c))0+Mq=h$Dr(> z$c?S=Hb7hvnhEE!=reAGZI4eB6rs?L|4U0hoW5=sZ+})JeOCQSQ8whZ{Viy^9CTRr zuT8-<$FX=*vg^8Rt^Bt-Bg`X^pN7B$1wUYNlXDH8K-YNf@O`q9p;_0Kkhs zl1-Dpks}gL{aVJ$G7zgSyDY~pImL1Gm-Dr$8vK%JZJfO>d2UF={sqzt&}+Dg@Y=BA z$xKbv!)MZh-ZR6WmW7Ja5Tr^)B4G)L@iVu3{d(xNR~LXo2g)v@AdgdTY(XA4dSX4n z8Bj|82(SA67f&Y3rd`#k_5)riqTyt{ty6D_!P;Kd$glkayT zWNszX92coS1`Lv+yJQe!`vmtSIJG=z`$^gQhcRwxnj($B z_!E;)G0{G5hW5*d-gY7mW()GH8kPr<0`2&uNvRkeARodhW9df-fD>+2?I8Ln0?h|o zV?B379pwQdSKS0r&RSt!B}4ZRp;rM>Oi#HwU>Hk+cyxiGT7Oc)h=d&jl=NFQ%GP>tqUK$1vsmkTTF!}RW_Q*_28gX{2)u5 zau8AGZl+aHUVjozzND^w%yM6qBNrI;@gGC8t!{wrFu2va>fEo->Z%l-b1d&&cP6@B zaYs3kCQ(e-g;kR$37KCA|Nh5*nmhp9f&lU1ku_IUhY(&0DUPo8k5SX+wRB%|jrHBV zmhk6v$-#f?%gcOrep1G-}EggEu<*QDY`z2 zLV}~Mw83&8qj)v-*??2;CK>;kjP-|wsWoHlCzQcf)!Qct8}nzRS%j%l&{QOZ(|k?- zpSL0QeqGRTcV^~o{i7c{AViC4+VX9BgcY95wInTD{9^Dy9Y*8XajA0nO*9bk$Nr~E ztfbob#k`Vq&7^yG;+Wum-ap(@)uCT&*?L>MW0n8aN@Dc`tI~)Tk=Df&na8Z9tf9Q6 zeJxPKv5y_LUh%Gl6SIi}lJ5?_Z|d&rcWZ$g$dnctBoW9>(Kb04h)^y6t2Z(`2Gx@pQa@H0rH8qFDF1k4;-ruu`FS{nXZSLQbI>=MrjmS&E_-(#j1}aqd~P>6X0}a}<5}2s>+PlESS^dgCaT?!| z^y)Mor z$~*?`UMw#lc%-DG^ik+hhEC8uAz1^17x$V?ulRDP3ZmE3!x6#H+| zN5CP#QcEC>9{+NG^<&37QHikPwSexbi40@iFE||E)uL!LAwY?b4QKg?4r5YU&Ny&{y;(EZd}WwVx4SG2(%DtRhsA&I#;GNik4wy}Wy$ROio zn%WFl4_;B9CfAw#%fEj&OxLH3dmV)k*zsAyzhA_k-#YVGQ{E||HWU3%1vw9C(}r-q z1l5~RCUVX!y*7__X*^2~ZIWNLymTL3v=Q5I3o+%XWG=ysMJq2Ke=6hd|2Xf>s?fWd z+#z4?fTjPbotM8+eLN@Trf>a5lC>lH5d$`zWm;Fv{Z1lUxoX%| z%XA97my2ckaAzNBmlLONWdSl?+VwKLc=?YYzc~ozR^jNj@Iz5f6}|50`aCimvC`YC zgpX_*x`7n+G+)+BjGvX>q6Zgo4t~#xc%SY!zMV*Q8|uCgU+jJHRGK8XIakgHbm_mZ z4ESt!=BhKZq#j-cpTqFidGq2X7)mtnm?!wS3ozoZC6j2on8Yu!iJM=^QcOL#tAAIR z=LufA6tv9{h{tbbJRrUF?%=RpA_Iq^ckU8TTGz3wt;CiK^V-q%(AgblPk_immJ1sg zAb!3(`1{`J;LD1&Ken0i@7!xq?q`Gxx!4*zQt56I3cOE$jGCmc6fJUn>nq$hY>be1 z;qXzb#v;q3ko4h7wnuN=MR{29c}{GRIXE#+t0!vek5XPdBWqt}pP>}#qH1umdqzdlbyX>`w{7nULiV}dA9j?ryzoKnrJ-Y{dl@TFM3~oy60Cf)zkHE|KD1M z7~*N9UCIIZ4dzJH7>yFp_f?mSg7t}a&8;IPm@{%T0KzB$Y)t$-dK+XnM^ns0?xk5biy=D0rr>*vC-3wmE)9jM zEs)na4{Ma%qkiJ?$0Af@FXXC4^F^M^dwfX76ahzQ$E==`X7l>JS`hZHjU_1tY(3g7XKBMQTAdC|P!UqNp2C2T_Wjc1Iy^r^|nc7kxyG_U)PKa_ zr@(b+8rd7`FGgi^a;i@~0Mgd?1z0;riTr<3888#N9GLsJ4 zCpHIBCHIEeCL3keE?0!_3wEcc3y>JooPp80?&}gb-_i~US>B1%f&?4586lsa5`UWA z@jZQ_J(1NR#z^*=jexa*v<=+C^W0^j`ZeT`l_SPN^Xdk;p(71u)CA0)+U}hg3;avo zo}HLlt)oekxRD6?*f~UFrNM2o4PIE#Gh6nE(gSBynlvF4RXo{U3IR&02$8xZtOS|4 zN;&>a74sHe;@i}It2L@Mfr)o7eOkPRWBSVNk6LO-as&nKl=_jRn_TT+9J+b#n>fxn z{Hk|-vyAHDHnHeFA-54DWaAkjKopFrO%7GYT~Hm8Rw`eI+vi37-{_r^I_Z9yh`L#S zvNZ>5k%@W}E&JZmsyp9bW#+A-qeHcn?i#4&(ZPjOkmK7S-|D9}1Svv&KLO0A zx&BOvZ(l1t_b2|TF&3!z(x9Nf(4(53+|UoAs`MOe8!3b$0dTl|7L$j^=_rBJ5n8Xg z_*4NacX~(*_}RJ6jK|9y>lQnoYY04a2^M%2Fd>uK>so$$Hm4xtm;fw>XBw!*-lLS zFS>^ecf`*gpRE&f7UT{fjNVAzOCtzLW5hRVZ29RAVU=m!?`cSog%!Ud+EudBlIU@* zuFK*&E2pimYPpzNiBRy4-C!Pp3o_%_cFxu%-b5nnrdZBe0(;yfd6%MwM0QDXxFM-vGxm>W7yopu^s4mVUpve7g zf)>4_20;1pB@~4*ylSEajtVAbe>C8COE$hU%V^ViUZn9VpsL}5sOn6|M=8a6X77Hx zx#G90J?H%)%^!hmy8dHaG%aGxtcv{Xb*2FA@A+jm&ZcAnF0H*EE|<< zp7N#l5zKOvJ~~I1KIPh^P`qkhKN9r1KO`bg4GG)7$GV$ZK?tr0KVWs0>uSK)U~`wf zxobMWUl;(`jZkG&tD9)keJPPWSHg|FDFmi-|K0F^h8nLqchkKKz*=hB7*6`vUr9kZ zc>s(Ww)WLW;KTXY2yw=M<*%F?;TF{qHTCi@hh7k`BS(PHPB$F!TB3 zb8732Q_&lrRFI=qVRWi-bF0&@O<6Zi>UrlgPnm!YG66p8X8 zu(nkDzg>XIO5uolkuRE-M@0(W#6}U!@(WO?$QZdMB|UE z53yyRTMd3U+eS@$PXJ|$e>kuIBBS5R(K40?9M(5^VF)H2HU=x>a$nOWnl4AM>zid1RO zH`sq&!IdtE+V&U45|0$oOcGLJ*O>3P!@_DG)_usap;ONQ3HCIyV6=)g}&!6siO ziK6T6|D)-vYxpHS{vl5` z#f{BI`N7|65s;NURhX_S^m;CSgHSqx=GdWgs-Ut&g`|^6nttJw?`adA@qL3HUGc-t zan8TGGymQ8rm3qEjh-iHrv6QzAMkS9&re#Qxgb=K?p18R?xa8Gs*P=-e@rfcNnA$o zt%vp8T@v9pz>~uBAOQ?6O2DRM$;}spudvnMkwalt$b9)Vs0rI51jL;TzaK z$dGd-${9bE{4eAcgVC=_*82Pd!ig{VU)$zUjV%q)6j7%gyRNIL19e8LO|g-J-8eo( zzZ>r<NXT;r`FclHlark0`z56RFm`=e(RHH1);xGu^u zym?mBb3xo*WZh_D^02Tq#VPuNP!vDQa|gUgfCx&^ z$7HtYq?mom0ET;sBlS!>@ozTziJNzH=cXn{@-Zq8dwwQMdEXk&)vQ0xw32N5Nj@(= z>IXZwYg9a^>js%C7=vUzpPi(uYEoFE;A47f{k0xWEJJxt$wJ;a(3cqo_K)%j7_)%21ErdR?+cgMRNl;w zdw(K7)H216{p(D5XZW6ZKvDPO=>Kj!#S&zcF`G2Ky?a7Gf4qq*H+4S`1o4}I`qK!f z>&+OxynxpIb6vwqkg@82RdOUKQM+GRcF&MztFtncR?rYYFo7NU76Au9o@~m$=mx{a zy7~Pww?>4?;XBmS2jCXCq1&bVBTMsA#n_MWMdlGUpL__&**B;=eERk=uAkk$sn^}X zamnvUQFS^m+#!0uRCnrTP(DHWB8v}GhMILg4DEOLi|>uCS1~+!?TG$d8ohMr+kSVf zgb%eb$XOK?ebJ7AT)KL`g3g0TJ1#QU*@#y zO9NV)i5}*V<^bM+mfMYs*4umVSRzjk_970^gV^natUv0nrH9>sNyjF`Gg^LPpNMZo z_g{alyDtw8c&>E30%-wpR9r(Pox2&1ijC#|=*efA#4l}y5YtKA7wIPDJg+l~c%04` zZSSP}q)4K7OoS!jDd8!kXu7P^l&Zac3Q(ma@^r}&pG zenT5jv5w7X39Hz=krunfDZAW$`1&c=wSN}~cL=|G8?v}_NnjwQ93PWv?mA$RT=wWcFipr&T(9}n9ic_ZryvkP z6n325a$X5Mzu~2@e>?7O;LPH&^E~PL(m#M9Tk1f_;qr=tE&jaBro5f!-C}UjnKWkW zB5$#4(zWZPjS%v^E&Hdnc@*aZXeQktmeLdih?K?|#zqI8byO8S^`qI?Bd>SsYMS*xnv^+ zWoawCoWWP}?^Ew@ouR>?x%1iXayNngS!!c3W$pO7VrNaD|Ju*6T#-U$D^hM@hyxA} zD22X)DpOoC4?hn@rKYBGhVEaO=fJ4;Or(Ijzi}3)_o0Mf0wW4`cr1PAEpM-(DeL;1 zKJdMIWXSH^v{T2Knks2mpa9iYm70Jh59Wem~wrQRKx#CEeSC#Tx0_QTn(J zZNeetiS7cQ7y|6drenUar>^WC)s5`rxh~ZZi-s1|=2NKe`H~JX_|Q-OeH(4-TGj<( zxj)L@?tky;DU$APT;Dg*>3GcAr_Dm>(1 z!N11&VM@Z?%Ou|N95#niV<}~u|1yBgFiyQ8VT$2^SD0* zdtTbA$E`Wkxc5B$!$4wK<%H>!Mk~g@p|YN<@275-U->iICidyqZtDG#3sXJ|)sUNh z=w_PCp51r-Z7Xi$T))m&J8sto2C^x`*0+CznV*-3YJZ@I!mtVRNfnLtwuO=lKbpwj zz`=s;)eZga0oVWz#m*pF`L|tO`OSk2Bt_y~a=S=>96$dp`C7@Y(ZrCqu$Bhb0iEEr z-iWNs*=HEKS)DkV>}!P#!*U-Wu>oFS5!ncIO5h>PyxOL>CGb$z0N)`S7^UhtHmGL3YSo$O z_o-yMK7Nlx<3iqxFwUmNf*3#8(7%Mv8<-8(cI4umC+x4l{!ox> z2>pC4AOZ)P5QC_HRRt%p{5}O znAg4P{}&bt#H~IJsg6V=!iR~6x9v~8zf0`GcW*F1RO11t@;kR%NM-Cd#x7ZXi1H5H z^Su0QLcA=#wHIA|v5jTG*pSv6jZeOs;-lAxC{laZNF4-hAK z5Tb}s!k20uPgK$E771!vG9I;9;&afbeSSkPaS2^u*d0uz>;1r2^TtEdXL zFUgdDu+0TmNrzejC-{(HB|6AKj-JOhEIP#8=XqTrctapoby_kKoFcz9m&=m$wF!Tm znh(`nDEecCN}Fl_^TGNz`N>n(6CF#rS8`%kn>W~c0KAt90xa2jhzJJWOd@6xV2{*i zoQx5y><>rfc6Ca72d6%Ttq+s$s2_pMg|6#@iSH9u$RWL}pNHdDLwfdFyE3rTUoVYG zjF3+42atoB>bmMeJ$-Pq&T5$kebki<40oZV zzzU?)<3@itmiiXGBO0lD$$L=KRuf7CfuBG9a-wBAFp@qG4wJ!vg3POM64|GLKuh5S z+b&VrUeKzj*^~fQ03##Gi_LlIf8sY^8_6b@H#CkmxIBB`Mw38zo?&#xz;wNSqil!9 z^>W5ubsa@XCWzh>MS^e(4n*}-RZ+g>-Gh)4Ap+#*Nu=jJ_ftPf_ek!_JNo3S=_*_( z7_yFLfV^^*szRJHg#lu)Q{b>>&(U6f6OQ79pB&&2}6aSg`-VTz8-hq?J#y~u$DT- z*`I71$Jr%hJp+_Ze$ecuyIqWr6s!E+*Z#$asIjlyCpqdz#VOcx`rY&?p0CI`~ ziJXBWokCiE);={SBKe5!&j1}S0b^pHLp7HNPpap+WD(ERH5bJ{NVVjM#^|*ceE?BF z^OQBDa;*eUsZLqi_t~!;+x4J6N5<7XhJ*$3GDao2oR@n7Vz_LI5~EAo-U}wh%J7BUSYV{G?vjwMx*6x~RnRbHxdS_m95ie|#3buez1f zFo!^Vk>oGeas`nwcyH|^GGOg)ZhQ70jq@HG?L#{Z`Qb1O2pSLVdy=DA*Wll;4ttg= ziT7WN6TU3@$l`o!x@YkCbg|sPzIH4E;ZtuIkq@yMPcl*?cApQJO+FMXE-ROUe9DqW zIO3wQ(f_`ky9rf`xJBCQT4N2OXnhGmUV38ehL;HL+ z>7DSw#z5A}apL3&EMxpe@BfB*tN2XK36p2i9zN>Uw7C8693G+bC`kKl;KDpy?_NU~lSoi@m@LdWIF$~fQ4zdITaXg+(#4{XKWRhp# z#)@83y!$>arr^uY8>YSZe$*KGUJoqMzo7YSSd4^U)Sl_r-|hvxV@?^q`kr3=aJcbU z$CCgVZyc8J2!%1kFa_ zAid-@{hA~YZancWTL&MG^f9u^9W#3;Kcd%03Zaf7`>t{iCyg8n<*nOF_`o|`p3{Eo z8A8nWv@o&7{X?TFQ?AHN^gH((-1uxi@_nL~c&n$+_nOBmc2ACr>X-u09DN?3rUy`n zhoS_CKa=xyc%{0=-SDI|ePK#^uLPNH>sM4%ZgL)53^FbiWNHcDA6QMR_!P@M+Y}d3jw-6+0E+YheEHPv*P3OHvgpjOvukhrPO3S23 z|LY~zg82t84KU*1)aBum{cuo3I!zNa=g;^ES1B689tsdRqDV*pt9K%gND$AG)IST( zy&rU92M}mXHcT0P1saQ#f#B@&lJVNOS9G&T4hS(H12n-0&;&+rnQu3W!U_lYP2tMb zIyI{UhB_rL%#4OZ7uKX7StUp@``RWfNNWb8LaCf&;loE*R9iYk#$&{g6<1O}CUxRu z-`^vzM?wpa*s8UwO+cBxUEB~X&+^8+tO^`E3`G0EfrLZo$@wXRo`h@VD%1%4m)DoY ze5tgqGvruUs#I^T6w^=U)h?cuPuk#T30c9R#U|)Sj7w(;fIYYw7P_|gBV?ldK2YQt z^|0oGz!u|If(eQ#;dENnoWP?SvK>wq9XakQU=aPVw9^+w-Nfmn3h^B zn3-7-08;Lr_dm)Bsr~+>zce#C9ZBHx%;zd0>-Kl|eJmRQHIo27K$pgEi#)=m8UAwl zJ&051qIfL`K`#Y_HZgXsA(&L|?3n!6Q^}HoQ+I_hgD-9?nXq;!pcc)LaD(&YBdAg| zK$;LImQ6cE1{;$dL({DqK8w5QVg$zc46u!4%_IL2ZU~URQaZsuKY7C+Nlx*a7xnS@ zsXZ1(2xp(4x%WMLrBvqMhn`yxJ(6sv=W!d$K6YMPbUhQ??VqtRqir@#D0zVVshjwR zpSSz*=j+`)9z+@dPveEb)*=9bG-AlcQ1+sEp1KL#C)ldY%3}r}3roREln9!QvQ-ZJ zPSQ*=+#!h!RMEl_=D=4t3hQQhicq3TPuHltp+6ncvK1S*FMgcLOo0PdD`ZWo}r5E4gESK+&xBgzW>mFhYTGtu?DCGp+ z-E0N*BHK+`g0U#)kVw5vXld16^nLX>fTkJZbIm@JgQtM9 z^M5aR^O(H*KI;(R*um$BM2$B@Z#*rbQowZ&dMcD6A_mGy4iZyx%dT+MC41qr=iV&s zfJMM>)J2$XZxszl-Zs90Q9X=TWV?IrN14n8q+@*}MrH$>Pv_RtIVFDoOBJ_=f-4mK z3e-$cgS$r2?y?=4kl=TgO+pxRuMNm*sVjdCFrn7G{6eKaNu|<ywCECc15( z&hJU0hXOh9+va0K%M?z>cu3Oq;xBF|Qq!MdMyKrrwI8U)qKvpb9D&Lfcogu~f2*3y z)mY#zClvoOBlaF+0uw-xK_kz*J2svT5s+=p3Vgr)llE%Q%UKpHTp1=2)WrI|z@)KS z`M34wY8o{IUS)nG3xj<7m?<-IhX)WJ8CjSUZNzw9GVwk84@d%4Atp+e9+j)9*}UOP zq{|<}qDzHpQzhoSZ}@alL^?tf_V)Y>RVYg1V>7ky$(ibRUQ*MZH%FP1v4vATcs;>i^d7+nd-b3Iou3 zHw*}7042+dBt?ENZv97|cgJJ;W?rC3)yQag?m`hDfL4Aum`9E}R6ugC4Iervju7x> zsw9;ROlg!bA#tTT*jLnh>P&;xWh!75fC>~@&5I1e29QUcgJkM&gcHb9|8NUR9Ge&+ z2qeYt6Pa+g%d9B}TL#dBwusw+DOQ-3H^y@r*k+jayV2DfzEHNZ6fkRm{_pi@mmn0F4naLNc{vva6KSa>V zG&`h_>LbXg<>)Npc}b3!YErA#xis<#3;{2uwR%h!DguMiEe3(xkAN|Vtdd+}90P>vjKLw3Qkw(9?5KvEG&7&J%&@|gW=%Fo#hHiKA0b$v zqE1VSm!|K}$td~S@)5dsI`|Li0Y+E?EMexH_u7zNHIDSn47XEssk*~?|?TDpmzhpk|^6$T>cM#x$=dn!@9vZ_IB2j5aTGsCc(DPS6$Ws z(zO51RcJ4EOcr_GfVIPoNn+$qJ9ZwW$a!aXV-LDPc1++As2?wZ-V&@{B8(jmbt)7_ zPby4c3QPFBbviq3CpZx!LaSkjb}+R4o7h?-SE@%X2C@e0a)^56Qf70nTIPxcN1 z3?Bl$kFn>#bIfLlB53%`K@609s>On+qpbz03W0*Xz^YCefjB$%Q(dK!lX^* zYB-Sj4T>N*V&vo7Jiu9ci)@Prv`z%@H9;C_2mqYMs8^Qibf5XMA0>PLuJCzy4CNaR z`*_^mW3H2>o3)#PY2WUN0m-O|pGkx5H9TN6vXQ_zdq@KDxnjAU9v3d0m4#T#o3_5c zrSGc>{Ja;4iUR=hcEFcm_Sz_XN8p)??qWr@Jy}2ULHm((qvdtA(qb&k5z_;X!5)gD zTL4DAAqC1A@_{TZ(mwWsCl(8;@08*hr6CFFpgnK{W>2vD@Gwqp$~L^tmCiYS@t5X4 zc^Uns#x4-R^5JW`8B!>CXJh6FtJZm~TluR$ExgBtgJmfcUNM9HZC~HT^2nUS@}7)6 z5Y>W>kj4jC)M+ISvA*!DE=PUR5w(ZP;mDmINk==s(-chkrgY|myjl=tgyF{vD#)Yg zE&)B$1Lr$~llPkeX20H*-GIzBX{0&;gq;GU0BPeL*hSd!jqic5DORj`tW~jk-pr__H*3Oot@wKqjX!7iL1)iH#yG<0C3uH z0%!)_kQK_6RXWP22Cp7c0Z;m;ma1{^StD~5z0VxGvQ(I|Ut9+%W(?1>P$ z&@5?_AV2d)8KT^7!Y+zAGH=PsZ+XM$=z&T=2~gVcwO(WU3d1Ac9pwNs^uRYtWIcNA{VVob4cb{g?TK>vw-tk+3O|R* z-Yjw-WKE&26}5*eVbdktCic)I1+}%n0Uk@znZJ8nCGq%%#Lg33?5e`&YkjC_CZ= zyn=}nqEKsPi+et(&-MKHL=saHu2o|ee91sH4E10|1h0;y#o*@ce!Tt?n2|k=TL`fB z!q_2)bOrZ^_1B&po&am}_moMDf&a$^7@xR{meB$tV?LfjGw-&x<}IHM))xvO0Pga) zai7cuLI0E&xxC(V;9@v!>Os~@R$z_&zEPD!mu@WX52IQH42)l0E0{_*V1wMzZnZY1S+^kFNKroaa_%)l1(>Jz8KXL{7ya%J@2mpb*~Hz9 zm3K+|A7|`VQ{yY(9zGefc)!SDm6S27ynw&+ldUln;Bf>}hRE_X`?>&D@ekJ@hGaWK zDx7y)sm3u;FU*mLE@&8PZMh>NP<@t=c?rF|{RWJ%SaOL>n*=jzH!K=9|GDDw*(gws zgj+2Hr^=fxDViK$8Zk%|9!MHM_U10SBX3&TCjred|d&;jNR+h>}Us`rp{H))Y zkn+yj6|wxpugQD8R0INfZ|Sj33{m7JiHdlscke&kKcB$J)g^}`O=gMe{H0Trr>)|i zfVT|vj!P;YI+sDODvZgPpO# zwWVOtcsP9nrmGG(n7Xwe6rWzbKA~PSxp!XMzp>N@t#}rOk`*u_Z4gy5*%%XNSlK-e z*lbTqX9c6}OZfzFD#YNXwvGCB+Z*oxj->4UxMa~f!LV({!nKSZOn0}V>?P`fnUCOX zQsW27UiQG*CwGY<^YlP&1smFo&8#PcZdRQro8AM>rttcTOM}uV1IBL^f`Q%IlXKlF z*XfA)<=L5!j2!;dpM`G;fHKKa;Y(DC)N8w?{PJfx$bi4Cs_r zMRn5P1Xg5NYx{p224tbRS)J-8f5jf)ydx;s!^ZjV-hj&pnZ5qONS^zf5O=lUae+tY zyY~!o#z*fA&syi5+A)AN3BZIG2}Q14oX6kaoeXa=M(iX-G@igiR7ehBcI*MK?Cmqx zU7y^%tjR(9|2Xz%djyT#pdzLkv*AE9@&XLLkItlf<8Sex=(8_@CR2|AdCEs+_-US| zwUU*)iVo8(93l8uCjS3985nWn{huY+;h0*mYjEc26w-}0`h0l%y6oBjTOMUNb^56S zH_4;$dbDx1yfa>|;b18F80g(4;`4S@yV>ll9SbSKru)G|)T0>Boan6e#RTi4tO}6E z=J+A>S^7y9lNVR6d6gEUQEk@VbnO5WIssWJs=|xKi-P;z)Lb|wW-Q_U3S6nVkL$mK zM8HrSl*nETjss}Zb!X$b_%5c>v31k@b#49=K60XD8vsm%I(9kCYAG?M|6%^J72x`@ zbAVO<2Bu3l^c_BI9ug)MTDx_3vaoqPBG;R9%WiaB7Wmw$4+Hqhj?t|y>13nd(?!_R z1W0&EOy1J^zX@6lVStNP=?H9Z-I>4CivEWcsn!hhpnu8u@ zbiHQw<4LGzun0pfJ3lvokvCEz=5rPv_&@fcdLtFh7`WS7+IaVD{Bk%HtPkG~R#k05esQ*5w~|P|Z(nO|>I+mG z1P=)l1+LW7K_{+ul9Sul3m*LHUH-YL@4biF&SHE}9xT@rCl?Tp%weJa8MGN296sQI z11VAf-UomIK^w{3kT`Vk>%g&nWxBO`uayf#Zp0-3R5;~Q?0)NEsTrHH-*DRnB4GMZ z<>u$=B$aXu@qUi+HcFcSXcX-K;!lnT9{o4lA51W-IGN`#@>d*aYhKieRDt+dIomnQ zP}_P{AQ}^j?7$<&AZ|Ul2_wV)Nl42qY>}?Mn$_azbYFSx>~g~L&4Id*&yPOmub9yL zMVF?Z@}PmTlueQ=zdFOJSBAY1<3(bP9PqZs=flA-#Dk&W+lHuC@73Am*Hb?N?@lhP zC7gC3O#yrE1p<$X=lS{2J(sT;h@UBao;oAplPK(0^RwZd-C<(M#jklpLSm%I03OtD zyo9G8XHq4yX^{?4nh+Jsdz1ygy?-AuLbjFXz}GPz z9{(E`cvuy{)#*slrF5Z(a96EfBod$8rU}z>@o1z(y{1C9_O_CW-I3Ndd(Q7LIDG;V zydW@=1mxpSOjwA!tB&$}#dLMbTI_iLkn4jEX6eqeyIrU0W(y9D3yE!Il*uqtKylSA z=mdCln+>aEk(1s}cLlC4hXu>D5{MyPJD32VUTXQkWj%my@j#KFj1*w%U5CEFMP>K+ z5Yj&N-K?%}L)roH**@gz?vi0noOX?E_^&8~v5^GTNzGJS`Vm>OC^sdv1IbdjXd{J{ zFQj_Lw@;F57@xsl`;4-~9g6&+RblWLl*CF+px^FnqFboCMbeZ@03N;Q8Su3GDQ#7T zu}v@rHm^=Sp3#CBxy5av=_p~Ml;ui~gRWjFQn^};5n6Jlv26&Ho=IF74OrT0L-ur3 zW?oTZ|1Z3}XzVO&M2liT0!SmfA>DlyeM6rzTaU?sk|>6dS1-8$dE0JBa`1&Gg7%3q zc6IAu);U3DWBE42<|oceZdt#bGYjc_u18(VvJa`om+g-nfCCDH$54X}2(iooREZ4A zE(gKB`->h@d>ljTHYgwdjga+R+WJW3fomb(nCEZ1x4-CDZZqm5gkV{36?{+PHn4bs znpzeYM$U%ciR(Iqk0~H!4*-EYz#0^Tb>{&Uy)4$62rh`_K*Y{l7b0p%jzpkIo%XW&qD&*^A z1V*Q4!^!&L<=&oG5Oruld046lI+h6~FPoWic$zJjU#fLL`%e3G`ny)IONp%lsu;`* zoe|FN=uCJ$L#rH>C7ochai8n~kdS#QE_3rm{^~ixJ=UTLB0t1zur=JLs}^WzwO*I7 zIVsZP$qMkwuMIWW{fY&bfv>zoy#_k@;^5gm7*3Z-c;TZVAf)>@omFc*d_vCPn_0yO z<%3zUdd$3Hs1DWHFEd=jcl-4iwJWJ`tWY(5=4G=wNqp;f&B1!jPp6x!7QXaLSP zQ2mj3$vEmhK6A883oc^oO)GVyQbIswhmE=P%mUCTkD9;4{^2iv;q5YtxAN%R4i$Y2 zL_Gr{5v2sg5#X5C$ko1 zXT?vZ{~RHl7##@umP1s)Rh|P@J7mOR2$~r36qDw5&VRz;!&4Xat~>HAhg?Dt*;xX9`|E#=t1}(4Ku)sdC(h2 zG|_?RGv`r$F6!r`&!H%xOBzN&aUCLZjQ;LjWu0@f^U@-9uAb7f@?xSW*7SKS(#h?N z{aHAuCIq0G@Bl1%D12Nlm<1-1T;m3RQSl*vPmDQ-Sg&M>RYGgo@r!U$B}u20B&hOD zLiNx~n&%6ExW%R#c-GfnsId4lu#x&+UYzr9h;qMTqF|s^>H=m8XhSzs%7Cq0e|%P~ zhNpl{uBJ$~3t^BRgGU&iQk=O(x0;JsPW?Mg|4%ZN=kM$eLM8qs@B#+TAyJ0FW(h&U z0Jaw~?<&+o+?-3!TIME!8MH-#ez|;o#YmPi{7y}& z;+K6dpm%{@ByNMR!%eVztcRGChiI(_<)h!9tRrd{;Xza+#0ARw#nL?1$@W&v)~;l z==i25&}~O1fFAUi3BloT;#P?Zq8swXXL#Ec!;gHaqbQ%V*oa)tD&Kgp2PpRls+fga ztPw^6?9G6X@r3Wv+Nm08fH{{Qr{2rIJj@fGztdA^#fK{?AOFJO5CcW7Erp`g@H#}a zL_03MBSDtB778TeDkVxE&Oxevp&tJ}p_ny2`DD#8QGRSt=LIc^(I_znG>PG@pa4KB z`PUOIO`77Gyi+|OFn*_h@lXPlL=KSh0tv@Zavx}19ue=7;sxxEf_6N*QIIbZ!Kx+x zE9Y;?qJ2R*tW8Z&7F8gEB8QBgK*`0GKZGx?_Ix@0xH5XBqOn^3=|Z{qdXIFxc7 zLheroutsiUz`q1{&0;Cams4f8VT+>JGk>JyT`WI4DtdF$txCL8sBQQO`L#Rl0Yz6! zR0qd+na=Jl+$ZFsqaiSIKu}~Ov6T)i;a=(8e|N|E!Gu2a0a&>}bdpKtk(mPOCF{#6 zJ`Vjy2T~GY$5UI$rTAUg%Z#f}j&e9Vd9i2oul0h)WZS>(x(tvC^B71T+w{W+D*O!~ zrT_G#-)Aa51ZZa|a|A6(LC4Xhd|CNtM4}H(FXJY z8k`%L#{?}{Mp4DBN(6-5n}}lzB%t1|mH(!Q?sV+gdF#Oa+kcuHY88^c(TO?vjONg7 z&YJ8cL&SL%sg5>^iuc#2>!*>>4l4**1<<-ULN*x6zj;)0RY!5KQ@k}bg z3raz^(0KUk+5i$bYrfM;`VPfYOXfjeU_0cr?Qgko9U~={5fuHH!wcGZ35cm9AM)SO z1fWPVUHS~MJY_k7sFa%l6#1tQJ3Ygfp~XDubRC-aoM$P|=>Y;60b&{?3mxM^If>KK z@Xx$cvR)o+*bi%J#QqnO=1oKJd`D9 z3m*~@YM0?fCsP2ZGC$PKdXT;|Y5c08Hb-O-w&VNUU8X?hwXG*BAKN!;5@;vg^uaJz zXS#VigI5Z1nVyw(W8?o0n|z#(6Amv0ysBCb$DSdDqtx`ys&VB z2%QIc;#~fd9CCwZTZu^J^Hw2vpe0hS)=5k$Pp^|j3w34bsmXM=r}=k02p>kN$kaR;j5wT;7CI4ZTRMv+>o;|cU?-~A6v3t zhjUmIvbh){+}L(y)-AAx6rlD$spJC6QYax>1PjLB2#l8Kq6)nD;4q9rSOFuTR~9IV zP`I<`*18&Tog3CA)Y+@T6~T@EMkuld>F3DNklOue?cVGCzaPW-QkOabdDjOlKfp{t z#~(1&E^iny<*qTF0is)1?3D$>FN9@^&1^g{gR=vygTvEItGq0SX?7K&JUtjcMjRX6 zS^izb$36nmfMFCN2_h5gpQzhAw%4tC z$64jh#yy_cSK!3x(`GF=JU4aY{GWJ&hRTAXs3nGu$%tUAvb=sB0YRmaOmQ>^!d^>7 z)(rMSp%3|(g)k(%PP(r6h-sW=SaguYfRMqx17n~#jy#o$L&kcrtC(61F&Va+jx;|0 ze4@jD^bnhl%o(wdOsxoFY?`KCuyHRm2EN3?i{ymS_Yj&TbjMyim4Hu~b3Llosaw73 z{>LvVB)PxO{EK9Vekyhzqme{ak?zN!cft#(P?RQf;8uP0uM8a6wek7wM5Df?dOdbp znSb_QFN!ipi_8AL@3C4nru#8n2@fC>^U+Vih=7%=!J!1lj*&BXa)Gncz3;?3%E4LK zWOrp=Z@NH-xkdyC-#zs6I*V`~O7gAnn3+j({+J$=4$l?4)(O!%s!J+R{65EvBhtK1 zi<#;z&Fb{TW#Z7PbaJ)p^AOJ!m7O60SjLdqB!;w;w#{v$D4l@T?pDV4&Xy%l!q2un z=7#-3{>qj0>x5_goda2Vfz$)*15e&;JQh7%%6;>q*UlZO^+V_pJW5!5s8hz7@ssjT zCZb$xwXuPOHOR0U%nXW#xuxP$OyWc?6VUdkAM$kauf+VhdP!N*VQ*j8X1bIQQrseW zAKx%Zja=b?lrIjw4Ji(7i~^x+PmD|bh2EY#&Onc|ftLnOHe$J=cEftJKe58Rf!A#? zl=9a|6qO4U>1D2fe&V)b?1!guB4%3iR5Y%Gho=s#v^{jhBm6k=Hp(}3E~MDVG@M^pj$SoL9DCSRa{%}K%n^;}V)ON6g|#r~MJVzRP&OhJ!|B#jBjS7P z`*6pV$3n&-{u7+}j8iCEi+6G*tsn`_!M@?a$BB1QAmG+^x#?}<--z=K{}U6FTGx*( zw!lMCyEhCkmy6M0k;JOp;iD@00dpq)>e`etEuGkQ`o2yjZl&(i@SrKwU&*4_H>y=q zkR=iDKo61~xXAz*f*I;!#_ReNpf?8YDT$VNMh}3{@tKb4?n#ZVW@Bd(lKe{b z*xD_|b7`uV-!0Casq{zY+-UQJx4+M|(D6dzo~yY!na_2qOj+nUsl(FR zsjVsEA7bW@0P4RG4k*WK{595Ay!Rmufq^k1BN5T{)PYzGefEM>=$)hKDN)ya9#c#S zh+SqS$-lzVj+iqjkIPC;k=?n2CFdLW(OXEe7GvwR^UUylQAM}>}E#^681<8n}% z+FWn4Dz{Pe)e`T1wJQ45g&aGA(1c}cp-a)>Q>cgHPt`is(@R`04Bea9uE~G{O9lxD z4d{NcQ6NbXBDE#~G4DOcN>;s*L=jkZfb*1ynKV8=r;&;$^5kj46OyA5-Awo58rKi(D}$JxpQUumpB9ct#nyT^uI_#`Y`W|k zVr=x`es8CR%nqkS;Q-GQA_1aga3lgDm||q!H~g^JHPz4P!#2q)0M`t^FHc z?WujoS-GYvr3MeCo}%hb=ne_!T)Yr|dqRvUTaW6y7z zPhR-~pIuSimfEC%ZB|Q6-@0y(?F8A3_5RhMKoy6R(_#W^8Bpqq81T@#CRca7y zeBN;Ky5Nh8rIi!-aEw;ff}lfsM$^C4S6)8*!ykKMT?i`L(*0e2;9`_36=eOtyoo~& zq+XeIKxAEv;0>-CD(= zP0;@>EyU$rLn##fep>pQ0jv=dHLr}4@B-`Pu_>oq{H-=Ed)F340C9ZEpcxr95g}b? z3^CLHaRKCY>VFG^)x?)Duh*B~oz6cuYV`=)M1OkH>a(izZt8yHI!C6qA`<~bPSRN_ zqmmh)L?$F+oXJ_{`Y!;|>UnPyD)GKlK_hoR0&;7k*cS z6ZlI)B8Dg2Ez!mT-`sP0G)<{g<37*4v;UwVuoUzcd@AbP^!}Kb2fILn2z(sCF4*c7 zHX|+KEgJ_VVeeneei@#EGKq| zinng7W!vM*0W$X0pP>n8R087nQ%*Pi|3gCg6hXu0$!)$;Qk6)=Qx4EAQ#Rw z6H7jGn5~CCkh;40IP;p{y#}EjR4TE?i%U{F)KejOp;f{oznjcKDrbtMHvVCtxaGZG z4{&XfWU&K|NJ!HcqXa{OiP|OYtJ@?Sj5K!fS5J;41{H>udk;uJ*0ttKjQlAw0COC3 z`=INL_j??O0FK$S5lSB2FniKoHOlb@na~5rfGGG%p^OVXs(Lf!7)v5(eiO;N*Ey*X z_BVL&LB(eWgb6A`JgB}0hevxXC^g=s7o z=ROIi7vgoe8)u~Tc|Z;xA>afjB|#8kM;61P-ia|DNd0uiy$@~e+&JNWP;#WR+|9PC zq8|mJ?J+i7m*_9f+(^?wbXX?z6&N&Q3h?MOA0Q_54~P187V%4n6?$pfZ@ypZzOI5- z{k9~l=49wXJS+h56J5hPT9B2zDtiJY1nqMqF<;4yR4t7(GYb-aFAfKcwoi(q4Z~)5N%N5-`~-ygA=&>4KzMCIJM1$$cjAnbjwcKXttK+@WN{DIET=?Y-Jqu5Ks8TF=N{)0%V z@5=E-MTG?;#RT_%iN{WJJ!M1$5zP$$7^l+whpNOX`K!c`g(2;*@?iZNqG%D?+jokK z@(xK#LevS~fB`I}FKCpsJy-;xFGdVU<4Lzf+B%6zVekecpL|;9if#$c6|uVSswY;K zdJkG)WuTR`T3j|uIxh&?e4KyP#zPNq?VeOm29y0yP46Ag=KKARC$YDpR$GD^trC0G z3biR-sJ)7!T3c-rTkTO)&F-qbY9}bQcTs!qJrgVW-rk?z@BEcK9(m-xuIs+ebQHG&y``yTfU<;jj2Bkz_NNvG1(#1XCt( z&e|jUBKG>_r0vgym7#53E5uHXF6zv&iw8nC&jcJ~7K8~+pf_%CRu@wPUnPNh+9`V>_F1_bJJZBW&Inq3j55ZHY`2<(qHtG@>Fw$uD;N+%Fre9%YQgy z3Q4h9Wc@R*1aVGT>xaa;;kW;iY#)+%;Xz4nWTRTK1*H;VdvCMk0iV@GuLfBspgQ#U z^Belg=g%MdgS0_)l;r6IUl&0YwCZm|Xl$4U7C^X{t!P1PTTZ&yk6muP9X?FDU4ON> ziKq)zYSw+7r2IdJ!^=0d99(3}=HDBn&)?oZi3M@dSg=~Dm$2B|`G4j-&wTt~IswGg zvX+&7XgFbzhTtb2^uqYn{scjB(kYvz6`wpLj)*|R0OJG_jA(5_G90PEiG}TTu2$c& z-+o_reoX+v3dWxKB?kYL6kNol` zER|zc!gb?Fo%(Ti!l=GY_q4hWFZ{xy8O`|30iwnEP;dkjp~{9FzBE}ZI(UTp-m#sC z`#oGzkW2!ESXvxE?~*c%Q|Qrw+V(j>SzZeAwacN#Y*GQU!4ud0Q~s~aR4vP? zGbJq&d+!LUiQVoftT5Q1^j+%1vYd2Y+@9thAv2D)nBmcLN^kk%%v=H|(IhZsjcw^^`1aZDFm!L3({cc>+_BWCG5Q=>`(dWt-|!$%@UVP@0bmfv zsLVLwgW>a~nxQQALoAzpMQ0AYDY^iG4Z6!N=eq6p1dmh8hSPRXeB!AQNd6P+2_t@_Hw~gn3By5&iGY!_g1x^$&2c1;8o*Dt5)@$oV}i!7F3n{6r&XhN|sGPZ>BE zlpsrTgkO}P(ubNH{16d!t}09!M&8GJby!mVVmAqQ%KbF6uM)4RNg+GP)&G5Qm7K}) z-DU6amRtX{xKL{B0(i05R}YJgW~MFdJ5FP~W~Khw{UxJm9ST^Sud z`xQ}wB-~_UmPH!!@F&LgJ zr|ygMpvR1E1qwBK`cRM`gC2#GAvvStfno!G$Wm8o5VPqBy9$b#S;n-nuFV4f=2i`JwpQ&ZT@@2A_SL3AF~9FoLx~??B!G1Z@EL zMkox8LGmH}9;YVmT^;8tp!Y>F*Bxhe(@AN?=?c%Fb&q+U+Yp=X@pnc$1jmFu+j3VT z+~5uw@jyIytSa+vFng&AK{ru{a7UD)Ilb@{8&nv^kg|L5(VlP9$rNDF`x%8lV(&qG z95KqsauIm<9Vj&!18FGsEw&>Qzp&~yi}%Igdn-_OOfKkT&Zx26L7>v{KlUH_SLm^< zloUeQsV{%xfLYdTG!MzBKDzhB&4dRZ)>iVKyb4i~n_{SJe8gUO=yaO7l2%9Cm@KDr z5&pcOF(XT0g7XeBtwekkB@alGl70a6QmG(S68;GChX*Im!dQnr>aa_)#Qc+F3tkz{ z$EaKs?`DXqBrl3)^yW$!i_ur|P;k*`uqw4U<@-bnKK`8>H2}+)MBk>>z}Fx!0a)5O$_LF?eQhhjbmlL-juC9T4B=*r!U4B07p_DcsKqIK~z2p)b3Q^MYQ= zN?Tp%D#Qsb3BC)IGQ2Dj9~AbyE0me;W<+_A%09d6%|n}tV!vm1Z-n~M>C?)4HX#|? zPDkuCckjycA^NDzNv#8QzeGDB%#y3nf_m%u$EVV}z&m^t2ZU*w%;a+*4-@#n9q1iK zIP2jx{uSPB?{X#BdcG3T+v;bA%6J^E&D^q3)zw!i_MzKbUuoh(SUgH+={rZ1DjipS ziE~yHci8CSC=k#%=Q*xkSO30-ExcZNbe<5e{eC_`g@5=a9Q+2drz4CkM=ns&!dMvM zKox3Ga%jem4z=6)RR;cQz!80Hyni=n-R2R!U6M9gDvRAP-R2XW(q=*1QH>DSSl+Y` zr`z&s&x;{2WH(OZ7eP+eb($w$_iX*!V0QN_tuOQ&ai^0Kd30tDH5Md{5Fo`kG99A% zJoLYAtuC4vohG_Nu0z~}!sP{G&bKodaXs*yhp=7!g?db=@6TpspFc2qcM$X$YCYL z24hNEQbbNtUZ%d$J#y9oWofr4S(`TQtl3q z2~Eq&*D;bUf-00q(QSaL<_5QDf^`+uB^c>=DSoEk(uuL+0D*^lndI&^A8a{VT~Czs z{u+0~PE#Q~&qsPQWtx+Ir2%Q62mbxR&41F4lnL$Gl^Zm%Te5CPL18uc)eG^N#PZrF zx(eSrb?sDk$t{DoSTkuucXy{{F8+LWlO4ZK+p`261oa<>o?B<3UtZU2msyJjKFy_X z)Qsgop=JHH((#5aA2$j&seK*uQy;rY3Yf3C<^)cklMLdsyXX>^>$=w)Zn?Y04hl(y zzr9a)*c)D)-7R@Y7b71t^G&G@-TKxpWcYlpQmcnm0=J)FZB=VC+lG|1*(a(8fprU@ z+3d)*-{Az&YPxbiv*2GdXG(UMgeIeP!Z;2e4L{wA=w=521h)HePWID;&ttX!*^993 zY)pCJO7fddyUuwB*i~Ey_`X3)aZ?w+wB!T31&mAToI6g2yp!n9V)qXLhsW>NrRk)d z>K_pqb7Pn9?tNX3D+6aT!g5lUr$KVR`0kAyv+c;CF$;K$ON9v=&bx6t5ebeEWUH8R z))!ljg~&>v#sOr?vEX)ST!vfQk|{L_?sy>{`r!e+=aLllY3PL#WPCxNO_uHP1?|X? zm4Zve3}8Dy2r>LBfa5?5t4-LnGX=#Vda>7OM)LtF>b&Kr?c)O_7`I?=peYD703I*R zDs(8#60|G}U@oRnQ@=b;)r{uLpAST_unl01`~RlucFTqQ+%9}AAK53&WtYMTGMdFh zbZ zwgAu&0RG`BbDqTAiIt>j^7p&+{iVPuLg{EB=6|e)q zJ;9fg^#)z!NCu=BJ&3X$dJCdd`Su^zf|?GcdL$AGX;-p2QXIQFU(=GDsaT}R?6a_S z{-*!v27K)^H}Zo=Mh9{=`yKVAMcE#zzMZ8~YT;Y_r-%a$0RYZ6YuTt=Mha?mNPIkf zrqZQ%dLMs$sp}x6qF8SK5sj#_^ z_t;eIrKFx;{`_trlMIPZ51Xh+hPfjiekOB0)?xk3<@4ij9g}FJBS!wR1S5~1^G&8A zxG&5>oe&G0o6LqBJv1QYD#{Id$dYnv(-4rlc{;bIme}gO6Qp)$Ln$d-5~;2BKALGWh5RDhq<(Faa&s+RZtnfu5d0wJ`TE{1q4db0`-ytwVjnTDo<-3QACBH4ZtYi6`+KXJ4=*tK_ zt-#!1S~!ZCHt}`@8LRwQxzi?Z=3KS^=GxcO)_}zJW_cjIg5?A&o|#z5WIN)WJNrVc zT%DT0{9Eb9aYNpKKazCPiQ7KHJBN4NSTCS|1IK@QTBI>Vp&!(MrY55&_20C{=YE}? zz3A`#p!xh1Y0HKLk*%Y~E*SxwZ$P0#^_I;yh1A|$CtCDeNTiq1-_n*f)9i%Ff)V`3 zxac;Sxygzbc=SF(Ui95t@J~^k6nVF`lwdzNnPlOCHK%naHhDPNJPzn-L{~0ZGFwRnm#IzSE71-1hmll zV#mh3^b#othZ0}mSy4JyC;s5L!NP-Q3jjvGRjc?7ABu%LOozHe&*S?q2Q7jYmmaK4 z{L|wM5kBv&$9HsWbZ8*;7X@xl>F;Nokotk$$Fhse1<#kYT<83{|7ba83>qdN)c4Qb zZJ8Bh&P6Bf%rF}J9*w|@a4EVTs|y^SjdI}t%5xSrXLa$TXEL=2cE%fy)<%dbR|&qi z$nfrpAA{_vf21&1ZnL`%yolF(m1mlW7l-AnVn-mtn9>d7?;(+k?d4Z5c_>hIrldpn zL*%ac@8P|tzYBAT{no=jkdJJZ3ncMvs$Whwz~lz--_xL=c~P@u=J^H2gM0UbrlLY~ zUi_sM(DwU4YhW;VzUiRvd?e@1wmfQY`OcJtShtHdcQXc!J_y{YuTwjFKhi7`Fe6Zf z__#Y8x2O8FKoud=2KW+FA;n`+v|q%+)dv$FEYD^FE$Szu*e2oJy#w{`IL42>a=j&$O%)imh>DbO`lx` z0F3p|>s<4VJAubG9DwfwBDPH?1w(6t^tMXh@xUH5f1#=BCb2A+GpX9piYv9Q_gPJM zIdvIxWh4L?HozM{r%W-lA4&g7O!w7#myzK95#i2^tdp4yE6#n6{UO^v^IpupbhYC= z&Uz2=(y#Y`WhD*e_X~Fa>}|Jo;>p)`m;jE;vHT>E$Cw?SLjcX>hcZIWYh;vdZ7z7f z!>o=s#cN&78XmZH3{<4p`Bki|fYux~0|q>%ci2HUeBSBPiEUT4hv&NSl=-dA_{+J~ z@Ik6Pl{3+FLcn6^JW(Z8cYNr)2(Bkd1Gq7{oUphsaV=E!%4h!ZVv~8ZX)~btw>KS! z8|iHn`O}fzgwv(&0p2$ltxDpiY$FiE$%_RRm9VQwVFgLN*AJ?{I=B+AYSH@juDt8$ z5Z{e--1>zsr=;jaV{}w%oOQzh8i`$H+e!^ySncuWCv&R_0v9rOS?m0xE4IRpMM@T% zqg_XjqE>Gw`N}8esSmz;e;qeH9=&z=^$fP@{KW1IRvqj)m^MFi8fi(x*(ja8_`gHy zhmvC+k|~mgr^YmP=ZFWCx6ows<}!EJ7-rdc(sP!zO9d3RC-xdfMjsalCR<7tt5)CC z#Ef~Bu@>#EAE*k6DSp77=JCci0(kUa?5m}Hc7OcP;Y5<#Zg8=$!ifKU0l_J*WYkQ& zwaYJ93`yw8vBh-*`^wQLa}7T&w40eNTtZn7;c{)U@34Q-GShN9C%-7UIg?xJlIdWK z+gjyonSRy1gh}*}kJ?}&CJ(i^X>KF(zwKmRz@-ZpOwn*PP1ENz$TJ2_F7ZC2Kvy0# zyeP^jam$@E+qbXy2zVS#ImYQT7|OlYUnm!lwjqX}gTv+|OF8z+Kaa%EKJ`iWz`yQ) zs1!*xA2lD6>Pj}K32r56&MR?)2RO+zjYSziViL@}9Zi>+WgI zv3PUT`$(igd;VL;w(i!I?yli3+()3>D{o_}-4IW3VYYQ)K>pp$ZJ%TFP;eR2OkJns z7rfQ8ZGpQrswewl8Koe#>ylEAXMGb{UGrAH+4R_`(K1&8dxa$^X8Hw|5_P#gZz+2) z-s1nh3qaeDt+z~qq%>4Qa~kz^D7E)q>HR7%_GxuwdhKdGiz;7WThBBJ7hz#LG&p4y=j>Jr;kz75}D#I>GJEyu!uB#>(|UtR<<;HoBzoxrR=M!tKOE6 za2KXyKsQ-?SPvqJto62s{+gI2{|dI9rl0@kHIbLE_ztK52~sUBVbBH%Nl_<6kFGo+ zid+%oMu-dRCBvYszeRVyy`*3a0-8rg?ot?wjY&R>l;v2WG-L0ZXEV{7Q7b3LH_Q7x@)u?am)$I?$F6o+yMBW`-Jl;l z1K)XTO-{8afJ43YB8nep?7A#HXTokjRCreZp!&Xd;G-(W#NK*L)z8EeG>-QypW0l{S7u$N@d`@ETc;l(s) zIWAW6G9cKrdC>V=P&!)EM;b~(E$erMImD|zOw-@}{gX;32Dkx>`AHRyAzwY=OM~6I z-M!)8!(4V{@%L`uLisTYat9v@26-L^e>Fwr#LZVsqO3L!+BAN9I4i*mmu&Kwf7E@o z)#!M3J3Htp>e+#kkIQReGNie=TSwRyk>|Y+tXdSFE`#xTECB~SBuu}RZ<53)OCtto zLo=9@FD)Mue|Zjpkw=m+y{0gdn4fBDaB-QQS~KnUa+v6s*x{zlAn4)9NL=LQ4f)gv zOYJ>VkAvtBGBnflXmg5YG`*L-x1E?9pC9i_jTQ@%70uIt=N+utUW`nlyvNH{rY2&y zb*+%uG1lbay<{Eyr0q3C@95sV$fOTomAySyYi!ME!f3Mp>Og>j7{+t7-nv}5nYp+% zY215HOgxWqW$MqU2aa9gBuRj|ozL?U0w|^4)sUam%T-Esl~6-M_1TQdBC=$5!3B`} zoM)Na1@AZ5E3=8}PlY8fTZ=DDsZP^RIcn00?{%F>c&)~&54NhR1 z2*Yo{Pay^>LpB{}ng@qdj?zn+T6a&B{sccbPEAazeD*@r!AjiAWBKS0cU87S?O)@G z32{R)LZS&o4Vu-nhD;|Rw@ph9mc?^o%LGY{zLTH$O>JZu7spOU}sdrA2 zo=IdxRC@9hBcQYwxTkqU0-}+vbKI2cny&u~2A3cA4SdgQ*erx`)e0w<%7T2;we4*5 zLN|W*>B{E#t;B^=RzD#MXd<+2g}QvtkpcOA3jDnO7~_+-ue_e2VXkyA?o#?H*Z;h) zBjK2J+RU+bptR^`QK?{&U=g)p;5D0qYTD;XifnA^9d7Tc-5h0}EEZiA{qW6-la3Sh z0O(}?PC{PHnX-@C0M8|l-I>cDy8l2R3MLI@MMI>>VsG8M^mv zSlb7JNc@^V*?qL#RKrWrUdHr(Z6ofY=F#TSU~$yTxrc7ewIk;1hyD-cz`D|uL4~~g zapAVmw4Qd+w|(wBA6R8s(VUF=iJpk|0*0^!(I+Kb;KI3Z(o%h!|{)>fI;XUaedzFmO9nOuAz4_ITr7xMvQP1Th`ls&S zy-}a)DXVx(?U}~CIinQ`;*s>5DB+2Q;u@Iys&u8z@R*kGTJRcO*Q{R$*P-kpBT&Z? zgAQu3MPW}{o$=a;uiyU|tQMU<^XG56Z6R&E$$$LJU9q(7&WVvbSg_qAC-c}#(H&^H zAlTwBr64=h92+`#;2{rC$%;`oA38eE#qw9uf;iLq+FQ7?62JWpil_PhM}N^kyeg21NTh9!^u{5nU`n2Ygx*RR*w+G+bwdX1C zn(9amS{ob|#uh=eAjSa?Wvhw@a2n}QS3$Qw_m217?w9+yHe*E zwQihVYg|fGO6q#@*MCjt-)C2t;t@$@)xOuFms6pWuxuV>EuJ`!%#9% z)B}PnlH18JQqZbtT?XIK5gT9b_xr>req<{qfBv;7+!wRw;N|EAYB+xJccI{^G7d3>~1u?P~vQ6;xwxprOYX1H_Na5#( zwF~v^qN@tnh6&Qz;=M8O*v+F^fZl^}QwCD}#HBtxrM{=}Hh~@^NIy^gW5eBG$lY_f@bBq4w&!CAUL@HrA>P-;%-Z2L$S#;r*_i6y%6Yro~^L_F}TpcAiySS$Twu!vzx83L)Qta{rGK!Yp zp?CpHDfB)fiVt)`K~Rr=`Ih9Xo#wSxQn%s*2B_ROmA_`C{xv8Dm*@7@0YeAmF~@}M zO7I8DP+n5T68Iy%TfPfNjTF-$R#DMzi-{0?eArhJ_PnQ zs`W2vWhNy5@R%dqa# zEzoFt+2Bdz07M;|gn(b$_{_>DKHk@8_Faz#?Gb*9&g{%kMiL}sc^*nUqu_c@yv9}&kLM6;vhZtGGJ z07aGL(DVhR^k#_o-vm7AHVWx3KO70(H`LlM`#^6LNEwuF9bIS=VYK zw{Z3O@|fHzSdN^yhg=(fWSg82L#xvN4V0TqBL;3JH@f4g^wO_Ia?)BFQsP@{_2!zl z6#ccPv_@0+rOjuE%_Hdy|HVw$mD9ZMSu>fdZC@rr7!nfDB_DU*OyEB>lLg=Vl0rKAwyBH8|-)td33}{)cz|_)o z6J|Pm*OsiDv~gh9wTrAOrXc6m3zlPtM<1*df_+?GxcFzG`wZ3uvit0{ztA(sQ~!Zc zT5N1%3+$%z+;;sR+|#0%<^i5@>0wWVgyV#n-(M5loFaf|d(fKb@BwFoCXH@Wd+_@1 zvari(_2yxypLf$M*?0?){PJg>bdxM7p-Xl(j`QuOMEMO o OpenPGP. +* Envío y recepción de imágenes +* Llamadas de audio y vídeo cifradas (DTLS-SRTP) +* Interfaz de usuario intuitiva que sigue las directrices de diseño de Android +* Imágenes / Avatares para tus contactos +* Sincronización con el cliente de escritorio +* Conferencias (con soporte para marcadores) +* Integración de la libreta de direcciones +* Múltiples cuentas / bandeja de entrada unificada +* Muy bajo impacto en la duración de la batería + +Conversations hace que sea muy fácil crear una cuenta en el servidor gratuito conversations.im. Sin embargo, Conversations también funciona con cualquier otro servidor XMPP. Muchos servidores XMPP están gestionados por voluntarios y son gratuitos. + +Características de XMPP: + +Conversations funciona con todos los servidores XMPP existentes. Sin embargo, XMPP es un protocolo extensible. Estas extensiones también están estandarizadas en los llamados XEP. Conversations soporta un par de ellas para mejorar la experiencia general del usuario. Existe la posibilidad de que su actual servidor XMPP no soporte estas extensiones. Por lo tanto, para sacar el máximo provecho de Conversaciones deberías considerar o bien cambiar a un servidor XMPP que lo haga o - mejor aún - ejecutar tu propio servidor XMPP para ti y tus amigos. + +Estos XEPs son (por el momento): + +* XEP-0065: SOCKS5 Bytestreams (o mod_proxy65). Se utilizará para transferir archivos si ambas partes están detrás de un cortafuegos (NAT). +* XEP-0163: Protocolo de Evento Personal para avatares +* XEP-0191: El comando de bloqueo te permite hacer una lista negra de spammers o bloquear contactos sin eliminarlos de tu lista. +* XEP-0198: Stream Management permite a XMPP sobrevivir a pequeños cortes de red y cambios de la conexión TCP subyacente. +* XEP-0280: Message Carbons que sincroniza automáticamente los mensajes que envías a tu cliente de escritorio y por lo tanto te permite cambiar sin problemas de tu cliente móvil a tu cliente de escritorio y viceversa en una sola conversación. +* XEP-0237: Versionado de listas, principalmente para ahorrar ancho de banda en conexiones móviles deficientes. +* XEP-0313: Gestión de Archivo de Mensajes sincroniza el historial de mensajes con el servidor. Ponerse al día con los mensajes que fueron enviados mientras Conversaciones estaba fuera de línea. +* XEP-0352: Indicación del Estado del Cliente permite al servidor saber si Conversaciones está o no en segundo plano. Permite al servidor ahorrar ancho de banda reteniendo paquetes sin importancia. +* XEP-0363: Carga de Archivos HTTP permite compartir archivos en conferencias y con contactos sin conexión. Requiere un componente adicional en su servidor. diff --git a/src/conversations/fastlane/metadata/android/es-ES/short_description.txt b/src/conversations/fastlane/metadata/android/es-ES/short_description.txt new file mode 100644 index 000000000..7ed047672 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/es-ES/short_description.txt @@ -0,0 +1 @@ +Mensajería instantánea XMPP cifrada y fácil de usar para tu dispositivo móvil diff --git a/src/conversations/fastlane/metadata/android/fi-FI/full_description.txt b/src/conversations/fastlane/metadata/android/fi-FI/full_description.txt new file mode 100644 index 000000000..8071c92d0 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/fi-FI/full_description.txt @@ -0,0 +1,39 @@ +Helppokäyttöinen, luotettava ja vähän akkua käyttävä. Sisäänrakennettu tuki kuville, ryhmille ja päästä päähän -salaukselle. + +Periaatteet: + +* Ole niin kaunis ja helppokäyttöinen kuin on mahdolista turvallisuudesta ja ykstyisyydestä tinkimättä +* Käytä valmiita ja vakiintuneita protokollia +* Älä riipu Google-tunnuksesta äläkä Google Cloud Messaging -palvelusta (GCM) +* Vaadi niin vähän käyttöoikeuksia kuin mahdollista + +Ominaisuudet: + +* Päästä päähän -salaus joko OMEMO:lla tai OpenPGP:llä +* Lähetä ja vastaanota kuvia +* Salatut ääni- ja videopuhelut (DTLS-SRTP) +* Intuitiivinen käyttöliittymä joka noudattaa Androidin muotoilukieltä +* Profiilikuvat yhteystiedoille +* Synkronoi työpöytäversion kanssa +* Konferenssit (kirjanmerkkituella) +* Osoitekirjaintegrointi +* Useampi tili yhdessä näkymässä +* Todella pieni akun kulutus + +Conversations:lla on helppo luoda tili conversations.im-palvelimella. Silti Conversations toimii myös minkä tahansa muun XMPP-palvelimen kanssa. Monia XMPP-palvelimia ylläpidetään ilmaiseksi vapaaehtoisvoimin. + +XMPP-ominaisuudet: + +Conversations toimii kaikkien XMPP-palvelinten kanssa. XMPP on kuitenkin laajennettava protokolla. Nämä laajennukset on standardoitu niin kutsuttuina XEP:inä. Conversations tukee muutamaa näistä tehdäkseen käyttäjäkokemuksesta paremman. On mahdollista että nykyinen XMPP-palvelimesi ei tue kaikkia näitä laajennoksia. Siispä saadaksesi kaiken ilon irti Conversationsista kannattaa harkita joko sellaiseen palvelimeen, joka tukee näitä, vaihtamista tai oman XMPP-palvelimen ylläpitämistä itsellesi ja kavereillesi. + +XEP:t ovat tällä hetkellä: + +* XEP-0065: SOCKS5 Bytestreams (tai mod_proxy65). Käytetään tiedostojen siirtoon jos molemmat osapuolet ovat palomuurin tai NAT:n takana. +* XEP-0163: Personal Eventing Protocol profiilikuville +* XEP-0191: Blocking command lets you blacklist spammers or block contacts without removing them from your roster. +* XEP-0198: Stream Management mahdollistaa XMPP:n selviämisen pienestä verkon pätkimisestä ja TCP-yhteyden muutoksista. +* XEP-0280: Kopiot lähettämistäsi viesteistä muille laitteillesi. Mahdolistaa laitteiden vaihdon kesken keskustelun täysin saumoitta. +* XEP-0237: Roster Versioning säästää dataa heikoila yhteyksillä +* XEP-0313: Message Archive Management synchronize message history with the server. Catch up with messages that were sent while Conversations was offline. +* XEP-0352: Client State Indication lets the server know whether or not Conversations is in the background. Allows the server to save bandwidth by withholding unimportant packages. +* XEP-0363: HTTP File Upload allows you to share files in conferences and with offline contacts. Requires an additional component on your server. diff --git a/src/conversations/fastlane/metadata/android/fi-FI/short_description.txt b/src/conversations/fastlane/metadata/android/fi-FI/short_description.txt new file mode 100644 index 000000000..2713b6efd --- /dev/null +++ b/src/conversations/fastlane/metadata/android/fi-FI/short_description.txt @@ -0,0 +1 @@ +Salattu ja helppokäyttöinen XMPP-pikaviestin mobiililaitteellesi diff --git a/src/conversations/fastlane/metadata/android/fr-FR/full_description.txt b/src/conversations/fastlane/metadata/android/fr-FR/full_description.txt new file mode 100644 index 000000000..653bdec10 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/fr-FR/full_description.txt @@ -0,0 +1,38 @@ +Facile à utiliser, fiable, respectueux de votre batterie. Prend en charge les images, les conversations de groupe et le chiffrement de bout-en-bout. + +Principes de conception : + +* Être le plus joli et simple d'utilisation possible, sans compromis sur la sécurité ou la vie privée. +* S'appuyer sur des protocoles existants, bien établis +* Ne pas nécessiter de compte Google ou spécifiquement le Google Cloud Messaging (GCM) +* Nécessiter le moins de permissions possible + +Fonctionnalités : +* Chiffrement de bout-en-bout avec au choix, OMEMO ou OpenPGP +* Envoi et réception d'images +* Appels audio et vidéo chiffrés (DTLS-SRTP) +* Interface utilisateur intuitive qui suit les directives de conception d'Android +* Images / avatars pour vos contacts +* Synchronisation avec des clients de bureau +* Conférences (avec prise en charge des marque-pages) +* Intégration avec le carnet d'adresses +* Plusieurs comptes / boîte de réception unifiée +* Impact très faible sur l'autonomie de la batterie + +Conversations facilite la création de compte sur le serveur gratuit conversations.im. Cependant Conversations fonctionne également avec n'importe quel autre serveur XMPP. De nombreux serveurs XMPP sont gérés par des bénévoles et gratuits. + +Fonctionnalités de XMPP : + +Conversations fonctionne avec n'importe quel serveur XMPP. Cependant XMPP est un protocole extensible. Ces extensions sont aussi standardisées dans ce que l'on appelle les XEP. Conversations en prend en charge quelques-unes pour rendre l'expérience utilisateur meilleure dans l'ensemble. Il y a des chances que votre serveur XMPP actuel ne les prenne pas en charge. Ainsi, pour tirer le meilleur parti de Conversations, vous devriez envisager soit de passer à un serveur XMPP qui le fait, ou encore mieux, gérer votre propre serveur XMPP pour vous et vos amis. + +Ces XEP sont actuellement : + +* XEP-0065: SOCKS5 Bytestreams (ou mod_proxy65). Sera utilisé pour transférer des fichiers si les deux correspondants sont derrière un pare-feu (NAT). +* XEP-0163: Personal Eventing Protocol pour les avatars +* XEP-0191: Blocking Command vous permet de mettre des spammeurs sur liste noire ou bloquer des contacts sans les retirer de vos contacts. +* XEP-0198: Stream Management permet à XMPP de survivre à des petites pannes de réseau et aux changements de la connexion TCP sous-jacente. +* XEP-0280: Message Carbons qui synchronise automatiquement les messages que vous envoyez à votre client de bureau et vous permet ainsi de passer sans heurt de votre client mobile à votre client de bureau et inversement dans une conversation. +* XEP-0237: Roster Versioning principalement pour économiser de la bande passante sur les connexions mobiles de mauvaise qualité. +* XEP-0313: Message Archive Management synchronise l'historique des messages avec le serveur. Retrouvez des messages qui ont été envoyés pendant que Conversations était hors ligne. +* XEP-0352: Client State Indication fait savoir au serveur si Conversations est ou n'est pas en arrière-plan. Permet au serveur d'économiser de la bande passante en différant des paquets non importants. +* XEP-0363: HTTP File Upload vous permet de partager des fichiers dans les conférences et avec des contacts hors-ligne. Nécessite un composant supplémentaire sur votre serveur. diff --git a/src/conversations/fastlane/metadata/android/fr-FR/short_description.txt b/src/conversations/fastlane/metadata/android/fr-FR/short_description.txt new file mode 100644 index 000000000..b4ae66d63 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/fr-FR/short_description.txt @@ -0,0 +1 @@ +Messagerie instantanée XMPP chiffrée, facile à utiliser avec votre appareil mobile diff --git a/src/conversations/fastlane/metadata/android/gl-ES/full_description.txt b/src/conversations/fastlane/metadata/android/gl-ES/full_description.txt new file mode 100644 index 000000000..9bdcf9042 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/gl-ES/full_description.txt @@ -0,0 +1,40 @@ +Fácil de usar, fiable, baixo consumo de batería. Con soporte para imaxes, conversas en grupo e cifraxe e2e. + +Principios do deseño: + +* Ser tan fermosa e doada de usar como sexa posible sen sacrificar a seguridade ou privacidade +* Apoiarse en protocolos existentes e ben establecidos +* Non precisar dunha Conta de Google ou concretamente Google Cloud Messaging (GCM) +* Solicitar os mínimos permisos posibles + +Características: + +* Cifraxe extremo-a-extremo, ben con OMEMO ou con OpenPGP +* Enviar e recibir imaxes +* Chamadas de audio e vídeo cifradas (DTLS-SRTP) +* Interface intuitiva seguindo as recomendacións Android Design +* Imaxes/Avatares para os Contactos +* Sicronizada co cliente de escritorio +* Conferencias (con soporte para marcadores) +* Integración coa Libreta de enderezos +* Varias contas cunha lista de conversas unificada +* Consumo de enerxía moi baixo + +Con Conversations é moi doado crear unha conta no servidor gratuíto conversations.im. Con todo, Conversations funcionará igualmente con calquera outro servidor XMPP. Existen moitos servidores XMPP xestionados por voluntarios e gratuítos. + +Características de XMPP: + +Conversations funciona con calquera sevidor XMPP, mais XMPP é un protocolo extensible. Estas extensións tamén están estadarizadas nos chamados XEP's. +Conversations da soporte a un par delas que axudan a mellorar a experiencia de uso da aplicación. Pode acontecer que o teu servidor XMPP actual non dé soporte para estas extensións. Por tanto para obter o mellor resultado ao usar Conversations debes ter considerar usar un servidor XMPP que si o faga - ou incluso mellor - xestionar o teu propio servidor para as túas amizades. + +Estes XEPs son - neste intre: + +* XEP-0065: SOCKS5 Bytestreams (ou mod_proxy65). Usado para a transferencia de ficheiros se as dúas partes están detrás dun cortalumes (NAT). +* XEP-0163: Personal Eventing Protocol para os avatares +* XEP-0191: O bloqueo de ordes permiteche bloquear spammer ou contactos sen eliminalos das túas listaxes. +* XEP-0198: Stream Management permite que XMPP sobreviva a caídas da rede e cambios na conexión TCP. +* XEP-0280: Message Carbons permite sincronizar automáticamente as mensaxes co teu cliente de escritorio e por tanto cambiar dun a outro sen perder mensaxes da conversa. +* XEP-0237: Roster Versioning fundamentalmente para aforrar datos en conexións móbiles +* XEP-0313: Message Archive Management sincroniza o historial de mensaxes co servidor. Para obter as mensaxes recibidas cando Conversations non teña conexión. +* XEP-0352: Client State Indication permítelle ao servidor saber se Conversations está a funcionar en segundo plano. Permítelle ao servidor aforrar ancho de banda retendo paquetes de datos de pouca importancia. +* XEP-0363: HTTP File Upload permíteche compartir ficheiros en salas de conferencia e con contactos que non están conectados. Require un compoñente adicional no teu servidor. diff --git a/src/conversations/fastlane/metadata/android/gl-ES/short_description.txt b/src/conversations/fastlane/metadata/android/gl-ES/short_description.txt new file mode 100644 index 000000000..79c77166e --- /dev/null +++ b/src/conversations/fastlane/metadata/android/gl-ES/short_description.txt @@ -0,0 +1 @@ +Mensaxería instantánea XMPP cifrada e fácil de usar para o teu dispositivo móbil diff --git a/src/conversations/fastlane/metadata/android/it-IT/full_description.txt b/src/conversations/fastlane/metadata/android/it-IT/full_description.txt new file mode 100644 index 000000000..d390af661 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/it-IT/full_description.txt @@ -0,0 +1,39 @@ +Facile da usare, affidabile, leggero sulla batteria. Con supporto integrato per immagini, chat di gruppo e crittografia e2e. + +Principi di design: + +* Essere il più bello e facile da usare possibile senza sacrificare la sicurezza o la privacy +* Affidarsi a protocolli esistenti ben affermati +* Non richiedere un account Google o nello specifico Google Cloud Messaging (GCM) +* Richiedere il minor numero di autorizzazioni possibile + +Caratteristiche: + +* Crittografia end-to-end con OMEMO o OpenPGP +* Invio e ricezione di immagini +* Chiamate audio e video crittografate (DTLS-SRTP) +* Interfaccia utente intuitiva che segue le linee guida del design di Android +* Immagini / Avatar per i tuoi contatti +* Sincronizzazione con client desktop +* Conferenze (con supporto ai segnalibri) +* Integrazione della rubrica +* Profili multipli / messaggi unificati +* Consumo molto basso della batteria + +Conversations rende veramente facile creare un profilo sul server gratuito conversations.im. Tuttavia Conversations funzionerà anche con qualsiasi altro server XMPP. Molti server XMPP vengono gestiti da volontari e sono gratuiti. + +Caratteristiche di XMPP: + +Conversations funziona con tutti i server XMPP. Tuttavia XMPP è un protocollo estensibile. Anche queste estensioni sono standardizzate, con il nome XEP. Conversations supporta alcune di esse per rendere migliore l'esperienza utente. È possibile che il server XMPP che stai usando non supporti queste estensioni. Perciò, per ottenere il meglio da Conversations dovresti considerare di passare ad un server XMPP che le supporta o, ancora meglio, installarne uno tuo per te e i tuoi amici. + +Queste XEP sono, ad oggi: + +* XEP-0065: SOCKS5 Bytestreams (o mod_proxy65). Usata per trasferire file se entrambe le parti sono dietro un firewall (NAT). +* XEP-0163: Personal Eventing Protocol. Per gli avatar. +* XEP-0191: Blocking command. Ti consente di bloccare lo spam o i contatti senza rimuoverli dal tuo elenco. +* XEP-0198: Stream Management. Consente a XMPP di resistere a brevi disconnessioni e cambi della connessione TCP sottostante. +* XEP-0280: Message Carbons. Sincronizza automaticamente i messaggi che invii al client desktop, quindi ti consente di passare senza problemi dal mobile al desktop e viceversa con un'unica conversazione. +* XEP-0237: Roster Versioning. Principalmente per risparmiare banda di rete in connessioni mobili deboli +* XEP-0313: Message Archive Management. Sincronizza la cronologia dei messaggi con il server. Recupera i messaggi che sono stati inviati mentre Conversations era offline. +* XEP-0352: Client State Indication. Fa sapere al server se Conversations è in secondo piano o no. Permette al server di risparmiare banda di rete trattenendo i pacchetti non importanti. +* XEP-0363: HTTP File Upload. Ti consente di condividere file nelle conferenze e con i contatti offline. Richiede un componente aggiuntivo sul tuo server. diff --git a/src/conversations/fastlane/metadata/android/it-IT/short_description.txt b/src/conversations/fastlane/metadata/android/it-IT/short_description.txt new file mode 100644 index 000000000..fd4dfa96d --- /dev/null +++ b/src/conversations/fastlane/metadata/android/it-IT/short_description.txt @@ -0,0 +1 @@ +Client di messaggistica XMPP facile e criptato, per il tuo dispositivo mobile diff --git a/src/conversations/fastlane/metadata/android/ja-JP/short_description.txt b/src/conversations/fastlane/metadata/android/ja-JP/short_description.txt new file mode 100644 index 000000000..ade292722 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/ja-JP/short_description.txt @@ -0,0 +1 @@ +携帯端末で簡単に操作できるXMPP暗号化インスタント・メッセンジャー diff --git a/src/conversations/fastlane/metadata/android/pl-PL/full_description.txt b/src/conversations/fastlane/metadata/android/pl-PL/full_description.txt new file mode 100644 index 000000000..442e1e826 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/pl-PL/full_description.txt @@ -0,0 +1,39 @@ +Łatwy w użyciu, godny zaufania, przyjazny dla baterii. Wbudowane wsparcie dla obrazków, rozmów grupowych i szyfrowania od nadawcy do odbiorcy. + +Zasady projektu: + +* ma być tak ładny i prosty w użyciu jak to możliwe bez uszczerbku na bezpieczeństwie lub prywatności; +* używa istniejących, dobrze znanych protokołów; +* nie wymaga Konta Google ani, w szczególności, Google Cloud Messaging (GCM); +* wymaga tylko naprawdę koniecznych uprawnień. + +Funkcjonalność: + +* szyfrowanie od nadawcy do odbiorcy (E2EE) z użyciem OMEMO lub OpenPGP; +* wysyłanie i odbieranie obrazków; +* szyfrowane rozmowy głosowe i wideo; +* intuicyjny interfejs użytkownika, zgodny z wytycznymi Android Design; +* obrazki/awatary dla Twoich kontaktów; +* synchronizacja z klientem desktopowym; +* konferencje (z obsługą zakładek); +* integracja z książką adresową; +* wiele kont, zintegrowana skrzynka odbiorcza; +* bardzo ograniczony wpływ na zużycie baterii. + +Conversations bardzo ułatwia rejestrację konta na darmowym serwerze conversations.im, jednak będzie działać również z każdym innym serwerem XMPP. Wiele serwerów jest uruchamianych przez wolontariuszy i są dostępne bez opłat. + +Funkcjonalność XMPP: + +Conversations działa z każdym dostępnym serwerem XMPP, jednak XMPP to rozszerzalny protokół. Rozszerzenia są ustandaryzowane w tak zwanych XEP. Conversations obsługuje sporo z nich, dzięki czemu można go przyjemniej używać. Jest jednak możliwość, że Twój obecny serwer nie obsługuje tych rozszerzeń. Aby wyciągnąć jak najwięcej z Conversations rozważ przeniesienie się na taki serwer, który je obsługuje, lub — jeszcze lepiej — uruchom własny serwer dla Ciebie i Twoich przyjaciół. + +Obecnie są obsługiwane następujące rozszerzenia: + +* XEP-0065: SOCKS5 Bytestreams (lub mod_proxy65). Będzie używany do przesyłania plików jeżeli obie strony znajdują się za zaporą (NAT); +* XEP-0163: Personal Eventing Protocol dla awatarów; +* XEP-0191: Blocking Command umożliwia ochronę przed spamerami lub blokowanie bez usuwanie ich z rostera; +* XEP-0198: Stream Management pozwala na przetrwanie krótkich braków połączenia z siecią oraz zmian używanego połączenia TCP; +* XEP-0280: Message Carbons automatycznie synchronizuje wysyłane wiadomości z klientem desktopowym i w ten sposób pozwala na proste używanie zarówno klienta mobilnego, jak i desktopowego, w jednej konwersacji; +* XEP-0237: Roster Versioning, dzięki któremu można ograniczyć używanie sieci na słabych połączeniach komórkowych; +* XEP-0313: Message Archive Management synchronizuje historię wiadomości z serwerem. Bądź na bieżąco z wiadomości wysłanymi gdy Conversations był rozłączony; +* XEP-0352: Client State Indication informuje serwer o tym, czy Conversations działa w tle. Pozwala to na oszczędzanie łącza przez wstrzymywanie mniej ważnych komunikatów; +* XEP-0363: HTTP File Upload umożliwia udostępnianie plików w konferencjach oraz rozłączonym kontaktom. Wymaga dodatkowego komponentu na Twoim serwerze. diff --git a/src/conversations/fastlane/metadata/android/pl-PL/short_description.txt b/src/conversations/fastlane/metadata/android/pl-PL/short_description.txt new file mode 100644 index 000000000..7869c1ba5 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/pl-PL/short_description.txt @@ -0,0 +1 @@ +Szyfrowany, prosty w użyciu komunikator XMPP dla Twojego urządzenia mobilnego diff --git a/src/conversations/fastlane/metadata/android/ro/full_description.txt b/src/conversations/fastlane/metadata/android/ro/full_description.txt new file mode 100644 index 000000000..2d4ae419d --- /dev/null +++ b/src/conversations/fastlane/metadata/android/ro/full_description.txt @@ -0,0 +1,38 @@ +Ușor de utilizat, fiabil, prietenos cu bateria. Cu suport încorporat pentru imagini, discuții de grup și criptare E2E. + +Principii de proiectare: + +* Să fie cât mai frumos și mai ușor de utilizat posibil, fără a sacrifica securitatea sau confidențialitatea. +* Să se bazeze pe protocoale existente și bine stabilite +* Nu necesită un cont Google sau în mod specific Google Cloud Messaging (GCM). +* Să necesite cât mai puține permisiuni posibil + +Caracteristici: + +* Criptare de la un capăt-la-altul (E2E) cu OMEMO sau OpenPGP +* Trimiterea și primirea de imagini +* Apeluri audio și video criptate (DTLS-SRTP) +* Interfață intuitivă care respectă liniile directoare Android Design +* Imagini / Avataruri pentru contactele dvs. +* Se sincronizează cu clientul desktop +* Conferințe (cu suport pentru marcaje) +* Integrare cu lista de contacte +* Conturi multiple / căsuță de mesaje unificată +* Impact foarte redus asupra duratei de viață a bateriei + +Conversations face foarte ușoară crearea unui cont pe serverul gratuit conversations.im. Cu toate acestea, Conversations va funcționa și cu orice alt server XMPP. O mulțime de servere XMPP sunt administrate de voluntari și sunt gratuite. + +Caracteristici XMPP: + +Conversations funcționează cu orice server XMPP existent. Cu toate acestea, XMPP este un protocol extensibil. Aceste extensii sunt, de asemenea, standardizate în așa-numitele XEP-uri. Conversations suportă câteva dintre acestea pentru a îmbunătăți experiența generală a utilizatorului. Există o șansă ca serverul XMPP actual să nu suporte aceste extensii. Prin urmare, pentru a profita la maximum de Conversations, ar trebui să luați în considerare fie trecerea la un server XMPP care să suporte aceste extensii, fie - și mai bine - să rulați propriul server XMPP pentru dumneavoastră și prietenii dumneavoastră. + +Aceste XEP-uri sunt - deocamdată: +* XEP-0065: SOCKS5 Bytestreams (sau mod_proxy65). Va fi utilizat pentru a transfera fișiere dacă ambele părți se află în spatele unui firewall (NAT). +* XEP-0163: Protocol de evenimente personale pentru avatare. +* XEP-0191: Comanda de blocare vă permite să puneți pe lista neagră spamerii sau să blocați contactele fără a le elimina din listă. +* XEP-0198: Stream Management permite XMPP să supraviețuiască unor mici întreruperi de rețea și schimbărilor conexiunii TCP de bază. +* XEP-0280: Message Carbons, care sincronizează automat mesajele pe care le trimiteți în clientul desktop și vă permite astfel să treceți fără probleme de la clientul mobil la clientul desktop și înapoi în cadrul unei singure conversații. +* XEP-0237: Roster Versioning în principal pentru a economisi lățimea de bandă în cazul conexiunilor mobile slabe +* XEP-0313: Gestionarea arhivei de mesaje sincronizează istoricul mesajelor cu serverul. Recuperați mesajele care au fost trimise în timp ce Conversations era deconectat. +* XEP-0352: Client State Indication permite serverului să știe dacă Conversations este sau nu în fundal. Permite serverului să economisească lățimea de bandă prin reținerea pachetelor neimportante. +* XEP-0363: HTTP File Upload vă permite să partajați fișiere în cadrul conferințelor și cu contactele deconectate. Necesită o componentă suplimentară pe serverul dumneavoastră. diff --git a/src/conversations/fastlane/metadata/android/ro/short_description.txt b/src/conversations/fastlane/metadata/android/ro/short_description.txt new file mode 100644 index 000000000..143f7cb55 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/ro/short_description.txt @@ -0,0 +1 @@ +Client de mesagerie XMPP ușor de folosit, criptat, și optimizat pentru mobile diff --git a/src/conversations/fastlane/metadata/android/ru-RU/full_description.txt b/src/conversations/fastlane/metadata/android/ru-RU/full_description.txt new file mode 100644 index 000000000..77c8edbb9 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/ru-RU/full_description.txt @@ -0,0 +1,39 @@ +Простой в использовании, надежный, экономный для батареи. Со встроенной поддержкой изображений, групповых чатов и сквозным шифрованием. + +Принципы дизайна: + +* Быть максимально красивым и простым в использовании, не жертвуя при этом безопасностью и конфиденциальностью. +* Полагаться на существующие, хорошо зарекомендовавшие себя протоколы. +* Не требовать учетную запись Google или, в частности, Google Cloud Messaging (GCM). +* Требовать как можно меньше разрешений. + +Функции: + +* Сквозное шифрование с помощью OMEMO или OpenPGP. +* Отправка и получение изображений +* Зашифрованные аудио и видео звонки (DTLS-SRTP) +* Интуитивно понятный пользовательский интерфейс, соответствующий Рекомендациям по дизайну Android +* Картинки / аватары для ваших контактов +* Синхронизация с настольным клиентом +* Конференции (с поддержкой закладок) +* Интеграция с адресной книгой +* Несколько учетных записей / единый почтовый ящик +* Очень низкое влияние на время работы от батареи + +Conversations позволяет очень легко создать учетную запись на бесплатном сервере conversations.im. Однако Conversations также будет работать с любым другим сервером XMPP. Многие XMPP серверы управляются добровольцами и предоставляются бесплатно. + +Возможности XMPP: + +Conversations работает со всеми существующими XMPP-серверами. Однако XMPP - это расширяемый протокол. Эти расширения также стандартизированы в так называемых XEP-протоколах. Conversations поддерживает несколько из них, чтобы улучшить общее взаимодействие с пользователем. Есть вероятность, что ваш текущий XMPP-сервер не поддерживает какие либо расширения. Поэтому, чтобы получить максимальную отдачу от Conversations, вам следует либо перейти на XMPP-сервер который поддерживает эти расширения, либо, что еще лучше, запустить свой собственный XMPP-сервер для вас и ваших друзей. + +На данный момент эти XEP: + +* XEP-0065: SOCKS5 Bytestreams SOCKS5 (или mod_proxy65): будет использоваться для передачи файлов если обе стороны находятся за брандмауэром (или NAT). +* XEP-0163: Personal Eventing Protocol: для аватаров. +* XEP-0191: Blocking command: позволяет вносить спамеров в черный список или блокировать контакты, не удаляя их из своего списка. +* XEP-0198: Stream Management: позволяет XMPP справляться с небольшими перебоями в сети и изменениями нижележащего TCP-соединения. +* XEP-0280: Message Carbons: автоматически синхронизирует отправляемые вами сообщения с вашим клиентом на настольном компьютере и таким образом позволяет вам плавно переключаться с мобильного клиента на настольный клиент и обратно в рамках одного разговора. +* XEP-0237: Roster Versioning: в основном, для экономии полосы пропускания при плохом мобильном соединении. +* XEP-0313: Message Archive Management: синхронизирует историю сообщений с сервером. Отслеживание сообщений, отправленных во время разговоров в автономном режиме. +* XEP-0352: Client State Indication: позволяет серверу узнать ведутся ли разговоры в фоновом режиме. Позволяет серверу экономить пропускную способность, удерживая неважные пакеты. +* XEP-0363: HTTP File Upload: позволяет обмениваться файлами в конференциях и с контактами в автономном режиме. Требует дополнительный компонент на вашем сервере. diff --git a/src/conversations/fastlane/metadata/android/ru-RU/short_description.txt b/src/conversations/fastlane/metadata/android/ru-RU/short_description.txt new file mode 100644 index 000000000..059ec9eb7 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/ru-RU/short_description.txt @@ -0,0 +1 @@ +Зашифрованный и простой в использовании XMPP мессенджер для вашего мобильного diff --git a/src/conversations/fastlane/metadata/android/sq/full_description.txt b/src/conversations/fastlane/metadata/android/sq/full_description.txt new file mode 100644 index 000000000..f6f03b151 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/sq/full_description.txt @@ -0,0 +1,39 @@ +I kollajtë për t’u përdorur, i qëndrueshëm, dashamirës ndaj baterisë. Me mbulim së brendshmi për figura, fjalosje në grup dhe fshehtëzim e2e. + +Parime konceptuale: + +* Të qenët aq i bukur dhe i lehtë për përdorim sa mundet, pa sakrifikuar sigurinë ose privatësinë +* Bazim në protokolle ekzistues, të mirënjohur +* Mospasje nevojë për një Google Account, ose, posaçërisht Google Cloud Messaging (GCM) +* Kërkim i sa më pak lejesh që të jetë e mundur + +Veçori: + +* Fshehtëzim skaj-më-skaj me OMEMO, ose OpenPGP +* Dërgim dhe marrje mesazhesh +* Thirrje të fshehtëzuara audio dhe video (DTLS-SRTP) +* UI intuitive që ndjek udhëzimet Android Design +* Foto / Avatarë të Kontakteve tuaja +* Njëkohësim me klient desktop +* Konferenca (me mbulim për faqerojtës) +* Integrim libri adresash +* Llogari të shumta / kuti e unifikuar të marrësh +* Ndikim shumë i pakët në jetëgjatësinë e baterisë + +Conversations e bën shumë të lehtë krijimin e një llogarie te shërbyesi falas conversations.im. Megjithatë, Conversations do të funksionojë me çfarëdo shërbyesi tjetër XMPP. Plot shërbyes XMPP mbahen në punë nga vullnetarë dhe janë pa pagesë + +Veçori të XMPP-së: + +Conversations funksionon me çdo shërbyes XMPP në qarkullim. Megjithatë, XMPP është një protokoll i zgjerueshëm. Edhe këto zgjerime janë të standardizuara në të ashtuquajturit XEP-e. Conversations mbulon një a dy prej tyre, për ta bërë punën e përdoruesit më të mirë në përgjithësi. Ka një mundësi që shërbyesi juaj aktual XMPP të mos i mbulojë këto zgjerime. Ndaj, që të përfitoni maksimumin nga Conversations, duhet të shihni mundësi ose të kaloni te një shërbyes XMPP që i mbulon, ose - akoma më mirë - të vini në punë shërbyesin tuaj XMPP për ju dhe shokët tuaj. + +Këto XEP-e janë - deri sot: + +* XEP-0065: SOCKS5 Bytestreams (ose mod_proxy65). Do të përdoret për të shpërngulur kartela, nëse të dy palët gjenden pas një firewall-i (NAT). +* XEP-0163: Personal Eventing Protocol, për avatarë +* XEP-0191: Urdhri i bllokimeve ju lejon të kaloni në listë bllokimesh llogari që dërgojnë mesazhe të padëshiruar, ose të bllokoni kontakte pa i hequr nga lista juaj. +* XEP-0198: Stream Management i lejon XMPP-së të mbijetojë ndërprerje të vockla rrjeti dhe ndryshime te lidhja përkatëse TCP. +* XEP-0280: Message Carbons do të njëkohësojë automatikisht te klienti juaj desktop mesazhet që dërgoni dhe, pra, ju lejon të kaloni pa një cen nga klienti juaj për celular në atë për desktop dhe anasjelltas, brenda një bisede. +* XEP-0237: Roster Versioning kryesisht për të kursyer sasi trafiku në lidhje celulare të dobëta +* XEP-0313: Message Archive Management njëkohëson historik mesazhesh me shërbyesin. Ndiqni mesazhet që qenë dërguar ndërkohë që Conversations s’qe në linjë. +* XEP-0352: Client State Indication i lejon shërbyesit të dijë nëse është apo jo në prapaskenë Conversations. I lejon shërbyesit të kursejë sasi trafiku, duke mbajtur paketa pa rëndësi. +* XEP-0363: HTTP File Upload ju lejon të ndani me të tjerë kartela në konferenca dhe me kontakte jo në linjë. Lyp një përbërë shtesë në shërbyesin tuaj. diff --git a/src/conversations/fastlane/metadata/android/sq/short_description.txt b/src/conversations/fastlane/metadata/android/sq/short_description.txt new file mode 100644 index 000000000..bec029626 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/sq/short_description.txt @@ -0,0 +1 @@ +Shkëmbyes XMPP mesazhesh aty për aty, i fshehtëzuar, i kollajtë, për celular diff --git a/src/conversations/fastlane/metadata/android/sv-SE/full_description.txt b/src/conversations/fastlane/metadata/android/sv-SE/full_description.txt new file mode 100644 index 000000000..c02bd4912 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/sv-SE/full_description.txt @@ -0,0 +1,39 @@ +Lättanvänd, pålitlig och batterivänlig. Med inbyggt stöd för bilder, gruppchatt och totalsträckskryptering (end-to-end-kryptering). + +Designprinciper: + +* Vara så snygg och lättanvänd som möjligt utan att offra säkerhet eller personlig integritet +* Bygga på väletablerade existerande protokoll +* Inte kräva ett Google-konto eller specifikt Google Cloud Messaging (GCM) +* Kräva så få behörigheter som möjligt + +Funktioner: + +* Totalsträckskryptering (end-to-end-kryptering) med antingen OMEMO eller OpenPGP +* Skicka och ta emot bilder +* Krypterade ljud- och bildsamtal (DTLS-SRTP) +* Intuitivt användargränssnitt som följder Androids designriktlinjer +* Bilder eller avatarer för dina kontakter +* Synkroniserar med din skrivbordsklient +* Konferenser (med stöd för bokmärken) +* Integration med adressboken +* Stöd för flera konton, med delan inkorg +* Väldigt liten påverkan på batteriets livstid + +Med Conversations kan du lätt skapa ett konto på den fria servern conversations.im. Men Conversations fungerar med vilken annan XMPP-server som helst. Många XMPP-servrar drivs av volontärer och är gratis att använda. + +XMPP-funktioner: + +Conversations fungerar med alla XMPP-servrar. Men XMPP är ett utbyggbart protokoll. Dessa tillägg är också standardiserade i så kallade XEP’s. Conversations stödjer vissa av dessa tillägg för att göra den övergripande användarupplevelsen bättre. Det kan hända att din XMPP-server inte har stöd för dessa tillägg. För att få ut det mesta av Conversations bör du överväga att antingen byta till en XMPP-server som har stöd, eller - ännu bättre - kör din egen XMPP-server för dig och dina vänner! + +De XEP-tillägg som stöds är: + +* XEP-0065: SOCKS5 Bytestreams (or mod_proxy65). Används för filöverföring om båda parter är bakom en brandvägg (NAT). +* XEP-0163: Personal Eventing Protocol för avatarer +* XEP-0191: Blocking command låter dig svartlista spammare eller blocka kontakter utan att ta bort dem +* XEP-0198: Stream Management låter XMPP att klara av mindre nätverksavbrott och förändringar i den underliggande TCP-anslutningen +* XEP-0280: Message Carbons som automatiskt synkar meddelanden till din skrivbordsklient och på så viss gör det möjligt att växla sömlöst från din mobil till skrivbordsklient och tillbaka inom en och samma konversation +* XEP-0237: Roster Versioning för att spara bandbredd vid dåliga mobilanslutningar +* XEP-0313: Message Archive Management synkronisera meddelandehistorik med server. Läs meddelanden som sänts medan Conversations var off line. +* XEP-0352: Client State Indication låter servern veta om Conversations är körs i bakgrunden eller inte. Det gör att servern kan spara bandbredd genom att inte skicka oviktiga paket. +* XEP-0363: HTTP File Upload låter dig dela filer i konferenser med offline-kontakter. Det kräver ett tillägg på din server. diff --git a/src/conversations/fastlane/metadata/android/sv-SE/short_description.txt b/src/conversations/fastlane/metadata/android/sv-SE/short_description.txt new file mode 100644 index 000000000..0177c6fe2 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/sv-SE/short_description.txt @@ -0,0 +1 @@ +Krypterad lättanvänd XMPP-meddelandeapp för din mobil diff --git a/src/conversations/fastlane/metadata/android/tr-TR/full_description.txt b/src/conversations/fastlane/metadata/android/tr-TR/full_description.txt new file mode 100644 index 000000000..889d502e0 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/tr-TR/full_description.txt @@ -0,0 +1,39 @@ +Kullanımı kolay, güvenilir, pil ömrü dostu. Resimler, gruplar ve uçtan uca şifreleme için yerleşik destek. + +Tasarım ilkeleri: + +* Gizlilik ve güvenlikten tasarruf etmeden olabildiğince iyi görünümlü ve kolay kullanımlı olmak +* Halihazırda var olan, köklü protokollere dayanmak +* Bir Google hesabına, özellikle Google Bulut Mesajlaşması (GCM)'e, gerek duymamak +* Olabildiğince az izine gerek duymak + +Özellikler: + +* OMEMO veya OpenPGP ile uçtan uca şifreleme +* Fotoğraf gönderme ve alma +* Şifrelenmiş görüntülü ve sesli aramalar (DTLS-SRTP) +* Android tasarım standartlarına uyan öğrenmesi kolay arayüz +* Kişileriniz için profil fotoğrafları / Avatarlar +* Masaüstü uygulamasıyla senkronizasyon +* Konferanslar (yer imi desteği ile) +* Kişiler listesiyle entegrasyon +* Birden fazla hesap / Birleşik gelen kutusu +* Pil ömrüne çok düşük etki + +Conversations, kolayca ve ücretsiz olarak conversations.im sunucusunda hesap oluşturmanıza olanak tanır. Conversations başka herhangi bir XMPP sunucusuyla da çalışır. Çoğu XMPP sunucusu gönüllüler tarafından işletilir ve ücretsizdir. + +XMPP Özellikleri: + +Conversations var olan bütün XMPP sunucularıyla kullanılabilir. Ancak XMPP, eklentiler ile genişletilebilen bir protokoldür. Bu eklentiler XEP'ler olarak standardize edilmiştir. Conversations kullanıcı deneyimini iyileştirmek için bu eklentilerden birkaçını destekler. Kullandığınız XMPP sunucusu bu eklentileri desteklemiyor olabilir. Bu yüzden Conversations'tan en iyi şekilde faydalanmak için bu eklentileri destekleyen bir sunucuya geçmeli veya, daha da iyisi, siz ve arkadaşlarınız için kendi XMPP sunucunuzu kurmalısınız. + +Şimdilik bu XEP'ler: + +* XEP-0065: SOCKS5 Bytestreams (mod_proxy65). İki taraf da bir güvenlik duvarı (NAT) arkasında ise dosya aktarımı için kullanılacaktır. +* XEP-0163: Avatarlar için Kişisel Olay Protokolü (Personal Eventing Protocol) +* XEP-0191: Engelleme komutu - Spam atanları ve kişilerinizi listenizden kaldırmadan engellemenizi sağlar. +* XEP-0198: Akış Kontrolü (Stream Management) - XMPP'yi ve altındaki TCP bağlantısını küçük çaplı bağlantı kopmalarına karşı korur. +* XEP-0280: Mesaj Karbonları - Mesajlarınızı masaüstü uygulamasıyla senkronize ederek cihazlarınız arasında kesintisiz geçiş yapmanızı sağlar. +* XEP-0237: Roster Versioning (Liste Sürüm Takibi) - Zayıf mobil ağlarda bant aralığından tasarruf etmek amacıyla. +* XEP-0313: Mesaj Arşivi Yönetimi - Çevrimdışı olduğunuzda bile mesaj almaya devam edebilmeniz için mesajlarınızı sunucuyla senkronize eder. +* XEP-0352: İstemci Durum Bildirimi - Conversations'un arkaplanda çalıştığını sunucuya bildir. Sunucunun önemsiz paketleri saklayarak veriden tasarruf etmesini sağlar. +* XEP-0363: HTTP Dosya Yükleme - Konferanslarla ve çevrimdışı kişilerle dosya paylaşabilmenizi sağlar. Sunucunuzda ek bileşen gerektirir. diff --git a/src/conversations/fastlane/metadata/android/tr-TR/short_description.txt b/src/conversations/fastlane/metadata/android/tr-TR/short_description.txt new file mode 100644 index 000000000..1eb74ef8f --- /dev/null +++ b/src/conversations/fastlane/metadata/android/tr-TR/short_description.txt @@ -0,0 +1 @@ +Mobil cihazınız için şifrelenmiş, kullanımı kolay bir XMPP mesajlaşma uygulaması diff --git a/src/conversations/fastlane/metadata/android/uk/full_description.txt b/src/conversations/fastlane/metadata/android/uk/full_description.txt new file mode 100644 index 000000000..39971ed55 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/uk/full_description.txt @@ -0,0 +1,39 @@ +Надійний, простий у використанні, ощадливо витрачає заряд акумулятора. Має вбудовану підтримку зображень, групових чатів і наскрізного шифрування. + +Принципи проєктування: + +* Бути максимально красивим та простим у використанні, не жертвуючи безпекою чи конфіденційністю +* Покладатися на існуючі, добре встановлені протоколи +* Не вимагати облікового запису Google, зокрема Google Cloud Messaging (GCM) +* Вимагати якомога менше дозволів + +Функції: + +* Наскрізне шифрування (від відправника до одержувача) за допомогою OMEMO або OpenPGP +* Надсилання та отримання зображень +* Зашифровані голосові та відеодзвінки (DTLS-SRTP) +* Інтуїтивно зрозумілий інтерфейс користувача, який відповідає вказівкам Android Design +* Зображення / Аватари для Ваших контактів +* Синхронізація з настільним клієнтом +* Конференції (з підтримкою закладок) +* Інтеграція адресної книги +* Кілька облікових записів / єдина папка вхідних +* Дуже низький вплив на термін служби акумулятора + +Conversations дозволяє легко створити обліковий запис на безкоштовному сервері conversations.im. Однак Conversations працюватиме також із будь-яким іншим XMPP-сервером. Чимало серверів XMPP обслуговуються волонтерами і є безкоштовними. + +Функції XMPP: + +Conversations працює з будь-яким сервером XMPP. Проте XMPP — розширюваний протокол. Розширення також стандартизовані в так званих XEP. Conversations підтримує кілька з них, щоб покращити загальний досвід користування. Може виявитися, що Ваш поточний сервер XMPP не підтримує цих розширень. Тому, щоб отримати максимум від Conversations, розгляньте перехід на XMPP-сервер з підтримкою цих розширень або — ще краще — запускайте власний сервер XMPP для себе і своїх друзів. + +На даний час підтримуються такі XEP: + +* XEP-0065: SOCKS5 Bytestreams (або mod_proxy65). Використовується для передачі файлів, якщо обидві сторони знаходяться за брандмауером (NAT). +* XEP-0163: персональний протокол подій для аватарів +* XEP-0191: команда блокування дозволяє Вам заносити спамерів у чорний список або блокувати контакти, не видаляючи їх зі свого списку. +* XEP-0198: керування потоками дозволяє XMPP витримувати невеликі перебої в мережі та зміни основного TCP-з'єднання. +* XEP-0280: Message Carbons, який автоматично синхронізує повідомлення, які Ви надсилаєте, на настільний клієнт і, таким чином, дозволяє плавно переключатися з мобільного клієнта на клієнт для настільного ПК і назад протягом однієї розмови. +* XEP-0237: версія списку в основному для економії пропускної здатності при поганих мобільних з'єднаннях +* XEP-0313: керування архівом повідомлень синхронізує історію повідомлень із сервером. Дізнавайтеся про повідомлення, надіслані, поки Conversations був офлайн. +* XEP-0352: індикація стану клієнта повідомляє серверу, чи працює Conversations у фоновому режимі. Дозволяє серверу заощаджувати пропускну здатність, утримуючи неважливі пакети. +* XEP-0363: завантаження файлів HTTP дозволяє обмінюватися файлами в конференціях і з офлайн-контактами. Потрібен додатковий компонент на Вашому сервері. diff --git a/src/conversations/fastlane/metadata/android/uk/short_description.txt b/src/conversations/fastlane/metadata/android/uk/short_description.txt new file mode 100644 index 000000000..300b89277 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/uk/short_description.txt @@ -0,0 +1 @@ +Простий у використанні XMPP-клієнт з підтримкою шифрування для Вашого телефона diff --git a/src/conversations/fastlane/metadata/android/zh-CN/full_description.txt b/src/conversations/fastlane/metadata/android/zh-CN/full_description.txt new file mode 100644 index 000000000..87d4ecea0 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/zh-CN/full_description.txt @@ -0,0 +1,39 @@ +易用、可靠、省电。内置支持图片、群聊和端到端加密功能。 + +设计原则: + +* 在不牺牲安全性和隐私性的前提下,尽可能美观易用 +* 依赖现有的、完善的协议 +* 不需要 Google 账号或特定的 Google 云通讯服务(GCM) +* 要求尽可能少的权限 + +特点: + +* 使用 OMEMOOpenPGP 进行端到端加密 +* 发送和接收图片 +* 加密音视频通话(DTLS-SRTP) +* 直观的用户界面,遵循 Android 设计准则 +* 为您的联系人添加图片/头像 +* 与桌面客户端同步 +* 群聊(支持书签功能) +* 通讯录集成 +* 多账号/统一消息栏 +* 对电池寿命的影响非常小 + +Conversations 使在免费的 conversations.im 服务器上创建账号变得非常简单。不过,Conversations 也适用于任何其他 XMPP 服务器。许多 XMPP 服务器都是由志愿者免费运行的。 + +XMPP 功能: + +Conversations 适用于所有 XMPP 服务器。然而,XMPP 是一种可扩展的协议。这些扩展在所谓的 XMPP 扩展协议中也是标准化的。Conversations 支持其中的一些扩展,以使整体用户体验更好。有一种可能是您当前的 XMPP 服务器不支持这些扩展。因此,要想充分使用 Conversations 的功能,您应该考虑切换到支持这些扩展的 XMPP 服务器,甚至有更好的方式,或者为您和您的朋友运行自己的 XMPP 服务器。 + +到目前为止,这些 XMPP 扩展协议是: + +* XEP-0065:SOCKS5 字节流(或 mod_proxy65)。如果双方都在防火墙(NAT)后面,将用于传输文件。 +* XEP-0163:个人事件协议(头像) +* XEP-0191:屏蔽命令可让您将垃圾消息发送者列入黑名单或屏蔽的联系人中,而不会将其从花名册中删除。 +* XEP-0198:流管理允许 XMPP 在小规模网络中断和底层 TCP 连接发生变化时继续运行。 +* XEP-0280:消息抄送,可自动将您发送的消息同步到桌面客户端,因此您可以在一次对话中从手机客户端无缝切换到桌面客户端,然后再返回。 +* XEP-0237:花名册版本控制主要是为了在移动连接不佳的情况下节省带宽 +* XEP-0313:消息存档管理与服务器同步消息历史记录。补发 Conversations 离线时发送的消息。 +* XEP-0352:客户端状态指示让服务器知道 Conversations 是否在后台。允许服务器保留不重要的数据包,从而节省带宽。 +* XEP-0363:通过 HTTP 文件上传功能,您可以在群聊中与离线联系人分享文件。需要在服务器上安装额外组件。 diff --git a/src/conversations/fastlane/metadata/android/zh-CN/short_description.txt b/src/conversations/fastlane/metadata/android/zh-CN/short_description.txt new file mode 100644 index 000000000..40275beb3 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/zh-CN/short_description.txt @@ -0,0 +1 @@ +为您的移动设备提供加密、易用的 XMPP 即时通讯软件 diff --git a/src/conversations/fastlane/metadata/android/zh-TW/full_description.txt b/src/conversations/fastlane/metadata/android/zh-TW/full_description.txt new file mode 100644 index 000000000..0e9114c98 --- /dev/null +++ b/src/conversations/fastlane/metadata/android/zh-TW/full_description.txt @@ -0,0 +1,39 @@ +易於使用、可靠、省電,且帶有內建圖像支援、群組聊天和端對端加密的 XMPP 用戶端。 + +設計原則: + +* 在不犧牲安全或隱私權的前提下,盡可能地保持美觀性和易用性 +* 仰賴現存的、已建立的通訊協定 +* 不需要 Google 帳戶或特別的 Google 雲端訊息 (GCM) +* 需要少量可能的權限 + +功能: + +* OMEMOOpenPGP 端對端加密 +* 傳送並接收圖像 +* 加密的音訊和視訊通話 (DTLS-SRTP) +* 依循 Android 設計指南的直覺化 UI +* 為您的聯絡人顯示圖片/ 頭像 +* 與桌面用戶端同步 +* 會議 (書籤支援) +* 通訊錄整合 +* 多個帳戶/整合收件匣 +* 對電池壽命的極低影響 + +Conversations 使在免費的 conversations.im 伺服器上建立一個帳戶變得極為輕易。然而 Conversations 也可在其他 XMPP 伺服器上運作,很多 XMPP 伺服器是由志工驅動的,並且完全免費。 + +XMPP 功能: + +Conversations 可以在所有 XMPP 伺服器上運作。然而,XMPP 是一個可以擴充的通訊協定,這些擴充功能在所謂的 XEP 中也是標準化的。Conversations 支援其中的幾個,已使使用者體驗更佳。有可能您目前的 XMPP 伺服器並不支援這些擴充功能,因此,為了最大限度的發揮 Conversations 的作用,您應該考慮切換到一個支援這些擴充功能的 XMPP 伺服器,或者甚至更好——為您和您的朋友驅動您自己的 XMPP 伺服器。 + +如下 XEP - 截止目前: + +* XEP-0065:SOCKS5 位元資料流 (或 mod_proxy65),將被用於傳輸檔案,如果雙方都在防火牆之後 (NAT)。 +* XEP-0163:用於虛擬化身的私人活動通訊協定 +* XEP-0191:封鎖命令可讓您將濫發垃圾郵件者列入黑名單,或封鎖聯絡人而不把他們從名冊中移除。 +* XEP-0198:串流管理允許 XMPP 在小型網路中斷和基礎 TCP 連線的變更中生存。 +* XEP-0280:訊息副本,自動將您傳送的訊息同步至桌面用戶端,從而允許您在一次會話中從您的行動用戶端無縫切換到您的桌面用戶端。 +* XEP-0237:名冊版本管理,主要是為了節省行動連線不佳時的頻寬。 +* XEP-0313:訊息封存管理將訊息記錄與伺服器同步,隨時掌握離線傳送的訊息。 +* XEP-0352:用戶端狀態指示可讓伺服器知道 Conversations 是否在背景,允許伺服器透過扣留不必要的封裝來節省頻寬。 +* XEP-0363:HTTP 檔案上傳允許您在會議中或與離線聯絡人分享檔案,需要在您的伺服器上有一個額外的元件。 diff --git a/src/conversations/fastlane/metadata/android/zh-TW/short_description.txt b/src/conversations/fastlane/metadata/android/zh-TW/short_description.txt new file mode 100644 index 000000000..06e14ddbe --- /dev/null +++ b/src/conversations/fastlane/metadata/android/zh-TW/short_description.txt @@ -0,0 +1 @@ +可加密、易於使用的 XMPP 即時訊息,為您的行動裝置設計 diff --git a/src/main/java/eu/siacs/conversations/entities/AccountConfiguration.java b/src/conversations/java/eu/siacs/conversations/entities/AccountConfiguration.java similarity index 100% rename from src/main/java/eu/siacs/conversations/entities/AccountConfiguration.java rename to src/conversations/java/eu/siacs/conversations/entities/AccountConfiguration.java diff --git a/src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java b/src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java new file mode 100644 index 000000000..dd96468ee --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java @@ -0,0 +1,508 @@ +package eu.siacs.conversations.services; + +import static eu.siacs.conversations.utils.Compatibility.s; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.net.Uri; +import android.os.Binder; +import android.os.IBinder; +import android.provider.OpenableColumns; +import android.util.Log; + +import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationManagerCompat; + +import com.google.common.base.Charsets; +import com.google.common.base.Stopwatch; +import com.google.common.io.CountingInputStream; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonToken; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.crypto.axolotl.SQLiteAxolotlStore; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.entities.Conversation; +import eu.siacs.conversations.entities.Message; +import eu.siacs.conversations.persistance.DatabaseBackend; +import eu.siacs.conversations.persistance.FileBackend; +import eu.siacs.conversations.ui.ManageAccountActivity; +import eu.siacs.conversations.utils.BackupFileHeader; +import eu.siacs.conversations.utils.SerialSingleThreadExecutor; +import eu.siacs.conversations.worker.ExportBackupWorker; +import eu.siacs.conversations.xmpp.Jid; + +import org.bouncycastle.crypto.engines.AESEngine; +import org.bouncycastle.crypto.io.CipherInputStream; +import org.bouncycastle.crypto.modes.AEADBlockCipher; +import org.bouncycastle.crypto.modes.GCMBlockCipher; +import org.bouncycastle.crypto.params.AEADParameters; +import org.bouncycastle.crypto.params.KeyParameter; + +import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.WeakHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.regex.Pattern; +import java.util.zip.GZIPInputStream; +import java.util.zip.ZipException; + +import javax.crypto.BadPaddingException; + +public class ImportBackupService extends Service { + + private static final ExecutorService BACKUP_FILE_READER_EXECUTOR = + Executors.newSingleThreadExecutor(); + + private static final int NOTIFICATION_ID = 21; + private static final AtomicBoolean running = new AtomicBoolean(false); + private final ImportBackupServiceBinder binder = new ImportBackupServiceBinder(); + private final SerialSingleThreadExecutor executor = + new SerialSingleThreadExecutor(getClass().getSimpleName()); + private final Set mOnBackupProcessedListeners = + Collections.newSetFromMap(new WeakHashMap<>()); + private DatabaseBackend mDatabaseBackend; + private NotificationManager notificationManager; + + private static final Collection TABLE_ALLOW_LIST = + Arrays.asList( + Account.TABLENAME, + Conversation.TABLENAME, + Message.TABLENAME, + SQLiteAxolotlStore.PREKEY_TABLENAME, + SQLiteAxolotlStore.SIGNED_PREKEY_TABLENAME, + SQLiteAxolotlStore.SESSION_TABLENAME, + SQLiteAxolotlStore.IDENTITIES_TABLENAME); + private static final Pattern COLUMN_PATTERN = Pattern.compile("^[a-zA-Z_]+$"); + + @Override + public void onCreate() { + mDatabaseBackend = DatabaseBackend.getInstance(getBaseContext()); + notificationManager = + (android.app.NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (intent == null) { + return START_NOT_STICKY; + } + final String password = intent.getStringExtra("password"); + final Uri data = intent.getData(); + final Uri uri; + if (data == null) { + final String file = intent.getStringExtra("file"); + uri = file == null ? null : Uri.fromFile(new File(file)); + } else { + uri = data; + } + + if (password == null || password.isEmpty() || uri == null) { + return START_NOT_STICKY; + } + if (running.compareAndSet(false, true)) { + executor.execute( + () -> { + startForegroundService(); + final boolean success = importBackup(uri, password); + stopForeground(true); + running.set(false); + if (success) { + notifySuccess(); + } + stopSelf(); + }); + } else { + Log.d(Config.LOGTAG, "backup already running"); + } + return START_NOT_STICKY; + } + + public boolean getLoadingState() { + return running.get(); + } + + public void loadBackupFiles(final OnBackupFilesLoaded onBackupFilesLoaded) { + executor.execute( + () -> { + final List accounts = mDatabaseBackend.getAccountJids(false); + final ArrayList backupFiles = new ArrayList<>(); + final Set apps = + new HashSet<>( + Arrays.asList( + "Conversations", + "Quicksy", + getString(R.string.app_name))); + final List directories = new ArrayList<>(); + for (final String app : apps) { + directories.add(FileBackend.getLegacyBackupDirectory(app)); + } + directories.add(FileBackend.getBackupDirectory(this)); + for (final File directory : directories) { + if (!directory.exists() || !directory.isDirectory()) { + Log.d( + Config.LOGTAG, + "directory not found: " + directory.getAbsolutePath()); + continue; + } + final File[] files = directory.listFiles(); + if (files == null) { + continue; + } + Log.d(Config.LOGTAG, "looking for backups in " + directory); + for (final File file : files) { + if (file.isFile() && file.getName().endsWith(".ceb")) { + try { + final BackupFile backupFile = BackupFile.read(file); + if (accounts.contains(backupFile.getHeader().getJid())) { + Log.d( + Config.LOGTAG, + "skipping backup for " + + backupFile.getHeader().getJid()); + } else { + backupFiles.add(backupFile); + } + } catch (final IOException + | IllegalArgumentException + | BackupFileHeader.OutdatedBackupFileVersion e) { + Log.d(Config.LOGTAG, "unable to read backup file ", e); + } + } + } + } + Collections.sort( + backupFiles, Comparator.comparing(a -> a.header.getJid().toString())); + onBackupFilesLoaded.onBackupFilesLoaded(backupFiles); + }); + } + + private void startForegroundService() { + startForeground(NOTIFICATION_ID, createImportBackupNotification(1, 0)); + } + + private void updateImportBackupNotification(final long total, final long current) { + final int max; + final int progress; + if (total == 0) { + max = 1; + progress = 0; + } else { + max = 100; + progress = (int) (current * 100 / total); + } + final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); + try { + notificationManager.notify( + NOTIFICATION_ID, createImportBackupNotification(max, progress)); + } catch (final RuntimeException e) { + Log.d(Config.LOGTAG, "unable to make notification", e); + } + } + + private Notification createImportBackupNotification(final int max, final int progress) { + NotificationCompat.Builder mBuilder = + new NotificationCompat.Builder(getBaseContext(), "backup"); + mBuilder.setContentTitle(getString(R.string.restoring_backup)) + .setSmallIcon(R.drawable.ic_unarchive_24dp) + .setProgress(max, progress, max == 1 && progress == 0); + return mBuilder.build(); + } + + private boolean importBackup(final Uri uri, final String password) { + Log.d(Config.LOGTAG, "importing backup from " + uri); + final Stopwatch stopwatch = Stopwatch.createStarted(); + try { + final SQLiteDatabase db = mDatabaseBackend.getWritableDatabase(); + final InputStream inputStream; + final String path = uri.getPath(); + final long fileSize; + if ("file".equals(uri.getScheme()) && path != null) { + final File file = new File(path); + inputStream = new FileInputStream(file); + fileSize = file.length(); + } else { + final Cursor returnCursor = getContentResolver().query(uri, null, null, null, null); + if (returnCursor == null) { + fileSize = 0; + } else { + returnCursor.moveToFirst(); + fileSize = + returnCursor.getLong( + returnCursor.getColumnIndexOrThrow(OpenableColumns.SIZE)); + returnCursor.close(); + } + inputStream = getContentResolver().openInputStream(uri); + } + if (inputStream == null) { + synchronized (mOnBackupProcessedListeners) { + for (final OnBackupProcessed l : mOnBackupProcessedListeners) { + l.onBackupRestoreFailed(); + } + } + return false; + } + final CountingInputStream countingInputStream = new CountingInputStream(inputStream); + final DataInputStream dataInputStream = new DataInputStream(countingInputStream); + final BackupFileHeader backupFileHeader = BackupFileHeader.read(dataInputStream); + Log.d(Config.LOGTAG, backupFileHeader.toString()); + + if (mDatabaseBackend.getAccountJids(false).contains(backupFileHeader.getJid())) { + synchronized (mOnBackupProcessedListeners) { + for (OnBackupProcessed l : mOnBackupProcessedListeners) { + l.onAccountAlreadySetup(); + } + } + return false; + } + + final byte[] key = ExportBackupWorker.getKey(password, backupFileHeader.getSalt()); + + final AEADBlockCipher cipher = new GCMBlockCipher(new AESEngine()); + cipher.init( + false, + new AEADParameters(new KeyParameter(key), 128, backupFileHeader.getIv())); + final CipherInputStream cipherInputStream = + new CipherInputStream(countingInputStream, cipher); + + final GZIPInputStream gzipInputStream = new GZIPInputStream(cipherInputStream); + final BufferedReader reader = + new BufferedReader(new InputStreamReader(gzipInputStream, Charsets.UTF_8)); + final JsonReader jsonReader = new JsonReader(reader); + if (jsonReader.peek() == JsonToken.BEGIN_ARRAY) { + jsonReader.beginArray(); + } else { + throw new IllegalStateException("Backup file did not begin with array"); + } + db.beginTransaction(); + while (jsonReader.hasNext()) { + if (jsonReader.peek() == JsonToken.BEGIN_OBJECT) { + importRow(db, jsonReader, backupFileHeader.getJid(), password); + } else if (jsonReader.peek() == JsonToken.END_ARRAY) { + jsonReader.endArray(); + continue; + } + updateImportBackupNotification(fileSize, countingInputStream.getCount()); + } + db.setTransactionSuccessful(); + db.endTransaction(); + final Jid jid = backupFileHeader.getJid(); + final Cursor countCursor = + db.rawQuery( + "select count(messages.uuid) from messages join conversations on conversations.uuid=messages.conversationUuid join accounts on conversations.accountUuid=accounts.uuid where accounts.username=? and accounts.server=?", + new String[] { + jid.getEscapedLocal(), jid.getDomain().toEscapedString() + }); + countCursor.moveToFirst(); + final int count = countCursor.getInt(0); + Log.d( + Config.LOGTAG, + String.format( + "restored %d messages in %s", count, stopwatch.stop().toString())); + countCursor.close(); + stopBackgroundService(); + synchronized (mOnBackupProcessedListeners) { + for (OnBackupProcessed l : mOnBackupProcessedListeners) { + l.onBackupRestored(); + } + } + return true; + } catch (final Exception e) { + final Throwable throwable = e.getCause(); + final boolean reasonWasCrypto = + throwable instanceof BadPaddingException || e instanceof ZipException; + synchronized (mOnBackupProcessedListeners) { + for (OnBackupProcessed l : mOnBackupProcessedListeners) { + if (reasonWasCrypto) { + l.onBackupDecryptionFailed(); + } else { + l.onBackupRestoreFailed(); + } + } + } + Log.d(Config.LOGTAG, "error restoring backup " + uri, e); + return false; + } + } + + private void importRow( + final SQLiteDatabase db, + final JsonReader jsonReader, + final Jid account, + final String passphrase) + throws IOException { + jsonReader.beginObject(); + final String firstParameter = jsonReader.nextName(); + if (!firstParameter.equals("table")) { + throw new IllegalStateException("Expected key 'table'"); + } + final String table = jsonReader.nextString(); + if (!TABLE_ALLOW_LIST.contains(table)) { + throw new IOException(String.format("%s is not recognized for import", table)); + } + final ContentValues contentValues = new ContentValues(); + final String secondParameter = jsonReader.nextName(); + if (!secondParameter.equals("values")) { + throw new IllegalStateException("Expected key 'values'"); + } + jsonReader.beginObject(); + while (jsonReader.peek() != JsonToken.END_OBJECT) { + final String name = jsonReader.nextName(); + if (COLUMN_PATTERN.matcher(name).matches()) { + if (jsonReader.peek() == JsonToken.NULL) { + jsonReader.nextNull(); + contentValues.putNull(name); + } else if (jsonReader.peek() == JsonToken.NUMBER) { + contentValues.put(name, jsonReader.nextLong()); + } else { + contentValues.put(name, jsonReader.nextString()); + } + } else { + throw new IOException(String.format("Unexpected column name %s", name)); + } + } + jsonReader.endObject(); + jsonReader.endObject(); + if (Account.TABLENAME.equals(table)) { + final Jid jid = + Jid.of( + contentValues.getAsString(Account.USERNAME), + contentValues.getAsString(Account.SERVER), + null); + final String password = contentValues.getAsString(Account.PASSWORD); + if (jid.equals(account) && passphrase.equals(password)) { + Log.d(Config.LOGTAG, "jid and password from backup header had matching row"); + } else { + throw new IOException("jid or password in table did not match backup"); + } + } + db.insert(table, null, contentValues); + } + + private void notifySuccess() { + NotificationCompat.Builder mBuilder = + new NotificationCompat.Builder(getBaseContext(), "backup"); + mBuilder.setContentTitle(getString(R.string.notification_restored_backup_title)) + .setContentText(getString(R.string.notification_restored_backup_subtitle)) + .setAutoCancel(true) + .setContentIntent( + PendingIntent.getActivity( + this, + 145, + new Intent(this, ManageAccountActivity.class), + s() + ? PendingIntent.FLAG_IMMUTABLE + | PendingIntent.FLAG_UPDATE_CURRENT + : PendingIntent.FLAG_UPDATE_CURRENT)) + .setSmallIcon(R.drawable.ic_unarchive_24dp); + notificationManager.notify(NOTIFICATION_ID, mBuilder.build()); + } + + private void stopBackgroundService() { + Intent intent = new Intent(this, XmppConnectionService.class); + stopService(intent); + } + + public void removeOnBackupProcessedListener(OnBackupProcessed listener) { + synchronized (mOnBackupProcessedListeners) { + mOnBackupProcessedListeners.remove(listener); + } + } + + public void addOnBackupProcessedListener(OnBackupProcessed listener) { + synchronized (mOnBackupProcessedListeners) { + mOnBackupProcessedListeners.add(listener); + } + } + + public static ListenableFuture read(final Context context, final Uri uri) { + return Futures.submit(() -> BackupFile.read(context, uri), BACKUP_FILE_READER_EXECUTOR); + } + + @Override + public IBinder onBind(Intent intent) { + return this.binder; + } + + public interface OnBackupFilesLoaded { + void onBackupFilesLoaded(List files); + } + + public interface OnBackupProcessed { + void onBackupRestored(); + + void onBackupDecryptionFailed(); + + void onBackupRestoreFailed(); + + void onAccountAlreadySetup(); + } + + public static class BackupFile { + private final Uri uri; + private final BackupFileHeader header; + + private BackupFile(Uri uri, BackupFileHeader header) { + this.uri = uri; + this.header = header; + } + + private static BackupFile read(File file) throws IOException { + final FileInputStream fileInputStream = new FileInputStream(file); + final DataInputStream dataInputStream = new DataInputStream(fileInputStream); + BackupFileHeader backupFileHeader = BackupFileHeader.read(dataInputStream); + fileInputStream.close(); + return new BackupFile(Uri.fromFile(file), backupFileHeader); + } + + public static BackupFile read(final Context context, final Uri uri) throws IOException { + final InputStream inputStream = context.getContentResolver().openInputStream(uri); + if (inputStream == null) { + throw new FileNotFoundException(); + } + final DataInputStream dataInputStream = new DataInputStream(inputStream); + final BackupFileHeader backupFileHeader = BackupFileHeader.read(dataInputStream); + inputStream.close(); + return new BackupFile(uri, backupFileHeader); + } + + public BackupFileHeader getHeader() { + return header; + } + + public Uri getUri() { + return uri; + } + } + + public class ImportBackupServiceBinder extends Binder { + public ImportBackupService getService() { + return ImportBackupService.this; + } + } +} diff --git a/src/conversations/java/eu/siacs/conversations/services/QuickConversationsService.java b/src/conversations/java/eu/siacs/conversations/services/QuickConversationsService.java new file mode 100644 index 000000000..b2a0d17f4 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/services/QuickConversationsService.java @@ -0,0 +1,38 @@ +package eu.siacs.conversations.services; + +import android.content.Intent; +import android.util.Log; + +import eu.siacs.conversations.Config; + +public class QuickConversationsService extends AbstractQuickConversationsService { + + QuickConversationsService(XmppConnectionService xmppConnectionService) { + super(xmppConnectionService); + } + + @Override + public void considerSync() { + + } + + @Override + public void signalAccountStateChange() { + + } + + @Override + public boolean isSynchronizing() { + return false; + } + + @Override + public void considerSyncBackground(boolean force) { + + } + + @Override + public void handleSmsReceived(Intent intent) { + Log.d(Config.LOGTAG,"ignoring received SMS"); + } +} \ No newline at end of file diff --git a/src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java b/src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java new file mode 100644 index 000000000..9228a5170 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java @@ -0,0 +1,187 @@ +package eu.siacs.conversations.ui; + +import android.app.Activity; +import android.content.Intent; +import android.content.res.Configuration; +import android.graphics.Bitmap; +import android.graphics.Point; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; + +import com.google.android.material.color.MaterialColors; +import com.google.common.base.Strings; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityEasyInviteBinding; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.services.BarcodeProvider; +import eu.siacs.conversations.utils.EasyOnboardingInvite; +import eu.siacs.conversations.xmpp.Jid; + +public class EasyOnboardingInviteActivity extends XmppActivity + implements EasyOnboardingInvite.OnInviteRequested { + + private ActivityEasyInviteBinding binding; + + private EasyOnboardingInvite easyOnboardingInvite; + + @Override + public void onCreate(final Bundle bundle) { + super.onCreate(bundle); + this.binding = DataBindingUtil.setContentView(this, R.layout.activity_easy_invite); + setSupportActionBar(binding.toolbar); + configureActionBar(getSupportActionBar(), true); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + this.binding.shareButton.setOnClickListener(v -> share()); + if (bundle != null && bundle.containsKey("invite")) { + this.easyOnboardingInvite = bundle.getParcelable("invite"); + if (this.easyOnboardingInvite != null) { + showInvite(this.easyOnboardingInvite); + return; + } + } + this.showLoading(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.easy_onboarding_invite, menu); + final MenuItem share = menu.findItem(R.id.action_share); + share.setVisible(easyOnboardingInvite != null); + return super.onCreateOptionsMenu(menu); + } + + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == R.id.action_share) { + share(); + return true; + } else { + return super.onOptionsItemSelected(menuItem); + } + } + + private void share() { + final String shareText = + getString( + R.string.easy_invite_share_text, + easyOnboardingInvite.getDomain(), + easyOnboardingInvite.getShareableLink()); + final Intent sendIntent = new Intent(); + sendIntent.setAction(Intent.ACTION_SEND); + sendIntent.putExtra(Intent.EXTRA_TEXT, shareText); + sendIntent.setType("text/plain"); + startActivity(Intent.createChooser(sendIntent, getString(R.string.share_invite_with))); + } + + @Override + protected void refreshUiReal() { + invalidateOptionsMenu(); + if (easyOnboardingInvite != null) { + showInvite(easyOnboardingInvite); + } else { + showLoading(); + } + } + + private void showLoading() { + this.binding.inProgress.setVisibility(View.VISIBLE); + this.binding.invite.setVisibility(View.GONE); + } + + private void showInvite(final EasyOnboardingInvite invite) { + this.binding.inProgress.setVisibility(View.GONE); + this.binding.invite.setVisibility(View.VISIBLE); + this.binding.tapToShare.setText( + getString(R.string.tap_share_button_send_invite, invite.getDomain())); + final Point size = new Point(); + getWindowManager().getDefaultDisplay().getSize(size); + final int width = Math.min(size.x, size.y); + final boolean nightMode = + (this.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) + == Configuration.UI_MODE_NIGHT_YES; + final int black; + final int white; + if (nightMode) { + black = + MaterialColors.getColor( + this, + com.google.android.material.R.attr.colorSurface, + "No surface color configured"); + white = + MaterialColors.getColor( + this, + com.google.android.material.R.attr.colorSurfaceInverse, + "No inverse surface color configured"); + } else { + black = + MaterialColors.getColor( + this, + com.google.android.material.R.attr.colorSurfaceInverse, + "No inverse surface color configured"); + white = + MaterialColors.getColor( + this, + com.google.android.material.R.attr.colorSurface, + "No surface color configured"); + } + final Bitmap bitmap = + BarcodeProvider.create2dBarcodeBitmap( + invite.getShareableLink(), width, black, white); + binding.qrCode.setImageBitmap(bitmap); + } + + @Override + public void onSaveInstanceState(@NonNull Bundle bundle) { + super.onSaveInstanceState(bundle); + if (easyOnboardingInvite != null) { + bundle.putParcelable("invite", easyOnboardingInvite); + } + } + + @Override + protected void onBackendConnected() { + if (easyOnboardingInvite != null) { + return; + } + final Intent launchIntent = getIntent(); + final String accountExtra = launchIntent.getStringExtra(EXTRA_ACCOUNT); + final Jid jid = accountExtra == null ? null : Jid.ofEscaped(accountExtra); + if (jid == null) { + return; + } + final Account account = xmppConnectionService.findAccountByJid(jid); + xmppConnectionService.requestEasyOnboardingInvite(account, this); + } + + public static void launch(final Account account, final Activity context) { + final Intent intent = new Intent(context, EasyOnboardingInviteActivity.class); + intent.putExtra(EXTRA_ACCOUNT, account.getJid().asBareJid().toEscapedString()); + context.startActivity(intent); + } + + @Override + public void inviteRequested(EasyOnboardingInvite invite) { + this.easyOnboardingInvite = invite; + Log.d(Config.LOGTAG, "invite requested"); + refreshUi(); + } + + @Override + public void inviteRequestFailed(final String message) { + runOnUiThread( + () -> { + if (!Strings.isNullOrEmpty(message)) { + Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + } + finish(); + }); + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java b/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java new file mode 100644 index 000000000..331857e29 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java @@ -0,0 +1,379 @@ +package eu.siacs.conversations.ui; + +import android.Manifest; +import android.content.ComponentName; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.ServiceConnection; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.IBinder; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; +import androidx.databinding.DataBindingUtil; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.snackbar.Snackbar; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityImportBackupBinding; +import eu.siacs.conversations.databinding.DialogEnterPasswordBinding; +import eu.siacs.conversations.services.ImportBackupService; +import eu.siacs.conversations.ui.adapter.BackupFileAdapter; +import eu.siacs.conversations.ui.util.MainThreadExecutor; +import eu.siacs.conversations.utils.BackupFileHeader; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +public class ImportBackupActivity extends ActionBarActivity + implements ServiceConnection, + ImportBackupService.OnBackupFilesLoaded, + BackupFileAdapter.OnItemClickedListener, + ImportBackupService.OnBackupProcessed { + + private ActivityImportBackupBinding binding; + + private BackupFileAdapter backupFileAdapter; + private ImportBackupService service; + + private boolean mLoadingState = false; + private final ActivityResultLauncher requestPermissions = + registerForActivityResult( + new ActivityResultContracts.RequestMultiplePermissions(), + results -> { + if (results.containsValue(Boolean.TRUE)) { + final var service = this.service; + if (service == null) { + return; + } + service.loadBackupFiles(this); + } + }); + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = DataBindingUtil.setContentView(this, R.layout.activity_import_backup); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + setSupportActionBar(binding.toolbar); + setLoadingState( + savedInstanceState != null + && savedInstanceState.getBoolean("loading_state", false)); + this.backupFileAdapter = new BackupFileAdapter(); + this.binding.list.setAdapter(this.backupFileAdapter); + this.backupFileAdapter.setOnItemClickedListener(this); + } + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.import_backup, menu); + final MenuItem openBackup = menu.findItem(R.id.action_open_backup_file); + openBackup.setVisible(!this.mLoadingState); + return true; + } + + @Override + public void onSaveInstanceState(Bundle bundle) { + bundle.putBoolean("loading_state", this.mLoadingState); + super.onSaveInstanceState(bundle); + } + + @Override + public void onStart() { + + super.onStart(); + bindService(new Intent(this, ImportBackupService.class), this, Context.BIND_AUTO_CREATE); + final Intent intent = getIntent(); + if (intent != null + && Intent.ACTION_VIEW.equals(intent.getAction()) + && !this.mLoadingState) { + Uri uri = intent.getData(); + if (uri != null) { + openBackupFileFromUri(uri, true); + return; + } + } + final List desiredPermission; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + desiredPermission = + ImmutableList.of( + Manifest.permission.READ_MEDIA_IMAGES, + Manifest.permission.READ_MEDIA_VIDEO, + Manifest.permission.READ_MEDIA_AUDIO, + Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED); + } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) { + desiredPermission = + ImmutableList.of( + Manifest.permission.READ_MEDIA_IMAGES, + Manifest.permission.READ_MEDIA_VIDEO, + Manifest.permission.READ_MEDIA_AUDIO); + } else { + desiredPermission = ImmutableList.of(Manifest.permission.READ_EXTERNAL_STORAGE); + } + final Set declaredPermission = getDeclaredPermission(); + if (declaredPermission.containsAll(desiredPermission)) { + requestPermissions.launch(desiredPermission.toArray(new String[0])); + } else { + Log.d(Config.LOGTAG, "Manifest is lacking some desired permission. not requesting"); + } + } + + private Set getDeclaredPermission() { + final String[] permissions; + try { + permissions = + getPackageManager() + .getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS) + .requestedPermissions; + } catch (final PackageManager.NameNotFoundException e) { + return Collections.emptySet(); + } + return ImmutableSet.copyOf(permissions); + } + + @Override + public void onStop() { + super.onStop(); + if (this.service != null) { + this.service.removeOnBackupProcessedListener(this); + } + unbindService(this); + } + + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + ImportBackupService.ImportBackupServiceBinder binder = + (ImportBackupService.ImportBackupServiceBinder) service; + this.service = binder.getService(); + this.service.addOnBackupProcessedListener(this); + setLoadingState(this.service.getLoadingState()); + this.service.loadBackupFiles(this); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + this.service = null; + } + + @Override + public void onBackupFilesLoaded(final List files) { + runOnUiThread(() -> backupFileAdapter.setFiles(files)); + } + + @Override + public void onClick(final ImportBackupService.BackupFile backupFile) { + showEnterPasswordDialog(backupFile, false); + } + + private void openBackupFileFromUri(final Uri uri, final boolean finishOnCancel) { + final var backupFileFuture = ImportBackupService.read(this, uri); + Futures.addCallback( + backupFileFuture, + new FutureCallback<>() { + @Override + public void onSuccess(final ImportBackupService.BackupFile backupFile) { + showEnterPasswordDialog(backupFile, finishOnCancel); + } + + @Override + public void onFailure(@NonNull final Throwable throwable) { + Log.d(Config.LOGTAG, "could not open backup file " + uri, throwable); + showBackupThrowable(throwable); + } + }, + MainThreadExecutor.getInstance()); + } + + private void showBackupThrowable(final Throwable throwable) { + if (throwable instanceof BackupFileHeader.OutdatedBackupFileVersion) { + Snackbar.make( + binding.coordinator, + R.string.outdated_backup_file_format, + Snackbar.LENGTH_LONG) + .show(); + } else if (throwable instanceof IOException + || throwable instanceof IllegalArgumentException) { + Snackbar.make(binding.coordinator, R.string.not_a_backup_file, Snackbar.LENGTH_LONG) + .show(); + } else if (throwable instanceof SecurityException e) { + Snackbar.make( + binding.coordinator, + R.string.sharing_application_not_grant_permission, + Snackbar.LENGTH_LONG) + .show(); + } + } + + private void showEnterPasswordDialog( + final ImportBackupService.BackupFile backupFile, final boolean finishOnCancel) { + final DialogEnterPasswordBinding enterPasswordBinding = + DataBindingUtil.inflate( + LayoutInflater.from(this), R.layout.dialog_enter_password, null, false); + Log.d(Config.LOGTAG, "attempting to import " + backupFile.getUri()); + enterPasswordBinding.explain.setText( + getString( + R.string.enter_password_to_restore, + backupFile.getHeader().getJid().toString())); + final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this); + builder.setView(enterPasswordBinding.getRoot()); + builder.setTitle(R.string.enter_password); + builder.setNegativeButton( + R.string.cancel, + (dialog, which) -> { + if (finishOnCancel) { + finish(); + } + }); + builder.setPositiveButton(R.string.restore, null); + builder.setCancelable(false); + final AlertDialog dialog = builder.create(); + dialog.setOnShowListener( + (d) -> { + dialog.getButton(DialogInterface.BUTTON_POSITIVE) + .setOnClickListener( + v -> { + final String password = + enterPasswordBinding + .accountPassword + .getEditableText() + .toString(); + if (password.isEmpty()) { + enterPasswordBinding.accountPasswordLayout.setError( + getString(R.string.please_enter_password)); + return; + } + final Intent intent = getIntent(backupFile, password); + setLoadingState(true); + ContextCompat.startForegroundService(this, intent); + d.dismiss(); + }); + }); + dialog.show(); + } + + @NonNull + private Intent getIntent(ImportBackupService.BackupFile backupFile, String password) { + final Uri uri = backupFile.getUri(); + Intent intent = new Intent(this, ImportBackupService.class); + intent.setAction(Intent.ACTION_SEND); + intent.putExtra("password", password); + if ("file".equals(uri.getScheme())) { + intent.putExtra("file", uri.getPath()); + } else { + intent.setData(uri); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + return intent; + } + + private void setLoadingState(final boolean loadingState) { + binding.coordinator.setVisibility(loadingState ? View.GONE : View.VISIBLE); + binding.inProgress.setVisibility(loadingState ? View.VISIBLE : View.GONE); + setTitle(loadingState ? R.string.restoring_backup : R.string.restore_backup); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + configureActionBar(getSupportActionBar(), !loadingState); + this.mLoadingState = loadingState; + invalidateOptionsMenu(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (resultCode == RESULT_OK) { + if (requestCode == 0xbac) { + openBackupFileFromUri(intent.getData(), false); + } + } + } + + @Override + public void onAccountAlreadySetup() { + runOnUiThread( + () -> { + setLoadingState(false); + Snackbar.make( + binding.coordinator, + R.string.account_already_setup, + Snackbar.LENGTH_LONG) + .show(); + }); + } + + @Override + public void onBackupRestored() { + runOnUiThread( + () -> { + Intent intent = new Intent(this, ConversationActivity.class); + intent.addFlags( + Intent.FLAG_ACTIVITY_CLEAR_TOP + | Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_CLEAR_TASK); + startActivity(intent); + finish(); + }); + } + + @Override + public void onBackupDecryptionFailed() { + runOnUiThread( + () -> { + setLoadingState(false); + Snackbar.make( + binding.coordinator, + R.string.unable_to_decrypt_backup, + Snackbar.LENGTH_LONG) + .show(); + }); + } + + @Override + public void onBackupRestoreFailed() { + runOnUiThread( + () -> { + setLoadingState(false); + Snackbar.make( + binding.coordinator, + R.string.unable_to_restore_backup, + Snackbar.LENGTH_LONG) + .show(); + }); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == R.id.action_open_backup_file) { + openBackupFile(); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void openBackupFile() { + final Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("*/*"); + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false); + intent.addCategory(Intent.CATEGORY_OPENABLE); + startActivityForResult( + Intent.createChooser(intent, getString(R.string.open_backup)), 0xbac); + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java b/src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java new file mode 100644 index 000000000..b6d4d452e --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java @@ -0,0 +1,161 @@ +package eu.siacs.conversations.ui; + +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.Toast; + +import androidx.databinding.DataBindingUtil; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityMagicCreateBinding; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.utils.CryptoHelper; +import eu.siacs.conversations.utils.InstallReferrerUtils; +import eu.siacs.conversations.xmpp.Jid; + +import java.security.SecureRandom; + +public class MagicCreateActivity extends XmppActivity implements TextWatcher { + + public static final String EXTRA_DOMAIN = "domain"; + public static final String EXTRA_PRE_AUTH = "pre_auth"; + public static final String EXTRA_USERNAME = "username"; + + private ActivityMagicCreateBinding binding; + private String domain; + private String username; + private String preAuth; + + @Override + protected void refreshUiReal() {} + + @Override + protected void onBackendConnected() {} + + @Override + protected void onCreate(final Bundle savedInstanceState) { + final Intent data = getIntent(); + this.domain = data == null ? null : data.getStringExtra(EXTRA_DOMAIN); + this.preAuth = data == null ? null : data.getStringExtra(EXTRA_PRE_AUTH); + this.username = data == null ? null : data.getStringExtra(EXTRA_USERNAME); + if (getResources().getBoolean(R.bool.portrait_only)) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + super.onCreate(savedInstanceState); + this.binding = DataBindingUtil.setContentView(this, R.layout.activity_magic_create); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + setSupportActionBar(this.binding.toolbar); + configureActionBar(getSupportActionBar(), this.domain == null); + if (username != null && domain != null) { + binding.title.setText(R.string.your_server_invitation); + binding.instructions.setText(getString(R.string.magic_create_text_fixed, domain)); + binding.username.setEnabled(false); + binding.username.setText(this.username); + updateFullJidInformation(this.username); + } else if (domain != null) { + binding.instructions.setText(getString(R.string.magic_create_text_on_x, domain)); + } + binding.createAccount.setOnClickListener( + v -> { + try { + final String username = binding.username.getText().toString(); + final Jid jid; + final boolean fixedUsername; + if (this.domain != null && this.username != null) { + fixedUsername = true; + jid = Jid.ofLocalAndDomainEscaped(this.username, this.domain); + } else if (this.domain != null) { + fixedUsername = false; + jid = Jid.ofLocalAndDomainEscaped(username, this.domain); + } else { + fixedUsername = false; + jid = Jid.ofLocalAndDomainEscaped(username, Config.MAGIC_CREATE_DOMAIN); + } + if (!jid.getEscapedLocal().equals(jid.getLocal()) + || (this.username == null && username.length() < 3)) { + binding.usernameLayout.setError(getString(R.string.invalid_username)); + binding.username.requestFocus(); + } else { + binding.usernameLayout.setError(null); + Account account = xmppConnectionService.findAccountByJid(jid); + if (account == null) { + account = + new Account( + jid, + CryptoHelper.createPassword(new SecureRandom())); + account.setOption(Account.OPTION_REGISTER, true); + account.setOption(Account.OPTION_DISABLED, true); + account.setOption(Account.OPTION_MAGIC_CREATE, true); + account.setOption(Account.OPTION_FIXED_USERNAME, fixedUsername); + if (this.preAuth != null) { + account.setKey( + Account.KEY_PRE_AUTH_REGISTRATION_TOKEN, this.preAuth); + } + xmppConnectionService.createAccount(account); + } + Intent intent = + new Intent(MagicCreateActivity.this, EditAccountActivity.class); + intent.putExtra("jid", account.getJid().asBareJid().toString()); + intent.putExtra("init", true); + intent.setFlags( + Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_CLEAR_TASK); + Toast.makeText( + MagicCreateActivity.this, + R.string.secure_password_generated, + Toast.LENGTH_SHORT) + .show(); + StartConversationActivity.addInviteUri(intent, getIntent()); + startActivity(intent); + } + } catch (final IllegalArgumentException e) { + binding.usernameLayout.setError(getString(R.string.invalid_username)); + binding.username.requestFocus(); + } + }); + binding.username.addTextChangedListener(this); + } + + @Override + public void onDestroy() { + InstallReferrerUtils.markInstallReferrerExecuted(this); + super.onDestroy(); + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) {} + + @Override + public void afterTextChanged(final Editable s) { + updateFullJidInformation(s.toString()); + } + + private void updateFullJidInformation(final String username) { + if (username.trim().isEmpty()) { + binding.fullJid.setVisibility(View.INVISIBLE); + } else { + try { + binding.fullJid.setVisibility(View.VISIBLE); + final Jid jid; + if (this.domain == null) { + jid = Jid.ofLocalAndDomainEscaped(username, Config.MAGIC_CREATE_DOMAIN); + } else { + jid = Jid.ofLocalAndDomainEscaped(username, this.domain); + } + binding.fullJid.setText( + getString(R.string.your_full_jid_will_be, jid.toEscapedString())); + binding.usernameLayout.setError(null); + } catch (final IllegalArgumentException e) { + binding.fullJid.setVisibility(View.INVISIBLE); + } + } + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java new file mode 100644 index 000000000..2f4c81671 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -0,0 +1,433 @@ +package eu.siacs.conversations.ui; + +import static eu.siacs.conversations.utils.PermissionUtils.allGranted; +import static eu.siacs.conversations.utils.PermissionUtils.writeGranted; + +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.os.Bundle; +import android.security.KeyChain; +import android.security.KeyChainAliasCallback; +import android.util.Log; +import android.util.Pair; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.databinding.DataBindingUtil; + +import com.google.common.base.Strings; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityManageAccountsBinding; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate; +import eu.siacs.conversations.ui.adapter.AccountAdapter; +import eu.siacs.conversations.ui.util.MenuDoubleTabUtil; +import eu.siacs.conversations.xmpp.Jid; +import eu.siacs.conversations.xmpp.XmppConnection; + +import org.openintents.openpgp.util.OpenPgpApi; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; + +public class ManageAccountActivity extends XmppActivity + implements OnAccountUpdate, + KeyChainAliasCallback, + XmppConnectionService.OnAccountCreated, + AccountAdapter.OnTglAccountState { + + private final String STATE_SELECTED_ACCOUNT = "selected_account"; + + private static final int REQUEST_IMPORT_BACKUP = 0x63fb; + + protected Account selectedAccount = null; + protected Jid selectedAccountJid = null; + + protected final List accountList = new ArrayList<>(); + protected AccountAdapter mAccountAdapter; + protected AtomicBoolean mInvokedAddAccount = new AtomicBoolean(false); + + protected Pair mPostponedActivityResult = null; + + @Override + public void onAccountUpdate() { + refreshUi(); + } + + @Override + protected void refreshUiReal() { + synchronized (this.accountList) { + accountList.clear(); + accountList.addAll(xmppConnectionService.getAccounts()); + } + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setHomeButtonEnabled(this.accountList.size() > 0); + actionBar.setDisplayHomeAsUpEnabled(this.accountList.size() > 0); + } + invalidateOptionsMenu(); + mAccountAdapter.notifyDataSetChanged(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + + super.onCreate(savedInstanceState); + + ActivityManageAccountsBinding binding = + DataBindingUtil.setContentView(this, R.layout.activity_manage_accounts); + + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + setSupportActionBar(binding.toolbar); + configureActionBar(getSupportActionBar()); + if (savedInstanceState != null) { + String jid = savedInstanceState.getString(STATE_SELECTED_ACCOUNT); + if (jid != null) { + try { + this.selectedAccountJid = Jid.ofEscaped(jid); + } catch (IllegalArgumentException e) { + this.selectedAccountJid = null; + } + } + } + + this.mAccountAdapter = new AccountAdapter(this, accountList); + binding.accountList.setAdapter(this.mAccountAdapter); + binding.accountList.setOnItemClickListener( + (arg0, view, position, arg3) -> switchToAccount(accountList.get(position))); + registerForContextMenu(binding.accountList); + } + + + @Override + public void onSaveInstanceState(@NonNull final Bundle savedInstanceState) { + if (selectedAccount != null) { + savedInstanceState.putString( + STATE_SELECTED_ACCOUNT, selectedAccount.getJid().asBareJid().toEscapedString()); + } + super.onSaveInstanceState(savedInstanceState); + } + + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + super.onCreateContextMenu(menu, v, menuInfo); + ManageAccountActivity.this.getMenuInflater().inflate(R.menu.manageaccounts_context, menu); + AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) menuInfo; + this.selectedAccount = accountList.get(acmi.position); + if (this.selectedAccount.isEnabled()) { + menu.findItem(R.id.mgmt_account_enable).setVisible(false); + menu.findItem(R.id.mgmt_account_announce_pgp).setVisible(Config.supportOpenPgp()); + } else { + menu.findItem(R.id.mgmt_account_disable).setVisible(false); + menu.findItem(R.id.mgmt_account_announce_pgp).setVisible(false); + menu.findItem(R.id.mgmt_account_publish_avatar).setVisible(false); + } + menu.setHeaderTitle(this.selectedAccount.getJid().asBareJid().toEscapedString()); + } + + @Override + protected void onBackendConnected() { + if (selectedAccountJid != null) { + this.selectedAccount = xmppConnectionService.findAccountByJid(selectedAccountJid); + } + refreshUiReal(); + if (this.mPostponedActivityResult != null) { + this.onActivityResult( + mPostponedActivityResult.first, RESULT_OK, mPostponedActivityResult.second); + } + if (Config.X509_VERIFICATION && this.accountList.isEmpty()) { + if (mInvokedAddAccount.compareAndSet(false, true)) { + addAccountFromKey(); + } + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.manageaccounts, menu); + MenuItem enableAll = menu.findItem(R.id.action_enable_all); + MenuItem addAccount = menu.findItem(R.id.action_add_account); + MenuItem addAccountWithCertificate = menu.findItem(R.id.action_add_account_with_cert); + + if (Config.X509_VERIFICATION) { + addAccount.setVisible(false); + addAccountWithCertificate.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } + + if (!accountsLeftToEnable()) { + enableAll.setVisible(false); + } + MenuItem disableAll = menu.findItem(R.id.action_disable_all); + if (!accountsLeftToDisable()) { + disableAll.setVisible(false); + } + return true; + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.mgmt_account_publish_avatar: + publishAvatar(selectedAccount); + return true; + case R.id.mgmt_account_disable: + disableAccount(selectedAccount); + return true; + case R.id.mgmt_account_enable: + enableAccount(selectedAccount); + return true; + case R.id.mgmt_account_delete: + deleteAccount(selectedAccount); + return true; + case R.id.mgmt_account_announce_pgp: + publishOpenPGPPublicKey(selectedAccount); + return true; + default: + return super.onContextItemSelected(item); + } + } + + @Override + protected void deleteAccount(final Account account) { + super.deleteAccount(account); + this.selectedAccount = null; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (MenuDoubleTabUtil.shouldIgnoreTap()) { + return false; + } + switch (item.getItemId()) { + case R.id.action_add_account: + startActivity(new Intent(this, EditAccountActivity.class)); + break; + case R.id.action_import_backup: + if (hasStoragePermission(REQUEST_IMPORT_BACKUP)) { + startActivity(new Intent(this, ImportBackupActivity.class)); + } + break; + case R.id.action_disable_all: + disableAllAccounts(); + break; + case R.id.action_enable_all: + enableAllAccounts(); + break; + case R.id.action_add_account_with_cert: + addAccountFromKey(); + break; + default: + break; + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onRequestPermissionsResult( + int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (grantResults.length > 0) { + if (allGranted(grantResults)) { + switch (requestCode) { + case REQUEST_IMPORT_BACKUP: + startActivity(new Intent(this, ImportBackupActivity.class)); + break; + } + } else { + Toast.makeText(this, R.string.no_storage_permission, Toast.LENGTH_SHORT).show(); + } + } + if (writeGranted(grantResults, permissions)) { + if (xmppConnectionService != null) { + xmppConnectionService.restartFileObserver(); + } + } + } + + @Override + public boolean onNavigateUp() { + if (xmppConnectionService.getConversations().size() == 0) { + Intent contactsIntent = new Intent(this, StartConversationActivity.class); + contactsIntent.setFlags( + // if activity exists in stack, pop the stack and go back to it + Intent.FLAG_ACTIVITY_CLEAR_TOP + | + // otherwise, make a new task for it + Intent.FLAG_ACTIVITY_NEW_TASK + | + // don't use the new activity animation; finish + // animation runs instead + Intent.FLAG_ACTIVITY_NO_ANIMATION); + startActivity(contactsIntent); + finish(); + return true; + } else { + return super.onNavigateUp(); + } + } + + @Override + public void onClickTglAccountState(Account account, boolean enable) { + if (enable) { + enableAccount(account); + } else { + disableAccount(account); + } + } + + private void addAccountFromKey() { + Log.d(Config.LOGTAG, "add account from key"); + try { + KeyChain.choosePrivateKeyAlias(this, this, null, null, null, -1, null); + } catch (final ActivityNotFoundException e) { + Toast.makeText(this, R.string.device_does_not_support_certificates, Toast.LENGTH_LONG) + .show(); + } + } + + private void publishAvatar(Account account) { + Intent intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class); + intent.putExtra(EXTRA_ACCOUNT, account.getJid().asBareJid().toEscapedString()); + startActivity(intent); + } + + private void disableAllAccounts() { + List list = new ArrayList<>(); + synchronized (this.accountList) { + for (Account account : this.accountList) { + if (account.isEnabled()) { + list.add(account); + } + } + } + for (Account account : list) { + disableAccount(account); + } + } + + private boolean accountsLeftToDisable() { + synchronized (this.accountList) { + for (Account account : this.accountList) { + if (account.isEnabled()) { + return true; + } + } + return false; + } + } + + private boolean accountsLeftToEnable() { + synchronized (this.accountList) { + for (Account account : this.accountList) { + if (!account.isEnabled()) { + return true; + } + } + return false; + } + } + + private void enableAllAccounts() { + List list = new ArrayList<>(); + synchronized (this.accountList) { + for (Account account : this.accountList) { + if (!account.isEnabled()) { + list.add(account); + } + } + } + for (Account account : list) { + enableAccount(account); + } + } + + private void disableAccount(Account account) { + account.setOption(Account.OPTION_DISABLED, true); + if (!xmppConnectionService.updateAccount(account)) { + Toast.makeText(this, R.string.unable_to_update_account, Toast.LENGTH_SHORT).show(); + } + } + + private void enableAccount(Account account) { + account.setOption(Account.OPTION_DISABLED, false); + account.setOption(Account.OPTION_SOFT_DISABLED, false); + final XmppConnection connection = account.getXmppConnection(); + if (connection != null) { + connection.resetEverything(); + } + if (!xmppConnectionService.updateAccount(account)) { + Toast.makeText(this, R.string.unable_to_update_account, Toast.LENGTH_SHORT).show(); + } + } + + private void publishOpenPGPPublicKey(Account account) { + if (ManageAccountActivity.this.hasPgp()) { + announcePgp(selectedAccount, null, null, onOpenPGPKeyPublished); + } else { + this.showInstallPgpDialog(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + if (xmppConnectionServiceBound) { + if (requestCode == REQUEST_CHOOSE_PGP_ID) { + if (data.getExtras().containsKey(OpenPgpApi.EXTRA_SIGN_KEY_ID)) { + selectedAccount.setPgpSignId( + data.getExtras().getLong(OpenPgpApi.EXTRA_SIGN_KEY_ID)); + announcePgp(selectedAccount, null, null, onOpenPGPKeyPublished); + } else { + choosePgpSignId(selectedAccount); + } + } else if (requestCode == REQUEST_ANNOUNCE_PGP) { + announcePgp(selectedAccount, null, data, onOpenPGPKeyPublished); + } + this.mPostponedActivityResult = null; + } else { + this.mPostponedActivityResult = new Pair<>(requestCode, data); + } + } + } + + @Override + public void alias(final String alias) { + if (Strings.isNullOrEmpty(alias)) { + runOnUiThread( + () -> + Toast.makeText( + this, + R.string.no_certificate_selected, + Toast.LENGTH_LONG) + .show()); + return; + } + xmppConnectionService.createAccountFromKey(alias, this); + } + + @Override + public void onAccountCreated(final Account account) { + final Intent intent = new Intent(this, EditAccountActivity.class); + intent.putExtra("jid", account.getJid().asBareJid().toString()); + intent.putExtra("init", true); + startActivity(intent); + } + + @Override + public void informUser(final int r) { + runOnUiThread( + () -> Toast.makeText(ManageAccountActivity.this, r, Toast.LENGTH_LONG).show()); + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java b/src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java new file mode 100644 index 000000000..f96a17ffc --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java @@ -0,0 +1,97 @@ +package eu.siacs.conversations.ui; + +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.os.Bundle; +import android.view.MenuItem; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import java.util.List; + +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityPickServerBinding; +import eu.siacs.conversations.entities.Account; + +public class PickServerActivity extends XmppActivity { + + @Override + protected void refreshUiReal() { + + } + + @Override + protected void onBackendConnected() { + + } + + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + if (item.getItemId() == android.R.id.home) { + startActivity(new Intent(this, WelcomeActivity.class)); + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + startActivity(new Intent(this, WelcomeActivity.class)); + super.onBackPressed(); + } + + @Override + public void onNewIntent(final Intent intent) { + super.onNewIntent(intent); + if (intent != null) { + setIntent(intent); + } + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + if (getResources().getBoolean(R.bool.portrait_only)) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + super.onCreate(savedInstanceState); + ActivityPickServerBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_pick_server); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + setSupportActionBar(binding.toolbar); + configureActionBar(getSupportActionBar()); + binding.useCim.setOnClickListener(v -> { + final Intent intent = new Intent(this, MagicCreateActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + addInviteUri(intent); + startActivity(intent); + }); + binding.useOwnProvider.setOnClickListener(v -> { + List accounts = xmppConnectionService.getAccounts(); + Intent intent = new Intent(this, EditAccountActivity.class); + intent.putExtra(EditAccountActivity.EXTRA_FORCE_REGISTER, true); + if (accounts.size() == 1) { + intent.putExtra("jid", accounts.get(0).getJid().asBareJid().toString()); + intent.putExtra("init", true); + } else if (!accounts.isEmpty()) { + intent = new Intent(this, ManageAccountActivity.class); + } + addInviteUri(intent); + startActivity(intent); + }); + + } + + public void addInviteUri(Intent intent) { + StartConversationActivity.addInviteUri(intent, getIntent()); + } + + public static void launch(AppCompatActivity activity) { + Intent intent = new Intent(activity, PickServerActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + activity.startActivity(intent); + activity.overridePendingTransition(0, 0); + } + +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java b/src/conversations/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java new file mode 100644 index 000000000..0b20e26c5 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java @@ -0,0 +1,81 @@ +package eu.siacs.conversations.ui; + +import android.os.Bundle; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.List; + +import eu.siacs.conversations.R; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.entities.Conversation; +import eu.siacs.conversations.ui.adapter.AccountAdapter; +import eu.siacs.conversations.xmpp.Jid; + +public class ShareViaAccountActivity extends XmppActivity { + public static final String EXTRA_CONTACT = "contact"; + public static final String EXTRA_BODY = "body"; + + protected final List accountList = new ArrayList<>(); + protected ListView accountListView; + protected AccountAdapter mAccountAdapter; + + @Override + protected void refreshUiReal() { + synchronized (this.accountList) { + accountList.clear(); + accountList.addAll(xmppConnectionService.getAccounts()); + } + mAccountAdapter.notifyDataSetChanged(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_manage_accounts); + setSupportActionBar(findViewById(R.id.toolbar)); + configureActionBar(getSupportActionBar()); + accountListView = findViewById(R.id.account_list); + this.mAccountAdapter = new AccountAdapter(this, accountList, false); + accountListView.setAdapter(this.mAccountAdapter); + accountListView.setOnItemClickListener((arg0, view, position, arg3) -> { + final Account account = accountList.get(position); + final String body = getIntent().getStringExtra(EXTRA_BODY); + + try { + final Jid contact = Jid.of(getIntent().getStringExtra(EXTRA_CONTACT)); + final Conversation conversation = xmppConnectionService.findOrCreateConversation( + account, contact, false, false); + switchToConversation(conversation, body); + } catch (IllegalArgumentException e) { + // ignore error + } + + finish(); + }); + } + + @Override + protected void onBackendConnected() { + final int numAccounts = xmppConnectionService.getAccounts().size(); + + if (numAccounts == 1) { + final String body = getIntent().getStringExtra(EXTRA_BODY); + final Account account = xmppConnectionService.getAccounts().get(0); + + try { + final Jid contact = Jid.of(getIntent().getStringExtra(EXTRA_CONTACT)); + final Conversation conversation = xmppConnectionService.findOrCreateConversation( + account, contact, false, false); + switchToConversation(conversation, body); + } catch (IllegalArgumentException e) { + // ignore error + } + + finish(); + } else { + refreshUiReal(); + } + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java b/src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java new file mode 100644 index 000000000..b2a40976c --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java @@ -0,0 +1,244 @@ +package eu.siacs.conversations.ui; + +import android.Manifest; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.net.Uri; +import android.os.Bundle; +import android.security.KeyChain; +import android.security.KeyChainAliasCallback; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import java.util.Arrays; +import java.util.List; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ActivityWelcomeBinding; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.utils.Compatibility; +import eu.siacs.conversations.utils.InstallReferrerUtils; +import eu.siacs.conversations.utils.SignupUtils; +import eu.siacs.conversations.utils.XmppUri; +import eu.siacs.conversations.xmpp.Jid; + +import static eu.siacs.conversations.utils.PermissionUtils.allGranted; +import static eu.siacs.conversations.utils.PermissionUtils.writeGranted; + +import com.google.common.base.Strings; + +public class WelcomeActivity extends XmppActivity + implements XmppConnectionService.OnAccountCreated, KeyChainAliasCallback { + + private static final int REQUEST_IMPORT_BACKUP = 0x63fb; + + private XmppUri inviteUri; + + public static void launch(AppCompatActivity activity) { + Intent intent = new Intent(activity, WelcomeActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + activity.startActivity(intent); + activity.overridePendingTransition(0, 0); + } + + public void onInstallReferrerDiscovered(final Uri referrer) { + Log.d(Config.LOGTAG, "welcome activity: on install referrer discovered " + referrer); + if ("xmpp".equalsIgnoreCase(referrer.getScheme())) { + final XmppUri xmppUri = new XmppUri(referrer); + runOnUiThread(() -> processXmppUri(xmppUri)); + } else { + Log.i(Config.LOGTAG, "install referrer was not an XMPP uri"); + } + } + + private void processXmppUri(final XmppUri xmppUri) { + if (!xmppUri.isValidJid()) { + return; + } + final String preAuth = xmppUri.getParameter(XmppUri.PARAMETER_PRE_AUTH); + final Jid jid = xmppUri.getJid(); + final Intent intent; + if (xmppUri.isAction(XmppUri.ACTION_REGISTER)) { + intent = SignupUtils.getTokenRegistrationIntent(this, jid, preAuth); + } else if (xmppUri.isAction(XmppUri.ACTION_ROSTER) + && "y".equals(xmppUri.getParameter(XmppUri.PARAMETER_IBR))) { + intent = SignupUtils.getTokenRegistrationIntent(this, jid.getDomain(), preAuth); + intent.putExtra(StartConversationActivity.EXTRA_INVITE_URI, xmppUri.toString()); + } else { + intent = null; + } + if (intent != null) { + startActivity(intent); + finish(); + return; + } + this.inviteUri = xmppUri; + } + + @Override + protected void refreshUiReal() {} + + @Override + protected void onBackendConnected() {} + + @Override + public void onStart() { + super.onStart(); + new InstallReferrerUtils(this); + } + + @Override + public void onStop() { + super.onStop(); + } + + @Override + public void onNewIntent(final Intent intent) { + super.onNewIntent(intent); + if (intent != null) { + setIntent(intent); + } + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + if (getResources().getBoolean(R.bool.portrait_only)) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + super.onCreate(savedInstanceState); + ActivityWelcomeBinding binding = + DataBindingUtil.setContentView(this, R.layout.activity_welcome); + Activities.setStatusAndNavigationBarColors(this, binding.getRoot()); + setSupportActionBar(binding.toolbar); + configureActionBar(getSupportActionBar(), false); + setTitle(null); + binding.registerNewAccount.setOnClickListener( + v -> { + final Intent intent = new Intent(this, PickServerActivity.class); + addInviteUri(intent); + startActivity(intent); + }); + binding.useExisting.setOnClickListener( + v -> { + final List accounts = xmppConnectionService.getAccounts(); + Intent intent = new Intent(this, EditAccountActivity.class); + intent.putExtra(EditAccountActivity.EXTRA_FORCE_REGISTER, false); + if (accounts.size() == 1) { + intent.putExtra("jid", accounts.get(0).getJid().asBareJid().toString()); + intent.putExtra("init", true); + } else if (!accounts.isEmpty()) { + intent = new Intent(this, ManageAccountActivity.class); + } + addInviteUri(intent); + startActivity(intent); + }); + } + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.welcome_menu, menu); + final MenuItem scan = menu.findItem(R.id.action_scan_qr_code); + scan.setVisible(Compatibility.hasFeatureCamera(this)); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + switch (item.getItemId()) { + case R.id.action_import_backup: + if (hasStoragePermission(REQUEST_IMPORT_BACKUP)) { + startActivity(new Intent(this, ImportBackupActivity.class)); + } + break; + case R.id.action_scan_qr_code: + UriHandlerActivity.scan(this, true); + break; + case R.id.action_add_account_with_cert: + addAccountFromKey(); + break; + } + return super.onOptionsItemSelected(item); + } + + private void addAccountFromKey() { + try { + KeyChain.choosePrivateKeyAlias(this, this, null, null, null, -1, null); + } catch (final ActivityNotFoundException e) { + Toast.makeText(this, R.string.device_does_not_support_certificates, Toast.LENGTH_LONG) + .show(); + } + } + + @Override + public void alias(final String alias) { + if (Strings.isNullOrEmpty(alias)) { + runOnUiThread( + () -> + Toast.makeText( + this, + R.string.no_certificate_selected, + Toast.LENGTH_LONG) + .show()); + return; + } + xmppConnectionService.createAccountFromKey(alias, this); + } + + @Override + public void onAccountCreated(final Account account) { + final Intent intent = new Intent(this, EditAccountActivity.class); + intent.putExtra("jid", account.getJid().asBareJid().toEscapedString()); + intent.putExtra("init", true); + addInviteUri(intent); + startActivity(intent); + } + + @Override + public void informUser(final int r) { + runOnUiThread(() -> Toast.makeText(this, r, Toast.LENGTH_LONG).show()); + } + + @Override + public void onRequestPermissionsResult( + int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + UriHandlerActivity.onRequestPermissionResult(this, requestCode, grantResults); + if (grantResults.length > 0) { + if (allGranted(grantResults)) { + switch (requestCode) { + case REQUEST_IMPORT_BACKUP: + startActivity(new Intent(this, ImportBackupActivity.class)); + break; + } + } else if (Arrays.asList(permissions) + .contains(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { + Toast.makeText(this, R.string.no_storage_permission, Toast.LENGTH_SHORT).show(); + } + } + if (writeGranted(grantResults, permissions)) { + if (xmppConnectionService != null) { + xmppConnectionService.restartFileObserver(); + } + } + } + + public void addInviteUri(Intent to) { + final Intent from = getIntent(); + if (from != null && from.hasExtra(StartConversationActivity.EXTRA_INVITE_URI)) { + final String invite = from.getStringExtra(StartConversationActivity.EXTRA_INVITE_URI); + to.putExtra(StartConversationActivity.EXTRA_INVITE_URI, invite); + } else if (this.inviteUri != null) { + Log.d(Config.LOGTAG, "injecting referrer uri into on-boarding flow"); + to.putExtra(StartConversationActivity.EXTRA_INVITE_URI, this.inviteUri.toString()); + } + } +} diff --git a/src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java b/src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java new file mode 100644 index 000000000..9f32352ee --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java @@ -0,0 +1,169 @@ +package eu.siacs.conversations.ui.adapter; + +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.AsyncTask; +import android.text.format.DateUtils; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.RejectedExecutionException; + +import eu.siacs.conversations.R; +import eu.siacs.conversations.databinding.ItemAccountBinding; +import eu.siacs.conversations.services.AvatarService; +import eu.siacs.conversations.services.ImportBackupService; +import eu.siacs.conversations.utils.BackupFileHeader; +import eu.siacs.conversations.utils.UIHelper; +import eu.siacs.conversations.xmpp.Jid; + +public class BackupFileAdapter extends RecyclerView.Adapter { + + private OnItemClickedListener listener; + + private final List files = new ArrayList<>(); + + + @NonNull + @Override + public BackupFileViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { + return new BackupFileViewHolder(DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()), R.layout.item_account, viewGroup, false)); + } + + @Override + public void onBindViewHolder(@NonNull BackupFileViewHolder backupFileViewHolder, int position) { + final ImportBackupService.BackupFile backupFile = files.get(position); + final BackupFileHeader header = backupFile.getHeader(); + backupFileViewHolder.binding.accountJid.setText(header.getJid().asBareJid().toString()); + backupFileViewHolder.binding.accountStatus.setText(String.format("%s · %s",header.getApp(), DateUtils.formatDateTime(backupFileViewHolder.binding.getRoot().getContext(), header.getTimestamp(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR))); + backupFileViewHolder.binding.tglAccountStatus.setVisibility(View.GONE); + backupFileViewHolder.binding.getRoot().setOnClickListener(v -> { + if (listener != null) { + listener.onClick(backupFile); + } + }); + loadAvatar(header.getJid(), backupFileViewHolder.binding.accountImage); + } + + @Override + public int getItemCount() { + return files.size(); + } + + public void setFiles(List files) { + this.files.clear(); + this.files.addAll(files); + notifyDataSetChanged(); + } + + public void setOnItemClickedListener(OnItemClickedListener listener) { + this.listener = listener; + } + + static class BackupFileViewHolder extends RecyclerView.ViewHolder { + private final ItemAccountBinding binding; + + BackupFileViewHolder(ItemAccountBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + } + + public interface OnItemClickedListener { + void onClick(ImportBackupService.BackupFile backupFile); + } + + static class BitmapWorkerTask extends AsyncTask { + private final WeakReference imageViewReference; + private Jid jid = null; + private final int size; + + BitmapWorkerTask(final ImageView imageView) { + imageViewReference = new WeakReference<>(imageView); + DisplayMetrics metrics = imageView.getContext().getResources().getDisplayMetrics(); + this.size = ((int) (48 * metrics.density)); + } + + @Override + protected Bitmap doInBackground(Jid... params) { + this.jid = params[0]; + return AvatarService.get(this.jid, size); + } + + @Override + protected void onPostExecute(Bitmap bitmap) { + if (bitmap != null && !isCancelled()) { + final ImageView imageView = imageViewReference.get(); + if (imageView != null) { + imageView.setImageBitmap(bitmap); + imageView.setBackgroundColor(0x00000000); + } + } + } + } + + private void loadAvatar(Jid jid, ImageView imageView) { + if (cancelPotentialWork(jid, imageView)) { + imageView.setBackgroundColor(UIHelper.getColorForName(jid.asBareJid().toString())); + imageView.setImageDrawable(null); + final BitmapWorkerTask task = new BitmapWorkerTask(imageView); + final AsyncDrawable asyncDrawable = new AsyncDrawable(imageView.getContext().getResources(), null, task); + imageView.setImageDrawable(asyncDrawable); + try { + task.execute(jid); + } catch (final RejectedExecutionException ignored) { + } + } + } + + private static boolean cancelPotentialWork(Jid jid, ImageView imageView) { + final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); + + if (bitmapWorkerTask != null) { + final Jid oldJid = bitmapWorkerTask.jid; + if (oldJid == null || jid != oldJid) { + bitmapWorkerTask.cancel(true); + } else { + return false; + } + } + return true; + } + + private static BitmapWorkerTask getBitmapWorkerTask(ImageView imageView) { + if (imageView != null) { + final Drawable drawable = imageView.getDrawable(); + if (drawable instanceof AsyncDrawable asyncDrawable) { + return asyncDrawable.getBitmapWorkerTask(); + } + } + return null; + } + + static class AsyncDrawable extends BitmapDrawable { + private final WeakReference bitmapWorkerTaskReference; + + AsyncDrawable(Resources res, Bitmap bitmap, BitmapWorkerTask bitmapWorkerTask) { + super(res, bitmap); + bitmapWorkerTaskReference = new WeakReference<>(bitmapWorkerTask); + } + + BitmapWorkerTask getBitmapWorkerTask() { + return bitmapWorkerTaskReference.get(); + } + } + +} \ No newline at end of file diff --git a/src/conversations/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java b/src/conversations/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java new file mode 100644 index 000000000..2f7963cf6 --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java @@ -0,0 +1,11 @@ +package eu.siacs.conversations.utils; + +import android.content.Context; + +import eu.siacs.conversations.xmpp.Jid; + +public class PhoneNumberUtilWrapper { + public static String toFormattedPhoneNumber(Context context, Jid jid) { + throw new AssertionError("This method is not implemented in Conversations"); + } +} diff --git a/src/conversations/java/eu/siacs/conversations/utils/ProvisioningUtils.java b/src/conversations/java/eu/siacs/conversations/utils/ProvisioningUtils.java index 3d639d2f7..593291d95 100644 --- a/src/conversations/java/eu/siacs/conversations/utils/ProvisioningUtils.java +++ b/src/conversations/java/eu/siacs/conversations/utils/ProvisioningUtils.java @@ -2,6 +2,7 @@ package eu.siacs.conversations.utils; import android.app.Activity; import android.content.Intent; +import android.widget.Toast; import java.util.List; @@ -19,13 +20,13 @@ public class ProvisioningUtils { try { accountConfiguration = AccountConfiguration.parse(json); } catch (final IllegalArgumentException e) { - ToastCompat.makeText(activity, R.string.improperly_formatted_provisioning, ToastCompat.LENGTH_LONG).show(); + Toast.makeText(activity, R.string.improperly_formatted_provisioning, Toast.LENGTH_LONG).show(); return; } final Jid jid = accountConfiguration.getJid(); final List accounts = DatabaseBackend.getInstance(activity).getAccountJids(true); if (accounts.contains(jid)) { - ToastCompat.makeText(activity, R.string.account_already_exists, ToastCompat.LENGTH_LONG).show(); + Toast.makeText(activity, R.string.account_already_exists, Toast.LENGTH_LONG).show(); return; } final Intent serviceIntent = new Intent(activity, XmppConnectionService.class); diff --git a/src/conversations/java/eu/siacs/conversations/utils/SignupUtils.java b/src/conversations/java/eu/siacs/conversations/utils/SignupUtils.java new file mode 100644 index 000000000..fb088234a --- /dev/null +++ b/src/conversations/java/eu/siacs/conversations/utils/SignupUtils.java @@ -0,0 +1,77 @@ +package eu.siacs.conversations.utils; + +import android.app.Activity; +import android.content.Intent; + +import eu.siacs.conversations.Config; +import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.ui.ConversationsActivity; +import eu.siacs.conversations.ui.EditAccountActivity; +import eu.siacs.conversations.ui.MagicCreateActivity; +import eu.siacs.conversations.ui.ManageAccountActivity; +import eu.siacs.conversations.ui.PickServerActivity; +import eu.siacs.conversations.ui.StartConversationActivity; +import eu.siacs.conversations.ui.WelcomeActivity; +import eu.siacs.conversations.xmpp.Jid; + +public class SignupUtils { + + public static boolean isSupportTokenRegistry() { + return true; + } + + public static Intent getTokenRegistrationIntent(final Activity activity, Jid jid, String preAuth) { + final Intent intent = new Intent(activity, MagicCreateActivity.class); + if (jid.isDomainJid()) { + intent.putExtra(MagicCreateActivity.EXTRA_DOMAIN, jid.getDomain().toEscapedString()); + } else { + intent.putExtra(MagicCreateActivity.EXTRA_DOMAIN, jid.getDomain().toEscapedString()); + intent.putExtra(MagicCreateActivity.EXTRA_USERNAME, jid.getEscapedLocal()); + } + intent.putExtra(MagicCreateActivity.EXTRA_PRE_AUTH, preAuth); + return intent; + } + + public static Intent getSignUpIntent(final Activity activity) { + return getSignUpIntent(activity, false); + } + + public static Intent getSignUpIntent(final Activity activity, final boolean toServerChooser) { + final Intent intent; + if (toServerChooser) { + intent = new Intent(activity, PickServerActivity.class); + } else { + intent = new Intent(activity, WelcomeActivity.class); + } + return intent; + } + + public static Intent getRedirectionIntent(final ConversationsActivity activity) { + final XmppConnectionService service = activity.xmppConnectionService; + Account pendingAccount = AccountUtils.getPendingAccount(service); + Intent intent; + if (pendingAccount != null) { + intent = new Intent(activity, EditAccountActivity.class); + intent.putExtra("jid", pendingAccount.getJid().asBareJid().toString()); + if (!pendingAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)) { + intent.putExtra(EditAccountActivity.EXTRA_FORCE_REGISTER, pendingAccount.isOptionSet(Account.OPTION_REGISTER)); + } + } else { + if (service.getAccounts().size() == 0) { + if (Config.X509_VERIFICATION) { + intent = new Intent(activity, ManageAccountActivity.class); + } else if (Config.MAGIC_CREATE_DOMAIN != null) { + intent = getSignUpIntent(activity); + } else { + intent = new Intent(activity, EditAccountActivity.class); + } + } else { + intent = new Intent(activity, StartConversationActivity.class); + } + } + intent.putExtra("init", true); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + return intent; + } +} \ No newline at end of file diff --git a/src/conversations/new_launcher-web.png b/src/conversations/new_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..76057f9fea7b2eded734a58069a67c575d466167 GIT binary patch literal 19483 zcmeEu^+Qwt_y64(jkJU)AdRFTA|fzQNeMyeQc{H1RHS1Q8xfTbVW^}?NK0)fC?(xB z1nHD!`Mn$O&wug#MUi{&GtTpz$9bH1`qIM8;26sZ761T_85v%&1OO=bBNSj_0RP$v z9>4>D$&Aqz-5bGUYZ;6WZ+bLVH+X1geC|J466Co)k*fK-_iId-t;JWdK0VP7Pv64z z^!T$Mzlf6AQ-nf4%4B8lKY43$d85I|1Paq*dc-+{M-nFAKmO%r78n1%tYh0@#ZDEM zv1Qt2G=(e2Rh866bLugje)9kSC{Vh^`h)yw_hXMswfW+K?f8>e@iD1qo&6(O_bq4R zo&mtQD|OAWeWwfJA6{dR@8PvTU#5G{X2d?u8OMFzoUkB%PMCG@=WR8q{%g&MkcYQM zD*fWdtB1+nRsuCZ*5RCp*y*+mnMjegs6C_!vnl)Ck~VDRIleoQe?KGp$rco&B|20I zns_-*)9No-Tv9@9745^8*ZN|(rNn&0C9}^93kA?gNP~7Ai}yD=U@w3>H^!tM)>k^+ zZq;Tu18l0T#p}sZT;HCkDsl5kcDQrF(#yUpwpL$`Y!k8dJd;z*kNYA3IR4qHKuS9S zSxZmOd;M_tIVikt^0D~Czt+TxRNTK3)2RmYQ93wXMbI_E@)YzdL9r=F)=(+z!ipmJj@yw6z} zJygre?b=~r#TmL0_SrZ2L%mLSKBeW3u}lxA_TR?XwJ zCdaT=9yrywDB-v8v~{*WGl4H&gw21C3F`X2fKq7hyo)~8(3jlA2GnDwpZ8UKhUMF# zq&=(NC6!#VEWY@}4p2>^+_WM6;z3t7Jl_H*6**DK_BKBj_G~#FA`+38IHCH7Z2j5f zE#PlTDpXq48JAyv`*T1CI9EsHNp~UplnXvVmTymGl>^J?P-ATQN_5vk@1-ttOJJ|8 zke55~znYUU(@P=%(T<$(t;N0R8{6hLH^J#agTH%I)wo45V3koBKY&rGlAf<-o&#S@ z3u-cd@kAmZ_l2JXvyUL$kKslK@TPvZhIn_UAtIGtxpx5bbALIV?Bz;_`g!TlihMqS z;g<^P;<4!w#!|h2XhvpHhA=#3s$}DEcR!U(-BX$vLzl^;0c{k)#amXLJo{7Rf&?lD zc&tOBV8UD?4>%HZ01I-D1hXMqJUi>fw)paKla6GOL{0qUzo0>dPN+ceEc!=Jab);V zydM_;c=wq^$RG__lHV$6nxwzc^oDM}n9yEyX}DRf%<8(ChkSk49y#@&d^!aHb=G@J z9X*YHYDW%Nm)`Mm9VY-vLAKP0|0EYIoVpyr}-n75CpR*U*uJl zNRYZ@QCQp3d)B6If)(otr!%F6x$ciO>q`o6hCvXiY4!ri8 zXgF)1Nrq%K-a!V83+22NIA;y43l8fsV=H50@Bhbe1z-~eaB1Y>8up`2$T1oNnJK;2 z>%#tMZq&-MEyMIV_}gJh$tpSMS}&0o0-$PhNwUbzXR$8Nj8>LxVAFZvNIJ)`+Q6qT zl)FT5qbNio^81_`()d`K7_cAHn+!z$)COjSDTH@!ujdz-0PsYo-5>`V1R&-cd4m_I z)Zb=>0iZQ+eg%l%d(Z0lOk2abvyY*CUe70kugl2aB+Eh=AouuDE*CH6et3q>+MP0)0+Q~O6`rP&WKoTTM9vHqDc!$ga0ZOGoD8|SlS$HhN&j6SQ8q6p_V3A1_ z3SbqG+-clqe;#!=XF(v-zft;ibO89lpLpcQ**5fTI+18yE$F5=4E!Y^KCyv5sek`b z_fm}^4@!`U$`qc}FM^f~KEB6-JqGS;jsp}!4Fm!QPaHt(u^O#kGt$kXpXO&m-G@#4 zs6!6up@3^Vfg~%#)Cg?qiGtgOhIXJ|8|V8Q52JLK!~vQxrQ{HwTSu9b1jeBXOCMb9si%xUE)VB!_+lN1|*B^d>9 zg5vfBpCI7?6F6#l05V_*=PSvT)OYL>?J00#*T<#(lo9PYHWt}_D(Va~O)^rG|I9^?FLk}Z!4mkTaEv@X?MrQaKl~?O?BYZF zfvaPk-X+Xf67BbmBRjvWbVLCdctE3Sm;_`$v$@~J@JQOjrtyF1iKlT@oZ!DeiNJrT zlO&&BpKv|%4i0bvKq)p?Cz?-#_A}GpTBN1xFiF<*F93=ce41PsSeL!~_C<`$QsSt= z?Xp=3#UK=$BQfDpBBg?@k9;3K<+_yKZ%!E=z?2w-W}j~j9Hx}}u;2_=$O$4aJvQpL zus!)vvA<)J@0&=s-n~1OVCOL3>NUR5!C%KM5#UnmeyTO8zGN$B`rd~x7iul7`Agm% z%MtR}epysj?wh=-*iieY@fGC2rYd(9+65+yzOh?9M0ETKgytE>b2F`Q_#Y4y`O5 z?c^D|!zIVf*Lyr}P3?7iEHB%57?PEj-c7wKW3)1XP{j<}$#+a15bo0~EMfaCqS$}l zG`VGr=b+fCE~l*4Qt6gUQZ2@UqNz0K9H(N+U3C(7MvzeU_jLfG?L|~CH(C=eruwl0 zU9QBQ(XsW%->EO!x~PK}#rA(*%L|B$_@yd@xF{rn48r)1M*(@j zx3X`)`7mw!!OrU0QHxq#m3^-^Mj@Sq>rdUX!$QqjlZ}IT;Qy#5h%(RHyBz<+y|0~L zVq^NYhD9XY?7ilPlHuW@p|RW@tq*&0?~AkxH{2|Qcz6P(+ZVsz=YH2~Qkxx+*Yl16 z!~-~hb^Nsv>ebS&+97S+m&q%uVdF#ixF0CeG}TY|JL~7~(b@N}PhHv>t?^-ii~i`7 zw>DFO=5G@Ibz~-LIOz1g8OW#$j@3iNG7Sv1w|$N;n^|N@{T7m>t=gk19vx@EPCaf2 z;CAibeut1ud3Csa;j7{HujMTd{`FmDncyHW>?Mo5jrw7-t3|g=ri(C!hubHzDyF!2UIzgn;u54>Y!?YsSsD0{ONNAhPOT&$;vSL)DL;)xy?oLV9 z66VHEneU~>mwM*`pHz>w4|*iqTjY`Zg(^F%do`Spc>-Bc{a}0MJd7m7w%y`R6;xmiR7?;*ZZN0!o4((%g*EvN*XNb^!7!F7XG$?S_eb#^t^}cT zX! z4k^Rx9VUlYsGE{hSB>rACpboiiFgrCdlR5t!ihFR^|>PIIh#e2RR0Aq&fg z?%G8&MYV$vItN0S(G`8A_DQ`5w6(NmkQ*f2kbH9-&puR?-SG6ylxpxqF_ovC z5`$}Slgua*5Bwrx&pGCQ6QzI7>M=cYnzzJgjyi{Ez8CSbgmzHY$)XGG6*?(f-?KoB zIMo5+(tQ@S&j(I{5_R5GJx94SdjEm+97nFyhHGQ9`!7K_^eqE|$$V96O}h`~dJ^0j z93DjAXcdyb8$JA>QYi(gF>P5XKb9f$RfBX*2C{dYi8fe|xR#~$DTSGvjjnR^#ZzX2s5}JX-1k{wjT(oZf4_SKhrrOP|w!IMU)Y0@U^+z;%0OM3s_B_@4r%gm& z9O>RmeO+`H$Aqx@cZYOUwoW6CQqXxkgUs= z(y4W8R_!9b{tnacqCag}_R94s6iLtdS;$fin+ba#V>4XeRiQHy`*@DgW1@_iw^G-G zb{^foNY9i6C4Y4Zf8xX@eUY`3`>OGew*vB%_Vi7&=dTq_^4*bt9OtiQ1Rg#Z7JF&< zrZ1TeN)PQRrLnPtm!$*$Z9P4|S)kc33oYHv#ctJODWbG)Fp?I;yB*p$Lf->!SN-eM&2BEKVYEP9l`5+hn$N;PvI-3BSiw3_?AxSZ(TZ(@_;yWMXf> zeR()Lx9ZuWQ&`r4W2xdvF}baeC1`54yYN|Azk#3Gw?a^qLzr9|gudOu&KXvI}8Cx;RAw^l7SZ>CVkY zWfe(RwM`R0K;8j={|MDe?7iKiTJ#hT=zE3|eR~*{86KeKCy%`?)x1tgS1E(pnzFx# z-lNnc(O&Z<5`tHx6Le5-WQyhAC0k?UwN%7RWg(skR6|5bDT^XX-{)U!!ycRdk%Rg; zGsvAhj^l>9GJu2_lr;V)M%j*dvvFW(YlmZcB?q;yey#j90CS-2rv5!1ZF%md8TA=| zY^K&{j73K=H>V*@B{!plm)@2AwK#p30z`hqTUK^X?!6>eKLZYIjy}Gyw@++uv$VeX z6Mk&kATVJqA#dyX^@GSH8bl~5l6r^9A$Z13LKt))T`eqozmG++Ojw38&qQTzaB)GW z3ud2{oZL|$#HGJMy!&t{eu5J~=rT|RU7sCsJ6~R_Eas7*D9Q$Ajyq?CbjU(TVyEJ$ za5pXagH_+;Y5+Z*DjXQKtFpq+?{Jg?BL;l6QoC>2%c(>i~S1u!vVLr5ImpNJl~vd0gX|jF^SzC1qHn_ zj=!LQIGY;))$`qDVBls>+yC;dD@_8j1@gB<8JK1?p+kvZl4~X)dIIs-&2y zc&$iZBGJK8`}}`V>8qaQqC|tKOgJmHntZDG!gp6zS2*=-odp{r&Oic>KPxukN&}vVf!Z!}Q6eDDyedLU zE!juF7s6(E`1C=@t-*mTW>n&lB|lABy)YUa&O@hw()|{^^wE92JE>K)3u=3n=I|W_ zsvkz(u(na@feNIoNe8v|5dS>m15}x40(`vp@&lC(u$2M~dD&$*oX>=|3_x9Br>UBK zk2CG0;@wxnXR%O$_i1A%4j&S{`c%coEV((o1&>~M$0g~d`2H4(UKwJ-e%#ox3ov1U zXFZ{T#N0ZP!5Z+-avo3%Z;+!U4JqFf41S)2sAOTu-J@(n6s>JGpcd7Aq^ zw)wNRT7$yjsxpA{1-TgxhK)W_W4-YwoJP20*<>H3v-!}J7=G&pfg2FzLQX20cwg~q zS+sh|mJ7^_`?=J9fMKs$_9ztOJ?UJ20@}bHmA^m8o{@Phi!#Eo3nUKy+T?b%ramXXLIHBKYszfFlUGdy1g=s;MeI<8$*N3wRp-00F?$9pfagKk=P$kc z5K$To+Ax_cooNfR5;TNdYad-MSMlqAXu^WR(A<&l>(JEJGI2Qp>cgjLtXnO`SCjYw zWGmI2M$$&!M}pBLKOMNF>m5OdE^{mD(7nzVTPHMW&T=G8_to?Em;Tb!&pXrN0{WDK zT;oA;+@=b-hv}zc#4}bDa4j~iMd;>*pLtN%<1{eJUtxf+`GngJHq|Ju8gJJRpsSZaV2J8CeBohkv$*b);BUJ1Y<*UU`)UU!bE zjNgO0K0LjcIbn6NOCJ=K5C|1Uv6*u$u7KRz3TZpM`@UK|Ou&c%go){37yv01%&`2P zgSS+BERCXX)v35L(4V7Or(h#vcdEB35HZ%?%N<3l!whZ;}c|3=y!zEoJ< zEZb|fGepLn9lfto=2{V6`tP#r#VY$Vm6RB6aaGcL{>s}rj`y!<8yW-AvR||Byj`C4w^vhaxJguP=FPkN0u zZ4Mmv$AM1Og=aUHnDNkT=}dRYd-?QO#QB}>0v5lyuVNrpy|Q7@M=)5bscx=rEqKiJ z-h77Mwdha>fxZvDDr7}m&v#JbUv-peNt8??X5hj?(QF+ez1iJAS3e%Pq2(D)Irb+$ zXNYUN8_WIp-wiTGraAnl9Nb2BH{R2Iv;TUmH}gTdx;ICc$eBBYzTKq&aq<^}*~W0* z_9qp$w41&WWwU=P)ezK}nXjI0F+WB|U`-sNTtY*Db5R9_E?*}^^M^wC*UY^8tT57< z?MQpv4bKX60GPPZp4?Hp5)V`=VZHCpdECs~X%Kv!v4!Z2!+uc^F&S(*V?tU_zLC`4 z8uc}j8}K)#I$jjxfWGod(c|?2^s|UC7dJ|=i-QJdN*C5KdNA__&dD`|WaOSfdmFnV2sty722ODOFxa8Ac zNAE`p@eZCiobW?4keJ-(T8v)~Tq7W0zz`~7-~;WkvyVjz zfXiFGy54lDgDu?WOc2P=BPpE&o)xZ`9gn>v4er#Xm8R`+y6xt`~3)!2aNafpT2?qFpj zncO*`vEy1SC?caH+AWV>OzsQ1`qHdaN!K#{#$Zv*Z-v8W2fl>xjtS0#Ke?&GNHce; z*r!>RxdjXBS)CeIr8v>4CtgHps5SmOkRoN!lVu`o82%n(ULL5aP29}+XhU=+CvU(~ z#JvjT6v|+mRW>?xlSh8R1WYk?Frh;Kn22htR>~@*lvr4s&n@2;LnbuJEt?&JIWUIZ zq#p%WOTY>N-zxEYf)aA;DPT)W38VD(PpEC$%`s)!cQG}4?OFDA=;8#_Klf0o8(!O8 zbT;lzWZ3nJ2qH1!Pc-Os=$x-Z|3xMuYSqQ?RzRl$%?H1p`SiP7p_~zJ`ucfJ;O@#o zj-r4u%T{k2n6Yt>i=@j!GFqyUgjZkR-wu*bSnRaLB#rhTiXWqVmo9<1{&s+*s-1mK zGrQow4afTBcg1*j-B-K2<<4n1R%MRx?bw_wv^n_v`#$-^h27WpHRl;gnvvn!G zZ47T&F3b;Z#NH&cOO=G5orb!G(`d>8d&!rONfkPD=+{?iz20bn<>YST2FLs$>n|W% z5Zpmmg4tLXrPk{YzSai6KHb<4rc8;}H+(|=fOyiT!P>xU*f6Fs0uFbUN^0K97CM&= z)BywiA>r!)Cfs`YDZIQo()Y#h+jIO~ttN#oyW{j35XA{tkEL z@`z8z7mAP*5F-Pnxh#FYn6DFsD69P(lLcPfI=uzPg(peJE5Bd{j6Wk(Sf{lw6z-q$ z)%-dMx4DE)ZoVLe!GJRPZO2 z#B;CJ3Efm48h~m8OA!Ix7d@0;g4A-nZ>v3W z@TYpc6VVPQ?A7l7EmVEJLooxP+{ZjB4ygRk#pRoNb8A#@*(zw*jwHg`-H#m08}~}% zfCC3A&&F0!TLjWf)RGc_o9;f*`|*C;5@HR>jjwR&-5yV@c~^{w7slxS+b zPqcQJYvM|z*4IY&$K;R!X+0YELzxk>Eh7BW2kGI*-`k5gxzy?+$1>{tGOsCwUd6!* zh8}})aW)tY`goB+`ZsOakTbEKd#m4HLfFReQ4YU)2-+3 z+-YVx;@5M7RWEfL$IjdS${DC7_m=-U7fWTIJ9);1rpF5VtaNOazRiM_hL5E8(!1({ z&J`nNZ|v8v-^DL$Drh@=G2bpkI(vLzjXd!q?lL_-#=xH*%c4i4sxQXZ2IAu;!KzEN z#D-}ih~w!0W20HZ0}i-VWi1w0j{)Jg=2hMC`Cqgn`2p2-TF7~d4den~mWb^mAf>PH z=-T)>t*kkOC(Xcnl<1c8Fm9Q;yx97DlMl`=gxp&&ESm~-$|`9wapNRmyPu*guD983 zPWHaJdg3||BTvWGcAaX{F5fL{m(!mMT!D0UtXqY-ulD_W#t(dILvf>eM*pM%m!hZ^ zdWj`pvGMHk@lv2idD)pUAn$4I-zAj>Q)ZAFhysv#kc+f}oS!Wlkhznfh!-24AEcYTZhAM1_?wno#ql&8x8 z^Y5t9E*v2KGeb37w2h!!p27hsE$G4R-VSYE!2bo6k%$7?GoX)NH0Nf^2j=w}zHJo{ z|3El_**2=Yz^9_xK`1cE(S%|FBdDv+*Hh0z_<&hvS{i|8>Ft0K7@)et>6HZ!pC`e- z5noHwf_LXK?;tU{GpM!{F!T191@-SLE%a+r?T|870DoUF1w8=O?U*9alnen^iDFnx z;yVrEC^Z0l(!XGC;v1;L!;JcRh4!7U_k)@*vd$e?7FX`**rFtDyZd-4EFR9X%t!qi zScm|OK5YG~G8eFgT>G9kt{uPlWrTqq>!`0RqLEUeTV>Ve4GLa1e_jgOH&~xRQJ;RzMIx3 zoeI!rJxl48g$=re<7EqT8H$LnC8?K?O3S0|a9Hq^nIfR&AX?)e`ishfz^0IP0$clgObIU4HBZYKigJmU=oT%mGGC z=SAo)ozGmSTFsz{^ zRaKebC_%dm)?L=ySQ)*1tEc*sRFiFQ15m@JKRIka0f_$ZdIgOeqF~VV z>^M*!O+7gjzce(39$=DRMywC2mE5HlTG40I>$yhL9`DtcsDX97W~(5W%8J-Qz)wLr z@1BrV{!D}Xb9*F!`SjLAbQ|93FIy+@DCA%F-a}UcV{DP&B@Xpw>Q+-MZ*SGYd2P)Hu|Glux;qBDMz~BprlyB@r z3OXx~!J(Ytr#GJiS8}hIEQ~r)%QW>lPPYw0-W_`cXfJ@ykecu~CJ!{dgCLo)Ke{hH zqi###L)#xP4m3jAG1IA|-gHs!BF$L?Be_sKz#h$VQJ!EDA`49Iq(2hEKF?Rb$KERB zD+W2xxDB_5|kzw`~K< z`yZm3gs}V@&ob9 z&jb4$s!Xetl_bLy!0gDtz>so2U2q#%==ZqNl` zitga!sQSmRJizvg5~_{6UZIJTsqY_Ft>v!Z2;@Xt5|4w&jXx=#tZ?P4SZ{8sDRD}G z>7jNoyXDIU^M>Vhp_62m>LL1;woKR3ITT2VcX!Pg z!ciM4{vBVkSWp31Xli?}d2VMI_b3(ygeQLo%lE909Ccx7`XvcdRE5;Pd`uqXrT%WB zC?OEz48zw^8;0;w4{XfQz!o6j_LS%-VD3G8B!X>P+RpRnYnK(K$F~3Pj9xE-ZYUR# zCJWL`HZpKxxpGVdLCU@k<-8`S{3C{@dQDVUw}Bv9m|16J1K2&s&kYiwgI^rJ6D9{~ z;)IHu&|Wi=m~Q!4fPbp%17tH{yTFLW6bzpSNk$8Tw`kX4%9#GM4;~F(LCympCun@ zHPbx8Ertbi-GC`M+~8v4rh(P1ab@v<>$t0& zj+cJ;qC33wwuy9ejFMozH64IC!#dB$hmwA zHD`etHeca~wx|PQ7Rg6LKiM2u53ncu%SoAZJ#y3tAoJ!xl4d7&Mb7B~ol11%lw(vt zCqL9ny(IX$xA962X&$!=xu#y45%wRE!M@z^8@p~y#*lr`% zW!FFiY;f{K9NHrDE(*~%oge`0hB|M+e!kOm`iWGl0puK65_r#W30~h#!o-98OXa^M z7|1CL5Fclxbd^=5Kby60%Q<`J0tYUz7#YZQ*$Aq{JI$VFn}Oxrx~8ol5WY~2I@Ed# z*z@p$K!;5L%MZ)t_KjRX*h`QoZ)!}^J|Wjm=Xa*)Cu8K61qKgty4%6JK;0-z!V=Q&+ZYmC{ky>_O5);YgF0$UYFCQ zJeQYYALgUhaIDI=+q`v{P#Q;eHXj6>t0tDLa`iAIP@Abn9dwewuB-sAEZ^5Zo|+8e zrMd=N?*8pxL$`sotHdXhFUzRyDs`VL=DZ%%%#>cUQyY8(oz~%Enm+<;`dA>)XzfqD zsqQ*mJJ{o-60v>FF63cif{RQZ>M>ZNQ3ZQ=j1PlX98-4G@kolL&udVUe$`CsC zR}7d&&n`b0+~d-g7Ig1x4aEs%3 zs}0!d)?&gh8_dx^xZJ=7QhLLgOo@=YB+adf_BQ-ZW17=_vpK@!$PhXYVwqRK9V^1c zFBMHzzx4`6W1qRV%5!tRNTq3gIS!g4aAI?7|D1OLBoHih<7J~3Y_26e9pfoFbFos^ z)D$5nTiQQ=?xr!nqEk=MLZJhHIlFs@(8^RCNMd)tZ5piJWi4#C0Ov5^aoLUKR|lxk@k&9GhD{&zMr~`2a2DQtvKHp;KBpRN3=LeQq~&wcWur005KAZAMGLu%cl2&^qjTLICRa-qZz~6l=f!>1F&W}58N}^b zUw7gfxUKOC>=57B(T@0(85$H7Y9AS~mcI4(e2oxn z=J{V{4wBK68&cWa_x@PCJ|D#8$R)KcrSaWr-zs@Sg=g*)*&R)sYcKz^B^x?%PK_&@ z&fhg3H43wmSb@ia;ah&(NcJn;_c#Y`%z*ADVV{$2k;OkgQ7 zYgMDt=DY~*i+NZfC3E8OtKA2b2SHJaqCS^Djomm8b|aE19@hqY^~{`39$xb&*yXOS zT+R@-*k{S_)+WG<$)jfkmA9N9RgeU=H8gH99$AKlR$tg*JuxCIyDjK(zB*maSj>fM za_e8mc)32FP&vuJ8Nqi~=r3 zG#}Y^9|LO@m=h7HnAw*MR0=m|bG~!~eX4B&oul-6z)>ZZDgRZ%fa!}yvQz0tnz5(6 zcNUD0cOWM;e!X5Uzr2<4=6v^1iM+Le@M8tQr_I2xdFR*0vtCcSGzFl5NodZUeN$IBvoi)m$LrFO8wz0^n(Hzyp|(T9RypC}>$7`au8E>l+m zvkZ&Xm*!8l_ILkNHvp1^opY5mg7NE}szTGqBRx4g*(c^p88H9n@Vx2O^R_2*-7DqL z<=wWa|4!UM+&bxWq4+vZ@@QwDbqV)!FQK-t?)_wkbtJ1k50^ZO(w7>B^S3BG_UuR{6K8? z%+jGI|8fw=xm`k4;gR;-1S&SP#6Bhe$;AJ*BT9{4MX$KTkjgpUa?yYC@aZk2c4GaV z+}-GqyX%~Mo!)J?pT6-xOS$TZ83OEM($9>$V`Ll>Fd3P9B&V&RcXSkz*~nEIRqG5r zRw@O&6YPB^gUmcAy16&c4VB0$INIgRK5)fzFPCU)N%T|<^Jju^PZu4nX;%wq%h*+i z*cTChJL9dDLT6t=xO;4mD^DV-KE`yPnm*o& z`szhTB|Z?8J_|eulZZKs#uqu@r}#p$z7{i$I6xDChol-!s&0=i_GJOKO9i-#If$Jy z^;%9*NFzV$msAC{=RmnX9jMFQEp1D{9KOP_VzDDP?q&M^luT&5n)D@rvDxa?ST;LB4vVWHVALj>8#D_9vZ zSB@i5763anVn6~iD;h1PUd3d49ZLMhOACwaA&VZ5w$#C1{T4qPuF}0ons19|fnNzt zXd5QHb|CUrsJR2QVM(PL_*rL;O#r85RN&%w(o}Nm5l?y&*vNs0Fv{^BkHEbl_kk&$p^=m-f52MTU4Fo{%&-2ovfi%#|zW1$ckQ zQx1vbYwUdjFe{J9!-qT|iz<0_m++mlOsJQzX>L_8!B^5brOgL~C1VCzabU(^1H4%F z8|n?^Ogt(6r(6vpKnYfWx^hFj%VqxZLS2I(Ohq=}Eu>jq%yknTTNSK4>Z~UO@7`=w z(yYyWzP#|#rM<7lFzg8QUXc}$={Ryr4(f^+y9?!9(gmPuyCMf$>IVPPi#8ui!uApX zH)eRZ(kIEC$I2nzf5lx+15#Wl>+LbANG}mMsGxEX!y8ae(?cs_E+0hI1fJyyAxZ)b z{dnW%D4C_r!2CJ{Ml3J|ab?CTF))y<%yfR^e<8H#8k=F}@3TFlj&S$RzbH4B3e zf7AN=vd!;r*Ayj`1)`h@5Ou&CN8j*qIg*>s z41gpxosAnS4{v}@r;s=HmgaUTgy&Tg*%w=S6_`+hu<6F+jW;3SUA<7jQZ`o`$ctJUK_vMUbDNYy4#Na-b~{?L&|;_DkkPX!XZ72xI!hun+6+oV&31;)1C z51mFn0XQ6CEl1#K0%q|1%6MHi9KO&gu~oJ<$BfWYfXTwckI5aLA(!y0g4XEifo9&NQw%S z1J?EoFWO?_Tc1qfTXd3#$qq?(2Fd*VkOL)yYT`hzn$Eq4-TRKPX&fgCt4J5#egC+d z6LeGPSU|`R5yWzciET%a2$veqX0w-{k`kl*ZCUK{lbpc*-&6ltQ4%mASFy|GfIcs9 zliVwN7T-WwZqZquL8p)7CL98uf4Uqw3ko^#A!k2Dmk(IDj$Juvqc$~tq3S~*f{gy@ zvL4yk5|y-ZN$d@hn0?_5{YkYsblMQ-c^)K&VdS70UT?#BY8e-d(@7beby@=ZI(9PM=h%Yz2_(s_RYbEg1)r5ahx+BI zbKed+papRegIH%<8Q1LWy#oXyCP7`)kpOJLBpE8wIT86cxffrH9JkRl?BL>Pb8#S5 z<}I@rcoC<1PapFGz$>QrxThIomGZhGfLPfK%;d!WhTBH!#7s1-0-uly6mqAXlxiry zt>8j7Jr20>QQnH)27B?lXXAV)2Gi8vs zJOIN4)8ZWwR9fFRquHeK%-U@yC+O6-`m+|NxauG1p|l`LAKWZcsHH79(0P*#(x1}| zFlJ?N^bHvH+dOXjl}rP193w2o@h0*HSukS%Q>`i$K6!n~M@9rH((}?B2u2gdLp~iqr(7#fA#%$IgGGFv_^j!EpJ0J6(y61c!N; zqj35pzP%AJV@g5q8GY!JD>sj)M{VsJ9CDmJ9hd;HGNWo|bs9>pNdH=_BWZRoiut+R zQBp9_mJiaWY`YE8$C`O}Qs-cpV4S`qIBgRv`<`-tb&)tEkNW9{d|4YZppQL~W1&v)qKWWi=-1~+sZ$5Il#i{QgS_Z`QS~bazNc zpJ?@vEBNwDtlQS2fw?2!qwX;kao6v(=GHP&KXS7j`Qqx?=P=j<5!7iIT#h`_8N3uf zWTO;WIfU~t3tBq(Pda4g>3RHFOdVk=et%X7IidIZ@V_}1Tt9}ei(x|P!m=72ASD5* z^!FxNr$fc2+bvPE{4=pQt$%ej4vbTg%f)AdIvSKFO1haU!uPLV-{21RHCsU_a^AMa z^6nUJv<&E&lb*$aAzbma~!K}`9Q(1`wNz3SJGUpxZ)YWZZpJ{u#d_iUO|^cBGy za6%m5f1d#MvypAurz$tY@|ukktnpg>SB$E^adDsjRQRO+_!;wSk(Ri>;OYonIPSm> zf1hh5pNNxr2LWD=UZ*YXy)^XwK6Idxchir#MjjeOD*nBJ#yg-Ls&MBI z*uVLAV*a}DtT$Xz-TZkO@1f^|!T#tM?pNpdEC?l;Jqk%~0iw)Dk|!nXg(O1rcKmoF zEE~k7)VfS&(y#gY=#(s`51pIo!>hl8Xp3u4A`iBZUi~_SWK;Zq^`ukYT^s4unDHs{ z+POVMpV33h80Worte>)fdA$q$^Bg%~dJ!p5oJ@|l8fzDK6Nx80zm%Vg51JSt=ic&R z!>D8qJCTd6C|&-Pt_(`CI%RNo=M9kJ&NscFC;MX1~sKJs5BH&F#SHqbCztgDmXCVqd?NrO3ch|F2ZrA8D$)ydY~ItAt%I?5F}6YA5E-|{vZG!ZKg#yf^7b9n2n`*mD% z8``@Y69@bLndIMf{8?13Nrpy_8!{inGRZXVlQu{z$w8BxWQ-qq^E>)GC2n)L72|i{ z&{@<{-8^X>V1gNMY?LIQ|0cO^{q0+c{wnVDiwUlMj&C+XC)b4z;EyXd;|LA&O{jm^ ztlXY5=1YHhgioHl6uzxm;VU+UG=D_U+FIWqAIG2x_4ARHNiG5A7(U6M{f3|)8P_TH z4^0*vq)GGZxPa?!Wh(+}*2LGc6kM$-X*ggVorjF?gw`OK9yXj@e5P-VEehylnE112 zV$B}}1yC;D-o%Dav3X<%Av>~q4R~u5L7ZK}Nt6TYCXnJhXyj7hxl%>un$g`%lvFeT z-a~#?8;#q2Px&p}j@xa;DNP2F)X(j{0R+M?XAvS%wG!9>scG}rQyi9Mf=s;cLasYGgO;vSf3r#pOXmGAPtGFDp zE;en%up9^eX91h1)@O^tmg@L1D^`?^Q*K1Wvh8*r(N79e+yU`fSa|&(0s6iiQY>~a zo>B0iE}gf=UkCt#|KD1df4ow9rd0p$>^neDuDrkVUj5?aGv)KYmFw1D`>VS}{=iPn z3zJz^B+H-EZl1fDv9$BR{MQp0mkZo^qsGR-@E|(o_^tg{1Ao|KCX1iuj+4H83=9h@cl52T zFV(F1eyQB=t9AGNofqHlkD2$YzV52|^FMQU|CJ8@$I;NL@<7U*bH}+{vj=R`QyHK4 z9C#m-@_;|j>A@7H@P9zxpFLC?^LKLe!~X}DeyM-{>B##z@Ae;jyYj!)_D}nd9iC;^eKui#J8-4|*s`%5GB3Z^mxL!I~kW23eIqqiU0e{t!T zxxs(WJ^H`$b`&rUfL1DV7TC%@$TT~!Q|Ez|@`F3d52iG}zT0vjl!|uz|G%YgzX2o9O8P_XcFD&17IhQX70;9`5M^2}VsZ4q zRA9_4@Z8bA{QB-Gd$S+@KeP5r{iAP3{@2d?)v3;z(ZjLh9M=x+#$c{FNe?>X85kV) zUNLX`cV_9EyWIcP_56SLYSx{aui9AUxxe)4OJ`ic}jJE$?xttY+oWd z|E~A`jYs`|-i~3q<9eVr?0_b-pJKsurtmu8IS+ORYimk%f4|?|b2|L`$1U;UAA|oL z(H2~hopvCW>&{bPzNu;cZBe~7`r+>Bc1QhZsW8n;S)ix*W8Q3uD@U&aQ;z7@-j(Z; z^J81@2fPgab0k}^V0z=OB|v?D{9}_p?gt9V0~0sLD`8MD+s-@o@Yk_Cry4EhUO|w6 zZm;ZgPR<=XK+hE@uvh}a;|b?rJlX2e{y+5}*S_?LQ{4`XGzJDwS3j3^P6!dzXSTGnb~ZM2FlDxP zGS4^_Aclkc0w*o@UDYG=xWm&&XV&xW4eHK4mgk$&puKuAZuDN7^vj3z5KP2e>A@*# z+w?@{zh;)x0Lv$!WrDqhg|d{^7mBWR#cupB$KI&i-2L2o+j7Z_GPM=D>Ed-SuY@sN z@n$U}EgVz_(3eY~;cn($Cee}KwZMeuI3G3*jZrLnJNei!qwFqcn%|)8E;;tMk=g#%Qn5V+#lH=LUr20IQULYNxTJ;iAEb(BZ>hi)j8KpuMT!;38>nhMY8GChO@l{+s-QrVXsH$PWe(zuCVL~-VUTp78KSD|+jGlQe+dX8LT-*Uf$IIa%;1Q_ds@5kj$gH?6 zW*@a|pm`;9*uWD{ymsKiJshtoubaEPJHs->s1AiYqo_+^!Rf}W<%^;RJEI^OJiIaK ztL!p9i8Yix9wM9~$jF=&pwla4S=#fK7?@Jhn6YcTUyn@N)N_O94?F*g(>|)f8%1y6 z9RB=F&#e^Ri#BLWZr_$yS$xVd7Cc5?>^e91m1$h_>TF49YJ4|81C2u=aSeWAW6x9N zkC|{`DA!XgF_}ei#odg5<+zHwab3|vyNGr!U_N0goMoG1>e+}I|9#E?(sSgCn8!QF z9?_24YXFige1_U+`daVRXUoa=5zOVlk~UYzi_J1C-3D=Xr(M0eA8T2Uq!Zab+ytUA zm^*yyZ(--u`X;C-ASlILL z=Z(82I@-S_h7#_wIpeYWvmpRGV-HU&wO6#3AKih&>N@(`ibvzHM*SpHi7o_k@Yv)M zn>~q}dwSUv-7Nc?kh&X#LXRCJGpST>YG{<{Y`R*GmU`_mc?vFzCY_8k)rv}Yva$Ap zaJ%sQv{c_0rB@7L_e(rCLu8F{SZD51E8-;R(DTK{iPb5sg~P#{Ag8X5(6gQUg$o@8 zQ6z07XO=CS4Hm*a+^S52kf6og<-r+eE_}Q1o9y3~1e-JFy61Ez7-_eqrHX^1zzb4X zYg=}weIumLe59$}NouV+nm`tGqC|*GlI2* zGK&3^y*(4&b}(AtQ3^eX!s)^NUoLV~oiW~GD8I%&perU-_AI~Hn_F5v1PX7{icrr_ z|BdMl27CTkGiP}lppnk2cL+O*8=)iXLq zy$XB%_O^m;1wl5cH0R1$C+;ua5OhoBV~$G=0DOcj)9p@D;wizu>F9du;`=Py28*JZ!7+aRYPj>amIWBW%3df!`H@kNdbzw6VA zIw4sty15R}9NLKMX~_<#ktzpkL9e@5^dELMTw}_gKA5Ezlc-eJQ#taGn~?IyJ&-9D z&KuBS8)>{T!>f$=M@Nxv{rltXVbM}IMouvs zWsw)e7B-`2hQ{=sMR4n#((Ub<@+4I4X~2txtz$e~NIu_-`US*&G3@>(>k=4eFy;5t z;YZD1LfU=>2a9XW$^Dh+__@T2jir9;qIUe~kVQwc0g|@p)7IPV6op&kImZ%8|D5n= z(aleZ%EQ7`7pAC;tuHIx6O+mdMu`vgAG+Zm-@l-K_(+Hp&5HfmkdxQz)Zf>T{HMbg zTIUQouqlv-rGsyWa@fN{;L>a2=nZ-Ut$6z*D#jWtgH>oiFS<*s6PQI#QS)cNOFglC zJ!F>zmDHG${d-PljGjG92UHJc{`%>O2rY{E>#2{S=+4JVEeExJw=CnVz|N!Rf1wyY zhkr6s^OCTft>wL_Un8^xRvd5X;>#Tj?%|BP*aWy^Fuf-&5>;MRK9dW}&wCJbtfqb& zgAf-B^fE8E)E_E~+mZ-I6*S0L`!~I$ohS%At=9240sUk*K#&7NfaK;!lgjNn@PknN zYf!5e_pFVP${3BDZ@$>U&8?Hk^&nr|W$23$twlU`#haV&tI%3mR@Li zBm?u0$yX5}U6xR#S+?t)$*Bny!b+%^9vMi@jHSoYm7SB#B*e>ev_WpZw$LTY zp-oaECe!O-aD>3!7kWf@rBlCKXCQ6U-EDp^$@omV3kBhjs^Y0$6v@2d=G$=)V?;^n z?fY!V@K-HAIHz{jy!rS_8B?qS1bzeycdg`^afArg(=MbHHF3Jxx0$ZKYPpb;yVB;gB2wZ5G*`$VKO zrE;y0372(1+?u%xdw8XfA>5M;0!YiqNG+xXCHjg!f!DQSr?2kIvSw%HP%@w^ZS8mF zTN6;Xpyiy^YR7`{*;x7)K`n&o2W`JL?ZD>OkfJne7I!hcR_Igc zacqW6Mknh%v}-NPb6fV4vsC@=uqf$O`DOW%hC0dr2?;qlk3$d8hi^fq0T zrgutpBW@)Xc_)Q67||W`Pl{*oyI~e%2wmY3vph8yg1h$&kfGzef%%@-jhC5LEBZ!D zD7-w5`XWO^a--jhds5ZWc5;IAW_aErGZ_0zmAA`37ViK-|G1-})KuyolFM3a1A_c6 zB`p-~xWCTT6{n~-2LH7oCR%qBTZ6#Vu>b)4Ysx14TCdmSvS($eqU51xykvzDy-YicIK@~0%omKs;2(7dc9rP z=4an^<|}j&<&pgdmnp%A20O~Ze1piBvnKz5Qnjp@EyXqD6>MOl)5cKonB(lWtTSw(Z& zTwd4XkS9<9^_DF{%(@XV`Gb_Tf5YuGxz)p8jHL3~R6eGJMUf!Hr_ei`@F0te`dCIM z%&4Bt*bIh@*J5MO0bk>Z$S78s|FvzuU+p^*Za?l(_{xah_mu$`~{4C*1*o+bj{em+KG#F|SF15YiKa4qLs3j=L zwy&6mP1>TU|F0ZTs!*_Meb~E*3vI&)8*v12nQ*(6HuE$8>4Y~ubtp=*&STV6x3!SN zSQoK*luTKimN^sP78^bKGcF$w4vr`xMpT`<1xrP6g{E}B2CiyiD|ajN*XsyTjM%+g zLm`ypUSu2chlrSCTcB0hq;+|}rf6_}!26z0VY_#o5C{@Z9MUcNNkP}Y*d*u1!xdK) zD)MNLujKnatLI%Vu~jfXO9uLT?&Kc<=k)1@Et2ZOjl9`l4i?64X=Fs0YZ2BV>RsZZ zO6(O(*elO$%V4#{>(&SMo)8uEMkAH|^gst&H~sT-1bmrwKwSupVCewQn}f%6yJf(5{Tb=@)FaMg@|G%C}+IA;68{$}CEb1>@;xKg-@_dYt!`g`oeA_rYRBs z4b_rk=pCtjm;h#l&!FLuX%4fqzeQhYcH{Cr6? z(xQINEv<)(B#b!PhjJa1iFK?+&fS`aU>nalvbmyck` zLJYR4$?1NMwolo6Lht( z&qj9WF}M zaA2jSE`BpZAm3(Hs7djJ0gD0O+3OY5Mf1uuhsO$2e__Bk^vsx%(`*KlhQ_n+Z!hLg zsUPCv5vq5BC&FVdl4lb>d61;FEdjqS>&UqGlf%IVL)pT2iMmY(t$Ug3MHE|-`IF#> zfO$rJ)--(=?>72cJo;64Lco7f#O7e3Tgrjj`4bXtu&+*u4Ea*C#mzYq#7|Qhf}=G`xx%yH>a+F`@z;*RkAB(L!f78k^CGu7a}(Miu|| zQZIk-3=!VV|ArYxD5%5j1naD2zczx59aR3cpWh?@42?=QBQ^DRPk-n=yhdEXhxSPr zR5@Lpj1lOAU307J7I7|ueV$vl=EWij+;MOcOmMHrZSsEbQG(}W=5#NA%^fbwKHqNJ zC(XvBrlt}G2KVVq5I}Z%(eRk45MoW}aCzM0 z>*t{cii#Q|lo1bv^rO951zmij{$nry+>ba-LqlT~S8PJ6KVZNzLI>L?Bg4xYudab@ zU9rxU*++iS8xX_)johMZDCbgR#_(5)X%H+Zj$$J-TefbWp;k{^)NJh<`q0okgakzt zJOe&@X-Xg^n~pWjKifvNN!&RM`?^=+1^T8)ey_zVq?RCB(M)16P6*TWH=Sz8sqS8rrL@DUeO*o_Y8iQ6%xr=6$JU<63OCsx#Id(88h4iOL^87pX!6FD? z&DB%WOOSEo(skrbFY$Ra@DlXLrhLabo@!XTN%| zzuSQG4!sTMv^2^?(TuN=!dJuaY7~`X|uH%zgz&nYBe~86+v>6=HSz6-{S|#;K z`NsQYsT=~aqNbh|DVT#=P)t)AXyUM>vDs`2pMv8CjBCihx};!|M3>%qE@} zPRaNzeTI{6t+MkTDW2)Y((-WtBF&vM#{vv@+!N156Jv{-6gsW6%U+1_VcHWea&vkg zucdjw!t8A+Y8g{XjHkx>`bX%`s4F-a2YLDFhmK0VUcq5Md31#EYep|zTv@1BMv!Il z=uC|dfP?eW+augyRN#ghrj5-zkg5cAtfi-W@GL+X_TD8Xs&cYX%m04;td1oQ(-UR zfr03<%xDP2Z5%L*R$9U?vR)q^l4VkQAEJx`0m?fNl9I5=`(K-ospVVV>dREr{m48(wi%4C?e6w8+X51ILs zo|q}PSfbjfEHI~thy+FLnuBc!r5^VOgZK=C7CVIsm627SRE);~HZxB~>WX&pLXUDC zH8u)T3WX04c2ARFYMIfxVJ9pLW~&nAF=;t(t}A6D=a1auTM|}Enm3iI)#Ic9(Kx8X zf8hcQu$I44a}-0;(J=w&jmdRNZjSde%5ct#U zur{*POe0-UBXi5?^3}p{rk{=-Q{MWT5hPIF{HR%Ml#iWHL(|gBpoxY9(#vWAhF6 zyOL1AR#!-%D=0EO)r15IDYP&5J_v!yAN39OtC;MGPEvGkZz0)6e8e`2V%&godQbcV zu1qYJA6f?lqPO|LkS{J?;%i7t!pfmv$jMU3z*F#LFVTV{Nsx)JvY4thy5t6I$!~sH zy}9hj$XQ1rs*RISZXCzBVCt9%I3TL|uB{_1(8qF}ug+ z2PfVf{EgZXH>*r8*fF}qbq`-U(=)24X3zfff zy}b^R*uV-CY(BZoe3d`-VJX-fAhQWu*J88;NG4gSOCJkN1v7{S~sckC|)RI3b z%2G(RpsY5&1Q?tyQ0`%#_Lbu^=aAqfOzXNVgOO-LNrI0=KWVP5g5G;dB#N)Q+j zfkFU;+R&V|Q^%S>mSSe@zJ2d&WAAdRRh=A_l|}tym!@m@ONwnI#KRJcxq-*nG+jkp zx354JS$#MpO{9Av`7^(a>ezU%7$!&nm~T}bN$2?2`CHBsrn2oqF||(Q@^wf%(MiFP zu&+=OAn8bP-Ov=&I>Oi$oMa_e$H6xFvuAVg!0Hz<#fN68lWPaynQJXkiF z`#1G$MglO1i?b{n0)e2LWq=Drd+|wo8aInmC$2AE426xmYKR)^zfdTd0BbjTLnOMw z7a>_we~T^gX=sS0Xw*x{9(7(PBhHC zVC9)Bk=h>sOD8&_)i|Y%Hu)L^Wuki|#$d3%}=M`{E?a2>C5*MX^8jhF! zS@5O8m&&emGJGmN@T)ngZ8kTEw7{dBOhPpO`qA5x+|t~_2vO=30)alOj#;7{90PE& zHvT&Fx5zie*+GM|yS-?pRi$M}*h7PM>GR zuro&ht3J@<9PGA2Z3KC^R|oNCH5B*CWfo8W?89dZJ#b>cPA&uB0o5mlUMV?mB|VMJ zCn}s_0mgz`L39OrA`pqP?-Tx?Axh$V{3q23D|96*mYunRrpwvJDzobkg>@DFB>tUy zXP#TvBp=6^pI}IlWBH1@rggz&g>0pIBe)^h)p_>j?&o*BCzgk$qpktk$dO~D*Xdqk zd?BeU>7+S$D)~Sun>t3C@v!=OHo12;!W*5AsVuDxST*{}uaxI=)ox!XD5ey3ayofB znWOWV0QiH6`DF<2cIX3eSMz5?Oig&qWqRS_D14=Lb2NFy8&+SV(HM80SWD-Y->cJ} z{wBr~!Z`C2BT%dVJ%R9_yl(N<<72{wu9QZ92$_D&A#_oPYxMfBHUPNBcgF8yxIv(b zVxI^0=+S%iyIXViA9(5BEiBZf*#MbumC1C1N_4$3lP#Vi&qjMmVaF^)R7{+5BG2+` zQ#8Cp%j_XW36ae?K-1+_gkPmh`DUY?6%<0i;vM&K{r@=S3}nYXn}eND%?E z_sJzap0O+qzS0RPso?1K#@2_fCGzu^hBXbJoV>xuQdv{1 z0~=UbAUM$(4i}8FnW9u&*%Q7~Es$uP-p9D-Z4DjhEPo`(-55TMpA~33&@4qR4O$$< zCog*=?1Wy=!@NCcA%Pm=Zok0VVY8Bwc367Nh>baK`WC;!CLBWY_NG(zx$<*DQ5>50W}Ick#MKNu<`kJ zGx@p2L~V${lx2;#o^-Z154#dq>wy@yuN!tA34S}nEn9)f%A@4?jfvO;s`Y<8Mn z5vOfPN%b-hP~?rv&}aHJl?b)QO}#T_$|#G1yXs?HD`L-NC%?sqm6}s@(SZfUnxAKt zua&vRVR?VG21Qc@f|d`tZ6cMu>F;zrCL$FFr6$v&(;Z(4GKfz9Ukl)Mpnuhsj&VrL zf}^j0>nf!9^7HqV3aBw?gy6EkM**epD8f1ow~R<49%*j7-yF$x#HcRwzg{*!2arJ* z9>tRhcHSr|n;1KSy;7Q6H&lh6N5WGaRj%Z^KMc~reElAj!M5s7iH-f%da0ja2RGk} zrKOPJvh_gqnh2kXZ$F}J;h4)83Yf@=pnd&yim?E$VFMa#QlqSCK4g_g79@cr0sf8q z6G4k3*FRpyraHT9*~Sxax_FX(->1wbCDp(ZxXm>e{q?p^6gty<8X776^~9643yk9~ zb5m8=<5XR(t_KyGq-S?We!^89D704_Xut z;)774)75519G*@X>88^;5+JY73OuA)&>3+n5`U^Y%$k830DUX6)yMMkQdEtTmtqsQBs{q*8ui|^)CIrruXlY-`x1jc?NMY;L!kJ1>d;K!`=8TZh#2dALNwiQSII4gFY^^dkhb ztn#9={hAlPF?%&V!7(9A-MZeP9AH^GQYv|brWz1%SMTln1`?($=k zW4AZu(bnr@Z&jU8AvWwBE8uxKR31Y@&Y`O*%Kb)t**ipA`|1me;~qOMhx%4|K|tNL z`o=g1t%RJNDzElBmZwMGuOcGk4=GsOKcqOj6=I$_%Z$m01$$+DSxjAJxmH~7nfnIL z!_O;WHS-L99&;bKI_W%*6SAc-{=hR6*JoHLLkfDICN7=pV0n-ueXgUPa_C>@lE>xe zB2ZzSGu{)<-XB|8)pau4D z|K&S-O%iKZwTtv5!Mu)s$nZd}-1?$X2VbKf3K|H<1}qR=W6kGK|GumKIE$kGv*1T~ z05b8vD44TbI&l5geHMyiv-`qSdDy$odr0@F_!&P zFJE+mehhhBjb;d}-L((KWXF?}K4Jyp1WK=QC^ye|X+s81_VJkP2T2SA5G_TzUFcuw zUQo46fy@yoF=K(thyAvWTeU6cVB@!w+U%D%ZXOu@I4J!NOIk0d*$Pa*M3!PC+Wtoc zY)Y3*_Sq<5rhP1zQ&e>q6M;*T%MXv0RnAYX%L!1H?zV939qTrzg#Rz$y$yrbi>)_3 zeeXSMfrnSx66XS_yCO?fj$c+A`oE+aT_30wvvAfWl)9k2GhWK~z|yGmU@y>=nByPs z>MtIt^dSD<_~mq%j<;V!J8KR}!avG~iq}@xI8o7d&@OT`OEwAShhgsk?frvcPk1?fafSE!atG2`j%F}%>NzVGo&!*rdQjDmpMIPadrUKN1`=!dNiz{Q{oXd2? zv%~Qo_sgEZ645TzV!<8?1h8PWJOUC>qh-5kbFm1CzF|-aVE} z@eV8s*XFdvtd2>qNn2$#zz)mow?wIg>w5!!<9n-*pJTE;INj<7KN|`Nj8oB)84j$Y zgN^~5%_QurnuLg-JSy+_pwOeE=ZVQT>6S+>Z7JL;1J1!Y4(-LM1_Wvg7cPcY{FA@? z6n;MY11p!~Ovgk^99wCy@Tt`!2B0v~R?67q2PB2fwS}(w=I)hb&%=>pQbHUG^Z`MG ze+K_Z4-Y*jGJKOL9MtPIFmQYM^O5TNsgM_sJ9$S2jXO??y3X+B<_=8Qa1IuP(b*81 z5DRkKy^7bS1-5FcD(mukSjuS+q^c))!%&s&m1LyNM#8{do#%ltc4`LGEyP*CBqzL* z1JSkaCM?V2HY%>~#46QM8eS=rs3EW4gx_vgJ1@?jUbA+@NBBCQeU=1l6Bj@Z%PWze z2KWwyhc+gA+GpRAH`6%)Wp-W)I*Rc+3UiVti>7JV7sfBfy0W{~xK-HwB$7V{2meZa zs+OM}ol>*{X1N9=4ZSQ)_@3c z%6odA)W&GuCm|$Jj-{C(rSugX{>&KL{Ef?$qf+8QKO|_Xbu#S)RijyU%s^lKUX$<9 ze*{Xi^QU9w?83y!j5=1nk=Zj8|1p?mK7OpB++K(akhV^E&ikVrd%Hq4x%sO7TJk)#3!rZz=nL{dmc5azAxeSauzNU&)vOwN%fn`Qzz zm>s1Qpv&(Qo$=vZR=Ic~WYY2Ks4!9Gj~5=$5-&6VwMWO+1;VW$GC@W9`S;KLkLvi< zcQRe&^k29j6)^ZNWBxfzpfnW_)&hJvO^nPHYo1!1;8ZB6(%>uOj7b=MH8@-M?gbGk zhvU)FeMac^4fK^%8~gI!49x5O*JU-%z%l)F^57-kTj;A$j@HGniR6tp@-c&FN9mUa zgT4W!o`c(I{7XP_&0DQ09LC3Ra=FvJp!2T zA6sMf+#lf&zX{P>$DXx>OqtVwZm>J_&ui`s1~qgPXL z2hXJ(DfY`f+p3eKqdTdj6MqskUsd}{d2$B_)DK696d5Fvm8+zz+C-Z-+OsruS2?Ic zLcD^;*O56z&4E7@AnKO+WM6@itF)PDT_x)%{60uV#y^h2sHOsZ;~pEGJ(>O8$S8?> z13k@dj1LIziu>jNhv$n8PQ9p`;t9J3$`w({Y(dGoQjCEKHU-!1?7|eg{_NG{xvp7l zQe~%Bo7Hh}{zm;)al_i=znTo`E>K$MyI^VeFEbn~(*+)G$QCX<;hg4_m`L*DDk*QQ)CiS-M&Uh(M4oYMt&;28TPtUJZuN1gm z;I!xzJ`DjctE-Y1P^q`FRYV1Q#||hSBd8ArHQcN$#xBMB;tmbj-QRz4&NTo;jsZ$ z6XV@LLBNEjf=6WtbwHt5JvLD`q1k*dvm4s!J0sfoY#dgF>BM%6mD{1p1bb{8#(!k$ zna%;Ti~m~84HvuRkRR!clqMVMJ;gHZlNQFq zt}4WW!>q)C7Y(_PT<3Q*;($`!S~0(M3o-q?mGActJNBb(m15N731_68QCVK%C&J}6PzJh-({ZLy)NZJ%fE4=WM3MB z!YIXo@~YueTPL{#%kPVfUH!Oj(~V2*Ju$I*Wyo(d z!7lIZ^^R3)*A>+@XD3qYiO&PT0MeqDQnPxfvEKF?H-0yQmtI_jFA#JAy7OygV_#IC zR!Fq4tij?Vdms%!ILbV!lb}T>7b<^=E}~|n*UPgAtbo+?c9b1hTznCWP+`ANxf~ee zGqI^sX}C%x$TOZ`3In6_ zp)S!EsGlQ$?$0aGIF9AG7+}w;3fDu$i_9&*;|o(*Y69ZMu!(4dMafCgZru@Hg_Qj^ z)1R1dJQ2lHLva{3d|Q{Ah!X`x0!*wx@=N0 zh^aF0mOKI**e=FWU#Cn7c)^%Vtn2P>tH#-zCb!d zxkX|aQsNpVm8+l|t6Vu)U5JSxL-4Pos~)coF_|k?)mvNW#7itJFKQ`^sO)i2K5ab! zMPcc4FyWV=JBzc)E#xPLyxD0`iRg=5EzM&X?Q%m{BDNDi)@qVnVX`}^vZ{1`c1{*a zDzEH-oDX|(ShY(zk{AQ17sCaAf7jl!_cnu?h$I~k)@YRfEscYK3r1E&f+=(ZL|Hrh z>+>3RWi6Loj0+Eo4qdbKIsVHX9VAp1zr-N8np}EIEZXQ|d*h|~bN>AV z=2hjp;)UphFnkQ)sVM^78vk8~vxZoQVxg(&5C|ro6R}N~?K6~y)_pq=Eut|=mjj@M zFQH&o%HFChs?7?8=5b{WT5L<5KN#?T?f(9E*HCWA7)?O%FO0w5hkfLyht;B)%bOK{ zOD9;$t|0?@`7v?*AkX>uTshxk988ZhHhp246e~TDtp&4O+8oOYmS0>d7!VSui34-C z{rBx>HvW5TXl_%rP@j&L&cEL_$&%wkK|`V?fchyaM$ja`9ybi8PfTuco4D57)cEB& ziP7%KZUx6i9Td5=?Ej=;%G6fEW?&>}#ualY}J2FtrreEh%-)XQ}LybBuG%|f)I*aF`)%d~XdzN_;J`l(nTQpOsFPtag& z*$~$l1v537SMW(mZ>~2QA_;-034ESWQ~sq6OnZ!X6A!obpDil((h6Ai3= z)U6U^%HjE^GjlD&rO}Yb(jBq{m0k`y_vG>R?=j&mUT%BG7Lb(cL+*c;v*zvaM;LR; z()}Z>pbz2ZW07uGmOEm9x^@FO3$&Da&9g%hH?VhX3v7VkFflL9+{(Ys8HZhKq1COeQRh>(&>s{v>K0R7U-zCu?2H0-BzwO5mS9qVV|z!u zY>%u(?B^CIJ4JuDcuLon?Q`rJv3FGEAL=Sd8P9-WsjDR0f)h1wQ{qmU4LxR~l;XE7`I zq*2-LK0-Xf>CxZiL!~fK3cWP9{(zs{m&k>_dbsea48V??M@4#jofxk?p_1q**~yR~ zPUB!!-NC$~RMo0)JEEp-SgXl;XVR8!Hr|?WxvPI09o+9ZS;N1t;t^7TAuZ)f2FC|& z*{^og=~@;su!nal-@9Kt5A7j|2hC@ue^agjg^*#0s1ee93%g!Yd`z2)$|=?VngKdS zB;fg}r_R2dtSs|B>|aO%YQ8;F1DyJq_v&PK8461Uuq4BY;Kjlsu}EH^kK^COIvUDa zfJOWdQMdIPPgQRfD>$&$Qp-ZsuVc65J?>MZW3;m{jyzQ`7P~eJUJ`c>W%^-bb=e43c|LJYg;^ z)%|S&p(bx<{FXdi&_tt`<$>`t>12ASzvGAdiY}nC{}Vsi_Q`7#mhXCw zwAG6G-DrdgSCBs_7=)o5BHU_oRBlB8(5f36QRYmhrWl%n6@j4U5Ts;>Gvrz-@P(s| z?u7fvYKzleAJtS?3mfYQtdPZS=QGEkn%A^VxX82EJ{^@{_iS=Iv!rAs`up7C!88vn z#T4K7RD4H3SpAhy(q&38?w+jYK70dFFC@PcvMN23ieVg|?lC2(TggBK3IZWfc2G}l z(P`qz-RQAvgO*DhavSAZ9mVh9|BPP-pdpC&y7a~R!yaQnp&9vXG<(L{J>5Ryn9bp# zlVAxWB@9)dAVpKrUy0-2m9(Q)lZpAY*rrCX3GtVXHI{jdepQ-?R&UbsdHlpO2;zSr zg8zt0woLugWPZweXu5b&xcEZ>mqs3lkbO*MgfeLLFEe=uBfuC?XI)aSBf^Ma5|(0G zZ_qWPB5kavPG01ZmSbjUgJUENo(8VWdZP@njMq$@4 z#pzyt{4>mmhGe+wsmaE21h1E$Vyj8$znVa&ejxJ4gicdV=B_6zV(O!zDJq|AUJ;4D zEeYTy2q{Zc>!AJ5fg!#(n00m}9I$Sf__i@1%bHlgH>wR&E=g5^>ZRlqlFc9U7b-fP!&@>(2huJO??IO~8hL9U8j)h30YQ_h9tCc*K z$n}@ueW~ESMs#TJj2C)XHzmTuXL$G=PiMqz6RPf(r-Dn58DI?5=I$(z5dUYMq9inc#b5&_7pr5?>D0mSAiAKu8^rIwGtfn^D_%HtbmKg$#0;xmjJ7Ffb! zZX`^ZdBYJ8D`3imCp-A{J@96tKV5`I3rDZ3ki@S&mFRbb4|*t?)=gWd1`=tg-r`aT(6I*fxGE4#QH-3WmK z$bd8Ynk*y$hMf<(bRSKhx0SdIQn(nSG>M>bDY5sGx%~Wqt*gpeY0>1gR7Y91ljK9o zUE!T2vt8vccmmz~Fi0|H!eu*bBdIhdt0#6(!l`E@PqEw&U72soMQ$R1CY z+Pqcq)Jtn;0%RvIDJo0rHxyrl{P+07#%20QiR zKl$?Ozp8UC^Z`dTm*1f<#(g?6!LngWc}ZCu5BGWklnZICit;T~tkW@B@k+aS1t|^_>UzO6np)wP-N597CIO?K0~6bx z#rRG&wsdk3Ib6sCTTER7%oA5^M8?#URo~DKaTY+AAkbTBns@&^muk?SHBkW8eUIPx z{RCp&yy~h8QH?pHp0MBmk5W9n`Jf5c`&$?DK z#Eonl{G(A(QOxqkV5vLSCcP1}v*xx_a}jUI%V1zon7yW|rppjeKss9l3noP??r9AZ%V))MTK~aj z-sM->oRC9yu)cgfSJYj>>ax|s_F#!7orjfdo3KmQit?=2`WZvdDr3}%?TBCkyofapbZ~Hu@j?yWwTOlz zezRGyU{bWgOr8@jv5RhsI7KsSk;H$-k2ZdkCQnn!_nj6eD@#|>O%{`LvEP5t(2`=?WYchmi4nQD4d4 z`}Y1Xv0SvK51Q)}NA-|+F>B&$vA@6IW%?N47$;C}L zYH(VeEG%4@wvEzX0uGBqKIlC7IdbCR z6ECANk2RMB3#KOFC%vr^LcGCtR#8bYjam$^Enmx})tBm?pk21pS{S>DBoGO3%6BR& zd5Z!|LDI`qRf~^G?@IHkVV)({Jys7JD>rgQ?G@CzYNvQp>6q?8d8{6qJWZ@ATSJMX z1b^7iXmC{6JVkqK{;;3bWvj8vb|Lo0!ehnzezET!H0H79nqa|HPixZK3IZ?jF4c^& zfb)=)*PxZyOZa5#C(q?4L{MNUU}^DER+p{DDp@(@KV|4|T)V}7ZhKCgY=ndPTFI@H zaz{BEDmQR>&E?d%Y7`4qCS*yb(oxCslI1KdUW(J=WH>mS@rdH-f@JhByC_j=Ts2fU zbOk5pa5|i&um9xrA22Ccsy@J66|6+j3PD2BXa}8)u#csz#7g?h)rdWCH@4g;>>q48 z1(pI@3tPFM@&XF2g`D!A5_+z79E)V3*j_y4HMN2z%DbBW-+GHem7?b1Zg4fQsb&+G zR9!+a5tIJkX<*FhS2{Ak|O!Vv@BT*uNZmXNt!d7ker`dDLPI;em z-(#a&M|;tb$C`_R1(RPw+{+3v`Q=D-Fv4E8aULzWs7z;QL*)i8sJOt`*#cI{O1-C6ffb5+ACOFzIKMd>$RT=Ns=hD zm$9UH3Fnobhtuk0WMTw=#4l_NEprY#Aja`Fd8AtiT~VIPE{JJ6w!JBa|1E z>+_fl2nY3u*7S!@YyPIjS;IwD7jaqLWi0e8Ja?;cHgb!pu*-H9xE8Rcd=2%kdLq#X zLxG{3tT21SUe;Eu#U{;M9oO<5jWJfZ{}=mzhK9uZTo$Z2i52l7CPTz1Vc>ThBuWPh zS%HOfn*n8HKGpguO6(;$nKVqg;ult4NQpg`pdAhlYqnQxFPBC-RFQToejn!qVDYh4{hlg5#_t(6iRi&$PHPAU%Endo{HJ5T})ul9g8qaxCMj(2{ z&MI4}c2;v<>3KA|8yTD!6q+`ePU63V$LgWk(=5cU%j&WmupfA23DURy;8udv6zA;qLG|wU^XxEOVBL zDLyd>m(@j+r-^mt>$sre0;&tDu}Bt1gQH1vUQ zdziG2p$1X*i*3d19oj3zRyw>PFYC(JVU;IKd-QyU;mEM(!2JjALuDRoz6lm2FMF60 zCWcOg#&>Vo{rte9fwF~-3!Afni)grXs2 zY;Abf?a3$zt1^0DM9<}{vPHJG-1x#ib`S10ygn;RlzLbFjFo1sI2?|$tv}s* zJ1X;7`TryuOQL86&;E^hTOp!-zwLYX?RVbZUUEUn`Bk1OXD%nI1__B`dohjfMpl-t z&h=_=M%tfj@%LRCQ(E~|@hG>kv& zpV2RwtttPl@(e5`q!J+|VwLK_ix8pOS)J2W-#8)#@8zDC84Hc69#e}47$vIsq>@a( z6aY@jCwosmc5*AGV5uTmh!|vAQhw-nLmfL_*zv0EeA|lp()yCwdSIMQwqcd5$jEqX z9;%#Gv=p|mvUDXYOIG5rIOz5Eo~!rK;$@|3m#UAVuus9yb0#mrCfjDNbQ$0*Wh)#! z<3Gb2r{Bohb{%iX%lQ@OW05RE#u$nWxewld@Rz8_W0`_ANn(*{n8^_FT$mUciUf}Q z>d33RPwzfbeqQ;ia#y*&lg)B~MY2q8WSyodHrYmsz5LDpee*wwJ!6V0 zVokxCN-}S2f=Q1n0!01${b%;vx96FouA^i1i|SXnZSMT5e@KBONt2glOnYwQ4|0*c zh+bbW!@*(2)#;)|OQ}$$YMbn}U?fO`yJ2z@xB)AJnY=4ef)|Vid8YdrMJJo;DQB2Y zJU6Olyj0(_$Lg`}^zXdSx63z#!UO$G!AecymYzg!>zr^6ZyoN~e*gBT2U-V;n;V;( zZL%%zetLr>NvtSYA;=hXOWi#^PxQQn!aSBKSgA>s+X@o%x?;i=BGUIv z-@Dsh+V<+il8MIps`{#YFN1Jc9FwOHr0}wO{k?R1yQjRCtlf;)4an^&O~R*oEfH_X z8>`1MU}aE*ccoNtUg&v2$dTJhRtFRD2EANZd7-d>=fTKeLHp+R2T+*D%I_yDKbXFf zm?&Ctk1HA(i1<4n?cBQUwpz+L zWcbBkwOA|Oy8A7~c`Q?~lri1gnl4)L#C#;&ANF-U-nH$mm)?4HyluR$sk*5q-#ji! zl5ogp*9%gFh5Lv0GcYkQFdgY0X0g;{I_iYs9 zu}s0zMxt=V!^DY%zmvjsI^sL|_{q24+Va*jr>aj$RST+G+%|VkzxOE7sd+4zAzItc zY$F&6l8m&WpkU$BB2#224_dJz)S9^!|a(Lu$)|2gtV~mH# zxv27@8UNN=cM$Z4`W=TiAKrq3JeDa~`bj2SGd!+nAR0RT!s-3nf42R}c3b8UKp)fwkj**f)%`h;nOBVo3l+Nx;dvex%Aq1E$Ix{_FIE2hd>rFx9f;Ar%Py)U%? z@;kr0WBdQN{Z}LJjvNQZfl*-S?B9{IulYHfE{IMFL6< zin5wQTcN6wm={heOST*3T>*rnVcH7Y@Yp;V=b;3v#aglL?rs0c^yAEvU<#IgQmrN? z3RiqpF+`Ne=v$*5`+m9anH`-w-W#nPt*EW2t;lw`C`JCRza|e|d!i#{NY1c@3-MWc#}M=FF6ZKYPIFMTNLOCR#o_5lP{MMWY?xm1M| z(j-pOKtisNIv3(#NF3X7;!C_<@9ymE?9B9Ge0I+s&#c$>#u#@#>1g&cJ3E(uzWM(D z{O3QB#;{vCBXV5*YCld4o%lx76^p16tyml|9IGD?d|q;kNOt+8e^eYU^a&Rm@tduSOgp}s12fXw6pNh4D+ih zflB9SCG{lMMAtZ$zb5O9Wyh?;UmWgw>kn_edg#}O{(9r!jSeegjlm|WQP?C!S{$~@ zBFc&o6?v_Ku>mV*<>DveS1<0qc<{(aM-KHx`mEr>;F6d>=GeXb>A5VE0!8dj>woByOQcSe1uck0K#0V#o#Z%0iDHi+_D#_l5l@ zPoF$7QaciASBpO`XXfQuj9=x~nP!fb1q(Gw z4PtVvXdTVeaH{9jzz2Ii_}4qnz4OP;U7hWzFH(K56;l!gqPjJ{9ED9(gpl$|3KP{f zO=Lyu8gV0Y^jghha8wfjhyWx23IIQV0M(T7CIj#R5F^_n%U3+P zV(W%g8`jnb>!%+fc0o`KI;yPWL&tGu=#29LO~F8?N?=oR4J(kN)e>pJ*2b;KT3K}T zb_{o%?l^k!<%|2Y9xZ|59$*zH3aGQL9$f^I{v-PO^RR6|f_;674G=pZuZaza(h{kv z`KQf~tiON#Lqb4UaQMdIvfRN+$FJPJf2QRb)F?I64z|~g`38SKBlADxNL zSCcxA>V0|&#cn)NLo`v*>X@E|i6tr)9JM6ZpS1z{ z0XD$~0$T#j!L7k9z9!!WPUM2F$8{Tm?QZKly691?i>{k7VOg+XmXK3X)TNEKh`i*ra_!O|E#2I5Ps@f?OIFnfgut|~V^ofUoyhdv z?sw6z_K)xE?agK{7Zo5X%Saggnf^>?`ds?l*uTdv>O*=O1-G4c+f)=(6(KG<{z$8- zsrpk+4=)k+^_5Yqx(InGV$! zw5?jQU`cQ)`9)zVobN3pqSN3%5m*xa|~h8Iwi=;P>p!@X7;lBrFuTGFL6%m z(ne5RK8W<-(t&Z>-D6`?bPrY~y5{KX&!h10a&j37d69>gbEpI7+m z*;H46J(JG!t3qe}c*~7RRk9?q>$>cX zWLQ}}p$W_thohZ zw17K#k*65;!40JvzZ?b`-n5 z-ZjZieluo6jN8gtnOrhAm>bUZWUghdq|T?h)MIL|kuk^sT3SWX!E?IN@hH~aBNOjd zQcaZ$wxgz0pq}om@d1#eW@$liM{tYWDsSWid_CD{rPUSre%qpLh1rN^NLZSoSuZ{I zQUeAMhs$7SkFe%0+{lY|9SKnpW2T9VC@+cn9iMLjNRbC4ORLvZuV`A))YMqlSYIEl zk7li`)PAE~1P|eMXS0`rWmvgfIyYpbj6r=wA20@un_8dNpE{emu3gq{p^!R46BJ$E znh+722S?mIwhZ<+Nm5R53e?jNE~2v7p5}bWAozpe-O6U=L1~e6FGS=!YAQum0MNFe z4cixQpD|ex>^`u2$N68L-wT&GmPc6M4mgpQ8-bA}+gS1vnQd|Tr2yXF=8q{Y%0ekB zRdZo3BnHK>5EOz?5E2zJ$jMxQ<2i{FIFS=L2>>{OQ^r}0$GEXsx}|}GY3gPc77Uok zS~<(G3@c-#jD(po$BeX*(Bt~3F>EAqH**Q~syd=y)5lOuN|O;3T|vXCu@j8Y+np;U z<%Uw}5rn(~%rc)I!PoMk&{Ls}@+x_gP%SL0Bw=K2G97Ga)O$4k0A;1R`R@_4m#PHWc3+)Hid9amf?_ASovaxS+xj*VlpEM{NROr2i&kBQ zWg2qwjpWhf8_5&$J#wA@3I7&xxww&2xMdwJ;XH=Z zP3ok8=y({b%ACmUb}B44l|_Hfu3Jhq%~ygd1@@d8C>~an#KiQ7{7@jRL(6C#+TS4H zUH^7}tNcCr0kKK^4##t4ji~5N_g3sc)T}y!f_+VZM_BV8rAW+xJK;FRuAE4ZHmu2F zSnO-3h7zycj>m%yC$&xDdqi~+@|rjl$bh20uYRt+ub!8dNpJag_&13w#m#((Z?HG+ zthR==VWe`Y!fZ?>cd+zjix0*x0PgOoSFOQ=8*wI{57t2xq@@i#r+2f6+>6 zHWD}IE1Xc5 z?VcA?y{SRC^b&f6=brzRC@2?b_$rgV}b= zXI&Sng)jn$fl|}~F@WZ9^CUY^`tqK=cJ|zW|yY#e2SROoh zm=;P^k6<(E9joO6;N=Cf99`u6+r_MF){J7=c1 zyQiwU>fSpOr=}u{j6i?@005BX<)k#g`_=z8I2iDE92xT^cn9>5kk^6(e*)nwW5K`S zUFGyW005M!|27DVqk}x~L3~eXJx@&+Yfm3DcPoI8j}METvxA3)nX46xi@Qz!l@I{{ zKn9SP64&xAxa{#MAX>^|{iv^hXOIu(J0&2T^y{3hqHUj7?*eTT?9kp2;tfpR4MW6tlG=&ienmB;i*)(*X-~JGxOU>^$ zW(Sj(HZoP3+gy?2%I%Q%$WbX+)`A?wiuE)OJxiuW<~A3t_|b_R-CIRwrbslH7W27y zn9314RJ@bXbEGGz!k&Ajn1B}u&rnIuP;0<3x&$XAUraZ;9LTDY9CFi>kvxjqv1D~^^Ym;Ey-G;!2siEnN|TIjU3U4__roIPYE-V;OAJa7iOx zzb*uTEA-nef+?=v1x$>Q?O^amf~$RNA*oz8#>Msx_r5hK2asM&w9Ezp|b-%M+#s^6`%dd^^5r~g>#^l0nL z(hrk0npQN14SW^bRb+$mB^U+mA_H#;dJ|+SHs#GLm~)7(qRiw6)7NY3mp(1h9OgJU zEsC19*Zy8zuKwxdZcTEvg}h-1_vKgS@ta)Dx5^XG>Qn3e&e43Qi@b)s^5^j{zE#c8 zjqz*1>SlKUL%t9S&J2Vv(P!jVjiYZHnR27v1|nv>8{;4wVQ|Mm%sCOvsHZ~(Tmx@k zvSdU|Rk@ug->*0}5)h1|R1zwGkrtxngD8nA%f1MB#8QE#66Z3V;#FfCs9j>BIt%t1aK~xLt%MNbgDcwPni73Z|Pw6Li zA0)gTAibUO9iS6$qbJ-pd3cxK-k%FAKNfNNc*tuLT({PZ`HJR|Vv0%zh4O}hbQLbc zar|!^XcrS4{{8+*fPO!^I zsP8h#=`&ImJS|T_1(0>z5JVu}BP#52Aq( zGbd%BND>_vuKC~qa*3sLJC9F(z?Ye}hJugrQ&e`@jge0AMo|h(d|x!K-t1bM-tL=j zIyPLmqI=mlK4EtP8=09ByB51Dnfof_?b;U{hRZA|EB)l*Obj6u01@^lWVQjxymjP$DgA{T3mUw{ipF6(JkEgK_?(NxG zr)$Hit39`Q-^gBO?)wukxb+#OukdqCjtv2|1WDx=5&`44FS%SpO;i@}&dhz>cKom} zs6<T3kP{?CF1+>;f!2qtwIido63yNXAB{=f&A9F z>N(25@>{yAaP<5o6oPN;UV3{5;Y=3U)^`X~QOgaiuP+}jyl2-VOcZMuWUIn#`|`iw zpgvgP77FHbjJ4M5xWC$!DK9Ex^S&QvSS`sh5RQPc3OuIF(#>@gm(>If z2l_ti@+!JUEG(=Q92dUsoeNG7GYDTWT~sqjA0fpQJ8>0A7SNR?FDZN>Aozpf7s6xi zvKBz_dkIKWdAn>m!Pmgzb8Mg zB%abm1B3*X?&7ry&N=N|?d>bQ^;^(Q{@`UEyb1F1Sxq_NL)uW|dd87|&!{r*Bp489nWGt6{x?<>ys-C-W9 z=(lf=;F;^M@u5)u*@=w9q>@q~)80V1lx#mmkp%NcOxs##Yb{v)^_((f`3%Mhc@$mTjYA(nTH-gmx<4O0pDEZ) z8nyTu%wnE^Bt|7{o3`^NPJVWb8}Sy~^53#etG;)6YpOPWG3)p^Um>k?TSl`PI?laM zwVE7=+r_j?pMrY$_v-5Xz+_+8I=e7-?0x*@uKCpJVcvtaAOKsl;F5g_Sl;llzjSSq z>H%`E#P*o#bUh*F<9Fx4_OE0gWFsIL&Yk1bJ1_)NS|}M9*Yvb3ze2lo>>nl*=SZY0 zQ-e+rO}cMP8t8h=BmStrK`KIYy>FhLzT5+g8ezevX&UAMF{$L9->O!kR;1qB>*aMW zE9rvVYFkmpR26TkwT5YhyQvqjZ{n57QnPig<_c#cJ7Zs|OTbC=5lcE6lWbAyK|a}a zAUC3hq`k-RZ)9$xJSAELURfUILrck^{NmGm=EeLHw|ykpt42B@V4Ot6ZW1jqQszc! zffEl2iH4bRBGanl>g-%(5L&ZY^q-a<+h*&h+vPDgKKH*d1OX0TVDUp>S(J+1BnOZJ zqJW4$?oXmY4xXmQPj@AL{IqB}w+WLkJQTz4OQ>-8F6SBtEU#C+YPqo zCBAW4(}Uf~_s1!}viIGu@6SI45lL9|60khTvTzco-#wf+nJ1k6MAm{=#7qG*Ji>?} zLk(HZc9R;ugT@6u#j=HUDvx}*v=^ZBsfKd?#XxpPUz`~9MZGDvig;73TC?%mgOVz>aPt#DV)a|dIRdX~#+YdqlL4|-Q$ISldBwtc` zcWg~*wxc~-)?jn(t=fbPbPVf3-`-O{&)4qOdB!CE@DDLj$TUDLv1OfZ)Ee8CLkQ}1 zTVDbhp+zI!_o2gQtm|DO4Y8kEXo=H)WZyoHUh+vTPY#A$?AJ3%^i(9VoVIxQ9#ydP zB6$yY=FYE&5p7J+y1&xlHNx-+Wg+OQJA|w2LB1z#_qv7r;OAd)Roy0Wyx#heWo$R8 z&efT(X4Mcbd7a~#3>EYK{(9SfA2KLsD`f}=jT;X##T0>TnbKVp2$$g9Sid=ko`#m6 z; z-*dFrQ2+5~8>vOyYjKwJcE7Xgcqd`9@KSR@ju||7gI~;gJ9+@&`cV)l!ngCEmFGXK z?;(<5Vd%)V1Dq#I)A4q#EvV3;oo9u0Z4JzZ`C6v?OGmnHmN&67_Lc0#{c1>b@e0lj zZRl?y9fUK0SliMJougESH_csX2ZUuR=^rz%qN*8;$V;)VX$QO#Eqh-(uvKg=16#=O zpvBsM1aC5ORT^)Yx}sgT_ceqG*j1zf@vwFf-acomUn`(NC(tvj&))TQI$l4>VNvo8 zc!yI|E7C?hL6M(f#ic-k8%li$tnpHlFKvI@$Kck$L0!3AS-v)1hJYX}9DDegzf6aT zUYA`zd=4?B=cZWkvXZA2Qf9FHxnw_rYDta~ImvA3@|kzhlmK3)6m5i?+Tp{810its zLtG$^Hz^ku!9R0vRBk?=T9U2nuTSfzhBd2ZVbk21({L$BQocG>hJZd2e!IVq%4T>G zBT<4K$zgo?P0DGIXmq!*&1X?Zl`?5DBAjIDnH@l^m9E4LI*ET}aAs}Fs%|reg+VP@ zSg&dGC$LjOp6o#ODaF$S=LVry;qi!9nhRuT#Aq8^StbqkAMZJa+cq`Ui#sLXBlxC<#0q# z7q^lKlf+~g;bO`FXZ_L3?*jG-m`dc^)s;S%`NeRqBOW<9uKhThQ5b+f-9e&8I6ESX z(TxR^g_<67JRC0Qs%W$Jtctz6A2YJbRt<~$v|ekvB|{~}|4r2p5CuY^29`sde8pyY zg_VvU-nrS?ec0o^2Q*b+M4+9@jqy4~GWLs#nf*3K2i<+-_*hkzYb^0Z67gM}tyNap z6Ep+4q$zXpv4t|zoyXy9K+Jm3gc@RO2!Q4idr)7k22wx&6aT|=0C+|%U?QqcPAp}i zSu52fx-!#}WMG^@$ZDoJzu~jtEhK{nsn58e{ytu6e&J5SM?hHQYg$}X&JLuCTqtn# z4#Y;-keUZ^!iWyH9_M(p`wft+dh+Ob;+Pk1kn{4iIw`mm@y3)a+S7;qdC`>MAy(+$ zaU+U>1)kHTqa{L`_A@`%#Qa?>_9-4M>J{c=4}|QEMfHv_^1iN`c@a^ZdCH@VrOw8n zQWP6L)Rg8y5a4q|Al(DN!O8rLLW~l~F$3XRpnCu7nms%p$ev~fr>~~+BN$B6dWlLF z)`nIgLn)g*r?YR4u+Z^zu^_jzUs$DtM&tYPOsx7m(UuY~w?AWrnP8oPH%x#vXfe5y zy1||foWoVQdGFFnw1mP0bz6F=SY)#=PduK!f^xN0?2@1_%*>_Pu~bxK)bW`p=^T8| zw@3^(?Ed7yfRVq^=XeL4$7Lz^4f~Ghq;jxg7 z#iDv=ZsJ*zfv27s{#`M-2u;KX6&hNSj@E7(`00Q=|K7l#aQl%xBHH9ils37UPo)?E zG)bo`&3vV+(rpv&o_B2~CuLy9gQC@uFHp6>85ASj8)?tndLBE-if@&s&}3nx)aljH zNrHsNw2%nv1W>nOVC5mIJ2FQ{HL0;0{hNOrH4*%vm6GR?uf_wFy|Y4{NlkxaPcSP% zmbbC42v4PQHZk-Yz@j79*YNVnL;;s1Sb7L*j`T8Vt#J6!NXBYJ?uhOyq@%Ze0JIGm z%|uf!fN-K7mAgoiJ{$rTQX)jlksxeFD|2LSs>|<{Dc-~V`8P#%vxd;HB0U_+A1K_x zXn<6knL0_&`eXo>e&cx>DvW-aZsy2$NN5C^k(~6FZ&Gw)oLCe^I`m-Yj2&a+kl9cV zf>lbCZ`_o>Op2p##62J%rzC(RtVRr4p99DWpGh~6CFw`iP~nn^qR@OPCZj9!OjJ^U z0a)U30LQ4ccyL%U6kWO&sk$huR(Vwhqp8#LzOgfsNwaj?l8z~6smLdW)$o(9SLp?X zD+|pOaRChRp0BoT6CIq7cWs^e-BnB|L1W-&Yvp=B^Ou*gV#9 z84;SF4uIrIM`2H$gb$Bt5&uKAI;~Oza-RLC)MiU82Ey3x%$U{e)9Y)R#UyzxCgQhE zeU!9JdiLKl12oiA4J+H*jZuxM*z+M@))<5?6za09pFN&WD5|D20=%@J3Asz*0zK{WH%L zCVAb@4ZTvbte!yOfewbaz-4*?iEz@CQU2U%{=fXsTzt;u<9gYMI*6zv2|YYSaLUSe z&7XqWB_fs~7+lE$ppAu3ue(|g~v~|HHT@G3bRdi<&FJedKuOj-d{=d8)`SD={ zUN}&ha76-oWw;!p5^9UUXq0PrN>Xzl@HK+i=8{5ozoy zrP+HW)wU0J)A53Cx{pS`d1Z@NBy_5HXA@#(gc3*dNn%7Xkh2ug?S3J{uO#{ExDVX! zlCAZ^$1N+Vo|_q3c>@0eVK63WWYEhaCac!Ig2clHRB=DC0vfgw@)ezNsBulajiv-a1sJ>ydW!t!19VRR{yABR6EZb(d# zA_pG0kbYzFiCBQtkctf6v4VRKj%OGA{~@q<)L-!Y>iY>P5I%km8}=o z!Sux8XxxXd{g**nY8Ii%$*?eld#me#Idgq{>?}F0WXK?#ccmwe6+0-dnz-iP-061~ z>QC`VG>r$NTPtSiYzef)2x;aVGjIJy@Ys-@nR~Ro-m!mR``S$@rt7dSJsUqh-83XD zUe=4NV~u~e@^yana6K!mJ#%Op8NoQl5c+jzHjD~KVm*==!x9LGYi*RHihEx>v>2GLko*%#)euT6pN=(b(BH8tIcpB zU9(+tmsDCM+;+{I$_6{N9k@~G189mc`DBtf?uAoNYqT$oC;l#+BrDiPF;Rb`^2Rth ztsSekN^*rTn7o-raPRs`I*PPjW_@b=I8XH$Ot_@?yO*}XlV{#hcl4u!JZ8v2x4AJ1 zYtA>alg&i0u@}!ankRzow|H3ePdO0R?u4|-vftqu;rixl;TK z`j}~ygS26b8e#_$%lB~u>a`WfgXRPIxRD9?=H1osp=G6pm3%Q<5WwCW&C#jtuObhN zI}^c-Y(B#G3H@&!$%e&4Rn4U$lKuk41d7zr2|rmh0+FfoGMZ(yj-{%p4JarKE$`eQ z9Y#(fX*1&V8&6e1*$~Qed7|8YSo&2zNM$&Ju@UF1jng{iu=T0das23eU^KuhPF98t z`5Z<{lSM{4v^X{6KT%QgPqo9dii48>@w9g4gxtkV;QZsUbsxn=xf*r}x z(Fzc4r$<+ie5RTctf5-7OnnxVJ1xt!H9z!9ROu}Mj7jXKy4>NrA!g?Z>Pj{eB{+xp zC|LSDS2>3?tBC5)H_Z=if)8m#jF=0+^>n`($&X=6er-@(EYz0d66c3M9R5YYpYBFJ zjToj~83{jv&~VGM&{*yhbHt&VTqKp!C+pE^{#aUCval?COzhj> zjxd{+fV{xhFF@z=WSnbnxiqF7R5<5&7AZEA@6QJ7obdSqJa#Pim&xtiU+JTgh@}MY z83x*loZx=)lkxrhixw!(TclIzIx(tpwz1X|IH`&occd4~KW#}P4^ zfIok|+l`F;P2%J9m*MmSSN|zRep;M+jTYHZwCi!S@C_PngHBv7tanUmb%l7V6}huHRop!;&Z(reryfx4|fCT2|7I)YkDFt zAN&BhuegJ;Of_4UNXcuoOW=G-6OB*OPN&wsENpOO(&gDJhir7p&Utq)iSk1M&D+1l z;@hv9A^4x)GYt!SRo?cmLa>l$RH2hmh=+xfo)Tx2bmGORLIVh{L02D}@`r>f0yKL( zGy_%n7g1?K-}RD*cW5Je$P5MYA3goFhHH%cb>~Y>x#60~1NRqPc6?}qzpXC$_dI$T zc0MYAF=WjOV*X(F8`_S5?ag?XS>g8p*Ui7@V07A3W8csqF{x+$mZi7t-XT6lpetyz z<8opB#(F(JW12d@5S>xBwqRlh!$}gMs4+$wU?v5RV>2AdgvZ7CNs^6kUkTwICZ1=T=YU+H3r1DWR7Cm6!%wtVI8ikZx}aN zY`$v#uSd^k(+y>;v%JixyyWxTC_Lux%a0wOtM7P7C<@D@D9HP$v>&00?Z)vv?*Y`W z{`SqB7*?@MQ*7}z6>_JC$o^0O3N%-AOov&35+FYK;a`f1o|n#WH?&aDi(SD}fv$nF zhb3XNoAL*D^+dH~5j`r+NTj!mV4je&Z^ONCfk$z^Gd46he(wK>*R~mc`Sn;mQ!NWV zO{Wms=!2!jZ~ew?W)uwKY3LL!zq41O8b_PEnjJ-T(4A9Y149P_uJy!BrDCR6*^|_@hpvbZM5r^F2qHt1jOTM!heSLrHco%g2U^?E)&U9l^oULf3or5 zDGaF;Dn4dt#_d~dIHc8wenvv##623xnBl6+1%Ll8K4Xdsd@%`K<-Dy?cbO z@J?G%T2Y82;Xp%7cyi^(Qyi;v(?5h=?@4c_^!w(e3Gc9kctBVyY$9oK*ZK4nP^DK+Nyf2 zF9}Op`R$Etm_e-RgqnzVwh+|*sTj)e>O;RJGnXWEdlQ$Z>rgoJ z0bGbn*R~g{;dCINWU@I z+(WuR1J_Dw1ErSES+iD;h2-eX!|AuCc9(_&5woU8s5F2;@#RK>?Wba@srh|5KcKY8 z#@{>28I^vk2?(eq(r!r`cWL!-%!%zQRJ^+$(Zi zvxFwe4}6yhSkG^tOcjrD98WhOzk%Z19r)wxhv}NL;FHr@ky?=k5n0Pl)x&d%%z+jV zkrMBvb1XhzyNA@ve0i+EDgSy`8+|=b0~+DR4!LaYsoV*+L>Y;BWClgPLD^WP5PY^g zRner_ovSMzY&h)53eOmuWyz#LwEGwSai>GJ^GUuHuPZo!sFpz^8z4l}X5kh?c1%HC zSxU{4K3v-dyO57}8(j46dz`mWXfwQ;gigX70V6S~GbPH>^r%4`98{P;gWrz9#3vY= z=3{dOaM>Q@-m`VM+(60cv5E=(hLD0H4$GEgzE;RYhn7~a{;6A2Bf#3<@J_Zwn`>9< zFAaebm5ZM~D&Neh^)L|$N#lN~-+1!i9Syrh^o)lIq(pHCVCp}DvSSRkGzAxYnjD&H z{XK}W%3ke;i8bZum_27Tk}X3ep~}#0Y+|MG56|f6Q2`fh0Zf538>n$`6l6{yJpkxN z%=chpr&A=(y{x)TTeT}~9)Of+7I+D(p^+x`dmy$ay+*PuVuv4F3NyX5iU{6LZblOe zx-DW8xj%*qZX`+jZ;^n9!V*HUfI*COvb25ew4EMa!o`$~JCv={(m_duaE<#I%_GK2 z7CC;LQd8IN%-}j2b&hQ)R4NS~+GWhY87G0K+B|9?z%V4A+fg18WaPG`fzUqguhp=?`W~l4xaRUqmP=Q0%FK7!0APg@u$+@RbtpP*z zxH@#qR%z8)0Z^0~I`tZMZ1dL`3fhEtO(1g|jrCOI8A2id*Hq7E`QJ1;DF?m^Fv-|J;mAKI*T{Xa z{Sk5W4C!R#c-J)k$s+C#O&vz7*d>3A3x5h{*&sfD=rX0luYBX^C#N!LDTw@`KoKP| zs>$K1g!drFG}^W1@sac)8T+@7YVcl24jj;S?k}IXi_iEg{lAPQxF0uQmy3bK2x&y> z+$z(N$|rg(57Ap1B5gI6m8yHS@G;KI&kU8icaLs#OgDt73{)ey?)oVR?nyVhgRbu* zy=Y2V%ALW$334L2zo7hvtp+cRU5FCAnVeNzw(i`q2FF$9A_u*lto#WHpr8EUvpWP6 zz+0B)RTfK159(kqz4CY}4)B;2t+wYTiZ*X#2`S90Z6=ZVBliJZsTQrmmiwb6(PH^M zw+d=B(|2>o-4VB&(VcG|GW;S*kB(dq7>a6!bScoH=+$T;eS|P)#B{`A-ppI!EYSMS zUL#=88B6s-cj`gkWbOVaH<8{IA9wgh`f396yF5lH6G_Dl&jS;6Gvs6@c)7t|EwL2u z`$T?-&ZHb+T=5Zrzox|4$MSm2J@eyr%g~;B}py5)m@cL`7?PWuGP!{9P%QlBB zGQ4l1FwNLx9cM-5B~Ni8t{}$J|L9kA_Y2h&h&k3Xq^7_YtmNqVytyk0D~MA22Oblk zP+w_ZH!W}jq`X`mEy5HQo!U2{LWL&pbU#cdzE58W12#Pl&fEnZ z%U~dyjVt3pQ>01gG${iKUVe;5OIAt8{C$W+qf73rmg8Oif{4)abwjno1ePtbdbEmR zr^Fitz8E01@oDgR47-lfmZ5ca~dt>V2AM$g6Ax=O0sir^S9k-40lT=2Euon@^g)XQF{Jl~of$E>b)p;MCI zTE!hxC?(Q6zxz?YWAHnqe*Z!Tqy{DlR+)K6FY?o;+gT0sk*){_Zr?PZ%g~03qbYsI zlH_P6^JC=UdYL;(BbN1n^R87%Dj0~MB^kQf+EgQ4E}n`t@)lal*H|8}Amd_{^&}^b z9hXm4f`_R5qx*WZt2YfL3WL^aTssC$CCk>!dIZDPxNjpEe2UUJiqC~c)PJu$vp?L- zIxSd-jYwRN8MHSVgu_6&pKXU!CrwxG&!a7)A&$+%0pFBecfZnSG0pz z8Be9bFpJg|BHD=57A)yGC6wmT&$Lf8DeoUtQ98hV0GsfafN3IwVB1UiPkG#lDN!Fa zIF<+pb8PzXk4UVhiqusfjl1+rMhScBWu>dU%JGE4jP&v`s91@HYp3l1xpY&5?^1&) z3CNU*AG>|XqJU&ajz5O5&I92u3-Su0^RUr|`BYX*dh8nM zBUuaN350tj$i>LrrS3>bvm@aUnCG-8P$#1yyY$Z`41*Rd;`Y$=?B?=G5%A(pjgn4k zlx@9gel;@{#~6nWPQ!9yVe_Y~D<=%F7wgb9{$ zS@EVZh6tINBw)B#gm#}H{;W{qjy-p>GS*$ni_!qYQD}igOw@Q(rC@{x`EW*n4Xb?I zEB&XldoGEBiG-RYSB*nvw{iN5nowbmu9D*vD{)nAM7Au7g#)^0E28d*Z2(g0?pU7$bU@X1r2$Yic_u>Byc$3k6&2Pao~oPmbV>e?k*m7 zH!7lL;Xl?;;Gt3H;);<1FiHB0-AEP8Wc3l&3)EBH5wp@2>-xo+Fl@>d(V6kn(@blB z!z!WGE*ivx^+fT^!)_Vo7LV19x|XF7-dwf$nAvB+=+_MHH(?`y=`x6~5hK6!So>?6 zWmd|+jx}YB-=&`8Qe%RhjX5)bOs);ejFb2dm6=g@U(M0ih(nBI{QpzEzcM+QHf#2hH=7BTD3C z$YCI%Q!4y~8ntK35=W{W+EXvm3}!FetihLWT;&#e0X*!G{|ck|B?|4N%DDGJjqn@W zM@9Mt3;rOMrm9#=za}Ppky`~DOcK=6yzB7Sx~roQYTZ~dj8^%UH34idhU5(s3G~$Y zq6C!anG&I`3;F5YsU_mFG|V??h;`Xq3mB+g!4l-igpxn%$obP%ayXKleAfcod^eze z_6pzKIm>=ppzNy!y61lI8-ygEFt{OpxmRW?b!l=RGSJ ztKIH3#Ct6dS_0y5#PTEO3+7wZ=1}wP!y#_PQ&>F9phE^&cfz_Di$Sr4OZ7arnN-i@ ziZr=WW@9t-@i6wpOlgjcGQs)n%1gdqTAKw(|FKDugQ^%sQ@351{?HOi0d3r{7#k7% z^}fl|PMKLIHl8{T6$UYfle&{lF&5N;i(Dpmmb}aX8d&1`^6A6Eb-|mDe)$U95H@BI zW?~AH_YP2HSM=7SqjXxnC`|1qOPme}b#Etn{IA^ihGkHkWm=AQSsSU2mQF-dU*HP&ae0APR3bb z$=~-BOB+eE#|@=0hLY1BAxmZvP(ES%`crPNe~WqjL^dq&VE;kiW&PF+1~0OcnO8*{ zP2745G^F_cO%hNaU@+3^z@Sa@Vx30}6=g8+u9q%{GrKa=g%isp4#*nVR87vAqkG{? z0`w9o65shkVHW$t4O=A?nW#HD_l`R9)m6`%zyKs7G2$HV$)Kw%pWmglnEK+gN|AyQ zBlQ6Vyld=|YAg1Fy1?_Z1o15b2ZC3X z$njF;I8gNh6NB^;nJmjBYS_RcmP_sS!CK7Z+|@^KrWwOzB2AP(!k2K3VFxX^fKj*K z999r$G${n<)VTAwgIZk?)`j>JMiWiFrozjI4TIwsS=BS&Ws~V)%~%rCc4Fxus>bb) z@;uTUG(Ik_;yt0i7~A>5M#lAV#+iy`TAE480N+rz|? zAgy|y<}^M6R=P2{F^5UpfaGj}AF(Ey!t!9StJ*vDNz8XIVAqS-@94KA*~X=N6*^K* zEL-%*RzC^XV6sSNIRsDTY<@ZAXVSoI0?D+GwB=6BS-1c{L2q2pxJd6@hlt#`Q&gf*wjA=vz&lI=L)?BHh z=f!*YgBz{zRnwk%_^e>*H-~j8>nyCxYTX@1S>xGvHja_o8HEi=?)#D|cclqCS99%U zhQQJrM7p0i^3!z~kkaa43aZ*$%OckSzd(i-tk3|{wxNq%31EQS>ql3|c65a@lvBy{ zLE%5!lflw^vXhu8t#F78`H?bWl8a%I#Zo-)U8>!4g$BvaR-u|`yLg#ieo|a(lUPGd z7I16Pl4s%MIEB#GBS>W2SEXd^nsOWjT;rFA9aK*khIu~pcawhm=c0FNl1Rk$l0WEi zy?zLQ2{$l928I=eKPmrFLE}dNa3)yK|Ju_jsjT4?zu&a{Vej_RQ^Y0@dbu&v`VMp-c2L>r?@FrSA9$88X3c4){Zf62 zwE6(C9KxgUsRr&4|HY7&p6VaAQG+`)2tpE79C?ZN0t#fOk;V`xo@jigCk=5tjr5>3L$#fSUq!}H0RNybaw zTmHyXg^7#3szZtu0n5>!a8iJCx@#sL14%B~QUjDcbRTEMoCqzgbNJqjRrDSA;Ll`URnR=|;?%+Y$ z64_!2v1;q8uy${WboS-asfs<&37!evzQv8A6W3uo26i1s*ue*@353G8&q0|2#g1;a zV|rLW-w!4EKT|z!wcAY|QxH9H1gbPT;c&x}^WMA^H*K2^cKK9%dvWD~%Hew9#iQd- zF9GZrL|}19>XH|OtL;weo_8e)h0vl(zhP=;2}~%&T!1o~$8h*CMVrgW7tXCR>0hut z#Ii+#cOUG3^-}5wbn-36a?|Ojk%py4zhLmqgBS6dG|l~Dc@M-a7`~Ad%=Cnqg&ip{ z@9>kE9k@m&BJeo3_LbECU+#U_y|H3;CEG$~jV9*CO{DPZd}kD0M`_EM*y`t zi2eciF-Uf6cGzLyf#oSurNDjU>;Q4Y1WS;8`hVE{Oag2@W`37yR&FF$oE{ ztI5cZCI~W>iAvg8v4_XvybM^A&^G=x=0R>x^#!tzY zf-2Vxf3mc1-{a3$ei#M#MKuq6FN7>G6?Np|Vp#1{xQG}gNs%@bRUUcNz_UN5CUM=2T{Pt+h~z! zv_*rZVOEpr8u5g)fo{9AT{gYLyoA!R&@meZ2C3e18S3hpbJWfr76(L8-bJ2ttaB#I zDr!C|4inC=bv*HwkdZH3sAW3Lzmwd1LG=-`C?Y{OnM?OAYfrp28i8dMHynT7{Un5hl8ucRrB5hyiXiW?|)2n8$Yk$lGwg!?mIvgBNIXK zwnd=KLYEM#pL55b_z=Asb&r0$Kmgxu-ruKOctX1FhYRyn*=VCFf5@4Ymd}oxJpKJ~ zi3f*7*G0m9PQ5I8A1SPt+k?R+%}DWG+Qux|Ai4MKV{sE1g4gW@CfXY2q^TVx6n>8O zJ8`JRMFVmuzJJb7=L!4jp02-nONhFxE$5fDy}V$KN%J~U@b6@<%??WUezINDZTNR? zO*H*QbpglfwNM=&hnsuKVp6`&e+RNgtUkmbpxs8SjDzgR2PrB;*mfwpf5WW{ahYlm z=U$%&A%GE(;g{Rlc-8I2%eBb;J-FdqSn}c*8^#?S%b;6F{T)xHo+9woL}UAyF{$Cr zeY^edJEZzG-H)9>T0B$)Oes#XkCW^d^>a=lx(12U;vB=k?la_;S-sCp|8fR4ntSb zxD=NzoY0)DRGhWc!)q(W?e0kb#dEDilwH=TMo?)liB@2{wV^KdGGo(K*DtRQx~H;L z$nG%AP^(rrm6;hkwd0+zU=OAZndeY}EbL_|S-=@CoCJ&fFdr7y`uZk;6 z%PYoeU)1s~=JcuhG{Fi4C?~KSbg;P0q$;ts3+6dvPOV3OrjGjpRj+G(ou{3m@9AhtURu)QL&-i}U^v zVx9Fw?K&F-uTgN>DbTPeo4r^4AwOPbgrrFM?84D0{>I=^TWw8_>nZex0l;ye~g2Yx6`imTD*z9P)XM`y{#&LNI4)upwPZp0wHv^_j^{roegj)~qcDxWyYg@UmHB9XXyqc2g+U!z5l3C)7g zRVze=Fs_hMqq`+GOIc>bXY`-GUGYev4GjIEZOR@`@Rd-W1SPa<)yVD3z4b&OdEnf&QzZ^JFg+A9tP)un$c1} zZ+S!6kBBeplz)wm;oMvIhc@x9dOT#k5P>C)vNkLHbevWT`kp+0l-6yboGLvt(E)VC zRwXCTTu?l}Um#rJDEpg;CSdebhj8)Df-Y<=`8bFOP>^L`CAX>;PUaAdCc+IAc2mUhQ-XzVklq=7rW z`ttS&jsfoTw^CFj+kU~v*~%*}T_khY?8xq@VoRu1GY_WX34i z_q=U|dQ=8zJiEl=LN&e;(CDHmETPYpco^_m42+dn67LpUwYTcOt7*-`hyQx5E9@ie zS1R!|`wGd2#C4WX|ciT*f21m7M$j8w&Tsc)V11+HEjjsxK zj;;zGQ=Crlt+Bhm&q%3XqtAwh*<8QC^Fd%NPwv;F{h|C+v6RW=* z$#8iLCBoNPqY|Scqmq(3L*3+^B340HJytP#T6JZWkmnp++Pt42KQI`#i=e^zvfXwk zQ7ShsN+f#5g+wL8FQKQiE*X~*@~_8I#YolRNVK5x$DfGoG_h1{eujk%eTIF~8Hsf> zwd*aP;hwWrah{CBo6R+RTUv-G(oB|%7%(w&(Y+RjyJ+X#)~K|`Fn0-NpP;mi!>HHT zJ6?TqY*85t{bc!9qtKK~gL&%eJWaTP>3G+7`58&Ln>_1HkXbkm1qJqAX2&!SbhmQw zLrC8D4LsYNe}w*oMS_mFK=U~XaxM06p42m|`7;9W(KFGnP^8c(z;>ASfpFt-@wGRY zkRxz0obd~W{CwD*sm*!)Wp7S4xi_JDDe()CR=JVuNWhn|h|emn-QE}g!O{;c@hW)? zbq(}>$qNh!rv?>Ve7_*dn5OEQawo&+AMF+m_E|@5d&e!4pDvfv8(}7{Qnlz6XW1al zhqbHyG<)wlQ>&cZsfS|jGf(cpy8b(vHI{#hASLjN&uHViHnAu z9d$l7u8CXZiOaiyF|yi$Khn0(0Soc~GV~KxO0QZ5WzC%u{GR}MX%(p-5~kt*1M_Di AGynhq literal 0 HcmV?d00001 diff --git a/src/conversations/res/drawable-mdpi/main_logo.png b/src/conversations/res/drawable-mdpi/main_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d81b7363890164455f6f73f7c0a36c7779a786b2 GIT binary patch literal 15309 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 literal 0 HcmV?d00001 diff --git a/src/conversations/res/drawable-xhdpi/splash_logo.png b/src/conversations/res/drawable-xhdpi/splash_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9458b791c2369075087d76d7e0491bd354847e9d GIT binary patch literal 23030 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 JPDHLkV1nFuGUWgO literal 0 HcmV?d00001 diff --git a/src/conversations/res/drawable-xxhdpi/main_logo.png b/src/conversations/res/drawable-xxhdpi/main_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc091c437a05eeac10cd0e823a10a8667707d642 GIT binary patch literal 52900 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 Xv(lV)_-ZWP00000NkvXXu0mjfeH2;0 literal 0 HcmV?d00001 diff --git a/src/conversations/res/drawable-xxhdpi/splash_logo.png b/src/conversations/res/drawable-xxhdpi/splash_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..83c2abe6a7bb0d1ec76c00b6c991bc312b7b57e0 GIT binary patch literal 36548 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 literal 0 HcmV?d00001 diff --git a/src/conversations/res/drawable-xxxhdpi/splash_logo.png b/src/conversations/res/drawable-xxxhdpi/splash_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..349070ba2635f2f10f88b3a329b43587d0fdad6e GIT binary patch literal 50538 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
ePU?mLXs>w&%qn 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 + + + + diff --git a/src/conversations/res/drawable/ic_launcher_foreground.xml b/src/conversations/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..5851e5f2c --- /dev/null +++ b/src/conversations/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/src/conversations/res/drawable/ic_launcher_monochrome.xml b/src/conversations/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 000000000..56895d605 --- /dev/null +++ b/src/conversations/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/src/conversations/res/layout/activity_easy_invite.xml b/src/conversations/res/layout/activity_easy_invite.xml new file mode 100644 index 000000000..6f1c8fc57 --- /dev/null +++ b/src/conversations/res/layout/activity_easy_invite.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +