From f7e0f36bd97070a33a818d7ccca6ec8e9d0c1a8c Mon Sep 17 00:00:00 2001 From: furrtek Date: Fri, 26 Aug 2016 08:11:24 +0200 Subject: [PATCH] Added Soundboard file.cpp: scan_root_files proc_audiotx.cpp: bandwidth setting ui_widget.cpp: button on_focus --- firmware/application/CMakeLists.txt | 2 +- firmware/application/Makefile | 27 +++ firmware/application/file.cpp | 23 +++ firmware/application/file.hpp | 3 + firmware/application/main.cpp | 10 +- firmware/application/pocsag_app.cpp | 16 +- firmware/application/ui_about.cpp | 10 +- firmware/application/ui_about.hpp | 28 +-- firmware/application/ui_lcr.cpp | 2 +- firmware/application/ui_navigation.cpp | 10 +- firmware/application/ui_soundboard.cpp | 271 +++++++++++++++++++++---- firmware/application/ui_soundboard.hpp | 137 ++++++++++--- firmware/baseband/proc_afsk.cpp | 3 +- firmware/baseband/proc_audiotx.cpp | 18 +- firmware/baseband/proc_audiotx.hpp | 1 + firmware/baseband/proc_pocsag.cpp | 3 +- firmware/common/ui_widget.cpp | 9 +- firmware/common/ui_widget.hpp | 10 +- firmware/portapack-h1-havoc.bin | Bin 767388 -> 772556 bytes 19 files changed, 462 insertions(+), 121 deletions(-) diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 6d0c77693..87a169487 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -165,7 +165,7 @@ set(CPPSRC ui_handwrite.cpp ui_afsksetup.cpp # ui_closecall.cpp - # ui_soundboard.cpp + ui_soundboard.cpp ui_rds.cpp ui_lcr.cpp ui_xylos.cpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index 988362ee2..e2d0e61b6 100644 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -4062,6 +4062,30 @@ ui_setup.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_setup.cpp.s .PHONY : ui_setup.cpp.s +ui_soundboard.obj: ui_soundboard.cpp.obj +.PHONY : ui_soundboard.obj + +# target to build an object file +ui_soundboard.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_soundboard.cpp.obj +.PHONY : ui_soundboard.cpp.obj + +ui_soundboard.i: ui_soundboard.cpp.i +.PHONY : ui_soundboard.i + +# target to preprocess a source file +ui_soundboard.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_soundboard.cpp.i +.PHONY : ui_soundboard.cpp.i + +ui_soundboard.s: ui_soundboard.cpp.s +.PHONY : ui_soundboard.s + +# target to generate assembly for a file +ui_soundboard.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_soundboard.cpp.s +.PHONY : ui_soundboard.cpp.s + ui_spectrum.obj: ui_spectrum.cpp.obj .PHONY : ui_spectrum.obj @@ -4660,6 +4684,9 @@ help: @echo "... ui_setup.obj" @echo "... ui_setup.i" @echo "... ui_setup.s" + @echo "... ui_soundboard.obj" + @echo "... ui_soundboard.i" + @echo "... ui_soundboard.s" @echo "... ui_spectrum.obj" @echo "... ui_spectrum.i" @echo "... ui_spectrum.s" diff --git a/firmware/application/file.cpp b/firmware/application/file.cpp index f44154528..a0ebd7f3c 100644 --- a/firmware/application/file.cpp +++ b/firmware/application/file.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -177,6 +178,28 @@ std::string next_filename_stem_matching_pattern(const std::string& filename_stem return filename_stem; } +std::vector scan_root_files(const std::string& extension) { + std::vector file_list { }; + std::string fname; + FRESULT res; + DIR dir; + static FILINFO fno; + + res = f_opendir(&dir, "/"); + if (res == FR_OK) { + for (;;) { + res = f_readdir(&dir, &fno); + if (res != FR_OK || fno.fname[0] == 0) break; + fname.assign(fno.fname); + if (fname.find(extension) != std::string::npos) + file_list.push_back(fname); + } + f_closedir(&dir); + } + + return file_list; +} + namespace std { namespace filesystem { diff --git a/firmware/application/file.hpp b/firmware/application/file.hpp index f3739317f..05c7f74b2 100644 --- a/firmware/application/file.hpp +++ b/firmware/application/file.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -32,8 +33,10 @@ #include #include #include +#include std::string next_filename_stem_matching_pattern(const std::string& filename_stem_pattern); +std::vector scan_root_files(const std::string& extension); namespace std { namespace filesystem { diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 23a3181dd..1654795d3 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -23,19 +23,21 @@ // Bitmaps generated with: // Gimp image > indexed colors (16), then "xxd -i *.bmp" -//BUG: No audio in about when shown second time +//BUG (fixed ?): No audio in about when shown second time +//BUG: POCSAG RX sometimes misses the first codeword after SYNC -//TODO: Make frequency set button in afsksetup accept GHz frequencies (longer label buffer) +//TODO: POCSAG 512 and 2400 (all 3 at the same time, or parameter ?) //TODO: Check AFSK transmit end, skips last bits ? +//TODO: Check jammer bandwidths //TODO: Use msgpack for settings, lists... on sd card //TODO: Frequency manager //TODO: Morse coder +//TODO: Replay //Multimon-style stuff: //TODO: AFSK receiver -//TODO: Xylos receiver +//TODO: Xylos (CCIR) receiver -//TODO: Check jammer bandwidths //TODO: Closecall wide range fix //TODO: SD card wiper //TODO: GSM channel detector diff --git a/firmware/application/pocsag_app.cpp b/firmware/application/pocsag_app.cpp index a886cab1f..7eba47774 100644 --- a/firmware/application/pocsag_app.cpp +++ b/firmware/application/pocsag_app.cpp @@ -41,18 +41,18 @@ namespace format { static std::string bitrate_str(BitRate bitrate) { switch (bitrate) { - case BitRate::FSK512: return "F512 "; - case BitRate::FSK1200: return "F1200"; - case BitRate::FSK2400: return "F2400"; - default: return "F????"; + case BitRate::FSK512: return "512 "; + case BitRate::FSK1200: return "1200"; + case BitRate::FSK2400: return "2400"; + default: return "????"; } } static std::string flag_str(PacketFlag packetflag) { switch (packetflag) { - case PacketFlag::NORMAL: return "NORMAL "; + case PacketFlag::NORMAL: return "OK"; case PacketFlag::TIMED_OUT: return "TIMED OUT"; - case PacketFlag::TOO_LONG: return "TOO LONG "; + case PacketFlag::TOO_LONG: return "TOO LONG"; default: return ""; } } @@ -208,12 +208,12 @@ void POCSAGAppView::on_packet(const POCSAGPacketMessage * message) { if (eom) { std::string console_info; - console_info = to_string_time(message->packet.timestamp()); + console_info = to_string_time(message->packet.timestamp()) + " "; if (address || function) { console_info += pocsag::format::bitrate_str( message->packet.bitrate()) + " "; console_info += pocsag::format::flag_str(message->packet.flag()) + " "; - console_info += " ADDR:" + to_string_dec_uint(address, 7) + " F:" + to_string_dec_uint(function); + console_info += "ADDR:" + to_string_dec_uint(address) + " F:" + to_string_dec_uint(function); console.writeln(console_info); diff --git a/firmware/application/ui_about.cpp b/firmware/application/ui_about.cpp index df2a5f498..e520f2904 100644 --- a/firmware/application/ui_about.cpp +++ b/firmware/application/ui_about.cpp @@ -59,9 +59,7 @@ void AboutView::on_show() { transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); - baseband::set_audiotx_data( - 0 - ); + baseband::set_audiotx_data(15); //audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); } @@ -132,7 +130,7 @@ void AboutView::render_video() { // Switch to next text if (anim_state == 0) { - if (credits_index == 7) + if (credits_index == 9) credits_index = 0; else credits_index++; @@ -221,7 +219,7 @@ void AboutView::render_audio() { // Render 1024 music samples for (ym_render_cnt = 0; ym_render_cnt < 1024; ym_render_cnt++) { - // Taken at 48000/960 = 50Hz + // Update registers at 48000/960 = 50Hz if (ym_sample_cnt == 0) { // "Decompress" on the fly and update YM registers for (i = 0; i < 14; i++) { @@ -338,7 +336,7 @@ void AboutView::update() { } // Slowly increase volume to avoid jumpscare - if (headphone_vol < (70<<2)) { + if (headphone_vol < (70 << 2)) { audio::headphone::set_volume(volume_t::decibel((headphone_vol/4) - 99) + audio::headphone::volume_range().max); headphone_vol++; } diff --git a/firmware/application/ui_about.hpp b/firmware/application/ui_about.hpp index 2cca9e73f..2195c4ca3 100644 --- a/firmware/application/ui_about.hpp +++ b/firmware/application/ui_about.hpp @@ -56,12 +56,12 @@ private: bool same; } ymreg_t; - uint16_t headphone_vol = 5<<2; + uint16_t headphone_vol = 5 << 2; ymreg_t ym_regs[14]; uint16_t ym_frames; uint16_t ym_frame; - uint8_t drum; + uint8_t drum = 0; uint16_t ym_osc_cnt[3]; uint32_t ym_rng = 1; uint16_t ym_noise_cnt; @@ -80,8 +80,8 @@ private: ui::Color paletteB[16]; ui::Color * framebuffer; uint32_t phase = 0; - uint8_t copperbars[5] = {0}; - uint8_t copperbuffer[72] = {0}; + uint8_t copperbars[5] = { 0 }; + uint8_t copperbuffer[72] = { 0 }; uint8_t anim_state = 0; uint8_t credits_index = 0; @@ -98,12 +98,12 @@ private: 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - const uint8_t copperluma[16] = {8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8}; - const uint8_t coppercolor[5][3] = { {255,0,0}, - {0,255,0}, - {0,0,255}, - {255,0,255}, - {255,255,0} }; + const uint8_t copperluma[16] = { 8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8 }; + const uint8_t coppercolor[5][3] = { { 255,0,0 }, + { 0,255,0 }, + { 0,0,255 }, + { 255,0,255 }, + { 255,255,0 } }; typedef struct credits_t { char role[12]; @@ -112,10 +112,12 @@ private: } credits_t; // 0123456789A 0123456789A - const credits_t credits[8] = { {"GURUS", "J. BOONE", false}, - {"GURUS", "M. OSSMANN", true}, + const credits_t credits[10] = { {"GURUS", "J. BOONE", false}, + {"GURYS", "M. OSSMANN", true}, {"BUGS", "FURRTEK", true}, - {"RDS TABLE", "C. JACQUET", true}, + {"RDS WAVE", "C. JACQUET", true}, + {"POCSAG RX", "T. SAILER", false}, + {"POCSAG RX", "E. OENAL", true}, {"XYLOS DATA", "CLX", true}, {"GREETS TO", "SIGMOUNTE", false}, {"GREETS TO", "WINDYOONA", true}, diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index b632756b0..94428be2e 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -266,7 +266,7 @@ void LCRView::start_tx(const bool scan) { portapack::persistent_memory::afsk_mark_freq() * 437 * 5, //(0x40000 * 256) / (153600 / 25), portapack::persistent_memory::afsk_space_freq() * 437 * 5, //(0x40000 * 256) / (153600 / 25), afsk_repeats, - portapack::persistent_memory::afsk_bw() * 115, // See proc_fsk_lcr.cpp + portapack::persistent_memory::afsk_bw() * 115, // See proc_afsk.cpp afsk_format ); } diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 2fc35cff3..ce4b69773 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -35,9 +35,9 @@ #include "ui_setup.hpp" #include "ui_debug.hpp" -//#include "ui_soundboard.hpp" // DEBUG //#include "ui_closecall.hpp" // DEBUG -#include "ui_freqman.hpp" // DEBUG +//#include "ui_freqman.hpp" // DEBUG +#include "ui_soundboard.hpp" #include "ui_encoders.hpp" #include "ui_debug.hpp" @@ -46,7 +46,7 @@ #include "ui_epar.hpp" #include "ui_lcr.hpp" #include "analog_audio_app.hpp" -#include "ui_audiotx.hpp" // DEBUG +//#include "ui_audiotx.hpp" // DEBUG //#include "ui_jammer.hpp" // DEBUG #include "analog_audio_app.hpp" @@ -246,9 +246,9 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { { "Receiver RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, { "Capture RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, //{ "Close Call RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, - { "Numbers station TX", ui::Color::purple(), [&nav](){ nav.push(); } }, //nav.push(); + //{ "Numbers station TX", ui::Color::purple(), [&nav](){ nav.push(); } }, //nav.push(); //{ "Pokemon GO Away TX", ui::Color::blue(), [&nav](){ nav.push(); } }, - //{ "Soundboard TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, SoundBoard); } }, + { "Soundboard TX", ui::Color::yellow(), [&nav](){ nav.push(); } }, //{ "Audio TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, AudioTX); } }, //{ "Frequency manager", ui::Color::white(), [&nav](){ nav.push(); } }, //{ "EPAR TX", ui::Color::green(), [&nav](){ nav.push(md5_baseband_tx, EPAR); } }, diff --git a/firmware/application/ui_soundboard.cpp b/firmware/application/ui_soundboard.cpp index c45b26674..ed9e03b6e 100644 --- a/firmware/application/ui_soundboard.cpp +++ b/firmware/application/ui_soundboard.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -19,6 +20,8 @@ * Boston, MA 02110-1301, USA. */ +// To prepare samples: for f in ./*.wav; do sox "$f" -r 48000 -c 1 -b8 --norm "conv/$f"; done + #include "ui_soundboard.hpp" #include "ch.h" @@ -35,28 +38,65 @@ #include "portapack_shared_memory.hpp" #include +#include using namespace portapack; namespace ui { + +uint16_t SoundBoardView::shitty_rand() { + uint8_t bit; -void SoundBoardView::on_show() { - /* - // Just in case - EventDispatcher::message_map().unregister_handler(Message::ID::DisplayFrameSync); + bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5) ) & 1; - // "Vertical blank interrupt" - EventDispatcher::message_map().register_handler(Message::ID::DisplayFrameSync, - [this](const Message* const) { - pbar_test.set_value(testv/4); - testv++; - } - );*/ + return lfsr = (lfsr >> 1) | (bit << 15); } -std::string SoundBoardView::title() const { - return "Sound board"; -}; +void SoundBoardView::do_random() { + uint16_t id; + + chThdSleepMilliseconds(300); // 100ms + + id = shitty_rand() % max_sound; + + play_sound(id); + + buttons[id % 21].focus(); + page = id / 21; + + refresh_buttons(id); +} + +void SoundBoardView::prepare_audio() { + + if (cnt >= sample_duration) { + if (tx_mode == NORMAL) { + if (!check_loop.value()) { + pbar.set_value(0); + transmitter_model.disable(); + return; + } else { + file.seek(44); + cnt = 0; + } + } else { + pbar.set_value(0); + transmitter_model.disable(); + do_random(); + } + } + + pbar.set_value(cnt); + + file.read(audio_buffer, 1024); + + for (size_t n = 0; n < 1024; n++) + audio_buffer[n] -= 0x80; + + cnt += 1024; + + baseband::set_fifo_data(audio_buffer); +} void SoundBoardView::focus() { buttons[0].focus(); @@ -66,72 +106,218 @@ void SoundBoardView::on_tuning_frequency_changed(rf::Frequency f) { transmitter_model.set_tuning_frequency(f); } -void SoundBoardView::on_button(Button& button) { - text_test.set(to_string_dec_uint(button.id)); +void SoundBoardView::play_sound(uint16_t id) { + + auto error = file.open(sounds[id].filename); + if (error.is_valid()) return; + + sample_duration = sounds[id].sample_duration; + + pbar.set_max(sample_duration); + pbar.set_value(0); + + cnt = 0; + file.seek(44); // Skip header + + prepare_audio(); + + transmitter_model.set_baseband_configuration({ + .mode = 0, + .sampling_rate = 1536000, + .decimation_factor = 1, + }); + transmitter_model.set_rf_amp(true); + transmitter_model.set_lna(40); + transmitter_model.set_vga(40); + transmitter_model.set_baseband_bandwidth(1750000); + transmitter_model.enable(); + + baseband::set_audiotx_data(number_bw.value()); +} + +void SoundBoardView::show_infos(uint16_t id) { + uint32_t duration = sounds[id].ms_duration; + + text_duration.set(to_string_dec_uint(duration / 1000) + "." + to_string_dec_uint((duration / 100) % 10) + "s"); +} + +void SoundBoardView::refresh_buttons(uint16_t id) { + size_t n = 0, n_sound; + + text_page.set(to_string_dec_uint(page + 1) + "/" + to_string_dec_uint(max_page)); + + for (auto& button : buttons) { + n_sound = (page * 21) + n; + + button.id = n_sound; + + if (n_sound < max_sound) { + button.set_text(sounds[n_sound].shortname); + button.set_style(styles[sounds[n_sound].shortname[0] & 3]); + } else { + button.set_text("- - -"); + button.set_style(styles[0]); + } + + n++; + } + + show_infos(id); +} + +void SoundBoardView::change_page(Button& button, const KeyEvent key) { + + // Stupid way to find out if the button is on the sides + if (button.screen_pos().x < 32) { + if ((key == KeyEvent::Left) && (page > 0)) { + page--; + refresh_buttons(button.id); + } + } + + if (button.screen_pos().x > 120) { + if ((key == KeyEvent::Right) && (page < max_page - 1)) { + page++; + refresh_buttons(button.id); + } + } +} + +uint16_t SoundBoardView::fb_to_uint16(const std::string& fb) { + return (fb[1] << 8) + fb[0]; +} + +uint32_t SoundBoardView::fb_to_uint32(const std::string& fb) { + return (fb[3] << 24) + (fb[2] << 16) + (fb[1] << 8) + fb[0]; } SoundBoardView::SoundBoardView( NavigationView& nav ) { - size_t n; + std::vector file_list; + std::string file_name; + uint32_t size; + uint8_t c; - for (n = 0; n < 12; n++) { - sounds[n].filename = ""; - sounds[n].shortname = "Empty"; - sounds[n].min = 0; - sounds[n].sec = 0; + char file_buffer[32]; + + baseband::run_image(portapack::spi_flash::image_tag_audio_tx); + + file_list = scan_root_files(".WAV"); + + c = 0; + for (auto& file_name : file_list) { + + auto error = file.open(file_name); + + file.seek(40); + file.read(file_buffer, 4); + size = fb_to_uint32(file_buffer); + sounds[c].size = size; + + file.seek(22); + file.read(file_buffer, 2); + if (fb_to_uint16(file_buffer) > 1) { + sounds[c].stereo = true; + size /= 2; + } else + sounds[c].stereo = false; + + file.seek(24); + file.read(file_buffer, 4); + sounds[c].sample_rate = fb_to_uint32(file_buffer); + + file.seek(34); + file.read(file_buffer, 2); + if (fb_to_uint16(file_buffer) > 8) { + sounds[c].sixteenbit = true; + size /= 2; + } else + sounds[c].sixteenbit = false; + + sounds[c].ms_duration = (size * 1000) / sounds[c].sample_rate; + sounds[c].sample_duration = size; + + sounds[c].filename = file_name; + sounds[c].shortname = file_name.substr(0, file_name.find_last_of(".")); + + c++; + if (c == 100) break; } + max_sound = c; + max_page = max_sound / 21; + add_children({ { - &text_test, &field_frequency, &number_bw, - &pbar_test, - &button_load, + &text_kHz, + &text_page, + &text_duration, + &pbar, + &check_loop, + &button_random, &button_exit } }); const auto button_fn = [this](Button& button) { - this->on_button(button); + tx_mode = NORMAL; + this->play_sound(button.id); + }; + + const auto button_focus = [this](Button& button) { + this->show_infos(button.id); + }; + + const auto button_dir = [this](Button& button, const KeyEvent key) { + (void)button; + + this->change_page(button, key); }; + size_t n = 0; for(auto& button : buttons) { add_child(&button); - button.id = n; button.on_select = button_fn; + button.on_highlight = button_focus; + button.on_dir = button_dir; button.set_parent_rect({ - static_cast((n % 3) * 70 + 15), - static_cast((n / 3) * 50 + 30), - 70, 50 + static_cast((n % 3) * 78 + 3), + static_cast((n / 3) * 28 + 26), + 78, 28 }); - button.set_text(sounds[n].shortname); n++; } + refresh_buttons(0); + + check_loop.set_value(false); + number_bw.set_value(15); field_frequency.set_value(transmitter_model.tuning_frequency()); - field_frequency.set_step(receiver_model.frequency_step()); + field_frequency.set_step(10000); field_frequency.on_change = [this](rf::Frequency f) { this->on_tuning_frequency_changed(f); }; field_frequency.on_edit = [this, &nav]() { // TODO: Provide separate modal method/scheme? - auto new_view = nav.push(receiver_model.tuning_frequency()); + auto new_view = nav.push(transmitter_model.tuning_frequency()); new_view->on_changed = [this](rf::Frequency f) { this->on_tuning_frequency_changed(f); this->field_frequency.set_value(f); }; }; - /*button_transmit.on_select = [](Button&){ - transmitter_model.set_baseband_configuration({ - .mode = 1, - .sampling_rate = 1536000, - .decimation_factor = 1, - }); - transmitter_model.set_rf_amp(true); - transmitter_model.enable(); - };*/ + button_random.on_select = [this](Button&){ + if (tx_mode == NORMAL) { + tx_mode = RANDOM; + button_random.set_text("STOP"); + do_random(); + } else { + tx_mode = NORMAL; + button_random.set_text("Random"); + } + }; button_exit.on_select = [&nav](Button&){ nav.pop(); @@ -140,6 +326,7 @@ SoundBoardView::SoundBoardView( SoundBoardView::~SoundBoardView() { transmitter_model.disable(); + baseband::shutdown(); } } diff --git a/firmware/application/ui_soundboard.hpp b/firmware/application/ui_soundboard.hpp index 398c5b0d0..324166d41 100644 --- a/firmware/application/ui_soundboard.hpp +++ b/firmware/application/ui_soundboard.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -19,19 +20,17 @@ * Boston, MA 02110-1301, USA. */ +#ifndef __UI_SOUNDBOARD_H__ +#define __UI_SOUNDBOARD_H__ + #include "ui.hpp" #include "ui_widget.hpp" -#include "ui_painter.hpp" -#include "ui_menu.hpp" -#include "ui_navigation.hpp" #include "ui_font_fixed_8x16.hpp" -#include "clock_manager.hpp" -#include "message.hpp" -#include "rf_path.hpp" -#include "max2837.hpp" -#include "volume.hpp" +#include "baseband_api.hpp" +#include "ui_navigation.hpp" #include "ui_receiver.hpp" -#include "transmitter_model.hpp" +#include "message.hpp" +#include "file.hpp" namespace ui { @@ -40,27 +39,81 @@ public: SoundBoardView(NavigationView& nav); ~SoundBoardView(); - std::string title() const; - void on_show() override; void focus() override; + std::string title() const override { return "Soundboard"; }; + private: + enum tx_modes { + NORMAL = 0, + RANDOM + }; + + tx_modes tx_mode = NORMAL; + struct sound { std::string filename; std::string shortname; - uint8_t min; - uint8_t sec; + bool stereo; + bool sixteenbit; + uint32_t sample_rate; + uint32_t size; + uint32_t sample_duration; + uint32_t ms_duration; }; - sound sounds[12]; + uint32_t cnt; + uint32_t sample_duration; + uint8_t page = 0; + + File file; + + uint16_t lfsr = 0x1337u; + + sound sounds[100]; + uint8_t max_sound; + uint8_t max_page; - std::array buttons; - void on_button(Button& button); + int8_t audio_buffer[1024]; + + Style style_a { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = { 255, 51, 153 } + }; + Style style_b { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = { 153, 204, 0 } + }; + Style style_c { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = { 51, 204, 204 } + }; + Style style_d { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = { 153, 102, 255 } + }; + + std::array buttons; + const Style * styles[4] = { &style_a, &style_b, &style_c, &style_d }; void on_tuning_frequency_changed(rf::Frequency f); - Text text_test { - { 120, 4, 64, 16 } + void do_random(); + uint16_t shitty_rand(); + void show_infos(uint16_t id); + void change_page(Button& button, const KeyEvent key); + void refresh_buttons(uint16_t id); + void play_sound(uint16_t id); + void prepare_audio(); + uint16_t fb_to_uint16(const std::string& fb); + uint32_t fb_to_uint32(const std::string& fb); + + Text text_duration { + { 16, 236, 5 * 8, 16 } }; FrequencyField field_frequency { @@ -68,26 +121,54 @@ private: }; NumberField number_bw { - { 16 * 8, 4 }, - 5, - {1000, 50000}, - 500, + { 14 * 8, 4 }, + 2, + {1, 50}, + 1, ' ' }; - ProgressBar pbar_test { - { 45, 236, 150, 16 } + Text text_kHz { + { 16 * 8, 4, 3 * 8, 16 }, + "kHz" }; - Button button_load { - { 8, 270, 64, 32 }, - "Load" + Text text_page { + { 22 * 8, 4, 3 * 8, 16 }, + "-/-" + }; + + ProgressBar pbar { + { 72, 236, 150, 16 } + }; + + Checkbox check_loop { + { 16, 274 }, + 4, + "Loop" + }; + + Button button_random { + { 80, 270, 72, 32 }, + "Random" }; Button button_exit { - { 96, 270, 64, 32 }, + { 160, 270, 64, 32 }, "Exit" }; + + MessageHandlerRegistration message_handler_fifo_signal { + Message::ID::FIFOSignal, + [this](const Message* const p) { + const auto message = static_cast(p); + if (message->signaltype == 1) { + this->prepare_audio(); + } + } + }; }; } /* namespace ui */ + +#endif/*__UI_SOUNDBOARD_H__*/ diff --git a/firmware/baseband/proc_afsk.cpp b/firmware/baseband/proc_afsk.cpp index 055c99c48..8f0e86762 100644 --- a/firmware/baseband/proc_afsk.cpp +++ b/firmware/baseband/proc_afsk.cpp @@ -106,7 +106,8 @@ void AFSKProcessor::execute(const buffer_c8_t& buffer) { // FM // 1<<18 = 262144 - // m = (262144 * BW) / 2280000 (* 115, see ui_lcr afsk_bw setting) + // m = (262144 * a) / 2280000 + // a = 262144 / 2280000 (*1000 = 115, see ui_lcr afsk_bw setting) frq = tone_sample * afsk_bw; phase = (phase + frq); diff --git a/firmware/baseband/proc_audiotx.cpp b/firmware/baseband/proc_audiotx.cpp index a2884b146..22b5adb8e 100644 --- a/firmware/baseband/proc_audiotx.cpp +++ b/firmware/baseband/proc_audiotx.cpp @@ -38,8 +38,8 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){ for (size_t i = 0; i= 31) { - as = 0; + if (!as) { + as = 32; audio_fifo.out(sample); //preview_audio_buffer.p[ai++] = sample << 8; @@ -50,11 +50,11 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){ asked = true; } } else { - as++; + as--; } // FM - frq = sample * 8000; + frq = sample * bw; phase = (phase + frq); sphase = phase + (64 << 18); @@ -69,9 +69,17 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){ } void AudioTXProcessor::on_message(const Message* const msg) { + const auto message = static_cast(msg); + switch(msg->id) { case Message::ID::AudioTXConfig: - //const auto message = static_cast(msg); + + // 1<<18 = 262144 + // m = (262144 * a) / 1536000 + // a = 262144 / 1536000 (*1000 = 171) + bw = 171 * (message->bw); + as = 0; + configured = true; break; diff --git a/firmware/baseband/proc_audiotx.hpp b/firmware/baseband/proc_audiotx.hpp index 6cb6431d8..2cad1548e 100644 --- a/firmware/baseband/proc_audiotx.hpp +++ b/firmware/baseband/proc_audiotx.hpp @@ -41,6 +41,7 @@ private: int8_t audio_fifo_data[2048]; FIFO audio_fifo = { audio_fifo_data, 11 }; // 43ms @ 48000Hz + uint32_t bw; uint8_t as = 0, ai; int8_t re, im; int8_t sample; diff --git a/firmware/baseband/proc_pocsag.cpp b/firmware/baseband/proc_pocsag.cpp index 485b967dd..bfe3cc0ee 100644 --- a/firmware/baseband/proc_pocsag.cpp +++ b/firmware/baseband/proc_pocsag.cpp @@ -94,7 +94,7 @@ void POCSAGProcessor::execute(const buffer_c8_t& buffer) { last_rx_data = rx_data; rx_state = SYNC; } else if (rx_data == POCSAG_IDLE) { - //rx_state = WAITING; + rx_state = WAITING; } } else { @@ -106,6 +106,7 @@ void POCSAGProcessor::execute(const buffer_c8_t& buffer) { if (msg_timeout < 600) { msg_timeout++; rx_bit++; + if (rx_bit >= 32) { rx_bit = 0; diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index e5506f5cf..fde500730 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -434,13 +434,13 @@ ProgressBar::ProgressBar( { } -void ProgressBar::set_max(const uint16_t max) { +void ProgressBar::set_max(const uint32_t max) { _value = 0; _max = max; set_dirty(); } -void ProgressBar::set_value(const uint16_t value) { +void ProgressBar::set_value(const uint32_t value) { if (value > _max) _value = _max; else @@ -689,6 +689,11 @@ void Button::paint(Painter& painter) { ); } +void Button::on_focus() { + if( on_highlight ) + on_highlight(*this); +} + bool Button::on_key(const KeyEvent key) { if( key == KeyEvent::Select ) { if( on_select ) { diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index b67608faa..54b4fab2d 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -220,14 +220,14 @@ class ProgressBar : public Widget { public: ProgressBar(Rect parent_rect); - void set_max(const uint16_t max); - void set_value(const uint16_t value); + void set_max(const uint32_t max); + void set_value(const uint32_t value); void paint(Painter& painter) override; private: - uint16_t _value = 0; - uint16_t _max = 100; + uint32_t _value = 0; + uint32_t _max = 100; }; class Console : public Widget { @@ -282,6 +282,7 @@ class Button : public Widget { public: std::function on_select; std::function on_dir; + std::function on_highlight; Button(Rect parent_rect, std::string text); @@ -295,6 +296,7 @@ public: void paint(Painter& painter) override; + void on_focus() override; bool on_key(const KeyEvent key) override; bool on_touch(const TouchEvent event) override; diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 80b02e3a99a82f124cd702dbc93483b770967e6e..1758558ba88995f3838bc95188a380e524ab350f 100644 GIT binary patch delta 72937 zcmcG%d3Y4X)<0f7GnrI}BqU^;?6U-zBrFpGBdyGzDc&Vv6cEI(W_L;FOtNyP#21E;(izH#MdIIw%w_2q>9`S+&00q4Q!8fL zBwoRu$kyA2kF>Aw3@(1p)311iXBa|BvBV>M`i8h&diQL1!$d=q#AAGhi+N%;?yT8E z{%y);p>g`5%wg7-*Uk>Tk@`aVXC5<^_~oI0pS$*v&ph^GV$B@?p2t25i0z&|o;{P? z%{F4u`*r8)JcCV=wbkP&*4^p>vM}|8=w^VIE{%FXgrE=4Wqz%%Th3BofxgBv!N#ho&*9##K+Vq*nVcO^|29EM#w$P$a zD=adt@C^OQ;eO9kX(zu-(7gx9d!ET35KmIaw3=Jp(varT$S*fy6iNQZHfaRLleJj% zGbWGJ)A6Zg`g)142uh8*%||?hAm5leUgCEL#V8%|P)AhZ2lz|)@K8ya#Q)`4dvf0| zv3gy-wE63k1u9IIQb&yY;)iN$&wqP>gtyL3?@w(d2l7}+JN&Zcvi+3DA$ zdIM(qJ*?oL(pwQrM6yNdt^bE4wX=fHboa2#CHkIH2|J_H4`k2u)yFZ1UT6v*b{brzHXJ74Va=Ipj&5VbEoL< z)on4eo9>ks=w3CmP*3Tgaf_J{k=`TSBE8D`=j(qlwxQ^Zk-f7>cZ+0Z>-*_%jhbm8 zWIV!P3)`_+H&?g9!eVdKrRiEN>|m?Z8Px&Ud4x9P_e#%2IIM(ZFiQ{pRNbpqw&PCy zaoyhdmL2<~p;Cm|MleL{V?bkNOM8sIQP)y8SpT>bwH!-*7s5Il8=WC_>eks>-nm2f zzNCBI))IT4evnA8xgSe|B3=iIC2ZPo{Y&v}NY2Y3#DcIKVQfqM2z|OFwXyyq_4_Rx zVDXd6LrM^nH*iV*0`ioNeL!EtDp%>KYyrC(i?F0+-Y7jY$jj3}PddT_QmG!nfDnOT zY>`SMf8X;eT_~CJ_*icqf51!3HG5ji5)+9z8lhtXF_SNJgn!P~NHnKMK36?)d(M{; zvz@&m(L4L)^Pop+G`qICbRCi9`TTTn5XmKGcRt_dC041?;;wd?$wxEq*yH$u&DGJb zF3;z~Jsv!wse+i}zR{6%glvR7gaHV{5Jn-CBiJj6dG8zHjuTtlZbNy*B)w~#>pqvE zBA+LNl-9CUlLRpj>1k$kl-Ep#R+t>=Ji^Of)6;%EPJ7HGuc8tqr`T_L+PBAH6l7Pd zLO~nLHqhMYw@{E+(TalCJShi%$vDQ=7+oY4j|0 z{=d;<`5{bC-0rB!QJ}}h^Fp%COt#LW6&Vg2w}ldI#!1!HM!@pGro|x6noP`3U7;t& zS$b{ImyFect(zvBD$KQ{H=pj)^)Zv@<|P9`Z|?L_psTJBPCw5oUqludwho*h`o8Blq^x1i_AgC{Y#jDc@>H&iK^6i)fy|0r& zPGA018>Fyi!UQ)@i6hw`Ln|h6AyaoPIlTzlhgC~Ol?HIpNeUP@?8&I zd_Mc#NRxWy@sV1E^Ia9zKg`M^>67dLrKY43v>1s{j4&9%fzXe|Q@WMSkpZtkelda@ zVLpNjVGcV+>8i){k0B)9Aa=I zUE2ZHYb0H1>cg#mF%JmVy8)qczm8DEtZpPV_3Fc;{sg^xKl^GV%}VaW&-x^r&2?$Z zYxlF*Q8W**Lq75s*!=x$N*MO?-`d@zpQ6 zAKt^qJ{nDL(XHFhMvtLWj86c*9iumfF3`2^XTCA?HQk~8?Bx>rk%*U#MP0;a$I@?g zd_Ox>N?+F553rTv=pq1xaDXisk2V_)u&>6`dv*K(n>&F{ zH--R<{g}Nrfvz-`e5@l^e9TJA=v~H}kY4sNd$)|1>C6XN)I|DP)PRFvnFv!3vX3Ux z&Bi52-*=ELEXOl{KFD4xr$coKpRm*A^lIrqOGO23mW7*|k+W`CK6L!mFI@&n6O-ClTvDYR8ZyVCzw6QBLqou}Qk@mE)CoiM-8dKVJ zWNXk#?JP8v zCX0M>C1{L0)H0=#J}DWq4`DAj#LiBmRmL$$I}fp|r_-yAS0TON5PNev&C}g}i2XR7 zK51Nzvid`8%?yoVagI+hP@l4wXVNm`WTa<( z%0e^g0OJCrZ~K%Dx||L-u0VR@r|g!?>9W{0pXtbEgzX4-ea1qU;~6Q3S>6@sRPN!H zvMXp}lpzN@C!6cSdnh>^ey`UZZpoTQ(pm7{Mc4<4 zs{E>&iItD_uuzO_D%QIugSE?GeIp&J@*lwZA>NBP1Mwcj0z>%;Al6!cueDC~u!rxZ zeMWkYUu1F`Jl?5y4Rfey`IG9(6tSq^hPXo&JUwdC* z8m$mu+GpOnM=H1RSU-dq<0@K=2Pqy_x{5v>W#%haFHdwAHIHFR;Tjr;wBAm$ZgWA5}b!&+M0%f^rR>#VYK1L-j3qP*SD zrmUrNK;8{rwqq?FBo(n^Yv~PfHlFLZlUvf=5q{k?H=i*7v2vmexn;P-(7}uk{eS)NbLw zd#n%%!|78VZ1AFmi_}bdSz)!1=|s1EIC7Pq$2QR9`8GZd z6_U5DMbT)a?Ax9|Y8a{x-!`4Rgmj_jyya(`?u806-6U(r$RJW&klBQet0G-jpnq{7a-AxB zbpy>YS^05w5XszDiL!6hf!hX=Dx{96jBlWhLFTV?q!OX~x6Vp-f4FlxiKuXwS@}-Y zU8XAiRSDD#@>lF6dmQ`N^m=+o=Xj6x*+}!U%={prtrl~QPZ{P<*s~FGbqVkV9EK9d zm+YpEVC;_fTHfDCpOFk!o*H5|Jw~&1uJ_o(kI{#XHK@AtD`sUh&&ZM9@)esd(rw}N zy&}C1>AJ7j%Oc&1bjMfhIK$q8b^{u~$I)hP18^c*v$9P(i{e56gOrzME|2b3HNUI2*O109x@G0lluCmv`~g+!BLkK0#XCwZm{;!c`85`Pk7~JFw&fA>*cP{{3<;E3 ziNy|P)S$A~t<;27yhde5x6%PfEm2wQGuVS_-eYCY&^$vnk5yZ4dxpL$>FVBV$$O3# z>rg8**s`Dr0~+Nx3R*CgTfb)Szd);Wi1V81k7*W6*Nl>^5nD_07H=MxH@^nVsSLR49ZD&Y$3{hg2lwj5={chNPvokv^V-$jQSV$HlVwAD@W zrFJtP5on2ejfNy0KgyzBrz^1?vkk9fXGMJab$UEHn@_=VE*_c9Ck0!MzCkl2UFA0| zzBg%=q>KBO&3zjZM%=e8$KQr@61DCEV3FU-F56%B#xb*aI@T9AG;>!rqa|y?%BOh><$sXTFbU z8ig$P?xcmUoa2LW$YOTnFiRqyk>nbdVNHH?w00 zX@Zo=E*zu`=E{dYp_fZ@*@;i+Y^jxvX`@NCYj^e}5;1^vQPt2)tc`OWL|1QU)*(f= z!$8w)K#CwXBG%Wd%6qD@+4zBRA8F(_6fB%I?wqneu&6A3^_DtY-J-I_RS~3G#H$_T zM4hU&`DW-B3^ z9B4@VhNdi@H9l7E%xksxJ?PuCc|9V$qj)QEgxb)CL(@(|sKt#yV*-G~!)F`M676}?H~ z_xhq5VFw`*^;vvyz(OJ#R3*-5Tqowp0hJy3j1Ef9;_XdWNux>U zjcUr|DXIZ~6IE9JIb?v1jD1df8#1`d&ssmH)}haN3>vx(0Swmr#%<9+lHp%iwqcdN zIjv5=DZ1J4f_VL#J<&k(QpkwE+e0m;FKD7pSN9zo@TJ%?zGG9qgmjJgt}p4F=q%oh z@feMF17>pkOKr^;1X=7?VB48|Uy$W}MeV~+%$r|mt4c<#II(JNl6Bua{W7U4VVwRB z$(dGDGqEWNFQMzFU%0kZI<#*d>DW7u#eG5(*_N+pKi!t&EeF4%PfO96{K!|cf9 z$3yI%qcj6NWs>KHGBG|6V;|PI&I?DW73Geu^4qlX5B==hqqHn5iyJ&PVz8RY_`<9j z+p_28CycY*VSwqnwXC&+m3~9ZOJt{+P^hrPmP@Lus;jH#PsS7fs~W7fW#C+>FM3@9 zN&V8F;9#QOIX`>z8=96mxge8o1;-KGQ~@lT(B`aFa&zXYkfN|N-_QhI<#A^GmTs2* z#h&_>+R&*#FmklGe=_B%RD z`iMC@=rEn*JGQcewn~%P#A7rYeDp03TX+obzNUk%IYw{7dmRq({1|TZ@3qa{M}b!|eg`3W2Maat+;o5i1?y`}A}=maf5yIX>6@d>&PDSPm-@2Llg7XmEs zJsm9#XCr=~&4zUD46&bopw^g7UJ@b=&k)0qkTQd%{zykix3kNCq_<;AU!}5xKhl}~ zGx;@s(vZ$y2u2VGBxPw+NIBr`(V2J)1${6Z7X?BN{*V)vQG#8DlFlkQG z96Wo6k3DmeZb;AZU=^&6z$#c&_U0;Do>u2yHHbuP3My0Cw4d-`i9Pfa9Vk7;_K0XT z`|T&Xt^Z(uBqo4hM?ID)yCX<6X^b=+CKfXZDNlw5c1T)k6LcEn*}hXWH~voFFsy7< zIjo*LDT-IK;3=9Pf6hzn5p9AEsmg9Oq?};Gex}#kvV9R96tzb9h@H2~9sOLSpRvv6 zHk0%l8YbG&r&zY{XF3Ff_O71=ex~I}J>zHPztAfzt-v|GEut~%Me#`NE02eiGOyIA z&!2e2M9wI2?BBo8ak|qXX80A0>HvHGS2_{a)lYn~#{9b{^>PT-t+Q$-cIU+eFD}U7 z=d?-PGWR!X&@(Hi@6~P$ghd7+G&DGZ%7d5W*F#ASD))7j#OLo;$d(yIRSKdjHN zPM*$}glmp?L95yDf7G0&)#x6Aa2&VWtMq3PXKA+ael>EB>lDj73tPhNY{FUk&B)Jv z15DDop7tJJ!n%%qE&~$tANKbQenpr4Jp;CYzuVu>(LOqR2U~fLT1}T)6EYkgMUR2c z;3Xc`dX5gLZ40=|GI(!~m^?vcQ!sL;1Cx?NJ3o&gesQ~t*FZF zs;)z{yCERBW=Q$QCvrNEacA5fPglEeFNHDJKzvGuH-boJcS-BZKE()*Z>YfX>QCa^ z^c5lHoq%AR9cXAi#g?6?IZ>(n3H8aQbpDabwx6e0WM%N6U%x%A;>o5A-T*=C$roa_ zrSTJ9QD+^t(hJl)^jgo8+hUs1xZb6NwfC(oby zERNUQp=xLJ_Ci-Rtj($tAF6UzRoL#Ua;7wGt*UY+JX&3)D#p-I+oJK`J#ek_+KTGy zu60_QY}aKysw%#qy*azi+;@(1PDQ`^InMq~C$6t8%?0GQU?Ct^Ij^cHs=vxv+%&X) zFiMXH1J=>ahe%r8<+aW$DoX3GaE@ylTR#S%!@&wPnBkmJaasKg=ai<&^^;KgQIOfD zO`1&>jlX(DrL(ePR(+-Os-`RJF9+=H;B&Sjz>ZI!?7Xa^y8bff{HCgU7a%VM-?n8J zO#wcWt+0FJM?3&1-7+z|Z9R(i2v31B4^ z_XD;Zuoc0OZS+OhNWhL)KKN+DcJ`8mNH1m#6T8qtpDjCm6|}jg{QFd8gqjOhEb-q1 z{RRtG_e${X(x2Mz-ws2UVWg^TXR|#twN|X)WV}P-QB^bIf*6U!pT=pJERj(nk92#0 zkgJiNhO`tUC5uk_hT8h<80IviwTs@e6tiww}Wi9IHR zuMe=fUTT$6*m5te7={fgz^^j&ks5DFzbZ9@PY;OW+aYAD+gP~ObzV6eGW6HAn~7KX z*ca(ExrtrZR%bb{OksK-9XBh3S9@X6SesEmn?_&=2ZuD4&42P2V*p>oK>ly9i;ts!|*dj|jA`>s2cteY6QC%jq(BP2jCwWV<>z@GHcS%x&eA3B&1R;o0< z6^1B3q}IFHYCp}-?jLl(loxJVwA{CDO9i7G}X$2-6jWI)j z=AdMdR+7w@`PkraNt#xYz!wDB`~Wrg+^M0`X{9OrNmd`Ay?dnbpM3(iiND771*oMq zvOJA{sue}^e+2}elrZT^RSD|R7onm(p8ReuM2H~pVN^)tZ)z>#c&E3!MXuK39klp! zeSv?gR=X!Z>FKWBORN2SsHk?&(wM(DSgSRN=h+tt@`VIJj{rUG@#p&W=2nc@En15h zm;;bpDDM0N%h zYSVbWRw0W2?(43wS*tJ*4?G(AClZNxWP(;-Rf;Zl>E4imh)yL#JQ;m))U=IM`PE;& zxS>>PC${SOCl)=us4*=vKk7@tDo^@PEHXuBcT@{LC<>lu>qE22dep}`qo73ZP-&A#Y4+%$XdAZCCc|S9OjVo#y3LOLFVasj7J-1B^xVk@ zU@xl!e=_`}BPN6b6}*W5F{mQNA@4o1Q(6xK*nXATYE75WFa6-^jV>1Pn5vxdhv|CJC+K=Q5blv&FKa!*-$zBChH8B( z^nmI_u!nWnf3rdF{WzLk51N-hx?E0`bdNU5y-Qy5RJnULM{gnxLFJUcCx&UXH=oQY zgj@)VbdBxWik?l?b;8tNwl{TAEUOVD50Ro8&J>$SQ+qHg~}wJ@UIY%9harbE9r4MmHsb=PYI zjqYj@ffloZg7}ZoVm(?I>(>E)$t+v`CDr?ORX3vgSgrbN5RY=46$QQOZBDhIXHz@| zZ*iz+lcL;!-72#2#e$yoS%CDa&vb^N*J#kIS-MW{TYK7Pfe0N^UVz-AD*u9EKLx|R zr_Uh$?q94>7opvas`A|qLB)_^CvU+`BVOc&INP7LVvT$ZmT1_#Cd;_Xq zwR3*OqU&lLA!QBgVUV*^?ow}Y+lUM+L{Qlnfd0T`jNq?qtU*pqsp(U|&y zPPyQOYam7x-V82Pxk0PCAk+=db>0Yg?nU@j8vF`oiI7uk&%jDjfR4QAaggZks`8Z2 zut`w-jo(7VDxU`NF^%7$8XAkq)oyM(L>kj($B9W?UFRC{G*(zNct=3_7f(CL87K+P6YA&K^7RUHPOKGu>n(eP5}Iv&C*-R57sHOwQF6)%~L`q_{(3 z?0aky^Zj1fdeXQO$|sLwwwr8)b#=CR6|dCcL~X=5t@gB#sC$cB%=NXHZ)v;(wc85y z_0M3YZ-o6S4%U+sbyD;7?0KUcGo;d4rM;YX|LdsGq*XXk7uhITudmC7K0CcMt3{u0`Z$>#c;yEO5Wa*J|dhL{;q0wlKt&eE5kZPA6CbO-sMVV^h374_a zHZQWVdLC_7l@p!N?0WYW zOd3VW3g(h54U*|R-v#LhMMhEL0ZFX|C>K-0ba6^#X+S-IiGW=LSi(hEoCdo9ZY`{W z;zU#EIzn#|Do9(po;XekRRp5mIjliQce~Cbi1-3nIpVQCynDpmKe&bea%Sy{V02SRS&pe2QkH?vUQX$; z6Rvoty{miMH7f4}l{Qc*^w5_v>y`vS#czbXE@ohqMB0)557H`j?WX`cgS>>9Sb&+? z{SzExu{o8$5(x8)M}%0whRE`el&=E+6QQ551#ir(mIYW(-Q{~zIVVWY$;0h?GC!GmpIqAkD8anq5DDV(W~SlI9K$?Xf>?+F z>v!rm=+=jnQ|#j&*eo9PSGl8_Bf)9|$|s>H=&w0}br1xq>*7YtAG)<}XhqG4sHVPP zQ!wXs)pekcZ)kO6101WE*ao7$WNRquR}rNN4I$+Qf8?g9W?|Qd9mON?dSJWFC%x{r z7pB!*W%eko0a$m~t#uT0HC^qBS+6K7eYr%} z_-a9q`e5`yyD$uU5qJN@ z1Px#m--4J)a5$?fQ?x1CH%9L3r~$vW<9uauNG$gX6KyWifKb zd|@zBl!>U_UrUuDEKo^okzEph=RIzV?2dpu4N{K`A3UkRwh9)(;$8RLG7&qw}A~y$>5EyqrIpG&B0$U%BM18-q5jYP4XJ;F+y;4fr zM-XXq)Jstt-eI5glyj5Q_?l33^Ke*Bg)9*rh{i0n;MgoqHk;cZA!ML)(b}uwVAA0M z`c>;ju9r=TgHW*+8>C+;VK>LgsgZYU83%hLPA*E^9+Is2OU-0PNq&uAiBW6zbfmMd z;^ZpnPBtoDE`Zze&GDG}2iODg@@`WacL%$5>iqjc$}nF!CTNz2&Fm%HXQc6RjCKB6 zx^3&qVu(qpknqIleB-4}o!Hcb=KqB!T00LAq>7(@aolcU-!8@`YVpSH5gmXNUT)SA zN`61bjj`JlD98zq-g{c>J5{zLL9VGif@3OI zVP?%WHG&IXx8T_Yer07)ze(`UD6hq7ok};Jb6K2;=2u*Px1nAt^t((vQ!OA7>q1I_ z*RVOFG1{CqFS6bQU)IP*c;&bzxbAaBKAOrmsBgI=o20_GAkU45@C6B>x>NaA=m>t&3w%B+5Of55x6on%(BA>MAi$+Sz4Eav_cumnX@Y32B^#%nR?% z$}V1OSvsyq{qM@Z*{&oxVPG0x5$d>MttGp7>A0B3epg=frEN=F7Y#}Kbv456T6k+l zxJhh%Pxd=Z_2-f>o%XQa$%vj|S0>B3(j#oSi0)#|$#QQzusvB$FSPg~w?(c?1D<}W zWFc-vnH9=JkA*i*N7t<3yCcckoiRirx+cHUz_L^1zPj^XR-PjFlako&A}e{>lPR*f zmV3mxYj?};m#o*u$&B%NUE>6Cnc?}^4G&whO?(>0yL;*hnE1u*?&01y&#x?kTWC0M zAYpttz_(7r=jz56uQlj)Su^q6Ae&;6;m_h@H72=F=49`pECXpMCEsL_6XP5UzfN&E z+~Zu9jFR7#(d-qIJWw2Un=nijEGAX%D-B^oQe~Un=7CZTRw@o}#n5#Bdbs0u@0;gz z>mf6|0pHFR*Kf2=s{I}Q<2Z6K`II%9At7#e1-Pb9x$mM`;h$Rm?u+@`0KKg%C;Dth ze(@!Ff|HWRv0}py7IRA+CcreS&9@J1e~c$;^!(H0TkU5Lr^}{Ew_Va)pj-Tx{QSS< z=UmLkqnFOCO=ETCAHE#N?IFg~<+PzsdknrN_M` zl40CVVn*r6pg8Ku_15fRm1pTwmqB#86@7@w(z|-LQ5@xT2LF84kjn4(|8dp;UC9%6 zl}qKhfxn$K49Ju-U?tn@>*MZOQ8HAV4(wBJD05(WO%1urQu%FuIO|#*U@K-fe7#|N zJc7MySTLfab)kauXcvgP7bgcb!joe|ro55<8Wio~{cJ#%JTfPh?}fTx;;}vhc`kLN z>m8TW*jyUbCK#hQwMgY-RrYX}Jh(QMKdP~_<6hEXCy}WRSBs1E*SA?=b4}x)c>m#2 zFpX4I9V6Z(*ei*_-Y>6`tO4Z+*y*;V-#bM55Yjg~PAyfn+BDrCCm-Z^7USuI*)u z&GG>0Ue;)qb7@3KZc63v!mehPv*_8N$i3ucXU+2bI0MESs=3;GhXY7&_p${Rc_=-m z)w#mUp0UU|wTrM>2NhR9QTq5K+*X0}QJatyo)2z~)E|~CI;5WpT8zb{q9<*ygtrk6A+#eLMfd^XcLbrQTQa01 zax6pAUWkw|-!zw?hiM)*$BG`VVQZ~&A+5n0PUZjcu=lNU9@z95tK654(+V3r%xshG zJ$isKrt&&ZA*o<9Y;tdU4w6l(xXMvylaqUAKw`Y0q+%148?P&ftv7@A6RvEW{%>^! zl^6{g#on^X{b$aGNg=3I`W594ug|iYoK`l&C}FM<+VBO~(uF#@rH`KY(1o78!`(0Ld<7VP5q2JkwK637aTrK-#D4{Wxnd(PjL{7Ly zI=8yM!J6@!V2QyvUQnh46B^O1zQ}pPRRm~f7qnD^j$zaK%2N|-@#=%hZI~dL-;8 zhA+rQ+QY+Vmka1}c&?cE=Rx+2UG75{YPo+0*&&geq2-!_kL4mWQp>ClvH>F3Tg%-Q zWOH)mlEh;eSyd_XCjiw9sLm!{8Du+iF@o=UMXo5wj_1mb{4&gppfbW^DeuYGg(TRf z{K`zt%uxYzVx|-F1!hz9qn%1B8cB?Fe688ZqiiD9-E_}Vp6D>J=R}P zI-p`ojpt#9kJYT!v9QAjmBU)=Lr^foLIJ_+e;Zxek06%Hv`lnMylTXI5uZW#j-i|4 zCz!yKS|599=SnKXj$8Z5?FJM79!^jF<$k03`-(Ax7yA1Ry|Ve0(y!Ym?9jgiHxS1K z#q4vCexpr%j{lv~3+;k5J6=zgHmS43v{kNUyZXyXwFb~OP2*BRGH3@)ORSPMMW0HQ z$Y+8^J7_~%yryY6pbzO&NFU3Sa6Bbx2b;^Witulpw>1C$}$Z3$p8gZ?<)pS95 z*!wxs9Z0SAeyF9q%KV_%Jv&T57ka)cb#+keucGXs(EVMhN<3U_l3wLLJYH;_US%0l z;^u-ECVD}tSGgS}g4AJMq}~`Z7iqK>prCsk?nYWu%P%2Z3}=}5XEfrMc-cDxW$WC& z=({i;c$KGt+JjiAwC^GIAzp{L6R{YTvxvp0oJQRJq+;z!Vm1DGfQ0cNg%^0)XoqZ_ zauUKtD_U0L3AZ7B1hK%h7I8PGh%TDNrq_+@(kakA=w946bjbJ2yi4uvB$705}~2f-^}DqTHxnxmpr6kqTaWShw&D7n9@ zqS9VQ;}TUXf;)cZ19vaLnir?h!fQR>5Sxi~bR#AXkYvm<{F z3Ki-kTRup>vH#9s3^FhJEu`nV#|vVbypTym$upwlMYpR}D|bgFp|jy#l)jb0Yo084vJY9qrqYUiy$*KSP8p!usk(#mS@YtfbtvL zJs4WyXYAx)Ils2kqu=H(QW-Hi#MYNbHL(zd5EVoGRPjj$DQuv)AHn#}-TMsSg!o6{kJBz8E!Y78ZS1o~>I`e;(vBS3Wuh~D+B zXW7H#)YSQb3=N#2ft$L(+k7u*;0h-&N;qzQ1aUSvd7WKPYWiX;MTkQ>A7LEA)d*tG z5z=P+5b$vaoKO%;1=x26gMYK-!{n4&(UUL}{M-|sn&*|VfmJB&Fr8OM20Cp?m(3qzFy4#EV`AhO8$p3mtUQ?s{x}c_LNPYszm;S=k3iDnv z{}Mj?BV}t=aqj7E`u^axDf~1p3PE{wr|_rzf917dgR!n6Y}*sN zRSj(Cm;RL9Gt-Pj%3uF%9BqqoK2a)tnF7g*g9)7K5p*&VPMxN5k#P9G*o3J@5 zSF4Fl$*_5{r^m>XlGg{QEfPYYuED2#8c5vM1F)AoOjjb$lAdO>OXMNaOKg3KoD%<* zKej1_w|R}WpXTZV1pP`$_~MLsG#SW~zKyZ_cjk=yz?8YWgPl;9bc#8W~MFI29IUnOleHm^3VOiitu ztC8|)$VlimF^F@6vCV^s5!W7k5S~TJ1<2ni{H#YB^7={Wmh9G2IZ67ItuB>E#I~A~ z_zBH{zz?Yd_m|}yLlWPwGGD2jmi`$G&)q+9NcF_d6yZW%?^lZ1z;Uq6ZDd!DgZ?KZ zo)lhGxqw5fm)m~}vCnrZ#h;+W6*zR+^=`x&hbWBC0t@k;a_-x zy%ve|F7)5|qA>N&t8w^yMoq@w(<-s)H-%Bv1bTO&s_#Ojdb&})EKmVcrzcG4n;NE1 zG)xCHOdqO-ZGzz5f#hwZ!HW|%f&U%#GI2C^PeDq3PiJyds`&e;2?KXaFuCcRa&yRl zO535%3QI4HnpoO*A=Dx)N4O7RCBh>J?IW?LFv|pZ;S6FUCddP68vJ>Z`OPZ3WrBP) z{SaP9$$YfRKARw$uecn3JUBe{Sztri2(1a4fv}!HYw|1K!K3J$aukAOSZi9BuP2-F zgc8I;A$)2Sw5Ab%Xcj_KI*JKm3$aOMa9G&D?kgkRk>raWWCV4W=w>6DPF6*AjDQo zgnpRBo}Gv(^qakF-m}Zs6kE#h3#gS(6%+(O|&K! z_?4&q<{WZP`B%U}gu_l9*yeK>v=T~X=7oBx&t*-eK0~V`H82Q)l%pish5$k=5JvhS|`64YG;Ti#R zsR_RKaG8c%WQ9Cw=n-wiE(_M#^6S1fErR|%nlwZI4h$VuVJ5%SsY*|u4Hu0T;u4cr z*{jta8f4#B$bFXfV4!R>6QwyT%En1%~U44FEgYNS?@YY&!&Depv zPJOhC#<~UtD(<{VvSrK^Rk+lo@KU&)N(~<6HErwpI#8^g`gUMabvw-b+%-nhXsEoH zV7oBUj(Pq7$-GuVgY^}|lfbiof`40}G z(QYr=?Pc4Xa_@`H;OM6{o8@O6XqNsXEGo&|rZvMA9W;awB3Yu*o;g{z{H>wc&nhRQ z;SR0gFMjd7a6^iQ^Ux5N*(S?()~4VZ@xrn~_&XPXtJmKrwnqsrgaPFNpM(u%GAs{c zV0k#%-XFOMek=Z#`cv?C40bu6G7>f*lQWu~aHVuPikw&0cw!s#7Ufs>Y>eHo5OZx& zb8$fg8z#e~}cqALfy?lPaU-q&wvh1QiKScrYNtMcL$ zcnW>0#%R>WHpX;O8w+Ze!ZJEe8#E!}iB)#295V%^#Dm;prFhktJ()&1>Q6yv;!GW6~Du*Q@ z;YEgLoa{y@=-^-h)^?_zlG8a6%y-EI66?g&!#_5=mSfB38=fX~}$c zK;Iz|6Bz5m0l{vQ`9~NqoF3tP&CJZx@)rT=%?O6c1PIhkzbVI0li)y85yB>>N@mJf?!%jw9`)^usOQg)a;Ih`jo(D zhaw>OwL$VSr$GeE35nYQU#e1u5Xkz63P7o%e91nZCZ~@+hj(MZz}Z{|OnBicZW@~}SB<$k@A`HSeIIAZ@&E63UY{ONKZ2uTvYrZHW%jz|m( z6PqpMUYGbar?B(^=(iRa}W`Et@w@BI0vHmT3~3{Tscm zb_b3szlM2CQL3~9RyYK>eagm*3d&#giqp!Dzg!DS=A$mT7L?2fbX^Nd=EppL*DD;m zGn_*5jUk&#^N;x0Co|+ocLroDJ@!?1St5TYkO;Xy8UFbaF@gn7!7+uMtR}xGk6=fL zZqi#5`Sw8c3r5Y#F*PLEWQIr7O!bI%$&lS5ptwAZ5lhfcs>YP|BnKQgt?AE3&y=&q zxBKjn;X2hisJ|!h4Gepe1g^hKwQmy}$-5f#Bz#5-;K(JQIzVp*R0rrQ8dUg?&cqyi zR?B^ay1C?oLVJ?|HD{ov0X3Nhds~BT1S|ru34lcawpxSjP&Z$szzFD2K#hRjr9uCt z3d>}eKCvtH1vC=SMH+OSdeGL$3NM%AYp>A??u8ey9mn{w>Q9AZ{WyIi(q zC-S%a_HDur6{%J0r_$!5nN|{IA?7p6H7w!^_?0E|2Dpt!;+EXkM*ZP=5XO^vwl8j* z9dR|9i{bymD_%|@6#YUEt?57ywf5X(Z%X8F_|pdOeXYhXA!?1)%1@(Q4EUQ``FALf z(aMjbT#xb{TKT6TT4jya0G|UO-sRI8;J=}$ZAIn3D~$m|)|_@dB)2H7);QD>Z{rcI z)~itVWXN=akfDHxH*v29c^(i8!MQ=hFUm0%b0yq=U-e6a&z_V>2Hr|T32j_`k-;)Ei#d=t? zNl&&Q?YR<1F(=vQS3*)rS4nRpW^yr!oJ4HDDAo9OOg`4#7#2TE&d>Csqi{zB_!oG| z4k9+h*?w_`_>1y2yK0s^#PvG3RTBRuC?=ZUB-o)?JJ$t;4D3<1Y0!f~G1P`q+@V7LWj=y7q0{_Th&)$gO zQP3E*xqw_fPCUY@&biFelnXNYcRi#6en3~@u7RSQQw36!hBQe-+Dk*)GbnG0Z1`FE zMKx|R649B@L$ES}P+eD7varpFu6z{g?n-a1D@jl;!(E99MQdGoBh=lMM076oNIcHIm?IAx zp2*AKWr*)eo@BK0*jM1Cb2u2N%}nqGO3X)yL+}m95w`jrfk8{t_V|iQn)0LkMW` zwrD~?y|)*Kv;sFle6~xwBi&ji%?b+y@iW-_bLHFUpkNkW#sfZ9dM%EX)3sa;yr)FY zpyjT@DV@mu77#T{ee8h9eXiy5eat6v|JHJeK4y18OMhO=;R7SHMD7tS_q~^`a-rr@ zE%!0Lp($W4Ew|gteiXTKE%$_%CC@|7q2=z!mpMevq~&h(vODGhi=^d*%ZGrS@(apF zd)a66Xnt<_g$@TJ9JmD*?M*%YEcwZ;RYqE%%Ct z{ahudO{xUv6pFw}#9}`Fg7^Z0iV!tGPm&R`5pobl8ldhVR+ThQl{>3BeNz%vVm}Sv zau1tQ4eUu;ZlQT!a_%=OQL!Fo++m7{^@Y-U&i zy|a9kX->;#^Lp>BtR`QjW&If(ZKgJ6HD%Q&IV}ig1kqw&Akk^wEb3b}8wyds_F{tt zc&t$MTFah6e;w$r7?)@Wwna#b(~0%7p%l%K$Y7K$M?4MTL8Lb#jC02A7M_$lYz88P z(KE_Tp)t-5#0$FwkWOWSZzM`Om9f6Cu+piF^wkz?Ma90bWYeh>`YveFPp2}#7nXxM zm0aJ~U1d2w2u+ZHI+bkS-mX-dFMI&psU-Qr2f&^9c#06rM7N^Cp&ky_}K|&6{yl zAlxqCwdIz|qxn8oalJfYLLwjYr?1f^@{@o08eJ0agRjxS0@3voIsw!c&3(@R_r2e6 zEArFp<$>lTegT7%fUWWGCjd!&V31keva9x6Fe})ut%6H#@tJR$chh_;vHh$Z@;M-P z{Hz@GIc)JHy2)To;Ol^|Q@Px4fKRyivP`GKpcgo>PvEO*9U}jTUwjHiq`vYQ@m-l- zSUX9+Ua*Bro5X&?)LxL;wnH21R6g|SnsrRN0W#XXS~1g#U-jvC=o9S@M_u%`UQM^w zCGlUp0)bvbaHCf9UbxXD^4g#gfA0yJU;rwC7!}u-XsSi`$OvsVQqz`4I?gC|=)3(8 zi%(HyAT}e0<~tCIC_d7z{le<6(D)Pho%r_D4RQ$;+WlzU+hCnH$W>9dVg$rjTIvR} zs)h3K=tO+YO~U9T^7BE~v``*di`^6@LU(ElioU)Gr}ad9lthsFJnSK2MD&2&su#&cIaLtR;`aQ6#eV58+&yuChAq~QuVc%0dm?V$nBnqCv?I4- zjE1n(iQlDzQQ>E?i)HxSYZD+z!wy3UNV^ngZda|HsC7ZPfaeI4M%!O%$?$+(ENA4D zYFNtu4;t}du7iu^K38MHfVucZnv?IO}@fl@4 z{?_bi0PgPIbdN)rUeP{*Z^PA#8|Bx*x5xP+aXde*NG;N@i(tm>q<=)4xT2YeYk^yD zXr7lb`0D12A&-}yZPz!$LK7hmJCU&4z@XWL)$PazMe&5&zsFI}{`RNp3i=O1IA-Yky-j`$imH*OM+C-X_2>8i0c zc%}D8ut_zt-4u&U6Ws%=O&F`$f-?dyTT>(Fnb&m9+O^uu)!!+$-pF>zp|^^U0sQD; zpVi1KO*^px3QJF`3Ey&ndunT0xE;G?30y6Q2cj$vm(*}dd5b-}1nvey*x@DeKhu+7 z<{%ByrabVdQ_AnbIFd>P-#Ud`Q#alsH%5u26J9o~*RAr3^hAE2`gCeiP0b$9?iir{>h;$RDbY#AVSeY-ex92<)5 zh}OzR2AJtKIV&y^U;7N7h>CUFGKiJkhSNShyWuvusH`Oz)DUD$^9lS`xCD0i@4qe zF8NQm)@!(gbD_W$UXKFXG+?x!2r(w^AGu2=`icPR4$5H4xhgS-id#&VAwpL-LO$hp9gocXP3&hq2r;FXV$U}x`?b7n;cc9cf6%^#KThQBF3-KF3|RI+oXV{3H+kHwB|cW~t+aA~f5 zfxm)%bU)^Q=gqx%YJlBzm)w-J;^MW7@QqqSK|Ejc{}J{ja8Xt5|96G~=3cg8lglE` zA~=BJ0D>rLC`Q0!sZnWa;*yO^M%iME&Df@vl{)GLrbW{X)XGfL7JId_xdvK==- z1-!U)W}pA}oEgn}f4~24KA&gKJ@-84+;h)8%X7}NNqGOh-5f7}C;jv=Uy(2cukhDOnjllrm1TTgQk9dMUs7q{ zQ38?+T3~7akX~NK=Ue0DSXcf7T>hB0B5bioERH~72Lc0Y3UExDD7X8RuTiojQ8wdn zHUV4tczGU#jT2!xn5JtzG_STTwMvj5gp!^DWzZ6y4iW@SN=46!xpZ@ z%&J(+1g@{n1-j%@a03y(<)N`P?tv{d?8X$3Wy)=#@~pS|=$*&h6w3w< zX(_W776zhrB~tGU7#4GR_q68XOeM#k+hVDVmzTL{js={aFc14he3{H!_>Hy60C`*XJs#6bo`w zdZkCVSj(BmO&u#krt%`hYA(gIn2hB`a{uK!Q$u$a2k$@*)57x1lMKuGsfA;`v~u%Y z324uB%n4bjR01kh%e8D)t(l;q@hG2bz-bJyqg$5L(dSO{sb8O3O|Sm+ zn7Ew&3EMUDA?c1svGGX6iZ_De^2^%BwbSiJqFm;Sc&&yZ|KLg3PKm$(Sp`ZyQU2OV z2aT#VqLH>#r*BF7vsxPl)-i1QpVb#|`P@2uc28iGIl4vt3C)r0Q@=5Sm9-0H72xz# zgQHEF((Ek5=uu1IkMViwiE=O2GG)U>aD9v@Vg-hfq56IF!&@ZtV|>Q^84#cy>06nO)L@PZ9qyqFfXDTLfI+xUgL*0k)PXL`BJ%EXYV39wLW9Wym zvLVz-Cm+MgHblDmaeh_*1PGD98VDr%(hc!67vU6kDecsqbo^$Pw>e&PkhWH2~YAF zis{mzC!r}ADNTA3(n#l}2N0;OE+Z!W@BLEqlQ_z;u-E~=^aEmflUQt<{}Y1=uS6zJ zHETAmHJz!OV$S6fbOFQNKVv?!*jTpHLuns%Ilz_qvLL` zy9n|oh8^$3%MG}9fxwESKG(+S!;+d|R$zfm)3^Y#Zx-)pPDQ{=%j!pnau5>q>0iuNXj_xH6p=y{h2x=RBd-a)fQf!plTa0SNbH?N;jzkhdhtU0!L|N9|m&|Y5Y+Esj^DqddUl^$KimlogRR)N{CY*wwyn-lI>urPex!Z~Nr%nB_%W*r~T zafepo>8li6EmU`o;##*#A!MbGH#$vm5E8OVDg7yaKxsU*55u_1FDpON!yJJT zeuy|rygbND9T{D!FUKWNhZ>g^Y(kwQz0%!J@wqCOEAfDIaD_Va>ICe|gQA#0 z5zGYndLQ>U2LOrkv#$T&k;`e)D}_A`o$`3O#S^U3rRua$gZ}(r5j{7Qa%E*#c%*et z^ZMcmuA-&-l~e{WeK(~WIr{}t;hM8Dhtm`(n+NQMRIp3QY&)w!SHc<|(u<^1PxAvZ z!rU<3yt0E5+90>L*diMFve_WT&XYe~(!kYxjWH2^B2~}#r`c1@M{(lo_lwQF#KXQu7ibA8kPlU|>s^37faSm)3-IFl(l6ay&rZWv;53|0 zKfRv$2axF|RCX$DO@_emMH>C2t0j%_l`8)Hp4_2L5|j6lbnC&ABZ>{v89$ zXo9Y1AnNi_vj&7iaCb!Cq!i*Vw4?3^&9_TKN_A+PQ18sg zCLn;5l6VMXlwxlG%o}0RGn`saehYT}#N-Owtyz-~(>w95gyAhedvh z`XEDn&L0809_uUh&2z?w<8dn>6%h}U82#|S+#l7XLfV}1D*KquVm3B|1}L;+DHG}w zuu`&Wpeh6LhuYE7gAzYpv0wU^1Vbx3r5`1n@O>#oHt_waxr_#WXwEB6YVzY?B^Cbq zr_??K5Fxol58Kb<*l$?_e>FA?;Xdh;1{7K-MK$v2>bd@hu~cX#OZkmZKYR?#4z5wr zq^LRv5-suowY5#ZIEVyvjBY4t(X#3>NR+y%w=S&wd1YADWHDj)IWYbcQHx9XGVpOy zo0ZM2*maR~d2`Ih;p(E3v$AI2Hrr5FirMXVZA>EA=(<$Kl)AtchQ2HSJYo zC0tAGz=Q8^P{WBzd`%v02^|kvHcEh~ndJndPAzZ7XrbYO01ts;wcLWZ8lGq3v}cLO z6V8qlo6(HrzdjPq)u(XsTWMTxNQ~`V$l$;W2BqZ}HZiqMfj(AD>uEA3PzP0F{NU!4hyE+N+ zOOs#XZ$&FV>yq}o#1D%~^ciqOplIlTOw9S0ctg}yX9gyRK2HaX9O^dl)0B0?q(?UK z?ORcp|gDvF`WB{%sz~eFPC5k&D1s91=K;_;D6jAf6RCWG;XuG!=Bo!u9d6&GP}` z?P3+KQv!SR@0ll$>!^Lt{N99)T4hnkC;XHKF2Fz>jD6^8#zkccOUCe#CI%syy4LWp4m` zHN!TAusLA6akizAuMhM}Z@$9!pOE6AwOjzJiRZ~7$c$^`lE6de=42w^}XbAmim*Fz6}%FX=wz4*>Q3j6m*jGNhQ%O z{F>LXhZC^#&EXcqtaGxHXS>KaS>xA0{dQ_K$o96Wtg`#u(NHQm4;x>!Hb?xmI1oGy zlZh|Tr%mLHWv!g<`kHt-$}jET#+N9@NoTk56BI|J(XaA3CB~X#=mN*4#H|~Is~(aE z!imbH?}9AAHZW#B0dxZ{0!HKHcMQPxvGn4reA-lM$@=>UP}abG4loKkGb+7C

m; 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

GqeHjm>%X5-Vz$YcIye zubUim<~9w(ZK@MlWX@~K#n#U~F>mb|@`O9yVQkK^=L0(r|G5B~<1^$K9LkaRw;YSy zM)m;wqx?a@K2K)D#K0Lcla*z}QDh##nu|Z0Sj!S8xzo@So&|9XfgzYbDgr68K^fHI zqVykKZs`zHV1y|CgRIzW>SD!5sQ?*#51z<$8duW+J``|soW zFyK?b*c(vLW*}B!sOgY+h-Sj|l|OlJg@yVaORZAa!{t&O1&KHcieY{u3t=8h(FjAU zUL`C(C^wuVpTeU+me4OY+N^|`j3~3p-c9mh+Was~Y<%Ym(pI#Z?92#HTMnQULot)g zD8>il{M{h(if|NqhCJvmWMPM^fQ83grkVotv57PmE1z*g))82*x`s{|3O>$IcDLP~ zkL!GP{WBC8hF}doHgT}I-3ruot~{3ISywJX7rDik1LPcrd>9`MC-jiP`RCax9nc-3 z0V#XOsawa7HgcjVR^ADUG!|-L7dojDS+xAHGyO8lC`SGm!+_H5bjqYJd?C+*xe#qj zr@K$vm5ery#!@?3b-`S(hl)=hSPLx*kfSm zPI~bJz6oY9+)OG(vsbW~L7~;d4)83{XqvqWi&}3iD7SdXUBIAmQD4B~^I4p;oFhq> zDOc*{p-z&&=M$~}u=pD*KXb(vJXU@rv;~iq3;u^KI8;6NK7)Q_EQmn&Ze<2j+Qo<# znaqZIW30Twh2x&rG^hzwdgKO3VCP^1oOcg~cIb?xoFZS#knaL=MDy4Js`V8-N}*|E zSlS#{47RnDFb$sLI?ycij6ohH?LNpq-cKgSu>i}Yo&EpD{(tsM*B;_auIeGrxL;*Q z&@YIYj2_Q|_X$cAuYwneSO{O852dEC)PAAV2U+Sj(xF3qmX+!rcZu^WWipf9-h(O0 zV5tGer3VZXD%j{lr%;TB=~skT{^Y&UT;s0D*T?ErYdD<=-RlQPmC*1sgta@!kM0o>&(+dJ!`bGcfQwFk%yzY^RS8TOr&_y+whzg`AQy)Klxo25oNrO6-h1Iy2|_fw+5 zCESmZy8{C)ctemY^c^h)k%gAZDZ^rAr$6q?9ymVanV834?<~Fj5kFGD0)oZS5C{05 z-EhQGQQL&We4+Rn3^iSvXRdKwnrG5HY@Qhw#pW3S^UN7y^ZvJZ@M)6e56(Jt#+lTL zIqn;2+hP7z@oIk=r_tBL=VBugzGwc;8x+vCIBV@ZURgL%mOR` z)B~0RY=BjOHGoFIW;1S|nO2zY$VzGpw<{Ytonl%4ebZ*)Bj=>&(E!O`>h z7;b$F_z3VBpcU{V;19q_Kp(&Zh`0)^1{jEwQW0S$ zU^=d|5e@-R-c&KdBz&^52){(U3L(`ln~YEu4iU|%xTwXA*$77=T!4^%vgYaR5 zhY>!3a3{iN5kfGETaWMrLI=WOV1&JjFazOh2p1vTi?9~q`v@to?l8jD2tPykE5bH} zha;>U_bV=r0qD1p5e5KZ<OeiGUP9I$!|605AfE0OItJ;Si^BpHEC~j@co$ zC<+7Eujskt9kKAvd6paq(Dv6mm+y>cypR}qu=^Dpwlo-$cWR{gZ+L@nmb{N6z8Gq4 zf6O;~J+; z|5k_n+eGZ&w1!u!kJ~7In)B5w@YTSd%1Zv)MGbI@D194z1~#&?RnCJ!+;~lF;7LYoDJ^E$W{>znIiGuvFjMi}lW)v_>8Rj#rlJvpBN-krS^pit@ z^S~b?2Fs?}EF638y)L>bebg|Gn`7Hrwj~?yb$2LBbKptsL2k52+kpzYpM@$8ZL#UD z1yavaAq6x-K2G>&R2#9vZ+4b))2j<`^}JI$(#nstM$1=&7d}istXOPGhLH|zgMmYh zbjXlMN@j#~v|Q#ayW`T15D(NMCyj(!dba)8Uxc8P<@1(B)J$a8_Jg1Y4UHRDdGV@trjDVDY(5X_s+@@6CNzeDK{vh@1{dX`tm^14H5i&)xx z

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�ZF3>v&}QAYZpVf0i_ZAwCR72YTuYh6R-?X6=ke|cSSFKt&LsQE3V zz0K2681NC*XiyC*#QR!{a?CBKdA+qqx`v)Y5*(|p8QIx4aChhl{^pbAXHRDoz|G&S ziI%&2`jmWbTEW8$mp;VxAK0IpxOC~VoB0a9#PfXRulR4iiqp@WzEyD`=do5iElgao z7G&4o{y^Cca(8zZjy2GY$=bnnr<1k$iYU2ges=ENfjXGa7NCCGk9)NLg)bdQ2CTlR zKiyv6@@qVe%F)L2*Xok`YfVCz5F9#n!I=;8wnMsLpmredtlKzH>lBJhvVFrQAEX6q zbv>Xz8SxeP{Xb5x^QLKk=1s?XL5rccuZ7v5s5^h_%R`|D*-fCaIocROFVyuOtldX~ z8i0|*rwP6fIw1`zk_cek$!1IRf-LRhNd+Sjc^8h|0PoX)W4g|D1}KYy0o0SFJvgv| zDHy}aZwC`d^KA4Od{!oODlj!Mq}Z^^o`$++3zSg@@w1Qz`AV}<7Or#sXR-wL0d*Ia z=hS87X!r9yLXkV0In>yEM{a0Y(Y7dUTK~DY6I`Gb36P-+w4(XGPOU(mP#c{&Mti)+ znfuX#2apeXAp77tx1t>_m0Q8jrMY9Zi9JdmLxvT|h>DNFb^JSj6eDSUKpARZH zFcO$QI5o}4rKXw9T-qS~-J+4lug0le-lVZ(j8kSz=cZ4YVw^Z-@;HvFa<#UBYgglz zaDnIIpSks1scUaN*Yb7f$@PLv<0avG`Fh9^Lb`=V+0IQ}jyV4tp|6b7M)IqvdYtx= z-e+*gy7mR6;cRms{LW{{{yxJaJv8i delta 67874 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 ThS2hAeaJq|$&pG6*hKyp<$h64