From 01d402f0386ba08dc2e513fdba8cfcb09a6c1ad3 Mon Sep 17 00:00:00 2001 From: pvvx Date: Mon, 24 Apr 2017 17:03:34 +0300 Subject: [PATCH] update --- .../common/api/platform/platform_stdlib.h | 1 + .../component/common/api/wifi/wifi_conf.c | 5 +- .../component/common/api/wifi/wifi_conf.h | 10 +- .../component/common/api/wifi/wifi_util.c | 9 +- RTL00_SDKV35a/component/common/api/wifi_api.c | 12 +- RTL00_SDKV35a/component/common/api/wifi_api.h | 3 +- .../component/common/api/wifi_api_scan.c | 224 + .../wlan/realtek/include/wifi_constants.h | 18 +- .../drivers/wlan/realtek/src/osdep/wireless.h | 28 +- build/bin/ota.bin | Bin 300452 -> 300372 bytes build/bin/ram_2.bin | Bin 300416 -> 300336 bytes build/bin/ram_2.ns.bin | Bin 300432 -> 300352 bytes build/bin/ram_2.p.bin | Bin 300432 -> 300352 bytes build/bin/ram_all.bin | Bin 345504 -> 345424 bytes build/obj/build.nmap | 4556 ++++++++--------- project/inc/wifi_user_set.h | 10 +- 16 files changed, 2552 insertions(+), 2324 deletions(-) create mode 100644 RTL00_SDKV35a/component/common/api/wifi_api_scan.c diff --git a/RTL00_SDKV35a/component/common/api/platform/platform_stdlib.h b/RTL00_SDKV35a/component/common/api/platform/platform_stdlib.h index 364ccab..f115524 100644 --- a/RTL00_SDKV35a/component/common/api/platform/platform_stdlib.h +++ b/RTL00_SDKV35a/component/common/api/platform/platform_stdlib.h @@ -161,6 +161,7 @@ extern void *pvPortMalloc( size_t xWantedSize ); extern void vPortFree( void *pv ); #define malloc pvPortMalloc +#define zalloc pvPortZalloc #define free vPortFree #endif #elif defined (CONFIG_PLATFORM_8711B) diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c index d2c017a..40ebfa7 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c @@ -69,7 +69,7 @@ extern struct netif xnetif[NET_IF_NUM]; /****************************************************** * Variables Definitions ******************************************************/ -static internal_scan_handler_t scan_result_handler_ptr = { +internal_scan_handler_t scan_result_handler_ptr = { 0, 0, 0, RTW_FALSE, 0, 0, 0, 0, 0 }; static internal_join_result_t* join_user_data; rtw_mode_t wifi_mode = RTW_MODE_NONE; @@ -1260,8 +1260,7 @@ int wifi_start_ap_with_hidden_ssid(char *ssid, rtw_security_t security_type, } */ -void wifi_scan_each_report_hdl(char* buf, int buf_len, int flags, - void* userdata) { +void wifi_scan_each_report_hdl(char* buf, int buf_len, int flags, void* userdata) { int i = 0; int j = 0; int insert_pos = 0; diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h index 8f519df..8946aa3 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h @@ -75,16 +75,16 @@ typedef struct { typedef struct internal_scan_handler{ rtw_scan_result_t** pap_details; rtw_scan_result_t * ap_details; - int scan_cnt; - rtw_bool_t scan_complete; + int scan_cnt; + rtw_bool_t scan_complete; unsigned char max_ap_size; rtw_scan_result_handler_t gscan_result_handler; #if SCAN_USE_SEMAPHORE - void *scan_semaphore; + void * scan_semaphore; #else - int scan_running; + int scan_running; #endif - void* user_data; + void * user_data; unsigned int scan_start_time; } internal_scan_handler_t; diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c index 987469c..f59fb0d 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c @@ -449,15 +449,17 @@ int wext_get_rssi(const char *ifname, int *rssi) { return ret; } -int wext_set_pscan_channel(const char *ifname, __u8 *ch, __u8 *pscan_config, - __u8 length) { +int wext_set_pscan_channel(const char *ifname, + __u8 *ch, + __u8 *pscan_config, + __u8 length) { struct iwreq iwr; int ret = -1; __u8 *para; int i = 0; memset(&iwr, 0, sizeof(iwr)); //Format of para:function_name num_channel chan1... pscan_config1 ... - para = pvPortMalloc((length + length + 1) + 12);//size:num_chan + num_time + length + function_name + para = pvPortMalloc((length + length + 1) + 12); //size:num_chan + num_time + length + function_name if (para != NULL) { //Cmd snprintf((char*) para, 12, "PartialScan"); @@ -480,6 +482,7 @@ int wext_set_pscan_channel(const char *ifname, __u8 *ch, __u8 *pscan_config, #endif return ret; } + int wext_set_channel(const char *ifname, __u8 ch) { struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); diff --git a/RTL00_SDKV35a/component/common/api/wifi_api.c b/RTL00_SDKV35a/component/common/api/wifi_api.c index d7e8d0a..e965837 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api.c +++ b/RTL00_SDKV35a/component/common/api/wifi_api.c @@ -605,8 +605,8 @@ unsigned char *tab_txt_rtw_secyrity[] = { "WEP SHARED", //2 WEP Security with shared authentication "WPA TKIP", //3 WPA Security with TKIP "WPA AES", //4 WPA Security with AES - "WPA2 AES", //5 WPA2 Security with TKIP - "WPA2 TKIP", //6 WPA2 Security with AES + "WPA2 TKIP", //5 WPA2 Security with TKIP + "WPA2 AES", //6 WPA2 Security with AES "WPA2 Mixed", //7 WPA2 Security with AES & TKIP "WPA/WPA2 AES", //8 WPA/WPA2 Security "Unknown" //9 @@ -625,6 +625,7 @@ unsigned int tab_code_rtw_secyrity[] = { RTW_SECURITY_UNKNOWN //9 }; +/* unsigned char *tab_txt_rtw_eccryption[] = { "Unknown", "OPEN", @@ -638,19 +639,18 @@ unsigned char *tab_txt_rtw_eccryption[] = { "WEP104", "Udef" // 0xff }; - +*/ rtw_security_t idx_to_rtw_security(unsigned char idx) { - if(idx > 8) idx = 5; + if(idx > 8) idx = 5; // RTW_SECURITY_WPA2_MIXED_PSK return (rtw_security_t)tab_code_rtw_secyrity[idx]; } unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type) { unsigned char i = 0; - for(; rtw_sec_type != tab_code_rtw_secyrity[i] && tab_code_rtw_secyrity[i] != RTW_SECURITY_UNKNOWN; i++); - i++; + while(rtw_sec_type != tab_code_rtw_secyrity[i] && tab_code_rtw_secyrity[i] != RTW_SECURITY_UNKNOWN) i++; return i; } diff --git a/RTL00_SDKV35a/component/common/api/wifi_api.h b/RTL00_SDKV35a/component/common/api/wifi_api.h index 2002c34..17df697 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api.h +++ b/RTL00_SDKV35a/component/common/api/wifi_api.h @@ -30,6 +30,8 @@ extern char str_rom_57ch3Dch0A[]; // "========================================== #define BID_ST_DHCP_CFG (1 << 3) #define BID_WIFI_CFG (1 << 4) +#define BID_ALL_WIFI_CFG (BID_WIFI_AP_CFG|BID_WIFI_ST_CFG|BID_AP_DHCP_CFG|BID_ST_DHCP_CFG) + #define WLAN_ST_NETIF_NUM wlan_st_netifn #define WLAN_AP_NETIF_NUM wlan_ap_netifn //==== FEEP_ID =========================== @@ -122,7 +124,6 @@ uint32 write_wifi_cfg(uint32 flg); int wifi_run(rtw_mode_t mode); void wifi_init(void); -extern unsigned char *tab_txt_rtw_eccryption[]; rtw_security_t idx_to_rtw_security(unsigned char idx); unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type); unsigned char * rtw_security_to_str(rtw_security_t rtw_sec_type); diff --git a/RTL00_SDKV35a/component/common/api/wifi_api_scan.c b/RTL00_SDKV35a/component/common/api/wifi_api_scan.c new file mode 100644 index 0000000..f9fa93e --- /dev/null +++ b/RTL00_SDKV35a/component/common/api/wifi_api_scan.c @@ -0,0 +1,224 @@ +/* + * wifi_api_scan.c + * + * Created on: 23/04/2017 + * Author: pvvx + */ + +#include "FreeRTOS.h" +#include +#include "main.h" + +#include + +#if CONFIG_EXAMPLE_WLAN_FAST_CONNECT +#error "Udnef CONFIG_EXAMPLE_WLAN_FAST_CONNECT!" +#endif +#ifndef USE_FLASH_EEP +#error "Define USE_FLASH_EEP!" +#endif + +#include "task.h" +#include +#include +#include "flash_api.h" +#include +#include "dhcp/dhcps.h" +#include "ethernetif.h" +#if CONFIG_ETHERNET +#include "ethernet_mii/ethernet_mii.h" +#endif + +#include "wlan_lib.h" + +#include "flash_eep.h" +#include "feep_config.h" + +#include "wifi_api.h" +#include "main.h" +#include "wifi_user_set.h" + +/****************************************************** + * Constants + ******************************************************/ +#define SCAN_USE_SEMAPHORE 0 +#define MAX_AP_SIZE 64 + +extern internal_scan_handler_t scan_result_handler_ptr; +void wifi_scan_each_report_hdl(char* buf, int buf_len, int flags, void* userdata); +/* + xQueueWiFiScan = xQueueCreate(25, sizeof(rtw_scan_result_t)); // Create a queue... + if(xQueueWebSrv) { +*/ + +LOCAL void _wifi_scan_done_hdl(char* buf, int buf_len, int flags, void* userdata) { + int i = 0; + internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; + rtw_scan_handler_result_t scan_result_report; + + for (i = 0; i < pscan_rec->scan_cnt; i++) { + rtw_memcpy(&scan_result_report.ap_details, + pscan_rec->pap_details[i], + sizeof(rtw_scan_result_t)); + scan_result_report.scan_complete = pscan_rec->scan_complete; + scan_result_report.user_data = pscan_rec->user_data; + (*pscan_rec->gscan_result_handler)(&scan_result_report); + } + + pscan_rec->scan_complete = RTW_TRUE; + scan_result_report.scan_complete = RTW_TRUE; + (*pscan_rec->gscan_result_handler)(&scan_result_report); + + rtw_free(pscan_rec->ap_details); + rtw_free(pscan_rec->pap_details); +#if SCAN_USE_SEMAPHORE + rtw_up_sema(&pscan_rec->scan_semaphore); +#else + pscan_rec->scan_running = 0; +#endif + wifi_unreg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl); + wifi_unreg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl); + return; +} + +/* -------- WiFi Scan ------------------------------- */ +LOCAL int _wifi_scan(rtw_scan_type_t scan_type, rtw_bss_type_t bss_type) { + int ret; + scan_buf_arg * pscan_buf; + u16 flags = scan_type | (bss_type << 8); + wifi_reg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl, NULL); + wifi_reg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl, NULL); + return wext_set_scan(WLAN0_NAME, NULL, 0, flags); +} + +/* -------- WiFi Scan ------------------------------- */ +LOCAL int _wifi_scan_networks(rtw_scan_result_handler_t results_handler) { + internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; +#if SCAN_USE_SEMAPHORE + rtw_bool_t result; + if(NULL == pscan_rec->scan_semaphore) + rtw_init_sema(&pscan_rec->scan_semaphore, 1); + + pscan_rec->scan_start_time = rtw_get_current_time(); + /* Initialise the semaphore that will prevent simultaneous access - cannot be a mutex, since + * we don't want to allow the same thread to start a new scan */ + result = (rtw_bool_t)rtw_down_timeout_sema(&pscan_rec->scan_semaphore, SCAN_LONGEST_WAIT_TIME); + if ( result != RTW_TRUE ) + { + /* Return error result, but set the semaphore to work the next time */ + rtw_up_sema(&pscan_rec->scan_semaphore); + return RTW_TIMEOUT; + } +#else + if (pscan_rec->scan_running) { + int count = 100; + while (pscan_rec->scan_running && count > 0) { + rtw_msleep_os(20); + count--; + } + if (count == 0) { + printf("[%d]WiFi: Scan is running. Wait 2s timeout.\n", + rtw_get_current_time()); + return RTW_TIMEOUT; + } + } + pscan_rec->scan_start_time = rtw_get_current_time(); + pscan_rec->scan_running = 1; +#endif + + pscan_rec->gscan_result_handler = results_handler; + pscan_rec->max_ap_size = MAX_AP_SIZE; + pscan_rec->ap_details = (rtw_scan_result_t*) rtw_zmalloc(MAX_AP_SIZE * sizeof(rtw_scan_result_t) + MAX_AP_SIZE * sizeof(rtw_scan_result_t*)); + if (pscan_rec->ap_details != NULL) { + pscan_rec->pap_details = (rtw_scan_result_t**) (&pscan_rec->ap_details[MAX_AP_SIZE]); + pscan_rec->scan_cnt = 0; + pscan_rec->scan_complete = RTW_FALSE; + pscan_rec->user_data = NULL; // ????????? + + if (_wifi_scan(RTW_SCAN_COMMAMD << 4 | RTW_SCAN_TYPE_ACTIVE, RTW_BSS_TYPE_ANY) == RTW_SUCCESS) { + return RTW_SUCCESS; + }; + rtw_free((u8*)pscan_rec->ap_details); + }; + rtw_memset((void *) pscan_rec, 0, sizeof(internal_scan_handler_t)); + return RTW_ERROR; +} +/* -------- WiFi Scan ------------------------------- */ +#define scan_channels 14 +/* -------- WiFi Scan ------------------------------- */ +LOCAL int wext_set_pscan_channels(void) { + struct iwreq iwr; + int ret = -1; + __u8 *para; + int i = 0; + rtw_memset(&iwr, 0, sizeof(iwr)); + //Format of para:function_name num_channel chan1... pscan_config1 ... + iwr.u.data.length = (scan_channels + scan_channels + 1) + 12; + para = pvPortMalloc((scan_channels + scan_channels + 1) + 12); //size:num_chan + num_time + length + function_name + iwr.u.data.pointer = para; + if (para != NULL) { + //Cmd + rtw_memcpy((char*) para, "PartialScan", 12); + //length + *(para + 12) = scan_channels; + for (i = 0; i < scan_channels; i++) { + *(para + 13 + i) = i + 1; + *((__u16 *) (para + 13 + scan_channels + i)) = PSCAN_ENABLE; + } + + ret = iw_ioctl(WLAN0_NAME, SIOCDEVPRIVATE, &iwr); + vPortFree(para); + } +#if CONFIG_DEBUG_LOG > 3 + else { + error_printf("%s: Can't malloc memory!\n", __func__); + } +#endif + return ret; +} +/* -------- WiFi Scan ------------------------------- */ +LOCAL volatile uint8_t scan_end; +/* -------- WiFi Scan ------------------------------- */ +LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result ) +{ + if (malloced_scan_result->scan_complete != RTW_TRUE) { + rtw_scan_result_t* record = &malloced_scan_result->ap_details; + record->SSID.val[record->SSID.len] = 0; /* Ensure the SSID is null terminated */ + if(scan_end == 1) { + printf("\nScan networks:\n\n"); + printf("N\tType\tMAC\t\t\tSignal\tCh\tWPS\tSecyrity\tSSID\n\n"); + }; + printf("%d\t", scan_end++); + printf("%s\t", (record->bss_type == RTW_BSS_TYPE_ADHOC)? "Adhoc": "Infra"); + printf(MAC_FMT, MAC_ARG(record->BSSID.octet)); + printf("\t%d\t", record->signal_strength); + printf("%d\t", record->channel); + printf("%d\t", record->wps_type); + { + uint8 * s = rtw_security_to_str(record->security); + printf("%s\t", s); + if(strlen(s) < 8) printf("\t"); + } + printf("%s\n", record->SSID.val); + } else { + scan_end = 0; + printf("\n"); + } + return RTW_SUCCESS; +} +/* -------- WiFi Scan ------------------------------- */ +void api_wifi_scan(void) +{ + scan_end = 1; + if(wext_set_pscan_channels() < 0){ + error_printf("ERROR: wifi set partial scan channel fail\n"); + } else if(_wifi_scan_networks(_scan_result_handler) != RTW_SUCCESS){ + error_printf("ERROR: wifi scan failed\n"); + } else { + int i = 300; + while(i-- && scan_end) { + vTaskDelay(10); + }; + }; +} + diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_constants.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_constants.h index 2ddf1c4..88ef808 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_constants.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_constants.h @@ -119,15 +119,15 @@ typedef enum * AP mode support OPEN and WPA2. */ typedef enum { - RTW_SECURITY_OPEN = 0, /**< Open security */ - RTW_SECURITY_WEP_PSK = WEP_ENABLED, /**< WEP Security with open authentication */ - RTW_SECURITY_WEP_SHARED = ( WEP_ENABLED | SHARED_ENABLED ), /**< WEP Security with shared authentication */ - RTW_SECURITY_WPA_TKIP_PSK = ( WPA_SECURITY | TKIP_ENABLED ), /**< WPA Security with TKIP */ - RTW_SECURITY_WPA_AES_PSK = ( WPA_SECURITY | AES_ENABLED ), /**< WPA Security with AES */ - RTW_SECURITY_WPA2_AES_PSK = ( WPA2_SECURITY | AES_ENABLED ), /**< WPA2 Security with AES */ - RTW_SECURITY_WPA2_TKIP_PSK = ( WPA2_SECURITY | TKIP_ENABLED ), /**< WPA2 Security with TKIP */ - RTW_SECURITY_WPA2_MIXED_PSK = ( WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED ), /**< WPA2 Security with AES & TKIP */ - RTW_SECURITY_WPA_WPA2_MIXED = ( WPA_SECURITY | WPA2_SECURITY ), /**< WPA/WPA2 Security */ + RTW_SECURITY_OPEN = 0, /*0*< Open security */ + RTW_SECURITY_WEP_PSK = WEP_ENABLED, /*1*< WEP Security with open authentication */ + RTW_SECURITY_WEP_SHARED = ( WEP_ENABLED | SHARED_ENABLED ), /*2*< WEP Security with shared authentication */ + RTW_SECURITY_WPA_TKIP_PSK = ( WPA_SECURITY | TKIP_ENABLED ), /*3*< WPA Security with TKIP */ + RTW_SECURITY_WPA_AES_PSK = ( WPA_SECURITY | AES_ENABLED ), /*4*< WPA Security with AES */ + RTW_SECURITY_WPA2_AES_PSK = ( WPA2_SECURITY | AES_ENABLED ), /*5*< WPA2 Security with AES */ + RTW_SECURITY_WPA2_TKIP_PSK = ( WPA2_SECURITY | TKIP_ENABLED ), /*6*< WPA2 Security with TKIP */ + RTW_SECURITY_WPA2_MIXED_PSK = ( WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED ), /*7*< WPA2 Security with AES & TKIP */ + RTW_SECURITY_WPA_WPA2_MIXED = ( WPA_SECURITY | WPA2_SECURITY ), /*8*< WPA/WPA2 Security */ RTW_SECURITY_WPS_OPEN = WPS_ENABLED, /**< WPS with open security */ RTW_SECURITY_WPS_SECURE = (WPS_ENABLED | AES_ENABLED), /**< WPS with AES security */ diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h index ac98859..d21e683 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h @@ -286,25 +286,25 @@ typedef long long __i64; /* Informative stuff */ #define SIOCSIWRANGE 0x8B0A /* Unused */ #define SIOCGIWRANGE 0x8B0B /* Get range of parameters */ -#define SIOCSIWPRIV 0x8B0C /* Unused */ -#define SIOCGIWPRIV 0x8B0D /* get private ioctl interface info */ +#define SIOCSIWPRIV 0x8B0C /* Unused */ +#define SIOCGIWPRIV 0x8B0D /* get private ioctl interface info */ #define SIOCSIWSTATS 0x8B0E /* Unused */ #define SIOCGIWSTATS 0x8B0F /* Get /proc/net/wireless stats */ /* SIOCGIWSTATS is strictly used between user space and the kernel, and * is never passed to the driver (i.e. the driver will never see it). */ /* Spy support (statistics per MAC address - used for Mobile IP support) */ -#define SIOCSIWSPY 0x8B10 /* set spy addresses */ -#define SIOCGIWSPY 0x8B11 /* get spy info (quality of link) */ +#define SIOCSIWSPY 0x8B10 /* set spy addresses */ +#define SIOCGIWSPY 0x8B11 /* get spy info (quality of link) */ #define SIOCSIWTHRSPY 0x8B12 /* set spy threshold (spy event) */ #define SIOCGIWTHRSPY 0x8B13 /* get spy threshold */ /* Access Point manipulation */ -#define SIOCSIWAP 0x8B14 /* set access point MAC addresses */ -#define SIOCGIWAP 0x8B15 /* get access point MAC addresses */ +#define SIOCSIWAP 0x8B14 /* set access point MAC addresses */ +#define SIOCGIWAP 0x8B15 /* get access point MAC addresses */ #define SIOCGIWAPLIST 0x8B17 /* Deprecated in favor of scanning */ -#define SIOCSIWSCAN 0x8B18 /* trigger scanning (list cells) */ -#define SIOCGIWSCAN 0x8B19 /* get scanning results */ +#define SIOCSIWSCAN 0x8B18 /* trigger scanning (list cells) */ +#define SIOCGIWSCAN 0x8B19 /* get scanning results */ /* 802.11 specific support */ #define SIOCSIWESSID 0x8B1A /* set ESSID (network name) */ @@ -316,12 +316,12 @@ typedef long long __i64; * point to a string in user space, like it is done for RANGE... */ /* Other parameters useful in 802.11 and some other devices */ -#define SIOCSIWRATE 0x8B20 /* set default bit rate (bps) */ -#define SIOCGIWRATE 0x8B21 /* get default bit rate (bps) */ -#define SIOCSIWRTS 0x8B22 /* set RTS/CTS threshold (bytes) */ -#define SIOCGIWRTS 0x8B23 /* get RTS/CTS threshold (bytes) */ -#define SIOCSIWFRAG 0x8B24 /* set fragmentation thr (bytes) */ -#define SIOCGIWFRAG 0x8B25 /* get fragmentation thr (bytes) */ +#define SIOCSIWRATE 0x8B20 /* set default bit rate (bps) */ +#define SIOCGIWRATE 0x8B21 /* get default bit rate (bps) */ +#define SIOCSIWRTS 0x8B22 /* set RTS/CTS threshold (bytes) */ +#define SIOCGIWRTS 0x8B23 /* get RTS/CTS threshold (bytes) */ +#define SIOCSIWFRAG 0x8B24 /* set fragmentation thr (bytes) */ +#define SIOCGIWFRAG 0x8B25 /* get fragmentation thr (bytes) */ #define SIOCSIWTXPOW 0x8B26 /* set transmit power (dBm) */ #define SIOCGIWTXPOW 0x8B27 /* get transmit power (dBm) */ #define SIOCSIWRETRY 0x8B28 /* set retry limits and lifetime */ diff --git a/build/bin/ota.bin b/build/bin/ota.bin index 56bec0480c452bceb3bb1a865b1188ccd4bc44b5..493449b456607656a9c3324c97a3c0396ea4bee1 100644 GIT binary patch delta 25465 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 delta 25627 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 diff --git a/build/bin/ram_2.bin b/build/bin/ram_2.bin index 45d946e5aee7d9db5dfc1f5de408cefa867bfbee..044db1669dd90aee89c71c71a7415d60f8391add 100644 GIT binary patch delta 25453 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 EKca@$P5=M^ delta 25615 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 diff --git a/build/bin/ram_2.ns.bin b/build/bin/ram_2.ns.bin index 6d8854768962298c866eec5f0384f31a4980ac92..8cef69febcfc34fe99c16984af20987f84e4ef3a 100644 GIT binary patch delta 25460 zcmZs@2V9g#^Em#@K6l4a4j(|2Dt91C5v7QtSU~gvM1wVI)Cjg5sd!M-N&u8B8pYZR*5@|@t4#R*f^D}Y>@5)g-U4&85zH;DRL1PDc2O`grq~X+BnyA+q9yc< zjERk1Wuo$DW$-%Z%`MsrrFZygz)LszP}n1Z zBGND5SA`$|$E`rS!jm}eD01$f%nADSlBoDYnY&LROfQd7mV@#WjP{l`xOpjA8FrV0 zQ!4L3`b$GyMml0+FqSA8TznjR8QkAMF6KHWqGo@&=s6j@ z{SGwaGBIT4eUG84yvnOTf!UJHyS+01ONFpq@@==v%;Ok&{=GP6@OM(6ikY$5^Il*91 z2PeQ_XwXOuq&?a_;3K8z9zZ`SGB^-sm8S>)0v>f1Ph+ilS%!a}SLM<)Pva6PwBu6P zEq&RsCv+^ojlUybm^lL%8YViIRy{O+me)rq%tByAW41?}<%KkaV+~yXf(n)BCVGp# zu7lRYc-qW`95yMU51Uj;p2njlKZg=uR5D(g(P_BX7iKWbH4=qZB&E4k4!P2~PW})e zJ?iuT0;Sr{7eFiR2^-`5Hp-ueut zH?=EECz=%2E{Iu*nTAbK3h`2SL@MM+^CJ33$Z?aBql^JoMTe-He3W0By4J8TnrP{Mknc6 zWM6n)itOUsH@!(Kx)=)_zss8xSovIx`ArZKm!)9OeyMbd zVTH7`i&y+^ObHdLAza9>$3~fgg{1@d8i?WRfqz*mh(Z;kt1ImCGdsx`Y0`4)Dy~{B zo$I0teBH)79vfH9Br+{}wAfg&uGB6Mlw6~FLKi6|Dml>A*2VB6mh--eFYb`0G8UM* zFu%I?>3or0j*<36MUEWZq&7gG8?_$jq2C)xXI9IUP6?u>)L6y5(P}Z%5skVouu6hq zN2L9QaaNs1^;QbTUP^&OyyhG)UFZ@Nc%-q_!qy6*J;w{t6)Vxg9n$!&v%P0D3I@-N z!bOEnNL;~I;$EHFcxb|cR&YZ|qSlt!anTjrY)kmkF{ zE-NIdTjzYEbxK}J83cQX9_XJdW}!?#Y4@$rQDK0NoblsErSUjgcD+$6=2kHa-eB6X zq%$#0%T@{-Ff2u2R$s#K5yD>xLWO!r7V2@fISqEo@XK<_;DY_K?D936Hm~ZTkYtzV zS93lnXbBc^APQo|4XRLxUTDC6X?S#0eq*Cu_Otm^+T~xGIOCv3PRpv6kkrN)gH@sK zkiy|6W{gmw8KOzkiFSFRRZ*`6R^jJbb#q)WoN3);dRuVD*mR7|6r9qU)lWLfRWmp1 z&htW7g#HL45pocO3eO>)`3`|YFw45$m2sttuM7Vjeh$f__7&M<7^9yb(Gg#3Kk5u0xguV}FJI@wO_0 zGhggZX7LycAEvsY6^DgrO(c;|XZp0Og{mZclzT4l?vB>?yWK83*=_Pk$vHLyE=i+f z^Wn4dE3y92`)ib4i@>_}Z!u2|!jEW69}LeTBp_Tyc#1qfVhA<7;E(X%C@G@*0F*Vm zdmJ2=_H^$HA4#{nFNO)y_;_E)EPp3{G4%c~<`{s$teJ?pn3jbYZbm3UIEruvA#K#C zVKZcoYr4{`<@*{bqUW9PUy<|@0XA}i4MS!C6UoM+$XebZIvnx+rTB!IF3eW{ai zl7v`KR+831YalWs`p<+;zAS%qMc@$DiXYfRR{IZ4Dc>E?BrlMndQAyshO$hPFatA| zapz$?a1$q-xyTF4Fn&O)=oP2A(WEe>M5<~#rZvfzq=sIh`KO!0RyWCJ988K(UPBXm zM8Q5`Vv~Ho(NGpHwoQvMk;tlt2}w&%<;Q|e#8sE$ ziZZt~F;2TYvO1wE9bLmLJAvB2L%4=;58*Ea=C(!*bER#)gPiAm%~g-)IZiE|>7A+U zixxkUyc09QUz(N};_ZyoD=6mz;@1^&f(1h_X=h?+U?Ai&kIZY=~za<&0~?d zP4e%yP8ppB|NeHTGzfRA_7HusEZ3xGi6Qyl*^ZmT1b@tP+O}tATMSRxvS)f?c*3Tg zX_p6?lpD%(5Yuc;QWi zPZ30fB!o2xn>H(ibr|-L6arQfBDhK$`V4}}(zQPE6H{%SQQ$yZC;UyujxNL!im^Vn zVEpZc>HB6D>u&3SzcHAuFb83*i;YBS>!#%R=cO36{DMf=+TA&RLyJ;D^hIi*ZFf#l zYLmQ5n$fp&FV<lYrmy^(bFuF(b;J0weu&DvHqI)y=9 zNQTOwuGFG@9ZE@-eETofunvt$X_m03fB*bC?BMx7zR8S z7BQ^RRkg-qs{|bG<892|0rL3PYMc|Y!y0Y8oN5v@>2uCs{4p=B-!yCU$+K}$zn9Cf|5C@ z*U;`(h&Mfm5uH$eSL^P9{r!J=pkkAqRaXZnxDQeC3WU`NxfO1rN))iq&B}>2ZbkoM zmA)nDoDH1LC3rXDK9%y51HmrsOzs(X*K#k13%UCsvdk&X#WBJ)$v3`oDP?wliqZ@T zN?{v@KOyw2=z`jRmYfEJc%N|O`}2WUSqS3FEbRA))E_B3UQw7YH(T1{??&mp0U?P6 zEfl7UM_tj_p}hMQk4@+TO5cH+0;oc`+oFwJ<%O+?Ylq=J>B@jf&eyTlvQDmhdEb;& z(4<`B1%?`r;Vfyxz{Q}GG=oye^(bk?pgHh^bf!6>5+i~cADZsn?^*M~H8OYBkC_eqH)+Y6MIzf0o*lC#SDVoict?{&<5I6q56hDN4n7 zh2T>@Z^&&Pc9#zy_7*tjPEZJ^-c$%hdyl}X^1AoifO6bLTo0AkFXs9D@^uQ~C4%^=LRgD%0inZZ3SlzBJBZ(m z@EyXh2<}MhiZBM@U4&wUuMqAc5ajQUFce`H@~$_HjgGA3)BLdG<#Jq%TfWLoy@$?@ zdSpyiiT*?UGjE$dDBz?8`O`dZA)Y-`M(-8LaZ9B~`HSGJG^OCa-v*R-2!Zi1nuF&y zC!GIGn!NNw7pImL`mLz)$4dtQR7+9I{Z)+lUX=9OazEd**jHraCOg7f@@^jaE!kNg*aesLo24_$FR0pfRSFNIq%AAn4mF~rviqE{<{l>~GIrq% zQjy`4Ba|gXyBa;d&P{!Y^tMvy%JJ^anUs!>spgjS>B@*!IbW|_0k@=-kE)0u-NY4xb!5%FDjqCIul};H8ogZ!f81d>}(yNMvCdP4@JM>LCIu>_n2)32duh_geIZ}k`Eh>h~#TX zBwy>FMsTp=5X|yhjk-WT45u`1GKC7h7<*H?{b|UQA();mcwsuVQDN{zZcmISpMf4v}S!Elt^E$&wv%u-|J(-XIddd6|56A^`6{1 zlSi~!e#5$VQAngy?cGI5k&0SX@E#vkky*}^hHe-H-6d&5sz$(}LyMIt2mS6MJ=icZ z=(`DA;@h(g(>si(t8>^x|j5EtWN#iz#fL>a%F%zhCZetYWN!E>>VU`pk z#lT2uv=rmo+tOyRlSATBX@k_$`ze+x8W&I+aZPEft~OGg6aqF0Hbue%DQZ&;oR=nT ziu68V&f+wgz4QP#HxepiFlI5uArA4{*9~1U{oKTOA~ANw!4ri=(S71*!1Z@mgjr2AVZp+g333xQ|SjBP0(ONY1hhegt}ZH46N z7U|>d5y(`rJrOig{r1nGN?KYt26yys6wYPj!8<-wK1J>Oq;orZYEE(>%tolUW5X`@ z*!h4sze-B5dlJ-^XYZa1%3h5eR`M%*W}=Al0bl$Iu&q3B-zNacQt|$S9;ImGA%x=y zn-I22(+&iY)6vpL2j*Z<{_;Qss0w0~!l`JfQ_&GvTYjZzF2GG`P)VYuqG{&?4V%e) z##OJC)|FJlT50IP_we_-gA3rk)a%f4=e3x3HNpz%yF)3e6&S;!xF3G4H9Gllzt-r1 z!>?mou^o={e3c2=W86SEyG0ssWWMTWoMU`TrLT^3g*D}mj=Tl#AK)y5VXvcKkn(1! z*8e}aR8`iyLyjoRrH;4{Xr2&GmW!orr7`W-TDh>lYJCjb2DHOAr>s{4DU#)-((k3& zFseMIY&a|++NZNcN z(`&i?&;Y(rc`-L9!rxca4tyyuljIZiIAwWMIfanY80ocBJ)m4#d1}1sH0Js?M*8E_ zd~!NQdZVfn3zk*=3O|%j{Ms9!kF=nA72z7C#_BFE-y$>1fDa({^rwKM=ILvW8r8Ra z=NVT*YGTSuzIhJh@)qgy@4oQ3j3v&+?N)V;n|QkHrTn`z{QGYhvE2`kSwMcA0O!jm z{dkzTe~(fxBN!2`Z;||d`9sx=l2m6uMBeg`&h`d^l>eUl7(S4Oo-f4TN9Vs`s3RBh z;IY)XX1K%I_2o-y`T};aCu>vSrDU%Sb>?ExVZEKXTq){eI9!y*T$~7nQpLp-WmXT| zD3)v&4=Nc?mUQ@%zj7A(GD|vlDaCsxQgbnN3(LW<>{+gnLN7;RcR2iV6#OjZU)Etq zz31}&!0G0uFvWGP*dS+{*ArjdncppMvY3S8R&8t)o5Ee=+ua5U!(-Rvk!f=Fmgg^u(0xlA+`ujdYK6Qmn zR@$o`s*|{2NS}(kdui25De7ALK*r1VG?!YNsU$t~g(cT6cdO>AzAHGhybQfVn)pWuY?7A#aod@( zuq_-Hajfr6@m`IlWRzmrKhR;bL<895y=q%4Ghm>cVs)>%Vw2ERy zV?Y(4Sr4YG(`Pd5FLk7wtu*=q?V)Q3Yd{C)UgDn^eKQ#N9sivM2q) z6^64+es0i-g#+9mtyihdd7CPj?K#xTCAJt*70j~jx2b~D9ocro>~zUvNuy4-8A5&7q|f!+{Ei`&2& zk6Tt%eJ9>m>@6ybh*U3MrYQnUgFUoZfRTgV!(pe`huc~&&$nj2ES~I{addUENC&j7 zP8EYh722!{u9v4;SrMbr>PZ+IE+%2@4M(gLi#?hqdq8{Dx7Zlat~Wj4T_~nkJRlB! zqRyU>LTV^|%@cZPe#6TBC&IKjAPl7&JfXd^6ps~(>0wU@g0}P=VqiSI?+M)?g?f8I zs?v-?)im1+=^DD!3%r3)>II=5C%58^7a!X1@oh6$$t>8w6XFtLL_dp`Q79<3ROXD$s`u3Vh&Dnjw`=MKt^5M$FxbiJHv z;zJ_Dz4PwR>xRnID72qRg_w{9(-uS^#vL*7rZ~p4@czQih+&3yG4)_P?@oJHhZsM^ zgqQ*t&wKaZ3qlO5o_?mjejy}yg{foo3R9@o57De9wlM|aep?vg!n0yUPN%4kK&-;# zm7%DQRQc!Ze0x7GxR8%Fw1-IVv1of5!p~^G0>i&C^r7)S&1C;teYUhvad&<(>d>ktIy4mE}o5VTb33n?(1ru%|F^rzE& zQD`T+3j>YPUV}nsr{|(jJH77KA75!g(UtDc3psR+3=JP0~_=e8sn z8gT!DvEXAazLDyFeD5WPXk*G5 z=@8R^uo<1w>}I+p23~VKbCza?9-{RzkmztFLmi^=u`oW0+1#9?*={CMP^(&Ne)7Z>SP zO|*;(2&`@>=;%23tU>%se%I_Aro45!-i2s&+JS$`-_ix$;j_-2 z%wb4eX~sp^K#1d|b9mdK2~VVzY^l4PJ&R-LkzyJi4{=UGW^LMEasZtY4@2L)U{V=K zp%g0*l-UE7j^g+i62ptjJ5R&M)9?(;n#FBJ#59p?090L)&Q7X{d9`K8j zCHv4lJz=KOkw@>50OP?qfuRxH=sUe&jB*r4(`aok2z9;K^!I~=sx(9dQk?eqLz+IY zH;xf7mS!h{uX7UK;7F+YQ|_Z*o(NT-iLyO;K=9}xe1}3Pq(l2cq{gEKwYrd@Rx(sW zU(hOsx`8N`(c6)+p)bx!#!~Nouq$yvW0>f;6taq|?tw+ALOJS+Kjlvv zn`?s_)vr0laVa@$IFGEXdYGG}Nq0~CQ+}QP)emA+Lon0*LfWZ6M0kWYvOPwoh^rpx zP?g;uyBIgRvp*z*ir(&z74JtHnFQf5m5xq=keI2Mon+k1;mdqdeZ<_<=CuEe|C=7~ zNV8fwl@=#~zpf?Qzu5fWX4#tA?k7QNax+`uKj>y{|4RGMe3i{XAMZ#ztf8}$A*5B? zzt{?Ay~;+*lEEvz#i)PKD9tXvtR@-$vtO~k!i}H9aQ~FK(2;I7UNZoP{;4!(0QiSC zOC3M=|CLbq501_o0A76=E1z-6v^Ba_G&-yWx8wf@xBGu_^bCqXrB_gQezVd`rb7;n z*2i+mRQj*<@qeXH{VRR;f6~mdTaGj<^gosv{)NLeIDIb#LgQOafA}v3f`XoMTp5Rt zn(?qjdxIUDaF)7i0>v$j!1h-w6@xu;Ru4E)jl)A#KGwx`2ooswHH$r33l|X6?9-`q z!@yT{>XPZj|Jck_nOf8I9I}PCTBUa6{=Y?W`(GUO7zAFg3eom|NoX{a+}J9)CC$Au zXxt!JtelD+Lk_($2zvVFV3gzRK@8<&vj=6hq|+&0JL~Dp&||2s>v zq7T>%DFH9P+2uoah3Hcjfs^7t=4R- zXY)PBM!dGr7GV~xOod);MmMt4+^6!6Q;y4j6wl^@cSbV&8yXm+kwIRErS%_k1zBcERPL(*4tS33B6zi%$8SMWbS;T@zW*9nro zpcm31(SL+P#8T5!`7Q}8VI|aliwlw^fBj3&e+8Hl-)db@z^stl=d0|I#^4`4}nVXqTWMc zl`f(s!w2XfE{sd!Gxi5>&-Ke8EpyEeXw^{c)<2*(hC($AquXACYVW?7X&BxOor>YQ zWRBZ_7e6VTor!a@VYDI>mx9CSqfD4d&h4hJ4};0R@h3n?t^gtBKOn3@C_}h`0Q%Zt zup9!LP*4ayRwi^fhUX50P-Wye8^#|Y)MA`X*IFkPZRwejaM1TeU!~xKv*iT5Q6}KL>@O&umf=pkQ^g&2MPKItBuG`Y#qoJ2}y@kVDa$%y*_=yFt zXAa=-#phcX znf=X-_o;3SwD+oX5ZGw1%yV-%q=sgU0o|}&<|&K5$aym$wyfE2)C|GLlAw2R_MMyo zWzD`@XNHjSBuLzw%^ALM`0KI>CyaP`WW7n7#O3Ybv@u|81f6lKnVuR0eZ0q+rv#iF zu)3NH;k0opOpe>^TB;cfL2dh+74^}8+q9S=T7-C=v4@!^jfDy1+kW)(u`s#afiIdH ztkYhF&w9)BrLU&SNqdVS&%ivAtO~SppOE&s)5^N&sM!Gf&y1O?WRtTMrD1_q} zo;^&@XTcYYH5<~2(MnHc<0jm7D}9;`!Q^`@6(&PK@HIRnZB$RP6j<0!l-5{ny=)R< zBGAjq61POH@k=XxZ88KyKAkri;@U2@)|4r?ohjqCkQh~o(?PAV#7a+0hBPwNO34)H z2o~CT3NCv*>3dTkhM2LYPl3tg2aDc)DxAfQLo>ZK4Z?8eNjV+q$ILWgI((?vZgvuT zi6a~)tfk*f$CmzF|6n@!D&ZW3SRdcaNeOG^bF5qd`*EDk;1a>9p(KUFZpLtcNPzJk+Li!Uq+S(?A3u}vg z6{qzd8&auB*Q7m>!AiH!gH9TD2F|XBZ)0x)=+DiAZoEq|#!n!WmQd9@FpxxB=#Y1y z9}z5c?K?0P7x(q=K!2#x$Gi)BiN}KLATYSn5-!l+&x319@1uB=HT@w7Co!zW@FxtT zXzhnE8hX>t`4HtlsnI>NKqQ7Dv8&ikR6KvMP%GXraqAz;Bk0_G@OELBXKx|gJf#0L zA38XzSmNi+^w?_n+&R?lnieiTl67?48a%pY4zE9?U$zGBfD1bfZRXX_`2@NU;Ar7G z?2cE{lj|U}ZI%r}zBP^No+KuUeRX_Ept0IUJA4Z5G#R$brcsJEj+ImqP5u-ndVXk& z6BCdvLOf?u6a*UIwdqSgg{eG*Q}2zqc2T3-`_TIvVXr0}J)eM`?M{ve@%qgY&fsxR zvvw0)3Qw^lilEcfw<$s7HS%yNm6y!-SGJu|NzozG>DQw&02x zhS0dJkdYr~3^iffaak@7L+Vjefq0@`-KKl>08t$bx{)HcWh~;o@Eria-O77BwOzaF}W>K=}0iQWu2)_ZlIBvxGk(QYUYc!lBjJfv1<5WAI`gQGI9g8K%K(BIi7-D~FYO$a4 zx&Y&UX=)*abS`bu)VuPm6%9s~;wBz5s&DvUyNcBvcxCoZx}gxfbXJ=a8o3aSe2Hg3 z%)p$+=D`ZDJG1sozbk}n@>LTJ+W}dsQFy?9uiuxS?f`(#>1R7Z=e5qJ+|ER+d%GOu z4C;dc#ufCNoe+idfcl*f6LPANX~;tjdc1nhG=y85PpJQKz@X3JTJS2{byIXK(H%DV zMaN<-4KRLaOB9JNRz%GD0ONZ$+HV(jPsiw6yCA<;uuT!XTzvaIf;G&KB#L7(gAZ0^ zb&qBd&Da2=yF&;|HH%TvpxxMo4Wuc%Agb5Qa50m& zGW*=oz5t`mavdk}L^t>G@|3xcrIf=a&z6E3k&>eWojQV}>V`uLoNuUu1B~$wY%D%& zb#HY;Db}?vbiqF8Mn166efzM9PqWaA`*8l8ME&>Ul37nD?uQsRmDvr8RDkw@nQq?? z9W<<${N`wDZToINJR@#qdi(%<*!QfdwOXhTf+1E^;q&{iiH$RghV^-Fi7GK#mn14m z0*pasUQ8&9#%dI;Q*0-30mdVA?w8<;)4nxdVwXIFn!kia9lPNDk3thflep~zs~>DK z9q0jgpN3_t)8R={Mu5@ZM7I<{Lfmw_E84jN9?02tRx$7fwaw8BeRc|41{*I~ug=EI zSGMb+7%q@_e`6OrHnZm=CLhcWi<1U8-Ec~KApdGpp}h4d?}{zjAuko*-C+Ae&CgVM z2u`|JG_fAZiA0M2#-mO2{2?5_#68-(Ibc9!x+2mxam|6RY|Z(-NO6Qw%B3X$rjUG(X@SyE@;{& zG;J51cm#r)YnguO5gd)l{YHB6C=4LqG}3mZ(2%CQeY5a9f-X`WtsxRfTHYw@b`O%t>+Ns+ z!J3BLiDgwLPvM-2+s!5z{>DZNZF?L~086d3&vAH260Q196`;b~gEZoizJv7~{?+FDz$EuJ6CbT$wCaAZudP$WIu* zzf+DwMm?>phPnUF)#Ef++QeJ8WH>!hyIwMlMZ>z%{%0UAa34-gIpdmT?uA?=Uiw>h zVqgYNsyLlfiJwtLKRW{{!S}2n;?mGKc9}~NiE-L4%QNh;*Z`eMGDN4({fw8b^u-zY zi2P`!AN&_akx;BV|Aj4Nn}xpp4RmO!6zjf$(d3pzfA1SOPKfESe*5=09RsaC@JE;j zUMl-k^w{oXS)SVncsh4qw(0l$1o`0pFSm951%4w>`{~`!!gkC~i_byNHg%1z8M?g5 zd6!K4;J%EN@!UU^@jMLDe9_o7W6z>XrXr;7pi|C6f87U-yYu!e;?^7Tg7aX#cF~kP zvOa4OzrI~sjp-1w&7$9&hoLRTdtboCZx{WQ3(#MMCtluHVI0|F*5_WuCZJWA!^!~N z_igoN)64G5b6H0fjT05X39+xS!K6QS4W=_weQ&@N?;7ksY>`B$!!W-K5guarJKb;t z;^9aA4>v#w(2bt^6%Hy7b;EOc{gRuonFM@m6Utl)y~+ym6ze&ILgLW>ZY7DLk5O-< zU4O&szSl-y{|)-|TWhN_b==L?gF;P`*rvEQ@;tU_%i9!sl_P~Ul=Yet_k%vhZcV<1 zDpRNE)PuiCg7 zH&m`y6!qVNvSDqmI`|$tg}(=>ZA#6`hE2JQz>vjs+dcTH{SY%T_+U469lL){rw(TO zLiglky68Tndj%ko^F=4xL8pL@iB(uDqK-N37C|(sP_YiZ#UKiQR-T5Q2pQEyGNTjl_B|*OY|UmD~*;VlJ+oxJ_}0TY`c~u{!uJ-kFcCOcGVa5#n9>4))Uc zuB}$nkhTQ-YTR0Xj#UBAHB$~ZWGo?vR?yUk5ZV2dJzX3iW)$6(_4d_8sl{rC5y|G& zMXKV|79)a9ETyQQhw}{|Hqah;2w`CzObMdGp?0O63wwlvvD%?{87kJG3N}PCrS#=P zh=6HS_Xq+#UbicsD1>{_PW3+c%OESmTPc7dASd;*Cn zk8Q)z*=@04&ung6+ZGGKQPFqh+lW;MyCe1vV%^dFzKFf-zos^ky`x7YWFA0@)IZheiv?Rzm4hhzgyF?=fC9oj{wW+rG$gD)cmx zHtHI;?OwTRLu&_EL?1nc3g1pPr$Riw$5q5#ISeHY7o!}K{HXpJj#60sKOx-va$~~5 z!hwMI%MGq$MZw|epXr!CVGSth?|vXJtB!A|dqwmMV5=~E_d7!wsCPQnuT(~7@f zWPZK1m%-OjU?=IW{M`Cak?&cZ3e{)>EA$_T_eA-FFynRWO;dNlsn8{_E<#f~G|#7q z#Ix#j*6L*7sx4TBoH(w4Ri!|5dZY__Wf=1gQ|nVaDIV*QRkK;MGt&qzo^+KFH*~+W zIyLMb?i`~ER@bYzyEs`nY=kkefGX=@KMAwa(!arnep?S~GtXHby&W-AQ6GeCKUiY$ z0jklypDkmtZZTh1Ax<5vK-_6dYwas{;8ckFk44?EdW;H7qNpE(5)RN^&vEB-D?Rxf z$J!0_#&ej_f7C0nV_u0J{7UT5S7MW1iA}LEaZK!8)^z{IMMx)l^lx}?^c`~yzHsG+ zs_&cKinXYg8Ga41&4&MKZZ-TI;+hSwF}E82jRVIF{~kA)S~Z-Yi(laS8m~3HfGI;i z{2#fw=3Xsw7rc@?9dXTaXP8-IRMcmp1>+r9Ci%_(kvxoMG(dQpM65vL2p2 z-8=F)2UdaD33%2yPtBftrg4%ht3!9>!E}rrg4* zY=^$Qp?6l2#Q@>@l`3)#loJs5jApBeH7W?V7@X5Dna)D&OcL_D+}@rfLh;{nKAxjA zPyAa}@i?(f)~|6!F$!;^pIxtZC0Yd}=)>EPNWgHkKn^N3OHlIb2%`}C>ox7jVg<~? zn?)oA+S7A>WDuEPr)~YonrZ9?r9%VA6rya>9}6H&M7ah<%+OZ^ zkp~2p)1ASj8wTfsNeJ!=)(4ZB0EPOA9m#$kO7wgf0YXk4rm6^HglH;9km0z~lpaX} z!H>QbNqV+zYEqXi&(j#faIV)|j1#@^6AJWLBnc*Wo9NX@G94GceY=pD9-rFN%AB|L zDpTWIJV|79HA89KM02rE*+)8(FDgns)-@xDwe(GsQ&vH@)6)j zFf@*2w0mUPYzmKdDZ1h0c7bHwZsvv^9c(s7mB@%oAe>wNinZHfg5sTXl+jtLN1x~ zFME=Yc-3*lmDcH(C6b@PuQ|b9F3XAbh}>QcgKH)z@tVeiqx$K6NeOtjGAOX-EW`zs znk|j=q5a7Z3Uc+R{?8P$Q4JIHONWqEM9G!ncA#F9N$&Hwa{GG(@g;bSuNh4uiTS9$ z_h>R7@PzO1>%gVu=?xH7gug*Wg=Vl~xFB^j`kj&lV1{Zq-8e9)Kn zO{RmMn@op;H<{MioYQO z#p2j7JceQVw?wEZ)xXRk4+;FHzde%#67sB6-!z+)@DsCtAcAf`FPIVf?&F2UyYa1d z%;E80B80ynLI%P#ghk7M>xD4adzvxW>M?J8-(8WMq*Bo3}2-zhZ4Mmt^j zG3ki0hj#srkI6zFzM~$W5^t}s8h4sHaIIU9%z1A5UZ0ZoPPi%`zL}&b>z%L|blYZ< z+8ov2-%MNyjMvvw5)bgUzVkLx1+bFd-%h?HSIhLD77`UeXZ_|K?t`l*Z?iS1!U6;q|zbqoNK{NJP^O1_5LYn;i7Z4th+EUycW>Gnv=q)h8S)eEo+1kdwr-vmJU~f1qZxRm>sv$MtVk z5_f=J`q^KR2SDnM)7MXt5|_H;xNJmtbX@OJMY;g2*Z2Gydoo;Rj;|(}V4?@B(MP=g z_iA$6Nki?5`U#w%Yd`pkyn&wkfh0y%Rp5C*7hc%bkryH-@0^tNBfa^gG{<9BtuP)FCCCvzc-n$KhBnnlAe z5D9wgt1ggmfMxmzHJA~1RrX#)>RSD!i`Yry%&PBY(jT|#mRu&CHN#F|caJa;VJa=V zj5}K*y>yu*!%XUZh17bqGrNUBO;B2_AuMl3p0m-D%2!C7lfmSXc15nBF;_|FPJ2x3 z77veKTbaVKRSdgLwGaiaM>vQu&CGH4PtXsql6Jn;rqYIj{NU?J&q4S@zKE}U8*n~w zMJ}g@uM%H4K!3POR>5SNc@6jY*qdF^6^wOdsRnm!#v%Jd{HVzlxi{T)jr0WE#`|2l~vm(L>1lpG!8`+^>;mp>jcY;0gbs@=y$it60CJ81~LxMC3hN#um61OT%(;Ny_|)|vX@OS@LLa^upkLo zxM{Q&8Srx16ULWeWfxO3Uu0)9K5kx{7G<5n&_ZhD=+ZmbB=hLOJEU{;R106Y0>>gw+x)!&uDT!crF0;XitG3W zTeMFuyD`a{6ub046tWdfg>~{=t^y=WVClnXtt)M`(+s^RrB{d|dB|F|2!c ziLRT%k|esMN1#J);OD#gW;K6jhixg0#Ao#yYMO|Ui?9@7Dm`Vndn6U6)8+TbxWHZx+*WfRv8X_6xQv&Z6!@`|G3m;Z%Q#at-y@wv+B;a@H5V0d z9bL5d z_muSX{%Hs=oI|KbNJ-~~29~Bbo{|TF_fcyue!b=~h8Y;j7=GU$*9J*SAwpmGjQkDo z4XynPySKxQnxadxg1Q<>5IogK8nKxqp2r?qhgLttkn7q|qX^a%#fX>WWUFTT$PPhx z7b)OSOrTfMKvP)MCAkM;*?T04*h_K({iL46_taT^DwAG@>0m>EK~uB`jrPH}9vf;j zMY}NW$=-m(_)d(wVf+!s3o)*uay^;tde@RxrY^}xL>`^{oJ6(x!BS`9PLD0iO;?v( zlHbrDe9l$~TWRMPBxv++=JiZfSfrs7S{#GW2SG#_hG3{r2!CPePvd-0Q#1x;evcp1 z`U4e?#yEbyEzE%Nkr@998V7LMC^NtWod7bMcd-+_Mr z75W_--atA-HXYtT^4tB}g6F8+P(lA_AiX`Fneb$en}P2Ntuy&%U6Si)%u6!fg>81W z9A_5{tOr!Ei2L^f0Hj$}4lO~NqO!8U9J zW5ZV!ETpGLLIXBaHj%|J8d>_#cPu1P^G;KSfzx#i)`}N#%cIJIWBDlhw}oWuTIKni zR0x?^En72A$2il00<2`brWNgAr*&4++2a@6J^8q~$#J!|2)XmAcO#D0<@%M4WDm6e z>eRuU?Kxv})~A|q?wN+7@=!$pU5f4tg>+Z?E*w%2a zipTO7i1{7~3J=Mp}O4LO8Q z%x4T+(as9mrjlK&3aboF3r%MisV~Ym=p&xbgfiMo z!6$0iTVWq#AsMHdE>-Yx?b&DCSQ2lD1+&iwsKpNW#Mjba6#Q)O7&9wmLRIVi7p5tX z4ps8)(ZAD_e29m0%j*+N#2}QcrrVVKDkVz>(@+(kf{Zg%{5<%R-c<2%a8KXHiQh(` z7cF+?ci}jm?!x2CbVju)tBhQx5~KK z#D%@6A=|j{`kH^ZmByoXdc=j#@g8hP?r25*KBZe?7#>9{N|eR~8tKY+W0P-J{EDbX zztok#OFHP@$A#NPg|Koj5sEPMF5!hr47XhZ;rvDYGIxFjz|Yi4;Dhkxtj+?Tso7{% zZo6h02oO_?K3XpD#k$u0Ul~2$FHIxX;^%?-W^@a@glxSq)tL_U;2$(^sp)%p@)ZQ| zW_w$Hv~y=e^YHJcAL`A2#%mHWy&4^tiQyFb$cJA90s1Mv{6xTu5oi4P&dv{Sx8$Jp zeta?En&=LH-Urj@lpcR39PxwIpERY}P1Q9efl<&pf5e(&*MxMo& z8FbXN81UZ7E(_!!lnl?vmFN;$bmFFoNuqvUc&9Ci(h^i&V%ODrb%gAOp^BiB(J8Q zMDQ`V&rub@hr=8C2NAqCxT_r8*b8I${33Pf!bgzBU(+64_*3wL{@sNi58u5&9nA}9)kK&u4K)xy3JS_N{OH> z!*zKDuC;$9!r=$Fc7H^K@*QZ(%M9<+8@)DK3FEaV%vv*&zDW^QZBQF$jVaI zpj?9i*Qn>^D7~!@zXoqJ+LZN;JQ00F#YSEt#uA%i`*Pfi6hyx8q~prb8@MlsH}Z@c z+XzwVxN5}fh*4#ur~B~%Ak(^jye~Y~%l%LsuA7%8@m}hfsi;z2K{CeUn+~jZYE2jZ zE6v`7aM0;@Y5WCz3vhEfKL&$m>HL?!xabMh!_7RGL2 z3^%Ta@$G$6tVu81W+&jMQth$#X8kSuIu51J$vtV*aO|7h=%C?zPw&uDUfA#rFDyBY z^SUFv5PB3piKyQ&ocD5tj{5x*_#c2hv^TNI;G4B?^4YAZOybWuvq#9S<**h7X7N8b zk3X4E)m-PFW$`;nd$pxo%Z}2H8~6f-y$$D}(mhk~$Yv$oFqMA-ZS+f~@z=0P>PNrD zhk)WVa#G=KK7gK@$qTgcZTvYq1Ao@C zbU^~~9Z210@*U_cCZi9dHL}Q>C;hYc_(Xus`tU`3(8^idM67fO+2e7dj?fW7`-VbT{H8)!euEbtVtN(AC`>0H z-v$h~VVE(YIqr_30r?sJ|1Tbo^a&{EH0Ggm8u>U_lLWy`?F_z z@%end&-ZzFj(d1`p6BkqL^nYCKKKgPoy1t~h|6U|V(k)R`GUB7VO+i_E>DW)X-~>^ zS!7wsU5dBLOM?`#6-my^jQ_UBRx0fYaqWq*+#Xx0Z(6R`_^Gb3hrBxEE|l>QWQ+$H zCqc$YsN$pWkD&&;QHMsnhX6Y82|f?lUHN*2(_hhQnJUyGJ|8&B2MzEX?HR<{Hp?6* zcaew5Zw8r1>>;{CmT6^P`w{w}g#1t1+3xwNj=Y<;N#ahHDI&g4Z3QjA*+X)T#ySL1 zA~|gptTc(0rNDzqYA>;f`31;BI`wL#)8B>lNW~S}x^V;jSc^j}pUpBwJb*!j=odPY z&P*D6DNbPyLzuuVxR{q{Pp;SbNq2SfCK!1*|0f2#Wx6;pT&8uw#5%|Pu5g{j_sYJ- zBzwX~)LF!5aw79vG8~3a`lxQ=Qle#tH|u2U_Hbt8+wO_R+Q4L)4kgrZYL-m5+(460 zr+88*@1>)*_P|e*3gfXIhS1m+hG?y2G-3frH!hec7R(t@*7gor*k7TYs_4V){=< zqvzUxPoJ#IXItC#z^bI)kGVsD>~5!d(;j(Qf8g?;;7qN&O@5s?;a6!A=ci4KjVi6j zTa?*C{`Y949uF$x{LX2rA@h5WD)R*SXOIQ^nQxO{j@GBCuaHkg>r>P>$ej$&NO!+# zY*S_-#ga&aaxpNghdhJv8fAsStbT>oMpis?P;}AQUKfXjIf6D$V2P*@m{_tBI-cerUUY^4ZCmvoj8N5n8GX)zF~uLFDmd9_TeCcurYx}gW9ad z20Rb{VZQX?2dq8MmZKRLFaz(m+U!IJE@1|#7c~DMfctn@KBUb{2x1VkNWIAGcc?=< vMlgppm$(m#HvEYEVSTrGdzjl|ST@3s8`U^~E`%|Q0mu&vB$MVjhZZ$-0l0FS-|AY|M%_loSidg&YU^ZXU@#r6Z?GE z?DvI5YvGZP+770XHZVC|YEx%R8`FQ+x>knXG4rM}yHMAL=Y)VlPN-g^5Vk(yxJAzt zf>YWJDViyZK+q#>knRA5W6}aLwA*%P+ClZfp-?>5|bi!0lTmIXtsfEL!JXlIZoRuLIGN3WcC9 z?L7dUfnh_@k+$o$Ly(lMzY9M|ap9qGygD!ZNAS6B^);Qfyptb1&#!iIuCJ+7ii%te zJET34DbS(%I{pv+%fcDCsAy4BS$EI$!FN5C!f^zaHKu#gPrNV);qWuA^tBq5=q>t- zX%|7~WBSs5q)9QcIdD{(9h(t<6uC=k+794!>n+?M!8F6n>s2DB z6HITIIlXS4$`tKXh>32>4Cz{Iaw(HNIYB9`z?kM5r6`y#n^}x_ldnTp6_x9flboE+ zTo*AQqA0jlWm;*4h=@XcKBo&URGH2>9<(3dCq^tVaoqTzxt{`mW@Ed2}Jin#cm4Y~m_Vzj6> zX{1MSys1ieV1Ycm zst_vBt(6vc@=G(JPpI)2z=fYZJj@&+EbhafhD6c`j;m) zbf{Bpgr1ige6T#O+et^(rj#D3qPEgh$MW8yACtBSrQTvq0^K>72mU1QZalksD1}Uf zK}gr1O^H_f?E?KmQq57QaHJib2mz^S&NmZ(Lj_vNb>IzSMb15-iN;& zjk$@m_c3yvGfsCHP(Dv-`qL3mwS8VB(gW-f`Nny{^Op4SI316TO;;6~ugkqO&n0`= zb@P=blS@|>m>-fGINv1`>4PpEOaHJH}5ri7w0lsc|{V~o|ffYbMx8&A{WuoL(rHJ&zz?TJY#8PZW%##I{Y!cFn zFuA5g;xG}`j#wh=5Ly!2h4^8F9}$F_)&pAS>aj-J*tXAWg)#)&gn3$Yy>0sWOuE{3 zV;+;OuuYiHvc%c8&o6CB!ulC2fg333F@o|GFSJF7K}bc&LlA1b2D}rFqZO79jvV0y zPs_6y-o?sCt1jupK@mDLN$2xeg1Qw#-5RXYKQJEab~jvDT`q@QYp%Pe&g68hO>>UN z-!~P2>UV z0o@`5-_BBpu67 zZ$S@Vl(G(`GKKdwr~C!FHxXn6J3^}lUdSCbY*4YxarwVArR>)rbx64x(-DKR5tQpV zp+CAzDJGIlR`bx$M8AO|R!NDe(>z%=nECodRd|B>VX0^2}@-^xA)DD3xenL&? z0M_yEx*}Et56rGE4{^$~rI@ryQA|-5=>SGx#l*P3L0rF{6Iz|+g;R(>k*d;?wHKTU zV|JXXAu`t~H%N_XQE8t$qgOa(8E2acl=sBRYB4+@T6D^{?8d4Xu}yBGnZ(uIOU-o3 z6`%WE^BR~}#5gZY1wH&bQzr{?$wTW?>+-NDm?p|ISojE$2#E+i5m+(hosrh{2-nQ| zoU0$sbKG#Lu1A6LJq&y#`J@*>pfn*p!ruc!qfq@2RC{e1C*+`8C~Z!Uiu>IWgG%3Z z#LSD%{r+%%$d$u!B~JOeqeFg&{x@FfkP9*1^*&-CDt=zNpB_>AmE(vdS_sBCpF6fs zYlH4*jtSFz(f!n+n}!|FtP}yqBBy-F!LobT;So(P3h4jXF(ITix;q@au~lv?rn1$+ z>DUO$G~0|C?MJwRAR(+q_yyti28D1L-FGF0fGvUuVbbcJ{h&}f+p}9rKSxIt*vHWU z|1)rqi?Bu^*258w|0(FdV_{g5qdoq2L4S=U3^AN&dWC9&9pyz8IZk<*G^JO^G&V4@ zwMNV2bRCmq>kl?TG$P*q5ti*atO0~D93WZAMrUfX#$lb?m7*@Z zwx~S7DO>Cw@m|;T`F!Vym*Y+NhU3jjSlQOM`m{!g^_1 z?|wdPlv8k-97`b;QRvZwWb-af~SiLwWjZ}Juj+iZPHpjkzYr`$_fRC zv^gsUZb%JTei0Ww^Q>ffxPtK$(v-q)=(fe-D5a(oruUsSF29qM(I+^NwYyKPw~M%l zKkoWfMWF8!EBiknrT2*l-10nxm8WEFhyQD=ZSw^dH-nYn!e)-RDvw+qwNJp&V9sYe zc8L&7?P01?m`-tFfjCRO0O20eCZYROYUndw6OA2*jZllL)3S3wyXFEfFj57&wbJUo zZ$X%(>6cBSJ4-M0n+e}Ybxj^3#)dOKK3}K_F8Z+8CEs@Gf`mFogZ$v4O~oZS(VeSb z5MKe+MUL}3rDK&=cHf{yd;I^|EdhQ%nQRL<$y`bVPh0RQT2=g*Lg5i4;(ZV zG$+O?1n=>Tkw8 zQ$ic**o0A=FKIrtoqWMtwA~N3@2=_e)Ja4m-6o`1QB5)!c~N@4-~>ogu@8m ztX2qj5d4uIi|`V{LWDgC|3$DMcp_gi!VrX|2wM@3W1KbSkqL3Nd~Og9u3V9)Y2#-l zIbE>=us>v}#NYwJ1=r1QFXE(GrBi%5A)VDT3r~yVxCZG?>3rPmjbC&p=myHOBQPEo z#&~*N=Y;laq?Z;i^c>N=C-2m``nSb>07gkMOM+F5xoc;s|B|4<5S;Y$ixmAO3zv|X z9#9VvekCP2T>T7b!ICaMr<$X)@$YTi#NUzXmYh;e#^|Y?rFBbRiONK@<_;&UzRd}W z{B5{GROAN~300{HUM8QVSLF9JvozCmXK`&K*V^NBu4t8~O1+l1gE7+Zr4Lx5~^#wl``U zhiTei|7JX;(%=>CU~YBsiULSvY3ne1gwt`O*D8cJ5oV*Fi&5V|1P9X@!`QH?LU2g; zS7t-C6#rg4d@YT6uNN$kHosRI!&byO821ANmW$8OWips7CIdvsjdbfjTVbWNcvW&Bi^=qeLn+UG3_jWrbS z^$H;nAr7GzLVtwO2&^7hS?@x820|&qT7*v#ev&49FcgZU8u!0uO}0-F>R<5m#H*Yh zFomCv6-ndPbPW3hr<-V;Xi_sfn*2U1aa$!;RO+z$i?GBhq@8Q>;T`GEHHk6BHi%G# z>qTv&FSpw4lVFiY+IG&5i1TQ;H9s>>(Vz<79-ykQ$OEOkwf!JT`e1F2wiQk*Ewa?o zt+hkLez7Wys&JQ{)yGAve_47}N>vZ+vWmuN&LV#+4PO@lHPZZb1+YQ-eqB7gA<64H z!Yfjkln8^R!BV1EsX|*L&|&!HpIh3smq2g&|eylc(Sy5 z!zi#ycQ=HU688c<8O!nxnmAHx6A?3;lX20G3wPa%#?I(Bnb{&f4zaUto*2Y_Yvxhv z`Wic+|5rCp1Y%#fdGv^#YvyUCOER+7^pl$>7_m>xyckfsV}(AUNUe)B1|aEkcc4FF z+uea!5g{5~TX&PHbceOZFiEP}*wLSCR0u%`T@VH#j7FF$HExVhmE(@n>sKj=cJ>)8 zbHXHqM1)faH>6Q?k0-MV$k2yEy~9`2Edg zq$ic$-4csTRa?@*M|!m71NcH(P&NW)OXtgGv0(ATh02~d8$Xr4|1d>c&w(%-;hBpQ zl-1g;cZue?S8{9{52vcfmCpiYFFPlklp3~ALlM=zcU%V8S{=CSKLGut-MjbuaEVI6 zj(RH4y^ZcYX~M^0L`an0`FJKe)sH`p1=VQ`^iGt*D-OZc>V}G00GFh!ed*e2=hnMg zx8aVfzbdWVR}WXEy!~_W|BL;v!F{RQfhC%&822K=Iq8c7*{XAhVOBg3zR-fcbg*{| zy5r!Ba89xuO!j>q3E8`OgAhWc-iKaQ1#LpB=O*dXL!DuH^_@dgq18{g8e!CEEEfzJ zU8xH`f?HN)V=E{UW%-aB4*=~0!pZU;X+vdVyZ3Bd^q&m@#?5`&Vh>a{s)1C(ukqArEAp@a8H6GVfe2ydDR{cN_S0{{$BglqWJY?3u3cJtw7_q%>p&mAOnIiHC^k4y z)b;&KUL-v^+K3C8JGGMt;gY2O$Gbz7wD|ZKm5_w9aFTTM_^U)nl3uLqz?_A3m*Jc0 zQJ?z*^pIxNFDFi$WUlYz*#?r@ZFLHEPlVwJX$X1*4ZshatvMvPU@G%bmhfDJ>1cx&D>Kdnf&HBHxlqhSpRCOT- zGi|vr3IE4k9HC@7-jixCzNI{e*iTa0rC==H;g?F4=h2Vm?Mo?cY-_du<<^7^I32G3 z40EMtSGPk4iC(MKTtvR6t}*J@Q{9*^wZ=1FDF&?IO(R_jaZptV&Vocmvs%CMp9qBQP$zA_S5L}R6c*MmvqHR*@zM})(+!XlUa#L>c7{k~Df z2O2Q}6H^UAi+y|(3SdQkRXTWUDwwPNZwG@v3p6t#0t>Vw+^g<)#|tzpE+apbM*S86 zx1|NYU5{ZbEDEE8-X&Mna~$7akuMYl7X|bc3fa0d8r3sO%kD0RCzAHwTmDROrb|m) zCU^E{n#*uq2pB7QIti^^RvB zkx<6l5|4%dPcc=GGuIP6V`&k^vc^QP&7Hf3ad^5~-OH8&Y}R6(Gxn8)HM2EPxz%{e~gogz_ustM5WkD z98jbR$01W}l>MEm@HDYJpivg+S6(ofMQZB}9hlqO8*u9|(n8s1?OEPe8PT78kQ9dZrefDyCD{ zH2P{Q_`|bnvyRCBN^9r=!E|?PSm|@wrfTfK2Z}vJWd)HMERbsY> z(q2B$PSpmx3F0hRMEm?;?aB5U$ei{ZOOH)Zqv1d{|l}pMS7O zaLJd@Iyl)7)du#1N`dNh?LmL>hl#4Lh%0)~-fiIpWh&w&bZuLRD&1&~T3qmy%e2Zf zur3Q1v)U4{w%)_F8^gU3U)7AaLHyljJOJ@UW+7b2YpUs2k)DbCosd2U@kNMFM|`GP zo&T_FP*IG#aZNSjf+CN#m(gZ+m{?GX<(GxptVigFc`U)Tv?2y1ywtiEuo%iQ>W2udI7T8IKq#RQ2-%?pu7sj#MX#)U zm~h=Z@13uL&IWyurwISf%q5uQUUWhrrW8rb(9!a))0onXyb?^wL2m@YPFPNt1wjOC zrF(0n{N>JMm#|@$@O$f2z2zSb}&m` z00thSGz6luS`v)M#95*(3Nhta2~S60rOgy%C7p`Uk^#0zu~0_{WVikf$zLO|;mstg zX+bC~^I?PmX!JOZ?oovA=$%lg*E2G^6~N8}Uc+Qr&=PdJ?@$O#&T0Bhd#nLQ=JNvz z`TRhHAot{U9BD@oPSB_@=;(i<*~`d)W)n959iK!N?iUp?i^T*F(0J*>jke1zn_#dPoT!h9nftscSsZ3c%;_ zXasiN`DKMg?GERB+kNEJTtnCm&HK~H=Z`d zTD@!e{E(vCuejvyR`+DqlOB$PLz?GtX>ljW(XWU>iwc&&X1svGqBCttf4?F~_H)e8o$AFOC!Ck-1&#J^uA0A zhta{w@SlIw&7EYJ7RF%+OMzACpYj}wCR%y*M58Cs>2-bol)t32y21w?BQ4PwxWt0{ zx4w|fODFMigj3cylx$DDgp~-{!a8_VH%RsfwdivHl!NH_ZZPnrlV+8XlzHbVZ2Y7x z#ed4*n3<$V3vo*#(%HL8ykfxBGZ{W8BMxC8!YBkqeo#?RRbbH%(;?}H$xVHh6+lb> z#UAU~9eVhzLRulh9E7n5Yv}OqkfL0}ymW1M=%QsD>k+1)R3$yx9ez|Y?<%@A1*R$8 zaSYm27z3IWjEpdr&Q607%3X+Vq9@ZJ%ImcA$=%etO-PtQ9ceg1Y%&D)fNX#YIxZao zHNEk|M{3<4at}jkI@EzS&hg+b!LyC|A1Z_gG_M!LX!lyTEOP_6z7TtG9mUH#*Vpg=sp|1HuUTLqiE;40m)R_G8 z;~bY=#AfQa+PZrsnQWo*hdhiv=naXg4>3}=4{3M?#QH?onSqie#MQ5NCp9hu$BVHP zEj3x7pjR@mIqjewGa&|!(7~AyG2;kEC;3;3_^N=M0I?*e$sb(&zy2|9KkL9Oyd=jZ zpRLDD4{kt6e%b$op{#$!4St2ma>u1NG9f3cDT%Vb$xSN!%O5=Lc{F$U7`NZ8A}!8> zh4UTS z5gOkIg43E3A2aKpi8V8V|6(90=wVBiF|W*O@XUpsyii?tfS$~T(01o)75#mRR`fYqk2}}8Q`lOsAsnF4 z7vAz|$y`WcQvn~LtNTK*zJ>hsA3C$7%q@QUJ+eJ7U9~&*|7OMe|DXx~q)~l8@Oz$; zy+yLS4W2b~&lMWp58hH9!J*?QJ>L&f0*@k!S2M#H$;06at8DfUq){T?9A#uiI!dRA zuw>M8FOvSb8p_|=v=U0i+jK7Z02(F&s$y|P{D(Z<%*LY7{;4%M$?CFA!21@VYZ{7U3oScdrEG(6oYv$(TI-=`o)I!1%3F>z#^cnH zgDv}Ys?UXO+HQ8x@i=}rg`CWVX&wf=kN8mjjb`LQj{h2qrct5!{(+iL@5{$MycmQ* zM`>9e1pCjkR5U91A0F`Tpa&NT29?tv^B_HVkXuBl`Juep#^mE1^8r`il!m@P81$XC z;q4iOqaUHA1+`|{KSaL{{Q>9>rod?;qX96Zwj+ExmPUo<~79| zV|g%7XUZgHz?(98#>XMwn*WC{#}YSRX9^%!INlWSobT;_@VV2CH6>f7&DTB691@HP zXAW&ixTu+tDcq!B7!4f(?fizi1K9MhoagN>0Z*DU0`#eAmPzw>6ulIZRMk{ai53Vy zoC!U`C)_ORQ`J;h9W4-1oeAkXCve6c?gDaJX!!_eOU{_-(Gk$o|A~20$gw^v>bVF` zm%P;MzWrW8H6tOc%_XyA%X*2CP62_7?8Fb4?nAr9&Y^!X58L<-& zE3q4l#BPgWzN6q}O)}D0SgB$0DC|2y0qEb0pw@Aj=bOV=7vOdoZjOd^K$bWSZ;XZC zfed%ji7!D{(!)tNy#(jr6rC|1?R3NK^znFDPm&yTMIm%;^}->A@CJecA>Yk+s~PW#8@m<mNA(wdAsdFMkLSGs&2{$l5 z(bp#7b>3X-%{!9b&?Lx$&~6KHP!6|?v&ojD!efwP9j>984y*-lr@gdmST zPGv=y>05emCJrK3?7SYrm5=|*=4hDdoLxA?MX1any^=+a#$rgA=?8juCM-h>#f(|F z5}ZJ5XWNX*P%DrVWBHthsiLDK6)K8puiCS z2J9q0b1#Cx;8L?Y*KlJVTu}PE4&Zj-9td7|>GeFif#@dElM7)uq|%5|h=*}>a47`p z2H8)VxkW^T4XJnnk}Q6g^UYnZp53GEgb;Vo@Lnmj*Ql5$Xd^we0zT42xV&;>#QSm> z9ljFJw^`|C9W*Rl2{*x$9g;Tj8eaJibRzH>rK@ppok$IjKs2DMQ^Nwo!a@B-4!^LZs*XDZdfbf`WPFo7LI>Jq6XcHw zF}YmWaXgoZgD~`xd69UuQQf+0eIHRB4*H=Yw{fHxVtV9a?N8Boo98x$pkY{`x#-i)@DsV_q+f1qAT*((E#b81tS}+vtT?>SFc%k#h;wqPnyCQUG?6B>l&YYNB}d&TAp2xz1_D znU9A|+&>{YS?c3)$s_lkY;ky?igQrKr+D7O)GM+#%`ir?6muUS~Y|}aP(N;)|_{`2yz+*mr__IEKkFm75I(_q(VUP(^assB2}#%_Lrf!`=_1i5iAY%!VjAqEJ+|S% zvx-jI2Bm3sha!B5_{v;@%_oSYi>$gHV>?xMZxYc&4KdwwFd@v>B*sXC%W-gOPczCP z-b=EzLhas0?cS$zk)UkK^xkq92rp2%9M>lq)PFlf!62Hx9cF8vSYPhX>(7`6VU$O- zb~{`rX?D702YlQr6}x3i1N8otzOWO{w7OG(Ojely*ieo z>SqUD(_B)AhnQMh88u0dv>xhbl~`XYI%^knA>D1Xd>8iKFdO}O7vzGKw%d(+-?enq zZb*fGsFNuh>G8Lrg2^v^{7^{)#T!gF|aJeYOYY z1FBd7VTxeWGZ$S~0jbH8U0$fpQn)LRcd^=b%4Z$!apMDTREte-Y!GHs+;bHTjtV$M zx?z6J|8Adm<%p@@^bL82D9fhRTLb6W34`Lu`$Gh#EHSCl`i_j0i0-O zx;7q!Xfn!0V-G_6HhC`9zO2V9lEclOy@;MMX1eIugV4vjy(y81C089abAoCg zx6xyNu<17|HC97FfW?}NVd+(MW?unknQ}Jy2b(^(QQ-)l%q3ZA>Jhj{>MVxv8c+cY zrZJzwHF%SH7+?kz(AN#9W;)$!fT4oY9B))M25^eTLGYXGbZtBeFFc$>D;3* z0d^TK9fc~;E_DXwXNhOcW07$orJunl4Qron-3^w{aN_q`W4^}&wbxnmNK~s6P5%Ot@gfH;`2y#s z6ZAh{pw0awJ3ajcv?uS|sp$)Nm%L}E^S*>(WEOVQFJUA3%0^%Q3T@y`)wJ>}7*00Y z492hE2qC$L3>*K8Yab{v1bzpz!B63ujAc-sCCjtyfX7^SWSe2@_fQJ0{#6jMKfF$$|()xK2k9}H-qlG3GYNPoGtxw-Qj3!&kuN8R~1|oTpU~^nU8oe!%;aMd<*nlQmvXY zJ)UYthw{>GInnCr_TjZ9j`?G(US&!=?_?azuczB@fqzn4tG1b~jhn5NwNueH6#~bQhA+MG=2@rXRAuo;kVh5^=-&$eaNDGw!VY~ zFybD%;Wm5^{pt8SxCY6fuit?@zaR@SvT@_6D;ifr0ZD?#)G>!)* zaSHXh3*Ay)G()_)fm@#`?!gORNum%DV2ZZ3Hj;R4gYsYtmD|ARUt8Ghz#=Ep1$QB* zw6%G#m?Y*^+?GAf?^g8Nt7;TTfT*Yz`3p4dmsuec@GxK>o;>{Yv!$TzR3Q0>iWR${V+`4o+_aZV2~ zjkC}l_aHjjY)%yw?qrv^xaj*038LDa@FGlDi%GBi0tG88_7zsppaEySHBg)9qWw&LZzkekQ_uo^Bhl$ULrm zk@=;B_IaxC@fhbQzTrVy0;918lZvrF#n`EP2PO#Nw}@OprH2q7Rg7;3&zO&*u9F=* ziag4EO{BH@wD%Uj61A~qq%+ey51}S7(&15t2i~|mza@7-QG>;JCQ1&V)sJw3!D9IX zV*Jn8Q}>tk1-$cZ^cpD&?i%=x4*dgG;)eIyA2>n0N?m`zR{t)}Yvzy>$IaXzCMs5B zS_jgqKVj(TKW%BoKzBiSNVjB@?eC(vY4a#kqYkVvZX?|n<@dvgzu2yry9yp!(jPM;sp^N*o8W5{!{!=H=I zeJ(ctx!B&%#b#NVI41TM>$FdBi62S#KY_W!jg~}w;^d7<-?Dh`)nT$s@$*P+Qv9N& zMe!ez)};8)mKMdoaMPILUt9i8;Zr*IDNay$s{a%w4Sf3_a%Wo7n&r-ZE_X80n&eKk zux_YmEIr^f*ZBj{o~R?S|z-H!9jN7P_PTbPr&?Dzo*E2R!x zkpAGH0Zv#7`{`CEj4yr5?%CWdZpt(4tXZfkZptNg6}DzYV+MCqo`_U+I6>+ZI~%@P z1>TfLxTy-Hj>dDq*=km`1*Y*{teM=DbL~sbvkI4*O9}^x-9BiRlR5!eUFP zn{ukXxx=Z#%R_Iu)+}4 zn#2LRg9Wl*sXd93KStPv@PR?omb|5a<9MrvWWyKq`ykSf{DEttVDgfpjp>n-z8XxX zW69#3%wo7t^FqiZGSy``6hfRtc?m_#FjR$+y9C?P=5W#lo$td*1e($wg_CIj4-BIs z$!;Dh46cp@2=P8dNh~ozXZj?T3=X@6kH(c{5ml9Ve~K8F;EmfdY(l;CJ<#IhXF5kG z#gUXYM_uZwCG)h#zXLvT(L-@0oNRT`GjZf)$fIeUNMiRB&fF@^=CmsHeoksKDf*e- zb+y8Xn!QOVk8@^Xc;f$tJNJ~MIm(mm2Lp!jocfSqUp#pOJT;wN6hG7`%Yup2kM0b%vpFzG=kPelG-?Pa&H5@Q3 z7(kX2d6kCl!^x|F=U;nYBrYhVdqKgSxFWBpFTqp(v2A(#nTlvfb zb4537AURE_;l>8yMPR?-5hdLKiVP8(Ngcp>dSeUOLpmHbyjMnW`##sO_Cs>aEoB!u zhQc(v$xc{pIJldX5%lI&kOHqUxVZNY=PNGCFB*1MkQtz@INWr=5u{LO9yNsSBd_sZ z*ByKX@OlP>sR2n)KxHQbxh2 zBn;NkS)XEd-aYExp&M3zN{$iVC>Nw$ysKu-YB|euR*hkFEolX?(op;vxeFw|h7LJS z_IbwFprsrkt;V3LBb@-=Hza?KBORLWM%0r6_>1nT$6^?2xK>ZDduTVHNp~zK=-c%_ zFMmM4|CXf3Yd=MsdnbIbAIS?{#^HBS&>bi?ed&U|o%6x)rl&)ARBuT9j_^cz5cwAv z(tf~#Q?d_Pd}y%zNR|-I5ybE6dEo|K_A{9UmGs%qIQUl5s8d9O_YAeCNDROt!>!X8 z5%$q-XE5|V!>Kbkh~u&=?HtK~sdWB1(otJ}6sH4(g9u0H!EPt_ZBUx~a`kW^X zK5Z=C(QrB}H^~@1uXvuuG@U*ZUZ{3vCwauiS zm&pKy#x%-IM_(qDz4|(#0~e_>@oIc`(^}DR9qJ4kH^#6{VM+&Q@e&ACFNqWu2By1$uK)6B}uX^a)<+AG9w9BY>G_s!XDURWgl zVqSp(e>fltuQN|pns^WBqGQ5!V9!#O#I zX5AqDQdG7yJeE2q6B`$~FfegkN-lIgC)=#*PI5yxYzlu_6UQaFX^mE)ler;2SLk+5 zen9JPkWo`Vx1KY%L0O-n8-VVo=!T$s7+oE@htQ2gcOSaZ=zffDCv5ZEt zn4l%!d6RTc^Re;UmLJP{9588^na3uW;>dd3=CvDR-x1qkesos!O}aUDqj{##2K@on z@i@l&BIZYD+#>oe#F{C3=EY)>T)=N^^(y3aEqCO0Vg-JLIvqqffzW_(gx1|6W5Tvs zAt6EJ8Ev`9Bt{G5L3za+~Df1^&|8WRypWo3@c&zfJrhkv_Xk zI!5@rX>%+Ui?~Qn-5vQF-u`>rJzmT=_RV80%bRB0AvysYZNkeQko)joI_n{}h+4YxAxZH+IRHPn zfba|@1(cK0ed#8n2Ijf`PpejxV9ouJS%6|v|EO@55xOAAqNse{VMvJ zqvOxYU6IP(X(*D;%H8SmM$#=M%ob3a`B$_a)`l3h72EU9%5Cut;^&ml zTM_p}{66Akh%4xmMl!?e23pb8`%01U2A%ep#JB#&dddeuV+6o>cU$v}ZIz-1A-@vRaMp%Wg5uqF*0kf8Y z#Ufw})>e!_{;w@u^lzxiaKt}H+=%#4#E&9=8S%l0AGR=wTy#Kv0p0$Tr1+#*e6jd8 zS_tN!TX$AoOYc7=aXx`=^1SEd*J#u;(h3+kflQ2lYt!l-_(sdiXpr<1rdn zjL&sen*$5a%2#OoUu29YGo3bB6AkPBBEEe5dL#%nx87I{U-6v8&lN=w8~5oc+j02>*j zZ6Uka=_MQK=<~hfwtU3mbl-b5BljulW5-Fq%COi@wnORBn0TS z9VStUP=Xh2y6SGre_9oyu2#qsQ2p)pKvb}6_!;>pI~VVFjTuz0TUDZNLT;@`o(4JA z;NfUj{cSlAyDTn)@m&3k{HgmJUA5Q`Z78?>advw_A#%k+6-T!_iGRw+_{?5ir>;@t z-j)Rm-=B-{E9Cq8;gv+D&}oEo2(9pGS5Ofb%U{#xYV*$E>!e3c5~pRseNd(a4tJU1 z>Y72>>inR9fRTQ0XIJTJRe37ZFyBgy{41Ms)OAd-+AVk?>edb8;9W8_lyC{$+a)5=P!b<#+y zc)p!xwXUjU!bZVEnK%N}oC#yl}yM$!ceKDizHUK{h`<*sn{ z1p&3#9)-O}zg1wlcd@WMrPj6FY+=H`!}t)byx5W#mN#66p_&tve1wk&TF=>4YbJ98 zvW}!1l>Blf^S(;;Dn1)4Vv35N4G-xB6`u?@4PGAnW&#r3t>L%f4e)-Re3+;-`ML_L z$mYRSO1Dvf->2BGG;MN0wEt;N7h*hTUa!Ls{_OScp)?&tbNSQLWHT4jc=~T{6@GJ+ z?(^h}{I8;!Y<+^FahK9NJsOXv75kK?$F!pt-vuty5nlL3(Qge4y!czBebk${V?3h} zR_-K%8Qs8ryr4OY`%8#{ph@ ztPA2hYEoNb&__Z1-e9L=5Ps~)eJ!KFC2#+{>4FAZ(~LD#1@p@Rcm8Ri{9IfTR)z8@ z@RQ+wC_l;rqG@&%p9WrZK@`6jFQvGmcz=JkEK02bJ-dxN4!_@o$2g`y8qg&p|IUY(AzF58qwzmB|?cj;wd?pj*H>jsYcq#A;q^4B6Mr0Dq=68U@{uc7Si z%Fn_@abP#T6n9^nyYblsxv!=0d-y#6P59NP^}Nt+KW^#|5MeFC`J+U*g^vwS2*BK`DZ!KVCl)PgdTRgveC{HF+fzT<0XQh2UToYf`(N=cZ?aqqJ}D2e6(V*Ov4PE-lj)Eu?w3cUXz`?s zuVM%D?E<^mQt^{wXkf^4$?fW!EVk~}OtS{_DgH5)ys+Ub{LJhLT$~=lFD`z<Y!|I${#bL9@?DbBOU-c++cYG4i%yq^|6*FJn_o$G@ix`}!4LMlwDx{l@~9GUi<@;3>lt?C%^4?aTh2GM3wnHixkcV}EU!HK1HK z7_diU_QS2MM0cWa{ECzz4eE~*(-M)Cl7eh$D>hjnnz@E7Yc*%@&;97`&z|kY=kxhK z-{;|hdpPgzx%+sbF*rxFvZ5)HuXrPpPg;?@{<%P&MuR4$%;w07!7Y*8{et(SRK3JH z7&-u%yZ2QdVGzT)Jt~)j4UbC<=eI=Vw?^f+Mdh)fyk?_3B@J#Xxl{4(dl`@-yd%lE z1pD83c&9S%iW?nfG{50`e^a{dNX(b+3(`?Sx-v*dhF(4$d4O_#2MB{-<+ws>7<)adv( z*7fdV4ob;yFwSuYmaXIij9n&fWSbIV3$?S|W|=0ED-3Q$7fK~(tcsl`u(M>OU_Esv zv4r)7$is5#2e6#^E)*dhKQcCe1&kpJt!$seHoT3~OrVE(J^M0P$>1=>G2FxyX5nDm zg?Rs-0-YPX;sEa)k{{>)MDJ9YF7|GFOzXVa)%L)tFwf?Va&EE6nb1$|CVEx{*SD{< z8$K(f28c_EPJdmQj<+R@X9d4)Qz+K)kDu;vZRP=EJkxT$h2{FLq-4rFC}oko$dZU= zzo%Sh+3b$9e&6G|+s2#ZO4jP4?4Dn2fukz>HFz^UbT|cg*2*7{+xIkqLxVvEW7FFDx-a^%CwS~(->6hnRc$w zkbfAehkeTQli!4FIL3NS^U5?xJwkmid2XmaM!kl-B3N5$N1HNL6q`a5Tr`V)p8R!s zPRb6FI+d}=-woB{-OB7D_dyQmi7sV&$j^rAc;=rcchN>t?irlaapbw6RMQg|eCB6m?j!f{(vfUXM_ur~H@`vWr%TJzb(J+rTBbf)VpONZbw)`u zclY{5s=~XcK{sbU%ck~NBlf(n8pT1MYAL9I# zJ1YaF{<3V`y{X>SJV<%SVQSYnOev8MH=7$-4wHg%RITEQm)l{6$g7c%?J)Dy4dg>P zbOL20QTq zj^aC9!gc7A+7#erbYc!G$9UZiyKora;tKQ^+APN1kRGua!~#^pWAWupbm9o6a2ctm zm;evnf)7V<4hx7o%~KQPqZHMs!Q1G99}}3tRV*6kIukbFHMHO}SeN(`^CkV}(163Z zfP228aSLkEk84Of!x%gm!IBAndl7{G6EPx6CJ>Icnv flAHXygr6?3 diff --git a/build/bin/ram_2.p.bin b/build/bin/ram_2.p.bin index 3fee8e9b43f8f5e85acae9db98ccc55aaaf9e729..a0685106f68199f37e4b4fe089737fa85a77885c 100644 GIT binary patch delta 25460 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 flAHXygr6?3 diff --git a/build/bin/ram_all.bin b/build/bin/ram_all.bin index b9fa10bd607a8ac5bb64d9fe3e08d942c7216a88..2de153e19e78c1326c9fba2d80cd3c948185400d 100644 GIT binary patch delta 25686 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 PxRw+zIm^>LYhwQewmTTr delta 25845 zcmZsDc|cTE`~N-X&J4pcco9)nnE_E0Q5F|)1(yqmhHIKjVrqdaW~Ek&`_ikqjCxcu zaVuN{kw#R)7ArMVT*{3cx75@eQoA!S!~8yH0N>tz-#?yvp7WgNJkN9X{ht5GFaJM& z`GsV@krY1h(b|b+L=CajI<=N|wkDSEjn2XqA@{7JCC@IEH4z2LKU0v3*Qlhe&jexq z3zbxB++Eb!ed2r~82}rM_lg)fW}JIyNXPB9QFDYS<$OU_cp8b(T4q>pS{KiEle3Di zSp}h!MX7F^OXJ z;s~;g{#|`ymrDAwIJTsisILS4$hh{n zubQX9QcO%KqKi1$IN<0I7xp=@u151wf0u8G(Q&l5hDU3+%P1fFvathbPJv3&W(rAO zkkMkd(fjy37w=XGZl=oIt&)t=u`uJ$$Gu$<2kbK5KK?%0R6M5a4kZhUlTRqbdoQ?n z)^QQ~&x+-5-XMOHKC7c`gUiip`ngJawYcoto|Kds9VeTq&w=oVG2r`c9$~P6M^7p+ ze)D}7VlH-kZzMi9+Nh=MIdyqZg?um@xBs}BNXFPxi@;KHsul5RD4>e>1S!D9^5k@T zVm5}HnF*G)XNoDDzCXJWI0McNfn(f$eme;?_O7^3P8*{xgplLKX&25ApPSW{@tEEI^>uV|Gh;hcXp3z6Z zom0}Zzo1`l69!6_saDaTkp;bEdCw{s^s_aV$Xb;g>!M6GR$hzG<+3NlsHNqIX)RI9 zlI5C}$B4ExcIb;DQk_a%t)RD-h4&B73M$oDR#cPl@JvIxpbyE^SS~ppH6PonwVYuQ zgt5udmgY68=F!*1=)hEMg@;9{Z7mZ>@&%P%GnhRr?oKYbs78#Y6+C4B>ouHEX-_Sc zET3BE2Nk}kp6-6t6KWNQyE#FQww$vIk(TqKxd{?+)^`8CUbdEfili@w;XIRe!FUt= z(GQ);hF3af3DMmu^!;1Qk+Rm}ZhUgRI~ie&x)IPly;d)KSQfgzOKMf9d>)nswIn<~ zQ^m`EK_=wzjNloP{5Fx+AVVJCP)P-FON|R|_$FH5lSJVK;CzNxkT+UR`?)4ZrW)pUZ>P<39_!xQpVHXU>}z@ zA5!n|DgpN$q(M9@x+>4EE@~+WFc5UZSdxI?v#oqzkF(pf2%NFDC-=+?F z%PyH4r{~SdbEB83-l?2*AWaUH99imAwmJn%GY8sD3%#r^jB#0FMlQwlR7+=92(C&g z)LXFv77c*xfkwZZQ5laM`Mtzzkw{GodoQ!luIKrd{qtw5El(Z(McZe$0Nvjno^GBU zG<#7mxAW1cZ2F>*bbad8*-pjNuAif}Se*Kzfb`(hfH_Wu8du+JmHTJS_}RUSNSKf8 zld7>?wn;@2TB!t**8sNyc1rKyLH_mBcfNE0#)h{dK7Z83JllReHj!`_vl4G!MAhHS4XD zBzIsFfK8U%QtMQWIVP0z_#I(bFTfDMTYwJ%Qc2_fja~BkA1R@ID~!;>V`Y@d_cprZOH&w*PI^cO&VPL!GgS_2XQ zX#lCjv;V>{^j63p^c-Os&-0Tx-o9Fl)Lhle1H<)J+Eq;B3iZpSvNb5uKM{{NyIW2a zm(!t?TFV}2lLUPu%R9%TA6hbq(eHLwQehl)JD02~uDBgUx_F)!rRD(M&o@EI>jD0i zDrqIe1p{9Ww*}lp@c6@h1#T9gaXVwnyS*SQ`))khXWV+XJ6UYJe)of*k+#+{l@nw) z%j6oLu;UfyQA!;;bYQk32n z7}eJD$d$%F9<&VL@ncFt`tyc=-xe{YjBquRT63hl|qfH z9`_}g#*2?TcJAwF1%bUBE%EJ%PA2JnPms5lPy&EZbdWsfTL2$uJozL& zS?!?h^ykr+2`F>BTGoe^X65_WDmJ@Yv}dIuU2GTrX4H9ox;1N4%85g@N~lx+W)rin zG~!JUGtbKH#zB7ukoCsNfA;m^y_`x&61av0Xn4o?^`EVqZL-sLe&_XJdt7qY+Us;J zF_Ndgq^HsE=?6OAaq)O{akf6~8Gaqz8JF_jWlG1A5?`9hjDXNXL8F}QRN%{>rszFo`&m)ACst-euvu>-BIU~w$S%u zbyRv=W6!^W0(iaqvife85dP0;g$HbT8N&0^SltZYHPubiB_6jY z&%t^198pDXsUob8L2vNRQ4vid7}_2usHG_k6AR#6dj{YEXyf5NH&*;L);$sphxbqm ziW8ru5Z#(zMTwIN;FcO!J^z4&8r@&?rjhN8ue_K>P8!SVJoN82VVqA)mr8=NKFM|} zcb)n`sf^P|dQjG;?3|RycEzv!J&95LY5)fiUuo7(@HC=E5L z?c>!$N2#Q&;;HtVBC(VVAa4=(6Qfm<*I3M`O=W~+5Ox2nB5)s(oDn?|UROzx2$M#c ze%Fv+RPF=ksiY$dRMLLaNl)@ZO`5P{KIAp`O(RuOe8xaeyD6kG`GOE%cGj1K64CU; zmt>1XX2YA2AtadXYeu4j+^rMG6SELLe*E@q{p9hJd&xgOBE-K>jbb%DYep&v?Xbx7 zeE_+lC3{WV!pIDw?yy899X9#3AX6zRWQ$sov1GaFPD?VUA!uAAnMKJG)73Vl5mAr1 zAV}LyPojt@=87MyBpI*~a03v!S|v>b90HtNrIPLe{6KF5cpWeg@HyanfDPaQzIec3 zz+%8wz;VP`V;vC_RVtwsSkjA- z*I4U#5~Sh$9on&e@gy)H7}J6DELA_FO^Au@>R(R6eRFbBgz~9uZaiu4bFN+l?;1bE z`u-j(iznwa6Cfd>9b4CdOo~VXUUE;6R^1gORr)qeA64o8SyE9#jHkuttDKYsgim0G zj%1W~T{N|;3)5G!k2;bz4Wf>AB#X&4*0U2Sqe&PWJCVp{O>9wFzR#0#lPvcZlvW9i z+|H-U)yi9}duP&&jAFw&lOnQJcCf~79T}XE_mu>Ds za$EDsa|+_G2Jj>uh0En|d0Y;WNvdF3a@@g^yOQDQ4hLrG`c{_9e3e%rx@Oo!FO?Oe zadD_luP63(-;-AINz4|0_Yi|CFd=-Ch?AcU9JX$-TzvcAXzgE)ny zeUD{WoH02m4)&xwvP@y>9%Q%MJND+OHf07Y>Oq?MPP7|B0^uEJUvG_&0)UNX*L#rg z@%=!UD*1xY*RC=*P89$)r6=OepDZLJocUP4!@ z{qnjNbuQ|H)~%|F6l}^5Y*;T6PDSZHq&O9rt)a6A*L z8})N@8G3-N>P74;kb)@&6Dthap+f=keCZnR!k7$;A@{>RXuoLHf!S=m%`OD-eYf?5=O> zs%(X>uto?ovJ#oJ@}nD7QXrr`U?5;5;4M}qqrCI6g!TN51*VX8K7$lN8V`sCoCDlq zuceUBJ@`h0g64z{$|IHhLKd)FsTemBS#laOzKTsuL%&eN_N0-X=nx*Jkv!Usv8DY; z8?YAjBVCCPd(w}rCSS9;>0~&W!7ith>6}OIPv)t+VX%MBPW309b>#w)W&mC|1xanv z4IuZa`%6D_WI*dV)0lx|I#GAG3({FuF^EitAXAUQk3^0kY-A?U2OY*@SzYB#vSdX$=)(Pp?hzFf<#VC zu)0c1Xn}&kpfZz;BZEyn$B{uq{T$k@Y{MI*Sj~msWdp{O>8_G_z`h<&nyJlTxXUWX zqre|9G67SP2h1=5MQdhbCXjMhI4Bd*1Rt0NOoX*+ZtZzf>6_#S;$ua0u7lGa!?m-u zStP@EfpdQ^F;9IVC#y|RfUNKHw=$nS%OX|8V!D@2##1W9v3^rXCsM=~Od+E*QXEGA zICgsqd7Dac?A58HC3ojdMd_b3y*7>b5z>WCpH7z1+8Sn^PTG1jK@=Vh#nCQ@d`yh2 zEQkE+N?NjM^9WEwS_9H8D!A-)A52@uIx(+|k+nmQVzACh_CH!b{-bRiUhU(F>Sp?6A~ zNAlp@n+LI=?#(5$k)h%9$skw$zc9_2kI|JhWu^saThCd|0utdq5c21DaTiXo)(c5% za-I!YNXC%OtY{(WtuE|@U2JAsNcO2YUm@GGhyteDyWP+_WQguZyzfi{7_>k*t87CWLk18+Wh0=?S zT|x}rT+C=F;|lx7v5%LKg|3YKk@+npt#scZn9t^)1Cm+VQWB+m>Fq?M@7RK+WK_ph zozdn2n7l}d00Y1s@B}P;cgKib0qp98(X@=`@8>v`VdX;k6XvswGz;Kt+7gGNv)8eZ zv@{lD_mkhh8zEh8z&0NXM$9?qEMWVo8! z`hb-#Cm*OU0sV<3u7I@jY}g8ttG*1%V|H}~>Fh$cn*2T@jVSNaTCOBNlUeM=O0u1_ zWNZ~Fb-x1Ux)%1@$K+f`?oBB1NLS1L%SFowr%E1J6pRu1xiZ4;4Bz>-Dm~(zz^vfR z+nIVf0qZf|L0(~FR+Dsf3ryHXvjeM15N%P(POm11r9(BDSx)7dqk-4-@fxBL1I$oj z;YI><=rcA!2rq~m?0^xi(`xctkJR|_U@IpBc(5Jtz|?mG@g(j%I;THouWdxTzsu%s zBsW`gE*^`A5Q9@GDi;K?pDJC-3d-{DBW3crawN<&vn7lyBhQ#_6Zyc8r-7T)5Sz;$ zX4<+5J*f}Z$!%zmI+{gnA-PmYG<~*(ETxUTuoe{nT7U#lC7OC{Ma%c#0#zXRCz_^h zBUJQm;_@KDaD_xRZwFaOr9>0miS9m*M{VebxF{}`tMrG9oJwlce8k5N4 zj*=cNInfO(+Y!sL9JOK3zNiJNRFzUv%d3=L<_mk&&W%S&JDQNlzCTKSY1I#L5&(Rq z)l62)-g5seO&B_2xk~Y?)r2L=`TkXk#J)X72JuKuk0aON_Bc*b6AwDvH*3Q9j!czO z;E0tqVLaMShbAn|741_;vaCXQFv2%EJT`N@CGd5u{5VOZ7{96^u3?;OS%#T6L{BRt zwHj_yheY=FSL9ER4)r#Ie^NO*(IB?FoUHJtEDF(=0WOV^GRw)-)&l6-K*~WIC zAVd1Ti-B;Dzp$xF$*IZsd(Rt<)4y1rEVEus%2VV}Sp%CjVO7c-H9UziuzC!zL2?qX z5iYC{$sWSGe@&WcnxO5#u907p_s9WO@imDjKQQ$-q&L-XV*S1$opkL`*?R!8rx9ro zTlEb_O94kO2iTr(NN50`JXuSc%e{luI7w_Kt13d%LQ|`h*VwIZFv(12KHriQbsDsc zU}L@|q0Kyx#>mYrzdJQJcG0D;4b!E0gB=@5-;xL)&&^m4fOkING~fn1^(`!#z#QL_ zWH~?0rr!MSMs05seDwbm+oa-URs4dfXrQe5({DrPY=6+n^_bzb)wR z0G|(h3h-%GZTjO5fmy9xmFq1lCM{{azKpc;qtc9AcTRBH82S5-x6g0i+w+Kojh_*m5sSZox)_Dz65*gq6*Z@5`3_D7OPjm-KjXMQREm$5Lo#;FdO;giypvl2*ogzEQ zGPdM2dhxAn&uMa}S7E&dp4nU**UGi=gTovEKRo1`oAX4#T?6O_;1=>iO6bCVK10GZ zoDTf&GeqzERasOz*3F&xYOqae^Gu6^)!0uYJm8E2Ta4+C7vPCIp6MrJD zJc}KCpVA+J2O0Z`L?kyTjD~Wqw80>59M9n?0G`|2K%UbHfQAI{X^o9Jej>da{Rr}R z0N%Y>6fMg*OP2U>LVxVroQHb^@FTl-mXsSfncsQfCmu7QmIp0@+i8bN;&RTjlRu*b zI9W{h&lJ-G0D-Q-?l@?N0Vi0*Ijpr#)O$IZVBd$2hez1BbC@gNVq4FVa4K|T-<%`; z$WW#`k1=>CYkeNwiO|h7?L28obT<%DG7IKQaIdiK6{NS0?@4hl54ystDoE#$p&&uD zpe^yhmW7xmVvD=>zEHjcM*qP2ULXfTW>@dX3ZLTJ=Z&nLnZ{oJ7sIn6<(-*+<`Y>K zWfE(25flGp)3}RdmP#k!{)5mJ!#@;^VE2B-!b{(c{d|QqS3d`N1gpA2diroK&T#{z zI&$(=Oq)8IR$N8u;)1ylfEg@iuxNpEHqLGZ^yhwraYYHhTXbW8Un5I9H7Ms{Jf0OU z=jCy*e~+`YHq~CGVtR1a-APWRQ?+X_>&6aUCkNeM#%0+zNQz;3YwQ3a2R7q+36IXL zrTu)fNW8DBtcJ3R8>E?mleMK3rPBesJVH5_!r2<;FLslACEp_(3OeU)NW}>FMk-67G-z(n;)>RlT{DxxWH^hyMN(YaxO5(5hX^k99`c|rtJ%6+az8H; zJ9~1Abamw%C)ru-Z8FM_+gul;&TcMcAlrVM_^NrT?X2`RN%7%2xEGs7*w)NR8OVI@ zkRUZr=s*_BQJ(8V*`Pb*KmRD3dw0m>Pyr!a12592$~!jqNcD{qRUTAt(D!+&e8Z;S zC97Mtutg$pkqxWDJ|tc=p2gLVTE*R==8Nz}JV)pj-oPX7k$ATdn?Cia63E8hBLiMP zYt@)(o>!WxMjXE-`>Ar$$|be1QI{lYym()Y3lu^*m*E2$QGfw}*8r;Yz^uTcfUMI~ zNZjcOb#0bsKtuaQi}m=Obn#gUS|;Efz-Yi4Htct-0M>9XTl+g{uj3r+0TUrr&CdQ# z&ZxO}CEI$ROjf(%m~;=wDB`}HlL4dIjE7il>;k%poqb3mJkQrYyPr_D352Q4@en=4 zCR4y4SO$^;Hs%otaPNWZED2?QDqT#uk4PEOML8bbr#QKp^NC7&#L}K%ozIqi$1Bp6Bw{8SnlVM)kui`Y#fcSf_l{^nWU=laTj+&@Nin3qp~AOgPLI{6&1b^XOvw zMe8Rq4eIJ_wpIf6GxD5#;M0(};MlqhKFn4X&d|bo z{{R;8H|gxo$((eAP5hfIdhMkbq<_wa(zn*lgc5L9(5dXlj)i|w8_bCRRHj&YUlh_W zp#+1hzPE*lzL}4enJ$iie*EmLiTSZInI$V^Q~O>{3E(&@QAlE= zA=t)|k{&Btj&sK2%%PxWzsn3(vQ5{~PV^%B@4Aq)Rx;Vmgxi*nmET!U8%gn7V{@-k zxu1HZ6}$EkqaI%gM9>kIXCpy=vuy=cD)ICq(G~RQ3Pn&pJ7XhVg9f@p zj4`W)@;V)cYGN|9-G;kCfFqw`3kFtm>mS3fhuN}GjiF!x;5svRD z$5yKv=eyeQRdC6s$I5T)Es@4XsE-n+)Z-2@w&CCobN-_}*eYM?_1K$oT~Dt@;1>QfyIk^cH`5T@Wq)FZn+F2cJuC8%w-x@*Ms1 zq`^T@oHV3CaaKJeH@MEgP!{4woB0lL1@OUNJ=@Eb10F2JjT#aXZR6+c$a+0EuBa}f zVr?YsP!j19Htu#-ucErlYGotg#Yv>=&T)cyhbx0>Z7ko7Hl-J=?1&rf=J(7xKKNL# z<>f-SppRc{b=~aGVeVQQ+T^NLRTV>oFk-Qj7@2f5Sk7BnH!U4aoAhK`wDgUpf1|GQ z?q&E+oT;J}j6kDBSYvnkrh7bSJS^9=z@4U$K!5o60JM4`>2iG-Zvw(D(`^sBj?hK5 zruV$)AA}C8Wp8-X4zx=x+vH6zk#lTnBf5wVv$MY%(e*UW!In$3gZC>3RnmI^6(IN^ zJ1x;2oYjY>(Y+I}-4-KR9?aZq&4Gyco*|1$Zwt9Xw--FUy=GZS;rPwye zRrOx4u6oNjJL}h&hH){CX?&B8_VY#R&0iM@8)>X&uiHMoWs030ZcJ0Do1N7*rY%Sx z7Vb+k(0|PIrLnZQhJEHs-=GU>Odd_>PlRr%W>@@ZBpJ*|Q-n{cW*wT+dAjdxZgQeL z*k!^}R^Aj%xxeX7QyQQqXP6@h7m-aYBAE8{n12GB(7z#xzp-h-bRoHDstTr?3ANhU z%H}lCtyitOAk^{$JJ1}R$aTADAYtmi{_ZWXP|GE|bWjM_ScALA%K~eIkWkBMcE34Y zg8hl9p){S0W2K?gKn9wwhfu= z*+v6xspIGS{BHb1Fpe;tGSK#-hYh%P4_0jZ7>%HP=r=Z&8bN!|9X7T+f=(dQ*^>y` zlVq5pThg7>XVw)WakyIV&NAJKq`#{Docpm@ct9jiTrsJxGf;+fa#<5w7I*6djdDIg9-Fg_i(3Y zYHRtS63T`p(r^vW-Q)wNd5QEk@!$uxb-boYU1?iNjxyFAo$DLS)SYH@?&2Wf-&u!t zNRqqC-3{X25X+oeQBExqw=`{|sff(#ZV)!a^r7(~mI%is>rhoA*DA`&y7!=C8Yk4o zsp1--AvN$sFd>i=I)BKwht8w|dc?x;aSha&)EJ1-_lWwm0oc zuyc8~554FeQqxr?23=J%8e(Zy!w&YPfw)z3sxOW3ykPBsS+fccpA3jU=#(pX8Gwh9*=gT1$|7z0>nGPm6 zRcW6}(}xFJoK7?xk45r8gkH7Imyc9w8+9n}C2PZoVTdej93cl=o;Z2^Q&rs+g^j`3 zR@Lt7ZS|U~G0-q!<0@;ToM6ihr?8RNL|s)QG1zjMRisisTqwGqN)4_1I^B_k9P&U( za;nVx&{wsFwTB#aFGqxOo-ry@ zAG6SO>epyzZM{8AGz42dVZGC7_^6L+byc3YF4)G<51floirRMCtNv&tafZ*Tv{dzC z;mlymtlG)hNq-G~W8b*Qcw;ZOt8S?e6q~~hCcXm`pW_UOo0ny;8)tB>o3~W^}pj!S^kPdJEU1?c%XdFl+Y(TV7}715l?^*pmS? zHvFiaYrp}eQiALBTtn-cx6KL!1oC znqbSITGk~49nVTOK7-~a+8wH}Me?Ls6xAn?c9nT?{e^m}?NleCjv8!v;NU{IuTG4a z1r0>!)SUGkNTWTCHQuo9Ls<7Qn+1ZpF421i(gEZZrVPaVq$l$mL?g&R)^!k_p?g;S zWo@kw5PHG8vWDyShJC@7Uu#&qq136$CnECVrU+XzhiV*gC{tJ<(&OQUK|jWdAOMf;)<<)vZMhtl@6Qw_@>iq;!i!+su0 zQ*oE1*)W<+*0R@z(O55)%?k;b4{MxOws9D3uH(I(Z(&2t`g$0BLVvfi!dL0M?w?s3 zYJ_$lF~`Xol-4I!K3=F^teNfARU^k3l4RB1V9QmTC?^!fpa#VlR9k3#uw^-$Je&rQ zZ`qRJ=vsTT7sKfs0ux8jP*srSg_ErtK@;L9I6Yy`Vsc*@>*S?ft6X%r`i<3IFpCdw zyc6a_+)EQpjuG@6?TGYR|6M=tD_0yE$Xf$>7acJ!c`0~^!gq7(3W|)T$GlfNc^~3N zqvRmV3MV@~8UyV#=f*KKlD_6-ZN|{%P12m2y~%$qj}NnYbf*T+nB-)m$IxD0&7D!G zA7pQkCBVt{j-m5nuht&69`B^t8)ntk^PaE$z}0e&)wdka)ceW~y9X>=56iZ)*IuWg zbv4H{_jQb&ben_yJeKyNa~-U4CT&3{Iaop_?L=R3u$)W`;+-6({7ekWIJW*IfD4RnMHm%ymqV)?#n)_1cYCDu zyl5Q(v)Zz*GiW@&6OuCn}>YibSRyUX8JbW zNWZONZ_cF6>&tY-OgfBitTCBq(!-Rd9yD!y4|5-qV+xo}XAobNa{}@pKUqAUfMUmv(M+-R_xgnEl4=i`HG_o`SkG_rG;% z9__2kx3^2*KIfvf0HIsh*m;<;ywA4H!%ScjE1yRP)Z6HjOUucJrixtJQ-dpYK1=Cq zbYQh<%2HlYzhbMG(GdED&2(@XeUq#9TS3SB=~0-ZEtR6-E`pl?_a0ldf_5a|o4#E^ z)r91-QyQ86XvNj*1_Km4!gFmL-hBkMUSzF}uwUKl_ zNp7^Ki|lWCZr2w#%JVHo2(PzmbbGz``CH~V0?cLBmNAQp8u->YaLYb#ChB)fSN*Qz z8&+$&{V@#`J-U6NlKP;7PU^`t>*%K%j;Hoyd)Lv05gg}Jzf@N^cG}bZKhzfmWd&si zWf`r9J^8j#J{x4DhV}{7?s*2BX-0;K#=A;vwTH`xdr<=Sx32cgQ{%Lgb8x?bZ8uWC zxTe**dbTDmHt%ZhdcVKRuc>Z?Xu&U|VLkJ}NV^5yw1t02qkJpkv#)AAFRQA)BkC6` zbF^W1`GNI%n$qZ?P5okh4iDf&T-jPrPw|_F8!!jy$==;S(|iMM)Xe*hBhE<7h9t20 zu!;@zOl)0CQQApn|L_sCH%{9nPWsic9S-Pra>buGsyaAQMBIUcd40v`U zHPF|qnPnqwqN~AHyQ*p|;Swh@A4WTNe$`5%wH3npB>8h(DT|Y(aDPi=bt5y4)>Wtv zG*E>Noc^7Sj}AO?Je$jCN^T?TAURG>E4Zt8SeF*`-J_|JsJ|s2xIyl_7f&f>`ddnE zzgq9=Ic02I6sks%EeX?PZ?lh_gO!J{J|48;5KQ-I!|o`zoiU|JvSv>k`Ho^nuZh=( zdfkiEx#&BW3FW;|A8@qS`@oCzxpeTuMVCijxl3+^Z-&gBIud$cYi(yhx2 zG<#C&jhJBLK2_BWjOqTCF*dei6OD|tS`%cIOYI`35c#koM%KC%&xc|iRPYgtD`kIe zqHVBo6SA3x_zZQbAK|)Oj9ZmI3h<87pQUfcPDm#J9U|gL=V5Z4ByVP#f>*8^dk;!Lc*T zYm={qiXP{ihR?T-$)9h1J*Ih@CTuL?9Krh}&|)}^SC|CE{t~eh_6&%T!tPMq6*hiC zqa(8MF7kr)2yC6;*pcOy*VsZEY0rCY@y*ei8+tk`yY~q#325PP%foRurssE*mJl^a zj^?5ie^$H|0}Qg|Q`*|^f<0j$Zsg*sy4iDtEV)YHM>gbBx&jN{%1<#syv>}S(ye~& zYb&k6CyrZ%fm~D@nOhyeinh@qBcIkJngd)J;by#}SZe;86}M~L^0cslXU1L78$*6y zMEs@Zy0wGkmgh0MvW>1{z-<2l+L2eY(=~2pp}Zf8$_@VyKxx08j{yUBmGfz+&+Zzx z7x{zSV>MygDvfXl(}q3yl;3A1+v#rFvWD&7N&VT0?Q~_vnd*m=+Dukeg@Wy5bu5Zb z3k!a%9)ViL^WYe0+AtMpUsX5MyCN4&1KQzg?Th8ZHLz7xH5?LlvAi8Lh-_r09T+}W zv&%bZcF(~t#SVKZHua_0^p|3LycC;U&BbxCcX*@Si79>ywr?k$HOy>_#q%vMsJ>(K z+M|bBZun(T>kPkQYcTu_Xmy7FY-=$5YZr|h{+;c=8op$+c42_Rnf@+1e!z$SkUPzm zSTA?ROSuz3tCRbdjWFmx4gngr>~p%HVairO?~xDLvjUop zj(5x+y50BBTB&sWY|Nbdyv3K{< zO1yd6YK@7hj0&jGRmBPJu4rA@Tl-LtquGjm7?=m6a?y?K=Y6zY-Z`iq+9tUV#0W+sac%3%yXI%83R3(BYdN8AfYV9r#w@Z3S1A z_fy~Kiw+_3YK6PGv`XJdb3<4kDf8|)U2bamxz;t^M3=c9!()HIaJFDSie?Ynz8~Yv zr_8h;dttTAxt}sDPS^oVNKZSM|3SK#>||)(qD;sKWJ5K%n@1>9fGyHd)h_oPb6+K4Zo%MIg@0v=b4g=qlCKocl`nx6VJ7# zC8ZFfYHDd=HK~qKy$a8wBFa(La0i{hb)x`3omc4z3PC?GzJcIi5kfr@Z$J4i*rh`AxTB^PZ5mQY?=jeTky0rNM zZ4c+v1*~Z=nx0&slL>ibdhHV3Es_G0^H)kJ^*YGtHEJR4*t2VNQ0N^zh*#%@7Zu|6 z6g4lx?c6+6q3(t**m3f;Tw>#|)6PwfIJHHKX6wxV4fw*z4qnH`<5nlTa2->?G?sXS z#&$YUn_A?)Ik8B)PcYVPDf(KLI=vCmeNPh+q0%Dm~ppr44{YKxF}y7BC;Jc!sPqRcgg;?&Kz$+gKce z0jr|17)w53qOZ8k*J^XC-(AzY3DUqKzA04V3%29Ty@{AkD%dcWW7^(C{9H`l?Obo& z*Lc14K-hZg%FYk6t}CB7pJhj87iGs~UspEr(6}K*S=sBYW^kFnbtH~o0JyF!FVDdl z|7fp@}&rQM56)gj_uam>UYs1&gq z|6u?m?-Hfld{Nqr7=GViY4V)nZ4;HU0dp1-ArUa_4=POsEclU14*`P^Uw4X1+rOq# z)mbXNdj|fKRGNF5N~cUDO!TF?il3=udrOoK!>U~-LkrQ<4~J&aiQ)hnd4zqKD7L}I z>gS2#NtL&ysg>n)5nBMGR@0^~;yYsNZ|z%c&0_>cjG0*()gM*$Lu63mE2h+;rdxeQPfGTgo}`E!3CS{rr-^tldYRqo zCw@*_9x{EDE@JsU%e1z?c+4ebsCW#*+=q!f$tu%w;xVmA?2GBVy2L&-We{Y@li=@Hio-L&dW@fd9!;Ut}}+}HAI zwT!1Zxx_RwTl6Mmg(-WIc%RVd5;k~>xYr}P1Uuz`#1fNcs@Rs0k4^E@#BhS`yW!Kt z4DvVod^)mWh^cbAc+*X{0b9DG1hd+u%VGlCYP)P4;9`2u%< zT=y3b{?g9};dQT=_-oqO*`i3*2f#nql=wa}PR)PP@rlXyfw+je9|nHkAmU}yl6m5E zynuZ%Pizk-B3Cq$k4&YxVrxR?o9@gyYeFuSNKn-A`O%OVk;sitXkpt!Him^PVL@O^T z)XA5XGPZW9*es|Bmux8p%ik5j!RPH+z&!B}g3FjRe!Em$hQ1?x88UbvTd+(Fz-dL^ zGO;@u$*wL#HOjNH_m+!o=({%4j^$z;=@jH#cxXuT9#Mzp(y(ieKvW-*y-< zoBGA2|NVNQR~)TM8w6f(s5%^eF@LPOim1&MWe=>2Ml-Tf4DvkYxNKc12!>0_m#o!F z5&!pM16GOwQ5zk9-ET>4p3=+zoju(+hZRj#OZ zFnHB7q%pD<^`RRJf}?9+v(fr#6KuVcOG;~&yjJYnSyPjUW2s9Dtr1$x3y2-lIhAy{ zq|{Vv+bR_uQ5F8KjvW){qE%H(ZLJm2sZz&F$|F{`R($QPuc|Lun?Tl4xc+dzgc}U^ z5L`XngK%5G-3vDo?q_h@!rcKk2JWZT-LVYgnK=m6e*}PcGJJiR2|NqH|BNw>&0U8E z`yTszo!H9vjcPG(F$OF_U-wG{q5NZZYn>QGv6ElBPVAKEQzLF$b}acX|M5euBC23# zNAh1yX5JdTP;Q3w=&Ruye|z*s>olne{QlKr(Z@Fi=F6rUMMHa9og{mtwLzBrivNdo z&lL0xH{^Dr06&FI2LLAk6@bI6%qWfu-BwLvVq~#mNt#z!SU5E=PE&1B=Ur0%V?&84 zf3VK$#S~oM&s{IR=GNIo+sJON7yU>qd$C?@74GMvy<;nwFSPK`-%~1a_wPeje=*10 zCym!EFV=H|_#(^(ot{V08v^*>LwMJ*rd%a)+xSD`h^?kqH;UDwdNLSBvSC}qJ>+BN z+#)W)p74@9@ge!1P5%TnqLi)pMC|N$wm*I*0eAsONfRX-_p{5Ni1$M}LP7=pz0(Em zez+-cnE5s2({bSTFiQY5)ij30=UStAQ| z1tKEfu&v=XL`Iq4LsAw1RsuEx@&PeOT2Ew)gc__X7!LmLY(nJkuw)qUuYj9@4*`Az z_%+~zfFH7Pi9)1*c?R3QOYH2^+141@x6wwCeqr53Wi5NSON{afaFJ)fB+q1+Ikh5V z*?`?*Zqt9;(hGLPe93O_7Q6U7vf>y`$i`!xRn~yai^_Et{h2t*gKwSI?IxPmeI_;* zqt}BVmE2WsRIBhhKR7Ee^DbU;*S#X*VF@LIA>;Xtx4ly@@ZHEgVrRpT7+U$fcQJzb z+;1M&u0&j>eU|XehFGj4v z?CD-{oS{Kp)-jc|4M}N;_$6?z0|NGmqjU{q7dyMUPi*CL%5hgYY^!zMdbNW49P`Q3%MvMVk)#yUNpQm8>t7(j=I_-5vk~ zJA_?OezFVEzLk7K^=7q3){jdqbxU&x#~K`tb}-yk0?=eJ4aT|p1?5ZE|Hn$v4r?H{ z`Eh=GK_v^>Qjx&69~AvMe}=ySXv?%Es?@uRWE1-d;l7z-KVMu(#euIe-Qi&;J#GBD!&k8{l2MbYv!?=x?&sB!V&uj3ojI>MlU$VpXp!^9U2=X zeT5WpY5yY$;X7DaAv(29OkE_7Rl9Vs>>@FWUt}v1XZoGQbu0W_p^VG=2JtHa+gZpV zaR6D*CLa=``ClatiCuF!!vmOF3x?)pSZ9W5O9uAVrU&}_kMRAlcagqSlcs@<>DAOM zPTG{BE#rc)Jp=JP#LR5*~2m zvoXbDyy1UVb&#bk!J{rr6SPTgsctBhDppi1Hgg}bNhN&@_4%x#So9^ovU|mt=YGLD z9!5RqkGHNNP283dZ0=z(z8U`;9rxmTR~Y}bfmUt~VIQ#{4kP2++jyE1${OyraN$29 zK8aLcX-ErC8zy2fb6klS?&F62bAHvD%iI9g5o|+=xJ=ExZ!^P}Vs8}0#4j-mdCY$O zQj90JO`axkGsVm3-KF9-+yL);R1B5Xmd4J^BD#4{k=nH_AnsM|Q(HDUNu=L-K_6_s zWL>Yv?~L|%bx~UmV8i_RdAeC>U3LDy+#38*mF+z$X8GN~M%nrpRn;!FSJy}!P^e-mlvcG`ku}gQURP#h7F1b2i#^f@s<4 zVDD9mwPc>@-QW1i>bNP^j1Ga=Ok-||=^`$o?754c*~|j&iMd#RZN4Y=rr@r;kNt== zzfJh3)p}9txDU(v{Zv{DxO{|4cL25uDs4yD+6|&qR!AlHB5W6wU<=?Hm5T0TOW`4v z`aYnN@dQ73Ir|9JemU#;7-`zTvLB1H0(e#$FY(`sEGguz&ohi*t^BhRWwJdMSCB4t zySmCQQrTZttrLwDKR;D%S%j@sNfz^tx$YZ{#I`5y;#uz72g_>LJtNUTEoM7A{-+om zRACoo&gZ(!voX%F50`n=xXeQ>-?eQm{(Vij9!6NkfjXcIqIe+MBq*oJB`#qS2HCx4h-ku^9wAaf)-J6xSNRaJ{) z@u!1Fronb`B*E(NfJ5x9%lZ>t>{FHW21eyw%)v?B;1vMhAZRHYP%HNK?uAe@ys3c5 zKiQ|XVkb1<%e7)FbqgNEh*KOzGs@WOPVuyR7EIZKin4b@tg1MAc#VF_CR=6DS!Hld zCa@d82Gp-krjP`A_mpQ!1WwK)<+BPN#S&GsfQ~f@_+J`!7?Pbzv+}wvTUTXfcs0`5 zuXUj)ZTJ@d&^>|K=|TKX@(U4{(^e6cuP1rOwB1Yf1L1}2t(t`kX}7#p<9J(Yq&n-) zi(FVKpwZ^K67O_=LRF8{rSg*aoT#0Ep~l)z+%q4iw8XCn2LWc z@z6f}^PIEX<+OJ=%TWGl!o4jx)`4TYILibV#y=BywC^~!p0o7f*j>)@ohyK2O>&9tSJss|yPO;;mTq5rS3vyE-43gh@`dn#7hdWMcLaT^2>6TlUO z3^o>MbRP&Y&cGxCfncI6O5;eJg0Ng(GDQ-NFi06=-C#^u*vO_IE<@1qGGW4CbH+iG zghgRYBxVp%LBQYB7uzo;-sIQk|2*e8r?>6d?S1KeR=%QOF|!$37HLxjZ$rsKZO$yw zrspEHNMF&Wm)KtXP2}}q2e4JdMK8hnX#X!=PJ1Kc7;=LdjXJ~La8Q4oX|=5nPY&jX zQv26MG<6l#^k`gkaY;Nbd9meWLeAy2ksM89L0Mc++z{7YR$Q-oEvz#sB&C#D9&cza zj%(i=!Gq`YaBF{b1tfRJJM3U!W7?UZWo2V=u`&Hnf_^wbKa!x6qPk?M9Fs=+igqi0 zelG!WVgrfh8tlLE*q{>kB*Y($X}kQqzU6SA<{e&Tmv!r!)Eue6Ak`(LGJ{lQsORS3 zM)(|#Ks$89kI)Y{;SRWV*f00%43||{I_eWK{~IMnZ+XW-~hf4 z8<-Mlub$*I+$f})up_W;yYw&Zb)0#u>@9jp%MRw<<$Gi#?qj&J z$SAU;!bUrAS7%W-q{j~Zt@lu~G3dXqXHBmA*%4l=Iln|cq?fKb%uw=wi`w-5_=hKB zy=b@G*C)m$weIJ12~2BnnGfytW8D>Qi<6K>?UFwxjzQEYvEgMKrD`SGP^nBMdM-6j z#qX=;0uB1psNWh=<^cKuNXK^CHFY^NLHuL*W6{}B|0w=UbV0^hZ&@V~;Xh(IJo(dSSORb?Ba`?b0i%~@pHEXb0)ZRMoTrQPQ3&r_eq)hDd@ zzNkMN+j`ew3M4)vGL>2fBOk8Vb;K`@bec~j55HDyhSM}-XAEp3uGr>Z57b@UO zu&(hi^czaw!5TOOm*L4XRBeHkZ~$&X=2>D8fMYPclXnkJzzs+{$I3teDxn<)Vf1-Q vhQcanf?vVc#S81w&zK8{S>4*a37eq-df_&ta)_HRhr3a}vVYHVFG~Ff=9F|K diff --git a/build/obj/build.nmap b/build/obj/build.nmap index 7f6909d..3bea650 100644 --- a/build/obj/build.nmap +++ b/build/obj/build.nmap @@ -917,2284 +917,2284 @@ 10008bc8 T _LwIP_Init 10008c74 T idx_to_rtw_security 10008c88 T rtw_security_to_idx -10008cac T rtw_security_to_str -10008cc0 T show_wifi_ap_ip -10008cf4 T wifi_run_ap -10008e10 T show_wifi_st_ip -10008e44 T wifi_run_st -10008f0c T wifi_run -10009004 T wifi_init -10009038 t wifi_autoreconnect_thread_ -10009098 T show_wifi_st_cfg -100090e8 T show_wifi_ap_cfg -10009154 T show_wifi_cfg -100091b4 t mp3_cfg_read -100091ec t user_init_thrd -10009204 t tskmad -10009420 t tskreader -10009828 T render_sample_block -1000989c T set_dac_sample_rate -100098e0 T connect_close -10009908 T connect_start -100099a8 t fATWS -10009a88 T ShowMemInfo -10009ab4 T main -10009b08 t fATSN -10009b90 t _scan_result_handler -10009c84 t fATWI -10009dbc t fATOF -10009dc0 t fATON -10009dc4 t fATWR -10009de0 t fATPN -10009eb8 t fATPA -10009f98 t fATSP -10009fdc t fATDS -1000a004 t fATSW -1000a00e t fATSD -1000a018 t fATST -1000a088 T print_hex_dump -1000a0b8 T dump_bytes -1000a14c t fATSB -1000a184 T print_udp_pcb -1000a1f0 T print_tcp_pcb -1000a2c8 t fATLW -1000a2d8 T RamFifoClose -1000a334 T RamFifoInit -1000a488 T RamFifoRead -1000a544 T RamFifoWrite -1000a5f8 T RamFifoFill -1000a624 T RamFifoFree -1000a638 T RamFifoLen -1000a644 t decode_header -1000a7b4 T mad_header_init -1000a7e0 T mad_frame_finish -1000a7f8 T mad_header_decode -1000aa94 T mad_frame_decode -1000ab18 T mad_frame_mute -1000ab62 T mad_frame_init -1000ab80 t III_requantize -1000abfc t III_aliasreduce -1000ac64 t fastsdct -1000ad9c t III_imdct_l -1000b1b4 t III_imdct_s -1000b308 t III_overlap -1000b332 t III_freqinver -1000b37c t III_decode -1000c398 T mad_layer_III -1000c7fc T mad_bit_init -1000c808 T mad_bit_length -1000c820 T mad_bit_nextbyte -1000c82c T mad_bit_skip -1000c85c T mad_bit_read -1000c8c8 T mad_bit_crc -1000c9bc t scale -1000c9c8 t dct32 -1000d25c t synth_half -1000d6a0 t synth_full -1000daf4 T mad_synth_mute -1000db2c T mad_synth_init -1000db50 T mad_synth_frame -1000dbe4 t scale_rational -1000dc58 T mad_timer_set -1000dd40 T mad_stream_init -1000dd72 T mad_stream_finish -1000dd84 T mad_stream_buffer -1000dd98 T mad_stream_sync -1000dde0 T mad_stream_errorstr -1000df3c t i2s_test_tx_complete -1000df54 T i2sClose -1000dfe0 T i2sInit -1000e154 T i2sSetRate -1000e1dc T i2sPushPWMSamples -1000e344 W __low_level_init -1000e348 T SystemCoreClockUpdate -1000e35c t print_on -1000e374 W console_help -1000e3b4 T GetArgvRam -1000e464 T get_eap_phase -1000e468 T get_eap_method -1000e46c T eap_autoreconnect_hdl -1000e470 t wifi_no_network_hdl -1000e488 t wifi_ap_sta_disassoc_hdl -1000e48c T wifi_scan_done_hdl -1000e4fc t wifi_handshake_done_hdl -1000e518 t wifi_disconn_hdl -1000e580 t wifi_connected_hdl -1000e5b4 T wifi_scan_each_report_hdl -1000e6f4 t wifi_ap_sta_assoc_hdl -1000e6f6 T wifi_rx_beacon_hdl -1000e6f8 T wifi_connect -1000eb2c T wifi_set_country -1000eb38 T wifi_off -1000ebac T wifi_start_ap -1000ecc4 T wifi_scan -1000ed1c T wifi_scan_networks -1000edcc T wifi_set_pscan_chan -1000ede4 T wifi_get_setting -1000ee94 T wifi_show_setting -1000ef58 T wifi_set_network_mode -1000ef70 T wifi_indication -1000efac T wifi_reg_event_handler -1000f000 T wifi_unreg_event_handler -1000f044 T init_event_callback_list -1000f054 T promisc_deinit -1000f058 T promisc_recv_func -1000f05c T promisc_set -1000f060 T is_promisc_enabled -1000f06a T iw_ioctl -1000f086 T wext_get_ssid -1000f0d0 T wext_set_ssid -1000f104 T wext_set_bssid -1000f14e T is_broadcast_ether_addr -1000f170 T wext_set_auth_param -1000f19e T wext_set_key_ext -1000f29e T wext_get_enc_ext -1000f300 T wext_set_passphrase -1000f334 T wext_get_passphrase -1000f364 T wext_enable_powersave -1000f3bc T wext_set_mode -1000f3e0 T wext_get_mode -1000f40a T wext_set_ap_ssid -1000f43e T wext_set_country -1000f464 T wext_set_pscan_channel -1000f4e4 T wext_set_channel -1000f512 T wext_get_channel -1000f53e T wext_set_scan -1000f56e T wext_get_scan -1000f5a0 T wext_wlan_indicate -1000f6e8 T wext_set_adaptivity -1000f710 T wext_set_sta_num -1000f714 T LwIP_DHCP -1000f808 t netconn_recv_data -1000f8d8 T netconn_new_with_proto_and_callback -1000f938 T netconn_delete -1000f95c T netconn_getaddr -1000f9a0 T netconn_connect -1000f9e0 T netconn_recv_tcp_pbuf -1000f9f4 T netconn_recv -1000fa7c T netconn_recved -1000faa8 T netconn_send -1000fae4 T netconn_write_partly -1000fb74 T netconn_gethostbyname -1000fbcc t recv_udp -1000fc3c t recv_raw -1000fcc0 t setup_tcp -1000fd04 t err_tcp -1000fd9c t do_connected -1000fe08 t do_writemore -1000ff08 t do_close_internal -1000fff4 t poll_tcp -10010044 t do_dns_found -10010070 t sent_tcp -100100be t recv_tcp -10010138 T do_newconn -100101c8 T netconn_alloc -10010234 T netconn_free -10010260 t netconn_drain -100102f0 T do_delconn -1001037c T do_connect -10010410 T do_send -10010480 T do_recv -100104c0 T do_write -100104fa T do_getaddr -10010570 T do_gethostbyname -1001059c T netbuf_delete -100105bc T netbuf_free -100105d2 T netbuf_ref -1001060c T lwip_gethostbyname -10010658 t get_socket -10010678 t alloc_socket -100106e8 t event_callback -10010818 T lwip_socket_init -1001081a T lwip_close -1001086c T lwip_connect -100108c8 T lwip_recvfrom -10010a80 T lwip_read -10010a94 T lwip_sendto -10010b40 T lwip_send -10010bb8 T lwip_socket -10010c2c T lwip_write -10010c34 t tcpip_thread -10010cb8 T tcpip_input -10010d00 T tcpip_callback_with_block -10010d54 T tcpip_timeout -10010d98 T tcpip_apimsg -10010df0 T tcpip_init -10010e34 t autoip_start_probing -10010e80 t autoip_arp_announce -10010eac T autoip_start -10010f40 T autoip_tmr -10011050 T autoip_arp_reply -100110f8 t icmp_send_response.isra.0 -10011168 T icmp_input -1001128c T icmp_dest_unreach -10011296 T icmp_time_exceeded -100112a0 t igmp_send -10011344 t igmp_delaying_member -10011380 t igmp_lookup_group.part.1 -100113b8 T igmp_init -100113d4 T igmp_report_groups -100113f8 T igmp_lookfor_group -10011418 T igmp_start -10011454 T igmp_input -10011518 T igmp_tmr -10011544 t lwip_standard_chksum -1001159c T inet_chksum_pseudo -10011622 T inet_chksum -1001162e T inet_chksum_pbuf -10011674 T ip_route -100116b0 T ip_input -10011888 T ip_output_if_opt -100119dc T ip_output_if -100119fe T ip_output -10011a36 T ip4_addr_isbroadcast -10011a6e T ipaddr_aton -10011b84 T ipaddr_addr -10011b9c T ipaddr_ntoa_r -10011c34 T ipaddr_ntoa -10011c40 t ipfrag_free_pbuf_custom -10011c58 t ip_reass_free_complete_datagram -10011cd8 t ip_reass_remove_oldest_datagram -10011d4c T ip_reass_tmr -10011d74 T ip_reass -10012024 T ip_frag -10012190 T lwip_htons -10012196 T lwip_ntohs -1001219c T lwip_htonl -100121a0 T lwip_ntohl -100121a4 t dhcp_set_state -100121b4 t dhcp_option -100121d4 t dhcp_option_byte -100121e6 t dhcp_option_short -10012208 t dhcp_option_long -1001224c t dhcp_create_msg -100123a0 t dhcp_delete_msg -100123b6 t dhcp_check -100123dc t dhcp_bind -100124b0 t dhcp_option_trailer -100124dc t dhcp_discover -10012590 t dhcp_reboot -10012634 t dhcp_option_hostname.isra.1 -10012674 t dhcp_rebind -10012708 t dhcp_select -100127f4 t dhcp_recv -10012bf8 T dhcp_arp_reply -10012c78 T dhcp_renew -10012d0c T dhcp_release -10012db4 T dhcp_coarse_tmr -10012e40 T dhcp_fine_tmr -10012edc T dhcp_release_unicast -10012fa0 T dhcp_stop -10012fd0 T dhcp_start -10013070 t dns_parse_name -1001308c t dns_recv -10013220 t dns_send -100132f0 t dns_check_entry -100133a0 T dns_setserver -100133c0 T dns_init -10013418 T dns_tmr -10013444 T dns_gethostbyname -10013584 T lwip_init -100135ac T sys_timeout -1001360c T tcp_timer_needed -10013640 t tcpip_tcp_timer -10013678 T sys_timeouts_init -100136ec t dns_timer -10013708 t igmp_timer -10013720 t autoip_timer -10013738 t dhcp_timer_fine -10013754 t dhcp_timer_coarse -10013770 t arp_timer -1001378c t ip_reass_timer -100137a8 T sys_untimeout -100137f0 T sys_timeouts_mbox_fetch -10013854 T netif_init -10013858 T netif_set_ipaddr -100138b0 T netif_set_addr -100138cc T netif_add -10013930 T netif_set_gw -10013938 T netif_set_netmask -10013940 T netif_set_default -1001394c T netif_set_up -10013982 T netif_set_down -1001399c t pbuf_free_ooseq_callback -100139d0 t pbuf_pool_is_empty -10013a0c T pbuf_alloced_custom -10013a60 T pbuf_header -10013ab8 T pbuf_free -10013af8 T pbuf_alloc -10013c1c T pbuf_realloc -10013c50 T pbuf_clen -10013c60 T pbuf_ref -10013c7a T pbuf_cat -10013c96 T pbuf_chain -10013ca6 T pbuf_copy -10013d42 T pbuf_copy_partial -10013daa T pbuf_coalesce -10013dd8 T raw_input -10013e50 T raw_connect -10013e5a T raw_recv -10013e60 T raw_sendto -10013ef0 T raw_send -10013ef8 T raw_remove -10013f20 T raw_new -10013f54 t tcp_new_port -10013fa4 T tcp_init -10013fc0 T tcp_update_rcv_ann_wnd -10013ff6 T tcp_recved -10014030 T tcp_seg_free -1001404a T tcp_segs_free -1001405c T tcp_seg_copy -10014084 T tcp_arg -10014088 T tcp_recv -1001408e T tcp_sent -10014094 T tcp_err -1001409a T tcp_accept -1001409e T tcp_poll -100140a8 T tcp_pcb_purge -100140e8 T tcp_slowtmr -100143a4 T tcp_pcb_remove -1001440c t tcp_close_shutdown -1001453c T tcp_close -10014554 T tcp_recv_null -10014578 T tcp_process_refused_data -100145d8 T tcp_fasttmr -10014650 T tcp_tmr -10014674 T tcp_shutdown -100146c4 T tcp_abandon -1001475c T tcp_abort -10014764 T tcp_next_iss -1001477c T tcp_alloc -1001489c T tcp_new -100148a2 T tcp_eff_send_mss -100148c0 T tcp_connect -10014a1c t tcp_oos_insert_segment -10014a9c t tcp_receive -10015274 t tcp_parseopt.isra.0 -100152f8 T tcp_input -10015b50 t tcp_pbuf_prealloc -10015ba4 t tcp_create_segment -10015c6c t tcp_output_alloc_header.constprop.0 -10015cd6 T tcp_write -10016026 T tcp_enqueue_flags -100160ce T tcp_send_fin -10016116 T tcp_send_empty_ack -10016174 T tcp_output -100163ec T tcp_rst -10016484 T tcp_rexmit_rto -100164b2 T tcp_rexmit -10016502 T tcp_rexmit_fast -10016558 T tcp_keepalive -100165aa T tcp_zero_window_probe -10016654 T udp_init -10016670 T udp_input -100167f8 T udp_bind -100168a0 T udp_sendto_if -1001699e T udp_sendto -100169d4 T udp_send -100169e0 T udp_connect -10016a28 T udp_disconnect -10016a38 T udp_recv -10016a40 T udp_remove -10016a68 T udp_new -10016a8c t etharp_free_entry -10016abc t etharp_find_entry -10016b98 t etharp_send_ip -10016bcc T etharp_tmr -10016c0c T etharp_cleanup_netif -10016c34 T etharp_raw -10016cf0 T etharp_request -10016d1c t etharp_output_to_arp_index -10016d64 T etharp_query -10016e68 T etharp_output -10016f60 T ethernet_input -10017150 t low_level_output -100171ac t arp_timer -100171c8 T ethernetif_recv -10017240 T ethernetif_init -10017284 T lwip_POST_SLEEP_PROCESSING -100172a0 T rltk_wlan_set_netif_info -100172c0 T rltk_wlan_send -10017354 T rltk_wlan_recv -100173c0 T netif_is_valid_IP -100173f4 T netif_get_idx -1001740c T netif_rx -1001741c T netif_post_sleep_processing -10017420 T sys_mbox_new -1001743a T sys_mbox_free -1001744e T sys_mbox_post -1001746e T sys_mbox_trypost -10017490 T sys_arch_mbox_fetch -100174da T sys_arch_mbox_tryfetch -100174fa T sys_mbox_valid -10017504 T sys_mbox_set_invalid -1001750a T sys_sem_new -10017546 T sys_arch_sem_wait -10017586 T sys_sem_signal -10017592 T sys_sem_free -10017598 T sys_sem_valid -100175a2 T sys_sem_set_invalid -100175a8 T sys_init -100175cc T sys_thread_new_tcm -10017634 T sys_arch_protect -1001763e T sys_arch_unprotect -10017644 t mark_ip_in_table -10017688 t dhcps_initialize_message -10017738 t add_offer_options -10017828 T dhcps_handle_state_machine_change -100178f8 t dhcps_receive_udp_packet_handler -10017bc4 T dhcps_deinit -10017bec T dhcps_init -10017cf4 t prvInsertBlockIntoFreeList -10017d3c t vPortDefineHeapRegions.constprop.1 -10017ddc T pvPortMalloc -10017ebc T __vPortFree -10017f00 T vPortSetExtFree -10017f1c T vPortFree -10017f4c T xPortGetFreeHeapSize -10017f58 t prvPortStartFirstTask -10017f78 T pxPortInitialiseStack -10017f94 T vPortSVCHandler -10017fb4 t pxCurrentTCBConst2 -10017fb8 T vPortYield -10017fd0 T ulPortSetInterruptMask -10017fe0 t prvTaskExitError -10017fe8 T vPortEnterCritical -10018004 T vPortClearInterruptMask -1001800c T vPortExitCritical -10018020 T xPortPendSVHandler -10018060 t pxCurrentTCBConst -10018064 T xPortSysTickHandler -10018088 W vPortSuppressTicksAndSleep -100181a0 W vPortSetupTimerInterrupt -100181f0 T xPortStartScheduler -10018220 T vApplicationIdleHook -10018224 T vApplicationStackOverflowHook -10018240 T osKernelSysTick -10018244 T vListInitialise -1001825a T vListInitialiseItem -10018260 T vListInsertEnd -10018278 T vListInsert -100182a8 T uxListRemove -100182c8 t prvCopyDataToQueue -10018332 t prvCopyDataFromQueue -1001835a t prvUnlockQueue -100183c2 T xQueueGenericReset -1001841c T xQueueGenericCreate -10018468 T xQueueCreateCountingSemaphore -1001847a T xQueueGenericSend -10018558 T xQueueCreateMutex -100185a2 T xQueueGenericSendFromISR -10018606 T xQueueGenericReceive -1001870a T uxQueueMessagesWaiting -1001871c T vQueueDelete -10018732 T vQueueWaitForMessageRestricted -1001876c t prvGenerateRunTimeOfPeroid -100187ac t prvGetExpectedIdleTime -100187dc t prvListTaskWithinSingleList -100188c4 t prvResetNextTaskUnblockTime -100188e8 t prvAddCurrentTaskToDelayedList -10018938 T xTaskGenericCreate -10018aec T vTaskDelete -10018b8c T uxTaskPriorityGet -10018ba8 T vTaskPrioritySet -10018c60 T vTaskStartScheduler -10018cb8 T vTaskSuspendAll -10018cc8 T xTaskGetTickCount -10018ce0 T pcTaskGetTaskName -10018cf0 T vTaskStepTick -10018d00 T xTaskIncrementTick -10018e80 T xTaskResumeAll -10018f48 T vTaskDelay -10018f98 t prvIdleTask -10019020 T uxTaskGetSystemState -100190d0 T vTaskSwitchContext -10019188 T vTaskPlaceOnEventList -100191e4 T vTaskPlaceOnEventListRestricted -10019228 T xTaskRemoveFromEventList -10019298 T vTaskSetTimeOutState -100192b0 T xTaskCheckForTimeOut -100192fc T vTaskMissedYield -10019308 T eTaskConfirmSleepModeStatus -10019328 T xTaskGetSchedulerState -10019348 T vTaskPriorityInherit -100193dc T xTaskPriorityDisinherit -1001944c T sprintf_pcTaskName -1001946c T vTaskList -1001951c T vTaskGetRunTimeStats -100195dc T pvTaskIncrementMutexHeldCount -100195f4 T vTaskGetCurrentTCB -10019600 t prvCheckForValidListAndQueue -1001964c t prvInsertTimerInActiveList -10019688 T xTimerCreateTimerTask -100196c4 T xTimerCreate -10019700 T xTimerGenericCommand -10019794 t prvSwitchTimerLists -10019804 t prvTimerTask -10019968 T xTimerIsTimerActive -10019980 t device_mutex_init -100199c4 T device_mutex_lock -100199f4 T device_mutex_unlock -10019a10 t _freertos_systime_to_sec -10019a1a t _freertos_ms_to_systime -10019a1c t _freertos_sec_to_systime -10019a24 t _freertos_usleep_os -10019a26 t _freertos_ATOMIC_SET -10019a2a t _freertos_ATOMIC_READ -10019a2e t _freertos_modular64 -10019aa2 t _freertos_thread_enter -10019aa4 t _freertos_enter_critical -10019aa8 t _freertos_exit_critical -10019aac t _freertos_ATOMIC_SUB_RETURN -10019ac4 t _freertos_ATOMIC_DEC_RETURN -10019ada t _freertos_ATOMIC_ADD_RETURN -10019af2 t _freertos_ATOMIC_INC_RETURN -10019b08 t _freertos_ATOMIC_SUB -10019b20 t _freertos_ATOMIC_DEC -10019b26 t _freertos_ATOMIC_ADD -10019b3e t _freertos_ATOMIC_INC -10019b44 t _freertos_enter_critical_from_isr -10019b54 T _freertos_malloc -10019b58 T _freertos_zmalloc -10019b70 t _freertos_memset -10019b74 T _freertos_mfree -10019b78 t _freertos_get_current_time -10019b7c t _freertos_spinunlock_irqsave -10019b92 t _freertos_spinunlock -10019b9e t _freertos_mutex_put -10019ba2 T _freertos_wakeup_task -10019ba8 t _freertos_up_sema -10019bac t _freertos_exit_critical_mutex -10019bb8 T _freertos_timerCreate -10019bbc T _freertos_timerDelete -10019bd0 T _freertos_timerStop -10019be4 T _freertos_timerChangePeriod -10019bfe T _freertos_timerIsTimerActive -10019c02 T _freertos_acquire_wakelock -10019c08 T _freertos_release_wakelock -10019c0e T _freertos_get_scheduler_state -10019c2e t _freertos_thread_exit -10019c34 t _freertos_GetFreeHeapSize -10019c38 t _freertos_yield_os -10019c3c t _freertos_udelay_os -10019c40 t _freertos_mdelay_os -10019c44 t _freertos_deinit_xqueue -10019c5e t _freertos_spinlock_free -10019c70 t _freertos_mutex_free -10019c74 t _freertos_free_sema -10019c78 t _freertos_push_to_xqueue -10019ca0 t _freertos_pop_from_xqueue -10019cc8 t _freertos_down_sema -10019cea t _freertos_init_xqueue -10019d04 t _freertos_spinlock_irqsave -10019d40 t _freertos_spinlock -10019d78 t _freertos_enter_critical_mutex -10019db0 t _freertos_mutex_get -10019de8 t _freertos_spinlock_init -10019df6 t _freertos_mutex_init -10019dfc t _freertos_exit_critical_from_isr -10019e08 t _freertos_up_sema_from_isr -10019e30 t _freertos_init_sema -10019e40 t _freertos_create_task -10019eb8 t _freertos_memcmp -10019ec6 t _freertos_memcpy -10019ecc t _freertos_delete_task -10019f18 t _freertos_mutex_get_timeout -10019f54 t _freertos_systime_to_ms -10019f56 t _freertos_msleep_os -10019f5a T save_and_cli -10019f5e T restore_flags -10019f62 T cli -10019f68 T _freertos_arc4random -10019f98 t _freertos_get_random_bytes -10019fd6 T RtlInitSema -10019fe4 T RtlUpSemaFromISR -1001a004 T RtlDownSema -1001a018 T RtlUdelayOS -1001a01c T _htons -1001a022 T _ntohs -1001a028 T _rtw_zvmalloc -1001a048 T _rtw_vmfree -1001a06c T _rtw_malloc -1001a07c T _rtw_zmalloc -1001a08c T _rtw_mfree -1001a09c T deinit_mem_monitor -1001a09e T rtw_vmfree -1001a0a2 T rtw_mfree -1001a0a8 T rtw_memcpy -1001a0b8 T rtw_memcmp -1001a0c8 T rtw_memset -1001a0d8 T rtw_init_listhead -1001a0de T rtw_is_list_empty -1001a0e8 T rtw_list_insert_head -1001a0f4 T rtw_list_insert_tail -1001a100 T rtw_list_delete -1001a110 T rtw_init_sema -1001a120 T rtw_free_sema -1001a130 T rtw_up_sema -1001a140 T rtw_up_sema_from_isr -1001a150 T rtw_down_timeout_sema -1001a160 T rtw_down_sema -1001a174 T rtw_mutex_init -1001a184 T rtw_mutex_free -1001a194 T rtw_mutex_put -1001a1a4 T rtw_mutex_get_timeout -1001a1b8 T rtw_enter_critical_from_isr -1001a1c8 T rtw_enter_critical -1001a1cc T rtw_exit_critical_from_isr -1001a1dc T rtw_exit_critical -1001a1e0 T rtw_enter_critical_mutex -1001a1f0 T rtw_exit_critical_mutex -1001a200 T rtw_queue_empty -1001a20a T rtw_end_of_queue_search -1001a214 T rtw_spinlock_init -1001a224 T rtw_init_queue -1001a230 T rtw_spinlock_free -1001a240 T rtw_spin_lock -1001a250 T rtw_enter_critical_bh -1001a254 T rtw_spin_unlock -1001a264 T rtw_exit_critical_bh -1001a268 T rtw_get_current_time -1001a278 T rtw_systime_to_ms -1001a28c T rtw_systime_to_sec -1001a2a0 T rtw_ms_to_systime -1001a2b4 T rtw_sec_to_systime -1001a2c8 T rtw_get_passing_time_ms -1001a2dc T rtw_msleep_os -1001a2ec T rtw_usleep_os -1001a2fc T rtw_mdelay_os -1001a30c T rtw_udelay_os -1001a31c T ATOMIC_SET -1001a32c T ATOMIC_INC -1001a33c T ATOMIC_INC_RETURN -1001a350 T ATOMIC_DEC_RETURN -1001a364 T ATOMIC_DEC_AND_TEST -1001a374 T rtw_modular64 -1001a390 T rtw_get_random_bytes -1001a3a4 T rtw_getFreeHeapSize -1001a3b4 T init_mem_monitor -1001a3c4 T add_mem_usage -1001a3f8 T rtw_zvmalloc -1001a418 T rtw_malloc -1001a438 T rtw_zmalloc -1001a458 T rtw_netif_queue_stopped -1001a45c T rtw_netif_wake_queue -1001a45e T rtw_netif_start_queue -1001a460 T rtw_netif_stop_queue -1001a462 T flush_signals_thread -1001a464 T rtw_acquire_wakelock -1001a474 T rtw_release_wakelock -1001a484 T rtw_create_task -1001a4a0 T rtw_delete_task -1001a4b0 T rtw_wakeup_task -1001a4c0 T rtw_timerCreate -1001a4dc T rtw_timerDelete -1001a4f0 T rtw_timerIsTimerActive -1001a504 T rtw_timerStop -1001a518 T rtw_timerChangePeriod -1001a52c T rtw_thread_enter -1001a53c T rtw_thread_exit -1001a54c T tcm_heap_free -1001a5cc T tcm_heap_init -1001a61c T tcm_heap_freeSpace -1001a65c T tcm_heap_malloc -1001a6fc T tcm_heap_calloc -1001a714 T flash_init -1001a7b0 T flash_turnon -1001a7c8 T flash_erase_sector -1001a7f4 T flash_stream_read -1001a8c4 T flash_stream_write -1001aa1c T i2s_init -1001aaf4 T i2s_set_dma_buffer -1001ab46 T i2s_tx_irq_handler -1001ab4c T i2s_set_param -1001ab80 T i2s_deinit -1001ab84 T i2s_enable -1001ab88 T i2s_disable -1001ab8c W pinmap_merge -1001abc8 W pinmap_find_peripheral -1001abe0 W pinmap_peripheral -1001ac18 T sleep_ex_selective -1001ac2c T deepsleep_ex -1001ac50 T us_ticker_read -1001ac7c T En32KCalibration -1001ad10 T WDGInitial -1001ad9c T WDGStart -1001adb4 T WDGRefresh -1001add0 T I2SISRHandle -1001ae8c T RtkI2SDeInit -1001af6c T RtkI2SEnable -1001afa8 T RtkI2SDisable -1001afe4 T RtkI2SLoadDefault -1001b048 T HalI2SOpInit -1001b0c4 T RtkI2SInit -1001b288 T HalI2SInit -1001b2c6 T HalI2SDisable -1001b2ec T HalI2SEnable -1001b310 T HalI2SDeInit -1001b368 T HalTimerOpInit_Patch -1001b3a4 T freertos_ready_to_sleep -1001b3b4 T freertos_pre_sleep_processing -1001b478 T freertos_post_sleep_processing -1001b49c T acquire_wakelock -1001b4dc T release_wakelock -1001b538 T get_wakelock_status -1001b544 T HalI2SInitRtl8195a_Patch -1001b646 T HalI2SSetRateRtl8195a -1001b68c T HalI2SSetWordLenRtl8195a -1001b6b4 T HalI2SSetChNumRtl8195a -1001b6dc T HalI2SSetPageNumRtl8195a -1001b704 T HalI2SSetPageSizeRtl8195a -1001b72e T HalI2SSetDMABufRtl8195a -1001b798 T HalI2SGetTxPageRtl8195a -1001b7b8 T HalI2SPageSendRtl8195a -1001b804 T HalI2SClearAllOwnBitRtl8195a -1001b838 T HalI2SDMACtrlRtl8195a -1001b83c T HalTimerIrq2To7Handle_Patch -1001b890 T HalTimerIrqRegisterRtl8195a_Patch -1001b90c T HalTimerIrqUnRegisterRtl8195a_Patch -1001b984 T HalTimerDeInitRtl8195a_Patch -1001b9b8 T HalTimerReadCountRtl8195a_Patch -1001b9d0 T HalTimerReLoadRtl8195a_Patch -1001ba04 T HalTimerInitRtl8195a_Patch -1001bad8 T HalTimerIrqEnRtl8195a -1001baec T HalTimerEnRtl8195a_Patch -1001bb00 T HalTimerDisRtl8195a_Patch -1001bb14 t rtw_ht_operation_update -1001bbc6 t associated_clients_update.part.11 -1001bc02 T chk_sta_is_alive -1001bc40 T add_RATid -1001bd48 T update_sta_info_apmode -1001be00 T update_beacon -1001c0c0 T rtw_check_beacon_data -1001c7c0 T associated_clients_update -1001c7ca T bss_cap_update_on_sta_join -1001c97a T bss_cap_update_on_sta_leave -1001ca76 T ap_free_sta -1001cb28 T expire_timeout_chk -1001cc64 T rtw_sta_flush -1001cce8 T free_mlme_ap_info -1001cd34 T sta_info_update -1001cd70 T ap_sta_info_defer_update -1001cda0 T start_ap_mode -1001cde0 T init_mlme_ap_info -1001cdf6 T stop_ap_mode -1001ce44 T rtw_generate_bcn_ie -1001d168 T set_hidden_ssid -1001d1c0 T _rtw_init_evt_priv -1001d1d2 T _rtw_free_cmd_priv -1001d1dc T _rtw_enqueue_cmd -1001d208 T _rtw_dequeue_cmd -1001d23c T _rtw_observequeue_cmd -1001d250 T rtw_init_cmd_priv -1001d25a T rtw_init_evt_priv -1001d25e T rtw_free_evt_priv -1001d260 T rtw_free_cmd_priv -1001d264 T rtw_cmd_filter -1001d282 T rtw_free_cmd_obj -1001d2ac T rtw_enqueue_cmd -1001d302 T rtw_set_channel_plan_cmd_callback -1001d31a T rtw_survey_cmd_callback -1001d336 T rtw_disassoc_cmd_callback -1001d366 T rtw_joinbss_cmd_callback -1001d382 T rtw_setstaKey_cmdrsp_callback -1001d39c T rtw_cmd_thread -1001d4f8 T rtw_joinbss_cmd -1001d7a2 T rtw_disassoc_cmd -1001d7f0 T rtw_setstakey_cmd -1001d8e0 T rtw_clearstakey_cmd -1001d980 T rtw_dynamic_chk_wk_cmd -1001d9d2 T rtw_set_chplan_cmd -1001da52 T dynamic_chk_wk_hdl -1001db1a T lps_ctrl_wk_hdl -1001db7e T rtw_lps_ctrl_wk_cmd -1001dbe8 T rtw_sitesurvey_cmd -1001dcb0 T rpt_timer_setting_wk_hdl -1001dcc4 T rtw_ps_cmd -1001dd20 T rtw_chk_hi_queue_cmd -1001dd74 T rtw_drvextra_cmd_hdl -1001de50 t rtw_free_mlme_ie_data -1001de68 T rtw_init_mlme_timer -1001dec4 T rtw_del_mlme_timer -1001dee4 T reconnect_timer_hdl -1001df84 T _rtw_init_mlme_priv -1001e006 T rtw_mfree_mlme_priv_lock -1001e022 T rtw_free_mlme_priv_ie_data -1001e05a T _rtw_free_mlme_priv -1001e082 T _rtw_alloc_network -1001e0d2 T _rtw_free_network -1001e132 T _rtw_free_network_nolock -1001e158 T _rtw_find_network -1001e194 T _rtw_free_network_queue -1001e1dc T rtw_if_up -1001e1fc T rtw_get_capability_from_ie -1001e200 T rtw_get_capability -1001e21a T rtw_get_beacon_interval_from_ie -1001e21e T rtw_init_mlme_priv -1001e236 T rtw_free_mlme_priv -1001e23a T rtw_free_network_queue -1001e23e T rtw_is_same_ibss -1001e254 T is_same_network -1001e2b8 T update_network -1001e352 T rtw_update_scanned_network -1001e464 T rtw_add_network -1001e4a2 T rtw_survey_event_callback -1001e54e T rtw_dummy_event_callback -1001e550 T rtw_free_assoc_resources -1001e61a T rtw_indicate_connect -1001e62a T rtw_indicate_disconnect -1001e64c T rtw_indicate_scan_done -1001e650 T rtw_joinbss_event_callback -1001e66e T search_max_mac_id -1001e6b6 T rtw_stassoc_hw_rpt -1001e6ee T rtw_stassoc_event_callback -1001e71c T rtw_stadel_event_callback -1001e7c2 T _rtw_join_timeout_handler -1001e84c T rtw_join_timeout_handler -1001e8a4 T rtw_scan_timeout_handler -1001e8d4 T _rtw_scan_timeout_handler -1001e8d8 T rtw_dynamic_check_timer_handlder -1001e930 T _dynamic_check_timer_handlder -1001e974 T rtw_select_and_join_from_scanned_queue -1001ea48 T rtw_surveydone_event_callback -1001eb60 T rtw_set_auth -1001ebb0 T rtw_set_key -1001ec72 T rtw_restruct_wmm_ie -1001ecd8 T rtw_restruct_sec_ie -1001ed44 T rtw_joinbss_reset -1001ed54 T rtw_restructure_ht_ie -1001ee34 T rtw_update_ht_cap -1001eebe T rtw_joinbss_event_prehandle -1001f0ea T rtw_linked_check -1001f106 T rtw_buddy_adapter_up -1001f13e T check_buddy_fwstate -1001f15c t get_da -1001f17c t get_sa -1001f1a6 T OnAction -1001f1b8 T DoReserved -1001f1bc t _mgt_dispatcher.isra.2 -1001f208 T rtw_is_channel_set_contains_channel -1001f22a T init_hw_mlme_ext -1001f240 T init_channel_set -1001f2d8 T free_mlme_ext_priv -1001f300 T mgt_dispatcher -1001f388 T alloc_mgtxmitframe -1001f3c0 T update_mgnt_tx_rate -1001f3c6 T update_mgntframe_attrib -1001f422 T rtw_build_mgnt_frame -1001f478 T dump_mgntframe -1001f492 T rtw_send_mgnt -1001f4b0 t issue_action_BSSCoexistPacket -1001f6bc T update_hidden_ssid -1001f710 T issue_beacon -1001f928 T issue_probersp -1001fbb8 T OnProbeReq -1001fc80 T issue_probereq -1001fe38 T issue_auth -100200a0 T OnAuth -10020344 T issue_asocrsp -100205b8 T issue_assocreq -100208f4 T issue_nulldata -100209de T issue_qos_nulldata -10020b10 T issue_deauth -10020bf8 T issue_action_BA -10020e74 T OnAction_back -10020f42 T collect_bss_info -10021174 T start_clnt_auth -10021204 T start_clnt_assoc -10021238 T OnAuthClient -10021318 T report_scan_result_one -100214d8 T add_site_survey -1002165e T report_survey_event -1002189c T OnProbeRsp -100218d0 T report_surveydone_event -10021934 T report_join_res -100219a4 T OnAssocRsp -10021af0 T report_del_sta_event -10021b82 T receive_disconnect -10021bd8 T OnBeacon -10021d60 T OnDeAuth -10021eb8 T OnDisassoc -10022028 T report_add_sta_event -1002209c T OnAssocReq -1002268c T rtw_port_switch_chk -10022710 T update_sta_info -10022790 T mlmeext_sta_del_event_callback -10022810 T _linked_info_dump -10022872 T _linked_rx_signal_strehgth_display -100228ac T linked_status_chk -10022b20 T survey_timer_hdl -10022c00 T _survey_timer_hdl -10022c04 T link_timer_hdl -10022c82 T _link_timer_hdl -10022c86 T addba_timer_hdl -10022ca6 T NULL_hdl -10022caa T setopmode_hdl -10022cf0 T disconnect_hdl -10022d9c T setauth_hdl -10022dac T setkey_hdl -10022e04 T set_stakey_hdl -10022f08 T set_tx_beacon_cmd -10022f7c T mlme_evt_hdl -10022fc8 T tx_beacon_hdl -10023082 T check_buddy_mlmeinfo_state -1002309c T site_survey -1002326c T sitesurvey_cmd_hdl -1002337a T concurrent_chk_start_clnt_join -10023410 T start_clnt_join -100234e4 T join_cmd_hdl -10023608 T concurrent_chk_joinbss_done -100237d0 T mlmeext_joinbss_event_callback -1002390c T set_chplan_hdl -10023928 T init_mlme_ext_timer -10023984 T init_mlme_ext_priv -10023ac0 t get_hdr_bssid -10023ae8 t filter_packet -10023b70 t promisc_get_encrypt -10023bc2 t promisc_info_get -10023c66 t promisc_set_enable -10023d02 T _promisc_deinit -10023d54 T _promisc_recv_func -100242a0 T _promisc_set -10024330 T _is_promisc_enabled -10024348 t SetEAPOL_KEYIV -100243e6 t ToDrv_SetPTK -1002448e t Message_ReplayCounter_OC2LI.isra.2 -100244bc t Message_SmallerEqualReplayCounter.isra.4 -100244ee t Message_setReplayCounter.isra.5 -1002450c t INCLargeInteger -1002452c t INCOctet16_INTEGER -10024574 t INCOctet32_INTEGER -100245d4 t ToDrv_DisconnectSTA -10024698 t CheckMIC.constprop.14 -10024718 t CalcMIC.constprop.15 -10024778 T DecWPA2KeyData -1002482c T DecGTK -100248e8 T ToDrv_SetGTK -10024978 T init_wpa_sta_info -10024a64 T SendEAPOL -1002511c T ClientSendEAPOL -10025604 t ResendTimeout -1002568c T EAPOLKeyRecvd -10025804 T ClientEAPOLKeyRecvd -10025bc4 T psk_derive -10025c78 T psk_init -10025d68 T psk_strip_rsn_pairwise -10025de8 T psk_strip_wpa_pairwise -10025e68 T tkip_send_mic_failure_report -10025fdc T pwr_state_check_handler -10025fe0 T ips_enter -10026088 T ips_leave -100261a0 T rtw_pwr_unassociated_idle -100261ea T rtw_ps_processor -10026242 T PS_RDY_CHECK -100262aa T rtw_set_ps_mode -10026318 T LPS_RF_ON_check -1002636e T LPS_Enter -100263dc T LPS_Leave -10026418 T LeaveAllPowerSaveMode -10026428 T rtw_init_pwrctrl_priv -100264fc T rtw_free_pwrctrl_priv -10026510 T _rtw_pwr_wakeup -100265ec T rtw_pm_set_lps -10026634 T rtw_pm_set_ips -10026678 T rtw_pm_set_tdma_param -10026694 T rtw_pm_set_lps_dtim -100266a0 T rtw_pm_get_lps_dtim -100266ac t recvframe_pull -100266ce t recvframe_pull_tail -100266f0 T rtw_signal_stat_timer_hdl -1002678e T _rtw_init_sta_recv_priv -100267ac T _rtw_init_recv_priv -10026854 T rtw_mfree_recv_priv_lock -10026888 T _rtw_alloc_recvframe -100268ba T rtw_alloc_recvframe -100268e0 T rtw_free_recvframe -1002697c T _rtw_enqueue_recvframe -100269a8 T rtw_enqueue_recvframe -100269d2 T rtw_free_recvframe_queue -10026a0a T rtw_free_uc_swdec_pending_queue -10026a32 T _rtw_free_recv_priv -10026a62 T rtw_free_buf_pending_queue -10026a66 T recvframe_chkmic -10026b64 T decryptor -10026c00 T portctrl -10026c76 T recv_decache -10026ca4 T process_pwrbit_data -10026ce4 T process_wmmps_data -10026d6c T count_rx_stats -10026de0 T sta2sta_data_frame -10026f1c T ap2sta_data_frame -10027048 T sta2ap_data_frame -100270d0 T validate_recv_ctrl_frame -1002726a T validate_recv_data_frame -100274c4 T wlanhdr_to_ethhdr -10027600 T recvframe_defrag -100276aa T recvframe_chk_defrag -10027760 T validate_recv_mgnt_frame -1002779c T validate_recv_frame -10027864 T recv_indicatepkt_reorder -10027886 T process_recv_indicatepkts -100278de T recv_func_prehandle -10027906 T recv_func_posthandle -1002796a T recv_func -100279f4 T rtw_recv_entry -10027a24 T rtw_recv_tasklet -10027a7c T rtw_wep_encrypt -10027ac2 T rtw_wep_decrypt -10027b08 T rtw_tkip_encrypt -10027b74 T rtw_tkip_decrypt -10027be0 T rtw_aes_encrypt -10027c4c T rtw_aes_decrypt -10027cb0 T rtw_init_sec_priv -10027d22 T rtw_free_sec_priv -10027d42 t wifi_mac_hash -10027d6c T _addba_timer_hdl -10027d70 T _rtw_init_stainfo -10027dea T _rtw_init_sta_priv -10027ed2 T _rtw_free_sta_xmit_priv_lock -10027efe T rtw_mfree_stainfo -10027f2a T rtw_mfree_sta_priv_lock -10027f60 T _rtw_free_sta_priv -10027f80 T init_addba_retry_timer -10027fa8 T rtw_alloc_stainfo -10028072 T rtw_free_stainfo -10028214 T rtw_get_stainfo -10028290 T rtw_init_bcmc_stainfo -100282c0 T rtw_get_bcmc_stainfo -100282e4 T rtw_free_all_stainfo -1002833e T cckrates_included -10028366 T cckratesonly_included -1002838e T networktype_to_raid_ex -100283ec T judge_network_type -1002843c T ratetbl_val_2wifirate -10028450 T is_basicrate -1002847c T ratetbl2rateset -100284c0 T get_rate_set -100284ea T UpdateBrateTbl -1002851c T UpdateBrateTblForSoftAP -10028550 T Save_DM_Func_Flag -10028566 T Restore_DM_Func_Flag -1002857c T Switch_DM_Func -10028598 T Set_MSR -100285bc T set_opmode -10028600 T SelectChannel -10028634 T SetBWMode -10028670 T set_channel_bwmode -100286c6 T get_my_bssid -100286ca T get_beacon_interval -100286e8 T is_client_associated_to_ap -10028700 T is_client_associated_to_ibss -1002871c T is_IBSS_empty -1002873e T decide_wait_for_beacon_timeout -1002875a T invalidate_cam_all -10028762 T write_cam -100287d8 T clear_cam_entry -10028806 T flush_all_cam_entry -10028864 T WMM_param_handler -1002888a T WMMOnAssocRsp -10028958 T HT_caps_handler -100289f8 T HT_info_handler -10028a1c T HTOnAssocRsp -10028a54 T ERP_IE_handler -10028a70 T VCS_update -10028ac2 T rtw_check_bcn_info -10028cd2 T update_beacon_info -10028d28 T is_ap_in_tkip -10028da0 T wifirate2_ratetbl_inx -10028e0c T update_basic_rate -10028e3a T update_supported_rate -10028e64 T update_MCS_rate -10028e70 T support_short_GI -10028e9e T get_highest_rate_idx -10028eb8 T Update_RA_Entry -10028ec0 T set_sta_rate -10028ec8 T update_tx_basic_rate -10028f20 T check_assoc_AP -10029014 T update_IOT_info -10029072 T update_capinfo -100290f0 T update_wireless_mode -10029190 T update_bmc_sta_support_rate -100291b8 T update_TSF -100291ca T correct_TSF -100291d2 t _init_txservq -100291e8 t set_qos -10029238 T _rtw_init_sta_xmit_priv -1002927e T rtw_mfree_xmit_priv_lock -100292ca T qos_acm -10029304 T xmitframe_addmic -10029462 T xmitframe_swencrypt -1002948e T rtw_make_wlanhdr -1002966e T rtw_txframes_pending -100296aa T rtw_txframes_sta_ac_pending -100296e0 T rtw_txframes_update_attrib_vcs_info -10029780 T rtw_put_snap -100297c4 T rtw_update_protection -1002980a T rtw_count_tx_stats -1002985a T rtw_free_xmitbuf_ext -1002989c T rtw_alloc_xmitframe -100298f4 T rtw_free_xmitframe -10029946 T rtw_free_xmitframe_queue -10029984 T rtw_get_sta_pending -100299c4 T rtw_xmit_classifier -10029a2a T rtw_xmitframe_enqueue -10029a38 T rtw_alloc_hwxmits -10029a92 T rtw_free_hwxmits -10029aa8 T _rtw_free_xmit_priv -10029b74 T rtw_init_hwxmits -10029b8c T _rtw_init_xmit_priv -10029d44 T rtw_get_ff_hwaddr -10029d58 T xmitframe_enqueue_for_sleeping_sta -10029f18 t dequeue_xmitframes_to_sleeping_queue -10029f6e T stop_sta_xmit -1002a056 T wakeup_sta_to_xmit -1002a26c T xmit_delivery_enabled_frames -1002a388 T rtw_xmit_tasklet -1002a3e0 T rtw_xmit_mgnt -1002a3e4 T rtw_xmit -1002a70e T rtw_sctx_done_err -1002a71a T rtw_alloc_xmitbuf -1002a774 T rtw_free_xmitbuf -1002a7e6 T rtw_alloc_xmitbuf_ext -1002a86c T rtw_sctx_done -1002a872 t rtl8195a_free_rx_ring -1002a880 t bus_write32 -1002a8dc t bus_write16 -1002a938 t bus_write8 -1002a994 t bus_read32 -1002a9ee t bus_read16 -1002aa4a t bus_read8 -1002aaa6 t rtl8195a_free_tx_ring -1002ab34 T rtl8195a_init_desc_ring -1002ac74 T rtl8195a_free_desc_ring -1002ac90 T rtl8195a_reset_desc_ring -1002ad26 T InitLxDmaRtl8195a -1002ae88 T rtl8195a_check_txdesc_closed -1002af00 t rtl8195a_tx_isr -1002afe4 T InterruptRecognized8195a -1002b074 T InitInterrupt8195a -1002b094 T EnableDMA8195a -1002b0bc T EnableInterrupt8195a -1002b0fc T DisableDMA8195a -1002b108 T DisableInterrupt8195a -1002b120 T UpdateInterruptMask8195a -1002b182 T CheckRxTgRtl8195a -1002b1bc T rtl8192ee_check_rxdesc_remain -1002b1ec T rtl8195a_recv_tasklet -1002b500 T rtl8195a_tx_int_handler -1002b52c T InterruptHandle8195a -1002b7a0 T rtl8195a_xmit_tasklet -1002b7c8 T lxbus_set_intf_ops -1002b808 t GetTxBufDesc -1002b852 t UpdateFirstTxbdtoXmitBuf.isra.3 -1002b884 t check_nic_enough_desc.isra.4 -1002b8d4 T rtl8195ab_init_xmit_priv -1002b8e2 T rtl8195ab_free_xmit_priv -1002b8ea T GetDmaTxbdIdx -1002b906 T rtl8195a_enqueue_xmitbuf -1002b92a T rtl8195a_dequeue_xmitbuf -1002b94e T SetTxbdForLxDMARtl8195ab -1002b9ce T UpdateTxbdHostIndex -1002ba0c T rtw_dump_xframe -1002bbde T check_tx_desc_resource -1002bc18 T rtw_dequeue_xframe -1002bcac T rtw_xmitframe_coalesce -1002bf60 T rtl8195ab_xmitframe_resume -1002c056 T rtl8195ab_mgnt_xmit -1002c092 T rtl8195ab_hal_xmit -1002c1a0 t Hal_GetEfuseDefinition -1002c1d0 t ResumeTxBeacon -1002c214 T UpdateHalRAMask8195A -1002c3ac T HalLittleWifiMCUThreadRtl8195a -1002c400 T HalCheckInReqStateThreadRtl8195a -1002c44c T HalTDMAChangeStateThreadRtl8195a -1002c498 t rtl8195a_read_chip_version -1002c50c t Hal_EfuseWordEnableDataWrite -1002c750 t Hal_EfusePowerSwitch -1002c764 t rtl8195a_free_hal_data -1002c77e t StopTxBeacon -1002c7c8 T SetHalODMVar8195A -1002c880 T rtl8195a_start_thread -1002c8e8 T rtl8195a_stop_thread -1002c90c t Hal_ReadEFuse -1002ca7c T GetHalODMVar8195A -1002ca90 t rtw_flash_map_update.part.12 -1002cb30 t rtw_flash_map_erase -1002cb74 t Hal_EfusePgPacketWrite -1002cdf0 t Hal_EfuseGetCurrentSize -1002ced0 t rtw_flash_map_write -1002d09e T rtl8195a_InitBeaconParameters -1002d10e T _InitBurstPktLen_8195AB -1002d118 T rtl8195a_set_hal_ops -1002d1f8 T rtl8195a_init_default_value -1002d1fa T rtl8195a_InitLLTTable -1002d244 T Hal_GetChnlGroup8195A -1002d280 T rtw_config_map_read -1002d36c T rtw_config_map_write -1002d418 T Hal_InitPGData -1002d476 T Hal_EfuseParseIDCode -1002d48e T Hal_ReadPowerValueFromPROM_8195A -1002d52c T Hal_EfuseParseTxPowerInfo_8195A -1002d5c4 T Hal_EfuseParseEEPROMVer_8195A -1002d5da T Hal_EfuseParsePackageType_8195A -1002d644 T Hal_EfuseParseChnlPlan_8195A -1002d674 T Hal_EfuseParseCustomerID_8195A -1002d68a T Hal_EfuseParseXtal_8195A -1002d6a2 T Hal_EfuseParseThermalMeter_8195A -1002d6ca T Hal_ReadRFGainOffset -1002d71a T BWMapping_8195A -1002d73a T SCMapping_8195A -1002d762 T rtl8195a_update_txdesc -1002da32 T rtl8195a_fill_fake_txdesc -1002daf0 T SetHwReg8195A -1002e7b0 T GetHwReg8195A -1002e844 T SetHalDefVar8195A -1002e924 T GetHalDefVar8195A -1002e948 T PHY_QueryBBReg_8195A_Safe -1002e974 T PHY_SetBBReg_8195A_Safe -1002e9a0 t phy_RFSerialRead_8195A -1002ea54 T PHY_QueryRFReg_8195A -1002ea6c T PHY_SetRFReg_8195A -1002eac4 T PHY_MACConfig8195A -1002eade T PHY_BBConfig8195A -1002ebee T PHY_RFConfig8195A -1002ebf2 T PHY_SetTxPowerIndex_8195A -1002ecfc T phy_TxPwrAdjInPercentage -1002ed3c T PHY_GetTxPowerIndex_8195A -1002ee2c T PHY_SetTxPowerLevel8195A -1002ee32 T phy_SpurCalibration_8195A -1002f0ea T phy_SetRegBW_8195A -1002f128 T phy_PostSetBwMode8195A -1002f284 T phy_SwChnl8195A -1002f32c T phy_SwChnlAndSetBwMode8195A -1002f37c T PHY_HandleSwChnlAndSetBW8195A -1002f42c T PHY_SetBWMode8195A -1002f44e T PHY_SwChnl8195A -1002f468 T PHY_SetSwChnlBWMode8195A -1002f486 t HalTimerEnable -1002f498 T InitTDMATimer -1002f4c0 T ChangeStateByTDMA -1002f4d0 T GetMinRateInRRSR -1002f504 T CheckInReqState -1002f514 T InitCheckStateTimer -1002f544 T InitGTimer1ms -1002f590 T DeInitGTimer1ms -1002f5d8 T ChangeTransmiteRate -1002f614 T PowerBitSetting -1002f690 T ChkandChangePS -1002f6f4 T IssueRsvdPagePacketSetting -1002f768 T IssuePSPoll -1002f794 T WaitTxStateMachineOk -1002f7e8 T IssueNullData -1002f878 T PsCloseRF -1002f8ac T PsOpenRF -1002f8dc T ChkTxQueueIsEmpty -1002f8f4 T InitPS -1002f964 T ConfigListenBeaconPeriod -1002f988 T PS_S2_Condition_Match -1002f9bc T PS_S4_Condition_Match -1002fa38 T PS_32K_Condition_Match -1002fa74 T PS_S2ToS3ToS0State -1002fadc T PS_S2ToS0State -1002faf8 T PS_S3ToS2orS0State -1002fb28 T PS_S0ToS1ToS2State -1002fb84 T PS_S1ToS0orS2State -1002fbb4 T PS_S2ToS4State -1002fc00 T PS_S0ToS6State -1002fc20 T PS_S6ToS0State -1002fc38 T CheckTSFIsStable -1002fc88 T WaitHWStateReady -1002fc98 T SysClkDown -1002fd08 T SysClkUp -1002fd54 T ResetPSParm -1002fdc8 T PS_S4ToS2State -1002fdec T SleepTo32K -1002fe4c T Change_PS_State -1002fff8 T Legacy_PS_Setting -1003006c T PSModeSetting -10030110 T ChangePSStateByRPWM -10030154 T ChangeTDMAState -10030274 T TDMAChangeStateTask -1003029e T EnterPS -100302c0 T SetSmartPSTimer -100302fc T GTimer7Handle -10030358 T SmartPS2InitTimerAndToGetRxPkt -10030394 T PS_OnBeacon -10030444 T PSBcnEarlyProcess -10030500 T PSMtiBcnEarlyProcess -100305ac T PSRxBcnProcess -100306fc T TxPktInPSOn -1003073a T PsBcnToProcess -100307f4 T GTimer6Handle -10030840 T RPWMProcess -1003087c T PSSetMode -100308f4 T SpeRPT -10030a14 T ISR_BcnEarly -10030a80 T ISR_MtiBcnEarly -10030ab4 T ISR_RxBcn -10030ad0 T ISR_RxBCMD1 -10030b00 T ISR_RxBCMD0 -10030b54 T ISR_RxUCMD1 -10030b92 T ISR_RxUCMD0 -10030bce T ISR_TxPktIn -10030be0 T ISR_TXCCX -10030be4 T H2CHDL_SetPwrMode -10030d0c T CheckInReqStateTask -10030d52 T HalGetNullTxRpt -10030d70 T ISR_TBTT -10030de8 T H2CHDL_BcnIgnoreEDCCA -10030df8 T PMUInitial -10030e48 T PMUTask -10030f54 T PHY_RF6052SetBandwidth8195A -10030f98 T PHY_RF6052_Config8195A -10031050 t process_rssi -10031086 T rtl8195a_query_rx_desc_status -10031136 T rtl8195a_query_rx_phy_status -1003128e T hal_com_get_channel_plan -100312c2 T HAL_IsLegalChannel -100312e0 T MRateToHwRate -100312f4 T HwRateToMRate -10031308 T HalSetBrateCfg -100313b4 T Hal_MappingOutPipe -100313d0 T hal_init_macaddr -100313fc T hw_var_port_switch -10031684 T SetHwReg -1003168e T GetHwReg -10031690 T switch_power_saving_mode -100316d4 T rtw_bb_rf_gain_offset -1003171c T PHY_GetRateValuesOfTxPowerByRate -100318b4 T PHY_StoreTxPowerByRateNew -10031950 T PHY_InitTxPowerByRate -10031968 T PHY_StoreTxPowerByRate -10031980 T PHY_GetTxPowerIndexBase -10031a20 T PHY_GetTxPowerTrackingOffset -10031a4c T PHY_GetRateIndexOfTxPowerByRate -10031a60 T PHY_GetTxPowerByRate -10031ac0 T phy_StoreTxPowerByRateBase -10031b0c T PHY_SetTxPowerByRate -10031b48 T phy_ConvertTxPowerByRateInDbmToRelativeValues -10031c48 T PHY_TxPowerByRateConfiguration -10031c5a T PHY_SetTxPowerIndexByRateArray -10031c98 T PHY_SetTxPowerIndexByRateSection -10031cfc T PHY_SetTxPowerLevelByPath -10031d32 T phy_GetWorldWideLimit -10031d5e T PHY_GetTxPowerLimit -10031e88 T PHY_ConvertTxPowerLimitToPowerIndex -10031fd8 T PHY_InitTxPowerLimit -10032020 T PHY_SetTxPowerLimit -1003209c T PHY_GetTxPowerIndex -100320ac T rtw_hal_chip_configure -100320c2 T rtw_hal_read_chip_info -100320d8 T rtw_hal_read_chip_version -100320ee T rtw_hal_def_value_init -10032104 T rtw_hal_free_data -1003211a T rtw_hal_dm_init -10032130 T rtw_hal_dm_deinit -10032146 T rtw_hal_init -10032170 T rtw_hal_deinit -1003218a T rtw_hal_set_hwreg -10032198 T rtw_hal_get_hwreg -100321a6 T rtw_hal_set_def_var -100321b8 T rtw_hal_get_def_var -100321ca T rtw_hal_set_odm_var -100321d8 T rtw_hal_get_odm_var -100321e6 T rtw_hal_enable_interrupt -10032208 T rtw_hal_disable_interrupt -1003222a T rtw_hal_inirp_init -1003223c T rtw_hal_inirp_deinit -1003224e T rtw_hal_irp_reset -1003225c T rtw_hal_xmit -1003226e T rtw_hal_mgnt_xmit -10032280 T rtw_hal_init_xmit_priv -10032292 T rtw_hal_free_xmit_priv -100322a0 T rtw_hal_update_ra_mask -100322ce T rtw_hal_add_ra_tid -100322dc T rtw_hal_clone_data -100322ea T rtw_hal_start_thread -100322f8 T rtw_hal_stop_thread -10032306 T rtw_hal_read_bbreg -1003233a T rtw_hal_write_bbreg -10032366 T rtw_hal_read_rfreg -10032378 T rtw_hal_write_rfreg -1003238c T rtw_hal_interrupt_handler -1003239e T rtw_hal_set_bwmode -100323ac T rtw_hal_set_chan -100323ba T rtw_hal_set_chnl_bw -100323d0 T rtw_hal_dm_watchdog -100323e6 T rtw_hal_macid_sleep -10032406 T rtw_hal_macid_wakeup -10032426 T decide_chip_type_by_device_id -1003242c t rtw_net_get_stats -1003247c t netdev_if2_close -1003249c t netdev_close -100324f8 t rtw_if1_deinit -10032592 T rtw_os_indicate_connect -10032596 T rtw_os_indicate_scan_done -1003259a T rtw_reset_securitypriv -1003268e T rtw_os_indicate_disconnect -100326d8 T rtw_init_netdev -10032828 T rtw_drv_if2_init -10032a30 T rtw_drv_if2_stop -10032a86 T rtw_drv_if2_free -10032ad4 T _netdev_open -10032bf0 T _netdev_if2_open -10032cac T netdev_if2_open -10032cd4 T netdev_open -10032cfc T rtw_drv_probe -10032e7c T rtw_dev_remove -10032ec0 T rtw_drv_entry -10032eec T rtw_drv_halt -10032f1c t rtw_wx_set_autoreconnect -10032f4a t rtw_wx_get_autoreconnect -10032f58 t rtw_forwarding_set -10032f7a t rtw_set_ch_deauth -10032f9c t get_priv_size -10032fb0 t rtw_wx_del_custome_ie -10032ffc t rtw_wx_set_pscan_freq -1003307e t rtw_wx_update_custome_ie -100330f0 t rtw_set_tos_value -10033110 t rtw_get_tx_power -10033254 t rtw_wx_set_custome_ie -10033300 t rtw_pm_get -10033344 t rtw_pm_set -100333f8 t rtw_wx_read32 -100334a4 t rtw_wx_write32 -10033508 t rtw_wx_set_freq.isra.10 -100335b0 T rtw_ex_set -10033670 T wireless_send_event -1003367a T indicate_wx_custom_event -100336d6 T indicate_wx_scan_result_present -100336fe T indicate_wx_scan_complete_event -10033728 T rtw_indicate_sta_assoc -10033778 T rtw_indicate_sta_disassoc -100337d0 T rtw_indicate_wx_assoc_event -10033802 T rtw_indicate_wx_disassoc_event -10033832 T rtw_set_wpa_ie -10033948 T strtopsk -100339b4 T rtw_wx_get_passphrase -10033a00 T rtw_wx_set_ap_essid -10033af0 T mac_reg_dump -10033b9c T bb_reg_dump -10033bf8 T rf_reg_dump -10033c70 t rtw_dbg_port -100342d8 T rtw_set_sta_num -100342f4 T rtw_ex_get_drv_ability -100343b4 T rtw_ex_get -1003464c T rtw_ioctl -100355d8 T rtw_os_recv_resource_init -100355dc T rtw_os_recv_resource_alloc -100355e6 T rtw_os_recv_resource_free -100355e8 T rtw_tkip_countermeasure -10035688 T rtw_handle_tkip_mic_err -10035730 T rtw_recv_indicatepkt -10035980 T skb_fail_inc -1003599c T skb_fail_get_and_rst -100359b8 T init_skb_pool -10035a10 T init_skb_data_pool -10035a68 T alloc_skb -10035b68 T kfree_skb -10035bd0 T kfree_skb_chk_key -10035bd4 T skb_put -10035c08 T skb_reserve -10035c16 T dev_alloc_skb -10035c32 T skb_end_pointer -10035c36 T skb_set_tail_pointer -10035c3e T skb_pull -10035c56 T skb_copy -10035c7e T rtw_remainder_len -10035c8a T _rtw_open_pktfile -10035c9c T _rtw_pktfile_read -10035cca T rtw_set_tx_chksum_offload -10035ccc T rtw_os_xmit_resource_alloc -10035cd6 T rtw_os_xmit_resource_free -10035cd8 T rtw_os_pkt_complete -10035ce0 T rtw_os_xmit_complete -10035cf2 T rtw_os_xmit_schedule -10035d2e T rtw_xmit_entry -10035d7a T rtw_alloc_etherdev_with_old_priv -10035d90 T rtw_alloc_etherdev -10035dbc T rtw_free_netdev -10035ddc T timer_wrapper -10035e30 T alloc_etherdev -10035e8c T free_netdev -10035ea6 T dev_alloc_name -10035eb0 T init_timer_wrapper -10035ed0 T deinit_timer_wrapper -10035f1c T init_timer -10035fd4 T mod_timer -100360b4 T cancel_timer_ex -100360fc T del_timer_sync -10036160 T rtw_init_timer -10036168 T rtw_set_timer -1003616c T rtw_cancel_timer -10036176 T rtw_del_timer -1003617c T rltk_get_idx_bydev -1003618c T rltk_wlan_init -10036214 T rltk_wlan_deinit -100362d8 T rltk_wlan_start -1003630c T rltk_wlan_check_isup -1003631c T rltk_wlan_tx_inc -10036330 T rltk_wlan_tx_dec -10036344 T rltk_wlan_get_recv_skb -10036354 T rltk_wlan_alloc_skb -10036394 T rltk_wlan_send_skb -100363c8 T rltk_netif_rx -10036474 T rltk_set_sta_num -10036478 T rltk_set_tx_power_percentage -100364ac T rltk_wlan_control -10036540 T rltk_wlan_running -10036558 T rltk_wlan_handshake_done -1003658c T rltk_wlan_wireless_mode -10036618 T rltk_wlan_is_connected_to_ap -1003665c T Efuse_PowerSwitch -10036668 T Efuse_GetCurrentSize -10036674 T Efuse_CalculateWordCnts -10036698 T EFUSE_GetEfuseDefinition -100366ac T efuse_OneByteRead -100366e0 T efuse_OneByteWrite -10036714 T Efuse_PgPacketWrite -10036728 T efuse_WordEnableDataRead -1003675a T Efuse_WordEnableDataWrite -1003676e T efuse_GetCurrentSize -10036796 T rtw_efuse_map_read -100367f8 T rtw_efuse_map_write -10036978 T rtw_macaddr_cfg -10036a3c T rtw_get_cipher_info -10036ab6 T rtw_get_bcn_info -10036b86 T rtw_init_default_value -10036bf4 T rtw_cancel_all_timer -10036c5e T rtw_free_drv_sw -10036cd4 T rtw_reset_drv_sw -10036d30 T rtw_init_drv_sw -10036db8 T rtw_start_drv_threads -10036e74 T rtw_stop_drv_threads -10036ea8 T rtw_read8 -10036eb6 T rtw_read16 -10036ec4 T rtw_read32 -10036ed2 T rtw_write8 -10036ee0 T rtw_write16 -10036eee T rtw_write32 -10036efc T rtw_do_join -10036fa0 T rtw_set_802_11_bssid -10037124 T rtw_set_802_11_ssid -1003722c T rtw_set_802_11_infrastructure_mode -100372ce T rtw_set_802_11_bssid_list_scan -1003731e T rtw_set_802_11_authentication_mode -10037340 T rtw_set_802_11_add_wep -100373a0 T ODM_InitRAInfo -10037440 T InitialRateUpdate -10037540 T RateUp_search_RateMask -10037572 T RateDown_search_RateMask -100375c4 T StartRateByRSSI -100375ee T RateUpRAM8195A -10037682 T RateDownTrying -100376c0 T TryDone -10037758 T RateDownStepRAM8195A -100377f8 T RateDecisionRAM8195A -100378dc T ArfrRefresh -10037ae4 T H2CHDL_Set_MACID_Config -10037ba8 T PHY_DM_RA_SetRSSI_8195A -10037bd6 t CheckPositive.isra.0 -10037cb8 T ODM_ReadAndConfig_MP_8195A_AGC_TAB -10037d30 T ODM_ReadAndConfig_MP_8195A_PHY_REG -10037da8 T ODM_GetVersion_MP_8195A_PHY_REG -10037dac T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG -10037de0 T odm_ConfigRFReg_8195A -10037e18 T odm_ConfigRF_RadioA_8195A -10037e28 T odm_ConfigMAC_8195A -10037e2c T odm_ConfigBB_AGC_8195A -10037e3c T odm_ConfigBB_PHY_REG_PG_8195A -10037e6a T odm_ConfigBB_PHY_8195A -10037eb2 T odm_ConfigBB_TXPWR_LMT_8195A -10037ed8 T ODM_CmnInfoInit -10037fcc T ODM_CmnInfoHook -10038070 T ODM_CmnInfoPtrArrayHook -10038080 T ODM_CmnInfoUpdate -10038150 T odm_CommonInfoSelfInit -100381c4 T ODM_DMInit -10038212 T odm_CommonInfoSelfUpdate -10038264 T ODM_DMWatchdog -100382d0 T PhyDM_Get_Structure -100382f4 T Phydm_CheckAdaptivity -10038322 T Phydm_NHMCounterStatisticsInit -10038398 T Phydm_SetEDCCAThreshold -100383d0 T Phydm_MACEDCCAState -1003840e T Phydm_AdaptivityInit -100384ec T Phydm_Adaptivity -1003860c T ODM_CfoTrackingInit -10038636 T ODM_CfoTracking -10038656 T ODM_ParsingCFO -10038688 T ODM_InitDebugSetting -1003869c T ODM_Write_DIG -1003873c T odm_ForbiddenIGICheck -100387ce T ODM_Write_CCK_CCA_Thres -10038808 T odm_DIGInit -100388a2 T odm_DigAbort -100388c4 T odm_DIGbyRSSI_LPS -10038970 T odm_FAThresholdCheck -1003899c T odm_DIG -10038bfc T odm_FalseAlarmCounterStatistics -10038c28 T odm_CCKPacketDetectionThresh -10038c80 T odm_RxPhyStatus8195A_Parsing -10038d84 T odm_Process_RSSIForDM_8195A -10038ec6 T ODM_PhyStatusQuery_8195A -10038ef2 T ODM_PhyStatusQuery -10038ef6 T ODM_ConfigRFWithHeaderFile -10038f14 T ODM_ConfigRFWithTxPwrTrackHeaderFile -10038f46 T ODM_ConfigBBWithHeaderFile -10038f6e T ODM_ConfigMACWithHeaderFile -10038f80 T ODM_Read1Byte -10038f86 T ODM_Read4Byte -10038f8c T ODM_Write1Byte -10038f92 T ODM_Write2Byte -10038f98 T ODM_Write4Byte -10038f9e T ODM_SetMACReg -10038fa4 T ODM_SetBBReg -10038faa T ODM_GetBBReg -10038fb0 T ODM_SetRFReg -10038fb6 T ODM_GetRFReg -10038fbc T ODM_MoveMemory -10038fc6 T ODM_delay_ms -10038fca T ODM_delay_us -10038fd0 T getSwingIndex -10039028 T odm_TXPowerTrackingThermalMeterInit -100390da T odm_TXPowerTrackingInit -100390de T odm_TXPowerTrackingCheckIOT -10039112 T ODM_TXPowerTrackingCheck -10039120 T odm_RSSIMonitorInit -10039128 T ODM_RAPostActionOnAssoc -10039130 T odm_RSSIMonitorCheckIOT -10039204 T odm_RSSIMonitorCheck -10039218 T odm_RateAdaptiveMaskInit -10039240 T ODM_RAStateCheck -10039282 T odm_RefreshRateAdaptiveMaskIOT -100392d2 T odm_RefreshRateAdaptiveMask -100392e8 T ODM_Get_Rate_Bitmap -100393d8 t _ReadEfuseInfo8195a -100394a0 t rtl8195a_interface_configure -100394d4 t rtl8195a_hal_deinit -10039510 T _InitPowerOn -10039590 t ReadAdapterInfo8195a -100395c0 T _InitDriverInfoSize -100395ca T _InitNetworkType -100395ec T _InitWMACSetting -1003965c T _InitAdaptiveCtrl -100396a0 T _InitEDCA -1003971c T _InitRateFallback -10039760 T _InitRetryFunction -1003978c T _InitOperationMode -100397d4 T _InitInterrupt -10039814 t rtl8195a_hal_init -10039aec T rtl8195ab_set_hal_ops -10039bc4 T FillH2CCmd8195A -10039be4 T CheckFwRsvdPageContent -10039be6 T rtl8195a_set_FwRsvdPage_cmd -10039bf0 T rtl8195a_set_FwMediaStatusRpt_cmd -10039c1c T rtl8195a_set_FwMacIdConfig_cmd -10039cdc T rtl8195a_set_FwPwrMode_cmd -10039d6c T rtl8195a_download_rsvd_page -1003a074 T rtl8195a_set_FwJoinBssRpt_cmd -1003a07e T rtl8195a_Add_RateATid -1003a0d0 T rtw_rpt_h_addr -1003a11c T rtw_txrpt_read8 -1003a13a T rtw_txrpt_write8 -1003a15e T rtw_ratemask_read8 -1003a17c T rtw_ratemask_write8 -1003a1a0 T ReadRateMask8 -1003a1aa T WriteRateMask8 -1003a1ae T ReadTxrpt8 -1003a1b8 T WriteTxrpt8 -1003a1bc T ResetTxrpt -1003a1f4 T PsuseTxrpt -1003a214 T CheckMaxMacidNum -1003a24c T GetMediaStatusCommon -1003a266 T GetTxrptStatistic -1003a31c T rtl8195a_InitHalDm -1003a440 T rtl8195a_HalDmWatchDog -1003a524 T rtl8195a_init_dm_priv -1003a5fc T rtl8195a_deinit_dm_priv -1003a5fe T MediaConnection -1003a61c T MediaDisconnection -1003a63c T RATaskEnable -1003a666 T SetMediaStatus -1003a6a4 T H2CHDL_JoinInfo -1003a6dc T H2CHDL_SetRsvdPage -1003a774 T H2CCmdCommon -1003a7b8 T HalPwrSeqCmdParsing -1003a878 T hci_dvobj_init -1003a888 T hci_dvobj_deinit -1003a898 T hci_dvobj_request_irq -1003a8a8 T hci_dvobj_free_irq -1003a8b8 T hci_lxbus_dvobj_init -1003a8f4 T hci_lxbus_dvobj_deinit -1003a934 T hci_lxbus_dvobj_request_irq -1003a988 T hci_lxbus_free_irq -1003a9e0 T hci_lxbus_intf_stop -1003aa18 T rtw_interrupt_thread -1003aa8c T lextra_bus_dma_Interrupt -1003aad4 T init_rom_wlan_ram_map -1003aaec T ODM_ReadAndConfig_MP_8195A_MAC_REG -1003ac48 t CheckPositive.isra.0 -1003ad2c T ODM_ReadAndConfig_MP_8195A_RadioA -1003ada4 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 -1003adf4 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 -1003ae44 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 -1003ae94 T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT -1003aecc T ODM_ReadAndConfig_MP_8195A_TxXtalTrack -1003aef8 T GetDeltaSwingTable_8195A -1003af28 T GetDeltaSwingXtalTable_8195A -1003af38 T ODM_TxXtalTrackSetXtal_8195A -1003af58 T Hal_MPT_CCKTxPowerAdjust -1003b028 T ODM_TxPwrTrackSetPwr_8195A -1003b138 T ConfigureTxpowerTrack_8195A -1003b184 T phy_PathA_IQK_8195A -1003b338 T phy_PathA_RxIQK8195A -1003b6cc T _PHY_PathAFillIQKMatrix8195A -1003b862 T _PHY_PathBFillIQKMatrix8195A -1003b9de T _PHY_SaveADDARegisters8195A -1003ba12 T _PHY_SaveMACRegisters8195A -1003ba40 T _PHY_ReloadADDARegisters8195A -1003ba74 T _PHY_ReloadMACRegisters8195A -1003baa4 T _PHY_PathADDAOn8195A -1003bae0 T _PHY_MACSettingCalibration8195A -1003bb28 T _PHY_PIModeSwitch8195A -1003bb64 T phy_SimularityCompare_8195A -1003bc98 T phy_IQCalibrate_8195A -1003c010 T phy_LCCalibrate_8195A -1003c080 T PHY_LCCalibrate_8195A -1003c0e0 T PHY_IQCalibrate_8195A -1003c394 T DoIQK_8195A -1003c3b2 T ConfigureTxpowerTrack -1003c3c4 T ODM_TXPowerTrackingCallback_ThermalMeter -1003c7d0 T ODM_ResetIQKResult -1003c818 T ODM_GetRightChnlPlaceforIQK -1003c870 t __rtw_set_ie_veneer -1003c880 t __rtw_get_wpa_ie_veneer -1003c890 t __rtw_get_wps_ie_veneer -1003c8a0 t __HalI2SClrAllIntrRtl8195a_veneer -1003c8b0 t __ROM_odm_EVMdbToPercentage_veneer -1003c8c0 t __rtw_get_sec_ie_veneer -1003c8d0 t __StrUpr_veneer -1003c8e0 t __wep_80211_decrypt_veneer -1003c8f0 t __HalCpuClkConfig_veneer -1003c900 t __rtw_secmicsetkey_veneer -1003c910 t __rt_arc4_init_veneer -1003c920 t __CmdWriteWord_veneer -1003c930 t __ROM_ODM_CfoTrackingReset_veneer -1003c940 t __tkip_80211_encrypt_veneer -1003c950 t __HalI2SRead32_veneer -1003c960 t __rtw_ieee802_11_parse_elems_veneer -1003c970 t __rtw_get_bit_value_from_ieee_value_veneer -1003c980 t ___vsscanf_veneer -1003c990 t __ROM_odm_QueryRxPwrPercentage_veneer -1003c9a0 t __rtw_parse_wpa_ie_veneer -1003c9b0 t __SpicWaitBusyDoneRtl8195A_veneer -1003c9c0 t __PHY_QueryBBReg_8195A_veneer -1003c9d0 t __HalI2SWrite32_veneer -1003c9e0 t __rtw_get_wpa2_ie_veneer -1003c9f0 t __ROM_odm_SetCrystalCap_veneer -1003ca00 t __rom_psk_PasswordHash_veneer -1003ca10 t __aes_80211_encrypt_veneer -1003ca20 t __Strtoul_veneer -1003ca30 t __rtw_get_rateset_len_veneer -1003ca40 t __wep_80211_encrypt_veneer -1003ca50 t __ROM_odm_GetDefaultCrytaltalCap_veneer -1003ca60 t __PHY_SetBBReg_8195A_veneer -1003ca70 t __rom_psk_CalcGTK_veneer -1003ca80 t __prvStrCmp_veneer -1003ca90 t __phy_CalculateBitShift_veneer -1003caa0 t __ROM_odm_CfoTrackingFlow_veneer -1003cab0 t __AES_UnWRAP_veneer -1003cac0 t __key_2char2num_veneer -1003cad0 t __ROM_odm_FalseAlarmCounterStatistics_veneer -1003cae0 t __rtw_get_wps_attr_content_veneer -1003caf0 t __rt_hmac_sha1_veneer -1003cb00 t __rtw_get_ie_veneer -1003cb10 t __tkip_80211_decrypt_veneer -1003cb20 t __rtw_set_supported_rate_veneer -1003cb30 t __CmdDumpWord_veneer -1003cb40 t __rtw_seccalctkipmic_veneer -1003cb50 t __rt_arc4_crypt_veneer -1003cb60 t __HalDelayUs_veneer -1003cb70 t __aes_80211_decrypt_veneer -1003cb80 t __rtw_parse_wpa2_ie_veneer -1003cb90 t __HalI2SIntrCtrlRtl8195a_veneer -1003cba0 t __rt_md5_hmac_veneer -1003cbb0 t __rtw_secgetmic_veneer -1003cbc0 t __rtw_check_network_type_veneer -1003cbd0 t __rtw_set_fixed_ie_veneer -1003cbe0 t __rom_psk_CalcPTK_veneer -1003cbf0 t __AES_WRAP_veneer -1003cc00 t __rtw_secmicappend_veneer -1003cc89 d __func__.21309 -1003d30e d __FUNCTION__.14666 -1003d7d8 d bitrate_table -1003d904 d samplerate_table -1003d910 d decoder_table -1003d91c d imdct_s -1003d9ac d sfb_8000_short -1003d9d3 d sfb_32000_short -1003d9fc d is_table -1003da18 d rq_table -10045a54 d root_table -10045a70 d sfb_44100_mixed -10045a98 d is_lsf_table -10045b10 d sflen_table -10045b30 d sfb_16000_mixed -10045b54 d ca -10045b74 d sfb_44100_short -10045b9b d sfb_44100_long -10045bb1 d sfb_48000_mixed -10045bd7 d sfb_24000_long -10045bf0 d scale.7384 -10045c38 d sfb_32000_mixed -10045c5e d sfb_16000_short -10045c85 d sfb_8000_long -10045c9b d sfb_22050_mixed -10045cc0 d window_l -10045d50 d sfb_48000_long -10045d68 d cs -10045d88 d sfb_24000_mixed -10045dac d pretab -10045dc2 d sfb_48000_short -10045de9 d sfb_22050_short -10045e10 d sfb_8000_mixed -10045e38 d sfbwidth_table -10045ea4 d sfb_24000_short -10045ecb d sfb_32000_long -10045ee1 d sfb_22050_long -10045ef8 d window_s -10045f28 d nsfb_table -10045f70 d hufftab24 -10046578 d hufftab10 -10046710 d hufftab11 -100468b0 d hufftab12 -10046a30 d hufftab13 -10047068 d hufftab3 -100470a8 d hufftab15 -10047698 d hufftab16 -10047ce0 d hufftab6 -10047d50 d hufftab7 -10047e50 D mad_huff_pair_table -10047fd0 d hufftab9 -100480a8 d hufftab1 -100480c8 d hufftabA -10048138 d hufftab2 -10048178 d hufftabB -100481b8 D mad_huff_quad_table -100481c0 d hufftab0 -100481c4 d hufftab5 -1004822c d hufftab8 -10048334 d crc_table -10048534 d D -10048db4 D mad_timer_zero -10049147 d __func__.20876 -100496dc d err_to_errno_table -10049724 D ip_addr_broadcast -10049728 D ip_addr_any -1004973c D memp_sizes -1004975c D tcp_pcb_lists -1004976c D tcp_state_str -10049798 D tcp_backoff -1004980d D tcp_persist_backoff -10049814 D ethbroadcast -1004981a D ethzero -10049849 d __FUNCTION__.9191 -1004990b d __FUNCTION__.9203 -1004991a d dhcp_option_lease_time_one_day -10049943 d dhcp_option_interface_mtu -10049945 d dhcp_magic_cookie -100499c7 d __FUNCTION__.4595 -100499e5 d ucExpectedStackBytes.7044 -100499f9 d CSWTCH.270 -10049a86 d __FUNCTION__.12255 -10049a9c d __FUNCTION__.12259 -10049ab4 D osdep_service -10049bd8 d __FUNCTION__.12110 -10049c65 d __FUNCTION__.12059 -10049c79 d __FUNCTION__.12121 -10049c94 d __FUNCTION__.12067 -10049cb0 d __FUNCTION__.12093 -10049ccf d __FUNCTION__.7295 -10049dd8 d PinMap_I2S_RX -10049eb8 d PinMap_I2S_TX -10049f18 d I2SDefaultSetting -10049f2c d PinMap_I2S_CLK -10049f8c d PinMap_I2S_WS -10049fec d __FUNCTION__.8784 -1004a044 d __FUNCTION__.8600 -1004a051 d __FUNCTION__.8613 -1004a2f6 d __FUNCTION__.8455 -1004a318 d __FUNCTION__.8462 -1004a333 d __FUNCTION__.8469 -1004a42e d __func__.8808 -1004a44d d __func__.8818 -1004a46b d __func__.8830 -1004a485 d __func__.8840 -1004a4a7 d __func__.8835 -1004a870 d __func__.8603 -1004a88a d __func__.8686 -1004a89d d __func__.8825 -1004a8b6 d __func__.8631 -1004a8e9 d __FUNCTION__.17777 -1004a908 D wlancmds -1004ab00 D rtw_cmd_callback -1004ad8c d RTW_ChannelPlan2G -1004ae04 D WPS_OUI -1004ae08 D RSN_TKIP_CIPHER -1004ae0c D MCS_rate_1R -1004ae1c D P2P_OUI -1004ae48 D WMM_INFO_OUI -1004ae4e D RTW_WPA_OUI -1004ae52 D WMM_PARA_OUI -1004ae58 d RTW_ChannelPlanMap -1004ae70 D null_addr -1004ae76 D WMM_OUI -1004ae7c d wlanevents -1004af3c D zero_bssid -1004af79 d __FUNCTION__.17681 -1004af8f D SNAP_ETH_TYPE_APPLETALK_AARP -1004af91 d __FUNCTION__.17495 -1004afa4 D SNAP_ETH_TYPE_IPX -1004afa6 D rtw_bridge_tunnel_header -1004afcd D rtw_rfc1042_header -1004afeb d CSWTCH.36 -1004aff7 D ARTHEROS_OUI1 -1004affa D ARTHEROS_OUI2 -1004affd D REALTEK_OUI -1004b000 D RALINK_OUI -1004b003 D MARVELL_OUI -1004b006 D CISCO_OUI -1004b009 d rtw_basic_rate_cck -1004b00d D BROADCOM_OUI1 -1004b010 D BROADCOM_OUI2 -1004b013 D REALTEK_96B_IE -1004b019 d rtw_basic_rate_mix -1004b020 d rtw_basic_rate_ofdm -1004b023 D AIRGOCAP_OUI -1004b037 d CSWTCH.66 -1004b050 d CSWTCH.48 -1004b092 d CSWTCH.28 -1004b0a4 D efuse_map_mask -1004b0b4 D flash_map_mask -1004b150 d __func__.21107 -1004b496 d CSWTCH.15 -1004b51a d CSWTCH.17 -1004b589 d CSWTCH.14 -1004b61e d __FUNCTION__.21257 -1004b630 d rtw_private_args -1004ba47 d __FUNCTION__.21057 -1004ba5a d __FUNCTION__.21294 -1004ba6b d __FUNCTION__.21241 -1004ba7a d __FUNCTION__.21126 -1004ba8a d iw_priv_type_size -1004bb68 d __FUNCTION__.17334 -1004bb7e d __FUNCTION__.17736 -1004bb8e d __FUNCTION__.17760 -1004bba1 d __FUNCTION__.17712 -1004bbb0 d __FUNCTION__.17649 -1004bbbe d __FUNCTION__.17661 -1004bf95 d __FUNCTION__.17827 -1004bfae d __FUNCTION__.17654 -1004bfb9 d __FUNCTION__.17615 -1004bfc8 d __FUNCTION__.17811 -1004bfda d __FUNCTION__.17765 -1004bfe8 d __FUNCTION__.17724 -1004bff9 d __FUNCTION__.17637 -1004d39a D CCKFCCTable_Ch14_8195A -1004d3aa D CCKFCCTable_8195A -1004d3bc D OFDMSwingTable_New -1004d468 D CCKCETable_8195A -1004d47e d CSWTCH.39 -1004d493 d __func__.20571 -1004d4b4 D hci_ops -1004d4d9 V Array_MP_8195A_TXPWR_LMT -1004da4c D xHeapRegions -1004da6c D UartLogRamCmdTable -1004da6c D console_commands_main -1004da7c D console_cmd_wifi_api -1004daec D console_commands_at -1004db5c D console_commands -1004db7c d UartLogRamCmdTable_end -1004db80 D __data_start__ -1004db80 D wlan_st_name -1004db88 D wifi_st_dhcp -1004db98 D wlan_ap_name -1004dba0 D wifi_ap_dhcp -1004dbb0 D feep_tab -1004dbe0 D wifi_st_cfg -1004dc50 D wifi_cfg -1004dc58 D tab_txt_rtw_secyrity -1004dc80 D wifi_ap_cfg -1004dcec D wlan_ap_netifn -1004dcf0 D tab_code_rtw_secyrity -1004dd18 D oversampling -1004dd1c D SystemCoreClock -1004dd20 D error_flag -1004dd24 d tcp_port -1004dd28 d iss.7833 -1004dd2c d udp_port -1004dd2e D lwip_host_name -1004dd4e d dhcp_server_state_machine -1004dd4f d dhcp_recorded_xid -1004dd54 d uxCriticalNesting -1004dd58 d xNextTaskUnblockTime -1004dd5c d seed.12226 -1004dd60 d wakeup_event -1004dd64 d wakelock -1004dd68 d last_wakelock_state -1004dd88 D mlme_sta_tbl -1004ddf8 d PMKID_KDE_TYPE.17744 -1004de00 V nr_xmitbuff -1004de04 V nr_xmitframe -1004de08 d P802_1H_OUI -1004de0b D rtw_adaptivity_mode -1004de0c D g_user_ap_sta_num -1004de10 d rtw_private_handler -1004de54 V max_local_skb_num -1004de58 V max_skb_buf_num -1004de5c D rom_e_rtw_msgp_str_ -1004e038 D ARFB_table -1004e077 D TRYING_NECESSARY_idx -1004e08b D DROPING_NECESSARY -1004e09f D PER_RATE_UP -1004e0b3 D PER_RATE_DOWN -1004e0c8 V Array_MP_8195A_PHY_REG_PG -1004e158 D Array_MP_8195A_AGC_TAB -1004e368 D Array_MP_8195A_PHY_REG -1004e9e0 D rtl8195A_card_disable_flow -1004ea80 D rtl8195A_card_enable_flow -1004eb20 D Array_MP_8195A_MAC_REG -1004ee28 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A -1004ee48 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A -1004ee68 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A -1004ee86 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A -1004eea4 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A -1004eec2 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A -1004eee0 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A -1004ef00 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A -1004ef1e D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A -1004ef3c D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A -1004ef5c D Array_MP_8195A_RadioA -1004f524 D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A -1004f542 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A -1004f562 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A -1004f580 D .ram.bss$$Base -1004f580 D __bss_start__ -1004f580 D __data_end__ -1004f580 D __ram_image2_text_end__ -1004f580 d skbdata_list -1004f588 V skb_data_pool -10052988 d ucIdleTaskHeap -10052aa0 D HalI2SOpSAL -10052adc D SYSAdapte -10052ae0 D PwrAdapter -10052d6c D libc_has_init -10052d6d D print_off -10052d70 d rheap_end -10052d74 D wifi_run_mode -10052d78 D wlan_st_netifn -10052d7c D wifi_autoreconnect -10052d84 d event_init.21316 -10052d88 d sampCntAdd -10052d8c d sampCnt -10052d90 D mp3_serv -10052e12 D tskreader_enable -10052e14 D readBuf -10052e18 D tskmad_enable -10052e1c d bufUnderrunCt -10052e20 d oldRate -10052e24 d sampDelCnt -10052e25 D scan_end -10052e28 D pbuf_fifo -10052e2c D pi2s -10052e34 D I2sTxSema -10052e38 D rtw_join_status -10052e3c D wifi_mode -10052e40 d scan_result_handler_ptr -10052e64 d join_user_data -10052e68 d event_callback_list -10052fe8 D paff_array -10053060 D lwip_init_done -10053064 D xnetif -100530e4 d s_aliases.7449 -100530e8 d s_hostent.7448 -100530fc d s_hostent_addr.7450 -10053100 D h_errno -10053104 d s_phostent_addr.7451 -1005310c d select_cb_list -10053110 d sockets -100531d0 d select_cb_ctr -100531d4 d mbox -100531d8 d tcpip_init_done_arg -100531dc d tcpip_init_done -100531e0 d allsystems -100531e4 d allrouters -100531e8 d igmp_group_list -100531ec D current_header -100531f0 d ip_id -100531f4 D current_iphdr_src -100531f8 D current_iphdr_dest -100531fc D current_netif -10053200 d str.6812 -10053210 d reassdatagrams -10053214 d ip_reass_pbufcount -10053216 D dhcp_rx_options_given -10053220 d xid.7762 -10053224 D dhcp_rx_options_val -1005324c d dns_seqno -10053250 d dns_table -100536b0 d dns_servers -100536b8 d dns_payload_buffer -100538bc d dns_pcb -100538c0 d dns_payload -100538c4 d tcpip_tcp_timer_active -100538c8 d next_timeout -100538cc D netif_list -100538d0 D netif_default -100538d4 d netif_num -100538d5 D pbuf_free_ooseq_pending -100538d8 d raw_pcbs -100538dc D tcp_active_pcbs_changed -100538e0 D tcp_ticks -100538e4 d tcp_timer -100538e8 D tcp_listen_pcbs -100538ec D tcp_active_pcbs -100538f0 d tcp_timer_ctr -100538f4 D tcp_tw_pcbs -100538f8 D tcp_tmp_pcb -100538fc D tcp_bound_pcbs -10053900 d seqno -10053904 d tcplen -10053908 d ackno -1005390c d flags -1005390d d recv_flags -10053910 d tcphdr -10053914 d recv_data -10053918 d inseg -1005392c D tcp_input_pcb -10053930 D udp_pcbs -10053934 d etharp_cached_entry -10053938 d arp_table -10053a00 D lwip_tickless_used -10053a04 d s_timeoutlist -10053a34 d s_nextthread -10053a38 d dhcps_ip_table_semaphore -10053a3c d dhcps_send_broadcast_address -10053a40 D dhcps_ip4addr_pool_end -10053a41 d dhcp_client_ethernet_address -10053a54 d dhcps_subnet_broadcast -10053a58 d bound_client_ethernet_address -10053a68 d dhcps_netif -10053a6c d dhcps_local_gateway -10053a70 d ip_table -10053a90 d dhcps_pcb -10053a94 d dhcp_message_total_options_lenth -10053a98 d dhcps_local_address -10053a9c d client_request_ip -10053aa0 d dhcps_allocated_client_address -10053aa4 D dhcps_ip4addr_pool_start -10053aa8 d dhcps_local_mask -10053aac d dhcps_network_id -10053ab0 d dhcp_message_repository -10053ab4 D ext_upper -10053ab8 d xFreeBytesRemaining -10053abc d ext_free -10053ac0 D ext_lower -10053ac4 d pxEnd -10053ac8 d xStart -10053ad0 d xMinimumEverFreeBytesRemaining -10053ad4 d ulTimerCountsForOneTick -10053ad8 d ulStoppedTimerCompensation -10053adc d xMaximumPossibleSuppressedTicks -10053ae0 d xPendingReadyList -10053af4 d uxTopReadyPriority -10053af8 d uxTasksDeleted -10053afc d xTickCount -10053b00 d pxReadyTasksLists -10053bdc d pxOverflowDelayedTaskList -10053be0 d xTasksWaitingTermination -10053bf4 d pxDelayedTaskList -10053bf8 d xSchedulerRunning -10053bfc d ulTaskSwitchedInTime -10053c00 D pxCurrentTCB -10053c04 d uxPendedTicks -10053c08 d xSuspendedTaskList -10053c1c d uxCurrentNumberOfTasks -10053c20 d ulDeltaTotalRunTime -10053c24 d xDelayedTaskList2 -10053c38 d xDelayedTaskList1 -10053c4c d uxTaskNumber -10053c50 d xYieldPending -10053c54 d uxSchedulerSuspended -10053c58 d xNumOfOverflows -10053c5c d pxCurrentTimerList -10053c60 d xActiveTimerList1 -10053c74 d xActiveTimerList2 -10053c88 d xLastTime.5284 -10053c8c d xTimerQueue -10053c90 d pxOverflowTimerList -10053c94 d xTimerTaskHandle -10053c98 d device_mutex -10053ca4 d mutex_init -10053ca8 d uxSavedInterruptStatus -10053cac D min_free_heap_size -10053cb0 d g_heap_inited -10053cb4 d tcm_lock -10053cb8 D g_tcm_heap -10053cbc D flashobj -10053cc8 D fspic_isinit -10053ccc D WDGAdapter -10053d08 d last_acquire_wakelock_time -10053d88 D post_sleep_callback -10053e08 D pre_sleep_callback -10053e88 D reserve_pll -10053e8c d sys_sleep_time -10053e90 d hold_wakelock_time -10053f10 D missing_tick -10053f14 D Timer2To7HandlerData -10053f2c D auto_reconnect_running -10053f30 D p_wlan_autoreconnect_hdl -10053f34 D mac_monitor_callback -10053f38 D mf_list_head -10053f3c d pscan_retry_cnt.21430 -10053f40 D promisc_callback_all -10053f44 D promisc_sema -10053f48 D promisc_callback -10053f4c D psk_essid -10053f94 D psk_passphrase -10054016 D psk_passphrase64 -10054057 D wpa_global_PSK -100540a7 d RFC1042_OUI -100540ac d rx_ring_pool -1005618c d stop_report_count.20629 -1005618d D bCheckStateTIMER -10056190 d WifiMcuCmdBitMap.20974 -10056194 D p_wlan_init_done_callback -10056198 D rtw_power_percentage_idx -1005619c D p_wlan_uart_adapter_callback -100561a0 D rtw_adaptivity_en -100561a4 D p_wlan_mgmt_filter -100561a8 D rtw_initmac -100561ac D rtw_adaptivity_th_l2h_ini -100561b0 d drvpriv -100561c4 D skbbuf_used_num -100561c8 V skb_pool -10056380 D skbdata_used_num -10056384 d wrapper_skbbuf_list -1005638c D max_skbdata_used_num -10056390 D max_skbbuf_used_num -10056394 d skb_fail_count -10056398 D timer_table -100563a0 D rltk_wlan_info -100563d0 d timer_used_num -100563d4 D max_timer_used_num -100563d8 D Noisy_State -100563dc D pExportWlanIrqSemaphore -100563e0 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A -100563fe D .ram.bss$$Limit -100563fe D __bss_end__ -10056400 B __ram_heap2_start__ +10008ca8 T rtw_security_to_str +10008cbc T show_wifi_ap_ip +10008cf0 T wifi_run_ap +10008e0c T show_wifi_st_ip +10008e40 T wifi_run_st +10008f08 T wifi_run +10009000 T wifi_init +10009034 t wifi_autoreconnect_thread_ +10009094 T show_wifi_st_cfg +100090e4 T show_wifi_ap_cfg +10009150 T show_wifi_cfg +100091b0 t mp3_cfg_read +100091e8 t user_init_thrd +10009200 t tskmad +1000941c t tskreader +10009824 T render_sample_block +10009898 T set_dac_sample_rate +100098dc T connect_close +10009904 T connect_start +100099a4 t fATWS +10009a84 T ShowMemInfo +10009ab0 T main +10009b04 t fATSN +10009b8c t _scan_result_handler +10009c80 t fATWI +10009db8 t fATOF +10009dbc t fATON +10009dc0 t fATWR +10009ddc t fATPN +10009eb4 t fATPA +10009f94 t fATSP +10009fd8 t fATDS +1000a000 t fATSW +1000a00a t fATSD +1000a014 t fATST +1000a084 T print_hex_dump +1000a0b4 T dump_bytes +1000a148 t fATSB +1000a180 T print_udp_pcb +1000a1ec T print_tcp_pcb +1000a2c4 t fATLW +1000a2d4 T RamFifoClose +1000a330 T RamFifoInit +1000a484 T RamFifoRead +1000a540 T RamFifoWrite +1000a5f4 T RamFifoFill +1000a620 T RamFifoFree +1000a634 T RamFifoLen +1000a640 t decode_header +1000a7b0 T mad_header_init +1000a7dc T mad_frame_finish +1000a7f4 T mad_header_decode +1000aa90 T mad_frame_decode +1000ab14 T mad_frame_mute +1000ab5e T mad_frame_init +1000ab7c t III_requantize +1000abf8 t III_aliasreduce +1000ac60 t fastsdct +1000ad98 t III_imdct_l +1000b1b0 t III_imdct_s +1000b304 t III_overlap +1000b32e t III_freqinver +1000b378 t III_decode +1000c394 T mad_layer_III +1000c7f8 T mad_bit_init +1000c804 T mad_bit_length +1000c81c T mad_bit_nextbyte +1000c828 T mad_bit_skip +1000c858 T mad_bit_read +1000c8c4 T mad_bit_crc +1000c9b8 t scale +1000c9c4 t dct32 +1000d258 t synth_half +1000d69c t synth_full +1000daf0 T mad_synth_mute +1000db28 T mad_synth_init +1000db4c T mad_synth_frame +1000dbe0 t scale_rational +1000dc54 T mad_timer_set +1000dd3c T mad_stream_init +1000dd6e T mad_stream_finish +1000dd80 T mad_stream_buffer +1000dd94 T mad_stream_sync +1000dddc T mad_stream_errorstr +1000df38 t i2s_test_tx_complete +1000df50 T i2sClose +1000dfdc T i2sInit +1000e150 T i2sSetRate +1000e1d8 T i2sPushPWMSamples +1000e340 W __low_level_init +1000e344 T SystemCoreClockUpdate +1000e358 t print_on +1000e370 W console_help +1000e3b0 T GetArgvRam +1000e460 T get_eap_phase +1000e464 T get_eap_method +1000e468 T eap_autoreconnect_hdl +1000e46c t wifi_no_network_hdl +1000e484 t wifi_ap_sta_disassoc_hdl +1000e488 T wifi_scan_done_hdl +1000e4f8 t wifi_handshake_done_hdl +1000e514 t wifi_disconn_hdl +1000e57c t wifi_connected_hdl +1000e5b0 T wifi_scan_each_report_hdl +1000e6f0 t wifi_ap_sta_assoc_hdl +1000e6f2 T wifi_rx_beacon_hdl +1000e6f4 T wifi_connect +1000eb28 T wifi_set_country +1000eb34 T wifi_off +1000eba8 T wifi_start_ap +1000ecc0 T wifi_scan +1000ed18 T wifi_scan_networks +1000edc8 T wifi_set_pscan_chan +1000ede0 T wifi_get_setting +1000ee90 T wifi_show_setting +1000ef54 T wifi_set_network_mode +1000ef6c T wifi_indication +1000efa8 T wifi_reg_event_handler +1000effc T wifi_unreg_event_handler +1000f040 T init_event_callback_list +1000f050 T promisc_deinit +1000f054 T promisc_recv_func +1000f058 T promisc_set +1000f05c T is_promisc_enabled +1000f066 T iw_ioctl +1000f082 T wext_get_ssid +1000f0cc T wext_set_ssid +1000f100 T wext_set_bssid +1000f14a T is_broadcast_ether_addr +1000f16c T wext_set_auth_param +1000f19a T wext_set_key_ext +1000f29a T wext_get_enc_ext +1000f2fc T wext_set_passphrase +1000f330 T wext_get_passphrase +1000f360 T wext_enable_powersave +1000f3b8 T wext_set_mode +1000f3dc T wext_get_mode +1000f406 T wext_set_ap_ssid +1000f43a T wext_set_country +1000f460 T wext_set_pscan_channel +1000f4e0 T wext_set_channel +1000f50e T wext_get_channel +1000f53a T wext_set_scan +1000f56a T wext_get_scan +1000f59c T wext_wlan_indicate +1000f6e4 T wext_set_adaptivity +1000f70c T wext_set_sta_num +1000f710 T LwIP_DHCP +1000f804 t netconn_recv_data +1000f8d4 T netconn_new_with_proto_and_callback +1000f934 T netconn_delete +1000f958 T netconn_getaddr +1000f99c T netconn_connect +1000f9dc T netconn_recv_tcp_pbuf +1000f9f0 T netconn_recv +1000fa78 T netconn_recved +1000faa4 T netconn_send +1000fae0 T netconn_write_partly +1000fb70 T netconn_gethostbyname +1000fbc8 t recv_udp +1000fc38 t recv_raw +1000fcbc t setup_tcp +1000fd00 t err_tcp +1000fd98 t do_connected +1000fe04 t do_writemore +1000ff04 t do_close_internal +1000fff0 t poll_tcp +10010040 t do_dns_found +1001006c t sent_tcp +100100ba t recv_tcp +10010134 T do_newconn +100101c4 T netconn_alloc +10010230 T netconn_free +1001025c t netconn_drain +100102ec T do_delconn +10010378 T do_connect +1001040c T do_send +1001047c T do_recv +100104bc T do_write +100104f6 T do_getaddr +1001056c T do_gethostbyname +10010598 T netbuf_delete +100105b8 T netbuf_free +100105ce T netbuf_ref +10010608 T lwip_gethostbyname +10010654 t get_socket +10010674 t alloc_socket +100106e4 t event_callback +10010814 T lwip_socket_init +10010816 T lwip_close +10010868 T lwip_connect +100108c4 T lwip_recvfrom +10010a7c T lwip_read +10010a90 T lwip_sendto +10010b3c T lwip_send +10010bb4 T lwip_socket +10010c28 T lwip_write +10010c30 t tcpip_thread +10010cb4 T tcpip_input +10010cfc T tcpip_callback_with_block +10010d50 T tcpip_timeout +10010d94 T tcpip_apimsg +10010dec T tcpip_init +10010e30 t autoip_start_probing +10010e7c t autoip_arp_announce +10010ea8 T autoip_start +10010f3c T autoip_tmr +1001104c T autoip_arp_reply +100110f4 t icmp_send_response.isra.0 +10011164 T icmp_input +10011288 T icmp_dest_unreach +10011292 T icmp_time_exceeded +1001129c t igmp_send +10011340 t igmp_delaying_member +1001137c t igmp_lookup_group.part.1 +100113b4 T igmp_init +100113d0 T igmp_report_groups +100113f4 T igmp_lookfor_group +10011414 T igmp_start +10011450 T igmp_input +10011514 T igmp_tmr +10011540 t lwip_standard_chksum +10011598 T inet_chksum_pseudo +1001161e T inet_chksum +1001162a T inet_chksum_pbuf +10011670 T ip_route +100116ac T ip_input +10011884 T ip_output_if_opt +100119d8 T ip_output_if +100119fa T ip_output +10011a32 T ip4_addr_isbroadcast +10011a6a T ipaddr_aton +10011b80 T ipaddr_addr +10011b98 T ipaddr_ntoa_r +10011c30 T ipaddr_ntoa +10011c3c t ipfrag_free_pbuf_custom +10011c54 t ip_reass_free_complete_datagram +10011cd4 t ip_reass_remove_oldest_datagram +10011d48 T ip_reass_tmr +10011d70 T ip_reass +10012020 T ip_frag +1001218c T lwip_htons +10012192 T lwip_ntohs +10012198 T lwip_htonl +1001219c T lwip_ntohl +100121a0 t dhcp_set_state +100121b0 t dhcp_option +100121d0 t dhcp_option_byte +100121e2 t dhcp_option_short +10012204 t dhcp_option_long +10012248 t dhcp_create_msg +1001239c t dhcp_delete_msg +100123b2 t dhcp_check +100123d8 t dhcp_bind +100124ac t dhcp_option_trailer +100124d8 t dhcp_discover +1001258c t dhcp_reboot +10012630 t dhcp_option_hostname.isra.1 +10012670 t dhcp_rebind +10012704 t dhcp_select +100127f0 t dhcp_recv +10012bf4 T dhcp_arp_reply +10012c74 T dhcp_renew +10012d08 T dhcp_release +10012db0 T dhcp_coarse_tmr +10012e3c T dhcp_fine_tmr +10012ed8 T dhcp_release_unicast +10012f9c T dhcp_stop +10012fcc T dhcp_start +1001306c t dns_parse_name +10013088 t dns_recv +1001321c t dns_send +100132ec t dns_check_entry +1001339c T dns_setserver +100133bc T dns_init +10013414 T dns_tmr +10013440 T dns_gethostbyname +10013580 T lwip_init +100135a8 T sys_timeout +10013608 T tcp_timer_needed +1001363c t tcpip_tcp_timer +10013674 T sys_timeouts_init +100136e8 t dns_timer +10013704 t igmp_timer +1001371c t autoip_timer +10013734 t dhcp_timer_fine +10013750 t dhcp_timer_coarse +1001376c t arp_timer +10013788 t ip_reass_timer +100137a4 T sys_untimeout +100137ec T sys_timeouts_mbox_fetch +10013850 T netif_init +10013854 T netif_set_ipaddr +100138ac T netif_set_addr +100138c8 T netif_add +1001392c T netif_set_gw +10013934 T netif_set_netmask +1001393c T netif_set_default +10013948 T netif_set_up +1001397e T netif_set_down +10013998 t pbuf_free_ooseq_callback +100139cc t pbuf_pool_is_empty +10013a08 T pbuf_alloced_custom +10013a5c T pbuf_header +10013ab4 T pbuf_free +10013af4 T pbuf_alloc +10013c18 T pbuf_realloc +10013c4c T pbuf_clen +10013c5c T pbuf_ref +10013c76 T pbuf_cat +10013c92 T pbuf_chain +10013ca2 T pbuf_copy +10013d3e T pbuf_copy_partial +10013da6 T pbuf_coalesce +10013dd4 T raw_input +10013e4c T raw_connect +10013e56 T raw_recv +10013e5c T raw_sendto +10013eec T raw_send +10013ef4 T raw_remove +10013f1c T raw_new +10013f50 t tcp_new_port +10013fa0 T tcp_init +10013fbc T tcp_update_rcv_ann_wnd +10013ff2 T tcp_recved +1001402c T tcp_seg_free +10014046 T tcp_segs_free +10014058 T tcp_seg_copy +10014080 T tcp_arg +10014084 T tcp_recv +1001408a T tcp_sent +10014090 T tcp_err +10014096 T tcp_accept +1001409a T tcp_poll +100140a4 T tcp_pcb_purge +100140e4 T tcp_slowtmr +100143a0 T tcp_pcb_remove +10014408 t tcp_close_shutdown +10014538 T tcp_close +10014550 T tcp_recv_null +10014574 T tcp_process_refused_data +100145d4 T tcp_fasttmr +1001464c T tcp_tmr +10014670 T tcp_shutdown +100146c0 T tcp_abandon +10014758 T tcp_abort +10014760 T tcp_next_iss +10014778 T tcp_alloc +10014898 T tcp_new +1001489e T tcp_eff_send_mss +100148bc T tcp_connect +10014a18 t tcp_oos_insert_segment +10014a98 t tcp_receive +10015270 t tcp_parseopt.isra.0 +100152f4 T tcp_input +10015b4c t tcp_pbuf_prealloc +10015ba0 t tcp_create_segment +10015c68 t tcp_output_alloc_header.constprop.0 +10015cd2 T tcp_write +10016022 T tcp_enqueue_flags +100160ca T tcp_send_fin +10016112 T tcp_send_empty_ack +10016170 T tcp_output +100163e8 T tcp_rst +10016480 T tcp_rexmit_rto +100164ae T tcp_rexmit +100164fe T tcp_rexmit_fast +10016554 T tcp_keepalive +100165a6 T tcp_zero_window_probe +10016650 T udp_init +1001666c T udp_input +100167f4 T udp_bind +1001689c T udp_sendto_if +1001699a T udp_sendto +100169d0 T udp_send +100169dc T udp_connect +10016a24 T udp_disconnect +10016a34 T udp_recv +10016a3c T udp_remove +10016a64 T udp_new +10016a88 t etharp_free_entry +10016ab8 t etharp_find_entry +10016b94 t etharp_send_ip +10016bc8 T etharp_tmr +10016c08 T etharp_cleanup_netif +10016c30 T etharp_raw +10016cec T etharp_request +10016d18 t etharp_output_to_arp_index +10016d60 T etharp_query +10016e64 T etharp_output +10016f5c T ethernet_input +1001714c t low_level_output +100171a8 t arp_timer +100171c4 T ethernetif_recv +1001723c T ethernetif_init +10017280 T lwip_POST_SLEEP_PROCESSING +1001729c T rltk_wlan_set_netif_info +100172bc T rltk_wlan_send +10017350 T rltk_wlan_recv +100173bc T netif_is_valid_IP +100173f0 T netif_get_idx +10017408 T netif_rx +10017418 T netif_post_sleep_processing +1001741c T sys_mbox_new +10017436 T sys_mbox_free +1001744a T sys_mbox_post +1001746a T sys_mbox_trypost +1001748c T sys_arch_mbox_fetch +100174d6 T sys_arch_mbox_tryfetch +100174f6 T sys_mbox_valid +10017500 T sys_mbox_set_invalid +10017506 T sys_sem_new +10017542 T sys_arch_sem_wait +10017582 T sys_sem_signal +1001758e T sys_sem_free +10017594 T sys_sem_valid +1001759e T sys_sem_set_invalid +100175a4 T sys_init +100175c8 T sys_thread_new_tcm +10017630 T sys_arch_protect +1001763a T sys_arch_unprotect +10017640 t mark_ip_in_table +10017684 t dhcps_initialize_message +10017734 t add_offer_options +10017824 T dhcps_handle_state_machine_change +100178f4 t dhcps_receive_udp_packet_handler +10017bc0 T dhcps_deinit +10017be8 T dhcps_init +10017cf0 t prvInsertBlockIntoFreeList +10017d38 t vPortDefineHeapRegions.constprop.1 +10017dd8 T pvPortMalloc +10017eb8 T __vPortFree +10017efc T vPortSetExtFree +10017f18 T vPortFree +10017f48 T xPortGetFreeHeapSize +10017f54 t prvPortStartFirstTask +10017f74 T pxPortInitialiseStack +10017f90 T vPortSVCHandler +10017fb0 t pxCurrentTCBConst2 +10017fb4 T vPortYield +10017fcc T ulPortSetInterruptMask +10017fdc t prvTaskExitError +10017fe4 T vPortEnterCritical +10018000 T vPortClearInterruptMask +10018008 T vPortExitCritical +1001801c T xPortPendSVHandler +1001805c t pxCurrentTCBConst +10018060 T xPortSysTickHandler +10018084 W vPortSuppressTicksAndSleep +1001819c W vPortSetupTimerInterrupt +100181ec T xPortStartScheduler +1001821c T vApplicationIdleHook +10018220 T vApplicationStackOverflowHook +1001823c T osKernelSysTick +10018240 T vListInitialise +10018256 T vListInitialiseItem +1001825c T vListInsertEnd +10018274 T vListInsert +100182a4 T uxListRemove +100182c4 t prvCopyDataToQueue +1001832e t prvCopyDataFromQueue +10018356 t prvUnlockQueue +100183be T xQueueGenericReset +10018418 T xQueueGenericCreate +10018464 T xQueueCreateCountingSemaphore +10018476 T xQueueGenericSend +10018554 T xQueueCreateMutex +1001859e T xQueueGenericSendFromISR +10018602 T xQueueGenericReceive +10018706 T uxQueueMessagesWaiting +10018718 T vQueueDelete +1001872e T vQueueWaitForMessageRestricted +10018768 t prvGenerateRunTimeOfPeroid +100187a8 t prvGetExpectedIdleTime +100187d8 t prvListTaskWithinSingleList +100188c0 t prvResetNextTaskUnblockTime +100188e4 t prvAddCurrentTaskToDelayedList +10018934 T xTaskGenericCreate +10018ae8 T vTaskDelete +10018b88 T uxTaskPriorityGet +10018ba4 T vTaskPrioritySet +10018c5c T vTaskStartScheduler +10018cb4 T vTaskSuspendAll +10018cc4 T xTaskGetTickCount +10018cdc T pcTaskGetTaskName +10018cec T vTaskStepTick +10018cfc T xTaskIncrementTick +10018e7c T xTaskResumeAll +10018f44 T vTaskDelay +10018f94 t prvIdleTask +1001901c T uxTaskGetSystemState +100190cc T vTaskSwitchContext +10019184 T vTaskPlaceOnEventList +100191e0 T vTaskPlaceOnEventListRestricted +10019224 T xTaskRemoveFromEventList +10019294 T vTaskSetTimeOutState +100192ac T xTaskCheckForTimeOut +100192f8 T vTaskMissedYield +10019304 T eTaskConfirmSleepModeStatus +10019324 T xTaskGetSchedulerState +10019344 T vTaskPriorityInherit +100193d8 T xTaskPriorityDisinherit +10019448 T sprintf_pcTaskName +10019468 T vTaskList +10019518 T vTaskGetRunTimeStats +100195d8 T pvTaskIncrementMutexHeldCount +100195f0 T vTaskGetCurrentTCB +100195fc t prvCheckForValidListAndQueue +10019648 t prvInsertTimerInActiveList +10019684 T xTimerCreateTimerTask +100196c0 T xTimerCreate +100196fc T xTimerGenericCommand +10019790 t prvSwitchTimerLists +10019800 t prvTimerTask +10019964 T xTimerIsTimerActive +1001997c t device_mutex_init +100199c0 T device_mutex_lock +100199f0 T device_mutex_unlock +10019a0c t _freertos_systime_to_sec +10019a16 t _freertos_ms_to_systime +10019a18 t _freertos_sec_to_systime +10019a20 t _freertos_usleep_os +10019a22 t _freertos_ATOMIC_SET +10019a26 t _freertos_ATOMIC_READ +10019a2a t _freertos_modular64 +10019a9e t _freertos_thread_enter +10019aa0 t _freertos_enter_critical +10019aa4 t _freertos_exit_critical +10019aa8 t _freertos_ATOMIC_SUB_RETURN +10019ac0 t _freertos_ATOMIC_DEC_RETURN +10019ad6 t _freertos_ATOMIC_ADD_RETURN +10019aee t _freertos_ATOMIC_INC_RETURN +10019b04 t _freertos_ATOMIC_SUB +10019b1c t _freertos_ATOMIC_DEC +10019b22 t _freertos_ATOMIC_ADD +10019b3a t _freertos_ATOMIC_INC +10019b40 t _freertos_enter_critical_from_isr +10019b50 T _freertos_malloc +10019b54 T _freertos_zmalloc +10019b6c t _freertos_memset +10019b70 T _freertos_mfree +10019b74 t _freertos_get_current_time +10019b78 t _freertos_spinunlock_irqsave +10019b8e t _freertos_spinunlock +10019b9a t _freertos_mutex_put +10019b9e T _freertos_wakeup_task +10019ba4 t _freertos_up_sema +10019ba8 t _freertos_exit_critical_mutex +10019bb4 T _freertos_timerCreate +10019bb8 T _freertos_timerDelete +10019bcc T _freertos_timerStop +10019be0 T _freertos_timerChangePeriod +10019bfa T _freertos_timerIsTimerActive +10019bfe T _freertos_acquire_wakelock +10019c04 T _freertos_release_wakelock +10019c0a T _freertos_get_scheduler_state +10019c2a t _freertos_thread_exit +10019c30 t _freertos_GetFreeHeapSize +10019c34 t _freertos_yield_os +10019c38 t _freertos_udelay_os +10019c3c t _freertos_mdelay_os +10019c40 t _freertos_deinit_xqueue +10019c5a t _freertos_spinlock_free +10019c6c t _freertos_mutex_free +10019c70 t _freertos_free_sema +10019c74 t _freertos_push_to_xqueue +10019c9c t _freertos_pop_from_xqueue +10019cc4 t _freertos_down_sema +10019ce6 t _freertos_init_xqueue +10019d00 t _freertos_spinlock_irqsave +10019d3c t _freertos_spinlock +10019d74 t _freertos_enter_critical_mutex +10019dac t _freertos_mutex_get +10019de4 t _freertos_spinlock_init +10019df2 t _freertos_mutex_init +10019df8 t _freertos_exit_critical_from_isr +10019e04 t _freertos_up_sema_from_isr +10019e2c t _freertos_init_sema +10019e3c t _freertos_create_task +10019eb4 t _freertos_memcmp +10019ec2 t _freertos_memcpy +10019ec8 t _freertos_delete_task +10019f14 t _freertos_mutex_get_timeout +10019f50 t _freertos_systime_to_ms +10019f52 t _freertos_msleep_os +10019f56 T save_and_cli +10019f5a T restore_flags +10019f5e T cli +10019f64 T _freertos_arc4random +10019f94 t _freertos_get_random_bytes +10019fd2 T RtlInitSema +10019fe0 T RtlUpSemaFromISR +1001a000 T RtlDownSema +1001a014 T RtlUdelayOS +1001a018 T _htons +1001a01e T _ntohs +1001a024 T _rtw_zvmalloc +1001a044 T _rtw_vmfree +1001a068 T _rtw_malloc +1001a078 T _rtw_zmalloc +1001a088 T _rtw_mfree +1001a098 T deinit_mem_monitor +1001a09a T rtw_vmfree +1001a09e T rtw_mfree +1001a0a4 T rtw_memcpy +1001a0b4 T rtw_memcmp +1001a0c4 T rtw_memset +1001a0d4 T rtw_init_listhead +1001a0da T rtw_is_list_empty +1001a0e4 T rtw_list_insert_head +1001a0f0 T rtw_list_insert_tail +1001a0fc T rtw_list_delete +1001a10c T rtw_init_sema +1001a11c T rtw_free_sema +1001a12c T rtw_up_sema +1001a13c T rtw_up_sema_from_isr +1001a14c T rtw_down_timeout_sema +1001a15c T rtw_down_sema +1001a170 T rtw_mutex_init +1001a180 T rtw_mutex_free +1001a190 T rtw_mutex_put +1001a1a0 T rtw_mutex_get_timeout +1001a1b4 T rtw_enter_critical_from_isr +1001a1c4 T rtw_enter_critical +1001a1c8 T rtw_exit_critical_from_isr +1001a1d8 T rtw_exit_critical +1001a1dc T rtw_enter_critical_mutex +1001a1ec T rtw_exit_critical_mutex +1001a1fc T rtw_queue_empty +1001a206 T rtw_end_of_queue_search +1001a210 T rtw_spinlock_init +1001a220 T rtw_init_queue +1001a22c T rtw_spinlock_free +1001a23c T rtw_spin_lock +1001a24c T rtw_enter_critical_bh +1001a250 T rtw_spin_unlock +1001a260 T rtw_exit_critical_bh +1001a264 T rtw_get_current_time +1001a274 T rtw_systime_to_ms +1001a288 T rtw_systime_to_sec +1001a29c T rtw_ms_to_systime +1001a2b0 T rtw_sec_to_systime +1001a2c4 T rtw_get_passing_time_ms +1001a2d8 T rtw_msleep_os +1001a2e8 T rtw_usleep_os +1001a2f8 T rtw_mdelay_os +1001a308 T rtw_udelay_os +1001a318 T ATOMIC_SET +1001a328 T ATOMIC_INC +1001a338 T ATOMIC_INC_RETURN +1001a34c T ATOMIC_DEC_RETURN +1001a360 T ATOMIC_DEC_AND_TEST +1001a370 T rtw_modular64 +1001a38c T rtw_get_random_bytes +1001a3a0 T rtw_getFreeHeapSize +1001a3b0 T init_mem_monitor +1001a3c0 T add_mem_usage +1001a3f4 T rtw_zvmalloc +1001a414 T rtw_malloc +1001a434 T rtw_zmalloc +1001a454 T rtw_netif_queue_stopped +1001a458 T rtw_netif_wake_queue +1001a45a T rtw_netif_start_queue +1001a45c T rtw_netif_stop_queue +1001a45e T flush_signals_thread +1001a460 T rtw_acquire_wakelock +1001a470 T rtw_release_wakelock +1001a480 T rtw_create_task +1001a49c T rtw_delete_task +1001a4ac T rtw_wakeup_task +1001a4bc T rtw_timerCreate +1001a4d8 T rtw_timerDelete +1001a4ec T rtw_timerIsTimerActive +1001a500 T rtw_timerStop +1001a514 T rtw_timerChangePeriod +1001a528 T rtw_thread_enter +1001a538 T rtw_thread_exit +1001a548 T tcm_heap_free +1001a5c8 T tcm_heap_init +1001a618 T tcm_heap_freeSpace +1001a658 T tcm_heap_malloc +1001a6f8 T tcm_heap_calloc +1001a710 T flash_init +1001a7ac T flash_turnon +1001a7c4 T flash_erase_sector +1001a7f0 T flash_stream_read +1001a8c0 T flash_stream_write +1001aa18 T i2s_init +1001aaf0 T i2s_set_dma_buffer +1001ab42 T i2s_tx_irq_handler +1001ab48 T i2s_set_param +1001ab7c T i2s_deinit +1001ab80 T i2s_enable +1001ab84 T i2s_disable +1001ab88 W pinmap_merge +1001abc4 W pinmap_find_peripheral +1001abdc W pinmap_peripheral +1001ac14 T sleep_ex_selective +1001ac28 T deepsleep_ex +1001ac4c T us_ticker_read +1001ac78 T En32KCalibration +1001ad0c T WDGInitial +1001ad98 T WDGStart +1001adb0 T WDGRefresh +1001adcc T I2SISRHandle +1001ae88 T RtkI2SDeInit +1001af68 T RtkI2SEnable +1001afa4 T RtkI2SDisable +1001afe0 T RtkI2SLoadDefault +1001b044 T HalI2SOpInit +1001b0c0 T RtkI2SInit +1001b284 T HalI2SInit +1001b2c2 T HalI2SDisable +1001b2e8 T HalI2SEnable +1001b30c T HalI2SDeInit +1001b364 T HalTimerOpInit_Patch +1001b3a0 T freertos_ready_to_sleep +1001b3b0 T freertos_pre_sleep_processing +1001b474 T freertos_post_sleep_processing +1001b498 T acquire_wakelock +1001b4d8 T release_wakelock +1001b534 T get_wakelock_status +1001b540 T HalI2SInitRtl8195a_Patch +1001b642 T HalI2SSetRateRtl8195a +1001b688 T HalI2SSetWordLenRtl8195a +1001b6b0 T HalI2SSetChNumRtl8195a +1001b6d8 T HalI2SSetPageNumRtl8195a +1001b700 T HalI2SSetPageSizeRtl8195a +1001b72a T HalI2SSetDMABufRtl8195a +1001b794 T HalI2SGetTxPageRtl8195a +1001b7b4 T HalI2SPageSendRtl8195a +1001b800 T HalI2SClearAllOwnBitRtl8195a +1001b834 T HalI2SDMACtrlRtl8195a +1001b838 T HalTimerIrq2To7Handle_Patch +1001b88c T HalTimerIrqRegisterRtl8195a_Patch +1001b908 T HalTimerIrqUnRegisterRtl8195a_Patch +1001b980 T HalTimerDeInitRtl8195a_Patch +1001b9b4 T HalTimerReadCountRtl8195a_Patch +1001b9cc T HalTimerReLoadRtl8195a_Patch +1001ba00 T HalTimerInitRtl8195a_Patch +1001bad4 T HalTimerIrqEnRtl8195a +1001bae8 T HalTimerEnRtl8195a_Patch +1001bafc T HalTimerDisRtl8195a_Patch +1001bb10 t rtw_ht_operation_update +1001bbc2 t associated_clients_update.part.11 +1001bbfe T chk_sta_is_alive +1001bc3c T add_RATid +1001bd44 T update_sta_info_apmode +1001bdfc T update_beacon +1001c0bc T rtw_check_beacon_data +1001c7bc T associated_clients_update +1001c7c6 T bss_cap_update_on_sta_join +1001c976 T bss_cap_update_on_sta_leave +1001ca72 T ap_free_sta +1001cb24 T expire_timeout_chk +1001cc60 T rtw_sta_flush +1001cce4 T free_mlme_ap_info +1001cd30 T sta_info_update +1001cd6c T ap_sta_info_defer_update +1001cd9c T start_ap_mode +1001cddc T init_mlme_ap_info +1001cdf2 T stop_ap_mode +1001ce40 T rtw_generate_bcn_ie +1001d164 T set_hidden_ssid +1001d1bc T _rtw_init_evt_priv +1001d1ce T _rtw_free_cmd_priv +1001d1d8 T _rtw_enqueue_cmd +1001d204 T _rtw_dequeue_cmd +1001d238 T _rtw_observequeue_cmd +1001d24c T rtw_init_cmd_priv +1001d256 T rtw_init_evt_priv +1001d25a T rtw_free_evt_priv +1001d25c T rtw_free_cmd_priv +1001d260 T rtw_cmd_filter +1001d27e T rtw_free_cmd_obj +1001d2a8 T rtw_enqueue_cmd +1001d2fe T rtw_set_channel_plan_cmd_callback +1001d316 T rtw_survey_cmd_callback +1001d332 T rtw_disassoc_cmd_callback +1001d362 T rtw_joinbss_cmd_callback +1001d37e T rtw_setstaKey_cmdrsp_callback +1001d398 T rtw_cmd_thread +1001d4f4 T rtw_joinbss_cmd +1001d79e T rtw_disassoc_cmd +1001d7ec T rtw_setstakey_cmd +1001d8dc T rtw_clearstakey_cmd +1001d97c T rtw_dynamic_chk_wk_cmd +1001d9ce T rtw_set_chplan_cmd +1001da4e T dynamic_chk_wk_hdl +1001db16 T lps_ctrl_wk_hdl +1001db7a T rtw_lps_ctrl_wk_cmd +1001dbe4 T rtw_sitesurvey_cmd +1001dcac T rpt_timer_setting_wk_hdl +1001dcc0 T rtw_ps_cmd +1001dd1c T rtw_chk_hi_queue_cmd +1001dd70 T rtw_drvextra_cmd_hdl +1001de4c t rtw_free_mlme_ie_data +1001de64 T rtw_init_mlme_timer +1001dec0 T rtw_del_mlme_timer +1001dee0 T reconnect_timer_hdl +1001df80 T _rtw_init_mlme_priv +1001e002 T rtw_mfree_mlme_priv_lock +1001e01e T rtw_free_mlme_priv_ie_data +1001e056 T _rtw_free_mlme_priv +1001e07e T _rtw_alloc_network +1001e0ce T _rtw_free_network +1001e12e T _rtw_free_network_nolock +1001e154 T _rtw_find_network +1001e190 T _rtw_free_network_queue +1001e1d8 T rtw_if_up +1001e1f8 T rtw_get_capability_from_ie +1001e1fc T rtw_get_capability +1001e216 T rtw_get_beacon_interval_from_ie +1001e21a T rtw_init_mlme_priv +1001e232 T rtw_free_mlme_priv +1001e236 T rtw_free_network_queue +1001e23a T rtw_is_same_ibss +1001e250 T is_same_network +1001e2b4 T update_network +1001e34e T rtw_update_scanned_network +1001e460 T rtw_add_network +1001e49e T rtw_survey_event_callback +1001e54a T rtw_dummy_event_callback +1001e54c T rtw_free_assoc_resources +1001e616 T rtw_indicate_connect +1001e626 T rtw_indicate_disconnect +1001e648 T rtw_indicate_scan_done +1001e64c T rtw_joinbss_event_callback +1001e66a T search_max_mac_id +1001e6b2 T rtw_stassoc_hw_rpt +1001e6ea T rtw_stassoc_event_callback +1001e718 T rtw_stadel_event_callback +1001e7be T _rtw_join_timeout_handler +1001e848 T rtw_join_timeout_handler +1001e8a0 T rtw_scan_timeout_handler +1001e8d0 T _rtw_scan_timeout_handler +1001e8d4 T rtw_dynamic_check_timer_handlder +1001e92c T _dynamic_check_timer_handlder +1001e970 T rtw_select_and_join_from_scanned_queue +1001ea44 T rtw_surveydone_event_callback +1001eb5c T rtw_set_auth +1001ebac T rtw_set_key +1001ec6e T rtw_restruct_wmm_ie +1001ecd4 T rtw_restruct_sec_ie +1001ed40 T rtw_joinbss_reset +1001ed50 T rtw_restructure_ht_ie +1001ee30 T rtw_update_ht_cap +1001eeba T rtw_joinbss_event_prehandle +1001f0e6 T rtw_linked_check +1001f102 T rtw_buddy_adapter_up +1001f13a T check_buddy_fwstate +1001f158 t get_da +1001f178 t get_sa +1001f1a2 T OnAction +1001f1b4 T DoReserved +1001f1b8 t _mgt_dispatcher.isra.2 +1001f204 T rtw_is_channel_set_contains_channel +1001f226 T init_hw_mlme_ext +1001f23c T init_channel_set +1001f2d4 T free_mlme_ext_priv +1001f2fc T mgt_dispatcher +1001f384 T alloc_mgtxmitframe +1001f3bc T update_mgnt_tx_rate +1001f3c2 T update_mgntframe_attrib +1001f41e T rtw_build_mgnt_frame +1001f474 T dump_mgntframe +1001f48e T rtw_send_mgnt +1001f4ac t issue_action_BSSCoexistPacket +1001f6b8 T update_hidden_ssid +1001f70c T issue_beacon +1001f924 T issue_probersp +1001fbb4 T OnProbeReq +1001fc7c T issue_probereq +1001fe34 T issue_auth +1002009c T OnAuth +10020340 T issue_asocrsp +100205b4 T issue_assocreq +100208f0 T issue_nulldata +100209da T issue_qos_nulldata +10020b0c T issue_deauth +10020bf4 T issue_action_BA +10020e70 T OnAction_back +10020f3e T collect_bss_info +10021170 T start_clnt_auth +10021200 T start_clnt_assoc +10021234 T OnAuthClient +10021314 T report_scan_result_one +100214d4 T add_site_survey +1002165a T report_survey_event +10021898 T OnProbeRsp +100218cc T report_surveydone_event +10021930 T report_join_res +100219a0 T OnAssocRsp +10021aec T report_del_sta_event +10021b7e T receive_disconnect +10021bd4 T OnBeacon +10021d5c T OnDeAuth +10021eb4 T OnDisassoc +10022024 T report_add_sta_event +10022098 T OnAssocReq +10022688 T rtw_port_switch_chk +1002270c T update_sta_info +1002278c T mlmeext_sta_del_event_callback +1002280c T _linked_info_dump +1002286e T _linked_rx_signal_strehgth_display +100228a8 T linked_status_chk +10022b1c T survey_timer_hdl +10022bfc T _survey_timer_hdl +10022c00 T link_timer_hdl +10022c7e T _link_timer_hdl +10022c82 T addba_timer_hdl +10022ca2 T NULL_hdl +10022ca6 T setopmode_hdl +10022cec T disconnect_hdl +10022d98 T setauth_hdl +10022da8 T setkey_hdl +10022e00 T set_stakey_hdl +10022f04 T set_tx_beacon_cmd +10022f78 T mlme_evt_hdl +10022fc4 T tx_beacon_hdl +1002307e T check_buddy_mlmeinfo_state +10023098 T site_survey +10023268 T sitesurvey_cmd_hdl +10023376 T concurrent_chk_start_clnt_join +1002340c T start_clnt_join +100234e0 T join_cmd_hdl +10023604 T concurrent_chk_joinbss_done +100237cc T mlmeext_joinbss_event_callback +10023908 T set_chplan_hdl +10023924 T init_mlme_ext_timer +10023980 T init_mlme_ext_priv +10023abc t get_hdr_bssid +10023ae4 t filter_packet +10023b6c t promisc_get_encrypt +10023bbe t promisc_info_get +10023c62 t promisc_set_enable +10023cfe T _promisc_deinit +10023d50 T _promisc_recv_func +1002429c T _promisc_set +1002432c T _is_promisc_enabled +10024344 t SetEAPOL_KEYIV +100243e2 t ToDrv_SetPTK +1002448a t Message_ReplayCounter_OC2LI.isra.2 +100244b8 t Message_SmallerEqualReplayCounter.isra.4 +100244ea t Message_setReplayCounter.isra.5 +10024508 t INCLargeInteger +10024528 t INCOctet16_INTEGER +10024570 t INCOctet32_INTEGER +100245d0 t ToDrv_DisconnectSTA +10024694 t CheckMIC.constprop.14 +10024714 t CalcMIC.constprop.15 +10024774 T DecWPA2KeyData +10024828 T DecGTK +100248e4 T ToDrv_SetGTK +10024974 T init_wpa_sta_info +10024a60 T SendEAPOL +10025118 T ClientSendEAPOL +10025600 t ResendTimeout +10025688 T EAPOLKeyRecvd +10025800 T ClientEAPOLKeyRecvd +10025bc0 T psk_derive +10025c74 T psk_init +10025d64 T psk_strip_rsn_pairwise +10025de4 T psk_strip_wpa_pairwise +10025e64 T tkip_send_mic_failure_report +10025fd8 T pwr_state_check_handler +10025fdc T ips_enter +10026084 T ips_leave +1002619c T rtw_pwr_unassociated_idle +100261e6 T rtw_ps_processor +1002623e T PS_RDY_CHECK +100262a6 T rtw_set_ps_mode +10026314 T LPS_RF_ON_check +1002636a T LPS_Enter +100263d8 T LPS_Leave +10026414 T LeaveAllPowerSaveMode +10026424 T rtw_init_pwrctrl_priv +100264f8 T rtw_free_pwrctrl_priv +1002650c T _rtw_pwr_wakeup +100265e8 T rtw_pm_set_lps +10026630 T rtw_pm_set_ips +10026674 T rtw_pm_set_tdma_param +10026690 T rtw_pm_set_lps_dtim +1002669c T rtw_pm_get_lps_dtim +100266a8 t recvframe_pull +100266ca t recvframe_pull_tail +100266ec T rtw_signal_stat_timer_hdl +1002678a T _rtw_init_sta_recv_priv +100267a8 T _rtw_init_recv_priv +10026850 T rtw_mfree_recv_priv_lock +10026884 T _rtw_alloc_recvframe +100268b6 T rtw_alloc_recvframe +100268dc T rtw_free_recvframe +10026978 T _rtw_enqueue_recvframe +100269a4 T rtw_enqueue_recvframe +100269ce T rtw_free_recvframe_queue +10026a06 T rtw_free_uc_swdec_pending_queue +10026a2e T _rtw_free_recv_priv +10026a5e T rtw_free_buf_pending_queue +10026a62 T recvframe_chkmic +10026b60 T decryptor +10026bfc T portctrl +10026c72 T recv_decache +10026ca0 T process_pwrbit_data +10026ce0 T process_wmmps_data +10026d68 T count_rx_stats +10026ddc T sta2sta_data_frame +10026f18 T ap2sta_data_frame +10027044 T sta2ap_data_frame +100270cc T validate_recv_ctrl_frame +10027266 T validate_recv_data_frame +100274c0 T wlanhdr_to_ethhdr +100275fc T recvframe_defrag +100276a6 T recvframe_chk_defrag +1002775c T validate_recv_mgnt_frame +10027798 T validate_recv_frame +10027860 T recv_indicatepkt_reorder +10027882 T process_recv_indicatepkts +100278da T recv_func_prehandle +10027902 T recv_func_posthandle +10027966 T recv_func +100279f0 T rtw_recv_entry +10027a20 T rtw_recv_tasklet +10027a78 T rtw_wep_encrypt +10027abe T rtw_wep_decrypt +10027b04 T rtw_tkip_encrypt +10027b70 T rtw_tkip_decrypt +10027bdc T rtw_aes_encrypt +10027c48 T rtw_aes_decrypt +10027cac T rtw_init_sec_priv +10027d1e T rtw_free_sec_priv +10027d3e t wifi_mac_hash +10027d68 T _addba_timer_hdl +10027d6c T _rtw_init_stainfo +10027de6 T _rtw_init_sta_priv +10027ece T _rtw_free_sta_xmit_priv_lock +10027efa T rtw_mfree_stainfo +10027f26 T rtw_mfree_sta_priv_lock +10027f5c T _rtw_free_sta_priv +10027f7c T init_addba_retry_timer +10027fa4 T rtw_alloc_stainfo +1002806e T rtw_free_stainfo +10028210 T rtw_get_stainfo +1002828c T rtw_init_bcmc_stainfo +100282bc T rtw_get_bcmc_stainfo +100282e0 T rtw_free_all_stainfo +1002833a T cckrates_included +10028362 T cckratesonly_included +1002838a T networktype_to_raid_ex +100283e8 T judge_network_type +10028438 T ratetbl_val_2wifirate +1002844c T is_basicrate +10028478 T ratetbl2rateset +100284bc T get_rate_set +100284e6 T UpdateBrateTbl +10028518 T UpdateBrateTblForSoftAP +1002854c T Save_DM_Func_Flag +10028562 T Restore_DM_Func_Flag +10028578 T Switch_DM_Func +10028594 T Set_MSR +100285b8 T set_opmode +100285fc T SelectChannel +10028630 T SetBWMode +1002866c T set_channel_bwmode +100286c2 T get_my_bssid +100286c6 T get_beacon_interval +100286e4 T is_client_associated_to_ap +100286fc T is_client_associated_to_ibss +10028718 T is_IBSS_empty +1002873a T decide_wait_for_beacon_timeout +10028756 T invalidate_cam_all +1002875e T write_cam +100287d4 T clear_cam_entry +10028802 T flush_all_cam_entry +10028860 T WMM_param_handler +10028886 T WMMOnAssocRsp +10028954 T HT_caps_handler +100289f4 T HT_info_handler +10028a18 T HTOnAssocRsp +10028a50 T ERP_IE_handler +10028a6c T VCS_update +10028abe T rtw_check_bcn_info +10028cce T update_beacon_info +10028d24 T is_ap_in_tkip +10028d9c T wifirate2_ratetbl_inx +10028e08 T update_basic_rate +10028e36 T update_supported_rate +10028e60 T update_MCS_rate +10028e6c T support_short_GI +10028e9a T get_highest_rate_idx +10028eb4 T Update_RA_Entry +10028ebc T set_sta_rate +10028ec4 T update_tx_basic_rate +10028f1c T check_assoc_AP +10029010 T update_IOT_info +1002906e T update_capinfo +100290ec T update_wireless_mode +1002918c T update_bmc_sta_support_rate +100291b4 T update_TSF +100291c6 T correct_TSF +100291ce t _init_txservq +100291e4 t set_qos +10029234 T _rtw_init_sta_xmit_priv +1002927a T rtw_mfree_xmit_priv_lock +100292c6 T qos_acm +10029300 T xmitframe_addmic +1002945e T xmitframe_swencrypt +1002948a T rtw_make_wlanhdr +1002966a T rtw_txframes_pending +100296a6 T rtw_txframes_sta_ac_pending +100296dc T rtw_txframes_update_attrib_vcs_info +1002977c T rtw_put_snap +100297c0 T rtw_update_protection +10029806 T rtw_count_tx_stats +10029856 T rtw_free_xmitbuf_ext +10029898 T rtw_alloc_xmitframe +100298f0 T rtw_free_xmitframe +10029942 T rtw_free_xmitframe_queue +10029980 T rtw_get_sta_pending +100299c0 T rtw_xmit_classifier +10029a26 T rtw_xmitframe_enqueue +10029a34 T rtw_alloc_hwxmits +10029a8e T rtw_free_hwxmits +10029aa4 T _rtw_free_xmit_priv +10029b70 T rtw_init_hwxmits +10029b88 T _rtw_init_xmit_priv +10029d40 T rtw_get_ff_hwaddr +10029d54 T xmitframe_enqueue_for_sleeping_sta +10029f14 t dequeue_xmitframes_to_sleeping_queue +10029f6a T stop_sta_xmit +1002a052 T wakeup_sta_to_xmit +1002a268 T xmit_delivery_enabled_frames +1002a384 T rtw_xmit_tasklet +1002a3dc T rtw_xmit_mgnt +1002a3e0 T rtw_xmit +1002a70a T rtw_sctx_done_err +1002a716 T rtw_alloc_xmitbuf +1002a770 T rtw_free_xmitbuf +1002a7e2 T rtw_alloc_xmitbuf_ext +1002a868 T rtw_sctx_done +1002a86e t rtl8195a_free_rx_ring +1002a87c t bus_write32 +1002a8d8 t bus_write16 +1002a934 t bus_write8 +1002a990 t bus_read32 +1002a9ea t bus_read16 +1002aa46 t bus_read8 +1002aaa2 t rtl8195a_free_tx_ring +1002ab30 T rtl8195a_init_desc_ring +1002ac70 T rtl8195a_free_desc_ring +1002ac8c T rtl8195a_reset_desc_ring +1002ad22 T InitLxDmaRtl8195a +1002ae84 T rtl8195a_check_txdesc_closed +1002aefc t rtl8195a_tx_isr +1002afe0 T InterruptRecognized8195a +1002b070 T InitInterrupt8195a +1002b090 T EnableDMA8195a +1002b0b8 T EnableInterrupt8195a +1002b0f8 T DisableDMA8195a +1002b104 T DisableInterrupt8195a +1002b11c T UpdateInterruptMask8195a +1002b17e T CheckRxTgRtl8195a +1002b1b8 T rtl8192ee_check_rxdesc_remain +1002b1e8 T rtl8195a_recv_tasklet +1002b4fc T rtl8195a_tx_int_handler +1002b528 T InterruptHandle8195a +1002b79c T rtl8195a_xmit_tasklet +1002b7c4 T lxbus_set_intf_ops +1002b804 t GetTxBufDesc +1002b84e t UpdateFirstTxbdtoXmitBuf.isra.3 +1002b880 t check_nic_enough_desc.isra.4 +1002b8d0 T rtl8195ab_init_xmit_priv +1002b8de T rtl8195ab_free_xmit_priv +1002b8e6 T GetDmaTxbdIdx +1002b902 T rtl8195a_enqueue_xmitbuf +1002b926 T rtl8195a_dequeue_xmitbuf +1002b94a T SetTxbdForLxDMARtl8195ab +1002b9ca T UpdateTxbdHostIndex +1002ba08 T rtw_dump_xframe +1002bbda T check_tx_desc_resource +1002bc14 T rtw_dequeue_xframe +1002bca8 T rtw_xmitframe_coalesce +1002bf5c T rtl8195ab_xmitframe_resume +1002c052 T rtl8195ab_mgnt_xmit +1002c08e T rtl8195ab_hal_xmit +1002c19c t Hal_GetEfuseDefinition +1002c1cc t ResumeTxBeacon +1002c210 T UpdateHalRAMask8195A +1002c3a8 T HalLittleWifiMCUThreadRtl8195a +1002c3fc T HalCheckInReqStateThreadRtl8195a +1002c448 T HalTDMAChangeStateThreadRtl8195a +1002c494 t rtl8195a_read_chip_version +1002c508 t Hal_EfuseWordEnableDataWrite +1002c74c t Hal_EfusePowerSwitch +1002c760 t rtl8195a_free_hal_data +1002c77a t StopTxBeacon +1002c7c4 T SetHalODMVar8195A +1002c87c T rtl8195a_start_thread +1002c8e4 T rtl8195a_stop_thread +1002c908 t Hal_ReadEFuse +1002ca78 T GetHalODMVar8195A +1002ca8c t rtw_flash_map_update.part.12 +1002cb2c t rtw_flash_map_erase +1002cb70 t Hal_EfusePgPacketWrite +1002cdec t Hal_EfuseGetCurrentSize +1002cecc t rtw_flash_map_write +1002d09a T rtl8195a_InitBeaconParameters +1002d10a T _InitBurstPktLen_8195AB +1002d114 T rtl8195a_set_hal_ops +1002d1f4 T rtl8195a_init_default_value +1002d1f6 T rtl8195a_InitLLTTable +1002d240 T Hal_GetChnlGroup8195A +1002d27c T rtw_config_map_read +1002d368 T rtw_config_map_write +1002d414 T Hal_InitPGData +1002d472 T Hal_EfuseParseIDCode +1002d48a T Hal_ReadPowerValueFromPROM_8195A +1002d528 T Hal_EfuseParseTxPowerInfo_8195A +1002d5c0 T Hal_EfuseParseEEPROMVer_8195A +1002d5d6 T Hal_EfuseParsePackageType_8195A +1002d640 T Hal_EfuseParseChnlPlan_8195A +1002d670 T Hal_EfuseParseCustomerID_8195A +1002d686 T Hal_EfuseParseXtal_8195A +1002d69e T Hal_EfuseParseThermalMeter_8195A +1002d6c6 T Hal_ReadRFGainOffset +1002d716 T BWMapping_8195A +1002d736 T SCMapping_8195A +1002d75e T rtl8195a_update_txdesc +1002da2e T rtl8195a_fill_fake_txdesc +1002daec T SetHwReg8195A +1002e7ac T GetHwReg8195A +1002e840 T SetHalDefVar8195A +1002e920 T GetHalDefVar8195A +1002e944 T PHY_QueryBBReg_8195A_Safe +1002e970 T PHY_SetBBReg_8195A_Safe +1002e99c t phy_RFSerialRead_8195A +1002ea50 T PHY_QueryRFReg_8195A +1002ea68 T PHY_SetRFReg_8195A +1002eac0 T PHY_MACConfig8195A +1002eada T PHY_BBConfig8195A +1002ebea T PHY_RFConfig8195A +1002ebee T PHY_SetTxPowerIndex_8195A +1002ecf8 T phy_TxPwrAdjInPercentage +1002ed38 T PHY_GetTxPowerIndex_8195A +1002ee28 T PHY_SetTxPowerLevel8195A +1002ee2e T phy_SpurCalibration_8195A +1002f0e6 T phy_SetRegBW_8195A +1002f124 T phy_PostSetBwMode8195A +1002f280 T phy_SwChnl8195A +1002f328 T phy_SwChnlAndSetBwMode8195A +1002f378 T PHY_HandleSwChnlAndSetBW8195A +1002f428 T PHY_SetBWMode8195A +1002f44a T PHY_SwChnl8195A +1002f464 T PHY_SetSwChnlBWMode8195A +1002f482 t HalTimerEnable +1002f494 T InitTDMATimer +1002f4bc T ChangeStateByTDMA +1002f4cc T GetMinRateInRRSR +1002f500 T CheckInReqState +1002f510 T InitCheckStateTimer +1002f540 T InitGTimer1ms +1002f58c T DeInitGTimer1ms +1002f5d4 T ChangeTransmiteRate +1002f610 T PowerBitSetting +1002f68c T ChkandChangePS +1002f6f0 T IssueRsvdPagePacketSetting +1002f764 T IssuePSPoll +1002f790 T WaitTxStateMachineOk +1002f7e4 T IssueNullData +1002f874 T PsCloseRF +1002f8a8 T PsOpenRF +1002f8d8 T ChkTxQueueIsEmpty +1002f8f0 T InitPS +1002f960 T ConfigListenBeaconPeriod +1002f984 T PS_S2_Condition_Match +1002f9b8 T PS_S4_Condition_Match +1002fa34 T PS_32K_Condition_Match +1002fa70 T PS_S2ToS3ToS0State +1002fad8 T PS_S2ToS0State +1002faf4 T PS_S3ToS2orS0State +1002fb24 T PS_S0ToS1ToS2State +1002fb80 T PS_S1ToS0orS2State +1002fbb0 T PS_S2ToS4State +1002fbfc T PS_S0ToS6State +1002fc1c T PS_S6ToS0State +1002fc34 T CheckTSFIsStable +1002fc84 T WaitHWStateReady +1002fc94 T SysClkDown +1002fd04 T SysClkUp +1002fd50 T ResetPSParm +1002fdc4 T PS_S4ToS2State +1002fde8 T SleepTo32K +1002fe48 T Change_PS_State +1002fff4 T Legacy_PS_Setting +10030068 T PSModeSetting +1003010c T ChangePSStateByRPWM +10030150 T ChangeTDMAState +10030270 T TDMAChangeStateTask +1003029a T EnterPS +100302bc T SetSmartPSTimer +100302f8 T GTimer7Handle +10030354 T SmartPS2InitTimerAndToGetRxPkt +10030390 T PS_OnBeacon +10030440 T PSBcnEarlyProcess +100304fc T PSMtiBcnEarlyProcess +100305a8 T PSRxBcnProcess +100306f8 T TxPktInPSOn +10030736 T PsBcnToProcess +100307f0 T GTimer6Handle +1003083c T RPWMProcess +10030878 T PSSetMode +100308f0 T SpeRPT +10030a10 T ISR_BcnEarly +10030a7c T ISR_MtiBcnEarly +10030ab0 T ISR_RxBcn +10030acc T ISR_RxBCMD1 +10030afc T ISR_RxBCMD0 +10030b50 T ISR_RxUCMD1 +10030b8e T ISR_RxUCMD0 +10030bca T ISR_TxPktIn +10030bdc T ISR_TXCCX +10030be0 T H2CHDL_SetPwrMode +10030d08 T CheckInReqStateTask +10030d4e T HalGetNullTxRpt +10030d6c T ISR_TBTT +10030de4 T H2CHDL_BcnIgnoreEDCCA +10030df4 T PMUInitial +10030e44 T PMUTask +10030f50 T PHY_RF6052SetBandwidth8195A +10030f94 T PHY_RF6052_Config8195A +1003104c t process_rssi +10031082 T rtl8195a_query_rx_desc_status +10031132 T rtl8195a_query_rx_phy_status +1003128a T hal_com_get_channel_plan +100312be T HAL_IsLegalChannel +100312dc T MRateToHwRate +100312f0 T HwRateToMRate +10031304 T HalSetBrateCfg +100313b0 T Hal_MappingOutPipe +100313cc T hal_init_macaddr +100313f8 T hw_var_port_switch +10031680 T SetHwReg +1003168a T GetHwReg +1003168c T switch_power_saving_mode +100316d0 T rtw_bb_rf_gain_offset +10031718 T PHY_GetRateValuesOfTxPowerByRate +100318b0 T PHY_StoreTxPowerByRateNew +1003194c T PHY_InitTxPowerByRate +10031964 T PHY_StoreTxPowerByRate +1003197c T PHY_GetTxPowerIndexBase +10031a1c T PHY_GetTxPowerTrackingOffset +10031a48 T PHY_GetRateIndexOfTxPowerByRate +10031a5c T PHY_GetTxPowerByRate +10031abc T phy_StoreTxPowerByRateBase +10031b08 T PHY_SetTxPowerByRate +10031b44 T phy_ConvertTxPowerByRateInDbmToRelativeValues +10031c44 T PHY_TxPowerByRateConfiguration +10031c56 T PHY_SetTxPowerIndexByRateArray +10031c94 T PHY_SetTxPowerIndexByRateSection +10031cf8 T PHY_SetTxPowerLevelByPath +10031d2e T phy_GetWorldWideLimit +10031d5a T PHY_GetTxPowerLimit +10031e84 T PHY_ConvertTxPowerLimitToPowerIndex +10031fd4 T PHY_InitTxPowerLimit +1003201c T PHY_SetTxPowerLimit +10032098 T PHY_GetTxPowerIndex +100320a8 T rtw_hal_chip_configure +100320be T rtw_hal_read_chip_info +100320d4 T rtw_hal_read_chip_version +100320ea T rtw_hal_def_value_init +10032100 T rtw_hal_free_data +10032116 T rtw_hal_dm_init +1003212c T rtw_hal_dm_deinit +10032142 T rtw_hal_init +1003216c T rtw_hal_deinit +10032186 T rtw_hal_set_hwreg +10032194 T rtw_hal_get_hwreg +100321a2 T rtw_hal_set_def_var +100321b4 T rtw_hal_get_def_var +100321c6 T rtw_hal_set_odm_var +100321d4 T rtw_hal_get_odm_var +100321e2 T rtw_hal_enable_interrupt +10032204 T rtw_hal_disable_interrupt +10032226 T rtw_hal_inirp_init +10032238 T rtw_hal_inirp_deinit +1003224a T rtw_hal_irp_reset +10032258 T rtw_hal_xmit +1003226a T rtw_hal_mgnt_xmit +1003227c T rtw_hal_init_xmit_priv +1003228e T rtw_hal_free_xmit_priv +1003229c T rtw_hal_update_ra_mask +100322ca T rtw_hal_add_ra_tid +100322d8 T rtw_hal_clone_data +100322e6 T rtw_hal_start_thread +100322f4 T rtw_hal_stop_thread +10032302 T rtw_hal_read_bbreg +10032336 T rtw_hal_write_bbreg +10032362 T rtw_hal_read_rfreg +10032374 T rtw_hal_write_rfreg +10032388 T rtw_hal_interrupt_handler +1003239a T rtw_hal_set_bwmode +100323a8 T rtw_hal_set_chan +100323b6 T rtw_hal_set_chnl_bw +100323cc T rtw_hal_dm_watchdog +100323e2 T rtw_hal_macid_sleep +10032402 T rtw_hal_macid_wakeup +10032422 T decide_chip_type_by_device_id +10032428 t rtw_net_get_stats +10032478 t netdev_if2_close +10032498 t netdev_close +100324f4 t rtw_if1_deinit +1003258e T rtw_os_indicate_connect +10032592 T rtw_os_indicate_scan_done +10032596 T rtw_reset_securitypriv +1003268a T rtw_os_indicate_disconnect +100326d4 T rtw_init_netdev +10032824 T rtw_drv_if2_init +10032a2c T rtw_drv_if2_stop +10032a82 T rtw_drv_if2_free +10032ad0 T _netdev_open +10032bec T _netdev_if2_open +10032ca8 T netdev_if2_open +10032cd0 T netdev_open +10032cf8 T rtw_drv_probe +10032e78 T rtw_dev_remove +10032ebc T rtw_drv_entry +10032ee8 T rtw_drv_halt +10032f18 t rtw_wx_set_autoreconnect +10032f46 t rtw_wx_get_autoreconnect +10032f54 t rtw_forwarding_set +10032f76 t rtw_set_ch_deauth +10032f98 t get_priv_size +10032fac t rtw_wx_del_custome_ie +10032ff8 t rtw_wx_set_pscan_freq +1003307a t rtw_wx_update_custome_ie +100330ec t rtw_set_tos_value +1003310c t rtw_get_tx_power +10033250 t rtw_wx_set_custome_ie +100332fc t rtw_pm_get +10033340 t rtw_pm_set +100333f4 t rtw_wx_read32 +100334a0 t rtw_wx_write32 +10033504 t rtw_wx_set_freq.isra.10 +100335ac T rtw_ex_set +1003366c T wireless_send_event +10033676 T indicate_wx_custom_event +100336d2 T indicate_wx_scan_result_present +100336fa T indicate_wx_scan_complete_event +10033724 T rtw_indicate_sta_assoc +10033774 T rtw_indicate_sta_disassoc +100337cc T rtw_indicate_wx_assoc_event +100337fe T rtw_indicate_wx_disassoc_event +1003382e T rtw_set_wpa_ie +10033944 T strtopsk +100339b0 T rtw_wx_get_passphrase +100339fc T rtw_wx_set_ap_essid +10033aec T mac_reg_dump +10033b98 T bb_reg_dump +10033bf4 T rf_reg_dump +10033c6c t rtw_dbg_port +100342d4 T rtw_set_sta_num +100342f0 T rtw_ex_get_drv_ability +100343b0 T rtw_ex_get +10034648 T rtw_ioctl +100355d4 T rtw_os_recv_resource_init +100355d8 T rtw_os_recv_resource_alloc +100355e2 T rtw_os_recv_resource_free +100355e4 T rtw_tkip_countermeasure +10035684 T rtw_handle_tkip_mic_err +1003572c T rtw_recv_indicatepkt +1003597c T skb_fail_inc +10035998 T skb_fail_get_and_rst +100359b4 T init_skb_pool +10035a0c T init_skb_data_pool +10035a64 T alloc_skb +10035b64 T kfree_skb +10035bcc T kfree_skb_chk_key +10035bd0 T skb_put +10035c04 T skb_reserve +10035c12 T dev_alloc_skb +10035c2e T skb_end_pointer +10035c32 T skb_set_tail_pointer +10035c3a T skb_pull +10035c52 T skb_copy +10035c7a T rtw_remainder_len +10035c86 T _rtw_open_pktfile +10035c98 T _rtw_pktfile_read +10035cc6 T rtw_set_tx_chksum_offload +10035cc8 T rtw_os_xmit_resource_alloc +10035cd2 T rtw_os_xmit_resource_free +10035cd4 T rtw_os_pkt_complete +10035cdc T rtw_os_xmit_complete +10035cee T rtw_os_xmit_schedule +10035d2a T rtw_xmit_entry +10035d76 T rtw_alloc_etherdev_with_old_priv +10035d8c T rtw_alloc_etherdev +10035db8 T rtw_free_netdev +10035dd8 T timer_wrapper +10035e2c T alloc_etherdev +10035e88 T free_netdev +10035ea2 T dev_alloc_name +10035eac T init_timer_wrapper +10035ecc T deinit_timer_wrapper +10035f18 T init_timer +10035fd0 T mod_timer +100360b0 T cancel_timer_ex +100360f8 T del_timer_sync +1003615c T rtw_init_timer +10036164 T rtw_set_timer +10036168 T rtw_cancel_timer +10036172 T rtw_del_timer +10036178 T rltk_get_idx_bydev +10036188 T rltk_wlan_init +10036210 T rltk_wlan_deinit +100362d4 T rltk_wlan_start +10036308 T rltk_wlan_check_isup +10036318 T rltk_wlan_tx_inc +1003632c T rltk_wlan_tx_dec +10036340 T rltk_wlan_get_recv_skb +10036350 T rltk_wlan_alloc_skb +10036390 T rltk_wlan_send_skb +100363c4 T rltk_netif_rx +10036470 T rltk_set_sta_num +10036474 T rltk_set_tx_power_percentage +100364a8 T rltk_wlan_control +1003653c T rltk_wlan_running +10036554 T rltk_wlan_handshake_done +10036588 T rltk_wlan_wireless_mode +10036614 T rltk_wlan_is_connected_to_ap +10036658 T Efuse_PowerSwitch +10036664 T Efuse_GetCurrentSize +10036670 T Efuse_CalculateWordCnts +10036694 T EFUSE_GetEfuseDefinition +100366a8 T efuse_OneByteRead +100366dc T efuse_OneByteWrite +10036710 T Efuse_PgPacketWrite +10036724 T efuse_WordEnableDataRead +10036756 T Efuse_WordEnableDataWrite +1003676a T efuse_GetCurrentSize +10036792 T rtw_efuse_map_read +100367f4 T rtw_efuse_map_write +10036974 T rtw_macaddr_cfg +10036a38 T rtw_get_cipher_info +10036ab2 T rtw_get_bcn_info +10036b82 T rtw_init_default_value +10036bf0 T rtw_cancel_all_timer +10036c5a T rtw_free_drv_sw +10036cd0 T rtw_reset_drv_sw +10036d2c T rtw_init_drv_sw +10036db4 T rtw_start_drv_threads +10036e70 T rtw_stop_drv_threads +10036ea4 T rtw_read8 +10036eb2 T rtw_read16 +10036ec0 T rtw_read32 +10036ece T rtw_write8 +10036edc T rtw_write16 +10036eea T rtw_write32 +10036ef8 T rtw_do_join +10036f9c T rtw_set_802_11_bssid +10037120 T rtw_set_802_11_ssid +10037228 T rtw_set_802_11_infrastructure_mode +100372ca T rtw_set_802_11_bssid_list_scan +1003731a T rtw_set_802_11_authentication_mode +1003733c T rtw_set_802_11_add_wep +1003739c T ODM_InitRAInfo +1003743c T InitialRateUpdate +1003753c T RateUp_search_RateMask +1003756e T RateDown_search_RateMask +100375c0 T StartRateByRSSI +100375ea T RateUpRAM8195A +1003767e T RateDownTrying +100376bc T TryDone +10037754 T RateDownStepRAM8195A +100377f4 T RateDecisionRAM8195A +100378d8 T ArfrRefresh +10037ae0 T H2CHDL_Set_MACID_Config +10037ba4 T PHY_DM_RA_SetRSSI_8195A +10037bd2 t CheckPositive.isra.0 +10037cb4 T ODM_ReadAndConfig_MP_8195A_AGC_TAB +10037d2c T ODM_ReadAndConfig_MP_8195A_PHY_REG +10037da4 T ODM_GetVersion_MP_8195A_PHY_REG +10037da8 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG +10037ddc T odm_ConfigRFReg_8195A +10037e14 T odm_ConfigRF_RadioA_8195A +10037e24 T odm_ConfigMAC_8195A +10037e28 T odm_ConfigBB_AGC_8195A +10037e38 T odm_ConfigBB_PHY_REG_PG_8195A +10037e66 T odm_ConfigBB_PHY_8195A +10037eae T odm_ConfigBB_TXPWR_LMT_8195A +10037ed4 T ODM_CmnInfoInit +10037fc8 T ODM_CmnInfoHook +1003806c T ODM_CmnInfoPtrArrayHook +1003807c T ODM_CmnInfoUpdate +1003814c T odm_CommonInfoSelfInit +100381c0 T ODM_DMInit +1003820e T odm_CommonInfoSelfUpdate +10038260 T ODM_DMWatchdog +100382cc T PhyDM_Get_Structure +100382f0 T Phydm_CheckAdaptivity +1003831e T Phydm_NHMCounterStatisticsInit +10038394 T Phydm_SetEDCCAThreshold +100383cc T Phydm_MACEDCCAState +1003840a T Phydm_AdaptivityInit +100384e8 T Phydm_Adaptivity +10038608 T ODM_CfoTrackingInit +10038632 T ODM_CfoTracking +10038652 T ODM_ParsingCFO +10038684 T ODM_InitDebugSetting +10038698 T ODM_Write_DIG +10038738 T odm_ForbiddenIGICheck +100387ca T ODM_Write_CCK_CCA_Thres +10038804 T odm_DIGInit +1003889e T odm_DigAbort +100388c0 T odm_DIGbyRSSI_LPS +1003896c T odm_FAThresholdCheck +10038998 T odm_DIG +10038bf8 T odm_FalseAlarmCounterStatistics +10038c24 T odm_CCKPacketDetectionThresh +10038c7c T odm_RxPhyStatus8195A_Parsing +10038d80 T odm_Process_RSSIForDM_8195A +10038ec2 T ODM_PhyStatusQuery_8195A +10038eee T ODM_PhyStatusQuery +10038ef2 T ODM_ConfigRFWithHeaderFile +10038f10 T ODM_ConfigRFWithTxPwrTrackHeaderFile +10038f42 T ODM_ConfigBBWithHeaderFile +10038f6a T ODM_ConfigMACWithHeaderFile +10038f7c T ODM_Read1Byte +10038f82 T ODM_Read4Byte +10038f88 T ODM_Write1Byte +10038f8e T ODM_Write2Byte +10038f94 T ODM_Write4Byte +10038f9a T ODM_SetMACReg +10038fa0 T ODM_SetBBReg +10038fa6 T ODM_GetBBReg +10038fac T ODM_SetRFReg +10038fb2 T ODM_GetRFReg +10038fb8 T ODM_MoveMemory +10038fc2 T ODM_delay_ms +10038fc6 T ODM_delay_us +10038fcc T getSwingIndex +10039024 T odm_TXPowerTrackingThermalMeterInit +100390d6 T odm_TXPowerTrackingInit +100390da T odm_TXPowerTrackingCheckIOT +1003910e T ODM_TXPowerTrackingCheck +1003911c T odm_RSSIMonitorInit +10039124 T ODM_RAPostActionOnAssoc +1003912c T odm_RSSIMonitorCheckIOT +10039200 T odm_RSSIMonitorCheck +10039214 T odm_RateAdaptiveMaskInit +1003923c T ODM_RAStateCheck +1003927e T odm_RefreshRateAdaptiveMaskIOT +100392ce T odm_RefreshRateAdaptiveMask +100392e4 T ODM_Get_Rate_Bitmap +100393d4 t _ReadEfuseInfo8195a +1003949c t rtl8195a_interface_configure +100394d0 t rtl8195a_hal_deinit +1003950c T _InitPowerOn +1003958c t ReadAdapterInfo8195a +100395bc T _InitDriverInfoSize +100395c6 T _InitNetworkType +100395e8 T _InitWMACSetting +10039658 T _InitAdaptiveCtrl +1003969c T _InitEDCA +10039718 T _InitRateFallback +1003975c T _InitRetryFunction +10039788 T _InitOperationMode +100397d0 T _InitInterrupt +10039810 t rtl8195a_hal_init +10039ae8 T rtl8195ab_set_hal_ops +10039bc0 T FillH2CCmd8195A +10039be0 T CheckFwRsvdPageContent +10039be2 T rtl8195a_set_FwRsvdPage_cmd +10039bec T rtl8195a_set_FwMediaStatusRpt_cmd +10039c18 T rtl8195a_set_FwMacIdConfig_cmd +10039cd8 T rtl8195a_set_FwPwrMode_cmd +10039d68 T rtl8195a_download_rsvd_page +1003a070 T rtl8195a_set_FwJoinBssRpt_cmd +1003a07a T rtl8195a_Add_RateATid +1003a0cc T rtw_rpt_h_addr +1003a118 T rtw_txrpt_read8 +1003a136 T rtw_txrpt_write8 +1003a15a T rtw_ratemask_read8 +1003a178 T rtw_ratemask_write8 +1003a19c T ReadRateMask8 +1003a1a6 T WriteRateMask8 +1003a1aa T ReadTxrpt8 +1003a1b4 T WriteTxrpt8 +1003a1b8 T ResetTxrpt +1003a1f0 T PsuseTxrpt +1003a210 T CheckMaxMacidNum +1003a248 T GetMediaStatusCommon +1003a262 T GetTxrptStatistic +1003a318 T rtl8195a_InitHalDm +1003a43c T rtl8195a_HalDmWatchDog +1003a520 T rtl8195a_init_dm_priv +1003a5f8 T rtl8195a_deinit_dm_priv +1003a5fa T MediaConnection +1003a618 T MediaDisconnection +1003a638 T RATaskEnable +1003a662 T SetMediaStatus +1003a6a0 T H2CHDL_JoinInfo +1003a6d8 T H2CHDL_SetRsvdPage +1003a770 T H2CCmdCommon +1003a7b4 T HalPwrSeqCmdParsing +1003a874 T hci_dvobj_init +1003a884 T hci_dvobj_deinit +1003a894 T hci_dvobj_request_irq +1003a8a4 T hci_dvobj_free_irq +1003a8b4 T hci_lxbus_dvobj_init +1003a8f0 T hci_lxbus_dvobj_deinit +1003a930 T hci_lxbus_dvobj_request_irq +1003a984 T hci_lxbus_free_irq +1003a9dc T hci_lxbus_intf_stop +1003aa14 T rtw_interrupt_thread +1003aa88 T lextra_bus_dma_Interrupt +1003aad0 T init_rom_wlan_ram_map +1003aae8 T ODM_ReadAndConfig_MP_8195A_MAC_REG +1003ac44 t CheckPositive.isra.0 +1003ad28 T ODM_ReadAndConfig_MP_8195A_RadioA +1003ada0 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 +1003adf0 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 +1003ae40 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 +1003ae90 T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT +1003aec8 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack +1003aef4 T GetDeltaSwingTable_8195A +1003af24 T GetDeltaSwingXtalTable_8195A +1003af34 T ODM_TxXtalTrackSetXtal_8195A +1003af54 T Hal_MPT_CCKTxPowerAdjust +1003b024 T ODM_TxPwrTrackSetPwr_8195A +1003b134 T ConfigureTxpowerTrack_8195A +1003b180 T phy_PathA_IQK_8195A +1003b334 T phy_PathA_RxIQK8195A +1003b6c8 T _PHY_PathAFillIQKMatrix8195A +1003b85e T _PHY_PathBFillIQKMatrix8195A +1003b9da T _PHY_SaveADDARegisters8195A +1003ba0e T _PHY_SaveMACRegisters8195A +1003ba3c T _PHY_ReloadADDARegisters8195A +1003ba70 T _PHY_ReloadMACRegisters8195A +1003baa0 T _PHY_PathADDAOn8195A +1003badc T _PHY_MACSettingCalibration8195A +1003bb24 T _PHY_PIModeSwitch8195A +1003bb60 T phy_SimularityCompare_8195A +1003bc94 T phy_IQCalibrate_8195A +1003c00c T phy_LCCalibrate_8195A +1003c07c T PHY_LCCalibrate_8195A +1003c0dc T PHY_IQCalibrate_8195A +1003c390 T DoIQK_8195A +1003c3ae T ConfigureTxpowerTrack +1003c3c0 T ODM_TXPowerTrackingCallback_ThermalMeter +1003c7cc T ODM_ResetIQKResult +1003c814 T ODM_GetRightChnlPlaceforIQK +1003c868 t __rom_psk_PasswordHash_veneer +1003c878 t __rt_md5_hmac_veneer +1003c888 t __rtw_get_wps_attr_content_veneer +1003c898 t __SpicWaitBusyDoneRtl8195A_veneer +1003c8a8 t __aes_80211_decrypt_veneer +1003c8b8 t __rtw_set_ie_veneer +1003c8c8 t __rt_arc4_crypt_veneer +1003c8d8 t __rom_psk_CalcGTK_veneer +1003c8e8 t __wep_80211_encrypt_veneer +1003c8f8 t __AES_UnWRAP_veneer +1003c908 t ___vsscanf_veneer +1003c918 t __ROM_odm_FalseAlarmCounterStatistics_veneer +1003c928 t __rtw_seccalctkipmic_veneer +1003c938 t __HalI2SIntrCtrlRtl8195a_veneer +1003c948 t __rt_hmac_sha1_veneer +1003c958 t __rtw_secmicsetkey_veneer +1003c968 t __aes_80211_encrypt_veneer +1003c978 t __rtw_secmicappend_veneer +1003c988 t __rtw_get_ie_veneer +1003c998 t __rtw_get_sec_ie_veneer +1003c9a8 t __rtw_set_supported_rate_veneer +1003c9b8 t __wep_80211_decrypt_veneer +1003c9c8 t __prvStrCmp_veneer +1003c9d8 t __rtw_get_rateset_len_veneer +1003c9e8 t __ROM_odm_EVMdbToPercentage_veneer +1003c9f8 t __rtw_parse_wpa2_ie_veneer +1003ca08 t __key_2char2num_veneer +1003ca18 t __rtw_set_fixed_ie_veneer +1003ca28 t __ROM_ODM_CfoTrackingReset_veneer +1003ca38 t __ROM_odm_CfoTrackingFlow_veneer +1003ca48 t __AES_WRAP_veneer +1003ca58 t __phy_CalculateBitShift_veneer +1003ca68 t __rtw_get_wpa_ie_veneer +1003ca78 t __CmdDumpWord_veneer +1003ca88 t __Strtoul_veneer +1003ca98 t __HalI2SWrite32_veneer +1003caa8 t __rtw_ieee802_11_parse_elems_veneer +1003cab8 t __rtw_get_bit_value_from_ieee_value_veneer +1003cac8 t __ROM_odm_QueryRxPwrPercentage_veneer +1003cad8 t __HalI2SRead32_veneer +1003cae8 t __rom_psk_CalcPTK_veneer +1003caf8 t __rt_arc4_init_veneer +1003cb08 t __rtw_parse_wpa_ie_veneer +1003cb18 t __CmdWriteWord_veneer +1003cb28 t __PHY_SetBBReg_8195A_veneer +1003cb38 t __rtw_secgetmic_veneer +1003cb48 t __tkip_80211_decrypt_veneer +1003cb58 t __StrUpr_veneer +1003cb68 t __ROM_odm_SetCrystalCap_veneer +1003cb78 t __rtw_get_wpa2_ie_veneer +1003cb88 t __rtw_get_wps_ie_veneer +1003cb98 t __PHY_QueryBBReg_8195A_veneer +1003cba8 t __HalDelayUs_veneer +1003cbb8 t __ROM_odm_GetDefaultCrytaltalCap_veneer +1003cbc8 t __rtw_check_network_type_veneer +1003cbd8 t __HalI2SClrAllIntrRtl8195a_veneer +1003cbe8 t __tkip_80211_encrypt_veneer +1003cbf8 t __HalCpuClkConfig_veneer +1003cf95 d __func__.21308 +1003d2c1 d __FUNCTION__.14665 +1003d788 d bitrate_table +1003d8b4 d samplerate_table +1003d8c0 d decoder_table +1003d8cc d imdct_s +1003d95c d sfb_8000_short +1003d983 d sfb_32000_short +1003d9ac d is_table +1003d9c8 d rq_table +10045a04 d root_table +10045a20 d sfb_44100_mixed +10045a48 d is_lsf_table +10045ac0 d sflen_table +10045ae0 d sfb_16000_mixed +10045b04 d ca +10045b24 d sfb_44100_short +10045b4b d sfb_44100_long +10045b61 d sfb_48000_mixed +10045b87 d sfb_24000_long +10045ba0 d scale.7384 +10045be8 d sfb_32000_mixed +10045c0e d sfb_16000_short +10045c35 d sfb_8000_long +10045c4b d sfb_22050_mixed +10045c70 d window_l +10045d00 d sfb_48000_long +10045d18 d cs +10045d38 d sfb_24000_mixed +10045d5c d pretab +10045d72 d sfb_48000_short +10045d99 d sfb_22050_short +10045dc0 d sfb_8000_mixed +10045de8 d sfbwidth_table +10045e54 d sfb_24000_short +10045e7b d sfb_32000_long +10045e91 d sfb_22050_long +10045ea8 d window_s +10045ed8 d nsfb_table +10045f20 d hufftab24 +10046528 d hufftab10 +100466c0 d hufftab11 +10046860 d hufftab12 +100469e0 d hufftab13 +10047018 d hufftab3 +10047058 d hufftab15 +10047648 d hufftab16 +10047c90 d hufftab6 +10047d00 d hufftab7 +10047e00 D mad_huff_pair_table +10047f80 d hufftab9 +10048058 d hufftab1 +10048078 d hufftabA +100480e8 d hufftab2 +10048128 d hufftabB +10048168 D mad_huff_quad_table +10048170 d hufftab0 +10048174 d hufftab5 +100481dc d hufftab8 +100482e4 d crc_table +100484e4 d D +10048d64 D mad_timer_zero +100490f7 d __func__.20875 +1004968c d err_to_errno_table +100496d4 D ip_addr_broadcast +100496d8 D ip_addr_any +100496ec D memp_sizes +1004970c D tcp_pcb_lists +1004971c D tcp_state_str +10049748 D tcp_backoff +100497bd D tcp_persist_backoff +100497c4 D ethbroadcast +100497ca D ethzero +100497f9 d __FUNCTION__.9191 +100498bb d __FUNCTION__.9203 +100498ca d dhcp_option_lease_time_one_day +100498f3 d dhcp_option_interface_mtu +100498f5 d dhcp_magic_cookie +10049977 d __FUNCTION__.4595 +10049995 d ucExpectedStackBytes.7044 +100499a9 d CSWTCH.270 +10049a36 d __FUNCTION__.12255 +10049a4c d __FUNCTION__.12259 +10049a64 D osdep_service +10049b88 d __FUNCTION__.12110 +10049c15 d __FUNCTION__.12059 +10049c29 d __FUNCTION__.12121 +10049c44 d __FUNCTION__.12067 +10049c60 d __FUNCTION__.12093 +10049c7f d __FUNCTION__.7295 +10049d88 d PinMap_I2S_RX +10049e68 d PinMap_I2S_TX +10049ec8 d I2SDefaultSetting +10049edc d PinMap_I2S_CLK +10049f3c d PinMap_I2S_WS +10049f9c d __FUNCTION__.8784 +10049ff4 d __FUNCTION__.8600 +1004a001 d __FUNCTION__.8613 +1004a2a6 d __FUNCTION__.8455 +1004a2c8 d __FUNCTION__.8462 +1004a2e3 d __FUNCTION__.8469 +1004a3de d __func__.8808 +1004a3fd d __func__.8818 +1004a41b d __func__.8830 +1004a435 d __func__.8840 +1004a457 d __func__.8835 +1004a820 d __func__.8603 +1004a83a d __func__.8686 +1004a84d d __func__.8825 +1004a866 d __func__.8631 +1004a899 d __FUNCTION__.17777 +1004a8b8 D wlancmds +1004aab0 D rtw_cmd_callback +1004ad3c d RTW_ChannelPlan2G +1004adb4 D WPS_OUI +1004adb8 D RSN_TKIP_CIPHER +1004adbc D MCS_rate_1R +1004adcc D P2P_OUI +1004adf8 D WMM_INFO_OUI +1004adfe D RTW_WPA_OUI +1004ae02 D WMM_PARA_OUI +1004ae08 d RTW_ChannelPlanMap +1004ae20 D null_addr +1004ae26 D WMM_OUI +1004ae2c d wlanevents +1004aeec D zero_bssid +1004af29 d __FUNCTION__.17681 +1004af3f D SNAP_ETH_TYPE_APPLETALK_AARP +1004af41 d __FUNCTION__.17495 +1004af54 D SNAP_ETH_TYPE_IPX +1004af56 D rtw_bridge_tunnel_header +1004af7d D rtw_rfc1042_header +1004af9b d CSWTCH.36 +1004afa7 D ARTHEROS_OUI1 +1004afaa D ARTHEROS_OUI2 +1004afad D REALTEK_OUI +1004afb0 D RALINK_OUI +1004afb3 D MARVELL_OUI +1004afb6 D CISCO_OUI +1004afb9 d rtw_basic_rate_cck +1004afbd D BROADCOM_OUI1 +1004afc0 D BROADCOM_OUI2 +1004afc3 D REALTEK_96B_IE +1004afc9 d rtw_basic_rate_mix +1004afd0 d rtw_basic_rate_ofdm +1004afd3 D AIRGOCAP_OUI +1004afe7 d CSWTCH.66 +1004b000 d CSWTCH.48 +1004b042 d CSWTCH.28 +1004b054 D efuse_map_mask +1004b064 D flash_map_mask +1004b100 d __func__.21107 +1004b446 d CSWTCH.15 +1004b4ca d CSWTCH.17 +1004b539 d CSWTCH.14 +1004b5ce d __FUNCTION__.21257 +1004b5e0 d rtw_private_args +1004b9f7 d __FUNCTION__.21057 +1004ba0a d __FUNCTION__.21294 +1004ba1b d __FUNCTION__.21241 +1004ba2a d __FUNCTION__.21126 +1004ba3a d iw_priv_type_size +1004bb18 d __FUNCTION__.17334 +1004bb2e d __FUNCTION__.17736 +1004bb3e d __FUNCTION__.17760 +1004bb51 d __FUNCTION__.17712 +1004bb60 d __FUNCTION__.17649 +1004bb6e d __FUNCTION__.17661 +1004bf45 d __FUNCTION__.17827 +1004bf5e d __FUNCTION__.17654 +1004bf69 d __FUNCTION__.17615 +1004bf78 d __FUNCTION__.17811 +1004bf8a d __FUNCTION__.17765 +1004bf98 d __FUNCTION__.17724 +1004bfa9 d __FUNCTION__.17637 +1004d34a D CCKFCCTable_Ch14_8195A +1004d35a D CCKFCCTable_8195A +1004d36c D OFDMSwingTable_New +1004d418 D CCKCETable_8195A +1004d42e d CSWTCH.39 +1004d443 d __func__.20571 +1004d464 D hci_ops +1004d489 V Array_MP_8195A_TXPWR_LMT +1004d9fc D xHeapRegions +1004da1c D UartLogRamCmdTable +1004da1c D console_commands_main +1004da2c D console_cmd_wifi_api +1004da9c D console_commands_at +1004db0c D console_commands +1004db2c d UartLogRamCmdTable_end +1004db30 D __data_start__ +1004db30 D wlan_st_name +1004db38 D wifi_st_dhcp +1004db48 D wlan_ap_name +1004db50 D wifi_ap_dhcp +1004db60 D feep_tab +1004db90 D wifi_st_cfg +1004dc00 D wifi_cfg +1004dc08 D tab_txt_rtw_secyrity +1004dc30 D wifi_ap_cfg +1004dc9c D wlan_ap_netifn +1004dca0 D tab_code_rtw_secyrity +1004dcc8 D oversampling +1004dccc D SystemCoreClock +1004dcd0 D error_flag +1004dcd4 d tcp_port +1004dcd8 d iss.7833 +1004dcdc d udp_port +1004dcde D lwip_host_name +1004dcfe d dhcp_server_state_machine +1004dcff d dhcp_recorded_xid +1004dd04 d uxCriticalNesting +1004dd08 d xNextTaskUnblockTime +1004dd0c d seed.12226 +1004dd10 d wakeup_event +1004dd14 d wakelock +1004dd18 d last_wakelock_state +1004dd38 D mlme_sta_tbl +1004dda8 d PMKID_KDE_TYPE.17744 +1004ddb0 V nr_xmitbuff +1004ddb4 V nr_xmitframe +1004ddb8 d P802_1H_OUI +1004ddbb D rtw_adaptivity_mode +1004ddbc D g_user_ap_sta_num +1004ddc0 d rtw_private_handler +1004de04 V max_local_skb_num +1004de08 V max_skb_buf_num +1004de0c D rom_e_rtw_msgp_str_ +1004dfe8 D ARFB_table +1004e027 D TRYING_NECESSARY_idx +1004e03b D DROPING_NECESSARY +1004e04f D PER_RATE_UP +1004e063 D PER_RATE_DOWN +1004e078 V Array_MP_8195A_PHY_REG_PG +1004e108 D Array_MP_8195A_AGC_TAB +1004e318 D Array_MP_8195A_PHY_REG +1004e990 D rtl8195A_card_disable_flow +1004ea30 D rtl8195A_card_enable_flow +1004ead0 D Array_MP_8195A_MAC_REG +1004edd8 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A +1004edf8 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A +1004ee18 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A +1004ee36 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A +1004ee54 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A +1004ee72 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A +1004ee90 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A +1004eeb0 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A +1004eece D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A +1004eeec D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A +1004ef0c D Array_MP_8195A_RadioA +1004f4d4 D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A +1004f4f2 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A +1004f512 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A +1004f530 D .ram.bss$$Base +1004f530 D __bss_start__ +1004f530 D __data_end__ +1004f530 D __ram_image2_text_end__ +1004f530 d skbdata_list +1004f538 V skb_data_pool +10052938 d ucIdleTaskHeap +10052a50 D HalI2SOpSAL +10052a8c D SYSAdapte +10052a90 D PwrAdapter +10052d1c D libc_has_init +10052d1d D print_off +10052d20 d rheap_end +10052d24 D wifi_run_mode +10052d28 D wlan_st_netifn +10052d2c D wifi_autoreconnect +10052d34 d event_init.21315 +10052d38 d sampCntAdd +10052d3c d sampCnt +10052d40 D mp3_serv +10052dc2 D tskreader_enable +10052dc4 D readBuf +10052dc8 D tskmad_enable +10052dcc d bufUnderrunCt +10052dd0 d oldRate +10052dd4 d sampDelCnt +10052dd5 D scan_end +10052dd8 D pbuf_fifo +10052ddc D pi2s +10052de4 D I2sTxSema +10052de8 D rtw_join_status +10052dec D wifi_mode +10052df0 D scan_result_handler_ptr +10052e14 d join_user_data +10052e18 d event_callback_list +10052f98 D paff_array +10053010 D lwip_init_done +10053014 D xnetif +10053094 d s_aliases.7449 +10053098 d s_hostent.7448 +100530ac d s_hostent_addr.7450 +100530b0 D h_errno +100530b4 d s_phostent_addr.7451 +100530bc d select_cb_list +100530c0 d sockets +10053180 d select_cb_ctr +10053184 d mbox +10053188 d tcpip_init_done_arg +1005318c d tcpip_init_done +10053190 d allsystems +10053194 d allrouters +10053198 d igmp_group_list +1005319c D current_header +100531a0 d ip_id +100531a4 D current_iphdr_src +100531a8 D current_iphdr_dest +100531ac D current_netif +100531b0 d str.6812 +100531c0 d reassdatagrams +100531c4 d ip_reass_pbufcount +100531c6 D dhcp_rx_options_given +100531d0 d xid.7762 +100531d4 D dhcp_rx_options_val +100531fc d dns_seqno +10053200 d dns_table +10053660 d dns_servers +10053668 d dns_payload_buffer +1005386c d dns_pcb +10053870 d dns_payload +10053874 d tcpip_tcp_timer_active +10053878 d next_timeout +1005387c D netif_list +10053880 D netif_default +10053884 d netif_num +10053885 D pbuf_free_ooseq_pending +10053888 d raw_pcbs +1005388c D tcp_active_pcbs_changed +10053890 D tcp_ticks +10053894 d tcp_timer +10053898 D tcp_listen_pcbs +1005389c D tcp_active_pcbs +100538a0 d tcp_timer_ctr +100538a4 D tcp_tw_pcbs +100538a8 D tcp_tmp_pcb +100538ac D tcp_bound_pcbs +100538b0 d seqno +100538b4 d tcplen +100538b8 d ackno +100538bc d flags +100538bd d recv_flags +100538c0 d tcphdr +100538c4 d recv_data +100538c8 d inseg +100538dc D tcp_input_pcb +100538e0 D udp_pcbs +100538e4 d etharp_cached_entry +100538e8 d arp_table +100539b0 D lwip_tickless_used +100539b4 d s_timeoutlist +100539e4 d s_nextthread +100539e8 d dhcps_ip_table_semaphore +100539ec d dhcps_send_broadcast_address +100539f0 D dhcps_ip4addr_pool_end +100539f1 d dhcp_client_ethernet_address +10053a04 d dhcps_subnet_broadcast +10053a08 d bound_client_ethernet_address +10053a18 d dhcps_netif +10053a1c d dhcps_local_gateway +10053a20 d ip_table +10053a40 d dhcps_pcb +10053a44 d dhcp_message_total_options_lenth +10053a48 d dhcps_local_address +10053a4c d client_request_ip +10053a50 d dhcps_allocated_client_address +10053a54 D dhcps_ip4addr_pool_start +10053a58 d dhcps_local_mask +10053a5c d dhcps_network_id +10053a60 d dhcp_message_repository +10053a64 D ext_upper +10053a68 d xFreeBytesRemaining +10053a6c d ext_free +10053a70 D ext_lower +10053a74 d pxEnd +10053a78 d xStart +10053a80 d xMinimumEverFreeBytesRemaining +10053a84 d ulTimerCountsForOneTick +10053a88 d ulStoppedTimerCompensation +10053a8c d xMaximumPossibleSuppressedTicks +10053a90 d xPendingReadyList +10053aa4 d uxTopReadyPriority +10053aa8 d uxTasksDeleted +10053aac d xTickCount +10053ab0 d pxReadyTasksLists +10053b8c d pxOverflowDelayedTaskList +10053b90 d xTasksWaitingTermination +10053ba4 d pxDelayedTaskList +10053ba8 d xSchedulerRunning +10053bac d ulTaskSwitchedInTime +10053bb0 D pxCurrentTCB +10053bb4 d uxPendedTicks +10053bb8 d xSuspendedTaskList +10053bcc d uxCurrentNumberOfTasks +10053bd0 d ulDeltaTotalRunTime +10053bd4 d xDelayedTaskList2 +10053be8 d xDelayedTaskList1 +10053bfc d uxTaskNumber +10053c00 d xYieldPending +10053c04 d uxSchedulerSuspended +10053c08 d xNumOfOverflows +10053c0c d pxCurrentTimerList +10053c10 d xActiveTimerList1 +10053c24 d xActiveTimerList2 +10053c38 d xLastTime.5284 +10053c3c d xTimerQueue +10053c40 d pxOverflowTimerList +10053c44 d xTimerTaskHandle +10053c48 d device_mutex +10053c54 d mutex_init +10053c58 d uxSavedInterruptStatus +10053c5c D min_free_heap_size +10053c60 d g_heap_inited +10053c64 d tcm_lock +10053c68 D g_tcm_heap +10053c6c D flashobj +10053c78 D fspic_isinit +10053c7c D WDGAdapter +10053cb8 d last_acquire_wakelock_time +10053d38 D post_sleep_callback +10053db8 D pre_sleep_callback +10053e38 D reserve_pll +10053e3c d sys_sleep_time +10053e40 d hold_wakelock_time +10053ec0 D missing_tick +10053ec4 D Timer2To7HandlerData +10053edc D auto_reconnect_running +10053ee0 D p_wlan_autoreconnect_hdl +10053ee4 D mac_monitor_callback +10053ee8 D mf_list_head +10053eec d pscan_retry_cnt.21430 +10053ef0 D promisc_callback_all +10053ef4 D promisc_sema +10053ef8 D promisc_callback +10053efc D psk_essid +10053f44 D psk_passphrase +10053fc6 D psk_passphrase64 +10054007 D wpa_global_PSK +10054057 d RFC1042_OUI +1005405c d rx_ring_pool +1005613c d stop_report_count.20629 +1005613d D bCheckStateTIMER +10056140 d WifiMcuCmdBitMap.20974 +10056144 D p_wlan_init_done_callback +10056148 D rtw_power_percentage_idx +1005614c D p_wlan_uart_adapter_callback +10056150 D rtw_adaptivity_en +10056154 D p_wlan_mgmt_filter +10056158 D rtw_initmac +1005615c D rtw_adaptivity_th_l2h_ini +10056160 d drvpriv +10056174 D skbbuf_used_num +10056178 V skb_pool +10056330 D skbdata_used_num +10056334 d wrapper_skbbuf_list +1005633c D max_skbdata_used_num +10056340 D max_skbbuf_used_num +10056344 d skb_fail_count +10056348 D timer_table +10056350 D rltk_wlan_info +10056380 d timer_used_num +10056384 D max_timer_used_num +10056388 D Noisy_State +1005638c D pExportWlanIrqSemaphore +10056390 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A +100563ae D .ram.bss$$Limit +100563ae D __bss_end__ +100563b0 B __ram_heap2_start__ 10070000 A __ram_heap2_end__ 1fff0000 D __ram_tcm_start__ 1fff0000 D __tcm_heap_start__ diff --git a/project/inc/wifi_user_set.h b/project/inc/wifi_user_set.h index d388943..ec84d84 100644 --- a/project/inc/wifi_user_set.h +++ b/project/inc/wifi_user_set.h @@ -10,13 +10,13 @@ //========================================= //==== Wlan Config ======================== -#define DEF_WIFI_MODE RTW_MODE_STA // RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA -#define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3 -#define DEF_WIFI_COUNTRY RTW_COUNTRY_RU +#define DEF_WIFI_MODE RTW_MODE_STA // Стартовый режим WiFi: RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA, RTW_MODE_NONE +#define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3 +#define DEF_WIFI_COUNTRY RTW_COUNTRY_RU // Страна для установки органичений каналов и прочего... #define DEF_WIFI_TX_PWR RTW_TX_PWR_PERCENTAGE_50 // RTW_TX_PWR_PERCENTAGE_75 // RTW_TX_PWR_PERCENTAGE_100 #define DEF_WIFI_BGN RTW_NETWORK_BGN // rtw_network_mode_t -#define DEF_WIFI_ST_SLEEP 0 // 0 - none, 1 - on -//#define USE_NETBIOS 3 // 0 - off, 1 - ST, 2 - AP, 3 - AP+ST +#define DEF_WIFI_ST_SLEEP 0 // 0 - none, 1 - on + #define DEF_LOAD_CFG ( 0 \ | BID_WIFI_AP_CFG \ | BID_WIFI_ST_CFG \