From 6dc8c1dbd97364e2a6717da971845b7bc4786de1 Mon Sep 17 00:00:00 2001 From: xushaoxiang Date: Thu, 9 Jul 2026 18:47:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=901.0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ble/ble_peripheral/app/src/arch_main.c | 2 + .../ble/ble_peripheral/app/src/rf433.c | 73 +- .../ble_peripheral/app/src/rf433_decoder.c | 793 +++++ .../ble_peripheral/app/src/rf433_decoder.h | 25 + .../app/src/rf433_decoder_port.h | 27 + .../ble/ble_peripheral/app/src/timer.c | 6 +- .../ble/ble_peripheral/app/src/timeslice.c | 2 + .../mdk/Listings/Xinc_ble_sdk.map | 2139 ++++++------ .../mdk/Objects/Xinc_ble_sdk.axf | Bin 857516 -> 878968 bytes .../mdk/Objects/Xinc_ble_sdk.build_log.htm | 68 +- .../mdk/Objects/Xinc_ble_sdk.htm | 2924 +++++++++-------- .../mdk/Objects/Xinc_ble_sdk.lnp | 1 + .../ble/ble_peripheral/mdk/Objects/aes.o | Bin 921696 -> 921696 bytes .../ble/ble_peripheral/mdk/Objects/app_batt.o | Bin 1131708 -> 1131708 bytes .../ble/ble_peripheral/mdk/Objects/app_sec.o | Bin 1145016 -> 1145016 bytes .../ble/ble_peripheral/mdk/Objects/app_task.o | Bin 1238056 -> 1238056 bytes .../ble_peripheral/mdk/Objects/arch_main.crf | Bin 1347145 -> 1347890 bytes .../ble_peripheral/mdk/Objects/arch_main.d | 1 + .../ble_peripheral/mdk/Objects/arch_main.o | Bin 1155228 -> 1156532 bytes .../Objects/ble_peripheral_ble-sdk-xip.dep | 85 +- .../ble_peripheral/mdk/Objects/fmc_spi_1.o | Bin 749856 -> 749856 bytes .../ble/ble_peripheral/mdk/Objects/key.o | Bin 749524 -> 749524 bytes .../ble/ble_peripheral/mdk/Objects/led.o | Bin 737492 -> 737492 bytes .../ble/ble_peripheral/mdk/Objects/nvds.o | Bin 1032692 -> 1032692 bytes .../mdk/Objects/ota_flash_interface.o | Bin 1017620 -> 1017620 bytes .../ble_peripheral/mdk/Objects/ota_protocol.o | Bin 1168536 -> 1168536 bytes .../ble_peripheral/mdk/Objects/ota_server.o | Bin 1138988 -> 1138988 bytes .../ble/ble_peripheral/mdk/Objects/rf433.crf | Bin 861247 -> 862298 bytes .../ble/ble_peripheral/mdk/Objects/rf433.d | 3 +- .../ble/ble_peripheral/mdk/Objects/rf433.o | Bin 799912 -> 801884 bytes .../mdk/Objects/rf433_decoder.crf | Bin 0 -> 861252 bytes .../mdk/Objects/rf433_decoder.d | 71 + .../mdk/Objects/rf433_decoder.o | Bin 0 -> 804528 bytes .../ble/ble_peripheral/mdk/Objects/sleep.o | Bin 1001364 -> 1001364 bytes .../ble/ble_peripheral/mdk/Objects/switch_s.o | Bin 744816 -> 744816 bytes .../ble_peripheral/mdk/Objects/system_xinc.o | Bin 750308 -> 750308 bytes .../ble/ble_peripheral/mdk/Objects/timer.crf | Bin 820054 -> 820781 bytes .../ble/ble_peripheral/mdk/Objects/timer.d | 1 + .../ble/ble_peripheral/mdk/Objects/timer.o | Bin 746884 -> 748192 bytes .../ble_peripheral/mdk/Objects/timeslice.crf | Bin 1162617 -> 1163326 bytes .../ble_peripheral/mdk/Objects/timeslice.d | 1 + .../ble_peripheral/mdk/Objects/timeslice.o | Bin 1014156 -> 1015472 bytes .../ble/ble_peripheral/mdk/Objects/uart_1.o | Bin 742400 -> 742400 bytes .../ble_peripheral/mdk/Objects/usr_server.o | Bin 1136264 -> 1136264 bytes .../ble_peripheral/mdk/Objects/xc_drv_adc.o | Bin 810636 -> 810636 bytes .../mdk/Objects/xc_drv_aotimer.o | Bin 733020 -> 733020 bytes .../ble_peripheral/mdk/Objects/xc_drv_bor.o | Bin 758016 -> 758016 bytes .../ble_peripheral/mdk/Objects/xc_drv_calib.o | Bin 788572 -> 788572 bytes .../ble_peripheral/mdk/Objects/xc_drv_clock.o | Bin 831908 -> 831908 bytes .../ble_peripheral/mdk/Objects/xc_drv_dma.o | Bin 732928 -> 732928 bytes .../mdk/Objects/xc_drv_fmc_spi.o | Bin 791072 -> 791072 bytes .../mdk/Objects/xc_drv_fmc_spi_dma.o | Bin 733112 -> 733112 bytes .../ble_peripheral/mdk/Objects/xc_drv_gpio.o | Bin 780152 -> 780148 bytes .../ble_peripheral/mdk/Objects/xc_drv_i2c.o | Bin 732928 -> 732928 bytes .../ble_peripheral/mdk/Objects/xc_drv_pga.o | Bin 735940 -> 735940 bytes .../ble_peripheral/mdk/Objects/xc_drv_pwm.o | Bin 871616 -> 871616 bytes .../ble_peripheral/mdk/Objects/xc_drv_pwr.o | Bin 867620 -> 867620 bytes .../ble_peripheral/mdk/Objects/xc_drv_qdec.o | Bin 735272 -> 735272 bytes .../ble_peripheral/mdk/Objects/xc_drv_rtc.o | Bin 799356 -> 799356 bytes .../ble_peripheral/mdk/Objects/xc_drv_spi.o | Bin 732928 -> 732928 bytes .../mdk/Objects/xc_drv_spi_dma.o | Bin 733020 -> 733020 bytes .../mdk/Objects/xc_drv_sw_i2c.o | Bin 732996 -> 732996 bytes .../mdk/Objects/xc_drv_systick.o | Bin 739356 -> 739356 bytes .../ble_peripheral/mdk/Objects/xc_drv_timer.o | Bin 796976 -> 796976 bytes .../ble_peripheral/mdk/Objects/xc_drv_uart.o | Bin 795964 -> 795964 bytes .../mdk/Objects/xc_drv_uart_dma.o | Bin 733044 -> 733044 bytes .../ble_peripheral/mdk/Objects/xc_drv_wdt.o | Bin 762284 -> 762284 bytes .../ble_peripheral/mdk/Objects/xc_gap_api.o | Bin 1075480 -> 1075480 bytes .../mdk/Objects/xc_gatt_client_api.o | Bin 1049708 -> 1049708 bytes .../mdk/Objects/xc_gatt_server_api.o | Bin 1053900 -> 1053900 bytes .../example/ble/ble_peripheral/mdk/app.bin | Bin 29096 -> 30432 bytes .../ble/ble_peripheral/mdk/ble_peripheral.bin | Bin 106496 -> 106496 bytes .../mdk/ble_peripheral.uvguix.QJM | 343 +- .../ble_peripheral/mdk/ble_peripheral.uvoptx | 36 + .../ble_peripheral/mdk/ble_peripheral.uvprojx | 30 + project/example/ble/ble_peripheral/mdk/fb.txt | 7 +- .../mdk/output_bin/ble_peripheral.bin | Bin 106496 -> 106496 bytes .../mdk/output_bin/ota_data_aes.bin | Bin 29456 -> 30736 bytes .../mdk/output_bin/ota_data_double.bin | Bin 29456 -> 30736 bytes .../mdk/output_bin/ota_data_single.bin | Bin 29456 -> 30736 bytes 80 files changed, 4011 insertions(+), 2627 deletions(-) create mode 100644 project/example/ble/ble_peripheral/app/src/rf433_decoder.c create mode 100644 project/example/ble/ble_peripheral/app/src/rf433_decoder.h create mode 100644 project/example/ble/ble_peripheral/app/src/rf433_decoder_port.h create mode 100644 project/example/ble/ble_peripheral/mdk/Objects/rf433_decoder.crf create mode 100644 project/example/ble/ble_peripheral/mdk/Objects/rf433_decoder.d create mode 100644 project/example/ble/ble_peripheral/mdk/Objects/rf433_decoder.o diff --git a/project/example/ble/ble_peripheral/app/src/arch_main.c b/project/example/ble/ble_peripheral/app/src/arch_main.c index 851318f..501a79f 100644 --- a/project/example/ble/ble_peripheral/app/src/arch_main.c +++ b/project/example/ble/ble_peripheral/app/src/arch_main.c @@ -50,6 +50,7 @@ #include "switch_s.h" #include "key.h" #include "fmc_spi_1.h" +#include "rf433_decoder.h" /** **************************************************************************************** * @addtogroup DRIVERS @@ -268,6 +269,7 @@ void board_init() chx_gpio_init(); app_key_init(); switch_init(); + rf433_decoder_init(); #if (POWER_ON) power_on_check(); diff --git a/project/example/ble/ble_peripheral/app/src/rf433.c b/project/example/ble/ble_peripheral/app/src/rf433.c index 113054f..a37c3f4 100644 --- a/project/example/ble/ble_peripheral/app/src/rf433.c +++ b/project/example/ble/ble_peripheral/app/src/rf433.c @@ -1,4 +1,5 @@ #include "rf433.h" +#include #include "xc_drv_gpio.h" #include "key.h" #include "led.h" @@ -6,11 +7,12 @@ #include "switch_s.h" #include "timeslice.h" #include "dbg.h" +#include "rf433_decoder.h" //用bit表示通道 #define CH_GPIO2 0x01 #define CH_GPIO5 0x10 - +Rf433DecoderFrame_t rf433_frame; uint32_t receive_temp; uint32_t receive_data; @@ -23,6 +25,8 @@ uint8_t key_state=0; uint8_t KEY_STATE_re=0; // 长按 uint8_t long_flag_s=0; +uint8_t receive_finsh_flag=0; + static uint8_t power=2; uint8_t res_data=255; //433返回的最后一个控制字节(低八位) @@ -43,6 +47,12 @@ uint8_t flash_ch2_state=0; union rf433_flag rf_flag = {0}; + +#define rf433_long_time 500 +uint16_t long_timer=0; +uint8_t last_H_adress=0; +uint8_t last_L_adress=0; + typedef struct { uint32_t KEY_STATE_Click; // 单击 uint32_t KEY_STATE_LONG_PRESS; // 长按 @@ -305,8 +315,8 @@ void ble_mode_scan(void) void _433_fun(void) { - if(Key_TypeDef.KEY_STATE_Click==1||KEY_STATE_re==1) return; - set_click(); //设置单击长按 +// if(Key_TypeDef.KEY_STATE_Click==1||KEY_STATE_re==1) return; +// set_click(); //设置单击长按 uint8_t ch_mask = adress_ch_flag[adress_index_ture]; @@ -370,7 +380,14 @@ void _433_fun(void) void scan_433(void) { uint8_t i=0; - + bool rf433_decoder_flag=false; + rf433_decoder_flag=rf433_decoder_get_frame(&rf433_frame); + + if(long_timer>0) + { + long_timer--; + } + if(rf433_sw_flag==1) { rf433_sw_flag=0; @@ -385,11 +402,19 @@ void scan_433(void) key_state=KEY_SHORT; led_state=2; } - - if(power==3 && rf_flag.rf_receive_flag.receive_finish==1 && key_state==KEY_SHORT ) //双击对码GPIO2 + + if(rf433_decoder_flag) + { + adress_H = rf433_frame.addr_h; + adress_L = rf433_frame.addr_l; + res_data = rf433_frame.key ; + //LOGI("finsh finsh finsh\r\n"); + } + //LOGI("rf433_decoder_flag %d adress_H 0x%02x adress_L 0x%02x res_data 0x%02x\r\n",rf433_decoder_flag,adress_H,adress_L,res_data); + if(power==3 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //双击对码GPIO2 { - + key_state=0; power=2; led_state=0; @@ -397,8 +422,8 @@ void scan_433(void) uint8_t ch_mask=CH_GPIO2; //对应位掩码 - adress_H=((receive_data>>16)&0xff); //读取高八位地址码 - adress_L=((receive_data>>8)&0xff); //读取低八位地址码 +// adress_H=((receive_data>>16)&0xff); //读取高八位地址码 +// adress_L=((receive_data>>8)&0xff); //读取低八位地址码 if(adress_index>4) { @@ -433,7 +458,7 @@ void scan_433(void) } - else if(power==4 && rf_flag.rf_receive_flag.receive_finish==1 && key_state==KEY_SHORT ) //四击对码GPIO5 + else if(power==4 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //四击对码GPIO5 { @@ -443,8 +468,8 @@ void scan_433(void) uint8_t ch_mask=CH_GPIO5; //对应位掩码 - adress_H=((receive_data>>16)&0xff); //读取高八位地址码 - adress_L=((receive_data>>8)&0xff); //读取低八位地址码 +// adress_H=((receive_data>>16)&0xff); //读取高八位地址码 +// adress_L=((receive_data>>8)&0xff); //读取低八位地址码 if(adress_index>4) { @@ -479,14 +504,18 @@ void scan_433(void) - if(power==2 && rf_flag.rf_receive_flag.receive_finish==1) + if(power==2 && rf433_decoder_flag==true) { + if(long_timer>0 && (last_H_adress == adress_H && last_L_adress == adress_L)) + { + return; + } adress_index_ture = 0xFF; // 默认无效 for(i=0; i<5; i++) { - if( adress_H_array[i] == ((receive_data>>16)&0xff) && - adress_L_array[i] == ((receive_data>>8)&0xff) ) + if( adress_H_array[i] == adress_H && + adress_L_array[i] == adress_L ) { adress_index_ture = i; // 找到索引 break; @@ -495,19 +524,13 @@ void scan_433(void) // 找到有效索引执行 if(adress_index_ture != 0xFF) - { -// adress_H=((receive_data>>16)&0xff); //读取高八位地址码 -// adress_L=((receive_data>>8)&0xff); //读取低八位地址码 - //LOGI("%d %x %x\r\n",adress_index_ture,adress_H,adress_L); + { _433_fun(); flash_run(); } - - - - - - rf_flag.rf_receive_flag.receive_finish=0; + last_H_adress=adress_H; + last_L_adress=adress_L; + long_timer=rf433_long_time; } if( key_state==KEY_LONG ) diff --git a/project/example/ble/ble_peripheral/app/src/rf433_decoder.c b/project/example/ble/ble_peripheral/app/src/rf433_decoder.c new file mode 100644 index 0000000..8c80c3d --- /dev/null +++ b/project/example/ble/ble_peripheral/app/src/rf433_decoder.c @@ -0,0 +1,793 @@ +#include "rf433_decoder.h" +#include "rf433_decoder_port.h" + +#define RF433_FIFO_SIZE 256u + +#define RF433_GLITCH_DYNAMIC_MIN 2u +#define RF433_GLITCH_DYNAMIC_MAX 4u + +#define RF433_SYNC_LOW_MIN 35u //45改35 +#define RF433_SYNC_LOW_MAX 200u //180改200 +#define RF433_SYNC_HIGH_MIN 1u +#define RF433_SYNC_HIGH_MAX 15u //12改15 + +#define RF433_BIT_LEN 24u +#define RF433_REPEAT_CONFIRM 1u //2改1 + +#define RF433_LEVEL_TIMEOUT 300u //300 + +#define RF433_BIT_TOTAL_MIN 3u //4改3 +#define RF433_BIT_TOTAL_MAX 40u //35改40 + +#define RF433_PROCESS_MAX_ONCE 32u + +#define RF433_FRAME_SCORE_MIN 50u //70改50 +#define RF433_BIT_SCORE_GOOD 4u +#define RF433_BIT_SCORE_NORMAL 3u +#define RF433_BIT_SCORE_POOR 1u + +#define RF433_WINDOW_TIGHT 0u +#define RF433_WINDOW_NORMAL 1u +#define RF433_WINDOW_LOOSE 2u + + +// 新增:连发屏蔽间隔(单位:100us采样tick,200=20ms内相同码只输出一次) +#define RF433_ANTI_REPEAT_TICK 200u + + +#if RF433_DECODER_DEBUG_PULSE +#define RF433_PULSE_LOG(fmt, ...) RF433_DECODER_LOG(fmt, ##__VA_ARGS__) +#else +#define RF433_PULSE_LOG(fmt, ...) +#endif + +#if RF433_DECODER_DEBUG_DETAIL +#define RF433_DETAIL_LOG(fmt, ...) RF433_DECODER_LOG(fmt, ##__VA_ARGS__) +#else +#define RF433_DETAIL_LOG(fmt, ...) +#endif + +typedef enum +{ + RF433_STATE_IDLE = 0, + RF433_STATE_DATA, +} Rf433State_t; + +typedef struct +{ + uint8_t level; + uint16_t width; +} Rf433Pulse_t; + +typedef struct +{ + volatile Rf433Pulse_t fifo[RF433_FIFO_SIZE]; + volatile uint16_t w; + volatile uint16_t r; + volatile uint16_t lost; + uint8_t last_level; + uint16_t width; + uint8_t inited; +} Rf433Fifo_t; + +typedef struct +{ + Rf433State_t state; + uint16_t last_high; + uint16_t last_low; + uint16_t t; + uint16_t short_min; + uint16_t short_max; + uint16_t long_min; + uint16_t long_max; + uint32_t data; + uint8_t bit_cnt; + uint8_t bit_score_sum; + uint8_t frame_score; + uint8_t ppl_locked; + uint8_t window_mode; + uint32_t last_code; + uint8_t same_cnt; + Rf433DecoderFrame_t frame; + bool frame_ready; + + uint16_t anti_repeat_tick; // 新增:连发屏蔽倒计时 +} Rf433Decode_t; + +typedef struct +{ + Rf433Pulse_t p0; + Rf433Pulse_t p1; + Rf433Pulse_t p2; + uint8_t cnt; +} Rf433Repair_t; + +static Rf433Fifo_t s_fifo; +static Rf433Decode_t s_dec; +static Rf433Repair_t s_repair; + +static uint16_t rf433_limit_t(uint16_t t) +{ + if (t < 2u) + { + t = 2u; + } + + if (t > 12u) + { + t = 12u; + } + + return t; +} + +static void rf433_update_range_by_t(uint16_t t) +{ + t = rf433_limit_t(t); + s_dec.t = t; + + if (s_dec.window_mode == RF433_WINDOW_TIGHT) + { + s_dec.short_min = 1u; + s_dec.short_max = (uint16_t)(t + t / 2u + 2u); + s_dec.long_min = (uint16_t)(t * 2u); + s_dec.long_max = (uint16_t)(t * 4u + 2u); + } + else if (s_dec.window_mode == RF433_WINDOW_LOOSE) + { + s_dec.short_min = 1u; + s_dec.short_max = (uint16_t)(t * 2u + 4u); + s_dec.long_min = (uint16_t)(t + t / 2u); + if (s_dec.long_min < 3u) + { + s_dec.long_min = 3u; + } + s_dec.long_max = (uint16_t)(t * 7u + 4u); + } + else + { + s_dec.short_min = 1u; + s_dec.short_max = (uint16_t)(t * 2u + 3u); + s_dec.long_min = (uint16_t)(t + t / 2u); + if (s_dec.long_min < 3u) + { + s_dec.long_min = 3u; + } + s_dec.long_max = (uint16_t)(t * 7u + 3u); + } +} + +static void rf433_decode_reset(void) +{ + s_dec.state = RF433_STATE_IDLE; + s_dec.last_high = 0; + s_dec.last_low = 0; + s_dec.data = 0; + s_dec.bit_cnt = 0; + s_dec.bit_score_sum = 0; + s_dec.frame_score = 0; + s_dec.window_mode = RF433_WINDOW_NORMAL; + rf433_update_range_by_t(4u); +} + +static void rf433_repair_reset(void) +{ + s_repair.cnt = 0; + s_repair.p0.level = 0; + s_repair.p0.width = 0; + s_repair.p1.level = 0; + s_repair.p1.width = 0; + s_repair.p2.level = 0; + s_repair.p2.width = 0; +} + +static void rf433_debug_reset(const char *reason, uint16_t high, uint16_t low) +{ + RF433_DETAIL_LOG("[RF433 RESET] %s bits=%d high=%d low=%d data=0x%06X T=%d win=%d lost=%d\r\n", + reason, + s_dec.bit_cnt, + high, + low, + (unsigned int)s_dec.data, + s_dec.t, + s_dec.window_mode, + s_fifo.lost); +} + +void rf433_decoder_init(void) +{ + s_fifo.w = 0; + s_fifo.r = 0; + s_fifo.lost = 0; + s_fifo.last_level = 0; + s_fifo.width = 0; + s_fifo.inited = 0; + + s_dec.last_code = 0; + s_dec.same_cnt = 0; + s_dec.frame_ready = false; + s_dec.ppl_locked = 0; + s_dec.window_mode = RF433_WINDOW_NORMAL; + s_dec.anti_repeat_tick=0; //新增 + + rf433_decode_reset(); + rf433_repair_reset(); +} + +void rf433_decoder_sample(uint8_t level) +{ + uint16_t next; + Rf433Pulse_t pulse; + + level = level ? 1u : 0u; + + if (!s_fifo.inited) + { + s_fifo.last_level = level; + s_fifo.width = 1; + s_fifo.inited = 1; + return; + } + + if (level == s_fifo.last_level) + { + if (s_fifo.width < 0xFFFFu) + { + s_fifo.width++; + } + return; + } + + pulse.level = s_fifo.last_level; + pulse.width = s_fifo.width; + s_fifo.last_level = level; + s_fifo.width = 1; + + next = (uint16_t)((s_fifo.w + 1u) % RF433_FIFO_SIZE); + if (next != s_fifo.r) + { + s_fifo.fifo[s_fifo.w] = pulse; + s_fifo.w = next; + } + else if (s_fifo.lost < 0xFFFFu) + { + s_fifo.lost++; + } +} + +static bool rf433_fifo_pop(Rf433Pulse_t *pulse) +{ + if (pulse == 0 || s_fifo.r == s_fifo.w) + { + return false; + } + + *pulse = s_fifo.fifo[s_fifo.r]; + s_fifo.r = (uint16_t)((s_fifo.r + 1u) % RF433_FIFO_SIZE); + return true; +} + +static bool rf433_is_sync(uint16_t high, uint16_t low) +{ + if (high == 0u || low == 0u) + { + return false; + } + + if (high < RF433_SYNC_HIGH_MIN || high > RF433_SYNC_HIGH_MAX) + { + return false; + } + + if (low < RF433_SYNC_LOW_MIN || low > RF433_SYNC_LOW_MAX) + { + return false; + } + + if (low < (uint16_t)(high * 10u)) //12 + { + return false; + } + + return true; +} + +static void rf433_ppl_update_by_sync(uint16_t sync_low) +{ + uint16_t t_new = rf433_limit_t((uint16_t)(sync_low / 31u)); + uint16_t t_filter; + + if (s_dec.ppl_locked) + { + t_filter = (uint16_t)((s_dec.t * 7u + t_new) / 8u); + } + else + { + t_filter = (uint16_t)((s_dec.t * 3u + t_new) / 4u); + } + + rf433_update_range_by_t(t_filter); +} + +static void rf433_update_t_by_bit(uint16_t high, uint16_t low, uint8_t bit) +{ + uint16_t t_new; + uint16_t t_filter; + + if (bit == 0u) + { + t_new = (uint16_t)((high + low / 3u) / 2u); + } + else + { + t_new = (uint16_t)((high / 3u + low) / 2u); + } + + t_new = rf433_limit_t(t_new); + + if (s_dec.ppl_locked) + { + t_filter = (uint16_t)((s_dec.t * 7u + t_new) / 8u); + } + else + { + t_filter = (uint16_t)((s_dec.t * 3u + t_new) / 4u); + } + + rf433_update_range_by_t(t_filter); +} + +static uint16_t rf433_get_glitch_max(void) +{ + uint16_t v = s_dec.t / 2u; + + if (v < RF433_GLITCH_DYNAMIC_MIN) + { + v = RF433_GLITCH_DYNAMIC_MIN; + } + + if (v > RF433_GLITCH_DYNAMIC_MAX) + { + v = RF433_GLITCH_DYNAMIC_MAX; + } + + return v; +} + +static bool rf433_is_short(uint16_t width) +{ + return ((width >= s_dec.short_min) && (width <= s_dec.short_max)); +} + +static bool rf433_is_long(uint16_t width) +{ + return ((width >= s_dec.long_min) && (width <= s_dec.long_max)); +} + +static bool rf433_total_valid(uint16_t high, uint16_t low) +{ + uint16_t total = (uint16_t)(high + low); + return ((total >= RF433_BIT_TOTAL_MIN) && (total <= RF433_BIT_TOTAL_MAX)); +} + +static bool rf433_decode_bit(uint16_t high, uint16_t low, uint8_t *bit) +{ + if (bit == 0 || !rf433_total_valid(high, low)) + { + return false; + } + + if (rf433_is_short(high) && rf433_is_long(low)) + { + *bit = 0; + return true; + } + + if (rf433_is_long(high) && rf433_is_short(low)) + { + *bit = 1; + return true; + } + + return false; +} + +#if RF433_DECODER_DEBUG_DETAIL +static const char *rf433_bit_fail_reason(uint16_t high, uint16_t low) +{ + if (!rf433_total_valid(high, low)) + { + return "total"; + } + + if (!rf433_is_short(high) && !rf433_is_long(high)) + { + return "high"; + } + + if (!rf433_is_short(low) && !rf433_is_long(low)) + { + return "low"; + } + + return "pair"; +} +#endif + +static uint16_t rf433_abs_diff_u16(uint16_t a, uint16_t b) +{ + return (a > b) ? (uint16_t)(a - b) : (uint16_t)(b - a); +} + +static uint8_t rf433_score_bit(uint16_t high, uint16_t low, uint8_t bit) +{ + uint16_t ideal_high; + uint16_t ideal_low; + uint16_t err; + + if (bit == 0u) + { + ideal_high = s_dec.t; + ideal_low = (uint16_t)(s_dec.t * 3u); + } + else + { + ideal_high = (uint16_t)(s_dec.t * 3u); + ideal_low = s_dec.t; + } + + err = (uint16_t)(rf433_abs_diff_u16(high, ideal_high) + + rf433_abs_diff_u16(low, ideal_low)); + + if (err <= 2u) + { + return RF433_BIT_SCORE_GOOD; + } + + if (err <= 5u) + { + return RF433_BIT_SCORE_NORMAL; + } + + return RF433_BIT_SCORE_POOR; +} + +static uint8_t rf433_calc_frame_score(void) +{ + uint16_t score; + + if (s_dec.bit_cnt == 0u) + { + return 0u; + } + + score = (uint16_t)s_dec.bit_score_sum * 100u; + score = score / (uint16_t)(RF433_BIT_LEN * RF433_BIT_SCORE_GOOD); + return (score > 100u) ? 100u : (uint8_t)score; +} + +static void rf433_update_window_by_score(uint8_t score) +{ + if (score >= 90u) + { + s_dec.window_mode = RF433_WINDOW_TIGHT; + s_dec.ppl_locked = 1u; + } + else if (score >= 60u) + { + s_dec.window_mode = RF433_WINDOW_NORMAL; + } + else + { + s_dec.window_mode = RF433_WINDOW_LOOSE; + s_dec.ppl_locked = 0u; + } + + rf433_update_range_by_t(s_dec.t); +} + +static void rf433_output_code(uint32_t code) +{ + if (code == s_dec.last_code) + { + if (s_dec.same_cnt < 255u) + { + s_dec.same_cnt++; + } + } + else + { + s_dec.last_code = code; + s_dec.same_cnt = 1; + +// // 换码直接清空屏蔽计时,不同按键不拦截 +// s_dec.anti_repeat_tick = 0; + } + + RF433_DETAIL_LOG("[RF433 REPEAT] code=0x%06X same=%d/%d\r\n", + (unsigned int)code, + s_dec.same_cnt, + RF433_REPEAT_CONFIRM); + + if (s_dec.same_cnt >= RF433_REPEAT_CONFIRM) + { + s_dec.frame.code = code; + s_dec.frame.bit_len = RF433_BIT_LEN; + s_dec.frame.addr_h = (uint8_t)((code >> 16) & 0xFFu); + s_dec.frame.addr_l = (uint8_t)((code >> 8) & 0xFFu); + s_dec.frame.key = (uint8_t)(code & 0xFFu); + s_dec.frame.score = s_dec.frame_score; + s_dec.frame_ready = true; + +// // 输出后刷新连发屏蔽倒计时,一段时间内不再输出同码 +// s_dec.anti_repeat_tick = RF433_ANTI_REPEAT_TICK; + + s_dec.same_cnt = 0; + + RF433_DECODER_LOG("[RF433 OK] code=0x%06X addr_h=0x%02X addr_l=0x%02X key=0x%02X score=%d\r\n", + (unsigned int)s_dec.frame.code, + s_dec.frame.addr_h, + s_dec.frame.addr_l, + s_dec.frame.key, + s_dec.frame.score); + } +} + +static void rf433_process_clean_pulse(Rf433Pulse_t pulse) +{ + uint8_t bit; + uint8_t bit_score; + + if (pulse.width == 0u) + { + return; + } + + if (pulse.width > RF433_LEVEL_TIMEOUT) + { + rf433_debug_reset("timeout", s_dec.last_high, pulse.width); + rf433_decode_reset(); + rf433_repair_reset(); + return; + } + + if (pulse.level) + { + s_dec.last_high = pulse.width; + return; + } + + s_dec.last_low = pulse.width; + + if (rf433_is_sync(s_dec.last_high, s_dec.last_low)) + { + s_dec.window_mode = s_dec.ppl_locked ? RF433_WINDOW_TIGHT : RF433_WINDOW_NORMAL; + rf433_ppl_update_by_sync(s_dec.last_low); + + RF433_DETAIL_LOG("[RF433 SYNC] high=%d low=%d T=%d short=%d-%d long=%d-%d win=%d lock=%d\r\n", + s_dec.last_high, + s_dec.last_low, + s_dec.t, + s_dec.short_min, + s_dec.short_max, + s_dec.long_min, + s_dec.long_max, + s_dec.window_mode, + s_dec.ppl_locked); + + s_dec.state = RF433_STATE_DATA; + s_dec.data = 0; + s_dec.bit_cnt = 0; + s_dec.bit_score_sum = 0; + s_dec.frame_score = 0; + s_dec.last_high = 0; + s_dec.last_low = 0; + return; + } + + if (s_dec.state != RF433_STATE_DATA || + s_dec.last_high == 0u || + s_dec.last_low == 0u) + { + return; + } + + if (rf433_decode_bit(s_dec.last_high, s_dec.last_low, &bit)) + { + bit_score = rf433_score_bit(s_dec.last_high, s_dec.last_low, bit); + if (s_dec.bit_score_sum <= (uint8_t)(255u - bit_score)) + { + s_dec.bit_score_sum += bit_score; + } + + rf433_update_t_by_bit(s_dec.last_high, s_dec.last_low, bit); + s_dec.data <<= 1; + if (bit) + { + s_dec.data |= 1u; + } + s_dec.bit_cnt++; + + RF433_DETAIL_LOG("[RF433 BIT] idx=%02d bit=%d high=%d low=%d score=%d T=%d data=0x%06X\r\n", + s_dec.bit_cnt, + bit, + s_dec.last_high, + s_dec.last_low, + bit_score, + s_dec.t, + (unsigned int)s_dec.data); + + if (s_dec.bit_cnt >= RF433_BIT_LEN) + { + s_dec.frame_score = rf433_calc_frame_score(); + rf433_update_window_by_score(s_dec.frame_score); + + RF433_DECODER_LOG("[RF433 FRAME] score=%3d T=%2d win=%d lock=%d bits=%2d code=0x%06X addr_h=0x%02X addr_l=0x%02X key=0x%02X\r\n", + s_dec.frame_score, + s_dec.t, + s_dec.window_mode, + s_dec.ppl_locked, + s_dec.bit_cnt, + (unsigned int)s_dec.data, + (unsigned int)((s_dec.data >> 16) & 0xFFu), + (unsigned int)((s_dec.data >> 8) & 0xFFu), + (unsigned int)(s_dec.data & 0xFFu)); + + if (s_dec.frame_score >= RF433_FRAME_SCORE_MIN) + { + rf433_output_code(s_dec.data); + } + else + { + RF433_DECODER_LOG("[RF433 BAD] score=%d code=0x%06X\r\n", + s_dec.frame_score, + (unsigned int)s_dec.data); + } + + rf433_decode_reset(); + rf433_repair_reset(); + } + } + else + { +#if RF433_DECODER_DEBUG_DETAIL + RF433_DETAIL_LOG("[RF433 BIT_ERR] reason=%s idx=%02d high=%d low=%d total=%d T=%d short=%d-%d long=%d-%d data=0x%06X\r\n", + rf433_bit_fail_reason(s_dec.last_high, s_dec.last_low), + (uint8_t)(s_dec.bit_cnt + 1u), + s_dec.last_high, + s_dec.last_low, + (uint16_t)(s_dec.last_high + s_dec.last_low), + s_dec.t, + s_dec.short_min, + s_dec.short_max, + s_dec.long_min, + s_dec.long_max, + (unsigned int)s_dec.data); +#endif + rf433_debug_reset("bit", s_dec.last_high, s_dec.last_low); + rf433_decode_reset(); + rf433_repair_reset(); + } +} + +static bool rf433_can_merge_glitch(Rf433Pulse_t a, Rf433Pulse_t b, Rf433Pulse_t c) +{ + if (a.level != c.level) + { + return false; + } + + if (b.width > rf433_get_glitch_max()) + { + return false; + } + + if (a.width == 0u || c.width == 0u) + { + return false; + } + + return true; +} + +static void rf433_repair_input_pulse(Rf433Pulse_t pulse) +{ + Rf433Pulse_t merged; + Rf433Pulse_t out; + + RF433_PULSE_LOG("[RF433 RAW] L=%d W=%d\r\n", pulse.level, pulse.width); + + if (pulse.width == 0u) + { + return; + } + + if (pulse.width > RF433_LEVEL_TIMEOUT) + { + rf433_debug_reset("timeout", s_dec.last_high, pulse.width); + rf433_decode_reset(); + rf433_repair_reset(); + return; + } + + if (s_repair.cnt == 0u) + { + s_repair.p0 = pulse; + s_repair.cnt = 1u; + return; + } + + if (s_repair.cnt == 1u) + { + s_repair.p1 = pulse; + s_repair.cnt = 2u; + return; + } + + s_repair.p2 = pulse; + if (rf433_can_merge_glitch(s_repair.p0, s_repair.p1, s_repair.p2)) + { + merged.level = s_repair.p0.level; + merged.width = (uint16_t)(s_repair.p0.width + + s_repair.p1.width + + s_repair.p2.width); + + RF433_PULSE_LOG("[RF433 MERGE] %d:%d + %d:%d + %d:%d => %d:%d\r\n", + s_repair.p0.level, + s_repair.p0.width, + s_repair.p1.level, + s_repair.p1.width, + s_repair.p2.level, + s_repair.p2.width, + merged.level, + merged.width); + + s_repair.p0 = merged; + s_repair.cnt = 1u; + return; + } + + out = s_repair.p0; + RF433_PULSE_LOG("[RF433 CLEAN] L=%d W=%d\r\n", out.level, out.width); + rf433_process_clean_pulse(out); + + s_repair.p0 = s_repair.p1; + s_repair.p1 = s_repair.p2; + s_repair.cnt = 2u; +} + +void rf433_decoder_process(void) +{ + Rf433Pulse_t pulse; + uint8_t cnt = 0; + +// // 新增:防重复倒计时全局递减 +// if(s_dec.anti_repeat_tick > 0) +// { +// s_dec.anti_repeat_tick--; +// } + + + while ((cnt < RF433_PROCESS_MAX_ONCE) && rf433_fifo_pop(&pulse)) + { + rf433_repair_input_pulse(pulse); + cnt++; + } +} + +bool rf433_decoder_get_frame(Rf433DecoderFrame_t *frame) +{ + if (frame == 0 || !s_dec.frame_ready) + { + return false; + } + + *frame = s_dec.frame; + s_dec.frame_ready = false; + return true; +} + +uint16_t rf433_decoder_get_lost_count(void) +{ + return s_fifo.lost; +} diff --git a/project/example/ble/ble_peripheral/app/src/rf433_decoder.h b/project/example/ble/ble_peripheral/app/src/rf433_decoder.h new file mode 100644 index 0000000..377e4c2 --- /dev/null +++ b/project/example/ble/ble_peripheral/app/src/rf433_decoder.h @@ -0,0 +1,25 @@ +#ifndef __RF433_DECODER_H__ +#define __RF433_DECODER_H__ + +#include +#include + +#define RF433_DECODER_SAMPLE_US 100u + +typedef struct +{ + uint32_t code; + uint8_t bit_len; + uint8_t addr_h; + uint8_t addr_l; + uint8_t key; + uint8_t score; +} Rf433DecoderFrame_t; + +void rf433_decoder_init(void); +void rf433_decoder_sample(uint8_t level); +void rf433_decoder_process(void); +bool rf433_decoder_get_frame(Rf433DecoderFrame_t *frame); +uint16_t rf433_decoder_get_lost_count(void); + +#endif diff --git a/project/example/ble/ble_peripheral/app/src/rf433_decoder_port.h b/project/example/ble/ble_peripheral/app/src/rf433_decoder_port.h new file mode 100644 index 0000000..82c19b1 --- /dev/null +++ b/project/example/ble/ble_peripheral/app/src/rf433_decoder_port.h @@ -0,0 +1,27 @@ +#ifndef __RF433_DECODER_PORT_H__ +#define __RF433_DECODER_PORT_H__ +#include "dbg.h" +/* + * Project-side configuration for the portable RF433 decoder. + * See PORTING.md for Chinese porting instructions. + */ +#include "xc6xxx.h" +#include "rwip_config.h" // stack configuration + +#include "dbg_swdiag.h" // sw profiling definitions + +#include "dbg_trc.h" // debug tracer definition + +#ifndef RF433_DECODER_LOG +#define RF433_DECODER_LOG(fmt, ...) LOGI(fmt, ##__VA_ARGS__) +#endif + +#ifndef RF433_DECODER_DEBUG_DETAIL +#define RF433_DECODER_DEBUG_DETAIL 0 +#endif + +#ifndef RF433_DECODER_DEBUG_PULSE +#define RF433_DECODER_DEBUG_PULSE 0 +#endif + +#endif diff --git a/project/example/ble/ble_peripheral/app/src/timer.c b/project/example/ble/ble_peripheral/app/src/timer.c index 470ff04..f6349e8 100644 --- a/project/example/ble/ble_peripheral/app/src/timer.c +++ b/project/example/ble/ble_peripheral/app/src/timer.c @@ -3,7 +3,7 @@ #include "timeslice.h" #include "led.h" #include "rf433.h" - +#include "rf433_decoder.h" uint16_t led_1_count_time=0; @@ -162,8 +162,8 @@ __RAM_CODE void timer1_callback(void *context) __RAM_CODE void timer2_callback(void *context) { - rf433_receive(); - + //rf433_receive(); + rf433_decoder_sample(RF_DATA); } diff --git a/project/example/ble/ble_peripheral/app/src/timeslice.c b/project/example/ble/ble_peripheral/app/src/timeslice.c index 94bb517..c62c728 100644 --- a/project/example/ble/ble_peripheral/app/src/timeslice.c +++ b/project/example/ble/ble_peripheral/app/src/timeslice.c @@ -5,11 +5,13 @@ #include "switch_s.h" #include "ota_flash_interface.h" #include "ota_protocol.h" +#include "rf433_decoder.h" TASK_COMPONENTS TaskComps[] = { {0, 50, 50, ble_message_process}, //蓝牙处理任务 {0, 1, 1, scan_433} , //遥控处理任务 {0, 0, 0, app_op_flash_on}, + {0, 1, 1, rf433_decoder_process}, {0, 10, 10,app_key_scan}, {0, 10, 10,ble_mode_scan}, {0, 10, 10,trigger_check_process}, diff --git a/project/example/ble/ble_peripheral/mdk/Listings/Xinc_ble_sdk.map b/project/example/ble/ble_peripheral/mdk/Listings/Xinc_ble_sdk.map index 1fde357..eb75677 100644 --- a/project/example/ble/ble_peripheral/mdk/Listings/Xinc_ble_sdk.map +++ b/project/example/ble/ble_peripheral/mdk/Listings/Xinc_ble_sdk.map @@ -121,6 +121,7 @@ Section Cross References arch_main.o(i.board_init) refers to rf433.o(i.chx_gpio_init) for chx_gpio_init arch_main.o(i.board_init) refers to key.o(i.app_key_init) for app_key_init arch_main.o(i.board_init) refers to switch_s.o(i.switch_init) for switch_init + arch_main.o(i.board_init) refers to rf433_decoder.o(i.rf433_decoder_init) for rf433_decoder_init arch_main.o(i.board_init) refers to __2printf.o(.text) for __2printf arch_main.o(i.board_init) refers to arch_main.o(i.rom_env_host_init) for rom_env_host_init arch_main.o(i.flash_init) refers to _printf_pad.o(.text) for _printf_pre_padding @@ -589,7 +590,8 @@ Section Cross References timer.o(ram_code) refers to xc_drv_pwm.o(i.xc_pwm_dutycycle_set) for xc_pwm_dutycycle_set timer.o(ram_code) refers to timeslice.o(i.TaskRemarks) for TaskRemarks timer.o(ram_code) refers to timer.o(i.updateTimer) for updateTimer - timer.o(ram_code) refers to rf433.o(i.rf433_receive) for rf433_receive + timer.o(ram_code) refers to xc_drv_gpio.o(i.xc_gpio_read_pin) for xc_gpio_read_pin + timer.o(ram_code) refers to rf433_decoder.o(i.rf433_decoder_sample) for rf433_decoder_sample timer.o(ram_code) refers to led.o(.data) for led_state timer.o(ram_code) refers to timer.o(.data) for .data timer.o(ram_code) refers to rf433.o(.data) for key_state @@ -599,6 +601,7 @@ Section Cross References timeslice.o(.data) refers to uart_1.o(i.ble_message_process) for ble_message_process timeslice.o(.data) refers to rf433.o(i.scan_433) for scan_433 timeslice.o(.data) refers to ota_flash_interface.o(i.app_op_flash_on) for app_op_flash_on + timeslice.o(.data) refers to rf433_decoder.o(i.rf433_decoder_process) for rf433_decoder_process timeslice.o(.data) refers to key.o(i.app_key_scan) for app_key_scan timeslice.o(.data) refers to rf433.o(i.ble_mode_scan) for ble_mode_scan timeslice.o(.data) refers to switch_s.o(i.trigger_check_process) for trigger_check_process @@ -628,11 +631,13 @@ Section Cross References rf433.o(i.rf433_gpio_init) refers to xc_drv_gpio.o(i.xc_gpio_init) for xc_gpio_init rf433.o(i.rf433_receive) refers to xc_drv_gpio.o(i.xc_gpio_read_pin) for xc_gpio_read_pin rf433.o(i.rf433_receive) refers to rf433.o(.data) for .data + rf433.o(i.scan_433) refers to rf433_decoder.o(i.rf433_decoder_get_frame) for rf433_decoder_get_frame rf433.o(i.scan_433) refers to rf433.o(i._433_fun) for _433_fun rf433.o(i.scan_433) refers to rf433.o(i.flash_run) for flash_run rf433.o(i.scan_433) refers to rt_memclr.o(.text) for __aeabi_memclr4 - rf433.o(i.scan_433) refers to switch_s.o(.data) for rf433_sw_flag + rf433.o(i.scan_433) refers to rf433.o(.bss) for .bss rf433.o(i.scan_433) refers to rf433.o(.data) for .data + rf433.o(i.scan_433) refers to switch_s.o(.data) for rf433_sw_flag rf433.o(i.scan_433) refers to led.o(.data) for led_state switch_s.o(i.gpio_intr_callback) refers to switch_s.o(.data) for .data switch_s.o(i.switch_init) refers to xc_drv_gpio.o(i.xc_gpio_init) for xc_gpio_init @@ -829,6 +834,52 @@ Section Cross References ota_server.o(.constdata) refers to ota_server.o(i.ota_svc_cb_event_sent) for ota_svc_cb_event_sent ota_server.o(.constdata) refers to ota_server.o(i.ota_svc_cb_att_read_get) for ota_svc_cb_att_read_get ota_server.o(.constdata) refers to ota_server.o(i.ota_svc_cb_att_val_set) for ota_svc_cb_att_val_set + rf433_decoder.o(i.rf433_decode_reset) refers to rf433_decoder.o(i.rf433_update_range_by_t) for rf433_update_range_by_t + rf433_decoder.o(i.rf433_decode_reset) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_decoder_get_frame) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_decoder_get_lost_count) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_decoder_init) refers to rf433_decoder.o(i.rf433_decode_reset) for rf433_decode_reset + rf433_decoder.o(i.rf433_decoder_init) refers to rf433_decoder.o(i.rf433_repair_reset) for rf433_repair_reset + rf433_decoder.o(i.rf433_decoder_init) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_decoder_process) refers to rf433_decoder.o(i.rf433_repair_input_pulse) for rf433_repair_input_pulse + rf433_decoder.o(i.rf433_decoder_process) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_decoder_sample) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_is_long) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_is_short) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_output_code) refers to _printf_pad.o(.text) for _printf_pre_padding + rf433_decoder.o(i.rf433_output_code) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + rf433_decoder.o(i.rf433_output_code) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + rf433_decoder.o(i.rf433_output_code) refers to _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) for _printf_x + rf433_decoder.o(i.rf433_output_code) refers to _printf_dec.o(.text) for _printf_int_dec + rf433_decoder.o(i.rf433_output_code) refers to _printf_hex_int_ll_ptr.o(.text) for _printf_longlong_hex + rf433_decoder.o(i.rf433_output_code) refers to __2printf.o(.text) for __2printf + rf433_decoder.o(i.rf433_output_code) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_output_code) refers to rf433_decoder.o(.conststring) for .conststring + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_pad.o(.text) for _printf_pre_padding + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) for _printf_x + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_dec.o(.text) for _printf_int_dec + rf433_decoder.o(i.rf433_process_clean_pulse) refers to _printf_hex_int_ll_ptr.o(.text) for _printf_longlong_hex + rf433_decoder.o(i.rf433_process_clean_pulse) refers to aeabi_sdiv.o(.text) for __aeabi_uidivmod + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_limit_t) for rf433_limit_t + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_update_range_by_t) for rf433_update_range_by_t + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_is_short) for rf433_is_short + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_is_long) for rf433_is_long + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_abs_diff_u16) for rf433_abs_diff_u16 + rf433_decoder.o(i.rf433_process_clean_pulse) refers to __2printf.o(.text) for __2printf + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_output_code) for rf433_output_code + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_decode_reset) for rf433_decode_reset + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(i.rf433_repair_reset) for rf433_repair_reset + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_process_clean_pulse) refers to rf433_decoder.o(.conststring) for .conststring + rf433_decoder.o(i.rf433_repair_input_pulse) refers to rf433_decoder.o(i.rf433_decode_reset) for rf433_decode_reset + rf433_decoder.o(i.rf433_repair_input_pulse) refers to rf433_decoder.o(i.rf433_repair_reset) for rf433_repair_reset + rf433_decoder.o(i.rf433_repair_input_pulse) refers to rf433_decoder.o(i.rf433_process_clean_pulse) for rf433_process_clean_pulse + rf433_decoder.o(i.rf433_repair_input_pulse) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_repair_reset) refers to rf433_decoder.o(.bss) for .bss + rf433_decoder.o(i.rf433_update_range_by_t) refers to rf433_decoder.o(i.rf433_limit_t) for rf433_limit_t + rf433_decoder.o(i.rf433_update_range_by_t) refers to rf433_decoder.o(.bss) for .bss printf.o(.text) refers (Special) to _printf_a.o(.ARM.Collect$$_printf_percent$$00000006) for _printf_a printf.o(.text) refers (Special) to _printf_c.o(.ARM.Collect$$_printf_percent$$00000013) for _printf_c printf.o(.text) refers (Special) to _printf_charcount.o(.text) for _printf_charcount @@ -1350,6 +1401,8 @@ Removing Unused input sections from the image. Removing timeslice.o(.emb_text), (8 bytes). Removing uart_1.o(.emb_text), (8 bytes). Removing rf433.o(.emb_text), (8 bytes). + Removing rf433.o(i.rf433_receive), (248 bytes). + Removing rf433.o(.data), (1 bytes). Removing switch_s.o(.emb_text), (8 bytes). Removing fmc_spi_1.o(.emb_text), (8 bytes). Removing key.o(.emb_text), (8 bytes). @@ -1376,8 +1429,10 @@ Removing Unused input sections from the image. Removing ota_server.o(i.ota_svc_cb_event_sent), (76 bytes). Removing ota_server.o(.constdata), (209 bytes). Removing ota_server.o(.conststring), (74 bytes). + Removing rf433_decoder.o(.emb_text), (8 bytes). + Removing rf433_decoder.o(i.rf433_decoder_get_lost_count), (12 bytes). -245 unused section(s) (total 14211 bytes) removed from the image. +249 unused section(s) (total 14480 bytes) removed from the image. ============================================================================== @@ -1389,7 +1444,8 @@ Adding Veneers to the image Adding TT veneer (12 bytes, Long) for call to 'xc_pwm_dutycycle_set' from timer.o(ram_code). Adding TT veneer (12 bytes, Long) for call to 'TaskRemarks' from timer.o(ram_code). Adding TT veneer (12 bytes, Long) for call to 'updateTimer' from timer.o(ram_code). - Adding TT veneer (12 bytes, Long) for call to 'rf433_receive' from timer.o(ram_code). + Adding TT veneer (12 bytes, Long) for call to 'xc_gpio_read_pin' from timer.o(ram_code). + Adding TT veneer (12 bytes, Long) for call to 'rf433_decoder_sample' from timer.o(ram_code). Adding TT veneer (12 bytes, Long) for call to 'key_click_state_reset' from key.o(ram_code). Adding TT veneer (12 bytes, Long) for call to 'app_key_click_detection' from key.o(ram_code). Adding TT veneer (12 bytes, Long) for call to '_memset' from aeabi_memset.o(.text). @@ -1420,7 +1476,7 @@ Adding Veneers to the image Adding TT veneer (12 bytes, Long) for call to 'xc_fmc_spi_flash_read' from xc_drv_fmc_spi.o(i.xc_unique_identification_read). Adding TT veneer (12 bytes, Long) for call to 'xc_fmc_spi_otp_read_page' from xc_drv_fmc_spi.o(i.xc_unique_identification_read). -36 Veneer(s) (total 432 bytes) added to the image. +37 Veneer(s) (total 444 bytes) added to the image. ============================================================================== @@ -1431,149 +1487,149 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) ../clib/../cmprslib/zerorunl2.c 0x00000000 Number 0 __dczerorl2.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_ctype_table.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_div0.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE ../clib/angel/rt.s 0x00000000 Number 0 rt_locale.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0_sigfpe.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 aeabi_idiv0_sigfpe.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale_intlibspace.o ABSOLUTE ../clib/angel/rt.s 0x00000000 Number 0 aeabi_idiv0.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_ctype_table.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_locale_intlibspace.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0_sigfpe.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_div0.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 aeabi_idiv0_sigfpe.o ABSOLUTE ../clib/angel/scatterp.s 0x00000000 Number 0 __scatter.o ABSOLUTE ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 tempstk.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 tempstk.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE ../clib/bigflt.c 0x00000000 Number 0 bigflt0.o ABSOLUTE ../clib/btod.c 0x00000000 Number 0 btod.o ABSOLUTE - ../clib/division.c 0x00000000 Number 0 lludiv10.o ABSOLUTE ../clib/division.c 0x00000000 Number 0 lludiv.o ABSOLUTE ../clib/division.c 0x00000000 Number 0 rtudiv10.o ABSOLUTE + ../clib/division.c 0x00000000 Number 0 lludiv10.o ABSOLUTE ../clib/division.s 0x00000000 Number 0 aeabi_sdiv_div0.o ABSOLUTE ../clib/division.s 0x00000000 Number 0 aeabi_sdiv.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE ../clib/locale.c 0x00000000 Number 0 _wcrtomb.o ABSOLUTE - ../clib/locale.s 0x00000000 Number 0 lc_ctype_c.o ABSOLUTE ../clib/locale.s 0x00000000 Number 0 lc_numeric_c.o ABSOLUTE + ../clib/locale.s 0x00000000 Number 0 lc_ctype_c.o ABSOLUTE ../clib/longlong.c 0x00000000 Number 0 llmul.o ABSOLUTE - ../clib/memcpset.c 0x00000000 Number 0 rt_memcpy.o ABSOLUTE ../clib/memcpset.c 0x00000000 Number 0 rt_memclr.o ABSOLUTE - ../clib/memcpset.c 0x00000000 Number 0 aeabi_memset.o ABSOLUTE ../clib/memcpset.c 0x00000000 Number 0 rt_memcpy.o ABSOLUTE + ../clib/memcpset.c 0x00000000 Number 0 rt_memcpy.o ABSOLUTE + ../clib/memcpset.c 0x00000000 Number 0 aeabi_memset.o ABSOLUTE ../clib/misc.s 0x00000000 Number 0 printf_stubs.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_truncate.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_file.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_fp_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_oct_int_ll.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_charcount.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_fp_infnan.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_fp_hex.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_wchar.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_file.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_wctomb.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_longlong_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_oct_int.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_wctomb.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_fp_infnan.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ll_ptr.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll_ptr.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_wchar.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_fp_hex.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_fp_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ptr.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_hex_ptr.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ll.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_hex_int.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_truncate.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_pad.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 noretval__2printf.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ll_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_longlong_dec.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_oct_int_ll.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_oct_int.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _printf_oct_ll.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_n.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_g.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_x.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_p.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_i.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_llu.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_lc.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_lld.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_ls.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_llx.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_lli.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_llo.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_e.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_llx.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_llu.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_ll.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_l.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_a.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_g.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_f.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_u.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_i.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_lli.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_p.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_n.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_c.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_lld.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_lc.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_ls.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_a.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_o.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_outer.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_l.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_c.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_fpe_formal.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE - ../clib/string.c 0x00000000 Number 0 strcmp.o ABSOLUTE ../clib/string.c 0x00000000 Number 0 memcmp.o ABSOLUTE - ../clib/unhosted.c 0x00000000 Number 0 uread4.o ABSOLUTE + ../clib/string.c 0x00000000 Number 0 strcmp.o ABSOLUTE ../clib/unhosted.c 0x00000000 Number 0 uwrite4.o ABSOLUTE + ../clib/unhosted.c 0x00000000 Number 0 uread4.o ABSOLUTE ../fplib/cfplib/daddsub.c 0x00000000 Number 0 daddsub.o ABSOLUTE ../fplib/cfplib/dmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ../fplib/cfplib/fdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE ../fplib/cfplib/ffix.c 0x00000000 Number 0 dfixui.o ABSOLUTE ../fplib/cfplib/ffix.c 0x00000000 Number 0 ffixui.o ABSOLUTE - ../fplib/cfplib/fflt.c 0x00000000 Number 0 dflti.o ABSOLUTE ../fplib/cfplib/fflt.c 0x00000000 Number 0 fflti.o ABSOLUTE + ../fplib/cfplib/fflt.c 0x00000000 Number 0 dflti.o ABSOLUTE ../fplib/cfplib/fpinit.c 0x00000000 Number 0 fpinit.o ABSOLUTE ../fplib/cfplib/ieee_status.c 0x00000000 Number 0 ieee_status.o ABSOLUTE ../fplib/fmul6m.s 0x00000000 Number 0 fmul.o ABSOLUTE @@ -1649,6 +1705,7 @@ Image Symbol Table ..\\app\\src\\ota_protocol.c 0x00000000 Number 0 ota_protocol.o ABSOLUTE ..\\app\\src\\ota_server.c 0x00000000 Number 0 ota_server.o ABSOLUTE ..\\app\\src\\rf433.c 0x00000000 Number 0 rf433.o ABSOLUTE + ..\\app\\src\\rf433_decoder.c 0x00000000 Number 0 rf433_decoder.o ABSOLUTE ..\\app\\src\\sleep.c 0x00000000 Number 0 sleep.o ABSOLUTE ..\\app\\src\\switch_s.c 0x00000000 Number 0 switch_s.o ABSOLUTE ..\\app\\src\\system_xinc.c 0x00000000 Number 0 system_xinc.o ABSOLUTE @@ -1668,6 +1725,7 @@ Image Symbol Table ..\app\src\ota_protocol.c 0x00000000 Number 0 ota_protocol.o ABSOLUTE ..\app\src\ota_server.c 0x00000000 Number 0 ota_server.o ABSOLUTE ..\app\src\rf433.c 0x00000000 Number 0 rf433.o ABSOLUTE + ..\app\src\rf433_decoder.c 0x00000000 Number 0 rf433_decoder.o ABSOLUTE ..\app\src\sleep.c 0x00000000 Number 0 sleep.o ABSOLUTE ..\app\src\startup_xinc.s 0x00000000 Number 0 startup_xinc.o ABSOLUTE ..\app\src\switch_s.c 0x00000000 Number 0 switch_s.o ABSOLUTE @@ -1682,71 +1740,76 @@ Image Symbol Table __initial_sp 0x100007f0 Data 0 startup_xinc.o(STACK) .text 0x10002300 Section 0 rt_memclr.o(.text) .text 0x10002340 Section 346 aeabi_sdiv.o(.text) - Long Thumb to Thumb Veneer to key_click_state_reset 0x100024f1 Thumb Code 12 anon$$obj.o(Veneer$$Code) - Long Thumb to Thumb Veneer to app_key_click_detection 0x100024fd Thumb Code 12 anon$$obj.o(Veneer$$Code) - ram_code 0x10002508 Section 0 system_xinc.o(ram_code) - ram_code 0x10002520 Section 0 arch_main.o(ram_code) - ram_code 0x1000255c Section 0 xc_drv_bor.o(ram_code) - ram_code 0x10002614 Section 0 xc_drv_fmc_spi.o(ram_code) - ram_memcpy_bytes 0x10002615 Thumb Code 62 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_write_nbyte 0x10002653 Thumb Code 142 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_read_nbyte 0x100026e1 Thumb Code 120 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_wait_busy 0x1000280b Thumb Code 62 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_write_enable 0x10002849 Thumb Code 42 xc_drv_fmc_spi.o(ram_code) - xc_fmc_status_wait_idle 0x10002b9b Thumb Code 10 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_enable 0x10002ba5 Thumb Code 28 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_disable 0x10002bc1 Thumb Code 24 xc_drv_fmc_spi.o(ram_code) - ram_code 0x10002bdc Section 0 xc_drv_rtc.o(ram_code) - ram_code 0x10002c08 Section 0 timer.o(ram_code) - ram_code 0x10002cb0 Section 0 key.o(ram_code) - .data 0x10002d78 Section 4 system_xinc.o(.data) - .data 0x10002d7c Section 52 app_task.o(.data) - .data 0x10002db0 Section 1 app_task.o(.data) - .data 0x10002db1 Section 2 app_sec.o(.data) - .data 0x10002db4 Section 4 usr_server.o(.data) - .data 0x10002db8 Section 4 nvds.o(.data) - .data 0x10002dbc Section 2 xc_drv_adc.o(.data) - adc_it_val 0x10002dbc Data 2 xc_drv_adc.o(.data) - .data 0x10002dc0 Section 4 xc_drv_calib.o(.data) - mid 0x10002dc0 Data 4 xc_drv_calib.o(.data) - .data 0x10002dc8 Section 16 xc_drv_pwm.o(.data) - pwm_clk_init_state 0x10002dc8 Data 4 xc_drv_pwm.o(.data) - .data 0x10002dd8 Section 16 xc_drv_timer.o(.data) - .data 0x10002de8 Section 24 timer.o(.data) - .data 0x10002e00 Section 128 timeslice.o(.data) - .data 0x10002e80 Section 12 uart_1.o(.data) - .data 0x10002e8c Section 56 rf433.o(.data) - power 0x10002e91 Data 1 rf433.o(.data) - long_time 0x10002e9c Data 2 rf433.o(.data) - time_300ms 0x10002e9e Data 2 rf433.o(.data) - .data 0x10002ec4 Section 22 switch_s.o(.data) - s1_state 0x10002ec9 Data 1 switch_s.o(.data) - s2_state 0x10002eca Data 1 switch_s.o(.data) - s1_debounce_cnt 0x10002ed6 Data 2 switch_s.o(.data) - s2_debounce_cnt 0x10002ed8 Data 2 switch_s.o(.data) - .data 0x10002edc Section 20 key.o(.data) - last_key_val 0x10002edc Data 2 key.o(.data) - key_down_count 0x10002ede Data 2 key.o(.data) - key_up_count 0x10002ee0 Data 2 key.o(.data) - .data 0x10002ef0 Section 1 led.o(.data) - .data 0x10002ef1 Section 1 led.o(.data) - pwm_state 0x10002ef1 Data 1 led.o(.data) - .data 0x10002ef2 Section 1 ota_flash_interface.o(.data) - .data 0x10002ef4 Section 17 ota_protocol.o(.data) - .data 0x10002f06 Section 4 ota_server.o(.data) - .bss 0x10002f0c Section 28 arch_main.o(.bss) - .bss 0x10002f28 Section 24 nvds.o(.bss) - .bss 0x10002f40 Section 64 xc_drv_adc.o(.bss) - adc_value 0x10002f40 Data 64 xc_drv_adc.o(.bss) - .bss 0x10002f80 Section 16 xc_drv_clock.o(.bss) - .bss 0x10002f90 Section 12 xc_drv_uart.o(.bss) - .bss 0x10002f9c Section 512 fmc_spi_1.o(.bss) - .bss 0x1000319c Section 272 ota_flash_interface.o(.bss) - .bss 0x100032ac Section 276 ota_protocol.o(.bss) - fotas_write_env 0x100032ac Data 276 ota_protocol.o(.bss) - .bss 0x100033c0 Section 96 libspace.o(.bss) - HEAP 0x10003420 Section 0 startup_xinc.o(HEAP) - Heap_Mem 0x10003420 Data 0 startup_xinc.o(HEAP) + Long Thumb to Thumb Veneer to key_click_state_reset 0x100024fd Thumb Code 12 anon$$obj.o(Veneer$$Code) + Long Thumb to Thumb Veneer to app_key_click_detection 0x10002509 Thumb Code 12 anon$$obj.o(Veneer$$Code) + ram_code 0x10002514 Section 0 system_xinc.o(ram_code) + ram_code 0x1000252c Section 0 arch_main.o(ram_code) + ram_code 0x10002568 Section 0 xc_drv_bor.o(ram_code) + ram_code 0x10002620 Section 0 xc_drv_fmc_spi.o(ram_code) + ram_memcpy_bytes 0x10002621 Thumb Code 62 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_write_nbyte 0x1000265f Thumb Code 142 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_read_nbyte 0x100026ed Thumb Code 120 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_wait_busy 0x10002817 Thumb Code 62 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_write_enable 0x10002855 Thumb Code 42 xc_drv_fmc_spi.o(ram_code) + xc_fmc_status_wait_idle 0x10002ba7 Thumb Code 10 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_enable 0x10002bb1 Thumb Code 28 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_disable 0x10002bcd Thumb Code 24 xc_drv_fmc_spi.o(ram_code) + ram_code 0x10002be8 Section 0 xc_drv_rtc.o(ram_code) + ram_code 0x10002c14 Section 0 timer.o(ram_code) + ram_code 0x10002cc4 Section 0 key.o(ram_code) + .data 0x10002d8c Section 4 system_xinc.o(.data) + .data 0x10002d90 Section 52 app_task.o(.data) + .data 0x10002dc4 Section 1 app_task.o(.data) + .data 0x10002dc5 Section 2 app_sec.o(.data) + .data 0x10002dc8 Section 4 usr_server.o(.data) + .data 0x10002dcc Section 4 nvds.o(.data) + .data 0x10002dd0 Section 2 xc_drv_adc.o(.data) + adc_it_val 0x10002dd0 Data 2 xc_drv_adc.o(.data) + .data 0x10002dd4 Section 4 xc_drv_calib.o(.data) + mid 0x10002dd4 Data 4 xc_drv_calib.o(.data) + .data 0x10002dd8 Section 16 xc_drv_pwm.o(.data) + pwm_clk_init_state 0x10002dd8 Data 4 xc_drv_pwm.o(.data) + .data 0x10002de8 Section 16 xc_drv_timer.o(.data) + .data 0x10002df8 Section 24 timer.o(.data) + .data 0x10002e10 Section 144 timeslice.o(.data) + .data 0x10002ea0 Section 12 uart_1.o(.data) + .data 0x10002eac Section 60 rf433.o(.data) + power 0x10002eb1 Data 1 rf433.o(.data) + long_time 0x10002ebe Data 2 rf433.o(.data) + time_300ms 0x10002ec0 Data 2 rf433.o(.data) + .data 0x10002ee8 Section 22 switch_s.o(.data) + s1_state 0x10002eed Data 1 switch_s.o(.data) + s2_state 0x10002eee Data 1 switch_s.o(.data) + s1_debounce_cnt 0x10002efa Data 2 switch_s.o(.data) + s2_debounce_cnt 0x10002efc Data 2 switch_s.o(.data) + .data 0x10002f00 Section 20 key.o(.data) + last_key_val 0x10002f00 Data 2 key.o(.data) + key_down_count 0x10002f02 Data 2 key.o(.data) + key_up_count 0x10002f04 Data 2 key.o(.data) + .data 0x10002f14 Section 1 led.o(.data) + .data 0x10002f15 Section 1 led.o(.data) + pwm_state 0x10002f15 Data 1 led.o(.data) + .data 0x10002f16 Section 1 ota_flash_interface.o(.data) + .data 0x10002f18 Section 17 ota_protocol.o(.data) + .data 0x10002f2a Section 4 ota_server.o(.data) + .bss 0x10002f30 Section 28 arch_main.o(.bss) + .bss 0x10002f4c Section 24 nvds.o(.bss) + .bss 0x10002f64 Section 64 xc_drv_adc.o(.bss) + adc_value 0x10002f64 Data 64 xc_drv_adc.o(.bss) + .bss 0x10002fa4 Section 16 xc_drv_clock.o(.bss) + .bss 0x10002fb4 Section 12 xc_drv_uart.o(.bss) + .bss 0x10002fc0 Section 12 rf433.o(.bss) + .bss 0x10002fcc Section 512 fmc_spi_1.o(.bss) + .bss 0x100031cc Section 272 ota_flash_interface.o(.bss) + .bss 0x100032dc Section 276 ota_protocol.o(.bss) + fotas_write_env 0x100032dc Data 276 ota_protocol.o(.bss) + .bss 0x100033f0 Section 1102 rf433_decoder.o(.bss) + s_fifo 0x100033f0 Data 1036 rf433_decoder.o(.bss) + s_dec 0x100037fc Data 52 rf433_decoder.o(.bss) + s_repair 0x10003830 Data 14 rf433_decoder.o(.bss) + .bss 0x10003840 Section 96 libspace.o(.bss) + HEAP 0x100038a0 Section 0 startup_xinc.o(HEAP) + Heap_Mem 0x100038a0 Data 0 startup_xinc.o(HEAP) RESET 0x11012000 Section 192 startup_xinc.o(RESET) !!!main 0x110120c0 Section 8 __main.o(!!!main) !!!scatter 0x110120c8 Section 60 __scatter.o(!!!scatter) @@ -1888,219 +1951,243 @@ Image Symbol Table i.WDT_ResetInit 0x1101409c Section 0 system_xinc.o(i.WDT_ResetInit) WDT_ResetInit 0x1101409d Thumb Code 66 system_xinc.o(i.WDT_ResetInit) i._433_fun 0x110140e8 Section 0 rf433.o(i._433_fun) - i.__ARM_common_ll_muluu 0x11014194 Section 0 btod.o(i.__ARM_common_ll_muluu) - i.__ARM_common_switch8 0x110141c4 Section 0 arch_main.o(i.__ARM_common_switch8) - i.__ARM_fpclassify 0x110141e0 Section 0 fpclassify.o(i.__ARM_fpclassify) - i._is_digit 0x1101420c Section 0 __printf_wp.o(i._is_digit) - i._sys_exit 0x1101421a Section 0 system_xinc.o(i._sys_exit) - i.adc_intr_callback 0x1101421c Section 0 xc_drv_adc.o(i.adc_intr_callback) - i.app_create_advertising 0x110142a8 Section 0 app_task.o(i.app_create_advertising) - i.app_delete_advertising 0x110142f0 Section 0 app_task.o(i.app_delete_advertising) - i.app_get_dev_name 0x1101432c Section 0 app_task.o(i.app_get_dev_name) - i.app_init 0x11014354 Section 0 app_task.o(i.app_init) - i.app_key_callback_handler 0x11014398 Section 0 rf433.o(i.app_key_callback_handler) - i.app_key_click_detection 0x110143d8 Section 0 key.o(i.app_key_click_detection) - app_key_click_detection 0x110143d9 Thumb Code 100 key.o(i.app_key_click_detection) - i.app_key_init 0x11014440 Section 0 key.o(i.app_key_init) - i.app_key_scan 0x11014470 Section 0 key.o(i.app_key_scan) - i.app_msg_handler 0x110144c4 Section 0 app_task.o(i.app_msg_handler) - app_msg_handler 0x110144c5 Thumb Code 102 app_task.o(i.app_msg_handler) - i.app_op_flash 0x11014534 Section 0 ota_flash_interface.o(i.app_op_flash) - i.app_op_flash_on 0x11014570 Section 0 ota_flash_interface.o(i.app_op_flash_on) - i.app_sec_msg_dflt_handler 0x11014588 Section 0 app_sec.o(i.app_sec_msg_dflt_handler) - app_sec_msg_dflt_handler 0x11014589 Thumb Code 4 app_sec.o(i.app_sec_msg_dflt_handler) - i.app_set_adv_data 0x1101458c Section 0 app_task.o(i.app_set_adv_data) - i.app_start_advertising 0x110145f4 Section 0 app_task.o(i.app_start_advertising) - i.app_uart_init 0x11014630 Section 0 arch_main.o(i.app_uart_init) - i.ble_callback 0x11014688 Section 0 uart_1.o(i.ble_callback) - i.ble_flash_handle 0x110146a0 Section 0 ota_flash_interface.o(i.ble_flash_handle) - i.ble_flash_later_page_erase 0x11014758 Section 0 ota_flash_interface.o(i.ble_flash_later_page_erase) - i.ble_flash_later_write_page 0x11014774 Section 0 ota_flash_interface.o(i.ble_flash_later_write_page) - i.ble_message_process 0x110147a0 Section 0 uart_1.o(i.ble_message_process) - i.ble_mode_scan 0x110147d0 Section 0 rf433.o(i.ble_mode_scan) - i.bluetooth_init 0x11014818 Section 0 arch_main.o(i.bluetooth_init) - i.board_init 0x11014884 Section 0 arch_main.o(i.board_init) - i.chx_gpio_init 0x11014914 Section 0 rf433.o(i.chx_gpio_init) - i.clock_init 0x1101496c Section 0 sleep.o(i.clock_init) - i.custom_svc_add 0x110149dc Section 0 usr_server.o(i.custom_svc_add) - i.custom_svc_cb_att_read_get 0x11014ab8 Section 0 usr_server.o(i.custom_svc_cb_att_read_get) - i.custom_svc_cb_att_val_set 0x11014b68 Section 0 usr_server.o(i.custom_svc_cb_att_val_set) - i.custom_svc_cb_event_sent 0x11014d10 Section 0 usr_server.o(i.custom_svc_cb_event_sent) - i.delay_us 0x11014d5c Section 0 xc_drv_systick.o(i.delay_us) - i.extract32_16 0x11014d8c Section 0 xc_drv_fmc_spi.o(i.extract32_16) - i.ferror 0x11014d9a Section 0 system_xinc.o(i.ferror) - i.flash_init 0x11014da0 Section 0 arch_main.o(i.flash_init) - i.flash_run 0x11014f04 Section 0 rf433.o(i.flash_run) - i.flash_size_and_type_get 0x11014f12 Section 0 xc_drv_fmc_spi.o(i.flash_size_and_type_get) - i.fmc_spi_read 0x11014f68 Section 0 fmc_spi_1.o(i.fmc_spi_read) - i.gapc_bond_ind_handler 0x11014f94 Section 0 app_sec.o(i.gapc_bond_ind_handler) - gapc_bond_ind_handler 0x11014f95 Thumb Code 262 app_sec.o(i.gapc_bond_ind_handler) - i.gapc_bond_req_ind_handler 0x11015194 Section 0 app_sec.o(i.gapc_bond_req_ind_handler) - gapc_bond_req_ind_handler 0x11015195 Thumb Code 338 app_sec.o(i.gapc_bond_req_ind_handler) - i.gapc_callback 0x110153b0 Section 0 app_task.o(i.gapc_callback) - gapc_callback 0x110153b1 Thumb Code 358 app_task.o(i.gapc_callback) - i.gapc_encrypt_ind_handler 0x110156fc Section 0 app_sec.o(i.gapc_encrypt_ind_handler) - gapc_encrypt_ind_handler 0x110156fd Thumb Code 22 app_sec.o(i.gapc_encrypt_ind_handler) - i.gapc_encrypt_req_ind_handler 0x11015768 Section 0 app_sec.o(i.gapc_encrypt_req_ind_handler) - gapc_encrypt_req_ind_handler 0x11015769 Thumb Code 204 app_sec.o(i.gapc_encrypt_req_ind_handler) - i.gapc_get_device_info_req_ind 0x11015930 Section 0 app_task.o(i.gapc_get_device_info_req_ind) - gapc_get_device_info_req_ind 0x11015931 Thumb Code 132 app_task.o(i.gapc_get_device_info_req_ind) - i.gapm_callback 0x110159b8 Section 0 app_task.o(i.gapm_callback) - gapm_callback 0x110159b9 Thumb Code 164 app_task.o(i.gapm_callback) - i.gapm_cmp_evt 0x11015afc Section 0 app_task.o(i.gapm_cmp_evt) - gapm_cmp_evt 0x11015afd Thumb Code 98 app_task.o(i.gapm_cmp_evt) - i.get_app_env 0x11015ba0 Section 0 app_task.o(i.get_app_env) - i.get_checksum 0x11015ba8 Section 0 fmc_spi_1.o(i.get_checksum) - get_checksum 0x11015ba9 Thumb Code 28 fmc_spi_1.o(i.get_checksum) - i.get_click_event 0x11015bc4 Section 0 key.o(i.get_click_event) - get_click_event 0x11015bc5 Thumb Code 46 key.o(i.get_click_event) - i.get_fota_env_addr 0x11015bf4 Section 0 nvds.o(i.get_fota_env_addr) - i.gpio_intr_callback 0x11015c08 Section 0 switch_s.o(i.gpio_intr_callback) - i.gpio_key_check 0x11015c40 Section 0 key.o(i.gpio_key_check) - i.key_click_state_reset 0x11015c54 Section 0 key.o(i.key_click_state_reset) - key_click_state_reset 0x11015c55 Thumb Code 14 key.o(i.key_click_state_reset) - i.led_gpio_init 0x11015c68 Section 0 led.o(i.led_gpio_init) - i.main 0x11015ca4 Section 0 arch_main.o(i.main) - i.nvds_browse_tag 0x11015cf8 Section 0 nvds.o(i.nvds_browse_tag) - i.nvds_del 0x11015d2c Section 0 nvds.o(i.nvds_del) - i.nvds_erase 0x11015d64 Section 0 nvds.o(i.nvds_erase) - i.nvds_get 0x11015de4 Section 0 nvds.o(i.nvds_get) - i.nvds_init 0x11015e28 Section 0 nvds.o(i.nvds_init) - i.nvds_init_memory 0x11015e6c Section 0 nvds.o(i.nvds_init_memory) - i.nvds_is_magic_number_ok 0x11015e8c Section 0 nvds.o(i.nvds_is_magic_number_ok) - i.nvds_purge 0x11015eb8 Section 0 nvds.o(i.nvds_purge) - i.nvds_put 0x11015f20 Section 0 nvds.o(i.nvds_put) - i.nvds_read 0x11015ff4 Section 0 nvds.o(i.nvds_read) - i.nvds_space_init 0x1101601c Section 0 nvds.o(i.nvds_space_init) - i.nvds_walk_tag 0x110160a0 Section 0 nvds.o(i.nvds_walk_tag) - i.nvds_write 0x110160d8 Section 0 nvds.o(i.nvds_write) - i.ota_slave_send_data 0x11016100 Section 0 ota_server.o(i.ota_slave_send_data) - i.ota_srv_get_hdl_from_att_idx 0x1101619c Section 0 ota_server.o(i.ota_srv_get_hdl_from_att_idx) - i.ota_write_flash 0x110161ac Section 0 ota_protocol.o(i.ota_write_flash) - i.pwm3_toggle 0x110161e8 Section 0 led.o(i.pwm3_toggle) - i.pwm_capture_ch0_callback 0x1101621c Section 0 xc_drv_pwm.o(i.pwm_capture_ch0_callback) - i.pwm_capture_ch1_callback 0x11016220 Section 0 xc_drv_pwm.o(i.pwm_capture_ch1_callback) - i.pwm_capture_ch2_callback 0x11016224 Section 0 xc_drv_pwm.o(i.pwm_capture_ch2_callback) - i.pwm_freq_to_period 0x11016228 Section 0 xc_drv_pwm.o(i.pwm_freq_to_period) - pwm_freq_to_period 0x11016229 Thumb Code 148 xc_drv_pwm.o(i.pwm_freq_to_period) - i.pwm_pin_set 0x11016304 Section 0 xc_drv_pwm.o(i.pwm_pin_set) - i.read_user_data 0x110163c4 Section 0 fmc_spi_1.o(i.read_user_data) - i.reverse_verif_is_true 0x11016448 Section 0 xc_drv_fmc_spi.o(i.reverse_verif_is_true) - i.rf433_gpio_init 0x11016456 Section 0 rf433.o(i.rf433_gpio_init) - i.rf433_receive 0x11016474 Section 0 rf433.o(i.rf433_receive) - i.rom_env_host_init 0x1101656c Section 0 arch_main.o(i.rom_env_host_init) - i.scan_433 0x11016594 Section 0 rf433.o(i.scan_433) - i.scan_uart 0x11016730 Section 0 uart_1.o(i.scan_uart) - i.set_TaskComps_timer 0x110167c0 Section 0 timeslice.o(i.set_TaskComps_timer) - i.set_single_addr_name 0x110167d0 Section 0 arch_main.o(i.set_single_addr_name) - i.set_vector 0x1101686c Section 0 system_xinc.o(i.set_vector) - i.slave_send_data 0x110168a8 Section 0 usr_server.o(i.slave_send_data) - i.srv_get_hdl_from_att_idx 0x11016944 Section 0 usr_server.o(i.srv_get_hdl_from_att_idx) - i.switch_init 0x11016954 Section 0 switch_s.o(i.switch_init) - i.systick_callback 0x110169c4 Section 0 xc_drv_systick.o(i.systick_callback) - i.timer0_2_init 0x110169c8 Section 0 timer.o(i.timer0_2_init) - i.timer3_callback 0x11016a50 Section 0 xc_drv_timer.o(i.timer3_callback) - i.trigger_check_process 0x11016a54 Section 0 switch_s.o(i.trigger_check_process) - i.uart_user_handler 0x11016cc4 Section 0 xc_drv_uart.o(i.uart_user_handler) - i.updateTimer 0x11016d74 Section 0 timer.o(i.updateTimer) - i.wdt_init 0x11016d8a Section 0 arch_main.o(i.wdt_init) - i.wright_user_data 0x11016da4 Section 0 fmc_spi_1.o(i.wright_user_data) - i.xc_adc_data_average 0x11016e2c Section 0 xc_drv_adc.o(i.xc_adc_data_average) - i.xc_ble_activity_delete 0x11016ea8 Section 0 xc_gap_api.o(i.xc_ble_activity_delete) - i.xc_bor_init 0x11016ed0 Section 0 xc_drv_bor.o(i.xc_bor_init) - i.xc_clock_bbpll_common_cfg 0x11016f00 Section 0 xc_drv_clock.o(i.xc_clock_bbpll_common_cfg) - i.xc_clock_bbpll_freq_cfg 0x11016f40 Section 0 xc_drv_clock.o(i.xc_clock_bbpll_freq_cfg) - i.xc_clock_hfclk_in_get 0x1101702c Section 0 xc_drv_clock.o(i.xc_clock_hfclk_in_get) - i.xc_clock_hfclk_set 0x11017038 Section 0 xc_drv_clock.o(i.xc_clock_hfclk_set) - i.xc_clock_init_cfg 0x11017114 Section 0 xc_drv_clock.o(i.xc_clock_init_cfg) - i.xc_clock_lfclk_in_get 0x1101712c Section 0 xc_drv_clock.o(i.xc_clock_lfclk_in_get) - i.xc_clock_lfclk_set 0x11017138 Section 0 xc_drv_clock.o(i.xc_clock_lfclk_set) - i.xc_fota_dev_ack_cmd 0x110171a4 Section 0 ota_protocol.o(i.xc_fota_dev_ack_cmd) - i.xc_gpio_direction_config 0x110171cc Section 0 xc_drv_gpio.o(i.xc_gpio_direction_config) - i.xc_gpio_fun_sel 0x110171e8 Section 0 xc_drv_gpio.o(i.xc_gpio_fun_sel) - i.xc_gpio_init 0x11017210 Section 0 xc_drv_gpio.o(i.xc_gpio_init) - i.xc_gpio_it_config 0x11017240 Section 0 xc_drv_gpio.o(i.xc_gpio_it_config) - i.xc_gpio_mux_ctl 0x11017274 Section 0 xc_drv_gpio.o(i.xc_gpio_mux_ctl) - i.xc_gpio_pull_config 0x110172c0 Section 0 xc_drv_gpio.o(i.xc_gpio_pull_config) - i.xc_gpio_read_pin 0x110173a8 Section 0 xc_drv_gpio.o(i.xc_gpio_read_pin) - i.xc_gpio_toggle_pin 0x110173cc Section 0 xc_drv_gpio.o(i.xc_gpio_toggle_pin) - i.xc_gpio_write_pin 0x110173f8 Section 0 xc_drv_gpio.o(i.xc_gpio_write_pin) - i.xc_hfclk_set 0x11017414 Section 0 xc_drv_clock.o(i.xc_hfclk_set) - i.xc_ota_schedule 0x11017454 Section 0 ota_protocol.o(i.xc_ota_schedule) - i.xc_pwm_dutycycle_set 0x110174b8 Section 0 xc_drv_pwm.o(i.xc_pwm_dutycycle_set) - i.xc_pwm_init 0x11017528 Section 0 xc_drv_pwm.o(i.xc_pwm_init) - i.xc_pwm_start_all 0x11017608 Section 0 xc_drv_pwm.o(i.xc_pwm_start_all) - i.xc_pwr_vol_set 0x11017624 Section 0 xc_drv_pwr.o(i.xc_pwr_vol_set) - i.xc_rc32k_soft_calib_set 0x11017680 Section 0 xc_drv_calib.o(i.xc_rc32k_soft_calib_set) - i.xc_system_param_check 0x11017778 Section 0 xc_drv_clock.o(i.xc_system_param_check) - i.xc_systick_unit_get 0x11017994 Section 0 xc_drv_clock.o(i.xc_systick_unit_get) - i.xc_timer_init 0x110179a0 Section 0 xc_drv_timer.o(i.xc_timer_init) - i.xc_timer_set_value 0x11017ac0 Section 0 xc_drv_timer.o(i.xc_timer_set_value) - i.xc_timer_start 0x11017ae8 Section 0 xc_drv_timer.o(i.xc_timer_start) - i.xc_timer_us_to_ticks 0x11017b24 Section 0 xc_drv_timer.o(i.xc_timer_us_to_ticks) - xc_timer_us_to_ticks 0x11017b25 Thumb Code 230 xc_drv_timer.o(i.xc_timer_us_to_ticks) - i.xc_uart_init 0x11017c18 Section 0 xc_drv_uart.o(i.xc_uart_init) - i.xc_unique_identification_read 0x11017e08 Section 0 xc_drv_fmc_spi.o(i.xc_unique_identification_read) - i.xc_wdt_init 0x11017ef0 Section 0 xc_drv_wdt.o(i.xc_wdt_init) - i.xc_wdt_refresh 0x11017f58 Section 0 xc_drv_wdt.o(i.xc_wdt_refresh) - i.xc_wdt_reload 0x11017f98 Section 0 xc_drv_wdt.o(i.xc_wdt_reload) - i.xc_wdt_start 0x11017fdc Section 0 xc_drv_wdt.o(i.xc_wdt_start) - locale$$code 0x11018010 Section 44 lc_numeric_c.o(locale$$code) - locale$$code 0x1101803c Section 44 lc_ctype_c.o(locale$$code) - x$fpl$fmul 0x11018068 Section 176 fmul.o(x$fpl$fmul) - x$fpl$printf1 0x11018118 Section 16 printf1.o(x$fpl$printf1) - x$fpl$printf2 0x11018128 Section 16 printf2.o(x$fpl$printf2) - .constdata 0x11018138 Section 8 app_task.o(.constdata) - x$fpl$usenofp 0x11018138 Section 0 usenofp.o(x$fpl$usenofp) - .constdata 0x11018140 Section 56 app_task.o(.constdata) - .constdata 0x11018178 Section 2 arch_main.o(.constdata) - .constdata 0x1101817c Section 40 app_sec.o(.constdata) - .constdata 0x110181a4 Section 8 app_sec.o(.constdata) - .constdata 0x110181ac Section 134 usr_server.o(.constdata) - custom_server_atts 0x110181ac Data 36 usr_server.o(.constdata) - custom_src_cb 0x110181d0 Data 20 usr_server.o(.constdata) - __func__ 0x110181e4 Data 25 usr_server.o(.constdata) - __func__ 0x110181fd Data 27 usr_server.o(.constdata) - __func__ 0x11018218 Data 26 usr_server.o(.constdata) - .constdata 0x11018232 Section 4 nvds.o(.constdata) - .constdata 0x11018236 Section 31 xc_drv_pwm.o(.constdata) - pwm_offset 0x11018236 Data 12 xc_drv_pwm.o(.constdata) - __func__ 0x11018242 Data 19 xc_drv_pwm.o(.constdata) - .constdata 0x11018255 Section 4 xc_drv_timer.o(.constdata) - timer_offset 0x11018255 Data 4 xc_drv_timer.o(.constdata) - .constdata 0x1101825a Section 6 xc_drv_uart.o(.constdata) - uart_offset 0x1101825a Data 6 xc_drv_uart.o(.constdata) - .constdata 0x11018260 Section 16 ota_protocol.o(.constdata) - __func__ 0x11018260 Data 16 ota_protocol.o(.constdata) - .constdata 0x11018270 Section 40 _printf_hex_int_ll_ptr.o(.constdata) - uc_hextab 0x11018270 Data 20 _printf_hex_int_ll_ptr.o(.constdata) - lc_hextab 0x11018284 Data 20 _printf_hex_int_ll_ptr.o(.constdata) - .constdata 0x11018298 Section 17 __printf_flags_ss_wp.o(.constdata) - maptable 0x11018298 Data 17 __printf_flags_ss_wp.o(.constdata) - .constdata 0x110182a9 Section 64 fdiv.o(.constdata) - fdiv_tab 0x110182a9 Data 64 fdiv.o(.constdata) - .constdata 0x110182ec Section 8 _printf_wctomb.o(.constdata) - initial_mbstate 0x110182ec Data 8 _printf_wctomb.o(.constdata) - .constdata 0x110182f4 Section 38 _printf_fp_hex.o(.constdata) - lc_hextab 0x110182f4 Data 19 _printf_fp_hex.o(.constdata) - uc_hextab 0x11018307 Data 19 _printf_fp_hex.o(.constdata) - .constdata 0x1101831c Section 148 bigflt0.o(.constdata) - tenpwrs_x 0x1101831c Data 60 bigflt0.o(.constdata) - tenpwrs_i 0x11018358 Data 64 bigflt0.o(.constdata) - .conststring 0x110183b0 Section 207 app_task.o(.conststring) - .conststring 0x11018480 Section 85 usr_server.o(.conststring) - .conststring 0x110184d8 Section 98 xc_drv_pwm.o(.conststring) - locale$$data 0x1101858c Section 28 lc_numeric_c.o(locale$$data) - __lcnum_c_name 0x11018590 Data 2 lc_numeric_c.o(locale$$data) - __lcnum_c_start 0x11018598 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_point 0x110185a4 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_thousands 0x110185a6 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_grouping 0x110185a7 Data 0 lc_numeric_c.o(locale$$data) - locale$$data 0x110185a8 Section 272 lc_ctype_c.o(locale$$data) - __lcnum_c_end 0x110185a8 Data 0 lc_numeric_c.o(locale$$data) - __lcctype_c_name 0x110185ac Data 2 lc_ctype_c.o(locale$$data) - __lcctype_c_start 0x110185b4 Data 0 lc_ctype_c.o(locale$$data) - __lcctype_c_end 0x110186b8 Data 0 lc_ctype_c.o(locale$$data) + i.__ARM_common_ll_muluu 0x1101416c Section 0 btod.o(i.__ARM_common_ll_muluu) + i.__ARM_common_switch8 0x1101419c Section 0 arch_main.o(i.__ARM_common_switch8) + i.__ARM_fpclassify 0x110141b8 Section 0 fpclassify.o(i.__ARM_fpclassify) + i._is_digit 0x110141e4 Section 0 __printf_wp.o(i._is_digit) + i._sys_exit 0x110141f2 Section 0 system_xinc.o(i._sys_exit) + i.adc_intr_callback 0x110141f4 Section 0 xc_drv_adc.o(i.adc_intr_callback) + i.app_create_advertising 0x11014280 Section 0 app_task.o(i.app_create_advertising) + i.app_delete_advertising 0x110142c8 Section 0 app_task.o(i.app_delete_advertising) + i.app_get_dev_name 0x11014304 Section 0 app_task.o(i.app_get_dev_name) + i.app_init 0x1101432c Section 0 app_task.o(i.app_init) + i.app_key_callback_handler 0x11014370 Section 0 rf433.o(i.app_key_callback_handler) + i.app_key_click_detection 0x110143b0 Section 0 key.o(i.app_key_click_detection) + app_key_click_detection 0x110143b1 Thumb Code 100 key.o(i.app_key_click_detection) + i.app_key_init 0x11014418 Section 0 key.o(i.app_key_init) + i.app_key_scan 0x11014448 Section 0 key.o(i.app_key_scan) + i.app_msg_handler 0x1101449c Section 0 app_task.o(i.app_msg_handler) + app_msg_handler 0x1101449d Thumb Code 102 app_task.o(i.app_msg_handler) + i.app_op_flash 0x1101450c Section 0 ota_flash_interface.o(i.app_op_flash) + i.app_op_flash_on 0x11014548 Section 0 ota_flash_interface.o(i.app_op_flash_on) + i.app_sec_msg_dflt_handler 0x11014560 Section 0 app_sec.o(i.app_sec_msg_dflt_handler) + app_sec_msg_dflt_handler 0x11014561 Thumb Code 4 app_sec.o(i.app_sec_msg_dflt_handler) + i.app_set_adv_data 0x11014564 Section 0 app_task.o(i.app_set_adv_data) + i.app_start_advertising 0x110145cc Section 0 app_task.o(i.app_start_advertising) + i.app_uart_init 0x11014608 Section 0 arch_main.o(i.app_uart_init) + i.ble_callback 0x11014660 Section 0 uart_1.o(i.ble_callback) + i.ble_flash_handle 0x11014678 Section 0 ota_flash_interface.o(i.ble_flash_handle) + i.ble_flash_later_page_erase 0x11014730 Section 0 ota_flash_interface.o(i.ble_flash_later_page_erase) + i.ble_flash_later_write_page 0x1101474c Section 0 ota_flash_interface.o(i.ble_flash_later_write_page) + i.ble_message_process 0x11014778 Section 0 uart_1.o(i.ble_message_process) + i.ble_mode_scan 0x110147a8 Section 0 rf433.o(i.ble_mode_scan) + i.bluetooth_init 0x110147f0 Section 0 arch_main.o(i.bluetooth_init) + i.board_init 0x1101485c Section 0 arch_main.o(i.board_init) + i.chx_gpio_init 0x110148f0 Section 0 rf433.o(i.chx_gpio_init) + i.clock_init 0x11014948 Section 0 sleep.o(i.clock_init) + i.custom_svc_add 0x110149b8 Section 0 usr_server.o(i.custom_svc_add) + i.custom_svc_cb_att_read_get 0x11014a94 Section 0 usr_server.o(i.custom_svc_cb_att_read_get) + i.custom_svc_cb_att_val_set 0x11014b44 Section 0 usr_server.o(i.custom_svc_cb_att_val_set) + i.custom_svc_cb_event_sent 0x11014cec Section 0 usr_server.o(i.custom_svc_cb_event_sent) + i.delay_us 0x11014d38 Section 0 xc_drv_systick.o(i.delay_us) + i.extract32_16 0x11014d68 Section 0 xc_drv_fmc_spi.o(i.extract32_16) + i.ferror 0x11014d76 Section 0 system_xinc.o(i.ferror) + i.flash_init 0x11014d7c Section 0 arch_main.o(i.flash_init) + i.flash_run 0x11014ee0 Section 0 rf433.o(i.flash_run) + i.flash_size_and_type_get 0x11014eee Section 0 xc_drv_fmc_spi.o(i.flash_size_and_type_get) + i.fmc_spi_read 0x11014f44 Section 0 fmc_spi_1.o(i.fmc_spi_read) + i.gapc_bond_ind_handler 0x11014f70 Section 0 app_sec.o(i.gapc_bond_ind_handler) + gapc_bond_ind_handler 0x11014f71 Thumb Code 262 app_sec.o(i.gapc_bond_ind_handler) + i.gapc_bond_req_ind_handler 0x11015170 Section 0 app_sec.o(i.gapc_bond_req_ind_handler) + gapc_bond_req_ind_handler 0x11015171 Thumb Code 338 app_sec.o(i.gapc_bond_req_ind_handler) + i.gapc_callback 0x1101538c Section 0 app_task.o(i.gapc_callback) + gapc_callback 0x1101538d Thumb Code 358 app_task.o(i.gapc_callback) + i.gapc_encrypt_ind_handler 0x110156d8 Section 0 app_sec.o(i.gapc_encrypt_ind_handler) + gapc_encrypt_ind_handler 0x110156d9 Thumb Code 22 app_sec.o(i.gapc_encrypt_ind_handler) + i.gapc_encrypt_req_ind_handler 0x11015744 Section 0 app_sec.o(i.gapc_encrypt_req_ind_handler) + gapc_encrypt_req_ind_handler 0x11015745 Thumb Code 204 app_sec.o(i.gapc_encrypt_req_ind_handler) + i.gapc_get_device_info_req_ind 0x1101590c Section 0 app_task.o(i.gapc_get_device_info_req_ind) + gapc_get_device_info_req_ind 0x1101590d Thumb Code 132 app_task.o(i.gapc_get_device_info_req_ind) + i.gapm_callback 0x11015994 Section 0 app_task.o(i.gapm_callback) + gapm_callback 0x11015995 Thumb Code 164 app_task.o(i.gapm_callback) + i.gapm_cmp_evt 0x11015ad8 Section 0 app_task.o(i.gapm_cmp_evt) + gapm_cmp_evt 0x11015ad9 Thumb Code 98 app_task.o(i.gapm_cmp_evt) + i.get_app_env 0x11015b7c Section 0 app_task.o(i.get_app_env) + i.get_checksum 0x11015b84 Section 0 fmc_spi_1.o(i.get_checksum) + get_checksum 0x11015b85 Thumb Code 28 fmc_spi_1.o(i.get_checksum) + i.get_click_event 0x11015ba0 Section 0 key.o(i.get_click_event) + get_click_event 0x11015ba1 Thumb Code 46 key.o(i.get_click_event) + i.get_fota_env_addr 0x11015bd0 Section 0 nvds.o(i.get_fota_env_addr) + i.gpio_intr_callback 0x11015be4 Section 0 switch_s.o(i.gpio_intr_callback) + i.gpio_key_check 0x11015c1c Section 0 key.o(i.gpio_key_check) + i.key_click_state_reset 0x11015c30 Section 0 key.o(i.key_click_state_reset) + key_click_state_reset 0x11015c31 Thumb Code 14 key.o(i.key_click_state_reset) + i.led_gpio_init 0x11015c44 Section 0 led.o(i.led_gpio_init) + i.main 0x11015c80 Section 0 arch_main.o(i.main) + i.nvds_browse_tag 0x11015cd4 Section 0 nvds.o(i.nvds_browse_tag) + i.nvds_del 0x11015d08 Section 0 nvds.o(i.nvds_del) + i.nvds_erase 0x11015d40 Section 0 nvds.o(i.nvds_erase) + i.nvds_get 0x11015dc0 Section 0 nvds.o(i.nvds_get) + i.nvds_init 0x11015e04 Section 0 nvds.o(i.nvds_init) + i.nvds_init_memory 0x11015e48 Section 0 nvds.o(i.nvds_init_memory) + i.nvds_is_magic_number_ok 0x11015e68 Section 0 nvds.o(i.nvds_is_magic_number_ok) + i.nvds_purge 0x11015e94 Section 0 nvds.o(i.nvds_purge) + i.nvds_put 0x11015efc Section 0 nvds.o(i.nvds_put) + i.nvds_read 0x11015fd0 Section 0 nvds.o(i.nvds_read) + i.nvds_space_init 0x11015ff8 Section 0 nvds.o(i.nvds_space_init) + i.nvds_walk_tag 0x1101607c Section 0 nvds.o(i.nvds_walk_tag) + i.nvds_write 0x110160b4 Section 0 nvds.o(i.nvds_write) + i.ota_slave_send_data 0x110160dc Section 0 ota_server.o(i.ota_slave_send_data) + i.ota_srv_get_hdl_from_att_idx 0x11016178 Section 0 ota_server.o(i.ota_srv_get_hdl_from_att_idx) + i.ota_write_flash 0x11016188 Section 0 ota_protocol.o(i.ota_write_flash) + i.pwm3_toggle 0x110161c4 Section 0 led.o(i.pwm3_toggle) + i.pwm_capture_ch0_callback 0x110161f8 Section 0 xc_drv_pwm.o(i.pwm_capture_ch0_callback) + i.pwm_capture_ch1_callback 0x110161fc Section 0 xc_drv_pwm.o(i.pwm_capture_ch1_callback) + i.pwm_capture_ch2_callback 0x11016200 Section 0 xc_drv_pwm.o(i.pwm_capture_ch2_callback) + i.pwm_freq_to_period 0x11016204 Section 0 xc_drv_pwm.o(i.pwm_freq_to_period) + pwm_freq_to_period 0x11016205 Thumb Code 148 xc_drv_pwm.o(i.pwm_freq_to_period) + i.pwm_pin_set 0x110162e0 Section 0 xc_drv_pwm.o(i.pwm_pin_set) + i.read_user_data 0x110163a0 Section 0 fmc_spi_1.o(i.read_user_data) + i.reverse_verif_is_true 0x11016424 Section 0 xc_drv_fmc_spi.o(i.reverse_verif_is_true) + i.rf433_abs_diff_u16 0x11016432 Section 0 rf433_decoder.o(i.rf433_abs_diff_u16) + rf433_abs_diff_u16 0x11016433 Thumb Code 14 rf433_decoder.o(i.rf433_abs_diff_u16) + i.rf433_decode_reset 0x11016440 Section 0 rf433_decoder.o(i.rf433_decode_reset) + rf433_decode_reset 0x11016441 Thumb Code 32 rf433_decoder.o(i.rf433_decode_reset) + i.rf433_decoder_get_frame 0x11016464 Section 0 rf433_decoder.o(i.rf433_decoder_get_frame) + i.rf433_decoder_init 0x11016488 Section 0 rf433_decoder.o(i.rf433_decoder_init) + i.rf433_decoder_process 0x110164bc Section 0 rf433_decoder.o(i.rf433_decoder_process) + i.rf433_decoder_sample 0x110164fc Section 0 rf433_decoder.o(i.rf433_decoder_sample) + i.rf433_gpio_init 0x11016570 Section 0 rf433.o(i.rf433_gpio_init) + i.rf433_is_long 0x11016590 Section 0 rf433_decoder.o(i.rf433_is_long) + rf433_is_long 0x11016591 Thumb Code 22 rf433_decoder.o(i.rf433_is_long) + i.rf433_is_short 0x110165ac Section 0 rf433_decoder.o(i.rf433_is_short) + rf433_is_short 0x110165ad Thumb Code 22 rf433_decoder.o(i.rf433_is_short) + i.rf433_limit_t 0x110165c8 Section 0 rf433_decoder.o(i.rf433_limit_t) + rf433_limit_t 0x110165c9 Thumb Code 16 rf433_decoder.o(i.rf433_limit_t) + i.rf433_output_code 0x110165d8 Section 0 rf433_decoder.o(i.rf433_output_code) + rf433_output_code 0x110165d9 Thumb Code 84 rf433_decoder.o(i.rf433_output_code) + i.rf433_process_clean_pulse 0x11016634 Section 0 rf433_decoder.o(i.rf433_process_clean_pulse) + rf433_process_clean_pulse 0x11016635 Thumb Code 538 rf433_decoder.o(i.rf433_process_clean_pulse) + i.rf433_repair_input_pulse 0x1101687c Section 0 rf433_decoder.o(i.rf433_repair_input_pulse) + rf433_repair_input_pulse 0x1101687d Thumb Code 188 rf433_decoder.o(i.rf433_repair_input_pulse) + i.rf433_repair_reset 0x1101693c Section 0 rf433_decoder.o(i.rf433_repair_reset) + rf433_repair_reset 0x1101693d Thumb Code 20 rf433_decoder.o(i.rf433_repair_reset) + i.rf433_update_range_by_t 0x11016954 Section 0 rf433_decoder.o(i.rf433_update_range_by_t) + rf433_update_range_by_t 0x11016955 Thumb Code 104 rf433_decoder.o(i.rf433_update_range_by_t) + i.rom_env_host_init 0x110169c0 Section 0 arch_main.o(i.rom_env_host_init) + i.scan_433 0x110169e8 Section 0 rf433.o(i.scan_433) + i.scan_uart 0x11016b98 Section 0 uart_1.o(i.scan_uart) + i.set_TaskComps_timer 0x11016c28 Section 0 timeslice.o(i.set_TaskComps_timer) + i.set_single_addr_name 0x11016c38 Section 0 arch_main.o(i.set_single_addr_name) + i.set_vector 0x11016cd4 Section 0 system_xinc.o(i.set_vector) + i.slave_send_data 0x11016d10 Section 0 usr_server.o(i.slave_send_data) + i.srv_get_hdl_from_att_idx 0x11016dac Section 0 usr_server.o(i.srv_get_hdl_from_att_idx) + i.switch_init 0x11016dbc Section 0 switch_s.o(i.switch_init) + i.systick_callback 0x11016e2c Section 0 xc_drv_systick.o(i.systick_callback) + i.timer0_2_init 0x11016e30 Section 0 timer.o(i.timer0_2_init) + i.timer3_callback 0x11016eb8 Section 0 xc_drv_timer.o(i.timer3_callback) + i.trigger_check_process 0x11016ebc Section 0 switch_s.o(i.trigger_check_process) + i.uart_user_handler 0x1101712c Section 0 xc_drv_uart.o(i.uart_user_handler) + i.updateTimer 0x110171dc Section 0 timer.o(i.updateTimer) + i.wdt_init 0x110171f2 Section 0 arch_main.o(i.wdt_init) + i.wright_user_data 0x1101720c Section 0 fmc_spi_1.o(i.wright_user_data) + i.xc_adc_data_average 0x11017294 Section 0 xc_drv_adc.o(i.xc_adc_data_average) + i.xc_ble_activity_delete 0x11017310 Section 0 xc_gap_api.o(i.xc_ble_activity_delete) + i.xc_bor_init 0x11017338 Section 0 xc_drv_bor.o(i.xc_bor_init) + i.xc_clock_bbpll_common_cfg 0x11017368 Section 0 xc_drv_clock.o(i.xc_clock_bbpll_common_cfg) + i.xc_clock_bbpll_freq_cfg 0x110173a8 Section 0 xc_drv_clock.o(i.xc_clock_bbpll_freq_cfg) + i.xc_clock_hfclk_in_get 0x11017494 Section 0 xc_drv_clock.o(i.xc_clock_hfclk_in_get) + i.xc_clock_hfclk_set 0x110174a0 Section 0 xc_drv_clock.o(i.xc_clock_hfclk_set) + i.xc_clock_init_cfg 0x1101757c Section 0 xc_drv_clock.o(i.xc_clock_init_cfg) + i.xc_clock_lfclk_in_get 0x11017594 Section 0 xc_drv_clock.o(i.xc_clock_lfclk_in_get) + i.xc_clock_lfclk_set 0x110175a0 Section 0 xc_drv_clock.o(i.xc_clock_lfclk_set) + i.xc_fota_dev_ack_cmd 0x1101760c Section 0 ota_protocol.o(i.xc_fota_dev_ack_cmd) + i.xc_gpio_direction_config 0x11017634 Section 0 xc_drv_gpio.o(i.xc_gpio_direction_config) + i.xc_gpio_fun_sel 0x11017650 Section 0 xc_drv_gpio.o(i.xc_gpio_fun_sel) + i.xc_gpio_init 0x11017678 Section 0 xc_drv_gpio.o(i.xc_gpio_init) + i.xc_gpio_it_config 0x110176a8 Section 0 xc_drv_gpio.o(i.xc_gpio_it_config) + i.xc_gpio_mux_ctl 0x110176dc Section 0 xc_drv_gpio.o(i.xc_gpio_mux_ctl) + i.xc_gpio_pull_config 0x11017728 Section 0 xc_drv_gpio.o(i.xc_gpio_pull_config) + i.xc_gpio_read_pin 0x11017810 Section 0 xc_drv_gpio.o(i.xc_gpio_read_pin) + i.xc_gpio_toggle_pin 0x11017834 Section 0 xc_drv_gpio.o(i.xc_gpio_toggle_pin) + i.xc_gpio_write_pin 0x11017860 Section 0 xc_drv_gpio.o(i.xc_gpio_write_pin) + i.xc_hfclk_set 0x1101787c Section 0 xc_drv_clock.o(i.xc_hfclk_set) + i.xc_ota_schedule 0x110178bc Section 0 ota_protocol.o(i.xc_ota_schedule) + i.xc_pwm_dutycycle_set 0x11017920 Section 0 xc_drv_pwm.o(i.xc_pwm_dutycycle_set) + i.xc_pwm_init 0x11017990 Section 0 xc_drv_pwm.o(i.xc_pwm_init) + i.xc_pwm_start_all 0x11017a70 Section 0 xc_drv_pwm.o(i.xc_pwm_start_all) + i.xc_pwr_vol_set 0x11017a8c Section 0 xc_drv_pwr.o(i.xc_pwr_vol_set) + i.xc_rc32k_soft_calib_set 0x11017ae8 Section 0 xc_drv_calib.o(i.xc_rc32k_soft_calib_set) + i.xc_system_param_check 0x11017be0 Section 0 xc_drv_clock.o(i.xc_system_param_check) + i.xc_systick_unit_get 0x11017dfc Section 0 xc_drv_clock.o(i.xc_systick_unit_get) + i.xc_timer_init 0x11017e08 Section 0 xc_drv_timer.o(i.xc_timer_init) + i.xc_timer_set_value 0x11017f28 Section 0 xc_drv_timer.o(i.xc_timer_set_value) + i.xc_timer_start 0x11017f50 Section 0 xc_drv_timer.o(i.xc_timer_start) + i.xc_timer_us_to_ticks 0x11017f8c Section 0 xc_drv_timer.o(i.xc_timer_us_to_ticks) + xc_timer_us_to_ticks 0x11017f8d Thumb Code 230 xc_drv_timer.o(i.xc_timer_us_to_ticks) + i.xc_uart_init 0x11018080 Section 0 xc_drv_uart.o(i.xc_uart_init) + i.xc_unique_identification_read 0x11018270 Section 0 xc_drv_fmc_spi.o(i.xc_unique_identification_read) + i.xc_wdt_init 0x11018358 Section 0 xc_drv_wdt.o(i.xc_wdt_init) + i.xc_wdt_refresh 0x110183c0 Section 0 xc_drv_wdt.o(i.xc_wdt_refresh) + i.xc_wdt_reload 0x11018400 Section 0 xc_drv_wdt.o(i.xc_wdt_reload) + i.xc_wdt_start 0x11018444 Section 0 xc_drv_wdt.o(i.xc_wdt_start) + locale$$code 0x11018478 Section 44 lc_numeric_c.o(locale$$code) + locale$$code 0x110184a4 Section 44 lc_ctype_c.o(locale$$code) + x$fpl$fmul 0x110184d0 Section 176 fmul.o(x$fpl$fmul) + x$fpl$printf1 0x11018580 Section 16 printf1.o(x$fpl$printf1) + x$fpl$printf2 0x11018590 Section 16 printf2.o(x$fpl$printf2) + .constdata 0x110185a0 Section 8 app_task.o(.constdata) + x$fpl$usenofp 0x110185a0 Section 0 usenofp.o(x$fpl$usenofp) + .constdata 0x110185a8 Section 56 app_task.o(.constdata) + .constdata 0x110185e0 Section 2 arch_main.o(.constdata) + .constdata 0x110185e4 Section 40 app_sec.o(.constdata) + .constdata 0x1101860c Section 8 app_sec.o(.constdata) + .constdata 0x11018614 Section 134 usr_server.o(.constdata) + custom_server_atts 0x11018614 Data 36 usr_server.o(.constdata) + custom_src_cb 0x11018638 Data 20 usr_server.o(.constdata) + __func__ 0x1101864c Data 25 usr_server.o(.constdata) + __func__ 0x11018665 Data 27 usr_server.o(.constdata) + __func__ 0x11018680 Data 26 usr_server.o(.constdata) + .constdata 0x1101869a Section 4 nvds.o(.constdata) + .constdata 0x1101869e Section 31 xc_drv_pwm.o(.constdata) + pwm_offset 0x1101869e Data 12 xc_drv_pwm.o(.constdata) + __func__ 0x110186aa Data 19 xc_drv_pwm.o(.constdata) + .constdata 0x110186bd Section 4 xc_drv_timer.o(.constdata) + timer_offset 0x110186bd Data 4 xc_drv_timer.o(.constdata) + .constdata 0x110186c2 Section 6 xc_drv_uart.o(.constdata) + uart_offset 0x110186c2 Data 6 xc_drv_uart.o(.constdata) + .constdata 0x110186c8 Section 16 ota_protocol.o(.constdata) + __func__ 0x110186c8 Data 16 ota_protocol.o(.constdata) + .constdata 0x110186d8 Section 40 _printf_hex_int_ll_ptr.o(.constdata) + uc_hextab 0x110186d8 Data 20 _printf_hex_int_ll_ptr.o(.constdata) + lc_hextab 0x110186ec Data 20 _printf_hex_int_ll_ptr.o(.constdata) + .constdata 0x11018700 Section 17 __printf_flags_ss_wp.o(.constdata) + maptable 0x11018700 Data 17 __printf_flags_ss_wp.o(.constdata) + .constdata 0x11018711 Section 64 fdiv.o(.constdata) + fdiv_tab 0x11018711 Data 64 fdiv.o(.constdata) + .constdata 0x11018754 Section 8 _printf_wctomb.o(.constdata) + initial_mbstate 0x11018754 Data 8 _printf_wctomb.o(.constdata) + .constdata 0x1101875c Section 38 _printf_fp_hex.o(.constdata) + lc_hextab 0x1101875c Data 19 _printf_fp_hex.o(.constdata) + uc_hextab 0x1101876f Data 19 _printf_fp_hex.o(.constdata) + .constdata 0x11018784 Section 148 bigflt0.o(.constdata) + tenpwrs_x 0x11018784 Data 60 bigflt0.o(.constdata) + tenpwrs_i 0x110187c0 Data 64 bigflt0.o(.constdata) + .conststring 0x11018818 Section 207 app_task.o(.conststring) + .conststring 0x110188e8 Section 85 usr_server.o(.conststring) + .conststring 0x11018940 Section 98 xc_drv_pwm.o(.conststring) + .conststring 0x110189a4 Section 181 rf433_decoder.o(.conststring) + locale$$data 0x11018aac Section 28 lc_numeric_c.o(locale$$data) + __lcnum_c_name 0x11018ab0 Data 2 lc_numeric_c.o(locale$$data) + __lcnum_c_start 0x11018ab8 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_point 0x11018ac4 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_thousands 0x11018ac6 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_grouping 0x11018ac7 Data 0 lc_numeric_c.o(locale$$data) + locale$$data 0x11018ac8 Section 272 lc_ctype_c.o(locale$$data) + __lcnum_c_end 0x11018ac8 Data 0 lc_numeric_c.o(locale$$data) + __lcctype_c_name 0x11018acc Data 2 lc_ctype_c.o(locale$$data) + __lcctype_c_start 0x11018ad4 Data 0 lc_ctype_c.o(locale$$data) + __lcctype_c_end 0x11018bd8 Data 0 lc_ctype_c.o(locale$$data) ram_em 0x53006c00 Section 512 nvds.o(ram_em) ram_em 0x53006e00 Section 2091 ota_protocol.o(ram_em) @@ -2422,102 +2509,107 @@ Image Symbol Table Long Thumb to Thumb Veneer to xc_pwm_dutycycle_set 0x100024c1 Thumb Code 12 anon$$obj.o(Veneer$$Code) Long Thumb to Thumb Veneer to TaskRemarks 0x100024cd Thumb Code 12 anon$$obj.o(Veneer$$Code) Long Thumb to Thumb Veneer to updateTimer 0x100024d9 Thumb Code 12 anon$$obj.o(Veneer$$Code) - Long Thumb to Thumb Veneer to rf433_receive 0x100024e5 Thumb Code 12 anon$$obj.o(Veneer$$Code) - sendchar 0x10002509 Thumb Code 18 system_xinc.o(ram_code) - fputc 0x1000251b Thumb Code 2 system_xinc.o(ram_code) - rf_rssi_convert 0x10002521 Thumb Code 14 arch_main.o(ram_code) - PendSV_Handler 0x1000252f Thumb Code 34 arch_main.o(ram_code) - MPU_Handler 0x1000255d Thumb Code 170 xc_drv_bor.o(ram_code) - xc_fmc_spi_init_oprt 0x10002759 Thumb Code 138 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_wake_up 0x100027e3 Thumb Code 40 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_erase_page 0x10002873 Thumb Code 80 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_write_page 0x100028c3 Thumb Code 104 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_otp_read_page 0x1000292b Thumb Code 166 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_read_page 0x100029d1 Thumb Code 126 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_read 0x10002a4f Thumb Code 142 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_ruid 0x10002add Thumb Code 104 xc_drv_fmc_spi.o(ram_code) - xc_fmc_spi_flash_rdid 0x10002b45 Thumb Code 86 xc_drv_fmc_spi.o(ram_code) - RTC_Handler 0x10002bdd Thumb Code 40 xc_drv_rtc.o(ram_code) - timer0_callback 0x10002c09 Thumb Code 118 timer.o(ram_code) - timer1_callback 0x10002c7f Thumb Code 24 timer.o(ram_code) - timer2_callback 0x10002c97 Thumb Code 8 timer.o(ram_code) - app_key_hold_detection 0x10002cb1 Thumb Code 52 key.o(ram_code) - app_new_key_detection 0x10002ce5 Thumb Code 114 key.o(ram_code) - key_check_process 0x10002d57 Thumb Code 30 key.o(ram_code) - __stdout 0x10002d78 Data 4 system_xinc.o(.data) - app_env 0x10002d7c Data 52 app_task.o(.data) - app_state 0x10002db0 Data 1 app_task.o(.data) - bond_flag 0x10002db1 Data 1 app_sec.o(.data) - app_sec_env 0x10002db2 Data 1 app_sec.o(.data) - srv_user_lid 0x10002db4 Data 1 usr_server.o(.data) - custom_svc_tx_char_notify 0x10002db5 Data 1 usr_server.o(.data) - custom_svc_start_hdl 0x10002db6 Data 2 usr_server.o(.data) - nvds_temp_buf 0x10002db8 Data 4 nvds.o(.data) - period 0x10002dd0 Data 8 xc_drv_pwm.o(.data) - timer_n_callback 0x10002dd8 Data 16 xc_drv_timer.o(.data) - led_1_count_time 0x10002de8 Data 2 timer.o(.data) - led_2_count_time 0x10002dea Data 2 timer.o(.data) - led1_on_timer 0x10002dec Data 2 timer.o(.data) - led2_on_timer 0x10002dee Data 2 timer.o(.data) - timer1 0x10002df0 Data 8 timer.o(.data) - timer2 0x10002df8 Data 8 timer.o(.data) - TaskComps 0x10002e00 Data 128 timeslice.o(.data) - receive_mode 0x10002e80 Data 1 uart_1.o(.data) - p_ble_data_msg 0x10002e84 Data 4 uart_1.o(.data) - user_ble_data_msg 0x10002e88 Data 4 uart_1.o(.data) - adress_H 0x10002e8c Data 1 rf433.o(.data) - adress_L 0x10002e8d Data 1 rf433.o(.data) - key_state 0x10002e8e Data 1 rf433.o(.data) - KEY_STATE_re 0x10002e8f Data 1 rf433.o(.data) - long_flag_s 0x10002e90 Data 1 rf433.o(.data) - res_data 0x10002e92 Data 1 rf433.o(.data) - adress_ture_flag 0x10002e93 Data 1 rf433.o(.data) - adress_index_ture 0x10002e94 Data 1 rf433.o(.data) - adress_index 0x10002e95 Data 1 rf433.o(.data) - flash_ch1_state 0x10002e96 Data 1 rf433.o(.data) - flash_ch2_state 0x10002e97 Data 1 rf433.o(.data) - high_level_time 0x10002e98 Data 1 rf433.o(.data) - low_level_time 0x10002e99 Data 1 rf433.o(.data) - receive_data_cnt 0x10002e9a Data 1 rf433.o(.data) - rf_flag 0x10002ea0 Data 2 rf433.o(.data) - receive_temp 0x10002ea4 Data 4 rf433.o(.data) - receive_data 0x10002ea8 Data 4 rf433.o(.data) - adress_H_array 0x10002eac Data 5 rf433.o(.data) - adress_L_array 0x10002eb1 Data 5 rf433.o(.data) - adress_ch_flag 0x10002eb6 Data 5 rf433.o(.data) - Key_TypeDef 0x10002ebc Data 8 rf433.o(.data) - trig1_cnt 0x10002ec4 Data 1 switch_s.o(.data) - trig1_wait 0x10002ec5 Data 1 switch_s.o(.data) - trig2_cnt 0x10002ec6 Data 1 switch_s.o(.data) - trig2_wait 0x10002ec7 Data 1 switch_s.o(.data) - rf433_sw_flag 0x10002ec8 Data 1 switch_s.o(.data) - switch1_RELEASE_flag 0x10002ecb Data 1 switch_s.o(.data) - switch2_RELEASE_flag 0x10002ecc Data 1 switch_s.o(.data) - s1_first_press_flag 0x10002ecd Data 1 switch_s.o(.data) - s2_first_press_flag 0x10002ece Data 1 switch_s.o(.data) - S1_first_on_state 0x10002ecf Data 1 switch_s.o(.data) - S2_first_on_state 0x10002ed0 Data 1 switch_s.o(.data) - trig1_timeout 0x10002ed2 Data 2 switch_s.o(.data) - trig2_timeout 0x10002ed4 Data 2 switch_s.o(.data) - key_callback 0x10002ee4 Data 4 key.o(.data) - g_key_click_state 0x10002ee8 Data 8 key.o(.data) - led_state 0x10002ef0 Data 1 led.o(.data) - app_op_flash_flag 0x10002ef2 Data 1 ota_flash_interface.o(.data) - ota_flag 0x10002ef4 Data 1 ota_protocol.o(.data) - jump2app 0x10002ef8 Data 4 ota_protocol.o(.data) - fotas_status 0x10002efc Data 9 ota_protocol.o(.data) - ota_srv_user_lid 0x10002f06 Data 1 ota_server.o(.data) - ota_svc_tx_char_notify 0x10002f07 Data 1 ota_server.o(.data) - ota_svc_start_hdl 0x10002f08 Data 2 ota_server.o(.data) - adv_info 0x10002f0c Data 28 arch_main.o(.bss) - nvds_env 0x10002f28 Data 24 nvds.o(.bss) - clock_cb 0x10002f80 Data 16 xc_drv_clock.o(.bss) - uart_ctl_block 0x10002f90 Data 12 xc_drv_uart.o(.bss) - r_data 0x10002f9c Data 256 fmc_spi_1.o(.bss) - app_data 0x1000309c Data 256 fmc_spi_1.o(.bss) - op_flash 0x1000319c Data 272 ota_flash_interface.o(.bss) - __libspace_start 0x100033c0 Data 96 libspace.o(.bss) - __temporary_stack_top$libspace 0x10003420 Data 0 libspace.o(.bss) + Long Thumb to Thumb Veneer to xc_gpio_read_pin 0x100024e5 Thumb Code 12 anon$$obj.o(Veneer$$Code) + Long Thumb to Thumb Veneer to rf433_decoder_sample 0x100024f1 Thumb Code 12 anon$$obj.o(Veneer$$Code) + sendchar 0x10002515 Thumb Code 18 system_xinc.o(ram_code) + fputc 0x10002527 Thumb Code 2 system_xinc.o(ram_code) + rf_rssi_convert 0x1000252d Thumb Code 14 arch_main.o(ram_code) + PendSV_Handler 0x1000253b Thumb Code 34 arch_main.o(ram_code) + MPU_Handler 0x10002569 Thumb Code 170 xc_drv_bor.o(ram_code) + xc_fmc_spi_init_oprt 0x10002765 Thumb Code 138 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_wake_up 0x100027ef Thumb Code 40 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_erase_page 0x1000287f Thumb Code 80 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_write_page 0x100028cf Thumb Code 104 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_otp_read_page 0x10002937 Thumb Code 166 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_read_page 0x100029dd Thumb Code 126 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_read 0x10002a5b Thumb Code 142 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_ruid 0x10002ae9 Thumb Code 104 xc_drv_fmc_spi.o(ram_code) + xc_fmc_spi_flash_rdid 0x10002b51 Thumb Code 86 xc_drv_fmc_spi.o(ram_code) + RTC_Handler 0x10002be9 Thumb Code 40 xc_drv_rtc.o(ram_code) + timer0_callback 0x10002c15 Thumb Code 118 timer.o(ram_code) + timer1_callback 0x10002c8b Thumb Code 24 timer.o(ram_code) + timer2_callback 0x10002ca3 Thumb Code 16 timer.o(ram_code) + app_key_hold_detection 0x10002cc5 Thumb Code 52 key.o(ram_code) + app_new_key_detection 0x10002cf9 Thumb Code 114 key.o(ram_code) + key_check_process 0x10002d6b Thumb Code 30 key.o(ram_code) + __stdout 0x10002d8c Data 4 system_xinc.o(.data) + app_env 0x10002d90 Data 52 app_task.o(.data) + app_state 0x10002dc4 Data 1 app_task.o(.data) + bond_flag 0x10002dc5 Data 1 app_sec.o(.data) + app_sec_env 0x10002dc6 Data 1 app_sec.o(.data) + srv_user_lid 0x10002dc8 Data 1 usr_server.o(.data) + custom_svc_tx_char_notify 0x10002dc9 Data 1 usr_server.o(.data) + custom_svc_start_hdl 0x10002dca Data 2 usr_server.o(.data) + nvds_temp_buf 0x10002dcc Data 4 nvds.o(.data) + period 0x10002de0 Data 8 xc_drv_pwm.o(.data) + timer_n_callback 0x10002de8 Data 16 xc_drv_timer.o(.data) + led_1_count_time 0x10002df8 Data 2 timer.o(.data) + led_2_count_time 0x10002dfa Data 2 timer.o(.data) + led1_on_timer 0x10002dfc Data 2 timer.o(.data) + led2_on_timer 0x10002dfe Data 2 timer.o(.data) + timer1 0x10002e00 Data 8 timer.o(.data) + timer2 0x10002e08 Data 8 timer.o(.data) + TaskComps 0x10002e10 Data 144 timeslice.o(.data) + receive_mode 0x10002ea0 Data 1 uart_1.o(.data) + p_ble_data_msg 0x10002ea4 Data 4 uart_1.o(.data) + user_ble_data_msg 0x10002ea8 Data 4 uart_1.o(.data) + adress_H 0x10002eac Data 1 rf433.o(.data) + adress_L 0x10002ead Data 1 rf433.o(.data) + key_state 0x10002eae Data 1 rf433.o(.data) + KEY_STATE_re 0x10002eaf Data 1 rf433.o(.data) + long_flag_s 0x10002eb0 Data 1 rf433.o(.data) + res_data 0x10002eb2 Data 1 rf433.o(.data) + adress_ture_flag 0x10002eb3 Data 1 rf433.o(.data) + adress_index_ture 0x10002eb4 Data 1 rf433.o(.data) + adress_index 0x10002eb5 Data 1 rf433.o(.data) + flash_ch1_state 0x10002eb6 Data 1 rf433.o(.data) + flash_ch2_state 0x10002eb7 Data 1 rf433.o(.data) + last_H_adress 0x10002eb8 Data 1 rf433.o(.data) + last_L_adress 0x10002eb9 Data 1 rf433.o(.data) + high_level_time 0x10002eba Data 1 rf433.o(.data) + low_level_time 0x10002ebb Data 1 rf433.o(.data) + receive_data_cnt 0x10002ebc Data 1 rf433.o(.data) + rf_flag 0x10002ec2 Data 2 rf433.o(.data) + long_timer 0x10002ec4 Data 2 rf433.o(.data) + receive_temp 0x10002ec8 Data 4 rf433.o(.data) + receive_data 0x10002ecc Data 4 rf433.o(.data) + adress_H_array 0x10002ed0 Data 5 rf433.o(.data) + adress_L_array 0x10002ed5 Data 5 rf433.o(.data) + adress_ch_flag 0x10002eda Data 5 rf433.o(.data) + Key_TypeDef 0x10002ee0 Data 8 rf433.o(.data) + trig1_cnt 0x10002ee8 Data 1 switch_s.o(.data) + trig1_wait 0x10002ee9 Data 1 switch_s.o(.data) + trig2_cnt 0x10002eea Data 1 switch_s.o(.data) + trig2_wait 0x10002eeb Data 1 switch_s.o(.data) + rf433_sw_flag 0x10002eec Data 1 switch_s.o(.data) + switch1_RELEASE_flag 0x10002eef Data 1 switch_s.o(.data) + switch2_RELEASE_flag 0x10002ef0 Data 1 switch_s.o(.data) + s1_first_press_flag 0x10002ef1 Data 1 switch_s.o(.data) + s2_first_press_flag 0x10002ef2 Data 1 switch_s.o(.data) + S1_first_on_state 0x10002ef3 Data 1 switch_s.o(.data) + S2_first_on_state 0x10002ef4 Data 1 switch_s.o(.data) + trig1_timeout 0x10002ef6 Data 2 switch_s.o(.data) + trig2_timeout 0x10002ef8 Data 2 switch_s.o(.data) + key_callback 0x10002f08 Data 4 key.o(.data) + g_key_click_state 0x10002f0c Data 8 key.o(.data) + led_state 0x10002f14 Data 1 led.o(.data) + app_op_flash_flag 0x10002f16 Data 1 ota_flash_interface.o(.data) + ota_flag 0x10002f18 Data 1 ota_protocol.o(.data) + jump2app 0x10002f1c Data 4 ota_protocol.o(.data) + fotas_status 0x10002f20 Data 9 ota_protocol.o(.data) + ota_srv_user_lid 0x10002f2a Data 1 ota_server.o(.data) + ota_svc_tx_char_notify 0x10002f2b Data 1 ota_server.o(.data) + ota_svc_start_hdl 0x10002f2c Data 2 ota_server.o(.data) + adv_info 0x10002f30 Data 28 arch_main.o(.bss) + nvds_env 0x10002f4c Data 24 nvds.o(.bss) + clock_cb 0x10002fa4 Data 16 xc_drv_clock.o(.bss) + uart_ctl_block 0x10002fb4 Data 12 xc_drv_uart.o(.bss) + rf433_frame 0x10002fc0 Data 12 rf433.o(.bss) + r_data 0x10002fcc Data 256 fmc_spi_1.o(.bss) + app_data 0x100030cc Data 256 fmc_spi_1.o(.bss) + op_flash 0x100031cc Data 272 ota_flash_interface.o(.bss) + __libspace_start 0x10003840 Data 96 libspace.o(.bss) + __temporary_stack_top$libspace 0x100038a0 Data 0 libspace.o(.bss) _gatt_srv_att_read_get_cfm 0x11002d53 Thumb Code 0 rom_symdefs.o ABSOLUTE _gatt_srv_att_val_set_cfm 0x11002dc7 Thumb Code 0 rom_symdefs.o ABSOLUTE co_rand_word 0x11004109 Thumb Code 0 rom_symdefs.o ABSOLUTE @@ -2770,147 +2862,150 @@ Image Symbol Table UART1_Handler 0x11014067 Thumb Code 10 xc_drv_uart.o(i.UART1_Handler) UART2_Handler 0x11014071 Thumb Code 10 xc_drv_uart.o(i.UART2_Handler) WDT_Handler 0x1101407d Thumb Code 14 xc_drv_wdt.o(i.WDT_Handler) - _433_fun 0x110140e9 Thumb Code 168 rf433.o(i._433_fun) - __ARM_common_ll_muluu 0x11014195 Thumb Code 48 btod.o(i.__ARM_common_ll_muluu) - __ARM_common_switch8 0x110141c5 Thumb Code 26 arch_main.o(i.__ARM_common_switch8) - __ARM_fpclassify 0x110141e1 Thumb Code 40 fpclassify.o(i.__ARM_fpclassify) - _is_digit 0x1101420d Thumb Code 14 __printf_wp.o(i._is_digit) - _sys_exit 0x1101421b Thumb Code 2 system_xinc.o(i._sys_exit) - adc_intr_callback 0x1101421d Thumb Code 108 xc_drv_adc.o(i.adc_intr_callback) - app_create_advertising 0x110142a9 Thumb Code 66 app_task.o(i.app_create_advertising) - app_delete_advertising 0x110142f1 Thumb Code 32 app_task.o(i.app_delete_advertising) - app_get_dev_name 0x1101432d Thumb Code 34 app_task.o(i.app_get_dev_name) - app_init 0x11014355 Thumb Code 50 app_task.o(i.app_init) - app_key_callback_handler 0x11014399 Thumb Code 56 rf433.o(i.app_key_callback_handler) - app_key_init 0x11014441 Thumb Code 38 key.o(i.app_key_init) - app_key_scan 0x11014471 Thumb Code 78 key.o(i.app_key_scan) - app_op_flash 0x11014535 Thumb Code 42 ota_flash_interface.o(i.app_op_flash) - app_op_flash_on 0x11014571 Thumb Code 20 ota_flash_interface.o(i.app_op_flash_on) - app_set_adv_data 0x1101458d Thumb Code 76 app_task.o(i.app_set_adv_data) - app_start_advertising 0x110145f5 Thumb Code 54 app_task.o(i.app_start_advertising) - app_uart_init 0x11014631 Thumb Code 82 arch_main.o(i.app_uart_init) - ble_callback 0x11014689 Thumb Code 20 uart_1.o(i.ble_callback) - ble_flash_handle 0x110146a1 Thumb Code 128 ota_flash_interface.o(i.ble_flash_handle) - ble_flash_later_page_erase 0x11014759 Thumb Code 24 ota_flash_interface.o(i.ble_flash_later_page_erase) - ble_flash_later_write_page 0x11014775 Thumb Code 40 ota_flash_interface.o(i.ble_flash_later_write_page) - ble_message_process 0x110147a1 Thumb Code 44 uart_1.o(i.ble_message_process) - ble_mode_scan 0x110147d1 Thumb Code 60 rf433.o(i.ble_mode_scan) - bluetooth_init 0x11014819 Thumb Code 88 arch_main.o(i.bluetooth_init) - board_init 0x11014885 Thumb Code 66 arch_main.o(i.board_init) - chx_gpio_init 0x11014915 Thumb Code 84 rf433.o(i.chx_gpio_init) - clock_init 0x1101496d Thumb Code 94 sleep.o(i.clock_init) - custom_svc_add 0x110149dd Thumb Code 98 usr_server.o(i.custom_svc_add) - custom_svc_cb_att_read_get 0x11014ab9 Thumb Code 90 usr_server.o(i.custom_svc_cb_att_read_get) - custom_svc_cb_att_val_set 0x11014b69 Thumb Code 224 usr_server.o(i.custom_svc_cb_att_val_set) - custom_svc_cb_event_sent 0x11014d11 Thumb Code 20 usr_server.o(i.custom_svc_cb_event_sent) - delay_us 0x11014d5d Thumb Code 44 xc_drv_systick.o(i.delay_us) - extract32_16 0x11014d8d Thumb Code 14 xc_drv_fmc_spi.o(i.extract32_16) - ferror 0x11014d9b Thumb Code 6 system_xinc.o(i.ferror) - flash_init 0x11014da1 Thumb Code 170 arch_main.o(i.flash_init) - flash_run 0x11014f05 Thumb Code 14 rf433.o(i.flash_run) - flash_size_and_type_get 0x11014f13 Thumb Code 86 xc_drv_fmc_spi.o(i.flash_size_and_type_get) - fmc_spi_read 0x11014f69 Thumb Code 38 fmc_spi_1.o(i.fmc_spi_read) - get_app_env 0x11015ba1 Thumb Code 4 app_task.o(i.get_app_env) - get_fota_env_addr 0x11015bf5 Thumb Code 16 nvds.o(i.get_fota_env_addr) - gpio_intr_callback 0x11015c09 Thumb Code 52 switch_s.o(i.gpio_intr_callback) - gpio_key_check 0x11015c41 Thumb Code 20 key.o(i.gpio_key_check) - led_gpio_init 0x11015c69 Thumb Code 54 led.o(i.led_gpio_init) - main 0x11015ca5 Thumb Code 72 arch_main.o(i.main) - nvds_browse_tag 0x11015cf9 Thumb Code 52 nvds.o(i.nvds_browse_tag) - nvds_del 0x11015d2d Thumb Code 52 nvds.o(i.nvds_del) - nvds_erase 0x11015d65 Thumb Code 76 nvds.o(i.nvds_erase) - nvds_get 0x11015de5 Thumb Code 62 nvds.o(i.nvds_get) - nvds_init 0x11015e29 Thumb Code 48 nvds.o(i.nvds_init) - nvds_init_memory 0x11015e6d Thumb Code 24 nvds.o(i.nvds_init_memory) - nvds_is_magic_number_ok 0x11015e8d Thumb Code 36 nvds.o(i.nvds_is_magic_number_ok) - nvds_purge 0x11015eb9 Thumb Code 98 nvds.o(i.nvds_purge) - nvds_put 0x11015f21 Thumb Code 202 nvds.o(i.nvds_put) - nvds_read 0x11015ff5 Thumb Code 36 nvds.o(i.nvds_read) - nvds_space_init 0x1101601d Thumb Code 70 nvds.o(i.nvds_space_init) - nvds_walk_tag 0x110160a1 Thumb Code 52 nvds.o(i.nvds_walk_tag) - nvds_write 0x110160d9 Thumb Code 36 nvds.o(i.nvds_write) - ota_slave_send_data 0x11016101 Thumb Code 82 ota_server.o(i.ota_slave_send_data) - ota_srv_get_hdl_from_att_idx 0x1101619d Thumb Code 10 ota_server.o(i.ota_srv_get_hdl_from_att_idx) - ota_write_flash 0x110161ad Thumb Code 46 ota_protocol.o(i.ota_write_flash) - pwm3_toggle 0x110161e9 Thumb Code 42 led.o(i.pwm3_toggle) - pwm_capture_ch0_callback 0x1101621d Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch0_callback) - pwm_capture_ch1_callback 0x11016221 Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch1_callback) - pwm_capture_ch2_callback 0x11016225 Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch2_callback) - pwm_pin_set 0x11016305 Thumb Code 192 xc_drv_pwm.o(i.pwm_pin_set) - read_user_data 0x110163c5 Thumb Code 104 fmc_spi_1.o(i.read_user_data) - reverse_verif_is_true 0x11016449 Thumb Code 14 xc_drv_fmc_spi.o(i.reverse_verif_is_true) - rf433_gpio_init 0x11016457 Thumb Code 30 rf433.o(i.rf433_gpio_init) - rf433_receive 0x11016475 Thumb Code 242 rf433.o(i.rf433_receive) - rom_env_host_init 0x1101656d Thumb Code 24 arch_main.o(i.rom_env_host_init) - scan_433 0x11016595 Thumb Code 400 rf433.o(i.scan_433) - scan_uart 0x11016731 Thumb Code 132 uart_1.o(i.scan_uart) - set_TaskComps_timer 0x110167c1 Thumb Code 10 timeslice.o(i.set_TaskComps_timer) - set_single_addr_name 0x110167d1 Thumb Code 118 arch_main.o(i.set_single_addr_name) - set_vector 0x1101686d Thumb Code 46 system_xinc.o(i.set_vector) - slave_send_data 0x110168a9 Thumb Code 82 usr_server.o(i.slave_send_data) - srv_get_hdl_from_att_idx 0x11016945 Thumb Code 10 usr_server.o(i.srv_get_hdl_from_att_idx) - switch_init 0x11016955 Thumb Code 102 switch_s.o(i.switch_init) - systick_callback 0x110169c5 Thumb Code 2 xc_drv_systick.o(i.systick_callback) - timer0_2_init 0x110169c9 Thumb Code 124 timer.o(i.timer0_2_init) - timer3_callback 0x11016a51 Thumb Code 2 xc_drv_timer.o(i.timer3_callback) - trigger_check_process 0x11016a55 Thumb Code 610 switch_s.o(i.trigger_check_process) - uart_user_handler 0x11016cc5 Thumb Code 138 xc_drv_uart.o(i.uart_user_handler) - updateTimer 0x11016d75 Thumb Code 22 timer.o(i.updateTimer) - wdt_init 0x11016d8b Thumb Code 26 arch_main.o(i.wdt_init) - wright_user_data 0x11016da5 Thumb Code 108 fmc_spi_1.o(i.wright_user_data) - xc_adc_data_average 0x11016e2d Thumb Code 120 xc_drv_adc.o(i.xc_adc_data_average) - xc_ble_activity_delete 0x11016ea9 Thumb Code 36 xc_gap_api.o(i.xc_ble_activity_delete) - xc_bor_init 0x11016ed1 Thumb Code 40 xc_drv_bor.o(i.xc_bor_init) - xc_clock_bbpll_common_cfg 0x11016f01 Thumb Code 50 xc_drv_clock.o(i.xc_clock_bbpll_common_cfg) - xc_clock_bbpll_freq_cfg 0x11016f41 Thumb Code 224 xc_drv_clock.o(i.xc_clock_bbpll_freq_cfg) - xc_clock_hfclk_in_get 0x1101702d Thumb Code 6 xc_drv_clock.o(i.xc_clock_hfclk_in_get) - xc_clock_hfclk_set 0x11017039 Thumb Code 192 xc_drv_clock.o(i.xc_clock_hfclk_set) - xc_clock_init_cfg 0x11017115 Thumb Code 22 xc_drv_clock.o(i.xc_clock_init_cfg) - xc_clock_lfclk_in_get 0x1101712d Thumb Code 6 xc_drv_clock.o(i.xc_clock_lfclk_in_get) - xc_clock_lfclk_set 0x11017139 Thumb Code 96 xc_drv_clock.o(i.xc_clock_lfclk_set) - xc_fota_dev_ack_cmd 0x110171a5 Thumb Code 36 ota_protocol.o(i.xc_fota_dev_ack_cmd) - xc_gpio_direction_config 0x110171cd Thumb Code 24 xc_drv_gpio.o(i.xc_gpio_direction_config) - xc_gpio_fun_sel 0x110171e9 Thumb Code 36 xc_drv_gpio.o(i.xc_gpio_fun_sel) - xc_gpio_init 0x11017211 Thumb Code 46 xc_drv_gpio.o(i.xc_gpio_init) - xc_gpio_it_config 0x11017241 Thumb Code 46 xc_drv_gpio.o(i.xc_gpio_it_config) - xc_gpio_mux_ctl 0x11017275 Thumb Code 70 xc_drv_gpio.o(i.xc_gpio_mux_ctl) - xc_gpio_pull_config 0x110172c1 Thumb Code 228 xc_drv_gpio.o(i.xc_gpio_pull_config) - xc_gpio_read_pin 0x110173a9 Thumb Code 30 xc_drv_gpio.o(i.xc_gpio_read_pin) - xc_gpio_toggle_pin 0x110173cd Thumb Code 36 xc_drv_gpio.o(i.xc_gpio_toggle_pin) - xc_gpio_write_pin 0x110173f9 Thumb Code 24 xc_drv_gpio.o(i.xc_gpio_write_pin) - xc_hfclk_set 0x11017415 Thumb Code 58 xc_drv_clock.o(i.xc_hfclk_set) - xc_ota_schedule 0x11017455 Thumb Code 68 ota_protocol.o(i.xc_ota_schedule) - xc_pwm_dutycycle_set 0x110174b9 Thumb Code 104 xc_drv_pwm.o(i.xc_pwm_dutycycle_set) - xc_pwm_init 0x11017529 Thumb Code 208 xc_drv_pwm.o(i.xc_pwm_init) - xc_pwm_start_all 0x11017609 Thumb Code 20 xc_drv_pwm.o(i.xc_pwm_start_all) - xc_pwr_vol_set 0x11017625 Thumb Code 70 xc_drv_pwr.o(i.xc_pwr_vol_set) - xc_rc32k_soft_calib_set 0x11017681 Thumb Code 204 xc_drv_calib.o(i.xc_rc32k_soft_calib_set) - xc_system_param_check 0x11017779 Thumb Code 230 xc_drv_clock.o(i.xc_system_param_check) - xc_systick_unit_get 0x11017995 Thumb Code 6 xc_drv_clock.o(i.xc_systick_unit_get) - xc_timer_init 0x110179a1 Thumb Code 274 xc_drv_timer.o(i.xc_timer_init) - xc_timer_set_value 0x11017ac1 Thumb Code 32 xc_drv_timer.o(i.xc_timer_set_value) - xc_timer_start 0x11017ae9 Thumb Code 48 xc_drv_timer.o(i.xc_timer_start) - xc_uart_init 0x11017c19 Thumb Code 476 xc_drv_uart.o(i.xc_uart_init) - xc_unique_identification_read 0x11017e09 Thumb Code 228 xc_drv_fmc_spi.o(i.xc_unique_identification_read) - xc_wdt_init 0x11017ef1 Thumb Code 94 xc_drv_wdt.o(i.xc_wdt_init) - xc_wdt_refresh 0x11017f59 Thumb Code 56 xc_drv_wdt.o(i.xc_wdt_refresh) - xc_wdt_reload 0x11017f99 Thumb Code 60 xc_drv_wdt.o(i.xc_wdt_reload) - xc_wdt_start 0x11017fdd Thumb Code 44 xc_drv_wdt.o(i.xc_wdt_start) - _get_lc_numeric 0x11018011 Thumb Code 44 lc_numeric_c.o(locale$$code) - _get_lc_ctype 0x1101803d Thumb Code 44 lc_ctype_c.o(locale$$code) - __aeabi_fmul 0x11018069 Thumb Code 0 fmul.o(x$fpl$fmul) - _fmul 0x11018069 Thumb Code 172 fmul.o(x$fpl$fmul) - _printf_fp_dec 0x11018119 Thumb Code 16 printf1.o(x$fpl$printf1) - _printf_fp_hex 0x11018129 Thumb Code 16 printf2.o(x$fpl$printf2) - __I$use$fp 0x11018138 Number 0 usenofp.o(x$fpl$usenofp) - app_msg_handler_tab 0x11018138 Data 8 app_task.o(.constdata) - TASK_DESC_APP 0x11018140 Data 12 app_task.o(.constdata) - app_sec_msg_handler_list 0x1101817c Data 40 app_sec.o(.constdata) - app_sec_handlers 0x110181a4 Data 8 app_sec.o(.constdata) - nvds_magic_number 0x11018232 Data 4 nvds.o(.constdata) - Region$$Table$$Base 0x1101853c Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x1101858c Number 0 anon$$obj.o(Region$$Table) - __ctype 0x110185b5 Data 0 lc_ctype_c.o(locale$$data) + _433_fun 0x110140e9 Thumb Code 126 rf433.o(i._433_fun) + __ARM_common_ll_muluu 0x1101416d Thumb Code 48 btod.o(i.__ARM_common_ll_muluu) + __ARM_common_switch8 0x1101419d Thumb Code 26 arch_main.o(i.__ARM_common_switch8) + __ARM_fpclassify 0x110141b9 Thumb Code 40 fpclassify.o(i.__ARM_fpclassify) + _is_digit 0x110141e5 Thumb Code 14 __printf_wp.o(i._is_digit) + _sys_exit 0x110141f3 Thumb Code 2 system_xinc.o(i._sys_exit) + adc_intr_callback 0x110141f5 Thumb Code 108 xc_drv_adc.o(i.adc_intr_callback) + app_create_advertising 0x11014281 Thumb Code 66 app_task.o(i.app_create_advertising) + app_delete_advertising 0x110142c9 Thumb Code 32 app_task.o(i.app_delete_advertising) + app_get_dev_name 0x11014305 Thumb Code 34 app_task.o(i.app_get_dev_name) + app_init 0x1101432d Thumb Code 50 app_task.o(i.app_init) + app_key_callback_handler 0x11014371 Thumb Code 56 rf433.o(i.app_key_callback_handler) + app_key_init 0x11014419 Thumb Code 38 key.o(i.app_key_init) + app_key_scan 0x11014449 Thumb Code 78 key.o(i.app_key_scan) + app_op_flash 0x1101450d Thumb Code 42 ota_flash_interface.o(i.app_op_flash) + app_op_flash_on 0x11014549 Thumb Code 20 ota_flash_interface.o(i.app_op_flash_on) + app_set_adv_data 0x11014565 Thumb Code 76 app_task.o(i.app_set_adv_data) + app_start_advertising 0x110145cd Thumb Code 54 app_task.o(i.app_start_advertising) + app_uart_init 0x11014609 Thumb Code 82 arch_main.o(i.app_uart_init) + ble_callback 0x11014661 Thumb Code 20 uart_1.o(i.ble_callback) + ble_flash_handle 0x11014679 Thumb Code 128 ota_flash_interface.o(i.ble_flash_handle) + ble_flash_later_page_erase 0x11014731 Thumb Code 24 ota_flash_interface.o(i.ble_flash_later_page_erase) + ble_flash_later_write_page 0x1101474d Thumb Code 40 ota_flash_interface.o(i.ble_flash_later_write_page) + ble_message_process 0x11014779 Thumb Code 44 uart_1.o(i.ble_message_process) + ble_mode_scan 0x110147a9 Thumb Code 60 rf433.o(i.ble_mode_scan) + bluetooth_init 0x110147f1 Thumb Code 88 arch_main.o(i.bluetooth_init) + board_init 0x1101485d Thumb Code 70 arch_main.o(i.board_init) + chx_gpio_init 0x110148f1 Thumb Code 84 rf433.o(i.chx_gpio_init) + clock_init 0x11014949 Thumb Code 94 sleep.o(i.clock_init) + custom_svc_add 0x110149b9 Thumb Code 98 usr_server.o(i.custom_svc_add) + custom_svc_cb_att_read_get 0x11014a95 Thumb Code 90 usr_server.o(i.custom_svc_cb_att_read_get) + custom_svc_cb_att_val_set 0x11014b45 Thumb Code 224 usr_server.o(i.custom_svc_cb_att_val_set) + custom_svc_cb_event_sent 0x11014ced Thumb Code 20 usr_server.o(i.custom_svc_cb_event_sent) + delay_us 0x11014d39 Thumb Code 44 xc_drv_systick.o(i.delay_us) + extract32_16 0x11014d69 Thumb Code 14 xc_drv_fmc_spi.o(i.extract32_16) + ferror 0x11014d77 Thumb Code 6 system_xinc.o(i.ferror) + flash_init 0x11014d7d Thumb Code 170 arch_main.o(i.flash_init) + flash_run 0x11014ee1 Thumb Code 14 rf433.o(i.flash_run) + flash_size_and_type_get 0x11014eef Thumb Code 86 xc_drv_fmc_spi.o(i.flash_size_and_type_get) + fmc_spi_read 0x11014f45 Thumb Code 38 fmc_spi_1.o(i.fmc_spi_read) + get_app_env 0x11015b7d Thumb Code 4 app_task.o(i.get_app_env) + get_fota_env_addr 0x11015bd1 Thumb Code 16 nvds.o(i.get_fota_env_addr) + gpio_intr_callback 0x11015be5 Thumb Code 52 switch_s.o(i.gpio_intr_callback) + gpio_key_check 0x11015c1d Thumb Code 20 key.o(i.gpio_key_check) + led_gpio_init 0x11015c45 Thumb Code 54 led.o(i.led_gpio_init) + main 0x11015c81 Thumb Code 72 arch_main.o(i.main) + nvds_browse_tag 0x11015cd5 Thumb Code 52 nvds.o(i.nvds_browse_tag) + nvds_del 0x11015d09 Thumb Code 52 nvds.o(i.nvds_del) + nvds_erase 0x11015d41 Thumb Code 76 nvds.o(i.nvds_erase) + nvds_get 0x11015dc1 Thumb Code 62 nvds.o(i.nvds_get) + nvds_init 0x11015e05 Thumb Code 48 nvds.o(i.nvds_init) + nvds_init_memory 0x11015e49 Thumb Code 24 nvds.o(i.nvds_init_memory) + nvds_is_magic_number_ok 0x11015e69 Thumb Code 36 nvds.o(i.nvds_is_magic_number_ok) + nvds_purge 0x11015e95 Thumb Code 98 nvds.o(i.nvds_purge) + nvds_put 0x11015efd Thumb Code 202 nvds.o(i.nvds_put) + nvds_read 0x11015fd1 Thumb Code 36 nvds.o(i.nvds_read) + nvds_space_init 0x11015ff9 Thumb Code 70 nvds.o(i.nvds_space_init) + nvds_walk_tag 0x1101607d Thumb Code 52 nvds.o(i.nvds_walk_tag) + nvds_write 0x110160b5 Thumb Code 36 nvds.o(i.nvds_write) + ota_slave_send_data 0x110160dd Thumb Code 82 ota_server.o(i.ota_slave_send_data) + ota_srv_get_hdl_from_att_idx 0x11016179 Thumb Code 10 ota_server.o(i.ota_srv_get_hdl_from_att_idx) + ota_write_flash 0x11016189 Thumb Code 46 ota_protocol.o(i.ota_write_flash) + pwm3_toggle 0x110161c5 Thumb Code 42 led.o(i.pwm3_toggle) + pwm_capture_ch0_callback 0x110161f9 Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch0_callback) + pwm_capture_ch1_callback 0x110161fd Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch1_callback) + pwm_capture_ch2_callback 0x11016201 Thumb Code 4 xc_drv_pwm.o(i.pwm_capture_ch2_callback) + pwm_pin_set 0x110162e1 Thumb Code 192 xc_drv_pwm.o(i.pwm_pin_set) + read_user_data 0x110163a1 Thumb Code 104 fmc_spi_1.o(i.read_user_data) + reverse_verif_is_true 0x11016425 Thumb Code 14 xc_drv_fmc_spi.o(i.reverse_verif_is_true) + rf433_decoder_get_frame 0x11016465 Thumb Code 32 rf433_decoder.o(i.rf433_decoder_get_frame) + rf433_decoder_init 0x11016489 Thumb Code 48 rf433_decoder.o(i.rf433_decoder_init) + rf433_decoder_process 0x110164bd Thumb Code 56 rf433_decoder.o(i.rf433_decoder_process) + rf433_decoder_sample 0x110164fd Thumb Code 104 rf433_decoder.o(i.rf433_decoder_sample) + rf433_gpio_init 0x11016571 Thumb Code 30 rf433.o(i.rf433_gpio_init) + rom_env_host_init 0x110169c1 Thumb Code 24 arch_main.o(i.rom_env_host_init) + scan_433 0x110169e9 Thumb Code 416 rf433.o(i.scan_433) + scan_uart 0x11016b99 Thumb Code 132 uart_1.o(i.scan_uart) + set_TaskComps_timer 0x11016c29 Thumb Code 10 timeslice.o(i.set_TaskComps_timer) + set_single_addr_name 0x11016c39 Thumb Code 118 arch_main.o(i.set_single_addr_name) + set_vector 0x11016cd5 Thumb Code 46 system_xinc.o(i.set_vector) + slave_send_data 0x11016d11 Thumb Code 82 usr_server.o(i.slave_send_data) + srv_get_hdl_from_att_idx 0x11016dad Thumb Code 10 usr_server.o(i.srv_get_hdl_from_att_idx) + switch_init 0x11016dbd Thumb Code 102 switch_s.o(i.switch_init) + systick_callback 0x11016e2d Thumb Code 2 xc_drv_systick.o(i.systick_callback) + timer0_2_init 0x11016e31 Thumb Code 124 timer.o(i.timer0_2_init) + timer3_callback 0x11016eb9 Thumb Code 2 xc_drv_timer.o(i.timer3_callback) + trigger_check_process 0x11016ebd Thumb Code 610 switch_s.o(i.trigger_check_process) + uart_user_handler 0x1101712d Thumb Code 138 xc_drv_uart.o(i.uart_user_handler) + updateTimer 0x110171dd Thumb Code 22 timer.o(i.updateTimer) + wdt_init 0x110171f3 Thumb Code 26 arch_main.o(i.wdt_init) + wright_user_data 0x1101720d Thumb Code 108 fmc_spi_1.o(i.wright_user_data) + xc_adc_data_average 0x11017295 Thumb Code 120 xc_drv_adc.o(i.xc_adc_data_average) + xc_ble_activity_delete 0x11017311 Thumb Code 36 xc_gap_api.o(i.xc_ble_activity_delete) + xc_bor_init 0x11017339 Thumb Code 40 xc_drv_bor.o(i.xc_bor_init) + xc_clock_bbpll_common_cfg 0x11017369 Thumb Code 50 xc_drv_clock.o(i.xc_clock_bbpll_common_cfg) + xc_clock_bbpll_freq_cfg 0x110173a9 Thumb Code 224 xc_drv_clock.o(i.xc_clock_bbpll_freq_cfg) + xc_clock_hfclk_in_get 0x11017495 Thumb Code 6 xc_drv_clock.o(i.xc_clock_hfclk_in_get) + xc_clock_hfclk_set 0x110174a1 Thumb Code 192 xc_drv_clock.o(i.xc_clock_hfclk_set) + xc_clock_init_cfg 0x1101757d Thumb Code 22 xc_drv_clock.o(i.xc_clock_init_cfg) + xc_clock_lfclk_in_get 0x11017595 Thumb Code 6 xc_drv_clock.o(i.xc_clock_lfclk_in_get) + xc_clock_lfclk_set 0x110175a1 Thumb Code 96 xc_drv_clock.o(i.xc_clock_lfclk_set) + xc_fota_dev_ack_cmd 0x1101760d Thumb Code 36 ota_protocol.o(i.xc_fota_dev_ack_cmd) + xc_gpio_direction_config 0x11017635 Thumb Code 24 xc_drv_gpio.o(i.xc_gpio_direction_config) + xc_gpio_fun_sel 0x11017651 Thumb Code 36 xc_drv_gpio.o(i.xc_gpio_fun_sel) + xc_gpio_init 0x11017679 Thumb Code 46 xc_drv_gpio.o(i.xc_gpio_init) + xc_gpio_it_config 0x110176a9 Thumb Code 46 xc_drv_gpio.o(i.xc_gpio_it_config) + xc_gpio_mux_ctl 0x110176dd Thumb Code 70 xc_drv_gpio.o(i.xc_gpio_mux_ctl) + xc_gpio_pull_config 0x11017729 Thumb Code 228 xc_drv_gpio.o(i.xc_gpio_pull_config) + xc_gpio_read_pin 0x11017811 Thumb Code 30 xc_drv_gpio.o(i.xc_gpio_read_pin) + xc_gpio_toggle_pin 0x11017835 Thumb Code 36 xc_drv_gpio.o(i.xc_gpio_toggle_pin) + xc_gpio_write_pin 0x11017861 Thumb Code 24 xc_drv_gpio.o(i.xc_gpio_write_pin) + xc_hfclk_set 0x1101787d Thumb Code 58 xc_drv_clock.o(i.xc_hfclk_set) + xc_ota_schedule 0x110178bd Thumb Code 68 ota_protocol.o(i.xc_ota_schedule) + xc_pwm_dutycycle_set 0x11017921 Thumb Code 104 xc_drv_pwm.o(i.xc_pwm_dutycycle_set) + xc_pwm_init 0x11017991 Thumb Code 208 xc_drv_pwm.o(i.xc_pwm_init) + xc_pwm_start_all 0x11017a71 Thumb Code 20 xc_drv_pwm.o(i.xc_pwm_start_all) + xc_pwr_vol_set 0x11017a8d Thumb Code 70 xc_drv_pwr.o(i.xc_pwr_vol_set) + xc_rc32k_soft_calib_set 0x11017ae9 Thumb Code 204 xc_drv_calib.o(i.xc_rc32k_soft_calib_set) + xc_system_param_check 0x11017be1 Thumb Code 230 xc_drv_clock.o(i.xc_system_param_check) + xc_systick_unit_get 0x11017dfd Thumb Code 6 xc_drv_clock.o(i.xc_systick_unit_get) + xc_timer_init 0x11017e09 Thumb Code 274 xc_drv_timer.o(i.xc_timer_init) + xc_timer_set_value 0x11017f29 Thumb Code 32 xc_drv_timer.o(i.xc_timer_set_value) + xc_timer_start 0x11017f51 Thumb Code 48 xc_drv_timer.o(i.xc_timer_start) + xc_uart_init 0x11018081 Thumb Code 476 xc_drv_uart.o(i.xc_uart_init) + xc_unique_identification_read 0x11018271 Thumb Code 228 xc_drv_fmc_spi.o(i.xc_unique_identification_read) + xc_wdt_init 0x11018359 Thumb Code 94 xc_drv_wdt.o(i.xc_wdt_init) + xc_wdt_refresh 0x110183c1 Thumb Code 56 xc_drv_wdt.o(i.xc_wdt_refresh) + xc_wdt_reload 0x11018401 Thumb Code 60 xc_drv_wdt.o(i.xc_wdt_reload) + xc_wdt_start 0x11018445 Thumb Code 44 xc_drv_wdt.o(i.xc_wdt_start) + _get_lc_numeric 0x11018479 Thumb Code 44 lc_numeric_c.o(locale$$code) + _get_lc_ctype 0x110184a5 Thumb Code 44 lc_ctype_c.o(locale$$code) + __aeabi_fmul 0x110184d1 Thumb Code 0 fmul.o(x$fpl$fmul) + _fmul 0x110184d1 Thumb Code 172 fmul.o(x$fpl$fmul) + _printf_fp_dec 0x11018581 Thumb Code 16 printf1.o(x$fpl$printf1) + _printf_fp_hex 0x11018591 Thumb Code 16 printf2.o(x$fpl$printf2) + __I$use$fp 0x110185a0 Number 0 usenofp.o(x$fpl$usenofp) + app_msg_handler_tab 0x110185a0 Data 8 app_task.o(.constdata) + TASK_DESC_APP 0x110185a8 Data 12 app_task.o(.constdata) + app_sec_msg_handler_list 0x110185e4 Data 40 app_sec.o(.constdata) + app_sec_handlers 0x1101860c Data 8 app_sec.o(.constdata) + nvds_magic_number 0x1101869a Data 4 nvds.o(.constdata) + Region$$Table$$Base 0x11018a5c Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x11018aac Number 0 anon$$obj.o(Region$$Table) + __ctype 0x11018ad5 Data 0 lc_ctype_c.o(locale$$data) write_buffer 0x53006c00 Data 512 nvds.o(ram_em) fota_env 0x53006e00 Data 2091 ota_protocol.o(ram_em) @@ -2922,440 +3017,459 @@ Memory Map of the image Image Entry point : 0x110120c1 - Load Region LOAD (Base: 0x11012000, Size: 0x00007cf0, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x000071a8]) + Load Region LOAD (Base: 0x11012000, Size: 0x00008234, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x000076e0]) - Execution Region RW1 (Exec base: 0x10000100, Load base: 0x110186b8, Size: 0x000006f0, Max: 0xffffffff, ABSOLUTE) + Execution Region RW1 (Exec base: 0x10000100, Load base: 0x11018bd8, Size: 0x000006f0, Max: 0xffffffff, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x10000100 - 0x000006f0 Zero RW 1 STACK startup_xinc.o - Execution Region RW (Exec base: 0x10002300, Load base: 0x110186b8, Size: 0x00001120, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000060]) + Execution Region RW (Exec base: 0x10002300, Load base: 0x11018bd8, Size: 0x000015a0, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000064]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x10002300 0x110186b8 0x00000040 Code RO 4673 .text c_p.l(rt_memclr.o) - 0x10002340 0x110186f8 0x0000015a Code RO 4679 .text c_p.l(aeabi_sdiv.o) + 0x10002300 0x11018bd8 0x00000040 Code RO 4778 .text c_p.l(rt_memclr.o) + 0x10002340 0x11018c18 0x0000015a Code RO 4784 .text c_p.l(aeabi_sdiv.o) 0x1000249a COMPRESSED 0x00000002 PAD - 0x1000249c 0x11018854 0x0000000c Ven RO 5003 Veneer$$Code anon$$obj.o - 0x100024a8 0x11018860 0x0000000c Ven RO 5004 Veneer$$Code anon$$obj.o - 0x100024b4 0x1101886c 0x0000000c Ven RO 5005 Veneer$$Code anon$$obj.o - 0x100024c0 0x11018878 0x0000000c Ven RO 5006 Veneer$$Code anon$$obj.o - 0x100024cc 0x11018884 0x0000000c Ven RO 5007 Veneer$$Code anon$$obj.o - 0x100024d8 0x11018890 0x0000000c Ven RO 5008 Veneer$$Code anon$$obj.o - 0x100024e4 0x1101889c 0x0000000c Ven RO 5009 Veneer$$Code anon$$obj.o - 0x100024f0 0x110188a8 0x0000000c Ven RO 5010 Veneer$$Code anon$$obj.o - 0x100024fc 0x110188b4 0x0000000c Ven RO 5011 Veneer$$Code anon$$obj.o - 0x10002508 0x110188c0 0x00000018 Code RO 17 ram_code system_xinc.o - 0x10002520 0x110188d8 0x0000003c Code RO 687 ram_code arch_main.o - 0x1000255c 0x11018914 0x000000b8 Code RO 1594 ram_code xc_drv_bor.o - 0x10002614 0x110189cc 0x000005c8 Code RO 2136 ram_code xc_drv_fmc_spi.o - 0x10002bdc 0x11018f94 0x0000002c Code RO 3259 ram_code xc_drv_rtc.o - 0x10002c08 0x11018fc0 0x000000a8 Code RO 4017 ram_code timer.o - 0x10002cb0 0x11019068 0x000000c8 Code RO 4294 ram_code key.o - 0x10002d78 COMPRESSED 0x00000004 Data RW 18 .data system_xinc.o - 0x10002d7c COMPRESSED 0x00000034 Data RW 554 .data app_task.o - 0x10002db0 COMPRESSED 0x00000001 Data RW 555 .data app_task.o - 0x10002db1 COMPRESSED 0x00000002 Data RW 812 .data app_sec.o - 0x10002db3 COMPRESSED 0x00000001 PAD - 0x10002db4 COMPRESSED 0x00000004 Data RW 937 .data usr_server.o - 0x10002db8 COMPRESSED 0x00000004 Data RW 1039 .data nvds.o - 0x10002dbc COMPRESSED 0x00000002 Data RW 1353 .data xc_drv_adc.o - 0x10002dbe COMPRESSED 0x00000002 PAD - 0x10002dc0 COMPRESSED 0x00000004 Data RW 1683 .data xc_drv_calib.o - 0x10002dc4 COMPRESSED 0x00000004 PAD - 0x10002dc8 COMPRESSED 0x00000010 Data RW 2501 .data xc_drv_pwm.o - 0x10002dd8 COMPRESSED 0x00000010 Data RW 3544 .data xc_drv_timer.o - 0x10002de8 COMPRESSED 0x00000018 Data RW 4018 .data timer.o - 0x10002e00 COMPRESSED 0x00000080 Data RW 4058 .data timeslice.o - 0x10002e80 COMPRESSED 0x0000000c Data RW 4103 .data uart_1.o - 0x10002e8c COMPRESSED 0x00000038 Data RW 4146 .data rf433.o - 0x10002ec4 COMPRESSED 0x00000016 Data RW 4209 .data switch_s.o - 0x10002eda COMPRESSED 0x00000002 PAD - 0x10002edc COMPRESSED 0x00000014 Data RW 4295 .data key.o - 0x10002ef0 COMPRESSED 0x00000001 Data RW 4353 .data led.o - 0x10002ef1 COMPRESSED 0x00000001 Data RW 4354 .data led.o - 0x10002ef2 COMPRESSED 0x00000001 Data RW 4391 .data ota_flash_interface.o - 0x10002ef3 COMPRESSED 0x00000001 PAD - 0x10002ef4 COMPRESSED 0x00000011 Data RW 4457 .data ota_protocol.o - 0x10002f05 COMPRESSED 0x00000001 PAD - 0x10002f06 COMPRESSED 0x00000004 Data RW 4554 .data ota_server.o - 0x10002f0a COMPRESSED 0x00000002 PAD - 0x10002f0c - 0x0000001c Zero RW 688 .bss arch_main.o - 0x10002f28 - 0x00000018 Zero RW 1037 .bss nvds.o - 0x10002f40 - 0x00000040 Zero RW 1352 .bss xc_drv_adc.o - 0x10002f80 - 0x00000010 Zero RW 1862 .bss xc_drv_clock.o - 0x10002f90 - 0x0000000c Zero RW 3742 .bss xc_drv_uart.o - 0x10002f9c - 0x00000200 Zero RW 4248 .bss fmc_spi_1.o - 0x1000319c - 0x00000110 Zero RW 4390 .bss ota_flash_interface.o - 0x100032ac - 0x00000114 Zero RW 4454 .bss ota_protocol.o - 0x100033c0 - 0x00000060 Zero RW 4836 .bss c_p.l(libspace.o) - 0x10003420 - 0x00000000 Zero RW 2 HEAP startup_xinc.o + 0x1000249c 0x11018d74 0x0000000c Ven RO 5108 Veneer$$Code anon$$obj.o + 0x100024a8 0x11018d80 0x0000000c Ven RO 5109 Veneer$$Code anon$$obj.o + 0x100024b4 0x11018d8c 0x0000000c Ven RO 5110 Veneer$$Code anon$$obj.o + 0x100024c0 0x11018d98 0x0000000c Ven RO 5111 Veneer$$Code anon$$obj.o + 0x100024cc 0x11018da4 0x0000000c Ven RO 5112 Veneer$$Code anon$$obj.o + 0x100024d8 0x11018db0 0x0000000c Ven RO 5113 Veneer$$Code anon$$obj.o + 0x100024e4 0x11018dbc 0x0000000c Ven RO 5114 Veneer$$Code anon$$obj.o + 0x100024f0 0x11018dc8 0x0000000c Ven RO 5115 Veneer$$Code anon$$obj.o + 0x100024fc 0x11018dd4 0x0000000c Ven RO 5116 Veneer$$Code anon$$obj.o + 0x10002508 0x11018de0 0x0000000c Ven RO 5117 Veneer$$Code anon$$obj.o + 0x10002514 0x11018dec 0x00000018 Code RO 17 ram_code system_xinc.o + 0x1000252c 0x11018e04 0x0000003c Code RO 687 ram_code arch_main.o + 0x10002568 0x11018e40 0x000000b8 Code RO 1597 ram_code xc_drv_bor.o + 0x10002620 0x11018ef8 0x000005c8 Code RO 2139 ram_code xc_drv_fmc_spi.o + 0x10002be8 0x110194c0 0x0000002c Code RO 3262 ram_code xc_drv_rtc.o + 0x10002c14 0x110194ec 0x000000b0 Code RO 4020 ram_code timer.o + 0x10002cc4 0x1101959c 0x000000c8 Code RO 4299 ram_code key.o + 0x10002d8c COMPRESSED 0x00000004 Data RW 18 .data system_xinc.o + 0x10002d90 COMPRESSED 0x00000034 Data RW 554 .data app_task.o + 0x10002dc4 COMPRESSED 0x00000001 Data RW 555 .data app_task.o + 0x10002dc5 COMPRESSED 0x00000002 Data RW 815 .data app_sec.o + 0x10002dc7 COMPRESSED 0x00000001 PAD + 0x10002dc8 COMPRESSED 0x00000004 Data RW 940 .data usr_server.o + 0x10002dcc COMPRESSED 0x00000004 Data RW 1042 .data nvds.o + 0x10002dd0 COMPRESSED 0x00000002 Data RW 1356 .data xc_drv_adc.o + 0x10002dd2 COMPRESSED 0x00000002 PAD + 0x10002dd4 COMPRESSED 0x00000004 Data RW 1686 .data xc_drv_calib.o + 0x10002dd8 COMPRESSED 0x00000010 Data RW 2504 .data xc_drv_pwm.o + 0x10002de8 COMPRESSED 0x00000010 Data RW 3547 .data xc_drv_timer.o + 0x10002df8 COMPRESSED 0x00000018 Data RW 4021 .data timer.o + 0x10002e10 COMPRESSED 0x00000090 Data RW 4061 .data timeslice.o + 0x10002ea0 COMPRESSED 0x0000000c Data RW 4106 .data uart_1.o + 0x10002eac COMPRESSED 0x0000003c Data RW 4150 .data rf433.o + 0x10002ee8 COMPRESSED 0x00000016 Data RW 4214 .data switch_s.o + 0x10002efe COMPRESSED 0x00000002 PAD + 0x10002f00 COMPRESSED 0x00000014 Data RW 4300 .data key.o + 0x10002f14 COMPRESSED 0x00000001 Data RW 4358 .data led.o + 0x10002f15 COMPRESSED 0x00000001 Data RW 4359 .data led.o + 0x10002f16 COMPRESSED 0x00000001 Data RW 4396 .data ota_flash_interface.o + 0x10002f17 COMPRESSED 0x00000001 PAD + 0x10002f18 COMPRESSED 0x00000011 Data RW 4462 .data ota_protocol.o + 0x10002f29 COMPRESSED 0x00000001 PAD + 0x10002f2a COMPRESSED 0x00000004 Data RW 4559 .data ota_server.o + 0x10002f2e COMPRESSED 0x00000002 PAD + 0x10002f30 - 0x0000001c Zero RW 688 .bss arch_main.o + 0x10002f4c - 0x00000018 Zero RW 1040 .bss nvds.o + 0x10002f64 - 0x00000040 Zero RW 1355 .bss xc_drv_adc.o + 0x10002fa4 - 0x00000010 Zero RW 1865 .bss xc_drv_clock.o + 0x10002fb4 - 0x0000000c Zero RW 3745 .bss xc_drv_uart.o + 0x10002fc0 - 0x0000000c Zero RW 4149 .bss rf433.o + 0x10002fcc - 0x00000200 Zero RW 4253 .bss fmc_spi_1.o + 0x100031cc - 0x00000110 Zero RW 4395 .bss ota_flash_interface.o + 0x100032dc - 0x00000114 Zero RW 4459 .bss ota_protocol.o + 0x100033f0 - 0x0000044e Zero RW 4621 .bss rf433_decoder.o + 0x1000383e COMPRESSED 0x00000002 PAD + 0x10003840 - 0x00000060 Zero RW 4941 .bss c_p.l(libspace.o) + 0x100038a0 - 0x00000000 Zero RW 2 HEAP startup_xinc.o - Execution Region EXE (Exec base: 0x11012000, Load base: 0x11012000, Size: 0x000066b8, Max: 0xffffffff, ABSOLUTE) + Execution Region EXE (Exec base: 0x11012000, Load base: 0x11012000, Size: 0x00006bd8, Max: 0xffffffff, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x11012000 0x11012000 0x000000c0 Data RO 3 RESET startup_xinc.o - 0x110120c0 0x110120c0 0x00000008 Code RO 4685 * !!!main c_p.l(__main.o) - 0x110120c8 0x110120c8 0x0000003c Code RO 4970 !!!scatter c_p.l(__scatter.o) - 0x11012104 0x11012104 0x0000001a Code RO 4972 !!handler_copy c_p.l(__scatter_copy.o) + 0x110120c0 0x110120c0 0x00000008 Code RO 4790 * !!!main c_p.l(__main.o) + 0x110120c8 0x110120c8 0x0000003c Code RO 5075 !!!scatter c_p.l(__scatter.o) + 0x11012104 0x11012104 0x0000001a Code RO 5077 !!handler_copy c_p.l(__scatter_copy.o) 0x1101211e 0x1101211e 0x00000002 PAD - 0x11012120 0x11012120 0x0000001c Code RO 4974 !!handler_zi c_p.l(__scatter_zi.o) - 0x1101213c 0x1101213c 0x00000002 Code RO 4664 .ARM.Collect$$_printf_percent$$00000000 c_p.l(_printf_percent.o) - 0x1101213e 0x1101213e 0x0000000a Code RO 4735 .ARM.Collect$$_printf_percent$$00000001 c_p.l(_printf_n.o) - 0x11012148 0x11012148 0x0000000a Code RO 4736 .ARM.Collect$$_printf_percent$$00000002 c_p.l(_printf_p.o) - 0x11012152 0x11012152 0x0000000a Code RO 4740 .ARM.Collect$$_printf_percent$$00000003 c_p.l(_printf_f.o) - 0x1101215c 0x1101215c 0x0000000a Code RO 4741 .ARM.Collect$$_printf_percent$$00000004 c_p.l(_printf_e.o) - 0x11012166 0x11012166 0x0000000a Code RO 4742 .ARM.Collect$$_printf_percent$$00000005 c_p.l(_printf_g.o) - 0x11012170 0x11012170 0x0000000a Code RO 4743 .ARM.Collect$$_printf_percent$$00000006 c_p.l(_printf_a.o) - 0x1101217a 0x1101217a 0x0000000a Code RO 4748 .ARM.Collect$$_printf_percent$$00000007 c_p.l(_printf_ll.o) - 0x11012184 0x11012184 0x0000000a Code RO 4738 .ARM.Collect$$_printf_percent$$00000008 c_p.l(_printf_i.o) - 0x1101218e 0x1101218e 0x0000000a Code RO 4663 .ARM.Collect$$_printf_percent$$00000009 c_p.l(_printf_d.o) - 0x11012198 0x11012198 0x0000000a Code RO 4739 .ARM.Collect$$_printf_percent$$0000000A c_p.l(_printf_u.o) - 0x110121a2 0x110121a2 0x0000000a Code RO 4737 .ARM.Collect$$_printf_percent$$0000000B c_p.l(_printf_o.o) - 0x110121ac 0x110121ac 0x0000000a Code RO 4662 .ARM.Collect$$_printf_percent$$0000000C c_p.l(_printf_x.o) - 0x110121b6 0x110121b6 0x0000000a Code RO 4745 .ARM.Collect$$_printf_percent$$0000000D c_p.l(_printf_lli.o) - 0x110121c0 0x110121c0 0x0000000a Code RO 4746 .ARM.Collect$$_printf_percent$$0000000E c_p.l(_printf_lld.o) - 0x110121ca 0x110121ca 0x0000000a Code RO 4747 .ARM.Collect$$_printf_percent$$0000000F c_p.l(_printf_llu.o) - 0x110121d4 0x110121d4 0x0000000a Code RO 4752 .ARM.Collect$$_printf_percent$$00000010 c_p.l(_printf_llo.o) - 0x110121de 0x110121de 0x0000000a Code RO 4753 .ARM.Collect$$_printf_percent$$00000011 c_p.l(_printf_llx.o) - 0x110121e8 0x110121e8 0x0000000a Code RO 4749 .ARM.Collect$$_printf_percent$$00000012 c_p.l(_printf_l.o) - 0x110121f2 0x110121f2 0x0000000a Code RO 4734 .ARM.Collect$$_printf_percent$$00000013 c_p.l(_printf_c.o) - 0x110121fc 0x110121fc 0x0000000a Code RO 4661 .ARM.Collect$$_printf_percent$$00000014 c_p.l(_printf_s.o) - 0x11012206 0x11012206 0x0000000a Code RO 4750 .ARM.Collect$$_printf_percent$$00000015 c_p.l(_printf_lc.o) - 0x11012210 0x11012210 0x0000000a Code RO 4751 .ARM.Collect$$_printf_percent$$00000016 c_p.l(_printf_ls.o) - 0x1101221a 0x1101221a 0x00000004 Code RO 4744 .ARM.Collect$$_printf_percent$$00000017 c_p.l(_printf_percent_end.o) - 0x1101221e 0x1101221e 0x00000002 Code RO 4830 .ARM.Collect$$libinit$$00000000 c_p.l(libinit.o) - 0x11012220 0x11012220 0x00000000 Code RO 4853 .ARM.Collect$$libinit$$00000002 c_p.l(libinit2.o) - 0x11012220 0x11012220 0x00000000 Code RO 4855 .ARM.Collect$$libinit$$00000004 c_p.l(libinit2.o) - 0x11012220 0x11012220 0x00000000 Code RO 4858 .ARM.Collect$$libinit$$0000000A c_p.l(libinit2.o) - 0x11012220 0x11012220 0x00000000 Code RO 4860 .ARM.Collect$$libinit$$0000000C c_p.l(libinit2.o) - 0x11012220 0x11012220 0x00000000 Code RO 4862 .ARM.Collect$$libinit$$0000000E c_p.l(libinit2.o) - 0x11012220 0x11012220 0x00000006 Code RO 4863 .ARM.Collect$$libinit$$0000000F c_p.l(libinit2.o) - 0x11012226 0x11012226 0x00000000 Code RO 4865 .ARM.Collect$$libinit$$00000011 c_p.l(libinit2.o) - 0x11012226 0x11012226 0x0000000c Code RO 4866 .ARM.Collect$$libinit$$00000012 c_p.l(libinit2.o) - 0x11012232 0x11012232 0x00000000 Code RO 4867 .ARM.Collect$$libinit$$00000013 c_p.l(libinit2.o) - 0x11012232 0x11012232 0x00000000 Code RO 4869 .ARM.Collect$$libinit$$00000015 c_p.l(libinit2.o) - 0x11012232 0x11012232 0x0000000a Code RO 4870 .ARM.Collect$$libinit$$00000016 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4871 .ARM.Collect$$libinit$$00000017 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4873 .ARM.Collect$$libinit$$00000019 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4875 .ARM.Collect$$libinit$$0000001B c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4877 .ARM.Collect$$libinit$$0000001D c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4879 .ARM.Collect$$libinit$$0000001F c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4881 .ARM.Collect$$libinit$$00000021 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4883 .ARM.Collect$$libinit$$00000023 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4885 .ARM.Collect$$libinit$$00000025 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4889 .ARM.Collect$$libinit$$0000002C c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4891 .ARM.Collect$$libinit$$0000002E c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4893 .ARM.Collect$$libinit$$00000030 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000000 Code RO 4895 .ARM.Collect$$libinit$$00000032 c_p.l(libinit2.o) - 0x1101223c 0x1101223c 0x00000002 Code RO 4896 .ARM.Collect$$libinit$$00000033 c_p.l(libinit2.o) - 0x1101223e 0x1101223e 0x00000002 Code RO 4920 .ARM.Collect$$libshutdown$$00000000 c_p.l(libshutdown.o) - 0x11012240 0x11012240 0x00000000 Code RO 4946 .ARM.Collect$$libshutdown$$00000002 c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4948 .ARM.Collect$$libshutdown$$00000004 c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4950 .ARM.Collect$$libshutdown$$00000006 c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4953 .ARM.Collect$$libshutdown$$00000009 c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4956 .ARM.Collect$$libshutdown$$0000000C c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4958 .ARM.Collect$$libshutdown$$0000000E c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000000 Code RO 4961 .ARM.Collect$$libshutdown$$00000011 c_p.l(libshutdown2.o) - 0x11012240 0x11012240 0x00000002 Code RO 4962 .ARM.Collect$$libshutdown$$00000012 c_p.l(libshutdown2.o) - 0x11012242 0x11012242 0x00000000 Code RO 4704 .ARM.Collect$$rtentry$$00000000 c_p.l(__rtentry.o) - 0x11012242 0x11012242 0x00000000 Code RO 4766 .ARM.Collect$$rtentry$$00000002 c_p.l(__rtentry2.o) - 0x11012242 0x11012242 0x00000006 Code RO 4778 .ARM.Collect$$rtentry$$00000004 c_p.l(__rtentry4.o) - 0x11012248 0x11012248 0x00000000 Code RO 4768 .ARM.Collect$$rtentry$$00000009 c_p.l(__rtentry2.o) - 0x11012248 0x11012248 0x00000004 Code RO 4769 .ARM.Collect$$rtentry$$0000000A c_p.l(__rtentry2.o) - 0x1101224c 0x1101224c 0x00000000 Code RO 4771 .ARM.Collect$$rtentry$$0000000C c_p.l(__rtentry2.o) - 0x1101224c 0x1101224c 0x00000008 Code RO 4772 .ARM.Collect$$rtentry$$0000000D c_p.l(__rtentry2.o) - 0x11012254 0x11012254 0x00000002 Code RO 4839 .ARM.Collect$$rtexit$$00000000 c_p.l(rtexit.o) - 0x11012256 0x11012256 0x00000000 Code RO 4898 .ARM.Collect$$rtexit$$00000002 c_p.l(rtexit2.o) - 0x11012256 0x11012256 0x00000004 Code RO 4899 .ARM.Collect$$rtexit$$00000003 c_p.l(rtexit2.o) - 0x1101225a 0x1101225a 0x00000006 Code RO 4900 .ARM.Collect$$rtexit$$00000004 c_p.l(rtexit2.o) - 0x11012260 0x11012260 0x00000038 Code RO 4667 .emb_text c_p.l(rt_memcpy.o) + 0x11012120 0x11012120 0x0000001c Code RO 5079 !!handler_zi c_p.l(__scatter_zi.o) + 0x1101213c 0x1101213c 0x00000002 Code RO 4769 .ARM.Collect$$_printf_percent$$00000000 c_p.l(_printf_percent.o) + 0x1101213e 0x1101213e 0x0000000a Code RO 4840 .ARM.Collect$$_printf_percent$$00000001 c_p.l(_printf_n.o) + 0x11012148 0x11012148 0x0000000a Code RO 4841 .ARM.Collect$$_printf_percent$$00000002 c_p.l(_printf_p.o) + 0x11012152 0x11012152 0x0000000a Code RO 4845 .ARM.Collect$$_printf_percent$$00000003 c_p.l(_printf_f.o) + 0x1101215c 0x1101215c 0x0000000a Code RO 4846 .ARM.Collect$$_printf_percent$$00000004 c_p.l(_printf_e.o) + 0x11012166 0x11012166 0x0000000a Code RO 4847 .ARM.Collect$$_printf_percent$$00000005 c_p.l(_printf_g.o) + 0x11012170 0x11012170 0x0000000a Code RO 4848 .ARM.Collect$$_printf_percent$$00000006 c_p.l(_printf_a.o) + 0x1101217a 0x1101217a 0x0000000a Code RO 4853 .ARM.Collect$$_printf_percent$$00000007 c_p.l(_printf_ll.o) + 0x11012184 0x11012184 0x0000000a Code RO 4843 .ARM.Collect$$_printf_percent$$00000008 c_p.l(_printf_i.o) + 0x1101218e 0x1101218e 0x0000000a Code RO 4768 .ARM.Collect$$_printf_percent$$00000009 c_p.l(_printf_d.o) + 0x11012198 0x11012198 0x0000000a Code RO 4844 .ARM.Collect$$_printf_percent$$0000000A c_p.l(_printf_u.o) + 0x110121a2 0x110121a2 0x0000000a Code RO 4842 .ARM.Collect$$_printf_percent$$0000000B c_p.l(_printf_o.o) + 0x110121ac 0x110121ac 0x0000000a Code RO 4767 .ARM.Collect$$_printf_percent$$0000000C c_p.l(_printf_x.o) + 0x110121b6 0x110121b6 0x0000000a Code RO 4850 .ARM.Collect$$_printf_percent$$0000000D c_p.l(_printf_lli.o) + 0x110121c0 0x110121c0 0x0000000a Code RO 4851 .ARM.Collect$$_printf_percent$$0000000E c_p.l(_printf_lld.o) + 0x110121ca 0x110121ca 0x0000000a Code RO 4852 .ARM.Collect$$_printf_percent$$0000000F c_p.l(_printf_llu.o) + 0x110121d4 0x110121d4 0x0000000a Code RO 4857 .ARM.Collect$$_printf_percent$$00000010 c_p.l(_printf_llo.o) + 0x110121de 0x110121de 0x0000000a Code RO 4858 .ARM.Collect$$_printf_percent$$00000011 c_p.l(_printf_llx.o) + 0x110121e8 0x110121e8 0x0000000a Code RO 4854 .ARM.Collect$$_printf_percent$$00000012 c_p.l(_printf_l.o) + 0x110121f2 0x110121f2 0x0000000a Code RO 4839 .ARM.Collect$$_printf_percent$$00000013 c_p.l(_printf_c.o) + 0x110121fc 0x110121fc 0x0000000a Code RO 4766 .ARM.Collect$$_printf_percent$$00000014 c_p.l(_printf_s.o) + 0x11012206 0x11012206 0x0000000a Code RO 4855 .ARM.Collect$$_printf_percent$$00000015 c_p.l(_printf_lc.o) + 0x11012210 0x11012210 0x0000000a Code RO 4856 .ARM.Collect$$_printf_percent$$00000016 c_p.l(_printf_ls.o) + 0x1101221a 0x1101221a 0x00000004 Code RO 4849 .ARM.Collect$$_printf_percent$$00000017 c_p.l(_printf_percent_end.o) + 0x1101221e 0x1101221e 0x00000002 Code RO 4935 .ARM.Collect$$libinit$$00000000 c_p.l(libinit.o) + 0x11012220 0x11012220 0x00000000 Code RO 4958 .ARM.Collect$$libinit$$00000002 c_p.l(libinit2.o) + 0x11012220 0x11012220 0x00000000 Code RO 4960 .ARM.Collect$$libinit$$00000004 c_p.l(libinit2.o) + 0x11012220 0x11012220 0x00000000 Code RO 4963 .ARM.Collect$$libinit$$0000000A c_p.l(libinit2.o) + 0x11012220 0x11012220 0x00000000 Code RO 4965 .ARM.Collect$$libinit$$0000000C c_p.l(libinit2.o) + 0x11012220 0x11012220 0x00000000 Code RO 4967 .ARM.Collect$$libinit$$0000000E c_p.l(libinit2.o) + 0x11012220 0x11012220 0x00000006 Code RO 4968 .ARM.Collect$$libinit$$0000000F c_p.l(libinit2.o) + 0x11012226 0x11012226 0x00000000 Code RO 4970 .ARM.Collect$$libinit$$00000011 c_p.l(libinit2.o) + 0x11012226 0x11012226 0x0000000c Code RO 4971 .ARM.Collect$$libinit$$00000012 c_p.l(libinit2.o) + 0x11012232 0x11012232 0x00000000 Code RO 4972 .ARM.Collect$$libinit$$00000013 c_p.l(libinit2.o) + 0x11012232 0x11012232 0x00000000 Code RO 4974 .ARM.Collect$$libinit$$00000015 c_p.l(libinit2.o) + 0x11012232 0x11012232 0x0000000a Code RO 4975 .ARM.Collect$$libinit$$00000016 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4976 .ARM.Collect$$libinit$$00000017 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4978 .ARM.Collect$$libinit$$00000019 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4980 .ARM.Collect$$libinit$$0000001B c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4982 .ARM.Collect$$libinit$$0000001D c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4984 .ARM.Collect$$libinit$$0000001F c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4986 .ARM.Collect$$libinit$$00000021 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4988 .ARM.Collect$$libinit$$00000023 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4990 .ARM.Collect$$libinit$$00000025 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4994 .ARM.Collect$$libinit$$0000002C c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4996 .ARM.Collect$$libinit$$0000002E c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 4998 .ARM.Collect$$libinit$$00000030 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000000 Code RO 5000 .ARM.Collect$$libinit$$00000032 c_p.l(libinit2.o) + 0x1101223c 0x1101223c 0x00000002 Code RO 5001 .ARM.Collect$$libinit$$00000033 c_p.l(libinit2.o) + 0x1101223e 0x1101223e 0x00000002 Code RO 5025 .ARM.Collect$$libshutdown$$00000000 c_p.l(libshutdown.o) + 0x11012240 0x11012240 0x00000000 Code RO 5051 .ARM.Collect$$libshutdown$$00000002 c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5053 .ARM.Collect$$libshutdown$$00000004 c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5055 .ARM.Collect$$libshutdown$$00000006 c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5058 .ARM.Collect$$libshutdown$$00000009 c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5061 .ARM.Collect$$libshutdown$$0000000C c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5063 .ARM.Collect$$libshutdown$$0000000E c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000000 Code RO 5066 .ARM.Collect$$libshutdown$$00000011 c_p.l(libshutdown2.o) + 0x11012240 0x11012240 0x00000002 Code RO 5067 .ARM.Collect$$libshutdown$$00000012 c_p.l(libshutdown2.o) + 0x11012242 0x11012242 0x00000000 Code RO 4809 .ARM.Collect$$rtentry$$00000000 c_p.l(__rtentry.o) + 0x11012242 0x11012242 0x00000000 Code RO 4871 .ARM.Collect$$rtentry$$00000002 c_p.l(__rtentry2.o) + 0x11012242 0x11012242 0x00000006 Code RO 4883 .ARM.Collect$$rtentry$$00000004 c_p.l(__rtentry4.o) + 0x11012248 0x11012248 0x00000000 Code RO 4873 .ARM.Collect$$rtentry$$00000009 c_p.l(__rtentry2.o) + 0x11012248 0x11012248 0x00000004 Code RO 4874 .ARM.Collect$$rtentry$$0000000A c_p.l(__rtentry2.o) + 0x1101224c 0x1101224c 0x00000000 Code RO 4876 .ARM.Collect$$rtentry$$0000000C c_p.l(__rtentry2.o) + 0x1101224c 0x1101224c 0x00000008 Code RO 4877 .ARM.Collect$$rtentry$$0000000D c_p.l(__rtentry2.o) + 0x11012254 0x11012254 0x00000002 Code RO 4944 .ARM.Collect$$rtexit$$00000000 c_p.l(rtexit.o) + 0x11012256 0x11012256 0x00000000 Code RO 5003 .ARM.Collect$$rtexit$$00000002 c_p.l(rtexit2.o) + 0x11012256 0x11012256 0x00000004 Code RO 5004 .ARM.Collect$$rtexit$$00000003 c_p.l(rtexit2.o) + 0x1101225a 0x1101225a 0x00000006 Code RO 5005 .ARM.Collect$$rtexit$$00000004 c_p.l(rtexit2.o) + 0x11012260 0x11012260 0x00000038 Code RO 4772 .emb_text c_p.l(rt_memcpy.o) 0x11012298 0x11012298 0x00000048 Code RO 4 .text startup_xinc.o - 0x110122e0 0x110122e0 0x00000030 Code RO 4602 .text c_p.l(llmul.o) - 0x11012310 0x11012310 0x00000102 Code RO 4604 .text c_p.l(lludiv.o) + 0x110122e0 0x110122e0 0x00000030 Code RO 4707 .text c_p.l(llmul.o) + 0x11012310 0x11012310 0x00000102 Code RO 4709 .text c_p.l(lludiv.o) 0x11012412 0x11012412 0x00000002 PAD - 0x11012414 0x11012414 0x0000001c Code RO 4606 .text c_p.l(printf.o) - 0x11012430 0x11012430 0x0000001c Code RO 4608 .text c_p.l(__2printf.o) - 0x1101244c 0x1101244c 0x0000004e Code RO 4614 .text c_p.l(_printf_pad.o) - 0x1101249a 0x1101249a 0x00000052 Code RO 4616 .text c_p.l(_printf_str.o) - 0x110124ec 0x110124ec 0x0000006c Code RO 4618 .text c_p.l(_printf_dec.o) - 0x11012558 0x11012558 0x00000098 Code RO 4638 .text c_p.l(_printf_hex_int_ll_ptr.o) - 0x110125f0 0x110125f0 0x00000188 Code RO 4658 .text c_p.l(__printf_flags_ss_wp.o) - 0x11012778 0x11012778 0x0000005a Code RO 4665 .text c_p.l(memcmp.o) - 0x110127d2 0x110127d2 0x00000082 Code RO 4668 .text c_p.l(rt_memcpy.o) - 0x11012854 0x11012854 0x00000012 Code RO 4671 .text c_p.l(aeabi_memset.o) - 0x11012866 0x11012866 0x00000006 Code RO 4683 .text c_p.l(heapauxi.o) - 0x1101286c 0x1101286c 0x00000160 Code RO 4695 .text fz_ps.l(fdiv.o) - 0x110129cc 0x110129cc 0x00000030 Code RO 4698 .text fz_ps.l(ffixui.o) - 0x110129fc 0x110129fc 0x0000005e Code RO 4700 .text fz_ps.l(fflti.o) - 0x11012a5a 0x11012a5a 0x00000024 Code RO 4713 .text c_p.l(_printf_truncate.o) - 0x11012a7e 0x11012a7e 0x000000b0 Code RO 4715 .text c_p.l(_printf_intcommon.o) - 0x11012b2e 0x11012b2e 0x00000026 Code RO 4717 .text c_p.l(_printf_charcount.o) - 0x11012b54 0x11012b54 0x0000002e Code RO 4719 .text c_p.l(_printf_char.o) + 0x11012414 0x11012414 0x0000001c Code RO 4711 .text c_p.l(printf.o) + 0x11012430 0x11012430 0x0000001c Code RO 4713 .text c_p.l(__2printf.o) + 0x1101244c 0x1101244c 0x0000004e Code RO 4719 .text c_p.l(_printf_pad.o) + 0x1101249a 0x1101249a 0x00000052 Code RO 4721 .text c_p.l(_printf_str.o) + 0x110124ec 0x110124ec 0x0000006c Code RO 4723 .text c_p.l(_printf_dec.o) + 0x11012558 0x11012558 0x00000098 Code RO 4743 .text c_p.l(_printf_hex_int_ll_ptr.o) + 0x110125f0 0x110125f0 0x00000188 Code RO 4763 .text c_p.l(__printf_flags_ss_wp.o) + 0x11012778 0x11012778 0x0000005a Code RO 4770 .text c_p.l(memcmp.o) + 0x110127d2 0x110127d2 0x00000082 Code RO 4773 .text c_p.l(rt_memcpy.o) + 0x11012854 0x11012854 0x00000012 Code RO 4776 .text c_p.l(aeabi_memset.o) + 0x11012866 0x11012866 0x00000006 Code RO 4788 .text c_p.l(heapauxi.o) + 0x1101286c 0x1101286c 0x00000160 Code RO 4800 .text fz_ps.l(fdiv.o) + 0x110129cc 0x110129cc 0x00000030 Code RO 4803 .text fz_ps.l(ffixui.o) + 0x110129fc 0x110129fc 0x0000005e Code RO 4805 .text fz_ps.l(fflti.o) + 0x11012a5a 0x11012a5a 0x00000024 Code RO 4818 .text c_p.l(_printf_truncate.o) + 0x11012a7e 0x11012a7e 0x000000b0 Code RO 4820 .text c_p.l(_printf_intcommon.o) + 0x11012b2e 0x11012b2e 0x00000026 Code RO 4822 .text c_p.l(_printf_charcount.o) + 0x11012b54 0x11012b54 0x0000002e Code RO 4824 .text c_p.l(_printf_char.o) 0x11012b82 0x11012b82 0x00000002 PAD - 0x11012b84 0x11012b84 0x00000028 Code RO 4721 .text c_p.l(_printf_char_file.o) - 0x11012bac 0x11012bac 0x000000bc Code RO 4723 .text c_p.l(_printf_wctomb.o) - 0x11012c68 0x11012c68 0x00000070 Code RO 4726 .text c_p.l(_printf_longlong_dec.o) - 0x11012cd8 0x11012cd8 0x00000070 Code RO 4732 .text c_p.l(_printf_oct_int_ll.o) - 0x11012d48 0x11012d48 0x00000028 Code RO 4754 .text c_p.l(rtudiv10.o) - 0x11012d70 0x11012d70 0x0000007a Code RO 4782 .text c_p.l(lludiv10.o) + 0x11012b84 0x11012b84 0x00000028 Code RO 4826 .text c_p.l(_printf_char_file.o) + 0x11012bac 0x11012bac 0x000000bc Code RO 4828 .text c_p.l(_printf_wctomb.o) + 0x11012c68 0x11012c68 0x00000070 Code RO 4831 .text c_p.l(_printf_longlong_dec.o) + 0x11012cd8 0x11012cd8 0x00000070 Code RO 4837 .text c_p.l(_printf_oct_int_ll.o) + 0x11012d48 0x11012d48 0x00000028 Code RO 4859 .text c_p.l(rtudiv10.o) + 0x11012d70 0x11012d70 0x0000007a Code RO 4887 .text c_p.l(lludiv10.o) 0x11012dea 0x11012dea 0x00000002 PAD - 0x11012dec 0x11012dec 0x00000418 Code RO 4784 .text c_p.l(_printf_fp_dec.o) - 0x11013204 0x11013204 0x000002d8 Code RO 4786 .text c_p.l(_printf_fp_hex.o) - 0x110134dc 0x110134dc 0x00000030 Code RO 4789 .text c_p.l(_printf_char_common.o) - 0x1101350c 0x1101350c 0x0000002e Code RO 4791 .text c_p.l(_printf_wchar.o) - 0x1101353a 0x1101353a 0x00000040 Code RO 4793 .text c_p.l(_wcrtomb.o) - 0x1101357a 0x1101357a 0x0000003e Code RO 4795 .text c_p.l(sys_stackheap_outer.o) - 0x110135b8 0x110135b8 0x00000010 Code RO 4798 .text c_p.l(rt_ctype_table.o) - 0x110135c8 0x110135c8 0x00000008 Code RO 4803 .text c_p.l(rt_locale_intlibspace.o) - 0x110135d0 0x110135d0 0x00000088 Code RO 4805 .text c_p.l(_printf_fp_infnan.o) - 0x11013658 0x11013658 0x000000d8 Code RO 4809 .text c_p.l(bigflt0.o) - 0x11013730 0x11013730 0x00000580 Code RO 4812 .text c_p.l(btod.o) - 0x11013cb0 0x11013cb0 0x00000010 Code RO 4819 .text c_p.l(exit.o) - 0x11013cc0 0x11013cc0 0x00000008 Code RO 4835 .text c_p.l(libspace.o) - 0x11013cc8 0x11013cc8 0x00000088 Code RO 4850 .text c_p.l(strcmp.o) - 0x11013d50 0x11013d50 0x00000056 Code RO 4968 .text c_p.l(__dczerorl2.o) + 0x11012dec 0x11012dec 0x00000418 Code RO 4889 .text c_p.l(_printf_fp_dec.o) + 0x11013204 0x11013204 0x000002d8 Code RO 4891 .text c_p.l(_printf_fp_hex.o) + 0x110134dc 0x110134dc 0x00000030 Code RO 4894 .text c_p.l(_printf_char_common.o) + 0x1101350c 0x1101350c 0x0000002e Code RO 4896 .text c_p.l(_printf_wchar.o) + 0x1101353a 0x1101353a 0x00000040 Code RO 4898 .text c_p.l(_wcrtomb.o) + 0x1101357a 0x1101357a 0x0000003e Code RO 4900 .text c_p.l(sys_stackheap_outer.o) + 0x110135b8 0x110135b8 0x00000010 Code RO 4903 .text c_p.l(rt_ctype_table.o) + 0x110135c8 0x110135c8 0x00000008 Code RO 4908 .text c_p.l(rt_locale_intlibspace.o) + 0x110135d0 0x110135d0 0x00000088 Code RO 4910 .text c_p.l(_printf_fp_infnan.o) + 0x11013658 0x11013658 0x000000d8 Code RO 4914 .text c_p.l(bigflt0.o) + 0x11013730 0x11013730 0x00000580 Code RO 4917 .text c_p.l(btod.o) + 0x11013cb0 0x11013cb0 0x00000010 Code RO 4924 .text c_p.l(exit.o) + 0x11013cc0 0x11013cc0 0x00000008 Code RO 4940 .text c_p.l(libspace.o) + 0x11013cc8 0x11013cc8 0x00000088 Code RO 4955 .text c_p.l(strcmp.o) + 0x11013d50 0x11013d50 0x00000056 Code RO 5073 .text c_p.l(__dczerorl2.o) 0x11013da6 0x11013da6 0x00000002 PAD - 0x11013da8 0x11013da8 0x0000000c Ven RO 4976 Veneer$$Code anon$$obj.o - 0x11013db4 0x11013db4 0x0000000c Ven RO 4977 Veneer$$Code anon$$obj.o - 0x11013dc0 0x11013dc0 0x0000000c Ven RO 4978 Veneer$$Code anon$$obj.o - 0x11013dcc 0x11013dcc 0x0000000c Ven RO 4979 Veneer$$Code anon$$obj.o - 0x11013dd8 0x11013dd8 0x0000000c Ven RO 4980 Veneer$$Code anon$$obj.o - 0x11013de4 0x11013de4 0x0000000c Ven RO 4981 Veneer$$Code anon$$obj.o - 0x11013df0 0x11013df0 0x0000000c Ven RO 4982 Veneer$$Code anon$$obj.o - 0x11013dfc 0x11013dfc 0x0000000c Ven RO 4983 Veneer$$Code anon$$obj.o - 0x11013e08 0x11013e08 0x0000000c Ven RO 4984 Veneer$$Code anon$$obj.o - 0x11013e14 0x11013e14 0x0000000c Ven RO 4985 Veneer$$Code anon$$obj.o - 0x11013e20 0x11013e20 0x0000000c Ven RO 4986 Veneer$$Code anon$$obj.o - 0x11013e2c 0x11013e2c 0x0000000c Ven RO 4987 Veneer$$Code anon$$obj.o - 0x11013e38 0x11013e38 0x0000000c Ven RO 4988 Veneer$$Code anon$$obj.o - 0x11013e44 0x11013e44 0x0000000c Ven RO 4989 Veneer$$Code anon$$obj.o - 0x11013e50 0x11013e50 0x0000000c Ven RO 4990 Veneer$$Code anon$$obj.o - 0x11013e5c 0x11013e5c 0x0000000c Ven RO 4991 Veneer$$Code anon$$obj.o - 0x11013e68 0x11013e68 0x0000000c Ven RO 4992 Veneer$$Code anon$$obj.o - 0x11013e74 0x11013e74 0x0000000c Ven RO 4993 Veneer$$Code anon$$obj.o - 0x11013e80 0x11013e80 0x0000000c Ven RO 4994 Veneer$$Code anon$$obj.o - 0x11013e8c 0x11013e8c 0x0000000c Ven RO 4995 Veneer$$Code anon$$obj.o - 0x11013e98 0x11013e98 0x0000000c Ven RO 4996 Veneer$$Code anon$$obj.o - 0x11013ea4 0x11013ea4 0x0000000c Ven RO 4997 Veneer$$Code anon$$obj.o - 0x11013eb0 0x11013eb0 0x0000000c Ven RO 4998 Veneer$$Code anon$$obj.o - 0x11013ebc 0x11013ebc 0x0000000c Ven RO 4999 Veneer$$Code anon$$obj.o - 0x11013ec8 0x11013ec8 0x0000000c Ven RO 5000 Veneer$$Code anon$$obj.o - 0x11013ed4 0x11013ed4 0x0000000c Ven RO 5001 Veneer$$Code anon$$obj.o - 0x11013ee0 0x11013ee0 0x0000000c Ven RO 5002 Veneer$$Code anon$$obj.o - 0x11013eec 0x11013eec 0x00000014 Code RO 1330 i.GADC_Handler xc_drv_adc.o - 0x11013f00 0x11013f00 0x00000024 Code RO 2265 i.GPIO_Handler xc_drv_gpio.o - 0x11013f24 0x11013f24 0x0000002c Code RO 2453 i.PWM_Handler xc_drv_pwm.o - 0x11013f50 0x11013f50 0x00000008 Code RO 3492 i.SysTick_Handler xc_drv_systick.o + 0x11013da8 0x11013da8 0x0000000c Ven RO 5081 Veneer$$Code anon$$obj.o + 0x11013db4 0x11013db4 0x0000000c Ven RO 5082 Veneer$$Code anon$$obj.o + 0x11013dc0 0x11013dc0 0x0000000c Ven RO 5083 Veneer$$Code anon$$obj.o + 0x11013dcc 0x11013dcc 0x0000000c Ven RO 5084 Veneer$$Code anon$$obj.o + 0x11013dd8 0x11013dd8 0x0000000c Ven RO 5085 Veneer$$Code anon$$obj.o + 0x11013de4 0x11013de4 0x0000000c Ven RO 5086 Veneer$$Code anon$$obj.o + 0x11013df0 0x11013df0 0x0000000c Ven RO 5087 Veneer$$Code anon$$obj.o + 0x11013dfc 0x11013dfc 0x0000000c Ven RO 5088 Veneer$$Code anon$$obj.o + 0x11013e08 0x11013e08 0x0000000c Ven RO 5089 Veneer$$Code anon$$obj.o + 0x11013e14 0x11013e14 0x0000000c Ven RO 5090 Veneer$$Code anon$$obj.o + 0x11013e20 0x11013e20 0x0000000c Ven RO 5091 Veneer$$Code anon$$obj.o + 0x11013e2c 0x11013e2c 0x0000000c Ven RO 5092 Veneer$$Code anon$$obj.o + 0x11013e38 0x11013e38 0x0000000c Ven RO 5093 Veneer$$Code anon$$obj.o + 0x11013e44 0x11013e44 0x0000000c Ven RO 5094 Veneer$$Code anon$$obj.o + 0x11013e50 0x11013e50 0x0000000c Ven RO 5095 Veneer$$Code anon$$obj.o + 0x11013e5c 0x11013e5c 0x0000000c Ven RO 5096 Veneer$$Code anon$$obj.o + 0x11013e68 0x11013e68 0x0000000c Ven RO 5097 Veneer$$Code anon$$obj.o + 0x11013e74 0x11013e74 0x0000000c Ven RO 5098 Veneer$$Code anon$$obj.o + 0x11013e80 0x11013e80 0x0000000c Ven RO 5099 Veneer$$Code anon$$obj.o + 0x11013e8c 0x11013e8c 0x0000000c Ven RO 5100 Veneer$$Code anon$$obj.o + 0x11013e98 0x11013e98 0x0000000c Ven RO 5101 Veneer$$Code anon$$obj.o + 0x11013ea4 0x11013ea4 0x0000000c Ven RO 5102 Veneer$$Code anon$$obj.o + 0x11013eb0 0x11013eb0 0x0000000c Ven RO 5103 Veneer$$Code anon$$obj.o + 0x11013ebc 0x11013ebc 0x0000000c Ven RO 5104 Veneer$$Code anon$$obj.o + 0x11013ec8 0x11013ec8 0x0000000c Ven RO 5105 Veneer$$Code anon$$obj.o + 0x11013ed4 0x11013ed4 0x0000000c Ven RO 5106 Veneer$$Code anon$$obj.o + 0x11013ee0 0x11013ee0 0x0000000c Ven RO 5107 Veneer$$Code anon$$obj.o + 0x11013eec 0x11013eec 0x00000014 Code RO 1333 i.GADC_Handler xc_drv_adc.o + 0x11013f00 0x11013f00 0x00000024 Code RO 2268 i.GPIO_Handler xc_drv_gpio.o + 0x11013f24 0x11013f24 0x0000002c Code RO 2456 i.PWM_Handler xc_drv_pwm.o + 0x11013f50 0x11013f50 0x00000008 Code RO 3495 i.SysTick_Handler xc_drv_systick.o 0x11013f58 0x11013f58 0x00000020 Code RO 11 i.SystemInit system_xinc.o - 0x11013f78 0x11013f78 0x00000024 Code RO 3530 i.TIMER0_Handler xc_drv_timer.o - 0x11013f9c 0x11013f9c 0x00000024 Code RO 3531 i.TIMER1_Handler xc_drv_timer.o - 0x11013fc0 0x11013fc0 0x00000024 Code RO 3532 i.TIMER2_Handler xc_drv_timer.o - 0x11013fe4 0x11013fe4 0x00000024 Code RO 3533 i.TIMER3_Handler xc_drv_timer.o - 0x11014008 0x11014008 0x00000028 Code RO 4055 i.TaskProcess timeslice.o - 0x11014030 0x11014030 0x0000002c Code RO 4056 i.TaskRemarks timeslice.o - 0x1101405c 0x1101405c 0x0000000a Code RO 3729 i.UART0_Handler xc_drv_uart.o - 0x11014066 0x11014066 0x0000000a Code RO 3730 i.UART1_Handler xc_drv_uart.o - 0x11014070 0x11014070 0x0000000a Code RO 3731 i.UART2_Handler xc_drv_uart.o + 0x11013f78 0x11013f78 0x00000024 Code RO 3533 i.TIMER0_Handler xc_drv_timer.o + 0x11013f9c 0x11013f9c 0x00000024 Code RO 3534 i.TIMER1_Handler xc_drv_timer.o + 0x11013fc0 0x11013fc0 0x00000024 Code RO 3535 i.TIMER2_Handler xc_drv_timer.o + 0x11013fe4 0x11013fe4 0x00000024 Code RO 3536 i.TIMER3_Handler xc_drv_timer.o + 0x11014008 0x11014008 0x00000028 Code RO 4058 i.TaskProcess timeslice.o + 0x11014030 0x11014030 0x0000002c Code RO 4059 i.TaskRemarks timeslice.o + 0x1101405c 0x1101405c 0x0000000a Code RO 3732 i.UART0_Handler xc_drv_uart.o + 0x11014066 0x11014066 0x0000000a Code RO 3733 i.UART1_Handler xc_drv_uart.o + 0x11014070 0x11014070 0x0000000a Code RO 3734 i.UART2_Handler xc_drv_uart.o 0x1101407a 0x1101407a 0x00000002 PAD - 0x1101407c 0x1101407c 0x00000020 Code RO 3942 i.WDT_Handler xc_drv_wdt.o + 0x1101407c 0x1101407c 0x00000020 Code RO 3945 i.WDT_Handler xc_drv_wdt.o 0x1101409c 0x1101409c 0x0000004c Code RO 12 i.WDT_ResetInit system_xinc.o - 0x110140e8 0x110140e8 0x000000ac Code RO 4138 i._433_fun rf433.o - 0x11014194 0x11014194 0x00000030 Code RO 4814 i.__ARM_common_ll_muluu c_p.l(btod.o) - 0x110141c4 0x110141c4 0x0000001a Code RO 746 i.__ARM_common_switch8 arch_main.o - 0x110141de 0x110141de 0x00000002 PAD - 0x110141e0 0x110141e0 0x0000002c Code RO 4833 i.__ARM_fpclassify m_ps.l(fpclassify.o) - 0x1101420c 0x1101420c 0x0000000e Code RO 4651 i._is_digit c_p.l(__printf_wp.o) - 0x1101421a 0x1101421a 0x00000002 Code RO 13 i._sys_exit system_xinc.o - 0x1101421c 0x1101421c 0x0000008c Code RO 1331 i.adc_intr_callback xc_drv_adc.o - 0x110142a8 0x110142a8 0x00000048 Code RO 536 i.app_create_advertising app_task.o - 0x110142f0 0x110142f0 0x0000003c Code RO 537 i.app_delete_advertising app_task.o - 0x1101432c 0x1101432c 0x00000028 Code RO 538 i.app_get_dev_name app_task.o - 0x11014354 0x11014354 0x00000044 Code RO 539 i.app_init app_task.o - 0x11014398 0x11014398 0x00000040 Code RO 4139 i.app_key_callback_handler rf433.o - 0x110143d8 0x110143d8 0x00000068 Code RO 4287 i.app_key_click_detection key.o - 0x11014440 0x11014440 0x00000030 Code RO 4288 i.app_key_init key.o - 0x11014470 0x11014470 0x00000054 Code RO 4290 i.app_key_scan key.o - 0x110144c4 0x110144c4 0x00000070 Code RO 540 i.app_msg_handler app_task.o - 0x11014534 0x11014534 0x0000003c Code RO 4384 i.app_op_flash ota_flash_interface.o - 0x11014570 0x11014570 0x00000018 Code RO 4385 i.app_op_flash_on ota_flash_interface.o - 0x11014588 0x11014588 0x00000004 Code RO 803 i.app_sec_msg_dflt_handler app_sec.o - 0x1101458c 0x1101458c 0x00000068 Code RO 541 i.app_set_adv_data app_task.o - 0x110145f4 0x110145f4 0x0000003c Code RO 544 i.app_start_advertising app_task.o - 0x11014630 0x11014630 0x00000058 Code RO 678 i.app_uart_init arch_main.o - 0x11014688 0x11014688 0x00000018 Code RO 4100 i.ble_callback uart_1.o - 0x110146a0 0x110146a0 0x000000b8 Code RO 4386 i.ble_flash_handle ota_flash_interface.o - 0x11014758 0x11014758 0x0000001c Code RO 4387 i.ble_flash_later_page_erase ota_flash_interface.o - 0x11014774 0x11014774 0x0000002c Code RO 4389 i.ble_flash_later_write_page ota_flash_interface.o - 0x110147a0 0x110147a0 0x00000030 Code RO 4101 i.ble_message_process uart_1.o - 0x110147d0 0x110147d0 0x00000048 Code RO 4140 i.ble_mode_scan rf433.o - 0x11014818 0x11014818 0x0000006c Code RO 679 i.bluetooth_init arch_main.o - 0x11014884 0x11014884 0x00000090 Code RO 680 i.board_init arch_main.o - 0x11014914 0x11014914 0x00000058 Code RO 4141 i.chx_gpio_init rf433.o - 0x1101496c 0x1101496c 0x00000070 Code RO 889 i.clock_init sleep.o - 0x110149dc 0x110149dc 0x000000dc Code RO 929 i.custom_svc_add usr_server.o - 0x11014ab8 0x11014ab8 0x000000b0 Code RO 930 i.custom_svc_cb_att_read_get usr_server.o - 0x11014b68 0x11014b68 0x000001a8 Code RO 931 i.custom_svc_cb_att_val_set usr_server.o - 0x11014d10 0x11014d10 0x0000004c Code RO 932 i.custom_svc_cb_event_sent usr_server.o - 0x11014d5c 0x11014d5c 0x00000030 Code RO 3494 i.delay_us xc_drv_systick.o - 0x11014d8c 0x11014d8c 0x0000000e Code RO 2131 i.extract32_16 xc_drv_fmc_spi.o - 0x11014d9a 0x11014d9a 0x00000006 Code RO 15 i.ferror system_xinc.o - 0x11014da0 0x11014da0 0x00000164 Code RO 681 i.flash_init arch_main.o - 0x11014f04 0x11014f04 0x0000000e Code RO 4142 i.flash_run rf433.o - 0x11014f12 0x11014f12 0x00000056 Code RO 2132 i.flash_size_and_type_get xc_drv_fmc_spi.o - 0x11014f68 0x11014f68 0x0000002c Code RO 4244 i.fmc_spi_read fmc_spi_1.o - 0x11014f94 0x11014f94 0x00000200 Code RO 805 i.gapc_bond_ind_handler app_sec.o - 0x11015194 0x11015194 0x0000021c Code RO 806 i.gapc_bond_req_ind_handler app_sec.o - 0x110153b0 0x110153b0 0x0000034c Code RO 546 i.gapc_callback app_task.o - 0x110156fc 0x110156fc 0x0000006c Code RO 807 i.gapc_encrypt_ind_handler app_sec.o - 0x11015768 0x11015768 0x000001c8 Code RO 808 i.gapc_encrypt_req_ind_handler app_sec.o - 0x11015930 0x11015930 0x00000088 Code RO 547 i.gapc_get_device_info_req_ind app_task.o - 0x110159b8 0x110159b8 0x00000144 Code RO 548 i.gapm_callback app_task.o - 0x11015afc 0x11015afc 0x000000a4 Code RO 549 i.gapm_cmp_evt app_task.o - 0x11015ba0 0x11015ba0 0x00000008 Code RO 550 i.get_app_env app_task.o - 0x11015ba8 0x11015ba8 0x0000001c Code RO 4245 i.get_checksum fmc_spi_1.o - 0x11015bc4 0x11015bc4 0x0000002e Code RO 4291 i.get_click_event key.o - 0x11015bf2 0x11015bf2 0x00000002 PAD - 0x11015bf4 0x11015bf4 0x00000014 Code RO 1022 i.get_fota_env_addr nvds.o - 0x11015c08 0x11015c08 0x00000038 Code RO 4206 i.gpio_intr_callback switch_s.o - 0x11015c40 0x11015c40 0x00000014 Code RO 4292 i.gpio_key_check key.o - 0x11015c54 0x11015c54 0x00000014 Code RO 4293 i.key_click_state_reset key.o - 0x11015c68 0x11015c68 0x0000003c Code RO 4351 i.led_gpio_init led.o - 0x11015ca4 0x11015ca4 0x00000054 Code RO 682 i.main arch_main.o - 0x11015cf8 0x11015cf8 0x00000034 Code RO 1023 i.nvds_browse_tag nvds.o - 0x11015d2c 0x11015d2c 0x00000038 Code RO 1024 i.nvds_del nvds.o - 0x11015d64 0x11015d64 0x00000080 Code RO 1025 i.nvds_erase nvds.o - 0x11015de4 0x11015de4 0x00000044 Code RO 1026 i.nvds_get nvds.o - 0x11015e28 0x11015e28 0x00000044 Code RO 1027 i.nvds_init nvds.o - 0x11015e6c 0x11015e6c 0x00000020 Code RO 1028 i.nvds_init_memory nvds.o - 0x11015e8c 0x11015e8c 0x0000002c Code RO 1029 i.nvds_is_magic_number_ok nvds.o - 0x11015eb8 0x11015eb8 0x00000068 Code RO 1031 i.nvds_purge nvds.o - 0x11015f20 0x11015f20 0x000000d4 Code RO 1032 i.nvds_put nvds.o - 0x11015ff4 0x11015ff4 0x00000028 Code RO 1033 i.nvds_read nvds.o - 0x1101601c 0x1101601c 0x00000084 Code RO 1034 i.nvds_space_init nvds.o - 0x110160a0 0x110160a0 0x00000038 Code RO 1035 i.nvds_walk_tag nvds.o - 0x110160d8 0x110160d8 0x00000028 Code RO 1036 i.nvds_write nvds.o - 0x11016100 0x11016100 0x0000009c Code RO 4546 i.ota_slave_send_data ota_server.o - 0x1101619c 0x1101619c 0x00000010 Code RO 4547 i.ota_srv_get_hdl_from_att_idx ota_server.o - 0x110161ac 0x110161ac 0x0000003c Code RO 4444 i.ota_write_flash ota_protocol.o - 0x110161e8 0x110161e8 0x00000034 Code RO 4352 i.pwm3_toggle led.o - 0x1101621c 0x1101621c 0x00000004 Code RO 2454 i.pwm_capture_ch0_callback xc_drv_pwm.o - 0x11016220 0x11016220 0x00000004 Code RO 2455 i.pwm_capture_ch1_callback xc_drv_pwm.o - 0x11016224 0x11016224 0x00000004 Code RO 2456 i.pwm_capture_ch2_callback xc_drv_pwm.o - 0x11016228 0x11016228 0x000000dc Code RO 2457 i.pwm_freq_to_period xc_drv_pwm.o - 0x11016304 0x11016304 0x000000c0 Code RO 2458 i.pwm_pin_set xc_drv_pwm.o - 0x110163c4 0x110163c4 0x00000084 Code RO 4246 i.read_user_data fmc_spi_1.o - 0x11016448 0x11016448 0x0000000e Code RO 2133 i.reverse_verif_is_true xc_drv_fmc_spi.o - 0x11016456 0x11016456 0x0000001e Code RO 4143 i.rf433_gpio_init rf433.o - 0x11016474 0x11016474 0x000000f8 Code RO 4144 i.rf433_receive rf433.o - 0x1101656c 0x1101656c 0x00000028 Code RO 683 i.rom_env_host_init arch_main.o - 0x11016594 0x11016594 0x0000019c Code RO 4145 i.scan_433 rf433.o - 0x11016730 0x11016730 0x00000090 Code RO 4102 i.scan_uart uart_1.o - 0x110167c0 0x110167c0 0x00000010 Code RO 4057 i.set_TaskComps_timer timeslice.o - 0x110167d0 0x110167d0 0x0000009c Code RO 684 i.set_single_addr_name arch_main.o - 0x1101686c 0x1101686c 0x0000003c Code RO 16 i.set_vector system_xinc.o - 0x110168a8 0x110168a8 0x0000009c Code RO 933 i.slave_send_data usr_server.o - 0x11016944 0x11016944 0x00000010 Code RO 934 i.srv_get_hdl_from_att_idx usr_server.o - 0x11016954 0x11016954 0x00000070 Code RO 4207 i.switch_init switch_s.o - 0x110169c4 0x110169c4 0x00000002 Code RO 3495 i.systick_callback xc_drv_systick.o - 0x110169c6 0x110169c6 0x00000002 PAD - 0x110169c8 0x110169c8 0x00000088 Code RO 4015 i.timer0_2_init timer.o - 0x11016a50 0x11016a50 0x00000002 Code RO 3537 i.timer3_callback xc_drv_timer.o - 0x11016a52 0x11016a52 0x00000002 PAD - 0x11016a54 0x11016a54 0x00000270 Code RO 4208 i.trigger_check_process switch_s.o - 0x11016cc4 0x11016cc4 0x000000b0 Code RO 3732 i.uart_user_handler xc_drv_uart.o - 0x11016d74 0x11016d74 0x00000016 Code RO 4016 i.updateTimer timer.o - 0x11016d8a 0x11016d8a 0x0000001a Code RO 686 i.wdt_init arch_main.o - 0x11016da4 0x11016da4 0x00000088 Code RO 4247 i.wright_user_data fmc_spi_1.o - 0x11016e2c 0x11016e2c 0x0000007c Code RO 1337 i.xc_adc_data_average xc_drv_adc.o - 0x11016ea8 0x11016ea8 0x00000028 Code RO 1132 i.xc_ble_activity_delete xc_gap_api.o - 0x11016ed0 0x11016ed0 0x00000030 Code RO 1593 i.xc_bor_init xc_drv_bor.o - 0x11016f00 0x11016f00 0x00000040 Code RO 1836 i.xc_clock_bbpll_common_cfg xc_drv_clock.o - 0x11016f40 0x11016f40 0x000000ec Code RO 1837 i.xc_clock_bbpll_freq_cfg xc_drv_clock.o - 0x1101702c 0x1101702c 0x0000000c Code RO 1838 i.xc_clock_hfclk_in_get xc_drv_clock.o - 0x11017038 0x11017038 0x000000dc Code RO 1839 i.xc_clock_hfclk_set xc_drv_clock.o - 0x11017114 0x11017114 0x00000016 Code RO 1841 i.xc_clock_init_cfg xc_drv_clock.o - 0x1101712a 0x1101712a 0x00000002 PAD - 0x1101712c 0x1101712c 0x0000000c Code RO 1842 i.xc_clock_lfclk_in_get xc_drv_clock.o - 0x11017138 0x11017138 0x0000006c Code RO 1843 i.xc_clock_lfclk_set xc_drv_clock.o - 0x110171a4 0x110171a4 0x00000028 Code RO 4448 i.xc_fota_dev_ack_cmd ota_protocol.o - 0x110171cc 0x110171cc 0x0000001c Code RO 2267 i.xc_gpio_direction_config xc_drv_gpio.o - 0x110171e8 0x110171e8 0x00000028 Code RO 2268 i.xc_gpio_fun_sel xc_drv_gpio.o - 0x11017210 0x11017210 0x0000002e Code RO 2269 i.xc_gpio_init xc_drv_gpio.o - 0x1101723e 0x1101723e 0x00000002 PAD - 0x11017240 0x11017240 0x00000034 Code RO 2270 i.xc_gpio_it_config xc_drv_gpio.o - 0x11017274 0x11017274 0x0000004c Code RO 2271 i.xc_gpio_mux_ctl xc_drv_gpio.o - 0x110172c0 0x110172c0 0x000000e8 Code RO 2272 i.xc_gpio_pull_config xc_drv_gpio.o - 0x110173a8 0x110173a8 0x00000024 Code RO 2273 i.xc_gpio_read_pin xc_drv_gpio.o - 0x110173cc 0x110173cc 0x0000002c Code RO 2274 i.xc_gpio_toggle_pin xc_drv_gpio.o - 0x110173f8 0x110173f8 0x0000001c Code RO 2275 i.xc_gpio_write_pin xc_drv_gpio.o - 0x11017414 0x11017414 0x00000040 Code RO 1858 i.xc_hfclk_set xc_drv_clock.o - 0x11017454 0x11017454 0x00000064 Code RO 4452 i.xc_ota_schedule ota_protocol.o - 0x110174b8 0x110174b8 0x00000070 Code RO 2481 i.xc_pwm_dutycycle_set xc_drv_pwm.o - 0x11017528 0x11017528 0x000000e0 Code RO 2482 i.xc_pwm_init xc_drv_pwm.o - 0x11017608 0x11017608 0x0000001c Code RO 2487 i.xc_pwm_start_all xc_drv_pwm.o - 0x11017624 0x11017624 0x0000005c Code RO 2905 i.xc_pwr_vol_set xc_drv_pwr.o - 0x11017680 0x11017680 0x000000f8 Code RO 1681 i.xc_rc32k_soft_calib_set xc_drv_calib.o - 0x11017778 0x11017778 0x0000021c Code RO 1859 i.xc_system_param_check xc_drv_clock.o - 0x11017994 0x11017994 0x0000000c Code RO 1861 i.xc_systick_unit_get xc_drv_clock.o - 0x110179a0 0x110179a0 0x00000120 Code RO 3538 i.xc_timer_init xc_drv_timer.o - 0x11017ac0 0x11017ac0 0x00000028 Code RO 3539 i.xc_timer_set_value xc_drv_timer.o - 0x11017ae8 0x11017ae8 0x0000003c Code RO 3540 i.xc_timer_start xc_drv_timer.o - 0x11017b24 0x11017b24 0x000000f4 Code RO 3542 i.xc_timer_us_to_ticks xc_drv_timer.o - 0x11017c18 0x11017c18 0x000001f0 Code RO 3736 i.xc_uart_init xc_drv_uart.o - 0x11017e08 0x11017e08 0x000000e8 Code RO 2135 i.xc_unique_identification_read xc_drv_fmc_spi.o - 0x11017ef0 0x11017ef0 0x00000068 Code RO 3945 i.xc_wdt_init xc_drv_wdt.o - 0x11017f58 0x11017f58 0x00000040 Code RO 3946 i.xc_wdt_refresh xc_drv_wdt.o - 0x11017f98 0x11017f98 0x00000044 Code RO 3947 i.xc_wdt_reload xc_drv_wdt.o - 0x11017fdc 0x11017fdc 0x00000034 Code RO 3948 i.xc_wdt_start xc_drv_wdt.o - 0x11018010 0x11018010 0x0000002c Code RO 4817 locale$$code c_p.l(lc_numeric_c.o) - 0x1101803c 0x1101803c 0x0000002c Code RO 4844 locale$$code c_p.l(lc_ctype_c.o) - 0x11018068 0x11018068 0x000000b0 Code RO 4702 x$fpl$fmul fz_ps.l(fmul.o) - 0x11018118 0x11018118 0x00000010 Code RO 4756 x$fpl$printf1 fz_ps.l(printf1.o) - 0x11018128 0x11018128 0x00000010 Code RO 4758 x$fpl$printf2 fz_ps.l(printf2.o) - 0x11018138 0x11018138 0x00000000 Code RO 4764 x$fpl$usenofp fz_ps.l(usenofp.o) - 0x11018138 0x11018138 0x00000008 Data RO 551 .constdata app_task.o - 0x11018140 0x11018140 0x00000038 Data RO 552 .constdata app_task.o - 0x11018178 0x11018178 0x00000002 Data RO 689 .constdata arch_main.o - 0x1101817a 0x1101817a 0x00000002 PAD - 0x1101817c 0x1101817c 0x00000028 Data RO 810 .constdata app_sec.o - 0x110181a4 0x110181a4 0x00000008 Data RO 811 .constdata app_sec.o - 0x110181ac 0x110181ac 0x00000086 Data RO 935 .constdata usr_server.o - 0x11018232 0x11018232 0x00000004 Data RO 1038 .constdata nvds.o - 0x11018236 0x11018236 0x0000001f Data RO 2498 .constdata xc_drv_pwm.o - 0x11018255 0x11018255 0x00000004 Data RO 3543 .constdata xc_drv_timer.o - 0x11018259 0x11018259 0x00000001 PAD - 0x1101825a 0x1101825a 0x00000006 Data RO 3743 .constdata xc_drv_uart.o - 0x11018260 0x11018260 0x00000010 Data RO 4455 .constdata ota_protocol.o - 0x11018270 0x11018270 0x00000028 Data RO 4639 .constdata c_p.l(_printf_hex_int_ll_ptr.o) - 0x11018298 0x11018298 0x00000011 Data RO 4659 .constdata c_p.l(__printf_flags_ss_wp.o) - 0x110182a9 0x110182a9 0x00000040 Data RO 4696 .constdata fz_ps.l(fdiv.o) - 0x110182e9 0x110182e9 0x00000003 PAD - 0x110182ec 0x110182ec 0x00000008 Data RO 4724 .constdata c_p.l(_printf_wctomb.o) - 0x110182f4 0x110182f4 0x00000026 Data RO 4787 .constdata c_p.l(_printf_fp_hex.o) - 0x1101831a 0x1101831a 0x00000002 PAD - 0x1101831c 0x1101831c 0x00000094 Data RO 4810 .constdata c_p.l(bigflt0.o) - 0x110183b0 0x110183b0 0x000000cf Data RO 553 .conststring app_task.o - 0x1101847f 0x1101847f 0x00000001 PAD - 0x11018480 0x11018480 0x00000055 Data RO 936 .conststring usr_server.o - 0x110184d5 0x110184d5 0x00000003 PAD - 0x110184d8 0x110184d8 0x00000062 Data RO 2499 .conststring xc_drv_pwm.o - 0x1101853a 0x1101853a 0x00000002 PAD - 0x1101853c 0x1101853c 0x00000050 Data RO 4966 Region$$Table anon$$obj.o - 0x1101858c 0x1101858c 0x0000001c Data RO 4816 locale$$data c_p.l(lc_numeric_c.o) - 0x110185a8 0x110185a8 0x00000110 Data RO 4843 locale$$data c_p.l(lc_ctype_c.o) + 0x110140e8 0x110140e8 0x00000084 Code RO 4141 i._433_fun rf433.o + 0x1101416c 0x1101416c 0x00000030 Code RO 4919 i.__ARM_common_ll_muluu c_p.l(btod.o) + 0x1101419c 0x1101419c 0x0000001a Code RO 746 i.__ARM_common_switch8 arch_main.o + 0x110141b6 0x110141b6 0x00000002 PAD + 0x110141b8 0x110141b8 0x0000002c Code RO 4938 i.__ARM_fpclassify m_ps.l(fpclassify.o) + 0x110141e4 0x110141e4 0x0000000e Code RO 4756 i._is_digit c_p.l(__printf_wp.o) + 0x110141f2 0x110141f2 0x00000002 Code RO 13 i._sys_exit system_xinc.o + 0x110141f4 0x110141f4 0x0000008c Code RO 1334 i.adc_intr_callback xc_drv_adc.o + 0x11014280 0x11014280 0x00000048 Code RO 536 i.app_create_advertising app_task.o + 0x110142c8 0x110142c8 0x0000003c Code RO 537 i.app_delete_advertising app_task.o + 0x11014304 0x11014304 0x00000028 Code RO 538 i.app_get_dev_name app_task.o + 0x1101432c 0x1101432c 0x00000044 Code RO 539 i.app_init app_task.o + 0x11014370 0x11014370 0x00000040 Code RO 4142 i.app_key_callback_handler rf433.o + 0x110143b0 0x110143b0 0x00000068 Code RO 4292 i.app_key_click_detection key.o + 0x11014418 0x11014418 0x00000030 Code RO 4293 i.app_key_init key.o + 0x11014448 0x11014448 0x00000054 Code RO 4295 i.app_key_scan key.o + 0x1101449c 0x1101449c 0x00000070 Code RO 540 i.app_msg_handler app_task.o + 0x1101450c 0x1101450c 0x0000003c Code RO 4389 i.app_op_flash ota_flash_interface.o + 0x11014548 0x11014548 0x00000018 Code RO 4390 i.app_op_flash_on ota_flash_interface.o + 0x11014560 0x11014560 0x00000004 Code RO 806 i.app_sec_msg_dflt_handler app_sec.o + 0x11014564 0x11014564 0x00000068 Code RO 541 i.app_set_adv_data app_task.o + 0x110145cc 0x110145cc 0x0000003c Code RO 544 i.app_start_advertising app_task.o + 0x11014608 0x11014608 0x00000058 Code RO 678 i.app_uart_init arch_main.o + 0x11014660 0x11014660 0x00000018 Code RO 4103 i.ble_callback uart_1.o + 0x11014678 0x11014678 0x000000b8 Code RO 4391 i.ble_flash_handle ota_flash_interface.o + 0x11014730 0x11014730 0x0000001c Code RO 4392 i.ble_flash_later_page_erase ota_flash_interface.o + 0x1101474c 0x1101474c 0x0000002c Code RO 4394 i.ble_flash_later_write_page ota_flash_interface.o + 0x11014778 0x11014778 0x00000030 Code RO 4104 i.ble_message_process uart_1.o + 0x110147a8 0x110147a8 0x00000048 Code RO 4143 i.ble_mode_scan rf433.o + 0x110147f0 0x110147f0 0x0000006c Code RO 679 i.bluetooth_init arch_main.o + 0x1101485c 0x1101485c 0x00000094 Code RO 680 i.board_init arch_main.o + 0x110148f0 0x110148f0 0x00000058 Code RO 4144 i.chx_gpio_init rf433.o + 0x11014948 0x11014948 0x00000070 Code RO 892 i.clock_init sleep.o + 0x110149b8 0x110149b8 0x000000dc Code RO 932 i.custom_svc_add usr_server.o + 0x11014a94 0x11014a94 0x000000b0 Code RO 933 i.custom_svc_cb_att_read_get usr_server.o + 0x11014b44 0x11014b44 0x000001a8 Code RO 934 i.custom_svc_cb_att_val_set usr_server.o + 0x11014cec 0x11014cec 0x0000004c Code RO 935 i.custom_svc_cb_event_sent usr_server.o + 0x11014d38 0x11014d38 0x00000030 Code RO 3497 i.delay_us xc_drv_systick.o + 0x11014d68 0x11014d68 0x0000000e Code RO 2134 i.extract32_16 xc_drv_fmc_spi.o + 0x11014d76 0x11014d76 0x00000006 Code RO 15 i.ferror system_xinc.o + 0x11014d7c 0x11014d7c 0x00000164 Code RO 681 i.flash_init arch_main.o + 0x11014ee0 0x11014ee0 0x0000000e Code RO 4145 i.flash_run rf433.o + 0x11014eee 0x11014eee 0x00000056 Code RO 2135 i.flash_size_and_type_get xc_drv_fmc_spi.o + 0x11014f44 0x11014f44 0x0000002c Code RO 4249 i.fmc_spi_read fmc_spi_1.o + 0x11014f70 0x11014f70 0x00000200 Code RO 808 i.gapc_bond_ind_handler app_sec.o + 0x11015170 0x11015170 0x0000021c Code RO 809 i.gapc_bond_req_ind_handler app_sec.o + 0x1101538c 0x1101538c 0x0000034c Code RO 546 i.gapc_callback app_task.o + 0x110156d8 0x110156d8 0x0000006c Code RO 810 i.gapc_encrypt_ind_handler app_sec.o + 0x11015744 0x11015744 0x000001c8 Code RO 811 i.gapc_encrypt_req_ind_handler app_sec.o + 0x1101590c 0x1101590c 0x00000088 Code RO 547 i.gapc_get_device_info_req_ind app_task.o + 0x11015994 0x11015994 0x00000144 Code RO 548 i.gapm_callback app_task.o + 0x11015ad8 0x11015ad8 0x000000a4 Code RO 549 i.gapm_cmp_evt app_task.o + 0x11015b7c 0x11015b7c 0x00000008 Code RO 550 i.get_app_env app_task.o + 0x11015b84 0x11015b84 0x0000001c Code RO 4250 i.get_checksum fmc_spi_1.o + 0x11015ba0 0x11015ba0 0x0000002e Code RO 4296 i.get_click_event key.o + 0x11015bce 0x11015bce 0x00000002 PAD + 0x11015bd0 0x11015bd0 0x00000014 Code RO 1025 i.get_fota_env_addr nvds.o + 0x11015be4 0x11015be4 0x00000038 Code RO 4211 i.gpio_intr_callback switch_s.o + 0x11015c1c 0x11015c1c 0x00000014 Code RO 4297 i.gpio_key_check key.o + 0x11015c30 0x11015c30 0x00000014 Code RO 4298 i.key_click_state_reset key.o + 0x11015c44 0x11015c44 0x0000003c Code RO 4356 i.led_gpio_init led.o + 0x11015c80 0x11015c80 0x00000054 Code RO 682 i.main arch_main.o + 0x11015cd4 0x11015cd4 0x00000034 Code RO 1026 i.nvds_browse_tag nvds.o + 0x11015d08 0x11015d08 0x00000038 Code RO 1027 i.nvds_del nvds.o + 0x11015d40 0x11015d40 0x00000080 Code RO 1028 i.nvds_erase nvds.o + 0x11015dc0 0x11015dc0 0x00000044 Code RO 1029 i.nvds_get nvds.o + 0x11015e04 0x11015e04 0x00000044 Code RO 1030 i.nvds_init nvds.o + 0x11015e48 0x11015e48 0x00000020 Code RO 1031 i.nvds_init_memory nvds.o + 0x11015e68 0x11015e68 0x0000002c Code RO 1032 i.nvds_is_magic_number_ok nvds.o + 0x11015e94 0x11015e94 0x00000068 Code RO 1034 i.nvds_purge nvds.o + 0x11015efc 0x11015efc 0x000000d4 Code RO 1035 i.nvds_put nvds.o + 0x11015fd0 0x11015fd0 0x00000028 Code RO 1036 i.nvds_read nvds.o + 0x11015ff8 0x11015ff8 0x00000084 Code RO 1037 i.nvds_space_init nvds.o + 0x1101607c 0x1101607c 0x00000038 Code RO 1038 i.nvds_walk_tag nvds.o + 0x110160b4 0x110160b4 0x00000028 Code RO 1039 i.nvds_write nvds.o + 0x110160dc 0x110160dc 0x0000009c Code RO 4551 i.ota_slave_send_data ota_server.o + 0x11016178 0x11016178 0x00000010 Code RO 4552 i.ota_srv_get_hdl_from_att_idx ota_server.o + 0x11016188 0x11016188 0x0000003c Code RO 4449 i.ota_write_flash ota_protocol.o + 0x110161c4 0x110161c4 0x00000034 Code RO 4357 i.pwm3_toggle led.o + 0x110161f8 0x110161f8 0x00000004 Code RO 2457 i.pwm_capture_ch0_callback xc_drv_pwm.o + 0x110161fc 0x110161fc 0x00000004 Code RO 2458 i.pwm_capture_ch1_callback xc_drv_pwm.o + 0x11016200 0x11016200 0x00000004 Code RO 2459 i.pwm_capture_ch2_callback xc_drv_pwm.o + 0x11016204 0x11016204 0x000000dc Code RO 2460 i.pwm_freq_to_period xc_drv_pwm.o + 0x110162e0 0x110162e0 0x000000c0 Code RO 2461 i.pwm_pin_set xc_drv_pwm.o + 0x110163a0 0x110163a0 0x00000084 Code RO 4251 i.read_user_data fmc_spi_1.o + 0x11016424 0x11016424 0x0000000e Code RO 2136 i.reverse_verif_is_true xc_drv_fmc_spi.o + 0x11016432 0x11016432 0x0000000e Code RO 4606 i.rf433_abs_diff_u16 rf433_decoder.o + 0x11016440 0x11016440 0x00000024 Code RO 4607 i.rf433_decode_reset rf433_decoder.o + 0x11016464 0x11016464 0x00000024 Code RO 4608 i.rf433_decoder_get_frame rf433_decoder.o + 0x11016488 0x11016488 0x00000034 Code RO 4610 i.rf433_decoder_init rf433_decoder.o + 0x110164bc 0x110164bc 0x00000040 Code RO 4611 i.rf433_decoder_process rf433_decoder.o + 0x110164fc 0x110164fc 0x00000074 Code RO 4612 i.rf433_decoder_sample rf433_decoder.o + 0x11016570 0x11016570 0x0000001e Code RO 4146 i.rf433_gpio_init rf433.o + 0x1101658e 0x1101658e 0x00000002 PAD + 0x11016590 0x11016590 0x0000001c Code RO 4613 i.rf433_is_long rf433_decoder.o + 0x110165ac 0x110165ac 0x0000001c Code RO 4614 i.rf433_is_short rf433_decoder.o + 0x110165c8 0x110165c8 0x00000010 Code RO 4615 i.rf433_limit_t rf433_decoder.o + 0x110165d8 0x110165d8 0x0000005c Code RO 4616 i.rf433_output_code rf433_decoder.o + 0x11016634 0x11016634 0x00000248 Code RO 4617 i.rf433_process_clean_pulse rf433_decoder.o + 0x1101687c 0x1101687c 0x000000c0 Code RO 4618 i.rf433_repair_input_pulse rf433_decoder.o + 0x1101693c 0x1101693c 0x00000018 Code RO 4619 i.rf433_repair_reset rf433_decoder.o + 0x11016954 0x11016954 0x0000006c Code RO 4620 i.rf433_update_range_by_t rf433_decoder.o + 0x110169c0 0x110169c0 0x00000028 Code RO 683 i.rom_env_host_init arch_main.o + 0x110169e8 0x110169e8 0x000001b0 Code RO 4148 i.scan_433 rf433.o + 0x11016b98 0x11016b98 0x00000090 Code RO 4105 i.scan_uart uart_1.o + 0x11016c28 0x11016c28 0x00000010 Code RO 4060 i.set_TaskComps_timer timeslice.o + 0x11016c38 0x11016c38 0x0000009c Code RO 684 i.set_single_addr_name arch_main.o + 0x11016cd4 0x11016cd4 0x0000003c Code RO 16 i.set_vector system_xinc.o + 0x11016d10 0x11016d10 0x0000009c Code RO 936 i.slave_send_data usr_server.o + 0x11016dac 0x11016dac 0x00000010 Code RO 937 i.srv_get_hdl_from_att_idx usr_server.o + 0x11016dbc 0x11016dbc 0x00000070 Code RO 4212 i.switch_init switch_s.o + 0x11016e2c 0x11016e2c 0x00000002 Code RO 3498 i.systick_callback xc_drv_systick.o + 0x11016e2e 0x11016e2e 0x00000002 PAD + 0x11016e30 0x11016e30 0x00000088 Code RO 4018 i.timer0_2_init timer.o + 0x11016eb8 0x11016eb8 0x00000002 Code RO 3540 i.timer3_callback xc_drv_timer.o + 0x11016eba 0x11016eba 0x00000002 PAD + 0x11016ebc 0x11016ebc 0x00000270 Code RO 4213 i.trigger_check_process switch_s.o + 0x1101712c 0x1101712c 0x000000b0 Code RO 3735 i.uart_user_handler xc_drv_uart.o + 0x110171dc 0x110171dc 0x00000016 Code RO 4019 i.updateTimer timer.o + 0x110171f2 0x110171f2 0x0000001a Code RO 686 i.wdt_init arch_main.o + 0x1101720c 0x1101720c 0x00000088 Code RO 4252 i.wright_user_data fmc_spi_1.o + 0x11017294 0x11017294 0x0000007c Code RO 1340 i.xc_adc_data_average xc_drv_adc.o + 0x11017310 0x11017310 0x00000028 Code RO 1135 i.xc_ble_activity_delete xc_gap_api.o + 0x11017338 0x11017338 0x00000030 Code RO 1596 i.xc_bor_init xc_drv_bor.o + 0x11017368 0x11017368 0x00000040 Code RO 1839 i.xc_clock_bbpll_common_cfg xc_drv_clock.o + 0x110173a8 0x110173a8 0x000000ec Code RO 1840 i.xc_clock_bbpll_freq_cfg xc_drv_clock.o + 0x11017494 0x11017494 0x0000000c Code RO 1841 i.xc_clock_hfclk_in_get xc_drv_clock.o + 0x110174a0 0x110174a0 0x000000dc Code RO 1842 i.xc_clock_hfclk_set xc_drv_clock.o + 0x1101757c 0x1101757c 0x00000016 Code RO 1844 i.xc_clock_init_cfg xc_drv_clock.o + 0x11017592 0x11017592 0x00000002 PAD + 0x11017594 0x11017594 0x0000000c Code RO 1845 i.xc_clock_lfclk_in_get xc_drv_clock.o + 0x110175a0 0x110175a0 0x0000006c Code RO 1846 i.xc_clock_lfclk_set xc_drv_clock.o + 0x1101760c 0x1101760c 0x00000028 Code RO 4453 i.xc_fota_dev_ack_cmd ota_protocol.o + 0x11017634 0x11017634 0x0000001c Code RO 2270 i.xc_gpio_direction_config xc_drv_gpio.o + 0x11017650 0x11017650 0x00000028 Code RO 2271 i.xc_gpio_fun_sel xc_drv_gpio.o + 0x11017678 0x11017678 0x0000002e Code RO 2272 i.xc_gpio_init xc_drv_gpio.o + 0x110176a6 0x110176a6 0x00000002 PAD + 0x110176a8 0x110176a8 0x00000034 Code RO 2273 i.xc_gpio_it_config xc_drv_gpio.o + 0x110176dc 0x110176dc 0x0000004c Code RO 2274 i.xc_gpio_mux_ctl xc_drv_gpio.o + 0x11017728 0x11017728 0x000000e8 Code RO 2275 i.xc_gpio_pull_config xc_drv_gpio.o + 0x11017810 0x11017810 0x00000024 Code RO 2276 i.xc_gpio_read_pin xc_drv_gpio.o + 0x11017834 0x11017834 0x0000002c Code RO 2277 i.xc_gpio_toggle_pin xc_drv_gpio.o + 0x11017860 0x11017860 0x0000001c Code RO 2278 i.xc_gpio_write_pin xc_drv_gpio.o + 0x1101787c 0x1101787c 0x00000040 Code RO 1861 i.xc_hfclk_set xc_drv_clock.o + 0x110178bc 0x110178bc 0x00000064 Code RO 4457 i.xc_ota_schedule ota_protocol.o + 0x11017920 0x11017920 0x00000070 Code RO 2484 i.xc_pwm_dutycycle_set xc_drv_pwm.o + 0x11017990 0x11017990 0x000000e0 Code RO 2485 i.xc_pwm_init xc_drv_pwm.o + 0x11017a70 0x11017a70 0x0000001c Code RO 2490 i.xc_pwm_start_all xc_drv_pwm.o + 0x11017a8c 0x11017a8c 0x0000005c Code RO 2908 i.xc_pwr_vol_set xc_drv_pwr.o + 0x11017ae8 0x11017ae8 0x000000f8 Code RO 1684 i.xc_rc32k_soft_calib_set xc_drv_calib.o + 0x11017be0 0x11017be0 0x0000021c Code RO 1862 i.xc_system_param_check xc_drv_clock.o + 0x11017dfc 0x11017dfc 0x0000000c Code RO 1864 i.xc_systick_unit_get xc_drv_clock.o + 0x11017e08 0x11017e08 0x00000120 Code RO 3541 i.xc_timer_init xc_drv_timer.o + 0x11017f28 0x11017f28 0x00000028 Code RO 3542 i.xc_timer_set_value xc_drv_timer.o + 0x11017f50 0x11017f50 0x0000003c Code RO 3543 i.xc_timer_start xc_drv_timer.o + 0x11017f8c 0x11017f8c 0x000000f4 Code RO 3545 i.xc_timer_us_to_ticks xc_drv_timer.o + 0x11018080 0x11018080 0x000001f0 Code RO 3739 i.xc_uart_init xc_drv_uart.o + 0x11018270 0x11018270 0x000000e8 Code RO 2138 i.xc_unique_identification_read xc_drv_fmc_spi.o + 0x11018358 0x11018358 0x00000068 Code RO 3948 i.xc_wdt_init xc_drv_wdt.o + 0x110183c0 0x110183c0 0x00000040 Code RO 3949 i.xc_wdt_refresh xc_drv_wdt.o + 0x11018400 0x11018400 0x00000044 Code RO 3950 i.xc_wdt_reload xc_drv_wdt.o + 0x11018444 0x11018444 0x00000034 Code RO 3951 i.xc_wdt_start xc_drv_wdt.o + 0x11018478 0x11018478 0x0000002c Code RO 4922 locale$$code c_p.l(lc_numeric_c.o) + 0x110184a4 0x110184a4 0x0000002c Code RO 4949 locale$$code c_p.l(lc_ctype_c.o) + 0x110184d0 0x110184d0 0x000000b0 Code RO 4807 x$fpl$fmul fz_ps.l(fmul.o) + 0x11018580 0x11018580 0x00000010 Code RO 4861 x$fpl$printf1 fz_ps.l(printf1.o) + 0x11018590 0x11018590 0x00000010 Code RO 4863 x$fpl$printf2 fz_ps.l(printf2.o) + 0x110185a0 0x110185a0 0x00000000 Code RO 4869 x$fpl$usenofp fz_ps.l(usenofp.o) + 0x110185a0 0x110185a0 0x00000008 Data RO 551 .constdata app_task.o + 0x110185a8 0x110185a8 0x00000038 Data RO 552 .constdata app_task.o + 0x110185e0 0x110185e0 0x00000002 Data RO 689 .constdata arch_main.o + 0x110185e2 0x110185e2 0x00000002 PAD + 0x110185e4 0x110185e4 0x00000028 Data RO 813 .constdata app_sec.o + 0x1101860c 0x1101860c 0x00000008 Data RO 814 .constdata app_sec.o + 0x11018614 0x11018614 0x00000086 Data RO 938 .constdata usr_server.o + 0x1101869a 0x1101869a 0x00000004 Data RO 1041 .constdata nvds.o + 0x1101869e 0x1101869e 0x0000001f Data RO 2501 .constdata xc_drv_pwm.o + 0x110186bd 0x110186bd 0x00000004 Data RO 3546 .constdata xc_drv_timer.o + 0x110186c1 0x110186c1 0x00000001 PAD + 0x110186c2 0x110186c2 0x00000006 Data RO 3746 .constdata xc_drv_uart.o + 0x110186c8 0x110186c8 0x00000010 Data RO 4460 .constdata ota_protocol.o + 0x110186d8 0x110186d8 0x00000028 Data RO 4744 .constdata c_p.l(_printf_hex_int_ll_ptr.o) + 0x11018700 0x11018700 0x00000011 Data RO 4764 .constdata c_p.l(__printf_flags_ss_wp.o) + 0x11018711 0x11018711 0x00000040 Data RO 4801 .constdata fz_ps.l(fdiv.o) + 0x11018751 0x11018751 0x00000003 PAD + 0x11018754 0x11018754 0x00000008 Data RO 4829 .constdata c_p.l(_printf_wctomb.o) + 0x1101875c 0x1101875c 0x00000026 Data RO 4892 .constdata c_p.l(_printf_fp_hex.o) + 0x11018782 0x11018782 0x00000002 PAD + 0x11018784 0x11018784 0x00000094 Data RO 4915 .constdata c_p.l(bigflt0.o) + 0x11018818 0x11018818 0x000000cf Data RO 553 .conststring app_task.o + 0x110188e7 0x110188e7 0x00000001 PAD + 0x110188e8 0x110188e8 0x00000055 Data RO 939 .conststring usr_server.o + 0x1101893d 0x1101893d 0x00000003 PAD + 0x11018940 0x11018940 0x00000062 Data RO 2502 .conststring xc_drv_pwm.o + 0x110189a2 0x110189a2 0x00000002 PAD + 0x110189a4 0x110189a4 0x000000b5 Data RO 4622 .conststring rf433_decoder.o + 0x11018a59 0x11018a59 0x00000003 PAD + 0x11018a5c 0x11018a5c 0x00000050 Data RO 5071 Region$$Table anon$$obj.o + 0x11018aac 0x11018aac 0x0000001c Data RO 4921 locale$$data c_p.l(lc_numeric_c.o) + 0x11018ac8 0x11018ac8 0x00000110 Data RO 4948 locale$$data c_p.l(lc_ctype_c.o) - Execution Region RW2 (Exec base: 0x53006c00, Load base: 0x11019190, Size: 0x00000a2c, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000018]) + Execution Region RW2 (Exec base: 0x53006c00, Load base: 0x110196c8, Size: 0x00000a2c, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000018]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x53006c00 COMPRESSED 0x00000200 Data RW 1040 ram_em nvds.o - 0x53006e00 COMPRESSED 0x0000082b Data RW 4458 ram_em ota_protocol.o + 0x53006c00 COMPRESSED 0x00000200 Data RW 1043 ram_em nvds.o + 0x53006e00 COMPRESSED 0x0000082b Data RW 4463 ram_em ota_protocol.o ============================================================================== @@ -3368,7 +3482,7 @@ Image component sizes 0 0 0 0 0 125543 app_batt.o 1620 798 48 2 0 6408 app_sec.o 1992 822 271 53 0 15534 app_task.o - 1088 376 2 0 28 17179 arch_main.o + 1092 376 2 0 28 17771 arch_main.o 340 62 0 0 512 3353 fmc_spi_1.o 522 30 0 20 0 7991 key.o 112 16 0 2 0 1406 led.o @@ -3376,13 +3490,14 @@ Image component sizes 340 86 0 1 272 5439 ota_flash_interface.o 200 50 16 2108 276 3195 ota_protocol.o 172 80 0 4 0 2513 ota_server.o - 1100 46 0 56 0 8742 rf433.o + 832 46 0 60 12 8288 rf433.o + 1390 110 181 0 1102 12870 rf433_decoder.o 112 18 0 0 0 8773 sleep.o 72 32 192 0 1776 812 startup_xinc.o 792 28 0 22 0 4627 switch_s.o 200 38 0 4 0 43357 system_xinc.o - 326 30 0 24 0 3342 timer.o - 100 16 0 128 0 5834 timeslice.o + 334 30 0 24 0 3366 timer.o + 100 16 0 144 0 5858 timeslice.o 216 20 0 12 0 3517 uart_1.o 1068 544 219 4 0 26145 usr_server.o 284 42 0 2 64 11657 xc_drv_adc.o @@ -3401,9 +3516,9 @@ Image component sizes 40 4 0 0 0 1489 xc_gap_api.o ---------------------------------------------------------------------- - 19234 4368 980 3008 2980 502694 Object Totals - 432 144 80 0 0 0 (incl. Generated) - 14 0 9 14 0 0 (incl. Padding) + 20382 4482 1164 3024 4096 515750 Object Totals + 444 148 80 0 0 0 (incl. Generated) + 16 0 12 10 2 0 (incl. Padding) ---------------------------------------------------------------------- @@ -3520,15 +3635,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 27376 4600 1600 3008 3076 498058 Grand Totals - 27376 4600 1600 120 3076 498058 ELF Image Totals (compressed) - 27376 4600 1600 120 0 0 ROM Totals + 28524 4714 1784 3024 4192 510542 Grand Totals + 28524 4714 1784 124 4192 510542 ELF Image Totals (compressed) + 28524 4714 1784 124 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 28976 ( 28.30kB) - Total RW Size (RW Data + ZI Data) 6084 ( 5.94kB) - Total ROM Size (Code + RO Data + RW Data) 29096 ( 28.41kB) + Total RO Size (Code + RO Data) 30308 ( 29.60kB) + Total RW Size (RW Data + ZI Data) 7216 ( 7.05kB) + Total ROM Size (Code + RO Data + RW Data) 30432 ( 29.72kB) ============================================================================== diff --git a/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.axf b/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.axf index 70ed00fc20fe1a9703a2de630b792456acfdd1f2..9322ee8054b203bd0c3e6012f344be6379a1ef1a 100644 GIT binary patch delta 81282 zcmb5X2|!fU9zTB0xp#&cHV05dMVJ9paK$Y_O#yWTcg;!-WgP@V7&b#i2Ml#IGwoW} zdRACgRz7p>T1sJAX_`S=X|`am(#n)JhkbsZbB9rU_5T0g&-c!`-|c+Q_C4RT4()ku zMB}F;w*+fbvwTQ-*4D5obj;SJ-RVzT*Ur@D^dW|VxUFvoZf%Iursfc`FGsqI&JEKx z1T-6}Em5pa+u#dmu?pz{rKym2v$TgE7^!U-(-aq+no5ksq-_Xos!t8AHXJro(}t&; z{LD_rPfnpBsEsxZZW9hU9ltw;W3=IvB(V}!6?4#2xR26JQkvL{ZaTP1e1S4+niQr@ zre`FZb|&2=eWJa{eoj63s>ck*?pbuOSzk*7ZZwieR!fXE6Rg!nv$dL#r=+jFjpXn}ei{H)7LMn66{+h1Yqfw_`rx9gslXAnXXt&>w@4zj>Slo@AB>D_1bxY>(L}n1R@)+P z!=Ff#LdFcW^t(;D(FvYC;5PlI{y=Xg6Cq%>on zyY!I_=c20(gVll>g@(*Vo;?MWqCyPN0zi;IEL62SK5r5mb~H)HjOn(}M2&gy-BBwh zChuO(A|q;r$S$>FWN2Nzhes_j@r19m@OX90)xvshz-Po1T3_#>t>v_JDyKl@Xg||{ zvZ{s0*)6*Zt<_uuRW;aExrM6S@1IcRS~LZWcG{+W^`#^-sBWMs8>aiDbR(?K&~W5ZZ}r~CE3`$G^O#m&s*BXuX;Ha7 zjYhLEI<8D;=-x;mXQAr`x?&dN({l(-no>Bk3bd-LJNgEwo`!Yv1x0%U>#3 zTu!z(VyyL%;v+(5e%vCOX@h^O(cFlv8>_vMD)=x)=9U~Y-D0<%v?dnl3hV{`MqPQf zS!ggd2}v~3o*Im*6-XcLXm@nzZO zcq=i*m$x|NCf=t8SD#90eM4sp4UvruIUctLm}t3JAT$^og>Bhpahtg2M1^3gsL&*` zE!pOYYuGCU7S*jytETqrS1uY3i_?tOH0$$LqxnBpUChK(L-lT{u5UlTQ|&kYFqD7b zakER|8>!h&$IFtwU$0)zwUEK2F8z%@R%Z0AheX9$Rl@1mE{*TkP3LYad3=I4NGk3Z z4R`orzX6Er`t{SZhSnxaYFTxaL?g#PP=#T*2Z0;NIQW3~nyE34(FUQ#KZ!)>vWX{Q zx>Q3FHR@80=4QvvX5YkS$C`E@#P_y&CwV8HOf#aho0_@Bw>IaPH`vK`UC<3jw)C&a z9*YKHcHq9HsL|=DYbOm$TWCW?J8k%>i8R~|+9z$S;kjny*RFfP^Ld}0U8>p~b)dGlXOXhW^j8R8Z&yt@XKs^u6xe~FKs((*wU71ayn9^x~S>h z=QN5$SNlX*;Lcts$e=cpxi`L1(#Zay{m(f$?_XiMoxY&?gVzIJ-?sV#;y!NE4NgK% z!gylVNvr!mIquC?&F;7!Yzx^&!iSk-&2*c`_GZU+CmEuvT?8dQNc?hZteMyNg;uY9 z4N&3V&75w5>%D4+iXl?Pfbjz|T1j|+v-p&N#6?aGN{|;8yK_7e-Pamrj>mUS>rnG# zd}m0%3>ZTbrG5j4Lq8;c zx263`AAG}Fw5Fbk?T%|s(no8GG`Bl0Ia8Ah7cLDhmlh80#XMT16@yO>cosuG=CEic zMjtcT((c&hYx4wmMmFejpyoYn2rJPMd^^Yg*o zO`MYNBvX*Z7!bwg(THg?I;J`{k*>{IL}gLy$>tE1leyM4cX z9>gw5btC%4|J58)?_-{7_q3bLbHIPc`HFouxJRA-pl{?(tbf zu#NYb%oboTOR*zEwfo>Tg6z_wk(=o$>DQ6t*)F>@_^vRPY?tQT^`rjfc2lW0gkO;2 zM=cJ|Zx1%+m~~cv^lg-R6#8~Erdwi+w2n-qr6VD?NIE^Lhi!H{>01TcFoQC+eOd6$ z1G>RC&rJk25ghvZkscLge87Y2%ib>W{-K5nqU8I_r zlk{b2Lu{WRn;RReBT@WQn0Plgi{{8uqcz)}T5dFFS#?;*e9&57e&tGFhr}xB>)15Y zU+od~iCA2j>U5>q#qEwa+Jfu7&5x8$Db<$-q8MGJl+oQob#1zOgV`HJ9M#OsCVMbA z?cCc{XZm1gB0Vws73>Pek1-87+QOG)iz8cVb0VAS+8y)TZeAG})-5U9-0FCyCEMKO z_|fT~NKCZk=PT`wlhR{j?)EvfmiiSNun56MV2gBdjO=^WwTg}KH`0c`+N9NEdou4K z($izZY)@d46P$vHgol}RSXJHI?wauJ0fgwVMtY;U-SJafyJJ80HlH;5ByvxU1xv&9 z7O%wPInFSDaq9#j>~W3XgyU%*NyI~!N-=-6JN{^Fcf8QV8lGusyi$+yh`*A0a+%aS z4r|S#am_v-v!)-}LZmTw&!0UFp0DvRJfG;}Ye+hk?Hgpmbkpis+G5laU$NF?_6L^L zg4JGxPrZ?q_uz|(PduDhZnQg|Zp11L%Z$w6T?h6g+&I@*Jx%)I?jkx(nm=y1UtJ3I zvpzYGR@zYg3X9h{0@xfl%PBM@e!+`9k$MqYeZ)V%$ zdex`4U*Uykz??D87#2h8UG#C7M^_$oI*C75xifAt3apRs?bX_TThGw=Q4w=n`E>qr zn06;0TlOZC*%#l+ruqXKbuR9Ys>rqbg&=8r|8CNo@!_<;^mTmq`@U$d%63N6=&IDK z%j1Ht7SyX)eJWo9d^L<1j7UfF$UTO`p3^+17-6y=wcHH25xjtL1HV@-m;zLz_*V-x z-bB^A4UwiKL_R>V7p7PPA8C3exXt0w?qR0&tNM*+sigwe&#(qxi~%(n@Wr^E zq+Zvv{D5_`;jjlEEY|q)igKDpOX5o^N~no06EQ2S#Gb!(l)4U#^sLn;d6tp>+FI}4 z!DoVNuw5*se3yd|97AkaEP5q@Se{sJFSi%yD(r>cLp{yLVJFiJRzva05*p^YEODLF z@u8D6On~ABD2_SoGYu1=-DI~X1k|S5J(J2wTo5bGF?(9$?1|;6_PF4h1F6{SkcLz0 zv}GK0pQ$Q;!3QMc=%)_lE^bb51 zNk3)iAn(Z5i{AK_9qyV$`*@o_$}x^ulMqrDR_g3eKb;dCX7$(l`*y1h3QJ56D`d>y zR}gLKg}r=VDE#2SkA)jnnTq-plRkZ{bSpKJC&k1ThZYOylWBddKU`7!b0hWp?eMyN z+2*)M2zvJ6X-?Cip;_pJK_PTbzy^PENdR*VcYSX7|(u#R-~vYPx=9 z3fT~(3n~|gH))vF)X$0`m1ZnSEvYI=Ew3v7@QSIFMxCf5gWs*yn5{j^57dP8iG1Ti zG`1%ebsCEVGzXA?vkE?udew7Y5-1_HHaD}WHrwoBO||c|)2*mWDT(r{{lT6?a)LG- za5^g6wHShQyVGH7j}9t7z#=^^h(^!)^7_m6DP&{N69=wc(L~Y9j@HIZKr5``c5W;QiX@*-ypp;q)08+N6|EWFk{L-aW}+}P2dYXI zL<;B7X3MUWc+`)Lr04oA6Y3do96yxU>g}ZAWvFIbm?*I02mF0|`3jQwxMr(qRsAX) z9c&F>{hfX1DoyHKyK3d?D6+-$=>u#Gg7HVW`;+)j3Fpnea` zF^?EN+?WtQaiOs&Bfrpccb`mSMt-K{?!(Ra=B@g(H8!<%f}m^O2l$xX?gptjfLs*Ar3CMDWQb?2 zjfM{?%`FA)F2LtO%-2AfEWCpWm-=n-C5CPh)UWX{iO5QHI%3Sra`QqP;Ya`^!3(d7?XTb938 z@ZfS`0IL-Tgw@WkCy@`;zE;Wx6xZ#w<`e{4m#m;Bu|K((S9raEJh`NFKw0nNbQ&P72@u?fxp+r|l!+tIp zHf3Pp;9&s^y(R?Q>sOztYQ1`n4ECxUFm1_-40FVY7v>h3Gkd=3AcbLRvvDa={U zqK4GjNaUc}NO&`k+Q^krrS=4&E_-DTzA?2^m?PTEU_<*mYzvW65Aa^oYK#U5#f!F z(d~To^oqKAYH{SX@YPd`V@Zp9^>k7insg6N7S<-^)2j#nO3G&-ao8!B7 zEIA2ZJgZfZ{+c$FEoqV>rzf*_*GcQ9htNaPi_@P9wYM5e4Ap0%|Hqm{S~w%0{i{tn zJ0rO3zBV$DURrD-_1Rd4OtiK-{@o_E&-hYob$rk+eKj+Pt#6fX&MXYxg(k((qj_*5 z*`l$M?cV12)PYGxEcfB5y z!O=N(f$h@fxk1tQwc^6Ubi4qgzt9=hHq0Z*qpI2QTpJ1RX{M$iOfTzkbir4K{A}*z zI_dMdtJ$;br2FnIXG>b83-`t(eA`m+K+SkViX)Pp-IKO+e-Izogj~#-}++-KA*;bpXCeyKOg+wxA{TQsn~&LL`(Vi_n_yc4fo$4H31c{1f=VX#Sb=zzp_Gll1%p$^LmwhAAYx*|DUlzd0Od1v8o?LvoP+{HDw>PQJH; z9NQ#~PVOtVIBMGuW+vCt$ai@s5E^GaylJ0kzI{I1;;3(HaeUvFWA@tJ>KM{4B`@mR zzs2Fx?mDdHCwT1`SOjO2+NU&tcLUbc>Ynld{5EyYw+#bhLsk+hPH!UQxfRJ5bVDAWsISkC6-Qv^Cx|^goGgAG&ah! zR#(b>oCdrWhwg8(fspgnN>8W0Z4zE}I)y`ANu^mhmO6Rq9w+`0^2|i)SB3rO32AxS zn7(O~sNZZ~+ycy|e)sV2OzJlu-%0ml>c{uuebn#!wbGYq{k#4;jru(?g}0&W-=wM3 zPmX^<>>+>0bp8h?qz@8o9jgWNocQUJZmk!FXBy|;-Dg;)@u8eNzIw>b&v=l3({qZ8 zRC=f7gfT5MvoIxFU0e*C=fZN`*n^hk9UxzIbmTR2>cU&=5gQgH|CbtWEoQhXLM}Xl ziiH!yCSan8`ei;z{Wf9r?xKXux|{l)1Wt0vJp;k#xGGPHp#cqUggoa*4-s*VqCfbS zY z**a@`Rl>LnK{!xzI(}^pGEK%o?@v31I%A0o?}nGCU&od_mL%znMq<77P=oE}tB^fQqMo z%85ChG|4!%I@7SgQ#_qC(Xil^SviIU)%KnP?~W1|_yFNbcX5l1A-@;*-+9 zS9Zq@`ui*U(QVSND|=~nU|eTO1r-63u}r7&o=^QMrQd+XmFegODXA=!mPt8f;Z!F* zS{BNFFOc?@1+ti2>4UNmO-&B<3zFj3b;ShbXO`%yfV&5xG`4U}EzZFrB-6?OELq}h-8FGI z3!8=(>!nFt#9L!OINPMHwtlQJMS9EDGpZJyWav~D5n|D5SytasmKv$e#+%tx-ix&^ zlE#(y)fkF+UeL(46-ui?_%ojRsvx-3`1R)j|c~F-G$gtg2Ybs|aCLCDP`KKuuW*^$XbiE>k8YQ1K-RUB!&zexpwZ1rUQClbzPaHO?ZFgN-wWhl!FcO!Ll4(PC zI#=2c`PI^?HNEIr>4!Dp^e##Na6kH$H1y$cxqdjh_L|P0nq0*JnsSKio4c8{??6bwHs-*CpK?aUT@uM zDQ{f}+hmhA;}dC<_O9#6X4#~V)-4D;0*}cZmfH-<%cV)k5eT-sJEQZYarT~?t^AF2olWIouNtagz&{C=QhF+Tb8L$Cq>-w(2 z7FS=norF8H1~|95u+o6uycMkQuDqn~-se)BzFVr^5DE+a4IcO^{9=`~YE>`IF*u?u zY3YXU+GA*;bS5pb1xi&LM9uf`3M144S7q>?=4Rtv$VWGaCSp0&mqWBt+P|^8<^(D= zLRH-es8Ai*ts8aSmSFzl=H+hoeJEU}I@E$O=euf|C{2H)S8Nd6d|ybqE9dU>Xvn!o z1RqFMDA(Xl8YfCS9|@%=q~mDhY4F{V+^qeg0r85v^DUL=rcmlFnKpITB*K5IIcvQ6 zK#>X_?XI!IBnR`3>VFIaV4_+M*Wlsh;2yga61=mF2)rC$rNSro^x<~E(Ya_*wUGwJ zVaRf!|2E#Skl@np6n4l(!wv#$t$?!C6f18{6z;ygfIgqA@>bm9@v+VG9Fax+dcvsr zRHa!ft`pW{>WB|0p5+;^GT!U9(AEx+6Jqaep=?*BG;Z54xM@USA@@^tMD{AY( zInhITaynfdNOR@14Ax7Vl4-$CK;EjblQwHU%!yFa|5N52!uJQn@Npp_ES!X3+mMoL z$s>lnDnSf!Z5iCS#)ap)acu~;4Q|9EL_NcFqdGEcP8Nt(@biG!b3HNzJS)4~dkJV;R!Umv^GGRA;muffRnsUcL#p_jC zt=C4tZMSw+&K~5PBP%GGI6!&wF#VQk`Tk*SZ)N2XI*n@MkY-nu^6{JWUg~k4*O*fI zvZoNBj6F)zsmCFZrctWAc#OVDJ!-mOVVFpioi7V}sS;2_(NhzbQBvGb8F`#;7qmgc zupo+1&Yhqyi`t-4O0pxB@>6txR$Ggq5L~V7|AfvFwPh&Jtp1ArJUvOZtwSlv4OhPS zjE-j7Gvm=+Un|`&(Eb{24SLAfLz(ZSD>qB)J*=dEiJ76g(%hFPEbBcx zuL-oPdO)3W&)oRAlTwlf|L+7bB-gUc za?4yu$U`}q#o5GAty&lBNH(h^w@6L)4i(1={eQBFn{>ij(LaY_Q$Rwpac=XpJr;Hy<@o$(2CTins;e%2Wtnr|X=n5N_9n;|WY9wBj`Pcr~cwH6sr> zxyEZ(m7os8l%kTQZgRJfEOqqVF+KxBtk&EVeqP{i3KrfSO_i5v%YP_ksp=M7T7z7b z>+C6lLyGut?v%CBl?O2#sO7FCq9e;fOIqe~;y)7279En7SDcelXt7$-ic^YnG9Gl- zbJ!iOBE^P=U&q80q5mG8Z-_OTpm%uZTZg(JF~mB|1?fUMmB710%N&a}EvJz8UaKH3 z7X19j(J=pbF$`M5)OHF}%NX;hUR>(u8Z5avOX2v6aSp`0$A-5X{98=YQc&EYlH882 zq$Ku~UOYm5+(RtAWHA@8ASI3PpCqETMfrKem0YzC7nlpXATe!vaSiK8%Z)n4ns3GP zwviNRlSC^Y1!|5qSC*VXVvc%>o85_Wic*S}=Vf%HQOo#WncOb0nmX3*CBE!V&AYqA z3j497q%ZGK)KOEe6{heINiI&wv)DR}7)Vx5Zn34%)hs0TJ1_BwTU&>wVy+9b25*3W zDo}*l;#@#g{XaCvJnJo~dBIdle_=CF? zyhZrf>f9tQAM;-=5wpQZ{JB#qKGy#K6Mf+$-snhVODWDTPRoVs%+1N{obvy(2a?r9 z?vhveihsGwpw7qW3Ep(73H)R0`A-+Q1S(_eFhrMCeCI3f6gt`~ExjluGbbx6rDW(` z9Twct7ik@qnErP|j=9uDd`U344B6!{)S{@}^-o=Cc?in5Kj1v$Osfjdd8_Sz! zuwS&5SlecL%C=VpvpoI@AyM|4#d`UtUn0cMf7mU5V!xoo%wi*{c00ryytw!@`JLHp zzVV%Il(@Z4b})w*_2%&n6@IR_95aVSv3I&D8FN??)t*H9Twk7ky5hWt6;SO}P-?p< z%kE`AQtdTN_sL!5E^C=t-hDs&ls#=!%I2|QRQsnM%bgx-IhE%5>=gA*#_o02XN2@` zVxqidA?v2pJjg0V784;aNoD={*S16GA-|r=f;sYWD(lC;H&aHn(yVJ1sT%A?+61mTq6vQCi*=Wm1G-U7$|CU~#* zg*Q&g$mO#OY^PH6PS9pyy3S51EXgBOUSMHYwcgm6%nMf%v)B-<8nIApjdWGyy=)fC zF87t&vsr_dKaRUFz*X$gOV~86MK3|!pu|SOwVQ}|FO#%B+YsW%$%V1Y&H)pa@o?(XHqcAUR z6m-h)A~un-m@s8|F)O6Z_=)ms37bRNj!%^MhZugJ6ERHLS;|?vhbrAxu=^-WG%8D1 za$sAn@_rdxKv__&Vp`3C6Gml~jb%}0IIsMG8#&72Ov>yvT+cC+vj1T=4+~V3rfL{3 zjg8yzmbGjkWs$MU+v|A3-Q$$LcD5QojPlY3PKmr*@qI+4j8!&oVsC*mR++L{6~0?J z@EBJfIZpB4%F>Z4R$2DAnrgK2jRcCd-%x9 z_c3o}_A3~VtYMO}_EoO*s#&@G8dsWYRu=x7E3KTM)a~U;4GBupKDLl*51|<|C#$1g zZraagvhsn-lmjf6YI8%e14xqVJ%wB)@(^TM@GNEhVcr`%W+{KX!JB8tY~_I?90;DH zy!R$cM%C_BOh?%osyEEVvSW=vuglSIvrxI}TMuvL#`|m*YIdIz^)^IU!~M#?-{C;x zeag_|0KBfwL!xqlHhcNYTfg?`C%2tu0~Eu1tRH0;7AUbNxODw|rTTpi)IOlZe+WQd zv(S~-S$Wn+EL2H3!Ao*7SxNeciyc{{e0-W!qL8zddp>5FDE1uX&9l5cHqBKA)uKJT zw%vm!{e#gzy}QV!OCAx*-Y?)2S>?S-?{i!*=pJS3dERiv_bd9(IZ$?=Qt<@`a_1>c z7r0FF0%hr!oRT?T`QZ`==02b-{F<{SE>!Bi;go48R6PgAE>ezPhT&+9CY)rXxJFg} zf7lqG#e*@_1^DS%0F>AC!Vsz*2%&2!yf0=bqkmw_kw>0#_(!#qmnwc&)yz&S8-C)z zg^v{a3rnS5^A4j@UorZKzKd*_BXpC81qy+Re2w*okfOZzE4SC^0;TT_uINyKvZjG| z^R{Km<=?n<#uO^E|KPuDFc;d_s6a`t8xs9bb# z`!kj(K23Z$RhBACo4F!gsq%FT2gq_|dK8tyD;*+WIg; z8kf6V-`#>B2fc~yFH(jXe#I`-&wmMKK08Q6p0%2#%gukVQ*2kU(nBM_45N#b3ax;G z?kQ6K@(?ioca$h4dci`q4bXdLg@PtLNtyRr!cruE92E}Y_RSAI08 zC0eJ<@fVV*b{BTpxsSPes5wB0Wh2JOBfARGY|vx-l=5%N`7JVFn3fz z%82p8OjP%IWo?|0M?EJV1@}6muNvfvVz9d;2Tt2-n@e?mLH7}PO^E2l-KU#Wt^udq4Q8pcHs@>vH3zS+|`>(+X8M` zbKg{Qk^$&196<~G%;-C^HCgDP{Iw82-($J^l(-ab7gzTwRjFJ<=6=PH&MEc#6>A39 zkbFS-Dw7wq;dNzV76%&lDti`l;o{eo;2a?b1$aYQzeFv-A;s~a@BsQ{uQGS3kO4iX zlsEHumt~$(e5}07YELUU1-y-uKT?ht0?-=z;gIUgEx$BMe!3WMT<6B&{^f>6@nR*I_1Vn-sXl+ zl?PX;K%H`BHDt8YuxQ+Lo@Z!d&rXozR$z4ZuMkeLpf8obDtOs;TvVn%%x%PQNqMGH zz#^aqCtJF&T(ei=I$@%3IL>Or)RkbE;fIOJ)9Zx!FkUEF&z*tsqEfPfmuJ%@rEa5e zKhabMAXPd=_U$V=CYr?tCKjbq=roF-r9%KJ78g)IAZIpQ(l2YeN; zEkYV&Bd#lXkMn*%|Euz@Bn+k6KWE^Q^|~t|-(y4##`Z$63;xR~)et|!-*+1rQr`+< zyr+De>UzivXR&@t!xKUm>b(o+z`=iYUi2Gf;bF1U!gK6pc~&Y5;tS7H{}OI*1AKP~ z>Na5D4nf@p+`B`F>{y-7z*oU`0PB&lIQdMDQsSQ#hKO1n*0CpV-m382vH$skZ;PUE z++xQB5v8^!Z&N=*5pPoe9emoj02#x172gA#H?yB%_BMIi3&J(+M5sL0sEpes1W|1! zkeW7^UA*$5@B|CoE62Sgbob<&DiXUz3~W%+UJ_#AShFax_EoB07A`W6N}QT*)2Rog zo7r+jHoPWGv|&0%-|;=7pJ6zM{XfFN{`93BIuGb6JBPkOf!GEnXYA-w z`O&?C-QyaJZ{I-rqz8?ZC%!K9U@yHTr@RiU`Q|P8-0MP)EM69Z-DmeW%RL#(uP*rQ zjvW@5w2S4wONpDrjWYjH5TZEn1b{#Q>CXV5v%KZk-x7jl=a+(}v%VqxYUCw^28d#T zTy>lhH)$+a^A-pN05U!Ra1W7>e+DQ1H!b|aM9^ndG?0hUbviy}(m$9R)&g z6bSe~+}7VRxA6_=>mPqhg~I`?$eO+t0y=lGjbFXR;NmY1{P8ae z^sxJ61Shflpfo4XT2h?i%AdG}cR*kE9c9X%ub!gd*qoP9*m}%1KfeT1j~g@Z5_Y_Y z9z$+jksH0B(d4}YLLA!~m-jvZwly*DwCiiB!`J+RFc{`=9tmzD(A^r1Wi|*IX^6ga zSB#vI{Z5F1f3rCozj>U2bh#p`byh>Siya3(9qo%l01J+OI_l+?#*5#-)r+5Ksjh)- zowWc+$Dxu+dIIuhCrd&@CnLi(2=suc$hPJ zPI`2%>q1MRd^}hDFq#(zVFb<;d4a0jiaO4$I~4J0h>OLDa%ipi_qk;Pe~)ksVF%aq zDx+n09^w|J<>62kXSg^4cZ<%$V0K@=pqC=#%Ljx&uTDN&<_>=R{36^;;8xJ^4qTB& z;J+LL3B@CZ;qccQf&an=6j#mhvPvcLAD!^7uawgcp(DQCFP!oG3a{4&<5`8#OCGde z2#_>#l9h`|w>Fptml@zvs-f;^LH?OkCgbMaBD~ykWl(=6?X3`M8KpvE<>t z!j6>kZy$>x@}>Pk?EwCKV-3O%96u&)XPd!wlZ?=xe*}b)0Mg%mU-|ri;7MtJ`SL*_ zeC`1L3e$?~hm@ja87a7l#ARZ3CazWa0l7vP$l3E%wxw{Hr7#6WDOMPE5x?#i&io3-eGRZdp^*!&g{uhe$Tm@qgL8 z53bJSuV11OL|>%5!sujeDeeP!>P*YBl(dWoQ!| zguhk{{DwUa*7d)$?^oGv>{+n>{5yM3642uR@!1q zd}ihxSJCeRsngo5l>~u61KSx_QHZc02N%Jl*_9p7Qgtdl~#byUj2-Jp3&Y~>qAS2;}UT3Vm<@7*~!RlJ~*mv;2{ln z1{$FoOhYyu7yc7F5l_cfAT)3_&oSzy&9!8vEVkz4W8KBwx?7;kttcaFF~KpLoc5m3 z#<~uXQ%?w2;3Ez^1K?{9 zdBgj{mEQaz+c<>pxtek|94t3!piX}D1L2A%e*-rTVML(3`a_|6j2n-G_W6@%CCyAp zLb)gKLXH@tu2s#|>{Td=L87q;^e@Kp&U`F?{2{a@g7755?m+qNli0br@l>7s?MbwD zg-&*!6n^N>U*hqS#C1o(wy>|D&rRa5T+*9Bz?1QG{aM-fBjIOH{)VqB^zP^`v(rMq zA#VH-gmdsFiC@#YM!gf1+xDS4g3opGywk#;{`|q99ghR21rajtOGeYXJ^7JG_b93g zaVCF9n2gCQC!?gW(2|#OhvLum^0Q}zaPK1!Amct1XgTdB&p4$E>`=fH^QVVn|CfTt z^s@KIf;pTE@nS^&FTpasQu477OndX!`15%oaQT^sWljly`Qe%a*bsT|S)qF`5h7MD zf}7RcbU0A_=>a1*ZynzDKtLC4;+Xdk*?Cs@Wo9J|h}%|XPqh01cHk3A+$4UZnEw$7 zS-8H-{~W+Q0Mai5ptE{r+`zXx2pN9?7zqIXy2`WbgdYa*hnY(dEdhtSPQp{CO8u-f~{})ssIg4T8Dt?k%tXOz7R)jen24 za&q#D3;A#+hOaT0J-oR0z2?cEriS2!?T8Rr!OVFJkM`m->96sL_c7Y)0UcwOFq zQ84zup(=FMXIRRdNz*39-!qBNRB!?=hu7ee7%B&UDfFPf$=$vbjP!T;t}lfU-5)CN zo?-IcUkcrW|5PzoU5ay-TGTzH%Z6{tk9{fhjBDf)ynLCKbeMQX$1|f>)nYb-$&2|< zyjJk=vj)Ddzii{ri|r3mznbt)X8_~(2(*=Hi};%WJdz{SEoDWwBZg^gZ<_qx!#Kz*H3gz?2&;5e8;KeJ?)qrk#2(Y-Q6qSu7YNVM*6iC*9u zUlqOr^G}2Yw-US4Zh^q96PMGmSL5(bIv(Sy4@?Z}@?%WPYr&Ufs7VJ?hexk>mTiDH z_p$2w{Pe)xe3C`j-WNKyGWrbDrsrDJ=U&+Mra_TgVy?HG_myzfkH6*KjS$%nDfZz! zLw@~RAvnZME=GQCk6VHXkay)1-tx}Pe9!)^aBc#B89p%yTO6MLB}VVnW@MLko&ntg zyP@fyhlXsb71fQ?={T!}`fWy-6$x#-8BOZgp>>*3-6ALdNuNC9Kf<+e{+#_f!X9Wz zTEkxak`g!RDpKKJt-SDi;di=6p7n#!E$H8>(Q>!ydIs2G^?T)2KL|Y%URSy5>pgBP zDOe%8M#VnPm~YL0h(Donk@kaR#RjUwE4hdVDXgvgv0WXA2AQSAy30+6#wfZ)T%y3OiXc!yK^~mn>FpfSZ~TXNId2(mjoWss5@6Y z$6I=9^>S3@6FOnJ z78G?;ha7)T>3Zv^5o-8UgClu4{%7Gk&r*!8T?i5V<)^L+y}P<`9X3aSZ?ZLDJ+FLp zRiHGF|H`5m!QLOne4f#1>R7xrb5l1z5=nEgqA9W9N8h|K6}JfZn$!5^O99bu+hd6=+wifxe-n$w!{| zi!fy9Nl*j-!>XWRANOb-PV+~QNni`(iF-n`n||2mWlQ{C6wE5atd-4c_7#NB-_-Zd%cU z6Y`f@i#iOAy2ZS)zr@6TYb=fAxZ0vF!wvJ5KluGW%2}Le!C&Oy z@21E9o6#6K?uHQPoruJISMfVp;_Eu1vfV(kpuztmS%_?HKr;KSWUu3bvmIR*dH?T1KTi(xAMafCmA~UShq?So zUpe3p;SbMftU&f4%#D@}e`3Au#v{APLxJ1)a|X6G+kBE;`H_+}kbE40PQ>$(D_H4y zBO>N{_8yp=@g!$X(qvr%PRwm;B2IgW(PgQ8DF z+(i5)oQ~qZR{9+waVT8yBkYl@l-wfWIZXa@AS?txhhnpQr(bE6sYB>FtX-8*Jq|_*eWJZmns8zRXB4P4;Wi~luNR}_ zS(|nJ#QYaK-9X7) z(2_YlPLqEXxDP)oG;da0cM<5RoENXQE@!-?7Ksz{I3uA`qXlilspgGK2DF-?tc%Il7&m@xMaw;0xCd1(cVlb88W}=RjO_5JB5ce3ApP3kemn>6dgD4vH zXSh22+bwTx#4lf>J;aYZ`OhWaK&YH5&(ny(!EXE-WOE8Fi*Fyyn*8J~kg)msVSzvQ zo;j{VBlB({7dJtJp<)~YRj4L!Grt_D8phl9Ad_&^A5rG!hwaj7FzlQjwi%Opg^ z{JkJLDVYV%9L_yT^;w}HSOy^?<~1Tuy9k_A1RH%1>`sYa7AxB@y1~ljiQlI_SucWM zImoH+AtHAX^ZTj}D+CI;&<7Ceq~bp+*AC9(oO|}p4D1@7!8UMqAPmKysQX(E*|1^_ zFJ%=Zp65C~y`6({Nh^lZndRje6>Bh{ro(i1d(mOsbon}=lS z4HWZN!pnUasY3Z`5NLuv>kHt-+^Evu1?>!{PtfOc`UgmYTP(4AZ$@mKah5YD=`ABb zAm&%Z_j)n%DQM?8eX>695^yk%i$fw9c^<^?IU`A*l>wZXzZQ>%G4dm5jhsG3pMMSb zK{c1Z#PKFZIGt61H&vfi3>>~h^Pf;gSOu=`M9!F|&%^6#p36&`q7X*3Ao_F0Onuf1 zz%eJNbWRKA^jU8D=NeuQP7C4mIqquQ(C})6ffm8(b8l5+y>=>orOAnRRd9cBpFYdR zf3|6ULHk7zItGj>JjMO`d|eN;s#=eu+6THb!s+*M-aLKQ7U0BuUhC|J2c)3Qa(T;C*~s_ zFXNZem7s0o^fZ0`1>ldWrKcZW z*6H{-<;1<5ksV~~JWgNG<@zvk0-TRHH_s<)1Mn;v5i!@O%rjt|=gfjTm|yF3-i&a@ z@0?lalhp@!)^J3`+^nXo2jePdmUK>OGs}9Olye$5ciA0DkLasB8Tk_o5d#l1eb(E+ z^Uok!p|-$9{a8J$1-f5P|)ds++UsaCYULx?lDhbPe8}vlejnIK($PQn5GnCscg8i6PWB%SQdm5eybM>_Y;5nsSe=u6X(31>fMg zMJ_<$oj%(Kw-n~z)pN+X(2{^n1+A=u9-{7DBCCy zNZuqK^MAO#B|&mQuGmq$O^_>uAJ1Ma|GS46Zgb<6e=A=9uAPc^6YNfR4!p#>K%xse z6$06cvT zBC-PhMzel6BcA1RVAh#Mq4zUl04?G8?Mh!13q2l{i+PSbMhp5<~ak0DKmYjJ4zCorM|Gl&b!*5scBUIu~uuK?t9Rf0ps!8GF0 z1$-9c{~;i&%O&F)@76^fgXw65t4f{`EAKh{FU({j#N@&x@j}0kHq(-uwmbzskh*z$ z(6%{w|A)43fzPr0|G$sV^K6E(8RoPxa+sO(G3K<;FpSW$nQe{OhLMCvLcT%>m!w*f zR4SD`DoT-%P)SIPgyftwhxotW_x)Vkz16qh|M&X8{?F@mKllCqyg%3Zy07cHucIs# zuL2F7z)@wZkUUOU+^f2$lJ9sVE24tY!d=IR)PutmN@}VtqES7@;K~{Ur!eoSTiNlC zjb~X^>^W8H#Bx$8_7buS@tsk|E-$yr2}UPWK{kx9*VV@>^iS%V(qnjb`e=0as*>&o zlS8a=Sr&+_YEx1*rt6eZIwYJ4f`r$EZ?-)5FBrdyJ4qkt0y( zg5QZtZB;hA3oxvFQvYnYrtF4rKZ!&$`{&`lckW>fE_q!1P~WK8b0$JGbj0vnRV#eyT6$`eG>H#%Gdn-s*RcVTJg{&$e2HuA z6!CCFqgfH&6y|%Sq0vqaB*~qO>Q5DC8bLwgJyOBi<_HRFr;3LgLqXyKC^Uu*y|^#Z zOkDM+A+3Ja)X^;H{PP#^QHQ*UK5oCxH3sCQ*6CqQp=bs!b#$%FRN&0)hkf@nLEZ^m zh&e;4V1m4&Z>&+tE3pS7`6Ua=`IHnFl&v2_ixeVsD_)wYDKEmFw{h`vDU!1aw=QAG3)|4Q~BghRg zvu6P-ncio4!_-TC3_ip_H6#6?nHdS3-2{JNe>cPzFnD1n1%3v_V$c`{GzX#6#8GrowPBb;Ds96Qb0~{wmIvvUU zr>5p|_DV|b$m|quR-j6H9l}yFk*-rhU8^!<8hs7P5NmkN64{eJQt1}jV7{hJ4D^_C zBd$5PQfCNn3!|1-;!wPsCGCHglH$!JUL;JPkoVY#$1q(N6TUEmkEO%(5^`HM2D11M z^zWu2V&PUCF7;~^0hb`i{0o2VBpoo7Ej&<(q}eAj4U(LB_!|oI_&BjFNCG>I8sC(( zKp3=u%xJRTI?dl_ng7r@{y5$Tu+ymV9W?YQaG?VJT38x~jL1hPYsz%cv#D|rZS1sX`N<+xTqDSm8a#KcIv9X6Isj$Tz6V z9Itg%(Ymz}(~3tJ47HMuElS2>Rp<^yKkis-9|cR~k|JBjer;n!Rpf@dxw#qRM&_jBOeReKEAZ87YhVpmi-n>`JENACRaJ~^XVmwO zeiBVR6mBjSaBpg6<{}6(Ucw*ee0ye~r3WU6>|0>#K#<)Of1p3pX_!<+((jZsTwoav z1rtv8-I9hGwVUvr;_DV?R8#|7U_#?yTycv;bO(G|NIZuTh{=KWu-F%jj}q;<_bB0; zQZ%{qB}njj(QUS-VEs#lF1XZ}H1q^Rpk(Co9}TyHnfSN{HHdV+7La)Zf^7FJh6_L6 z&JISH8pyrvCgDn5EY9AGeo2WBmGD(v%$yl%y{*=+Gr<|HRHY(hC4G7qW(Jq=sXD+F zzuxjmF5H+%p9sy&p-;|3x!5-fW^A*E+IL@^5v&G4F$P!ivtnf@Bf`rK`H0)l8%0s| zDp0Afnm!PzB|Wv6-YnrMFD3r5Hs;FFz)0xzPiYD^QmRlBmpUIa+4n=BWE^`+^RIF6U;m6k@^48lp_$~7v=9FzR%eGAU7JU{U|;tmZAiF)ljFh zqO*#zF%u?Por|heDWru(!R%ZO2s%ozw~eaA0F?}2wQ9l}s)u{A-l5ZCG#24bFx*kG z)-hu^1RTjZvk+}%2*XIsQv_hV6||osd`v zBMA_InQQEuhX+VqWER876$)y_uQnci8Xp*t29a3;GfN<_e=B{Rxe8VNur+T=1=~Ua@*Z?8zedV9UwQ9QiP&y!f@aJ7#f47(#?r9Vaa8ZHKQ& z;N+tAYspN}99-#FF);qUHhQ<`G-W-k--Jv36LFRSfs!$v|MB1GM+Lr9Kph}`6LD4u zLAGnT@7*43y4Gjn;{90noH*3esOgn>bP10RtO1W=oy%w?_}8|o(gm=j?+T$_@|~Pt zA}sN5>r-Dq%LcB^U{>VLmyy{14+3Zb_fI6X9U8yMxAYMo_ zTVUp12$c9+`n~yRi^JQ2e6_d2NHPRqmKYzbz!xXf^Jrunj2wnQiGSNT@ghFQAxtNM zfsSnDCCkW{27R^}(oY^`$Mx>uqO>t{oz_EdS4CS z{@zBU+Ab;`EmvHFU&T9mK>J}01`qtA7T8NO=LQ6i@xgozjW0ZmsD+0fco6uc>?ay8 z^ti>oL}Nz_?k3BfnJ?3(-P+4AC`I#V!Da|v#zWc;JYbz7{I}WHv@aU5ft;bmxuTQS zh?n{qFz2PvH|Z>orBZ+fNG<69*WL z;wT-4YfU7)k_uW)brLeeOs}Sx);FVt#<0Gb;XGRM$3k@fja@u zrY-2OKF0eA`6OKEIxds(83br`Tf`~|SCe=}4Ymlc62H$J z{|R0kNY{~BjY{ZQ2w>){W##~+2g$tcH-nK;7mXZ&@ED1Aij6$)qWhE^9)dD8!ew z;F4-*qC~+!Bh-6$Gu~lXt-)%Jo@PXCK@rsge+p)z#{cQ2LIlX#RQM6~aVPovxNqU)03-K}KaS!*vl?Ji-?Ly9YC! zluW>hH1P_WzgZ9{@$&+yO_YG2KS1FP z;c^mdK~&gC;)j6o8_*pB;aXf?^>r|-AVH6Y#ZdYljl5Ar{3r0iwVJXK!p$V!1~C}| zC4N<4wf9kWL%4&)dJyd(P~txg^u3P0ItcfZcn?j~?;$vVbWq|C1%CQ2N^cNH?!iuo z>IN7qfCK{*fsd@$l%rsd(bz^*_p>1Y^K_YN?;ztqT0mwKj5L7&5m4sSw>0G>gr`Vs zhLK|sfcd1%!|PCbLwcIb78scY0b-y``8Uxc0O8qtYJ>R%Ok+rt_$y@?&~sqU)5xc= zZ1P&s0CO4wnMT~GyI!OiGT7+Ql+Q`HTuiscWxJtl3kU3j3tc`@8KWRbn}t72#=5De zEng#c3^tks(#SMirz6DO!N$FH_`Da_jtJ!B;W)j)F19uzqQdr-n*nBzNEu@E>rACq zIOTkPNyX(*99dk7OeQRTA(Cm$&*cxnY%_6Xh>_TtRvg8ZRMMJ`C9SDd(i(0I9=5O| z%^ngnh8j5!T&TkW2;Suk)-3xa+u)R;rNV;hWhqO^$;@QOgjFaXfi&zH%f9`vQx;KQ z))74(H0pPz|Ayjl_i82mI0>d4K^;O^9MpK)c_M^n2Z?tdH2PMpPf39#NrY|EmB2cp zYBIiI>B3oDCt0l&$NZnQ0qs#o7R!eSi(UB;a9GhgaVv;w;#^e?n-ew+cAc`^DY5Ws zHB4~cHzw)I#9c&DWJY$nLpFu7aq0Hfyey5+U(aP#Rpe`mxxf5yP&w5hIL|lXSQWlO??Ju^ zmwF5BVXLS>qp=E$gw2rdAoG_RU=<06VG2EgRcUM|h}|To2%1z5y0f>_%7Zw>~uu$m32HkpM zb3hy$XLJ%@kHBQ4g2&YgJEq_(@DuS+suA&!#Pu=7erQ&v-BH8V#uf@PCgo;~!0xjt zX=$U=bL{t^7YPd^%}3d?*C`vFn**g{;j((-NGir5pCrky{gmO^!<)6R-^`f=lO z#$i;Huh&Bm#LqNV?M4X*Kc2>=e(R}}u>%5*2Y$U%Q%*s6j>G{^<&57UP~tZl8DC;( z2EywkzV}qgml=#OL__1UH!c69HyMwQb-V;ZMnh%jUq(P-TKkCqE;gWyUiQq`ibc zj`RIse)B0Rz$q2cJx7Hn17b3atxyQv>MNVZRy0pq&@fDsuvN4jVbqFxyQ8W|*?vTa z^X&wsCK_0wi&6bVERIrL;?4m5i$I>Wc$BeKTz4wy&fm!S#bwBvdQ-|=*e zAJ*mx5G!yceTFySQ;ktBMQB5yal6|WnMn`w(1^vj4t*wiKWtQwk~j#fBSwzkZoGES z>)cN0dw>kTqrN9buh#0fMyI+Jsz*w_qS1^+%#EaRrb3_>j8U^TOhqdW+9li5ZJ#t((8ztRM7d`#Qaf4jjs8AyoBD&D)#z)_hPMLv5a2l-cB1J z8e*$)IWM~I7IgAm7=`#8It8DY8*zEQzz6;xn);i;ejdM-?CO>ZmtjYiEw}oy7a)Ss z{Exq;J-A;}R>F!m__cZ!TQJOophA7$$k80%;5i_3;N9vw#G)}qq*vl7EFCHB^`(@J z&dJHOW~#BAo=6E(#**-*d;k(m&-~>$S_H5*3YYpwKxRk*BXgrAZwOg4%Cn_>uRi&h zrn~{Kc-xT33CMgI0ww;mMZ5=M6D~DR%J1lbKjE_#vd<}>WM;MmMx)eN^`oZjfNVeI zQ_bvMz#!f++8sfw3&Nu$FsCRLSc(7A*o%UXva^(XF^Tv(OTzd9Bl`#RenEJR1m_qn zgg}YEVchv1T?P=|A;FnN4Gxl6Y`%B^4IcQv8^bUga}7U(K#70TBHBS1M`CUfvE3qu zL6}Zr0SK>cCgmg5S#YIN0TLfLEL+Y|3;u#lR&xSCM#EK$ftwl_Pa5{+>i-^xG zVg`h>NvyJnPW13GSM%@C?*wUoGHWo^wD>S^efbSO@xUUqvNH4F+t&BaSR+Jr*Tp-5H)y%KMRABSe9SS5~K^Mo~Eb=15W$}TwwszHR(#sl*+aACG*W~QxtiLr!b zZxpXDNgcH!aGPH1EZPfj{W3?mICR4B;IT z98~=U0>lAke4fIrK)ACCmx}F=vYSEx<_+VKU-0D$>Dy#}1Tz-`FxxFN^xJ!6ezMK@ zDoikfkEuFW~eWKFrUN&X0|>3Kfb`498TeS5`*R3@Ip&Y*+-NQk@7_b=ZtTL z>=VjUi{^~K;WfHqlKAJ4qDvzfLzUT_G!C~vH#lRQLM&DcR@3B+@gJ=j<3}MoM|rxL z%^Bk`@Vhl#oI>=J1gjZlrnS5w{%MnQ_9-i*JWI~mUu|;E{(Uzg)DZvbNHd$0_F>Z& zlj|W22wfyb70uZH-sC)b3WG^JQaodSlRcSX;Y3VkXoFWJ71z-pkfJ`_o(YtOjU?=O zK$1>EijJh%s!SrTYsyqeFjv3(HO#Mp`FOr^jm?}1z@tE69;&|UD!%(6PbAmG%)A54 z%AofZw2B}bJYKC;L5(#tXF$N(fD3{ltT2oQnwnS;?Ate)GZ3!*B>sHdsMTU29X+bO zS%}#w9WfUfmzr;2syzf?{?G>ei4kl_$&$$!^QW)Z6b`Rk>x_VQ!3vFIB4?^mrwFfa zAXZK_s%fVhh!3ZtnQ`?NhEA~rDmz;qdrWNL7On6J_)!C|3%> zC}7n0joKLxL6A0vrH!G)|EAMJ#GvGF~hT0qJ7q6>424UDNV-XIT(?_IW z%9=HtL8Dku=_@}2{hNWoFxLWC>`77kNuz#qiSrry;Un@US_7jMgH?P+VN}7|pd~m@ z)0J(&)(>mh3iT)vw>qeT@Xq#>5nG-#ws~(4!)HM67?C#H|b23=^S zS>G#C;~HJclZ(s0iMC_?;XL#tWWA#*?^A$paBM(<1zk&k9Lc~YRy&BWfZV@X3nj{s zJaKoX;nBMpx(J+QwAMyMi>|Ybcwv4pY4PH0qe>NtFVnRm&opf; z_RcnHR|vrp!6A@h8yOtwwTi^&{jS&*aoHGOt+_^HwIvVVE5LR83_e~qYEQXzMT#P@rZMML2nOO|#5;Is zjR*XaeJ?LD3^f1=+A$R~2+xWI^NjGoLO;%m@x3?CXr{(5fj6$>iux7B>2_URWtR7+ zI(Fn&R7o#^tx;C*j~xk)fFA}WF3mKmSc%ttfziG!(>-jP{-R~KZ~g*|^ws6Tf~mNU z!Xa*q2(L;JHWaXbJAI308M^A_afI`5C7pw(c412Z!}e6hxZya0LzOf(1hV^nxLcp) zxi2X3`_K}+2Eou=Y)Di5CjW;b%chhxT4(7!QY;*v9%FTk*+e@KVLNp?ITshZq4+xX zrua)e8=@J$Cl+xia|5FJ5U$|g;OV=Xdcp5$YwICJmGmK)v^uPcJl!C+l&8ZeD9Tuc zbn1?_305D(HMr!?Kx$H;9e2K3&l;wh&XXOl;aW&v+|ksZ{JyYv_K<7`y1*{2B2UaO z?TN`HJdq3(_Lp`5HeXHg%~^tFVS^4NfTUnK=Qb|}FQfg0D;Dm4O= zpknOl(3uY=vIst?DSHx#4jV4}++caZDZXkwEwhx5BE&GVM#QD~i}=HmgD zM>m$xe8tjS=7OD#l=D!#W~sKbR2P;|ok~^vH(iX)H%?B`ERAR@xu`R3}^MZ$gDc&(pDI*@vH!cS*K^DA->)P*P_{&CY z5#G~6JpZyWE+m5~?Mzs+r7vO?%Jx8>Vyj@hIro}q{E89NSK=xy;R9#J97{pTj5&;= z^a*3eV3!HzmivjFuC!?>-gw0bHxl5y*!r$sO+3EB*x!gJ>2Ace^BP{`<(jLEZXK>m z(M(v86Ai(0ct~qi#&>MB;ZoI|;+I#^j^8DM*5Ga4En?OfRcoI?w3&J+>>e^=!uY%# zY%1p8v+uISw3#hNt}%Y~@=)J3xDNb*GWfWr#=Go}L;DLwvg_dB5J!*Vz%Vu#Qsa+l zT`KCzWSC!xOC4(FqyT>n?Tkn85dV`_7PqRhWIa77ioln@LVo%e_m z{5jToXp0ht$RdDEKkPa?ctj?;3}1w*Ixs5ikiGy;ufrwBe4c;>O4wyxdP&N&Ar}MQ zG=2@t#Vmx0iCA}YQ^c<`+7#hKwrBN+TH8VN7Pmy<(_2oT&V}15D=87w4JXHgNQxI5FKQ&7Xd(Q~-jIvPB zY%%3MKZi7LYqVYixYN9%%s1xDE zuFSoY;tyEcY`h37*W*&JpqI7g8mmjc|WpG;7LjK<>a;AdIPBVW`{T)D6oiGQni`fQ3t= zJ}}P5N2A{*8P`0FpLG0IQ`c$LvFXpa@#9BwQXTdn<>w9tBNZyP!}SD$KGNbb+1Ab# zOWTN*8;yoFu4ok!G2A&|P;tK*P0;$$ZTwqTZ8Y{ZNQNg?;fgR3y2To%`?=C`hGSIJ zF83t8wv8yiA?XY6gnv)2#dS_dON=V_a&p$_$ncEUsH-$B5x0`3|%_5Q~IN?Ti2Vh^%XEXu#q$mp(q`giLEXuY0ptP|(@qi~DnH^UfH$3s7rY=&g%|RWj z?xn^Y*zvc4oYW!3tL~F)(*7)laG_;+lPRbh>tSNmc3AGuuALU@YNr2`EITfx($=;j z@)M(9y)`g&9T(nQ!PlsZ|?R+0t8W#lj;-EwSf2Gf33hWNfR59hlHrkj;I1 zTOVQc+bL5P%%+B0=@MT(+fb>^!Oa3z(6b?<36BXvcJ7Se)<+ORGff0u|_5p~1gQJ}Pb zcu*g3jTnae`w;NQ{l-rPuIz@&4~0ooIdSWABc`{+RoWvXWAh?5W*Y`$>(mawxz;wb zW0Z<_lmz1R44gtrjW*DTp@cQL6a;q=6So<4y??=~p|A?)K>8;{9ET)+x{-?@Y=!%U zxYXkqcUS;H&T9N^ghI}GJk00AW;~?hA!8RFMjXapd!X>U`gXtJGZ3Yn!yhVs_O0U= zhrDK2#1_$?slV*SK>MJwIiIf?qxWwS{DuPWTFzGtWSwElz|Ww zS0;8nkhltyA)eD$z|B^06TL_Ndb}_~SN?>HiZ}i%JqD?J4k|Zsso&`Vnf)Nheh7b9 z5RU)M3HTc^1AnJzB>t|xAIV4Ua9FAygo(=#T*<|xd}rkTja`2Pfka#rHuO`3iK4{1L9!C>09+M?$UG*IUaz?W(g21v?_u3sYB zBwo&Fa75d+j?QR1K~y5zHc{e?wr3zHZbewpb_I5-L!E8cL?~ehy;6S zb$!acV3n|w`rDvuTeM_7U>nlx3Ecoea){M9>h~76^xuT>gs{JKihGbMN}h5s2kLc$ z;$gUoQ!W%#<&H3DTXgn6ev87sHK@3{ggrP;NhYYJn=cM+=}AOui=8ko2j}{ zn+NI>T+)T9kBReN8&{ebT~VInx?K^apU~PcZv3KaFqtz5f|haUyi37D?Gr1OWeCs<)PT3C1TT1zPjpJTBA=^!P>!NY5nR+ybwotYyv}_NIj2w}rKy=;jn(y)t z$gP^vMBF@NRM)C^7W*d~mBl;X8i&0H&~nno;3a8-Y=wjTYFV4|O~ibs9IOMDYzH_W zc2y%(pj^7caX?Vm6^pzH1%4{9VKob8h9>%L3NA#dkE0~TmY~ZG8wV56iNxWaKk9%=@_YVfWQJMI=b?DhWLULLyxZJf)anw9l=Q$oxN`gJ`7 z&vU21gB|p{x~mqvJ9`TJ>*`29>$e~Rh%n3QQyG*wFs15$>2%S>IIfQbMtZ?zw69!c zAyKU)7h4OlDEjZ7;5j?6;RARA4w$+NwljKEeX@niSSY|%8+T?9RgbkKrk(`ENHq0n z_LHTLXWi|pYW>qDn9=Wd^~8TYSBMuOs7P0OKsQ)_e<~GC(-kQ#(64BS&d@5f^*>YT z58H)Z5Qn&`@PZZf0YZ`0LiKX=iz^(yDnn&cf6Nk8!#}SG`zp%K9!%LR&d&c38$6u{ zmMurunB}p`vMRco))4PObyXj;r=s2 z;=-%N5Wt?LnyV2Wyf`ofi5ROd)GTL0^*>;eZn)}OdPobn$8-o_aLn%dY>mkeEABA$ zT`|`4d>9W!Ji9{igFk*yXzVSoJw|3F?yioW`OG+ z+`~g0buGsOtYm(UfYv(aF4U}DnW0Yt19ycb`Z6_=z1h4tH@H7tSD8HFfgg7KwrZWCUvLn2Suze#7ExWUws}P1m|$L z5Ij*CPt4_&7;KZ7#;jykLS{#tS3)+grB7l|ZGR#bJV4bD`ONsCWYUla@m!q&84E8k zH&(LJD4f|BY43^#4~qkJ7HIxFt-7k&G4?+c!aQ{d#&ISQV+;XiW`_f?HiDTSC08iC zOm_kNbq))}!H$$@_4i2NDMaw`+pt$!%A(x%)BjM3^57x(Dc|8I%LDeyXn7;ts$jM| z{O}J6!9#~&&uvy#2pfW622_TpkRDccEQ@lkDxwWJIY2MV2prG&lcgV{0Jv;%*40Nb zAK8UXMu;6pcDAYMs%~eaQYJLbsy)Q$pNvB7XsXCOW=vKm`A!@&Cg7OuNn&t;F;|@< zel9Q`)`BMb5>6OPHMNI0`LmIu28sTsjAztI;^Zmg2Q^lF^o#MRnjo5;#%YDy#oMP1 zuiDKQbH*62s`+BoS-@CP`&Xl{T1AZe71AE!^sk0ctBYypj0e^A;>bDU9d)~J?r%m7 zO`R#$UVu(FQT-yF9w%m9G}fs3zUWKFC#rVpL2>@FF<0B1?VEJP2-CIAW5mL1MxJM| zRSou5MZrmQ1vNTr)D`n){%LKM>TVYcTaW%eOW!j3UR1WMThQS2=2dm7G;KB(N$M;x`9a{rk*9zZx~+BTJ&Ng2fQGDyJ5@;$i>$!l6s~l zrrgBr{wlYP)*c=-0FCd(1GkNZ0lBOTs_8p1x#YG{m2M|kZin$C0H}S=VnL&CRaZSt z^$q#U7@^{A+j0l@R1taC7=hi+#q7Jrd+x1PL9+p$6|Yn-@xfqcTLo=I(eJuhQ+Utd zjR+nTP+4?R&6OT*Pj2ei?*3=h9Dwb`TVp|rT2o-1UQ0K6OwpqJS{y%V3>Ek4<^vJ` zV6(M}l>dcriG1B`uZD`Fy1B}uqez6$W5jI3d_s%O76GRDwsv%^??cmUsbj*Z@3O~i zh7+Ej^hE`lm{QnnrZ1t48HO{9pY){%nGvB{^jP2Q2y=(3O`q=TQ`-y-(KcoKhPE_s z8(N~*H@KZy5vM?V#pw3tZEc>{H>!h~s%f5SzC9hyir6gOcRbE)qH59EzThtAUR6Eo zJKoi-fpdQ+`|flz6N0qD;Ub}*IZeAgT%#Ux*sOtYq{rA`uQ51Ti&;7MXwmid7;X`-k! z5>_0Y=nEKS&Q-O^}UmA-XEyt&hXuyWNNA! zCGI|E3N=fJ$>vkq#Xch9akGtD(>LUCGg4I}e2-5t@$vSaZ|W1~s};0@$9+-HntN0a zmzkK&^dn-*Qge#7WP+Hu)SRI$$rCqupE5yATV|fs@+XKaVII};^L+8k&ChWj^dw*4 z3bVPYtsO5qJ#Rjyh3EM`dft3V)w0I>9(=*vVrXY4`@&b5H3QTvU)wj$Gpg2Rys!3K z=4O|6t+TJ-eMZ2NaT`A{KU1~f@xE;v%@dk-dzf#{hhS8X_~Ik;S#_%z^0E26YKT8R zM%ea?`I}9zR+u8nZ86uVOT-6TOdl$QF`t-^s&V3%Pt1?i4e0nXy-ZCi zBJTand<7mk@tOItu5J=9d|_@vH8W_3xeTt45f{HSC&RvxJI%+n^9kbgPIHj9Zj7(v zF0-eq_VCTwZ9b%{hs5cx%?DArblGcOs?C8)yl*@Bw%_9~x=~GPhE+8xrnbO0U?0Ad z)Lh@t{pQnZHID0{*qYD!pG^k5x|n@|m*uv$?6}cg)HrX3*)>l7PZ*?*4Jl*#)_iNW z)asRfgD|&g_&Dnzmyy|ci#XMZuj*%m%}7!1d$WoEz(Ri?f!O+&Sy>$U-7Moff57}x z^>ADdK0hITJ80HbuZapjn4xN>sP}{UY77V3z+ngujSCd2Eb$CYe_3Oj70o97125_U z$Uy5papMPboQH#DKPbC!ogP2k?fvBS{hpb^j_QSC=_riVRBK&O4L{b+t?AW0rC zFyBX;qR9z!pSn`qJz;)|bo}%r&^+HWKbu`SY2mw5=ELe9(f$|AKu;Ijc$+TnKaE5& z#1E%Yc14T(&fqr1=R0FYhHFtX)SFQi0x>(uR6%yux z1s>ZH`h(V6_SJLM5fP1CW$Hyhf?3_vv3}wBuZ{~^HF1luAH~<@U?8}>D?s!v?{b%; zJ=Tx*w-PUwan%%;8@t@ytDr@r(4ekN-Dy2U0KkDz-Z$g22;8k-D*iKZVGDM)&?noE zBEjVf7jHLrxxJQsQ4qt5Sl;W|&!N1Bqgh2c9YJLi;|@57#^q! z|5Dqwx5(=+f_dbqMHkt!63`YE`7#-zQI=NXINT=LkNCHK{qfIl6i1ZQ2c#pVMdHO+ zSC~k4xdPQBQ6b0`62!a!tvt|XVG=*_p{V`>$@JxU=S?3kptt>4@DKZ{FM`e6#A zb;t%DEed}O_hMWS@eN|^I9Qf*Hk(M+wkDC**fA}>ui>g-y#nC@qJSU^c>nfqFKvU6BN~Di|I`{6`HKljYJ`v5py8oH& zJUF5S*Z`XyFr-h{l!U$ySf-k{1QA$Fcx?tIn#IO~DpO3Q^yqnC56e(f5J7(FwRU@4%!8 z9Ge6#q}ZmUzDb=EY#)ON{Tsm`(ny%iB=+yywflepDZM)nPU+jHYxjuejGihs8Q;Hi z@9rrBy7ukg-LkPI4OX=|FTHJ3_x0`D&5F11V%Kb@Pv8E%J10amhp}p=2i=RQe2alV`tgGoKR z-tSML1~!{GFagKTCG@?oe&(3G=#-Q}ol`pZzi&WFN=!^lg9t@!VykuQp47Q#!oTPl zzM#&o`#qiXfIveJEMura$Y(s-vROpzq}Zm4TGo$S0ym9S)aG`(!8+lKE$)bxv9XHb zo7~g&n5OHV0N>U7T~+bqa{B`NxGJT%^p=$jG;bo`az&~Simq?DYOBd2^DS4WkcU!| z`VL6y-?Pts^~X1esDr&+hlx#Zxgt7fDJjzXUHf+H-an;BN=k&H8+cbtyes}}->th% z4(QxFF`;|PzyT3Wk&T|(|CY-_p)& zq${b=zWz6Dc~m`hv3?ddPicnfvj3=SosHc(gQ^O4T7mA)=DHH`kGj@KBNaIV4C{)w ziR2ybw%U}oLhNwY*CINI&vv*6X@|ZLRljuC)$;EZabLQlv{M~LChtm|nD-_0Mt2q) zzjXJ|f_E<4>29L!?;@J+1bwZmcwnbHQVZ=aChvstP4|hH$#>`}zTN3=uBG=9?p^K( zZO;9o!7g`gZC!%sy~|xw+y9jqv&-FCJJ46G-$nEN#CN=}OA^<2xgXSy4iW=)yIX6M zhKPB)AzwIDyt5njuX|7&-0iNTZBG`rcEekT9ujrGa^ItQQbeDx+zqw*sbcb1aBuW* z-^#Dt< z$VJ0*mZa$PxceZ<8u@UR^SHQlYLz@eZaPHr2sP`NFD?lEibDU9a0Ql`qLbjbOpW?p zo-}7IWa2DSrwvLp1pcGkWR&T7!ne=eOWQm_==;GJP85yzBZ2Er5`B3e z{FoTKA9@jI#3Bn%7VqzOCupZ07wR`it$EW#-EZ7^T91q3`EQ_q;Jn!KjXPQknl64L zPJBX?{T6!3Pl~4BB4Z`a5`(^l`?qI{$G!!B=r8d+@#UN16WoK=y0BarDasTV-o;v_ zW#732wP24J{+&BiMBq=)3(!RC@8H+CAWG|NM+0s4C9+dAO>Bfz->PWh#CNbd?yfKn zKyXUeM3V#V2)&!BiT($Ws|Vi}kAu-xmldxbK<=IrEWSD5?w~2e0b2*sv@V)_s6N}|yZ?uyzvbe;SF=VHUe)F0s7rkdi@AK;CJk>WSV&Cm!GQsUwd z?gk=gofark4k0Se*A0ZBqlW^f36SMxy)?cbM3B*d3zH>}-RZ1oNT^8fe!Vi*`q#dA^Gnb_8X__8tsF zq}X%>`QT7@e9R$A4#kQJN8R^`{NwI0bRl&y;kpd~f2*_7>Ckm&f6JJ3wT zTbCz(Jc8J&br@lJ96~L*8P(cr8}1i6LPmc$_<|0rUiLoW*Nu`R?gWs(UM#kNNG zrmg*smaz3~D~E31PvBV0armH0A{Lx4I}TO&*)66Vb(hyJw-rwu^M}IB?;{ngFkr$a zxO=sQ{lwN|@MKOr~wil z6OWuihKw5{mYsr6uoL)}QwY$ZN5pB$Lo-E%U!XTQPsIJ=ZmVyfpotd(JP~5$FYfAQ zFs7pBil(RCwZxrUT2OiVkL`Rcq0cU27TnZ=tSD|_G1JG2nA7mV`Ek707Dw(N_w2vq zHas;ge$smJ;%Ssxp7(HaC|sWNKJQh;{AWF7ENi%K6dOi^W>ny@uWw}_y z`^?$mBgzw&ij%x=cv1xZ3VW-}5>0vE@Pb(XD+-x0_%r8Vd(L$6;IHngBL7!Je(*~q z8*1lQh@-rZ&L(PxrJk(>0Xmr8d$UN{d-@KR$?y42wY^D{C8kW14-x9Mf zxNB)sJ`!s#AZ1RyE_Pl(%5->B{LcH5b)x1)L|WWCqSr;(9Q&FWM?7z>c=00n^IU(j>!5dTXqu6={`7`k+QFsN4la7e!tGMTVCsMB>=Nvd7 z7G4G4?I3YD4%WoT%WCXpGFmkG9fi~U5qcRB@jGkO!y@{3*tq%=k@CB{tyzDorpy!h zx7>Ba*56TAZTPGRFPsWPWv`)FJGxucyas>PFAxu2L-t>iD(2#Dw!x-JSz`V*cXe^- z8uHktW8&;Jgm3HDV%Q%j27CR1+AeVqK|Af*aIxYKceI(0jhM2;3xB{{r~iN<&$puS zbyPEzue(FFmHP==XtDdm2;SqiiM`hmpgYs?LdN#hO)EBItwh_rom?}s{zm4emjXOB zMWrr!1xurur4jm}i2D<^cy@`2e z#A4xPf`(d^-^B~J-0jVX%WP0Ek(b>@8n49G3^o)^Skv22-gK@7X?ZfAPV^Gz9k z8->ZmN3lfg>)XgWYtM#Aj-oGh_+Rc? zb=P8pgJjefjc{?fe&)!`oT7NP%}oDOyb3c~{p;dO>wa7O`j@+nxgYK7(IWW{O5+}P zShe02L+&6gJKPk{+;KP7m+OZ3^bQ;gHVtv|j=Qd&>o!E-UH3iufj~pFxa)4HZ_sox z{H}YH-XX{kd+)ld>xtzIae)ul${S0AJk|C53dYh#o*H^wsIl~ZPaQqKlCgBGr>1uy zIw$wQ*X$Ft*O^)is}W0zU1TJO8_GiKuz+0hu2I-+5UF53p-By?N5GvkKJ!SN)09|ZSJ<(eABjU8``AUnb zBi`3Mb+m<1;*jQv(bnA~Jh~@Ji)|ocbWaoQc0-Y(dm3wN8;b?HXRsFAM4Z(EIX&`%6=c^YZT0P(cTgVtV>@VPv7 zwJ8I|G0G1-Aj-I*e`>I3==MZt!9zuY+mod2-|t)H_B2+t{7d2+kEemT9-FRYF&9RN zS^=K&+RW=BHUMEf^`{sf;AyL^J1bTOc<$AbKNLR(z`}xR;%0!SRpfMhon@gTdk`-F z(!w+bPf5Xroq6hreu19hos@?R>s#a&nWBlU)T?UgMGrF+_CJ%ynq}-*M^0gPr>3N) zh%14faBXL*C|d@RP%vD?@IH8iuWuPoV~;nJyNg&q9MX#WXa{CLWq|{eKjpyWQ!$Gg zH~eh#oM2G04oOQ)wY3gR ze!T;e5A9a0Prix+lke!j%9>9o{#N;_bB{3b~A}EP12OO9@&rWyplN>l0?kj~3 z0WFBdpqw;73wk&(`2+{H9B^RrJj>l_ezgOW=NtsdduhQbhkyzk6_g5=2Qa)RF?kO6 zNlc#W-6XcmJ23ffJxlUj{Oi}p-nn?785V)9(8CNX)=&XAaV7)FmJCSOxx zuRoKGk^*2VaJX3-paruXm^@eKI(e@9mDn`#77~m2VrvleY zOH2#6c3NUuz-7o1ljkaFiOF+uo5bX~_Dy2)T)~AK^S|u@F7I+GaIu}lw18{zB&G#i z%^@*)uKtji{7eTX&%I-u{3#35eZL2)V4U2kP~CxPK}QFs1Kk{${A33v&vAF$@UsKR z<+l=(=Qbf$_@x3j_Hin3yA_G)05^k?m=6_M$#V-GiOF-TB#CLB8!Jgn9viWEiv(2Qo-IxVZqy?&d2Zq( zF)iT6ClZtAUMUij=XNs^ljqJf5|clg>Ma&fA!c|nroto#CO^Z0$ zf6;--7kV86D)4wE-0-u@0iJ;+F?mmVF{TAP@4(5YIxu-IPjK=x9hkhAQ)itDn;e)5 zT!-M~uQ@Pz&J%X>=^4eCJSVU@`85s<-m7q7hg0Em2c`vFtl{LNGm9~K&dPW4eX@!% zd9Gn_@@+;IJgq`FL%pza@>?xVw&ZC%Mx2=9hf}#9Cq^Dk62>z+=*FY%e(`F_bS$Y%a(?n%G`@t z8lVM14onMT9hf{1Ig?0~ncVJpD&wUySi=7MLcW68g=A9pTrmiRCpWc5n^G_Z_N z9VRXT&l4}y^Yrz~ejKWehO@HYhIkgR?4}`J4$Ot_(wSF)W%mgA4}f3jrdD7tG1hb` zUjTFMzSPGAj-uWS>R;xJNcrVQ0Zb|L2fzaBQB}$T%MUm5je*M!!Tw-=2YLbfKisT% z7z(@;{Axd+1uVbYX#P>)!$YwXo1dSl4M3Lme~3|mClPXWy$1>sb4fk>s)=6!UuBM3 zVV@r}BDq4JV|v&^z>3)I;@|o1&VrC?UvjE}3&2n%s_?4nY z1Nd9^N6}s%#KVz*=(w~JbU(1{2_SzKcr3pBu}_c1-yz?x*dOSyR>lJN_wy})<%c}Y z_XR#Y2q!-J?ME+Zm!dCuDm(>+?)b9b<5!@+Pr=_DI3!OTG`l#xm>yqD_0I=+eAsz=TTcN}=fn}qUn67iJ9Mc)oB_-UOcHZDMti2Lo!!nNyRqb@gACqIac?8Mx7=$M z$P!O<`M=)%cn&c40G0f+!1Cjr*5m`rk9FcVf#t_Ju@9IZfY)u>4l0enVjSZA{GUnt<%ezHOOZxoanKgFhaiut&^~ z_H@GH4Y4=cGp!#th>-3*9e{-PH@l^M+`u``Z{N${CB`NjR=n=VYiz#`hVmx({o;kj zp1u`iofN9%zhVptDV9`4UxlcCDX*vzVR%`uDb>b<& zviVKC1Xwn=iC+hn&1>Q<)b}^9iNB}51D~V5zb#1qMi6@4WmAiS3aEBu(~6j}yjs*~ zg4`tg4=K(nhkgNne=SnbmTi0DAr)W^ z)>M^i>Y3){q4d(?fvDWAGw1ydAJ5AvaG$P>3= zzVx@7iF*Kdn<+kN>4|9?>+frzd?Dnr?|_)$k&Q;#NGlXIT6y|bl6^5$V`2oyD8UQG z6RkXrnx@7V$7Fkq6U)ICs`dkx-8|B0zWAw?r;}F>t5LiTYH|#Qcr!3peZnCt;Cq1O z00Q|#z_J^S_#Ck8Z6anwZgoT?eY_4n?qJzx@E}&N@-75u6+qokZoz_2fLZ(!n;56x z>cGJqxA*@H<;vX#rEn);yZhYsa1yZW{Go@^h#fJ13GORr;Q-qm%+QmeaKYiBCxI_I zFwb1Q>G04>;M)$o4p{!^!5yXWPr%*$BP8_Dc`pQVK!Ac*(dFv@U^&=9%)mB8 zU}YOCw6?U(PTppvaBpC48$~Uc_bO=+G>5>S0hI~B+!DjDpv(pC3>*OgUx*igdGZwf*r-+y^)oy&X&<5|1puy z0^g3rR>_c2zci12KV{v&@NK{^D9NKLaX63)g$__awr^h z7kA}6S64Lbgj|DrFaLcM?zK0TGFKY!sw>`rUd3Id^p4gQM8?qHA>;urEs58IHMGvQWA?t<2;pWRzM2H!4<~%vrv$jDb%{2cq0x0?^93g#@)NJ zqy=~124=tSdcXM(OY!@GyC5PN2-<(S6#u`(`dz%YqdME~?_B@=4gY<&|9;MY5A5Qp zT{8)RlO1$A7T8J5z`?FwUH6jFZ^@h zbN_|^4174Ui-9=%TLIuj6#fc@jsIdn1xz>I`Y(K2@Vozo9}a%K}!I^VR2}Y&{%BL3J!jA(m;~0XV_I zC;PF-cHnRJPXSN+T^5gaXX&y8F*7ROUsT{;aU~2~YK%iURJ%=r*Z-q?e_O6Ku$^+Z4}QQ-g4W2LduSh99o>wm&kOX)WP zu8ABZTLbr( zM@#37e@YETmi;A%4nCOQ11wWxdt;3B9dN|vK`0!0x;S|lyBxZev0FM8OJlT&ZuUa# zmyWH|us6c-e!5~x;(DcUd?}n+3eWaq`~6jwHNf?X?e{7>{DL4WX3^&b+^kqZaWyH4 z>-lk@Uq2qWgF`>F6rNoQuPK4?6}F><03IlXU9lw{s8H+V> z2MX&T)(uTd@x6d?+?F*c`A_^1@Dbpv`^{$p{}pBTqjR{1=fVYGHU{5$V6XB91o9WG zUAfz;g+ypa0rx0{|4&CJqcp~yhs8rr!MVcyVDpaF@Qlx+t1bKe5HxJAHuona~=K?81K*U4&kFXQw@(QSEsxu2sD}i{t>^(hu}^E zZl1{<QB{QgqL&(*{=ct0*yMLyamVe`HuQi z-h)R7e};X+$MFhdhWJOE!+Djd@5yqxmI)_e_6hapcO_7v2Z0RzPFXE*2=)p88gCIU z!41L-u}7WZ@u%u9$0@uOa!mWr;I+n-zpUyz<{(rR-Xw5RB<#W0@lM2PfbuW!Ug7U? zz3@-CEhqjazd66R^$92AYT<4;p3`OZ)q~T490HwGKzk$}Cp-=B7M_ET3qOi;^ofaD zp=VTm;g@iuIziCwzk}&S-#LAq^$(4}DgxX3+Jv2WT|es+xKTKf+!XaP$)6g5R9q|E7atbR$6Ic; z`Qvev{}vmVOrUyz^}Tq-K{!VSXPvHzqA(BKCI zI^Aj)co_E*{tj<5CjTdVTsVr+nQ)u!U?M(0$hOxBugkN}?8o-67J)$|xAoYZN4o(f|uNGeWoAV|GWsqu)RhMvk7YZZV=AK=Y>b$is3f@ zK73kuDJ~dc%h%%?;dlH5>P6rqd`|cz&L3$TXwD9_R=6ELE}VtW3y;8iN7?!lu=9j- zLTab=&r}I_*o66b+@02|aL(P<&#Qdl8XRA2%MapC!l&>8;TU#!&-A8z|K(Hy6*h2r z0InACAr z;zr?)xTwswHvk_N&d0U0b-9}V?<6p~!dCF%2H}O+H^-K*QJ!o48jh;8{$HFg{2}f% z-b>v`Z>JzE$i3tx_7PL#f{2pGpG(6B(Q0RO*oF* zzGv;`Wwx}|x+Sg@PQjyh+4A0af$%82TiA!=|19SJMFesQs6W-A^>~5s7F;d-9Yx7_NXq$DR`M*1hNU#{nI84!CQ`5kH?MQSr_B7AFRu9m9QVz3opmx&e;5?u|MZO zHt-sOqryA!>GQVyW1N3Mn-MsH%Y-ju&(F5Jb)L)B?xJ-X{!Vy69@~G#CA)w-NoW)< z#w&gam3tYo`|z{EmH0K`NAa7&tML26FW|3*x8$+?qoYHY)O%T@Ka+5kF$+9|TMD1T z3Bs|1xlBa3Gfo!14Yv|5#I1$r`3bZUfdIZicq?u%{1NUT{5?(;j^^yBi}2OBn{WzF z7xrfn=;N^?a0@OmW(4x_T;Va8YeHM9jiNTmB>aRiBRCBYy4seP;8n(yKY*9FY%2F( zUP#~z8@Rk2ck?zSTwa3@UmLPIOkcu7T3grR=Y;EVL_1y10?*+w#?((5>T+#wGV_0L z0&lms3%ng45H7-Jh4064DLS78EWnAvOL3C$<2c!v4y?iMj;@xi8A0CvM{t7zZdys; z1{J`sV6OLYu5L+a7U9~at%h8c@5VP%?wIm=Y04Y5BX#~6oNMwacjt$kNV#7vAc4R* zkn-;Lf<2b_bk>uhQ;``{54SxtPxrTE3z^0vC67wR}v?KdQkg1Wpm?q7&v} ze-~HFJG2A%ulQc=tvI`@tK}cH58wv;u=cljB0m{Y=P;`MOPIIoP4%zgJ;Z1(S{|?F zAC=IRz;Obm1DQC9-vrIk<$3tGxRv%e`~p@xfvR7OcjMmL^YM9HuKhbalZ$qpeT@8# zcsb@nV2=#HJEQ6oD1NT-^0$czjgjz>^$;YyB_Zm`TxXwg)icLSZy-Z zo|kt?2hv=AXD?TQb_9-)5Umq##K*8&Lsg!Qe-aH0#TSGp;ETdD@Grv7+cd7yH0{r) zJi0q~_%MM-2soG0>IJUA>#4v&;B??=yb+rb+k{^h-j3CUttS6{TrFIOUlaZWZ}yA8 z*92Y{{sF%sd>(HVj^Taco5F2yjc`}|mT(RZ3g=`0+ahomfo;OY_#NR2yj^%Peph%k z-i6IJUWeZoei`qyva}CM*?QZg7_!l z-8fob>8Or^k8vC}Yy34f*Qu)Ve_?YOsIvNzU@P*?h>1My0p?% zNXIt`55e8A>F@+>eoN+U7Ui0P&5w1IXX1_IhYsT?*8|vGS5LX$^$3BTB*Zx#h;luS z4`9A~;INBwJ*Av({hYGC@Ku$+jLp}xUcR2)hRv@el|RK}(l}S)Pn|!U!5=i4`9Gc) zdEOv~5}40hW3O;moHWdq=ip_J+Xjc>l-1S+_{FDeeku08YF&l*Zq`=s|JM+haMC8c zfU8egzlrPqZT&7zIcI$UXByMq7r4}z6*`XH=WV`wG~X9!Gyk8y+={?BkDI19$q_E^r7Q zVa$k3#9u^)zA;xPt@mRWUvfpN`QOXaZz>7wB%pQ@<)ye5tHX@vFu7LZy}Dfa589#W z*6n&Ntb9K{Eb{+>dGe9-t(mHS8mFjl$wKo#m-vt2oQ{C%fJ$hE2MBk-`NG}s7~w2j zAUqJy5WXFk36I6|uv)&ez(N8`M1l`LE<78r6<&Z}5MGL_g`dPh;dQuHcoW{AqVKSy z*0_d1y-29VUkcaZfR+xu{d1{#Fh53mv{|R^Yiv|2e1%$uEy@Y=XbKpSW{ub+r8w7^O|m4+&xZM(Fdqu@ z_v-vxHrV2>E1eSNf%rDjfni~u9Oe?7FY+G>^GZK~5hCH)Fu#GvnQ}(pU3`}@Bd|Bj zpW}(5`~)t->WeUS6kO1D4tv`3$NZY(nuM!}bReM>ehI7jT{#tR63)VZ5*~`Hg(u+6 z!Xk!7%R*^T9ATg!%Xt<|3eTR|L4;ZNiluiVyR3 zVeTB}-eJxS^GInwYkW6>ZF&UMHkyr(;&ettd7-u%A@xG_DE4+_6LE&5%GYX}^5=0< zYUsBms(cg95Z;PM;BHi4{&%}RAW%u5gIWOo0zZS9q#Pf^C-L3dKVkJ#1qRM3kEdV@ zZlg>G+u}MLqumXEf|IrToW7^IpqWl!T zMEOwN!KjIR`~9oXwYRE0ueMVkUyH|4-rUUpsXAa1Zo(5uFl%@lE)_1oe*C&#;4IwZ zrqE@sY6KSHao8Dhyb906Ep`3|JP-SwGaP#KI)NnwoP7ZA!qxaKRe=T$Vjq{rPuBhh zt4rkvY5$Dda_wy^y@1$BoRng-546VlxQi~o5tpSg|39Py83ay}V76f%{%sGpw}gNi z!U>p%ZF)b{F2&z+fo^+UzY51^iZ#X^v03BiaW8CE_zm1Illgz3ZeTlsc_iGT{W0Dq z8u$wD6%Cxi2k~5;?=Ik|$Z~r>*1ig7aFy;r?N+$BpFK)C;wnFZCv-v&0^a`mB#|}l zi*Lg7b@^bt1)DV*hHJ4}qYmUx)P{~{hj|6wOa5Zr-YV=L&6QxPf*Rrt1eBR29dE{) zuzG8z%6H)!WA=##Tr2z&t`kmRXE`j~4L1r8n#}QcS_FznxFq~2_S~X7zydepB;k6T zB76d;2}cz2Nvd!=oF_b>kmGN(2uvlRKzK3s3BQOdg!khr;ji!t;R|@JaKb&ja}vJE zPhg7(jK@2KXXCxXPvUyvH}Fy6zvGiwP3P*c{R+DW=%WPxfIDI5FvR|g1V$5Z4hsTt zMeN1cyl`BLE3tE2Q+^{}C!C3Eg$LnA;W5}V(9SJ|I0Ner_+2vz6cBJ;C|E!xo*}#x zmkF=N3$R(k4fr^I*cDpiS8!>ro;}%Vcj9%pwJxv6+pyCC_0!*P2s9FK8l=Jx_zX5L zL>KTmTtWlt1SM_?+x%9y_g39tN4yue*Y1mX)MwLdIt-`bp1OQ2F2jA4)%;&d;JQKf zwfiBQk4NeXOL2Uj+xsi+RjM2(YH!5Fc(`^AuESZ{`>|)Roz4&ABCP5=^Zz#lDhVvq z75;-WhS+VMFqIPqY<8M7T#3~Qgxbk+@h03~dlWv6f2}z_o;Hs`x*8A zpF1%T$j`Tv%OboD(+{WoNxb@Ydw%dL&Ku_T9?|80!6%2?5&075jIbR%hJD!VGw1Mw zSlzkCS-?dC3kbZT8*DL+!-~6}mvUV8*y)4J_EO%M2A_v(}6hz@(7r1wis98p}Kq-uE(Z>S5*pfA3J@73j_ za9Oe2dxLf%uJzfYsth0Z6IkyK?E?=HSUXeC&osCgcP+6avIghiIl94WT#wBNy^X!4 z_Bh{zt8t9ZKZkq;WI9V^?4txfim);3Dp8Hm)S5j5~H#0c?Ruh=30}qqn<)%nxCs~biuzBIx zfPL7!ly1kH@DW}A5MIqaN}FpR#~biY?TdIph3()~_j3HLCSWS0vhgRp z#|L!zRD5(^=zcpYzYQe%8pH1^=s=*{h0zz< z22-Dn?h@(m-hI-fqFJ*hO`2Ukb<(6O9&O6=+bLCrsw}+7*F6*|nlig^ns55_!itP6 z{bbB5LMAWt$oInXV)cNprpEmDPb=23D-+AbgH^*zoQIu;2hEdJ!{g3VREu3E?3-Pv zo;s_0;PY#W;@S7!Uv7Fxc8I3D#8>KjpwJW>nbP|!9+*|}K;cwYN-sc0OqT9x;nb4i zBL97bvnonvn{-)ZN=&u#;#oz$@v z6c%3ryg^s7CKKwRnHbGoaMXEl{&uozSOZ} zQ-`OfHf?eSr@YYFD#5Qli0%_{{gqEjz2YgUf!6z@b7Gnv6I>p=bANP$JH|d+G?-Qw zU6!o+;xx-cvkIq|7nPdvG;wE-xv~dlf4MTM_m)tw=?SmFny;eYi{tw0%`h-f~e9%dr-ZND9`IVkaNzIC! zmi7f_zUWC$j>wpnp$hi}9zW!X3YNa>xhvV7?L>k^79~ga&It8nugZuH9KP&{4V*mY z=@&S%F=jYV*7GC=mw)GZKPe(}N~lk(*T=O8rZ$V2m>f}*J>BVu3I*=EHs&@}>5kwx z*TwuTDIz;7v#Bt+GCk%l@_S9Op>0EArX)ucr-z2gY4u-|V+xWZdNNdM<(*KwIV`AI zcCSEHtC)|2BUi*c$Y3!#YMq?L5^51#zcFS`a!D#3V09241TJ6?Aw9s zKaS}d(K|iEHr(n^%os+tSFfg~f&)$vip(t11LCwZ-5pC>@1owe=89Ia;~3cDEE{^O zN9^5ne5xIe;Mapy#XeaX&X#l9ik%!gF*&l=RM~#tirCWR$gGSkF%0vT$Cj|iFfvWU zu>FPDnJgeXv@xC5F1!<4m>kioPmx`Lw2xz_5t?p08<_EJ>>y{W1V;T5>j~6X#I|w% z73_Q>wmPX9-BZh`Ss!-?%}>t??HN0+jq|EqHa)c0J<~m|9Xm=+vEHMX=Eb#4ZkAIN z_$V!Ie{kBQxT_hpY_q=)oE_IewKYA|R*%QxuA{BqMWMEmHpE?IvAvwd1{;EL*E5tw zIibScAI23VNA~GynmW}O*N4H+E)Hd%y%^UbDOMbfft}aJ-NN?W5-)n&{@mrf8;T(I_?*gwR z#1B?a{rq=AJkN(N2_#<=e`8c!iMm~K?ltl4Jn9OnHKa}p_+X5>4&ox5r_~Ye2T&^}dHe{XEb2kKepr=gfIu*Lk0PKWCu! zs{#98?Y}9=xW%Upd&_5Y*f`#2^ZWq*!{$|!jgNF?*8I55@A+@8i8IEfGqx#R8OW!H z8ESrNwpL_BiYi0RcW}+sU0=hMqPxyDEBpDu0frin=D48bWM*TbhMNC0RVRm3SPxq( zc+HMFZ+o-z_hzZ4M)ZF42}<#jAVR5IJ~(T)n6-BH2VdgTYt zcSYZa4(;$7BJq$zU$=W)@Qa70`e;J@HCeH=|I@N)9AhlrF}AwjA>luVi=z{i)PN}+ zEsbn5-?T4lPZq0@8^vY`?i9G2l+OYN^NXvf_=0+8 z(`~n2+%jcHmr;fqRKq&uVwcc>-|E>WUemLoTiFX`FXqoJW7}%c3A-pA!$W*NtC#J( z#@b-B*COiLiYrmdxbUD*QFFdYO5pM3$wA1&_R-w?0)lfK<~6_88_;*(QJx6z(_vjb zi;ybOLn2va`B+|ay50fb7owCe!aML><#PB~FMG3Wx7nKj?_H)0>Dsq+XAHC6L|Ckv zvz^gYHgY^K7LmM)g>r|e@ounI=)BD_Hu|v7geMME7aJmitAawa5U;htgm3OJcfH@? z5$3t4EU3xZuFh4S^X%r(dS~fvQ@lBBRldibWxN%x+xU+&)B%xm6i&PXn)C{xaNAJMUlst|^%ayYv2 z2e-K`PVgG8#6$#?uD{(j{
sSWIrja~^}@uyO3D5GC*Q%PO9oo!!J&bFC4Tz5`y zXm%DhrXCqy!7j0Cc9B(Qq%an1X4X&)@iai>*ETz=npn-F^&A=IHJ9sH%}`)pHj0{u zYEA#LJl|$dyWNe>_rX2fblW+rseMR1e>B0Az<3%pyqJMQqGN{iAB3TRjVsEr+4?De zM9dtN+mK~9=C8~*l!=C&J%LC`U}LB~7~cVkcaM-BA2bv9Oqgj; zTVM=aM|?LlR3DTNP@Al2X6!ArfXZb`RL?%jnjUlcOUjKN?ITtU4W0*Tpyt!wp4zyKdzY<*T5iv&4XjHKyS!c6cH5cKY(R{;VT1RKfWnxDNc%{9 z$2G**$KrdK@^R0he4HZn>JwpX;5LV&-)@%0HpyWUwcnc9CJ#i=2R@zk46O5Vhvmxb zUOV_(%HO?)8lR{Ss<^ZaKxbuo@6H%#0-BVCy~hlifGU|%>#?ud`9N*g-5%Q;orCKo zNYiS&A*g=!EL?g$=8^7j_pVP5vi7R|p78FH6m6<*e(U z&Na=M9S=DEbgpWq(4vb>y>Fc{0bkOb(vgsIhqbr!Ov+knSRO60QxWji*eNZyYbjmJ zibuhHtCsYvNLLJ`Yqi6Xy{txV9}ela+UJ9ULV+lc_YLGPC~Du}`(m2=Bs4isHb%v_ z?Xajg3ciljW;kS<&0!7QjiGf#u{{@q9Za=UYN8~gZj3;1c^Uu%B3d@9(Nn|*+JMhH4hJc1EZ@1JYKd{eTeTP7DzTRwzRTY~Y8LPX>$-!&WMmfnnm-3MFdb zZ|1E{p~YVCyjckzG`IATrXX9k-Q@5=^+wtUp?XU&H!@pVO4=oP@cC~@}TY4J|5=#D%m-$ml;Ly-M74@`$ znj2AHnH^DA)#QA*@t@1R!rCWf*&Ccs)@Rx4oM)ST;<0Eb`r~pFTFj$E?`tywV|Aew ziwmshOO(Sy)wU-vbz*`G_p$MsH|mwy!#W8paTX2>%beW6YbqL~P}U{PZo-h)b4{!Pp`*=`54YK4D_Y=_!zTpJZMYJYZNC&WG;2+9n0?#WY2)39vRo&>Z}vn;sUFan=Vt@YwDEb zxF95HN!;8>QnDWQwIdVD&w5-!Ce|L56F$i@b?9hsbpFwFC!jVX2ZfJnpo#jWFykKT zNDJ#i?QQX0P*;7>pwGBQgr-`PL)t<9XzA=WHmX@D^(){ zhwSgmtPQANmdhTn9=1%djI*IddQ?)KQjI=>aU3IAg%s+m*YJaN-1ZN$d?QNfHY&o( zYW{BG)vTtV`Q@NS=iiOWoKc;7|JrD@CqEt+bpPl`do0rbLt~rjjI3CDB;4ON+D*xi zN800pMvf-#OXcNJ!CuE|lOJ!Y7=>-sxs}RSqu!BOO?>0*qMMcDqf1I@?%R)q zz6o;#W-H9oFe=O^qsvF}Dy$I3q7#e_I*i@&rffUkRPH$Ch|f3Wm*<ll@9%hBx zZnG^H)wZ=PBA~MDU|i=?+w#zS+SHk=k^zd!xX#JTrRrg}s2pz=jn41}IbKRwmMkYMOToIr#H>|wx%Z~F%-TMj zdp8|UOGum0uJ~d$v#qn6g{5tZ-CQc0+itLj+WlfYi&GY}&54s{Cm8I!k4L5G<6W7u zNQyL7%8@>mS=DVEQfNxP=>C#pkmI~rRPMpX#H(@@aQQBLiH-+XE~;F{k z*P_~{MblixLoep{POug9h_NK{U42Jerh8YrLc4OtVP_GRs&12#7uyE*on8>^J$+g* z-|jsfRa}s~NR&o&tvYA!QkiKF9v35;ZMFhiU(dG8HZ^#lJg{v*;&YgJ+a+pfhPDE! zCD6al*cLZqbBEOi#j)C7(#8)jn2e+k9b39SGXRj zH^9{cu9@{21x?Ny^-UG0qEJV!U5xVS_^jDSu(lOww*F0I^Cm;WUs&|BYJu%vPz7yy z++9PAW4x@x$YgX4hCP%u`tSz_sC#6g?_rMH#=@5!WGxF&j5H0(x(PiZ8k~W(#xQGw zcYM9`>*k=ab_sl6y|c2}2Bn{G_rN4bu3v5|KThbzy%fX51i9H+RHt+v*)2R*-(kG0 z4^H*Y=dp`uySv`GtI<6;(GEh1?ir(eJ~0F<^=lLJ_=!W0Ov)2-lQXMMshm>c-Q|h%j7vt+MH#gIf+~{mu=P|f_ z_nv+F^c&2ACPhCgcRxBhIxXGS=={7%nKQkBmnl`#JBnLP%GK%nAZ&ebC_xXV!5%Q9 zr+BvcQ0j~_5w*5~)m*KmGXTaJj+C$puWJ|27c+F3wh8897AaSKu*eiCDw~`;n-uFT zzfNbGS(i?B9@+t$&?j)%LnAcpc9WMY!)GlO1D7lB%_O=%PFKjVcrcQ0EkBw^cRV?@&b-v*L1%7Isa`NFG{J3)C;fG>J zVr_KP7}w5#T~Yttx3LftHhJ{m$w#w~%g5WvRfB-_X_A2*&1MEdh5_l;q?9Fg^YLjK zHaZTAg5z8|I|8t!NjaJr)}^-52LB#Wa-|*Mjm9`gte2=tfb>TrwT!Yujfq1!FFQ1N zP9PT#E>~tGb)&DPNki!Couo;ks$Q`qCk}hQ-a3wTx$WFl-^1PoE9T|(maz9O$IoM- zOlEE4f=00=wle`t+;*<7PY)xXYg&BHuUDQ=?j|=l<+?+slPfv3yj`jOR;&k+p3!`$ByAKQGp&h5(6OSm zLc|x3p-p10fw4>&tk@zgl_q^QH-M{m4*M^^bKq}=K@l16g+BUvbF=go1+vmE9ZMej z^?_!582e}p_m0Jq@PKkLV`#TE_jB*5Z5i7-m3u!x-;=rbEPQ7_#JwNJcjFB1U9wCW zmD$73dm{IKdmIi*TRz$2xwjhnvE1>{_RJB|xTC8vaJ6`7Bb14-dn@@xz9ZX?Ga>YD4Q=8L4wEg~;lSZ=^f2aIoS_ITM>_=otKdj(oc2%0*Nd(ZAGkKZ#kVm6mQ+nNzOKL38}Y>WI^ z{ut}*s<>?H><5cG^_mzd&mI85)BC}~ZO@42>d4i6l8h?Q6n;nGafp7fd{=yAx#5BJYO011$%&tn(yy8l`kA>)d|#!`xd2><3c_csfp0 z`zoQ!eR(fsepvwDr>rUq;p>zaVBbmGb`7Wdu@?UBAE zE9F(vYO#T{pq9{1C?l7J@Mt9kc7w7E_HJd*vMxYAS{7nhi`LRf*}U3URL)hJmUR|6 z8A|8n{)UzD+A z$)&6eFr35QC|t=e^X2KvW^g&mn=1owWAw?&?!AM+*;^u#Rw1g9zKf|UDc849M^?Dq zbrhiluL|IolmV-{pq6H>3KX^^W#OuBVqdPZYn8v~m8%?q6f{ctan-=~mATlN-KCv~ zGJHiZ^|FP^@YS7tSRSez9^9oAm#5^e?kxNYl?|)?4Y3aHeO$?39oQ*0pL-|6pSvvF z$??lqeq8N8pcg#e-N1Um``z-EMK0MLP4Q#g`#0s{sz8HZH=H6==)mtseh_El_xQApcMaF7Lv7C?m_e^GYQf z?n%mexGyM&%R@@X;I3DOY$#IaP;9<1yl6yiV z?lcOSVy3zv`AWX>#TtJ@Ayn*CXa*}OD;#}k-vaL48Qv)2S1o#_J8D{RHf~c-3;MS z)6;_jpZH{eIFYSnKG}^YD(jyNFyKDT+ef*$)mJ(8q{$HeI5mr@TLKNo7t=sH)b%4tGMzmHRdz&ts81rRs?QgN*jlmXZ@Z1FeB7$lbr( z(fTED@99d+#sEVheB4B@2*6o3W80Jpgj9);hM}zlC^Z}8&ih*Q|L;J&B?FT?SB9&d z#Pn<>Y9qepDdRSFHkdGU_NVCi31u0g*o*SW(d8`V&5Z#a_hIazvL5BTR38A{iNeZd zV<5($#*HEEXJDG7guCnH9OjU8>bxQ@Q5n9$-{2U-y(cM;r~y1qS+*%4bUGq+_XBG7 zClCp>aCZP0OgDuXu3*8@gQ|=dDmOL-w4aHbQuJXgA*ZcbH1V(jdYtdsVG_D_tRs1B8Rd#67 z)3|-_uuOSf^%oJ#4xLn=62e-h%-#`&OaC=HLd38#<&_q=(+vOSMcm^Aq?JylEjz*A=Ee>X(vZER;Pv5NOJ8Y3|GUpb_$|CUdajq8wxl{W3y z@A)Zi^n%Xrj@qFg_z+{8wC6Qu4>6_H}HpZ0C4NZ`gX2+1V7LaNy*d1wpLMLsvC1I{sMe`JW? zxG@VAQ)?za_p5G7-^QWSf_{imZ8=2yZFR0Cm`M@tg6I7Y3@Xt%Wkg zv^)a&T8qklV}%&QEjb+^)(HN*x0-)gbWq7@4T26EK;Yjqn%CKnez z)lxQ#dC&^bK7UFNCqV1HMa<+zhQ68;=}KbdRxw0EGuAfm6+OAQ)khnmLfuk00OL=+ z;Nd>%GKpty~V+c#c-lv_fp!lW?(I&nRbqJipLb}dR(qPdt3SLUyfpp+ zjvS3%DD>#zROoh<`o3E9p_nYJJ++e`iX3h{f%&Cjgqj#AiqO1w7WQ;~?Aj@O?3Oe{xjkJCawC&%dt+6!Nhjn&TFeQ;O63(d3FY;d;Oo5FsouV(aJ9_aWY9{lqo0WQiCW`j@)SE6o~{dC z=JFJ*+S?owOP4@Y+gTn6K@z zQcyEZZLSRsF*ted6iB z_&oSm!7F(?HNTUoy{qqj(q8JzMMJjM=ufFGo~Pw^kd~rhlQ4fA|;P&Yde#|%%xgW2qEW|YN?@mB9~}igh`3q*bs_#xY|`yMd8vAabmFg zX1EkBDq_`N!ljuaGFH2&3I`VGN@`l zOdu+Ln>Kiop22O}=E>A5;`%t3E#J?nqNFZC|4FAoy3b=0~J*EUw?w z)+AA=Ti(FYv~>l9?BAzdT|k~A zUe;z7>Fwb~?f61+oOnTtC??NwFKXKsAso-}*U$;B3VzAZPW`iosjC+AxD|2(@nnZ-!b- zG>WP2i160@mXlh<2ikorP%*}=aO`jY-C9f!i|r%Sp{t~hZMKgD>!?mIoYF3@hr@i~W9VbH`$YY7z0_HKKgQ&#DI1|}+>3ST%+FjY zqy>hE8l~DIq*S%(Dd`h&sZz^-idtA!rS^$JZTCWz)^V$Zl}QII_0N9g>Jj=RdE#kl zOxr_tT2s>sG|XBwTJu+>S?CH?TK+Z~SgwAl-Ple^o%xkE@fqnMZoG<?Q)V)YmWu7$;zZw<$!ccwOov8~w12-Onu$lLnw z!<6JtahUtVqvSdZSL74q`Vq-~3NCM-9?0sSkUAEU9?nc*U(xLZv^s?G3i)p_R3o_4lu(FrOh{W~DeBNg25dnY9d>YSj(7 zvl^HrDtppV%!@FwDEWkKVl`MdL}y!h2LRx9hNZsqt~T&n^a5^FN1l_qO!vUG6?fzn zrX(#`n3lAlFr}a{DJwmP>BE3QG7&vXr!xu`W)vhLX$zS3VFYK85FT@J1!+lXsd(Ds zg4MWsDMStYPWsA1heg|9_6zmUd8u1Bw_FKT>2=}L$ap(8D=8_nC^s!BiTQNp1}S;D z+I(L6vp*dXMYB0W*e+OpF%l$Zx47d?$UO7X2W3&%H%ATaI}}^BsLri_H2!1(ji~ zj#AndQ0W&Ip>zlM6GQjxe3pxGWm>OzC74KhD&^2~q=VH#dVS#C6j$H8DE-yjfup^Z zFwwY57_nRM0wcAYJcp~`lJam0;Pz6&)zI6RSFZmoowv}D;2fCUMzw9VT z@q={TQV6x3Fl8q7t6!w3nQl25zOqw`GBcTVIh3kMoRTs(V`O^zG*{B!1C-RdDDr7w zy8&>#b)g`3z|78OK$io>M|GT$0@a>BN$1rGze=7S2S1>C*{RO?Rq8BmMyX4Gm3|vZ z2edvo@b@yKZk`uB*ywm{e!rx`yt#98G8lK$mk{JEFnY6SX?6zb23m!>>{scR!C5#B z-UYLcf_YAGPh(C-deU4+c3#Vf?Dim|7w7@$gY%MT^@Gb2eg+Vw9={@88BK@CH(_v{ z!V>n1asTG}xiUe+pqMuoz|-V-431(r(pJGSjT~Fy$bdtA!zc%-KV6YN38o|JRG2af ztxWWU4>$Cdq+a_&x@?KVsdgqzrKkGif24p|w|ojA%^Eu;VRBLeCX~@Mk(?OJnb_>G zSBU2kP%@O#Vff!dat6i8Z8 zK|w}t(mi3#F{n*7QWvi{8c~LSEb%hlUcK1t;UCHMfJvEd5l;NS0thguIX5JG7xF|g zANYTHlnvU~H>4mQO!x1zC=uy-kL4z%(l}kgLLHaRDZTpuL5LgW_4)T(gl9Q8) z(G)j`A=J(ihJD)R(1D3QYT-x+>0(;^^Yrf%ZW7HGo@n)^;VBLr4Fs~ z1f%++Q~Eo20}_OOtCA1Y;b`TV674HA#1hi=?aSdcw8 zCh4&htnBo8&>(%(iuX-QqeelCGlO*UF8FTmAFH1=N}YP0B6`+>822Ey^9w4tPk_!^ z(Dz>OQ`NgkvKc?q15~THsePN4I8M8ue3RKv-Owa?@XysEc;#QHPd7=OO<(Ht1AWzJ zo1}oCN?mfLzc71#MqW{C1O7_A-XwL3J4-$&P3ak_Xy0iWuKYZ&C+!=Ml(hfFodbte zv6>>w7pKtGVE9~It#w2lluP`kFfK?-$xZ6tuOH)XvKBRvnC&Vn|BuBk=p4_)oPnyE zpRxcQhYE25ZUQ=-+`3ElzyAqo80atrd#{&X@Z!H(+5mE|uCEUkcP$b-!b8g^T2J4k zD|lbDX(ZZUAkueG@PoogX`_`E=9m^T2Wt1mv=NB?O|i9-vj%vIM+p3|kksUBnAnn< zrO*1&&8Zijn#AEGb;M@D6=6)x$w-=?m!6SCCBV4b$I+HVxl-i44MS=r8B#nT_%$^| zmV<0=_#Aw@hteX43mRhQ7_}hf=tR(K}K3e_CidaZXaGI zb+#;D8BUkLSup!?syO0B!N(iZvWoAXB;6i*VNvm4eMK!Z$bZDq1v7;^CIn&Z6MRHV zq<2lVZZ8x5XDF{2<*Qxj!kQjA>_#XF%f)gOup6SQ7JMeCZ+pl$OX+DXcci4_9A-h% z1b07MucI{T(kiiaIj}*8$KO9I>4E7Zr{9l)a4T%onVh`bxwPh+n}l_xtH*94VwNNC zv5W#Yv>A{C@zFRo7K4(@<5PMFEeRs(8H>f`F&qs5&0QNwDFp>7i=ia=VLzkv z-TZ#2W@ANCl!4dCdUauq=mPL?mw=nCKCqD>;HOrgp9?r`QbQ-o{%W7L^4S6OD&sAf zYKpi)aEoiKE5dG(aW~n4B0&K$>x8qMEitRH?c_c&6M*{vB4VK(4};~h9^X8`%)efc z^1-|C!RD8?wUhb%WqSEJl4xkr_h0iDplt03*dVRcxuONwj^0b>cO|;qUBa>I#SbLp zz(@Ylhu)cd3e!IvIe16#`;999*5ucdyNOMddc7UH68JXBdKtQ!(~D-c&s7XW2<_WW ziI<(rsy3DFtlAYl06{ZN9R<*J&uz#^5IV)2v2am4ekIU#Qjoztn=% zDSlA%!fmQcEy|)U{#g!IH~PundwlUVWs9l#?d9JsCan2(!Nhh`)BWWxx=e3t)>+ie z{&IHp+ zsF-!%m`rNYa`A6D5OXv`^RYa8OCU4*d(!n^I3w&B;g1_K+F#-vi`+&`xlE}b^fWQ0hD=I@{;6?gbZuSpOwVH`Ai?CyY;~JTn%T9l** z_R>D>CWqrPZlqe%UACF0V0%xWeQJJ?JYKc-ls~ncz?Nzf297DC)YwQlD99~4;5WM< zWA2@!))%}~2Yi%11txL&1Jhh90{cEG@gL4kBA9PrxW)~+O98Nqb+A)+l2b7INy!W6 zT;$^%`8vuCncV?o44~65`z7htExe8b^9Ql-a&u<8zrhB>V)o@S>HY(z7N!)Z4d%O* zUy=*|;_Nmk8TsHJ@iv)T0c89OR_Y;GY#_6Lq=#XG2Mc*R2~T&$|BKGr!1N&Yi+dv| zH&6t9qL3_7{9Kt7eC_%qif-W@%jd!0X?@NuB z76~mIQ#XI~ze@f)9J6HWKJ`PYr-B7L)<%u&B?p$i3~F|IHqN~1C~*Zz^NVs^($gfR z<={NGumyR9kd*X!Nv#?VAodHA8Ymck%I-ZAhL195ehit}Yju1!uyn#loAU@C2Nh=D zBzyP@R!T%Bk@uT3!T~V*%km*Srkw{Yhw!oH+|TsKwe}C>kWPXP0a!vrf;sa6$jttO z{3=c;mjc^F_&9Uk1;~T+SpJs#1PDg>4&ug}Gt(h6`v$|A_JZvwL5J8$!~}EhO#onC zG^F_nwhQ1ZL`*hkDv&WV=s00-5kAF@e`BD05O##{Y3^)XH&8a-0d|b=>8;s#!Z;Ma zfgtdU5*iU^m^1U}M-lda89#0-SS5&`N#h}NUM=KsJsX7-~Vs)t}fzXeT18L+Rc9^k1e#Nw7pPsl?{C$y@|E^9fkYeq1NhLF5pbe-HVCsTR*X zh*(QxL7U9>xM$4l0*l#i>zc(N%7`qwTeH-znn{(Ia$*9proDp$y~J&j9jjV4d?~ zr3hoYWm_F*M4u)v%i!e*fXoxHQ2v(W2F|_$bB@^MU`qhxu7w5qTMMh_>^o4^M6Uqt z48QY zL{kiA6U?RA>T9uxCjO2hQOikj-yKEmTCCiemtMhd1v)&A1JQ>uV812t9eAdd=2|7w zIRowP++Gq9;JvfuW{Tpbevo(-;oOGdJ25wQ!O0?+Ez-+f1S8af82Gc?karTmQfOtK zg@f4-b&*Dfp+|%ECoj98oCJVn&L>;{986SL4rji&Ph~uv&|V(Ag3n7!p}_XKS`zP0KsN}n@Rj5 zZ8E-qocbdy)|c6vB;Wpm%?6c7baI=FagbAI!=lB+v+~Bif-MA9LUg7%;{@c?v#{7S zWP(PL`rD zXn}f)=mK*_EacR9Soo_P_U(q!UYPno?IgOWO~w((sV8Bvg&1!P^*u2Ef!a-Uahr_3 zJwcCx#TH|{F+3J2*z=E1GU=xgNHhXI4a1|%nZ9vIj{RAw9j-L@0Xs){A9LP_ ziKT)$aSqMwZ%gWU!M+1=iO3jp-Y1YR>D<>+$T-3F1Fs>jpE++T~DGO7{Q`|#S%Wkoc9>yRl3e*! zoqNqt`p`%$w?RxH5=*u@0*dyNI6d=!0Y$iFa=7r+91c-%k_K{xtQnT@IDDcr!ve^ZqArfOHb3e>$T2 zRPZrv7A#soW7VC+akrnh5Gp9l*e16xWCXcFdh;O+5dgD@m}1C1^N_Z2Je6Q_fvQcAJ13ZYXs?pu zpy?I+p_X!w1ZuAll@ANn4Rdr4nx_v*hKw5kn0>8OI9o6Rdl7M1GURTWt#zJ=Dz^mT z2?70XuyBDoc9Pt;RUYP}t(YVa;T9spVQwu@Kb{N^Zh4B^1CbFFLZLc#Dm=L5bagk6mgHRvbFN73GhJ?9>Xz3*`QCxj8+V|04V2yU1pA9(XcRx?2sRL5*kNe9L``7YcsqhNwQ=%U>WO}C|2_dk+{v|(=f&_s1jo2hZ=F5O*3SE1UdH%Ec$34JScbISu$?B>Bf8C zW2k1Q;0}6_lH|zFO~NmP7S!vES^CA84!It1Bc@y%woSGv$y{x4iAY!XJR2gk{skqU%ULjKuV!!bNF|(r_)1l9uKgyX1Rt z7j^@I*$+$qE=0j1zH>1Aa|{7L0m!@ti;hZ1FTe_~6x0=>=}aUSNL~r7AEA%Ui5|dJ zu>X*cs(S-aWeR{8nM(JoyY)ZQ_1~7i%twC!>rXz;z{g(z@_2z@M|B_P}WBlP9Wk9*{q_P2@H-m^x%s%2#;Zeu*192=IL}Xe{9!qU2X9Zc~m zkt0eI7YQaXt{G`;dsP@RmjTGw2n$CIQte}c5#vSdYhZngQ7oabKz|^SGEqK6zj3c} zwXW<3rW3Jm-m6TddK6m}Ej(TJ;g-|*L3a&|SGnqyj9o>m+#W@W7k;j`mjG$@J&k`L zA=F7)Uut#%f}KVG62Z>1xc~46D14jD+ zJtZc@(U#h_Dhzp)5(hlrNew%Wg2M5%);(Qr$1U_@_>(XZYt@o8*;eY7k5M{W%PJDj zQvT15<|}yM_om7pzV0nQiIA2nH)?}5P(n@bULx25M0x~BsuRVTL`a#%0Lw9I|%9C3_j_B9479d@VO; zOa*`wJL%iiSfm4dorrbZoO=rZm~W-WRw36w4-&HhD%$}t`wb~%rC>(@9wlNERE7Zn zvsQk8ITqbOcM7U--5;QH*;Leu5;I10dfSufDZ>v7w* zOZp9k<%Z57YkAE8VgleWmkHJxj&xr*L|QOxPl#zf;i!dAdy{ak73>zmYk=WFRudNYYEcac&`lrm5qzw8i4VPdX8<3`kqeWv5v|}WiQmvqLR?QguvyE?&CH(5xZBqj#Brw~{6G>`bo8KN4xTK23OTWL z?Rsyc(7^rQzG$%@jFtLt6f7PIm_mi(M43GZfMukSZLg9}ug4yR(ns`dl-U&kx&N%! zHs{c?^*G?Y=pV(K)T8s|&ZTa-=AML}$LcrRQG{iibx|y5Cn4UOx)MU}87b&b2i(bv z{dH-+BG?y*trPV|4SVCw0GR!hv_{329^eL;QvMEale-THsEd;MDXeY*N03ehbb13| z_Ij!J)7S?Ae4dEoP?-P#%oh2DP1tP$^&;lqQ27J^v%fA^ZNZ@u;%}gWz$Hg+4FE77 z%ak(wBHnw(0y?z*v^8lLWlCB)m`n=n^E)ZKEmO*}fX*YPvNdH}43x5BfQyMZb0=l5 z87O6OKt~btO>4?NHc-l@0GzgfPxt2M?1c<*QV=*wEz{WnfBT*0-J!Y!M!( z-5H7Tx_&@Mbzr_6JL>!G=)0T8_+OIRBB&CW|MO%!6PnC_g-p~R|4l#8Q9Frx zw^-=)Q}|Bw(X-;?ooK}^&`|`D_d9?_a{LX)A8@3#dluao4i($Usj6dy^m%{!126Q4 zmX1*%pNh@!>V~YHpt~PHS2$9Sz`^x9zGIsA0<2vv^rVU&dyaWlEiICxO5JiSyl1<9 z^S&T^F&2>Tpg3N-1G=8_9|yPw;5}tD69AtzpURMCAv{2y?Fz{CzK34REQA;R(|{v% zy1m6|pdl(MF-prRl+E0e{xr`y>@WN8V)`GUP-i?Q_lzTy{!~v7JYUOBUr@+=hVT`k zaN}f;`HbQY-A$?W>B*--xGPyhcx0&h!DI4(9uz_~jDgA}UT zishKn8k^qB=cmwmUM~vD!4HID1Bdr3N&Wh!;y}v9(bI@e!TGPy|EkcBh{*k9M+404 zI}PfaSV9BOfx(HfXU3ZVu-Mj#rvYvw;$PgV6Q#`lr6KJt!FB@OP0U`*KPv!0=Zda# z3h1ZAyxyXN3sEDfd;#z)BHp;8@{EzS?M0@t?__;5#Kc_J3lR*BRA{dC-%=2>^>?pSLXXi@V&G0*fQ-E+->>N%KogU=D5ApiL@b57t-|>Ly(yp4w!!(f7$-{3g9?~g< z_rM=8QD)=8O(OnR9^lF>8*$T_)Z_R11 zpoaq72~)~n2J;jU9AxMWp)ZokE3L#D%lKV_y#nw65wC-o2Y}h1w|Kscg$}@Xh&TYE z2LNV&-}2IPxP%0Ff{24yo_+*iChCFN&spAh38(cSzUW>G_ARJY0>OQR<>41`MG59B zQagf~ejxxbPkMU3fQAF~EHOu+5&{4P;Q7YC1p5ZyIU!%r?s zfT^*ttqW>@LPD8hwTD3%;GLnL*ggJ+Y#dihsA?e*2jQ(|RFe@pTO+KW1T1{Ol z=RK4U1Q+$LXRcYUP8NGNhD8buR9)RzQeI{zok!@on?vDk)WbW0Fx^Ac_z*RsRE`)) z>6?WAwe#G)X>7nN;JecJ1BrL~{-+TAFZz=1ICXQWJh>yi8uqW&kueC(9m|H!Y8_%J zr5G;2WZoOg;}opxvXKfj@!nYOgE*)42Ss`o`INPs`33m_u>X&?Gl8$^`2YS{Z%!6umqbJoNhCx>68jcQQ`A~ZQA$E06bV8p zbx~Dqtt|#cX;o=yX>qAgd)3xZYa1Ghs@jX9mgn<5_e}2O{{Fu{&+~d-&wahlz4!h7 zerGvz=FH5QnKLtD0Or(M<=6GfZ0AHRDC}oc6sCJ~M6YlDNGpeYUzy#SsMS(7RAy0= zwCJjIDzv0qO*)+sqj(!)KAZ=?SMdV0=`3fG)~_lV(fV%XOv3@(@J%wD9?}|`1?-PW zT1)#roIV-S;%^U8WoBK50G~GVLvQ0BiD@0UOHk$cAfxBQhm3O}bO)`3d<_oyA2fx{ zq5|#35GoSZLHaFep2(hNkPv$et`_#PYOF}7>1CSmg%`B_nX={e^$aHobij$a5V?m_W4>f zR%N^H!SdhKc6-s%eXoqcXzK>nWQrEqhw~a#+`V#hoIN#k?>3KyAbU)HcK-sr(v_7p zWI&$tW;jBYCgZ{ncFJm!@sRvH7`cRD(d^qP7=!d6C3Wlf%^a4QlIFa5?vgLrBSz$n zz=$Z_W9K2rn4-PELy=xb94FwAj~PMPn;@XEz-`;ne1&i_DUKTzvwwp?%GjiJ+oniU zA)HBy6Glk(cnGA7liI1RinQxBw8IaO=7ynXtA!}d0`MiZl``&YFMo?77rJ87-+_J_ z1X&C4CB1^ad;REUJbyxWi}aH`^=$7g&{x8jl#h`0=N#yHgYGfuCwtb(wnLCL3tu$G zcS_&65k=W+{^*)Rg3E7uCS~7+Bum@mxc(NkqG?&hML0qnEc9)yN=(xxvczRwqs!c) zq>?*nc;6Ny`kh$BcHMAZPg<%m1;=6sn>0;}syww3=1^I(+_HX5ZRGfF8paNzX}QM~ z9Fd!G8+@lwl5^2`ILX?y!y&&*5e$S!)p4xY%xb=;g~xE74XZ)@hvdGc6Tt@! z$;-<(XQ@$(@)23ll`$oBQ~m-8CTE^Fp-5lD>p~pztDZUPNlMI3rhFG<2S`4Q%a5po zk1J9O$m~U=$n(sZ1A&xr*;KTJtP{x#xcsU5=olVbA?ro*F?vqyPh`)u_m85x46c)JDr?0HBTYcaBa{l#{If)Dkx+MNSr*u2LW?G0mhs1p9Gm@pNEwe2-^hDDIN-Gn{`3 z1kTSo>xPh^O2MIh$F9#sfzCM*IVj_bLXCYA`H~M9fp)g_C#uw>Cs_o^JMtF&0`+6m zP$a8P@=kireyXuD)~nB*LOBFkGRZsZ!v=!Q58ejgHJX73T*s_=T7c}a5k;b|PIRoE zPdR@g#`@Z!9KN`l9c5ayopU6S>iZro<$@nNKHZ6#RovALWI(08I2jj56twW zx3Q@f90`pS{JBcv)@4=wNR_c$t#A&rP~dVJ4s+PFJ_LB;ELLeyn51(_vq9CZLE-zV zqgathIG+?Wpn3uVc!t@YKVwE9!fA*@{u!Dm2%z~~d-)f1`9PXMnqQ!K9Rg_fm~JR; zZAo+1>Bez;ffgfsT>h0tN_IHH7omgBPRj?|@RWG`5Q?9Zy4>8aeWz}&VQ;S9j1%iw zIjXyy%n+hD4`nar+^lanRV`@R(Tg5w5(IXr zzEby|N2eB46Udhr^kKh)q1bQEPoE6oTvEKG4||AN5TEu?HWxP-vsF{(q!txXv#Q(*rm~YaS|RPMHZhg{);(Z zya=*$Bp;v;qxs@+@RvDRoP;H$$kubr7aTI)(`m*&$*z$+m(SQ=q0@~0=WjrGpA>`i zVKikQK5f(Kjfe*jJ|e~7()s!)^zU*0B&79}@ybH!3lW>06B+UsVIl)95d8qhsw23f z4%ImeC=1I$IOhOy^=VwuK_oUS6W?p-z=}oSH;%Gt>bN8$5%^f_Q8(h z?9@kEm9#(#v{?D@2AWMx5pf*yG7S^$A%Nzd((*bc<3dVW(q#9!?x?MXQa6gJ`3ZN_UPeRLiAdfRIO0#SuRhTd?3~xY(t5BgMi{ngRK4@( zuq$z5PoCK~cMtY5J^eb%L23YOfK{)NSWv|I3{3^#L=xo;8iIiZ*GrID5C*@cHAF04 z?~E^cUo1*)Mbar+3zCv>FbU&G_@>s&683aX@1ekyIh}A`!5?aL0w0qD)0coa$Ep=t zf*f%WC!wpf4QkKK0sZ@;chDTpAg8)o=(zbQIyt>o!QCMok54n@Gc7)qa}1q*X8(fG z=E$hOuZ-R(j4GIGuJ{gkph(Yy&5th)!^N=3CglRzupM}PYsqKYZhK^3RF^nPe!-## z?`!f!v@S;v7}+-;Z*t4#^9r{ZLm?H=OPADO>W25kDAflRpgZBgT3M<`0z8OIzA^t` zh#lnWP&Hj_hkLvUZY{e)en>qF*srTJLrr_6u&b-IddlzBSk=|orA3c-yt3dLCw&q;7RTdUQS>(Gk&T5n8_I){gsP0DMJ zG0bO)R=`ExJP6L4!=4I9mV8hON`WO8HuX<#Ev0lNt>>~zdOEOo7RLAhG**>r?wd>6LK*fGsrG=PRFZOG#Q8~Ks z!MoL6rr(aCUt_2*b_ie!j#VW%ixo<5#FdN2!w2)T-x+KB09>YZI3mv@Qa`BjW6c?< z>=BtG5h<=-40mQ<7~a`-rdgXBrPs+Rr~yH*e5@_wx|Pe3$n>di7I|l$)lGP12{Q*I zncZVf#dauy_p21-mpG_1itfjwB>rA~AEK3x%#AdbNgF0S#!*a>eufwAtw@`z2uU(m z_ogUXJ#fw-*1AU;oi{?x8V|zCH^uP!5sn^Z7x|I9dO6e1@obZ(%LDG>T86-^_XWh_ zsUn}XV&Pn%gKN<#;}!{8f4=lKreg4EnMjmSB%UY_;CpaCNA7046W09!@+94c#R#fR ziLwV5or_}NTiyi-7SW$;_%ojVXt?No@Fyz-f8vH=UuiKHQVG3tsWn;hRxKo|4Pp>f z6DGsP6qK6u#d;ffKOCz2iDt2(oKAGi*s6KUsnd~B*Wn1ih*R69^n?u;^@cZDSpF38 zkIs6Je!FT}YyVLk2MaMW_hLFEx|%W>6oo=1&FS0 zrdM5^Dsy?M(I`T6HJ&xyu3h&k#&QZx+v1_+cUI>+Ew+@$*JJ~}(^@L4YqHhfX*axb zvBys9cIZR6!j|vQYS}p#(%EA`y>!}4$664WZ*vc!u0$$^`;(|3?^RxfzD8WSEZMt6 zyf>Kcfd~@tRakytfAd1E$pC&to!pP{P*Co>+0JTNFP3G9skvK!)0R$F|@-7!|PM=N}SSzRzXK!&5W zyp!N#@GkoT{`9|tukS!;``a=s0IqMs9HA*N|V(=@P*sZ6HM z&qUUFk9OH>RW1q$9IdXhZM(H94LGl&%j9g{T*X6WN;1%FCDA1hBr3D;-Mw1o!gszG z;LNq~-7Sedzel^}wHaB^A7{GbDr>%1OD^S3$!y$SZA1WV^IYb_zLUIZA5}!OH%$zV z#(%PM-)l)7Ib-Lxvib5J3CiZn3nUsaYUog`0YRDNM`AJe6ehEGzt_UFiwK=Xp2V6d zFK^e1YS8{T9dOM36L;|f549a%KFH!?fuAv0} zRgp7n&VEDZ0}9tBBix=shvIWSD%uPEGR`R}hAJ(E`yDvsUV2_faA#O&zl=W_XO$-& zs`Mpvg*cQ|x|&lF@|lD0a<`b^ z)9Tj0 zyBea1sU7~7#`JXrzZrty@6@m1+l%mx`s$tK;-^sb2BkRBbyrM)E4VqM#=w4X88`3q zSVKAmM-Ma{%tBV~rb)rmG&9aD`Kb25Yi?)R@A8XyfAkJZIi@u(<-5-4EAOP5Y2E16 zRI!5`XCR{wu=EUa5tsI`a3<$4O3tnk!GEjddp^5%Osh1k8q~q()M$j&6bD6#u7Me& z`=()ch(;fqX|s?%~`|Ld#??y zkP&HrtLZq>@3O(iwR&Eh7pFSDIIcC5Q`Va|A1&-PGP}QXz0G+Q=$`x9R1EA}nv0x^ zV9NRI%NWm4Pv4F>SzR4Ji8Vc`1slCgS}}?BKB?WX({5YWa6EW`2V703HvpRAO^shw z-JE40W3do!vJNNQr*w=E3b~Wqv$PK(sRiZUF&W3r#Wr@q%i}oYo9N^cmgu-{F3~}n zpGkX5hx%YKJ90|9RxRAh(sq!Cmeeoq49)e^gdU@u^`Wgks}Au zoH{HhN>4i&kd(+U35TAB64lgW3ac|$gr>3aKWo)1-&FiMVaT&fcUQL=xghUvr8-xM z`t@h+#{}93Z6A&v|KRN2SL7);ySz+{j5^Cbu1-v2H}7DHm6D&eBQ=I#RjDaBO5mo= zbY+#FDsfRe#Av{72&k(-lGd=!XS7SHMOaHFBNuhtV+8W0ig)sDw4KJtLBp_!quK83 zJ1i5+8p+&nNE*}6X*DaJfp^w?BInRE<kbU8~m3^DdR^@DKV-aWCa-&vtn0!I&9CrYY!r%yZ zGIH_z2-WQCg*2m7YOllcpK4XuxRY3>2kTy;+hAA@#yh`1Nu3QoY|L-k^)`=tVdxZ( znppIRo;>ZLs>DU>;A_r22=bQW>psz1{K?shudt0uG+gz@u^*UqFqD0HQM=hGxhD!a z99XxF)+D@IQI)tTur56C4S{#z_!>zRN0f%IexR)8_#?k$>)!#t^&p@RyZyU%(Q8jD z^j4u<>7lV-E^A5cIWLCQAgo_Rt=sCpl60dUINw}0cBth4R4O7KkUf&tbHl*V5){4QRbPzvI`5ADkYr5M`r#C=ApA&#FaL@WhzStn&Ba$k800O( zA3yrDhU^fZ>@E1y{|9`12MT+pUb7sZf+*`}e4!11o(KA*BbzzvboS_X?H4cFy0AAc zNQjO_KeZZm&OY_ao~LI6I#06#MoYYev}Mk64N1haoC(2y%#HXMb0Ze2+Yx3jgo%D6 zt4hBTtV-kHK(c2XR3mV8%R?Q3L;gwi%xMn6u=e=EYvK6L$;Maz5%|g_CmGMw9k_gC z-IQFMgo_dg@~+{l8!U3}<4=wT`z$|v$rw$@_)hBqVQbj;AUDNuGn(8)O~!W%ILe!j zKefp9BK*nv3}0}V^-Ty%xQZ6*x-NKR?S@WWomKr4$;LUHl1a!OV;YLdmQ7S9*&35X zOtt_BTn!4dCLIMo(^K(N#?52he^= zZqKXnP>`~x*-ko-g|yWVFNgHdNgL5 z6Pa>JV%8I|DZQ5v8x4CQXv4kik$+GtY6AP8y$X za*`0)a0)~U-ltR2&^2{7FAhgfD?fiXhIP8B-S(oE$!Q$n27BR_ z78c0aXar}4$^xj4JI3BZE#b8a5xI(Eg~8stjSx7elj$a915}rB@DR$4VTW#Ow`(OL z?j3L>d!qDXN<7Yxi^jlZUIqkP@TY%A{Q0mEyLLyr9!EQzPQ|edj+)I>A2_Lp|G3GI%$0*9{`*85tm$WcM)*6d5|De6v;eU~C{aGPrgNVw;h2D7+(+QVM7 z06bb!r42DE^DwkPFNvbt1Z#~?h9A00y8+AjU7L4#p>M0_y0q-uyi+I4J~CD5rpj!@ zIbV*MVT#wWvG=vV?P*nU?n~5}Td+`iItF2INR3f2d}6Mkv=q1ohn(VEK`96-DPyZb zD=3k?kaTH$*y|@#PO^O@ufyfn6dDfO57_~d*DDiVx(~Id zUNp0sD(3Mqtmz{y%$IXxoK%c&^GcuPKGNh|+6XrsN0H0tHlHe=B7I0h+v4WHK5q*I zGw>(tJN%J5`DP!+uhjICBIo<&pohM{B>UerchM!!I>B;K|6B>8*R9YTMgJh{Di}Qa z`LPzRENjfxE!8TrS@*Rw_919cEy6Ju>-aUpRzg+GHq~fMgUZ9J!CbooJ_X;w2ELf( zg2TNVvWrjfZBzL^l=KKe4J^+ls5d)VKKV{VobSVzUVWVs%27kIB@a{aTVpotsrJMp zxDsWsF>J&$?T!){H!nxO%+`797{AD5pZn;q%ZnYc<@8aq(zSpsF0a2UuVK|H=mV7% z!yU6L=<|>uEY4rglhfFIe|?s`jKu}$r{o^&X@LHkT);*L>f^9T-JL+)F6TN%1nDDX ztUY}>7}%BNRMb1l>1cEc=r*MEAA@K{5egQ^y6s zKltFSdJ!77P>8+NTIR2Z+R7Fh2=4-QBMe^Iy`XGisb05LF;!uDn3@s*#q%(v@VnWn z=!Vl(5XCVlQa6I|8>Jh;FsTTm>b6*X2OtiydIhJe2#TiDRWPiBU>QbVmEcAU8jEksFPyT|ksb~!xDK=-eN5{}U01y+#6ahnRzyl{vV%R< zLlS;G)HldaNF8uVLP`!wtLo~eHV}EMhsn-UwL3j9eXfLvAbnoPx3BYbyq&(-BAnqO zX+20{N_AT_dlsihd)REWDWJ^CSUUZ(2RYRy0 zqKB=r?xjYP-a~yQKyPeD)Wa4HJzZ5KUmpGjk{6V7z0@Gn!iEg(qZ*VG$3Wb~6nfdB zae-{)%v<%rzW}|Z`Rzqv1)3>D`Q6(VO!=V_{u<7VY^w~$?Le``x0fwU_oOT3Wg7Y5 zl2ow;sN+n}ylsJjdO5X1K%nl4%%*;1r%Ujg^IH3kM5wl4b%GfjykJk_^`-_bVhp2$ ztYv~e+o0ER^h#<|R-AwEb3et0&Yjk!_M!EA@vR+O{)GnG)i(@6pdIi~F zx03ab4Z8ghw~B00ZGDome-NvjqJOCr40Rk%(d($n0=q-2tEXTiBDeXMi`wh^utgU35$mXX1t^^cJBDTHk2U4W>y9AHQRC*;q%(tGd4;_jdd>RL9PUdj>gT^7JFJTJ@ zdVRTtW9TY9N|pm1vsUY}F0XXV`BMMXPZ{%?qy7&4kZjPzS3O1jna$p%k5>|hvv+st zla<7LR(>~r1BbKsck5S_`or1yJ$kWHKi|=7uf9uG0t*}w-|MNelAg!9?AOOCU*|cF z?AJe%@rJu2?|{BdQznjfB>kvIcp^#LpVohum7-yexI{?Vz&N{ zz8Q7z;J@_wvO$9sxHp!ubv}B1mVQrf46om~r;k&7+p|aa^zKTlL5>&i>uqFth-2~J zdLIl1vqz6mCFip4|L8a6xh&(c9w~qA82DJX$?{ysuqXO^awY0qL@_smN-Q}L-50V< z(^XXI4~4C}puf!e)zKTWl8)Yfj&Gmobrhy3Hh(WzjW=(c5e&OcXE-h?ww1C${ey_( zuj~WO78`tDqGAL0-DZ0eDmpY2iRu7!hTA?(qV79bqGJz2s_jr}X^Q%Z0vD#6jds+0 zmYa=ixo#U_P!}A0_>xt!**aqhn84rlcsmIw#58GP?by-2Tmi0GaNu5ui+3b76HpQS8Dd>`;i>K`;4QW}e zyzLt~nf+4U_9GfXUsSMthYRqkFKC^kk)N%lEZ<^wf7?J@)!+SXZzGfE1>k2D`#Zq) z9AtOc7|%hpz2#E#aobwT+On{3;S#v!|!Z2Ok2NVNsA zv)Q%}So}a+qT^OwTfB|=rrJEaVi_oO_q`E`OJIH;LIKG=`3sD@uOtuB~RpgfJ-g#S;+>2GbV2hSt zW(_acng#Uk+qGktt}nLf@O=EpgvhE`OQ;Wv}39r#gZdlB-us_F6K#`8uQvC8Hq^A;Ob zm7=Eeb{g@@#b)#VG^%+AHdm!cIKPcBYejih^dV<>NeA&sYr)cGBT^aD(vc+_<>h{B zu=xb!(n|d-l9)M0k&bJys{{s7jq! zzH02W=MEZ}D=zAvgi~@`=f5pP|FOLPJQ7+9^?xoHm^0S!ra>7O66W|y){6YCtrht( zK>?x+=bj0c43GQVj4#fg0+F~TKb;yT$>Ag(U`HdoKp@=&u}MB!pn0{bn7XvCEMGUG zqNjILrHPh}c@e0;92Sz)+O+d|iG8CRZI#wN*fSmZU`kJxV8d13(2Ko5zZYL-Lv2Qc z;(M0OFu6BMRimAf{|bA8O-hxJOcv!~6e#sCGUfsMJr}SegpsH$$YQ?}7x!nL2JEh6 zvzmrcHMV%5Dy>0$qHy3{2AVdEjBiEBnbD>VVxtT=-TxP3h7qNd++yG2S6%Q}X6Fne zUX`B8%+u4TrVe-}vs6#SI$2?T==YGs-o~%bkO#7qix3iVupgHyL9EEr@KV>^m)TiQ zc$s`}z85??{!nH$yo^XS?H`$S@G`0?t?#hcpi$*;q$80+MN&59p+8x`gHtfP++%j)?U6_u`@ zq-dnv4Pi$}__dD_rubGMXr}DJwu|Ku+TwDoQ8|Pb=|iD4E$0layg_~1$g_cLD_Kpf z$bKg)EtssXax2!iykS#{E3tv)jW}h^t87+zr2E|=>>K)RJdB;9-zjrFn$np>v6`2ZKsM1E8`;lHF>Lz&Mwq%~@N2D7)4mVF2snZ&YG61L0?4 zI%%pg(~qKrQgtB14%R+wU7+EmhquJL9;`h@hPH`j*d|(M*P+48CBcCil99o71Q<=^ z5;ofpJCDx}#23X^#>kQ-s6;zbS5SHpUfbJv}JXJ za55NVGc|33_{pH?gT^|UD=DRF@nkN(Kp`~<`p=MV)e#&ZBwTef`}7;j)&v_d^ayb* z7+E!bJo}q|XTQP1E8_RT1lF8>`%Oew4t_%>v-c|Embg2WZK#M#o&PR7T@m%hj`!HJ zibiE6c?OFJfq&y?vQ{CGr@hEt4KW%kr#rFLB;P-a{TPDVc>El8I|Tl<>dAsbaceE> z#nS1wpbr}yYSdP)yuy}*8p+CveD-6gQA-IKF+a?xtMu;2>W3LMmBx8&U>NdXa)0)I z7=l?al5Gh?wDxDR3nbTivvQS;nriF83VWrQQHAaBRV%RR&2Ygtyh>?w)W?WmHT_k8 zXTJQh67CWyhux}VM6=g@R3Ed@#CQ_!u-OAhTwlo_$f}1U4#m0j8_lMKBlBq=utniG zpSg2cVK^cdIG=t)*x18{H!EKm*=R0vN>VBtK}z64)}}JzJAM(%uWUrdBrj2=@m9e{ zt5BIMAYtMxeQ0hm*3?calE<(L5k?K=5FXGXj5vMSbiBjFW=G)e zd?UgruNX7gj0mJe!FaX_dId`fog=#ySY>JeI?<42D_0@Aaja$)#AL+>tZNmNA7f^* ziS#SYV{7QQcs5Ip#P+|P>Zvv}F`UIs@A;$-V?~Y2h|}LE>*`A5iELdYPQM`1@Kxqc zVo6ber37~;lO|qiH^mhCr}U)>!t`-gTWj8Ox(ttkvGz6@#VZ4*u^v%4`9trpH|h7{ z8|=#{qq$PBg58cnIn`q&3yj9e2BJ+Gjg#HKnq^1hq^5ttrbk16aSi(_8o4g{Yj%S4 z+6ML{8vfS*hE=PIMBKBUb*0~uPuQfYMwOT$cnPToE(capcD9oWMwUj?c{z@M#P(E0 zOcIx~oAf*7V-^;J6Hoq>WyBza$R%tT@%W`|Q4Hx}~9imZG*`X+OWi2KHa&x}^fvrh5w zWxx-tcRX^_o&#)pJo0qfA>uH0E*@P)a}Q%4F{_b)lEZ(f<$jVoT^FupWSap=#At%{O)p4Ip z>CUF&SC22G*u7KT2>0dr!PyXBb(~$Sj$~Q4n^mcS-}GJdTa8Vsfhy?YOKg4(BT=8d zja)CRVN@!0O*3rJ2>KpN?xW@jNW?uleIG%Z61kW4rC+>FdLR)e`&FV5s;v2zAVmpT z!=5Ihpwhl#jcdZ_!FD#HCN9{t18gb%4mivX)HLF~4;{hCD=rB}U077K)fSF1108de zMJ6E+oIb`{Cm~mEKF)^IZ>y7RQ4(@v;VHH)$w;)-|3#HH$ZTg4w(EX%AIgaewU9#B zidm&vRD%A@8rDL9#ivckt1BL$ zF|cU4xcu2ES%bYEr9*EOoDiP)84Xk8;h z4gW`FGwIKj$13}Z{tS7lvLYBOon&^iE-p&C#scaY-Bs|7J9Sl4UoU4m18eAz@3@q%ie8Z^r%|sr%40gF+HdWvn@eb z+1gB-aHcmj1}lXX*zktN5T&Rx`?Vo1VtN(!s3EHM!bn!75n6$1(X2-!T+1FYY-}SG ziQ(1Qibgo$9`S5H$*(1_KN=w+N&=bD*yuz}pI(iT3#Zp%Z#Tw`u)i+*rZH{=qdxnY zARg|hbPMy4{o z8C#c*r=HE}tSH^6q+DyxuBW5H-nAw3Y>pEd(u!55-;2*VUTALAH0-o%A*B~}f>5TK zD=>AL7#RN~E!X=9O!{d8lY1H!Cu_1NJ&l-~X!%dW_ne`}i?b}Wtx?5JL*!ge{?I5l zXYz+e!#R_lhAcRfp7uKAO#0ITlb*Jh74@_cE@$ZN677=91>^zkb<3GNpnY#Slb+@q zaV9;@MdD2QG=WJ^8$FA9+7X(wFTFBKJ4kZ@c|d)coXG>4rofr>G{b?j83FY8aV96Zy? zCj;7;Pc)!GD$b;*jW9Wr2h{J%*^Gd|q^IswQBU&}Ig_47axBKWM)*gYSBeHSYnwCa zX?{0n@_^pX;7odYQ-d?S?|amXuc3<@_^>Kb0$5_dFM=enm*2%^fbGjGwEq2 zB7P|UJ0n0d6-5J@Z^xNDpt*RQ%?JogdYU*X>S^i?XVTMD9nR#Qwr6&RZ$&`ExPxdw zdl_>k4``ob&g22@tj(G9v?DlY(&q|HdfLWZ)YCYJdHy^FXx_AFKyP<(CJ)T_F-?K9 z%Al9zL_NL2$C)BpqC^$lLz#|AZPM`-Y4WtdU{8TGwJCS zF3zN|e~O!^lECJz=1O!}1qlYWiBr2ko9(qFL)0y6N=as@~R;R2Js zP+-#2vgP=}$9V~9KX1;Yr)4TRlY81&m^10^G|t5ZWI*%7Ig5~N} zJ#C;W>S@%RGwEr2QqFL1muP5>3&`M>z!U%twuyS0kItF&G((Crxu>aBoJmhZo}5Wf z?`&}{Ck066J4#$Y1|3*~E@&9h*5h1E{_GK$%xHU2QBRvHaV9J*~UKne^!bLvNQ> z2?8>pb$Yl1@_?2D;!Jv4>4~!$fWV}u)s93xt$f6p^t1*PXS0Dut50!(>4Cr$0IdQg z>Q@L%`uzfvds<$Z+moJFU*=4DS`nJFFAa6liqTv^2DJ1xXYzoSROU>2T1lHT>1p9@ z&ZMVxi#d~i1zXt7s8XBO9Oq&(J0vif-4dAe57=rrv(u7J+!>kC`cIt6tgFDJUm!5) zX=eg%PkP$5fHUc7`wGsar>!kGLvJ^C!r%fjpv^QmlLxfh2xrpM&Lf;jPb=wgCOxgP z!ua1!O`}noXM_(PzjN~hrpz#J!!c;=@$r0 z`r`tVo;Gyl_R!-3O>_y!z*k`MAVpx(Hx`)muLw-~T!Bd+IH|1vAp-kKX~+SBfINs7 zm^?@m7~Kj|{Yj2@dl?;MJ58?znrC^k)Iq zd*n>+R|pJ+U81EFMT262NkN1nFZ;Xiih0opMAO>{DGW!BX} zyFU%)&(CCkOGX;=M-39dm9!p@9y#V;St<{<9u;u@vQ!gX8&3vPtN>`Boj)m%z8824 z^eZfVE|}h-;t_Za`~;k3>8B_tKlq~pdGJ0AXuiDx1I{$b9xuF@yaf7nZ_0i@T1-Rf zG=U$v9D2=6*mZ16U!#_tcLb0(f5I7mY$itkUFl;ou_wmtX|fP}F@vFDee(gq;>uv& zR3rP^VBT^fZVjf1NZdWHcZ&JCp;MqrU0~pYrEbDa4|VfA$KbpW4>Q0X(C=Xj`yt-E z1BCp=K!fxSE}#Z8x}Zg1{_IKmE8uw@@wSb1y`GZ3vnw89a5xYAqNPs*^G8Q=-x2(z zJ6=bz{Lj^-7NyUQWbif&2H{!qkYzyEXFTFfLr$b8UIFIUi>}9d_D-fz3$x|6;K$B8 z3&=V`cXbXBHv;p{0OFUx{Mny)1eiA6d}|<00`EV0s+n_6{(A`Xl`TFn`)3zG%aJ%OCGZa2p1+ zU=jD=F_=HSk>2odJ*^RkftU4j*;fbCk}cdlW!HFQ*ANJ(+@s4(t9&3gSm^+R&CGKE zCPSB|-CSdWojFdt0&&~bhbOq*PBUItD8&xL?W-EYABNuT`N3Fggq z;?v~bYL*jU4v?}+o8=^++o$ei*{=#bBz_17#K||N?H}Ok5 zUQzpjZV%dwY(M*B5RE;KW?_TTRx4(M1{)vw^PW)(B_DV1o9|XrW;~5iU~>=UhMRO&nV5zm>h(CugUE5A;v2yyctjKsv#%x zW;=0xFmI+4w+0v6S;L`5Qtkah{V^MI{@_n`bVj@hNp}*Z`xUlusL?TqcchRRiKQg8 zY{N*2wk6h5CFA2C`-Q!gCB$leE>cn z@M7>uAwsll{%L^=!TduJJn6>Q!L)}9*-!)?+aYjvLOTWCxH(s&PDhq7b9D%KkJY_L z4idn$S_1cg^6FybRT#rVU1|(H|4;-vxp5|#kIs>Q_HhuLLF0Y^T+wax0hkZZk-^7c zJ{m{79=u0rbnFK21t(eVeu+9Zv>bR=aJsL=Cx4{BZhR% zDS~%|2sVN}|4@W_xbX-u?~}HZhf^Tn{bj_9z`VnV2e<|c@zA7c3UCd1U@^6usOas7 z0@7JAI4cs)R?#cnMFc6=Qi|3?J5L%Wb*W)sR>DX_&nkq6{6jH5<;FLOg-fJIyL#Oz zf|LR_+y%Vp6$3s0kbeo$EN2u3<{L+|sr1`1nys{c_u)6XqnrJIGP8|#x{I@ZGw_@B zpLRS{6qE?}|6R}aAsl-@#II+pGmG-NE*}ZbpMOR|Ps|@M-T+S#`2R5;sn6bqhkWt@ zCHVi|LpJ|4Big{eH08Iaqzy2*b6?}&6g#nQ6){6q1&>c(0O*E(}sB{xoS<2GfP{WjJJ zidc;+ln#F=#rwg4GhHDpSR4F0PP|eKtBYUzpt2r38waLtz;%{;THu_2D8fs?Es&5T zBmcL#>HjZT#r?!iQiSk(-}((6=j6K9Z+Gi=^f)6r;u=nl_X!jsaL#mc@M9Bf|4;7y z`>?Z@!2Ov-*FET-J)c57)XB{Be>J%MtSR(4|Dw-;FY>rwrX423P)z0qG||k9W%cYY~R6!X)2+(I0{S z`2XyGMKcrKhrv0)02SKG3CNrgR1;Vqib!oRb-?o)xtW{(MKJZhb3I@Gh`b>8w8At0 z5KnXC55d$yN;bH&?UMVgzZwSOt^WhKHO|~}ApK!6zt)}!81fPH2^Jg90RF@OHqev* zHdBv=iF;XslsRd)iVFPt4}yc6HL}==a_K%xrL?_*yjJ0X3K&aXz<`2MBt$LuF zmowaqo(R7R;MdtS=Vhkq81j{nD{m*Tee}B^fnBEGZ86L?3HI)BgS;-}RE%{ey?brC zCV@?zgt&zxYyR=Nbz z8{p3bo(*0l@KP|1MJ2*R3h;~SY|~_%NFn6>LlJZ5!*2Tj9ba~{e*lg^4x$sIa6@Ry zto1>7RiD)@D|prcT+-Z?g>jWfzlk=^j#SCF9~@H4cmYzIe<;%Kw?!uW=qd#2o-_WZ zt3iq7Z0gI>M7UoA=2v4*4Gact5K{9K7;K*Ex;&J+G?K?t*F6>88EvARDM)?y)cOYg zMk3;La+F#>x$$3a9Do2t`&2jXVzKl7m8Fs3IG6u+=>tpPV+HsPIK^ck{p7}fS?p!m z2h_xg3-+mQ+{KMYmSH>=eo#h$?l(97$&LSV;{ZGnmx+KIcX4A{+ql%89t%IP1U!Sf z=cR9;?=GAnt-nmni&Q+LO1;25iQO-?JNwq6i|hQDwOy1Tpv>IRjot4!(F3w~XZJky z0{m-=2=WumbNO#KYoVzwfywSM{{P2zXEpeL8-V*6F2V_<3zulS8`FBvqTZHlF~T=* zv+7)6aR)aZ;l}eV=1J;a9=Y?ku;(ATWUl}^HNk?;;)VW3aRPgN>XGbgb;CBT-aj{)`4Fdl0Rc=31Q#hf{00+5o zRX48h#%cQgd^%5%Z(XK#R)`@485IGdij@$pCc(F(+e z1zre_3UcX}ftyojBR*vR8F-t(UxMpU@{pdIybcI1aRGQY_)~PNng-yXz=N#ET=MWb z_>91|R16|Sy6hvtnF2QepRsyd$bCofThUH?I|&9raLE!7PXL#*9z==ff!hoG8F-Mu zo4_+TBZ+r|8{koiKIHx+_#J^SfRP92W0(Bl;4uWX@n}LHauAq?00fQ&uNSxh_^iO~ z!JgE@v)uOtN1+*QGW^d4FXRmWN0EDzaT8L2lOVV*7|a8QqWNli0R3t(HE%g@0iO_f zFSxSRE+GGY0#j?0+y4e$EAT^bIcls>AwUjnSm-sD1Qu5UcN4fac(1@M!G8$c4cq|r zGk2d$?gcIYUqbcC^>2d@qc)@P%?K=n;2{K@*MRq;cHz7Qe8MUVD8l=}Z{f0W{aJ7w zoE7JL;O7MPt&2Pa8P`__m#gax-;6*<2$taB2Ko4}(`$hEP=K?*nF4Owa!Ws5^!G8#R4BWG&D}v|24_mqXy8~YGoQstP zxc+Mefgi3<^9+|k1bCjn4ZxM3cj{-LAGeH_@_Eej&b)b{#h(8*=c2HfpM7iWSS^m1_?*$X@w zTrS(CUkZ*DxDfn?z^A~TIi>dYXSX51rdH;MV&sEc=7hl2!3_qw^cmnLgIxR)c#^;a zzzYQ~0B;m{GI(bxqyC=-fj-#f;m2T4fj5H7348?nhQQ~+mju2A&K&OY&j0L0#}!f!l)zjdtm?iO0Bj99SRg;`hL91pW{lJKm*V1-@q$d}jT> z6N2FrT?R+NZ%lIW4e(xpAA@U8bLl-%h;0)%61-R7THvU6T=s3jJ)MmDA1TlWg0nMR z2BX34XS#SgxbtimuK>R@$Hg1K@&_*72@aa;;*;RR0^b9B&LcgNfg%uqVt3FYmxCzq z&gCvn0pSk!&u)M*=L%<6+xp*9SNui710be4vn^YZ*pMsZgMhdJ0 zH!pGNw}aPnhW-?|@_9=Sz5#y6E(kPKrH3!L3_|l&)P5}?U<>F@GNdmV6 zpAfhwxZ7VY`+;D4gTGyZaS)srcn0|PLzn&|aGOUKBS{_L;Q}85d;a6n{|>J5*u{^) ze+ul=64!sm6ITFLTH*`^P65w&>eTxo$r^!|3Y-D{Qs8dj4FYF^_XwO1z9{g7mbm_g z;hZh)hclWDgYuja;4-kUz=dFcflq@21-=Uo7T6c9pAdl)!C?ZownGpu2nK*71fB?v z6nF_ZTHr0<7=cfK;{`4TCklK6oGh?ieGa|+o~{(|1`pwk6bJ^75jYZzX@kCWQRtE+ zfM;_?3f2aq`wQT$rHuMt&Omo+q$|LR;6nl@f$s|380-^e*&~3q;6Q=9 zf`bI^4G!jv2xNohs#t^^DTwEPY`FkIB?ux&0DcYJ0IU%!sx;MNps9Z!+yr`)q5oK9 zxc}N>(>-_xxH-26AF((P9@r^>Um@rw7+kYBLv}{sF?fm9XG8YkXo9a6xEXk(z}>++ z1s)APEbt8Q87I^8zbdVO;F4gl4eW`R82sssq2C9t1Xe6Q1dalix40Nw3mk3npWr^= z&n^BN+_ReG`>w@4ttII-COyist!61)jamyG=13f>In5%>XIR8z8>XG8`?5S)eq zWozQ|;46X$cfeN#R@-8%UtmA*4S}nGZ-FVr$iF!71A%LTr6ep%Fwruo2f;*ZiWNC% z1)c)tG42AMCU7>GW;*f|8wQ>s@N3|i0#5?Z5_l$fwp|b`g5Z6DKLKNapfrFD;JE_t z1J4uqC-8iMe*-gt{{k-%SjB^^9Xm6Y2H+3DB7v)dmx1{;tN~sD<|$Giyh`Bbz}WZE zSGQ8MD|o%Y{lS|A9`OS1zd{K3HJShenySf@bQ&0)P^J6gEJ)8%A4ED5={9`c9lH>N@fIS3005-tM%MmA|a*qX>l`YK>P zn(BxCFDV%U{^A=1Qb%x?nrK_#L-qY&@b>~w0ed#L^r(L4fc*qs1`c|`rC$erXO_#q zUErvBoKgQDhv3usE(aIEersI(0Q|#O+`;W<6*{0Yx$e@3f!E%2aSia{J1$NIN8NLA zOK=^|^!(oif}vc1GwKJHAG#cj0VfDN3*1fMkHC`zUJqU(@B#3r0$&7gwHWpP?Pvc$ zpg(d27>Ev|J_09!hYH*dJWAjJ;28ps2k#VkHu#~yE5Whc;)tc!(R1apNg&JllKo`+#X?dn=1afGcCFtUbgEU@`=C zAmDjm4!8|C-qJ4t4+p<)@hb3jFs`9_2@ApR)xx%!5YQPGfw8NR-w}&1f`7+++DOa& z18})IsQ*jP7}>RI9oHF$f>Xi#j1$0(!0DC;Dd2J7rWUsWZxP)00{ zfP2*Mn<-$6NYs;PqgB z33q{ag6V{!VSkL+4guH{T(t~1YcJyrpq~N(MZg=}856fiPaI-#cZ=h|tD*O?xB+-0 zXXL4_;GF{Jf$fI{!8;I~5%?4EC4sksZwq`H{6yeqV9%yj1Q1|cZxn0-w*yBBoY@=q zUrj;qIt&^JJRkg=z?;CG1^yY_N8o?Jg9Hxmg9jCXTYx7C+^Y}nzZrsHI1CmF{0{h2 zfj8{Gmc>w))z!>kl(2R;urBLICL zaJd$ihv0$WN?=|P4F^{S4}p7Xpu7oQ4Q^riw+MV29BDG@|Md{mZ0S1VUEpru6wARu z@Ir8Xi!Xwkw{pHwK$q+`csLjj(dH$53a;}UHp{ixyC3x6K#MDZXMoX>g8qMakO;v& z21dP4<~@J#b~MhG;jd8 zyQNL{E6y|t$Hmk0N(?1`w8I6{ZRjBSOzm8SPlU{B#W6I^*BLtHJ!X{Tuw;AeVbuVXzxG$8sMI-fM?Ifq+t=CIml# z$6E%Cz?}!X^e>PH;4CBc0zE`3h*)vR%788o{9bj9|rRXc;Vtb1oH@lgM+XTPeaRn0=OHvmBkIfTfjWi zb^s@glKqM-eJ?u%o>&%<7c8%WW5F4g!Rz2j;6oO_4<3tU5-(f43Oo<19@;D}1TP2s zTbcR*cqdj^iL~@*!GD00Ew*2SAap!-=(Zd@1ba?!rAWnrs4l_0tgj00iMyu0+a7ZLc(Vgv5!nR_dk)^+o-_y;gwSIker<^~raSOEj>;4d&=fr>oPaq$|z<%}Q& z5DKQZ=ind4QDi9zywPGmM7S3OziFWycCn&%9tZDALp0Cnqg6wXe0`oMS|!=XaVTE!Oj< zrevnEPEEWII&M|>tQoA)gcqfMZ{t zXH>9~TAMZR=5^4qVX9|9u+pG5>v!JspkwY5qS`4=D%e2&)U8v`=`i!4=hGmiP8}B6 z9D&rh;F(Nerm^L(dLMSwc<9+PSk5$o1@1C@*(>F}8nI>Pz1p$%6}$o+PkgC7S5~l+;!Fys#g`v?^$FJM)JaWd zonw899KU`|zGos0$ahEi175GegZ}2Z9A!WcN5Au4ql2~jnGGx_s~>nJ2jNPyLlwNA zXGJgmukmc0eu0nMfZ5V01>!xhQ?BrH2aB;-CK^I@{Z<3=nGI9SkklyIfy6A$fl6$- zFK_n_1!+k%0P#U?E6U-H0=muI0!hn)W}q5SlufkZxwQTGEN-ytO+i6_ar?K8+__@R zM&_0fuK7vs95H5db5n@l${%oNi!qs}A%)kr@7(b~2UtMDcKb^{o)j^rM6>A&vbir! zS61P10f+Q-c~u_X>1CU_BtR_A?OQi-YlwiE)1MyWc9~vql#yk7j5Uu5Ba=}gl3SB) zc|3upn;C=bKefFwghx<}*~BCn)Cx0s_<>$G zN`k2Uvz`Z-icJlYw<{jwc?=9ji&TiNi+6ech%%)aKzK91@JIvwpPC5fPTye3%d)+d zn>P}a0W7vZRODq6XEp~q5o|wDmR)rE@l@WGyekTUQ?4Dr$q3-YC&%Q8+1k@rr16R{ z?MR!xFO64;=}p@7M`^rjte}FkVmfa+uRJGcVMPj1SHg5tAeRd?oq7bw6=9tomk!i% zq;PsuIfHd2Ja-f{-^lLylwk=bD%OX6c{{yje?g9^*QJb!o0c3w+W@C`C zo$d!>3plbdxU^0$1F~5|jgn@w{Sll>IKbyfT&8E@7!QhiI s{T)yxbIA*i>B5=3s%&#!a4;ljPPfbCRg(AvJQ!{UsNjMEV4)8N0Nc8Bg#Z8m diff --git a/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.build_log.htm b/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.build_log.htm index 3ba3d05..cab97ad 100644 --- a/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.build_log.htm +++ b/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.build_log.htm @@ -22,7 +22,7 @@ Dialog DLL: TARMCM1.DLL V1.14.6.0

Project:

C:\Users\QJM\Desktop\6517_SDK\XC6XXXϵSDK_20260428\XC65+XC62ϵSDK_20260428\project\example\ble\ble_peripheral\mdk\ble_peripheral.uvprojx -Project File Date: 07/02/2026 +Project File Date: 07/03/2026

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin' @@ -31,52 +31,56 @@ assembling startup_xinc.s... compiling system_xinc.c... compiling sleep.c... compiling app_batt.c... +compiling usr_server.c... +compiling app_sec.c... compiling arch_main.c... -..\app\src\arch_main.c(201): warning: #177-D: variable "spi_idx" was declared but never referenced +..\app\src\arch_main.c(202): warning: #177-D: variable "spi_idx" was declared but never referenced uint8_t spi_idx=0; -..\app\src\arch_main.c(339): warning: #223-D: function "rf_tx_power_set" declared implicitly +..\app\src\arch_main.c(341): warning: #223-D: function "rf_tx_power_set" declared implicitly rf_tx_power_set(TRANS_POWER_0_5DBM); ..\app\src\arch_main.c: 2 warnings, 0 errors -compiling app_sec.c... -compiling usr_server.c... compiling aes.c... compiling app_task.c... compiling xc_drv_adc.c... -compiling nvds.c... -compiling xc_drv_aotimer.c... compiling xc_gap_api.c... -compiling xc_drv_bor.c... -compiling xc_gatt_client_api.c... +compiling nvds.c... compiling xc_gatt_server_api.c... +compiling xc_gatt_client_api.c... +compiling xc_drv_bor.c... +compiling xc_drv_aotimer.c... compiling xc_drv_calib.c... -compiling xc_drv_clock.c... compiling xc_drv_dma.c... compiling xc_drv_fmc_spi_dma.c... +compiling xc_drv_clock.c... compiling xc_drv_fmc_spi.c... -compiling xc_drv_gpio.c... compiling xc_drv_i2c.c... +compiling xc_drv_gpio.c... compiling xc_drv_pga.c... compiling xc_drv_pwm.c... -compiling xc_drv_pwr.c... compiling xc_drv_qdec.c... +compiling xc_drv_pwr.c... compiling xc_drv_rtc.c... compiling xc_drv_spi.c... compiling xc_drv_spi_dma.c... compiling xc_drv_sw_i2c.c... compiling xc_drv_systick.c... +compiling xc_drv_uart_dma.c... compiling xc_drv_timer.c... compiling xc_drv_uart.c... -compiling xc_drv_uart_dma.c... compiling xc_drv_wdt.c... compiling timer.c... compiling uart_1.c... +compiling fmc_spi_1.c... compiling switch_s.c... compiling rf433.c... -compiling fmc_spi_1.c... +..\app\src\rf433.c(126): warning: #177-D: function "set_click" was declared but never referenced + static void set_click(void) +..\app\src\rf433.c: 1 warning, 0 errors compiling timeslice.c... compiling key.c... compiling led.c... compiling ota_flash_interface.c... +compiling rf433_decoder.c... compiling ota_server.c... compiling ota_protocol.c... ..\app\src\ota_protocol.c(149): warning: #550-D: variable "sw_ver" was set but never used @@ -86,35 +90,35 @@ compiling ota_protocol.c... ..\app\src\ota_protocol.c: 2 warnings, 0 errors linking... .\Linker\cpu_xip.scat(21): warning: L6329W: Pattern uread4.o(.text) only matches removed unused sections. -Program Size: Code=27376 RO-data=1600 RW-data=3008 ZI-data=3076 +Program Size: Code=28524 RO-data=1784 RW-data=3024 ZI-data=4192 Finished: 0 information, 1 warning and 0 error messages. After Build - User command #1: fromelf --bin --output=app.bin .\Objects\Xinc_ble_sdk.axf After Build - User command #2: .\output_tool\Double_ota\ge_ota.bat -Size of file: 29096 bytes. -all_size=29096 -size:29096 PageCNT114 +Size of file: 30432 bytes. +all_size=30432 +size:30432 PageCNT119 dual_xip -length:29448 -size:29448 +length:30728 +size:30728 Addr:12000 - Size:0x7200 + Size:0x7700 BAddr:0x12000 - Acheck:0x8569f200 + Acheck:0x23c95220 SoftVer:0x10 RomVer:0x20 LoadAddr:0x11012000 Is xip ota?:1 ota_data.bin successѸ 1 ļ -Size of file: 29096 bytes. -all_size=29096 -size:29096 PageCNT114 +Size of file: 30432 bytes. +all_size=30432 +size:30432 PageCNT119 dual_xip -length:29448 -size:29448 +length:30728 +size:30728 Addr:12000 - Size:0x7200 + Size:0x7700 BAddr:0x1e000 - Acheck:0x8569f200 + Acheck:0x23c95220 SoftVer:0x10 RomVer:0x20 LoadAddr:0x11012000 @@ -148,10 +152,10 @@ is_db=1 is_th=0 Ҫ0sector all_size:1a000 -size: 29096 +size: 30432 updata file success ! Ѹ 1 ļ -".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 5 Warning(s). +".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 6 Warning(s).

Software Packages used:

@@ -164,7 +168,7 @@ Package Vendor: ARM D:/Keil_v5/Packs/ARM/CMSIS/5.9.0/Device/ARM/ARMCM0/Include

Collection of Component Files used:

-Build Time Elapsed: 00:00:24 +Build Time Elapsed: 00:00:20 diff --git a/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.htm b/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.htm index e79ba69..5280b1e 100644 --- a/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.htm +++ b/project/example/ble/ble_peripheral/mdk/Objects/Xinc_ble_sdk.htm @@ -3,7 +3,7 @@ Static Call Graph - [.\Objects\Xinc_ble_sdk.axf]

Static Call Graph for image .\Objects\Xinc_ble_sdk.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Jul 03 16:02:05 2026 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Jul 09 18:43:35 2026

Maximum Stack Usage = 600 bytes + Unknown(Functions without stacksize, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

@@ -12,2908 +12,3016 @@ set_single_addr_name ⇒ xc_fmc_spi_flash_write_page ⇒ xc_fmc_spi_flash_

Functions with no stack information

Function Pointers

    -
  • AES_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • AOTIMER0_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • AOTIMER1_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • AUDIO_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • BLE_Handler from rom_symdefs.o(ABSOLUTE) referenced from startup_xinc.o(RESET) -
  • BusFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • CAN_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • CMP_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • CPR_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • DMA_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • DebugMon_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • FMC_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • GADC_Handler from xc_drv_adc.o(i.GADC_Handler) referenced from startup_xinc.o(RESET) -
  • GPIO_Handler from xc_drv_gpio.o(i.GPIO_Handler) referenced from startup_xinc.o(RESET) -
  • HardFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • I2C_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • I2S_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • MPU_Handler from xc_drv_bor.o(ram_code) referenced from startup_xinc.o(RESET) -
  • MemManage_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • NMI_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • PWM_Handler from xc_drv_pwm.o(i.PWM_Handler) referenced from startup_xinc.o(RESET) -
  • PendSV_Handler from arch_main.o(ram_code) referenced from startup_xinc.o(RESET) -
  • RF24G_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • RTC_Handler from xc_drv_rtc.o(ram_code) referenced from startup_xinc.o(RESET) -
  • Reset_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • SPI0_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • SPI1_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • SPI2_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • SVC_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • SysTick_Handler from xc_drv_systick.o(i.SysTick_Handler) referenced from startup_xinc.o(RESET) -
  • SystemInit from system_xinc.o(i.SystemInit) referenced from startup_xinc.o(.text) -
  • TIMER0_Handler from xc_drv_timer.o(i.TIMER0_Handler) referenced from startup_xinc.o(RESET) -
  • TIMER1_Handler from xc_drv_timer.o(i.TIMER1_Handler) referenced from startup_xinc.o(RESET) -
  • TIMER2_Handler from xc_drv_timer.o(i.TIMER2_Handler) referenced from startup_xinc.o(RESET) -
  • TIMER3_Handler from xc_drv_timer.o(i.TIMER3_Handler) referenced from startup_xinc.o(RESET) -
  • UART0_Handler from xc_drv_uart.o(i.UART0_Handler) referenced from startup_xinc.o(RESET) -
  • UART1_Handler from xc_drv_uart.o(i.UART1_Handler) referenced from startup_xinc.o(RESET) -
  • UART2_Handler from xc_drv_uart.o(i.UART2_Handler) referenced from startup_xinc.o(RESET) -
  • USB_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • UsageFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) -
  • WDT_Handler from xc_drv_wdt.o(i.WDT_Handler) referenced from startup_xinc.o(RESET) -
  • __main from __main.o(!!!main) referenced from startup_xinc.o(.text) -
  • _get_lc_ctype from lc_ctype_c.o(locale$$code) referenced from rt_ctype_table.o(.text) -
  • _printf_fp_dec_real from _printf_fp_dec.o(.text) referenced from printf1.o(x$fpl$printf1) -
  • _printf_fp_hex_real from _printf_fp_hex.o(.text) referenced from printf2.o(x$fpl$printf2) -
  • _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text) -
  • app_key_callback_handler from rf433.o(i.app_key_callback_handler) referenced from key.o(i.app_key_init) -
  • app_key_scan from key.o(i.app_key_scan) referenced 2 times from timeslice.o(.data) -
  • app_msg_handler from app_task.o(i.app_msg_handler) referenced from app_task.o(.constdata) -
  • app_op_flash from ota_flash_interface.o(i.app_op_flash) referenced 2 times from timeslice.o(.data) +
  • AES_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • AOTIMER0_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • AOTIMER1_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • AUDIO_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • BLE_Handler from rom_symdefs.o(ABSOLUTE) referenced from startup_xinc.o(RESET) +
  • BusFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • CAN_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • CMP_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • CPR_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • DMA_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • DebugMon_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • FMC_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • GADC_Handler from xc_drv_adc.o(i.GADC_Handler) referenced from startup_xinc.o(RESET) +
  • GPIO_Handler from xc_drv_gpio.o(i.GPIO_Handler) referenced from startup_xinc.o(RESET) +
  • HardFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • I2C_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • I2S_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • MPU_Handler from xc_drv_bor.o(ram_code) referenced from startup_xinc.o(RESET) +
  • MemManage_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • NMI_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • PWM_Handler from xc_drv_pwm.o(i.PWM_Handler) referenced from startup_xinc.o(RESET) +
  • PendSV_Handler from arch_main.o(ram_code) referenced from startup_xinc.o(RESET) +
  • RF24G_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • RTC_Handler from xc_drv_rtc.o(ram_code) referenced from startup_xinc.o(RESET) +
  • Reset_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • SPI0_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • SPI1_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • SPI2_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • SVC_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • SysTick_Handler from xc_drv_systick.o(i.SysTick_Handler) referenced from startup_xinc.o(RESET) +
  • SystemInit from system_xinc.o(i.SystemInit) referenced from startup_xinc.o(.text) +
  • TIMER0_Handler from xc_drv_timer.o(i.TIMER0_Handler) referenced from startup_xinc.o(RESET) +
  • TIMER1_Handler from xc_drv_timer.o(i.TIMER1_Handler) referenced from startup_xinc.o(RESET) +
  • TIMER2_Handler from xc_drv_timer.o(i.TIMER2_Handler) referenced from startup_xinc.o(RESET) +
  • TIMER3_Handler from xc_drv_timer.o(i.TIMER3_Handler) referenced from startup_xinc.o(RESET) +
  • UART0_Handler from xc_drv_uart.o(i.UART0_Handler) referenced from startup_xinc.o(RESET) +
  • UART1_Handler from xc_drv_uart.o(i.UART1_Handler) referenced from startup_xinc.o(RESET) +
  • UART2_Handler from xc_drv_uart.o(i.UART2_Handler) referenced from startup_xinc.o(RESET) +
  • USB_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • UsageFault_Handler from startup_xinc.o(.text) referenced from startup_xinc.o(RESET) +
  • WDT_Handler from xc_drv_wdt.o(i.WDT_Handler) referenced from startup_xinc.o(RESET) +
  • __main from __main.o(!!!main) referenced from startup_xinc.o(.text) +
  • _get_lc_ctype from lc_ctype_c.o(locale$$code) referenced from rt_ctype_table.o(.text) +
  • _printf_fp_dec_real from _printf_fp_dec.o(.text) referenced from printf1.o(x$fpl$printf1) +
  • _printf_fp_hex_real from _printf_fp_hex.o(.text) referenced from printf2.o(x$fpl$printf2) +
  • _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text) +
  • app_key_callback_handler from rf433.o(i.app_key_callback_handler) referenced from key.o(i.app_key_init) +
  • app_key_scan from key.o(i.app_key_scan) referenced 2 times from timeslice.o(.data) +
  • app_msg_handler from app_task.o(i.app_msg_handler) referenced from app_task.o(.constdata) +
  • app_op_flash from ota_flash_interface.o(i.app_op_flash) referenced 2 times from timeslice.o(.data)
  • app_op_flash_on from ota_flash_interface.o(i.app_op_flash_on) referenced 2 times from timeslice.o(.data) -
  • app_sec_msg_dflt_handler from app_sec.o(i.app_sec_msg_dflt_handler) referenced from app_sec.o(.constdata) +
  • app_sec_msg_dflt_handler from app_sec.o(i.app_sec_msg_dflt_handler) referenced from app_sec.o(.constdata)
  • ble_message_process from uart_1.o(i.ble_message_process) referenced 2 times from timeslice.o(.data) -
  • ble_mode_scan from rf433.o(i.ble_mode_scan) referenced 2 times from timeslice.o(.data) -
  • custom_svc_cb_att_read_get from usr_server.o(i.custom_svc_cb_att_read_get) referenced from usr_server.o(.constdata) -
  • custom_svc_cb_att_val_set from usr_server.o(i.custom_svc_cb_att_val_set) referenced from usr_server.o(.constdata) -
  • custom_svc_cb_event_sent from usr_server.o(i.custom_svc_cb_event_sent) referenced from usr_server.o(.constdata) -
  • fputc from system_xinc.o(ram_code) referenced from _printf_char_file.o(.text) -
  • gapc_bond_ind_handler from app_sec.o(i.gapc_bond_ind_handler) referenced from app_sec.o(.constdata) -
  • gapc_bond_req_ind_handler from app_sec.o(i.gapc_bond_req_ind_handler) referenced from app_sec.o(.constdata) -
  • gapc_encrypt_ind_handler from app_sec.o(i.gapc_encrypt_ind_handler) referenced from app_sec.o(.constdata) -
  • gapc_encrypt_req_ind_handler from app_sec.o(i.gapc_encrypt_req_ind_handler) referenced from app_sec.o(.constdata) -
  • nvds_erase from nvds.o(i.nvds_erase) referenced from nvds.o(i.nvds_init) -
  • nvds_read from nvds.o(i.nvds_read) referenced from nvds.o(i.nvds_init) -
  • nvds_write from nvds.o(i.nvds_write) referenced from nvds.o(i.nvds_init) -
  • printf from printf.o(.text) referenced from arch_main.o(i.rom_env_host_init) -
  • rf_rssi_convert from arch_main.o(ram_code) referenced from arch_main.o(i.bluetooth_init) +
  • ble_mode_scan from rf433.o(i.ble_mode_scan) referenced 2 times from timeslice.o(.data) +
  • custom_svc_cb_att_read_get from usr_server.o(i.custom_svc_cb_att_read_get) referenced from usr_server.o(.constdata) +
  • custom_svc_cb_att_val_set from usr_server.o(i.custom_svc_cb_att_val_set) referenced from usr_server.o(.constdata) +
  • custom_svc_cb_event_sent from usr_server.o(i.custom_svc_cb_event_sent) referenced from usr_server.o(.constdata) +
  • fputc from system_xinc.o(ram_code) referenced from _printf_char_file.o(.text) +
  • gapc_bond_ind_handler from app_sec.o(i.gapc_bond_ind_handler) referenced from app_sec.o(.constdata) +
  • gapc_bond_req_ind_handler from app_sec.o(i.gapc_bond_req_ind_handler) referenced from app_sec.o(.constdata) +
  • gapc_encrypt_ind_handler from app_sec.o(i.gapc_encrypt_ind_handler) referenced from app_sec.o(.constdata) +
  • gapc_encrypt_req_ind_handler from app_sec.o(i.gapc_encrypt_req_ind_handler) referenced from app_sec.o(.constdata) +
  • nvds_erase from nvds.o(i.nvds_erase) referenced from nvds.o(i.nvds_init) +
  • nvds_read from nvds.o(i.nvds_read) referenced from nvds.o(i.nvds_init) +
  • nvds_write from nvds.o(i.nvds_write) referenced from nvds.o(i.nvds_init) +
  • printf from printf.o(.text) referenced from arch_main.o(i.rom_env_host_init) +
  • rf433_decoder_process from rf433_decoder.o(i.rf433_decoder_process) referenced 2 times from timeslice.o(.data) +
  • rf_rssi_convert from arch_main.o(ram_code) referenced from arch_main.o(i.bluetooth_init)
  • scan_433 from rf433.o(i.scan_433) referenced 2 times from timeslice.o(.data) -
  • set_single_addr_name from arch_main.o(i.set_single_addr_name) referenced from arch_main.o(i.rom_env_host_init) +
  • set_single_addr_name from arch_main.o(i.set_single_addr_name) referenced from arch_main.o(i.rom_env_host_init)
  • timer0_callback from timer.o(ram_code) referenced 2 times from xc_drv_timer.o(.data)
  • timer1_callback from timer.o(ram_code) referenced 2 times from xc_drv_timer.o(.data)
  • timer2_callback from timer.o(ram_code) referenced 2 times from xc_drv_timer.o(.data)
  • timer3_callback from xc_drv_timer.o(i.timer3_callback) referenced 2 times from xc_drv_timer.o(.data) -
  • trigger_check_process from switch_s.o(i.trigger_check_process) referenced 2 times from timeslice.o(.data) -
  • xc_ota_schedule from ota_protocol.o(i.xc_ota_schedule) referenced 2 times from timeslice.o(.data) +
  • trigger_check_process from switch_s.o(i.trigger_check_process) referenced 2 times from timeslice.o(.data) +
  • xc_ota_schedule from ota_protocol.o(i.xc_ota_schedule) referenced 2 times from timeslice.o(.data)

Global Symbols

-

BLE_Handler (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED) +

BLE_Handler (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

  • startup_xinc.o(RESET)
-

co_buf_alloc (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED) +

co_buf_alloc (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED)

[Called By]

    -

    co_buf_copy_data_from_mem (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED) +

    co_buf_copy_data_from_mem (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED)

    [Called By]

      -

      co_buf_release (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED) +

      co_buf_release (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE), UNUSED)

      [Called By]

        -

        ke_msg_alloc (Thumb, 0 bytes, Stack size 0 bytes, rom_symdefs.o(ABSOLUTE)) -

        [Called By]