From 04faeb1ee6b036b6e5cbc6a0834b38c84711cc2d Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 18 Nov 2023 18:44:10 +0000 Subject: [PATCH] added a panadapter --- Makefile | 9 +- README.md | 2 +- app/app.c | 32 +- app/app.h | 5 - app/menu.c | 31 +- app/spectrum.c | 1362 ------------------------------------------- app/spectrum.h | 203 ------- firmware.bin | Bin 61268 -> 61260 bytes firmware.packed.bin | Bin 61286 -> 61278 bytes freq_ignore.c | 2 - main.c | 7 + misc.c | 7 + misc.h | 5 + panadapter.c | 138 +++++ panadapter.h | 37 ++ radio.c | 36 +- settings.h | 12 +- ui/main.c | 110 +++- ui/main.h | 3 + ui/menu.c | 9 + ui/menu.h | 3 + 21 files changed, 411 insertions(+), 1602 deletions(-) delete mode 100644 app/spectrum.c delete mode 100644 app/spectrum.h create mode 100644 panadapter.c create mode 100644 panadapter.h diff --git a/Makefile b/Makefile index d29e43a..02b87c7 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ ENABLE_NOAA := 0 ENABLE_VOICE := 0 ENABLE_MUTE_RADIO_FOR_VOICE := 0 # Tx on Voice 1.0 kB -ENABLE_VOX := 1 +ENABLE_VOX := 0 ENABLE_VOX_MORE_SENSITIVE := 1 ENABLE_REDUCE_LOW_MID_TX_POWER := 1 # Tx Alarm 600 B @@ -59,7 +59,7 @@ ENABLE_DTMF_CALL_FLASH_LIGHT := 1 ENABLE_FLASH_LIGHT_SOS_TONE := 0 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 1 -ENABLE_FREQ_SEARCH_LNA := 1 +ENABLE_FREQ_SEARCH_LNA := 0 ENABLE_FREQ_SEARCH_TIMEOUT := 0 ENABLE_CODE_SEARCH_TIMEOUT := 0 ENABLE_SCAN_IGNORE_LIST := 1 @@ -82,7 +82,7 @@ ENABLE_TX_AUDIO_BAR := 0 ENABLE_SIDE_BUTT_MENU := 0 # Key Lock 400 B ENABLE_KEYLOCK := 1 -ENABLE_PANADAPTER := 0 +ENABLE_PANADAPTER := 1 #ENABLE_SINGLE_VFO_CHAN := 0 ############################################################# @@ -223,6 +223,9 @@ OBJS += ui/status.o OBJS += ui/ui.o OBJS += version.o OBJS += main.o +ifeq ($(ENABLE_PANADAPTER),1) + OBJS += panadapter.o +endif ifeq ($(OS), Windows_NT) TOP := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) diff --git a/README.md b/README.md index c304e3c..aadd16b 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ ENABLE_RX_SIGNAL_BAR := 1 enable a menu option for showing an ENABLE_TX_AUDIO_BAR := 1 enable a menu option for showing a TX audio level bar ENABLE_SIDE_BUTT_MENU := 1 enable menu option for configuring the programmable side buttons ENABLE_KEYLOCK := 1 enable keylock menu option + keylock code -#ENABLE_PANADAPTER := 0 not yet implemented - spectrum/pan-adapter +ENABLE_PANADAPTER := 1 TEST ONLY centered on the selected VFO RX frequency, only shows if dual-watch is disabled #ENABLE_SINGLE_VFO_CHAN := 0 not yet implemented - single VFO on display when possible ``` diff --git a/app/app.c b/app/app.c index ecc1dc0..c2facde 100644 --- a/app/app.c +++ b/app/app.c @@ -59,6 +59,9 @@ #include "mdc1200.h" #endif #include "misc.h" +#ifdef ENABLE_PANADAPTER + #include "panadapter.h" +#endif #include "radio.h" #include "settings.h" #if defined(ENABLE_OVERLAY) @@ -71,13 +74,6 @@ #include "ui/status.h" #include "ui/ui.h" -// original QS front end register settings -// 0x03BE 00000 011 101 11 110 -const uint8_t orig_lnas = 3; // 0dB -const uint8_t orig_lna = 5; // -4dB -const uint8_t orig_mixer = 3; // 0dB -const uint8_t orig_pga = 6; // -3dB - static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held); static void APP_update_rssi(const int vfo, const bool force) @@ -88,8 +84,11 @@ static void APP_update_rssi(const int vfo, const bool force) #ifdef ENABLE_AM_FIX // add RF gain adjust compensation - if (g_current_vfo->channel.mod_mode != MOD_MODE_FM && g_eeprom.config.setting.am_fix) - rssi -= rssi_gain_diff[vfo]; + #ifdef ENABLE_PANADAPTER + if (!g_pan_enabled || g_panadapter_vfo_mode > 0) + #endif + if (g_current_vfo->channel.mod_mode != MOD_MODE_FM && g_eeprom.config.setting.am_fix) + rssi -= rssi_gain_diff[vfo]; #endif if (g_current_rssi[vfo] == rssi && !force) @@ -1841,6 +1840,11 @@ void APP_process_power_save(void) { bool power_save = true; + #ifdef ENABLE_PANADAPTER + if (g_eeprom.config.setting.panadapter) + power_save = false; + #endif + if (g_monitor_enabled || #ifdef ENABLE_FMRADIO g_fm_radio_mode || @@ -1861,8 +1865,8 @@ void APP_process_power_save(void) #ifdef ENABLE_NOAA if (IS_NOAA_CHANNEL(g_eeprom.config.setting.indices.vfo[0].screen) || - IS_NOAA_CHANNEL(g_eeprom.config.setting.indices.vfo[1].screen) || - g_noaa_mode) + IS_NOAA_CHANNEL(g_eeprom.config.setting.indices.vfo[1].screen) || + g_noaa_mode) { power_save = false; } @@ -1872,6 +1876,7 @@ void APP_process_power_save(void) { // if (g_current_function == FUNCTION_POWER_SAVE && g_rx_idle_mode) // BK4819_RX_TurnOn(); + if (g_current_function == FUNCTION_POWER_SAVE) FUNCTION_Select(FUNCTION_RECEIVE); // come out of power save mode @@ -2511,6 +2516,11 @@ void APP_time_slice_10ms(void) } #endif + #ifdef ENABLE_PANADAPTER + if (g_eeprom.config.setting.panadapter) + PAN_process_10ms(); + #endif + APP_process_power_save(); APP_process_scan(); diff --git a/app/app.h b/app/app.h index 2a90b06..c4e9fb0 100644 --- a/app/app.h +++ b/app/app.h @@ -23,11 +23,6 @@ #include "frequencies.h" #include "radio.h" -extern const uint8_t orig_lnas; -extern const uint8_t orig_lna; -extern const uint8_t orig_mixer; -extern const uint8_t orig_pga; - void APP_end_tx(void); void APP_stop_scan(void); void APP_channel_next(const bool remember_current, const scan_state_dir_t scan_direction); diff --git a/app/menu.c b/app/menu.c index e386ce8..e1b1d9b 100644 --- a/app/menu.c +++ b/app/menu.c @@ -43,6 +43,9 @@ #include "ui/inputbox.h" #include "ui/menu.h" #include "ui/menu.h" +#ifdef ENABLE_PANADAPTER + #include "panadapter.h" +#endif #include "radio.h" #include "settings.h" #include "ui/ui.h" @@ -229,6 +232,9 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) #ifdef ENABLE_AM_FIX // case MENU_AM_FIX: #endif + #ifdef ENABLE_PANADAPTER + case MENU_PANADAPTER: + #endif #ifdef ENABLE_TX_AUDIO_BAR case MENU_TX_BAR: #endif @@ -670,6 +676,13 @@ void MENU_AcceptSetting(void) g_flag_reconfigure_vfos = true; break; + #ifdef ENABLE_PANADAPTER + case MENU_PANADAPTER: + g_eeprom.config.setting.panadapter = g_sub_menu_selection; + PAN_enable((g_eeprom.config.setting.panadapter != 0) ? true : false); + break; + #endif + #ifdef ENABLE_TX_AUDIO_BAR case MENU_TX_BAR: g_eeprom.config.setting.mic_bar = g_sub_menu_selection; @@ -1095,11 +1108,11 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = g_eeprom.config.setting.tx_timeout; break; -#ifdef ENABLE_VOICE + #ifdef ENABLE_VOICE case MENU_VOICE: g_sub_menu_selection = g_eeprom.config.setting.voice_prompt; break; -#endif + #endif case MENU_SCAN_CAR_RESUME: g_sub_menu_selection = g_eeprom.config.setting.carrier_search_mode; @@ -1141,17 +1154,23 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = g_eeprom.config.setting.mic_sensitivity; break; -#ifdef ENABLE_TX_AUDIO_BAR + #ifdef ENABLE_PANADAPTER + case MENU_PANADAPTER: + g_sub_menu_selection = g_eeprom.config.setting.panadapter; + break; + #endif + + #ifdef ENABLE_TX_AUDIO_BAR case MENU_TX_BAR: g_sub_menu_selection = g_eeprom.config.setting.mic_bar; break; -#endif + #endif -#ifdef ENABLE_RX_SIGNAL_BAR + #ifdef ENABLE_RX_SIGNAL_BAR case MENU_RX_BAR: g_sub_menu_selection = g_eeprom.config.setting.enable_rssi_bar; break; -#endif + #endif case MENU_COMPAND: g_sub_menu_selection = g_tx_vfo->channel.compand; diff --git a/app/spectrum.c b/app/spectrum.c deleted file mode 100644 index c439c4a..0000000 --- a/app/spectrum.c +++ /dev/null @@ -1,1362 +0,0 @@ -/* Copyright 2023 fagci - * https://github.com/fagci - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "../app/spectrum.h" - -#define F_MIN FrequencyBandTable[0].lower -#define F_MAX FrequencyBandTable[ARRAY_SIZE(FrequencyBandTable) - 1].upper - -const uint16_t RSSI_MAX_VALUE = 65535; - -static uint32_t initialFreq; -static char String[32]; - -bool isInitialized = false; -bool monitorMode = false; -bool redrawStatus = true; -bool redrawScreen = false; -bool newScanStart = true; -bool preventKeypress = true; - -bool isListening = false; -bool isTransmitting = false; - -State currentState = SPECTRUM, previousState = SPECTRUM; - -PeakInfo peak; -ScanInfo scanInfo; -KeyboardState kbd = {KEY_INVALID, KEY_INVALID, 0}; - -const char *bwOptions[] = {" 25k", "12.5k", "6.25k"}; -const char *modulationTypeOptions[] = {" FM", " AM", "USB"}; -const uint8_t modulationTypeTuneSteps[] = {100, 50, 10}; -const uint8_t modTypeReg47Values[] = {1, 7, 5}; - -SpectrumSettings settings = { - .stepsCount = STEPS_64, - .scanStepIndex = S_STEP_25_0kHz, - .frequencyChangeStep = 80000, - .scanDelay = 3200, - .rssiTriggerLevel = 150, - .backlightState = true, - .bw = BK4819_FILTER_BW_WIDE, - .listenBw = BK4819_FILTER_BW_WIDE, - .modulationType = false, -}; - -uint32_t fMeasure = 0; -uint32_t fTx = 0; -uint32_t currentFreq; -uint32_t tempFreq; -uint16_t rssiHistory[128] = {0}; -bool blacklist[128] = {false}; - -static const RegisterSpec afOutRegSpec = {"AF OUT", 0x47, 8, 0xF, 1}; -static const RegisterSpec afDacGainRegSpec = {"AF DAC G", 0x48, 0, 0xF, 1}; -static const RegisterSpec registerSpecs[] = { - {}, - {"LNAs", 0x13, 8, 0b11, 1}, - {"LNA", 0x13, 5, 0b111, 1}, - {"PGA", 0x13, 0, 0b111, 1}, - {"MIX", 0x13, 3, 0b11, 1}, - {"DEV", 0x40, 0, 4095, 1}, - {"CMP", 0x31, 3, 1, 1}, - {"MIC", 0x7D, 0, 0x1F, 1}, -}; - -static uint16_t registersBackup[128]; -static const uint8_t registersToBackup[] = { - 0x13, 0x30, 0x31, 0x37, 0x3D, 0x40, 0x43, 0x47, 0x48, 0x7D, 0x7E, -}; - -static MovingAverage mov = {{128}, {}, 255, 128, 0, 0}; -static const uint8_t MOV_N = ARRAY_SIZE(mov.buf); - -const uint8_t FREQ_INPUT_LENGTH = 10; -uint8_t freqInputIndex = 0; -uint8_t freqInputDotIndex = 0; -key_code_t freqInputArr[10]; -char freqInputString[] = "----------"; // XXXX.XXXXX - -uint8_t menuState = 0; - -uint16_t listenT = 0; - -uint16_t batteryUpdateTimer = 0; -bool isMovingInitialized = false; -uint8_t lastStepsCount = 0; - -uint8_t CountBits(uint16_t n) -{ - uint8_t count = 0; - while (n) - { - count++; - n >>= 1; - } - return count; -} - -static uint16_t GetRegMask(RegisterSpec s) -{ - return (1 << CountBits(s.maxValue)) - 1; -} - -static uint16_t GetRegValue(RegisterSpec s) -{ - return (BK4819_ReadRegister(s.num) >> s.offset) & s.maxValue; -} - -static void SetRegValue(RegisterSpec s, uint16_t v) -{ - uint16_t reg = BK4819_ReadRegister(s.num); - reg &= ~(GetRegMask(s) << s.offset); - BK4819_WriteRegister(s.num, reg | (v << s.offset)); -} - -static void UpdateRegMenuValue(RegisterSpec s, bool add) -{ - uint16_t v = GetRegValue(s); - - if (add && v <= s.maxValue - s.inc) - v += s.inc; - else - if (!add && v >= 0 + s.inc) - v -= s.inc; - - SetRegValue(s, v); - redrawScreen = true; -} - -// Utility functions - -key_code_t GetKey() -{ - key_code_t btn = KEYBOARD_Poll(); - if (btn == KEY_INVALID && !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT)) - btn = KEY_PTT; - return btn; -} - -void SetState(State state) -{ - previousState = currentState; - currentState = state; - redrawScreen = true; - redrawStatus = true; -} - -// Radio functions - -static void BackupRegisters() -{ - for (int i = 0; i < ARRAY_SIZE(registersToBackup); ++i) - { - uint8_t regNum = registersToBackup[i]; - registersBackup[regNum] = BK4819_ReadRegister(regNum); - } -} - -static void RestoreRegisters() -{ - for (int i = 0; i < ARRAY_SIZE(registersToBackup); ++i) - { - uint8_t regNum = registersToBackup[i]; - BK4819_WriteRegister(regNum, registersBackup[regNum]); - } -} - -static void SetModulation(ModulationType type) -{ - // restore only registers, which we affect here fully - BK4819_WriteRegister(0x37, registersBackup[0x37]); - BK4819_WriteRegister(0x3D, registersBackup[0x3D]); - BK4819_WriteRegister(0x48, registersBackup[0x48]); - - SetRegValue(afOutRegSpec, modTypeReg47Values[type]); - - if (type == MOD_USB) - { - BK4819_WriteRegister(0x37, 0b0001011000001111); - BK4819_WriteRegister(0x3D, 0b0010101101000101); - BK4819_WriteRegister(0x48, 0b0000001110101000); - } - - if (type == MOD_AM) - SetRegValue(afDacGainRegSpec, 0xE); -} - -static void SetF(uint32_t f) { - fMeasure = f; - - BK4819_set_rf_frequency(fMeasure); - BK4819_set_rf_filter_path(fMeasure); - uint16_t reg = BK4819_ReadRegister(BK4819_REG_30); - BK4819_WriteRegister(BK4819_REG_30, 0); - BK4819_WriteRegister(BK4819_REG_30, reg); -} - -static void SetTxF(uint32_t f) { - fTx = f; - BK4819_set_rf_frequency(f); - BK4819_set_rf_filter_path(f); - uint16_t reg = BK4819_ReadRegister(BK4819_REG_30); - BK4819_WriteRegister(BK4819_REG_30, 0); - BK4819_WriteRegister(BK4819_REG_30, reg); -} - -// Spectrum related - -bool IsPeakOverLevel() { return peak.rssi >= settings.rssiTriggerLevel; } - -static void ResetPeak() { - peak.t = 0; - peak.rssi = 0; -} - -bool IsCenterMode() { return settings.scanStepIndex < S_STEP_1_0kHz; } -uint8_t GetStepsCount() { return 128 >> settings.stepsCount; } -uint16_t GetScanStep() { return scanStepValues[settings.scanStepIndex]; } -uint32_t GetBW() { return GetStepsCount() * GetScanStep(); } -uint32_t GetFStart() { - return IsCenterMode() ? currentFreq - (GetBW() >> 1) : currentFreq; -} -uint32_t GetFEnd() { return currentFreq + GetBW(); } - -static void MovingCp(uint16_t *dst, uint16_t *src) { - memcpy(dst, src, GetStepsCount() * sizeof(uint16_t)); -} - -static void ResetMoving() { - for (int i = 0; i < MOV_N; ++i) { - MovingCp(mov.buf[i], rssiHistory); - } -} - -static void MoveHistory() { - const uint8_t XN = GetStepsCount(); - - uint32_t midSum = 0; - - mov.min = RSSI_MAX_VALUE; - mov.max = 0; - - if (lastStepsCount != XN) { - ResetMoving(); - lastStepsCount = XN; - } - for (int i = MOV_N - 1; i > 0; --i) { - MovingCp(mov.buf[i], mov.buf[i - 1]); - } - MovingCp(mov.buf[0], rssiHistory); - - uint8_t skipped = 0; - - for (int x = 0; x < XN; ++x) { - if (blacklist[x]) { - skipped++; - continue; - } - uint32_t sum = 0; - for (int i = 0; i < MOV_N; ++i) { - sum += mov.buf[i][x]; - } - - uint16_t pointV = mov.mean[x] = sum / MOV_N; - - midSum += pointV; - - if (pointV > mov.max) { - mov.max = pointV; - } - - if (pointV < mov.min) { - mov.min = pointV; - } - } - if (skipped == XN) { - return; - } - - mov.mid = midSum / (XN - skipped); -} - -static void TuneToPeak() { - scanInfo.f = peak.f; - scanInfo.rssi = peak.rssi; - scanInfo.i = peak.i; - SetF(scanInfo.f); -} - -uint8_t GetBWRegValueForScan() { - return scanStepBWRegValues[settings.scanStepIndex == S_STEP_100_0kHz ? 11 - : 0]; -} - -uint8_t GetBWRegValueForListen() { - return listenBWRegValues[settings.listenBw]; -} - -static void ResetRSSI() { - uint32_t Reg = BK4819_ReadRegister(BK4819_REG_30); - Reg &= ~1; - BK4819_WriteRegister(BK4819_REG_30, Reg); - Reg |= 1; - BK4819_WriteRegister(BK4819_REG_30, Reg); -} - -uint16_t GetRssi() { - if (currentState == SPECTRUM) { - ResetRSSI(); - SYSTICK_DelayUs(3200); - } - return BK4819_GetRSSI(); -} - -uint32_t GetOffsetedF(uint32_t f) { - switch (gCurrentVfo->FREQUENCY_DEVIATION_SETTING) { - case FREQUENCY_DEVIATION_OFF: - break; - case FREQUENCY_DEVIATION_ADD: - f += gCurrentVfo->FREQUENCY_OF_DEVIATION; - break; - case FREQUENCY_DEVIATION_SUB: - f -= gCurrentVfo->FREQUENCY_OF_DEVIATION; - break; - } - - return Clamp(f, FrequencyBandTable[0].lower, - FrequencyBandTable[ARRAY_SIZE(FrequencyBandTable) - 1].upper); -} - -bool IsTXAllowed() { return g_setting_ALL_TX != 2; } - -static void ToggleAudio(bool on) { - if (on) - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); - else { - GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); - } -} - -static void ToggleTX(bool); -static void ToggleRX(bool); - -static void ToggleRX(bool on) { - /* if (isListening == on) { - return; - } */ - isListening = on; - if (on) { - ToggleTX(false); - } - - BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, on); - BK4819_RX_TurnOn(); - - ToggleAudio(on); - BK4819_ToggleAFDAC(on); - BK4819_ToggleAFBit(on); - - if (on) { - listenT = 1000; - BK4819_WriteRegister(0x43, GetBWRegValueForListen()); - } else { - BK4819_WriteRegister(0x43, GetBWRegValueForScan()); - } -} - -uint16_t registersVault[128] = {0}; - -static void RegBackupSet(uint8_t num, uint16_t value) { - registersVault[num] = BK4819_ReadRegister(num); - BK4819_WriteRegister(num, value); -} - -static void RegRestore(uint8_t num) { - BK4819_WriteRegister(num, registersVault[num]); -} - -static void ToggleTX(bool on) { - if (isTransmitting == on) { - return; - } - isTransmitting = on; - if (on) { - ToggleRX(false); - } - - BK4819_set_GPIO_pin(BK4819_GPIO5_PIN1_RED, on); - - if (on) { - ToggleAudio(false); - - SetTxF(GetOffsetedF(fMeasure)); - - RegBackupSet(BK4819_REG_47, 0x6040); - RegBackupSet(BK4819_REG_7E, 0x302E); - RegBackupSet(BK4819_REG_50, 0x3B20); - RegBackupSet(BK4819_REG_37, 0x1D0F); - RegBackupSet(BK4819_REG_52, 0x028F); - RegBackupSet(BK4819_REG_30, 0x0000); - BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); - RegBackupSet(BK4819_REG_51, 0x0000); - - BK4819_SetupPowerAmplifier(gCurrentVfo->TXP_CalculatedSetting, - gCurrentVfo->p_tx->Frequency); - } - else - { - RADIO_tx_eot(); - RADIO_EnableCxCSS(); - - BK4819_SetupPowerAmplifier(0, 0); - - RegRestore(BK4819_REG_51); - BK4819_WriteRegister(BK4819_REG_30, 0); - RegRestore(BK4819_REG_30); - RegRestore(BK4819_REG_52); - RegRestore(BK4819_REG_37); - RegRestore(BK4819_REG_50); - RegRestore(BK4819_REG_7E); - RegRestore(BK4819_REG_47); - - SetF(fMeasure); - } - - BK4819_set_GPIO_pin(BK4819_GPIO0_PIN28_RX_ENABLE, !on); - BK4819_set_GPIO_pin(BK4819_GPIO1_PIN29_PA_ENABLE, on); -} - -// Scan info - -static void ResetScanStats() { - scanInfo.rssi = 0; - scanInfo.rssiMax = 0; - scanInfo.iPeak = 0; - scanInfo.fPeak = 0; -} - -static void InitScan() { - ResetScanStats(); - scanInfo.i = 0; - scanInfo.f = GetFStart(); - - scanInfo.scanStep = GetScanStep(); - scanInfo.measurementsCount = GetStepsCount(); -} - -static void ResetBlacklist() { - for (int i = 0; i < 128; ++i) { - if (blacklist[i]) - blacklist[i] = false; - } -} - -static void RelaunchScan() { - InitScan(); - ResetPeak(); - lastStepsCount = 0; - ToggleRX(false); -#ifdef SPECTRUM_AUTOMATIC_SQUELCH - settings.rssiTriggerLevel = RSSI_MAX_VALUE; -#endif - preventKeypress = true; - scanInfo.rssiMin = RSSI_MAX_VALUE; -} - -static void UpdateScanInfo() { - if (scanInfo.rssi > scanInfo.rssiMax) { - scanInfo.rssiMax = scanInfo.rssi; - scanInfo.fPeak = scanInfo.f; - scanInfo.iPeak = scanInfo.i; - } - - if (scanInfo.rssi < scanInfo.rssiMin) { - scanInfo.rssiMin = scanInfo.rssi; - } -} - -static void AutoTriggerLevel() { - if (settings.rssiTriggerLevel == RSSI_MAX_VALUE) { - settings.rssiTriggerLevel = Clamp(scanInfo.rssiMax + 4, 0, RSSI_MAX_VALUE); - } -} - -static void UpdatePeakInfoForce() { - peak.t = 0; - peak.rssi = scanInfo.rssiMax; - peak.f = scanInfo.fPeak; - peak.i = scanInfo.iPeak; - AutoTriggerLevel(); -} - -static void UpdatePeakInfo() { - if (peak.f == 0 || peak.t >= 1024 || peak.rssi < scanInfo.rssiMax) - UpdatePeakInfoForce(); -} - -static void Measure() { rssiHistory[scanInfo.i] = scanInfo.rssi = GetRssi(); } - -// Update things by keypress - -static void UpdateRssiTriggerLevel(bool inc) { - if (inc) - settings.rssiTriggerLevel += 2; - else - settings.rssiTriggerLevel -= 2; - redrawScreen = true; - SYSTEM_DelayMs(10); -} - -static void ApplyPreset(FreqPreset p) { - currentFreq = p.fStart; - settings.scanStepIndex = p.stepSizeIndex; - settings.listenBw = p.listenBW; - settings.modulationType = p.modulationType; - settings.stepsCount = p.stepsCountIndex; - SetModulation(settings.modulationType); - RelaunchScan(); - ResetBlacklist(); - redrawScreen = true; -} - -static void SelectNearestPreset(bool inc) { - FreqPreset p; - const uint8_t SZ = ARRAY_SIZE(freqPresets); - if (inc) { - for (int i = 0; i < SZ; ++i) { - p = freqPresets[i]; - if (currentFreq < p.fStart) { - ApplyPreset(p); - return; - } - } - } else { - for (int i = SZ - 1; i >= 0; --i) { - p = freqPresets[i]; - if (currentFreq > p.fEnd) { - ApplyPreset(p); - return; - } - } - } - ApplyPreset(p); -} - -static void UpdateScanStep(bool inc) { - if (inc && settings.scanStepIndex < S_STEP_100_0kHz) { - settings.scanStepIndex++; - } else if (!inc && settings.scanStepIndex > 0) { - settings.scanStepIndex--; - } else { - return; - } - settings.frequencyChangeStep = GetBW() >> 1; - RelaunchScan(); - ResetBlacklist(); - redrawScreen = true; -} - -static void UpdateCurrentFreq(bool inc) { - if (inc && currentFreq < F_MAX) { - currentFreq += settings.frequencyChangeStep; - } else if (!inc && currentFreq > F_MIN) { - currentFreq -= settings.frequencyChangeStep; - } else { - return; - } - RelaunchScan(); - ResetBlacklist(); - redrawScreen = true; -} - -static void UpdateCurrentFreqStill(bool inc) { - uint8_t offset = modulationTypeTuneSteps[settings.modulationType]; - uint32_t f = fMeasure; - if (inc && f < F_MAX) { - f += offset; - } else if (!inc && f > F_MIN) { - f -= offset; - } - SetF(f); - redrawScreen = true; -} - -static void UpdateFreqChangeStep(bool inc) { - uint16_t diff = GetScanStep() * 4; - if (inc && settings.frequencyChangeStep < 200000) { - settings.frequencyChangeStep += diff; - } else if (!inc && settings.frequencyChangeStep > 10000) { - settings.frequencyChangeStep -= diff; - } - SYSTEM_DelayMs(100); - redrawScreen = true; -} - -static void ToggleModulation() { - if (settings.modulationType < MOD_USB) { - settings.modulationType++; - } else { - settings.modulationType = MOD_FM; - } - SetModulation(settings.modulationType); - redrawScreen = true; -} - -static void ToggleListeningBW() { - if (settings.listenBw == BK4819_FILTER_BW_NARROWER) { - settings.listenBw = BK4819_FILTER_BW_WIDE; - } else { - settings.listenBw++; - } - redrawScreen = true; -} - -static void ToggleBacklight() { - settings.backlightState = !settings.backlightState; - if (settings.backlightState) { - GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); - } else { - GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); - } -} - -static void ToggleStepsCount() { - if (settings.stepsCount == STEPS_128) { - settings.stepsCount = STEPS_16; - } else { - settings.stepsCount--; - } - settings.frequencyChangeStep = GetBW() >> 1; - RelaunchScan(); - ResetBlacklist(); - redrawScreen = true; -} - -static void ResetFreqInput() { - tempFreq = 0; - for (int i = 0; i < 10; ++i) { - freqInputString[i] = '-'; - } -} - -static void FreqInput() { - freqInputIndex = 0; - freqInputDotIndex = 0; - ResetFreqInput(); - SetState(FREQ_INPUT); -} - -static void UpdateFreqInput(key_code_t key) { - if (key != KEY_EXIT && freqInputIndex >= 10) { - return; - } - if (key == KEY_STAR) { - if (freqInputIndex == 0 || freqInputDotIndex) { - return; - } - freqInputDotIndex = freqInputIndex; - } - if (key == KEY_EXIT) { - freqInputIndex--; - } else { - freqInputArr[freqInputIndex++] = key; - } - - ResetFreqInput(); - - uint8_t dotIndex = - freqInputDotIndex == 0 ? freqInputIndex : freqInputDotIndex; - - key_code_t digitKey; - for (int i = 0; i < 10; ++i) { - if (i < freqInputIndex) { - digitKey = freqInputArr[i]; - freqInputString[i] = digitKey <= KEY_9 ? '0' + digitKey : '.'; - } else { - freqInputString[i] = '-'; - } - } - - uint32_t base = 100000; // 1MHz in BK units - for (int i = dotIndex - 1; i >= 0; --i) { - tempFreq += freqInputArr[i] * base; - base *= 10; - } - - base = 10000; // 0.1MHz in BK units - if (dotIndex < freqInputIndex) { - for (int i = dotIndex + 1; i < freqInputIndex; ++i) { - tempFreq += freqInputArr[i] * base; - base /= 10; - } - } - redrawScreen = true; -} - -static void Blacklist() { - blacklist[peak.i] = true; - ResetPeak(); - ToggleRX(false); - newScanStart = true; -} - -// Draw things - -static uint8_t Rssi2Y(uint16_t rssi) { - return DrawingEndY - ConvertDomain(rssi, mov.min - 2, - mov.max + 30 + (mov.max - mov.min) / 3, 0, - DrawingEndY); -} - -static void DrawSpectrum() { - for (uint8_t x = 0; x < 128; ++x) { - uint8_t i = x >> settings.stepsCount; - if (blacklist[i]) { - continue; - } - uint16_t rssi = rssiHistory[i]; - DrawHLine(Rssi2Y(rssi), DrawingEndY, x, true); - } -} - -static void UpdateBatteryInfo() { - for (int i = 0; i < 4; i++) { - BOARD_ADC_GetBatteryInfo(&g_battery_voltages[i], &g_usb_current); - } - - uint16_t voltage = Mid(g_battery_voltages, ARRAY_SIZE(g_battery_voltages)); - g_battery_display_level = 0; - - for (int i = ARRAY_SIZE(g_battery_calibration) - 1; i >= 0; --i) { - if (g_battery_calibration[i] < voltage) { - g_battery_display_level = i + 1; - break; - } - } -} - -static void DrawStatus() { - - g_status_line[127] = 0b01111110; - for (int i = 126; i >= 116; i--) { - g_status_line[i] = 0b01000010; - } - uint8_t v = g_battery_display_level; - v <<= 1; - for (int i = 125; i >= 116; i--) { - if (126 - i <= v) { - g_status_line[i + 2] = 0b01111110; - } - } - g_status_line[117] = 0b01111110; - g_status_line[116] = 0b00011000; -} - -static void DrawF(uint32_t f) { - sprintf(String, "%u.%05u", f / 100000, f % 100000); - - if (currentState == STILL && kbd.current == KEY_PTT) { - if (g_battery_display_level == 6) { - sprintf(String, "VOLTAGE HIGH"); - } else if (!IsTXAllowed()) { - sprintf(String, "DISABLED"); - } else { - f = GetOffsetedF(f); - sprintf(String, "TX %u.%05u", f / 100000, f % 100000); - } - } - UI_PrintStringSmall(String, 8, 127, 0); - - sprintf(String, "%s", modulationTypeOptions[settings.modulationType]); - UI_PrintStringSmallest(String, 116, 1, false, true); - sprintf(String, "%s", bwOptions[settings.listenBw]); - UI_PrintStringSmallest(String, 108, 7, false, true); -} - -static void DrawNums() { - if (currentState == SPECTRUM) { - sprintf(String, "%ux", GetStepsCount()); - UI_PrintStringSmallest(String, 0, 1, false, true); - sprintf(String, "%u.%02uk", GetScanStep() / 100, GetScanStep() % 100); - UI_PrintStringSmallest(String, 0, 7, false, true); - } - - if (IsCenterMode()) { - sprintf(String, "%u.%05u \xB1%u.%02uk", currentFreq / 100000, - currentFreq % 100000, settings.frequencyChangeStep / 100, - settings.frequencyChangeStep % 100); - UI_PrintStringSmallest(String, 36, 49, false, true); - } else { - sprintf(String, "%u.%05u", GetFStart() / 100000, GetFStart() % 100000); - UI_PrintStringSmallest(String, 0, 49, false, true); - - sprintf(String, "\xB1%u.%02uk", settings.frequencyChangeStep / 100, - settings.frequencyChangeStep % 100); - UI_PrintStringSmallest(String, 48, 49, false, true); - - sprintf(String, "%u.%05u", GetFEnd() / 100000, GetFEnd() % 100000); - UI_PrintStringSmallest(String, 93, 49, false, true); - } -} - -static void DrawRssiTriggerLevel() { - if (settings.rssiTriggerLevel == RSSI_MAX_VALUE || monitorMode) - return; - uint8_t y = Rssi2Y(settings.rssiTriggerLevel); - for (uint8_t x = 0; x < 128; x += 2) { - PutPixel(x, y, true); - } -} - -static void DrawTicks() { - uint32_t f = GetFStart() % 100000; - uint32_t step = GetScanStep(); - for (uint8_t i = 0; i < 128; i += (1 << settings.stepsCount), f += step) { - uint8_t barValue = 0b00000001; - (f % 10000) < step && (barValue |= 0b00000010); - (f % 50000) < step && (barValue |= 0b00000100); - (f % 100000) < step && (barValue |= 0b00011000); - - g_frame_buffer[5][i] |= barValue; - } - - // center - /* if (IsCenterMode()) { - g_frame_buffer[5][62] = 0x80; - g_frame_buffer[5][63] = 0x80; - g_frame_buffer[5][64] = 0xff; - g_frame_buffer[5][65] = 0x80; - g_frame_buffer[5][66] = 0x80; - } else { - g_frame_buffer[5][0] = 0xff; - g_frame_buffer[5][1] = 0x80; - g_frame_buffer[5][2] = 0x80; - g_frame_buffer[5][3] = 0x80; - g_frame_buffer[5][124] = 0x80; - g_frame_buffer[5][125] = 0x80; - g_frame_buffer[5][126] = 0x80; - g_frame_buffer[5][127] = 0xff; - } */ -} - -static void DrawArrow(uint8_t x) { - for (signed i = -2; i <= 2; ++i) { - signed v = x + i; - uint8_t a = i > 0 ? i : -i; - if (!(v & 128)) { - g_frame_buffer[5][v] |= (0b01111000 << a) & 0b01111000; - } - } -} - -static void DeInitSpectrum() { - SetF(initialFreq); - ToggleRX(false); - RestoreRegisters(); - isInitialized = false; -} - -static void OnKeyDown(uint8_t key) { - switch (key) { - case KEY_3: - SelectNearestPreset(true); - break; - case KEY_9: - SelectNearestPreset(false); - break; - case KEY_1: - UpdateScanStep(true); - break; - case KEY_7: - UpdateScanStep(false); - break; - case KEY_2: - UpdateFreqChangeStep(true); - break; - case KEY_8: - UpdateFreqChangeStep(false); - break; - case KEY_UP: - UpdateCurrentFreq(true); - break; - case KEY_DOWN: - UpdateCurrentFreq(false); - break; - case KEY_SIDE1: - Blacklist(); - break; - case KEY_STAR: - UpdateRssiTriggerLevel(true); - break; - case KEY_F: - UpdateRssiTriggerLevel(false); - break; - case KEY_5: - FreqInput(); - break; - case KEY_0: - ToggleModulation(); - break; - case KEY_6: - ToggleListeningBW(); - break; - case KEY_4: - ToggleStepsCount(); - break; - case KEY_SIDE2: - ToggleBacklight(); - break; - case KEY_PTT: - SetState(STILL); - TuneToPeak(); - settings.rssiTriggerLevel = 120; - break; - case KEY_MENU: - break; - case KEY_EXIT: - if (menuState) { - menuState = 0; - break; - } - DeInitSpectrum(); - break; - default: - break; - } -} - -static void OnKeyDownFreqInput(uint8_t key) { - switch (key) { - case KEY_0: - case KEY_1: - case KEY_2: - case KEY_3: - case KEY_4: - case KEY_5: - case KEY_6: - case KEY_7: - case KEY_8: - case KEY_9: - case KEY_STAR: - UpdateFreqInput(key); - break; - case KEY_EXIT: - if (freqInputIndex == 0) { - SetState(previousState); - break; - } - UpdateFreqInput(key); - break; - case KEY_MENU: - if (tempFreq < F_MIN || tempFreq > F_MAX) { - break; - } - SetState(previousState); - currentFreq = tempFreq; - if (currentState == SPECTRUM) { - ResetBlacklist(); - RelaunchScan(); - } else { - SetF(currentFreq); - } - break; - default: - break; - } -} - -void OnKeyDownStill(key_code_t key) { - switch (key) { - case KEY_3: - break; - case KEY_9: - break; - case KEY_UP: - if (menuState) { - UpdateRegMenuValue(registerSpecs[menuState], true); - break; - } - UpdateCurrentFreqStill(true); - break; - case KEY_DOWN: - if (menuState) { - UpdateRegMenuValue(registerSpecs[menuState], false); - break; - } - UpdateCurrentFreqStill(false); - break; - case KEY_STAR: - UpdateRssiTriggerLevel(true); - break; - case KEY_F: - UpdateRssiTriggerLevel(false); - break; - case KEY_5: - FreqInput(); - break; - case KEY_0: - ToggleModulation(); - break; - case KEY_6: - ToggleListeningBW(); - break; - case KEY_SIDE1: - monitorMode = !monitorMode; - break; - case KEY_SIDE2: - ToggleBacklight(); - break; - case KEY_PTT: - // start transmit - UpdateBatteryInfo(); - if (g_battery_display_level != 6 && IsTXAllowed()) { - ToggleTX(true); - } - redrawScreen = true; - break; - case KEY_MENU: - if (menuState == ARRAY_SIZE(registerSpecs) - 1) { - menuState = 1; - } else { - menuState++; - } - redrawScreen = true; - break; - case KEY_EXIT: - if (menuState) { - menuState = 0; - break; - } - SetState(SPECTRUM); - monitorMode = false; - RelaunchScan(); - break; - default: - break; - } -} - -static void OnKeysReleased() { - if (isTransmitting) { - ToggleTX(false); - } -} - -static void RenderFreqInput() { - UI_PrintString(freqInputString, 2, 127, 0, 8, true); -} - -static void RenderStatus() { - memset(g_status_line, 0, sizeof(g_status_line)); - DrawStatus(); - ST7565_BlitStatusLine(); -} - -static void RenderSpectrum() { - DrawTicks(); - DrawArrow(peak.i << settings.stepsCount); - DrawSpectrum(); - DrawRssiTriggerLevel(); - DrawF(peak.f); - DrawNums(); -} - -static void RenderStill() { - DrawF(fMeasure); - - const uint8_t METER_PAD_LEFT = 3; - - for (int i = 0; i < 121; i++) { - if (i % 10 == 0) { - g_frame_buffer[2][i + METER_PAD_LEFT] = 0b11000000; - } else { - g_frame_buffer[2][i + METER_PAD_LEFT] = 0b01000000; - } - } - - uint8_t x = Rssi2PX(scanInfo.rssi, 0, 121); - for (int i = 0; i < x; ++i) { - if (i % 5 && i / 5 < x / 5) { - g_frame_buffer[2][i + METER_PAD_LEFT] |= 0b00011100; - } - } - - int dbm = Rssi2DBm(scanInfo.rssi); - uint8_t s = DBm2S(dbm); - if (s < 10) { - sprintf(String, "S%u", s); - } else { - sprintf(String, "S9+%u0", s - 9); - } - UI_PrintStringSmallest(String, 4, 10, false, true); - sprintf(String, "%d dBm", dbm); - UI_PrintStringSmallest(String, 32, 10, false, true); - - if (isTransmitting) { - uint8_t afDB = BK4819_ReadRegister(0x6F) & 0b1111111; - uint8_t afPX = ConvertDomain(afDB, 26, 194, 0, 121); - for (int i = 0; i < afPX; ++i) { - g_frame_buffer[3][i + METER_PAD_LEFT] |= 0b00000011; - } - } - - if (!monitorMode) { - uint8_t x = Rssi2PX(settings.rssiTriggerLevel, 0, 121); - g_frame_buffer[2][METER_PAD_LEFT + x - 1] |= 0b01000001; - g_frame_buffer[2][METER_PAD_LEFT + x] = 0b01111111; - g_frame_buffer[2][METER_PAD_LEFT + x + 1] |= 0b01000001; - } - - const uint8_t PAD_LEFT = 4; - const uint8_t CELL_WIDTH = 30; - uint8_t offset = PAD_LEFT; - uint8_t row = 3; - - for (int i = 0, idx = 1; idx <= 7; ++i, ++idx) { - if (idx == 5) { - row += 2; - i = 0; - } - offset = PAD_LEFT + i * CELL_WIDTH; - if (menuState == idx) { - for (int j = 0; j < CELL_WIDTH; ++j) { - g_frame_buffer[row][j + offset] = 0xFF; - g_frame_buffer[row + 1][j + offset] = 0xFF; - } - } - RegisterSpec s = registerSpecs[idx]; - sprintf(String, "%s", s.name); - UI_PrintStringSmallest(String, offset + 2, row * 8 + 2, false, - menuState != idx); - sprintf(String, "%u", GetRegValue(s)); - UI_PrintStringSmallest(String, offset + 2, (row + 1) * 8 + 1, false, - menuState != idx); - } -} - -static void Render() { - memset(g_frame_buffer, 0, sizeof(g_frame_buffer)); - - switch (currentState) { - case SPECTRUM: - RenderSpectrum(); - break; - case FREQ_INPUT: - RenderFreqInput(); - break; - case STILL: - RenderStill(); - break; - } - - ST7565_BlitFullScreen(); -} - -bool HandleUserInput() { - kbd.prev = kbd.current; - kbd.current = GetKey(); - - if (kbd.current == KEY_INVALID) { - kbd.counter = 0; - OnKeysReleased(); - return true; - } - - if (kbd.current == kbd.prev && kbd.counter <= 20) { - kbd.counter++; - SYSTEM_DelayMs(10); - } - - if (kbd.counter == 4 || kbd.counter > 20) { - switch (currentState) { - case SPECTRUM: - OnKeyDown(kbd.current); - break; - case FREQ_INPUT: - OnKeyDownFreqInput(kbd.current); - break; - case STILL: - OnKeyDownStill(kbd.current); - break; - } - } - - return true; -} - -static void Scan() { - if (blacklist[scanInfo.i]) { - return; - } - SetF(scanInfo.f); - Measure(); - UpdateScanInfo(); -} - -static void NextScanStep() { - ++peak.t; - ++scanInfo.i; - scanInfo.f += scanInfo.scanStep; -} - -static void UpdateScan() { - Scan(); - - if (scanInfo.i < scanInfo.measurementsCount) { - NextScanStep(); - return; - } - - MoveHistory(); - - redrawScreen = true; - preventKeypress = false; - - UpdatePeakInfo(); - if (IsPeakOverLevel()) { - ToggleRX(true); - TuneToPeak(); - return; - } - - newScanStart = true; -} - -static void UpdateStill() { - Measure(); - redrawScreen = true; - preventKeypress = false; - - peak.rssi = scanInfo.rssi; - AutoTriggerLevel(); - - ToggleRX(IsPeakOverLevel() || monitorMode); -} - -static void UpdateListening() { - preventKeypress = false; - if (!isListening) { - ToggleRX(true); - } - if (currentState == STILL) { - listenT = 0; - } - if (listenT) { - listenT--; - SYSTEM_DelayMs(1); - return; - } - - if (currentState == SPECTRUM) { - BK4819_WriteRegister(0x43, GetBWRegValueForScan()); - Measure(); - BK4819_WriteRegister(0x43, GetBWRegValueForListen()); - } else { - Measure(); - } - - peak.rssi = scanInfo.rssi; - redrawScreen = true; - - if (IsPeakOverLevel() || monitorMode) { - listenT = 1000; - return; - } - - ToggleRX(false); - newScanStart = true; -} - -static void UpdateTransmitting() {} - -static void Tick() { - if (!preventKeypress) { - HandleUserInput(); - } - if (newScanStart) { - InitScan(); - newScanStart = false; - } - if (isTransmitting) { - UpdateTransmitting(); - } else if (isListening && currentState != FREQ_INPUT) { - UpdateListening(); - } else { - if (currentState == SPECTRUM) { - UpdateScan(); - } else if (currentState == STILL) { - UpdateStill(); - } - } - if (++batteryUpdateTimer > 4096) { - batteryUpdateTimer = 0; - UpdateBatteryInfo(); - redrawStatus = true; - } - if (redrawStatus) { - RenderStatus(); - redrawStatus = false; - } - if (redrawScreen) { - Render(); - redrawScreen = false; - } -} - -static void AutomaticPresetChoose(uint32_t f) { - for (int i = 0; i < ARRAY_SIZE(freqPresets); ++i) { - FreqPreset p = freqPresets[i]; - if (f >= p.fStart && f <= freqPresets[i].fEnd) { - ApplyPreset(p); - } - } -} - -void APP_RunSpectrum() { - BackupRegisters(); - // TX here coz it always? set to active VFO - VFO_Info_t vfo = g_eeprom.vfo_info[g_eeprom.TX_CHANNEL]; - initialFreq = vfo.p_rx->Frequency; - currentFreq = initialFreq; - settings.scanStepIndex = gStepSettingToIndex[vfo.STEP_SETTING]; - settings.listenBw = vfo.CHANNEL_BANDWIDTH == BANDWIDTH_WIDE - ? BANDWIDTH_WIDE - : BANDWIDTH_NARROW; - settings.modulationType = vfo.IsAM ? MOD_AM : MOD_FM; - - AutomaticPresetChoose(currentFreq); - - redrawStatus = true; - redrawScreen = false; // we will wait until scan done - newScanStart = true; - - ToggleRX(true), ToggleRX(false); // hack to prevent noise when squelch off - SetModulation(settings.modulationType); - - RelaunchScan(); - - for (int i = 0; i < 128; ++i) { - rssiHistory[i] = 0; - } - - isInitialized = true; - - while (isInitialized) { - Tick(); - } -} diff --git a/app/spectrum.h b/app/spectrum.h deleted file mode 100644 index 9aeeaf8..0000000 --- a/app/spectrum.h +++ /dev/null @@ -1,203 +0,0 @@ -/* Copyright 2023 fagci - * https://github.com/fagci - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SPECTRUM_H -#define SPECTRUM_H - -#include -#include -#include - -#include "../bitmaps.h" -#include "../board.h" -#include "../bsp/dp32g030/gpio.h" -#include "../driver/bk4819-regs.h" -#include "../driver/bk4819.h" -#include "../driver/gpio.h" -#include "../driver/keyboard.h" -#include "../driver/st7565.h" -#include "../driver/system.h" -#include "../driver/systick.h" -#include "../external/printf/printf.h" -#include "../font.h" -#include "../frequencies.h" -#include "../helper/battery.h" -#include "../helper/measurements.h" -#include "../misc.h" -#include "../radio.h" -#include "../settings.h" -#include "../ui/helper.h" - -static const uint8_t DrawingEndY = 40; - -static const uint16_t scanStepValues[] = { - 1, 10, 50, 100, 250, 500, 625, 833, 1000, 1250, 2500, 10000, -}; - -static const uint8_t gStepSettingToIndex[] = { - [STEP_2_5kHz] = 4, [STEP_5_0kHz] = 5, [STEP_6_25kHz] = 6, - [STEP_10_0kHz] = 8, [STEP_12_5kHz] = 9, [STEP_25_0kHz] = 10, - [STEP_8_33kHz] = 7, -}; - -static const uint16_t scanStepBWRegValues[12] = { - // RX RXw TX BW - // 0b0 000 000 001 01 1000 - // 1 - 0b0000000001011000, // 6.25 - // 10 - 0b0000000001011000, // 6.25 - // 50 - 0b0000000001011000, // 6.25 - // 100 - 0b0000000001011000, // 6.25 - // 250 - 0b0000000001011000, // 6.25 - // 500 - 0b0010010001011000, // 6.25 - // 625 - 0b0100100001011000, // 6.25 - // 833 - 0b0110110001001000, // 6.25 - // 1000 - 0b0110110001001000, // 6.25 - // 1250 - 0b0111111100001000, // 6.25 - // 2500 - 0b0011011000101000, // 25 - // 10000 - 0b0011011000101000, // 25 -}; - -static const uint16_t listenBWRegValues[] = { - 0b0011011000101000, // 25 - 0b0111111100001000, // 12.5 - 0b0100100001011000, // 6.25 -}; - -typedef enum State { - SPECTRUM, - FREQ_INPUT, - STILL, -} State; - -typedef enum StepsCount { - STEPS_128, - STEPS_64, - STEPS_32, - STEPS_16, -} StepsCount; - -typedef enum ModulationType { - MOD_FM, - MOD_AM, - MOD_USB, -} ModulationType; - -typedef enum ScanStep { - S_STEP_0_01kHz, - S_STEP_0_1kHz, - S_STEP_0_5kHz, - S_STEP_1_0kHz, - - S_STEP_2_5kHz, - S_STEP_5_0kHz, - S_STEP_6_25kHz, - S_STEP_8_33kHz, - S_STEP_10_0kHz, - S_STEP_12_5kHz, - S_STEP_25_0kHz, - S_STEP_100_0kHz, -} ScanStep; - -typedef struct SpectrumSettings { - StepsCount stepsCount; - ScanStep scanStepIndex; - uint32_t frequencyChangeStep; - uint16_t scanDelay; - uint16_t rssiTriggerLevel; - - bool backlightState; - BK4819_FilterBandwidth_t bw; - BK4819_FilterBandwidth_t listenBw; - ModulationType modulationType; -} SpectrumSettings; - -typedef struct KeyboardState { - KEY_Code_t current; - KEY_Code_t prev; - uint8_t counter; -} KeyboardState; - -typedef struct ScanInfo { - uint16_t rssi, rssiMin, rssiMax; - uint8_t i, iPeak; - uint32_t f, fPeak; - uint16_t scanStep; - uint8_t measurementsCount; -} ScanInfo; - -typedef struct RegisterSpec { - const char *name; - uint8_t num; - uint8_t offset; - uint16_t maxValue; - uint16_t inc; -} RegisterSpec; - -typedef struct PeakInfo { - uint16_t t; - uint16_t rssi; - uint8_t i; - uint32_t f; -} PeakInfo; - -typedef struct MovingAverage { - uint16_t mean[128]; - uint16_t buf[4][128]; - uint16_t min, mid, max; - uint16_t t; -} MovingAverage; - -typedef struct FreqPreset { - char name[16]; - uint32_t fStart; - uint32_t fEnd; - StepsCount stepsCountIndex; - uint8_t stepSizeIndex; - ModulationType modulationType; - BK4819_FilterBandwidth_t listenBW; -} FreqPreset; - -static const FreqPreset freqPresets[] = { - {"17m", 1806800, 1831800, STEPS_128, S_STEP_1_0kHz, MOD_USB, BK4819_FILTER_BW_NARROWER}, - {"15m", 2100000, 2145000, STEPS_128, S_STEP_1_0kHz, MOD_USB, BK4819_FILTER_BW_NARROWER}, - {"12m", 2489000, 2514000, STEPS_128, S_STEP_1_0kHz, MOD_USB, BK4819_FILTER_BW_NARROWER}, - {"CB", 2697500, 2785500, STEPS_128, S_STEP_5_0kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"10m", 2800000, 2970000, STEPS_128, S_STEP_1_0kHz, MOD_USB, BK4819_FILTER_BW_NARROWER}, - {"AIR", 11800000, 13500000, STEPS_128, S_STEP_100_0kHz, MOD_AM, BK4819_FILTER_BW_NARROW }, - {"2m", 14400000, 14600000, STEPS_128, S_STEP_25_0kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"JD1", 15175000, 15400000, STEPS_128, S_STEP_25_0kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"JD2", 15500000, 15600000, STEPS_64, S_STEP_25_0kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"LPD", 43307500, 43477500, STEPS_128, S_STEP_25_0kHz, MOD_FM, BK4819_FILTER_BW_WIDE }, - {"PMR", 44600625, 44620000, STEPS_16, S_STEP_12_5kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"FRS/GM 462", 46256250, 46272500, STEPS_16, S_STEP_12_5kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, - {"FRS/GM 467", 46756250, 46771250, STEPS_16, S_STEP_12_5kHz, MOD_FM, BK4819_FILTER_BW_NARROW }, -}; - -void APP_RunSpectrum(void); - -#endif diff --git a/firmware.bin b/firmware.bin index f373e7ff3c7e4ccf8eac5b50a27f219793d35ee4..768f24023312c646c49e650f906d6833f4a2f6c3 100644 GIT binary patch delta 40526 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 literal 61286 zcmZ6yg;x|{w>?a^go4D-jkF-$-7$27z|c9gLnEM|bR*KKFhfdrH^P8)BPHGS8{Yfg z`>pl;1!tY-)INKkr-7=&Q(s>x+1=7|;m3v=WKIPh!*js2s`dvdxP3zxeODyS3F?Y> z2cuXYMAKK?Z90*ux3eHfAa|{k$Dyerb(DB9N9&v#!6rR5As7=_=>8 zari&4)_e7wtmv>ZckQ-w_nM#JQD6@Sk2u@yFjS(>-^=Ew`k!Uk8dSc8)wG$peywZ| zS(Jq|!~W69jc?-VHrrlzERU6PURDqPnxX%hpPS*7x0L(MZC^!kH_hpT?0h*D zenKTG(Jnu{6_F1R$Wv`U8$1Mp7#zNn5Wezfs;kFzWX(_a<)ku3O2*BlvpG072&=@g z_u7alucSD>_eo;uV>WqD>Q@jZphMr``E0)zVc)+)MgW%*o+}{6@1%Z%r2mso{_EJQ z^qNLyjOt^B_0_>h;`hyyGT*G?OsOW;B~1YstCiNA5+xIy?l)6K?i3<4IhY_b6Au`j z1y3mcm(zCC57@Pb(bmk@Ewv}`_iv|BB*y_5r(7a&c73a?P!#i@?jkLs87{a&^L%w`nqY8p z$U=ao(LlypGbo<;vG{Bu-neRl2yXE4hQqr0-;Kzzrz#yr5_H9~BSzlfFTAqRBi{ac zQerf#uM6vdjZm8fU*IYih(0NjmBks4c9%}^Pk5@d=W4Zv=!$^y=Ihx+`Zwyn0S#0) z$JZsv7x(!sS|Tz<=2j+JCLZ43sL4>Qd;B?9JXli}BoD7X{*DW80FG)Zb9@VMK1U9= zHg86vc*jEa4R-VkIRX^KLhCh!>sJ#`JQY4~4==5*49a`CZ!8v9I!;ASHsZPNmb#Jq z{?&ex!P3dkPXujL7G$ZHCS%3QECKpVq&B|49qV&ki(Ew-V-jbzf0_YflI2W7Qz%|C zxEj`=4%hkEP+u0IH074*=`B$p8;Sy|Sa2hTgY7W2W8A9N4FmMQ(#=N6X1(_{V|nGW z?-a1F6FX-}$;KyqUBbgnv~M+3=ihHvIu^C}eKFcQ70JPPUC$8CwpyY(6=m>{qB+$Y3t;#CQ%X3uXp=bti)v(j&G|lRIx{5 zXvYN#sw!xMrHGYoGolPQfsS~0^}xL_Bqhb+a=C?bn<%`Z!{3#$pP1L&1iufGL1+J` z{#f0{LpYJE3L)5>(72sMq_BK)ooX_6De}wA-M@&uPDoK^`&2704a= zHg%rf(jT&{n0T2h_Qsl!ZyoPz@TqF#-2A|}8c&wy6BIAkY)9KtR^!|28T-Bl?>F%$ zU7-$K^FihEjc+m6DH$fsuRlruvhqUozYvHTrBgccL)n_*n_v)nIxRZmS4@GgF&2$o z{sxh%Uc0ivSI#0@+5Mmq9pE^pibX84YVNqy(jW5godu#V#w!I5h!md;JOB;>`m&Em$={9xwtl)ZB3{DMrQstQ4un9+06%XINRm z9hj*;xoTrb(3kCN0RB-AWA$~i!3XMP$q(uGU^LGAQKRl8q2 z&2CL#@dY}`l zuCQ%@;vLHLDNA3x9%VdW>KIu@vgkV0MSr)O<`mC`*{ngnJ~&KeU`iXnoDGU}s&!E* zBnZY|OS90l-QHmPdoN#NPur-SIJ;14C{lKgU$hMmrGMY9#|q1WQ4xdp2U4@uDD9N# z+bWQDoaLr!v7fSLb6>o9S!!T!0#uWfoy|wGyt3zGv%P*h+dd8ur`*lDscb^kW%`S6 zpPiRj)~Ga0B_a8@v#hz6(&ihu;&DL7w}*{;8hO%BKR@s%Z>X;!QkX zJ34w3%D}u-wBk%F5@fS+IzpB$?d2zhQeX7phlfv8nA+S_X}~)#Y=lGX75}Vrawf&1`pZy|X zO&P{7Mkc%;Rn@d6cNxEjUvsffJV3?V#r(=my(kk{Cf5>uFvORZudM|vgowbq_&;yJ4X+tx#cOe_K21gE}XM=i$g9kOicwYv?l;h ztUwd%0IRR7mQ??8h`-8HF8t#(RWT0erBS;^``+HA#q@eqJsGA+u%L0sFEELSKT|op zfpiZy^>(mTfB}QL(J|hlFBGJy6l3g8T0c;Uxm8#ZSC?!-**p)UU&0}qg)V#!%;N3v zKckZ>^F<}P`b&trAf;~FC~oWKi<;sB@mZQUq7qa}&YLl~b1bikIjMt}BaO_HIxzEC zw3b(#4)jLB+dc5^q>9!D`w{iu+LbYA=Y^wi`B$uPbJ7LYlO93-zw@X3XC@0fxG<91 zk(&P!C!DUSZ6P!FuAo(a>%Jr`7tg{|is~D4ST9~ud6?SJEInnUO-u~-y34cJTp|Yp(3w#QJ+(Eg=eEzTSfwgj%q-_J_{?oT!iynJ2kRf`c~YM3 zN6Qb(YbO6CqIgJ*F-SY{%+IBEtdqS?|EC>j%F-I-O{@J*Pwkq~LW=nE?j}l2C3k^y z!H)tF|5EG0=I8k5(XdBjiACTh!CXa{Gl;m8b5XXb-9^fOj$r~Q3L^y^@r$MoLs8x; z8Dr<&$(I9!UYFFikW93E_WWEHELBFyYttFA6B2yKI^nRp6VEVkdkx}Z z-tkZ(nEfnBG*CTnc@t_=)fCu>ZIO7hqubHz^c0;J{6y}iVhARK=lOr2smWZ=dF40n~ zp*)#tYlt9;cM%tn{}TMq`G0IHQ_ne0km`0M8KJthrjdo%|DY?-9AO|@Pk`_^W|B@} zq>sbeku7UNd(EQCw}Lx9vn*bz58y(?UKBDF9)96h!@(8?q_P zfEH4^)dHtgI%9Z)=Sejg3C-lYRh4!{TTqjozyHb%ppppXzkjOFFP`wKy4`7YC2f{=cq6LX-m~U*5m$V6))~W zzD96X$1+VBgL-1F+*!P*K6Qij;y3r}lx`65oNDg?Aad~c|DB=L zAm*=VisG*LoMOGA4MFM-L?~hnV@o?7SyUF7}T zk};br2Vb>xRv}9qjDVW&7$YQ;e$w>1De_mZ#^JqwZiCi{dzM3rR)79Pv^0^MuD}Fi!Ew2r`Jiq~@aZ75N0nA6d<9l@@-@qr=x-&(3#bUQ)KNZk8|i z7g_rE6|O60Df_lwtABmsD#7CSCYvZ?{-h%OAFEvQa=b6M0;fCuXZ}t2(rRxNtNp={ zlp?OUecfrF%%gs%@lo$);7$TuQdTX?Y$_@C*c(nTfCZZ3GQAmT)(MNWxk4NK1u2W=yJ7}^05`8UWJYnZ{2i3DnsxM%Z{Oo46K+IM+skUE`f zq?OaU`Kc?SUctwOK25@R@1@d1S#RuW!>QN zrPUcxIa`5nl&br+UhsT|dy)(GD?g$dME+@WBGVzIg#Mp>GCQ!Bm-4I27WY}TX!%_! zQa1P={cOgtBJ=Re{M-g7m?bDHo~$O^(1A_@tw3VU2gc9)BUdkF%D50Uj8U>7-}u?S z;z${c4(3gL^4He@^FwOaJfzjoTVE+VzN)a`x&?DbqF_%^j$=*pzRPa zf;|Zz5&yLfU}vD5a7KpNg_Itq(~w{F{j>7?UDZs~`8bZ}o?}j;YzwdF%52VEYXbLj#lPIw{%acw)Jz3FoOF zCgx1TnkWpUU&<8a_vT5JlQ5`n^Nr^JgFn=9yAb$e34uS*B7_vE8>ds`zedr*LT9#= zL}tla6%W=5BXwQR%1^J2f9KEn+qKMxzEg;vLEtZIFPH!L->*hI?|Nsdj4O$q0^9#J zgI~Jj?R0N#2~JlFS3=AmLXYur%xJSeY?3K?z?r|uYJZ^ew{M`5aWS3sD!UmO8u!-0 z|Be6RJo8&7jqRE@F)Ip@GQd3Y2pd*DVe*Puh~Gq8qBQci{FH=+7OE_9WPgZL)dm=a zBDISD$r%&VzgYrrHW$SD5|RHcKgA6!XFaCAbC6N0A?&ky^B=ret>L;2ZQ7_fh4wT! zq;tk9cb3dR$_Zt6Sq`!U(o0$GeG&6V?oX)3-BJe8T}qbVzasXKU&3`IL|VE< zeQl#HczWn{f1NiNZf|2FBXMMvegrA*hb55 z%CT9^=JIhQm1>f*GnqH2)aE1b-x{T|=@0_{HN7H1`2Rhm0ac%A8*HEbHX(K{#`9)) ziUjgWMlI|ZY(Y?;JtP(Z;M&3OAey6rU&a-{#!O=;{v%|lq^~*->ub1n`3h8dwzdvAL zI`xAu;z~SvOke2jvk8(oVl)nY_+k6*roT?QQrujg@n6ZuP@DBsK6Qdzi*G?vV^QRg zM6#4wo1Z2|`EqMVh3s?){5K7UP0E)a2~qPyoaWX|P|2?fJKiGt?<)lfg#R_%MFLU5 z9YAwRLpnBkE7W-6@bH1F*P{bx2>#a@$xyQs$hb@ST_c4)=QhzZ>+=+ebwNe~QiPn~ z$C1rXG@BIAE!UoOESfMB7^5z!M=7oG_bY(6Q35odO5g+|M3R1@_U5x_OR&w>Q}NA; zyf&{u%UBr?HUHL-bBPOW8z~_?iNxEoCp=!eC^KK(8rK0;U31Y&)R=dHc03mAm9Z4D z#`O^JJ6*afO><(v`@Ic`#lL0MR&Z-#;5PR2{>Qw7Z`Takw)m(i)ra68hkjC{tb(<~ zvs1*~PiM;!`Cqj1l|JL0b?oI>{2~|0r(orx@yOjVkVcpHD-0QvD*eKky{k6bEnAnEF3(7?TGk^Wfq&fN?iW&6 zb0Nc*kIR*=aZ`vg_xMW@q4?6>pFAJ2|Gc0Ren3ufe;<~WA#SsOr*G9#xu5$akfYU4 zKRuHeu68=}*LRW5(03a}qA0WCU#(_ZA}OC#<(yiZC&h0qUX2fHJEzN0GTikl-&A090>SN1KV#H@ zES{{$_{ILk&-hk6ntT=i!O1K z=5+gr&|kR!4N7|%n6@;bR@RwEO`nhp-A5_3vT$=|3g#Ir7{bY*kfz*pJCdCREg0QW zX?@_wL8k}9ka(rmpTC8kB18GB_J7<1K_#)r*=`qIO76w%lyuoj``43kOW%m|B7J#P_8s*S_>V@?R$CR>%7TvbNIOugeW`quK1{ zJWpCqRf#jm#&P=~?{-&xR+Pria?a;mZYR>mGv36MgP%Wr(zUuHJI4ht1H?T4*yj4Y zYj}OoWdx<~m0u7R%lt8?c)HpLz6pBKCvJHDs>A7bMH%~CjjWcp&Kp>o15e|3drNOCEg=l4_#nW;PjvTsT(D z9DSUQy}nz@h81wWZ{rd|rGgZr{m*?(VeUmx(Yh*{n<%v-yBqwL2B0(GZIJR8eEhxP z%rq;-dZ;uijtNcsab(R1eEbR};bs8#e zlHd3(a6R;hpQ1*t@bnY&*v2Ev9W?lFUAni^YNIYybzd(X(2JVneg8Grz=+BS=VTQt zxmCSE%jdKeZKSi_=ufSPF4F$cflV$aVgSAr-N?>FJ;`$ds5sOh^q&fwjM;E08J;1V zV!-*iu$JxdvfK?S!-dDKjn+qKt(V5KaHwqpr1WFf0#a|sB`!<3d17~Z#fC1EgLs;1 zrzPIq;n@11qoLxi=#xzS83KRB_KQWhvaV^UTY$G~E>6^bz5gxjI zlE+n$z!_%V6HF>~arsD$6A*A2W@xl$gwWqbSX8@HiUe|B|3NXnZx7gn1H3TaxUqyZ z8J~RKW9lX_o0`4<)}FQK7=~$mi4H~^kGuLIO83!F`DouG`iambgv=|ozJXAfusKo2 z?}1l`BE5{-elz7FV^LSY{WnEw3E=$xwQgW$i*+NVFmFO>k)|}o6t&4TyQT9ZM|)HD zALrKNsnFDdpo~{y)A1Fjzr~p zsIkMqs2*zfpnQ=nMYvR|rnUd}9`Au>XS_RW{A!$=Z~aVUU6ra0n3V|gYVsVE6m@)eK@Ux5XabZ9kw@G-uag z{Jx~`I_C6s@xRgrsz;)a)gRPMp#=csN#o7w3K%`!Lxdu2>oHniJH>pzPX9*_zbV-l!V-(I7wD9~Wv*nlRatORKV7}G(IqeS zZm8B7Qa;}e^k)Asjm+Seu9&7_ajkM6!!yb_t<1I;(lp*O%{Kp)A%f)%KwkJFeBJU;VZFrIi zk7njkAK{9Lg`vS&iSWdUjm;e-XGzWp7b{hGK-Vf9W3nN7ir3Ea?&eSpf*__V{5P0Z z-_9ZhlOXh;9R4&X=O(8BDaE#k5upsHuD@e=d$@kD?HDbjimzF)QBL@N5Jn=F!FQshaGVEg z*bi?PsPTNjNbn6jIHTye*DMMc;@ysN$yhsM@~X`hHXO^u^7x|mp5B2NJ9tDl2Q?ej z8C5DBUepmg1-gF3P793GWIq2C$`2eTCm_l1P?h@9ZP(!qNmp&X8wdE12mZkllp+S) z|0Ug9elQf^Qhx36gEY_sA?F0lg=8{S5=$1srAnNH_=s_ z)CIm?zg;sHK!ltAKEXJcXyJ_+L_mlfcq~SX z4TaeLx+y~GVzFECL>(pPcGti$kqOg5A8dPZ)4@R_Vnrb&B8KB@l)fRq7$IHiMngQI zHro%M9bvHoGVY|m2A-UiEv1qFtw`yWY-I*8z_)pesju)ZU>2q?8< zzpLDFu;#k<-b|zjrq2Wv;5=7duM;&LDf`p?jBasT+ebL|(LDW7sVFPHVTr{KXC zBxnJwS?qWPHk;#*nDZtWzVY{C$sd+DV*d$$7HJ}(6sZi2S+JW3i^tU;q@j1jbqu_b zSjvRwIf~&_(Cm>B?4lZczY$3_H2s7(Su->cmS}5{@$0utq7*Uf@??}l1Nik9KRTNH z)I3AE@e#e9p0@BdM{A^I897N~RXFmJCJ7zct2^ zMaGKozTU9Z}p{@89O*NNf6QxHkwRimDR1lu3Q&U!ovyBWRc}oVaCeB=Vb~S$*=> z)R|;f6Qe&&jOyfRnDoa(xu-aa@L&r=tJ&bkf}{y)op|%6hh$*93Whz#q9lO%>NzD`FqFm<$REFKKPXL0$y@ zI7IZnU_}4hNIG#MXORDj%hr*()vN8(C3@#h5oD6rT_s8uvQZv}`CyE@^)G=_x-X`t z^uU{vK|rMVGfxq@X_w5-u+r_m zBHo`jiCQQCfqw)ZjIqcN?{B|_&DS$!N{Qrw1UEH2NAk7~OcK8S(Ln!@Xwui!5nvH1 z;005q#L=p>gG3|ppQryFg7OyUFG>nV&%us;wd!<1~ob0r#4bDJ&x&q zSv8`H~F=FDuk}rO4XDL_JXQl@SVZ*C7qxEoM22?wFKT`bqOg z*Uin#uy$()Pg?tp2&qR<^3l?cBs&lBA{~p50#Y}*B1=14k)`F`9pe5Daer9>-Dm3P zLCik^#Qb}Yn13P&{MlKxzAKqWPgvI^lN@9bT=LM!6hVQK6)Z^a41ycgeOa9O0EX#Q z>kyHna=u!BT1Ok61$fUVhoLGJ4 z7cb$_84@FR1NBZA7L0EeVc>VXsnfy!?T6gSwru`t}u39qEh{VxfWV0E+=#eci0 zCT}^g*m)?z6I6&{Ld`_7sVr2I>>C4Oh5IaPuEX=PKR(hG&Fapv0mVy4QUF~zZ@KR~ z-G65nDAPJed&OVpQl%~3k{n&`WBMe#l>b>l$Uk`uu@-It!QEZ4I?actL(9lmzE@T3;$)e^gVYzch`0CP~I zFFgQItOU*J{pZ-&2#nJKcu1qwGyeO}{fWT6G1l|_7w6z(q!*h8&<8cYvVi9t^TYeV zbRK*@YMGtrn85d}__Me;(N8k5 zJMSvmS7_$TxwNUVP=U7FcBWiHE+$cJtj-rscH~O=tCcQt0+yA?kkvm{`kxx#E;`;33rBq`JvZGAr zypJtSPEjaCOAtIoxFzO!dhdF@)Xd5IL6AYQ^vf@ z@?BMVdq)q;8BE+Cp^t_y0cA$&iMa5U|4dLK`8$0D2Nf~iE7=8~T9FEN zf|LKOx#4PN5j7+iUtWIvGFrB6gJ}#bj$Cwb6FSp`T(F^f=q4ODegSQtj0ZY3Y|jOg zJe04Uk!Ozv#!KAHR53t*)}LX{&-V`- zheMRQp&8ZMa2FEF$LW|3U0n3PC}ad~KkrZ~nwCnzO(LS`EW&(PZ`t)4))ZuW+h)jtkH1_$c!m;X@ z3;iANMhFn!mL^6lA$pln+kFgIN{X=(yDXu`lt1&SEwWa($N%gF*LSRXdzQb-r?|Er zn)H`^gCuun09OD}EFrxOs#!S|Es=VUxgQ>JSzwBh9d(}0(jN~6L6|y8s;m5* zsiQ9oz4%9&m%1mtZ7fVft?`+EL|!g~~n|nEyg5@n9n)R{?#>lO*P3r>vUaW22 zTjWyAV$AU~PJ{doF_&(JZ5QarjekexPx0&ckN9E5NfAiHfs2<5< z+RBp>Ov|#_A_eD=3UM8#Vk5NWEr!Mf5&otRHt;OYCzM&xp0vQbRoQK1$i`g7+b_8O zk>rD3iWLEXskx7xaSb-EGt1@YhQGyq=AWMD-}C;%&18$XKbiinx1+rtLjS^+>hlNb z-Pr))JLcX8j`~cVDA8KdtB4zmmKJ_-b}2IE)Nx+o=+8bTWw@-qP&o3S^qmOU!H#fN z$kKsbj#5YNS%0HGVp7tXzb+8C8bKRY?p1?Z#6a&Z)GKJ+VFpD@8Tt^oq zx-@uATOBMtliG(;E9wG}a?r3DUW@QXNXxZ-$Ao^!(|J>xe)6(8OQvIco?cZF{YO+9mNPX{wYH&#o#VLWak(%?Y#5pOy{Q zLNJ$qyA(-@>sM_1Bd}J9^4IhwK%(SjAHV^Lo_r@*aDRQN#LfSO@%IaWyAm=%!$-36 zloAy77q4fF;xC;f+Q%?L>-9$+P?a}ZmHIJ!tTjWKOmPgHH^a_ak>Wv+6^i5^948qd zQ8nF#OnTTjTryGr2SadsCxyW3e41=+`-?vn_SY?9d5f%-3e} zIUxe!j_a}gv7YPAA`u2SH72@0Hfh3*l0Q!&KVSo53K}o01m=Sh+x#gh8D0hg`}yI% z32bqcWpq1J2>nlop~DlPq?G*3f3V)GK@#=gF&_~6Ct4p;@a4TO`cI}brwhdW+Zp=$ zU>IWmzxyXs|Ga+?KzJgEkU4Zv+$^`tG9RTMiunB1P@o39I>u_8@Wa8=i+uNaDaUUq z3r&Fqd(-B6jq$GZx(fH%&pT3$XVs(X?25QKag)~n2^GOR*yk6)K zzzf<=fg|a{ge^4KLD{rW&G8Z@!!7c8b*d{iXcn4nJ3+%0n|RSH=E<{Wdr)5!f`3^; z@Si25IV@-h{xd%r|L5sb_!Rw&=}o<8leaYKQ%M3m1VZnNn)!t%pW1c^lE89}W8l3R za+V^Jq+uQv*H+VNdEC#2!X$bZ}-R&X#W~>#8f!0vUPhYSi$40>2`5H5nNgjo8=wnU)9UN3~uq% zP<+@=F)Vl0_=TaPG?}EKpWrhmYX@?r-lo}C?8j!o(a-gTH};RT@RNY=9p1 z4n_?&CcCq46d&tdwQ#!SgN-jXFHN9wJ+<7J_;Ebv_&!OI*d5ECOPS#+1+sTmzB zI>6}VoU2fZC&!On$p2KBW?V$LgrjCqlY>v^(m4hN{7Bnz6fo3!OBW;l|tZ0owPrh1WUYT6Wmy)l&=a!NU^R zUx4BISFIltPFJFeCyXWBv&hDaJFccA6Vx;092Ye2euNKdoUVYQIJ#y_Et^W+I&IYd z`Y+zS$!76`a)CnIM$DIX$?9kaU3EA3a*PM(HI`zEn#d~y|0veQejd;6G@W#zL+G!S zv=!$hH~R?vwU}kA&^o5pYvYKWJCUBhwq%8jzPa!H;f;Akw(i0CqtV4Q7=>RsLVZ{$ zV{UJ1IL?C8#s+AW#$$ss28x4~ zCo-wDS_G-ei2D=Vq+YbQiXh1{m85fwRz491Idw@Hb`x;pEEQt@e0$Mk_7?R#lI>X3t?>Tl*>R{I&QJm!L3U9Zdi5BUq; z-FzCAAr89V1|O=bXS_iP5uuU5sgxaPt{z6yN8rCb9@N6^Nrrk{4Z9+?xw!A5K%4Gz zg#MnXYobk_MNOuQ;D6}Nie_=on#^>;e@9bh6t$Wy2rqt;UEljAK#~M*#3;FA3}+RP zyZp?flp3Hambh{osbf<#@PfBuj6Lf6^pZ8@MoLiJZ-8q}#b0+uyB~*WD3AaCwSxZ? zC1|@M>?7@Xycq!=>VX^dEeniMDhq0{{Pa{|$+6^0p%_tjjvUa(3DveJo%5 z$KjR4@`>BXpM_f>qf^Z(0pBc0RldSf7{Pz3XHTF;%(5K>PxgGlGTWHY@cv7dNLvno zv=jl>cc1y64g~)*g5ZBP5d7yx(gGSXqglC#K+JJp-21%{?Nk;;Ya?t}8}Z;!_8eb( z-bacqYi$V+FyVQMOb6)jUtogpjiu*{Y^>RrR!3yVno3@}cv?4!p+y*j zSf|F6#qBNXx37cq3N#eY_o`|CnURLWcyGxZ#VtbRF+$Yre5n){t9Qc4&y3#+$@vPj z(4ECDEx8lb3}oTGit+P+m!MmoJ>>r8pfbWw68-hThWR?TCcA1M=bq?d0PPY_w<}Do zWkRe03EtCaU_44@=0jS%sr&xS;jIPUvi(X2QMUYV{W9e5*-7%=e<{+k3R2G%Mv2!4 zpZ(`TH0S3hVC*p5|pe!-v zE%9hga)>J)uFdMkW=|Akx9Kmg$(i>J4r58Vx%W6D)V9 z9bUZ+XKJ+oBaMy4s@?oSugo);K9wGIfi@?fsvVZ|ii;@>kY^e%XO#{*=;kvX>`W@d z`qKBPPgN!^MSwQFO~RF!+l8uM50SZ5RM_R2DYEdH4{UePP-ZjVd)2>d0X&>K-7-4>EIn^d0OU55z>ug*3? z$tyB~g?3-RJBrvf#a@={bkB+&+ZOV61v_BnKJiHr?~kN8$u@Qm^{HWf-DTkI1ikw8 z@h|X|Fb^JGpyMB8^V=Cy^hFh??1Tj0uvZ@2>!XqSp-sO%#xALF6_!K!>oaZE(&)^B zH(_kQEczm>fxO0gLEN7#BI-}M#9c)0PY%lv;{L=EaeqRKxIcO1GG@gO;WEYT zdW@WG!P1L6*I|8OQeek4Ocm|IcKu?7ZVvp)K85@%E-<=X)e_aR^ZVG8{l@{TJZ7-n zA3L?eEPbxoy=1BOwigqn!-IoI`b6`2pGZP%y+jpY;ojo|0i|f754zh$pU*DB{}q7l zfjM>N}HBO0hZgZ17fv{6pVc}Y*W7Gq@>|Rt*oM0eXzP? z-g$v#O{}b!RBEfgPix%Zl)R+#p}=iG<>!d~#S?`a#;W?AvszKolm9+ZN^>>h{yul7 z`2oSdCMaT@tAHSC1&fVp!g0_0FGByTb%K6Z$akms-}?(`x;Q;wP&vv-0t=uhH;<{K z^Wn8!l9pib)VFW7YUh~2)|bbO+H4SJjIi=C``;pPVv}>2H0Umgm^PG+=Q5^o@5hk} zn^0JLmkkriXmDDH#+PdKLyUKwzA}Rf7-XtDLBjR8603e|$ZKvQnwdl=X|SxDLI{Pz z(dGiBP9SdroP6N)Dx7{9Cw{tYL7`k)1mCJU+f6L){P!DK(_RkZKS*C`r3n%J@7O1p zUaW|$+%fqpkgp&p%OL1C_7~m?a~81MpIOYu3C%#bP&8|jtI|OE``?3|y*9fyT}ET1 z!T9L761jfOm}@g{U4n}aRn(Mpj1~dS;RcBRMb_aqpQWvM{bHhS2&G0^tAAS#V@|b4mH?fjo+oeS#at?`T10je>qpnye~u!v>`@l1 zWUjIsi21)>8Olb>AuRhTe}mEX-+?|-n6{wL!V%rn7}kQEn&u_|3bcb|HcXxMphtf!Qcc(A|QiGHz z4I<)D(j6+@vDZBB`+djW`xnfyX07{*v+j;X5-%nW-i*2$qkXbCmpV@3?zVBHRz%IX zJ$W>J6$ei$g_+3j3m}~1l02W@e0S+?2Zl8%oCxE>DYlyP&k0|e+K~n9tiO7cmV$(=xDzy;Rx;@FZUGLoh)I3 z8JKuo1M_DbaQ<`w{m+Jb1HlON`D4DSpJkXD!F|m-=CXtmM**J=v#*b4W_^_m9ld_1 z%-W<*SYsN|ZtNo9KWcfoOrk=EXlfkg;0O0#SHXXueDeT4f5YdW+(YS=?x=45$>4P> z)=s-`%Pcmv$^Q=N>MT>4G}XqrZ&oSd9jCK`ojV7)6DoVAEg7FHBm2e8z0&aC9)&0KF~HtF^<6Z6DY_ z5iazZ(aqY2IKNQ?|JTaHUa&);gV#qS*&GNGaK%HK&CeL z2>NBB`I=;&hD@e-1783t7$cRiO--Y#QitWo0yWhsIHDof-CQ^2Pq#$%_K$}S5x{>@ zn*}NQGZRDx6=|;`9SuUIgAtDwZ&n1;Pe&AFob<#fbUfLYAL}(m0s7xg$qV-D_OL=m zK>r~G;D4ro{$mY}|5{nzA8)FfP6GTJWD~AG#(fX>AG{b!WvXM~xOeeSx`E?=&>u>} z@)qQac{ltQ)jGD=g8d4+7RFywrhj=M$-VkxS^v2- zkAi4T(m1t3v_`aHa_RCyl9*WZ>YI@J{!#=YIR4B4@PF|94X$U6f!D{M8&s7L|1$O) zFjWR&`xvTH-LWD)Li9iigB`SQIUIaJ3RiaqCkbxr^FPqZe|3|Cvv>U5mzqTVyvPHM z%HH=-4Uh{&&@^^10{_1_aewpE$0$|ZN1r@`$Fhx!DgT0Z&gd*Z%jj9M6NjB-NNY5f zVR7Bow}f@XFIXA|>Xj>UJ5Dk0CHf?6I;NNmzBV|2MKWryY zzVcSNRBVhjHL}*AT%1N6i@rb7uJH4(T}29RbO+AgOd$-PdqkX@JtIu%3sC=-lw%UX zm)J9X<3Gke+nJ_AmlPfB!}M1YpQVBRcj|^g&C>+=Pyg)&iX^q3sjRp0QnQKNT!KZ= zFJcnScP~pfR0{>#hxWU(sE~`)q;T)CcOpco{+^$IZ-n-0OyX>C%q&z|4svgK;>U+4 zu#MQ*O_yZ|>>q@s{eiliw}&k>4enn5^}mTY`Q_m+hQsDW-qnA)*=y-tPZ+t`{bG}7 zi!Uv1eMnDCP$fCZ2A#^cuSC}8$;m~MP1@2=J}23lJ$(#U)soOx^w?>ay22xgR-Zr` z6Y|F_%4pP8Rv}OqbjniCtzqyO@(}!r*3iXVgtks|NP|_IX&XyCg`5FV^ZB0PJPe#a zg)d-Q{YP?FqQBRh!g|hk+j$eK#Qu}ox@-;*Ml-CZP3mG6%#jWF*4#SK!~D*M9VCuIc>{`2O!{4x;es zkb3uj=0BeQ_~)CbWy-AfihmyV?+EcavcQrpd{?)q^d$DvQ9ZSnzpAZ7_Sq(g3E8AD zp!5B9x7m3=5hIL|<1iOtwtxN@M0Q)~>3b>eRViLlo1Xbk1OWY?rF1MaOJ1@%xKXAv z-xAr-16kFy4#1z`{5Lnif5Y{cVWPPzuYvjp-+y^@6~@$LUp@#D8CS7Xay~ekZP;S= zInO~^KV={J7L%Ro#xUOE;fq1~Nk=y?8=YO+0cCKHd;_8cVRc?HSc;o6KG!4i#qz0Q zKtZULD+N*lY!J_i9`_kb3FVxbEl;B#O)?)NcZfTTVGztY9o;hc9`JvE#yU+wTC6ZW z+?gP6nLSEhKUA~-ZMxo> zHMEonxem;U8P_*dcLp8obGcSO!6w?=IuI{MCWQXzlg=pr{CEt8pTEB-jIZ0FWzwx4 zBHCr&`fjXe?CKSTm2J-U&aU2F8lhR(9RD}}-sxxd>*-s&kY|6^L{8rV_5o&anHnE$$f`41PE|Mr3U_w_r11<@gp|AbfQLI%A57V6EhZ<-1R!7!DMb$`s9 zctC#wLRoibTeALmX4LTg+h0dTxqrWZV*>mqTz><{KeQEt?V!t>?qPlRE#azG5`L`s zXazH`ab0h-VYXU6JHpc+hCpJn_(rL-Ffh~#z<>2ar_sdzZkf}JNxyK^>yq$CJwmQ9 zDyQPSU!YCBpXjhV=$Z+Lw(IA}x!T9*z|hHH_&kqvf=dxv2Nr1a zm@=+iu!0$9VzW=HqLh{XX#jU_iWC^K@%`I!uDcoAa3vdh%OaKK>>fST6UlgyHN4>< z-e*5m)+1su5}R-Q!?kFHJkX?!*VkAZT>6unCx*;E{iHM5Zlm=o>-fEU@DdT}ah1j=$At6@lY|n~KCNJi-=#Lo?G!_xfY_+htD-}_F3aKO# z>v^DLClr1aP9J58`BN^e`~_VBvqeP-Pp9{ERcl4=eOU0z*3qaD1RZ&!cv*CS|E^*s z=Fk}JY2%npX^i~F6z!|OC;bYuh2r{3?AWaMVdPF=f_vrX21m=a6bB~jc6pK+s^)FU~n zKB1wXYc!BPxS^kEyUHzD{WH}ld0P}MLGs7{`~Q;w`BVSpzwlgO!~3rcpg&m=a7a-Y zdSg&g*Leh%LQ5~zFD2?lp6}X9dXrTOvE|z>%a%>>5@4zAz`x&ckA7TVRTyZcwUMy5 zk9`eO68lJYeWR{p?w-@-{5N%E#gnjmwA2FRoG}F6{_Yv_Bm5`*?+MfR<$E`~z9-=O z)3WszS+H%EI%XG)3>}h0V2h(~&TLId8>AzqMp=AAVR>!KyK}i<^W7xh?)Bm~m-?sv zafP`Pkq6_xlo#{;6AxpRmi|`I1r>Y!dEAzFAvh=?yv5fbZ&+^f@gZemRDCn1+?yFMzXV{6a)V*kUZm1C`6#Y9md~?~-O&ADKxrbfEsO#E-a!Za|8{};rwP29w|CX1#a41de=#s>9RC)i1Nmd{{W}Dh{~Lh$9~G!SNxOgf zB7SL7re64S^e6K>2LSrRks=9SvcjMh1q?`}nXmT(`K!0J9-|5$&j-Jh3Gu&dz&R2oG&>{L?$`VS*) zyu>P#JXvwl)9VEuk(f}MnY;}->D1bi_~S0|U?k;fVE({~mwS+=wLTH$72pK~EJIeR zsXA*O*!bP9gd#CV%KO0l!7v!Qc>e*P%og?KRC_uE*uS?ow+;{KwJ;i>MN2bpFAlgj zdCfrRKhy{E?kH}}!~4ax-wpJLHZh5^RpPeV&aPhwyt^z%GRA@$=Cjyc{<;XEO*3|Y z=RX1GAKri9^G7A{{yTHkD2)vK_W5TluSEIO&20qaMtMdUcoc*_@FZ=q2%O2}N`d=c zkb^~bh4ou}55|H0SL_d7?lIk{M?d6=|F~J=jtodaUwX&qcguoccz<4L+UcjZ5jEnNsD4UqtVsM$N zMN8<;y+sAxK)1=m2W)Z^ro#^!p=F$tTM(>SDN_l{wZL|kD%*!%?RkW zzd~L`BvFzC5kLnxM=-tA4EERFX{GKId9!4XxfB5Nhq!3t)cl+lmjkU3ECqqZI)FO|GZsBoH0P5wp!2$s}5)wi9yuu6x9>3cF$3Xa6iXJ+gelJ zrW3{xtnQVLEyw%R3-llB;opp!sJ1`5oFVMu+JQq4I_69WDi~zmlb-_#Iu4Viiy;R8 zvw!?B?}6bPlv#}bh}n6S{zE4}9ucL0 zmb>|V2F`!L@gE(4f3bWIF4X||7kK_(25|luvZ;j5hT~-5`n&i!sM&w|Hw{e+5o`h& z>fQx=DtcHRKosOQ;nGj zEGvm6Ka9rR{lvoSe`<+W(-92%sZfx@T|@b9JS>CxcD^i(gV;qDV=9V}5@p4TiaV{g zQ_W&R{2`HdN^aJyUgb?w8qE&zR9Mb61AgM_-Ow1sK|THatxTzP>WNhrzj%$Y+r5Ng zs>9SHlx%1u$>(T>HOYcJNU*%EpJMdvqDM(6IfS`&IoZ{%Z@4{w+fLVql@Ps!{Ople zJ1kx7#+jM!p~=KddrRBSR{OYLSsqz^OVwf{#B7ak7?nruiIZe3&spK@u$2LY*`qg4 zH#BRUbGZdNdv)%fD*M+Z6+ODeW~T&9^7we`EBf>`#}m{g*~Jt?@RED4g3Iw#paO~J zH#X=);|;6a@Mb8Io=fpP4$)Ze+lH#ED?xv7STveqA{K2*;n{{znMVe_8B0aAq0~QLW6gt|a@N;wd~JU-b?D6T!;%+XC{182p?)HGlO0q>j`WILygZU2V58H*Dp=r2op`TYbMD+jjzgq1(jjC2JIModnfUoz|aZq&odG!Q# z$v?P2Ut;y}87(AC(8*35w>D&r%L{(o8Ql|rNSsM1GN8@kcteW+{G#^y$`%bwAc2UG z4lkYk8r97e%$&K0G)+Xi<177$4(%y#;rqy{nG%PRzo8itH>`fYcrxqdu=pcQt<2{v z-dNpCX0+f4ePjuZz*lIjjX?l@|IOyOcDA7l!Iv4xP&X%9m@-fI&xULs3Zh)2nen2N zkX9U6z?+Y1-i0HVzn+$~J{Wlx-%4ZL-lO z0~L{*6|0EOk$LeftvhJ9dBtHUB_O(n67DrqKN%Ik|As;-1K=;ZTDPq#zKvfXDwbF= zs2z!^oqI0dL9Zw}I6WgXk!2V$UE%%b2PIhOY;0XZH6t&4>GFaC`_}`M*7gB$!xhCn zU{_I4O)<&D^Cfi5U~s2ODY>;%%4EIR#UgbZ!kyTt{qFq;VM+b5mV}?8*X9r8zovfa z<`W}8{*%D}&L3C6`~knjY$TY&jiCE<9`cRnxr|nnzZBHmpGR5p6 z>|E+bsx@*X*uc{wKh)-v3v=r0OP;kZ_v$Z1j+XvO>$5x;wy zlLQ{q0{%0LOf{v^FshnU@trSt88BnBP7?L~7k-jw3^-#t>Sd7ww$;7&(6`YsSn4ZR z_p37|ZtJ0oqA`PIim4apM;Y$9WaW&2|5P?StE~Zp*6e|GV$azDQ|i5Ga#Nh;z=@Qs zGUi;9&wKYU7lOQ^FfQMh*W8&z+UKN1uMP$X1Njp8Qw8|{Wnljn0P5c> zp#P-;{97E(xSx?l(LSMmp5 z2vIXIsstz?e5cZ;=xo>F_sDelp_25XW4=MWW@h+b3=S`U*|ioXRk?GP2m5_D=fs%Z z_GhX@JmsjLl(!1-{6l2!4R`qb{{r~^!!}Ry8$kcnAP?vtX!GkXU`a^y9!dy>m{4B_ z;-{J*myes8Tli`%pt(nXnRGcWME*FsE00j-m8nq0*vPep7nUdQcw+*x#by3d$i3$;7j4Y&+C-cLTDFmlXFX^@mwUAwJxPQyDrZQHb?175V zyLtisE3~x=ZKni)f8emkWJ{xAMelj~n4oGyVIxHN*nDt{0O6>(=DkG&{=>dKY6jG9h3KrQsvZUV2^Q^Z1%G)oN zvwJ4qg8RH-Bhu$U%#Z~E@;|)}d-kaosVuutTU*54el$d|&~un9>@sw@qqjc$pIDpm z+RehBfA1ln)Xb&P9^U|YH~m}zV>D99PqDot&4g6njMMvg@aWurjW^{X)BIP2aAPfiYZ{&sTG#Ptz+Jr9bw7B%MJ zV5P6)9fnhw?!)m9n^fxd{wR)Pe7iGFQH^4P#tgHfhkq`j?y{CI5F^WC$6X_ZBdw|lWF?NF_`gM~1zMDBrSl8f#X+5k zF|Dv#ZZXEMu8Vgc2q<1NEcv(<8KjA|Mu?C~(A7DXOQD4-T3B3IS@Mkd=&r8!{maqY zg=ozTkED2Q_Ut#Ul7+yZe}3bV@&2CiQGqRHmEAZj{#)#)7G+x>7J0NXs`3kuTZIo* zzHDDt9#>2h@CKtyYj54a0RHUGrV}v2?hcO{uCQzp-I7q z`w|wqb-^B78f+78Ev+I1Yv|V39vZc^eL2|s*7DAMkPFuu@zXO)QE4OJAvsdRSXU+K!sE?dpP3Xf*R?pCnX z4R)?t(nVYQ75B&}kMZ3W3$XwGIwHHEhLmt1wH?ayX;aGkltoyr+PTgF`zN;Pjrx|I zNT&mFYvx>m{$G8JGRqMQ4SX$~`}r74i)mMKdV7;siOZE{lfIO@?_5}Reb|Q4ng|;` z&TrE&*111Y&|f%Z8f!BH{)5h>NjB>{f*F16dw_q$DH2O_Z$eBp0=WwCen^*^?ZD7! zJ@nAFX7wu<@Hh_P7VVw2sPG-E%1~V{odI z>1DCT9O|ETU`(3CU)B8PpH8H%H!=XzUeX_7;1n?|%Std&L>SbbCNi3X(yO$%4hTxd zApC9Hx|sT6zA!Mwa4+kZ?1}ADM|Fnny0gB2s}H53!cyQ6f0dmgm&k7_#7=vXH*<@+DN~m*K_kbo^@1z@rNe2$ zV%+DLjsNsFWG>emEEa5zvyAp$(^a+LX}R_ zsJ|`oj#bBefPR?;!DGwD#)R&}{_eL`p=P=#09E-m9{v$!@#p95l2*7{X?L7D+*cwUV2ax?ql9@LOkcpOU1n_Sp#@z{yTDe_DV1l96XXg7SVfz>;U~&F#0hL z?mv?S`md%Vxb#Je*A{eNXF=PGhc{#`2EnN}-f2t7W3fC#u#G zZKN*Yh~B}PCE^|+?A(6%)QW;z%r|*)-IdS-aKkXGD>9gRj`Q#JnvlQqDhK0I@t&ha zoK+#=QP)-Wc%ZdDwZsASSIeKZrez@YXF$HGGYjSfBHd$@ah38wkZG)_%-C4bw z!c*Xzqm3?>A+AOQGln{Kzk~6MEcN^U} zA$yAi&id}>RSxAVy(X{3Pl0q(jm~gKoY^A5`7dxXO3zdCo|-0)_bdTp=6B3xZ?!NL zbQp6m9a@f?7GecgAEIL4F2wRgkFO(fr4?4mBhG+t%Xm+?5zhoV#Q4xQ#z2^v^5*u{ zz=UMQt2S+yDU0lBt3(!EACUlTkD`T5xYyZ$1L zwZud)8EE9Ye<0J%{#;Z&5C8v*ugTw;mqBcEchBy_XX$X(VBT#|e`k`Xx=1z6W1Po| z(I(LOg>O-)i{zq3{cleh7F{6wbdc6uficD#u-?{11QB`vtuJ>_T@_ zKz{=G593__FaCB#Cg!WQaEr>p0D&(1ayiFe--ft!5S|VocsZN>!?=gUXguwZ4;QTSGz#6OmcmI*x z)@6YEU)yAH=pl!Xf?uD?;=2&jl&nWq)=q`@gM=ElS1UQ}`Kxb#@(xLE1@;V-Qcw?= z9|o_0BAsoOl}tv{LJO9Ci0mh;OBRnCj*=hnFQcU{ekW_ZPnWo5uAO7csIQh8_YVQ^ zk3&-aJokkpgL+`+hS4*KhMFq)1)F@s;xf%ySrhc6N+H5VcW z0lmJ(NqF7SibvbpUfj#7EcH)k;SIe>M2Hg(|2ba7*){?PWp5+&V~yxjH7ktI$(x(E z>a)}ZlBe~%Z20eIvAKpOtPWKCYiPGIF0o`Aq>{4e5rWn5h%w-Azb@dXYnayXv7Z!# zXpr1i7&Rs`_+}q)cEfI_6wGo0vQvtb%+FQX*j;ypn8EJH)n0hbZ%VI~HNfTIHg}2l zrMMa#$rtatmZ3hZBtG9!=kTR`*m%)nxvMBc#=~;iZdvT;(K15#)(*A1eI#otNu!s; z?ykhD&|3O3yCe?(4(i}_W`@Aef6kUS4jbgKmw&)lyy6hxza3iiU6#k(z(VF5c8vYR zO+RSYu3p_{kvfv1N`kx)ytZI-s>0LD-m91kGq-6!N$^tbmUdt)Ec6xxbDci8%W7)c z6J$of`)6yvSC~C-VX&7vhA7%%%5Mp){osXF@QE`FwR9t-=2L~Cc4HM1f@L6Vh2&^| zI&AgQ%}+I3_zBH&bc^L62<&h59jV=OQpv#@FheiW4ARoR-KxxZh%L#^`9(bvz3mHU zH}>FaTY=}0)P6p9Z$SUhv~kQHP#WkgKE@nOgO=IY{p($`nJ?Q0Sm$lM2Vr^moKyQP z_uy-8RhGS|hGvvmK^GhNUTe_`>Q)jkm{(fLD&A_ zIrk^~uXw=xZDS9@+9-8M2J|;7`+)wMK)s%?^U6xp#5h-jgzpS%dY!$~nX2f(6+?10 zW;ec5Z%PpvUo`@G8RYgwc0wGBgJN4yd&&THKpTGliZH-`>;U^G+<)E;@V^TH|G^L7 z4{-jyRYmL`e2B)6N@<*r7%x+-obu=CYKu)5V*9le(L-tu{8DFaGKVkd$nu*cd7xBz z(qC#Jqpav9ghvy?v4eUJiciKI1s6=l=;QRz=baA#0(=!!SCdcK?BsLg{c0I!(3oZ>Wc%J4=!%WfHw>)5C9a(A*9;TgS)+>RKU6h#C>M9MdBnpUv#&}~7jZAj5WbfS7%cTvuku5hv zkT`nzDL8Ay&vP8I2jBlpB05|sgnq!nX@Wl?f$|%X8Q%95okg`POj!y=X4UMINc%JI zU~sa`mCdqdRLY+ZRJ7K6XF=X-9E4`7nTxW{gA+l z=AuKepB?!{dtR&|3dDc~mKT(w8XV=Ck4MH?Ys%{3qK>hWVrt8G(W7F8Ke5>>a0l4S&1qAXqofo#!%c-er1HJ{yQ#g|LIL}T@dUY7|lcJXUa=( zI{f*mc1uxs=w*ers$W^2Jp%bNt6GL>`}th9JCwUBp;{8&Tlg1`-oM%X*}_%7!g4#| z`PcGi0~NgWirrv{B^wH*nnsVr9H2iU;<*O&k41c)ZU+RJJsIx0fc|HH>t}4(0d&?a z+L!CoE>XRBr={+3GdzEWAK1T)=)FYRB}zg6r6|<(0^QRlTD4@Jy>pFr(pL^40LXt(>cC*52IfEEqQxJuGI;%WVnWdF52C$n_x}6nofMjVcgi|R_sC@|Pmtl@&*ZW@ zj$g!%LJ3KHY~QXU^vFS1lR?n!Bq)$-CIAbpi>~T!M5s<1oTJSo2+`4 z>Kk^IY8HKDHekKt={IC;Mycfur27hJQPA%PU$1^cvt z;}^dNH1v7~SBaXWThhuD&d$JQwYyH`>Xt|{h@qj)sLcZc6xU?`-}?7I^G}>U!v6IM zap$@@V^%V+SUu%``ZIe0$OlML^^bQ85u~F;h-}8j5Lx28^osDadNd=<>9jJAxaNnC zQL@dCFBLC3;*s}tiNjfLswMKGWd!K9L^Uk)gZbh{#zBRvNhs45xS=2HaLL zfjn{E&aUHFeku%S@!~KI&EKR_p_V5f26Z_J@0U#4Q^3j>ZQ#{*8pBt}!9i{PLvHN9zkOclm*MoC_e|7Lhm;XKH--&2GtL|y6{tHT8FjDmEt;h$`Rw4;2!=6?H zG94(8f0Ul$J(>>i-(*1k4sxNU7+ik?&mY-p3oFb5^dC)28Hu3l0c{I^MPUClpmF=6 z2I!A>JVD1E0RPYPK4~kAe-N0zgQ+F%@3_VwC$_5j^$~H86|ede7_y)5f8!kF2&oHJ zThn@-rRR{*m0Mak6Sf&@M(%5vs23KX3ZGdM-VCAR_xpC1emK?<7nYhWCkyoFFU<&p za`1>U(OfbN+Uf+5|D(XDfoRxbIuDa;Oo@yE{!4~I@$edSM7S}8b-`Q%%g z;^n^xtq9&`X;|RmRVNPkr2T%=EGlC!07^>ePs_EE>ETJdCJhcLhxAg7z7a4Cjp`h< z#7`|Wv)g{C+4^Yc>g1bR${zwV4;!?cpfoM%9O%m^S3eu~Hg$8aW#NzPaUEO`yp^21 z&&OsMTFKN`jLuZ>+sF7sMUa9GgN!?K4fx6}S;j8t+XDPYFbih`^|dopNp;!Ok>9mncu+SX@3Tk3cAF|L8zzR2{j0`3BK)K;XPv!7;E zFZc4!PWJ+xt=5=9p^#wSl~=~CZCW~8%=ceN{?~uSH`J1f zpbO=r*68z+6^vB1=*r07IuI+@Bgjw2xOecylE;=%4kSk%mtamsElngZvls#LA8htA zfZzWf-{mWAd-fRjliuDKIRg{wX-E9fzP?Ya1$s~L)U=Mb%&Qufr)!1}LV=#*{y*>kRr zyaD~`hFcny!>>frywl5SjQ{dCNTQ4nA^j9%c(m6K|KtC^1pNO~u~B_2Tuwe1`B~fv z)UM-UX?(XVK>bZKhW_GiG6(z*U>Rm``fd}ZHl?)U=WmsC>N&xtm8{*{oo8i|ys`uo0 z{R8iPzldBLwh&{_HI4sh9SoBejsp1C!a8@4=`ryt(%}X5bcU&qo&u_hC8qOUWtN3F z!2F>D?>`GLXCJy%5%S2!cusr9SI<$MK9i{zY#hz_FP06}!t%;(lz{w$vc#7_{=qOM zGmw99m(C63ADk)Y0{I92Y3~<9|Ks2P996kY{pUa2BKuM^^$I#$KZ3#l%)g|Ub|BP9 zF?7>!)``yhNvkV7FQJ39!_<{KspnZHq&+Zdq_9UJ=8ffHv;ASmSkj_oiYnwam}G@tiJDyVM{u%g{1uxpYf0j9r;Far~HJ1G0$zE^6}?ih(GLGp>j7 z-3_RDw821ffAB=C6T>_{*LO5B#*xWUW5XkSm&#?e-?M5(l$?y8u}^#0lQ_GXET?E! zNt@D3YP_smmxO61HmWzo7hfsi;}lv8dsTxSk1tCbb`VTD)3oj_zImKdb(K;!rrlCC zS#0Cu7F(_Wq638deeMtWup|7eo;F!L);yLcmVG-54CpMbftnyi&e|Qr0|<59LA0L^ zJ>IZ#WF&`sIo%UTYP3?qXzQaKJ$-QeNjPmdS_bGpvuJmo4qGfAja-mmrO1DD<-^1B zBoLV6Pz60*U6n!1!OP+}dKzv1CCRNP8NG4I)n1#Qi1ldwGpwjdiD@O? zH@NR@gRK~jeI+ay(4Wu=K!R5ss{S%nH#rV;3Kz8xNF?<`C-iT}>@PLTy z%20#YSRz66rl_uP^WN(dZD>3tBvXrt(;uS?rN_*xqx&)!WSVH&ITQZw#9dO`BBtS~jE5U%=#{XTtgTiq=l)i; z;#Lax!up+Jlp7@iZhAi1RH&hDejiK0bgLWhOBzRc#6+Z{ucvZy*zuNjgHW<(;Qx=I z{vtrF7~bLc9VeZXSdsSEU&GxA^1$s6#oWPep1x^aV|wUU{9p7d61L z*WAx=@zG0w4)CA52tiEzWV$sXa3Oszqi3h)e#@A@=iJ!us{SS7A9C+)B6z1&7?pBg z^`k5{ePxiIDNAI@1V}I+T8qiaRir(Y<(D%$*b{W~jXf;_;b2aRNYm$(;BgU{AtpNo zp#Qt+W)-1~Y|6LnKorgTGcxAe@j{=pyC_?K*QogF?YNw?a*yaYyC6X@<>51$Cl)Q} z27l#^l_Ps=Z3&Nk=wFzoq%|`0UX|1iyL6QQ1Sbo%Jxfhn;w!=lI#mPDYAC++GQ+F_ z_N_8YW5^0en%knj8a#gmid6(kcQ+iXDA+jawZUCTk5C%saUrjsQ?mb#sNaJstQVSf z%SZ^H|Bgfe{WVvEiT2AayPLDew%I+hZYj9_-(q;UJ#Sl65Wqhlde^_R2jnV$pfkb; z^e4sj?+FgHF&*@_Kc)FFu-4U6d;{_?b@Gx?a5A`6YYKJQ502iXwkcqJsfI%b+wS3{zfZhJhv6ps4EDOeboQ;o@aa!j4fue<0K? zcJ}+JZQe$}`zPDO#|;$RKLV&0$XKmE4S2)Bau|aN6=g(j36|<`{CUqtgeBDd)$3_B zjOPzKrJ;&L`N(1ZRx+rA%pV z%nng*HBQ3ykF-GlxdQZ$vVi}P9?0Jz%Fv`(0{Rd9{9OV4=l`F-dhKDk%mU<}lmhuD zaQsho3{CP5$e(!x@CUg6sv7V==>h&H8CiixLc&*1SNqftjxN~<^-l7Bk0$uX)6*i|FZec7-&7% zYtMMAbSn0@LsXV|0R7#9)rg7q$yKS^rpc6RmM-VkZmx2nJI=DD+x}P|kbhYip%$B8 z7vYX8kq`_*olqbBD>T>ova{cGFZ3{vbodnpeUR5apg-NXX!CdLM4)JGJYYUx{L>t# zYH4Z7CWuDjJ@cU1%8-Pl1>oQ4FJ0uRIo2(i6uT=Rnzf-5rcH&2&xx#A%OnJ}^zV0P zl>F|u{@*QJmVJ^1Y-n1gc?J}*CdabYH*|pw;vg2lU6{Y>8dmHL2 z2bL50C%0u6`Y6I2%0-0IsMW|@`ssIb=RSUS+oTC&)F;u+t;Ja5%K!0yQpj&aF^#E( zY`Unk^FJ$U6!&F)ww8%xRn4XdGOsUNrKBxuiD0JVFd|C>{7=ExeqSThF_<-d$OMwO z4{bLYp#QJ`gB+;81Ns4`&>u0S z@8XbtKa5r_j7szh)R4$*SFt#b;K$O@m6NGTVzBx970**q9sDSl7CtjY&P2X_>u~vG z5%t-!9A5uRV;(I98ZK}7?wNfVisDYcSPn*+BdPd;b({{a%Ap?@gBe{Bfcsx2pAal2 z#B@>X=&}f1IPem|tj>u-ae~bWvft2bET})-jY+VB(6{@LGaZIwXdC8bcb$z3M4}Z$ zMFU04F5Y|26s1{5Wd~Y^_n5qqOZvAPf$F7iZSztiHF!tWht2GiQ;B0*yeR6(OnD7t zL8N`r`{G@CNE8CmB&+e(>!jlkX5Aox_C$S!SBJ^8+%&|?}ZUR zJti=2gHX4&4+K;D%5Ov-zxeuMH1IiIk^7jWgFlhgeSzP9$f4z!j0K?#CB7WaRW&iS z0rIz_)}LK1to`pnxAY`PX!#Q!0RN>I_jaxw>{4jMry$1s{3VfljDAGzIp+IkZ}TQz z(GtSeCmhGti0&--{0m)>b@1tz$a&o4FeOGmvJ>g||JCgbd0o>DrW-QJcct(ubn09q zV;7x{K5IgAVa}B5ar_=lYaYv9R_=pNaOL#lg59?@8CQ(_;~u?ScA^5}AyojmB1+q- zjgniCH_8OYyfOEeH{AMn=3)g6Mogu2H7q zULvk-xfJi5(LW;Yh11EB`Kp+}sJuFhkd&2YgBJVI0Pn1hj5DtNiSkpu4wuav#Lbq< z%kBUc?=w0rUf=iG&zWI#2ik51YPRu(O3NBs{-M7@euf~CFoa0|Lsaee)GOJ>ea)iZ zkD($B|I+*arCupzEaSLs`;KEa|e&U$(|>EwJhPfbTN z^%IkpLy?C*9~$F1d^~9x{T+n_Br=V~eA(~MvVO~Si^hetKUuAK_uUJb=eM=jq+3$zy3INAZab-~22@XsX=Oru#yda|5|d?=Bmc zo|6t!;>nD+PHp<5)q6@HH$vFE=ZfVo`BYuNA~%@sg{S%KR6uTEqE$glp?fCt?(zsp zDce8w`pWL)ZL5UL~_p#ybt%P<|h0r2l)REG7d1q6!^`g61sBDu=_j2Kv#>qtivJ_@7E zry5VzExfKk{xtzP>V^joQ$B%FR$I|_wI`@mv!r#WsydCBsaujfyUF!e<^F9*^VuY%*=ejWs&|31v9zX zJ%V|=iq_@EK&%p214HN2;RfFiU*fW(?jGsDs@;ygBe57=4^qIZ$kOnSDR1*zvgBs} ze(M^ky&04Gr@enptkatdE6SJ)8F!||JU3xcP*MYAWTR3K=1cNqxgA+i^wn6pE2mJ! z}i*G1>FM^Nm6r-o_B5Eoz$Q9M$!?|*M$xGzc2+NScZ=q%Jr;1di zb*RoeEb~?Lj)Sh49`<`i#rATrIBAh~aN&GPLnn|wg)0J@PHbSpng3CIn?Pjce(#TE zXYde2lYY@sd4Xec=NCS(>R*qMm|muFE>z9m2(jradY9(gr(tkfaPGoAf(G#4m_{{Q zb4;_kWH+aMi+pft^|#R;U2X|GWbkjWfXf59dF; zr z=u}^Sp&zka-MfFZZ-d~ldK=*onb%$Q>CF46cIFogJzaytOh|o*muwXk+2#cp$$Hyj zA&9;J(BB&d!OuUu|5?QN6nVEg^+-T>-y7m)l$)Jp3YiC(TvS*p?fVv5;7%y-b+Kjn zXILz9o23H&+cVKAU*HNpae;~zs zbCq$Q$yLS86Ve45-MlD6qS3QhprrrYTX}S6p4rzT?$t=dh&TGn#vv`aLOh(K)|6AW zUQBdWXIR5|A0i#xD7)3IF{FZ#K{HLcuEdfUSF|N3a3WHyg!Y^N9umJNT-zLQ&}G;o z{h>xO=lS-t0Cg&9_iT>B?gwZ1{j;4Ubpt7=zAQltpqyX zMWSm9dMydVG)LxsdLkwN=YO>t%>?{MLsns_il55Zt(SuO{@Nz<%AHgG#i}fLm_@JJ zlSf_(ie@hM;N03mK7sty(%b#KEblHZja_v`P(2Lb&+pC^q6M9_Apriw9SFaF8J<5i zNc&3U3Gg2?Jz6Yu(}#J_$(5%+DgI+~?F~s|IbE?qo(E-m(2aW<)k0h# zZxiA)776v2GUmHPMpgj)<&dp!0f+49@SR|q!UfwP(0}0hN8_^c9nKcGpU+9fs)J?t1o)B-+JC;KKZBxdbRgb4PISG(!E~;xm*rea=hz&Y^Pam_|Jd!eIKs> z^t}{ep^#*_E74KF{Tij`C)56k*_N%B!a{4gpgk8kiK$U5$@5Do;J?)Y<}bzN7x$mZ zx7P<#r6&tc6|&rjvFr^5#4ENDw}Z1eoF!_M;``0|4uZdl_A!xq$?&w>w(Xs-M+(f6 zS7dweLd~MLarvTprG+`N&xcLgFZienf}oS&%ZIQ_QXL-*XanO!en*uxcyLdL=l}u;|EY;G<7@i5-= zugfM)8qND2Lgl+Lk<3E7G<)!}&Q1A-`YPrMlqWMvmF%EsBAn3!*_Lc6-c%IM-eDeJrbS0hs*WWc#<7@|CPInfZnQIKjZr0@`P>15 zK@;E3`nUKQ$Y*`9v}Kc}dLO!^obm<#c!fld2EnXvNCEYQeXdMDu_h<_1#ypit$y=AMoCX!}xLzT%87r6eo{XL!Q+Usin_)JjJrKQb z{?|FP_To`cnFrQ5AT=v}D{)3A4c~v393AMsRtVL z_I{_!QB`WC(cE&F&*3ElXV z*HH-gkKzFR*GFLfpiu*twg!8ORGpPDIRpG({yQqtHL(b!NCIPK2rksjoc$^G62PCR zVFWOw)eClh!>}ITA!Y*^+>FHkhpDgdin{H(rdvvcp}Qm`l-!6?HS;^U&p!KL^mk}rw?Y%B>rLj5A1V2V=1fJaqcJYS z_YaZzwNRxelI;Q+;reSUq&SoYA+WhuR^>!pOFOxv@q1#;xZ>GGsY0;bWwmDr-w z(=B3~Ccx*f#y=B(%zAq*3H1KtR=!3!=>O%8I!kVyA(((N^Fv@&@2}TcZu?-XC=f|yAKr_aq~{h0_qF;nD(w$mwh4{PwcUU4K)Xf zwe%zSkY3i*NlJw50);H5z>$(D zMF9WvQN*2aqfp3xzo!3KUn4>F&f_<$t1wcTK}J3DjGbX2D+2BR{Qt7axt}H%4R!YB zb?>#V$_2()lUaj#C8gcBus5SvD%{640u8c;#k^COzfc#jqk{eNP6R3XLA2J?L zSCv*h-+Bb@ultv0*tmZ<&3}68GXd;BMV?3#(4)3n)_7fK#RH>USl0{%S*a5}M@XoC}^OoeemT_=yuYi^Xt!Z6*8~ z`nBc2?^T)gcQThip_~L{=aVDWsu`?}iBB<2BSCHVUqh4#bsX%rX1|t?yzv71=jbLF zI{iTZrD49`h0X(t9wMm;`mfsP=vw&vodN8hJsnV0eNfrk5m%qEK31zFNO=nkXYW!%Ritf6|MT%WP??<151;_yX z`xD@Q<8Se&`sPmAM*#k-{Gb1E|L1?HwkGpk!2fiWr^?~_SNkszf;us^P%&4N?F7Pc zZfK8I2MoT+?_iNjHO$rHB?;1tgm(|GsQh|sxhWr9)&4@&Sx6T6KS7heOK}ht^aQP9{9gRrkaS&Ho;Ukn13FE_xZ6Po^-NtrPsD@DtS3E_9+-P$5!GpMl&;0 zrC0kIB|$x0DiTB~cSbJo`wKX1eRnJB?$pwxZ?GjfZH>PH`?C(@Vp>y)Vv^g`$vl?y z{Np4Ai?bLhn>Gv@$cEtdM2F*zEI=}jN}eI-A(0G5C6&kcqB^FRHu#s;128j%0Kl(JGOxqoMs zn74cUG_oA|Jo-6>GxBBgVQT5xQM>4+9~h(x#u5B*swR<_&=PKfAnS=sYq1P?$BdHK+A$$ z-KwRz+i?s$4q`#8%vU@fsnKzlaxav&7Ix`S$T+eYvqKtXMsU7H$cA+Uy%`Yt4&om% zLWb+?dS4X$_kU1QHkMqP{#9wN?c`nR34VV;8cYWM`~6lc?bXO6Nn0Al5K0n}Ht-rC zrct%G_Cb9X=B3k5URm3rZ@F_-4yj#PjJxwQ`*Y%Iz#MJF&GoJ&6LY1Y^F=q%5B61; zC-`Fw2+9whqV2s{Ox;2ZtaHzVt0FYJ2IiT-_s4dB5Ol#)E$5^Nr=GH@6X|s9iM5R> z?s~P=(I%Aq=>>TOa=pdpRrvp}kM3n!-CcX3M|)K8e%b@PFTQo_b~yCv#>OBE@UIa? z{&e^2WkOlB$@~@Qza&8aB?0i?FNg?1OF~+x!@rX4F2Vj2Tz~MSRemRoOsc`s z7>~G?P9*%*$cl=6xaHdtSim2S`v`Mc zHHux}f7|n?>=Um8T0VBM=q!WxnJ+sulEM7b6TIJt1@v!0|9^+hxV#iceG$1VLOBo;YaLZOj+J*} z+<(!&u+ej%A|_)sd0JB67c%xs-j3-|@l_zd@(xP%G~-2KjikJf*AueysxyA$*zrjr z72Bx;nz3a@uP@R$#icUK8f1k+uaf2V0Xg3|`G)&8DYVnYION+bnxlCozvId1^G_r! ze^nHj2oZkLcfD@dNBBLce$;78#-H4|;C>&Py|b>-z-GD}OM@t$whR5!EfZjQ)l4_|zkoq_&Wk?K|CR5~*reUy$J^)#@54?D20` zs)w^SV-T)E8aJiWri$LCA+_fd8-DdT>0$o1K6C z5UQtQmQT9_=fB9wKkP~uv7vXW2;W+MH_C)cZ5B#u$R1`a3bN_z)qwhE2h=~5C>q$Y z&~KJhOky2tApVm8{)->5KVhqYmPufL8espR7}%e23pAnZgUP%B9?*X;0`(sPAw3qJovEZfiYXC5IC2ZnX)sU7 z(ws-hdCZ5c@xHVCR6Hg6pxXKKBv$w@rZgzXX*J(OXg*-cjaRosaIL6=!z`$ul||Q zrzm6?Qo>~aU;OXNhK?%XSceFA4Rkp)Q#IpArJ8-ltMA)p3Kw^zZmx;TA|QzQipK|0 zlxpEfMy)2$|GNL#QFcG`mn7X%8dvaqTVNXZJHJm;b{3|7+*1ucXH>zmB$9$yEFLr$ zHPOwJC6#$ONA}H8Ci92uN(NnE|MMOA{yJd(5d^;fTcAIv4d!1tr>g_a67mB=TT)4f zFYy|zmP86Zg8oAh@DI%a|8N9+|8h`&jJ4~#d{?A`Y=HVh18T&Qa8mfuJ$mvUVNrfK z>huw3<>PBhi!ryq?5~+9xr;J7wKRS}RG8%!^Y9&kDz+5gkkCvgeFj69B)EUs*7;iH zyTV8E4sd^@1kB%7!2U5iSjZ0n`uhvO{;0wGm!SWV0sHs#VE;ZI?4O~*`yZhHgk>JW z#4;Del04t~#QbC7d{m=O50?bXR0S&jb9bp|IewJ+2;v4?zP>tLjV(C;Uoyt=wqk}~ z*ZMxX-asTql{Gq;vqUvun;;WL!;Av>S4)>&MRde9KW%~i2|H}C7NwEltR`18x@YA` z)H+G-dqW;r)B32qjdGeB($w3xN|9(EkxUaN*81px`tz;Qvse0LWT)4N7r$R9yL^^3 z(}4(93<%0&E&%?M=6;Q$H}+%j{i#iRH5H2&zbPFfReUcGpje$t0{fR9wJFH!tla^U z0wc|Km6q+^i;F+I+?eKed{r1Sf&Nyu(;3jeZtg#`hw~3(WSlg2jG|e^8I3USV+Kir z+V<~bmUy&H{g4t*d^ff3{yJWAT|y}YD`In$j#J6qRAd@LOb~YMA2)|i*lkAtAYUPS zDX7U;+v!j77CRwbF9vaRMg6K8&cC^6vaK`?@G3qPT=S(MY(eedwHzseU7r8><_GCv z&7A)6RY!JxX+!4t?!%a8gDZD*{ta(%_pj|EQixO$ zmL>5~Q~dS{`VmOe&{^4v_1Vgzhe7@^=uxyV$S{>SP!D)9w@T~3N5l+OWz`F5>Utvg zk&c_St~Fp~25H$;Jhz)L6$X#Lm~u-4^dpZ^A_6&#-Vk3WB%H1u*h*z-MjEddy!b3< zZnSb?>C&EeuZQsw@SmhW{ckR(MqvixZ#1aC4gb@h5eD)1JE%Wo!TnEP5P$PP{3QYL z_W|*L{Et|Ge>qxAw5Y(D%KNd)(wM!@^Mp#Mm4TaDnI?)>7943R6$yKM*RbGC72G(B`jDfq^E9YFum(6i;n zbo-67jn-n?dbI2j)v~Mv#tL2m=lTvLNwG;0&7>vls=C9?Q00 zXTBw5TWyY0!Y5(Q(rU|pBIzKCkD81G#z*g@y;v&MZZ#aS?_X^)E{vpU_p<35PDfl! zM7nvKEx}-S>ks8#Jk!!f-4VZ0Vp(^$llm`(7B>P-bU$de(oS&1zW8cIDk;rE?XgjZ zjK9p5eaWX6;at`ggrbiR=}oW#{qg!wGGVhkYowB1s+hiGx@Y^+Se{mvw;7II&do#XNY#cT@faWdFOnR%hAN;#%@x> z2(w~w*7lu#8%<50qKT@FpSWY{HP60E6cDV49BqBTvrIIj8(6Z&&a%FHDOc4lMK;dA z3i;5eGe}b-^AXn-OD=w0T#LN-uLHlze&JuIYTLf>Yaby&5@zhjJO))VzAq-xL)hpz zv_|7eY;~<4-w=i1X-72S;LBPtAGNiW`O;e2fci&1(UydvGcs{Q(Y@KkW5J0}=EuU! z1cc9X^H5o#+q%Uif$~qzC|m6T)L#{>k2tt96XRLiwvHMnYY;IU#ia#yt$F zihW8}U1OIj`*?iib!=`N)rg-(SS;P5F)UdU=)Y=RQG`9x{3MC|bgHQIwk|~Wh3sQi zPMu7ym=Z0s;Z9?Bjj5_C(`6UrK>x+@x5@lLZ8wwY*hS&s{`Ycz_Bn(V+f@3F?(?#a z{7(FlRD+d&(!@C_e>fQ>5O(#l_zvfPPZqjhwnn!ylc(6Yz|cuT2BuD_R#i0`Xfqmm zEe`gyOEYvrJyP-#igt>*{Adl+QCMkzJXPQsmLnSOudGtRZMZVI+{jg`j8+ql7k0*8 z78R!tYGu()`jeY+T_yYIX_a7e^x&xCj?0eu4=Ya`Ijv|>EiyvVQm#|4O&Mpd49Y?q z-^TahZ%D%ob~%9l`JbsUTJBb@miWsYY8R5>2%1Rkx7+0J5{kk5-v9T$qR=q3iM!s= zeP^n=)~>^G8fMX>xfU(#)pkP^j-d0E_jT3|K{jmOmFcGK{jS!vwu&=hgEHIuCX7c% znxgIS`LoFFd&CN`e=+HyCp3$k(l(&j#oMf`jB+NMOGkRAS)D42MP_b*XByW2*U0TB z*@zU&W!2>?gA_(vZhI!#M0}~L?oMTQ1@vlZQ>fK5rNdo?gJ?ky4sRHzXK3>pY&ngo z5X`@^tee7S2L^@?E511uX}&V9p13EIOQY!Rbf9JTT%h>Sl;JP!N{Vz3`2TJi+sznl z#$8h}HDeNtnT4^RiA{Pr=00Vp@jH*xW!6DY(Vv>D{?otqL(A_l()&v)_e_0ywc6y| zo_E;j9BI<;p5*(XQip_7%i5{npiqY{tlnv+k#F-!mo~~+W|Ly3RVd5SIIrs}o9%ZzcA)44$#3R&HH1n-u_ex|7m@NqK^sUX#gwhN}HZ)2K&s55~6 zG8$T4?}(_PlEe|khVQ?J0sfr`h`*Ge{%HpF$1_lW2vKICKY;qj4#Zz1p%A2uOTd4< zQrMpV_=Yca|4_%ykMO=?=k)hyr9j1mpX@r`WA8rdG5At%QJl=^iP%7$I-GD!5tj(& zt7u%6j?pSHK>e`;^vBTv{#y4Q3Ctglb6NgM%DpaVS=g^$lhA$)FKPO>v62tMg zV6cDdHWtel{PPr1&)kuO6B|(nX)4w)d!}!|z+XjHh;2X4JzYhoJI%0*6^AZRWeZWg zPIy7FU#Qp)n%adJPuADc83yL1FH-sBJR7x{DIhCXvdT$*KOnAoTX%t~ zc3zl!;c*oTt=6SfPx&F`m% zes;1sQj+ujimD%=RaG65d15KbfPdXO^NMqQ^^!5zky_*Bfg|s=yQ&oJj#01s8D868 z2yQra?>AH$63dYS*yLFucwgy|W?sxyU$a?U7Gb;SeX3ZGE_tj% zyQpORuF;L<&lTSl5v5nqR~g>X*>QO&ZP>H$e&|L5mb() zk|fI8MXMgvyc0Y9Wd+`Y`oprF_P2eaAPG6@#su%Jc>pgvE@A-I32 zv2}9xK9-MC7c2E;v!^>r%LttR7c~ANv%Kt3YyHUA7SW6a^gkJ8?sN}iIXV7zUH(?k zl2N6?qO#o%ws6LwmzYmpd?^`yeUO8~THj{B^{tj%tmljTa4Ug+lG7}zc|ZcMsL%1@dx#Pl5hyp0JuNk@E`x&(p8Nj>wsYD zJ*dBwodQ}Yd%*l1y#H*pLn8p-FWBJy3h@4o0#y}XAE$uhY$Kod?CY=8BhoQdO1N`f zXosdEp#R5!$+6!eW1wEFvT9*Ob*m&W$W4aj#s_RTf&rQHM|sMAL%nKcj4Ruz_q245 zdRTe$h5i=V1C}`%Da_t6b(wX#r|2?fo-~3;kk7#x+#SCId-{JoF_ZlxYb7ySX*?-J zd><{?%OK#t_j6>c@fF`Lff+1INps%M);qZ4&Byw-zls@_k>UmPe)zeMKh)|R3OkNy zw7kvkjr5MMMM%&g>+n+xO?Xs=N9*+Pm(o=7LoGk>zlX2!$}>8bFQcO>$M-d}$*OE}kT=Z9C>p36~f&OQo5lH&0<{Qt_ zxS@g3{EDV-EKksve3H0)$)c5r$CM}(Gcc!RF~5iDTR_pPr8MUiyDHPG5vNMIf>@wI zvkXR3MBgquh0f_}vPw`=$^HyvQ_GU(u%#?#Jdi#c$EiR>9OygT8j4S(A6X>78@F2VwxRI$FQ@TgfSB>Xl4Gjg6 z=!SKyARj(wIn>#2@wfBGDrcrUy()VyCR%u1CV^L_XoDqLqC?clJy{~S_vKJ|n^gRK zO=DvvH(8-Z7WZkY`lhBXmapw0sB`1_RoCvKl>*G z{BwB!ZwBzs_Xms}w!r_sgZeB`5giZsfLLfyrdB#k#Gcnf5Pt{ zkw#XvGlBef2>Ne0|0?>97_wYB%iYl8xK>D>`@*Uyvm>}st7iu}2^v&24{fd9;3};t8Ex7*bdQkV zP)K@l1)-H`pSgcug4UfHHyI%H*CcsN{(&(lezXb@*{t5C4rgPcXg-eT{9bTGew?_O zPPbw%OG6#u?NZ&KCiptb|11@e5Ia$FhwA;}lRMosz2S+M&47RZjLp@`s6`xG$}=*{ z$^Xw{&%hItm+heby<|ZD!{dvvaYC2CmwymXi2fxuPKxK0Z_*A1&-o21#_o9h6`+?6!(WR!5O0csi@XQP?Z7}hQmCAxx z$^v_;3+z8c{i#uu*DG9a8IJ33Fho%9I#Y3>4o%d(Pk1VnIq5WwNNQA;Nu6#7K@cSz!yEP(N z==%kP@2VP2f&SZ_0-a6qk`PUEAo==z@%4n-JCqg5Gr+&X!-%nHd1*SC)6TK}o!jB$ zsiD82OwUu|n8Ef+nltE7KV<(|rwVIXX!4p`!WwyEdSyI@NiEsO;IaE^szwZdZ6jv9 z_H$CTkr%xe_AGrC#KZ}6rwa>g?_j)b=dO@uj_Nkdf%xpTm(sb-?kThRRKXjJ5o+Ps z6!FH#KTe@%RQ6SYmqm805&qeccA6N^!Vst=-S^qV;y$)3t4x$dcd#We4nZ*t_`ZPs zZ}*Ydc zV>Fml*QCMz=Y(G}KA+;xY^0zTKPS`)w~J?TsaeSE*FQt)u;jaHX}$0K`N94_Dds4~ zr%S%xlsw93QBi%ppAq)nYlf+k1&ZXvEj_BnkIH%3m1}DrJ6lF2@)pgdz)W3C4;d-& z?B{da$f|&JHwzOme{GLW0Qt`o%>OMu{?Grj0RFcN@COL+|Dyl!ha`ai{RaAf??L|k zzx#VqApd?JT2T?Uv+SJ!`fDq|{~tj9g@XKx<3j}@2KwuLApb%D|9&6re_6SxQH1^> zm?{VQySIRU{~g4iZh^Sy5x{@bZ-yqcg8XX^=AYvr{xBgiF5B`WfcdW$;}s>if2`VC zt8~!IJJ)cLSM{@aHw^Uu6u+#(uY8fTtw^lK!>tQ$Hw#?{tJf3IC^h|DYAxc{2c|;e zG438rL)}!%k_8VqL+t5R{Ah^pE4R<7y=akAg|S#XxdWa2DP{~o{{hz@Q4lgnhwG0V z*_IZ!m+9pG^S_Dn`AkK*)K#=PvW*@7+^XP4EXe}=tZq0Vr% zT6gc9uNz{8PN1J7x)`r{d=)ZY(SY$N_89g-<|Ml#1V{a&TT)8)w-m(r-^u~0f>?q& z@b~}B>^W=rC_-yBoDQ4>B;^DR>*M{tv}y3hJf2n{>bl;6#6fc%sWp`jJb57vFe-YS zH0{U$yvENV72%{)Gqp-|9tzQfbqVtxZmTWy890z=!`QlZvi{)AV@1KYddOke{h$F@ z`O}i2vG4l8I+e?n{>DQJTLOpmsg5d`Kh{hZd^KuhSco+-V}nx37|&Qwl;Q6)x+$*S zy>lg#1^mB8yP7Oav{bXTzuyC;xtkEZmCba85|0K9M%a2o(4Tyk+kBv}Q61HN<^sR} z%^QXa>VIn9d$ce?`YG?D!I({eKQ2bhWDLr&Dy-9nj_wcBUNQV-P^a_snR@gqh^{Md z`-^je_?Ydr!(+?HJq0a6vqIG6W==@(H)Kks0incnyEv4YYJuf#fdBfo54KBg7EuBJ zqX55Ox5kYDUjN5A^?Xv%>ng!truWv9*~Cf5pAOUL zQ1JXW)=MLxHLQq?z}M2Dr`Hi=5aF^A8~i%X1=-`pCGfv^e98(*cb1?}>7~b2z2Ct6 z8};d1_37X_PWdhvjpu`^vFINxvF!jJF#i|KCMC;Ltjg?`HFisbWPtgl0f7H8g8dV1gMgMfFn?qL`Bxg$zuqutLJIIdDNuiIgZh^m z*gpoa|Mo2{MiG#I(SZK>CBWZF!Tg2HOS*xp8ZRlHStQ)4e?>(q#B!54ysDiX;C~jR zS?J%v{w1{}737UT2vQc%UwrWbW{3;!57>eEPba8<9RUC58+c!fg~dw+{yyLz7yQXO5v5Oi&7%Lk4t z5w57zvRQ8GF0Gx;FVO${{-j}gYK?WR9qXH-Txdlg*$FyyR@3AgZc}9t;V^@ zieroWoJjJ7qxomDaU^oB>x6czc~7>fa4ON++Zl(Lj>8tl(E!Y+BoZA`sM9zF8^^Loouw2IhcQR0R3tIfe@sxt9mT;p#QO$y6lDbU;04* zyz=pLoJjPa*rKov$YG{Ir@s^~X*?DADGbYG!F@%?a~^YHhikMUSaJ6;_28X8?&MHyIhTab2I$>}43-9X^GC1d~1vX%X1f=5ey;=VO8kb*SP~vjNj*_N}LCXf3BAa+X6DI zSC826JU<0L%~|q1==5xI{$>T?-4m?6712Fv;DmmxR*rXu z%!*>nMA|6W)ZcMAFhEwQkzQJ6x*uf-bW1VyV5YhD*CkHfM zyxmH6y3(c1@W=k+KA%;Q@f8TtZy)K;HXzdG&6r4FEtOIk7a`^bpH66Jp&=!GQCpBX zyK1aHU?C(~{hK=EO^>NzK_WGsM^6UagF}FX(UF@*NzquXZx{u)>iD7b!)Bi>8HkSi*@%+72!}zv;^RPf@RKwFi4`+hNk|f=7cA@=TlKqg<^%% z9rG|KD z^Fz)Y=mNGlLQ?tlif{&7lRbJ%GwIIz0S%>6*k74*D;>Qn?66CBGFPhWhd%ibti+kq-w?V9EU~fB6WB*V z+WXQlC9E58e~{%>-_t3tnA0OiR##N|^~l`TlMd&3GIfe74c2+urdR&6Gg-*I{%@8o z!m31@xfMR{=6&9~|3m23N2V0l@k4f|rBj;8)oV@u?3$(G@*)LQigB|Kwp*RCKH^MP zs^2OParPl?N_wRKtKlszLZTjSXiBPREO(P{SgS5Y#Hr@f6#TR|p|aBQlo(WA)3haC zHIp(GG+uNIGRa!Z%-xJHI9fNopFT4!U`jC`Q_obChgrT56U7|KE71O>eg1 z9!VtePt=QoxP)czA1Q%kRWeeJvu`=wR1ZJQGq|A%$e81=n_bk2;NLqMK)R0>ERT>S8bc`ClVX40h8T}L5djU|a44Wewo+3M)_0`QMuoOO{& zYucyRe;$$L>)ZVt zDtWC|UAK8i#~DUX5B7fy>7~l%MIMU$?ABM^m^d^0xW2PDmid3`U%W44y0OrcN8&HU zFY#S^$3eI4l8$S@sN^wn}?#QzE+nsY=F?0=++kn5`UZS1Wq})cFy0p<8 z@lc~q$23L1ir(_3O7NsnK;-#r2U+hSO{Vo&BGlvKq+Um^T zldcc~%}7;zd`W`(26X4k#B?(?#bfj6e3+L7$q&Jmr-~M()%Y@%i=X$ldEYJ&g4EPGa`cjl*OjMN(_rnuLnw4`%)v@cy^C-gYY$d!R$y*}&Xjf{-p5 z+tDwO*3E=Q@99Nzo(h(pxx_CyD!+FzlJyNZwPwEF0IgA;joO)0#!A`)d|k6Pcm*ysI(_WK&znJ6}|7*PjVMf8vN8`6gCx=RG6nKXgI; zX$AN4d{yv0`?@|xoudo2i%KM1+mueJl zyaY+b2&eX*Noz+8k{sfK7X1BEQhNA?k=-8MQ`fQL>BcBC&>#ItqxZ`b=?q_4E4o!A zy(4Rxn8Tan2Hk^S5@8C?)k#?rwP6DNagn0;;QmM{gKyG6G~Jn8t2fYJx$Gs+FN|VN z@FSI+T1S?@6=&6%Uoz0^^B5stR2ybk-J*TdpZm&kNUgd35hD@91;X(f{Vd((6R7-U z$nsw&p<$zM>QVz-FSwVL&JZesk$!^yH>0~c>pj|_`nDyEdPP6P#ig86jw9*A%Mg@e zor6uGY*F%9+on(Vg;($TFGr2Ao@%&NP1~zIOuhB33fDtP#2$QN(w3EizED@;L62GV z?6DKapQ8Y4&VD!L>V!BAExHaL!w4ylDHdCoAam;5mxEKqh@$t~$+P-azrX4v?dFQG zCbrSva0~9<>*>st7qU{`eUL|JJtnXmMF9Gjylqy#MNu*t3k3(>O#@jdrSt}|n@eGO z=jd-~7Jl2Z#IR-Nyz13{?rGPvs)9_q>@$6e;As}F#4yF_$r2cCCyzMPdFd`CU~3|+ zZ`Z+Q&@xExZ$-4R@nIt8VXiy(xT$L!TEh7yYD|bkEUKb7rRJwuLrlrEqa3S9F@F6L zDtEW6Wx>mF@h;py%-`x8nV)KYiGVnA#HeeRMRf+WjwatElK405-vj>7uxmCKU#5Q> zrB#e`H#aNi1M*b7-_7D7xw40pNL9=1VgK?8&}UTx5F&HVYA|^GuhsD`i4H5 zA>{)T?(a~b|K8)(D@`O@cu*}?0l8l>6L0fP%8RPa>=U$AC>DseCv%lYtQTKI_plJl!*P!DQpSxI9BR!`QWoJ0I9zL0UjMDLadf8t8uwm^(BiG(h|Z_Ad|YAF+zn z{a}Z2S?xDM5ZwNu2gyMH5@#NMe~>Cre!v#7_2mQTzZQl?!iRBJ9HV_KdnKx?+T}u> z$r32Dn900!)$tZ{)i;a8pq`~0rr$sB+jGT942w=828}2L*9R(iI2CntoK)nnlGN%X zlp1RI0sKj+y|!9nK7}YQY}VSbgFPd&T)Xt*-2^#bt)2@lGyMK>>5xwNF2Em}XiNeB zh)V8!XTUA%_lkp%vT_n0ZP}=pMpsX*fX&ZGWyb1q=44wqw9?mz0RM@>hJB?M)CT(} zQI^s)*a^kU4whqA6-DycT-tZTaL9yhz|Hy z&vy6fA6xy#`PDGEw%QRPPnwSV>(>1lp5-o|Kqb|M*T4B^4$RB2Pu7K?ec+Kjxt9cH zP5bKsVm|zraQw*vtCQHUck|xUPGRi?id9igj(?l+Dj-c1^LNf`)|m3z$>pyL?wW~p zCf=!rJj_0`*&5*Y|JYE(3431K4fUWLiA>;T{BTri`*OHDOn#^jrrV428do|hl;)I+ zW-VPykB}2kDV<)e=FEax#Lc7 zTrnT^k9)5)H?2!SHy#&m5ZKw7=N~1r&E}Wy*nj-xJ;J+=wW_wQ*ElxZpVwZUwRI-i z<;!6_4Iv8;?kHjB0z`WU3y*g$zU%vkgYt zxqA9rF{oaDriW&k_|4_=`TUf6xS5~cpnK?+0nH`Hp*Y4BGT&)WhoMFisU&loxqbSw z$eT`7{vM&E4*w-_6YMzk7y0qNDsGm^lC*7N)%j+dYXgx1`6b}~g83)%hSuQcDC$mo zV$_Uxfd9wk^y!an4U8xA0%0DiU#)EUuz8vuszauSITrIRAfN%u<(oO-zxjXp%K9Vz zOULm#TVa06%uhFZHoxh(s$7@8;v2-c#e48~^GxONil6`)%+q&i6jCZ@3g;j4=-9*R zc~5|Dr3{wEBtzd-&`2mZ$b?#~DV{I_a|vBUE} z{22$}U)KQtx(4_&Gsr*ZApblC^WQy?e?Fe9sC)wXhZyuOSZ%iAIG|cEW9`xLG=mvI=@_9R6X^`h{}Wiib<6l&Q^6n8VbxS_*h_bC z{ogG}&Ip0gvIT$JU4<~M+uG?{ULP8@%wmYM8Y0UQinU+n`08&g>#10wmZ0O0HvOsl z<`!-&1ZXBdT><{Ygei_h8)=;R9^C&p3Zwm3|CwM_AX{b>qMe;^_mOg`tRiZC5TXU| zCrg~PeX8bD=T2-3kmaiS)gURJAGPqOTI4J9xfwD(;6LQF2pIQ9{&mT*&c+}M{T^G} zLN%bqcL4k!F)j88_F<0c!^qXtpoA+c0UFZJaLfHas;Tz2#+2OJai!cgb95(-oJ(a8 zlcN$|0sh}*4gdcCkC?9i{(r5#Wau6Pb@aa4-{z`@CwaL*|Ci-+vrAzp^FHYlA?`Do zIk7Op>Vydox3wnvY#j8c!=$Z6UrkzYf8`^Gpm|h2%yX3ZzF=)yL)gZxk$c;BU5o27 zAYSZBka>hV>_i@$Jxqm}yQ_eHqJ(h%|6hAWr00cQ<3uEZ<+HlY_u;) zU*X{);}KzKengHP`Q=<@nlIgy{*@*BdY;tBjr)*B@?mEdDYOnS|FHu0&k68fKVbh( z;Qn$e;6Ge}`HL*be+j_<%mDs~4)DjzhK>ev900$^dy%hfF3Qr+9A(^;)?RRzgmF|`;DEF_V4txCN>MkAsI~9 z?DkFwpO@RmJx)fn=qi@WW&=vY*yi~cmN);tztO8;hX8aM5~nOsFgt4ev5}(J3^OJR z^vY%ZO~rkLwn0xHVALO@$#ZCNc(0Sbug>Q<7MjrtJp~IimSFxW7EzPl4E(P<)X=Nl zTrJ&3IGHFTLJN^$nydFGm)y0c$cs{-zX_qFDWk%fNwduk-E5HW$fT7{4t(aZ5E9OK zn(cr^$i?B!mm~GX5nRNRYT}K!pz_hnkuxt?3kKhxe#+=-J0_3O;?JQ@wm%z)|3em) zf9iy z2K@h{5A$uo$h4xxvIPEJ*-ABtKLIh~S3(WFeA9iD4(X&#Smpg0W&tUDC2|JcUDJ^7 zlGNVI-k-}?q$N-rL18LK8Y1#>1sEVpn-+pIhCkAv@K zJn;Q%x!&Fn%M4j}PGpr~+$YS@zge<z>&oWu9tF_Kl6+8*!z6jLfI zjTO<>ctQd6hjk33gjjB$Qit}q+OicN9G1t0A8pfU{CyGEq6a~ZfLQ0N*{Uv(|KRtp@9K+05<&hu>`^kvg6BVQe_Rmg{~ZJW zI|KZ0`1~~op8o*;9|QPL10eqy1N{Fp=)dFu{~HVRUrnI@iUax2&_Lg%1mwS9!2g~F z`7ayzpFQxuNRa=o9}!G31OHP5`8N^x-zV_CBJe+bkbj$i|673lw@uLh^^>bp$O$4C z`IXe^R@rOPRM{UER|{N6@#jk7w}AWK?m2jMP;mdVz~O)T^YtGyjQxQ9!FU_ai@^7< zZWkJO3G9!1%J+)xU;JCu5t`Zs`~x`uP}%CorDZpVx-d~%M(~N2sW(LRnf^4adOF5E zT~%i(&E#MFm%>Cbh7ut?tj#e1{sYF(+M$&lzFf@56642rXU0#6FZN#c9ZFi6e{ zj$mZK{@e-92VU5|rFO=on?mbHqpiM*0`sTXqvns@AF1Zt?V8r3Pe(W_A?LSVF|$XE zuNQM%*iuS2Z05!c-OblCgF9nBv@7ZSN|W!%FA_^J%6%;Ijpv8L7|4HxZOK*D!q?T$ zb06@l#s}}hkqsuz!=9nQ^12Aty@gZ`2^R=!^CKYkR9xq1!L%$(rn=-Y zISUpWBj-rd>}qiS<=16L9?ujVb4qo#093TS&R2SI%Z35AGQa=fKN??O|HFT1xmCda zha?f&!|mJ-P1$Dl%WAG;NGpX_YHy2rFFA-mT&rRR`@iO^#6BBM`pq;X^aVtWAg|p1 z+yAJOh3|iW`(NyNOZ#+EWvF8J6`z%8)OEr8<;xRVaQ=VyBBYe=?55LRW1KGVnIf2f zs|%rj4LY6m*}&E*7PD45#;BYteI@4lE_|;_7MD!{^j|BDjQ{d)_9w^R=hxx|7}}K0 ze6fP18H82wJsvK^5B;&dByN=v5f0>#+jEaI0+eccESnZj3z9pl$#HZYBXstpI^Dlc z86{Nj>@5HI)8JN|$PqIv4}1F7378m^rxS_2O+*~p!%koxf+F%5pOobs2X}`6{@EoC z!^-Nem=|t-NQipxvnL|No6YV&AZW*8D2!H*2lZzk zs6Vyf_#@C?83g%{2;@Iu;D6o#|4;$=V;}H89FYIu^{*fBKl%Ui9}nO^umSvW6Zk(V z@V^3}{|TS}p@94w5Ae?skbk*A{mTpdzY64E4e=I0oKt9!l6b?8RP3^mIvhixDf0Pr z>*=e$vT?5%Qs93|qy!Z}|Nca*kgx3N;yAlozEi*9msyubg7g`TLlPKg?@Fk!pq*05 z(hY6!`g;w+pL>W88?)&Z1M&A_RalFRQs|b2+HxeXr8+bIkF7!~;2)5MNye{&`upTI zdEB|$Cnw>k;jO&NLC;&I4N?0*JD zXxVuXk6Pq(Y61Oc{m7SkziMEAMIir-1N<)^)PEJg{=$I$!TIl5!2aR*UmℜQE_&VE+6D%%9`u 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 M;fq>8n!DWpKkD*n(EtDd diff --git a/freq_ignore.c b/freq_ignore.c index 174da2d..337bea5 100644 --- a/freq_ignore.c +++ b/freq_ignore.c @@ -1,6 +1,4 @@ -#include // abs() - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) #include "driver/uart.h" #endif diff --git a/main.c b/main.c index 05235dc..c7873a5 100644 --- a/main.c +++ b/main.c @@ -44,6 +44,9 @@ #include "mdc1200.h" #endif #include "misc.h" +#ifdef ENABLE_PANADAPTER + #include "panadapter.h" +#endif #include "radio.h" #include "settings.h" #include "ui/helper.h" @@ -240,6 +243,10 @@ void Main(void) AM_fix_init(); #endif + #ifdef ENABLE_PANADAPTER + PAN_enable((g_eeprom.config.setting.panadapter != 0) ? true : false); + #endif + BK4819_set_mic_gain(g_mic_sensitivity_tuning); RADIO_configure_channel(0, VFO_CONFIGURE_RELOAD); diff --git a/misc.c b/misc.c index 672bc3a..e4187cd 100644 --- a/misc.c +++ b/misc.c @@ -231,6 +231,13 @@ int16_t g_current_rssi[2]; uint16_t g_current_glitch[2]; uint16_t g_current_noise[2]; +// original QS front end register settings +// 0x03BE 00000 011 101 11 110 +const uint8_t g_orig_lnas = 3; // 0dB +const uint8_t g_orig_lna = 5; // -4dB +const uint8_t g_orig_mixer = 3; // 0dB +const uint8_t g_orig_pga = 6; // -3dB + // *************************** unsigned int get_RX_VFO(void) diff --git a/misc.h b/misc.h index 1cb4674..ac2def2 100644 --- a/misc.h +++ b/misc.h @@ -321,6 +321,11 @@ extern volatile uint16_t g_boot_tick_10ms; extern uint8_t g_mic_sensitivity_tuning; +extern const uint8_t g_orig_lnas; +extern const uint8_t g_orig_lna; +extern const uint8_t g_orig_mixer; +extern const uint8_t g_orig_pga; + unsigned int get_TX_VFO(void); unsigned int get_RX_VFO(void); void NUMBER_Get(char *pDigits, uint32_t *pInteger); diff --git a/panadapter.c b/panadapter.c new file mode 100644 index 0000000..e45a057 --- /dev/null +++ b/panadapter.c @@ -0,0 +1,138 @@ + +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif +#include "panadapter.h" +#ifdef ENABLE_FMRADIO + #include "app/fm.h" +#endif +#include "driver/bk4819.h" +#include "functions.h" +#include "misc.h" +#include "radio.h" +#include "settings.h" +#include "ui/main.h" +#include "ui/ui.h" + +bool g_pan_enabled = false; + +// a list of frequencies to ignore/skip when scanning +uint8_t g_panadapter_rssi[PANADAPTER_BINS + 1 + PANADAPTER_BINS]; +int g_panadapter_rssi_index; + +int g_panadapter_vfo_mode; // > 0 if we're currently sampling the VFO + +void PAN_set_freq(void) +{ // set the frequency + + const uint32_t step_size = g_tx_vfo->step_freq; + uint32_t freq = g_tx_vfo->p_rx->frequency; + + if (g_panadapter_vfo_mode <= 0) + { // panadapter mode .. add the bin offset + if (g_panadapter_rssi_index < PANADAPTER_BINS) + freq -= step_size * (PANADAPTER_BINS - g_panadapter_rssi_index); + else + if (g_panadapter_rssi_index > PANADAPTER_BINS) + freq += step_size * (g_panadapter_rssi_index - PANADAPTER_BINS); + } + + BK4819_set_rf_frequency(freq, true); // set the VCO/PLL + //BK4819_set_rf_filter_path(freq); // set the proper LNA/PA filter path + + // default front end gains + if (g_panadapter_vfo_mode <= 0) + BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); +} + +void PAN_clear(void) +{ + g_panadapter_rssi_index = 0; + memset(g_panadapter_rssi, 0, sizeof(g_panadapter_rssi)); + + g_panadapter_vfo_mode = 1; + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) +// UART_printf("%u\r\n", g_panadapter_rssi_index); + #endif +} + +void PAN_enable(const bool enable) +{ + if (enable && g_eeprom.config.setting.panadapter) + { + if (!g_pan_enabled) + { + PAN_clear(); + g_panadapter_vfo_mode = 0; + PAN_set_freq(); + g_pan_enabled = true; + //g_update_display = true; + UI_DisplayMain_pan(true); + } + } + else + { + if (g_pan_enabled) + { + PAN_clear(); + g_panadapter_vfo_mode = 1; + PAN_set_freq(); + g_pan_enabled = false; + g_update_display = true; + } + } +} + +bool PAN_process_10ms(void) +{ + if (!g_pan_enabled) + return false; + + if (g_current_function == FUNCTION_TRANSMIT || + g_current_function == FUNCTION_POWER_SAVE || + g_current_function == FUNCTION_NEW_RECEIVE || + g_current_function == FUNCTION_RECEIVE) + return false; + + if (g_current_display_screen == DISPLAY_SEARCH || + g_css_scan_mode != CSS_SCAN_MODE_OFF || + g_scan_state_dir != SCAN_STATE_DIR_OFF) + return false; + + #ifdef ENABLE_FMRADIO + if (g_fm_radio_mode) + return false; + #endif + + if (g_squelch_open || g_monitor_enabled) + return false; + + if (g_panadapter_vfo_mode <= 0) + { // save the current RSSI value + const uint16_t rssi = BK4819_GetRSSI(); + g_panadapter_rssi[g_panadapter_rssi_index] = (rssi <= 255) ? rssi : 255; + } + + if (g_panadapter_vfo_mode <= 0) + { + if (++g_panadapter_rssi_index >= (int)ARRAY_SIZE(g_panadapter_rssi)) + g_panadapter_rssi_index = 0; + + // switch back to the VFO frequency once every 16 frequency steps + g_panadapter_vfo_mode = ((g_panadapter_rssi_index & 15u) == 0) ? 1 : 0; + } + else + if (++g_panadapter_vfo_mode >= 8) + { + g_panadapter_vfo_mode = 0; + } + + PAN_set_freq(); + + if (g_panadapter_rssi_index == 0 && g_panadapter_vfo_mode <= 1) + UI_DisplayMain_pan(true); // the last bin value - show the panadapter +// g_update_display = true; + + return (g_panadapter_vfo_mode <= 0) ? true : false; +} diff --git a/panadapter.h b/panadapter.h new file mode 100644 index 0000000..f6abf5f --- /dev/null +++ b/panadapter.h @@ -0,0 +1,37 @@ +/* Copyright 2023 One of Eleven + * https://github.com/DualTachyon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PANADAPTER_H +#define PANADAPTER_H + +#include +#include + +#include "driver/st7565.h" + +// number of bins either side of the VFO RX frequency +#define PANADAPTER_BINS ((LCD_WIDTH / 2) - 1) + +extern bool g_pan_enabled; +extern uint8_t g_panadapter_rssi[PANADAPTER_BINS + 1 + PANADAPTER_BINS]; +extern int g_panadapter_vfo_mode; + +void PAN_clear(void); +void PAN_enable(const bool enable); +bool PAN_process_10ms(void); + +#endif + diff --git a/radio.c b/radio.c index 3d17ac0..b48c017 100644 --- a/radio.c +++ b/radio.c @@ -40,6 +40,9 @@ #include "mdc1200.h" #endif #include "misc.h" +#ifdef ENABLE_PANADAPTER + #include "panadapter.h" +#endif #include "radio.h" #include "settings.h" #include "ui/menu.h" @@ -353,24 +356,49 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur #ifdef ENABLE_AM_FIX AM_fix_reset(VFO); + if (p_vfo->channel.mod_mode != MOD_MODE_FM && g_eeprom.config.setting.am_fix) { - AM_fix_10ms(VFO); + #ifdef ENABLE_PANADAPTER + if (!g_pan_enabled || g_panadapter_vfo_mode > 0) + { + AM_fix_10ms(VFO); + } + else + { // don't do agc + BK4819_DisableAGC(); + BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); + } + #else + AM_fix_10ms(VFO); + #endif } else { // don't do agc in FM mode BK4819_DisableAGC(); - BK4819_write_reg(0x13, (orig_lnas << 8) | (orig_lna << 5) | (orig_mixer << 3) | (orig_pga << 0)); + BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); } #else if (p_vfo->mod_mode != MOD_MODE_FM) { - BK4819_EnableAGC(); + #ifdef ENABLE_PANADAPTER + if (!g_pan_enabled || g_panadapter_vfo_mode > 0) + { + BK4819_EnableAGC(); + } + else + { // don't do agc + BK4819_DisableAGC(); + BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); + } + #else + BK4819_EnableAGC(); + #endif } else { // don't do agc in FM mode BK4819_DisableAGC(); - BK4819_write_reg(0x13, (orig_lnas << 8) | (orig_lna << 5) | (orig_mixer << 3) | (orig_pga << 0)); + BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); } #endif diff --git a/settings.h b/settings.h index 9f9f885..31679a7 100644 --- a/settings.h +++ b/settings.h @@ -362,9 +362,17 @@ typedef struct { uint32_t power_on_password; // #ifdef ENABLE_MDC1200 uint16_t mdc1200_id; // 1of11 - uint8_t unused6[2]; // 0xff's + uint8_t unused6[1]; // 0xff's #else - uint8_t unused6[4]; // 0xff's + uint8_t unused6[3]; // 0xff's + #endif + #ifdef ENABLE_PANADAPTER + struct { + uint8_t panadapter:1; // 1 = enable panadapter + uint8_t unused6a:7; // 0xff + }; + #else + uint8_t unused6a; // 0xff #endif // 0x0EA0 diff --git a/ui/main.c b/ui/main.c index 43cad4b..c55c3c4 100644 --- a/ui/main.c +++ b/ui/main.c @@ -34,6 +34,9 @@ #include "mdc1200.h" #endif #include "misc.h" +#ifdef ENABLE_PANADAPTER + #include "panadapter.h" +#endif #include "radio.h" #include "settings.h" #include "ui/helper.h" @@ -50,6 +53,8 @@ const int rssi_offset_band_123 = -44; const int rssi_offset_band_4567 = -18; +int single_vfo = -1; + center_line_t g_center_line = CENTER_LINE_NONE; // *************************************************************************** @@ -393,6 +398,96 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int #endif } +#ifdef ENABLE_PANADAPTER + + uint8_t bit_reverse_8(uint8_t n) + { + n = ((n >> 1) & 0x55) | ((n << 1) & 0xAA); + n = ((n >> 2) & 0x33) | ((n << 2) & 0xCC); + n = ((n >> 4) & 0x0F) | ((n << 4) & 0xF0); + return n; + } + + void UI_DisplayMain_pan(const bool now) + { + const unsigned int line = (g_eeprom.config.setting.tx_vfo_num == 0) ? 4 : 0; + uint8_t *base_line = g_frame_buffer[line + 2]; + uint8_t max_rssi = g_panadapter_rssi[0]; + uint8_t min_rssi = g_panadapter_rssi[0]; + uint8_t span_rssi; + unsigned int i; + + if (!g_eeprom.config.setting.panadapter) + return; + if (!g_pan_enabled || single_vfo < 0 || g_current_display_screen != DISPLAY_MAIN) + return; + if (g_squelch_open || g_monitor_enabled) + return; + + for (i = 1; i < ARRAY_SIZE(g_panadapter_rssi); i++) + { + const uint8_t rssi = g_panadapter_rssi[i]; + if (max_rssi < rssi) + max_rssi = rssi; + if (min_rssi > rssi) + min_rssi = rssi; + } + + span_rssi = max_rssi - min_rssi; + if (span_rssi < 20) // minimum vertical range + { + span_rssi = 20; + if (min_rssi > (255 - span_rssi)) + min_rssi = 255 - span_rssi; + max_rssi = min_rssi + span_rssi; + } + + if (now) + { + memset(g_frame_buffer[line + 0], 0, LCD_WIDTH); + memset(g_frame_buffer[line + 1], 0, LCD_WIDTH); + memset(g_frame_buffer[line + 2], 0, LCD_WIDTH); + } + + for (i = 0; i < ARRAY_SIZE(g_panadapter_rssi); i++) + { + uint8_t rssi = g_panadapter_rssi[i]; + uint32_t pixels; + + #if 0 + rssi = (rssi < ((-129 + 160) * 2)) ? 0 : rssi - ((-129 + 160) * 2); // min of -129dBm (S3) + rssi = rssi >> 2; + #else + rssi = ((rssi - min_rssi) * 22) / span_rssi; // 0 ~ 21 + #endif + + rssi += 2; + if (rssi > 21) + rssi = 21; + + pixels = (1u << rssi) - 1; + pixels &= 0xfffffffe; + + base_line[i - (LCD_WIDTH * 2)] = bit_reverse_8(pixels >> 16); + base_line[i - (LCD_WIDTH * 1)] = bit_reverse_8(pixels >> 8); + base_line[i - (LCD_WIDTH * 0)] = bit_reverse_8(pixels >> 0); + } + + // center marker (the VFO frequency) + base_line[(ARRAY_SIZE(g_panadapter_rssi) / 2) - (LCD_WIDTH * 2)] ^= 0xAA; + + // top horizontal line + for (i = 0; i < ARRAY_SIZE(g_panadapter_rssi); i += 2) + base_line[i - (LCD_WIDTH * 2)] |= 1u; + +// sprintf(str, "r %3d g %3u n %3u", rssi, glitch, noise); +// UI_PrintStringSmall(str, 2, 0, line); + + if (now) + ST7565_BlitFullScreen(); + } +#endif + void UI_DisplayMain(void) { #if !defined(ENABLE_BIG_FREQ) && defined(ENABLE_SMALLEST_FONT) @@ -400,7 +495,6 @@ void UI_DisplayMain(void) #endif const unsigned int line0 = 0; // text screen line const unsigned int line1 = 4; - int single_vfo = -1; int main_vfo_num = g_eeprom.config.setting.tx_vfo_num; int current_vfo_num = g_eeprom.config.setting.tx_vfo_num; char str[22]; @@ -408,11 +502,16 @@ void UI_DisplayMain(void) g_center_line = CENTER_LINE_NONE; + single_vfo = -1; + if (g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF && g_rx_vfo_is_active) current_vfo_num = g_rx_vfo_num; // we're currently monitoring the other VFO -// if (g_eeprom.config.setting.dual_watch == DUAL_WATCH_OFF && g_eeprom.config.setting.cross_vfo == CROSS_BAND_OFF) -// single_vfo = g_eeprom.config.setting.tx_vfo_num; +#ifdef ENABLE_PANADAPTER + if (g_eeprom.config.setting.dual_watch == DUAL_WATCH_OFF && g_eeprom.config.setting.cross_vfo == CROSS_BAND_OFF) + if (!g_squelch_open && !g_monitor_enabled && g_eeprom.config.setting.panadapter) + single_vfo = g_eeprom.config.setting.tx_vfo_num; +#endif // clear the screen memset(g_frame_buffer, 0, sizeof(g_frame_buffer)); @@ -636,6 +735,7 @@ void UI_DisplayMain(void) const unsigned int x = 32; uint32_t frequency = g_vfo_info[vfo_num].p_rx->frequency; + if (g_current_function == FUNCTION_TRANSMIT) { // transmitting current_vfo_num = (g_eeprom.config.setting.cross_vfo == CROSS_BAND_OFF) ? g_rx_vfo_num : g_eeprom.config.setting.tx_vfo_num; @@ -1038,6 +1138,10 @@ void UI_DisplayMain(void) } } + #ifdef ENABLE_PANADAPTER + UI_DisplayMain_pan(false); + #endif + ST7565_BlitFullScreen(); } diff --git a/ui/main.h b/ui/main.h index 875bc79..3d37d69 100644 --- a/ui/main.h +++ b/ui/main.h @@ -35,6 +35,9 @@ extern center_line_t g_center_line; bool UI_DisplayAudioBar(const bool now); #endif void UI_update_rssi(const int rssi, const unsigned int glitch, const unsigned int noise, const unsigned int vfo); +#ifdef ENABLE_PANADAPTER + void UI_DisplayMain_pan(const bool now); +#endif void UI_DisplayMain(void); #endif diff --git a/ui/menu.c b/ui/menu.c index 770f0ae..99c2af1 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -94,6 +94,9 @@ const t_menu_item g_menu_list[] = {"RP STE", VOICE_ID_INVALID, MENU_RP_STE }, {"MIC GN", VOICE_ID_INVALID, MENU_MIC_GAIN }, {"COMPND", VOICE_ID_INVALID, MENU_COMPAND }, +#ifdef ENABLE_PANADAPTER + {"PANA", VOICE_ID_INVALID, MENU_PANADAPTER }, +#endif #ifdef ENABLE_TX_AUDIO_BAR {"Tx BAR", VOICE_ID_INVALID, MENU_TX_BAR }, #endif @@ -760,6 +763,12 @@ void UI_DisplayMenu(void) break; #endif + #ifdef ENABLE_PANADAPTER + case MENU_PANADAPTER: + strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]); + break; + #endif + #ifdef ENABLE_TX_AUDIO_BAR case MENU_TX_BAR: strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]); diff --git a/ui/menu.h b/ui/menu.h index 962d87c..f318660 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -84,6 +84,9 @@ enum MENU_RP_STE, MENU_MIC_GAIN, MENU_COMPAND, +#ifdef ENABLE_PANADAPTER + MENU_PANADAPTER, +#endif #ifdef ENABLE_TX_AUDIO_BAR MENU_TX_BAR, #endif