From 43e02b24ea09e99525e3dee71681943437e2e1f8 Mon Sep 17 00:00:00 2001 From: jfmartel Date: Wed, 29 Dec 2021 15:21:52 -0500 Subject: [PATCH 1/2] =?UTF-8?q?Driver=20Atwin=201.4.2=20compile.=20=20Rest?= =?UTF-8?q?e=20=C3=A0=20faire=20le=20low=20level?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChaletLora.X/Source/WiFiCtrl.c | 20 +- ChaletLora.X/Source/WiFiCtrl.h | 63 +- ChaletLora.X/Source/main.c | 3 + .../Source/winc3400_142/bsp/include/nm_bsp.h | 85 + .../winc3400_142/common/include/nm_common.h | 172 + .../winc3400_142/common/include/nm_debug.h | 60 + .../winc3400_142/common/source/nm_common.c | 100 + .../winc3400_142/driver/include/ecc_types.h | 300 + .../winc3400_142/driver/include/m2m_flash.h | 188 + .../winc3400_142/driver/include/m2m_hif.h | 243 + .../winc3400_142/driver/include/m2m_ota.h | 370 + .../winc3400_142/driver/include/m2m_periph.h | 307 + .../winc3400_142/driver/include/m2m_ssl.h | 255 + .../winc3400_142/driver/include/m2m_types.h | 2745 +++ .../winc3400_142/driver/include/m2m_wifi.h | 4147 ++++ .../winc3400_142/driver/include/nmasic.h | 148 + .../winc3400_142/driver/include/nmbus.h | 137 + .../winc3400_142/driver/include/nmdrv.h | 176 + .../winc3400_142/driver/include/nmspi.h | 137 + .../winc3400_142/driver/source/m2m_flash.c | 354 + .../winc3400_142/driver/source/m2m_hif.c | 857 + .../winc3400_142/driver/source/m2m_ota.c | 190 + .../winc3400_142/driver/source/m2m_periph.c | 129 + .../winc3400_142/driver/source/m2m_ssl.c | 495 + .../winc3400_142/driver/source/m2m_wifi.c | 2061 ++ .../winc3400_142/driver/source/nmasic.c | 706 + .../Source/winc3400_142/driver/source/nmbus.c | 248 + .../Source/winc3400_142/driver/source/nmdrv.c | 410 + .../Source/winc3400_142/driver/source/nmspi.c | 960 + .../socket/include/m2m_socket_host_if.h | 347 + .../winc3400_142/socket/include/netinet_in.h | 95 + .../winc3400_142/socket/include/socket.h | 2074 ++ .../winc3400_142/socket/source/inet_addr.c | 119 + .../winc3400_142/socket/source/inet_ntop.c | 104 + .../winc3400_142/socket/source/socket.c | 1261 ++ .../spi_flash/include/spi_flash.h | 192 + .../spi_flash/include/spi_flash_map.h | 264 + .../winc3400_142/spi_flash/source/spi_flash.c | 599 + .../debug/ChaletLora.X.debug.elf | Bin 986201 -> 0 bytes .../debug/ChaletLora.X.debug.map | 5374 ----- .../production/ChaletLora.X.production.elf | Bin 898029 -> 977448 bytes .../production/ChaletLora.X.production.hex | 18034 ++++++++-------- .../production/ChaletLora.X.production.map | 4930 +++-- .../Makefile-ChaletDuinoV2_795F512H_.mk | 606 +- .../nbproject/Makefile-genesis.properties | 4 +- ChaletLora.X/nbproject/configurations.xml | 189 +- ChaletLora.X/nbproject/private/private.xml | 12 +- 47 files changed, 33181 insertions(+), 17089 deletions(-) create mode 100644 ChaletLora.X/Source/winc3400_142/bsp/include/nm_bsp.h create mode 100644 ChaletLora.X/Source/winc3400_142/common/include/nm_common.h create mode 100644 ChaletLora.X/Source/winc3400_142/common/include/nm_debug.h create mode 100644 ChaletLora.X/Source/winc3400_142/common/source/nm_common.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/ecc_types.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_flash.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_hif.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_ota.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_periph.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_ssl.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_types.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/m2m_wifi.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/nmasic.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/nmbus.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/nmdrv.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/include/nmspi.h create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_flash.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_hif.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_ota.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_ssl.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/m2m_wifi.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/nmasic.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/nmbus.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/nmdrv.c create mode 100644 ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c create mode 100644 ChaletLora.X/Source/winc3400_142/socket/include/m2m_socket_host_if.h create mode 100644 ChaletLora.X/Source/winc3400_142/socket/include/netinet_in.h create mode 100644 ChaletLora.X/Source/winc3400_142/socket/include/socket.h create mode 100644 ChaletLora.X/Source/winc3400_142/socket/source/inet_addr.c create mode 100644 ChaletLora.X/Source/winc3400_142/socket/source/inet_ntop.c create mode 100644 ChaletLora.X/Source/winc3400_142/socket/source/socket.c create mode 100644 ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash.h create mode 100644 ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash_map.h create mode 100644 ChaletLora.X/Source/winc3400_142/spi_flash/source/spi_flash.c delete mode 100644 ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.elf delete mode 100644 ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map diff --git a/ChaletLora.X/Source/WiFiCtrl.c b/ChaletLora.X/Source/WiFiCtrl.c index 61e1211..33086b1 100644 --- a/ChaletLora.X/Source/WiFiCtrl.c +++ b/ChaletLora.X/Source/WiFiCtrl.c @@ -1,6 +1,6 @@ #include "WiFiCtrl.h" #include "string.h" -#include "driver/source/nmasic.h" +#include "driver/include/nmasic.h" #include //#include "socket/include/socket.h" #include "define.h" @@ -155,7 +155,7 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg) SendTerminalData("Bienvenue au chalet!\nLe chalet parle en anglais comme Mr. Pepin\nIf you need help... type help\n\n",strlen("Bienvenue au chalet!\nLe chalet parle en anglais comme Mr. Pepin\nIf you need help... type help\n\n")); // SendSyslogData("Terminal client connected\n",strlen("Terminal client connected\n")); printf("Terminal client connected\n"); - // m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4,1); + m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4,1); } else if(sock == SyslogServerSocket) { @@ -236,7 +236,7 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg) TerminalSocket = -1; // SendSyslogData("Terminal client disconnected\n",strlen("Terminal client disconnected\n")); printf("Terminal client disconnected\n"); - // m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4,0); + m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4,0); } else if(sock == SyslogSocket) { @@ -277,7 +277,7 @@ static void set_dev_name_to_mac(uint8 *name, uint8 *mac_addr) /* Name must be in the format WINC1500_00:00 */ uint16 len; - len = m2m_strlen(name); +// len = m2m_strlen(name); if (len >= 5) { name[len - 1] = MAIN_HEX2ASCII((mac_addr[5] >> 0) & 0x0f); name[len - 2] = MAIN_HEX2ASCII((mac_addr[5] >> 4) & 0x0f); @@ -304,7 +304,7 @@ static void wifi_cb(uint8 u8MsgType, void *pvMsg) printf("Wi-Fi connected\r\n"); #ifndef USE_STATIC_IP - m2m_wifi_request_dhcp_client(); +// m2m_wifi_request_dhcp_client(); #else m2m_wifi_set_static_ip(&mModuleIPConfig); gbConnectedWifi = true; @@ -326,7 +326,7 @@ static void wifi_cb(uint8 u8MsgType, void *pvMsg) case M2M_WIFI_REQ_DHCP_CONF: { - mCurIPAddress = *(uin32*)pvMsg; +// mCurIPAddress = *(uin32*)pvMsg; // unsigned char ip1,ip2,ip3,ip4; // ip1 = IPV4_BYTE(pu8IPAddress,0); @@ -432,11 +432,11 @@ int InitWiFi() mModuleIPConfig.u32SubnetMask = IP_TO_U32(SUBNET_MASK_1,SUBNET_MASK_2,SUBNET_MASK_3,SUBNET_MASK_4); /* Initialize the BSP. */ - nm_bsp_init(); +// nm_bsp_init(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ - param.pfAppWifiCb = wifi_cb; + param.pfAppWifiCb = (void*) &wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { @@ -466,7 +466,7 @@ int InitWiFi() //Use the MAC to define the SSID of the module set_dev_name_to_mac((uint8 *)gstrM2MAPConfig.au8SSID, gau8MacAddr); - m2m_wifi_set_device_name((uint8 *)gacDeviceName, (uint8)m2m_strlen((uint8 *)gacDeviceName)); +// m2m_wifi_set_device_name((uint8 *)gacDeviceName, (uint8)m2m_strlen((uint8 *)gacDeviceName)); #ifdef USE_STATIC_IP //Use static ip --> disable dhcp client before connecting @@ -581,7 +581,7 @@ void TickWiFi() // if(IsTimerExpired(WIFI_TICK_TIMER)) // { - m2m_wifi_handle_events(NULL); + m2m_wifi_handle_events(); // TimerStart(WIFI_TICK_TIMER,1); // } diff --git a/ChaletLora.X/Source/WiFiCtrl.h b/ChaletLora.X/Source/WiFiCtrl.h index 3a124f8..354b80b 100644 --- a/ChaletLora.X/Source/WiFiCtrl.h +++ b/ChaletLora.X/Source/WiFiCtrl.h @@ -11,6 +11,67 @@ #include "driver/include/m2m_wifi.h" #include "socket/include/socket.h" +/*! +* Used for code portability. +*/ + +/*! + * @typedef void (*tpfNmBspIsr) (void); + * @brief Pointer to function.\n + * Used as a data type of ISR function registered by \ref nm_bsp_register_isr + * @return None + */ +typedef void (*tpfNmBspIsr)(void); + + /*! + * @ingroup DataTypes + * @typedef unsigned char uint8; + * @brief Range of values between 0 to 255 + */ +typedef unsigned char uint8; + + /*! + * @ingroup DataTypes + * @typedef unsigned short uint16; + * @brief Range of values between 0 to 65535 + */ +typedef unsigned short uint16; + + /*! + * @ingroup Data Types + * @typedef unsigned long uint32; + * @brief Range of values between 0 to 4294967295 + */ +typedef unsigned long uint32; + + + /*! + * @ingroup Data Types + * @typedef signed char sint8; + * @brief Range of values between -128 to 127 + */ +typedef signed char sint8; + + /*! + * @ingroup DataTypes + * @typedef signed short sint16; + * @brief Range of values between -32768 to 32767 + */ +typedef signed short sint16; + + /*! + * @ingroup DataTypes + * @typedef signed long sint32; + * @brief Range of values between -2147483648 to 2147483647 + */ + +typedef signed long sint32; + //@} + + + + + int InitWiFi(); void TickWiFi(); @@ -188,7 +249,7 @@ static tstrM2MAPConfig gstrM2MAPConfig = {MAIN_M2M_SSID, MAIN_M2M_AP_SSID_MODE, MAIN_M2M_DHCP_SERVER_IP}; -static CONST char gacHttpProvDomainName[] = MAIN_HTTP_PROV_SERVER_DOMAIN_NAME; +static const char gacHttpProvDomainName[] = MAIN_HTTP_PROV_SERVER_DOMAIN_NAME; static uint8 gau8MacAddr[] = MAIN_MAC_ADDRESS; static sint8 gacDeviceName[] = MAIN_M2M_SSID; diff --git a/ChaletLora.X/Source/main.c b/ChaletLora.X/Source/main.c index edbcb9c..a2afc7d 100644 --- a/ChaletLora.X/Source/main.c +++ b/ChaletLora.X/Source/main.c @@ -14,6 +14,9 @@ Change description. */ +//JFM WINC TODO + + #include "define.h" diff --git a/ChaletLora.X/Source/winc3400_142/bsp/include/nm_bsp.h b/ChaletLora.X/Source/winc3400_142/bsp/include/nm_bsp.h new file mode 100644 index 0000000..a22ad5c --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/bsp/include/nm_bsp.h @@ -0,0 +1,85 @@ +/******************************************************************************* + File Name: + nm_common.h + + Summary: + This module contains WINC3400 BSP APIs declarations. + + Description: + This module contains WINC3400 BSP APIs declarations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +//DOM-IGNORE-END + +/** @defgroup nm_bsp BSP + @brief + Description of the BSP (Board Support Package) module. + @{ + @defgroup DataT Data Types + @defgroup BSPDefine Defines + @defgroup BSPAPI Functions + @brief + Lists the available BSP (Board Support Package) APIs. + @} + */ + +/**@addtogroup BSPDefine + @{ + */ +#ifndef _NM_BSP_H_ +#define _NM_BSP_H_ + +#define BSP_MIN(x,y) ((x)>(y)?(y):(x)) +/*!< + * Computes the minimum value between \b x and \b y. + */ +/**@}*/ //BSPDefine + +/** + * @addtogroup BSPDefine + * @{ + */ + +#ifdef _NM_BSP_BIG_END +/*! Switch endianness of 32bit word (In the case that Host is BE) */ +#define NM_BSP_B_L_32(x) \ +((((x) & 0x000000FF) << 24) + \ +(((x) & 0x0000FF00) << 8) + \ +(((x) & 0x00FF0000) >> 8) + \ +(((x) & 0xFF000000) >> 24)) +/*! Switch endianness of 16bit word (In the case that Host is BE) */ +#define NM_BSP_B_L_16(x) \ +((((x) & 0x00FF) << 8) + \ +(((x) & 0xFF00) >> 8)) +#else +/*! Retain endianness of 32bit word (In the case that Host is LE) */ +#define NM_BSP_B_L_32(x) (x) +/*! Retain endianness of 16bit word (In the case that Host is LE) */ +#define NM_BSP_B_L_16(x) (x) +#endif +/**@}*/ //BSPDefine + +#endif /*_NM_BSP_H_*/ diff --git a/ChaletLora.X/Source/winc3400_142/common/include/nm_common.h b/ChaletLora.X/Source/winc3400_142/common/include/nm_common.h new file mode 100644 index 0000000..fd420dd --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/common/include/nm_common.h @@ -0,0 +1,172 @@ +/******************************************************************************* + File Name: + nm_common.h + + Summary: + This module contains common APIs declarations. + + Description: + This module contains common APIs declarations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +//DOM-IGNORE-END + +/** @defgroup COMMON Common + @{ + @defgroup COMMONDEF Defines + @defgroup COMMONAPI Functions + @} + */ + +#ifndef _NM_COMMON_H_ +#define _NM_COMMON_H_ + +#include +#include "define.h" +#include "nm_bsp.h" +#include "nm_debug.h" + +/**@addtogroup COMMONDEF + * @{ + */ + +/*states*/ +#define M2M_SUCCESS ((int8_t)0) +#define M2M_ERR_SEND ((int8_t)-1) +#define M2M_ERR_RCV ((int8_t)-2) +#define M2M_ERR_MEM_ALLOC ((int8_t)-3) +#define M2M_ERR_TIME_OUT ((int8_t)-4) +#define M2M_ERR_INIT ((int8_t)-5) +#define M2M_ERR_BUS_FAIL ((int8_t)-6) +#define M2M_NOT_YET ((int8_t)-7) +#define M2M_ERR_FIRMWARE ((int8_t)-8) +#define M2M_SPI_FAIL ((int8_t)-9) +#define M2M_ERR_FIRMWARE_bURN ((int8_t)-10) +#define M2M_ACK ((int8_t)-11) +#define M2M_ERR_FAIL ((int8_t)-12) +#define M2M_ERR_FW_VER_MISMATCH ((int8_t)-13) +#define M2M_ERR_SCAN_IN_PROGRESS ((int8_t)-14) +#define M2M_ERR_INVALID_ARG ((int8_t)-15) + +#define NBIT31 (0x80000000) +#define NBIT30 (0x40000000) +#define NBIT29 (0x20000000) +#define NBIT28 (0x10000000) +#define NBIT27 (0x08000000) +#define NBIT26 (0x04000000) +#define NBIT25 (0x02000000) +#define NBIT24 (0x01000000) +#define NBIT23 (0x00800000) +#define NBIT22 (0x00400000) +#define NBIT21 (0x00200000) +#define NBIT20 (0x00100000) +#define NBIT19 (0x00080000) +#define NBIT18 (0x00040000) +#define NBIT17 (0x00020000) +#define NBIT16 (0x00010000) +#define NBIT15 (0x00008000) +#define NBIT14 (0x00004000) +#define NBIT13 (0x00002000) +#define NBIT12 (0x00001000) +#define NBIT11 (0x00000800) +#define NBIT10 (0x00000400) +#define NBIT9 (0x00000200) +#define NBIT8 (0x00000100) +#define NBIT7 (0x00000080) +#define NBIT6 (0x00000040) +#define NBIT5 (0x00000020) +#define NBIT4 (0x00000010) +#define NBIT3 (0x00000008) +#define NBIT2 (0x00000004) +#define NBIT1 (0x00000002) +#define NBIT0 (0x00000001) + +#ifndef BIG_ENDIAN +/*! Most significant byte of 32bit word (LE) */ +#define BYTE_0(word) ((uint8_t)(((word) >> 0) & 0x000000FFUL)) +/*! Second most significant byte of 32bit word (LE) */ +#define BYTE_1(word) ((uint8_t)(((word) >> 8) & 0x000000FFUL)) +/*! Third most significant byte of 32bit word (LE) */ +#define BYTE_2(word) ((uint8_t)(((word) >> 16) & 0x000000FFUL)) +/*! Least significant byte of 32bit word (LE) */ +#define BYTE_3(word) ((uint8_t)(((word) >> 24) & 0x000000FFUL)) +#else +/*! Most significant byte of 32bit word (BE) */ +#define BYTE_0(word) ((uint8_t)(((word) >> 24) & 0x000000FFUL)) +/*! Second most significant byte of 32bit word (BE) */ +#define BYTE_1(word) ((uint8_t)(((word) >> 16) & 0x000000FFUL)) +/*! Third most significant byte of 32bit word (BE) */ +#define BYTE_2(word) ((uint8_t)(((word) >> 8) & 0x000000FFUL)) +/*! Least significant byte of 32bit word (BE) */ +#define BYTE_3(word) ((uint8_t)(((word) >> 0) & 0x000000FFUL)) +#endif +/**@}*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @ingroup COMMONAPI + * @fn int8_t hexstr_2_bytes(uint8_t *pu8Out, uint8_t *pu8In, uint8_t u8SizeOut); + * @brief Converts a string of hex characters to bytes. + * @param[out] pu8Out + * Output buffer (eg {0x11, 0x12, 0x13,...}) + * @param[in] pu8In + * Input buffer (eg {0x31, 0x31, 0x31, 0x32, 0x31, 0x33, ...}) + * @param[in] u8SizeOut + * Length of output buffer (should be half of the length of the input buffer). + * @return @ref M2M_SUCCESS if successful, M2M_ERR_INVALID_ARG otherwise (eg unrecognised hexchar in input). + */ +int8_t hexstr_2_bytes(uint8_t *pu8Out, uint8_t *pu8In, uint8_t u8SizeOut); + +/*! + * @fn void nm_sleep(uint32_t u32TimeMsec); + * @brief Used to put the host to sleep for the specified duration (in milliseconds). + * Forcing the host to sleep for extended period may lead to host not being able to respond + * to WINC board events. It is important to be considerate while choosing the sleep period. + * @param [in] u32TimeMsec + * Time unit in milliseconds. + * @pre Initialize @ref nm_bsp_init first. + * @note Implementation of this function is host dependent. + * @warning Maximum value must nor exceed 4294967295 milliseconds which is equal to 4294967.295 seconds. + * @see nm_bsp_init + * @return None + */ +void nm_sleep(uint32_t u32TimeMsec); + +/*! + * @ingroup COMMONAPI + * @fn nm_reset + * @brief Reset NMC3400 SoC by setting CHIP_EN and RESET_N signals low, + * CHIP_EN high then RESET_N high + */ +void nm_reset(void); +/**@}*/ +#ifdef __cplusplus +} +#endif +#endif /*_NM_COMMON_H_*/ diff --git a/ChaletLora.X/Source/winc3400_142/common/include/nm_debug.h b/ChaletLora.X/Source/winc3400_142/common/include/nm_debug.h new file mode 100644 index 0000000..1a5ee88 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/common/include/nm_debug.h @@ -0,0 +1,60 @@ +/******************************************************************************* + File Name: + nm_debug.h + + Summary: + This module contains debug API declarations. + + Description: + This module contains debug API declarations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#ifndef _NM_DEBUG_H_ +#define _NM_DEBUG_H_ + + +//#include "wdrv_winc_debug.h" //JFM replaced include by direct definitions below +#define WDRV_DBG_VERBOSE_PRINT(...) +#define WDRV_DBG_TRACE_PRINT(...) +#define WDRV_DBG_INFORM_PRINT(...) +#define WDRV_DBG_ERROR_PRINT(...) + +/** + * @defgroup DebugDefines DebugDefines + * @ingroup WlanDefines + */ + +/**@{*/ + +#define M2M_ERR(...) WDRV_DBG_ERROR_PRINT(__VA_ARGS__) +#define M2M_INFO(...) WDRV_DBG_INFORM_PRINT(__VA_ARGS__) +#define M2M_DBG(...) WDRV_DBG_VERBOSE_PRINT(__VA_ARGS__) +#define M2M_PRINT(...) WDRV_DBG_VERBOSE_PRINT(__VA_ARGS__) + +/**@}*/ + +#endif /* _NM_DEBUG_H_ */ \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c b/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c new file mode 100644 index 0000000..a09dd72 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c @@ -0,0 +1,100 @@ +/******************************************************************************* + File Name: + nm_common.c + + Summary: + This module contains common APIs implementations. + + Description: + This module contains common APIs implementations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "nm_common.h" +//#include "wdrv_winc_common.h" +//#include "wdrv_winc_gpio.h" + +/*! + * @fn nm_sleep + * @brief Sleep in units of mSec + * @param[IN] u32TimeMsec + * Time in milliseconds + */ +void nm_sleep(uint32_t u32TimeMsec) +{ + //JFM WINC TODO + //WDRV_MSDelay(u32TimeMsec); +} + +/*! + * @fn nm_reset + * @brief Reset NMC3400 SoC by setting CHIP_EN and RESET_N signals low, + * CHIP_EN high then RESET_N high + */ +void nm_reset(void) +{ + //JFM WINC TODO + //WDRV_WINC_GPIOChipEnableDeassert(); + //WDRV_WINC_GPIOResetAssert(); + nm_sleep(100); + //WDRV_WINC_GPIOChipEnableAssert(); + nm_sleep(10); + //WDRV_WINC_GPIOResetDeassert(); + nm_sleep(10); +} + +/* Convert hexchar to value 0-15 */ +static uint8_t hexchar_2_val(uint8_t ch) +{ + ch -= 0x30; + if (ch <= 9) + return ch; + ch |= 0x20; + ch -= 0x31; + if (ch <= 5) + return ch + 10; + return 0xFF; +} + +/* Convert hexstring to bytes */ +int8_t hexstr_2_bytes(uint8_t *pu8Out, uint8_t *pu8In, uint8_t u8SizeOut) +{ + while(u8SizeOut--) + { + uint8_t u8Out = hexchar_2_val(*pu8In++); + if (u8Out > 0xF) + return M2M_ERR_INVALID_ARG; + *pu8Out = u8Out * 0x10; + u8Out = hexchar_2_val(*pu8In++); + if (u8Out > 0xF) + return M2M_ERR_INVALID_ARG; + *pu8Out += u8Out; + pu8Out++; + } + return M2M_SUCCESS; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/ecc_types.h b/ChaletLora.X/Source/winc3400_142/driver/include/ecc_types.h new file mode 100644 index 0000000..51d4065 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/ecc_types.h @@ -0,0 +1,300 @@ +/******************************************************************************* + File Name: + ecc_types.h + + Summary: + Elliptic Curve Cryptography Module Interface. + + Description: + Elliptic Curve Cryptography Module Interface. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#ifndef __ECC_TYPES_H__ +#define __ECC_TYPES_H__ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "m2m_types.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + + + +#define ECC_LARGEST_CURVE_SIZE (32) +/*!< + The size of the the largest supported EC. For now, assuming + the 256-bit EC is the largest supported curve type. +*/ + + +#define ECC_POINT_MAX_SIZE ECC_LARGEST_CURVE_SIZE +/*!< + Maximum size of one coordinate of an EC point. +*/ + + +#define ECC_POINT_MAX_SIZE_WORDS (ECC_POINT_MAX_SIZE / 4) +/*!< + SIZE in 32-bit words. +*/ + + +#define ECC_NUM_SUPP_CURVES ((sizeof(gastrECCSuppList)) / (sizeof(tstrEllipticCurve))) +/*!< +*/ + + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/**@addtogroup SSLEnums + * @{ + */ +/*! +@enum \ + tenuEcNamedCurve + +@brief EC Named Curves + + Defines a list of supported ECC named curves. +*/ +typedef enum EcNamedCurve{ + EC_SECP192R1 = 19, + /*!< + It is defined by NIST as P192 and by the SEC Group as secp192r1. + */ + EC_SECP256R1 = 23, + /*!< + It is defined by NIST as P256 and by the SEC Group as secp256r1. + */ + EC_SECP384R1 = 24, + /*!< + It is defined by NIST as P384 and by the SEC Group as secp384r1. + */ + EC_SECP521R1 = 25, + /*!< + It is defined by NIST as P521 and by the SEC Group as secp521r1. + */ + EC_UNKNOWN = 255 +}tenuEcNamedCurve; + + +/*! +@struct \ + tstrECPoint + +@brief Elliptic Curve point representation +*/ +typedef struct EcPoint{ + uint8_t X[ECC_POINT_MAX_SIZE]; + /*!< + The X-coordinate of the ec point. + */ + uint8_t Y[ECC_POINT_MAX_SIZE]; + /*!< + The Y-coordinate of the ec point. + */ + uint16_t u16Size; + /*!< + Point size in bytes (for each of the coordinates). + */ + uint16_t u16PrivKeyID; + /*!< + ID for the corresponding private key. + */ +}tstrECPoint; + + +/*! +@struct \ + tstrECDomainParam + +@brief ECC Curve Domain Parameters + + The structure defines the ECC domain parameters for curves defined over prime finite fields. +*/ +typedef struct EcDomainParam{ + uint32_t p[ECC_POINT_MAX_SIZE_WORDS]; + uint32_t a[ECC_POINT_MAX_SIZE_WORDS]; + uint32_t b[ECC_POINT_MAX_SIZE_WORDS]; + tstrECPoint G; +}tstrECDomainParam; + + +/*! +@struct \ + tstrEllipticCurve + +@brief + Definition of an elliptic curve +*/ +typedef struct{ + tenuEcNamedCurve enuType; + tstrECDomainParam strParam; +}tstrEllipticCurve; + +/*! +@enum \ + tenuEccREQ + +@brief ECC operations that may be requested by WINC. + + These are passed in the u16REQ field of @ref tstrEccReqInfo, which is used in both the request + from the WINC and the response to the WINC. +*/ +typedef enum{ + ECC_REQ_NONE, + /*!< */ + ECC_REQ_CLIENT_ECDH, + /*!< + Derive the shared secret from ECDHE key exchange as client. + */ + ECC_REQ_SERVER_ECDH, + /*!< + Derive the shared secret from ECDHE key exchange as server. + */ + ECC_REQ_GEN_KEY, + /*!< + Generate a key pair to be used in ECDHE key exchange as server. + */ + ECC_REQ_SIGN_GEN, + /*!< + Generate the signature for a given curve and value. The value needs to be retrieved via + @ref m2m_ssl_retrieve_hash. + */ + ECC_REQ_SIGN_VERIFY + /*!< + Verify a list of signatures. Each set of value/signature/key/curve information needs to be + retrieved via @ref m2m_ssl_retrieve_next_for_verifying. + */ +}tenuEccREQ; + +/*! +@struct \ + tstrEcdhReqInfo + +@brief Information relating to operations of type @ref ECC_REQ_CLIENT_ECDH, @ref ECC_REQ_GEN_KEY + and @ref ECC_REQ_SERVER_ECDH. +*/ +typedef struct{ + tstrECPoint strPubKey; + /*!< + Public key. Usage depends on type of operation. + */ + uint8_t au8Key[ECC_POINT_MAX_SIZE]; + /*!< + Pre master secret generated during operations of type @ref ECC_REQ_CLIENT_ECDH and + @ref ECC_REQ_SERVER_ECDH. + */ +}tstrEcdhReqInfo; + +/*! +@struct \ + tstrEcdsaVerifyReqInfo + +@brief Information relating to requests of type @ref ECC_REQ_SIGN_VERIFY. +*/ +typedef struct{ + uint32_t u32nSig; + /*!< + Number of sets of value/signature/key/curve information for verifying. Each set needs to be + retrieved via @ref m2m_ssl_retrieve_next_for_verifying. + */ +}tstrEcdsaVerifyReqInfo; + +/*! +@struct \ + tstrEcdsaSignReqInfo + +@brief Information relating to requests of type @ref ECC_REQ_SIGN_GEN. +*/ +typedef struct{ + uint16_t u16CurveType; + /*!< + The named curve to be used for signing, to be cast to type @ref tenuEcNamedCurve. + */ + uint16_t u16HashSz; + /*!< + The size of the value to be signed. The value needs to be retrieved via + @ref m2m_ssl_retrieve_hash. + */ +}tstrEcdsaSignReqInfo; + +/*! +@struct \ + tstrEccReqInfo + +@brief Information relating to ECC operations. + + This is used in both the request from the WINC and the response to the WINC. +*/ +typedef struct{ + uint16_t u16REQ; + /*!< + The requested ECC operation, to be cast to type @ref tenuEccREQ. + */ + uint16_t u16Status; + /*!< + The status of the operation: zero for success; non-zero for failure. + This field should be used in responses and ignored in requests. + */ + uint32_t u32UserData; + /*!< + This value is used internally. The value set in the response must match the value received + in the request. + */ + uint32_t u32SeqNo; + /*!< + This value is used internally. The value set in the response must match the value received + in the request. + */ + union{ + tstrEcdhReqInfo strEcdhREQ; + /*!< + Information relating to an operation of type @ref ECC_REQ_CLIENT_ECDH, + @ref ECC_REQ_GEN_KEY or @ref ECC_REQ_SERVER_ECDH. + */ + tstrEcdsaSignReqInfo strEcdsaSignREQ; + /*!< + Information relating to an operation of type @ref ECC_REQ_SIGN_GEN. + This field is used in requests and ignored in responses. + */ + tstrEcdsaVerifyReqInfo strEcdsaVerifyREQ; + /*!< + Information relating to an operation of type @ref ECC_REQ_SIGN_VERIFY. + This field is used in requests and ignored in responses. + */ + }; +}tstrEccReqInfo; +/**@}*/ //SSLEnums + +#endif /* __ECC_TYPES_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_flash.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_flash.h new file mode 100644 index 0000000..b279933 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_flash.h @@ -0,0 +1,188 @@ +/******************************************************************************* + WINC Flash Interface. + + File Name: + m2m_flash.h + + Summary: + WINC Flash Interface + + Description: + WINC Flash Interface + +*******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +/**@defgroup FLASHAPI Flash +*/ + +#ifndef __M2M_FLASH_H__ +#define __M2M_FLASH_H__ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +#include "nm_common.h" +#include "m2m_types.h" + +/**@defgroup FlashEnums Enumeration/Typedefs + * @ingroup FLASHAPI + * @{*/ + +/*! +@enum tenuWincFlashRegion + +@brief The regions of WINC flash available for accessing. +*/ +typedef enum +{ + /*! Access to the entire flash address space. */ + WINC_FLASH_REGION_RAW, + /*! Access to the active firmware region. */ + WINC_FLASH_REGION_FIRMWARE_ACTIVE, + /*! Access to the inactive firmware region. */ + WINC_FLASH_REGION_FIRMWARE_INACTIVE, + /*! Access to PLL table region. Erase is not supported for this region. */ + WINC_FLASH_REGION_PLL_TABLE, + /*! Access to gain table region. Erase is not supported for this region. */ + WINC_FLASH_REGION_GAIN_TABLE, + /*! Access to PLL and gain tables region. Erase is supported for this region. */ + WINC_FLASH_REGION_PLL_AND_GAIN_TABLES, + /*! Access to TLS root certificate region. */ + WINC_FLASH_REGION_ROOT_CERTS, + /*! Access to TLS local certificate region. */ + WINC_FLASH_REGION_LOCAL_CERTS, + /*! Access to connection parameters region. */ + WINC_FLASH_REGION_CONN_PARAM, + /*! Access to HTTP files region. This region is also erased/written by erase/write of firmware regions. */ + WINC_FLASH_REGION_HTTP_FILES, + /*! Number of regions. */ + WINC_FLASH_NUM_REGIONS +} tenuWincFlashRegion; + +/**@} +*/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +/** \defgroup FLASHFUNCTIONS Functions +* @ingroup FLASHAPI +*/ +/**@{*/ + +/*! +@fn \ + int8_t m2m_flash_erase_sector(tenuWincFlashRegion enuRegion, uint8_t u8StartSector, uint8_t u8NumSectors); + +@brief Erase one or more sectors within a WINC flash region. + +@param [in] enuRegion + Region of flash in which to erase. +@param [in] u8StartSector + Sector offset (within region) of first sector to erase. +@param [in] u8NumSectors + Number of sectors to erase. + +@return M2M_SUCCESS - The erase completed successfully. + M2M_ERR_INVALID_ARG - The parameters were invalid. + M2M_ERR_FAIL - The request encountered an error. + +@pre The WINC must have been initialised but must not be running. This can be done via + @ref m2m_wifi_init_hold, @ref m2m_wifi_reinit_hold or @ref m2m_wifi_download_mode. + +*/ +int8_t m2m_flash_erase_sector(tenuWincFlashRegion enuRegion, uint8_t u8StartSector, uint8_t u8NumSectors); + +/*! +@fn \ + int8_t m2m_flash_write(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size); + +@brief Write the number of bytes specified to a WINC flash location. + +@param [in] enuRegion + Region of flash in which to write. +@param [in] pvBuffer + Pointer to buffer containing the data to write. +@param [in] u32Offset + Byte offset (within region) of write location. +@param [in] u32Size + Number of bytes to write. + +@return M2M_SUCCESS - The write completed successfully. + M2M_ERR_INVALID_ARG - The parameters were invalid. + M2M_ERR_FAIL - The request encountered an error. + +@pre The WINC must have been initialised but must not be running. This can be done via + @ref m2m_wifi_init_hold, @ref m2m_wifi_reinit_hold or @ref m2m_wifi_download_mode. + +@warning The write operation does not erase the flash device first, therefore the user + must ensure the flash region has been erased first. +*/ +int8_t m2m_flash_write(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size); + +/*! +@fn \ + int8_t m2m_flash_read(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size); + +@brief Read the number of bytes specified from a WINC flash location. + +@param [in] enuRegion + Region of flash from which to read. +@param [out] pvBuffer + Pointer to buffer to populate with the data being read. +@param [in] u32Offset + Byte offset (within region) of read location. +@param [in] u32Size + Number of bytes to read. + +@return M2M_SUCCESS - The read completed successfully. + M2M_ERR_INVALID_ARG - The parameters were invalid. + M2M_ERR_FAIL - The request encountered an error. + +@pre The WINC must have been initialised but must not be running. This can be done via + @ref m2m_wifi_init_hold, @ref m2m_wifi_reinit_hold or @ref m2m_wifi_download_mode. +*/ +int8_t m2m_flash_read(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size); + +/*! +@fn \ + int8_t m2m_flash_switch_firmware(void); + +@brief Switch the active and inactive firmware images. + +@return M2M_SUCCESS - The firmware switch completed successfully. + M2M_ERR_FAIL - The request encountered an error. + +@pre The WINC must have been initialised but must not be running. This can be done via + @ref m2m_wifi_init_hold, @ref m2m_wifi_reinit_hold or @ref m2m_wifi_download_mode. + +*/ +int8_t m2m_flash_switch_firmware(void); + +/**@}*/ +#endif /* __M2M_FLASH_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_hif.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_hif.h new file mode 100644 index 0000000..4728429 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_hif.h @@ -0,0 +1,243 @@ +/******************************************************************************* + File Name: + m2m_hif.h + + Summary: + This module contains M2M host interface API definitions. + + Description: + This module contains M2M host interface API definitions. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _M2M_HIF_ +#define _M2M_HIF_ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_common.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#define M2M_HIF_MAX_PACKET_SIZE (1600 - 4) +/*!< Maximum size of the buffer could be transferred between Host and Firmware. +*/ + +#define M2M_HIF_HDR_OFFSET (sizeof(tstrHifHdr) + 4) + + +/** +* @struct tstrHifHdr +* @brief Structure to hold HIF header +*/ +typedef struct +{ + uint8_t u8Gid; /*!< Group ID */ + uint8_t u8Opcode; /*!< OP code */ + uint16_t u16Length; /*!< Payload length */ +} tstrHifHdr; + +#ifdef __cplusplus +extern "C" { +#endif + +/*! +@typedef typedef void (*tpfHifCallBack)(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr); +@brief used to point to Wi-Fi call back function depend on Arduino project or other projects. +@param [in] u8OpCode + HIF Opcode type. +@param [in] u16DataSize + HIF data length. +@param [in] u32Addr + HIF address. +@param [in] grp + HIF group type. +*/ +typedef void (*tpfHifCallBack)(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr); +/** +* @fn int8_t hif_init(void *arg); +* @brief + To initialize HIF layer. +* @param [in] arg +* Pointer to the arguments. +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ +int8_t hif_init(void *arg); +/** +* @fn int8_t hif_deinit(void *arg); +* @brief + To Deinitialize HIF layer. +* @param [in] arg +* Pointer to the arguments. +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ +int8_t hif_deinit(void *arg); +/** +* @fn int8_t hif_check_compatibility(uint16_t u16HifInfo); +* @brief +* To check the compatibility of an image with the current driver. +* @param [in] u16HifInfo +* HIF info of image to be checked. +* @return The function shall return ZERO for compatible image and a negative value otherwise. +*/ +int8_t hif_check_compatibility(uint16_t u16HifInfo); +/** +* @fn int8_t hif_enable_access(void); +* @brief +* To enable access to HIF layer, based on HIF level of Firmware. +* This function reads HIF level directly from a register written by Firmware. +* @return The function shall return ZERO for full match operation and a negative value if operation is restricted. +*/ +int8_t hif_enable_access(void); +/** +* @fn int8_t hif_check_code(uint8_t u8Gid, uint8_t u8OpCode); +* @brief +* To check that a particular hif message is supported with the current driver/firmware pair. +* @param [in] u8Gid +* Group ID. +* @param [in] u8Opcode +* Operation ID. +* @return The function shall return ZERO for support and a negative value otherwise. +*/ +int8_t hif_check_code(uint8_t u8Gid, uint8_t u8OpCode); +/** +* @fn int8_t hif_send(uint8_t u8Gid, uint8_t u8Opcode, uint8_t *pu8CtrlBuf, uint16_t u16CtrlBufSize, + uint8_t *pu8DataBuf, uint16_t u16DataSize, uint16_t u16DataOffset) +* @brief Send packet using host interface. + +* @param [in] u8Gid +* Group ID. +* @param [in] u8Opcode +* Operation ID. +* @param [in] pu8CtrlBuf +* Pointer to the Control buffer. +* @param [in] u16CtrlBufSize + Control buffer size. +* @param [in] u16DataOffset + Packet Data offset. +* @param [in] pu8DataBuf +* Packet buffer Allocated by the caller. +* @param [in] u16DataSize + Packet buffer size (including the HIF header). +* @return The function shall return ZERO for successful operation and a negative value otherwise. +*/ +int8_t hif_send(uint8_t u8Gid, uint8_t u8Opcode, uint8_t *pu8CtrlBuf, uint16_t u16CtrlBufSize, + uint8_t *pu8DataBuf, uint16_t u16DataSize, uint16_t u16DataOffset); +/** +* @fn hif_receive +* @brief Host interface interrupt service routine +* @param [in] u32Addr +* Receive start address +* @param [out] pu8Buf +* Pointer to receive buffer. Allocated by the caller +* @param [in] u16Sz +* Receive buffer size +* @param [in] isDone +* If you don't need any more packets send True otherwise send false +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ + +int8_t hif_receive(uint32_t u32Addr, uint8_t *pu8Buf, uint16_t u16Sz, uint8_t isDone); +/** +* @fn hif_register_cb +* @brief + To set Callback function for every Component. + +* @param [in] u8Grp +* Group to which the Callback function should be set. + +* @param [in] fn +* function to be set to the specified group. +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ +int8_t hif_register_cb(uint8_t u8Grp, tpfHifCallBack fn); +/** +* @fn int8_t hif_chip_sleep(void); +* @brief + To make the chip sleep. +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ +int8_t hif_chip_sleep(void); +/** +* @fn int8_t hif_chip_wake(void); +* @brief + To Wakeup the chip. +* @return + The function shall return ZERO for successful operation and a negative value otherwise. +*/ + +int8_t hif_chip_wake(void); +/*! +@fn \ + void hif_set_sleep_mode(uint8_t u8Pstype); + +@brief + Set the sleep mode of the HIF layer. + +@param [in] u8Pstype + Sleep mode. + +@return + The function SHALL return 0 for success and a negative value otherwise. +*/ + +void hif_set_sleep_mode(uint8_t u8Pstype); +/*! +@fn \ + uint8_t hif_get_sleep_mode(void); + +@brief + Get the sleep mode of the HIF layer. + +@return + The function SHALL return the sleep mode of the HIF layer. +*/ + +uint8_t hif_get_sleep_mode(void); + +/** +* @fn hif_handle_isr(void) +* @brief + Handle interrupt received from WINC3400 firmware. +* @return + The function SHALL return 0 for success and a negative value otherwise. +*/ +int8_t hif_handle_isr(void); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ota.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ota.h new file mode 100644 index 0000000..d6466d8 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ota.h @@ -0,0 +1,370 @@ +/******************************************************************************* + WINC3400 OTA Upgrade API Interface + + File Name: + m2m_ota.h + + Summary: + WINC3400 OTA Upgrade API Interface + + Description: + WINC3400 OTA Upgrade API Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +/**@defgroup OTAAPI OTA + @brief + The WINC supports OTA (Over-The-Air) updates. Using the APIs described in this module, + it is possible to request an ATWINC15x0 to update its firmware, or safely rollback to + the previous firmware version.\n There are also APIs to download files and store them in + the WINC's Flash (supported by ATWINC1510 only), which can be used for Host MCU OTA + updates or accessing information stored remotely. + @{ + @defgroup OTACALLBACKS Callbacks + @brief + Lists the different callbacks that can be used during OTA updates.\n + Callbacks of type @ref tpfOtaNotifCb and @ref tpfOtaUpdateCb should be passed + onto @ref m2m_ota_init at system initialization. Other callbacks are provided + to handle the various steps of Host File Download. + + @defgroup OTADEFINE Defines + @brief + Specifies the macros and defines used by the OTA APIs. + + @defgroup OTATYPEDEF Enumerations and Typedefs + @brief + Specifies the enums and Data Structures used by the OTA APIs. + + @defgroup OTAFUNCTIONS Functions + @brief + Lists the full set of available APIs to manage OTA updates and Host File Downloads. + @} +*/ + +#ifndef __M2M_OTA_H__ +#define __M2M_OTA_H__ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_common.h" +#include "m2m_types.h" +#include "nmdrv.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*! +@typedef void (*tpfOtaUpdateCb)(uint8_t u8OtaUpdateStatusType, uint8_t u8OtaUpdateStatus); + +@brief + A callback to get OTA status update, the callback provides the status type and its status.\n + The OTA callback provides the download status, the switch to the downloaded firmware status + and roll-back status. + +@param[in] u8OtaUpdateStatusType + Possible values are listed in @ref tenuOtaUpdateStatusType. + +@param[in] u8OtaUpdateStatus + Possible values are listed as enumerated by @ref tenuOtaUpdateStatus. + +@note + Executes other callbacks passed to the OTA module. + +@see + tenuOtaUpdateStatusType + tenuOtaUpdateStatus + */ +typedef void (*tpfOtaUpdateCb)(uint8_t u8OtaUpdateStatusType, uint8_t u8OtaUpdateStatus); +/**@}*/ // OTACALLBACKS + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! +@ingroup OTAFUNCTIONS +@fn \ + int8_t m2m_ota_init(tpfOtaUpdateCb pfOtaUpdateCb); + +@brief + Synchronous initialization function for the OTA layer by registering the update callback.\n + The notification callback is not supported at the current version. Calling this API is a + MUST for all the OTA API's. + +@param[in] pfOtaUpdateCb + OTA Update callback function. + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t m2m_ota_init(tpfOtaUpdateCb pfOtaUpdateCb); + +/*! +@ingroup OTAFUNCTIONS +@fn \ + int8_t m2m_ota_start_update(unsigned char * pcDownloadUrl); + +@brief + Request OTA start update using the download URL. The OTA module will download the OTA image, ensure integrity of the image + and update the validity of the image in the control structure. On completion, a callback of type @ref tpfOtaUpdateCb is called + (callback previously provided via @ref m2m_ota_init). Switching to the updated image additionally requires completion of + @ref m2m_ota_switch_firmware, followed by a WINC reset. + +@param[in] pcDownloadUrl + The download firmware URL, according to the application server. + +@warning + Calling this API does not guarantee OTA WINC image update, it depends on the connection with the + download server and the validity of the image.\n + Calling this API invalidates any previous valid rollback image, irrespective of the result, but when + the OTA succeeds, the current image will become the rollback image after @ref m2m_ota_switch_firmware. + +@pre + @ref m2m_ota_init is a prerequisite and must have been called before using @ref m2m_ota_start_update.\n + Switching to the newly downloaded image requires calling @ref m2m_ota_switch_firmware API. + +@sa + @ref m2m_ota_init + @ref m2m_ota_switch_firmware + @ref tpfOtaUpdateCb + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + Note that successful operation in this context means the OTA update request has reached the firmware OTA module. + It does not indicate whether or not the image update succeeded. + +@section OTAExample Example + This example shows how an OTA image update and switch is carried out. + It demonstrates use of the following OTA APIs: + - @ref m2m_ota_init + - @ref tpfOtaUpdateCb + - @ref m2m_ota_start_update + - @ref m2m_ota_switch_firmware + - @ref m2m_ota_rollback + + It also makes use of @ref m2m_wifi_check_ota_rb in order to inform OTA decisions. +@code +static void OtaUpdateCb(uint8_t u8OtaUpdateStatusType, uint8_t u8OtaUpdateStatus) +{ + int8_t s8tmp; + tstrM2mRev strtmp; + M2M_INFO("%d %d\n", u8OtaUpdateStatusType, u8OtaUpdateStatus); + switch(u8OtaUpdateStatusType) + { + case DL_STATUS: + if(u8OtaUpdateStatus == OTA_STATUS_SUCCESS) + { + M2M_INFO("OTA download succeeded\n"); + s8tmp = m2m_wifi_check_ota_rb(); + if(s8tmp == M2M_ERR_FW_VER_MISMATCH) + { + // In this case the application SHOULD update the host driver before calling + // @ref m2m_ota_switch_firmware(). Switching firmware image and resetting without updating host + // driver would lead to severely limited functionality (i.e. OTA rollback only). + } + else if(s8tmp == M2M_SUCCESS) + { + // In this case the application MAY WANT TO update the host driver before calling + // @ref m2m_ota_switch_firmware(). Switching firmware image and resetting without + // updating host driver may lead to suboptimal functionality. + } + else + { + M2M_INFO("Cannot recognize downloaded image\n"); + // In this case the application MUST NOT update the host driver if such an update would change the + // driver HIF Major field. Firmware switch @ref using m2m_ota_switch_firmware() is blocked. + break; + } + // Switch to the upgraded firmware + M2M_INFO("Now switching active partition...\n"); + s8tmp = m2m_ota_switch_firmware(); + } + break; + case SW_STATUS: + case RB_STATUS: + if(u8OtaUpdateStatus == OTA_STATUS_SUCCESS) + { + M2M_INFO("Switch/Rollback succeeded\n"); + + // Start the host SW upgrade if required, then system reset is required (Reinitialize the driver) + + M2M_INFO("Now resetting the system...\n"); + system_reset(); + } + break; + } +} + +static void wifi_event_cb(uint8_t u8WiFiEvent, void *pvMsg) +{ + // ... + case M2M_WIFI_REQ_DHCP_CONF: + { + // After successful connection, start the OTA upgrade + m2m_ota_start_update(OTA_URL); + } + break; + default: + break; + // ... +} + +int main(void) +{ + tstrWifiInitParam param; + int8_t s8Ret = M2M_SUCCESS; + bool rollback_required = FALSE; + + // System init, etc should be here... + + memset((uint8_t *)¶m, 0, sizeof(param)); + param.pfAppWifiCb = wifi_event_cb; + + // Initialize the WINC Driver + s8Ret = m2m_wifi_init(¶m); + if(s8Ret == M2M_ERR_FW_VER_MISMATCH) + { + M2M_ERR("Firmware version mismatch\n"); + s8Ret = m2m_wifi_check_ota_rb(); + if(s8Ret == M2M_SUCCESS) + { + // In this case the image in the inactive partition has compatible HIF. We will switch/rollback to it + // after initializing the OTA module. + rollback_required = TRUE; + } + } + if(M2M_SUCCESS != s8Ret) + { + M2M_ERR("Driver Init Failed <%d>\n", s8Ret); + while(1); + } + // Initialize the OTA module + m2m_ota_init(OtaUpdateCb, NULL); + if(rollback_required) + { + // We need to call either @ref m2m_ota_rollback() or @ref m2m_ota_switch_firmware() (functionally equivalent). + m2m_ota_rollback(); + } + else + { + // Connect to AP that provides connection to the OTA server + m2m_wifi_default_connect(); + } + while(1) + { + // Handle the app state machine plus the WINC event handler + while(m2m_wifi_handle_events(NULL) != M2M_SUCCESS) { + } + } +} +@endcode + */ +int8_t m2m_ota_start_update(unsigned char *pcDownloadUrl); + +/*! +@ingroup OTAFUNCTIONS +@fn \ + int8_t m2m_ota_rollback(void); + +@brief + Request OTA Roll-back to the old (inactive) WINC image, the WINC firmware will check the validity of the inactive image + and activate it if valid. On completion, a callback of type @ref tpfOtaUpdateCb is called (application must previously have + provided the callback via @ref m2m_ota_init). If the callback indicates successful activation, the newly-activated image + will start running after next system reset. + +@warning + If rollback requires a host driver update in order to maintain HIF compatibility (HIF + major value change), then it is recommended to update the host driver prior to calling this API.\n + In the event of system reset with incompatible driver/firmware, compatibility can be + recovered by calling @ref m2m_ota_rollback or @ref m2m_ota_switch_firmware. See @ref OTAExample. + +@sa + m2m_ota_init + m2m_ota_start_update + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t m2m_ota_rollback(void); + +/*! +@ingroup OTAFUNCTIONS +@fn \ + int8_t m2m_ota_abort(void); + +@brief + Request the WINC to abort an OTA in progress.\n + If no download is in progress, the API will respond with failure. + +@sa + m2m_ota_init + m2m_ota_start_update + +@return + The function returns @ref M2M_SUCCESS for a successful operation and a negative value otherwise. + */ +int8_t m2m_ota_abort(void); + +/*! +@ingroup OTAFUNCTIONS +@fn \ + int8_t m2m_ota_switch_firmware(void); + +@brief + Request switch to the updated WINC image. The WINC firmware will check the validity of the + inactive image and activate it if valid. On completion, a callback of type @ref tpfOtaUpdateCb + is called (application must previously have provided the callback via @ref m2m_ota_init). + If the callback indicates successful activation, the newly-activated image will start running + after next system reset. + +@warning + If switch requires a host driver update in order to maintain HIF compatibility (HIF + major value change), then it is recommended to update the host driver prior to calling this API.\n + In the event of system reset with incompatible driver/firmware, compatibility can be + recovered by calling @ref m2m_ota_rollback or @ref m2m_ota_switch_firmware. See @ref OTAExample. + +@sa + m2m_ota_init + m2m_ota_start_update + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t m2m_ota_switch_firmware(void); + + +#ifdef __cplusplus +} +#endif +#endif /* __M2M_OTA_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_periph.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_periph.h new file mode 100644 index 0000000..27d1051 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_periph.h @@ -0,0 +1,307 @@ +/******************************************************************************* + WINC3400 Peripherals Application Interface. + + File Name: + m2m_periph.h + + Summary: + WINC3400 Peripherals Application Interface + + Description: + WINC3400 Peripherals Application Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _M2M_PERIPH_H_ +#define _M2M_PERIPH_H_ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_common.h" +#include "m2m_types.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*! +@struct \ + tstrPerphInitParam + +@brief + Peripheral module initialization parameters. +*/ +typedef struct { + void *arg; +} tstrPerphInitParam; + +/*! +@enum \ + tenuGpioNum + +@brief + A list of GPIO numbers configurable through the m2m_periph module. +*/ +typedef enum { + M2M_PERIPH_GPIO3, + M2M_PERIPH_GPIO4, + M2M_PERIPH_GPIO15, /*!< GPIO15 pad */ + M2M_PERIPH_GPIO16, /*!< GPIO16 pad */ + M2M_PERIPH_GPIO18, /*!< GPIO18 pad */ + M2M_PERIPH_GPIO_MAX +} tenuGpioNum; + +/*! +@enum \ + tenuI2cMasterSclMuxOpt + +@brief + Allowed pin multiplexing options for I2C master SCL signal. +*/ +typedef enum { + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_HOST_WAKEUP, /*!< I2C master SCL is available on HOST_WAKEUP. */ + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_SD_DAT3, /*!< I2C master SCL is available on SD_DAT3 (GPIO 7). */ + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_GPIO13, /*!< I2C master SCL is available on GPIO 13. */ + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_GPIO4, /*!< I2C master SCL is available on GPIO 4.*/ + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_I2C_SCL, /*!< I2C master SCL is available on I2C slave SCL. */ + M2M_PERIPH_I2C_MASTER_SCL_MUX_OPT_NUM +} tenuI2cMasterSclMuxOpt; + +/*! +@enum \ + tenuI2cMasterSdaMuxOpt + +@brief + Allowed pin multiplexing options for I2C master SDA signal. +*/ +typedef enum { + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_RTC_CLK, /*!< I2C master SDA is available on RTC_CLK. */ + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_SD_CLK, /*!< I2C master SDA is available on SD_CLK (GPIO 8). */ + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_GPIO14, /*!< I2C master SDA is available on GPIO 14. */ + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_GPIO6, /*!< I2C master SDA is available on GPIO 6.*/ + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_I2C_SDA, /*!< I2C master SDA is available on I2C slave SDA. */ + M2M_PERIPH_I2C_MASTER_SDA_MUX_OPT_NUM +} tenuI2cMasterSdaMuxOpt; + +/*! +@struct \ + tstrI2cMasterInitParam + +@brief + I2C master configuration parameters. +@sa + tenuI2cMasterSclMuxOpt + tenuI2cMasterSdaMuxOpt +*/ +typedef struct { + uint8_t enuSclMuxOpt; /*!< SCL multiplexing option. Allowed value are defined in tenuI2cMasterSclMuxOpt */ + uint8_t enuSdaMuxOpt; /*!< SDA multiplexing option. Allowed value are defined in tenuI2cMasterSdaMuxOpt */ + uint8_t u8ClkSpeedKHz; /*!< I2C master clock speed in KHz. */ +} tstrI2cMasterInitParam; + +/*! +@enum \ + tenuI2cMasterFlags + +@brief + Bitwise-ORed flags for use in m2m_periph_i2c_master_write and m2m_periph_i2c_master_read +@sa + m2m_periph_i2c_master_write + m2m_periph_i2c_master_read +*/ +typedef enum { + I2C_MASTER_NO_FLAGS = 0x00, + /*!< No flags. */ + I2C_MASTER_NO_STOP = 0x01, + /*!< No stop bit after this transaction. Useful for scattered buffer read/write operations. */ + I2C_MASTER_NO_START = 0x02, + /*!< No start bit at the beginning of this transaction. Useful for scattered buffer read/write operations.*/ +} tenuI2cMasterFlags; + +/*! +@enum \ + tenuPullupMask + +@brief + Bitwise-ORed flags for use in m2m_perph_pullup_ctrl. +@sa + m2m_periph_pullup_ctrl + +*/ +typedef enum { + M2M_PERIPH_PULLUP_DIS_HOST_WAKEUP = (1ul << 0), + M2M_PERIPH_PULLUP_DIS_RTC_CLK = (1ul << 1), + M2M_PERIPH_PULLUP_DIS_IRQN = (1ul << 2), + M2M_PERIPH_PULLUP_DIS_GPIO_3 = (1ul << 3), + M2M_PERIPH_PULLUP_DIS_GPIO_4 = (1ul << 4), + M2M_PERIPH_PULLUP_DIS_GPIO_5 = (1ul << 5), + M2M_PERIPH_PULLUP_DIS_GPIO_6 = (1ul << 6), + M2M_PERIPH_PULLUP_DIS_SD_CLK = (1ul << 7), + M2M_PERIPH_PULLUP_DIS_SD_CMD_SPI_SCK = (1ul << 8), + M2M_PERIPH_PULLUP_DIS_SD_DAT0_SPI_TXD = (1ul << 9), + M2M_PERIPH_PULLUP_DIS_SD_DAT1_SPI_SSN = (1ul << 10), + M2M_PERIPH_PULLUP_DIS_SD_DAT1_SPI_RXD = (1ul << 11), + M2M_PERIPH_PULLUP_DIS_SD_DAT3 = (1ul << 12), +} tenuPullupEnable1Mask; +typedef enum { + M2M_PERIPH_PULLUP_DIS_GPIO_13 = (1ul << 0), + M2M_PERIPH_PULLUP_DIS_GPIO_14 = (1ul << 1), + M2M_PERIPH_PULLUP_DIS_GPIO_15 = (1ul << 2), + M2M_PERIPH_PULLUP_DIS_GPIO_16 = (1ul << 3), + M2M_PERIPH_PULLUP_DIS_GPIO_17 = (1ul << 4), + M2M_PERIPH_PULLUP_DIS_GPIO_18 = (1ul << 5), + M2M_PERIPH_PULLUP_DIS_GPIO_19 = (1ul << 6), + M2M_PERIPH_PULLUP_DIS_GPIO_20 = (1ul << 7), + M2M_PERIPH_PULLUP_DIS_GPIO_22 = (1ul << 9), + M2M_PERIPH_PULLUP_DIS_GPIO_23 = (1ul << 10), + M2M_PERIPH_PULLUP_DIS_GPIO_38 = (1ul << 25), + M2M_PERIPH_PULLUP_DIS_GPIO_39 = (1ul << 26), + M2M_PERIPH_PULLUP_DIS_GPIO_40 = (1ul << 27), + M2M_PERIPH_PULLUP_DIS_GPIO_42 = (1ul << 29), +} tenuPullupEnable2Mask; +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! +@fn \ + int8_t m2m_periph_init(tstrPerphInitParam * param); + +@brief + Initialize the WINC3400 peripheral driver module. + +@param [in] param + Peripheral module initialization structure. See members of tstrPerphInitParam. + +@return + The function SHALL return 0 for success and a negative value otherwise. + +@sa + tstrPerphInitParam +*/ +int8_t m2m_periph_init(tstrPerphInitParam *param); + +/*! +@fn \ + int8_t m2m_periph_gpio_set_dir(uint8_t u8GpioNum, uint8_t u8GpioDir); + +@brief + Configure a specific WINC3400 pad as a GPIO and sets its direction (input or output). + +@param [in] u8GpioNum + GPIO number. Allowed values are defined in tenuGpioNum. + +@param [in] u8GpioDir + GPIO direction: Zero = input. Non-zero = output. + +@return + The function SHALL return 0 for success and a negative value otherwise. + +@sa + tenuGpioNum +*/ +int8_t m2m_periph_gpio_set_dir(uint8_t u8GpioNum, uint8_t u8GpioDir); + +/*! +@fn \ + int8_t m2m_periph_gpio_set_val(uint8_t u8GpioNum, uint8_t u8GpioVal); + +@brief + Set an WINC3400 GPIO output level high or low. + +@param [in] u8GpioNum + GPIO number. Allowed values are defined in tenuGpioNum. + +@param [in] u8GpioVal + GPIO output value. Zero = low, non-zero = high. + +@return + The function SHALL return 0 for success and a negative value otherwise. + +@sa + tenuGpioNum +*/ +int8_t m2m_periph_gpio_set_val(uint8_t u8GpioNum, uint8_t u8GpioVal); + +/*! +@fn \ + int8_t m2m_periph_gpio_get_val(uint8_t u8GpioNum, uint8_t * pu8GpioVal); + +@brief + Read an WINC3400 GPIO input level. + +@param [in] u8GpioNum + GPIO number. Allowed values are defined in tenuGpioNum. + +@param [out] pu8GpioVal + GPIO input value. Zero = low, non-zero = high. + +@return + The function SHALL return 0 for success and a negative value otherwise. + +@sa + tenuGpioNum +*/ +int8_t m2m_periph_gpio_get_val(uint8_t u8GpioNum, uint8_t *pu8GpioVal); + +/*! +@fn \ + int8_t m2m_periph_pullup_ctrl(uint32_t pinmask, uint8_t enable); + +@brief + Control the programmable pull-up resistor on the chip pads . + + +@param [in] pinmask + Write operation bitwise-ORed mask for which pads to control. Allowed values are defined in tenuPullupMask. + +@param [in] enable + Set to 0 to disable pull-up resistor. Non-zero will enable the pull-up. + +@return + The function SHALL return 0 for success and a negative value otherwise. + +@sa + tenuPullupMask +*/ +int8_t m2m_periph_pullup_ctrl(uint32_t pinmask, uint8_t enable); + +#ifdef __cplusplus +} +#endif + +#endif /* _M2M_PERIPH_H_ */ \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ssl.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ssl.h new file mode 100644 index 0000000..df22ef7 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_ssl.h @@ -0,0 +1,255 @@ +/******************************************************************************* + File Name: + m2m_ssl.h + + Summary: + WINC SSL Interface. + + Description: + WINC SSL Interface. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +//DOM-IGNORE-END + +/** @defgroup SSLAPI SSL + @brief + Provides a description of the SSL Layer. + @{ + @defgroup SSLCallbacks Callbacks + @brief + Provides detail on the available callbacks for the SSL Layer. + + @defgroup SSLEnums Enumerations and Typedefs + @brief + Specifies the enums and Data Structures used by the SSL APIs. + + @defgroup SSLFUNCTIONS Functions + @brief + Provides detail on the available APIs for the SSL Layer. + @} +*/ + +#ifndef __M2M_SSL_H__ +#define __M2M_SSL_H__ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_common.h" +#include "m2m_types.h" +#include "nmdrv.h" +#include "ecc_types.h" +#include "socket.h" + +/*! +@ingroup SSLCallbacks +@typedef void (*tpfAppSSLCb)(uint8_t u8MsgType, void* pvMsg); +@brief A callback to get SSL notifications. +@param[in] u8MsgType + The type of the message received. +@param[in] pvMsg + A structure to provide notification payload. +*/ +typedef void (*tpfAppSSLCb)(uint8_t u8MsgType, void *pvMsg); + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_init(tpfAppSSLCb pfAppSSLCb); +@brief Initializes the SSL layer. +@param[in] pfAppSSLCb + Application SSL callback function. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_init(tpfAppSSLCb pfAppSSLCb); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_handshake_rsp(tstrEccReqInfo* strECCResp, uint8_t* pu8RspDataBuff, uint16_t u16RspDataSz); +@brief Sends ECC responses to the WINC. +@param[in] strECCResp + ECC Response struct. +@param[in] pu8RspDataBuff + Pointer of the response data to be sent. +@param[in] u16RspDataSz + Response data size. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_handshake_rsp(tstrEccReqInfo *strECCResp, uint8_t *pu8RspDataBuff, uint16_t u16RspDataSz); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_send_certs_to_winc(uint8_t* pu8Buffer, uint32_t u32BufferSz); +@brief Sends certificates to the WINC. +@param[in] pu8Buffer + Pointer to the certificates. The buffer format must match the format of @ref tstrTlsSrvSecHdr. +@param[in] u32BufferSz + Size of the certificates. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_send_certs_to_winc(uint8_t *pu8Buffer, uint32_t u32BufferSz); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_retrieve_next_for_verifying(tenuEcNamedCurve *penuCurve, uint8_t *pu8Value, uint16_t *pu16ValueSz, uint8_t *pu8Sig, uint16_t *pu16SigSz, tstrECPoint *pstrKey); +@brief Retrieve the next set of information from the WINC for ECDSA verification. +@param[out] penuCurve + The named curve. +@param[out] pu8Value + Value retrieved for verification. This is the digest of the message, truncated/prepended to the appropriate size. +@param[inout] pu16ValueSz + in: Size of value buffer provided by caller. + out: Size of value retrieved (provided for convenience; the value size is in fact determined by the curve). +@param[out] pu8Sig + Signature retrieved for verification. +@param[inout] pu16SigSz + in: Size of signature buffer provided by caller. + out: Size of signature retrieved (provided for convenience; the signature size is in fact determined by the curve). +@param[out] pstrKey + Public key retrieved for verification. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + verification information is ready via @ref ECC_REQ_SIGN_VERIFY. + +@warning If this function returns @ref M2M_ERR_FAIL, then any remaining verification info from + the WINC is lost. +*/ +int8_t m2m_ssl_retrieve_next_for_verifying(tenuEcNamedCurve *penuCurve, uint8_t *pu8Value, uint16_t *pu16ValueSz, uint8_t *pu8Sig, uint16_t *pu16SigSz, tstrECPoint *pstrKey); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_retrieve_cert(uint16_t *pu16Curve, uint8_t *pu8Value, uint8_t *pu8Sig, tstrECPoint *pstrKey); +@brief Retrieve the next set of information from the WINC for ECDSA verification. +@param[out] pu16Curve + The named curve, to be cast to type @ref tenuEcNamedCurve. +@param[out] pu8Value + Value retrieved for verification. This is the digest of the message, truncated/prepended to the appropriate size. + The size of the value is equal to the field size of the curve, hence is determined by pu16Curve. +@param[out] pu8Sig + Signature retrieved for verification. + The size of the signature is equal to twice the field size of the curve, hence is determined by pu16Curve. +@param[out] pstrKey + Public key retrieved for verification. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + verification information is ready via @ref ECC_REQ_SIGN_VERIFY. + +@warning If this function returns @ref M2M_ERR_FAIL, then any remaining verification info from + the WINC is lost. + +@warning This API has been deprecated and is kept for legacy purposes only. It is recommended + that @ref m2m_ssl_retrieve_next_for_verifying is used instead. +*/ +int8_t m2m_ssl_retrieve_cert(uint16_t *pu16Curve, uint8_t *pu8Value, uint8_t *pu8Sig, tstrECPoint *pstrKey); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_retrieve_hash(uint8_t *pu8Value, uint16_t u16ValueSz) +@brief Retrieve the value from the WINC for ECDSA signing. +@param[out] pu8Value + Value retrieved for signing. This is the digest of the message, truncated/prepended to the appropriate size. +@param[in] u16ValueSz + Size of value to be retrieved. (The application should obtain this information, + along with the curve, from the associated @ref ECC_REQ_SIGN_GEN notification.) +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + signing information is ready via @ref ECC_REQ_SIGN_GEN. + +@warning If this function returns @ref M2M_ERR_FAIL, then the value for signing is lost. +*/ +int8_t m2m_ssl_retrieve_hash(uint8_t *pu8Value, uint16_t u16ValueSz); + +/*! +@ingroup SSLFUNCTIONS +@fn void m2m_ssl_stop_retrieving(void); +@brief Allow SSL driver to tidy up when the application chooses not to retrieve all available + information. + +@return None. + +@warning The application must call this function if it has been notified (via + @ref ECC_REQ_SIGN_GEN or @ref ECC_REQ_SIGN_VERIFY) that information is available for + retrieving from the WINC, but chooses not to retrieve it all. + The application must not call this function if it has retrieved all the available + information, or if a retrieve function returned @ref M2M_ERR_FAIL indicating that any + remaining information has been lost. + +@see m2m_ssl_retrieve_next_for_verifying\n + m2m_ssl_retrieve_cert\n + m2m_ssl_retrieve_hash +*/ +void m2m_ssl_stop_retrieving(void); + +/*! +@ingroup SSLFUNCTIONS +@fn NMI_API void m2m_ssl_stop_processing_certs(void); +@brief Allow SSL driver to tidy up in case application does not read all available certificates. +@return None. + +@warning This API has been deprecated and is kept for legacy purposes only. It is recommended + that @ref m2m_ssl_stop_retrieving is used instead. +*/ +void m2m_ssl_stop_processing_certs(void); + +/*! +@ingroup SSLFUNCTIONS +@fn void m2m_ssl_ecc_process_done(void); +@brief Allow SSL driver to tidy up after application has finished processing ECC message. + +@return None. + +@warning The application should call this function after receiving an SSL callback with message + type @ref M2M_SSL_REQ_ECC, after retrieving any related information, and before + calling @ref m2m_ssl_handshake_rsp. +*/ +void m2m_ssl_ecc_process_done(void); + +/*! +@ingroup SSLFUNCTIONS +@fn int8_t m2m_ssl_set_active_ciphersuites(uint32_t u32SslCsBMP); +@brief Sets the active ciphersuites. +@details Override the default Active SSL ciphers in the SSL module with a certain combination selected by + the caller in the form of a bitmap containing the required ciphers to be on.\n + There is no need to call this function if the application will not change the default ciphersuites. +@param[in] u32SslCsBMP + Bitmap containing the desired ciphers to be enabled for the SSL module. The ciphersuites are defined in + @ref SSLCipherSuiteID. + The default ciphersuites are all ciphersuites supported by the firmware with the exception of ECC ciphersuites. + The caller can override the default with any desired combination. + If u32SslCsBMP does not contain any ciphersuites supported by firmware, then the current active list will not + change. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_set_active_ciphersuites(uint32_t u32SslCsBMP); + +#endif /* __M2M_SSL_H__ */ \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/m2m_types.h b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_types.h new file mode 100644 index 0000000..8b9015e --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/m2m_types.h @@ -0,0 +1,2745 @@ +/******************************************************************************* + File Name: + m2m_types.h + + Summary: + WINC3400 Application Interface Internal Types + + Description: + WINC3400 Application Interface Internal Types + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef __M2M_WIFI_TYPES_H__ +#define __M2M_WIFI_TYPES_H__ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_common.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +/**@defgroup VERSION Version + */ +/**@defgroup VERSIONDEF Defines + * @ingroup VERSION + * @{ + */ + +/* + Layout of HIF_LEVEL fields + | x x x x x x | x x x x x x x x | + | 13:8 | 7:0 | + | HIF_MAJOR | HIF_MINOR | + | HIF_LEVEL | + + HIF compatibility (checked by driver after wifi boot). + + Check Firmware HIF_MAJOR + |___ + | Does not match Driver - Recommend either: + | > checking compatibility of Cortus image stored in inactive partition + | (m2m_wifi_check_ota_rb()) then swapping to it using OTA rollback or switch. + | > updating Host with out of band method. + |___ + Matches Driver - All APIs can be attempted. + | - Cortus image can be updated (OTA download) + | - New Host image can be retrieved (socket recv) + | + Check Firmware HIF_MINOR + |___ + | Less than Driver - Driver may refuse to execute some APIs (API would return M2M_ERR_SEND). + | - Recommend updating Cortus image using OTA download to use newer Firmware. + |___ + | Equal to Driver - Driver supports all APIs. + |___ + Greater than Driver - Driver supports all APIs. + - Recommend reviewing potential benefit of updating Host to use newer Driver. + + When an OTA update involving HIF_MAJOR change is required, the following order is recommended: + 1. m2m_ota_start_update() to store new Cortus image in inactive partition. + 2. Socket recv() to retrieve new Host image (including new WINC Driver). + 3. Application code to make Host image available in host flash. + 4. m2m_ota_switch_firmware() to switch active/inactive partition (will take effect after system_reset()). + 5. system_reset() to restart with new WINC Driver / Firmware. + Note that in the event of (unintentional) system reset after step (3), the remaining steps (4) and (5) should still be + run after the reset. +*/ +/* Selection of HIF_INFO +*/ +#define M2M_HIF_INFO_SHIFT (0) +#define M2M_HIF_INFO_MASK (0xffff) +/* Subdivision of HIF_INFO +*/ +#define M2M_HIF_BLOCK_SHIFT (14) +#define M2M_HIF_BLOCK_MASK (0x3) +#define M2M_HIF_LEVEL_SHIFT (0) +#define M2M_HIF_LEVEL_MASK (0x3fff) +/* Subdivision of HIF_LEVEL +*/ +#define M2M_HIF_MAJOR_SHIFT (8) +#define M2M_HIF_MAJOR_MASK (0x3f) +#define M2M_HIF_MINOR_SHIFT (0) +#define M2M_HIF_MINOR_MASK (0xff) + +#define M2M_GET_HIF_INFO(hif_ver) ((uint16_t)(((hif_ver) >> M2M_HIF_INFO_SHIFT) & M2M_HIF_INFO_MASK)) +#define M2M_GET_HIF_BLOCK(hif_info) ((uint8_t)(((hif_info) >> M2M_HIF_BLOCK_SHIFT) & M2M_HIF_BLOCK_MASK)) +#define M2M_GET_HIF_LEVEL(hif_info) ((uint16_t)(((hif_info) >> M2M_HIF_LEVEL_SHIFT) & M2M_HIF_LEVEL_MASK)) +#define M2M_GET_HIF_MAJOR(hif_info) ((uint8_t)(((hif_info) >> M2M_HIF_MAJOR_SHIFT) & M2M_HIF_MAJOR_MASK)) +#define M2M_GET_HIF_MINOR(hif_info) ((uint8_t)(((hif_info) >> M2M_HIF_MINOR_SHIFT) & M2M_HIF_MINOR_MASK)) + +#define M2M_MAKE_HIF_INFO(hif_level) ( \ + (((uint16_t)(hif_level) & M2M_HIF_LEVEL_MASK) << M2M_HIF_LEVEL_SHIFT) | \ + (((uint16_t)M2M_HIF_BLOCK_VALUE & M2M_HIF_BLOCK_MASK) << M2M_HIF_BLOCK_SHIFT) ) + +/*======*======*======*======* + HIF LEVEL + *======*======*======*======*/ + +#define M2M_HIF_BLOCK_VALUE (2) +/*!< Drv/Fw blocking compatibility check. + */ +#define M2M_HIF_MAJOR_VALUE (1) +/*!< Drv/Fw major compatibility check. +*/ +#define M2M_HIF_MINOR_VALUE (5) +/*!< Drv/Fw minor compatibility check. +*/ + +#define M2M_HIF_LEVEL ( \ + ((M2M_HIF_MAJOR_VALUE & M2M_HIF_MAJOR_MASK) << M2M_HIF_MAJOR_SHIFT) | \ + ((M2M_HIF_MINOR_VALUE & M2M_HIF_MINOR_MASK) << M2M_HIF_MINOR_SHIFT) \ + ) +/*!< HIF Level (Major/Minor) for Drv/Fw compatibility. +*/ + +/*======*======*======*======* + DRIVER VERSION NO INFO + *======*======*======*======*/ + +#define M2M_DRIVER_VERSION_MAJOR_NO (1) +/*!< Driver Major release version number. +*/ +#define M2M_DRIVER_VERSION_MINOR_NO (2) +/*!< Driver Minor release version number. +*/ +#define M2M_DRIVER_VERSION_PATCH_NO (0) +/*!< Driver patch release version number. +*/ + +/**@}*/ // VERSIONDEF + +/**@addtogroup WlanDefines + * @ingroup m2m_wifi + */ +/**@{*/ + +#define M2M_BUFFER_MAX_SIZE (1600UL - 4) +/*!< Maximum size for the shared packet buffer. + */ + +#define M2M_MAC_ADDRES_LEN 6 +/*!< The size of the 802 MAC address. + */ + +#define M2M_ETHERNET_HDR_OFFSET 34 +/*!< The offset of the Ethernet header within the WLAN Tx Buffer. + */ + + +#define M2M_ETHERNET_HDR_LEN 14 +/*!< Length of the Ethernet header in bytes. +*/ + + +#define M2M_MAX_SSID_LEN 33 +/*!< 1 more than the max SSID length. + This matches the size of SSID buffers (max SSID length + 1-byte length field). + */ + + +#define M2M_MAX_PSK_LEN 65 +/*!< 1 more than the WPA PSK length (in ASCII format). + This matches the size of the WPA PSK/Passphrase buffer (max ASCII contents + 1-byte length field). + Alternatively it matches the WPA PSK length (in ASCII format) + 1 byte NULL termination. + */ + +#define M2M_MIN_PSK_LEN 9 +/*!< 1 more than the minimum WPA PSK Passphrase length. + It matches the minimum WPA PSK Passphrase length + 1 byte NULL termination. + */ + +#define M2M_DEVICE_NAME_MAX 48 +/*!< Maximum Size for the device name including the NULL termination. + */ + +#define M2M_NTP_MAX_SERVER_NAME_LENGTH 32 +/*!< Maximum NTP server name length +*/ + +#define M2M_LISTEN_INTERVAL 1 +/*!< The STA uses the Listen Interval parameter to indicate to the AP how + many beacon intervals it shall sleep before it retrieves the queued frames + from the AP. +*/ + +#define MAX_HIDDEN_SITES 4 +/*!< + max number of hidden SSID supported by scan request +*/ + +#define M2M_CUST_IE_LEN_MAX 252 +/*!< The maximum size of IE (Information Element). +*/ + +#define M2M_CRED_STORE_FLAG 0x01 +/*!< Flag used in @ref tstrM2mConnCredHdr to indicate that Wi-Fi connection + credentials should be stored in WINC flash. +*/ +#define M2M_CRED_ENCRYPT_FLAG 0x02 +/*!< Flag used in @ref tstrM2mConnCredHdr to indicate that Wi-Fi connection + credentials should be encrypted when stored in WINC flash. +*/ +#define M2M_CRED_IS_STORED_FLAG 0x10 +/*!< Flag used in @ref tstrM2mConnCredHdr to indicate that Wi-Fi connection + credentials are stored in WINC flash. May only be set by WINC firmware. +*/ +#define M2M_CRED_IS_ENCRYPTED_FLAG 0x20 +/*!< Flag used in @ref tstrM2mConnCredHdr to indicate that Wi-Fi connection + credentials are encrypted in WINC flash. May only be set by WINC firmware. +*/ + +#define M2M_WIFI_CONN_BSSID_FLAG 0x01 +/*!< Flag used in @ref tstrM2mConnCredCmn to indicate that Wi-Fi connection + must be restricted to an AP with a certain BSSID. +*/ + +#define M2M_AUTH_1X_USER_LEN_MAX 100 +/*!< The maximum length (in ASCII characters) of domain name + username (including '@' or '\') + for authentication with Enterprise methods. +*/ +#define M2M_AUTH_1X_PASSWORD_LEN_MAX 256 +/*!< The maximum length (in ASCII characters) of password for authentication with Enterprise MSCHAPv2 methods. +*/ +#define M2M_AUTH_1X_PRIVATEKEY_LEN_MAX 256 +/*!< The maximum length (in bytes) of private key modulus for authentication with Enterprise TLS methods. + Private key exponent must be the same length as modulus, pre-padded with 0s if necessary. +*/ +#define M2M_AUTH_1X_CERT_LEN_MAX 1584 +/*!< The maximum length (in bytes) of certificate for authentication with Enterprise TLS methods. +*/ + +#define M2M_802_1X_UNENCRYPTED_USERNAME_FLAG 0x80 +/*!< Flag to indicate that the 802.1x user-name should be sent (unencrypted) in the initial EAP + identity response. Intended for use with EAP-TLS only. +*/ +#define M2M_802_1X_PREPEND_DOMAIN_FLAG 0x40 +/*!< Flag to indicate that the 802.1x domain name should be prepended to the user-name: + "Domain\Username". If the flag is not set then domain name is appended to the user-name: + "Username@Domain". (Note that the '@' or '\' must be included in the domain name.) +*/ +#define M2M_802_1X_MSCHAP2_FLAG 0x01 +/*!< Flag to indicate 802.1x MsChapV2 credentials: domain/user-name/password. +*/ +#define M2M_802_1X_TLS_FLAG 0x02 +/*!< Flag to indicate 802.1x TLS credentials: domain/user-name/private-key/certificate. +*/ + +#define M2M_802_1X_TLS_CLIENT_CERTIFICATE 1 +/*!< Info type used in @ref tstrM2mWifiAuthInfoHdr to indicate Enterprise TLS client certificate. +*/ +#define PSK_CALC_LEN 40 +/*!< PSK is 32 bytes generated either: + - from 64 ASCII characters + - by SHA1 operations on up to 63 ASCII characters + 40 byte array is required during SHA1 operations, so we define PSK_CALC_LEN as 40. +*/ + +/********************* + * + * WIFI GROUP requests + */ +#define M2M_CONFIG_CMD_BASE 1 +/*!< The base value of all the Host configuration commands opcodes. +*/ +#define M2M_STA_CMD_BASE 40 +/*!< The base value of all the Station mode host commands opcodes. +*/ +#define M2M_AP_CMD_BASE 70 +/*!< The base value of all the Access Point mode host commands opcodes. +*/ +/**@cond P2P_DOC + */ +#define M2M_P2P_CMD_BASE 90 +/*!< The base value of all the P2P mode host commands opcodes. +*/ +/**@endcond*/ //P2P_DOC +#define M2M_SERVER_CMD_BASE 100 +/*!< The base value of all the Power Save mode host commands codes. +*/ +#define M2M_GEN_CMD_BASE 105 +/*!< The base value of additional host wifi command opcodes. + * Usage restrictions (eg STA mode only) should always be made clear at the API layer in any case. +*/ +/********************** + * OTA GROUP requests + */ +#define M2M_OTA_CMD_BASE 100 +/*!< The base value of all the OTA mode host commands opcodes. + * The OTA messages have their own group so op codes can extended from 1 to M2M_MAX_GRP_NUM_REQ. +*/ + +#define M2M_MAX_GRP_NUM_REQ (127) +/*!< max number of request in one group equal to 127 as the last bit reserved for config or data pkt +*/ + +#define WEP_40_KEY_SIZE ((uint8_t)5) +/*!< The size in bytes of a 40-bit wep key. +*/ +#define WEP_104_KEY_SIZE ((uint8_t)13) +/*!< The size in bytes of a 104-bit wep key. +*/ + +#define WEP_40_KEY_STRING_SIZE ((uint8_t)10) +/*!< The string length of a 40-bit wep key. +*/ +#define WEP_104_KEY_STRING_SIZE ((uint8_t)26) +/*!< The string length of a 104-bit wep key. +*/ + +#define WEP_KEY_MAX_INDEX ((uint8_t)4) +/*!< WEP key index is in the range 1 to 4 inclusive. (This is decremented to + * result in an index in the range 0 to 3 on air.) +*/ +#define M2M_SCAN_DEFAULT_NUM_SLOTS (2) +/*!< The default number of scan slots used by the WINC board. +*/ +#define M2M_SCAN_DEFAULT_SLOT_TIME (20) +/*!< The active scan slot default duration in ms. +*/ +#define M2M_SCAN_DEFAULT_PASSIVE_SLOT_TIME (300) +/*!< The passive scan slot default duration in ms. +*/ +#define M2M_SCAN_DEFAULT_NUM_PROBE (2) +/*!< The default number of probes per slot. +*/ +#define M2M_FASTCONNECT_DEFAULT_RSSI_THRESH (-45) +/*!< The default threshold RSSI for fast reconnection to an AP. +*/ +#define M2M_SCAN_FAIL ((uint8_t)1) +/*!< Indicates the WINC board has failed to perform the scan operation. +*/ +#define M2M_JOIN_FAIL ((uint8_t)2) +/*!< Indicates the WINC board has failed to join the BSS. +*/ +#define M2M_AUTH_FAIL ((uint8_t)3) +/*!< Indicates the WINC board has failed to authenticate with the AP. +*/ +#define M2M_ASSOC_FAIL ((uint8_t)4) +/*!< Indicates the WINC board has failed to associate with the AP. +*/ + +#define M2M_SCAN_ERR_WIFI ((int8_t)-2) +/*!< Currently not used. +*/ +#define M2M_SCAN_ERR_IP ((int8_t)-3) +/*!< Currently not used. +*/ +#define M2M_SCAN_ERR_AP ((int8_t)-4) +/*!< Currently not used. +*/ +#define M2M_SCAN_ERR_P2P ((int8_t)-5) +/*!< Currently not used. +*/ +#define M2M_SCAN_ERR_WPS ((int8_t)-6) +/*!< Currently not used. +*/ + +/*======*======*======*======* + MONITORING MODE DEFINITIONS + *======*======*======*======*/ + +#define M2M_WIFI_FRAME_TYPE_ANY 0xFF +/*!< Receive any frame type when configured as Monitor Mode. +*/ +#define M2M_WIFI_FRAME_SUB_TYPE_ANY 0xFF +/*!< Receive frames with any sub type when configured as Monitor Mode. +*/ + +/*======*======*======*======* + TLS DEFINITIONS + *======*======*======*======*/ +#define TLS_FILE_NAME_MAX 48 +/*!< Maximum length for each TLS certificate file name. +*/ +#define TLS_SRV_SEC_MAX_FILES 8 +/*!< Maximum number of certificates allowed in TLS_SRV section. +*/ +#define TLS_SRV_SEC_START_PATTERN_LEN 8 +/*!< Length of certificate struct start pattern. +*/ + +/**@}*/ // WLANDefines + +/**@addtogroup OTADEFINE + * @{ + */ + +/*======*======*======*======* + OTA DEFINITIONS + *======*======*======*======*/ + +#define OTA_STATUS_VALID (0x12526285) +/*!< + Magic value in the control structure for a valid image after ROLLBACK. +*/ +#define OTA_STATUS_INVALID (0x23987718) +/*!< + Magic value in the control structure for a invalid image after ROLLBACK. +*/ +#define OTA_MAGIC_VALUE (0x1ABCDEF9) +/*!< + Magic value set at the beginning of the OTA image header. +*/ +#define OTA_SHA256_DIGEST_SIZE (32) +/*!< + SHA256 digest size in the OTA image. + The SHA256 digest is set at the beginning of image before the OTA header. +*/ +/**@}*/ // OTADEFINE + +/** +* @addtogroup WlanEnums +*/ +/**@{*/ + +/*! +@enum \ + tenuM2mReqGroup + +@brief +*/ +typedef enum { + M2M_REQ_GROUP_MAIN = 0, + M2M_REQ_GROUP_WIFI, + M2M_REQ_GROUP_IP, + M2M_REQ_GROUP_HIF, + M2M_REQ_GROUP_OTA, + M2M_REQ_GROUP_SSL, + M2M_REQ_GROUP_SIGMA, + M2M_REQ_GROUP_INTERNAL, +} tenuM2mReqGroup; + +/*! +@enum \ + tenuM2mReqpkt + +@brief +*/ +typedef enum { + M2M_REQ_CONFIG_PKT, + M2M_REQ_DATA_PKT = 0x80 /*BIT7*/ +} tenuM2mReqpkt; + +/*! +@enum \ + tenuM2mWepKeyIndex + +@brief + +*/ +typedef enum { + M2M_WIFI_WEP_KEY_INDEX_1 = ((uint8_t) 1), + /*!< Index 1 for WEP key Authentication */ + M2M_WIFI_WEP_KEY_INDEX_2, + /*!< Index 2 for WEP key Authentication */ + M2M_WIFI_WEP_KEY_INDEX_3, + /*!< Index 3 for WEP key Authentication */ + M2M_WIFI_WEP_KEY_INDEX_4, + /*!< Index 4 for WEP key Authentication */ +} tenuM2mWepKeyIndex; + +/*! +@enum \ + tenuM2mDefaultConnErrcode + +@brief + +*/ +typedef enum { + M2M_DEFAULT_CONN_INPROGRESS = ((int8_t)-23), + /*!< Failure response due to another connection being already in progress */ + M2M_DEFAULT_CONN_FAIL, + /*!< Failure to connect to the cached network */ + M2M_DEFAULT_CONN_SCAN_MISMATCH, + /*!< Failure to find any of the cached networks in the scan results. */ + M2M_DEFAULT_CONN_EMPTY_LIST + /*!< Failure due to empty network list. */ +} tenuM2mDefaultConnErrcode; + + +/*! +@enum \ + tenuM2mConnChangedErrcode + +@brief + +*/ +typedef enum { + M2M_ERR_SCAN_FAIL = ((uint8_t)1), + /*!< Failure to perform the scan operation. */ + M2M_ERR_JOIN_FAIL, + /*!< Failure to join the BSS. */ + M2M_ERR_AUTH_FAIL, + /*!< Failure to authenticate with the AP. */ + M2M_ERR_ASSOC_FAIL, + /*!< Failure to associate with the AP. */ + M2M_ERR_CONN_INPROGRESS, + /*!< Failure due to another connection being in progress. */ +} tenuM2mConnChangedErrcode; + + +/*! +@enum \ + tenuM2mSetGainsErrcode + +@brief + +*/ +typedef enum { + M2M_ERR_GAIN_TABLE_INVALID = ((int8_t)-10), + /*!< Failure response due to trying to use an invalid table */ + M2M_ERR_READ_GAIN_TABLE, + /*!< Failure to read gains from flash */ +} tenuM2mSetGainsErrcode; + +/*! +@enum \ + tenuM2mPwrMode + +@brief + +*/ +typedef enum { + PWR_AUTO = ((uint8_t) 1), + /*!< Automatic power mode. */ + PWR_LOW1, + /*!< Low power mode #1. RX current 60mA.*/ + PWR_LOW2, + /*!< Low power mode #2, RX current 55mA, sensitivity is less by 3dBm*/ + PWR_HIGH, + /*!< High power mode: RX current 100mA.*/ +} tenuM2mPwrMode; + +/*! +@enum \ + tenuM2mTxPwrLevel + +@brief + +*/ +typedef enum { + TX_PWR_HIGH = ((uint8_t) 1), + /*!< PPA Gain 6dbm PA Gain 18dbm */ + TX_PWR_MED, + /*!< PPA Gain 6dbm PA Gain 12dbm */ + TX_PWR_LOW, + /*!< PPA Gain 6dbm PA Gain 6dbm */ +} tenuM2mTxPwrLevel; + +/*! +@enum \ + tenuM2mConfigCmd + +@brief + This enum contains host commands used to configure the WINC board. + +*/ +typedef enum { + M2M_WIFI_REQ_RESTART = M2M_CONFIG_CMD_BASE, + /*!< Restart the WINC MAC layer, it's doesn't restart the IP layer. */ + M2M_WIFI_REQ_SET_MAC_ADDRESS, + /*!< Set the WINC mac address (not possible for production effused boards). */ + M2M_WIFI_REQ_CURRENT_RSSI, + /*!< Request the current connected AP RSSI. */ + M2M_WIFI_RESP_CURRENT_RSSI, + /*!< Response to M2M_WIFI_REQ_CURRENT_RSSI with the RSSI value. */ + M2M_WIFI_REQ_RESTRICT_BLE, + /*!< Request restrict ble. */ + M2M_WIFI_REQ_UNRESTRICT_BLE, + /*!< Request unrestrict ble. */ + M2M_WIFI_REQ_GET_CONN_INFO, + /*!< Request connection information. */ + M2M_WIFI_RESP_CONN_INFO, + /*!< Response to M2M_WIFI_REQ_GET_CONN_INFO with the connection information. */ + M2M_WIFI_REQ_SET_DEVICE_NAME, + /*!< Request to set WINC device name property. */ + M2M_WIFI_REQ_START_PROVISION_MODE_LEGACY, + /*!< Request to start provisioning mode. */ + M2M_WIFI_RESP_PROVISION_INFO, + /*!< Response to the host with the provisioning information.*/ + M2M_WIFI_REQ_STOP_PROVISION_MODE, + /*!< Request to stop provision mode. */ + M2M_WIFI_REQ_SET_SYS_TIME, + /*!< Request to set system time. */ + M2M_WIFI_REQ_ENABLE_SNTP_CLIENT, + /*!< Request to enable the simple network time protocol to get the + time from the Internet. This is required for security purposes. */ + M2M_WIFI_REQ_DISABLE_SNTP_CLIENT, + /*!< Request to disable the simple network time protocol for applications that + do not need it. */ + M2M_WIFI_RESP_MEMORY_RECOVER, + /*!< Reserved for debugging */ + M2M_WIFI_REQ_CUST_INFO_ELEMENT, + /*!< Request to add custom information to the Beacons IE. */ + M2M_WIFI_REQ_SCAN, + /*!< Request scan command. */ + M2M_WIFI_RESP_SCAN_DONE, + /*!< Response to notify scan complete. */ + M2M_WIFI_REQ_SCAN_RESULT, + /*!< Request for scan results. */ + M2M_WIFI_RESP_SCAN_RESULT, + /*!< Response to provide the scan results. */ + M2M_WIFI_REQ_SET_SCAN_OPTION, + /*!< Request to set scan options "slot time, slot number .. etc". */ + M2M_WIFI_REQ_SET_SCAN_REGION, + /*!< Request to set scan region. */ + M2M_WIFI_REQ_SET_POWER_PROFILE, + /*!< Request to set the Power Profile. */ + M2M_WIFI_REQ_SET_TX_POWER, + /*!< Request to set the TX Power. */ + M2M_WIFI_REQ_SET_BATTERY_VOLTAGE, + /*!< Request to set the Battery Voltage. */ + M2M_WIFI_REQ_SET_ENABLE_LOGS, + /*!< Request to enable logs. */ + M2M_WIFI_REQ_GET_SYS_TIME, + /*!< Request to get system time. */ + M2M_WIFI_RESP_GET_SYS_TIME, + /*!< Response to retrieve the system time. */ + M2M_WIFI_REQ_SEND_ETHERNET_PACKET, + /*!< Request to send Ethernet packet in bypass mode. */ + M2M_WIFI_RESP_ETHERNET_RX_PACKET, + /*!< Response to receive an Ethernet packet in bypass mode. */ + M2M_WIFI_REQ_SET_MAC_MCAST, + /*!< Request to set multicast filters. */ + M2M_WIFI_REQ_BLE_API_SEND, + /*!< Request to send an Encapsulated BLE API MSG */ + M2M_WIFI_RESP_BLE_API_RECV, + /*!< Response to receive an Encapsulated BLE API MSG */ + M2M_WIFI_REQ_SET_GAIN_TABLE, + /*!< Request to use Gain table from Flash */ + M2M_WIFI_RESP_SET_GAIN_TABLE, + /*!< Response to fail to use Gain table from Flash */ + M2M_WIFI_REQ_PASSIVE_SCAN, + /*!< Request a passive scan. */ + M2M_WIFI_REQ_CONFIG_SNTP, + /*!< Configure NTP servers. */ + M2M_WIFI_REQ_START_PROVISION_MODE, + /*!< Request to start provisioning mode. */ + + /* This enum is now 'full' in the sense that (M2M_WIFI_REQ_START_PROVISION_MODE+1) == M2M_STA_CMD_BASE. + * Any new config values should be placed in tenuM2mGenCmd. */ + M2M_WIFI_MAX_CONFIG_ALL +} tenuM2mConfigCmd; + +/*! +@enum \ + tenuM2mStaCmd + +@brief + This enum contains WINC commands while in Station mode. +*/ +typedef enum { + M2M_WIFI_REQ_CONNECT = M2M_STA_CMD_BASE, + /*!< Request to connect with a specified AP. This command is deprecated in favour of @ref M2M_WIFI_REQ_CONN. + */ + M2M_WIFI_REQ_DEFAULT_CONNECT, + /*!< Request to connect with a cached AP. */ + M2M_WIFI_RESP_DEFAULT_CONNECT, + /*!< Response for the default connect.*/ + M2M_WIFI_REQ_DISCONNECT, + /*!< Request to disconnect from the AP. */ + M2M_WIFI_RESP_CON_STATE_CHANGED, + /*!< Response to indicate a change in the connection state. */ + M2M_WIFI_REQ_SLEEP, + /*!< Request to sleep. */ + M2M_WIFI_REQ_WPS_SCAN, + /*!< Request to WPS scan. */ + M2M_WIFI_REQ_WPS, + /*!< Request to start WPS. */ + M2M_WIFI_REQ_START_WPS, + /*!< This command is for internal use by the WINC and + should not be used by the host driver. */ + M2M_WIFI_REQ_DISABLE_WPS, + /*!< Request to disable WPS. */ + M2M_WIFI_REQ_DHCP_CONF, + /*!< Response to indicate the obtained IP address.*/ + M2M_WIFI_RESP_IP_CONFIGURED, + /*!< This command is for internal use by the WINC and + should not be used by the host driver. */ + M2M_WIFI_RESP_IP_CONFLICT, + /*!< Response to indicate a conflict in obtained IP address. + The user should re attempt the DHCP request. */ + M2M_WIFI_REQ_ENABLE_MONITORING, + /*!< Request to enable monitor mode. */ + M2M_WIFI_REQ_DISABLE_MONITORING, + /*!< Request to disable monitor mode. */ + M2M_WIFI_RESP_WIFI_RX_PACKET, + /*!< Response to indicate a packet was received in monitor mode. */ + M2M_WIFI_REQ_SEND_WIFI_PACKET, + /*!< Request to send a packet in monitor mode. */ + M2M_WIFI_REQ_LSN_INT, + /*!< Request to set the listen interval. */ + M2M_WIFI_REQ_DOZE, + /*!< Request to doze */ + M2M_WIFI_REQ_GET_PRNG, + /*!< Request PRNG. */ + M2M_WIFI_RESP_GET_PRNG, + /*!< Response for PRNG. */ + M2M_WIFI_REQ_CONN, + /*!< New command to connect with AP. + This replaces M2M_WIFI_REQ_CONNECT. (Firmware continues to handle + M2M_WIFI_REQ_CONNECT for backwards compatibility purposes.) + */ + M2M_WIFI_IND_CONN_PARAM, + /*!< Provide extra information (such as Enterprise client certificate) required for connection. */ + M2M_WIFI_MAX_STA_ALL +} tenuM2mStaCmd; + +/*! +@enum \ + tenuM2mApCmd + +@brief + This enum contains WINC commands while in AP mode. +*/ +typedef enum { + M2M_WIFI_REQ_ENABLE_AP_LEGACY = M2M_AP_CMD_BASE, + /*!< Request to enable AP mode. */ + M2M_WIFI_REQ_DISABLE_AP, + /*!< Request to disable AP mode. */ + M2M_WIFI_REQ_ENABLE_AP, + /*!< Request to enable AP mode. */ + M2M_WIFI_MAX_AP_ALL, +} tenuM2mApCmd; + +/*! +@enum \ + tenuM2mP2pCmd + +@brief + This enum contains WINC commands while in P2P mode. +*/ +typedef enum { + M2M_WIFI_REQ_P2P_INT_CONNECT = M2M_P2P_CMD_BASE, + /*!< This command is for internal use by the WINC and + should not be used by the host driver. */ + M2M_WIFI_REQ_ENABLE_P2P, + /*!< Request to enable P2P mode.*/ + M2M_WIFI_REQ_DISABLE_P2P, + /*!< Request to disable P2P mode. */ + M2M_WIFI_REQ_P2P_REPOST, + /*!< This command is for internal use by the WINC and + should not be used by the host driver. + */ + M2M_WIFI_MAX_P2P_ALL, +} tenuM2mP2pCmd; + + +/*! +@enum \ + tenuM2mServerCmd + +@brief + These commands are currently not supported. +*/ +typedef enum { + M2M_WIFI_REQ_CLIENT_CTRL = M2M_SERVER_CMD_BASE, + /*!< Currently not supported.*/ + M2M_WIFI_RESP_CLIENT_INFO, + /*!< Currently not supported.*/ + M2M_WIFI_REQ_SERVER_INIT, + /*!< Currently not supported.*/ + M2M_WIFI_MAX_SERVER_ALL +} tenuM2mServerCmd; + +/*! +@enum \ + tenuM2mGenCmd + +@brief + This enum contains additional WINC commands (overflow of previous enums). +*/ +typedef enum { + M2M_WIFI_REQRSP_DELETE_APID = M2M_GEN_CMD_BASE, + /*!< Request/response to delete security credentials from WINC flash. + (Processing matches @ref tenuM2mConfigCmd.) */ + M2M_WIFI_REQ_ROAMING, + /*!< Request to enable/disable wifi roaming. + (Processing matches @ref tenuM2mConfigCmd.) + */ + M2M_WIFI_REQ_SCAN_SSID_LIST, + /*!< Request scan with list of hidden SSID plus the broadcast scan. + */ + M2M_WIFI_REQ_SET_STOP_SCAN_OPTION, + /*!< Set Scan option to stop on first result. + (Processing matches @ref tenuM2mConfigCmd.) + */ + M2M_WIFI_MAX_GEN_ALL +} tenuM2mGenCmd; + + +/*! +@enum \ + tenuM2mIpCmd + +@brief + This enum contains all the WINC commands related to IP. +*/ +typedef enum { + M2M_IP_REQ_STATIC_IP_CONF = ((uint8_t) 10), + /*!< Request to set static IP.*/ + M2M_IP_REQ_ENABLE_DHCP, + /*!< Request to enable DHCP.*/ + M2M_IP_REQ_DISABLE_DHCP + /*!< Request to disable DHCP.*/ +} tenuM2mIpCmd; + +/*! +@enum \ + tenuM2mSockCmd + +@brief + This enum contains all the WINC commands related to Sockets. +*/ +typedef enum { + SOCKET_CMD_BIND = 0x41, + /*!< Socket Binding command value. */ + SOCKET_CMD_LISTEN, + /*!< Socket Listening command value. */ + SOCKET_CMD_ACCEPT, + /*!< Socket Accepting command value. */ + SOCKET_CMD_CONNECT, + /*!< Socket Connecting command value. */ + SOCKET_CMD_SEND, + /*!< Socket send command value. */ + SOCKET_CMD_RECV, + /*!< Socket Receive command value. */ + SOCKET_CMD_SENDTO, + /*!< Socket sendTo command value. */ + SOCKET_CMD_RECVFROM, + /*!< Socket ReceiveFrom command value. */ + SOCKET_CMD_CLOSE, + /*!< Socket Close command value. */ + SOCKET_CMD_DNS_RESOLVE, + /*!< Socket DNS Resolve command value. */ + SOCKET_CMD_SSL_CONNECT, + /*!< SSL-Socket Connect command value. */ + SOCKET_CMD_SSL_SEND, + /*!< SSL-Socket Send command value. */ + SOCKET_CMD_SSL_RECV, + /*!< SSL-Socket Receive command value. */ + SOCKET_CMD_SSL_CLOSE, + /*!< SSL-Socket Close command value. */ + SOCKET_CMD_SET_SOCKET_OPTION, + /*!< Set Socket Option command value. */ + SOCKET_CMD_SSL_CREATE, + SOCKET_CMD_SSL_SET_SOCK_OPT, + SOCKET_CMD_PING, + SOCKET_CMD_SSL_CONNECT_ALPN, + /*!< SSL-Socket Connect with ALPN command value. */ + SOCKET_CMD_RAW_SET_SOCK_OPT, + SOCKET_CMD_SECURE + /*!< Make secure a previously opened socket. */ +} tenuM2mSockCmd; + +/*! +@enum \ + tenuM2mSigmaCmd + +@brief + This enum contains all the WINC commands related to Sigma. +*/ +typedef enum { + M2M_SIGMA_ENABLE = ((uint8_t) 3), + /*!< Enable Sigma.*/ + M2M_SIGMA_TA_START, + /*!< Start the traffic agent.*/ + M2M_SIGMA_TA_STATS, + /*!< Get traffic statistics.*/ + M2M_SIGMA_TA_RECEIVE_STOP, + /*!< Stop receiving from the traffic agent.*/ + M2M_SIGMA_ICMP_ARP, + /*!< Send ARP.*/ + M2M_SIGMA_ICMP_RX, + /*!< Receive ICMP.*/ + M2M_SIGMA_ICMP_TX, + /*!< Transmit ICMP.*/ + M2M_SIGMA_UDP_TX, + /*!< Transmit UDP.*/ + M2M_SIGMA_UDP_TX_DEFER, + /*!< Transmit UDP defer.*/ + M2M_SIGMA_SECURITY_POLICY, + /*!< Set security policy.*/ + M2M_SIGMA_SET_SYSTIME + /*!< Set system time.*/ +} tenuM2mSigmaCmd; + +/*! +@enum \ + tenuM2mConnState + +@brief + This enum contains all the Wi-Fi connection states. +*/ +typedef enum { + M2M_WIFI_DISCONNECTED = 0, + /*!< Wi-Fi state is disconnected. */ + M2M_WIFI_CONNECTED, + /*!< Wi-Fi state is connected. */ + M2M_WIFI_ROAMED, + /*!< Wi-Fi state is roamed to new AP. */ + M2M_WIFI_UNDEF = 0xff + /*!< Undefined Wi-Fi State. */ +} tenuM2mConnState; + +/*! +@enum \ + tenuM2mSecType + +@brief + This enum contains all the supported Wi-Fi security types. +*/ +typedef enum { + M2M_WIFI_SEC_INVALID = 0, + /*!< Invalid security type. */ + M2M_WIFI_SEC_OPEN, + /*!< Wi-Fi network is not secured. */ + M2M_WIFI_SEC_WPA_PSK, + /*!< Wi-Fi network is secured with WPA/WPA2 personal(PSK). */ + M2M_WIFI_SEC_WEP, + /*!< Security type WEP (40 or 104) OPEN OR SHARED. */ + M2M_WIFI_SEC_802_1X, + /*!< Wi-Fi network is secured with WPA/WPA2 Enterprise.IEEE802.1x. */ + M2M_WIFI_NUM_AUTH_TYPES + /*!< Upper limit for enum value. */ +} tenuM2mSecType; + + +/*! +@enum \ + tenuM2mSecType + +@brief + This enum contains all the supported Wi-Fi SSID types. +*/ +typedef enum { + SSID_MODE_VISIBLE = 0, + /*!< SSID is visible to others. */ + SSID_MODE_HIDDEN + /*!< SSID is hidden. */ +} tenuM2mSsidMode; + +/*! +@enum \ + tenuM2mScanCh + +@brief + This enum contains all the Wi-Fi RF channels. +*/ +typedef enum { + M2M_WIFI_CH_1 = ((uint8_t) 1), + /*!< Channel 1. */ + M2M_WIFI_CH_2, + /*!< Channel 2. */ + M2M_WIFI_CH_3, + /*!< Channel 3. */ + M2M_WIFI_CH_4, + /*!< Channel 4. */ + M2M_WIFI_CH_5, + /*!< Channel 5. */ + M2M_WIFI_CH_6, + /*!< Channel 6. */ + M2M_WIFI_CH_7, + /*!< Channel 7. */ + M2M_WIFI_CH_8, + /*!< Channel 8. */ + M2M_WIFI_CH_9, + /*!< Channel 9. */ + M2M_WIFI_CH_10, + /*!< Channel 10. */ + M2M_WIFI_CH_11, + /*!< Channel 11. */ + M2M_WIFI_CH_12, + /*!< Channel 12. */ + M2M_WIFI_CH_13, + /*!< Channel 13. */ + M2M_WIFI_CH_14, + /*!< Channel 14. */ + M2M_WIFI_CH_ALL = ((uint8_t) 255) +} tenuM2mScanCh; + +/*! +@enum \ + tenuM2mScanRegion + +@brief + This enum contains all the Wi-Fi channel regions. +*/ +typedef enum { + REG_CH_1 = ((uint16_t) 1 << 0), + /*!< Region channel 1. */ + REG_CH_2 = ((uint16_t) 1 << 1), + /*!< Region channel 2. */ + REG_CH_3 = ((uint16_t) 1 << 2), + /*!< Region channel 3. */ + REG_CH_4 = ((uint16_t) 1 << 3), + /*!< Region channel 4. */ + REG_CH_5 = ((uint16_t) 1 << 4), + /*!< Region channel 5. */ + REG_CH_6 = ((uint16_t) 1 << 5), + /*!< Region channel 6. */ + REG_CH_7 = ((uint16_t) 1 << 6), + /*!< Region channel 7. */ + REG_CH_8 = ((uint16_t) 1 << 7), + /*!< Region channel 8. */ + REG_CH_9 = ((uint16_t) 1 << 8), + /*!< Region channel 9. */ + REG_CH_10 = ((uint16_t) 1 << 9), + /*!< Region channel 10. */ + REG_CH_11 = ((uint16_t) 1 << 10), + /*!< Region channel 11. */ + REG_CH_12 = ((uint16_t) 1 << 11), + /*!< Region channel 12. */ + REG_CH_13 = ((uint16_t) 1 << 12), + /*!< Region channel 13. */ + REG_CH_14 = ((uint16_t) 1 << 13), + /*!< Region channel 14. */ + REG_CH_ALL = ((uint16_t) 0x3FFF), + /*!< Region for all channels. */ + NORTH_AMERICA = ((uint16_t) 0x7FF), + /*!< North America region with 11 channels*/ + EUROPE = ((uint16_t) 0x1FFF), + /*!u8Status == M2M_SUCCESS) + { + tstrNetworkId strNetworkId = {NULL, pstrProvInfo->au8SSID, (uint8_t)strlen((char*)(pstrProvInfo->au8SSID)), M2M_WIFI_CH_ALL}; + tstrAuthPsk strAuthPsk = {NULL, pstrProvInfo->au8Password, (uint8_t)strlen((char*)(pstrProvInfo->au8Password))}; + m2m_wifi_connect_psk(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId, &strAuthPsk); + + printf("PROV SSID : %s\n",pstrProvInfo->au8SSID); + printf("PROV PSK : %s\n",pstrProvInfo->au8Password); + } + else + { + printf("(ERR) Provisioning Failed\n"); + } + } + break; + + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + tstrM2MAPConfig apConfig; + uint8_t bEnableRedirect = 1; + + strcpy(apConfig.au8SSID, "WINC_SSID"); + apConfig.u8ListenChannel = 1; + apConfig.u8SecType = M2M_WIFI_SEC_OPEN; + apConfig.u8SsidHide = 0; + + // IP Address + apConfig.au8DHCPServerIP[0] = 192; + apConfig.au8DHCPServerIP[1] = 168; + apConfig.au8DHCPServerIP[2] = 1; + apConfig.au8DHCPServerIP[3] = 1; + + m2m_wifi_start_provision_mode(&apConfig, "atmelwincconf.com", bEnableRedirect); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_start_provision_mode(tstrM2MAPConfig *pstrAPConfig, char *pcHttpServerDomainName, uint8_t bEnableHttpRedirect); + +/*! +@ingroup WLANPROVISION +@fn \ + int8_t m2m_wifi_start_provision_mode_ext(tstrM2MAPModeConfig *pstrAPModeConfig, char *pcHttpServerDomainName, uint8_t bEnableHttpRedirect); + +@brief + Asynchronous API for control of Wi-Fi provisioning functionality with extended options. + +@details + This function allows the application to start the WINC in 'provisioning mode', a special mode + that triggers the WINC to create a Wi-Fi access point, DHCP server, and HTTP server. + + The HTTP server presents a provisioning page to a connected client which lists the access points + detected in the vicinity of the WINC, and allows one of these to be selected and any appropriate + credentials to be entered. This allows a headless system to be provisioned (configured to + connect with an access point). + + Provisioning status is returned in an event @ref M2M_WIFI_RESP_PROVISION_INFO. + +@param[in] pstrAPModeConfig + AP configuration parameters as defined in @ref tstrM2MAPModeConfig configuration structure. + A NULL value passed in, will result in a negative error @ref M2M_ERR_FAIL. + +@param[in] pcHttpServerDomainName + Domain name of the HTTP Provision WEB server which others will use to load the provisioning Home page. + The domain name can have one of the following 3 forms: + - 1. "wincprov.com" + - 2. "http://wincprov.com" + - 3. "https://wincprov.com" + + The forms 1 and 2 are equivalent, they both will start a plain http server, while form 3 + will start a secure HTTP provisioning Session (HTTP over SSL connection). + +@param[in] bEnableHttpRedirect + A flag to enable/disable the HTTP redirect feature. If Secure provisioning is enabled (i.e. the server + domain name uses "https" prefix) this flag is ignored (no meaning for redirect in HTTPS). + Possible values are: + - Zero: DO NOT use HTTP Redirect. In this case the associated device could open the + provisioning page ONLY when the HTTP Provision URL of the WINC HTTP Server is + correctly written on the browser. + - Non-Zero: Use HTTP Redirect. In this case, all http traffic (http://URL) from the + associated device (Phone, PC, ...etc) will be redirected to the WINC HTTP + Provisioning Home page. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at startup. + Registering the callback is done through passing it to the initialization @ref m2m_wifi_init function. + - The event @ref M2M_WIFI_RESP_CONN_INFO must be handled in the callback to receive the requested connection info. + +@warning + Do not use ".local" in the pcHttpServerDomainName. + +@see + tpfAppWifiCb + m2m_wifi_init + M2M_WIFI_RESP_PROVISION_INFO + m2m_wifi_stop_provision_mode + tstrM2MAPModeConfig + +@section WIFIExample12 Example + The example demonstrates a code snippet for how provisioning is triggered and the response event + received accordingly. + +@code + #include "m2m_wifi.h" + #include "m2m_types.h" + + void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) + { + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_PROVISION_INFO: + { + tstrM2MProvisionInfo *pstrProvInfo = (tstrM2MProvisionInfo*)pvMsg; + if(pstrProvInfo->u8Status == M2M_SUCCESS) + { + tstrNetworkId strNetworkId = {NULL, pstrProvInfo->au8SSID, (uint8_t)strlen((char*)(pstrProvInfo->au8SSID)), M2M_WIFI_CH_ALL}; + tstrAuthPsk strAuthPsk = {NULL, pstrProvInfo->au8Password, (uint8_t)strlen((char*)(pstrProvInfo->au8Password))}; + m2m_wifi_connect_psk(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId, &strAuthPsk); + + printf("PROV SSID : %s\n",pstrProvInfo->au8SSID); + printf("PROV PSK : %s\n",pstrProvInfo->au8Password); + } + else + { + printf("(ERR) Provisioning Failed\n"); + } + } + break; + + default: + break; + } + } + + int main() + { + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + tstrM2MAPModeConfig apModeConfig; + uint8_t bEnableRedirect = 1; + + strcpy(apModeConfig.au8SSID, "WINC_SSID"); + apModeConfig.strApConfig.u8ListenChannel = 1; + apModeConfig.strApConfig.u8SecType = M2M_WIFI_SEC_OPEN; + apModeConfig.strApConfig.u8SsidHide = 0; + + // IP Address + apModeConfig.strApConfig.au8DHCPServerIP[0] = 192; + apModeConfig.strApConfig.au8DHCPServerIP[1] = 168; + apModeConfig.strApConfig.au8DHCPServerIP[2] = 1; + apModeConfig.strApConfig.au8DHCPServerIP[3] = 1; + + // Default router IP + memcpy(apModeConfig.strApConfigExt.au8DefRouterIP, apModeConfig.strApConfig.au8DHCPServerIP, 4); + + // DNS Server IP + memcpy(apModeConfig.strApConfigExt.au8DNSServerIP, apModeConfig.strApConfig.au8DHCPServerIP, 4); + + // Subnet mask + apModeConfig.strApConfigExt.au8SubnetMask[0] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[1] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[2] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[3] = 0; + + m2m_wifi_start_provision_mode_ext(&apModeConfig, "atmelwincconf.com", bEnableRedirect); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } + } +@endcode +*/ +int8_t m2m_wifi_start_provision_mode_ext(tstrM2MAPModeConfig *pstrAPModeConfig, char *pcHttpServerDomainName, uint8_t bEnableHttpRedirect); + +/*! +@ingroup WLANPROVISION +@fn \ + int8_t m2m_wifi_stop_provision_mode(void); + +@brief + Synchronous API for terminating provisioning mode on the WINC. + +@details + This function will terminate any currently active provisioning mode on the WINC, returning the WINC to idle. + +@pre + An active provisioning session must be active before it is terminated through this function. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + m2m_wifi_start_provision_mode +*/ +int8_t m2m_wifi_stop_provision_mode(void); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_get_connection_info(void); + +@brief + Asynchronous API for retrieving the WINC connection status. + +@details + Requests the connection status from the WINC including information regarding any access + point to which it is currently connected, or any non-AP station that is connected to the WINC. + All information will be returned to the application via the Wi-Fi notification callback through + the event @ref M2M_WIFI_RESP_CONN_INFO. + + The connection info can be retrieved using the structure @ref tstrM2MConnInfo which contains: + - Connection Security + - Connection RSSI + - Remote MAC address + - Remote IP address + - SSID of the network (in cases where the WINC is in non-AP mode) + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at + startup. Registering the callback is done through passing it to the initialization + @ref m2m_wifi_init function. + - The event @ref M2M_WIFI_RESP_CONN_INFO must be handled in the callback to receive the + requested connection info. + +@warning + - In case the WINC is operating in AP mode or P2P mode, the SSID field will be returned as a NULL string. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + M2M_WIFI_RESP_CONN_INFO, + tstrM2MConnInfo +@section WIFIExample2 Example + The code snippet shows an example of how wi-fi connection information is retrieved . +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_CONN_INFO: + { + tstrM2MConnInfo *pstrConnInfo = (tstrM2MConnInfo*)pvMsg; + + printf("CONNECTED AP INFO\n"); + printf("SSID : %s\n",pstrConnInfo->acSSID); + printf("SEC TYPE : %d\n",pstrConnInfo->u8SecType); + printf("Signal Strength : %d\n", pstrConnInfo->s8RSSI); + printf("Local IP Address : %d.%d.%d.%d\n", + pstrConnInfo->au8IPAddr[0] , pstrConnInfo->au8IPAddr[1], pstrConnInfo->au8IPAddr[2], pstrConnInfo->au8IPAddr[3]); + } + break; + + case M2M_WIFI_REQ_DHCP_CONF: + { + // Get the current AP information. + m2m_wifi_get_connection_info(); + } + break; + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // connect to the default AP + m2m_wifi_default_connect(); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_get_connection_info(void); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_set_mac_address(uint8_t au8MacAddress[6]); + +@brief + Asynchronous API for assigning a MAC address to the WINC. + +@details + This function is intended to allow non-production software to assign a MAC address to the WINC. + +@warning + This function is intended for development use only and not for use in production software. + +@param[in] au8MacAddress + MAC Address to be provisioned to the WINC. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. +*/ +int8_t m2m_wifi_set_mac_address(uint8_t au8MacAddress[6]); + +/*! +@ingroup WLANWPS +@fn \ + int8_t m2m_wifi_wps(uint8_t u8TriggerType,const char * pcPinNumber); + +@brief + Asynchronous API to engage the WINC Wi-Fi Protected Setup (enrollee) function. + +@details + This function can be called to make the WINC enter WPS (Wi-Fi Protected Setup) mode. The result + is passed to the Wi-Fi notification callback with the event @ref M2M_WIFI_REQ_WPS. + +@param[in] u8TriggerType + WPS Trigger method. This may be: + - @ref WPS_PIN_TRIGGER Push button method + - @ref WPS_PBC_TRIGGER Pin method + +@param[in] pcPinNumber + Valid only if the u8TriggerType is @ref WPS_PIN_TRIGGER, this parameter contains the PIN number. + The number must follow the format as given in the WSC1.0 specification. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@warning + This function is not allowed in AP or P2P modes. + +@pre + - A Wi-Fi notification callback of type (@ref tpfAppWifiCb MUST be implemented and registered at + startup. Registering the callback is done through passing it to @ref m2m_wifi_init. + - The event @ref M2M_WIFI_REQ_WPS must be handled in the callback to receive the WPS status. + - The WINC device MUST be in IDLE or STA mode. If AP or P2P mode is active, the WPS will not be performed. + - The @ref m2m_wifi_handle_events MUST be called periodically to receive + the responses in the callback. + +@see + tpfAppWifiCb + m2m_wifi_init + M2M_WIFI_REQ_WPS + tenuWPSTrigger + tstrM2MWPSInfo + +@section WIFIExample3 Example + The code snippet shows an example of how wi-fi WPS is triggered . +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + switch(u8WiFiEvent) + { + case M2M_WIFI_REQ_WPS: + { + tstrM2MWPSInfo *pstrWPS = (tstrM2MWPSInfo*)pvMsg; + if(pstrWPS->u8AuthType != 0) + { + // establish Wi-Fi connection + tstrNetworkId strNetworkId = {NULL, pstrWPS->au8SSID, (uint8_t)strlen((char*)(pstrWPS->au8SSID)), pstrWPS->u8Ch}; + if(pstrWPS->u8AuthType == M2M_WIFI_SEC_OPEN) + { + m2m_wifi_connect_open(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId); + } + else + { + tstrAuthPsk strAuthPsk = {NULL, pstrWPS->au8PSK, (uint8_t)strlen((char*)(pstrWPS->au8PSK))}; + m2m_wifi_connect_psk(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId, &strAuthPsk); + } + + printf("WPS SSID : %s\n",pstrWPS->au8SSID); + printf("WPS PSK : %s\n",pstrWPS->au8PSK); + printf("WPS SSID Auth Type : %s\n",pstrWPS->u8AuthType == M2M_WIFI_SEC_OPEN ? "OPEN" : "WPA/WPA2"); + printf("WPS Channel : %d\n",pstrWPS->u8Ch); + } + else + { + printf("(ERR) WPS Is not enabled OR Timed out\n"); + } + } + break; + + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Trigger WPS in Push button mode. + m2m_wifi_wps(WPS_PBC_TRIGGER, NULL); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_wps(uint8_t u8TriggerType, const char *pcPinNumber); + +/*! +@ingroup WLANWPS +@fn \ + int8_t m2m_wifi_wps_disable(void); + +@brief + Asynchronous API that disables Wi-Fi Protected Setup mode in the WINC. + +@pre + WINC should be already in WPS mode using @ref m2m_wifi_wps. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_wps +*/ +int8_t m2m_wifi_wps_disable(void); + +/**@cond P2P_DOC + */ +/*! +@ingroup WLANP2P +@fn \ + int8_t m2m_wifi_p2p(uint8_t u8Channel); + +@brief + Asynchronous API for enabling Wi-Fi Direct (P2P) mode in the WINC. + +@param[in] u8Channel + P2P Listen RF channel. According to the P2P standard, it must hold only one of the following values 1, 6 or 11. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at + initialization. Registering the callback is done through passing it to the @ref m2m_wifi_init. + - The events @ref M2M_WIFI_RESP_CON_STATE_CHANGED and @ref M2M_WIFI_REQ_DHCP_CONF must be handled in the callback. + - The @ref m2m_wifi_handle_events MUST be called to receive the responses in the callback. + +@warning + - This function is not available in the WINC 3400 + - This function is not allowed in AP or STA modes. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tpfAppWifiCb + m2m_wifi_init + M2M_WIFI_RESP_CON_STATE_CHANGED + M2M_WIFI_REQ_DHCP_CONF + tstrM2mWifiStateChanged + +@section WIFIExample4 Example + The code snippet shows an example of how the p2p mode operates. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_CON_STATE_CHANGED: + { + tstrM2mWifiStateChanged *pstrWifiState = (tstrM2mWifiStateChanged*)pvMsg; + M2M_INFO("Wifi State :: %s :: ErrCode %d\n", pstrWifiState->u8CurrState? "CONNECTED":"DISCONNECTED",pstrWifiState->u8ErrCode); + + // Do something + } + break; + + case M2M_WIFI_REQ_DHCP_CONF: + { + uint8_t *pu8IPAddress = (uint8_t*)pvMsg; + + printf("P2P IP Address \"%u.%u.%u.%u\"\n",pu8IPAddress[0],pu8IPAddress[1],pu8IPAddress[2],pu8IPAddress[3]); + } + break; + + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Trigger P2P + m2m_wifi_p2p(M2M_WIFI_CH_1); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_p2p(uint8_t u8Channel); + +/*! +@ingroup WLANP2P +@fn \ + int8_t m2m_wifi_p2p_disconnect(void); + +@brief + Synchronous API to disable Wi-Fi Direct (P2P) Mode on the WINC. + +@pre + The p2p mode must be enabled and active before a disconnect can be called. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_p2p +*/ +int8_t m2m_wifi_p2p_disconnect(void); +/**@endcond*/ //P2P_DOC + +/*! +@ingroup WLANAP +@fn \ + int8_t m2m_wifi_enable_ap(const tstrM2MAPConfig* pstrM2MAPConfig); + +@brief + Asynchronous API to enable access point (AKA "hot-spot") mode on the WINC. + +@details + The WINC supports the ability to operate as an access point with the following limitations: + - Only 1 station may be associated at any given time. + - Open system and WEP are the only security suites supported. + +@param[in] pstrM2MAPConfig + A structure holding the AP configurations. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@warning + This function is not allowed in P2P or STA modes. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at initialization. Registering the callback + is done through passing it to the @ref m2m_wifi_init. + - The event @ref M2M_WIFI_REQ_DHCP_CONF must be handled in the callback. + - The @ref m2m_wifi_handle_events MUST be called to receive the responses in the callback. + +@see + tpfAppWifiCb + tenuM2mSecType + m2m_wifi_init + M2M_WIFI_REQ_DHCP_CONF + tstrM2mWifiStateChanged + tstrM2MAPConfig + +@section WIFIExample5 Example + The code snippet demonstrates how the AP mode is enabled after the driver is initialized in the application's main function and the handling + of the event @ref M2M_WIFI_REQ_DHCP_CONF, to indicate successful connection. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + switch(u8WiFiEvent) + { + case M2M_WIFI_REQ_DHCP_CONF: + { + uint8_t *pu8IPAddress = (uint8_t*)pvMsg; + + printf("Associated STA has IP Address \"%u.%u.%u.%u\"\n",pu8IPAddress[0],pu8IPAddress[1],pu8IPAddress[2],pu8IPAddress[3]); + } + break; + + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + tstrM2MAPConfig apConfig; + + strcpy(apConfig.au8SSID, "WINC_SSID"); + apConfig.u8ListenChannel = 1; + apConfig.u8SecType = M2M_WIFI_SEC_OPEN; + apConfig.u8SsidHide = 0; + + // IP Address + apConfig.au8DHCPServerIP[0] = 192; + apConfig.au8DHCPServerIP[1] = 168; + apConfig.au8DHCPServerIP[2] = 1; + apConfig.au8DHCPServerIP[3] = 1; + + // Trigger AP + m2m_wifi_enable_ap(&apConfig); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_enable_ap(const tstrM2MAPConfig *pstrM2MAPConfig); + +/*! +@ingroup WLANAP +@fn \ + int8_t m2m_wifi_enable_ap_ext(const tstrM2MAPModeConfig *pstrM2MAPModeConfig); + +@brief + Asynchronous API to enable access point (AKA "hot-spot") mode on the WINC with extended options. + +@details + The WINC supports the ability to operate as an access point with the following limitations: + - Only 1 station may be associated at any given time. + - Open system and WEP are the only security suites supported. + +@param[in] pstrM2MAPModeConfig + A structure holding the AP configurations. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@warning + This function is not allowed in P2P or STA modes. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at initialization. Registering the callback + is done through passing it to the @ref m2m_wifi_init. + - The event @ref M2M_WIFI_REQ_DHCP_CONF must be handled in the callback. + - The @ref m2m_wifi_handle_events MUST be called to receive the responses in the callback. + +@see + tpfAppWifiCb + tenuM2mSecType + m2m_wifi_init + M2M_WIFI_REQ_DHCP_CONF + tstrM2mWifiStateChanged + tstrM2MAPModeConfig + +@section WIFIExample13 Example + The code snippet demonstrates how the AP mode is enabled after the driver is initialized in the application's main function and the handling + of the event @ref M2M_WIFI_REQ_DHCP_CONF, to indicate successful connection. +@code + #include "m2m_wifi.h" + #include "m2m_types.h" + + void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) + { + switch(u8WiFiEvent) + { + case M2M_WIFI_REQ_DHCP_CONF: + { + uint8_t *pu8IPAddress = (uint8_t*)pvMsg; + + printf("Associated STA has IP Address \"%u.%u.%u.%u\"\n",pu8IPAddress[0],pu8IPAddress[1],pu8IPAddress[2],pu8IPAddress[3]); + } + break; + + default: + break; + } + } + + int main() + { + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + tstrM2MAPModeConfig apModeConfig; + + strcpy(apModeConfig.strApConfig.au8SSID, "WINC_SSID"); + apModeConfig.strApConfig.u8ListenChannel = 1; + apModeConfig.strApConfig.u8SecType = M2M_WIFI_SEC_OPEN; + apModeConfig.strApConfig.u8SsidHide = 0; + + // IP Address + apModeConfig.strApConfig.au8DHCPServerIP[0] = 192; + apModeConfig.strApConfig.au8DHCPServerIP[1] = 168; + apModeConfig.strApConfig.au8DHCPServerIP[2] = 1; + apModeConfig.strApConfig.au8DHCPServerIP[3] = 1; + + // Default router IP + memcpy(apModeConfig.strApConfigExt.au8DefRouterIP, apModeConfig.strApConfig.au8DHCPServerIP, 4); + + // DNS Server IP + memcpy(apModeConfig.strApConfigExt.au8DNSServerIP, apModeConfig.strApConfig.au8DHCPServerIP, 4); + + // Subnet mask + apModeConfig.strApConfigExt.au8SubnetMask[0] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[1] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[2] = 255; + apModeConfig.strApConfigExt.au8SubnetMask[3] = 0; + + // Trigger AP + m2m_wifi_enable_ap_ext(&apModeConfig); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } + } +@endcode +*/ +int8_t m2m_wifi_enable_ap_ext(const tstrM2MAPModeConfig *pstrM2MAPModeConfig); + +/*! +@ingroup WLANAP +@fn \ + int8_t m2m_wifi_disable_ap(void); + +@brief + Synchronous API to disable access point mode on the WINC. + +@details + Must be called only when the AP is enabled through the @ref m2m_wifi_enable_ap + function. Otherwise the call to this function will not be useful. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_ap +*/ +int8_t m2m_wifi_disable_ap(void); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_set_static_ip(tstrM2MIPConfig * pstrStaticIPConf); + +@brief + Asynchronous API to manually assign a (static) IP address to the WINC. + +@details + Assigns a static IP address to the WINC. + Typically an infrastructure access point will be able to provide an IP address to all clients + after they associate. The WINC will request configuration via DHCP automatically after + successfully connecting to an access point. + This function should only be called in the event that the network has no DHCP server or in case the application + wants to assign a predefined known IP address and the application. + This function can be used to assign a static IP address in case the application knows the specifics of the network. + The user must keep in mind that assigning a static IP address might + result in an IP address conflict. In case of an IP address conflict observed + by the WINC the user will get a response of @ref M2M_WIFI_RESP_IP_CONFLICT + in the wifi callback. The application is then responsible to either solve the + conflict or assign another IP address. + +@pre + The application must first call @ref m2m_wifi_enable_dhcp to request that DHCP functionality is + disabled prior to calling this function. + +@warning + Exercise caution using this function. + DHCP is the preferred method for configuring IP addresses. + +@param[in] pstrStaticIPConf + Pointer to a structure holding the static IP configuration (IP, Gateway, subnet mask and DNS address). + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tstrM2MIPConfig +*/ +int8_t m2m_wifi_set_static_ip(tstrM2MIPConfig *pstrStaticIPConf); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_request_dhcp_client(void); + +@brief + Legacy (deprecated) Asynchronous API for starting a DHCP client on the WINC. + +@details + This is a legacy API and is no longer supported. Calls to this API will not result in any + changes being made to the state of the WINC. + +@warning + This function has been deprecated. DHCP is used automatically when the WINC connects. + +@return + This function always returns @ref M2M_SUCCESS. +*/ +int8_t m2m_wifi_request_dhcp_client(void); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_request_dhcp_server(uint8_t* addr); + +@brief + Legacy (deprecated) asynchronous function to start a DHCP client on the WINC. + +@details + This is a legacy API and is no longer supported. Calls to this API will not result in any + changes being made to the state of the WINC. + +@param[in] addr + The address to issue to a connected client (only one client is supported) + +@warning + This function is legacy and exists only for compatibility with older applications. + DHCP server is started automatically when enabling the AP mode. + +@return + This function always returns @ref M2M_SUCCESS. +*/ +int8_t m2m_wifi_request_dhcp_server(uint8_t *addr); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_enable_dhcp(uint8_t u8DhcpEn); + +@brief + Asynchronous function to control the DHCP client functionality within the WINC. + +@details + This function allows the application to control the behaviour of the DHCP client function within + the WINC once it has associated with an access point. DHCP client functionality is enabled by + default. + +@param[in] u8DhcpEn + The state of the DHCP client feature after successful association with an access point: + - 1: Enables DHCP client after connection. + - 0: Disables DHCP client after connection. + +@return + The function returns @ref M2M_SUCCESS for successful operation and a negative value otherwise. + +@warning + DHCP client is enabled by default. + This Function should be called to disable DHCP client operation before using @ref m2m_wifi_set_static_ip. + +@see + m2m_wifi_set_static_ip +*/ +int8_t m2m_wifi_enable_dhcp(uint8_t u8DhcpEn); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_set_scan_options(tstrM2MScanOption* ptstrM2MScanOption); + +@brief + Synchronous API for configuring the behaviour of the WINC network scanning functions. + +@details + This function allows the application to tune the scanning behaviour of the WINC using the + parameters described in @ref tstrM2MScanOption. + +@param[in] ptstrM2MScanOption; + Pointer to the structure holding the Scan Parameters. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tenuM2mScanCh + m2m_wifi_request_scan + tstrM2MScanOption +*/ +int8_t m2m_wifi_set_scan_options(tstrM2MScanOption *ptstrM2MScanOption); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_set_stop_scan_on_first(uint8_t u8StopScanOption); + +@brief + Synchronous API for enabling/disabling the stop scan on first result of the WINC IC's network scanning functions. + +@details + Allows for enabling/disabling of stop scan on first result. When enabled, the WINC will stop the scan as soon as + it detects a network and return the results to the host. Setting is persistent and will need to be explicitly + reverted back by the application if it no longer wishes for it to be enabled. + +@param[in] u8StopScanOption; + Setting for enabling or disabling Stopping Scan on first result. + 1 = Enabled, 0 = Disabled (Default) + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tenuM2mScanCh + tstrM2MScanOption + tstrM2MStopScanOption + m2m_wifi_request_scan + m2m_wifi_set_scan_options +*/ +int8_t m2m_wifi_set_stop_scan_on_first(uint8_t u8StopScanOption); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_set_scan_region(uint16_t ScanRegion); + +@brief + Synchronous API for configuring the regulatory restrictions that may affect the WINC scanning behaviour. + +@details + This function sets a property called the scan region, a parameter that affects the range of + channels that the WINC may legally scan given a geographic region. + + For 2.4GHz, supported in the current release, the requested scan region cannot exceed the + maximum number of channels (14). + +@param[in] ScanRegion + @ref ASIA + @ref EUROPE + @ref NORTH_AMERICA + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tenuM2mScanRegion + m2m_wifi_request_scan +*/ +int8_t m2m_wifi_set_scan_region(uint16_t ScanRegion); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_request_scan(uint8_t ch); + +@brief + Asynchronous API to request the WINC to scan for networks. + +@details + Scan statuses are delivered to the application via the Wi-Fi event callback (@ref tpfAppWifiCb) in + three stages. The first step involves the event @ref M2M_WIFI_RESP_SCAN_DONE which, if successful, + provides the number of detected networks (access points). The application must then read the list + of access points via multiple calls to the asynchronous @ref m2m_wifi_req_scan_result API. For + each call to this function, the application will receive (step three) the event + @ref M2M_WIFI_RESP_SCAN_RESULT. + +@param[in] ch + RF Channel ID for SCAN operation. It should be set according to @ref tenuM2mScanCh, with a + value of @ref M2M_WIFI_CH_ALL to scan all channels. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at + initialization. Registration of the callback is done via @ref m2m_wifi_init. + - The events @ref M2M_WIFI_RESP_SCAN_DONE and @ref M2M_WIFI_RESP_SCAN_RESULT must be handled in + the (@ref tpfAppWifiCb) callback. + - The @ref m2m_wifi_handle_events function MUST be called to receive the responses in the + callback. + +@warning + This API is valid only for STA mode, it may be called regardless of connection state (connected or disconnected states). + +@see + M2M_WIFI_RESP_SCAN_DONE + M2M_WIFI_RESP_SCAN_RESULT + tpfAppWifiCb + tstrM2mWifiscanResult + tenuM2mScanCh + m2m_wifi_init + m2m_wifi_handle_events + m2m_wifi_req_scan_result + +@section WIFIExample6 Example + The code snippet demonstrates an example of how the scan request is called from the application's main function and the handling of + the events received in response. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + static uint8_t u8ScanResultIdx = 0; + + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_SCAN_DONE: + { + tstrM2mScanDone *pstrInfo = (tstrM2mScanDone*)pvMsg; + + printf("Num of AP found %d\n",pstrInfo->u8NumofCh); + if(pstrInfo->s8ScanState == M2M_SUCCESS) + { + u8ScanResultIdx = 0; + if(pstrInfo->u8NumofCh >= 1) + { + m2m_wifi_req_scan_result(u8ScanResultIdx); + u8ScanResultIdx ++; + } + else + { + printf("No AP Found Rescan\n"); + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + } + } + else + { + printf("(ERR) Scan fail with error <%d>\n",pstrInfo->s8ScanState); + } + } + break; + + case M2M_WIFI_RESP_SCAN_RESULT: + { + tstrM2mWifiscanResult *pstrScanResult = (tstrM2mWifiscanResult*)pvMsg; + uint8_t u8NumFoundAPs = m2m_wifi_get_num_ap_found(); + + printf(">>%02d RI %d SEC %s CH %02d BSSID %02X:%02X:%02X:%02X:%02X:%02X SSID %s\n", + pstrScanResult->u8index,pstrScanResult->s8rssi, + pstrScanResult->u8AuthType, + pstrScanResult->u8ch, + pstrScanResult->au8BSSID[0], pstrScanResult->au8BSSID[1], pstrScanResult->au8BSSID[2], + pstrScanResult->au8BSSID[3], pstrScanResult->au8BSSID[4], pstrScanResult->au8BSSID[5], + pstrScanResult->au8SSID); + + if(u8ScanResultIdx < u8NumFoundAPs) + { + // Read the next scan result + m2m_wifi_req_scan_result(index); + u8ScanResultIdx ++; + } + } + break; + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Scan all channels + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_request_scan(uint8_t ch); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_request_scan_passive(uint8_t ch); + +@brief + Similar to @ref m2m_wifi_request_scan but performs passive scanning instead of active scanning. + +@param[in] ch + RF Channel ID for SCAN operation. It should be set according to @ref tenuM2mScanCh. + With a value of @ref M2M_WIFI_CH_ALL, means to scan all channels. + + +@warning + This function is not allowed in P2P or AP modes. It works only for STA mode (both connected or disconnected states). + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at initialization. Registering the callback + is done through passing it to the @ref m2m_wifi_init. + - The events @ref M2M_WIFI_RESP_SCAN_DONE and @ref M2M_WIFI_RESP_SCAN_RESULT. + must be handled in the callback. + - The @ref m2m_wifi_handle_events function MUST be called to receive the responses in the callback. + +@see + M2M_WIFI_RESP_SCAN_DONE + M2M_WIFI_RESP_SCAN_RESULT + tpfAppWifiCb + tstrM2MScanOption + tstrM2mWifiscanResult + tenuM2mScanCh + m2m_wifi_init + m2m_wifi_request_scan + m2m_wifi_handle_events + m2m_wifi_req_scan_result + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. +*/ +int8_t m2m_wifi_request_scan_passive(uint8_t ch); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_request_scan_ssid_list(uint8_t ch, uint8_t *u8SsidList); + +@brief + Asynchronous wi-fi scan request on the given channel and the hidden scan list. + +@details + The scan status is delivered in the wi-fi event callback and then the application + is to read the scan results sequentially. + The number of APs found (N) is returned in event @ref M2M_WIFI_RESP_SCAN_DONE with the number of found + APs. + The application could read the list of APs by calling the function @ref m2m_wifi_req_scan_result N times. + +@param[in] ch + RF Channel ID for SCAN operation. It should be set according to @ref tenuM2mScanCh. + With a value of @ref M2M_WIFI_CH_ALL, means to scan all channels. + +@param[in] u8SsidList + u8SsidList is a buffer containing a list of hidden SSIDs to + include during the scan. The first byte in the buffer, u8SsidList[0], + is the number of SSIDs encoded in the string. The number of hidden SSIDs + cannot exceed @ref MAX_HIDDEN_SITES. All SSIDs are concatenated in the following + bytes and each SSID is prefixed with a one-byte header containing its length. + The total number of bytes in u8SsidList buffer, including length byte, cannot + exceed 133 bytes (MAX_HIDDEN_SITES SSIDs x 32 bytes each, which is max SSID length). + For instance, encoding the two hidden SSIDs "DEMO_AP" and "TEST" + results in the following buffer content: + +@code + uint8_t u8SsidList[14]; + u8SsidList[0] = 2; // Number of SSIDs is 2 + u8SsidList[1] = 7; // Length of the string "DEMO_AP" without NULL termination + memcpy(&u8SsidList[2], "DEMO_AP", 7); // Bytes index 2-9 containing the string DEMO_AP + u8SsidList[9] = 4; // Length of the string "TEST" without NULL termination + memcpy(&u8SsidList[10], "TEST", 4); // Bytes index 10-13 containing the string TEST +@endcode + +@note + It works with STA/AP mode (connected or disconnected). + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at initialization. Registering the callback + is done through passing it to the @ref m2m_wifi_init. + - The events @ref M2M_WIFI_RESP_SCAN_DONE and @ref M2M_WIFI_RESP_SCAN_RESULT. + must be handled in the callback. + - The @ref m2m_wifi_handle_events function MUST be called to receive the responses in the callback. + +@see + M2M_WIFI_RESP_SCAN_DONE + M2M_WIFI_RESP_SCAN_RESULT + tpfAppWifiCb + tstrM2mWifiscanResult + tenuM2mScanCh + m2m_wifi_init + m2m_wifi_handle_events + m2m_wifi_req_scan_result + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + +\section WIFIExample6b Example + The code snippet demonstrates an example of how the scan request is called from the application's main function and the handling of + the events received in response. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +static void request_scan_hidden_demo_ap(void); + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + static uint8_t u8ScanResultIdx = 0; + + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_SCAN_DONE: + { + tstrM2mScanDone *pstrInfo = (tstrM2mScanDone*)pvMsg; + + printf("Num of AP found %d\n",pstrInfo->u8NumofCh); + if(pstrInfo->s8ScanState == M2M_SUCCESS) + { + u8ScanResultIdx = 0; + if(pstrInfo->u8NumofCh >= 1) + { + m2m_wifi_req_scan_result(u8ScanResultIdx); + u8ScanResultIdx ++; + } + else + { + printf("No AP Found Rescan\n"); + request_scan_hidden_demo_ap(); + } + } + else + { + printf("(ERR) Scan fail with error <%d>\n",pstrInfo->s8ScanState); + } + } + break; + case M2M_WIFI_RESP_SCAN_RESULT: + { + tstrM2mWifiscanResult *pstrScanResult =(tstrM2mWifiscanResult*)pvMsg; + uint8_t u8NumFoundAPs = m2m_wifi_get_num_ap_found(); + + printf(">>%02d RI %d SEC %s CH %02d BSSID %02X:%02X:%02X:%02X:%02X:%02X SSID %s\n", + pstrScanResult->u8index,pstrScanResult->s8rssi, + pstrScanResult->u8AuthType, + pstrScanResult->u8ch, + pstrScanResult->au8BSSID[0], pstrScanResult->au8BSSID[1], pstrScanResult->au8BSSID[2], + pstrScanResult->au8BSSID[3], pstrScanResult->au8BSSID[4], pstrScanResult->au8BSSID[5], + pstrScanResult->au8SSID); + + if(u8ScanResultIdx < u8NumFoundAPs) + { + // Read the next scan result + m2m_wifi_req_scan_result(index); + u8ScanResultIdx ++; + } + } + break; + default: + break; + } +} + +static void request_scan_hidden_demo_ap(void) +{ + uint8_t list[9]; + char ssid[] = "DEMO_AP"; + uint8 len = (uint8_t)(sizeof(ssid)-1); + + list[0] = 1; + list[1] = len; + memcpy(&list[2], ssid, len); // copy 7 bytes + // Scan all channels + m2m_wifi_request_scan_ssid_list(M2M_WIFI_CH_ALL, list); +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + request_scan_hidden_demo_ap(); + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_request_scan_ssid_list(uint8_t ch, uint8_t *u8Ssidlist); + +/*! +@ingroup WLANSCAN +@fn \ + uint8_t m2m_wifi_get_num_ap_found(void); + +@brief + Synchronous function to retrieve the number of AP's found during the last scan operation. + +@details + This function allows the application to recover the number of access points discovered during + the most recent scan activity. This is achieved via a global variable in the WINC driver that + is populated when receiving the @ref M2M_WIFI_RESP_SCAN_DONE event. + Function to be used in STA mode only. + +@see + m2m_wifi_request_scan + M2M_WIFI_RESP_SCAN_DONE + M2M_WIFI_RESP_SCAN_RESULT + +@pre + m2m_wifi_request_scan must be called first to ensure up to date results are available. + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered at initialization. Registering the callback + is done through passing it to the @ref m2m_wifi_init. + - The event @ref M2M_WIFI_RESP_SCAN_DONE must be handled in the callback to receive the requested scan information. + +@warning + This function must be called only in the wi-fi callback function when the events + @ref M2M_WIFI_RESP_SCAN_DONE or @ref M2M_WIFI_RESP_SCAN_RESULT are received. + Calling this function in any other place will result in undefined/outdated numbers. + +@return + Returns the number of AP's found in the last Scan Request. + +@section WIFIExample7 Example + The code snippet demonstrates an example of how the scan request is called from the application's main function and the handling of + the events received in response. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + static uint8_t u8ScanResultIdx = 0; + + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_SCAN_DONE: + { + tstrM2mScanDone *pstrInfo = (tstrM2mScanDone*)pvMsg; + + printf("Num of AP found %d\n",pstrInfo->u8NumofCh); + if(pstrInfo->s8ScanState == M2M_SUCCESS) + { + u8ScanResultIdx = 0; + if(pstrInfo->u8NumofCh >= 1) + { + m2m_wifi_req_scan_result(u8ScanResultIdx); + u8ScanResultIdx ++; + } + else + { + printf("No AP Found Rescan\n"); + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + } + } + else + { + printf("(ERR) Scan fail with error <%d>\n",pstrInfo->s8ScanState); + } + } + break; + case M2M_WIFI_RESP_SCAN_RESULT: + { + tstrM2mWifiscanResult *pstrScanResult =(tstrM2mWifiscanResult*)pvMsg; + uint8_t u8NumFoundAPs = m2m_wifi_get_num_ap_found(); + + printf(">>%02d RI %d SEC %s CH %02d BSSID %02X:%02X:%02X:%02X:%02X:%02X SSID %s\n", + pstrScanResult->u8index,pstrScanResult->s8rssi, + pstrScanResult->u8AuthType, + pstrScanResult->u8ch, + pstrScanResult->au8BSSID[0], pstrScanResult->au8BSSID[1], pstrScanResult->au8BSSID[2], + pstrScanResult->au8BSSID[3], pstrScanResult->au8BSSID[4], pstrScanResult->au8BSSID[5], + pstrScanResult->au8SSID); + + if(u8ScanResultIdx < u8NumFoundAPs) + { + // Read the next scan result + m2m_wifi_req_scan_result(index); + u8ScanResultIdx ++; + } + } + break; + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Scan all channels + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +uint8_t m2m_wifi_get_num_ap_found(void); + +/*! +@ingroup WLANSCAN +@fn \ + int8_t m2m_wifi_req_scan_result(uint8_t index); + +@brief + Asynchronous API to request the information of an access point discovered via scanning. + +@details + This function allows the information of any discovered access point to be retrieved. When a + scan is completed, the application is informed of the number of networks (access points) + discovered. Calling this function with an index, N, will return the information for the Nth + access point. The information will be returned to the application via a + @ref M2M_WIFI_RESP_SCAN_RESULT event, and the response data may be obtained through casting + the pointer (pvMsg) to @ref tstrM2mWifiscanResult. + +@param[in] index + Index for the requested result, the index range start from 0 till number of AP's found. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tstrM2mWifiscanResult + m2m_wifi_get_num_ap_found + m2m_wifi_request_scan + +@pre + - @ref m2m_wifi_request_scan must be called first to ensure up to date results are available. + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered + in order to receive scan data after calling this function. Registration of the callback + is done via the @ref m2m_wifi_init function. + - The event @ref M2M_WIFI_RESP_SCAN_RESULT must be handled in the callback to receive the + requested scan information. + +@warning + - This API is valid only for STA mode, it may be called regardless of the connection state (connected or disconnected). + - Calling this function without first issuing a scan request may lead to stale data being recovered. + - Application code should refrain from introducing significant delays between issuing the scan + request and scan result requests. + +@section WIFIExample8 Example + The code snippet demonstrates an example of how the scan request is called from the application's main function and + the handling of the events received in the response. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + static uint8_t u8ScanResultIdx = 0; + + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_SCAN_DONE: + { + tstrM2mScanDone *pstrInfo = (tstrM2mScanDone*)pvMsg; + + printf("Num of AP found %d\n",pstrInfo->u8NumofCh); + if(pstrInfo->s8ScanState == M2M_SUCCESS) + { + u8ScanResultIdx = 0; + if(pstrInfo->u8NumofCh >= 1) + { + m2m_wifi_req_scan_result(u8ScanResultIdx); + u8ScanResultIdx ++; + } + else + { + printf("No AP Found Rescan\n"); + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + } + } + else + { + printf("(ERR) Scan fail with error <%d>\n",pstrInfo->s8ScanState); + } + } + break; + + case M2M_WIFI_RESP_SCAN_RESULT: + { + tstrM2mWifiscanResult *pstrScanResult =(tstrM2mWifiscanResult*)pvMsg; + uint8_t u8NumFoundAPs = m2m_wifi_get_num_ap_found(); + + printf(">>%02d RI %d SEC %s CH %02d BSSID %02X:%02X:%02X:%02X:%02X:%02X SSID %s\n", + pstrScanResult->u8index,pstrScanResult->s8rssi, + pstrScanResult->u8AuthType, + pstrScanResult->u8ch, + pstrScanResult->au8BSSID[0], pstrScanResult->au8BSSID[1], pstrScanResult->au8BSSID[2], + pstrScanResult->au8BSSID[3], pstrScanResult->au8BSSID[4], pstrScanResult->au8BSSID[5], + pstrScanResult->au8SSID); + + if(u8ScanResultIdx < u8NumFoundAPs) + { + // Read the next scan result + m2m_wifi_req_scan_result(index); + u8ScanResultIdx ++; + } + } + break; + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Scan all channels + m2m_wifi_request_scan(M2M_WIFI_CH_ALL); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_req_scan_result(uint8_t index); + +/*! +@ingroup WLANCONNECT +@fn \ + int8_t m2m_wifi_req_curr_rssi(void); + +@brief + Asynchronous API to request the current Receive Signal Strength (RSSI) of the current connection. + +@details + This function will result in the application receiving the RSSI via a + @ref M2M_WIFI_RESP_CURRENT_RSSI event. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered + during initialization. Registration of the callback is done through passing it to @ref m2m_wifi_init + via the @ref tstrWifiInitParam initialization structure. + - The event @ref M2M_WIFI_RESP_CURRENT_RSSI must be handled in the callback to receive the requested Rssi information. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@section WIFIExample9 Example + The code snippet demonstrates how the RSSI request is called in the application's main function and the handling of the event received in the callback. +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +void wifi_event_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + static uint8_t u8ScanResultIdx = 0; + + switch(u8WiFiEvent) + { + case M2M_WIFI_RESP_CURRENT_RSSI: + { + int8_t *rssi = (int8_t*)pvMsg; + M2M_INFO("ch rssi %d\n",*rssi); + } + break; + default: + break; + } +} + +int main() +{ + tstrWifiInitParam param; + + param.pfAppWifiCb = wifi_event_cb; + if(!m2m_wifi_init(¶m)) + { + // Scan all channels + m2m_wifi_req_curr_rssi(); + + while(1) + { + m2m_wifi_handle_events(NULL); + } + } +} +@endcode +*/ +int8_t m2m_wifi_req_curr_rssi(void); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t * pu8IsValid); + +@brief + Synchronous API to query the MAC address programmed into the WINC OTP memory. + +@details + This function attempts to read the device's MAC address from the One Time Programmable (OTP) + memory on the WINC. The presence (yes or no) of a MAC address in the OTP memory and, in the case + of it being present, its value is returned via RAM pointed to by the input arguments. + + Request the MAC address stored on the One Time Programmable(OTP) memory of the device. + The function is blocking until the response is received. + +@pre + Prior call to @ref m2m_wifi_init is required before any WIFI/socket function. + +@param[out] pu8MacAddr + Output MAC address buffer 6 bytes in size. Valid only if *pu8Valid=1. + +@param[out] pu8IsValid + A boolean value set by the callee to indicate the validity of pu8MacAddr in OTP. If no MAC has + been programmed in the OTP the value of this parameter will be zero; otherwise it will be non-zero. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + m2m_wifi_get_mac_address +*/ +int8_t m2m_wifi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t *pu8IsValid); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_get_mac_address(uint8_t *pu8MacAddr) + +@brief + Synchronous API to retrieve the MAC address currently in use by the device. + +@details + This function obtains the MAC address that is currently in use by the device. If the function + returns with @ref M2M_SUCCESS then the content of the memory referenced by pu8MacAddr will be + populated with the 6 byte MAC address; otherwise, that memory will be left unchanged. + +@pre + Prior call to @ref m2m_wifi_init is required before any WIFI/socket function. + +@param[out] pu8MacAddr + Pointer to a buffer in memory containing a 6-byte MAC address (provided function returns @ref M2M_SUCCESS). + +@return + The function returns @ref M2M_SUCCESS for successful operation and a negative value otherwise. + +@see + m2m_wifi_get_otp_mac_address +*/ +int8_t m2m_wifi_get_mac_address(uint8_t *pu8MacAddr); + +/*! +@ingroup WLANPS +@fn \ + int8_t m2m_wifi_set_sleep_mode(uint8_t PsTyp, uint8_t BcastEn); + +@brief + Synchronous API to set the power-save mode of the WINC. + +@details + This is one of the two synchronous power-save setting functions that allow the host MCU application + to tweak the system power consumption. Such tweaking can be done through one of two ways: + - 1) Changing the power save mode, to one of the allowed power save modes (see @ref tenuPowerSaveModes). This is done by setting the first parameter. + - 2) Configuring DTIM monitoring: Configuring beacon monitoring parameters by enabling or disabling the reception of broadcast/multicast data. + This is done by setting the second parameter. + +@param[in] PsTyp + Desired power saving mode. Supported types are enumerated in @ref tenuPowerSaveModes. + +@param[in] BcastEn + Broadcast reception enable flag. + If set to 1, the WINC will wake for each DTIM beacon to ensure broadcast traffic can be received. + If set to 0, the WINC will not wakeup at the DTIM beacon, ignoring broadcast traffic, instead it will + wake every N beacon periods, as per the negotiated Listen Interval. + +@warning + The function called once after initialization. + +@return + The function returns @ref M2M_SUCCESS for successful operation and a negative value otherwise. + +@see + tenuPowerSaveModes + m2m_wifi_get_sleep_mode + m2m_wifi_set_lsn_int +*/ +int8_t m2m_wifi_set_sleep_mode(uint8_t PsTyp, uint8_t BcastEn); + +/*! +@ingroup WLANPS +@fn \ + int8_t m2m_wifi_request_sleep(uint32_t u32SlpReqTime); + +@brief + Asynchronous API to place the WINC into sleep mode for a specified period of time. + +@details + Power-save sleep request function, which requests the WINC device to sleep in the currently configured + power save mode, as set using @ref m2m_wifi_set_sleep_mode, for a specific time as defined by the parameter + u32SlpReqTime (measured in milliseconds). + This function should be used when the WINC is running in @ref M2M_PS_MANUAL power save mode only. + A wake up request is automatically performed by the WINC device when any host driver API function, e.g. Wi-Fi or socket operation is called. + +@param[in] u32SlpReqTime + Request sleep time in ms.\n + The best recommended sleep duration is left to be determined by the application. + Taking into account that if the application sends notifications very rarely, + sleeping for a long time can be a power-efficient decision. + In contrast, applications that are sensitive for long periods of absence can experience + performance degradation in the connection if long sleeping times are used. + +@return + The function returns @ref M2M_SUCCESS for successful operation and a negative value otherwise. + +@warning + - This API is currently unsupported on the WINC3400 + +@see + tenuPowerSaveModes + m2m_wifi_set_sleep_mode +*/ +int8_t m2m_wifi_request_sleep(uint32_t u32SlpReqTime); + +/*! +@ingroup WLANPS +@fn \ + uint8_t m2m_wifi_get_sleep_mode(void); + +@brief + Synchronous API to retrieve the current power save mode of the WINC. + +@return + The current operating power saving mode. The value will be one of those from the enumerated type @ref tenuPowerSaveModes. + +@see + tenuPowerSaveModes + m2m_wifi_set_sleep_mode +*/ +uint8_t m2m_wifi_get_sleep_mode(void); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_set_device_name(uint8_t *pu8DeviceName, uint8_t u8DeviceNameLength); + +@brief + Asynchronous API to set the Wi-Fi Direct "Device Name" of the WINC. + +@details + Sets the WINC device name. The name string is used as a device name in DHCP + hostname (option 12). + If a device is not set through this function a default name is assigned. + The default name is WINC-XX-YY, where XX and YY are the last 2 octets of the OTP + MAC address. If OTP (eFuse) is programmed, then the default name is WINC-00-00. + +@warning + The function called once after initialization.\n + Used for DHCP client hostname option (12).\n + Device name shall contain only characters allowed in valid internet host name as + defined in RFC 952 and 1123. + +@param[in] pu8DeviceName + Buffer holding the device name. Device name is a null terminated C string. + +@param[in] u8DeviceNameLength + Length of the device name. Should not exceed the maximum device name's + length @ref M2M_DEVICE_NAME_MAX (including null character). + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. +*/ +int8_t m2m_wifi_set_device_name(uint8_t *pu8DeviceName, uint8_t u8DeviceNameLength); + +/*! +@ingroup WLANTIME +@fn \ + int8_t m2m_wifi_configure_sntp(uint8_t *pu8NTPServerName, uint8_t u8NTPServerNameLength, tenuSNTPUseDHCP useDHCP); + +@brief + Configures what NTP server the SNTP client should use. + +@details + Configures what NTP server the SNTP client should use. Only 1 server name can be provided, if the configured server name begins with an asterisk then it will be treated as a server pool. + The SNTP client can also use the NTP server provided by the DHCP server through option 42. + By default the NTP server provided by DHCP will be tried first, then the built-in default NTP server (time.nist.gov) will be used. + +@param[in] pu8NTPServerName + Buffer holding the NTP server name. If the first character is an asterisk (*) then it will be treated as a server pool, where the asterisk will + be replaced with an incrementing value from 0 to 3 each time a server fails (example: *.pool.ntp.org). + +@param[in] u8NTPServerNameLength + Length of the NTP server name. Should not exceed the maximum NTP server name length of @ref M2M_NTP_MAX_SERVER_NAME_LENGTH. + +@param[in] useDHCP + Explicity tell the WINC if it should use the NTP server provided by the DHCP server or not. + +@warning + SNTP should be configured before the connection takes place. If SNTP is configured after the device connects to a + network, the new configuration can take a minimum of 24h to be applied. However, it can take even longer since it is + triggered by DHCP renewal. + Currently there is also a known issue in which if the WINC obtains the NTP server from DHCP and then connects to a + different network, it will still use the NTP from the previous network. + Configuring a server name will overwrite the built-in default server until next reboot. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_wifi_configure_sntp(uint8_t *pu8NTPServerName, uint8_t u8NTPServerNameLength, tenuSNTPUseDHCP useDHCP); + +/*! +@ingroup WLANPS +@fn \ + int8_t m2m_wifi_set_lsn_int(tstrM2mLsnInt * pstrM2mLsnInt); + +@brief + Asynchronous API to set Wi-Fi listen interval for power save operation. + +@details + This is one of the two synchronous power-save setting functions that + allow the host MCU application to tweak the system power consumption. Such tweaking can be done by modifying the + Wi-Fi listen interval. The listen interval is how many beacon periods the station can sleep before it wakes up to receive data buffered in the AP. + It is represented in units of AP beacon periods(100ms). + +@warning + The function should be called once after initialization. + +@param[in] pstrM2mLsnInt + Structure holding the listen interval configuration. + +@pre + The function @ref m2m_wifi_set_sleep_mode shall be called first, to set the power saving mode required. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tstrM2mLsnInt + m2m_wifi_set_sleep_mode +*/ +int8_t m2m_wifi_set_lsn_int(tstrM2mLsnInt *pstrM2mLsnInt); + +/**@cond MON_DOC + */ +/*! +@ingroup WLANMON +@fn \ + int8_t m2m_wifi_enable_monitoring_mode(tstrM2MWifiMonitorModeCtrl *, uint8_t *, uint16_t , uint16_t); + +@brief + Asynchronous call to enable Wi-Fi monitoring (promiscuous receive) mode. + +@details + Wi-Fi monitoring mode (Promiscuous mode) enabling function. + This function enables the monitoring mode, thus allowing two operations to be + performed: + 1) Transmission of manually configured frames, through using the + @ref m2m_wifi_send_wlan_pkt function. + 2) Reception of frames based on a defined filtering criteria. + + Enabling monitoring mode allows for reception of all frames that satisfy the filter criteria in the input parameter and are received on the current wireless channel. + All packets that meet the filtering criteria are passed to the application layer, to + be handled by the assigned monitoring callback function. + The monitoring callback function must be implemented before starting the monitoring mode, + in-order to handle the packets received. + + A dedicated callback function, @ref tpfAppMonCb, must be registered to handle frames received in + promiscuous mode. This is done via an instance of a @ref tstrWifiInitParam structure and a call to + the @ref m2m_wifi_init function. + +@param[in] pstrMtrCtrl + Pointer to @ref tstrM2MWifiMonitorModeCtrl structure holding the filtering parameters. + +@param[in] pu8PayloadBuffer + Pointer to a Buffer allocated by the application. The buffer SHALL hold the Data field of + the WIFI RX Packet (Or a part from it). If it is set to NULL, the WIFI data payload will + be discarded by the monitoring driver. + +@param[in] u16BufferSize + The total size of the pu8PayloadBuffer in bytes. + +@param[in] u16DataOffset + Starting offset in the DATA FIELD of the received WIFI packet. The application may be interested + in reading specific information from the received packet. It must assign the offset to the starting + position of it relative to the DATA payload start.\n + \e Example, \e if \e the \e SSID \e is \e needed \e to \e be \e read \e from \e a \e PROBE \e REQ + \e packet, \e the \e u16Offset \e MUST \e be \e set \e to \e 0. + +@warning + This mode is available as sniffer ONLY, the WINC cannot be connected in any modes (Station, Access Point or P2P). + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + tstrM2MWifiMonitorModeCtrl + tstrM2MWifiRxPacketInfo + tstrWifiInitParam + tenuM2mScanCh + m2m_wifi_disable_monitoring_mode + m2m_wifi_send_wlan_pkt + m2m_wifi_send_ethernet_pkt + +@section WIFIExample10 Example + The example demonstrates the main function where-by the monitoring enable function is called after + the initialization of the driver and the packets are handled in the callback function. + +@code +#include "m2m_wifi.h" +#include "m2m_types.h" + +//Declare receive buffer +uint8_t gmgmt[1600]; + +//Callback functions +void wifi_cb(uint8_t u8WiFiEvent, void * pvMsg) +{ + ; +} + +void wifi_monitoring_cb(tstrM2MWifiRxPacketInfo *pstrWifiRxPacket, uint8_t *pu8Payload, uint16_t u16PayloadSize) +{ + if((NULL != pstrWifiRxPacket) && (0 != u16PayloadSize)) { + if(MANAGEMENT == pstrWifiRxPacket->u8FrameType) { + M2M_INFO("***# MGMT PACKET #***\n"); + } else if(DATA_BASICTYPE == pstrWifiRxPacket->u8FrameType) { + M2M_INFO("***# DATA PACKET #***\n"); + } else if(CONTROL == pstrWifiRxPacket->u8FrameType) { + M2M_INFO("***# CONTROL PACKET #***\n"); + } + } +} + +int main() +{ + //Register wifi_monitoring_cb + tstrWifiInitParam param; + param.pfAppWifiCb = wifi_cb; + param.pfAppMonCb = wifi_monitoring_cb; + + nm_bsp_init(); + + if(!m2m_wifi_init(¶m)) { + //Enable Monitor Mode with filter to receive all data frames on channel 1 + tstrM2MWifiMonitorModeCtrl strMonitorCtrl = {0}; + strMonitorCtrl.u8ChannelID = M2M_WIFI_CH_1; + strMonitorCtrl.u8FrameType = DATA_BASICTYPE; + strMonitorCtrl.u8FrameSubtype = M2M_WIFI_FRAME_SUB_TYPE_ANY; //Receive any subtype of data frame + m2m_wifi_enable_monitoring_mode(&strMonitorCtrl, gmgmt, sizeof(gmgmt), 0); + + while(1) { + m2m_wifi_handle_events(NULL); + } + } + return 0; +} +@endcode +*/ +int8_t m2m_wifi_enable_monitoring_mode(tstrM2MWifiMonitorModeCtrl *pstrMtrCtrl, uint8_t *pu8PayloadBuffer, + uint16_t u16BufferSize, uint16_t u16DataOffset); + +/*! +@ingroup WLANMON +@fn \ + int8_t m2m_wifi_disable_monitoring_mode(void); + +@brief + Asynchronous API to disable Wi-Fi monitoring (promiscuous receive) mode. + +@details + Disable Wi-Fi monitoring mode (Promiscuous mode). Expected to be called if the monitoring mode is already enabled, + but if it was called without enabling it, no negative impact will reside. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_monitoring_mode + */ +int8_t m2m_wifi_disable_monitoring_mode(void); + +/*! +@ingroup WLANMON +@fn \ + int8_t m2m_wifi_send_wlan_pkt(uint8_t *, uint16_t, uint16_t); + +@brief + Asynchronous API to queue a raw Wi-Fi packet for transmission by the WINC. + +@pre + Enable Monitoring mode first using @ref m2m_wifi_enable_monitoring_mode + +@note + The application is responsible for the packets. + +@warning + This function is only useful when operating in monitoring mode. + +@param[in] pu8WlanPacket + Pointer to a buffer holding the whole WIFI frame. + +@param[in] u16WlanHeaderLength + The size of the WIFI packet header ONLY. + +@param[in] u16WlanPktSize + The size of the whole packet in bytes. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_monitoring_mode + m2m_wifi_disable_monitoring_mode +*/ +int8_t m2m_wifi_send_wlan_pkt(uint8_t *pu8WlanPacket, uint16_t u16WlanHeaderLength, uint16_t u16WlanPktSize); +/**@endcond*/ //MON_DOC + +/*! +@ingroup WLANETH +@fn \ + int8_t m2m_wifi_send_ethernet_pkt(uint8_t* pu8Packet,uint16_t u16PacketSize); + +@brief + Asynchronous API to queue an Ethernet packet for transmission by the WINC. + +@details + Transmit a packet directly in ETHERNET/bypass mode where the TCP/IP stack is disabled + and the implementation of this packet is left to the application developer. + The Ethernet packet composition is left to the application developer. + +@note + Packets are the user's responsibility. + +@warning + This function available in ETHERNET/Bypass mode ONLY. Make sure that application defines ETH_MODE. + +@param[in] pu8Packet + Pointer to a buffer holding the whole Ethernet frame. + +@param[in] u16PacketSize + The size of the whole packet in bytes. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_mac_mcast + m2m_wifi_set_receive_buffer +*/ +int8_t m2m_wifi_send_ethernet_pkt(uint8_t *pu8Packet, uint16_t u16PacketSize); + +/*! +@ingroup WLANTIME +@fn \ + int8_t m2m_wifi_enable_sntp(uint8_t); + +@brief + Asynchronous API to enable or disable the native Simple Network Time Protocol(SNTP) client running on the WINC. + +@details + The SNTP client is enabled by default during chip initialization. This function can be used to + disable or subsequently re-enable the service. + + The service is capable of synchronizing the WINC system clock to the UTC time from a well-known + (and trusted) time server, for example "time.nist.gov". By default the SNTP client will update the + system time once every 24 hours. The ability to track the time accurately is important for various + applications such as checking expiry of X509 certificates during TLS (Transport Layer Security) + session establishment. + + It is highly recommended to leave SNTP enabled if there is no alternative source of timing + information. For systems including an RTC device, SNTP may not be needed and the WINC's time + may be set using the @ref m2m_wifi_set_system_time function. + +@param[in] bEnable + Enables or disables the SNTP service + '0' :disable SNTP + '1' :enable SNTP + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_set_system_time + */ +int8_t m2m_wifi_enable_sntp(uint8_t bEnable); + +/*! +@ingroup WLANTIME +@fn \ + int8_t m2m_wifi_set_system_time(uint32_t); + +@brief + Asynchronous function for setting the system time within the WINC. + +@details + Function for setting the system time in time/date format (@ref uint32_t). + The @ref tstrSystemTime structure can be used as a reference to the time values that + should be set and pass its value as @ref uint32_t. + +@param[in] u32UTCSeconds + Seconds elapsed since January 1, 1900 (NTP Timestamp). + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_sntp + tstrSystemTime + +@note + If there is an RTC on the host MCU, the SNTP may be disabled and the host may set the system + time within the firmware using the API @ref m2m_wifi_set_system_time. + */ +int8_t m2m_wifi_set_system_time(uint32_t u32UTCSeconds); + +/*! +@ingroup WLANTIME +@fn \ + int8_t m2m_wifi_get_system_time(void); + +@brief + Asynchronous API to obtain the system time in use by the WINC. + +@details + This function will request the WINC to report its current system time to the application. The + information will arrive at the application via the @ref tpfAppWifiCb and event @ref M2M_WIFI_RESP_GET_SYS_TIME. + Response time retrieved is parsed into the members defined in the structure @ref tstrSystemTime. + +@note + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered + during initialization. Registration of the callback is done via the @ref m2m_wifi_init API. + - The event @ref M2M_WIFI_RESP_GET_SYS_TIME must be handled in the callback. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_sntp + tstrSystemTime + */ +int8_t m2m_wifi_get_system_time(void); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_set_cust_InfoElement(uint8_t*); + +@brief + Asynchronous API to add or remove a user-defined Information Element. + +@details + This function allows the application to provide a custom Information Element to the + WINC that will be included in all beacon and probe response frames, while in Access Point mode. + If it is required to delete these IEs, fill the buffer with zeros. + +@param[in] pau8M2mCustInfoElement + Pointer to Buffer containing the IE to be used. It is the application developer's + responsibility to ensure on the correctness of the information element's ordering + passed in. + If the pointer is null, this removes any current custom IE. If non-null, the pointer + must reference data in the following format: + +@verbatim + --------------- ---------- ---------- ------------------- -------- -------- ----------- ----------------------- + | Byte[0] | Byte[1] | Byte[2] | Byte[3:length1+2] | ..... | Byte[n] | Byte[n+1] | Byte[n+2:lengthx+2] | + |---------------|----------|----------|-------------------|-------- --------|-----------|---------------------| + | #of all Bytes | IE1 ID | Length1 | Data1(Hex Coded) | ..... | IEx ID | Lengthx | Datax(Hex Coded) | + --------------- ---------- ---------- ------------------- -------- -------- ----------- ----------------------- +@endverbatim + +@warning + Size of All elements combined must not exceed 255 byte. + Used in Access Point Mode. + +@note + IEs Format will follow the above format. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_sntp + +@section WIFIExample11 Example + The example demonstrates how the information elements are set using this function. +@code +char elementData[21]; +static char state = 0; // To Add, Append, and Delete +if(0 == state) { //Add 3 IEs + state = 1; + //Total Number of Bytes + elementData[0]=12; + //First IE + elementData[1]=200; elementData[2]=1; elementData[3]='A'; + //Second IE + elementData[4]=201; elementData[5]=2; elementData[6]='B'; elementData[7]='C'; + //Third IE + elementData[8]=202; elementData[9]=3; elementData[10]='D'; elementData[11]=0; elementData[12]='F'; +} else if(1 == state) { + //Append 2 IEs to others, Notice that we keep old data in array starting with\n + //element 13 and total number of bytes increased to 20 + state = 2; + //Total Number of Bytes + elementData[0]=20; + //Fourth IE + elementData[13]=203; elementData[14]=1; elementData[15]='G'; + //Fifth IE + elementData[16]=204; elementData[17]=3; elementData[18]='X'; elementData[19]=5; elementData[20]='Z'; +} else if(2 == state) { //Delete All IEs + state = 0; + //Total Number of Bytes + elementData[0]=0; +} +m2m_wifi_set_cust_InfoElement(elementData); +@endcode + */ +int8_t m2m_wifi_set_cust_InfoElement(uint8_t *pau8M2mCustInfoElement); + +/*! +@ingroup WLANPS +@fn \ + int8_t m2m_wifi_set_power_profile(uint8_t u8PwrMode); + +@brief + Change the power profile mode. + +@param[in] u8PwrMode + Change the WINC power profile to different mode based on the enumeration @ref tenuM2mPwrMode.\n + Not implemented in WINC3400 firmware. + +@warning + May only be called after initialization, before any connection request, and may not be used to change + the power mode thereafter. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + tenuM2mPwrMode + m2m_wifi_init +*/ +int8_t m2m_wifi_set_power_profile(uint8_t u8PwrMode); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_set_tx_power(uint8_t u8TxPwrLevel); + +@brief + Set the TX power tenuM2mTxPwrLevel. + +@param[in] u8TxPwrLevel + Change the TX power based on the enumeration @ref tenuM2mTxPwrLevel. + +@pre + Must be called after the initialization and before any connection request and can't be changed in runtime. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + tenuM2mTxPwrLevel + m2m_wifi_init +*/ +int8_t m2m_wifi_set_tx_power(uint8_t u8TxPwrLevel); + +/*! +@ingroup WLANLOG +@fn \ + int8_t m2m_wifi_enable_firmware_logs(uint8_t u8Enable); + +@brief + Enable or Disable logs in run time. + +@details + Enable or Disable logs in run time (Disable Firmware logs will enhance the firmware start-up time and performance). + +@param[in] u8Enable + Set 1 to enable the logs, 0 for disable. + +@pre + Must be called after initialization through the following function @ref m2m_wifi_init. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + __DISABLE_FIRMWARE_LOGS__ (build option to disable logs from initializations) + m2m_wifi_init +*/ +int8_t m2m_wifi_enable_firmware_logs(uint8_t u8Enable); + +/*! +@ingroup WLANCONF +@fn \ + int8_t m2m_wifi_set_battery_voltage(uint16_t u16BattVoltx100); + +@brief + Set the battery voltage to update the firmware calculations.\n + Not implemented in WINC3400 firmware. + +@pre + Must be called after initialization through the following function @ref m2m_wifi_init. + +@param [in] u16BattVoltx100 + Battery voltage multiplied by 100 + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@see + m2m_wifi_init +*/ +int8_t m2m_wifi_set_battery_voltage(uint16_t u16BattVoltx100); + +/*! +@ingroup WLANETH +@fn \ + int8_t m2m_wifi_enable_mac_mcast(uint8_t *pu8MulticastMacAddress, uint8_t u8AddRemove); + +@brief + Asynchronous API to add or remove MAC addresses to the multicast filter. + +@details + This function will configure the WINC to receive/ignore multicast packets from certain + MAC address groups when operating in bypass mode. + This function requests the given MAC addresses to be added/removed from the multicast filter. + +@param[in] pu8MulticastMacAddress + Pointer to MAC address + +@param[in] u8AddRemove + A flag to add or remove the MAC ADDRESS, based on the following values: + - 0 : remove MAC address + - 1 : add MAC address + +@note + Maximum number of MAC addresses that could be added is 8. + +@warning + This function is available in ETHERNET/bypass mode ONLY. + Make sure that the application defines ETH_MODE. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_set_receive_buffer + m2m_wifi_send_ethernet_pkt + */ +int8_t m2m_wifi_enable_mac_mcast(uint8_t *pu8MulticastMacAddress, uint8_t u8AddRemove); + +/*! +@ingroup WLANETH +@fn \ + int8_t m2m_wifi_set_receive_buffer(void *pvBuffer, uint16_t u16BufferLen); + +@brief + Synchronous function for setting or modifying the receiver buffer's length. + +@details + Synchronous function for setting or modifying the receiver buffer's length. + In the ETHERNET/bypass mode the application should define a callback of type + @ref tpfAppEthCb, through which the application handles the received + ethernet frames. It is through this callback function that the user can + dynamically modify the length of the currently used receiver buffer. + +@param[in] pvBuffer + Pointer to Buffer to receive data. + NULL pointer causes a negative error @ref M2M_ERR_FAIL. + +@param[in] u16BufferLen + Length of data to be received. Maximum length of data should not exceed the size defined by TCP/IP + defined as @ref SOCKET_BUFFER_MAX_LENGTH + +@warning + This function is available in the Ethernet/bypass mode ONLY. Make sure that the application defines ETH_MODE. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC and a negative value otherwise. + +@see + m2m_wifi_enable_mac_mcast + m2m_wifi_send_ethernet_pkt +*/ +int8_t m2m_wifi_set_receive_buffer(void *pvBuffer, uint16_t u16BufferLen); + +/*! +@ingroup WLANCRYPTO +@fn \ + int8_t m2m_wifi_prng_get_random_bytes(uint8_t* pu8PrngBuff,uint16_t u16PrngSize); + +@brief + Asynchronous function for retrieving from the firmware a pseudo-random set of bytes. + +@details + Asynchronous function for retrieving from the firmware a pseudo-random set of bytes as specified in the size passed in as a parameter. + The registered wifi-cb function retrieves the random bytes through the response @ref M2M_WIFI_RESP_GET_PRNG + +@param[in] pu8PrngBuff + Pointer to a buffer to receive data. + +@param[in] u16PrngSize + Request size in bytes + +@warning + Size greater than the maximum specified (@ref M2M_BUFFER_MAX_SIZE - sizeof(tstrPrng)) + causes a negative error @ref M2M_ERR_FAIL. + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. +*/ +int8_t m2m_wifi_prng_get_random_bytes(uint8_t *pu8PrngBuff, uint16_t u16PrngSize); + +/*! +@ingroup WLANROAMING +@fn \ + int8_t m2m_wifi_enable_roaming(uint8_t bEnableDhcp); + +@brief + Enable WiFi STA roaming. + +@details + m2m_wifi_enable_roaming enables the firmware to trigger the roaming algorithm/steps on link loss with the current AP. + If roaming is successful, the @ref M2M_WIFI_RESP_CON_STATE_CHANGED message with state as @ref M2M_WIFI_ROAMED is sent to the host. + Additionally a @ref M2M_WIFI_REQ_DHCP_CONF message with new DHCP lease details is sent to host (only if bEnableDhcp=1). + If roaming is unsuccessful, a @ref M2M_WIFI_RESP_CON_STATE_CHANGED message with state as @ref M2M_WIFI_DISCONNECTED is sent to host. + +@param[in] bEnableDhcp + 0 : Disables DHCP client execution after roaming to new AP + 1 : Enables DHCP client execution after roaming to new AP + +@pre + Must be called after the initialization. + The roaming algorithm/procedure is internal to the firmware. + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + +@see + m2m_wifi_init +*/ +int8_t m2m_wifi_enable_roaming(uint8_t bEnableDhcp); + +/*! +@ingroup WLANROAMING +@fn \ + int8_t m2m_wifi_disable_roaming(void); + +@brief + Disable WiFi STA roaming. + +@pre + Must be called after the initialization. + +@return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + +@see + m2m_wifi_init +*/ +int8_t m2m_wifi_disable_roaming(void); + +/*! +@ingroup WLANINIT +@fn \ + uint8_t m2m_wifi_get_state(void); + +@brief + Get the wifi state. + +@return + The function returns the current wifi state (see @ref tenuWifiState for the possible states). + +@note + Check the WINC state. See @ref tenuWifiState for possible states.\n + @ref WIFI_STATE_INIT state represents WINC initialized but not started, this is a suitable state + for safe flash access. + +@sa + m2m_wifi_init + m2m_wifi_download_mode +*/ +uint8_t m2m_wifi_get_state(void); + +/*! +@ingroup BLEAPI +@fn \ + int8_t m2m_wifi_ble_api_send(const uint8_t* const msg, const uint32_t len); + +@brief + Asynchronous API to send an encapsulated Atmel BLE message over the Wifi Host Interface. + +@param[in] msg + Pointer to the start of the BLE message to transfer down to the WINC. + +@param[in] len + The length of the message in octets. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC, + and a negative value otherwise. + */ +int8_t m2m_wifi_ble_api_send(uint8_t *msg, uint32_t len); + +/*! +@ingroup BLEAPI +@fn \ + int8_t m2m_wifi_ble_set_gain_table(uint8_t table_idx); + +@brief + Asynchronous API that notifies the WINC with the Gain Table index from Flash that should use to configure the WiFi and BLE gains. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC, + and a negative value otherwise. +*/ +int8_t m2m_wifi_ble_set_gain_table(uint8_t table_idx); + +/*! +@ingroup BLEAPI +@fn \ + int8_t m2m_wifi_req_restrict_ble(void); + +@brief + Asynchronous API to request restricting of BLE functionality by placing the BLE processor in a low power state. + It is recommended to do this if it is known that BLE functionality will not be used for any significant length of time. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC, + and a negative value otherwise. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered + during initialization. Registration of the callback is done via the @ref m2m_wifi_init API. +*/ +int8_t m2m_wifi_req_restrict_ble(void); + +/*! +@ingroup BLEAPI +@fn \ + int8_t m2m_wifi_req_unrestrict_ble(void); + +@brief + Asynchronous API to request un-restricting of BLE functionality by reverting the BLE processor to full power mode. + +@return + The function returns @ref M2M_SUCCESS if the command has been successfully queued to the WINC, + and a negative value otherwise. + +@pre + - A Wi-Fi notification callback of type @ref tpfAppWifiCb MUST be implemented and registered + during initialization. Registration of the callback is done via the @ref m2m_wifi_init API. +*/ +int8_t m2m_wifi_req_unrestrict_ble(void); + +/** @defgroup VERSION Version + @brief + Describes the APIs for reading the version information of the WINC firmware. + @{ + @defgroup VERSIONDEF Defines + @brief + Specifies the macros and defines used by the version APIs. + + @defgroup VERSIONAPI Functions + @brief + Lists the APIs for reading the version information of the WINC firmware. + @} + */ + +/*! +@ingroup VERSIONAPI +@fn \ + int8_t m2m_wifi_get_firmware_version(tstrM2mRev* pstrRev); + +@brief + Synchronous API to obtain the firmware version currently running on the WINC. + +@details + Get the Firmware version info from the active partition, as defined in the structure @ref tstrM2mRev. + +@param[out] pstrRev + Pointer to a variable of type @ref tstrM2mRev, which contains the firmware version parameters. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre + Must be called after initialization through the following function @ref m2m_wifi_init. + +@sa + m2m_wifi_init +*/ +int8_t m2m_wifi_get_firmware_version(tstrM2mRev *pstrRev); + +/*! +@ingroup VERSIONAPI +@fn \ + int8_t m2m_ota_get_firmware_version(tstrM2mRev *pstrRev); + +@brief + Synchronous API to obtain the firmware version of the WINC image that is stored in the inactive flash partition. + This is the image that would run on the WINC if @ref m2m_ota_switch_firmware or @ref m2m_ota_rollback were called, + followed by a reset of the WINC. + +@param[out] pstrRev + Pointer to variable of type @ref tstrM2mRev which contains the ota fw version parameters. + +@return + The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_get_firmware_version(tstrM2mRev *pstrRev); + +/*! +@fn \ + uint32_t m2m_wifi_get_chipId(void) + +@brief + Synchronous API to obtain the firmware WINC chip ID. + +@return + The function returns chipID > 0 or 0 for failure. +*/ +uint32_t m2m_wifi_get_chipId(void); + +/*! +@ingroup OTAFUNCTIONS +@fn int8_t m2m_wifi_check_ota_rb(void); + +@brief + Synchronous API to check presence and compatibility of the WINC image that is stored in the inactive flash partition. + This is the image that would run on the WINC if @ref m2m_ota_switch_firmware or @ref m2m_ota_rollback were called, + followed by a reset of the WINC. + +@return + The function returns @ref M2M_SUCCESS for compatible image and a negative value otherwise. +*/ +int8_t m2m_wifi_check_ota_rb(void); + +#ifdef __cplusplus +} +#endif +#endif /* __M2M_WIFI_H__ */ + diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/nmasic.h b/ChaletLora.X/Source/winc3400_142/driver/include/nmasic.h new file mode 100644 index 0000000..5b20c40 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/nmasic.h @@ -0,0 +1,148 @@ +/******************************************************************************* + This module contains WINC3400 ASIC specific internal APIs. + + File Name: + nmasic.h + + Summary: + This module contains WINC3400 ASIC specific internal APIs. + + Description: + This module contains WINC3400 ASIC specific internal APIs. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _NMASIC_H_ +#define _NMASIC_H_ + +#include "nm_common.h" + +#define NMI_PERIPH_REG_BASE 0x1000 +#define NMI_CHIPID (NMI_PERIPH_REG_BASE) +#define rNMI_GP_REG_0 (0x149c) +#define rNMI_GP_REG_1 (0x14A0) +#define rNMI_GLB_RESET (0x1400) +#define rNMI_BOOT_RESET_MUX (0x1118) +#define NMI_STATE_REG (0x108c) +#define BOOTROM_REG (0xc000c) +#define NMI_REV_REG (0x207ac) /*Also, Used to load ATE firmware from SPI Flash and to ensure that it is running too*/ +#define M2M_WAIT_FOR_HOST_REG (0x207bc) +#define M2M_FINISH_INIT_STATE 0x02532636UL +#define M2M_FINISH_BOOT_ROM 0x10add09eUL +#define M2M_START_FIRMWARE 0xef522f61UL +#define M2M_START_PS_FIRMWARE 0x94992610UL + +#define M2M_ATE_FW_START_VALUE (0x3C1CD57D) /*Also, Change this value in boot_firmware if it will be changed here*/ +#define M2M_ATE_FW_IS_UP_VALUE (0xD75DC1C3) /*Also, Change this value in ATE (Burst) firmware if it will be changed here*/ + +#define REV_2B0 (0x2B0) +#define REV_B0 (0x2B0) +#define REV_3A0 (0x3A0) +#define CHIP_ID_3000D (0x3000D0) + +#define GET_CHIPID() nmi_get_chipid() +#define ISNMC1000(id) (((id & 0xfffff000) == 0x100000) ? 1 : 0) +#define ISNMC1500(id) (((id & 0xfffff000) == 0x150000) ? 1 : 0) +#define ISNMC3400(id) (((id & 0xfff0f000) == 0x300000) ? 1 : 0) +#define REV(id) ( ((id) & 0x00000fff ) ) +#define EFUSED_MAC(value) (value & 0xffff0000) + +#define rHAVE_SDIO_IRQ_GPIO_BIT (NBIT0) +#define rHAVE_USE_PMU_BIT (NBIT1) +#define rHAVE_SLEEP_CLK_SRC_RTC_BIT (NBIT2) +#define rHAVE_SLEEP_CLK_SRC_XO_BIT (NBIT3) +#define rHAVE_EXT_PA_INV_TX_RX (NBIT4) +#define rHAVE_LEGACY_RF_SETTINGS (NBIT5) +#define rHAVE_LOGS_DISABLED_BIT (NBIT6) +#define rHAVE_ETHERNET_MODE_BIT (NBIT7) + +typedef struct { + uint32_t u32Mac_efuse_mib; + uint32_t u32Firmware_Ota_rev; +} tstrGpRegs; + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @fn nm_clkless_wake + * @brief Wakeup the chip using clockless registers + * @return ZERO in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_clkless_wake(void); + +int8_t chip_wake(void); + +int8_t chip_sleep(void); + +void chip_idle(void); + +void enable_rf_blocks(void); + +int8_t enable_interrupts(void); + +int8_t cpu_start(void); + +uint32_t nmi_get_chipid(void); + +uint32_t nmi_get_rfrevid(void); + +void restore_pmu_settings_after_global_reset(void); + +void nmi_update_pll(void); + +void nmi_set_sys_clk_src_to_xo(void); + +int8_t chip_reset(void); + +int8_t wait_for_bootrom(uint8_t); + +int8_t wait_for_firmware_start(uint8_t); + +int8_t chip_deinit(void); + +int8_t chip_reset_and_cpu_halt(void); + +int8_t set_gpio_dir(uint8_t gpio, uint8_t dir); + +int8_t set_gpio_val(uint8_t gpio, uint8_t val); + +int8_t get_gpio_val(uint8_t gpio, uint8_t* val); + +int8_t pullup_ctrl(uint32_t pinmask, uint8_t enable); + +int8_t nmi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t * pu8IsValid); + +int8_t nmi_get_mac_address(uint8_t *pu8MacAddr); + +int8_t chip_apply_conf(uint32_t u32conf); + +#ifdef __cplusplus +} +#endif + +#endif /*_NMASIC_H_*/ diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/nmbus.h b/ChaletLora.X/Source/winc3400_142/driver/include/nmbus.h new file mode 100644 index 0000000..dd13e9a --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/nmbus.h @@ -0,0 +1,137 @@ +/******************************************************************************* + This module contains WINC3400 bus APIs implementation. + + File Name: + nmbus.h + + Summary: + This module contains WINC3400 bus APIs implementation. + + Description: + This module contains WINC3400 bus APIs implementation. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _NMBUS_H_ +#define _NMBUS_H_ + +#include "nm_common.h" + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @fn nm_bus_iface_init + * @brief Initialize bus interface + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_init(void *pvInitVal); + +/** + * @fn nm_bus_iface_deinit + * @brief Deinitialize bus interface + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_deinit(void); + +/** + * @fn nm_bus_reset + * @brief Reset bus interface + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + * @version 1.0 + */ +int8_t nm_bus_reset(void); + +/** + * @fn nm_bus_iface_reconfigure + * @brief Reconfigure bus interface + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_reconfigure(void *ptr); + +/** + * @fn nm_read_reg + * @brief Read register + * @param[in] u32Addr + * Register address + * @return Register value + */ +uint32_t nm_read_reg(uint32_t u32Addr); + +/** + * @fn nm_read_reg_with_ret + * @brief Read register with error code return + * @param[in] u32Addr + * Register address + * @param[out] pu32RetVal + * Pointer to u32 variable used to return the read value + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_read_reg_with_ret(uint32_t u32Addr, uint32_t* pu32RetVal); + +/** + * @fn nm_write_reg + * @brief Write register + * @param[in] u32Addr + * Register address + * @param[in] u32Val + * Value to be written to the register + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_write_reg(uint32_t u32Addr, uint32_t u32Val); + +/** + * @fn nm_read_block + * @brief Read block of data + * @param[in] u32Addr + * Start address + * @param[out] puBuf + * Pointer to a buffer used to return the read data + * @param[in] u32Sz + * Number of bytes to read. The buffer size must be >= u32Sz + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_read_block(uint32_t u32Addr, uint8_t *puBuf, uint32_t u32Sz); + +/** + * @fn nm_write_block + * @brief Write block of data + * @param[in] u32Addr + * Start address + * @param[in] puBuf + * Pointer to the buffer holding the data to be written + * @param[in] u32Sz + * Number of bytes to write. The buffer size must be >= u32Sz + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_write_block(uint32_t u32Addr, uint8_t *puBuf, uint32_t u32Sz); + +#ifdef __cplusplus +} +#endif + +#endif /* _NMBUS_H_ */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/nmdrv.h b/ChaletLora.X/Source/winc3400_142/driver/include/nmdrv.h new file mode 100644 index 0000000..063e624 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/nmdrv.h @@ -0,0 +1,176 @@ +/******************************************************************************* + This module contains WINC3400 M2M driver APIs declarations. + + File Name: + nmdrv.h + + Summary: + This module contains WINC3400 M2M driver APIs declarations. + + Description: + This module contains WINC3400 M2M driver APIs declarations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _NMDRV_H_ +#define _NMDRV_H_ + +#include "nm_common.h" + +/*! +@enum \ + tenuNmState +@brief + Enumeration for WINC state + The following is used to track the state of the WINC (not initialized, initialized or started) + +@remarks + This is useful when putting the WINC in "download mode" to access the flash via SPI. By using + @ref nm_get_state and checking against the desired state, it is possible to validate whether + it is safe to proceed with SPI Flash access. +*/ +typedef enum { + NM_STATE_DEINIT, + /*!< WINC is not initialized */ + NM_STATE_INIT, + /*!< WINC has been initialized. SPI flash access is possible. */ + NM_STATE_START, + /*!< WINC has started */ +} tenuNmState; + +/** +* @struct tstrM2mRev +* @brief Structure holding firmware version parameters and build date/time +*/ +typedef struct { + uint16_t u16FirmwareHifInfo; /* Fw HIF Info */ + uint8_t u8FirmwareMajor; /* Version Major Number */ + uint8_t u8FirmwareRsvd; /* Reserved */ + uint8_t u8FirmwareMinor; /* Version Minor */ + uint8_t u8FirmwarePatch; /* Patch Number */ + uint8_t BuildDate[sizeof(__DATE__)]; // 12 bytes + uint8_t BuildTime[sizeof(__TIME__)]; // 9 bytes +} tstrM2mRev; + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @fn nm_get_hif_info(uint16_t *pu16FwHifInfo, uint16_t *pu16OtaHifInfo); + * @brief Get Hif info of images in both partitions (Firmware and Ota). + * @param[out] pu16FwHifInfo + * Pointer holding Hif info of image in the active partition. + * @param[out] pu16OtaHifInfo + * Pointer holding Hif info of image in the inactive partition. + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_get_hif_info(uint16_t *pu16FwHifInfo, uint16_t *pu16OtaHifInfo); + +/** + * @fn nm_get_firmware_full_info(tstrM2mRev* pstrRev) + * @brief Get Firmware version info + * @param[out] pstrRev + * Pointer holds address of structure @ref tstrM2mRev that contains the version parameters + * of image in the active partition. + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_get_firmware_full_info(tstrM2mRev* pstrRev); + +/** + * @fn nm_get_ota_firmware_info(tstrM2mRev* pstrRev) + * @brief Get Firmware version info + * @param[out] pstrRev + * Pointer holds address of structure @ref tstrM2mRev that contains the version parameters + * of image in the inactive partition. + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_get_ota_firmware_info(tstrM2mRev* pstrRev); + +/** + * @fn nm_drv_init_download_mode + * @brief Initialize NMC1000 driver in download mode + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init_download_mode(void); + +/** + * @fn nm_drv_init + * @brief Initialize NMC1000 driver + * @param[in] arg + * Generic argument passed on to nm_drv_init_start + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init(void* arg); + +/** + * @fn nm_drv_init_hold + * @brief First part of nm_drv_init, up to the point of initializing spi for flash access. + * @see nm_drv_init + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init_hold(void); + +/** + * @fn nm_drv_init_start + * @brief Second part of nm_drv_init, continuing from where nm_drv_init_hold left off. + * @see nm_drv_init + * @param[in] arg + * Parameter inherited from nm_drv_init + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init_start(void* arg); + +/** + * @fn nm_drv_deinit + * @brief Deinitialize NMC1000 driver + * @param[in] arg + * Generic argument unused. + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_deinit(void* arg); + +/** + * @fn nm_cpu_start(void) + * @brief Start CPU from the WINC module + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_cpu_start(void); + +/** + * @fn nm_get_state(void) + * @brief Get the current state of the WINC module + * @return The current state of the WINC module + */ +tenuNmState nm_get_state(void); + +#ifdef __cplusplus +} +#endif + +#endif /*_NMDRV_H_*/ + + diff --git a/ChaletLora.X/Source/winc3400_142/driver/include/nmspi.h b/ChaletLora.X/Source/winc3400_142/driver/include/nmspi.h new file mode 100644 index 0000000..75fd0e8 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/include/nmspi.h @@ -0,0 +1,137 @@ +/******************************************************************************* + This module contains WINC3400 SPI protocol bus APIs implementation. + + File Name: + nmspi.h + + Summary: + This module contains WINC3400 SPI protocol bus APIs implementation. + + Description: + This module contains WINC3400 SPI protocol bus APIs implementation. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _NMSPI_H_ +#define _NMSPI_H_ + +#include "nm_common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @fn nm_spi_init + * @brief Initialize the SPI + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_init(void); + +/** +* @fn nm_spi_lock_init +* @brief Initialize the SPI lock +* @return None +*/ +void nm_spi_lock_init(void); + +/** + * @fn nm_spi_reset + * @brief Reset the SPI + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_reset(void); + +/** + * @fn nm_spi_deinit + * @brief DeInitialize the SPI + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_deinit(void); + +/** + * @fn nm_spi_read_reg + * @brief Read register + * @param[in] u32Addr + * Register address + * @return Register value + */ +uint32_t nm_spi_read_reg(uint32_t u32Addr); + +/** + * @fn nm_spi_read_reg_with_ret + * @brief Read register with error code return + * @param[in] u32Addr + * Register address + * @param[out] pu32RetVal + * Pointer to u32 variable used to return the read value + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_read_reg_with_ret(uint32_t u32Addr, uint32_t* pu32RetVal); + +/** + * @fn nm_spi_write_reg + * @brief Write register + * @param[in] u32Addr + * Register address + * @param[in] u32Val + * Value to be written to the register + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_write_reg(uint32_t u32Addr, uint32_t u32Val); + +/** + * @fn nm_spi_read_block + * @brief Read block of data + * @param[in] u32Addr + * Start address + * @param[out] puBuf + * Pointer to a buffer used to return the read data + * @param[in] u16Sz + * Number of bytes to read. The buffer size must be >= u16Sz + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz); + +/** + * @fn nm_spi_write_block + * @brief Write block of data + * @param[in] u32Addr + * Start address + * @param[in] puBuf + * Pointer to the buffer holding the data to be written + * @param[in] u16Sz + * Number of bytes to write. The buffer size must be >= u16Sz + * @return @ref M2M_SUCCESS in case of success and @ref M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_spi_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz); + +#ifdef __cplusplus +} +#endif + +#endif /* _NMSPI_H_ */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_flash.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_flash.c new file mode 100644 index 0000000..3ff97dc --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_flash.c @@ -0,0 +1,354 @@ +/******************************************************************************* + File Name: + m2m_flash.c + + Summary: + This module contains the WINC flash interface. + + Description: + This module contains the WINC flash interface. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +#include "m2m_flash.h" +#include "spi_flash.h" +#include "spi_flash_map.h" +#include "nmdrv.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +TYPEDEFS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +typedef struct +{ + uint32_t address; + uint32_t size; +} tstrFlashMapEntry; + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +GLOBALS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +static const tstrFlashMapEntry flashMap[] = +{ + {0 , 0 }, // WINC_FLASH_REGION_RAW, + {0 , OTA_IMAGE_SIZE }, // WINC_FLASH_REGION_FIRMWARE_ACTIVE, + {0 , OTA_IMAGE_SIZE }, // WINC_FLASH_REGION_FIRMWARE_INACTIVE, + {M2M_PLL_FLASH_OFFSET , M2M_PLL_FLASH_SZ }, // WINC_FLASH_REGION_PLL_TABLE, + {M2M_GAIN_FLASH_OFFSET , M2M_GAIN_FLASH_SZ }, // WINC_FLASH_REGION_GAIN_TABLE, + {M2M_PLL_FLASH_OFFSET , M2M_PLL_FLASH_SZ+M2M_GAIN_FLASH_SZ}, // WINC_FLASH_REGION_PLL_AND_GAIN_TABLES, + {M2M_TLS_ROOTCER_FLASH_OFFSET , M2M_TLS_ROOTCER_FLASH_SZ }, // WINC_FLASH_REGION_ROOT_CERTS, + {M2M_TLS_SERVER_FLASH_OFFSET , M2M_TLS_SERVER_FLASH_SZ }, // WINC_FLASH_REGION_LOCAL_CERTS, + {M2M_CACHED_CONNS_FLASH_OFFSET , M2M_CACHED_CONNS_FLASH_SZ }, // WINC_FLASH_REGION_CONN_PARAM, + {0 , M2M_HTTP_MEM_FLASH_SZ }, // WINC_FLASH_REGION_HTTP_FILES, +}; + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTIONS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +static int8_t winc_flash_compare(uint8_t *pu8Buf, uint32_t u32Offset, uint32_t u32Size) +{ + int8_t ret = M2M_SUCCESS; + uint8_t buf[128]; + uint32_t offset = 0; + + while(offset < u32Size) + { + uint32_t chunk_sz = sizeof(buf); + if(chunk_sz > u32Size - offset) + chunk_sz = u32Size - offset; + ret = spi_flash_read(buf, u32Offset + offset, chunk_sz); + if(ret != M2M_SUCCESS) + break; + ret = memcmp(buf, pu8Buf + offset, chunk_sz); + if(ret != 0) + break; + offset += chunk_sz; + } + return ret; +} +static int8_t winc_flash_write_verify(uint8_t *pu8Buf, uint32_t u32Offset, uint32_t u32Size) +{ + int8_t ret = M2M_ERR_FAIL; + uint8_t count = 20; + + while((ret != M2M_SUCCESS) && (count-- > 0)) + { + ret = spi_flash_write(pu8Buf, u32Offset, u32Size); + if(ret == M2M_SUCCESS) + ret = winc_flash_compare(pu8Buf, u32Offset, u32Size); + } + return ret; +} + +/* Some internal functions for accessing the control structure. */ +static uint8_t crc7(uint8_t crc, const uint8_t *buff, uint16_t len) +{ + uint8_t reg = crc; + uint16_t i; + for(i = 0; i < len; i++) + { + uint16_t g; + for(g = 0; g < 8; g++) + { + uint8_t inv = (((buff[i] << g) & 0x80) >> 7) ^ ((reg >> 6) & 1); + reg = ((reg << 1) & 0x7f) ^ (9 * inv); + } + } + return reg; +} +static int8_t verify_control_structure(tstrOtaControlSec *pstrControlSec) +{ + int8_t s8Ret = M2M_SUCCESS; + + if(pstrControlSec->u32OtaMagicValue != OTA_MAGIC_VALUE) + s8Ret = M2M_ERR_FAIL; + if(pstrControlSec->u32OtaControlSecCrc != crc7(0x7f, (uint8_t *)pstrControlSec, sizeof(tstrOtaControlSec) - 4)) + s8Ret = M2M_ERR_FAIL; + + return s8Ret; +} +static int8_t read_control_structure(tstrOtaControlSec *pstrControlSec) +{ + int8_t s8Ret; + + s8Ret = spi_flash_read((uint8_t *)pstrControlSec, M2M_CONTROL_FLASH_OFFSET, sizeof(tstrOtaControlSec)); + if(s8Ret == M2M_SUCCESS) + s8Ret = verify_control_structure(pstrControlSec); + + if(s8Ret != M2M_SUCCESS) + { + s8Ret = spi_flash_read((uint8_t *)pstrControlSec, M2M_BACKUP_FLASH_OFFSET, sizeof(tstrOtaControlSec)); + if(s8Ret == M2M_SUCCESS) + s8Ret = verify_control_structure(pstrControlSec); + } + + return s8Ret; +} +static int8_t update_control_structure(tstrOtaControlSec *pstrControlSec) +{ + int8_t ret = M2M_ERR_FAIL; + + ret = spi_flash_erase(M2M_BACKUP_FLASH_OFFSET, M2M_BACKUP_FLASH_SZ); + if(ret == M2M_SUCCESS) + { + pstrControlSec->u32OtaSequenceNumber++; + pstrControlSec->u32OtaControlSecCrc = crc7(0x7f, (uint8_t *)pstrControlSec, sizeof(tstrOtaControlSec) - 4); + ret = winc_flash_write_verify((uint8_t *)pstrControlSec, M2M_BACKUP_FLASH_OFFSET, sizeof(tstrOtaControlSec)); + if(ret == M2M_SUCCESS) + { + ret = spi_flash_erase(M2M_CONTROL_FLASH_OFFSET, M2M_CONTROL_FLASH_SZ); + if(ret == M2M_SUCCESS) + { + pstrControlSec->u32OtaSequenceNumber++; + pstrControlSec->u32OtaControlSecCrc = crc7(0x7f, (uint8_t *)pstrControlSec, sizeof(tstrOtaControlSec) - 4); + ret = winc_flash_write_verify((uint8_t *)pstrControlSec, M2M_CONTROL_FLASH_OFFSET, sizeof(tstrOtaControlSec)); + } + } + } + return ret; +} + +static bool find_flash_section(tenuWincFlashRegion enuRegion, uint32_t *pu32StartAddr, uint32_t *pu32Size) +{ + /* Ensure the pointers and region are valid. */ + if((NULL == pu32StartAddr) || (NULL == pu32Size) || (enuRegion >= WINC_FLASH_NUM_REGIONS)) + return false; + + /* For the raw region resolve the full flash space, otherwise lookup + the region location and size from the flexible flash map. */ + switch(enuRegion) + { + case WINC_FLASH_REGION_RAW: + *pu32StartAddr = 0; + *pu32Size = spi_flash_get_size() << 17; + break; + case WINC_FLASH_REGION_FIRMWARE_ACTIVE: + case WINC_FLASH_REGION_FIRMWARE_INACTIVE: + case WINC_FLASH_REGION_HTTP_FILES: + { + /* In these cases we need to read the control structure to find the appropriate flash address. */ + tstrOtaControlSec strControl; + + /* Check the WINC is initialised and not running. */ + if (NM_STATE_INIT != nm_get_state()) + return false; + + /* Read control structure from flash. */ + if (M2M_SUCCESS != read_control_structure(&strControl)) + return false; + + if (WINC_FLASH_REGION_FIRMWARE_INACTIVE == enuRegion) + *pu32StartAddr = strControl.u32OtaRollbackImageOffset; + else if (WINC_FLASH_REGION_FIRMWARE_ACTIVE == enuRegion) + *pu32StartAddr = strControl.u32OtaCurrentWorkingImagOffset; + else if (WINC_FLASH_REGION_HTTP_FILES == enuRegion) + *pu32StartAddr = strControl.u32OtaCurrentWorkingImagOffset + (M2M_HTTP_MEM_FLASH_OFFSET - M2M_OTA_IMAGE1_OFFSET); + + *pu32Size = flashMap[enuRegion].size; + break; + } + default: + *pu32StartAddr = flashMap[enuRegion].address; + *pu32Size = flashMap[enuRegion].size; + break; + } + + M2M_INFO("Flash lookup %2d: 0x%06" PRIx32 " %0" PRId32 "\r\n", enuRegion, *pu32StartAddr, *pu32Size); + + return true; +} + +int8_t m2m_flash_erase_sector(tenuWincFlashRegion enuRegion, uint8_t u8StartSector, uint8_t u8NumSectors) +{ + uint32_t flashAddress; + uint32_t flashRegionSize; + + /* Check the WINC is initialised and not running. */ + if(NM_STATE_INIT != nm_get_state()) + return M2M_ERR_FAIL; + + /* Check the region is valid. */ + if(enuRegion >= WINC_FLASH_NUM_REGIONS) + return M2M_ERR_INVALID_ARG; + + /* Find region address and size. */ + if(false == find_flash_section(enuRegion, &flashAddress, &flashRegionSize)) + return M2M_ERR_FAIL; + + /* Erase is only supported for regions which begin on a sector boundary. */ + if(flashAddress & (FLASH_SECTOR_SZ-1)) + return M2M_ERR_INVALID_ARG; + + /* Check requested size fits within region size. */ + if((((uint32_t)u8StartSector + u8NumSectors) * FLASH_SECTOR_SZ) > flashRegionSize) + return M2M_ERR_FAIL; + + /* Find start address of area within requested region. */ + flashAddress += (u8StartSector * FLASH_SECTOR_SZ); + + /* Erase the requested sectors. */ + if(M2M_SUCCESS != spi_flash_erase(flashAddress, u8NumSectors * FLASH_SECTOR_SZ)) + return M2M_ERR_FAIL; + + return M2M_SUCCESS; +} + +int8_t m2m_flash_write(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size) +{ + uint32_t flashAddress; + uint32_t flashRegionSize; + + /* Check the WINC is initialised and not running. */ + if(NM_STATE_INIT != nm_get_state()) + return M2M_ERR_FAIL; + + /* Check the buffer pointer and region are valid. */ + if((NULL == pvBuffer) || (enuRegion >= WINC_FLASH_NUM_REGIONS)) + return M2M_ERR_INVALID_ARG; + + /* Find region address and size. */ + if(false == find_flash_section(enuRegion, &flashAddress, &flashRegionSize)) + return M2M_ERR_FAIL; + + /* Check requested size fits within region size. Also check for wraparound. */ + if(((u32Offset + u32Size) > flashRegionSize) || ((uint32_t)(u32Offset + u32Size) < u32Offset)) + return M2M_ERR_FAIL; + + /* Find start address of area within requested region. */ + flashAddress += u32Offset; + + /* Write data to flash. */ + if(M2M_SUCCESS != spi_flash_write(pvBuffer, flashAddress, u32Size)) + return M2M_ERR_FAIL; + + return M2M_SUCCESS; +} + +int8_t m2m_flash_read(tenuWincFlashRegion enuRegion, void *pvBuffer, uint32_t u32Offset, uint32_t u32Size) +{ + uint32_t flashAddress; + uint32_t flashRegionSize; + + /* Check the WINC is initialised and not running. */ + if(NM_STATE_INIT != nm_get_state()) + return M2M_ERR_FAIL; + + /* Check the buffer pointer and region are valid. */ + if((NULL == pvBuffer) || (enuRegion >= WINC_FLASH_NUM_REGIONS)) + return M2M_ERR_INVALID_ARG; + + /* Find region address and size. */ + if(false == find_flash_section(enuRegion, &flashAddress, &flashRegionSize)) + return M2M_ERR_FAIL; + + /* Check requested size fits within region size. Also check for wraparound. */ + if(((u32Offset + u32Size) > flashRegionSize) || ((uint32_t)(u32Offset + u32Size) < u32Offset)) + return M2M_ERR_FAIL; + + /* Find start address of area within requested region. */ + flashAddress += u32Offset; + + /* Read data from flash. */ + if(M2M_SUCCESS != spi_flash_read(pvBuffer, flashAddress, u32Size)) + return M2M_ERR_FAIL; + + return M2M_SUCCESS; +} + +int8_t m2m_flash_switch_firmware(void) +{ + tstrOtaControlSec strControl; + uint32_t u32Tmp; + + /* Check the WINC is initialised and not running. */ + if(NM_STATE_INIT != nm_get_state()) + return M2M_ERR_FAIL; + + /* Read control structure from flash. */ + if(M2M_SUCCESS != read_control_structure(&strControl)) + return M2M_ERR_FAIL; + + /* Switch active and inactive. */ + u32Tmp = strControl.u32OtaRollbackImageOffset; + strControl.u32OtaRollbackImageOffset = strControl.u32OtaCurrentWorkingImagOffset; + strControl.u32OtaCurrentWorkingImagOffset = u32Tmp; + + /* Ensure the inactive image is marked as invalid. This protects m2m_ota_switch_firmware from + switching to an image whose validity is unknown. Switching remains possible via this API. */ + strControl.u32OtaRollbackImageValidStatus = OTA_STATUS_INVALID; + + if(M2M_SUCCESS != update_control_structure(&strControl)) + return M2M_ERR_FAIL; + + return M2M_SUCCESS; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_hif.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_hif.c new file mode 100644 index 0000000..774645b --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_hif.c @@ -0,0 +1,857 @@ +/******************************************************************************* + File Name: + m2m_hif.c + + Summary: + This module contains M2M host interface API implementations. + + Description: + This module contains M2M host interface API implementations. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "nm_common.h" +#include "nmbus.h" +#include "nmdrv.h" +#include "nm_bsp.h" +#include "m2m_hif.h" +#include "m2m_types.h" +#include "nmasic.h" +#include "m2m_periph.h" +//#include "wdrv_winc_common.h" +//#include "osal/osal.h" + +#define NMI_AHB_DATA_MEM_BASE 0x30000 +#define NMI_AHB_SHARE_MEM_BASE 0xd0000 + +#define WIFI_HOST_RCV_CTRL_0 (0x1070) +#define WIFI_HOST_RCV_CTRL_1 (0x1084) +#define WIFI_HOST_RCV_CTRL_2 (0x1078) +#define WIFI_HOST_RCV_CTRL_3 (0x106c) +#define WIFI_HOST_RCV_CTRL_4 (0x150400) + + +#define INTERRUPT_CORTUS_0_3000D0 (0x10a8) +#define INTERRUPT_CORTUS_1_3000D0 (0x10ac) +#define INTERRUPT_CORTUS_2_3000D0 (0x10b0) +#define INTERRUPT_CORTUS_3_3000D0 (0x10b4) + +//static OSAL_SEM_HANDLE_TYPE hifSemaphore; + +typedef struct { + uint8_t u8ChipMode; + uint8_t u8ChipSleep; + uint8_t u8HifRXDone; + uint8_t u8Interrupt; + uint32_t u32RxAddr; + uint32_t u32RxSize; + tpfHifCallBack pfWifiCb; + tpfHifCallBack pfIpCb; + tpfHifCallBack pfOtaCb; + tpfHifCallBack pfSigmaCb; + tpfHifCallBack pfHifCb; + //tpfHifCallBack pfCryptoCb; + tpfHifCallBack pfSslCb; +} tstrHifContext; + +volatile tstrHifContext gstrHifCxt; + +/* + Special codes for managing HIF restriction to OTA rollback/switch only +*/ +#define HIF_OTA_RB_ONLY 0xFFFF +#define HIFCODE_OTA_RB ((M2M_REQ_GROUP_OTA << 8) | M2M_OTA_REQ_ROLLBACK) +#define HIFCODE_OTA_SW ((M2M_REQ_GROUP_OTA << 8) | M2M_OTA_REQ_SWITCH_FIRMWARE) +/* + Codes for new HIF messages (since last HIF major increase). + Only need ones which are host->winc. + Each entry is formed of ((GroupId << 8) | OpCode) +*/ +#define HIFCODE_SSL_WRITECERT ((M2M_REQ_GROUP_SSL << 8) | M2M_SSL_REQ_WRITE_OWN_CERTS) +#define HIFCODE_WIFI_PASSIVESCAN ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_PASSIVE_SCAN) +#define HIFCODE_WIFI_CONN ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_CONN) +#define HIFCODE_WIFI_CONN_PARAM ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_IND_CONN_PARAM) +#define HIFCODE_WIFI_DELETE_CRED ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQRSP_DELETE_APID) +#define HIFCODE_WIFI_START_PROV_MODE ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_START_PROVISION_MODE) +#define HIFCODE_WIFI_ENABLE_AP ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_ENABLE_AP) +#define HIFCODE_IP_RAW_SOCK_OPT ((M2M_REQ_GROUP_IP << 8) | SOCKET_CMD_RAW_SET_SOCK_OPT) +#define HIFCODE_WIFI_ROAMING ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_ROAMING) +#define HIFCODE_IP_SECURE ((M2M_REQ_GROUP_IP << 8) | SOCKET_CMD_SECURE) +#define HIFCODE_WIFI_SCAN_SSID_LIST ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_SCAN_SSID_LIST) +#define HIFCODE_WIFI_SET_STOP_SCAN_OPTION ((M2M_REQ_GROUP_WIFI << 8) | M2M_WIFI_REQ_SET_STOP_SCAN_OPTION) + +/* + List of new HIF messages (since last HIF major increase). + Only need to list ones which are host->winc. + Additionally, entry 0 used to indicate OTA RB/SW only. +*/ +#define NEW_HIF_LIST \ + HIF_OTA_RB_ONLY, \ + HIFCODE_SSL_WRITECERT, \ + HIFCODE_WIFI_PASSIVESCAN, \ + HIFCODE_WIFI_CONN, \ + HIFCODE_WIFI_CONN_PARAM, \ + HIFCODE_WIFI_DELETE_CRED, \ + HIFCODE_WIFI_START_PROV_MODE, \ + HIFCODE_WIFI_ENABLE_AP, \ + HIFCODE_IP_RAW_SOCK_OPT, \ + HIFCODE_WIFI_ROAMING, \ + HIFCODE_IP_SECURE, \ + HIFCODE_WIFI_SCAN_SSID_LIST, \ + HIFCODE_WIFI_SET_STOP_SCAN_OPTION +/* + Array of HIF messages which are not supported by Firmware. + During hif_init() this array is rebased using an offset determined by Firmware HIF level. +*/ +static uint16_t gau16HifBlacklist[] = {NEW_HIF_LIST}; +#define HIF_BLACKLIST_SZ (sizeof(gau16HifBlacklist)/sizeof(gau16HifBlacklist[0])) +static uint8_t gu8HifBlOffset = 0; + + +static int8_t hif_set_rx_done(void) +{ + uint32_t reg; + int8_t ret = M2M_SUCCESS; + gstrHifCxt.u8HifRXDone = 0; + if (ISNMC3400(nmi_get_chipid())) { + ret = nm_write_reg(INTERRUPT_CORTUS_0_3000D0, 1); + if(ret != M2M_SUCCESS)goto ERR1; + } else { + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_0, ®); + if(ret != M2M_SUCCESS)goto ERR1; + + /* Set RX Done */ + reg |= NBIT1; + ret = nm_write_reg(WIFI_HOST_RCV_CTRL_0, reg); + if(ret != M2M_SUCCESS)goto ERR1; + } + +ERR1: + return ret; +} + +/** + * @fn static void m2m_hif_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) + * @brief WiFi call back function + * @param[in] u8OpCode + * HIF Opcode type. + * @param[in] u16DataSize + * HIF data length. + * @param[in] u32Addr + * HIF address. + */ +static void m2m_hif_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +{ +} + +/** + * @fn int8_t hif_chip_wake(void); + * @brief To Wakeup the chip. + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t hif_chip_wake(void) +{ + int8_t ret = M2M_SUCCESS; + if(gstrHifCxt.u8HifRXDone) + { + /* chip already wake for the rx not done no need to send wake request */ + return ret; + } + if(gstrHifCxt.u8ChipSleep == 0) + { + if(gstrHifCxt.u8ChipMode != M2M_NO_PS) + { + ret = chip_wake(); + if(ret != M2M_SUCCESS)goto ERR1; + } + } + gstrHifCxt.u8ChipSleep++; +ERR1: + return ret; +} +/*! +@fn \ + void hif_set_sleep_mode(uint8_t u8Pstype); + +@brief + Set the sleep mode of the HIF layer. + +@param [in] u8Pstype + Sleep mode. + +@return + The function SHALL return 0 for success and a negative value otherwise. +*/ + +void hif_set_sleep_mode(uint8_t u8Pstype) +{ + gstrHifCxt.u8ChipMode = u8Pstype; +} + +/*! +@fn \ + uint8_t hif_get_sleep_mode(void); + +@brief + Get the sleep mode of the HIF layer. + +@return + The function SHALL return the sleep mode of the HIF layer. +*/ +uint8_t hif_get_sleep_mode(void) +{ + return gstrHifCxt.u8ChipMode; +} + +/** + * @fn int8_t hif_chip_sleep_sc(void); + * @brief To clear the chip sleep but keep the chip sleep + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +static int8_t hif_chip_sleep_sc(void) +{ + if(gstrHifCxt.u8ChipSleep >= 1) + { + gstrHifCxt.u8ChipSleep--; + } + return M2M_SUCCESS; +} + + +/** + * @fn int8_t hif_chip_sleep(void); + * @brief To make the chip sleep. + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t hif_chip_sleep(void) +{ + int8_t ret = M2M_SUCCESS; + + if(gstrHifCxt.u8ChipSleep >= 1) + { + gstrHifCxt.u8ChipSleep--; + } + + if(gstrHifCxt.u8ChipSleep == 0) + { + if(gstrHifCxt.u8ChipMode != M2M_NO_PS) + ret = chip_sleep(); + } + return ret; +} + +/** + * @fn int8_t hif_init(void * arg); + * @brief To initialize HIF layer. + * @param[in] arg + * Pointer to the arguments. + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t hif_init(void *arg) +{ + memset((uint8_t*)&gstrHifCxt, 0, sizeof(tstrHifContext)); + +// if (OSAL_RESULT_TRUE != OSAL_SEM_Create(&hifSemaphore, OSAL_SEM_TYPE_BINARY, 1, 1)) +// return M2M_ERR_INIT; + + hif_register_cb(M2M_REQ_GROUP_HIF, m2m_hif_cb); + return hif_chip_sleep(); +} + +/** + * @fn int8_t hif_deinit(void * arg); + * @brief To Deinitialize HIF layer. + * @param[in] arg + * Pointer to the arguments. + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t hif_deinit(void *arg) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_chip_wake(); + memset((uint8_t*)&gstrHifCxt, 0, sizeof(tstrHifContext)); + return ret; +} + +/** + * @fn int8_t hif_check_compatibility(uint16_t u16HifInfo); + * @brief + * To check the compatibility of an image with the current driver. + * @param [in] u16HifInfo + * HIF info of image to be checked. + * @return The function shall return ZERO for compatible image and a negative value otherwise. + */ +int8_t hif_check_compatibility(uint16_t u16HifInfo) +{ + int8_t ret = M2M_ERR_FW_VER_MISMATCH; + if((M2M_GET_HIF_BLOCK(u16HifInfo) == M2M_HIF_BLOCK_VALUE) && (M2M_GET_HIF_MAJOR(u16HifInfo) == M2M_HIF_MAJOR_VALUE)) + { + ret = M2M_SUCCESS; + } + return ret; +} + +/** + * @fn int8_t hif_enable_access(void); + * @brief + * To enable access to HIF layer, based on HIF level of Firmware. + * This function reads HIF level directly from a register written by Firmware. + * @return The function shall return ZERO for full match operation and a negative value if operation is restricted. + */ +int8_t hif_enable_access(void) +{ + int8_t ret = M2M_SUCCESS; + uint16_t fw_hif_info = 0; + + ret = nm_get_hif_info(&fw_hif_info, NULL); + if(ret == M2M_SUCCESS) + { + ret = hif_check_compatibility(fw_hif_info); + if(ret == M2M_SUCCESS) + { + switch(M2M_GET_HIF_MINOR(fw_hif_info)) + { + case 0: + gu8HifBlOffset = 1; + break; + case 1: + gu8HifBlOffset = 2; + break; + case 2: + gu8HifBlOffset = 2; + break; + case 3: + gu8HifBlOffset = 3; + break; + case 4: + gu8HifBlOffset = 10; + break; + case 5: + gu8HifBlOffset = 13; + break; + // Additional case to be added each time hif minor increments. + // All additional cases to be removed in the event of a hif major increment. + // Default catches all cases in which hif minor is greater in Firmware than in Driver. + default: + gu8HifBlOffset = HIF_BLACKLIST_SZ; + break; + } + } + else + { + gu8HifBlOffset = 0; + M2M_ERR("HIF access limited to OTA Switch/Rollback only\r\n"); + } + } + return ret; +} + +/** + * @fn int8_t hif_check_code(uint8_t u8Gid, uint8_t u8OpCode); + * @brief + * To check that a particular hif message is supported with the current driver/firmware pair. + * @param[in] u8Gid + * Group ID. + * @param[in] u8Opcode + * Operation ID. + * @return The function shall return @ref M2M_SUCCESS for success and a negative value otherwise. + */ +int8_t hif_check_code(uint8_t u8Gid, uint8_t u8OpCode) +{ + uint8_t u8BlId; + uint16_t u16HifCode = ((uint16_t)u8Gid<<8) | u8OpCode; + if((u16HifCode == HIFCODE_OTA_RB) || (u16HifCode == HIFCODE_OTA_SW)) + { + return M2M_SUCCESS; + } + if(gu8HifBlOffset == 0) + { + M2M_ERR("HIF OTA rb/sw only\r\n"); + return M2M_ERR_SEND; + } + for(u8BlId = gu8HifBlOffset; u8BlId < HIF_BLACKLIST_SZ; u8BlId++) + { + if(u16HifCode == gau16HifBlacklist[u8BlId]) + { + M2M_ERR("HIF message unsupported\r\n"); + return M2M_ERR_SEND; + } + } + return M2M_SUCCESS; +} + +/** + * @fn int8_t hif_send(uint8_t u8Gid,uint8_t u8Opcode,uint8_t *pu8CtrlBuf,uint16_t u16CtrlBufSize, + * uint8_t *pu8DataBuf,uint16_t u16DataSize, uint16_t u16DataOffset) + * @brief Send packet using host interface. + * + * @param[in] u8Gid + * Group ID. + * @param[in] u8Opcode + * Operation ID. + * @param[in] pu8CtrlBuf + * Pointer to the Control buffer. + * @param[in] u16CtrlBufSize + * Control buffer size. + * @param[in] u16DataOffset + * Packet Data offset. + * @param[in] pu8DataBuf + * Packet buffer Allocated by the caller. + * @param[in] u16DataSize + * Packet buffer size (including the HIF header). + * @return The function shall return @ref M2M_SUCCESS for successful operation and a negative value otherwise. + */ +int8_t hif_send(uint8_t u8Gid, uint8_t u8Opcode, uint8_t *pu8CtrlBuf, uint16_t u16CtrlBufSize, + uint8_t *pu8DataBuf, uint16_t u16DataSize, uint16_t u16DataOffset) +{ + int8_t ret = M2M_ERR_SEND; + tstrHifHdr strHif; + uint32_t u32CtrlDataGap = u16DataOffset; + +// while (OSAL_RESULT_FALSE == OSAL_SEM_Pend(&hifSemaphore, OSAL_WAIT_FOREVER)) + { + } + + strHif.u8Opcode = u8Opcode&(~NBIT7); + strHif.u8Gid = u8Gid; + strHif.u16Length = M2M_HIF_HDR_OFFSET; + + if(pu8CtrlBuf != NULL) + { + if(u16CtrlBufSize > M2M_HIF_MAX_PACKET_SIZE-M2M_HIF_HDR_OFFSET) + { + M2M_ERR("HIF %s (%dB) exceeds max (%dB)\n", "Ctrl", u16CtrlBufSize, M2M_HIF_MAX_PACKET_SIZE-M2M_HIF_HDR_OFFSET); + goto ERR2; + } + strHif.u16Length += u16CtrlBufSize; + u32CtrlDataGap -= u16CtrlBufSize; + } + if(pu8DataBuf != NULL) + { + if((uint32_t)u16DataOffset + u16DataSize > M2M_HIF_MAX_PACKET_SIZE-M2M_HIF_HDR_OFFSET) + { + M2M_ERR("HIF %s (%luB) exceeds max (%luB)\n", "Data", (uint32_t)u16DataOffset + u16DataSize, (uint32_t)M2M_HIF_MAX_PACKET_SIZE-M2M_HIF_HDR_OFFSET); + goto ERR2; + } + strHif.u16Length += u32CtrlDataGap + u16DataSize; + } + + ret = hif_check_code(strHif.u8Gid, strHif.u8Opcode); + if(ret != M2M_SUCCESS) + { + goto ERR2; + } + + if(strHif.u16Length <= M2M_HIF_MAX_PACKET_SIZE) + { + ret = hif_chip_wake(); + if(ret == M2M_SUCCESS) + { + volatile uint32_t reg, dma_addr = 0; + volatile uint16_t cnt = 0; + + reg = 0UL; + reg |= (uint32_t)u8Gid; + reg |= ((uint32_t)u8Opcode<<8); + reg |= ((uint32_t)strHif.u16Length<<16); + ret = nm_write_reg(NMI_STATE_REG, reg); + if(M2M_SUCCESS != ret) goto ERR1; + + reg = 0UL; + reg |= NBIT1; + ret = nm_write_reg(WIFI_HOST_RCV_CTRL_2, reg); + if(M2M_SUCCESS != ret) goto ERR1; + + + if (ISNMC3400(nmi_get_chipid())) { + + ret = nm_write_reg(INTERRUPT_CORTUS_1_3000D0, 1); + if(M2M_SUCCESS != ret) goto ERR1; + } + + dma_addr = 0; + + for(cnt = 0; cnt < 1000*5; cnt ++) + { + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_2, (uint32_t *)®); + if(ret != M2M_SUCCESS) break; + /* + * If it takes too long to get a response, the slow down to + * avoid back-to-back register read operations. + */ + if(cnt >= 1000) { + if(cnt == 1000) { + M2M_INFO("Slowing down...\n"); + } + nm_sleep(5); + } + if(!(reg & NBIT1)) + { + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_4, (uint32_t *)&dma_addr); + if(ret != M2M_SUCCESS) { + /*in case of read error clear the DMA address and return error*/ + dma_addr = 0; + goto ERR1; + } + /*in case of success break */ + break; + } + } + + if (dma_addr != 0) + { + volatile uint32_t u32CurrAddr; + u32CurrAddr = dma_addr; + strHif.u16Length=NM_BSP_B_L_16(strHif.u16Length); + M2M_DBG("Writing into %" PRIx32 " %d\r\n", dma_addr, strHif.u16Length); + ret = nm_write_block(u32CurrAddr, (uint8_t*)&strHif, M2M_HIF_HDR_OFFSET); + if(M2M_SUCCESS != ret) goto ERR1; + u32CurrAddr += M2M_HIF_HDR_OFFSET; + if(pu8CtrlBuf != NULL) + { + ret = nm_write_block(u32CurrAddr, pu8CtrlBuf, u16CtrlBufSize); + if(M2M_SUCCESS != ret) goto ERR1; + u32CurrAddr += u16CtrlBufSize; + } + if(pu8DataBuf != NULL) + { + u32CurrAddr += u32CtrlDataGap; + ret = nm_write_block(u32CurrAddr, pu8DataBuf, u16DataSize); + if(M2M_SUCCESS != ret) goto ERR1; + u32CurrAddr += u16DataSize; + } + + reg = dma_addr << 2; + + /* Following line of code is to generate the interrupt which is not strictly needed for 3400, + but has no noticeable side effects + */ + reg |= NBIT1; + ret = nm_write_reg(WIFI_HOST_RCV_CTRL_3, reg); + if(M2M_SUCCESS != ret) goto ERR1; + + if (ISNMC3400(nmi_get_chipid())) { + ret = nm_write_reg(INTERRUPT_CORTUS_2_3000D0, 1); + if(M2M_SUCCESS != ret) goto ERR1; + } + } + else + { + ret = hif_chip_sleep(); + M2M_DBG("Failed to alloc rx size\r\n"); + ret = M2M_ERR_MEM_ALLOC; + goto ERR2; + } + } + else + { + M2M_ERR("(HIF)Failed to wakeup the chip\r\n"); + goto ERR2; + } + } + else + { + M2M_ERR("HIF message length (%d) exceeds max length (%d)\r\n", strHif.u16Length, M2M_HIF_MAX_PACKET_SIZE); + ret = M2M_ERR_SEND; + goto ERR2; + } +// OSAL_SEM_Post(&hifSemaphore); + /*actual sleep ret = M2M_SUCCESS*/ + ret = hif_chip_sleep(); + return ret; +ERR1: + /*reset the count but no actual sleep as it already bus error*/ + hif_chip_sleep_sc(); +ERR2: + /*logical error*/ +// OSAL_SEM_Post(&hifSemaphore); + return ret; +} +/** + * @fn hif_isr + * @brief Host interface interrupt service routine + * @return @ref M2M_SUCCESS in case of success or a negative vale otherwise + */ +static int8_t hif_isr(void) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg; + volatile tstrHifHdr strHif; + +// while (OSAL_RESULT_FALSE == OSAL_SEM_Pend(&hifSemaphore, OSAL_WAIT_FOREVER)) + { + } + + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_0, ®); + if(M2M_SUCCESS == ret) + { + if(reg & 0x1) /* New interrupt has been received */ + { + uint16_t size; + + /*Clearing RX interrupt*/ + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_0, ®); + if(ret != M2M_SUCCESS)goto ERR1; + reg &= ~NBIT0; + ret = nm_write_reg(WIFI_HOST_RCV_CTRL_0, reg); + if(ret != M2M_SUCCESS)goto ERR1; + /* read the rx size */ + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_0, ®); + if(M2M_SUCCESS != ret) + { + M2M_ERR("(hif) WIFI_HOST_RCV_CTRL_0 bus fail\r\n"); + goto ERR1; + } + gstrHifCxt.u8HifRXDone = 1; + size = (uint16_t)((reg >> 2) & 0xfff); + if (size > 0) { + uint32_t address = 0; + /** + start bus transfer + **/ + ret = nm_read_reg_with_ret(WIFI_HOST_RCV_CTRL_1, &address); + if(M2M_SUCCESS != ret) + { + M2M_ERR("(hif) WIFI_HOST_RCV_CTRL_1 bus fail\r\n"); + goto ERR1; + } + gstrHifCxt.u32RxAddr = address; + gstrHifCxt.u32RxSize = size; + ret = nm_read_block(address, (uint8_t*)&strHif, sizeof(tstrHifHdr)); + strHif.u16Length = NM_BSP_B_L_16(strHif.u16Length); + if(M2M_SUCCESS != ret) + { + M2M_ERR("(hif) address bus fail\r\n"); + goto ERR1; + } + if(strHif.u16Length != size) + { + if((size - strHif.u16Length) > 4) + { + M2M_ERR("(hif) Corrupted packet Size = %u \r\n", + size, strHif.u16Length, strHif.u8Gid, strHif.u8Opcode); + ret = M2M_ERR_BUS_FAIL; + goto ERR1; + } + } + +// OSAL_SEM_Post(&hifSemaphore); + + if(M2M_REQ_GROUP_WIFI == strHif.u8Gid) + { + if(gstrHifCxt.pfWifiCb) + gstrHifCxt.pfWifiCb(strHif.u8Opcode, strHif.u16Length - M2M_HIF_HDR_OFFSET, address + M2M_HIF_HDR_OFFSET); + else + M2M_ERR("WIFI callback is not registered\r\n"); + } + else if(M2M_REQ_GROUP_IP == strHif.u8Gid) + { + if(gstrHifCxt.pfIpCb) + gstrHifCxt.pfIpCb(strHif.u8Opcode, strHif.u16Length - M2M_HIF_HDR_OFFSET, address + M2M_HIF_HDR_OFFSET); + else + M2M_ERR("Socket callback is not registered\r\n"); + } + else if(M2M_REQ_GROUP_OTA == strHif.u8Gid) + { + if(gstrHifCxt.pfOtaCb) + gstrHifCxt.pfOtaCb(strHif.u8Opcode, strHif.u16Length - M2M_HIF_HDR_OFFSET, address + M2M_HIF_HDR_OFFSET); + else + M2M_ERR("OTA callback is not registered\r\n"); + } + else if(M2M_REQ_GROUP_SIGMA == strHif.u8Gid) + { + if(gstrHifCxt.pfSigmaCb) + gstrHifCxt.pfSigmaCb(strHif.u8Opcode, strHif.u16Length - M2M_HIF_HDR_OFFSET, address + M2M_HIF_HDR_OFFSET); + else + M2M_ERR("Sigma callback is not registered\r\n"); + } + else if(M2M_REQ_GROUP_SSL == strHif.u8Gid) + { + if(gstrHifCxt.pfSslCb) + gstrHifCxt.pfSslCb(strHif.u8Opcode, strHif.u16Length - M2M_HIF_HDR_OFFSET, address + M2M_HIF_HDR_OFFSET); + else + M2M_ERR("SSL callback is not registered\r\n"); + } + else + { + M2M_ERR("(hif) invalid group ID\r\n"); + return M2M_ERR_BUS_FAIL; + } + if(gstrHifCxt.u8HifRXDone) + { + M2M_ERR("(hif) host app didn't set RX Done <%u><%X>\n", strHif.u8Gid, strHif.u8Opcode); + return hif_set_rx_done(); + } + + return M2M_SUCCESS; + } + else + { + ret = M2M_ERR_RCV; + M2M_ERR("(hif) Wrong Size\r\n"); + goto ERR1; + } + } + else + { + M2M_ERR("(hif) False interrupt %lx\r\n",reg); + ret = M2M_ERR_FAIL; + } + } + else + { + M2M_ERR("(hif) Failed to read interrupt reg\r\n"); + } + +ERR1: +// OSAL_SEM_Post(&hifSemaphore); + return ret; +} + +/** +* @fn hif_handle_isr(void) +* @brief Handle interrupt received from WINC3400 firmware. +* @return The function SHALL return 0 for success and a negative value otherwise. +*/ +int8_t hif_handle_isr(void) +{ + int8_t ret = M2M_SUCCESS; + + ret = hif_isr(); + if (M2M_SUCCESS != ret) + { + M2M_ERR("(hif) Failed to handle interrupt %d try Again..\r\n",ret); + } + + return ret; +} + +/** + * @fn hif_receive + * @brief Host interface interrupt service routine + * @param[in] u32Addr + * Receive start address + * @param[out] pu8Buf + * Pointer to receive buffer. Allocated by the caller + * @param[in] u16Sz + * Receive buffer size + * @param[in] isDone + * If you don't need any more packets send True otherwise send false + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t hif_receive(uint32_t u32Addr, uint8_t *pu8Buf, uint16_t u16Sz, uint8_t isDone) +{ + int8_t ret = M2M_SUCCESS; + + if((u32Addr == 0) || (pu8Buf == NULL) || (u16Sz == 0)) + { + if(isDone) + { + ret = hif_set_rx_done(); + } + else + { + ret = M2M_ERR_FAIL; + M2M_ERR(" hif_receive: Invalid argument\r\n"); + } + goto ERR1; + } + + if(u16Sz > gstrHifCxt.u32RxSize) + { + ret = M2M_ERR_FAIL; + M2M_ERR("APP Requested Size is larger than the received buffer size <%d><%" PRId32 ">\r\n", u16Sz, gstrHifCxt.u32RxSize); + goto ERR1; + } + if((u32Addr < gstrHifCxt.u32RxAddr)||((u32Addr + u16Sz)>(gstrHifCxt.u32RxAddr+gstrHifCxt.u32RxSize))) + { + ret = M2M_ERR_FAIL; + M2M_ERR("APP Requested Address beyond the received buffer address and length\r\n"); + goto ERR1; + } + + /* Receive the payload */ + ret = nm_read_block(u32Addr, pu8Buf, u16Sz); + if(ret != M2M_SUCCESS)goto ERR1; + + /* check if this is the last packet */ + if( + isDone + || (((gstrHifCxt.u32RxAddr+gstrHifCxt.u32RxSize) - (u32Addr+u16Sz)) <= 3) + /* Length in the RCV CTRL 0 register is rounded off to 4 by the firmware, + but length inside the HIF header is not, hence consider done if fewer than + 4 bytes left to read */ + ) + { + /* set RX done */ + ret = hif_set_rx_done(); + } +ERR1: + return ret; +} + +/** + * @fn hif_register_cb + * @brief To set Callback function for every component + * @param[in] u8Grp + * Group to which the Callback function should be set. + * @param[in] fn + * function to be set + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ + +int8_t hif_register_cb(uint8_t u8Grp, tpfHifCallBack fn) +{ + int8_t ret = M2M_SUCCESS; + switch(u8Grp) + { + case M2M_REQ_GROUP_IP: + gstrHifCxt.pfIpCb = fn; + break; + case M2M_REQ_GROUP_WIFI: + gstrHifCxt.pfWifiCb = fn; + break; + case M2M_REQ_GROUP_OTA: + gstrHifCxt.pfOtaCb = fn; + break; + case M2M_REQ_GROUP_HIF: + gstrHifCxt.pfHifCb = fn; + break; + case M2M_REQ_GROUP_SIGMA: + gstrHifCxt.pfSigmaCb = fn; + break; + case M2M_REQ_GROUP_SSL: + gstrHifCxt.pfSslCb = fn; + break; + default: + M2M_ERR("GRp ? %d\r\n", u8Grp); + ret = M2M_ERR_FAIL; + break; + } + return ret; +} + +//DOM-IGNORE-END \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ota.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ota.c new file mode 100644 index 0000000..a38285d --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ota.c @@ -0,0 +1,190 @@ +/******************************************************************************* + WINC3400 IoT OTA Interface. + + File Name: + m2m_ota.c + + Summary: + WINC3400 IoT OTA Interface + + Description: + WINC3400 IoT OTA Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +#include "nm_common.h" +#include "m2m_types.h" +#include "m2m_ota.h" +#include "m2m_wifi.h" +#include "m2m_hif.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +static tpfOtaUpdateCb gpfOtaUpdateCb = NULL; + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/** +@fn m2m_ota_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +@brief Internal OTA call back function. +@param[in] u8OpCode + HIF Opcode type. +@param[in] u16DataSize + HIF data length. +@param[in] u32Addr + HIF address. +*/ +static void m2m_ota_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +{ + int8_t s8Ret = M2M_SUCCESS; + if (u8OpCode == M2M_OTA_RESP_UPDATE_STATUS) + { + tstrOtaUpdateStatusResp strOtaUpdateStatusResp; + memset((uint8_t*)&strOtaUpdateStatusResp, 0, sizeof(tstrOtaUpdateStatusResp)); + s8Ret = hif_receive(u32Addr, (uint8_t*)&strOtaUpdateStatusResp, sizeof(tstrOtaUpdateStatusResp), 0); + if(s8Ret == M2M_SUCCESS) + { + if(gpfOtaUpdateCb) + gpfOtaUpdateCb(strOtaUpdateStatusResp.u8OtaUpdateStatusType, strOtaUpdateStatusResp.u8OtaUpdateStatus); + } + } + else + { + M2M_ERR("Invalid OTA resp %d ?\r\n", u8OpCode); + } +} + +/*! +@fn int8_t m2m_ota_init(tpfOtaUpdateCb pfOtaUpdateCb) +@brief Initialize the OTA layer. +@param[in] pfOtaUpdateCb + OTA Update callback function. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_init(tpfOtaUpdateCb pfOtaUpdateCb) +{ + int8_t ret = M2M_SUCCESS; + + if (pfOtaUpdateCb) { + gpfOtaUpdateCb = pfOtaUpdateCb; + } else { + M2M_ERR("Invalid OTA update callback\r\n"); + } + + hif_register_cb(M2M_REQ_GROUP_OTA, m2m_ota_cb); + + return ret; +} + +/*! +@fn int8_t m2m_ota_start_update(unsigned char * pcDownloadUrl) +@brief Request OTA start update using the downloaded URL. +@param[in] pcDownloadUrl + The download firmware URL, you get it from device info. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_start_update(unsigned char *pcDownloadUrl) +{ + int8_t ret = M2M_SUCCESS; + uint16_t u16DurlSize = strlen((char*)pcDownloadUrl) + 1; + + ret = hif_send(M2M_REQ_GROUP_OTA, M2M_OTA_REQ_START_UPDATE, pcDownloadUrl, u16DurlSize, NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_ota_rollback(void) +@brief Request OTA Rollback image. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_rollback(void) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mRev strRev; + + ret = m2m_ota_get_firmware_version(&strRev); + if(ret == M2M_SUCCESS) + { + if(M2M_GET_HIF_BLOCK(strRev.u16FirmwareHifInfo) == M2M_HIF_BLOCK_VALUE) + { + ret = hif_send(M2M_REQ_GROUP_OTA, M2M_OTA_REQ_ROLLBACK, NULL, 0, NULL, 0, 0); + } + else + { + ret = M2M_ERR_FAIL; + } + } + return ret; +} + +/*! +@fn int8_t m2m_ota_abort(void) +@brief Request OTA Abort. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_abort(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_OTA, M2M_OTA_REQ_ABORT, NULL, 0, NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_ota_switch_firmware(void) +@brief Switch to the upgraded Firmware. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_switch_firmware(void) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mRev strRev; + + ret = m2m_ota_get_firmware_version(&strRev); + if(ret == M2M_SUCCESS) + { + if(M2M_GET_HIF_BLOCK(strRev.u16FirmwareHifInfo) == M2M_HIF_BLOCK_VALUE) + { + ret = hif_send(M2M_REQ_GROUP_OTA, M2M_OTA_REQ_SWITCH_FIRMWARE, NULL, 0, NULL, 0, 0); + } + else + { + ret = M2M_ERR_FAIL; + } + } + return ret; +} + +//DOM-IGNORE-END \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c new file mode 100644 index 0000000..82dbbaf --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c @@ -0,0 +1,129 @@ +/******************************************************************************* + WINC3400 Peripherials Application Interface. + + File Name: + m2m_periph.c + + Summary: + WINC3400 Peripherals Application Interface + + Description: + WINC3400 Peripherals Application Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "m2m_periph.h" +#include "nmasic.h" +#include "m2m_hif.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +#define GPIO_OP_DIR 0 +#define GPIO_OP_SET 1 +#define GPIO_OP_GET 2 + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +STATIC FUNCTIONS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +static int8_t get_gpio_idx(uint8_t u8GpioNum) +{ + if(u8GpioNum >= M2M_PERIPH_GPIO_MAX) return -1; + if(u8GpioNum == M2M_PERIPH_GPIO15) { + return 15; + } else if(u8GpioNum == M2M_PERIPH_GPIO16) { + return 16; + } else if(u8GpioNum == M2M_PERIPH_GPIO18) { + return 18; + } else { + return -2; + } +} +/* + * GPIO read/write skeleton with wakeup/sleep capability. + */ +static int8_t gpio_ioctl(uint8_t op, uint8_t u8GpioNum, uint8_t u8InVal, uint8_t *pu8OutVal) +{ + int8_t ret, gpio; + + ret = hif_chip_wake(); + if(ret != M2M_SUCCESS) goto _EXIT; + + gpio = get_gpio_idx(u8GpioNum); + if(gpio < 0) goto _EXIT1; + + if(op == GPIO_OP_DIR) { + ret = set_gpio_dir((uint8_t)gpio, u8InVal); + } else if(op == GPIO_OP_SET) { + ret = set_gpio_val((uint8_t)gpio, u8InVal); + } else if(op == GPIO_OP_GET) { + ret = get_gpio_val((uint8_t)gpio, pu8OutVal); + } + if(ret != M2M_SUCCESS) goto _EXIT1; + +_EXIT1: + ret = hif_chip_sleep(); +_EXIT: + return ret; +} + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION IMPLEMENTATION +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +int8_t m2m_periph_init(tstrPerphInitParam *param) +{ + return M2M_SUCCESS; +} + +int8_t m2m_periph_gpio_set_dir(uint8_t u8GpioNum, uint8_t u8GpioDir) +{ + return gpio_ioctl(GPIO_OP_DIR, u8GpioNum, u8GpioDir, NULL); +} + +int8_t m2m_periph_gpio_set_val(uint8_t u8GpioNum, uint8_t u8GpioVal) +{ + return gpio_ioctl(GPIO_OP_SET, u8GpioNum, u8GpioVal, NULL); +} + +int8_t m2m_periph_gpio_get_val(uint8_t u8GpioNum, uint8_t *pu8GpioVal) +{ + return gpio_ioctl(GPIO_OP_GET, u8GpioNum, 0, pu8GpioVal); +} + +int8_t m2m_periph_pullup_ctrl(uint32_t pinmask, uint8_t enable) +{ + return pullup_ctrl(pinmask, enable); +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ssl.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ssl.c new file mode 100644 index 0000000..f4a5f44 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_ssl.c @@ -0,0 +1,495 @@ +/******************************************************************************* + File Name: + m2m_ssl.c + + Summary: + WINC SSL Interface. + + Description: + WINC SSL Interface. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "m2m_ssl.h" +#include "m2m_hif.h" +#include "nmasic.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#define min(a,b) (((a) < (b)) ? (a) : (b)) + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +static tpfAppSSLCb gpfAppSSLCb = NULL; +static uint32_t gu32HIFAddr = 0; +static tenuTlsFlashStatus genuStatus = TLS_FLASH_ERR_UNKNOWN; + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/*! +@fn void m2m_ssl_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +@brief Internal SSL callback function. +@param [in] u8OpCode + HIF Opcode type. +@param [in] u16DataSize + HIF data length. +@param [in] u32Addr + HIF address. +*/ +static void m2m_ssl_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +{ + int8_t s8tmp = M2M_SUCCESS; + switch(u8OpCode) + { + case M2M_SSL_REQ_ECC: + { + tstrEccReqInfo strEccREQ; + s8tmp = hif_receive(u32Addr, (uint8_t *)&strEccREQ, sizeof(tstrEccReqInfo), 0); + if(s8tmp == M2M_SUCCESS) + { + if(gpfAppSSLCb) + { + gu32HIFAddr = u32Addr + sizeof(tstrEccReqInfo); + gpfAppSSLCb(M2M_SSL_REQ_ECC, &strEccREQ); + } + } + } + break; + case M2M_SSL_RESP_SET_CS_LIST: + { + tstrSslSetActiveCsList strCsList; + s8tmp = hif_receive(u32Addr, (uint8_t *)&strCsList, sizeof(tstrSslSetActiveCsList), 0); + if(s8tmp == M2M_SUCCESS) + { + if(gpfAppSSLCb) + gpfAppSSLCb(M2M_SSL_RESP_SET_CS_LIST, &strCsList); + } + } + break; + case M2M_SSL_RESP_WRITE_OWN_CERTS: + { + tstrTlsSrvChunkHdr strTlsSrvChunkRsp; + uint8_t bCallApp = 1; + + s8tmp = hif_receive(u32Addr, (uint8_t *)&strTlsSrvChunkRsp, sizeof(tstrTlsSrvChunkHdr), 0); + if(s8tmp == M2M_SUCCESS) + { + uint16_t offset = strTlsSrvChunkRsp.u16Offset32; + uint16_t chunk_size = strTlsSrvChunkRsp.u16Size32; + uint16_t total_size = strTlsSrvChunkRsp.u16TotalSize32; + tenuTlsFlashStatus status = (tenuTlsFlashStatus)(strTlsSrvChunkRsp.u16Sig); + + /* If first chunk, reset status. */ + if(offset == 0) + genuStatus = TLS_FLASH_OK_NO_CHANGE; + /* Only send status to app when processing last chunk. */ + if(offset + chunk_size != total_size) + bCallApp = 0; + + switch(status) + { + case TLS_FLASH_OK: + // Good flash write. Update status if no errors yet. + if(genuStatus == TLS_FLASH_OK_NO_CHANGE) + genuStatus = status; + break; + case TLS_FLASH_OK_NO_CHANGE: + // No change, don't update status. + break; + case TLS_FLASH_ERR_CORRUPT: + // Corrupt. Always update status. + genuStatus = status; + break; + case TLS_FLASH_ERR_NO_CHANGE: + // Failed flash write. Update status if no more serious error. + if((genuStatus != TLS_FLASH_ERR_CORRUPT) && (genuStatus != TLS_FLASH_ERR_UNKNOWN)) + genuStatus = status; + break; + default: + // Don't expect any other case. Ensure we don't mask a previous corrupt error. + if(genuStatus != TLS_FLASH_ERR_CORRUPT) + genuStatus = TLS_FLASH_ERR_UNKNOWN; + break; + } + } + if(bCallApp && gpfAppSSLCb) + gpfAppSSLCb(M2M_SSL_RESP_WRITE_OWN_CERTS, &genuStatus); + } + break; + } + if(s8tmp != M2M_SUCCESS) + { + M2M_ERR("Error receiving SSL from the HIF\n"); + } +} + +/*! +@fn int8_t m2m_ssl_init(tpfAppSSLCb pfAppSSLCb) +@brief Initializes the SSL layer. +@param [in] pfAppSslCb + Application SSL callback function. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_init(tpfAppSSLCb pfAppSSLCb) +{ + int8_t s8Ret = M2M_SUCCESS; + gpfAppSSLCb = pfAppSSLCb; + gu32HIFAddr = 0; + genuStatus = TLS_FLASH_ERR_UNKNOWN; + s8Ret = hif_register_cb(M2M_REQ_GROUP_SSL, m2m_ssl_cb); + if(s8Ret != M2M_SUCCESS) + { + M2M_ERR("hif_register_cb() failed with ret=%d", s8Ret); + } + return s8Ret; +} + +/*! +@fn int8_t m2m_ssl_handshake_rsp(tstrEccReqInfo* strECCResp, uint8_t* pu8RspDataBuff, uint16_t u16RspDataSz) +@brief Sends ECC responses to the WINC. +@param[in] strECCResp + ECC Response struct. +@param[in] pu8RspDataBuff + Pointer of the response data to be sent. +@param[in] u16RspDataSz + Response data size. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_handshake_rsp(tstrEccReqInfo *strECCResp, uint8_t *pu8RspDataBuff, uint16_t u16RspDataSz) +{ + int8_t s8Ret = M2M_SUCCESS; + + s8Ret = hif_send(M2M_REQ_GROUP_SSL, (M2M_SSL_RESP_ECC | M2M_REQ_DATA_PKT), (uint8_t *)strECCResp, sizeof(tstrEccReqInfo), pu8RspDataBuff, u16RspDataSz, sizeof(tstrEccReqInfo)); + + return s8Ret; +} + +/*! +@fn int8_t m2m_ssl_send_certs_to_winc(uint8_t *pu8Buffer, uint32_t u32BufferSz) +@brief Sends certificates to the WINC +@param[in] pu8Buffer + Pointer to the certificates. +@param[in] u32BufferSz + Size of the certificates. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ssl_send_certs_to_winc(uint8_t *pu8Buffer, uint32_t u32BufferSz) +{ + int8_t s8Ret = M2M_SUCCESS; +#define TXLIMIT (256 * 6) + + if(u32BufferSz <= TXLIMIT) + { + // set chunk header for one chunk + tstrTlsSrvChunkHdr *pchkhdr = (tstrTlsSrvChunkHdr *)pu8Buffer; + pchkhdr->u16Sig = TLS_CERTS_CHUNKED_SIG_VALUE; + pchkhdr->u16TotalSize32 = (u32BufferSz + 3) >> 2; + pchkhdr->u16Offset32 = 0; + pchkhdr->u16Size32 = (u32BufferSz + 3) >> 2; + s8Ret = hif_send(M2M_REQ_GROUP_SSL, (M2M_SSL_REQ_WRITE_OWN_CERTS | M2M_REQ_DATA_PKT), NULL, 0, pu8Buffer, u32BufferSz, 0); + M2M_INFO("Transferred %" PRIu32 " bytes of cert data NON-CHUNKED\r\n", u32BufferSz); + } + else + { + // chunk it + // We are sneaking in a header - tstrTlsSrvChunkHdr +#define CHUNKHDRSZ (sizeof(tstrTlsSrvChunkHdr)) +#define CHUNKSZ (TXLIMIT - 256) // divisible by 4 + uint8_t saveblob[CHUNKHDRSZ]; + uint32_t ofs = 0; + uint32_t thischunksz = 0; + + // first is special - over writing our header + memcpy(saveblob, &pu8Buffer[ofs], CHUNKHDRSZ); + thischunksz = min(CHUNKSZ, u32BufferSz-ofs); // no need to round up to quad words this time + + tstrTlsSrvChunkHdr *pchkhdr = (tstrTlsSrvChunkHdr *)&pu8Buffer[ofs]; + pchkhdr->u16Sig = TLS_CERTS_CHUNKED_SIG_VALUE; + pchkhdr->u16TotalSize32 = ((u32BufferSz + 3) >> 2); + pchkhdr->u16Offset32 = ((ofs + 3) >> 2); + pchkhdr->u16Size32 = ((thischunksz + 3) >> 2); + s8Ret = hif_send(M2M_REQ_GROUP_SSL, (M2M_SSL_REQ_WRITE_OWN_CERTS | M2M_REQ_DATA_PKT), NULL, 0, &pu8Buffer[ofs], thischunksz, 0); + M2M_INFO("Transferred %" PRIu32 " bytes of cert data CHUNKED to offset %" PRIu32 " total %" PRIu32 "\r\n", thischunksz, ofs, u32BufferSz); + memcpy(&pu8Buffer[ofs], saveblob, CHUNKHDRSZ); + ofs += thischunksz; + + while(ofs < u32BufferSz) + { + // Subsequent chunks write header before and send a little more + memcpy(saveblob, &pu8Buffer[ofs-CHUNKHDRSZ], CHUNKHDRSZ); + thischunksz = min(CHUNKSZ, u32BufferSz-ofs); + thischunksz = (thischunksz + 3) & 0xFFFFFFFC; // needs to round up to quad word length + pchkhdr = (tstrTlsSrvChunkHdr *)&pu8Buffer[ofs - CHUNKHDRSZ]; + pchkhdr->u16Sig = TLS_CERTS_CHUNKED_SIG_VALUE; + pchkhdr->u16TotalSize32 = ((u32BufferSz + 3) >> 2); + pchkhdr->u16Offset32 = ((ofs + 3) >> 2); + pchkhdr->u16Size32 = ((thischunksz + 3) >> 2); + s8Ret = hif_send(M2M_REQ_GROUP_SSL, (M2M_SSL_REQ_WRITE_OWN_CERTS | M2M_REQ_DATA_PKT), NULL, 0, &pu8Buffer[ofs - CHUNKHDRSZ], thischunksz + CHUNKHDRSZ, 0); + M2M_INFO("Transferred %" PRIu32 " bytes of cert data CHUNKED to offset %" PRIu32 " total %" PRIu32 "\n", thischunksz, ofs, u32BufferSz); + memcpy(&pu8Buffer[ofs - CHUNKHDRSZ], saveblob, CHUNKHDRSZ); + ofs += thischunksz; + } + } + + return s8Ret; +} + +/*! +@fn int8_t m2m_ssl_retrieve_next_for_verifying(tenuEcNamedCurve *penuCurve, uint8_t *pu8Value, uint16_t *pu16ValueSz, uint8_t *pu8Sig, uint16_t *pu16SigSz, tstrECPoint *pstrKey); +@brief Retrieve the next set of information from the WINC for ECDSA verification. +@param[out] penuCurve + The named curve. +@param[out] pu8Value + Value retrieved for verification. This is the digest of the message, truncated/prepended to the appropriate size. +@param[inout] pu16ValueSz + in: Size of value buffer provided by caller. + out: Size of value retrieved (provided for convenience; the value size is in fact determined by the curve). +@param[out] pu8Sig + Signature retrieved for verification. +@param[inout] pu16SigSz + in: Size of signature buffer provided by caller. + out: Size of signature retrieved (provided for convenience; the signature size is in fact determined by the curve). +@param[out] pstrKey + Public key retrieved for verification. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + verification information is ready via @ref ECC_REQ_SIGN_VERIFY. + +@warning If this function returns @ref M2M_ERR_FAIL, then any remaining verification info from + the WINC is lost. +*/ +int8_t m2m_ssl_retrieve_next_for_verifying(tenuEcNamedCurve *penuCurve, uint8_t *pu8Value, uint16_t *pu16ValueSz, uint8_t *pu8Sig, uint16_t *pu16SigSz, tstrECPoint *pstrKey) +{ + int8_t s8Ret = M2M_ERR_FAIL; + uint16_t u16HashSz, u16SigSz, u16KeySz; + + if(gu32HIFAddr == 0) return M2M_ERR_FAIL; + + if((NULL == penuCurve) || (NULL == pu8Value) || (NULL == pu16ValueSz) || (NULL == pu8Sig) || (NULL == pu16SigSz) || (NULL == pstrKey)) + { + s8Ret = M2M_ERR_INVALID_ARG; + goto __ERR; + } + + if(hif_receive(gu32HIFAddr, (uint8_t *)&u16KeySz, 2, 0) != M2M_SUCCESS) goto __ERR; + *penuCurve = _htons(u16KeySz); + gu32HIFAddr += 2; + + if(hif_receive(gu32HIFAddr, (uint8_t *)&u16KeySz, 2, 0) != M2M_SUCCESS) goto __ERR; + u16KeySz = _htons(u16KeySz); + if(u16KeySz > sizeof(pstrKey->X)) goto __ERR; + pstrKey->u16Size = u16KeySz; + gu32HIFAddr += 2; + + if(hif_receive(gu32HIFAddr, (uint8_t *)&u16HashSz, 2, 0) != M2M_SUCCESS) goto __ERR; + u16HashSz = _htons(u16HashSz); + if(u16HashSz > *pu16ValueSz) goto __ERR; + *pu16ValueSz = u16HashSz; + gu32HIFAddr += 2; + + if(hif_receive(gu32HIFAddr, (uint8_t *)&u16SigSz, 2, 0) != M2M_SUCCESS) goto __ERR; + u16SigSz = _htons(u16SigSz); + if(u16SigSz > *pu16SigSz) goto __ERR; + *pu16SigSz = u16SigSz; + gu32HIFAddr += 2; + + if(hif_receive(gu32HIFAddr, pstrKey->X, u16KeySz, 0) != M2M_SUCCESS) goto __ERR; + gu32HIFAddr += u16KeySz; + if(hif_receive(gu32HIFAddr, pstrKey->Y, u16KeySz, 0) != M2M_SUCCESS) goto __ERR; + gu32HIFAddr += u16KeySz; + + if(hif_receive(gu32HIFAddr, pu8Value, u16HashSz, 0) != M2M_SUCCESS) goto __ERR; + gu32HIFAddr += u16HashSz; + + if(hif_receive(gu32HIFAddr, pu8Sig, u16SigSz, 0) != M2M_SUCCESS) goto __ERR; + gu32HIFAddr += u16SigSz; + + return M2M_SUCCESS; + +__ERR: + hif_receive(0, NULL, 0, 1); + return s8Ret; +} + +/*! +@fn int8_t m2m_ssl_retrieve_cert(uint16_t *pu16Curve, uint8_t *pu8Value, uint8_t *pu8Sig, tstrECPoint *pstrKey); +@brief Retrieve the next set of information from the WINC for ECDSA verification. +@param[out] pu16Curve + The named curve, to be cast to type @ref tenuEcNamedCurve. +@param[out] pu8Value + Value retrieved for verification. This is the digest of the message, truncated/prepended to the appropriate size. + The size of the value is equal to the field size of the curve, hence is determined by pu16Curve. +@param[out] pu8Sig + Signature retrieved for verification. + The size of the signature is equal to twice the field size of the curve, hence is determined by pu16Curve. +@param[out] pstrKey + Public key retrieved for verification. +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + verification information is ready via @ref ECC_REQ_SIGN_VERIFY. + +@warning If this function returns @ref M2M_ERR_FAIL, then any remaining verification info from + the WINC is lost. + +@warning This API has been deprecated and is kept for legacy purposes only. It is recommended + that @ref m2m_ssl_retrieve_next_for_verifying is used instead. +*/ +int8_t m2m_ssl_retrieve_cert(uint16_t *pu16Curve, uint8_t *pu8Value, uint8_t *pu8Sig, tstrECPoint *pstrKey) +{ + uint16_t u16ValueSz = 32, u16SigSz = 64; + + return m2m_ssl_retrieve_next_for_verifying((tenuEcNamedCurve *)pu16Curve, pu8Value, &u16ValueSz, pu8Sig, &u16SigSz, pstrKey); +} + +/*! +@fn int8_t m2m_ssl_retrieve_hash(uint8_t *pu8Value, uint16_t u16ValueSz) +@brief Retrieve the value from the WINC for ECDSA signing. +@param[out] pu8Value + Value retrieved for signing. This is the digest of the message, truncated/prepended to the appropriate size. +@param[in] u16ValueSz + Size of value to be retrieved. (The application should obtain this information, + along with the curve, from the associated @ref ECC_REQ_SIGN_GEN notification.) +@return The function returns @ref M2M_SUCCESS for success and a negative value otherwise. + +@pre This function should only be called after the application has been notified that + signing information is ready via @ref ECC_REQ_SIGN_GEN. + +@warning If this function returns @ref M2M_ERR_FAIL, then the value for signing is lost. +*/ +int8_t m2m_ssl_retrieve_hash(uint8_t *pu8Value, uint16_t u16ValueSz) +{ + int8_t s8Ret = M2M_ERR_FAIL; + + if(gu32HIFAddr == 0) return M2M_ERR_FAIL; + + if(NULL == pu8Value) + { + s8Ret = M2M_ERR_INVALID_ARG; + goto __ERR; + } + + if(hif_receive(gu32HIFAddr, pu8Value, u16ValueSz, 0) != M2M_SUCCESS) goto __ERR; + + return M2M_SUCCESS; + +__ERR: + hif_receive(0, NULL, 0, 1); + return s8Ret; +} + +/*! +@fn void m2m_ssl_stop_retrieving(void); +@brief Allow SSL driver to tidy up when the application chooses not to retrieve all available + information. + +@return None. + +@warning The application must call this function if it has been notified (via + @ref ECC_REQ_SIGN_GEN or @ref ECC_REQ_SIGN_VERIFY) that information is available for + retrieving from the WINC, but chooses not to retrieve it all. + The application must not call this function if it has retrieved all the available + information, or if a retrieve function returned @ref M2M_ERR_FAIL indicating that any + remaining information has been lost. + +@see m2m_ssl_retrieve_next_for_verifying\n + m2m_ssl_retrieve_cert\n + m2m_ssl_retrieve_hash +*/ +void m2m_ssl_stop_retrieving(void) +{ + hif_receive(0, NULL, 0, 1); +} + +/*! +@fn void m2m_ssl_stop_processing_certs(void); +@brief Allow SSL driver to tidy up in case application does not read all available certificates. +@return None. + +@warning This API has been deprecated and is kept for legacy purposes only. It is recommended + that @ref m2m_ssl_stop_retrieving is used instead. +*/ +void m2m_ssl_stop_processing_certs(void) +{ + m2m_ssl_stop_retrieving(); +} + +/*! +@fn void m2m_ssl_ecc_process_done(void); +@brief Allow SSL driver to tidy up after application has finished processing ECC message. + +@return None. + +@warning The application should call this function after receiving an SSL callback with message + type @ref M2M_SSL_REQ_ECC, after retrieving any related information, and before + calling @ref m2m_ssl_handshake_rsp. +*/ +void m2m_ssl_ecc_process_done(void) +{ + gu32HIFAddr = 0; +} + +/*! +@fn int8_t m2m_ssl_set_active_ciphersuites(uint32_t u32SslCsBMP) +@brief Sets the active ciphersuites. +@details Override the default Active SSL ciphers in the SSL module with a certain combination selected by the caller in the form of + a bitmap containing the required ciphers to be on. + There is no need to call this function if the application will not change the default ciphersuites. + +@param [in] u32SslCsBMP + Bitmap containing the desired ciphers to be enabled for the SSL module. The ciphersuites are defined in + @ref SSLCipherSuiteID. + The default ciphersuites are all ciphersuites supported by the firmware with the exception of ECC ciphersuites. + The caller can override the default with any desired combination. + If u32SslCsBMP does not contain any ciphersuites supported by firmware, then the current active list will not + change. + +@return + - @ref SOCK_ERR_NO_ERROR + - @ref SOCK_ERR_INVALID_ARG +*/ +int8_t m2m_ssl_set_active_ciphersuites(uint32_t u32SslCsBMP) +{ + int8_t s8Ret = M2M_SUCCESS; + tstrSslSetActiveCsList strCsList; + + strCsList.u32CsBMP = u32SslCsBMP; + s8Ret = hif_send(M2M_REQ_GROUP_SSL, M2M_SSL_REQ_SET_CS_LIST, (uint8_t *)&strCsList, sizeof(tstrSslSetActiveCsList), NULL, 0, 0); + + return s8Ret; +} + +//DOM-IGNORE-END \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_wifi.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_wifi.c new file mode 100644 index 0000000..45d2b13 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_wifi.c @@ -0,0 +1,2061 @@ +/******************************************************************************* + File Name: + m2m_wifi.c + + Summary: + This module contains M2M Wi-Fi APIs implementation. + + Description: + This module contains M2M Wi-Fi APIs implementation. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "m2m_wifi.h" +#include "m2m_hif.h" +#include "nmasic.h" + +#define WIFI_1X_TLS_HS_FLAGS_PEER_AUTH NBIT1 +#define WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK NBIT2 +#define WIFI_1X_TLS_HS_FLAGS_REQUIRE_TIME NBIT3 +#define WIFI_1X_TLS_HS_FLAGS_SESSION_CACHING NBIT4 +#define WIFI_1X_TLS_HS_FLAGS_SPECIFY_ROOTCERT NBIT6 + +#define WIFI_1X_TLS_HS_FLAGS_DEFAULT ( \ + WIFI_1X_TLS_HS_FLAGS_PEER_AUTH \ + | WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK \ + | WIFI_1X_TLS_HS_FLAGS_SESSION_CACHING \ +) + +static volatile uint8_t gu8ChNum; +static tpfAppWifiCb gpfAppWifiCb = NULL; + +static uint32_t gu321xTlsHsFlags = WIFI_1X_TLS_HS_FLAGS_DEFAULT; +static uint8_t gau81xRootSha1[20] = {0}; + +static tpfAppEthCb gpfAppEthCb = NULL; +static uint8_t *gau8ethRcvBuf = NULL; +static uint16_t gu16ethRcvBufSize; + +/** +* @fn m2m_wifi_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr, uint8_t grp) +* @brief WiFi call back function +* @param [in] u8OpCode +* HIF Opcode type. +* @param [in] u16DataSize +* HIF data length. +* @param [in] u32Addr +* HIF address. +* @param [in] grp +* HIF group type. +*/ +static void m2m_wifi_cb(uint8_t u8OpCode, uint16_t u16DataSize, uint32_t u32Addr) +{ + uint8_t rx_buf[8]; + if (u8OpCode == M2M_WIFI_RESP_CON_STATE_CHANGED) + { + tstrM2mWifiStateChanged strState; + if (hif_receive(u32Addr, (uint8_t*)&strState, sizeof(tstrM2mWifiStateChanged), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_CON_STATE_CHANGED, &strState); + } + } + else if (u8OpCode == M2M_WIFI_RESP_GET_SYS_TIME) + { + tstrSystemTime strSysTime; + if (hif_receive(u32Addr, (uint8_t*)&strSysTime, sizeof(tstrSystemTime), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_GET_SYS_TIME, &strSysTime); + } + } + else if (u8OpCode == M2M_WIFI_RESP_CONN_INFO) + { + tstrM2MConnInfo strConnInfo; + if (hif_receive(u32Addr, (uint8_t*)&strConnInfo, sizeof(tstrM2MConnInfo), 1) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_CONN_INFO, &strConnInfo); + } + } + else if (u8OpCode == M2M_WIFI_RESP_MEMORY_RECOVER) + { + } + else if (u8OpCode == M2M_WIFI_REQ_DHCP_CONF) + { + tstrM2MIPConfig strIpConfig; + if (hif_receive(u32Addr, (uint8_t*)&strIpConfig, sizeof(tstrM2MIPConfig), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_REQ_DHCP_CONF, (uint8_t*)&strIpConfig); + } + } + else if (u8OpCode == M2M_WIFI_REQ_WPS) + { + tstrM2MWPSInfo strWps; + memset((uint8_t*)&strWps, 0, sizeof(tstrM2MWPSInfo)); + if (hif_receive(u32Addr, (uint8_t*)&strWps, sizeof(tstrM2MWPSInfo), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_REQ_WPS, &strWps); + } + } + else if (u8OpCode == M2M_WIFI_RESP_IP_CONFLICT) + { + uint32_t u32ConflictedIP; + if (hif_receive(u32Addr, (uint8_t*)&u32ConflictedIP, sizeof(u32ConflictedIP), 0) == M2M_SUCCESS) + { + M2M_INFO("Conflicted IP \" %u.%u.%u.%u \"\r\n", + BYTE_0(u32ConflictedIP), BYTE_1(u32ConflictedIP), BYTE_2(u32ConflictedIP), BYTE_3(u32ConflictedIP)); + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_IP_CONFLICT, NULL); + } + } + else if (u8OpCode == M2M_WIFI_RESP_SCAN_DONE) + { + tstrM2mScanDone strState; + if (hif_receive(u32Addr, (uint8_t*)&strState, sizeof(tstrM2mScanDone), 0) == M2M_SUCCESS) + { + gu8ChNum = strState.u8NumofCh; + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_SCAN_DONE, &strState); + } + } + else if (u8OpCode == M2M_WIFI_RESP_SCAN_RESULT) + { + tstrM2mWifiscanResult strScanResult; + if (hif_receive(u32Addr, (uint8_t*)&strScanResult, sizeof(tstrM2mWifiscanResult), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_SCAN_RESULT, &strScanResult); + } + } + else if (u8OpCode == M2M_WIFI_RESP_CURRENT_RSSI) + { + if (hif_receive(u32Addr, rx_buf, 4, 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_CURRENT_RSSI, rx_buf); + } + } + else if (u8OpCode == M2M_WIFI_RESP_CLIENT_INFO) + { + if (hif_receive(u32Addr, rx_buf, 4, 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_CLIENT_INFO, rx_buf); + } + } + else if (u8OpCode == M2M_WIFI_RESP_PROVISION_INFO) + { + tstrM2MProvisionInfo strProvInfo; + if (hif_receive(u32Addr, (uint8_t*)&strProvInfo, sizeof(tstrM2MProvisionInfo), 1) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_PROVISION_INFO, &strProvInfo); + } + } + else if (u8OpCode == M2M_WIFI_RESP_DEFAULT_CONNECT) + { + tstrM2MDefaultConnResp strResp; + if (hif_receive(u32Addr, (uint8_t*)&strResp, sizeof(tstrM2MDefaultConnResp), 1) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_DEFAULT_CONNECT, &strResp); + } + } + else if (u8OpCode == M2M_WIFI_REQRSP_DELETE_APID) + { + tstrM2MGenericResp strResp; + if (hif_receive(u32Addr, (uint8_t*)&strResp, sizeof(tstrM2MGenericResp), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_REQRSP_DELETE_APID, &strResp); + } + } + else if (u8OpCode == M2M_WIFI_RESP_BLE_API_RECV) + { + //Read the length + if (hif_receive(u32Addr, rx_buf, 2, 0) == M2M_SUCCESS) + { + uint16_t u16BleMsgLen = (rx_buf[1] << 8) + rx_buf[0]; + tstrM2mBleApiMsg bleRx;// = (tstrM2mBleApiMsg*)OSAL_Malloc(u16BleMsgLen + sizeof(tstrM2mBleApiMsg)); + + // if (bleRx == NULL) + // M2M_ERR("No Mem for BLE msg\r\n"); + // else + { + bleRx.u16Len = u16BleMsgLen; + + //Read the rest of the message + if (hif_receive(u32Addr+2, bleRx.data, bleRx.u16Len, 1)== M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_BLE_API_RECV, &bleRx); + } + // OSAL_Free(bleRx); + } + } + } + else if (u8OpCode == M2M_WIFI_RESP_GET_PRNG) + { + tstrPrng strPrng; + if (hif_receive(u32Addr, (uint8_t*)&strPrng, sizeof(tstrPrng), 0) == M2M_SUCCESS) + { + if (hif_receive(u32Addr + sizeof(tstrPrng), strPrng.pu8RngBuff, strPrng.u16PrngSize, 1) == M2M_SUCCESS) + { + if (gpfAppWifiCb) { + gpfAppWifiCb(M2M_WIFI_RESP_GET_PRNG, &strPrng); + } + } + } + } + else if (u8OpCode == M2M_WIFI_RESP_SET_GAIN_TABLE) + { + tstrM2MGainTableRsp strGainRsp; + if (hif_receive(u32Addr, (uint8_t*)&strGainRsp, sizeof(tstrM2MGainTableRsp), 0) == M2M_SUCCESS) + { + if (gpfAppWifiCb) + gpfAppWifiCb(M2M_WIFI_RESP_SET_GAIN_TABLE, &strGainRsp); + } + } + else if (u8OpCode == M2M_WIFI_RESP_ETHERNET_RX_PACKET) + { + tstrM2mIpRsvdPkt strM2mRsvd; + if (hif_receive(u32Addr, (uint8_t*)&strM2mRsvd, sizeof(tstrM2mIpRsvdPkt), 0) == M2M_SUCCESS) + { + tstrM2mIpCtrlBuf strM2mIpCtrlBuf; + uint16_t u16Offset = strM2mRsvd.u16PktOffset; + + strM2mIpCtrlBuf.u16RemainingDataSize = strM2mRsvd.u16PktSz; + if ((gpfAppEthCb) &&(gau8ethRcvBuf)&& (gu16ethRcvBufSize > 0)) + { + while (strM2mIpCtrlBuf.u16RemainingDataSize > 0) + { + if (strM2mIpCtrlBuf.u16RemainingDataSize > gu16ethRcvBufSize) + { + strM2mIpCtrlBuf.u16DataSize = gu16ethRcvBufSize ; + } + else + { + strM2mIpCtrlBuf.u16DataSize = strM2mIpCtrlBuf.u16RemainingDataSize; + } + + if (hif_receive(u32Addr+u16Offset, gau8ethRcvBuf, strM2mIpCtrlBuf.u16DataSize, 0) == M2M_SUCCESS) + { + strM2mIpCtrlBuf.u16RemainingDataSize -= strM2mIpCtrlBuf.u16DataSize; + u16Offset += strM2mIpCtrlBuf.u16DataSize; + gpfAppEthCb(M2M_WIFI_RESP_ETHERNET_RX_PACKET, gau8ethRcvBuf, &(strM2mIpCtrlBuf)); + } + else + { + break; + } + } + } + } + } + else + { + M2M_ERR("REQ Not defined %d\r\n", u8OpCode); + } +} + +int8_t m2m_wifi_download_mode(void) +{ + int8_t ret = M2M_SUCCESS; + + /* Apply device specific initialization. */ + ret = nm_drv_init_download_mode(); + if (ret != M2M_SUCCESS) goto _EXIT0; + + enable_interrupts(); + +_EXIT0: + return ret; +} + +static int8_t m2m_validate_ap_parameters(const tstrM2MAPModeConfig *pstrM2MAPModeConfig) +{ + int8_t s8Ret = M2M_SUCCESS; + /* Check for incoming pointer */ + if (pstrM2MAPModeConfig == NULL) + { + M2M_ERR("INVALID POINTER\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + /* Check for SSID */ + if ((strlen((const char*)pstrM2MAPModeConfig->strApConfig.au8SSID) <= 0) || (strlen((const char*)pstrM2MAPModeConfig->strApConfig.au8SSID) >= M2M_MAX_SSID_LEN)) + { + M2M_ERR("INVALID SSID\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + /* Check for Channel */ + if (pstrM2MAPModeConfig->strApConfig.u8ListenChannel > M2M_WIFI_CH_14 || pstrM2MAPModeConfig->strApConfig.u8ListenChannel < M2M_WIFI_CH_1) + { + M2M_ERR("INVALID CH\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + /* Check for DHCP Server IP address */ + if (!(pstrM2MAPModeConfig->strApConfig.au8DHCPServerIP[0] || pstrM2MAPModeConfig->strApConfig.au8DHCPServerIP[1])) + { + if (!(pstrM2MAPModeConfig->strApConfig.au8DHCPServerIP[2])) + { + M2M_ERR("INVALID DHCP SERVER IP\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + } + /* Check for Security */ + if (pstrM2MAPModeConfig->strApConfig.u8SecType == M2M_WIFI_SEC_OPEN) + { + goto ERR1; + } + else if (pstrM2MAPModeConfig->strApConfig.u8SecType == M2M_WIFI_SEC_WEP) + { + /* Check for WEP Key index */ + if ((pstrM2MAPModeConfig->strApConfig.u8KeyIndx == 0) || (pstrM2MAPModeConfig->strApConfig.u8KeyIndx > WEP_KEY_MAX_INDEX)) + { + M2M_ERR("INVALID KEY INDEX\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + /* Check for WEP Key size */ + if ((pstrM2MAPModeConfig->strApConfig.u8KeySz != WEP_40_KEY_STRING_SIZE) && + (pstrM2MAPModeConfig->strApConfig.u8KeySz != WEP_104_KEY_STRING_SIZE)) + { + M2M_ERR("INVALID KEY SIZE\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + /* Check for WEP Key */ + if ((pstrM2MAPModeConfig->strApConfig.au8WepKey == NULL) || (strlen((const char*)pstrM2MAPModeConfig->strApConfig.au8WepKey) <= 0) || (strlen((const char*)pstrM2MAPModeConfig->strApConfig.au8WepKey) > WEP_104_KEY_STRING_SIZE)) + { + M2M_ERR("INVALID WEP KEY\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + } + else + { + M2M_ERR("INVALID AUTHENTICATION MODE\r\n"); + s8Ret = M2M_ERR_FAIL; + goto ERR1; + } + +ERR1: + return s8Ret; +} + +static int8_t m2m_validate_scan_options(tstrM2MScanOption *ptstrM2MScanOption) +{ + int8_t s8Ret = M2M_SUCCESS; + /* Check for incoming pointer */ + if (ptstrM2MScanOption == NULL) + { + M2M_ERR("INVALID POINTER\r\n"); + s8Ret = M2M_ERR_FAIL; + } + else + { + /* Check for valid No of slots */ + if (ptstrM2MScanOption->u8NumOfSlot == 0) + { + M2M_ERR("INVALID No of scan slots!\r\n"); + s8Ret = M2M_ERR_FAIL; + } + /* Check for valid time of slots */ + if ((ptstrM2MScanOption->u8SlotTime < 10) || (ptstrM2MScanOption->u8SlotTime > 250)) + { + M2M_ERR("INVALID scan slot time!\r\n"); + s8Ret = M2M_ERR_FAIL; + } + /* Check for valid No of probe requests per slot */ + if ((ptstrM2MScanOption->u8ProbesPerSlot == 0) || (ptstrM2MScanOption->u8ProbesPerSlot > M2M_SCAN_DEFAULT_NUM_PROBE)) + { + M2M_ERR("INVALID No of probe requests per scan slot\r\n"); + s8Ret = M2M_ERR_FAIL; + } + /* Check for valid RSSI threshold */ + if (ptstrM2MScanOption->s8RssiThresh >= 0) + { + M2M_ERR("INVALID RSSI threshold %d\r\n", ptstrM2MScanOption->s8RssiThresh); + s8Ret = M2M_ERR_FAIL; + } + } + return s8Ret; +} + +int8_t m2m_wifi_ble_set_gain_table(uint8_t table_idx) +{ + int8_t s8Ret = M2M_ERR_FAIL; + tstrM2MGainTable strGainTable = {0}; + + strGainTable.u8GainTable = table_idx; + + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_GAIN_TABLE, (uint8_t*)&strGainTable, sizeof(tstrM2MGainTable), NULL, 0, 0); + return s8Ret; +} + +int8_t m2m_wifi_init_hold(void) +{ + int8_t ret = M2M_ERR_FAIL; + + /* Apply device specific initialization. */ + ret = nm_drv_init_hold(); + + return ret; +} + +int8_t m2m_wifi_init_start(tstrWifiInitParam *pWifiInitParam) +{ + tstrM2mRev strtmp; + int8_t ret = M2M_SUCCESS; + uint8_t u8WifiMode = M2M_WIFI_MODE_NORMAL; + + if (pWifiInitParam == NULL) { + ret = M2M_ERR_FAIL; + goto _EXIT0; + } + + gpfAppWifiCb = pWifiInitParam->pfAppWifiCb; + + gpfAppEthCb = pWifiInitParam->strEthInitParam.pfAppEthCb; + gau8ethRcvBuf = pWifiInitParam->strEthInitParam.au8ethRcvBuf; + gu16ethRcvBufSize = pWifiInitParam->strEthInitParam.u16ethRcvBufSize; + u8WifiMode = pWifiInitParam->strEthInitParam.u8EthernetEnable; + + if (pWifiInitParam->strEthInitParam.u8EthernetEnable) + u8WifiMode = M2M_WIFI_MODE_ETHERNET; + + + /* Initialize host interface module */ + /* Do this before bringing up the WINC as it can send HIF messages very quickly from bootup and we need to be ready */ + ret = hif_init(NULL); + if (ret != M2M_SUCCESS) goto _EXIT1; + + hif_register_cb(M2M_REQ_GROUP_WIFI, m2m_wifi_cb); + + /* Apply device specific initialization. */ + ret = nm_drv_init_start(&u8WifiMode); + if (ret != M2M_SUCCESS) goto _EXIT0; + + M2M_INFO("Curr driver ver: %u.%u.%u\r\n", M2M_DRIVER_VERSION_MAJOR_NO, M2M_DRIVER_VERSION_MINOR_NO, M2M_DRIVER_VERSION_PATCH_NO); + M2M_INFO("Curr driver HIF Level: (%u) %u.%u\r\n", M2M_HIF_BLOCK_VALUE, M2M_HIF_MAJOR_VALUE, M2M_HIF_MINOR_VALUE); + ret = m2m_wifi_get_firmware_version(&strtmp); + m2m_ota_get_firmware_version(&strtmp); + + if (ret == M2M_SUCCESS) + { + ret = hif_enable_access(); + if (ret == M2M_SUCCESS) + { + m2m_wifi_ble_set_gain_table(pWifiInitParam->GainTableIndex); + } + } + goto _EXIT0; + +_EXIT1: + nm_drv_deinit(NULL); + +_EXIT0: + return ret; +} + +int8_t m2m_wifi_init(tstrWifiInitParam *pWifiInitParam) +{ + int8_t ret = M2M_SUCCESS; + + ret = m2m_wifi_init_hold(); + if (ret == M2M_SUCCESS) + { + ret = m2m_wifi_init_start(pWifiInitParam); + } + return ret; +} + +int8_t m2m_wifi_deinit(void *arg) +{ + hif_deinit(NULL); + nm_drv_deinit(NULL); + + return M2M_SUCCESS; +} + +int8_t m2m_wifi_reinit_hold(void) +{ + m2m_wifi_deinit(NULL); + return m2m_wifi_init_hold(); +} + +int8_t m2m_wifi_reinit_start(tstrWifiInitParam *pWifiInitParam) +{ + return m2m_wifi_init_start(pWifiInitParam); +} + +int8_t m2m_wifi_reinit(tstrWifiInitParam *pWifiInitParam) +{ + int8_t ret = M2M_ERR_FAIL; + ret = m2m_wifi_reinit_hold(); + if (ret == M2M_SUCCESS) { + ret = m2m_wifi_reinit_start(pWifiInitParam); + } + return ret; +} + +uint8_t m2m_wifi_get_state(void) +{ + switch(nm_get_state()) + { + case NM_STATE_DEINIT: + return WIFI_STATE_DEINIT; + case NM_STATE_INIT: + return WIFI_STATE_INIT; + case NM_STATE_START: + return WIFI_STATE_START; + } + return WIFI_STATE_DEINIT; +} + +int8_t m2m_wifi_handle_events(void) +{ + if(WIFI_STATE_START == m2m_wifi_get_state()) + return hif_handle_isr(); + + return M2M_SUCCESS; +} + +int8_t m2m_wifi_delete_sc(char *pcSsid, uint8_t u8SsidLen) +{ + tstrM2mWifiApId strApId; + memset((uint8_t*)&strApId, 0, sizeof(strApId)); + strApId.au8SSID[0] = 0xFF; // Special value used to cause fw to delete all entries. + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQRSP_DELETE_APID, (uint8_t*)&strApId, sizeof(tstrM2mWifiApId), NULL, 0, 0); +} + +int8_t m2m_wifi_default_connect(void) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DEFAULT_CONNECT, NULL, 0, NULL, 0, 0); +} + +/*************************************************************************************************/ +/* WIFI CONNECT INTERNAL FUNCTIONS */ +/*************************************************************************************************/ +static int8_t m2m_wifi_connect_prepare_msg( + tenuCredStoreOption enuCredStoreOption, + tenuM2mSecType enuAuthType, + uint16_t u16AuthSize, + tstrNetworkId *pstrNetworkId, + tstrM2mWifiConnHdr *pstrWifiConn +) +{ + int8_t ret = M2M_ERR_FAIL; + uint16_t u16CredSize = sizeof(tstrM2mConnCredCmn) + u16AuthSize; + /* Check application params. */ + if ( + (pstrNetworkId == NULL) + || (pstrNetworkId->pu8Ssid == NULL) + || (pstrNetworkId->u8SsidLen >= M2M_MAX_SSID_LEN) + ) + goto INVALID_ARG; + + if (pstrWifiConn != NULL) + { + tstrM2mConnCredHdr *pstrHdr = &pstrWifiConn->strConnCredHdr; + tstrM2mConnCredCmn *pstrCmn = &pstrWifiConn->strConnCredCmn; + + memset((uint8_t*)pstrWifiConn, 0, sizeof(tstrM2mWifiConnHdr)); + + pstrHdr->u16CredSize = u16CredSize; + switch(enuCredStoreOption) + { + case WIFI_CRED_SAVE_ENCRYPTED: + pstrHdr->u8CredStoreFlags |= M2M_CRED_ENCRYPT_FLAG; + // intentional fall through... + case WIFI_CRED_SAVE_UNENCRYPTED: + pstrHdr->u8CredStoreFlags |= M2M_CRED_STORE_FLAG; + // intentional fall through... + case WIFI_CRED_DONTSAVE: + break; + default: + goto INVALID_ARG; + } + + if (pstrNetworkId->enuChannel == M2M_WIFI_CH_ALL) + pstrHdr->u8Channel = (uint8_t)(pstrNetworkId->enuChannel); + else if ((pstrNetworkId->enuChannel <= M2M_WIFI_CH_14) && (pstrNetworkId->enuChannel >= M2M_WIFI_CH_1)) + pstrHdr->u8Channel = (uint8_t)(pstrNetworkId->enuChannel) - 1; + else + goto INVALID_ARG; + + if ((enuAuthType == M2M_WIFI_SEC_INVALID) || (enuAuthType >= M2M_WIFI_NUM_AUTH_TYPES)) + goto INVALID_ARG; + pstrCmn->u8AuthType = (uint8_t)enuAuthType; + + pstrCmn->u8SsidLen = pstrNetworkId->u8SsidLen; + memcpy(pstrCmn->au8Ssid, pstrNetworkId->pu8Ssid, pstrNetworkId->u8SsidLen); + if (pstrNetworkId->pu8Bssid != NULL) + { + pstrCmn->u8Options = M2M_WIFI_CONN_BSSID_FLAG; + memcpy(pstrCmn->au8Bssid, pstrNetworkId->pu8Bssid, M2M_MAC_ADDRES_LEN); + } + /* Everything is ok, set return value. */ + ret = M2M_SUCCESS; + } + return ret; +INVALID_ARG: + return M2M_ERR_INVALID_ARG; +} + +static int8_t legacy_connect_prepare_msg(tstrM2mWifiConnHdr *pstrConnHdr, tstrM2mWifiConnectLegacy_1_2 *pstrConnect) +{ + int8_t s8Ret = M2M_ERR_FAIL; + + if ( + !(pstrConnHdr->strConnCredHdr.u8CredStoreFlags & M2M_CRED_ENCRYPT_FLAG) + && !(pstrConnHdr->strConnCredCmn.u8Options & M2M_WIFI_CONN_BSSID_FLAG) + ) + { + memset((uint8_t*)pstrConnect, 0, sizeof(tstrM2mWifiConnectLegacy_1_2)); + memcpy(pstrConnect->au8SSID, pstrConnHdr->strConnCredCmn.au8Ssid, pstrConnHdr->strConnCredCmn.u8SsidLen); + pstrConnect->au8SSID[pstrConnHdr->strConnCredCmn.u8SsidLen] = 0; + pstrConnect->u16Ch = pstrConnHdr->strConnCredHdr.u8Channel; + pstrConnect->u8NoSaveCred = !(pstrConnHdr->strConnCredHdr.u8CredStoreFlags & M2M_CRED_STORE_FLAG); + pstrConnect->strSec.u8SecType = pstrConnHdr->strConnCredCmn.u8AuthType; + s8Ret = M2M_SUCCESS; + } + return s8Ret; +} + +/*************************************************************************************************/ +/* WIFI CONNECT APIS */ +/*************************************************************************************************/ +int8_t m2m_wifi_connect_open( + tenuCredStoreOption enuCredStoreOption, + tstrNetworkId *pstrNetworkId +) +{ + int8_t ret = M2M_ERR_INVALID_ARG; + tstrM2mWifiConnHdr strConnHdr; + + ret = m2m_wifi_connect_prepare_msg(enuCredStoreOption, M2M_WIFI_SEC_OPEN, 0, pstrNetworkId, &strConnHdr); + if (ret == M2M_SUCCESS) + { + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONN, + (uint8_t*)&strConnHdr, sizeof(strConnHdr), + NULL, 0, 0); + if (ret != M2M_SUCCESS) + { + /* Might just be that we are talking to legacy firmware - try the legacy connect message instead. */ + tstrM2mWifiConnectLegacy_1_2 strConnectLegacy; + ret = legacy_connect_prepare_msg(&strConnHdr, &strConnectLegacy); + if (ret == M2M_SUCCESS) + { + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONNECT, + (uint8_t*)&strConnectLegacy, sizeof(tstrM2mWifiConnectLegacy_1_2), + NULL, 0, 0); + } + } + } + return ret; +} + +int8_t m2m_wifi_connect_wep( + tenuCredStoreOption enuCredStoreOption, + tstrNetworkId *pstrNetworkId, + tstrAuthWep *pstrAuthWep +) +{ + int8_t ret = M2M_ERR_INVALID_ARG; + + if ( + (pstrAuthWep != NULL) && (pstrAuthWep->pu8WepKey != NULL) + && (pstrAuthWep->u8KeyIndx > 0) && (pstrAuthWep->u8KeyIndx <= WEP_KEY_MAX_INDEX) + && ((pstrAuthWep->u8KeySz == WEP_104_KEY_STRING_SIZE) || (pstrAuthWep->u8KeySz == WEP_40_KEY_STRING_SIZE)) + ) + { + tstrM2mWifiConnHdr strConnHdr; + + ret = m2m_wifi_connect_prepare_msg(enuCredStoreOption, + M2M_WIFI_SEC_WEP, + sizeof(tstrM2mWifiWep), + pstrNetworkId, + &strConnHdr); + + if (ret == M2M_SUCCESS) + { + tstrM2mWifiWep pstrWep;// = (tstrM2mWifiWep *)OSAL_Malloc(sizeof(tstrM2mWifiWep)); + // if (pstrWep == NULL) + // ret = M2M_ERR_MEM_ALLOC; + // else + { + pstrWep.u8KeyIndex = pstrAuthWep->u8KeyIndx - 1; + pstrWep.u8KeyLen = pstrAuthWep->u8KeySz/2; + hexstr_2_bytes(pstrWep.au8WepKey, (pstrAuthWep->pu8WepKey), pstrWep.u8KeyLen); + + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONN | M2M_REQ_DATA_PKT, + (uint8_t*)&strConnHdr, sizeof(tstrM2mWifiConnHdr), + (uint8_t*)&pstrWep, sizeof(tstrM2mWifiWep), sizeof(tstrM2mWifiConnHdr)); +// OSAL_Free(pstrWep); + } + if (ret != M2M_SUCCESS) + { + /* Might just be that we are talking to legacy firmware - try the legacy connect message instead. */ + tstrM2mWifiConnectLegacy_1_2 strConnectLegacy; + ret = legacy_connect_prepare_msg(&strConnHdr, &strConnectLegacy); + if (ret == M2M_SUCCESS) + { + tstrM2mWifiWepParamsLegacy_1_2 *pstrWepLegacy = &strConnectLegacy.strSec.uniAuth.strWepInfo; + pstrWepLegacy->u8KeyIndx = pstrAuthWep->u8KeyIndx - 1; + pstrWepLegacy->u8KeySz = pstrAuthWep->u8KeySz; + memcpy(pstrWepLegacy->au8WepKey, pstrAuthWep->pu8WepKey, pstrAuthWep->u8KeySz); + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONNECT, + (uint8_t*)&strConnectLegacy, sizeof(tstrM2mWifiConnectLegacy_1_2), + NULL, 0, 0); + } + } + } + } + return ret; +} + +int8_t m2m_wifi_connect_psk( + tenuCredStoreOption enuCredStoreOption, + tstrNetworkId *pstrNetworkId, + tstrAuthPsk *pstrAuthPsk +) +{ + int8_t ret = M2M_ERR_INVALID_ARG; + + if (pstrAuthPsk != NULL) + { + tstrM2mWifiConnHdr strConnHdr; + + ret = m2m_wifi_connect_prepare_msg(enuCredStoreOption, + M2M_WIFI_SEC_WPA_PSK, + sizeof(tstrM2mWifiPsk), + pstrNetworkId, + &strConnHdr); + + if (ret == M2M_SUCCESS) + { + tstrM2mWifiPsk pstrPsk;// = (tstrM2mWifiPsk *)OSAL_Malloc(sizeof(tstrM2mWifiPsk)); + // if (pstrPsk == NULL) + // ret = M2M_ERR_MEM_ALLOC; + // else + { + memset((uint8_t*)&pstrPsk, 0, sizeof(tstrM2mWifiPsk)); + if (pstrAuthPsk->pu8Psk != NULL) + { + if (pstrAuthPsk->pu8Passphrase != NULL) + ret = M2M_ERR_INVALID_ARG; + else + { + pstrPsk.u8PassphraseLen = M2M_MAX_PSK_LEN-1; + /* Use hexstr_2_bytes to verify pu8Psk input. */ + if (M2M_SUCCESS != hexstr_2_bytes(pstrPsk.au8Passphrase, pstrAuthPsk->pu8Psk, pstrPsk.u8PassphraseLen/2)) + ret = M2M_ERR_INVALID_ARG; + memcpy(pstrPsk.au8Passphrase, pstrAuthPsk->pu8Psk, pstrPsk.u8PassphraseLen); + } + } + else if (pstrAuthPsk->pu8Passphrase != NULL) + { + if (pstrAuthPsk->u8PassphraseLen > M2M_MAX_PSK_LEN-1) + ret = M2M_ERR_INVALID_ARG; + else + { + pstrPsk.u8PassphraseLen = pstrAuthPsk->u8PassphraseLen; + memcpy(pstrPsk.au8Passphrase, pstrAuthPsk->pu8Passphrase, pstrPsk.u8PassphraseLen); + } + } + else + ret = M2M_ERR_INVALID_ARG; + if (ret == M2M_SUCCESS) + { + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONN | M2M_REQ_DATA_PKT, + (uint8_t*)&strConnHdr, sizeof(tstrM2mWifiConnHdr), + (uint8_t*)&pstrPsk, sizeof(tstrM2mWifiPsk), sizeof(tstrM2mWifiConnHdr)); + } + // OSAL_Free(pstrPsk); + } + if (ret != M2M_SUCCESS) + { + /* Might just be that we are talking to legacy firmware - try the legacy connect message instead. */ + tstrM2mWifiConnectLegacy_1_2 strConnectLegacy; + ret = legacy_connect_prepare_msg(&strConnHdr, &strConnectLegacy); + if (ret == M2M_SUCCESS) + { + uint8_t *pu8PskLegacy = strConnectLegacy.strSec.uniAuth.au8PSK; + memcpy(pu8PskLegacy, pstrAuthPsk->pu8Passphrase, pstrAuthPsk->u8PassphraseLen); + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONNECT, + (uint8_t*)&strConnectLegacy, sizeof(tstrM2mWifiConnectLegacy_1_2), + NULL, 0, 0); + } + } + } + } + return ret; +} + +int8_t m2m_wifi_1x_set_option(tenu1xOption enuOptionName, const void *pOptionValue, size_t OptionLen) +{ + if((pOptionValue == NULL) && (OptionLen > 0)) + return M2M_ERR_INVALID_ARG; + switch(enuOptionName) + { + case WIFI_1X_BYPASS_SERVER_AUTH: + if(OptionLen != sizeof(int)) + return M2M_ERR_INVALID_ARG; + switch(*(int*)pOptionValue) + { + case 1: + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_PEER_AUTH; + break; + case 0: + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_PEER_AUTH; + break; + default: + return M2M_ERR_INVALID_ARG; + } + break; + case WIFI_1X_TIME_VERIF_MODE: + if(OptionLen != sizeof(tenuTlsCertExpSettings)) + return M2M_ERR_INVALID_ARG; + switch(*(tenuTlsCertExpSettings*)pOptionValue) + { + case TLS_CERT_EXP_CHECK_DISABLE: + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK; + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_REQUIRE_TIME; + break; + case TLS_CERT_EXP_CHECK_ENABLE: + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK; + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_REQUIRE_TIME; + break; + case TLS_CERT_EXP_CHECK_EN_IF_SYS_TIME: + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK; + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_REQUIRE_TIME; + break; + default: + return M2M_ERR_INVALID_ARG; + } + break; + case WIFI_1X_SESSION_CACHING: + if(OptionLen != sizeof(int)) + return M2M_ERR_INVALID_ARG; + switch(*(int*)pOptionValue) + { + case 1: + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_SESSION_CACHING; + break; + case 0: + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_SESSION_CACHING; + break; + default: + return M2M_ERR_INVALID_ARG; + } + break; + case WIFI_1X_SPECIFIC_ROOTCERT: + switch(OptionLen) + { + case 20: + gu321xTlsHsFlags |= WIFI_1X_TLS_HS_FLAGS_SPECIFY_ROOTCERT; + memcpy(gau81xRootSha1, (uint8_t*)pOptionValue, sizeof(gau81xRootSha1)); + break; + case 0: + gu321xTlsHsFlags &= ~WIFI_1X_TLS_HS_FLAGS_SPECIFY_ROOTCERT; + memset(gau81xRootSha1, 0, sizeof(gau81xRootSha1)); + default: + return M2M_ERR_INVALID_ARG; + } + break; + default: + return M2M_ERR_INVALID_ARG; + } + return M2M_SUCCESS; +} + +int8_t m2m_wifi_1x_get_option(tenu1xOption enuOptionName, void *pOptionValue, size_t *pOptionLen) +{ + if(pOptionValue == NULL) + return M2M_ERR_INVALID_ARG; + switch(enuOptionName) + { + case WIFI_1X_BYPASS_SERVER_AUTH: + if(*pOptionLen < sizeof(int)) + return M2M_ERR_INVALID_ARG; + *pOptionLen = sizeof(int); + *(int*)pOptionValue = (gu321xTlsHsFlags & WIFI_1X_TLS_HS_FLAGS_PEER_AUTH) ? 0 : 1; + break; + case WIFI_1X_TIME_VERIF_MODE: + if(*pOptionLen < sizeof(tenuTlsCertExpSettings)) + return M2M_ERR_INVALID_ARG; + *pOptionLen = sizeof(tenuTlsCertExpSettings); + if(!(gu321xTlsHsFlags & WIFI_1X_TLS_HS_FLAGS_PEER_CERTTIMECHECK)) + *(tenuTlsCertExpSettings*)pOptionValue = TLS_CERT_EXP_CHECK_DISABLE; + else if(gu321xTlsHsFlags & WIFI_1X_TLS_HS_FLAGS_REQUIRE_TIME) + *(tenuTlsCertExpSettings*)pOptionValue = TLS_CERT_EXP_CHECK_ENABLE; + else + *(tenuTlsCertExpSettings*)pOptionValue = TLS_CERT_EXP_CHECK_EN_IF_SYS_TIME; + break; + case WIFI_1X_SESSION_CACHING: + if(*pOptionLen < sizeof(int)) + return M2M_ERR_INVALID_ARG; + *pOptionLen = sizeof(int); + *(int*)pOptionValue = (gu321xTlsHsFlags & WIFI_1X_TLS_HS_FLAGS_SESSION_CACHING) ? 1 : 0; + break; + case WIFI_1X_SPECIFIC_ROOTCERT: + if (gu321xTlsHsFlags & WIFI_1X_TLS_HS_FLAGS_SPECIFY_ROOTCERT) + { + if (*pOptionLen < sizeof(gau81xRootSha1)) + return M2M_ERR_INVALID_ARG; + *pOptionLen = sizeof(gau81xRootSha1); + memcpy((uint8_t*)pOptionValue, gau81xRootSha1, sizeof(gau81xRootSha1)); + } + else + *pOptionLen = 0; + break; + default: + return M2M_ERR_INVALID_ARG; + } + return M2M_SUCCESS; +} + +int8_t m2m_wifi_connect_1x_mschap2( + tenuCredStoreOption enuCredStoreOption, + tstrNetworkId *pstrNetworkId, + tstrAuth1xMschap2 *pstrAuth1xMschap2 +) +{ + int8_t ret = M2M_ERR_INVALID_ARG; + if (pstrAuth1xMschap2 != NULL) + { + if (pstrAuth1xMschap2->pu8Domain == NULL) + pstrAuth1xMschap2->u16DomainLen = 0; + if ( + (pstrAuth1xMschap2->pu8UserName != NULL) + && (pstrAuth1xMschap2->pu8Password != NULL) + && ((uint32_t)(pstrAuth1xMschap2->u16DomainLen) + pstrAuth1xMschap2->u16UserNameLen <= M2M_AUTH_1X_USER_LEN_MAX) + && (pstrAuth1xMschap2->u16PasswordLen <= M2M_AUTH_1X_PASSWORD_LEN_MAX) + ) + { + tstrM2mWifiConnHdr strConnHdr; + uint16_t u16AuthSize = sizeof(tstrM2mWifi1xHdr) + + pstrAuth1xMschap2->u16DomainLen + + pstrAuth1xMschap2->u16UserNameLen + + pstrAuth1xMschap2->u16PasswordLen; + + ret = m2m_wifi_connect_prepare_msg(enuCredStoreOption, + M2M_WIFI_SEC_802_1X, + u16AuthSize, + pstrNetworkId, + &strConnHdr); + + if (ret == M2M_SUCCESS) + { + tstrM2mWifi1xHdr pstr1xHdr;// = (tstrM2mWifi1xHdr *)OSAL_Malloc(u16AuthSize); + // if (pstr1xHdr == NULL) + // ret = M2M_ERR_MEM_ALLOC; + // else + { + uint8_t *pu8AuthPtr = pstr1xHdr.au81xAuthDetails; + memset((uint8_t*)&pstr1xHdr, 0, u16AuthSize); + + pstr1xHdr.u8Flags = M2M_802_1X_MSCHAP2_FLAG; + if (pstrAuth1xMschap2->bUnencryptedUserName == true) + pstr1xHdr.u8Flags |= M2M_802_1X_UNENCRYPTED_USERNAME_FLAG; + if (pstrAuth1xMschap2->bPrependDomain == true) + pstr1xHdr.u8Flags |= M2M_802_1X_PREPEND_DOMAIN_FLAG; + + pstr1xHdr.u8HdrLength = sizeof(tstrM2mWifi1xHdr); + pstr1xHdr.u32TlsHsFlags = gu321xTlsHsFlags; + memcpy(pstr1xHdr.au8TlsSpecificRootNameSha1, gau81xRootSha1, sizeof(gau81xRootSha1)); + + pstr1xHdr.u8DomainLength = 0; + if (pstrAuth1xMschap2->pu8Domain != NULL) + { + pstr1xHdr.u8DomainLength = (uint8_t)(pstrAuth1xMschap2->u16DomainLen); + memcpy(pu8AuthPtr, pstrAuth1xMschap2->pu8Domain, pstr1xHdr.u8DomainLength); + pu8AuthPtr += pstr1xHdr.u8DomainLength; + } + + pstr1xHdr.u8UserNameLength = (pstrAuth1xMschap2->u16UserNameLen); + memcpy(pu8AuthPtr, pstrAuth1xMschap2->pu8UserName, pstr1xHdr.u8UserNameLength); + pu8AuthPtr += pstr1xHdr.u8UserNameLength; + + pstr1xHdr.u16PrivateKeyOffset = pu8AuthPtr - pstr1xHdr.au81xAuthDetails; + pstr1xHdr.u16PrivateKeyLength = pstrAuth1xMschap2->u16PasswordLen; + memcpy(pu8AuthPtr, pstrAuth1xMschap2->pu8Password, pstr1xHdr.u16PrivateKeyLength); + + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONN | M2M_REQ_DATA_PKT, + (uint8_t*)&strConnHdr, sizeof(tstrM2mWifiConnHdr), + (uint8_t*)&pstr1xHdr, u16AuthSize, + sizeof(tstrM2mWifiConnHdr)); + // OSAL_Free(pstr1xHdr); + } + } + } + } + return ret; +} + +int8_t m2m_wifi_connect_1x_tls( + tenuCredStoreOption enuCredStoreOption, + tstrNetworkId *pstrNetworkId, + tstrAuth1xTls *pstrAuth1xTls +) +{ + int8_t ret = M2M_ERR_INVALID_ARG; + if (pstrAuth1xTls != NULL) + { + if (pstrAuth1xTls->pu8Domain == NULL) + pstrAuth1xTls->u16DomainLen = 0; + if ( + (pstrAuth1xTls->pu8UserName != NULL) + && (pstrAuth1xTls->pu8PrivateKey_Mod != NULL) + && (pstrAuth1xTls->pu8PrivateKey_Exp != NULL) + && (pstrAuth1xTls->pu8Certificate != NULL) + && ((uint32_t)(pstrAuth1xTls->u16DomainLen) + pstrAuth1xTls->u16UserNameLen <= M2M_AUTH_1X_USER_LEN_MAX) + && (pstrAuth1xTls->u16PrivateKeyLen <= M2M_AUTH_1X_PRIVATEKEY_LEN_MAX) + && (pstrAuth1xTls->u16CertificateLen <= M2M_AUTH_1X_CERT_LEN_MAX) + ) + { + tstrM2mWifiConnHdr strConnHdr; + uint16_t u16AuthSize = sizeof(tstrM2mWifi1xHdr) + + pstrAuth1xTls->u16DomainLen + + pstrAuth1xTls->u16UserNameLen + + (2 * pstrAuth1xTls->u16PrivateKeyLen) + + pstrAuth1xTls->u16CertificateLen; + + ret = m2m_wifi_connect_prepare_msg(enuCredStoreOption, + M2M_WIFI_SEC_802_1X, + u16AuthSize, + pstrNetworkId, + &strConnHdr); + + if (ret == M2M_SUCCESS) + { + uint16_t u16Payload1Size = u16AuthSize - pstrAuth1xTls->u16CertificateLen; + tstrM2mWifi1xHdr pstr1xHdr;// = (tstrM2mWifi1xHdr *)OSAL_Malloc(u16Payload1Size); + // if (pstr1xHdr == NULL) + // ret = M2M_ERR_MEM_ALLOC; + // else + { + tstrM2mWifiAuthInfoHdr strInfoHdr = {0}; + + uint8_t *pu8AuthPtr = pstr1xHdr.au81xAuthDetails; + memset((uint8_t*)&pstr1xHdr, 0, u16Payload1Size); + + pstr1xHdr.u8Flags = M2M_802_1X_TLS_FLAG; + if (pstrAuth1xTls->bUnencryptedUserName == true) + pstr1xHdr.u8Flags |= M2M_802_1X_UNENCRYPTED_USERNAME_FLAG; + if (pstrAuth1xTls->bPrependDomain == true) + pstr1xHdr.u8Flags |= M2M_802_1X_PREPEND_DOMAIN_FLAG; + + pstr1xHdr.u8HdrLength = sizeof(tstrM2mWifi1xHdr); + pstr1xHdr.u32TlsHsFlags = gu321xTlsHsFlags; + memcpy(pstr1xHdr.au8TlsSpecificRootNameSha1, gau81xRootSha1, sizeof(gau81xRootSha1)); + + pstr1xHdr.u8DomainLength = 0; + if (pstrAuth1xTls->pu8Domain != NULL) + { + pstr1xHdr.u8DomainLength = (uint8_t)(pstrAuth1xTls->u16DomainLen); + memcpy(pu8AuthPtr, pstrAuth1xTls->pu8Domain, pstr1xHdr.u8DomainLength); + pu8AuthPtr += pstr1xHdr.u8DomainLength; + } + + pstr1xHdr.u8UserNameLength = (pstrAuth1xTls->u16UserNameLen); + memcpy(pu8AuthPtr, pstrAuth1xTls->pu8UserName, pstr1xHdr.u8UserNameLength); + pu8AuthPtr += pstr1xHdr.u8UserNameLength; + + pstr1xHdr.u16PrivateKeyOffset = pu8AuthPtr - pstr1xHdr.au81xAuthDetails; + pstr1xHdr.u16PrivateKeyLength = pstrAuth1xTls->u16PrivateKeyLen; + memcpy(pu8AuthPtr, pstrAuth1xTls->pu8PrivateKey_Mod, pstr1xHdr.u16PrivateKeyLength); + pu8AuthPtr += pstr1xHdr.u16PrivateKeyLength; + memcpy(pu8AuthPtr, pstrAuth1xTls->pu8PrivateKey_Exp, pstr1xHdr.u16PrivateKeyLength); + pu8AuthPtr += pstr1xHdr.u16PrivateKeyLength; + + pstr1xHdr.u16CertificateOffset = pu8AuthPtr - pstr1xHdr.au81xAuthDetails; + pstr1xHdr.u16CertificateLength = pstrAuth1xTls->u16CertificateLen; + + strInfoHdr.u8Type = M2M_802_1X_TLS_CLIENT_CERTIFICATE; + strInfoHdr.u16InfoPos = pstr1xHdr.u16CertificateOffset; + strInfoHdr.u16InfoLen = pstr1xHdr.u16CertificateLength; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_IND_CONN_PARAM | M2M_REQ_DATA_PKT, + (uint8_t*)&strInfoHdr, sizeof(tstrM2mWifiAuthInfoHdr), + pstrAuth1xTls->pu8Certificate, pstrAuth1xTls->u16CertificateLen, + sizeof(tstrM2mWifiAuthInfoHdr)); + + if (ret == M2M_SUCCESS) + { + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONN | M2M_REQ_DATA_PKT, + (uint8_t*)&strConnHdr, sizeof(tstrM2mWifiConnHdr), + (uint8_t*)&pstr1xHdr, u16Payload1Size, + sizeof(tstrM2mWifiConnHdr)); + } + // OSAL_Free(pstr1xHdr); + } + } + } + } + return ret; +} + +int8_t m2m_wifi_connect(char *pcSsid, uint8_t u8SsidLen, uint8_t u8SecType, void *pvAuthInfo, uint16_t u16Ch) +{ + return m2m_wifi_connect_sc(pcSsid, u8SsidLen, u8SecType, pvAuthInfo, u16Ch, 0); +} + +int8_t m2m_wifi_connect_sc(char *pcSsid, uint8_t u8SsidLen, uint8_t u8SecType, void *pvAuthInfo, uint16_t u16Ch, uint8_t u8NoSaveCred) +{ + int8_t s8Ret = M2M_ERR_INVALID_ARG; + tstrNetworkId strNetworkId = {NULL, (uint8_t*)pcSsid, u8SsidLen, (tenuM2mScanCh)u16Ch}; + tenuCredStoreOption enuCredStoreOption = u8NoSaveCred ? WIFI_CRED_DONTSAVE : WIFI_CRED_SAVE_ENCRYPTED; + + /* This API does not support SSIDs which contain '\0'. If there is a '\0' character within the + * first u8SsidLen characters, then assume that the input u8SsidLen was incorrect - set length + * to strlen(pcSsid) and continue. This is to avoid a change from the behaviour of previously + * released drivers. */ + if (u8SsidLen < M2M_MAX_SSID_LEN) + while(u8SsidLen--) + if (strNetworkId.pu8Ssid[u8SsidLen] == 0) + strNetworkId.u8SsidLen = u8SsidLen; + + switch((tenuM2mSecType)u8SecType) + { + case M2M_WIFI_SEC_OPEN: + s8Ret = m2m_wifi_connect_open(enuCredStoreOption, &strNetworkId); + break; + case M2M_WIFI_SEC_WPA_PSK: + if (pvAuthInfo != NULL) + { + tstrAuthPsk strAuthPsk = {NULL, NULL, 0}; + uint16_t len = strlen((const char*)pvAuthInfo); + + if (len == M2M_MAX_PSK_LEN-1) + { + strAuthPsk.pu8Psk = (uint8_t*)pvAuthInfo; + } + else + { + strAuthPsk.pu8Passphrase = (uint8_t*)pvAuthInfo; + strAuthPsk.u8PassphraseLen = len; + } + s8Ret = m2m_wifi_connect_psk(enuCredStoreOption, &strNetworkId, &strAuthPsk); + } + break; + case M2M_WIFI_SEC_WEP: + if (pvAuthInfo != NULL) + { + tstrM2mWifiWepParams *pstrWepParams = (tstrM2mWifiWepParams *)pvAuthInfo; + tstrAuthWep strAuthWep = {pstrWepParams->au8WepKey, pstrWepParams->u8KeySz-1, pstrWepParams->u8KeyIndx}; + + s8Ret = m2m_wifi_connect_wep(enuCredStoreOption, &strNetworkId, &strAuthWep); + } + break; + default: + break; + } + return s8Ret; +} + +int8_t m2m_wifi_disconnect(void) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DISCONNECT, NULL, 0, NULL, 0, 0); +} + +int8_t m2m_wifi_set_mac_address(uint8_t au8MacAddress[6]) +{ + tstrM2mSetMacAddress strTmp; + memcpy((uint8_t*)strTmp.au8Mac, (uint8_t*)au8MacAddress, 6); + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_MAC_ADDRESS, + (uint8_t*)&strTmp, sizeof(tstrM2mSetMacAddress), NULL, 0, 0); +} + +int8_t m2m_wifi_set_static_ip(tstrM2MIPConfig *pstrStaticIPConf) +{ + pstrStaticIPConf->u32DNS = NM_BSP_B_L_32(pstrStaticIPConf->u32DNS); + pstrStaticIPConf->u32Gateway = NM_BSP_B_L_32(pstrStaticIPConf->u32Gateway); + pstrStaticIPConf->u32StaticIP = NM_BSP_B_L_32( + pstrStaticIPConf->u32StaticIP); + pstrStaticIPConf->u32SubnetMask = NM_BSP_B_L_32( + pstrStaticIPConf->u32SubnetMask); + return hif_send(M2M_REQ_GROUP_IP, M2M_IP_REQ_STATIC_IP_CONF, + (uint8_t*)pstrStaticIPConf, sizeof(tstrM2MIPConfig), NULL, 0, 0); +} + +int8_t m2m_wifi_enable_dhcp(uint8_t u8DhcpEn) +{ + uint8_t u8Req; + u8Req = u8DhcpEn ? M2M_IP_REQ_ENABLE_DHCP : M2M_IP_REQ_DISABLE_DHCP; + return hif_send(M2M_REQ_GROUP_IP, u8Req, NULL, 0, NULL, 0, 0); +} + +int8_t m2m_wifi_set_lsn_int(tstrM2mLsnInt *pstrM2mLsnInt) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_LSN_INT, (uint8_t*)pstrM2mLsnInt, sizeof(tstrM2mLsnInt), NULL, 0, 0); +} + +int8_t m2m_wifi_set_cust_InfoElement(uint8_t *pau8M2mCustInfoElement) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CUST_INFO_ELEMENT, (uint8_t*)pau8M2mCustInfoElement, pau8M2mCustInfoElement[0]+1, NULL, 0, 0); +} + +int8_t m2m_wifi_set_scan_options(tstrM2MScanOption *ptstrM2MScanOption) +{ + int8_t s8Ret = M2M_ERR_FAIL; + if (m2m_validate_scan_options(ptstrM2MScanOption) == M2M_SUCCESS) + { + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_SCAN_OPTION, (uint8_t*)ptstrM2MScanOption, sizeof(tstrM2MScanOption), NULL, 0, 0); + } + return s8Ret; +} + +int8_t m2m_wifi_set_stop_scan_on_first(uint8_t u8StopScanOption) +{ + int8_t s8Ret = M2M_ERR_FAIL; + + tstrM2MStopScanOption StopScanOption = { 0 }; + + if(1 >= u8StopScanOption) + { + StopScanOption.u8StopOnFirstResult = u8StopScanOption; + + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_STOP_SCAN_OPTION, (uint8_t*)&StopScanOption, sizeof(tstrM2MStopScanOption), NULL, 0, 0); + + M2M_INFO("Scan will %sstop on first result.\r\n", StopScanOption.u8StopOnFirstResult ? "" : "NOT "); + } + else + { + s8Ret = M2M_ERR_INVALID_ARG; + } + + return s8Ret; +} + +int8_t m2m_wifi_set_scan_region(uint16_t ScanRegion) +{ + int8_t s8Ret = M2M_ERR_FAIL; + tstrM2MScanRegion strScanRegion; + strScanRegion.u16ScanRegion = ScanRegion; + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_SCAN_REGION, (uint8_t*)&strScanRegion, sizeof(tstrM2MScanRegion), NULL, 0, 0); + return s8Ret; +} + +int8_t m2m_wifi_request_scan(uint8_t ch) +{ + int8_t s8Ret = M2M_SUCCESS; + + if (((ch >= M2M_WIFI_CH_1) && (ch <= M2M_WIFI_CH_14)) || (ch == M2M_WIFI_CH_ALL)) + { + tstrM2MScan strtmp; + strtmp.u8ChNum = ch; + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SCAN, (uint8_t*)&strtmp, sizeof(tstrM2MScan), NULL, 0, 0); + } + else + { + s8Ret = M2M_ERR_INVALID_ARG; + } + return s8Ret; +} + +int8_t m2m_wifi_request_scan_passive(uint8_t ch) +{ + int8_t s8Ret = M2M_SUCCESS; + + if (((ch >= M2M_WIFI_CH_1) && (ch <= M2M_WIFI_CH_14)) || (ch == M2M_WIFI_CH_ALL)) + { + tstrM2MScan strtmp; + strtmp.u8ChNum = ch; + + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_PASSIVE_SCAN, (uint8_t*)&strtmp, sizeof(tstrM2MScan), NULL, 0, 0); + } + else + { + s8Ret = M2M_ERR_INVALID_ARG; + } + return s8Ret; +} + +int8_t m2m_wifi_request_scan_ssid_list(uint8_t ch, uint8_t *u8Ssidlist) +{ + int8_t s8Ret = M2M_ERR_INVALID_ARG; + + if((((ch >= M2M_WIFI_CH_1) && (ch <= M2M_WIFI_CH_14)) || (ch == M2M_WIFI_CH_ALL))&&(u8Ssidlist != NULL)) + { + tstrM2MScan strtmp; + uint16_t u16Lsize = 0; + uint8_t u8Apnum = u8Ssidlist[u16Lsize]; + if(u8Apnum <= MAX_HIDDEN_SITES) + { + u16Lsize++; + while(u8Apnum) + { + if(u8Ssidlist[u16Lsize] >= M2M_MAX_SSID_LEN) { + goto EXIT; + } else { + u16Lsize += u8Ssidlist[u16Lsize] + 1; + u8Apnum--; + } + } + strtmp.u8ChNum = ch; + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SCAN_SSID_LIST|M2M_REQ_DATA_PKT, (uint8_t*)&strtmp, sizeof(tstrM2MScan), u8Ssidlist, u16Lsize, sizeof(tstrM2MScan)); + } + } +EXIT: + return s8Ret; +} +int8_t m2m_wifi_wps(uint8_t u8TriggerType, const char *pcPinNumber) +{ + tstrM2MWPSConnect strtmp; + + strtmp.u8TriggerType = u8TriggerType; + /*If WPS is using PIN METHOD*/ + if (u8TriggerType == WPS_PIN_TRIGGER) + memcpy((uint8_t*)strtmp.acPinNumber, (uint8_t*)pcPinNumber, 8); + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_WPS, (uint8_t*)&strtmp, sizeof(tstrM2MWPSConnect), NULL, 0, 0); +} + +int8_t m2m_wifi_wps_disable(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DISABLE_WPS, NULL, 0, NULL, 0, 0); + return ret; +} + +int8_t m2m_wifi_p2p(uint8_t u8Channel) +{ + int8_t ret = M2M_SUCCESS; + if ((u8Channel == M2M_WIFI_CH_1) || (u8Channel == M2M_WIFI_CH_6) || (u8Channel == M2M_WIFI_CH_11)) + { + tstrM2MP2PConnect strtmp; + strtmp.u8ListenChannel = u8Channel; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_ENABLE_P2P, (uint8_t*)&strtmp, sizeof(tstrM2MP2PConnect), NULL, 0, 0); + } + else + { + M2M_ERR("Listen channel should only be 1, 6 or 11\r\n"); + ret = M2M_ERR_FAIL; + } + return ret; +} + +int8_t m2m_wifi_p2p_disconnect(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DISABLE_P2P, NULL, 0, NULL, 0, 0); + return ret; +} +int8_t m2m_wifi_enable_ap(const tstrM2MAPConfig *pstrM2MAPConfig) +{ + tstrM2MAPModeConfig strM2MAPModeConfig; + + memcpy((uint8_t*)&strM2MAPModeConfig.strApConfig, (uint8_t*)pstrM2MAPConfig, sizeof(tstrM2MAPConfig)); + + memcpy(strM2MAPModeConfig.strApConfigExt.au8DefRouterIP, (uint8_t*)pstrM2MAPConfig->au8DHCPServerIP, 4); + memcpy(strM2MAPModeConfig.strApConfigExt.au8DNSServerIP, (uint8_t*)pstrM2MAPConfig->au8DHCPServerIP, 4); + strM2MAPModeConfig.strApConfigExt.au8SubnetMask[0] = 0; + + return m2m_wifi_enable_ap_ext(&strM2MAPModeConfig); +} + +int8_t m2m_wifi_enable_ap_ext(const tstrM2MAPModeConfig *pstrM2MAPModeConfig) +{ + int8_t ret = M2M_ERR_FAIL; + if (M2M_SUCCESS == m2m_validate_ap_parameters(pstrM2MAPModeConfig)) + { + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_ENABLE_AP, (uint8_t*)pstrM2MAPModeConfig, sizeof(tstrM2MAPModeConfig), NULL, 0, 0); + + if (ret == M2M_ERR_SEND) + { + // Send again using legacy HIF message. + ret = hif_send( + M2M_REQ_GROUP_WIFI, + M2M_WIFI_REQ_ENABLE_AP_LEGACY, + (uint8_t*)&pstrM2MAPModeConfig->strApConfig, + sizeof(tstrM2MAPConfig), + NULL, + 0, + 0 + ); + } + } + return ret; +} + +int8_t m2m_wifi_disable_ap(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DISABLE_AP, NULL, 0, NULL, 0, 0); + return ret; +} +/*! +@fn int8_t m2m_wifi_req_curr_rssi(void); +@brief Request the current RSSI for the current connected AP, + the response received in wifi_cb M2M_WIFI_RESP_CURRENT_RSSI +@sa M2M_WIFI_RESP_CURRENT_RSSI +@return The function shall return M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_wifi_req_curr_rssi(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CURRENT_RSSI, NULL, 0, NULL, 0, 0); + return ret; +} + +int8_t m2m_wifi_req_restrict_ble(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_RESTRICT_BLE, NULL, 0, NULL, 0, 0); + return ret; +} + +int8_t m2m_wifi_req_unrestrict_ble(void) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_UNRESTRICT_BLE, NULL, 0, NULL, 0, 0); + return ret; +} + +int8_t m2m_wifi_send_ethernet_pkt(uint8_t *pu8Packet, uint16_t u16PacketSize) +{ + int8_t s8Ret = -1; + if ((pu8Packet != NULL)&&(u16PacketSize>0)) + { + tstrM2MWifiTxPacketInfo strTxPkt; + + strTxPkt.u16PacketSize = u16PacketSize; + strTxPkt.u16HeaderLength = M2M_ETHERNET_HDR_LEN; + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SEND_ETHERNET_PACKET | M2M_REQ_DATA_PKT, + (uint8_t*)&strTxPkt, sizeof(tstrM2MWifiTxPacketInfo), pu8Packet, u16PacketSize, M2M_ETHERNET_HDR_OFFSET - M2M_HIF_HDR_OFFSET); + } + return s8Ret; +} + +/*! +@fn int8_t m2m_wifi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t * pu8IsValid); +@brief Request the MAC address stored on the OTP (one time programmable) memory of the device. + (the function is Blocking until response received) +@param [out] pu8MacAddr + Output MAC address buffer of 6 bytes size. Valid only if *pu8Valid=1. +@param [out] pu8IsValid + A output boolean value to indicate the validity of pu8MacAddr in OTP. + Output zero if the OTP memory is not programmed, non-zero otherwise. +@return The function shall return M2M_SUCCESS for success and a negative value otherwise. +@sa m2m_wifi_get_mac_address +@pre m2m_wifi_init required to call any WIFI/socket function +*/ +int8_t m2m_wifi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t *pu8IsValid) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_chip_wake(); + if (ret == M2M_SUCCESS) + { + ret = nmi_get_otp_mac_address(pu8MacAddr, pu8IsValid); + hif_chip_sleep(); + } + return ret; +} + +/*! +@fn int8_t m2m_wifi_get_mac_address(uint8_t *pu8MacAddr) +@brief Request the current MAC address of the device (the working mac address). + (the function is Blocking until response received) +@param [out] pu8MacAddr + Output MAC address buffer of 6 bytes size. +@return The function shall return M2M_SUCCESS for success and a negative value otherwise. +@sa m2m_wifi_get_otp_mac_address +@pre m2m_wifi_init required to call any WIFI/socket function +*/ +int8_t m2m_wifi_get_mac_address(uint8_t *pu8MacAddr) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_chip_wake(); + if (ret == M2M_SUCCESS) + { + ret = nmi_get_mac_address(pu8MacAddr); + hif_chip_sleep(); + } + + return ret; +} + +/*! +@fn int8_t m2m_wifi_req_scan_result(uint8_t index); +@brief Reads the AP information from the Scan Result list with the given index, + the response received in wifi_cb M2M_WIFI_RESP_SCAN_RESULT, + the response pointer should be casted with tstrM2mWifiscanResult structure +@param [in] index + Index for the requested result, the index range start from 0 till number of AP's found +@sa tstrM2mWifiscanResult,m2m_wifi_get_num_ap_found,m2m_wifi_request_scan +@return The function shall return @ref M2M_SUCCESS for success and a negative value otherwise +@pre m2m_wifi_request_scan need to be called first, then m2m_wifi_get_num_ap_found + to get the number of AP's found +@warning Function used only in STA mode only. the scan result updated only if scan request called, + else it will be cashed in firmware for the host scan request result, + which mean if large delay occur between the scan request and the scan result request, + the result will not be up-to-date +*/ + +int8_t m2m_wifi_req_scan_result(uint8_t index) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mReqScanResult strReqScanRlt; + strReqScanRlt.u8Index = index; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SCAN_RESULT, (uint8_t*)&strReqScanRlt, sizeof(tstrM2mReqScanResult), NULL, 0, 0); + return ret; +} + +/*! +@fn uint8_t m2m_wifi_get_num_ap_found(void); +@brief Reads the number of AP's found in the last Scan Request, + The function read the number of AP's from global variable which updated in the + wifi_cb in M2M_WIFI_RESP_SCAN_DONE. +@sa m2m_wifi_request_scan +@return Return the number of AP's found in the last Scan Request. +@pre m2m_wifi_request_scan need to be called first +@warning That function need to be called in the wifi_cb in M2M_WIFI_RESP_SCAN_DONE, + calling that function in any other place will return undefined/undated numbers. + Function used only in STA mode only. +*/ +uint8_t m2m_wifi_get_num_ap_found(void) +{ + return gu8ChNum; +} + +/*! +@fn uint8_t m2m_wifi_get_sleep_mode(void); +@brief Get the current Power save mode. +@return The current operating power saving mode. +@sa tenuPowerSaveModes , m2m_wifi_set_sleep_mode +*/ +uint8_t m2m_wifi_get_sleep_mode(void) +{ + return hif_get_sleep_mode(); +} + +/*! +@fn int8_t m2m_wifi_set_sleep_mode(uint8_t PsTyp, uint8_t BcastEn); +@brief Set the power saving mode for the WINC3400. +@param [in] PsTyp + Desired power saving mode. Supported types are defined in tenuPowerSaveModes. +@param [in] BcastEn + Broadcast reception enable flag. + If it is 1, the WINC3400 must be awake each DTIM Beacon for receiving Broadcast traffic. + If it is 0, the WINC3400 will not wakeup at the DTIM Beacon, but its wakeup depends only + on the the configured Listen Interval. +@return The function SHALL return 0 for success and a negative value otherwise. +@sa tenuPowerSaveModes +@warning The function called once after initialization. +*/ +int8_t m2m_wifi_set_sleep_mode(uint8_t PsTyp, uint8_t BcastEn) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mPsType strPs; + strPs.u8PsType = PsTyp; + strPs.u8BcastEn = BcastEn; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SLEEP, (uint8_t*)&strPs, sizeof(tstrM2mPsType), NULL, 0, 0); + M2M_INFO("POWER SAVE %d\r\n", PsTyp); + hif_set_sleep_mode(PsTyp); + return ret; +} + +/*! +@fn int8_t m2m_wifi_request_sleep(void) +@brief Request from WINC3400 device to Sleep for specific time in the M2M_PS_MANUAL Power save mode (only). +@param [in] u32SlpReqTime + Request Sleep in ms +@return The function SHALL return M2M_SUCCESS for success and a negative value otherwise. +@sa tenuPowerSaveModes , m2m_wifi_set_sleep_mode +@warning This API is currently unsupported on the WINC3400 +*/ +int8_t m2m_wifi_request_sleep(uint32_t u32SlpReqTime) +{ + int8_t ret = M2M_SUCCESS; + uint8_t psType; + psType = hif_get_sleep_mode(); + if (psType == M2M_PS_MANUAL) + { + tstrM2mSlpReqTime strPs; + strPs.u32SleepTime = u32SlpReqTime; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_DOZE, (uint8_t*)&strPs, sizeof(tstrM2mSlpReqTime), NULL, 0, 0); + } + return ret; +} + +/*! +@fn int8_t m2m_wifi_set_device_name(uint8_t *pu8DeviceName, uint8_t u8DeviceNameLength); +@brief Set the WINC3400 device name which is used as P2P device name. +@param [in] pu8DeviceName + Buffer holding the device name. +@param [in] u8DeviceNameLength + Length of the device name. +@return The function SHALL return M2M_SUCCESS for success and a negative value otherwise. +@warning The Function called once after initialization. +*/ +int8_t m2m_wifi_set_device_name(uint8_t *pu8DeviceName, uint8_t u8DeviceNameLength) +{ + tstrM2MDeviceNameConfig strDeviceName; + if (u8DeviceNameLength >= M2M_DEVICE_NAME_MAX) + { + u8DeviceNameLength = M2M_DEVICE_NAME_MAX; + } + //pu8DeviceName[u8DeviceNameLength] = '\0'; + u8DeviceNameLength ++; + memcpy(strDeviceName.au8DeviceName, pu8DeviceName, u8DeviceNameLength); + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_DEVICE_NAME, + (uint8_t*)&strDeviceName, sizeof(tstrM2MDeviceNameConfig), NULL, 0, 0); +} + +/*! +@fn int8_t m2m_wifi_configure_sntp(uint8_t *pu8NTPServerName, uint8_t u8NTPServerNameLength, tenuSNTPUseDHCP useDHCP); +@brief Configures what NTP server the SNTP client should use. +@param [in] pu8NTPServerName + Buffer holding the NTP server name. If the first character is an asterisk (*) then it will be treated as a server pool, where the asterisk will + be replaced with an incrementing value from 0 to 3 each time a server fails (example: *.pool.ntp.org). +@param [in] u8NTPServerNameLength + Length of the NTP server name. Should not exceed the maximum NTP server name length of @ref M2M_NTP_MAX_SERVER_NAME_LENGTH +@param [in] useDHCP + Should the NTP server provided by the DHCP server be used. +@return The function SHALL return M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_wifi_configure_sntp(uint8_t *pu8NTPServerName, uint8_t u8NTPServerNameLength, tenuSNTPUseDHCP useDHCP) +{ + tstrM2MSNTPConfig strSNTPConfig; + if (u8NTPServerNameLength > M2M_NTP_MAX_SERVER_NAME_LENGTH) + return M2M_ERR_FAIL; + + memcpy((uint8_t*)strSNTPConfig.acNTPServer, pu8NTPServerName, u8NTPServerNameLength); + strSNTPConfig.acNTPServer[u8NTPServerNameLength] = '\0'; + + strSNTPConfig.enuUseDHCP = useDHCP; + + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_CONFIG_SNTP, + (uint8_t*)&strSNTPConfig, sizeof(tstrM2MSNTPConfig), NULL, 0, 0); +} + +/*! +@fn \ + uint32_t m2m_wifi_get_chipId(void) + +@brief + Get the WINC Chip ID. + +@return + The function SHALL return chipID >0 or 0 for failure. +*/ +uint32_t m2m_wifi_get_chipId(void) +{ + return nmi_get_chipid(); +} + +/*! +@fn int8_t m2m_wifi_get_firmware_version(tstrM2mRev* pstrRev) + +@brief + Synchronous API to obtain the firmware version currently running on the WINC IC + +@param [out] pstrRev + pointer holds address of structure "tstrM2mRev" that contains the firmware version parameters + +@return + The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_wifi_get_firmware_version(tstrM2mRev *pstrRev) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_chip_wake(); + if (ret == M2M_SUCCESS) + { + ret = nm_get_firmware_full_info(pstrRev); + hif_chip_sleep(); + } + return ret; +} + +/*! +@fn int8_t m2m_wifi_check_ota_rb(void); + +@brief + Synchronous API to check presence and compatibility of the WINC image that is stored in the inactive flash partition. + This is the image that would run on the WINC IC if @ref m2m_ota_switch_firmware or @ref m2m_ota_rollback were called, + followed by a reset of the WINC IC. + +@return + The function SHALL return @ref M2M_SUCCESS for compatible image and a negative value otherwise. +*/ +int8_t m2m_wifi_check_ota_rb(void) +{ + int8_t ret = M2M_SUCCESS; + uint16_t ota_hif_info = 0; + + ret = nm_get_hif_info(NULL, &ota_hif_info); + if (ret == M2M_SUCCESS) + { + ret = hif_check_compatibility(ota_hif_info); + } + return ret; +} + +/*! +@fn \ + int8_t m2m_ota_get_firmware_version(tstrM2mRev *pstrRev); + +@brief + Synchronous API to obtain the firmware version of the WINC image that is stored in the inactive flash partition. + This is the image that would run on the WINC IC if @ref m2m_ota_switch_firmware or @ref m2m_ota_rollback were called, + followed by a reset of the WINC IC. + +@param [out] pstrRev + pointer holds address of structure "tstrM2mRev" that contains the ota fw version parameters + +@return + The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_ota_get_firmware_version(tstrM2mRev *pstrRev) +{ + int8_t ret = M2M_SUCCESS; + ret = hif_chip_wake(); + if (ret == M2M_SUCCESS) + { + ret = nm_get_ota_firmware_info(pstrRev); + hif_chip_sleep(); + } + return ret; +} + +int8_t m2m_wifi_start_provision_mode(tstrM2MAPConfig *pstrM2MAPConfig, char *pcHttpServerDomainName, uint8_t bEnableHttpRedirect) +{ + tstrM2MAPModeConfig strM2MAPModeConfig; + + memcpy((uint8_t*)&strM2MAPModeConfig.strApConfig, (uint8_t*)pstrM2MAPConfig, sizeof(tstrM2MAPConfig)); + + memcpy(strM2MAPModeConfig.strApConfigExt.au8DefRouterIP, pstrM2MAPConfig->au8DHCPServerIP, 4); + memcpy(strM2MAPModeConfig.strApConfigExt.au8DNSServerIP, pstrM2MAPConfig->au8DHCPServerIP, 4); + strM2MAPModeConfig.strApConfigExt.au8SubnetMask[0] = 0; + + return m2m_wifi_start_provision_mode_ext(&strM2MAPModeConfig, pcHttpServerDomainName, bEnableHttpRedirect); +} + +int8_t m2m_wifi_start_provision_mode_ext(tstrM2MAPModeConfig *pstrAPModeConfig, char *pcHttpServerDomainName, uint8_t bEnableHttpRedirect) +{ + int8_t s8Ret = M2M_ERR_FAIL; + + if ((pstrAPModeConfig != NULL)) + { + tstrM2MProvisionModeConfig strProvConfig; + if (M2M_SUCCESS == m2m_validate_ap_parameters(pstrAPModeConfig)) + { + memcpy((uint8_t*)&strProvConfig.strApConfig, (uint8_t*)&pstrAPModeConfig->strApConfig, sizeof(tstrM2MAPConfig)); + memcpy((uint8_t*)&strProvConfig.strApConfigExt, (uint8_t*)&pstrAPModeConfig->strApConfigExt, sizeof(tstrM2MAPConfigExt)); + if ((strlen((const char*)pcHttpServerDomainName) <= 0) || (NULL == pcHttpServerDomainName)) + { + M2M_ERR("INVALID DOMAIN NAME\r\n"); + goto ERR1; + } + memcpy((uint8_t*)strProvConfig.acHttpServerDomainName, (uint8_t*)pcHttpServerDomainName, 64); + strProvConfig.u8EnableRedirect = bEnableHttpRedirect; + + s8Ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_START_PROVISION_MODE | M2M_REQ_DATA_PKT, + (uint8_t*)&strProvConfig, sizeof(tstrM2MProvisionModeConfig), NULL, 0, 0); + + if (s8Ret == M2M_ERR_SEND) + { + // Send again using legacy HIF message. We can use the same structure here as + // the firmware only uses to the HIF message to determine whether or not the + // structure contains a tstrM2MAPConfigExt structure. + s8Ret = hif_send( + M2M_REQ_GROUP_WIFI, + M2M_WIFI_REQ_START_PROVISION_MODE_LEGACY | M2M_REQ_DATA_PKT, + (uint8_t*)&strProvConfig, + sizeof(tstrM2MProvisionModeConfig), + NULL, + 0, + 0 + ); + } + } + else + { + /*goto ERR1;*/ + } + } +ERR1: + return s8Ret; +} + +int8_t m2m_wifi_stop_provision_mode(void) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_STOP_PROVISION_MODE, NULL, 0, NULL, 0, 0); +} + +int8_t m2m_wifi_get_connection_info(void) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_GET_CONN_INFO, NULL, 0, NULL, 0, 0); +} + +int8_t m2m_wifi_set_system_time(uint32_t u32UTCSeconds) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_SYS_TIME, (uint8_t*)&u32UTCSeconds, sizeof(tstrSystemTime), NULL, 0, 0); +} + +/*! + * @fn int8_t m2m_wifi_get_system_time(void); + * @see m2m_wifi_enable_sntp + tstrSystemTime + * @note get the system time from the sntp client + * using the API \ref m2m_wifi_get_system_time. + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t m2m_wifi_get_system_time(void) +{ + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_GET_SYS_TIME, NULL, 0, NULL, 0, 0); +} + +int8_t m2m_wifi_enable_sntp(uint8_t bEnable) +{ + uint8_t u8Req; + + u8Req = bEnable ? M2M_WIFI_REQ_ENABLE_SNTP_CLIENT : M2M_WIFI_REQ_DISABLE_SNTP_CLIENT; + return hif_send(M2M_REQ_GROUP_WIFI, u8Req, NULL, 0, NULL, 0, 0); +} + +/*! +@fn int8_t m2m_wifi_set_power_profile(uint8_t u8PwrMode); +@brief Change the power profile mode\n + Not implemented in WINC3400 firmware. +@param [in] u8PwrMode + Change the WINC power profile to different mode + PWR_LOW1/PWR_LOW2/PWR_HIGH/PWR_AUTO (tenuM2mPwrMode) +@return The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +@sa tenuM2mPwrMode +@pre m2m_wifi_init +@warning must be called after the initializations and before any connection request and can't be changed in run time, +*/ +int8_t m2m_wifi_set_power_profile(uint8_t u8PwrMode) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mPwrMode strM2mPwrMode; + strM2mPwrMode.u8PwrMode = u8PwrMode; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_POWER_PROFILE, (uint8_t*)&strM2mPwrMode, sizeof(tstrM2mPwrMode), NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_wifi_set_tx_power(uint8_t u8TxPwrLevel); +@brief set the TX power tenuM2mTxPwrLevel +@param [in] u8TxPwrLevel + change the TX power tenuM2mTxPwrLevel +@return The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +@sa tenuM2mTxPwrLevel +@pre m2m_wifi_init +@warning +*/ +int8_t m2m_wifi_set_tx_power(uint8_t u8TxPwrLevel) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mTxPwrLevel strM2mTxPwrLevel; + strM2mTxPwrLevel.u8TxPwrLevel = u8TxPwrLevel; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_TX_POWER, (uint8_t*)&strM2mTxPwrLevel, sizeof(tstrM2mTxPwrLevel), NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_wifi_enable_firmware_logs(uint8_t u8Enable); +@brief Enable or Disable logs in run time (Disable Firmware logs will + enhance the firmware start-up time and performance) +@param [in] u8Enable + Set 1 to enable the logs 0 for disable +@return The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +@sa __DISABLE_FIRMWARE_LOGS__ (build option to disable logs from initializations) +@pre m2m_wifi_init +@warning +*/ +int8_t m2m_wifi_enable_firmware_logs(uint8_t u8Enable) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mEnableLogs strM2mEnableLogs; + strM2mEnableLogs.u8Enable = u8Enable; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_ENABLE_LOGS, (uint8_t*)&strM2mEnableLogs, sizeof(tstrM2mEnableLogs), NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_wifi_set_battery_voltage(uint16_t u16BattVoltx100); +@brief Set the battery voltage to update the firmware calculations. \n + Not implemented in WINC3400 firmware. +@param [in] u16BattVoltx100 + battery voltage multiplied by 100 +@return The function SHALL return @ref M2M_SUCCESS for success and a negative value otherwise. +@sa __DISABLE_FIRMWARE_LOGS__ (build option to disable logs from initializations) +@pre m2m_wifi_init +@warning +*/ +int8_t m2m_wifi_set_battery_voltage(uint16_t u16BattVoltx100) +{ + int8_t ret = M2M_SUCCESS; + tstrM2mBatteryVoltage strM2mBattVol = {0}; + strM2mBattVol.u16BattVolt = u16BattVoltx100; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_BATTERY_VOLTAGE, (uint8_t*)&strM2mBattVol, sizeof(tstrM2mBatteryVoltage), NULL, 0, 0); + return ret; +} + +/*! +@fn int8_t m2m_wifi_prng_get_random_bytes(uint8_t * pu8PrngBuff,uint16_t u16PrngSize) +@brief Get random bytes using the PRNG bytes. +@param [in] u16PrngSize + Size of the required random bytes to be generated. +@param [in] pu8PrngBuff + Pointer to user allocated buffer. +@return The function SHALL return M2M_SUCCESS for success and a negative value otherwise. +*/ +int8_t m2m_wifi_prng_get_random_bytes(uint8_t *pu8PrngBuff, uint16_t u16PrngSize) +{ + int8_t ret = M2M_ERR_FAIL; + tstrPrng strRng = {0}; + if ((u16PrngSize < (M2M_BUFFER_MAX_SIZE - sizeof(tstrPrng)))&&(pu8PrngBuff != NULL)) + { + strRng.u16PrngSize = u16PrngSize; + strRng.pu8RngBuff = pu8PrngBuff; + ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_GET_PRNG|M2M_REQ_DATA_PKT, (uint8_t*)&strRng, sizeof(tstrPrng), NULL, 0, 0); + } + else + { + M2M_ERR("PRNG Buffer exceeded maximum size %d or NULL Buffer\r\n", u16PrngSize); + } + return ret; +} + +/*! +@fn \ + int8_t m2m_wifi_enable_mac_mcast(uint8_t* pu8MulticastMacAddress, uint8_t u8AddRemove) + +@brief + Add MAC filter to receive Multicast packets. + +@param [in] pu8MulticastMacAddress + Pointer to the MAC address. +@param [in] u8AddRemove + Flag to Add/Remove MAC address. +@return + The function SHALL return 0 for success and a negative value otherwise. +*/ +int8_t m2m_wifi_enable_mac_mcast(uint8_t *pu8MulticastMacAddress, uint8_t u8AddRemove) +{ + int8_t s8ret = M2M_ERR_FAIL; + tstrM2MMulticastMac strMulticastMac; + + if (pu8MulticastMacAddress != NULL) + { + strMulticastMac.u8AddRemove = u8AddRemove; + memcpy(strMulticastMac.au8macaddress, pu8MulticastMacAddress, M2M_MAC_ADDRES_LEN); + M2M_DBG("mac multicast: %x:%x:%x:%x:%x:%x\r\n", strMulticastMac.au8macaddress[0], strMulticastMac.au8macaddress[1], strMulticastMac.au8macaddress[2], strMulticastMac.au8macaddress[3], strMulticastMac.au8macaddress[4], strMulticastMac.au8macaddress[5]); + s8ret = hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_SET_MAC_MCAST, (uint8_t*)&strMulticastMac, sizeof(tstrM2MMulticastMac), NULL, 0, 0); + } + + return s8ret; +} + +/*! +@fn \ + int8_t m2m_wifi_set_receive_buffer(void* pvBuffer,uint16_t u16BufferLen); + +@brief + set the Ethernet receive buffer, should be called in the receive call back. + +@param [in] pvBuffer + Pointer to the Ethernet receive buffer. +@param [in] u16BufferLen + Length of the buffer. + +@return + The function SHALL return 0 for success and a negative value otherwise. +*/ +int8_t m2m_wifi_set_receive_buffer(void *pvBuffer, uint16_t u16BufferLen) +{ + int8_t s8ret = M2M_SUCCESS; + if (pvBuffer != NULL) + { + gau8ethRcvBuf = pvBuffer; + gu16ethRcvBufSize= u16BufferLen; + } + else + { + s8ret = M2M_ERR_FAIL; + M2M_ERR("Buffer NULL pointer\r\n"); + } + return s8ret; +} + +int8_t m2m_wifi_enable_roaming(uint8_t bEnableDhcp) +{ + tstrM2mWiFiRoaming strWiFiRoaming; + strWiFiRoaming.u8EnableRoaming = 1; + if (0 == bEnableDhcp || 1 == bEnableDhcp) + { + strWiFiRoaming.u8EnableDhcp = bEnableDhcp; + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_ROAMING, + (uint8_t*)&strWiFiRoaming, sizeof(tstrM2mWiFiRoaming), NULL, 0, 0); + } + else + { + return M2M_ERR_INVALID_ARG; + } +} + +int8_t m2m_wifi_disable_roaming(void) +{ + tstrM2mWiFiRoaming strWiFiRoaming; + strWiFiRoaming.u8EnableRoaming = 0; + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_ROAMING, (uint8_t*)&strWiFiRoaming, sizeof(tstrM2mWiFiRoaming), NULL, 0, 0); +} + +/*! +@fn \ + int8_t m2m_wifi_ble_api_send(const uint8_t* const msg, const uint32_t len); + +@brief + Send an encapsulated Atmel BLE API message + +@param [in] msg + Pointer to the Atmel BLE API message raw bytes +@param [in] len + Length of the msg + +@return + The function SHALL return 0 for success and a negative value otherwise. +*/ +int8_t m2m_wifi_ble_api_send(uint8_t *msg, uint32_t len) +{ + tstrM2mBleApiMsg bleTx; + bleTx.u16Len = len; + return hif_send(M2M_REQ_GROUP_WIFI, M2M_WIFI_REQ_BLE_API_SEND | M2M_REQ_DATA_PKT, + (uint8_t*)&bleTx, sizeof(tstrM2mBleApiMsg), msg, len, sizeof(tstrM2mBleApiMsg)); +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/nmasic.c b/ChaletLora.X/Source/winc3400_142/driver/source/nmasic.c new file mode 100644 index 0000000..5ea608b --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/nmasic.c @@ -0,0 +1,706 @@ +/******************************************************************************* + File Name: + nmasic.c + + Summary: + This module contains WINC3400 ASIC specific internal APIs. + + Description: + This module contains WINC3400 ASIC specific internal APIs. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "nm_common.h" +#include "nmbus.h" +#include "nm_bsp.h" +#include "nmasic.h" +#include "m2m_types.h" + +#define NMI_GLB_RESET_0 (NMI_PERIPH_REG_BASE + 0x400) +#define NMI_INTR_REG_BASE (NMI_PERIPH_REG_BASE + 0xa00) +#define NMI_PIN_MUX_0 (NMI_PERIPH_REG_BASE + 0x408) +#define NMI_INTR_ENABLE (NMI_INTR_REG_BASE) +#define GET_UINT32(X,Y) (X[0+Y] + ((uint32_t)X[1+Y]<<8) + ((uint32_t)X[2+Y]<<16) +((uint32_t)X[3+Y]<<24)) + +#define CORT_HOST_COMM (0x14) +#define HOST_CORT_COMM (0x0e) +#define WAKE_CLK_REG (0x1) +#define CLOCKS_EN_REG (0x13) + +#define TIMEOUT (2000) +#define WAKEUP_TRIALS (4) + +int8_t chip_apply_conf(uint32_t u32Conf) +{ + int8_t ret = M2M_SUCCESS; + uint32_t val32 = u32Conf; + +#ifdef __ENABLE_PMU__ + val32 |= rHAVE_USE_PMU_BIT; +#endif +#ifdef __ENABLE_SLEEP_CLK_SRC_RTC__ + val32 |= rHAVE_SLEEP_CLK_SRC_RTC_BIT; +#elif defined __ENABLE_SLEEP_CLK_SRC_XO__ + val32 |= rHAVE_SLEEP_CLK_SRC_XO_BIT; +#endif +#ifdef __ENABLE_EXT_PA_INV_TX_RX__ + val32 |= rHAVE_EXT_PA_INV_TX_RX; +#endif +#ifdef __ENABLE_LEGACY_RF_SETTINGS__ + val32 |= rHAVE_LEGACY_RF_SETTINGS; +#endif +#ifdef __DISABLE_FIRMWARE_LOGS__ + val32 |= rHAVE_LOGS_DISABLED_BIT; +#endif + do { + nm_write_reg(rNMI_GP_REG_1, val32); + if(val32 != 0) { + uint32_t reg = 0; + ret = nm_read_reg_with_ret(rNMI_GP_REG_1, ®); + if(ret == M2M_SUCCESS) { + if(reg == val32) + break; + } + } else { + break; + } + } while(1); + + return M2M_SUCCESS; +} + +void chip_idle(void) +{ + uint32_t reg =0; + nm_read_reg_with_ret(WAKE_CLK_REG, ®); + if(reg&NBIT1) + { + reg &=~NBIT1; + nm_write_reg(WAKE_CLK_REG, reg); + } +} + +void enable_rf_blocks(void) +{ + nm_write_reg(0x6, 0xdb); + nm_write_reg(0x7, 0x6); + nm_sleep(10); + nm_write_reg(0x1480, 0); + nm_write_reg(0x1484, 0); + nm_sleep(10); + + nm_write_reg(0x6, 0x0); + nm_write_reg(0x7, 0x0); +} + +int8_t enable_interrupts(void) +{ + uint32_t reg = 0; + int8_t ret = M2M_SUCCESS; + /** + interrupt pin mux select + **/ + ret = nm_read_reg_with_ret(NMI_PIN_MUX_0, ®); + if (M2M_SUCCESS != ret) { + return M2M_ERR_BUS_FAIL; + } + reg |= ((uint32_t) 1 << 8); + ret = nm_write_reg(NMI_PIN_MUX_0, reg); + if (M2M_SUCCESS != ret) { + return M2M_ERR_BUS_FAIL; + } + /** + interrupt enable + **/ + ret = nm_read_reg_with_ret(NMI_INTR_ENABLE, ®); + if (M2M_SUCCESS != ret) { + return M2M_ERR_BUS_FAIL; + } + reg |= ((uint32_t) 1 << 16); + ret = nm_write_reg(NMI_INTR_ENABLE, reg); + if (M2M_SUCCESS != ret) { + return M2M_ERR_BUS_FAIL; + } + return M2M_SUCCESS; +} + +int8_t cpu_start(void) { + uint32_t reg = 0; + int8_t ret; + + /** + reset regs + */ + ret = nm_write_reg(BOOTROM_REG, 0); + ret += nm_write_reg(NMI_STATE_REG, 0); + ret += nm_write_reg(NMI_REV_REG, 0); + + /** + Go... + **/ + ret += nm_read_reg_with_ret(0x1118, ®); + if (M2M_SUCCESS != ret) { + ret = M2M_ERR_BUS_FAIL; + M2M_ERR("[nmi start]: fail read reg 0x1118 ...\r\n"); + } + reg |= NBIT0; + ret += nm_write_reg(0x1118, reg); + ret = nm_write_reg(0x150014, 0x1); //DTODO WHY IS THIS HERE?? + ret += nm_read_reg_with_ret(NMI_GLB_RESET_0, ®); + if ((reg & (1ul << 10)) == (1ul << 10)) { + reg &= ~(1ul << 10); + ret += nm_write_reg(NMI_GLB_RESET_0, reg); + } + + reg |= (1ul << 10); + ret += nm_write_reg(NMI_GLB_RESET_0, reg); + nm_sleep(1); /* Removing this can cause a bus error. */ + return ret; +} + +uint32_t nmi_get_chipid(void) +{ + static uint32_t chipid = 0; + + if (chipid == 0) { + uint32_t rfrevid; + + if ((nm_read_reg_with_ret(0x1000, &chipid)) != M2M_SUCCESS) { + chipid = 0; + return 0; + } + if ((nm_read_reg_with_ret(0x13f4, &rfrevid)) != M2M_SUCCESS) { + chipid = 0; + return 0; + } + + if (chipid == 0x1002a0) { + if (rfrevid == 0x1) { /* 1002A0 */ + } else /* if (rfrevid == 0x2) */ { /* 1002A1 */ + chipid = 0x1002a1; + } + } else if (chipid == 0x1002b0) { + if (rfrevid == 3) { /* 1002B0 */ + } else if (rfrevid == 4) { /* 1002B1 */ + chipid = 0x1002b1; + } else /* if(rfrevid == 5) */ { /* 1002B2 */ + chipid = 0x1002b2; + } + } else if(chipid == 0x1000f0) { + /* For 3400, the WiFi chip ID register reads 0x1000f0. + * Therefore using BT chip ID register here which should read 0x3000D0 + */ +#define rBT_CHIP_ID_REG (0x3b0000) + if((nm_read_reg_with_ret(rBT_CHIP_ID_REG, &chipid)) != M2M_SUCCESS) { + chipid = 0; + return 0; + } + if(chipid == 0x3000d0) { + if(rfrevid == 6) { + chipid = 0x3000d1; + } + else if(rfrevid == 2) { + chipid = 0x3000d2; + } + } + } +//#define PROBE_FLASH +#ifdef PROBE_FLASH + if(chipid) { + UWORD32 flashid; + + flashid = probe_spi_flash(); + if((chipid & 0xf00000) == 0x300000) { + if(flashid == 0x1440ef) { + chipid &= ~(0x0f0000); + chipid |= 0x040000; + } + } else { + if(flashid == 0x1230ef) { + chipid &= ~(0x0f0000); + chipid |= 0x050000; + } + if(flashid == 0xc21320c2) { + chipid &= ~(0x0f0000); + chipid |= 0x050000; + } + } + } +#else + /*M2M is by default have SPI flash*/ + if((chipid & 0xf00000) == 0x300000) { + chipid &= ~(0x0f0000); + chipid |= 0x040000; + } else { + chipid &= ~(0x0f0000); + chipid |= 0x050000; + } +#endif /* PROBE_FLASH */ + } + return chipid; +} + +uint32_t nmi_get_rfrevid(void) +{ + uint32_t rfrevid; + if((nm_read_reg_with_ret(0x13f4, &rfrevid)) != M2M_SUCCESS) { + rfrevid = 0; + } + return rfrevid; +} + +void restore_pmu_settings_after_global_reset(void) +{ + /* + * Must restore PMU register value after + * global reset if PMU toggle is done at + * least once since the last hard reset. + */ + if(REV(nmi_get_chipid()) >= REV_2B0) { + nm_write_reg(0x1e48, 0xb78469ce); + } +} + +void nmi_update_pll(void) +{ + uint32_t pll; + + pll = nm_read_reg(0x1428); + pll &= ~0x1ul; + nm_write_reg(0x1428, pll); + pll |= 0x1ul; + nm_write_reg(0x1428, pll); + +} +void nmi_set_sys_clk_src_to_xo(void) +{ + uint32_t val32; + + /* Switch system clock source to XO. This will take effect after nmi_update_pll(). */ + val32 = nm_read_reg(0x141c); + val32 |= (1 << 2); + nm_write_reg(0x141c, val32); + + /* Do PLL update */ + nmi_update_pll(); +} + +int8_t chip_sleep(void) +{ + uint32_t reg; + int8_t ret = M2M_SUCCESS; + + while(1) + { + ret = nm_read_reg_with_ret(CORT_HOST_COMM, ®); + if(ret != M2M_SUCCESS) goto ERR1; + if((reg & NBIT0) == 0) break; + } + + /* Clear bit 1 */ + ret = nm_read_reg_with_ret(WAKE_CLK_REG, ®); + if(ret != M2M_SUCCESS)goto ERR1; + if(reg & NBIT1) + { + reg &=~NBIT1; + ret = nm_write_reg(WAKE_CLK_REG, reg); + if(ret != M2M_SUCCESS)goto ERR1; + } + + ret = nm_read_reg_with_ret(HOST_CORT_COMM, ®); + if(ret != M2M_SUCCESS)goto ERR1; + if(reg & NBIT0) + { + reg &= ~NBIT0; + ret = nm_write_reg(HOST_CORT_COMM, reg); + if(ret != M2M_SUCCESS)goto ERR1; + } + +ERR1: + return ret; +} + +int8_t chip_wake(void) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg = 0, clk_status_reg = 0, trials = 0; + + nm_read_reg_with_ret(CLOCKS_EN_REG, &clk_status_reg); + + ret = nm_read_reg_with_ret(HOST_CORT_COMM, ®); + if(ret != M2M_SUCCESS)goto _WAKE_EXIT; + + if(!(reg & NBIT0)) + { + /*USE bit 0 to indicate host wakeup*/ + ret = nm_write_reg(HOST_CORT_COMM, reg|NBIT0); + if(ret != M2M_SUCCESS)goto _WAKE_EXIT; + } + + ret = nm_read_reg_with_ret(WAKE_CLK_REG, ®); + if(ret != M2M_SUCCESS) goto _WAKE_EXIT; + + /* Set bit 1 */ + if(!(reg & NBIT1)) + { + ret = nm_write_reg(WAKE_CLK_REG, reg | NBIT1); + if(ret != M2M_SUCCESS) goto _WAKE_EXIT; + } + + do + { + ret = nm_read_reg_with_ret(CLOCKS_EN_REG, &clk_status_reg); + if(ret != M2M_SUCCESS) { + M2M_ERR("Bus error (5).%d %" PRIx32 "\n", ret, clk_status_reg); + goto _WAKE_EXIT; + } + if (clk_status_reg & NBIT2) { + break; + } + nm_sleep(2); + trials++; + if (trials > WAKEUP_TRIALS) + { + M2M_ERR("Failed to wakeup the chip\n"); + ret = M2M_ERR_TIME_OUT; + goto _WAKE_EXIT; + } + } while(1); + /* Workaround sometimes spi fail to read clock regs after reading/writing clockless registers */ + //nm_bus_reset(); +_WAKE_EXIT: + return ret; +} + +int8_t chip_reset_and_cpu_halt(void) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg = 0; + + ret = chip_wake(); + if (ret != M2M_SUCCESS) { + return ret; + } + chip_reset(); + ret = nm_read_reg_with_ret(0x1118, ®); + if (M2M_SUCCESS != ret) { + ret = M2M_ERR_BUS_FAIL; + M2M_ERR("[nmi start]: fail read reg 0x1118 ...\r\n"); + } + reg |= (1 << 0); + ret = nm_write_reg(0x1118, reg); + ret += nm_read_reg_with_ret(NMI_GLB_RESET_0, ®); + if ((reg & (1ul << 10)) == (1ul << 10)) { + reg &= ~(1ul << 10); + ret += nm_write_reg(NMI_GLB_RESET_0, reg); + ret += nm_read_reg_with_ret(NMI_GLB_RESET_0, ®); + } + nm_write_reg(BOOTROM_REG, 0); + nm_write_reg(NMI_STATE_REG, 0); + nm_write_reg(NMI_REV_REG, 0); + nm_write_reg(NMI_PIN_MUX_0, 0x11111000); + return ret; +} +int8_t chip_reset(void) +{ + int8_t ret = M2M_SUCCESS; + + ret += nm_write_reg(NMI_GLB_RESET_0, 0); + nm_sleep(50); + return ret; +} + +int8_t wait_for_bootrom(uint8_t arg) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg = 0, cnt = 0; + uint32_t u32GpReg1 = 0; + + reg = 0; + while(1) { + reg = nm_read_reg(0x1014); /* wait for efuse loading done */ + if (reg & 0x80000000) { + break; + } + nm_sleep(1); /* Removing this can cause a bus error. */ + } + reg = nm_read_reg(M2M_WAIT_FOR_HOST_REG); + reg &= 0x1; + + /* check if waiting for the host will be skipped or not */ + if(reg == 0) + { + while(reg != M2M_FINISH_BOOT_ROM) + { + nm_sleep(1); + reg = nm_read_reg(BOOTROM_REG); + + if (++cnt > TIMEOUT) + { + M2M_DBG("failed to load firmware from flash.\r\n"); + ret = M2M_ERR_INIT; + goto ERR2; + } + } + } + + if (M2M_WIFI_MODE_CONFIG == arg) { + nm_write_reg(NMI_REV_REG, M2M_ATE_FW_START_VALUE); + } else if (M2M_WIFI_MODE_ETHERNET == arg) { + u32GpReg1 = rHAVE_ETHERNET_MODE_BIT; + } else { + /*bypass this step*/ + } + + if (REV(nmi_get_chipid()) == REV_3A0) + { + chip_apply_conf(u32GpReg1 | rHAVE_USE_PMU_BIT); + } + else + { + chip_apply_conf(u32GpReg1); + } + + nm_write_reg(BOOTROM_REG, M2M_START_FIRMWARE); + +#ifdef __ROM_TEST__ + rom_test(); +#endif /* __ROM_TEST__ */ + +ERR2: + return ret; +} + +int8_t wait_for_firmware_start(uint8_t arg) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg = 0, cnt = 0; + volatile uint32_t regAddress = NMI_STATE_REG; + volatile uint32_t checkValue = M2M_FINISH_INIT_STATE; + + if(M2M_WIFI_MODE_CONFIG == arg) { + regAddress = NMI_REV_REG; + checkValue = M2M_ATE_FW_START_VALUE;//M2M_ATE_FW_IS_UP_VALUE; + } else { + /*bypass this step*/ + } + + while (checkValue != reg) + { + nm_sleep(2); /* Removing this can cause a bus error. */ + M2M_DBG("%x %x %x\r\n", (unsigned int)nm_read_reg(0x108c), (unsigned int)nm_read_reg(0x108c), (unsigned int)nm_read_reg(0x14A0)); + if (nm_read_reg_with_ret(regAddress, ®) != M2M_SUCCESS) + { + // ensure reg != checkValue + reg = !checkValue; + } + if (++cnt > TIMEOUT) + { + M2M_DBG("Time out for wait firmware Run\r\n"); + ret = M2M_ERR_INIT; + goto ERR; + } + } + if (M2M_FINISH_INIT_STATE == checkValue) + { + nm_write_reg(NMI_STATE_REG, 0); + } +ERR: + return ret; +} + +int8_t chip_deinit(void) +{ + uint32_t reg = 0; + int8_t ret; + uint8_t timeout = 10; + + /** + stop the firmware, need a re-download + **/ + ret = nm_read_reg_with_ret(NMI_GLB_RESET_0, ®); + if (ret != M2M_SUCCESS) { + M2M_ERR("failed to de-initialize\r\n"); + } + reg &= ~(1 << 10); + ret = nm_write_reg(NMI_GLB_RESET_0, reg); + + if (ret != M2M_SUCCESS) { + M2M_ERR("Error while writing reg\r\n"); + return ret; + } + + do { + ret = nm_read_reg_with_ret(NMI_GLB_RESET_0, ®); + if (ret != M2M_SUCCESS) { + M2M_ERR("Error while reading reg\r\n"); + return ret; + } + /*Workaround to ensure that the chip is actually reset*/ + if ((reg & (1 << 10))) { + M2M_DBG("Bit 10 not reset retry %d\r\n", timeout); + reg &= ~(1 << 10); + ret = nm_write_reg(NMI_GLB_RESET_0, reg); + timeout--; + } else { + break; + } + } while (timeout); + + return ret; +} + +int8_t set_gpio_dir(uint8_t gpio, uint8_t dir) +{ + uint32_t val32; + int8_t ret; + + ret = nm_read_reg_with_ret(0x20108, &val32); + if(ret != M2M_SUCCESS) goto _EXIT; + + if(dir) { + val32 |= (1ul << gpio); + } else { + val32 &= ~(1ul << gpio); + } + + ret = nm_write_reg(0x20108, val32); + +_EXIT: + return ret; +} +int8_t set_gpio_val(uint8_t gpio, uint8_t val) +{ + uint32_t val32; + int8_t ret; + + ret = nm_read_reg_with_ret(0x20100, &val32); + if(ret != M2M_SUCCESS) goto _EXIT; + + if(val) { + val32 |= (1ul << gpio); + } else { + val32 &= ~(1ul << gpio); + } + + ret = nm_write_reg(0x20100, val32); + +_EXIT: + return ret; +} + +int8_t get_gpio_val(uint8_t gpio, uint8_t* val) +{ + uint32_t val32; + int8_t ret; + + ret = nm_read_reg_with_ret(0x20104, &val32); + if(ret != M2M_SUCCESS) goto _EXIT; + + *val = (uint8_t)((val32 >> gpio) & 0x01); + +_EXIT: + return ret; +} + +int8_t pullup_ctrl(uint32_t pinmask, uint8_t enable) +{ + int8_t s8Ret; + uint32_t val32; + s8Ret = nm_read_reg_with_ret(0x142c, &val32); + if (s8Ret != M2M_SUCCESS) { + M2M_ERR("[pullup_ctrl]: failed to read\r\n"); + goto _EXIT; + } + if (enable) { + val32 &= ~pinmask; + } else { + val32 |= pinmask; + } + s8Ret = nm_write_reg(0x142c, val32); + if (s8Ret != M2M_SUCCESS) { + M2M_ERR("[pullup_ctrl]: failed to write\r\n"); + goto _EXIT; + } +_EXIT: + return s8Ret; +} + +int8_t nmi_get_otp_mac_address(uint8_t *pu8MacAddr, uint8_t *pu8IsValid) +{ + int8_t ret; + uint32_t u32RegValue; + uint8_t mac[6]; + tstrGpRegs strgp = {0}; + + ret = nm_read_reg_with_ret(rNMI_GP_REG_0, &u32RegValue); + if (ret != M2M_SUCCESS) goto _EXIT_ERR; + + ret = nm_read_block(u32RegValue|0x30000,(uint8_t*)&strgp,sizeof(tstrGpRegs)); + if (ret != M2M_SUCCESS) goto _EXIT_ERR; + u32RegValue = strgp.u32Mac_efuse_mib; + + if (!EFUSED_MAC(u32RegValue)) { + M2M_DBG("Default MAC\r\n"); + memset(pu8MacAddr, 0, 6); + goto _EXIT_ERR; + } + + M2M_DBG("OTP MAC\r\n"); + u32RegValue >>=16; + ret = nm_read_block(u32RegValue|0x30000, mac, 6); + memcpy(pu8MacAddr, mac, 6); + if (pu8IsValid) *pu8IsValid = 1; + return ret; + +_EXIT_ERR: + if (pu8IsValid) *pu8IsValid = 0; + return ret; +} + +int8_t nmi_get_mac_address(uint8_t *pu8MacAddr) +{ + int8_t ret; + uint32_t u32RegValue; + uint8_t mac[6]; + tstrGpRegs strgp = {0}; + + ret = nm_read_reg_with_ret(rNMI_GP_REG_0, &u32RegValue); + if (ret != M2M_SUCCESS) goto _EXIT_ERR; + + ret = nm_read_block(u32RegValue|0x30000, (uint8_t*)&strgp, sizeof(tstrGpRegs)); + if (ret != M2M_SUCCESS) goto _EXIT_ERR; + u32RegValue = strgp.u32Mac_efuse_mib; + + u32RegValue &=0x0000ffff; + ret = nm_read_block(u32RegValue|0x30000, mac, 6); + memcpy(pu8MacAddr, mac, 6); + +_EXIT_ERR: + return ret; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/nmbus.c b/ChaletLora.X/Source/winc3400_142/driver/source/nmbus.c new file mode 100644 index 0000000..60bcada --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/nmbus.c @@ -0,0 +1,248 @@ +/******************************************************************************* + This module contains WINC3400 bus APIs implementation. + + File Name: + nmbus.c + + Summary: + This module contains WINC3400 bus APIs implementation. + + Description: + This module contains WINC3400 bus APIs implementation. +*******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +#include "nmbus.h" +#include "nmspi.h" + +#define MAX_TRX_CFG_SZ 8 +#define NM_BUS_MAX_TRX_SZ 256 + +/** +* @struct tstrNmBusCapabilities +* @brief Structure holding bus capabilities information +* @sa NM_BUS_TYPE_I2C, NM_BUS_TYPE_SPI +*/ +typedef struct +{ + uint16_t u16MaxTrxSz; /*!< Maximum transfer size. Must be >= 16 bytes*/ +} tstrNmBusCapabilities; + +tstrNmBusCapabilities egstrNmBusCapabilities = +{ + NM_BUS_MAX_TRX_SZ +}; + +/* +* @fn nm_bus_init +* @brief Initialize the bus wrapper +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +static int8_t nm_bus_init(void *pvinit) +{ + nm_reset(); + nm_sleep(1); + return M2M_SUCCESS; +} + +/* +* @fn nm_bus_deinit +* @brief De-initialize the bus wrapper +*/ +static int8_t nm_bus_deinit(void) +{ + return M2M_SUCCESS; +} + +/** + * @fn nm_bus_iface_init + * @brief Initialize bus interface + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_init(void *pvInitVal) +{ + int8_t ret = M2M_SUCCESS; + ret = nm_bus_init(pvInitVal); + + return ret; +} + +/** + * @fn nm_bus_iface_deinit + * @brief Deinitialize bus interface + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_deinit(void) +{ + int8_t ret = M2M_SUCCESS; + ret = nm_bus_deinit(); + + return ret; +} + +/** + * @fn nm_bus_reset + * @brief reset bus interface + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + * @version 1.0 + */ +int8_t nm_bus_reset(void) +{ + return nm_spi_reset(); +} + +/** + * @fn nm_bus_iface_reconfigure + * @brief reconfigure bus interface + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_bus_iface_reconfigure(void *ptr) +{ + int8_t ret = M2M_SUCCESS; + return ret; +} +/* + * @fn nm_read_reg + * @brief Read register + * @param[in] u32Addr + * Register address + * @return Register value + */ +uint32_t nm_read_reg(uint32_t u32Addr) +{ + return nm_spi_read_reg(u32Addr); +} + +/* + * @fn nm_read_reg_with_ret + * @brief Read register with error code return + * @param[in] u32Addr + * Register address + * @param[out] pu32RetVal + * Pointer to u32 variable used to return the read value + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_read_reg_with_ret(uint32_t u32Addr, uint32_t* pu32RetVal) +{ + return nm_spi_read_reg_with_ret(u32Addr, pu32RetVal); +} + +/* + * @fn nm_write_reg + * @brief write register + * @param[in] u32Addr + * Register address + * @param[in] u32Val + * Value to be written to the register + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_write_reg(uint32_t u32Addr, uint32_t u32Val) +{ + return nm_spi_write_reg(u32Addr, u32Val); +} + +static inline int8_t p_nm_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + return nm_spi_read_block(u32Addr, puBuf, u16Sz); +} +/* + * @fn nm_read_block + * @brief Read block of data + * @param[in] u32Addr + * Start address + * @param[out] puBuf + * Pointer to a buffer used to return the read data + * @param[in] u32Sz + * Number of bytes to read. The buffer size must be >= u32Sz + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_read_block(uint32_t u32Addr, uint8_t *puBuf, uint32_t u32Sz) +{ + uint16_t u16MaxTrxSz = egstrNmBusCapabilities.u16MaxTrxSz - MAX_TRX_CFG_SZ; + uint32_t off = 0; + int8_t s8Ret = M2M_SUCCESS; + + for(;;) + { + if(u32Sz <= u16MaxTrxSz) + { + s8Ret += p_nm_read_block(u32Addr, &puBuf[off], (uint16_t)u32Sz); + break; + } + else + { + s8Ret += p_nm_read_block(u32Addr, &puBuf[off], u16MaxTrxSz); + if(M2M_SUCCESS != s8Ret) break; + u32Sz -= u16MaxTrxSz; + off += u16MaxTrxSz; + u32Addr += u16MaxTrxSz; + } + } + + return s8Ret; +} + +static inline int8_t p_nm_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + return nm_spi_write_block(u32Addr, puBuf, u16Sz); +} +/** + * @fn nm_write_block + * @brief Write block of data + * @param[in] u32Addr + * Start address + * @param[in] puBuf + * Pointer to the buffer holding the data to be written + * @param[in] u32Sz + * Number of bytes to write. The buffer size must be >= u32Sz + * @return @ref M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ +int8_t nm_write_block(uint32_t u32Addr, uint8_t *puBuf, uint32_t u32Sz) +{ + uint16_t u16MaxTrxSz = egstrNmBusCapabilities.u16MaxTrxSz - MAX_TRX_CFG_SZ; + uint32_t off = 0; + int8_t s8Ret = M2M_SUCCESS; + + for(;;) + { + if(u32Sz <= u16MaxTrxSz) + { + s8Ret += p_nm_write_block(u32Addr, &puBuf[off], (uint16_t)u32Sz); + break; + } + else + { + s8Ret += p_nm_write_block(u32Addr, &puBuf[off], u16MaxTrxSz); + if(M2M_SUCCESS != s8Ret) break; + u32Sz -= u16MaxTrxSz; + off += u16MaxTrxSz; + u32Addr += u16MaxTrxSz; + } + } + + return s8Ret; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/nmdrv.c b/ChaletLora.X/Source/winc3400_142/driver/source/nmdrv.c new file mode 100644 index 0000000..421638a --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/nmdrv.c @@ -0,0 +1,410 @@ +/******************************************************************************* + File Name: + nmdrv.c + + Summary: + This module contains WINC3400 M2M driver APIs implementation. + + Description: + This module contains WINC3400 M2M driver APIs implementation. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "nm_common.h" +#include "nmbus.h" +#include "nm_bsp.h" +#include "nmdrv.h" +#include "nmasic.h" +#include "m2m_types.h" + +#include "nmspi.h" + +static tenuNmState genuNmState = NM_STATE_DEINIT; +/** + * @fn nm_get_hif_info(uint16_t *pu16FwHifInfo, uint16_t *pu16OtaHifInfo); + * @brief Get Hif info of images in both partitions (Firmware and Ota). + * @param[out] pu16FwHifInfo + * Pointer holding Hif info of image in the active partition. + * @param[out] pu16OtaHifInfo + * Pointer holding Hif info of image in the inactive partition. + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_get_hif_info(uint16_t *pu16FwHifInfo, uint16_t *pu16OtaHifInfo) +{ + int8_t ret = M2M_SUCCESS; + uint32_t reg = 0; + + ret = nm_read_reg_with_ret(NMI_REV_REG, ®); + if(ret == M2M_SUCCESS) + { + if(pu16FwHifInfo != NULL) + { + *pu16FwHifInfo = (uint16_t)reg; + } + if(pu16OtaHifInfo) + { + *pu16OtaHifInfo = (uint16_t)(reg>>16); + } + } + return ret; +} + +/** + * @fn nm_get_firmware_full_info(tstrM2mRev* M2mRev) + * @brief Get Firmware version info + * @param[out] M2mRev + * Pointer holds address of structure @ref tstrM2mRev that contains the firmware version parameters + */ +int8_t nm_get_firmware_full_info(tstrM2mRev *pstrRev) +{ + uint16_t fw_hif_info = 0; + uint32_t reg = 0; + int8_t ret = M2M_SUCCESS; + tstrGpRegs strgp = {0}; + + memset((uint8_t*)pstrRev, 0, sizeof(tstrM2mRev)); + nm_get_hif_info(&fw_hif_info, NULL); + + M2M_INFO("Fw HIF: %04x\r\n", fw_hif_info); + if(M2M_GET_HIF_BLOCK(fw_hif_info) == M2M_HIF_BLOCK_VALUE) + { + ret = nm_read_reg_with_ret(rNMI_GP_REG_0, ®); + if(ret == M2M_SUCCESS) + { + if(reg != 0) + { + ret = nm_read_block(reg|0x30000, (uint8_t*)&strgp, sizeof(tstrGpRegs)); + if(ret == M2M_SUCCESS) + { + reg = strgp.u32Firmware_Ota_rev; + reg &= 0x0000ffff; + if(reg != 0) + { + ret = nm_read_block(reg|0x30000, (uint8_t*)pstrRev, sizeof(tstrM2mRev)); + if(ret == M2M_SUCCESS) + { + M2M_INFO("Firmware HIF (%u) : %u.%u\r\n", M2M_GET_HIF_BLOCK(pstrRev->u16FirmwareHifInfo), M2M_GET_HIF_MAJOR(pstrRev->u16FirmwareHifInfo), M2M_GET_HIF_MINOR(pstrRev->u16FirmwareHifInfo)); + M2M_INFO("Firmware ver : %u.%u.%u\r\n", pstrRev->u8FirmwareMajor, pstrRev->u8FirmwareMinor, pstrRev->u8FirmwarePatch); + M2M_INFO("Firmware Build %s Time %s\r\n", pstrRev->BuildDate, pstrRev->BuildTime); + + /* Check Hif info is consistent */ + if(fw_hif_info != pstrRev->u16FirmwareHifInfo) + { + ret = M2M_ERR_FAIL; + M2M_ERR("Inconsistent Firmware Version\r\n"); + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + if(ret != M2M_SUCCESS) + { + M2M_ERR("Unknown Firmware Version\r\n"); + } + return ret; +} +/** + * @fn nm_get_ota_firmware_info(tstrM2mRev* pstrRev) + * @brief Get Firmware version info + * @param[out] M2mRev + * Pointer holds address of structure @ref tstrM2mRev that contains the firmware version parameters + */ +int8_t nm_get_ota_firmware_info(tstrM2mRev *pstrRev) +{ + uint16_t ota_hif_info = 0; + uint32_t reg = 0; + int8_t ret = M2M_SUCCESS; + tstrGpRegs strgp = {0}; + + memset((uint8_t*)pstrRev, 0, sizeof(tstrM2mRev)); + nm_get_hif_info(NULL, &ota_hif_info); + + M2M_INFO("OTA HIF: %04x\r\n", ota_hif_info); + if(M2M_GET_HIF_BLOCK(ota_hif_info) == M2M_HIF_BLOCK_VALUE) + { + ret = nm_read_reg_with_ret(rNMI_GP_REG_0, ®); + if(ret == M2M_SUCCESS) + { + if(reg != 0) + { + ret = nm_read_block(reg|0x30000, (uint8_t*)&strgp, sizeof(tstrGpRegs)); + if(ret == M2M_SUCCESS) + { + reg = strgp.u32Firmware_Ota_rev; + reg >>= 16; + if(reg != 0) + { + ret = nm_read_block(reg|0x30000, (uint8_t*)pstrRev, sizeof(tstrM2mRev)); + if(ret == M2M_SUCCESS) + { + M2M_INFO("OTA HIF (%u) : %u.%u\r\n", M2M_GET_HIF_BLOCK(pstrRev->u16FirmwareHifInfo), M2M_GET_HIF_MAJOR(pstrRev->u16FirmwareHifInfo), M2M_GET_HIF_MINOR(pstrRev->u16FirmwareHifInfo)); + M2M_INFO("OTA ver : %u.%u.%u\r\n", pstrRev->u8FirmwareMajor, pstrRev->u8FirmwareMinor, pstrRev->u8FirmwarePatch); + M2M_INFO("OTA Build %s Time %s\r\n", pstrRev->BuildDate, pstrRev->BuildTime); + + /* Check Hif info is consistent */ + if(ota_hif_info != pstrRev->u16FirmwareHifInfo) + { + ret = M2M_ERR_FAIL; + M2M_ERR("Inconsistent OTA Version\r\n"); + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + } + } + else + { + ret = M2M_ERR_FAIL; + } + if(ret != M2M_SUCCESS) + { + M2M_INFO("No valid OTA image\r\n"); + } + return ret; +} + +/** + * @fn nm_drv_init_download_mode + * @brief Initialize NMC1000 driver in download mode + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init_download_mode(void) +{ + int8_t ret = M2M_SUCCESS; + + ret = nm_bus_iface_init(NULL); + if (M2M_SUCCESS != ret) { + M2M_ERR("[nmi start]: fail init bus\r\n"); + goto ERR1; + } + + nm_spi_lock_init(); + + /* Must do this after global reset to set SPI data packet size. */ + nm_spi_init(); + + M2M_INFO("Chip ID %lx\r\n", nmi_get_chipid()); + + /*disable all interrupt in ROM (to disable uart) in 2b0 chip*/ + nm_write_reg(0x20300, 0); + + genuNmState = NM_STATE_INIT; +ERR1: + return ret; +} + +int8_t nm_drv_init_hold(void) +{ + int8_t ret = M2M_SUCCESS; + + nm_spi_lock_init(); + + ret = nm_bus_iface_init(NULL); + if (M2M_SUCCESS != ret) { + M2M_ERR("[nmi start]: fail init bus\r\n"); + goto ERR1; + } + +#ifdef BUS_ONLY + return; +#endif + +#ifdef NO_HW_CHIP_EN + ret = chip_wake(); + nm_sleep(10); + if (M2M_SUCCESS != ret) { + M2M_ERR("[nmi start]: fail chip_wakeup\r\n"); + goto ERR2; + } + + /** + Go... + **/ + ret = chip_reset(); + if (M2M_SUCCESS != ret) { + goto ERR2; + } +#endif + M2M_INFO("Chip ID %lx\r\n", nmi_get_chipid()); + /* Must do this after global reset to set SPI data packet size. */ + nm_spi_init(); + /*return power save to default value*/ + chip_idle(); + + genuNmState = NM_STATE_INIT; + + return ret; +#ifdef NO_HW_CHIP_EN +ERR2: + nm_bus_iface_deinit(); +#endif +ERR1: + return ret; +} + +int8_t nm_drv_init_start(void * arg) +{ + int8_t ret = M2M_SUCCESS; + uint8_t u8Mode = M2M_WIFI_MODE_NORMAL; + + if(NULL != arg) + { + u8Mode = *((uint8_t *)arg); + if(u8Mode < M2M_WIFI_MODE_NORMAL || u8Mode >= M2M_WIFI_MODE_MAX) + u8Mode = M2M_WIFI_MODE_NORMAL; + } + + ret = cpu_start(); + if (M2M_SUCCESS != ret) { + goto ERR2; + } + ret = wait_for_bootrom(u8Mode); + if (M2M_SUCCESS != ret) { + goto ERR2; + } + + ret = wait_for_firmware_start(u8Mode); + if (M2M_SUCCESS != ret) { + goto ERR2; + } + + if(M2M_WIFI_MODE_CONFIG == u8Mode) { + goto ERR1; + } else { + /*continue running*/ + } + + ret = enable_interrupts(); + if (M2M_SUCCESS != ret) { + M2M_ERR("failed to enable interrupts..\r\n"); + goto ERR2; + } + + genuNmState = NM_STATE_START; + + return ret; +ERR2: + nm_bus_iface_deinit(); + nm_spi_deinit(); +ERR1: + return ret; +} + +/** + * @fn nm_drv_init + * @brief Initialize NMC1000 driver + * @param[in] arg + * Generic argument passed on to nm_drv_init_start + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_drv_init(void* arg) +{ + int8_t ret = M2M_SUCCESS; + + ret = nm_drv_init_hold(); + + if(ret == M2M_SUCCESS) + ret = nm_drv_init_start(arg); + + return ret; +} + +/** + * @fn nm_drv_deinit + * @brief Deinitialize NMC1000 driver + */ +int8_t nm_drv_deinit(void* arg) +{ + int8_t ret; + + ret = chip_deinit(); + if (M2M_SUCCESS != ret) { + M2M_ERR("[nmi stop]: chip_deinit fail\r\n"); + goto ERR1; + } + + ret = nm_bus_iface_deinit(); + if (M2M_SUCCESS != ret) { + M2M_ERR("[nmi stop]: fail init bus\r\n"); + goto ERR1; + } + /* Must do this after global reset to set SPI data packet size. */ + nm_spi_deinit(); + +ERR1: + genuNmState = NM_STATE_DEINIT; + + return ret; +} + + +/** + * @fn nm_cpu_start(void) + * @brief Start CPU from the WINC module + * @return @ref M2M_SUCCESS in case of success and Negative error code in case of failure + */ +int8_t nm_cpu_start(void) +{ + int8_t ret; + + ret = cpu_start(); + return ret; +} + +/** + * @fn nm_get_state(void) + * @brief Get the current state of the WINC module + * @return The current state of the WINC module + */ +tenuNmState nm_get_state(void) +{ + return genuNmState; +} + +//DOM-IGNORE-END \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c b/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c new file mode 100644 index 0000000..2a7de63 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c @@ -0,0 +1,960 @@ +/******************************************************************************* + This module contains WINC3400 SPI protocol bus APIs implementation. + + File Name: + nmspi.c + + Summary: + This module contains WINC3400 SPI protocol bus APIs implementation. + + Description: + This module contains WINC3400 SPI protocol bus APIs implementation. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +//#include "osal/osal.h" +#include "nm_common.h" + +#include "nmspi.h" +//#include "wdrv_winc_common.h" +//#include "wdrv_winc_spi.h" + +#define NMI_PERIPH_REG_BASE 0x1000 +#define NMI_INTR_REG_BASE (NMI_PERIPH_REG_BASE+0xa00) +#define NMI_CHIPID (NMI_PERIPH_REG_BASE) +#define NMI_PIN_MUX_0 (NMI_PERIPH_REG_BASE + 0x408) +#define NMI_INTR_ENABLE (NMI_INTR_REG_BASE) + +#define NMI_SPI_REG_BASE 0xe800 +#define NMI_SPI_CTL (NMI_SPI_REG_BASE) +#define NMI_SPI_MASTER_DMA_ADDR (NMI_SPI_REG_BASE+0x4) +#define NMI_SPI_MASTER_DMA_COUNT (NMI_SPI_REG_BASE+0x8) +#define NMI_SPI_SLAVE_DMA_ADDR (NMI_SPI_REG_BASE+0xc) +#define NMI_SPI_SLAVE_DMA_COUNT (NMI_SPI_REG_BASE+0x10) +#define NMI_SPI_TX_MODE (NMI_SPI_REG_BASE+0x20) +#define NMI_SPI_PROTOCOL_CONFIG (NMI_SPI_REG_BASE+0x24) +#define NMI_SPI_INTR_CTL (NMI_SPI_REG_BASE+0x2c) +#define NMI_SPI_MISC_CTRL (NMI_SPI_REG_BASE+0x48) + +#define NMI_SPI_PROTOCOL_OFFSET (NMI_SPI_PROTOCOL_CONFIG-NMI_SPI_REG_BASE) + +#define SPI_BASE NMI_SPI_REG_BASE + +//#define CMD_DMA_WRITE 0xc1 +//#define CMD_DMA_READ 0xc2 +#define CMD_INTERNAL_WRITE 0xc3 +#define CMD_INTERNAL_READ 0xc4 +//#define CMD_TERMINATE 0xc5 +//#define CMD_REPEAT 0xc6 +#define CMD_DMA_EXT_WRITE 0xc7 +#define CMD_DMA_EXT_READ 0xc8 +#define CMD_SINGLE_WRITE 0xc9 +#define CMD_SINGLE_READ 0xca +#define CMD_RESET 0xcf + +#define N_OK 0 +#define N_FAIL -1 +#define N_RESET -2 +#define N_RETRY -3 + +#define SPI_RESP_RETRY_COUNT (10) +#define SPI_RETRY_COUNT (10) +#define DATA_PKT_SZ_256 256 +#define DATA_PKT_SZ_512 512 +#define DATA_PKT_SZ_1K 1024 +#define DATA_PKT_SZ_4K (4 * 1024) +#define DATA_PKT_SZ_8K (8 * 1024) +#define DATA_PKT_SZ DATA_PKT_SZ_8K + +static uint8_t gu8Crc_off = 0; + +//static OSAL_MUTEX_HANDLE_TYPE s_spiLock = 0; + +static inline int8_t spi_read(uint8_t *b, uint16_t sz) +{ + //JFM WINC TODO + // if (true == WDRV_WINC_SPIReceive((unsigned char *const) b, sz)) + return N_OK; + + return N_FAIL; +} + +static inline int8_t spi_write(uint8_t *b, uint16_t sz) +{ + //JFM WINC TODO + // if (true == WDRV_WINC_SPISend((unsigned char *const) b, sz)) + return N_OK; + + return N_FAIL; +} + +/******************************************** + + Crc7 + +********************************************/ + +static const uint8_t crc7_syndrome_table[256] = { + 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, + 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77, + 0x19, 0x10, 0x0b, 0x02, 0x3d, 0x34, 0x2f, 0x26, + 0x51, 0x58, 0x43, 0x4a, 0x75, 0x7c, 0x67, 0x6e, + 0x32, 0x3b, 0x20, 0x29, 0x16, 0x1f, 0x04, 0x0d, + 0x7a, 0x73, 0x68, 0x61, 0x5e, 0x57, 0x4c, 0x45, + 0x2b, 0x22, 0x39, 0x30, 0x0f, 0x06, 0x1d, 0x14, + 0x63, 0x6a, 0x71, 0x78, 0x47, 0x4e, 0x55, 0x5c, + 0x64, 0x6d, 0x76, 0x7f, 0x40, 0x49, 0x52, 0x5b, + 0x2c, 0x25, 0x3e, 0x37, 0x08, 0x01, 0x1a, 0x13, + 0x7d, 0x74, 0x6f, 0x66, 0x59, 0x50, 0x4b, 0x42, + 0x35, 0x3c, 0x27, 0x2e, 0x11, 0x18, 0x03, 0x0a, + 0x56, 0x5f, 0x44, 0x4d, 0x72, 0x7b, 0x60, 0x69, + 0x1e, 0x17, 0x0c, 0x05, 0x3a, 0x33, 0x28, 0x21, + 0x4f, 0x46, 0x5d, 0x54, 0x6b, 0x62, 0x79, 0x70, + 0x07, 0x0e, 0x15, 0x1c, 0x23, 0x2a, 0x31, 0x38, + 0x41, 0x48, 0x53, 0x5a, 0x65, 0x6c, 0x77, 0x7e, + 0x09, 0x00, 0x1b, 0x12, 0x2d, 0x24, 0x3f, 0x36, + 0x58, 0x51, 0x4a, 0x43, 0x7c, 0x75, 0x6e, 0x67, + 0x10, 0x19, 0x02, 0x0b, 0x34, 0x3d, 0x26, 0x2f, + 0x73, 0x7a, 0x61, 0x68, 0x57, 0x5e, 0x45, 0x4c, + 0x3b, 0x32, 0x29, 0x20, 0x1f, 0x16, 0x0d, 0x04, + 0x6a, 0x63, 0x78, 0x71, 0x4e, 0x47, 0x5c, 0x55, + 0x22, 0x2b, 0x30, 0x39, 0x06, 0x0f, 0x14, 0x1d, + 0x25, 0x2c, 0x37, 0x3e, 0x01, 0x08, 0x13, 0x1a, + 0x6d, 0x64, 0x7f, 0x76, 0x49, 0x40, 0x5b, 0x52, + 0x3c, 0x35, 0x2e, 0x27, 0x18, 0x11, 0x0a, 0x03, + 0x74, 0x7d, 0x66, 0x6f, 0x50, 0x59, 0x42, 0x4b, + 0x17, 0x1e, 0x05, 0x0c, 0x33, 0x3a, 0x21, 0x28, + 0x5f, 0x56, 0x4d, 0x44, 0x7b, 0x72, 0x69, 0x60, + 0x0e, 0x07, 0x1c, 0x15, 0x2a, 0x23, 0x38, 0x31, + 0x46, 0x4f, 0x54, 0x5d, 0x62, 0x6b, 0x70, 0x79 +}; + +static uint8_t crc7_byte(uint8_t crc, uint8_t data) +{ + return crc7_syndrome_table[(crc << 1) ^ data]; +} + +static uint8_t crc7(uint8_t crc, const uint8_t *buffer, uint32_t len) +{ + while (len--) + crc = crc7_byte(crc, *buffer++); + return crc; +} + +/******************************************** + + Spi protocol Function + +********************************************/ + +static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, uint8_t clockless) +{ + uint8_t bc[9]; + uint8_t len = 5; + + bc[0] = cmd; + switch (cmd) + { + case CMD_SINGLE_READ: /* single word (4 bytes) read */ + bc[1] = (uint8_t)(adr >> 16); + bc[2] = (uint8_t)(adr >> 8); + bc[3] = (uint8_t)adr; + len = 5; + break; + + case CMD_INTERNAL_READ: /* internal register read */ + bc[1] = (uint8_t)(adr >> 8); + if(clockless) + bc[1] |= (1 << 7); + bc[2] = (uint8_t)adr; + bc[3] = 0x00; + len = 5; + break; +#ifdef CMD_TERMINATE + case CMD_TERMINATE: /* termination */ + bc[1] = 0x00; + bc[2] = 0x00; + bc[3] = 0x00; + len = 5; + break; +#endif +#ifdef CMD_REPEAT + case CMD_REPEAT: /* repeat */ + bc[1] = 0x00; + bc[2] = 0x00; + bc[3] = 0x00; + len = 5; + break; +#endif + case CMD_RESET: /* reset */ + bc[1] = 0xff; + bc[2] = 0xff; + bc[3] = 0xff; + len = 5; + break; +#if defined(CMD_DMA_WRITE) || defined(CMD_DMA_READ) + case CMD_DMA_WRITE: /* dma write */ + case CMD_DMA_READ: /* dma read */ + bc[1] = (uint8_t)(adr >> 16); + bc[2] = (uint8_t)(adr >> 8); + bc[3] = (uint8_t)adr; + bc[4] = (uint8_t)(sz >> 8); + bc[5] = (uint8_t)(sz); + len = 7; + break; +#endif + case CMD_DMA_EXT_WRITE: /* dma extended write */ + case CMD_DMA_EXT_READ: /* dma extended read */ + bc[1] = (uint8_t)(adr >> 16); + bc[2] = (uint8_t)(adr >> 8); + bc[3] = (uint8_t)adr; + bc[4] = (uint8_t)(sz >> 16); + bc[5] = (uint8_t)(sz >> 8); + bc[6] = (uint8_t)(sz); + len = 8; + break; + + case CMD_INTERNAL_WRITE: /* internal register write */ + bc[1] = (uint8_t)(adr >> 8); + if(clockless) bc[1] |= (1 << 7); + bc[2] = (uint8_t)(adr); + bc[3] = (uint8_t)(u32data >> 24); + bc[4] = (uint8_t)(u32data >> 16); + bc[5] = (uint8_t)(u32data >> 8); + bc[6] = (uint8_t)(u32data); + len = 8; + break; + + case CMD_SINGLE_WRITE: /* single word write */ + bc[1] = (uint8_t)(adr >> 16); + bc[2] = (uint8_t)(adr >> 8); + bc[3] = (uint8_t)(adr); + bc[4] = (uint8_t)(u32data >> 24); + bc[5] = (uint8_t)(u32data >> 16); + bc[6] = (uint8_t)(u32data >> 8); + bc[7] = (uint8_t)(u32data); + len = 9; + break; + + default: + return N_FAIL; + } + + if (!gu8Crc_off) + { + bc[len-1] = (crc7(0x7f, (const uint8_t *)&bc[0], len-1)) << 1; + } + else + { + len -= 1; + } + + if (N_OK != spi_write(bc, len)) + { + M2M_ERR("[spi_cmd]: Failed cmd write, bus error...\r\n"); + return N_FAIL; + } + + return N_OK; +} + +static int8_t spi_cmd_rsp(uint8_t cmd) +{ + uint8_t rsp; + int8_t s8RetryCnt; + + /** + Command/Control response + **/ + if ((cmd == CMD_RESET) +#ifdef CMD_TERMINATE + || (cmd == CMD_TERMINATE) +#endif +#ifdef CMD_REPEAT + || (cmd == CMD_REPEAT) +#endif + ) + { + if (N_OK != spi_read(&rsp, 1)) + return N_FAIL; + } + + /* wait for response */ + s8RetryCnt = SPI_RESP_RETRY_COUNT; + do + { + if (N_OK != spi_read(&rsp, 1)) + { + M2M_ERR("[spi_cmd_rsp]: Failed cmd response read, bus error...\r\n"); + return N_FAIL; + } + } + while((rsp != cmd) && (s8RetryCnt-- > 0)); + + if (s8RetryCnt < 0) + { + M2M_ERR("[spi_cmd_rsp]: Failed cmd response read\n"); + return N_FAIL; + } + /** + State response + **/ + /* wait for response */ + s8RetryCnt = SPI_RESP_RETRY_COUNT; + do + { + if (N_OK != spi_read(&rsp, 1)) + { + M2M_ERR("[spi_cmd_rsp]: Failed cmd response read, bus error...\r\n"); + return N_FAIL; + } + } + while((rsp != 0x00) && (s8RetryCnt-- > 0)); + + if (s8RetryCnt < 0) + { + M2M_ERR("[spi_cmd_rsp]: Failed cmd response read\n"); + return N_FAIL; + } + + return N_OK; +} + +static void spi_reset(void) +{ + nm_sleep(1); + spi_cmd(CMD_RESET, 0, 0, 0, 0); + spi_cmd_rsp(CMD_RESET); + nm_sleep(1); +} + +/******************************************** + + Spi Internal Read/Write Function + +********************************************/ + +static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) +{ + int16_t retry, ix, nbytes; + int8_t result = N_OK; + uint8_t crc[2]; + uint8_t rsp; + + /** + Data + **/ + ix = 0; + do { + if (sz <= DATA_PKT_SZ) + nbytes = sz; + else + nbytes = DATA_PKT_SZ; + + /** + Data Response header + **/ + retry = SPI_RESP_RETRY_COUNT; + do + { + if (N_OK != spi_read(&rsp, 1)) + { + M2M_ERR("[spi_data_read]: Failed data response read, bus error...\r\n"); + result = N_FAIL; + break; + } + if ((rsp & 0xf0) == 0xf0) + break; + } + while (retry--); + + if (result == N_FAIL) + break; + + if (retry <= 0) + { + M2M_ERR("[spi_data_read]: Failed data response read...(%02x)\r\n", rsp); + result = N_FAIL; + break; + } + + /** + Read bytes + **/ + if (N_OK != spi_read(&b[ix], nbytes)) + { + M2M_ERR("[spi_data_read]: Failed data block read, bus error...\r\n"); + result = N_FAIL; + break; + } + if(!clockless) + { + /** + Read Crc + **/ + if (!gu8Crc_off) + { + if (N_OK != spi_read(crc, 2)) + { + M2M_ERR("[spi_data_read]: Failed data block CRC read, bus error...\r\n"); + result = N_FAIL; + break; + } + } + } + ix += nbytes; + sz -= nbytes; + + } while (sz); + + return result; +} + +static int8_t spi_data_write(uint8_t *b, uint16_t sz) +{ + int16_t ix = 0; + uint16_t nbytes; + int8_t result = N_OK; + uint8_t cmd, order, crc[2] = {0}; + //uint8_t rsp; + + /** + Data + **/ + do + { + if (sz <= DATA_PKT_SZ) + nbytes = sz; + else + nbytes = DATA_PKT_SZ; + + /** + Write command + **/ + cmd = 0xf0; + if (ix == 0) + { + if (sz <= DATA_PKT_SZ) + order = 0x3; + else + order = 0x1; + } + else + { + if (sz <= DATA_PKT_SZ) + order = 0x3; + else + order = 0x2; + } + + cmd |= order; + if (N_OK != spi_write(&cmd, 1)) + { + M2M_ERR("[spi_data_write]: Failed data block cmd write, bus error...\r\n"); + result = N_FAIL; + break; + } + + /** + Write data + **/ + if (N_OK != spi_write(&b[ix], nbytes)) + { + M2M_ERR("[spi_data_write]: Failed data block write, bus error...\r\n"); + result = N_FAIL; + break; + } + + /** + Write Crc + **/ + if (!gu8Crc_off) + { + if (N_OK != spi_write(crc, 2)) + { + M2M_ERR("[spi_data_write]: Failed data block CRC write, bus error...\r\n"); + result = N_FAIL; + break; + } + } + + ix += nbytes; + sz -= nbytes; + } + while (sz); + + return result; +} + +/******************************************** + + Spi interfaces + +********************************************/ + +static int8_t spi_write_reg(uint32_t u32Addr, uint32_t u32Val) +{ + uint8_t cmd = CMD_SINGLE_WRITE; + uint8_t clockless = 0; + + if (u32Addr <= 0x30) + { + /** + NMC1000 clockless registers. + **/ + cmd = CMD_INTERNAL_WRITE; + clockless = 1; + } + + if (spi_cmd(cmd, u32Addr, u32Val, 4, clockless) != N_OK) + { + M2M_ERR("[spi_write_reg]: Failed cmd, write reg (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + if (spi_cmd_rsp(cmd) != N_OK) + { + M2M_ERR("[spi_write_reg]: Failed cmd response, write reg (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + return N_OK; +} + +static int8_t spi_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + uint8_t len; + uint8_t rsp[3]; + + /** + Command + **/ + if (spi_cmd(CMD_DMA_EXT_WRITE, u32Addr, 0, u16Sz, 0) != N_OK) + { + M2M_ERR("[spi_write_block]: Failed cmd, write block (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + if (spi_cmd_rsp(CMD_DMA_EXT_WRITE) != N_OK) + { + M2M_ERR("[spi_write_block]: Failed cmd response, write block (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + /** + Data + **/ + if (spi_data_write(puBuf, u16Sz) != N_OK) + { + M2M_ERR("[spi_write_block]: Failed block data write...\r\n"); + return N_FAIL; + } + /** + Data RESP + **/ + if (!gu8Crc_off) + len = 2; + else + len = 3; + + if (N_OK != spi_read(&rsp[0], len)) + { + M2M_ERR("[spi_write_block]: Failed bus error...\r\n"); + return N_FAIL; + } + + if((rsp[len-1] != 0) || (rsp[len-2] != 0xC3)) + { + M2M_ERR("[spi_write_block]: Failed data response read, %x %x %x\r\n", rsp[0], rsp[1], rsp[2]); + return N_FAIL; + } + + return N_OK; +} + +static int8_t spi_read_reg(uint32_t u32Addr, uint32_t* pu32RetVal) +{ + uint8_t cmd = CMD_SINGLE_READ; + uint8_t tmp[4]; + uint8_t clockless = 0; + + if (u32Addr <= 0xff) + { + /** + NMC1000 clockless registers. + **/ + cmd = CMD_INTERNAL_READ; + clockless = 1; + } + + if (spi_cmd(cmd, u32Addr, 0, 4, clockless) != N_OK) + { + M2M_ERR("[spi_read_reg]: Failed cmd, read reg (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + if (spi_cmd_rsp(cmd) != N_OK) + { + M2M_ERR("[spi_read_reg]: Failed cmd response, read reg (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + /* to avoid endianess issues */ + if (spi_data_read(&tmp[0], 4, clockless) != N_OK) + { + M2M_ERR("[spi_read_reg]: Failed data read...\r\n"); + return N_FAIL; + } + + *pu32RetVal = ((uint32_t)tmp[0]) | + ((uint32_t)tmp[1] << 8) | + ((uint32_t)tmp[2] << 16) | + ((uint32_t)tmp[3] << 24); + + return N_OK; +} + +static int8_t spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + /** + Command + **/ + if (spi_cmd(CMD_DMA_EXT_READ, u32Addr, 0, u16Sz, 0) != N_OK) + { + M2M_ERR("[spi_read_block]: Failed cmd, read block (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + if (spi_cmd_rsp(CMD_DMA_EXT_READ) != N_OK) + { + M2M_ERR("[spi_read_block]: Failed cmd response, read block (%08" PRIx32 ")...\r\n", u32Addr); + return N_FAIL; + } + + /** + Data + **/ + if (spi_data_read(puBuf, u16Sz, 0) != N_OK) + { + M2M_ERR("[spi_read_block]: Failed block data read...\r\n"); + return N_FAIL; + } + + return N_OK; +} + +static void spi_init_pkt_sz(void) +{ + uint32_t val32; + + /* Make sure SPI max. packet size fits the defined DATA_PKT_SZ. */ + val32 = nm_spi_read_reg(SPI_BASE+0x24); + val32 &= ~(0x7 << 4); + switch(DATA_PKT_SZ) + { + case 256: val32 |= (0 << 4); break; + case 512: val32 |= (1 << 4); break; + case 1024: val32 |= (2 << 4); break; + case 2048: val32 |= (3 << 4); break; + case 4096: val32 |= (4 << 4); break; + case 8192: val32 |= (5 << 4); break; + } + nm_spi_write_reg(SPI_BASE+0x24, val32); +} + +/******************************************** + + Bus interfaces + +********************************************/ + +int8_t nm_spi_reset(void) +{ +// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) +// return M2M_ERR_BUS_FAIL; + + spi_cmd(CMD_RESET, 0, 0, 0, 0); + spi_cmd_rsp(CMD_RESET); + + // OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_SUCCESS; +} + +void nm_spi_lock_init(void) +{ +// OSAL_MUTEX_Create(&s_spiLock); +} + +/* +* @fn nm_spi_init +* @brief Initialize the SPI +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_init(void) +{ + uint32_t chipid; + uint32_t reg = 0; + + /** + configure protocol + **/ + gu8Crc_off = 0; + + if (nm_spi_read_reg_with_ret(NMI_SPI_PROTOCOL_CONFIG, ®) != M2M_SUCCESS) + { + /* Read failed. Try with CRC off. This might happen when module + is removed but chip isn't reset*/ + gu8Crc_off = 1; + M2M_ERR("[nm_spi_init]: Failed internal read protocol with CRC on, retrying with CRC off...\r\n"); + + if (nm_spi_read_reg_with_ret(NMI_SPI_PROTOCOL_CONFIG, ®) != M2M_SUCCESS) + { + // Reaad failed with both CRC on and off, something went bad + M2M_ERR("[nm_spi_init]: Failed internal read protocol...\r\n"); + + return M2M_ERR_BUS_FAIL; + } + } + if(gu8Crc_off == 0) + { + reg &= ~0xc; /* disable CRC checking */ + reg &= ~0x70; + reg |= (0x5 << 4); + + if (nm_spi_write_reg(NMI_SPI_PROTOCOL_CONFIG, reg) != M2M_SUCCESS) + { + M2M_ERR("[nm_spi_init]: Failed internal write protocol reg...\r\n"); + + return M2M_ERR_BUS_FAIL; + } + + gu8Crc_off = 1; + } + + /** + make sure can read back chip id correctly + **/ + if (nm_spi_read_reg_with_ret(0x1000, &chipid) != M2M_SUCCESS) + { + M2M_ERR("[nm_spi_init]: Fail cmd read chip id...\r\n"); + return M2M_ERR_BUS_FAIL; + } + + M2M_DBG("[nm_spi_init]: chipid (%08x)\r\n", (unsigned int)chipid); + spi_init_pkt_sz(); + + return M2M_SUCCESS; +} + +/* +* @fn nm_spi_deinit +* @brief DeInitialize the SPI +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_deinit(void) +{ + gu8Crc_off = 0; +// OSAL_MUTEX_Delete(&s_spiLock); + return M2M_SUCCESS; +} + +/* +* @fn nm_spi_read_reg +* @brief Read register +* @param [in] u32Addr +* Register address +* @return Register value +*/ +uint32_t nm_spi_read_reg(uint32_t u32Addr) +{ + uint32_t u32Val; + + nm_spi_read_reg_with_ret(u32Addr, &u32Val); + + return u32Val; +} + +/* +* @fn nm_spi_read_reg_with_ret +* @brief Read register with error code return +* @param [in] u32Addr +* Register address +* @param [out] pu32RetVal +* Pointer to u32 variable used to return the read value +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_read_reg_with_ret(uint32_t u32Addr, uint32_t* pu32RetVal) +{ + uint8_t retry = SPI_RETRY_COUNT; + +// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) +// return M2M_ERR_BUS_FAIL; + + while(retry--) + { + if (spi_read_reg(u32Addr, pu32RetVal) == N_OK) + { +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_SUCCESS; + } + + M2M_ERR("Reset and retry %d %" PRIx32 "\r\n", retry, u32Addr); + spi_reset(); + } + +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_ERR_BUS_FAIL; +} + +/* +* @fn nm_spi_write_reg +* @brief write register +* @param [in] u32Addr +* Register address +* @param [in] u32Val +* Value to be written to the register +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_write_reg(uint32_t u32Addr, uint32_t u32Val) +{ + uint8_t retry = SPI_RETRY_COUNT; + +// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + + while(retry--) + { + if (spi_write_reg(u32Addr, u32Val) == N_OK) + { +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_SUCCESS; + } + + M2M_ERR("Reset and retry %d %" PRIx32 " %" PRIx32 "\r\n", retry, u32Addr, u32Val); + spi_reset(); + } + +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_ERR_BUS_FAIL; +} + +/* +* @fn nm_spi_read_block +* @brief Read block of data +* @param [in] u32Addr +* Start address +* @param [out] puBuf +* Pointer to a buffer used to return the read data +* @param [in] u16Sz +* Number of bytes to read. The buffer size must be >= u16Sz +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + uint8_t retry = SPI_RETRY_COUNT; + uint8_t tmpBuf[2] = {0,0}; + uint8_t *puTmpBuf; + +// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + + if (u16Sz == 1) + { + u16Sz = 2; + puTmpBuf = tmpBuf; + } + else + { + puTmpBuf = puBuf; + } + + while(retry--) + { + if (spi_read_block(u32Addr, puTmpBuf, u16Sz) == N_OK) + { +// OSAL_MUTEX_Unlock(&s_spiLock); + + if (puTmpBuf == tmpBuf) + *puBuf = *tmpBuf; + + return M2M_SUCCESS; + } + + M2M_ERR("Reset and retry %d %" PRIx32 " %d\r\n", retry, u32Addr, u16Sz); + spi_reset(); + } + +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_ERR_BUS_FAIL; +} + +/* +* @fn nm_spi_write_block +* @brief Write block of data +* @param [in] u32Addr +* Start address +* @param [in] puBuf +* Pointer to the buffer holding the data to be written +* @param [in] u16Sz +* Number of bytes to write. The buffer size must be >= u16Sz +* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure +*/ +int8_t nm_spi_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) +{ + uint8_t retry = SPI_RETRY_COUNT; + +// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) +// return M2M_ERR_BUS_FAIL; + + //Workaround hardware problem with single byte transfers over SPI bus + if (u16Sz == 1) + u16Sz = 2; + + while(retry--) + { + if (spi_write_block(u32Addr, puBuf, u16Sz) == N_OK) + { +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_SUCCESS; + } + + M2M_ERR("Reset and retry %d %" PRIx32 " %d\r\n", retry, u32Addr, u16Sz); + spi_reset(); + } + +// OSAL_MUTEX_Unlock(&s_spiLock); + + return M2M_ERR_BUS_FAIL; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/socket/include/m2m_socket_host_if.h b/ChaletLora.X/Source/winc3400_142/socket/include/m2m_socket_host_if.h new file mode 100644 index 0000000..8ca7251 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/include/m2m_socket_host_if.h @@ -0,0 +1,347 @@ +/******************************************************************************* + BSD compatible socket interface internal types. + + File Name: + m2m_socket_host_if.h + + Summary: + + Description: + +*******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#ifndef __M2M_SOCKET_HOST_IF_H__ +#define __M2M_SOCKET_HOST_IF_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "socket.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#define SSL_MAX_OPT_LEN HOSTNAME_MAX_SIZE + +#define ALPN_LIST_MIN_SIZE 4 +#define ALPN_LIST_MAX_SIZE 32 +/*!< + Maximum length of ALPN list that can be specified by the application. + The list is in the following format: + @verbatim + 0 1 2 3 ... (bytes) + +-------+-------+-------+ ... +-------+ ... +-------+ ... + | Length L (BE) | len1 | name1... | len2 | name2... | len3 | name3... + +-------+-------+-------+ ... +-------+ ... +-------+ ... + Length fields do not include themselves. + @endverbatim +*/ + +#define SOCKET_CMD_INVALID 0x00 +/*!< + Invalid Socket command value. +*/ + +#define PING_ERR_SUCCESS 0 +#define PING_ERR_DEST_UNREACH 1 +#define PING_ERR_TIMEOUT 2 + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + + +/*! +* @brief +*/ +typedef struct { + uint16_t u16Family; + uint16_t u16Port; + uint32_t u32IPAddr; +} tstrSockAddr; + + +//typedef int8_t SOCKET; +typedef tstrSockAddr tstrUIPSockAddr; + + + +/*! +@struct \ + tstrDnsReply + +@brief + DNS Reply, contains hostName and HostIP. +*/ +typedef struct { + char acHostName[HOSTNAME_MAX_SIZE]; + uint32_t u32HostIP; +} tstrDnsReply; + + +/*! +@brief +*/ +typedef struct { + tstrSockAddr strAddr; + SOCKET sock; + uint8_t u8Void; + uint16_t u16SessionID; +} tstrBindCmd; + + +/*! +@brief +*/ +typedef struct { + SOCKET sock; + int8_t s8Status; + uint16_t u16SessionID; +} tstrBindReply; + + +/*! +* @brief +*/ +typedef struct { + SOCKET sock; + uint8_t u8BackLog; + uint16_t u16SessionID; +} tstrListenCmd; + + +/*! +@struct \ + tstrSocketRecvMsg + +@brief Socket recv status. + + It is passed to the APPSocketEventHandler with SOCKET_MSG_RECV or SOCKET_MSG_RECVFROM message type + in a response to a user call to the recv or recvfrom. + If the received data from the remote peer is larger than the USER Buffer size (given at recv call), the data is + delivered to the user in a number of consecutive chunks according to the USER Buffer size. +*/ +typedef struct { + SOCKET sock; + int8_t s8Status; + uint16_t u16SessionID; +} tstrListenReply; + + +/*! +* @brief +*/ +typedef struct { + tstrSockAddr strAddr; + SOCKET sListenSock; + SOCKET sConnectedSock; + uint16_t u16Void; +} tstrAcceptReply; + + +/*! +* @brief +*/ +typedef struct { + tstrSockAddr strAddr; + SOCKET sock; + uint8_t u8SslFlags; + uint16_t u16SessionID; +} tstrConnectCmd; + + +/*! +@struct \ + tstrConnectReply + +@brief + Connect Reply, contains sock number and error value +*/ +typedef struct { + SOCKET sock; + int8_t s8Error; + /*!< + 0 for successful connection, in which case u16AppDataOffset is valid. + Negative for failed connection, in which case u8ErrorType and u8ErrorDetail may give more info. + */ + union { + uint16_t u16AppDataOffset; + /*!< + In further packet send requests the host interface should put the user application + data at this offset in the allocated shared data packet. + */ + struct { + uint8_t u8ErrSource; + /*!< + 0: No detail + 1: TLS Alert received from peer + 2: TLS Alert generated locally + */ + uint8_t u8ErrCode; + /*!< + For TLS Alerts, this is the Alert ID. + */ + }; + }; +} tstrConnectReply; + + +/*! +@struct \ + tstrConnectAlpnReply + +@brief + Connect Reply, contains sock number, error value and index of negotiated application protocol. +*/ +typedef struct{ + tstrConnectReply strConnReply; + uint8_t u8AppProtocolIdx; + /*!< + 1-based index of application-layer protocol negotiated during TLS handshake. + */ + uint8_t __PAD24__[3]; +}tstrConnectAlpnReply; + + +/*! +@brief +*/ +typedef struct{ + SOCKET sock; + uint8_t u8Void; + uint16_t u16DataSize; + tstrSockAddr strAddr; + uint16_t u16SessionID; + uint16_t u16Void; +} tstrSendCmd; + + +/*! +@struct \ + tstrSendReply + +@brief + Send Reply, contains socket number and number of sent bytes. +*/ +typedef struct { + SOCKET sock; + uint8_t u8Void; + int16_t s16SentBytes; + uint16_t u16SessionID; + uint16_t u16Void; +} tstrSendReply; + + +/*! +* @brief +*/ +typedef struct { + uint32_t u32Timeoutmsec; + SOCKET sock; + uint8_t u8Void; + uint16_t u16SessionID; + uint16_t u16BufLen; +} tstrRecvCmd; + + +/*! +@struct \ + tstrRecvReply +@brief +*/ +typedef struct { + tstrSockAddr strRemoteAddr; + int16_t s16RecvStatus; + uint16_t u16DataOffset; + SOCKET sock; + uint8_t u8Void; + uint16_t u16SessionID; +} tstrRecvReply; + + +/*! +* @brief +*/ +typedef struct { + uint32_t u32OptionValue; + SOCKET sock; + uint8_t u8Option; + uint16_t u16SessionID; +} tstrSetSocketOptCmd; + + +typedef struct { + SOCKET sslSock; + uint8_t __PAD24__[3]; +} tstrSSLSocketCreateCmd; + + +/*! +* @brief +*/ +typedef struct { + SOCKET sock; + uint8_t u8Option; + uint16_t u16SessionID; + uint32_t u32OptLen; + uint8_t au8OptVal[SSL_MAX_OPT_LEN]; +} tstrSSLSetSockOptCmd; + + +/*! +*/ +typedef struct { + uint32_t u32DestIPAddr; + uint32_t u32CmdPrivate; + uint16_t u16PingCount; + uint8_t u8TTL; + uint8_t __PAD8__; +} tstrPingCmd; + + +typedef struct { + uint32_t u32IPAddr; + uint32_t u32CmdPrivate; + uint32_t u32RTT; + uint16_t u16Success; + uint16_t u16Fail; + uint8_t u8ErrorCode; + uint8_t __PAD24__[3]; +} tstrPingReply; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __M2M_SOCKET_HOST_IF_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/socket/include/netinet_in.h b/ChaletLora.X/Source/winc3400_142/socket/include/netinet_in.h new file mode 100644 index 0000000..b4b4e2f --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/include/netinet_in.h @@ -0,0 +1,95 @@ +/******************************************************************************* + Company: + Microchip Technology Inc. + + File Name: + netinet_in.h + + Summary: + + Description: + *******************************************************************************/ + +// DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +// DOM-IGNORE-END + +#ifndef _NETINET_IN_H +#define _NETINET_IN_H + +#include +#include + +// DOM-IGNORE-BEGIN +#ifdef __cplusplus // Provide C++ Compatibility + extern "C" { +#endif +// DOM-IGNORE-END + +typedef uint32_t in_addr_t; + +struct in_addr { + /*!< + Network Byte Order representation of the IPv4 address. For example, + the address "192.168.0.10" is represented as 0x0A00A8C0. + */ + in_addr_t s_addr; +}; + +struct sockaddr_in{ + uint16_t sin_family; + /*!< + Specifies the address family(AF). + Members of AF_INET address family are IPv4 addresses. + Hence,the only supported value for this is AF_INET. + */ + uint16_t sin_port; + /*!< + Port number of the socket. + Network sockets are identified by a pair of IP addresses and port number. + Must be set in the Network Byte Order format , @ref _htons (e.g. _htons(80)). + Can NOT have zero value. + */ + struct in_addr sin_addr; + /*!< + IP Address of the socket. + The IP address is of type @ref in_addr structure. + Can be set to "0" to accept any IP address for server operation. + */ + uint8_t sin_zero[8]; + /*!< + Padding to make structure the same size as @ref sockaddr. + */ +}; + +const char *inet_ntop(int af, const void *src, char *dst, size_t size); +in_addr_t inet_addr(const char *cp); + +// DOM-IGNORE-BEGIN +#ifdef __cplusplus +} +#endif +// DOM-IGNORE-END + +#endif /* _NETINET_IN_H */ diff --git a/ChaletLora.X/Source/winc3400_142/socket/include/socket.h b/ChaletLora.X/Source/winc3400_142/socket/include/socket.h new file mode 100644 index 0000000..38d97bc --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/include/socket.h @@ -0,0 +1,2074 @@ +/******************************************************************************* + File Name: + socket.h + + Summary: + WINC3400 BSD Compatible Socket Interface + + Description: + WINC3400 BSD Compatible Socket Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ +//DOM-IGNORE-END + +#ifndef __SOCKET_H__ +#define __SOCKET_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup SOCKETAPI Socket + * BSD compatible socket interface between the host layer and the network + * protocol stacks in the firmware. + * These functions are used by the host application to send or receive + * packets and to do other socket operations. + */ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "m2m_types.h" +#include "netinet_in.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +/**@defgroup SOCKETDEF Defines + * @ingroup SOCKETAPI + * The following list of macros are used to define constants used throughout the socket layer, and SSL Socket options. + */ + +/**@defgroup IPDefines TCP/IP Defines + * @ingroup SOCKETDEF + * The following list of macros are used to define constants used throughout the socket layer. + * @{ + */ +/* + * HOSTNAME_MAX_SIZE is defined here and also in host_drv/socket/include/m2m_socket_host_if.h + * The two definitions must match. +*/ +#define HOSTNAME_MAX_SIZE 100 +/*!< + Maximum allowed size for a host domain name passed to the function @ref gethostbyname. + command value. Used with the @ref setsockopt function. +*/ + +#define SOCKET_BUFFER_MAX_LENGTH 1400 +/*!< + Maximum allowed size for a socket data buffer. Used with @ref send socket + function to ensure that the buffer sent is within the allowed range. +*/ + +#define AF_INET 2 +/*!< + The AF_INET is the address family used for IPv4. An IPv4 transport address is specified with the @ref sockaddr_in structure. + (It is the only supported type for the current implementation.) +*/ + +#define SOCK_STREAM 1 +/*!< + One of the IPv4 supported socket types for reliable connection-oriented stream connection. + Passed to the @ref socket function for the socket creation operation. +*/ + +#define SOCK_DGRAM 2 +/*!< + One of the IPv4 supported socket types for unreliable connectionless datagram connection. + Passed to the @ref socket function for the socket creation operation. +*/ + +#define SOCK_RAW 3 +/*!< + Socket type used for sending and receiving raw frames. + Raw socket expects and returns IP header. + Please note that SO_BROADCAST socket option is not currently supported when using RAW socket. + Similarly to SOCK_DGRAM it is oriented towards unreliable connectionless communication. + Passed to the @ref socket function for the socket creation operation. +*/ + +#define SOCKET_FLAGS_SSL 0x01 +/*!< + This flag may be set in the u8Config parameter of @ref socket (when the + u8Type parameter is @ref SOCK_STREAM), to create a TLS socket.\n + Note that the number of TLS sockets is limited to 2.\n + This flag is kept for legacy purposes. It is recommended that applications + use @ref SOCKET_CONFIG_SSL_ON instead. +*/ + +#define SOCKET_FLAGS_IPPROTO_RAW 0x02 +/*!< + This flag may be set in the u8Config parameter of @ref socket (when the + u8Type parameter is @ref SOCK_RAW), to allow the Application to use a + socket of type raw to send/receive frames.\n + This flag is kept for legacy purposes. It is recommended that applications + use @ref SOCKET_CONFIG_IPPROTO_RAW instead. +*/ + +#define SOCKET_CONFIG_DEFAULT 0 +/*!< + This value may be passed in the u8Config parameter of @ref socket to create + a socket with default configuration. +*/ + +#define SOCKET_CONFIG_SSL_OFF 0 +/*!< + This value may be passed in the u8Config parameter of @ref socket (when the + u8Type parameter is @ref SOCK_STREAM), to create a socket not capable of + TLS. +*/ +#define SOCKET_CONFIG_SSL_ON 1 +/*!< + This value may be passed in the u8Config parameter of @ref socket (when the + u8Type parameter is @ref SOCK_STREAM), to create a TLS socket.\n + Note that the number of TLS sockets is limited to 2. +*/ +#define SOCKET_CONFIG_SSL_DELAY 2 +/*!< + This value may be passed in the u8Config parameter of @ref socket (when the + u8Type parameter is @ref SOCK_STREAM), to create a TCP socket which has the + potential to upgrade to a TLS socket later (by calling @ref secure).\n + Note that the total number of TLS sockets and potential TLS sockets is + limited to 2. +*/ + +#define SOCKET_CONFIG_IPPROTO_RAW 2 +/*!< + This value may be passed in the u8Config parameter of @ref socket (when the u8Type parameter is + @ref SOCK_RAW), to allow the Application to use a socket of type raw to send/receive frames. + This assumes that the application will fill the IP and protocol (UDP, TCP, ICMP) headers. + Typically, when sending ICMP frames via RAW socket, there are two options that can be used: + - IPPROTO_RAW - Raw IP packets, implies that IP_HDRINCL is enabled and therefore + the host application should fill in the corresponding protocol header checksum. + - IPPROTO_ICMP - ICMP packets, the WINC would fill in the ICMP header checksum (not supported). + @warning + Please note that only SOCKET_CONFIG_IPPROTO_RAW is currently supported. + Raw sockets can be used to send TCP/UDP/ICMP packets, however, the current implementation only + supports receiving Raw ICMP frames, which also requires @ref SO_ICMP_FILTER to be set appropriately. +*/ + +#define TCP_SOCK_MAX (7) +/*!< + Maximum number of simultaneous TCP sockets. +*/ + +#define UDP_SOCK_MAX 4 +/*!< + Maximum number of simultaneous UDP sockets. +*/ + +#define RAW_SOCK_MAX 1 +/*!< + Maximum number of simultaneous RAW sockets. +*/ + +#define MAX_SOCKET (TCP_SOCK_MAX + UDP_SOCK_MAX + RAW_SOCK_MAX) +/*!< + Maximum number of simultaneous sockets. +*/ + +#define SOL_SOCKET 1 +/*!< + Socket option. + Used with the @ref setsockopt function +*/ + +#define SOL_SSL_SOCKET 2 +/*!< + SSL Socket option level. + Used with the @ref setsockopt function +*/ + +#define SOL_RAW 255 +/*!< + Raw Socket option level. + Used with the @ref setsockopt function +*/ + +#define SO_SET_UDP_SEND_CALLBACK 0x00 +/*!< + Socket option used by the application to enable/disable + the use of UDP send callbacks.\n + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + 0: disable UDP send callbacks.\n + 1: enable UDP send callbacks.\n + Default setting is enable. + + @warning @ref connect and @ref bind cause this setting to + be lost, so the application should only set this option + after calling @ref connect or @ref bind. +*/ + +#define IP_ADD_MEMBERSHIP 0x01 +/*!< + Set Socket Option Add Membership command value. + Used with the @ref setsockopt function. +*/ + +#define IP_DROP_MEMBERSHIP 0x02 +/*!< + Set Socket Option Drop Membership command value. + Used with the @ref setsockopt function. +*/ + +#define SO_TCP_KEEPALIVE 0x04 +/*!< + Socket option to enable or disable TCP keep-alive.\n + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + 0: disable TCP keep-alive.\n + 1: enable TCP keep-alive.\n + Default setting is disable. + + @warning @ref connect and @ref bind cause this setting to + be lost, so the application should only set this option + after calling @ref connect or @ref bind. +*/ + +#define SO_TCP_KEEPIDLE 0x05 +/*!< + Socket option to set the time period after which the socket will trigger keep-alive transmissions.\n + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + Option value is the time period in units of 500ms. Maximum 2^32 - 1. + Default setting is 120 (60 seconds). + + @warning @ref connect and @ref bind cause this setting to + be lost, so the application should only set this option + after calling @ref connect or @ref bind. +*/ + +#define SO_TCP_KEEPINTVL 0x06 +/*!< + Socket option to set the time period between keep-alive retransmissions.\n + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + Option value is the time period in units of 500ms. Maximum 255. + Default setting is 1 (0.5 seconds). + + @warning @ref connect and @ref bind cause this setting to + be lost, so the application should only set this option + after calling @ref connect or @ref bind. +*/ + +#define SO_TCP_KEEPCNT 0x07 +/*!< + Socket option to set the number of keep-alive retransmissions to be carried out before declaring that the remote end is not available.\n + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + Maximum 255. + Default setting is 20. + + @warning @ref connect and @ref bind cause this setting to + be lost, so the application should only set this option + after calling @ref connect or @ref bind. +*/ + +#define SO_ICMP_FILTER 0x01 +/*!< + Socket option to set the ICMP filter for raw sockets when receiving.\n + Current implementation allows for a filter none (0) or filter all (anything else). + Filter none means that all ICMP frames will be delivered to the host via raw socket. + Filter all means that all ICMP frames will NOT be delivered to host and handled internally by the WINC (please note that fragmentation is not supported by the WINC). + Used with the @ref setsockopt function.\n + The option value should be cast to int type.\n + Default setting is 0 (filter none). + + @warning @ref bind and @ref shutdown will cause this setting to be lost, + so the application should only set this option after @ref bind. +*/ + +#define RAW_SOCK_ID (TCP_SOCK_MAX + UDP_SOCK_MAX) +/*!< + Socket number to be used for RAW socket. +*/ + +/**@}*/ //IPDefines + + +/**@addtogroup TLSDefines + * @{ + */ +#define ALPN_LIST_MAX_APP_LENGTH 30 +/*!< + Maximum length of ALPN list that can be specified by the application. + This length includes separators (spaces) and terminator (NUL). +*/ +/**@}*/ // TLSDefines + +/** + * @defgroup TLSDefines TLS Defines + * @ingroup SOCKETDEF + * @ingroup SSLAPI +*/ + +/**@defgroup SSLSocketOptions TLS Socket Options + * @ingroup TLSDefines + * The following list of macros are used to define SSL Socket options. + * @{ + * @sa setsockopt + */ + +#define SO_SSL_BYPASS_X509_VERIF 0x01 +/*!< + Allow an opened SSL socket to bypass the X509 certificate verification + process. + It is recommended NOT to use this socket option in production software + applications. It is supported for debugging and testing purposes.\n + The option value should be casted to int type.\n + 0: do not bypass the X509 certificate verification process (default, + recommended).\n + 1: bypass the X509 certificate verification process.\n + + This option only takes effect if it is set after calling @ref socket and + before calling @ref connect or @ref secure. +*/ + +#define SO_SSL_SNI 0x02 +/*!< + Set the Server Name Indicator (SNI) for an SSL socket. The SNI is a NULL- + terminated string containing the server name associated with the + connection. Its size must not exceed @ref HOSTNAME_MAX_SIZE. If the SNI is + not a null string, then TLS Client Hello messages will include the SNI + extension.\n + + This option only takes effect if it is set after calling @ref socket and + before calling @ref connect or @ref secure. +*/ + +#define SO_SSL_ENABLE_SESSION_CACHING 0x03 +/*!< + This option allow the TLS to cache the session information for fast TLS + session establishment in future connections using the TLS Protocol session + resume features.\n + The option value should be casted to int type.\n + 0: disable TLS session caching (default).\n + 1: enable TLS session caching.\n + Note that TLS session caching is always enabled in TLS Server Mode and this + option is ignored.\n + + This option only takes effect if it is set after calling @ref socket and + before calling @ref connect or @ref secure. +*/ + +#define SO_SSL_ENABLE_CERTNAME_VALIDATION 0x04 +/*!< + Enable internal validation of server name against the server's + certificate subject common name. If there is no server name + provided (via the @ref SO_SSL_SNI option), setting this option + does nothing.\n + The option value should be casted to int type.\n + 0: disable server certificate name validation (default).\n + 1: enable server certificate name validation (recommended).\n + + This option only takes effect if it is set after calling @ref socket and + before calling @ref connect or @ref secure. +*/ + +#define SO_SSL_ALPN 0x05 +/*!< + Set the list to use for Application-Layer Protocol Negotiation + for an SSL socket.\n + This option is intended for internal use and should not be + used by the application. Applications should use the API @ref + set_alpn_list. +*/ + +#define SO_SSL_ENABLE_SNI_VALIDATION 0x04 +/*!< + Legacy name for @ref SO_SSL_ENABLE_CERTNAME_VALIDATION.\n +*/ +/**@}*/ //SSLSocketOptions + +/**@defgroup SSLCipherSuiteID TLS Cipher Suite IDs + * @ingroup TLSDefines + * The following list of macros defined the list of supported TLS Cipher suites. + * Each MACRO defines a single Cipher suite. + * @sa m2m_ssl_set_active_ciphersuites + * @{ + */ + +#define SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA NBIT0 +#define SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA256 NBIT1 +#define SSL_CIPHER_DHE_RSA_WITH_AES_128_CBC_SHA NBIT2 +#define SSL_CIPHER_DHE_RSA_WITH_AES_128_CBC_SHA256 NBIT3 +#define SSL_CIPHER_RSA_WITH_AES_128_GCM_SHA256 NBIT4 +#define SSL_CIPHER_DHE_RSA_WITH_AES_128_GCM_SHA256 NBIT5 +#define SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA NBIT6 +#define SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA256 NBIT7 +#define SSL_CIPHER_DHE_RSA_WITH_AES_256_CBC_SHA NBIT8 +#define SSL_CIPHER_DHE_RSA_WITH_AES_256_CBC_SHA256 NBIT9 +#define SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA NBIT10 +#define SSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA NBIT11 +#define SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA256 NBIT12 +#define SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 NBIT13 +#define SSL_CIPHER_ECDHE_RSA_WITH_AES_128_GCM_SHA256 NBIT14 +#define SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 NBIT15 + +#define SSL_ECC_ONLY_CIPHERS \ +(\ + SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | \ + SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 \ +) +/*!< + All supported ciphers which use ECDSA. +*/ + +#define SSL_DEFAULT_CIPHERS \ +(\ + SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA | \ + SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA256 | \ + SSL_CIPHER_DHE_RSA_WITH_AES_128_CBC_SHA | \ + SSL_CIPHER_DHE_RSA_WITH_AES_128_CBC_SHA256 | \ + SSL_CIPHER_RSA_WITH_AES_128_GCM_SHA256 | \ + SSL_CIPHER_DHE_RSA_WITH_AES_128_GCM_SHA256 | \ + SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA | \ + SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA256 | \ + SSL_CIPHER_DHE_RSA_WITH_AES_256_CBC_SHA | \ + SSL_CIPHER_DHE_RSA_WITH_AES_256_CBC_SHA256 \ +) +/*!< + All supported Non-ECC Ciphers. This is the default active group after startup. + Note that firmware may support only a subset of these. +*/ +/**@}*/ // SSLCipherSuiteID + +/**@defgroup SOCKETBYTEORDER Byte Order + * @ingroup SOCKETAPI + * The following list of macros are used to convert between host representation and network byte order. + * @{ + */ + +#ifdef _NM_BSP_BIG_END +#define _htonl(m) (m) +/*!< + Convert a 4-byte integer from the Host representation to Network byte order (Host is BE). +*/ +#define _htons(A) (A) +/*!< + Convert a 2-byte integer (short) from Host representation to Network byte order (Host is BE). +*/ +#else +#define _htonl(m) \ + (uint32_t)(((uint32_t)(m << 24)) | ((uint32_t)((m & 0x0000FF00) << 8)) | ((uint32_t)((m & 0x00FF0000) >> 8)) | ((uint32_t)(((uint32_t)m) >> 24))) +/*!< + Convert a 4-byte integer from Host representation to Network byte order (Host is LE). +*/ + +#define _htons(A) (uint16_t)((((uint16_t) (A)) << 8) | (((uint16_t) (A)) >> 8)) +/*!< + Convert a 2-byte integer (short) from Host representation to Network byte order (Host is LE). +*/ +#endif + + +#define _ntohl _htonl +/*!< + Convert a 4-byte integer from Network byte order to Host representation. +*/ + + +#define _ntohs _htons +/*!< + Convert a 2-byte integer from Network byte order to Host representation. +*/ +/**@}*/ // SOCKETBYTEORDER + +/************** +Socket Errors +**************/ +/**@defgroup SocketErrorCode Error Codes + * @ingroup SOCKETAPI + * The following list of macros are used to define the possible error codes. + * Errors are listed in numerical order with the error macro name. + * @{ + */ +#define SOCK_ERR_NO_ERROR 0 +/*!< + Successful socket operation. This code is also used with event @ref SOCKET_MSG_RECV if a socket connection is closed. + In that case, the application should call @ref shutdown(). +*/ + +#define SOCK_ERR_INVALID_ADDRESS -1 +/*!< + Socket address is invalid. The socket operation cannot be completed successfully without specifying a valid address + For example: bind is called without specifying a port number +*/ + +#define SOCK_ERR_ADDR_ALREADY_IN_USE -2 +/*!< + Socket operation cannot bind on the given address. Only one IP address per socket, and one socket per IP address is permitted - + any attempt for a new socket to bind with an IP address already bound to another open socket will return the following error code. +*/ + +#define SOCK_ERR_MAX_TCP_SOCK -3 +/*!< + Exceeded the maximum number of TCP sockets. A maximum number of TCP sockets opened simultaneously is defined through TCP_SOCK_MAX. + It is not permitted to exceed that number at socket creation. Identifies that @ref socket operation failed. +*/ + +#define SOCK_ERR_MAX_UDP_SOCK -4 +/*!< + Exceeded the maximum number of UDP sockets. A maximum number of UDP sockets opened simultaneously is defined through UDP_SOCK_MAX. + It is not permitted to exceed that number at socket creation. Identifies that @ref socket operation failed +*/ + +#define SOCK_ERR_INVALID_ARG -6 +/*!< + An invalid argument is passed to a socket function. Identifies that @ref socket operation failed +*/ + +#define SOCK_ERR_MAX_LISTEN_SOCK -7 +/*!< + Exceeded the maximum number of TCP passive listening sockets. + Identifies that @ref listen operation failed. +*/ + +#define SOCK_ERR_INVALID -9 +/*!< + The requested socket operation is not valid in the current socket state. + For example: @ref accept is called on a TCP socket before @ref bind or @ref listen. +*/ + +#define SOCK_ERR_ADDR_IS_REQUIRED -11 +/*!< + Destination address is required. Failure to provide the socket address required for the socket operation to be completed. + The @ref sendto function requires a destination address to send data. +*/ + +#define SOCK_ERR_CONN_ABORTED -12 +/*!< + The socket is closed (reset) by the peer. If this error is received, the application should call @ref shutdown(). +*/ + +#define SOCK_ERR_TIMEOUT -13 +/*!< + The socket pending operation has timed out. The socket remains open. +*/ + +#define SOCK_ERR_BUFFER_FULL -14 +/*!< + No buffer space available to be used for the requested socket operation. +*/ +/**@}*/ // SocketErrorCode + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +/** @defgroup SocketEnums Enumeration/Typedefs + * @ingroup SOCKETAPI + * Specific Enumeration-typedefs used for socket operations + * @{ + */ +/*! +@typedef \ + SOCKET + +@brief + Definition for socket handler data type. + Socket ID,used with all socket operations to uniquely identify the socket handler. + The ID is uniquely assigned at socket creation when calling @ref socket operation. +*/ +typedef int8_t SOCKET; + +/*! +@enum \ + tenuSockErrSource + +@brief + Source of socket error (local, remote or unknown). + +@see tstrSockErr +*/ + +typedef enum { + SOCKET_ERR_UNKNOWN = 0, + /*!< + No detail available (also used when there is no error). + */ + SOCKET_ERR_TLS_REMOTE, + /*!< + TLS Error Alert received from peer. + */ + SOCKET_ERR_TLS_LOCAL + /*!< + TLS Error Alert generated locally. + */ +} tenuSockErrSource; + +/*! +@struct \ + sockaddr + +@brief + Generic socket address structure. + +@see + sockaddr_in +*/ +struct sockaddr { + uint16_t sa_family; + /*!< + Socket address family. + */ + uint8_t sa_data[14]; + /*!< + Maximum size of all the different socket address structures. + */ +}; + +/*! +@struct \ + tstrSockErr + +@brief + Detail about socket failures. Used with @ref get_error_detail. +*/ +typedef struct { + tenuSockErrSource enuErrSource; + /*!< + Source of socket error (local, remote or unknown). + */ + uint8_t u8ErrCode; + /*!< + TLS Alert code as defined in + https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-6. + */ +} tstrSockErr; +/**@}*/ //SocketEnums + +/**@defgroup AsyncCallback Asynchronous Events + * @ingroup SocketEnums + * Specific Enumeration used for asynchronous operations + * @{ */ +/*! +@enum \ + tenuSocketCallbackMsgType + +@brief + Asynchronous APIs make use of callback functions in-order to return back the results once the corresponding socket operation is completed. + Hence resuming the normal execution of the application code while the socket operation returns the results. + Callback functions expect event messages to be passed in, in-order to identify the operation they're returning the results for. + The following enum identifies the type of events that are received in the callback function. + + Application Use: + In order for application developers to handle the pending events from the network controller through the callback functions, + a function call must be made to the function @ref m2m_wifi_handle_events at least once for each socket operation. + +@see bind +@see listen +@see accept +@see connect +@see send +@see recv +*/ + +typedef enum { + SOCKET_MSG_BIND = 1, + /*!< + Bind socket event. + */ + SOCKET_MSG_LISTEN, + /*!< + Listen socket event. + */ + SOCKET_MSG_DNS_RESOLVE, + /*!< + DNS Resolution event. + */ + SOCKET_MSG_ACCEPT, + /*!< + Accept socket event. + */ + SOCKET_MSG_CONNECT, + /*!< + Connect socket event. + */ + SOCKET_MSG_RECV, + /*!< + Receive socket event. + */ + SOCKET_MSG_SEND, + /*!< + Send socket event. + */ + SOCKET_MSG_SENDTO, + /*!< + Sendto socket event. + */ + SOCKET_MSG_RECVFROM, + /*!< + Recvfrom socket event. + */ + SOCKET_MSG_SECURE +/*!< + Existing socket made secure event. +*/ +} tenuSocketCallbackMsgType; + +/*! +@struct \ + tstrSocketBindMsg + +@brief Socket bind status. + + An asynchronous call to the @ref bind socket operation, returns information through this structure in response. + This structure together with the event @ref SOCKET_MSG_BIND are passed in parameters to the callback function. +@see + bind +*/ +typedef struct { + int8_t status; + /*!< + The result of the bind operation. + Holding a value of ZERO for a successful bind or otherwise a negative + error code corresponding to @ref SocketErrorCode. + */ +} tstrSocketBindMsg; + +/*! +@struct \ + tstrSocketListenMsg + +@brief Socket listen status. + + Socket listen information is returned through this structure in response to the asynchronous call to the @ref listen function. + This structure together with the event @ref SOCKET_MSG_LISTEN are passed-in parameters to the callback function. +@see + listen +*/ +typedef struct { + int8_t status; + /*!< + Holding a value of ZERO for a successful listen or otherwise a negative + error code corresponding to @ref SocketErrorCode. + */ +} tstrSocketListenMsg; + +/*! +@struct \ + tstrSocketAcceptMsg + +@brief Socket accept status. + + Socket accept information is returned through this structure in response to the asynchronous call to the @ref accept function. + This structure together with the event @ref SOCKET_MSG_ACCEPT are passed-in parameters to the callback function. +*/ +typedef struct { + SOCKET sock; + /*!< + On a successful @ref accept operation, the return information is the socket ID for the accepted connection with the remote peer. + Otherwise a negative error code is returned to indicate failure of the accept operation. + */ + struct sockaddr_in strAddr; + /*!< + Socket address structure for the remote peer. + */ +} tstrSocketAcceptMsg; + +/*! +@struct \ + tstrSocketConnectMsg + +@brief Socket connect status. + + Socket connect information is returned through this structure in response to an asynchronous call to the @ref connect socket function + or the @ref secure socket function. + This structure and the event @ref SOCKET_MSG_CONNECT or @ref SOCKET_MSG_SECURE are passed in parameters to the callback function. + If the application receives this structure with a negative value in s8Error, the application should call @ref close(). +*/ +typedef struct { + SOCKET sock; + /*!< + Socket ID referring to the socket passed to the @ref connect or @ref secure function call. + */ + int8_t s8Error; + /*!< + Connect error code:\n + - ZERO for a successful connect or successful secure. \n + - Otherwise a negative error code corresponding to the type of error. + */ +} tstrSocketConnectMsg; + +/*! +@struct \ + tstrSocketRecvMsg + +@brief Socket recv status. + + Socket receive information is returned through this structure in response to the asynchronous call to the @ref recv or @ref recvfrom socket functions. + This structure, together with the events @ref SOCKET_MSG_RECV or @ref SOCKET_MSG_RECVFROM, is passed-in parameters to the callback function. +@remark + After receiving this structure, the application should issue a new call to @ref recv or @ref recvfrom in order to receive subsequent data. + In the case of @ref SOCKET_MSG_RECVFROM (UDP), any further data in the same datagram is dropped, then subsequent datagrams are buffered on the WINC until the application provides a buffer via a new call to @ref recvfrom. + In the case of @ref SOCKET_MSG_RECV (TCP), all subsequent data is buffered on the WINC until the application provides a buffer via a new call to @ref recv. + A negative or zero buffer size indicates an error with the following code: + @ref SOCK_ERR_NO_ERROR : Socket connection closed. The application should now call @ref shutdown(). + @ref SOCK_ERR_CONN_ABORTED : Socket connection aborted. The application should now call @ref shutdown(). + @ref SOCK_ERR_TIMEOUT : Socket receive timed out. The socket connection remains open. +*/ +typedef struct { + uint8_t *pu8Buffer; + /*!< + Pointer to the USER buffer (passed to @ref recv and @ref recvfrom function) containing the received data chunk. + */ + int16_t s16BufferSize; + /*!< + The received data chunk size. + Holds a negative value if there is a receive error or ZERO on success upon reception of close socket message. + */ + uint16_t u16RemainingSize; + /*!< + This field is used internally by the driver. In normal operation, this field will be 0 when the application receives this structure. + */ + struct sockaddr_in strRemoteAddr; + /*!< + Socket address structure for the remote peer. It is valid for @ref SOCKET_MSG_RECVFROM event. + */ +} tstrSocketRecvMsg; +/**@}*/ // AsyncCallback + +/**@defgroup SocketCallbacks Callbacks + * @ingroup SOCKETAPI + * @{ + */ +/*! +@typedef \ + tpfAppSocketCb + +@brief + The main socket application callback function. Applications register their main socket application callback through this function by calling @ref registerSocketCallback. + In response to events received, the following callback function is called to handle the corresponding asynchronous function called. Example: @ref bind, @ref connect,...etc. + +@param [in] sock + Socket ID for the callback. + + The socket callback function is called whenever a new event is received in response + to socket operations. + +@param [in] u8Msg + Socket event type. Possible values are: + - @ref SOCKET_MSG_BIND + - @ref SOCKET_MSG_LISTEN + - @ref SOCKET_MSG_ACCEPT + - @ref SOCKET_MSG_CONNECT + - @ref SOCKET_MSG_RECV + - @ref SOCKET_MSG_SEND + - @ref SOCKET_MSG_SENDTO + - @ref SOCKET_MSG_RECVFROM + - @ref SOCKET_MSG_SECURE + +@param [in] pvMsg + Pointer to message structure. Existing types are: + - tstrSocketBindMsg + - tstrSocketListenMsg + - tstrSocketAcceptMsg + - tstrSocketConnectMsg + - tstrSocketRecvMsg + +@see + tenuSocketCallbackMsgType + tstrSocketRecvMsg + tstrSocketConnectMsg + tstrSocketAcceptMsg + tstrSocketListenMsg + tstrSocketBindMsg +*/ +typedef void (*tpfAppSocketCb)(SOCKET sock, uint8_t u8Msg, void *pvMsg); + +/*! +@typedef \ + tpfAppResolveCb + +@brief + DNS resolution callback function. + Applications requiring DNS resolution should register their callback through this function by calling @ref registerSocketCallback. + The following callback is triggered in response to an asynchronous call to the @ref gethostbyname function (DNS Resolution callback). + +@param [in] pu8DomainName + Domain name of the host. + +@param [in] u32ServerIP + Server IPv4 address encoded in Network byte order format. If it is Zero, then the DNS resolution failed. +*/ +typedef void (*tpfAppResolveCb)(uint8_t *pu8DomainName, uint32_t u32ServerIP); + +/*! +@typedef \ + tpfPingCb + +@brief PING Callback + + The function delivers the ping statistics for the sent ping triggered by calling + @ref m2m_ping_req. + +@param [in] u32IPAddr + Destination IP. + +@param [in] u32RTT + Round Trip Time. + +@param [in] u8ErrorCode + Ping error code. It may be one of: + - PING_ERR_SUCCESS + - PING_ERR_DEST_UNREACH + - PING_ERR_TIMEOUT +*/ +typedef void (*tpfPingCb)(uint32_t u32IPAddr, uint32_t u32RTT, uint8_t u8ErrorCode); +/**@}*/ //SocketCallbacks + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +FUNCTION PROTOTYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ +/**@defgroup SocketAPI Functions + * @ingroup SOCKETAPI + * The function performs the necessary initializations for the socket library through the following steps: + * - A check made by the global variable gbSocketInit, ensuring that initialization for sockets is performed only once, + * in-order to prevent resetting the socket instances already created in the global socket array (gastrSockets). + * - Zero initializations to the global socket array (gastrSockets), which holds the list of TCP sockets. + * - Registers the socket (Host Interface)hif callback function through the call to the hif_register_cb function. + * This facilitates handling all of the socket related functions received through interrupts from the firmware. + * @{ + */ +/*! + * @fn void socketInit(void); + The function performs the necessary initialization for the socket library through the following steps: + - A check made by the global variable gbSocketInit, ensuring that initialization for sockets is performed only once, + in-order to prevent resetting the socket instances already created in the global socket array (gastrSockets). + - Zero initializations to the global socket array (gastrSockets), which holds the list of TCP sockets. + - Registers the socket (Host Interface)hif callback function through the call to the hif_register_cb function. + This facilitates handling all of the socket related functions received through interrupts from the firmware. + +@return void + +@remarks + This initialization function must be invoked before any socket operation is performed. + No error codes from this initialization function since the socket array is statically allocated based on the maximum number of + sockets @ref MAX_SOCKET which is tuned to the systems capability. +\section SocketExample1 Example +This example demonstrates the use of the socketInit for socket initialization for an mqtt chat application. + \code + tstrWifiInitParam param; + tstrNetworkId strNetworkId; + tstrAuthPsk strAuthPsk; + int8_t ret; + char topic[strlen(MAIN_CHAT_TOPIC) + MAIN_CHAT_USER_NAME_SIZE + 1]; + + //Initialize the board. + system_init(); + + //Initialize the UART console. + configure_console(); + + // Initialize the BSP. + nm_bsp_init(); + + ---------- + + // Initialize socket interface. + socketInit(); + registerSocketCallback(socket_event_handler, socket_resolve_handler); + + // Connect to router. + strNetworkId.pu8Bssid = NULL; + strNetworkId.pu8Ssid = MAIN_WLAN_SSID; + strNetworkId.u8SsidLen = sizeof(MAIN_WLAN_SSID); + strNetworkId.u8Channel = M2M_WIFI_CH_ALL; + + strAuthPsk.pu8Psk = NULL; + strAuthPsk.pu8Passphrase = MAIN_WLAN_PSK; + strAuthPsk.u8PassphraseLen = (uint8_t)strlen((char*)MAIN_WLAN_PSK); + + m2m_wifi_connect_psk(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId, &strAuthPsk); +\endcode +*/ +void socketInit(void); + +/*! +@fn \ + void socketDeinit(void); + +@brief Socket Layer De-initialization + + The function performs the necessary cleanup for the socket library static data + It must be invoked only after all desired socket operations have been performed on any active sockets. +*/ +void socketDeinit(void); + +/*! +@fn \ + uint8_t IsSocketReady(void); + +@see socketInit + socketDeinit +@return If the socket has been initialized and is ready. + Should return 1 after @ref socketInit and 0 after @ref socketDeinit +*/ +uint8_t IsSocketReady(void); + +/*! +@fn \ + void registerSocketCallback(tpfAppSocketCb socket_cb, tpfAppResolveCb resolve_cb); + Register two callback functions one for asynchronous socket events and the other one for DNS callback registering function. + The registered callback functions are used to retrieve information in response to the asynchronous socket functions called. +@param [in] socket_cb + Assignment of callback function to the global callback @ref tpfAppSocketCb gpfAppSocketCb. Delivers + socket messages to the host application. In response to the asynchronous function calls, such as @ref bind + @ref listen @ref accept @ref connect + +@param [in] resolve_cb + Assignment of callback function to the global callback @ref tpfAppResolveCb gpfAppResolveCb. + Used for DNS resolving functionality. The DNS resolving technique is determined by the application + registering the callback. + NULL is assigned when DNS resolution is not required. + +@return void +@remarks + If any of the socket functionality is not to be used, NULL is passed in as a parameter. + It must be invoked after @ref socketInit and before other socket layer operations. + +\section SocketExample2 Example + This example demonstrates the use of the registerSocketCallback to register a socket callback function with DNS resolution CB set to null + for a simple UDP server example. + \code + tstrWifiInitParam param; + tstrNetworkId strNetworkId; + tstrAuthPsk strAuthPsk; + int8_t ret; + struct sockaddr_in addr; + + // Initialize the board + system_init(); + + //Initialize the UART console. + configure_console(); + + // Initialize the BSP. + nm_bsp_init(); + + // Initialize socket address structure. + addr.sin_family = AF_INET; + addr.sin_port = _htons(MAIN_WIFI_M2M_SERVER_PORT); + addr.sin_addr.s_addr = _htonl(MAIN_WIFI_M2M_SERVER_IP); + + // Initialize Wi-Fi parameters structure. + memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); + + // Initialize Wi-Fi driver with data and status callbacks. + param.pfAppWifiCb = wifi_cb; + ret = m2m_wifi_init(¶m); + if (M2M_SUCCESS != ret) { + printf("main: m2m_wifi_init call error!(%d)\r\n", ret); + while (1) { + } + } + + // Initialize socket module + socketInit(); + registerSocketCallback(socket_cb, NULL); + + // Connect to router. + strNetworkId.pu8Bssid = NULL; + strNetworkId.pu8Ssid = MAIN_WLAN_SSID; + strNetworkId.u8SsidLen = sizeof(MAIN_WLAN_SSID); + strNetworkId.u8Channel = M2M_WIFI_CH_ALL; + + strAuthPsk.pu8Psk = NULL; + strAuthPsk.pu8Passphrase = MAIN_WLAN_PSK; + strAuthPsk.u8PassphraseLen = (uint8_t)strlen((char*)MAIN_WLAN_PSK); + + m2m_wifi_connect_psk(WIFI_CRED_SAVE_ENCRYPTED, &strNetworkId, &strAuthPsk); +\endcode +*/ +//void registerSocketCallback(tpfAppSocketCb socket_cb, tpfAppResolveCb resolve_cb); +void registerSocketEventCallback(tpfAppSocketCb socket_cb); +void registerSocketResolveCallback(tpfAppResolveCb resolve_cb); + +/*! +@fn \ + SOCKET socket(uint16_t u16Domain, uint8_t u8Type, uint8_t u8Config); + Synchronous socket allocation function based on the specified socket type. Created sockets are non-blocking and their possible types are either TCP or a UDP sockets. + The maximum allowed number of TCP sockets is @ref TCP_SOCK_MAX sockets while the maximum number of UDP sockets that can be created simultaneously is @ref UDP_SOCK_MAX sockets. + +@param [in] u16Domain + Socket family. The only allowed value is AF_INET (IPv4.0) for TCP/UDP sockets. + +@param [in] u8Type + Socket type. Allowed values are: + - [SOCK_STREAM](@ref SOCK_STREAM) + - [SOCK_DGRAM](@ref SOCK_DGRAM) + - [SOCK_RAW](@ref SOCK_RAW) + +@param[in] u8Config + Used to specify the socket configuration. The interpretation of + this parameter depends on the setting of u8Type.\n + - When u8Type is [SOCK_STREAM](@ref SOCK_STREAM) the following configuration values + are defined:\n + - [SOCKET_CONFIG_SSL_OFF](@ref SOCKET_CONFIG_SSL_OFF): The socket is not secured by + TLS.\n + - [SOCKET_CONFIG_SSL_ON](@ref SOCKET_CONFIG_SSL_ON): The socket is secured by TLS.\n + - [SOCKET_CONFIG_SSL_DELAY](@ref SOCKET_CONFIG_SSL_DELAY): The socket is not secured + by TLS, but may be secured later, by calling @ref secure.\n + - When u8Type is [SOCK_RAW](@ref SOCK_RAW), the following configuration values + are defined:\n + - [SOCKET_CONFIG_IPPROTO_RAW](@ref SOCKET_CONFIG_IPPROTO_RAW): The socket is to be + used for raw ICMP frames.\n + - For all values of u8Type, the following configuration values + are defined:\n + - [SOCKET_CONFIG_DEFAULT](@ref SOCKET_CONFIG_DEFAULT): The default configuration.\n + All other configuration values are reserved and should not be + used. + +@pre + The @ref socketInit function must be called once at the beginning of the application to initialize the socket handler. + before any call to the @ref socket function can be made. + +@see + connect + secure + bind + listen + accept + recv + recvfrom + send + sendto + shutdown + setsockopt + getsockopt + +@return + On successful socket creation, a non-blocking socket type is created and a socket ID is returned + In case of failure the function returns a negative value, identifying one of the socket error codes defined. + For example: @ref SOCK_ERR_INVALID for invalid argument or + @ref SOCK_ERR_MAX_TCP_SOCK if the number of TCP allocated sockets exceeds the number of available sockets. + +@remarks + The socket function must be called before any other related socket functions "e.g. send, recv, shutdown ..etc" +\section SocketExample3 Example + This example demonstrates the use of the socket function to allocate the socket, returning the socket handler to be used for other +socket operations. Socket creation is dependent on the socket type. +\subsection sub1 UDP example +@code + SOCKET UdpServerSocket = -1; + + UdpServerSocket = socket(AF_INET, SOCK_DGRAM, SOCKET_CONFIG_DEFAULT); + +@endcode +\subsection sub2 TCP example +@code + static SOCKET tcp_client_socket = -1; + + tcp_client_socket = socket(AF_INET, SOCK_STREAM, SOCKET_CONFIG_DEFAULT)); +@endcode +*/ +SOCKET socket(uint16_t u16Domain, uint8_t u8Type, uint8_t u8Config); +/*! +\fn \ + int8_t bind(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen); + Asynchronous bind function associates the provided address and local port to the socket. + The function can be used with both TCP and UDP sockets. It is mandatory to call the @ref bind function before starting any UDP or TCP server operation. + Upon socket bind completion, the application will receive a @ref SOCKET_MSG_BIND message in the socket callback. +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + +@param [in] pstrAddr + Pointer to socket address structure "sockaddr_in" + [sockaddr_in](@ref sockaddr_in) + + +@param [in] u8AddrLen + Size of the given socket address structure in bytes. + +@pre + The socket function must be called to allocate a socket before passing the socket ID to the bind function. + +@see socket +@see connect +@see listen +@see accept +@see recv +@see recvfrom +@see send +@see sendto + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating passing invalid arguments such as negative socket ID or NULL socket address structure. + + - [SOCK_ERR_INVALID](@ref SOCK_ERR_INVALID) + Indicate socket bind failure. +\section SocketExample4 Example + This example demonstrates the call of the bind socket operation after a successful socket operation. +@code + struct sockaddr_in addr; + SOCKET udpServerSocket =-1; + int ret = -1; + + if(udpServerSocket == -1) + { + udpServerSocket = socket(AF_INET,SOCK_DGRAM,SOCKET_CONFIG_DEFAULT); + if(udpServerSocket >= 0) + { + addr.sin_family = AF_INET; + addr.sin_port = _htons(UDP_SERVER_PORT); + addr.sin_addr.s_addr = 0; + ret = bind(udpServerSocket,(struct sockaddr*)&addr,sizeof(addr)); + + if(ret == 0) + printf("Bind success!\n"); + else + { + printf("Bind Failed. Error code = %d\n",ret); + shutdown(udpServerSocket); + } + else + { + printf("UDP Server Socket Creation Failed\n"); + return; + } + } +@endcode +*/ +int8_t bind(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen); +/*! +@fn \ + int8_t listen(SOCKET sock, uint8_t backlog); + + After successfully binding a socket to an IP address and port on the system, start listening passively for incoming connections. + The socket must be bound on a local port or the listen operation fails. + Upon the call to the asynchronous listen function, response is received through the event @ref SOCKET_MSG_LISTEN + in the socket callback. + + A successful listen means the TCP server operation is active. If a connection is accepted, then the application socket callback function is + notified with the new connected socket through the event @ref SOCKET_MSG_ACCEPT. Hence there is no need to call the @ref accept function + after calling @ref listen. + + After a connection is accepted, the user is then required to call @ref recv to receive any packets transmitted by the remote host or to receive notification of socket connection + termination. +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + +@param [in] backlog + Not used by the current implementation. + +@pre + The bind function must be called to assign the port number and IP address to the socket before the listen operation. + +@see bind +@see accept +@see recv +@see recvfrom +@see send +@see sendto + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating invalid arguments were passed, such as negative socket ID. + + - [SOCK_ERR_INVALID](@ref SOCK_ERR_INVALID) + Indicate socket listen failure. +\section SocketExample5 Example +This example demonstrates the call of the listen socket operation after a successful socket operation. +@code + static void TCP_Socketcallback(SOCKET sock, uint8_t u8Msg, void * pvMsg) + { + int ret =-1; + + switch(u8Msg) + { + case SOCKET_MSG_BIND: + { + tstrSocketBindMsg *pstrBind = (tstrSocketBindMsg*)pvMsg; + if(pstrBind != NULL) + { + if(pstrBind->status == 0) + { + ret = listen(sock, 0); + + if(ret <0) + printf("Listen failure! Error = %d\n",ret); + } + else + { + M2M_ERR("bind Failure!\n"); + shutdown(sock); + } + } + } + break; + + case SOCKET_MSG_LISTEN: + { + + tstrSocketListenMsg *pstrListen = (tstrSocketListenMsg*)pvMsg; + if(pstrListen != NULL) + { + if(pstrListen->status == 0) + { + ret = accept(sock,NULL,0); + } + else + { + M2M_ERR("listen Failure!\n"); + shutdown(sock); + } + } + } + break; + + case SOCKET_MSG_ACCEPT: + { + tstrSocketAcceptMsg *pstrAccept = (tstrSocketAcceptMsg*)pvMsg; + + if(pstrAccept->sock >= 0) + { + TcpNotificationSocket = pstrAccept->sock; + recv(pstrAccept->sock,gau8RxBuffer,sizeof(gau8RxBuffer),TEST_RECV_TIMEOUT); + } + else + { + M2M_ERR("accept failure\n"); + } + } + break; + + default: + break; + } + } + +@endcode +*/ +int8_t listen(SOCKET sock, uint8_t backlog); +/*! +@fn \ + int8_t accept(SOCKET sock, struct sockaddr *addr, uint8_t *addrlen); + The function has no current implementation. An empty declaration is used to prevent errors when legacy application code is used. + As it has no effect, it can be safely removed from any application using it. +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. +@param [in] addr + Not used in the current implementation. + +@param [in] addrlen + Not used in the current implementation. + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating passing invalid arguments such as negative socket ID. +*/ +int8_t accept(SOCKET sock, struct sockaddr *addr, uint8_t *addrlen); +/*! +@fn \ + int8_t connect(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen); + Establishes a TCP connection with a remote server. + The asynchronous connect function must be called after receiving a valid socket ID from the @ref socket function. + The application socket callback function is notified of the result of the connection attempt through the event @ref SOCKET_MSG_CONNECT, + along with a structure @ref tstrSocketConnectMsg. + If socket connection fails, the application should call @ref shutdown(). + A successful connect means the TCP session is active. The application is then required to make a call to the @ref recv function + to receive any packets transmitted by the remote server, unless the application is interrupted by a notification of socket connection + termination. +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + +@param [in] pstrAddr + Address of the remote server. + +@param [in] u8AddrLen + Size of the given socket address structure in bytes. + Not currently used, implemented for BSD compatibility only. +@pre + The socket function must be called to allocate a TCP socket before passing the socket ID to the bind function. + If the socket is not bound, you do NOT have to call bind before the "connect" function. + +@see + socket + recv + send + shutdown + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating passing invalid arguments such as negative socket ID or NULL socket address structure. + + - [SOCK_ERR_INVALID](@ref SOCK_ERR_INVALID) + Indicate socket connect failure. +\section SocketExample6 Example + The example demonstrates a TCP application, showing how the asynchronous call to the connect function is made through the main function and how the + callback function handles the @ref SOCKET_MSG_CONNECT event. +\subsection sub3 Main Function +@code + struct sockaddr_in Serv_Addr; + SOCKET TcpClientSocket =-1; + int ret = -1 + + TcpClientSocket = socket(AF_INET,SOCK_STREAM,SOCKET_CONFIG_DEFAULT); + Serv_Addr.sin_family = AF_INET; + Serv_Addr.sin_port = _htons(1234); + Serv_Addr.sin_addr.s_addr = inet_addr(SERVER); + printf("Connected to server via socket %u\n",TcpClientSocket); + + do + { + ret = connect(TcpClientSocket,(sockaddr_in*)&Serv_Addr,sizeof(Serv_Addr)); + if(ret != 0) + { + printf("Connection Error\n"); + } + else + { + printf("Connection successful.\n"); + break; + } + }while(1) +@endcode +\subsection sub4 Socket Callback +@code + if(u8Msg == SOCKET_MSG_CONNECT) + { + tstrSocketConnectMsg *pstrConnect = (tstrSocketConnectMsg*)pvMsg; + if(pstrConnect->s8Error == 0) + { + uint8_t acBuffer[GROWL_MSG_SIZE]; + uint16_t u16MsgSize; + + printf("Connect success!\n"); + + u16MsgSize = FormatMsg(u8ClientID, acBuffer); + send(sock, acBuffer, u16MsgSize, 0); + recv(pstrNotification->Socket, (void*)au8Msg,GROWL_DESCRIPTION_MAX_LENGTH, GROWL_RX_TIMEOUT); + u8Retry = GROWL_CONNECT_RETRY; + } + else + { + M2M_DBG("Connection Failed, Error: %d\n",pstrConnect->s8Error"); + shutdown(pstrNotification->Socket); + } + } +@endcode +*/ +int8_t connect(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen); +/*! +@fn \ + int8_t secure(SOCKET sock); + + Converts an (insecure) TCP connection with a remote server into a secure TLS-over-TCP connection. + It may be called after both of the following:\n + - a TCP socket has been created by the @ref socket function, with u8Config parameter set to + @ref SOCKET_CONFIG_SSL_DELAY.\n + - a successful connection has been made on the socket via the @ref connect function. + This is an asynchronous API; the application socket callback function is notified of the result + of the attempt to make the connection secure through the event @ref SOCKET_MSG_SECURE, along + with a structure @ref tstrSocketConnectMsg. + If the attempt to make the connection secure fails, the application should call @ref close(). + +@param[in] sock + Socket ID, corresponding to a connected TCP socket. + +@pre + @ref socket and @ref connect must be called to connect a TCP socket before passing the socket ID to this function. + Value @ref SOCKET_CONFIG_SSL_DELAY must have been set in the u8Config parameter that was passed to @ref socket. + +@see + socket + connect + +@return + The function returns SOCK_ERR_NO_ERROR for successful operations and a negative error value otherwise. + The possible error values are: + - @ref SOCK_ERR_INVALID_ARG + Indicating passing invalid arguments such as negative socket ID. + + - @ref SOCK_ERR_INVALID + Indicating failure to process the request. +*/ +int8_t secure(SOCKET sock); +/*! +@fn \ + int16_t recv(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32Timeoutmsec); + + An asynchronous receive function, used to retrieve data from a TCP stream. + Before calling the recv function, a successful socket connection status must have been received through any of the two socket events + [SOCKET_MSG_CONNECT] or [SOCKET_MSG_ACCEPT], from the socket callback. Hence, indicating that the socket is already connected to a remote + host. + The application receives the required data in response to this asynchronous call through the reception of the event @ref SOCKET_MSG_RECV in the + socket callback. + + Receiving the SOCKET_MSG_RECV message in the callback with zero or negative buffer length indicates the following: + - @ref SOCK_ERR_NO_ERROR : Socket connection closed. The application should now call @ref shutdown(). + - @ref SOCK_ERR_CONN_ABORTED : Socket connection aborted. The application should now call @ref shutdown(). + - @ref SOCK_ERR_TIMEOUT : Socket receive timed out. The socket connection remains open. + +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + + +@param [in] pvRecvBuf + Pointer to a buffer that will hold the received data. The buffer is used + in the recv callback to deliver the received data to the caller. The buffer must + be resident in memory (heap or global buffer). + +@param [in] u16BufLen + The buffer size in bytes. + +@param [in] u32Timeoutmsec + Timeout for the recv function in milli-seconds. If the value is set to ZERO, the timeout + will be set to infinite (the recv function waits forever). If the timeout period is + elapsed with no data received, the socket will get a timeout error. +@pre + - The socket function must be called to allocate a TCP socket before passing the socket ID to the recv function. + - The socket in a connected state is expected to receive data through the socket interface. + +@see socket +@see connect +@see bind +@see listen +@see recvfrom +@see shutdown + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating passing invalid arguments such as negative socket ID or NULL receive buffer. + + - [SOCK_ERR_BUFFER_FULL](@ref SOCK_ERR_BUFFER_FULL) + Indicate socket receive failure. +\section SocketExample7 Example + The example demonstrates a code snippet for the calling of the recv function in the socket callback upon notification of the accept or connect events, and the parsing of the + received data when the SOCKET_MSG_RECV event is received. +@code + + switch(u8Msg) + { + + case SOCKET_MSG_ACCEPT: + { + tstrSocketAcceptMsg *pstrAccept = (tstrSocketAcceptMsg*)pvMsg; + + if(pstrAccept->sock >= 0) + { + recv(pstrAccept->sock,gau8RxBuffer,sizeof(gau8RxBuffer),TEST_RECV_TIMEOUT); + } + else + { + M2M_ERR("accept\n"); + } + } + break; + + + case SOCKET_MSG_RECV: + { + tstrSocketRecvMsg *pstrRx = (tstrSocketRecvMsg*)pvMsg; + + if(pstrRx->s16BufferSize > 0) + { + + recv(sock,gau8RxBuffer,sizeof(gau8RxBuffer),TEST_RECV_TIMEOUT); + } + else + { + printf("Socket recv Error: %d\n",pstrRx->s16BufferSize); + shutdown(sock); + } + } + break; + + default: + break; + } +@endcode +*/ +int16_t recv(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32Timeoutmsec); +/*! +@fn \ + int16_t recvfrom(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32TimeoutSeconds); + Receives data from a UDP Socket. + + The asynchronous recvfrom function is used to retrieve data from a UDP socket. The socket must already be bound to + a local port before a call to the recvfrom function is made (i.e message @ref SOCKET_MSG_BIND is received + with successful status in the socket callback). + + Upon calling the recvfrom function with a successful return code, the application is expected to receive a notification + in the socket callback whenever a message is received through the @ref SOCKET_MSG_RECVFROM event. + + Receiving the SOCKET_MSG_RECVFROM message in the callback with zero, indicates that the socket is closed. + Whereby a negative buffer length indicates one of the socket error codes such as socket timeout error @ref SOCK_ERR_TIMEOUT + + The recvfrom callback can also be used to show the IP address of the remote host that sent the frame by + using the "strRemoteAddr" element in the @ref tstrSocketRecvMsg structure. (refer to the code example) +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + +@param [in] pvRecvBuf + Pointer to a buffer that will hold the received data. The buffer shall be used + in the recv callback to deliver the received data to the caller. The buffer must + be resident in memory (heap or global buffer). + +@param [in] u16BufLen + The buffer size in bytes. + +@param [in] u32TimeoutSeconds + Timeout for the recv function in milli-seconds. If the value is set to ZERO, the timeout + will be set to infinite (the recv function waits forever). + +@pre + - The socket function must be called to allocate a TCP socket before passing the socket ID to the recv function. + - The socket corresponding to the socket ID must be successfully bound to a local port through the call to a @ref bind function. + +@see + socket + bind + shutdown + +@return + The function returns ZERO for successful operations and a negative value otherwise. + The possible error values are: + - [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR) + Indicating that the operation was successful. + + - [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG) + Indicating passing invalid arguments such as negative socket ID or NULL Receive buffer. + + - [SOCK_ERR_BUFFER_FULL](@ref SOCK_ERR_BUFFER_FULL) + Indicate socket receive failure. +\section SocketExample8 Example + The example demonstrates a code snippet for the calling of the recvfrom function in the socket callback upon notification of a successful bind event, and the parsing of the + received data when the SOCKET_MSG_RECVFROM event is received. +@code + switch(u8Msg) + { + + case SOCKET_MSG_BIND: + { + tstrSocketBindMsg *pstrBind = (tstrSocketBindMsg*)pvMsg; + + if(pstrBind != NULL) + { + if(pstrBind->status == 0) + { + recvfrom(sock, gau8SocketTestBuffer, TEST_BUFFER_SIZE, 0); + } + else + { + M2M_ERR("bind\n"); + } + } + } + break; + + + case SOCKET_MSG_RECVFROM: + { + tstrSocketRecvMsg *pstrRx = (tstrSocketRecvMsg*)pvMsg; + + if(pstrRx->s16BufferSize > 0) + { + //get the remote host address and port number + uint16_t u16port = pstrRx->strRemoteAddr.sin_port; + uint32_t strRemoteHostAddr = pstrRx->strRemoteAddr.sin_addr.s_addr; + + printf("Received frame with size = %d.\tHost address=%x, Port number = %d\n\n",pstrRx->s16BufferSize,strRemoteHostAddr, u16port); + + ret = recvfrom(sock,gau8SocketTestBuffer,sizeof(gau8SocketTestBuffer),TEST_RECV_TIMEOUT); + } + else + { + printf("Socket recv Error: %d\n",pstrRx->s16BufferSize); + ret = shutdown(sock); + } + } + break; + + default: + break; + } +@endcode +*/ +int16_t recvfrom(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32Timeoutmsec); +/*! +@fn \ + int16_t send(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t u16Flags); + Asynchronous sending function, used to send data on a TCP/UDP socket. + + Called by the application code when there is outgoing data available required to be sent on a specific socket handler. + The only difference between this function and the similar @ref sendto function, is the type of socket the data is sent on and the parameters passed in. + @ref send function is most commonly called for sockets in a connected state. + After the data is sent, the socket callback function registered using registerSocketCallback(), is expected to receive an event of type + @ref SOCKET_MSG_SEND holding information containing the number of data bytes sent. +@param [in] sock + Socket ID, must hold a non negative value. + A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + +@param [in] pvSendBuffer + Pointer to a buffer holding data to be transmitted. + +@param [in] u16SendLength + The buffer size in bytes. + +@param [in] u16Flags + Not used in the current implementation. + +@pre + Sockets must be initialized using socketInit. \n + + For TCP Socket:\n + Must use a successfully connected Socket (so that the intended recipient address is known ahead of sending the data). + Hence this function is expected to be called after a successful socket connect operation(in client case or accept in the + the server case).\n + + For UDP Socket:\n + UDP sockets most commonly use @ref sendto function, where the destination address is defined. However, in-order to send outgoing data + using the @ref send function, at least one successful call must be made to the @ref sendto function before consecutive calls to the @ref send function, + to ensure that the destination address is saved in the firmware. + +@see + socketInit + recv + sendto + socket + connect + accept + sendto + +@warning + u16SendLength must not exceed @ref SOCKET_BUFFER_MAX_LENGTH. \n + Use a valid socket identifier through the prior call to the @ref socket function. + Must use a valid buffer pointer. + Successful completion of a call to send() does not guarantee delivery of the message, + A negative return value indicates only locally-detected errors + * @return The function shall return @ref SOCK_ERR_NO_ERROR for successful operation and a negative value otherwise. + */ +int16_t send(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t u16Flags); + +/*! + * @fn int16_t sendto(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t flags, struct sockaddr *pstrDestAddr, uint8_t u8AddrLen); + * @brief Asynchronous sending function, used to send data on a UDP socket. + * Called by the application code when there is data required to be sent on a UDP socket. + * @details The application code is expected to receive data from a successfully bound socket node. + * The only difference between this function and the similar @ref send function, is the type of socket the data is received on. + * This function works only with UDP sockets. + * After the data is sent, the socket callback function registered using @ref registerSocketCallback(), is expected to receive an + * event of type @ref SOCKET_MSG_SENDTO. + * @param[in] sock + * Socket ID, must hold a non negative value. + * A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + * @param[in] pvSendBuffer + * Pointer to a buffer holding data to be transmitted. + * A NULL value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + * @param[in] u16SendLength + * The buffer size in bytes. It must not exceed @ref SOCKET_BUFFER_MAX_LENGTH. + * @param[in] flags + * Not used in the current implementation + * @param[in] pstrDestAddr + * The destination address. + * @param[in] u8AddrLen + * Destination address length in bytes. + * Not used in the current implementation, only included for BSD compatibility. + * @pre Sockets must be initialized using @ref socketInit. + * @see + * socketInit + * recvfrom + * sendto + * socket + * connect + * accept + * send + * @warning + * u16SendLength must not exceed @ref SOCKET_BUFFER_MAX_LENGTH.\n + * Use a valid socket (returned from socket). + * A valid buffer pointer must be used (not NULL).\n + * Successful completion of a call to sendto does not guarantee delivery of the message, + * A negative return value indicates only locally-detected errors. + * @return The function returns @ref SOCK_ERR_NO_ERROR for successful operation and a negative value (indicating the error) otherwise. +*/ +int16_t sendto(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t flags, struct sockaddr *pstrDestAddr, uint8_t u8AddrLen); + +/*! + * @fn int8_t shutdown(SOCKET sock); + * @brief Synchronous shutdown function, releases all the socket assigned resources. + * @param[in] sock + * Socket ID, must hold a non negative value. + * A negative value will return a socket error @ref SOCK_ERR_INVALID_ARG. Indicating that an invalid argument is passed in. + * @pre + * Sockets must be initialized through the call of the socketInit function. + * @ref shutdown is called only for valid socket identifiers created through the @ref socket function. + * @warning If @ref shutdown is called while there are still pending messages (sent or received ) they will be discarded. + * @see socketInit, socket + * @return The function returned @ref SOCK_ERR_NO_ERROR for successful operation and a negative value (indicating the error) otherwise. + */ +int8_t shutdown(SOCKET sock); + +/*! + * @fn int8_t gethostbyname(const char *pcHostName); + * Asynchronous DNS resolving function. This function uses DNS to resolve a domain name to the corresponding IP address. + * A call to this function will cause a DNS request to be sent and the response will be delivered to the DNS callback + * function registered using registerSocketCallback. + * @param[in] pcHostName + * NULL terminated string containing the domain name for the remote host. + * Its size must not exceed [HOSTNAME_MAX_SIZE](@ref HOSTNAME_MAX_SIZE). + * @see registerSocketCallback + * @warning + * Successful completion of a call to gethostbyname() does not guarantee success of the DNS request, + * a negative return value indicates only locally-detected errors + * @return + * - @ref SOCK_ERR_NO_ERROR + * - @ref SOCK_ERR_INVALID_ARG + */ +int8_t gethostbyname(const char *pcHostName); + +/*! +@fn \ + int8_t setsockopt(SOCKET socket, uint8_t u8Level, uint8_t option_name, + const void *option_value, uint16_t u16OptionLen); + + The setsockopt() function shall set the option specified by the option_name + argument, at the protocol level specified by the level argument, to the value + pointed to by the option_value argument for the socket specified by the socket argument. + +@param[in] socket + Socket handler. + +@param[in] u8Level + Protocol level.\n + Supported protocol levels are @ref SOL_SOCKET, @ref SOL_SSL_SOCKET and @ref SOL_RAW. + +@param[in] option_name + Option to be set.\n + For protocol level @ref SOL_SOCKET, the supported option names are:\n + @ref SO_SET_UDP_SEND_CALLBACK\n + @ref SO_TCP_KEEPALIVE\n + @ref SO_TCP_KEEPIDLE\n + @ref SO_TCP_KEEPINTVL\n + @ref SO_TCP_KEEPCNT\n + For protocol level @ref SOL_SSL_SOCKET, the supported option names are:\n + @ref SO_SSL_BYPASS_X509_VERIF\n + @ref SO_SSL_SNI\n + @ref SO_SSL_ENABLE_SESSION_CACHING\n + @ref SO_SSL_ENABLE_CERTNAME_VALIDATION\n + @ref SO_SSL_ALPN\n + For protocol level @ref SOL_RAW, the supported option names are:\n + @ref SO_ICMP_FILTER\n + +@param[in] option_value + Pointer to user provided value. + +@param[in] u16OptionLen + Length of the option value in bytes. Refer to each option documentation for the required length. + +@return + The function shall return \ref SOCK_ERR_NO_ERROR for successful operation + and a negative value (indicating the error) otherwise. +*/ +int8_t setsockopt(SOCKET socket, uint8_t u8Level, uint8_t option_name, + const void *option_value, uint16_t u16OptionLen); + +/*! + * @fn int8_t getsockopt(SOCKET sock, uint8_t u8Level, uint8_t u8OptName, const void *pvOptValue, uint8_t *pu8OptLen); + * @brief Get socket options retrieves. + * This Function isn't implemented yet but this is the form that will be released later. + * @param[in] sock + * Socket Identifier. + * @param[in] u8Level + * The protocol level of the option. + * @param[in] u8OptName + * The u8OptName argument specifies a single option to get. + * @param[out] pvOptValue + * The pvOptValue argument contains pointer to a buffer containing the option value. + * @param[out] pu8OptLen + * Option value buffer length. + * @return The function shall return ZERO for successful operation and a negative value otherwise. + */ +int8_t getsockopt(SOCKET sock, uint8_t u8Level, uint8_t u8OptName, const void *pvOptValue, uint8_t *pu8OptLen); + +/*! + * @fn int8_t m2m_ping_req(uint32_t u32DstIP, uint8_t u8TTL, tpfPingCb fpPingCb); + * @brief The function request to send ping request to the given IP Address. + * @param[in] u32DstIP + * Target Destination IP Address for the ping request. It must be represented in Network byte order. + * The function @ref nmi_inet_addr could be used to translate the dotted decimal notation IP + * to its Network bytes order integer representative. + * @param[in] u8TTL + * IP TTL value for the ping request. If set to ZERO, the default value SHALL be used. + * @param[in] fpPingCb + * Callback will be called to deliver the ping statistics. + + * @warning This API should only be used to request one ping at a time; calling this API invalidates callbacks + * for previous ping requests. + * @see nmi_inet_addr + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t m2m_ping_req(uint32_t u32DstIP, uint8_t u8TTL, tpfPingCb fpPingCb); + +/*! + * @fn int8_t set_alpn_list(SOCKET sock, const char *pcProtocolList); + * + * This function sets the protocol list used for application-layer protocol negotiation (ALPN). + * If used, it must be called after creating a SSL socket (using @ref socket) and before + * connecting/binding (using @ref connect or @ref bind) or securing (using @ref secure). + * + * @param[in] sock + * Socket ID obtained by a call to @ref socket. This is the SSL socket to which + * the ALPN list applies. + * + * @param[in] pcProtocolList + * Pointer to the list of protocols available in the application. \n + * The entries in the list must: \n + * - be separated with ' ' (space). \n + * - not contain ' ' (space) or '\0' (NUL). \n + * - be non-zero length. \n + * . + * The list itself must: \n + * - be terminated with '\0' (NUL). \n + * - be no longer than @ref ALPN_LIST_MAX_APP_LENGTH, including separators (spaces) and terminator (NUL). \n + * - contain at least one entry. + * + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + * + * \section SocketExample9 Example + * The example demonstrates an application using @ref set_alpn_list and @ref get_alpn_index to negotiate secure HTTP/2 + * (with fallback option of HTTP/1.1). + + * \subsection sub5 Main Function + * @code + * SOCKET TcpClientSocket = socket(AF_INET, SOCK_STREAM, SOCKET_CONFIG_SSL_ON); + * if (TcpClientSocket >= 0) + * { + * struct sockaddr_in Serv_Addr = { + * .sin_family = AF_INET, + * .sin_port = _htons(1234), + * .sin_addr.s_addr = inet_addr(SERVER) + * }; + * set_alpn_list(TcpClientSocket, "h2 http/1.1"); + * connect(TcpClientSocket, &Serv_Addr, sizeof(Serv_Addr)); + * } + * @endcode + * \subsection sub6 Socket Callback + * @code + * if(u8Msg == SOCKET_MSG_CONNECT) + * { + * tstrSocketConnectMsg *pstrConnect = (tstrSocketConnectMsg*)pvMsg; + * if(pstrConnect->s8Error == 0) + * { + * uint8_t alpn_index = get_alpn_index(pstrConnect->sock); + * switch (alpn_index) + * { + * case 1: + * printf("Negotiated HTTP/2\n"); + * break; + * case 2: + * printf("Negotiated HTTP/1.1\n"); + * break; + * case 0: + * printf("Protocol negotiation did not occur\n"); + * break; + * } + * } + * } + * @endcode +*/ +int8_t set_alpn_list(SOCKET sock, const char *pcProtocolList); +/*! + * @fn int8_t get_alpn_index(SOCKET sock); + * + * This function gets the index of the protocol negotiated via ALPN. + * It should be called when a SSL socket connection succeeds, in order to determine which + * application-layer protocol must be used. + * + * @param[in] sock + * Socket ID obtained by a call to @ref socket. This is the SSL socket to which + * the ALPN applies. + * + * @return The function returns:\n + * - >0: 1-based index of negotiated protocol with respect to the list previously provided to @ref set_alpn_list.\n + * - 0: No negotiation occurred (eg TLS peer did not support ALPN).\n + * - <0: Invalid parameters (socket is not in use, or not an SSL socket).\n + * + * @see @ref SocketExample9 +*/ +int8_t get_alpn_index(SOCKET sock); + +/*! + *@fn int8_t get_error_detail(SOCKET sock, tstrSockErr *pstrErr); + * + * This function gets detail about a socket failure. The application can call this when notified + * of a socket failure via @ref SOCKET_MSG_CONNECT or @ref SOCKET_MSG_RECV. + * If used, it must be called before @ref shutdown. + + * @param[in] sock + * Socket ID obtained by a call to @ref socket. + * + * @param[out] pstrErr + * Pointer to structure to be populated with the details of the socket failure. + * + * @return The function returns @ref SOCK_ERR_NO_ERROR if the request is successful. In this case pstrErr + * has been populated. + * The function returns a negative value if the request is not successful. In this case pstrErr + * has not been populated. +*/ +int8_t get_error_detail(SOCKET sock, tstrSockErr *pstrErr); +/**@}*/ // SocketAPI + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __SOCKET_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/socket/source/inet_addr.c b/ChaletLora.X/Source/winc3400_142/socket/source/inet_addr.c new file mode 100644 index 0000000..5c0b682 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/source/inet_addr.c @@ -0,0 +1,119 @@ +/******************************************************************************* + WINC3400 Wireless Driver + + File Name: + inet_addr.c + + Summary: + Implementation of standard inet_addr function. + + Description: + Implementation of standard inet_addr function. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include +#include "socket.h" + +in_addr_t inet_addr(const char *cp) +{ + uint8_t i,l; + uint16_t t; + uint32_t ip; + char c; + + ip = 0; + + for (i=0; i<4; i++) + { + t = 0; + ip >>= 8; + + // Count non-delimiter or terminator characters + + for (l=0; l<4; l++) + { + c = cp[l]; + + if (('.' == c) || ('\0' == c)) + { + break; + } + } + + // There must be 1 to 3 characters + + if ((0 == l) || (4 == l)) + { + return 0; + } + + c = *cp++; + + // First digit can't be '0' unless it's the only one + + if ((l > 1) && (c == '0')) + { + return 0; + } + + while(l--) + { + // Each digit must be decimal + + if ((c < '0') || (c > '9')) + { + return 0; + } + + t = (t * 10) + (c - '0'); + + c = *cp++; + } + + // Total accumulated number must be less than 256 + + if (t > 255) + { + return 0; + } + + // Pack number into 32 bit IP address representation + + ip |= ((uint32_t)t << 24); + + // First three numbers must terminate with '.', last one with '\0's + + if ((('\0' == c) && (i != 3)) || (('\0' != c) && (i == 3))) + { + return 0; + } + } + + return ip; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/socket/source/inet_ntop.c b/ChaletLora.X/Source/winc3400_142/socket/source/inet_ntop.c new file mode 100644 index 0000000..bdc190a --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/source/inet_ntop.c @@ -0,0 +1,104 @@ +/******************************************************************************* + WINC3400 Wireless Driver + + File Name: + inet_ntop.c + + Summary: + Implementation of standard inet_ntop function. + + Description: + Implementation of standard inet_ntop function. + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include +#include +#include +#include "socket.h" + +const char *inet_ntop(int af, const void *src, char *dst, size_t size) +{ + uint8_t i, v, t, c, n; + char *rp = dst; + uint32_t ip = ((struct in_addr*)src)->s_addr; + + if ((NULL == src) || (NULL == dst) || (size < 16)) + { + return NULL; + } + + for (i=0; i<4; i++) + { + t = ip; + v = 100; + + // Check for zero + + if (t > 0) + { + n = 0; + + do + { + c = '0'; + while (t >= v) + { + c++; + t -= v; + } + v /= 10; + + if (('0' != c) || (n > 0)) + { + *dst++ = c; + + n++; + } + } + while (v > 0); + } + else + { + *dst++ = '0'; + } + + if (3 == i) + { + *dst++ = '\0'; + } + else + { + *dst++ = '.'; + } + + ip >>= 8; + } + + return rp; +} + +//DOM-IGNORE-END diff --git a/ChaletLora.X/Source/winc3400_142/socket/source/socket.c b/ChaletLora.X/Source/winc3400_142/socket/source/socket.c new file mode 100644 index 0000000..10e8e33 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/socket/source/socket.c @@ -0,0 +1,1261 @@ +/******************************************************************************* + File Name: + socket.c + + Summary: + WINC3400 BSD Compatible Socket Interface + + Description: + WINC3400 BSD Compatible Socket Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +INCLUDES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#include "nm_bsp.h" +#include "socket.h" +#include "m2m_hif.h" +#include "m2m_socket_host_if.h" + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +MACROS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +#define TLS_RECORD_HEADER_LENGTH (5) +#define ETHERNET_HEADER_OFFSET (34) +#define ETHERNET_HEADER_LENGTH (14) +#define TCP_IP_HEADER_LENGTH (40) +#define UDP_IP_HEADER_LENGTH (28) + +#define IP_PACKET_OFFSET (ETHERNET_HEADER_LENGTH + ETHERNET_HEADER_OFFSET - M2M_HIF_HDR_OFFSET) + +#define TCP_TX_PACKET_OFFSET (IP_PACKET_OFFSET + TCP_IP_HEADER_LENGTH) +#define UDP_TX_PACKET_OFFSET (IP_PACKET_OFFSET + UDP_IP_HEADER_LENGTH) +#define SSL_TX_PACKET_OFFSET (TCP_TX_PACKET_OFFSET + TLS_RECORD_HEADER_LENGTH) + +#define SOCKET_REQUEST(reqID, reqArgs, reqSize, reqPayload, reqPayloadSize, reqPayloadOffset) \ + hif_send(M2M_REQ_GROUP_IP, reqID, reqArgs, reqSize, reqPayload, reqPayloadSize, reqPayloadOffset) + + +#define SSL_FLAGS_ACTIVE NBIT0 +#define SSL_FLAGS_BYPASS_X509 NBIT1 +#define SSL_FLAGS_CACHE_SESSION NBIT4 +#define SSL_FLAGS_CHECK_CERTNAME NBIT6 +#define SSL_FLAGS_DELAY NBIT7 + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +PRIVATE DATA TYPES +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + + +/*! +* @brief +*/ +typedef struct { + SOCKET sock; + uint8_t u8Dummy; + uint16_t u16SessionID; +} tstrCloseCmd; + + +/*! +* @brief +*/ +typedef struct { + uint8_t *pu8UserBuffer; + uint16_t u16UserBufferSize; + uint16_t u16SessionID; + uint16_t u16DataOffset; + uint8_t bIsUsed; + uint8_t u8SSLFlags; + uint8_t bIsRecvPending; + uint8_t u8AlpnStatus; + uint8_t u8ErrSource; + uint8_t u8ErrCode; +} tstrSocket; + +/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +GLOBALS +*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ + +volatile tstrSocket gastrSockets[MAX_SOCKET]; +volatile uint16_t gu16SessionID = 0; + +volatile tpfAppSocketCb gpfAppSocketCb; +volatile tpfAppResolveCb gpfAppResolveCb; +volatile uint8_t gbSocketInit = 0; + +static tpfPingCb gfpPingCb = NULL; +static uint32_t gu32PingId = 0; + +/********************************************************************* +Function + Socket_ReadSocketData + +Description + Callback function used by the WINC3400 driver to deliver messages + for socket layer. + +Return + None. +*********************************************************************/ +static void Socket_ReadSocketData(SOCKET sock, tstrSocketRecvMsg *pstrRecv, uint8_t u8SocketMsg, + uint32_t u32StartAddress, uint16_t u16ReadCount) +{ + uint32_t u32Address = u32StartAddress; + uint16_t u16Read; + int16_t s16Diff; + + pstrRecv->u16RemainingSize = u16ReadCount; + if((u16ReadCount > 0) && (gastrSockets[sock].pu8UserBuffer != NULL) && (gastrSockets[sock].u16UserBufferSize > 0) && (gastrSockets[sock].bIsUsed == 1)) + { + u16Read = u16ReadCount; + s16Diff = u16Read - gastrSockets[sock].u16UserBufferSize; + if(s16Diff > 0) + { + /* We don't expect to be here. Firmware only sends data to the driver according to the application's buffer size. + * But it is worth keeping this check, eg in case the application calls recv again with a smaller buffer size, or in case of HIF hacking. */ + u16Read = gastrSockets[sock].u16UserBufferSize; + } + + if(hif_receive(u32Address, gastrSockets[sock].pu8UserBuffer, u16Read, 1) == M2M_SUCCESS) + { + pstrRecv->pu8Buffer = gastrSockets[sock].pu8UserBuffer; + pstrRecv->s16BufferSize = u16Read; + pstrRecv->u16RemainingSize -= u16Read; + + gastrSockets[sock].u16UserBufferSize = 0; + gastrSockets[sock].pu8UserBuffer = NULL; + + if(gpfAppSocketCb) + gpfAppSocketCb(sock, u8SocketMsg, pstrRecv); + } + else + { + M2M_ERR("Current <%d>\r\n", u16ReadCount); + } + } +} +/********************************************************************* +Function + m2m_ip_cb + +Description + Callback function used by the NMC1000 driver to deliver messages + for socket layer. + +Return + None. +*********************************************************************/ +static void m2m_ip_cb(uint8_t u8OpCode, uint16_t u16BufferSize, uint32_t u32Address) +{ + if(u8OpCode == SOCKET_CMD_BIND) + { + tstrBindReply strBindReply; + tstrSocketBindMsg strBind; + + if(hif_receive(u32Address, (uint8_t*)&strBindReply, sizeof(tstrBindReply), 0) == M2M_SUCCESS) + { + strBind.status = strBindReply.s8Status; + if(gpfAppSocketCb) + gpfAppSocketCb(strBindReply.sock, SOCKET_MSG_BIND, &strBind); + } + } + else if(u8OpCode == SOCKET_CMD_LISTEN) + { + tstrListenReply strListenReply; + tstrSocketListenMsg strListen; + if(hif_receive(u32Address, (uint8_t*)&strListenReply, sizeof(tstrListenReply), 0) == M2M_SUCCESS) + { + strListen.status = strListenReply.s8Status; + if(gpfAppSocketCb) + gpfAppSocketCb(strListenReply.sock, SOCKET_MSG_LISTEN, &strListen); + } + } + else if(u8OpCode == SOCKET_CMD_ACCEPT) + { + tstrAcceptReply strAcceptReply; + tstrSocketAcceptMsg strAccept; + if(hif_receive(u32Address, (uint8_t*)&strAcceptReply, sizeof(tstrAcceptReply), 0) == M2M_SUCCESS) + { + if((strAcceptReply.sConnectedSock >= 0) && (strAcceptReply.sConnectedSock < MAX_SOCKET)) + { + gastrSockets[strAcceptReply.sConnectedSock].u8SSLFlags = 0; + gastrSockets[strAcceptReply.sConnectedSock].bIsUsed = 1; + + /* The session ID is used to distinguish different socket connections + by comparing the assigned session ID to the one reported by the firmware*/ + ++gu16SessionID; + if(gu16SessionID == 0) + ++gu16SessionID; + + gastrSockets[strAcceptReply.sConnectedSock].u16SessionID = gu16SessionID; + M2M_DBG("Socket %d session ID = %d\r\n", strAcceptReply.sConnectedSock, gu16SessionID); + } + strAccept.sock = strAcceptReply.sConnectedSock; + strAccept.strAddr.sin_family = AF_INET; + strAccept.strAddr.sin_port = strAcceptReply.strAddr.u16Port; + strAccept.strAddr.sin_addr.s_addr = strAcceptReply.strAddr.u32IPAddr; + if(gpfAppSocketCb) + gpfAppSocketCb(strAcceptReply.sListenSock, SOCKET_MSG_ACCEPT, &strAccept); + } + } + else if((u8OpCode == SOCKET_CMD_CONNECT) || (u8OpCode == SOCKET_CMD_SSL_CONNECT) || (u8OpCode == SOCKET_CMD_SSL_CONNECT_ALPN)) + { + /* Note that for successful connections the fw always sends SOCKET_CMD_CONNECT, even for SSL connections. */ + tstrConnectAlpnReply strConnectAlpnReply = {{0}}; + tstrSocketConnectMsg strConnMsg; + uint16_t u16HifSz = sizeof(tstrConnectAlpnReply); + if(u8OpCode != SOCKET_CMD_SSL_CONNECT_ALPN) + u16HifSz = sizeof(tstrConnectReply); + if(hif_receive(u32Address, (uint8_t*)&strConnectAlpnReply, u16HifSz, 0) == M2M_SUCCESS) + { + if((strConnectAlpnReply.strConnReply.sock >= 0) && (strConnectAlpnReply.strConnReply.sock < MAX_SOCKET)) + { + uint8_t u8Msg = SOCKET_MSG_CONNECT; + + strConnMsg.sock = strConnectAlpnReply.strConnReply.sock; + strConnMsg.s8Error = strConnectAlpnReply.strConnReply.s8Error; + + /* If the SOCKET_CMD_SSL_CONNECT op code is received and the socket was already connected, then the + callback corresponds to an attempt to make the socket secure. */ + if(0 != gastrSockets[strConnMsg.sock].u16DataOffset) + { + u8Msg = SOCKET_MSG_SECURE; + } + if(strConnectAlpnReply.strConnReply.s8Error == SOCK_ERR_NO_ERROR) + { + gastrSockets[strConnMsg.sock].u16DataOffset = strConnectAlpnReply.strConnReply.u16AppDataOffset - M2M_HIF_HDR_OFFSET; + gastrSockets[strConnMsg.sock].u8AlpnStatus = strConnectAlpnReply.u8AppProtocolIdx; + } + else + { + gastrSockets[strConnMsg.sock].u8ErrSource = strConnectAlpnReply.strConnReply.u8ErrSource; + gastrSockets[strConnMsg.sock].u8ErrCode = strConnectAlpnReply.strConnReply.u8ErrCode; + } + if(gpfAppSocketCb) + gpfAppSocketCb(strConnMsg.sock, u8Msg, &strConnMsg); + } + } + } + else if(u8OpCode == SOCKET_CMD_DNS_RESOLVE) + { + tstrDnsReply strDnsReply; + if(hif_receive(u32Address, (uint8_t*)&strDnsReply, sizeof(tstrDnsReply), 0) == M2M_SUCCESS) + { + strDnsReply.u32HostIP = strDnsReply.u32HostIP; + if(gpfAppResolveCb) + gpfAppResolveCb((uint8_t*)strDnsReply.acHostName, strDnsReply.u32HostIP); + } + } + else if((u8OpCode == SOCKET_CMD_RECV) || (u8OpCode == SOCKET_CMD_RECVFROM) || (u8OpCode == SOCKET_CMD_SSL_RECV)) + { + SOCKET sock; + int16_t s16RecvStatus; + tstrRecvReply strRecvReply; + uint16_t u16ReadSize; + tstrSocketRecvMsg strRecvMsg; + uint8_t u8CallbackMsgID = SOCKET_MSG_RECV; + uint16_t u16DataOffset; + + if(u8OpCode == SOCKET_CMD_RECVFROM) + u8CallbackMsgID = SOCKET_MSG_RECVFROM; + + /* Read RECV REPLY data structure. + */ + u16ReadSize = sizeof(tstrRecvReply); + if(hif_receive(u32Address, (uint8_t*)&strRecvReply, u16ReadSize, 0) == M2M_SUCCESS) + { + if((strRecvReply.sock >= 0) && (strRecvReply.sock < MAX_SOCKET)) + { + uint16_t u16SessionID = 0; + + sock = strRecvReply.sock; + u16SessionID = strRecvReply.u16SessionID; + M2M_DBG("recv callback session ID = %d\r\n", u16SessionID); + + /* Reset the Socket RX Pending Flag. + */ + gastrSockets[sock].bIsRecvPending = 0; + + s16RecvStatus = NM_BSP_B_L_16(strRecvReply.s16RecvStatus); + u16DataOffset = NM_BSP_B_L_16(strRecvReply.u16DataOffset); + strRecvMsg.strRemoteAddr.sin_port = strRecvReply.strRemoteAddr.u16Port; + strRecvMsg.strRemoteAddr.sin_addr.s_addr = strRecvReply.strRemoteAddr.u32IPAddr; + + if(u16SessionID == gastrSockets[sock].u16SessionID) + { + if((s16RecvStatus > 0) && (s16RecvStatus < u16BufferSize)) + { + /* Skip incoming bytes until reaching the Start of Application Data. + */ + u32Address += u16DataOffset; + + /* Read the Application data and deliver it to the application callback in + the given application buffer. Firmware only sends data up to + the size of the application buffer. For TCP, a new call to recv is needed + in order to retrieve any outstanding data from firmware. + */ + u16ReadSize = (uint16_t)s16RecvStatus; + Socket_ReadSocketData(sock, &strRecvMsg, u8CallbackMsgID, u32Address, u16ReadSize); + } + else + { + /* Don't tidy up here. Application must call shutdown(). + */ + strRecvMsg.s16BufferSize = s16RecvStatus; + strRecvMsg.pu8Buffer = NULL; + if(gpfAppSocketCb) + gpfAppSocketCb(sock, u8CallbackMsgID, &strRecvMsg); + } + } + else + { + M2M_DBG("Discard recv callback %d %d\r\n", u16SessionID, gastrSockets[sock].u16SessionID); + if(u16ReadSize < u16BufferSize) + hif_receive(0, NULL, 0, 1); + } + } + } + } + else if((u8OpCode == SOCKET_CMD_SEND) || (u8OpCode == SOCKET_CMD_SENDTO) || (u8OpCode == SOCKET_CMD_SSL_SEND)) + { + SOCKET sock; + int16_t s16Rcvd; + tstrSendReply strReply; + uint8_t u8CallbackMsgID = SOCKET_MSG_SEND; + + if(u8OpCode == SOCKET_CMD_SENDTO) + u8CallbackMsgID = SOCKET_MSG_SENDTO; + + if(hif_receive(u32Address, (uint8_t*)&strReply, sizeof(tstrSendReply), 0) == M2M_SUCCESS) + { + if((strReply.sock >=0) && (strReply.sock < MAX_SOCKET)) + { + uint16_t u16SessionID = 0; + + sock = strReply.sock; + u16SessionID = strReply.u16SessionID; + M2M_DBG("send callback session ID = %d\r\n", u16SessionID); + + s16Rcvd = NM_BSP_B_L_16(strReply.s16SentBytes); + + if(u16SessionID == gastrSockets[sock].u16SessionID) + { + if(gpfAppSocketCb) + gpfAppSocketCb(sock, u8CallbackMsgID, &s16Rcvd); + } + else + { + M2M_DBG("Discard send callback %d %d\r\n", u16SessionID, gastrSockets[sock].u16SessionID); + } + } + } + } + else if(u8OpCode == SOCKET_CMD_PING) + { + tstrPingReply strPingReply; + if(hif_receive(u32Address, (uint8_t*)&strPingReply, sizeof(tstrPingReply), 1) == M2M_SUCCESS) + { + if((gu32PingId == strPingReply.u32CmdPrivate) && (gfpPingCb != NULL)) + { + gfpPingCb(strPingReply.u32IPAddr, strPingReply.u32RTT, strPingReply.u8ErrorCode); + } + } + } +} +/********************************************************************* +Function + socketInit + +Description + +Return + None. +*********************************************************************/ +void socketInit(void) +{ + if(gbSocketInit==0) + { + memset((uint8_t*)gastrSockets, 0, MAX_SOCKET * sizeof(tstrSocket)); + hif_register_cb(M2M_REQ_GROUP_IP, m2m_ip_cb); + gbSocketInit=1; + gu16SessionID = 0; + } +} + +/********************************************************************* +Function + socketDeinit + +Description + +Return + None. +*********************************************************************/ +void socketDeinit(void) +{ + memset((uint8_t*)gastrSockets, 0, MAX_SOCKET * sizeof(tstrSocket)); + hif_register_cb(M2M_REQ_GROUP_IP, NULL); + gpfAppSocketCb = NULL; + gpfAppResolveCb = NULL; + gbSocketInit = 0; +} + + +/********************************************************************* +Function + registerSocketCallback + +Description + +Return + None. +*********************************************************************/ +void registerSocketCallback(tpfAppSocketCb pfAppSocketCb, tpfAppResolveCb pfAppResolveCb) +{ + gpfAppSocketCb = pfAppSocketCb; + gpfAppResolveCb = pfAppResolveCb; +} +void registerSocketEventCallback(tpfAppSocketCb pfAppSocketCb) +{ + gpfAppSocketCb = pfAppSocketCb; +} +void registerSocketResolveCallback(tpfAppResolveCb pfAppResolveCb) +{ + gpfAppResolveCb = pfAppResolveCb; +} + +/********************************************************************* +Function + socket + +Description + Creates a socket. + +Return + - Negative value for error. + - ZERO or positive value as a socket ID if successful. +*********************************************************************/ +SOCKET socket(uint16_t u16Domain, uint8_t u8Type, uint8_t u8Config) +{ + SOCKET sock = -1; + uint8_t u8SockID; + uint8_t u8Count; + volatile tstrSocket *pstrSock = NULL; + static volatile uint8_t u8NextTcpSock = 0; + static volatile uint8_t u8NextUdpSock = 0; + + /* The only supported family is the AF_INET for UDP and TCP transport layer protocols. */ + if(u16Domain == AF_INET) + { + if(u8Type == SOCK_STREAM) + { + for(u8Count = 0; u8Count < TCP_SOCK_MAX; u8Count ++) + { + u8SockID = u8NextTcpSock; + pstrSock = &gastrSockets[u8NextTcpSock]; + u8NextTcpSock = (u8NextTcpSock + 1) % TCP_SOCK_MAX; + if(!pstrSock->bIsUsed) + { + sock = (SOCKET)u8SockID; + memset((uint8_t*)pstrSock, 0, sizeof(tstrSocket)); + /* In the current implementation, SSL flags only have meaning for the TCP socket case. */ + if(u8Config != SOCKET_CONFIG_SSL_OFF) + { + tstrSSLSocketCreateCmd strSSLCreate; + + strSSLCreate.sslSock = sock; + SOCKET_REQUEST(SOCKET_CMD_SSL_CREATE, (uint8_t*)&strSSLCreate, sizeof(tstrSSLSocketCreateCmd), 0, 0, 0); + + pstrSock->u8SSLFlags = SSL_FLAGS_ACTIVE; + if(u8Config == SOCKET_CONFIG_SSL_DELAY) + pstrSock->u8SSLFlags |= SSL_FLAGS_DELAY; + } + break; + } + } + } + else if(u8Type == SOCK_DGRAM) + { + volatile tstrSocket *pastrUDPSockets = &gastrSockets[TCP_SOCK_MAX]; + for(u8Count = 0; u8Count < UDP_SOCK_MAX; u8Count ++) + { + u8SockID = u8NextUdpSock; + pstrSock = &pastrUDPSockets[u8NextUdpSock]; + u8NextUdpSock = (u8NextUdpSock + 1) % UDP_SOCK_MAX; + if(!pstrSock->bIsUsed) + { + sock = (SOCKET)(u8SockID + TCP_SOCK_MAX); + memset((uint8_t*)pstrSock, 0, sizeof(tstrSocket)); + break; + } + } + } + else if(u8Type == SOCK_RAW) + { + /* Only raw IP packets are supported */ + if(u8Config == SOCKET_CONFIG_IPPROTO_RAW) + { + pstrSock = &gastrSockets[RAW_SOCK_ID]; + if(!pstrSock->bIsUsed) + { + /* Socket identified by RAW_SOCK_ID is reserved */ + sock = (SOCKET)RAW_SOCK_ID; + memset((uint8_t*)pstrSock, 0, sizeof(tstrSocket)); + } + } + } + + if(sock >= 0) + { + pstrSock->bIsUsed = 1; + + /* The session ID is used to distinguish different socket connections + by comparing the assigned session ID to the one reported by the firmware*/ + ++gu16SessionID; + if(gu16SessionID == 0) + ++gu16SessionID; + + pstrSock->u16SessionID = gu16SessionID; + M2M_INFO("Socket %d session ID = %d\r\n", sock, gu16SessionID); + } + } + return sock; +} +/********************************************************************* +Function + bind + +Description + Request to bind a socket on a local address. + +Return +*********************************************************************/ +int8_t bind(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if((pstrAddr != NULL) && (sock >= 0) && (sock < MAX_SOCKET) && (gastrSockets[sock].bIsUsed == 1) && (u8AddrLen != 0)) + { + tstrBindCmd strBind; + + /* Build the bind request. */ + strBind.sock = sock; + memcpy((uint8_t *)&strBind.strAddr, (uint8_t *)pstrAddr, sizeof(tstrSockAddr)); + + strBind.strAddr.u16Family = strBind.strAddr.u16Family; + strBind.strAddr.u16Port = strBind.strAddr.u16Port; + strBind.strAddr.u32IPAddr = strBind.strAddr.u32IPAddr; + strBind.u16SessionID = gastrSockets[sock].u16SessionID; + + /* Send the request. */ + s8Ret = SOCKET_REQUEST(SOCKET_CMD_BIND, (uint8_t*)&strBind, sizeof(tstrBindCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + return s8Ret; +} +/********************************************************************* +Function + listen + +Description + + +Return +*********************************************************************/ +int8_t listen(SOCKET sock, uint8_t backlog) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + + if((sock >= 0) && (sock < MAX_SOCKET) && (gastrSockets[sock].bIsUsed == 1)) + { + tstrListenCmd strListen; + + strListen.sock = sock; + strListen.u8BackLog = backlog; + strListen.u16SessionID = gastrSockets[sock].u16SessionID; + + s8Ret = SOCKET_REQUEST(SOCKET_CMD_LISTEN, (uint8_t*)&strListen, sizeof(tstrListenCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + return s8Ret; +} +/********************************************************************* +Function + accept + +Description + +Return +*********************************************************************/ +int8_t accept(SOCKET sock, struct sockaddr *addr, uint8_t *addrlen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + + if((sock >= 0) && (sock < MAX_SOCKET) && (gastrSockets[sock].bIsUsed == 1)) + { + s8Ret = SOCK_ERR_NO_ERROR; + } + return s8Ret; +} +/********************************************************************* +Function + connect + +Description + Connect to a remote TCP Server. + +Return +*********************************************************************/ +int8_t connect(SOCKET sock, struct sockaddr *pstrAddr, uint8_t u8AddrLen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if((sock >= 0) && (sock < MAX_SOCKET) && (pstrAddr != NULL) && (gastrSockets[sock].bIsUsed == 1) && (u8AddrLen != 0)) + { + tstrConnectCmd strConnect; + uint8_t u8Cmd = SOCKET_CMD_CONNECT; + if((gastrSockets[sock].u8SSLFlags) & SSL_FLAGS_ACTIVE) + { + u8Cmd = SOCKET_CMD_SSL_CONNECT; + strConnect.u8SslFlags = gastrSockets[sock].u8SSLFlags; + } + strConnect.sock = sock; + memcpy((uint8_t *)&strConnect.strAddr, (uint8_t *)pstrAddr, sizeof(tstrSockAddr)); + + strConnect.u16SessionID = gastrSockets[sock].u16SessionID; + s8Ret = SOCKET_REQUEST(u8Cmd, (uint8_t*)&strConnect, sizeof(tstrConnectCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + return s8Ret; +} +/********************************************************************* +Function + secure + +Description + Make secure (TLS) an open TCP client connection. + +Return +*********************************************************************/ +int8_t secure(SOCKET sock) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if((sock >= 0) && (sock < MAX_SOCKET) && (gastrSockets[sock].bIsUsed == 1)) + { + if( + (gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) + && (gastrSockets[sock].u8SSLFlags & SSL_FLAGS_DELAY) + && (gastrSockets[sock].u16DataOffset != 0) + ) + { + tstrConnectCmd strConnect = {0}; + + gastrSockets[sock].u8SSLFlags &= ~SSL_FLAGS_DELAY; + strConnect.u8SslFlags = gastrSockets[sock].u8SSLFlags; + strConnect.sock = sock; + strConnect.u16SessionID = gastrSockets[sock].u16SessionID; + + s8Ret = SOCKET_REQUEST(SOCKET_CMD_SECURE, (uint8_t*)&strConnect, sizeof(tstrConnectCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + } + return s8Ret; +} +/********************************************************************* +Function + send + +Description + +Return +*********************************************************************/ +int16_t send(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t flags) +{ + int16_t s16Ret = SOCK_ERR_INVALID_ARG; + + if((sock >= 0) && (sock < MAX_SOCKET) && (pvSendBuffer != NULL) && (u16SendLength <= SOCKET_BUFFER_MAX_LENGTH) && (gastrSockets[sock].bIsUsed == 1)) + { + uint16_t u16DataOffset; + tstrSendCmd strSend; + uint8_t u8Cmd; + + u8Cmd = SOCKET_CMD_SEND; + u16DataOffset = TCP_TX_PACKET_OFFSET; + + strSend.sock = sock; + strSend.u16DataSize = NM_BSP_B_L_16(u16SendLength); + strSend.u16SessionID = gastrSockets[sock].u16SessionID; + + if(sock >= TCP_SOCK_MAX) + { + u16DataOffset = UDP_TX_PACKET_OFFSET; + } + if( + (gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) + && (!(gastrSockets[sock].u8SSLFlags & SSL_FLAGS_DELAY)) + ) + { + u8Cmd = SOCKET_CMD_SSL_SEND; + u16DataOffset = gastrSockets[sock].u16DataOffset; + } + + s16Ret = SOCKET_REQUEST(u8Cmd|M2M_REQ_DATA_PKT, (uint8_t*)&strSend, sizeof(tstrSendCmd), pvSendBuffer, u16SendLength, u16DataOffset); + if(s16Ret != SOCK_ERR_NO_ERROR) + { + s16Ret = SOCK_ERR_BUFFER_FULL; + } + } + return s16Ret; +} +/********************************************************************* +Function + sendto + +Description + +Return +*********************************************************************/ +int16_t sendto(SOCKET sock, void *pvSendBuffer, uint16_t u16SendLength, uint16_t flags, struct sockaddr *pstrDestAddr, uint8_t u8AddrLen) +{ + int16_t s16Ret = SOCK_ERR_INVALID_ARG; + uint16_t u16MaxLength = (sock == RAW_SOCK_ID) ? (M2M_HIF_MAX_PACKET_SIZE - M2M_HIF_HDR_OFFSET - sizeof(tstrSendCmd)) : SOCKET_BUFFER_MAX_LENGTH; + + if((sock >= 0) && (sock < MAX_SOCKET) && (pvSendBuffer != NULL) && (u16SendLength <= u16MaxLength) && (gastrSockets[sock].bIsUsed == 1)) + { + tstrSendCmd strSendTo; + + memset((uint8_t*)&strSendTo, 0, sizeof(tstrSendCmd)); + + strSendTo.sock = sock; + strSendTo.u16DataSize = NM_BSP_B_L_16(u16SendLength); + strSendTo.u16SessionID = gastrSockets[sock].u16SessionID; + + if(pstrDestAddr != NULL) + { + struct sockaddr_in *pstrAddr; + pstrAddr = (void*)pstrDestAddr; + + strSendTo.strAddr.u16Family = pstrAddr->sin_family; + strSendTo.strAddr.u16Port = pstrAddr->sin_port; + strSendTo.strAddr.u32IPAddr = pstrAddr->sin_addr.s_addr; + } + s16Ret = SOCKET_REQUEST(SOCKET_CMD_SENDTO|M2M_REQ_DATA_PKT, (uint8_t*)&strSendTo, sizeof(tstrSendCmd), + pvSendBuffer, u16SendLength, (sock == RAW_SOCK_ID) ? IP_PACKET_OFFSET: UDP_TX_PACKET_OFFSET); + + if(s16Ret != SOCK_ERR_NO_ERROR) + { + s16Ret = SOCK_ERR_BUFFER_FULL; + } + } + return s16Ret; +} +/********************************************************************* +Function + recv + +Description + +Return + +*********************************************************************/ +int16_t recv(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32Timeoutmsec) +{ + int16_t s16Ret = SOCK_ERR_INVALID_ARG; + + if((sock >= 0) && (sock < MAX_SOCKET) && (pvRecvBuf != NULL) && (u16BufLen != 0) && (gastrSockets[sock].bIsUsed == 1)) + { + s16Ret = SOCK_ERR_NO_ERROR; + gastrSockets[sock].pu8UserBuffer = (uint8_t*)pvRecvBuf; + gastrSockets[sock].u16UserBufferSize = u16BufLen; + + if(!gastrSockets[sock].bIsRecvPending) + { + tstrRecvCmd strRecv; + uint8_t u8Cmd = SOCKET_CMD_RECV; + + gastrSockets[sock].bIsRecvPending = 1; + if( + (gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) + && (!(gastrSockets[sock].u8SSLFlags & SSL_FLAGS_DELAY)) + ) + { + u8Cmd = SOCKET_CMD_SSL_RECV; + } + + /* Check the timeout value. */ + if(u32Timeoutmsec == 0) + strRecv.u32Timeoutmsec = 0xFFFFFFFF; + else + strRecv.u32Timeoutmsec = NM_BSP_B_L_32(u32Timeoutmsec); + strRecv.sock = sock; + strRecv.u16SessionID = gastrSockets[sock].u16SessionID; + strRecv.u16BufLen = u16BufLen; + + s16Ret = SOCKET_REQUEST(u8Cmd, (uint8_t*)&strRecv, sizeof(tstrRecvCmd), NULL, 0, 0); + if(s16Ret != SOCK_ERR_NO_ERROR) + { + s16Ret = SOCK_ERR_BUFFER_FULL; + } + } + } + return s16Ret; +} +/********************************************************************* +Function + shutdown + +Description + +Return + None. +*********************************************************************/ +int8_t shutdown(SOCKET sock) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + + M2M_INFO("Sock to delete <%d> (used %u)\r\n", sock, gastrSockets[sock].bIsUsed); + + if((sock >= 0) && (sock < MAX_SOCKET) && (gastrSockets[sock].bIsUsed == 1)) + { + uint8_t u8Cmd = SOCKET_CMD_CLOSE; + tstrCloseCmd strclose; + strclose.sock = sock; + strclose.u16SessionID = gastrSockets[sock].u16SessionID; + + if(gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) + { + u8Cmd = SOCKET_CMD_SSL_CLOSE; + } + s8Ret = SOCKET_REQUEST(u8Cmd, (uint8_t*)&strclose, sizeof(tstrCloseCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + memset((uint8_t*)&gastrSockets[sock], 0, sizeof(tstrSocket)); + } + return s8Ret; +} +/********************************************************************* +Function + recvfrom + +Description + +Return + +*********************************************************************/ +int16_t recvfrom(SOCKET sock, void *pvRecvBuf, uint16_t u16BufLen, uint32_t u32Timeoutmsec) +{ + int16_t s16Ret = SOCK_ERR_NO_ERROR; + if((sock >= 0) && (sock < MAX_SOCKET) && (pvRecvBuf != NULL) && (u16BufLen != 0) && (gastrSockets[sock].bIsUsed == 1)) + { + if(gastrSockets[sock].bIsUsed) + { + s16Ret = SOCK_ERR_NO_ERROR; + gastrSockets[sock].pu8UserBuffer = (uint8_t*)pvRecvBuf; + gastrSockets[sock].u16UserBufferSize = u16BufLen; + + if(!gastrSockets[sock].bIsRecvPending) + { + tstrRecvCmd strRecv; + + gastrSockets[sock].bIsRecvPending = 1; + + /* Check the timeout value. */ + if(u32Timeoutmsec == 0) + strRecv.u32Timeoutmsec = 0xFFFFFFFF; + else + strRecv.u32Timeoutmsec = NM_BSP_B_L_32(u32Timeoutmsec); + strRecv.sock = sock; + strRecv.u16SessionID = gastrSockets[sock].u16SessionID; + strRecv.u16BufLen = u16BufLen; + + s16Ret = SOCKET_REQUEST(SOCKET_CMD_RECVFROM, (uint8_t*)&strRecv, sizeof(tstrRecvCmd), NULL, 0, 0); + if(s16Ret != SOCK_ERR_NO_ERROR) + { + s16Ret = SOCK_ERR_BUFFER_FULL; + } + } + } + } + else + { + s16Ret = SOCK_ERR_INVALID_ARG; + } + return s16Ret; +} +/********************************************************************* +Function + gethostbyname + +Description + +Return + None. +*********************************************************************/ +int8_t gethostbyname(const char *pcHostName) +{ + int8_t s8Err = SOCK_ERR_INVALID_ARG; + uint8_t u8HostNameSize = (uint8_t)strlen(pcHostName); + if(u8HostNameSize <= HOSTNAME_MAX_SIZE) + { + s8Err = SOCKET_REQUEST(SOCKET_CMD_DNS_RESOLVE|M2M_REQ_DATA_PKT, (uint8_t*)pcHostName, u8HostNameSize + 1, NULL, 0, 0); + if(s8Err != SOCK_ERR_NO_ERROR) + { + s8Err = SOCK_ERR_INVALID; + } + } + return s8Err; +} + +/********************************************************************* +Function + rawSetSockOpt + +Description + +Return + None. +*********************************************************************/ +static int8_t rawSetSockOpt(SOCKET sock, uint8_t u8Opt, const void *pvOptVal, uint16_t u16OptLen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if(RAW_SOCK_ID == sock) + { + if(u16OptLen == sizeof(uint32_t)) + { + uint8_t u8Cmd = SOCKET_CMD_RAW_SET_SOCK_OPT; + tstrSetSocketOptCmd strSetSockOpt; + strSetSockOpt.u8Option = u8Opt; + strSetSockOpt.sock = sock; + strSetSockOpt.u32OptionValue = *(uint32_t*)pvOptVal; + strSetSockOpt.u16SessionID = gastrSockets[sock].u16SessionID; + + s8Ret = SOCKET_REQUEST(u8Cmd, (uint8_t*)&strSetSockOpt, sizeof(tstrSetSocketOptCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + } + + return s8Ret; +} +/********************************************************************* +Function + sslSetSockOpt + +Description + +Return + None. +*********************************************************************/ +static int8_t sslSetSockOpt(SOCKET sock, uint8_t u8Opt, const void *pvOptVal, uint16_t u16OptLen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if(sock < TCP_SOCK_MAX) + { + if(gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) + { + uint8_t sslFlag = 0; + + s8Ret = SOCK_ERR_NO_ERROR; + if(u16OptLen == sizeof(int)) + { + if(u8Opt == SO_SSL_BYPASS_X509_VERIF) + { + sslFlag = SSL_FLAGS_BYPASS_X509; + } + else if(u8Opt == SO_SSL_ENABLE_SESSION_CACHING) + { + sslFlag = SSL_FLAGS_CACHE_SESSION; + } + else if(u8Opt == SO_SSL_ENABLE_CERTNAME_VALIDATION) + { + sslFlag = SSL_FLAGS_CHECK_CERTNAME; + } + } + if(sslFlag) + { + int optVal = *((int*)pvOptVal); + if(optVal) + { + gastrSockets[sock].u8SSLFlags |= sslFlag; + } + else + { + gastrSockets[sock].u8SSLFlags &= ~sslFlag; + } + } + else if( + ((u8Opt == SO_SSL_SNI) && (u16OptLen < HOSTNAME_MAX_SIZE)) + || ((u8Opt == SO_SSL_ALPN) && (u16OptLen <= ALPN_LIST_MAX_SIZE)) + ) + { + tstrSSLSetSockOptCmd strCmd = {0}; + + strCmd.sock = sock; + strCmd.u16SessionID = gastrSockets[sock].u16SessionID; + strCmd.u8Option = u8Opt; + strCmd.u32OptLen = u16OptLen; + memcpy(strCmd.au8OptVal, (uint8_t*)pvOptVal, u16OptLen); + + s8Ret = SOCKET_REQUEST(SOCKET_CMD_SSL_SET_SOCK_OPT, (uint8_t*)&strCmd, sizeof(tstrSSLSetSockOptCmd), 0, 0, 0); + if(s8Ret == M2M_ERR_MEM_ALLOC) + { + s8Ret = SOCKET_REQUEST(SOCKET_CMD_SSL_SET_SOCK_OPT | M2M_REQ_DATA_PKT, + (uint8_t*)&strCmd, sizeof(tstrSSLSetSockOptCmd), 0, 0, 0); + } + } + else + { + M2M_ERR("Unknown SSL Socket Option %d\r\n",u8Opt); + s8Ret = SOCK_ERR_INVALID_ARG; + } + } + else + { + M2M_ERR("Not SSL Socket\r\n"); + } + } + return s8Ret; +} +/********************************************************************* +Function + setsockopt + +Description + +Return + None. +*********************************************************************/ +int8_t setsockopt(SOCKET sock, uint8_t u8Level, uint8_t option_name, + const void *option_value, uint16_t u16OptionLen) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + if((sock >= 0) && (sock < MAX_SOCKET) && (option_value != NULL) && (gastrSockets[sock].bIsUsed == 1)) + { + if(u8Level == SOL_RAW) + { + s8Ret = rawSetSockOpt(sock, option_name, option_value, u16OptionLen); + } + else if(u8Level == SOL_SSL_SOCKET) + { + s8Ret = sslSetSockOpt(sock, option_name, option_value, u16OptionLen); + } + else if(u8Level == SOL_SOCKET) + { + if(u16OptionLen == sizeof(uint32_t)) + { + uint8_t u8Cmd = SOCKET_CMD_SET_SOCKET_OPTION; + tstrSetSocketOptCmd strSetSockOpt; + strSetSockOpt.u8Option=option_name; + strSetSockOpt.sock = sock; + strSetSockOpt.u32OptionValue = *(uint32_t*)option_value; + strSetSockOpt.u16SessionID = gastrSockets[sock].u16SessionID; + + s8Ret = SOCKET_REQUEST(u8Cmd, (uint8_t*)&strSetSockOpt, sizeof(tstrSetSocketOptCmd), NULL, 0, 0); + if(s8Ret != SOCK_ERR_NO_ERROR) + { + s8Ret = SOCK_ERR_INVALID; + } + } + } + } + return s8Ret; +} +/********************************************************************* +Function + getsockopt + +Description + +Return + None. +*********************************************************************/ +int8_t getsockopt(SOCKET sock, uint8_t u8Level, uint8_t u8OptName, const void *pvOptValue, uint8_t* pu8OptLen) +{ + // This is not implemented so return a value that will cause failure should this be used. + return SOCK_ERR_INVALID_ARG; +} +/********************************************************************* +Function + m2m_ping_req + +Description + Send Ping request. + +Return +*********************************************************************/ +int8_t m2m_ping_req(uint32_t u32DstIP, uint8_t u8TTL, tpfPingCb fpPingCb) +{ + int8_t s8Ret = M2M_ERR_INVALID_ARG; + + if((u32DstIP != 0) && (fpPingCb != NULL)) + { + tstrPingCmd strPingCmd; + + strPingCmd.u16PingCount = 1; + strPingCmd.u32DestIPAddr = u32DstIP; + strPingCmd.u32CmdPrivate = ++gu32PingId; + strPingCmd.u8TTL = u8TTL; + + gfpPingCb = fpPingCb; + s8Ret = SOCKET_REQUEST(SOCKET_CMD_PING, (uint8_t*)&strPingCmd, sizeof(tstrPingCmd), NULL, 0, 0); + } + return s8Ret; +} +/********************************************************************* +Function + set_alpn_protocol_list + +Description + This function sets the protocol list used for application-layer protocol negotiation (ALPN). + If used, it must be called after creating a SSL socket (using @ref socket) and before + connecting/binding (using @ref connect or @ref bind). + +Return + The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. +*********************************************************************/ +int8_t set_alpn_list(SOCKET sock, const char *pcProtocolList) +{ + int8_t s8Ret = SOCK_ERR_INVALID_ARG; + + if ((sock >= 0) && (sock < TCP_SOCK_MAX) && (pcProtocolList != NULL)) + { + uint8_t u8Length = strlen(pcProtocolList); + if ((u8Length > 0) && (u8Length < ALPN_LIST_MAX_APP_LENGTH)) + { + /* + ALPN socket option requires Alpn list in this format: + 0 1 2 3 ... (bytes) + +-------+-------+-------+ ... +-------+ ... +-------+ ... + | Length L (BE) | len1 | name1... | len2 | name2... | len3 | name3... + +-------+-------+-------+ ... +-------+ ... +-------+ ... + Length fields do not include themselves. + */ + uint8_t au8AlpnList[ALPN_LIST_MAX_SIZE] = {0}; + uint8_t *pu8Ptr = &au8AlpnList[3] + u8Length; + uint8_t u8Len = 0; + + memcpy(&au8AlpnList[3], pcProtocolList, u8Length); + u8Length++; + au8AlpnList[1] = u8Length; + au8AlpnList[2] = ' '; + + /* Convert space characters into length fields. */ + while (u8Length--) + { + if (*--pu8Ptr == ' ') + { + if (u8Len == 0) goto ERR; + *pu8Ptr = u8Len; + u8Len = 0; + } + else u8Len++; + } + s8Ret = setsockopt(sock, SOL_SSL_SOCKET, SO_SSL_ALPN, au8AlpnList, sizeof(au8AlpnList)); + } + } +ERR: + return s8Ret; +} +/********************************************************************* +Function + get_alpn_protocol_index + +Description + This function gets the protocol list used for application-layer protocol negotiation (ALPN). + If used, it must be called after creating a SSL socket (using @ref socket) and before + connecting/binding (using @ref connect or @ref bind). + +Return + The function returns the index of the selected application-layer protocol. + Special values: + 0: no negotiation has occurred. + <0: error. +*********************************************************************/ +int8_t get_alpn_index(SOCKET sock) +{ + if (sock >= TCP_SOCK_MAX || sock < 0) + return SOCK_ERR_INVALID_ARG; + if (!(gastrSockets[sock].u8SSLFlags & SSL_FLAGS_ACTIVE) || !gastrSockets[sock].bIsUsed) + return SOCK_ERR_INVALID_ARG; + return gastrSockets[sock].u8AlpnStatus; +} + +/********************************************************************* +Function + IsSocketReady + +Description + +Return + None. +*********************************************************************/ +uint8_t IsSocketReady(void) +{ + return gbSocketInit; +} + +/********************************************************************* +Function + get_error_detail + +Description + This function gets detail about a socket failure. + The application can call this when notified of a socket failure via + @ref SOCKET_MSG_CONNECT or @ref SOCKET_MSG_RECV. + If used, it must be called before @ref shutdown. + +Return + The function returns @ref SOCK_ERR_NO_ERROR if the request is successful + and a negative value otherwise. +*********************************************************************/ +int8_t get_error_detail(SOCKET sock, tstrSockErr *pstrErr) +{ + if ((sock >= TCP_SOCK_MAX) || (sock < 0) || (pstrErr == NULL)) + return SOCK_ERR_INVALID_ARG; + if (!gastrSockets[sock].bIsUsed) + return SOCK_ERR_INVALID_ARG; + pstrErr->enuErrSource = gastrSockets[sock].u8ErrSource; + pstrErr->u8ErrCode = gastrSockets[sock].u8ErrCode; + return SOCK_ERR_NO_ERROR; +} diff --git a/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash.h b/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash.h new file mode 100644 index 0000000..0c879f5 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash.h @@ -0,0 +1,192 @@ +/******************************************************************************* + WINC3400 SPI Flash Interface + + File Name: + spi_flash.h + + Summary: + WINC3400 SPI Flash Interface + + Description: + WINC3400 SPI Flash Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +/** @defgroup SPIFLASHAPI SPI FLASH + */ + +#ifndef __SPI_FLASH_H__ +#define __SPI_FLASH_H__ + +#include "nm_common.h" +#include "nmbus.h" +#include "spi_flash_map.h" + +/** @defgroup SPIFLASHFUNCTIONS Functions + * @ingroup SPIFLASHAPI + */ + +/**@{*/ +/*! + * @fn uint32_t spi_flash_get_size(void); + * @brief Returns with \ref uint32_t value which is total flash size\n + * @note Returned value in Mb (Mega Bit). + * @return SPI flash size in case of success and a ZERO value in case of failure. + */ +uint32_t spi_flash_get_size(void); + +/*! + * @fn int8_t spi_flash_read(uint8_t *, uint32_t, uint32_t); + * @brief Read a specified portion of data from SPI Flash.\n + * @param [out] pu8Buf + * Pointer to data buffer which will be filled with data in case of successful operation. + * @param [in] u32Addr + * Address (Offset) to read from at the SPI flash. + * @param [in] u32Sz + * Total size of data to be read in bytes + * @warning + * - Address (offset) plus size of data must not exceed flash size.\n + * - No firmware is required for reading from SPI flash.\n + * - In case of there is a running firmware, it is required to pause your firmware first + * before any trial to access SPI flash to avoid any racing between host and running firmware on bus using + * @ref m2m_wifi_download_mode + * @note + * - It is blocking function\n + * @sa m2m_wifi_download_mode, spi_flash_get_size + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t spi_flash_read(uint8_t *pu8Buf, uint32_t u32Addr, uint32_t u32Sz); + +/*! + * @fn int8_t spi_flash_write(uint8_t *, uint32_t, uint32_t); + * @brief Write a specified portion of data to SPI Flash.\n + * @param [in] pu8Buf + * Pointer to data buffer which contains the data to be written. + * @param [in] u32Offset + * Address (Offset) to write at the SPI flash. + * @param [in] u32Sz + * Total number of size of data bytes + * @note + * - It is blocking function\n + * - It is user's responsibility to verify that data has been written successfully + * by reading data again and comparing it with the original. + * @warning + * - Address (offset) plus size of data must not exceed flash size.\n + * - No firmware is required for writing to SPI flash.\n + * - In case of there is a running firmware, it is required to pause your firmware first + * before any trial to access SPI flash to avoid any racing between host and running firmware on bus using + * @ref m2m_wifi_download_mode. + * - Before writing to any section, it is required to erase that section first. + * @sa m2m_wifi_download_mode, spi_flash_get_size, spi_flash_erase + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + */ +int8_t spi_flash_write(uint8_t* pu8Buf, uint32_t u32Offset, uint32_t u32Sz); + +/*! + * @fn int8_t spi_flash_erase(uint32_t, uint32_t); + * @brief Erase a specified portion of SPI Flash.\n + * @param [in] u32Offset + * Address (Offset) to erase from the SPI flash. + * @param [in] u32Sz + * Total number of bytes required to be erased. + * @note It is blocking function \n + * @warning + * - Address (offset) plus size of data must not exceed flash size.\n + * - No firmware is required for writing to SPI flash.\n + * - In case of there is a running firmware, it is required to pause your firmware first + * before any trial to access SPI flash to avoid any racing between host and running firmware on bus using + * @ref m2m_wifi_download_mode + * @sa m2m_wifi_download_mode, spi_flash_get_size + * @return The function returns @ref M2M_SUCCESS for successful operations and a negative value otherwise. + * \section SPIFLASHExample Example + * @code{.c} + * #include "spi_flash.h" + * + * #define DATA_TO_REPLACE "THIS IS A NEW SECTOR IN FLASH" + * + * int main() + * { + * uint8_t au8FlashContent[FLASH_SECTOR_SZ] = {0}; + * uint32_t u32FlashTotalSize = 0; + * uint32_t u32FlashOffset = 0; + * + * ret = m2m_wifi_download_mode(); + * if(M2M_SUCCESS != ret) + * { + * printf("Unable to enter download mode\r\n"); + * } + * else + * { + * u32FlashTotalSize = spi_flash_get_size(); + * } + * + * while((u32FlashTotalSize > u32FlashOffset) && (M2M_SUCCESS == ret)) + * { + * ret = spi_flash_read(au8FlashContent, u32FlashOffset, FLASH_SECTOR_SZ); + * if(M2M_SUCCESS != ret) + * { + * printf("Unable to read SPI sector\r\n"); + * break; + * } + * memcpy(au8FlashContent, DATA_TO_REPLACE, strlen(DATA_TO_REPLACE)); + * + * ret = spi_flash_erase(u32FlashOffset, FLASH_SECTOR_SZ); + * if(M2M_SUCCESS != ret) + * { + * printf("Unable to erase SPI sector\r\n"); + * break; + * } + * + * ret = spi_flash_write(au8FlashContent, u32FlashOffset, FLASH_SECTOR_SZ); + * if(M2M_SUCCESS != ret) + * { + * printf("Unable to write SPI sector\r\n"); + * break; + * } + * u32FlashOffset += FLASH_SECTOR_SZ; + * } + * + * if(M2M_SUCCESS == ret) + * { + * printf("Successful operations\r\n"); + * } + * else + * { + * printf("Failed operations\r\n"); + * } + * + * while(1); + * return M2M_SUCCESS; + * } + * @endcode + */ + +int8_t spi_flash_erase(uint32_t u32Offset, uint32_t u32Sz); + +/**@} + */ + +#endif //__SPI_FLASH_H__ \ No newline at end of file diff --git a/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash_map.h b/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash_map.h new file mode 100644 index 0000000..ed2e961 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/spi_flash/include/spi_flash_map.h @@ -0,0 +1,264 @@ +/******************************************************************************* + WINC3400 SPI Flash Map + + File Name: + spi_flash_map.h + + Summary: + WINC3400 SPI Flash Map + + Description: + WINC3400 SPI Flash Map + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + + +#ifndef __SPI_FLASH_MAP_H__ +#define __SPI_FLASH_MAP_H__ + +//#define DOWNLOAD_ROLLBACK +//#define OTA_GEN +#define _PROGRAM_POWER_SAVE_ +#define BT_IMAGE_PRESENT + +/* =======*=======*=======*=======*======= + * General Sizes for Flash Memory + * =======*=======*=======*=======*======= + */ + +#define FLASH_START_ADDR (0UL) +/*! M2M_OTA_IMAGE2_OFFSET) +#error "Exceed Flash Size" +#endif /* ((FLASH_COMMON_SZ + OTA_IMAGE_SIZE) > M2M_OTA_IMAGE2_OFFSET) */ +#if ((M2M_OTA_IMAGE2_OFFSET + OTA_IMAGE_SIZE) > FLASH_8M_TOTAL_SZ) +#error "OTA Exceed Flash Size" +#endif /* ((M2M_OTA_IMAGE2_OFFSET + OTA_IMAGE_SIZE) > FLASH_8M_TOTAL_SZ) */ + +#endif /* __SPI_FLASH_MAP_H__ */ diff --git a/ChaletLora.X/Source/winc3400_142/spi_flash/source/spi_flash.c b/ChaletLora.X/Source/winc3400_142/spi_flash/source/spi_flash.c new file mode 100644 index 0000000..1563f90 --- /dev/null +++ b/ChaletLora.X/Source/winc3400_142/spi_flash/source/spi_flash.c @@ -0,0 +1,599 @@ +/******************************************************************************* + WINC3400 SPI Flash Interface + + File Name: + spi_flash.c + + Summary: + WINC3400 SPI Flash Interface + + Description: + WINC3400 SPI Flash Interface + *******************************************************************************/ + +//DOM-IGNORE-BEGIN +/******************************************************************************* +* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. +* +* Subject to your compliance with these terms, you may use Microchip software +* and any derivatives exclusively with Microchip products. It is your +* responsibility to comply with third party license terms applicable to your +* use of third party software (including open source software) that may +* accompany Microchip software. +* +* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED +* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A +* PARTICULAR PURPOSE. +* +* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, +* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND +* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS +* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE +* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN +* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. +*******************************************************************************/ + +#include "spi_flash.h" +#include "spi_flash_map.h" +#include "nm_common.h" +#define DUMMY_REGISTER (0x1084) + +#define TIMEOUT (-1) /*MS*/ + +#define MAX_PROG_CNT 2 +#define MAX_RETRY 4 +#define MAX_ATTEMPT_STATUS_READ 50000 + +#define HOST_SHARE_MEM_BASE (0xd0000UL) +#define CORTUS_SHARE_MEM_BASE (0x60000000UL) +#define NMI_SPI_FLASH_ADDR (0x111c) +/*********************************************************** +SPI Flash DMA +***********************************************************/ +#define GET_UINT32(X,Y) (X[0+Y] + ((uint32_t)X[1+Y]<<8) + ((uint32_t)X[2+Y]<<16) +((uint32_t)X[3+Y]<<24)) +#define SPI_FLASH_BASE (0x10200) +#define SPI_FLASH_MODE (SPI_FLASH_BASE + 0x00) +#define SPI_FLASH_CMD_CNT (SPI_FLASH_BASE + 0x04) +#define SPI_FLASH_DATA_CNT (SPI_FLASH_BASE + 0x08) +#define SPI_FLASH_BUF1 (SPI_FLASH_BASE + 0x0c) +#define SPI_FLASH_BUF2 (SPI_FLASH_BASE + 0x10) +#define SPI_FLASH_BUF_DIR (SPI_FLASH_BASE + 0x14) +#define SPI_FLASH_TR_DONE (SPI_FLASH_BASE + 0x18) +#define SPI_FLASH_DMA_ADDR (SPI_FLASH_BASE + 0x1c) +#define SPI_FLASH_MSB_CTL (SPI_FLASH_BASE + 0x20) +#define SPI_FLASH_TX_CTL (SPI_FLASH_BASE + 0x24) + +/*********************************************/ +/* STATIC FUNCTIONS */ +/*********************************************/ + +/** +* @fn spi_flash_read_status_reg +* @brief Read status register +* @param[OUT] val + value of status reg +* @return Status of execution +* @note Compatible with MX25L6465E +*/ +static int8_t spi_flash_read_status_reg(uint8_t *val) +{ + int8_t ret = M2M_SUCCESS; + uint8_t cmd[1]; + uint32_t reg; + + cmd[0] = 0x05; + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 4); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x01); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, DUMMY_REGISTER); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 1 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)®); + if(M2M_SUCCESS != ret) break; + } + while(reg != 1); + + reg = (M2M_SUCCESS == ret)?(nm_read_reg(DUMMY_REGISTER)):(0); + *val = reg & 0xff; + return ret; +} + +/** +* @fn spi_flash_load_to_cortus_mem +* @brief Load data from SPI flash into cortus memory +* @param[IN] u32MemAdr +* Cortus load address. It must be set to its AHB access address +* @param[IN] u32FlashAdr +* Address to read from at the SPI flash +* @param[IN] u32Sz +* Data size +* @return Status of execution +* @note Compatible with MX25L6465E and should be working with other types +*/ +static int8_t spi_flash_load_to_cortus_mem(uint32_t u32MemAdr, uint32_t u32FlashAdr, uint32_t u32Sz) +{ + uint8_t cmd[5]; + uint32_t val = 0; + int8_t ret = M2M_SUCCESS; + + cmd[0] = 0x0b; + cmd[1] = (uint8_t)(u32FlashAdr >> 16); + cmd[2] = (uint8_t)(u32FlashAdr >> 8); + cmd[3] = (uint8_t)(u32FlashAdr); + cmd[4] = 0xA5; + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, u32Sz); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]|(cmd[1]<<8)|(cmd[2]<<16)|(cmd[3]<<24)); + ret += nm_write_reg(SPI_FLASH_BUF2, cmd[4]); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x1f); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, u32MemAdr); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 5 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)&val); + if(M2M_SUCCESS != ret) break; + } + while(val != 1); + + return ret; +} + +/** +* @fn spi_flash_sector_erase +* @brief Erase sector (4KB) +* @param[IN] u32FlashAdr +* Any memory address within the sector +* @return Status of execution +* @note Compatible with MX25L6465E and should be working with other types +*/ +static int8_t spi_flash_sector_erase(uint32_t u32FlashAdr) +{ + uint8_t cmd[4]; + uint32_t val = 0; + int8_t ret = M2M_SUCCESS; + + cmd[0] = 0x20; + cmd[1] = (uint8_t)(u32FlashAdr >> 16); + cmd[2] = (uint8_t)(u32FlashAdr >> 8); + cmd[3] = (uint8_t)(u32FlashAdr); + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 0); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]|(cmd[1]<<8)|(cmd[2]<<16)|(cmd[3]<<24)); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x0f); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, 0); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 4 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)&val); + if(M2M_SUCCESS != ret) break; + } + while(val != 1); + + return ret; +} + +/** +* @fn spi_flash_write_enable +* @brief Send write enable command to SPI flash +* @return Status of execution +* @note Compatible with MX25L6465E and should be working with other types +*/ +static int8_t spi_flash_write_enable(void) +{ + uint8_t cmd[1]; + uint32_t val = 0; + int8_t ret = M2M_SUCCESS; + + cmd[0] = 0x06; + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 0); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x01); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, 0); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 1 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)&val); + if(M2M_SUCCESS != ret) break; + } + while(val != 1); + + return ret; +} + +/** +* @fn spi_flash_write_disable +* @brief Send write disable command to SPI flash +* @note Compatible with MX25L6465E and should be working with other types +*/ +static int8_t spi_flash_write_disable(void) +{ + uint8_t cmd[1]; + uint32_t val = 0; + int8_t ret = M2M_SUCCESS; + cmd[0] = 0x04; + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 0); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x01); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, 0); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 1 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)&val); + if(M2M_SUCCESS != ret) break; + } + while(val != 1); + + return ret; +} + +/** +* @fn spi_flash_page_program +* @brief Write data (less than page size) from cortus memory to SPI flash +* @param[IN] u32MemAdr +* Cortus data address. It must be set to its AHB access address +* @param[IN] u32FlashAdr +* Address to write to at the SPI flash +* @param[IN] u32Sz +* Data size +* @note Compatible with MX25L6465E and should be working with other types +*/ +static int8_t spi_flash_page_program(uint32_t u32MemAdr, uint32_t u32FlashAdr, uint32_t u32Sz) +{ + uint8_t cmd[4]; + uint32_t val = 0; + int8_t ret = M2M_SUCCESS; + + cmd[0] = 0x02; + cmd[1] = (uint8_t)(u32FlashAdr >> 16); + cmd[2] = (uint8_t)(u32FlashAdr >> 8); + cmd[3] = (uint8_t)(u32FlashAdr); + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 0); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]|(cmd[1]<<8)|(cmd[2]<<16)|(cmd[3]<<24)); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x0f); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, u32MemAdr); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 4 | (1<<7) | ((u32Sz & 0xfffff) << 8)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)&val); + if(M2M_SUCCESS != ret) break; + } + while(val != 1); + + return ret; +} + +/** +* @fn spi_flash_read_internal +* @brief Read from data from SPI flash +* @param[OUT] pu8Buf +* Pointer to data buffer +* @param[IN] u32Addr +* Address to read from at the SPI flash +* @param[IN] u32Sz +* Data size +* @note Data size must be < 64KB (limitation imposed by the bus wrapper) +*/ +static int8_t spi_flash_read_internal(uint8_t *pu8Buf, uint32_t u32Addr, uint32_t u32Sz) +{ + int8_t ret = M2M_SUCCESS; + /* read size must be < 64KB */ + ret = spi_flash_load_to_cortus_mem(HOST_SHARE_MEM_BASE, u32Addr, u32Sz); + if(M2M_SUCCESS != ret) goto ERR; + ret = nm_read_block(HOST_SHARE_MEM_BASE, pu8Buf, u32Sz); +ERR: + return ret; +} + +/** +* @fn spi_flash_pp +* @brief Program data of size less than a page (256 bytes) at the SPI flash +* @param[IN] u32Offset +* Address to write to at the SPI flash +* @param[IN] pu8Buf +* Pointer to data buffer +* @param[IN] u32Sz +* Data size +* @return Status of execution +*/ +static int8_t spi_flash_pp(uint32_t u32Offset, uint8_t *pu8Buf, uint16_t u16Sz) +{ + int8_t ret = M2M_SUCCESS; + uint8_t tmp; + int i; + int p; + int x; + + /* use shared packet memory as temp mem */ + ret += nm_write_block(HOST_SHARE_MEM_BASE, pu8Buf, u16Sz); + + for(i = 0, p = 0; (i < MAX_RETRY) && (p < MAX_PROG_CNT); i++) + { + if((spi_flash_write_enable() == M2M_SUCCESS) && + (spi_flash_page_program(HOST_SHARE_MEM_BASE, u32Offset, u16Sz) == M2M_SUCCESS)) + { + x = 0; + while(++x < MAX_ATTEMPT_STATUS_READ) + { + if(spi_flash_read_status_reg(&tmp) != M2M_SUCCESS) + { + break; + } + if(!(tmp & 0x01)) + { + p++; + break; + } + } + } + } + ret = spi_flash_write_disable(); + + if(p < MAX_PROG_CNT) + { + ret = M2M_ERR_FAIL; + } + + return ret; +} + +/** +* @fn spi_flash_rdid +* @brief Read SPI Flash ID +* @return SPI FLash ID +*/ +static uint32_t spi_flash_rdid(void) +{ + unsigned char cmd[1]; + uint32_t reg = 0; + uint32_t cnt = 0; + int8_t ret = M2M_SUCCESS; + + cmd[0] = 0x9f; + + ret += nm_write_reg(SPI_FLASH_DATA_CNT, 4); + ret += nm_write_reg(SPI_FLASH_BUF1, cmd[0]); + ret += nm_write_reg(SPI_FLASH_BUF_DIR, 0x1); + ret += nm_write_reg(SPI_FLASH_DMA_ADDR, DUMMY_REGISTER); + ret += nm_write_reg(SPI_FLASH_CMD_CNT, 1 | (1<<7)); + do + { + ret += nm_read_reg_with_ret(SPI_FLASH_TR_DONE, (uint32_t *)®); + if(M2M_SUCCESS != ret) break; + if(++cnt > 500) + { + ret = M2M_ERR_INIT; + break; + } + } + while(reg != 1); + reg = (M2M_SUCCESS == ret)?(nm_read_reg(DUMMY_REGISTER)):(0); + M2M_PRINT("Flash ID %x \n", (unsigned int)reg); + return reg; +} + +/** +* @fn spi_flash_unlock +* @brief Unlock SPI Flash +*/ +#if 0 +static void spi_flash_unlock(void) +{ + uint8_t tmp; + tmp = spi_flash_read_security_reg(); + spi_flash_clear_security_flags(); + if(tmp & 0x80) + { + spi_flash_write_enable(); + spi_flash_gang_unblock(); + } +} +#endif + +/*********************************************/ +/* GLOBAL FUNCTIONS */ +/*********************************************/ + +/** +* @fn spi_flash_read +* @brief Read from data from SPI flash +* @param[OUT] pu8Buf +* Pointer to data buffer +* @param[IN] u32offset +* Address to read from at the SPI flash +* @param[IN] u32Sz +* Data size +* @return Status of execution +* @note Data size is limited by the SPI flash size only +*/ +int8_t spi_flash_read(uint8_t *pu8Buf, uint32_t u32offset, uint32_t u32Sz) +{ + int8_t ret = M2M_SUCCESS; + if(u32Sz > FLASH_BLOCK_SIZE) + { + do + { + ret = spi_flash_read_internal(pu8Buf, u32offset, FLASH_BLOCK_SIZE); + if(M2M_SUCCESS != ret) goto ERR; + u32Sz -= FLASH_BLOCK_SIZE; + u32offset += FLASH_BLOCK_SIZE; + pu8Buf += FLASH_BLOCK_SIZE; + } while(u32Sz > FLASH_BLOCK_SIZE); + } + + ret = spi_flash_read_internal(pu8Buf, u32offset, u32Sz); + +ERR: + return ret; +} + +/** +* @fn spi_flash_write +* @brief Program SPI flash +* @param[IN] pu8Buf +* Pointer to data buffer +* @param[IN] u32Offset +* Address to write to at the SPI flash +* @param[IN] u32Sz +* Data size +* @return Status of execution +*/ +int8_t spi_flash_write(uint8_t *pu8Buf, uint32_t u32Offset, uint32_t u32Sz) +{ +#ifdef PROFILING + uint32_t t1 = 0; + uint32_t percent =0; + uint32_t tpercent =0; +#endif + int8_t ret = M2M_SUCCESS; + uint32_t u32wsz; + uint32_t u32off; + uint32_t u32Blksz; + u32Blksz = FLASH_PAGE_SZ; + u32off = u32Offset % u32Blksz; +#ifdef PROFILING + tpercent = (u32Sz/u32Blksz)+((u32Sz%u32Blksz)>0); + t1 = nm_bsp_get_tick(); + M2M_PRINT(">Start programming...\r\n"); +#endif + if(u32Sz<=0) + { + M2M_ERR("Data size = %d", (int)u32Sz); + ret = M2M_ERR_FAIL; + goto ERR; + } + + if(u32off) /*first part of data in the address page*/ + { + u32wsz = u32Blksz - u32off; + if(spi_flash_pp(u32Offset, pu8Buf, (uint16_t)BSP_MIN(u32Sz, u32wsz))!=M2M_SUCCESS) + { + ret = M2M_ERR_FAIL; + goto ERR; + } + if(u32Sz < u32wsz) goto EXIT; + pu8Buf += u32wsz; + u32Offset += u32wsz; + u32Sz -= u32wsz; + } + while(u32Sz > 0) + { + u32wsz = BSP_MIN(u32Sz, u32Blksz); + + /*write complete page or the remaining data*/ + if(spi_flash_pp(u32Offset, pu8Buf, (uint16_t)u32wsz)!=M2M_SUCCESS) + { + ret = M2M_ERR_FAIL; + goto ERR; + } + pu8Buf += u32wsz; + u32Offset += u32wsz; + u32Sz -= u32wsz; +#ifdef PROFILING + percent++; + printf("\r>Complete Percentage = %d%%.\r", ((percent*100)/tpercent)); +#endif + } +EXIT: +#ifdef PROFILING + M2M_PRINT("\rDone\t\t\t\t\t\t"); + M2M_PRINT("\n#Programming time = %f sec\n\r", (nm_bsp_get_tick() - t1)/1000.0); +#endif +ERR: + return ret; +} + +/** +* @fn spi_flash_erase +* @brief Erase from data from SPI flash +* @param[IN] u32Offset +* Address to write to at the SPI flash +* @param[IN] u32Sz +* Data size +* @return Status of execution +* @note Data size is limited by the SPI flash size only +*/ +int8_t spi_flash_erase(uint32_t u32Offset, uint32_t u32Sz) +{ + uint32_t i = 0; + uint8_t tmp = 0; + int p; + int j; + int x; + +#ifdef PROFILING + uint32_t t; + t = nm_bsp_get_tick(); +#endif + M2M_DBG("\r\n>Start erasing...\r\n"); + for(i = u32Offset; i < (u32Sz +u32Offset); i += (16*FLASH_PAGE_SZ)) + { + for(j = 0, p = 0; (j < MAX_RETRY) && (p < MAX_PROG_CNT); j++) + { + if((spi_flash_write_enable() == M2M_SUCCESS) && + (spi_flash_read_status_reg(&tmp) == M2M_SUCCESS) && + (spi_flash_sector_erase(i) == M2M_SUCCESS) && + (spi_flash_read_status_reg(&tmp) == M2M_SUCCESS)) + { + x = 0; + while(++x < MAX_ATTEMPT_STATUS_READ) + { + if(spi_flash_read_status_reg(&tmp) != M2M_SUCCESS) + { + break; + } + if(!(tmp & 0x01)) + { + p++; + break; + } + } + } + } + if(p != MAX_PROG_CNT) + { + return M2M_ERR_FAIL; + } + } + M2M_DBG("Done\r\n"); +#ifdef PROFILING + M2M_PRINT("#Erase time = %f sec\n", (nm_bsp_get_tick()-t)/1000.0); +#endif + return M2M_SUCCESS; +} + +/** +* @fn spi_flash_get_size +* @brief Get size of SPI Flash +* @return Size of Flash +*/ +uint32_t spi_flash_get_size(void) +{ + uint32_t u32FlashId = 0, u32FlashPwr = 0; + static uint32_t gu32InternalFlashSize= 0; + + if(!gu32InternalFlashSize) + { + u32FlashId = spi_flash_rdid();//spi_flash_probe(); + if(u32FlashId != 0xffffffff) + { + /*flash size is the third byte from the FLASH RDID*/ + u32FlashPwr = ((u32FlashId>>16)&0xff) - 0x11; /*2MBIT is the min*/ + /*That number power 2 to get the flash size*/ + gu32InternalFlashSize = 1<Bx_p%kqB5za-t*-2oi$}0fg-Y1G&__ zg)|fcYe{Jg6|6x9yS*_8uU+}x>vUZj+O&j3mF&d#-cZ7KN<%P7AZek*1yfvNXYcPf zGw<%`=CKNoia~j54R!l`L4Mt z6wPmKQ!({2)uJ9(U$gIvWu$CG--O)vX(aKdR9LAQ`o_FZuL-I28nu_dEpFE7`Ukit=1s0&DUIz2UX2_AZuhU6 z{Qmw`5vGmshdlbvZJ+x-4cI5Az$Z3i5A(OP2K8U5)JzSx*Qr#^v-Tpv71pQx5Km2Fsk8*7f-USp0C=gH}pum4( z3iK^WjYZ!2v09Z{$X0SZ`s9}4cr-L}Nyn-DSDQm4jUBQ6dz-_3vr@4Qu~2&HijNFl zfBi?oeIHMavEcD1*M$52Sl@^D)^*(S-n!+pPN@)Isgb&lL*csRYGhW&{i|NSe1=j{ zovze<5&Y`#n~Psm)h)lgZdT~u^RarqC!AA~ldR)<2l zDC**KNSWsy56|w1#%@5}*Wc%+#eC9|Hcj=UQ+d>(Hhdzb_5x1o<;z2NeLRKwI*1$E zk?6jD#YaMYpGc)y&lbE(*QL_6vp$kqH%qC$y3__0>PVzQq2;NTkm}o!B0X+(>54oL z=R+O&e7ueMm`AC>q*4cx%zJEe-Ez>@^Z^?b`~?&UC=gH}pg=$YOM!OS_9N=y+?aYO z7e6sl6K_bXcyvTPt{%x9Qxn<8)c7c_!>uZuSfn;;yBt&F&5x@inRrV|MbwN$yj`ig z)~4nW%jkO2Yv$ZFDV1R&Vhf613wA)AvH50`0sPzf5Cx&3*gt4fgc6@;m}6iUbbhIQ(vo7 zU)0l{KXU3DaO!JCeXGjUcO~FoZ2N=liN{hZ-lEhNz+ZK@=?k}=On3Wfi&O7yPQ7gB zm1XK}L%sF3-VUc-UOwn`;NRrHZ_}{h1^Mv6LcqSz!cLWe{b~yvd4|W*{aNx?n^Q*$ zZCF^Q4U3$q|u@>@FNcVhBED#>A;UT@EZU>QU?Bqs)YZ7D$3%| zR8bZQ|3hWq&vD?p^w|vhxU%v+2mZGm_@vLAGVoV8@VhS#vfqaJ$p z>wjYEcJ*Zk+8DEK>~U!5)tB$L^$@o@;MSuiGV9PTKb$r>IQ2O=p-gi}8G0w2{_J&d z@#=&d9r!&C{9eFMl!5;$!0)hag+1DxP@S#q7S=6JeF;zhUTO2N%#-=f1g@jJztqRjse%F9JpeOkRxFm3&dn`SWA#7t8r}lTa zP|w)tG1QCsUSlh8|5*BNl%3dpi#pOAPZsTC{Q0pO*yapubLN=(D(ug3Jx6>THoFlv zyTRJ*s2a=0V@kdI4-B6~)p!=a0gUOjE&fr5Nq@=OTN+=!Cw#!k01oVPY4|a9B*!{n z_cH?XWImi=J=+_M4d*-3uGiWgX`eSej=n1kLv`+)XYy$J=<-M_S7r^~zs$Ck`8)9} z^2O(_3gus?x^{*Pj}_`E>$FwC#tF>u< zv?O0eEswAapI!Q*eFa>-?=A*Tvn@Tmu)WWfc;N(iZEk_jj^q^h0R29R4;1*|uPq<& z9dsUOXLyhG@jcT+NS_VdKts)!lJ+9f{PIKh7U<2qe6A^x7wKuhKsZS$sT1{T9tZx= z(MA4#9Bpca{IuA1#iMDJ1dc2RT4xh#EQjY|_@THTZ;q-F==>4L+ej`1J+(~LCaBLN z(C5GEG_u8V`04rpI|JC6q*JF?W~CqEF{S>utak#f9`;2!!X$9n(5Q*W#77ru+xb`chS1JIee&)9yoH{78%tWC_j*0de= zPWzuLmlpMpq}^6b8@SNI_&pEodYexC8qmk&^RG4-SkexKKjL-aT~pKDJnlX5CM`iT z^un;I_~?nUTL@J9lX!{)bp-XKRu6rsz*OXZ9g@jpNRW4w%u+!;*es(L4NS) zLuh}IPrYzhZv923{eow;Wr+iRg*KEb=jBtcxk|P ztgTSy3D7?Q`o}E&z4H5VEx({U#;qd1tRH1ECk_*ZR$}iQ?2Sq zHmN4E4e$>zZW~TQcL2}bQMF&|4V1xHxlj9mD3kfIrB$gqdw~D_!2htt{{da+m^y;` zFt((hk$F%Z%_1dxP)&>;(z<61&lAJ6W3RV%*W^kFV#VZ^nLoX~y{b$$}MIUzd4^X_WAgHND!h_@WZ->u!ts2yE5!#er4I268JH|}tW4=SBMhJf!_zQhKe0daO71f#i0^mVs zHn*Tp@PnT?F}y}~jqpm}<<(B#w%R=4%^dEvjn2a-&a18@((v3hVy>M#VIxY?j%7i+ zoo?BXEsN_UUx)CR=Jj=4Ixr8%OoYoZlfV~w5qd~Ec-R8#EO zbm;2Bq;L0XOBdI-EoG-l^%ZRa4iTZ@LSX)nRq*No%ll~Y_FGAqDQ9!LKOVBi`Gw zvDP=xg~PNlQLBIW9ys}qSr(MQE7EBA>|gEJ2e?j`F6R}`NZc7<8$K~;|I>Nejxc|hGTR1OdV4V-@L6ve|*OFhseZq_{NV0x1I+Yc=bbV75d>? z+rA#BFQ-d;zxG^r9@^svx8}D5xAwOLcgA^u%YNmYB>lL&)l<~<7&B-;oqpOv=bpOx z0`PZ})zNM6#c40hcr2S+qG}QiDyw5TpV#=ETP!CA{1VVFjFEn7jq%^3&@uQ8h;2e1 zjGc~V4yGo*ht1cz{Cl2qw7JuX&3fydW8t!1<$*ojI=wnfd=~O&Ih#{|7PNK!D9r7_ zzI7%^3$GvLjSGCuwvl=3p@+S(lqqen^W4ydS@2K6hS7fFd3ZUle)jzpCE7$faQyst z7LV!ZL-IFiS!e_5jzdRtY;i%+w(GICA5K@7z^NP#2Vo;`fsO37HgbcNv0G6$eu!Zd zW3ox$A?ft%~>_~IXQU{dxa&W${JUg>5}+>`C8 zrY`E2O6>_dvD|9fUU>kH8<680Pan+8vQin(1(yvDhSL_?Hteq%bn_QxAW(00c4CPv{W zPO>#(Uy!bSf7%?eFQC;V`x0^N%L8X2n>{}9Kg9cB1IN@D5c;7`94%5Z1QrGk#CS&sUO^Im$m*GPt^yDXOyN62j@BNVb z!;t&w#4P4cqkk*$%FJ_s#TYPR5L3o}FSBiS$C{=1uM&QZ)4yRRQuS8y3mPn)+!#Y8*+1L5F8U9w>*DiQ*C=Ud=OIhR8kU?z zeaAdwW5l1eZw*~th;Ojo7W|O5yKP2itE2m%$Bq8yJIDa_WJ$l|D;7Uj9^8IzgAPbS z2edo3-`me(m!NMmj3=QyXfuxS{REyjA$DE#>%)%T{i3Zq?C2lLqF-#xTc_B;4$QZt zP%r90++YGe;y7(ure2N1R*q-j|LmTDbw5bo{SiwS_>%)_1oNX8)u;^-%rPK-54$<^ z!7}d=Z{NkX-BBhF=FN99R?pb+M(Y!@UicZXuT$$3m{H)k3^)*e1M=c`58@sTKuVP= zR|+O$ta!JZYmy{B@2+XWCI^X2`Ou(ih%{q-7C7C*d&F+{^9ma7B3y%KSJI~K2i*rs z;mEaGZW&GUc*N4YA9M3vC|{Z`;tTraQ7UyPy}h_bhxfz$6Jn)blT4 z4mgB4;LzlCwXx76xrWe0wlRdh2ywn9oVchke=y!03z4={*VTUBt`&Sa{7TG)WQo(C z*foQ^$K1mJ?L60whBWUN*AadEGNbodU#C-F5^_|kzJ6QZO4Nt`(Di-9sgHDHeUQUu z#`xWJOKyE#sISMi54xgI-(2`2?t0YQZGCG{U$b4u!F$d_dgTdY+mTZ5LeK%TF(37P ztk)vXOB@={qmm|mxjeghG~8H9nRi`DFJDpKnWq~x;rwY2Wa?`0?hUw7H>`thV1KM~ zXqB?G;=0918CrD%p3DoeuWrP1i>2KLhj!j|bsNBpZ?{*81MnUFy|)6_ zQ=IpM{CL}jIhOsz{e;y+yx(APzZJNf7?D3;-2hx=?e0MbSMR#xpIIF-H#DBXFLxK} zc+S?x`-7Mdog2a&ALLAA%;l$RQIEtmNuwSQ&2GZ;7E3e6JR3j<$ya03XW4YF*qFac-ECw6elB9WE^p=vew4io^zrg1Vm>2V@E-p2=zDSHIAJ5M ze~9a5@W?jsh+nxG)(+6FtgyHO#yt&IU&EKb2YO@o3g~mO$$$;K&75cq^hEyMY|~}X zS7`h2Qgw9qR0(Hu~)n|u#OHBj-Q+_1-``V za^Uq|+n4c}((BPVKjqp8sgHfK7W8-f@;W@b{J##*S6VvE#68yO>b_(?=}WHbXZn!C zbKW(uJ+}XrV7!ie!;Q$l6YX7s_I?WV-GOVPPd`e3EJ6FOws?>pS3C022s&S+jt=iA zK^wO7O~COATYi^=XFYVFOPl2u&pqIg9ozeJ_`%08{ub|d!S3Fxj%N1L4ms;Yg{Cm+ z>bG%E8wXpKfi254go<;X-Z;&ZHeLrGQTqXuiw*RFpm(@8;V{}OdlNVZ8^SuW4Fkn> zWb|zSBm4bydQ{g5|1b*wu)*;Uy>(WqgZ0WfwecQ7avpcCI-09P zf1uxSKc0b(%CW3B9ytcTx~WMOT%cYGH|oSSo>j2&?dlR}-pv2!T& zSFny=$Mf1jo2x8skZ+1jbH^Xj?|=o~ER@F{F}A1lTq@|HZ6a+JZ6f**e(N}7W@>$+ zd#^w~l$%1AHI^>!94u&>#cu%XfOVUG?U~cAX1qyyajpset)3SUTA{BBekpxl^1M67 zbLn%5l?#;7^YQSX^?ZU~IcX>9;n&Vi|NbxAPQNkk3Fs$T$IbW<_LyKj=p%?L8-7r@ z;-2$WdJT27LL0*(`;d2()%@sPXFVNWB>&xD>n2}bSKzDiw0@1nBLy0ZU8WyR{pH73 zbM!b`j|;Rs!avr$LSMU5nOA6-;}!YbuU_eA@-ydl{Q6q_vvcKXuPy4P{M)!b>=A6y z#OONUVR?HLv>Uj^(!LwCf1{-d^w#bV)poYtWS=>XDaZG+mUJy>iS}iCafPo;_}YdM z-U|IZ6^_scvZC>UZf}7cYd?bhY2ZvP=j~7Id(iz!-;p@@;amqloA98khSSgy%V9^U zn>p5mK5Fj9_`U~zGyGn}SN;rZcn?5U_UFPnKH8_p2kyGD7+~RdkLaCW7`>y@=qvc? z=?5T>-S8Ju;xDAqY90G2HU=AbT-}O(=uyW&!y}`&puZp=qPIsu$AQ<|{z5-yZnSOg zwf!ZsgMKdCUm`oD^K~K?W9Uh`_}NR~qWhM0vv2)ixqZ6<_(I3%KH@$4h+`JcCGCR! zpbo@3(9T^}@9X^vN#tSu>(mj<6;9Z7)!AIPjrXx%9<_RMI{gCr!*)IdI#*{uyAcnB zY}1AoWQTg|Hrp4}TN`cLkZ1Qh?Y*BqaP7rdAuhrT3Z zU4HN8T3z=VD@PnVgYSLyB7G37l^pSdIwROg;Da{A+bvJIW4?Yf^oQO>rza$s994{$W|}H^H7zZD*o*PDR5i-9TRNg01gLG7sU=?mv!rDDo8Gxp=WH91r7~^TY9o z9a|Dd=ED{A;Jj;R>x1@PJ#cT(_7lE?jqS_&(t5xr&8uCbP#llI7TUeG)H(PK--bG| zmrl2t&u;wNT`NI*`M<$GN%%SLI&Ad6uf8a!2R6Wu*$+QvMEn@6p*W0j1=o-umYY4K zCbIVz?Pc~LbP9dDuUkA1s;NGTR|g)kc>znuNo4$a*znm9?F)VxS%-pp2g<>Pf6+!B z@Y-08!Qb3$WVJkuuH+foIn6)*aG-;-Kew=mH}~Us@g`4^zpBMMS_bdID)D|{ns{>! znip@_XT680TD((b@cvSjct1Q%ycwU8Ga$f!yEj8NR#`qG-z3on@ZvDW8{o;QJScYh zmEhe&$afX;5f1zq&ix|Zf*4sW1)t$)hUa34JoBAb*4}7!^&Re9G{zd_p}E$s`IY;I zPdOu_V_HtBHz0c%$R6fRiaxA&{1?aAA|4yjdluKhhwVlCQy5!xo3SAM74c{3+YVqn zp<@8+kPoqQtxx>MQLYd4TH6kZ4aylY7!M4yFC?xHp9lVGII+s+$9Qyrd4PjHlVY9K zNzrCAKf(6CvBk)wlwD@az5#Hk`+Cqnm=`7P+Q%f`oO7pM@WWgBmi}fXf68y|g80AQ z_>$i^&y6R``m%cTK^kj5V^dX9GN$k#%{X0oEs& zK4Ux`vRYW9!FSX-C<|MwV~{DvX0s++ObdL6s@9;XvD7_)z{H5 zqx;ZwXp8(q)1gznhA(v8T!F6rs&R(tJNiiIL&hC5>AYEo!v3QF+&iZWIFn~OF)vmF zU(h@czRvJa!=D!UifNbaHqY^xQt9PfgP`=h?LWWVrbDJ0p&z~Hn>-Jnr5-*D=9cuC zXASUW;h!S)=C6iM!lNdCbv$bLuWN|9Q}z>6E~r}Y*@CpluWog6ZnSKPH35$Kgw)D=a+^?_!LzUV+RVJ@ZR4OxbijMBYIaL$r zyKF9oYdx-rF+=}k5&yy-iT0Fw^DU0rq3BTBzk1Ze z{4*^-@E&}k*Z*;x`%tkGiOXTP5ew9Ps^1~bB;}~{i~4_pzDR~^S)M73lgBfSGt542&I7X?o)4L8=a33_ zwn&^YjI{&FE!~L^|B0ce$c~@BcjvyMpkpN;!lj==8}S1@x`udd09_EH(7aFj{le1B zyfb-7JFbP1Gn!2K&LPU3z~KD0Tb8u*zK;~@E|#swJUh!q&^N}v8P6e~<|FU?o44IE z=NCa=PscZazcMY~U~Yu%?^m)Wc6xQ8tr%BT>Z7Uh3cAGlE0*(Q)%%6;x4~Q0`?XQaTZku5o8Bx- z-YWKWHRA#FwbRe{oJGC=S^Js1uOgi-oi^?o@IKT#bn9U&2NiYL6#rqmW7SUBUDrl; zCY0*e_L6oMb`yGjda_svXFvUUd9+(Cv2szV{8YU?-8N%f3%+CfaD{EAe`R!V*7_0C z;Y0ePm`^xV%7(h}8^mn%dO*UjL!H(5(a}iP&|Kz?ZN&LE<;zT^4cZ8MPg{D4qjxI7 zk$8z)H+5{~a>cP<=PN{)Pp7R$zgDWJR6CcUorsBPzXmkZ>n_XDcq*JO#8VBer`z7? z^{MfP*v@Lkq4XD`s=r{bD$z&!Pk3|NS@Z>M&W?v`I!5|7VjLGqbic2E8}1K@pX`k_ zj-A2!)iBnth9xF4mizU3<6Ae-U%ax&50tlZ{UZ1yMn3el0^e3Yh9{K2!GHd*dY1R$@wH4#Uv#C@2qZaq+ z(2a5O?m{0`PjB+qbn1~Y1lv}P%tX|+L(`|jb=>b!mN)(ES5)o882M=CDLXcAME~Q5 zcwjL;QG=MrVjJ_QLHc4Fx8Ppydex=JgVUjh$oB15Sh<4d;NBx9nfaR)M*fn(2fxgx z3;RIEa*x__mD<}d!-*rq22DpEIM!8aZQ8^z9%+s@OsGb68)5;*&zMeo8M~{5>pT}% zJ;tT&EBY3d%Ab#TBw`wc*aq88x^sMYpx|3nug4h6VEJX5?ozJun4=M~b+&bp^{crT zm%m@zK5xOh2D=`j5$i0dYqtNc;T67P|KN%;Mf`su_=C>~n|W}}@%|GpnRt-c2H1fN z>_8?JF3u@>=Xe;8V$A45YZv-oVd{@s*tp{TL*QbC`WfH!i_w&d$wSW+VpVHA zb*&PcM7Mhywt{x)=N2DnvtP{Bug#3Xkw@lY9|+4f;L7K`TASoGynttOcA5Kn-gn~u zNG9AAL2LqRNcToMwq8A`_e(M!IAr5jjAsp9-Hll3(Tt>(qLp{QvaDHeM{F>OImI^2 z?cv9DGOd|VpY}Vr_J#XxA`cmOEod7rk|J%4AO+tDu5 zpJrXpO3Rl$>HY!KH&AEeVSFYpa=veDnc;`Jl}5ka;K|G9QhC>T^76S<-q+i_H-=11 zj?dn_r0oc3E3rbsiRlmeq_e#oJK=};XJ=a0Q?ad*#(q4;eza$UN}maAX>W_gD;{Hf zzcz9E$0yT;bwLKT9I~zt*%-UfcB!Q;W0H3*?$&duDpH(FMOlsGb=W6^pKiO!yB1>y zv&Xi3xv7)w{n^#%|5!@B6SypCE2gizW-5K84K5D%FEuzE!fKws3Q1994NjlpRiaQcnKN$4oN(BRTxL1{YN2psS$;BeOhe>&Xd(_Z1F zhupfBl&!M zXycYgTGpJU0-w$!??NLfFEnz?BTd);GoSi}Rw55VE4Mt-bosiDqD=qpt0(InmnP-z zX@mUM|CX|i@Cyp-5@9n&@x!^xovk0VHiOStmxzADI3II7w3&F1SdRYgM-pp_TCj&h z`_tZcw56{?UVXK8#V-%eF4K9G+Bm}cUMf*vc)qdEIK!%By^=@jUGGz`&#BLw$6McvCF&FW{MsonC6BZ-<5REXaqBJRqqy_ct?ID(wp?`bIjpNN zcDlljqgG>lwM7|UWe(C`XVY78f14d&b%0ljw$gmFMRXM9wZ-B0>n}F^P92fh-k)8# z%IG$0t9IUOd5q;coO1QpAFSt@QRe-t4UBjU>q_9$h%5^%;zQjGy`#sAqKoJQa$Oqr zQ5ZfT_ekjb#aPdTd*W0Nzmax&OUl^3=bB7iE^P2N{6(yXaquI*Z-T5~y;ng-;^~x@ zBii*dpD}RAL!8%Q{*B1bcn$C4S~enBgR?(}c7?f*oPOvr`%MC=pY`75)GO)K6{YUU z3o@6DKF_%4`ix-B&8=8-vjJ;vZn6B(2wK-#f1vff2Je4q;+%x+ zjksQlE5=g;)cvBDFS5@#pFq^Zo&+1T@WAdYtQRBvysE)>kvFyR{P&+*8w~z0>|twk+NRGT zc%)OWEs;F0wemoj#t&=O4WGrpvs}wfox=J5&ecY*upeTOY0({-%M5=K_WfV&)@L0w zesyi)h)utL`(X2-?RPidbcxA#XnQ};YSX-xN)I;Avighnci23n;RdTOQt7*!FIZ{H zGCi8=PI%Kcq_b1iWMP|g#P?}^vkP+1bK3d6JnDgi9oHp9Kgik+ zrr(cz;KtE;rob}XRUq|f1A={V#w#4)Ud=1TC@{JzG-(&CE zI5ZdyZ^Ko`%58WX)W8O?5j6kLR~83Z}A1MOAm<7(mGPc z2J&9U)$)9!C%@M>l`*^IzuuGI>kG?RT=L)K$?x@D*;c{{K7uS} zTCL0`whs(YF6De8*j|k9jjWLmUiTi;fAehq>Se*hL*UVaR&THl*?-iCd+}+1YJH0T zW5>DF8+f1lvDG6Af2I1|8}|_ziYM{iUCWE$f$Vy~1TT(~A22T)AxyR(u?y{wQ%A>^ zhPTl-*6}KytG773jr*W^<-VcC$jf;j%~R0%C=1?(uK=AvyYK-U-y#0>ZAJ%D9};)J z@q(9Mx#qSJu{7b)h1QO09z}ihmxu@JY(Pv*&Sd&v!t|B!GIifwi>HpeOYxEy51xfU zyDNC$O#Df*g1T{@nu%eYYu(lKA7nE7X4`+1&vWfRE#npXZ}1%YPjrU#pVk>w^q=UK z^VNTXhxDJo_v=4-H{H6c=|AYm>|1RAQD2^G|7o3Dq5n>vL;q==T}6M1ZYRzB;(F7S zH?bYkUjpB+zvSI?>vrvi)aS0%zTU|RolO!*EO6f_)6-VZr_&Dj7{sYF}j0So9B4U_`G)xnP=MCYWqRTPQ22>D&bps{U+K&&T(dL;-$Q8#;7h?|UZX4H;Ij9{^Am-tjgWBPnc`VKbR}idhPvPPTGEZ|De4-Yp-)H9Dyg-R-1kcuEhTq2Y<8=^Px3}&2^1% z+`##XKHGL_3(I`KDZ@7N+*5CxnQz3CkKb(Z%QxoaYv}LK#OlM_IHo@IF4JdHH|yfL zp?)xqJ2059wnVy(w2*vk+d9vC#$)7t*7mz!K7Iqjn-6ZOk}|v} zZ&x!nOdh507{h!geK*D#IG3{RTV_6^5qn5u>e0eHs+T`Y$M{?sP;aFU+jl!@5phr_x@+p-i~M0Uc{d?k0IWnVQ_6p)ZX75 zHe->0we(wuyofjGSO8@n_3Lr@V-D>lFX`6#Y9nucbv$P4c#W;&kyn|#tOK$3)(7pF zhtJZkmM5pS>*P~v?~_kL7V#UzkI(#_w)gvgp!PnCU!B!m99R9^$`HpM(uUJc8zw9+ zs-N^V?d6!}Ld*YG+4t-}Nt@%qWgJG}Ccj#DKsWnB+Cb(O+% zhQ*U~dCHdk152xTOesl|@)Fa^Lk1T)aW8NC`O z29{Dnd&-f>2JgKx)#b?TTkQS&LWXDKF{M6iZ8vSD*pmf?GF{lWWON5?sFwe^?M4o% z2Nv0UTvv99y_ffLC2yQ^cw>gcqoN~tg)HUVG9BM3$_2|vd!>wC$BJUZ*CY z&x+?4kQapp#Px^+OXO}@p{zgs1vcyP(qHC-NUsMijV^HLzsTwx#3}T;4chZ^^xxvp zzrmsZW%gd)%e4hMifv^4<997TF^zWT51mA1^fvj;4roLxe-(%CCv-xY0w$`T2#QjyC_l)f{+8CuSjpN9+dC-ii{AKqqfhP zmO#IL-_}o92OU_%Me<7jCi>Gkx9;aX`K6tbU-G*B&wH;-xW2?iwtv@IJNh!~6NsG3 zJQnfwvx&0{`Tb>6;8lwU#=)951?OtJ)U3?$m={v6~Klbv%zRu=1dImdNDvaH{<%NGr`M2Ku=G+6L$Hk|RHqf^U zUu|sET*w&o4c2fNeItHi?@y-siJO0-_CAi^$>-oN;`cm$QIw}G=KRdHZ#Oi-nmX;@ z@*Q<(>l2e@mHP=%ubxj6JYt~tEXWtX=_B(t+6EzC$l}WP63?e@;`?i@zw}BwXB;oo zJ&?Ing*)UMd(r-ZOibew>DchZAapf+9DEBvbPj1koCs5Ja?9-TDZ}^3-@)-N+M1h- zHVCe)s|D*_gchdmnvTb-poNzXEXy^$xEA2Mc+v+KoGBlI1Mek{RB7&oxHq6JYzO;7 z;YVKc#?8Dj1+Ep206&hQKJ4M4UC&SDp+nEBy~pv3{IlBIj$aJFR$kRO&RQ~hh3kjd zzD)&R7-z=;uTzjiw&zbRKfq39P0|kcIp#+kAkAmmIPw7F|Ff-M zFY`FmqmBPiv>~;C$@*Q`Tp#^5iwEf}{3m0bQ>cse;F|jbn~%QZ{{l}Sy`4U4RJU^z z#)=a;tXbANm342ZP&ey4wS9oLRIgt@YS%jxKjP`qh;)_tun78;bQSuz_ioz=e~;6) zQuhLfeBw8@cVlUOymaC;&aJL_I9FFA`;x$aYCOldWIe8=#eRntq#w?c(sNbvoiSM} zg7L8)tBIe3cITMJHBjUMNl(~x`Z;cTi%rLvWKw#oO~*K7QhL&+*L%|2kWQZ~p(Zj9 z%rt8v9+=5B`xEe;iqEZh=K2Wc<$J7=#M!yU=QcbehH!|oaNpmCJ6?FGvrWcu?BDlY zWAr!h23$K*8N2JEAMKRySN-2rgl0WIs5=Z*aSR;fvX|o^V zc`J{|lWE4;l+0U?_uvh*bz>p+BYh}38nTdqEM%fJ#l0D>3{igB9_q4s+*2Q(#*bIh z#8<`;_mZ>W*+#b6<(L2A@C3ZjoeH?(m*G4z@0p)%H17^rHXlKO5`El-t#To zcFW$}IuGvOx41K%u;+rtd9^9YSnphX~vxASQ@?%{*X2a&u>^-+jQga zI_)Lh-fv;L?cx|xXjrOU#2t1kd4a{BeM$Z#-%yXxSH<~Nh3~+KJhPr>1uqLjXj6** zQkM&3SAmZxSH`xy2%9W?MtSvH2jcY&=_9efQLfq3Z{!86%N9PF$jF(i$ZK_u;Vt14 z*6HVCc*i}AgZ(3PxRjfTXU>Pn^K6IyX)Q-e$-6<%vzwQ2ImVH^gzG*NKR+MaOB3{A zb6pAf6*=IUk(a#2$SnI_g*w|z-;Zactl%MiQlf0LT2fv{C)cI@?hdXMlKP~4HT8*Z z@#`lq9p=K0%~joPE)9pGlW7W{wByjs$$3b>hWY+&0a%Eh73|#cu zxoT+tZRj%WMbkPVzt=Gm?rf8I zn;Gkb6Km{R1it?w-UFB1bC%bo++n0+&5_lqM&GS2l%pRVhD^)*aK~SG;1KqgJZS>^ z1o$Cl%U+`*9o4j*Ws`vUILaaxTEL6nAQU|K{u_Ajwuf!jV=`NYdA@1$5atOyC$N5+ z>2g-EPS1z2zPYoFJVba*Lz}f+@;PMtq*PvvR||QOU!NaV4PTV&W9oA9LxZgw{8kdK zS10$s#`p~Rd7a6_;m%eWBlj%Dn%KV%cl`Z(*0u?sSF1-`AX6_C{U6wjiOfrod(sTJ z<@i48_))}{y1?&UDcj=JS&dWb)OOm8Ej;zDeywS9wXo@H&Fz@%&xuY4&I5NA>0Y&* zi~sg+iwodrKhcHzj~4EaY@YM2U#F`_& z54lN7UhFH^Hulx8Gj_qXLA5rG^|blC7n-~9>9f+erO(g%Z_Mm$gGbSZ?OH9V=y9s@&87GimW}^@JeGT9=MScMb>6QH|=3~9mX5K$n;2nRsW%Bd< zJA6yT@O!oO^ZOti!^*cpeq_f|KXK^EI;+(ea{dEo&UG4^KA0!(s0(d|?>sdI&}d}` zdHIbMEvx8zd|Lx&ZZ~w%ug{2oKR;z;xbPn5yEfx23FdMASGPW~(`ZBXVq2a(az5Im z&O@87okp9aKDSN1XWJ&oxU8)t50hq*677+-mgFhYeun;TjeNJzoG-#S)9;@pE}WC$ zcP@orT4A&Nc*WUgit|JYypr+qz#fZ-#kasev<9DK0+87#nmHc^yErWa+zy^Hi6!_ZYb+ljG58#0B zlPfg?<>kAvCkyRI3=4ZBrL5HJ>Rpy|>*YHGGo@iV-x4XrliGlftWhPNzj5d%byLQe zPsX^sSNImW$eo{_^`mbLbge|&rn8`}=$#^Mbu7>N4aGh>8(OiASFbU;igb9jb6>9g zZVY+Yey5mrk8^K$&Qb?gn%|@kO&_Pj#y!Q4;QaFm@Qylxahe^&$yqrE;bVE@34dsD z2JbX))p3rgx?ARokw?c$an-h3^1Cu7@JJ7#f!`Rzm)$NClMhriT-!O3X?SGeErajoFRwbVZ&hVu)J>;4G0C|pWkhGOm(oy!5(?=rB z;$2f|hV?j_rsOU1s-LcxIbh3MNtsii4wTrd@SDJJ`R$_4qWrn{kUI z#qZPjPWw*$hVkP*YE|2vSZQVKvq;lx^^qQ#QT&EH;}7hMYT~T+472Q~))dFotdI46 z20zv-xQqawgZPze%L!*5js86Hj{Xwy24!r^?*4^1Zv=Z9+0QsnFv&4VG4@s5i^=z| z!+XvfRr8%?Zw!L^2;bow#W(l#d^c^?2k$Jlk!@IQ`2l%$bB_Dw&dKjrIPZxMZ4b^l z)I7`YKX})(-e>!s>oYH~`M92Sp1qg%Y}04K<6kP|FaJ#4!Ti)=Qby9`nY>VSzu514 zBNjwIndOFMKP;Yy-F>iO^j{d?t9nnQ`28wAZ^5(7(URXz*tP)A!XAFEPjJ)813xXu z2fjy0A3EKyziEhh(_MrsFx|2!r@t%6^1R0!X6p-fydb>pofka@K5WChV$#kl##3p< z?}Wr-$JIK>axZL0JHG#g?}udZ4KRF%ePXl~ZDqZn2hzufKZZVMzc0dbJDy3aI`jqi z1^1vl>=0V66rOROPgfFWt?ouFVRt;*uX&vF?BsRkk9QfpAbBzWk9@`Vq&w@Py+nQH z-mWkI8xLPTZTZrbS@!)8Z93=g;lJp;%k3B|!rq>moom&0n6OypE^D`4y~r|OwPnir2C_!;5MX$H1H#C8+PKHk z74o>(1o!HN|gua!qq# zuF}5O_85JS{G(E4$HLCm?^wPSc;p}Vp7W3ID%5Mf8!Y`pKH_>A@X93r{Zk(Q{XLdO z7}sF!Os786BZYhT6uLcxq4^K|l|t;7>o~kH-ezHRLnaA_yoxK=xD>v#){1w8!*6kr zZ{2*XL(2l{z<0!b>sV{+fb31GgEUBEJ&5oV=fmaxjuO0em4#J~x5U>vT!ObS2dwGS z(rsjw_MSW>&);)wq@=O`e%trtd)jm8Gt93%H0ewsZ#>h)vP=8Ur!1YoLyT={{q{@S z?s!Zo@!!c~;!k_!>6rqI;#>mqm-NAj|34JUl!hz*pgWFeTWk7)z6f#d2VZFa0dpj< z+qCbyzfzDFuIC?b9<)5-#k(AQZ(K0q8K2_3AD-Ek#Fghq43vW6YcrWRc z7o7LjB4cT{y)q{&?FQe&78pNBz9+c{b5%G?PQ&Fr&S^rPP5PV&oY4e4HziNyHzjzD zW9=r}#xuHk&eg0_DR8V(%Pd_5KK(F(e=lIl_o;b*KHzh#Bk)H66SA-I=l%JB&pAec zzaKDPVd3-se8A`0R)K#AFmW!i#-I1+0^i%;pRwadu~9cUI!Abd^LNxs^348p??qqu z#oXO-8~xB-CB}Dt{K>M)<)7WG;21gop74l8&rfzk=W#+|``WUubpKUE`!a+;= z!1`Rv1@MQNhyHLmIHYHTt(SUIm(j5z?N96Sa+W~>K6EI?0ZHx$%z_8x8s?H$4Ias0;cJAvPE{74Vz;ar#H4?aWhPkM$Po%DRr^9(&W={@vT;hFua zG|r@g@in~TsXZ7^k!O3fx(&NTchoN4%Fd{_B?>=*yb zTzqF*#dnOTt?JJ(2HTg5rwKdJ|2~zDM%Di8a>z}4xW7K6RyT!JqA8#6Prm{-H;xm1 zld3KeQ#0|+?OBP|@U_u={?j-kb8X9I;SsHKSBJ0b4XI6SSB9_e4dWW#i|@L;=>XQ9 z?^9uQd-A3HZ5XQ$?wr%`XNY6no_rC{5jB`>4yU6`i;pOkiXl=oQjhyxSj)V!DL&F4 z4)2}Wq10vlb#HnOu%1Tx;7*o1nNQb0p5N7U1^oQRa5w5+*`%VI+Twc{Q=FMl=^4;% z-N_HByIZ4bU-ors1npYc6jfhFoM|z}$$bkhkA6FRdGyZkoWmP&{dPF4QoY1u*~sU@ zb?Of=e|CIvKEE*WKhei|)b*C()I7we!dw@PxI@#NG{=g&n*KdMyf_9tzO3^tOnCE! z)R%4E?>3#vf9uUk?eE{0KmI1t{_jeZ@xo@_-DorW34ILtQ(^RT2K|h);rD`;!E>h1x{%3SVp??N9K9cCXs0KD=V}j$*c=TG0 zANScDU%z&U^>^(|&1;8lBM!J`(y%f4%nCnT^4;h%y^M5 zo4i(;vPXwVgO?B=W^9{uW1HuPQc>d0ccdTb7_s}t{~Tv9Xu6?3ra$*tJU_tulsZi~ zr2ApQIvyrXf7p|nLmeGMAE#|U-vghG{XB;LJqEb3#WmYnYf=&R_bJr9RgGr0ssosZ z+mAjzkeIkIg8n~{iyus@ns6!-KY=p{RNvw;=)vWC9twxl?_ZIEeK;C^dchj?^oniZ znKYgkLq|ft4$zKYTQjzhx|ZJ{=vhCA81YQ}!ij&oE;Xkf_Jim7M%3LymnV z5>=zwrkaO(719`+;W;z^mhY*r(|cO>Wmm**R_}m)SP|P8j@2*3xq$n!wJHraZ!_Z5 zwVP#I2*S3f2NVvPJ0Y`C3sfi{;b#D&~}{4f4Av0 zY||Ow#F)uMXyXF*-(QBFUXVcFKa)RR&;Hws=P_J=lz(~wU=7>|d>~kAJ^D;VHnovY zqOjK?^>kXPAA?t(P23q8gTJsZ`@vAEw_Y8{=JPWW|21^2zOP66BBX_3W9wmS_rShw zMSERd8$q9v&tQYnUkaysHQyb^-cR-2rg-#oNbgLa$)|4NvnhWdM|@J?ZSrqCHl}97 z7g!Ft=6L$ksDnPjGiQ40>32kskNcwNzkK)1we|E>FxGDSG}^{=p;ta%lX&<{S2Vt( zFZ@=(2&rh3YyBGIBS{(K*Zh9dPT)g7Ms&fMmmtsJ1H|K3y!cXIJ@o>4?b-F* zf44tF9YQ^Ycyr`m@)J!z$B*B4jwNcg-2$CK9;W^vUtI}3o`f72*eUA0jMgvEP1Mbd zeawa)z8?CR{3Y^CUz6v_P_BOpS}uSu7;hheO#jgkc%nY6dJ+ovmnVM`{;znZOo!Bu z6S3CXZNJK2Z{_*`Vn%g|We*I5mp$-H{GJcz^G`R;dEjQ~na6Woq_p@2CNTX;o{bS{-Zz1HbAE(SpL`fbR*Jp%zGN+FzUYrkWmkr034cNGVEt^vSOa|chKV8#p~Kid@*c~veUtI%Q$Nb5X-BfN z;g`ptb6omJ-%`K+d%jQi9rJwS^zmN$#a};t{H?sk9GVo%6#M&aT2CbUp^sqqK8yAZ zCf)9R$DMGDO|;3BV?t zZ$d68ckc+LZlQdNui^D&=sRFuB_VzWeJ$oM<;$dE*3W>>Th{Ol{0!I<`W?yJf#cC3 z-OuRn`++Cvtkko>`#EdZN3~s_^U@k^*PjKiFFS~FfNtNfbUxF*QN)W6WH~-^bvN@~ z9$N(e2D7Npqs+VPL^t|g&({}hWK12BlXlVb?V*8SAafk zY80`aeHpB~=_TJ${-Wy#u+Mlj(~L1-BzBLQ5&djC}G%j!9*4|Qg-?({fj4acFwin^ePZ;|hr z=hL8d2>PxX9eOe9VjE`wmpOa7)hSKu1KCz(e1*X?^cD6Egpp1ktw9}VzQg*g)N!}p z9^oF41m}|3U+=zs5No6{Yjt5*!Rb;17=tc5+z-B;Sdq_Iw0bzin$9bI^Na(@_pkoHr5 z0Y5eThKLGj+8l(;gcI8f_0*xBa01@0uIDSLXA$ZhOV+Bfl+>d_x}H=@v7U{J^&HH; zy--i5t>?P>&O$x=vhO~V>ZKlR2Tb<+?U1cD$Qkcp-yK;L-lZ%W-X(v%HGe!x{;D?r zKY`zwe--K@KVS9I*v*vJx7qp=FVT;NzW|;=hpMa37{59Wx-k98_1(7L4xo>Ce#Ar* z`wcOdDdWvL*b?ecc%MVmF%k8Sp{?MjnQE;WleX+b4IHoR!$Sm+ zor&}V7pnLJPs7i``W*G_r^rv#t)d^pdlz-ot^abNE8eE_g$w!o;^Le?tOX3j7|CZHb>VKDr%+r=<+ld|dAV-7V{X{YqszR%UtYqj z2TXTvzf?ZN+S&%A8F?;S2Crw|lYx+NRqv1XB zAM;@zu%7pvbCmrWyKNryYhezX^)N2Z^~&Yq$$ovpxr!v#u5cX!`)7{rAI>dsovo}< z(a+e+&u6R^fDSe1SY3$w1JLWBL7`6(BQNZo_oD&(RMw(!Z4lQD1Lm+oeY^+EVGMQ^ z*N{}(_o!d$N;onfWqYs! zyz?d7cb{dSNq?C+=;`%AwX!3$tyXVVOWXe_z4_!h($=gW2xv=N3d+moAz0lhu>Oeo|VoT!bg2@@LN|=3Ws=f zjC*RaPHHSWw9eFx=iP#nyWY^x_mI5Ajd`!W$-wZ-%l63H0qiAgW*q9Zw!MD&x$h9Z zw_f*l0%Km%#HHgF_!&;$M^F3)7lopkD?97Jz{sI{b_IB zQg*>FpPxVNm(S0i_U0?+CwcSY8Q$vYMc~RCoaSTD3 zR3SaSLtIR+CC<2KB!TxZ*5LPOO@GOnpJi__a)9@lHz3Yr`atic&Tu^=X^pixh_mr* zw=N}Xw)o6-lRvPy6E>f*RvvoC$oJn{I!YODokh4C)hjJtq?_(r)D3#;w#YMVRRI^` zhB|YXSp2~^8N%aU!^;uBV{9MgG@nctud~I0v?Cp!wE9PA%k(Jty3|;q6u+WRwVqjo zz6DQZ03&yYZLjEG>Nd2!a3&As4EqeG=u2;&DCl&lqaVHRtAT+sh4aR$$|j_+dX1{X8QdPu*kiAS}N< zU6o*AKUs$30ou~DfyM8P(58dtqxkJ6JfvycTnXMOtQ*6=N%QUFhBRWdBdSj6J(YTY zA>+1l(cewzOUBRU-dtE4x0CJl?z!}~m3z$G@1Uq&(Nh!r)-B>KojV(WFXv)$&BbGV zoNHI#dxN1V^qH2K%Q4?T`%C?dd0xcd^;xr;4``1|(cax>RQSd-+KGKdIqo;=R*&jE z6WE8tdUR|Jypx>|S#1Yg@QuE{20VmsKD6Ge`ZRyZ`O=3|1$q?LP^r$)-q@PZUe#rO zdvMR+4x~SuDyGZ(t$5er@GInt`|09kQmX>Z_mPI>;VS6>6i?H@Q z4gZF5AeI-{0{23+(+iJt49v$X<5avdcHzx89h|Wbr67;&Q~hjXB>a{zpNSLJ;OjkH z=c|1w){8ip&`v+wm>luY&ki1ZE{lf~&vWTcI=Ox1)?28@mSub0df8^Fm)}vI<>_D2 zpXYE;XW}|=nbm(!V7;~Dx8b~wUh;)Lw*&iOn?I)K0U%G%D?hdJgs3xUq0fKAdeL6Y z*LRKl!19rlCGB}n7$T2{ZTT9@SArAqq3p@t7wk!a~+&pH}BD&l6KE~)8r{hB7wr8)+b@h0aBRc2lJ7w4 zX2c^3{mAnqCM=Dc^}ZCnPgLs)mU)MzGyQY+tKWGH-mw(@*LcGSY{!^_&pMh!y^En& zxW5;^-tJILk0Ep&e1=XP{gACk#k8+G%DwjczB`&{Tq9*W4HOqe2Eoi39id(SHU_HJ$g{HVV$Bjivon-+qMs zCp`FDsACLcUH?8L4*%@*A)j%Mgr*t#@g96vSj(Tc|G6)kwx#w>MxHS~p7dNPKjU94 zkG>nmby(~gX^vlkcSK*gdW5$8HMU;jDE$fC3;kKC9CfZ=A66pUT6O? z&94uEYsqnjU%xR4u%AmZr#4_F$qJj;m=lDy)3T=PbwrzlHOM)Zo`c)wJ;s8=9IqmNqr zlb{>hP@^_#9wSfiJ@ni#uDhu-DW7KiN}ZW1=uEa7ze(-+s}k*zyngMGGOUkdW%{h& zwe78@+}Y59{rkT?{i{rTM(friRrD`yNTvRrb+h>B)%UNILEGWi8+*ez8hww=mM-P^ zL&`Ujry5e~5?p0ob1Cobyym66=e#ELFmwgyYY&|bErq9!fo8;u@*;dCXTb?yiM(L% zW<~y@&BbpLf4$Sv6ZK4z7s>0#Us8tj#9l+)zvMNcE%}XoDYPXlyc@PO8F{m<)8$WZ ze&SiK?s9bX`gMutBW-_wvyt~G#@f(#nG9$v=a?c5ds57~rOeASO}pP@^3%_#CI-N> zW1cYkjGGCAGjA*s^ix$cMw*a6OcM7~eVBlESqH*NsDiZ^9aMr0?MK{Eb6ATYNCqzYX_= zv`8KD;91IWeevLjk;j%xMGYKWb(yX98P`IY!B-dSVgBwL!rR>ZgxP&V|2DS_(;}Np zJ(KEwQ!&kL8}1L(AjVCuIM6_YAsyi#Q_q8{d)D>sTIz z{OWH}w17vojpf|=KUjLi@Q(41BN5Q${?4`~stafM_bKj!!D2xAH`r509C$|Cct*xc zjJ;vMrG{s5Z6mH97CO^m1?^b3OFPPCBlJA|8N$FfnzXF*93T0<+^zx)-EIxnO~ZEx zbQ-H5e9?P^x75P>hJ``?O}z_z-T=OOm*K-cJd=lxH1u!7J!n0VA^)qsF3p#!ulOGK zha&cU%KIL?&iCHBx?euEuI`t6>e^!Kf~*NHl*2+@-uJ8v@7ZSZFmwnt*@t zd?MOedEbWj=pW60T*gBIYZyI@6 zW`tMD3Cr*u?{U?05-B`0UM+DB#&q}&wo>QA755XwQGc^azLCSaNl&!x5b5Ib*VUH4 z4q1G5fN%PuT|)|I0MpipeJ6}Y(2YJd?c=dlV;{A?vivnjeFgpzSRCu$>d=;ZmeIyE z{a==g^=(G~7U@M+(0aQM`9ht^({@e^ewS_^u81EL+b3}p;zpfR3P-_*ZQB|JY@9h; zRl6)N>vn-x1x^g@`h2-|Z7I>NEtA_td`8gLR88kL#`U-+npZP_(Ve8MkASw_@9W=& z>!FyX1Fo=@MLIlX^=KtJkiH^MezB8MI#=ixLA}JuwR_Z~#~t38PJ76w+(Sj5n*APw zj$j&j9#`mS%MTv9DVqmZu<(sm2e#O7;D>6vmP0r-yR1JJ?5%qYc7706m{UokzVy zIVT=TN9L}u{vy*|S!^k!*C7AKp~!RLZMYty&cNQ+Az7OtGO2wY@D1NnKDys*^cHCa z2lQ* zxm{OV;5)&Aa`>;7r`S%|`5|4-#@BGhXXf@5#c=}niY!!&Rb(*_*r(9{8T3ECN%j@& z^ZjbGdj1D%$QNLP&U59R7Ke9IR;RhN7CqPI(Ao80rQas;jN>QsJ$dE_<#@*GIp*b9 zS75q4Lw=Z!PSCWcy!-H&=sCjFZAPB8h4xw9jdW(@E@>YYr*SrOsg||LkhPQ+s=?Xf3@b`_*7o5q9Klb58>Pp&EjyKPRA6;EX zd4nHl#!`?skw4KVl)pZ!e{e0xqv#`fug5jd!B4b#ScWoN>e-cP7sipN3=F|T!{vAh zxasi^{PMXN&(zg+>1XOy8PgaYYsP_WllD!mpX;a7r_cesQ5;iF9ZPOSn@AU2H62p+ z8P_ReM7D|f$y;uIZKp6MbjwH@^XYb5Uqr@DcFAT2z%Ci;k+)&Jb$w{7#%== z461x5eKDLVqv!qUA1~Tq>UMn@+8p|4^i#y95Es7~ikHrum!xi?t$G>88kb0H8M-O< zQg@=|ZMLnpKj>4*xK`+I`f6?BOW0pTI=si?SWO>pvh8L4Ji`<*NKJD-e+J$H3y zV#LZM@7X73J|jE=UAcNQ_u#1|Z6*zQGfAvDy6kNQzBcoJsHX$<)H?ON%KCk53;7Iv zqGgUabvwK$u$Yha^L-ky!VWC)J@{_WDf`V&8oYjP`Oby0A24c4z&Pl@_=yJw>p14T z=W|`YC_93$OXIou$uv%vX?wj7EEjKY+i?bki)}RB6ctE%21Sa1fa^6e2Th|ky6~D_M{CK6Ou3D^5 zTH#rr)O(x6D~o5DZN4qEcN>1Y@H>Rx5&T&Hai98`ezHV*1bZ|^FABcQkNv&A=?N#D z`jL4n@ka;td(L#)jJ?a6zN8Cf1LsKU=RY4beK$s#hOb5$?^d_z`KLd$^2_>q92~~1 z+(;X|_#Cq^A9rBh>I1XSf%&)(%x%tlkpZ_~)1EfUe1x>=xKn?nHXZk=-=*=qw;JAd z>)%nLerf*+r~XRqKjBlq+kU_LccOk*--w?5mZiT675mh${#_1z*@yc*&u;sL{xORu z^LyoLpXDjOJLtgrjn#LqK7P=7-(hJh`9$B$bbN^?eDbrNlTNzmE5;KSD~WYaJYNNR63meH^i=BN?eP9#c3Y zujmuHV-u7^-XhG>;}f%npu_r=rN&zB7@K*#aaDt}@zptIj=ifmr-b`MGPkD?JN-xq zv7oy;an8Va4!;c7kSdI|3j0#*ykA|Z_vjg!>qZ_umSA3ekM%1u$HRRulJ4f`SVqzr zyZ@){{aL|pF5oQ2w+F{AFl!4q9wdHqeegrm!0%^vjNORXWVwF5=~lz%Vk<7Qw&Is|d?$Uwxk&a4U}Nt^M2{`HtzW}5@Rp8G zNt%??u^7x*vMlfC+WP2!{tW&nd3@`JVqBN$&)P8x+ralbocFTUz%O>-@*H66H3eS2 z^YXRe>9)^&qdcX`x5dm^`r+ZqqsXGS9`MjGzY9TmlzPBBS*Ckw$#g02(i1v`XGd$j zgFM6ZIS+0y% zneE)^X}@3F&n1m*@GFmX)4udX{AT!Jv`^MwaXt4MJmZ_vmc|pqC<{7AI*x4^MBicT zj!3l7n)LXbr43<8-pKDv%}Y8~+b`7RvUitjMj2z`enEYvn+kU@-h}?q;}GKTZx#nX zn&TkFNjyh*dBEU2a813Lo1`uFS@{wmsz4y}>jJf^P;?4I@ zdGLgO%aY%*7DLbF@Sb`SSFKZdkN(DeF$VW9&Rn6_zLcZCS4Z%BTZnsQ_}y)h1JXJ5 zb|VMnbS2Lna%qT|R@L-ooz>7=<5q^=!UwMIU>VX3*PO!ND?N7L#k}Epp_8AU^P>~@ zT4{X1CoZi%YiXt1pT~Yzte=ECGKF^~UpbmS@&8epat#C4Uuj)&wlsYLYwKiAnYKgr z=2G^&{1)3!euE8KOdkqxe2%-eo|tmwEl`YJ25_UZzzBX(t; z>s0y7JwjafA$%n|opKxY^bOaKmeK=yJ!%PEgE~riMo+ zmv$!<&KOHz9l*UF9f`A>wXD+?2s|TiU9d&mqd$(l@BRARLC_X^`Nwh(+Iq=jnA=F} zzQG&^ucD7#{&V@4wv9B!UL$Sm$&2J=Ub${6fjYT|?Z3U<_> z|M1k9^6?Lc_SS6+?cIvs6ZoY*g4i;C$MLKGXlU=P`0dB9FlW-#XY_14#uVHWfGcd=#4w-9cYOXpdLV;7gzs*AraOmB zn^~TDp8`zrE4ki~@CB~WN1o56p8K47xbE?{RnJ3CJv@8qw^2{~_JPcOPlY>Pc&M{Y z<|Dnds`b>(K3IqGFV_nbr*i!w^k$h3^x@2DltF&Y3oOU};Hn;qos9N8w(DZt=8u4QSH+CGqB zeLYscdFx|8^#I0PPrXRfeZhC^3qG?i_{_O<7sqmWFPKJN$hAI?m-5{My!kA9K*4{* z`b_Is3gag_*G3n3Y3t^r-Y%6-%25Xk&+@)h?9Ds&mhmIUSShQ^Xh#sUowBasiFX)W zy>^GTteSNVZVZNcwY`LHO(9+H%LDyrGk2^syy6!t^!miK58Q7EJC$YGr*P)@j+I>_ z0_Q$FW6g2l`5|*AdExm5JmcHKg=hG^!`z3?y-PLN+l97s{ot^`!@Q<>hw-uZ9rgm4 zcd!fIci3y7-+9xqK7532hn>f{G~AznJrh_Puw&(BJyvYDwuA4t!LBe5`5FALV}d+S zKwu(`e#8|2fj(iyJPyvK;FN4CArly$88pk<{z<=*3byeVz2 zCicoUL*G}`-r1bb9{rW~Selc*j8D-HCaoQCX`aM;#>1Jm0{f?aY3W-i z7h|~z#s>6xbm$B0g~eD6@%yY@H+Rz})4#+6@#{%={P8sKcf*+_e}$jGv^Ht zeYTlC=g{q&$EShI>GO!oJjBp2=Q#zRlheTG#q)>{WyTMm2Fp(c9xTJVzd4`y%q!w^ zi6cuL)4=E7&k-Mq5Bb^TQaXb2UX6Z`IZw#&KnrA*`j_=B+dNr*7dvhLs88D&PeYup zncw8Yce>JEJ-V!vL5U~F0_R) z8@C=;rrf$7JIlKG{c@pOt*0(mUfjB#JIlIeICU}ZV4|uB&_8u0ML%mf`ydVEnm#MqL?&a~@bH(zWl&_k>MaFpaUBU)k8b zAAHUo5l*;a<5v27{Dvs5Ip!6ddH=2anh0Z0r)=G%DdT`w6mTEQ{nEixVuwPLAKQ1N z)o}-Zu8CrNpY?j%!F{}}n{7C0b@6oDKpz}s&>o)UU|?a6qn>Ti?bUM=4}tE*HE^Y5 zDgk-I59d}D*9Di7C9ze=I}k&?Vyl{NGqy^2U1EoBKISLhScjtb!O;FlInf2x@+j#| z9=*=i%XL+xE5FFFJJ_>CX> zFyD7C=KJ<|&V)S(JvO2yvimXa;n}Dop#Kbv17fO6>xh}SUv2LhC;A`uoR1caHx6Q4 z!!;ONv351yuGC#?O^lQ4fbbj0*!cDXh)3aG!#jvJYz6HfM0}Fz&|UcM3)gb=sadB| zWE<6RyXiylQ=ty7NA;^?n^OnwbsdDu^OVebv#D??Gtie=@Ie7S&rkG&|3(WRe91H2 zMw@VjFEx4@t~i%&6fkfu?|6>qz17&fgx`qv70&m=cn^7Z&b9K7hPb`l$B6i6-Vpca07VCS_zV|*eKY9E@TR)%ar-)50 zl^=W4biK^$!Y7VWSGD(`_wa>I|G4)&PpC0{ceA(u30rvKZ0;!s;Q0)AJ~QIzpHkU*_2R;hLzf{mcWOHqj5A z4xd1O*9zYR-OoH&_u%^;ade#yTa)Zj^b@jZ%f4KL8qw|GH-6$t_&<^i$fbex~eGZhkdr+P}``;kk#Z7IOu)-K{+5y%p_n%Y(L9cTl=re8+Y{ z<|eh5>6lO04|r43+0H^8_6#|;x!U%+W!rQt1u+ay`(RTFa|XaI7cS6fJaY=Z1Yw*l zeN3CW5~uAsWuzI~@523U(QQ&a4(<3&`03El3#VE-lCJB}R<7SUWPJybBgjhz@`Aa` z^8SOY<7~zGMWWyTFMIC-A7@qOkDqyGlBP)u(=Kb&ndI7p$|kF z16r?udn?`j|DY3w;W1a0;}yfGvq)9lNDXtx1Ys~XKsJ{?j2^#I(^2#F^kKTvq{F;` zr@dFoDIv4e-%>XT?Z7R&WZ$9O%lC3z(qZHn1$iXPJk>wzXBcgazQV`{`Bu_FzJUF#yKF9T@~>!8e#uJ_L$*IWM_5**kGN9~ zoEpbGCl2W+O<2;)u==hHclzf#VWppxu$T`Hf6J+39JAi4cR$8Yz2}tmm^@a%7IGb& z{kI3>kccYF-YWW2*Dxo-K=H|s zV7!}{SN>W|otKchmmwX0z%iQR5Ax1_8T-)V7)RsDag=LjtYbWb)jf`)olVFOq$>;J z#LYgSk|dn@jMif8CGXnWU75ZKAc4-GI>r0 z_Jv6|Jm-P`&n%Z`aKv%u26az)-Xq?Vc3dm=WsTW|;LjIO=MYh6u@2wl>wST-^GA@* z*cl>7lX?K1vns&*W3K2r_hO>5OFd(Y^Dg9nVAPr87GUgBajJP&o{02UIsDXQ{=if8 zC*5re_Z0WK;=w!Okvt8`p7Y$v{LX-1j$=4OMUFX1znFuk(ucN!y*pO$M^4)k$jdp- zx$=B}-iv&oe@VuXhPF48o}TNT?EJ{7;9NNcoS~obmf`F_1)Q@SoR_w$K8)C&?ZR2h z*JM3PgYlb5>#fB2`~O22UpJ+?{MMDNuG4u_NS9@sY#)=fv3c(wEBiZLWq&GdY}?yJ zPlJn|sn*5+ZDn$S3xiWBleeReOw?vm$5Sn*ru<~0F^DoAo*hcrDDqWuo>PY=3&VSp zp7(l#=Zc-`{9W*Qx!8;AM?9w#4q;{>%m%0KPZrjXb~Kqg&kki=$n(Jeb@t6qG)})6 zoK8l=$uQvAWmBOsRc4wsNf`>nIhi}h@yXoTM-i)3KJ!#)ATRUg<48|Oy7D5=SAufp zU1+~@>Q5M)5bdvMRs83x&br4x!yoP4^&v|f_fkgfKC4mjyI%p%?40$PrOx_lE?fT^_ z%NLi1LhC}Ir6J5=$NfAad*PzRrI%Fkm&SGU;G%T#R7bm_c5AoY(-O7YTDyDfjwbnD zzq!7(t$ux5)Nbh5u%W)av3qIu%+IMP?Xqv| z?y2vI-fXXl_Sg+A^=;9fdENHHMc3KO+c!tMdf=le8f~ z6iFNETiYGaUD3AsZP_+{7um~_)amrEEmgu*)U+6`NYyJCKL#TdP{_4IPb}0Ewi#a6B!^C{n4hi+VP7wRhXARytA4 zpCWxW%A+Y6x~l4wgOk)v-F8t|R8i2dsjG`HDf{`^+3V|jP%7I{aMAYej;@>SRG->| za_@$FePe5TbNBe{>ljYV{pOCgp8DqKR5R=lI92c69SwGoEDzRP)VQwZXcFAY4V^u% zoF(b%>}qZA>9*_J+U(8sZJVOq+1U|c9-m~GBq6f0BI&LkyC~W&o0}^(v^u+^6UBlS(AAU7)#NoA zuH8Kyopw=UYd0h8cGK6|WVd(p*y}fSZ#$Lf(4y@k4O&CbCPKqzt~-k{no*&u>o-U3 zdb_!!qtR}x-xkOg)#&49pi5%^^YV)smEY|HueDgjzdTLEAMmQasuq59pIp>p4b|kJ zZ+ALa8~r82^S3=L;%o6t*Oy5T?tgEvPh1OH^jMLQcGAFd-x94y zx7@X%zH>oGSF;eE?-Fr2U?J@~(8$4h4AX@E2^=O9mlwFfeQPdoorxFxI$aox44?S! zUjfUWG+0)<#>EwQC)WIJKVQVpRIlP*yn~6CzmjEdf0=JjL+8C0i})X$GOu;f-1k?Y zr!NgXyB3Ogi9^p1{|Yqpg9h>`V|9$YRU*OfkAN1iD`G8h(Y#FOyT|HhC+r5uWYm&v=LYCeM0P zjy1FbiP-R~`vdw7!mQ2kExpMh;DQN$sq>kSbg21?dw$~9pK;6K^*LX9Z$}V&rJ;*a zQthdea8Q?ua`!<2J<}R{4c`%0e3$A5#}Wr%7u~k@U0zc-UEHGd+vr^uA}quBG$UNx2+oIR|oRT zQRj|fk4+=$XCw%>5$by|{7bQ&_h3EY9_kqJ?3kBaaWY+v%~(1|?s*x0P8L7)X-^ja z$>QMJ2IC-oe>w@RCyOg%3iJ>|;;PSyr~?U z;}qheZtKb7V%d|n=TTQ+DuneXn6r?vJb#>t*`BWbA*y9?_%J z^TQgg>UZ=x6~kD+7qCC()P+Ik8~Oz3pRleE`X);QagR_39sWVnD8`D>;s0{tLU`)W zN<9eZj13|k+4nO&y0LCB4G(BydR(j2`w8ebUD|GpgBVZPhvJMDDPE$i{Ex}BEhz&` z#r9d(*-LYrb2J0tmF0e?>W}kj}1e=jO*INWw2+vn&z~j3VaL5 zQn|((%ZvoqcRFi2_`Vx^&tsY8aqULAyWXo#zaiuoI%P@sB7Ez;>U4+hiQKEM!?Vn| zKV5%=Cg{bM$4QgAcfLHN-MAlJ+UG%M1@~5Kd+tY<_SC6y*-v-u-FDfqW4I52mVh0G z9^zv-f9LT5y@!tR_mkjbr9w3&f_P2ja^Es%ynudU%jHaRk>uPd6S>afo z#F1sL_dcL}P!?mlR_?NAoNI7DNV@j(Wt4H5_!91s`vT6EJgZE^&nR0WzKAjAp%Ja~ z7!sd{F5%}!io|E3L-FuP*6Kga4aDN2M(iKi8`*m}@DTJpp;IBmtdBk^>|E-81^mAS z_Z*4sLSDa)df*ZMxrL~I`@{uj`cTF=RH!$wOQ0GZu%2+-TaC8(xN{yX<10(p zXR=K&j(n^)P&aa_@vtuY#q1#4nT}J_8yF0Wi_oq%iU_1D-ZJz-80+h-KxowZSG1Km zXqO4Jx6Pv5zc;dPcL;v}m45LH#IY_Ezo#oTOd_#xuH8Rtdk)%iAYLnyX`z2}$IY}E z_iqyAweEPBF4L#mkDYYqV6COVpC?{=ee|rHcm?{4VXO!31<$iy_J_bk>P$T&df{s? zbT^^%iT4`33(?!}6MaFvkK7^0j@m;Shfj#n*)@nu)5vnWH&Kpj=NLcxo$}yg8^bxo z@S6_5lp#jXVjj8vgSavG>chT*y(7%?Oy(JWb$kqOiAIcNu{_!b@_&N9rvd$1L+F=@ zx*GJ+y|jPy_0j8D&PSo{J8oTeA5BEg%tHCH{Pso~p=)IYnf@GLLO;5E z+_>⪙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 z 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 Rp#_8L)IlfbwS6z_{{Zm4cZ~o5 diff --git a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map deleted file mode 100644 index 573f11a..0000000 --- a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map +++ /dev/null @@ -1,5374 +0,0 @@ -Archive member included because of file (symbol) - -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o (SoftReset) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (CheKseg0CacheOn) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (INTConfigureSystem) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (INTEnableInterrupts) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (INTDisableInterrupts) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (INTRestoreInterrupts) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (__floatunsisf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o (memcpy) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o (memset) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o (strcpy) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o (strlen) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_bootstrap_exception_handler) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_on_reset) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_on_bootstrap) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_nmi_handler) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_general_exception_context) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_0) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_1) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_2) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_5) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_6) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_7) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_8) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_9) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_10) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_11) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_12) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_13) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_14) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_15) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_16) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_17) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_18) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_19) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_20) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_21) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_22) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_23) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_25) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_26) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_27) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_28) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_29) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_30) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_31) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_33) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_34) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_35) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_36) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_37) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_38) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_39) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_40) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_41) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_42) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_43) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_44) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_45) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_46) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_47) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_48) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_49) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_50) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_51) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_52) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_53) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_54) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_55) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_56) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_57) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_58) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_59) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_60) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_61) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_62) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_63) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) (_DefaultInterrupt) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (fpdiv) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (fpmul) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (fpadd) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (sitofp) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o (_iob) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o (fflush) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o (malloc) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o (puts) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o (setbuf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o (strncmp) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - (_printf_cdfFnopsuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdnopsuxX.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o (_printf_cdnopsuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdnopuxX.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/main.o (_printf_cdnopuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_fF.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o (_printf_fF) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o (_sprintf_cdfFnopuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdnopuxX.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/Util.o (_sprintf_cdnopuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o (_sscanf_s) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) (fputc) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) (_bufallo) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) (errno) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) (_vfprintf_cdfFnopsuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopuxX.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) (_vfprintf_cdfFnopuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdnopsuxX.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdnopsuxX.eo) (_vfprintf_cdnopsuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdnopuxX.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdnopuxX.eo) (_vfprintf_cdnopuxX) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_fF.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_fF.eo) (_vfprintf_fF) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) (_vfscanf_s) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) (_flsbuf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) (fgetc) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) (atoi) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (_ctype) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) (tolower) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (_powers_f) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) (ungetc) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) (_filbuf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) (sbrk) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) (read) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) (write) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) (__XC_UART) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (fpcmp) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (frexpf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (fptoui) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (__floatdisf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (__floatundisf) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (__udivdi3) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) (__umoddi3) - -Allocating common symbols -Common symbol size file - -mSyslogBufPtr 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o -BootloaderRxPtr 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o -u8IsMacAddrValid 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -CurDataChunkSize 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -mTerminalOpened 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -TerminalDataPtr 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -gpfAppResolveCb 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -BootloaderFirmwareChunkWriteCount - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -BootloaderFlashWriteDataPtr - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -mTerminalPendingAction - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -acIntUartRxBuff 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o -mCurIPAddress 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -mBatteryCurrent 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -mVoltageMeanSum 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -mSPIFlashHighSpeedBaudrate - 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o -NetworkRxBuf 0x400 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -TerminalRxBuf 0x400 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -mStoredBootloaderInfo - 0x14 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -TerminalWorkString 0x12c build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -gu16BufferSize 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -mWifiSPIBaudrate 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o -BootloaderRxBuf 0x400 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -mVoltageMeanCount 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -mBatterySOC 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -BootloaderFlashErased - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -gpfAppSocketCb 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -BootloaderFlashWriteState - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -mac_addr 0x6 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -mLoraSMState 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o -BootloaderCurFlashWriteAddress - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -mRxData 0x136 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o -mHelpStringPtr 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -mSyslogBuffer 0x1f4 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o -mDeviceID 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o -mCurrentMeanCount 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -ActualTemp 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/main.o -addr_in 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -BooloaderFlashEraseState - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -PowerRelayState 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o -param 0x1c build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -mCurrentMeanSum 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -mModuleIPConfig 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -gsockerrno 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -astUartData 0x620 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o -mLastTransactionOK 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o -BootloaderBuffer 0x12c build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -I2CSlaveBuffer 0xa build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o -mSPIFlashBaudrate 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o -BootloaderCurFlashEraseAddress - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -TerminalPrevDataBuf - 0x12c build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -BootloaderFlashWritePollCount - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -BootloaderInterfaceState - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -DataChunkWritten 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -mTxData 0x136 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o -mBatteryVoltage 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -mSPIFlashOK 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o -mI2CWaitCounter 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o -gastrSockets 0xb0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -mCurrentModuleOK 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -at_sb_printf 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o -mTerminalTickState 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -I2CMasterBuffer 0xa build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o -BooloaderFlashErasePollCount - 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -FirmwareUploaded 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -gfpPingCb 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -mFlashSectorBuffer 0x1000 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o -CurDataChunkIndex 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -gu8OpCode 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -astTimer 0x108 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o -TerminalDataBuf 0x12c build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -astInternalUartData - 0x40 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o -SyslogRxBuf 0xc8 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - -Microchip PIC32 Memory-Usage Report - -kseg0 Program-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -.text 0x9d005800 0xc124 49444 App's exec code -.text._vfprintf_cdfFnop 0x9d011924 0x13d4 5076 -.text 0x9d012cf8 0x8000 32768 App's exec code -.dinit 0x9d01acf8 0xb60 2912 -.text 0x9d01b858 0x974 2420 App's exec code -.text._vfscanf_s 0x9d01c1cc 0x868 2152 -.text 0x9d01ca34 0x7e8 2024 App's exec code -.rodata 0x9d01d21c 0x7b8 1976 Read-only const -.text 0x9d01d9d4 0x2444 9284 App's exec code -.rodata 0x9d01fe18 0x494 1172 Read-only const -.text 0x9d0202ac 0x1534 5428 App's exec code -.rodata 0x9d0217e0 0x404 1028 Read-only const -.text 0x9d021be4 0xd6c 3436 App's exec code -.text.scale 0x9d022950 0x2a0 672 -.text.fpsubadd 0x9d022bf0 0x278 632 -.text.malloc 0x9d022e68 0x278 632 -.text 0x9d0230e0 0x988 2440 App's exec code -.rodata 0x9d023a68 0x254 596 Read-only const -.text.fp32div 0x9d023cbc 0x230 560 -.text.__floatdisf 0x9d023eec 0x220 544 -.text.fp32mul 0x9d02410c 0x1bc 444 -.text 0x9d0242c8 0x1a0 416 App's exec code -.text.realloc 0x9d024468 0x194 404 -.text._sbrk_init 0x9d0245fc 0x194 404 -.text._filbuf 0x9d024790 0x188 392 -.text.read 0x9d024918 0x174 372 -.text 0x9d024a8c 0x2d0 720 App's exec code -.text.fputc 0x9d024d5c 0x15c 348 -.text._flsbuf 0x9d024eb8 0x12c 300 -.text 0x9d024fe4 0x11c 284 App's exec code -.text.fgetc 0x9d025100 0x108 264 -.rodata 0x9d025208 0x204 516 Read-only const -.text.setvbuf 0x9d02540c 0xfc 252 -.rodata 0x9d025508 0xe0 224 Read-only const -.text.general_exception 0x9d0255e8 0xdc 220 -.text 0x9d0256c4 0x1ac 428 App's exec code -.rodata 0x9d025870 0xc8 200 Read-only const -.text._sbrk 0x9d025938 0xc4 196 -.text 0x9d0259fc 0xa8 168 App's exec code -.text.atoi 0x9d025aa4 0xa8 168 -.text.range 0x9d025b4c 0xa0 160 -.text.fpcmp 0x9d025bec 0x9c 156 -.text.fflush 0x9d025c88 0x94 148 -.text.write 0x9d025d1c 0x94 148 -.text.libm 0x9d025db0 0x88 136 -.text 0x9d025e38 0x80 128 App's exec code -.text.fptoul 0x9d025eb8 0x7c 124 -.text.SoftReset 0x9d025f34 0x78 120 -.text.fputs 0x9d025fac 0x78 120 -.text.strncmp 0x9d026024 0x78 120 -.text.ungetc 0x9d02609c 0x74 116 -.text 0x9d026110 0xd8 216 App's exec code -.text._sprintf_cdfFnopu 0x9d0261e8 0x68 104 -.rodata 0x9d026250 0x68 104 Read-only const -.text.sitofp 0x9d0262b8 0x60 96 -.text.wspace 0x9d026318 0x60 96 -.text 0x9d026378 0x58 88 App's exec code -.text._sscanf_s 0x9d0263d0 0x54 84 -.text._bufallo 0x9d026424 0x54 84 -.text.sbrk 0x9d026478 0x50 80 -.text.main_entry 0x9d0264c8 0x4c 76 -.text 0x9d026514 0x4c 76 App's exec code -.text._bootstrap_except 0x9d026560 0x48 72 -.text 0x9d0265a8 0x44 68 App's exec code -.text.puts 0x9d0265ec 0x44 68 -.text._printf_cdfFnopsu 0x9d026630 0x40 64 -.vector_default 0x9d026670 0x38 56 -.rodata 0x9d0266a8 0x64 100 Read-only const -.text.INTConfigureSyste 0x9d02670c 0x30 48 -.text.free 0x9d02673c 0x30 48 -.text._stub_sbd_memlayo 0x9d02676c 0x2c 44 -.rodata 0x9d026798 0x28 40 Read-only const -.text.tolower 0x9d0267c0 0x24 36 -.text.toupper 0x9d0267e4 0x24 36 -.text 0x9d026808 0x20 32 App's exec code -.rodata 0x9d026828 0x1c 28 Read-only const -.text.INTRestoreInterru 0x9d026844 0x1c 28 -.text.setbuf 0x9d026860 0x1c 28 -.rodata 0x9d02687c 0x30 48 Read-only const -.text.CheKseg0CacheOff 0x9d0268ac 0x18 24 -.text.CheKseg0CacheOn 0x9d0268c4 0x18 24 -.text 0x9d0268dc 0x18 24 App's exec code -.text.isalnum 0x9d0268f4 0x18 24 -.text.isalpha 0x9d02690c 0x18 24 -.text.iscntrl 0x9d026924 0x18 24 -.text.isdigit 0x9d02693c 0x18 24 -.text.isgraph 0x9d026954 0x18 24 -.text.islower 0x9d02696c 0x18 24 -.text.isprint 0x9d026984 0x18 24 -.text.ispunct 0x9d02699c 0x18 24 -.text.isspace 0x9d0269b4 0x18 24 -.text.isupper 0x9d0269cc 0x18 24 -.text.isxdigit 0x9d0269e4 0x18 24 -.text._buffree 0x9d0269fc 0x14 20 -.rodata 0x9d026a10 0x10 16 Read-only const -.text.__exception_handl 0x9d026a20 0xc 12 -.rodata 0x9d026a2c 0x18 24 Read-only const -.text.INTEnableInterrup 0x9d026a44 0x8 8 -.text.INTDisableInterru 0x9d026a4c 0x8 8 -.text._on_reset 0x9d026a54 0x8 8 -.text._on_bootstrap 0x9d026a5c 0x8 8 -.text.isascii 0x9d026a64 0x8 8 -.text.toascii 0x9d026a6c 0x8 8 -.text._tolower 0x9d026a74 0x8 8 -.text._toupper 0x9d026a7c 0x8 8 -.text.getpagesize 0x9d026a84 0x8 8 -.rodata 0x9d026a8c 0xc 12 Read-only const - Total kseg0_program_mem used : 0x21298 135832 27.1% of 0x7a7ff - -kseg0 Boot-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -.startup 0x9d005000 0x1e8 488 C startup code - Total kseg0_boot_mem used : 0x1e8 488 24.0% of 0x7f0 - -Exception-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -.app_excpt 0x9d004180 0x10 16 General-Exception -.vector_0 0x9d004200 0x8 8 Interrupt Vector 0 -.vector_1 0x9d004220 0x8 8 Interrupt Vector 1 -.vector_2 0x9d004240 0x8 8 Interrupt Vector 2 -.vector_3 0x9d004260 0x8 8 Interrupt Vector 3 -.vector_4 0x9d004280 0x8 8 Interrupt Vector 4 -.vector_5 0x9d0042a0 0x8 8 Interrupt Vector 5 -.vector_6 0x9d0042c0 0x8 8 Interrupt Vector 6 -.vector_7 0x9d0042e0 0x8 8 Interrupt Vector 7 -.vector_8 0x9d004300 0x8 8 Interrupt Vector 8 -.vector_9 0x9d004320 0x8 8 Interrupt Vector 9 -.vector_10 0x9d004340 0x8 8 Interrupt Vector 10 -.vector_11 0x9d004360 0x8 8 Interrupt Vector 11 -.vector_12 0x9d004380 0x8 8 Interrupt Vector 12 -.vector_13 0x9d0043a0 0x8 8 Interrupt Vector 13 -.vector_14 0x9d0043c0 0x8 8 Interrupt Vector 14 -.vector_15 0x9d0043e0 0x8 8 Interrupt Vector 15 -.vector_16 0x9d004400 0x8 8 Interrupt Vector 16 -.vector_17 0x9d004420 0x8 8 Interrupt Vector 17 -.vector_18 0x9d004440 0x8 8 Interrupt Vector 18 -.vector_19 0x9d004460 0x8 8 Interrupt Vector 19 -.vector_20 0x9d004480 0x8 8 Interrupt Vector 20 -.vector_21 0x9d0044a0 0x8 8 Interrupt Vector 21 -.vector_22 0x9d0044c0 0x8 8 Interrupt Vector 22 -.vector_23 0x9d0044e0 0x8 8 Interrupt Vector 23 -.vector_24 0x9d004500 0x8 8 Interrupt Vector 24 -.vector_25 0x9d004520 0x8 8 Interrupt Vector 25 -.vector_26 0x9d004540 0x8 8 Interrupt Vector 26 -.vector_27 0x9d004560 0x8 8 Interrupt Vector 27 -.vector_28 0x9d004580 0x8 8 Interrupt Vector 28 -.vector_29 0x9d0045a0 0x8 8 Interrupt Vector 29 -.vector_30 0x9d0045c0 0x8 8 Interrupt Vector 30 -.vector_31 0x9d0045e0 0x8 8 Interrupt Vector 31 -.vector_32 0x9d004600 0x8 8 Interrupt Vector 32 -.vector_33 0x9d004620 0x8 8 Interrupt Vector 33 -.vector_34 0x9d004640 0x8 8 Interrupt Vector 34 -.vector_35 0x9d004660 0x8 8 Interrupt Vector 35 -.vector_36 0x9d004680 0x8 8 Interrupt Vector 36 -.vector_37 0x9d0046a0 0x8 8 Interrupt Vector 37 -.vector_38 0x9d0046c0 0x8 8 Interrupt Vector 38 -.vector_39 0x9d0046e0 0x8 8 Interrupt Vector 39 -.vector_40 0x9d004700 0x8 8 Interrupt Vector 40 -.vector_41 0x9d004720 0x8 8 Interrupt Vector 41 -.vector_42 0x9d004740 0x8 8 Interrupt Vector 42 -.vector_43 0x9d004760 0x8 8 Interrupt Vector 43 -.vector_44 0x9d004780 0x8 8 Interrupt Vector 44 -.vector_45 0x9d0047a0 0x8 8 Interrupt Vector 45 -.vector_46 0x9d0047c0 0x8 8 Interrupt Vector 46 -.vector_47 0x9d0047e0 0x8 8 Interrupt Vector 47 -.vector_48 0x9d004800 0x8 8 Interrupt Vector 48 -.vector_49 0x9d004820 0x8 8 Interrupt Vector 49 -.vector_50 0x9d004840 0x8 8 Interrupt Vector 50 -.vector_51 0x9d004860 0x8 8 Interrupt Vector 51 -.vector_52 0x9d004880 0x8 8 Interrupt Vector 52 -.vector_53 0x9d0048a0 0x8 8 Interrupt Vector 53 -.vector_54 0x9d0048c0 0x8 8 Interrupt Vector 54 -.vector_55 0x9d0048e0 0x8 8 Interrupt Vector 55 -.vector_56 0x9d004900 0x8 8 Interrupt Vector 56 -.vector_57 0x9d004920 0x8 8 Interrupt Vector 57 -.vector_58 0x9d004940 0x8 8 Interrupt Vector 58 -.vector_59 0x9d004960 0x8 8 Interrupt Vector 59 -.vector_60 0x9d004980 0x8 8 Interrupt Vector 60 -.vector_61 0x9d0049a0 0x8 8 Interrupt Vector 61 -.vector_62 0x9d0049c0 0x8 8 Interrupt Vector 62 -.vector_63 0x9d0049e0 0x8 8 Interrupt Vector 63 - Total exception_mem used : 0x210 528 12.9% of 0x1000 - -kseg1 Boot-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -.reset 0xbfc00000 0x8 8 Reset handler -.bev_excpt 0xbfc00380 0x10 16 BEV-Exception - Total kseg1_boot_mem used : 0x18 24 2.1% of 0x490 - -------------------------------------------------------------------------- - Total Program Memory used : 0x216a8 136872 26.9% of 0x7c47f - -------------------------------------------------------------------------- - - -kseg0 Data-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -reserve_data_0_kseg0 0x80000000 0x200 512 - Total kseg0_data_mem used : 0x200 512 100.0% of 0x200 - -kseg1 Data-Memory Usage -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -reserve_data_0_kseg1 0xa0000000 0x200 512 -.eh_frame 0xa0000200 0x30 48 -.sdata 0xa0000230 0x7c 124 Small init data -.sbss 0xa00002ac 0x1ac 428 Small uninit data -.bss 0xa0000458 0x2e5c 11868 Uninitialized data -.data 0xa00032b4 0x4bc 1212 Initialized data -.bss 0xa0003770 0x800 2048 Uninitialized data -.data 0xa0003f70 0x2c4 708 Initialized data -.bss 0xa0004234 0x74 116 Uninitialized data - Total kseg1_data_mem used : 0x42a8 17064 26.0% of 0x10000 - -------------------------------------------------------------------------- - Total Data Memory used : 0x44a8 17576 26.6% of 0x10200 - -------------------------------------------------------------------------- - - -Dynamic Data-Memory Reservation -section address length [bytes] (dec) Description -------- ---------- ------------------------- ----------- -heap 0xa00042b0 0x200 512 Reserved for heap -stack 0xa00044c8 0xbb30 47920 Reserved for stack - - -------------------------------------------------------------------------- - -Discarded input sections - - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o - .discard 0x00000000 0x100 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -Memory Configuration - -Name Origin Length Attributes -kseg0_data_mem 0x80000000 0x00000200 -kseg1_data_mem 0xa0000000 0x00010000 w !x -kseg0_boot_mem 0x9d005000 0x000007f0 -kseg1_boot_mem 0xbfc00000 0x00000490 -kseg0_program_mem 0x9d005800 0x0007a7ff xr -exception_mem 0x9d004000 0x00001000 -debug_exec_mem 0xbfc02000 0x00000ff0 -config3 0xbfc02ff0 0x00000004 -config2 0xbfc02ff4 0x00000004 -config1 0xbfc02ff8 0x00000004 -config0 0xbfc02ffc 0x00000004 -sfrs 0xbf800000 0x00100000 -configsfrs 0xbfc02ff0 0x00000010 -*default* 0x00000000 0xffffffff - -Linker script and memory map - - -reserve_data_0_kseg0 - 0x80000000 0x200 - 0x80000000 0x2 SHORT 0x0 - 0x000001fd . = 0x1fd - *fill* 0x80000002 0x1fb - 0x80000200 . = ALIGN (0x4) - *fill* 0x800001fd 0x3 - -reserve_data_0_kseg1 - 0xa0000000 0x200 - 0xa0000000 0x2 SHORT 0x0 - 0x000001fd . = 0x1fd - *fill* 0xa0000002 0x1fb - 0xa0000200 . = ALIGN (0x4) - *fill* 0xa00001fd 0x3 - -reserve_boot_0x1fc02000_kseg0 - 0x9fc02000 0xff0 - 0x9fc02000 0x2 SHORT 0x0 - 0x00000500 . = 0x500 - *fill* 0x9fc02002 0x4fe - 0x9fc02500 . = ALIGN (0x4) - 0x9fc02500 0x2 SHORT 0x0 - 0x00000ff0 . = 0xff0 - *fill* 0x9fc02502 0xaee - 0x9fc02ff0 . = ALIGN (0x4) - -reserve_boot_0x1fc02000_kseg1 - 0xbfc02000 0xff0 - 0xbfc02000 0x2 SHORT 0x0 - 0x00000500 . = 0x500 - *fill* 0xbfc02002 0x4fe - 0xbfc02500 . = ALIGN (0x4) - 0xbfc02500 0x2 SHORT 0x0 - 0x00000ff0 . = 0xff0 - *fill* 0xbfc02502 0xaee - 0xbfc02ff0 . = ALIGN (0x4) -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/Util.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/main.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/system.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/template.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/timer.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o -LOAD build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - 0x00000001 __MPLAB_BUILD = 0x1 - 0x00000400 PROVIDE (_min_stack_size, 0x400) -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o -START GROUP -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral.a -END GROUP -START GROUP -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a -END GROUP - 0x00000001 PROVIDE (_vector_spacing, 0x1) - 0x9d004000 _ebase_address = 0x9d004000 - 0xbfc00000 _RESET_ADDR = 0xbfc00000 - 0xbfc00380 _BEV_EXCPT_ADDR = 0xbfc00380 - 0xbfc00480 _DBG_EXCPT_ADDR = 0xbfc00480 - 0xbfc02000 _DBG_CODE_ADDR = 0xbfc02000 - 0x00000ff0 _DBG_CODE_SIZE = 0xff0 - 0x9d004180 _GEN_EXCPT_ADDR = (_ebase_address + 0x180) - -.config_BFC02FF0 - *(.config_BFC02FF0) - -.config_BFC02FF4 - 0xbfc02ff4 0x4 - *(.config_BFC02FF4) - .config_BFC02FF4 - 0xbfc02ff4 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - -.config_BFC02FF8 - 0xbfc02ff8 0x4 - *(.config_BFC02FF8) - .config_BFC02FF8 - 0xbfc02ff8 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - -.config_BFC02FFC - 0xbfc02ffc 0x4 - *(.config_BFC02FFC) - .config_BFC02FFC - 0xbfc02ffc 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - 0xbfc02000 PROVIDE (_DBG_CODE_ADDR, 0xbfc02000) - 0x00000ff0 PROVIDE (_DBG_CODE_SIZE, 0xff0) - -.reset 0xbfc00000 0x8 - *(.reset) - .reset 0xbfc00000 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - 0xbfc00000 _reset - -.bev_excpt 0xbfc00380 0x10 - *(.bev_handler) - .bev_handler 0xbfc00380 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.dbg_excpt 0xbfc00480 0x0 - 0xbfc00480 . = (. + DEFINED (_DEBUGGER)?0x8:0x0) - -.dbg_code 0xbfc02000 0x0 - 0xbfc02000 . = (. + DEFINED (_DEBUGGER)?_DBG_CODE_SIZE:0x0) - -.app_excpt 0x9d004180 0x10 - *(.gen_handler) - .gen_handler 0x9d004180 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.vector_0 0x9d004200 0x8 - *(.vector_0) - .vector_0 0x9d004200 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - 0x9d004200 __vector_dispatch_0 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_0) <= (_vector_spacing << 0x5))), function at exception vector 0 too large) - -.vector_1 0x9d004220 0x8 - *(.vector_1) - .vector_1 0x9d004220 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - 0x9d004220 __vector_dispatch_1 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_1) <= (_vector_spacing << 0x5))), function at exception vector 1 too large) - -.vector_2 0x9d004240 0x8 - *(.vector_2) - .vector_2 0x9d004240 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - 0x9d004240 __vector_dispatch_2 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_2) <= (_vector_spacing << 0x5))), function at exception vector 2 too large) - -.vector_3 0x9d004260 0x8 - *(.vector_3) - .vector_3 0x9d004260 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - 0x9d004260 __vector_dispatch_3 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_3) <= (_vector_spacing << 0x5))), function at exception vector 3 too large) - -.vector_4 0x9d004280 0x8 - *(.vector_4) - .vector_4 0x9d004280 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - 0x9d004280 __vector_dispatch_4 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_4) <= (_vector_spacing << 0x5))), function at exception vector 4 too large) - -.vector_5 0x9d0042a0 0x8 - *(.vector_5) - .vector_5 0x9d0042a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - 0x9d0042a0 __vector_dispatch_5 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_5) <= (_vector_spacing << 0x5))), function at exception vector 5 too large) - -.vector_6 0x9d0042c0 0x8 - *(.vector_6) - .vector_6 0x9d0042c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - 0x9d0042c0 __vector_dispatch_6 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_6) <= (_vector_spacing << 0x5))), function at exception vector 6 too large) - -.vector_7 0x9d0042e0 0x8 - *(.vector_7) - .vector_7 0x9d0042e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - 0x9d0042e0 __vector_dispatch_7 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_7) <= (_vector_spacing << 0x5))), function at exception vector 7 too large) - -.vector_8 0x9d004300 0x8 - *(.vector_8) - .vector_8 0x9d004300 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - 0x9d004300 __vector_dispatch_8 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_8) <= (_vector_spacing << 0x5))), function at exception vector 8 too large) - -.vector_9 0x9d004320 0x8 - *(.vector_9) - .vector_9 0x9d004320 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - 0x9d004320 __vector_dispatch_9 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_9) <= (_vector_spacing << 0x5))), function at exception vector 9 too large) - -.vector_10 0x9d004340 0x8 - *(.vector_10) - .vector_10 0x9d004340 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - 0x9d004340 __vector_dispatch_10 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_10) <= (_vector_spacing << 0x5))), function at exception vector 10 too large) - -.vector_11 0x9d004360 0x8 - *(.vector_11) - .vector_11 0x9d004360 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - 0x9d004360 __vector_dispatch_11 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_11) <= (_vector_spacing << 0x5))), function at exception vector 11 too large) - -.vector_12 0x9d004380 0x8 - *(.vector_12) - .vector_12 0x9d004380 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - 0x9d004380 __vector_dispatch_12 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_12) <= (_vector_spacing << 0x5))), function at exception vector 12 too large) - -.vector_13 0x9d0043a0 0x8 - *(.vector_13) - .vector_13 0x9d0043a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - 0x9d0043a0 __vector_dispatch_13 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_13) <= (_vector_spacing << 0x5))), function at exception vector 13 too large) - -.vector_14 0x9d0043c0 0x8 - *(.vector_14) - .vector_14 0x9d0043c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - 0x9d0043c0 __vector_dispatch_14 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_14) <= (_vector_spacing << 0x5))), function at exception vector 14 too large) - -.vector_15 0x9d0043e0 0x8 - *(.vector_15) - .vector_15 0x9d0043e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - 0x9d0043e0 __vector_dispatch_15 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_15) <= (_vector_spacing << 0x5))), function at exception vector 15 too large) - -.vector_16 0x9d004400 0x8 - *(.vector_16) - .vector_16 0x9d004400 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - 0x9d004400 __vector_dispatch_16 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_16) <= (_vector_spacing << 0x5))), function at exception vector 16 too large) - -.vector_17 0x9d004420 0x8 - *(.vector_17) - .vector_17 0x9d004420 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - 0x9d004420 __vector_dispatch_17 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_17) <= (_vector_spacing << 0x5))), function at exception vector 17 too large) - -.vector_18 0x9d004440 0x8 - *(.vector_18) - .vector_18 0x9d004440 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - 0x9d004440 __vector_dispatch_18 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_18) <= (_vector_spacing << 0x5))), function at exception vector 18 too large) - -.vector_19 0x9d004460 0x8 - *(.vector_19) - .vector_19 0x9d004460 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - 0x9d004460 __vector_dispatch_19 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_19) <= (_vector_spacing << 0x5))), function at exception vector 19 too large) - -.vector_20 0x9d004480 0x8 - *(.vector_20) - .vector_20 0x9d004480 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - 0x9d004480 __vector_dispatch_20 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_20) <= (_vector_spacing << 0x5))), function at exception vector 20 too large) - -.vector_21 0x9d0044a0 0x8 - *(.vector_21) - .vector_21 0x9d0044a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - 0x9d0044a0 __vector_dispatch_21 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_21) <= (_vector_spacing << 0x5))), function at exception vector 21 too large) - -.vector_22 0x9d0044c0 0x8 - *(.vector_22) - .vector_22 0x9d0044c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - 0x9d0044c0 __vector_dispatch_22 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_22) <= (_vector_spacing << 0x5))), function at exception vector 22 too large) - -.vector_23 0x9d0044e0 0x8 - *(.vector_23) - .vector_23 0x9d0044e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - 0x9d0044e0 __vector_dispatch_23 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_23) <= (_vector_spacing << 0x5))), function at exception vector 23 too large) - -.vector_24 0x9d004500 0x8 - *(.vector_24) - .vector_24 0x9d004500 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0x9d004500 __vector_dispatch_24 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_24) <= (_vector_spacing << 0x5))), function at exception vector 24 too large) - -.vector_25 0x9d004520 0x8 - *(.vector_25) - .vector_25 0x9d004520 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - 0x9d004520 __vector_dispatch_25 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_25) <= (_vector_spacing << 0x5))), function at exception vector 25 too large) - -.vector_26 0x9d004540 0x8 - *(.vector_26) - .vector_26 0x9d004540 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - 0x9d004540 __vector_dispatch_26 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_26) <= (_vector_spacing << 0x5))), function at exception vector 26 too large) - -.vector_27 0x9d004560 0x8 - *(.vector_27) - .vector_27 0x9d004560 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - 0x9d004560 __vector_dispatch_27 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_27) <= (_vector_spacing << 0x5))), function at exception vector 27 too large) - -.vector_28 0x9d004580 0x8 - *(.vector_28) - .vector_28 0x9d004580 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - 0x9d004580 __vector_dispatch_28 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_28) <= (_vector_spacing << 0x5))), function at exception vector 28 too large) - -.vector_29 0x9d0045a0 0x8 - *(.vector_29) - .vector_29 0x9d0045a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - 0x9d0045a0 __vector_dispatch_29 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_29) <= (_vector_spacing << 0x5))), function at exception vector 29 too large) - -.vector_30 0x9d0045c0 0x8 - *(.vector_30) - .vector_30 0x9d0045c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - 0x9d0045c0 __vector_dispatch_30 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_30) <= (_vector_spacing << 0x5))), function at exception vector 30 too large) - -.vector_31 0x9d0045e0 0x8 - *(.vector_31) - .vector_31 0x9d0045e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - 0x9d0045e0 __vector_dispatch_31 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_31) <= (_vector_spacing << 0x5))), function at exception vector 31 too large) - -.vector_32 0x9d004600 0x8 - *(.vector_32) - .vector_32 0x9d004600 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0x9d004600 __vector_dispatch_32 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_32) <= (_vector_spacing << 0x5))), function at exception vector 32 too large) - -.vector_33 0x9d004620 0x8 - *(.vector_33) - .vector_33 0x9d004620 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - 0x9d004620 __vector_dispatch_33 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_33) <= (_vector_spacing << 0x5))), function at exception vector 33 too large) - -.vector_34 0x9d004640 0x8 - *(.vector_34) - .vector_34 0x9d004640 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - 0x9d004640 __vector_dispatch_34 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_34) <= (_vector_spacing << 0x5))), function at exception vector 34 too large) - -.vector_35 0x9d004660 0x8 - *(.vector_35) - .vector_35 0x9d004660 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - 0x9d004660 __vector_dispatch_35 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_35) <= (_vector_spacing << 0x5))), function at exception vector 35 too large) - -.vector_36 0x9d004680 0x8 - *(.vector_36) - .vector_36 0x9d004680 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - 0x9d004680 __vector_dispatch_36 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_36) <= (_vector_spacing << 0x5))), function at exception vector 36 too large) - -.vector_37 0x9d0046a0 0x8 - *(.vector_37) - .vector_37 0x9d0046a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - 0x9d0046a0 __vector_dispatch_37 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_37) <= (_vector_spacing << 0x5))), function at exception vector 37 too large) - -.vector_38 0x9d0046c0 0x8 - *(.vector_38) - .vector_38 0x9d0046c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - 0x9d0046c0 __vector_dispatch_38 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_38) <= (_vector_spacing << 0x5))), function at exception vector 38 too large) - -.vector_39 0x9d0046e0 0x8 - *(.vector_39) - .vector_39 0x9d0046e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - 0x9d0046e0 __vector_dispatch_39 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_39) <= (_vector_spacing << 0x5))), function at exception vector 39 too large) - -.vector_40 0x9d004700 0x8 - *(.vector_40) - .vector_40 0x9d004700 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - 0x9d004700 __vector_dispatch_40 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_40) <= (_vector_spacing << 0x5))), function at exception vector 40 too large) - -.vector_41 0x9d004720 0x8 - *(.vector_41) - .vector_41 0x9d004720 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - 0x9d004720 __vector_dispatch_41 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_41) <= (_vector_spacing << 0x5))), function at exception vector 41 too large) - -.vector_42 0x9d004740 0x8 - *(.vector_42) - .vector_42 0x9d004740 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - 0x9d004740 __vector_dispatch_42 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_42) <= (_vector_spacing << 0x5))), function at exception vector 42 too large) - -.vector_43 0x9d004760 0x8 - *(.vector_43) - .vector_43 0x9d004760 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - 0x9d004760 __vector_dispatch_43 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_43) <= (_vector_spacing << 0x5))), function at exception vector 43 too large) - -.vector_44 0x9d004780 0x8 - *(.vector_44) - .vector_44 0x9d004780 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - 0x9d004780 __vector_dispatch_44 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_44) <= (_vector_spacing << 0x5))), function at exception vector 44 too large) - -.vector_45 0x9d0047a0 0x8 - *(.vector_45) - .vector_45 0x9d0047a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - 0x9d0047a0 __vector_dispatch_45 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_45) <= (_vector_spacing << 0x5))), function at exception vector 45 too large) - -.vector_46 0x9d0047c0 0x8 - *(.vector_46) - .vector_46 0x9d0047c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - 0x9d0047c0 __vector_dispatch_46 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_46) <= (_vector_spacing << 0x5))), function at exception vector 46 too large) - -.vector_47 0x9d0047e0 0x8 - *(.vector_47) - .vector_47 0x9d0047e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - 0x9d0047e0 __vector_dispatch_47 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_47) <= (_vector_spacing << 0x5))), function at exception vector 47 too large) - -.vector_48 0x9d004800 0x8 - *(.vector_48) - .vector_48 0x9d004800 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - 0x9d004800 __vector_dispatch_48 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_48) <= (_vector_spacing << 0x5))), function at exception vector 48 too large) - -.vector_49 0x9d004820 0x8 - *(.vector_49) - .vector_49 0x9d004820 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - 0x9d004820 __vector_dispatch_49 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_49) <= (_vector_spacing << 0x5))), function at exception vector 49 too large) - -.vector_50 0x9d004840 0x8 - *(.vector_50) - .vector_50 0x9d004840 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - 0x9d004840 __vector_dispatch_50 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_50) <= (_vector_spacing << 0x5))), function at exception vector 50 too large) - -.vector_51 0x9d004860 0x8 - *(.vector_51) - .vector_51 0x9d004860 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - 0x9d004860 __vector_dispatch_51 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_51) <= (_vector_spacing << 0x5))), function at exception vector 51 too large) - -.vector_52 0x9d004880 0x8 - *(.vector_52) - .vector_52 0x9d004880 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - 0x9d004880 __vector_dispatch_52 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_52) <= (_vector_spacing << 0x5))), function at exception vector 52 too large) - -.vector_53 0x9d0048a0 0x8 - *(.vector_53) - .vector_53 0x9d0048a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - 0x9d0048a0 __vector_dispatch_53 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_53) <= (_vector_spacing << 0x5))), function at exception vector 53 too large) - -.vector_54 0x9d0048c0 0x8 - *(.vector_54) - .vector_54 0x9d0048c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - 0x9d0048c0 __vector_dispatch_54 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_54) <= (_vector_spacing << 0x5))), function at exception vector 54 too large) - -.vector_55 0x9d0048e0 0x8 - *(.vector_55) - .vector_55 0x9d0048e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - 0x9d0048e0 __vector_dispatch_55 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_55) <= (_vector_spacing << 0x5))), function at exception vector 55 too large) - -.vector_56 0x9d004900 0x8 - *(.vector_56) - .vector_56 0x9d004900 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - 0x9d004900 __vector_dispatch_56 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_56) <= (_vector_spacing << 0x5))), function at exception vector 56 too large) - -.vector_57 0x9d004920 0x8 - *(.vector_57) - .vector_57 0x9d004920 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - 0x9d004920 __vector_dispatch_57 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_57) <= (_vector_spacing << 0x5))), function at exception vector 57 too large) - -.vector_58 0x9d004940 0x8 - *(.vector_58) - .vector_58 0x9d004940 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - 0x9d004940 __vector_dispatch_58 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_58) <= (_vector_spacing << 0x5))), function at exception vector 58 too large) - -.vector_59 0x9d004960 0x8 - *(.vector_59) - .vector_59 0x9d004960 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - 0x9d004960 __vector_dispatch_59 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_59) <= (_vector_spacing << 0x5))), function at exception vector 59 too large) - -.vector_60 0x9d004980 0x8 - *(.vector_60) - .vector_60 0x9d004980 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - 0x9d004980 __vector_dispatch_60 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_60) <= (_vector_spacing << 0x5))), function at exception vector 60 too large) - -.vector_61 0x9d0049a0 0x8 - *(.vector_61) - .vector_61 0x9d0049a0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - 0x9d0049a0 __vector_dispatch_61 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_61) <= (_vector_spacing << 0x5))), function at exception vector 61 too large) - -.vector_62 0x9d0049c0 0x8 - *(.vector_62) - .vector_62 0x9d0049c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - 0x9d0049c0 __vector_dispatch_62 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_62) <= (_vector_spacing << 0x5))), function at exception vector 62 too large) - -.vector_63 0x9d0049e0 0x8 - *(.vector_63) - .vector_63 0x9d0049e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - 0x9d0049e0 __vector_dispatch_63 - 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_63) <= (_vector_spacing << 0x5))), function at exception vector 63 too large) - -.startup 0x9d005000 0x1e8 - *(.startup) - *(.reset.startup) - .reset.startup - 0x9d005000 0x1e8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.text 0x9d005800 0x0 - *(.stub .gnu.linkonce.t.*) - *(.text.*personality*) - *(.mips16.fn.*) - *(.mips16.call.*) - *(.gnu.warning) - 0x9d005800 . = ALIGN (0x4) - -.init 0x9d005800 0x0 - *crti.o(.init) - *crtbegin.o(.init) - *(EXCLUDE_FILE(*crtn.o *crtend?.o *crtend.o) .init) - *crtend.o(.init) - *crtn.o(.init) - 0x9d005800 . = ALIGN (0x4) - -.fini 0x9d005800 0x0 - *(.fini) - 0x9d005800 . = ALIGN (0x4) - -.preinit_array 0x9d005800 0x0 - 0x9d005800 PROVIDE (__preinit_array_start, .) - *(.preinit_array) - 0x9d005800 PROVIDE (__preinit_array_end, .) - 0x9d005800 . = ALIGN (0x4) - -.init_array 0x9d005800 0x0 - 0x9d005800 PROVIDE (__init_array_start, .) - *(SORT(.init_array.*)) - *(.init_array) - 0x9d005800 PROVIDE (__init_array_end, .) - 0x9d005800 . = ALIGN (0x4) - -.fini_array 0x9d005800 0x0 - 0x9d005800 PROVIDE (__fini_array_start, .) - *(SORT(.fini_array.*)) - *(.fini_array) - 0x9d005800 PROVIDE (__fini_array_end, .) - 0x9d005800 . = ALIGN (0x4) - -.ctors 0x9d005800 0x0 - *crtbegin.o(.ctors) - *crtbegin?.o(.ctors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) - *(SORT(.ctors.*)) - *(.ctors) - 0x9d005800 . = ALIGN (0x4) - -.dtors 0x9d005800 0x0 - *crtbegin.o(.dtors) - *crtbegin?.o(.dtors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) - *(SORT(.dtors.*)) - *(.dtors) - 0x9d005800 . = ALIGN (0x4) - -.rodata 0x9d005800 0x0 - *(.gnu.linkonce.r.*) - *(.rodata1) - 0x9d005800 . = ALIGN (0x4) - -.sdata2 0x9d0051e8 0x0 - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - 0x9d0051e8 . = ALIGN (0x4) - -.sbss2 0x9d0051e8 0x0 - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - 0x9d0051e8 . = ALIGN (0x4) - -.eh_frame_hdr - *(.eh_frame_hdr) - 0x9d0051e8 . = ALIGN (0x4) - -.eh_frame - *(.eh_frame) - 0x9d0051e8 . = ALIGN (0x4) - -.gcc_except_table - *(.gcc_except_table .gcc_except_table.*) - 0x9d0051e8 . = ALIGN (0x4) - -.dbg_data 0xa0000200 0x0 - 0xa0000200 . = (. + DEFINED (_DEBUGGER)?0x200:0x0) - -.jcr 0xa0000200 0x0 - *(.jcr) - 0xa0000200 . = ALIGN (0x4) - -.eh_frame 0xa0000200 0x30 - *(.eh_frame) - .eh_frame 0xa0000200 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .eh_frame 0xa0000220 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - 0xa0000230 . = ALIGN (0x4) - -.gcc_except_table - *(.gcc_except_table .gcc_except_table.*) - 0xa0000230 . = ALIGN (0x4) - -.persist 0xa0000230 0x0 - 0xa0000230 _persist_begin = . - *(.persist .persist.*) - *(.pbss .pbss.*) - 0xa0000230 . = ALIGN (0x4) - 0xa0000230 _persist_end = . - -.data 0xa0000230 0x0 - *(.gnu.linkonce.d.*) - *(.data1) - 0xa0000230 . = ALIGN (0x4) - 0xa0000230 . = . - 0xa0008220 _gp = (ALIGN (0x10) + 0x7ff0) - -.got 0xa0000230 0x0 - *(.got.plt) - *(.got) - 0xa0000230 . = ALIGN (0x4) - -.sdata 0xa0000230 0x7c - 0xa0000230 _sdata_begin = . - *(.sdata .sdata.* .gnu.linkonce.s.*) - .sdata 0xa0000230 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - 0xa0000230 egstrNmBusCapabilities - .sdata 0xa0000234 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .sdata 0xa000023c 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .sdata 0xa0000240 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .sdata 0xa0000244 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - 0xa0000244 State - *fill* 0xa0000246 0x2 - .sdata 0xa0000248 0xc build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .sdata 0xa0000254 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - 0xa0000254 gUartStrings - .sdata 0xa0000258 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .sdata 0xa0000260 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - 0xa0000267 TerminalSocket - 0xa0000268 TerminalServerSocket - 0xa0000269 SyslogSocket - 0xa000026a SyslogServerSocket - 0xa000026b NetworkSocket - 0xa000026c NetworkServerSocket - 0xa000026d BootloaderSocket - 0xa000026e BootloaderServerSocket - .sdata 0xa0000270 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - 0xa0000270 mLoraPreamble - .sdata 0xa0000274 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .sdata 0xa000027c 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .sdata 0xa0000284 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .sdata 0xa000028c 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - 0xa0000294 BtldrComputedCRC - 0xa0000298 BootloaderState - 0xa000029c BootloaderDataStartPtr - .sdata 0xa00002a4 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa00002a4 _Files - .sdata 0xa00002a8 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - 0xa00002a8 __XC_UART - 0xa00002ac . = ALIGN (0x4) - 0xa00002ac _sdata_end = . - -.lit8 - *(.lit8) - -.lit4 - *(.lit4) - 0xa00002ac . = ALIGN (0x4) - 0xa00002ac _data_end = . - 0xa00002ac _bss_begin = . - -.sbss 0xa00002ac 0x1ac - 0xa00002ac _sbss_begin = . - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - .sbss 0xa00002ac 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .sbss 0xa00002b0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - 0xa00002b8 pfWifiCb - 0xa00002bc pfIpCb - 0xa00002c0 pfOtaCb - 0xa00002c4 pfSigmaCb - 0xa00002c8 pfHifCb - 0xa00002cc pfSSLCb - .sbss 0xa00002d0 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .sbss 0xa00002d8 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .sbss 0xa00002e0 0x14 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .sbss 0xa00002f4 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .sbss 0xa00002f8 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - *fill* 0xa00002f9 0x1 - .sbss 0xa00002fa 0x6 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - 0xa00002fa gu16SessionID - 0xa00002fc gbSocketInit - .sbss 0xa0000300 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .sbss 0xa0000304 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0xa0000304 LoraData - .sbss 0xa0000308 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - 0xa0000308 DataSize - 0xa000030c DataCtr - 0xa0000310 BufPtr - 0xa0000314 RxPtr - 0xa0000315 Command - 0xa0000316 CRC - 0xa0000317 SenderID - 0xa0000318 SenderAddress - 0xa0000319 Flags - 0xa000031a IsUpdating - 0xa000031c BmpDataPtr - .sbss 0xa0000320 0xc build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .sbss 0xa000032c 0x1c build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - 0xa000032c gu32HostIp - 0xa0000330 gu8RetryCount - 0xa0000340 mWiFiInitOK - 0xa0000344 mWiFiState - .sbss 0xa0000348 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .sbss 0xa000034c 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - 0xa000034c ina219_currentDivider_mA - 0xa0000350 ina219_powerDivider_mW - .sbss 0xa0000354 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - 0xa0000354 WatchdogTriggered - .sbss 0xa0000358 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - 0xa0000358 BootloaderHeader - 0xa000035c BootloaderDataSize - 0xa0000360 BootloaderDataCtr - 0xa0000364 BootloaderBufPtr - 0xa0000368 BootloaderCRC - 0xa000036c BootloaderCommand - .sbss 0xa0000370 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .sbss 0xa0000371 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0000371 _outdone - *fill* 0xa0000372 0x2 - .sbss 0xa0000374 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - 0xa0000374 __allocp - 0xa0000378 __alloct - 0xa000037c __allocx - .sbss 0xa0000384 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - 0xa0000384 errno - .sbss 0xa0000388 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0xa0000388 _minbrk - 0xa000038c _maxbrk - *(.scommon) - .scommon 0xa0000390 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - 0xa0000390 at_sb_printf - .scommon 0xa0000394 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - 0xa0000394 mWifiSPIBaudrate - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .scommon 0xa0000395 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - *fill* 0xa0000395 0x3 - .scommon 0xa0000398 0x15 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - 0xa0000398 gpfAppResolveCb - 0xa000039c gu16BufferSize - 0xa00003a0 gpfAppSocketCb - 0xa00003a4 gsockerrno - 0xa00003a8 gfpPingCb - 0xa00003ac gu8OpCode - .scommon 0xa00003ad 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .scommon 0xa00003ad 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - *fill* 0xa00003ad 0x3 - .scommon 0xa00003b0 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0xa00003b0 acIntUartRxBuff - *fill* 0xa00003b2 0x2 - .scommon 0xa00003b4 0x14 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - 0xa00003b4 mTerminalOpened - 0xa00003b8 TerminalDataPtr - 0xa00003bc mTerminalPendingAction - 0xa00003c0 mHelpStringPtr - 0xa00003c4 mTerminalTickState - .scommon 0xa00003c8 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - 0xa00003c8 ActualTemp - .scommon 0xa00003cc 0xe build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - 0xa00003cc u8IsMacAddrValid - 0xa00003d0 mCurIPAddress - 0xa00003d4 mac_addr - .scommon 0xa00003da 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - *fill* 0xa00003da 0x2 - .scommon 0xa00003dc 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - 0xa00003dc PowerRelayState - .scommon 0xa00003e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - 0xa00003e0 mBatteryCurrent - 0xa00003e4 mVoltageMeanSum - 0xa00003e8 mVoltageMeanCount - 0xa00003ec mBatterySOC - 0xa00003f0 mCurrentMeanCount - 0xa00003f4 mCurrentMeanSum - 0xa00003f8 mBatteryVoltage - 0xa00003fc mCurrentModuleOK - .scommon 0xa0000400 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - 0xa0000400 mLastTransactionOK - 0xa0000404 mI2CWaitCounter - .scommon 0xa0000408 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - 0xa0000408 mSPIFlashHighSpeedBaudrate - 0xa0000409 mSPIFlashBaudrate - 0xa000040c mSPIFlashOK - .scommon 0xa0000410 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - 0xa0000410 mSyslogBufPtr - .scommon 0xa0000414 0x38 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - 0xa0000414 CurDataChunkSize - 0xa0000418 BootloaderFirmwareChunkWriteCount - 0xa000041c BootloaderFlashWriteDataPtr - 0xa0000420 BootloaderFlashErased - 0xa0000424 BootloaderFlashWriteState - 0xa0000428 BootloaderCurFlashWriteAddress - 0xa000042c BooloaderFlashEraseState - 0xa0000430 BootloaderCurFlashEraseAddress - 0xa0000434 BootloaderFlashWritePollCount - 0xa0000438 BootloaderInterfaceState - 0xa000043c DataChunkWritten - 0xa0000440 BooloaderFlashErasePollCount - 0xa0000444 FirmwareUploaded - 0xa0000448 CurDataChunkIndex - .scommon 0xa000044c 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .scommon 0xa000044c 0x2 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - 0xa000044c mDeviceID - *fill* 0xa000044e 0x2 - .scommon 0xa0000450 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - 0xa0000450 BootloaderRxPtr - .scommon 0xa0000454 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - 0xa0000454 mLoraSMState - 0xa0000458 _sbss_end = . - 0xa0000458 . = ALIGN (0x4) - -.bss 0xa0000458 0x2e5c - *(.dynbss) - *(COMMON) - COMMON 0xa0000458 0xb0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - 0xa0000458 gastrSockets - COMMON 0xa0000508 0x40 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0xa0000508 astInternalUartData - COMMON 0xa0000548 0x26e build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - 0xa0000548 mRxData - 0xa0000680 mTxData - *fill* 0xa00007b6 0x2 - COMMON 0xa00007b8 0x398 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - 0xa00007b8 mStoredBootloaderInfo - 0xa00007cc TerminalWorkString - 0xa00008f8 TerminalPrevDataBuf - 0xa0000a24 TerminalDataBuf - COMMON 0xa0000b50 0x620 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - 0xa0000b50 astUartData - COMMON 0xa0001170 0x108 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - 0xa0001170 astTimer - COMMON 0xa0001278 0xd04 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - 0xa0001278 NetworkRxBuf - 0xa0001678 TerminalRxBuf - 0xa0001a78 BootloaderRxBuf - 0xa0001e78 addr_in - 0xa0001e88 param - 0xa0001ea4 mModuleIPConfig - 0xa0001eb4 SyslogRxBuf - COMMON 0xa0001f7c 0x16 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - 0xa0001f7c I2CSlaveBuffer - 0xa0001f88 I2CMasterBuffer - *fill* 0xa0001f92 0x2 - COMMON 0xa0001f94 0x1000 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - 0xa0001f94 mFlashSectorBuffer - COMMON 0xa0002f94 0x1f4 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - 0xa0002f94 mSyslogBuffer - COMMON 0xa0003188 0x12c build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - 0xa0003188 BootloaderBuffer - 0xa00032b4 . = ALIGN ((. != 0x0)?0x4:0x1) - 0xa00032b4 . = ALIGN (0x4) - 0xa00032b4 _end = . - 0xa00032b4 _bss_end = . - 0x00010000 _bmxdudba_address = 0x10000 - 0x00010000 _bmxdupba_address = 0x10000 - -/DISCARD/ - *(.pdr) - *(.rel.dyn) - *(.note.GNU-stack) - *(.note.GNU-stack) - *(.gnu_debuglink) - *(.gnu.lto_*) - *(.discard) - -.gptab.sdata - *(.gptab.data) - *(.gptab.sdata) - -.gptab.sbss - *(.gptab.bss) - *(.gptab.sbss) - -.mdebug.abi32 0xa00032b4 0x0 - *(.mdebug.abi32) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .mdebug.abi32 0xa00032b4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .mdebug.abi32 0xa00032b4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.mdebug.abiN32 - *(.mdebug.abiN32) - -.mdebug.abi64 - *(.mdebug.abi64) - -.mdebug.abiO64 - *(.mdebug.abiO64) - -.mdebug.eabi32 - *(.mdebug.eabi32) - -.mdebug.eabi64 - *(.mdebug.eabi64) - -.gcc_compiled_long32 - *(.gcc_compiled_long32) - -.gcc_compiled_long64 - *(.gcc_compiled_long64) - -.stab - *(.stab) - -.stabstr - *(.stabstr) - -.stab.excl - *(.stab.excl) - -.stab.exclstr - *(.stab.exclstr) - -.stab.index - *(.stab.index) - -.stab.indexstr - *(.stab.indexstr) - -.comment 0x00000000 0x248 - *(.comment) - .comment 0x00000000 0x3c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - 0x3d (size before relaxing) - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .comment 0x0000003c 0x3c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - 0x3d (size before relaxing) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .comment 0x00000078 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - 0x19 (size before relaxing) - .comment 0x00000090 0x19 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - 0x1a (size before relaxing) - .comment 0x000000a9 0x19 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - 0x1a (size before relaxing) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .comment 0x000000c2 0x4e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - 0x8b (size before relaxing) - .comment 0x00000110 0x4f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x8c (size before relaxing) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .comment 0x0000015f 0x4b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x88 (size before relaxing) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .comment 0x000001aa 0x9e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - 0xdb (size before relaxing) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug - *(.debug) - -.line - *(.line) - -.debug_srcinfo - *(.debug_srcinfo) - -.debug_sfnames - *(.debug_sfnames) - -.debug_aranges 0x00000000 0xac8 - *(.debug_aranges) - .debug_aranges - 0x00000000 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_aranges - 0x00000020 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_aranges - 0x00000040 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_aranges - 0x00000060 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_aranges - 0x00000080 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_aranges - 0x000000a0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_aranges - 0x000000c0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_aranges - 0x000000e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_aranges - 0x00000100 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_aranges - 0x00000120 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_aranges - 0x00000140 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_aranges - 0x00000160 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_aranges - 0x00000180 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_aranges - 0x000001a0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_aranges - 0x000001c0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_aranges - 0x000001e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_aranges - 0x00000200 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_aranges - 0x00000220 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_aranges - 0x00000240 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_aranges - 0x00000260 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_aranges - 0x00000280 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_aranges - 0x000002a0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_aranges - 0x000002c0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_aranges - 0x000002e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_aranges - 0x00000300 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_aranges - 0x00000320 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_aranges - 0x00000340 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_aranges - 0x00000360 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_aranges - 0x00000380 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_aranges - 0x000003a0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_aranges - 0x000003c0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_aranges - 0x000003e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_aranges - 0x00000400 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_aranges - 0x00000420 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_aranges - 0x00000440 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_aranges - 0x00000460 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_aranges - 0x00000480 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_aranges - 0x000004a0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_aranges - 0x000004c0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_aranges - 0x000004e0 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_aranges - 0x00000500 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_aranges - 0x00000520 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_aranges - 0x00000540 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_aranges - 0x00000560 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_aranges - 0x00000580 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_aranges - 0x000005a8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_aranges - 0x000005c8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_aranges - 0x000005e8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_aranges - 0x00000608 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_aranges - 0x00000628 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_aranges - 0x00000648 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_aranges - 0x00000668 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_aranges - 0x00000688 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_aranges - 0x000006a8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_aranges - 0x000006c8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_aranges - 0x000006e8 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_aranges - 0x00000718 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_aranges - 0x00000740 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_aranges - 0x00000768 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_aranges - 0x00000788 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_aranges - 0x000007a8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_aranges - 0x000007c8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_aranges - 0x000007e8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_aranges - 0x00000808 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_aranges - 0x00000830 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_aranges - 0x00000858 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_aranges - 0x00000888 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_aranges - 0x000008a8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_aranges - 0x000008c8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_aranges - 0x000008e8 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_aranges - 0x00000988 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_aranges - 0x000009a8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_aranges - 0x000009c8 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_aranges - 0x00000a08 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_aranges - 0x00000a28 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_aranges - 0x00000a48 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_aranges - 0x00000a68 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_aranges - 0x00000a88 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_aranges - 0x00000aa8 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_pubnames - 0x00000000 0x369a - *(.debug_pubnames) - .debug_pubnames - 0x00000000 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_pubnames - 0x00000030 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_pubnames - 0x00000050 0xa6 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_pubnames - 0x000000f6 0xa6 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_pubnames - 0x0000019c 0x8f build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_pubnames - 0x0000022b 0x23 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_pubnames - 0x0000024e 0x173 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_pubnames - 0x000003c1 0xe5 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_pubnames - 0x000004a6 0xa6 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_pubnames - 0x0000054c 0x104 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_pubnames - 0x00000650 0x6fd build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_pubnames - 0x00000d4d 0x207 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_pubnames - 0x00000f54 0xcd build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_pubnames - 0x00001021 0xee build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_pubnames - 0x0000110f 0x23 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_pubnames - 0x00001132 0xb8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_pubnames - 0x000011ea 0x23 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_pubnames - 0x0000120d 0x1ce build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_pubnames - 0x000013db 0x75 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_pubnames - 0x00001450 0x31 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_pubnames - 0x00001481 0x24 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_pubnames - 0x000014a5 0x125 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_pubnames - 0x000015ca 0x194 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_pubnames - 0x0000175e 0x18e build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_pubnames - 0x000018ec 0x101 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_pubnames - 0x000019ed 0xd8 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_pubnames - 0x00001ac5 0x31 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_pubnames - 0x00001af6 0x49 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_pubnames - 0x00001b3f 0xec build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_pubnames - 0x00001c2b 0x359 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_pubnames - 0x00001f84 0x25 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_pubnames - 0x00001fa9 0x95 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_pubnames - 0x0000203e 0xca build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_pubnames - 0x00002108 0x41 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_pubnames - 0x00002149 0x165 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_pubnames - 0x000022ae 0x1af build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_pubnames - 0x0000245d 0x92 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_pubnames - 0x000024ef 0x1b0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_pubnames - 0x0000269f 0xa3 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_pubnames - 0x00002742 0x71 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_pubnames - 0x000027b3 0x3ec build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_pubnames - 0x00002b9f 0x7d build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_pubnames - 0x00002c1c 0x5c build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_pubnames - 0x00002c78 0x35f build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_pubnames - 0x00002fd7 0x2f build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_pubnames - 0x00003006 0x7f build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_pubnames - 0x00003085 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_pubnames - 0x000030a5 0x3b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_pubnames - 0x000030e0 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_pubnames - 0x00003109 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_pubnames - 0x00003133 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_pubnames - 0x0000315e 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_pubnames - 0x00003189 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_pubnames - 0x000031ad 0x33 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_pubnames - 0x000031e0 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_pubnames - 0x00003200 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_pubnames - 0x00003224 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_pubnames - 0x0000324c 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_pubnames - 0x00003269 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_pubnames - 0x0000329b 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_pubnames - 0x000032c0 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_pubnames - 0x000032e9 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_pubnames - 0x00003307 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_pubnames - 0x00003331 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_pubnames - 0x0000335b 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_pubnames - 0x0000337b 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_pubnames - 0x00003397 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_pubnames - 0x000033c3 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_pubnames - 0x000033ef 0x21 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_pubnames - 0x00003410 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_pubnames - 0x0000342e 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_pubnames - 0x0000344a 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_pubnames - 0x00003465 0xe1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_pubnames - 0x00003546 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_pubnames - 0x00003563 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_pubnames - 0x00003581 0x5c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_pubnames - 0x000035dd 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_pubnames - 0x000035f8 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_pubnames - 0x00003614 0x22 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_pubnames - 0x00003636 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_pubnames - 0x0000365a 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_pubnames - 0x0000367a 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_info 0x00000000 0x43106 - *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x00000000 0xd2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_info 0x000000d2 0x37b0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_info 0x00003882 0x1cee build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_info 0x00005570 0x166e build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_info 0x00006bde 0x406 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_info 0x00006fe4 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .debug_info 0x00006fe4 0x146 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_info 0x0000712a 0x11ca build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_info 0x000082f4 0x9b1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_info 0x00008ca5 0x496 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_info 0x0000913b 0xc4d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_info 0x00009d88 0x3b2f build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_info 0x0000d8b7 0xa67 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_info 0x0000e31e 0x55b build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_info 0x0000e879 0x6a8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_info 0x0000ef21 0x141 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_info 0x0000f062 0x986 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_info 0x0000f9e8 0x142 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_info 0x0000fb2a 0x1e42 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_info 0x0001196c 0x825 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_info 0x00012191 0x55b build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_info 0x000126ec 0x115d build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_info 0x00013849 0x3b5e build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_info 0x000173a7 0x1abb build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_info 0x00018e62 0x1a2f build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_info 0x0001a891 0x1b15 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_info 0x0001c3a6 0x151d build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_info 0x0001d8c3 0x127e build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_info 0x0001eb41 0x113f build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .debug_info 0x0001fc80 0x1a5f build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_info 0x000216df 0x113b build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .debug_info 0x0002281a 0x113d build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .debug_info 0x00023957 0x2185 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_info 0x00025adc 0x32fb build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_info 0x00028dd7 0x131c build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_info 0x0002a0f3 0x1f61 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_info 0x0002c054 0x17b3 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_info 0x0002d807 0x12f9 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_info 0x0002eb00 0x1a81 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_info 0x00030581 0x15d0 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_info 0x00031b51 0x1704 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_info 0x00033255 0x18a1 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_info 0x00034af6 0x15c0 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_info 0x000360b6 0x1330 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_info 0x000373e6 0x2e8d build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_info 0x0003a273 0x132a build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_info 0x0003b59d 0x14d4 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_info 0x0003ca71 0x216c build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_info 0x0003ebdd 0x2e4 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_info 0x0003eec1 0x157c build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_info 0x0004043d 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_info 0x000404eb 0xbb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_info 0x000405a6 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_info 0x00040654 0xb0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_info 0x00040704 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_info 0x000407b6 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_info 0x00040868 0x125 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_info 0x0004098d 0xe2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_info 0x00040a6f 0xbc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_info 0x00040b2b 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_info 0x00040bef 0xd6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_info 0x00040cc5 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_info 0x00040cc5 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_info 0x00040d7a 0xe4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_info 0x00040e5e 0xc5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_info 0x00040f23 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_info 0x00040fee 0xb7 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_info 0x000410a5 0xc2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_info 0x00041167 0xc3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_info 0x0004122a 0xb8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_info 0x000412e2 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_info 0x00041395 0xda c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_info 0x0004146f 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_info 0x0004146f 0xe5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_info 0x00041554 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_info 0x00041634 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_info 0x000416ea 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_info 0x0004179d 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_info 0x0004184e 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_info 0x0004184e 0x219 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_info 0x00041a67 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_info 0x00041a67 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_info 0x00041b1c 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_info 0x00041bd2 0x115 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_info 0x00041ce7 0xab c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_info 0x00041d92 0xad c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_info 0x00041e3f 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_info 0x00041e3f 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_info 0x00041f0a 0x2c2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_info 0x000421cc 0x782 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_info 0x0004294e 0x7b8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_abbrev 0x00000000 0x6335 - *(.debug_abbrev) - .debug_abbrev 0x00000000 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_abbrev 0x00000025 0x1f2 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_abbrev 0x00000217 0x203 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_abbrev 0x0000041a 0x257 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_abbrev 0x00000671 0xd7 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_abbrev 0x00000748 0x1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .debug_abbrev 0x00000749 0x55 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_abbrev 0x0000079e 0x27a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_abbrev 0x00000a18 0x175 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_abbrev 0x00000b8d 0x123 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_abbrev 0x00000cb0 0x22a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_abbrev 0x00000eda 0x26f build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_abbrev 0x00001149 0x1cb build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_abbrev 0x00001314 0x111 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_abbrev 0x00001425 0x162 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_abbrev 0x00001587 0x55 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_abbrev 0x000015dc 0x1b1 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_abbrev 0x0000178d 0x55 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_abbrev 0x000017e2 0x2ae build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_abbrev 0x00001a90 0x140 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_abbrev 0x00001bd0 0xf7 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_abbrev 0x00001cc7 0x17b build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_abbrev 0x00001e42 0x2d9 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_abbrev 0x0000211b 0x2a4 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_abbrev 0x000023bf 0x2af build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_abbrev 0x0000266e 0x2fb build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_abbrev 0x00002969 0x26e build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_abbrev 0x00002bd7 0x1b1 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_abbrev 0x00002d88 0x166 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .debug_abbrev 0x00002eee 0x351 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_abbrev 0x0000323f 0x166 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .debug_abbrev 0x000033a5 0x166 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .debug_abbrev 0x0000350b 0x226 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_abbrev 0x00003731 0x341 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_abbrev 0x00003a72 0x19d build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_abbrev 0x00003c0f 0x2ae build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_abbrev 0x00003ebd 0x1c4 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_abbrev 0x00004081 0x18e build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_abbrev 0x0000420f 0x22f build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_abbrev 0x0000443e 0x26b build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_abbrev 0x000046a9 0x1e9 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_abbrev 0x00004892 0x298 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_abbrev 0x00004b2a 0x233 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_abbrev 0x00004d5d 0x18c build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_abbrev 0x00004ee9 0x315 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_abbrev 0x000051fe 0x1b5 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_abbrev 0x000053b3 0x1b2 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_abbrev 0x00005565 0x2b3 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_abbrev 0x00005818 0xa9 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_abbrev 0x000058c1 0x1f4 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_abbrev 0x00005ab5 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_abbrev 0x00005ae7 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_abbrev 0x00005b0a 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_abbrev 0x00005b2d 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_abbrev 0x00005b50 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_abbrev 0x00005b73 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_abbrev 0x00005b96 0x5f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_abbrev 0x00005bf5 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_abbrev 0x00005c1a 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_abbrev 0x00005c3f 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_abbrev 0x00005c64 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_abbrev 0x00005c89 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_abbrev 0x00005c8a 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_abbrev 0x00005caf 0x41 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_abbrev 0x00005cf0 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_abbrev 0x00005d15 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_abbrev 0x00005d3a 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_abbrev 0x00005d5f 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_abbrev 0x00005d84 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_abbrev 0x00005da9 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_abbrev 0x00005dce 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_abbrev 0x00005df3 0x49 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_abbrev 0x00005e3c 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_abbrev 0x00005e3d 0x43 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_abbrev 0x00005e80 0x36 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_abbrev 0x00005eb6 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_abbrev 0x00005edb 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_abbrev 0x00005f00 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_abbrev 0x00005f25 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_abbrev 0x00005f26 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_abbrev 0x00005f4b 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_abbrev 0x00005f4c 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_abbrev 0x00005f71 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_abbrev 0x00005f96 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_abbrev 0x00005fce 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_abbrev 0x00005ff3 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_abbrev 0x00006018 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_abbrev 0x00006019 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_abbrev 0x0000604b 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_abbrev 0x000060c4 0x132 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_abbrev 0x000061f6 0x13f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_line 0x00000000 0x85c8 - *(.debug_line) - .debug_line 0x00000000 0x8a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_line 0x0000008a 0x210 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_line 0x0000029a 0x251 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_line 0x000004eb 0x339 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_line 0x00000824 0x195 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_line 0x000009b9 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .debug_line 0x000009b9 0x7a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_line 0x00000a33 0x3b2 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_line 0x00000de5 0x22d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_line 0x00001012 0x1e8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_line 0x000011fa 0x2cd build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_line 0x000014c7 0x568 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_line 0x00001a2f 0x34b build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_line 0x00001d7a 0x207 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_line 0x00001f81 0x27e build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_line 0x000021ff 0x7a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_line 0x00002279 0x2db build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_line 0x00002554 0x7a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_line 0x000025ce 0x4ef build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_line 0x00002abd 0x2d3 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_line 0x00002d90 0x1f0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_line 0x00002f80 0x156 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_line 0x000030d6 0x2c8 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_line 0x0000339e 0x262 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_line 0x00003600 0x3de build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_line 0x000039de 0x2f6 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_line 0x00003cd4 0x25b build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_line 0x00003f2f 0x161 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_line 0x00004090 0x101 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .debug_line 0x00004191 0x390 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_line 0x00004521 0x101 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .debug_line 0x00004622 0x101 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .debug_line 0x00004723 0x22f build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_line 0x00004952 0x597 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_line 0x00004ee9 0x155 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_line 0x0000503e 0x25a build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_line 0x00005298 0x1ad build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_line 0x00005445 0x161 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_line 0x000055a6 0x2e7 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_line 0x0000588d 0x23e build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_line 0x00005acb 0x1e9 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_line 0x00005cb4 0x2a1 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_line 0x00005f55 0x2b0 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_line 0x00006205 0x165 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_line 0x0000636a 0x51c build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_line 0x00006886 0x193 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_line 0x00006a19 0x19c build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_line 0x00006bb5 0x3e3 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_line 0x00006f98 0x137 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_line 0x000070cf 0x1bf build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_line 0x0000728e 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_line 0x0000733f 0x62 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_line 0x000073a1 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_line 0x00007412 0x72 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_line 0x00007484 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_line 0x000074f7 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_line 0x0000756a 0x8e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_line 0x000075f8 0x97 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_line 0x0000768f 0x84 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_line 0x00007713 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_line 0x0000779b 0x96 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_line 0x00007831 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_line 0x00007831 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_line 0x000078a1 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_line 0x00007911 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_line 0x0000797f 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_line 0x000079ef 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_line 0x00007a60 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_line 0x00007ad0 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_line 0x00007b41 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_line 0x00007bb1 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_line 0x00007c20 0x6d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_line 0x00007c8d 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_line 0x00007c8d 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_line 0x00007cfd 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_line 0x00007d6d 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_line 0x00007ddd 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_line 0x00007e4c 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_line 0x00007eba 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_line 0x00007eba 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_line 0x00007f2a 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_line 0x00007f2a 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_line 0x00007f9a 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_line 0x0000800a 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_line 0x00008082 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_line 0x000080fa 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_line 0x00008173 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_line 0x00008173 0x93 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_line 0x00008206 0x105 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_line 0x0000830b 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_line 0x00008473 0x155 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_frame 0x00000000 0x3878 - *(.debug_frame) - .debug_frame 0x00000000 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_frame 0x00000020 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_frame 0x0000004c 0xfc build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_frame 0x00000148 0x9c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_frame 0x000001e4 0xd4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_frame 0x000002b8 0x208 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_frame 0x000004c0 0x10c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_frame 0x000005cc 0xd4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_frame 0x000006a0 0x10c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_frame 0x000007ac 0x748 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_frame 0x00000ef4 0x294 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_frame 0x00001188 0x128 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_frame 0x000012b0 0x10c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_frame 0x000013bc 0x20c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_frame 0x000015c8 0x25c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_frame 0x00001824 0x17c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_frame 0x000019a0 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_frame 0x000019cc 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_frame 0x000019f8 0x138 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_frame 0x00001b30 0x130 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_frame 0x00001c60 0xf4 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_frame 0x00001d54 0x128 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_frame 0x00001e7c 0x10c build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_frame 0x00001f88 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_frame 0x00001fb4 0x64 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_frame 0x00002018 0x148 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_frame 0x00002160 0x2b8 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_frame 0x00002418 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_frame 0x00002444 0x80 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_frame 0x000024c4 0xb8 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_frame 0x0000257c 0x48 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_frame 0x000025c4 0xd8 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_frame 0x0000269c 0x198 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_frame 0x00002834 0x9c build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_frame 0x000028d0 0x17c build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_frame 0x00002a4c 0xa0 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_frame 0x00002aec 0x80 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_frame 0x00002b6c 0x1d0 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_frame 0x00002d3c 0x80 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_frame 0x00002dbc 0x64 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_frame 0x00002e20 0x1b4 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_frame 0x00002fd4 0x64 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_frame 0x00003038 0x80 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_frame 0x000030b8 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_frame 0x000030e0 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_frame 0x00003110 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_frame 0x00003130 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_frame 0x00003150 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_frame 0x00003170 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_frame 0x00003190 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_frame 0x000031b8 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_frame 0x000031e0 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_frame 0x00003200 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_frame 0x00003220 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_frame 0x00003240 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_frame 0x0000326c 0x6c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_frame 0x000032d8 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_frame 0x00003320 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_frame 0x00003358 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_frame 0x00003378 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_frame 0x000033a0 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_frame 0x000033cc 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_frame 0x000033f4 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_frame 0x00003420 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_frame 0x00003458 0x58 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_frame 0x000034b0 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_frame 0x00003524 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_frame 0x0000354c 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_frame 0x0000357c 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_frame 0x0000359c 0x120 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_frame 0x000036bc 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_frame 0x000036dc 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_frame 0x0000370c 0x8c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_frame 0x00003798 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_frame 0x000037c4 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_frame 0x000037ec 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_frame 0x0000380c 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_frame 0x00003838 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_frame 0x00003858 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_str 0x00000000 0x3341 - *(.debug_str) - .debug_str 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_str 0x00000000 0x242 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_str 0x00000242 0x14a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_str 0x0000038c 0x149 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_str 0x000004d5 0xa build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_str 0x000004df 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .debug_str 0x000004df 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_str 0x000004df 0x36 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_str 0x00000515 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_str 0x00000515 0xa build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_str 0x0000051f 0x25 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_str 0x00000544 0x178 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_str 0x000006bc 0x2d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_str 0x000006e9 0x31 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_str 0x0000071a 0x12 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_str 0x0000072c 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_str 0x0000072c 0x19 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_str 0x00000745 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_str 0x00000745 0x168 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_str 0x000008ad 0x2d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_str 0x000008da 0x16 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_str 0x000008f0 0x12f build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_str 0x00000a1f 0x21e build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_str 0x00000c3d 0x14f build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_str 0x00000d8c 0x1ac build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_str 0x00000f38 0x18a build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_str 0x000010c2 0x145 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_str 0x00001207 0x12f build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_str 0x00001336 0x12f build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .debug_str 0x00001465 0x14d build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_str 0x000015b2 0x12f build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .debug_str 0x000016e1 0x12f build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .debug_str 0x00001810 0x17f build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_str 0x0000198f 0x281 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_str 0x00001c10 0x146 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_str 0x00001d56 0x18d build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_str 0x00001ee3 0x15b build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_str 0x0000203e 0x138 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_str 0x00002176 0x1d9 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_str 0x0000234f 0x18b build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_str 0x000024da 0x17e build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_str 0x00002658 0x19f build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_str 0x000027f7 0x14b build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_str 0x00002942 0x15e build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_str 0x00002aa0 0x2cb build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_str 0x00002d6b 0x13a build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_str 0x00002ea5 0x159 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_str 0x00002ffe 0x1fe build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_str 0x000031fc 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_str 0x000031fc 0x145 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_str 0x00003341 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_loc 0x00000000 0x1069b - *(.debug_loc) - .debug_loc 0x00000000 0x130 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_loc 0x00000130 0x168 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_loc 0x00000298 0x4b8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_loc 0x00000750 0x59d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_loc 0x00000ced 0xcb3 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_loc 0x000019a0 0x48f build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_loc 0x00001e2f 0x2e2 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_loc 0x00002111 0x7ba build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_loc 0x000028cb 0x1f19 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_loc 0x000047e4 0xfbb build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_loc 0x0000579f 0x5e3 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_loc 0x00005d82 0x685 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_loc 0x00006407 0xd65 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_loc 0x0000716c 0x12f2 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_loc 0x0000845e 0xd61 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_loc 0x000091bf 0x6a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_loc 0x00009229 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_loc 0x00009255 0x5b7 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_loc 0x0000980c 0x369 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_loc 0x00009b75 0x25f build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_loc 0x00009dd4 0x768 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_loc 0x0000a53c 0x6a1 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_loc 0x0000abdd 0x4b build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_loc 0x0000ac28 0x31e build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_loc 0x0000af46 0x484 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_loc 0x0000b3ca 0xcb7 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_loc 0x0000c081 0x56 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_loc 0x0000c0d7 0x4c0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_loc 0x0000c597 0x108 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_loc 0x0000c69f 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_loc 0x0000c6f7 0x249 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_loc 0x0000c940 0x412 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_loc 0x0000cd52 0x21a build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_loc 0x0000cf6c 0x8d1 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_loc 0x0000d83d 0x10e build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_loc 0x0000d94b 0xb0 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_loc 0x0000d9fb 0x8d5 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_loc 0x0000e2d0 0xb0 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_loc 0x0000e380 0x11e build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_loc 0x0000e49e 0x9c9 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_loc 0x0000ee67 0x2d1 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_loc 0x0000f138 0xda build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_loc 0x0000f212 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_loc 0x0000f27a 0xc9 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_loc 0x0000f343 0x9c3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_loc 0x0000fd06 0x995 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_macinfo - *(.debug_macinfo) - -.debug_weaknames - *(.debug_weaknames) - -.debug_funcnames - *(.debug_funcnames) - -.debug_typenames - *(.debug_typenames) - -.debug_varnames - *(.debug_varnames) - -.debug_pubtypes - 0x00000000 0x35bf - *(.debug_pubtypes) - .debug_pubtypes - 0x00000000 0x276 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .debug_pubtypes - 0x00000276 0x149 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .debug_pubtypes - 0x000003bf 0x14c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .debug_pubtypes - 0x0000050b 0x3c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .debug_pubtypes - 0x00000547 0x12 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .debug_pubtypes - 0x00000559 0x5e build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .debug_pubtypes - 0x000005b7 0xa2 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .debug_pubtypes - 0x00000659 0x48 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .debug_pubtypes - 0x000006a1 0x10c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .debug_pubtypes - 0x000007ad 0x41c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .debug_pubtypes - 0x00000bc9 0x40 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .debug_pubtypes - 0x00000c09 0x56 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .debug_pubtypes - 0x00000c5f 0x5a build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .debug_pubtypes - 0x00000cb9 0x12 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .debug_pubtypes - 0x00000ccb 0x47 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .debug_pubtypes - 0x00000d12 0x12 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .debug_pubtypes - 0x00000d24 0x29d build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .debug_pubtypes - 0x00000fc1 0x3c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .debug_pubtypes - 0x00000ffd 0xcf build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .debug_pubtypes - 0x000010cc 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .debug_pubtypes - 0x000011b3 0x1f8 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .debug_pubtypes - 0x000013ab 0x136 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .debug_pubtypes - 0x000014e1 0x190 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .debug_pubtypes - 0x00001671 0x166 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .debug_pubtypes - 0x000017d7 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .debug_pubtypes - 0x000018be 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .debug_pubtypes - 0x000019a5 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .debug_pubtypes - 0x00001a8c 0x13c build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .debug_pubtypes - 0x00001bc8 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .debug_pubtypes - 0x00001caf 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .debug_pubtypes - 0x00001d96 0x145 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .debug_pubtypes - 0x00001edb 0x2d3 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .debug_pubtypes - 0x000021ae 0xfc build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .debug_pubtypes - 0x000022aa 0x17e build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .debug_pubtypes - 0x00002428 0x136 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .debug_pubtypes - 0x0000255e 0xf8 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .debug_pubtypes - 0x00002656 0x141 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .debug_pubtypes - 0x00002797 0x121 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .debug_pubtypes - 0x000028b8 0x110 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .debug_pubtypes - 0x000029c8 0xf8 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .debug_pubtypes - 0x00002ac0 0x11a build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .debug_pubtypes - 0x00002bda 0xf8 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .debug_pubtypes - 0x00002cd2 0x325 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .debug_pubtypes - 0x00002ff7 0xe7 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .debug_pubtypes - 0x000030de 0x10d build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .debug_pubtypes - 0x000031eb 0x164 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .debug_pubtypes - 0x0000334f 0x2c build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .debug_pubtypes - 0x0000337b 0x11e build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .debug_pubtypes - 0x00003499 0x34 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_pubtypes - 0x000034cd 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_pubtypes - 0x0000350d 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_pubtypes - 0x00003566 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.debug_ranges 0x00000000 0x290 - *(.debug_ranges) - .debug_ranges 0x00000000 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .debug_ranges 0x00000010 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_ranges 0x00000020 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_ranges 0x00000030 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_ranges 0x00000040 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_ranges 0x00000050 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_ranges 0x00000060 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .debug_ranges 0x00000080 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_ranges 0x00000098 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_ranges 0x000000b0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_ranges 0x000000c0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_ranges 0x000000d0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_ranges 0x000000e0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_ranges 0x000000f0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_ranges 0x00000100 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_ranges 0x00000118 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_ranges 0x00000130 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_ranges 0x00000150 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_ranges 0x00000160 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_ranges 0x00000170 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_ranges 0x00000180 0x90 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_ranges 0x00000210 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_ranges 0x00000220 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_ranges 0x00000230 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_ranges 0x00000260 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_ranges 0x00000270 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_ranges 0x00000280 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - -.gnu.attributes - 0x00000000 0x10 - *(.gnu.attributes) - .gnu.attributes - 0x00000000 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - .gnu.attributes - 0x00000010 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - .gnu.attributes - 0x00000020 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - .gnu.attributes - 0x00000030 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - .gnu.attributes - 0x00000040 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - .gnu.attributes - 0x00000050 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - .gnu.attributes - 0x00000060 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - .gnu.attributes - 0x00000070 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - .gnu.attributes - 0x00000080 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - .gnu.attributes - 0x00000090 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - .gnu.attributes - 0x000000a0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - .gnu.attributes - 0x000000b0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - .gnu.attributes - 0x000000c0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - .gnu.attributes - 0x000000d0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - .gnu.attributes - 0x000000e0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - .gnu.attributes - 0x000000f0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - .gnu.attributes - 0x00000100 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - .gnu.attributes - 0x00000110 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - .gnu.attributes - 0x00000120 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - .gnu.attributes - 0x00000130 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - .gnu.attributes - 0x00000140 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - .gnu.attributes - 0x00000150 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - .gnu.attributes - 0x00000160 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .gnu.attributes - 0x00000170 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - .gnu.attributes - 0x00000180 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - .gnu.attributes - 0x00000190 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - .gnu.attributes - 0x000001a0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - .gnu.attributes - 0x000001b0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - .gnu.attributes - 0x000001c0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - .gnu.attributes - 0x000001d0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .gnu.attributes - 0x000001e0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - .gnu.attributes - 0x000001f0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - .gnu.attributes - 0x00000200 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - .gnu.attributes - 0x00000210 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .gnu.attributes - 0x00000220 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - .gnu.attributes - 0x00000230 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - .gnu.attributes - 0x00000240 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - .gnu.attributes - 0x00000250 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - .gnu.attributes - 0x00000260 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .gnu.attributes - 0x00000270 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - .gnu.attributes - 0x00000280 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - .gnu.attributes - 0x00000290 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - .gnu.attributes - 0x000002a0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .gnu.attributes - 0x000002b0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - .gnu.attributes - 0x000002c0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .gnu.attributes - 0x000002d0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - .gnu.attributes - 0x000002e0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .gnu.attributes - 0x000002f0 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - .gnu.attributes - 0x00000300 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - .gnu.attributes - 0x00000310 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - .gnu.attributes - 0x00000320 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .gnu.attributes - 0x00000330 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .gnu.attributes - 0x00000340 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .gnu.attributes - 0x00000350 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .gnu.attributes - 0x00000360 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .gnu.attributes - 0x00000370 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .gnu.attributes - 0x00000380 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .gnu.attributes - 0x00000390 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .gnu.attributes - 0x000003a0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .gnu.attributes - 0x000003b0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .gnu.attributes - 0x000003c0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .gnu.attributes - 0x000003d0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .gnu.attributes - 0x000003e0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .gnu.attributes - 0x000003f0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - .gnu.attributes - 0x00000400 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .gnu.attributes - 0x00000410 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .gnu.attributes - 0x00000420 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .gnu.attributes - 0x00000430 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .gnu.attributes - 0x00000440 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .gnu.attributes - 0x00000450 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .gnu.attributes - 0x00000460 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .gnu.attributes - 0x00000470 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .gnu.attributes - 0x00000480 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .gnu.attributes - 0x00000490 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .gnu.attributes - 0x000004a0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .gnu.attributes - 0x000004b0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .gnu.attributes - 0x000004c0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .gnu.attributes - 0x000004d0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .gnu.attributes - 0x000004e0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .gnu.attributes - 0x000004f0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .gnu.attributes - 0x00000500 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .gnu.attributes - 0x00000510 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .gnu.attributes - 0x00000520 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .gnu.attributes - 0x00000530 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .gnu.attributes - 0x00000540 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .gnu.attributes - 0x00000550 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .gnu.attributes - 0x00000560 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .gnu.attributes - 0x00000570 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .gnu.attributes - 0x00000580 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .gnu.attributes - 0x00000590 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .gnu.attributes - 0x000005a0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - 0x00000001 __MPLAB_DEBUG = 0x1 - 0x00000001 __DEBUG = 0x1 - 0x00000001 __MPLAB_DEBUGGER_ICD3 = 0x1 - 0x00000200 _min_heap_size = 0x200 -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a -START GROUP -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libdebug.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libdsp.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a -END GROUP -LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a -OUTPUT(dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.elf elf32-tradlittlemips) -LOAD stack -LOAD data_init - -.reginfo 0x00000000 0x18 - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.stack 0xa00044c8 0x400 - .stack 0xa00044c8 0x400 stack - -.data 0xa00032b4 0x4bc - .data 0xa00032b4 0x4bc build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - -.bss 0xa0003770 0x800 - .bss 0xa0003770 0x400 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .bss 0xa0003b70 0x400 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - -.data 0xa0003f70 0x2c4 - .data 0xa0003f70 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0003f70 _iob - .data 0xa0004010 0x6c build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - .data 0xa000407c 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - .data 0xa00040d4 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .data 0xa000412c 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .data 0xa0004184 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - .data 0xa00041dc 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - -.bss 0xa0004234 0x74 - .bss 0xa0004234 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0004234 _sibuf - 0xa0004254 _sobuf - .bss 0xa0004274 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .bss 0xa0004290 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - 0xa0004290 __allocs - .bss 0xa00042a0 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .bss 0xa00042a4 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - -.bss%z1 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.data%z2 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - -.bss%z3 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - -.data%z4 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - -.bss%z5 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - -.data%z6 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - -.bss%z7 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - -.data%z8 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - -.bss%z9 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - -.data%z10 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - -.bss%z11 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - -.data%z12 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - -.bss%z13 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - -.data%z14 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - -.bss%z15 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - -.data%z16 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - -.bss%z17 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - -.data%z18 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - -.bss%z19 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - -.data%z20 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - -.data%z21 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - -.bss%z22 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - -.data%z23 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - -.bss%z24 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - -.data%z25 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - -.bss%z26 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - -.data%z27 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - -.bss%z28 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - -.data%z29 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - -.bss%z30 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - -.data%z31 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - -.bss%z32 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - -.data%z33 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - -.bss%z34 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - -.data%z35 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - -.bss%z36 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - -.data%z37 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - -.data%z38 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - -.bss%z39 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - -.data%z40 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - -.bss%z41 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - -.data%z42 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - -.data%z43 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - -.bss%z44 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - -.data%z45 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - -.bss%z46 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - -.data%z47 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - -.bss%z48 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - -.data%z49 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - -.bss%z50 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - -.data%z51 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - -.bss%z52 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - -.data%z53 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - -.bss%z54 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - -.data%z55 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - -.bss%z56 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - -.data%z57 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - -.data%z58 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - -.bss%z59 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - -.data%z60 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - -.bss%z61 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - -.data%z62 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - -.bss%z63 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - -.data%z64 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - -.bss%z65 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - -.data%z66 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - -.bss%z67 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - -.data%z68 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - -.bss%z69 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - -.data%z70 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - -.bss%z71 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - -.data%z72 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - -.bss%z73 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - -.data%z74 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - -.bss%z75 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - -.data%z76 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - -.bss%z77 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - -.data%z78 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - -.bss%z79 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - -.data%z80 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - -.bss%z81 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - -.data%z82 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - -.bss%z83 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - -.data%z84 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - -.bss%z85 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - -.data%z86 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - -.bss%z87 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - -.data%z88 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - -.bss%z89 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - -.data%z90 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - -.bss%z91 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - -.data%z92 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - -.bss%z93 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - -.data%z94 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - -.bss%z95 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - -.data%z96 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - -.bss%z97 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - -.data%z98 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - -.bss%z99 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - -.data%z100 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - -.bss%z101 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - -.data%z102 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - -.bss%z103 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - -.data%z104 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - -.bss%z105 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - -.data%z106 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - -.bss%z107 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - -.data%z108 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - -.bss%z109 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - -.data%z110 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - -.bss%z111 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - -.data%z112 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - -.bss%z113 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - -.data%z114 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - -.bss%z115 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - -.data%z116 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - -.bss%z117 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - -.data%z118 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - -.bss%z119 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - -.data%z120 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - -.bss%z121 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - -.data%z122 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - -.bss%z123 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - -.data%z124 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - -.bss%z125 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - -.data%z126 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - -.bss%z127 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - -.data%z128 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - -.bss%z129 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - -.data%z130 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - -.bss%z131 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - -.data%z132 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - -.bss%z133 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - -.data%z134 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - -.bss%z135 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - -.data%z136 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - -.bss%z137 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - -.data%z138 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - -.bss%z139 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - -.data%z140 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - -.bss%z141 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - -.data%z142 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - -.bss%z143 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - -.data%z144 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - -.bss%z145 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - -.data%z146 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - -.bss%z147 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - -.data%z148 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - -.bss%z149 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - -.data%z150 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - -.bss%z151 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - -.data%z152 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - -.bss%z153 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - -.data%z154 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - -.bss%z155 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - -.data%z156 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - -.bss%z157 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - -.data%z158 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - -.bss%z159 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - -.data%z160 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - -.bss%z161 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - -.data%z162 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - -.bss%z163 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - -.data%z164 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - -.bss%z165 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - -.data%z166 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - -.bss%z167 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - -.data%z168 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - -.bss%z169 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - -.data%z170 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - -.bss%z171 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - -.data%z172 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - -.bss%z173 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - -.data%z174 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - -.bss%z175 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - -.data%z176 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - -.bss%z177 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - -.data%z178 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - -.bss%z179 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - -.data%z180 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - -.bss%z181 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - -.data%z182 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - -.bss%z183 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - -.data%z184 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - -.bss%z185 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - -.data%z186 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - -.bss%z187 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - -.data%z188 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - -.bss%z189 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - -.data%z190 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - -.bss%z191 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - -.data%z192 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - -.bss%z193 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - -.data%z194 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - -.bss%z195 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - -.data%z196 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - -.bss%z197 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - -.data%z198 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - -.bss%z199 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - -.data%z200 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - -.bss%z201 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - -.data%z202 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - -.bss%z203 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - -.data%z204 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - -.bss%z205 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - -.data%z206 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - -.bss%z207 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - -.data%z208 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - -.bss%z209 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - -.data%z210 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - -.bss%z211 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o - -.data%z212 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o - -.bss%z213 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o - -.data%z214 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o - -.bss%z215 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - -.data%z216 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - -.bss%z217 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - -.data%z218 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - -.bss%z219 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - -.data%z220 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - -.bss%z221 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - -.data%z222 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - -.bss%z223 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - -.data%z224 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - -.bss%z225 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - -.data%z226 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - -.bss%z227 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o - -.data%z228 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o - -.bss%z229 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - -.data%z230 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - -.data%z231 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - -.bss%z232 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - -.bss%z233 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - -.data%z234 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - -.bss%z235 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - -.data%z236 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - -.bss%z237 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - -.bss%z238 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - -.data%z239 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - -.bss%z240 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - -.bss%z241 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - -.data%z242 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - -.bss%z243 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - -.data%z244 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - -.bss%z245 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - -.data%z246 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - -.bss%z247 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - -.bss%z248 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - -.data%z249 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - -.bss%z250 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - -.data%z251 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - -.bss%z252 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - -.data%z253 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - -.bss%z254 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - -.data%z255 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - -.bss%z256 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - -.data%z257 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - -.bss%z258 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - -.data%z259 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - -.bss%z260 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - -.data%z261 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - -.bss%z262 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - -.bss%z263 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - -.data%z264 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - -.bss%z265 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - -.data%z266 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - -.bss%z267 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - -.data%z268 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - -.bss%z269 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - -.data%z270 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - -.bss%z271 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - -.bss%z272 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - -.data%z273 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - -.bss%z274 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - -.data%z275 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - -.bss%z276 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - -.data%z277 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - -.bss%z278 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - -.data%z279 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - -.bss%z280 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - -.data%z281 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - -.bss%z282 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - -.data%z283 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - -.bss%z284 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - -.data%z285 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - -.bss%z286 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - -.data%z287 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - -.bss%z288 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - -.data%z289 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - -.bss%z290 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - -.data%z291 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - -.bss%z292 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - -.data%z293 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - -.bss%z294 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - -.data%z295 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - -.bss%z296 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - -.data%z297 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - -.bss%z298 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - -.data%z299 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - -.bss%z300 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - -.data%z301 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - -.bss%z302 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - -.data%z303 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - -.bss%z304 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - -.data%z305 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - -.bss%z306 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - -.data%z307 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - -.bss%z308 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - -.data%z309 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - -.bss%z310 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - -.data%z311 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - -.bss%z312 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - -.data%z313 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - -.bss%z314 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - -.data%z315 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - -.bss%z316 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - -.data%z317 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - -.bss%z318 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - -.data%z319 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - -.bss%z320 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.data%z321 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - -.text 0x9d005800 0xc124 - .text 0x9d005800 0x2904 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_wifi.o - 0x9d005fb4 m2m_wifi_download_mode - 0x9d0062f4 m2m_wifi_ble_set_gain_table - 0x9d006368 m2m_wifi_init_hold - 0x9d0063ac m2m_wifi_init_start - 0x9d0064f8 m2m_wifi_init - 0x9d006554 m2m_wifi_deinit - 0x9d00659c m2m_wifi_reinit_hold - 0x9d0065d8 m2m_wifi_reinit_start - 0x9d006610 m2m_wifi_reinit - 0x9d006670 m2m_wifi_yield - 0x9d0066a0 m2m_wifi_handle_events - 0x9d0066d4 m2m_wifi_default_connect - 0x9d006720 m2m_wifi_connect - 0x9d006794 m2m_wifi_connect_sc - 0x9d006bd8 m2m_wifi_disconnect - 0x9d006c24 m2m_wifi_set_mac_address - 0x9d006c90 m2m_wifi_set_static_ip - 0x9d006d24 m2m_wifi_request_dhcp_client - 0x9d006d48 m2m_wifi_request_dhcp_server - 0x9d006d70 m2m_wifi_enable_dhcp - 0x9d006de8 m2m_wifi_set_lsn_int - 0x9d006e3c m2m_wifi_set_cust_InfoElement - 0x9d006e9c m2m_wifi_set_scan_options - 0x9d006f14 m2m_wifi_set_scan_region - 0x9d006f84 m2m_wifi_request_scan - 0x9d00702c m2m_wifi_request_scan_passive - 0x9d0070d4 m2m_wifi_wps - 0x9d007160 m2m_wifi_wps_disable - 0x9d0071b8 m2m_wifi_p2p - 0x9d007264 m2m_wifi_p2p_disconnect - 0x9d0072bc m2m_wifi_enable_ap - 0x9d007334 m2m_wifi_disable_ap - 0x9d00738c m2m_wifi_req_curr_rssi - 0x9d0073e4 m2m_wifi_req_restrict_ble - 0x9d00743c m2m_wifi_req_unrestrict_ble - 0x9d007494 m2m_wifi_send_ethernet_pkt - 0x9d007534 m2m_wifi_get_otp_mac_address - 0x9d0075b0 m2m_wifi_get_mac_address - 0x9d007624 m2m_wifi_req_scan_result - 0x9d007690 m2m_wifi_get_num_ap_found - 0x9d0076b8 m2m_wifi_get_sleep_mode - 0x9d0076e8 m2m_wifi_set_sleep_mode - 0x9d007774 m2m_wifi_request_sleep - 0x9d0077f8 m2m_wifi_set_device_name - 0x9d007894 m2m_wifi_get_chipId - 0x9d0078c4 m2m_wifi_get_firmware_version - 0x9d007928 m2m_wifi_check_ota_rb - 0x9d007994 m2m_ota_get_firmware_version - 0x9d0079f8 m2m_wifi_enable_monitoring_mode - 0x9d007aac m2m_wifi_disable_monitoring_mode - 0x9d007af8 m2m_wifi_send_wlan_pkt - 0x9d007b94 m2m_wifi_start_provision_mode - 0x9d007c8c m2m_wifi_stop_provision_mode - 0x9d007cd8 m2m_wifi_get_connection_info - 0x9d007d24 m2m_wifi_set_sytem_time - 0x9d007d78 m2m_wifi_get_sytem_time - 0x9d007dc4 m2m_wifi_enable_sntp - 0x9d007e3c m2m_wifi_set_power_profile - 0x9d007ea8 m2m_wifi_set_tx_power - 0x9d007f14 m2m_wifi_enable_firmware_logs - 0x9d007f80 m2m_wifi_set_battery_voltage - 0x9d007ff0 m2m_wifi_prng_get_random_bytes - 0x9d008090 m2m_wifi_ble_api_send - .text 0x9d008104 0x2140 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/socket/source/socket.o - 0x9d008104 Socket_ReadSocketData - 0x9d008a3c socketInit - 0x9d008ab0 socketDeinit - 0x9d008b10 registerSocketCallback - 0x9d008b48 socket - 0x9d008dd0 bind - 0x9d008f00 listen - 0x9d008fe8 accept - 0x9d00905c connect - 0x9d0091d4 send - 0x9d009378 sendto - 0x9d009510 recv - 0x9d0096f8 close - 0x9d009838 recvfrom - 0x9d009a28 nmi_inet_addr - 0x9d009b9c gethostbyname - 0x9d009fd4 setsockopt - 0x9d00a160 getsockopt - 0x9d00a19c m2m_ping_req - .text 0x9d00a244 0x1ad8 build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - 0x9d00a244 InitUart - 0x9d00a4f4 UartResetPort - 0x9d00a7a8 UartOpenComPort - 0x9d00a998 UartReceiveData - 0x9d00aae4 UartGetPendingDataSize - 0x9d00abdc UartTransmitData - 0x9d00b320 DataSentNotification - 0x9d00b608 UartTick - 0x9d00bc28 UartBlockAndTick - 0x9d00bc88 UartBlockUntillBufEmpty - .text 0x9d00bd1c 0x1a58 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - 0x9d00c868 InitWiFi - 0x9d00cd24 TurnOFFWiFi - 0x9d00cdb8 CloseSockets - 0x9d00cea4 GetWiFiSate - 0x9d00cec8 TickWiFi - 0x9d00cfac OpenTerminalServer - 0x9d00d068 SendTerminalData - 0x9d00d0f0 SentTerminalByte - 0x9d00d16c OpenNetworkServer - 0x9d00d228 SendNetworkData - 0x9d00d2b0 SentNetworkByte - 0x9d00d32c OpenSyslogServer - 0x9d00d3e8 SendSyslogData - 0x9d00d460 SendSyslogByte - 0x9d00d4dc IsSyslogClientConnected - 0x9d00d51c OpenBootloaderServer - 0x9d00d5d8 CloseBootloaderServer - 0x9d00d640 SendBootloaderData - 0x9d00d6b8 SendSBootloaderByte - 0x9d00d734 IsBootloaderClientConnected - .text 0x9d00d774 0x1808 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - 0x9d00d774 BootloaderInterfaceInit - 0x9d00d7c8 BootloaderInterfaceTick - 0x9d00d800 BootloaderExecuteCmd - 0x9d00daa4 BootloaderCRCError - 0x9d00db0c BootloaderInterfaceStateMachine - 0x9d00e520 BootloaderResetStateMachine - 0x9d00e57c BootloaderActivateBootloader - 0x9d00e5bc BootloaderDeactivateBootloader - 0x9d00e5ec BootloaderFlashEraseStateMachine - 0x9d00e820 ResetBootloaderFlashEraseStateMachine - 0x9d00e854 BootloaderFlashWriteStateMachine - 0x9d00ea80 BootloaderPrintFlashData - 0x9d00eaa0 BootloaderCheckFlashBootloaderData - 0x9d00edc4 ResetBootloaderFlashWriteStateMachine - 0x9d00ee04 BootloaderBytesToInt - 0x9d00eebc BootloaderIntToBytes - .text 0x9d00ef7c 0x1584 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmasic.o - 0x9d00ef7c chip_apply_conf - 0x9d00f030 nm_clkless_wake - 0x9d00f270 chip_idle - 0x9d00f2e4 enable_rf_blocks - 0x9d00f384 enable_interrupts - 0x9d00f48c cpu_start - 0x9d00f608 nmi_get_chipid - 0x9d00f820 nmi_get_rfrevid - 0x9d00f878 restore_pmu_settings_after_global_reset - 0x9d00f8cc nmi_update_pll - 0x9d00f940 nmi_set_sys_clk_src_to_xo - 0x9d00f99c chip_wake - 0x9d00f9f0 chip_reset_and_cpu_halt - 0x9d00fb84 chip_reset - 0x9d00fbec wait_for_bootrom - 0x9d00fd78 wait_for_firmware_start - 0x9d00fe98 chip_deinit - 0x9d00ffb4 set_gpio_dir - 0x9d010088 set_gpio_val - 0x9d01015c get_gpio_val - 0x9d0101e8 pullup_ctrl - 0x9d0102a0 nmi_get_otp_mac_address - 0x9d010400 nmi_get_mac_address - .text 0x9d010500 0x1424 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_hif.o - 0x9d010638 hif_chip_wake - 0x9d010704 hif_set_sleep_mode - 0x9d010734 hif_get_sleep_mode - 0x9d01075c hif_chip_sleep - 0x9d010880 hif_init - 0x9d0108ec hif_deinit - 0x9d01094c hif_check_compatibility - 0x9d0109c4 hif_enable_access - 0x9d010ae4 hif_check_code - 0x9d010bd4 hif_send - 0x9d0114ec hif_yield - 0x9d011514 hif_handle_isr - 0x9d0115e0 hif_receive - 0x9d01183c hif_register_cb - -.text._vfprintf_cdfFnopsuxX - 0x9d011924 0x13d4 - .text._vfprintf_cdfFnopsuxX - 0x9d011924 0x13d4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - 0x9d011924 _vfprintf_cdfFnopsuxX - 0x9d011924 _vfprintf_cdfFnopuxX - 0x9d011924 _vfprintf_cdnopsuxX - 0x9d011924 _vfprintf_fF - 0x9d011924 _vfprintf_cdnopuxX - -.text 0x9d012cf8 0x8000 - .text 0x9d012cf8 0x117c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/spi_flash/source/spi_flash.o - 0x9d0139f8 spi_flash_read - 0x9d013ad0 spi_flash_write - 0x9d013ca8 spi_flash_erase - 0x9d013df4 spi_flash_get_size - .text 0x9d013e74 0x1108 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - 0x9d014910 nm_spi_write_reg - 0x9d0149e8 nm_spi_write_block - 0x9d014af0 nm_spi_read_reg_with_ret - 0x9d014c3c nm_spi_read_block - 0x9d014df8 nm_spi_init - 0x9d014f10 nm_spi_deinit - 0x9d014f38 nm_spi_read_reg - .text 0x9d014f7c 0xf70 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - 0x9d014f7c InternalUartInit - 0x9d015158 OpenInternalPort - 0x9d015378 SendInternalUartData - 0x9d0156cc SendInternalUartDataBlocking - 0x9d0157dc TickInternalUart - 0x9d0157fc InternalUart1AInterrupt - 0x9d015a38 InternalUart2Interrupt - 0x9d015cc8 ResetUart1 - 0x9d015dd0 ResetUart2 - 0x9d015ecc process - .text 0x9d015eec 0xe68 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - 0x9d015eec InitTerminal - 0x9d015f6c TickTerminal - 0x9d015fc8 RxTerminalBuf - 0x9d016054 RxTerminalData - 0x9d0161a4 ParseNewBuffer - 0x9d016ca0 TerminalPrintString - 0x9d016cf4 TerminalPrintChar - 0x9d016d34 TerminalStateMachine - .text 0x9d016d54 0xddc build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - 0x9d016d54 InitSPIFlash - 0x9d016ecc SPIFlashCheckAndConfigure - 0x9d016fa8 SPIFlashIsPresent - 0x9d016fcc SPIFlashWriteEnable - 0x9d017030 SPIFlashReadStatusReg - 0x9d0170d8 SPIFlashCheckBusy - 0x9d017134 SPIFlashCheckChipID - 0x9d017270 SPIFlashReadBuffer - 0x9d0173f0 SPIFlashEraseSector - 0x9d017518 SPIFlashErase64KSector - 0x9d01766c SPIFlashWriteSectorWorkingBuffer - 0x9d017828 SPIFlashWriteByte - 0x9d01797c SPIFlashWriteBuffer - .text 0x9d017b30 0xd54 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - 0x9d017b30 BootloaderProtocolInit - 0x9d017b60 BootloaderProtocolStateMachine - 0x9d0180b0 BootloaderProtocolProtocolAnalyzeNewData - 0x9d01812c BootloaderProtocolResetStateMachine - 0x9d018180 BootloaderProtocolSendFrame - 0x9d01834c BootloaderProtocolGetDataBufferPtr - 0x9d018370 BootloaderProtocolSendHeartbeat - 0x9d0183b8 BootloaderProtocolSendACK - 0x9d01840c BootloaderProtocolSendNACK - 0x9d01845c BootloaderProtocolSendInitUploadResponse - 0x9d0185bc BootloaderProtocolSendDataChunkResult - 0x9d0186b0 BootloaderProtocolSendBootloaderState - 0x9d018714 BootloaderProtocolSendFirmwareUploadResult - 0x9d018778 BootloaderProtocolSendFlashCheckResult - 0x9d0187dc BootloaderProtocolSendStoredFirmwareInfoResponse - .text 0x9d018884 0xce8 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - 0x9d018884 SwapEndianShort - 0x9d0188d0 SwapEndianInt - 0x9d01892c ConvertIntToStrLeadingZero - 0x9d018d50 ConvertIntToStr - 0x9d0190a4 ConvertCharToStrLeadingZero - 0x9d01920c ConvertStrToValue - 0x9d0193f8 ConvertCharToStr - 0x9d0194b0 Crc8 - 0x9d019548 Delay - .text 0x9d01956c 0xbf4 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ssl.o - 0x9d019878 m2m_ssl_handshake_rsp - 0x9d0198f0 m2m_ssl_send_certs_to_winc - 0x9d019c38 m2m_ssl_retrieve_cert - 0x9d019f74 m2m_ssl_retrieve_hash - 0x9d01a034 m2m_ssl_stop_processing_certs - 0x9d01a074 m2m_ssl_ecc_process_done - 0x9d01a098 m2m_ssl_set_active_ciphersuites - 0x9d01a100 m2m_ssl_init - .text 0x9d01a160 0xb98 build/ChaletDuinoV2_795F512H_/debug/Source/timer.o - 0x9d01a160 TimerInit - 0x9d01a230 IsMilliSecTimerExpired - 0x9d01a398 IsSecTimerExpired - 0x9d01a4fc IsTimerExpired - 0x9d01a8b0 TimerStart - 0x9d01a9d8 TimerStartSeconds - 0x9d01aa7c TimerReset - 0x9d01ab00 IsTimerRunning - 0x9d01ab44 TimerStop - 0x9d01ab88 Sleep - 0x9d01abe4 Timer1MilliSecInterrupt - -.dinit 0x9d01acf8 0xb60 - .dinit 0x9d01acf8 0xb60 data_init - -.text 0x9d01b858 0x974 - .text 0x9d01b858 0x974 build/ChaletDuinoV2_795F512H_/debug/Source/NetworkProtocol.o - 0x9d01b858 ProtocolInit - 0x9d01b888 StateMachine - 0x9d01be04 ProtocolAnalyzeNewData - 0x9d01be44 ResetStateMachine - 0x9d01be8c ProtocolExecCmd - 0x9d01bec8 ProtocolAcknowledge - 0x9d01bf2c ProtocolCalcCrc - 0x9d01bfa8 ProtocolIsReceiving - 0x9d01bfe8 ProtocolGetFrame - 0x9d01c1a4 ProtocolMsgDataPtr - -.text._vfscanf_s - 0x9d01c1cc 0x868 - .text._vfscanf_s - 0x9d01c1cc 0x868 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - 0x9d01c1cc _vfscanf_s - 0x9d01c1cc _vfscanf_0 - -.text 0x9d01ca34 0x7e8 - .text 0x9d01ca34 0x7e8 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - 0x9d01ca34 ExecuteMasterCommand - 0x9d01d084 SendLoraNetworkCommand - 0x9d01d12c SendLoraNetworkCommandBlocking - 0x9d01d1d4 TestTx - -.rodata 0x9d01d21c 0x7b8 - .rodata 0x9d01d21c 0x7b8 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderInterface.o - -.text 0x9d01d9d4 0x2444 - .text 0x9d01d9d4 0x740 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmdrv.o - 0x9d01d9d4 nm_get_hif_info - 0x9d01da74 nm_get_firmware_full_info - 0x9d01dc08 nm_get_ota_firmware_info - 0x9d01dd9c nm_drv_init_download_mode - 0x9d01de18 nm_drv_init_hold - 0x9d01dec4 nm_drv_init_start - 0x9d01dff8 nm_drv_init - 0x9d01e05c nm_drv_deinit - 0x9d01e0dc nm_cpu_start - .text 0x9d01e114 0x720 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletduinoV2Board.o - 0x9d01e114 InitBoard - .text 0x9d01e834 0x654 build/ChaletDuinoV2_795F512H_/debug/Source/ina219.o - 0x9d01ea3c ina219SetCalibration_13V_10A - 0x9d01eaa0 ina219SetCalibration_32V_2A - 0x9d01eb04 ina219SetCalibration_32V_1A - 0x9d01eb68 ina219SetCalibration_16V_500mA - 0x9d01ebcc ina219SetCalibration_16V_200mA - 0x9d01ec30 ina219Init - 0x9d01ecb0 ina219GetShuntVoltage - 0x9d01ecf4 ina219GetBusVoltage - 0x9d01ed48 ina219GetPower - 0x9d01ed8c ina219GetPower_mW - 0x9d01ede8 ina219GetCurrent - 0x9d01ee2c ina219GetCurrent_mA - .text 0x9d01ee88 0x574 build/ChaletDuinoV2_795F512H_/debug/Source/I2C.o - 0x9d01ee88 I2CInit - 0x9d01eef4 I2CWrite - 0x9d01f0b8 I2CTransmitByte - 0x9d01f0e4 I2CRead - 0x9d01f3d8 I2CWasLastTransactionOK - .text 0x9d01f3fc 0x52c build/ChaletDuinoV2_795F512H_/debug/Source/main.o - 0x9d01f3fc main - 0x9d01f8e8 _mon_putc - .text 0x9d01f928 0x4f0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ota.o - 0x9d01fa60 m2m_ota_init - 0x9d01fad4 m2m_ota_notif_set_url - 0x9d01fb48 m2m_ota_notif_check_for_update - 0x9d01fba0 m2m_ota_notif_sched - 0x9d01fbfc m2m_ota_start_update - 0x9d01fc70 m2m_ota_rollback - 0x9d01fd18 m2m_ota_abort - 0x9d01fd70 m2m_ota_switch_firmware - -.rodata 0x9d01fe18 0x494 - .rodata 0x9d01fe18 0x494 build/ChaletDuinoV2_795F512H_/debug/Source/Terminal.o - -.text 0x9d0202ac 0x1534 - .text 0x9d0202ac 0x45c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - 0x9d0202ac __umoddi3 - .text 0x9d020708 0x454 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmbus.o - 0x9d020708 nm_bus_iface_init - 0x9d020754 nm_bus_iface_deinit - 0x9d020790 nm_bus_iface_reconfigure - 0x9d0207bc nm_read_reg - 0x9d0207f4 nm_read_reg_with_ret - 0x9d020834 nm_write_reg - 0x9d0208c4 nm_read_block - 0x9d020a38 nm_write_block - .text 0x9d020b5c 0x44c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - 0x9d020b5c __udivdi3 - .text 0x9d020fa8 0x42c build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - 0x9d020fa8 InitBatteryMonitor - 0x9d021020 BatteryMonitorTick - 0x9d0212b8 GetBatteryVoltage - 0x9d021320 GetSolarPanelCurrent - 0x9d02134c GetBatterySOC - 0x9d021370 SendNetworkBatteryData - 0x9d0213b0 GetCurrentModuleOK - .text 0x9d0213d4 0x40c build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/common/source/nm_common.o - 0x9d0213d4 m2m_memcpy - 0x9d021458 m2m_checksum - 0x9d0214c8 m2m_memset - 0x9d021540 m2m_strlen - 0x9d02159c m2m_strncmp - 0x9d021670 m2m_strstr - 0x9d021748 m2m_memcmp - -.rodata 0x9d0217e0 0x404 - .rodata 0x9d0217e0 0x404 build/ChaletDuinoV2_795F512H_/debug/Source/Util.o - 0x9d0217e4 CRC8_TABLE - -.text 0x9d021be4 0xd6c - .text 0x9d021be4 0x394 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - 0x9d021be4 TC77Configure - 0x9d021e34 TC77GetActualTemp - 0x9d021f54 TC77GetDeviceID - .text 0x9d021f78 0x390 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bus_wrapper/source/nm_bus_wrapper.o - 0x9d021f78 nm_spi_rw - 0x9d022138 nm_bus_init - 0x9d022224 nm_bus_ioctl - 0x9d0222b8 nm_bus_deinit - 0x9d0222e0 nm_bus_reinit - .text 0x9d022308 0x380 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_periph.o - 0x9d022518 m2m_periph_init - 0x9d022540 m2m_periph_gpio_set_dir - 0x9d022598 m2m_periph_gpio_set_val - 0x9d0225f0 m2m_periph_gpio_get_val - 0x9d022640 m2m_periph_pullup_ctrl - .text 0x9d022688 0x2c8 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/bsp/source/nm_bsp.o - 0x9d022688 chip_isr - 0x9d0227b8 nm_bsp_init - 0x9d0227e0 nm_bsp_deinit - 0x9d022804 nm_bsp_reset - 0x9d02288c nm_bsp_sleep - 0x9d0228c4 nm_bsp_register_isr - 0x9d0228f0 nm_bsp_interrupt_ctrl - -.text.scale 0x9d022950 0x2a0 - .text.scale 0x9d022950 0x2a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - -.text.fpsubadd 0x9d022bf0 0x278 - .text.fpsubadd - 0x9d022bf0 0x278 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - 0x9d022bf0 __subsf3 - 0x9d022bf0 fpsub - 0x9d022bf8 __addsf3 - 0x9d022bf8 fpadd - -.text.malloc 0x9d022e68 0x278 - .text.malloc 0x9d022e68 0x278 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - 0x9d022e68 malloc - -.text 0x9d0230e0 0x988 - .text 0x9d0230e0 0x26c build/ChaletDuinoV2_795F512H_/debug/Source/crc32.o - 0x9d0230e0 crc_32 - 0x9d0231d8 update_crc_32 - .text 0x9d02334c 0x264 build/ChaletDuinoV2_795F512H_/debug/Source/LoraWatchdog.o - 0x9d02334c InitLoraWatchdog - 0x9d02338c TickLoraWatchdog - 0x9d0233c0 LoraWatchdogStateMachine - 0x9d02357c KickLoraWatchdog - .text 0x9d0235b0 0x260 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - 0x9d0235b0 InitChaletPowerRelay - 0x9d02360c ChaletPowerRelayTick - 0x9d023710 ChaletPowerRelayKickTimer - 0x9d023748 ChaletPowerRelayTurnOn - 0x9d023798 ChaletPowerRelayTurnOff - 0x9d0237e8 GetChaletPowerRelayState - .text 0x9d023810 0x258 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - 0x9d023810 InitSyslog - 0x9d023864 SyslogTick - 0x9d023900 SyslogNewByte - 0x9d0239b4 SyslogNewString - 0x9d023a2c SyslogIsBufferEmpty - -.rodata 0x9d023a68 0x254 - .rodata 0x9d023a68 0x254 build/ChaletDuinoV2_795F512H_/debug/Source/WiFiCtrl.o - -.text.fp32div 0x9d023cbc 0x230 - .text.fp32div 0x9d023cbc 0x230 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - 0x9d023cbc fpdiv - 0x9d023cbc __divsf3 - -.text.__floatdisf - 0x9d023eec 0x220 - .text.__floatdisf - 0x9d023eec 0x220 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - 0x9d023eec __floatdisf - -.text.fp32mul 0x9d02410c 0x1bc - .text.fp32mul 0x9d02410c 0x1bc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - 0x9d02410c __mulsf3 - 0x9d02410c fpmul - -.text 0x9d0242c8 0x1a0 - .text 0x9d0242c8 0x1a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - 0x9d0242c8 strcpy - -.text.realloc 0x9d024468 0x194 - .text.realloc 0x9d024468 0x194 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - 0x9d024468 realloc - -.text._sbrk_init - 0x9d0245fc 0x194 - .text._sbrk_init - 0x9d0245fc 0x194 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d0245fc _sbrk_init - -.text._filbuf 0x9d024790 0x188 - .text._filbuf 0x9d024790 0x188 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - 0x9d024790 _filbuf - -.text.read 0x9d024918 0x174 - .text.read 0x9d024918 0x174 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - 0x9d024918 read - -.text 0x9d024a8c 0x2d0 - .text 0x9d024a8c 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - 0x9d024a8c memcpy - .text 0x9d024bf4 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - 0x9d024bf4 strlen - -.text.fputc 0x9d024d5c 0x15c - .text.fputc 0x9d024d5c 0x15c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - 0x9d024d5c fputc - -.text._flsbuf 0x9d024eb8 0x12c - .text._flsbuf 0x9d024eb8 0x12c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - 0x9d024eb8 _flsbuf - -.text 0x9d024fe4 0x11c - .text 0x9d024fe4 0x11c build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - 0x9d024fe4 InitTempSensor - 0x9d025028 TempSensorCheckAndConfigure - 0x9d025084 TempSensorGetTemp - 0x9d0250a8 TickTempSensor - -.text.fgetc 0x9d025100 0x108 - .text.fgetc 0x9d025100 0x108 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - 0x9d025100 fgetc - -.rodata 0x9d025208 0x204 - .rodata 0x9d025208 0x104 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - 0x9d025208 _ctype - .rodata 0x9d02530c 0x100 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmspi.o - -.text.setvbuf 0x9d02540c 0xfc - .text.setvbuf 0x9d02540c 0xfc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - 0x9d02540c setvbuf - -.rodata 0x9d025508 0xe0 - .rodata 0x9d025508 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - -.text.general_exception - 0x9d0255e8 0xdc - .text.general_exception - 0x9d0255e8 0xdc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - 0x9d0255e8 _general_exception_context - -.text 0x9d0256c4 0x1ac - .text 0x9d0256c4 0xd8 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - 0x9d0256c4 InitWatchdog - 0x9d025718 EnableWatchdog - 0x9d025744 DisableWatchdog - 0x9d025770 KickWatchdog - .text 0x9d02579c 0xd4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - 0x9d02579c __floatundisf - -.rodata 0x9d025870 0xc8 - .rodata 0x9d025870 0xc8 build/ChaletDuinoV2_795F512H_/debug/Source/SPI_Flash.o - -.text._sbrk 0x9d025938 0xc4 - .text._sbrk 0x9d025938 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d025938 _sbrk - -.text 0x9d0259fc 0xa8 - .text 0x9d0259fc 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - 0x9d0259fc memset - -.text.atoi 0x9d025aa4 0xa8 - .text.atoi 0x9d025aa4 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - 0x9d025aa4 atoi - -.text.range 0x9d025b4c 0xa0 - .text.range 0x9d025b4c 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - -.text.fpcmp 0x9d025bec 0x9c - .text.fpcmp 0x9d025bec 0x9c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - 0x9d025bec __eqsf2 - 0x9d025bec __lesf2 - 0x9d025bec __gtsf2 - 0x9d025bec __nesf2 - 0x9d025bec fpcmp - 0x9d025bec __gesf2 - 0x9d025bec __ltsf2 - -.text.fflush 0x9d025c88 0x94 - .text.fflush 0x9d025c88 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - 0x9d025c88 fflush - -.text.write 0x9d025d1c 0x94 - .text.write 0x9d025d1c 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - 0x9d025d1c write - -.text.libm 0x9d025db0 0x88 - .text.libm 0x9d025db0 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - 0x9d025db0 frexpf - 0x9d025db0 fpfrexp - -.text 0x9d025e38 0x80 - .text 0x9d025e38 0x80 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/winc_init.o - 0x9d025e38 wifi_init - -.text.fptoul 0x9d025eb8 0x7c - .text.fptoul 0x9d025eb8 0x7c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - 0x9d025eb8 fptoul - 0x9d025eb8 fptoui - 0x9d025eb8 __fixunssfsi - -.text.SoftReset - 0x9d025f34 0x78 - .text.SoftReset - 0x9d025f34 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - 0x9d025f34 SoftReset - -.text.fputs 0x9d025fac 0x78 - .text.fputs 0x9d025fac 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - 0x9d025fac fputs - -.text.strncmp 0x9d026024 0x78 - .text.strncmp 0x9d026024 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - 0x9d026024 strncmp - -.text.ungetc 0x9d02609c 0x74 - .text.ungetc 0x9d02609c 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - 0x9d02609c ungetc - -.text 0x9d026110 0xd8 - .text 0x9d026110 0x70 build/ChaletDuinoV2_795F512H_/debug/Source/SPI.o - 0x9d026110 SPITransaction - .text 0x9d026180 0x68 build/ChaletDuinoV2_795F512H_/debug/Source/HarakiriRelay.o - 0x9d026180 InitHarakiriRelay - 0x9d0261b0 HarakiriRelayTurnOff - -.text._sprintf_cdfFnopuxX - 0x9d0261e8 0x68 - .text._sprintf_cdfFnopuxX - 0x9d0261e8 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - 0x9d0261e8 _sprintf_cdnopuxX - 0x9d0261e8 _sprintf_cdfFnopuxX - -.rodata 0x9d026250 0x68 - .rodata 0x9d026250 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - 0x9d026250 _powers_f - 0x9d026284 _npowers_f - -.text.sitofp 0x9d0262b8 0x60 - .text.sitofp 0x9d0262b8 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - 0x9d0262b8 sitofp - 0x9d0262b8 litofp - 0x9d0262b8 __floatsisf - -.text.wspace 0x9d026318 0x60 - .text.wspace 0x9d026318 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - -.text 0x9d026378 0x58 - .text 0x9d026378 0x58 build/ChaletDuinoV2_795F512H_/debug/Source/exceptions.o - 0x9d026378 _general_exception_handler - -.text._sscanf_s - 0x9d0263d0 0x54 - .text._sscanf_s - 0x9d0263d0 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - 0x9d0263d0 _sscanf_s - 0x9d0263d0 _sscanf_0 - -.text._bufallo 0x9d026424 0x54 - .text._bufallo - 0x9d026424 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - 0x9d026424 _bufallo - -.text.sbrk 0x9d026478 0x50 - .text.sbrk 0x9d026478 0x50 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d026478 sbrk - -.text.main_entry - 0x9d0264c8 0x4c - .text.main_entry - 0x9d0264c8 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - 0x9d0264f4 __crt0_exit - -.text 0x9d026514 0x4c - .text 0x9d026514 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - 0x9d026514 __floatunsisf - -.text._bootstrap_exception_handler - 0x9d026560 0x48 - .text._bootstrap_exception_handler - 0x9d026560 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - 0x9d026560 _bootstrap_exception_handler - -.text 0x9d0265a8 0x44 - .text 0x9d0265a8 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o - 0x9d0265a8 __pic32_software_reset - -.text.puts 0x9d0265ec 0x44 - .text.puts 0x9d0265ec 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - 0x9d0265ec puts - -.text._printf_cdfFnopsuxX - 0x9d026630 0x40 - .text._printf_cdfFnopsuxX - 0x9d026630 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - 0x9d026630 _printf_cdnopsuxX - 0x9d026630 _printf_cdnopuxX - 0x9d026630 _printf_cdfFnopsuxX - 0x9d026630 _printf_fF - -.vector_default - 0x9d026670 0x38 - .vector_default - 0x9d026670 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - 0x9d026670 _DefaultInterrupt - -.rodata 0x9d0266a8 0x64 - .rodata 0x9d0266a8 0x34 build/ChaletDuinoV2_795F512H_/debug/Source/BatteryMonitor.o - .rodata 0x9d0266dc 0x30 build/ChaletDuinoV2_795F512H_/debug/Source/main.o - -.text.INTConfigureSystem - 0x9d02670c 0x30 - .text.INTConfigureSystem - 0x9d02670c 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - 0x9d02670c INTConfigureSystem - -.text.free 0x9d02673c 0x30 - .text.free 0x9d02673c 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - 0x9d02673c free - -.text._stub_sbd_memlayout - 0x9d02676c 0x2c - .text._stub_sbd_memlayout - 0x9d02676c 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d02676c _sbd_memlayout - 0x9d02676c _stub_sbd_memlayout - -.rodata 0x9d026798 0x28 - .rodata 0x9d026798 0x28 build/ChaletDuinoV2_795F512H_/debug/Source/ChaletPowerRelay.o - -.text.tolower 0x9d0267c0 0x24 - .text.tolower 0x9d0267c0 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0267c0 tolower - -.text.toupper 0x9d0267e4 0x24 - .text.toupper 0x9d0267e4 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0267e4 toupper - -.text 0x9d026808 0x20 - .text 0x9d026808 0x20 build/ChaletDuinoV2_795F512H_/debug/Source/DigitalIO.o - 0x9d026808 InitDigitalIO - -.rodata 0x9d026828 0x1c - .rodata 0x9d026828 0x1c build/ChaletDuinoV2_795F512H_/debug/Source/Uart.o - -.text.INTRestoreInterrupts - 0x9d026844 0x1c - .text.INTRestoreInterrupts - 0x9d026844 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - 0x9d026844 INTRestoreInterrupts - -.text.setbuf 0x9d026860 0x1c - .text.setbuf 0x9d026860 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - 0x9d026860 setbuf - -.rodata 0x9d02687c 0x30 - .rodata 0x9d02687c 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/InternalUart.o - .rodata 0x9d026894 0x18 build/ChaletDuinoV2_795F512H_/debug/Source/Watchdog.o - -.text.CheKseg0CacheOff - 0x9d0268ac 0x18 - .text.CheKseg0CacheOff - 0x9d0268ac 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - 0x9d0268ac CheKseg0CacheOff - -.text.CheKseg0CacheOn - 0x9d0268c4 0x18 - .text.CheKseg0CacheOn - 0x9d0268c4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - 0x9d0268c4 CheKseg0CacheOn - -.text 0x9d0268dc 0x18 - .text 0x9d0268dc 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - 0x9d0268dc _nmi_handler - -.text.isalnum 0x9d0268f4 0x18 - .text.isalnum 0x9d0268f4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0268f4 isalnum - -.text.isalpha 0x9d02690c 0x18 - .text.isalpha 0x9d02690c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02690c isalpha - -.text.iscntrl 0x9d026924 0x18 - .text.iscntrl 0x9d026924 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026924 iscntrl - -.text.isdigit 0x9d02693c 0x18 - .text.isdigit 0x9d02693c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02693c isdigit - -.text.isgraph 0x9d026954 0x18 - .text.isgraph 0x9d026954 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026954 isgraph - -.text.islower 0x9d02696c 0x18 - .text.islower 0x9d02696c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02696c islower - -.text.isprint 0x9d026984 0x18 - .text.isprint 0x9d026984 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026984 isprint - -.text.ispunct 0x9d02699c 0x18 - .text.ispunct 0x9d02699c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02699c ispunct - -.text.isspace 0x9d0269b4 0x18 - .text.isspace 0x9d0269b4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0269b4 isspace - -.text.isupper 0x9d0269cc 0x18 - .text.isupper 0x9d0269cc 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0269cc isupper - -.text.isxdigit 0x9d0269e4 0x18 - .text.isxdigit - 0x9d0269e4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0269e4 isxdigit - -.text._buffree 0x9d0269fc 0x14 - .text._buffree - 0x9d0269fc 0x14 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - 0x9d0269fc _buffree - -.rodata 0x9d026a10 0x10 - .rodata 0x9d026a10 0x10 build/ChaletDuinoV2_795F512H_/debug/Source/LoraNetworkInterface.o - -.text.__exception_handler_break - 0x9d026a20 0xc - .text.__exception_handler_break - 0x9d026a20 0xc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - 0x9d026a20 __exception_handler_break - -.rodata 0x9d026a2c 0x18 - .rodata 0x9d026a2c 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/Syslog.o - .rodata 0x9d026a34 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/TC77.o - .rodata 0x9d026a3c 0x8 build/ChaletDuinoV2_795F512H_/debug/Source/BootloaderProtocol.o - -.text.INTEnableInterrupts - 0x9d026a44 0x8 - .text.INTEnableInterrupts - 0x9d026a44 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - 0x9d026a44 INTEnableInterrupts - -.text.INTDisableInterrupts - 0x9d026a4c 0x8 - .text.INTDisableInterrupts - 0x9d026a4c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - 0x9d026a4c INTDisableInterrupts - -.text._on_reset - 0x9d026a54 0x8 - .text._on_reset - 0x9d026a54 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - 0x9d026a54 _on_reset - -.text._on_bootstrap - 0x9d026a5c 0x8 - .text._on_bootstrap - 0x9d026a5c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - 0x9d026a5c _on_bootstrap - -.text.isascii 0x9d026a64 0x8 - .text.isascii 0x9d026a64 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026a64 isascii - -.text.toascii 0x9d026a6c 0x8 - .text.toascii 0x9d026a6c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026a6c toascii - -.text._tolower 0x9d026a74 0x8 - .text._tolower - 0x9d026a74 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026a74 _tolower - -.text._toupper 0x9d026a7c 0x8 - .text._toupper - 0x9d026a7c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d026a7c _toupper - -.text.getpagesize - 0x9d026a84 0x8 - .text.getpagesize - 0x9d026a84 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d026a84 getpagesize - -.rodata 0x9d026a8c 0xc - .rodata 0x9d026a8c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .rodata 0x9d026a94 0x4 build/ChaletDuinoV2_795F512H_/debug/Source/TemperatureSensor.o - -.text%z322 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - -.text%z323 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - -.text%z324 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - -.text%z325 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - -.text%z326 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - -.text%z327 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - -.text%z328 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - -.text%z329 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - -.text%z330 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - -.text%z331 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - -.text%z332 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - -.text%z333 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - -.text%z334 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - -.text%z335 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - -.text%z336 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - -.text%z337 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - -.text%z338 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - -.text%z339 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - -.text%z340 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - -.text%z341 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - -.text%z342 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - -.text%z343 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - -.text%z344 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - -.text%z345 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - -.text%z346 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - -.text%z347 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - -.text%z348 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - -.text%z349 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(malloc.o) - -.text%z350 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - -.text%z351 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - -.text%z352 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - -.text%z353 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - -.text%z354 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - -.text%z355 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - -.text%z356 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - -.text%z357 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) - -.text%z358 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) - -.text%z359 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) - -.text%z360 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) - -.text%z361 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) - -.text%z362 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) - -.text%z363 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) - -.text%z364 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) - -.text%z365 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) - -.text%z366 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) - -.text%z367 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) - -.text%z368 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) - -.text%z369 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) - -.text%z370 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) - -.text%z371 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) - -.text%z372 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) - -.text%z373 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) - -.text%z374 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) - -.text%z375 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) - -.text%z376 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) - -.text%z377 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) - -.text%z378 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) - -.text%z379 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) - -.text%z380 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) - -.text%z381 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) - -.text%z382 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) - -.text%z383 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) - -.text%z384 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) - -.text%z385 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) - -.text%z386 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) - -.text%z387 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) - -.text%z388 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) - -.text%z389 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) - -.text%z390 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) - -.text%z391 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) - -.text%z392 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) - -.text%z393 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) - -.text%z394 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) - -.text%z395 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) - -.text%z396 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) - -.text%z397 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) - -.text%z398 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) - -.text%z399 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) - -.text%z400 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) - -.text%z401 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) - -.text%z402 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) - -.text%z403 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) - -.text%z404 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) - -.text%z405 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) - -.text%z406 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) - -.text%z407 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) - -.text%z408 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) - -.text%z409 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) - -.text%z410 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) - -.text%z411 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) - -.text%z412 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) - -.text%z413 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) - -.text%z414 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - -.text%z415 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) - -.text%z416 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) - -.text%z417 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - -.text%z418 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - -.text%z419 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - -.text%z420 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - -.text%z421 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o - -.text%z422 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - -.text%z423 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - -.text%z424 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - -.text%z425 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - -.text%z426 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - -.text%z427 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - -.text%z428 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o - -.text%z429 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/template.o - -.text%z430 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/system.o - -.text%z431 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/interrupts.o - -.text%z432 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmuart.o - -.text%z433 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/nmi2c.o - -.text%z434 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_crypto.o - -.text%z435 0x00000000 0x0 - .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/debug/Source/winc3400/driver/source/m2m_ate_mode.o - -.text%z436 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\software-debug-break.o - -.text%z437 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o diff --git a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.elf b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.elf index e2e12a83964ff90f16856e1ed0b99a728b892f51..051c1fba0983aa9dc9a2955ae7106744992c450f 100644 GIT binary patch literal 977448 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

%{>yzai<&Pr@z zQ6Nu$#SGW`Jz(U$`JAw0$CY9)T_?h?206w;p18UIbCu&6%o86T&8cg|3qb4Z)y$r_ z_72HU3aj!T&GMbS?QO!iV@&Ibo1S7h*O=B51x_pch~4cwD%IAWC~&26Ti@VjEbtR0 zetsAnvdD|B*oWlXj{>jPmUho|P#Bu!56RyR_!i7C`CG68SdqU2Nm?`VTlGeu69w`G zLI$>Ubzllp$P!xJw*_%+z^^mXVX=&HY^&ksocTj}$=*5LY6 z;E5T;im)K@aeFbf6$>^Ce{UsSoHN_f)wv}|yH{*=L9ICQMUX9Zm>+Knmfh}fBpuQ=&;PSGfcA!<^Zf#6qdokf#1$mMIsM_B{%{T`X%(yJ z%>e)7Vf=oA_=5zn_zB_<65$-+*9@y@!~bLNZ2;q{?mN*ta|K+m@t0&<1_L5Ei9!Va zz<@~nA!Cu)*4QYP90W0uWoc|F=&RChN&s zcX8vC{TBZI9bjeOLW1W}Ojj9Zd>?l+{)m5$;Lpszz@HGPCZ0}3!kONLQtkN7+=)kb5%we!5hnH_(agjFB=#~fg2bOQ@n=YQz|YLr zkXVZZ8b|^Sm8fZi8U6=)^mS&q3K@QviJ3_Jh>1B!yv4+PByPlpyqQao*uX>`5|1O{ zly3lD%TeJK%(xhp{UPD2koXfO?nB~rCfbm=8awo6{u&Z@Gw}!#k1_ErB)*S?GrbMN zj^Q_R7>`~i?E6UY13fc;gv38FaTJN0u(NLFUm?L)b7ua(Nc;{H|A@rjBEf&Nf);o) zy5~%$1=axH0t<-qJm6ucr2W14?iYy%L31`-8sOWY4_*Qc{ z?fMVIV+Tkm!EX;ApT^^#^YIKmnu1^X#(25Rd;#Ja+Kt5PtXYG41#<7NZ@1 z2MJ-vg$*yK{k{q>jFi)UuVjMudp8o!jCtsA4LeQy{qG5*{XU9>u;0RVm(ys{+j4NVJ80cOH;oCy<_;1P&e z8k#WSa}z#4A%ylyu6A6HH!DjgOt^Z�k~l)5~UBIWE6i4Csm(IwPDXzlzIP1zx!m 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 J8t9!+x4Nv33CPK~z{1yM!<8M2D7!xl~ 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 literal 898029 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/BoardCfg_Pinguino.h Source/BoardCfg_ChaletduinoV2.h - + - Source/winc3400/bsp/include/nm_bsp.h - Source/winc3400/bsp/include/nm_bsp_internal.h - - - - - - - Source/winc3400/bus_wrapper/include/nm_bus_wrapper.h - - + Source/winc3400_142/bsp/include/nm_bsp.h - Source/winc3400/common/include/nm_common.h - Source/winc3400/common/include/nm_debug.h + Source/winc3400_142/common/include/nm_common.h + Source/winc3400_142/common/include/nm_debug.h - Source/winc3400/driver/include/ecc_types.h - Source/winc3400/driver/include/m2m_ate_mode.h - Source/winc3400/driver/include/m2m_crypto.h - Source/winc3400/driver/include/m2m_flash.h - Source/winc3400/driver/include/m2m_ota.h - Source/winc3400/driver/include/m2m_periph.h - Source/winc3400/driver/include/m2m_ssl.h - Source/winc3400/driver/include/m2m_types.h - Source/winc3400/driver/include/m2m_wifi.h + Source/winc3400_142/driver/include/ecc_types.h + Source/winc3400_142/driver/include/m2m_flash.h + Source/winc3400_142/driver/include/m2m_hif.h + Source/winc3400_142/driver/include/m2m_ota.h + Source/winc3400_142/driver/include/m2m_periph.h + Source/winc3400_142/driver/include/m2m_ssl.h + Source/winc3400_142/driver/include/m2m_types.h + Source/winc3400_142/driver/include/m2m_wifi.h + Source/winc3400_142/driver/include/nmasic.h + Source/winc3400_142/driver/include/nmbus.h + Source/winc3400_142/driver/include/nmdrv.h + Source/winc3400_142/driver/include/nmspi.h - Source/winc3400/driver/source/m2m_hif.h - Source/winc3400/driver/source/nmasic.h - Source/winc3400/driver/source/nmbus.h - Source/winc3400/driver/source/nmdrv.h - Source/winc3400/driver/source/nmflash.h - Source/winc3400/driver/source/nmi2c.h - Source/winc3400/driver/source/nmspi.h - Source/winc3400/driver/source/nmuart.h - - Source/winc3400/programmer/programmer.h - - Source/winc3400/socket/include/m2m_socket_host_if.h - Source/winc3400/socket/include/socket.h + Source/winc3400_142/socket/include/m2m_socket_host_if.h + Source/winc3400_142/socket/include/netinet_in.h + Source/winc3400_142/socket/include/socket.h - Source/winc3400/socket/source/socket_internal.h - Source/winc3400/spi_flash/include/spi_flash.h - Source/winc3400/spi_flash/include/spi_flash_map.h + Source/winc3400_142/spi_flash/include/spi_flash.h + Source/winc3400_142/spi_flash/include/spi_flash_map.h - Source/winc3400/winc_init.h Source/define.h Source/DigitalIO.h @@ -127,66 +110,52 @@ Source/ChaletduinoBoard.c Source/ChaletduinoV2Board.c - + - - Source/winc3400/bsp/source/nm_bsp.c - - - - - - - Source/winc3400/bus_wrapper/source/nm_bus_wrapper.c - - Source/winc3400/common/source/nm_common.c + Source/winc3400_142/common/source/nm_common.c - Source/winc3400/driver/source/m2m_ate_mode.c - Source/winc3400/driver/source/m2m_crypto.c - Source/winc3400/driver/source/m2m_flash.c - Source/winc3400/driver/source/m2m_hif.c - Source/winc3400/driver/source/m2m_ota.c - Source/winc3400/driver/source/m2m_periph.c - Source/winc3400/driver/source/m2m_ssl.c - Source/winc3400/driver/source/m2m_wifi.c - Source/winc3400/driver/source/nmasic.c - Source/winc3400/driver/source/nmbus.c - Source/winc3400/driver/source/nmdrv.c - Source/winc3400/driver/source/nmflash.c - Source/winc3400/driver/source/nmi2c.c - Source/winc3400/driver/source/nmspi.c - Source/winc3400/driver/source/nmuart.c + Source/winc3400_142/driver/source/m2m_flash.c + Source/winc3400_142/driver/source/m2m_hif.c + Source/winc3400_142/driver/source/m2m_ota.c + Source/winc3400_142/driver/source/m2m_periph.c + Source/winc3400_142/driver/source/m2m_ssl.c + Source/winc3400_142/driver/source/m2m_wifi.c + Source/winc3400_142/driver/source/nmasic.c + Source/winc3400_142/driver/source/nmbus.c + Source/winc3400_142/driver/source/nmdrv.c + Source/winc3400_142/driver/source/nmspi.c - - - Source/winc3400/socket/source/socket.c + Source/winc3400_142/socket/source/inet_addr.c + Source/winc3400_142/socket/source/inet_ntop.c + Source/winc3400_142/socket/source/socket.c - Source/winc3400/spi_flash/source/spi_flash.c + Source/winc3400_142/spi_flash/source/spi_flash.c - Source/winc3400/winc_init.c Source/DigitalIO.c Source/InternalUart.c @@ -928,42 +897,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1128,7 +1061,8 @@ - + @@ -1186,7 +1120,6 @@ - @@ -1410,41 +1343,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/ChaletLora.X/nbproject/private/private.xml b/ChaletLora.X/nbproject/private/private.xml index 3510694..371fb63 100644 --- a/ChaletLora.X/nbproject/private/private.xml +++ b/ChaletLora.X/nbproject/private/private.xml @@ -16,16 +16,6 @@ - - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/main.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/BootloaderInterface.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/WiFiCtrl.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/winc3400/socket/source/socket.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/LoraNetworkInterface.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/main.h - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/WiFiCtrl.h - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/Terminal.c - file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/versionbuild.h - + From 724151ecc8ba3b52c9ff549bccf2bb51de8e7f0e Mon Sep 17 00:00:00 2001 From: jfmartel Date: Fri, 31 Dec 2021 09:28:32 -0500 Subject: [PATCH 2/2] =?UTF-8?q?Impl=C3=A9mentation=20du=20low-level=20du?= =?UTF-8?q?=20driver=20WiFi.=20=20Driver=20fonctionnel.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChaletLora.X/Source/WiFiCtrl.h | 2 +- ChaletLora.X/Source/define.h | 2 +- ChaletLora.X/Source/main.c | 2 + .../winc3400_142/common/source/nm_common.c | 34 +- .../winc3400_142/driver/source/m2m_periph.c | 23 +- .../Source/winc3400_142/driver/source/nmspi.c | 544 +- .../production/ChaletLora.X.production.elf | Bin 977448 -> 979604 bytes .../production/ChaletLora.X.production.hex | 14008 ++++++++-------- .../production/ChaletLora.X.production.map | 3951 +++-- .../Makefile-ChaletDuinoV2_795F512H_.mk | 430 +- .../nbproject/Makefile-genesis.properties | 4 +- ChaletLora.X/nbproject/configurations.xml | 15 + 12 files changed, 9558 insertions(+), 9457 deletions(-) diff --git a/ChaletLora.X/Source/WiFiCtrl.h b/ChaletLora.X/Source/WiFiCtrl.h index 354b80b..0ce3d53 100644 --- a/ChaletLora.X/Source/WiFiCtrl.h +++ b/ChaletLora.X/Source/WiFiCtrl.h @@ -181,7 +181,7 @@ int IsBootloaderClientConnected(); #define STATIC_IP_ADDRESS_1 192 #define STATIC_IP_ADDRESS_2 168 #define STATIC_IP_ADDRESS_3 30 -#define STATIC_IP_ADDRESS_4 125 +#define STATIC_IP_ADDRESS_4 127 #define GATEWAY_ADDRESS_1 192 #define GATEWAY_ADDRESS_2 168 diff --git a/ChaletLora.X/Source/define.h b/ChaletLora.X/Source/define.h index 0ac04c4..644168b 100644 --- a/ChaletLora.X/Source/define.h +++ b/ChaletLora.X/Source/define.h @@ -100,7 +100,7 @@ enum eWiFiState #define WIFI_MODULE_SPI_BAUDRATE 15000000 -#define WIFI_CONNECT_TIMEOUT 5000 //The delay we allow the module to establish a connection. +#define WIFI_CONNECT_TIMEOUT 10000 //The delay we allow the module to establish a connection. /* ************************************************************************** */ /* Defines */ diff --git a/ChaletLora.X/Source/main.c b/ChaletLora.X/Source/main.c index a2afc7d..4b0c5d4 100644 --- a/ChaletLora.X/Source/main.c +++ b/ChaletLora.X/Source/main.c @@ -140,7 +140,9 @@ int main(void) #ifndef NO_WIFI InitTerminal(); + InitWiFi(); + #endif diff --git a/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c b/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c index a09dd72..1900671 100644 --- a/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c +++ b/ChaletLora.X/Source/winc3400_142/common/source/nm_common.c @@ -34,9 +34,23 @@ *******************************************************************************/ #include "nm_common.h" +#include "timer.h" +#include "BoardCfg.h" //#include "wdrv_winc_common.h" //#include "wdrv_winc_gpio.h" + + +void __ISR(_EXTERNAL_0_VECTOR , ipl3) chip_isr(void) +//static void chip_isr(void) +{ + //JFM WINC LOW LEVEL + //JFM à valider si ça fuck pas la patente vu qu'on est en interrupt... + //m2m_wifi_handle_events(); + + IFS0bits.INT0IF = 0; +} + /*! * @fn nm_sleep * @brief Sleep in units of mSec @@ -45,8 +59,7 @@ */ void nm_sleep(uint32_t u32TimeMsec) { - //JFM WINC TODO - //WDRV_MSDelay(u32TimeMsec); + Sleep(u32TimeMsec); } /*! @@ -56,14 +69,15 @@ void nm_sleep(uint32_t u32TimeMsec) */ void nm_reset(void) { - //JFM WINC TODO - //WDRV_WINC_GPIOChipEnableDeassert(); - //WDRV_WINC_GPIOResetAssert(); - nm_sleep(100); - //WDRV_WINC_GPIOChipEnableAssert(); - nm_sleep(10); - //WDRV_WINC_GPIOResetDeassert(); - nm_sleep(10); + //JFM WINC LOW LEVEL + WIFI_CHP_EN_PIN = 0; + WIFI_CHP_RST_PIN = 0; +// Sleep(1); //JFM + Sleep(100); + WIFI_CHP_EN_PIN = 1; +// Sleep(5); JFM + Sleep(150); + WIFI_CHP_RST_PIN = 1; } /* Convert hexchar to value 0-15 */ diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c index 82dbbaf..c524ebd 100644 --- a/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c +++ b/ChaletLora.X/Source/winc3400_142/driver/source/m2m_periph.c @@ -60,13 +60,28 @@ STATIC FUNCTIONS static int8_t get_gpio_idx(uint8_t u8GpioNum) { if(u8GpioNum >= M2M_PERIPH_GPIO_MAX) return -1; - if(u8GpioNum == M2M_PERIPH_GPIO15) { + else if(u8GpioNum == M2M_PERIPH_GPIO3) + { + return 3; + } + else if(u8GpioNum == M2M_PERIPH_GPIO4) + { + return 4; + } + if(u8GpioNum == M2M_PERIPH_GPIO15) + { return 15; - } else if(u8GpioNum == M2M_PERIPH_GPIO16) { + } + else if(u8GpioNum == M2M_PERIPH_GPIO16) + { return 16; - } else if(u8GpioNum == M2M_PERIPH_GPIO18) { + } + else if(u8GpioNum == M2M_PERIPH_GPIO18) + { return 18; - } else { + } + else + { return -2; } } diff --git a/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c b/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c index 2a7de63..abea122 100644 --- a/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c +++ b/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c @@ -1,44 +1,46 @@ /******************************************************************************* - This module contains WINC3400 SPI protocol bus APIs implementation. - - File Name: - nmspi.c - - Summary: - This module contains WINC3400 SPI protocol bus APIs implementation. - - Description: - This module contains WINC3400 SPI protocol bus APIs implementation. + This module contains WINC3400 SPI protocol bus APIs implementation. + + File Name: + nmspi.c + + Summary: + This module contains WINC3400 SPI protocol bus APIs implementation. + + Description: + This module contains WINC3400 SPI protocol bus APIs implementation. *******************************************************************************/ //DOM-IGNORE-BEGIN /******************************************************************************* -* Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. -* -* Subject to your compliance with these terms, you may use Microchip software -* and any derivatives exclusively with Microchip products. It is your -* responsibility to comply with third party license terms applicable to your -* use of third party software (including open source software) that may -* accompany Microchip software. -* -* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER -* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED -* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A -* PARTICULAR PURPOSE. -* -* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE -* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN -* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, -* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -*******************************************************************************/ + * Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS + * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE + * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN + * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + *******************************************************************************/ //#include "osal/osal.h" #include "nm_common.h" #include "nmspi.h" +#include "spi.h" +#include "BoardCfg.h" //#include "wdrv_winc_common.h" //#include "wdrv_winc_spi.h" @@ -90,32 +92,46 @@ #define DATA_PKT_SZ DATA_PKT_SZ_8K static uint8_t gu8Crc_off = 0; +unsigned char mWifiSPIBaudrate; //static OSAL_MUTEX_HANDLE_TYPE s_spiLock = 0; static inline int8_t spi_read(uint8_t *b, uint16_t sz) { - //JFM WINC TODO - // if (true == WDRV_WINC_SPIReceive((unsigned char *const) b, sz)) - return N_OK; - - return N_FAIL; + //JFM WINC Low Level + int i; + WIFI_SPI_SS_PIN = 0; + for(i = 0; i < sz; i++) + { + *b++ = SPITransaction(0xAA,mWifiSPIBaudrate); + } + WIFI_SPI_SS_PIN = 1; + + + return N_OK; + } static inline int8_t spi_write(uint8_t *b, uint16_t sz) { - //JFM WINC TODO - // if (true == WDRV_WINC_SPISend((unsigned char *const) b, sz)) - return N_OK; - - return N_FAIL; + + //JFM WINC Low Level + int i; + WIFI_SPI_SS_PIN = 0; + for(i = 0; i < sz; i++) + { + SPITransaction(*b++,mWifiSPIBaudrate); + } + WIFI_SPI_SS_PIN = 1; + + return N_OK; } /******************************************** - - Crc7 - -********************************************/ + + Crc7 + + ********************************************/ static const uint8_t crc7_syndrome_table[256] = { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, @@ -165,16 +181,16 @@ static uint8_t crc7(uint8_t crc, const uint8_t *buffer, uint32_t len) } /******************************************** - - Spi protocol Function - -********************************************/ + + Spi protocol Function + + ********************************************/ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, uint8_t clockless) { uint8_t bc[9]; uint8_t len = 5; - + bc[0] = cmd; switch (cmd) { @@ -184,7 +200,7 @@ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, bc[3] = (uint8_t)adr; len = 5; break; - + case CMD_INTERNAL_READ: /* internal register read */ bc[1] = (uint8_t)(adr >> 8); if(clockless) @@ -236,7 +252,7 @@ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, bc[6] = (uint8_t)(sz); len = 8; break; - + case CMD_INTERNAL_WRITE: /* internal register write */ bc[1] = (uint8_t)(adr >> 8); if(clockless) bc[1] |= (1 << 7); @@ -247,7 +263,7 @@ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, bc[6] = (uint8_t)(u32data); len = 8; break; - + case CMD_SINGLE_WRITE: /* single word write */ bc[1] = (uint8_t)(adr >> 16); bc[2] = (uint8_t)(adr >> 8); @@ -258,11 +274,11 @@ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, bc[7] = (uint8_t)(u32data); len = 9; break; - + default: return N_FAIL; } - + if (!gu8Crc_off) { bc[len-1] = (crc7(0x7f, (const uint8_t *)&bc[0], len-1)) << 1; @@ -271,13 +287,13 @@ static int8_t spi_cmd(uint8_t cmd, uint32_t adr, uint32_t u32data, uint32_t sz, { len -= 1; } - + if (N_OK != spi_write(bc, len)) { M2M_ERR("[spi_cmd]: Failed cmd write, bus error...\r\n"); return N_FAIL; } - + return N_OK; } @@ -285,10 +301,10 @@ static int8_t spi_cmd_rsp(uint8_t cmd) { uint8_t rsp; int8_t s8RetryCnt; - + /** - Command/Control response - **/ + Command/Control response + **/ if ((cmd == CMD_RESET) #ifdef CMD_TERMINATE || (cmd == CMD_TERMINATE) @@ -301,7 +317,7 @@ static int8_t spi_cmd_rsp(uint8_t cmd) if (N_OK != spi_read(&rsp, 1)) return N_FAIL; } - + /* wait for response */ s8RetryCnt = SPI_RESP_RETRY_COUNT; do @@ -313,15 +329,15 @@ static int8_t spi_cmd_rsp(uint8_t cmd) } } while((rsp != cmd) && (s8RetryCnt-- > 0)); - + if (s8RetryCnt < 0) { M2M_ERR("[spi_cmd_rsp]: Failed cmd response read\n"); return N_FAIL; } /** - State response - **/ + State response + **/ /* wait for response */ s8RetryCnt = SPI_RESP_RETRY_COUNT; do @@ -333,13 +349,13 @@ static int8_t spi_cmd_rsp(uint8_t cmd) } } while((rsp != 0x00) && (s8RetryCnt-- > 0)); - + if (s8RetryCnt < 0) { M2M_ERR("[spi_cmd_rsp]: Failed cmd response read\n"); return N_FAIL; } - + return N_OK; } @@ -352,10 +368,10 @@ static void spi_reset(void) } /******************************************** - - Spi Internal Read/Write Function - -********************************************/ + + Spi Internal Read/Write Function + + ********************************************/ static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) { @@ -363,20 +379,20 @@ static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) int8_t result = N_OK; uint8_t crc[2]; uint8_t rsp; - + /** - Data - **/ + Data + **/ ix = 0; do { if (sz <= DATA_PKT_SZ) nbytes = sz; else nbytes = DATA_PKT_SZ; - + /** - Data Response header - **/ + Data Response header + **/ retry = SPI_RESP_RETRY_COUNT; do { @@ -390,20 +406,20 @@ static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) break; } while (retry--); - + if (result == N_FAIL) break; - + if (retry <= 0) { M2M_ERR("[spi_data_read]: Failed data response read...(%02x)\r\n", rsp); result = N_FAIL; break; } - + /** - Read bytes - **/ + Read bytes + **/ if (N_OK != spi_read(&b[ix], nbytes)) { M2M_ERR("[spi_data_read]: Failed data block read, bus error...\r\n"); @@ -413,8 +429,8 @@ static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) if(!clockless) { /** - Read Crc - **/ + Read Crc + **/ if (!gu8Crc_off) { if (N_OK != spi_read(crc, 2)) @@ -427,9 +443,9 @@ static int8_t spi_data_read(uint8_t *b, uint16_t sz,uint8_t clockless) } ix += nbytes; sz -= nbytes; - + } while (sz); - + return result; } @@ -440,20 +456,20 @@ static int8_t spi_data_write(uint8_t *b, uint16_t sz) int8_t result = N_OK; uint8_t cmd, order, crc[2] = {0}; //uint8_t rsp; - + /** - Data - **/ + Data + **/ do { if (sz <= DATA_PKT_SZ) nbytes = sz; else nbytes = DATA_PKT_SZ; - + /** - Write command - **/ + Write command + **/ cmd = 0xf0; if (ix == 0) { @@ -469,7 +485,7 @@ static int8_t spi_data_write(uint8_t *b, uint16_t sz) else order = 0x2; } - + cmd |= order; if (N_OK != spi_write(&cmd, 1)) { @@ -477,20 +493,20 @@ static int8_t spi_data_write(uint8_t *b, uint16_t sz) result = N_FAIL; break; } - + /** - Write data - **/ + Write data + **/ if (N_OK != spi_write(&b[ix], nbytes)) { M2M_ERR("[spi_data_write]: Failed data block write, bus error...\r\n"); result = N_FAIL; break; } - + /** - Write Crc - **/ + Write Crc + **/ if (!gu8Crc_off) { if (N_OK != spi_write(crc, 2)) @@ -500,47 +516,47 @@ static int8_t spi_data_write(uint8_t *b, uint16_t sz) break; } } - + ix += nbytes; sz -= nbytes; } while (sz); - + return result; } /******************************************** - - Spi interfaces - -********************************************/ + + Spi interfaces + + ********************************************/ static int8_t spi_write_reg(uint32_t u32Addr, uint32_t u32Val) { uint8_t cmd = CMD_SINGLE_WRITE; uint8_t clockless = 0; - + if (u32Addr <= 0x30) { /** - NMC1000 clockless registers. - **/ + NMC1000 clockless registers. + **/ cmd = CMD_INTERNAL_WRITE; clockless = 1; } - + if (spi_cmd(cmd, u32Addr, u32Val, 4, clockless) != N_OK) { M2M_ERR("[spi_write_reg]: Failed cmd, write reg (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + if (spi_cmd_rsp(cmd) != N_OK) { M2M_ERR("[spi_write_reg]: Failed cmd response, write reg (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + return N_OK; } @@ -548,50 +564,50 @@ static int8_t spi_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) { uint8_t len; uint8_t rsp[3]; - + /** - Command - **/ + Command + **/ if (spi_cmd(CMD_DMA_EXT_WRITE, u32Addr, 0, u16Sz, 0) != N_OK) { M2M_ERR("[spi_write_block]: Failed cmd, write block (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + if (spi_cmd_rsp(CMD_DMA_EXT_WRITE) != N_OK) { M2M_ERR("[spi_write_block]: Failed cmd response, write block (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + /** - Data - **/ + Data + **/ if (spi_data_write(puBuf, u16Sz) != N_OK) { M2M_ERR("[spi_write_block]: Failed block data write...\r\n"); return N_FAIL; } /** - Data RESP - **/ + Data RESP + **/ if (!gu8Crc_off) len = 2; else len = 3; - + if (N_OK != spi_read(&rsp[0], len)) { M2M_ERR("[spi_write_block]: Failed bus error...\r\n"); return N_FAIL; } - + if((rsp[len-1] != 0) || (rsp[len-2] != 0xC3)) { M2M_ERR("[spi_write_block]: Failed data response read, %x %x %x\r\n", rsp[0], rsp[1], rsp[2]); return N_FAIL; } - + return N_OK; } @@ -600,76 +616,76 @@ static int8_t spi_read_reg(uint32_t u32Addr, uint32_t* pu32RetVal) uint8_t cmd = CMD_SINGLE_READ; uint8_t tmp[4]; uint8_t clockless = 0; - + if (u32Addr <= 0xff) { /** - NMC1000 clockless registers. - **/ + NMC1000 clockless registers. + **/ cmd = CMD_INTERNAL_READ; clockless = 1; } - + if (spi_cmd(cmd, u32Addr, 0, 4, clockless) != N_OK) { M2M_ERR("[spi_read_reg]: Failed cmd, read reg (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + if (spi_cmd_rsp(cmd) != N_OK) { M2M_ERR("[spi_read_reg]: Failed cmd response, read reg (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + /* to avoid endianess issues */ if (spi_data_read(&tmp[0], 4, clockless) != N_OK) { M2M_ERR("[spi_read_reg]: Failed data read...\r\n"); return N_FAIL; } - + *pu32RetVal = ((uint32_t)tmp[0]) | - ((uint32_t)tmp[1] << 8) | - ((uint32_t)tmp[2] << 16) | - ((uint32_t)tmp[3] << 24); - + ((uint32_t)tmp[1] << 8) | + ((uint32_t)tmp[2] << 16) | + ((uint32_t)tmp[3] << 24); + return N_OK; } static int8_t spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) { /** - Command - **/ + Command + **/ if (spi_cmd(CMD_DMA_EXT_READ, u32Addr, 0, u16Sz, 0) != N_OK) { M2M_ERR("[spi_read_block]: Failed cmd, read block (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + if (spi_cmd_rsp(CMD_DMA_EXT_READ) != N_OK) { M2M_ERR("[spi_read_block]: Failed cmd response, read block (%08" PRIx32 ")...\r\n", u32Addr); return N_FAIL; } - + /** - Data - **/ + Data + **/ if (spi_data_read(puBuf, u16Sz, 0) != N_OK) { M2M_ERR("[spi_read_block]: Failed block data read...\r\n"); return N_FAIL; } - + return N_OK; } static void spi_init_pkt_sz(void) { uint32_t val32; - + /* Make sure SPI max. packet size fits the defined DATA_PKT_SZ. */ val32 = nm_spi_read_reg(SPI_BASE+0x24); val32 &= ~(0x7 << 4); @@ -686,56 +702,58 @@ static void spi_init_pkt_sz(void) } /******************************************** - - Bus interfaces - -********************************************/ + + Bus interfaces + + ********************************************/ int8_t nm_spi_reset(void) { -// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) -// return M2M_ERR_BUS_FAIL; - + // if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + spi_cmd(CMD_RESET, 0, 0, 0, 0); spi_cmd_rsp(CMD_RESET); - - // OSAL_MUTEX_Unlock(&s_spiLock); - + + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_SUCCESS; } void nm_spi_lock_init(void) { -// OSAL_MUTEX_Create(&s_spiLock); + // OSAL_MUTEX_Create(&s_spiLock); } /* -* @fn nm_spi_init -* @brief Initialize the SPI -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_init + * @brief Initialize the SPI + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_init(void) { uint32_t chipid; uint32_t reg = 0; - + + mWifiSPIBaudrate = SPICalculateBRG(PERIPHERAL_FREQ, WIFI_MODULE_SPI_BAUDRATE); + /** - configure protocol - **/ + configure protocol + **/ gu8Crc_off = 0; - + if (nm_spi_read_reg_with_ret(NMI_SPI_PROTOCOL_CONFIG, ®) != M2M_SUCCESS) { /* Read failed. Try with CRC off. This might happen when module - is removed but chip isn't reset*/ + is removed but chip isn't reset*/ gu8Crc_off = 1; M2M_ERR("[nm_spi_init]: Failed internal read protocol with CRC on, retrying with CRC off...\r\n"); - + if (nm_spi_read_reg_with_ret(NMI_SPI_PROTOCOL_CONFIG, ®) != M2M_SUCCESS) { // Reaad failed with both CRC on and off, something went bad M2M_ERR("[nm_spi_init]: Failed internal read protocol...\r\n"); - + return M2M_ERR_BUS_FAIL; } } @@ -744,148 +762,148 @@ int8_t nm_spi_init(void) reg &= ~0xc; /* disable CRC checking */ reg &= ~0x70; reg |= (0x5 << 4); - + if (nm_spi_write_reg(NMI_SPI_PROTOCOL_CONFIG, reg) != M2M_SUCCESS) { M2M_ERR("[nm_spi_init]: Failed internal write protocol reg...\r\n"); - + return M2M_ERR_BUS_FAIL; } - + gu8Crc_off = 1; } - + /** - make sure can read back chip id correctly - **/ + make sure can read back chip id correctly + **/ if (nm_spi_read_reg_with_ret(0x1000, &chipid) != M2M_SUCCESS) { M2M_ERR("[nm_spi_init]: Fail cmd read chip id...\r\n"); return M2M_ERR_BUS_FAIL; } - + M2M_DBG("[nm_spi_init]: chipid (%08x)\r\n", (unsigned int)chipid); spi_init_pkt_sz(); - + return M2M_SUCCESS; } /* -* @fn nm_spi_deinit -* @brief DeInitialize the SPI -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_deinit + * @brief DeInitialize the SPI + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_deinit(void) { gu8Crc_off = 0; -// OSAL_MUTEX_Delete(&s_spiLock); + // OSAL_MUTEX_Delete(&s_spiLock); return M2M_SUCCESS; } /* -* @fn nm_spi_read_reg -* @brief Read register -* @param [in] u32Addr -* Register address -* @return Register value -*/ + * @fn nm_spi_read_reg + * @brief Read register + * @param [in] u32Addr + * Register address + * @return Register value + */ uint32_t nm_spi_read_reg(uint32_t u32Addr) { uint32_t u32Val; - + nm_spi_read_reg_with_ret(u32Addr, &u32Val); - + return u32Val; } /* -* @fn nm_spi_read_reg_with_ret -* @brief Read register with error code return -* @param [in] u32Addr -* Register address -* @param [out] pu32RetVal -* Pointer to u32 variable used to return the read value -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_read_reg_with_ret + * @brief Read register with error code return + * @param [in] u32Addr + * Register address + * @param [out] pu32RetVal + * Pointer to u32 variable used to return the read value + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_read_reg_with_ret(uint32_t u32Addr, uint32_t* pu32RetVal) { uint8_t retry = SPI_RETRY_COUNT; - -// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) -// return M2M_ERR_BUS_FAIL; - + + // if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + while(retry--) { if (spi_read_reg(u32Addr, pu32RetVal) == N_OK) { -// OSAL_MUTEX_Unlock(&s_spiLock); - + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_SUCCESS; } - + M2M_ERR("Reset and retry %d %" PRIx32 "\r\n", retry, u32Addr); spi_reset(); } - -// OSAL_MUTEX_Unlock(&s_spiLock); - + + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_ERR_BUS_FAIL; } /* -* @fn nm_spi_write_reg -* @brief write register -* @param [in] u32Addr -* Register address -* @param [in] u32Val -* Value to be written to the register -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_write_reg + * @brief write register + * @param [in] u32Addr + * Register address + * @param [in] u32Val + * Value to be written to the register + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_write_reg(uint32_t u32Addr, uint32_t u32Val) { uint8_t retry = SPI_RETRY_COUNT; - -// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) - // return M2M_ERR_BUS_FAIL; - + + // if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + while(retry--) { if (spi_write_reg(u32Addr, u32Val) == N_OK) { -// OSAL_MUTEX_Unlock(&s_spiLock); - + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_SUCCESS; } - + M2M_ERR("Reset and retry %d %" PRIx32 " %" PRIx32 "\r\n", retry, u32Addr, u32Val); spi_reset(); } - -// OSAL_MUTEX_Unlock(&s_spiLock); - + + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_ERR_BUS_FAIL; } /* -* @fn nm_spi_read_block -* @brief Read block of data -* @param [in] u32Addr -* Start address -* @param [out] puBuf -* Pointer to a buffer used to return the read data -* @param [in] u16Sz -* Number of bytes to read. The buffer size must be >= u16Sz -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_read_block + * @brief Read block of data + * @param [in] u32Addr + * Start address + * @param [out] puBuf + * Pointer to a buffer used to return the read data + * @param [in] u16Sz + * Number of bytes to read. The buffer size must be >= u16Sz + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) { uint8_t retry = SPI_RETRY_COUNT; uint8_t tmpBuf[2] = {0,0}; uint8_t *puTmpBuf; - -// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) - // return M2M_ERR_BUS_FAIL; - + + // if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + if (u16Sz == 1) { u16Sz = 2; @@ -895,65 +913,65 @@ int8_t nm_spi_read_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) { puTmpBuf = puBuf; } - + while(retry--) { if (spi_read_block(u32Addr, puTmpBuf, u16Sz) == N_OK) { -// OSAL_MUTEX_Unlock(&s_spiLock); - + // OSAL_MUTEX_Unlock(&s_spiLock); + if (puTmpBuf == tmpBuf) *puBuf = *tmpBuf; - + return M2M_SUCCESS; } - + M2M_ERR("Reset and retry %d %" PRIx32 " %d\r\n", retry, u32Addr, u16Sz); spi_reset(); } - -// OSAL_MUTEX_Unlock(&s_spiLock); - + + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_ERR_BUS_FAIL; } /* -* @fn nm_spi_write_block -* @brief Write block of data -* @param [in] u32Addr -* Start address -* @param [in] puBuf -* Pointer to the buffer holding the data to be written -* @param [in] u16Sz -* Number of bytes to write. The buffer size must be >= u16Sz -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -*/ + * @fn nm_spi_write_block + * @brief Write block of data + * @param [in] u32Addr + * Start address + * @param [in] puBuf + * Pointer to the buffer holding the data to be written + * @param [in] u16Sz + * Number of bytes to write. The buffer size must be >= u16Sz + * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure + */ int8_t nm_spi_write_block(uint32_t u32Addr, uint8_t *puBuf, uint16_t u16Sz) { uint8_t retry = SPI_RETRY_COUNT; - -// if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) -// return M2M_ERR_BUS_FAIL; - + + // if (OSAL_RESULT_TRUE != OSAL_MUTEX_Lock(&s_spiLock, OSAL_WAIT_FOREVER)) + // return M2M_ERR_BUS_FAIL; + //Workaround hardware problem with single byte transfers over SPI bus if (u16Sz == 1) u16Sz = 2; - + while(retry--) { if (spi_write_block(u32Addr, puBuf, u16Sz) == N_OK) { -// OSAL_MUTEX_Unlock(&s_spiLock); - + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_SUCCESS; } - + M2M_ERR("Reset and retry %d %" PRIx32 " %d\r\n", retry, u32Addr, u16Sz); spi_reset(); } - -// OSAL_MUTEX_Unlock(&s_spiLock); - + + // OSAL_MUTEX_Unlock(&s_spiLock); + return M2M_ERR_BUS_FAIL; } diff --git a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.elf b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.elf index 051c1fba0983aa9dc9a2955ae7106744992c450f..4443bce24ad99fdffbd0ab8759251c67cacf5ae1 100644 GIT binary patch delta 219690 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%0DBp5sJd%+LvGl%g^@&f2fI;#zF{w%s2cQcrw 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 A%m4rY delta 216881 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%0DA@i7-} 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 H-kJFSJV!^M diff --git a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.hex b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.hex index a4cc36e..b8a2b39 100644 --- a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.hex +++ b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.hex @@ -12,215 +12,215 @@ :080000000014400f0000000095 :020000040000fa :020000041fc01b -:10038000039d1a3c588c5a270800400300000000c7 +:10038000039d1a3c008f5a2708004003000000001c :020000040000fa :020000041d00dd -:10418000029d1a3c787c5a2708004003000000007a +:10418000029d1a3c207f5a270800400300000000cf :020000040000fa :020000041d00dd -:084200005aa3400b000000006e +:0842000004a4400b00000000c3 :020000040000fa :020000041d00dd -:084220005aa3400b000000004e +:0842200004a4400b00000000a3 :020000040000fa :020000041d00dd -:084240005aa3400b000000002e +:0842400004a4400b0000000083 :020000040000fa :020000041d00dd -:084260005aa3400b000000000e +:08426000e293400b0000000096 :020000040000fa :020000041d00dd -:08428000fb76400b000000007a +:084280006577400b000000000f :020000040000fa :020000041d00dd -:0842a0005aa3400b00000000ce +:0842a00004a4400b0000000023 :020000040000fa :020000041d00dd -:0842c0005aa3400b00000000ae +:0842c00004a4400b0000000003 :020000040000fa :020000041d00dd -:0842e0005aa3400b000000008e +:0842e00004a4400b00000000e3 :020000040000fa :020000041d00dd -:084300005aa3400b000000006d +:0843000004a4400b00000000c2 :020000040000fa :020000041d00dd -:084320005aa3400b000000004d +:0843200004a4400b00000000a2 :020000040000fa :020000041d00dd -:084340005aa3400b000000002d +:0843400004a4400b0000000082 :020000040000fa :020000041d00dd -:084360005aa3400b000000000d +:0843600004a4400b0000000062 :020000040000fa :020000041d00dd -:084380005aa3400b00000000ed +:0843800004a4400b0000000042 :020000040000fa :020000041d00dd -:0843a0005aa3400b00000000cd +:0843a00004a4400b0000000022 :020000040000fa :020000041d00dd -:0843c0005aa3400b00000000ad +:0843c00004a4400b0000000002 :020000040000fa :020000041d00dd -:0843e0005aa3400b000000008d +:0843e00004a4400b00000000e2 :020000040000fa :020000041d00dd -:084400005aa3400b000000006c +:0844000004a4400b00000000c1 :020000040000fa :020000041d00dd -:084420005aa3400b000000004c +:0844200004a4400b00000000a1 :020000040000fa :020000041d00dd -:084440005aa3400b000000002c +:0844400004a4400b0000000081 :020000040000fa :020000041d00dd -:084460005aa3400b000000000c +:0844600004a4400b0000000061 :020000040000fa :020000041d00dd -:084480005aa3400b00000000ec +:0844800004a4400b0000000041 :020000040000fa :020000041d00dd -:0844a0005aa3400b00000000cc +:0844a00004a4400b0000000021 :020000040000fa :020000041d00dd -:0844c0005aa3400b00000000ac +:0844c00004a4400b0000000001 :020000040000fa :020000041d00dd -:0844e0005aa3400b000000008c +:0844e00004a4400b00000000e1 :020000040000fa :020000041d00dd -:08450000b05e400b000000005a +:084500001a5f400b00000000ef :020000040000fa :020000041d00dd -:084520005aa3400b000000004b +:0845200004a4400b00000000a0 :020000040000fa :020000041d00dd -:084540005aa3400b000000002b +:0845400004a4400b0000000080 :020000040000fa :020000041d00dd -:084560005aa3400b000000000b +:0845600004a4400b0000000060 :020000040000fa :020000041d00dd -:084580005aa3400b00000000eb +:0845800004a4400b0000000040 :020000040000fa :020000041d00dd -:0845a0005aa3400b00000000cb +:0845a00004a4400b0000000020 :020000040000fa :020000041d00dd -:0845c0005aa3400b00000000ab +:0845c00004a4400b0000000000 :020000040000fa :020000041d00dd -:0845e0005aa3400b000000008b +:0845e00004a4400b00000000e0 :020000040000fa :020000041d00dd -:084600003f5f400b00000000c9 +:08460000a95f400b000000005f :020000040000fa :020000041d00dd -:084620005aa3400b000000004a +:0846200004a4400b000000009f :020000040000fa :020000041d00dd -:084640005aa3400b000000002a +:0846400004a4400b000000007f :020000040000fa :020000041d00dd -:084660005aa3400b000000000a +:0846600004a4400b000000005f :020000040000fa :020000041d00dd -:084680005aa3400b00000000ea +:0846800004a4400b000000003f :020000040000fa :020000041d00dd -:0846a0005aa3400b00000000ca +:0846a00004a4400b000000001f :020000040000fa :020000041d00dd -:0846c0005aa3400b00000000aa +:0846c00004a4400b00000000ff :020000040000fa :020000041d00dd -:0846e0005aa3400b000000008a +:0846e00004a4400b00000000df :020000040000fa :020000041d00dd -:084700005aa3400b0000000069 +:0847000004a4400b00000000be :020000040000fa :020000041d00dd -:084720005aa3400b0000000049 +:0847200004a4400b000000009e :020000040000fa :020000041d00dd -:084740005aa3400b0000000029 +:0847400004a4400b000000007e :020000040000fa :020000041d00dd -:084760005aa3400b0000000009 +:0847600004a4400b000000005e :020000040000fa :020000041d00dd -:084780005aa3400b00000000e9 +:0847800004a4400b000000003e :020000040000fa :020000041d00dd -:0847a0005aa3400b00000000c9 +:0847a00004a4400b000000001e :020000040000fa :020000041d00dd -:0847c0005aa3400b00000000a9 +:0847c00004a4400b00000000fe :020000040000fa :020000041d00dd -:0847e0005aa3400b0000000089 +:0847e00004a4400b00000000de :020000040000fa :020000041d00dd -:084800005aa3400b0000000068 +:0848000004a4400b00000000bd :020000040000fa :020000041d00dd -:084820005aa3400b0000000048 +:0848200004a4400b000000009d :020000040000fa :020000041d00dd -:084840005aa3400b0000000028 +:0848400004a4400b000000007d :020000040000fa :020000041d00dd -:084860005aa3400b0000000008 +:0848600004a4400b000000005d :020000040000fa :020000041d00dd -:084880005aa3400b00000000e8 +:0848800004a4400b000000003d :020000040000fa :020000041d00dd -:0848a0005aa3400b00000000c8 +:0848a00004a4400b000000001d :020000040000fa :020000041d00dd -:0848c0005aa3400b00000000a8 +:0848c00004a4400b00000000fd :020000040000fa :020000041d00dd -:0848e0005aa3400b0000000088 +:0848e00004a4400b00000000dd :020000040000fa :020000041d00dd -:084900005aa3400b0000000067 +:0849000004a4400b00000000bc :020000040000fa :020000041d00dd -:084920005aa3400b0000000047 +:0849200004a4400b000000009c :020000040000fa :020000041d00dd -:084940005aa3400b0000000027 +:0849400004a4400b000000007c :020000040000fa :020000041d00dd -:084960005aa3400b0000000007 +:0849600004a4400b000000005c :020000040000fa :020000041d00dd -:084980005aa3400b00000000e7 +:0849800004a4400b000000003c :020000040000fa :020000041d00dd -:0849a0005aa3400b00000000c7 +:0849a00004a4400b000000001c :020000040000fa :020000041d00dd -:0849c0005aa3400b00000000a7 +:0849c00004a4400b00000000fc :020000040000fa :020000041d00dd -:0849e0005aa3400b0000000087 +:0849e00004a4400b00000000dc :020000040000fa :020000041d00dd :1050000000601a40c0045a7f0500401300000000f1 -:10501000039d1a3ca48f5a2708004003000000009b -:1050200001a01d3cf8ffbd2701a01c3c20809c274f +:10501000039d1a3c4c925a270800400300000000f0 +:1050200001a01d3cf0ffbd2701a01c3c20809c2757 :105030000260094020582001801e2a7d8449497d54 :1050400002608940c000000000e0dc4102608b404b -:10505000c0000000039d083c1091082509f80001dc +:10505000c0000000039d083cb893082509f8000132 :105060000000000000a0083ca400082500a0093ca6 -:10507000a43029250600001000000000000000ad4b +:10507000a83029250600001000000000000000ad47 :10508000040000ad080000ad0c0000ad10000825c4 :105090002b080901f9ff201400000000029d083cc4 -:1050a00000dd08250000098d1800201104000825e6 +:1050a000a8de08250000098d18002011040008253d :1050b00000000a8d0400082500000b8d0900601116 :1050c0000400082500000c91ffff4a250100082577 :1050d00000002ca1fbff4015010029250500001050 @@ -237,13 +237,13 @@ :1051800001608a408000093c006889400080084036 :105190008005097d404c0900006008405800013c32 :1051a000244001012540280100608840039d083cff -:1051b0001891082509f8000100000000006008406f +:1051b000c093082509f800010000000000600840c5 :1051c000bfff013cffff2134244001010060884003 -:1051d000000084300000a530039d083cc08b0825ea +:1051d000000084300000a530039d083c688e08253f :0851e0000800000100000000be :020000040000fa :020000041fc01b -:1004800000f89b40c0000000039d1b3ca08c7b2714 +:1004800000f89b40c0000000039d1b3c488f7b2769 :10049000020060130000000000c09b4000f81b40f9 :0c04a000c00000001f000042000000002f :020000040000fa @@ -252,132 +252,132 @@ :10581000211880002110a000e000c6afd800c3a36b :10582000dc00c2a7d800c3932c0002241500621428 :10583000000000001c00c227e000c48f21284000a7 -:1058400004000624213800009452400f000000009c -:10585000e7014014000000000481828fe401401041 -:10586000000000000481828f1c00c3272c00042448 +:105840000400062421380000c257400f0000000069 +:10585000e7014014000000009880828fe4014010ae +:10586000000000009880828f1c00c3272c000424b5 :105870002128600009f8400000000000fc17400be0 :1058800000000000d800c3931d000224150062141c :10589000000000002000c227e000c48f2128400043 -:1058a00008000624213800009452400f0000000038 -:1058b000cf014014000000000481828fcc01401011 -:1058c000000000000481828f2000c3271d000424f3 +:1058a0000800062421380000c257400f0000000005 +:1058b000cf014014000000009880828fcc0140107e +:1058c000000000009880828f2000c3271d00042460 :1058d0002128600009f8400000000000fc17400b80 :1058e00000000000d800c3930800022415006214d1 :1058f000000000006400c227e000c48f212840009f -:1059000030000624010007249452400f00000000dc -:10591000b7014014000000000481828fb4014010e0 -:10592000000000000481828f6400c3270800042463 +:105900003000062401000724c257400f00000000a9 +:10591000b7014014000000009880828fb40140104d +:10592000000000009880828f6400c32708000424d0 :105930002128600009f8400000000000fc17400b1f :1059400000000000d800c39310000224a8016210d8 :1059500000000000d800c393320002241500621436 :10596000000000002800c227e000c48f212840006a -:1059700014000624213800009452400f000000005b -:105980009b014014000000000481828f98014010a8 -:10599000000000000481828f2800c3273200042405 +:105970001400062421380000c257400f0000000028 +:105980009b014014000000009880828f9801401015 +:10599000000000009880828f2800c3273200042472 :1059a0002128600009f8400000000000fc17400baf :1059b00000000000d800c3932f0002241b006214d3 :1059c000000000006400c2272120400021280000c0 -:1059d0006800062423a0400f000000006400c227d6 +:1059d00068000624cda0400f000000006400c2272c :1059e000e000c48f21284000680006242138000010 -:1059f0009452400f000000007d01401400000000a0 -:105a00000481828f7a014010000000000481828f9f +:1059f000c257400f000000007d014014000000006d +:105a00009880828f7a014010000000009880828f79 :105a10006400c3272f0004242128600009f84000f7 :105a200000000000fc17400b00000000d800c393ea :105a30003400022414006214000000003c00c2275d :105a4000e000c48f21284000040006242138000013 -:105a50009452400f00000000650140140000000057 -:105a60000481828f62014010000000000481828f57 +:105a5000c257400f00000000650140140000000024 +:105a60009880828f62014010000000009880828f31 :105a7000340004242128000009f840000000000040 :105a8000fc17400b00000000d800c3931300022451 :105a900017006214000000004000c227e000c48f1d -:105aa0002128400004000624213800009452400fb1 +:105aa000212840000400062421380000c257400f7e :105ab000000000004e014014000000004000c293ae -:105ac000008182a30481828f490140100000000000 -:105ad0000481828f4000c327130004242128600022 +:105ac000948082a39880828f4901401000000000da +:105ad0009880828f4000c32713000424212860008f :105ae00009f8400000000000fc17400b0000000017 :105af000d800c393150002241500621400000000b2 :105b00006400c227e000c48f212840002c00062436 -:105b1000213800009452400f00000000340140146e -:105b2000000000000481828f31014010000000005d -:105b30000481828f6400c32715000424212860009b +:105b100021380000c257400f00000000340140143b +:105b2000000000009880828f3101401000000000ca +:105b30009880828f6400c327150004242128600008 :105b400009f8400000000000fc17400b00000000b6 :105b5000d800c39304000224150062140000000062 :105b60001400c227e000c48f21284000040006244e -:105b7000213800009452400f000000001c01401426 -:105b8000000000000481828f190140100000000015 -:105b90000481828f1400c32704000424212860009c +:105b700021380000c257400f000000001c014014f3 +:105b8000000000009880828f190140100000000082 +:105b90009880828f1400c327040004242128600009 :105ba00009f8400000000000fc17400b0000000056 :105bb000d800c393650002241500621400000000a1 :105bc0001400c227e000c48f2128400004000624ee -:105bd000213800009452400f0000000004014014de -:105be000000000000481828f0101401000000000cd -:105bf0000481828f1400c3276500042421286000db +:105bd00021380000c257400f0000000004014014ab +:105be000000000009880828f01014010000000003a +:105bf0009880828f1400c327650004242128600048 :105c000009f8400000000000fc17400b00000000f5 :105c1000d800c3930b00022415006214000000009a :105c20006400c227e000c48f2128400064000624dd -:105c3000010007249452400f00000000ec004014c3 -:105c4000000000000481828fe90040100000000085 -:105c50000481828f6400c3270b0004242128600084 +:105c300001000724c257400f00000000ec00401490 +:105c4000000000009880828fe900401000000000f2 +:105c50009880828f6400c3270b00042421286000f1 :105c600009f8400000000000fc17400b0000000095 :105c7000d800c3932a00022415006214000000001b :105c80004400c227e000c48f2128400004000624fd -:105c9000010007249452400f00000000d40040147b -:105ca000000000000481828fd1004010000000003d -:105cb0000481828f4400c3272a0004242128600025 +:105c900001000724c257400f00000000d400401448 +:105ca000000000009880828fd100401000000000aa +:105cb0009880828f4400c3272a0004242128600092 :105cc00009f8400000000000fc17400b0000000035 :105cd000d800c3936900022415006214000000007c :105ce0004800c227e000c48f212840000400062499 -:105cf000213800009452400f00000000bc00401406 -:105d0000000000000481828fb900401000000000f4 -:105d10000481828f4800c327690004242128600081 +:105cf00021380000c257400f00000000bc004014d3 +:105d0000000000009880828fb90040100000000061 +:105d10009880828f4800c3276900042421286000ee :105d200009f8400000000000fc17400b00000000d4 :105d3000d800c3932200022429006214000000004e :105d40001400c227e000c48f21284000020006246e -:105d5000213800009452400f00000000a4004014bd +:105d500021380000c257400f00000000a40040148a :105d6000000000001500c29300120200ffff433044 :105d70001400c293211062001200c2a71200c29741 :105d80004c00c2a7e000c28f020044244c00c2971e :105d90004c00c3270200632421286000213040000a -:105da000010007249452400f0000000090004014ae -:105db000000000000481828f8d0040100000000070 -:105dc0000481828f4c00c327220004242128600014 +:105da00001000724c257400f00000000900040147b +:105db000000000009880828f8d00401000000000dd +:105dc0009880828f4c00c327220004242128600081 :105dd00009f8400000000000fc17400b0000000024 :105de000d800c3933c00022420006214000000008d :105df0005000c227e000c48f21284000080006247c -:105e0000213800009452400f000000007800401438 +:105e000021380000c257400f000000007800401405 :105e100000000000e000c28f080044245000c38f3f :105e20005400c2972128600021304000010007245f -:105e30009452400f000000006d004014000000006c -:105e40000481828f6a004010000000000481828f6c +:105e3000c257400f000000006d0040140000000039 +:105e40009880828f6a004010000000009880828f46 :105e50005000c3273c0004242128600009f84000ba :105e600000000000fc17400b00000000d800c393a6 :105e70002400022415006214000000005800c2270c :105e8000e000c48f212840000400062421380000cf -:105e90009452400f00000000550040140000000024 -:105ea0000481828f52004010000000000481828f24 +:105e9000c257400f000000005500401400000000f1 +:105ea0009880828f52004010000000009880828ffe :105eb0005800c327240004242128600009f840006a :105ec00000000000fc17400b00000000d800c39346 :105ed0001f00022446006214000000005c00c2277c :105ee000e000c48f2128400004000624213800006f -:105ef0009452400f000000003d00401400000000dc +:105ef000c257400f000000003d00401400000000a9 :105f00005e00c2971000c2a75c00c2976200c2a7e1 -:105f10000881828f36004010000000000c81828fc3 -:105f200033004010000000001081829730004010c4 +:105f10009c80828f3600401000000000a080828f9d +:105f20003300401000000000a48082973000401031 :105f300000000000f617400b000000006200c3974d -:105f4000108182972b1043000500401000000000d4 -:105f5000108182976000c2a7da17400b0000000092 +:105f4000a48082972b104300050040100000000041 +:105f5000a48082976000c2a7da17400b00000000ff :105f60006200c2976000c2a71000c397e000c28f12 -:105f7000212062000c81838f6000c297212860007d -:105f800021304000213800009452400f00000000f2 +:105f700021206200a080838f6000c29721286000ea +:105f80002130400021380000c257400f00000000bf :105f900016004014000000006200c3976000c29722 :105fa00023106200ffff42306200c2a76000c39767 -:105fb0001000c297211062001000c2a70881828fd2 -:105fc0000c81858f6000c3271f00042421306000ee +:105fb0001000c297211062001000c2a79c80828f3f +:105fc000a080858f6000c3271f000424213060005b :105fd00009f84000000000006200c297d7ff40149b :105fe00000000000fc17400b000000000000000053 :105ff00021e8c003d400bf8fd000be8fd800bd27da :106000000800e00300000000e0ffbd271c00bfaf58 -:106010001800beaf21f0a0031000c0a36b83400f97 +:106010001800beaf21f0a0031000c0a3d583400f2d :10602000000000001000c2a31000c283050040144d :10603000000000004344400f000000001218400b15 :1060400000000000000000001000c28321e8c0032f @@ -387,7 +387,7 @@ :106080000500401400000000f4ff02241000c2a329 :106090009118400b000000002000c28f00004280d9 :1060a00008004010000000002000c28f21204000a6 -:1060b000a19c400f000000002100422c050040146c +:1060b0004a9d400f000000002100422c05004014c2 :1060c00000000000f4ff02241000c2a39118400b4e :1060d000000000002000c28f210042900f00422cdf :1060e00005004010000000002000c28f21004290f7 @@ -408,7 +408,7 @@ :1061d0001000c2a39118400b000000002000c28fe5 :1061e000240042240e004010000000002000c28f56 :1061f00024004224000042800900401000000000fa -:106200002000c28f2400422421204000a19c400f86 +:106200002000c28f24004224212040004a9d400fdc :10621000000000001b00422c0a0040140000000097 :10622000f4ff02241000c2a39118400b00000000ec :10623000f4ff02241000c2a39118400b00000000dc @@ -432,34 +432,34 @@ :106350002000c2a32400c0af3000c2932400c2a317 :106360002400c2271000a0af1400a0af1800a0aff7 :1063700001000424230005242130400004000724e8 -:106380000750400f000000002000c2a32000c2837d +:106380003555400f000000002000c2a32000c2834a :1063900021e8c0032c00bf8f2800be8f3000bd272e :1063a0000800e00300000000e0ffbd271c00bfafb5 :1063b0001800beaf21f0a003f4ff02241000c2a316 -:1063c0008c83400f000000001000c2a31000c283a5 +:1063c000f683400f000000001000c2a31000c2833b :1063d00021e8c0031c00bf8f1800be8f2000bd271e :1063e0000800e00300000000c0ffbd273c00bfaf75 :1063f0003800beaf21f0a0034000c4af1000c0a31e :10640000010002243000c2a34000c28f05004014e6 :1064100000000000f4ff02241000c2a35819400b32 -:10642000000000004000c28f0000428c048182af57 -:106430004000c28f0800428c088182af4000c28faa -:106440000c00428c0c8182af4000c28f100042943d -:10645000108182a74000c28f120042903000c2a378 +:10642000000000004000c28f0000428c988082afc4 +:106430004000c28f0800428c9c8082af4000c28f17 +:106440000c00428ca08082af4000c28f10004294aa +:10645000a48082a74000c28f120042903000c2a3e5 :106460004000c28f12004290030040100000000064 -:10647000030002243000c2a321200000304f400f4f +:10647000030002243000c2a3212000005e54400f1c :10648000000000001000c2a31000c28327004014c7 :106490000000000001000424009d023c0058452437 -:1064a000ff52400f000000003000c22721204000b2 -:1064b000ab83400f000000001000c2a31000c28395 +:1064a0002d58400f000000003000c227212040007e +:1064b0001584400f000000001000c2a31000c2832a :1064c00020004014000000001400c22721204000da :1064d000fc23400f000000001000c2a31400c227dc :1064e000212040003024400f000000001000c28333 -:1064f00017004014000000007c4f400f0000000017 +:1064f0001700401400000000aa54400f00000000e4 :106500001000c2a31000c283140040140000000059 :106510004000c28f1400429021204000cd18400f4f :10652000000000005819400b0000000000000000af -:10653000212000001684400f000000005819400b75 +:10653000212000008084400f000000005819400b0b :1065400000000000000000005819400b000000008f :10655000000000005819400b00000000000000007f :106560001000c28321e8c0033c00bf8f3800be8ffb @@ -471,7 +471,7 @@ :1065c00021e8c0031c00bf8f1800be8f2000bd272c :1065d0000800e00300000000e8ffbd271400bfaf83 :1065e0001000beaf21f0a0031800c4af21200000ae -:1065f000484f400f00000000212000001684400f8b +:1065f0007654400f00000000212000008084400fee :10660000000000002110000021e8c0031400bf8f2b :106610001000be8f1800bd270800e0030000000036 :10662000e8ffbd271400bfaf1000beaf21f0a003ec @@ -488,7 +488,7 @@ :1066d000000000001000c2a31000c28321e8c00324 :1066e0001c00bf8f1800be8f2000bd270800e003ec :1066f00000000000e8ffbd271400bfaf1000beafd0 -:1067000021f0a0034584400f000000000100032495 +:1067000021f0a003af84400f00000000010003242b :106710000c004310000000000100432c0600601430 :1067200000000000020003240900431000000000e4 :10673000d719400b0000000021100000d819400bb1 @@ -498,20 +498,20 @@ :106770000800e00300000000e8ffbd271400bfafe1 :106780001000beaf21f0a003bd19400f00000000b3 :1067900021184000020002240500621400000000dd -:1067a0008552400f00000000ed19400b0000000072 +:1067a000b357400f00000000ed19400b000000003f :1067b0002110000021e8c0031400bf8f1000be8f1d :1067c0001800bd270800e00300000000b0ffbd274f :1067d0004c00bfaf4800beaf21f0a0035000c4afd3 :1067e0002110a0005400c2a32000c2272120400095 -:1067f000212800002400062423a0400f00000000f0 +:1067f0002128000024000624cda0400f0000000046 :10680000ffff02242000c2a31000a0af1400a0af1d :106810001800a0af01000424690005242000c2274d -:1068200021304000240007240750400f00000000e2 +:1068200021304000240007243555400f00000000af :1068300021e8c0034c00bf8f4800be8f5000bd2729 :106840000800e00300000000d8ffbd272400bfaf10 :106850002000beaf21f0a0031000a0af1400a0af35 :106860001800a0af010004242900052421300000f5 -:10687000213800000750400f0000000021e8c0034d +:10687000213800003555400f0000000021e8c0031a :106880002400bf8f2000be8f2800bd270800e00332 :1068900000000000d8ffbd272400bfaf2000beaf1e :1068a00021f0a0032800c4af2c00c5af2110c00008 @@ -522,7 +522,7 @@ :1068f0002100422c71004010000000003800c28fbf :106900006a004010000000003800c28f1400c2afbf :106910003800c28f040042241800c2af3800c48f70 -:10692000212800003000062423a0400f00000000b2 +:106920002128000030000624cda0400f0000000008 :106930001400c28f1200c397000043a42800c28f26 :10694000010003240d004310000000000100432c4f :1069500010006014000000000200032456004314dd @@ -542,11 +542,11 @@ :106a30003400c28f080043901800c28f000043a0aa :106a40001800c28f010044243400c28f0400438c1c :106a50003400c28f0800429021286000213040009d -:106a6000479c400f000000003400c28f0000428ca1 +:106a6000f09c400f000000003400c28f0000428cf8 :106a70000d004010000000001800c28f0100032428 :106a8000210043a01800c28f220043243400c28f8b :106a90000000428c212060002128400006000624ce -:106aa000479c400f000000001000c0a31000c283ec +:106aa000f09c400f000000001000c0a31000c28343 :106ab000b01a400b0000000000000000f1ff0224ab :106ac00021e8c0032400bf8f2000be8f2800bd270f :106ad0000800e00300000000e0ffbd271c00bfaf7e @@ -554,10 +554,10 @@ :106af000f4ff02241000c2a32000c28f02004290c3 :106b0000020042302b004014000000002000c28f21 :106b10002500429001004230260040140000000091 -:106b20002400c48f212800006800062423a0400f01 +:106b20002400c48f2128000068000624cda0400f57 :106b3000000000002400c28f460044242000c28fc1 :106b4000050043242000c28f0400429021286000e9 -:106b500021304000479c400f000000002000c28f01 +:106b500021304000f09c400f000000002000c28f58 :106b6000040042902400c38f21106200460040a020 :106b70002000c28f03004290211840002400c28fe1 :106b8000440043a42000c28f020042900100423022 @@ -572,13 +572,13 @@ :106c10002000c2a32000c283240040140000000012 :106c20002400c2271000a0af1400a0af1800a0af2e :106c3000010004243d0005242130400030000724d9 -:106c40000750400f000000002000c2a32000c283b4 +:106c40003555400f000000002000c2a32000c28381 :106c500016004010000000002400c3275400c22783 :106c60002120600021284000b61a400f00000000db :106c70002000c2a32000c2830c00401400000000ca :106c80005400c2271000a0af1400a0af1800a0af9e :106c90000100042428000524213040006800072456 -:106ca0000750400f000000002000c2a32000c28354 +:106ca0003555400f000000002000c2a32000c28321 :106cb00021e8c003c400bf8fc000be8fc800bd273d :106cc0000800e0030000000028ffbd27d400bfaf8c :106cd000d000beaf21f0a003d800c4afdc00c5af28 @@ -596,10 +596,10 @@ :106d9000ff0042302800c2a3e000c28f04004290ee :106da00042100200ff0042302900c2a3e000c28f5f :106db0000000438c2900c2932800c42702008424c9 -:106dc00021286000213040000599400f000000009c +:106dc00021286000213040005494400f0000000052 :106dd0003800c2272800c3271000a3af10000324e7 :106de0001400a3af300003241800a3af0100042453 -:106df000bd00052421304000300007240750400f1b +:106df000bd00052421304000300007243555400fe8 :106e0000000000002000c2a32000c2832c0040101c :106e1000000000003800c3276800c227212060005e :106e200021284000b61a400f000000002000c2a335 @@ -608,10 +608,10 @@ :106e5000ff0043302400c28f000043a0e000c28f37 :106e6000040043902400c28f010043a02400c28f7d :106e700002004424e000c28f0000438ce000c28f77 -:106e8000040042902128600021304000479c400fc0 +:106e8000040042902128600021304000f09c400f17 :106e9000000000006800c2271000a0af1400a0afdf :106ea0001800a0af01000424280005242130400070 -:106eb000680007240750400f000000002000c2a314 +:106eb000680007243555400f000000002000c2a3e1 :106ec0002000c28321e8c003d400bf8fd000be8f52 :106ed000d800bd270800e00300000000c8febd2761 :106ee0003401bfaf3001beaf21f0a0033801c4af01 @@ -620,37 +620,37 @@ :106f10001000a2af3801c48f020005246c000624c3 :106f20003c01c78f251a400f000000002000c2a3bb :106f30002000c2838000401400000000c000c2276f -:106f400021204000212800006c00062423a0400fcf +:106f400021204000212800006c000624cda0400f25 :106f5000000000004001c28f0000428c250040105c :106f6000000000004001c28f0400428c0500401068 :106f700000000000f1ff02242000c2a31a1c400bf5 :106f80000000000040000224c000c2a34001c28fe4 :106f90000000438cc000c29342100200ff00423048 :106fa000c000c42701008424212860002130400053 -:106fb0000599400f00000000030040100000000091 +:106fb0005494400f00000000030040100000000047 :106fc000f1ff02242000c2a34001c28f0000438cc5 :106fd000c000c293c000c42701008424212860009f -:106fe00021304000479c400f000000001a1c400b5d +:106fe00021304000f09c400f000000001a1c400bb4 :106ff000000000004001c28f0400428c18004010c5 :10700000000000004001c28f080042904100422c65 :107010000500401400000000f1ff02242000c2a37c :107020001a1c400b000000004001c28f0800429073 :10703000c000c2a34001c28f0400438cc000c293b1 :10704000c000c427010084242128600021304000b2 -:10705000479c400f000000001a1c400b000000007d +:10705000f09c400f000000001a1c400b00000000d4 :10706000f1ff02242000c2a32000c2830f004014bd :10707000000000002800c227c000c3271000a3aff3 :107080006c0003241400a3af300003241800a3af46 :1070900001000424bd0005242130400030000724f5 -:1070a0000750400f000000002000c2a32000c28350 +:1070a0003555400f000000002000c2a32000c2831d :1070b00021004010000000002800c3275800c2270c :1070c0002120600021284000b61a400f0000000077 :1070d0002000c2a32000c28317004014000000005b :1070e0005800c2272400c2af4001c28f0400438c65 :1070f0004001c28f080042902400c48f2128600004 -:1071000021304000479c400f000000005800c2277b +:1071000021304000f09c400f000000005800c227d2 :107110001000a0af1400a0af1800a0af010004241d -:107120002800052421304000680007240750400f44 +:107120002800052421304000680007243555400f11 :10713000000000002000c2a32000c28321e8c00399 :107140003401bf8f3001be8f3801bd270800e00336 :1071500000000000e8ffbd271400bfaf1000beaf65 @@ -664,38 +664,38 @@ :1071d0002000c38f0400022404006210000000009d :1071e000f1ff0224061d400b000000001c00c28fae :1071f0000000428c0a00401000000000010003243f -:107200000c004314000000007480838ffdff0224f3 -:1072100024106200748082af901c400b00000000bc -:107220007480828f02004234748082af901c400bc5 +:107200000c004314000000001480838ffdff022453 +:1072100024106200148082af901c400b000000001c +:107220001480828f02004234148082af901c400b85 :1072300000000000f1ff0224061d400b00000000ca :10724000051d400b000000002000c38f0400022435 :107250000400621000000000f1ff0224061d400b34 :10726000000000001c00c28f0000428c01000324bb :1072700013004310000000000100432c06006014be :10728000000000000200032415004310000000006d -:10729000c11c400b000000007480838ffbff0224a0 -:1072a00024106200748082af7480838ff7ff022401 -:1072b00024106200748082afc41c400b00000000e8 -:1072c0007480828f04004234748082af7480828f15 -:1072d00008004234748082afc41c400b00000000e0 -:1072e0007480828f04004234748082af7480838ff4 -:1072f000f7ff022424106200748082afc41c400b8c +:10729000c11c400b000000001480838ffbff022400 +:1072a00024106200148082af1480838ff7ff0224c1 +:1072b00024106200148082afc41c400b0000000048 +:1072c0001480828f04004234148082af1480828f35 +:1072d00008004234148082afc41c400b0000000040 +:1072e0001480828f04004234148082af1480838f14 +:1072f000f7ff022424106200148082afc41c400bec :1073000000000000f1ff0224061d400b00000000f9 :10731000051d400b000000002000c38f0400022464 :107320000400621000000000f1ff0224061d400b63 :10733000000000001c00c28f0000428c09004010b9 :1073400000000000010003240c00431400000000b2 -:107350007480828f10004234748082afe21c400b34 -:10736000000000007480838fefff0224241062006d -:10737000748082afe21c400b00000000f1ff022489 +:107350001480828f10004234148082afe21c400bf4 +:10736000000000001480838fefff022424106200cd +:10737000148082afe21c400b00000000f1ff0224e9 :10738000061d400b00000000051d400b0000000022 :107390002000c28f0f0040100000000014000324e2 -:1073a00016004314000000007480828f40004234b5 -:1073b000748082af00a0023c9c4044241c00c58f16 -:1073c00014000624479c400f00000000051d400be0 -:1073d000000000007480838fbfff0224241062002d -:1073e000748082af00a0023c9c404424212800000d -:1073f0001400062423a0400f00000000f1ff022427 +:1073a00016004314000000001480828f4000423415 +:1073b000148082af00a0023ca04044241c00c58f72 +:1073c00014000624f09c400f00000000051d400b37 +:1073d000000000001480838fbfff0224241062008d +:1073e000148082af00a0023ca04044242128000069 +:1073f00014000624cda0400f00000000f1ff02247d :10740000061d400b00000000f1ff0224061d400b8a :10741000000000002110000021e8c0031400bf8f0d :107420001000be8f1800bd270800e0030000000018 @@ -709,26 +709,26 @@ :1074a0002000c28f0000428c0400422c04004010d7 :1074b00000000000f1ff02248c1d400b00000000c2 :1074c0002000c28f04000324000043ac1c00c28fc4 -:1074d0007480838f020063300100632c000043ac92 +:1074d0001480838f020063300100632c000043acf2 :1074e0008b1d400b000000002000c28f0000428c6a :1074f0000400422c0400401000000000f1ff0224b0 :107500008c1d400b000000002000c28f04000324eb -:10751000000043ac7480828f0400423005004014a8 +:10751000000043ac1480828f040042300500401408 :10752000000000001c00c28f000040ac8b1d400b0f -:10753000000000007480828f080042300600401076 +:10753000000000001480828f0800423006004010d6 :10754000000000001c00c28f01000324000043acb7 :107550008b1d400b000000001c00c28f02000324a2 :10756000000043ac8b1d400b000000002000c28fc8 :107570000000428c0400422c040040100000000077 :10758000f1ff02248c1d400b000000002000c28f80 -:1075900004000324000043ac1c00c28f7480838f5e +:1075900004000324000043ac1c00c28f1480838fbe :1075a000100063302b180300000043ac8b1d400b10 -:1075b000000000007480828f4000423014004010b0 +:1075b000000000001480828f400042301400401010 :1075c000000000002000c28f0000428c1400422cfa :1075d0000400401000000000f1ff02248c1d400b4d :1075e000000000002000c28f14000324000043ac00 -:1075f0001c00c48f00a0023c9c40452414000624bb -:10760000479c400f000000008b1d400b0000000055 +:1075f0001c00c48f00a0023ca040452414000624b7 +:10760000f09c400f000000008b1d400b00000000ac :107610002000c28f000040ac8b1d400b000000001a :10762000f1ff02248c1d400b00000000211000001f :1076300021e8c0031400bf8f1000be8f1800bd27c3 @@ -750,33 +750,33 @@ :107730009400c78f251a400f000000002000c2a34c :107740002000c28372004014000000002c00c227f9 :107750002c0042242400c2af2800c2972c00c3276b -:1077600021206000212800002130400023a0400f8c +:10776000212060002128000021304000cda0400fe2 :1077700000000000010002242c00c2a39800c28f68 :107780001400438c01000224060062140000000073 :107790002c00c39380ff022425106200ff004230ba :1077a0002c00c2a39800c28f1800438c0100022451 :1077b00005006214000000002c00c2934000423417 :1077c000ff0042302c00c2a32c0002242f00c2a3d1 -:1077d0007480828f5000c2af2c00c2270c0042245c -:1077e0002120400000a0023c9c40452414000624b7 -:1077f000479c400f000000002d00c0a39800c28fde +:1077d0001480828f5000c2af2c00c2270c004224bc +:1077e0002120400000a0023ca040452414000624b3 +:1077f000f09c400f000000002d00c0a39800c28f35 :107800000000428c11004010000000009800c28f60 :107810000c004294ff0042302d00c2a39800c28f9a :107820000000438c2d00c2932400c48f21286000e7 -:1078300021304000479c400f000000002d00c29303 +:1078300021304000f09c400f000000002d00c2935a :107840002400c38f211062002400c2af9800c28fb1 :107850000e004294ff0042302e00c2a39800c28f57 :107860000400438c2e00c2932400c48f21286000a2 -:1078700021304000479c400f000000002e00c293c2 +:1078700021304000f09c400f000000002e00c29319 :107880002400c38f211062002400c2af2400c28fe5 :10789000ffff43302c00c2272c004224ffff423060 :1078a00023106200ffff42303000c2a79800c28f51 :1078b000100042943200c2a79800c28f0800438c87 :1078c0003200c2972400c48f21286000213040007c -:1078d000479c400f000000005800c2272800c397b3 +:1078d000f09c400f000000005800c2272800c3970a :1078e0002c00c4271000a4af1400a3af3000032461 :1078f0001800a3af01000424bd000524213040007e -:10790000300007240750400f000000002000c2a3f1 +:10790000300007243555400f000000002000c2a3be :107910002000c28321e8c0038c00bf8f8800be8f87 :107920009000bd270800e0030000000068ffbd27ad :107930009400bfaf9000beaf21f0a0039800c4af89 @@ -803,32 +803,32 @@ :107a80001a0042942800c397231062002a00c2a75c :107a90002c00c0af3000c0af3400c2272c004224fd :107aa0002400c2af2a00c2973400c32721206000ff -:107ab000212800002130400023a0400f00000000da +:107ab0002128000021304000cda0400f0000000030 :107ac000020002243400c2a3a000c28f1c00438c19 :107ad0000100022406006214000000003400c39379 :107ae00080ff022425106200ff0042303400c2a350 :107af000a000c28f2000438c010002240500621404 :107b0000000000003400c29340004234ff004230c5 -:107b10003400c2a32c0002243700c2a37480828fd9 +:107b10003400c2a32c0002243700c2a31480828f39 :107b20005800c2af3400c2270c004224212040007c -:107b300000a0023c9c40452414000624479c400fb2 +:107b300000a0023ca040452414000624f09c400f05 :107b4000000000003500c0a3a000c28f0000428cde :107b50001100401000000000a000c28f14004294e9 :107b6000ff0042303500c2a3a000c28f0000438c4a :107b70003500c2932400c48f2128600021304000ca -:107b8000479c400f000000003500c2932400c38fc3 +:107b8000f09c400f000000003500c2932400c38f1a :107b9000211062002400c2afa000c28f16004294e0 :107ba000ff0042303600c2a3a000c28f0400438c05 :107bb0003600c2932400c48f212860002130400089 -:107bc000479c400f000000003600c2932400c38f82 +:107bc000f09c400f000000003600c2932400c38fd9 :107bd000211062002400c2af2400c28fffff433097 :107be0003400c2272c004224ffff423023106200e1 :107bf000ffff42303800c2a7a000c28f1800429495 :107c00003a00c2a7a000c28f0800438c3a00c29776 -:107c10002400c48f2128600021304000479c400f81 +:107c10002400c48f2128600021304000f09c400fd8 :107c2000000000003a00c2972400c38f21106200b8 :107c30002400c2afa000c28f0c00438c3a00c29750 -:107c40002400c48f2128600021304000479c400f51 +:107c40002400c48f2128600021304000f09c400fa8 :107c5000000000003a00c2972400c38f2110620088 :107c60002400c2af2400c28fffff43303400c2277c :107c70002c004224ffff423023106200ffff4230fd @@ -838,11 +838,11 @@ :107cb000a000c28f1a004294211840002c00c22755 :107cc0001000a4af1400a3af080003241800a3af52 :107cd00001000424be0005242130400008000724d0 -:107ce0000750400f000000002000c2a32000c28304 +:107ce0003555400f000000002000c2a32000c283d1 :107cf0000f004014000000006000c2272a00c39754 :107d00003400c4271000a4af1400a3af3000032434 :107d10001800a3af01000424bd0005242130400059 -:107d2000300007240750400f000000002000c2a3cd +:107d2000300007243555400f000000002000c2a39a :107d30002000c28321e8c0039400bf8f9000be8f53 :107d40009800bd270800e00300000000d8ffbd2711 :107d50002400bfaf2000beaf21f0a0032800c4afb5 @@ -871,7 +871,7 @@ :107ec00021284000f41a400f000000001000c2a357 :107ed000f91f400b000000006400c28f3d004010fd :107ee000000000003000c0af3400c0af3800c0a3b5 -:107ef0006400c28f21204000a19c400f00000000c0 +:107ef0006400c28f212040004a9d400f0000000016 :107f00001800c2a71800c39740000224050062149d :107f1000000000006400c28f3000c2afce1f400bd3 :107f2000000000006400c28f3400c2af1800c29786 @@ -890,14 +890,14 @@ :107ff0005000be8f5800bd270800e00300000000bd :10800000d8ffbd272400bfaf2000beaf21f0a003e2 :108010001000a0af1400a0af1800a0af010004240e -:108020002b00052421300000213800000750400fac +:108020002b00052421300000213800003555400f79 :108030000000000021e8c0032400bf8f2000be8f95 :108040002800bd270800e00300000000d0ffbd2786 :108050002c00bfaf2800beaf21f0a0033000c4af9a :108060002000c227212040003000c58f06000624d2 -:10807000479c400f000000001000a0af1400a0af0c +:10807000f09c400f000000001000a0af1400a0af63 :108080001800a0af01000424020005242000c2272c -:1080900021304000080007240750400f0000000076 +:1080900021304000080007243555400f0000000043 :1080a00021e8c0032c00bf8f2800be8f3000bd2701 :1080b0000800e00300000000d8ffbd272400bfaf88 :1080c0002000beaf21f0a0032800c4af2800c28f5b @@ -906,7 +906,7 @@ :1080f0000000438c2800c28f000043ac2800c28fd0 :108100000c00438c2800c28f0c0043ac2800c28fa7 :108110001000a0af1400a0af1800a0af020004240c -:108120000a00052421304000140007240750400fa6 +:108120000a00052421304000140007243555400f73 :108130000000000021e8c0032400bf8f2000be8f94 :108140002800bd270800e00300000000d0ffbd2785 :108150002c00bfaf2800beaf21f0a003211080008b @@ -914,25 +914,25 @@ :108170000b0002246020400b000000000c000224d1 :108180002000c2a32000c2931000a0af1400a0af33 :108190001800a0af02000424212840002130000074 -:1081a000213800000750400f0000000021e8c00304 +:1081a000213800003555400f0000000021e8c003d1 :1081b0002c00bf8f2800be8f3000bd270800e003d1 :1081c00000000000d8ffbd272400bfaf2000beafd5 :1081d00021f0a0032800c4af2800c28f1000a0af78 :1081e0001400a0af1800a0af01000424390005243a -:1081f00021304000040007240750400f0000000019 +:1081f00021304000040007243555400f00000000e6 :1082000021e8c0032400bf8f2000be8f2800bd27b7 :108210000800e00300000000d8ffbd272400bfaf26 :108220002000beaf21f0a0032800c4af2800c28ff9 :108230000000429001004224ffff42301000a0af36 :108240001400a0af1800a0af010004241100052401 -:108250002800c68f213840000750400f0000000062 +:108250002800c68f213840003555400f000000002f :1082600021e8c0032400bf8f2000be8f2800bd2757 :108270000800e00300000000d0ffbd272c00bfafc6 :108280002800beaf21f0a0033000c4aff4ff0224e9 :108290002000c2a33000c48f9818400f00000000d7 :1082a0000c004014000000003000c28f1000a0af8e :1082b0001400a0af1800a0af01000424160005248c -:1082c00021304000080007240750400f0000000044 +:1082c00021304000080007243555400f0000000011 :1082d0002000c2a32000c28321e8c0032c00bf8f6e :1082e0002800be8f3000bd270800e003000000001a :1082f000d0ffbd272c00bfaf2800beaf21f0a003e8 @@ -940,7 +940,7 @@ :108310002400c0af3000c2930200422c1000401075 :10832000000000003000c2932400c2a32400c22732 :108330001000a0af1400a0af1800a0af01000424eb -:108340006c00052421304000040007240750400f32 +:108340006c00052421304000040007243555400fff :10835000000000002000c2a3da20400b0000000053 :10836000f1ff02242000c2a32000c28321e8c00341 :108370002c00bf8f2800be8f3000bd270800e0030f @@ -948,7 +948,7 @@ :1083900021f0a003211080003000c2a7f4ff0224c6 :1083a0002000c2a33000c2972400c2a72400c22725 :1083b0001000a0af1400a0af1800a0af010004246b -:1083c0001700052421304000040007240750400f07 +:1083c0001700052421304000040007243555400fd4 :1083d000000000002000c2a32000c28321e8c003e7 :1083e0002c00bf8f2800be8f3000bd270800e0039f :1083f00000000000d0ffbd272c00bfaf2800beaf9b @@ -958,7 +958,7 @@ :10843000ff00022410006214000000003000c2930c :108440002400c2a32400c2271000a0af1400a0afd4 :108450001800a0af010004241200052421304000c0 -:10846000040007240750400f000000002000c2a3b2 +:10846000040007243555400f000000002000c2a37f :108470002021400b00000000f1ff02242000c2a3d5 :108480002000c28321e8c0032c00bf8f2800be8fcc :108490003000bd270800e00300000000d0ffbd272a @@ -968,7 +968,7 @@ :1084d000000000003000c393ff000224100062146b :1084e000000000003000c2932400c2a32400c22771 :1084f0001000a0af1400a0af1800a0af010004242a -:108500002500052421304000040007240750400fb7 +:108500002500052421304000040007243555400f84 :10851000000000002000c2a34a21400b0000000020 :10852000f1ff02242000c2a32000c28321e8c0037f :108530002c00bf8f2800be8f3000bd270800e0034d @@ -990,7 +990,7 @@ :10863000eaff4014000000003800c2932800c2a3e3 :108640002200c3972800c2273c00c48f1000a4afab :108650001400a3af040003241800a3af01000424f6 -:10866000eb00052421304000040007240750400f90 +:10866000eb00052421304000040007243555400f5d :10867000000000002000c2a3a121400b0000000068 :10868000000000002000c28321e8c0033400bf8f37 :108690003000be8f3800bd270800e0030000000056 @@ -998,14 +998,14 @@ :1086b000211080003c00c5af3800c2a33800c2932f :1086c0002000c2a33800c29307004014000000003d :1086d0002100c227212040003c00c58f080006244d -:1086e000479c400f000000001000a0af1400a0af96 +:1086e000f09c400f000000001000a0af1400a0afed :1086f0001800a0af010004242f0005242000c22789 -:10870000213040000c0007240750400f00000000fb +:10870000213040000c0007243555400f00000000c8 :1087100021e8c0033400bf8f3000be8f3800bd2772 :108720000800e00300000000d0ffbd272c00bfaf11 :108730002800beaf21f0a0032000c0a31000a0af0e :108740001400a0af1800a0af0100042431000524dc -:1087500021300000213800000750400f00000000c9 +:1087500021300000213800003555400f0000000096 :108760002000c2a32000c28321e8c0032c00bf8fd9 :108770002800be8f3000bd270800e0030000000085 :10878000d0ffbd272c00bfaf2800beaf21f0a00353 @@ -1015,22 +1015,22 @@ :1087c0000b00022410006214000000003000c2936d :1087d0002400c2a32400c2271000a0af1400a0af41 :1087e0001800a0af010004245b00052421304000e4 -:1087f000040007240750400f000000002000c2a31f +:1087f000040007243555400f000000002000c2a3ec :108800000422400b00000000f4ff02242000c2a359 :108810002000c28321e8c0032c00bf8f2800be8f38 :108820003000bd270800e00300000000d0ffbd2796 :108830002c00bfaf2800beaf21f0a0032000c0a3d2 :108840001000a0af1400a0af1800a0af01000424d6 -:108850005c00052421300000213800000750400f43 +:108850005c00052421300000213800003555400f10 :10886000000000002000c2a32000c28321e8c00352 :108870002c00bf8f2800be8f3000bd270800e0030a :108880000000000090ffbd276c00bfaf6800beafc6 :1088900021f0a0037000c4af1000c22721204000c7 -:1088a0007000c58f48000624479c400f0000000060 +:1088a0007000c58f48000624f09c400f00000000b7 :1088b0007000c28f410042245800c327212060006d -:1088c0002128400004000624479c400f00000000bf +:1088c0002128400004000624f09c400f0000000016 :1088d0007000c28f410042245c00c3272120600049 -:1088e0002128400004000624479c400f000000009f +:1088e0002128400004000624f09c400f00000000f6 :1088f0006000c0a31000c227212040004722400f83 :108900000000000021e8c0036c00bf8f6800be8f2c :108910007000bd270800e00300000000d0ffbd2765 @@ -1038,33 +1038,33 @@ :10893000f4ff02242000c2a33000c48f1918400f96 :10894000000000001b004014000000003000c28f37 :108950001000a0af1400a0af1800a0af01000424c5 -:108960004800052421304000540007240750400fe0 +:108960004800052421304000540007243555400fad :10897000000000002000c2a32000c383ffff0224e8 :108980000c006214000000003000c28f1000a0af85 :108990001400a0af1800a0af010004244600052475 -:1089a00021304000480007240750400f000000001d +:1089a00021304000480007243555400f00000000ea :1089b0002000c2a32000c28321e8c0032c00bf8f87 :1089c0002800be8f3000bd270800e0030000000033 :1089d000d0ffbd272c00bfaf2800beaf21f0a00301 :1089e0002000c0a31000a0af1400a0af1800a0afdb :1089f0000100042447000524213000002138000034 -:108a00000750400f000000002000c2a32000c283d6 +:108a00003555400f000000002000c2a32000c283a3 :108a100021e8c0032c00bf8f2800be8f3000bd2787 :108a20000800e00300000000d0ffbd272c00bfaf0e :108a30002800beaf21f0a0032000c0a31000a0af0b :108a40001400a0af1800a0af010004240300052407 -:108a500021300000213800000750400f00000000c6 +:108a500021300000213800003555400f0000000093 :108a60002000c2a32000c28321e8c0032c00bf8fd6 :108a70002800be8f3000bd270800e0030000000082 :108a8000d0ffbd272c00bfaf2800beaf21f0a00350 :108a90002000c0a31000a0af1400a0af1800a0af2a :108aa00001000424050005242130000021380000c5 -:108ab0000750400f000000002000c2a32000c28326 +:108ab0003555400f000000002000c2a32000c283f3 :108ac00021e8c0032c00bf8f2800be8f3000bd27d7 :108ad0000800e00300000000d0ffbd272c00bfaf5e :108ae0002800beaf21f0a0032000c0a31000a0af5b :108af0001400a0af1800a0af010004240600052454 -:108b000021300000213800000750400f0000000015 +:108b000021300000213800003555400f00000000e2 :108b10002000c2a32000c28321e8c0032c00bf8f25 :108b20002800be8f3000bd270800e00300000000d1 :108b3000d0ffbd272c00bfaf2800beaf21f0a0039f @@ -1074,49 +1074,49 @@ :108b70002400c2a70e0002242600c2a72400c22798 :108b80003400c3973000c48f1000a4af1400a3af0b :108b90001a0003241800a3af010004249e0005243a -:108ba00021304000040007240750400f000000005f +:108ba00021304000040007243555400f000000002c :108bb0002000c2a32000c28321e8c0032c00bf8f85 :108bc0002800be8f3000bd270800e0030000000031 :108bd000e0ffbd271c00bfaf1800beaf21f0a0030f -:108be0002000c4af2400c5af1000c0a3a54e400fa5 +:108be0002000c4af2400c5af1000c0a3d353400f72 :108bf000000000001000c2a31000c283080040144f :108c0000000000002000c48f2400c58fd848400f0a -:108c1000000000001000c2a3074f400f000000003a +:108c1000000000001000c2a33554400f0000000007 :108c20001000c28321e8c0031c00bf8f1800be8f54 :108c30002000bd270800e00300000000e0ffbd2782 :108c40001c00bfaf1800beaf21f0a0032000c4afce -:108c50001000c0a3a54e400f000000001000c2a3ea +:108c50001000c0a3d353400f000000001000c2a3b7 :108c60001000c28307004014000000002000c48fe1 -:108c70003049400f000000001000c2a3074f400f12 +:108c70003049400f000000001000c2a33554400fdf :108c8000000000001000c28321e8c0031c00bf8f59 :108c90001800be8f2000bd270800e0030000000080 :108ca000d0ffbd272c00bfaf2800beaf21f0a0032e :108cb000211080003000c2a32000c0a33000c29366 :108cc0002400c2a32400c2271000a0af1400a0af4c :108cd0001800a0af01000424140005242130400036 -:108ce000040007240750400f000000002000c2a32a +:108ce000040007243555400f000000002000c2a3f7 :108cf0002000c28321e8c0032c00bf8f2800be8f54 :108d00003000bd270800e00300000000f8ffbd2789 -:108d10000400beaf21f0a00300818293ff00423027 +:108d10000400beaf21f0a00394808293ff00423094 :108d200021e8c0030400be8f0800bd270800e0034f :108d300000000000e8ffbd271400bfaf1000beaf69 -:108d400021f0a003e44e400f0000000021e8c00322 +:108d400021f0a0031254400f0000000021e8c003ee :108d50001400bf8f1000be8f1800bd270800e0036d :108d600000000000d0ffbd272c00bfaf2800beaf21 :108d700021f0a003211880002110a0003000c3a31f :108d80003400c2a32000c0a33000c2932400c2a3b9 :108d90003400c2932500c2a32400c2271000a0af54 :108da0001400a0af1800a0af010004242d0005247a -:108db00021304000040007240750400f000000004d -:108dc0002000c2a33000c29321204000d74e400fa4 +:108db00021304000040007243555400f000000001a +:108dc0002000c2a33000c293212040000554400f70 :108dd000000000002000c28321e8c0032c00bf8fe8 :108de0002800be8f3000bd270800e003000000000f :108df000d0ffbd272c00bfaf2800beaf21f0a003dd -:108e00003000c4af2000c0a3e44e400f00000000bb +:108e00003000c4af2000c0a31254400f0000000087 :108e10002100c2a32100c393040002240e006214a7 :108e2000000000003000c28f2400c2af2400c2271f :108e30001000a0af1400a0af1800a0af01000424e0 -:108e40003a00052421304000040007240750400f59 +:108e40003a00052421304000040007243555400f26 :108e5000000000002000c2a32000c28321e8c0035c :108e60002c00bf8f2800be8f3000bd270800e00314 :108e700000000000a8ffbd275400bfaf5000beafe8 @@ -1124,52 +1124,52 @@ :108e90005c00c2933000422c03004014000000002c :108ea000300002245c00c2a35c00c2930100422493 :108eb0005c00c2a35c00c2932000c3272120600095 -:108ec0005800c58f21304000479c400f0000000033 +:108ec0005800c58f21304000f09c400f000000008a :108ed0001000a0af1400a0af1800a0af0100042440 :108ee000090005242000c22721304000300007245b -:108ef0000750400f0000000021e8c0035400bf8f5e +:108ef0003555400f0000000021e8c0035400bf8f2b :108f00005000be8f5800bd270800e003000000009d :108f1000a8ffbd275400bfaf5000beaf21f0a00393 :108f20005800c4af2110a0006000c6af5c00c2a30f :108f30005c00c2932100422c040040140000000099 :108f4000f4ff0224ea23400b000000005c00c293ff :108f50002000c327212060005800c58f2130400029 -:108f6000479c400f000000005c00c2932000c32714 +:108f6000f09c400f000000005c00c2932000c3276b :108f700021106200000040a06000c28f4400c2af18 :108f80002000c2271000a0af1400a0af1800a0afaf :108f90000100042426000524213040002c00072471 -:108fa0000750400f0000000021e8c0035400bf8fad +:108fa0003555400f0000000021e8c0035400bf8f7a :108fb0005000be8f5800bd270800e00300000000ed :108fc000e8ffbd271400bfaf1000beaf21f0a00323 :108fd000fa44400f0000000021e8c0031400bf8fd6 :108fe0001000be8f1800bd270800e003000000003d :108ff000e0ffbd271c00bfaf1800beaf21f0a003eb -:109000002000c4af1000c0a3a54e400f0000000018 +:109000002000c4af1000c0a3d353400f00000000e5 :109010001000c2a31000c28307004014000000002b -:109020002000c48fa382400f000000001000c2a3e4 -:10903000074f400f000000001000c28321e8c0036a +:109020002000c48f0d83400f000000001000c2a379 +:109030003554400f000000001000c28321e8c00337 :109040001c00bf8f1800be8f2000bd270800e00362 :1090500000000000e0ffbd271c00bfaf1800beaf3e :1090600021f0a0031000c0a31200c0a71200c22765 -:1090700021200000212840007b82400f00000000da +:109070002120000021284000e582400f0000000070 :109080001000c2a31000c2830600401400000000bc -:109090001200c297212040005e4f400f00000000e8 +:109090001200c297212040008c54400f00000000b5 :1090a0001000c2a31000c28321e8c0031c00bf8fc0 :1090b0001800be8f2000bd270800e003000000005c :1090c000e0ffbd271c00bfaf1800beaf21f0a0031a -:1090d0002000c4af1000c0a3a54e400f0000000048 +:1090d0002000c4af1000c0a3d353400f0000000015 :1090e0001000c2a31000c28307004014000000005b -:1090f0002000c48f0783400f000000001000c2a3af -:10910000074f400f000000001000c28321e8c00399 +:1090f0002000c48f7183400f000000001000c2a345 +:109100003554400f000000001000c28321e8c00366 :109110001c00bf8f1800be8f2000bd270800e00391 :109120000000000090ffbd276c00bfaf6800beaf1d :1091300021f0a0037000c4af7400c5af2110c000bf :109140007800c2a31000c227212040007000c58f04 -:1091500048000624479c400f000000007000c28faa +:1091500048000624f09c400f000000007000c28f01 :10916000410042245800c3272120600021284000ec -:1091700004000624479c400f000000007000c28fce +:1091700004000624f09c400f000000007000c28f25 :10918000410042245c00c3272120600021284000c8 -:1091900004000624479c400f000000006000c0a3ac +:1091900004000624f09c400f000000006000c0a303 :1091a0007800c2931000c327212060007400c58f8f :1091b000213040007524400f0000000021e8c0036a :1091c0006c00bf8f6800be8f7000bd270800e003f1 @@ -1179,39 +1179,39 @@ :109200004000401000000000c800c48f1918400f33 :10921000000000003b00401400000000c800c28fa6 :109220002400c32721206000212840004800062494 -:10923000479c400f00000000c800c28f4800422435 +:10923000f09c400f00000000c800c28f480042248c :109240002400c327890063242120600021284000d6 -:109250000c000624479c400f00000000cc00c28f89 +:109250000c000624f09c400f00000000cc00c28fe0 :10926000000042802700401000000000cc00c28fa8 :1092700024004010000000002400c22748004224bf -:1092800021204000cc00c58f40000624479c400fa1 +:1092800021204000cc00c58f40000624f09c400ff8 :1092900000000000d000c293ac00c2a32400c2278b :1092a0001000a0af1400a0af1800a0af010004246c -:1092b000a700052421304000980007240750400fe4 +:1092b000a700052421304000980007243555400fb1 :1092c000000000002000c2a32000c383ffff02248f :1092d0000c006214000000002400c2271000a0afa0 :1092e0001400a0af1800a0af010004248a000524d8 -:1092f00021304000980007240750400f0000000074 +:1092f00021304000980007243555400f0000000041 :109300002000c2a32000c28321e8c003c400bf8f95 :10931000c000be8fc800bd270800e00300000000a9 :10932000d8ffbd272400bfaf2000beaf21f0a003af :109330001000a0af1400a0af1800a0af01000424db -:109340000c00052421300000213800000750400f98 +:109340000c00052421300000213800003555400f65 :109350000000000021e8c0032400bf8f2000be8f62 :109360002800bd270800e00300000000d8ffbd274b :109370002400bfaf2000beaf21f0a0031000a0afbb :109380001400a0af1800a0af0100042407000524ba -:1093900021300000213800000750400f000000007d +:1093900021300000213800003555400f000000004a :1093a00021e8c0032400bf8f2000be8f2800bd2706 :1093b0000800e00300000000d8ffbd272400bfaf75 :1093c0002000beaf21f0a0032800c4af2800c227b0 :1093d0001000a0af1400a0af1800a0af010004243b -:1093e0000d00052421304000080007240750400fdd +:1093e0000d00052421304000080007243555400faa :1093f0000000000021e8c0032400bf8f2000be8fc2 :109400002800bd270800e00300000000d8ffbd27aa :109410002400bfaf2000beaf21f0a0031000a0af1a :109420001400a0af1800a0af010004241c00052404 -:1094300021300000213800000750400f00000000dc +:1094300021300000213800003555400f00000000a9 :1094400021e8c0032400bf8f2000be8f2800bd2765 :109450000800e00300000000d0ffbd272c00bfafd4 :109460002800beaf21f0a003211080003000c2a36d @@ -1219,33 +1219,33 @@ :109480002325400b000000000f0002242000c2a38f :109490002000c2931000a0af1400a0af1800a0af2e :1094a0000100042421284000213000002138000060 -:1094b0000750400f0000000021e8c0032c00bf8fc0 +:1094b0003555400f0000000021e8c0032c00bf8f8d :1094c0002800be8f3000bd270800e0030000000028 :1094d000d0ffbd272c00bfaf2800beaf21f0a003f6 :1094e000211080003000c2a32000c0a33000c2932e :1094f0002400c2a32400c2271000a0af1400a0af14 :109500001800a0af010004241800052421304000f9 -:10951000040007240750400f000000002000c2a3f1 +:10951000040007243555400f000000002000c2a3be :109520002000c28321e8c0032c00bf8f2800be8f1b :109530003000bd270800e00300000000d0ffbd2779 :109540002c00bfaf2800beaf21f0a0032110800087 :109550003000c2a32000c0a33000c2932400c2a3e5 :109560002400c2271000a0af1400a0af1800a0afc5 :1095700001000424190005242130400004000724c0 -:109580000750400f000000002000c2a32000c2834b +:109580003555400f000000002000c2a32000c28318 :1095900021e8c0032c00bf8f2800be8f3000bd27fc :1095a0000800e00300000000d0ffbd272c00bfaf83 :1095b0002800beaf21f0a003211080003000c2a31c :1095c0002000c0a33000c2932400c2a32400c227fd :1095d0001000a0af1400a0af1800a0af0100042439 -:1095e0001b00052421304000040007240750400fd1 +:1095e0001b00052421304000040007243555400f9e :1095f000000000002000c2a32000c28321e8c003b5 :109600002c00bf8f2800be8f3000bd270800e0036c :1096100000000000d0ffbd272c00bfaf2800beaf68 :1096200021f0a003211080003000c2a72000c0a3b9 :109630002400c0af3000c2972400c2a72400c22774 :109640001000a0af1400a0af1800a0af01000424c8 -:109650001a00052421304000040007240750400f61 +:109650001a00052421304000040007243555400f2e :10966000000000002000c2a32000c28321e8c00344 :109670002c00bf8f2800be8f3000bd270800e003fc :1096800000000000c8ffbd273400bfaf3000beaff0 @@ -1255,23 +1255,23 @@ :1096c0003800c28f10004010000000003c00c2971c :1096d0002800c2a73800c28f2400c2af2400c227ce :1096e0001000a0af1400a0af1800a0af0100042428 -:1096f000bb00052421304000080007240750400f1c +:1096f000bb00052421304000080007243555400fe9 :10970000000000002000c2a32000c28321e8c003a3 :109710003400bf8f3000be8f3800bd270800e00343 :1097200000000000c8ffbd273400bfaf3000beaf4f :1097300021f0a0033800c4af2110a0003c00c2a358 :10974000f4ff02242000c2a33800c28f140040108e :10975000000000003c00c2932a00c2a32400c227dc -:10976000212040003800c58f06000624479c400f8a +:10976000212040003800c58f06000624f09c400fe1 :10977000000000002400c2271000a0af1400a0af1a :109780001800a0af0100042420000524213040006f -:10979000080007240750400f000000002000c2a36b +:10979000080007243555400f000000002000c2a338 :1097a0002000c28321e8c0033400bf8f3000be8f89 :1097b0003800bd270800e00300000000f0ffbd27cf :1097c0000c00beaf21f0a0031000c4af2110a00018 :1097d0001400c2a70000c0a31000c28f07004010f1 -:1097e000000000001000c28f0c8182af1400c297ed -:1097f000108182a70126400b00000000f4ff022424 +:1097e000000000001000c28fa08082af1400c2975a +:1097f000a48082a70126400b00000000f4ff022491 :109800000000c2a30000c28321e8c0030c00be8f89 :109810001000bd270800e00300000000d0ffbd27b6 :109820002c00bfaf2800beaf21f0a00321108000a4 @@ -1280,51 +1280,51 @@ :109850000f006214000000003000c2932100c2a378 :109860001000a0af1400a0af1800a0af01000424a6 :109870006a0005242000c22721304000040007248c -:109880000750400f000000002526400b000000009c +:109880003555400f000000002526400b0000000069 :10989000f1ff022421e8c0032c00bf8f2800be8ff7 :1098a0003000bd270800e00300000000d0ffbd2706 :1098b0002c00bfaf2800beaf21f0a0032000c0a342 :1098c0001000a0af1400a0af1800a0af0100042446 :1098d0006a0005242000c22721304000040007242c -:1098e0000750400f0000000021e8c0032c00bf8f8c +:1098e0003555400f0000000021e8c0032c00bf8f59 :1098f0002800be8f3000bd270800e00300000000f4 :10990000d0ffbd272c00bfaf2800beaf21f0a003c1 :109910003000c4af3400c5af3400c28fffff423007 :109920002000c2a72000c2273400c38fffff63308e :109930003000c48f1000a4af1400a3af02000324b2 :109940001800a3af01000424a10005242130400029 -:10995000020007240750400f0000000021e8c00368 +:10995000020007243555400f0000000021e8c00335 :109960002c00bf8f2800be8f3000bd270800e00309 :1099700000000000d0ffbd272c00bfaf2800beaf05 :1099800021f0a0033400c5af2118c0003c00c7afd0 :109990004000c28f3000c4a33800c3a32000c2a778 :1099a0003c00c28f1400c2af3400c28f2000c397a6 :1099b000060043a42000c2976a0040100000000087 -:1099c0003000c38300a0023c00190300e42f4224ae +:1099c0003000c38300a0023c001903003c02422483 :1099d000211062000000428c620040100000000074 -:1099e0003000c38300a0023c00190300e42f42248e +:1099e0003000c38300a0023c001903003c02422463 :1099f0002110620004004294ffff423059004010e1 :109a0000000000003000c38300a0023c00190300e6 -:109a1000e42f4224211062000a004290ff004330ec +:109a10003c024224211062000a004290ff004330c1 :109a2000010002244f006214000000002000c297d1 :109a30001000c2a73000c38300a0023c001903003d -:109a4000e42f42242110620004004294ffff4230c0 +:109a40003c0242242110620004004294ffff423095 :109a50001000c39723106200ffff42301800c2a716 :109a60001800c28708004018000000003000c383bf -:109a700000a0023c00190300e42f422421106200e0 +:109a700000a0023c001903003c02422421106200b5 :109a8000040042941000c2a73000c38300a0023c2f -:109a900000190300e42f4224211062000000438ccf +:109a9000001903003c024224211062000000438ca4 :109aa0001000c2971400c48f2128600021304000ac -:109ab000010007249452400f0000000029004014c8 +:109ab00001000724c257400f000000002900401495 :109ac000000000003000c38300a0023c0019030026 -:109ad000e42f4224211062000000438c3400c28f26 +:109ad0003c024224211062000000438c3400c28ffb :109ae000000043ac1000c3873400c28f040043a4bd :109af0003400c28f060043941000c2972310620006 :109b0000ffff43303400c28f060043a43000c383fc -:109b100000a0023c00190300e42f4224211062003f +:109b100000a0023c001903003c0242242110620014 :109b2000040040a43000c38300a0023c00190300dd -:109b3000e42f422421106200000040acf081828fab -:109b40000800401000000000f081828f3000c483c4 +:109b30003c02422421106200000040ac4c81828f24 +:109b400008004010000000004c81828f3000c48368 :109b50003800c393212860003400c68f09f8400004 :109b60000000000021e8c0032c00bf8f2800be8f3a :109b70003000bd270800e00300000000e0febd2724 @@ -1332,36 +1332,36 @@ :109b90002110a0002801c6af2001c3a32401c2a741 :109ba0002001c39341000224190062140000000048 :109bb0002c00c2272801c48f21284000040006245d -:109bc000213800009452400f0000000002024014af -:109bd000000000002d00c2833000c2a3f081828ffc -:109be000fd01401000000000f081828f2c00c38333 +:109bc00021380000c257400f00000000020240147c +:109bd000000000002d00c2833000c2a34c81828fa0 +:109be000fd014010000000004c81828f2c00c383d7 :109bf000212060003000c3270100052421306000cf :109c000009f8400000000000f628400b00000000aa :109c10002001c393420002241900621400000000d6 :109c20003400c2272801c48f2128400004000624e4 -:109c3000213800009452400f00000000e60140145b -:109c4000000000003500c2833800c2a3f081828f7b -:109c5000e101401000000000f081828f3400c383d6 +:109c300021380000c257400f00000000e601401428 +:109c4000000000003500c2833800c2a34c81828f1f +:109c5000e1014010000000004c81828f3400c3837a :109c6000212060003800c327020005242130600055 :109c700009f8400000000000f628400b000000003a :109c80002001c393430002244c0062140000000032 :109c90003c00c2272801c48f212840000c00062464 -:109ca000213800009452400f00000000ca01401407 +:109ca00021380000c257400f00000000ca014014d4 :109cb000000000004500c2832b00400400000000ab :109cc0004500c2830c00422827004010000000001d :109cd0004500c2832118400000a0023c0019030087 -:109ce000e42f4224211062000b0040a04500c283f3 -:109cf0002118400000a0023c00190300e42f422478 -:109d000021106200010003240a0043a020818297f1 -:109d1000ffff423001004224ffff4230208182a732 -:109d200020818297ffff42300600401400000000af -:109d300020818297ffff423001004224ffff423022 -:109d4000208182a74500c283212040002081829784 -:109d5000ffff433000a0023c00210400e42f422416 +:109ce0003c024224211062000b0040a04500c283c8 +:109cf0002118400000a0023c001903003c0242244d +:109d000021106200010003240a0043a0b48082975e +:109d1000ffff423001004224ffff4230b48082a79f +:109d2000b4808297ffff423006004014000000001c +:109d3000b4808297ffff423001004224ffff42308f +:109d4000b48082a74500c28321204000b48082975e +:109d5000ffff433000a0023c002104003c024224eb :109d600021108200060043a44500c2834800c2a31c :109d7000020002244c00c2a73e00c2974e00c2a7b8 -:109d80004000c28f5000c2aff081828f920140101c -:109d900000000000f081828f4400c3832120600016 +:109d80004000c28f5000c2af4c81828f92014010c0 +:109d9000000000004c81828f4400c38321206000ba :109da0004800c327040005242130600009f8400062 :109db00000000000f628400b000000002001c393c3 :109dc0004400022409006210000000002001c39337 @@ -1370,32 +1370,32 @@ :109df0006000c0af080002241800c2a72001c3936e :109e0000530002240300621000000000040002243a :109e10001800c2a75c00c3271800c2972801c48f8e -:109e20002128600021304000213800009452400f6a +:109e2000212860002130400021380000c257400f37 :109e30000000000040014014000000005c00c283ec :109e400040014004000000005c00c2830c00422876 :109e50003f01401000000000050002241a00c2a3c8 :109e60005c00c2836400c2a35d00c2836500c2a31c :109e70006400c2832118400000a0023c00190300c6 -:109e8000e42f42242110620008004294ffff423078 +:109e80003c0242242110620008004294ffff42304d :109e900003004010000000000a0002241a00c2a3c0 :109ea0005d00c28315004014000000006400c283fe :109eb000212040005e00c297f8ff4224ffff43309c -:109ec00000a0023c00210400e42f42242110820063 +:109ec00000a0023c002104003c0242242110820038 :109ed000080043a46400c283212040006000c393b3 -:109ee00000a0023c00210400e42f42242110820043 +:109ee00000a0023c002104003c0242242110820018 :109ef0000d0043a0cf27400b000000006400c28388 :109f0000212040005e00c39300a0023c0021040019 -:109f1000e42f4224211082000e0043a06400c2837b +:109f10003c024224211082000e0043a06400c28350 :109f2000212040005f00c39300a0023c00210400f8 -:109f3000e42f4224211082000f0043a0f081828f81 -:109f40000601401000000000f081828f6400c3838e +:109f30003c024224211082000f0043a04c81828ffa +:109f400006014010000000004c81828f6400c38332 :109f5000212060001a00c5936400c32721306000ef :109f600009f8400000000000f628400b0000000047 :109f70002001c3934a00022417006214000000006d :109f8000b000c2272801c48f2128400068000624a1 -:109f9000213800009452400f000000000e014014d0 -:109fa000000000001401c28f1401c2afec81828f47 -:109fb0000901401000000000ec81828fb000c4272e +:109f900021380000c257400f000000000e0140149d +:109fa000000000001401c28f1401c2af4881828feb +:109fb00009014010000000004881828fb000c427d2 :109fc0001401c38f2128600009f840000000000040 :109fd000f628400b000000002001c3934600022435 :109fe00009006210000000002001c3934800022411 @@ -1404,15 +1404,15 @@ :10a010002001c393480002240300621400000000e2 :10a02000090002241b00c2a3100002242200c2a7c0 :10a030006800c3272200c2972801c48f212860002e -:10a0400021304000213800009452400f00000000f1 +:10a040002130400021380000c257400f00000000be :10a05000c5004014000000007400c283c500400425 :10a06000000000007400c2830c004228c4004010ad :10a07000000000002400c0a77400c2932600c2a301 :10a080007600c2972400c2a72600c38300a0023c2a -:10a0900000190300e42f4224211062000c0040a0ac +:10a09000001903003c024224211062000c0040a081 :10a0a0007000c2972800c2a77200c2972a00c2a7f8 :10a0b0006a00c2978200c2a76c00c28f8400c2af40 -:10a0c0002600c38300a0023c00190300e42f4224b1 +:10a0c0002600c38300a0023c001903003c02422486 :10a0d0002110620006004294ffff42302400c39723 :10a0e0002a006214000000002800c28718004018ef :10a0f000000000002800c3872401c2972a106200d4 @@ -1421,35 +1421,35 @@ :10a120002600c4831b00c2932200c5977800c32772 :10a130001000a5af21286000213040002801c78f02 :10a140005d26400f00000000f628400b00000000d4 -:10a150002800c2977c00c2a77800c0aff081828f30 -:10a160008a00401000000000f081828f2600c48326 +:10a150002800c2977c00c2a77800c0af4c81828fd4 +:10a160008a004010000000004c81828f2600c483ca :10a170001b00c5937800c3272130600009f8400018 :10a1800000000000f628400b000000002200c397ea :10a190002401c2972b1062007f00401000000000d5 :10a1a00021200000212800002130000001000724a8 -:10a1b0009452400f00000000f628400b0000000001 +:10a1b000c257400f00000000f628400b00000000ce :10a1c0002001c39345000224090062100000000032 :10a1d0002001c39347000224050062100000000024 :10a1e0002001c3934c0002243600621400000000da :10a1f000070002241c00c2a32001c39347000224cd :10a200000300621400000000080002241c00c2a326 :10a210009400c2272801c48f21284000080006248a -:10a22000213800009452400f000000005d004014ef +:10a2200021380000c257400f000000005d004014bc :10a23000000000009400c2835d00400400000000a4 :10a240009400c2830c0042285c0040100000000013 :10a250001e00c0a79400c2932000c2a39800c2971a :10a260001e00c2a79600c2879000c2a72000c38329 -:10a2700000a0023c00190300e42f422421106200d8 +:10a2700000a0023c001903003c02422421106200ad :10a2800006004294ffff42301e00c3974e00621446 -:10a2900000000000f081828f4e004010000000009e -:10a2a000f081828f2000c4831c00c5939000c327d7 +:10a29000000000004c81828f4e0040100000000042 +:10a2a0004c81828f2000c4831c00c5939000c3277b :10a2b0002130600009f8400000000000f628400b43 :10a2c000000000002001c3935200022442006214e7 :10a2d000000000009c00c2272801c48f21284000f4 -:10a2e00014000624010007249452400f00000000cf -:10a2f0003900401400000000a000c38f2881828f25 -:10a3000035006214000000002481828f320040106a -:10a31000000000002481828f9c00c48fa400c58fa0 +:10a2e0001400062401000724c257400f000000009c +:10a2f0003900401400000000a000c38fbc80828f92 +:10a300003500621400000000b880828f32004010d7 +:10a3100000000000b880828f9c00c48fa400c58f0d :10a32000ac00c3932130600009f840000000000039 :10a33000f628400b0000000000000000f628400b4b :10a340000000000000000000f628400b00000000a4 @@ -1464,44 +1464,44 @@ :10a3d000000000000000000021e8c0031c01bf8f46 :10a3e0001801be8f2001bd270800e0030000000017 :10a3f000e8ffbd271400bfaf1000beaf21f0a003df -:10a4000022818293ff0042300f00401400000000c0 -:10a4100000a0023ce42f442421280000c0000624b0 -:10a4200023a0400f0000000002000424019d023c14 -:10a430007c9b4524ff52400f0000000001000224d5 -:10a44000228182a3208180a721e8c0031400bf8f4e +:10a40000b6808293ff0042300f004014000000002d +:10a4100000a0023c3c02442421280000c000062485 +:10a42000cda0400f0000000002000424019d023c6a +:10a430007c9b45242d58400f0000000001000224a1 +:10a44000b68082a3b48080a721e8c0031400bf8f28 :10a450001000be8f1800bd270800e00300000000b8 :10a46000e8ffbd271400bfaf1000beaf21f0a0036e -:10a4700000a0023ce42f442421280000c000062450 -:10a4800023a0400f00000000020004242128000047 -:10a49000ff52400f00000000f08180afec8180afe0 -:10a4a000228180a321e8c0031400bf8f1000be8f5b +:10a4700000a0023c3c02442421280000c000062425 +:10a48000cda0400f0000000002000424212800009d +:10a490002d58400f000000004c8180af488180aff4 +:10a4a000b68080a321e8c0031400bf8f1000be8fc8 :10a4b0001800bd270800e00300000000f8ffbd27da :10a4c0000400beaf21f0a0030800c4af0c00c5af6c -:10a4d0000800c28ff08182af0c00c28fec8182af86 +:10a4d0000800c28f4c8182af0c00c28f488182afce :10a4e00021e8c0030400be8f0800bd270800e00378 :10a4f00000000000f8ffbd270400beaf21f0a0035c -:10a500000800c4af0800c28ff08182af21e8c00309 +:10a500000800c4af0800c28f4c8182af21e8c003ad :10a510000400be8f0800bd270800e0030000000013 :10a52000f8ffbd270400beaf21f0a0030800c4afb0 -:10a530000800c28fec8182af21e8c0030400be8f07 +:10a530000800c28f488182af21e8c0030400be8fab :10a540000800bd270800e00300000000c0ffbd2791 :10a550003c00bfaf3800beaf21f0a0032118a0001f :10a560002110c0004000c4a74400c3a34800c2a3f8 :10a57000ffff02242000c2a32400c0af4000c39705 :10a5800002000224ba006214000000004400c393d9 :10a59000010002244b006214000000002100c0a34f -:10a5a000ab29400b000000002c8182932800c2a33d -:10a5b0002c818293ff0042300019020000a0023c6f -:10a5c000e42f4224211062002400c2af2c81829328 +:10a5a000ab29400b00000000c08082932800c2a3aa +:10a5b000c0808293ff0042300019020000a0023cdc +:10a5c0003c024224211062002400c2afc08082936a :10a5d000ff00423001004324070002241a006200f9 -:10a5e000f401400010100000ff0042302c8182a3d3 +:10a5e000f401400010100000ff004230c08082a340 :10a5f0002400c28f0a004290ff004230280040141d :10a60000000000002800c2932000c2a32400c48fd1 -:10a61000212800001000062423a0400f00000000a5 +:10a610002128000010000624cda0400f00000000fb :10a620004800c29376004010000000002000c29352 :10a630003000c2a33000c2271000a0af1400a0afaa :10a640001800a0af0200042450000524213040006f -:10a65000040007240750400f000000002400c28fb0 +:10a65000040007243555400f000000002400c28f7d :10a66000010003240b0043a04800c393020002240e :10a6700066006214000000002400c28f0b004290ac :10a68000ff00433080ff022425106200ff004330aa @@ -1509,32 +1509,32 @@ :10a6a0002100c293010042242100c2a32100c293d1 :10a6b0000700422cbcff401400000000042a400b9d :10a6c000000000004400c39302000224330062141f -:10a6d0000000000000a0023c543042242c00c2af15 -:10a6e0002100c0a3e129400b000000002d818293ce -:10a6f0002800c2a32d818293ff0042300011020086 -:10a700002c00c38f211062002400c2af2d818293e0 +:10a6d0000000000000a0023cac0242242c00c2afeb +:10a6e0002100c0a3e129400b00000000c18082933b +:10a6f0002800c2a3c1808293ff00423000110200f3 +:10a700002c00c38f211062002400c2afc18082934d :10a71000ff00423001004324c317030082170200e8 :10a72000211862000300633023106200ff004230f2 -:10a730002d8182a32400c28f0a004290ff00423084 +:10a73000c18082a32400c28f0a004290ff004230f1 :10a740000d004014000000002800c29307004224be :10a75000ff0042302000c2a32400c48f2128000043 -:10a760001000062423a0400f00000000000000009d +:10a7600010000624cda0400f0000000000000000f3 :10a77000042a400b000000002100c2930100422483 :10a780002100c2a32100c2930400422cd7ff401431 :10a7900000000000042a400b000000004400c393a6 :10a7a000030002241a006214000000004800c39352 :10a7b00002000224160062140000000000a0023c07 -:10a7c000943042242400c2af2400c28f0a00429079 +:10a7c000ec0242242400c2af2400c28f0a0042904f :10a7d000ff0042300e004014000000000b00022475 :10a7e0002000c2a32400c48f2128000010000624ea -:10a7f00023a0400f00000000042a400b00000000ce +:10a7f000cda0400f00000000042a400b0000000024 :10a8000000000000042a400b0000000000000000cf :10a810002000c28316004004000000002400c28f04 -:10a82000010003240a0043a020818297ffff4230e9 -:10a8300001004224ffff4230208182a720818297bd -:10a84000ffff423006004014000000002081829784 -:10a85000ffff423001004224ffff4230208182a7e7 -:10a8600020818297ffff43302400c28f060043a45b +:10a82000010003240a0043a0b4808297ffff423056 +:10a8300001004224ffff4230b48082a7b480829797 +:10a84000ffff42300600401400000000b4808297f1 +:10a85000ffff423001004224ffff4230b48082a754 +:10a86000b4808297ffff43302400c28f060043a4c8 :10a870002000c28321e8c0033c00bf8f3800be8f98 :10a880004000bd270800e00300000000c8ffbd270e :10a890003400bfaf3000beaf21f0a003211880000c @@ -1542,17 +1542,17 @@ :10a8b000faff02242000c2a33c00c28f3b004010dc :10a8c000000000003800c28338004004000000008f :10a8d0003800c2830c004228340040100000000001 -:10a8e0003800c38300a0023c00190300e42f422477 +:10a8e0003800c38300a0023c001903003c0242244c :10a8f000211062000a004290ff0043300100022450 :10a900002a006214000000004000c293270040109b :10a91000000000003800c2932c00c2a32400c2270c -:10a92000212040003c00c58f08000624479c400fb2 +:10a92000212040003c00c58f08000624f09c400f09 :10a93000000000002400c2972400c2a72600c2978e :10a940002600c2a72800c28f2800c2af3800c383e8 -:10a9500000a0023c00190300e42f422421106200f1 +:10a9500000a0023c001903003c02422421106200c6 :10a9600006004294ffff42302e00c2a72400c227f7 :10a970001000a0af1400a0af1800a0af0200042484 -:10a9800041000524213040000c0007240750400fef +:10a9800041000524213040000c0007243555400fbc :10a99000000000002000c2a32000c283030040107a :10a9a00000000000f7ff02242000c2a32000c283a1 :10a9b00021e8c0033400bf8f3000be8f3800bd27b0 @@ -1561,14 +1561,14 @@ :10a9e0003000c3a33400c2a3faff02242000c2a394 :10a9f0003000c2832b004004000000003000c283fe :10aa00000c00422827004010000000003000c383e3 -:10aa100000a0023c00190300e42f42242110620030 +:10aa100000a0023c001903003c0242242110620005 :10aa20000a004290ff004330010002241d0062141e :10aa3000000000003000c2932400c2a33400c2937f :10aa40002500c2a33000c38300a0023c001903000c -:10aa5000e42f42242110620006004294ffff42309e +:10aa50003c0242242110620006004294ffff423073 :10aa60002600c2a72400c2271000a0af1400a0af88 :10aa70001800a0af02000424420005242130400049 -:10aa8000040007240750400f000000002000c2a36c +:10aa8000040007243555400f000000002000c2a339 :10aa90002000c2830300401000000000f7ff0224e2 :10aaa0002000c2a32000c28321e8c0032c00bf8f76 :10aab0002800be8f3000bd270800e0030000000022 @@ -1576,7 +1576,7 @@ :10aad0001400c5af1800c6af1000c2a3faff0224cd :10aae0000000c2a31000c283100040040000000058 :10aaf0001000c2830c0042280c004010000000002f -:10ab00001000c38300a0023c00190300e42f42247c +:10ab00001000c38300a0023c001903003c02422451 :10ab1000211062000a004290ff004330010002242d :10ab200002006214000000000000c0a30000c28305 :10ab300021e8c0030c00be8f1000bd270800e00311 @@ -1586,21 +1586,21 @@ :10ab70003800c2834d004004000000003800c2834a :10ab80000c00422849004010000000003c00c28f29 :10ab900046004010000000003800c38300a0023cc3 -:10aba00000190300e42f4224211062000a004290a1 +:10aba000001903003c024224211062000a00429076 :10abb000ff004330010002243c006214000000004a :10abc0004000c293390040100000000044000224fd :10abd0002100c2a33800c38300a0023c0019030077 -:10abe000e42f4224211062000b004290ff0042300b +:10abe0003c024224211062000b004290ff004230e0 :10abf00001004230ff0042300b0040100000000016 :10ac00004b0002242100c2a33800c38300a0023cf1 -:10ac100000190300e42f4224211062000b0042902f +:10ac1000001903003c024224211062000b00429004 :10ac2000ff0042302d00c2a33800c2932c00c2a303 :10ac30002400c227212040003c00c58f08000624c4 -:10ac4000479c400f000000003800c38300a0023c76 -:10ac500000190300e42f42242110620006004294f0 +:10ac4000f09c400f000000003800c38300a0023ccd +:10ac5000001903003c0242242110620006004294c5 :10ac6000ffff42302e00c2a72100c3932400c22759 :10ac70001000a0af1400a0af1800a0af0200042481 -:10ac800021286000213040000c0007240750400fad +:10ac800021286000213040000c0007243555400f7a :10ac9000000000002000c2a32000c2830300401077 :10aca00000000000f7ff02242000c2a32000c2839e :10acb00021e8c0033400bf8f3000be8f3800bd27ad @@ -1609,27 +1609,27 @@ :10ace000faff02242000c2a33800c283610040049e :10acf000000000003800c2830c0042285d004010b4 :10ad0000000000003800c38300a0023c00190300cb -:10ad1000e42f4224211062000a004290ff004330d9 +:10ad10003c024224211062000a004290ff004330ae :10ad20000100022453006214000000003800c383b5 -:10ad300000a0023c00190300e42f4224211062000d +:10ad300000a0023c001903003c02422421106200e2 :10ad40000b004290ff00423001004230ff004230d1 :10ad500048004010000000003800c38300a0023cff -:10ad600000190300e42f4224211062000b004290de +:10ad6000001903003c024224211062000b004290b3 :10ad7000ff0042302014027c3e004104000000002d -:10ad80003800c38300a0023c00190300e42f4224d2 +:10ad80003800c38300a0023c001903003c024224a7 :10ad90002110620008004294ffff4230350040104d :10ada000000000002400c0af2800c0af2c00c0afde :10adb0003800c4833800c38300a0023c001903009c -:10adc000e42f4224211062000b004290ff00423029 +:10adc0003c024224211062000b004290ff004230fe :10add0007f004230ff00433000a0023c002104000d -:10ade000e42f4224211082000b0043a03800c383cb -:10adf00000a0023c00190300e42f4224211062004d +:10ade0003c024224211082000b0043a03800c383a0 +:10adf00000a0023c001903003c0242242110620022 :10ae00000b004290ff0042302d00c2a33800c293d5 :10ae10002c00c2a33800c38300a0023c0019030029 -:10ae2000e42f42242110620006004294ffff4230ca +:10ae20003c0242242110620006004294ffff42309f :10ae30002e00c2a72400c2271000a0af1400a0afac :10ae40001800a0af02000424550005242130400062 -:10ae50000c0007240750400f000000002000c2a390 +:10ae50000c0007243555400f000000002000c2a35d :10ae60002000c2830300401000000000f7ff02240e :10ae70002000c2a32000c28321e8c0033400bf8f9a :10ae80003000be8f3800bd270800e003000000003e @@ -1640,26 +1640,26 @@ :10aed0000c0042285e004010000000004400c28fb9 :10aee0005b004010000000004800c2977905422c2a :10aef00057004010000000004000c38300a0023c47 -:10af000000190300e42f4224211062000a0042903d +:10af0000001903003c024224211062000a00429012 :10af1000ff004330010002244d00621400000000d5 :10af2000450002242400c2a3500002242200c2a72c :10af30004000c2932800c2a34800c2972a00c2a7bb -:10af40004000c38300a0023c00190300e42f422408 +:10af40004000c38300a0023c001903003c024224dd :10af50002110620006004294ffff42303400c2a775 :10af60004000c28307004228030040140000000094 :10af7000440002242200c2a74000c38300a0023c78 -:10af800000190300e42f4224211062000b004290bc +:10af8000001903003c024224211062000b00429091 :10af9000ff00423001004230ff00423014004010f8 :10afa000000000004000c38300a0023c0019030021 -:10afb000e42f4224211062000b004290ff00423037 +:10afb0003c024224211062000b004290ff0042300c :10afc0002014027c0a004004000000004c0002240f :10afd0002400c2a34000c38300a0023c0019030068 -:10afe000e42f422421106200080042942200c2a7ec +:10afe0003c02422421106200080042942200c2a7c1 :10aff0002400c39380ff022425106200ff0042302a :10b00000211840002800c2274400c68f4800c59779 :10b010002200c4971000a6af1400a5af1800a4af7b :10b020000200042421286000213040001000072481 -:10b030000750400f000000002000c2a72000c28778 +:10b030003555400f000000002000c2a72000c28745 :10b040000300401000000000f2ff02242000c2a70d :10b050002000c28721e8c0033c00bf8f3800be8fac :10b060004000bd270800e00300000000b8ffbd2736 @@ -1673,12 +1673,12 @@ :10b0e0004d004010000000004c00c28f4a0040108c :10b0f000000000005000c3972200c2972b104300ad :10b1000045004014000000004800c38300a0023c3a -:10b1100000190300e42f4224211062000a0042902b +:10b11000001903003c024224211062000a00429000 :10b12000ff004330010002243b00621400000000d5 :10b130002800c227212040002128000010000624fa -:10b1400023a0400f000000004800c2932800c2a3c3 +:10b14000cda0400f000000004800c2932800c2a319 :10b150005000c2972a00c2a74800c38300a0023c47 -:10b1600000190300e42f42242110620006004294db +:10b16000001903003c0242242110620006004294b0 :10b17000ffff42303400c2a75800c28f0c004010bd :10b18000000000005800c28f2400c2af2400c28f0c :10b19000000042942c00c2a72400c28f02004294f7 @@ -1687,7 +1687,7 @@ :10b1c0000b0002240400c214000000002800022426 :10b1d000772c400b00000000440002241000a5afb3 :10b1e0001400a4af1800a2af02000424c700052475 -:10b1f00021306000100007240750400f00000000bd +:10b1f00021306000100007243555400f000000008a :10b200002000c2a72000c2870300401000000000f9 :10b21000f2ff02242000c2a72000c28721e8c00359 :10b220004400bf8f4000be8f4800bd270800e003e8 @@ -1698,30 +1698,30 @@ :10b270003800c2830c0042286f004010000000001c :10b280003c00c28f6c004010000000004000c297dc :10b2900069004010000000003800c38300a0023c99 -:10b2a00000190300e42f4224211062000a0042909a +:10b2a000001903003c024224211062000a0042906f :10b2b000ff004330010002245f0062140000000020 :10b2c0002000c0a73800c4833c00c38f00a0023c0c -:10b2d00000210400e42f422421108200000043ac2e -:10b2e0003800c38300a0023c00190300e42f42246d +:10b2d000002104003c02422421108200000043ac03 +:10b2e0003800c38300a0023c001903003c02422442 :10b2f000211062004000c397040043a43800c383b8 -:10b3000000a0023c00190300e42f42242110620037 +:10b3000000a0023c001903003c024224211062000c :10b310000c004290ff004230470040140000000043 :10b32000460002242200c2a33800c38300a0023cce -:10b3300000190300e42f42242110620001000324bd +:10b33000001903003c024224211062000100032492 :10b340000c0043a03800c38300a0023c0019030096 -:10b35000e42f4224211062000b004290ff00423093 +:10b350003c024224211062000b004290ff00423068 :10b3600001004230ff0042300d004010000000009c -:10b370003800c38300a0023c00190300e42f4224dc +:10b370003800c38300a0023c001903003c024224b1 :10b38000211062000b004290ff0042302014027c2a :10b3900003004004000000004d0002242200c2a36c :10b3a0004400c28f0500401400000000ffff02248b :10b3b0002400c2aff12c400b000000004400c28ffb :10b3c0002400c2af3800c2932800c2a33800c38350 -:10b3d00000a0023c00190300e42f42242110620067 +:10b3d00000a0023c001903003c024224211062003c :10b3e00006004294ffff42302a00c2a74000c297e5 :10b3f0002c00c2a72200c3932400c2271000a0afd4 :10b400001400a0af1800a0af02000424212860009f -:10b41000213040000c0007240750400f00000000be +:10b41000213040000c0007243555400f000000008b :10b420002000c2a72000c2870300401000000000d7 :10b43000f2ff02242000c2a72000c28721e8c00337 :10b440003400bf8f3000be8f3800bd270800e003f6 @@ -1729,22 +1729,22 @@ :10b4600021f0a003211080003000c2a3faff0224c3 :10b470002000c2a33000c28343004004000000004b :10b480003000c2830c0042283f0040100000000042 -:10b490003000c38300a0023c00190300e42f4224c3 +:10b490003000c38300a0023c001903003c02422498 :10b4a000211062000a004290ff0043300100022494 :10b4b0003500621400000000490002242100c2a3ec :10b4c0003000c2932400c2a33000c38300a0023c1a -:10b4d00000190300e42f4224211062000600429468 +:10b4d000001903003c02422421106200060042943d :10b4e000ffff42302600c2a73000c38300a0023c09 -:10b4f00000190300e42f4224211062000b00429047 +:10b4f000001903003c024224211062000b0042901c :10b50000ff00423001004230ff0042300300401093 :10b51000000000004e0002242100c2a32100c393ba :10b520002400c2271000a0af1400a0af1800a0afe5 :10b530000200042421286000213040000400072478 -:10b540000750400f000000002000c2a32000c2836b +:10b540003555400f000000002000c2a32000c28338 :10b550000300401000000000f7ff02242000c2a3f7 -:10b560003000c2830019020000a0023ce42f4224f4 +:10b560003000c2830019020000a0023c3c024224c9 :10b570002110620021204000212800001000062434 -:10b5800023a0400f000000002000c28321e8c00378 +:10b58000cda0400f000000002000c28321e8c003ce :10b590002c00bf8f2800be8f3000bd270800e003bd :10b5a00000000000c8ffbd273400bfaf3000beafb1 :10b5b00021f0a003211880003c00c5af2110c0007d @@ -1753,26 +1753,26 @@ :10b5e0000c00422860004010000000003c00c28fa8 :10b5f0005d004010000000004000c2975a0040105b :10b60000000000003800c38300a0023c00190300c2 -:10b61000e42f4224211062000a004290ff004330d0 +:10b610003c024224211062000a004290ff004330a5 :10b620000100022450006214000000003800c383af -:10b6300000a0023c00190300e42f42242110620004 +:10b6300000a0023c001903003c02422421106200d9 :10b640000a004290ff0042304f004010000000000e :10b650002000c0a73800c4833c00c38f00a0023c78 -:10b6600000210400e42f422421108200000043ac9a -:10b670003800c38300a0023c00190300e42f4224d9 +:10b66000002104003c02422421108200000043ac6f +:10b670003800c38300a0023c001903003c024224ae :10b68000211062004000c397040043a43800c38324 -:10b6900000a0023c00190300e42f422421106200a4 +:10b6900000a0023c001903003c0242242110620079 :10b6a0000c004290ff0042303300401400000000c4 -:10b6b0003800c38300a0023c00190300e42f422499 +:10b6b0003800c38300a0023c001903003c0242246e :10b6c00021106200010003240c0043a04400c28f3b :10b6d0000500401400000000ffff02242400c2af58 :10b6e000bc2d400b000000004400c28f2400c2affc :10b6f0003800c2932800c2a33800c38300a0023cd4 -:10b7000000190300e42f4224211062000600429435 +:10b70000001903003c02422421106200060042940a :10b71000ffff42302a00c2a74000c2972c00c2a7f8 :10b720002400c2271000a0af1400a0af1800a0afe3 :10b730000200042448000524213040000c000724a6 -:10b740000750400f000000002000c2a72000c28761 +:10b740003555400f000000002000c2a72000c2872e :10b750000c00401000000000f2ff02242000c2a7ed :10b76000e22d400b00000000faff02242000c2a7d7 :10b77000e22d400b0000000000000000e22d400b15 @@ -1780,12 +1780,12 @@ :10b790003400bf8f3000be8f3800bd270800e003a3 :10b7a00000000000d0ffbd272c00bfaf2800beafb7 :10b7b00021f0a0033000c4affaff02242000c2a38e -:10b7c0003000c48fa19c400f000000002100c2a3e4 +:10b7c0003000c48f4a9d400f000000002100c2a33a :10b7d0002100c2936500422c1500401000000000bb :10b7e0003000c38f2100c293ffff4230010042248a :10b7f000ffff42301000a0af1400a0af1800a0afb0 :10b8000002000424ca0005242130600021384000d1 -:10b810000750400f000000002000c2a32000c28398 +:10b810003555400f000000002000c2a32000c28365 :10b820000300401000000000f7ff02242000c2a324 :10b830002000c28321e8c0032c00bf8f2800be8fe8 :10b840003000bd270800e00300000000c8ffbd274e @@ -1796,11 +1796,11 @@ :10b89000040002242300621400000000540002246b :10b8a0002100c2a33c00c2932900c2a33800c29366 :10b8b0002800c2a34000c28f0000428c2400c2af07 -:10b8c0003800c38300a0023c00190300e42f422487 +:10b8c0003800c38300a0023c001903003c0242245c :10b8d0002110620006004294ffff42302a00c2a7f6 :10b8e0002100c3932400c2271000a0af1400a0af12 :10b8f0001800a0af0200042421286000213040007d -:10b90000080007240750400f000000002000c2a3d9 +:10b90000080007243555400f000000002000c2a3a6 :10b910002000c2830300401000000000f7ff022453 :10b920002000c2a32000c28321e8c0033400bf8fdf :10b930003000be8f3800bd270800e0030000000083 @@ -1808,7 +1808,7 @@ :10b950002118a000a800c6af2110e000a000c4a3d9 :10b96000a400c3a3ac00c2a7faff02242000c2a314 :10b97000a000c28307004228a7004010000000007a -:10b98000a000c38300a0023c00190300e42f42245e +:10b98000a000c38300a0023c001903003c02422433 :10b99000211062000b004290ff0042300100423053 :10b9a000ff0042309c004010000000002100c0a3b6 :10b9b0002000c0a3ac00c397040002241700621447 @@ -1821,33 +1821,33 @@ :10ba20002f00401000000000a800c28f0000428cd0 :10ba30002400c2af2400c28f130040100000000099 :10ba4000a000c483a000c38300a0023c001903002f -:10ba5000e42f4224211062000b004290ff0043308b +:10ba50003c024224211062000b004290ff00433060 :10ba60002100c29325106200ff00433000a0023c79 -:10ba700000210400e42f4224211082000b0043a087 +:10ba7000002104003c024224211082000b0043a05c :10ba8000062f400b00000000a000c483a000c38369 -:10ba900000a0023c00190300e42f422421106200a0 +:10ba900000a0023c001903003c0242242110620075 :10baa0000b004290ff004230201c027c2100c28328 :10bab000271002002014027c241062002014027c53 -:10bac000ff00433000a0023c00210400e42f422488 +:10bac000ff00433000a0023c002104003c0242245d :10bad000211082000b0043a0062f400b0000000045 :10bae000a400c393020002240500621400000000b9 :10baf000ac00c2976400422c090040140000000012 :10bb0000a400c393050002243e006214000000005c :10bb1000ac00c2972100422c3a0040100000000007 :10bb20002800c3276c000224212060002128000087 -:10bb30002130400023a0400f00000000a000c2936d +:10bb300021304000cda0400f00000000a000c293c3 :10bb40002800c2a3a000c38300a0023c0019030088 -:10bb5000e42f42242110620006004294ffff42308d +:10bb50003c0242242110620006004294ffff423062 :10bb60002a00c2a7a400c2932900c2a3ac00c297b6 :10bb70002c00c2afac00c2972800c3270800632482 -:10bb800021206000a800c58f21304000479c400f55 +:10bb800021206000a800c58f21304000f09c400fac :10bb9000000000002800c2271000a0af1400a0afd2 :10bba0001800a0af020004245100052421304000f9 -:10bbb0006c0007240750400f000000002000c2a3c3 +:10bbb0006c0007243555400f000000002000c2a390 :10bbc0002000c383fdff0224120062140000000065 :10bbd0002800c2271000a0af1400a0af1800a0af2b :10bbe00002000424d1000524213040006c00072409 -:10bbf0000750400f000000002000c2a3062f400b9a +:10bbf0003555400f000000002000c2a3062f400b67 :10bc000000000000faff02242000c2a3062f400b10 :10bc100000000000000000002000c28321e8c003f3 :10bc20009c00bf8f9800be8fa000bd270800e003d6 @@ -1858,7 +1858,7 @@ :10bc70004000c2835a004004000000004000c2831c :10bc80000c00422856004010000000004c00c28ffb :10bc900053004010000000004000c38300a0023c9d -:10bca00000190300e42f4224211062000a00429090 +:10bca000001903003c024224211062000a00429065 :10bcb000ff0043300100022449006214000000002c :10bcc0004400c393ff0002240c0062140000000033 :10bcd0004000c4834800c3933000c297212860000d @@ -1872,11 +1872,11 @@ :10bd500023006214000000004f0002242100c2a34f :10bd60004800c2932900c2a34000c2932800c2a386 :10bd70004c00c28f0000428c2400c2af4000c3833d -:10bd800000a0023c00190300e42f422421106200ad +:10bd800000a0023c001903003c0242242110620082 :10bd900006004294ffff42302a00c2a72100c3934d :10bda0002400c2271000a0af1400a0af1800a0af5d :10bdb00002000424212860002130400008000724ec -:10bdc0000750400f000000002000c2a32000c283e3 +:10bdc0003555400f000000002000c2a32000c283b0 :10bdd0000300401000000000f7ff02242000c2a36f :10bde0002000c28321e8c0033c00bf8f3800be8f13 :10bdf0004000bd270800e00300000000f8ffbd2759 @@ -1888,11 +1888,11 @@ :10be50004000c6af3c00c2a3f1ff02242000c2a3f1 :10be60003800c28f1c004010000000004000c28f4c :10be70001900401000000000010002242c00c2a79d -:10be80003800c28f2400c2af2881828f0100422473 -:10be9000288182af2881828f2800c2af3c00c293e4 -:10bea0002e00c2a34000c28f248182af2400c2278b +:10be80003800c28f2400c2afbc80828f01004224e0 +:10be9000bc8082afbc80828f2800c2af3c00c293be +:10bea0002e00c2a34000c28fb88082af2400c227f8 :10beb0001000a0af1400a0af1800a0af020004242f -:10bec00052000524213040000c0007240750400f89 +:10bec00052000524213040000c0007243555400f56 :10bed000000000002000c2a32000c28321e8c003ac :10bee0003400bf8f3000be8f3800bd270800e0034c :10bef00000000000b0ffbd274c00bfaf4800beaf40 @@ -1900,14 +1900,14 @@ :10bf1000faff02241800c2a35000c2835c00400450 :10bf2000000000005000c283070042285800401063 :10bf3000000000005400c28f5500401000000000b7 -:10bf40005400c48fa19c400f000000001900c2a340 +:10bf40005400c48f4a9d400f000000001900c2a396 :10bf50001900c2934e004010000000001900c29367 :10bf60001e00422c4a004010000000002400c0af18 :10bf70002800c0af2c00c0af3000c0af3400c0af4d :10bf80003800c0af3c00c0af4000c0af1900c29342 :10bf9000030042242400c327211062001c00c2af0a :10bfa0002000c0a32400c227030042241900c39329 -:10bfb000212040005400c58f21306000479c400f75 +:10bfb000212040005400c58f21306000f09c400fcc :10bfc000000000001900c293010042241900c2a31e :10bfd0001900c2932500c2a3200002242600c2a398 :10bfe0000e30400b000000001c00c28fffff4224f7 @@ -1927,71 +1927,71 @@ :10c0c0000800c2830700422804004010000000005e :10c0d0000800c2830400410400000000faff0224ab :10c0e0005830400b000000000800c38300a0023c51 -:10c0f00000190300e42f4224211062000b0042903b +:10c0f000001903003c024224211062000b00429010 :10c10000ff004230010042300a00401000000000f1 -:10c110000800c38300a0023c00190300e42f42245e +:10c110000800c38300a0023c001903003c02422433 :10c12000211062000a004290ff00423004004014d7 :10c1300000000000faff02245830400b000000000d -:10c140000800c38300a0023c00190300e42f42242e +:10c140000800c38300a0023c001903003c02422403 :10c15000211062000d004290ff0042302014027c4a :10c1600021e8c0030400be8f0800bd270800e003db :10c1700000000000f8ffbd270400beaf21f0a003bf -:10c1800022818293ff00423021e8c0030400be8f69 +:10c18000b6808293ff00423021e8c0030400be8fd6 :10c190000800bd270800e00300000000f8ffbd27ed :10c1a0000400beaf21f0a003211080000c00c5af39 :10c1b0000800c2a30800c2830700422807004010fd :10c1c000000000000800c2830400400400000000da :10c1d0000c00c28f0400401400000000faff02248b :10c1e0009a30400b000000000800c38300a0023c0e -:10c1f00000190300e42f4224211062000a0042903b +:10c1f000001903003c024224211062000a00429010 :10c20000ff0042300400401400000000faff022446 :10c210009a30400b000000000800c38300a0023cdd -:10c2200000190300e42f4224211062000e00429006 +:10c22000001903003c024224211062000e004290db :10c23000ff004230211840000c00c28f000043acc8 -:10c240000800c38300a0023c00190300e42f42242d +:10c240000800c38300a0023c001903003c02422402 :10c25000211062000f004290ff0043300c00c28f9b :10c26000040043a02110000021e8c0030400be8f99 :10c270000800bd270800e00300000000e0ffbd2724 -:10c280001c00bfaf1800beaf21f0a003905c400fb0 -:10c290000000000000a0023c5c08442421280000ab -:10c2a0002006062423a0400f000000001000c0afad +:10c280001c00bfaf1800beaf21f0a003fa5c400f46 +:10c290000000000000a0023c4409442421280000c2 +:10c2a00020060624cda0400f000000001000c0af03 :10c2b0002c31400b0000000000a0043c1000c28f95 :10c2c000211840004011030021184000c010030055 -:10c2d00023104300c0180200231862005c08822467 +:10c2d00023104300c018020023186200440982247e :10c2e00021106200080040ac1000c28f21184000ed :10c2f0004011030021184000c01003002310430028 :10c30000c0180200231862000800632400a0023c49 -:10c310005c084224211062000400442400a0033c75 -:10c320001000c28f5c0865242118400040110300f2 +:10c3100044094224211062000400442400a0033c8c +:10c320001000c28f44096524211840004011030009 :10c3300021184000c010030023104300c018020061 :10c34000231062002110a2000c0444ac1000c28f24 :10c35000211840004011030021184000c0100300c4 :10c3600023104300c0180200231862000800632451 -:10c3700000a0023c5c084224211062000400442416 +:10c3700000a0023c4409422421106200040044242d :10c3800000a0053c1000c28f21184000401103009e :10c3900021184000c010030023104300c018020001 -:10c3a000231862005c08a22421106200100444ac2f +:10c3a000231862004409a22421106200100444ac46 :10c3b0001000c28f211840004011030021184000d6 :10c3c000c010030023104300c018020023186200ad -:10c3d0001004632400a0023c5c0842242110620087 +:10c3d0001004632400a0023c44094224211062009e :10c3e0000400442400a0053c1000c28f2118400026 :10c3f0004011030021184000c01003002310430027 -:10c40000c0180200231862005c08a22421106200f8 +:10c40000c0180200231862004409a224211062000f :10c41000180644ac00a0043c1000c28f2118400054 :10c420004011030021184000c010030023104300f6 -:10c43000c0180200231862005c08822421106200e8 -:10c440001806448c00a0033c1000c28f5c086524d1 +:10c43000c0180200231862004409822421106200ff +:10c440001806448c00a0033c1000c28f44096524e8 :10c45000211840004011030021184000c0100300c3 :10c4600023104300c0180200231062002110a20014 -:10c47000140644ac00a0033c1000c28f5c08642486 +:10c47000140644ac00a0033c1000c28f440964249d :10c48000211840004011030021184000c010030093 :10c4900023104300c0180200231062002110820004 :10c4a0001c0640ac1000c28f010042241000c2af35 :10c4b0001000c28f80ff40180000000000a0023c66 -:10c4c000010003245c0843ac00a0023c5c08422449 -:10c4d00001000324040043ac00a0023c743d44244a -:10c4e00021280000caa3400f0000000000a0023c69 -:10c4f000743d4424eca0400f000000002120000007 +:10c4c00001000324440943ac00a0023c4409422477 +:10c4d00001000324040043ac00a0023c783d442446 +:10c4e0002128000074a4400f0000000000a0023cbe +:10c4f000783d442496a1400f000000002120000058 :10c50000802505242130000021380000f831400f3b :10c510000000000021e8c0031c00bf8f1800be8f80 :10c520002000bd270800e00300000000e8ffbd2751 @@ -2000,42 +2000,42 @@ :10c5500021100000f231400b0000000000a0043c5c :10c560001800c28f2118400040110300211840001c :10c57000c010030023104300c018020023186200fb -:10c580005c08822421106200080040ac1800c28fb1 +:10c580004409822421106200080040ac1800c28fc8 :10c59000211840004011030021184000c010030082 :10c5a00023104300c018020023186200080063240f -:10c5b00000a0023c5c0842242110620004004424d4 -:10c5c00000a0033c1800c28f5c08652421184000bd +:10c5b00000a0023c440942242110620004004424eb +:10c5c00000a0033c1800c28f4409652421184000d4 :10c5d0004011030021184000c01003002310430045 :10c5e000c0180200231062002110a2000c0444ac09 :10c5f0001800c28f2118400040110300211840008c :10c60000c010030023104300c0180200231862006a -:10c610000800632400a0023c5c0842242110620050 +:10c610000800632400a0023c440942242110620067 :10c620000400442400a0053c1800c28f21184000db :10c630004011030021184000c010030023104300e4 -:10c64000c0180200231862005c08a22421106200b6 +:10c64000c0180200231862004409a22421106200cd :10c65000100444ac1800c28f2118400040110300a0 :10c6600021184000c010030023104300c01802002e -:10c67000231862001004632400a0023c5c084224da +:10c67000231862001004632400a0023c44094224f1 :10c68000211062000400442400a0053c1800c28f61 :10c69000211840004011030021184000c010030081 -:10c6a00023104300c0180200231862005c08a22473 +:10c6a00023104300c0180200231862004409a2248a :10c6b00021106200180644ac00a0043c1800c28f90 :10c6c000211840004011030021184000c010030051 -:10c6d00023104300c0180200231862005c08822463 +:10c6d00023104300c018020023186200440982247a :10c6e000211062001806448c00a0033c1800c28f81 -:10c6f0005c08652421184000401103002118400007 +:10c6f000440965242118400040110300211840001e :10c70000c010030023104300c01802002310620071 :10c710002110a200140644ac00a0033c1800c28ff4 -:10c720005c086424211840004011030021184000d7 +:10c7200044096424211840004011030021184000ee :10c73000c010030023104300c01802002310620041 -:10c74000211082001c0640ac00a0023c5c08438c17 +:10c74000211082001c0640ac00a0023c4409438c2e :10c75000010002241b0062140000000000a0033c42 -:10c760001800c28f5c0864242118400040110300a7 +:10c760001800c28f440964242118400040110300be :10c7700021184000c010030023104300c01802001d :10c7800023106200211082000400428c0600401039 :10c790000000000001000324070043100000000017 -:10c7a000f131400b00000000e35f400f000000008b -:10c7b000f131400b000000002560400f0000000038 +:10c7a000f131400b000000004d60400f0000000020 +:10c7b000f131400b000000008f60400f00000000ce :10c7c000000000000100022421e8c0031400bf8f14 :10c7d0001000be8f1800bd270800e0030000000015 :10c7e000c8ffbd273400bfaf3000beaf21f0a003ab @@ -2044,7 +2044,7 @@ :10c810000400410400000000050002246e32400bb9 :10c820000000000000a0043c3800c28f2118400026 :10c830004011030021184000c010030023104300e2 -:10c84000c0180200231862005c08822421106200d4 +:10c84000c0180200231862004409822421106200eb :10c850000000438c01000224560062140000000016 :10c860004000c28f0f004004000000000200432877 :10c8700006006014000000000200032406004310bc @@ -2055,25 +2055,25 @@ :10c8c0000b004014000000002400c0af3c32400bbd :10c8d00000000000010002242400c2af3c32400be3 :10c8e00000000000020002242400c2af000000008b -:10c8f00000a0033c3800c28f5c086424211840006b +:10c8f00000a0033c3800c28f440964242118400082 :10c900004011030021184000c01003002310430011 :10c91000c018020023106200211082000400448c21 :10c920003800c28f21184000401103002118400038 :10c93000c010030023104300c01802002318620037 -:10c940000800632400a0023c5c084224211062001d +:10c940000800632400a0023c440942242110620034 :10c95000040046243800c28f211840004011030013 :10c9600021184000c010030023104300c01802002b -:10c97000231862000704632400a0023c5c084224e0 +:10c97000231862000704632400a0023c44094224f7 :10c9800021106200040042243c00c38f1000a3afba :10c990002000c38f1400a3af2400c38f1800a3afdf -:10c9a0003800c58f21384000075d400f00000000af +:10c9a0003800c58f21384000715d400f0000000045 :10c9b0002800c2af2800c28f21e8c0033400bf8f17 :10c9c0003000be8f3800bd270800e00300000000e3 :10c9d000e0ffbd271c00bfaf1800beaf21f0a003d1 :10c9e0002000c4af2400c5af2800c6af2000c28f0e :10c9f000211840004011030021184000c01003001e :10ca000023104300c01802002318620000a0023c5b -:10ca10005c084224211062001400c2af2000c28fc3 +:10ca100044094224211062001400c2af2000c28fda :10ca200007004104000000002000c28f04004018ed :10ca30000000000021100000c132400b0000000087 :10ca40001000c0afac32400b000000001400c28fd9 @@ -2087,13 +2087,13 @@ :10cac000000000001400c28f1c06438c2800c28f97 :10cad000211862001400c28f1c0643ac1400c28fe0 :10cae0001c06428c00024228050040140000000091 -:10caf000039d023cf88e442439a3400f000000003f +:10caf000039d023ca0914424e3a3400f00000000ea :10cb00000100022421e8c0031c00bf8f1800be8f63 :10cb10002000bd270800e00300000000f0ffbd2753 :10cb20000c00beaf21f0a0031000c4af1000c28ff4 :10cb3000211840004011030021184000c0100300dc :10cb400023104300c01802002318620000a0023c1a -:10cb50005c084224211062000000c2af0000c28fb6 +:10cb500044094224211062000000c2af0000c28fcd :10cb60001406438c0000c28f1806428c0400621425 :10cb700000000000211000000033400b0000000006 :10cb80000000c28f1806438c0000c28f1406428c2e @@ -2109,220 +2109,220 @@ :10cc20001000c4af1400c5af1800c6af0400c0aff9 :10cc300000a0043c1000c28f2118400040110300e6 :10cc400021184000c010030023104300c018020048 -:10cc5000231862005c088224211062001004448cb6 -:10cc600000a0033c1000c28f5c086524211840001e +:10cc50002318620044098224211062001004448ccd +:10cc600000a0033c1000c28f440965242118400035 :10cc70004011030021184000c0100300231043009e :10cc8000c0180200231062002110a2000c04428c84 :10cc90002b1082007d0040100000000000a0043c2a :10cca0001000c28f211840004011030021184000dd :10ccb000c010030023104300c018020023186200b4 -:10ccc0005c088224211062001004428c2120400064 +:10ccc00044098224211062001004428c212040007b :10ccd0001000c28f211840004011030021184000ad :10cce000c010030023104300c01802002318620084 -:10ccf0000800632400a0023c5c084224211062006a +:10ccf0000800632400a0023c440942242110620081 :10cd000004004224232082001000c28f211840001a :10cd10004011030021184000c010030023104300fd :10cd2000c0180200231862000704632400a0023c1c -:10cd30005c084224211062000400422421284000a3 -:10cd400000a0033c1000c28f5c086624211840003c +:10cd300044094224211062000400422421284000ba +:10cd400000a0033c1000c28f440966242118400053 :10cd50004011030021184000c010030023104300bd :10cd6000c0180200231062002110c2000c04428c83 :10cd70002310a200211882001800c28f2a1062001e :10cd8000010140100000000000a0043c1000c28f10 :10cd9000211840004011030021184000c01003007a -:10cda00023104300c0180200231862005c0882248c +:10cda00023104300c01802002318620044098224a3 :10cdb00021106200080040ac1000c28f2118400012 :10cdc0004011030021184000c0100300231043004d :10cdd000c0180200231862000800632400a0023c6f -:10cde0005c084224211062000400442400a0033c9b -:10cdf0001000c28f5c086524211840004011030018 +:10cde00044094224211062000400442400a0033cb2 +:10cdf0001000c28f4409652421184000401103002f :10ce000021184000c010030023104300c018020086 :10ce1000231062002110a2000c0444ac1000c28f49 :10ce2000211840004011030021184000c0100300e9 :10ce300023104300c0180200231862000800632476 -:10ce400000a0023c5c08422421106200040044243b +:10ce400000a0023c44094224211062000400442452 :10ce500000a0053c1000c28f2118400040110300c3 :10ce600021184000c010030023104300c018020026 -:10ce7000231862005c08a22421106200100444ac54 +:10ce7000231862004409a22421106200100444ac6b :10ce800004000224d134400b0000000000a0033c49 -:10ce90001000c28f5c086424211840004011030078 +:10ce90001000c28f4409642421184000401103008f :10cea00021184000c010030023104300c0180200e6 :10ceb00023106200211082000c04448c00a0053c69 :10cec0001000c28f211840004011030021184000bb :10ced000c010030023104300c01802002318620092 -:10cee0005c08a224211062001004428c2b108200e6 +:10cee0004409a224211062001004428c2b108200fd :10cef000600040100000000000a0043c1000c28f41 :10cf0000211840004011030021184000c010030008 -:10cf100023104300c0180200231862005c0882241a +:10cf100023104300c0180200231862004409822431 :10cf2000211062001004428c2120400000a0033c2c -:10cf30001000c28f5c0865242118400040110300d6 +:10cf30001000c28f440965242118400040110300ed :10cf400021184000c010030023104300c018020045 :10cf5000231062002110a2000c04428c23188200ce :10cf60001800c28f2a1062008700401000000000e5 :10cf700000a0043c1000c28f2118400040110300a3 :10cf800021184000c010030023104300c018020005 -:10cf9000231862005c08822421106200080040ac63 +:10cf9000231862004409822421106200080040ac7a :10cfa0001000c28f211840004011030021184000da :10cfb000c010030023104300c018020023186200b1 -:10cfc0000800632400a0023c5c0842242110620097 -:10cfd0000400442400a0033c1000c28f5c086524b8 +:10cfc0000800632400a0023c4409422421106200ae +:10cfd0000400442400a0033c1000c28f44096524cf :10cfe000211840004011030021184000c010030028 :10cff00023104300c0180200231062002110a20079 :10d000000c0444ac1000c28f2118400040110300f2 :10d0100021184000c010030023104300c018020074 -:10d02000231862000800632400a0023c5c0842242c +:10d02000231862000800632400a0023c4409422443 :10d03000211062000400442400a0053c1000c28faf :10d04000211840004011030021184000c0100300c7 -:10d0500023104300c0180200231862005c08a224b9 +:10d0500023104300c0180200231862004409a224d0 :10d0600021106200100444ac04000224d134400baf :10d07000000000001800c28f000442284200401443 :10d080000000000000a0043c1000c28f21184000e6 :10d090004011030021184000c0100300231043007a -:10d0a000c0180200231862005c088224211062006c +:10d0a000c018020023186200440982242110620083 :10d0b000080040ac1000c28f21184000401103004e :10d0c00021184000c010030023104300c0180200c4 -:10d0d000231862000800632400a0023c5c0842247c +:10d0d000231862000800632400a0023c4409422493 :10d0e000211062000400442400a0033c1000c28f01 -:10d0f0005c086524211840004011030021184000fd +:10d0f0004409652421184000401103002118400014 :10d10000c010030023104300c01802002310620067 :10d110002110a2000c0444ac1000c28f2118400062 :10d120004011030021184000c010030023104300e9 :10d13000c0180200231862000800632400a0023c0b -:10d140005c084224211062000400442400a0053c35 +:10d1400044094224211062000400442400a0053c4c :10d150001000c28f21184000401103002118400028 :10d16000c010030023104300c018020023186200ff -:10d170005c08a22421106200100444ac04000224c4 +:10d170004409a22421106200100444ac04000224db :10d18000d134400b000000000000c0afbe34400ba3 :10d19000000000001000c28f211840004011030061 :10d1a00021184000c010030023104300c0180200e3 -:10d1b000231862000804632400a0023c5c08422497 +:10d1b000231862000804632400a0023c44094224ae :10d1c000211062000400442400a0033c1000c28f20 -:10d1d0005c0865242118400040110300211840001c +:10d1d0004409652421184000401103002118400033 :10d1e000c010030023104300c01802002310620087 :10d1f0002110a2000c04428c1400c38f0000638035 :10d20000000043a001004224000082ac1400c28f41 :10d21000010042241400c2af00a0033c1000c28fe2 -:10d220005c086424211840004011030021184000cc +:10d2200044096424211840004011030021184000e3 :10d23000c010030023104300c01802002310620036 :10d24000211082000c04448c1000c28f2118400071 :10d250004011030021184000c010030023104300b8 :10d26000c0180200231862000704632400a0023cd7 -:10d270005c08422421106200040042242b10440068 +:10d270004409422421106200040042242b1044007f :10d280001a004010000000001000c28f211840005a :10d290004011030021184000c01003002310430078 :10d2a000c0180200231862000800632400a0023c9a -:10d2b0005c084224211062000400442400a0033cc6 -:10d2c0001000c28f5c086524211840004011030043 +:10d2b00044094224211062000400442400a0033cdd +:10d2c0001000c28f4409652421184000401103005a :10d2d00021184000c010030023104300c0180200b2 :10d2e000231062002110a2000c0444ac0000c28f85 :10d2f000010042240000c2af0000c38f1800c28f9b :10d300002a106200a3ff40140000000000a0043cab :10d310001000c28f21184000401103002118400066 :10d32000c010030023104300c0180200231862003d -:10d330005c0882242110620001000324080043ac31 +:10d33000440982242110620001000324080043ac48 :10d340000400c28f21e8c0030c00be8f1000bd276f :10d350000800e00300000000f8ffbd270400beaf96 :10d3600021f0a0030800c4af0c00c5af00a0043c2e :10d370000800c28f2118400040110300211840000e :10d38000c010030023104300c018020023186200dd -:10d390005c088224211062001004438c0c00c28fb0 +:10d3900044098224211062001004438c0c00c28fc7 :10d3a000212062000800c28f2118400040110300b4 :10d3b00021184000c010030023104300c0180200d1 -:10d3c000231862000800632400a0023c5c08422489 +:10d3c000231862000800632400a0023c44094224a0 :10d3d0002110620004004224000442242b10820029 :10d3e0001d0040100000000000a0043c0800c28f97 :10d3f000211840004011030021184000c010030014 -:10d4000023104300c0180200231862005c08822425 +:10d4000023104300c018020023186200440982243c :10d41000211062001004438c0c00c28f2120620096 :10d4200000a0053c0800c28f2118400040110300f5 :10d4300021184000c010030023104300c018020050 -:10d44000231862005c08a22421106200100444ac7e +:10d44000231862004409a22421106200100444ac95 :10d450005035400b0000000000a0043c0800c28fc3 :10d46000211840004011030021184000c0100300a3 -:10d4700023104300c0180200231862005c088224b5 +:10d4700023104300c01802002318620044098224cc :10d48000211062001004428c212040000800c28f4d :10d49000211840004011030021184000c010030073 :10d4a00023104300c0180200231862000800632400 -:10d4b00000a0023c5c0842242110620004004224c7 +:10d4b00000a0023c440942242110620004004224de :10d4c00000044224231082000c00c38f211062004c :10d4d0000c00c2af0800c28f2118400040110300a9 :10d4e00021184000c010030023104300c0180200a0 -:10d4f000231862000800632400a0023c5c08422458 +:10d4f000231862000800632400a0023c440942246f :10d5000021106200040043240c00c28f212062001d :10d5100000a0053c0800c28f211840004011030004 :10d5200021184000c010030023104300c01802005f -:10d53000231862005c08a22421106200100444ac8d +:10d53000231862004409a22421106200100444aca4 :10d5400000a0043c0800c28f2118400040110300d5 :10d5500021184000c010030023104300c01802002f -:10d56000231862005c088224211062001004448c9d -:10d5700000a0033c0800c28f5c086524211840000d +:10d560002318620044098224211062001004448cb4 +:10d5700000a0033c0800c28f440965242118400024 :10d580004011030021184000c01003002310430085 :10d59000c0180200231062002110a2000c04428c6b :10d5a000100082100000000000a0043c0800c28fa0 :10d5b000211840004011030021184000c010030052 -:10d5c00023104300c0180200231862005c08822464 +:10d5c00023104300c018020023186200440982247b :10d5d0002110620001000324080043ac8a35400b8f :10d5e0000000000000a0043c0800c28f2118400089 :10d5f0004011030021184000c01003002310430015 -:10d60000c0180200231862005c0882242110620006 +:10d60000c01802002318620044098224211062001d :10d61000080040ac88bf033ca060628c0100042479 :10d62000446b827ca06062ac0100022421e8c0034c :10d630000400be8f0800bd270800e00300000000c2 :10d64000c0fdbd273c02bfaf3802beaf21f0a00332 -:10d650001800c0afa85e400f000000001800c0af67 +:10d650001800c0af125f400f000000001800c0affc :10d660000e37400b0000000000a0043c1800c28fe1 :10d67000211840004011030021184000c010030091 -:10d6800023104300c0180200231862005c088224a3 +:10d6800023104300c01802002318620044098224ba :10d69000211062000800428ccd0040100000000004 -:10d6a00000a0033c1800c28f5c08642421184000cd +:10d6a00000a0033c1800c28f4409642421184000e4 :10d6b0004011030021184000c01003002310430054 :10d6c000c018020023106200211082000c04428c5a :10d6d0002c00c2af00a0043c1800c28f21184000eb :10d6e0004011030021184000c01003002310430024 -:10d6f000c0180200231862005c0882242110620016 +:10d6f000c01802002318620044098224211062002d :10d700001004438c2c00c28f2b10620012004010ba :10d71000000000002c00c48f00a0053c1800c28f40 :10d72000211840004011030021184000c0100300e0 -:10d7300023104300c0180200231862005c08a224d2 +:10d7300023104300c0180200231862004409a224e9 :10d74000211062001004428c231082002000c2af1e :10d750000336400b000000001800c28f2118400063 :10d760004011030021184000c010030023104300a3 :10d77000c0180200231862000800632400a0023cc5 -:10d780005c08422421106200040042240004422468 +:10d78000440942242110620004004224000442247f :10d790002120400000a0053c1800c28f2118400045 :10d7a0004011030021184000c01003002310430063 -:10d7b000c0180200231862005c08a2242110620035 +:10d7b000c0180200231862004409a224211062004c :10d7c0001004428c232082002c00c58f1800c28fc9 :10d7d000211840004011030021184000c010030030 :10d7e00023104300c01802002318620008006324bd -:10d7f00000a0023c5c084224211062000400422484 +:10d7f00000a0023c4409422421106200040042249b :10d800002310a200211082002000c2af00a0043c1f :10d810001800c28f21184000401103002118400059 :10d82000c010030023104300c01802002318620038 -:10d830005c088224211062000000428c44004010e9 +:10d8300044098224211062000000428c4400401000 :10d840000000000000a0043c1800c28f2118400016 :10d850004011030021184000c010030023104300b2 -:10d86000c0180200231862005c08822421106200a4 +:10d86000c0180200231862004409822421106200bb :10d87000080040ac00a0043c1800c28f21184000f2 :10d880004011030021184000c01003002310430082 -:10d89000c0180200231862005c0882242110620074 -:10d8a0001004448c00a0033c1800c28f5c0865245f +:10d89000c01802002318620044098224211062008b +:10d8a0001004448c00a0033c1800c28f4409652476 :10d8b000211840004011030021184000c01003004f :10d8c00023104300c0180200231062002110a200a0 :10d8d0000400468c1800c28f21184000401103003c :10d8e00021184000c010030023104300c01802009c -:10d8f000231862000800632400a0023c5c08422454 +:10d8f000231862000800632400a0023c440942246b :10d9000021106200040047241800c28f2118400033 :10d910004011030021184000c010030023104300f1 :10d92000c0180200231862000704632400a0023c10 -:10d930005c08422421106200040042241000a2afbf -:10d940002000c58f8f5d400f000000001c00c2af9b +:10d930004409422421106200040042241000a2afd6 +:10d940002000c58ff95d400f000000001c00c2af31 :10d950001c00c28f020003240a00431000000000d4 :10d960000300432816006014000000000300032495 :10d9700016004310000000000400032414004314a8 :10d980000000000000a0043c1800c28f21184000d5 :10d990004011030021184000c01003002310430071 -:10d9a000c0180200231862005c0882242110620063 +:10d9a000c01802002318620044098224211062007a :10d9b00001000324080043ac7436400b0000000053 :10d9c000000000007436400b000000000000000062 :10d9d0001800c48fc732400f000000003000c2aff3 @@ -2330,37 +2330,37 @@ :10d9f000d536400b000000001800c28f21184000ef :10da00004011030021184000c01003002310430000 :10da1000c0180200231862001806632400a0023c0c -:10da20005c0842242120620000a0053c1800c28f3f +:10da2000440942242120620000a0053c1800c28f56 :10da3000211840004011030021184000c0100300cd -:10da400023104300c0180200231862005c08a224bf +:10da400023104300c0180200231862004409a224d6 :10da5000211062001806428c000045802400c38f0c :10da60001800c6272118c3001c0065a0010042242d :10da7000000082ac00a0043c1800c28f21184000b6 :10da80004011030021184000c01003002310430080 -:10da9000c0180200231862005c0882242110620072 +:10da9000c018020023186200440982242110620089 :10daa0001806448c1800c28f211840004011030052 :10dab00021184000c010030023104300c0180200ca -:10dac000231862000f06632400a0023c5c08422475 +:10dac000231862000f06632400a0023c440942248c :10dad00021106200040042242b1044001a00401060 :10dae000000000001800c28f211840004011030000 :10daf00021184000c010030023104300c01802008a -:10db0000231862001004632400a0023c5c08422435 +:10db0000231862001004632400a0023c440942244c :10db1000211062000400442400a0053c1800c28fbc :10db2000211840004011030021184000c0100300dc -:10db300023104300c0180200231862005c08a224ce +:10db300023104300c0180200231862004409a224e5 :10db400021106200180644ac2400c28f0100422458 :10db50002400c2af2400c38f3000c28f2a1062009d :10db6000a5ff40140000000000a0033c1800c28f75 -:10db70005c08642421184000401103002118400073 +:10db7000440964242118400040110300211840008a :10db8000c010030023104300c018020023106200dd :10db9000211082001c06438c3000c28f23206200bb -:10dba00000a0033c1800c28f5c08652421184000c7 +:10dba00000a0033c1800c28f4409652421184000de :10dbb0004011030021184000c0100300231043004f :10dbc000c0180200231062002110a2001c0644ac01 :10dbd0001800c28f15004014000000002800c0afdc :10dbe0002800c0af0537400b000000002800c28f9e :10dbf0001800c327211062001c0042802120400031 -:10dc0000877b400f000000002800c28f01004224e3 +:10dc0000f17b400f000000002800c28f0100422479 :10dc10002800c2af2800c38f3000c28f2a106200d4 :10dc2000f2ff401400000000000000001800c28f46 :10dc3000010042241800c2af1800c28f8afe4018ab @@ -2378,17 +2378,17 @@ :10dcf000000000004037400b000000000000000062 :10dd000000a0043c1800c28f2118400040110300fd :10dd100021184000c010030023104300c018020067 -:10dd2000231862005c088224211062000800428ce3 +:10dd20002318620044098224211062000800428cfa :10dd3000eeff4014000000000100022421e8c003af :10dd40001400bf8f1000be8f1800bd270800e0032d :10dd500000000000e0ffbd271c00bfaf1800beaff1 :10dd600021f0a0032000c4af2400c5af2400c28f5f -:10dd7000ac8082af01000224b88082af2400c28f41 +:10dd7000f08082af01000224fc8082af2400c28fb9 :10dd8000ff0045302400c28f02120200ff00433022 :10dd90002400c28f02140200ff0042302400c48f0e -:10dda000022604001000a4af029d043c545c8424ad -:10ddb00021306000213840004aa3400f00000000dd -:10ddc000029d023c705c44242000c58f4aa3400f92 +:10dda000022604001000a4af029d043c18618424e4 +:10ddb0002130600021384000f4a3400f0000000033 +:10ddc000029d023c346144242000c58ff4a3400f1f :10ddd0000000000021e8c0031c00bf8f1800be8fa8 :10dde0002000bd270800e00300000000d0ffbd2791 :10ddf0002c00bfaf2800beaf21f0a0032118800087 @@ -2399,99 +2399,99 @@ :10de40005cde009d4cdf009d78e4009db8df009d06 :10de500078e4009de0e1009d78e4009d3800c28fe9 :10de60001000c2af1000c28f000042803100401489 -:10de700000000000348082833000c38308006214f5 -:10de8000000000003480828321204000212800000f +:10de700000000000408082833000c38308006214e9 +:10de80000000000040808283212040002128000003 :10de9000722a400f000000001e39400b00000000f5 -:10dea000368082833000c3830800621400000000c3 -:10deb000368082832120400021280000722a400ff2 -:10dec000000000001e39400b0000000038808283f3 -:10ded0003000c38308006214000000003880828391 +:10dea000428082833000c3830800621400000000b7 +:10deb000428082832120400021280000722a400fe6 +:10dec000000000001e39400b0000000044808283e7 +:10ded0003000c38308006214000000004480828385 :10dee0002120400021280000722a400f000000007d -:10def0001e39400b000000003a8082833000c3834b -:10df000053016214000000003a8082832120400007 +:10def0001e39400b00000000468082833000c3833f +:10df000053016214000000004680828321204000fb :10df100021280000722a400f00000000029d023cf0 -:10df2000845c442439a3400f000000001e39400bdc -:10df300000000000029d023ca05c442439a3400f75 +:10df200048614424e3a3400f000000001e39400b69 +:10df300000000000029d023c64614424e3a3400f02 :10df4000000000001e39400b000000003800c28fa6 :10df50001400c2af1400c28f000042800c004010b9 :10df6000000000003000c3831400c28f0000428014 -:10df7000029d043cac5c84242128600021304000d8 -:10df80004aa3400f000000001e39400b00000000b3 -:10df9000368082833000c3833001621400000000a9 -:10dfa00021200000010005246092400f00000000c5 +:10df7000029d043c7061842421286000213040000f +:10df8000f4a3400f000000001e39400b0000000009 +:10df9000428082833000c38330016214000000009d +:10dfa0002120000001000524d792400f000000004e :10dfb0001e39400b000000003800c28f1800c2afad :10dfc0001800c28f000042807d0040040000000065 -:10dfd000348082833000c38322006214000000007a -:10dfe00000a0023c841344242128000000040624dd -:10dff00023a0400f000000001800c28f00004280e4 -:10e00000338082a3338082832120400000a0023c21 -:10e010008413452400040624213800008d2c400f71 -:10e0200000000000029d023cd05c42242120400000 +:10dfd000408082833000c38322006214000000006e +:10dfe00000a0023c6c1444242128000000040624f4 +:10dff000cda0400f000000001800c28f000042803a +:10e000003f8082a33f8082832120400000a0023c09 +:10e010006c14452400040624213800008d2c400f88 +:10e0200000000000029d023c946142242120400037 :10e030005f0005240c3c400f00000000029d023ce4 -:10e04000305d442439a3400f000000000100042487 -:10e05000010005246092400f000000001e39400bb3 -:10e0600000000000368082833000c3831e006214eb -:10e070000000000000a0023cc01b44242128000036 -:10e08000c800062423a0400f000000001800c28f23 -:10e0900000004280358082a33580828321204000a9 -:10e0a00000a0023cc01b4524c80006242138000003 +:10e04000f4614424e3a3400f000000000100042415 +:10e0500001000524d792400f000000001e39400b3c +:10e0600000000000428082833000c3831e006214df +:10e070000000000000a0023ca81c4424212800004d +:10e08000c8000624cda0400f000000001800c28f79 +:10e0900000004280418082a3418082832120400091 +:10e0a00000a0023ca81c4524c8000624213800001a :10e0b0008d2c400f00000000010004240100052405 -:10e0c0006092400f00000000029d023c4c5d422423 +:10e0c000d792400f00000000029d023c10624224e3 :10e0d000212040000f000524ec3c400f0000000010 -:10e0e0001e39400b00000000388082833000c3835b -:10e0f000180062140000000000a0023c840f4424b9 -:10e10000212800000004062423a0400f0000000086 -:10e110001800c28f00004280378082a3378082833c -:10e120002120400000a0023c840f45240004062466 +:10e0e0001e39400b00000000448082833000c3834f +:10e0f000180062140000000000a0023c6c104424d0 +:10e100002128000000040624cda0400f00000000dc +:10e110001800c28f00004280438082a34380828324 +:10e120002120400000a0023c6c104524000406247d :10e13000213800008d2c400f00000000029d023ca1 -:10e140005c5d442439a3400f000000001e39400be1 -:10e15000000000003a8082833000c383c200621452 -:10e160000000000000a0023c841744242128000085 -:10e170000004062423a0400f000000001800c28ff6 -:10e1800000004280398082a33980828321204000b0 -:10e1900000a0023c84174524000406242138000016 -:10e1a0008d2c400f00000000029d023c785d44244d -:10e1b00039a3400f000000001e39400b0000000092 -:10e1c0003000c283029d033c945d642421284000fa -:10e1d0004aa3400f000000001e39400b0000000061 +:10e1400020624424e3a3400f000000001e39400b6e +:10e1500000000000468082833000c383c200621446 +:10e160000000000000a0023c6c184424212800009c +:10e1700000040624cda0400f000000001800c28f4c +:10e1800000004280458082a3458082832120400098 +:10e1900000a0023c6c18452400040624213800002d +:10e1a0008d2c400f00000000029d023c3c62442484 +:10e1b000e3a3400f000000001e39400b00000000e8 +:10e1c0003000c283029d033c586264242128400031 +:10e1d000f4a3400f000000001e39400b00000000b7 :10e1e0003800c28f1c00c2af1c00c28f0000428cde :10e1f00051004010000000001c00c28f0400428447 -:10e200004d00401800000000338082833000c3833b -:10e21000120062140000000033808283212040003d -:10e2200000a0023c84134524000406242138000089 +:10e200004d004018000000003f8082833000c3832f +:10e2100012006214000000003f8082832120400031 +:10e2200000a0023c6c1445240004062421380000a0 :10e230008d2c400f000000001c00c28f040042849f -:10e2400000a0033c8413642421284000a360400ff5 -:10e2500000000000cb38400b0000000035808283b6 -:10e260003000c3830b0062140000000035808283fd -:10e270002120400000a0023cc01b4524c800062409 +:10e2400000a0033c6c146424212840000d61400fa1 +:10e2500000000000cb38400b0000000041808283aa +:10e260003000c3830b0062140000000041808283f1 +:10e270002120400000a0023ca81c4524c800062420 :10e28000213800008d2c400f00000000cb38400bdf -:10e2900000000000378082833000c3830b006214cb -:10e2a00000000000378082832120400000a0023c53 -:10e2b000840f452400040624213800008d2c400fd3 -:10e2c00000000000cb38400b000000003980828342 -:10e2d0003000c3831500621400000000398082837f -:10e2e0002120400000a0023c84174524000406249d +:10e2900000000000438082833000c3830b006214bf +:10e2a00000000000438082832120400000a0023c47 +:10e2b0006c10452400040624213800008d2c400fea +:10e2c00000000000cb38400b000000004580828336 +:10e2d0003000c38315006214000000004580828373 +:10e2e0002120400000a0023c6c18452400040624b4 :10e2f000213800008d2c400f00000000030040106a :10e3000000000000010002242000c2a31c00c28ff4 :10e310000000438c1c00c28f040042842120600056 -:10e3200021284000406c400f000000000000000069 -:10e330001e39400b00000000338082833000c3830d -:10e34000110062140000000033808283212040000d -:10e3500048a4400f00000000ffff0224338082a386 -:10e36000029d023cb05d442439a3400f0000000030 -:10e3700001000424212800006092400f00000000ea -:10e380001e39400b00000000358082833000c383bb -:10e390000d006214000000003580828321204000bf -:10e3a00048a4400f00000000ffff0224358082a334 -:10e3b00001000424212800006092400f00000000aa -:10e3c0001e39400b00000000378082833000c38379 -:10e3d0000d0062140000000037808283212040007d -:10e3e00048a4400f00000000ffff0224378082a3f2 -:10e3f000029d023cd05d442439a3400f0000000080 -:10e400001e39400b00000000398082833000c38336 -:10e41000180062140000000039808283212040002f -:10e4200048a4400f00000000ffff0224398082a3af -:10e43000029d023cec5d442439a3400f0000000023 +:10e3200021284000aa6c400f0000000000000000ff +:10e330001e39400b000000003f8082833000c38301 +:10e3400011006214000000003f8082832120400001 +:10e35000f2a4400f00000000ffff02243f8082a3d0 +:10e36000029d023c74624424e3a3400f00000000bd +:10e370000100042421280000d792400f0000000073 +:10e380001e39400b00000000418082833000c383af +:10e390000d006214000000004180828321204000b3 +:10e3a000f2a4400f00000000ffff0224418082a37e +:10e3b0000100042421280000d792400f0000000033 +:10e3c0001e39400b00000000438082833000c3836d +:10e3d0000d00621400000000438082832120400071 +:10e3e000f2a4400f00000000ffff0224438082a33c +:10e3f000029d023c94624424e3a3400f000000000d +:10e400001e39400b00000000458082833000c3832a +:10e410001800621400000000458082832120400023 +:10e42000f2a4400f00000000ffff0224458082a3f9 +:10e43000029d023cb0624424e3a3400f00000000b0 :10e440006141400f000000001e39400b0000000039 :10e45000000000001e39400b00000000000000001a :10e460001e39400b00000000000000001e39400b68 @@ -2536,35 +2536,35 @@ :10e6d000000000000b000324300043100000000085 :10e6e0002c00032456004314000000003400c28fa5 :10e6f0001800c2af1800c28f00004390010002242e -:10e700000900621400000000029d023c0c5e4424db -:10e7100039a3400f0000000001000224c48082a33e +:10e700000900621400000000029d023cd062442413 +:10e71000e3a3400f0000000001000224088182a34f :10e72000143a400b000000001800c28f0000429015 -:10e730004600401400000000029d023c205e44247c -:10e7400039a3400f00000000b48080af0200022413 -:10e75000c48082a3613b400f000000002120000024 -:10e76000212800006092400f00000000ffff0224fb -:10e77000648182af143a400b0000000001000224c3 -:10e78000b48082af00a0023c583e4424e92d400fe3 +:10e730004600401400000000029d023ce4624424b4 +:10e74000e3a3400f00000000f88080af0200022425 +:10e75000088182a3613b400f0000000021200000df +:10e7600021280000d792400f00000000ffff022484 +:10e77000708182af143a400b0000000001000224b7 +:10e78000f88082af00a0023c5c3e4424e92d400f9b :10e7900000000000143a400b000000003400c28f5b -:10e7a0001c00c2af029d023c345e442439a3400fda +:10e7a0001c00c2af029d023cf8624424e3a3400f68 :10e7b000000000001c00c28f63004290170040144c :10e7c000000000001c00c28f218040001c00c28f8e -:10e7d00021204000a19c400f00000000ff004230bb +:10e7d000212040004a9d400f00000000ff00423011 :10e7e000212840001c00c28f620042902118400086 :10e7f0001c00c28f21004224ff0004241000a4af9b :10e80000212000022130600021384000531f400fba :10e8100000000000143a400b00000000029d023c82 -:10e820005c5e442439a3400f00000000143a400b02 +:10e8200020634424e3a3400f00000000143a400b8f :10e830000000000000000000143a400b000000003f :10e8400000000000143a400b00000000000000002f :10e8500021e8c0032c00bf8f2800be8f2400b08f9a :10e860003000bd270800e00300000000b0ffbd2716 -:10e870004c00bfaf4800beaf21f0a003bc8080af0a -:10e8800005000424010005242e76400f000000003e -:10e89000ffff0224648182af9b64400f00000000f0 +:10e870004c00bfaf4800beaf21f0a003008180afc5 +:10e8800005000424010005249876400f00000000d4 +:10e89000ffff0224708182af0565400f0000000079 :10e8a00021184000010002244b0062140000000007 :10e8b0004000c22721204000080005240c00062447 -:10e8c0004d65400f000000005300401000000000a4 +:10e8c000b765400f0000000053004010000000003a :10e8d0004000c2931800c2a34100c2931900c2a312 :10e8e0004200c2931a00c2a34300c2931b00c2a3fa :10e8f0004400c2931c00c2a34500c2931d00c2a3e2 @@ -2578,227 +2578,227 @@ :10e970001e00c383ffff0224270062140000000072 :10e980001f00c383ffff0224230062140000000065 :10e99000c0ff02241800c2a3a8ff02241900c2a3ca -:10e9a0001e0002241a00c2a37d0002241b00c2a381 +:10e9a0001e0002241a00c2a37f0002241b00c2a37f :10e9b000c0ff02241c00c2a3a8ff02241d00c2a3a2 :10e9c0001e0002241e00c2a3010002241f00c2a3d5 :10e9d000863a400b00000000c0ff02241800c2a3ca :10e9e000a8ff02241900c2a31e0002241a00c2a319 -:10e9f0007d0002241b00c2a3c0ff02241c00c2a38e +:10e9f0007f0002241b00c2a3c0ff02241c00c2a38c :10ea0000a8ff02241d00c2a31e0002241e00c2a3f0 -:10ea1000010002241f00c2a300a0023cac1b44243e -:10ea2000212800001400062423a0400f000000004d +:10ea1000010002241f00c2a300a0023c941c442455 +:10ea20002128000014000624cda0400f00000000a3 :10ea30001b00c28300160200211840001a00c28386 :10ea40000014020021204000ff00023c241082003c :10ea5000251862001900c28300120200ffff423035 :10ea6000251862001800c283ff004230251862009a -:10ea700000a0023cac1b43ac00a0023cac1b4224f7 +:10ea700000a0023c941c43ac00a0023c941c422425 :10ea80000808033c08086334080043ac1f00c28335 :10ea900000160200211840001e00c283001402006c :10eaa00021204000ff00023c241082002518620053 :10eab0001d00c28300120200ffff423025186200d1 :10eac0001c00c283ff0042302518620000a0023cf7 -:10ead000ac1b4224040043ac00a0023cac1b42240b +:10ead000941c4224040043ac00a0023c941c422439 :10eae000ff00033cffff63340c0043ac2400c2274b -:10eaf00021204000212800001800062423a0400ff8 +:10eaf000212040002128000018000624cda0400f4e :10eb000000000000019d023c98e642242400c2afb0 :10eb10002400c227212040005f19400f00000000a0 :10eb20002000c2a32000c2830700401000000000a4 -:10eb3000c08080af03000224c48082a321100000a3 -:10eb4000363b400b0000000001000224c08082af71 -:10eb500002000224c48082a3fc28400f00000000b1 +:10eb3000048180af03000224088182a32110000019 +:10eb4000363b400b0000000001000224048182af2c +:10eb500002000224088182a3fc28400f000000006c :10eb6000019d023cecdd4424019d023c54dd452422 -:10eb70002f29400f000000006881842760818527cd -:10eb8000f422400f000000006081829304004014d2 -:10eb9000000000002c8084271320400f000000009c -:10eba0002c8084270f23400f0000000000a0023caf -:10ebb000483e4224212040002c8085272439400fe4 -:10ebc0000000000000a0023c003e44242c80852769 +:10eb70002f29400f00000000748184276c818527b5 +:10eb8000f422400f000000006c81829304004014c6 +:10eb900000000000388084271320400f0000000090 +:10eba000388084270f23400f0000000000a0023ca3 +:10ebb0004c3e422421204000388085272439400fd4 +:10ebc0000000000000a0023c043e44243880852759 :10ebd0002439400f00000000ff0002241000a2af03 -:10ebe000029d023c785e44241100052402000624a4 -:10ebf000029d023c8c5e4724531f400f0000000022 -:10ec00000500401000000000029d023c985e442474 -:10ec10004aa3400f000000003c00c2272120400012 -:10ec20004092400f00000000212000000100052458 -:10ec30004a92400f00000000010004240100052456 -:10ec40004a92400f00000000020004240100052445 -:10ec50004a92400f00000000030004242128000015 -:10ec60004a92400f00000000040004242128000004 -:10ec70004a92400f000000002120000021280000df -:10ec80006092400f000000000100042421280000d1 -:10ec90006092400f000000000200042421280000c0 -:10eca0006092400f000000000300042421280000af -:10ecb0006092400f0000000004000424212800009e -:10ecc0006092400f00000000050004248813052412 -:10ecd0002e76400f0000000021e8c0034c00bf8fdb +:10ebe000029d023c3c6344241100052402000624db +:10ebf000029d023c50634724531f400f0000000059 +:10ec00000500401000000000029d023c5c634424ab +:10ec1000f4a3400f000000003c00c2272120400068 +:10ec2000b792400f000000002120000001000524e1 +:10ec3000c192400f000000000100042401000524df +:10ec4000c192400f000000000200042401000524ce +:10ec5000c192400f0000000003000424212800009e +:10ec6000c192400f0000000004000424212800008d +:10ec7000c192400f00000000212000002128000068 +:10ec8000d792400f0000000001000424212800005a +:10ec9000d792400f00000000020004242128000049 +:10eca000d792400f00000000030004242128000038 +:10ecb000d792400f00000000040004242128000027 +:10ecc000d792400f000000000500042410270524ff +:10ecd0009876400f0000000021e8c0034c00bf8f71 :10ece0004800be8f5000bd270800e0030000000070 :10ecf000e0ffbd271c00bfaf1800beaf21f0a0038e :10ed0000613b400f000000001829400f0000000088 :10ed10000020400f000000001000c227212040000a :10ed20007619400f0000000088bf033c2061628c10 :10ed30008410027c206162ac88bf033c2061628c3d -:10ed40000421027c206162acc08080afb48080afbf +:10ed40000421027c206162ac048180aff88080af36 :10ed500088bf033c2061628c010004248431827ce2 -:10ed6000206162acc48080a30100022421e8c003ba +:10ed6000206162ac088180a30100022421e8c00375 :10ed70001c00bf8f1800be8f2000bd270800e003d5 :10ed800000000000e8ffbd271400bfaf1000beafb9 -:10ed900021f0a003bc8080af34808283212040001a -:10eda00048a4400f0000000033808383ffff02244b -:10edb00005006210000000003380828321204000a3 -:10edc00048a4400f000000003880828321204000ca -:10edd00048a4400f0000000037808383ffff022417 -:10ede000050062100000000037808283212040006f -:10edf00048a4400f0000000036808283212040009c -:10ee000048a4400f0000000035808383ffff0224e8 -:10ee10000500621000000000358082832120400040 -:10ee200048a4400f000000003a8082832120400067 -:10ee300048a4400f0000000039808383ffff0224b4 -:10ee4000050062100000000039808283212040000c -:10ee500048a4400f0000000021e8c0031400bf8f49 +:10ed900021f0a003008180af4080828321204000c9 +:10eda000f2a4400f000000003f808383ffff022495 +:10edb00005006210000000003f8082832120400097 +:10edc000f2a4400f00000000448082832120400014 +:10edd000f2a4400f0000000043808383ffff022461 +:10ede0000500621000000000438082832120400063 +:10edf000f2a4400f000000004280828321204000e6 +:10ee0000f2a4400f0000000041808383ffff022432 +:10ee10000500621000000000418082832120400034 +:10ee2000f2a4400f000000004680828321204000b1 +:10ee3000f2a4400f0000000045808383ffff0224fe +:10ee40000500621000000000458082832120400000 +:10ee5000f2a4400f0000000021e8c0031400bf8f9f :10ee60001000be8f1800bd270800e003000000005e -:10ee7000f8ffbd270400beaf21f0a003c480828349 +:10ee7000f8ffbd270400beaf21f0a0030881828304 :10ee800021e8c0030400be8f0800bd270800e0038e :10ee900000000000e0ffbd271c00bfaf1800beafa0 -:10eea00021f0a003c080828f2b00401000000000e2 -:10eeb000c480838302000224170062140000000053 -:10eec000b480828f14004014000000000500042468 -:10eed0004175400f000000000f00401000000000ce -:10eee000ff0002241000a2af029d023c785e442481 -:10eef0001100052402000624029d023c8c5e47247a -:10ef0000531f400f0000000005000424881305244f -:10ef10002e76400f00000000de19400f00000000b8 -:10ef2000b480828f0d00401000000000bc80828ff2 +:10eea00021f0a0030481828f2b004010000000009d +:10eeb000088183830200022417006214000000000e +:10eec000f880828f14004014000000000500042424 +:10eed000ab75400f000000000f0040100000000064 +:10eee000ff0002241000a2af029d023c3c634424b8 +:10eef0001100052402000624029d023c50634724b1 +:10ef0000531f400f000000000500042410270524b3 +:10ef10009876400f00000000de19400f000000004e +:10ef2000f880828f0d004010000000000081828f69 :10ef30000a00401400000000dd3b400f000000000c -:10ef4000bd3c400f0000000001000224bc8082afe5 +:10ef4000bd3c400f0000000001000224008182afa0 :10ef5000d73b400b000000000000000021e8c00388 :10ef60001c00bf8f1800be8f2000bd270800e003e3 :10ef700000000000d0ffbd272c00bfaf2800beafaf :10ef800021f0a00302000424010005242130000028 -:10ef90005329400f00000000348082a35500022452 -:10efa0001000c2a7348082831a00400400000000d1 +:10ef90005329400f00000000408082a35500022446 +:10efa0001000c2a7408082831a00400400000000c5 :10efb000020002241400c2a71000c297001202002f :10efc000201e027c1000c29702120200ffff423096 :10efd0002016027c251062002016027cffff4230c2 -:10efe0001600c2a71800c0af3480828321184000e9 +:10efe0001600c2a71800c0af4080828321184000dd :10eff0001400c227212060002128400010000624b0 :10f00000232a400f0000000001000224063c400bb0 :10f01000000000002110000021e8c0032c00bf8f79 :10f020002800be8f3000bd270800e003000000006c :10f03000e8ffbd271400bfaf1000beaf21f0a00352 -:10f040001800c4af1c00c5af33808383ffff0224c8 -:10f0500013006210000000003380828321184000fa +:10f040001800c4af1c00c5af3f808383ffff0224bc +:10f0500013006210000000003f80828321184000ee :10f060001c00c28fffff4230212060001800c58fb6 :10f070002130400021380000a42b400f0000000088 -:10f08000338082832120400000a0023c8413452469 +:10f080003f8082832120400000a0023c6c14452474 :10f0900000040624213800008d2c400f00000000e1 :10f0a00021e8c0031400bf8f1000be8f1800bd27d9 :10f0b0000800e00300000000e8ffbd271400bfaf18 :10f0c0001000beaf21f0a003211080001800c2a3e1 -:10f0d00033808383ffff02241000621000000000d1 -:10f0e00033808283212040001800c52701000624b8 -:10f0f00021380000a42b400f0000000033808283e1 -:10f100002120400000a0023c841345240004062472 +:10f0d0003f808383ffff02241000621000000000c5 +:10f0e0003f808283212040001800c52701000624ac +:10f0f00021380000a42b400f000000003f808283d5 +:10f100002120400000a0023c6c1445240004062489 :10f11000213800008d2c400f0000000021e8c003c2 :10f120001400bf8f1000be8f1800bd270800e00339 :10f1300000000000d0ffbd272c00bfaf2800beafed :10f1400021f0a00302000424010005242130000066 -:10f150005329400f00000000388082a3560002248b -:10f160001000c2a7388082831a004004000000000b +:10f150005329400f00000000448082a3560002247f +:10f160001000c2a7448082831a00400400000000ff :10f17000020002241400c2a71000c297001202006d :10f18000201e027c1000c29702120200ffff4230d4 :10f190002016027c251062002016027cffff423000 -:10f1a0001600c2a71800c0af388082832118400023 +:10f1a0001600c2a71800c0af448082832118400017 :10f1b0001400c227212060002128400010000624ee :10f1c000232a400f0000000001000224763c400b7f :10f1d000000000002110000021e8c0032c00bf8fb8 :10f1e0002800be8f3000bd270800e00300000000ab :10f1f000e8ffbd271400bfaf1000beaf21f0a00391 -:10f200001800c4af1c00c5af37808383ffff022402 -:10f210001300621000000000378082832118400034 +:10f200001800c4af1c00c5af43808383ffff0224f6 +:10f210001300621000000000438082832118400028 :10f220001c00c28fffff4230212060001800c58ff4 :10f230002130400021380000a42b400f00000000c6 -:10f24000378082832120400000a0023c84134524a3 +:10f24000438082832120400000a0023c6c144524ae :10f2500000040624213800008d2c400f000000001f :10f2600021e8c0031400bf8f1000be8f1800bd2717 :10f270000800e00300000000e8ffbd271400bfaf56 :10f280001000beaf21f0a003211080001800c2a31f -:10f2900037808383ffff022410006210000000000b -:10f2a00037808283212040001800c52701000624f2 -:10f2b00021380000a42b400f00000000378082831b -:10f2c0002120400000a0023c8413452400040624b1 +:10f2900043808383ffff02241000621000000000ff +:10f2a00043808283212040001800c52701000624e6 +:10f2b00021380000a42b400f00000000438082830f +:10f2c0002120400000a0023c6c14452400040624c8 :10f2d000213800008d2c400f0000000021e8c00301 :10f2e0001400bf8f1000be8f1800bd270800e00378 :10f2f00000000000d0ffbd272c00bfaf2800beaf2c :10f3000021f0a003020004240100052421300000a4 -:10f310005329400f00000000368082a357000224ca -:10f320001000c2a7368082831a004004000000004b +:10f310005329400f00000000428082a357000224be +:10f320001000c2a7428082831a004004000000003f :10f33000020002241400c2a71000c29700120200ab :10f34000201e027c1000c29702120200ffff423012 :10f350002016027c251062002016027cffff42303e -:10f360001600c2a71800c0af368082832118400063 +:10f360001600c2a71800c0af428082832118400057 :10f370001400c2272120600021284000100006242c :10f38000232a400f0000000001000224e63c400b4d :10f39000000000002110000021e8c0032c00bf8ff6 :10f3a0002800be8f3000bd270800e00300000000e9 :10f3b000e8ffbd271400bfaf1000beaf21f0a003cf -:10f3c0001800c4af1c00c5af3580828321184000ef +:10f3c0001800c4af1c00c5af4180828321184000e3 :10f3d0001c00c28fffff4230212060001800c58f43 :10f3e0002130400021380000a42b400f0000000015 -:10f3f000358082832120400000a0023cc01b4524b0 +:10f3f000418082832120400000a0023ca81c4524bb :10f40000c8000624213800008d2c400f00000000a9 :10f4100021e8c0031400bf8f1000be8f1800bd2765 :10f420000800e00300000000e8ffbd271400bfafa4 :10f430001000beaf21f0a003211080001800c2a36d -:10f4400035808383ffff022410006210000000005b -:10f4500035808283212040001800c5270100062442 -:10f4600021380000a42b400f00000000358082836b -:10f470002120400000a0023cc01b4524c8000624f7 +:10f4400041808383ffff022410006210000000004f +:10f4500041808283212040001800c5270100062436 +:10f4600021380000a42b400f00000000418082835f +:10f470002120400000a0023ca81c4524c80006240e :10f48000213800008d2c400f0000000021e8c0034f :10f490001400bf8f1000be8f1800bd270800e003c6 :10f4a00000000000f8ffbd270400beaf21f0a0035c -:10f4b00035808383ffff02240400621400000000f3 +:10f4b00041808383ffff02240400621400000000e7 :10f4c00021100000343d400b000000000100022428 :10f4d00021e8c0030400be8f0800bd270800e00338 :10f4e00000000000d0ffbd272c00bfaf2800beaf3a :10f4f00021f0a003020004240100052421300000b3 -:10f500005329400f000000003a8082a363000224c8 -:10f510001000c2a73a8082831a0040040000000055 +:10f500005329400f00000000468082a363000224bc +:10f510001000c2a7468082831a0040040000000049 :10f52000020002241400c2a71000c29700120200b9 :10f53000201e027c1000c29702120200ffff423020 :10f540002016027c251062002016027cffff42304c -:10f550001600c2a71800c0af3a808283211840006d +:10f550001600c2a71800c0af468082832118400061 :10f560001400c2272120600021284000100006243a :10f57000232a400f0000000001000224623d400bde :10f58000000000002110000021e8c0032c00bf8f04 :10f590002800be8f3000bd270800e00300000000f7 :10f5a000e8ffbd271400bfaf1000beaf21f0a003dd -:10f5b0003a8082832120400048a4400f00000000d0 -:10f5c000ffff02243a8082a339808383ffff022455 -:10f5d0000700621000000000398082832120400073 -:10f5e00048a4400f00000000ffff0224398082a3de +:10f5b0004680828321204000f2a4400f000000001a +:10f5c000ffff0224468082a345808383ffff02243d +:10f5d0000700621000000000458082832120400067 +:10f5e000f2a4400f00000000ffff0224458082a328 :10f5f00021e8c0031400bf8f1000be8f1800bd2784 :10f600000800e00300000000e8ffbd271400bfafc2 :10f610001000beaf21f0a0031800c4af1c00c5af9e -:10f6200039808283211840001c00c28fffff4230c6 +:10f6200045808283211840001c00c28fffff4230ba :10f63000212060001800c58f2130400021380000d3 -:10f64000a42b400f0000000039808283212040005d -:10f6500000a0023cc01b4524c8000624213800003d +:10f64000a42b400f00000000458082832120400051 +:10f6500000a0023ca81c4524c80006242138000054 :10f660008d2c400f0000000021e8c0031400bf8f64 :10f670001000be8f1800bd270800e0030000000046 :10f68000e8ffbd271400bfaf1000beaf21f0a003fc -:10f69000211080001800c2a339808383ffff022459 -:10f6a0001000621000000000398082832120400099 +:10f69000211080001800c2a345808383ffff02244d +:10f6a000100062100000000045808283212040008d :10f6b0001800c5270100062421380000a42b400fa4 -:10f6c00000000000398082832120400000a0023c1d -:10f6d000c01b4524c8000624213800008d2c400f93 +:10f6c00000000000458082832120400000a0023c11 +:10f6d000a81c4524c8000624213800008d2c400faa :10f6e0000000000021e8c0031400bf8f1000be8f8f :10f6f0001800bd270800e00300000000f8ffbd2748 -:10f700000400beaf21f0a00339808383ffff0224f1 +:10f700000400beaf21f0a00345808383ffff0224e5 :10f71000040062140000000021100000ca3d400bec :10f72000000000000100022421e8c0030400be8f95 :10f730000800bd270800e00300000000e8ffbd2727 -:10f740001400bfaf1000beaf21f0a003e06a400f6d +:10f740001400bfaf1000beaf21f0a0034a6b400f02 :10f75000000000003a41400f000000009a42400fb4 -:10f76000000000002120000021280000ef94400f3d +:10f760000000000021200000212800002096400f0a :10f77000000000000100022421e8c0031400bf8f34 :10f780001000be8f1800bd270800e0030000000035 :10f79000e8ffbd271400bfaf1000beaf21f0a003eb @@ -2806,9 +2806,9 @@ :10f7b00021e8c0031400bf8f1000be8f1800bd27c2 :10f7c0000800e00300000000e0ffbd271c00bfaf01 :10f7d0001800beaf21f0a003211080002400c5afa7 -:10f7e0002000c2a3e76c400f000000001000c2af71 +:10f7e0002000c2a3516d400f000000001000c2af06 :10f7f0002400c28f0b00401400000000029d023c58 -:10f800003c02442439a3400f0000000001000424fe +:10f80000e4034424e3a3400f0000000001000424ab :10f8100007000524b53e400f00000000953e400b58 :10f82000000000002000c2831b00432c85006010f4 :10f830000000000080180200019d023c50f84224a4 @@ -2820,41 +2820,41 @@ :10f89000acf9009d50fa009dd4f9009d50fa009dee :10f8a00050fa009d50fa009d50fa009d50fa009dbc :10f8b000f4f9009d50fa009d1cfa009d029d023c47 -:10f8c0006c02442439a3400f000000001000c28fd6 +:10f8c00014044424e3a3400f000000001000c28f82 :10f8d00001000324000043a00300042401000524c8 -:10f8e000746c400f00000000953e400b00000000cb -:10f8f000029d023c8c02442439a3400f000000000a +:10f8e000de6c400f00000000953e400b0000000061 +:10f8f000029d023c34044424e3a3400f00000000b6 :10f900000100042402000524b53e400f0000000061 -:10f91000953e400b00000000029d023cb8024424ca -:10f9200039a3400f00000000010004240300052457 +:10f91000953e400b00000000029d023c6004442420 +:10f92000e3a3400f000000000100042403000524ad :10f93000b53e400f00000000953e400b0000000067 -:10f94000029d023cd802442439a3400f000000006d -:10f95000cc81828f2014027c21204000c06d400f9a +:10f94000029d023c80044424e3a3400f0000000019 +:10f95000d881828f2014027c212040002a6e400f23 :10f9600000000000953e400b000000000100042450 :10f9700004000524b53e400f00000000953e400bfa -:10f9800000000000029d023cf802442439a3400f0d +:10f9800000000000029d023ca0044424e3a3400fb9 :10f99000000000000100042405000524b53e400fce :10f9a00000000000953e400b00000000029d023c5c -:10f9b0001c03442439a3400f00000000010004246c +:10f9b000c4044424e3a3400f000000000100042419 :10f9c00006000524b53e400f00000000953e400ba8 -:10f9d00000000000029d023c4003442439a3400f74 +:10f9d00000000000029d023ce8044424e3a3400f21 :10f9e000000000000100042401000524b53e400f82 -:10f9f00000000000029d023c6403442439a3400f30 +:10f9f00000000000029d023c0c054424e3a3400fdc :10fa0000000000000100042408000524b53e400f5a :10fa100000000000953e400b00000000029d023ceb -:10fa20006403442439a3400f0000000001000424b3 +:10fa20000c054424e3a3400f00000000010004245f :10fa300009000524b53e400f00000000953e400b34 :10fa40000000000000000000953e400b0000000098 :10fa50000000000021e8c0031c00bf8f1800be8f0b :10fa60002000bd270800e00300000000e8ffbd27dc :10fa70001400bfaf1000beaf21f0a0032110800022 :10fa80001c00c5af2000c6af1800c2a31800c28377 -:10fa9000029d033c94036424212840001c00c68f6f -:10faa0002000c78f4aa3400f00000000010004247b +:10fa9000029d033c3c056424212840001c00c68fc5 +:10faa0002000c78ff4a3400f0000000001000424d1 :10fab00007000524b53e400f0000000021e8c00308 :10fac0001400bf8f1000be8f1800bd270800e00390 :10fad00000000000b8ffbd274400bfaf4000beaf2c -:10fae00021f0a0034800c4af4c00c5afcc81828f89 +:10fae00021f0a0034800c4af4c00c5afd881828f7d :10faf0000600432c7602601000000000801802000f :10fb0000019d023c18fb4224211062000000428c3f :10fb1000080040000000000030fb009d94fb009da9 @@ -2862,8 +2862,8 @@ :10fb30004800c28f010003240800431000000000a9 :10fb40000200032410004310000000005302401480 :10fb500000000000e33e400b000000004c00c28f9c -:10fb6000070040140000000001000224cc8182af95 -:10fb7000029d023ce403442439a3400f000000002e +:10fb6000070040140000000001000224d88182af89 +:10fb7000029d023c8c054424e3a3400f00000000da :10fb8000e33e400b00000000000000003441400b49 :10fb9000000000004800c28f010003240800431049 :10fba0000000000002000324cc004310000000000d @@ -2874,49 +2874,49 @@ :10fbf000bcfe009da4fc009d18fc009d4cfc009ddb :10fc0000bcfe009dbcfe009dc4fc009dbcfe009d92 :10fc10006cfd009dacfd009dfa41400f000000000e -:10fc200005000424026d400f0000000002000224c1 -:10fc3000cc8182af029d023c1404442439a3400fbe -:10fc400000000000b53f400b00000000b481828f2f -:10fc50000600401400000000020004242b6d400f39 +:10fc2000050004246c6d400f000000000200022457 +:10fc3000d88182af029d023cbc054424e3a3400f5f +:10fc400000000000b53f400b00000000c081828f23 +:10fc5000060040140000000002000424956d400fcf :10fc600000000000273f400b0000000001000424ba -:10fc70002b6d400f000000000b000424026d400fac -:10fc80000000000003000224cc8182af029d023cf0 -:10fc90004804442439a3400f00000000b53f400b46 -:10fca00000000000029d023c7c04442439a3400f64 +:10fc7000956d400f000000000b0004246c6d400fd8 +:10fc80000000000003000224d88182af029d023ce4 +:10fc9000f0054424e3a3400f00000000b53f400bf3 +:10fca00000000000029d023c24064424e3a3400f10 :10fcb000000000003a41400f00000000b53f400b3b :10fcc000000000009a42400f000000002118400090 :10fcd000010002241c006214000000001100042432 -:10fce000026d400f00000000029d023ca804442465 -:10fcf00039a3400f00000000010002242000c2a32d +:10fce0006c6d400f00000000029d023c5006442451 +:10fcf000e3a3400f00000000010002242000c2a383 :10fd0000a8ff02242100c2a32000c2272120400016 -:10fd100002000524213000001067400f00000000a1 -:10fd200064000424e476400f000000003c3b400fd8 -:10fd30000000000064000424e476400f000000008e -:10fd400077a1400f0000000011000424176d400f40 -:10fd500000000000029d023cd404442439a3400f5b +:10fd100002000524213000007a67400f0000000037 +:10fd2000640004244e77400f000000003c3b400f6d +:10fd300000000000640004244e77400f0000000023 +:10fd400021a2400f0000000011000424816d400f2b +:10fd500000000000029d023c7c064424e3a3400f07 :10fd600000000000b53f400b000000009a42400f29 :10fd70000000000021184000010002240600621467 -:10fd80000000000001000424f26d400f000000009c -:10fd9000693f400b0000000021200000f26d400f81 +:10fd800000000000010004245c6e400f0000000031 +:10fd9000693f400b00000000212000005c6e400f16 :10fda00000000000b53f400b000000002400c22707 -:10fdb00021204000ff0005241500062423a0400f49 +:10fdb00021204000ff00052415000624cda0400f9f :10fdc000000000009a42400f00000000211840008f :10fdd0000100022404006210000000002400c0a3ff :10fde000a83f400b00000000010002242400c2a331 -:10fdf0002400c2270100432400a0023cc404428c1a +:10fdf0002400c2270100432400a0023cac05428c31 :10fe00002120600021284000a143400f0000000095 -:10fe10002400c2270500432400a0023cc40442245d +:10fe10002400c2270500432400a0023cac05422474 :10fe20000400428c2120600021284000a143400fa3 :10fe3000000000002400c2270900432400a0023c67 -:10fe4000c40442240800428c212060002128400084 +:10fe4000ac0542240800428c21206000212840009b :10fe5000a143400f000000002400c2270d004324ee -:10fe600000a0023cc40442240c00428c212060000b +:10fe600000a0023cac0542240c00428c2120600022 :10fe700021284000a143400f000000002400c227b9 -:10fe80001100432400a0023cc40442241000428c10 +:10fe80001100432400a0023cac0542241000428c27 :10fe90002120600021284000a143400f0000000005 -:10fea0002400c22721204000150005240b6e400fbe +:10fea0002400c2272120400015000524756e400f54 :10feb00000000000b53f400b000000004c00c28f66 -:10fec000ff00423021204000176d400f000000006d +:10fec000ff00423021204000816d400f0000000003 :10fed00000000000b83f400b0000000000000000e0 :10fee0003441400b000000004800c28f0100032491 :10fef0004300431000000000020003245700431099 @@ -2927,21 +2927,21 @@ :10ff4000fe3f400b00000000020003241500431098 :10ff500000000000030003241d0043100000000007 :10ff6000fe3f400b00000000fe3f400b0000000081 -:10ff7000029d023c1005442439a3400f00000000fc -:10ff800006000424026d400f00000000010002245e -:10ff9000cc8182af01000224b48182affe3f400bce -:10ffa00000000000029d023c5405442439a3400f88 -:10ffb0000000000006000424176d400f0000000040 -:10ffc00001000224cc8182affe3f400b0000000004 -:10ffd000029d023c9805442439a3400f0000000014 -:10ffe00006000424176d400f0000000001000224e9 -:10fff000cc8182af000000001840400b00000000e0 +:10ff7000029d023cb8064424e3a3400f00000000a9 +:10ff8000060004246c6d400f0000000001000224f4 +:10ff9000d88182af01000224c08182affe3f400bb6 +:10ffa00000000000029d023cfc064424e3a3400f35 +:10ffb0000000000006000424816d400f00000000d6 +:10ffc00001000224d88182affe3f400b00000000f8 +:10ffd000029d023c40074424e3a3400f00000000c0 +:10ffe00006000424816d400f00000000010002247f +:10fff000d88182af000000001840400b00000000d4 :020000041d01dc :100000004c00c38f010002240c00621400000000a9 :10001000010004246d41400f00000000029d023cdd -:10002000dc05442439a3400f000000003a41400f92 +:1000200084074424e3a3400f000000003a41400f3e :10003000000000001540400b000000004c00c28f83 -:10004000ff00423021204000176d400f00000000eb +:10004000ff00423021204000816d400f0000000081 :10005000000000001840400b0000000000000000fd :100060003441400b000000004800c28f010003240f :100070003f0043100000000002000324bc004310b6 @@ -2952,13 +2952,13 @@ :1000c0005a40400b000000000200032418004310b7 :1000d0000000000003000324220043100000000081 :1000e0005a40400b000000005a40400b0000000046 -:1000f000dc81828f0100042421284000836d400fa1 -:1001000000000000dc81828f029d033c0c06642409 -:10011000212840004aa3400f00000000dc81828fac -:1001200001004224dc8182af5a40400b00000000f5 -:10013000dc81828f0500042421284000836d400f5c +:1000f000e881828f0100042421284000ed6d400f2b +:1001000000000000e881828f029d033cb407642454 +:1001100021284000f4a3400f00000000e881828ff6 +:1001200001004224e88182af5a40400b00000000e9 +:10013000e881828f0500042421284000ed6d400fe6 :10014000000000003a41400f00000000029d023c08 -:100150004006442439a3400f000000005a40400be1 +:10015000e8074424e3a3400f000000005a40400b8e :100160000000000000000000dd40400b0000000027 :100170004c00c28f04000324110043100000000053 :100180000500432806006010000000000100032461 @@ -2966,48 +2966,48 @@ :1001a000050003244500431000000000070003245d :1001b0003500431000000000d940400b0000000053 :1001c0001800c0af1c00c0af1c00c0af00a0023cb4 -:1001d000942e44247343400f000000001800c2af67 -:1001e00000a0023c982e44247343400f00000000fe -:1001f0001c00c2af00a0023c942e422408004224fe -:10020000b08182afdc81828f211840001800c28f3c -:100210001100621000000000dc81828f04000424c1 -:1002200021284000836d400f00000000dc81828f98 -:10023000029d033c840664241800c58f21304000d1 -:100240004aa3400f000000006343400f000000007d -:10025000a040400b000000001c00c28fa88182afac +:1001d0007c2f44247343400f000000001800c2af7e +:1001e00000a0023c802f44247343400f0000000015 +:1001f0001c00c2af00a0023c7c2f42240800422415 +:10020000bc8182afe881828f211840001800c28f24 +:100210001100621000000000e881828f04000424b5 +:1002200021284000ed6d400f00000000e881828f22 +:10023000029d033c2c0864241800c58f2130400027 +:10024000f4a3400f000000006343400f00000000d3 +:10025000a040400b000000001c00c28fb48182afa0 :10026000010004240742400f00000000029d023cf0 -:10027000e40644241800c58f4aa3400f0000000084 -:10028000da40400b00000000dc81828f0200042471 -:1002900021284000836d400f00000000dc81828f28 -:1002a000029d033c2c076424212840004aa3400ff0 +:100270008c0844241800c58ff4a3400f0000000030 +:10028000da40400b00000000e881828f0200042465 +:1002900021284000ed6d400f00000000e881828fb2 +:1002a000029d033cd408642421284000f4a3400f9d :1002b00000000000da40400b00000000029d023cfc -:1002c0007807442439a3400f000000009a42400ff1 +:1002c00020094424e3a3400f000000009a42400f9d :1002d0000000000021184000010002240a006214fe -:1002e0000000000001000224cc8182af0100042440 -:1002f000d96d400f0000000001000224d88182afb8 -:10030000cc40400b00000000029d023cc00744248a -:1003100039a3400f0000000002000424d96d400ff3 -:10032000000000003a41400f00000000d88180af7b -:10033000da40400b00000000029d023c000844240b -:1003400039a3400f00000000020004240742400fc0 +:1002e0000000000001000224d88182af0100042434 +:1002f000436e400f0000000001000224e48182af41 +:10030000cc40400b00000000029d023c68094424e0 +:10031000e3a3400f0000000002000424436e400fde +:10032000000000003a41400f00000000e48180af6f +:10033000da40400b00000000029d023ca809442462 +:10034000e3a3400f00000000020004240742400f16 :10035000000000003a41400f00000000da40400b6e :100360000000000000000000dd40400b0000000025 :10037000000000003441400b000000004800c28f24 :1003800001000324080043100000000002000324c1 :1003900019004310000000004c0040140000000051 :1003a000ff40400b000000004c00c38f01000224fe -:1003b0000900621400000000029d023c7c044424f9 -:1003c00039a3400f000000003a41400f0000000038 +:1003b0000900621400000000029d023c240644244f +:1003c000e3a3400f000000003a41400f000000008e :1003d000fc40400b000000004c00c28fff00423088 -:1003e00021204000176d400f0000000000000000b9 +:1003e00021204000816d400f00000000000000004f :1003f000ff40400b00000000000000003441400bb3 :10040000000000004800c28f0100032408004310d0 :100410000000000002000324190043100000000047 :100420001a004010000000003441400b00000000a2 :100430004c00c38f01000224090062140000000078 -:10044000029d023c7c04442439a3400f00000000bc +:10044000029d023c24064424e3a3400f0000000068 :100450003a41400f000000001e41400b0000000028 -:100460004c00c28fff00423021204000176d400f2a +:100460004c00c28fff00423021204000816d400fc0 :1004700000000000000000002441400b00000000cc :10048000000000002441400b0000000000000000bc :10049000000000003441400b00000000000000009c @@ -3016,9 +3016,9 @@ :1004c000000000003441400b00000000000000006c :1004d00021e8c0034400bf8f4000be8f4800bd2705 :1004e0000800e00300000000e8ffbd271400bfafd4 -:1004f0001000beaf21f0a003cc8180afd08180afcf -:10050000dc8180afd88180afdc8180afd88180afc3 -:10051000a88180affa41400f000000006343400f04 +:1004f0001000beaf21f0a003d88180afdc8180afb7 +:10050000e88180afe48180afe88180afe48180af93 +:10051000b48180affa41400f000000006343400ff8 :1005200000000000683d400f0000000021e8c0030b :100530001400bf8f1000be8f1800bd270800e00315 :1005400000000000e8ffbd271400bfaf1000beafe1 @@ -3031,70 +3031,70 @@ :1005b00000000000e8ffbd271400bfaf1000beaf71 :1005c00021f0a0031800c4af1800c38f010002245b :1005d0000600621400000000fa41400f0000000015 -:1005e00003000224f441400b00000000c081828f10 +:1005e00003000224f441400b00000000cc81828f04 :1005f0000500432c75006010000000008018020008 :10060000019d023c18064224211062000000428c29 :1006100008004000000000002c06019d9806019d86 -:10062000bc07019da407019db007019dc481828f75 -:100630002120400021280000f765400f0000000045 -:100640000c00401400000000c481828f029d033c16 -:1006500044086424212840004aa3400f0000000001 -:1006600004000224c08182af02000224f441400b46 -:1006700000000000d48180af090004241900052483 -:100680002e76400f0000000001000224c08182afde -:10069000f341400b00000000090004244175400fa5 +:10062000bc07019da407019db007019dd081828f69 +:1006300021204000212800006166400f00000000da +:100640000c00401400000000d081828f029d033c0a +:10065000ec09642421284000f4a3400f00000000ae +:1006600004000224cc8182af02000224f441400b3a +:1006700000000000e08180af090004241900052477 +:100680009876400f0000000001000224cc8182af68 +:10069000f341400b0000000009000424ab75400f3b :1006a00000000000211840000100022446006214ee -:1006b00000000000e764400f00000000210040142b -:1006c00000000000c481838f1f00023c0e006214f2 -:1006d00000000000c481838fd481828f029d043c7e -:1006e0007008842421286000213040004aa3400f74 -:1006f0000000000003000224c08182af0100022438 -:10070000f441400b00000000c481838fd481828fac -:10071000029d043cb0088424212860002130400060 -:100720004aa3400f00000000c481838f0100023cf7 -:1007300021106200c48182afc08180aff341400bc1 -:1007400000000000d481828f280042280c00401451 -:1007500000000000d481828f029d033ce8086424dd -:10076000212840004aa3400f00000000040002249a -:10077000c08182af02000224f441400b000000005f -:1007800009000424190005242e76400f0000000003 -:10079000d481828f01004224d48182aff341400b87 +:1006b000000000005165400f0000000021004014c0 +:1006c00000000000d081838f1f00023c0e006214e6 +:1006d00000000000d081838fe081828f029d043c66 +:1006e000180a84242128600021304000f4a3400f20 +:1006f0000000000003000224cc8182af010002242c +:10070000f441400b00000000d081838fe081828f94 +:10071000029d043c580a84242128600021304000b6 +:10072000f4a3400f00000000d081838f0100023c41 +:1007300021106200d08182afcc8180aff341400ba9 +:1007400000000000e081828f280042280c00401445 +:1007500000000000e081828f029d033c900a642427 +:1007600021284000f4a3400f0000000004000224f0 +:10077000cc8182af02000224f441400b0000000053 +:1007800009000424190005249876400f0000000099 +:10079000e081828f01004224e08182aff341400b6f :1007a0000000000001000224f441400b00000000a2 :1007b00002000224f441400b000000000000000091 :1007c000f341400b00000000000000002110000079 :1007d00021e8c0031400bf8f1000be8f1800bd2792 :1007e0000800e00300000000f8ffbd270400beafd2 -:1007f00021f0a003c08180af1800023cc48182af09 -:10080000d48180afb48180af21e8c0030400be8fe3 +:1007f00021f0a003cc8180af1800023cd08182aff1 +:10080000e08180afc08180af21e8c0030400be8fcb :100810000800bd270800e00300000000e0ffbd273e :100820001c00bfaf1800beaf21f0a0032000c4af72 -:10083000b881828f0600432c7b006010000000000e +:10083000c481828f0600432c7b0060100000000002 :1008400080180200019d023c5c08422421106200d5 :100850000000428c08004000000000007408019d68 :10086000a808019dcc09019d000a019de809019d90 :10087000f409019d2000c28f6400401000000000b8 :100880002000c38f010002246300621400000000f6 -:1008900001000224b88182afac8180af211000003a -:1008a0008c42400b00000000b081828f3c0040145d +:1008900001000224c48182afb88180af2110000022 +:1008a0008c42400b00000000bc81828f3c00401451 :1008b000000000006343400f00000000020002241b -:1008c0008c42400b00000000bc81828f2120400040 -:1008d00001004224bc8182afb081828f000043803e -:1008e00001004224b08182af21286000010006246b -:1008f000bb66400f000000000a004014000000002a -:10090000029d023c3409442439a3400f000000003a -:1009100005000224b88182af020002248c42400b01 +:1008c0008c42400b00000000c881828f2120400034 +:1008d00001004224c88182afbc81828f0000438026 +:1008e00001004224bc8182af21286000010006245f +:1008f0002567400f000000000a00401400000000bf +:10090000029d023cdc0a4424e3a3400f00000000e7 +:1009100005000224c48182af020002248c42400bf5 :10092000000000001000c0af4d42400b000000006e -:1009300000000000e764400f0000000006004014c3 -:1009400000000000ac81828f01004224ac8182afa4 +:10093000000000005165400f000000000600401458 +:1009400000000000b881828f01004224b88182af8c :100950006942400b000000001000c28fc90042280d :1009600001004238ff0042301000c38f01006324b1 :100970001000c3afeeff401000000000029d023cdb -:100980007009442439a3400f000000000500022430 -:10099000b88182af020002248c42400b00000000ac -:1009a00000000000ac81838fa881828f2a10620032 -:1009b000c5ff40140000000002000224b88182af8d +:10098000180b4424e3a3400f0000000005000224dc +:10099000c48182af020002248c42400b00000000a0 +:1009a00000000000b881838fb481828f2a1062001a +:1009b000c5ff40140000000002000224c48182af81 :1009c000211000008c42400b000000002000c28f6c -:1009d0001400401400000000b88180af0100022420 +:1009d0001400401400000000c48180af0100022414 :1009e0008c42400b00000000010002248c42400bae :1009f00000000000020002248c42400b00000000b6 :100a0000000000008a42400b0000000000000000cf @@ -3105,9 +3105,9 @@ :100a500021f0a00321e8c0030400be8f0800bd27d9 :100a60000800e00300000000f0fcbd270c03bfaf4e :100a70000803beaf21f0a0031800023c1000c2af73 -:100a8000ffff02241400c2af029d023cbc094424b3 -:100a900039a3400f000000001000c28f4800c32798 -:100aa0002120600018000524213040004d65400fd2 +:100a8000ffff02241400c2af029d023c640b442409 +:100a9000e3a3400f000000001000c28f4800c327ee +:100aa000212060001800052421304000b765400f68 :100ab000000000004800c227212040007343400f7f :100ac000000000002000c2af4800c22704004224fa :100ad000212040007343400f000000002400c2affb @@ -3117,18 +3117,18 @@ :100b10004800c22710004224212040007343400fa8 :100b2000000000003000c2af4800c2271400422479 :100b3000212040007343400f000000003400c2af8a -:100b400000a0023c2400c38fc40443ac00a0023cbc -:100b5000c40442242800c38f040043ac00a0023c1c -:100b6000c40442242c00c38f080043ac00a0023c04 -:100b7000c40442243000c38f0c0043ac00a0023cec -:100b8000c40442243400c38f100043ac2000c38f40 +:100b400000a0023c2400c38fac0543ac00a0023cd3 +:100b5000ac0542242800c38f040043ac00a0023c33 +:100b6000ac0542242c00c38f080043ac00a0023c1b +:100b7000ac0542243000c38f0c0043ac00a0023c03 +:100b8000ac0542243400c38f100043ac2000c38f57 :100b9000adba023cefbe4234040062100000000017 :100ba000211000005d43400b000000002800c28fb0 :100bb0000400401400000000211000005d43400bc1 :100bc000000000001000c28f180042241000c2afc5 :100bd0001800c0af3800c0af3043400b0000000029 :100be0001000c28f4800c327212060000c0005249c -:100bf000213040004d65400f000000004800c22732 +:100bf00021304000b765400f000000004800c227c8 :100c0000212040007343400f000000003c00c2afb1 :100c10004800c22704004224212040007343400fb3 :100c2000000000004000c2af4800c2270800422474 @@ -3145,8 +3145,8 @@ :100cd000180042341000c2af1c00c0af4d43400b9f :100ce000000000000403c3271000c28f1000c48f4f :100cf000010084241000c4af2120600001000524fd -:100d0000213040004d65400f000000000403c28305 -:100d1000ff0042301400c48f21284000ef94400fa0 +:100d000021304000b765400f000000000403c2839b +:100d1000ff0042301400c48f212840002096400f6d :100d2000000000001400c2af1c00c28f010042246a :100d30001c00c2af1c00c38f2c00c28f2b1062009e :100d4000e8ff4014000000001400c28f27100200ca @@ -3154,9 +3154,9 @@ :100d600000000000010002245d43400b0000000071 :100d70002110000021e8c0030c03bf8f0803be8fc1 :100d80001003bd270800e00300000000f8ffbd27a6 -:100d90000400beaf21f0a003b88180af1800023c70 -:100da000bc8182afc88180afac8180afb08180afa1 -:100db000ac8180af0100022421e8c0030400be8f93 +:100d90000400beaf21f0a003c48180af1800023c64 +:100da000c88182afd48180afb88180afbc8180af71 +:100db000b88180af0100022421e8c0030400be8f87 :100dc0000800bd270800e00300000000f0ffbd2779 :100dd0000c00beaf21f0a0031000c4af1000c28f02 :100de0000400401400000000211000009c43400b50 @@ -3185,151 +3185,151 @@ :100f500021f0a0032800c4af1000c0a32800c28f56 :100f60001400c2afdf43400b00000000000000008f :100f7000df43400b0000000000000000a014042428 -:100f80001400c58fc28a400f000000001400c28ff9 +:100f80001400c58f2c8b400f000000001400c28f8e :100f900011004010000000001800c0af1800c22768 -:100fa000a014042421284000b28a400f0000000051 +:100fa000a0140424212840001c8b400f00000000e6 :100fb0001000c2a31000c283ecff40140000000028 :100fc0001800c38f1400c28febff621400000000f2 :100fd000f743400b0000000000000000211000005b :100fe00021e8c0032400bf8f2000be8f2800bd274a :100ff0000800e00300000000e0ffbd271c00bfafb9 :101000001800beaf21f0a0031000c0af01000424ff -:101010001000c22721284000b28a400f00000000c3 +:101010001000c227212840001c8b400f0000000058 :101020001000c28f020042300a0040100000000091 :101030001000c38ffdff0224241062001000c2af15 -:101040001000c28f0100042421284000c28a400ff2 +:101040001000c28f01000424212840002c8b400f87 :101050000000000021e8c0031c00bf8f1800be8ff5 :101060002000bd270800e00300000000e8ffbd27c6 :101070001400bfaf1000beaf21f0a003060004248f -:10108000db000524c28a400f000000000700042492 -:1010900006000524c28a400f000000000a00042454 -:1010a000c598400f0000000080140424212800008f -:1010b000c28a400f0000000084140424212800008c -:1010c000c28a400f000000000a000424c598400fa7 -:1010d000000000000600042421280000c28a400ffe -:1010e000000000000700042421280000c28a400fed +:10108000db0005242c8b400f000000000700042427 +:10109000060005242c8b400f000000000a000424e9 +:1010a0000094400f00000000801404242128000058 +:1010b0002c8b400f00000000841404242128000021 +:1010c0002c8b400f000000000a0004240094400f05 +:1010d0000000000006000424212800002c8b400f93 +:1010e0000000000007000424212800002c8b400f82 :1010f0000000000021e8c0031400bf8f1000be8f65 :101100001800bd270800e00300000000e0ffbd2735 :101110001c00bfaf1800beaf21f0a0031400c0af89 :101120001000c0a31400c227081404242128400082 -:10113000b28a400f000000001000c2a31000c2835a +:101130001c8b400f000000001000c2a31000c283ef :101140000400401000000000faff02248144400b1c :10115000000000001400c28f000142341400c2af2e -:101160001400c28f0814042421284000c28a400fb2 +:101160001400c28f08140424212840002c8b400f47 :10117000000000001000c2a31000c2830400401051 :1011800000000000faff02248144400b0000000030 -:101190001400c227001a042421284000b28a400ffc +:101190001400c227001a0424212840001c8b400f91 :1011a000000000001000c2a31000c2830400401021 :1011b00000000000faff02248144400b0000000000 :1011c0001400c38f0100023c251062001400c2af5e -:1011d0001400c28f001a042421284000c28a400f44 +:1011d0001400c28f001a0424212840002c8b400fd9 :1011e000000000001000c2a31000c28304004010e1 :1011f00000000000faff02248144400b00000000c0 :101200002110000021e8c0031c00bf8f1800be8f12 :101210002000bd270800e00300000000e0ffbd271c :101220001c00bfaf1800beaf21f0a0031400c0af78 -:101230000c00023c0c00443421280000c28a400ffc +:101230000c00023c0c004434212800002c8b400f91 :10124000000000001000c2a38c100424212800001c -:10125000c28a400f00000000ff0043301000c2931c +:101250002c8b400f00000000ff0043301000c293b1 :1012600021106200ff0042301000c2a30200023cc5 -:10127000ac07443421280000c28a400f000000005f +:10127000ac074434212800002c8b400f00000000f4 :10128000ff0043301000c29321106200ff00423083 :101290001000c2a31400c227181104242128400002 -:1012a000b28a400f00000000ff0043301000c293dc +:1012a0001c8b400f00000000ff0043301000c29371 :1012b00021106200ff0042301000c2a31000c28360 :1012c0000300401000000000faff02241000c2a337 :1012d0001400c28f010042341400c2af1400c28f48 -:1012e0001811042421284000c28a400f0000000089 +:1012e00018110424212840002c8b400f000000001e :1012f000ff0043301000c29321106200ff00423013 :101300001000c2a31500023c14004434010005245f -:10131000c28a400f000000001000c2a31400c227c0 -:101320000014042421284000b28a400f000000006d +:101310002c8b400f000000001000c2a31400c22755 +:1013200000140424212840001c8b400f0000000002 :10133000ff0043301000c29321106200ff004230d2 :101340001000c2a31400c28f000442300f004010ee :10135000000000001400c38ffffb02242410620071 :101360001400c2af1400c28f0014042421284000ce -:10137000c28a400f00000000ff0043301000c293fb +:101370002c8b400f00000000ff0043301000c29390 :1013800021106200ff0042301000c2a31400c28f7f :10139000000442341400c2af1400c28f00140424ad -:1013a00021284000c28a400f00000000ff004330a7 +:1013a000212840002c8b400f00000000ff0043303c :1013b0001000c29321106200ff0042301000c2a34f -:1013c00001000424c598400f000000001000c283f3 +:1013c000010004240094400f000000001000c283bc :1013d00021e8c0031c00bf8f1800be8f2000bd276e :1013e0000800e00300000000e0ffbd271c00bfafc5 -:1013f0001800beaf21f0a0031481828f7900401441 -:10140000000000000010042414818527b28a400fd8 -:10141000000000000500401000000000148180afb3 +:1013f0001800beaf21f0a003a880828f79004014ae +:101400000000000000100424a88085271c8b400fda +:10141000000000000500401000000000a88080af20 :10142000211000007a45400b00000000f413042452 -:101430001000c22721284000b28a400f000000009f -:101440000500401000000000148180af2110000052 -:101450007a45400b000000001481838f1000023c8d +:101430001000c227212840001c8b400f0000000034 +:101440000500401000000000a88080af21100000bf +:101450007a45400b00000000a880838f1000023cfa :10146000a00242340a006214000000001000c38f82 :101470000100022441006210000000001000023c44 -:10148000a1024234148182af5f45400b000000008e -:101490001481838f1000023cb002423413006214a6 +:10148000a1024234a88082af5f45400b00000000fb +:10149000a880838f1000023cb00242341300621413 :1014a000000000001000c38f03000224330062100c :1014b000000000001000c38f040002240600621424 -:1014c000000000001000023cb1024234148182afdf +:1014c000000000001000023cb1024234a88082af4c :1014d0005f45400b000000001000023cb2024234a5 -:1014e000148182af5f45400b000000001481838fa0 +:1014e000a88082af5f45400b00000000a880838f7a :1014f0001000023cf00042342000621400000000a2 -:101500003b00043c14818527b28a400f0000000094 -:101510000500401000000000148180af2110000081 -:101520007a45400b000000001481838f3000023c9c +:101500003b00043ca88085271c8b400f0000000096 +:101510000500401000000000a88080af21100000ee +:101520007a45400b00000000a880838f3000023c09 :10153000d000423411006214000000001000c38f7c :101540000600022406006214000000003000023c85 -:10155000d1004234148182af5f45400b000000008f +:10155000d1004234a88082af5f45400b00000000fc :101560001000c38f02000224040062140000000077 -:101570003000023cd2004234148182af1481838f48 +:101570003000023cd2004234a88082afa880838f22 :10158000f000023c241862003000023c0c0062149f -:10159000000000001481838ff0ff023cffff423403 -:1015a00024106200148182af1481838f0400023cf6 -:1015b00025106200148182af7945400b00000000c5 -:1015c0001481838ff0ff023cffff4234241062003d -:1015d000148182af1481838f0500023c25106200c4 -:1015e000148182af1481828f21e8c0031c00bf8f59 +:1015900000000000a880838ff0ff023cffff423470 +:1015a00024106200a88082afa880838f0400023cd0 +:1015b00025106200a88082af7945400b0000000032 +:1015c000a880838ff0ff023cffff423424106200aa +:1015d000a88082afa880838f0500023c251062009e +:1015e000a88082afa880828f21e8c0031c00bf8f33 :1015f0001800be8f2000bd270800e0030000000097 :10160000e0ffbd271c00bfaf1800beaf21f0a00354 -:10161000f41304241000c22721284000b28a400f8e +:10161000f41304241000c227212840001c8b400f23 :101620000000000002004010000000001000c0afe9 :101630001000c28f21e8c0031c00bf8f1800be8fae :101640002000bd270800e00300000000e8ffbd27e0 :101650001400bfaf1000beaf21f0a003fa44400f4a :1016600000000000ff0f4230b002422c0600401480 :1016700000000000481e042484b7023cce694534b3 -:10168000c28a400f0000000021e8c0031400bf8f91 +:101680002c8b400f0000000021e8c0031400bf8f26 :101690001000be8f1800bd270800e0030000000006 :1016a000e0ffbd271c00bfaf1800beaf21f0a003b4 -:1016b00028140424a48a400f000000001000c2afc8 +:1016b000281404240e8b400f000000001000c2af5d :1016c0001000c38ffeff0224241062001000c2af7e -:1016d000281404241000c58fc28a400f00000000a7 +:1016d000281404241000c58f2c8b400f000000003c :1016e0001000c28f010042341000c2af281404243d -:1016f0001000c58fc28a400f0000000021e8c0031f +:1016f0001000c58f2c8b400f0000000021e8c003b4 :101700001c00bf8f1800be8f2000bd270800e0031b :1017100000000000e0ffbd271c00bfaf1800beaff7 -:1017200021f0a0031c140424a48a400f0000000030 +:1017200021f0a0031c1404240e8b400f00000000c5 :101730001000c2af1000c28f040042341000c2afcc -:101740001c1404241000c58fc28a400f0000000042 +:101740001c1404241000c58f2c8b400f00000000d7 :10175000a845400f0000000021e8c0031c00bf8f17 :101760001800be8f2000bd270800e0030000000025 :10177000e0ffbd271c00bfaf1800beaf21f0a003e3 :101780001000c0a3e445400b000000000000000072 -:101790001400c2271400042421284000b28a400ffc +:101790001400c22714000424212840001c8b400f91 :1017a000000000001000c2a31000c28339004014e2 :1017b000000000001400c28f01004230f3ff40140b :1017c000000000001400c22701000424212840006a -:1017d000b28a400f000000001000c2a31000c283b4 +:1017d0001c8b400f000000001000c2a31000c28349 :1017e0002f004014000000001400c28f020042309d :1017f0000e004010000000001400c38ffdff022403 :10180000241062001400c2af1400c28f010004242f -:1018100021284000c28a400f000000001000c2a32f +:10181000212840002c8b400f000000001000c2a3c4 :101820001000c28321004014000000001400c227f1 -:101830000e00042421284000b28a400f000000005e +:101830000e000424212840001c8b400f00000000f3 :101840001000c2a31000c2831b004014000000005f :101850001400c28f01004230ff00423017004010d8 :10186000000000001400c38ffeff02242410620059 :101870001400c2af1400c28f0e00042421284000bf -:10188000c28a400f000000001000c2a32f46400b88 +:101880002c8b400f000000001000c2a32f46400b1d :1018900000000000000000002f46400b0000000088 :1018a000000000002f46400b000000000000000078 :1018b0002f46400b00000000000000001000c28313 @@ -3337,23 +3337,23 @@ :1018d0000800e00300000000d8ffbd272400bfafd0 :1018e0002000beaf21f0a0031000c0a31800c0afbd :1018f0001c00c0af1400c0af1c00c227130004249a -:1019000021284000b28a400f000000001800c227c2 -:101910000e00042421284000b28a400f000000007d +:10190000212840001c8b400f000000001800c22757 +:101910000e000424212840001c8b400f0000000012 :101920001000c2a31000c283440040140000000055 :101930001800c28f010042300b004014000000006c :101940001800c28f010042340e00042421284000f8 -:10195000c28a400f000000001000c2a31000c28322 +:101950002c8b400f000000001000c2a31000c283b7 :1019600039004014000000001800c22701000424c0 -:1019700021284000b28a400f000000001000c2a3de +:10197000212840001c8b400f000000001000c2a373 :101980001000c28333004014000000001800c28f12 :10199000020042300e004014000000001800c28f08 -:1019a000020042340100042421284000c28a400f72 +:1019a0000200423401000424212840002c8b400f07 :1019b000000000001000c2a31000c28328004014e1 :1019c000000000007446400b000000000000000012 -:1019d0001c00c2271300042421284000b28a400fb3 +:1019d0001c00c22713000424212840001c8b400f48 :1019e000000000001000c2a31000c2831f004014ba :1019f000000000001c00c28f040042301e00401492 -:101a00000000000002000424c598400f0000000000 +:101a000000000000020004240094400f00000000c9 :101a10001400c28f010042241400c2af1400c28f10 :101a20000500422ce9ff401400000000fcff0224e6 :101a30001000c2a39f46400b000000000000000001 @@ -3367,50 +3367,50 @@ :101ab0003646400f000000001000c2a31000c28391 :101ac00004004010000000001000c2830547400bd6 :101ad000000000000b47400f000000001400c22768 -:101ae0001811042421284000b28a400f0000000091 +:101ae00018110424212840001c8b400f0000000026 :101af0001000c2a31000c2830300401000000000c9 :101b0000faff02241000c2a31400c28f0100423465 :101b10001400c2af1400c28f181104242128400001 -:101b2000c28a400f000000001000c2a31400c227a8 -:101b30000014042421284000b28a400f0000000055 +:101b20002c8b400f000000001000c2a31400c2273d +:101b300000140424212840001c8b400f00000000ea :101b4000ff0043301000c29321106200ff004230ba :101b50001000c2a31400c28f0004423019004010cc :101b6000000000001400c38ffffb02242410620059 :101b70001400c2af1400c28f0014042421284000b6 -:101b8000c28a400f00000000ff0043301000c293e3 +:101b80002c8b400f00000000ff0043301000c29378 :101b900021106200ff0042301000c2a31400c227cf -:101ba0000014042421284000b28a400f00000000e5 +:101ba00000140424212840001c8b400f000000007a :101bb000ff0043301000c29321106200ff0042304a :101bc0001000c2a30c00023c0c0044342128000089 -:101bd000c28a400f000000008c100424212800005d -:101be000c28a400f000000000200023cac074434ef -:101bf00021280000c28a400f0000000008140424bd -:101c00001111023c00104534c28a400f0000000050 +:101bd0002c8b400f000000008c10042421280000f2 +:101be0002c8b400f000000000200023cac07443484 +:101bf000212800002c8b400f000000000814042452 +:101c00001111023c001045342c8b400f00000000e5 :101c10001000c28321e8c0031c00bf8f1800be8fd4 :101c20002000bd270800e00300000000e0ffbd2702 :101c30001c00bfaf1800beaf21f0a0031000c0a36e -:101c40000014042421280000c28a400f0000000074 +:101c400000140424212800002c8b400f0000000009 :101c5000ff0043301000c29321106200ff004230a9 -:101c60001000c2a332000424c598400f00000000f9 +:101c60001000c2a3320004240094400f00000000c2 :101c70001000c28321e8c0031c00bf8f1800be8f74 :101c80002000bd270800e00300000000d8ffbd27aa :101c90002400bfaf2000beaf21f0a00321108000c0 :101ca0002800c2a31000c0a31400c0af1800c0af2a -:101cb0001c00c0af1400c0af14100424a48a400f4d +:101cb0001c00c0af1400c0af141004240e8b400fe2 :101cc000000000001400c2af1400c28f0e004104d7 -:101cd000000000000200023cbc074434a48a400f0c +:101cd000000000000200023cbc0744340e8b400fa1 :101ce000000000001400c2af1400c28f0100423097 :101cf0001400c2af1400c28f1b004010000000008f -:101d00005f47400b0000000001000424c598400f0d +:101d00005f47400b00000000010004240094400fd6 :101d1000000000002e47400b0000000001000424da -:101d2000c598400f000000000c00023c0c00443439 -:101d3000a48a400f000000001400c2af1800c28f38 +:101d20000094400f000000000c00023c0c00443402 +:101d30000e8b400f000000001400c2af1800c28fcd :101d4000010042241800c2af1800c28fd107422cf4 :101d50000500401400000000fbff02241000c2a395 :101d60008747400b000000001400c38fad10023cf9 :101d70009ed04234e9ff6214000000002800c393a3 :101d80000200022409006214000000000200023c6c -:101d9000ac0744341c3c023c7dd54534c28a400f1c +:101d9000ac0744341c3c023c7dd545342c8b400fb1 :101da000000000007147400b000000002800c393b2 :101db00003000224030062140000000080000224db :101dc0001c00c2affa44400f00000000ff0f433078 @@ -3418,7 +3418,7 @@ :101de0000200423421204000d143400f0000000097 :101df0008147400b000000001c00c48fd143400ffe :101e0000000000000c00023c0c00443452ef023c85 -:101e1000612f4534c28a400f000000001000c283c9 +:101e1000612f45342c8b400f000000001000c2835e :101e200021e8c0032400bf8f2000be8f2800bd27fb :101e30000800e00300000000d0ffbd272c00bfaf6a :101e40002800beaf21f0a003211080003000c2a303 @@ -3427,8 +3427,8 @@ :101e70003000c3930200022422006214000000001c :101e80000200023cac0742341c00c2af1c3c023cc6 :101e90007dd542342000c2afc247400b0000000095 -:101ea00002000424c598400f000000001c00c38fee -:101eb0001800c2272120600021284000b28a400f6c +:101ea000020004240094400f000000001c00c38fb7 +:101eb0001800c22721206000212840001c8b400f01 :101ec0000000000004004010000000002000c28f4d :101ed0000100422c1800c2af1400c28f010042243e :101ee0001400c2af1400c28fd107422c0600401468 @@ -3436,22 +3436,22 @@ :101f000000000000000000002000c38f1800c28ff6 :101f1000e3ff6214000000002000c38f5302023c64 :101f20003626423405006214000000008c100424a0 -:101f300021280000c28a400f000000001000c28368 +:101f3000212800002c8b400f000000001000c283fd :101f400021e8c0032c00bf8f2800be8f3000bd27c2 :101f50000800e00300000000e0ffbd271c00bfaf49 :101f60001800beaf21f0a0031400c0af0a00022485 :101f70001100c2a31400c227001404242128400029 -:101f8000b28a400f000000001000c2a31400c38feb +:101f80001c8b400f000000001000c2a31400c38f80 :101f9000fffb0224241062001400c2af1400c28fa1 -:101fa0000014042421284000c28a400f00000000d1 +:101fa00000140424212840002c8b400f0000000066 :101fb0001000c2a31000c283040040100000000003 :101fc0001000c2831748400b000000001400c22715 -:101fd0000014042421284000b28a400f00000000b1 +:101fd00000140424212840001c8b400f0000000046 :101fe0001000c2a31000c2830400401000000000d3 :101ff0001000c2831748400b000000001400c28f7d :102000000004423013004010000000001400c38f91 :10201000fffb0224241062001400c2af1400c28f20 -:102020000014042421284000c28a400f0000000050 +:1020200000140424212840002c8b400f00000000e5 :102030001000c2a31100c293ffff42241100c2a3eb :102040001100c293e1ff4014000000001648400b4d :1020500000000000000000001000c28321e8c0035f @@ -3459,33 +3459,33 @@ :1020700000000000e0ffbd271c00bfaf1800beaf8e :1020800021f0a003211880002110a0002000c3a38c :102090002400c2a31400c2270200033c08016434d8 -:1020a00021284000b28a400f000000001000c2a3a7 +:1020a000212840001c8b400f000000001000c2a33c :1020b0001000c2831c004014000000002400c293e2 :1020c00009004010000000002000c293010003241a :1020d000041843001400c28f251062001400c2af20 :1020e0004148400b000000002000c293010003247f :1020f00004104300271802001400c28f241062004d :102100001400c2af1400c28f0200033c0801643403 -:1021100021284000c28a400f000000001000c2a326 +:10211000212840002c8b400f000000001000c2a3bb :102120004b48400b00000000000000001000c2837c :1021300021e8c0031c00bf8f1800be8f2000bd2700 :102140000800e00300000000e0ffbd271c00bfaf57 :102150001800beaf21f0a003211880002110a000bc :102160002000c3a32400c2a31400c2270200033c22 -:102170000001643421284000b28a400f00000000b2 +:1021700000016434212840001c8b400f0000000047 :102180001000c2a31000c2831c0040140000000015 :102190002400c29309004010000000002000c293f8 :1021a00001000324041843001400c28f25106200ac :1021b0001400c2af7648400b000000002000c2931c :1021c0000100032404104300271802001400c28fea :1021d000241062001400c2af1400c28f0200033c3e -:1021e0000001643421284000c28a400f0000000032 +:1021e00000016434212840002c8b400f00000000c7 :1021f0001000c2a38048400b000000000000000057 :102200001000c28321e8c0031c00bf8f1800be8fde :102210002000bd270800e00300000000e0ffbd270c :102220001c00bfaf1800beaf21f0a003211080003a :102230002400c5af2000c2a31400c2270200033c43 -:102240000401643421284000b28a400f00000000dd +:1022400004016434212840001c8b400f0000000072 :102250001000c2a31000c2830b0040140000000055 :102260001400c38f2000c29306104300ff004230c9 :1022700001004230ff0043302400c28f000043a021 @@ -3494,31 +3494,31 @@ :1022a0000800e00300000000e0ffbd271c00bfaff6 :1022b0001800beaf21f0a0032000c4af2110a00081 :1022c0002400c2a31400c2272c1404242128400097 -:1022d000b28a400f000000001000c2a31000c283a9 +:1022d0001c8b400f000000001000c2a31000c2833e :1022e00017004014000000002400c29308004010b2 :1022f000000000002000c28f271802001400c28fc7 :10230000241062001400c2afc848400b0000000057 :102310001400c38f2000c28f251062001400c2afca -:102320001400c28f2c14042421284000c28a400fbc +:102320001400c28f2c140424212840002c8b400f51 :10233000000000001000c2a3d148400b00000000c4 :10234000000000001000c28321e8c0031c00bf8f02 :102350001800be8f2000bd270800e0030000000029 :10236000d0ffbd272c00bfaf2800beaf21f0a003d7 :102370003000c4af3400c5af2000c0af2400c0aff0 -:102380001400c2279c14042421284000b28a400f64 +:102380001400c2279c140424212840001c8b400ff9 :10239000000000001000c2a31000c28338004014e7 :1023a000000000001400c38f0300023c25186200e7 :1023b0002000c227212060002128400008000624b8 -:1023c000e68a400f000000001000c2a31000c28384 +:1023c000508b400f000000001000c2a31000c28319 :1023d0002e004014000000002000c28f1400c2af85 :1023e0001400c38fffff023c241062000800401459 :1023f000000000003000c48f2128000006000624e1 -:1024000023a0400f000000002449400b0000000002 +:10240000cda0400f000000002449400b0000000058 :102410001400c28f021402001400c2af1400c38f54 :102420000300023c251862001800c227212060002a -:102430002128400006000624e68a400f0000000024 +:102430002128400006000624508b400f00000000b9 :102440001000c2a31800c2273000c48f212840000a -:1024500006000624479c400f000000003400c28f95 +:1024500006000624f09c400f000000003400c28fec :1024600004004010000000003400c28f010003246b :10247000000043a01000c2832a49400b0000000066 :10248000000000002449400b000000000000000094 @@ -3527,6094 +3527,6138 @@ :1024b0002800be8f3000bd270800e00300000000a8 :1024c000d0ffbd272c00bfaf2800beaf21f0a00376 :1024d0003000c4af2000c0af2400c0af1400c2273a -:1024e0009c14042421284000b28a400f0000000000 +:1024e0009c140424212840001c8b400f0000000095 :1024f0001000c2a31000c283250040140000000099 :102500001400c38f0300023c251862002000c2277c -:10251000212060002128400008000624e68a400fa0 +:10251000212060002128400008000624508b400f35 :10252000000000001000c2a31000c2831b00401472 :10253000000000002000c28f1400c2af1400c28f40 :10254000ffff42301400c2af1400c38f0300023cef :10255000251862001800c2272120600021284000b1 -:1025600006000624e68a400f000000001000c2a307 +:1025600006000624508b400f000000001000c2a39c :102570001800c2273000c48f21284000060006241e -:10258000479c400f000000006849400b000000001d +:10258000f09c400f000000006849400b0000000074 :10259000000000006849400b00000000000000003f :1025a0001000c28321e8c0032c00bf8f2800be8f1b -:0c25b0003000bd270800e0030000000020 +:1025b0003000bd270800e00300000000e0ffbd2759 +:1025c0001c00bfaf1800beaf21f0a0032000c4afb5 +:1025d0002110a0002400c2a788bf033c2061628ca8 +:1025e0000400027c206162ac1000c0af8b49400b3c +:1025f0000000000044818293aa00042421284000a6 +:1026000098a2400f00000000211840002000c28f57 +:10261000000043a02000c28f010042242000c2af6e +:102620001000c28f010042241000c2af2400c397e3 +:102630001000c28f2a104300eeff4014000000007b +:1026400088bf033c2061628c010004240400827c6a +:10265000206162ac2110000021e8c0031c00bf8f84 +:102660001800be8f2000bd270800e0030000000016 +:10267000e0ffbd271c00bfaf1800beaf21f0a003d4 +:102680002000c4af2110a0002400c2a788bf033cd3 +:102690002061628c0400027c206162ac1000c0af3b +:1026a000b849400b000000002000c28f000042909b +:1026b000211840002000c28f010042242000c2af38 +:1026c00044818293212060002128400098a2400f7d +:1026d000000000001000c28f010042241000c2afb1 +:1026e0002400c3971000c28f2a104300eeff40144d +:1026f0000000000088bf033c2061628c01000424bc +:102700000400827c206162ac2110000021e8c0033b +:102710001c00bf8f1800be8f2000bd270800e003fb +:1027200000000000f8ffbd270400beaf21f0a003a9 +:10273000211880002110a0000800c3a30c00c2a330 +:102740000800c293401802000c00c29326186200d1 +:10275000029d023c407c4224211062000000429015 +:1027600021e8c0030400be8f0800bd270800e00375 +:1027700000000000e8ffbd271400bfaf1000beaf8f +:1027800021f0a003211080001c00c5af2000c6afbf +:102790001800c2a3f249400b000000001800c393c8 +:1027a0001c00c28f000042901c00c48f01008424d2 +:1027b0001c00c4af2120600021284000c949400fff +:1027c000000000001800c2a32000c28f2b100200de +:1027d000ff0042302000c38fffff63242000c3afff +:1027e000eeff4014000000001800c29321e8c0036f +:1027f0001400bf8f1000be8f1800bd270800e00333 +:1028000000000000c8ffbd273400bfaf3000beafde +:102810002c00b0af21f0a003211880003c00c5af10 +:102820004000c6af4400c7af4800c28f3800c3a302 +:102830002000c2a3050002241000c2a33800c293e6 +:102840001400c2a33800c2933dff42240d00432c64 +:102850009c0060100000000080180200019d023cf6 +:1028600074284224211062000000428c08004000bd +:1028700000000000c429019de428019dc42a019d97 +:10288000c42a019d5c29019d5c29019d4c2a019d62 +:10289000a828019dc42a019dc42a019dc42a019d26 +:1028a000c42a019d3429019d3c00c28f02140200fc +:1028b000ff0042301500c2a33c00c28f021202008a +:1028c000ff0042301600c2a33c00c28fff0042301e +:1028d0001700c2a3050002241000c2a3b44a400b93 +:1028e000000000003c00c28f02120200ff004230d4 +:1028f0001500c2a32000c293060040100000000093 +:102900001500c39380ff022425106200ff004230af +:102910001500c2a33c00c28fff0042301600c2a3c4 +:102920001700c0a3050002241000c2a3b44a400b44 +:1029300000000000ffff02241500c2a3ffff0224d5 +:102940001600c2a3ffff02241700c2a30500022441 +:102950001000c2a3b44a400b000000003c00c28f2c +:1029600002140200ff0042301500c2a33c00c28fd7 +:1029700002120200ff0042301600c2a33c00c28fc8 +:10298000ff0042301700c2a34400c28f02140200ad +:10299000ff0042301800c2a34400c28f021202009e +:1029a000ff0042301900c2a34400c28fff00423032 +:1029b0001a00c2a3080002241000c2a3b44a400bac +:1029c000000000003c00c28f02120200ff004230f3 +:1029d0001500c2a32000c2930600401000000000b2 +:1029e0001500c39380ff022425106200ff004230cf +:1029f0001500c2a33c00c28fff0042301600c2a3e4 +:102a00004000c28f02160200ff0042301700c2a32e +:102a10004000c28f02140200ff0042301800c2a31f +:102a20004000c28f02120200ff0042301900c2a310 +:102a30004000c28fff0042301a00c2a308000224e7 +:102a40001000c2a3b44a400b000000003c00c28f3b +:102a500002140200ff0042301500c2a33c00c28fe6 +:102a600002120200ff0042301600c2a33c00c28fd7 +:102a7000ff0042301700c2a34000c28f02160200be +:102a8000ff0042301800c2a34000c28f02140200af +:102a9000ff0042301900c2a34000c28f02120200a0 +:102aa000ff0042301a00c2a34000c28fff00423034 +:102ab0001b00c2a3090002241000c2a3b44a400ba9 +:102ac00000000000ffff0224d74a400b0000000076 +:102ad000b080829312004014000000001000c293e6 +:102ae000ffff50241000c293ffff42241400c327ad +:102af0007f0004242128600021304000dd49400f80 +:102b00000000000040100200ff0043301000c22708 +:102b100021105000040043a0cb4a400b00000000ed +:102b20001000c293ffff42241000c2a31000c29302 +:102b30001400c32721206000212840009c49400f39 +:102b4000000000000400401000000000ffff02240d +:102b5000d74a400b000000002110000021e8c0030c +:102b60003400bf8f3000be8f2c00b08f3800bd27df +:102b70000800e00300000000e0ffbd271c00bfaf1d +:102b80001800beaf21f0a003211080002000c2a3d6 +:102b90002000c393cf0002240b0062140000000049 +:102ba0001100c22721204000010005246f49400f79 +:102bb000000000000400401000000000ffff02249d +:102bc0002e4b400b000000000a0002241000c2a39c +:102bd0001100c22721204000010005246f49400f49 +:102be000000000000400401000000000ffff02246d +:102bf0002e4b400b000000001100c2932000c39335 +:102c000009006210000000001000c2832a100200b8 +:102c1000ff0042301000c393ffff63241000c3a3e2 +:102c2000ebff4014000000001000c28304004104c8 +:102c300000000000ffff02242e4b400b00000000ac +:102c40000a0002241000c2a31100c2272120400064 +:102c5000010005246f49400f0000000004004010ef +:102c600000000000ffff02242e4b400b000000007c +:102c70001100c29309004010000000001000c28340 +:102c80002a100200ff0042301000c393ffff6324ac +:102c90001000c3a3ecff4014000000001000c2832a +:102ca0000400410400000000ffff02242e4b400bf3 +:102cb000000000002110000021e8c0031c00bf8fad +:102cc0001800be8f2000bd270800e00300000000b0 +:102cd000e0ffbd271c00bfaf1800beaf21f0a0036e +:102ce000010004240094400f000000001000a0af79 +:102cf000cf000424212800002130000021380000ea +:102d0000014a400f00000000cf000424de4a400fbb +:102d100000000000010004240094400f00000000a7 +:102d200021e8c0031c00bf8f1800be8f2000bd2704 +:102d30000800e00300000000d8ffbd272400bfaf5b +:102d40002000beaf21f0a0032800c4af2118a000ce +:102d50002110c0002c00c3a73000c2a31600c0a3de +:102d60001200c0a72c00c2970120422c0500401081 +:102d7000000000002c00c2971400c2a7634b400b58 +:102d800000000000002002241400c2a70a00022450 +:102d90001000c2a71a00c22721204000010005240c +:102da0006f49400f000000000500401000000000c7 +:102db000ffff02241600c2a3804b400b000000005e +:102dc0001a00c293f0004330f00002240b0062109e +:102dd000000000001000c2872b100200ff004230ec +:102de0001000c397ffff63241000c3a7e9ff40143e +:102df00000000000804b400b0000000000000000bd +:102e00001600c383ffff022435006210000000009b +:102e10001000c2870500401c00000000ffff0224d4 +:102e20001600c2a3b94b400b000000001200c2877d +:102e30002800c38f211862001400c297212060006f +:102e4000212840006f49400f00000000050040109d +:102e500000000000ffff02241600c2a3b94b400b84 +:102e6000000000003000c2930f004014000000007a +:102e7000b08082930c004014000000001800c227ac +:102e800021204000020005246f49400f000000008f +:102e90000500401000000000ffff02241600c2a33e +:102ea000b94b400b000000001200c3971400c297fa +:102eb00021106200ffff42301200c2a71400c29727 +:102ec0002c00c397231062002c00c2a72c00c297cd +:102ed000a4ff401400000000b94b400b00000000ac +:102ee000000000001600c28321e8c0032400bf8f49 +:102ef0002000be8f2800bd270800e003000000006e +:102f0000d8ffbd272400bfaf2000beaf21f0a00333 +:102f10002800c4af2110a0002c00c2a71000c0a739 +:102f20001400c0a31800c0a72c00c2970120422c97 +:102f300005004010000000002c00c2971200c2a73c +:102f4000d44b400b00000000002002241200c2a756 +:102f5000f0ff02241600c2a31000c2870d00401427 +:102f6000000000002c00c2970120422c05004010f8 +:102f700000000000030002241500c2a3ef4b400b29 +:102f800000000000010002241500c2a3ef4b400b1b +:102f9000000000002c00c2970120422c05004010c8 +:102fa00000000000030002241500c2a3ef4b400bf9 +:102fb00000000000020002241500c2a31600c39303 +:102fc0001500c29325106200ff0042301600c2a314 +:102fd0001600c22721204000010005249c49400f13 +:102fe000000000000500401000000000ffff022468 +:102ff0001400c2a3274c400b000000001000c28741 +:103000002800c38f211862001200c297212060009f +:10301000212840009c49400f00000000050040109e +:1030200000000000ffff02241400c2a3274c400b45 +:1030300000000000b08082930c00401400000000eb +:103040001800c22721204000020005249c49400f9f +:10305000000000000500401000000000ffff0224f7 +:103060001400c2a3274c400b000000001000c397bf +:103070001200c29721106200ffff42301000c2a769 +:103080002c00c3971200c297231062002c00c2a725 +:103090002c00c297a4ff4014000000001400c2835b +:1030a00021e8c0032400bf8f2000be8f2800bd2769 +:1030b0000800e00300000000d8ffbd272400bfafd8 +:1030c0002000beaf21f0a0032800c4af2c00c5af84 +:1030d000c9ff02241800c2a31900c0a32800c28f90 +:1030e0003100422c0500401000000000c3ff022404 +:1030f0001800c2a3010002241900c2a31800c29341 +:103100001900c3931000a3af212040002800c58ff1 +:103110002c00c68f04000724014a400f0000000065 +:103120000400401000000000ffff0224574c400b39 +:10313000000000001800c29321204000de4a400f2a +:10314000000000000400401000000000ffff022407 +:10315000574c400b000000002110000021e8c00384 +:103160002400bf8f2000be8f2800bd270800e00389 +:1031700000000000d8ffbd272400bfaf2000beaf75 +:1031800021f0a0032800c4af2c00c5af2110c0005f +:103190003000c2a73000c2971000a0afc7000424bf +:1031a0002800c58f2130000021384000014a400f1f +:1031b000000000000400401000000000ffff022497 +:1031c000ab4c400b00000000c7000424de4a400f57 +:1031d000000000000400401000000000ffff022477 +:1031e000ab4c400b000000003000c2972c00c48f95 +:1031f00021284000c04b400f000000000400401098 +:1032000000000000ffff0224ab4c400b0000000058 +:10321000b0808293050040140000000002000224e8 +:103220001800c2a38d4c400b0000000003000224d4 +:103230001800c2a31800c2931c00c32721206000fd +:10324000212840006f49400f00000000040040109a +:1032500000000000ffff0224ab4c400b0000000008 +:103260001800c293ffff42241800c32721106200f8 +:103270000400429009004014000000001800c293ae +:10328000feff42241800c32721106200040043906f +:10329000c30002240400621000000000ffff0224ab +:1032a000ab4c400b000000002110000021e8c003df +:1032b0002400bf8f2000be8f2800bd270800e00338 +:1032c00000000000d8ffbd272400bfaf2000beaf24 +:1032d00021f0a0032800c4af2c00c5afcaff022410 +:1032e0001800c2a31900c0a32800c28f0001422cfd +:1032f0000500401000000000c4ff02241800c2a313 +:10330000010002241900c2a31800c2931900c3933c +:103310001000a3af212040002800c58f21300000fd +:1033200004000724014a400f000000000400401080 +:1033300000000000ffff0224f34c400b00000000df +:103340001800c29321204000de4a400f0000000018 +:103350000400401000000000ffff0224f34c400b6b +:10336000000000001900c2931c00c3272120600048 +:1033700004000524213040004e4b400f00000000a7 +:103380000400401000000000ffff0224f34c400b3b +:10339000000000001c00c293211840001d00c293d1 +:1033a00000120200251862001e00c29300140200e1 +:1033b000251862001f00c293001602002518620043 +:1033c0002c00c28f000043ac2110000021e8c00394 +:1033d0002400bf8f2000be8f2800bd270800e00317 +:1033e00000000000e0ffbd271c00bfaf1800beaf0b +:1033f00021f0a0032000c4af2400c5af2110c000fd +:103400002800c2a72800c2971000a0afc80004245b +:103410002000c58f2130000021384000014a400fb4 +:10342000000000000400401000000000ffff022424 +:10343000224d400b00000000c8000424de4a400f6b +:10344000000000000400401000000000ffff022404 +:10345000224d400b000000002800c2972400c48fba +:1034600021284000213000004e4b400f000000009a +:103470000400401000000000ffff0224224d400b1a +:10348000000000002110000021e8c0031c00bf8fd5 +:103490001800be8f2000bd270800e00300000000d8 +:1034a000e0ffbd271c00bfaf1800beaf21f0a00396 +:1034b00024e80434d64d400f000000001000c2afd5 +:1034c0001000c38f8fff0224241062001000c2afcf +:1034d0001000c28f500042341000c2af24e8043400 +:1034e0001000c58f0b4e400f0000000021e8c00304 +:1034f0001c00bf8f1800be8f2000bd270800e0030e +:1035000000000000e0ffbd271c00bfaf1800beafe9 +:1035100021f0a0031000a0afcf0004242128000058 +:103520002130000021380000014a400f0000000057 +:10353000cf000424de4a400f0000000021100000ec +:1035400021e8c0031c00bf8f1800be8f2000bd27dc +:103550000800e00300000000f8ffbd270400beaf34 +:1035600021f0a00321e8c0030400be8f0800bd279e +:103570000800e00300000000d0ffbd272c00bfaf13 +:103580002800beaf21f0a0032000c0afc404023c5d +:1035900000b442341000c2afe400023cc0e1423447 +:1035a0001400c2af1400c28f401002001000c38f7d +:1035b0001b006200f401400010180000121000000f +:1035c0001800c2af1400c28f401002001000c38f59 +:1035d0001b006200f40140001010000004004010c5 +:1035e000000000001800c28f010042241800c2af82 +:1035f0001800c28f0101422c03004014000000009b +:10360000000102241800c2af1800c28f040040104d +:10361000000000001800c28fffff42241800c2af54 +:103620001800c28fff004230448182a3b08080a383 +:103630002000c22724e8043421284000e74d400f31 +:10364000000000000d0040100000000001000224f6 +:10365000b08082a32000c22724e80434212840003f +:10366000e74d400f00000000040040100000000083 +:10367000faff0224c64d400b00000000b080829388 +:1036800018004014000000002000c38ff3ff022444 +:10369000241062002000c2af2000c38f8fff0224dd +:1036a000241062002000c2af2000c28f50004234bc +:1036b0002000c2af2000c28f24e80434212840003b +:1036c0000b4e400f000000000400401000000000fe +:1036d000faff0224c64d400b000000000100022446 +:1036e000b08082a31c00c2270010042421284000bf +:1036f000e74d400f000000000400401000000000f3 +:10370000faff0224c64d400b00000000284d400f78 +:10371000000000002110000021e8c0032c00bf8f32 +:103720002800be8f3000bd270800e0030000000025 +:10373000f8ffbd270400beaf21f0a003b08080a336 +:103740002110000021e8c0030400be8f0800bd273f +:103750000800e00300000000e0ffbd271c00bfaf31 +:103760001800beaf21f0a0032000c4af2000c48f1a +:103770001000c22721284000e74d400f0000000044 +:103780001000c28f21e8c0031c00bf8f1800be8f3d +:103790002000bd270800e00300000000e0ffbd2777 +:1037a0001c00bfaf1800beaf21f0a0032000c4afc3 +:1037b0002400c5af0a0002241000c2a3fc4d400b38 +:1037c000000000002000c48f2400c58fb14c400fc2 +:1037d0000000000004004014000000002110000060 +:1037e000054e400b00000000344b400f000000006d +:1037f0001000c2932b100200ff0042301000c39350 +:10380000ffff63241000c3a3eeff4014000000007c +:10381000faff022421e8c0031c00bf8f1800be8fee +:103820002000bd270800e00300000000e0ffbd27e6 +:103830001c00bfaf1800beaf21f0a0032000c4af32 +:103840002400c5af0a0002241000c2a3204e400b82 +:10385000000000002000c48f2400c58f2e4c400fb4 +:1038600000000000040040140000000021100000cf +:10387000294e400b00000000344b400f00000000b8 +:103880001000c2932b100200ff0042301000c393bf +:10389000ffff63241000c3a3eeff401400000000ec +:1038a000faff022421e8c0031c00bf8f1800be8f5e +:1038b0002000bd270800e00300000000d8ffbd275e +:1038c0002400bfaf2000beaf21f0a0032800c4af8a +:1038d0002c00c5af2110c0003000c2a70a0002248e +:1038e0001000c2a31800c0a31900c0a33000c397e2 +:1038f00001000224070062140000000002000224fc +:103900003000c2a71800c2271400c2af5d4e400ba2 +:10391000000000002c00c28f1400c2af5d4e400baf +:10392000000000003000c2972800c48f1400c58f2b +:1039300021304000f94c400f000000000b00401403 +:10394000000000001800c2271400c38f0400621496 +:10395000000000001800c3932c00c28f000043a099 +:1039600021100000664e400b00000000344b400f59 +:10397000000000001000c2932b100200ff00423034 +:103980001000c393ffff63241000c3a3e5ff40149e +:1039900000000000faff022421e8c0032400bf8fca +:1039a0002000be8f2800bd270800e00300000000b3 +:1039b000e0ffbd271c00bfaf1800beaf21f0a00381 +:1039c0002000c4af2400c5af2110c0002800c2a74a +:1039d0000a0002241000c2a32800c3970100022499 +:1039e0001400621400000000020002242800c2a794 +:1039f0008e4e400b000000002800c2972000c48fac +:103a00002400c58f213040005d4c400f00000000b5 +:103a1000040040140000000021100000974e400bed +:103a200000000000344b400f000000008e4e400ba1 +:103a300000000000000000001000c2932b100200e4 +:103a4000ff0042301000c393ffff63241000c3a3a4 +:103a5000e9ff401400000000faff022421e8c0033f +:103a60001c00bf8f1800be8f2000bd270800e00398 +:043a70000000000052 :020000040000fa :020000041d01dc -:1025bc0098ffbd27211000004800b2af4400b1af16 -:1025cc004000b0af6400bfaf6000beaf5c00b7afff -:1025dc005800b6af5400b5af5000b4af4c00b3af19 -:1025ec00219080002188a0007000a6af3000a2af1f -:1025fc0021800000000024826b0080101000a4a336 -:10260c0025000224380282140100332602002426fd -:10261c00ffff82802d0006242118000030000824c2 -:10262c00200007242b0009242c024610ffff9124c4 -:10263c002e0045282202a010000000003302475053 -:10264c00010063342f02495002006334029d053ca3 -:10265c009878a5242120a20002006630feff653088 -:10266c00010084900b18a60008006630fbff653053 -:10267c0004008430270280100b18a60021a0000053 -:10268c0040201400c0a0140021a0940001003126a9 -:10269c0021a08202029d073c000022829878e72448 -:1026ac002120e2000100849004008430f4ff8014a7 -:1026bc00d0ff94262e0004241c0244500100312625 -:1026cc0000106334219800001000072400800624b9 -:1026dc00ff0044307900852c1000a2a33f00a01409 -:1026ec00010031261000b5270100162404006012e9 -:1026fc002b10d4022b1076020bb062022b10d402da -:10270c000200405021a0000023a096020800773060 -:10271c001300e016ffff1324d149400bffff942652 -:10272c00fb9c400f212840022710020001000326c9 -:10273c000b806200ffff9426f9ff931620000424ff -:10274c00db49400bffff1324fb9c400f2128400268 -:10275c0027100200010003260100b5260b80620041 -:10276c00ffffd626f8ffd3560000a482a2ffe0524a -:10277c0000002482e749400bffff1324fb9c400f11 -:10278c002128400227100200010003260b80620062 -:10279c00ffff9426f9ff93162000042400002482e6 -:1027ac0097ff80141000a4a36400bf8f21100002b7 -:1027bc006000be8f5c00b78f5800b68f5400b58f89 -:1027cc005000b48f4c00b38f4800b28f4400b18fcf -:1027dc004000b08f0800e0036800bd27019d023c5b -:1027ec000428422480200400212044000000828c14 -:1027fc000800400000000000b427019df026019d58 -:10280c00f026019df026019df026019df026019dec -:10281c00f026019df026019df026019df026019ddc -:10282c00f026019df026019df026019df026019dcc -:10283c00f026019df026019df026019df026019dbc -:10284c00f026019df026019df026019df026019dac -:10285c00f026019df026019df026019df026019d9c -:10286c00f026019df026019df026019df026019d8c -:10287c00f026019df026019df026019df026019d7c -:10288c00f026019df026019df026019df026019d6c -:10289c00f026019df026019df026019df026019d5c -:1028ac00f026019df026019df026019df026019d4c -:1028bc00f026019df026019df026019df026019d3c -:1028cc00f026019df026019df026019df026019d2c -:1028dc00f026019df026019df026019df026019d1c -:1028ec00f026019df026019df026019df026019d0c -:1028fc00f026019df026019df026019df026019dfc -:10290c00f026019df026019df026019df026019deb -:10291c00f026019df026019df026019df026019ddb -:10292c00f026019df026019df026019df026019dcb -:10293c00f026019df026019df026019df026019dbb -:10294c00f026019df026019df026019df026019dab -:10295c00f026019df026019dcc2b019df026019dba -:10296c00f026019df026019df026019df026019d8b -:10297c00f026019df026019df026019df026019d7b -:10298c00f026019d202e019dec29019df026019d34 -:10299c00182e019df026019df026019dec29019d2c -:1029ac00f026019df026019db02e019df026019d83 -:1029bc00f026019da82e019dcc2b019df026019d9a -:1029cc00f026019d682e019df026019de829019db0 -:1029dc00f026019df026019dd02b019dc000633493 -:1029ec00000762307b00401021f060000010653061 -:1029fc0006000424100062303b0240100b98850046 -:102a0c007000a28f07004424f8ff022424108200d7 -:102a1c000000448c0400458c080042243c00a3af09 -:102a2c004d99400f7000a2af3c00a38f21a840002d -:102a3c002120a002212800009fa0400f3c00a3af42 -:102a4c00040041043c00a38f0080023c26a85500e2 -:102a5c0003007e342120a002212800009fa0400ffb -:102a6c001800a0aff402401421b000001900622a33 -:102a7c003e0040100a00c22aff0077326e00e22ea0 -:102a8c00320240140b00e22eeb51033c1f856334e1 -:102a9c001900e302039d063c101800002c89c62483 -:102aac00421903001200622480100200211046001b -:102abc000000448c029d023c707c458c3c00a3af12 -:102acc004c9a400f3800a6af3c00a38f3800a68f5d -:102adc0080200300001903002118830080280300c4 -:102aec00212865002328e502cccc033ccdcc6334f3 -:102afc00ff00a5301900a300212040001028000081 -:102b0c003c00a3afc2100500090042248010020053 -:102b1c00211046004c9a400f0000458c3c00a38fbe -:102b2c00212040001900e3023800a68f1018000085 -:102b3c00c218030040100300c0180300211043000a -:102b4c002310e202ff0042308010020021304600c8 -:102b5c004c9a400f0000c58c2120a0021594400f08 -:102b6c002128400021a840000a00c22a110140106f -:102b7c00029d023c2120a0029fa0400f21280000b2 -:102b8c00040140140000000058a1400f2120a002b5 -:102b9c0021204000212800008b9f400f21b84000cd -:102bac00212840001394400f2120a00221b04000a6 -:102bbc0021a8e0021800a0af054c400b2118000022 -:102bcc0020006334800063340007623087ff4014b8 -:102bdc0021f06000c0006230c80140142016037c54 -:102bec002c03400410006230f80140107000a78fd5 -:102bfc007000a58f0000a48c0400a524c31704004a -:102c0c007000a5af21a880000302400421f0400011 -:102c1c0003006016c00077302598be020100732ea9 -:102c2c0040000224c502e2124100e22a7c0240105c -:102c3c00800002241600e0161000a283010002247a -:102c4c004603c0131000a2a3029d043cd87b84242d -:102c5c0002000724020002241c4b400b1400082421 -:102c6c00213840000400858c2b30c5032c03c05444 -:102c7c001000a7a32603be500000858c010042243f -:102c8c002014027cf6ff4814080084241000a2a330 -:102c9c002a2053005e0280102a2062022014137c2a -:102cac001000a2a3050080120040643003006530c0 -:102cbc00ffff84260ba085000040643006008010c6 -:102ccc002a2054002a2074020200805021a0000007 -:102cdc0023a093022a205400160280500400623074 -:102cec00231082022000a2af0400623014024010b4 -:102cfc002000a28f02006230d2024010010062302c -:102d0c00010065302d0002242b0004240b2045000b -:102d1c0021284002fb9c400f3c00a3af271002006f -:102d2c00010004263c00a38f0b8082002000a28fa0 -:102d3c00c001401430000424080064303400a4aff7 -:102d4c00ffff7326029d023cc0201300c87b562453 -:102d5c0021b0c4024010130040201e004100e52a9f -:102d6c002000633080a013002800a4af21985300ea -:102d7c002400a5af794b400b2c00a3af0e00e0163e -:102d8c001000a4830000c68e0400c78e2120a00270 -:102d9c00c88d400f2128c00321204000212860004d -:102dac000a000624b18c400f213800003000422468 -:102dbc002024027c1000a4a3fb9c400f212840027d -:102dcc0027100200010003260b806200f8ffd626b4 -:102ddc00fcff9426fdff7326fdff0224c301621243 -:102dec0040000224b301e2122400a78fe3ffe01499 -:102dfc00800002249d01e212c0000224e1ffe212d5 -:102e0c001000a483714b400b000000007b4a400b68 -:102e1c00000463347000a78f100066300100e2805c -:102e2c000000e58c0400e4247601c0101000a2a37d -:102e3c00750140501400a5a3ffff062472014650f3 -:102e4c001400a5a31400a2a31500a5a30200162428 -:102e5c001400b527be49400b7000a4af7000a58fbd -:102e6c000000a48c0400a524a002801021a88000de -:102e7c0000008280b20240507000a5af21b000006b -:102e8c000100d6262110960000004280fdff405420 -:102e9c000100d626be49400b7000a5af7b4a400b03 -:102eac0040006334100062302120c0000a20e20090 -:102ebc0025188300ffff6330b749400b00002282c6 -:102ecc00e3fd4814029d053c040063340100842496 -:102edc00ffff8280d6fd4614ffff91240800633467 -:102eec00b74b400b01008424fb9c400f212840026f -:102efc00ffff0324bffd4310218860028049400b73 -:102f0c0001001026b74b400b01008424b74b400b3b -:102f1c00010084242a000424020144102e000424fd -:102f2c00e7fd441421a0000001003126000022829c -:102f3c002a000424e001441000406334029d053c47 -:102f4c009878a5242120a2000100849004008430ec -:102f5c00dcfd80102198000040201300c098130065 -:102f6c00219893000100312621986202029d053cb4 -:102f7c00000022829878a5242120a20001008490d0 -:102f8c0004008430f4ff8014d0ff7326b649400b44 -:102f9c001000072458a1400f2120a002fdfe401470 -:102fac00212040000200c32afbfe601421280000ef -:102fbc00029d023c747c42243000a48f9fa0400fe1 -:102fcc000000458cdf004004edffc326eeffc32656 -:102fdc001800a3af2024037c6b93400f3c00a3afdd -:102fec00212840002120a0023998400f3000a2afc8 -:102ffc0058a1400f212040003c00a38f21b8400075 -:10300c0021a8400021b00000010004240a00e22e97 -:10301c00490240141000a4a3029d043cd87b8424d4 -:10302c00211000000200052402000724114c400b63 -:10303c00120009242138a0000400868c7601c014eb -:10304c00020048240000868c2b30e6027201c0146a -:10305c00010042240100e524202c057cf5ff4914d5 -:10306c00080084241000a5a31400082423b88302ac -:10307c0023b8f30223b8e802ffffe2260bb8530093 -:10308c000300c433ffffe3260400c23345014010a4 -:10309c000bb864000200c233e60140100100c233d9 -:1030ac000100c4332d0002242b0003240a106400f9 -:1030bc0021204000fb9c400f2128400227100200d9 -:1030cc00010003260b8062000a00e05a0800de3380 -:1030dc0030000424fb9c400f2128400227100200e2 -:1030ec0001000326fffff726f9ffe0160b806200b4 -:1030fc000800de332000beaf029d043c564c400b52 -:10310c00c87b9424c0180300211883020000668c2d -:10311c000400678c2120a002c88d400f21280000dc -:10312c0021204000212860000a000624b18c400fa9 -:10313c002138000030004424fb9c400f2128400221 -:10314c0027100200010003260b8062001000a283ee -:10315c00ffff4324201c037ceaff40141000a3a3b0 -:10316c001800a28f0c0040181300622a30000424af -:10317c00fb9c400f212840021800a48f010003265d -:10318c0027100200ffff84240b806200f7ff801cd5 -:10319c001800a4af1300622afc0040142014137c06 -:1031ac00120002241000a2a3eeff73262e000424aa -:1031bc00fb9c400f21284002ffff03240200431018 -:1031cc001000b483010010266b93400f2120800265 -:1031dc00212040004c9a400f2128c00258a1400fda -:1031ec002120400021a84000ffff82262014027cf1 -:1031fc0021f00000230080121000a2a3029d053cc8 -:10320c00c87bb624c01002002110c2020000468cfc -:10321c000400478c2120a002c88d400f2128c00338 -:10322c00212040000a00062421380000b18c400ff8 -:10323c002128600030004424fb9c400f21284002d0 -:10324c001000b48327100200c01814002118c30208 -:10325c000000668c0400678c2128c0030100032643 -:10326c002120a002b18c400f0b80620021a84000ed -:10327c00ffff82262014027c21f06000e1ff801603 -:10328c001000a2a30a0060122000a78f30000424b3 -:10329c00fb9c400f2128400227100200010003264e -:1032ac00ffff7326f9ff60160b8062002000a78fca -:1032bc00d1fce05000002482cffce05a00002482b4 -:1032cc0020000424fb9c400f212840022710020000 -:1032dc0001000326fffff726f9ffe0160b806200c2 -:1032ec008149400b000024827000a48f0000958c53 -:1032fc00040084248f4a400b7000a4af5c0140048e -:10330c00100062303a0040107000a78f7000a58f3b -:10331c0021f000000000b58c0400a524074b400be5 -:10332c007000a5af7000a48f7000a28f0100312631 -:10333c00040084240000548c00002282b049400b0d -:10334c007000a4aff84b400b1800a3af5e014054c3 -:10335c00039d023ccccc033ccdcc63341900e3027e -:10336c00039d063c101800002c89c624c2180300cb -:10337c000900622480100200211046000000448cd9 -:10338c00029d023c707c458c3c00a3af4c9a400fd4 -:10339c003800a6af3c00a38f3800a68f4020030056 -:1033ac00c0180300211883002318e302ff006330c8 -:1033bc0080180300213066000000c58c4c9a400f29 -:1033cc0021204000da4a400b2120a0020000e48cae -:1033dc000400e724c31704007000a7af21a88000e5 -:1033ec000bfe410421f040000a4d400b23a80400c1 -:1033fc0021f000000000f58c0400e724074b400b83 -:10340c007000a7af1400a5a3010016241400b52763 -:10341c00be49400b7000a4af23a804002b2015005c -:10342c002310020003006334074b400b23f04400cd -:10343c003000042421284002fb9c400f3c00a3af29 -:10344c002000a58f2710020001000426ffffa524f1 -:10345c002000a5af0b808200f5ffa0143c00a38fc9 -:10346c0008006730534b400b3400a7af2c00a28fe1 -:10347c001c004050029d053c029d043ca07b832413 -:10348c002800a78f2720140004208700061095021f -:10349c00251082002000853206209e020b1085002c -:1034ac000f0042302110620000004480714b400b31 -:1034bc001000a4a32800a38f2710130004104300ae -:1034cc0006207502252044002000633206107e027f -:1034dc000b2043000700843030008424714b400bd8 -:1034ec001000a4a3234d400bb47ba3243400a48f61 -:1034fc0041fc8050000024822000a58f3efca05887 -:10350c000000248220000424fb9c400f2128400250 -:10351c002000a78f2710020001000326ffffe724dd -:10352c002000a7aff7ffe0140b8062008149400b2d -:10353c0000002482effd40142000a0af2000a28fd9 -:10354c009c00401408006530080064303400a4afbf -:10355c0002006230930040100100623001006530bf -:10356c002d0002242b0004240b20450021284002ae -:10357c00fb9c400f3c00a3af271002000100042667 -:10358c000b808200534b400b3c00a38f1000a2a376 -:10359c0006ff401423986202ffff0224a44c400b48 -:1035ac001000a2a30800c3330b0060142000a3afcb -:1035bc000a00e01a0200c23320000424fb9c400fd6 -:1035cc00212840022710020001000326fffff726e6 -:1035dc00f9ffe0160b8062000200c23391004050ec -:1035ec000100de330100c4332d0002242b00032420 -:1035fc000a10640021204000fb9c400f212840024f -:10360c002710020001000326414c400b0b80620086 -:10361c002c4b400b0b9844001e4c400b1000a5a3e8 -:10362c002c00e212c000022484fde2121000a283de -:10363c00284b400b2a2053001800a52736a1400f19 -:10364c002120a0021800a28f6666043cffff4224d2 -:10365c0040180200211062006766842418004400a0 -:10366c00c3170200102000008320040023b0820046 -:10367c000000c32affffc2260bb043002320160014 -:10368c006b93400f2024047c212040004c9a400f67 -:10369c002128a0023000a2af029d023c687c458c20 -:1036ac009fa0400f3000a48f6a004104029d023c91 -:1036bc009e4a400bffffd6267000a78f01003126d3 -:1036cc000000f38c0400e72400002282b549400b73 -:1036dc007000a7af01000224a500c0131000a2a324 -:1036ec000200022402000724000104242128000007 -:1036fc00c74d400b100008240031050000390400b0 -:10370c00253026012120e0002128c000213840006e -:10371c002b30c5035efdc0541000a2a38200c5135c -:10372c002b30a4020100e2242014027cf2ff481486 -:10373c00024f0400274b400b1000a8a301000224e9 -:10374c008100c0131000a2a302000824020002246e -:10375c004000042421280000e14d400b15000724f3 -:10376c00c0300500c0400400253026012120000196 -:10377c002128c000214040002b30c5036200c054fa -:10378c001000a8a35d00c5132b30a4020100422435 -:10379c002014027cf2ff4714424f0400274b400bcd -:1037ac001000a2a367fd4050ffff73265e4d400b37 -:1037bc002000042466ffa0143400a5af20000424cc -:1037cc0021284002fb9c400f3c00a3af2000a78f98 -:1037dc002710020001000426ffffe7242000a7affa -:1037ec000b8082005affe0103c00a38f20000424c1 -:1037fc0021284002fb9c400f3c00a3af2000a78f68 -:10380c002710020001000426ffffe7242000a7afc9 -:10381c000b808200e9ffe0143c00a38f584d400b55 -:10382c000200623035fec053029d043c814d400bba -:10383c002000042424fe401020000424304c400bb3 -:10384c00000000003afd40102000a28f474b400bb7 -:10385c00200004246c7c448c9fa0400f3000a58f6a -:10386c00010042280100c3269e4a400b0bb06200a7 -:10387c007000a28f07004424f8ff02242410820059 -:10388c00080044247000a4af0000558c074b400b7b -:10389c0004005e8c7000a28f07004524f8ff022400 -:1038ac002428a2000000a48c0400a28c0800a524eb -:1038bc007000a5af21a88000d5fc410421f0400088 -:1038cc000a4d400b23a804002c89422480b8170011 -:1038dc0021b8e202029d023c0000e48e4c9a400f9b -:1038ec00707c458cda4a400b2120a002029d153ccd -:1038fc00987bb5269f4b400b2120a002a4ffc05003 -:10390c00010042241000a8a3274b400b21100001fa -:10391c002b28a502dafca050010042241000a7a31a -:10392c00274b400b2110e0007fffc0500100e22428 -:10393c00274b400b1000a2a31e4c400b0100082487 -:10394c00be49400b21b000000800a22e7fff405062 -:10395c0002000824274b400b010002240a00a22e6f -:10396c00bafc4010029d043c274b400b0100022482 -:10397c001000a22e5bff405002000224274b400b8c -:04398c000100022410 +:103a740098ffbd27211000004800b2af4400b1af49 +:103a84004000b0af6400bfaf6000beaf5c00b7af32 +:103a94005800b6af5400b5af5000b4af4c00b3af4c +:103aa400219080002188a0007000a6af3000a2af52 +:103ab40021800000000024826b0080101000a4a369 +:103ac4002500022438028214010033260200242631 +:103ad400ffff82802d0006242118000030000824f6 +:103ae400200007242b0009242c024610ffff9124f8 +:103af4002e0045282202a010000000003302475087 +:103b0400010063342f02495002006334029d053cd6 +:103b14003c7ba5242120a20002006630feff653014 +:103b2400010084900b18a60008006630fbff653086 +:103b340004008430270280100b18a60021a0000086 +:103b440040201400c0a0140021a0940001003126dc +:103b540021a08202029d073c000022823c7be724d4 +:103b64002120e2000100849004008430f4ff8014da +:103b7400d0ff94262e0004241c0244500100312658 +:103b840000106334219800001000072400800624ec +:103b9400ff0044307900852c1000a2a33f00a0143c +:103ba400010031261000b52701001624040060121c +:103bb4002b10d4022b1076020bb062022b10d4020d +:103bc4000200405021a0000023a096020800773094 +:103bd4001300e016ffff1324ff4e400bffff942653 +:103be400a49d400f21284002271002000100032653 +:103bf4000b806200ffff9426f9ff93162000042433 +:103c0400094f400bffff1324a49d400f21284002bd +:103c140027100200010003260100b5260b80620074 +:103c2400ffffd626f8ffd3560000a482a2ffe0527d +:103c340000002482154f400bffff1324a49d400f66 +:103c44002128400227100200010003260b80620095 +:103c5400ffff9426f9ff9316200004240000248219 +:103c640097ff80141000a4a36400bf8f21100002ea +:103c74006000be8f5c00b78f5800b68f5400b58fbc +:103c84005000b48f4c00b38f4800b28f4400b18f02 +:103c94004000b08f0800e0036800bd27019d023c8e +:103ca400bc3c422480200400212044000000828c7b +:103cb40008004000000000006c3c019da83b019df1 +:103cc400a83b019da83b019da83b019da83b019dec +:103cd400a83b019da83b019da83b019da83b019ddc +:103ce400a83b019da83b019da83b019da83b019dcc +:103cf400a83b019da83b019da83b019da83b019dbc +:103d0400a83b019da83b019da83b019da83b019dab +:103d1400a83b019da83b019da83b019da83b019d9b +:103d2400a83b019da83b019da83b019da83b019d8b +:103d3400a83b019da83b019da83b019da83b019d7b +:103d4400a83b019da83b019da83b019da83b019d6b +:103d5400a83b019da83b019da83b019da83b019d5b +:103d6400a83b019da83b019da83b019da83b019d4b +:103d7400a83b019da83b019da83b019da83b019d3b +:103d8400a83b019da83b019da83b019da83b019d2b +:103d9400a83b019da83b019da83b019da83b019d1b +:103da400a83b019da83b019da83b019da83b019d0b +:103db400a83b019da83b019da83b019da83b019dfb +:103dc400a83b019da83b019da83b019da83b019deb +:103dd400a83b019da83b019da83b019da83b019ddb +:103de400a83b019da83b019da83b019da83b019dcb +:103df400a83b019da83b019da83b019da83b019dbb +:103e0400a83b019da83b019da83b019da83b019daa +:103e1400a83b019da83b019d8440019da83b019db9 +:103e2400a83b019da83b019da83b019da83b019d8a +:103e3400a83b019da83b019da83b019da83b019d7a +:103e4400a83b019dd842019da43e019da83b019d34 +:103e5400d042019da83b019da83b019da43e019d2c +:103e6400a83b019da83b019d6843019da83b019d82 +:103e7400a83b019d6043019d8440019da83b019d99 +:103e8400a83b019d2043019da83b019da03e019daf +:103e9400a83b019da83b019d8840019dc00063345f +:103ea400000762307b00401021f060000010653094 +:103eb40006000424100062303b0240100b98850079 +:103ec4007000a28f07004424f8ff0224241082000b +:103ed4000000448c0400458c080042243c00a3af3d +:103ee400f699400f7000a2af3c00a38f21a84000b8 +:103ef4002120a0022128000049a1400f3c00a3afcb +:103f0400040041043c00a38f0080023c26a8550015 +:103f140003007e342120a0022128000049a1400f83 +:103f24001800a0aff402401421b000001900622a66 +:103f34003e0040100a00c22aff0077326e00e22ed3 +:103f4400320240140b00e22eeb51033c1f85633414 +:103f54001900e302039d063c10180000d48bc6240c +:103f6400421903001200622480100200211046004e +:103f74000000448c029d023c187f458c3c00a3af9a +:103f8400f59a400f3800a6af3c00a38f3800a68fe7 +:103f940080200300001903002118830080280300f7 +:103fa400212865002328e502cccc033ccdcc633426 +:103fb400ff00a5301900a3002120400010280000b4 +:103fc4003c00a3afc2100500090042248010020087 +:103fd40021104600f59a400f0000458c3c00a38f49 +:103fe400212040001900e3023800a68f10180000b9 +:103ff400c218030040100300c0180300211043003e +:104004002310e202ff0042308010020021304600fb +:10401400f59a400f0000c58c2120a0024695400f60 +:104024002128400021a840000a00c22a11014010a2 +:10403400029d023c2120a00249a1400f212800003a +:10404400040140140000000002a2400f2120a0023d +:10405400212040002128000035a0400f21b8400055 +:10406400212840004495400f2120a00221b04000a7 +:1040740021a8e0021800a0af3351400b2118000022 +:1040840020006334800063340007623087ff4014eb +:1040940021f06000c0006230c80140142016037c87 +:1040a4002c03400410006230f80140107000a78f08 +:1040b4007000a58f0000a48c0400a524c31704007d +:1040c4007000a5af21a880000302400421f0400045 +:1040d40003006016c00077302598be020100732edd +:1040e40040000224c502e2124100e22a7c02401090 +:1040f400800002241600e0161000a28301000224ae +:104104004603c0131000a2a3029d043c807e8424b5 +:1041140002000724020002244a50400b1400082421 +:10412400213840000400858c2b30c5032c03c05477 +:104134001000a7a32603be500000858c0100422472 +:104144002014027cf6ff4814080084241000a2a363 +:104154002a2053005e0280102a2062022014137c5d +:104164001000a2a3050080120040643003006530f3 +:10417400ffff84260ba085000040643006008010f9 +:104184002a2054002a2074020200805021a000003a +:1041940023a093022a2054001602805004006230a7 +:1041a400231082022000a2af0400623014024010e7 +:1041b4002000a28f02006230d2024010010062305f +:1041c400010065302d0002242b0004240b2045003f +:1041d40021284002a49d400f3c00a3af27100200f9 +:1041e400010004263c00a38f0b8082002000a28fd4 +:1041f400c001401430000424080064303400a4af2b +:10420400ffff7326029d023cc0201300707e5624db +:1042140021b0c4024010130040201e004100e52ad2 +:104224002000633080a013002800a4af219853001d +:104234002400a5afa750400b2c00a3af0e00e0163e +:104244001000a4830000c68e0400c78e2120a002a3 +:10425400328e400f2128c003212040002128600015 +:104264000a0006241b8d400f213800003000422430 +:104274002024027c1000a4a3a49d400f2128400206 +:1042840027100200010003260b806200f8ffd626e7 +:10429400fcff9426fdff7326fdff0224c301621276 +:1042a40040000224b301e2122400a78fe3ffe014cc +:1042b400800002249d01e212c0000224e1ffe21208 +:1042c4001000a4839f50400b00000000a94f400b36 +:1042d400000463347000a78f100066300100e28090 +:1042e4000000e58c0400e4247601c0101000a2a3b1 +:1042f400750140501400a5a3ffff06247201465027 +:104304001400a5a31400a2a31500a5a3020016245b +:104314001400b527ec4e400b7000a4af7000a58fbd +:104324000000a48c0400a524a002801021a8800011 +:1043340000008280b20240507000a5af21b000009e +:104344000100d6262110960000004280fdff405453 +:104354000100d626ec4e400b7000a5afa94f400bd0 +:1043640040006334100062302120c0000a20e200c3 +:1043740025188300ffff6330e54e400b00002282c6 +:10438400e3fd4814029d053c0400633401008424c9 +:10439400ffff8280d6fd4614ffff9124080063349a +:1043a400e550400b01008424a49d400f21284002c5 +:1043b400ffff0324bffd431021886002ae4e400b73 +:1043c40001001026e550400b01008424e550400b09 +:1043d400010084242a000424020144102e00042431 +:1043e400e7fd441421a000000100312600002282d0 +:1043f4002a000424e001441000406334029d053c7b +:104404003c7ba5242120a200010084900400843078 +:10441400dcfd80102198000040201300c098130098 +:10442400219893000100312621986202029d053ce7 +:10443400000022823c7ba5242120a200010084905c +:1044440004008430f4ff8014d0ff7326e44e400b44 +:104454001000072402a2400f2120a002fdfe4014f8 +:10446400212040000200c32afbfe60142128000022 +:10447400029d023c1c7f42243000a48f49a1400fbe +:104484000000458cdf004004edffc326eeffc32689 +:104494001800a3af2024037c9c94400f3c00a3afde +:1044a400212840002120a0026a99400f3000a2afc9 +:1044b40002a2400f212040003c00a38f21b84000fd +:1044c40021a8400021b00000010004240a00e22ecb +:1044d400490240141000a4a3029d043c807e84245d +:1044e4002110000002000524020007243f51400b64 +:1044f400120009242138a0000400868c7601c0141f +:10450400020048240000868c2b30e6027201c0149d +:10451400010042240100e524202c057cf5ff491408 +:10452400080084241000a5a31400082423b88302df +:1045340023b8f30223b8e802ffffe2260bb85300c6 +:104544000300c433ffffe3260400c23345014010d7 +:104554000bb864000200c233e60140100100c2330c +:104564000100c4332d0002242b0003240a1064002c +:1045740021204000a49d400f212840022710020062 +:10458400010003260b8062000a00e05a0800de33b3 +:1045940030000424a49d400f21284002271002006b +:1045a40001000326fffff726f9ffe0160b806200e7 +:1045b4000800de332000beaf029d043c8451400b52 +:1045c400707e9424c0180300211883020000668cb6 +:1045d4000400678c2120a002328e400f21280000a5 +:1045e40021204000212860000a0006241b8d400f72 +:1045f4002138000030004424a49d400f21284002ab +:1046040027100200010003260b8062001000a28321 +:10461400ffff4324201c037ceaff40141000a3a3e3 +:104624001800a28f0c0040181300622a30000424e2 +:10463400a49d400f212840021800a48f01000326e6 +:1046440027100200ffff84240b806200f7ff801c08 +:104654001800a4af1300622afc0040142014137c39 +:10466400120002241000a2a3eeff73262e000424dd +:10467400a49d400f21284002ffff032402004310a1 +:104684001000b483010010269c94400f2120800266 +:1046940021204000f59a400f2128c00202a2400fb9 +:1046a4002120400021a84000ffff82262014027c24 +:1046b40021f00000230080121000a2a3029d053cfb +:1046c400707eb624c01002002110c2020000468c85 +:1046d4000400478c2120a002328e400f2128c00301 +:1046e400212040000a000624213800001b8d400fc1 +:1046f4002128600030004424a49d400f212840025a +:104704001000b48327100200c01814002118c3023b +:104714000000668c0400678c2128c0030100032676 +:104724002120a0021b8d400f0b80620021a84000b5 +:10473400ffff82262014027c21f06000e1ff801636 +:104744001000a2a30a0060122000a78f30000424e6 +:10475400a49d400f212840022710020001000326d7 +:10476400ffff7326f9ff60160b8062002000a78ffd +:10477400d1fce05000002482cffce05a00002482e7 +:1047840020000424a49d400f212840022710020089 +:1047940001000326fffff726f9ffe0160b806200f5 +:1047a400af4e400b000024827000a48f0000958c53 +:1047b40004008424bd4f400b7000a4af5c0140048e +:1047c400100062303a0040107000a78f7000a58f6f +:1047d40021f000000000b58c0400a5243550400be6 +:1047e4007000a5af7000a48f7000a28f0100312665 +:1047f400040084240000548c00002282de4e400b0e +:104804007000a4af2651400b1800a3af5e014054c2 +:10481400039d023ccccc033ccdcc63341900e302b1 +:10482400039d063c10180000d48bc624c218030054 +:104834000900622480100200211046000000448c0c +:10484400029d023c187f458c3c00a3aff59a400fb3 +:104854003800a6af3c00a38f3800a68f4020030089 +:10486400c0180300211883002318e302ff006330fb +:1048740080180300213066000000c58cf59a400fb3 +:10488400212040000850400b2120a0020000e48cad +:104894000400e724c31704007000a7af21a8800018 +:1048a4000bfe410421f040003852400b23a80400c1 +:1048b40021f000000000f58c0400e7243550400b83 +:1048c4007000a7af1400a5a3010016241400b52797 +:1048d400ec4e400b7000a4af23a804002b2015005d +:1048e40023100200030063343550400b23f04400ce +:1048f4003000042421284002a49d400f3c00a3afb3 +:104904002000a58f2710020001000426ffffa52424 +:104914002000a5af0b808200f5ffa0143c00a38ffc +:10492400080067308150400b3400a7af2c00a28fe1 +:104934001c004050029d053c029d043c487e83249b +:104944002800a78f27201400042087000610950252 +:10495400251082002000853206209e020b1085005f +:104964000f00423021106200000044809f50400b31 +:104974001000a4a32800a38f2710130004104300e1 +:1049840006207502252044002000633206107e02b2 +:104994000b20430007008430300084249f50400bd8 +:1049a4001000a4a35152400b5c7ea3243400a48fb6 +:1049b40041fc8050000024822000a58f3efca058ba +:1049c4000000248220000424a49d400f21284002da +:1049d4002000a78f2710020001000326ffffe72411 +:1049e4002000a7aff7ffe0140b806200af4e400b2e +:1049f40000002482effd40142000a0af2000a28f0d +:104a04009c00401408006530080064303400a4aff2 +:104a140002006230930040100100623001006530f2 +:104a24002d0002242b0004240b20450021284002e1 +:104a3400a49d400f3c00a3af2710020001000426f0 +:104a44000b8082008150400b3c00a38f1000a2a376 +:104a540006ff401423986202ffff0224d251400b48 +:104a64001000a2a30800c3330b0060142000a3affe +:104a74000a00e01a0200c23320000424a49d400f5f +:104a8400212840022710020001000326fffff72619 +:104a9400f9ffe0160b8062000200c233910040501f +:104aa4000100de330100c4332d0002242b00032453 +:104ab4000a10640021204000a49d400f21284002d8 +:104ac40027100200010003266f51400b0b80620087 +:104ad4005a50400b0b9844004c51400b1000a5a3b6 +:104ae4002c00e212c000022484fde2121000a28312 +:104af4005650400b2a2053001800a527e0a1400f70 +:104b04002120a0021800a28f6666043cffff422405 +:104b140040180200211062006766842418004400d3 +:104b2400c3170200102000008320040023b0820079 +:104b34000000c32affffc2260bb043002320160047 +:104b44009c94400f2024047c21204000f59a400fbf +:104b54002128a0023000a2af029d023c107f458ca8 +:104b640049a1400f3000a48f6a004104029d023c19 +:104b7400cc4f400bffffd6267000a78f01003126d3 +:104b84000000f38c0400e72400002282e34e400b73 +:104b94007000a7af01000224a500c0131000a2a357 +:104ba400020002240200072400010424212800003a +:104bb400f552400b100008240031050000390400b0 +:104bc400253026012120e0002128c00021384000a2 +:104bd4002b30c5035efdc0541000a2a38200c51390 +:104be4002b30a4020100e2242014027cf2ff4814ba +:104bf400024f04005550400b1000a8a301000224ea +:104c04008100c0131000a2a30200082402000224a1 +:104c140040000424212800000f53400b15000724f2 +:104c2400c0300500c04004002530260121200001c9 +:104c34002128c000214040002b30c5036200c0542d +:104c44001000a8a35d00c5132b30a4020100422468 +:104c54002014027cf2ff4714424f04005550400bcd +:104c64001000a2a367fd4050ffff73268c52400b37 +:104c74002000042466ffa0143400a5af20000424ff +:104c840021284002a49d400f3c00a3af2000a78f21 +:104c94002710020001000426ffffe7242000a7af2d +:104ca4000b8082005affe0103c00a38f20000424f4 +:104cb40021284002a49d400f3c00a3af2000a78ff1 +:104cc4002710020001000426ffffe7242000a7affd +:104cd4000b808200e9ffe0143c00a38f8652400b56 +:104ce4000200623035fec053029d043caf52400bbb +:104cf4002000042424fe4010200004245e51400bb4 +:104d0400000000003afd40102000a28f7550400bb7 +:104d140020000424147f448c49a1400f3000a58f47 +:104d2400010042280100c326cc4f400b0bb06200a7 +:104d34007000a28f07004424f8ff0224241082008c +:104d4400080044247000a4af0000558c3550400b7b +:104d540004005e8c7000a28f07004524f8ff022433 +:104d64002428a2000000a48c0400a28c0800a5241e +:104d74007000a5af21a88000d5fc410421f04000bb +:104d84003852400b23a80400d48b422480b8170067 +:104d940021b8e202029d023c0000e48ef59a400f25 +:104da400187f458c0850400b2120a002029d153c21 +:104db400407eb526cd50400b2120a002a4ffc05058 +:104dc400010042241000a8a35550400b21100001fb +:104dd4002b28a502dafca050010042241000a7a34e +:104de4005550400b2110e0007fffc0500100e22429 +:104df4005550400b1000a2a34c51400b0100082455 +:104e0400ec4e400b21b000000800a22e7fff405062 +:104e1400020008245550400b010002240a00a22e6f +:104e2400bafc4010029d043c5550400b0100022482 +:104e34001000a22e5bff4050020002245550400b8c +:044e44000100022443 :020000040000fa :020000041d01dc -:10399000e0ffbd271c00bfaf1800beaf21f0a003a1 -:1039a0001000c0a300a0023cc02f4224020040a08f -:1039b000fa44400f0000000021184000f0ff023cd4 -:1039c00000f04234241862003000023c0800621407 -:1039d00000000000a810042401000524c28a400f42 -:1039e000000000001000c2a3914e400b0000000038 -:1039f0001400c2277010042421284000b28a400f0e -:103a0000000000001000c2a31000c2830c0040148c -:103a1000000000001400c28f020042341400c2af44 -:103a20001400c28f7010042421284000c28a400f65 -:103a3000000000001000c2a3914e400b00000000e7 -:103a4000000000001000c28321e8c0031c00bf8feb -:103a50001800be8f2000bd270800e0030000000012 -:103a6000f8ffbd270400beaf21f0a003211880009d -:103a70002110a0001000c6af0800c3a30c00c2a70d -:103a800021e8c0030400be8f0800bd270800e00342 -:103a900000000000e0ffbd271c00bfaf1800beaf54 -:103aa00021f0a0031000c0a300a0023cc02f4224bc -:103ab00002004290ff00423004004010000000006d -:103ac0001000c283d14e400b0000000000a0023c59 -:103ad000c02f422401004290ff0042300c004014ed -:103ae0000000000000a0023cc02f4290ff004230c6 -:103af00007004010000000003646400f00000000a4 -:103b00001000c2a31000c2830c004014000000008b -:103b100000a0023cc02f422401004290ff0042302e -:103b200001004224ff00433000a0023cc02f422489 -:103b3000010043a0d04e400b000000000000000038 -:103b40001000c28321e8c0031c00bf8f1800be8f85 -:103b50002000bd270800e00300000000f8ffbd279b -:103b60000400beaf21f0a003211080000800c2a312 -:103b700000a0023c0800c393c02f43a021e8c0036b -:103b80000400be8f0800bd270800e003000000000d -:103b9000f8ffbd270400beaf21f0a00300a0023c47 -:103ba000c02f4290ff00423021e8c0030400be8fc6 -:103bb0000800bd270800e00300000000f8ffbd2753 -:103bc0000400beaf21f0a00300a0023cc02f42249d -:103bd00001004290ff0042300a0040100000000047 -:103be00000a0023cc02f422401004290ff0042305e -:103bf000ffff4224ff00433000a0023cc02f4224bc -:103c0000010043a02110000021e8c0030400be8f82 -:103c10000800bd270800e00300000000e0ffbd270a -:103c20001c00bfaf1800beaf21f0a0031000c0a35e -:103c300000a0023cc02f422401004290ff0042300d -:103c40000a0040100000000000a0023cc02f4224e7 -:103c500001004290ff004230ffff4224ff0043304a -:103c600000a0023cc02f4224010043a000a0023c5f -:103c7000c02f422401004290ff004230090040144e -:103c80000000000000a0023cc02f4290ff00423024 -:103c90000400401000000000dc45400f0000000060 -:103ca0001000c2a31000c28321e8c0031c00bf8f14 -:103cb0001800be8f2000bd270800e00300000000b0 -:103cc000e8ffbd271400bfaf1000beaf21f0a00376 -:103cd0001800c4af00a0023cc02f442421280000db -:103ce0002400062423a0400f000000000300042449 -:103cf000019d023c603a4524ff52400f0000000045 -:103d0000074f400f0000000021e8c0031400bf8fe0 -:103d10001000be8f1800bd270800e003000000005f -:103d2000e0ffbd271c00bfaf1800beaf21f0a0030d -:103d30002000c4af1000c0a3a54e400f000000003b -:103d40001000c2a300a0023cc02f44242128000080 -:103d50002400062423a0400f000000001000c283ae -:103d600021e8c0031c00bf8f1800be8f2000bd27b4 -:103d70000800e00300000000f0ffbd270c00beaf0c -:103d800021f0a003211080001000c2a7f3ff02243d -:103d90000000c2a31000c29782130200ffff42304e -:103da000ff00423003004330020002240a00621484 -:103db000000000001000c29702120200ffff423014 -:103dc000ff0042303f004330010002240200621431 -:103dd000000000000000c0a30000c28321e8c0036f -:103de0000c00be8f1000bd270800e003000000009b -:103df000e0ffbd271c00bfaf1800beaf21f0a0033d -:103e00001000c0a31200c0a71200c227212040004a -:103e1000212800007b82400f000000001000c2a398 -:103e20001000c28339004014000000001200c29745 -:103e3000212040005e4f400f000000001000c2a390 -:103e40001000c28330004014000000001200c2972e -:103e5000ff0042300600432c2700601000000000e5 -:103e600080180200019d023c7c3e42242110620029 -:103e70000000428c0800400000000000943e019dbc -:103e8000a43e019db43e019dc43e019dd43e019dd2 -:103e9000e43e019d01000224f18082a3c34f400b48 -:103ea0000000000002000224f18082a3c34f400bf7 -:103eb0000000000002000224f18082a3c34f400be7 -:103ec0000000000003000224f18082a3c34f400bd6 -:103ed000000000000a000224f18082a3c34f400bbf -:103ee000000000000d000224f18082a30000000009 -:103ef000c34f400b000000000d000224f18082a39c -:103f0000c34f400b00000000f18080a31000c2836b -:103f100021e8c0031c00bf8f1800be8f2000bd2702 -:103f20000800e00300000000f0ffbd270c00beaf5a -:103f300021f0a003211880002110a0001000c3a3cd -:103f40001400c2a31000c29300120200201e027cc3 -:103f50001400c2932016027c251062002016027cf9 -:103f60000200c2a70200c397690402240500621080 -:103f7000000000000200c3976804022404006214d9 -:103f800000000000211000000250400b0000000063 -:103f9000f18082930400401400000000ffff02241f -:103fa0000250400b00000000f18082930000c2a389 -:103fb000fd4f400b000000000000c39300a0023c36 -:103fc0004018030064404224211062000000429423 -:103fd0000200c3970400621400000000ffff0224e7 -:103fe0000250400b000000000000c2930100422478 -:103ff0000000c2a30000c2930d00422ceeff40144b -:10400000000000002110000021e8c0030c00be8f5a -:104010001000bd270800e00300000000c0ffbd271e -:104020003c00bfaf3800beaf21f0a00321408000ac -:104030004800c6af2120e0005400c38f5800c28f53 -:104040004000c8a34400c5a34c00c4a73000c3a7c8 -:104050003400c2a7ffff02241000c2a33400c2979d -:104060001400c2af4400c2937f004230ff004230d0 -:104070001900c2a34000c2931800c2a30800022482 -:104080001a00c2a74800c28f0e00401000000000b6 -:104090004c00c2973506422c27014010000000005a -:1040a0001a00c3974c00c29721106200ffff4230f4 -:1040b0001a00c2a74c00c2971400c38f23106200dd -:1040c0001400c2af5000c28f10004010000000006a -:1040d0003400c3973000c297211062003506422c8d -:1040e00018014010000000001a00c3971400c28f8e -:1040f000ffff44303000c29721108200ffff4230a2 -:1041000021106200ffff42301a00c2a71800c293bc -:10411000211840001900c29321206000212840008e -:10412000ca4f400f000000001000c2a31000c2835d -:1041300007014014000000001a00c2973d06422cff -:10414000dc00401000000000a54e400f0000000001 -:104150001000c2a31000c283000140140000000040 -:104160002000c0af2400c0a71c00c0af4000c39314 -:104170001c00c28f251062001c00c2af4400c29315 -:10418000001a02001c00c28f251062001c00c2af82 -:104190001a00c297001c02001c00c28f251062008a -:1041a0001c00c2af1c00c28f8c10042421284000c8 -:1041b000c28a400f000000001000c2a31000c2839a -:1041c000c6004014000000001c00c0af1c00c28fdd -:1041d000020042341c00c2af1c00c28f78100424bd -:1041e00021284000c28a400f000000001000c2a336 -:1041f0001000c283bc00401400000000fa44400fcd -:104200000000000021184000f0ff023c00f04234a2 -:10421000241862003000023c090062140000000013 -:10422000ac10042401000524c28a400f00000000e5 -:104230001000c2a31000c283ae00401400000000b2 -:104240002000c0af2400c0a7bc50400b00000000fd -:104250001c00c2277810042421284000b28a400f95 -:10426000000000001000c2a31000c2832700401409 -:10427000000000002400c297ffff4230e803422cf8 -:1042800005004014000000002400c297050004242b -:10429000c598400f000000001c00c28f0200423091 -:1042a0000e004014000000002000c2271500033c4f -:1042b0000004643421284000b28a400f000000004e -:1042c0001000c2a31000c2831300401000000000c1 -:1042d0002000c0af4a51400b000000002400c297ec -:1042e000ffff423001004224ffff42302400c2a7fa -:1042f0002400c297ffff42308813422cd4ff4014a1 -:1043000000000000c750400b00000000000000004b -:10431000c750400b00000000000000002000c28fca -:104320005d004010000000002000c28f2800c2afd6 -:104330001a00c2971a00c2a72800c38f1800c2270c -:10434000212060002128400008000624438b400ff4 -:10435000000000001000c2a31000c28368004014d7 -:10436000000000002800c28f080042242800c2afcd -:104370004800c28f10004010000000002800c38fca -:104380004c00c297212060004800c58f21304000ba -:10439000438b400f000000001000c2a31000c28336 -:1043a0005a004014000000004c00c3972800c28f40 -:1043b000211062002800c2af5000c28f14004010cc -:1043c000000000002800c38f1400c28f211062007b -:1043d0002800c2af2800c38f3000c29721206000a0 -:1043e0005000c58f21304000438b400f000000007b -:1043f0001000c2a31000c283470040140000000058 -:104400003000c3972800c28f211062002800c2af7d -:104410002000c28f801002001c00c2af1c00c28f9f -:10442000020042341c00c2af1c00c28f6c10042476 -:1044300021284000c28a400f000000001000c2a3e3 -:104440001000c2833700401400000000fa44400fff -:104450000000000021184000f0ff023c00f0423450 -:10446000241862003000023c1600621400000000b4 -:10447000b010042401000524c28a400f000000008f -:104480001000c2a31000c2830e0040100000000004 -:104490004a51400b00000000074f400f0000000091 -:1044a0001000c2a3fdff02241000c2a35851400b0c -:1044b00000000000ffff02241000c2a35851400b6f -:1044c00000000000074f400f000000001000c2a3d2 -:1044d0001000c2835951400b000000000000000092 -:1044e0004a51400b00000000000000004a51400b00 -:1044f00000000000000000004a51400b00000000d6 -:10450000000000004a51400b0000000000000000c5 -:104510004a51400b00000000000000004a51400bcf -:104520000000000000000000ef4e400f00000000ff -:104530005851400b00000000000000005851400b93 -:1045400000000000000000005851400b0000000077 -:10455000000000005851400b000000000000000067 -:104560001000c28321e8c0033c00bf8f3800be8f1b -:104570004000bd270800e00300000000d8ffbd2771 -:104580002400bfaf2000beaf21f0a0031000c0a3e5 -:104590001400c2277010042421284000b28a400f62 -:1045a000000000001000c2a31000c28312014014da -:1045b000000000001400c28f01004230ff004230b2 -:1045c000fc004010000000001400c22770100424fa -:1045d00021284000b28a400f000000001000c2a352 -:1045e0001000c283f7004014000000001400c38fc5 -:1045f000feff0224241062001400c2af1400c28f18 -:104600007010042421284000c28a400f00000000de -:104610001000c2a31000c283ed004014000000008f -:104620001400c2277010042421284000b28a400fd1 -:10463000000000001000c2a31000c283e700401475 -:104640000000000000a0023cc02f4224010003240f -:10465000020043a01400c28f82100200ffff42300c -:10466000ff0f42301200c2a71200c297cd004010c7 -:10467000000000001c00c0af1c00c22784100424ee -:1046800021284000b28a400f000000001000c2a3a1 -:104690001000c283d4004014000000001c00c38f2f -:1046a00000a0023cc02f4224040043ac1200c39778 -:1046b00000a0023cc02f4224080043ac1c00c38f62 -:1046c0001800c22721206000212840000400062491 -:1046d000e68a400f000000001000c2a31a00c29733 -:1046e000ffff42301a00c2a71000c283c10040146d -:1046f000000000001a00c297ffff42301200c3976b -:104700000c006210000000001200c3971a00c2974c -:10471000ffff4230231062000500422805004014cc -:1047200000000000faff02241000c2a37e52400bda -:10473000000000001800c293ff0043300100022473 -:10474000180062140000000000a0023cc02f4224a8 -:104750000c00428c860040100000000000a0023ccb -:10476000c02f42240c00428c1900c393ff00633019 -:10477000212060001a00c397ffff6330f8ff632415 -:10478000ffff6330212860001c00c38f08006324f2 -:104790002130600009f84000000000005c52400b2e -:1047a000000000001800c293ff0043300200022402 -:1047b000180062140000000000a0023cc02f422438 -:1047c0001000428c6a0040100000000000a0023c73 -:1047d000c02f42241000428c1900c393ff006330a5 -:1047e000212060001a00c397ffff6330f8ff6324a5 -:1047f000ffff6330212860001c00c38f0800632482 -:104800002130600009f84000000000005c52400bbd -:10481000000000001800c293ff004330040002248f -:10482000180062140000000000a0023cc02f4224c7 -:104830001400428c4e0040100000000000a0023c1a -:10484000c02f42241400428c1900c393ff00633030 -:10485000212060001a00c397ffff6330f8ff632434 -:10486000ffff6330212860001c00c38f0800632411 -:104870002130600009f84000000000005c52400b4d -:10488000000000001800c293ff004330060002241d -:10489000180062140000000000a0023cc02f422457 -:1048a0001800428c320040100000000000a0023cc2 -:1048b000c02f42241800428c1900c393ff006330bc -:1048c000212060001a00c397ffff6330f8ff6324c4 -:1048d000ffff6330212860001c00c38f08006324a1 -:1048e0002130600009f84000000000005c52400bdd -:1048f000000000001800c293ff00433005000224ae -:10490000180062140000000000a0023cc02f4224e6 -:104910002000428c160040100000000000a0023c65 -:10492000c02f42242000428c1900c393ff00633043 -:10493000212060001a00c397ffff6330f8ff632453 -:10494000ffff6330212860001c00c38f0800632430 -:104950002130600009f84000000000005c52400b6c -:1049600000000000faff02247f52400b000000000c -:1049700000a0023cc02f422402004290ff004230bf -:104980000500401000000000644e400f00000000d1 -:104990007f52400b00000000211000007f52400bae -:1049a00000000000feff02241000c2a37e52400b54 -:1049b00000000000f4ff02241000c2a37e52400b4e -:1049c00000000000000000007e52400b00000000cc -:1049d000000000007e52400b0000000000000000bc -:1049e0007e52400b00000000000000007e52400b91 -:1049f00000000000000000001000c28321e8c00396 -:104a00002400bf8f2000be8f2800bd270800e003d0 -:104a100000000000e0ffbd271c00bfaf1800beafc4 -:104a200021f0a0031000c0a35f51400f0000000060 -:104a30001000c2a31000c28321e8c0031c00bf8f76 -:104a40001800be8f2000bd270800e0030000000012 -:104a5000e0ffbd271c00bfaf1800beaf21f0a003d0 -:104a60002000c4af2400c5af2118c0002110e00011 -:104a70002800c3a72c00c2a31000c0a32000c28f2f -:104a800007004010000000002400c28f0400401006 -:104a9000000000002800c2970d0040140000000034 -:104aa0002c00c2930600401000000000644e400f2e -:104ab000000000001000c2a3f852400b00000000ec -:104ac000f4ff02241000c2a3f852400b00000000c3 -:104ad0002800c39700a0023cc02f42240800428c4b -:104ae0002b1043000500401000000000f4ff0224da -:104af0001000c2a3f852400b0000000000a0023cce -:104b0000c02f42240400438c2000c28f2b1043008e -:104b10000e004014000000002800c3972000c28f40 -:104b20002118620000a0023cc02f42240400448ce3 -:104b300000a0023cc02f42240800428c21108200b9 -:104b40002b1043000500401000000000f4ff022479 -:104b50001000c2a3f852400b000000002800c297ca -:104b60002000c48f2400c58f21304000e68a400f0a -:104b7000000000001000c2a31000c2831700401400 -:104b8000000000002c00c2930f0040140000000041 -:104b900000a0023cc02f42240400438c00a0023c31 -:104ba000c02f42240800428c211862002800c497bc -:104bb0002000c28f21108200231062000400422cca -:104bc0000700401000000000644e400f000000008d -:104bd0001000c2a3f852400b0000000000000000cb -:104be0001000c28321e8c0031c00bf8f1800be8fd5 -:104bf0002000bd270800e00300000000f0ffbd27f3 -:104c00000c00beaf21f0a003211080001400c5af3e -:104c10001000c2a30000c0a31000c2930700432ce1 -:104c2000330060100000000080180200019d023c6b -:104c3000444c4224211062000000428c08004000d5 -:104c400000000000f04c019d784c019d604c019dde -:104c5000a84c019d904c019dd84c019dc04c019ddc -:104c600000a0023cc02f42241400c38f100043acac -:104c70003f53400b0000000000a0023cc02f422424 -:104c80001400c38f0c0043ac3f53400b00000000e6 -:104c900000a0023cc02f42241400c38f140043ac78 -:104ca0003f53400b0000000000a0023cc02f4224f4 -:104cb0001400c38f1c0043ac3f53400b00000000a6 -:104cc00000a0023cc02f42241400c38f180043ac44 -:104cd0003f53400b0000000000a0023cc02f4224c4 -:104ce0001400c38f200043ac3f53400b0000000072 -:104cf000f4ff02240000c2a3000000000000c283f1 -:104d000021e8c0030c00be8f1000bd270800e0039f -:104d100000000000f8ffbd270400beaf21f0a00393 -:104d20000800c4af2110a0000c00c2a72110000091 -:104d300021e8c0030400be8f0800bd270800e0037f -:104d400000000000f8ffbd270400beaf21f0a00363 -:104d50000800c4af2110a0000c00c2a72110000061 -:104d600021e8c0030400be8f0800bd270800e0034f -:104d700000000000f8ffbd270400beaf21f0a00333 -:104d8000211880002110a0000800c3a30c00c2a3ba -:104d90000800c293401802000c00c293261862005b -:104da000029d023c9c794224211062000000429046 -:104db00021e8c0030400be8f0800bd270800e003ff -:104dc00000000000e8ffbd271400bfaf1000beaf19 -:104dd00021f0a003211080001c00c5af2000c6af49 -:104de0001800c2a38653400b000000001800c393b4 -:104df0001c00c28f000042901c00c48f010084245c -:104e00001c00c4af21206000212840005d53400fea -:104e1000000000001800c2a32000c28f2b10020067 -:104e2000ff0042302000c38fffff63242000c3af88 -:104e3000eeff4014000000001800c29321e8c003f8 -:104e40001400bf8f1000be8f1800bd270800e003bc -:104e500000000000c8ffbd273400bfaf3000beaf68 -:104e60002c00b0af21f0a003211880003c00c5af9a -:104e70004000c6af4400c7af4800c28f3800c3a38c -:104e80002000c2a3050002241000c2a33800c29370 -:104e90001400c2a33800c2933dff42240d00432cee -:104ea0009c0060100000000080180200019d023c80 -:104eb000c44e4224211062000000428c08004000d1 -:104ec000000000001450019d344f019d1451019dbc -:104ed0001451019dac4f019dac4f019d9c50019d13 -:104ee000f84e019d1451019d1451019d1451019dd5 -:104ef0001451019d844f019d3c00c28f0214020099 -:104f0000ff0042301500c2a33c00c28f0212020013 -:104f1000ff0042301600c2a33c00c28fff004230a7 -:104f20001700c2a3050002241000c2a34854400b7e -:104f3000000000003c00c28f02120200ff0042305d -:104f40001500c2a32000c29306004010000000001c -:104f50001500c39380ff022425106200ff00423039 -:104f60001500c2a33c00c28fff0042301600c2a34e -:104f70001700c0a3050002241000c2a34854400b30 -:104f800000000000ffff02241500c2a3ffff02245f -:104f90001600c2a3ffff02241700c2a305000224cb -:104fa0001000c2a34854400b000000003c00c28f18 -:104fb00002140200ff0042301500c2a33c00c28f61 -:104fc00002120200ff0042301600c2a33c00c28f52 -:104fd000ff0042301700c2a34400c28f0214020037 -:104fe000ff0042301800c2a34400c28f0212020028 -:104ff000ff0042301900c2a34400c28fff004230bc -:105000001a00c2a3080002241000c2a34854400b97 -:10501000000000003c00c28f02120200ff0042307c -:105020001500c2a32000c29306004010000000003b -:105030001500c39380ff022425106200ff00423058 -:105040001500c2a33c00c28fff0042301600c2a36d -:105050004000c28f02160200ff0042301700c2a3b8 -:105060004000c28f02140200ff0042301800c2a3a9 -:105070004000c28f02120200ff0042301900c2a39a -:105080004000c28fff0042301a00c2a30800022471 -:105090001000c2a34854400b000000003c00c28f27 -:1050a00002140200ff0042301500c2a33c00c28f70 -:1050b00002120200ff0042301600c2a33c00c28f61 -:1050c000ff0042301700c2a34000c28f0216020048 -:1050d000ff0042301800c2a34000c28f0214020039 -:1050e000ff0042301900c2a34000c28f021202002a -:1050f000ff0042301a00c2a34000c28fff004230be -:105100001b00c2a3090002241000c2a34854400b94 -:1051100000000000ffff02246b54400b0000000061 -:105120001c81829312004014000000001000c29302 -:10513000ffff50241000c293ffff42241400c32736 -:105140007f00042421286000213040007153400f6b -:105150000000000040100200ff0043301000c22792 -:1051600021105000040043a05f54400b00000000d9 -:105170001000c293ffff42241000c2a31000c2938c -:105180001400c32721206000212840005153400f04 -:10519000000000000400401000000000ffff022497 -:1051a0006b54400b000000002110000021e8c003f8 -:1051b0003400bf8f3000be8f2c00b08f3800bd2769 -:1051c0000800e00300000000e0ffbd271c00bfafa7 -:1051d0001800beaf21f0a003211080002000c2a360 -:1051e0002000c393cf0002240b00621400000000d3 -:1051f0001100c22721204000010005244553400f23 -:10520000000000000400401000000000ffff022426 -:10521000c254400b000000000a0002241000c2a388 -:105220001100c22721204000010005244553400ff2 -:10523000000000000400401000000000ffff0224f6 -:10524000c254400b000000001100c2932000c39321 -:1052500009006210000000001000c2832a10020042 -:10526000ff0042301000c393ffff63241000c3a36c -:10527000ebff4014000000001000c2830400410452 -:1052800000000000ffff0224c254400b0000000099 -:105290000a0002241000c2a31100c22721204000ee -:1052a000010005244553400f000000000400401099 -:1052b00000000000ffff0224c254400b0000000069 -:1052c0001100c29309004010000000001000c283ca -:1052d0002a100200ff0042301000c393ffff632436 -:1052e0001000c3a3ecff4014000000001000c283b4 -:1052f0000400410400000000ffff0224c254400be0 -:10530000000000002110000021e8c0031c00bf8f36 -:105310001800be8f2000bd270800e0030000000039 -:10532000e0ffbd271c00bfaf1800beaf21f0a003f7 -:1053300001000424c598400f000000001000a0af39 -:10534000cf00042421280000213000002138000073 -:105350009553400f00000000cf0004247254400f0a -:105360000000000001000424c598400f0000000068 -:1053700021e8c0031c00bf8f1800be8f2000bd278e -:105380000800e00300000000d8ffbd272400bfafe5 -:105390002000beaf21f0a0032800c4af2118a00058 -:1053a0002110c0002c00c3a73000c2a31600c0a368 -:1053b0001200c0a72c00c2970120422c050040100b -:1053c000000000002c00c2971400c2a7f754400b45 -:1053d00000000000002002241400c2a70a000224da -:1053e0001000c2a71a00c227212040000100052496 -:1053f0004553400f00000000050040100000000071 -:10540000ffff02241600c2a31455400b0000000049 -:105410001a00c293f0004330f00002240b00621027 -:10542000000000001000c2872b100200ff00423075 -:105430001000c397ffff63241000c3a7e9ff4014c7 -:10544000000000001455400b0000000000000000a8 -:105450001600c383ffff0224350062100000000025 -:105460001000c2870500401c00000000ffff02245e -:105470001600c2a34d55400b000000001200c28769 -:105480002800c38f211862001400c29721206000f9 -:10549000212840004553400f000000000500401047 -:1054a00000000000ffff02241600c2a34d55400b70 -:1054b000000000003000c2930f0040140000000004 -:1054c0001c8182930c004014000000001800c227c9 -:1054d00021204000020005244553400f0000000039 -:1054e0000500401000000000ffff02241600c2a3c8 -:1054f0004d55400b000000001200c3971400c297e6 -:1055000021106200ffff42301200c2a71400c297b0 -:105510002c00c397231062002c00c2a72c00c29756 -:10552000a4ff4014000000004d55400b0000000097 -:10553000000000001600c28321e8c0032400bf8fd2 -:105540002000be8f2800bd270800e00300000000f7 -:10555000d8ffbd272400bfaf2000beaf21f0a003bd -:105560002800c4af2110a0002c00c2a71000c0a7c3 -:105570001400c0a31800c0a72c00c2970120422c21 -:1055800005004010000000002c00c2971200c2a7c6 -:105590006855400b00000000002002241200c2a742 -:1055a000f0ff02241600c2a31000c2870d004014b1 -:1055b000000000002c00c2970120422c0500401082 -:1055c00000000000030002241500c2a38355400b15 -:1055d00000000000010002241500c2a38355400b07 -:1055e000000000002c00c2970120422c0500401052 -:1055f00000000000030002241500c2a38355400be5 -:1056000000000000020002241500c2a31600c3938c -:105610001500c29325106200ff0042301600c2a39d -:105620001600c22721204000010005245153400fdd -:10563000000000000500401000000000ffff0224f1 -:105640001400c2a3bb55400b000000001000c2872d -:105650002800c38f211862001200c2972120600029 -:10566000212840005153400f000000000500401069 -:1056700000000000ffff02241400c2a3bb55400b32 -:10568000000000001c8182930c0040140000000008 -:105690001800c22721204000020005245153400f6a -:1056a000000000000500401000000000ffff022481 -:1056b0001400c2a3bb55400b000000001000c397ac -:1056c0001200c29721106200ffff42301000c2a7f3 -:1056d0002c00c3971200c297231062002c00c2a7af -:1056e0002c00c297a4ff4014000000001400c283e5 -:1056f00021e8c0032400bf8f2000be8f2800bd27f3 -:105700000800e00300000000d8ffbd272400bfaf61 -:105710002000beaf21f0a0032800c4af2c00c5af0d -:10572000c9ff02241800c2a31900c0a32800c28f19 -:105730003100422c0500401000000000c3ff02248d -:105740001800c2a3010002241900c2a31800c293ca -:105750001900c3931000a3af212040002800c58f7b -:105760002c00c68f040007249553400f0000000052 -:105770000400401000000000ffff0224eb55400b26 -:10578000000000001800c293212040007254400f16 -:10579000000000000400401000000000ffff022491 -:1057a000eb55400b000000002110000021e8c00371 -:1057b0002400bf8f2000be8f2800bd270800e00313 -:1057c00000000000d8ffbd272400bfaf2000beafff -:1057d00021f0a0032800c4af2c00c5af2110c000e9 -:1057e0003000c2a73000c2971000a0afc700042449 -:1057f0002800c58f21300000213840009553400f0c -:10580000000000000400401000000000ffff022420 -:105810003f56400b00000000c70004247254400fa4 -:10582000000000000400401000000000ffff022400 -:105830003f56400b000000003000c2972c00c48f80 -:10584000212840005455400f000000000400401083 -:1058500000000000ffff02243f56400b0000000044 -:105860001c81829305004014000000000200022405 -:105870001800c2a32156400b0000000003000224c0 -:105880001800c2a31800c2931c00c3272120600087 -:10589000212840004553400f000000000400401044 -:1058a00000000000ffff02243f56400b00000000f4 -:1058b0001800c293ffff42241800c3272110620082 -:1058c0000400429009004014000000001800c29338 -:1058d000feff42241800c3272110620004004390f9 -:1058e000c30002240400621000000000ffff022435 -:1058f0003f56400b000000002110000021e8c003cb -:105900002400bf8f2000be8f2800bd270800e003c1 -:1059100000000000d8ffbd272400bfaf2000beafad -:1059200021f0a0032800c4af2c00c5afcaff022499 -:105930001800c2a31900c0a32800c28f0001422c86 -:105940000500401000000000c4ff02241800c2a39c -:10595000010002241900c2a31800c2931900c393c6 -:105960001000a3af212040002800c58f2130000087 -:10597000040007249553400f00000000040040106d -:1059800000000000ffff02248756400b00000000cb -:105990001800c293212040007254400f0000000004 -:1059a0000400401000000000ffff02248756400b57 -:1059b000000000001900c2931c00c32721206000d2 -:1059c0000400052421304000e254400f0000000094 -:1059d0000400401000000000ffff02248756400b27 -:1059e000000000001c00c293211840001d00c2935b -:1059f00000120200251862001e00c293001402006b -:105a0000251862001f00c2930016020025186200cc -:105a10002c00c28f000043ac2110000021e8c0031d -:105a20002400bf8f2000be8f2800bd270800e003a0 -:105a300000000000e0ffbd271c00bfaf1800beaf94 -:105a400021f0a0032000c4af2400c5af2110c00086 -:105a50002800c2a72800c2971000a0afc8000424e5 -:105a60002000c58f21300000213840009553400fa1 -:105a7000000000000400401000000000ffff0224ae -:105a8000b656400b00000000c80004247254400fba -:105a9000000000000400401000000000ffff02248e -:105aa000b656400b000000002800c2972400c48fa7 -:105ab0002128400021300000e254400f0000000087 -:105ac0000400401000000000ffff0224b656400b07 -:105ad000000000002110000021e8c0031c00bf8f5f -:105ae0001800be8f2000bd270800e0030000000062 -:105af000e0ffbd271c00bfaf1800beaf21f0a00320 -:105b000024e804344257400f000000001000c2afe8 -:105b10001000c38f8fff0224241062001000c2af58 -:105b20001000c28f500042341000c2af24e8043489 -:105b30001000c58f7757400f0000000021e8c00318 -:105b40001c00bf8f1800be8f2000bd270800e00397 -:105b500000000000e0ffbd271c00bfaf1800beaf73 -:105b600021f0a0031000a0afcf00042421280000e2 -:105b700021300000213800009553400f0000000044 -:105b8000cf0004247254400f0000000021100000d8 -:105b900021e8c0031c00bf8f1800be8f2000bd2766 -:105ba0000800e00300000000f8ffbd270400beafbe -:105bb00021f0a00321e8c0030400be8f0800bd2728 -:105bc0000800e00300000000e0ffbd271c00bfaf9d -:105bd0001800beaf21f0a0031400c0af1c8180a349 -:105be0001400c22724e80434212840005357400ff2 -:105bf000000000000d004010000000000100022421 -:105c00001c8182a31400c22724e804342128400008 -:105c10005357400f00000000040040100000000037 -:105c2000faff02243257400b000000001c818293cf -:105c300018004014000000001400c38ff3ff02247a -:105c4000241062001400c2af1400c38f8fff02241f -:105c5000241062001400c2af1400c28f50004234fe -:105c60001400c2af1400c28f24e80434212840007d -:105c70007757400f000000000400401000000000b3 -:105c8000faff02243257400b0000000001000224fa -:105c90001c8182a3001004241000c2272128400088 -:105ca0005357400f000000000400401000000000a7 -:105cb000faff02243257400b00000000bc56400f90 -:105cc000000000002110000021e8c0031c00bf8f6d -:105cd0001800be8f2000bd270800e0030000000070 -:105ce000f8ffbd270400beaf21f0a0031c8180a3f4 -:105cf0002110000021e8c0030400be8f0800bd276a -:105d00000800e00300000000e0ffbd271c00bfaf5b -:105d10001800beaf21f0a0032000c4af2000c48f44 -:105d20001000c227212840005357400f00000000f8 -:105d30001000c28f21e8c0031c00bf8f1800be8f67 -:105d40002000bd270800e00300000000e0ffbd27a1 -:105d50001c00bfaf1800beaf21f0a0032000c4afed -:105d60002400c5af0a0002241000c2a36857400bec -:105d7000000000002000c48f2400c58f4556400f4e -:105d8000000000000400401400000000211000008a -:105d90007157400b00000000c854400f0000000085 -:105da0001000c2932b100200ff0042301000c3937a -:105db000ffff63241000c3a3eeff401400000000a7 -:105dc000faff022421e8c0031c00bf8f1800be8f19 -:105dd0002000bd270800e00300000000e0ffbd2711 -:105de0001c00bfaf1800beaf21f0a0032000c4af5d -:105df0002400c5af0a0002241000c2a38c57400b38 -:105e0000000000002000c48f2400c58fc255400f41 -:105e100000000000040040140000000021100000f9 -:105e20009557400b00000000c854400f00000000d0 -:105e30001000c2932b100200ff0042301000c393e9 -:105e4000ffff63241000c3a3eeff40140000000016 -:105e5000faff022421e8c0031c00bf8f1800be8f88 -:105e60002000bd270800e00300000000d8ffbd2788 -:105e70002400bfaf2000beaf21f0a0032800c4afb4 -:105e80002c00c5af2110c0003000c2a70a000224b8 -:105e90001000c2a31800c0a31900c0a33000c3970c -:105ea0000100022407006214000000000200022426 -:105eb0003000c2a71800c2271400c2afc957400b58 -:105ec000000000002c00c28f1400c2afc957400b65 -:105ed000000000003000c2972800c48f1400c58f56 -:105ee000213040008d56400f000000000b00401490 -:105ef000000000001800c2271400c38f04006214c1 -:105f0000000000001800c3932c00c28f000043a0c3 -:105f100021100000d257400b00000000c854400f71 -:105f2000000000001000c2932b100200ff0042305e -:105f30001000c393ffff63241000c3a3e5ff4014c8 -:105f400000000000faff022421e8c0032400bf8ff4 -:105f50002000be8f2800bd270800e00300000000dd -:105f6000e0ffbd271c00bfaf1800beaf21f0a003ab -:105f70002000c4af2400c5af2110c0002800c2a774 -:105f80000a0002241000c2a32800c39701000224c3 -:105f90001400621400000000020002242800c2a7be -:105fa000fa57400b000000002800c2972000c48f61 -:105fb0002400c58f21304000f155400f0000000043 -:105fc0000400401400000000211000000358400ba2 -:105fd00000000000c854400f00000000fa57400bba -:105fe00000000000000000001000c2932b1002000f -:105ff000ff0042301000c393ffff63241000c3a3cf -:10600000e9ff401400000000faff022421e8c00369 -:106010001c00bf8f1800be8f2000bd270800e003c2 -:1060200000000000d8ffbd272400bfaf2000beaf96 -:1060300021f0a0032800c4af1000c0a30500022473 -:106040001400c2a30100023c0802443404000524e9 -:10605000c28a400f00000000ff0043301000c293ce -:1060600021106200ff0042301000c2a31400c2934e -:106070000100033c0c02643421284000c28a400f16 -:1060800000000000ff0043301000c29321106200a6 -:10609000ff0042301000c2a30100023c140244344d -:1060a00001000524c28a400f00000000ff004330b9 -:1060b0001000c29321106200ff0042301000c2a302 -:1060c0000100023c1c02443484100524c28a400fa3 -:1060d00000000000ff0043301000c2932110620056 -:1060e000ff0042301000c2a30100023c040244340d -:1060f00081000524c28a400f00000000ff004330e9 -:106100001000c29321106200ff0042301000c2a3b1 -:106110001800c2270100033c180264342128400003 -:10612000b28a400f00000000ff0043301000c2930d -:1061300021106200ff0042301000c2a31000c28391 -:1061400007004014000000001800c38f0100022463 -:10615000efff6214000000005958400b00000000df -:10616000000000001000c283060040140000000080 -:1061700084100424a48a400f000000006258400be1 -:1061800000000000211000001800c2af1800c28fec -:10619000ff0043302800c28f000043a01000c283dc -:1061a00021e8c0032400bf8f2000be8f2800bd2738 -:1061b0000800e00300000000d8ffbd272400bfafa7 -:1061c0002000beaf21f0a0032800c4af2c00c5af53 -:1061d0003000c6af1c00c0af1000c0a30b000224eb -:1061e0001400c2a32c00c28f02140200ff00423030 -:1061f0001500c2a32c00c28f02120200ff00423021 -:106200001600c2a32c00c28fff0042301700c2a3a9 -:10621000a5ff02241800c2a30100023c0802443476 -:106220003000c58fc28a400f00000000ff004330dd -:106230001000c29321106200ff0042301000c2a380 -:106240001400c293211840001500c29300120200ee -:10625000251862001600c29300140200251862007f -:106260001700c29300160200251062000100033cd3 -:106270000c02643421284000c28a400f0000000054 -:10628000ff0043301000c29321106200ff00423033 -:106290001000c2a31800c2930100033c1002643432 -:1062a00021284000c28a400f00000000ff00433058 -:1062b0001000c29321106200ff0042301000c2a300 -:1062c0000100023c140244341f000524c28a400f1e -:1062d00000000000ff0043301000c2932110620054 -:1062e000ff0042301000c2a30100023c1c024434f3 -:1062f0002800c58fc28a400f00000000ff00433015 -:106300001000c29321106200ff0042301000c2a3af -:106310000100023c0402443485000524c28a400f77 -:1063200000000000ff0043301000c2932110620003 -:10633000ff0042301000c2a31c00c2270100033c32 -:106340001802643421284000b28a400f0000000087 -:10635000ff0043301000c29321106200ff00423062 -:106360001000c2a31000c283070040140000000008 -:106370001c00c38f01000224efff62140000000024 -:10638000e358400b00000000000000001000c28332 -:1063900021e8c0032400bf8f2000be8f2800bd2746 -:1063a0000800e00300000000d8ffbd272400bfafb5 -:1063b0002000beaf21f0a0032800c4af1800c0af7a -:1063c0001000c0a3200002241400c2a32800c28f22 -:1063d00002140200ff0042301500c2a32800c28f41 -:1063e00002120200ff0042301600c2a32800c28f32 -:1063f000ff0042301700c2a30100023c08024434ef -:1064000021280000c28a400f00000000ff00433036 -:106410001000c29321106200ff0042301000c2a39e -:106420001400c293211840001500c293001202000c -:10643000251862001600c29300140200251862009d -:106440001700c29300160200251062000100033cf1 -:106450000c02643421284000c28a400f0000000072 -:10646000ff0043301000c29321106200ff00423051 -:106470001000c2a30100023c140244340f000524a2 -:10648000c28a400f00000000ff0043301000c2939a -:1064900021106200ff0042301000c2a30100023c44 -:1064a0001c02443421280000c28a400f0000000072 -:1064b000ff0043301000c29321106200ff00423001 -:1064c0001000c2a30100023c0402443484000524ed -:1064d000c28a400f00000000ff0043301000c2934a -:1064e00021106200ff0042301000c2a31800c22732 -:1064f0000100033c1802643421284000b28a400f96 -:1065000000000000ff0043301000c2932110620021 -:10651000ff0042301000c2a31000c28307004014e5 -:10652000000000001800c38f01000224efff621476 -:10653000000000005059400b000000000000000067 -:106540001000c28321e8c0032400bf8f2000be8f4b -:106550002800bd270800e00300000000d8ffbd2789 -:106560002400bfaf2000beaf21f0a0031800c0afd1 -:106570001000c0a3060002241400c2a30100023cc4 -:106580000802443421280000c28a400f00000000a5 -:10659000ff0043301000c29321106200ff00423020 -:1065a0001000c2a31400c2930100033c0c02643427 -:1065b00021284000c28a400f00000000ff00433045 -:1065c0001000c29321106200ff0042301000c2a3ed -:1065d0000100023c1402443401000524c28a400f29 -:1065e00000000000ff0043301000c2932110620041 -:1065f000ff0042301000c2a30100023c1c024434e0 -:1066000021280000c28a400f00000000ff00433034 -:106610001000c29321106200ff0042301000c2a39c -:106620000100023c0402443481000524c28a400f68 -:1066300000000000ff0043301000c29321106200f0 -:10664000ff0042301000c2a31800c2270100033c23 -:106650001802643421284000b28a400f0000000074 -:10666000ff0043301000c29321106200ff0042304f -:106670001000c2a31000c2830700401400000000f5 -:106680001800c38f01000224efff62140000000015 -:10669000a759400b00000000000000001000c2835a -:1066a00021e8c0032400bf8f2000be8f2800bd2733 -:1066b0000800e00300000000d8ffbd272400bfafa2 -:1066c0002000beaf21f0a0031800c0af1000c0a38f -:1066d000040002241400c2a30100023c0802443456 -:1066e00021280000c28a400f00000000ff00433054 -:1066f0001000c29321106200ff0042301000c2a3bc -:106700001400c2930100033c0c02643421284000b1 -:10671000c28a400f00000000ff0043301000c29307 -:1067200021106200ff0042301000c2a30100023cb1 -:106730001402443401000524c28a400f0000000006 -:10674000ff0043301000c29321106200ff0042306e -:106750001000c2a30100023c1c02443421280000a6 -:10676000c28a400f00000000ff0043301000c293b7 -:1067700021106200ff0042301000c2a30100023c61 -:106780000402443481000524c28a400f0000000046 -:10679000ff0043301000c29321106200ff0042301e -:1067a0001000c2a31800c2270100033c1802643481 -:1067b00021284000b28a400f00000000ff00433053 -:1067c0001000c29321106200ff0042301000c2a3eb -:1067d0001000c28307004014000000001800c38f9f -:1067e00001000224efff621400000000fe59400b7c -:1067f00000000000000000001000c28321e8c00378 -:106800002400bf8f2000be8f2800bd270800e003b2 -:1068100000000000d8ffbd272400bfaf2000beaf9e -:1068200021f0a0032800c4af2c00c5af3000c6afd4 -:106830001800c0af1000c0a3020002241400c2a3bd -:106840002c00c28f02140200ff0042301500c2a3c8 -:106850002c00c28f02120200ff0042301600c2a3b9 -:106860002c00c28fff0042301700c2a30100023c7f -:106870000802443421280000c28a400f00000000b2 -:10688000ff0043301000c29321106200ff0042302d -:106890001000c2a31400c293211840001500c29337 -:1068a00000120200251862001600c29300140200b4 -:1068b000251862001700c29300160200251062001e -:1068c0000100033c0c02643421284000c28a400fbe -:1068d00000000000ff0043301000c293211062004e -:1068e000ff0042301000c2a30100023c14024434f5 -:1068f0000f000524c28a400f00000000ff00433053 -:106900001000c29321106200ff0042301000c2a3a9 -:106910000100023c1c0244342800c58fc28a400f8b -:1069200000000000ff0043301000c29321106200fd -:10693000ff0042301000c2a33000c28f0098427c9a -:1069400000120200840042340100033c040264345b -:1069500021284000c28a400f00000000ff004330a1 -:106960001000c29321106200ff0042301000c2a349 -:106970001800c2270100033c18026434212840009b -:10698000b28a400f00000000ff0043301000c293a5 -:1069900021106200ff0042301000c2a31000c28329 -:1069a00007004014000000001800c38f01000224fb -:1069b000efff621400000000715a400b000000005d -:1069c000000000001000c28321e8c0032400bf8f34 -:1069d0002000be8f2800bd270800e0030000000053 -:1069e000e0ffbd271c00bfaf1800beaf21f0a00321 -:1069f0002000c4af2400c5af2800c6af1000c0a35c -:106a00000d00043c2400c58f2800c68f6e58400f2f -:106a1000000000001000c2a31000c283090040144f -:106a2000000000000d00043c2000c58f2800c68f28 -:106a3000e68a400f000000001000c2a3925a400beb -:106a400000000000000000001000c28321e8c00325 -:106a50001c00bf8f1800be8f2000bd270800e00378 -:106a600000000000d0ffbd272c00bfaf2800beaf44 -:106a700021f0a0033000c4af3400c5af2110c00026 -:106a80003800c2a71000c0a33800c2970d00043c14 -:106a90003400c58f21304000438b400f00000000c0 -:106aa000ff0043301000c29321106200ff0042300b -:106ab0001000c2a31400c0af1800c0afdd5a400bd5 -:106ac000000000005759400f00000000260040144d -:106ad000000000003800c2970d00043c3000c58f54 -:106ae00021304000055a400f000000001e004014f5 -:106af000000000001c00c0afcf5a400b0000000097 -:106b00002000c227212040000958400f000000004b -:106b100014004014000000002000c2930100423025 -:106b200006004014000000001800c28f010042243b -:106b30001800c2afda5a400b000000001c00c28fe0 -:106b4000010042241c00c2af1c00c38f50c302349a -:106b50002a106200eaff401400000000da5a400bdd -:106b600000000000000000001400c28f0100422459 -:106b70001400c2af1400c28f040042280500401068 -:106b8000000000001800c28f02004228cdff401410 -:106b900000000000ae59400f000000001000c2a32a -:106ba0001800c28f020042280300401000000000bd -:106bb000f4ff02241000c2a31000c28321e8c00326 -:106bc0002c00bf8f2800be8f3000bd270800e003d7 -:106bd00000000000d8ffbd272400bfaf2000beafdb -:106be00021f0a0031c00c0af1000c0af1400c0a370 -:106bf0009fff02241800c2a30100023c0802443493 -:106c000004000524c28a400f00000000ff0043304a -:106c10001400c29321106200ff0042301400c2a38e -:106c20001800c2930100033c0c0264342128400088 -:106c3000c28a400f00000000ff0043301400c293de -:106c400021106200ff0042301400c2a30100023c88 -:106c50001402443401000524c28a400f00000000e1 -:106c6000ff0043301400c29321106200ff00423045 -:106c70001400c2a30100023c1c0244348410052409 -:106c8000c28a400f00000000ff0043301400c2938e -:106c900021106200ff0042301400c2a30100023c38 -:106ca0000402443481000524c28a400f0000000021 -:106cb000ff0043301400c29321106200ff004230f5 -:106cc0001400c2a31c00c2270100033c1802643454 -:106cd00021284000b28a400f00000000ff0043302e -:106ce0001400c29321106200ff0042301400c2a3be -:106cf0001400c28312004014000000001000c28f74 -:106d0000010042241000c2af1000c28ff501422cd6 -:106d10000500401400000000fbff02241400c2a381 -:106d2000515b400b000000001c00c38f01000224d7 -:106d3000e4ff621400000000515b400b0000000003 -:106d4000000000001400c283060040140000000090 -:106d500084100424a48a400f000000005a5b400bfa -:106d600000000000211000001c00c2af1c00c28ff8 -:106d700021e8c0032400bf8f2000be8f2800bd275c -:106d80000800e00300000000e0ffbd271c00bfafcb -:106d90001800beaf21f0a0032000c4af2400c5af8f -:106da0002800c6af1000c0a32800c38f01800234a2 -:106db0002b1062001a004014000000002000c48f55 -:106dc0002400c58f00800634785a400f0000000070 -:106dd0001000c2a31000c28319004014000000007c -:106de0002800c28f008042242800c2af2400c38f35 -:106df00000800234211062002400c2af2000c38f43 -:106e000000800234211062002000c2af2800c38f2e -:106e1000018002342b106200e8ff401000000000e7 -:106e20002000c48f2400c58f2800c68f785a400fd9 -:106e3000000000001000c2a3915b400b00000000a6 -:106e4000000000001000c28321e8c0031c00bf8fb7 -:106e50001800be8f2000bd270800e00300000000de -:106e6000d8ffbd272400bfaf2000beaf21f0a00394 -:106e70002800c4af2c00c5af3000c6af1000c0a3bf -:106e8000000102241400c2af2c00c38f1400c28f73 -:106e90001b006200f4014000101000001800c2af97 -:106ea0003000c28f0500401400000000f4ff0224ef -:106eb0001000c2a3045c400b000000001800c28f49 -:106ec0004d004010000000001400c38f1800c28f56 -:106ed000231062001c00c2af3000c38f1c00c28fa1 -:106ee0002b10430005004010000000001c00c28f62 -:106ef000ffff4230c15b400b000000003000c28f3a -:106f0000ffff42302c00c48f2800c58f2130400085 -:106f1000995a400f000000000500401000000000da -:106f2000f4ff02241000c2a3045c400b0000000028 -:106f30003000c38f1c00c28f2b106200330040143e -:106f4000000000002800c38f1c00c28f21106200c7 -:106f50002800c2af2c00c38f1c00c28f211062001a -:106f60002c00c2af3000c38f1c00c28f2310620000 -:106f70003000c2affe5b400b000000001400c28f67 -:106f80003000c38f3000c48f2b2044000a106400ef -:106f90001c00c2af1c00c28fffff42302c00c48f08 -:106fa0002800c58f21304000995a400f0000000092 -:106fb0000500401000000000f4ff02241000c2a3ee -:106fc000045c400b000000002800c38f1c00c28f2f -:106fd000211062002800c2af2c00c38f1c00c28f9a -:106fe000211062002c00c2af3000c38f1c00c28f82 -:106ff000231062003000c2af3000c28fdfff4014a8 -:1070000000000000045c400b0000000000000000d5 -:107010001000c28321e8c0032400bf8f2000be8f70 -:107020002800bd270800e00300000000d0ffbd27b6 -:107030002c00bfaf2800beaf21f0a0033000c4afca -:107040003400c5af1000c0af2000c0a33000c28f15 -:107050001000c2af625c400b000000001800c0af1f -:107060001400c0af505c400b000000005759400fa7 -:10707000000000002f004014000000002000c22784 -:10708000212040000958400f000000002900401452 -:10709000000000001000c48fea58400f00000000fc -:1070a00024004014000000002000c22721204000de -:1070b0000958400f000000001e00401400000000ae -:1070c0001c00c0af425c400b000000002000c22743 -:1070d000212040000958400f000000001400401417 -:1070e000000000002000c29301004230060040145e -:1070f000000000001400c28f010042241400c2af3f -:107100004d5c400b000000001c00c28f01004224b7 -:107110001c00c2af1c00c38f50c302342a1062008f -:10712000eaff4014000000004d5c400b000000002e -:10713000000000001800c28f010042241800c2aff6 -:107140001800c28f04004228050040100000000013 -:107150001400c28f02004228c4ff40140000000047 -:107160001400c38f0200022404006210000000001b -:10717000f4ff02246a5c400b000000001000c28f84 -:10718000001042241000c2af3400c38f3000c28f01 -:10719000211862001000c28f2b104300afff401473 -:1071a000000000002110000021e8c0032c00bf8f68 -:1071b0002800be8f3000bd270800e003000000005b -:1071c000e0ffbd271c00bfaf1800beaf21f0a00339 -:1071d0001000c0af1400c0af3081828f1100401486 -:1071e00000000000f55a400f000000001000c2af80 -:1071f0001000c38fffff02240a006210000000008d -:107200001000c28f02140200ff004230efff422440 -:107210001400c2af1400c28f010003240410430005 -:10722000308182af3081828f21e8c0031c00bf8f84 -:107230001800be8f2000bd270800e00300000000fa -:10724000f0ffbd270c00beaf21f0a00380bf033cc0 -:107250000068628cc47b027c006862ac80bf023c28 -:10726000106840ac80bf033c1068628c8452027c82 -:10727000106862ac88bf033c1011628c07000424c4 -:107280008420827c101162ac88bf033c1011628c98 -:107290000408027c101162ac80bf033c1068628c51 -:1072a00001000424847b827c106862ac88bf033cac -:1072b0004010628c8452027c401062ac88bf033c58 -:1072c0007010628c8452027c701062ac80bf033cf0 -:1072d0001068628c8439027c106862ac88bf033c01 -:1072e0004010628c444a027c401062ac88bf033c70 -:1072f0007010628c01000424444a827c701062acdd -:1073000080bf033c1068628c010004240463827c0b -:10731000106862ac80bf033c1068628c01000424da -:107320008452827c106862ac80bf033c0068628c2f -:10733000c47b027c006862ac0000c0affe5c400b06 -:107340000000000000a0023c0000c38f40190300b1 -:107350001402422421106200000040ac00a0023c54 -:107360000000c38f40190300140242242110620060 -:10737000080040ac00a0033c0000c28f140263244c -:1073800040110200211062000c0040ac00a0023c41 -:107390000000c38f40190300140242242110620030 -:1073a000100040ac00a0033c0000c28f1402632414 -:1073b0004011020021106200140040ac00a0023c09 -:1073c0000000c38f40190300140242242110620000 -:1073d000180040ac00a0033c0000c28f14026324dc -:1073e00040110200211062001c0040ac0000c28f5e -:1073f000010042240000c2af0000c28f02004228f8 -:10740000d0ff40140000000021e8c0030c00be8f34 -:107410001000bd270800e00300000000f0ffbd27ba -:107420000c00beaf21f0a0031000c4af1400c5af24 -:107430001800c6af1c00c7af1000c28f030042285f -:107440000400401400000000060002248a5d400b86 -:10745000000000002000c28f80180200c404023c1b -:1074600000b442341a004300f40160001018000018 -:1074700012100000ffff42240400c2af0000c0afa2 -:107480002400c28f09004010000000000100032406 -:1074900007004314000000000000c28f01004234c6 -:1074a0000000c2af2c5d400b000000000000000097 -:1074b00000a0033c1000c28f14026324401102009c -:1074c000211062001400c38f1c0043ac2800c28f3f -:1074d0000100032406004310000000000200032402 -:1074e0000800431000000000455d400b0000000054 -:1074f0000000c28f020042340000c2af455d400b65 -:10750000000000000000c28f040042340000c2af3f -:10751000000000001000c28f0600401000000000b4 -:10752000010003241e00431000000000825d400b98 -:107530000000000088bf033c4061628cc418027cdc -:10754000406162ac88bf033c6061628c010004242e -:10755000c418827c606162ac0000c38f80bf023cb3 -:10756000006043ac80bf033c0060628c01000424d7 -:10757000c418827c006062ac0400c38f80bf023cf0 -:10758000406043ac80bf033c0060628c0100042477 -:10759000c47b827c006062ac825d400b0000000016 -:1075a00088bf033c4061628c4429027c406162ac2c -:1075b00088bf033c6061628c010004244429827c02 -:1075c000606162ac0000c38f80bf023c006843acc6 -:1075d00080bf033c0068628c01000424c418827cd4 -:1075e000006862ac0400c38f80bf023c406843acbb -:1075f00080bf033c0068628c01000424c47b827c51 -:10760000006862ac0000000000a0023c1000c38fc4 -:1076100040190300140242242110620001000324d7 -:10762000180043ac0100022421e8c0030c00be8f07 -:107630001000bd270800e00300000000d0ffbd27b8 -:107640002c00bfaf2800beaf21f0a0033000c4afb4 -:107650003400c5af3800c6af3c00c7af3800c28f9a -:107660004019020000a0023c1402422421106200d2 -:107670002400c2af2400c28f1800428c04004014c2 -:1076800000000000030002245e5e400b00000000ca -:107690002400c28f1400438c0100022404006214f1 -:1076a00000000000020002245e5e400b00000000ab -:1076b0003400c28f1000c2af1000c28f02004228f7 -:1076c0000300401400000000010002241000c2afbb -:1076d0002400c28f040043242400c28f000043ac66 -:1076e0002400c28f0000428c1400c2af2400c28f5d -:1076f0001000c38f080043ac1800c0afd55d400b2d -:10770000000000003000c28f000043801400c28fd0 -:10771000000043a01400c28f010042241400c2af35 -:107720003000c28f010042243000c2af3000c38f4e -:107730004000c28f2b1043000300401000000000e7 -:107740003c00c28f3000c2af1800c28f010042243b -:107750001800c2af1800c38f1000c28f2a10620039 -:10776000e8ff4014000000002400c28f0100032441 -:10777000140043ac3800c28f060040100000000027 -:10778000010003243a004310000000005d5e400b3e -:107790000000000088bf023c6010438c0010023cd7 -:1077a000241062000e004010000000002400c28f70 -:1077b0001c00428c212040001000c58fd634400fa1 -:1077c0000000000080bf033c1060628c01000424b4 -:1077d0008452827c106062ac5d5e400b0000000051 -:1077e0001c00c0af0d5e400b000000002400c28fe3 -:1077f0000000428c000043802120600080bf033cd9 -:10780000206064ac010043242400c28f000043ac1c -:107810000000000080bf023c1060428c000142303a -:10782000fcff4010000000001c00c28f0100422439 -:107830001c00c2af1c00c38f1000c28f2a10620050 -:10784000eaff4014000000002400c28f140040ac86 -:107850002400c28f1c00428c212040001000c58fe4 -:10786000d634400f000000005d5e400b00000000b9 -:1078700088bf023c7010428c000442300e00401061 -:10788000000000002400c28f1c00428c2120400018 -:107890001000c58fd634400f0000000080bf033cad -:1078a0001068628c010004248452827c106862acef -:1078b0005d5e400b000000002000c0af4f5e400b3b -:1078c000000000002400c28f0000428c00004380b2 -:1078d0002120600080bf033c206864ac0100432489 -:1078e0002400c28f000043ac0000000080bf023cb7 -:1078f0001068428c00014230fcff40100000000084 -:1079000088bf023ca060428c4003427cff004230b2 -:1079100027100200ff00423001004230ff004430d7 -:1079200088bf033ca060628c446b827ca06062ac28 -:107930002000c28f010042242000c2af2000c38f6c -:107940001000c28f2a106200deff40140000000009 -:107950002400c28f140040ac2400c28f1c00428c53 -:10796000212040001000c58fd634400f00000000d9 -:10797000000000000100022421e8c0032c00bf8f9a -:107980002800be8f3000bd270800e0030000000083 -:10799000f0ffbd270c00beaf21f0a0031000c4af64 -:1079a0001400c5af1800c6af88bf023c7010428cef -:1079b0000400c2af88bf033c7010628c8452027c0a -:1079c000701062ac0000c0af915e400b0000000080 -:1079d00088bf023ca060428c4003427cff004230e2 -:1079e00027100200ff00423001004230ff00443007 -:1079f00088bf033ca060628c446b827ca06062ac58 -:107a00001000c28f000042802118400080bf023c5d -:107a1000206843ac1000c28f010042241000c2afa6 -:107a20000000000080bf023c1068428c0001423020 -:107a3000fcff4010000000000000c28f0100422443 -:107a40000000c2af0000c38f1400c28f2a10620072 -:107a5000dfff40140000000088bf033ca060628c80 -:107a600001000424446b827ca06062ac88bf033cac -:107a70004010628c8452027c401062ac0400c38fc0 -:107a800088bf023c701043ac0100022421e8c0030f -:107a90000c00be8f1000bd270800e00300000000ae -:107aa000f8ffbd270400beaf21f0a00321e8c0030a -:107ab0000400be8f0800bd270800e003000000009e -:107ac00000e85d4100701a4000601b40c8ffbd2700 -:107ad0003400bbaf44781b7c001c7b3700609b40ac -:107ae0002400bfaf2000beaf121000002c00a2afd8 -:107af000101800002800a3af21f0a00300a0023c52 -:107b0000140242241400c2af88bf023c3010438ce0 -:107b10000010023c241062002e0040100000000003 -:107b200088bf023c6010438c0010023c24106200ad -:107b3000280040100000000088bf033c3010628c19 -:107b400004e7027c301062ac1400c28f0800428c43 -:107b5000090040140000000080bf033c1060628cec -:107b60008452027c106062ac1400c28f140040acde -:107b7000f55e400b000000001400c28f0000428c34 -:107b8000000043802120600080bf033c206064ac83 -:107b9000010043241400c28f000043ac1400c28fc4 -:107ba0000800428cffff43241400c28f080043ac3e -:107bb00080bf023c1060428c00024230050040143d -:107bc000000000001400c28f0800428ceaff40143d -:107bd0000000000088bf023c3010438c0008023ccb -:107be00024106200390040100000000088bf023cf1 -:107bf0006010438c0008023c2410620033004010e7 -:107c00000000000088bf033c3010628cc4de027ca0 -:107c1000301062ac80bf023c1060428c02004230e7 -:107c20000f0040100000000080bf033c1060628c19 -:107c30004408027c106062ac88bf033c3010628c48 -:107c4000c4de027c301062ac039d023c448f4424ad -:107c500039a3400f00000000335f400b000000001c -:107c60001000c0af265f400b0000000080bf023c48 -:107c70003060428c1800c2a31000c38f4481822759 -:107c8000211062001800c393000043a01000c28faf -:107c9000010042241000c2af80bf023c1060428c41 -:107ca00001004230f1ff4014000000001400c28fb8 -:107cb0001c00438c44818227212060002128400041 -:107cc0001000c68f7432400f0000000021e8c0038e -:107cd0002c00a28f130040002800a38f1100600029 -:107ce0002400bf8f2000be8f3400bb8f3800bd271b -:107cf00000e8dd4100609b401800004200e85d4163 -:107d000000701a4000601b40c8ffbd273400bbafa5 -:107d100044781b7c001c7b3700609b402400bfaf75 -:107d20002000beaf121000002c00a2af10180000ff -:107d30002800a3af21f0a00300a0023c340242249b -:107d40001400c2af88bf023c4010428c0004423095 -:107d5000390040100000000088bf023c7010428cc7 -:107d600000044230340040100000000088bf033c93 -:107d70004010628c8452027c401062ac1400c28fae -:107d80000800428c090040140000000080bf033c42 -:107d90001068628c8452027c106862ac1400c28f3e -:107da000140040ac8e5f400b000000001400c28f36 -:107db0000000428c000043802120600080bf033c13 -:107dc000206864ac010043241400c28f000043ac5f -:107dd0001400c28f0800428cffff43241400c28f9e -:107de000080043ac88bf023ca060428c4003427c48 -:107df000ff00423027100200ff00423001004230f5 -:107e0000ff00443088bf033ca060628c446b827cde -:107e1000a06062ac80bf023c1068428c000242301d -:107e200005004014000000001400c28f0800428cbe -:107e3000deff40140000000088bf023c4010428c6e -:107e400000024230450040100000000088bf023ca4 -:107e50007010428c000242304000401000000000d0 -:107e600088bf033c4010628c444a027c401062ace4 -:107e700080bf023c1068428c020042300f0040106c -:107e80000000000080bf033c1068628c4408027c44 -:107e9000106862ac88bf033c4010628c444a027c8c -:107ea000401062ac039d023c508f442439a3400f24 -:107eb00000000000d75f400b000000001000c0afc2 -:107ec000c95f400b0000000080bf023c3068428c5c -:107ed0001800c2a31000c38f4581822721106200c1 -:107ee0001800c393000043a01000c28f0100422479 -:107ef0001000c2af88bf023ca060428c8003427c6d -:107f0000ff00423027100200ff00423001004230e3 -:107f1000ff00443088bf033ca060628c8473827c85 -:107f2000a06062ac80bf023c1068428c010042300d -:107f3000e5ff4014000000001400c28f1c00438cb9 -:107f40004481822701004224212060002128400032 -:107f50001000c68f7432400f0000000021e8c003fb -:107f60002c00a28f130040002800a38f1100600096 -:107f70002400bf8f2000be8f3400bb8f3800bd2788 -:107f800000e8dd4100609b4018000042f8ffbd277b -:107f90000400beaf21f0a00380bf033c0060628cf0 -:107fa000c47b027c006062ac80bf033c1060628cca -:107fb0008452027c106062ac88bf033c6010628c0b -:107fc00004e7027c601062ac88bf033c3010628c16 -:107fd00004e7027c301062ac88bf033c6010628c06 -:107fe0000100042404e7827c601062ac88bf033c7b -:107ff0006010628cc4de027c601062ac88bf033cff -:108000006010628cc4de027c601062ac88bf033cee -:108010003010628cc4de027c301062ac88bf033c3e -:108020006010628c01000424c4de827c601062acab -:1080300080bf033c1060628c010004240463827cd6 -:10804000106062ac00a0023c00a0033c1802632454 -:10805000140243ac00a0023c140242240c0040acc9 -:1080600000a0023c14024224140040ac80bf033c38 -:108070000060628c01000424c47b827c006062acde -:1080800021e8c0030400be8f0800bd270800e003fc -:1080900000000000f8ffbd270400beaf21f0a003e0 -:1080a00080bf033c0068628cc47b027c006862acc9 -:1080b00080bf033c1068628c8452027c106862ac02 -:1080c00088bf033c7010628c8452027c701062acda -:1080d00088bf033c4010628c8452027c401062ac2a -:1080e00088bf033c7010628c8452027c701062acba -:1080f00088bf033c7010628c444a027c701062acf2 -:1081000088bf033c4010628c01000424444a827cf6 -:10811000401062ac88bf033c7010628c01000424e4 -:10812000444a827c701062ac80bf033c1068628c51 -:10813000010004240463827c106862ac00a0023c4d -:108140001402422400a0033c38026324200043ac04 -:1081500000a0023c140242242c0040ac00a0023ccf -:1081600014024224340040ac80bf033c0068628c9f -:1081700001000424c47b827c006862ac21e8c00357 -:108180000400be8f0800bd270800e00300000000c7 -:10819000f8ffbd270400beaf21f0a00321e8c00313 -:1081a0000400be8f0800bd270800e00300000000a7 -:1081b000e8ffbd271400bfaf1000beaf21f0a00341 -:1081c00000a0023c300742244c8182af00a0023c58 -:1081d00030074424212800002c01062423a0400f4e -:1081e0000000000000a0023c0406442421280000f6 -:1081f0002c01062423a0400f0000000000a0023c38 -:10820000d8044424212800002c01062423a0400f78 -:1082100000000000508180af21e8c0031400bf8f30 -:108220001000be8f1800bd270800e003000000000a -:10823000e8ffbd271400bfaf1000beaf21f0a003c0 -:108240005081828f0a0040100000000001000324ca -:108250000800431400000000508180af3c3b400ff9 -:1082600000000000000000009d60400b00000000c6 -:108270000000000021e8c0031400bf8f1000be8f73 -:108280001800bd270800e00300000000e0ffbd2744 -:108290001c00bfaf1800beaf21f0a0032000c4af88 -:1082a0002400c5af2000c28f150040100000000060 -:1082b0001000c0af1000c0afbb60400b000000005a -:1082c0002000c28f000042902000c38f0100632471 -:1082d0002000c3af21204000c660400f0000000016 -:1082e0001000c28f010042241000c2af1000c38fe3 -:1082f0002400c28f2a106200f1ff40140000000029 -:1083000021e8c0031c00bf8f1800be8f2000bd27ce -:108310000800e00300000000e8ffbd271400bfaf25 -:108320001000beaf21f0a003211080001800c2a3ee -:108330001800c3930d0002241d0062140000000009 -:10834000029d023c382e4424d963400f00000000f7 -:1083500000a0023c30074224000042800900401087 -:108360000000000000a0023c0406442400a0023cdf -:1083700030074524bb9a400f000000001a61400fef -:108380000000000000a0023c300742244c8182af74 -:1083900000a0023c30074424212800002c010624c0 -:1083a00023a0400f000000001461400b00000000fb -:1083b0001800c393080002240500621000000000aa -:1083c0001800c3937f000224110062140000000013 -:1083d0001800c28321204000ee63400f000000001f -:1083e0004c81838f00a0023c3007422418006210a9 -:1083f000000000004c81828fffff42244c8182af3d -:108400004c81828f000040a01461400b00000000ee -:108410001800c28321204000ee63400f00000000de -:108420004c81838f00a0023c5c0842242b10620028 -:1084300007004010000000004c81828f1800c383a9 -:10844000000043a04c81828f010042244c8182af06 -:1084500021e8c0031400bf8f1000be8f1800bd2795 -:108460000800e00300000000b8febd274401bfafd4 -:108470004001beaf21f0a0032000c2272120400010 -:10848000212800001e00062423a0400f0000000049 -:108490004000c22721204000212800001e000624a1 -:1084a00023a0400f000000006000c22721204000f0 -:1084b000212800001e00062423a0400f0000000019 -:1084c0008000c22721204000212800001e00062431 -:1084d00023a0400f00000000a000c2272120400080 -:1084e000212800001e00062423a0400f00000000e9 -:1084f0004000c2276000c3271000a3af8000c3273d -:108500001400a3afa000c3271800a3af00a0033c32 -:1085100030076424029d033c3c2e65242000c327c1 -:1085200021306000213840009ea2400f0000000072 -:108530002000c22721204000029d023c4c2e4524f1 -:1085400004000624b3a1400f0000000012004014f4 -:108550000000000000a0023cfc304224548182afa5 -:1085600000a0023cfc30422421204000a19c400f8e -:108570000000000000a0033cfc30642421284000df -:108580000c3c400f000000005481828f1c8082afa1 -:10859000d363400b000000002000c22721204000d0 -:1085a000029d023c542e452405000624b3a1400f31 -:1085b0000000000037004014000000004000c22707 -:1085c000000042800700401400000000029d023cb1 -:1085d0005c2e4424d963400f00000000d363400b9d -:1085e000000000004000c22721204000029d023c04 -:1085f000982e452402000624b3a1400f000000007d -:108600000900401400000000029d023c9c2e4424fe -:10861000d963400f000000004b96400f000000009f -:108620009f61400b000000004000c2272120400055 -:10863000029d023cbc2e452403000624b3a1400f3a -:10864000000000000900401400000000029d023cf0 -:10865000c02e4424d963400f000000005f96400ff5 -:10866000000000009f61400b00000000029d023ce2 -:10867000e02e4424d963400f00000000029d023c1c -:10868000202f4424d963400f00000000d363400b27 -:10869000000000002000c22721204000029d023c73 -:1086a000242f452404000624b3a1400f000000003d -:1086b00080004014000000004000c22700004280fb -:1086c0000700401400000000029d023c2c2f4424af -:1086d000d963400f00000000d363400b000000008e -:1086e0004000c22721204000029d023c982e4524d4 -:1086f00002000624b3a1400f000000001500401442 -:10870000000000009c3b400f0000000021184000ca -:10871000010002240900621000000000029d023cda -:10872000682f4424d963400f000000001b3a400f1b -:10873000000000002762400b00000000029d023c88 -:10874000802f4424d963400f000000002762400bb3 -:10875000000000004000c22721204000029d023c92 -:10876000bc2e452403000624b3a1400f00000000e6 -:1087700013004014000000009c3b400f000000006c -:108780000900401000000000029d023c9c2f442480 -:10879000d963400f0000000001000224508182af25 -:1087a0002762400b00000000029d023cc42f4424bd -:1087b000d963400f000000002762400b000000005a -:1087c0004000c22721204000029d023cf02f45249a -:1087d00006000624b3a1400f000000002f00401443 -:1087e000000000009c3b400f000000000500432cef -:1087f0002a0060100000000080180200029d023c68 -:1088000014884224211062000000428c08004000bd -:10881000000000002888019d4088019d5888019d26 -:108820007088019d8888019d029d023cf82f442498 -:10883000d963400f000000002762400b00000000d9 -:10884000029d023c0c304424d963400f000000001c -:108850002762400b00000000029d023c1c304424b3 -:10886000d963400f000000002762400b00000000a9 -:10887000029d023c30304424d963400f00000000c8 -:108880002762400b00000000029d023c3c30442463 -:10889000d963400f0000000000000000029d023c70 -:1088a000202f4424d963400f00000000d363400b05 -:1088b000000000002000c22721204000029d023c51 -:1088c0005430452407000624b3a1400f00000000e7 -:1088d00091004014000000004000c22700004280c8 -:1088e0002d004014000000009f8f400f000000008a -:1088f000c000c32721206000029d033c5c3065243a -:108900002130400024a2400f00000000029d023ce4 -:1089100060304424d963400f00000000c000c2272b -:1089200021204000d963400f00000000029d023c5e -:10893000202f4424d963400f00000000b98f400f5e -:1089400000000000d000c32721206000029d033cee -:10895000743065242130400024a2400f0000000044 -:10896000029d023c78304424d963400f000000008f -:10897000d000c22721204000d963400f0000000032 -:10898000029d023c94304424d963400f0000000053 -:10899000d363400b000000004000c22721204000ac -:1089a000029d023c9830452407000624b3a1400fe5 -:1089b0000000000018004014000000009f8f400fce -:1089c00000000000e000c32721206000029d033c5e -:1089d0005c3065242130400024a2400f00000000dc -:1089e000029d023c60304424d963400f0000000027 -:1089f000e000c22721204000d963400f00000000a2 -:108a0000029d023c202f4424d963400f0000000047 -:108a1000c062400b000000004000c227212040003f -:108a2000029d023ca030452407000624b3a1400f5c -:108a3000000000001800401400000000b98f400f33 -:108a400000000000f000c32721206000029d033ccd -:108a5000743065242130400024a2400f0000000043 -:108a6000029d023c78304424d963400f000000008e -:108a7000f000c22721204000d963400f0000000011 -:108a8000029d023c94304424d963400f0000000052 -:108a9000c062400b000000004000c22721204000bf -:108aa000029d023ca830452403000624b3a1400fd8 -:108ab000000000001200401400000000c48f400fae -:108ac000000000000001c32721206000029d033c3c -:108ad000743065242130400024a2400f00000000c3 -:108ae000029d023cac304424d963400f00000000da -:108af000029d023cbc304424d963400f00000000ba -:108b0000029d023c202f4424d963400f0000000046 -:108b1000d363400b000000002000c227212040004a -:108b2000029d023cf02f452406000624b3a1400f0d -:108b300000000000a200401400000000029d023c62 -:108b4000c0304424d963400f000000007396400fea -:108b5000000000000700401400000000029d023cdd -:108b6000d4304424d963400f00000000ed62400b74 -:108b7000000000007396400f000000002118400024 -:108b8000010002240700621400000000029d023c64 -:108b9000f0304424d963400f00000000ed62400b28 -:108ba00000000000029d023c0c314424d963400fb8 -:108bb000000000009c3b400f000000000100032467 -:108bc000160043100000000002004328050060105a -:108bd000000000000b004010000000001963400b73 -:108be00000000000020003241200431000000000f7 -:108bf0000300032415004310000000001963400b1c -:108c000000000000029d023c2c314424d963400f37 -:108c1000000000001e63400b00000000029d023cab -:108c200048314424d963400f000000001e63400b0c -:108c300000000000029d023c60314424d963400fd3 -:108c4000000000001e63400b00000000029d023c7b -:108c50007c314424d963400f000000001e63400ba8 -:108c600000000000029d023ca0314424d963400f63 -:108c700000000000000000001001c2272120400079 -:108c8000212800000f00062423a0400f0000000050 -:108c90009f8f400f000000001001c32721206000bb -:108ca000029d033cb83165242130400024a2400fce -:108cb00000000000029d023c60304424d963400f54 -:108cc000000000001001c22721204000d963400f9e -:108cd00000000000029d023cc0314424d963400fd3 -:108ce000000000002001c2272120400021280000b0 -:108cf0000f00062423a0400f00000000b98f400f92 -:108d0000000000002001c32721206000029d033cd9 -:108d1000c43165242130400024a2400f000000002f -:108d2000029d023c78304424d963400f00000000cb -:108d30002001c22721204000d963400f000000001d -:108d400064000424e476400f000000003001c227d4 -:108d500021204000212800000f00062423a0400ffe -:108d600000000000c48f400f000000003001c32746 -:108d700021206000029d033ccc316524213040005d -:108d800024a2400f00000000029d023cac304424ad -:108d9000d963400f000000003001c22721204000ad -:108da000d963400f00000000029d023c202f4424a4 -:108db000d963400f00000000d363400b00000000a7 -:108dc0002000c22721204000029d023cd4314524ce -:108dd0000a000624b3a1400f000000004a0040141e -:108de000000000004000c22700004280070040143d -:108df00000000000029d023ce0314424d963400f92 -:108e000000000000d363400b000000004000c227b8 -:108e100021204000029d023c20324524050006240a -:108e2000b3a1400f00000000090040140000000042 -:108e30005141400f00000000029d023c28324424b2 -:108e4000d963400f00000000d363400b0000000016 -:108e50004000c22721204000029d023c40324524b0 -:108e600004000624b3a1400f0000000009004014d4 -:108e700000000000029d023c48324424d963400fa8 -:108e8000000000006141400f00000000d363400b70 -:108e9000000000004000c22721204000029d023c4b -:108ea000f02f452406000624b3a1400f0000000067 -:108eb0002600401400000000bf3d400f00000000ed -:108ec0000700401000000000029d023c6432442470 -:108ed000d963400f00000000d363400b0000000086 -:108ee000bf3d400f000000001800401000000000cf -:108ef000029d023c84324424d963400f00000000ec -:108f0000d363400b000000002000c2272120400056 -:108f1000a19c400f000000002000c327212060001a -:108f2000029d033ca832652421304000b3a1400fcc -:108f3000000000000500401000000000029d023cff -:108f4000b0324424d963400f0000000021e8c00380 -:108f50004401bf8f4001be8f4801bd270800e003d8 -:108f600000000000e0ffbd271c00bfaf1800beaf2f -:108f70001400b0af21f0a0032000c4af2000d08fb8 -:108f80002000c48fa19c400f00000000212000029f -:108f9000212840000c3c400f0000000021e8c003e5 -:108fa0001c00bf8f1800be8f1400b08f2000bd279b -:108fb0000800e00300000000e8ffbd271400bfaf79 -:108fc0001000beaf21f0a003211080001800c2a342 -:108fd0001800c293212040002e3c400f00000000ea -:108fe00021e8c0031400bf8f1000be8f1800bd27fa -:108ff0000800e00300000000f8ffbd270400beaf3a -:1090000021f0a00321e8c0030400be8f0800bd27a3 -:109010000800e00300000000e0ffbd271c00beaf19 -:1090200021f0a00388bf033c2061628c010004246e -:10903000c418827c206162acc404023c00b4423497 -:109040000000c2af7d01023c407842340400c2af50 -:109050000400c28f401002000000c38f1b0062009a -:10906000f401400010180000121000000800c2af08 -:109070000400c28f401002000000c38f1b0062007a -:10908000f401400010100000040040100000000037 -:109090000800c28f010042240800c2af0800c28f3e -:1090a0000101422c030040140000000000010224d2 -:1090b0000800c2af0800c28f04004010000000008a -:1090c0000800c28fffff42240800c2af0800c28f11 -:1090d000ff0042309d8182a3c404023c00b44234ac -:1090e0000c00c2af1602023cc00e42341000c2afe8 -:1090f0001000c28f401002000c00c38f1b006200e2 -:10910000f401400010180000121000001400c2af5b -:109110001000c28f401002000c00c38f1b006200c1 -:10912000f401400010100000040040100000000096 -:109130001400c28f010042241400c2af1400c28f79 -:109140000101422c03004014000000000001022431 -:109150001400c2af1400c28f0400401000000000d1 -:109160001400c28fffff42241400c2af1400c28f4c -:10917000ff0042309c8182a3a08180af21e8c00320 -:109180001c00be8f2000bd270800e0030000000087 -:10919000e8ffbd271400bfaf1000beaf21f0a00351 -:1091a000fe64400f0000000021184000010002246e -:1091b0002200621400000000a464400f00000000c0 -:1091c00088bf033c2061628cc418027c206162acc1 -:1091d0009c8182930100042421284000eea1400fcd -:1091e000000000009c818293212000002128400083 -:1091f000eea1400f0000000088bf033c2061628c9c -:1092000001000424c418827c206162ac01000424a3 -:10921000bd64400f0000000001000224a08182af65 -:10922000029d023c007f442439a3400f000000004f -:10923000010002249564400b00000000a08180af73 -:10924000029d023c187f442439a3400f0000000017 -:109250002110000021e8c0031400bf8f1000be8f52 -:109260001800bd270800e00300000000f8ffbd273c -:109270000400beaf21f0a003a081828f21e8c003cb -:109280000400be8f0800bd270800e00300000000b6 -:10929000e8ffbd271400bfaf1000beaf21f0a00350 -:1092a00088bf033c2061628cc418027c206162ace0 -:1092b0009c8182930600042421284000eea1400fe7 -:1092c0000000000088bf033c2061628c0100042480 -:1092d000c418827c206162ac0100022421e8c00332 -:1092e0001400bf8f1000be8f1800bd270800e003d8 -:1092f00000000000e0ffbd271c00bfaf1800beaf9c -:1093000021f0a0032000c4af88bf033c2061628c21 -:10931000c418027c206162ac9d8182930500042404 -:1093200021284000eea1400f000000001000c2a361 -:109330009d8182932120000021284000eea1400f52 -:10934000000000001000c2a388bf033c2061628cb3 -:1093500001000424c418827c206162ac2000c28f0a -:1093600007004010000000001000c293029d033c63 -:10937000387f6424212840004aa3400f00000000e9 -:109380001000c29321e8c0031c00bf8f1800be8fdd -:109390002000bd270800e00300000000e0ffbd271b -:1093a0001c00bfaf1800beaf21f0a00321200000b9 -:1093b000bd64400f000000001000c2a31000c29363 -:1093c00001004230ff004230040040100000000065 -:1093d00001000224f864400b00000000211000008e -:1093e00021e8c0031c00bf8f1800be8f2000bd27de -:1093f0000800e00300000000e0ffbd271c00bfaf35 -:109400001800beaf21f0a00388bf033c2061628c2e -:10941000c418027c206162ac9d8182939000042478 -:1094200021284000eea1400f000000009d818293a2 -:109430002120000021284000eea1400f0000000084 -:109440009d8182932120000021284000eea1400f41 -:10945000000000009d81829321200000212840000f -:10946000eea1400f000000009d81829321200000aa -:1094700021284000eea1400f000000001000c2a310 -:109480009d8182932120000021284000eea1400f01 -:10949000000000001100c2a388bf033c2061628c61 -:1094a00001000424c418827c206162ac1000c393c4 -:1094b000bf00022405006214000000001100c393e5 -:1094c000410002240c006210000000001000c39351 -:1094d0001100c293029d043c587f8424212860001f -:1094e000213040004aa3400f00000000211000007e -:1094f0004765400b000000001000c3931100c293a9 -:10950000029d043c947f8424212860002130400087 -:109510004aa3400f000000000100022421e8c0031c -:109520001c00bf8f1800be8f2000bd270800e0037d -:1095300000000000e0ffbd271c00bfaf1800beaf59 -:1095400021f0a0032000c4af2400c5af2800c6af9f -:109550002800c38f2400c28f21106200ffff432424 -:109560002000023c2a1062000400401400000000a9 -:1095700021100000a765400b0000000088bf033cdd -:109580002061628cc418027c206162ac9d81829350 -:109590000b00042421284000eea1400f0000000031 -:1095a0002800c38fff00023c241062000314020055 -:1095b000ff004230211840009c81829321206000ee -:1095c00021284000eea1400f000000002800c28fbb -:1095d00000ff423003120200ff0042302118400019 -:1095e0009c8182932120600021284000eea1400f41 -:1095f000000000002800c28fff0042302118400008 -:109600009c8182932120600021284000eea1400f20 -:10961000000000009c81829321200000212840004e -:10962000eea1400f000000001000c0af9c65400b91 -:10963000000000009c818293de0004242128400069 -:10964000eea1400f000000001400c2a32000c28f52 -:109650001400c393000043a02000c28f01004224e5 -:109660002000c2af1000c28f010042241000c2af20 -:109670001000c38f2400c28f2a106200edff401437 -:109680000000000088bf033c2061628c01000424bc -:10969000c418827c206162ac0100022421e8c0036e -:1096a0001c00bf8f1800be8f2000bd270800e003fc -:1096b00000000000e8ffbd271400bfaf1000beafe0 -:1096c00021f0a0031800c4af1800c28fff0f423072 -:1096d000040040100000000021100000f165400b64 -:1096e00000000000a464400f0000000088bf033c9d -:1096f0002061628cc418027c206162ac9c818293e0 -:109700002000042421284000eea1400f00000000aa -:109710001800c38fff00023c2410620003140200f3 -:10972000ff004230211840009c818293212060007c -:1097300021284000eea1400f000000001800c28f59 -:1097400000ff423003120200ff00423021184000a7 -:109750009c8182932120600021284000eea1400fcf -:10976000000000001800c28fff00423021184000a6 -:109770009c8182932120600021284000eea1400faf -:109780000000000088bf033c2061628c01000424bb -:10979000c418827c206162ac1800c28f0100422490 -:1097a0001800c2af00000000e764400f0000000096 -:1097b0002118400001000224fbff6210000000009d -:1097c0000100022421e8c0031400bf8f1000be8fe7 -:1097d0001800bd270800e00300000000e8ffbd27d7 -:1097e0001400bfaf1000beaf21f0a0031800c4af3b -:1097f0001c00c5af1800c28fffff423004004010ac -:1098000000000000211000004666400b0000000030 -:109810001800c38fffff0234211862002000023cb1 -:109820002a10620004004014000000002110000013 -:109830004666400b00000000a464400f00000000da -:1098400088bf033c2061628cc418027c206162ac3a -:109850009c818293d800042421284000eea1400f6f -:10986000000000001800c38fff00023c24106200bb -:1098700003140200ff004230211840009c818293b3 -:109880002120600021284000eea1400f00000000d0 -:109890001800c28f00ff423003120200ff00423066 -:1098a000211840009c8182932120600021284000e3 -:1098b000eea1400f000000001800c28fff004230f0 -:1098c000211840009c8182932120600021284000c3 -:1098d000eea1400f0000000088bf033c2061628cb5 -:1098e00001000424c418827c206162ac1c00c28f79 -:1098f000080040100000000000000000e764400f76 -:10990000000000002118400001000224fbff62104b -:10991000000000000100022421e8c0031400bf8ff2 -:109920001000be8f1800bd270800e00300000000f3 -:10993000d8ffbd272400bfaf2000beaf21f0a00399 -:109940002800c4af2c00c5af2800c28fff0f4230e3 -:10995000040040100000000021100000b566400b1c -:10996000000000002c00c38f0100022404006214d8 -:10997000000000002800c48fad65400f000000000b -:1099800000a0023ca01c42241000c2af1400c0afd3 -:10999000b066400b000000001000c28f0000429033 -:1099a0001800c2a3a464400f000000002800c38f69 -:1099b000ff00023c24106200031402001900c2a33d -:1099c0002800c28f00ff4230031202001a00c2a317 -:1099d0002800c28f1b00c2a31c00c0af88bf033c7d -:1099e0002061628cc418027c206162ac9c818293ed -:1099f0000200042421284000eea1400f00000000d6 -:109a00001900c293211840009c818293212060009c -:109a100021284000eea1400f000000001a00c29370 -:109a2000211840009c818293212060002128400061 -:109a3000eea1400f000000001b00c293211840005f -:109a40009c8182932120600021284000eea1400fdc -:109a5000000000001800c3939c81829321206000c5 -:109a600021284000eea1400f0000000088bf033c09 -:109a70002061628c01000424c418827c206162ace5 -:109a80001000c28f010042241000c2af2800c28f14 -:109a9000010042242800c2af00000000e764400f2c -:109aa000000000002118400001000224fbff6210aa -:109ab000000000001400c28f010042241400c2af55 -:109ac0001400c28f00104228b3ff401400000000b1 -:109ad0000100022421e8c0032400bf8f2000be8fb4 -:109ae0002800bd270800e00300000000e8ffbd27b4 -:109af0001400bfaf1000beaf21f0a0031800c4af28 -:109b00002110a0002000c6af1c00c2a31800c38f04 -:109b10002000023c2b1062000400401400000000f2 -:109b2000211000000a67400b00000000a464400ff1 -:109b30000000000088bf033c2061628cc418027cd6 -:109b4000206162ac9c8182930200042421284000a1 -:109b5000eea1400f000000001800c38fff00023c80 -:109b60002410620002140200ff004230211840005d -:109b70009c8182932120600021284000eea1400fab -:109b8000000000001800c28f00ff423002120200e5 -:109b9000ff004230211840009c8182932120600008 -:109ba00021284000eea1400f000000001800c28fe5 -:109bb000ff004230211840009c81829321206000e8 -:109bc00021284000eea1400f000000001c00c293bd -:109bd000211840009c8182932120600021284000b0 -:109be000eea1400f0000000088bf033c2061628ca2 -:109bf00001000424c418827c206162ac2000c28f62 -:109c0000080040100000000000000000e764400f62 -:109c1000000000002118400001000224fbff621038 -:109c2000000000000100022421e8c0031400bf8fdf -:109c30001000be8f1800bd270800e00300000000e0 -:109c4000c8ffbd273400bfaf3000beaf21f0a00376 -:109c50003800c4af3c00c5af4000c6af1c00c0af69 -:109c60004000c38f3c00c28f211062002000c2afb1 -:109c70004000c28f1000c2af3800c28f1400c2afc4 -:109c80002000c38f2000023c2a1062004c004014c8 -:109c900000000000211000007467400b000000006d -:109ca0001000c28fff0f4324000044280b106400f3 -:109cb00003130200001302002400c2af00a0023c04 -:109cc000a01c4424001005242400c68f4d65400fbd -:109cd000000000002118400001000224040062106e -:109ce00000000000211000007467400b000000001d -:109cf00000a0023ca01c43241000c48f2400c28f8b -:109d000023108200211062001800c2af2800c0afeb -:109d10006d67400b000000001400c28f00004380fc -:109d20001800c28f000043a01800c28f0100422417 -:109d30001800c2af1400c28f010042241400c2af49 -:109d40001000c28f010042241000c2af1000c38f68 -:109d50002000c28f0b0062140000000001000224ea -:109d60002800c2af010002241c00c2af2400c48f2f -:109d7000010005244c66400f000000007067400b96 -:109d8000000000001000c28fff0f42300900401495 -:109d900000000000010002242800c2af2400c48f8c -:109da000010005244c66400f000000007067400b66 -:109db000000000002800c28fd7ff40100000000004 -:109dc0001c00c28fb6ff40100000000001000224fa -:109dd00021e8c0033400bf8f3000be8f3800bd279c -:109de0000800e0030000000060ffbd279c00bfaf3b -:109df0009800beaf21f0a003211880002110a00020 -:109e0000a800c6afa000c3a3a400c2a71100c0a3ae -:109e1000a000c293060003242000431000000000ad -:109e20000700032433004310000000000100032456 -:109e3000aa004314000000002800c227a800c48f15 -:109e40002128400070000624213800009452400f61 -:109e5000000000001100c2a31100c2838f00401453 -:109e600000000000f880828f8f004010000000008a -:109e7000a800c28f70004224fc8082aff880828fdd -:109e80002800c327010004242128600009f84000ad -:109e9000000000003768400b000000001c00c227d3 -:109ea000a800c48f212840000400062421380000a7 -:109eb0009452400f000000001100c2a31100c283a1 -:109ec0007c00401400000000f880828f7c0040106d -:109ed00000000000f880828f1c00c32706000424c5 -:109ee0002128600009f84000000000003768400b9e -:109ef00000000000010002241000c2a32000c227bd -:109f0000a800c48f21284000080006242138000042 -:109f10009452400f000000001100c2a31100c28340 -:109f200051004014000000002400c2971200c2a794 -:109f30002600c2971400c2a72200c2971600c2a72b -:109f40002000c2971800c2af1200c297030040144d -:109f50000000000001000224708082af1200c3974d -:109f60001400c297211862001600c2970200621006 -:109f7000000000001000c0a31800c28f01000324dd -:109f80002c004310000000000100432c0900601465 -:109f900000000000020003240e0043100000000037 -:109fa000030003240f004310000000000568400b6d -:109fb000000000007080838f0100022420006214e2 -:109fc000000000001800c28f708082af1a68400b3a -:109fd000000000001800c28f708082af1a68400b2a -:109fe000000000007080838f0200022417006210be -:109ff000000000007080838f0400022416006210ad -:10a00000000000001800c28f708082af1a68400bf9 -:10a01000000000007080838f020002241100621093 -:10a020000000000004000224708082af1a68400b18 -:10a0300000000000000000001a68400b0000000053 -:10a04000000000001a68400b000000000000000043 -:10a050001a68400b00000000000000001a68400b66 -:10a0600000000000000000001000c2931700401024 -:10a0700000000000f880828f1700401000000000f0 -:10a08000f880828f070004247080852709f840003b -:10a09000000000003768400b0000000000000000d6 -:10a0a0003768400b00000000000000003768400bdc -:10a0b00000000000000000003768400b00000000b6 -:10a0c000000000003768400b0000000000000000a6 -:10a0d0003768400b000000000000000021e8c003ca -:10a0e0009c00bf8f9800be8fa000bd270800e00332 -:10a0f00000000000e0ffbd271c00bfaf1800beaf8e -:10a1000021f0a0032000c4af1000c0a32000c28f24 -:10a11000f88082affc8080af04000224708082afa0 -:10a1200005000424029d023ce89d4524ff52400f97 -:10a13000000000001000c2a31000c28321e8c00389 -:10a140001c00bf8f1800be8f2000bd270800e00351 -:10a1500000000000d0ffbd272c00bfaf2800beaf1d -:10a1600021f0a0033000c4af3400c5af2110c000ff -:10a170003800c2a72000c0a33000c28f3800c397a8 -:10a180003400c48f1000a4af1400a3af70000324e8 -:10a190001800a3af050004248200052421304000ec -:10a1a000700007240750400f000000002000c2a3e9 -:10a1b0002000c28321e8c0032c00bf8f2800be8f7f -:10a1c0003000bd270800e00300000000b8ffbd27f5 -:10a1d0004400bfaf4000beaf21f0a0034800c4afb1 -:10a1e0004c00c5af2000c0a34c00c28f0106422c1a -:10a1f00023004010000000004800c28f2800c2afba -:10a200002800c28fc86e0324000043a44c00c28ff4 -:10a210000300422482100200ffff43302800c28f57 -:10a22000020043a42800c28f040040a44c00c28f47 -:10a230000300422482100200ffff43302800c28f37 -:10a24000060043a44c00c28fffff42304800c38f7a -:10a250001000a3af1400a2af1800a0af05000424a3 -:10a260008400052421300000213800000750400ff1 -:10a27000000000002000c2a33e69400b0000000067 -:10a280002400c0af2c00c0af4800c38f2400c28f91 -:10a29000211062003400c3272120600021284000e3 -:10a2a00008000624479c400f000000004c00c38fac -:10a2b0002400c28f23106200000503240105442cf2 -:10a2c0000a1064002c00c2af4800c38f2400c28f64 -:10a2d000211062003000c2af3000c28fc86e03246c -:10a2e000000043a44c00c28f0300422482100200ed -:10a2f000ffff43303000c28f020043a42400c28f0e -:10a300000300422482100200ffff43303000c28f5e -:10a31000040043a42c00c28f0300422482100200d8 -:10a32000ffff43303000c28f060043a44800c38fb4 -:10a330002400c28f211862002c00c28fffff423020 -:10a340001000a3af1400a2af1800a0af05000424b2 -:10a350008400052421300000213800000750400f00 -:10a36000000000002000c2a34800c38f2400c28f59 -:10a37000211862003400c2272120600021284000fb -:10a3800008000624479c400f000000002400c38ff3 -:10a390002c00c28f211062002400c2af3969400b2b -:10a3a000000000002400c28ff8ff42244800c38f41 -:10a3b000211062003400c3272120600021284000c2 -:10a3c00008000624479c400f000000004c00c38f8b -:10a3d0002400c28f23106200000503240105442cd1 -:10a3e0000a1064002c00c2af2c00c28f030043246b -:10a3f000fcff0224241062002c00c2af2400c28f94 -:10a40000f8ff42244800c38f211062003000c2af21 -:10a410003000c28fc86e0324000043a44c00c28fda -:10a420000300422482100200ffff43303000c28f3d -:10a43000020043a42400c28f0300422482100200c1 -:10a44000ffff43303000c28f040043a42c00c28fb2 -:10a450000300422482100200ffff43303000c28f0d -:10a46000060043a42400c28ff8ff42244800c38f93 -:10a47000211862002c00c28fffff423008004224e6 -:10a48000ffff42301000a3af1400a2af1800a0af2e -:10a490000500042484000524213000002138000038 -:10a4a0000750400f000000002000c2a32400c28f0c -:10a4b000f8ff42244800c38f211862003400c227ed -:10a4c000212060002128400008000624479c400ffe -:10a4d000000000002400c38f2c00c28f21106200f6 -:10a4e0002400c2af2400c38f4c00c28f2b10620027 -:10a4f000acff4014000000002000c28321e8c0032c -:10a500004400bf8f4000be8f4800bd270800e00315 -:10a5100000000000e0ffbd271c00bfaf1800beaf69 -:10a5200021f0a0032000c4af2400c5af2800c6afaf -:10a530002c00c7aff4ff02241000c2a3fc80828f5e -:10a540000400401400000000f4ff02244c6a400b99 -:10a55000000000002000c28f10004010000000002a -:10a560002400c28f0d004010000000002800c28fa0 -:10a570000a004010000000002c00c28f07004010ad -:10a58000000000003000c28f0400401000000000f6 -:10a590003400c28f0500401400000000f1ff0224c7 -:10a5a0001000c2a3456a400b00000000fc80838fae -:10a5b0001600c22721206000212840000200062446 -:10a5c000213800009452400f00000000b2004014f7 -:10a5d000000000001600c29700120200201e027c3c -:10a5e0001600c29702120200ffff42302016027cc2 -:10a5f000251062002016027cffff42302118400027 -:10a600002000c28f000043acfc80828f02004224f5 -:10a61000fc8082affc80838f1600c227212060005f -:10a620002128400002000624213800009452400fe7 -:10a63000000000009b004014000000001600c297bc -:10a6400000120200201e027c1600c29702120200b5 -:10a65000ffff42302016027c251062002016027c8b -:10a66000ffff42301600c2a71600c2972100422cfd -:10a670008f004010000000001600c3973400c28f06 -:10a68000400043a4fc80828f02004224fc8082af01 -:10a69000fc80838f1200c227212060002128400007 -:10a6a00002000624213800009452400f00000000f0 -:10a6b00082004014000000001200c2970012020045 -:10a6c000201e027c1200c29702120200ffff4230dd -:10a6d0002016027c251062002016027cffff42300b -:10a6e0001200c2a72800c28f000043941200c29734 -:10a6f0002b10620074004014000000001200c39789 -:10a700002800c28f000043a4fc80828f02004224f4 -:10a71000fc8082affc80838f1400c2272120600060 -:10a720002128400002000624213800009452400fe6 -:10a730000000000067004014000000001400c297f1 -:10a7400000120200201e027c1400c29702120200b6 -:10a75000ffff42302016027c251062002016027c8a -:10a76000ffff42301400c2a73000c28f00004394a4 -:10a770001400c2972b106200590040140000000022 -:10a780001400c3973000c28f000043a4fc80828f66 -:10a7900002004224fc8082affc80848f3400c38f8f -:10a7a0001600c297212860002130400021380000a7 -:10a7b0009452400f000000004c00401400000000c4 -:10a7c0001600c29721184000fc80828f2110620081 -:10a7d000fc8082affc80848f3400c28f2000432431 -:10a7e0001600c29721286000213040002138000067 -:10a7f0009452400f000000003f0040140000000091 -:10a800001600c29721184000fc80828f2110620040 -:10a81000fc8082affc80838f1200c29721206000f1 -:10a820002400c58f21304000213800009452400f91 -:10a830000000000033004014000000001200c29726 -:10a8400021184000fc80828f21106200fc8082afc2 -:10a85000fc80838f1400c297212060002c00c58fdc -:10a8600021304000213800009452400f00000000c9 -:10a8700027004014000000001400c2972118400077 -:10a88000fc80828f21106200fc8082af21100000ca -:10a890004c6a400b0000000000000000456a400bbd -:10a8a0000000000000000000456a400b00000000ae -:10a8b00000000000456a400b00000000000000009e -:10a8c000456a400b0000000000000000456a400b94 -:10a8d0000000000000000000456a400b000000007e -:10a8e00000000000456a400b00000000000000006e -:10a8f000456a400b0000000000000000456a400b64 -:10a900000000000000000000456a400b000000004d -:10a91000000000002120000021280000213000005c -:10a92000010007249452400f000000001000c28371 -:10a9300021e8c0031c00bf8f1800be8f2000bd2778 -:10a940000800e00300000000d8ffbd272400bfafcf -:10a950002000beaf21f0a0032800c4af2c00c5af7b -:10a960003000c6af3400c7af200002241800c2a7d1 -:10a97000400002241a00c2a72800c28f1a00c32771 -:10a980001000a3af3400c38f1400a3af21204000f8 -:10a990002c00c58f1800c227213040003000c78f1f -:10a9a0004569400f0000000021e8c0032400bf8f6c -:10a9b0002000be8f2800bd270800e0030000000033 -:10a9c000e0ffbd271c00bfaf1800beaf21f0a00301 -:10a9d0002000c4af2110a0002400c2a7f4ff02246d -:10a9e0001000c2a3fc80828f04004014000000000d -:10a9f000f4ff02249b6a400b000000002000c28f7d -:10aa00000500401400000000f1ff02241000c2a362 -:10aa1000946a400b00000000fc80838f2400c297e2 -:10aa2000212060002000c58f213040002138000027 -:10aa30009452400f00000000040040140000000089 -:10aa4000211000009b6a400b000000000000000085 -:10aa500021200000212800002130000001000724ef -:10aa60009452400f000000001000c28321e8c00390 -:10aa70001c00bf8f1800be8f2000bd270800e00318 -:10aa800000000000e8ffbd271400bfaf1000beaffc -:10aa900021f0a00321200000212800002130000027 -:10aaa000010007249452400f0000000021e8c00379 -:10aab0001400bf8f1000be8f1800bd270800e003f0 -:10aac00000000000e8ffbd271400bfaf1000beafbc -:10aad00021f0a003a16a400f0000000021e8c0039c -:10aae0001400bf8f1000be8f1800bd270800e003c0 -:10aaf00000000000f8ffbd270400beaf21f0a00356 -:10ab0000fc8080af21e8c0030400be8f0800bd2791 -:10ab10000800e00300000000d0ffbd272c00bfaffd -:10ab20002800beaf21f0a0033000c4af2000c0a3b6 -:10ab30003000c28f2400c2af2400c2271000a0af93 -:10ab40001400a0af1800a0af0500042405000524e0 -:10ab500021304000040007240750400f000000008f -:10ab60002000c2a32000c28321e8c0032c00bf8fb5 -:10ab70002800be8f3000bd270800e0030000000061 -:10ab8000e8ffbd271400bfaf1000beaf21f0a00347 -:10ab90005f6c400f0000000021e8c0031400bf8f6d -:10aba0001000be8f1800bd270800e0030000000061 -:10abb000e8ffbd271400bfaf1000beaf21f0a00317 -:10abc000211080001800c2a3648082930f00432ce0 -:10abd0003f0160100000000080180200029d023c4e -:10abe000f4ab4224211062000000428c08004000b7 -:10abf0000000000030ac019d58ac019dc0ac019d2f -:10ac000028ad019d90ad019dfcad019d30ae019d33 -:10ac100064ae019dacae019df4ae019d78af019d87 -:10ac2000d8af019df0af019d1cb0019d48b0019dc2 -:10ac3000dc8080afe48080afec8080a3e88080afd0 -:10ac400001000224648082a3ffff0224608082af9f -:10ac50003a6c400b00000000d880828f0012020086 -:10ac6000d88082af1800c393d880828f21106200f1 -:10ac7000d88082af6080838f1800c293212060004b -:10ac800021284000ef94400f00000000608082af58 -:10ac90001800c393de0002240500621400000000c7 -:10aca00002000224648082a33a6c400b0000000082 -:10acb0005f6c400f000000003a6c400b0000000089 -:10acc000d880828f00120200d88082af1800c39310 -:10acd000d880828f21106200d88082af6080838ffd -:10ace0001800c2932120600021284000ef94400ffb -:10acf00000000000608082af1800c393ad00022402 -:10ad0000050062140000000003000224648082a396 -:10ad10003a6c400b000000005f6c400f0000000028 -:10ad20003a6c400b00000000d880828f00120200b5 -:10ad3000d88082af1800c393d880828f2110620020 -:10ad4000d88082af6080838f1800c293212060007a -:10ad500021284000ef94400f00000000608082af87 -:10ad60001800c393be000224050062140000000016 -:10ad700004000224648082a33a6c400b00000000af -:10ad80005f6c400f000000003a6c400b00000000b8 -:10ad9000d880828f00120200d88082af1800c3933f -:10ada000d880828f21106200d88082af6080838f2c -:10adb0001800c2932120600021284000ef94400f2a -:10adc00000000000608082afd880838fadde023c3f -:10add000efbe423405006210000000005f6c400fbf -:10ade000000000003a6c400b000000000500022447 -:10adf000648082a33a6c400b000000001800c293ec -:10ae0000ec8082a306000224648082a36080838f8a -:10ae10001800c2932120600021284000ef94400fc9 -:10ae200000000000608082af3a6c400b0000000020 -:10ae30001800c293dc8082af07000224648082a3e2 -:10ae40006080838f1800c293212060002128400079 -:10ae5000ef94400f00000000608082af3a6c400b1e -:10ae600000000000dc80828f00120200dc8082afd4 -:10ae70001800c393dc80828f21106200dc8082afd7 -:10ae80006080838f1800c293212060002128400039 -:10ae9000ef94400f00000000608082af08000224a1 -:10aea000648082a33a6c400b00000000dc80828f3b -:10aeb00000120200dc8082af1800c393dc80828f16 -:10aec00021106200dc8082af6080838f1800c29303 -:10aed0002120600021284000ef94400f0000000076 -:10aee000608082af09000224648082a33a6c400b28 -:10aef00000000000dc80828f00120200dc8082af44 -:10af00001800c393dc80828f21106200dc8082af46 -:10af10006080838f1800c2932120600021284000a8 -:10af2000ef94400f00000000608082afdc80828fd1 -:10af30009f00422c05004014000000005f6c400f91 -:10af4000000000003a6c400b00000000dc80828fa3 -:10af500005004014000000000b000224648082a35e -:10af60003a6c400b000000000a000224648082a3b7 -:10af70003a6c400b00000000e481828f1800c393fc -:10af8000000043a0e481828f01004224e48182af6b -:10af9000e080828f01004224e08082af6080838f56 -:10afa0001800c2932120600021284000ef94400f38 -:10afb00000000000608082afe080838fdc80828fa1 -:10afc00048006214000000000b000224648082a389 -:10afd0003a6c400b000000001800c293e88082af7a -:10afe0000c000224648082a33a6c400b0000000035 -:10aff000e880828f00120200e88082af1800c393bd -:10b00000e880828f21106200e88082af0d00022468 -:10b01000648082a33a6c400b00000000e880828fbd -:10b0200000120200e88082af1800c393e880828f8c -:10b0300021106200e88082af0e000224648082a3a7 -:10b040003a6c400b00000000e880828f0012020082 -:10b05000e88082af1800c393e880828f21106200dd -:10b06000e88082af6080828f27100200608082af0c -:10b07000e880838f6080828f0b00621000000000e8 -:10b08000ec8082932014027c2120400021280000c3 -:10b09000f23d400f000000005f6c400f0000000018 -:10b0a0003a6c400b00000000ec8082932014027c7c -:10b0b0002120400001000524f23d400f0000000067 -:10b0c0005f6c400f000000003a6c400b0000000075 -:10b0d0005f6c400f00000000000000003a6c400b65 -:10b0e000000000000000000021e8c0031400bf8f32 -:10b0f0001000be8f1800bd270800e003000000000c -:10b10000e0ffbd271c00bfaf1800beaf21f0a003b9 -:10b110002000c4af2400c5af1000c0af546c400b7a -:10b12000000000002000c28f000042902000c38f6a -:10b13000010063242000c3af21204000ec6a400fcf -:10b14000000000001000c28f010042241000c2afb6 -:10b150001000c38f2400c28f2a106200f1ff401438 -:10b160000000000021e8c0031c00bf8f1800be8f44 -:10b170002000bd270800e00300000000f8ffbd2705 -:10b180000400beaf21f0a003dc8080afd88080af88 -:10b19000e48080afec8080a3e88080af01000224cf -:10b1a000648082a3e08080afffff0224608082afd2 -:10b1b00000a0023c942e4224e48182af21e8c00327 -:10b1c0000400be8f0800bd270800e0030000000057 -:10b1d000d8ffbd272400bfaf2000beaf21f0a003e1 -:10b1e000211080002c00c5af2800c2a300a0023ca3 -:10b1f000deff0324942e43a000a0023c942e4224a0 -:10b20000adff0324010043a000a0023c942e422481 -:10b21000beff0324020043a000a0023c942e42245f -:10b22000efff0324030043a000a0023c942e42241d -:10b230002800c393040043a02c00c28f0316020011 -:10b240001000c2a31000c39300a0023c942e42241d -:10b25000050043a02c00c28f031402001000c2a3fb -:10b260001000c39300a0023c942e4224060043a089 -:10b270002c00c28f031202001000c2a31000c3935f -:10b2800000a0023c942e4224070043a02c00c28f51 -:10b290001000c2a31000c39300a0023c942e4224cd -:10b2a000080043a0ffff02241400c2af2c00c28f8d -:10b2b0000900422400a0033c942e6424212840006d -:10b2c000b194400f000000001400c2af6880838f6b -:10b2d0002c00c28f211062001800c2af1400c28f70 -:10b2e000021602001000c2a31000c3931800c28f00 -:10b2f000000043a01800c28f010042241800c2af12 -:10b300001400c28f021402001000c2a31000c393e5 -:10b310001800c28f000043a01800c28f0100422411 -:10b320001800c2af1400c28f021202001000c2a3a4 -:10b330001000c3931800c28f000043a01800c28ff2 -:10b34000010042241800c2af1400c28f1000c2a333 -:10b350001000c3931800c28f000043a01800c28fd2 -:10b36000010042241800c2af2c00c28f0d004224fd -:10b3700000a0033c942e642421284000823d400f0d -:10b380000000000021e8c0032400bf8f2000be8f12 -:10b390002800bd270800e00300000000f8ffbd27db -:10b3a0000400beaf21f0a0036880828f21e8c003b3 -:10b3b0000400be8f0800bd270800e0030000000065 -:10b3c000e8ffbd271400bfaf1000beaf21f0a003ff -:10b3d000e76c400f0000000001000324000043a0c0 -:10b3e0000300042401000524746c400f00000000d9 -:10b3f00021e8c0031400bf8f1000be8f1800bd27c6 -:10b400000800e00300000000e8ffbd271400bfaf04 -:10b410001000beaf21f0a003211080001800c2a3cd -:10b42000e76c400f0000000001000324000043a06f -:10b430001800c2932120400001000524746c400fc5 -:10b440000000000021e8c0031400bf8f1000be8f71 -:10b450001800bd270800e00300000000e8ffbd273a -:10b460001400bfaf1000beaf21f0a0032110800078 -:10b470001800c2a3e76c400f00000000000040a0cd -:10b480001800c2932120400001000524746c400f75 -:10b490000000000021e8c0031400bf8f1000be8f21 -:10b4a0001800bd270800e00300000000d8ffbd27fa -:10b4b0002400bfaf2000beaf21f0a0032110800008 -:10b4c0002800c2a3960002241000c2afe76c400f10 -:10b4d000000000001400c2af1400c28f2800c39304 -:10b4e000000043a01400c28f010042241400c2af28 -:10b4f0002800c3830100022426006214000000001b -:10b500001000c28f031602001800c2a31400c28fdd -:10b510001800c393000043a01400c28f010042240e -:10b520001400c2af1000c28f031402001800c2a39f -:10b530001400c28f1800c393000043a01400c28ff0 -:10b54000010042241400c2af1000c28f0312020097 -:10b550001800c2a31400c28f1800c393000043a0b8 -:10b560001400c28f010042241400c2af1000c28f29 -:10b570001800c2a31400c28f1800c393000043a098 -:10b580001400c28f010042241400c2af796d400b39 -:10b59000000000001400c28f000040a01400c28f01 -:10b5a000010042241400c2af1400c28f000040a06a -:10b5b0001400c28f010042241400c2af1400c28fd5 -:10b5c000000040a01400c28f010042241400c2af4a -:10b5d0001400c28f000040a01400c28f010042245a -:10b5e0001400c2af0800042405000524746c400f49 -:10b5f0000000000021e8c0032400bf8f2000be8fa0 -:10b600002800bd270800e00300000000e0ffbd2780 -:10b610001c00bfaf1800beaf21f0a00321108000b6 -:10b620002400c5af2000c2a3e76c400f000000005b -:10b630001000c2af1000c28f2000c393000043a0cf -:10b640001000c28f010042241000c2af2400c28f3c -:10b65000031602001400c2a31000c28f1400c3938b -:10b66000000043a01000c28f010042241000c2afae -:10b670002400c28f031402001400c2a31000c28f62 -:10b680001400c393000043a01000c28f01004224a5 -:10b690001000c2af2400c28f031202001400c2a324 -:10b6a0001000c28f1400c393000043a01000c28f8b -:10b6b000010042241000c2af2400c28f1400c2a3b4 -:10b6c0001000c28f1400c393000043a01000c28f6b -:10b6d000010042241000c2af0d000424050005241f -:10b6e000746c400f0000000021e8c0031c00bf8ff5 -:10b6f0001800be8f2000bd270800e00300000000f6 -:10b70000e0ffbd271c00bfaf1800beaf21f0a003b3 -:10b71000211080002000c2a3e76c400f0000000051 -:10b720001000c2af1000c28f2000c393000043a0de -:10b730001000c28f010042241000c2af0a0004248e -:10b7400001000524746c400f0000000021e8c003d4 -:10b750001c00bf8f1800be8f2000bd270800e0032b -:10b7600000000000e0ffbd271c00bfaf1800beaf07 -:10b7700021f0a003211080002000c2a3e76c400f3d -:10b78000000000001000c2af1000c28f2000c39361 -:10b79000000043a01000c28f010042241000c2af7d -:10b7a0000f00042401000524746c400f0000000009 -:10b7b00021e8c0031c00bf8f1800be8f2000bd27ea -:10b7c0000800e00300000000e0ffbd271c00bfaf41 -:10b7d0001800beaf21f0a003211080002000c2a3fa -:10b7e000e76c400f000000001000c2af1000c28fd5 -:10b7f0002000c393000043a01000c28f0100422428 -:10b800001000c2af1900042401000524746c400f1d -:10b810000000000021e8c0031c00bf8f1800be8f8d -:10b820002000bd270800e00300000000e0ffbd2766 -:10b830001c00bfaf1800beaf21f0a0032000c4afb2 -:10b840002400c5afe76c400f000000001000c2af3d -:10b850001400c0af1400c0af266e400b0000000003 -:10b860002000c28f00004290201c027c1000c28f7a -:10b87000000043a01000c28f010042241000c2af9c -:10b880002000c28f010042242000c2af1400c28fea -:10b89000010042241400c2af1400c38f2400c28fe1 -:10b8a0002a106200eeff4014000000001b00042478 -:10b8b0002400c58f746c400f0000000021e8c00315 -:10b8c0001c00bf8f1800be8f2000bd270800e003ba -:10b8d00000000000f8ffbd270400beaf21f0a00368 -:10b8e000211080000800c2a70800c28700ff423074 -:10b8f00003120200201e027c0800c2970012020000 -:10b900002016027c251062002016027c21e8c0036c -:10b910000400be8f0800bd270800e00300000000ff -:10b92000f8ffbd270400beaf21f0a0030800c4af9c -:10b930000800c28f021e02000800c48fff00023cf4 -:10b940002410820003120200251862000800c28f32 -:10b9500000ff423000120200251862000800c28f6a -:10b96000001602002510620021e8c0030400be8f0b -:10b970000800bd270800e00300000000d8ffbd2735 -:10b980002400bfaf2000beaf21f0a0032800c4af49 -:10b990002c00c5af3000c6af1000c0af1400c227e6 -:10b9a00021204000029d023c983f45242c00c68f78 -:10b9b00024a2400f000000002c00c28f0f00422c78 -:10b9c0001f004010000000001000c0af7d6e400b53 -:10b9d000000000001000c28f2800c38f21106200f9 -:10b9e00030000324000043a01000c28f0100422455 -:10b9f0001000c2af3000c28fffff43241000c28f7f -:10ba00002a104300f3ff4014000000001000c28f12 -:10ba10002800c38f212062003000c38f1000c28f26 -:10ba2000231062001400c327212860002130400049 -:10ba3000479c400f00000000616f400b00000000b9 -:10ba40002c00c28fff00422c1f004010000000009d -:10ba50001000c0af9f6e400b000000001000c28fae -:10ba60002800c38f2110620030000324000043a08f -:10ba70001000c28f010042241000c2af3000c28ffc -:10ba8000feff43241000c28f2a104300f3ff40142e -:10ba9000000000001000c28f2800c38f2120620028 -:10baa0003000c38f1000c28f231062001400c32720 -:10bab0002128600021304000479c400f000000001a -:10bac000616f400b000000002c00c28fff0f422c62 -:10bad0001f004010000000001000c0afc16e400bfe -:10bae000000000001000c28f2800c38f21106200e8 -:10baf00030000324000043a01000c28f0100422444 -:10bb00001000c2af3000c28ffdff43241000c28f6f -:10bb10002a104300f3ff4014000000001000c28f01 -:10bb20002800c38f212062003000c38f1000c28f15 -:10bb3000231062001400c327212860002130400038 -:10bb4000479c400f00000000616f400b00000000a8 -:10bb50002c00c38fffff02342b1062001f00401027 -:10bb6000000000001000c0afe46e400b00000000b9 -:10bb70001000c28f2800c38f211062003000032400 -:10bb8000000043a01000c28f010042241000c2af89 -:10bb90003000c28ffcff43241000c28f2a104300e4 -:10bba000f3ff4014000000001000c28f2800c38f74 -:10bbb000212062003000c38f1000c28f231062006a -:10bbc0001400c3272128600021304000479c400f0b -:10bbd00000000000616f400b000000002c00c38fcc -:10bbe0000f00023cffff42342b1062001f00401088 -:10bbf000000000001000c0af086f400b0000000004 -:10bc00001000c28f2800c38f21106200300003246f -:10bc1000000043a01000c28f010042241000c2aff8 -:10bc20003000c28ffbff43241000c28f2a10430054 -:10bc3000f3ff4014000000001000c28f2800c38fe3 -:10bc4000212062003000c38f1000c28f23106200d9 -:10bc50001400c3272128600021304000479c400f7a -:10bc600000000000616f400b000000002c00c38f3b -:10bc7000ff00023cffff42342b1062001f00401007 -:10bc8000000000001000c0af2c6f400b000000004f -:10bc90001000c28f2800c38f2110620030000324df -:10bca000000043a01000c28f010042241000c2af68 -:10bcb0003000c28ffaff43241000c28f2a104300c5 -:10bcc000f3ff4014000000001000c28f2800c38f53 -:10bcd000212062003000c38f1000c28f2310620049 -:10bce0001400c3272128600021304000479c400fea -:10bcf00000000000616f400b000000002c00c38fab -:10bd0000ff0f023cffff42342b1062001d00401069 -:10bd1000000000001000c0af506f400b000000009a -:10bd20001000c28f2800c38f21106200300003244e -:10bd3000000043a01000c28f010042241000c2afd7 -:10bd40003000c28ff9ff43241000c28f2a10430035 -:10bd5000f3ff4014000000001000c28f2800c38fc2 -:10bd6000212062003000c38f1000c28f23106200b8 -:10bd70001400c3272128600021304000479c400f59 -:10bd8000000000000100022421e8c0032400bf8f4e -:10bd90002000be8f2800bd270800e003000000003f -:10bda000d8ffbd272400bfaf2000beaf21f0a00305 -:10bdb0002800c4af2c00c5af1000c0af1400c227cc -:10bdc00021204000029d023c983f45242c00c68f54 -:10bdd00024a2400f000000002c00c28f0f00422c54 -:10bde00007004010000000001400c3832800c28f29 -:10bdf000000043a0010002243770400b0000000047 -:10be00002c00c28fff00422c1600401000000000e2 -:10be10001000c0af926f400b000000001000c28ff6 -:10be20002800c38f211062001000c38f1000c427a8 -:10be30002118830004006380000043a01000c28f1b -:10be4000010042241000c2af1000c28f020042283d -:10be5000f2ff401400000000020002243770400b83 -:10be6000000000002c00c28fff0f422c1600401073 -:10be7000000000001000c0afab6f400b00000000de -:10be80001000c28f2800c38f211062001000c38fe2 -:10be90001000c4272118830004006380000043a021 -:10bea0001000c28f010042241000c2af1000c28fe8 -:10beb00003004228f2ff40140000000003000224a7 -:10bec0003770400b000000002c00c38fffff0234ce -:10bed0002b10620016004010000000001000c0afe0 -:10bee000c56f400b000000001000c28f2800c38ff8 -:10bef000211062001000c38f1000c4272118830096 -:10bf000004006380000043a01000c28f010042249f -:10bf10001000c2af1000c28f04004228f2ff40148c -:10bf200000000000040002243770400b00000000f5 -:10bf30002c00c38f0f00023cffff42342b10620025 -:10bf400016004010000000001000c0afe06f400b72 -:10bf5000000000001000c28f2800c38f2110620073 -:10bf60001000c38f1000c4272118830004006380d1 -:10bf7000000043a01000c28f010042241000c2af95 -:10bf80001000c28f05004228f2ff4014000000009c -:10bf9000050002243770400b000000002c00c38f06 -:10bfa000ff00023cffff42342b10620016004010dd -:10bfb000000000001000c0affb6f400b000000004d -:10bfc0001000c28f2800c38f211062001000c38fa1 -:10bfd0001000c4272118830004006380000043a0e0 -:10bfe0001000c28f010042241000c2af1000c28fa7 -:10bff00006004228f2ff4014000000000600022460 -:10c000003770400b000000002c00c38fff0f023c74 -:10c01000ffff42342b1062001600401000000000a9 -:10c020001000c0af1670400b000000001000c28f5f -:10c030002800c38f211062001000c38f1000c42796 -:10c040002118830004006380000043a01000c28f09 -:10c05000010042241000c2af1000c28f0700422826 -:10c06000f2ff401400000000070002243770400b6c -:10c07000000000002c00c38fffff02241600621096 -:10c08000000000001000c0af2f70400b0000000047 -:10c090001000c28f2800c38f211062001000c38fd0 -:10c0a0001000c4272118830004006380000043a00f -:10c0b0001000c28f010042241000c2af1000c28fd6 -:10c0c00008004228f2ff401400000000080002248b -:10c0d0003770400b000000002110000021e8c00371 -:10c0e0002400bf8f2000be8f2800bd270800e0037a -:10c0f00000000000e0ffbd271c00bfaf1800beaf6e -:10c1000021f0a0032000c4af2110a0002800c6af7a -:10c110002400c2a31000c0af2400c2931400c327a0 -:10c1200021206000029d033c983f6524213040009f -:10c1300024a2400f000000002400c2930f00422cf4 -:10c140001f004010000000001000c0af5d70400be9 -:10c15000000000001000c28f2000c38f2110620079 -:10c1600030000324000043a01000c28f01004224cd -:10c170001000c2af2800c28fffff43241000c28fff -:10c180002a104300f3ff4014000000001000c28f8b -:10c190002000c38f212062002800c38f1000c28faf -:10c1a000231062001400c3272128600021304000c2 -:10c1b000479c400f000000009070400b0000000002 -:10c1c0002400c393ff0002241d0062100000000041 -:10c1d0001000c0af7f70400b000000001000c28f45 -:10c1e0002000c38f2110620030000324000043a010 -:10c1f0001000c28f010042241000c2af2800c28f7d -:10c20000feff43241000c28f2a104300f3ff4014a6 -:10c21000000000001000c28f2000c38f21206200a8 -:10c220002800c38f1000c28f231062001400c327a0 -:10c230002128600021304000479c400f0000000092 -:10c240000100022421e8c0031c00bf8f1800be8f2c -:10c250002000bd270800e00300000000e8ffbd2724 -:10c260001400beaf21f0a0031800c4af1c00c5af7e -:10c270002000c6af0000c0af0400c0af0800c0afd0 -:10c28000010002240c00c2af2000c38f1000022462 -:10c2900036006214000000001c00c28fffff422421 -:10c2a0000000c2afd670400b000000001c00c28f1f -:10c2b000ffff43240000c28f090062140000000049 -:10c2c0000000c28f1800c38f21106200000042805e -:10c2d000d0ff42240800c2afd370400b0000000022 -:10c2e0000000c28f0400c2afc270400b000000000b -:10c2f0000c00c28f001102000c00c2af0400c28ffc -:10c30000010042240400c2af1c00c28ffeff432480 -:10c310000400c28f2a106200f5ff401000000000e8 -:10c320000000c28f1800c38f2110620000004280fd -:10c33000d0ff4224211840000c00c28f0218627006 -:10c340000800c28f211043000800c2af0000c28f56 -:10c35000ffff42240000c2af0000c28fd3ff4104a0 -:10c36000000000000c71400b000000002000c38f93 -:10c370000a0002242e006214000000000000c0af7a -:10c380000771400b000000000000c28f0500401440 -:10c3900000000000010002240c00c2aff970400b45 -:10c3a000000000000400c0aff470400b000000006b -:10c3b0000c00c28f401002008018020021104300c0 -:10c3c0000c00c2af0400c28f010042240400c2afbf -:10c3d0000400c38f0000c28f2a106200f4ff4014d3 -:10c3e000000000000000c28f1800c38f21106200ff -:10c3f00000004280d0ff4224211840000c00c28f70 -:10c40000021862700800c28f211043000800c2affa -:10c410000000c28f010042240000c2af0000c38fa1 -:10c420001c00c28f2a106200d7ff401400000000d9 -:10c430000800c28f21e8c0031400be8f1800bd277a -:10c440000800e00300000000e0ffbd271c00bfafb4 -:10c450001800beaf21f0a0032000c4af2110a0003f -:10c460002400c2a32400c2931000c327212060002f -:10c47000029d033c983f65242130400024a2400fd8 -:10c48000000000002400c2930f00422c070040105f -:10c49000000000001000c3832000c28f000043a0f2 -:10c4a000010002243a71400b000000002400c393f5 -:10c4b000ff0002240b006210000000001000c38384 -:10c4c0002000c28f000043a02000c28f0100422440 -:10c4d0001100c383000043a0020002243a71400b04 -:10c4e000000000002110000021e8c0031c00bf8fe5 -:10c4f0001800be8f2000bd270800e00300000000e8 -:10c50000e8ffbd271400beaf21f0a0031800c4afa0 -:10c510001c00c5af0400c0af0000c0af5b71400b92 -:10c5200000000000029d023c0400c38f801803003d -:10c530009c3f4224211062000000428c0800c2afe0 -:10c540000000c28f1800c38f2110620000004280db -:10c55000211840000800c28f261062000400c2affc -:10c560000000c28f010042240000c2af0000c38f50 -:10c570001c00c28f2a106200eaff40140000000075 -:10c580000400c28f21e8c0031400be8f1800bd272d -:10c590000800e00300000000f8ffbd270400beaf64 -:10c5a00021f0a0030800c4af21e8c0030400be8f3f -:10c5b0000800bd270800e0030000000058ffbd2769 -:10c5c000a400bfafa000beaf21f0a003a800c4af7d -:10c5d000ac00c5afb000c6af1000c0a31400c0af20 -:10c5e000a571400b00000000800002241800c2afbb -:10c5f000b000c38f1400c28f231862001800c28fce -:10c600002b1062000500401000000000b000c38f36 -:10c610001400c28f231062001800c2afac00c38f99 -:10c620001400c28f211062001c00c327212060006b -:10c63000212840001800c68f625b400f00000000f8 -:10c640001000c2a31000c2831900401400000000b3 -:10c65000a800c38f1400c28f211062001c00c327e2 -:10c6600021206000212840001800c68fc6a0400f7e -:10c67000000000001000c2a31000c2830f0040148d -:10c68000000000001400c38f1800c28f2110620048 -:10c690001400c2af1400c38fb000c28f2b10620011 -:10c6a000d1ff401400000000b071400b00000000fa -:10c6b00000000000b071400b00000000000000000e -:10c6c0001000c28321e8c003a400bf8fa000be8f6a -:10c6d000a800bd270800e00300000000e0ffbd2720 -:10c6e0001c00bfaf1800beaf21f0a0032000c4aff4 -:10c6f0002400c5af2800c6aff4ff02241000c2a377 -:10c70000140002241100c2a3d371400b00000000ea -:10c710002000c48f2400c58f2800c68f985b400f6f -:10c72000000000001000c2a31000c28307004014e4 -:10c73000000000002000c48f2400c58f2800c68f91 -:10c740006f71400f000000001000c2a31000c283f0 -:10c7500009004010000000001100c2932b100200dd -:10c76000ff0042301100c393ffff63241100c3a3f5 -:10c77000e7ff4014000000001000c28321e8c0035e -:10c780001c00bf8f1800be8f2000bd270800e003eb -:10c7900000000000f0ffbd270c00beaf21f0a00399 -:10c7a000211880001400c5af2110c0001000c3a3e1 -:10c7b0001800c2a71000c2930000c2a30200c0a7c5 -:10c7c0002072400b000000000400c0a71972400b4b -:10c7d000000000000200c2971400c38f2110620005 -:10c7e00000004290211840000400c297041043004a -:10c7f00080004230c3110200201c027c0000c29362 -:10c8000082110200ff0042302014027c01004230fd -:10c810002014027c261062002014027c0600c2a3b1 -:10c820000000c293401002002014027c7f004230be -:10c830002024027c0600c39321106000c010020077 -:10c8400021104300ff0042302014027c2610820099 -:10c850002014027c0000c2a30400c29701004224fd -:10c860000400c2a70400c2970800422cd9ff40145c -:10c87000000000000200c297010042240200c2a78b -:10c880000200c3971800c2972b106200ceff40141d -:10c89000000000000000c29321e8c0030c00be8f1e -:10c8a0001000bd270800e00300000000d8ffbd27ee -:10c8b0002400bfaf2000beaf1c00b0af21f0a0032a -:10c8c0002800c4af1000c0a32800c28f0000438c12 -:10c8d000bc1a023cf9de4234030062100000000082 -:10c8e000f4ff02241000c2a32800c28f4400508c21 -:10c8f0002800c28f7f000424212840004400062421 -:10c90000e571400f0000000003000212000000006b -:10c91000f4ff02241000c2a31000c28321e8c00368 -:10c920002400bf8f2000be8f1c00b08f2800bd27c1 -:10c930000800e00300000000e0ffbd271c00bfafbf -:10c940001800beaf21f0a0032000c4af2000c28faa -:10c95000212040000010052448000624625b400f9f -:10c96000000000001000c2a31000c28305004014a4 -:10c97000000000002000c48f2b72400f0000000058 -:10c980001000c2a31000c2830f004010000000007e -:10c990002000c28f212040000020052448000624ea -:10c9a000625b400f000000001000c2a31000c283b1 -:10c9b00005004014000000002000c48f2b72400fbf -:10c9c000000000001000c2a31000c28321e8c003d1 -:10c9d0001c00bf8f1800be8f2000bd270800e00399 -:10c9e00000000000e0ffbd271c00bfaf1800beaf75 -:10c9f00021f0a0032000c4aff4ff02241000c2a362 -:10ca000000200424001005240b5c400f00000000ef -:10ca10001000c2a31000c2833600401400000000c2 -:10ca20002000c28f0800428c010043242000c28fe6 -:10ca3000080043ac2000c28f7f000424212840005e -:10ca400044000624e571400f00000000211840005a -:10ca50002000c28f440043ac2000c28f2120400040 -:10ca60000020052448000624b771400f0000000094 -:10ca70001000c2a31000c2831e004014000000007a -:10ca800000100424001005240b5c400f000000007f -:10ca90001000c2a31000c283160040140000000062 -:10caa0002000c28f0800428c010043242000c28f66 -:10cab000080043ac2000c28f7f00042421284000de -:10cac00044000624e571400f0000000021184000da -:10cad0002000c28f440043ac2000c28f21204000c0 -:10cae0000010052448000624b771400f0000000024 -:10caf0001000c2a31000c28321e8c0031c00bf8f36 -:10cb00001800be8f2000bd270800e00300000000d1 -:10cb1000a0ffbd275c00bfaf5800beaf21f0a0034f -:10cb20006000c4af6400c5af6800c6af6400c28fc8 -:10cb300008004010000000006800c28f050040108f -:10cb4000000000006000c28f0a00422c0400401464 -:10cb500000000000211000003a73400b00000000ac -:10cb60006000c28f0300432c06006010000000002c -:10cb70002b1002001200401400000000e672400b6f -:10cb800000000000090003240d0043100000000015 -:10cb90002873400b000000006400c28f000040ac0e -:10cba000705c400f0000000040140200211840009b -:10cbb0006800c28f000043ac3973400b00000000d6 -:10cbc0004584400f000000002118400001000224ad -:10cbd0000400621000000000211000003a73400bb6 -:10cbe000000000001000c227212040004e72400fbc -:10cbf00000000000040040100000000021100000b0 -:10cc00003a73400b000000006000c38f0200022452 -:10cc100006006214000000002c00c38f6400c28f65 -:10cc2000000043ac1e73400b000000006000c38f87 -:10cc30000100022406006214000000002000c38fdf -:10cc40006400c28f000043ac1e73400b0000000064 -:10cc50006000c38f09000224070062140000000076 -:10cc60002000c38f0400023c00c04234211862003f -:10cc70006400c28f000043ac039d033c6000c28f80 -:10cc8000208b6324c0100200211062000400438c3a -:10cc90006800c28f000043ac3973400b00000000f5 -:10cca000039d023c6000c38fc0180300208b422408 -:10ccb000211062000000438c6400c28f000043ac6e -:10ccc000039d033c6000c28f208b6324c0100200d0 -:10ccd000211062000400438c6800c28f000043ac46 -:10cce000000000000100022421e8c0035c00bf8fa7 -:10ccf0005800be8f6000bd270800e0030000000060 -:10cd0000e0ffbd271c00bfaf1800beaf21f0a0039d -:10cd10002000c4af2118a0002110c0002400c3a32c -:10cd20002800c2a34584400f0000000021184000e5 -:10cd3000010002240400621000000000f4ff02243d -:10cd40008973400b000000002000c28f0a00422cb3 -:10cd50000400401400000000f1ff02248973400b1e -:10cd6000000000001400c2272000c48f1000c32759 -:10cd70002128600021304000c472400f00000000f4 -:10cd80000400401400000000f4ff02248973400beb -:10cd9000000000001000c28fff0f4230040040105e -:10cda00000000000f1ff02248973400b0000000026 -:10cdb0002400c3932800c29321106200001b0200cc -:10cdc0001400c28f2b10430004004010000000002c -:10cdd000f4ff02248973400b000000002400c2937a -:10cde000001b02001000c28f211062001000c2afb1 -:10cdf0001000c38f2800c29300130200212060009e -:10ce0000212840000b5c400f00000000040040108f -:10ce100000000000f4ff02248973400b00000000b2 -:10ce20002110000021e8c0031c00bf8f1800be8f36 -:10ce30002000bd270800e00300000000e0ffbd2740 -:10ce40001c00bfaf1800beaf21f0a0032000c4af8c -:10ce50002400c5af2800c6af2c00c7af4584400fe3 -:10ce600000000000211840000100022404006210ac -:10ce700000000000f4ff0224d773400b0000000004 -:10ce80002400c28f05004010000000002000c28f67 -:10ce90000a00422c0400401400000000f1ff0224ac -:10cea000d773400b000000001400c2272000c48f7d -:10ceb0001000c3272128600021304000c472400fb9 -:10cec000000000000400401400000000f4ff0224f1 -:10ced000d773400b000000002800c38f2c00c28fc6 -:10cee000211862001400c28f2b1043000800401468 -:10cef000000000002800c38f2c00c28f21186200a0 -:10cf00002800c28f2b1062000400401000000000b7 -:10cf1000f4ff0224d773400b000000001000c38f01 -:10cf20002800c28f211062001000c2af1000c28f13 -:10cf30002400c48f212840002c00c68f985b400f2e -:10cf4000000000000400401000000000f4ff022474 -:10cf5000d773400b000000002110000021e8c0033f -:10cf60001c00bf8f1800be8f2000bd270800e00303 -:10cf700000000000e0ffbd271c00bfaf1800beafdf -:10cf800021f0a0032000c4af2400c5af2800c6af25 -:10cf90002c00c7af4584400f00000000211840005e -:10cfa000010002240400621000000000f4ff0224cb -:10cfb0002574400b000000002400c28f05004010c3 -:10cfc000000000002000c28f0a00422c0400401420 -:10cfd00000000000f1ff02242574400b0000000057 -:10cfe0001400c2272000c48f1000c327212860002e -:10cff00021304000c472400f0000000004004014c3 -:10d0000000000000f4ff02242574400b0000000023 -:10d010002800c38f2c00c28f211862001400c28f19 -:10d020002b10430008004014000000002800c38fac -:10d030002c00c28f211862002800c28f2b106200c2 -:10d040000400401000000000f4ff02242574400b8f -:10d05000000000001000c38f2800c28f2110620062 -:10d060001000c2af1000c28f2400c48f21284000de -:10d070002c00c68f625b400f0000000004004010cf -:10d0800000000000f4ff02242574400b00000000a3 -:10d090002110000021e8c0031c00bf8f1800be8fc4 -:10d0a0002000bd270800e0030000000098ffbd2716 -:10d0b0006400bfaf6000beaf21f0a0034584400f05 -:10d0c000000000002118400001000224040062104a -:10d0d00000000000f4ff02245474400b0000000024 -:10d0e0001400c227212040004e72400f00000000b3 -:10d0f0000400401000000000f4ff02245474400bb0 -:10d10000000000003000c28f1000c2af2400c28fa8 -:10d110003000c2af1000c28f2400c2af9823023c7f -:10d12000187742343400c2af1400c22721204000d7 -:10d130007972400f00000000040040100000000061 -:10d14000f4ff02245474400b000000002110000082 -:10d1500021e8c0036400bf8f6000be8f6800bd2758 -:10d160000800e00300000000e8ffbd271400bfaf87 -:10d170001000beaf21f0a00380bf023c000640ac0f -:10d1800080bf033c0006628c010004240429827cd9 -:10d19000000662ac80bf023c100640ac80bf023c7f -:10d1a00010270324200643ac88bf033ca010628ce8 -:10d1b000020004248420827ca01062ac88bf033c5f -:10d1c000a010628c030004240408827ca01062acce -:10d1d00088bf033c3010628c0421027c301062acaa -:10d1e00088bf033c6010628c010004240421827c0f -:10d1f000601062ac80bf033c0006628c0100042416 -:10d20000c47b827c000662ac00a0023c7c0e4424fd -:10d21000212800000801062423a0400f0000000080 -:10d2200021e8c0031400bf8f1000be8f1800bd2777 -:10d230000800e00300000000f0ffbd270c00beafb7 -:10d2400021f0a0031000c4af0000c0af1000c28fd7 -:10d25000c0100200801802002318620000a0023ce7 -:10d260007c0e4224211062001400428c46004010c3 -:10d27000000000001000c28fc010020080180200e1 -:10d280002318620000a0023c7c0e422421106200a0 -:10d290000400438c1000c28fc010020080200200e6 -:10d2a0002320820000a0023c7c0e42242110820038 -:10d2b0000000428c231062000000c2af0000c38f48 -:10d2c0001000c28fc01002008020020023208200c4 -:10d2d00000a0023c7c0e4224211082000c00428cf3 -:10d2e0002b1062000c004014000000001000c28fe0 -:10d2f000c0100200801802002318620000a0023c47 -:10d300007c0e422421106200040040ac0100022483 -:10d31000e374400b000000000000c28f1a004104bb -:10d32000000000000000c28fe803422421184000e2 -:10d330001000c28fc0100200802002002320820053 -:10d3400000a0023c7c0e4224211082000c00428c82 -:10d350002b1062000c004014000000001000c28f6f -:10d36000c0100200801802002318620000a0023cd6 -:10d370007c0e422421106200040040ac0100022413 -:10d38000e374400b000000002110000021e8c003fe -:10d390000c00be8f1000bd270800e0030000000055 -:10d3a000f0ffbd270c00beaf21f0a0031000c4affa -:10d3b0000000c0af1000c28fc01002008018020031 -:10d3c0002318620000a0023c7c0e4224211062005f -:10d3d0001400428c45004010000000001000c28f75 -:10d3e000c0100200801802002318620000a0023c56 -:10d3f0007c0e4224211062000800438c1000c28f72 -:10d40000c0100200802002002320820000a0023c05 -:10d410007c0e4224211082000000428c2310620006 -:10d420000000c2af0000c38f1000c28fc010020006 -:10d43000802002002320820000a0023c7c0e4224b7 -:10d44000211082001000428c2b1062000c0040144e -:10d45000000000001000c28fc010020080180200ff -:10d460002318620000a0023c7c0e422421106200be -:10d47000080040ac010002243c75400b0000000095 -:10d480000000c28f19004104000000000000c28f9c -:10d49000ffff43241000c28fc01002008020020052 -:10d4a0002320820000a0023c7c0e42242110820036 -:10d4b0001000428c2b1062000c0040140000000091 -:10d4c0001000c28fc01002008018020023186200f2 -:10d4d00000a0023c7c0e422421106200080040acf7 -:10d4e000010002243c75400b0000000021100000e8 -:10d4f00021e8c0030c00be8f1000bd270800e00328 -:10d5000000000000f0ffbd270c00beaf21f0a0031b -:10d510001000c4af0000c0af1000c28fc0100200e6 -:10d52000801802002318620000a0023c7c0e4224f6 -:10d53000211062001400428cd9004010000000004d -:10d540001000c28fc0100200801802002318620071 -:10d5500000a0023c7c0e4224211062000800438c93 -:10d560001000c28fc0100200802002002320820021 -:10d5700000a0023c7c0e4224211082000000428c5c -:10d58000231062000000c2af0000c38f1000c28fe2 -:10d59000c0100200802002002320820000a0023c74 -:10d5a0007c0e4224211082001000428c2b1062005d -:10d5b00056004014000000001000c28fc01002008e -:10d5c000801802002318620000a0023c7c0e422456 -:10d5d000211062000400438c1000c28fc0100200b2 -:10d5e000802002002320820000a0023c7c0e422406 -:10d5f000211082000000428c231062000000c2afa4 -:10d600000000c38f1000c28fc010020080200200f3 -:10d610002320820000a0023c7c0e422421108200c4 -:10d620000c00428c2b10620014004014000000001b -:10d630001000c28fc0100200801802002318620080 -:10d6400000a0023c7c0e422421106200080040ac85 -:10d650001000c28fc0100200801802002318620060 -:10d6600000a0023c7c0e422421106200040040ac69 -:10d67000010002242976400b000000000000c28f48 -:10d6800087004104000000000000c28fe80342242c -:10d69000211840001000c28fc0100200802002003c -:10d6a0002320820000a0023c7c0e42242110820034 -:10d6b0000c00428c2b106200790040140000000026 -:10d6c0001000c28fc01002008018020023186200f0 -:10d6d00000a0023c7c0e422421106200080040acf5 -:10d6e0001000c28fc01002008018020023186200d0 -:10d6f00000a0023c7c0e422421106200040040acd9 -:10d70000010002242976400b000000000000c28fb7 -:10d7100063004104000000000000c28fffff4324ab -:10d720001000c28fc010020080200200232082005f -:10d7300000a0023c7c0e4224211082001000428c8a -:10d740002b10620056004014000000001000c28f31 -:10d75000c0100200801802002318620000a0023ce2 -:10d760007c0e4224211062000400438c1000c28f02 -:10d77000c0100200802002002320820000a0023c92 -:10d780007c0e4224211082000000428c2310620093 -:10d790000000c2af0000c38f1000c28fc010020093 -:10d7a000802002002320820000a0023c7c0e422444 -:10d7b000211082000c00428c2b10620014004014d7 -:10d7c000000000001000c28fc0100200801802008c -:10d7d0002318620000a0023c7c0e4224211062004b -:10d7e000080040ac1000c28fc01002008018020078 -:10d7f0002318620000a0023c7c0e4224211062002b -:10d80000040040ac010002242976400b0000000017 -:10d810000000c28f22004104000000000000c28fff -:10d82000e8034224211840001000c28fc0100200fb -:10d83000802002002320820000a0023c7c0e4224b3 -:10d84000211082000c00428c2b1062001400401446 -:10d85000000000001000c28fc010020080180200fb -:10d860002318620000a0023c7c0e422421106200ba -:10d87000080040ac1000c28fc010020080180200e7 -:10d880002318620000a0023c7c0e4224211062009a -:10d89000040040ac010002242976400b0000000087 -:10d8a0002110000021e8c0030c00be8f1000bd272e -:10d8b0000800e00300000000e8ffbd271400bfaf30 -:10d8c0001000beaf21f0a0031800c4af1c00c5af0c -:10d8d0001800c28fc01002008018020023186200d6 -:10d8e00000a0023c7c0e42242110620001000324af -:10d8f000140043ac1c00c28fe803422c1e004014ed -:10d90000000000001800c28fc01002008018020042 -:10d910002318620000a0023c7c0e42242110620009 -:10d920001c00c48fe80303241b008300f401600083 -:10d930001020000012180000100043ac1800c28f25 -:10d94000c0100200801802002318620000a0023cf0 -:10d950007c0e4224211062001c00c48fe8030324c3 -:10d960001b008300f4016000101800000c0043aca1 -:10d970006f76400b000000001800c28fc01002003c -:10d98000801802002318620000a0023c7c0e422492 -:10d9900021106200100040ac1800c28fc0100200bd -:10d9a000801802002318620000a0023c7c0e422472 -:10d9b000211062001c00c38f0c0043ac1800c48f00 -:10d9c000a176400f0000000021e8c0031400bf8fc3 -:10d9d0001000be8f1800bd270800e0030000000003 -:10d9e000e8ffbd271400bfaf1000beaf21f0a003b9 -:10d9f0001800c4af1c00c5af1800c28fc0100200d1 -:10da0000801802002318620000a0023c7c0e422411 -:10da10002110620001000324140043ac1800c28fdf -:10da2000c0100200801802002318620000a0023c0f -:10da30007c0e4224211062001c00c38f100043acf6 -:10da40001800c28fc0100200801802002318620064 -:10da500000a0023c7c0e4224211062000c0040ac6d -:10da60001800c48fa176400f0000000021e8c00319 -:10da70001400bf8f1000be8f1800bd270800e00300 -:10da800000000000f8ffbd270400beaf21f0a00396 -:10da90000800c4af0800c28fc01002008018020046 -:10daa0002318620000a0023c7c0e42242110620078 -:10dab000000040ac0800c28fc010020080180200b5 -:10dac0002318620000a0023c7c0e42242110620058 -:10dad000040040ac0800c28fc01002008018020091 -:10dae0002318620000a0023c7c0e42242110620038 -:10daf000080040ac21e8c0030400be8f0800bd2729 -:10db00000800e00300000000f8ffbd270400beafde -:10db100021f0a0030800c4af0800c28fc0100200ab -:10db2000801802002318620000a0023c7c0e4224f0 -:10db3000211062001400428c21e8c0030400be8f53 -:10db40000800bd270800e00300000000f8ffbd2723 -:10db50000400beaf21f0a0030800c4af0800c28fcc -:10db6000c0100200801802002318620000a0023cce -:10db70007c0e422421106200140040ac21e8c00356 -:10db80000400be8f0800bd270800e003000000006d -:10db9000e8ffbd271400bfaf1000beaf21f0a00307 -:10dba0001800c4af020004242e76400f1800c58f61 -:10dbb000ef76400b0000000040000000020004244b -:10dbc0004175400f00000000fbff40100000000006 -:10dbd000d376400f0200042421e8c0031400bf8f55 -:10dbe0001000be8f0800e0031800bd2700e85d416b -:10dbf00000701a4000601b40e0ffbd271c00baaf58 -:10dc00001800bbaf44781b7c00087b3700609b404a -:10dc10001400beaf1000a4af0c00a3af0800a2af69 -:10dc200021f0a00300a0023c7c0e42240400c2affd -:10dc30000000c0af2a77400b000000000400c28f34 -:10dc40001400428c12004010000000000400c28f3b -:10dc50000400428ce80343380100632cff0063306a -:10dc6000010044240400c28f040044ac080060108a -:10dc7000000000000400c28f040040ac0400c28f0a -:10dc80000800428c010043240400c28f080043ac0a -:10dc90000400c28f180042240400c2af0000c28feb -:10dca000010042240000c2af0000c28f0b00422cd2 -:10dcb000e2ff40140000000088bf033c3010628c7b -:10dcc0000421027c301062ac21e8c0031400be8f36 -:10dcd0001000a48f0c00a38f0800a28f0060604189 -:10dce000c00000001c00ba8f1800bb8f00709a4063 -:10dcf0002000bd2700e8dd4100609b401800004285 +:104e4800e0ffbd271c00bfaf1800beaf21f0a003d4 +:104e58001000c0a300a0023c18024224020040a097 +:104e6800fa44400f0000000021184000f0ff023c07 +:104e780000f04234241862003000023c080062143a +:104e880000000000a8100424010005242c8b400f0a +:104e9800000000001000c2a3bf53400b0000000038 +:104ea8001400c22770100424212840001c8b400fd6 +:104eb800000000001000c2a31000c2830c004014c0 +:104ec800000000001400c28f020042341400c2af78 +:104ed8001400c28f70100424212840002c8b400f2e +:104ee800000000001000c2a3bf53400b00000000e8 +:104ef800000000001000c28321e8c0031c00bf8f1f +:104f08001800be8f2000bd270800e0030000000045 +:104f1800f8ffbd270400beaf21f0a00321188000d0 +:104f28002110a0001000c6af0800c3a30c00c2a740 +:104f380021e8c0030400be8f0800bd270800e00375 +:104f480000000000e0ffbd271c00bfaf1800beaf87 +:104f580021f0a0031000c0a300a0023c18024224c4 +:104f680002004290ff0042300400401000000000a0 +:104f78001000c283ff53400b0000000000a0023c59 +:104f88001802422401004290ff0042300c004014f5 +:104f98000000000000a0023c18024290ff004230ce +:104fa80007004010000000003646400f00000000d7 +:104fb8001000c2a31000c2830c00401400000000bf +:104fc80000a0023c1802422401004290ff00423037 +:104fd80001004224ff00433000a0023c1802422492 +:104fe800010043a0fe53400b000000000000000039 +:104ff8001000c28321e8c0031c00bf8f1800be8fb9 +:105008002000bd270800e00300000000f8ffbd27ce +:105018000400beaf21f0a003211080000800c2a345 +:1050280000a0023c0800c393180243a021e8c00373 +:105038000400be8f0800bd270800e0030000000040 +:10504800f8ffbd270400beaf21f0a00300a0023c7a +:1050580018024290ff00423021e8c0030400be8fce +:105068000800bd270800e00300000000f8ffbd2786 +:105078000400beaf21f0a00300a0023c18024224a5 +:1050880001004290ff0042300a004010000000007a +:1050980000a0023c1802422401004290ff00423066 +:1050a800ffff4224ff00433000a0023c18024224c4 +:1050b800010043a02110000021e8c0030400be8fb6 +:1050c8000800bd270800e00300000000e0ffbd273e +:1050d8001c00bfaf1800beaf21f0a0031000c0a392 +:1050e80000a0023c1802422401004290ff00423016 +:1050f8000a0040100000000000a0023c18024224f0 +:1051080001004290ff004230ffff4224ff0043307d +:1051180000a0023c18024224010043a000a0023c67 +:105128001802422401004290ff0042300900401456 +:105138000000000000a0023c18024290ff0042302c +:105148000400401000000000dc45400f0000000093 +:105158001000c2a31000c28321e8c0031c00bf8f47 +:105168001800be8f2000bd270800e00300000000e3 +:10517800e8ffbd271400bfaf1000beaf21f0a003a9 +:105188001800c4af00a0023c1802442421280000e3 +:1051980024000624cda0400f0000000003000424d2 +:1051a800019d023c184f45242d58400f0000000077 +:1051b8003554400f0000000021e8c0031400bf8fe1 +:1051c8001000be8f1800bd270800e0030000000093 +:1051d800e0ffbd271c00bfaf1800beaf21f0a00341 +:1051e8002000c4af1000c0a3d353400f000000003c +:1051f8001000c2a300a0023c180244242128000089 +:1052080024000624cda0400f000000001000c28337 +:1052180021e8c0031c00bf8f1800be8f2000bd27e7 +:105228000800e00300000000f0ffbd270c00beaf3f +:1052380021f0a003211080001000c2a7f3ff022470 +:105248000000c2a31000c29782130200ffff423081 +:10525800ff00423003004330020002240a006214b7 +:10526800000000001000c29702120200ffff423047 +:10527800ff0042303f004330010002240200621464 +:10528800000000000000c0a30000c28321e8c003a2 +:105298000c00be8f1000bd270800e00300000000ce +:1052a800e0ffbd271c00bfaf1800beaf21f0a00370 +:1052b8001000c0a31200c0a71200c227212040007e +:1052c80021280000e582400f000000001000c2a362 +:1052d8001000c28339004014000000001200c29779 +:1052e800212040008c54400f000000001000c2a391 +:1052f8001000c28330004014000000001200c29762 +:10530800ff0042300600432c270060100000000018 +:1053180080180200019d023c34534224211062008f +:105328000000428c08004000000000004c53019d22 +:105338005c53019d6c53019d7c53019d8c53019dd1 +:105348009c53019d01000224848082a3f154400be8 +:105358000000000002000224848082a3f154400b64 +:105368000000000002000224848082a3f154400b54 +:105378000000000003000224848082a3f154400b43 +:10538800000000000a000224848082a3f154400b2c +:10539800000000000d000224848082a300000000a9 +:1053a800f154400b000000000d000224848082a309 +:1053b800f154400b00000000848080a31000c283d9 +:1053c80021e8c0031c00bf8f1800be8f2000bd2736 +:1053d8000800e00300000000f0ffbd270c00beaf8e +:1053e80021f0a003211880002110a0001000c3a301 +:1053f8001400c2a31000c29300120200201e027cf7 +:105408001400c2932016027c251062002016027c2c +:105418000200c2a70200c3976904022405006210b3 +:10542800000000000200c39768040224040062140c +:1054380000000000211000003055400b0000000063 +:10544800848082930400401400000000ffff0224bf +:105458003055400b00000000848082930000c2a3f6 +:105468002b55400b000000000000c39300a0023c35 +:105478004018030068404224211062000000429452 +:105488000200c3970400621400000000ffff02241a +:105498003055400b000000000000c2930100422478 +:1054a8000000c2a30000c2930d00422ceeff40147e +:1054b800000000002110000021e8c0030c00be8f8e +:1054c8001000bd270800e00300000000c0ffbd2752 +:1054d8003c00bfaf3800beaf21f0a00321408000e0 +:1054e8004800c6af2120e0005400c38f5800c28f87 +:1054f8004000c8a34400c5a34c00c4a73000c3a7fc +:105508003400c2a7ffff02241000c2a33400c297d0 +:105518001400c2af4400c2937f004230ff00423003 +:105528001900c2a34000c2931800c2a308000224b5 +:105538001a00c2a74800c28f0e00401000000000e9 +:105548004c00c2973506422c27014010000000008d +:105558001a00c3974c00c29721106200ffff423027 +:105568001a00c2a74c00c2971400c38f2310620010 +:105578001400c2af5000c28f10004010000000009d +:105588003400c3973000c297211062003506422cc0 +:1055980018014010000000001a00c3971400c28fc1 +:1055a800ffff44303000c29721108200ffff4230d5 +:1055b80021106200ffff42301a00c2a71800c293f0 +:1055c800211840001900c2932120600021284000c2 +:1055d800f854400f000000001000c2a31000c2835e +:1055e80007014014000000001a00c2973d06422c33 +:1055f800dc00401000000000d353400f0000000002 +:105608001000c2a31000c283000140140000000073 +:105618002000c0af2400c0a71c00c0af4000c39347 +:105628001c00c28f251062001c00c2af4400c29348 +:10563800001a02001c00c28f251062001c00c2afb5 +:105648001a00c297001c02001c00c28f25106200bd +:105658001c00c2af1c00c28f8c10042421284000fb +:105668002c8b400f000000001000c2a31000c28362 +:10567800c6004014000000001c00c0af1c00c28f10 +:10568800020042341c00c2af1c00c28f78100424f0 +:10569800212840002c8b400f000000001000c2a3fe +:1056a8001000c283bc00401400000000fa44400f00 +:1056b8000000000021184000f0ff023c00f04234d6 +:1056c800241862003000023c090062140000000047 +:1056d800ac100424010005242c8b400f00000000ae +:1056e8001000c2a31000c283ae00401400000000e6 +:1056f8002000c0af2400c0a7ea55400b00000000fe +:105708001c00c22778100424212840001c8b400f5d +:10571800000000001000c2a31000c283270040143c +:10572800000000002400c297ffff4230e803422c2b +:1057380005004014000000002400c297050004245e +:105748000094400f000000001c00c28f020042308d +:105758000e004014000000002000c2271500033c82 +:1057680000046434212840001c8b400f0000000016 +:105778001000c2a31000c2831300401000000000f4 +:105788002000c0af7856400b000000002400c297ec +:10579800ffff423001004224ffff42302400c2a72d +:1057a8002400c297ffff42308813422cd4ff4014d4 +:1057b80000000000f555400b00000000000000004c +:1057c800f555400b00000000000000002000c28fcb +:1057d8005d004010000000002000c28f2800c2af0a +:1057e8001a00c2971a00c2a72800c38f1800c22740 +:1057f800212060002128400008000624ad8b400fbe +:10580800000000001000c2a31000c283680040140a +:10581800000000002800c28f080042242800c2af00 +:105828004800c28f10004010000000002800c38ffd +:105838004c00c297212060004800c58f21304000ed +:10584800ad8b400f000000001000c2a31000c283ff +:105858005a004014000000004c00c3972800c28f73 +:10586800211062002800c2af5000c28f14004010ff +:10587800000000002800c38f1400c28f21106200ae +:105888002800c2af2800c38f3000c29721206000d3 +:105898005000c58f21304000ad8b400f0000000044 +:1058a8001000c2a31000c28347004014000000008b +:1058b8003000c3972800c28f211062002800c2afb1 +:1058c8002000c28f801002001c00c2af1c00c28fd3 +:1058d800020042341c00c2af1c00c28f6c100424aa +:1058e800212840002c8b400f000000001000c2a3ac +:1058f8001000c2833700401400000000fa44400f33 +:105908000000000021184000f0ff023c00f0423483 +:10591800241862003000023c1600621400000000e7 +:10592800b0100424010005242c8b400f0000000057 +:105938001000c2a31000c2830e0040100000000037 +:105948007856400b000000003554400f000000005e +:105958001000c2a3fdff02241000c2a38656400b0c +:1059680000000000ffff02241000c2a38656400b6f +:10597800000000003554400f000000001000c2a3d2 +:105988001000c2838756400b000000000000000092 +:105998007856400b00000000000000007856400bcd +:1059a80000000000000000007856400b00000000d6 +:1059b800000000007856400b0000000000000000c6 +:1059c8007856400b00000000000000007856400b9d +:1059d80000000000000000001d54400f00000000ff +:1059e8008656400b00000000000000008656400b61 +:1059f80000000000000000008656400b0000000078 +:105a0800000000008656400b000000000000000067 +:105a18001000c28321e8c0033c00bf8f3800be8f4e +:105a28004000bd270800e00300000000d8ffbd27a4 +:105a38002400bfaf2000beaf21f0a0031000c0a318 +:105a48001400c22770100424212840001c8b400f2a +:105a5800000000001000c2a31000c283120140140d +:105a6800000000001400c28f01004230ff004230e5 +:105a7800fc004010000000001400c227701004242d +:105a8800212840001c8b400f000000001000c2a31a +:105a98001000c283f7004014000000001400c38ff8 +:105aa800feff0224241062001400c2af1400c28f4b +:105ab80070100424212840002c8b400f00000000a7 +:105ac8001000c2a31000c283ed00401400000000c3 +:105ad8001400c22770100424212840001c8b400f9a +:105ae800000000001000c2a31000c283e7004014a9 +:105af8000000000000a0023c180242240100032418 +:105b0800020043a01400c28f82100200ffff42303f +:105b1800ff0f42301200c2a71200c297cd004010fa +:105b2800000000001c00c0af1c00c2278410042421 +:105b3800212840001c8b400f000000001000c2a369 +:105b48001000c283d4004014000000001c00c38f62 +:105b580000a0023c18024224040043ac1200c39780 +:105b680000a0023c18024224080043ac1c00c38f6a +:105b78001800c227212060002128400004000624c4 +:105b8800508b400f000000001000c2a31a00c297fb +:105b9800ffff42301a00c2a71000c283c1004014a0 +:105ba800000000001a00c297ffff42301200c3979e +:105bb8000c006210000000001200c3971a00c29780 +:105bc800ffff423023106200050042280500401400 +:105bd80000000000faff02241000c2a3ac57400bdb +:105be800000000001800c293ff00433001000224a7 +:105bf800180062140000000000a0023c18024224b1 +:105c08000c00428c860040100000000000a0023cfe +:105c1800180242240c00428c1900c393ff00633021 +:105c2800212060001a00c397ffff6330f8ff632448 +:105c3800ffff6330212860001c00c38f0800632425 +:105c48002130600009f84000000000008a57400b2e +:105c5800000000001800c293ff0043300200022435 +:105c6800180062140000000000a0023c1802422440 +:105c78001000428c6a0040100000000000a0023ca6 +:105c8800180242241000428c1900c393ff006330ad +:105c9800212060001a00c397ffff6330f8ff6324d8 +:105ca800ffff6330212860001c00c38f08006324b5 +:105cb8002130600009f84000000000008a57400bbe +:105cc800000000001800c293ff00433004000224c3 +:105cd800180062140000000000a0023c18024224d0 +:105ce8001400428c4e0040100000000000a0023c4e +:105cf800180242241400428c1900c393ff00633039 +:105d0800212060001a00c397ffff6330f8ff632467 +:105d1800ffff6330212860001c00c38f0800632444 +:105d28002130600009f84000000000008a57400b4d +:105d3800000000001800c293ff0043300600022450 +:105d4800180062140000000000a0023c180242245f +:105d58001800428c320040100000000000a0023cf5 +:105d6800180242241800428c1900c393ff006330c4 +:105d7800212060001a00c397ffff6330f8ff6324f7 +:105d8800ffff6330212860001c00c38f08006324d4 +:105d98002130600009f84000000000008a57400bdd +:105da800000000001800c293ff00433005000224e1 +:105db800180062140000000000a0023c18024224ef +:105dc8002000428c160040100000000000a0023c99 +:105dd800180242242000428c1900c393ff0063304c +:105de800212060001a00c397ffff6330f8ff632487 +:105df800ffff6330212860001c00c38f0800632464 +:105e08002130600009f84000000000008a57400b6c +:105e180000000000faff0224ad57400b000000000c +:105e280000a0023c1802422402004290ff004230c7 +:105e380005004010000000009253400f00000000d1 +:105e4800ad57400b0000000021100000ad57400b7b +:105e580000000000feff02241000c2a3ac57400b54 +:105e680000000000f4ff02241000c2a3ac57400b4e +:105e78000000000000000000ac57400b00000000cc +:105e880000000000ac57400b0000000000000000bc +:105e9800ac57400b0000000000000000ac57400b5e +:105ea80000000000000000001000c28321e8c003c9 +:105eb8002400bf8f2000be8f2800bd270800e00304 +:105ec80000000000e0ffbd271c00bfaf1800beaff8 +:105ed80021f0a0031000c0a38d56400f0000000061 +:105ee8001000c2a31000c28321e8c0031c00bf8faa +:105ef8001800be8f2000bd270800e0030000000046 +:105f0800e0ffbd271c00bfaf1800beaf21f0a00303 +:105f18002000c4af2400c5af2118c0002110e00044 +:105f28002800c3a72c00c2a31000c0a32000c28f62 +:105f380007004010000000002400c28f0400401039 +:105f4800000000002800c2970d0040140000000067 +:105f58002c00c29306004010000000009253400f2e +:105f6800000000001000c2a32658400b00000000eb +:105f7800f4ff02241000c2a32658400b00000000c2 +:105f88002800c39700a0023c180242240800428c53 +:105f98002b1043000500401000000000f4ff02240d +:105fa8001000c2a32658400b0000000000a0023ccd +:105fb800180242240400438c2000c28f2b10430097 +:105fc8000e004014000000002800c3972000c28f74 +:105fd8002118620000a0023c180242240400448cec +:105fe80000a0023c180242240800428c21108200c2 +:105ff8002b1043000500401000000000f4ff0224ad +:106008001000c2a32658400b000000002800c297c9 +:106018002000c48f2400c58f21304000508b400fd2 +:10602800000000001000c2a31000c2831700401433 +:10603800000000002c00c2930f0040140000000074 +:1060480000a0023c180242240400438c00a0023c39 +:10605800180242240800428c211862002800c497c4 +:106068002000c28f21108200231062000400422cfd +:1060780007004010000000009253400f000000008d +:106088001000c2a32658400b0000000000000000ca +:106098001000c28321e8c0031c00bf8f1800be8f08 +:1060a8002000bd270800e00300000000f0ffbd2726 +:1060b8000c00beaf21f0a003211080001400c5af72 +:1060c8001000c2a30000c0a31000c2930700432c15 +:1060d800330060100000000080180200019d023c9f +:1060e800fc604224211062000000428c080040003d +:1060f80000000000a861019d3061019d1861019dab +:106108006061019d4861019d9061019d7861019ddb +:1061180000a0023c180242241400c38f100043acb4 +:106128006d58400b0000000000a0023c18024224f9 +:106138001400c38f0c0043ac6d58400b00000000e6 +:1061480000a0023c180242241400c38f140043ac80 +:106158006d58400b0000000000a0023c18024224c9 +:106168001400c38f1c0043ac6d58400b00000000a6 +:1061780000a0023c180242241400c38f180043ac4c +:106188006d58400b0000000000a0023c1802422499 +:106198001400c38f200043ac6d58400b0000000072 +:1061a800f4ff02240000c2a3000000000000c28324 +:1061b80021e8c0030c00be8f1000bd270800e003d3 +:1061c80000000000d8ffbd272400bfaf2000beafed +:1061d80021f0a0032800c4af1000c0a305000224ca +:1061e8001400c2a30100023c080244340400052440 +:1061f8002c8b400f00000000ff0043301000c293ba +:1062080021106200ff0042301000c2a31400c293a4 +:106218000100033c0c026434212840002c8b400f01 +:1062280000000000ff0043301000c29321106200fc +:10623800ff0042301000c2a30100023c14024434a3 +:10624800010005242c8b400f00000000ff004330a4 +:106258001000c29321106200ff0042301000c2a358 +:106268000100023c1c024434841005242c8b400f8e +:1062780000000000ff0043301000c29321106200ac +:10628800ff0042301000c2a30100023c0402443463 +:10629800810005242c8b400f00000000ff004330d4 +:1062a8001000c29321106200ff0042301000c2a308 +:1062b8001800c2270100033c18026434212840005a +:1062c8001c8b400f00000000ff0043301000c293f9 +:1062d80021106200ff0042301000c2a31000c283e8 +:1062e80007004014000000001800c38f01000224ba +:1062f800efff621400000000c358400b00000000cc +:10630800000000001000c2830600401400000000d6 +:10631800841004240e8b400f00000000cc58400b62 +:1063280000000000211000001800c2af1800c28f42 +:10633800ff0043302800c28f000043a01000c28332 +:1063480021e8c0032400bf8f2000be8f2800bd278e +:106358000800e00300000000d8ffbd272400bfaffd +:106368002000beaf21f0a0032800c4af2c00c5afa9 +:106378003000c6af1c00c0af1000c0a30b00022441 +:106388001400c2a32c00c28f02140200ff00423086 +:106398001500c2a32c00c28f02120200ff00423077 +:1063a8001600c2a32c00c28fff0042301700c2a300 +:1063b800a5ff02241800c2a30100023c08024434cd +:1063c8003000c58f2c8b400f00000000ff004330c9 +:1063d8001000c29321106200ff0042301000c2a3d7 +:1063e8001400c293211840001500c2930012020045 +:1063f800251862001600c2930014020025186200d6 +:106408001700c29300160200251062000100033c29 +:106418000c026434212840002c8b400f000000003f +:10642800ff0043301000c29321106200ff00423089 +:106438001000c2a31800c2930100033c1002643488 +:10644800212840002c8b400f00000000ff00433043 +:106458001000c29321106200ff0042301000c2a356 +:106468000100023c140244341f0005242c8b400f09 +:1064780000000000ff0043301000c29321106200aa +:10648800ff0042301000c2a30100023c1c02443449 +:106498002800c58f2c8b400f00000000ff00433000 +:1064a8001000c29321106200ff0042301000c2a306 +:1064b8000100023c04024434850005242c8b400f63 +:1064c80000000000ff0043301000c293211062005a +:1064d800ff0042301000c2a31c00c2270100033c89 +:1064e80018026434212840001c8b400f0000000073 +:1064f800ff0043301000c29321106200ff004230b9 +:106508001000c2a31000c28307004014000000005e +:106518001c00c38f01000224efff6214000000007a +:106528004d59400b00000000000000001000c2831d +:1065380021e8c0032400bf8f2000be8f2800bd279c +:106548000800e00300000000d8ffbd272400bfaf0b +:106558002000beaf21f0a0032800c4af1800c0afd0 +:106568001000c0a3200002241400c2a32800c28f78 +:1065780002140200ff0042301500c2a32800c28f97 +:1065880002120200ff0042301600c2a32800c28f88 +:10659800ff0042301700c2a30100023c0802443445 +:1065a800212800002c8b400f00000000ff00433022 +:1065b8001000c29321106200ff0042301000c2a3f5 +:1065c8001400c293211840001500c2930012020063 +:1065d800251862001600c2930014020025186200f4 +:1065e8001700c29300160200251062000100033c48 +:1065f8000c026434212840002c8b400f000000005e +:10660800ff0043301000c29321106200ff004230a7 +:106618001000c2a30100023c140244340f000524f8 +:106628002c8b400f00000000ff0043301000c29385 +:1066380021106200ff0042301000c2a30100023c9a +:106648001c024434212800002c8b400f000000005d +:10665800ff0043301000c29321106200ff00423057 +:106668001000c2a30100023c040244348400052443 +:106678002c8b400f00000000ff0043301000c29335 +:1066880021106200ff0042301000c2a31800c22788 +:106698000100033c18026434212840001c8b400f81 +:1066a80000000000ff0043301000c2932110620078 +:1066b800ff0042301000c2a31000c283070040143c +:1066c800000000001800c38f01000224efff6214cd +:1066d80000000000ba59400b000000000000000054 +:1066e8001000c28321e8c0032400bf8f2000be8fa2 +:1066f8002800bd270800e00300000000d8ffbd27e0 +:106708002400bfaf2000beaf21f0a0031800c0af27 +:106718001000c0a3060002241400c2a30100023c1a +:1067280008024434212800002c8b400f0000000090 +:10673800ff0043301000c29321106200ff00423076 +:106748001000c2a31400c2930100033c0c0264347d +:10675800212840002c8b400f00000000ff00433030 +:106768001000c29321106200ff0042301000c2a343 +:106778000100023c14024434010005242c8b400f14 +:1067880000000000ff0043301000c2932110620097 +:10679800ff0042301000c2a30100023c1c02443436 +:1067a800212800002c8b400f00000000ff00433020 +:1067b8001000c29321106200ff0042301000c2a3f3 +:1067c8000100023c04024434810005242c8b400f54 +:1067d80000000000ff0043301000c2932110620047 +:1067e800ff0042301000c2a31800c2270100033c7a +:1067f80018026434212840001c8b400f0000000060 +:10680800ff0043301000c29321106200ff004230a5 +:106818001000c2a31000c28307004014000000004b +:106828001800c38f01000224efff6214000000006b +:10683800115a400b00000000000000001000c28345 +:1068480021e8c0032400bf8f2000be8f2800bd2789 +:106858000800e00300000000d8ffbd272400bfaff8 +:106868002000beaf21f0a0031800c0af1000c0a3e5 +:10687800040002241400c2a30100023c08024434ac +:10688800212800002c8b400f00000000ff0043303f +:106898001000c29321106200ff0042301000c2a312 +:1068a8001400c2930100033c0c0264342128400008 +:1068b8002c8b400f00000000ff0043301000c293f3 +:1068c80021106200ff0042301000c2a30100023c08 +:1068d80014024434010005242c8b400f00000000f2 +:1068e800ff0043301000c29321106200ff004230c5 +:1068f8001000c2a30100023c1c02443421280000fd +:106908002c8b400f00000000ff0043301000c293a2 +:1069180021106200ff0042301000c2a30100023cb7 +:1069280004024434810005242c8b400f0000000031 +:10693800ff0043301000c29321106200ff00423074 +:106948001000c2a31800c2270100033c18026434d7 +:10695800212840001c8b400f00000000ff0043303e +:106968001000c29321106200ff0042301000c2a341 +:106978001000c28307004014000000001800c38ff5 +:1069880001000224efff621400000000685a400b67 +:1069980000000000000000001000c28321e8c003ce +:1069a8002400bf8f2000be8f2800bd270800e00309 +:1069b80000000000d8ffbd272400bfaf2000beaff5 +:1069c80021f0a0032800c4af2c00c5af3000c6af2b +:1069d8001800c0af1000c0a3020002241400c2a314 +:1069e8002c00c28f02140200ff0042301500c2a31f +:1069f8002c00c28f02120200ff0042301600c2a310 +:106a08002c00c28fff0042301700c2a30100023cd5 +:106a180008024434212800002c8b400f000000009d +:106a2800ff0043301000c29321106200ff00423083 +:106a38001000c2a31400c293211840001500c2938d +:106a480000120200251862001600c293001402000a +:106a5800251862001700c293001602002510620074 +:106a68000100033c0c026434212840002c8b400fa9 +:106a780000000000ff0043301000c29321106200a4 +:106a8800ff0042301000c2a30100023c140244344b +:106a98000f0005242c8b400f00000000ff0043303e +:106aa8001000c29321106200ff0042301000c2a300 +:106ab8000100023c1c0244342800c58f2c8b400f77 +:106ac80000000000ff0043301000c2932110620054 +:106ad800ff0042301000c2a33000c28f0098427cf1 +:106ae80000120200840042340100033c04026434b2 +:106af800212840002c8b400f00000000ff0043308d +:106b08001000c29321106200ff0042301000c2a39f +:106b18001800c2270100033c1802643421284000f1 +:106b28001c8b400f00000000ff0043301000c29390 +:106b380021106200ff0042301000c2a31000c2837f +:106b480007004014000000001800c38f0100022451 +:106b5800efff621400000000db5a400b0000000049 +:106b6800000000001000c28321e8c0032400bf8f8a +:106b78002000be8f2800bd270800e00300000000a9 +:106b8800e0ffbd271c00bfaf1800beaf21f0a00377 +:106b98002000c4af2400c5af2800c6af1000c0a3b2 +:106ba8000d00043c2400c58f2800c68fd858400f1c +:106bb800000000001000c2a31000c28309004014a6 +:106bc800000000000d00043c2000c58f2800c68f7f +:106bd800508b400f000000001000c2a3fc5a400b6d +:106be80000000000000000001000c28321e8c0037c +:106bf8001c00bf8f1800be8f2000bd270800e003cf +:106c080000000000d0ffbd272c00bfaf2800beaf9a +:106c180021f0a0033000c4af3400c5af2110c0007c +:106c28003800c2a71000c0a33800c2970d00043c6a +:106c38003400c58f21304000ad8b400f00000000ac +:106c4800ff0043301000c29321106200ff00423061 +:106c58001000c2a31400c0af1800c0af475b400bc0 +:106c680000000000c159400f000000002600401439 +:106c7800000000003800c2970d00043c3000c58faa +:106c8800213040006f5a400f000000001e004014e1 +:106c9800000000001c00c0af395b400b0000000082 +:106ca8002000c227212040007358400f0000000038 +:106cb80014004014000000002000c293010042307c +:106cc80006004014000000001800c28f0100422492 +:106cd8001800c2af445b400b000000001c00c28fcc +:106ce800010042241c00c2af1c00c38f50c30234f1 +:106cf8002a106200eaff401400000000445b400bc9 +:106d080000000000000000001400c28f01004224af +:106d18001400c2af1400c28f0400422805004010be +:106d2800000000001800c28f02004228cdff401466 +:106d380000000000185a400f000000001000c2a315 +:106d48001800c28f02004228030040100000000013 +:106d5800f4ff02241000c2a31000c28321e8c0037c +:106d68002c00bf8f2800be8f3000bd270800e0032d +:106d780000000000d8ffbd272400bfaf2000beaf31 +:106d880021f0a0031c00c0af1000c0af1400c0a3c6 +:106d98009fff02241800c2a30100023c08024434e9 +:106da800040005242c8b400f00000000ff00433036 +:106db8001400c29321106200ff0042301400c2a3e5 +:106dc8001800c2930100033c0c02643421284000df +:106dd8002c8b400f00000000ff0043301400c293ca +:106de80021106200ff0042301400c2a30100023cdf +:106df80014024434010005242c8b400f00000000cd +:106e0800ff0043301400c29321106200ff0042309b +:106e18001400c2a30100023c1c024434841005245f +:106e28002c8b400f00000000ff0043301400c29379 +:106e380021106200ff0042301400c2a30100023c8e +:106e480004024434810005242c8b400f000000000c +:106e5800ff0043301400c29321106200ff0042304b +:106e68001400c2a31c00c2270100033c18026434aa +:106e7800212840001c8b400f00000000ff00433019 +:106e88001400c29321106200ff0042301400c2a314 +:106e98001400c28312004014000000001000c28fca +:106ea800010042241000c2af1000c28ff501422c2d +:106eb8000500401400000000fbff02241400c2a3d8 +:106ec800bb5b400b000000001c00c38f01000224c4 +:106ed800e4ff621400000000bb5b400b00000000f0 +:106ee800000000001400c2830600401400000000e7 +:106ef800841004240e8b400f00000000c45b400b7c +:106f080000000000211000001c00c2af1c00c28f4e +:106f180021e8c0032400bf8f2000be8f2800bd27b2 +:106f28000800e00300000000e0ffbd271c00bfaf21 +:106f38001800beaf21f0a0032000c4af2400c5afe5 +:106f48002800c6af1000c0a32800c38f01800234f8 +:106f58002b1062001a004014000000002000c48fab +:106f68002400c58f00800634e25a400f000000005c +:106f78001000c2a31000c2831900401400000000d2 +:106f88002800c28f008042242800c2af2400c38f8b +:106f980000800234211062002400c2af2000c38f99 +:106fa80000800234211062002000c2af2800c38f85 +:106fb800018002342b106200e8ff4010000000003e +:106fc8002000c48f2400c58f2800c68fe25a400fc6 +:106fd800000000001000c2a3fb5b400b0000000093 +:106fe800000000001000c28321e8c0031c00bf8f0e +:106ff8001800be8f2000bd270800e0030000000035 +:10700800d8ffbd272400bfaf2000beaf21f0a003ea +:107018002800c4af2c00c5af3000c6af1000c0a315 +:10702800000102241400c2af2c00c38f1400c28fc9 +:107038001b006200f4014000101000001800c2afed +:107048003000c28f0500401400000000f4ff022445 +:107058001000c2a36e5c400b000000001800c28f35 +:107068004d004010000000001400c38f1800c28fac +:10707800231062001c00c2af3000c38f1c00c28ff7 +:107088002b10430005004010000000001c00c28fb8 +:10709800ffff42302b5c400b000000003000c28f25 +:1070a800ffff42302c00c48f2800c58f21304000dc +:1070b800035b400f000000000500401000000000c6 +:1070c800f4ff02241000c2a36e5c400b0000000015 +:1070d8003000c38f1c00c28f2b1062003300401495 +:1070e800000000002800c38f1c00c28f211062001e +:1070f8002800c2af2c00c38f1c00c28f2110620071 +:107108002c00c2af3000c38f1c00c28f2310620056 +:107118003000c2af685c400b000000001400c28f52 +:107128003000c38f3000c48f2b2044000a10640045 +:107138001c00c2af1c00c28fffff42302c00c48f5e +:107148002800c58f21304000035b400f000000007d +:107158000500401000000000f4ff02241000c2a344 +:107168006e5c400b000000002800c38f1c00c28f1b +:10717800211062002800c2af2c00c38f1c00c28ff0 +:10718800211062002c00c2af3000c38f1c00c28fd8 +:10719800231062003000c2af3000c28fdfff4014fe +:1071a800000000006e5c400b0000000000000000c2 +:1071b8001000c28321e8c0032400bf8f2000be8fc7 +:1071c8002800bd270800e00300000000d0ffbd270d +:1071d8002c00bfaf2800beaf21f0a0033000c4af21 +:1071e8003400c5af1000c0af2000c0a33000c28f6c +:1071f8001000c2afcc5c400b000000001800c0af0c +:107208001400c0afba5c400b00000000c159400f29 +:10721800000000002f004014000000002000c227da +:10722800212040007358400f00000000290040143e +:10723800000000001000c48f5459400f00000000e7 +:1072480024004014000000002000c2272120400034 +:107258007358400f000000001e004014000000009a +:107268001c00c0afac5c400b000000002000c2272f +:10727800212040007358400f000000001400401403 +:10728800000000002000c2930100423006004014b4 +:10729800000000001400c28f010042241400c2af95 +:1072a800b75c400b000000001c00c28f01004224a4 +:1072b8001c00c2af1c00c38f50c302342a106200e6 +:1072c800eaff401400000000b75c400b000000001b +:1072d800000000001800c28f010042241800c2af4d +:1072e8001800c28f0400422805004010000000006a +:1072f8001400c28f02004228c4ff4014000000009e +:107308001400c38f02000224040062100000000071 +:10731800f4ff0224d45c400b000000001000c28f70 +:10732800001042241000c2af3400c38f3000c28f57 +:10733800211862001000c28f2b104300afff4014c9 +:10734800000000002110000021e8c0032c00bf8fbe +:107358002800be8f3000bd270800e00300000000b1 +:10736800e0ffbd271c00bfaf1800beaf21f0a0038f +:107378001000c0af1400c0afc480828f1100401449 +:10738800000000005f5b400f000000001000c2af6b +:107398001000c38fffff02240a00621000000000e3 +:1073a8001000c28f02140200ff004230efff422497 +:1073b8001400c2af1400c28f01000324041043005c +:1073c800c48082afc480828f21e8c0031c00bf8fb5 +:1073d8001800be8f2000bd270800e0030000000051 +:1073e800f0ffbd270c00beaf21f0a00380bf033c17 +:1073f8000068628cc47b027c006862ac80bf023c7f +:10740800106840ac80bf033c1068628c8452027cd8 +:10741800106862ac88bf033c1011628c070004241a +:107428008420827c101162ac88bf033c1011628cee +:107438000408027c101162ac80bf033c1068628ca7 +:1074480001000424847b827c106862ac88bf033c02 +:107458004010628c8452027c401062ac88bf033cae +:107468007010628c8452027c701062ac80bf033c46 +:107478001068628c8439027c106862ac88bf033c57 +:107488004010628c444a027c401062ac88bf033cc6 +:107498007010628c01000424444a827c701062ac33 +:1074a80080bf033c1068628c010004240463827c62 +:1074b800106862ac80bf033c1068628c0100042431 +:1074c8008452827c106862ac80bf033c0068628c86 +:1074d800c47b027c006862ac0000c0af685d400bf2 +:1074e8000000000000a0023c0000c38f4019030008 +:1074f800fc02422421106200000040ac00a0023cc3 +:107508000000c38f40190300fc02422421106200ce +:10751800080040ac00a0033c0000c28ffc026324ba +:1075280040110200211062000c0040ac00a0023c97 +:107538000000c38f40190300fc024224211062009e +:10754800100040ac00a0033c0000c28ffc02632482 +:107558004011020021106200140040ac00a0023c5f +:107568000000c38f40190300fc024224211062006e +:10757800180040ac00a0033c0000c28ffc0263244a +:1075880040110200211062001c0040ac0000c28fb4 +:10759800010042240000c2af0000c28f020042284e +:1075a800d0ff40140000000021e8c0030c00be8f8b +:1075b8001000bd270800e00300000000f0ffbd2711 +:1075c8000c00beaf21f0a0031000c4af1400c5af7b +:1075d8001800c6af1c00c7af1000c28f03004228b6 +:1075e800040040140000000006000224f45d400b73 +:1075f800000000002000c28f80180200c404023c72 +:1076080000b442341a004300f4016000101800006e +:1076180012100000ffff42240400c2af0000c0aff8 +:107628002400c28f0900401000000000010003245c +:1076380007004314000000000000c28f010042341c +:107648000000c2af965d400b000000000000000083 +:1076580000a0033c1000c28ffc026324401102000a +:10766800211062001400c38f1c0043ac2800c28f95 +:107678000100032406004310000000000200032458 +:107688000800431000000000af5d400b0000000040 +:107698000000c28f020042340000c2afaf5d400b51 +:1076a800000000000000c28f040042340000c2af96 +:1076b800000000001000c28f06004010000000000b +:1076c800010003241e00431000000000ec5d400b85 +:1076d8000000000088bf033c4061628cc418027c33 +:1076e800406162ac88bf033c6061628c0100042485 +:1076f800c418827c606162ac0000c38f80bf023c0a +:10770800006043ac80bf033c0060628c010004242d +:10771800c418827c006062ac0400c38f80bf023c46 +:10772800406043ac80bf033c0060628c01000424cd +:10773800c47b827c006062acec5d400b0000000002 +:1077480088bf033c4061628c4429027c406162ac82 +:1077580088bf033c6061628c010004244429827c58 +:10776800606162ac0000c38f80bf023c006843ac1c +:1077780080bf033c0068628c01000424c418827c2a +:10778800006862ac0400c38f80bf023c406843ac11 +:1077980080bf033c0068628c01000424c47b827ca7 +:1077a800006862ac0000000000a0023c1000c38f1b +:1077b80040190300fc024224211062000100032446 +:1077c800180043ac0100022421e8c0030c00be8f5e +:1077d8001000bd270800e00300000000d0ffbd270f +:1077e8002c00bfaf2800beaf21f0a0033000c4af0b +:1077f8003400c5af3800c6af3c00c7af3800c28ff1 +:107808004019020000a0023cfc0242242110620040 +:107818002400c2af2400c28f1800428c0400401418 +:107828000000000003000224c85e400b00000000b6 +:107838002400c28f1400438c010002240400621447 +:107848000000000002000224c85e400b0000000097 +:107858003400c28f1000c2af1000c28f020042284d +:107868000300401400000000010002241000c2af11 +:107878002400c28f040043242400c28f000043acbc +:107888002400c28f0000428c1400c2af2400c28fb3 +:107898001000c38f080043ac1800c0af3f5e400b18 +:1078a800000000003000c28f000043801400c28f27 +:1078b800000043a01400c28f010042241400c2af8c +:1078c8003000c28f010042243000c2af3000c38fa5 +:1078d8004000c28f2b10430003004010000000003e +:1078e8003c00c28f3000c2af1800c28f0100422492 +:1078f8001800c2af1800c38f1000c28f2a10620090 +:10790800e8ff4014000000002400c28f0100032497 +:10791800140043ac3800c28f06004010000000007d +:10792800010003243a00431000000000c75e400b2a +:107938000000000088bf023c6010438c0010023c2d +:10794800241062000e004010000000002400c28fc6 +:107958001c00428c212040001000c58fd634400ff7 +:107968000000000080bf033c1060628c010004240a +:107978008452827c106062acc75e400b000000003d +:107988001c00c0af775e400b000000002400c28fcf +:107998000000428c000043802120600080bf033c2f +:1079a800206064ac010043242400c28f000043ac73 +:1079b8000000000080bf023c1060428c0001423091 +:1079c800fcff4010000000001c00c28f0100422490 +:1079d8001c00c2af1c00c38f1000c28f2a106200a7 +:1079e800eaff4014000000002400c28f140040acdd +:1079f8002400c28f1c00428c212040001000c58f3b +:107a0800d634400f00000000c75e400b00000000a5 +:107a180088bf023c7010428c000442300e004010b7 +:107a2800000000002400c28f1c00428c212040006e +:107a38001000c58fd634400f0000000080bf033c03 +:107a48001068628c010004248452827c106862ac45 +:107a5800c75e400b000000002000c0afb95e400bbd +:107a6800000000002400c28f0000428c0000438008 +:107a78002120600080bf033c206864ac01004324df +:107a88002400c28f000043ac0000000080bf023c0d +:107a98001068428c00014230fcff401000000000da +:107aa80088bf023ca060428c4003427cff00423009 +:107ab80027100200ff00423001004230ff0044302e +:107ac80088bf033ca060628c446b827ca06062ac7f +:107ad8002000c28f010042242000c2af2000c38fc3 +:107ae8001000c28f2a106200deff40140000000060 +:107af8002400c28f140040ac2400c28f1c00428caa +:107b0800212040001000c58fd634400f000000002f +:107b1800000000000100022421e8c0032c00bf8ff0 +:107b28002800be8f3000bd270800e00300000000d9 +:107b3800f0ffbd270c00beaf21f0a0031000c4afba +:107b48001400c5af1800c6af88bf023c7010428c45 +:107b58000400c2af88bf033c7010628c8452027c60 +:107b6800701062ac0000c0affb5e400b000000006c +:107b780088bf023ca060428c4003427cff00423038 +:107b880027100200ff00423001004230ff0044305d +:107b980088bf033ca060628c446b827ca06062acae +:107ba8001000c28f000042802118400080bf023cb4 +:107bb800206843ac1000c28f010042241000c2affd +:107bc8000000000080bf023c1068428c0001423077 +:107bd800fcff4010000000000000c28f010042249a +:107be8000000c2af0000c38f1400c28f2a106200c9 +:107bf800dfff40140000000088bf033ca060628cd7 +:107c080001000424446b827ca06062ac88bf033c02 +:107c18004010628c8452027c401062ac0400c38f16 +:107c280088bf023c701043ac0100022421e8c00365 +:107c38000c00be8f1000bd270800e0030000000004 +:107c4800f8ffbd270400beaf21f0a00321e8c00360 +:107c58000400be8f0800bd270800e00300000000f4 +:107c680000e85d4100701a4000601b40c8ffbd2756 +:107c78003400bbaf44781b7c001c7b3700609b4002 +:107c88002400bfaf2000beaf121000002c00a2af2e +:107c9800101800002800a3af21f0a00300a0023ca8 +:107ca800fc0242241400c2af88bf023c3010438c4f +:107cb8000010023c241062002e004010000000005a +:107cc80088bf023c6010438c0010023c2410620004 +:107cd800280040100000000088bf033c3010628c70 +:107ce80004e7027c301062ac1400c28f0800428c9a +:107cf800090040140000000080bf033c1060628c43 +:107d08008452027c106062ac1400c28f140040ac34 +:107d18005f5f400b000000001400c28f0000428c1f +:107d2800000043802120600080bf033c206064acd9 +:107d3800010043241400c28f000043ac1400c28f1a +:107d48000800428cffff43241400c28f080043ac94 +:107d580080bf023c1060428c000242300500401493 +:107d6800000000001400c28f0800428ceaff401493 +:107d78000000000088bf023c3010438c0008023c21 +:107d880024106200390040100000000088bf023c47 +:107d98006010438c0008023c24106200330040103d +:107da8000000000088bf033c3010628cc4de027cf7 +:107db800301062ac80bf023c1060428c020042303e +:107dc8000f0040100000000080bf033c1060628c70 +:107dd8004408027c106062ac88bf033c3010628c9f +:107de800c4de027c301062ac039d023cec9144245a +:107df800e3a3400f000000009d5f400b000000005f +:107e08001000c0af905f400b0000000080bf023c34 +:107e18003060428c1800c2a31000c38f50818227a3 +:107e2800211062001800c393000043a01000c28f05 +:107e3800010042241000c2af80bf023c1060428c97 +:107e480001004230f1ff4014000000001400c28f0e +:107e58001c00438c5081822721206000212840008b +:107e68001000c68f7432400f0000000021e8c003e4 +:107e78002c00a28f130040002800a38f110060007f +:107e88002400bf8f2000be8f3400bb8f3800bd2771 +:107e980000e8dd4100609b401800004200e85d41b9 +:107ea80000701a4000601b40c8ffbd273400bbaffc +:107eb80044781b7c001c7b3700609b402400bfafcc +:107ec8002000beaf121000002c00a2af1018000056 +:107ed8002800a3af21f0a00300a0023c1c03422409 +:107ee8001400c2af88bf023c4010428c00044230ec +:107ef800390040100000000088bf023c7010428c1e +:107f080000044230340040100000000088bf033ce9 +:107f18004010628c8452027c401062ac1400c28f04 +:107f28000800428c090040140000000080bf033c98 +:107f38001068628c8452027c106862ac1400c28f94 +:107f4800140040acf85f400b000000001400c28f22 +:107f58000000428c000043802120600080bf033c69 +:107f6800206864ac010043241400c28f000043acb5 +:107f78001400c28f0800428cffff43241400c28ff4 +:107f8800080043ac88bf023ca060428c4003427c9e +:107f9800ff00423027100200ff004230010042304b +:107fa800ff00443088bf033ca060628c446b827c35 +:107fb800a06062ac80bf023c1068428c0002423074 +:107fc80005004014000000001400c28f0800428c15 +:107fd800deff40140000000088bf023c4010428cc5 +:107fe80000024230450040100000000088bf023cfb +:107ff8007010428c00024230400040100000000027 +:1080080088bf033c4010628c444a027c401062ac3a +:1080180080bf023c1068428c020042300f004010c2 +:108028000000000080bf033c1068628c4408027c9a +:10803800106862ac88bf033c4010628c444a027ce2 +:10804800401062ac039d023cf8914424e3a3400f26 +:10805800000000004160400b000000001000c0afad +:108068003360400b0000000080bf023c3068428c47 +:108078001800c2a31000c38f51818227211062000b +:108088001800c393000043a01000c28f01004224cf +:108098001000c2af88bf023ca060428c8003427cc3 +:1080a800ff00423027100200ff004230010042303a +:1080b800ff00443088bf033ca060628c8473827cdc +:1080c800a06062ac80bf023c1068428c0100423064 +:1080d800e5ff4014000000001400c28f1c00438c10 +:1080e800508182270100422421206000212840007d +:1080f8001000c68f7432400f0000000021e8c00352 +:108108002c00a28f130040002800a38f11006000ec +:108118002400bf8f2000be8f3400bb8f3800bd27de +:1081280000e8dd4100609b4018000042f8ffbd27d1 +:108138000400beaf21f0a00380bf033c0060628c46 +:10814800c47b027c006062ac80bf033c1060628c20 +:108158008452027c106062ac88bf033c6010628c61 +:1081680004e7027c601062ac88bf033c3010628c6c +:1081780004e7027c301062ac88bf033c6010628c5c +:108188000100042404e7827c601062ac88bf033cd1 +:108198006010628cc4de027c601062ac88bf033c55 +:1081a8006010628cc4de027c601062ac88bf033c45 +:1081b8003010628cc4de027c301062ac88bf033c95 +:1081c8006010628c01000424c4de827c601062ac02 +:1081d80080bf033c1060628c010004240463827c2d +:1081e800106062ac00a0023c00a0033c00036324c2 +:1081f800fc0243ac00a0023cfc0242240c0040ac50 +:1082080000a0023cfc024224140040ac80bf033ca6 +:108218000060628c01000424c47b827c006062ac34 +:1082280021e8c0030400be8f0800bd270800e00352 +:1082380000000000f8ffbd270400beaf21f0a00336 +:1082480080bf033c0068628cc47b027c006862ac1f +:1082580080bf033c1068628c8452027c106862ac58 +:1082680088bf033c7010628c8452027c701062ac30 +:1082780088bf033c4010628c8452027c401062ac80 +:1082880088bf033c7010628c8452027c701062ac10 +:1082980088bf033c7010628c444a027c701062ac48 +:1082a80088bf033c4010628c01000424444a827c4d +:1082b800401062ac88bf033c7010628c010004243b +:1082c800444a827c701062ac80bf033c1068628ca8 +:1082d800010004240463827c106862ac00a0023ca4 +:1082e800fc02422400a0033c20036324200043ac8a +:1082f80000a0023cfc0242242c0040ac00a0023c3e +:10830800fc024224340040ac80bf033c0068628c0d +:1083180001000424c47b827c006862ac21e8c003ad +:108328000400be8f0800bd270800e003000000001d +:10833800f8ffbd270400beaf21f0a00321e8c00369 +:108348000400be8f0800bd270800e00300000000fd +:10835800e8ffbd271400bfaf1000beaf21f0a00397 +:1083680000a0023c18084224588182af00a0023cb9 +:1083780018084424212800002c010624cda0400f11 +:108388000000000000a0023cec0644242128000064 +:108398002c010624cda0400f0000000000a0023ce4 +:1083a800c0054424212800002c010624cda0400f3c +:1083b800000000005c8180af21e8c0031400bf8f7b +:1083c8001000be8f1800bd270800e0030000000061 +:1083d800e8ffbd271400bfaf1000beaf21f0a00317 +:1083e8005c81828f0a004010000000000100032415 +:1083f80008004314000000005c8180af3c3b400f44 +:1084080000000000000000000761400b00000000b1 +:108418000000000021e8c0031400bf8f1000be8fc9 +:108428001800bd270800e00300000000e0ffbd279a +:108438001c00bfaf1800beaf21f0a0032000c4afde +:108448002400c5af2000c28f1500401000000000b6 +:108458001000c0af1000c0af2561400b0000000045 +:108468002000c28f000042902000c38f01006324c7 +:108478002000c3af212040003061400f0000000001 +:108488001000c28f010042241000c2af1000c38f39 +:108498002400c28f2a106200f1ff4014000000007f +:1084a80021e8c0031c00bf8f1800be8f2000bd2725 +:1084b8000800e00300000000e8ffbd271400bfaf7c +:1084c8001000beaf21f0a003211080001800c2a345 +:1084d8001800c3930d0002241d0062140000000060 +:1084e800029d023ce02f44244364400f000000003a +:1084f80000a0023c180842240000428009004010f5 +:108508000000000000a0023cec06442400a0023c4d +:1085180018084524649b400f000000008461400f48 +:108528000000000000a0023c18084224588182afd5 +:1085380000a0023c18084424212800002c0106242d +:10854800cda0400f000000007e61400b000000003d +:108558001800c39308000224050062100000000000 +:108568001800c3937f000224110062140000000069 +:108578001800c283212040005864400f000000000a +:108588005881838f00a0023c18084224180062100a +:10859800000000005881828fffff4224588182af7b +:1085a8005881828f000040a07e61400b00000000cf +:1085b8001800c283212040005864400f00000000ca +:1085c8005881838f00a0023c440942242b1062008a +:1085d80007004010000000005881828f1800c383f4 +:1085e800000043a05881828f01004224588182af45 +:1085f80021e8c0031400bf8f1000be8f1800bd27ec +:108608000800e00300000000b8febd274401bfaf2a +:108618004001beaf21f0a0032000c2272120400066 +:10862800212800001e000624cda0400f00000000f5 +:108638004000c22721204000212800001e000624f7 +:10864800cda0400f000000006000c227212040009c +:10865800212800001e000624cda0400f00000000c5 +:108668008000c22721204000212800001e00062487 +:10867800cda0400f00000000a000c227212040002c +:10868800212800001e000624cda0400f0000000095 +:108698004000c2276000c3271000a3af8000c32793 +:1086a8001400a3afa000c3271800a3af00a0033c89 +:1086b80018086424029d033ce42f65242000c32786 +:1086c800213060002138400048a3400f000000001e +:1086d8002000c22721204000029d023cf42f45249f +:1086e800040006245da2400f0000000012004014a0 +:1086f8000000000000a0023c00314224608182afeb +:1087080000a0023c00314224212040004a9d400f35 +:108718000000000000a0033c003164242128400030 +:108728000c3c400f000000006081828f288082afdf +:108738003d64400b000000002000c22721204000bb +:10874800029d023cfc2f4524050006245da2400f33 +:108758000000000037004014000000004000c2275d +:10876800000042800700401400000000029d023c07 +:10877800043044244364400f000000003d64400b73 +:10878800000000004000c22721204000029d023c5a +:1087980040304524020006245da2400f000000007e +:1087a8000900401400000000029d023c44304424ab +:1087b8004364400f000000007c97400f0000000059 +:1087c8000962400b000000004000c2272120400041 +:1087d800029d023c64304524030006245da2400f3c +:1087e800000000000900401400000000029d023c47 +:1087f800683044244364400f000000009097400f05 +:10880800000000000962400b00000000029d023ccd +:10881800883044244364400f00000000029d023c5d +:10882800c83044244364400f000000003d64400bfe +:10883800000000002000c22721204000029d023cc9 +:10884800cc304524040006245da2400f000000003f +:1088580080004014000000004000c2270000428051 +:108868000700401400000000029d023cd43044245c +:108878004364400f000000003d64400b000000000e +:108888004000c22721204000029d023c4030452480 +:10889800020006245da2400f0000000015004014ed +:1088a800000000009c3b400f000000002118400021 +:1088b800010002240900621000000000029d023c31 +:1088c800103144244364400f000000001b3a400f5d +:1088d800000000009162400b00000000029d023c75 +:1088e800283144244364400f000000009162400b8b +:1088f800000000004000c22721204000029d023ce9 +:1089080064304524030006245da2400f00000000e7 +:1089180013004014000000009c3b400f00000000c2 +:108928000900401000000000029d023c443144242c +:108938004364400f00000000010002245c8182af04 +:108948009162400b00000000029d023c6c314424ff +:108958004364400f000000009162400b00000000db +:108968004000c22721204000029d023c9831452446 +:10897800060006245da2400f000000002f004014ee +:10898800000000009c3b400f000000000500432c45 +:108998002a0060100000000080180200029d023cbe +:1089a800bc894224211062000000428c080040006b +:1089b80000000000d089019de889019d008a019d81 +:1089c800188a019d308a019d029d023ca0314424f1 +:1089d8004364400f000000009162400b000000005b +:1089e800029d023cb43144244364400f000000005f +:1089f8009162400b00000000029d023cc4314424f7 +:108a08004364400f000000009162400b000000002a +:108a1800029d023cd83144244364400f000000000a +:108a28009162400b00000000029d023ce4314424a6 +:108a38004364400f0000000000000000029d023c5b +:108a4800c83044244364400f000000003d64400bdc +:108a5800000000002000c22721204000029d023ca7 +:108a6800fc314524070006245da2400f00000000e9 +:108a780091004014000000004000c227000042801e +:108a88002d004014000000000990400f0000000075 +:108a9800c000c32721206000029d033c04326524e6 +:108aa80021304000cea2400f00000000029d023c91 +:108ab800083244244364400f00000000c000c2276d +:108ac800212040004364400f00000000029d023c4a +:108ad800c83044244364400f000000002390400f36 +:108ae80000000000d000c32721206000029d033c45 +:108af8001c32652421304000cea2400f0000000047 +:108b0800029d023c203244244364400f00000000d0 +:108b1800d000c227212040004364400f000000001d +:108b2800029d023c3c3244244364400f0000000094 +:108b38003d64400b000000004000c2272120400097 +:108b4800029d023c40324524070006245da2400fe6 +:108b58000000000018004014000000000990400fb9 +:108b680000000000e000c32721206000029d033cb4 +:108b78000432652421304000cea2400f00000000de +:108b8800029d023c083244244364400f0000000068 +:108b9800e000c227212040004364400f000000008d +:108ba800029d023cc83044244364400f000000008a +:108bb8002a63400b000000004000c227212040002b +:108bc800029d023c48324524070006245da2400f5e +:108bd8000000000018004014000000002390400f1f +:108be80000000000f000c32721206000029d033c24 +:108bf8001c32652421304000cea2400f0000000046 +:108c0800029d023c203244244364400f00000000cf +:108c1800f000c227212040004364400f00000000fc +:108c2800029d023c3c3244244364400f0000000093 +:108c38002a63400b000000004000c22721204000aa +:108c4800029d023c50324524030006245da2400fd9 +:108c58000000000012004014000000002e90400f99 +:108c6800000000000001c32721206000029d033c92 +:108c78001c32652421304000cea2400f00000000c5 +:108c8800029d023c543244244364400f000000001b +:108c9800029d023c643244244364400f00000000fb +:108ca800029d023cc83044244364400f0000000089 +:108cb8003d64400b000000002000c2272120400036 +:108cc800029d023c98314524060006245da2400f0f +:108cd80000000000a200401400000000029d023cb9 +:108ce800683244244364400f00000000a497400ffa +:108cf800000000000700401400000000029d023c34 +:108d08007c3244244364400f000000005763400b4a +:108d180000000000a497400f000000002118400048 +:108d2800010002240700621400000000029d023cba +:108d3800983244244364400f000000005763400bfe +:108d480000000000029d023cb43244244364400ffa +:108d5800000000009c3b400f0000000001000324bd +:108d680016004310000000000200432805006010b0 +:108d7800000000000b004010000000008363400b5f +:108d8800000000000200032412004310000000004d +:108d98000300032415004310000000008363400b08 +:108da80000000000029d023cd43244244364400f7a +:108db800000000008863400b00000000029d023c98 +:108dc800f03244244364400f000000008863400be5 +:108dd80000000000029d023c083344244364400f15 +:108de800000000008863400b00000000029d023c68 +:108df800243344244364400f000000008863400b80 +:108e080000000000029d023c483344244364400fa4 +:108e180000000000000000001001c22721204000cf +:108e2800212800000f000624cda0400f00000000fc +:108e38000990400f000000001001c32721206000a6 +:108e4800029d033c6033652421304000cea2400fd0 +:108e580000000000029d023c083244244364400f95 +:108e6800000000001001c227212040004364400f89 +:108e780000000000029d023c683344244364400f14 +:108e8800000000002001c227212040002128000006 +:108e98000f000624cda0400f000000002390400fd3 +:108ea800000000002001c32721206000029d033c30 +:108eb8006c33652421304000cea2400f0000000032 +:108ec800029d023c203244244364400f000000000d +:108ed8002001c227212040004364400f0000000009 +:108ee800640004244e77400f000000003001c227c0 +:108ef80021204000212800000f000624cda0400fab +:108f0800000000002e90400f000000003001c32731 +:108f180021206000029d033c743365242130400009 +:108f2800cea2400f00000000029d023c54324424af +:108f38004364400f000000003001c2272120400098 +:108f48004364400f00000000029d023cc8304424e6 +:108f58004364400f000000003d64400b0000000027 +:108f68002000c22721204000029d023c7c3345247a +:108f78000a0006245da2400f000000004a004014c9 +:108f8800000000004000c227000042800700401493 +:108f980000000000029d023c883344244364400fd3 +:108fa800000000003d64400b000000004000c227a4 +:108fb80021204000029d023cc833452405000624b8 +:108fc8005da2400f000000000900401400000000ee +:108fd8005141400f00000000029d023cd033442460 +:108fe8004364400f000000003d64400b0000000097 +:108ff8004000c22721204000029d023ce83345245e +:10900800040006245da2400f00000000090040147f +:1090180000000000029d023cf03344244364400fea +:10902800000000006141400f000000003d64400b5b +:10903800000000004000c22721204000029d023ca1 +:1090480098314524060006245da2400f0000000068 +:109058002600401400000000bf3d400f0000000043 +:109068000700401000000000029d023c0c3444241c +:109078004364400f000000003d64400b0000000006 +:10908800bf3d400f00000000180040100000000025 +:10909800029d023c2c3444244364400f000000002d +:1090a8003d64400b000000002000c2272120400042 +:1090b8004a9d400f000000002000c32721206000c7 +:1090c800029d033c50346524213040005da2400fce +:1090d800000000000500401000000000029d023c56 +:1090e800583444244364400f0000000021e8c003c2 +:1090f8004401bf8f4001be8f4801bd270800e0032f +:1091080000000000e0ffbd271c00bfaf1800beaf85 +:109118001400b0af21f0a0032000c4af2000d08f0e +:109128002000c48f4a9d400f00000000212000024b +:10913800212840000c3c400f0000000021e8c0033b +:109148001c00bf8f1800be8f1400b08f2000bd27f1 +:109158000800e00300000000e8ffbd271400bfafcf +:109168001000beaf21f0a003211080001800c2a398 +:109178001800c293212040002e3c400f0000000040 +:1091880021e8c0031400bf8f1000be8f1800bd2750 +:109198000800e00300000000f8ffbd270400beaf90 +:1091a80021f0a00321e8c0030400be8f0800bd27fa +:1091b8000800e00300000000e0ffbd271c00beaf70 +:1091c80021f0a00388bf033c2061628c01000424c5 +:1091d800c418827c206162acc404023c00b44234ee +:1091e8000000c2af7d01023c407842340400c2afa7 +:1091f8000400c28f401002000000c38f1b006200f1 +:10920800f401400010180000121000000800c2af5e +:109218000400c28f401002000000c38f1b006200d0 +:10922800f40140001010000004004010000000008d +:109238000800c28f010042240800c2af0800c28f94 +:109248000101422c03004014000000000001022428 +:109258000800c2af0800c28f0400401000000000e0 +:109268000800c28fffff42240800c2af0800c28f67 +:10927800ff004230a98182a3c404023c00b44234f6 +:109288000c00c2af1602023cc00e42341000c2af3e +:109298001000c28f401002000c00c38f1b00620038 +:1092a800f401400010180000121000001400c2afb2 +:1092b8001000c28f401002000c00c38f1b00620018 +:1092c800f4014000101000000400401000000000ed +:1092d8001400c28f010042241400c2af1400c28fd0 +:1092e8000101422c03004014000000000001022488 +:1092f8001400c2af1400c28f040040100000000028 +:109308001400c28fffff42241400c2af1400c28fa2 +:10931800ff004230a88182a3ac8180af21e8c0035e +:109328001c00be8f2000bd270800e00300000000dd +:10933800e8ffbd271400bfaf1000beaf21f0a003a7 +:109348006865400f00000000211840000100022459 +:1093580022006214000000000e65400f00000000ab +:1093680088bf033c2061628cc418027c206162ac17 +:10937800a8818293010004242128400098a2400f6c +:1093880000000000a88182932120000021284000cd +:1093980098a2400f0000000088bf033c2061628c47 +:1093a80001000424c418827c206162ac01000424fa +:1093b8002765400f0000000001000224ac8182af45 +:1093c800039d023ca8814424e3a3400f0000000051 +:1093d80001000224ff64400b00000000ac8180af54 +:1093e800039d023cc0814424e3a3400f0000000019 +:1093f8002110000021e8c0031400bf8f1000be8fa9 +:109408001800bd270800e00300000000f8ffbd2792 +:109418000400beaf21f0a003ac81828f21e8c00315 +:109428000400be8f0800bd270800e003000000000c +:10943800e8ffbd271400bfaf1000beaf21f0a003a6 +:1094480088bf033c2061628cc418027c206162ac36 +:10945800a8818293060004242128400098a2400f86 +:109468000000000088bf033c2061628c01000424d6 +:10947800c418827c206162ac0100022421e8c00388 +:109488001400bf8f1000be8f1800bd270800e0032e +:1094980000000000e0ffbd271c00bfaf1800beaff2 +:1094a80021f0a0032000c4af88bf033c2061628c78 +:1094b800c418027c206162aca9818293050004244f +:1094c8002128400098a2400f000000001000c2a30d +:1094d800a9818293212000002128400098a2400ff2 +:1094e800000000001000c2a388bf033c2061628c0a +:1094f80001000424c418827c206162ac2000c28f61 +:1095080007004010000000001000c293039d033cb8 +:10951800e081642421284000f4a3400f00000000eb +:109528001000c29321e8c0031c00bf8f1800be8f33 +:109538002000bd270800e00300000000e0ffbd2771 +:109548001c00bfaf1800beaf21f0a003212000000f +:109558002765400f000000001000c2a31000c2934e +:1095680001004230ff0042300400401000000000bb +:10957800010002246265400b000000002110000079 +:1095880021e8c0031c00bf8f1800be8f2000bd2734 +:109598000800e00300000000e0ffbd271c00bfaf8b +:1095a8001800beaf21f0a00388bf033c2061628c85 +:1095b800c418027c206162aca981829390000424c3 +:1095c8002128400098a2400f00000000a981829342 +:1095d800212000002128400098a2400f0000000030 +:1095e800a9818293212000002128400098a2400fe1 +:1095f80000000000a981829321200000212840005a +:1096080098a2400f00000000a98182932120000049 +:109618002128400098a2400f000000001000c2a3bb +:10962800a9818293212000002128400098a2400fa0 +:10963800000000001100c2a388bf033c2061628cb7 +:1096480001000424c418827c206162ac1000c3931a +:10965800bf00022405006214000000001100c3933b +:10966800410002240c006210000000001000c393a7 +:109678001100c293039d043c0082842421286000c9 +:1096880021304000f4a3400f00000000211000002a +:10969800b165400b000000001000c3931100c29395 +:1096a800039d043c3c828424212860002130400032 +:1096b800f4a3400f000000000100022421e8c003c9 +:1096c8001c00bf8f1800be8f2000bd270800e003d4 +:1096d80000000000e0ffbd271c00bfaf1800beafb0 +:1096e80021f0a0032000c4af2400c5af2800c6aff6 +:1096f8002800c38f2400c28f21106200ffff43247b +:109708002000023c2a1062000400401400000000ff +:10971800211000001166400b0000000088bf033cc8 +:109728002061628cc418027c206162aca98182939a +:109738000b0004242128400098a2400f00000000dc +:109748002800c38fff00023c2410620003140200ab +:10975800ff00423021184000a88182932120600038 +:109768002128400098a2400f000000002800c28f66 +:1097780000ff423003120200ff004230211840006f +:10978800a8818293212060002128400098a2400fe0 +:10979800000000002800c28fff004230211840005e +:1097a800a8818293212060002128400098a2400fc0 +:1097b80000000000a8818293212000002128400099 +:1097c80098a2400f000000001000c0af0666400bd2 +:1097d80000000000a8818293de00042421284000b4 +:1097e80098a2400f000000001400c2a32000c28ffe +:1097f8001400c393000043a02000c28f010042243c +:109808002000c2af1000c28f010042241000c2af76 +:109818001000c38f2400c28f2a106200edff40148d +:109828000000000088bf033c2061628c0100042412 +:10983800c418827c206162ac0100022421e8c003c4 +:109848001c00bf8f1800be8f2000bd270800e00352 +:1098580000000000e8ffbd271400bfaf1000beaf36 +:1098680021f0a0031800c4af1800c28fff0f4230c8 +:109878000400401000000000211000005b66400b4f +:10988800000000000e65400f0000000088bf033c88 +:109898002061628cc418027c206162aca88182932a +:1098a800200004242128400098a2400f0000000056 +:1098b8001800c38fff00023c24106200031402004a +:1098c800ff00423021184000a881829321206000c7 +:1098d8002128400098a2400f000000001800c28f05 +:1098e80000ff423003120200ff00423021184000fe +:1098f800a8818293212060002128400098a2400f6f +:10990800000000001800c28fff00423021184000fc +:10991800a8818293212060002128400098a2400f4e +:109928000000000088bf033c2061628c0100042411 +:10993800c418827c206162ac1800c28f01004224e6 +:109948001800c2af000000005165400f0000000081 +:109958002118400001000224fbff621000000000f3 +:109968000100022421e8c0031400bf8f1000be8f3d +:109978001800bd270800e00300000000e8ffbd272d +:109988001400bfaf1000beaf21f0a0031800c4af91 +:109998001c00c5af1800c28fffff42300400401002 +:1099a8000000000021100000b066400b000000001d +:1099b8001800c38fffff0234211862002000023c08 +:1099c8002a1062000400401400000000211000006a +:1099d800b066400b000000000e65400f000000005c +:1099e80088bf033c2061628cc418027c206162ac91 +:1099f800a8818293d80004242128400098a2400f0f +:109a0800000000001800c38fff00023c2410620011 +:109a180003140200ff00423021184000a8818293fd +:109a2800212060002128400098a2400f000000007b +:109a38001800c28f00ff423003120200ff004230bc +:109a480021184000a881829321206000212840002d +:109a580098a2400f000000001800c28fff0042309b +:109a680021184000a881829321206000212840000d +:109a780098a2400f0000000088bf033c2061628c60 +:109a880001000424c418827c206162ac1c00c28fcf +:109a98000800401000000000000000005165400f61 +:109aa800000000002118400001000224fbff6210a2 +:109ab800000000000100022421e8c0031400bf8f49 +:109ac8001000be8f1800bd270800e003000000004a +:109ad800d8ffbd272400bfaf2000beaf21f0a003f0 +:109ae8002800c4af2c00c5af2800c28fff0f42303a +:109af8000400401000000000211000001f67400b08 +:109b0800000000002c00c38f01000224040062142e +:109b1800000000002800c48f1766400f00000000f6 +:109b280000a0023c881d42241000c2af1400c0af40 +:109b38001a67400b000000001000c28f000042901e +:109b48001800c2a30e65400f000000002800c38f54 +:109b5800ff00023c24106200031402001900c2a393 +:109b68002800c28f00ff4230031202001a00c2a36d +:109b78002800c28f1b00c2a31c00c0af88bf033cd3 +:109b88002061628cc418027c206162aca881829337 +:109b9800020004242128400098a2400f0000000081 +:109ba8001900c29321184000a881829321206000e7 +:109bb8002128400098a2400f000000001a00c2931c +:109bc80021184000a88182932120600021284000ac +:109bd80098a2400f000000001b00c293211840000b +:109be800a8818293212060002128400098a2400f7c +:109bf800000000001800c393a88182932120600010 +:109c08002128400098a2400f0000000088bf033cb4 +:109c18002061628c01000424c418827c206162ac3b +:109c28001000c28f010042241000c2af2800c28f6a +:109c3800010042242800c2af000000005165400f17 +:109c4800000000002118400001000224fbff621000 +:109c5800000000001400c28f010042241400c2afab +:109c68001400c28f00104228b3ff40140000000007 +:109c78000100022421e8c0032400bf8f2000be8f0a +:109c88002800bd270800e00300000000e8ffbd270a +:109c98001400bfaf1000beaf21f0a0031800c4af7e +:109ca8002110a0002000c6af1c00c2a31800c38f5b +:109cb8002000023c2b106200040040140000000049 +:109cc800211000007467400b000000000e65400f73 +:109cd8000000000088bf033c2061628cc418027c2d +:109ce800206162aca88182930200042421284000ec +:109cf80098a2400f000000001800c38fff00023c2c +:109d08002410620002140200ff00423021184000b3 +:109d1800a8818293212060002128400098a2400f4a +:109d2800000000001800c28f00ff4230021202003b +:109d3800ff00423021184000a88182932120600052 +:109d48002128400098a2400f000000001800c28f90 +:109d5800ff00423021184000a88182932120600032 +:109d68002128400098a2400f000000001c00c29368 +:109d780021184000a88182932120600021284000fa +:109d880098a2400f0000000088bf033c2061628c4d +:109d980001000424c418827c206162ac2000c28fb8 +:109da8000800401000000000000000005165400f4e +:109db800000000002118400001000224fbff62108f +:109dc800000000000100022421e8c0031400bf8f36 +:109dd8001000be8f1800bd270800e0030000000037 +:109de800c8ffbd273400bfaf3000beaf21f0a003cd +:109df8003800c4af3c00c5af4000c6af1c00c0afc0 +:109e08004000c38f3c00c28f211062002000c2af07 +:109e18004000c28f1000c2af3800c28f1400c2af1a +:109e28002000c38f2000023c2a1062004c0040141e +:109e38000000000021100000de67400b0000000059 +:109e48001000c28fff0f4324000044280b10640049 +:109e580003130200001302002400c2af00a0023c5a +:109e6800881d4424001005242400c68fb765400fc0 +:109e780000000000211840000100022404006210c4 +:109e88000000000021100000de67400b0000000009 +:109e980000a0023c881d43241000c48f2400c28ff8 +:109ea80023108200211062001800c2af2800c0af42 +:109eb800d767400b000000001400c28f00004380e9 +:109ec8001800c28f000043a01800c28f010042246e +:109ed8001800c2af1400c28f010042241400c2afa0 +:109ee8001000c28f010042241000c2af1000c38fbf +:109ef8002000c28f0b006214000000000100022441 +:109f08002800c2af010002241c00c2af2400c48f85 +:109f180001000524b666400f00000000da67400b18 +:109f2800000000001000c28fff0f423009004014eb +:109f380000000000010002242800c2af2400c48fe2 +:109f480001000524b666400f00000000da67400be8 +:109f5800000000002800c28fd7ff4010000000005a +:109f68001c00c28fb6ff4010000000000100022450 +:109f780021e8c0033400bf8f3000be8f3800bd27f2 +:109f88000800e0030000000060ffbd279c00bfaf91 +:109f98009800beaf21f0a003211880002110a00076 +:109fa800a800c6afa000c3a3a400c2a71100c0a305 +:109fb800a000c29306000324200043100000000004 +:109fc80007000324330043100000000001000324ad +:109fd800aa004314000000002800c227a800c48f6c +:109fe800212840007000062421380000c257400f85 +:109ff800000000001100c2a31100c2838f004014aa +:10a00800000000008c80828f8f004010000000004c +:10a01800a800c28f70004224908082af8c80828f0b +:10a028002800c327010004242128600009f8400003 +:10a0380000000000a168400b000000001c00c227bf +:10a04800a800c48f212840000400062421380000fd +:10a05800c257400f000000001100c2a31100c283c4 +:10a068007c004014000000008c80828f7c0040102f +:10a07800000000008c80828f1c00c3270600042487 +:10a088002128600009f8400000000000a168400b8a +:10a0980000000000010002241000c2a32000c22713 +:10a0a800a800c48f21284000080006242138000099 +:10a0b800c257400f000000001100c2a31100c28364 +:10a0c80051004014000000002400c2971200c2a7eb +:10a0d8002600c2971400c2a72200c2971600c2a782 +:10a0e8002000c2971800c2af1200c29703004014a4 +:10a0f8000000000001000224108082af1200c39704 +:10a108001400c297211862001600c297020062105c +:10a11800000000001000c0a31800c28f0100032433 +:10a128002c004310000000000100432c09006014bb +:10a1380000000000020003240e004310000000008d +:10a14800030003240f004310000000006f68400b59 +:10a15800000000001080838f010002242000621498 +:10a16800000000001800c28f108082af8468400b86 +:10a17800000000001800c28f108082af8468400b76 +:10a18800000000001080838f020002241700621074 +:10a19800000000001080838f040002241600621063 +:10a1a800000000001800c28f108082af8468400b46 +:10a1b800000000001080838f02000224110062104a +:10a1c8000000000004000224108082af8468400b65 +:10a1d80000000000000000008468400b0000000040 +:10a1e800000000008468400b000000000000000030 +:10a1f8008468400b00000000000000008468400be9 +:10a2080000000000000000001000c293170040107a +:10a21800000000008c80828f1700401000000000b2 +:10a228008c80828f070004241080852709f840005d +:10a2380000000000a168400b0000000000000000c2 +:10a24800a168400b0000000000000000a168400b5e +:10a258000000000000000000a168400b00000000a2 +:10a2680000000000a168400b000000000000000092 +:10a27800a168400b000000000000000021e8c003b6 +:10a288009c00bf8f9800be8fa000bd270800e00388 +:10a2980000000000e0ffbd271c00bfaf1800beafe4 +:10a2a80021f0a0032000c4af1000c0a32000c28f7b +:10a2b8008c8082af908080af04000224108082af2f +:10a2c80005000424029d023c909f45242d58400f10 +:10a2d800000000001000c2a31000c28321e8c003e0 +:10a2e8001c00bf8f1800be8f2000bd270800e003a8 +:10a2f80000000000d0ffbd272c00bfaf2800beaf74 +:10a3080021f0a0033000c4af3400c5af2110c00055 +:10a318003800c2a72000c0a33000c28f3800c397fe +:10a328003400c48f1000a4af1400a3af700003243e +:10a338001800a3af05000424820005242130400042 +:10a34800700007243555400f000000002000c2a30c +:10a358002000c28321e8c0032c00bf8f2800be8fd5 +:10a368003000bd270800e00300000000b8ffbd274b +:10a378004400bfaf4000beaf21f0a0034800c4af07 +:10a388004c00c5af2000c0a34c00c28f0106422c70 +:10a3980023004010000000004800c28f2800c2af10 +:10a3a8002800c28fc86e0324000043a44c00c28f4b +:10a3b8000300422482100200ffff43302800c28fae +:10a3c800020043a42800c28f040040a44c00c28f9e +:10a3d8000300422482100200ffff43302800c28f8e +:10a3e800060043a44c00c28fffff42304800c38fd1 +:10a3f8001000a3af1400a2af1800a0af05000424fa +:10a408008400052421300000213800003555400f14 +:10a41800000000002000c2a3a869400b0000000053 +:10a428002400c0af2c00c0af4800c38f2400c28fe7 +:10a43800211062003400c327212060002128400039 +:10a4480008000624f09c400f000000004c00c38f59 +:10a458002400c28f23106200000503240105442c48 +:10a468000a1064002c00c2af4800c38f2400c28fba +:10a47800211062003000c2af3000c28fc86e0324c2 +:10a48800000043a44c00c28f030042248210020043 +:10a49800ffff43303000c28f020043a42400c28f64 +:10a4a8000300422482100200ffff43303000c28fb5 +:10a4b800040043a42c00c28f03004224821002002f +:10a4c800ffff43303000c28f060043a44800c38f0b +:10a4d8002400c28f211862002c00c28fffff423077 +:10a4e8001000a3af1400a2af1800a0af0500042409 +:10a4f8008400052421300000213800003555400f24 +:10a50800000000002000c2a34800c38f2400c28faf +:10a51800211862003400c227212060002128400051 +:10a5280008000624f09c400f000000002400c38fa0 +:10a538002c00c28f211062002400c2afa369400b17 +:10a54800000000002400c28ff8ff42244800c38f97 +:10a55800211062003400c327212060002128400018 +:10a5680008000624f09c400f000000004c00c38f38 +:10a578002400c28f23106200000503240105442c27 +:10a588000a1064002c00c2af2c00c28f03004324c1 +:10a59800fcff0224241062002c00c2af2400c28fea +:10a5a800f8ff42244800c38f211062003000c2af78 +:10a5b8003000c28fc86e0324000043a44c00c28f31 +:10a5c8000300422482100200ffff43303000c28f94 +:10a5d800020043a42400c28f030042248210020018 +:10a5e800ffff43303000c28f040043a42c00c28f09 +:10a5f8000300422482100200ffff43303000c28f64 +:10a60800060043a42400c28ff8ff42244800c38fe9 +:10a61800211862002c00c28fffff4230080042243c +:10a62800ffff42301000a3af1400a2af1800a0af84 +:10a63800050004248400052421300000213800008e +:10a648003555400f000000002000c2a32400c28f2f +:10a65800f8ff42244800c38f211862003400c22743 +:10a66800212060002128400008000624f09c400fab +:10a67800000000002400c38f2c00c28f211062004c +:10a688002400c2af2400c38f4c00c28f2b1062007d +:10a69800acff4014000000002000c28321e8c00382 +:10a6a8004400bf8f4000be8f4800bd270800e0036c +:10a6b80000000000e0ffbd271c00bfaf1800beafc0 +:10a6c80021f0a0032000c4af2400c5af2800c6af06 +:10a6d8002c00c7aff4ff02241000c2a39080828f21 +:10a6e8000400401400000000f4ff0224b66a400b86 +:10a6f800000000002000c28f100040100000000081 +:10a708002400c28f0d004010000000002800c28ff6 +:10a718000a004010000000002c00c28f0700401003 +:10a72800000000003000c28f04004010000000004c +:10a738003400c28f0500401400000000f1ff02241d +:10a748001000c2a3af6a400b000000009080838f06 +:10a758001600c2272120600021284000020006249c +:10a7680021380000c257400f00000000b20040141a +:10a77800000000001600c29700120200201e027c92 +:10a788001600c29702120200ffff42302016027c18 +:10a79800251062002016027cffff4230211840007d +:10a7a8002000c28f000043ac9080828f02004224b8 +:10a7b800908082af9080838f1600c227212060008e +:10a7c800212840000200062421380000c257400f0b +:10a7d800000000009b004014000000001600c29713 +:10a7e80000120200201e027c1600c297021202000c +:10a7f800ffff42302016027c251062002016027ce2 +:10a80800ffff42301600c2a71600c2972100422c53 +:10a818008f004010000000001600c3973400c28f5c +:10a82800400043a49080828f02004224908082af2f +:10a838009080838f1200c2272120600021284000c9 +:10a848000200062421380000c257400f0000000013 +:10a8580082004014000000001200c297001202009b +:10a86800201e027c1200c29702120200ffff423033 +:10a878002016027c251062002016027cffff423061 +:10a888001200c2a72800c28f000043941200c2978a +:10a898002b10620074004014000000001200c397df +:10a8a8002800c28f000043a49080828f02004224b7 +:10a8b800908082af9080838f1400c227212060008f +:10a8c800212840000200062421380000c257400f0a +:10a8d8000000000067004014000000001400c29748 +:10a8e80000120200201e027c1400c297021202000d +:10a8f800ffff42302016027c251062002016027ce1 +:10a90800ffff42301400c2a73000c28f00004394fa +:10a918001400c2972b106200590040140000000078 +:10a928001400c3973000c28f000043a49080828f28 +:10a9380002004224908082af9080848f3400c38fbd +:10a948001600c297212860002130400021380000fd +:10a95800c257400f000000004c00401400000000e7 +:10a968001600c297211840009080828f2110620043 +:10a97800908082af9080848f3400c28f200043245f +:10a988001600c297212860002130400021380000bd +:10a99800c257400f000000003f00401400000000b4 +:10a9a8001600c297211840009080828f2110620003 +:10a9b800908082af9080838f1200c2972120600020 +:10a9c8002400c58f2130400021380000c257400fb5 +:10a9d8000000000033004014000000001200c2977d +:10a9e800211840009080828f21106200908082aff1 +:10a9f8009080838f1400c297212060002c00c58f9f +:10aa08002130400021380000c257400f00000000ec +:10aa180027004014000000001400c29721184000cd +:10aa28009080828f21106200908082af21100000f8 +:10aa3800b66a400b0000000000000000af6a400b3f +:10aa48000000000000000000af6a400b000000009a +:10aa580000000000af6a400b00000000000000008a +:10aa6800af6a400b0000000000000000af6a400b16 +:10aa78000000000000000000af6a400b000000006a +:10aa880000000000af6a400b00000000000000005a +:10aa9800af6a400b0000000000000000af6a400be6 +:10aaa8000000000000000000af6a400b000000003a +:10aab80000000000212000002128000021300000b3 +:10aac80001000724c257400f000000001000c28395 +:10aad80021e8c0031c00bf8f1800be8f2000bd27cf +:10aae8000800e00300000000d8ffbd272400bfaf26 +:10aaf8002000beaf21f0a0032800c4af2c00c5afd2 +:10ab08003000c6af3400c7af200002241800c2a727 +:10ab1800400002241a00c2a72800c28f1a00c327c7 +:10ab28001000a3af3400c38f1400a3af212040004e +:10ab38002c00c58f1800c227213040003000c78f75 +:10ab4800af69400f0000000021e8c0032400bf8f58 +:10ab58002000be8f2800bd270800e0030000000089 +:10ab6800e0ffbd271c00bfaf1800beaf21f0a00357 +:10ab78002000c4af2110a0002400c2a7f4ff0224c3 +:10ab88001000c2a39080828f0400401400000000cf +:10ab9800f4ff0224056b400b000000002000c28f68 +:10aba8000500401400000000f1ff02241000c2a3b9 +:10abb800fe6a400b000000009080838f2400c2973b +:10abc800212060002000c58f21304000213800007e +:10abd800c257400f000000000400401400000000ad +:10abe80021100000056b400b000000000000000071 +:10abf8002120000021280000213000000100072446 +:10ac0800c257400f000000001000c28321e8c003b3 +:10ac18001c00bf8f1800be8f2000bd270800e0036e +:10ac280000000000e8ffbd271400bfaf1000beaf52 +:10ac380021f0a0032120000021280000213000007d +:10ac480001000724c257400f0000000021e8c0039c +:10ac58001400bf8f1000be8f1800bd270800e00346 +:10ac680000000000e8ffbd271400bfaf1000beaf12 +:10ac780021f0a0030b6b400f0000000021e8c00387 +:10ac88001400bf8f1000be8f1800bd270800e00316 +:10ac980000000000f8ffbd270400beaf21f0a003ac +:10aca800908080af21e8c0030400be8f0800bd2754 +:10acb8000800e00300000000d0ffbd272c00bfaf54 +:10acc8002800beaf21f0a0033000c4af2000c0a30d +:10acd8003000c28f2400c2af2400c2271000a0afea +:10ace8001400a0af1800a0af050004240500052437 +:10acf80021304000040007243555400f00000000b3 +:10ad08002000c2a32000c28321e8c0032c00bf8f0b +:10ad18002800be8f3000bd270800e00300000000b7 +:10ad2800e8ffbd271400bfaf1000beaf21f0a0039d +:10ad3800c96c400f0000000021e8c0031400bf8f59 +:10ad48001000be8f1800bd270800e00300000000b7 +:10ad5800e8ffbd271400bfaf1000beaf21f0a0036d +:10ad6800211080001800c2a3708082930f00432c2a +:10ad78003f0160100000000080180200029d023ca4 +:10ad88009cad4224211062000000428c0800400063 +:10ad980000000000d8ad019d00ae019d68ae019d88 +:10ada800d0ae019d38af019da4af019dd8af019de4 +:10adb8000cb0019d54b0019d9cb0019d20b1019d36 +:10adc80080b1019d98b1019dc4b1019df0b1019d73 +:10add800208180af288180af308180a32c8180af13 +:10ade80001000224708082a3ffff02246c8082afde +:10adf800a46c400b000000001c81828f001202002e +:10ae08001c8182af1800c3931c81828f21106200bd +:10ae18001c8182af6c80838f1800c2932120600050 +:10ae2800212840002096400f000000006c8082af6f +:10ae38001800c393de00022405006214000000001d +:10ae480002000224708082a3a46c400b0000000062 +:10ae5800c96c400f00000000a46c400b000000000b +:10ae68001c81828f001202001c8182af1800c393dc +:10ae78001c81828f211062001c8182af6c80838fbd +:10ae88001800c29321206000212840002096400f1e +:10ae9800000000006c8082af1800c393ad0002244c +:10aea800050062140000000003000224708082a3e1 +:10aeb800a46c400b00000000c96c400f00000000ab +:10aec800a46c400b000000001c81828f001202005d +:10aed8001c8182af1800c3931c81828f21106200ed +:10aee8001c8182af6c80838f1800c2932120600080 +:10aef800212840002096400f000000006c8082af9f +:10af08001800c393be00022405006214000000006c +:10af180004000224708082a3a46c400b000000008f +:10af2800c96c400f00000000a46c400b000000003a +:10af38001c81828f001202001c8182af1800c3930b +:10af48001c81828f211062001c8182af6c80838fec +:10af58001800c29321206000212840002096400f4d +:10af6800000000006c8082af1c81838fadde023c44 +:10af7800efbe42340500621000000000c96c400fab +:10af880000000000a46c400b000000000500022433 +:10af9800708082a3a46c400b000000001800c293cc +:10afa800308182a306000224708082a36c80838f84 +:10afb8001800c29321206000212840002096400fed +:10afc800000000006c8082afa46c400b0000000001 +:10afd8001800c293208182af07000224708082a3e8 +:10afe8006c80838f1800c2932120600021284000c4 +:10aff8002096400f000000006c8082afa46c400bcc +:10b00800000000002081828f00120200208182afa0 +:10b018001800c3932081828f21106200208182afa3 +:10b028006c80838f1800c293212060002128400083 +:10b038002096400f000000006c8082af08000224b8 +:10b04800708082a3a46c400b000000002081828fd6 +:10b0580000120200208182af1800c3932081828fe2 +:10b0680021106200208182af6c80838f1800c29308 +:10b0780021206000212840002096400f0000000099 +:10b088006c8082af09000224708082a3a46c400bfc +:10b09800000000002081828f00120200208182af10 +:10b0a8001800c3932081828f21106200208182af13 +:10b0b8006c80838f1800c2932120600021284000f3 +:10b0c8002096400f000000006c8082af2081828fa4 +:10b0d8009f00422c0500401400000000c96c400f7e +:10b0e80000000000a46c400b000000002081828f4b +:10b0f80005004014000000000b000224708082a3a9 +:10b10800a46c400b000000000a000224708082a397 +:10b11800a46c400b00000000f081828f1800c393dc +:10b12800000043a0f081828f01004224f08182afa9 +:10b138002481828f01004224248182af6c80838f16 +:10b148001800c29321206000212840002096400f5b +:10b15800000000006c8082af2481838f2081828f61 +:10b1680048006214000000000b000224708082a3d3 +:10b17800a46c400b000000001800c2932c8182af21 +:10b188000c000224708082a3a46c400b0000000015 +:10b198002c81828f001202002c8182af1800c39389 +:10b1a8002c81828f211062002c8182af0d00022435 +:10b1b800708082a3a46c400b000000002c81828f59 +:10b1c800001202002c8182af1800c3932c81828f59 +:10b1d800211062002c8182af0e000224708082a3ad +:10b1e800a46c400b000000002c81828f001202002a +:10b1f8002c8182af1800c3932c81828f21106200aa +:10b208002c8182af6c80828f271002006c8082af05 +:10b218002c81838f6c80828f0b00621000000000ed +:10b22800308182932014027c2120400021280000d4 +:10b23800f23d400f00000000c96c400f0000000004 +:10b24800a46c400b00000000308182932014027c23 +:10b258002120400001000524f23d400f00000000bd +:10b26800c96c400f00000000a46c400b00000000f7 +:10b27800c96c400f0000000000000000a46c400be7 +:10b28800000000000000000021e8c0031400bf8f88 +:10b298001000be8f1800bd270800e0030000000062 +:10b2a800e0ffbd271c00bfaf1800beaf21f0a00310 +:10b2b8002000c4af2400c5af1000c0afbe6c400b67 +:10b2c800000000002000c28f000042902000c38fc1 +:10b2d800010063242000c3af21204000566b400fbb +:10b2e800000000001000c28f010042241000c2af0d +:10b2f8001000c38f2400c28f2a106200f1ff40148f +:10b308000000000021e8c0031c00bf8f1800be8f9a +:10b318002000bd270800e00300000000f8ffbd275b +:10b328000400beaf21f0a003208180af1c8180af54 +:10b33800288180af308180a32c8180af0100022456 +:10b34800708082a3248180afffff02246c8082afcb +:10b3580000a0023c7c2f4224f08182af21e8c00388 +:10b368000400be8f0800bd270800e00300000000ad +:10b37800d8ffbd272400bfaf2000beaf21f0a00337 +:10b38800211080002c00c5af2800c2a300a0023cf9 +:10b39800deff03247c2f43a000a0023c7c2f422424 +:10b3a800adff0324010043a000a0023c7c2f4224ef +:10b3b800beff0324020043a000a0023c7c2f4224cd +:10b3c800efff0324030043a000a0023c7c2f42248b +:10b3d8002800c393040043a02c00c28f0316020068 +:10b3e8001000c2a31000c39300a0023c7c2f42248b +:10b3f800050043a02c00c28f031402001000c2a352 +:10b408001000c39300a0023c7c2f4224060043a0f6 +:10b418002c00c28f031202001000c2a31000c393b5 +:10b4280000a0023c7c2f4224070043a02c00c28fbe +:10b438001000c2a31000c39300a0023c7c2f42243a +:10b44800080043a0ffff02241400c2af2c00c28fe3 +:10b458000900422400a0033c7c2f642421284000da +:10b46800e295400f000000001400c2af7480838f83 +:10b478002c00c28f211062001800c2af1400c28fc6 +:10b48800021602001000c2a31000c3931800c28f56 +:10b49800000043a01800c28f010042241800c2af68 +:10b4a8001400c28f021402001000c2a31000c3933c +:10b4b8001800c28f000043a01800c28f0100422468 +:10b4c8001800c2af1400c28f021202001000c2a3fb +:10b4d8001000c3931800c28f000043a01800c28f49 +:10b4e800010042241800c2af1400c28f1000c2a38a +:10b4f8001000c3931800c28f000043a01800c28f29 +:10b50800010042241800c2af2c00c28f0d00422453 +:10b5180000a0033c7c2f642421284000823d400f7a +:10b528000000000021e8c0032400bf8f2000be8f68 +:10b538002800bd270800e00300000000f8ffbd2731 +:10b548000400beaf21f0a0037480828f21e8c003fd +:10b558000400be8f0800bd270800e00300000000bb +:10b56800e8ffbd271400bfaf1000beaf21f0a00355 +:10b57800516d400f0000000001000324000043a0ab +:10b588000300042401000524de6c400f00000000c5 +:10b5980021e8c0031400bf8f1000be8f1800bd271c +:10b5a8000800e00300000000e8ffbd271400bfaf5b +:10b5b8001000beaf21f0a003211080001800c2a324 +:10b5c800516d400f0000000001000324000043a05b +:10b5d8001800c2932120400001000524de6c400fb2 +:10b5e8000000000021e8c0031400bf8f1000be8fc8 +:10b5f8001800bd270800e00300000000e8ffbd2791 +:10b608001400bfaf1000beaf21f0a00321108000ce +:10b618001800c2a3516d400f00000000000040a0b8 +:10b628001800c2932120400001000524de6c400f61 +:10b638000000000021e8c0031400bf8f1000be8f77 +:10b648001800bd270800e00300000000d8ffbd2750 +:10b658002400bfaf2000beaf21f0a003211080005e +:10b668002800c2a3960002241000c2af516d400ffb +:10b67800000000001400c2af1400c28f2800c3935a +:10b68800000043a01400c28f010042241400c2af7e +:10b698002800c38301000224260062140000000071 +:10b6a8001000c28f031602001800c2a31400c28f34 +:10b6b8001800c393000043a01400c28f0100422465 +:10b6c8001400c2af1000c28f031402001800c2a3f6 +:10b6d8001400c28f1800c393000043a01400c28f47 +:10b6e800010042241400c2af1000c28f03120200ee +:10b6f8001800c2a31400c28f1800c393000043a00f +:10b708001400c28f010042241400c2af1000c28f7f +:10b718001800c2a31400c28f1800c393000043a0ee +:10b728001400c28f010042241400c2afe36d400b25 +:10b73800000000001400c28f000040a01400c28f57 +:10b74800010042241400c2af1400c28f000040a0c0 +:10b758001400c28f010042241400c2af1400c28f2b +:10b76800000040a01400c28f010042241400c2afa0 +:10b778001400c28f000040a01400c28f01004224b0 +:10b788001400c2af0800042405000524de6c400f35 +:10b798000000000021e8c0032400bf8f2000be8ff6 +:10b7a8002800bd270800e00300000000e0ffbd27d7 +:10b7b8001c00bfaf1800beaf21f0a003211080000d +:10b7c8002400c5af2000c2a3516d400f0000000047 +:10b7d8001000c2af1000c28f2000c393000043a026 +:10b7e8001000c28f010042241000c2af2400c28f93 +:10b7f800031602001400c2a31000c28f1400c393e2 +:10b80800000043a01000c28f010042241000c2af04 +:10b818002400c28f031402001400c2a31000c28fb8 +:10b828001400c393000043a01000c28f01004224fb +:10b838001000c2af2400c28f031202001400c2a37a +:10b848001000c28f1400c393000043a01000c28fe1 +:10b85800010042241000c2af2400c28f1400c2a30a +:10b868001000c28f1400c393000043a01000c28fc1 +:10b87800010042241000c2af0d0004240500052475 +:10b88800de6c400f0000000021e8c0031c00bf8fe1 +:10b898001800be8f2000bd270800e003000000004c +:10b8a800e0ffbd271c00bfaf1800beaf21f0a0030a +:10b8b800211080002000c2a3516d400f000000003d +:10b8c8001000c2af1000c28f2000c393000043a035 +:10b8d8001000c28f010042241000c2af0a000424e5 +:10b8e80001000524de6c400f0000000021e8c003c1 +:10b8f8001c00bf8f1800be8f2000bd270800e00382 +:10b9080000000000e0ffbd271c00bfaf1800beaf5d +:10b9180021f0a003211080002000c2a3516d400f28 +:10b92800000000001000c2af1000c28f2000c393b7 +:10b93800000043a01000c28f010042241000c2afd3 +:10b948000f00042401000524de6c400f00000000f5 +:10b9580021e8c0031c00bf8f1800be8f2000bd2740 +:10b968000800e00300000000e0ffbd271c00bfaf97 +:10b978001800beaf21f0a003211080002000c2a350 +:10b98800516d400f000000001000c2af1000c28fc0 +:10b998002000c393000043a01000c28f010042247e +:10b9a8001000c2af1900042401000524de6c400f0a +:10b9b8000000000021e8c0031c00bf8f1800be8fe4 +:10b9c8002000bd270800e00300000000e0ffbd27bd +:10b9d8001c00bfaf1800beaf21f0a0032000c4af09 +:10b9e8002400c5af516d400f000000001000c2af29 +:10b9f8001400c0af1400c0af906e400b00000000f0 +:10ba08002000c28f00004290201c027c1000c28fd0 +:10ba1800000043a01000c28f010042241000c2aff2 +:10ba28002000c28f010042242000c2af1400c28f40 +:10ba3800010042241400c2af1400c38f2400c28f37 +:10ba48002a106200eeff4014000000001b000424ce +:10ba58002400c58fde6c400f0000000021e8c00301 +:10ba68001c00bf8f1800be8f2000bd270800e00310 +:10ba780000000000f8ffbd270400beaf21f0a003be +:10ba8800211080000800c2a70800c28700ff4230ca +:10ba980003120200201e027c0800c2970012020056 +:10baa8002016027c251062002016027c21e8c003c3 +:10bab8000400be8f0800bd270800e0030000000056 +:10bac800f8ffbd270400beaf21f0a0030800c4aff3 +:10bad8000800c28f021e02000800c48fff00023c4b +:10bae8002410820003120200251862000800c28f89 +:10baf80000ff423000120200251862000800c28fc1 +:10bb0800001602002510620021e8c0030400be8f61 +:10bb18000800bd270800e00300000000d8ffbd278b +:10bb28002400bfaf2000beaf21f0a0032800c4af9f +:10bb38002c00c5af3000c6af1000c0af1400c2273c +:10bb480021204000029d023c404145242c00c68f24 +:10bb5800cea2400f000000002c00c28f0f00422c24 +:10bb68001f004010000000001000c0afe76e400b3f +:10bb7800000000001000c28f2800c38f211062004f +:10bb880030000324000043a01000c28f01004224ab +:10bb98001000c2af3000c28fffff43241000c28fd5 +:10bba8002a104300f3ff4014000000001000c28f69 +:10bbb8002800c38f212062003000c38f1000c28f7d +:10bbc800231062001400c3272128600021304000a0 +:10bbd800f09c400f00000000cb6f400b00000000fd +:10bbe8002c00c28fff00422c1f00401000000000f4 +:10bbf8001000c0af096f400b000000001000c28f9a +:10bc08002800c38f2110620030000324000043a0e5 +:10bc18001000c28f010042241000c2af3000c28f52 +:10bc2800feff43241000c28f2a104300f3ff401484 +:10bc3800000000001000c28f2800c38f212062007e +:10bc48003000c38f1000c28f231062001400c32776 +:10bc58002128600021304000f09c400f00000000c7 +:10bc6800cb6f400b000000002c00c28fff0f422c4e +:10bc78001f004010000000001000c0af2b6f400be9 +:10bc8800000000001000c28f2800c38f211062003e +:10bc980030000324000043a01000c28f010042249a +:10bca8001000c2af3000c28ffdff43241000c28fc6 +:10bcb8002a104300f3ff4014000000001000c28f58 +:10bcc8002800c38f212062003000c38f1000c28f6c +:10bcd800231062001400c32721286000213040008f +:10bce800f09c400f00000000cb6f400b00000000ec +:10bcf8002c00c38fffff02342b1062001f0040107e +:10bd0800000000001000c0af4e6f400b00000000a4 +:10bd18001000c28f2800c38f211062003000032456 +:10bd2800000043a01000c28f010042241000c2afdf +:10bd38003000c28ffcff43241000c28f2a1043003a +:10bd4800f3ff4014000000001000c28f2800c38fca +:10bd5800212062003000c38f1000c28f23106200c0 +:10bd68001400c3272128600021304000f09c400fb8 +:10bd780000000000cb6f400b000000002c00c38fb8 +:10bd88000f00023cffff42342b1062001f004010de +:10bd9800000000001000c0af726f400b00000000f0 +:10bda8001000c28f2800c38f2110620030000324c6 +:10bdb800000043a01000c28f010042241000c2af4f +:10bdc8003000c28ffbff43241000c28f2a104300ab +:10bdd800f3ff4014000000001000c28f2800c38f3a +:10bde800212062003000c38f1000c28f2310620030 +:10bdf8001400c3272128600021304000f09c400f28 +:10be080000000000cb6f400b000000002c00c38f27 +:10be1800ff00023cffff42342b1062001f0040105d +:10be2800000000001000c0af966f400b000000003b +:10be38001000c28f2800c38f211062003000032435 +:10be4800000043a01000c28f010042241000c2afbe +:10be58003000c28ffaff43241000c28f2a1043001b +:10be6800f3ff4014000000001000c28f2800c38fa9 +:10be7800212062003000c38f1000c28f231062009f +:10be88001400c3272128600021304000f09c400f97 +:10be980000000000cb6f400b000000002c00c38f97 +:10bea800ff0f023cffff42342b1062001d004010c0 +:10beb800000000001000c0afba6f400b0000000087 +:10bec8001000c28f2800c38f2110620030000324a5 +:10bed800000043a01000c28f010042241000c2af2e +:10bee8003000c28ff9ff43241000c28f2a1043008c +:10bef800f3ff4014000000001000c28f2800c38f19 +:10bf0800212062003000c38f1000c28f231062000e +:10bf18001400c3272128600021304000f09c400f06 +:10bf2800000000000100022421e8c0032400bf8fa4 +:10bf38002000be8f2800bd270800e0030000000095 +:10bf4800d8ffbd272400bfaf2000beaf21f0a0035b +:10bf58002800c4af2c00c5af1000c0af1400c22722 +:10bf680021204000029d023c404145242c00c68f00 +:10bf7800cea2400f000000002c00c28f0f00422c00 +:10bf880007004010000000001400c3832800c28f7f +:10bf9800000043a001000224a170400b0000000033 +:10bfa8002c00c28fff00422c160040100000000039 +:10bfb8001000c0affc6f400b000000001000c28fe3 +:10bfc8002800c38f211062001000c38f1000c427ff +:10bfd8002118830004006380000043a01000c28f72 +:10bfe800010042241000c2af1000c28f0200422894 +:10bff800f2ff40140000000002000224a170400b70 +:10c00800000000002c00c28fff0f422c16004010c9 +:10c01800000000001000c0af1570400b00000000c9 +:10c028001000c28f2800c38f211062001000c38f38 +:10c038001000c4272118830004006380000043a077 +:10c048001000c28f010042241000c2af1000c28f3e +:10c0580003004228f2ff40140000000003000224fd +:10c06800a170400b000000002c00c38fffff0234ba +:10c078002b10620016004010000000001000c0af36 +:10c088002f70400b000000001000c28f2800c38fe3 +:10c09800211062001000c38f1000c42721188300ec +:10c0a80004006380000043a01000c28f01004224f6 +:10c0b8001000c2af1000c28f04004228f2ff4014e3 +:10c0c8000000000004000224a170400b00000000e2 +:10c0d8002c00c38f0f00023cffff42342b1062007c +:10c0e80016004010000000001000c0af4a70400b5e +:10c0f800000000001000c28f2800c38f21106200ca +:10c108001000c38f1000c427211883000400638027 +:10c11800000043a01000c28f010042241000c2afeb +:10c128001000c28f05004228f2ff401400000000f2 +:10c1380005000224a170400b000000002c00c38ff2 +:10c14800ff00023cffff42342b1062001600401033 +:10c15800000000001000c0af6570400b0000000038 +:10c168001000c28f2800c38f211062001000c38ff7 +:10c178001000c4272118830004006380000043a036 +:10c188001000c28f010042241000c2af1000c28ffd +:10c1980006004228f2ff40140000000006000224b6 +:10c1a800a170400b000000002c00c38fff0f023c61 +:10c1b800ffff42342b106200160040100000000000 +:10c1c8001000c0af8070400b000000001000c28f4c +:10c1d8002800c38f211062001000c38f1000c427ed +:10c1e8002118830004006380000043a01000c28f60 +:10c1f800010042241000c2af1000c28f070042287d +:10c20800f2ff40140000000007000224a170400b58 +:10c21800000000002c00c38fffff022416006210ec +:10c22800000000001000c0af9970400b0000000033 +:10c238001000c28f2800c38f211062001000c38f26 +:10c248001000c4272118830004006380000043a065 +:10c258001000c28f010042241000c2af1000c28f2c +:10c2680008004228f2ff40140000000008000224e1 +:10c27800a170400b000000002110000021e8c0035d +:10c288002400bf8f2000be8f2800bd270800e003d0 +:10c2980000000000e0ffbd271c00bfaf1800beafc4 +:10c2a80021f0a0032000c4af2110a0002800c6afd1 +:10c2b8002400c2a31000c0af2400c2931400c327f7 +:10c2c80021206000029d033c40416524213040004c +:10c2d800cea2400f000000002400c2930f00422ca1 +:10c2e8001f004010000000001000c0afc770400bd6 +:10c2f800000000001000c28f2000c38f21106200d0 +:10c3080030000324000043a01000c28f0100422423 +:10c318001000c2af2800c28fffff43241000c28f55 +:10c328002a104300f3ff4014000000001000c28fe1 +:10c338002000c38f212062002800c38f1000c28f05 +:10c34800231062001400c327212860002130400018 +:10c35800f09c400f00000000fa70400b0000000045 +:10c368002400c393ff0002241d0062100000000097 +:10c378001000c0afe970400b000000001000c28f31 +:10c388002000c38f2110620030000324000043a066 +:10c398001000c28f010042241000c2af2800c28fd3 +:10c3a800feff43241000c28f2a104300f3ff4014fd +:10c3b800000000001000c28f2000c38f21206200ff +:10c3c8002800c38f1000c28f231062001400c327f7 +:10c3d8002128600021304000f09c400f0000000040 +:10c3e8000100022421e8c0031c00bf8f1800be8f83 +:10c3f8002000bd270800e00300000000e8ffbd277b +:10c408001400beaf21f0a0031800c4af1c00c5afd4 +:10c418002000c6af0000c0af0400c0af0800c0af26 +:10c42800010002240c00c2af2000c38f10000224b8 +:10c4380036006214000000001c00c28fffff422477 +:10c448000000c2af4071400b000000001c00c28f0a +:10c45800ffff43240000c28f09006214000000009f +:10c468000000c28f1800c38f2110620000004280b4 +:10c47800d0ff42240800c2af3d71400b000000000d +:10c488000000c28f0400c2af2c71400b00000000f6 +:10c498000c00c28f001102000c00c2af0400c28f52 +:10c4a800010042240400c2af1c00c28ffeff4324d7 +:10c4b8000400c28f2a106200f5ff4010000000003f +:10c4c8000000c28f1800c38f211062000000428054 +:10c4d800d0ff4224211840000c00c28f021862705d +:10c4e8000800c28f211043000800c2af0000c28fad +:10c4f800ffff42240000c2af0000c28fd3ff4104f7 +:10c50800000000007671400b000000002000c38f7f +:10c518000a0002242e006214000000000000c0afd0 +:10c528007171400b000000000000c28f050040142c +:10c5380000000000010002240c00c2af6371400b30 +:10c54800000000000400c0af5e71400b0000000056 +:10c558000c00c28f40100200801802002110430016 +:10c568000c00c2af0400c28f010042240400c2af15 +:10c578000400c38f0000c28f2a106200f4ff401429 +:10c58800000000000000c28f1800c38f2110620055 +:10c5980000004280d0ff4224211840000c00c28fc6 +:10c5a800021862700800c28f211043000800c2af51 +:10c5b8000000c28f010042240000c2af0000c38ff8 +:10c5c8001c00c28f2a106200d7ff40140000000030 +:10c5d8000800c28f21e8c0031400be8f1800bd27d1 +:10c5e8000800e00300000000e0ffbd271c00bfaf0b +:10c5f8001800beaf21f0a0032000c4af2110a00096 +:10c608002400c2a32400c2931000c3272120600085 +:10c61800029d033c4041652421304000cea2400fda +:10c62800000000002400c2930f00422c07004010b5 +:10c63800000000001000c3832000c28f000043a048 +:10c6480001000224a471400b000000002400c393e1 +:10c65800ff0002240b006210000000001000c383da +:10c668002000c28f000043a02000c28f0100422496 +:10c678001100c383000043a002000224a471400bf0 +:10c68800000000002110000021e8c0031c00bf8f3b +:10c698001800be8f2000bd270800e003000000003e +:10c6a800e8ffbd271400beaf21f0a0031800c4aff7 +:10c6b8001c00c5af0400c0af0000c0afc571400b7f +:10c6c80000000000029d023c0400c38f8018030094 +:10c6d80044414224211062000000428c0800c2af8d +:10c6e8000000c28f1800c38f211062000000428032 +:10c6f800211840000800c28f261062000400c2af53 +:10c708000000c28f010042240000c2af0000c38fa6 +:10c718001c00c28f2a106200eaff401400000000cb +:10c728000400c28f21e8c0031400be8f1800bd2783 +:10c738000800e00300000000f8ffbd270400beafba +:10c7480021f0a0030800c4af21e8c0030400be8f95 +:10c758000800bd270800e0030000000058ffbd27bf +:10c76800a400bfafa000beaf21f0a003a800c4afd3 +:10c77800ac00c5afb000c6af1000c0a31400c0af76 +:10c788000f72400b00000000800002241800c2afa6 +:10c79800b000c38f1400c28f231862001800c28f24 +:10c7a8002b1062000500401000000000b000c38f8d +:10c7b8001400c28f231062001800c2afac00c38ff0 +:10c7c8001400c28f211062001c00c32721206000c2 +:10c7d800212840001800c68fcc5b400f00000000e5 +:10c7e8001000c2a31000c28319004014000000000a +:10c7f800a800c38f1400c28f211062001c00c32739 +:10c8080021206000212840001800c68f70a1400f29 +:10c81800000000001000c2a31000c2830f004014e3 +:10c82800000000001400c38f1800c28f211062009e +:10c838001400c2af1400c38fb000c28f2b10620067 +:10c84800d1ff4014000000001a72400b00000000e5 +:10c85800000000001a72400b0000000000000000f9 +:10c868001000c28321e8c003a400bf8fa000be8fc0 +:10c87800a800bd270800e00300000000e0ffbd2776 +:10c888001c00bfaf1800beaf21f0a0032000c4af4a +:10c898002400c5af2800c6aff4ff02241000c2a3cd +:10c8a800140002241100c2a33d72400b00000000d6 +:10c8b8002000c48f2400c58f2800c68f025c400f5b +:10c8c800000000001000c2a31000c283070040143b +:10c8d800000000002000c48f2400c58f2800c68fe8 +:10c8e800d971400f000000001000c2a31000c283dd +:10c8f80009004010000000001100c2932b10020034 +:10c90800ff0042301100c393ffff63241100c3a34b +:10c91800e7ff4014000000001000c28321e8c003b4 +:10c928001c00bf8f1800be8f2000bd270800e00341 +:10c9380000000000f0ffbd270c00beaf21f0a003ef +:10c94800211880001400c5af2110c0001000c3a337 +:10c958001800c2a71000c2930000c2a30200c0a71b +:10c968008a72400b000000000400c0a78372400bcd +:10c97800000000000200c2971400c38f211062005b +:10c9880000004290211840000400c29704104300a0 +:10c9980080004230c3110200201c027c0000c293b8 +:10c9a80082110200ff0042302014027c0100423054 +:10c9b8002014027c261062002014027c0600c2a308 +:10c9c8000000c293401002002014027c7f00423015 +:10c9d8002024027c0600c39321106000c0100200ce +:10c9e80021104300ff0042302014027c26108200f0 +:10c9f8002014027c0000c2a30400c2970100422454 +:10ca08000400c2a70400c2970800422cd9ff4014b2 +:10ca1800000000000200c297010042240200c2a7e1 +:10ca28000200c3971800c2972b106200ceff401473 +:10ca3800000000000000c29321e8c0030c00be8f74 +:10ca48001000bd270800e00300000000d8ffbd2744 +:10ca58002400bfaf2000beaf1c00b0af21f0a00380 +:10ca68002800c4af1000c0a32800c28f0000438c68 +:10ca7800bc1a023cf9de42340300621000000000d8 +:10ca8800f4ff02241000c2a32800c28f4400508c77 +:10ca98002800c28f7f000424212840004400062477 +:10caa8004f72400f00000000030002120000000057 +:10cab800f4ff02241000c2a31000c28321e8c003bf +:10cac8002400bf8f2000be8f1c00b08f2800bd2718 +:10cad8000800e00300000000e0ffbd271c00bfaf16 +:10cae8001800beaf21f0a0032000c4af2000c28f01 +:10caf800212040000010052448000624cc5b400f8c +:10cb0800000000001000c2a31000c28305004014fa +:10cb1800000000002000c48f9572400f0000000044 +:10cb28001000c2a31000c2830f00401000000000d4 +:10cb38002000c28f21204000002005244800062440 +:10cb4800cc5b400f000000001000c2a31000c2839d +:10cb580005004014000000002000c48f9572400fab +:10cb6800000000001000c2a31000c28321e8c00327 +:10cb78001c00bf8f1800be8f2000bd270800e003ef +:10cb880000000000e0ffbd271c00bfaf1800beafcb +:10cb980021f0a0032000c4aff4ff02241000c2a3b8 +:10cba8000020042400100524755c400f00000000dc +:10cbb8001000c2a31000c283360040140000000019 +:10cbc8002000c28f0800428c010043242000c28f3d +:10cbd800080043ac2000c28f7f00042421284000b5 +:10cbe800440006244f72400f000000002118400046 +:10cbf8002000c28f440043ac2000c28f2120400097 +:10cc080000200524480006242172400f000000007f +:10cc18001000c2a31000c2831e00401400000000d0 +:10cc28000010042400100524755c400f000000006b +:10cc38001000c2a31000c2831600401400000000b8 +:10cc48002000c28f0800428c010043242000c28fbc +:10cc5800080043ac2000c28f7f0004242128400034 +:10cc6800440006244f72400f0000000021184000c5 +:10cc78002000c28f440043ac2000c28f2120400016 +:10cc880000100524480006242172400f000000000f +:10cc98001000c2a31000c28321e8c0031c00bf8f8c +:10cca8001800be8f2000bd270800e0030000000028 +:10ccb800a0ffbd275c00bfaf5800beaf21f0a003a6 +:10ccc8006000c4af6400c5af6800c6af6400c28f1f +:10ccd80008004010000000006800c28f05004010e6 +:10cce800000000006000c28f0a00422c04004014bb +:10ccf8000000000021100000a473400b0000000099 +:10cd08006000c28f0300432c060060100000000082 +:10cd18002b10020012004014000000005073400b5a +:10cd280000000000090003240d004310000000006b +:10cd38009273400b000000006400c28f000040acfa +:10cd4800da5c400f00000000401402002118400087 +:10cd58006800c28f000043aca373400b00000000c2 +:10cd6800af84400f00000000211840000100022499 +:10cd7800040062100000000021100000a473400ba2 +:10cd8800000000001000c22721204000b872400fa8 +:10cd98000000000004004010000000002110000006 +:10cda800a473400b000000006000c38f020002243f +:10cdb80006006214000000002c00c38f6400c28fbc +:10cdc800000043ac8873400b000000006000c38f74 +:10cdd8000100022406006214000000002000c38f36 +:10cde8006400c28f000043ac8873400b0000000051 +:10cdf8006000c38f090002240700621400000000cd +:10ce08002000c38f0400023c00c042342118620095 +:10ce18006400c28f000043ac039d033c6000c28fd6 +:10ce2800c88d6324c0100200211062000400438ce6 +:10ce38006800c28f000043aca373400b00000000e1 +:10ce4800039d023c6000c38fc0180300c88d4224b4 +:10ce5800211062000000438c6400c28f000043acc4 +:10ce6800039d033c6000c28fc88d6324c01002007c +:10ce7800211062000400438c6800c28f000043ac9c +:10ce8800000000000100022421e8c0035c00bf8ffd +:10ce98005800be8f6000bd270800e00300000000b6 +:10cea800e0ffbd271c00bfaf1800beaf21f0a003f4 +:10ceb8002000c4af2118a0002110c0002400c3a383 +:10cec8002800c2a3af84400f0000000021184000d2 +:10ced800010002240400621000000000f4ff022494 +:10cee800f373400b000000002000c28f0a00422ca0 +:10cef8000400401400000000f1ff0224f373400b0b +:10cf0800000000001400c2272000c48f1000c327af +:10cf180021286000213040002e73400f00000000df +:10cf28000400401400000000f4ff0224f373400bd7 +:10cf3800000000001000c28fff0f423004004010b4 +:10cf480000000000f1ff0224f373400b0000000012 +:10cf58002400c3932800c29321106200001b020022 +:10cf68001400c28f2b104300040040100000000082 +:10cf7800f4ff0224f373400b000000002400c29366 +:10cf8800001b02001000c28f211062001000c2af07 +:10cf98001000c38f2800c2930013020021206000f4 +:10cfa80021284000755c400f00000000040040107c +:10cfb80000000000f4ff0224f373400b000000009f +:10cfc8002110000021e8c0031c00bf8f1800be8f8d +:10cfd8002000bd270800e00300000000e0ffbd2797 +:10cfe8001c00bfaf1800beaf21f0a0032000c4afe3 +:10cff8002400c5af2800c6af2c00c7afaf84400fd0 +:10d008000000000021184000010002240400621002 +:10d0180000000000f4ff02244174400b00000000ef +:10d028002400c28f05004010000000002000c28fbd +:10d038000a00422c0400401400000000f1ff022402 +:10d048004174400b000000001400c2272000c48f68 +:10d058001000c32721286000213040002e73400fa4 +:10d06800000000000400401400000000f4ff022447 +:10d078004174400b000000002800c38f2c00c28fb1 +:10d08800211862001400c28f2b10430008004014be +:10d09800000000002800c38f2c00c28f21186200f6 +:10d0a8002800c28f2b10620004004010000000000e +:10d0b800f4ff02244174400b000000001000c38fed +:10d0c8002800c28f211062001000c2af1000c28f6a +:10d0d8002400c48f212840002c00c68f025c400f1a +:10d0e800000000000400401000000000f4ff0224cb +:10d0f8004174400b000000002110000021e8c0032b +:10d108001c00bf8f1800be8f2000bd270800e00359 +:10d1180000000000e0ffbd271c00bfaf1800beaf35 +:10d1280021f0a0032000c4af2400c5af2800c6af7b +:10d138002c00c7afaf84400f00000000211840004a +:10d14800010002240400621000000000f4ff022421 +:10d158008f74400b000000002400c28f05004010af +:10d16800000000002000c28f0a00422c0400401476 +:10d1780000000000f1ff02248f74400b0000000043 +:10d188001400c2272000c48f1000c3272128600084 +:10d19800213040002e73400f0000000004004014ae +:10d1a80000000000f4ff02248f74400b0000000010 +:10d1b8002800c38f2c00c28f211862001400c28f70 +:10d1c8002b10430008004014000000002800c38f03 +:10d1d8002c00c28f211862002800c28f2b10620019 +:10d1e8000400401000000000f4ff02248f74400b7c +:10d1f800000000001000c38f2800c28f21106200b9 +:10d208001000c2af1000c28f2400c48f2128400034 +:10d218002c00c68fcc5b400f0000000004004010bb +:10d2280000000000f4ff02248f74400b000000008f +:10d238002110000021e8c0031c00bf8f1800be8f1a +:10d248002000bd270800e0030000000098ffbd276c +:10d258006400bfaf6000beaf21f0a003af84400ff1 +:10d2680000000000211840000100022404006210a0 +:10d2780000000000f4ff0224be74400b0000000010 +:10d288001400c22721204000b872400f000000009f +:10d298000400401000000000f4ff0224be74400b9c +:10d2a800000000003000c28f1000c2af2400c28fff +:10d2b8003000c2af1000c28f2400c2af9823023cd6 +:10d2c800187742343400c2af1400c227212040002e +:10d2d800e372400f0000000004004010000000004e +:10d2e800f4ff0224be74400b00000000211000006f +:10d2f80021e8c0036400bf8f6000be8f6800bd27af +:10d308000800e00300000000e8ffbd271400bfafdd +:10d318001000beaf21f0a00380bf023c000640ac65 +:10d3280080bf033c0006628c010004240429827c2f +:10d33800000662ac80bf023c100640ac80bf023cd5 +:10d3480010270324200643ac88bf033ca010628c3e +:10d35800020004248420827ca01062ac88bf033cb5 +:10d36800a010628c030004240408827ca01062ac24 +:10d3780088bf033c3010628c0421027c301062ac00 +:10d3880088bf033c6010628c010004240421827c65 +:10d39800601062ac80bf033c0006628c010004246c +:10d3a800c47b827c000662ac00a0023c640f44246b +:10d3b8002128000008010624cda0400f000000002d +:10d3c80021e8c0031400bf8f1000be8f1800bd27ce +:10d3d8000800e00300000000f0ffbd270c00beaf0e +:10d3e80021f0a0031000c4af0000c0af1000c28f2e +:10d3f800c0100200801802002318620000a0023c3e +:10d40800640f4224211062001400428c4600401030 +:10d41800000000001000c28fc01002008018020037 +:10d428002318620000a0023c640f4224211062000d +:10d438000400438c1000c28fc0100200802002003c +:10d448002320820000a0023c640f422421108200a5 +:10d458000000428c231062000000c2af0000c38f9e +:10d468001000c28fc010020080200200232082001a +:10d4780000a0023c640f4224211082000c00428c60 +:10d488002b1062000c004014000000001000c28f36 +:10d49800c0100200801802002318620000a0023c9d +:10d4a800640f422421106200040040ac01000224f1 +:10d4b8004d75400b000000000000c28f1a004104a7 +:10d4c800000000000000c28fe80342242118400039 +:10d4d8001000c28fc01002008020020023208200aa +:10d4e80000a0023c640f4224211082000c00428cf0 +:10d4f8002b1062000c004014000000001000c28fc6 +:10d50800c0100200801802002318620000a0023c2c +:10d51800640f422421106200040040ac0100022480 +:10d528004d75400b000000002110000021e8c003e9 +:10d538000c00be8f1000bd270800e00300000000ab +:10d54800f0ffbd270c00beaf21f0a0031000c4af50 +:10d558000000c0af1000c28fc01002008018020087 +:10d568002318620000a0023c640f422421106200cc +:10d578001400428c45004010000000001000c28fcb +:10d58800c0100200801802002318620000a0023cac +:10d59800640f4224211062000800438c1000c28fdf +:10d5a800c0100200802002002320820000a0023c5c +:10d5b800640f4224211082000000428c2310620074 +:10d5c8000000c2af0000c38f1000c28fc01002005d +:10d5d800802002002320820000a0023c640f422425 +:10d5e800211082001000428c2b1062000c004014a5 +:10d5f800000000001000c28fc01002008018020056 +:10d608002318620000a0023c640f4224211062002b +:10d61800080040ac01000224a675400b0000000081 +:10d628000000c28f19004104000000000000c28ff2 +:10d63800ffff43241000c28fc010020080200200a8 +:10d648002320820000a0023c640f422421108200a3 +:10d658001000428c2b1062000c00401400000000e7 +:10d668001000c28fc0100200801802002318620048 +:10d6780000a0023c640f422421106200080040ac64 +:10d6880001000224a675400b0000000021100000d4 +:10d6980021e8c0030c00be8f1000bd270800e0037e +:10d6a80000000000f0ffbd270c00beaf21f0a00372 +:10d6b8001000c4af0000c0af1000c28fc01002003d +:10d6c800801802002318620000a0023c640f422464 +:10d6d800211062001400428cd900401000000000a4 +:10d6e8001000c28fc01002008018020023186200c8 +:10d6f80000a0023c640f4224211062000800438c01 +:10d708001000c28fc0100200802002002320820077 +:10d7180000a0023c640f4224211082000000428cc9 +:10d72800231062000000c2af0000c38f1000c28f38 +:10d73800c0100200802002002320820000a0023cca +:10d74800640f4224211082001000428c2b106200ca +:10d7580056004014000000001000c28fc0100200e4 +:10d76800801802002318620000a0023c640f4224c3 +:10d77800211062000400438c1000c28fc010020008 +:10d78800802002002320820000a0023c640f422473 +:10d79800211082000000428c231062000000c2affa +:10d7a8000000c38f1000c28fc0100200802002004a +:10d7b8002320820000a0023c640f42242110820032 +:10d7c8000c00428c2b106200140040140000000072 +:10d7d8001000c28fc01002008018020023186200d7 +:10d7e80000a0023c640f422421106200080040acf3 +:10d7f8001000c28fc01002008018020023186200b7 +:10d8080000a0023c640f422421106200040040acd6 +:10d81800010002249376400b000000000000c28f34 +:10d8280087004104000000000000c28fe803422482 +:10d83800211840001000c28fc01002008020020092 +:10d848002320820000a0023c640f422421108200a1 +:10d858000c00428c2b10620079004014000000007c +:10d868001000c28fc0100200801802002318620046 +:10d8780000a0023c640f422421106200080040ac62 +:10d888001000c28fc0100200801802002318620026 +:10d8980000a0023c640f422421106200040040ac46 +:10d8a800010002249376400b000000000000c28fa4 +:10d8b80063004104000000000000c28fffff432402 +:10d8c8001000c28fc01002008020020023208200b6 +:10d8d80000a0023c640f4224211082001000428cf8 +:10d8e8002b10620056004014000000001000c28f88 +:10d8f800c0100200801802002318620000a0023c39 +:10d90800640f4224211062000400438c1000c28f6f +:10d91800c0100200802002002320820000a0023ce8 +:10d92800640f4224211082000000428c2310620000 +:10d938000000c2af0000c38f1000c28fc0100200e9 +:10d94800802002002320820000a0023c640f4224b1 +:10d95800211082000c00428c2b106200140040142d +:10d96800000000001000c28fc010020080180200e2 +:10d978002318620000a0023c640f422421106200b8 +:10d98800080040ac1000c28fc010020080180200ce +:10d998002318620000a0023c640f42242110620098 +:10d9a800040040ac010002249376400b0000000004 +:10d9b8000000c28f22004104000000000000c28f56 +:10d9c800e8034224211840001000c28fc010020052 +:10d9d800802002002320820000a0023c640f422421 +:10d9e800211082000c00428c2b106200140040149d +:10d9f800000000001000c28fc01002008018020052 +:10da08002318620000a0023c640f42242110620027 +:10da1800080040ac1000c28fc0100200801802003d +:10da28002318620000a0023c640f42242110620007 +:10da3800040040ac010002249376400b0000000073 +:10da48002110000021e8c0030c00be8f1000bd2784 +:10da58000800e00300000000e8ffbd271400bfaf86 +:10da68001000beaf21f0a0031800c4af1c00c5af62 +:10da78001800c28fc010020080180200231862002c +:10da880000a0023c640f422421106200010003241c +:10da9800140043ac1c00c28fe803422c1e00401443 +:10daa800000000001800c28fc01002008018020099 +:10dab8002318620000a0023c640f42242110620077 +:10dac8001c00c48fe80303241b008300f4016000da +:10dad8001020000012180000100043ac1800c28f7c +:10dae800c0100200801802002318620000a0023c47 +:10daf800640f4224211062001c00c48fe803032431 +:10db08001b008300f4016000101800000c0043acf7 +:10db1800d976400b000000001800c28fc010020028 +:10db2800801802002318620000a0023c640f4224ff +:10db380021106200100040ac1800c28fc010020013 +:10db4800801802002318620000a0023c640f4224df +:10db5800211062001c00c38f0c0043ac1800c48f56 +:10db68000b77400f0000000021e8c0031400bf8fae +:10db78001000be8f1800bd270800e0030000000059 +:10db8800e8ffbd271400bfaf1000beaf21f0a0030f +:10db98001800c4af1c00c5af1800c28fc010020027 +:10dba800801802002318620000a0023c640f42247f +:10dbb8002110620001000324140043ac1800c28f36 +:10dbc800c0100200801802002318620000a0023c66 +:10dbd800640f4224211062001c00c38f100043ac64 +:10dbe8001800c28fc01002008018020023186200bb +:10dbf80000a0023c640f4224211062000c0040acdb +:10dc08001800c48f0b77400f0000000021e8c00304 +:10dc18001400bf8f1000be8f1800bd270800e00356 +:10dc280000000000f8ffbd270400beaf21f0a003ec +:10dc38000800c4af0800c28fc0100200801802009c +:10dc48002318620000a0023c640f422421106200e5 +:10dc5800000040ac0800c28fc0100200801802000b +:10dc68002318620000a0023c640f422421106200c5 +:10dc7800040040ac0800c28fc010020080180200e7 +:10dc88002318620000a0023c640f422421106200a5 +:10dc9800080040ac21e8c0030400be8f0800bd277f +:10dca8000800e00300000000f8ffbd270400beaf35 +:10dcb80021f0a0030800c4af0800c28fc010020002 +:10dcc800801802002318620000a0023c640f42245e +:10dcd800211062001400428c21e8c0030400be8faa +:10dce8000800bd270800e00300000000f8ffbd277a +:10dcf8000400beaf21f0a0030800c4af0800c28f23 +:10dd0800c0100200801802002318620000a0023c24 +:10dd1800640f422421106200140040ac21e8c003c3 +:10dd28000400be8f0800bd270800e00300000000c3 +:10dd3800e8ffbd271400bfaf1000beaf21f0a0035d +:10dd48001800c4af020004249876400f1800c58f4d +:10dd58005977400b00000000400000000200042436 +:10dd6800ab75400f00000000fbff401000000000f2 +:10dd78003d77400f0200042421e8c0031400bf8f40 +:10dd88001000be8f0800e0031800bd2700e85d41c1 +:10dd980000701a4000601b40e0ffbd271c00baafae +:10dda8001800bbaf44781b7c00087b3700609b40a1 +:10ddb8001400beaf1000a4af0c00a3af0800a2afc0 +:10ddc80021f0a00300a0023c640f42240400c2af6b +:10ddd8000000c0af9477400b000000000400c28f21 +:10dde8001400428c12004010000000000400c28f92 +:10ddf8000400428ce80343380100632cff006330c1 +:10de0800010044240400c28f040044ac08006010e0 +:10de1800000000000400c28f040040ac0400c28f60 +:10de28000800428c010043240400c28f080043ac60 +:10de38000400c28f180042240400c2af0000c28f41 +:10de4800010042240000c2af0000c28f0b00422c28 +:10de5800e2ff40140000000088bf033c3010628cd1 +:10de68000421027c301062ac21e8c0031400be8f8c +:10de78001000a48f0c00a38f0800a28f00606041df +:10de8800c00000001c00ba8f1800bb8f00709a40b9 +:10de98002000bd2700e8dd4100609b4018000042db :020000040000fa :020000041d01dc -:10dd0000a40000a00400000000000000140200a015 -:10dd10004000000000000000a80000a01800000063 -:10dd200000000000300000a0020000000100000020 -:10dd300001090000540200a06e0200000000000073 -:10dd4000a43000a0bc0400000100000057494e436d -:10dd5000333430305f30303a3030000000000000a3 -:10dd60000000000000000000000000000001000aa8 -:10dd70003132333435464646464600000000000046 -:10dd800000000000000000000000000100c0a832f8 -:10dd90000100000057494e43333430305f30303a91 -:10dda0003030000048657265206973207468652012 -:10ddb0006c697374206f6620746865206176616990 -:10ddc0006c61626c6520636f6d6d616e64733a0a9d -:10ddd0000d0a0d68656c70203a2053686f777320c8 -:10dde000746869732077696e646f770a0d0a706fc3 -:10ddf000776572205b73746174655d205365742070 -:10de00006368616c657427732031325620496e76e1 -:10de10006572746572206665656420706f776572df -:10de20002073746174652e20205468697320636fb9 -:10de30006d6d616e6420636f6e74726f6c732074ad -:10de40006865206d61696e20706f776572207265fc -:10de50006c61790a202020202d20417661696c6157 -:10de6000626c65205b73746174655d2061726775b7 -:10de70006d656e74206172653a206f6e0a202020f5 -:10de80002020202020202020202020202020202092 -:10de90002020202020202020202020202020202082 -:10dea0002020206f66660a0a77696669205b636fc7 -:10deb0006d6d616e645d20636f6e74726f6c204374 -:10dec00068616c65744475696e6f27732057694685 -:10ded00069206d6f64756c65207374617465250ac3 -:10dee000202020202d20417661696c61626c6520c4 -:10def0005b636f6d6d616e645d20617267756d65ea -:10df00006e74206172653a206f6e20287475726e8f -:10df100073204f4e206d6f64756c65290a20202098 -:10df200020202020202020202020202020202020f1 -:10df300020202020202020202020202020202020e1 -:10df400020202020206f666620287475726e732052 -:10df50004f4646206d6f64756c65290a202020208d -:10df600020202020202020202020202020202020b1 -:10df700020202020202020202020202020202020a1 -:10df80002020202073746174757320287265747565 -:10df9000726e732063757272656e7420737461742f -:10dfa0007573290a0a62617474657279205b7365fe -:10dfb0006e736f725d2072657475726e7320637517 -:10dfc0007272656e74206261747465727920736513 -:10dfd0006e736f72732072656164696e67730a2075 -:10dfe0002020202d20417661696c61626c65205b88 -:10dff00073656e736f725d20617267756d656e74a7 -:10e00000206172653a20766f6c746167650a202022 -:10e010002020202020202020202020202020202000 -:10e0200020202020202020202020202020202020f0 -:10e03000202020202063757272656e740a202020d3 -:10e0400020202020202020202020202020202020d0 -:10e0500020202020202020202020202020202020c0 -:10e0600020202020736f6320287374617465206ff3 -:10e070006620636861726765290a202020202020bd -:10e0800020456d707479205b73656e736f725d20cf -:10e09000617267756d656e74207072696e7473203d -:10e0a000616c6c2076616c7565730a0a73746174b7 -:10e0b0007573203a206765742067656e6572616cc0 -:10e0c0002073797374656d207374617475730a0ab3 -:10e0d000626f6f746c6f61646572205b636f6d6dee -:10e0e000616e645d203a20626f6f746c6f6164656d -:10e0f00072206d6f646520636f6e74726f6c0a209e -:10e100002020202d20417661696c61626c65205b66 -:10e11000636f6d6d616e645d20617267756d656eb4 -:10e1200074206172653a2073746172742028656e80 -:10e1300061626c6520626f6f746c6f6164657220e0 -:10e14000616e64206f70656e7320706f7274290a3f -:10e1500020202020202020202020202020202020bf -:10e1600020202020202020202020202020202020af -:10e17000202020202020202073746f7020286469c4 -:10e180007361626c657320626f6f746c6f6164653c -:10e1900072206966206e6f742062757379290a2077 -:10e1a000202020202020202020202020202020206f -:10e1b000202020202020202020202020202020205f -:10e1c0002020202020202073746174652028707224 -:10e1d000696e74732061637475616c20737461740b -:10e1e00065206f662074686520626f6f746c6f6164 -:10e1f000646572290a0a48617665206120676f6f3d -:10e200006420646179210a00340000a00c00000041 -:10e2100001000000f8f00545d4840000fc3000a0a7 -:10e22000c40400a09803000000000000400000a00b -:10e230000400000001000000f08e029d5c0800a0b8 -:10e240002006000000000000c00000a00c0000003c -:10e25000000000006c3e00a058000000010000001b -:10e2600057494e43333430305f30303a303000005d -:10e27000000000000000000000000000000000009e -:10e280000001000a31323334354646464646000026 -:10e29000000000000000000000000000000000017d -:10e2a00000c0a8320100000057494e4333343030db -:10e2b0005f30303a30300000440000a00800000019 -:10e2c00001000000f8f00545d48400007c0e00a099 -:10e2d0000801000000000000003e00a06c000000eb -:10e2e0000100000057494e43333430305f30303a3c -:10e2f00030300000000000000000000000000000be -:10e30000000000000001000a313233343546464631 -:10e310004646000000000000000000000000000071 -:10e320000000000100c0a8320100000057494e4320 -:10e33000333430305f30303a303000006f70656e0b -:10e34000776561746865726d61702e6f7267000029 -:10e35000603500a000040000000000004c0000a098 -:10e360001000000001000000f8f00545d484ffff14 -:10e37000ffffffffffffff00cc0000a01c0000001c -:10e3800000000000840f00a0040d00000000000049 -:10e390005c0000a004000000010000000005040073 -:10e3a000c43e00a0580000000100000057494e4341 -:10e3b000333430305f30303a30300000000000003d -:10e3c0000000000000000000000000000001000a42 -:10e3d00031323334354646464646000000000000e0 -:10e3e00000000000000000000000000100c0a83292 -:10e3f0000100000057494e43333430305f30303a2b -:10e4000030300000600000a00800000001000000a3 -:10e41000f8f00545d4840000e80000a004000000e6 -:10e4200000000000ec0000a0080000000000000058 -:10e43000881c00a01600000000000000a01c00a026 -:10e4400000100000000000001c3f00a05800000069 -:10e450000100000057494e43333430305f30303aca -:10e46000303000000000000000000000000000004c -:10e47000000000000001000a3132333435464646c0 -:10e480004646000000000000000000000000000000 -:10e490000000000100c0a8320100000057494e43af -:10e4a000333430305f30303a30300000680000a044 -:10e4b0000800000001000000f8f00545d4840000c9 -:10e4c000a02c00a0f401000000000000f40000a057 -:10e4d0000400000000000000743f00a0580000008d -:10e4e0000100000057494e43333430305f30303a3a -:10e4f00030300000000000000000000000000000bc -:10e50000000000000001000a31323334354646462f -:10e51000464600000000000000000000000000006f -:10e520000000000100c0a8320100000057494e431e -:10e53000333430305f30303a30300000700000a0ab -:10e540000800000001000000f8f00545d484000038 -:10e55000942e00a02c01000000000000cc3f00a081 -:10e56000580000000100000057494e43333430305a -:10e570005f30303a30300000000000000000000042 -:10e5800000000000000000000001000a31323334b6 -:10e5900035464646464600000000000000000000e8 -:10e5a000000000000000000100c0a83201000000cf -:10e5b00057494e43333430305f30303a303000000a -:10e5c000780000a01800000001000000f8f00545e8 -:10e5d000d4840000ffffffff010000009d2e00a07b -:10e5e00009000000f80000a0180000000000000072 -:10e5f000603900a00004000000000000100100a02d -:10e600000100000000000000644000a01c000000a9 -:10e6100001000000ffff040525013d013e016901e5 -:10e620002701480154026a0155026b016c01000088 -:10e63000110100a00100000000000000c02f00a098 -:10e640002400000000000000140100a004000000ed -:10e6500000000000180100a00800000000000000f9 -:10e66000900000a004000000010000000400000071 -:10e670009c4000a01400000000000000200100a049 -:10e680001400000000000000940000a0040000003e -:10e690000100000016000000340100a0040000008a -:10e6a00000000000980000a004000000010000002d -:10e6b00000010000380100a004000000000000007c -:10e6c0003c0100a00100000000000000400100a08b -:10e6d0001000000000000000e42f00a0c0000000b7 -:10e6e00000000000500100a0040000000000000035 -:10e6f000603d00a0a000000001000000244000a038 -:10e7000000000000244000a00900000020000000dc -:10e71000444000a000000000444000a00e020100a0 -:10e7200000000000000000000000000000000000e9 -:10e7300006020200000000000000000000000000cf -:10e7400000000000000000000000000000000000c9 -:10e7500000000000000000000000000000000000b9 -:10e7600000000000000000000000000000000000a9 -:10e770000000000000000000000000000000000099 -:10e780000000000000000000000000000000000089 -:10e79000000000000000000000000000244000a075 -:10e7a00040000000000000009c0000a004000000e9 -:10e7b00001000000603d00a0540100a00100000025 -:10e7c00000000000b04000a00400000000000000b5 -:10e7d000580100a00400000000000000b44000a0a8 -:10e7e0000400000000000000804000a01c000000a9 -:10e7f000000000005c0100a0080000000000000014 -:10e80000a00000a0040000000100000002000000c1 -:10e81000000000a020000000010000000c0000002b -:10e82000000000000100017c1f0c1d000c00000016 -:10e83000140000002037029d4c040000200000a0be -:10e8400010000000010000000c0000002400000087 -:10e850008865043a5c0400000000000022222222a5 -:10e860002222222222222222222222222222222288 +:10dea800684000a01c00000001000000ffff0405fe +:10deb80025013d013e0169012701480154026a011b +:10dec80055026b016c010000a40000a001000000d5 +:10ded80000000000180200a024000000000000005c +:10dee800a80000a00400000000000000ac0000a092 +:10def8000800000000000000300000a0040000003e +:10df08000100000004000000a04000a01400000070 +:10df180000000000b40000a0140000000000000091 +:10df2800340000a0040000000100000016000000fa +:10df3800c80000a00400000000000000380000a095 +:10df4800040000000100000000010000cc0000a057 +:10df58000400000000000000d00000a00100000044 +:10df680000000000d40000a0100000000000000025 +:10df78003c0200a0c000000000000000e40000a077 +:10df88000400000000000000e80000a004000000f9 +:10df980000000000fc0200a040000000000000009b +:10dfa800ec0000a018000000000000003c0000a0e9 +:10dfb8000200000001000000010900003c0300a06d +:10dfc8006e02000000000000a83000a0bc040000a1 +:10dfd8000100000057494e43333430305f30303a47 +:10dfe80030300000000000000000000000000000c9 +:10dff800000000000001000a31323334354646463d +:10e00800464600000000000000000000000000007c +:10e018000000000100c0a8320100000057494e432b +:10e02800333430305f30303a303000004865726544 +:10e0380020697320746865206c697374206f66208a +:10e0480074686520617661696c61626c6520636fd4 +:10e058006d6d616e64733a0a0d0a0d68656c702007 +:10e068003a2053686f777320746869732077696ef4 +:10e07800646f770a0d0a706f776572205b7374613d +:10e0880074655d20536574206368616c65742773db +:10e098002031325620496e76657274657220666545 +:10e0a800656420706f7765722073746174652e20c3 +:10e0b800205468697320636f6d6d616e6420636faf +:10e0c8006e74726f6c7320746865206d61696e2060 +:10e0d800706f7765722072656c61790a2020202044 +:10e0e8002d20417661696c61626c65205b73746197 +:10e0f80074655d20617267756d656e742061726507 +:10e108003a206f6e0a202020202020202020202066 +:10e1180020202020202020202020202020202020f7 +:10e1280020202020202020202020206f66660a0a38 +:10e1380077696669205b636f6d6d616e645d2063ee +:10e148006f6e74726f6c204368616c657444756996 +:10e158006e6f27732057694669206d6f64756c650b +:10e16800207374617465250a202020202d204176b3 +:10e1780061696c61626c65205b636f6d6d616e6473 +:10e188005d20617267756d656e74206172653a20f5 +:10e198006f6e20287475726e73204f4e206d6f64f9 +:10e1a800756c65290a20202020202020202020208e +:10e1b8002020202020202020202020202020202057 +:10e1c800202020202020202020202020206f66666c +:10e1d80020287475726e73204f4646206d6f6475e3 +:10e1e8006c65290a202020202020202020202020a3 +:10e1f8002020202020202020202020202020202017 +:10e2080020202020202020202020202073746174ca +:10e218007573202872657475726e732063757272d7 +:10e22800656e7420737461747573290a0a62617467 +:10e2380074657279205b73656e736f725d207265a9 +:10e248007475726e732063757272656e7420626184 +:10e2580074746572792073656e736f72732072655a +:10e268006164696e67730a202020202d2041766141 +:10e27800696c61626c65205b73656e736f725d209b +:10e28800617267756d656e74206172653a20766f8c +:10e298006c746167650a202020202020202020201f +:10e2a8002020202020202020202020202020202066 +:10e2b800202020202020202020202020206375726c +:10e2c80072656e740a202020202020202020202023 +:10e2d8002020202020202020202020202020202036 +:10e2e800202020202020202020202020736f632041 +:10e2f800287374617465206f66206368617267654e +:10e30800290a20202020202020456d707479205b68 +:10e3180073656e736f725d20617267756d656e747b +:10e32800207072696e747320616c6c2076616c75f4 +:10e3380065730a0a737461747573203a206765748b +:10e348002067656e6572616c2073797374656d20e2 +:10e358007374617475730a0a626f6f746c6f6164a9 +:10e368006572205b636f6d6d616e645d203a20623b +:10e378006f6f746c6f61646572206d6f6465206384 +:10e388006f6e74726f6c0a202020202d20417661f8 +:10e39800696c61626c65205b636f6d6d616e645d55 +:10e3a80020617267756d656e74206172653a2073bd +:10e3b800746172742028656e61626c6520626f6f8b +:10e3c800746c6f6164657220616e64206f70656e35 +:10e3d8007320706f7274290a2020202020202020aa +:10e3e8002020202020202020202020202020202025 +:10e3f8002020202020202020202020202020202015 +:10e4080073746f70202864697361626c657320622d +:10e418006f6f746c6f61646572206966206e6f74cb +:10e428002062757379290a202020202020202020ae +:10e4380020202020202020202020202020202020d4 +:10e448002020202020202020202020202020207371 +:10e458007461746520287072696e747320616374c6 +:10e4680075616c207374617465206f6620746865cb +:10e4780020626f6f746c6f61646572290a0a486163 +:10e488007665206120676f6f6420646179210a00d6 +:10e49800400000a00c00000001000000f8f0054555 +:10e4a800d4840000003100a0ac0500a0980300004f +:10e4b800000000004c0000a0040000000100000063 +:10e4c8009891029d440900a0200600000000000069 +:10e4d800040100a00c00000000000000703e00a035 +:10e4e800580000000100000057494e4333343030d3 +:10e4f8005f30303a303000000000000000000000bb +:10e5080000000000000000000001000a313233342e +:10e518003546464646460000000000000000000060 +:10e52800000000000000000100c0a8320100000047 +:10e5380057494e43333430305f30303a3030000082 +:10e54800500000a00800000001000000f8f0054598 +:10e55800d4840000640f00a008010000000000003f +:10e56800043e00a06c0000000100000057494e4323 +:10e57800333430305f30303a303000000000000073 +:10e588000000000000000000000000000001000a78 +:10e598003132333435464646464600000000000016 +:10e5a80000000000000000000000000100c0a832c8 +:10e5b8000100000057494e43333430305f30303a61 +:10e5c800303000006f70656e776561746865726dd4 +:10e5d80061702e6f72670000643500a000040000af +:10e5e80000000000580000a010000000010000001a +:10e5f800f8f00545d484ffffffffffffffffff0092 +:10e60800100100a01c000000000000006c1000a019 +:10e61800040d000000000000680000a004000000d5 +:10e628000100000000050400c83e00a058000000da +:10e638000100000057494e43333430305f30303ae0 +:10e648003030000000000000000000000000000062 +:10e65800000000000001000a3132333435464646d6 +:10e668004646000000000000000000000000000016 +:10e678000000000100c0a8320100000057494e43c5 +:10e68800333430305f30303a303000006c0000a056 +:10e698000800000001000000f8f00545d4840000df +:10e6a8002c0100a00400000000000000300100a0c0 +:10e6b8000800000000000000701d00a01600000007 +:10e6c80000000000881d00a00010000000000000ed +:10e6d800203f00a0580000000100000057494e43a9 +:10e6e800333430305f30303a303000000000000002 +:10e6f8000000000000000000000000000001000a07 +:10e7080031323334354646464646000000000000a4 +:10e7180000000000000000000000000100c0a83256 +:10e728000100000057494e43333430305f30303aef +:10e7380030300000740000a0080000000100000054 +:10e74800f8f00545d4840000882d00a0f4010000ed +:10e7580000000000380100a00400000000000000d4 +:10e76800783f00a0580000000100000057494e43c0 +:10e77800333430305f30303a303000000000000071 +:10e788000000000000000000000000000001000a76 +:10e798003132333435464646464600000000000014 +:10e7a80000000000000000000000000100c0a832c6 +:10e7b8000100000057494e43333430305f30303a5f +:10e7c800303000007c0000a00800000001000000bc +:10e7d800f8f00545d48400007c2f00a02c0100002f +:10e7e80000000000d03f00a0580000000100000019 +:10e7f80057494e43333430305f30303a30300000c0 +:10e808000000000000000000000000000000000000 +:10e818000001000a31323334354646464646000088 +:10e8280000000000000000000000000000000001df +:10e8380000c0a8320100000057494e43333430303d +:10e848005f30303a30300000840000a0180000002b +:10e8580001000000f8f00545d4840000ffffffff29 +:10e8680001000000852f00a0090000003c0100a065 +:10e878001800000000000000643900a00004000037 +:10e8880000000000540100a001000000000000008a +:10e89800643d00a0a000000001000000284000a086 +:10e8a80000000000284000a009000000200000002f +:10e8b800484000a000000000484000a00e020100ef +:10e8c8000000000000000000000000000000000040 +:10e8d8000602020000000000000000000000000026 +:10e8e8000000000000000000000000000000000020 +:10e8f8000000000000000000000000000000000010 +:10e9080000000000000000000000000000000000ff +:10e9180000000000000000000000000000000000ef +:10e9280000000000000000000000000000000000df +:10e93800000000000000000000000000284000a0c7 +:10e9480040000000000000009c0000a0040000003f +:10e9580001000000643d00a0550100a00100000076 +:10e9680000000000b44000a0040000000000000007 +:10e97800580100a00400000000000000b84000a0fa +:10e988000400000000000000844000a01c000000fb +:10e99800000000005c0100a008000000000000006a +:10e9a800a00000a004000000010000000200000018 +:10e9b800000000a020000000010000000c00000082 +:10e9c800000000000100017c1f0c1d000c0000006d +:10e9d80014000000c838029d4c040000200000a06c +:10e9e80010000000010000000c00000024000000de +:10e9f800d868043a5c0400000000000022222222a9 +:10ea080022222222222222222222222222222222de :020000040000fa :020000041d01dc -:10e87000e8ffbd271400bfaf1000beaf21f0a0031a -:10e88000977b400f0000000021e8c0031400bf8ff9 -:10e890001000be8f1800bd270800e0030000000034 -:10e8a000e0ffbd271c00bfaf1800beaf1400b0af23 -:10e8b00021f0a003211080002000c2a310808293c9 -:10e8c0000e00432c48016010000000008018020078 -:10e8d000029d023ce8e84224211062000000428cc4 -:10e8e000080040000000000020e9019d44e9019d6e -:10e8f000ace9019df8e9019d44ea019d88ea019d8a -:10e90000fcea019d48eb019d94eb019df0eb019d1c -:10e9100050ec019db0ec019d38ed019d98ed019dfd -:10e92000888080af908080af948080a3958080a302 -:10e93000968080a301000224108082a3807b400b7c -:10e94000000000002000c3938a0002241200621419 -:10e95000000000009080828f00a0033c54026324da -:10e96000211843002000c493000064a00100422449 -:10e97000908082af02000224108082a3968083934d -:10e980002000c29326106200ff004230968082a3ce -:10e99000807b400b00000000888080af977b400f99 -:10e9a00000000000807b400b000000002000c293ac -:10e9b000988082a39080828f00a0033c540263243d -:10e9c000211843002000c493000064a001004224e9 -:10e9d000908082af03000224108082a396808393ec -:10e9e0002000c29326106200ff004230968082a36e -:10e9f000807b400b000000009080828f00a0033cd1 -:10ea000054026324211843002000c493000064a032 -:10ea100001004224908082af04000224108082a36f -:10ea20002000c293978082a3968083932000c29394 -:10ea300026106200ff004230968082a3807b400b4c -:10ea4000000000009080828f00a0033c54026324e9 -:10ea5000211843002000c493000064a00100422458 -:10ea6000908082af05000224108082a39680839359 -:10ea70002000c29326106200ff004230968082a3dd -:10ea8000807b400b000000002000c39301000224a3 -:10ea900009006210000000002000c393ff00022460 -:10eaa0000500621000000000977b400f000000008e -:10eab000807b400b000000009080828f00a0033c10 -:10eac00054026324211843002000c493000064a072 -:10ead00001004224908082af06000224108082a3ad -:10eae000968083932000c29326106200ff0042307c -:10eaf000968082a3807b400b000000002000c29320 -:10eb0000998082a39080828f00a0033c54026324ea -:10eb1000211843002000c493000064a00100422497 -:10eb2000908082af07000224108082a39680839396 -:10eb30002000c29326106200ff004230968082a31c -:10eb4000807b400b000000002000c293958082a3d0 -:10eb50009080828f00a0033c54026324211843005c -:10eb60002000c493000064a001004224908082af82 -:10eb700008000224108082a3968083932000c29311 -:10eb800026106200ff004230968082a3807b400bfb -:10eb900000000000888080af2000c293888082af90 -:10eba0008880828f00120200888082af9080828fde -:10ebb00000a0033c54026324211843002000c493a6 -:10ebc000000064a001004224908082af090002246a -:10ebd000108082a3968083932000c2932610620047 -:10ebe000ff004230968082a3807b400b0000000033 -:10ebf0002000c3938880828f25106200888082afb6 -:10ec00008880828f00120200888082af9080828f7d -:10ec100000a0033c54026324211843002000c49345 -:10ec2000000064a001004224908082af0a00022408 -:10ec3000108082a3968083932000c29326106200e6 -:10ec4000ff004230968082a3807b400b00000000d2 -:10ec50002000c3938880828f25106200888082af55 -:10ec60008880828f00120200888082af9080828f1d -:10ec700000a0033c54026324211843002000c493e5 -:10ec8000000064a001004224908082af0b000224a7 -:10ec9000108082a3968083932000c2932610620086 -:10eca000ff004230968082a3807b400b0000000072 -:10ecb0002000c3938880828f25106200888082aff5 -:10ecc0009080828f00a0033c5402632421184300eb -:10ecd0002000c493000064a001004224908082af11 -:10ece0008880828f2d01422c030040140000000018 -:10ecf000977b400f000000008880828f0500401441 -:10ed0000000000000d000224108082a3477b400b0e -:10ed1000000000000c000224108082a396808393e0 -:10ed20002000c29326106200ff004230968082a32a -:10ed3000807b400b00000000968083932000c293ec -:10ed400026106200ff004230968082a39080828f5e -:10ed500000a0033c54026324211843002000c49304 -:10ed6000000064a001004224908082af8c80828fda -:10ed7000010042248c8082af8c80838f8880828fb8 -:10ed80001e006214000000000d000224108082a307 -:10ed9000807b400b00000000968082932000c3938c -:10eda0000500621000000000977b400f000000008b -:10edb000807b400b00000000958082932180400002 -:10edc0006f7c400f0000000021200002212840003d -:10edd000937e400f00000000977b400f0000000072 -:10ede000807b400b00000000977b400f000000007c -:10edf00000000000807b400b0000000000000000cd -:10ee000021e8c0031c00bf8f1800be8f1400b08f14 -:10ee10002000bd270800e00300000000e8ffbd2738 -:10ee20001400bfaf1000beaf21f0a003211080007e -:10ee30001800c2a31800c29321204000287a400f76 -:10ee40000000000021e8c0031400bf8f1000be8f37 -:10ee50001800bd270800e00300000000f8ffbd27f0 -:10ee60000400beaf21f0a003888080af908080af07 -:10ee7000948080a3958080a3968080a301000224c3 -:10ee8000108082a38c8080af998080a3988080a31b -:10ee900021e8c0030400be8f0800bd270800e0037e -:10eea00000000000f0ffbd270c00beaf21f0a00362 -:10eeb000958082932118400002000224030062140e -:10eec000000000000000c0a30000000021e8c00313 -:10eed0000c00be8f1000bd270800e00300000000fa -:10eee000f0ffbd270c00beaf21f0a0032118a00049 -:10eef0002110c0001000c4a31400c3a31800c2a3b3 -:10ef00001000c393010002240500621400000000f9 -:10ef1000a3ff02240000c2a3ca7b400b0000000034 -:10ef200090ff02240000c2a31400c2930100c2a3f8 -:10ef300021e8c0030c00be8f1000bd270800e003cd -:10ef400000000000f0ffbd270c00beaf21f0a003c1 -:10ef50001000c4af2110a0001400c2a30000c0a381 -:10ef60000100c0a3e57b400b000000000100c2933c -:10ef70001000c38f21106200000043900000c29374 -:10ef8000261062000000c2a30100c29301004224c7 -:10ef90000100c2a30100c3931400c2932b106200ae -:10efa000f2ff4014000000000000c29321e8c003fb -:10efb0000c00be8f1000bd270800e0030000000019 -:10efc000f8ffbd270400beaf21f0a003108083939b -:10efd000010002240400621400000000211000005f -:10efe000fb7b400b000000000100022421e8c0036d -:10eff0000400be8f0800bd270800e00300000000e9 -:10f00000d8ffbd272400bfaf2000beaf1c00b0afab -:10f0100021f0a003214080002120c0002118e00041 -:10f020004000c28f2800c8a32c00c5a33000c4a391 -:10f030003400c3a31000c2a33c00c28f2d01422c98 -:10f0400007004014000000004400c28f000040ace4 -:10f0500000a0023c8c034224687c400b00000000ae -:10f0600000a0023c8aff03248c0343a000a0023cc2 -:10f070008c03422401000324010043a000a0023cb1 -:10f080008c0342243000c393020043a000a0023c42 -:10f090008c0342242800c393030043a000a0023c39 -:10f0a0008c0342242c00c393040043a000a0023c24 -:10f0b0008c0342241000c393050043a000a0023c2f -:10f0c0008c0342243400c393060043a03c00c28f4b -:10f0d00002160200ff00433000a0023c8c034224d1 -:10f0e000070043a03c00c28f02140200ff0043301f -:10f0f00000a0023c8c034224080043a03c00c28fc5 -:10f1000002120200ff00433000a0023c8c034224a4 -:10f11000090043a03c00c28fff00433000a0023c26 -:10f120008c0342240a0043a000a0023c970342241f -:10f13000212040003800c58f3c00c68f479c400fff -:10f14000000000003c00c28f0b0050243c00c28f26 -:10f15000ff0042300b004224ff00423000a0033c7d -:10f160008c03642421284000d17b400f0000000064 -:10f170002118400000a0023c8c034224211002020e -:10f18000000043a03c00c28f0c0042242118400024 -:10f190004400c28f000043ac00a0023c8c03422418 -:10f1a00021e8c0032400bf8f2000be8f1c00b08f59 -:10f1b0002800bd270800e00300000000f8ffbd277d -:10f1c0000400beaf21f0a00300a0023c5f02422475 -:10f1d00021e8c0030400be8f0800bd270800e0033b -:04f1e000000000002b +:10ea1800e8ffbd271400bfaf1000beaf21f0a00370 +:10ea2800017c400f0000000021e8c0031400bf8fe4 +:10ea38001000be8f1800bd270800e003000000008a +:10ea4800e0ffbd271c00bfaf1800beaf1400b0af79 +:10ea580021f0a003211080002000c2a31c80829313 +:10ea68000e00432c480160100000000080180200ce +:10ea7800029d023c90ea4224211062000000428c70 +:10ea88000800400000000000c8ea019decea019d72 +:10ea980054eb019da0eb019deceb019d30ec019d39 +:10eaa800a4ec019df0ec019d3ced019d98ed019dcc +:10eab800f8ed019d58ee019de0ee019d40ef019dae +:10eac800cc8080afd48080afd88080a3d98080a349 +:10ead800da8080a3010002241c8082a3ea7b400b19 +:10eae800000000002000c3938a0002241200621470 +:10eaf80000000000d480828f00a0033c3c03632404 +:10eb0800211843002000c493000064a0010042249f +:10eb1800d48082af020002241c8082a3da8083930f +:10eb28002000c29326106200ff004230da8082a3e0 +:10eb3800ea7b400b00000000cc8080af017c400fd6 +:10eb480000000000ea7b400b000000002000c29398 +:10eb5800dc8082a3d480828f00a0033c3c03632422 +:10eb6800211843002000c493000064a0010042243f +:10eb7800d48082af030002241c8082a3da808393ae +:10eb88002000c29326106200ff004230da8082a380 +:10eb9800ea7b400b00000000d480828f00a0033c79 +:10eba8003c036324211843002000c493000064a0a0 +:10ebb80001004224d48082af040002241c8082a376 +:10ebc8002000c293db8082a3da8083932000c29363 +:10ebd80026106200ff004230da8082a3ea7b400bf5 +:10ebe80000000000d480828f00a0033c3c03632413 +:10ebf800211843002000c493000064a001004224af +:10ec0800d48082af050002241c8082a3da8083931b +:10ec18002000c29326106200ff004230da8082a3ef +:10ec2800ea7b400b000000002000c393010002248f +:10ec380009006210000000002000c393ff000224b6 +:10ec48000500621000000000017c400f0000000079 +:10ec5800ea7b400b00000000d480828f00a0033cb8 +:10ec68003c036324211843002000c493000064a0df +:10ec780001004224d48082af060002241c8082a3b3 +:10ec8800da8083932000c29326106200ff0042308e +:10ec9800da8082a3ea7b400b000000002000c293c8 +:10eca800dd8082a3d480828f00a0033c3c036324d0 +:10ecb800211843002000c493000064a001004224ee +:10ecc800d48082af070002241c8082a3da80839359 +:10ecd8002000c29326106200ff004230da8082a32f +:10ece800ea7b400b000000002000c293d98082a379 +:10ecf800d480828f00a0033c3c0363242118430086 +:10ed08002000c493000064a001004224d48082af94 +:10ed1800080002241c8082a3da8083932000c29317 +:10ed280026106200ff004230da8082a3ea7b400ba3 +:10ed380000000000cc8080af2000c293cc8082af5e +:10ed4800cc80828f00120200cc8082afd480828f68 +:10ed580000a0033c3c036324211843002000c49313 +:10ed6800000064a001004224d48082af090002247c +:10ed78001c8082a3da8083932000c293261062004d +:10ed8800ff004230da8082a3ea7b400b00000000db +:10ed98002000c393cc80828f25106200cc8082af84 +:10eda800cc80828f00120200cc8082afd480828f08 +:10edb80000a0033c3c036324211843002000c493b3 +:10edc800000064a001004224d48082af0a0002241b +:10edd8001c8082a3da8083932000c29326106200ed +:10ede800ff004230da8082a3ea7b400b000000007b +:10edf8002000c393cc80828f25106200cc8082af24 +:10ee0800cc80828f00120200cc8082afd480828fa7 +:10ee180000a0033c3c036324211843002000c49352 +:10ee2800000064a001004224d48082af0b000224b9 +:10ee38001c8082a3da8083932000c293261062008c +:10ee4800ff004230da8082a3ea7b400b000000001a +:10ee58002000c393cc80828f25106200cc8082afc3 +:10ee6800d480828f00a0033c3c0363242118430014 +:10ee78002000c493000064a001004224d48082af23 +:10ee8800cc80828f2d01422c03004014000000002a +:10ee9800017c400f00000000cc80828f05004014e8 +:10eea800000000000d0002241c8082a3b17b400bef +:10eeb800000000000c0002241c8082a3da808393e7 +:10eec8002000c29326106200ff004230da8082a33d +:10eed800ea7b400b00000000da8083932000c29395 +:10eee80026106200ff004230da8082a3d480828f2d +:10eef80000a0033c3c036324211843002000c49372 +:10ef0800000064a001004224d48082afd080828fa8 +:10ef180001004224d08082afd080838fcc80828f42 +:10ef28001e006214000000000d0002241c8082a351 +:10ef3800ea7b400b00000000da8082932000c39334 +:10ef48000500621000000000017c400f0000000076 +:10ef5800ea7b400b00000000d980829321804000aa +:10ef6800d97c400f00000000212000022128400029 +:10ef7800fd7e400f00000000017c400f00000000f3 +:10ef8800ea7b400b00000000017c400f00000000fd +:10ef980000000000ea7b400b0000000000000000b9 +:10efa80021e8c0031c00bf8f1800be8f1400b08f6b +:10efb8002000bd270800e00300000000e8ffbd278f +:10efc8001400bfaf1000beaf21f0a00321108000d5 +:10efd8001800c2a31800c29321204000927a400f63 +:10efe8000000000021e8c0031400bf8f1000be8f8e +:10eff8001800bd270800e00300000000f8ffbd2747 +:10f008000400beaf21f0a003cc8080afd48080afd5 +:10f01800d88080a3d98080a3da8080a3010002244d +:10f028001c8082a3d08080afdd8080a3dc8080a399 +:10f0380021e8c0030400be8f0800bd270800e003d4 +:10f0480000000000f0ffbd270c00beaf21f0a003b8 +:10f05800d980829321184000020002240300621420 +:10f06800000000000000c0a30000000021e8c00369 +:10f078000c00be8f1000bd270800e0030000000050 +:10f08800f0ffbd270c00beaf21f0a0032118a0009f +:10f098002110c0001000c4a31400c3a31800c2a309 +:10f0a8001000c39301000224050062140000000050 +:10f0b800a3ff02240000c2a3347c400b0000000020 +:10f0c80090ff02240000c2a31400c2930100c2a34f +:10f0d80021e8c0030c00be8f1000bd270800e00324 +:10f0e80000000000f0ffbd270c00beaf21f0a00318 +:10f0f8001000c4af2110a0001400c2a30000c0a3d8 +:10f108000100c0a34f7c400b000000000100c29327 +:10f118001000c38f21106200000043900000c293ca +:10f12800261062000000c2a30100c293010042241d +:10f138000100c2a30100c3931400c2932b10620004 +:10f14800f2ff4014000000000000c29321e8c00351 +:10f158000c00be8f1000bd270800e003000000006f +:10f16800f8ffbd270400beaf21f0a0031c808393e5 +:10f1780001000224040062140000000021100000b5 +:10f18800657c400b000000000100022421e8c00358 +:10f198000400be8f0800bd270800e003000000003f +:10f1a800d8ffbd272400bfaf2000beaf1c00b0af02 +:10f1b80021f0a003214080002120c0002118e00098 +:10f1c8004000c28f2800c8a32c00c5a33000c4a3e8 +:10f1d8003400c3a31000c2a33c00c28f2d01422cef +:10f1e80007004014000000004400c28f000040ac3b +:10f1f80000a0023c74044224d27c400b00000000b2 +:10f2080000a0023c8aff0324740443a000a0023c2f +:10f218007404422401000324010043a000a0023c1e +:10f22800740442243000c393020043a000a0023caf +:10f23800740442242800c393030043a000a0023ca6 +:10f24800740442242c00c393040043a000a0023c91 +:10f25800740442241000c393050043a000a0023c9c +:10f26800740442243400c393060043a03c00c28fb8 +:10f2780002160200ff00433000a0023c740442243e +:10f28800070043a03c00c28f02140200ff00433075 +:10f2980000a0023c74044224080043a03c00c28f32 +:10f2a80002120200ff00433000a0023c7404422412 +:10f2b800090043a03c00c28fff00433000a0023c7d +:10f2c800740442240a0043a000a0023c7f044224a4 +:10f2d800212040003800c58f3c00c68ff09c400fad +:10f2e800000000003c00c28f0b0050243c00c28f7d +:10f2f800ff0042300b004224ff00423000a0033cd4 +:10f3080074046424212840003b7c400f0000000066 +:10f318002118400000a0023c74044224211002027b +:10f32800000043a03c00c28f0c004224211840007a +:10f338004400c28f000043ac00a0023c7404422485 +:10f3480021e8c0032400bf8f2000be8f1c00b08faf +:10f358002800bd270800e00300000000f8ffbd27d3 +:10f368000400beaf21f0a00300a0023c47034224e2 +:10f3780021e8c0030400be8f0800bd270800e00391 +:04f388000000000081 :020000040000fa :020000041d01dc -:10f1e400b8ffbd273c00b7af3400b5af029d173c54 -:10f1f40000a0153c3800b6af2000b0af4400bfaf4c -:10f204004000beaf3000b4af2c00b3af2800b2afa3 -:10f214002400b1af9878f7262180a0005000a6af53 -:10f22400b440a4ae21b000001800a0af00001192b9 -:10f23400c80020124400bf8f2110f1020100428057 -:10f2440088004230bd00401401001026250002242d -:10f25400a500221604000324000013822188000064 -:10f264001400a3af21f0000004001424ff00733243 -:10f274007900622e1c004014010012262110f302b2 -:10f284000100429004004230e601401000000000fa -:10f294004da0400f2120000200005382029d033c38 -:10f2a40098786324208c027c211063020100429030 -:10f2b40004004230edff401021804002010010267e -:10f2c400000013822110f302010042900400423036 -:10f2d400fbff405401001026ff0073327900622eb8 -:10f2e400e6ff401001001226029d043c801013002a -:10f2f40008f38424211082000000428c080040009e -:10f304000000000098f8019d80f2019d80f2019dab -:10f3140080f2019d80f2019d80f2019d80f2019da9 -:10f3240080f2019d80f2019d80f2019d80f2019d99 -:10f3340080f2019d80f2019d80f2019d80f2019d89 -:10f3440080f2019d80f2019d80f2019d80f2019d79 -:10f3540080f2019d80f2019d80f2019d80f2019d69 -:10f3640080f2019d80f2019d80f2019d80f2019d59 -:10f3740080f2019d80f2019d80f2019d80f2019d49 -:10f3840080f2019d80f2019d80f2019d80f2019d39 -:10f3940080f2019d80f2019d80f2019d80f2019d29 -:10f3a40080f2019d80f2019d80f2019d84f8019d0f -:10f3b40080f2019d80f2019d80f2019d80f2019d09 -:10f3c40080f2019d80f2019d80f2019d80f2019df9 -:10f3d40080f2019d80f2019d80f2019d80f2019de9 -:10f3e40080f2019d80f2019d80f2019d80f2019dd9 -:10f3f40080f2019d80f2019d80f2019d80f2019dc9 -:10f4040080f2019d80f2019d80f2019d80f2019db8 -:10f4140080f2019d80f2019d80f2019d80f2019da8 -:10f4240080f2019d80f2019d80f2019d80f2019d98 -:10f4340080f2019d68f8019d80f2019d80f2019d9a -:10f4440080f2019d80f2019d80f2019d80f2019d78 -:10f4540080f2019d80f2019d80f2019d80f2019d68 -:10f4640080f2019d58f8019d80f2019d80f2019d7a -:10f4740080f2019d80f2019d80f2019d80f2019d48 -:10f4840080f2019d80f2019d80f2019d80f2019d38 -:10f4940010f8019d04f8019d80f2019d80f2019d08 -:10f4a40080f2019df0f7019d04f8019d80f2019d19 -:10f4b40080f2019d68f8019d80f2019d80f2019d1a -:10f4c40050f7019d80f2019d80f2019d80f2019d23 -:10f4d4009cf6019d80f2019d04f8019d80f2019d3e -:10f4e40080f2019d88f5019de49d400fb440a48ef7 -:10f4f4004fff225200001192ffff032444014314e2 -:10f5040000a0033c1800a38f0b1063004400bf8fbe -:10f514004000be8f3c00b78f3800b68f3400b58fe3 -:10f524003000b48f2c00b38f2800b28f2400b18f29 -:10f534002000b08f0800e0034800bd2770a2400ff0 -:10f5440000000000000011923cff20162110f1027f -:10f554004400bf8f1800a28f4000be8f3c00b78fbd -:10f564003800b68f3400b58f3000b48f2c00b38fc1 -:10f574002800b28f2400b18f2000b08f0800e00370 -:10f584004800bd27218040021000132421b0000050 -:10f5940070a2400f00000000e49d400fb440a48e10 -:10f5a400219040002d0002247100421200a0033c6f -:10f5b40021204002212860022130c00277a0400fa0 -:10f5c4001c00a0afff00032476004310b440a58eb6 -:10f5d40030000224d30042120000000021a00000e9 -:10f5e40002a0937221204002212860022130c0022f -:10f5f40077a0400fffff3126208c117c0b002012d6 -:10f6040021a05400e49d400fb440a48e212040006a -:10f61400212860022130c00277a0400f21904000d1 -:10f62400ff000324efff435402a093722120400201 -:10f634002128600277a0400f2130c002ff0003247c -:10f64400e2004310b440a58e1c00a48f23101400c4 -:10f65400f6fec0170ba044001800a38f1400a48f5b -:10f6640001006224ff0042301800a2af040002240b -:10f67400d00082101400a48f02000224d70082104c -:10f684005000a48f0000828c040084245000a4af96 -:10f694008c7c400b000054ac70a2400f00000000b2 -:10f6a4009a00c0135000a38fe49d400fb440a48e71 -:10f6b400ffff032494ff43101800a38f1400401489 -:10f6c40001004324cb7d400b21804002c90062101d -:10f6d400000000000500c017ffff31261000a48fb2 -:10f6e400000082a0010084241000a4af208c117caf -:10f6f4000d00201221804002e49d400fb440a48eee -:10f70400010043240200642c07008014218040027d -:10f714002118e3020000638088006330ebff60502f -:10f724000000438221804002c1fec05700001192b4 -:10f734001800a38f1000a48f01006224ff00423040 -:10f744001800a2af8c7c400b000080a070a2400f78 -:10f7540021804002e49d400fb440a48e21904000db -:10f764002d00022492ff42160800132400a0033c3b -:10f77400b440648c01000224e49d400f1c00a2af3d -:10f7840021904000212040022128600277a0400ff0 -:10f794002130c002ff0003248eff431430000224f2 -:10f7a400b440a58ed1a1400f212040021800a38fa0 -:10f7b4006900601000a0023c211060004400bf8f6b -:10f7c4004000be8f3c00b78f3800b68f3400b58f31 -:10f7d4003000b48f2c00b38f2800b28f2400b18f77 -:10f7e4002000b08f0800e0034800bd270200022477 -:10f7f40000005382218040029c7c400b1400a2af85 -:10f8040021804002657d400b0a0013243500c0139b -:10f814001800a38fffff1024e49d400fb440a48e72 -:10f82400780050101800a38f0500c017ffff312681 -:10f834001000a48f000082a0010084241000a4af53 -:10f84400208c117cf4ff201e000000008c7c400bf7 -:10f85400218040022180400210001324657d400b6a -:10f86400010016241400a48f070094100800022439 -:10f8740000005382218040029c7c400b1400a2af04 -:10f884000100de27ff00de33000053829c7c400b26 -:10f89400218040021800a38fc8ff6014211060006b -:10f8a400b440a38e4400bf8f0c006394ffff022476 -:10f8b400100063300a1003004000be8f3c00b78f75 -:10f8c4003800b68f3400b58f3000b48f2c00b38f5e -:10f8d4002800b28f2400b18f2000b08f0800e0030d -:10f8e4004800bd275000a48f01006224ff0042306d -:10f8f4000000848c1800a2af5000a28f1000a4afa7 -:10f9040004004224067e400b5000a2af5000a48f96 -:10f914000000638c040084241000a3afab7d400b73 -:10f924005000a4afe49d400fb440a48e780003249b -:10f934001a004310580003241a004314b440a58e3f -:10f944001800c01200000000e49d400fb440a48ed3 -:10f95400787d400b21904000b440438c4400bf8f1d -:10f964000c006394ffff0224100063300a100300ac -:10f974004000be8f3c00b78f3800b68f3400b58f7f -:10f984003000b48f2c00b38f2800b28f2400b18fc5 -:10f994002000b08f0800e0034800bd27eaffc01232 -:10f9a400b440a58ed1a1400f21204000797d400ba9 -:10f9b40021a000005000a38f0000628c0400632487 -:10f9c4005000a3af8c7c400b000054acd1a1400f7d -:10f9d40021204002947d400b1c00a48f5000a38f73 -:10f9e4000000628c040063245000a3af8c7c400ba5 -:10f9f400000054a40dfec01701005026ce7d400b1c -:10fa04001800a38fffff0224447d400b0b106300fa -:10fa1400b440658cd1a1400f21204000f07d400b03 -:10fa24001800a28fe49d400fb440a48e87ff621299 -:10fa3400ffff0324f6ff431400a0033c1800a48f27 -:08fa4400f07d400b0b10840063 +:10f38c00b8ffbd273c00b7af3400b5af029d173caa +:10f39c0000a0153c3800b6af2000b0af4400bfafa2 +:10f3ac004000beaf3000b4af2c00b3af2800b2affa +:10f3bc002400b1af3c7bf7262180a0005000a6af03 +:10f3cc00b840a4ae21b000001800a0af000011920c +:10f3dc00c80020124400bf8f2110f10201004280ae +:10f3ec0088004230bd004014010010262500022484 +:10f3fc00a5002216040003240000138221880000bb +:10f40c001400a3af21f0000004001424ff00733299 +:10f41c007900622e1c004014010012262110f30208 +:10f42c000100429004004230e60140100000000050 +:10f43c00f7a0400f2120000200005382029d033ce4 +:10f44c003c7b6324208c027c2110630201004290df +:10f45c0004004230edff40102180400201001026d4 +:10f46c00000013822110f30201004290040042308c +:10f47c00fbff405401001026ff0073327900622e0e +:10f48c00e6ff401001001226029d043c8010130080 +:10f49c00b0f48424211082000000428c080040004b +:10f4ac000000000040fa019d28f4019d28f4019d04 +:10f4bc0028f4019d28f4019d28f4019d28f4019d58 +:10f4cc0028f4019d28f4019d28f4019d28f4019d48 +:10f4dc0028f4019d28f4019d28f4019d28f4019d38 +:10f4ec0028f4019d28f4019d28f4019d28f4019d28 +:10f4fc0028f4019d28f4019d28f4019d28f4019d18 +:10f50c0028f4019d28f4019d28f4019d28f4019d07 +:10f51c0028f4019d28f4019d28f4019d28f4019df7 +:10f52c0028f4019d28f4019d28f4019d28f4019de7 +:10f53c0028f4019d28f4019d28f4019d28f4019dd7 +:10f54c0028f4019d28f4019d28f4019d2cfa019dbd +:10f55c0028f4019d28f4019d28f4019d28f4019db7 +:10f56c0028f4019d28f4019d28f4019d28f4019da7 +:10f57c0028f4019d28f4019d28f4019d28f4019d97 +:10f58c0028f4019d28f4019d28f4019d28f4019d87 +:10f59c0028f4019d28f4019d28f4019d28f4019d77 +:10f5ac0028f4019d28f4019d28f4019d28f4019d67 +:10f5bc0028f4019d28f4019d28f4019d28f4019d57 +:10f5cc0028f4019d28f4019d28f4019d28f4019d47 +:10f5dc0028f4019d10fa019d28f4019d28f4019d49 +:10f5ec0028f4019d28f4019d28f4019d28f4019d27 +:10f5fc0028f4019d28f4019d28f4019d28f4019d17 +:10f60c0028f4019d00fa019d28f4019d28f4019d28 +:10f61c0028f4019d28f4019d28f4019d28f4019df6 +:10f62c0028f4019d28f4019d28f4019d28f4019de6 +:10f63c00b8f9019dacf9019d28f4019d28f4019db8 +:10f64c0028f4019d98f9019dacf9019d28f4019dc8 +:10f65c0028f4019d10fa019d28f4019d28f4019dc8 +:10f66c00f8f8019d28f4019d28f4019d28f4019dd2 +:10f67c0044f8019d28f4019dacf9019d28f4019ded +:10f68c0028f4019d30f7019d8d9e400fb840a48e4b +:10f69c004fff225200001192ffff03244401431438 +:10f6ac0000a0033c1800a38f0b1063004400bf8f15 +:10f6bc004000be8f3c00b78f3800b68f3400b58f3a +:10f6cc003000b48f2c00b38f2800b28f2400b18f80 +:10f6dc002000b08f0800e0034800bd271aa3400f9c +:10f6ec0000000000000011923cff20162110f102d6 +:10f6fc004400bf8f1800a28f4000be8f3c00b78f14 +:10f70c003800b68f3400b58f3000b48f2c00b38f17 +:10f71c002800b28f2400b18f2000b08f0800e003c6 +:10f72c004800bd27218040021000132421b00000a6 +:10f73c001aa3400f000000008d9e400fb840a48e0d +:10f74c00219040002d0002247100421200a0033cc5 +:10f75c0021204002212860022130c00221a1400f4b +:10f76c001c00a0afff00032476004310b840a58e08 +:10f77c0030000224d30042120000000021a000003f +:10f78c0002a0937221204002212860022130c00285 +:10f79c0021a1400fffff3126208c117c0b00201281 +:10f7ac0021a054008d9e400fb840a48e2120400013 +:10f7bc00212860022130c00221a1400f219040007d +:10f7cc00ff000324efff435402a093722120400258 +:10f7dc002128600221a1400f2130c002ff00032428 +:10f7ec00e2004310b840a58e1c00a48f2310140017 +:10f7fc00f6fec0170ba044001800a38f1400a48fb2 +:10f80c0001006224ff0042301800a2af0400022461 +:10f81c00d00082101400a48f02000224d7008210a2 +:10f82c005000a48f0000828c040084245000a4afec +:10f83c00f67c400b000054ac1aa3400f00000000f3 +:10f84c009a00c0135000a38f8d9e400fb840a48e19 +:10f85c00ffff032494ff43101800a38f14004014df +:10f86c0001004324357e400b21804002c900621008 +:10f87c00000000000500c017ffff31261000a48f08 +:10f88c00000082a0010084241000a4af208c117c05 +:10f89c000d002012218040028d9e400fb840a48e96 +:10f8ac00010043240200642c0700801421804002d4 +:10f8bc002118e3020000638088006330ebff605086 +:10f8cc000000438221804002c1fec057000011920b +:10f8dc001800a38f1000a48f01006224ff00423097 +:10f8ec001800a2aff67c400b000080a01aa3400fba +:10f8fc00218040028d9e400fb840a48e2190400084 +:10f90c002d00022492ff42160800132400a0033c91 +:10f91c00b840648c010002248d9e400f1c00a2afe5 +:10f92c0021904000212040022128600221a1400f9b +:10f93c002130c002ff0003248eff43143000022448 +:10f94c00b840a58e7ba2400f212040021800a38f47 +:10f95c006900601000a0023c211060004400bf8fc1 +:10f96c004000be8f3c00b78f3800b68f3400b58f87 +:10f97c003000b48f2c00b38f2800b28f2400b18fcd +:10f98c002000b08f0800e0034800bd2702000224cd +:10f99c000000538221804002067d400b1400a2af70 +:10f9ac0021804002cf7d400b0a0013243500c01388 +:10f9bc001800a38fffff10248d9e400fb840a48e1b +:10f9cc00780050101800a38f0500c017ffff3126d8 +:10f9dc001000a48f000082a0010084241000a4afaa +:10f9ec00208c117cf4ff201e00000000f67c400be4 +:10f9fc00218040022180400210001324cf7d400b57 +:10fa0c00010016241400a48f07009410080002248f +:10fa1c000000538221804002067d400b1400a2afef +:10fa2c000100de27ff00de3300005382067d400b11 +:10fa3c00218040021800a38fc8ff601421106000c1 +:10fa4c00b840a38e4400bf8f0c006394ffff0224c8 +:10fa5c00100063300a1003004000be8f3c00b78fcb +:10fa6c003800b68f3400b58f3000b48f2c00b38fb4 +:10fa7c002800b28f2400b18f2000b08f0800e00363 +:10fa8c004800bd275000a48f01006224ff004230c3 +:10fa9c000000848c1800a2af5000a28f1000a4affd +:10faac0004004224707e400b5000a2af5000a48f83 +:10fabc000000638c040084241000a3af157e400b5f +:10facc005000a4af8d9e400fb840a48e7800032444 +:10fadc001a004310580003241a004314b840a58e92 +:10faec001800c012000000008d9e400fb840a48e7c +:10fafc00e27d400b21904000b840438c4400bf8f06 +:10fb0c000c006394ffff0224100063300a10030002 +:10fb1c004000be8f3c00b78f3800b68f3400b58fd5 +:10fb2c003000b48f2c00b38f2800b28f2400b18f1b +:10fb3c002000b08f0800e0034800bd27eaffc01288 +:10fb4c00b840a58e7ba2400f21204000e37d400be6 +:10fb5c0021a000005000a38f0000628c04006324dd +:10fb6c005000a3aff67c400b000054ac7ba2400fbe +:10fb7c0021204002fe7d400b1c00a48f5000a38f5f +:10fb8c000000628c040063245000a3aff67c400b91 +:10fb9c00000054a40dfec01701005026387e400b07 +:10fbac001800a38fffff0224ae7d400b0b106300e7 +:10fbbc00b840658c7ba2400f212040005a7e400b40 +:10fbcc001800a28f8d9e400fb840a48e87ff621242 +:10fbdc00ffff0324f6ff431400a0033c1800a48f7e +:08fbec005a7e400b0b1084004f :020000040000fa :020000041d01dc -:10fa4c00a8ffbd275400bfaf5000beaf21f0a003ec -:10fa5c005800c4af5c00c5af88bf033ca060628c8b -:10fa6c00010004248473827ca06062acd895400fa2 -:10fa7c00000000003d96400f000000005800c28faf -:10fa8c001900422c7c014010000000005800c28f6d -:10fa9c0080180200029d023cb8fa42242110620038 -:10faac000000428c08004000000000008400029d11 -:10fabc008400029d1cfb019d8400029d08fd019d9c -:10facc008400029d34fd019d8400029d8400029df2 -:10fadc008400029d8400029d8400029d8400029d8e -:10faec008400029db4fd019d8400029d64fe019d75 -:10fafc008400029d14ff019d8400029ddcff019d8a -:10fb0c008400029d1400029d8400029d6400029ded -:10fb1c009f8f400f000000002400c2afc59d400f16 -:10fb2c00000000002800c2af2400c2270000428c55 -:10fb3c001400c2af2800c2270000428c1800c2afcc -:10fb4c00b98f400f000000001c00c2afc48f400fe3 -:10fb5c00000000002000c2af1000c0a37396400f3d -:10fb6c00000000002118400001000224040062146f -:10fb7c00000000001000c293010042341000c2a328 -:10fb8c00dd8f400f0000000021184000010002240e -:10fb9c0004006214000000001000c2930200423402 -:10fbac001000c2a31000c2932c00c2a39c3b400fb8 -:10fbbc00000000002014027c2d00c2a31400c28f90 -:10fbcc002014027c2e00c2a31400c28f0212020069 -:10fbdc001400c2af1400c28f2014027c2f00c2a3e9 -:10fbec001400c28f021202001400c2af1400c28fa4 -:10fbfc002014027c3000c2a31400c28f0212020037 -:10fc0c001400c2af1400c28f2014027c3100c2a3b6 -:10fc1c001c00c28f2014027c3200c2a31c00c28fb5 -:10fc2c00031202001c00c2af1c00c28f2014027c05 -:10fc3c003300c2a32000c28f2014027c3400c2a364 -:10fc4c001c00c28f031202001c00c2af1c00c28f2a -:10fc5c002014027c3500c2a31800c28f2014027c31 -:10fc6c003600c2a31800c28f021202001800c2afe5 -:10fc7c001800c28f2014027c3700c2a31800c28f58 -:10fc8c00021202001800c2af1800c28f2014027cae -:10fc9c003800c2a31800c28f021202001800c2afb3 -:10fcac001800c28f2014027c3900c2a32c00c2277a -:10fcbc0003000424212840000e0006242780400f56 -:10fccc000000000088bf023c2061428c4001427c55 -:10fcdc00ff00423027100200ff004230010042308a -:10fcec00ff00443088bf033c2061628c4429827c35 -:10fcfc00206162ac2180400b000000007396400f25 -:10fd0c00000000003a00c2a33a00c22705000424f8 -:10fd1c0021284000010006242780400f000000002d -:10fd2c002180400b00000000020002243b00c2a313 -:10fd3c005c00c28f000042900600401400000000de -:10fd4c005f96400f000000003b00c0a3657f400b96 -:10fd5c00000000005c00c28f0000439001000224f0 -:10fd6c0007006214000000004b96400f00000000da -:10fd7c00010002243b00c2a3657f400b0000000081 -:10fd8c00020002243b00c2a33b00c227070004244c -:10fd9c0021284000010006242780400f00000000ad -:10fdac002180400b00000000040002243c00c2a390 -:10fdbc005c00c28f0000429006004014000000005e -:10fdcc003c3b400f000000003c00c0a3917f400b67 -:10fddc00000000005c00c28f000043900100022470 -:10fdec0013006214000000009c3b400f0000000058 -:10fdfc0021184000010002240900621000000000dc -:10fe0c001b3a400f000000009c3b400f000000001c -:10fe1c002014027c3c00c2a3917f400b0000000028 -:10fe2c00010002243c00c2a3917f400b00000000a3 -:10fe3c00040002243c00c2a33c00c2270f0004248f -:10fe4c0021284000010006242780400f00000000fc -:10fe5c002180400b000000005c00c28f000043902a -:10fe6c00ba0002241f006214000000005c00c28f64 -:10fe7c000100422400004390ad00022419006214da -:10fe8c00000000005c00c28f02004224000043907e -:10fe9c00be00022413006214000000005c00c28f3c -:10feac000300422400004390ef0002240d00621472 -:10febc0000000000010002243d00c2a33d00c22747 -:10fecc001100042421284000010006242780400f43 -:10fedc000000000016a2400f000000002180400b23 -:10feec00000000003d00c0a33d00c2271100042407 -:10fefc0021284000010006242780400f000000004c -:10ff0c002180400b000000005c00c28f0000439079 -:10ff1c00ba00022425006214000000005c00c28fad -:10ff2c000100422400004390ad0002241f00621423 -:10ff3c00000000005c00c28f0200422400004390cd -:10ff4c00ca00022419006214000000005c00c28f79 -:10ff5c000300422400004390fe00022413006214ac -:10ff6c0000000000010002243e00c2a33e00c22794 -:10ff7c001300042421284000010006245180400f66 -:10ff8c000000000064000424e476400f0000000030 -:10ff9c003c3b400f0000000064000424e476400f5a -:10ffac000000000077a1400f000000003e00c0a33d -:10ffbc003e00c22711000424212840000100062421 -:10ffcc002780400f000000002180400b0000000043 -:10ffdc004000c22721204000080005240c00062404 -:10ffec004d65400f000000004000c227150004249e -:10fffc0021284000080006242780400f0000000044 -:020000041d02db -:10000c002180400b000000004800c0a35c00c48f9e -:10001c00080005240c0006241067400f00000000a7 -:10002c0021184000010002240300621400000000ab -:10003c00010002244800c2a34800c2271700042470 -:10004c0021284000010006242780400f00000000fa -:10005c002180400b00000000039d023cd8904224fc -:10006c0019000424212840000f0006242780400f8b -:10007c00000000000000000021e8c0035400bf8f06 -:10008c005000be8f5800bd270800e00300000000a0 -:10009c00d0ffbd272c00bfaf2800beaf21f0a003be -:1000ac003000c4af3400c5af3800c6af3000c28fcb -:1000bc00ff0042302400c3273400c48f1000a4afcb -:1000cc003800c48f1400a4af1800a0af1c00a3af5d -:1000dc0021200000010005240e00062421384000d8 -:1000ec00007c400f000000002000c2af3c80822743 -:1000fc002120000021284000030006240533400f76 -:10010c00000000002000c38f2400c28f21200000bb -:10011c0021286000213040000533400f0000000012 -:10012c0021e8c0032c00bf8f2800be8f3000bd27f4 -:10013c000800e00300000000d0ffbd272c00bfaf7b -:10014c002800beaf21f0a0033000c4af3400c5af0f -:10015c003800c6af3000c28fff0042302400c327e6 -:10016c003400c48f1000a4af3800c48f1400a4afa7 -:10017c001800a0af1c00a3af212000000100052433 -:10018c000e00062421384000007c400f00000000c7 -:10019c002000c2af3c8082272120400003000524b0 -:1001ac0021300000645e400f000000002000c38f6f -:1001bc002400c28f21206000212840002130000043 -:1001cc00645e400f0000000021e8c0032c00bf8fcc -:1001dc002800be8f3000bd270800e003000000009f -:1001ec00e0ffbd271c00bfaf1800beaf21f0a0037d -:1001fc00030002241000c2a33c808227212040006f -:10020c000300052421300000645e400f0000000054 -:10021c0021e8c0031c00bf8f1800be8f2000bd2733 -:08022c000800e00300000000df -:020000040000fa -:020000041d02db -:100234004a462e636f6d0000426f6f746c6f616489 -:1002440065722072656365697665642061206672f3 -:10025400616d65207769746820696e76616c696484 -:100264002043524300000000426f6f746c6f61645e -:1002740065722048656172746265617420526571ab -:100284007565737400000000424f4f544c4f414455 -:1002940045525f45524153455f424f4f544c4f4185 -:1002a4004445525f464c4153485f5245515545536e -:1002b40054000000424f4f544c4f414445525f4953 -:1002c4004e49545f55504c4f41445f52455155453a -:1002d40053540000424f4f544c4f414445525f47e2 -:1002e40045545f53544154455f5245515545535409 -:1002f40000000000424f4f544c4f414445525f555b -:10030400504c4f41445f46494e49534845445f521f -:100314004551554553540000424f4f544c4f4144ae -:1003240045525f455845435554455f5550475241e2 -:1003340047455f524551554553540000424f4f5471 -:100344004c4f414445525f41424f52545f4f5045d8 -:10035400524154494f4e5f52455155455354000044 -:10036400424f4f544c4f414445525f434845434be1 -:100374005f464c4153485f4649524d575f494e547e -:100384004547524954595f5245515545535400000d -:10039400426f6f746c6f6164657250726f746f63d7 -:1003a4006f6c2064657465637465642061204352d6 -:1003b40043206572726f722e2020436d643a2025ab -:1003c400642c2052784352433a307825782c2045c7 -:1003d400787065637465643a5b307825785d0a00eb -:1003e400426f6f746c6f6164657220496e746572dc -:1003f4006661636520676f696e6720696e746f203c -:10040400616374697665207374617465000000002b -:10041400426f6f746c6f6164657220496e746572ab -:100424006661636520676f696e6720696e746f200b -:10043400457261736520466c6173682073746174de -:1004440065000000426f6f746c6f616465722049cf -:100454006e7465726661636520676f696e67206993 -:100464006e746f204669726d7761726520525820f0 -:10047400737461746500000041626f7274696e6721 -:100484002075706c6f61642c20676f696e672069da -:100494006e746f205354414e444259206d6f64650d -:1004a40000000000426f6f746c6f616465722077a6 -:1004b400696c6c206e6f772075706772616465205b -:1004c400616e64207265626f6f7421210000000008 -:1004d400426f6f746c6f61646572207570677261ce -:1004e400646520726571756573742064656e6965f1 -:1004f400643a204669726d77617265206e6f74206c -:1005040075706c6f6164656400000000466c617313 -:10051400682065726173652066696e6973686564d5 -:100524002e2020426f6f746c6f6164657220496e77 -:100534007465726661636520676f696e6720696eb2 -:10054400746f204163746976652073746174650007 -:10055400466c617368206572617365206572726fa1 -:10056400722e2020426f6f746c6f61646572204933 -:100574006e7465726661636520676f696e67206972 -:100584006e746f2041637469766520737461746559 -:1005940000000000466c6173682065726173652019 -:1005a40061626f72742e2020426f6f746c6f61648d -:1005b400657220496e7465726661636520676f6950 -:1005c4006e6720696e746f20416374697665207369 -:1005d400746174650000000041626f7274696e6733 -:1005e40020466c6173682065726173652c20676fa7 -:1005f400696e6720696e746f205354414e444259aa -:10060400206d6f6465000000426f6f746c6f6164ed -:100614006572204368756e6b20256420737563636f -:1006240065737366756c79207772697474656e206e -:10063400746f20666c6173680a000000426f6f7407 -:100644006c6f6164657220466c61736820777269af -:100654007465206572726f722e2041626f727469c4 -:100664006e6720616e6420676f696e6720696e74bf -:100674006f205354414e4442592073746174650091 -:10068400426f6f746c6f6164657220496e74657239 -:10069400666163652041424f5254494e472055508c -:1006a4004c4f41442e205265636569766564206928 -:1006b4006e76616c6964206368756e6b20696e6424 -:1006c40065782e202052783a205b25645d202d2009 -:1006d40045787065637465643a205b25645d0a003f -:1006e400426f6f746c6f6164657220496e746572d9 -:1006f400666163652e205278206e6577206461748c -:1007040061206368756e6b2e202057726974696e60 -:100714006720746f20666c6173682e2020496e64b4 -:1007240065783a2025640a00426f6f746c6f6164c7 -:10073400657220496e7465726661636520696e76c0 -:10074400616c6964206368756e6b204352432e208c -:1007540052657175657374696e6720726573656e31 -:1007640064206368756e6b20696e646578205b2510 -:10077400645d0a00426f6f746c6f61646572204936 -:100784006e74657266616365206669726d77617205 -:10079400652075706c6f61642066696e6973686545 -:1007a400642e20436865636b20666c6173682069fe -:1007b4006e746567726974792e0000004669726d03 -:1007c4007761726520696e746567726974792063f4 -:1007d4006865636b206661696c65642e2020476fd1 -:1007e400696e67206261636b20746f205354414ebd -:1007f4004442592073746174652e0000426f6f7413 -:100804006c6f616465722061626f7274696e6720d7 -:100814006669726d7761726520646f776e6c6f6163 -:10082400642e2020476f696e67206261636b2074b9 -:100834006f205354414e44425920737461746500cf -:10084400426f6f746c6f6164657220496e74657277 -:10085400666163652045726173696e6720736563c1 -:10086400746f722025307825780a0000426f6f7407 -:100874006c6f6164657220496e746572666163654c -:100884003a204c61737420736563746f72203078fe -:1008940025782065726173656420616674657220d1 -:1008a400256420706f6c6c730a000000426f6f74d3 -:1008b4006c6f6164657220496e746572666163650c -:1008c40020736563746f72203078257820657261b7 -:1008d40073656420616674657220256420706f6c92 -:1008e4006c730a00426f6f746c6f616465722049a7 -:1008f4006e7465726661636520466c617368206519 -:1009040072617365206572726f722e20204d61785a -:1009140020706f6c6c20636f756e742072656163f8 -:10092400686564203a2025642121210a0000000022 -:10093400426f6f746c6f6164657220666c6173687a -:10094400206572726f722e202041626f7274696e1c -:100954006720616e6420676f696e67206261636bf4 -:1009640020746f205354414e44425900426f6f74b7 -:100974006c6f6164657220666c617368207772695c -:1009840074652074696d656f7574206572726f7219 -:100994002e202041626f7274696e6720616e64203c -:1009a400676f696e67206261636b20746f205354b4 -:1009b400414e444259000000436865636b696e67a9 -:1009c40020466c61736820626f6f746c6f6164653c -:1009d40072206461746120696e74656772697479e8 -:0809e4002e2e2e200000000061 -:020000040000fa -:020000041d02db -:1009ec00e0ffbd271c00bfaf1800beaf21f0a00375 -:1009fc002000c4af2400c5af1000c0a31400c0afca -:100a0c001400c2270200033cac07643421284000c8 -:100a1c00b28a400f000000001000c2a31000c28375 -:100a2c0010004014000000002000c28f0500401090 -:100a3c00000000001400c28fffff43302000c28f63 -:100a4c00000043a42400c28f0600401000000000e8 -:100a5c001400c28f02140200ffff43302400c28f27 -:100a6c00000043a41000c28321e8c0031c00bf8f08 -:100a7c001800be8f2000bd270800e0030000000016 -:100a8c00d8ffbd272400bfaf2000beaf21f0a003cc -:100a9c002800c4af1200c0a71400c0af1000c0a340 -:100aac001800c0af1c00c0af2800c48f2128000064 -:100abc001c00062423a0400f000000001200c227d7 -:100acc0021204000212800007b82400f0000000004 -:100adc001200c29782130200ffff4230ff00423027 -:100aec0003004330020002244000621400000000a6 -:100afc001400c2279c14042421284000b28a400f01 -:100b0c00000000001000c2a31000c2833900401482 -:100b1c00000000001400c28f3000401000000000e4 -:100b2c001400c38f0300023c251862001800c22772 -:100b3c00212060002128400008000624e68a400f8e -:100b4c00000000001000c2a31000c2832900401452 -:100b5c00000000001c00c28f1400c2af1400c28f32 -:100b6c00ffff42301400c2af1400c28f17004010b8 -:100b7c00000000001400c38f0300023c2518620023 -:100b8c002800c28f21206000212840001c00062470 -:100b9c00e68a400f000000001000c2a31000c283c0 -:100bac0014004014000000002800c28f0000439481 -:100bbc001200c2970f00621000000000f4ff022424 -:100bcc001000c2a30083400b00000000f4ff0224bd -:100bdc001000c2a30083400b00000000f4ff0224ad -:100bec001000c2a30083400b00000000f4ff02249d -:100bfc001000c2a31000c28321e8c0032400bf8fe1 -:100c0c002000be8f2800bd270800e0030000000074 -:100c1c00d8ffbd272400bfaf2000beaf21f0a0033a -:100c2c002800c4af1200c0a71400c0af1000c0a3ae -:100c3c001800c0af1c00c0af2800c48f21280000d2 -:100c4c001c00062423a0400f000000001200c22745 -:100c5c0021200000212840007b82400f0000000072 -:100c6c001200c29782130200ffff4230ff00423095 -:100c7c000300433002000224400062140000000014 -:100c8c001400c2279c14042421284000b28a400f6f -:100c9c00000000001000c2a31000c28339004014f1 -:100cac00000000001400c28f300040100000000053 -:100cbc001400c38f0300023c251862001800c227e1 -:100ccc00212060002128400008000624e68a400ffd -:100cdc00000000001000c2a31000c28329004014c1 -:100cec00000000001c00c28f1400c2af1400c28fa1 -:100cfc00021402001400c2af1400c28f170040107f -:100d0c00000000001400c38f0300023c2518620091 -:100d1c002800c28f21206000212840001c000624de -:100d2c00e68a400f000000001000c2a31000c2832e -:100d3c0014004014000000002800c28f00004394ef -:100d4c001200c2970f00621000000000f4ff022492 -:100d5c001000c2a36483400b00000000f4ff0224c7 -:100d6c001000c2a36483400b00000000f4ff0224b7 -:100d7c001000c2a36483400b00000000f4ff0224a7 -:100d8c001000c2a31000c28321e8c0032400bf8f4f -:100d9c002000be8f2800bd270800e00300000000e3 -:100dac00e0ffbd271c00bfaf1800beaf21f0a003b1 -:100dbc001000c0a3212000006d8a400f000000002d -:100dcc001000c2a31000c2830e00401400000000eb -:100ddc00ea56400f00000000f256400f00000000e1 -:100dec000200023c0003443421280000c28a400f58 -:100dfc000000000001000224188182af8583400ba3 -:100e0c0000000000000000001000c28321e8c003b5 -:100e1c001c00bf8f1800be8f2000bd270800e00308 -:100e2c0000000000e0ffbd271c00bfaf1800beafe4 -:100e3c0021f0a0031000c0a3ea56400f00000000f0 -:100e4c00212000006d8a400f000000001000c2a39a -:100e5c001000c2830a00401400000000f256400f3c -:100e6c0000000000fe43400f0000000001000224bf -:100e7c00188182af1000c283a583400b00000000d4 -:100e8c00000000001000c28321e8c0031c00bf8fcb -:100e9c001800be8f2000bd270800e00300000000f2 -:100eac00e0ffbd271c00bfaf1800beaf21f0a003b0 -:100ebc002000c4af1000c0a3010002241100c2a383 -:100ecc002000c28f0d004010000000002000c28fd7 -:100edc00000042901100c2a31100c2930500401003 -:100eec00000000001100c2930400422c03004014c7 -:100efc0000000000010002241100c2a38744400f2f -:100f0c00000000001000c2a31000c2832000401497 -:100f1c00000000001100c293212040002347400f25 -:100f2c00000000001000c2a31000c2831b0040147c -:100f3c00000000001100c293212040008e47400f9a -:100f4c00000000001000c2a31000c2831600401461 -:100f5c00000000001100c393020002241c00621068 -:100f6c00000000004344400f000000001000c2a32a -:100f7c001000c2830f004014000000000200022485 -:100f8c00188182af1000c283f983400b000000006f -:100f9c0000000000f183400b000000000000000086 -:100fac00f183400b0000000000000000f183400bb7 -:100fbc0000000000000000007e8a400f00000000ce -:100fcc003857400f00000000f883400b0000000071 -:100fdc00000000001000c28321e8c0031c00bf8f7a -:100fec001800be8f2000bd270800e00300000000a1 -:100ffc00e0ffbd271c00bfaf1800beaf21f0a0035f -:10100c002000c4af1000c0a38c83400f0000000070 -:10101c001000c2a31000c2830500401400000000a1 -:10102c002000c48fab83400f000000001000c2a34f -:10103c001000c28321e8c0031c00bf8f1800be8fb4 -:10104c002000bd270800e00300000000e0ffbd27e2 -:10105c001c00bfaf1800beaf21f0a0032000c4af2e -:10106c00d647400f000000001000c2a31000c2833e -:10107c000b004014000000007e8a400f00000000ae -:10108c001000c2a31000c28308004014000000002e -:10109c003857400f000000002f84400b0000000068 -:1010ac00000000002f84400b000000000000000036 -:1010bc00188180af1000c28321e8c0031c00bf8fd1 -:1010cc001800be8f2000bd270800e00300000000c0 -:1010dc00e0ffbd271c00bfaf1800beaf21f0a0037e -:1010ec008744400f000000001000c2a31000c28310 -:1010fc0021e8c0031c00bf8f1800be8f2000bd2745 -:10110c000800e00300000000f8ffbd270400beaf9c -:10111c0021f0a0031881828f21e8c0030400be8f48 -:10112c000800bd270800e00300000000e0ffbd2719 -:10113c001c00beaf21f0a00388bf033c0061628c91 -:10114c004429027c006162ac88bf033c0061628c64 -:10115c008431027c006162ac88bf033c2061628cec -:10116c00010004248431827c206162ac88bf033c82 -:10117c002061628c4429027c206162ac88bf033cf4 -:10118c004061628c4408027c406162ac88bf033cc5 -:10119c006061628c010004244408827c606162ac52 -:1011ac0088bf033c8061628c01000424c439827cba -:1011bc00806162ac88bf033c4060628c446b027cf3 -:1011cc00406062ac88bf033c8061628c0442027c4c -:1011dc00806162ac88bf033c8061628c8431027c8c -:1011ec00806162ac88bf033c0061628cc418027cd5 -:1011fc00006162ac88bf033c2061628c0100042456 -:10120c00c418827c206162ac88bf033c0061628c94 -:10121c000400027c006162ac88bf033c2061628cdc -:10122c00010004240400827c206162ac88bf033c72 -:10123c00c060628c010004240400827cc06062ac3b -:10124c0088bf033c0061628c8410027c006162ac3c -:10125c0088bf033c2061628c8410027c206162acec -:10126c0088bf033c0061628c0421027c006162ac8b -:10127c0088bf033c2061628c0421027c206162ac3b -:10128c0088bf033c6010628cc418027c601062ac96 -:10129c0088bf033c3010628cc418027c301062ace6 -:1012ac0088bf033c0010628c0400027c001062ac0e -:1012bc0088bf033c9010628c0300042484e6827c7b -:1012cc00901062ac88bf033c9010628c04ce027c00 -:1012dc00901062ac88bf033c6010628c0100042447 -:1012ec00c418827c601062ac80bf023c005a40acd7 -:1012fc0080bf033c005a628c010004244429827c88 -:10130c00005a62ac80bf033c005a628c010004247a -:10131c000442827c005a62ac80bf033c005a628c4f -:10132c00444a027c005a62ac80bf033c005a628c77 -:10133c008431027c005a62acc404023c00b44234d6 -:10134c000000c2af0f00023c404242340400c2af66 -:10135c000400c28f401002000000c38f1b0062000b -:10136c00f401400010180000121000000800c2af79 -:10137c000400c28f401002000000c38f1b006200eb -:10138c00f4014000101000000400401000000000a8 -:10139c000800c28f010042240800c2af0800c28faf -:1013ac000101422c03004014000000000001022443 -:1013bc000800c2af0800c28f0400401000000000fb -:1013cc000800c28fffff42240800c2af0800c28f82 -:1013dc00ff0042302118400080bf023c305a43ac21 -:1013ec0080bf033c005a628c01000424c47b827cc5 -:1013fc00005a62ac88bf033c0061628cc439027c29 -:10140c00006162ac88bf033c8061628c444a027c00 -:10141c00806162ac88bf033c2061628cc439027c61 -:10142c00206162ac88bf033ca061628c444a027ca0 -:10143c00a06162ac88bf033cc060628c8431027cca -:10144c00c06062ac88bf033ce060628c8431027c7b -:10145c00e06062ac88bf033c4060628c01000424f5 -:10146c00c47b827c406062ac88bf033c4060628c71 -:10147c00010004244408827c406062ac81bf023cc1 -:10148c00ffff0334609043ac81bf033c6090628cdf -:10149c004408027c609062ac81bf033c6090628c1b -:1014ac008410027c609062ac88bf033c4060628c0c -:1014bc00010004244408827c406062ac88bf033c79 -:1014cc004060628c010004248410827c406062ac19 -:1014dc0081bf023c009040ac81bf023c109040acfc -:1014ec0081bf023c209040ac81bf023c409040ac9c -:1014fc0081bf033c4090628c01000424049c827cdc -:10150c00409062ac81bf023cf0ff0324209043a0ca -:10151c0081bf033c2090628c010004240462827c15 -:10152c00209062ac81bf033c0090628c01000424cb -:10153c00c47b827c009062ac81bf033c0090628cc7 -:10154c00010004244408827c009062ac88bf033cf8 -:10155c00c060628c0421027cc06062ac88bf033c1a -:10156c00e060628c010004240421827ce06062aca7 -:10157c0088bf033cc060628cc418027cc06062ac43 -:10158c0088bf033cc060628c010004248410827c00 -:10159c00c06062ac88bf033cc060628c4408027cb3 -:1015ac00c06062ac80bf023c005840ac80bf033cc2 -:1015bc000058628c010004244429827c005862acdf -:1015cc0080bf033c0058628c010004240442827cde -:1015dc00005862ac80bf033c0058628c444a027cc9 -:1015ec00005862ac80bf033c0058628c8431027c92 -:1015fc00005862acc404023c00b442340c00c2afcc -:10160c000f00023c404242341000c2af1000c28fa7 -:10161c00401002000c00c38f1b006200f40140005c -:10162c0010180000121000001400c2af1000c28f7e -:10163c00401002000c00c38f1b006200f40140003c -:10164c001010000004004010000000001400c28fb5 -:10165c00010042241400c2af1400c28f0101422cbd -:10166c000300401400000000000102241400c2af6b -:10167c001400c28f04004010000000001400c28f40 -:10168c00ffff42241400c2af1400c28fff0042308f -:10169c002118400080bf023c305843ac80bf033c53 -:1016ac000058628c01000424c47b827c005862ac1c -:1016bc0088bf033c4060628c010004248410827c4f -:1016cc00406062ac88bf033c4060628c0100042423 -:1016dc000400827c406062ac88bf033cc060628cba -:1016ec00c45a027cc06062ac88bf033ce060628c70 -:1016fc00c45a027ce06062ac88bf033cc060628c60 -:10170c00010004240442827cc06062ac88bf033cac -:10171c008060628c8473027c806062ac88bf033c06 -:10172c00a060628c010004248473827ca06062ac93 -:10173c0088bf033c8060628c446b027c806062ac2e -:10174c0088bf033ca060628c01000424446b827c43 -:10175c00a06062ac88bf033cc060628c4429027cf0 -:10176c00c06062ac88bf033ce060628c4429027ca0 -:10177c00e06062ac88bf033c4060628c446b027cce -:10178c00406062ac88bf033c6060628c446b027c3e -:10179c00606062ac88bf033c4060628c0463027c76 -:1017ac00406062ac88bf033c6060628c0463027c66 -:1017bc00606062ac88bf033c4060628cc418027ce1 -:1017cc00406062ac88bf033c6060628cc418027cd1 -:1017dc00606062ac88bf033c4060628c444a027c0f -:1017ec00406062ac88bf033c6060628c444a027cff -:1017fc00606062ac88bf033c4060628c8452027ca7 -:10180c00406062ac88bf033c6060628c8452027c96 -:10181c00606062ac88bf033c4060628cc45a027c3e -:10182c00406062ac88bf033c6060628cc45a027c2e -:10183c00606062ac0100022421e8c0031c00be8f72 -:10184c002000bd270800e00300000000e0ffbd27da -:10185c001c00bfaf1800beaf21f0a0032118800000 -:10186c002110a0002000c3a32400c2a71000c0af09 -:10187c002986400b0000000000a0023c941c43246d -:10188c001000c28f21106200000040a01000c28f17 -:10189c00010042241000c2af1000c28f0a00422c7b -:1018ac00f5ff40140000000000a0023c80ff032460 -:1018bc00941c43a000a0023c941c42242000c3931f -:1018cc00010043a02400c29702120200ffff423025 -:1018dc00ff00433000a0023c941c4224020043a0b1 -:1018ec002400c297ff00433000a0023c941c422409 -:1018fc00030043a000a0023c941c442404000524d3 -:10190c00c687400f0000000021e8c0031c00bf8ff9 -:10191c001800be8f2000bd270800e0030000000067 -:10192c00e0ffbd271c00bfaf1800beaf21f0a00325 -:10193c00211080002400c5af2000c2a301000224a6 -:10194c001400c2af1000c0af5f86400b0000000057 -:10195c0000a0023c941c43241000c28f2110620092 -:10196c00000040a01000c28f010042241000c2af42 -:10197c001000c28f0a00422cf5ff4014000000003a -:10198c0000a0023c80ff0324941c43a000a0023c56 -:10199c00941c42242000c393010043a000a0023ced -:1019ac00941c422481ff0324020043a000a0023cab -:1019bc00941c442402000524c687400f000000003c -:1019cc0000a0023c941c42240200429021204000c2 -:1019dc0000a0023c881c4524020006244288400fcb -:1019ec00000000001400c2af1400c38f01000224d9 -:1019fc0005006210000000002400c28f000040a40b -:101a0c009286400b0000000000a0023c881c429013 -:101a1c0000120200201e027c00a0023c881c422402 -:101a2c00010042902016027c251062002016027cd8 -:101a3c00ffff43302400c28f000043a421e8c00301 -:101a4c001c00bf8f1800be8f2000bd270800e003cc -:101a5c0000000000e0ffbd271c00bfaf1800beafa8 -:101a6c0021f0a0030a000224cc8082af02000224e1 -:101a7c00d08082af05000424001005241686400f88 -:101a8c00000000001f5c02241000c2a71000c297c7 -:101a9c0021200000212840001686400f0000000085 -:101aac0021e8c0031c00bf8f1800be8f2000bd278b -:101abc000800e00300000000e0ffbd271c00bfafe2 -:101acc001800beaf21f0a0030a000224cc8082af24 -:101adc0002000224d08082af0500042400100524eb -:101aec001686400f000000001f5c02241000c2a7e5 -:101afc001000c29721200000212840001686400fbc -:101b0c000000000021e8c0031c00bf8f1800be8f2e -:101b1c002000bd270800e00300000000e0ffbd2707 -:101b2c001c00bfaf1800beaf21f0a00319000224a7 -:101b3c00cc8082af01000224d08082af0500042447 -:101b4c00002805241686400f000000001f5c0224ac -:101b5c001000c2a71000c2972120000021284000cd -:101b6c001686400f0000000021e8c0031c00bf8f48 -:101b7c001800be8f2000bd270800e0030000000005 -:101b8c00e0ffbd271c00bfaf1800beaf21f0a003c3 -:101b9c0028000224cc8082af01000224d08082afc6 -:101bac0005000424004005241686400f00000000a8 -:101bbc001f0c02241000c2a71000c29721200000a5 -:101bcc00212840001686400f0000000021e8c003c9 -:101bdc001c00bf8f1800be8f2000bd270800e0033b -:101bec0000000000e0ffbd271c00bfaf1800beaf17 -:101bfc0021f0a00364000224cc8082af01000224f7 -:101c0c00d08082af0500042400a005341686400f56 -:101c1c00000000001f0402241000c2a71000c2978d -:101c2c0021200000212840001686400f00000000f3 -:101c3c0021e8c0031c00bf8f1800be8f2000bd27f9 -:101c4c000800e00300000000e0ffbd271c00bfaf50 -:101c5c001800beaf21f0a003010002241000c2af97 -:101c6c0021200000008005341686400f0000000083 -:101c7c001000c2af1400c227212000002128400010 -:101c8c004b86400f000000001400c397ff3902245c -:101c9c000400621000000000211000002f87400b90 -:101cac00000000009886400f000000001000c28f5a -:101cbc0021e8c0031c00bf8f1800be8f2000bd2779 -:101ccc000800e00300000000e0ffbd271c00bfafd0 -:101cdc001800beaf21f0a003010004241000c2279d -:101cec00212840004b86400f000000001000c297d6 -:101cfc002016027c21e8c0031c00bf8f1800be8f89 -:101d0c002000bd270800e00300000000e0ffbd2715 -:101d1c001c00bfaf1800beaf21f0a00302000424ca -:101d2c001000c227212840004b86400f0000000005 -:101d3c001000c297c2100200ffff42308010020058 -:101d4c00ffff42302016027c21e8c0031c00bf8f2d -:101d5c001800be8f2000bd270800e0030000000023 -:101d6c00e0ffbd271c00bfaf1800beaf21f0a003e1 -:101d7c00030004241000c227212840004b86400f8a -:101d8c00000000001000c2972016027c21e8c0035e -:101d9c001c00bf8f1800be8f2000bd270800e00379 -:101dac0000000000e0ffbd271c00bfaf1800beaf55 -:101dbc0021f0a003030004241000c22721284000b6 -:101dcc004b86400f000000001000c2972118400005 -:101ddc00d080828f1b006200f401400010180000bc -:101dec00121000002016027c21e8c0031c00bf8fdb -:101dfc001800be8f2000bd270800e0030000000083 -:101e0c00e0ffbd271c00bfaf1800beaf21f0a00340 -:101e1c00040004241000c227212840004b86400fe8 -:101e2c00000000001000c2972016027c21e8c003bd -:101e3c001c00bf8f1800be8f2000bd270800e003d8 -:101e4c0000000000e0ffbd271c00bfaf1800beafb4 -:101e5c0021f0a003040004241000c2272128400014 -:101e6c004b86400f000000001000c2972118400064 -:101e7c00cc80828f1b006200f4014000101800001f -:101e8c00121000002016027c21e8c0031c00bf8f3a -:101e9c001800be8f2000bd270800e00300000000e2 -:101eac00f0ffbd270c00beaf21f0a0038e01022471 -:101ebc000000c2af80bf023c005040ac80bf033c6e -:101ecc000050628c01000424444a827c005062acb5 -:101edc000000c38f80bf023c405043ac80bf033c2a -:101eec000050628c01000424c47b827c005062ace4 -:101efc00948180af988180af21e8c0030c00be8f25 -:101f0c001000bd270800e00300000000f0ffbd2713 -:101f1c000c00beaf21f0a0031000c4af2110a00034 -:101f2c001400c2a3010002240000c2af80bf033c16 -:101f3c000050628c010004240400827c005062acce -:101f4c000000000080bf023c0050428c0100423077 -:101f5c00fcff40140000000080bf023c1050428c7b -:101f6c00000442300500401000000000948180af56 -:101f7c00211000003288400b000000000400c0afac -:101f8c000a88400b000000000400c28f1000c38fb1 -:101f9c0021106200000042902118400080bf023cda -:101fac00505043ac988180af0288400b0000000079 -:101fbc0080bf023c1050428c000442300b00401495 -:101fcc00000000009881828f0c00033c01356334c3 -:101fdc002a18430001006338ff00633001004224db -:101fec00988182af0500601000000000948180afe2 -:101ffc000000c0af0788400b0000000080bf023c0f -:10200c001050428c00404230e9ff401400000000a8 -:10201c000400c28f010042240400c2af1400c39319 -:10202c000400c28f2a104300d7ff401400000000a8 -:10203c0080bf033c0050628c010004248410827c1d -:10204c00005062ac988180af2a88400b00000000e1 -:10205c0080bf023c1050428c000442300b004014f4 -:10206c00000000009881828f0c00033c0135633422 -:10207c002a18430001006338ff006330010042243a -:10208c00988182af0500601000000000948180af41 -:10209c000000c0af2f88400b0000000080bf023c46 -:1020ac000050428c04004230e9ff40140000000054 -:1020bc0001000224948182af0000c28f21e8c0038a -:1020cc000c00be8f1000bd270800e00300000000cc -:1020dc00f8ffbd270400beaf21f0a0032110800043 -:1020ec000800c2a32110000021e8c0030400be8f29 -:1020fc000800bd270800e00300000000f0ffbd272a -:10210c000c00beaf21f0a003211880001400c5af55 -:10211c002110c0001000c3a31800c2a301000224a8 -:10212c000400c2af80bf033c0050628c0100042449 -:10213c000400827c005062ac988180af5d88400bbb -:10214c000000000080bf023c1050428c0004423062 -:10215c000500401000000000948180af21100000a9 -:10216c00fa88400b0000000080bf023c0050428cfb -:10217c0001004230f3ff4014000000001000c39334 -:10218c0080bf023c505043ac988180af7b88400ba1 -:10219c000000000080bf023c1050428c0004423012 -:1021ac000b004014000000009881828f0c00033c4f -:1021bc00013563342a18430001006338ff00633093 -:1021cc0001004224988182af0500601000000000dd -:1021dc00948180af21100000fa88400b00000000b1 -:1021ec0080bf023c1050428c00404230e9ff40144a -:1021fc00000000000000c0afd288400b00000000bf -:10220c0080bf033c0050628c01000424c418827c03 -:10221c00005062ac988180af9e88400b000000009b -:10222c0080bf023c1050428c000442300b00401422 -:10223c00000000009881828f0c00033c0135633450 -:10224c002a18430001006338ff0063300100422468 -:10225c00988182af0500601000000000948180af6f -:10226c0021100000fa88400b0000000080bf023ce7 -:10227c000050428c08004230e9ff4014000000007e -:10228c000000c28f1400c38f2110620080bf033c7a -:10229c006050638cff006330000043a080bf033ca0 -:1022ac000050628c010004244429827c005062acf2 -:1022bc0080bf033c0050628c010004240421827c0a -:1022cc00005062ac988180afca88400b00000000bf -:1022dc0080bf023c1050428c000442300b00401472 -:1022ec00000000009881828f0c00033c01356334a0 -:1022fc002a18430001006338ff00633001004224b8 -:10230c00988182af0500601000000000948180afbe -:10231c0021100000fa88400b0000000080bf023c36 -:10232c000050428c10004230e9ff401400000000c5 -:10233c000000c28f010042240000c2af1800c393fa -:10234c000000c28f2a104300adff401400000000b3 -:10235c0080bf033c0050628c010004248410827cfa -:10236c00005062ac988180aff288400b00000000f6 -:10237c0080bf023c1050428c000442300b004014d1 -:10238c00000000009881828f0c00033c01356334ff -:10239c002a18430001006338ff0063300100422417 -:1023ac00988182af0500601000000000948180af1e -:1023bc0021100000fa88400b0000000080bf023c96 -:1023cc000050428c04004230e9ff40140000000031 -:1023dc0001000224948182af0400c28f21e8c00363 -:1023ec000c00be8f1000bd270800e00300000000a9 -:1023fc00f8ffbd270400beaf21f0a0039481828fab -:10240c0021e8c0030400be8f0800bd270800e003cc -:10241c000000000098ffbd276400bfaf6000beaf96 -:10242c0021f0a003010002241000c2afc404023c3e -:10243c0000b442341400c2af050002241800c2af2d -:10244c0042a4400f000000001c00c2af88bf023c39 -:10245c0040000324042043ac1800c28f010042301a -:10246c00ff0042301d004010000000001400c28f1d -:10247c002000c2af2400c0af2b89400b000000002d -:10248c002400c28f010042242400c2af2000c38f5d -:10249c0036fe023c803c4234211062002000c2af68 -:1024ac002000c38fc901023c81c342342b1062004f -:1024bc00f3ff40100000000042a4400f0000000099 -:1024cc002800c2af88bf023c2400c38f004043ac3d -:1024dc002800c48fc3a3400f000000001800c28f57 -:1024ec000200423068004010000000001400c28f4f -:1024fc002c00c2af2c00c28f3000c2af2c00c38f97 -:10250c00c404023c01b442342b1062000800401495 -:10251c00000000000800023c3400c2af3000c28f43 -:10252c00421002003000c2af5089400b0000000086 -:10253c003400c0af3400c28f3800c2af42a4400f89 -:10254c00000000003c00c2af88bf023c0030428c4f -:10255c000003427cff0042304000c2af4000c28ffb -:10256c00090040140000000088bf023c0010032446 -:10257c00083043ac88bf023c0030428c000842302b -:10258c00fcff4014000000004000c28f4400c2afaa -:10259c0081bf023c30f240ac81bf023c99aa033ca3 -:1025ac005566633430f243ac81bf023c6655033c44 -:1025bc00aa99633430f243ac81bf023c00f0428ce8 -:1025cc005800c2af5800c28fc4a4027c5800c2afde -:1025dc005800c38f3800c28f251062005800c2af5c -:1025ec005800c38f81bf023c00f043ac81bf023c5a -:1025fc0000f0428c5800c2af81bf023c3333033c25 -:10260c003333633430f243ac4400c28f4800c2af62 -:10261c004800c28f130040100000000088bf023c2d -:10262c000030428c0003427cff0042304c00c2afb1 -:10263c004c00c28f100040140000000088bf023c08 -:10264c0000100324083043ac88bf023c0030428c9d -:10265c0000084230fcff401400000000a289400b2f -:10266c000000000088bf023c00100324043043ac7f -:10267c00a289400b00000000000000003c00c48f49 -:10268c00c3a3400f000000001800c28f04004230aa -:10269c000c0040100000000088bf023c0040428c3f -:1026ac005000c2af5000c28f300042345000c2af55 -:1026bc0088bf023c5000c38f004043ace3a3400fe3 -:1026cc00000000001400c28f5400c2af81bf023c56 -:1026dc0000f0428cc00c427cff0042305400c38f8f -:1026ec00061043005400c2af1c00c48fc3a3400f9c -:1026fc00000000002120000081a3400f000000001a -:10270c0081bf033c00f0628c4408027c00f062ac98 -:10271c0081bf023cffff0334609043ac4e84400ffa -:10272c000000000040a4400f000000005a74400f4d -:10273c0000000000559f400f00000000e595400f81 -:10274c0000000000db8e400f000000000aa2400fca -:10275c00000000009d9d400f000000009f30400fc6 -:10276c00000000001c7a400f000000004c95400f48 -:10277c00000000000664400f000000007d96400f32 -:10278c0000000000039d023cdc8d442439a3400f63 -:10279c00000000006464400f00000000ae9d400f7c -:1027ac0000000000cf3d400f000000006c60400fa7 -:1027bc00000000001b3a400f000000002120000028 -:1027cc00900105242e76400f00000000039d023c72 -:1027dc00f88d4424010005244aa3400f000000009a -:1027ec006a9f400f00000000809f400f0000000017 -:1027fc00010002241000c2af2c8a400b0000000024 -:10280c00809f400f00000000a53b400f000000001f -:10281c008c60400f000000009035400f000000005d -:10282c00fc95400f00000000f98e400f00000000e6 -:10283c009296400f00000000ce9d400f000000005b -:10284c00e43d400f000000005c95400f00000000cc -:10285c00212000004175400f0000000011004010c5 -:10286c000000000088bf023c2061428c8001427c49 -:10287c00ff00423027100200ff00423001004230be -:10288c00ff00443088bf033c2061628c8431827c21 -:10289c00206162ac21200000900105242e76400faf -:1028ac00000000001000c38f01000224d4ff62104e -:1028bc00000000001000c28f21e8c0036400bf8f2d -:1028cc006000be8f6800bd270800e0030000000018 -:1028dc00e8ffbd271400bfaf1000beaf21f0a0036e -:1028ec004e84400f0000000021e8c0031400bf8f8d -:1028fc001000be8f1800bd270800e0030000000088 -:10290c00e8ffbd271400bfaf1000beaf21f0a0033d -:10291c00211080001800c2a31800c283212040009f -:10292c00b996400f0000000021e8c0031400bf8fcf -:10293c001000be8f1800bd270800e0030000000047 -:10294c00e8ffbd271400bfaf1000beaf21f0a003fd -:10295c001800c4afce98400f000000000100042402 -:10296c00c598400f000000002110000021e8c003b2 -:10297c001400bf8f1000be8f1800bd270800e003a5 -:10298c0000000000f8ffbd270400beaf21f0a0033b -:10299c002110000021e8c0030400be8f0800bd27f1 -:1029ac000800e00300000000e0ffbd271c00bfafe3 -:1029bc001800beaf21f0a0032000c4af1000c0a3cc -:1029cc002000c48f538a400f000000001000c2a3e7 -:1029dc001000c28321e8c0031c00bf8f1800be8ffb -:1029ec002000bd270800e00300000000e0ffbd2729 -:1029fc001c00bfaf1800beaf21f0a0031000c0a395 -:102a0c00648a400f000000001000c2a31000c283b3 -:102a1c0021e8c0031c00bf8f1800be8f2000bd270b -:102a2c000800e00300000000e8ffbd271400bfaf62 -:102a3c001000beaf21f0a003d556400f00000000df -:102a4c0021e8c0031400bf8f1000be8f1800bd27f3 -:102a5c000800e00300000000f0ffbd270c00beaf33 -:102a6c0021f0a0031000c4af0000c0a30000c2837b -:102a7c0021e8c0030c00be8f1000bd270800e00346 -:102a8c0000000000e8ffbd271400bfaf1000beaf70 -:102a9c0021f0a0031800c4af1800c48f4257400f98 -:102aac000000000021e8c0031400bf8f1000be8f8f -:102abc001800bd270800e00300000000e8ffbd2758 -:102acc001400bfaf1000beaf21f0a0031800c4afbc -:102adc001c00c5af1800c48f1c00c58f5357400f86 -:102aec000000000021e8c0031400bf8f1000be8f4f -:102afc001800bd270800e00300000000e8ffbd2718 -:102b0c001400bfaf1000beaf21f0a0031800c4af7b -:102b1c001c00c5af1800c48f1c00c58f7757400f21 -:102b2c000000000021e8c0031400bf8f1000be8f0e -:102b3c001800bd270800e00300000000e8ffbd27d7 -:102b4c001400bfaf1000beaf21f0a0031800c4af3b -:102b5c001c00c5af2110c0002000c2a72000c297e6 -:102b6c001800c48f1c00c58f213040009b57400fac -:102b7c000000000021e8c0031400bf8f1000be8fbe -:102b8c001800bd270800e00300000000e0ffbd278f -:102b9c001c00bfaf1800beaf21f0a0032000c4afd3 -:102bac002400c5af2800c6af78808297f8ff422476 -:102bbc001600c2a71000c0af1400c0a31600c39724 -:102bcc002800c28f2b10620012004014000000007d -:102bdc002400c38f1000c28f211862002800c28ffe -:102bec00ffff42302000c48f2128600021304000bc -:102bfc00d28a400f00000000ff0043301400c29343 -:102c0c0021106200ff0042301400c2a3288b400b3d -:102c1c00000000002400c38f1000c28f2118620036 -:102c2c001600c2972000c48f21286000213040007c -:102c3c00d28a400f00000000ff0043301400c29302 -:102c4c0021106200ff0042301400c2a31400c283a2 -:102c5c000f004014000000001600c2972800c38f1c -:102c6c00231062002800c2af1600c2971000c38f59 -:102c7c00211062001000c2af1600c2972000c38f53 -:102c8c00211062002000c2aff28a400b000000004d -:102c9c00000000001400c28321e8c0031c00bf8f99 -:102cac001800be8f2000bd270800e00300000000c4 -:102cbc00e8ffbd271400bfaf1000beaf21f0a0038a -:102ccc001800c4af1c00c5af2110c0002000c2a763 -:102cdc002000c2971800c48f1c00c58f2130400003 -:102cec00d857400f0000000021e8c0031400bf8f2c -:102cfc001000be8f1800bd270800e0030000000084 -:102d0c00e0ffbd271c00bfaf1800beaf21f0a00331 -:102d1c002000c4af2400c5af2800c6af78808297ce -:102d2c00f8ff42241600c2a71000c0af1400c0a3c5 -:102d3c001600c3972800c28f2b106200120040149b -:102d4c00000000002400c38f1000c28f2118620005 -:102d5c002800c28fffff42302000c48f2128600062 -:102d6c00213040002f8b400f00000000ff0043304b -:102d7c001400c29321106200ff0042301400c2a361 -:102d8c00858b400b000000002400c38f1000c28f05 -:102d9c00211862001600c2972000c48f2128600001 -:102dac00213040002f8b400f00000000ff0043300b -:102dbc001400c29321106200ff0042301400c2a321 -:102dcc001400c2830f004014000000001600c297cc -:102ddc002800c38f231062002800c2af1600c297d0 -:102dec001000c38f211062001000c2af1600c297f2 -:102dfc002000c38f211062002000c2af4f8b400b0c -:102e0c0000000000000000001400c28321e8c00391 -:102e1c001c00bf8f1800be8f2000bd270800e003e8 -:042e2c0000000000a2 -:020000040000fa -:020000041d02db -:102e30004a462e636f6d00000a0d000025732025a1 -:102e400073202573202573202573000068656c703e -:102e500000000000706f7765720000000a5b7374f9 -:102e60006174655d20706172616d65746572206961 -:102e70007320696e76616c69642e202054797065c8 -:102e8000202768656c702720666f72206d6f7265f1 -:102e900020696e666f0a00006f6e00005475726ed6 -:102ea000696e67206368616c6574277320696e764c -:102eb0006572746572204f4e0a0000006f666600ee -:102ec0005475726e696e67206368616c65742773f0 -:102ed00020696e766572746572204f46460a00005e -:102ee0000a5b73746174655d20706172616d6574f5 -:102ef000657220697320696e76616c69642e20208a -:102f000054797065202768656c702720666f722081 -:102f100076616c69642076616c7565730a000000e7 -:102f20000a00000077696669000000000a5b7661ac -:102f30006c75655d20706172616d65746572206984 -:102f40007320696e76616c69642e202054797065f7 -:102f5000202768656c702720666f72206d6f726520 -:102f600020696e666f0a00005475726e696e672084 -:102f700057694669206d6f64756c65204f4e0a0075 -:102f80005769466920616c726561647920636f6e70 -:102f90006e65637465642e2e2e0a00005475726e81 -:102fa000696e672057694669206d6f64756c65208e -:102fb0004f46462e2e2e20476f6f64627965210a98 -:102fc0000000000057694669206d6f64756c6520cc -:102fd000616c7265616479204f46462e2e2e2074f6 -:102fe0006861742773207765697264210a000000a4 -:102ff000737461747573000057694669206d6f645e -:10300000756c65204f46460a000000005769466906 -:1030100020436f6e6e65637465640a005769466984 -:1030200020446973636f6e6e65637465640a0000a3 -:1030300057694669204552524f520a0057694669fe -:1030400020737461746520556e6b6e6f776e210a04 -:1030500000000000626174746572790025660000ea -:103060004261747465727920566f6c746167653a59 -:1030700020000000256400004261747465727920ac -:103080006368617267652063757272656e743a2059 -:10309000000000006d410a00766f6c746167650086 -:1030a00063757272656e7400736f6300426174744d -:1030b00065727920534f433a20000000250a000032 -:1030c00047656e6572616c207374617475733a0a3a -:1030d00000000000496e76657274657220706f772b -:1030e00065722072656c61793a204f46460a00008d -:1030f000496e76657274657220706f7765722072a2 -:10310000656c61793a204f4e0a000000496e766581 -:103110007274657220706f7765722072656c617968 -:103120003a20554e4b4e4f574e0a0000576946699c -:103130003a204d6f64756c65206973207475726eea -:103140006564204f46460a00576946693a20436f36 -:103150006e6e656374656420746f2041500a0000d0 -:10316000576946693a20446973636f6e6e6563748c -:1031700065642066726f6d2041500a005769466988 -:103180003a204d6f64756c6520696e697469616c75 -:10319000697a6174696f6e206572726f720a0000dd -:1031a000576946693a20556e6b6e6f776e2073745f -:1031b0006174650a00000000252e326600000000e0 -:1031c000560a000025646d410a000000256425258b -:1031d0000a000000626f6f746c6f616465720000ba -:1031e0000a5b636f6d6d616e645d20706172616d0d -:1031f0006574657220697320696e76616c69642eee -:10320000202054797065202768656c702720666fd0 -:1032100072206d6f726520696e666f0a0000000093 -:10322000737461727400000041637469766174693b -:103230006e6720626f6f746c6f616465720a000064 -:1032400073746f7000000000446561637469766197 -:1032500074696e6720626f6f746c6f616465720a67 -:10326000000000000a426f6f746c6f616465722029 -:10327000636c69656e7420636f6e6e6563746564fc -:103280000a0000000a426f6f746c6f6164657220ff -:10329000636c69656e74206e6f7420636f6e6e650b -:1032a000637465640a00000064656275670000006d -:1032b000556e6b6e6f776e20636f6d6d616e640a15 -:0432c0000a00000000 -:020000040000fa -:020000041d02db -:1032c4002148c000214080003b00e0142118a000e8 -:1032d4002b10a600480040102010c27008004010b7 -:1032e400023c09002320020006208800041845003f -:1032f400044846002518830004404800023c0900a5 -:103304001b006700f401e000ffff2b31022c0800d2 -:10331400125000001020000002504b7100340400d1 -:103324002530c5002b60ca001b006700f401e000d3 -:10333400090080512330ca002130c9002b18c9006c -:10334400050060542330ca002b20ca002118c9008c -:103354000b3064002330ca001b00c700f401e000f6 -:10336400ffff0831122000001018000002208b70ab -:10337400001c0300254068002b1804011b00c70033 -:10338400f401e000090060502340040121400901d8 -:103394002b18090105006054234004012b18040173 -:1033a400214809010b402301234004010610480071 -:1033b4000800e003211800002b10a7004700401468 -:1033c4002050ea704800401520000c242b10e50022 -:1033d40005004014231086002b108600cd004054b5 -:1033e40021108000231086002328a7002b208200b0 -:1033f4000800e0032318a4000600c0142010227162 -:10340400010002241b004600f401c0001248000021 -:103414002010227182004054200008242328a9008f -:10342400021c0900ffff27311b00a300f401600008 -:10343400025c080012200000105000000220877077 -:1034440000340a002530cb002b50c4001b00a3001d -:10345400f4016000090040512330c4002130c90048 -:103464002b28c9000500a0542330c4002b50c400ed -:103474002128c9000b30aa002330c4001b00c3005c -:10348400f4016000ffff0831122000001028000042 -:1034940002388770002c05002540a8002b20070166 -:1034a4001b00c300f40160000900805023400701a1 -:1034b400214009012b18090105006054234007012c -:1034c4002b180701214809010b4023012340070160 -:1034d400061048000800e0032118000021108000b5 -:1034e4000800e0032118a00023608a010438470182 -:1034f400065886012558670106688501023c0b00c1 -:103504001b00a701f401e000ffff6f3106108401e6 -:10351400042845012528450002140500043046010d -:10352400127000001018000002c0cf71004c03009c -:10353400254822012b1038011b00a701f401e000eb -:103544000a0040100420440121482b012b102b01b8 -:1035540006004014ffffce252b1038010400405014 -:1035640023483801ffffce2521482b012348380189 -:103574001b002701f401e000ffffa53012680000e2 -:10358400101800000278af710014030025104500e4 -:103594002b184f001b002701f401e0000b00601002 -:1035a40000440e0021104b002b184b000700601440 -:1035b400ffffad252b184f00050060102540a80122 -:1035c400ffffad2521104b0000440e002540a8014b -:1035d4001900060123784f00104800001240000033 -:1035e4002b28e90121182001213820013d00a014d5 -:1035f400121000004300e9512b1882002318e30144 -:10360400233088002b208600231864000460830183 -:103614000610460125104c000800e003061843017b -:10362400234002010448490006300501021c090038 -:103634001b00c300f4016000ffff2731065804019a -:103644000428450025586501022c0b000440440061 -:1036540012500000106000000250477100640c001a -:103664002520ac002b288a001b00c300f401600055 -:103674000600a05023208a00212089002b288900dd -:103684001d00a0102b308a0023208a001b00830019 -:10369400f4016000ffff6b31123000001050000095 -:1036a4000230c770002c0a002528ab002b50a6005e -:1036b4001b008300f40160005bff40512328a60037 -:1036c4002128a9002b20a90057ff80542328a600f5 -:1036d4002b50a6002120a9000b288a000b8d400b3b -:1036e4002328a600234046002318eb002b10480093 -:1036f400808d400b2318620021288900a38d400b84 -:103704000b20a600f8ff605423404600818d400b37 -:10371400211800000800e003000000002110c00090 -:10372400214080003e00e0142118a0002b30a600a8 -:103734004600c010000000002020447008008010e3 -:10374400022c0200232804000628a8000418830081 -:10375400041082002518a30004408800022c0200f3 -:103764001b006500f401a000ffff4930026408005b -:10377400125000001058000002204971003c0b0058 -:103784002538ec002b30e4001b006500f401a00098 -:103794000b00c0102318e4002138e2002b18e200cb -:1037a40006006014ffff4a252b18e4000400601093 -:1037b4002318e400ffff4a252138e2002318e4001f -:1037c4001b006500f401a000ffff08311220000077 -:1037d4001038000002488970003c07002540e800ca -:1037e4002b3009011b006500f401a0000600c01085 -:1037f400214002012b10020103004014ffff842426 -:103804002b48090123208900004c0a00254889001f -:1038140021280000211020010800e0032118a00045 -:103824002b10a70042004054212800002018e37008 -:103834004300601420000a242b28e500c500a014ce -:103844002b208600068e400b0100892c06004014b4 -:1038540020184370010003241b006200f40140009f -:1038640012100000201843707a00605420000824cd -:103874002348a200023c0200ffff4b300100052454 -:103884001b002701f401e000026c08001250000044 -:103894001060000002204b71001c0c0025186d0004 -:1038a4002b3064001b002701f401e0000900c05024 -:1038b40023186400211862002b3062000400c01435 -:1038c400ffff4a252b306400a500c054ffff4a25a2 -:1038d400231864001b006700f401e000ffff0831b7 -:1038e400122000001048000002588b70004c0900a0 -:1038f400254028012b300b011b006700f401e00078 -:103904000600c010214002012b10020103004014e4 -:10391400ffff84242b580b0123208b00004c0a004a -:1039240025488900211020010800e0032118a00087 -:1039340021480000211020010800e0032118a00004 -:103944002350430106104601043867002538470018 -:1039540006484501021407001b002201f40140003f -:10396400ffffec300650440104286500252845017a -:1039740002540500125800001070000002686c71b7 -:1039840000440e0025400a012b500d011b002201aa -:10399400f40140000a004011043066002140070190 -:1039a4002b48070106002015ffff6b252b480d014e -:1039b4000400205123400d01ffff6b252140070126 -:1039c40023400d011b000201f4014000ffffa5305c -:1039d400124800001068000002602c71006c0d0099 -:1039e4002528a5012b50ac001b000201f401400066 -:1039f4000b004051005c0b002128a7002b10a700ee -:103a040006004014ffff29252b10ac000400405091 -:103a1400005c0b00ffff29252128a700005c0b0098 -:103a240025482b01190026012328ac00103800007a -:103a34002b40a70044000015123000003f00a7509f -:103a44000420640021280000211020010800e00364 -:103a54002118a00023400301041062000630050170 -:103a6400023c02001b00c700f401e000ffff4b30e2 -:103a74000428650006480401044064002548250123 -:103a8400026c0900125000001060000002204b710b -:103a940000640c002518ac012b2864001b00c7002f -:103aa400f401e0000b00a050231864002118620008 -:103ab4002b2862000600a014ffff4a252b2864006f -:103ac4000400a05023186400ffff4a252118620057 -:103ad400231864001b006700f401e000ffff293194 -:103ae400122000001060000002308b7000640c0093 -:103af400254889012b2826011b006700f401e000fa -:103b04000b00a050002c0a00214822012b1822018e -:103b140006006014ffff84242b1826010400605063 -:103b2400002c0a00ffff842421482201002c0a00f3 -:103b340023482601218e400b252885002b30860042 -:103b4400c1ffc05021280000ffff2925938e400ba0 -:103b54002128000021280000068e400b01000924c2 -:103b6400358e400b21186200e8ffbd271400bfaf5b -:103b74001000beaf21f0a003211000008c8182afa1 -:103b8400748180af808180af7c8180af848180af7d -:103b940001000224908182af030004246400052400 -:103ba4002e76400f0000000021100000788182afc3 -:103bb4007c8180af1587400f000000000200401494 -:103bc40000000000908180af21e8c0031400bf8f83 -:103bd4001000be8f1800bd270800e003000000009d -:103be400d8ffbd272400bfaf2000beaf21f0a00343 -:103bf400030004244175400f0000000098004010a9 -:103c04000000000081bf033c4090628c010004244a -:103c1400049c827c409062ac81bf033c0090628c27 -:103c24004408027c009062ac0000000081bf023caa -:103c34000090428c01004230fcff40100000000064 -:103c440081bf023c7090428c1000c2af81bf033c24 -:103c54000090628c010004244408827c009062acd1 -:103c64001000c48f03a3400f00000000211840007f -:103c7400039d023c21206000c08d458c3998400f83 -:103c8400000000001400c2af039d023c1400c48f66 -:103c9400c48d458c4c9a400f000000001400c2af44 -:103ca4001400c28f1800c2af039d023c1400c48fdd -:103cb400c88d458c4c9a400f000000001400c2af20 -:103cc4007c81828f88134228060040140000000083 -:103cd4007c8180af1400c28f788182af438f400b08 -:103ce400000000007c81828f010042247c8182af2d -:103cf4007881828f212040001400c58f1594400fd5 -:103d040000000000788182af1400c28f8c8182afe2 -:103d140003000424640005242e76400f00000000f4 -:103d24009081838f010002240b00621400000000c4 -:103d34009487400f00000000748182afff88400f19 -:103d4400000000004600401400000000908180af95 -:103d5400998f400b0000000081bf033c4090628caf -:103d640002000424049c827c409062ac81bf033c2a -:103d74000090628c4408027c009062ac0000000059 -:103d840081bf023c0090428c01004230fcff401095 -:103d94000000000081bf023c7090428c1000c2af52 -:103da40081bf033c0090628c010004244408827c9f -:103db400009062ac1000c48f03a3400f0000000009 -:103dc4001400c2af039d023c1400c48fc08d458c07 -:103dd4003998400f000000001400c2af039d023c5c -:103de4001400c48fcc8d458c4c9a400f0000000009 -:103df4001400c2af039d023c1400c48fd08d458cc7 -:103e04003998400f000000001400c2af1400c28fa4 -:103e14001800c2af8481828ff40142280600401446 -:103e240000000000848180af1000c28f888182afbf -:103e3400978f400b000000008481828f0100422490 -:103e4400848182af8881828f211840001000c28f44 -:103e540021106200888182af1000c28f748182af0a -:103e640021e8c0032400bf8f2000be8f2800bd2797 -:103e74000800e00300000000e0ffbd271c00bfaf06 -:103e84001800beaf1400b0af21f0a0037881908f6a -:103e94007c81828f2120400058a2400f0000000046 -:103ea40021200002212840003998400f0000000022 -:103eb4008c8182af21100000788182af7c8180af39 -:103ec4008c81828f21e8c0031c00bf8f1800be8f35 -:103ed4001400b08f2000bd270800e003000000009c -:103ee400f8ffbd270400beaf21f0a0037c8180afa2 -:103ef400888180af7481828f21e8c0030400be8f63 -:103f04000800bd270800e00300000000f8ffbd27fb -:103f14000400beaf21f0a0038081828f21e8c0039a -:103f24000400be8f0800bd270800e0030000000065 -:103f3400e8ffbd271400bfaf1000beaf21f0a003ff -:103f44008c81828f039d033ca88d6424212840002a -:103f54004aa3400f0000000021e8c0031400bf8ff3 -:103f64001000be8f1800bd270800e0030000000009 -:103f7400f8ffbd270400beaf21f0a0039081828f1b -:103f840021e8c0030400be8f0800bd270800e00339 -:043f94000000000029 -:020000040000fa -:020000041d02db -:103f98002558000000000000c7000000490000008c -:103fa8008e0000009200000055000000db000000b9 -:103fb8001c000000e300000024000000aa0000002c -:103fc8006d00000071000000b6000000380000001d -:103fd800ff00000001000000c600000048000000cb -:103fe8008f0000009300000054000000da00000079 -:103ff8001d000000e200000025000000ab000000ea -:104008006c00000070000000b700000039000000dc -:10401800fe00000002000000c50000004b00000088 -:104028008c0000009000000057000000d90000003c -:104038001e000000e100000026000000a8000000ab -:104048006f00000073000000b40000003a00000098 -:10405800fd00000003000000c40000004a0000004a -:104068008d0000009100000056000000d8000000fc -:104078001f000000e000000027000000a900000069 -:104088006e00000072000000b50000003b00000058 -:10409800fc00000004000000c30000004d00000008 -:1040a8008a0000009600000051000000df000000b8 -:1040b80018000000e700000020000000ae0000002b -:1040c8006900000075000000b20000003c0000001c -:1040d800fb00000005000000c20000004c000000ca -:1040e8008b0000009700000050000000de00000078 -:1040f80019000000e600000021000000af000000e9 -:104108006800000074000000b30000003d000000db -:10411800fa00000006000000c10000004f00000087 -:10412800880000009400000053000000dd0000003b -:104138001a000000e500000022000000ac000000aa -:104148006b00000077000000b00000003e00000097 -:10415800f900000007000000c00000004e00000049 -:10416800890000009500000052000000dc000000fb -:104178001b000000e400000023000000ad00000068 -:104188006a00000076000000b10000003f00000057 -:10419800f800000008000000cf0000004100000007 -:1041a800860000009a0000005d000000d3000000b7 -:1041b80014000000eb0000002c000000a20000002a -:1041c8006500000079000000be000000300000001b -:1041d800f700000009000000ce00000040000000c9 -:1041e800870000009b0000005c000000d200000077 -:1041f80015000000ea0000002d000000a3000000e8 -:104208006400000078000000bf00000031000000da -:10421800f60000000a000000cd0000004300000086 -:1042280084000000980000005f000000d10000003a -:1042380016000000e90000002e000000a0000000a9 -:10424800670000007b000000bc0000003200000096 -:10425800f50000000b000000cc0000004200000048 -:1042680085000000990000005e000000d0000000fa -:1042780017000000e80000002f000000a100000067 -:10428800660000007a000000bd0000003300000056 -:10429800f40000000c000000cb0000004500000006 -:1042a800820000009e00000059000000d7000000b6 -:1042b80010000000ef00000028000000a600000029 -:1042c800610000007d000000ba000000340000001a -:1042d800f30000000d000000ca00000044000000c8 -:1042e800830000009f00000058000000d600000076 -:1042f80011000000ee00000029000000a7000000e7 -:10430800600000007c000000bb00000035000000d9 -:10431800f20000000e000000c90000004700000085 -:10432800800000009c0000005b000000d500000039 -:1043380012000000ed0000002a000000a4000000a8 -:10434800630000007f000000b80000003600000095 -:10435800f10000000f000000c80000004600000047 -:10436800810000009d0000005a000000d4000000f9 -:1043780013000000ec0000002b000000a500000066 -:10438800620000007e000000b90000003700000055 -:04439800f000000031 -:020000040000fa -:020000041d02db -:10439c00e8ffbd271400bfaf1000beaf21f0a00393 -:1043ac0088bf033ce060628c0421027ce06062ac5c -:1043bc0080bf023cff000324205843ac00000000e7 -:1043cc0080bf023c1058428c01004230fcff401070 -:1043dc000000000080bf023cff000324205843acc7 -:1043ec000000000080bf023c1058428c010042309b -:1043fc00fcff40100000000080bf023cff000324c3 -:10440c00205843ac0000000080bf023c1058428c86 -:10441c0001004230fcff40100000000080bf023c55 -:10442c00ff000324205843ac0000000080bf023c76 -:10443c001058428c01004230fcff4010000000007c -:10444c0080bf023c205840ac0000000080bf023c02 -:10445c001058428c01004230fcff4010000000005c -:10446c0080bf023c2058428c2016027ce08182a73f -:10447c00e0818287001202002016027ce08182a774 -:10448c0080bf023cff000324205843ac0000000016 -:10449c0080bf023c1058428c01004230fcff40109f -:1044ac000000000080bf023c2058428cffff4330cc -:1044bc00e0818287ffff423021106200ffff423013 -:1044cc002016027ce08182a788bf033ce060628cee -:1044dc00010004240421827ce06062ace0818387cb -:1044ec00fcff0224241062002016027ce08182a7cb -:1044fc00e081838700540224040062100000000055 -:10450c00211000007591400b000000006400042491 -:10451c00e476400f0000000088bf033ce060628c32 -:10452c000421027ce06062ac80bf023cff000324eb -:10453c00205843ac0000000080bf023c1058428c55 -:10454c0001004230fcff40100000000080bf023c24 -:10455c00ff000324205843ac0000000080bf023c45 -:10456c001058428c01004230fcff4010000000004b -:10457c0080bf023c205840ac0000000080bf023cd1 -:10458c001058428c01004230fcff4010000000002b -:10459c0080bf023c205840ac0000000080bf023cb1 -:1045ac001058428c01004230fcff4010000000000b -:1045bc0088bf033ce060628c010004240421827cef -:1045cc00e06062ac0100022421e8c0031400bf8f3c -:1045dc001000be8f1800bd270800e003000000008b -:1045ec00e0ffbd271c00bfaf1800beaf21f0a00339 -:1045fc001000c0a788bf033ce060628c0421027ce1 -:10460c00e06062ac80bf023c205840ac000000006f -:10461c0080bf023c1058428c01004230fcff40101d -:10462c000000000080bf023c2058428c1000c2a742 -:10463c001000c287001202001000c2a780bf023c0b -:10464c00ff000324205843ac0000000080bf023c54 -:10465c001058428c01004230fcff4010000000005a -:10466c0080bf023c2058428cffff43301000c297a1 -:10467c0021106200ffff42301000c2a788bf033c2c -:10468c00e060628c010004240421827ce06062ac56 -:10469c001000c397f8ff0224241062001000c2a778 -:1046ac001000c2872120400058a2400f00000000db -:1046bc0021184000039d023c21206000f090458ca5 -:1046cc004c9a400f000000001400c2af039d023c46 -:1046dc001400c48ff490458c3998400f00000000f2 -:1046ec001400c2af1400c28f21e8c0031c00bf8f9e -:1046fc001800be8f2000bd270800e003000000005a -:10470c00f8ffbd270400beaf21f0a003e081828733 -:10471c0021e8c0030400be8f0800bd270800e00399 -:10472c0000000000f8ffbd270400beaf21f0a0037d -:10473c00211080000800c2a30800c2930500422c7f -:10474c000400401400000000ffff0224ee91400b17 -:10475c00000000000800c39302000224040062144d -:10476c00000000000f000224ee91400b000000003e -:10477c000800c3930300022404006214000000002c -:10478c0010000224ee91400b000000000800c393bf -:10479c000400022404006214000000001200022431 -:1047ac00ee91400b00000000feff022421e8c00344 -:1047bc000400be8f0800bd270800e00300000000c5 -:1047cc00e0ffbd271c00bfaf1800beaf21f0a00357 -:1047dc002118a0002110c0002c00c7af2000c4a3da -:1047ec002400c3a32800c2a3a54e400f0000000064 -:1047fc001000c2a31000c283360040140000000059 -:10480c002400c29321204000cc91400f00000000f6 -:10481c001100c2a31100c283280040040000000054 -:10482c002000c2930b004014000000001100c29342 -:10483c00211840002800c29321206000212840004c -:10484c001d48400f000000001000c2a33392400b23 -:10485c00000000002000c393010002240b0062142e -:10486c00000000001100c293211840002800c293e0 -:10487c0021206000212840005248400f0000000019 -:10488c001000c2a33392400b000000002000c39321 -:10489c00020002240a006214000000001100c293fe -:1048ac00212040002c00c58f8748400f00000000dd -:1048bc001000c2a33392400b000000000000000067 -:1048cc00074f400f000000001000c2a33992400bac -:1048dc0000000000000000001000c28321e8c003ab -:1048ec001c00bf8f1800be8f2000bd270800e003fe -:1048fc0000000000f8ffbd270400beaf21f0a003ac -:10490c000800c4af2110000021e8c0030400be8fd2 -:10491c000800bd270800e00300000000e8ffbd27e9 -:10492c001400bfaf1000beaf21f0a003211880000f -:10493c002110a0001800c3a31c00c2a31800c3932d -:10494c001c00c2932120000021286000213040006f -:10495c0021380000f391400f0000000021e8c00353 -:10496c001400bf8f1000be8f1800bd270800e00395 -:10497c0000000000e8ffbd271400bfaf1000beaf61 -:10498c0021f0a003211880002110a0001800c3a35f -:10499c001c00c2a31800c3931c00c2930100042482 -:1049ac00212860002130400021380000f391400f95 -:1049bc000000000021e8c0031400bf8f1000be8f60 -:1049cc001800bd270800e00300000000e8ffbd2729 -:1049dc001400bfaf1000beaf21f0a0032110800067 -:1049ec001c00c5af1800c2a31800c2930200042417 -:1049fc0021284000213000001c00c78ff391400f8c -:104a0c000000000021e8c0031400bf8f1000be8f0f -:104a1c001800bd270800e00300000000e8ffbd27d8 -:104a2c001400bfaf1000beaf21f0a0031800c4af3c -:104a3c002110a0001c00c2a31c00c2931800c48f3c -:104a4c0021284000aa48400f0000000021e8c003c4 -:104a5c001400bf8f1000be8f1800bd270800e003a4 -:104a6c0000000000e0ffbd271c00bfaf1800beaf68 -:104a7c0021f0a003211880002110a0002800c6af4f -:104a8c002000c3a32400c2a71000c0a32000c3931e -:104a9c006c0002241c006214000000001400c227e9 -:104aac0021204000212800000400062423a0400ff0 -:104abc00000000001400c2272800c48f21284000e9 -:104acc0004000624213800009452400f000000001e -:104adc001000c2a31000c2830b00401400000000a1 -:104aec00f480828f0800401000000000f480828f58 -:104afc001400c393212060001500c393212860008b -:104b0c0009f840000000000021e8c0031c00bf8f22 -:104b1c001800be8f2000bd270800e0030000000035 -:104b2c00e0ffbd271c00bfaf1800beaf21f0a003f3 -:104b3c002000c4af1000c0a32000c28f030040109f -:104b4c00000000002000c28ff48082af0400042417 -:104b5c00029d023c704a4524ff52400f00000000a9 -:104b6c001000c28321e8c0031c00bf8f1800be8f49 -:104b7c002000bd270800e00300000000d0ffbd2787 -:104b8c002c00bfaf2800beaf21f0a0033000c4af93 -:104b9c002000c0a33000c28f21204000a19c400ff8 -:104bac0000000000ffff4230010042242200c2a797 -:104bbc002200c2971000a0af1400a0af1800a0af45 -:104bcc0004000424670005243000c68f21384000ff -:104bdc000750400f000000002000c2a32000c28339 -:104bec0021e8c0032c00bf8f2800be8f3000bd27ea -:104bfc000800e00300000000b8ffbd274400bfaf71 -:104c0c004000beaf21f0a0032000c0a32400c227a7 -:104c1c00212040003024400f000000002000c2a3df -:104c2c002000c28317004014000000002400c2972b -:104c3c0082130200ffff4230ff004230030043307a -:104c4c00020002240d006214000000001000a0af4e -:104c5c001400a0af1800a0af0400042469000524c0 -:104c6c0021300000213800000750400f00000000e8 -:104c7c002000c2a32493400b00000000f4ff022488 -:104c8c002000c2a32000c28321e8c0034400bf8fd0 -:104c9c004000be8f4800bd270800e0030000000064 -:104cac00d0ffbd272c00bfaf2800beaf21f0a00362 -:104cbc002000c0a31000a0af1400a0af1800a0af3c -:104ccc00040004246a00052421300000213800006f -:104cdc000750400f000000002000c2a32000c28338 -:104cec0021e8c0032c00bf8f2800be8f3000bd27e9 -:104cfc000800e00300000000b8ffbd274400bfaf70 -:104d0c004000beaf21f0a0032000c0a32400c227a6 -:104d1c00212040003024400f000000002000c2a3de -:104d2c002000c28317004014000000002400c2972a -:104d3c0082130200ffff4230ff0042300300433079 -:104d4c00020002240d006214000000001000a0af4d -:104d5c001400a0af1800a0af0400042468000524c0 -:104d6c0021300000213800000750400f00000000e7 -:104d7c002000c2a36493400b00000000f4ff022447 -:104d8c002000c2a32000c28321e8c0034400bf8fcf -:104d9c004000be8f4800bd270800e0030000000063 -:020000040000fa -:020000041d02db -:104dac00d8ffbd271400b0af2400bfaf2000b3afb5 -:104dbc001c00b2af1800b1af440080042180800009 -:104dcc006e0082280e0040100b00822879004010e3 -:104ddc00039d023cf888422480800400218002025a -:104dec000000028e2400bf8f2000b38f1c00b28ff6 -:104dfc001800b18f1400b08f0800e0032800bd2705 -:104e0c00eb51023c1f85423418008200c39704000a -:104e1c00102800006666133c431905002318720025 -:104e2c0080100300001903002110430080180200b9 -:104e3c0021104300231082002014027c6766732625 -:104e4c0018005300c317020010180000039d113cfa -:104e5c0083180300231062002014027c09004224f2 -:104e6c00f888312680100200211051004c00248e4d -:104e7c004c9a400f0000458c180013022120400072 -:104e8c0010980000839813002390720240101200b7 -:104e9c00c090120021905200238012022084107cba -:104eac0080801000218811024c9a400f0000258e42 -:104ebc002400bf8f2000b38f1c00b28f1800b18f5d -:104ecc001400b08f0800e0032800bd2723800400e5 -:104edc002084107c6e00022a1d004010eb51023c15 -:104eec000b00022a51004054039d023c6666023cb2 -:104efc006766422418000202c31f10001010000045 -:104f0c00831002002310430040200200c01802004e -:104f1c0021188300238003022024027c09008424ae -:104f2c002014107c039d033c2c89632480200400f6 -:104f3c008010020021208300211043000000848c8b -:104f4c004c9a400f0000458c7d93400b2400bf8f82 -:104f5c001f85423418000202c3971000102800006d -:104f6c006666133c43190500231872008010030079 -:104f7c000019030021104300801802002110430087 -:104f8c00231002022014027c67667326180053005b -:104f9c00c317020010180000039d113c8318030076 -:104fac00231062002014027c090042249c93400bc5 -:104fbc002c8931266666023c676642241800820002 -:104fcc00c31f0400101000008310020023104300c4 -:104fdc0040200200c0180200211883002380030225 -:104fec002014027c090042242084107c039d033c85 -:104ffc00f888632480100200808010002180030256 -:10500c00211043000000058e4c9a400f0000448c88 -:10501c002400bf8f2000b38f1c00b28f1800b18ffb -:10502c001400b08f0800e0032800bd272c8942240f -:10503c0080801000218002027c93400b0000028ec5 -:020000040000fa -:020000041d02db -:10504c000080013c2628a100c24d0400ff0029313c -:10505c00c25d0500ff006b310080073c004204007c -:10506c00254007010052050025504701ffff2d2563 -:10507c00fe00a12d6100201000000000ffff6d2537 -:10508c00fe00a12d770020100000000023602b01f2 -:10509c000d00800500000000200081290300201471 -:1050ac00000000001500001002000a2425300a0040 -:1050bc0006508a0104688a011000a6110000000045 -:1050cc000e00001002004a3525480b0023600c002e -:1050dc0020008129030020140000000007000010ac -:1050ec000200082425300800064088010468880165 -:1050fc000200a611000000000200083524608700a1 -:10510c00266885011000a0050000000021400a015e -:10511c002b680a011700a0110000000001000d31de -:10512c000200a011000000000200083542400800f7 -:10513c0001002925ff0001240e00211500000000ac -:10514c000c000010000008242b680a010400a011b8 -:10515c0023400a0123400800030000102660870149 -:10516c005000001100000000203006712348260179 -:10517c000440c8000e002019000000008000082523 -:10518c0080000d2d21482d01026a08000100ad316f -:10519c0023400d014040080042420800c06d090048 -:1051ac0025400d0125100c010800e0030000000053 -:1051bc00010006242330c9002000c12c3900201026 -:1051cc00000000000080013c2540010120000d245e -:1051dc002368a6010448a801020020110640c8005b -:1051ec00010008350000092480000d25e3ffa1050e -:1051fc0000000000e1ff0010010009240e00201542 -:10520c000000000021400801050000110000000012 -:10521c0020600c7123482c0198ff00100440880179 -:10522c00ff0001240f006111000000000080013c10 -:10523c001800a11400000000216808011b00a01533 -:10524c0000000000ff0001241400611500000000a4 -:10525c00266885001500a005000000000d00001058 -:10526c0000000000080060150000000021504a01f9 -:10527c000a0040110000000020604c7123586c01a2 -:10528c0082ff001004508a0121684a010700a01512 -:10529c0000000000c4ff001025100500c2ff001024 -:1052ac0025100400c0ff001000000224beff0010f7 -:0852bc00c0ff023c00000000ed -:020000040000fa -:020000041d02db -:1052c400d0ffbd272c00bfaf2800beaf21f0a00344 -:1052d4003000c4af3400c5aff0808293010042387f -:1052e400ff00423003004010000000001595400ffd -:1052f40000000000ffff02241000c2af3000c28f84 -:105304001400c2af1400c28f21004010000000003e -:105314001800c0afe094400b000000001400c28fde -:10532400000042901c00c2af1000c38f1c00c28f4b -:10533400261062002000c2af1000c28f021a0200c1 -:105344002000c28fff00443000a0023c80200400f3 -:1053540060394224211082000000428c2610620031 -:105364001000c2af1400c28f010042241400c2af67 -:105374001800c28f010042241800c2af1800c38f66 -:105384003400c28f2b106200e4ff401400000000c0 -:105394001000c28f271002001000c2af1000c28f8d -:1053a40021e8c0032c00bf8f2800be8f3000bd272a -:1053b4000800e00300000000e0ffbd271c00bfafb1 -:1053c4001800beaf21f0a0032000c4af2110a0003c -:1053d4002400c2a32400c2931000c2aff0808293c1 -:1053e40001004238ff00423003004010000000007a -:1053f4001595400f000000002000c38f1000c28fdd -:10540400261062001400c2af2000c28f021a0200ec -:105414001400c28fff00443000a0023c802004002e -:1054240060394224211082000000428c2610620060 -:105434002000c2af2000c28f21e8c0031c00bf8f30 -:105444001800be8f2000bd270800e0030000000004 -:10545400e8ffbd271400beaf21f0a0030000c0afd9 -:105464004195400b000000000000c28f0800c2af4d -:105474000400c0af3395400b000000000800c28f49 -:1054840001004230ff0042300900401000000000db -:105494000800c28f42180200b8ed023c2083423457 -:1054a400261062000800c2af3095400b00000000d7 -:1054b4000800c28f421002000800c2af0400c28f6d -:1054c400010042240400c2af0400c28f0800422c31 -:1054d400eaff40140000000000a0023c0000c38f5b -:1054e4008018030060394224211062000800c38f31 -:1054f400000043ac0000c28f010042240000c2af90 -:105504000000c28f0001422cd7ff401400000000ad -:1055140001000224f08082a321e8c0031400be8f9e -:105524001800bd270800e00300000000e8ffbd27c5 -:105534001400bfaf1000beaf21f0a003e88180af1c -:105544000a0004243600023c80ee45342e76400fd7 -:105554000000000021e8c0031400bf8f1000be8fbc -:105564001800bd270800e00300000000e8ffbd2785 -:105574001400bfaf1000beaf21f0a0032120000033 -:105584006995400f0000000021e8c0031400bf8f9c -:105594001000be8f1800bd270800e00300000000c3 -:1055a400e8ffbd271400bfaf1000beaf21f0a00379 -:1055b4001800c4afe881828f01000324280043103f -:1055c40000000000020003243d004310000000001e -:1055d4005c004014000000001800c28f0600401058 -:1055e4000000000001000324150043100000000027 -:1055f400d295400b000000000a0004244175400fbe -:10560400000000000c0040100000000088bf033cb4 -:10561400e060628c01000424c45a827ce06062acc5 -:105624000a000424a00f05242e76400f0000000079 -:1056340001000224e88182af9795400b000000002e -:105644000a0004243600023c80ee45342e76400fd6 -:105654000000000000000000d295400b0000000094 -:105664001800c28f000042240200422c3400401073 -:10567400000000000a0004244175400f00000000ef -:105684000c0040100000000088bf033ce060628c06 -:10569400c45a027ce06062ac0a0004241200023c9a -:1056a400804f45342e76400f000000000200022493 -:1056b400e88182af00000000d295400b000000009a -:1056c4001800c28f060040100000000001000324ef -:1056d4000f00431000000000d295400b00000000b2 -:1056e4000a0004244175400f00000000100040101f -:1056f400000000003c3b400f000000006400042454 -:10570400e476400f0000000077a1400f0000000085 -:105714000a0004243600023c80ee45342e76400f05 -:1057240000000000e88180afce95400b000000002f -:105734000000000000000000d295400b00000000b3 -:105744000000000021e8c0031400bf8f1000be8fca -:105754001800bd270800e00300000000e8ffbd2793 -:105764001400bfaf1000beaf21f0a0030100042459 -:105774006995400f0000000021e8c0031400bf8faa -:105784001000be8f1800bd270800e00300000000d1 -:10579400e8ffbd271400bfaf1000beaf21f0a00387 -:1057a40088bf033c2061628cc439027c206162acf6 -:1057b40088bf033ca061628c444a027ca06162ac55 -:1057c40002000224708182af01000424d376400fca -:1057d4000000000021e8c0031400bf8f1000be8f3a -:1057e4001800bd270800e00300000000e8ffbd2703 -:1057f4001400bfaf1000beaf21f0a00388bf023c6d -:105804005060428c008042300c00401400000000c4 -:105814007081828f0500401400000000039d023c4b -:10582400608e442439a3400f0000000001000224cc -:10583400708182af1996400b000000007081838f45 -:10584400010002240500621400000000039d023cd4 -:10585400748e442439a3400f00000000708180af8f -:1058640001000424c276400f00000000211840000b -:10587400010002241100621400000000010004244d -:105884004175400f000000000c00401000000000b3 -:1058940088bf033c2061628cc439027c206162ac05 -:1058a40088bf033ca061628c444a027ca06162ac64 -:1058b40001000424d376400f0000000004000424f7 -:1058c4004175400f0000000003004010000000007c -:1058d4005f96400f0000000021e8c0031400bf8f52 -:1058e4001000be8f1800bd270800e0030000000070 -:1058f400e8ffbd271400bfaf1000beaf21f0a00326 -:1059040004000424c0a805347876400f0000000089 -:1059140021e8c0031400bf8f1000be8f1800bd27fc -:105924000800e00300000000e8ffbd271400bfaf3b -:105934001000beaf21f0a00388bf033c2061628c3d -:1059440001000424c439827c206162ac0100042477 -:10595400c80005242e76400f000000000100022438 -:1059640021e8c0031400bf8f1000be8f1800bd27ac -:105974000800e00300000000e8ffbd271400bfafeb -:105984001000beaf21f0a00388bf033ca061628c6d -:1059940001000424444a827ca06162ac0100042416 -:1059a400c80005242e76400f0000000001000224e8 -:1059b40021e8c0031400bf8f1000be8f1800bd275c -:1059c4000800e00300000000f8ffbd270400beaf9c -:1059d40021f0a0037081828f2014027c21e8c0038f -:1059e4000400be8f0800bd270800e003000000008b -:1059f400e8ffbd271400bfaf1000beaf21f0a00325 -:105a0400a48180af00a0023ca02c442421280000e3 -:105a1400f401062423a0400f000000000700042422 -:105a2400c80005242e76400f0000000021e8c003c2 -:105a34001400bf8f1000be8f1800bd270800e003bc -:105a440000000000e8ffbd271400bfaf1000beaf88 -:105a540021f0a003293d400f000000000400401481 -:105a640000000000a48180afb396400b000000004a -:105a7400a481828f14004010000000000700042459 -:105a84004175400f0000000021184000010002246d -:105a94000d0062140000000000a0023ca02c43246e -:105aa400a481828f2120600021284000ec3c400f1b -:105ab40000000000a48180af07000424c80005246e -:105ac4002e76400f0000000021e8c0031400bf8fb1 -:105ad4001000be8f1800bd270800e003000000007e -:105ae400e8ffbd271400bfaf1000beaf21f0a00334 -:105af400211080001800c2a3293d400f00000000bf -:105b04000500401400000000a48180af21100000b3 -:105b1400e096400b00000000a481838f00a0023cab -:105b2400a02c4224211062001800c393000043a05b -:105b3400a481828f01004224a48182afa481838f37 -:105b4400f4010224080062140000000000a0023cda -:105b5400a02c422421204000f4010524ec3c400ff9 -:105b640000000000a48180af07000424c8000524bd -:105b74002e76400f000000000100022421e8c0033b -:105b84001400bf8f1000be8f1800bd270800e0036b -:105b940000000000e0ffbd271c00bfaf1800beaf2f -:105ba4001400b0af21f0a0032000c4af293d400f82 -:105bb400000000000500401400000000a48180af34 -:105bc40021100000fd96400b000000002000d08f43 -:105bd4002000c48fa19c400f00000000212000027f -:105be40021284000ec3c400f00000000010002248a -:105bf40021e8c0031c00bf8f1800be8f1400b08fb3 -:105c04002000bd270800e00300000000f8ffbd27c6 -:105c14000400beaf21f0a003a481828f04004014cd -:105c240000000000010002240e97400b0000000059 -:105c34002110000021e8c0030400be8f0800bd2726 -:085c44000800e003000000006d -:020000040000fa -:020000041d02db -:105c4c004a462e636f6d0000486f737420495020d4 -:105c5c0069732025642e25642e25642e25640d0a77 -:105c6c0000000000486f7374204e616d65206973ed -:105c7c002025730d0a000000426f6f746c6f616415 -:105c8c0065722073657276657220737461727465c7 -:105c9c006400000042696e64204661696c656400b2 -:105cac00736f636b6574202564206c697374656e07 -:105cbc00204661696c65642e204572726f723a20c1 -:105ccc0025640a004269656e76656e75652061759e -:105cdc00206368616c6574210a4c65206368616c93 -:105cec006574207061726c6520656e20616e676ce6 -:105cfc0061697320636f6d6d65204d722e20506548 -:105d0c0070696e0a496620796f75206e656564202e -:105d1c0068656c702e2e2e20747970652068656c09 -:105d2c00700a0a005465726d696e616c20636c694f -:105d3c00656e7420636f6e6e65637465640000003d -:105d4c005379736c6f672057656c636f6d650a00d0 -:105d5c004e6574776f726b20636c69656e7420632b -:105d6c006f6e6e656374656400000000426f6f7443 -:105d7c006c6f6164657220636c69656e7420636f0f -:105d8c006e6e656374656400536f636b6574202578 -:105d9c0064203a20416363657074204661696c65c8 -:105dac00640a00005465726d696e616c20636c69e5 -:105dbc00656e7420646973636f6e6e65637465647d -:105dcc00000000004e6574776f726b20636c696520 -:105ddc006e7420646973636f6e6e656374656400c2 -:105dec00426f6f746c6f6164657220636c69656e71 -:105dfc007420646973636f6e6e6563746564000010 -:105e0c0057692d466920636f6e6e65637465640d0a -:105e1c000000000057692d466920646973636f6e3a -:105e2c006e65637465640d00776966695f63623ad9 -:105e3c00204d324d5f574946495f524553505f5094 -:105e4c00524f564953494f4e5f494e464f2e0d0007 -:105e5c00776966695f63623a2050726f766973691d -:105e6c006f6e206661696c65642e0d004368616c11 -:105e7c00657456696c6c65456d6172640000000058 -:105e8c004576696e72756465333000006572726fa9 -:045e9c007200000090 -:020000040000fa -:020000041d02db -:105ea000e8ffbd271400beaf21f0a0031800c4af67 -:105eb0000400c0af0000c0a32f98400b00000000fa -:105ec0000200c0a70400c28f021202000400c2af89 -:105ed0000100c0a3c697400b000000000100c29360 -:105ee0001800c38f21106200000042900800c2a376 -:105ef0000800c3832e0002240b0062100000000083 -:105f00000800c28308004010000000000100c29396 -:105f1000010042240100c2a30100c2930400422cec -:105f2000eeff4014000000000100c2930500401085 -:105f3000000000000100c393040002240400621466 -:105f400000000000211000003498400b0000000009 -:105f50001800c28f000042900800c2a31800c28f30 -:105f6000010042241800c2af0100c2930200422c7b -:105f700026004014000000000800c3833000022403 -:105f80002500621400000000211000003498400b2e -:105f9000000000000800c2833000422805004014c1 -:105fa000000000000800c2833a00422804004014a8 -:105fb00000000000211000003498400b0000000099 -:105fc0000200c29740100200801802002110430016 -:105fd000ffff43300800c283ffff42302110620000 -:105fe000ffff4230d0ff42240200c2a71800c28f38 -:105ff000000042900800c2a31800c28f0100422492 -:106000001800c2af0798400b00000000000000001d -:106010000798400b00000000000000000100c29340 -:106020002b100200ff0042300100c393ffff6324e6 -:106030000100c3a3d7ff4014000000000200c29774 -:106040000001422c04004014000000002110000058 -:106050003498400b000000000200c29700160200b6 -:106060000400c38f251062000400c2af0800c28381 -:1060700005004014000000000000c3930300022448 -:1060800008006214000000000800c28308004010ed -:10609000000000000000c393030002240400621407 -:1060a00000000000211000003498400b00000000a8 -:1060b0000000c293010042240000c2a30000c2936a -:1060c0000400422c7eff4014000000000400c28f38 -:1060d00021e8c0031400be8f1800bd270800e003ac -:0460e00000000000bc -:020000040000fa -:020000041d02db -:1060e40000800b3cc2450400ff000831c255050086 -:1060f400ff004a31003a04002538eb00004a05004d -:1061040025482b012670850024586e01ffff0e25bb -:10611400fe00c12d3f00201000000000ffff4e25af -:10612400fe00c12d53002010000000002b08e900e0 -:106134000300201400000000423807000100082575 -:1061440082630900f40180011b00ec0012200000ae -:1061540010300000ff3f2d311900a4011228000067 -:10616400803306002b70c5000400c0112330c50025 -:10617400ffff84242130c9002b70c900f401800181 -:106184001b00cc0012380000103000001900a701d9 -:1061940012280000803306002b70c5000400c011d3 -:1061a4002330c500ffffe7242130c9002b70c9004c -:1061b400807304002138ee000200c010003907008b -:1061c4000100e7347e000e242370ca0121400e0131 -:1061d400ffff0e25fe00c12d34002010000000003a -:1061e4008000e7248000ee2c21400e01027207009b -:1061f4000100ce312338ee0040380700423a070050 -:10620400c07508002538ee002510eb000800e003f7 -:106214000000000008000015000000002138e7001d -:106224000500e010000000002060ec7023400c0129 -:10623400baff00100438870104004815000000006c -:10624400217029012f00c01100000000ff0001246b -:1062540008004111000000001200001100000000bd -:106264002170e7002700c015000000002200001084 -:10627400000000000800401500000000214829012a -:106284001d0020110000000020602c7123504c01df -:10629400a6ff001004488901217029011900c015c6 -:1062a40000000000d9ff001025100b001200001d93 -:1062b4000000000001000c24236088012000812dcf -:1062c400f8ff20100000000020000e242370cc01f1 -:1062d4000440c70102000011063887010200e734b8 -:1062e400000008248000ee24bdffc105000000006a -:1062f400bbff001001000824807f013cc3ff001095 -:1063040025106101c1ff0010c0ff023c0000000025 -:020000040000fa -:020000041d02db -:10631400f8ffbd270400beaf21f0a0030800c4affe -:1063240021e8c0030400be8f0800bd270800e00375 -:1063340000000000e8ffbd271400bfaf1000beaf8f -:1063440021f0a00364000424c598400f000000005d -:106354000a000424c598400f000000000a00042429 -:10636400c598400f0000000021e8c0031400bf8f4f -:106374001000be8f1800bd270800e00300000000d5 -:10638400f8ffbd270400beaf21f0a0032110800058 -:106394000800c2a30800c293d0ff42240800c2a38d -:1063a4000800c2930a00422c0400401000000000c0 -:1063b4000800c2930099400b000000000800c2933b -:1063c400200042340800c2a30800c293cfff422435 -:1063d4000800c2a30800c2930600422c0600401025 -:1063e400000000000800c2930a004224ff0042306b -:1063f4000099400b00000000ff00022421e8c003c4 -:106404000400be8f0800bd270800e0030000000060 -:10641400e0ffbd271c00bfaf1800beaf21f0a003f2 -:106424002000c4af2400c5af2110c0002800c2a3bf -:106434003e99400b000000002400c28f00004290ef -:106444002400c38f010063242400c3af2120400033 -:10645400e198400f000000001000c2a31000c29396 -:106464001000422c0400401400000000f1ff02243c -:106474004799400b000000001000c2930011020075 -:10648400ff0043302000c28f000043a02400c28fcd -:10649400000042902400c38f010063242400c3af92 -:1064a40021204000e198400f000000001000c2a32a -:1064b4001000c2931000422c04004014000000009d -:1064c400f1ff02244799400b000000002000c28f16 -:1064d400000043901000c29321106200ff0043307b -:1064e4002000c28f000043a02000c28f010042247c -:1064f4002000c2af2800c2932b100200ff004230dc -:106504002800c393ffff63242800c3a3caff4014d9 -:10651400000000002110000021e8c0031c00bf8f10 -:106524001800be8f2000bd270800e0030000000013 -:020000040000fa -:020000041d02db -:106534002510850084004010211000000100022471 -:1065440046008210c2470500ffff02246500821046 -:106554000a00022467008210f6ff02245a00821007 -:10656400ffff0224090000114019050041008010ba -:106574000080023c23200400232805002b10040083 -:106584002310a2002128400040190500c21604006f -:1065940025106200c21e0500251043003900401476 -:1065a400801905008216040025106200821e050071 -:1065b4002510430012004054990002241a000224ba -:1065c400c23f040040180500403004002518e300d1 -:1065d4002120c0002128600080310300821e0400b5 -:1065e4002518c3008236050025186600f4ff6010e4 -:1065f400ffff42247f004224460040180100032488 -:10660400070083300a006010ff004328c000837c29 -:106614000300842421208300c21e040004006010af -:10662400ff0043284220040001004224ff004328c5 -:1066340034006010c2200400c005837c0200605056 -:106644002110000000b0847c00420800251048009e -:10665400c01502000800e00325104400bbffa0544d -:10666400ffff0224001208007f0042340800e00308 -:10667400c0150200c0ffa214232004002120000042 -:106684000080053c1a000224c037050042180400ab -:106694002518c30001008730423005002520e3009f -:1066a4002128c000c21e0400403106002518c30082 -:1066b400c236050025186600f3ff60140100422469 -:1066c4007f99400b7f004224a6ffa2140012080009 -:1066d40082004234c01502002000033c0800e0039d -:1066e400251043009bffa4540a0002249b99400bed -:1066f4000012080099ffa054f6ff0224b599400b3c -:106704000012080000120800ff0042340800e003f1 -:10671400c0150200231062001b00432808006050cb -:10672400212000002318020004186400061044000d -:106734002b200300252082008199400b01000224b4 -:106744009399400b211000000800e00300000000b2 -:020000040000fa -:020000041d02db -:10675400e8ffbd271400beaf21f0a0031800c4afaa -:106764001c00c5af2000c6af2400c7af2000c28ff5 -:106774000c00c2af1c00c28f0000428c0800c2afe4 -:106784001c00c28f08004010000000002000c28fcf -:1067940005004010000000002400c28f1000422cad -:1067a400040040100000000021100000479a400b34 -:1067b400000000000000c0a3429a400b000000004b -:1067c4000800c28f0200c2a3640002240100c2a315 -:1067d4000200c2932e004010000000000400c0a379 -:1067e400300002240300c2a3049a400b00000000fe -:1067f4000300c293010042240300c2a30200c39316 -:106804000100c293231062000200c2a30200c393da -:106814000100c2932b106200f5ff4010000000003d -:106824000100c3930a0002241b006200f40140002b -:1068340010180000121000000100c2a30300c3934b -:106844003000022404006214000000000400c2931b -:106854000a004010000000000300c3832000c28f20 -:10686400000043a02000c28f010042242000c2afd8 -:106874000400c293010042240400c2a30100c29395 -:10688400d7ff4014000000002b9a400b00000000ca -:106894002000c28f30000324000043a02000c28fd8 -:1068a400010042242000c2af0000c393030002246d -:1068b40008006214000000002000c28f000040a005 -:1068c4002000c28f010042242000c2af3c9a400b3a -:1068d400000000002000c28f2e000324000043a00b -:1068e4002000c28f010042242000c2af0800c28fe2 -:1068f400021202000800c2af0000c2930100422449 -:106904000000c2a30000c2930400422cacff401458 -:10691400000000000c00c28f21e8c0031400be8fe9 -:0c6924001800bd270800e0030000000080 -:020000040000fa -:020000041d02db -:10693000c23d0400ff00e730c24d0500ff002931d1 -:1069400000800a3c003204002530ca0000420500e5 -:1069500025400a012660850024504c01ffffec24ed -:10696000fe00812d2100201000000000ffff2c25db -:10697000fe00812d36002010000000001900c80024 -:106980001258000002006011103000000100c634ef -:106990000300c0040000000040300600ffffe724b1 -:1069a00082ff2c252138ec00ffffec24fe00812d16 -:1069b0003a002010000000008000c6248000cc2c8b -:1069c0002138ec000262060001008c312330cc003b -:1069d0004030060042320600c06507002530cc007a -:1069e0002510ca000800e003000000000d00e014bc -:1069f000000000002130c6000500c01000000000ab -:106a00002058cb702338eb00d8ff0010043066010b -:106a1000ff0001241f0021110000000015000010dc -:106a2000000000002160c6001a0080150000000070 -:106a300004002015000000002160080115008011ed -:106a400000000000ff0001240f00211500000000dd -:106a50000a00201500000000214008010500001177 -:106a60000000000020580b7123482b01c3ff0010c9 -:106a700004406801dbff001025100a0021600801b6 -:106a80000400801500000000807f013cd5ff00104d -:106a900025104101d3ff0010c0ff023cfaffe01cab -:106aa0000000000001000b24235867012000612d25 -:106ab000f0ff20100000000020000c2423608b0158 -:106ac000043886010200e010063066010200c63478 -:106ad000000007248000cc24b7ff810500000000df -:0c6ae000b5ff00100100072400000000ba -:020000040000fa -:020000041d02db -:106aec0025408500030008310300001121108000af -:106afc00380000100000aa900000aa8c0101093c8b -:106b0c0001012935c07909002340490124400f01b6 -:106b1c000700001124600a01050088110000000024 -:106b2c000000a5240000aa902a0000100000842474 -:106b3c000400ab8c00008aac2340690124400f0197 -:106b4c000700001124600b010500881100000000f3 -:106b5c000400a5240000aa901e0000100400842448 -:106b6c000800aa8c04008bac2340490124400f017f -:106b7c000700001124600a010500881100000000c4 -:106b8c000800a5240000aa9012000010080084241c -:106b9c000c00ab8c08008aac2340690124400f0127 -:106bac000700001124600b01050088110000000093 -:106bbc000c00a5240000aa90060000100c008424f0 -:106bcc001000aa8c0c008bac10008424ceff00109b -:106bdc001000a5240300401500008aa00800e00363 -:106bec00000000000100ab900300601501008ba0b9 -:106bfc000800e003000000000200aa90030040150a -:106c0c0002008aa00800e003000000000300ab9023 -:106c1c000300601503008ba00800e00300000000d7 -:106c2c000400aa900300401504008aa00800e003a9 -:106c3c00000000000500ab900300601505008ba060 -:106c4c000800e003000000000600aa9003004015b5 -:106c5c0006008aa00800e003000000000700ab90cb -:106c6c000300601507008ba00800e0030000000083 -:106c7c000800aa9008008424d6ff00100800a52460 -:020000040000fa -:020000041d02db -:106c8c00d8ffbd271000b0af00a0103c8040028e92 -:106c9c002400bfaf2000b4af1c00b3af1800b2afdc -:106cac00090040101400b1af2400bf8f2000b48f36 -:106cbc001c00b38f1800b28f1400b18f1000b08f6e -:106ccc000800e0032800bd2700a0133c5c01638e84 -:106cdc004200605000a0033c00a0143c6001828e76 -:106cec00390040100000043c828f030082970200a0 -:106cfc0000e0447c00e0657c0200313a0200523a2c -:106d0c000a18b1000a109200218860008da3400f70 -:106d1c00219040000000438c0400428c2b20230265 -:106d2c00240080102110620000a0043ca4308424b4 -:106d3c0000e0847c2b206400dbff80142188600041 -:106d4c002b185102050060142b1822022b1842023a -:106d5c000500605400a0023c2b182202d2ff6010e8 -:106d6c002190400000a0023ca430422442170200b3 -:106d7c00050003241b0043140400032400a0023c60 -:106d8c0025882202259042025c0171ae600192ae10 -:106d9c00804011ae2400bf8f2000b48f1c00b38f35 -:106dac001800b28f1400b18f1000b08f0800e003f0 -:106dbc002800bd272b202202e2ff80542b18510201 -:106dcc004e9b400b00a0043c00a0023c000284241b -:106ddc00c04042243d9b400b21104400399b400b8a -:106dec00c0406324070043140080023c2588220223 -:106dfc00251042025c0171ae600182ae689b400bb3 -:106e0c00804011ae218840025c0172ae689b400b41 -:046e1c00804011aef3 -:020000040000fa -:020000041d02db -:106e20000c008294d0ffbd27010042301800b0afa3 -:106e30002c00bfaf2800b4af2400b3af2000b2af26 -:106e40001c00b1af218080003e004010040080ace7 -:106e500000a0143c54018282130040501000068ea2 -:106e600000a0113c603d3126a00033269f9b400bc3 -:106e7000020112240b003352540180a20c0022960e -:106e800002014230fbff525414003126212020021f -:106e9000eca0400f14003126f9ff33560c00229667 -:106ea000540180a21000068e1700c0100e00049638 -:106eb000ea9b400f0800058e30004010040002ae2f -:106ec000ffff0324350043500c0002960800038e98 -:106ed000ffff4224000003ae040002ae0100642460 -:106ee00000006290000004ae2c00bf8f2800b48f19 -:106ef0002400b38f2000b28f1c00b18f1800b08f18 -:106f00000800e0033000bd27040000ae1000a527f4 -:106f1000ea9b400f010006240100032412004314e1 -:106f20002c00bf8f1000a2932800b48f2400b38fd1 -:106f30002000b28f1c00b18f1800b08f0800e00352 -:106f40003000bd272c00bf8fffff02242800b48f24 -:106f50002400b38f2000b28f1c00b18f1800b08fb7 -:106f60000800e0033000bd270c000396ffff022459 -:106f700010006334ba9b400b0c0003a60c00029671 -:106f8000100042340c0002a60800028e040000ae7d -:106f9000000002aeba9b400bffff022430004234d7 -:086fa000e29b400b0c0002a66d -:020000040000fa -:020000041d02db -:106fa800e0ffbd271000b0af1c00bfaf1800b2afa4 -:106fb8001400b1af1c00a0102180a0001b00c0501d -:106fc8001c00bf8f110080142190c0000000023cfb -:106fd800000042241c0040102188a6000000000c7c -:106fe80001000424000002a201001026fbff111674 -:106ff8001c00bf8f211040021400b18f1800b28fff -:107008001000b08f0800e0032000bd271c00bf8fd0 -:10701800211040021400b18f1800b28f1000b08ff9 -:107028000800e0032000bd271c00bf8f219000004e -:10703800211040021400b18f1800b28f1000b08fd9 -:107048000800e0032000bd2700a0023ca000438cfc -:10705800020002242400621080bf023c80bf023c70 -:1070680080bf053c80bf043c0060428c3060a52492 -:107078001060842400804230050040142190c00034 -:107088000080033480bf023c086043ac2190c000fc -:107098000000828c0100423009004014a000022444 -:1070a8002e9c400b0000000005004010000000006e -:1070b8000000838c01006330fbff6010ffff422457 -:1070c8000000828c01004230d0ff40542390d2004f -:1070d8000000a28cffff52260c004012000002a202 -:1070e800269c400b0100102640684224dbff40101c -:1070f80080bf023c80bf053c80bf043c0068428cd6 -:107108003068a5241f9c400b10688424059c400b04 -:047118002390d200ee -:020000040000fa -:020000041d02db -:10711c00211080005600c0100c00ca2c4d004015e8 -:10712c002618a400030063302338040029006010e3 -:10713c000300e7300600e0102330c7000000a398de -:10714c000300a3882128a700000083b82120870012 -:10715c000f00c3302338c3001100e0102130600051 -:10716c002138e5000000a3980300a3880400a89828 -:10717c000700a8880800a9980b00a9880c00aa98f9 -:10718c000f00aa88000083ac040088ac080089ac0e -:10719c001000a52410008424f2ffa714fcff8aac75 -:1071ac000300c3302338c3002a00e01021306000f4 -:1071bc002138e5000000a3980300a3880400a5244f -:1071cc0004008424fbffa714fcff83ac21000010f7 -:1071dc00000000000500e0102330c7000000a39859 -:1071ec002128a700000083b8212087000f00c3309e -:1071fc002338c3000d00e010213060002138e50079 -:10720c000000a38c0400a88c0800a98c0c00aa8c8c -:10721c00000083ac040088ac080089ac1000a524e5 -:10722c0010008424f6ffa714fcff8aac0300c330c3 -:10723c002338c3000700e010213060002138e5003e -:10724c000000a38c0400a52404008424fcffa714d4 -:10725c00fcff83ac0600c0102138c5000000a390d1 -:10726c000100a52401008424fcffa714ffff83a0c8 -:10727c000800e0030000000000008a90211080004c -:10728c0003004015000000000800e0030000022489 -:10729c0001008a9003004015000000000800e00384 -:1072ac000100022402008a90030040150000000037 -:1072bc000800e0030200022403008a90030040153a -:1072cc00822004000800e00303000224010084244f -:1072dc008020040000008a8c0101093c0101293541 -:1072ec00c07909002340490124400f010600001118 -:1072fc0024600a01040088110000000000008a903c -:10730c00220000100000842404008b8c23406901af -:10731c0024400f010600001124600b0104008811a9 -:10732c000000000004008a9018000010040084245f -:10733c0008008a8c2340490124400f0106000011eb -:10734c0024600a01040088110000000008008a90e3 -:10735c000e000010080084240c008b8c2340690163 -:10736c0024400f010600001124600b010400881159 -:10737c00000000000c008a90040000100c00842413 -:10738c0010008a8cd7ff00101000842404004015d4 -:10739c0000000000000084240800e0032310820099 -:1073ac0001008a90040040150000000001008424b4 -:1073bc000800e0032310820002008a9004004015ac -:1073cc0000000000020084240800e0032310820067 -:1073dc0003008a90030084240800e0032310820039 -:020000040000fa -:020000041d02db -:1073ec000c00a294e0ffbd27020043301400b0afa4 -:1073fc001c00bfaf1800b1af2b0060102180a000a3 -:10740c00000243301c0060100400a38c00024234c4 -:10741c000c00a2a41d006010ff0091300a0004248f -:10742c0028002412800042301000028e3e006210b0 -:10743c00010063240000028e01004424040003ae0a -:10744c00000051a00100032400a0023c000004ae87 -:10745c00540143a00a000224210022520c0002967f -:10746c001c00bf8f211020021400b08f1800b18fa8 -:10747c000800e0032000bd270b006014000242341a -:10748c000c00a2a4ff009130211800000800048e0b -:10749c00000004ae0a000424e4ff24561000028eff -:1074ac00349d400b800042301c00bf8fffff112425 -:1074bc00211020021400b08f1800b18f0800e003d7 -:1074cc002000bd27d9ff40541000028e0d0004246b -:1074dc00fb9c400f212800020d9d400b0400038ee5 -:1074ec0000014230dfff40101c00bf8f0e000496dd -:1074fc000800058e11a1400f0400068e0400038eb7 -:10750c00060043500800028e0c000296ffff112467 -:10751c00300042340c0002a60800028e040000aebb -:10752c001b9d400b000002ae2024117c529d400f8d -:0c753c00212800021b9d400b218840000c -:020000040000fa -:020000041d02db -:107548000c00a294e8ffbd27400043301000b0af04 -:107558001400bfaf2180a0001c0060141800a4a371 -:10756800020043303d006050300042341000a38ccc -:107578001b0060500e00a4940800a58c2d00a0509c -:1075880000a0053c0400068e11a1400f0e000496d1 -:10759800ffff02240800038e040002ae1800a29325 -:1075a800000062a01800a28301006324000003ae5b -:1075b8000a000324130043500c0003961400bf8fe5 -:1075c8001000b08f0800e0031800bd271400bf8f1b -:1075d8002014047c1000b08f0800e0031800bd27b9 -:1075e8000100062411a1400f1800a5271400bf8f21 -:1075f8001800a283040000ae1000b08f0800e0035a -:107608001800bd2700016330edff60101400bf8f24 -:107618000e0004960800058e11a1400f0400068e86 -:107628000800038e1800a283040000ae719d400b71 -:10763800000003ae4440a52420000324080042347f -:10764800080005ae000005ae100003ae040003ae4e -:107658000c0002a6649d400b200006240c00a2a486 -:0c7668000400a0ac719d400bffff022449 -:020000040000fa -:020000041d02db -:10767400e8ffbd271400bfaf1000beaf21f0a00388 -:10768400039d023c5891428c5c8182af0800042423 -:10769400e80305242e76400f0000000021e8c00313 -:1076a4001400bf8f1000be8f1800bd270800e00330 -:1076b40000000000e8ffbd271400bfaf1000beaffc -:1076c40021f0a003e790400f0000000021184000c3 -:1076d4000100022407006214000000007b91400fa7 -:1076e400000000005c8182af01000224bf9d400bba -:1076f400000000002110000021e8c0031400bf8f27 -:107704001000be8f1800bd270800e0030000000031 -:10771400f8ffbd270400beaf21f0a0035c81828f77 -:1077240021e8c0030400be8f0800bd270800e00361 -:1077340000000000e8ffbd271400bfaf1000beaf7b -:1077440021f0a003080004244175400f000000004c -:1077540008004010000000007b91400f0000000072 -:107764005c8182af08000424e80305242e76400fd0 -:107774000000000021e8c0031400bf8f1000be8f7a -:0c7784001800bd270800e0030000000012 -:020000040000fa -:020000041d02db -:107790000c008394e0ffbd271000b0af010002246d -:1077a00021808000110064301c00bfaf1800b2af10 -:1077b000300082141400b1af00026230180040148f -:1077c0000400028efffd63300c0003a61a00112492 -:1077d0000d00122418004018ffff44240000028e00 -:1077e000040004ae0100442400004290000004aef6 -:1077f00080006430050080141c00bf8f15005150bc -:107800000800028e0a0052500400028e1800b28f47 -:107810001400b18f1000b08f0800e0032000bd27d6 -:107820001400401421100000f29d400bfffd633056 -:10783000eaff401cffff4424400062300d0040146a -:1078400021200002889b400f00000000fc9d400b9f -:107850000c000396080040101c00bf8f0400048e2b -:107860000000028e01008424ffff4224040004aec5 -:10787000000002ae1c00bf8f100063340c0003a692 -:10788000ffff02241800b28f1400b18f1000b08fd8 -:087890000800e0032000bd2701 -:020000040000fa -:020000041d02db -:1078980000202020202020202020282828282820d8 -:1078a80020202020202020202020202020202020d0 -:1078b8002080101010101010101010101010101040 -:1078c8001004040404040404040404101010101028 -:1078d80010104141414141410101010101010101f2 -:1078e8000101010101010101010101011010101044 -:1078f80010104242424242420202020202020202c4 -:107908000202020202020202020202021010101017 -:10791800200000000000000000000000000000003f -:10792800000000000000000000000000000000004f -:10793800000000000000000000000000000000003f -:10794800000000000000000000000000000000002f -:10795800000000000000000000000000000000001f -:10796800000000000000000000000000000000000f -:1079780000000000000000000000000000000000ff -:1079880000000000000000000000000000000000ef -:10799800000000000009121b242d363f48415a53ad -:1079a8006c657e7719100b023d342f265158434ad7 -:1079b800757c676e323b2029161f040d7a73686147 -:1079c8005e574c452b2239300f061d14636a7178b7 -:1079d800474e555c646d767f4049525b2c253e3797 -:1079e80008011a137d746f6659504b42353c272e97 -:1079f8001118030a565f444d727b60691e170c0507 -:107a08003a3328214f465d546b627970070e151c76 -:107a1800232a31384148535a656c777e09001b1276 -:107a28002d243f3658514a437c756e671019020b56 -:107a3800343d262f737a6168575e454c3b322920c6 -:107a48001f160d046a6378714e475c55222b303936 -:107a5800060f141d252c373e0108131a6d647f7616 -:107a680049405b523c352e2718110a03747d666f16 -:107a78005059424b171e050c333a21285f564d4486 -:107a88007b7269600e071c152a233831464f545df6 -:047a9800626b707934 -:020000040000fa -:020000041d02db -:107a9c00e0ffbd27040002241800b0af1c00bfafec -:107aac001c00c21021808000000102240300c210bf -:107abc00000000001300c0141c00bf8f2800a05051 -:107acc000800058e0c000296080042340c0002a639 -:107adc000c000296080005aefbfe42302530c200b9 -:107aec00100007ae0c0006a6040000ae211000002a -:107afc001c00bf8f1800b08f0800e0032000bd27ca -:107b0c001c00bf8fffff02241800b08f0800e00399 -:107b1c002000bd270c00829408004230070040541e -:107b2c000c0002960800848c040080500c00029615 -:107b3c0031a4400f000000000c000296000000aec3 -:107b4c00f7fe4230040042340c0002a6080000aede -:107b5c00100000ae040000aebf9e400b21100000d0 -:107b6c000300a01000000000b79e400b1000078e11 -:107b7c00b3a2400f1000a6af21284000e0ff401038 -:0c7b8c001000a68fb79e400b20000724bd -:020000040000fa -:020000041d02db -:107b9800286e756c6c290000303132333435363735 -:107ba8003839414243444546000000003031323301 -:107bb8003435363738396162636465660000000021 -:107bc80001000000000000000a00000000000000a2 -:107bd8006400000000000000e8030000000000004e -:107be8001027000000000000a0860100000000002f -:107bf80040420f000000000080969800000000003e -:107c080000e1f5050000000000ca9a3b00000000f2 -:107c180000e40b540200000000e87648170000005a -:107c28000010a5d4e800000000a0724e180900005a -:107c380000407a10f35a00000080c6a47e8d03002d -:107c48000000c16ff286230000008a5d7845630159 -:107c5800000064a7b3b6e00d0000e8890423c78ad2 -:107c68000000803f000020410000003f5f70894015 -:020000040000fa -:020000041d02db -:107c7800a8ffbd270400a1af0800a2af0c00a3af66 -:107c88001000a4af1400a5af1800a6af1c00a7af42 -:107c98002000a8af2400a9af2800aaaf2c00abafe2 -:107ca8003000acaf3400adaf3800aeaf3c00afaf82 -:107cb8004000b8af4400b9af4800bfaf1240000061 -:107cc8004c00a8af104000005000a8af039d1a3c1c -:107cd800208a5a2700000000006804400060054020 -:107ce80009f84003000000005000a88f11000001af -:107cf8004c00a88f130000010400a18f0800a28f78 -:107d08000c00a38f1000a48f1400a58f1800a68f55 -:107d18001c00a78f2000a88f2400a98f2800aa8ff5 -:107d28002c00ab8f3000ac8f3400ad8f3800ae8f95 -:107d38003c00af8f4000b88f4400b98f4800bf8f18 -:0c7d48005800bd27c000000018000042d9 -:020000040000fa -:020000041d02db -:107d5400e8ffbd271400bfaf1000beaf21f0a003a1 -:107d640081bf023c00f6428c1000423007004010f4 -:107d74000000000001000224d48082af039d023c75 -:107d84005c8f442439a3400f0000000021e8c003a5 -:107d94001400bf8f1000be8f1800bd270800e00339 -:107da40000000000f8ffbd270400beaf21f0a003cf -:107db40080bf023c00800334080043ac21e8c003c8 -:107dc4000400be8f0800bd270800e0030000000087 -:107dd400f8ffbd270400beaf21f0a00380bf023c22 -:107de40000800334040043ac21e8c0030400be8fc8 -:107df4000800bd270800e00300000000f8ffbd27cd -:107e04000400beaf21f0a00380bf023c01000324a4 -:107e1400080043ac21e8c0030400be8f0800bd275e -:107e24000800e00300000000e0ffbd271c00bfaf16 -:107e34001800b2af1400b1af1000b0af2700a0100b -:107e4400211080002020a47020001124238024020b -:107e5400403005002718100004306600061802029e -:107e64002518c30006280502200006320a286600e9 -:107e7400042082000100a3340b28640003a3400ff4 -:107e84002120a0000f001112219040001f000224a5 -:107e94000f0002120100042458a2400f042004021f -:107ea400212840004c9a400f212040021c00bf8f23 -:107eb4001800b28f1400b18f1000b08f0800e003d7 -:107ec4002000bd27039d023caa9f400b5091458c86 -:107ed400039d023caa9f400b5491458c03a3400f81 -:107ee400000000001c00bf8f1800b28f1400b18f77 -:0c7ef4001000b08f0800e0032000bd2744 -:020000040000fa -:020000041d02db -:107f000053504920466c61736820636f6e666967e1 -:107f100075726564000000004552524f523a20537a -:107f2000504920466c617368206e6f7420646574dc -:107f30006563746564000000466c61736820737447 -:107f400061747573207265676973746572203a2075 -:107f5000307825780a00000053504920466c617340 -:107f60006820646574656374696f6e204641494c8e -:107f700045442e202056656e646f723a2030782575 -:107f8000782c20436869702049443a20307825785d -:107f90000a00000053504920466c617368206465f4 -:107fa0007465637465642e202056656e646f723a42 -:107fb00020307825782c20436869702049443a2085 -:087fc000307825780a0000006a -:020000040000fa -:020000041d02db -:107fc800e0ffbd271800b0af00a0103c8040028e33 -:107fd800100040101c00bfaf1b008018211844007f -:107fe8002b206200110080141c00bf8f00a0043ced -:107ff8006001848c2b2083000d00805400a0023c7b -:108008001c00bf8f804003ae1800b08f0800e0034b -:108018002000bd27239b400f1000a4af8040028e94 -:10802800edff40141000a48f1c00bf8f00a0023c7d -:108038000c000324580143ac1800b08fffff022442 -:108048000800e0032000bd272b2043000500801412 -:1080580000a0043c5c01848c2b206400e9ff8010a4 -:108068001c00bf8f1c00bf8f00a0023c1600032419 -:10807800580143ac1800b08fffff02240800e0034a -:048088002000bd27f0 -:020000040000fa -:020000041d02db -:10808c00211080002600c0101000ca2c1f004015c3 -:10809c00ff00a530005205002528aa000054050059 -:1080ac002528aa0003008330050060100400072473 -:1080bc002338e3002330c700000085b82120870057 -:1080cc000f00c3302338c3000800e01021306000db -:1080dc002138e400000085ac040085ac080085acb8 -:1080ec0010008424fbff8714fcff85ac0300c33015 -:1080fc002338c3000500e010213060002138e40073 -:10810c0004008424feff8714fcff85ac0400c0101f -:10811c002138c40001008424feff8714ffff85a0d2 -:08812c000800e0030000000060 -:020000040000fa -:020000041d02db -:10813400200002240900052400008380feff625011 -:1081440001008424030065542d0002244fa0400b39 -:1081540001008424190062102b0002241b006250c9 -:108164000100842421380000029d063c9878c6242e -:108174002110c30001004290040042300c00401062 -:108184002110000040280200c01002002110a200ab -:108194000100842421104300000083802128c300af -:1081a4000100a5900400a530f6ffa014d0ff4224de -:1081b400231802000800e0030b1067000100842468 -:1081c400000083805ba0400b010007240000838033 -:0881d4005ba0400b2138000004 -:020000040000fa -:020000041d02db -:1081dc00e0ffbd271800b0af029d103c9878102628 -:1081ec0021189000010063901c00bfaf04006730a1 -:1081fc000900e01021108000d0ff82242a284500bd -:10820c001100a0101c00bf8fff0042301800b08f6f -:10821c000800e0032000bd27010067300400e05097 -:10822c00030063300c00c014000000000300633036 -:10823c0004006010a9ff42242a284500f2ffa01474 -:10824c001c00bf8f1c00bf8fff0002241800b08fd2 -:10825c000800e0032000bd27a2a3400f1000a5af2b -:10826c0021805000010003928ea0400b1000a58fbe -:020000040000fa -:020000041d02db -:10827c00feff082440300400403805002548c700a4 -:10828c001b0020110000000000ff013c0100213404 -:10829c002b08c1001a0020100000000000ff013c58 -:1082ac00010021342b08e100150020100000000013 -:1082bc000200810442300600233006000200a104b3 -:1082cc0042380700233807002a08c7000300201093 -:1082dc000000000007000010ffff02242a08e6003f -:1082ec000300201000000000020000100100022416 -:1082fc00000002240800e003000000000000000061 -:0c830c00fcff001025100800000000001d -:020000040000fa -:020000041d02db -:108318000400c92805002011213886001700c01c58 -:10832800000000000800e00321100000254085003f -:1083380003000831030000110000000010000010c5 -:10834800000088900000888c0000a98c0400842418 -:10835800050009110400a524fcffa524fcff8424c2 -:108368000700001000008890fcffc624f5ffc01c21 -:10837800000000000800e0032110000000008890c1 -:108388000000a99001008424030009110100a5241c -:108398000800e00323100901f8ff8714000000001b -:0883a8000800e00321100000b1 -:020000040000fa -:020000041d02db -:1083b0000c008294e8ffbd271000b0af0100032439 -:1083c0002180800001024430170083101400bfafe9 -:1083d0000202423002020324060043500800058ec8 -:1083e000211000001400bf8f1000b08f0800e003c0 -:1083f0001800bd27fbffa010211000000400068e0e -:10840000f9ffc0101400bf8f11a1400f0e00049699 -:108410000400038e040043100c0002963000423426 -:10842000ffff42300c0002a60800048e20004330fb -:10843000ffff0224040000ae000004aef9a0400bd0 -:048440000a1003001b -:020000040000fa -:020000041d02db -:10844400e0ffbd271c00bfaf1200a0101800b0afa2 -:108454001000c0100300842c060080140000023cad -:108464001c00bf8f2110c0001800b08f0800e0036b -:108474002000bd27000042240b0040102120a00052 -:108484002128c0000000000c1400a6af19a1400b65 -:108494001400a68f1c00bf8f211000001800b08f9d -:1084a4000800e0032000bd272180a6000000a4806e -:1084b4000100a5241000a5af438a400f1400a6af05 -:1084c4001000a58ff9ffb0141400a68f1aa1400b59 -:0484d4001c00bf8f3a -:020000040000fa -:020000041d02db -:1084d800c2350400ff00c630ffffc924fe00212d6d -:1084e8000b0020100000000082ffc6247f80013ca2 -:1084f800ffff213424208100003f013c252081001a -:108508000000a6ac251004000800e00300000000ed -:108518000d00c0140000000021488400f8ff20115d -:1085280000000000403a04002040e8702330c800f2 -:10853800043807010080013c24208100024a07001a -:10854800e9ff001025208900c0ff043cecff001063 -:088558000000062400000000f1 -:020000040000fa -:020000041d02db -:10856000002a04000080013c2528a100c23d04002f -:10857000ff00e7309e0006242330c7000d00c00432 -:10858000000000002000c1280300201400000000ab -:108590000500001000000224020081040628c50026 -:1085a00023280500251005000800e0030000000056 -:1085b00000000000807f013c010021342b08810075 -:1085c0000300201400000000f7ff00100080023cb0 -:0c85d000f5ff0010ffff02240000000077 -:020000040000fa -:020000041d02db -:1085dc00e8ffbd271400bfaf42a4400f000000000d -:1085ec0088bf023c0030438c0003637c080060149d -:1085fc0099aa033c0010042488bf033c083064ace7 -:10860c000030438c00086330fdff601499aa033cd2 -:10861c0081bf023c5566632430f240ac30f243ac6f -:10862c006655033caa99633430f243ac81bf023cdb -:10863c000100032418f643ac81bf023c10f6428cb7 -:08864c0093a1400b00000000a7 -:020000040000fa -:020000041d02db -:10865400e0ffbd271800b2af1400b1af1000b0aff7 -:108664001c00bfaf218080002188a000a2a1400b84 -:10867400ffff1224fb9c400f000000000b0052106f -:10868400010010260000028221282002f9ff401474 -:10869400212040001c00bf8f1800b28f1400b18f3e -:1086a4001000b08f0800e0032000bd271c00bf8f1e -:1086b400ffff02241800b28f1400b18f1000b08f96 -:0886c4000800e0032000bd27bf -:020000040000fa -:020000041d02db -:1086cc001b00c0102110000000008280110040101f -:1086dc000000a38012004314ffffc624c2a1400b6c -:1086ec00ffff072400008280090040100100a52430 -:1086fc000000a3800b004314ff004230ffffc62490 -:10870c00f8ffc714010084240800e00321100000c6 -:10871c000000a380ff0063300800e0032310430037 -:10872c00ff004230ff0063300800e00323104300d9 -:08873c000800e003000000004a -:020000040000fa -:020000041d02db -:10874400ffff032403008314211080000800e003ca -:10875400000000000c00a4940100032401028430f2 -:10876400030083500800a68c0800e003ffff0224e6 -:10877400f6ffc050ffff02240400a48c1000a38c59 -:10878400f2ff8350ffff02240000a38c0600c310f5 -:10879400010084240400a4acffff64240000a4ac02 -:1087a4000800e003ffff62a001006324e7a1400b7f -:0487b4000000a3ac72 -:020000040000fa -:020000041d02db -:1087b800f8ffbd270400beaf21f0a00321188000f8 -:1087c8002110a0000800c3a30c00c2a30c00c3938f -:1087d80080bf023c305a43ac0800c39380bf023cc0 -:1087e800205a43ac0000000080bf023c105a428c63 -:1087f80001004230fcff40100000000080bf023c36 -:10880800205a428c0800c2a30800c29321e8c00382 -:108818000400be8f0800bd270800e0030000000028 -:10882800f8ffbd270400beaf21f0a00388bf033cba -:10883800e060628c8431027ce06062ac21e8c003b5 -:108848000400be8f0800bd270800e00300000000f8 -:10885800f8ffbd270400beaf21f0a00388bf033c8a -:10886800e060628c010004248431827ce06062aca8 -:108878000100022421e8c0030400be8f0800bd27c0 -:088888000800e00300000000fd -:020000040000fa -:020000041d02db -:10889000d0ffbd273800a2273800a6af1000a2af36 -:1088a00021304000ff7f02242800b0af2400a2af97 -:1088b00021808000c20002241400a4272c00bfaf36 -:1088c0001400b0af1c00b0af3c00a7af1800a0afc1 -:1088d0006f49400f2000a2a71400a28f000040a003 -:1088e0001400a28f2c00bf8f231050002800b08fdf -:0888f0000800e0033000bd2781 -:020000040000fa -:020000041d02db -:1088f8000000803f000020410000c84200007a4488 -:1089080000401c460050c347002474498096184b09 -:1089180020bcbe4c286b6e4ef9021550ec78ad6049 -:10892800caf249710000803fcdcccc3d0ad7233c28 -:108938006f12833a17b7d138acc52737bd3786359c -:1089480095bfd63377cc2b325f708930ffe6db2eac -:0889580008e53c1e6042a20d7f -:020000040000fa -:020000041d02db -:108960000080013c1200801024308100020081044c -:1089700000000000232004009e000524203887709a -:108980002328a7000420e400800084248000882c91 -:108990002128a80003420400010008312320880098 -:1089a0004020040042220400c04505002520880024 -:1089b000251086000800e003000000000000000011 -:020000040000fa -:020000041d02db -:1089c000e0ffbd271400b0af029d103c1800b1af0e -:1089d0001c00bfaf00a0113c98781026e49d400f0a -:1089e000b440248e211802020100638088006330a5 -:1089f000faff6014ffff03240400431000a0033caf -:108a0000b440658cd1a1400f212040001c00bf8fd5 -:108a10001800b18f1400b08f0800e0032000bd27bc +:10fbf400a8ffbd275400bfaf5000beaf21f0a00343 +:10fc04005800c4af5c00c5af88bf033ca060628ce1 +:10fc1400010004248473827ca06062ac0997400fc5 +:10fc2400000000006e97400f000000005800c28fd3 +:10fc34001900422c7c014010000000005800c28fc3 +:10fc440080180200029d023c60fc422421106200e4 +:10fc54000000428c08004000000000002c02029dbd +:10fc64002c02029dc4fc019d2c02029db0fe019d4c +:10fc74002c02029ddcfe019d2c02029d2c02029da1 +:10fc84002c02029d2c02029d2c02029d2c02029d3c +:10fc94002c02029d5cff019d2c02029d0c00029d22 +:10fca4002c02029dbc00029d2c02029d8401029d37 +:10fcb4002c02029dbc01029d2c02029d0c02029d9d +:10fcc4000990400f000000002400c2af6e9e400f58 +:10fcd400000000002800c2af2400c2270000428cac +:10fce4001400c2af2800c2270000428c1800c2af23 +:10fcf4002390400f000000001c00c2af2e90400f64 +:10fd0400000000002000c2af1000c0a3a497400f61 +:10fd140000000000211840000100022404006214c5 +:10fd2400000000001000c293010042341000c2a37e +:10fd34004790400f000000002118400001000224f9 +:10fd440004006214000000001000c2930200423458 +:10fd54001000c2a31000c2932c00c2a39c3b400f0e +:10fd6400000000002014027c2d00c2a31400c28fe6 +:10fd74002014027c2e00c2a31400c28f02120200bf +:10fd84001400c2af1400c28f2014027c2f00c2a33f +:10fd94001400c28f021202001400c2af1400c28ffa +:10fda4002014027c3000c2a31400c28f021202008d +:10fdb4001400c2af1400c28f2014027c3100c2a30d +:10fdc4001c00c28f2014027c3200c2a31c00c28f0c +:10fdd400031202001c00c2af1c00c28f2014027c5c +:10fde4003300c2a32000c28f2014027c3400c2a3bb +:10fdf4001c00c28f031202001c00c2af1c00c28f81 +:10fe04002014027c3500c2a31800c28f2014027c87 +:10fe14003600c2a31800c28f021202001800c2af3b +:10fe24001800c28f2014027c3700c2a31800c28fae +:10fe3400021202001800c2af1800c28f2014027c04 +:10fe44003800c2a31800c28f021202001800c2af09 +:10fe54001800c28f2014027c3900c2a32c00c227d0 +:10fe640003000424212840000e0006249180400f42 +:10fe74000000000088bf023c2061428c4001427cab +:10fe8400ff00423027100200ff00423001004230e0 +:10fe9400ff00443088bf033c2061628c4429827c8b +:10fea400206162ac8b80400b00000000a497400fdf +:10feb400000000003a00c2a33a00c227050004244f +:10fec40021284000010006249180400f000000001a +:10fed4008b80400b00000000020002243b00c2a300 +:10fee4005c00c28f00004290060040140000000035 +:10fef4009097400f000000003b00c0a3cf7f400b51 +:10ff0400000000005c00c28f000043900100022446 +:10ff140007006214000000007c97400f00000000fe +:10ff2400010002243b00c2a3cf7f400b000000006d +:10ff3400020002243b00c2a33b00c22707000424a2 +:10ff440021284000010006249180400f0000000099 +:10ff54008b80400b00000000040002243c00c2a37c +:10ff64005c00c28f000042900600401400000000b4 +:10ff74003c3b400f000000003c00c0a3fb7f400b53 +:10ff8400000000005c00c28f0000439001000224c6 +:10ff940013006214000000009c3b400f00000000ae +:10ffa4002118400001000224090062100000000032 +:10ffb4001b3a400f000000009c3b400f0000000073 +:10ffc4002014027c3c00c2a3fb7f400b0000000015 +:10ffd400010002243c00c2a3fb7f400b0000000090 +:10ffe400040002243c00c2a33c00c2270f000424e6 +:10fff40021284000010006249180400f00000000e9 +:020000041d02db +:100004008b80400b000000005c00c28f0000439016 +:10001400ba0002241f006214000000005c00c28fba +:100024000100422400004390ad0002241900621430 +:10003400000000005c00c28f0200422400004390d4 +:10004400be00022413006214000000005c00c28f92 +:100054000300422400004390ef0002240d006214c8 +:1000640000000000010002243d00c2a33d00c2279d +:100074001100042421284000010006249180400f2f +:1000840000000000c0a2400f000000008b80400b65 +:10009400000000003d00c0a33d00c227110004245d +:1000a40021284000010006249180400f0000000038 +:1000b4008b80400b000000005c00c28f0000439066 +:1000c400ba00022425006214000000005c00c28f04 +:1000d4000100422400004390ad0002241f0062147a +:1000e400000000005c00c28f020042240000439024 +:1000f400ca00022419006214000000005c00c28fd0 +:100104000300422400004390fe0002241300621402 +:1001140000000000010002243e00c2a33e00c227ea +:10012400130004242128400001000624bb80400f52 +:1001340000000000640004244e77400f000000001b +:100144003c3b400f00000000640004244e77400f45 +:100154000000000021a2400f000000003e00c0a3e8 +:100164003e00c22711000424212840000100062477 +:100174009180400f000000008b80400b00000000c5 +:100184004000c22721204000080005240c0006245a +:10019400b765400f000000004000c227150004248a +:1001a40021284000080006249180400f0000000030 +:1001b4008b80400b000000004800c0a35c00c48f8b +:1001c400080005240c0006247a67400f0000000094 +:1001d4002118400001000224030062140000000002 +:1001e400010002244800c2a34800c22717000424c7 +:1001f40021284000010006249180400f00000000e7 +:100204008b80400b00000000039d023c809342243d +:1002140019000424212840000f0006249180400f77 +:10022400000000000000000021e8c0035400bf8f5c +:100234005000be8f5800bd270800e00300000000f6 +:10024400d0ffbd272c00bfaf2800beaf21f0a00314 +:100254003000c4af3400c5af3800c6af3000c28f21 +:10026400ff0042302400c3273400c48f1000a4af21 +:100274003800c48f1400a4af1800a0af1c00a3afb3 +:1002840021200000010005240e000624213840002e +:100294006a7c400f000000002000c2af4880822723 +:1002a4002120000021284000030006240533400fcc +:1002b400000000002000c38f2400c28f2120000012 +:1002c40021286000213040000533400f0000000069 +:1002d40021e8c0032c00bf8f2800be8f3000bd274b +:1002e4000800e00300000000d0ffbd272c00bfafd2 +:1002f4002800beaf21f0a0033000c4af3400c5af66 +:100304003800c6af3000c28fff0042302400c3273c +:100314003400c48f1000a4af3800c48f1400a4affd +:100324001800a0af1c00a3af212000000100052489 +:100334000e000624213840006a7c400f00000000b3 +:100344002000c2af488082272120400003000524fa +:1003540021300000ce5e400f000000002000c38f5b +:100364002400c28f21206000212840002130000099 +:10037400ce5e400f0000000021e8c0032c00bf8fb8 +:100384002800be8f3000bd270800e00300000000f5 +:10039400e0ffbd271c00bfaf1800beaf21f0a003d3 +:1003a400030002241000c2a34880822721204000b9 +:1003b4000300052421300000ce5e400f0000000041 +:1003c40021e8c0031c00bf8f1800be8f2000bd278a +:0803d4000800e0030000000036 +:020000040000fa +:020000041d02db +:1003dc004a462e636f6d0000426f6f746c6f6164e0 +:1003ec00657220726563656976656420612066724a +:1003fc00616d65207769746820696e76616c6964db +:10040c002043524300000000426f6f746c6f6164b4 +:10041c006572204865617274626561742052657101 +:10042c007565737400000000424f4f544c4f4144ab +:10043c0045525f45524153455f424f4f544c4f41db +:10044c004445525f464c4153485f524551554553c4 +:10045c0054000000424f4f544c4f414445525f49a9 +:10046c004e49545f55504c4f41445f524551554590 +:10047c0053540000424f4f544c4f414445525f4738 +:10048c0045545f53544154455f524551554553545f +:10049c0000000000424f4f544c4f414445525f55b1 +:1004ac00504c4f41445f46494e49534845445f5276 +:1004bc004551554553540000424f4f544c4f414405 +:1004cc0045525f455845435554455f555047524139 +:1004dc0047455f524551554553540000424f4f54c8 +:1004ec004c4f414445525f41424f52545f4f50452f +:1004fc00524154494f4e5f5245515545535400009b +:10050c00424f4f544c4f414445525f434845434b37 +:10051c005f464c4153485f4649524d575f494e54d4 +:10052c004547524954595f52455155455354000063 +:10053c00426f6f746c6f6164657250726f746f632d +:10054c006f6c20646574656374656420612043522c +:10055c0043206572726f722e2020436d643a202501 +:10056c00642c2052784352433a307825782c20451d +:10057c00787065637465643a5b307825785d0a0041 +:10058c00426f6f746c6f6164657220496e74657232 +:10059c006661636520676f696e6720696e746f2092 +:1005ac006163746976652073746174650000000082 +:1005bc00426f6f746c6f6164657220496e74657202 +:1005cc006661636520676f696e6720696e746f2062 +:1005dc00457261736520466c617368207374617435 +:1005ec0065000000426f6f746c6f61646572204926 +:1005fc006e7465726661636520676f696e672069ea +:10060c006e746f204669726d776172652052582046 +:10061c00737461746500000041626f7274696e6777 +:10062c002075706c6f61642c20676f696e67206930 +:10063c006e746f205354414e444259206d6f646563 +:10064c0000000000426f6f746c6f616465722077fc +:10065c00696c6c206e6f77207570677261646520b1 +:10066c00616e64207265626f6f742121000000005e +:10067c00426f6f746c6f6164657220757067726124 +:10068c00646520726571756573742064656e696547 +:10069c00643a204669726d77617265206e6f7420c2 +:1006ac0075706c6f6164656400000000466c61736a +:1006bc00682065726173652066696e69736865642c +:1006cc002e2020426f6f746c6f6164657220496ece +:1006dc007465726661636520676f696e6720696e09 +:1006ec00746f20416374697665207374617465005e +:1006fc00466c617368206572617365206572726ff8 +:10070c00722e2020426f6f746c6f61646572204989 +:10071c006e7465726661636520676f696e672069c8 +:10072c006e746f20416374697665207374617465af +:10073c0000000000466c617368206572617365206f +:10074c0061626f72742e2020426f6f746c6f6164e3 +:10075c00657220496e7465726661636520676f69a6 +:10076c006e6720696e746f204163746976652073bf +:10077c00746174650000000041626f7274696e6789 +:10078c0020466c6173682065726173652c20676ffd +:10079c00696e6720696e746f205354414e44425900 +:1007ac00206d6f6465000000426f6f746c6f616444 +:1007bc006572204368756e6b2025642073756363c6 +:1007cc0065737366756c79207772697474656e20c5 +:1007dc00746f20666c6173680a000000426f6f745e +:1007ec006c6f6164657220466c6173682077726906 +:1007fc007465206572726f722e2041626f7274691b +:10080c006e6720616e6420676f696e6720696e7415 +:10081c006f205354414e44425920737461746500e7 +:10082c00426f6f746c6f6164657220496e7465728f +:10083c00666163652041424f5254494e47205550e2 +:10084c004c4f41442e20526563656976656420697e +:10085c006e76616c6964206368756e6b20696e647a +:10086c0065782e202052783a205b25645d202d205f +:10087c0045787065637465643a205b25645d0a0095 +:10088c00426f6f746c6f6164657220496e7465722f +:10089c00666163652e205278206e657720646174e2 +:1008ac0061206368756e6b2e202057726974696eb7 +:1008bc006720746f20666c6173682e2020496e640b +:1008cc0065783a2025640a00426f6f746c6f61641e +:1008dc00657220496e7465726661636520696e7617 +:1008ec00616c6964206368756e6b204352432e20e3 +:1008fc0052657175657374696e6720726573656e88 +:10090c0064206368756e6b20696e646578205b2566 +:10091c00645d0a00426f6f746c6f6164657220498c +:10092c006e74657266616365206669726d7761725b +:10093c00652075706c6f61642066696e697368659b +:10094c00642e20436865636b20666c617368206954 +:10095c006e746567726974792e0000004669726d59 +:10096c007761726520696e7465677269747920634a +:10097c006865636b206661696c65642e2020476f27 +:10098c00696e67206261636b20746f205354414e13 +:10099c004442592073746174652e0000426f6f7469 +:1009ac006c6f616465722061626f7274696e67202e +:1009bc006669726d7761726520646f776e6c6f61ba +:1009cc00642e2020476f696e67206261636b207410 +:1009dc006f205354414e4442592073746174650026 +:1009ec00426f6f746c6f6164657220496e746572ce +:1009fc00666163652045726173696e672073656318 +:100a0c00746f722025307825780a0000426f6f745d +:100a1c006c6f6164657220496e74657266616365a2 +:100a2c003a204c61737420736563746f7220307854 +:100a3c002578206572617365642061667465722027 +:100a4c00256420706f6c6c730a000000426f6f7429 +:100a5c006c6f6164657220496e7465726661636562 +:100a6c0020736563746f722030782578206572610d +:100a7c0073656420616674657220256420706f6ce8 +:100a8c006c730a00426f6f746c6f616465722049fd +:100a9c006e7465726661636520466c61736820656f +:100aac0072617365206572726f722e20204d6178b1 +:100abc0020706f6c6c20636f756e7420726561634f +:100acc00686564203a2025642121210a0000000079 +:100adc00426f6f746c6f6164657220666c617368d1 +:100aec00206572726f722e202041626f7274696e73 +:100afc006720616e6420676f696e67206261636b4b +:100b0c0020746f205354414e44425900426f6f740d +:100b1c006c6f6164657220666c61736820777269b2 +:100b2c0074652074696d656f7574206572726f726f +:100b3c002e202041626f7274696e6720616e642092 +:100b4c00676f696e67206261636b20746f2053540a +:100b5c00414e444259000000436865636b696e67ff +:100b6c0020466c61736820626f6f746c6f61646592 +:100b7c0072206461746120696e746567726974793e +:080b8c002e2e2e2000000000b7 +:020000040000fa +:020000041d02db +:100b9400e0ffbd271c00bfaf1800beaf21f0a003cb +:100ba4002000c4af2400c5af1000c0a31400c0af20 +:100bb4001400c2270200033cac076434212840001f +:100bc4001c8b400f000000001000c2a31000c28361 +:100bd40010004014000000002000c28f05004010e7 +:100be400000000001400c28fffff43302000c28fba +:100bf400000043a42400c28f06004010000000003f +:100c04001400c28f02140200ffff43302400c28f7d +:100c1400000043a41000c28321e8c0031c00bf8f5e +:100c24001800be8f2000bd270800e003000000006c +:100c3400d8ffbd272400bfaf2000beaf21f0a00322 +:100c44002800c4af1200c0a71400c0af1000c0a396 +:100c54001800c0af1c00c0af2800c48f21280000ba +:100c64001c000624cda0400f000000001200c22783 +:100c74002120400021280000e582400f00000000f0 +:100c84001200c29782130200ffff4230ff0042307d +:100c940003004330020002244000621400000000fc +:100ca4001400c2279c140424212840001c8b400fec +:100cb400000000001000c2a31000c28339004014d9 +:100cc400000000001400c28f30004010000000003b +:100cd4001400c38f0300023c251862001800c227c9 +:100ce400212060002128400008000624508b400f7a +:100cf400000000001000c2a31000c28329004014a9 +:100d0400000000001c00c28f1400c2af1400c28f88 +:100d1400ffff42301400c2af1400c28f170040100e +:100d2400000000001400c38f0300023c2518620079 +:100d34002800c28f21206000212840001c000624c6 +:100d4400508b400f000000001000c2a31000c283ab +:100d540014004014000000002800c28f00004394d7 +:100d64001200c2970f00621000000000f4ff02247a +:100d74001000c2a36a83400b00000000f4ff0224a9 +:100d84001000c2a36a83400b00000000f4ff022499 +:100d94001000c2a36a83400b00000000f4ff022489 +:100da4001000c2a31000c28321e8c0032400bf8f37 +:100db4002000be8f2800bd270800e00300000000cb +:100dc400d8ffbd272400bfaf2000beaf21f0a00391 +:100dd4002800c4af1200c0a71400c0af1000c0a305 +:100de4001800c0af1c00c0af2800c48f2128000029 +:100df4001c000624cda0400f000000001200c227f2 +:100e04002120000021284000e582400f000000005e +:100e14001200c29782130200ffff4230ff004230eb +:100e2400030043300200022440006214000000006a +:100e34001400c2279c140424212840001c8b400f5a +:100e4400000000001000c2a31000c2833900401447 +:100e5400000000001400c28f3000401000000000a9 +:100e64001400c38f0300023c251862001800c22737 +:100e7400212060002128400008000624508b400fe8 +:100e8400000000001000c2a31000c2832900401417 +:100e9400000000001c00c28f1400c2af1400c28ff7 +:100ea400021402001400c2af1400c28f17004010d5 +:100eb400000000001400c38f0300023c25186200e8 +:100ec4002800c28f21206000212840001c00062435 +:100ed400508b400f000000001000c2a31000c2831a +:100ee40014004014000000002800c28f0000439446 +:100ef4001200c2970f00621000000000f4ff0224e9 +:100f04001000c2a3ce83400b00000000f4ff0224b3 +:100f14001000c2a3ce83400b00000000f4ff0224a3 +:100f24001000c2a3ce83400b00000000f4ff022493 +:100f34001000c2a31000c28321e8c0032400bf8fa5 +:100f44002000be8f2800bd270800e0030000000039 +:100f5400e0ffbd271c00bfaf1800beaf21f0a00307 +:100f64001000c0a321200000d78a400f0000000019 +:100f74001000c2a31000c2830e0040140000000041 +:100f8400564d400f000000005e4d400f0000000071 +:100f94000200023c00034434212800002c8b400f43 +:100fa4000000000001000224ac8082afef83400bfc +:100fb40000000000000000001000c28321e8c0030c +:100fc4001c00bf8f1800be8f2000bd270800e0035f +:100fd40000000000e0ffbd271c00bfaf1800beaf3b +:100fe40021f0a0031000c0a3564d400f00000000e4 +:100ff40021200000d78a400f000000001000c2a387 +:101004001000c2830a004014000000005e4d400f2f +:1010140000000000fe43400f000000000100022415 +:10102400ac8082af1000c2830f84400b000000002c +:10103400000000001000c28321e8c0031c00bf8f21 +:101044001800be8f2000bd270800e0030000000048 +:10105400e0ffbd271c00bfaf1800beaf21f0a00306 +:101064002000c4af1000c0a3010002241100c2a3d9 +:101074002000c28f0d004010000000002000c28f2d +:10108400000042901100c2a31100c2930500401059 +:10109400000000001100c2930400422c030040141d +:1010a40000000000010002241100c2a38744400f85 +:1010b400000000001000c2a31000c28320004014ee +:1010c400000000001100c293212040002347400f7c +:1010d400000000001000c2a31000c2831b004014d3 +:1010e400000000001100c293212040008e47400ff1 +:1010f400000000001000c2a31000c28316004014b8 +:10110400000000001100c393020002241c006210be +:10111400000000004344400f000000001000c2a380 +:101124001000c2830f0040140000000002000224db +:10113400ac8082af1000c2836384400b00000000c7 +:10114400000000005b84400b000000000000000071 +:101154005b84400b00000000000000005b84400b37 +:101164000000000000000000e88a400f00000000ba +:10117400cc4d400f000000006284400b00000000d2 +:10118400000000001000c28321e8c0031c00bf8fd0 +:101194001800be8f2000bd270800e00300000000f7 +:1011a400e0ffbd271c00bfaf1800beaf21f0a003b5 +:1011b4002000c4af1000c0a3f683400f000000005d +:1011c4001000c2a31000c2830500401400000000f8 +:1011d4002000c48f1584400f000000001000c2a33b +:1011e4001000c28321e8c0031c00bf8f1800be8f0b +:1011f4002000bd270800e00300000000e0ffbd2739 +:101204001c00bfaf1800beaf21f0a0032000c4af84 +:10121400d647400f000000001000c2a31000c28394 +:101224000b00401400000000e88a400f000000009a +:101234001000c2a31000c283080040140000000084 +:10124400cc4d400f000000009984400b00000000ca +:10125400000000009984400b000000000000000022 +:10126400ac8080af1000c28321e8c0031c00bf8f94 +:101274001800be8f2000bd270800e0030000000016 +:10128400e0ffbd271c00bfaf1800beaf21f0a003d4 +:101294008744400f000000001000c2a31000c28366 +:1012a40021e8c0031c00bf8f1800be8f2000bd279b +:1012b4000800e00300000000f8ffbd270400beaff3 +:1012c40021f0a003ac80828f21e8c0030400be8f0c +:1012d4000800bd270800e00300000000e0ffbd2770 +:1012e4001c00beaf21f0a00388bf033c0061628ce8 +:1012f4004429027c006162ac88bf033c0061628cbb +:101304008431027c006162ac88bf033c2061628c42 +:10131400010004248431827c206162ac88bf033cd8 +:101324002061628c4429027c206162ac88bf033c4a +:101334004061628c4408027c406162ac88bf033c1b +:101344006061628c010004244408827c606162aca8 +:1013540088bf033c8061628c01000424c439827c10 +:10136400806162ac88bf033c4060628c446b027c49 +:10137400406062ac88bf033c8061628c0442027ca2 +:10138400806162ac88bf033c8061628c8431027ce2 +:10139400806162ac88bf033c0061628cc418027c2b +:1013a400006162ac88bf033c2061628c01000424ac +:1013b400c418827c206162ac88bf033c0061628ceb +:1013c4000400027c006162ac88bf033c2061628c33 +:1013d400010004240400827c206162ac88bf033cc9 +:1013e400c060628c010004240400827cc06062ac92 +:1013f40088bf033c0061628c8410027c006162ac93 +:1014040088bf033c2061628c8410027c206162ac42 +:1014140088bf033c0061628c0421027c006162ace1 +:1014240088bf033c2061628c0421027c206162ac91 +:1014340088bf033c6010628cc418027c601062acec +:1014440088bf033c3010628cc418027c301062ac3c +:1014540088bf033c0010628c0400027c001062ac64 +:1014640088bf033c9010628c0300042484e6827cd1 +:10147400901062ac88bf033c9010628c04ce027c56 +:10148400901062ac88bf033c6010628c010004249d +:10149400c418827c601062ac80bf023c005a40ac2d +:1014a40080bf033c005a628c010004244429827cde +:1014b400005a62ac80bf033c005a628c01000424d1 +:1014c4000442827c005a62ac80bf033c005a628ca6 +:1014d400444a027c005a62ac80bf033c005a628cce +:1014e4008431027c005a62acc404023c00b442342d +:1014f4000000c2af0f00023c404242340400c2afbd +:101504000400c28f401002000000c38f1b00620061 +:10151400f401400010180000121000000800c2afcf +:101524000400c28f401002000000c38f1b00620041 +:10153400f4014000101000000400401000000000fe +:101544000800c28f010042240800c2af0800c28f05 +:101554000101422c03004014000000000001022499 +:101564000800c2af0800c28f040040100000000051 +:101574000800c28fffff42240800c2af0800c28fd8 +:10158400ff0042302118400080bf023c305a43ac77 +:1015940080bf033c005a628c01000424c47b827c1b +:1015a400005a62ac88bf033c0061628cc439027c7f +:1015b400006162ac88bf033c8061628c444a027c57 +:1015c400806162ac88bf033c2061628cc439027cb8 +:1015d400206162ac88bf033ca061628c444a027cf7 +:1015e400a06162ac88bf033cc060628c8431027c21 +:1015f400c06062ac88bf033ce060628c8431027cd2 +:10160400e06062ac88bf033c4060628c010004244b +:10161400c47b827c406062ac88bf033c4060628cc7 +:10162400010004244408827c406062ac81bf023c17 +:10163400ffff0334609043ac81bf033c6090628c35 +:101644004408027c609062ac81bf033c6090628c71 +:101654008410027c609062ac88bf033c4060628c62 +:10166400010004244408827c406062ac88bf033ccf +:101674004060628c010004248410827c406062ac6f +:1016840081bf023c009040ac81bf023c109040ac52 +:1016940081bf023c209040ac81bf023c409040acf2 +:1016a40081bf033c4090628c01000424049c827c32 +:1016b400409062ac81bf023cf0ff0324209043a021 +:1016c40081bf033c2090628c010004240462827c6c +:1016d400209062ac81bf033c0090628c0100042422 +:1016e400c47b827c009062ac81bf033c0090628c1e +:1016f400010004244408827c009062ac88bf033c4f +:10170400c060628c0421027cc06062ac88bf033c70 +:10171400e060628c010004240421827ce06062acfd +:1017240088bf033cc060628cc418027cc06062ac99 +:1017340088bf033cc060628c010004248410827c56 +:10174400c06062ac88bf033cc060628c4408027c09 +:10175400c06062ac80bf023c005840ac80bf033c18 +:101764000058628c010004244429827c005862ac35 +:1017740080bf033c0058628c010004240442827c34 +:10178400005862ac80bf033c0058628c444a027c1f +:10179400005862ac80bf033c0058628c8431027ce8 +:1017a400005862acc404023c00b442340c00c2af22 +:1017b4000f00023c404242341000c2af1000c28ffe +:1017c400401002000c00c38f1b006200f4014000b3 +:1017d40010180000121000001400c2af1000c28fd5 +:1017e400401002000c00c38f1b006200f401400093 +:1017f4001010000004004010000000001400c28f0c +:10180400010042241400c2af1400c28f0101422c13 +:101814000300401400000000000102241400c2afc1 +:101824001400c28f04004010000000001400c28f96 +:10183400ffff42241400c2af1400c28fff004230e5 +:101844002118400080bf023c305843ac80bf033ca9 +:101854000058628c01000424c47b827c005862ac72 +:1018640088bf033c4060628c010004248410827ca5 +:10187400406062ac88bf033c4060628c0100042479 +:101884000400827c406062ac88bf033cc060628c10 +:10189400c45a027cc06062ac88bf033ce060628cc6 +:1018a400c45a027ce06062ac88bf033cc060628cb6 +:1018b400010004240442827cc06062ac88bf033c03 +:1018c4008060628c8473027c806062ac88bf033c5d +:1018d400a060628c010004248473827ca06062acea +:1018e40088bf033c8060628c446b027c806062ac85 +:1018f40088bf033ca060628c01000424446b827c9a +:10190400a06062ac88bf033cc060628c4429027c46 +:10191400c06062ac88bf033ce060628c4429027cf6 +:10192400e06062ac88bf033c4060628c446b027c24 +:10193400406062ac88bf033c6060628c446b027c94 +:10194400606062ac88bf033c4060628c0463027ccc +:10195400406062ac88bf033c6060628c0463027cbc +:10196400606062ac88bf033c4060628cc418027c37 +:10197400406062ac88bf033c6060628cc418027c27 +:10198400606062ac88bf033c4060628c444a027c65 +:10199400406062ac88bf033c6060628c444a027c55 +:1019a400606062ac88bf033c4060628c8452027cfd +:1019b400406062ac88bf033c6060628c8452027ced +:1019c400606062ac88bf033c4060628cc45a027c95 +:1019d400406062ac88bf033c6060628cc45a027c85 +:1019e400606062ac0100022421e8c0031c00be8fc9 +:1019f4002000bd270800e00300000000e0ffbd2731 +:101a04001c00bfaf1800beaf21f0a0032118800056 +:101a14002110a0002000c3a32400c2a71000c0af5f +:101a24009386400b0000000000a0023c7c1d432470 +:101a34001000c28f21106200000040a01000c28f6d +:101a4400010042241000c2af1000c28f0a00422cd1 +:101a5400f5ff40140000000000a0023c80ff0324b6 +:101a64007c1d43a000a0023c7c1d42242000c393a3 +:101a7400010043a02400c29702120200ffff42307b +:101a8400ff00433000a0023c7c1d4224020043a01e +:101a94002400c297ff00433000a0023c7c1d422476 +:101aa400030043a000a0023c7c1d44240400052440 +:101ab4003088400f0000000021e8c0031c00bf8fe5 +:101ac4001800be8f2000bd270800e00300000000be +:101ad400e0ffbd271c00bfaf1800beaf21f0a0037c +:101ae400211080002400c5af2000c2a301000224fd +:101af4001400c2af1000c0afc986400b0000000044 +:101b040000a0023c7c1d43241000c28f21106200ff +:101b1400000040a01000c28f010042241000c2af98 +:101b24001000c28f0a00422cf5ff40140000000090 +:101b340000a0023c80ff03247c1d43a000a0023cc3 +:101b44007c1d42242000c393010043a000a0023c5a +:101b54007c1d422481ff0324020043a000a0023c18 +:101b64007c1d4424020005243088400f000000003e +:101b740000a0023c7c1d422402004290212040002f +:101b840000a0023c701d452402000624ac88400fce +:101b9400000000001400c2af1400c38f010002242f +:101ba40005006210000000002400c28f000040a461 +:101bb400fc86400b0000000000a0023c701d429017 +:101bc40000120200201e027c00a0023c701d422470 +:101bd400010042902016027c251062002016027c2f +:101be400ffff43302400c28f000043a421e8c00358 +:101bf4001c00bf8f1800be8f2000bd270800e00323 +:101c040000000000e0ffbd271c00bfaf1800beaffe +:101c140021f0a0030a000224108182af02000224f2 +:101c2400148182af05000424001005248086400f2f +:101c3400000000001f5c02241000c2a71000c2971d +:101c440021200000212840008086400f0000000071 +:101c540021e8c0031c00bf8f1800be8f2000bd27e1 +:101c64000800e00300000000e0ffbd271c00bfaf38 +:101c74001800beaf21f0a0030a000224108182af35 +:101c840002000224148182af0500042400100524fc +:101c94008086400f000000001f5c02241000c2a7d1 +:101ca4001000c29721200000212840008086400fa8 +:101cb4000000000021e8c0031c00bf8f1800be8f85 +:101cc4002000bd270800e00300000000e0ffbd275e +:101cd4001c00bfaf1800beaf21f0a00319000224fe +:101ce400108182af01000224148182af0500042414 +:101cf400002805248086400f000000001f5c022499 +:101d04001000c2a71000c297212000002128400023 +:101d14008086400f0000000021e8c0031c00bf8f34 +:101d24001800be8f2000bd270800e003000000005b +:101d3400e0ffbd271c00bfaf1800beaf21f0a00319 +:101d440028000224108182af01000224148182af92 +:101d540005000424004005248086400f0000000094 +:101d64001f0c02241000c2a71000c29721200000fb +:101d7400212840008086400f0000000021e8c003b5 +:101d84001c00bf8f1800be8f2000bd270800e00391 +:101d940000000000e0ffbd271c00bfaf1800beaf6d +:101da40021f0a00364000224108182af0100022408 +:101db400148182af0500042400a005348086400ffe +:101dc400000000001f0402241000c2a71000c297e4 +:101dd40021200000212840008086400f00000000e0 +:101de40021e8c0031c00bf8f1800be8f2000bd2750 +:101df4000800e00300000000e0ffbd271c00bfafa7 +:101e04001800beaf21f0a003010002241000c2afed +:101e140021200000008005348086400f000000006f +:101e24001000c2af1400c227212000002128400066 +:101e3400b586400f000000001400c397ff39022448 +:101e44000400621000000000211000009987400b7c +:101e5400000000000287400f000000001000c28f45 +:101e640021e8c0031c00bf8f1800be8f2000bd27cf +:101e74000800e00300000000e0ffbd271c00bfaf26 +:101e84001800beaf21f0a003010004241000c227f3 +:101e940021284000b586400f000000001000c297c2 +:101ea4002016027c21e8c0031c00bf8f1800be8fdf +:101eb4002000bd270800e00300000000e0ffbd276c +:101ec4001c00bfaf1800beaf21f0a0030200042421 +:101ed4001000c22721284000b586400f00000000f2 +:101ee4001000c297c2100200ffff423080100200af +:101ef400ffff42302016027c21e8c0031c00bf8f84 +:101f04001800be8f2000bd270800e0030000000079 +:101f1400e0ffbd271c00bfaf1800beaf21f0a00337 +:101f2400030004241000c22721284000b586400f76 +:101f3400000000001000c2972016027c21e8c003b4 +:101f44001c00bf8f1800be8f2000bd270800e003cf +:101f540000000000e0ffbd271c00bfaf1800beafab +:101f640021f0a003030004241000c227212840000c +:101f7400b586400f000000001000c29721184000f1 +:101f84001481828f1b006200f401400010180000cd +:101f9400121000002016027c21e8c0031c00bf8f31 +:101fa4001800be8f2000bd270800e00300000000d9 +:101fb400e0ffbd271c00bfaf1800beaf21f0a00397 +:101fc400040004241000c22721284000b586400fd5 +:101fd400000000001000c2972016027c21e8c00314 +:101fe4001c00bf8f1800be8f2000bd270800e0032f +:101ff40000000000e0ffbd271c00bfaf1800beaf0b +:1020040021f0a003040004241000c227212840006a +:10201400b586400f000000001000c2972118400050 +:102024001081828f1b006200f40140001018000030 +:10203400121000002016027c21e8c0031c00bf8f90 +:102044001800be8f2000bd270800e0030000000038 +:10205400f0ffbd270c00beaf21f0a0038e010224c7 +:102064000000c2af80bf023c005040ac80bf033cc4 +:102074000050628c01000424444a827c005062ac0b +:102084000000c38f80bf023c405043ac80bf033c80 +:102094000050628c01000424c47b827c005062ac3a +:1020a400a08180afa48180af21e8c0030c00be8f63 +:1020b4001000bd270800e00300000000f0ffbd276a +:1020c4000c00beaf21f0a0031000c4af2110a0008b +:1020d4001400c2a3010002240000c2af80bf033c6d +:1020e4000050628c010004240400827c005062ac25 +:1020f4000000000080bf023c0050428c01004230ce +:10210400fcff40140000000080bf023c1050428cd1 +:10211400000442300500401000000000a08180afa0 +:10212400211000009c88400b000000000400c0af98 +:102134007488400b000000000400c28f1000c38f9d +:1021440021106200000042902118400080bf023c30 +:10215400505043aca48180af6c88400b0000000059 +:1021640080bf023c1050428c000442300b004014eb +:1021740000000000a481828f0c00033c013563340d +:102184002a18430001006338ff0063300100422431 +:10219400a48182af0500601000000000a08180af20 +:1021a4000000c0af7188400b0000000080bf023cfb +:1021b4001050428c00404230e9ff401400000000ff +:1021c4000400c28f010042240400c2af1400c39370 +:1021d4000400c28f2a104300d7ff401400000000ff +:1021e40080bf033c0050628c010004248410827c74 +:1021f400005062aca48180af9488400b00000000c2 +:1022040080bf023c1050428c000442300b0040144a +:1022140000000000a481828f0c00033c013563346c +:102224002a18430001006338ff0063300100422490 +:10223400a48182af0500601000000000a08180af7f +:102244000000c0af9988400b0000000080bf023c32 +:102254000050428c04004230e9ff401400000000aa +:1022640001000224a08182af0000c28f21e8c003d4 +:102274000c00be8f1000bd270800e0030000000022 +:10228400f8ffbd270400beaf21f0a0032110800099 +:102294000800c2a32110000021e8c0030400be8f7f +:1022a4000800bd270800e00300000000f0ffbd2780 +:1022b4000c00beaf21f0a003211880001400c5afac +:1022c4002110c0001000c3a31800c2a301000224ff +:1022d4000400c2af80bf033c0050628c01000424a0 +:1022e4000400827c005062aca48180afc788400b9c +:1022f4000000000080bf023c1050428c00044230b9 +:102304000500401000000000a08180af21100000f3 +:102314006489400b0000000080bf023c0050428ce6 +:1023240001004230f3ff4014000000001000c3938a +:1023340080bf023c505043aca48180afe588400b81 +:102344000000000080bf023c1050428c0004423068 +:102354000b00401400000000a481828f0c00033c99 +:10236400013563342a18430001006338ff006330e9 +:1023740001004224a48182af050060100000000027 +:10238400a08180af211000006489400b0000000090 +:1023940080bf023c1050428c00404230e9ff4014a0 +:1023a400000000000000c0af3c89400b00000000aa +:1023b40080bf033c0050628c01000424c418827c5a +:1023c400005062aca48180af0889400b000000007b +:1023d40080bf023c1050428c000442300b00401479 +:1023e40000000000a481828f0c00033c013563349b +:1023f4002a18430001006338ff00633001004224bf +:10240400a48182af0500601000000000a08180afad +:10241400211000006489400b0000000080bf023cd2 +:102424000050428c08004230e9ff401400000000d4 +:102434000000c28f1400c38f2110620080bf033cd0 +:102444006050638cff006330000043a080bf033cf6 +:102454000050628c010004244429827c005062ac48 +:1024640080bf033c0050628c010004240421827c60 +:10247400005062aca48180af3489400b000000009e +:1024840080bf023c1050428c000442300b004014c8 +:1024940000000000a481828f0c00033c01356334ea +:1024a4002a18430001006338ff006330010042240e +:1024b400a48182af0500601000000000a08180affd +:1024c400211000006489400b0000000080bf023c22 +:1024d4000050428c10004230e9ff4014000000001c +:1024e4000000c28f010042240000c2af1800c39351 +:1024f4000000c28f2a104300adff4014000000000a +:1025040080bf033c0050628c010004248410827c50 +:10251400005062aca48180af5c89400b00000000d5 +:1025240080bf023c1050428c000442300b00401427 +:1025340000000000a481828f0c00033c0135633449 +:102544002a18430001006338ff006330010042246d +:10255400a48182af0500601000000000a08180af5c +:10256400211000006489400b0000000080bf023c81 +:102574000050428c04004230e9ff40140000000087 +:1025840001000224a08182af0400c28f21e8c003ad +:102594000c00be8f1000bd270800e00300000000ff +:1025a400f8ffbd270400beaf21f0a003a081828ff5 +:1025b40021e8c0030400be8f0800bd270800e00323 +:1025c4000000000098ffbd276400bfaf6000beafed +:1025d40021f0a003010002241000c2afc404023c95 +:1025e40000b442341400c2af050002241800c2af84 +:1025f400eca4400f000000001c00c2af88bf023ce6 +:1026040040000324042043ac1800c28f0100423070 +:10261400ff0042301d004010000000001400c28f73 +:102624002000c2af2400c0af9589400b0000000019 +:102634002400c28f010042242400c2af2000c38fb3 +:1026440036fe023c803c4234211062002000c2afbe +:102654002000c38fc901023c81c342342b106200a5 +:10266400f3ff401000000000eca4400f0000000045 +:102674002800c2af88bf023c2400c38f004043ac93 +:102684002800c48f6da4400f000000001800c28f02 +:102694000200423068004010000000001400c28fa5 +:1026a4002c00c2af2c00c28f3000c2af2c00c38fed +:1026b400c404023c01b442342b10620008004014ec +:1026c400000000000800023c3400c2af3000c28f9a +:1026d400421002003000c2afba89400b0000000073 +:1026e4003400c0af3400c28f3800c2afeca4400f36 +:1026f400000000003c00c2af88bf023c0030428ca6 +:102704000003427cff0042304000c2af4000c28f51 +:10271400090040140000000088bf023c001003249c +:10272400083043ac88bf023c0030428c0008423081 +:10273400fcff4014000000004000c28f4400c2af00 +:1027440081bf023c30f240ac81bf023c99aa033cf9 +:102754005566633430f243ac81bf023c6655033c9a +:10276400aa99633430f243ac81bf023c00f0428c3e +:102774005800c2af5800c28fc4a4027c5800c2af34 +:102784005800c38f3800c28f251062005800c2afb2 +:102794005800c38f81bf023c00f043ac81bf023cb0 +:1027a40000f0428c5800c2af81bf023c3333033c7b +:1027b4003333633430f243ac4400c28f4800c2afb9 +:1027c4004800c28f130040100000000088bf023c84 +:1027d4000030428c0003427cff0042304c00c2af08 +:1027e4004c00c28f100040140000000088bf023c5f +:1027f40000100324083043ac88bf023c0030428cf4 +:1028040000084230fcff4014000000000c8a400b1a +:102814000000000088bf023c00100324043043acd5 +:102824000c8a400b00000000000000003c00c48f34 +:102834006da4400f000000001800c28f0400423055 +:102844000c0040100000000088bf023c0040428c95 +:102854005000c2af5000c28f300042345000c2afab +:1028640088bf023c5000c38f004043ac8da4400f8e +:10287400000000001400c28f5400c2af81bf023cac +:1028840000f0428cc00c427cff0042305400c38fe5 +:10289400061043005400c2af1c00c48f6da4400f47 +:1028a40000000000212000002ba4400f00000000c5 +:1028b40081bf033c00f0628c4408027c00f062acef +:1028c40081bf023cffff0334609043acb884400fe7 +:1028d40000000000eaa4400f00000000c474400f90 +:1028e40000000000ff9f400f000000001697400ffb +:1028f40000000000458f400f00000000b4a2400f0c +:1029040000000000469e400f000000009f30400f72 +:1029140000000000867a400f000000007d96400f02 +:10292400000000007064400f00000000ae97400fec +:1029340000000000039d023c84904424e3a3400f64 +:1029440000000000ce64400f00000000579e400fbe +:1029540000000000cf3d400f00000000d660400f93 +:10296400000000001b3a400f00000000212000007e +:10297400900105249876400f00000000039d023c5e +:10298400a090442401000524f4a3400f000000009b +:1029940014a0400f000000002aa0400f0000000017 +:1029a400010002241000c2af968a400b0000000010 +:1029b4002aa0400f00000000a53b400f00000000cb +:1029c400f660400f000000009035400f000000004a +:1029d4002d97400f00000000638f400f000000009f +:1029e400c397400f00000000779e400f00000000d6 +:1029f400e43d400f000000008d96400f00000000f1 +:102a040021200000ab75400f0000000011004010b1 +:102a14000000000088bf023c2061428c8001427c9f +:102a2400ff00423027100200ff0042300100423014 +:102a3400ff00443088bf033c2061628c8431827c77 +:102a4400206162ac21200000900105249876400f9b +:102a5400000000001000c38f01000224d4ff6210a4 +:102a6400000000001000c28f21e8c0036400bf8f83 +:102a74006000be8f6800bd270800e003000000006e +:102a8400e8ffbd271400bfaf1000beaf21f0a003c4 +:102a9400b884400f0000000021e8c0031400bf8f79 +:102aa4001000be8f1800bd270800e00300000000de +:102ab400e8ffbd271400bfaf1000beaf21f0a00394 +:102ac400211080001800c2a31800c28321204000f6 +:102ad400ea97400f0000000021e8c0031400bf8ff4 +:102ae4001000be8f1800bd270800e003000000009e +:102af400e8ffbd271400bfaf1000beaf21f0a00354 +:102b04001800c4af0e94400f00000000010004241c +:102b14000094400f000000002110000021e8c003d1 +:102b24001400bf8f1000be8f1800bd270800e003fb +:102b340000000000f8ffbd270400beaf21f0a00391 +:102b44002110000021e8c0030400be8f0800bd2747 +:102b54000800e00300000000e0ffbd271c00bfaf39 +:102b64001800beaf21f0a0032000c4af1000c0a322 +:102b74002000c48fbd8a400f000000001000c2a3d3 +:102b84001000c28321e8c0031c00bf8f1800be8f51 +:102b94002000bd270800e00300000000e0ffbd277f +:102ba4001c00bfaf1800beaf21f0a0031000c0a3eb +:102bb400ce8a400f000000001000c2a31000c283a0 +:102bc40021e8c0031c00bf8f1800be8f2000bd2762 +:102bd4000800e00300000000e8ffbd271400bfafb9 +:102be4001000beaf21f0a003414d400f00000000d3 +:102bf40021e8c0031400bf8f1000be8f1800bd274a +:102c04000800e00300000000f0ffbd270c00beaf89 +:102c140021f0a0031000c4af0000c0a30000c283d1 +:102c240021e8c0030c00be8f1000bd270800e0039c +:102c340000000000e8ffbd271400bfaf1000beafc6 +:102c440021f0a0031800c4af1800c48fd64d400f64 +:102c54000000000021e8c0031400bf8f1000be8fe5 +:102c64001800bd270800e00300000000e8ffbd27ae +:102c74001400bfaf1000beaf21f0a0031800c4af12 +:102c84001c00c5af1800c48f1c00c58fe74d400f52 +:102c94000000000021e8c0031400bf8f1000be8fa5 +:102ca4001800bd270800e00300000000e8ffbd276e +:102cb4001400bfaf1000beaf21f0a0031800c4afd2 +:102cc4001c00c5af1800c48f1c00c58f0b4e400fed +:102cd4000000000021e8c0031400bf8f1000be8f65 +:102ce4001800bd270800e00300000000e8ffbd272e +:102cf4001400bfaf1000beaf21f0a0031800c4af92 +:102d04001c00c5af2110c0002000c2a72000c2973c +:102d14001800c48f1c00c58f213040002f4e400f77 +:102d24000000000021e8c0031400bf8f1000be8f14 +:102d34001800bd270800e00300000000e0ffbd27e5 +:102d44001c00bfaf1800beaf21f0a0032000c4af29 +:102d54002400c5af2800c6af18808297f8ff42242c +:102d64001600c2a71000c0af1400c0a31600c3977a +:102d74002800c28f2b1062001200401400000000d3 +:102d84002400c38f1000c28f211862002800c28f54 +:102d9400ffff42302000c48f212860002130400012 +:102da4003c8b400f00000000ff0043301400c2932e +:102db40021106200ff0042301400c2a3928b400b2a +:102dc400000000002400c38f1000c28f211862008d +:102dd4001600c2972000c48f2128600021304000d3 +:102de4003c8b400f00000000ff0043301400c293ee +:102df40021106200ff0042301400c2a31400c283f9 +:102e04000f004014000000001600c2972800c38f72 +:102e1400231062002800c2af1600c2971000c38faf +:102e2400211062001000c2af1600c2972000c38fa9 +:102e3400211062002000c2af5c8b400b0000000038 +:102e4400000000001400c28321e8c0031c00bf8fef +:102e54001800be8f2000bd270800e003000000001a +:102e6400e8ffbd271400bfaf1000beaf21f0a003e0 +:102e74001800c4af1c00c5af2110c0002000c2a7b9 +:102e84002000c2971800c48f1c00c58f2130400059 +:102e94006c4e400f0000000021e8c0031400bf8ff7 +:102ea4001000be8f1800bd270800e00300000000da +:102eb400e0ffbd271c00bfaf1800beaf21f0a00388 +:102ec4002000c4af2400c5af2800c6af1880829785 +:102ed400f8ff42241600c2a71000c0af1400c0a31c +:102ee4001600c3972800c28f2b10620012004014f2 +:102ef400000000002400c38f1000c28f211862005c +:102f04002800c28fffff42302000c48f21286000b8 +:102f140021304000998b400f00000000ff00433037 +:102f24001400c29321106200ff0042301400c2a3b7 +:102f3400ef8b400b000000002400c38f1000c28ff1 +:102f4400211862001600c2972000c48f2128600057 +:102f540021304000998b400f00000000ff004330f7 +:102f64001400c29321106200ff0042301400c2a377 +:102f74001400c2830f004014000000001600c29722 +:102f84002800c38f231062002800c2af1600c29726 +:102f94001000c38f211062001000c2af1600c29748 +:102fa4002000c38f211062002000c2afb98b400bf8 +:102fb40000000000000000001400c28321e8c003e8 +:102fc4001c00bf8f1800be8f2000bd270800e0033f +:042fd40000000000f9 +:020000040000fa +:020000041d02db +:102fd8004a462e636f6d00000a0d000025732025f8 +:102fe80073202573202573202573000068656c7095 +:102ff80000000000706f7765720000000a5b737450 +:103008006174655d20706172616d657465722069b7 +:103018007320696e76616c69642e2020547970651e +:10302800202768656c702720666f72206d6f726547 +:1030380020696e666f0a00006f6e00005475726e2c +:10304800696e67206368616c6574277320696e76a2 +:103058006572746572204f4e0a0000006f66660044 +:103068005475726e696e67206368616c6574277346 +:1030780020696e766572746572204f46460a0000b4 +:103088000a5b73746174655d20706172616d65744b +:10309800657220697320696e76616c69642e2020e0 +:1030a80054797065202768656c702720666f7220d8 +:1030b80076616c69642076616c7565730a0000003e +:1030c8000a00000077696669000000000a5b766103 +:1030d8006c75655d20706172616d657465722069db +:1030e8007320696e76616c69642e2020547970654e +:1030f800202768656c702720666f72206d6f726577 +:1031080020696e666f0a00005475726e696e6720da +:1031180057694669206d6f64756c65204f4e0a00cb +:103128005769466920616c726561647920636f6ec6 +:103138006e65637465642e2e2e0a00005475726ed7 +:10314800696e672057694669206d6f64756c6520e4 +:103158004f46462e2e2e20476f6f64627965210aee +:103168000000000057694669206d6f64756c652022 +:10317800616c7265616479204f46462e2e2e20744c +:103188006861742773207765697264210a000000fa +:10319800737461747573000057694669206d6f64b4 +:1031a800756c65204f46460a00000000576946695d +:1031b80020436f6e6e65637465640a0057694669db +:1031c80020446973636f6e6e65637465640a0000fa +:1031d80057694669204552524f520a005769466955 +:1031e80020737461746520556e6b6e6f776e210a5b +:1031f8000000000062617474657279002566000041 +:103208004261747465727920566f6c746167653aaf +:103218002000000025640000426174746572792002 +:103228006368617267652063757272656e743a20af +:10323800000000006d410a00766f6c7461676500dc +:1032480063757272656e7400736f630042617474a3 +:1032580065727920534f433a20000000250a000088 +:1032680047656e6572616c207374617475733a0a90 +:1032780000000000496e76657274657220706f7781 +:1032880065722072656c61793a204f46460a0000e3 +:10329800496e76657274657220706f7765722072f8 +:1032a800656c61793a204f4e0a000000496e7665d8 +:1032b8007274657220706f7765722072656c6179bf +:1032c8003a20554e4b4e4f574e0a000057694669f3 +:1032d8003a204d6f64756c65206973207475726e41 +:1032e8006564204f46460a00576946693a20436f8d +:1032f8006e6e656374656420746f2041500a000027 +:10330800576946693a20446973636f6e6e656374e2 +:1033180065642066726f6d2041500a0057694669de +:103328003a204d6f64756c6520696e697469616ccb +:10333800697a6174696f6e206572726f720a000033 +:10334800576946693a20556e6b6e6f776e207374b5 +:103358006174650a00000000252e32660000000036 +:10336800560a000025646d410a00000025642525e1 +:103378000a000000626f6f746c6f61646572000010 +:103388000a5b636f6d6d616e645d20706172616d63 +:103398006574657220697320696e76616c69642e44 +:1033a800202054797065202768656c702720666f27 +:1033b80072206d6f726520696e666f0a00000000ea +:1033c8007374617274000000416374697661746992 +:1033d8006e6720626f6f746c6f616465720a0000bb +:1033e80073746f70000000004465616374697661ee +:1033f80074696e6720626f6f746c6f616465720abe +:10340800000000000a426f6f746c6f61646572207f +:10341800636c69656e7420636f6e6e656374656452 +:103428000a0000000a426f6f746c6f616465722055 +:10343800636c69656e74206e6f7420636f6e6e6561 +:10344800637465640a0000006465627567000000c3 +:10345800556e6b6e6f776e20636f6d6d616e640a6b +:043468000a00000056 +:020000040000fa +:020000041d02db +:10346c002148c000214080003b00e0142118a0003e +:10347c002b10a600480040102010c270080040100d +:10348c00023c090023200200062088000418450095 +:10349c00044846002518830004404800023c0900fb +:1034ac001b006700f401e000ffff2b31022c080029 +:1034bc00125000001020000002504b710034040028 +:1034cc002530c5002b60ca001b006700f401e0002a +:1034dc00090080512330ca002130c9002b18c900c3 +:1034ec00050060542330ca002b20ca002118c900e3 +:1034fc000b3064002330ca001b00c700f401e0004d +:10350c00ffff0831122000001018000002208b7001 +:10351c00001c0300254068002b1804011b00c70089 +:10352c00f401e0000900605023400401214009012e +:10353c002b18090105006054234004012b180401c9 +:10354c00214809010b4023012340040106104800c7 +:10355c000800e003211800002b10a70047004014be +:10356c002050ea704800401520000c242b10e50078 +:10357c0005004014231086002b108600cd0040540b +:10358c0021108000231086002328a7002b20820006 +:10359c000800e0032318a4000600c01420102271b8 +:1035ac00010002241b004600f401c0001248000078 +:1035bc002010227182004054200008242328a900e6 +:1035cc00021c0900ffff27311b00a300f40160005f +:1035dc00025c0800122000001050000002208770ce +:1035ec0000340a002530cb002b50c4001b00a30074 +:1035fc00f4016000090040512330c4002130c9009f +:10360c002b28c9000500a0542330c4002b50c40043 +:10361c002128c9000b30aa002330c4001b00c300b2 +:10362c00f4016000ffff0831122000001028000098 +:10363c0002388770002c05002540a8002b200701bc +:10364c001b00c300f40160000900805023400701f7 +:10365c00214009012b180901050060542340070182 +:10366c002b180701214809010b40230123400701b6 +:10367c00061048000800e00321180000211080000b +:10368c000800e0032118a00023608a0104384701d8 +:10369c00065886012558670106688501023c0b0017 +:1036ac001b00a701f401e000ffff6f31061084013d +:1036bc000428450125284500021405000430460164 +:1036cc00127000001018000002c0cf71004c0300f3 +:1036dc00254822012b1038011b00a701f401e00042 +:1036ec000a0040100420440121482b012b102b010f +:1036fc0006004014ffffce252b103801040040506b +:10370c0023483801ffffce2521482b0123483801df +:10371c001b002701f401e000ffffa5301268000038 +:10372c00101800000278af7100140300251045003a +:10373c002b184f001b002701f401e0000b00601058 +:10374c0000440e0021104b002b184b000700601496 +:10375c00ffffad252b184f00050060102540a80178 +:10376c00ffffad2521104b0000440e002540a801a1 +:10377c001900060123784f00104800001240000089 +:10378c002b28e90121182001213820013d00a0142b +:10379c00121000004300e9512b1882002318e3019a +:1037ac00233088002b2086002318640004608301da +:1037bc000610460125104c000800e00306184301d2 +:1037cc00234002010448490006300501021c09008f +:1037dc001b00c300f4016000ffff273106580401f1 +:1037ec000428450025586501022c0b0004404400b8 +:1037fc0012500000106000000250477100640c0071 +:10380c002520ac002b288a001b00c300f4016000ab +:10381c000600a05023208a00212089002b28890033 +:10382c001d00a0102b308a0023208a001b0083006f +:10383c00f4016000ffff6b311230000010500000eb +:10384c000230c770002c0a002528ab002b50a600b4 +:10385c001b008300f40160005bff40512328a6008d +:10386c002128a9002b20a90057ff80542328a6004b +:10387c002b50a6002120a9000b288a00758d400b27 +:10388c002328a600234046002318eb002b104800e9 +:10389c00ea8d400b23186200212889000d8e400b05 +:1038ac000b20a600f8ff605423404600eb8d400b24 +:1038bc00211800000800e003000000002110c000e7 +:1038cc00214080003e00e0142118a0002b30a600ff +:1038dc004600c0100000000020204470080080103a +:1038ec00022c0200232804000628a80004188300d8 +:1038fc00041082002518a30004408800022c02004a +:10390c001b006500f401a000ffff493002640800b1 +:10391c00125000001058000002204971003c0b00ae +:10392c002538ec002b30e4001b006500f401a000ee +:10393c000b00c0102318e4002138e2002b18e20021 +:10394c0006006014ffff4a252b18e40004006010e9 +:10395c002318e400ffff4a252138e2002318e40075 +:10396c001b006500f401a000ffff083112200000cd +:10397c001038000002488970003c07002540e80020 +:10398c002b3009011b006500f401a0000600c010db +:10399c00214002012b10020103004014ffff84247c +:1039ac002b48090123208900004c0a002548890076 +:1039bc0021280000211020010800e0032118a0009c +:1039cc002b10a70042004054212800002018e3705f +:1039dc004300601420000a242b28e500c500a01425 +:1039ec002b208600708e400b0100892c06004014a1 +:1039fc0020184370010003241b006200f4014000f6 +:103a0c0012100000201843707a0060542000082423 +:103a1c002348a200023c0200ffff4b3001000524aa +:103a2c001b002701f401e000026c0800125000009a +:103a3c001060000002204b71001c0c0025186d005a +:103a4c002b3064001b002701f401e0000900c0507a +:103a5c0023186400211862002b3062000400c0148b +:103a6c00ffff4a252b306400a500c054ffff4a25f8 +:103a7c00231864001b006700f401e000ffff08310d +:103a8c00122000001048000002588b70004c0900f6 +:103a9c00254028012b300b011b006700f401e000ce +:103aac000600c010214002012b100201030040143b +:103abc00ffff84242b580b0123208b00004c0a00a1 +:103acc0025488900211020010800e0032118a000de +:103adc0021480000211020010800e0032118a0005b +:103aec00235043010610460104386700253847006f +:103afc0006484501021407001b002201f401400096 +:103b0c00ffffec30065044010428650025284501d0 +:103b1c0002540500125800001070000002686c710d +:103b2c0000440e0025400a012b500d011b00220100 +:103b3c00f40140000a0040110430660021400701e6 +:103b4c002b48070106002015ffff6b252b480d01a4 +:103b5c000400205123400d01ffff6b25214007017c +:103b6c0023400d011b000201f4014000ffffa530b2 +:103b7c00124800001068000002602c71006c0d00ef +:103b8c002528a5012b50ac001b000201f4014000bc +:103b9c000b004051005c0b002128a7002b10a70044 +:103bac0006004014ffff29252b10ac0004004050e8 +:103bbc00005c0b00ffff29252128a700005c0b00ef +:103bcc0025482b01190026012328ac0010380000d1 +:103bdc002b40a70044000015123000003f00a750f6 +:103bec000420640021280000211020010800e003bb +:103bfc002118a000234003010410620006300501c7 +:103c0c00023c02001b00c700f401e000ffff4b3038 +:103c1c000428650006480401044064002548250179 +:103c2c00026c0900125000001060000002204b7161 +:103c3c0000640c002518ac012b2864001b00c70085 +:103c4c00f401e0000b00a05023186400211862005e +:103c5c002b2862000600a014ffff4a252b286400c5 +:103c6c000400a05023186400ffff4a2521186200ad +:103c7c00231864001b006700f401e000ffff2931ea +:103c8c00122000001060000002308b7000640c00e9 +:103c9c00254889012b2826011b006700f401e00050 +:103cac000b00a050002c0a00214822012b182201e5 +:103cbc0006006014ffff84242b18260104006050ba +:103ccc00002c0a00ffff842421482201002c0a004a +:103cdc00234826018b8e400b252885002b3086002f +:103cec00c1ffc05021280000ffff2925fd8e400b8d +:103cfc002128000021280000708e400b01000924af +:103d0c009f8e400b21186200e8ffbd271400bfaf47 +:103d1c001000beaf21f0a00321100000988182afeb +:103d2c00808180af8c8180af888180af908180afa3 +:103d3c00010002249c8182af03000424640005244a +:103d4c009876400f0000000021100000848182afa3 +:103d5c00888180af7f87400f000000000200401474 +:103d6c00000000009c8180af21e8c0031400bf8fcd +:103d7c001000be8f1800bd270800e00300000000f3 +:103d8c00d8ffbd272400bfaf2000beaf21f0a00399 +:103d9c0003000424ab75400f000000009800401095 +:103dac000000000081bf033c4090628c01000424a1 +:103dbc00049c827c409062ac81bf033c0090628c7e +:103dcc004408027c009062ac0000000081bf023c01 +:103ddc000090428c01004230fcff401000000000bb +:103dec0081bf023c7090428c1000c2af81bf033c7b +:103dfc000090628c010004244408827c009062ac28 +:103e0c001000c48fada3400f00000000211840002b +:103e1c00039d023c212060006890458c6a99400ffc +:103e2c00000000001400c2af039d023c1400c48fbc +:103e3c006c90458cf59a400f000000001400c2af46 +:103e4c001400c28f1800c2af039d023c1400c48f33 +:103e5c007090458cf59a400f000000001400c2af22 +:103e6c008881828f881342280600401400000000cd +:103e7c00888180af1400c28f848182afad8f400bdc +:103e8c00000000008881828f01004224888182af6b +:103e9c008481828f212040001400c58f4695400fed +:103eac0000000000848182af1400c28f988182af21 +:103ebc0003000424640005249876400f00000000e1 +:103ecc009c81838f010002240b006214000000000f +:103edc00fe87400f00000000808182af6989400f8f +:103eec000000000046004014000000009c8180afe0 +:103efc000390400b0000000081bf033c4090628c9b +:103f0c0002000424049c827c409062ac81bf033c80 +:103f1c000090628c4408027c009062ac00000000af +:103f2c0081bf023c0090428c01004230fcff4010eb +:103f3c000000000081bf023c7090428c1000c2afa8 +:103f4c0081bf033c0090628c010004244408827cf5 +:103f5c00009062ac1000c48fada3400f00000000b5 +:103f6c001400c2af039d023c1400c48f6890458cb2 +:103f7c006a99400f000000001400c2af039d023c80 +:103f8c001400c48f7490458cf59a400f000000000b +:103f9c001400c2af039d023c1400c48f7890458c72 +:103fac006a99400f000000001400c2af1400c28fc9 +:103fbc001800c2af9081828ff40142280600401491 +:103fcc0000000000908180af1000c28f948182affe +:103fdc000190400b000000009081828f0100422470 +:103fec00908182af9481828f211840001000c28f83 +:103ffc0021106200948182af1000c28f808182af49 +:10400c0021e8c0032400bf8f2000be8f2800bd27ed +:10401c000800e00300000000e0ffbd271c00bfaf5c +:10402c001800beaf1400b0af21f0a0038481908fb4 +:10403c008881828f2120400002a3400f00000000e5 +:10404c0021200002212840006a99400f0000000046 +:10405c00988182af21100000848182af888180af6b +:10406c009881828f21e8c0031c00bf8f1800be8f7f +:10407c001400b08f2000bd270800e00300000000f2 +:10408c00f8ffbd270400beaf21f0a003888180afec +:10409c00948180af8081828f21e8c0030400be8fa1 +:1040ac000800bd270800e00300000000f8ffbd2752 +:1040bc000400beaf21f0a0038c81828f21e8c003e5 +:1040cc000400be8f0800bd270800e00300000000bc +:1040dc00e8ffbd271400bfaf1000beaf21f0a00356 +:1040ec009881828f039d033c5090642421284000ca +:1040fc00f4a3400f0000000021e8c0031400bf8fa0 +:10410c001000be8f1800bd270800e003000000005f +:10411c00f8ffbd270400beaf21f0a0039c81828f65 +:10412c0021e8c0030400be8f0800bd270800e0038f +:04413c00000000007f +:020000040000fa +:020000041d02db +:104140002558000000000000c700000049000000e2 +:104150008e0000009200000055000000db0000000f +:104160001c000000e300000024000000aa00000082 +:104170006d00000071000000b60000003800000073 +:10418000ff00000001000000c60000004800000021 +:104190008f0000009300000054000000da000000cf +:1041a0001d000000e200000025000000ab00000040 +:1041b0006c00000070000000b70000003900000033 +:1041c000fe00000002000000c50000004b000000df +:1041d0008c0000009000000057000000d900000093 +:1041e0001e000000e100000026000000a800000002 +:1041f0006f00000073000000b40000003a000000ef +:10420000fd00000003000000c40000004a000000a0 +:104210008d0000009100000056000000d800000052 +:104220001f000000e000000027000000a9000000bf +:104230006e00000072000000b50000003b000000ae +:10424000fc00000004000000c30000004d0000005e +:104250008a0000009600000051000000df0000000e +:1042600018000000e700000020000000ae00000081 +:104270006900000075000000b20000003c00000072 +:10428000fb00000005000000c20000004c00000020 +:104290008b0000009700000050000000de000000ce +:1042a00019000000e600000021000000af0000003f +:1042b0006800000074000000b30000003d00000032 +:1042c000fa00000006000000c10000004f000000de +:1042d000880000009400000053000000dd00000092 +:1042e0001a000000e500000022000000ac00000001 +:1042f0006b00000077000000b00000003e000000ee +:10430000f900000007000000c00000004e0000009f +:10431000890000009500000052000000dc00000051 +:104320001b000000e400000023000000ad000000be +:104330006a00000076000000b10000003f000000ad +:10434000f800000008000000cf000000410000005d +:10435000860000009a0000005d000000d30000000d +:1043600014000000eb0000002c000000a200000080 +:104370006500000079000000be0000003000000071 +:10438000f700000009000000ce000000400000001f +:10439000870000009b0000005c000000d2000000cd +:1043a00015000000ea0000002d000000a30000003e +:1043b0006400000078000000bf0000003100000031 +:1043c000f60000000a000000cd00000043000000dd +:1043d00084000000980000005f000000d100000091 +:1043e00016000000e90000002e000000a000000000 +:1043f000670000007b000000bc00000032000000ed +:10440000f50000000b000000cc000000420000009e +:1044100085000000990000005e000000d000000050 +:1044200017000000e80000002f000000a1000000bd +:10443000660000007a000000bd00000033000000ac +:10444000f40000000c000000cb000000450000005c +:10445000820000009e00000059000000d70000000c +:1044600010000000ef00000028000000a60000007f +:10447000610000007d000000ba0000003400000070 +:10448000f30000000d000000ca000000440000001e +:10449000830000009f00000058000000d6000000cc +:1044a00011000000ee00000029000000a70000003d +:1044b000600000007c000000bb0000003500000030 +:1044c000f20000000e000000c900000047000000dc +:1044d000800000009c0000005b000000d500000090 +:1044e00012000000ed0000002a000000a4000000ff +:1044f000630000007f000000b800000036000000ec +:10450000f10000000f000000c8000000460000009d +:10451000810000009d0000005a000000d40000004f +:1045200013000000ec0000002b000000a5000000bc +:10453000620000007e000000b900000037000000ab +:04454000f000000087 +:020000040000fa +:020000041d02db +:10454400e8ffbd271400bfaf1000beaf21f0a003e9 +:1045540088bf033ce060628c0421027ce06062acb2 +:1045640080bf023cff000324205843ac000000003d +:1045740080bf023c1058428c01004230fcff4010c6 +:104584000000000080bf023cff000324205843ac1d +:104594000000000080bf023c1058428c01004230f1 +:1045a400fcff40100000000080bf023cff00032419 +:1045b400205843ac0000000080bf023c1058428cdd +:1045c40001004230fcff40100000000080bf023cac +:1045d400ff000324205843ac0000000080bf023ccd +:1045e4001058428c01004230fcff401000000000d3 +:1045f40080bf023c205840ac0000000080bf023c59 +:104604001058428c01004230fcff401000000000b2 +:1046140080bf023c2058428c2016027cec8182a789 +:10462400ec818287001202002016027cec8182a7b2 +:1046340080bf023cff000324205843ac000000006c +:1046440080bf023c1058428c01004230fcff4010f5 +:104654000000000080bf023c2058428cffff433022 +:10466400ec818287ffff423021106200ffff42305d +:104674002016027cec8182a788bf033ce060628c38 +:10468400010004240421827ce06062acec81838715 +:10469400fcff0224241062002016027cec8182a715 +:1046a400ec8183870054022404006210000000009f +:1046b40021100000df91400b00000000640004247e +:1046c4004e77400f0000000088bf033ce060628c1e +:1046d4000421027ce06062ac80bf023cff00032442 +:1046e400205843ac0000000080bf023c1058428cac +:1046f40001004230fcff40100000000080bf023c7b +:10470400ff000324205843ac0000000080bf023c9b +:104714001058428c01004230fcff401000000000a1 +:1047240080bf023c205840ac0000000080bf023c27 +:104734001058428c01004230fcff40100000000081 +:1047440080bf023c205840ac0000000080bf023c07 +:104754001058428c01004230fcff40100000000061 +:1047640088bf033ce060628c010004240421827c45 +:10477400e06062ac0100022421e8c0031400bf8f92 +:104784001000be8f1800bd270800e00300000000e1 +:10479400e0ffbd271c00bfaf1800beaf21f0a0038f +:1047a4001000c0a788bf033ce060628c0421027c37 +:1047b400e06062ac80bf023c205840ac00000000c6 +:1047c40080bf023c1058428c01004230fcff401074 +:1047d4000000000080bf023c2058428c1000c2a799 +:1047e4001000c287001202001000c2a780bf023c62 +:1047f400ff000324205843ac0000000080bf023cab +:104804001058428c01004230fcff401000000000b0 +:1048140080bf023c2058428cffff43301000c297f7 +:1048240021106200ffff42301000c2a788bf033c82 +:10483400e060628c010004240421827ce06062acac +:104844001000c397f8ff0224241062001000c2a7ce +:104854001000c2872120400002a3400f0000000086 +:1048640021184000039d023c212060009893458c50 +:10487400f59a400f000000001400c2af039d023cf3 +:104884001400c48f9c93458c6a99400f000000006b +:104894001400c2af1400c28f21e8c0031c00bf8ff4 +:1048a4001800be8f2000bd270800e00300000000b0 +:1048b400f8ffbd270400beaf21f0a003ec8182877e +:1048c40021e8c0030400be8f0800bd270800e003f0 +:1048d40000000000f8ffbd270400beaf21f0a003d4 +:1048e400211080000800c2a30800c2930500422cd6 +:1048f4000400401400000000ffff02246592400bf6 +:10490400000000000800c2930400401400000000ee +:10491400030002246592400b000000000800c393ca +:1049240001000224040062140000000004000224b8 +:104934006592400b000000000800c39302000224ab +:1049440004006214000000000f0002246592400b72 +:10495400000000000800c393030002240400621452 +:1049640000000000100002246592400b00000000cb +:104974000800c39304000224040062140000000031 +:10498400120002246592400b00000000feff022486 +:1049940021e8c0030400be8f0800bd270800e0031f +:1049a40000000000e0ffbd271c00bfaf1800beaf31 +:1049b40021f0a0032118a0002110c0002c00c7afd3 +:1049c4002000c4a32400c3a32800c2a3d353400fd0 +:1049d400000000001000c2a31000c283360040147f +:1049e400000000002400c293212040003692400fb2 +:1049f400000000001100c2a31100c283280040047b +:104a0400000000002000c2930b00401400000000ce +:104a14001100c293211840002800c2932120600095 +:104a2400212840001d48400f000000001000c2a3d0 +:104a3400aa92400b000000002000c393010002244e +:104a44000b006214000000001100c2932118400002 +:104a54002800c29321206000212840005248400fc2 +:104a6400000000001000c2a3aa92400b0000000046 +:104a74002000c393020002240a0062140000000014 +:104a84001100c293212040002c00c58f8748400f9d +:104a9400000000001000c2a3aa92400b0000000016 +:104aa400000000003554400f000000001000c2a3b5 +:104ab400b092400b00000000000000001000c28310 +:104ac40021e8c0031c00bf8f1800be8f2000bd2743 +:104ad4000800e00300000000f8ffbd270400beaf9b +:104ae40021f0a0030800c4af2110000021e8c00396 +:104af4000400be8f0800bd270800e003000000008a +:104b0400e8ffbd271400bfaf1000beaf21f0a00323 +:104b1400211880002110a0001800c3a31c00c2a308 +:104b24001800c3931c00c2932120000021286000b8 +:104b340021304000213800006a92400f000000003c +:104b440021e8c0031400bf8f1000be8f1800bd27da +:104b54000800e00300000000e8ffbd271400bfaf19 +:104b64001000beaf21f0a003211880002110a00086 +:104b74001800c3a31c00c2a31800c3931c00c29353 +:104b84000100042421286000213040002138000065 +:104b94006a92400f0000000021e8c0031400bf8f98 +:104ba4001000be8f1800bd270800e00300000000bd +:104bb400e8ffbd271400bfaf1000beaf21f0a00373 +:104bc400211080001c00c5af1800c2a31800c293b6 +:104bd4000200042421284000213000001c00c78f5b +:104be4006a92400f0000000021e8c0031400bf8f48 +:104bf4001000be8f1800bd270800e003000000006d +:104c0400e8ffbd271400bfaf1000beaf21f0a00322 +:104c14001800c4af2110a0001c00c2a31c00c29342 +:104c24001800c48f21284000aa48400f000000004b +:104c340021e8c0031400bf8f1000be8f1800bd27e9 +:104c44000800e00300000000e0ffbd271c00bfaf28 +:104c54001800beaf21f0a003211880002110a0008d +:104c64002800c6af2000c3a32400c2a71000c0a31d +:104c74002000c3936c0002241c0062140000000096 +:104c84001400c2272120400021280000040006242b +:104c9400cda0400f000000001400c2272800c48fdc +:104ca400212840000400062421380000c257400f88 +:104cb400000000001000c2a31000c2830b004014c7 +:104cc400000000008880828f08004010000000006f +:104cd4008880828f1400c393212060001500c39341 +:104ce4002128600009f840000000000021e8c0030a +:104cf4001c00bf8f1800be8f2000bd270800e003f2 +:104d040000000000e0ffbd271c00bfaf1800beafcd +:104d140021f0a0032000c4af1000c0a32000c28f64 +:104d240003004010000000002000c28f888082af82 +:104d340004000424029d023c4c4c45242d58400f91 +:104d4400000000001000c28321e8c0031c00bf8fd4 +:104d54001800be8f2000bd270800e00300000000fb +:104d6400d0ffbd272c00bfaf2800beaf21f0a003a9 +:104d74003000c4af2000c0a33000c28f2120400007 +:104d84004a9d400f00000000ffff42300100422412 +:104d94002200c2a72200c2971000a0af1400a0af47 +:104da4001800a0af04000424670005243000c68f57 +:104db400213840003555400f000000002000c2a3f8 +:104dc4002000c28321e8c0032c00bf8f2800be8fbf +:104dd4003000bd270800e00300000000b8ffbd2735 +:104de4004400bfaf4000beaf21f0a0032000c0a329 +:104df4002400c227212040003024400f000000007e +:104e04002000c2a32000c283170040140000000049 +:104e14002400c29782130200ffff4230ff00423099 +:104e240003004330020002240d006214000000005d +:104e34001000a0af1400a0af1800a0af0400042419 +:104e44006900052421300000213800003555400f49 +:104e5400000000002000c2a39b93400b0000000050 +:104e6400f4ff02242000c2a32000c28321e8c0036f +:104e74004400bf8f4000be8f4800bd270800e003f8 +:104e840000000000d0ffbd272c00bfaf2800beaf3c +:104e940021f0a0032000c0a31000a0af1400a0af15 +:104ea4001800a0af040004246a0005242130000087 +:104eb400213800003555400f000000002000c2a337 +:104ec4002000c28321e8c0032c00bf8f2800be8fbe +:104ed4003000bd270800e00300000000b8ffbd2734 +:104ee4004400bfaf4000beaf21f0a0032000c0a328 +:104ef4002400c227212040003024400f000000007d +:104f04002000c2a32000c283170040140000000048 +:104f14002400c29782130200ffff4230ff00423098 +:104f240003004330020002240d006214000000005c +:104f34001000a0af1400a0af1800a0af0400042418 +:104f44006800052421300000213800003555400f49 +:104f5400000000002000c2a3db93400b000000000f +:104f6400f4ff02242000c2a32000c28321e8c0036e +:104f74004400bf8f4000be8f4800bd270800e003f7 +:104f84000000000000e85d4100701a4000601b4012 +:104f9400e8ffbd271400baaf1000bbaf44781b7cf8 +:104fa400000c7b3700609b400c00beaf0800a3af31 +:104fb4000400a2af21f0a00388bf033c3010628c30 +:104fc400c418027c301062ac21e8c0030c00be8f10 +:104fd4000800a38f0400a28f00606041c00000009d +:104fe4001400ba8f1000bb8f00709a401800bd27c0 +:104ff40000e8dd4100609b4018000042e8ffbd2747 +:105004001400bfaf1000beaf21f0a0031800c4af5e +:105014001800c48f4e77400f0000000021e8c00341 +:105024001400bf8f1000be8f1800bd270800e003d6 +:1050340000000000e8ffbd271400bfaf1000beafa2 +:1050440021f0a00388bf033c2061628c8410027ca1 +:10505400206162ac88bf033c2061628c0421027c25 +:10506400206162ac640004244e77400f000000000d +:1050740088bf033c2061628c010004248410827c7c +:10508400206162ac960004244e77400f00000000bb +:1050940088bf033c2061628c010004240421827ccb +:1050a400206162ac21e8c0031400bf8f1000be8fe2 +:1050b4001800bd270800e00300000000f8ffbd272a +:1050c4000400beaf21f0a003211080000800c2a399 +:1050d4000800c293d0ff42240800c2a30800c29370 +:1050e4000a00422c04004010000000000800c29393 +:1050f4004f94400b000000000800c293200042348b +:105104000800c2a30800c293cfff42240800c2a330 +:105114000800c2930600422c060040100000000064 +:105124000800c2930a004224ff0042304f94400b0f +:1051340000000000ff00022421e8c0030400be8f29 +:105144000800bd270800e00300000000e0ffbd27c1 +:105154001c00bfaf1800beaf21f0a0032000c4aff5 +:105164002400c5af2110c0002800c2a38d94400bb9 +:10517400000000002400c28f000042902400c38f6e +:10518400010063242400c3af212040003094400f69 +:10519400000000001000c2a31000c2931000422cb3 +:1051a4000400401400000000f1ff02249694400b18 +:1051b400000000001000c29300110200ff00433001 +:1051c4002000c28f000043a02400c28f0000429040 +:1051d4002400c38f010063242400c3af21204000b6 +:1051e4003094400f000000001000c2a31000c293ce +:1051f4001000422c0400401400000000f1ff0224bf +:105204009694400b000000002000c28f00004390e1 +:105214001000c29321106200ff0043302000c28faf +:10522400000043a02000c28f010042242000c2af2e +:105234002800c2932b100200ff0042302800c393c1 +:10524400ffff63242800c3a3caff4014000000002a +:105254002110000021e8c0031c00bf8f1800be8f7e +:0c5264002000bd270800e003000000004f +:020000040000fa +:020000041d02db +:10527000d8ffbd271400b0af2400bfaf2000b3afec +:105280001c00b2af1800b1af440080042180800040 +:105290006e0082280e0040100b008228790040101a +:1052a000039d023ca08b42248080040021800202e6 +:1052b0000000028e2400bf8f2000b38f1c00b28f2d +:1052c0001800b18f1400b08f0800e0032800bd273c +:1052d000eb51023c1f85423418008200c397040042 +:1052e000102800006666133c43190500231872005d +:1052f00080100300001903002110430080180200f1 +:1053000021104300231082002014027c676673265c +:1053100018005300c317020010180000039d113c31 +:1053200083180300231062002014027c0900422429 +:10533000a08b312680100200211051004c00248ed9 +:10534000f59a400f0000458c180013022120400000 +:1053500010980000839813002390720240101200ee +:10536000c090120021905200238012022084107cf1 +:105370008080100021881102f59a400f0000258ed0 +:105380002400bf8f2000b38f1c00b28f1800b18f94 +:105390001400b08f0800e0032800bd27238004001c +:1053a0002084107c6e00022a1d004010eb51023c4c +:1053b0000b00022a51004054039d023c6666023ce9 +:1053c0006766422418000202c31f1000101000007c +:1053d000831002002310430040200200c018020086 +:1053e00021188300238003022024027c09008424e6 +:1053f0002014107c039d033cd48b63248020040084 +:105400008010020021208300211043000000848cc2 +:10541000f59a400f0000458cae94400b2400bf8fde +:105420001f85423418000202c397100010280000a4 +:105430006666133c431905002318720080100300b0 +:1054400000190300211043008018020021104300be +:10545000231002022014027c676673261800530092 +:10546000c317020010180000039d113c83180300ad +:10547000231062002014027c09004224cd94400bca +:10548000d48b31266666023c67664224180082008f +:10549000c31f0400101000008310020023104300fb +:1054a00040200200c018020021188300238003025c +:1054b0002014027c090042242084107c039d033cbc +:1054c000a08b6324801002008080100021800302e2 +:1054d000211043000000058ef59a400f0000448c17 +:1054e0002400bf8f2000b38f1c00b28f1800b18f33 +:1054f0001400b08f0800e0032800bd27d48b42249d +:105500008080100021800202ad94400b0000028eca +:020000040000fa +:020000041d02db +:105510000080013c2628a100c24d0400ff00293173 +:10552000c25d0500ff006b310080073c00420400b3 +:10553000254007010052050025504701ffff2d259a +:10554000fe00a12d6100201000000000ffff6d256e +:10555000fe00a12d770020100000000023602b0129 +:105560000d008005000000002000812903002014a8 +:10557000000000001500001002000a2425300a0077 +:1055800006508a0104688a011000a611000000007c +:105590000e00001002004a3525480b0023600c0065 +:1055a00020008129030020140000000007000010e3 +:1055b000020008242530080006408801046888019c +:1055c0000200a611000000000200083524608700d8 +:1055d000266885011000a0050000000021400a0196 +:1055e0002b680a011700a0110000000001000d3116 +:1055f0000200a0110000000002000835424008002f +:1056000001002925ff0001240e00211500000000e3 +:105610000c000010000008242b680a010400a011ef +:1056200023400a0123400800030000102660870180 +:1056300050000011000000002030067123482601b0 +:105640000440c8000e00201900000000800008255a +:1056500080000d2d21482d01026a08000100ad31a6 +:1056600023400d014040080042420800c06d09007f +:1056700025400d0125100c010800e003000000008a +:10568000010006242330c9002000c12c390020105d +:10569000000000000080013c2540010120000d2495 +:1056a0002368a6010448a801020020110640c80092 +:1056b000010008350000092480000d25e3ffa10545 +:1056c00000000000e1ff0010010009240e00201579 +:1056d000000000002140080105000011000000004a +:1056e00020600c7123482c0198ff001004408801b1 +:1056f000ff0001240f006111000000000080013c48 +:105700001800a11400000000216808011b00a0156a +:1057100000000000ff0001241400611500000000db +:10572000266885001500a005000000000d0000108f +:1057300000000000080060150000000021504a0130 +:105740000a0040110000000020604c7123586c01d9 +:1057500082ff001004508a0121684a010700a01549 +:1057600000000000c4ff001025100500c2ff00105b +:1057700025100400c0ff001000000224beff00102e +:08578000c0ff023c0000000024 +:020000040000fa +:020000041d02db +:10578800d0ffbd272c00bfaf2800beaf21f0a0037b +:105798003000c4af3400c5af348182930100423871 +:1057a800ff00423003004010000000004696400f02 +:1057b80000000000ffff02241000c2af3000c28fbb +:1057c8001400c2af1400c28f210040100000000076 +:1057d8001800c0af1196400b000000001400c28fe3 +:1057e800000042901c00c2af1000c38f1c00c28f83 +:1057f800261062002000c2af1000c28f021a0200f9 +:105808002000c28fff00443000a0023c802004002a +:1058180064394224211082000000428c2610620064 +:105828001000c2af1400c28f010042241400c2af9e +:105838001800c28f010042241800c2af1800c38f9d +:105848003400c28f2b106200e4ff401400000000f7 +:105858001000c28f271002001000c2af1000c28fc4 +:1058680021e8c0032c00bf8f2800be8f3000bd2761 +:105878000800e00300000000e0ffbd271c00bfafe8 +:105888001800beaf21f0a0032000c4af2110a00073 +:105898002400c2a32400c2931000c2af34818293b3 +:1058a80001004238ff0042300300401000000000b1 +:1058b8004696400f000000002000c38f1000c28fe2 +:1058c800261062001400c2af2000c28f021a020024 +:1058d8001400c28fff00443000a0023c8020040066 +:1058e80064394224211082000000428c2610620094 +:1058f8002000c2af2000c28f21e8c0031c00bf8f68 +:105908001800be8f2000bd270800e003000000003b +:10591800e8ffbd271400beaf21f0a0030000c0af10 +:105928007296400b000000000000c28f0800c2af52 +:105938000400c0af6496400b000000000800c28f4e +:1059480001004230ff004230090040100000000012 +:105958000800c28f42180200b8ed023c208342348e +:10596800261062000800c2af6196400b00000000dc +:105978000800c28f421002000800c2af0400c28fa4 +:10598800010042240400c2af0400c28f0800422c68 +:10599800eaff40140000000000a0023c0000c38f92 +:1059a8008018030064394224211062000800c38f64 +:1059b800000043ac0000c28f010042240000c2afc7 +:1059c8000000c28f0001422cd7ff401400000000e5 +:1059d80001000224348182a321e8c0031400be8f91 +:1059e8001800bd270800e00300000000e8ffbd27fd +:1059f8001400bfaf1000beaf21f0a003f48180af48 +:105a08000a0004243600023c80ee45349876400fa4 +:105a18000000000021e8c0031400bf8f1000be8ff3 +:105a28001800bd270800e00300000000e8ffbd27bc +:105a38001400bfaf1000beaf21f0a003212000006a +:105a48009a96400f0000000021e8c0031400bf8fa1 +:105a58001000be8f1800bd270800e00300000000fa +:105a6800e8ffbd271400bfaf1000beaf21f0a003b0 +:105a78001800c4aff481828f01000324280043106a +:105a880000000000020003243d0043100000000055 +:105a98005c004014000000001800c28f060040108f +:105aa800000000000100032415004310000000005e +:105ab8000397400b000000000a000424ab75400f58 +:105ac800000000000c0040100000000088bf033cec +:105ad800e060628c01000424c45a827ce06062acfd +:105ae8000a000424a00f05249876400f0000000047 +:105af80001000224f48182afc896400b0000000028 +:105b08000a0004243600023c80ee45349876400fa3 +:105b180000000000000000000397400b0000000098 +:105b28001800c28f000042240200422c34004010aa +:105b3800000000000a000424ab75400f00000000bc +:105b48000c0040100000000088bf033ce060628c3d +:105b5800c45a027ce06062ac0a0004241200023cd1 +:105b6800804f45349876400f000000000200022460 +:105b7800f48182af000000000397400b0000000092 +:105b88001800c28f06004010000000000100032426 +:105b98000f004310000000000397400b00000000b6 +:105ba8000a000424ab75400f0000000010004010ec +:105bb800000000003c3b400f00000000640004248b +:105bc8004e77400f0000000021a2400f00000000a7 +:105bd8000a0004243600023c80ee45349876400fd3 +:105be80000000000f48180afff96400b0000000029 +:105bf80000000000000000000397400b00000000b8 +:105c08000000000021e8c0031400bf8f1000be8f01 +:105c18001800bd270800e00300000000e8ffbd27ca +:105c28001400bfaf1000beaf21f0a0030100042490 +:105c38009a96400f0000000021e8c0031400bf8faf +:105c48001000be8f1800bd270800e0030000000008 +:105c5800e8ffbd271400bfaf1000beaf21f0a003be +:105c680088bf033c2061628cc439027c206162ac2d +:105c780088bf033ca061628c444a027ca06162ac8c +:105c8800020002247c8182af010004243d77400f8a +:105c98000000000021e8c0031400bf8f1000be8f71 +:105ca8001800bd270800e00300000000e8ffbd273a +:105cb8001400bfaf1000beaf21f0a00388bf023ca4 +:105cc8005060428c008042300c00401400000000fc +:105cd8007c81828f0500401400000000039d023c77 +:105ce80008914424e3a3400f0000000001000224af +:105cf8007c8182af4a97400b000000007c81838f33 +:105d0800010002240500621400000000039d023c0b +:105d18001c914424e3a3400f000000007c8180af65 +:105d2800010004242c77400f0000000021184000d7 +:105d38000100022411006214000000000100042484 +:105d4800ab75400f000000000c0040100000000080 +:105d580088bf033c2061628cc439027c206162ac3c +:105d680088bf033ca061628c444a027ca06162ac9b +:105d7800010004243d77400f0000000004000424c3 +:105d8800ab75400f00000000030040100000000049 +:105d98009097400f0000000021e8c0031400bf8f57 +:105da8001000be8f1800bd270800e00300000000a7 +:105db800e8ffbd271400bfaf1000beaf21f0a0035d +:105dc80004000424c0a80534e276400f0000000057 +:105dd80021e8c0031400bf8f1000be8f1800bd2734 +:105de8000800e00300000000e8ffbd271400bfaf73 +:105df8001000beaf21f0a00388bf033c2061628c75 +:105e080001000424c439827c206162ac01000424ae +:105e1800c80005249876400f000000000100022405 +:105e280021e8c0031400bf8f1000be8f1800bd27e3 +:105e38000800e00300000000e8ffbd271400bfaf22 +:105e48001000beaf21f0a00388bf033ca061628ca4 +:105e580001000424444a827ca06162ac010004244d +:105e6800c80005249876400f0000000001000224b5 +:105e780021e8c0031400bf8f1000be8f1800bd2793 +:105e88000800e00300000000f8ffbd270400beafd3 +:105e980021f0a0037c81828f2014027c21e8c003ba +:105ea8000400be8f0800bd270800e00300000000c2 +:105eb800e8ffbd271400bfaf1000beaf21f0a0035c +:105ec800b08180af00a0023c882d44242128000026 +:105ed800f4010624cda0400f0000000007000424b0 +:105ee800c80005249876400f0000000021e8c00390 +:105ef8001400bf8f1000be8f1800bd270800e003f4 +:105f080000000000e8ffbd271400bfaf1000beafbf +:105f180021f0a003293d400f0000000004004014b8 +:105f280000000000b08180afe497400b0000000043 +:105f3800b081828f14004010000000000700042484 +:105f4800ab75400f0000000021184000010002243a +:105f58000d0062140000000000a0023c882d4324bc +:105f6800b081828f2120600021284000ec3c400f46 +:105f780000000000b08180af07000424c800052499 +:105f88009876400f0000000021e8c0031400bf8f7e +:105f98001000be8f1800bd270800e00300000000b5 +:105fa800e8ffbd271400bfaf1000beaf21f0a0036b +:105fb800211080001800c2a3293d400f00000000f6 +:105fc8000500401400000000b08180af21100000df +:105fd8001198400b00000000b081838f00a0023ca4 +:105fe800882d4224211062001800c393000043a0aa +:105ff800b081828f01004224b08182afb081838f4b +:10600800f4010224080062140000000000a0023c11 +:10601800882d422421204000f4010524ec3c400f47 +:1060280000000000b08180af07000424c8000524e8 +:106038009876400f000000000100022421e8c00308 +:106048001400bf8f1000be8f1800bd270800e003a2 +:1060580000000000e0ffbd271c00bfaf1800beaf66 +:106068001400b0af21f0a0032000c4af293d400fb9 +:10607800000000000500401400000000b08180af5f +:10608800211000002e98400b000000002000d08f47 +:106098002000c48f4a9d400f00000000212000020c +:1060a80021284000ec3c400f0000000001000224c1 +:1060b80021e8c0031c00bf8f1800be8f1400b08fea +:1060c8002000bd270800e00300000000f8ffbd27fe +:1060d8000400beaf21f0a003b081828f04004014f9 +:1060e80000000000010002243f98400b000000005f +:1060f8002110000021e8c0030400be8f0800bd275e +:086108000800e00300000000a4 +:020000040000fa +:020000041d02db +:106110004a462e636f6d0000486f7374204950200b +:1061200069732025642e25642e25642e25640d0aae +:1061300000000000486f7374204e616d6520697324 +:106140002025730d0a000000426f6f746c6f61644c +:1061500065722073657276657220737461727465fe +:106160006400000042696e64204661696c656400e9 +:10617000736f636b6574202564206c697374656e3e +:10618000204661696c65642e204572726f723a20f8 +:1061900025640a004269656e76656e7565206175d5 +:1061a000206368616c6574210a4c65206368616cca +:1061b0006574207061726c6520656e20616e676c1d +:1061c00061697320636f6d6d65204d722e2050657f +:1061d00070696e0a496620796f75206e6565642066 +:1061e00068656c702e2e2e20747970652068656c41 +:1061f000700a0a005465726d696e616c20636c6987 +:10620000656e7420636f6e6e656374656400000074 +:106210005379736c6f672057656c636f6d650a0007 +:106220004e6574776f726b20636c69656e74206362 +:106230006f6e6e656374656400000000426f6f747a +:106240006c6f6164657220636c69656e7420636f46 +:106250006e6e656374656400536f636b65742025af +:1062600064203a20416363657074204661696c65ff +:10627000640a00005465726d696e616c20636c691c +:10628000656e7420646973636f6e6e6563746564b4 +:10629000000000004e6574776f726b20636c696557 +:1062a0006e7420646973636f6e6e656374656400f9 +:1062b000426f6f746c6f6164657220636c69656ea8 +:1062c0007420646973636f6e6e6563746564000047 +:1062d00057692d466920636f6e6e65637465640d42 +:1062e0000000000057692d466920646973636f6e72 +:1062f0006e65637465640d00776966695f63623a11 +:10630000204d324d5f574946495f524553505f50cb +:10631000524f564953494f4e5f494e464f2e0d003e +:10632000776966695f63623a2050726f7669736954 +:106330006f6e206661696c65642e0d004368616c48 +:10634000657456696c6c65456d617264000000008f +:106350004576696e72756465333000006572726fe0 +:0463600072000000c7 +:020000040000fa +:020000041d02db +:10636400e8ffbd271400beaf21f0a0031800c4af9e +:106374000400c0af0000c0a36099400b00000000ff +:106384000200c0a70400c28f021202000400c2afc0 +:106394000100c0a3f798400b000000000100c29365 +:1063a4001800c38f21106200000042900800c2a3ad +:1063b4000800c3832e0002240b00621000000000ba +:1063c4000800c28308004010000000000100c293ce +:1063d400010042240100c2a30100c2930400422c24 +:1063e400eeff4014000000000100c29305004010bd +:1063f400000000000100c39304000224040062149e +:1064040000000000211000006599400b000000000e +:106414001800c28f000042900800c2a31800c28f67 +:10642400010042241800c2af0100c2930200422cb2 +:1064340026004014000000000800c383300002243a +:106444002500621400000000211000006599400b33 +:10645400000000000800c2833000422805004014f8 +:10646400000000000800c2833a00422804004014df +:1064740000000000211000006599400b000000009e +:106484000200c2974010020080180200211043004d +:10649400ffff43300800c283ffff42302110620037 +:1064a400ffff4230d0ff42240200c2a71800c28f6f +:1064b400000042900800c2a31800c28f01004224c9 +:1064c4001800c2af3899400b000000000000000023 +:1064d4003899400b00000000000000000100c29346 +:1064e4002b100200ff0042300100c393ffff63241e +:1064f4000100c3a3d7ff4014000000000200c297ac +:106504000001422c0400401400000000211000008f +:106514006599400b000000000200c29700160200bb +:106524000400c38f251062000400c2af0800c283b8 +:1065340005004014000000000000c393030002247f +:1065440008006214000000000800c2830800401024 +:10655400000000000000c39303000224040062143e +:1065640000000000211000006599400b00000000ad +:106574000000c293010042240000c2a30000c293a1 +:106584000400422c7eff4014000000000400c28f6f +:1065940021e8c0031400be8f1800bd270800e003e3 +:0465a40000000000f3 +:020000040000fa +:020000041d02db +:1065a80000800b3cc2450400ff000831c2550500bd +:1065b800ff004a31003a04002538eb00004a050084 +:1065c80025482b012670850024586e01ffff0e25f3 +:1065d800fe00c12d3f00201000000000ffff4e25e7 +:1065e800fe00c12d53002010000000002b08e90018 +:1065f80003002014000000004238070001000825ad +:1066080082630900f40180011b00ec0012200000e5 +:1066180010300000ff3f2d311900a401122800009e +:10662800803306002b70c5000400c0112330c5005c +:10663800ffff84242130c9002b70c900f4018001b8 +:106648001b00cc0012380000103000001900a70110 +:1066580012280000803306002b70c5000400c0110a +:106668002330c500ffffe7242130c9002b70c90083 +:10667800807304002138ee000200c01000390700c2 +:106688000100e7347e000e242370ca0121400e0168 +:10669800ffff0e25fe00c12d340020100000000071 +:1066a8008000e7248000ee2c21400e0102720700d2 +:1066b8000100ce312338ee0040380700423a070087 +:1066c800c07508002538ee002510eb000800e0032f +:1066d8000000000008000015000000002138e70055 +:1066e8000500e010000000002060ec7023400c0161 +:1066f800baff0010043887010400481500000000a4 +:10670800217029012f00c01100000000ff000124a2 +:1067180008004111000000001200001100000000f4 +:106728002170e7002700c0150000000022000010bb +:106738000000000008004015000000002148290161 +:106748001d0020110000000020602c7123504c0116 +:10675800a6ff001004488901217029011900c015fd +:1067680000000000d9ff001025100b001200001dca +:106778000000000001000c24236088012000812d06 +:10678800f8ff20100000000020000e242370cc0128 +:106798000440c70102000011063887010200e734ef +:1067a800000008248000ee24bdffc10500000000a1 +:1067b800bbff001001000824807f013cc3ff0010cc +:1067c80025106101c1ff0010c0ff023c000000005d +:020000040000fa +:020000041d02db +:1067d80025108500840040102110000001000224cb +:1067e80046008210c2470500ffff022465008210a0 +:1067f8000a00022467008210f6ff02245a00821061 +:10680800ffff022409000011401905004100801013 +:106818000080023c23200400232805002b100400dc +:106828002310a2002128400040190500c2160400c8 +:1068380025106200c21e05002510430039004014cf +:10684800801905008216040025106200821e0500ca +:106858002510430012004054990002241a00022413 +:10686800c23f040040180500403004002518e3002a +:106878002120c0002128600080310300821e04000e +:106888002518c3008236050025186600f4ff60103d +:10689800ffff42247f0042244600401801000324e1 +:1068a800070083300a006010ff004328c000837c83 +:1068b8000300842421208300c21e04000400601009 +:1068c800ff0043284220040001004224ff0043281f +:1068d80034006010c2200400c005837c02006050b0 +:1068e8002110000000b0847c0042080025104800f8 +:1068f800c01502000800e00325104400bbffa054a7 +:10690800ffff0224001208007f0042340800e00361 +:10691800c0150200c0ffa21423200400212000009b +:106928000080053c1a000224c03705004218040004 +:106938002518c30001008730423005002520e300f8 +:106948002128c000c21e0400403106002518c300db +:10695800c236050025186600f3ff601401004224c2 +:10696800289a400b7f004224a6ffa21400120800b8 +:1069780082004234c01502002000033c0800e003f6 +:10698800251043009bffa4540a000224449a400b9c +:106998000012080099ffa054f6ff02245e9a400beb +:1069a8000012080000120800ff0042340800e0034b +:1069b800c0150200231062001b0043280800605025 +:1069c8002120000023180200041864000610440067 +:1069d8002b200300252082002a9a400b0100022464 +:1069e8003c9a400b211000000800e0030000000062 +:020000040000fa +:020000041d02db +:1069f800e8ffbd271400beaf21f0a0031800c4af04 +:106a08001c00c5af2000c6af2400c7af2000c28f4e +:106a18000c00c2af1c00c28f0000428c0800c2af3d +:106a28001c00c28f08004010000000002000c28f28 +:106a380005004010000000002400c28f1000422c06 +:106a4800040040100000000021100000f09a400be4 +:106a5800000000000000c0a3eb9a400b00000000fb +:106a68000800c28f0200c2a3640002240100c2a36e +:106a78000200c2932e004010000000000400c0a3d2 +:106a8800300002240300c2a3ad9a400b00000000ae +:106a98000300c293010042240300c2a30200c3936f +:106aa8000100c293231062000200c2a30200c39334 +:106ab8000100c2932b106200f5ff40100000000097 +:106ac8000100c3930a0002241b006200f401400085 +:106ad80010180000121000000100c2a30300c393a5 +:106ae8003000022404006214000000000400c29375 +:106af8000a004010000000000300c3832000c28f7a +:106b0800000043a02000c28f010042242000c2af31 +:106b18000400c293010042240400c2a30100c293ee +:106b2800d7ff401400000000d49a400b000000007a +:106b38002000c28f30000324000043a02000c28f31 +:106b4800010042242000c2af0000c39303000224c6 +:106b580008006214000000002000c28f000040a05e +:106b68002000c28f010042242000c2afe59a400bea +:106b7800000000002000c28f2e000324000043a064 +:106b88002000c28f010042242000c2af0800c28f3b +:106b9800021202000800c2af0000c29301004224a2 +:106ba8000000c2a30000c2930400422cacff4014b2 +:106bb800000000000c00c28f21e8c0031400be8f43 +:0c6bc8001800bd270800e00300000000da +:020000040000fa +:020000041d02db +:106bd400c23d0400ff00e730c24d0500ff0029312b +:106be40000800a3c003204002530ca00004205003f +:106bf40025400a012660850024504c01ffffec2447 +:106c0400fe00812d2100201000000000ffff2c2534 +:106c1400fe00812d36002010000000001900c8007d +:106c24001258000002006011103000000100c63448 +:106c34000300c0040000000040300600ffffe7240a +:106c440082ff2c252138ec00ffffec24fe00812d6f +:106c54003a002010000000008000c6248000cc2ce4 +:106c64002138ec000262060001008c312330cc0094 +:106c74004030060042320600c06507002530cc00d3 +:106c84002510ca000800e003000000000d00e01415 +:106c9400000000002130c6000500c0100000000004 +:106ca4002058cb702338eb00d8ff00100430660165 +:106cb400ff0001241f002111000000001500001036 +:106cc400000000002160c6001a00801500000000ca +:106cd4000400201500000000216008011500801147 +:106ce40000000000ff0001240f0021150000000037 +:106cf4000a002015000000002140080105000011d1 +:106d04000000000020580b7123482b01c3ff001022 +:106d140004406801dbff001025100a00216008010f +:106d24000400801500000000807f013cd5ff0010a6 +:106d340025104101d3ff0010c0ff023cfaffe01c04 +:106d44000000000001000b24235867012000612d7e +:106d5400f0ff20100000000020000c2423608b01b1 +:106d6400043886010200e010063066010200c634d1 +:106d7400000007248000cc24b7ff81050000000038 +:0c6d8400b5ff0010010007240000000013 +:020000040000fa +:020000041d02db +:106d90002540850003000831030000112110800008 +:106da000380000100000aa900000aa8c0101093ce4 +:106db00001012935c07909002340490124400f0110 +:106dc0000700001124600a0105008811000000007e +:106dd0000000a5240000aa902a00001000008424ce +:106de0000400ab8c00008aac2340690124400f01f1 +:106df0000700001124600b0105008811000000004d +:106e00000400a5240000aa901e00001004008424a1 +:106e10000800aa8c04008bac2340490124400f01d8 +:106e20000700001124600a0105008811000000001d +:106e30000800a5240000aa90120000100800842475 +:106e40000c00ab8c08008aac2340690124400f0180 +:106e50000700001124600b010500881100000000ec +:106e60000c00a5240000aa90060000100c00842449 +:106e70001000aa8c0c008bac10008424ceff0010f4 +:106e80001000a5240300401500008aa00800e003bc +:106e9000000000000100ab900300601501008ba012 +:106ea0000800e003000000000200aa900300401563 +:106eb00002008aa00800e003000000000300ab907d +:106ec0000300601503008ba00800e0030000000031 +:106ed0000400aa900300401504008aa00800e00303 +:106ee000000000000500ab900300601505008ba0ba +:106ef0000800e003000000000600aa90030040150f +:106f000006008aa00800e003000000000700ab9024 +:106f10000300601507008ba00800e00300000000dc +:106f20000800aa9008008424d6ff00100800a524b9 +:020000040000fa +:020000041d02db +:106f3000d8ffbd271000b0af00a0103c8440028ee7 +:106f40002400bfaf2000b4af1c00b3af1800b2af35 +:106f5000090040101400b1af2400bf8f2000b48f8f +:106f60001c00b38f1800b28f1400b18f1000b08fc7 +:106f70000800e0032800bd2700a0133c5c01638edd +:106f80004200605000a0033c00a0143c6001828ecf +:106f9000390040100000043c828f030082970200f9 +:106fa00000e0447c00e0657c0200313a0200523a85 +:106fb0000a18b1000a1092002188600037a4400f1f +:106fc000219040000000438c0400428c2b202302bf +:106fd000240080102110620000a0043ca83084240a +:106fe00000e0847c2b206400dbff8014218860009b +:106ff0002b185102050060142b1822022b18420294 +:107000000500605400a0023c2b182202d2ff601041 +:107010002190400000a0023ca83042244217020008 +:10702000050003241b0043140400032400a0023cb9 +:1070300025882202259042025c0171ae600192ae69 +:10704000844011ae2400bf8f2000b48f1c00b38f8a +:107050001800b28f1400b18f1000b08f0800e00349 +:107060002800bd272b202202e2ff80542b1851025a +:10707000f79b400b00a0043c00a0023c00028424cb +:10708000c0404224e69b400b21104400e29b400b91 +:10709000c0406324070043140080023c258822027c +:1070a000251042025c0171ae600182ae119c400b62 +:1070b000844011ae218840025c0172ae119c400bed +:0470c000844011ae49 +:020000040000fa +:020000041d02db +:1070c4000c008294d0ffbd27010042301800b0affd +:1070d4002c00bfaf2800b4af2400b3af2000b2af80 +:1070e4001c00b1af218080003e004010040080ac41 +:1070f40000a0143c55018282130040501000068efb +:1071040000a0113c643d3126a0003326489c400b6e +:10711400020112240b003352550180a20c00229666 +:1071240002014230fbff5254140031262120200278 +:1071340096a1400f14003126f9ff33560c00229615 +:10714400550180a21000068e1700c0100e00049690 +:10715400939c400f0800058e30004010040002aede +:10716400ffff0324350043500c0002960800038ef1 +:10717400ffff4224000003ae040002ae01006424b9 +:1071840000006290000004ae2c00bf8f2800b48f72 +:107194002400b38f2000b28f1c00b18f1800b08f71 +:1071a4000800e0033000bd27040000ae1000a5274e +:1071b400939c400f01000624010003241200431491 +:1071c4002c00bf8f1000a2932800b48f2400b38f2b +:1071d4002000b28f1c00b18f1800b08f0800e003ac +:1071e4003000bd272c00bf8fffff02242800b48f7e +:1071f4002400b38f2000b28f1c00b18f1800b08f11 +:107204000800e0033000bd270c000396ffff0224b2 +:1072140010006334639c400b0c0003a60c00029620 +:10722400100042340c0002a60800028e040000aed6 +:10723400000002ae639c400bffff02243000423486 +:087244008b9c400b0c0002a61c +:020000040000fa +:020000041d02db +:10724c00e0ffbd271000b0af1c00bfaf1800b2affd +:10725c001400b1af1c00a0102180a0001b00c05076 +:10726c001c00bf8f110080142190c0000000023c54 +:10727c00000042241c0040102188a6000000000cd5 +:10728c0001000424000002a201001026fbff1116cd +:10729c001c00bf8f211040021400b18f1800b28f58 +:1072ac001000b08f0800e0032000bd271c00bf8f2a +:1072bc00211040021400b18f1800b28f1000b08f53 +:1072cc000800e0032000bd271c00bf8f21900000a8 +:1072dc00211040021400b18f1800b28f1000b08f33 +:1072ec000800e0032000bd2700a0023ca000438c56 +:1072fc00020002242400621080bf023c80bf023cca +:10730c0080bf053c80bf043c0060428c3060a524eb +:10731c001060842400804230050040142190c0008d +:10732c000080033480bf023c086043ac2190c00055 +:10733c000000828c0100423009004014a00002249d +:10734c00d79c400b0000000005004010000000001e +:10735c000000838c01006330fbff6010ffff4224b0 +:10736c000000828c01004230d0ff40542390d200a8 +:10737c000000a28cffff52260c004012000002a25b +:10738c00cf9c400b0100102640684224dbff4010cc +:10739c0080bf023c80bf053c80bf043c0068428c2f +:1073ac003068a524c89c400b10688424ae9c400b0c +:0473bc002390d20048 +:020000040000fa +:020000041d02db +:1073c000211080005600c0100c00ca2c4d00401542 +:1073d0002618a4000300633023380400290060103d +:1073e0000300e7300600e0102330c7000000a39838 +:1073f0000300a3882128a700000083b8212087006c +:107400000f00c3302338c3001100e01021306000aa +:107410002138e5000000a3980300a3880400a89881 +:107420000700a8880800a9980b00a9880c00aa9852 +:107430000f00aa88000083ac040088ac080089ac67 +:107440001000a52410008424f2ffa714fcff8aacce +:107450000300c3302338c3002a00e010213060004d +:107460002138e5000000a3980300a3880400a524a8 +:1074700004008424fbffa714fcff83ac2100001050 +:10748000000000000500e0102330c7000000a398b2 +:107490002128a700000083b8212087000f00c330f7 +:1074a0002338c3000d00e010213060002138e500d2 +:1074b0000000a38c0400a88c0800a98c0c00aa8ce6 +:1074c000000083ac040088ac080089ac1000a5243f +:1074d00010008424f6ffa714fcff8aac0300c3301d +:1074e0002338c3000700e010213060002138e50098 +:1074f0000000a38c0400a52404008424fcffa7142e +:10750000fcff83ac0600c0102138c5000000a3902a +:107510000100a52401008424fcffa714ffff83a021 +:107520000800e0030000000000008a9021108000a5 +:1075300003004015000000000800e00300000224e2 +:1075400001008a9003004015000000000800e003dd +:107550000100022402008a90030040150000000090 +:107560000800e0030200022403008a900300401593 +:10757000822004000800e0030300022401008424a8 +:107580008020040000008a8c0101093c010129359a +:10759000c07909002340490124400f010600001171 +:1075a00024600a01040088110000000000008a9095 +:1075b000220000100000842404008b8c2340690109 +:1075c00024400f010600001124600b010400881103 +:1075d0000000000004008a901800001004008424b9 +:1075e00008008a8c2340490124400f010600001145 +:1075f00024600a01040088110000000008008a903d +:107600000e000010080084240c008b8c23406901bc +:1076100024400f010600001124600b0104008811b2 +:10762000000000000c008a90040000100c0084246c +:1076300010008a8cd7ff001010008424040040152d +:1076400000000000000084240800e00323108200f2 +:1076500001008a900400401500000000010084240d +:107660000800e0032310820002008a900400401505 +:1076700000000000020084240800e00323108200c0 +:1076800003008a90030084240800e0032310820092 +:020000040000fa +:020000041d02db +:107690000c00a294e0ffbd27020043301400b0affd +:1076a0001c00bfaf1800b1af2b0060102180a000fc +:1076b000000243301c0060100400a38c000242341e +:1076c0000c00a2a41d006010ff0091300a000424e9 +:1076d00028002412800042301000028e3e0062100a +:1076e000010063240000028e01004424040003ae64 +:1076f000000051a00100032400a0023c000004aee1 +:10770000550143a00a000224210022520c000296d7 +:107710001c00bf8f211020021400b08f1800b18f01 +:107720000800e0032000bd270b0060140002423473 +:107730000c00a2a4ff009130211800000800048e64 +:10774000000004ae0a000424e4ff24561000028e58 +:10775000dd9d400b800042301c00bf8fffff1124d5 +:10776000211020021400b08f1800b18f0800e00330 +:107770002000bd27d9ff40541000028e0d000424c4 +:10778000a49d400f21280002b69d400b0400038eeb +:1077900000014230dfff40101c00bf8f0e00049636 +:1077a0000800058ebba1400f0400068e0400038e66 +:1077b000060043500800028e0c000296ffff1124c1 +:1077c000300042340c0002a60800028e040000ae15 +:1077d000c49d400b000002ae2024117cfb9d400f95 +:0c77e00021280002c49d400b21884000bd +:020000040000fa +:020000041d02db +:1077ec000c00a294e8ffbd27400043301000b0af5e +:1077fc001400bfaf2180a0001c0060141800a4a3cb +:10780c00020043303d006050300042341000a38c25 +:10781c001b0060500e00a4940800a58c2d00a050f5 +:10782c0000a0053c0400068ebba1400f0e00049680 +:10783c00ffff02240800038e040002ae1800a2937e +:10784c00000062a01800a28301006324000003aeb4 +:10785c000a000324130043500c0003961400bf8f3e +:10786c001000b08f0800e0031800bd271400bf8f74 +:10787c002014047c1000b08f0800e0031800bd2712 +:10788c0001000624bba1400f1800a5271400bf8fd0 +:10789c001800a283040000ae1000b08f0800e003b3 +:1078ac001800bd2700016330edff60101400bf8f7e +:1078bc000e0004960800058ebba1400f0400068e36 +:1078cc000800038e1800a283040000ae1a9e400b21 +:1078dc00000003ae4840a5242000032408004234d5 +:1078ec00080005ae000005ae100003ae040003aea8 +:1078fc000c0002a60d9e400b200006240c00a2a436 +:0c790c000400a0ac1a9e400bffff0224f8 +:020000040000fa +:020000041d02db +:10791800e8ffbd271400bfaf1000beaf21f0a003e1 +:10792800029d023c3c7e428c688182af08000424a0 +:10793800e80305249876400f0000000021e8c00302 +:107948001400bf8f1000be8f1800bd270800e00389 +:1079580000000000e8ffbd271400bfaf1000beaf55 +:1079680021f0a0035191400f0000000021184000b1 +:10797800010002240700621400000000e591400f96 +:1079880000000000688182af01000224689e400b5d +:10799800000000002110000021e8c0031400bf8f80 +:1079a8001000be8f1800bd270800e003000000008b +:1079b800f8ffbd270400beaf21f0a0036881828fc5 +:1079c80021e8c0030400be8f0800bd270800e003bb +:1079d80000000000e8ffbd271400bfaf1000beafd5 +:1079e80021f0a00308000424ab75400f000000003c +:1079f8000800401000000000e591400f0000000062 +:107a0800688182af08000424e80305249876400fb3 +:107a18000000000021e8c0031400bf8f1000be8fd3 +:0c7a28001800bd270800e003000000006b +:020000040000fa +:020000041d02db +:107a34000c008394e0ffbd271000b0af01000224c6 +:107a440021808000110064301c00bfaf1800b2af69 +:107a5400300082141400b1af0002623018004014e8 +:107a64000400028efffd63300c0003a61a001124eb +:107a74000d00122418004018ffff44240000028e59 +:107a8400040004ae0100442400004290000004ae4f +:107a940080006430050080141c00bf8f1500515015 +:107aa4000800028e0a0052500400028e1800b28fa1 +:107ab4001400b18f1000b08f0800e0032000bd2730 +:107ac40014004014211000009b9e400bfffd633006 +:107ad400eaff401cffff4424400062300d004014c4 +:107ae40021200002319c400f00000000a59e400ba5 +:107af4000c000396080040101c00bf8f0400048e85 +:107b04000000028e01008424ffff4224040004ae1e +:107b1400000002ae1c00bf8f100063340c0003a6eb +:107b2400ffff02241800b28f1400b18f1000b08f31 +:087b34000800e0032000bd275a +:020000040000fa +:020000041d02db +:107b3c000020202020202020202028282828282031 +:107b4c002020202020202020202020202020202029 +:107b5c002080101010101010101010101010101099 +:107b6c001004040404040404040404101010101081 +:107b7c00101041414141414101010101010101014b +:107b8c00010101010101010101010101101010109d +:107b9c00101042424242424202020202020202021d +:107bac000202020202020202020202021010101071 +:107bbc002000000000000000000000000000000099 +:107bcc0000000000000000000000000000000000a9 +:107bdc000000000000000000000000000000000099 +:107bec000000000000000000000000000000000089 +:107bfc000000000000000000000000000000000079 +:107c0c000000000000000000000000000000000068 +:107c1c000000000000000000000000000000000058 +:107c2c000000000000000000000000000000000048 +:107c3c00000000000009121b242d363f48415a5306 +:107c4c006c657e7719100b023d342f265158434a30 +:107c5c00757c676e323b2029161f040d7a736861a0 +:107c6c005e574c452b2239300f061d14636a717810 +:107c7c00474e555c646d767f4049525b2c253e37f0 +:107c8c0008011a137d746f6659504b42353c272ef0 +:107c9c001118030a565f444d727b60691e170c0560 +:107cac003a3328214f465d546b627970070e151cd0 +:107cbc00232a31384148535a656c777e09001b12d0 +:107ccc002d243f3658514a437c756e671019020bb0 +:107cdc00343d262f737a6168575e454c3b32292020 +:107cec001f160d046a6378714e475c55222b303990 +:107cfc00060f141d252c373e0108131a6d647f7670 +:107d0c0049405b523c352e2718110a03747d666f6f +:107d1c005059424b171e050c333a21285f564d44df +:107d2c007b7269600e071c152a233831464f545d4f +:047d3c00626b70798d +:020000040000fa +:020000041d02db +:107d4000e0ffbd27040002241800b0af1c00bfaf45 +:107d50001c00c21021808000000102240300c21018 +:107d6000000000001300c0141c00bf8f2800a050aa +:107d70000800058e0c000296080042340c0002a692 +:107d80000c000296080005aefbfe42302530c20012 +:107d9000100007ae0c0006a6040000ae2110000083 +:107da0001c00bf8f1800b08f0800e0032000bd2723 +:107db0001c00bf8fffff02241800b08f0800e003f3 +:107dc0002000bd270c008294080042300700405478 +:107dd0000c0002960800848c040080500c0002966f +:107de000dba4400f000000000c000296000000ae73 +:107df000f7fe4230040042340c0002a6080000ae38 +:107e0000100000ae040000ae689f400b211000007f +:107e10000300a01000000000609f400b1000078ec0 +:107e20005da3400f1000a6af21284000e0ff4010e6 +:0c7e30001000a68f609f400b200007246c +:020000040000fa +:020000041d02db +:107e4000286e756c6c29000030313233343536378a +:107e50003839414243444546000000003031323356 +:107e60003435363738396162636465660000000076 +:107e700001000000000000000a00000000000000f7 +:107e80006400000000000000e803000000000000a3 +:107e90001027000000000000a08601000000000084 +:107ea00040420f0000000000809698000000000093 +:107eb00000e1f5050000000000ca9a3b0000000048 +:107ec00000e40b540200000000e8764817000000b0 +:107ed0000010a5d4e800000000a0724e18090000b0 +:107ee00000407a10f35a00000080c6a47e8d030083 +:107ef0000000c16ff286230000008a5d78456301af +:107f0000000064a7b3b6e00d0000e8890423c78a27 +:107f10000000803f000020410000003f5f7089406a +:020000040000fa +:020000041d02db +:107f2000a8ffbd270400a1af0800a2af0c00a3afbb +:107f30001000a4af1400a5af1800a6af1c00a7af97 +:107f40002000a8af2400a9af2800aaaf2c00abaf37 +:107f50003000acaf3400adaf3800aeaf3c00afafd7 +:107f60004000b8af4400b9af4800bfaf12400000b6 +:107f70004c00a8af104000005000a8af039d1a3c71 +:107f8000c88c5a27000000000068044000600540cb +:107f900009f84003000000005000a88f1100000104 +:107fa0004c00a88f130000010400a18f0800a28fcd +:107fb0000c00a38f1000a48f1400a58f1800a68fab +:107fc0001c00a78f2000a88f2400a98f2800aa8f4b +:107fd0002c00ab8f3000ac8f3400ad8f3800ae8feb +:107fe0003c00af8f4000b88f4400b98f4800bf8f6e +:0c7ff0005800bd27c0000000180000422f +:020000040000fa +:020000041d02db +:107ffc00e8ffbd271400bfaf1000beaf21f0a003f7 +:10800c0081bf023c00f6428c100042300700401049 +:10801c000000000001000224188182af039d023c85 +:10802c0004924424e3a3400f0000000021e8c003a5 +:10803c001400bf8f1000be8f1800bd270800e0038e +:10804c0000000000f8ffbd270400beaf21f0a00324 +:10805c0080bf023c00800334080043ac21e8c0031d +:10806c000400be8f0800bd270800e00300000000dc +:10807c00f8ffbd270400beaf21f0a00380bf023c77 +:10808c0000800334040043ac21e8c0030400be8f1d +:10809c000800bd270800e00300000000f8ffbd2722 +:1080ac000400beaf21f0a00380bf023c01000324fa +:1080bc00080043ac21e8c0030400be8f0800bd27b4 +:1080cc000800e00300000000e0ffbd271c00bfaf6c +:1080dc001800b2af1400b1af1000b0af2700a01061 +:1080ec00211080002020a470200011242380240261 +:1080fc0040300500271810000430660006180202f4 +:10810c002518c30006280502200006320a2866003e +:10811c00042082000100a3340b286400ada3400f9f +:10812c002120a0000f001112219040001f000224fa +:10813c000f0002120100042402a3400f04200402c9 +:10814c0021284000f59a400f212040021c00bf8fcf +:10815c001800b28f1400b18f1000b08f0800e0032c +:10816c002000bd27039d023c54a0400bf893458c86 +:10817c00039d023c54a0400bfc93458cada3400fd7 +:10818c00000000001c00bf8f1800b28f1400b18fcc +:0c819c001000b08f0800e0032000bd2799 +:020000040000fa +:020000041d02db +:1081a80053504920466c61736820636f6e66696737 +:1081b80075726564000000004552524f523a2053d0 +:1081c800504920466c617368206e6f742064657432 +:1081d8006563746564000000466c6173682073749d +:1081e80061747573207265676973746572203a20cb +:1081f800307825780a00000053504920466c617396 +:108208006820646574656374696f6e204641494ce3 +:1082180045442e202056656e646f723a20307825ca +:10822800782c20436869702049443a2030782578b2 +:108238000a00000053504920466c61736820646549 +:108248007465637465642e202056656e646f723a97 +:1082580020307825782c20436869702049443a20da +:08826800307825780a000000bf +:020000040000fa +:020000041d02db +:10827000e0ffbd271800b0af00a0103c8440028e84 +:10828000100040101c00bfaf1b00801821184400d4 +:108290002b206200110080141c00bf8f00a0043c42 +:1082a0006001848c2b2083000d00805400a0023cd0 +:1082b0001c00bf8f844003ae1800b08f0800e0039d +:1082c0002000bd27cc9b400f1000a4af8440028e3d +:1082d000edff40141000a48f1c00bf8f00a0023cd3 +:1082e0000c000324580143ac1800b08fffff022498 +:1082f0000800e0032000bd272b2043000500801468 +:1083000000a0043c5c01848c2b206400e9ff8010f9 +:108310001c00bf8f1c00bf8f00a0023c160003246e +:10832000580143ac1800b08fffff02240800e0039f +:048330002000bd2745 +:020000040000fa +:020000041d02db +:10833400211080002600c0101000ca2c1f00401518 +:10834400ff00a530005205002528aa0000540500ae +:108354002528aa00030083300500601004000724c8 +:108364002338e3002330c700000085b821208700ac +:108374000f00c3302338c3000800e0102130600030 +:108384002138e400000085ac040085ac080085ac0d +:1083940010008424fbff8714fcff85ac0300c3306a +:1083a4002338c3000500e010213060002138e400c8 +:1083b40004008424feff8714fcff85ac0400c01075 +:1083c4002138c40001008424feff8714ffff85a028 +:0883d4000800e00300000000b6 +:020000040000fa +:020000041d02db +:1083dc00200002240900052400008380feff625067 +:1083ec0001008424030065542d000224f9a0400be5 +:1083fc0001008424190062102b0002241b0062501f +:10840c000100842421380000029d063c3c7bc624dc +:10841c002110c30001004290040042300c004010b7 +:10842c002110000040280200c01002002110a20000 +:10843c000100842421104300000083802128c30004 +:10844c000100a5900400a530f6ffa014d0ff422433 +:10845c00231802000800e0030b10670001008424bd +:10846c000000838005a1400b0100072400008380dd +:08847c0005a1400b21380000ae +:020000040000fa +:020000041d02db +:10848400e0ffbd271800b0af029d103c3c7b1026d6 +:1084940021189000010063901c00bfaf04006730f6 +:1084a4000900e01021108000d0ff82242a28450012 +:1084b4001100a0101c00bf8fff0042301800b08fc5 +:1084c4000800e0032000bd27010067300400e050ed +:1084d400030063300c00c01400000000030063308c +:1084e40004006010a9ff42242a284500f2ffa014ca +:1084f4001c00bf8f1c00bf8fff0002241800b08f28 +:108504000800e0032000bd274ca4400f1000a5afd5 +:10851400218050000100039238a1400b1000a58f68 +:020000040000fa +:020000041d02db +:10852400feff082440300400403805002548c700f9 +:108534001b0020110000000000ff013c0100213459 +:108544002b08c1001a0020100000000000ff013cad +:10855400010021342b08e100150020100000000068 +:108564000200810442300600233006000200a10408 +:1085740042380700233807002a08c70003002010e8 +:108584000000000007000010ffff02242a08e60094 +:10859400030020100000000002000010010002246b +:1085a400000002240800e0030000000000000000b6 +:0c85b400fcff0010251008000000000073 +:020000040000fa +:020000041d02db +:1085c0000400c92805002011213886001700c01cae +:1085d000000000000800e003211000002540850095 +:1085e000030008310300001100000000100000101b +:1085f000000088900000888c0000a98c040084246e +:10860000050009110400a524fcffa524fcff842417 +:108610000700001000008890fcffc624f5ffc01c76 +:10862000000000000800e003211000000000889016 +:108630000000a99001008424030009110100a52471 +:108640000800e00323100901f8ff87140000000070 +:088650000800e0032110000006 +:020000040000fa +:020000041d02db +:108658000c008294e8ffbd271000b0af010003248e +:108668002180800001024430170083101400bfaf3e +:108678000202423002020324060043500800058e1d +:10868800211000001400bf8f1000b08f0800e00315 +:108698001800bd27fbffa010211000000400068e63 +:1086a800f9ffc0101400bf8fbba1400f0e00049645 +:1086b8000400038e040043100c000296300042347c +:1086c800ffff42300c0002a60800048e2000433051 +:1086d800ffff0224040000ae000004aea3a1400b7b +:0486e8000a10030071 +:020000040000fa +:020000041d02db +:1086ec00e0ffbd271c00bfaf1200a0101800b0aff8 +:1086fc001000c0100300842c060080140000023c03 +:10870c001c00bf8f2110c0001800b08f0800e003c0 +:10871c002000bd27000042240b0040102120a000a7 +:10872c002128c0000000000c1400a6afc3a1400b10 +:10873c001400a68f1c00bf8f211000001800b08ff2 +:10874c000800e0032000bd272180a6000000a480c3 +:10875c000100a5241000a5afad8a400f1400a6aff0 +:10876c001000a58ff9ffb0141400a68fc4a1400b04 +:04877c001c00bf8f8f +:020000040000fa +:020000041d02db +:10878000c2350400ff00c630ffffc924fe00212dc2 +:108790000b0020100000000082ffc6247f80013cf7 +:1087a000ffff213424208100003f013c252081006f +:1087b0000000a6ac251004000800e0030000000043 +:1087c0000d00c0140000000021488400f8ff2011b3 +:1087d00000000000403a04002040e8702330c80048 +:1087e000043807010080013c24208100024a070070 +:1087f000e9ff001025208900c0ff043cecff0010b9 +:08880000000006240000000046 +:020000040000fa +:020000041d02db +:10880800002a04000080013c2528a100c23d040084 +:10881800ff00e7309e0006242330c7000d00c00487 +:10882800000000002000c128030020140000000000 +:108838000500001000000224020081040628c5007b +:1088480023280500251005000800e00300000000ab +:1088580000000000807f013c010021342b088100ca +:108868000300201400000000f7ff00100080023c05 +:0c887800f5ff0010ffff022400000000cc +:020000040000fa +:020000041d02db +:10888400e8ffbd271400bfafeca4400f00000000b8 +:1088940088bf023c0030438c0003637c08006014f2 +:1088a40099aa033c0010042488bf033c083064ac3c +:1088b4000030438c00086330fdff601499aa033c28 +:1088c40081bf023c5566632430f240ac30f243acc5 +:1088d4006655033caa99633430f243ac81bf023c31 +:1088e4000100032418f643ac81bf023c10f6428c0d +:0888f4003da2400b0000000052 +:020000040000fa +:020000041d02db +:1088fc00e0ffbd271800b2af1400b1af1000b0af4d +:10890c001c00bfaf218080002188a0004ca2400b2e +:10891c00ffff1224a49d400f000000000b0052101a +:10892c00010010260000028221282002f9ff4014c9 +:10893c00212040001c00bf8f1800b28f1400b18f93 +:10894c001000b08f0800e0032000bd271c00bf8f73 +:10895c00ffff02241800b28f1400b18f1000b08feb +:08896c000800e0032000bd2714 +:020000040000fa +:020000041d02db +:108974001b00c01021100000000082801100401074 +:108984000000a38012004314ffffc6246ca2400b16 +:10899400ffff072400008280090040100100a52485 +:1089a4000000a3800b004314ff004230ffffc624e5 +:1089b400f8ffc714010084240800e003211000001c +:1089c4000000a380ff0063300800e003231043008d +:1089d400ff004230ff0063300800e003231043002f +:0889e4000800e00300000000a0 +:020000040000fa +:020000041d02db +:1089ec00ffff032403008314211080000800e00320 +:1089fc00000000000c00a494010003240102843048 +:108a0c00030083500800a68c0800e003ffff02243b +:108a1c00f6ffc050ffff02240400a48c1000a38cae +:108a2c00f2ff8350ffff02240000a38c0600c3104a +:108a3c00010084240400a4acffff64240000a4ac57 +:108a4c000800e003ffff62a00100632491a2400b29 +:048a5c000000a3acc7 +:020000040000fa +:020000041d02db +:108a6000f8ffbd270400beaf21f0a003211880004d +:108a70002110a0000800c3a30c00c2a30c00c393e4 +:108a800080bf023c305a43ac0800c39380bf023c15 +:108a9000205a43ac0000000080bf023c105a428cb8 +:108aa00001004230fcff40100000000080bf023c8b +:108ab000205a428c0800c2a30800c29321e8c003d8 +:108ac0000400be8f0800bd270800e003000000007e +:108ad000f8ffbd270400beaf21f0a00388bf033c10 +:108ae000e060628c8431027ce06062ac21e8c0030b +:108af0000400be8f0800bd270800e003000000004e +:108b0000f8ffbd270400beaf21f0a00388bf033cdf +:108b1000e060628c010004248431827ce06062acfd +:108b20000100022421e8c0030400be8f0800bd2715 +:088b30000800e0030000000052 +:020000040000fa +:020000041d02db +:108b3800d0ffbd273800a2273800a6af1000a2af8b +:108b480021304000ff7f02242800b0af2400a2afec +:108b580021808000c20002241400a4272c00bfaf8b +:108b68001400b0af1c00b0af3c00a7af1800a0af16 +:108b78009d4e400f2000a2a71400a28f000040a025 +:108b88001400a28f2c00bf8f231050002800b08f34 +:088b98000800e0033000bd27d6 +:020000040000fa +:020000041d02db +:108ba0000000803f000020410000c84200007a44dd +:108bb00000401c460050c347002474498096184b5f +:108bc00020bcbe4c286b6e4ef9021550ec78ad609f +:108bd000caf249710000803fcdcccc3d0ad7233c7e +:108be0006f12833a17b7d138acc52737bd378635f2 +:108bf00095bfd63377cc2b325f708930ffe6db2e02 +:088c000008e53c1e6042a20dd4 +:020000040000fa +:020000041d02db +:108c08000080013c120080102430810002008104a1 +:108c180000000000232004009e00052420388770ef +:108c28002328a7000420e400800084248000882ce6 +:108c38002128a800034204000100083123208800ed +:108c48004020040042220400c04505002520880079 +:108c5800251086000800e003000000000000000066 +:020000040000fa +:020000041d02db +:108c6800e0ffbd271400b0af029d103c1800b1af63 +:108c78001c00bfaf00a0113c3c7b10268d9e400f0e +:108c8800b840248e211802020100638088006330f6 +:108c9800faff6014ffff03240400431000a0033c04 +:108ca800b840658c7ba2400f212040001c00bf8f7c +:108cb8001800b18f1400b08f0800e0032000bd2712 :020000040000fa -:020000041d02db -:108a2000e0ffbd271c00bfaf1800beaf21f0a003c0 -:108a3000004802401000c2af006802401f004230f0 -:108a4000a08082af00700240a88082af0060034027 -:108a5000ff0f023cfeff423424106200006082409f -:108a6000c000000040000000400000004000000086 -:088a700077a1400f0000000097 +:020000041d02db +:108cc800e0ffbd271c00bfaf1800beaf21f0a00316 +:108cd800004802401000c2af006802401f00423046 +:108ce800e48082af00700240ec8082af00600340f5 +:108cf800ff0f023cfeff42342410620000608240f5 +:108d0800c0000000400000004000000040000000db +:088d180021a2400f0000000041 :020000040000fa :020000041d02db -:108a7800c8ffbd274000a3273400bfaf4000a6af02 -:108a88004400a7af1000a3af1400a4af1c00a4af0c -:108a9800a19c400f2800a5af1000a68f2800a58f25 -:108aa8001800a2af2400a2af1400a427c10002241a -:108ab800797c400f2000a2a73400bf8f0800e00394 -:048ac8003800bd278e +:108d2000c8ffbd274000a3273400bfaf4000a6af57 +:108d30004400a7af1000a3af1400a4af1c00a4af61 +:108d40004a9d400f2800a5af1000a68f2800a58fd0 +:108d50001800a2af2400a2af1400a427c10002246f +:108d6000e37c400f2000a2a73400bf8f0800e0037f +:048d70003800bd27e3 :020000040000fa :020000041d02db -:108acc0000a0033cb040628ce8ffbd270d004010b5 -:108adc001400bfaf0000448cb04064acffff032413 -:108aec00030043101400bf8f0800e0031800bd27db -:108afc00e966042400a0033c580164ac0800e003c0 -:108b0c001800bd27dca2400f20000424bba2400ba0 -:048b1c00ffff032430 +:108d740000a0033cb440628ce8ffbd270d00401006 +:108d84001400bfaf0000448cb44064acffff032464 +:108d9400030043101400bf8f0800e0031800bd2730 +:108da400e966042400a0033c580164ac0800e00315 +:108db4001800bd2786a3400f2000042465a3400ba0 +:048dc400ffff032486 :020000040000fa :020000041d02db -:108b200000000000000000000000000000600700de -:108b30000000000000600700003000000008000096 -:108b40000038000000180000003000000020000085 -:108b50000050000000100000006000000020000035 -:108b60000080000000100000000000000020000055 +:108dc8000000000000000000000000000060070034 +:108dd80000000000006007000030000000080000ec +:108de80000380000001800000030000000200000db +:108df800005000000010000000600000002000008b +:108e080000800000001000000000000000200000aa :020000040000fa :020000041d02db -:108b7000e0ffbd271800b1af1400b0af1c00bfafbd -:108b8000f29f400f218880000700201a21804000ba -:108b9000ffff02240400021221200002212800000d -:108ba00023a0400f213020021c00bf8f21100002a3 -:108bb0001800b18f1400b08f0800e0032000bd271b +:108e1800e0ffbd271800b1af1400b0af1c00bfaf12 +:108e28009ca0400f218880000700201a2180400064 +:108e3800ffff022404000212212000022128000062 +:108e4800cda0400f213020021c00bf8f211000024e +:108e58001800b18f1400b08f0800e0032000bd2770 :020000040000fa :020000041d02db -:108bc0000000043ce8ffbd2700008424030080105f -:108bd0001400bfaf09f880000000000000008430de -:108be0000000a5300889400f000000000000023c92 -:108bf00000004224030040100000000009f840007b -:0c8c000000000000f9ff00100000000060 +:108e68000000043ce8ffbd270000842403008010b4 +:108e78001400bfaf09f88000000000000000843033 +:108e88000000a5307289400f000000000000023c7d +:108e980000004224030040100000000009f84000d0 +:0c8ea80000000000f9ff001000000000b6 :020000040000fa :020000041d02db -:108c0c00e8ffbd271400bfaf0600800421108000d0 -:108c1c0058a2400f000000001400bf8f0800e003b2 -:108c2c001800bd27010042304220040058a2400f1a -:108c3c0025208200212040001594400f212840005f -:0c8c4c001400bf8f0800e0031800bd27d3 +:108eb400e8ffbd271400bfaf060080042110800026 +:108ec40002a3400f000000001400bf8f0800e0035d +:108ed4001800bd27010042304220040002a3400fc5 +:108ee40025208200212040004695400f2128400083 +:0c8ef4001400bf8f0800e0031800bd2729 :020000040000fa :020000041d02db -:108c58000000023ce8ffbd27000042240600401047 -:108c68001400bfaf0000023c000042240300401083 -:108c7800039d023c3f000070039d023ca08c4224ef -:108c8800030040100000000009f840000000000048 -:088c980026a3400b00000000c0 +:108f00000000023ce8ffbd2700004224060040109c +:108f10001400bfaf0000023c0000422403004010d8 +:108f2000039d023c3f000070039d023c488f422499 +:108f3000030040100000000009f84000000000009d +:088f4000d0a3400b000000006b :020000040000fa :020000041d02db -:108ca00000606041c000000099aa033c81bf023c03 -:108cb0005566632430f240ac30f243ac6655033c59 -:108cc000aa99633430f243ac81bf023c0100032413 -:108cd00018f643ac81bf023c10f6428c2aa3400b2d -:048ce0000000000090 +:108f480000606041c000000099aa033c81bf023c58 +:108f58005566632430f240ac30f243ac6655033cae +:108f6800aa99633430f243ac81bf023c0100032468 +:108f780018f643ac81bf023c10f6428cd4a3400bd8 +:048f880000000000e5 :020000040000fa :020000041d02db -:108ce400e0ffbd271400b0af00a0103c743d052682 -:108cf4001c00bfaf95a1400f1800b1af743d05260d -:108d04000a000424fb9c400f218840001c00bf8ff4 -:108d1400211020021400b08f1800b18f0800e00366 -:048d24002000bd2747 +:108f8c00e0ffbd271400b0af00a0103c783d0526d3 +:108f9c001c00bfaf3fa2400f1800b1af783d0526b3 +:108fac000a000424a49d400f218840001c00bf8fa0 +:108fbc00211020021400b08f1800b18f0800e003bc +:048fcc002000bd279d :020000040000fa :020000041d02db -:108d2800e0ffbd272400a2272118800000a0043cf2 -:108d38002400a5af2800a6af743d84242128600034 -:108d4800213040001c00bfaf2c00a7af6f49400f77 -:108d58001000a2af1c00bf8f0800e0032000bd2751 +:108fd000e0ffbd272400a2272118800000a0043c48 +:108fe0002400a5af2800a6af783d84242128600086 +:108ff000213040001c00bfaf2c00a7af9d4e400f9a +:109000001000a2af1c00bf8f0800e0032000bd27a6 :020000040000fa :020000041d02db -:108d68000000023c00004224050040100000023cc4 -:108d78000000422403004010039d023c3f000070a5 -:108d8800039d023ca08c4224fdff4010000000001f -:088d980009f840000000000092 +:109010000000023c00004224050040100000023c19 +:109020000000422403004010039d023c3f000070fa +:10903000039d023c488f4224fdff401000000000c9 +:0890400009f8400000000000e7 :020000040000fa :020000041d02db -:108da0004a462e636f6d00004261747465727920cb -:108db000766f6c746167653a2025660a00000000d2 -:108dc00000c07f443d0a57400000304133335340d8 -:108dd0000ad7233d4a462e636f6d00004368616cdd -:108de00065744475696e6f20563220496e697469e6 -:108df000616c697a65640000746573742025640a87 -:048e0000000000006e +:109048004a462e636f6d0000426174746572792020 +:10905800766f6c746167653a2025660a0000000027 +:1090680000c07f443d0a574000003041333353402d +:109078000ad7233d4a462e636f6d00004368616c32 +:1090880065744475696e6f20563220496e6974693b +:10909800616c697a65640000746573742025640adc +:0490a80000000000c4 :020000040000fa :020000041d02db -:108e0400006803408000023c251062000068824034 -:108e1400040080100010032488bf023c0800e00313 -:108e2400041043ac88bf023c0800e003081043acc4 +:1090ac00006803408000023c25106200006882408a +:1090bc00040080100010032488bf023c0800e00369 +:1090cc00041043ac88bf023c0800e003081043ac1a :020000040000fa :020000041d02db -:108e340000a0033c8440622401000424080044ace4 -:108e440000a0043cc0408424844064ac0000033c83 -:0c8e5400000263240800e003040043acab +:1090dc0000a0033c8840622401000424080044ac36 +:1090ec0000a0043cc0408424884064ac0000033cd5 +:0c90fc00000263240800e003040043ac01 :020000040000fa :020000041d02db -:108e6000496e766572746572207475726e656420e1 -:108e70004f4e0000496e766572746572207475728b -:088e80006e6564204f464600b8 +:10910800496e766572746572207475726e65642036 +:109118004f4e0000496e76657274657220747572e0 +:089128006e6564204f4646000d :020000040000fa :020000041d02db -:108e8800029d033c987863242118830021108000f8 -:108e98000100649020004324010084300800e003ae -:048ea8000b10640047 +:10913000029d033c3c7b63242118830021108000a6 +:109140000100649020004324010084300800e00303 +:049150000b1064009c :020000040000fa :020000041d02db -:108eac00029d023c987842242110820001004290dd -:108ebc00e0ff8324020042300b2062000800e00334 -:048ecc0021108000f1 +:10915400029d023c3c7b422421108200010042908b +:10916400e0ff8324020042300b2062000800e00389 +:049174002110800046 :020000040000fa :020000041d02db -:108ed000f8ffbd270400beaf21f0a00321e8c003c6 -:108ee0000400be8f0800bd270800e003000000005a +:10917800f8ffbd270400beaf21f0a00321e8c0031b +:109188000400be8f0800bd270800e00300000000af :020000040000fa :020000041d02db -:108ef0005052494e544600005258204649464f2091 -:0c8f00004f766572666c6f770000000011 +:109198005052494e544600005258204649464f20e6 +:0c91a8004f766572666c6f770000000067 :020000040000fa :020000041d02db -:108f0c000100843003008014000000000800e0031e -:0c8f1c00006060410800e003206060413c +:1091b4000100843003008014000000000800e00374 +:0c91c400006060410800e0032060604192 :020000040000fa :020000041d02db -:108f28000300a01021300000a79e400b200007245a -:0c8f380004000624a79e400b2138000016 +:1091d0000300a01021300000509f400b2000072406 +:0c91e00004000624509f400b21380000c2 :020000040000fa :020000041d02db -:108f44005541525431204f4552520000554152541c -:108f540032204f45525200005761746368646f6752 -:108f640020776173207472696767657265640000b5 +:1091ec005541525431204f45525200005541525472 +:1091fc0032204f45525200005761746368646f67a8 +:10920c00207761732074726967676572656400000a :020000040000fa :020000041d02db -:108f7400f8ff0224008003402410620002004234ff -:088f84000800e00300808240b8 +:10921c00f8ff022400800340241062000200423454 +:08922c000800e003008082400d :020000040000fa :020000041d02db -:108f8c00f8ff0224008003402410620003004234e6 -:088f9c000800e00300808240a0 +:10923400f8ff02240080034024106200030042343b +:089244000800e00300808240f5 :020000040000fa :020000041d02db -:108fa40000601a40bfff1b3cffff7b3724d05b03ec -:088fb40000609a401800004221 +:10924c0000601a40bfff1b3cffff7b3724d05b0341 +:08925c0000609a401800004276 :020000040000fa :020000041d02db -:108fbc00029d023c9878422421104400010042900a -:088fcc000800e0030700423039 +:10926400029d023c3c7b42242110440001004290b8 +:089274000800e003070042308e :020000040000fa :020000041d02db -:108fd400029d023c987842242110440001004290f2 -:088fe4000800e0030300423025 +:10927c00029d023c3c7b42242110440001004290a0 +:08928c000800e003030042307a :020000040000fa :020000041d02db -:108fec00029d023c987842242110440001004290da -:088ffc000800e00320004230f0 +:10929400029d023c3c7b4224211044000100429088 +:0892a4000800e0032000423045 :020000040000fa :020000041d02db -:10900400029d023c987842242110440001004290c1 -:089014000800e00304004230f3 +:1092ac00029d023c3c7b4224211044000100429070 +:0892bc000800e0030400423049 :020000040000fa :020000041d02db -:10901c00029d023c987842242110440001004290a9 -:08902c000800e00317004230c8 +:1092c400029d023c3c7b4224211044000100429058 +:0892d4000800e003170042301e :020000040000fa :020000041d02db -:10903400029d023c98784224211044000100429091 -:089044000800e00302004230c5 +:1092dc00029d023c3c7b4224211044000100429040 +:0892ec000800e003020042301b :020000040000fa :020000041d02db -:10904c00029d023c98784224211044000100428089 -:08905c000800e0039700423018 +:1092f400029d023c3c7b4224211044000100428038 +:089304000800e003970042306d :020000040000fa :020000041d02db -:10906400029d023c98784224211044000100429061 -:089074000800e0031000423087 +:10930c00029d023c3c7b422421104400010042900f +:08931c000800e00310004230dc :020000040000fa :020000041d02db -:10907c00029d023c98784224211044000100428059 -:08908c000800e00388004230f7 +:10932400029d023c3c7b4224211044000100428007 +:089334000800e003880042304c :020000040000fa :020000041d02db -:10909400029d023c98784224211044000100429031 -:0890a4000800e0030100423066 +:10933c00029d023c3c7b42242110440001004290df +:08934c000800e00301004230bb :020000040000fa :020000041d02db -:1090ac00029d023c98784224211044000100429019 -:0890bc000800e003440042300b +:10935400029d023c3c7b42242110440001004290c7 +:089364000800e0034400423060 :020000040000fa :020000041d02db -:1090c40000a0023cb040438cb04044ac0800e00334 -:0490d400000083ac69 +:10936c0000a0023cb440438cb44044ac0800e00381 +:04937c00000083acbe :020000040000fa :020000041d02db -:1090d8004348414c45545f5630312e30302e3200d3 -:1090e8004a462e636f6d00000000803d000000417d -:0890f8004a462e636f6d000073 +:109380004348414c45545f5630312e30302e320028 +:109390004a462e636f6d00000000803d00000041d2 +:0893a0004a462e636f6d0000c8 :020000040000fa :020000041d02db -:089100000800e0032060624159 +:0893a8000800e00320606241af :020000040000fa :020000041d02db -:089108000800e0030060624171 +:0893b0000800e00300606241c7 :020000040000fa :020000041d02db -:089110000800e003000000006c +:0893b8000800e00300000000c2 :020000040000fa :020000041d02db -:089118000800e0030000000064 +:0893c0000800e00300000000ba :020000040000fa :020000041d02db -:089120000800e003211000002b +:0893c8000800e0032110000081 :020000040000fa :020000041d02db -:089128000800e0038000822c26 +:0893d0000800e0038000822c7c :020000040000fa :020000041d02db -:089130000800e0037f0082301b +:0893d8000800e0037f00823071 :020000040000fa :020000041d02db -:089138000800e003200082247e +:0893e0000800e00320008224d4 :020000040000fa :020000041d02db -:089140000800e003e0ff8224b7 +:0893e8000800e003e0ff82240d :020000040000fa :020000041d02db -:089148000800e003800002248e +:0893f0000800e00380000224e4 :020000040000fa :020000041d02db -:0c9150000000804f0000004fbfad3a4f00 +:0893f8000000804f0000004f4f +:020000040000fa +:020000041d02db +:047e3c00bfad3a4f4d :00000001FF diff --git a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.map b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.map index ab9c92c..9da16c5 100644 --- a/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.map +++ b/ChaletLora.X/dist/ChaletDuinoV2_795F512H_/production/ChaletLora.X.production.map @@ -17,13 +17,13 @@ c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcmp.o) build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o (memcmp) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o (memcpy) + build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o (memcpy) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o (memset) + build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o (memset) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o (strcpy) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o (strlen) + build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o (strlen) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o (_bootstrap_exception_handler) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) @@ -42,8 +42,6 @@ c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../ c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_1) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_2) -c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) - c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_3) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o (__vector_dispatch_5) c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) @@ -276,6 +274,7 @@ TerminalRxBuf 0x400 build/ChaletDuinoV2_795F512H_/production/S mStoredBootloaderInfo 0x14 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o TerminalWorkString 0x12c build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o +mWifiSPIBaudrate 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o BootloaderRxBuf 0x400 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o mVoltageMeanCount 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o mBatterySOC 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o @@ -340,114 +339,114 @@ Microchip PIC32 Memory-Usage Report kseg0 Program-Memory Usage section address length [bytes] (dec) Description ------- ---------- ------------------------- ----------- -.text 0x9d005800 0xcdbc 52668 App's exec code -.text._vfprintf_cdfFnop 0x9d0125bc 0x13d4 5076 -.text 0x9d013990 0xa370 41840 App's exec code -.dinit 0x9d01dd00 0xb70 2928 -.text 0x9d01e870 0x974 2420 App's exec code -.text._vfscanf_s 0x9d01f1e4 0x868 2152 -.text 0x9d01fa4c 0x7e8 2024 App's exec code -.rodata 0x9d020234 0x7b8 1976 Read-only const -.text 0x9d0209ec 0x2444 9284 App's exec code -.rodata 0x9d022e30 0x494 1172 Read-only const -.text 0x9d0232c4 0xcd4 3284 App's exec code -.rodata 0x9d023f98 0x404 1028 Read-only const -.text 0x9d02439c 0xa10 2576 App's exec code -.text.scale 0x9d024dac 0x2a0 672 -.text.fpsubadd 0x9d02504c 0x278 632 -.text 0x9d0252c4 0x988 2440 App's exec code -.rodata 0x9d025c4c 0x254 596 Read-only const -.text 0x9d025ea0 0x244 580 App's exec code -.text.fp32div 0x9d0260e4 0x230 560 -.text 0x9d026314 0x220 544 App's exec code -.text.__floatdisf 0x9d026534 0x220 544 -.text 0x9d026754 0x1dc 476 App's exec code -.text.fp32mul 0x9d026930 0x1bc 444 -.text 0x9d026aec 0x1a0 416 App's exec code -.text._sbrk_init 0x9d026c8c 0x194 404 -.text._filbuf 0x9d026e20 0x188 392 -.text.read 0x9d026fa8 0x174 372 -.text 0x9d02711c 0x2d0 720 App's exec code -.text.fputc 0x9d0273ec 0x15c 348 -.text._flsbuf 0x9d027548 0x12c 300 -.text 0x9d027674 0x11c 284 App's exec code -.text.fgetc 0x9d027790 0x108 264 -.rodata 0x9d027898 0x204 516 Read-only const -.text.setvbuf 0x9d027a9c 0xfc 252 -.rodata 0x9d027b98 0xe0 224 Read-only const -.text.general_exception 0x9d027c78 0xdc 220 -.text 0x9d027d54 0x1ac 428 App's exec code -.rodata 0x9d027f00 0xc8 200 Read-only const -.text._sbrk 0x9d027fc8 0xc4 196 -.text 0x9d02808c 0xa8 168 App's exec code -.text.atoi 0x9d028134 0xa8 168 -.text.range 0x9d0281dc 0xa0 160 -.text.fpcmp 0x9d02827c 0x9c 156 -.text 0x9d028318 0x98 152 App's exec code -.text.fflush 0x9d0283b0 0x94 148 -.text.write 0x9d028444 0x94 148 -.text.libm 0x9d0284d8 0x88 136 -.text.fptoul 0x9d028560 0x7c 124 -.text.SoftReset 0x9d0285dc 0x78 120 -.text.fputs 0x9d028654 0x78 120 -.text.strncmp 0x9d0286cc 0x78 120 -.text.ungetc 0x9d028744 0x74 116 -.text 0x9d0287b8 0xd8 216 App's exec code -.text._sprintf_cdfFnopu 0x9d028890 0x68 104 -.rodata 0x9d0288f8 0x68 104 Read-only const -.text.sitofp 0x9d028960 0x60 96 -.text.wspace 0x9d0289c0 0x60 96 -.text 0x9d028a20 0x58 88 App's exec code -.text._sscanf_s 0x9d028a78 0x54 84 -.text._bufallo 0x9d028acc 0x54 84 -.rodata 0x9d028b20 0x50 80 Read-only const -.text.sbrk 0x9d028b70 0x50 80 -.text.main_entry 0x9d028bc0 0x4c 76 -.text 0x9d028c0c 0x4c 76 App's exec code -.text._bootstrap_except 0x9d028c58 0x48 72 -.text 0x9d028ca0 0x44 68 App's exec code -.text.puts 0x9d028ce4 0x44 68 -.text._printf_cdfFnopsu 0x9d028d28 0x40 64 -.vector_default 0x9d028d68 0x38 56 -.rodata 0x9d028da0 0x64 100 Read-only const -.text.INTConfigureSyste 0x9d028e04 0x30 48 -.text._stub_sbd_memlayo 0x9d028e34 0x2c 44 -.rodata 0x9d028e60 0x28 40 Read-only const -.text.tolower 0x9d028e88 0x24 36 -.text.toupper 0x9d028eac 0x24 36 -.text 0x9d028ed0 0x20 32 App's exec code -.rodata 0x9d028ef0 0x1c 28 Read-only const -.text.INTRestoreInterru 0x9d028f0c 0x1c 28 -.text.setbuf 0x9d028f28 0x1c 28 -.rodata 0x9d028f44 0x30 48 Read-only const -.text.CheKseg0CacheOff 0x9d028f74 0x18 24 -.text.CheKseg0CacheOn 0x9d028f8c 0x18 24 -.text 0x9d028fa4 0x18 24 App's exec code -.text.isalnum 0x9d028fbc 0x18 24 -.text.isalpha 0x9d028fd4 0x18 24 -.text.iscntrl 0x9d028fec 0x18 24 -.text.isdigit 0x9d029004 0x18 24 -.text.isgraph 0x9d02901c 0x18 24 -.text.islower 0x9d029034 0x18 24 -.text.isprint 0x9d02904c 0x18 24 -.text.ispunct 0x9d029064 0x18 24 -.text.isspace 0x9d02907c 0x18 24 -.text.isupper 0x9d029094 0x18 24 -.text.isxdigit 0x9d0290ac 0x18 24 -.text._buffree 0x9d0290c4 0x14 20 -.rodata 0x9d0290d8 0x28 40 Read-only const -.text.INTEnableInterrup 0x9d029100 0x8 8 -.text.INTDisableInterru 0x9d029108 0x8 8 -.text._on_reset 0x9d029110 0x8 8 -.text._on_bootstrap 0x9d029118 0x8 8 -.text.close 0x9d029120 0x8 8 -.text.isascii 0x9d029128 0x8 8 -.text.toascii 0x9d029130 0x8 8 -.text._tolower 0x9d029138 0x8 8 -.text._toupper 0x9d029140 0x8 8 -.text.getpagesize 0x9d029148 0x8 8 -.rodata 0x9d029150 0xc 12 Read-only const - Total kseg0_program_mem used : 0x2395c 145756 29.0% of 0x7a7ff +.text 0x9d005800 0xe274 57972 App's exec code +.text._vfprintf_cdfFnop 0x9d013a74 0x13d4 5076 +.text 0x9d014e48 0x9060 36960 App's exec code +.dinit 0x9d01dea8 0xb70 2928 +.text 0x9d01ea18 0x974 2420 App's exec code +.text._vfscanf_s 0x9d01f38c 0x868 2152 +.text 0x9d01fbf4 0x7e8 2024 App's exec code +.rodata 0x9d0203dc 0x7b8 1976 Read-only const +.text 0x9d020b94 0x2444 9284 App's exec code +.rodata 0x9d022fd8 0x494 1172 Read-only const +.text 0x9d02346c 0xcd4 3284 App's exec code +.rodata 0x9d024140 0x404 1028 Read-only const +.text 0x9d024544 0xd2c 3372 App's exec code +.text.scale 0x9d025270 0x2a0 672 +.text.fpsubadd 0x9d025510 0x278 632 +.text 0x9d025788 0x988 2440 App's exec code +.rodata 0x9d026110 0x254 596 Read-only const +.text 0x9d026364 0x244 580 App's exec code +.text.fp32div 0x9d0265a8 0x230 560 +.text.__floatdisf 0x9d0267d8 0x220 544 +.text 0x9d0269f8 0x1dc 476 App's exec code +.text.fp32mul 0x9d026bd4 0x1bc 444 +.text 0x9d026d90 0x1a0 416 App's exec code +.text._sbrk_init 0x9d026f30 0x194 404 +.text._filbuf 0x9d0270c4 0x188 392 +.text.read 0x9d02724c 0x174 372 +.text 0x9d0273c0 0x2d0 720 App's exec code +.text.fputc 0x9d027690 0x15c 348 +.text._flsbuf 0x9d0277ec 0x12c 300 +.text 0x9d027918 0x11c 284 App's exec code +.text.fgetc 0x9d027a34 0x108 264 +.rodata 0x9d027b3c 0x204 516 Read-only const +.text.setvbuf 0x9d027d40 0xfc 252 +.rodata 0x9d027e3c 0x4 4 Read-only const +.rodata 0x9d027e40 0xe0 224 Read-only const +.text.general_exception 0x9d027f20 0xdc 220 +.text 0x9d027ffc 0x1ac 428 App's exec code +.rodata 0x9d0281a8 0xc8 200 Read-only const +.text._sbrk 0x9d028270 0xc4 196 +.text 0x9d028334 0xa8 168 App's exec code +.text.atoi 0x9d0283dc 0xa8 168 +.text.range 0x9d028484 0xa0 160 +.text.fpcmp 0x9d028524 0x9c 156 +.text 0x9d0285c0 0x98 152 App's exec code +.text.fflush 0x9d028658 0x94 148 +.text.write 0x9d0286ec 0x94 148 +.text.libm 0x9d028780 0x88 136 +.text.fptoul 0x9d028808 0x7c 124 +.text.SoftReset 0x9d028884 0x78 120 +.text.fputs 0x9d0288fc 0x78 120 +.text.strncmp 0x9d028974 0x78 120 +.text.ungetc 0x9d0289ec 0x74 116 +.text 0x9d028a60 0xd8 216 App's exec code +.text._sprintf_cdfFnopu 0x9d028b38 0x68 104 +.rodata 0x9d028ba0 0x68 104 Read-only const +.text.sitofp 0x9d028c08 0x60 96 +.text.wspace 0x9d028c68 0x60 96 +.text 0x9d028cc8 0x58 88 App's exec code +.text._sscanf_s 0x9d028d20 0x54 84 +.text._bufallo 0x9d028d74 0x54 84 +.rodata 0x9d028dc8 0x50 80 Read-only const +.text.sbrk 0x9d028e18 0x50 80 +.text.main_entry 0x9d028e68 0x4c 76 +.text 0x9d028eb4 0x4c 76 App's exec code +.text._bootstrap_except 0x9d028f00 0x48 72 +.text 0x9d028f48 0x44 68 App's exec code +.text.puts 0x9d028f8c 0x44 68 +.text._printf_cdfFnopsu 0x9d028fd0 0x40 64 +.vector_default 0x9d029010 0x38 56 +.rodata 0x9d029048 0x64 100 Read-only const +.text.INTConfigureSyste 0x9d0290ac 0x30 48 +.text._stub_sbd_memlayo 0x9d0290dc 0x2c 44 +.rodata 0x9d029108 0x28 40 Read-only const +.text.tolower 0x9d029130 0x24 36 +.text.toupper 0x9d029154 0x24 36 +.text 0x9d029178 0x20 32 App's exec code +.rodata 0x9d029198 0x1c 28 Read-only const +.text.INTRestoreInterru 0x9d0291b4 0x1c 28 +.text.setbuf 0x9d0291d0 0x1c 28 +.rodata 0x9d0291ec 0x30 48 Read-only const +.text.CheKseg0CacheOff 0x9d02921c 0x18 24 +.text.CheKseg0CacheOn 0x9d029234 0x18 24 +.text 0x9d02924c 0x18 24 App's exec code +.text.isalnum 0x9d029264 0x18 24 +.text.isalpha 0x9d02927c 0x18 24 +.text.iscntrl 0x9d029294 0x18 24 +.text.isdigit 0x9d0292ac 0x18 24 +.text.isgraph 0x9d0292c4 0x18 24 +.text.islower 0x9d0292dc 0x18 24 +.text.isprint 0x9d0292f4 0x18 24 +.text.ispunct 0x9d02930c 0x18 24 +.text.isspace 0x9d029324 0x18 24 +.text.isupper 0x9d02933c 0x18 24 +.text.isxdigit 0x9d029354 0x18 24 +.text._buffree 0x9d02936c 0x14 20 +.rodata 0x9d029380 0x28 40 Read-only const +.text.INTEnableInterrup 0x9d0293a8 0x8 8 +.text.INTDisableInterru 0x9d0293b0 0x8 8 +.text._on_reset 0x9d0293b8 0x8 8 +.text._on_bootstrap 0x9d0293c0 0x8 8 +.text.close 0x9d0293c8 0x8 8 +.text.isascii 0x9d0293d0 0x8 8 +.text.toascii 0x9d0293d8 0x8 8 +.text._tolower 0x9d0293e0 0x8 8 +.text._toupper 0x9d0293e8 0x8 8 +.text.getpagesize 0x9d0293f0 0x8 8 +.rodata 0x9d0293f8 0x8 8 Read-only const + Total kseg0_program_mem used : 0x23c00 146432 29.2% of 0x7a7ff kseg0 Boot-Memory Usage section address length [bytes] (dec) Description @@ -532,7 +531,7 @@ section address length [bytes] (dec) Description .bev_excpt 0xbfc00380 0x10 16 BEV-Exception Total kseg1_boot_mem used : 0x18 24 2.1% of 0x490 -------------------------------------------------------------------------- - Total Program Memory used : 0x23d6c 146796 28.8% of 0x7c47f + Total Program Memory used : 0x24010 147472 29.0% of 0x7c47f -------------------------------------------------------------------------- @@ -541,17 +540,17 @@ section address length [bytes] (dec) Description ------- ---------- ------------------------- ----------- .eh_frame 0xa0000000 0x30 48 .sdata 0xa0000030 0x74 116 Small init data -.sbss 0xa00000a4 0x170 368 Small uninit data -.bss 0xa0000214 0x2e90 11920 Uninitialized data -.data 0xa00030a4 0x4bc 1212 Initialized data -.bss 0xa0003560 0x800 2048 Uninitialized data -.data 0xa0003d60 0x2c4 708 Initialized data -.bss 0xa0004024 0x40 64 Uninitialized data -.data 0xa0004064 0x1c 28 Initialized data -.bss 0xa0004080 0x38 56 Uninitialized data - Total kseg1_data_mem used : 0x40b8 16568 25.3% of 0x10000 +.sbss 0xa00000a4 0x174 372 Small uninit data +.bss 0xa0000218 0x2e90 11920 Uninitialized data +.data 0xa00030a8 0x4bc 1212 Initialized data +.bss 0xa0003564 0x800 2048 Uninitialized data +.data 0xa0003d64 0x2c4 708 Initialized data +.bss 0xa0004028 0x40 64 Uninitialized data +.data 0xa0004068 0x1c 28 Initialized data +.bss 0xa0004084 0x38 56 Uninitialized data + Total kseg1_data_mem used : 0x40bc 16572 25.3% of 0x10000 -------------------------------------------------------------------------- - Total Data Memory used : 0x40b8 16568 25.3% of 0x10000 + Total Data Memory used : 0x40bc 16572 25.3% of 0x10000 -------------------------------------------------------------------------- @@ -559,7 +558,7 @@ Dynamic Data-Memory Reservation section address length [bytes] (dec) Description ------- ---------- ------------------------- ----------- heap 0xa00040c0 0x200 512 Reserved for heap -stack 0xa00042d8 0xbd20 48416 Reserved for stack +stack 0xa00042d8 0xbd18 48408 Reserved for stack -------------------------------------------------------------------------- @@ -567,6 +566,21 @@ Discarded input sections .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o @@ -596,21 +610,6 @@ Discarded input sections .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .reginfo 0x00000000 0x18 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) @@ -636,7 +635,6 @@ Discarded input sections .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) - .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) .reginfo 0x00000000 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) @@ -754,6 +752,21 @@ Linker script and memory map LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o +LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o @@ -783,21 +796,6 @@ LOAD build/ChaletDuinoV2_795F512H_/production/Source/TC77.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/crc32.o LOAD build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o -LOAD build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o 0x00000001 __MPLAB_BUILD = 0x1 0x00000400 PROVIDE (_min_stack_size, 0x400) LOAD c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o @@ -878,7 +876,7 @@ END GROUP .vector_3 0x9d004260 0x8 *(.vector_3) - .vector_3 0x9d004260 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) + .vector_3 0x9d004260 0x8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o 0x9d004260 __vector_dispatch_3 0x00000001 ASSERT (((_vector_spacing == 0x0) || (SIZEOF (.vector_3) <= (_vector_spacing << 0x5))), function at exception vector 3 too large) @@ -1368,35 +1366,35 @@ END GROUP .sdata 0xa0000030 0x74 0xa0000030 _sdata_begin = . *(.sdata .sdata.* .gnu.linkonce.s.*) - .sdata 0xa0000030 0x2 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - 0xa0000030 State - *fill* 0xa0000032 0x2 - .sdata 0xa0000034 0xc build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .sdata 0xa0000040 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - 0xa0000040 gUartStrings - .sdata 0xa0000044 0x8 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .sdata 0xa000004c 0x10 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - 0xa0000053 TerminalSocket - 0xa0000054 TerminalServerSocket - 0xa0000055 SyslogSocket - 0xa0000056 SyslogServerSocket - 0xa0000057 NetworkSocket - 0xa0000058 NetworkServerSocket - 0xa0000059 BootloaderSocket - 0xa000005a BootloaderServerSocket - .sdata 0xa000005c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - 0xa000005c mLoraPreamble - .sdata 0xa0000060 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .sdata 0xa0000068 0x8 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .sdata 0xa0000070 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .sdata 0xa0000078 0x18 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - 0xa0000080 BtldrComputedCRC - 0xa0000084 BootloaderState - 0xa0000088 BootloaderDataStartPtr - .sdata 0xa0000090 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .sdata 0xa0000094 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .sdata 0xa0000098 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - 0xa0000098 egstrNmBusCapabilities + .sdata 0xa0000030 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .sdata 0xa0000034 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .sdata 0xa0000038 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0xa0000038 egstrNmBusCapabilities + .sdata 0xa000003c 0x2 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0xa000003c State + *fill* 0xa000003e 0x2 + .sdata 0xa0000040 0xc build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .sdata 0xa000004c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0xa000004c gUartStrings + .sdata 0xa0000050 0x8 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .sdata 0xa0000058 0x10 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0xa000005f TerminalSocket + 0xa0000060 TerminalServerSocket + 0xa0000061 SyslogSocket + 0xa0000062 SyslogServerSocket + 0xa0000063 NetworkSocket + 0xa0000064 NetworkServerSocket + 0xa0000065 BootloaderSocket + 0xa0000066 BootloaderServerSocket + .sdata 0xa0000068 0x4 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0xa0000068 mLoraPreamble + .sdata 0xa000006c 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .sdata 0xa0000074 0x8 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .sdata 0xa000007c 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .sdata 0xa0000084 0x18 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0xa000008c BtldrComputedCRC + 0xa0000090 BootloaderState + 0xa0000094 BootloaderDataStartPtr .sdata 0xa000009c 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) 0xa000009c _Files .sdata 0xa00000a0 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) @@ -1413,176 +1411,179 @@ END GROUP 0xa00000a4 _data_end = . 0xa00000a4 _bss_begin = . -.sbss 0xa00000a4 0x170 +.sbss 0xa00000a4 0x174 0xa00000a4 _sbss_begin = . *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) - .sbss 0xa00000a4 0x4 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - 0xa00000a4 LoraData - .sbss 0xa00000a8 0x18 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - 0xa00000a8 DataSize - 0xa00000ac DataCtr - 0xa00000b0 BufPtr - 0xa00000b4 RxPtr - 0xa00000b5 Command - 0xa00000b6 CRC - 0xa00000b7 SenderID - 0xa00000b8 SenderAddress - 0xa00000b9 Flags - 0xa00000ba IsUpdating - 0xa00000bc BmpDataPtr - .sbss 0xa00000c0 0xc build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .sbss 0xa00000cc 0x1c build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - 0xa00000cc gu32HostIp - 0xa00000d0 gu8RetryCount - 0xa00000e0 mWiFiInitOK - 0xa00000e4 mWiFiState - .sbss 0xa00000e8 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .sbss 0xa00000ec 0x8 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - 0xa00000ec ina219_currentDivider_mA - 0xa00000f0 ina219_powerDivider_mW - .sbss 0xa00000f4 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - 0xa00000f4 WatchdogTriggered - .sbss 0xa00000f8 0x18 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - 0xa00000f8 BootloaderHeader - 0xa00000fc BootloaderDataSize - 0xa0000100 BootloaderDataCtr - 0xa0000104 BootloaderBufPtr - 0xa0000108 BootloaderCRC - 0xa000010c BootloaderCommand - .sbss 0xa0000110 0x1 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .sbss 0xa0000111 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - *fill* 0xa0000112 0x2 - .sbss 0xa0000114 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .sbss 0xa0000118 0x8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .sbss 0xa0000120 0x14 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .sbss 0xa0000134 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .sbss 0xa0000138 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .sbss 0xa000013c 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - *fill* 0xa000013d 0x3 - .sbss 0xa0000140 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - 0xa0000140 gu16SessionID - 0xa0000142 gbSocketInit - .sbss 0xa0000150 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .sbss 0xa0000154 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0000154 _outdone - *fill* 0xa0000155 0x3 + .sbss 0xa00000a4 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + *fill* 0xa00000a5 0x3 + .sbss 0xa00000a8 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .sbss 0xa00000ac 0x8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .sbss 0xa00000b4 0x14 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .sbss 0xa00000c8 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .sbss 0xa00000cc 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .sbss 0xa00000d0 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + *fill* 0xa00000d1 0x3 + .sbss 0xa00000d4 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0xa00000d4 gu16SessionID + 0xa00000d6 gbSocketInit + .sbss 0xa00000e4 0x4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .sbss 0xa00000e8 0x4 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0xa00000e8 LoraData + .sbss 0xa00000ec 0x18 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0xa00000ec DataSize + 0xa00000f0 DataCtr + 0xa00000f4 BufPtr + 0xa00000f8 RxPtr + 0xa00000f9 Command + 0xa00000fa CRC + 0xa00000fb SenderID + 0xa00000fc SenderAddress + 0xa00000fd Flags + 0xa00000fe IsUpdating + 0xa0000100 BmpDataPtr + .sbss 0xa0000104 0xc build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .sbss 0xa0000110 0x1c build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0xa0000110 gu32HostIp + 0xa0000114 gu8RetryCount + 0xa0000124 mWiFiInitOK + 0xa0000128 mWiFiState + .sbss 0xa000012c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .sbss 0xa0000130 0x8 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0xa0000130 ina219_currentDivider_mA + 0xa0000134 ina219_powerDivider_mW + .sbss 0xa0000138 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0xa0000138 WatchdogTriggered + .sbss 0xa000013c 0x18 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0xa000013c BootloaderHeader + 0xa0000140 BootloaderDataSize + 0xa0000144 BootloaderDataCtr + 0xa0000148 BootloaderBufPtr + 0xa000014c BootloaderCRC + 0xa0000150 BootloaderCommand + .sbss 0xa0000154 0x1 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .sbss 0xa0000155 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + 0xa0000155 _outdone + *fill* 0xa0000156 0x2 .sbss 0xa0000158 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) 0xa0000158 errno .sbss 0xa000015c 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) 0xa000015c _minbrk 0xa0000160 _maxbrk *(.scommon) - .scommon 0xa0000164 0x2 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - 0xa0000164 acIntUartRxBuff - *fill* 0xa0000166 0x2 - .scommon 0xa0000168 0x14 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - 0xa0000168 mTerminalOpened - 0xa000016c TerminalDataPtr - 0xa0000170 mTerminalPendingAction - 0xa0000174 mHelpStringPtr - 0xa0000178 mTerminalTickState - .scommon 0xa000017c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/main.o - 0xa000017c ActualTemp - .scommon 0xa0000180 0xe build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - 0xa0000180 u8IsMacAddrValid - 0xa0000184 mCurIPAddress - 0xa0000188 mac_addr - .scommon 0xa000018e 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - *fill* 0xa000018e 0x2 - .scommon 0xa0000190 0x4 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - 0xa0000190 PowerRelayState - .scommon 0xa0000194 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - 0xa0000194 mBatteryCurrent - 0xa0000198 mVoltageMeanSum - 0xa000019c mVoltageMeanCount - 0xa00001a0 mBatterySOC - 0xa00001a4 mCurrentMeanCount - 0xa00001a8 mCurrentMeanSum - 0xa00001ac mBatteryVoltage - 0xa00001b0 mCurrentModuleOK - .scommon 0xa00001b4 0x8 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - 0xa00001b4 mLastTransactionOK - 0xa00001b8 mI2CWaitCounter - .scommon 0xa00001bc 0x8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - 0xa00001bc mSPIFlashHighSpeedBaudrate - 0xa00001bd mSPIFlashBaudrate - 0xa00001c0 mSPIFlashOK - .scommon 0xa00001c4 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - 0xa00001c4 mSyslogBufPtr - .scommon 0xa00001c8 0x38 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - 0xa00001c8 CurDataChunkSize - 0xa00001cc BootloaderFirmwareChunkWriteCount - 0xa00001d0 BootloaderFlashWriteDataPtr - 0xa00001d4 BootloaderFlashErased - 0xa00001d8 BootloaderFlashWriteState - 0xa00001dc BootloaderCurFlashWriteAddress - 0xa00001e0 BooloaderFlashEraseState - 0xa00001e4 BootloaderCurFlashEraseAddress - 0xa00001e8 BootloaderFlashWritePollCount - 0xa00001ec BootloaderInterfaceState - 0xa00001f0 DataChunkWritten - 0xa00001f4 BooloaderFlashErasePollCount - 0xa00001f8 FirmwareUploaded - 0xa00001fc CurDataChunkIndex - .scommon 0xa0000200 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .scommon 0xa0000200 0x2 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - 0xa0000200 mDeviceID - *fill* 0xa0000202 0x2 - .scommon 0xa0000204 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - 0xa0000204 BootloaderRxPtr - .scommon 0xa0000208 0x4 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - 0xa0000208 mLoraSMState - .scommon 0xa000020c 0x8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - 0xa000020c gpfAppResolveCb - 0xa0000210 gpfAppSocketCb - 0xa0000214 _sbss_end = . - 0xa0000214 . = ALIGN (0x4) + .scommon 0xa0000164 0x1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0xa0000164 mWifiSPIBaudrate + *fill* 0xa0000165 0x3 + .scommon 0xa0000168 0x8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0xa0000168 gpfAppResolveCb + 0xa000016c gpfAppSocketCb + .scommon 0xa0000170 0x2 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0xa0000170 acIntUartRxBuff + *fill* 0xa0000172 0x2 + .scommon 0xa0000174 0x14 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0xa0000174 mTerminalOpened + 0xa0000178 TerminalDataPtr + 0xa000017c mTerminalPendingAction + 0xa0000180 mHelpStringPtr + 0xa0000184 mTerminalTickState + .scommon 0xa0000188 0x4 build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0xa0000188 ActualTemp + .scommon 0xa000018c 0xe build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0xa000018c u8IsMacAddrValid + 0xa0000190 mCurIPAddress + 0xa0000194 mac_addr + .scommon 0xa000019a 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + *fill* 0xa000019a 0x2 + .scommon 0xa000019c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0xa000019c PowerRelayState + .scommon 0xa00001a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0xa00001a0 mBatteryCurrent + 0xa00001a4 mVoltageMeanSum + 0xa00001a8 mVoltageMeanCount + 0xa00001ac mBatterySOC + 0xa00001b0 mCurrentMeanCount + 0xa00001b4 mCurrentMeanSum + 0xa00001b8 mBatteryVoltage + 0xa00001bc mCurrentModuleOK + .scommon 0xa00001c0 0x8 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0xa00001c0 mLastTransactionOK + 0xa00001c4 mI2CWaitCounter + .scommon 0xa00001c8 0x8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0xa00001c8 mSPIFlashHighSpeedBaudrate + 0xa00001c9 mSPIFlashBaudrate + 0xa00001cc mSPIFlashOK + .scommon 0xa00001d0 0x4 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0xa00001d0 mSyslogBufPtr + .scommon 0xa00001d4 0x38 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0xa00001d4 CurDataChunkSize + 0xa00001d8 BootloaderFirmwareChunkWriteCount + 0xa00001dc BootloaderFlashWriteDataPtr + 0xa00001e0 BootloaderFlashErased + 0xa00001e4 BootloaderFlashWriteState + 0xa00001e8 BootloaderCurFlashWriteAddress + 0xa00001ec BooloaderFlashEraseState + 0xa00001f0 BootloaderCurFlashEraseAddress + 0xa00001f4 BootloaderFlashWritePollCount + 0xa00001f8 BootloaderInterfaceState + 0xa00001fc DataChunkWritten + 0xa0000200 BooloaderFlashErasePollCount + 0xa0000204 FirmwareUploaded + 0xa0000208 CurDataChunkIndex + .scommon 0xa000020c 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .scommon 0xa000020c 0x2 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0xa000020c mDeviceID + *fill* 0xa000020e 0x2 + .scommon 0xa0000210 0x4 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0xa0000210 BootloaderRxPtr + .scommon 0xa0000214 0x4 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0xa0000214 mLoraSMState + 0xa0000218 _sbss_end = . + 0xa0000218 . = ALIGN (0x4) -.bss 0xa0000214 0x2e90 +.bss 0xa0000218 0x2e90 *(.dynbss) *(COMMON) - COMMON 0xa0000214 0x40 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - 0xa0000214 astInternalUartData - COMMON 0xa0000254 0x26e build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - 0xa0000254 mRxData - 0xa000038c mTxData - *fill* 0xa00004c2 0x2 - COMMON 0xa00004c4 0x398 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - 0xa00004c4 mStoredBootloaderInfo - 0xa00004d8 TerminalWorkString - 0xa0000604 TerminalPrevDataBuf - 0xa0000730 TerminalDataBuf - COMMON 0xa000085c 0x620 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - 0xa000085c astUartData - COMMON 0xa0000e7c 0x108 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - 0xa0000e7c astTimer - COMMON 0xa0000f84 0xd04 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - 0xa0000f84 NetworkRxBuf - 0xa0001384 TerminalRxBuf - 0xa0001784 BootloaderRxBuf - 0xa0001b84 addr_in - 0xa0001b94 param - 0xa0001bac mModuleIPConfig - 0xa0001bc0 SyslogRxBuf - COMMON 0xa0001c88 0x16 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - 0xa0001c88 I2CSlaveBuffer - 0xa0001c94 I2CMasterBuffer - *fill* 0xa0001c9e 0x2 - COMMON 0xa0001ca0 0x1000 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - 0xa0001ca0 mFlashSectorBuffer - COMMON 0xa0002ca0 0x1f4 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - 0xa0002ca0 mSyslogBuffer - COMMON 0xa0002e94 0x12c build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - 0xa0002e94 BootloaderBuffer - COMMON 0xa0002fc0 0x24 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - 0xa0002fc0 gstrHifCxt - COMMON 0xa0002fe4 0xc0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - 0xa0002fe4 gastrSockets - 0xa00030a4 . = ALIGN ((. != 0x0)?0x4:0x1) - 0xa00030a4 . = ALIGN (0x4) - 0xa00030a4 _end = . - 0xa00030a4 _bss_end = . + COMMON 0xa0000218 0x24 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0xa0000218 gstrHifCxt + COMMON 0xa000023c 0xc0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0xa000023c gastrSockets + COMMON 0xa00002fc 0x40 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0xa00002fc astInternalUartData + COMMON 0xa000033c 0x26e build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0xa000033c mRxData + 0xa0000474 mTxData + *fill* 0xa00005aa 0x2 + COMMON 0xa00005ac 0x398 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0xa00005ac mStoredBootloaderInfo + 0xa00005c0 TerminalWorkString + 0xa00006ec TerminalPrevDataBuf + 0xa0000818 TerminalDataBuf + COMMON 0xa0000944 0x620 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0xa0000944 astUartData + COMMON 0xa0000f64 0x108 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0xa0000f64 astTimer + COMMON 0xa000106c 0xd04 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0xa000106c NetworkRxBuf + 0xa000146c TerminalRxBuf + 0xa000186c BootloaderRxBuf + 0xa0001c6c addr_in + 0xa0001c7c param + 0xa0001c94 mModuleIPConfig + 0xa0001ca8 SyslogRxBuf + COMMON 0xa0001d70 0x16 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0xa0001d70 I2CSlaveBuffer + 0xa0001d7c I2CMasterBuffer + *fill* 0xa0001d86 0x2 + COMMON 0xa0001d88 0x1000 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0xa0001d88 mFlashSectorBuffer + COMMON 0xa0002d88 0x1f4 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0xa0002d88 mSyslogBuffer + COMMON 0xa0002f7c 0x12c build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0xa0002f7c BootloaderBuffer + 0xa00030a8 . = ALIGN ((. != 0x0)?0x4:0x1) + 0xa00030a8 . = ALIGN (0x4) + 0xa00030a8 _end = . + 0xa00030a8 _bss_end = . 0x00010000 _bmxdudba_address = 0x10000 0x00010000 _bmxdupba_address = 0x10000 @@ -1603,94 +1604,94 @@ END GROUP *(.gptab.bss) *(.gptab.sbss) -.mdebug.abi32 0xa00030a4 0x0 +.mdebug.abi32 0xa00030a8 0x0 *(.mdebug.abi32) - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/system.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/template.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .mdebug.abi32 0xa00030a4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .mdebug.abi32 0xa00030a4 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/system.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/template.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .mdebug.abi32 0xa00030a8 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .mdebug.abi32 0xa00030a8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) .mdebug.abiN32 *(.mdebug.abiN32) @@ -1735,6 +1736,21 @@ END GROUP *(.comment) .comment 0x00000000 0x3c build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o 0x3d (size before relaxing) + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o @@ -1764,21 +1780,6 @@ END GROUP .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .comment 0x00000000 0x3d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .comment 0x0000003c 0x3c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) 0x3d (size before relaxing) .comment 0x00000000 0x3d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) @@ -1851,87 +1852,87 @@ END GROUP .debug_aranges 0x00000000 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o .debug_aranges - 0x00000020 0x20 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + 0x00000020 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o .debug_aranges - 0x00000040 0x20 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0x00000040 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o .debug_aranges - 0x00000060 0x20 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0x00000060 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o .debug_aranges - 0x00000080 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0x00000080 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o .debug_aranges - 0x000000a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0x000000a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o .debug_aranges - 0x000000c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x000000c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o .debug_aranges - 0x000000e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + 0x000000e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o .debug_aranges - 0x00000100 0x20 build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0x00000100 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o .debug_aranges - 0x00000120 0x20 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0x00000120 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o .debug_aranges - 0x00000140 0x20 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0x00000140 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o .debug_aranges - 0x00000160 0x20 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + 0x00000160 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o .debug_aranges - 0x00000180 0x20 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0x00000180 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o .debug_aranges - 0x000001a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0x000001a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o .debug_aranges - 0x000001c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + 0x000001c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o .debug_aranges - 0x000001e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0x000001e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .debug_aranges - 0x00000200 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0x00000200 0x20 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .debug_aranges - 0x00000220 0x20 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0x00000220 0x20 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .debug_aranges - 0x00000240 0x20 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0x00000240 0x20 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o .debug_aranges - 0x00000260 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0x00000260 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o .debug_aranges - 0x00000280 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0x00000280 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o .debug_aranges - 0x000002a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0x000002a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Util.o .debug_aranges - 0x000002c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + 0x000002c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o .debug_aranges - 0x000002e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0x000002e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/main.o .debug_aranges - 0x00000300 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0x00000300 0x20 build/ChaletDuinoV2_795F512H_/production/Source/timer.o .debug_aranges - 0x00000320 0x20 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + 0x00000320 0x20 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o .debug_aranges - 0x00000340 0x20 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0x00000340 0x20 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o .debug_aranges - 0x00000360 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + 0x00000360 0x20 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o .debug_aranges - 0x00000380 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + 0x00000380 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o .debug_aranges - 0x000003a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0x000003a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o .debug_aranges - 0x000003c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + 0x000003c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o .debug_aranges - 0x000003e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + 0x000003e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o .debug_aranges - 0x00000400 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + 0x00000400 0x20 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o .debug_aranges - 0x00000420 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + 0x00000420 0x20 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o .debug_aranges - 0x00000440 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + 0x00000440 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o .debug_aranges - 0x00000460 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0x00000460 0x20 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o .debug_aranges - 0x00000480 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + 0x00000480 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o .debug_aranges - 0x000004a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0x000004a0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o .debug_aranges - 0x000004c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + 0x000004c0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o .debug_aranges - 0x000004e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + 0x000004e0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .debug_aranges - 0x00000500 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0x00000500 0x20 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .debug_aranges - 0x00000520 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + 0x00000520 0x20 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o .debug_aranges 0x00000540 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) .debug_aranges @@ -2006,601 +2007,601 @@ END GROUP 0x00000a78 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) .debug_pubnames - 0x00000000 0x3525 + 0x00000000 0x3547 *(.debug_pubnames) .debug_pubnames 0x00000000 0x20 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o .debug_pubnames - 0x00000020 0x24 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + 0x00000020 0x4c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o .debug_pubnames - 0x00000044 0x125 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0x0000006c 0x72 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o .debug_pubnames - 0x00000169 0x194 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0x000000de 0x119 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o .debug_pubnames - 0x000002fd 0x17d build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0x000001f7 0x7f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o .debug_pubnames - 0x0000047a 0x101 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0x00000276 0x95 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o .debug_pubnames - 0x0000057b 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x0000030b 0x137 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o .debug_pubnames - 0x00000653 0x31 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + 0x00000442 0x83d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o .debug_pubnames - 0x00000684 0x38 build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0x00000c7f 0x1f1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o .debug_pubnames - 0x000006bc 0xec build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0x00000e70 0xe8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o .debug_pubnames - 0x000007a8 0x348 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0x00000f58 0xee build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o .debug_pubnames - 0x00000af0 0x25 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + 0x00001046 0xe2 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o .debug_pubnames - 0x00000b15 0x95 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0x00001128 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o .debug_pubnames - 0x00000baa 0xca build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0x00001148 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o .debug_pubnames - 0x00000c74 0x41 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + 0x00001168 0x1ef build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o .debug_pubnames - 0x00000cb5 0x154 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0x00001357 0x64 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .debug_pubnames - 0x00000e09 0x1af build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0x000013bb 0x24 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .debug_pubnames - 0x00000fb8 0x92 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0x000013df 0x125 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .debug_pubnames - 0x0000104a 0x1b0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0x00001504 0x194 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o .debug_pubnames - 0x000011fa 0x92 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0x00001698 0x17d build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o .debug_pubnames - 0x0000128c 0x71 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0x00001815 0x101 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o .debug_pubnames - 0x000012fd 0x3db build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0x00001916 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/Util.o .debug_pubnames - 0x000016d8 0x7d build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + 0x000019ee 0x31 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o .debug_pubnames - 0x00001755 0x5c build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0x00001a1f 0x38 build/ChaletDuinoV2_795F512H_/production/Source/main.o .debug_pubnames - 0x000017b1 0x34e build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0x00001a57 0xec build/ChaletDuinoV2_795F512H_/production/Source/timer.o .debug_pubnames - 0x00001aff 0x2f build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + 0x00001b43 0x348 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o .debug_pubnames - 0x00001b2e 0x7f build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0x00001e8b 0x25 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o .debug_pubnames - 0x00001bad 0x3f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + 0x00001eb0 0x95 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o .debug_pubnames - 0x00001bec 0x72 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + 0x00001f45 0xca build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o .debug_pubnames - 0x00001c5e 0x119 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0x0000200f 0x41 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o .debug_pubnames - 0x00001d77 0x7f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + 0x00002050 0x154 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o .debug_pubnames - 0x00001df6 0x95 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + 0x000021a4 0x1af build/ChaletDuinoV2_795F512H_/production/Source/ina219.o .debug_pubnames - 0x00001e8b 0x137 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + 0x00002353 0x92 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o .debug_pubnames - 0x00001fc2 0x83d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + 0x000023e5 0x1b0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o .debug_pubnames - 0x000027ff 0x1f1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + 0x00002595 0x92 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o .debug_pubnames - 0x000029f0 0xe8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0x00002627 0x71 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o .debug_pubnames - 0x00002ad8 0xee build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + 0x00002698 0x3db build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o .debug_pubnames - 0x00002bc6 0xcd build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0x00002a73 0x7d build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o .debug_pubnames - 0x00002c93 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + 0x00002af0 0x5c build/ChaletDuinoV2_795F512H_/production/Source/TC77.o .debug_pubnames - 0x00002cb3 0x20 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + 0x00002b4c 0x34e build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .debug_pubnames - 0x00002cd3 0x1ef build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0x00002e9a 0x2f build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .debug_pubnames - 0x00002ec2 0x64 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + 0x00002ec9 0x7f build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o .debug_pubnames - 0x00002f26 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + 0x00002f48 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) .debug_pubnames - 0x00002f46 0x3b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + 0x00002f68 0x3b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) .debug_pubnames - 0x00002f81 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + 0x00002fa3 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) .debug_pubnames - 0x00002faa 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + 0x00002fcc 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) .debug_pubnames - 0x00002fd4 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + 0x00002ff6 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) .debug_pubnames - 0x00002fff 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + 0x00003021 0x2b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) .debug_pubnames - 0x0000302a 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + 0x0000304c 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) .debug_pubnames - 0x0000304e 0x33 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + 0x00003070 0x33 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) .debug_pubnames - 0x00003081 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + 0x000030a3 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) .debug_pubnames - 0x000030a1 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + 0x000030c3 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) .debug_pubnames - 0x000030c5 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + 0x000030e7 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) .debug_pubnames - 0x000030e1 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + 0x00003103 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) .debug_pubnames - 0x00003109 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + 0x0000312b 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) .debug_pubnames - 0x00003126 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + 0x00003148 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) .debug_pubnames - 0x0000314b 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + 0x0000316d 0x29 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) .debug_pubnames - 0x00003174 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + 0x00003196 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) .debug_pubnames - 0x00003192 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + 0x000031b4 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) .debug_pubnames - 0x000031bc 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + 0x000031de 0x2a c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) .debug_pubnames - 0x000031e6 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + 0x00003208 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) .debug_pubnames - 0x00003206 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + 0x00003228 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) .debug_pubnames - 0x00003222 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + 0x00003244 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) .debug_pubnames - 0x0000324e 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + 0x00003270 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) .debug_pubnames - 0x0000327a 0x21 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + 0x0000329c 0x21 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) .debug_pubnames - 0x0000329b 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + 0x000032bd 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) .debug_pubnames - 0x000032b9 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + 0x000032db 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) .debug_pubnames - 0x000032d5 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + 0x000032f7 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) .debug_pubnames - 0x000032f0 0xe1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x00003312 0xe1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) .debug_pubnames - 0x000033d1 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + 0x000033f3 0x1d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) .debug_pubnames - 0x000033ee 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + 0x00003410 0x1e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) .debug_pubnames - 0x0000340c 0x5c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x0000342e 0x5c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) .debug_pubnames - 0x00003468 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + 0x0000348a 0x1b c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) .debug_pubnames - 0x00003483 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + 0x000034a5 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) .debug_pubnames - 0x0000349f 0x22 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + 0x000034c1 0x22 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) .debug_pubnames - 0x000034c1 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + 0x000034e3 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) .debug_pubnames - 0x000034e5 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + 0x00003507 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) .debug_pubnames - 0x00003505 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + 0x00003527 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) -.debug_info 0x00000000 0x51494 +.debug_info 0x00000000 0x51bf0 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x37a8 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .debug_info 0x000037a8 0x115b build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .debug_info 0x00004903 0x3b39 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .debug_info 0x0000843c 0x1aa4 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .debug_info 0x00009ee0 0x1a07 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .debug_info 0x0000b8e7 0x1ae3 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .debug_info 0x0000d3ca 0x14fb build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .debug_info 0x0000e8c5 0x127b build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .debug_info 0x0000fb40 0x113f build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o - .debug_info 0x00010c7f 0x1a39 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .debug_info 0x000126b8 0x113b build/ChaletDuinoV2_795F512H_/production/Source/system.o - .debug_info 0x000137f3 0x113d build/ChaletDuinoV2_795F512H_/production/Source/template.o - .debug_info 0x00014930 0x2165 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .debug_info 0x00016a95 0x33cc build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .debug_info 0x00019e61 0x131a build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .debug_info 0x0001b17b 0x1f45 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .debug_info 0x0001d0c0 0x17a7 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .debug_info 0x0001e867 0x12f5 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .debug_info 0x0001fb5c 0x1a5c build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .debug_info 0x000215b8 0x15a7 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .debug_info 0x00022b5f 0x16f7 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .debug_info 0x00024256 0x185f build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .debug_info 0x00025ab5 0x15a0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .debug_info 0x00027055 0x1328 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .debug_info 0x0002837d 0x2e3d build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .debug_info 0x0002b1ba 0x1322 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .debug_info 0x0002c4dc 0x14cc build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .debug_info 0x0002d9a8 0x211d build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .debug_info 0x0002fac5 0x2d0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .debug_info 0x0002fd95 0x1573 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .debug_info 0x00031308 0x1285 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .debug_info 0x0003258d 0x1c56 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .debug_info 0x000341e3 0x274a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .debug_info 0x0003692d 0x1759 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .debug_info 0x00038086 0x149b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .debug_info 0x00039521 0x1d93 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .debug_info 0x0003b2b4 0x624a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .debug_info 0x000414fe 0x1a94 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .debug_info 0x00042f92 0x15ac build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .debug_info 0x0004453e 0x1721 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .debug_info 0x00045c5f 0x19fc build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .debug_info 0x0004765b 0x1205 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .debug_info 0x00048860 0x1274 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .debug_info 0x00049ad4 0x3383 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .debug_info 0x0004ce57 0x19ab build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .debug_info 0x0004e802 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_info 0x0004e8b0 0xbb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_info 0x0004e96b 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_info 0x0004ea19 0xb0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_info 0x0004eac9 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_info 0x0004eb7b 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_info 0x0004ec2d 0x125 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_info 0x0004ed52 0xe2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_info 0x0004ee34 0xbc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_info 0x0004eef0 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_info 0x0004efb4 0xad c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .debug_info 0x0004f061 0xd6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_info 0x0004f137 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_info 0x0004f137 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_info 0x0004f1ec 0xc5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_info 0x0004f2b1 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_info 0x0004f37c 0xb7 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_info 0x0004f433 0xc2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_info 0x0004f4f5 0xc3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_info 0x0004f5b8 0xb8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_info 0x0004f670 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_info 0x0004f723 0xda c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_info 0x0004f7fd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_info 0x0004f7fd 0xe5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_info 0x0004f8e2 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_info 0x0004f9c2 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_info 0x0004fa78 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_info 0x0004fb2b 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_info 0x0004fbdc 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_info 0x0004fbdc 0x219 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_info 0x0004fdf5 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_info 0x0004fdf5 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_info 0x0004feaa 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_info 0x0004ff60 0x115 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_info 0x00050075 0xab c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_info 0x00050120 0xad c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_info 0x000501cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_info 0x000501cd 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_info 0x00050298 0x2c2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_info 0x0005055a 0x782 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_info 0x00050cdc 0x7b8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .debug_info 0x000037a8 0x181a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .debug_info 0x00004fc2 0x1c56 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .debug_info 0x00006c18 0x274a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .debug_info 0x00009362 0x1759 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .debug_info 0x0000aabb 0x149b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .debug_info 0x0000bf56 0x1d93 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .debug_info 0x0000dce9 0x624a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .debug_info 0x00013f33 0x1a94 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .debug_info 0x000159c7 0x15ac build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .debug_info 0x00016f73 0x1721 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .debug_info 0x00018694 0x1bc3 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .debug_info 0x0001a257 0x1205 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .debug_info 0x0001b45c 0x1274 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .debug_info 0x0001c6d0 0x3383 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .debug_info 0x0001fa53 0x19ab build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .debug_info 0x000213fe 0x115b build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .debug_info 0x00022559 0x3b39 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .debug_info 0x00026092 0x1aa4 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .debug_info 0x00027b36 0x1a07 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .debug_info 0x0002953d 0x1ae3 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .debug_info 0x0002b020 0x14fb build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .debug_info 0x0002c51b 0x127b build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .debug_info 0x0002d796 0x113f build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + .debug_info 0x0002e8d5 0x1a39 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .debug_info 0x0003030e 0x113b build/ChaletDuinoV2_795F512H_/production/Source/system.o + .debug_info 0x00031449 0x113d build/ChaletDuinoV2_795F512H_/production/Source/template.o + .debug_info 0x00032586 0x2165 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .debug_info 0x000346eb 0x33cc build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .debug_info 0x00037ab7 0x131a build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .debug_info 0x00038dd1 0x1f45 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .debug_info 0x0003ad16 0x17a7 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .debug_info 0x0003c4bd 0x12f5 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .debug_info 0x0003d7b2 0x1a5c build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .debug_info 0x0003f20e 0x15a7 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .debug_info 0x000407b5 0x16f7 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .debug_info 0x00041eac 0x185f build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .debug_info 0x0004370b 0x15a0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .debug_info 0x00044cab 0x1328 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .debug_info 0x00045fd3 0x2e3d build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .debug_info 0x00048e10 0x1322 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .debug_info 0x0004a132 0x14cc build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .debug_info 0x0004b5fe 0x211d build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .debug_info 0x0004d71b 0x2d0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .debug_info 0x0004d9eb 0x1573 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .debug_info 0x0004ef5e 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .debug_info 0x0004f00c 0xbb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .debug_info 0x0004f0c7 0xae c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .debug_info 0x0004f175 0xb0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .debug_info 0x0004f225 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .debug_info 0x0004f2d7 0xb2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .debug_info 0x0004f389 0x125 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .debug_info 0x0004f4ae 0xe2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .debug_info 0x0004f590 0xbc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .debug_info 0x0004f64c 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .debug_info 0x0004f710 0xad c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .debug_info 0x0004f7bd 0xd6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .debug_info 0x0004f893 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + .debug_info 0x0004f893 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .debug_info 0x0004f948 0xc5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .debug_info 0x0004fa0d 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .debug_info 0x0004fad8 0xb7 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .debug_info 0x0004fb8f 0xc2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .debug_info 0x0004fc51 0xc3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .debug_info 0x0004fd14 0xb8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .debug_info 0x0004fdcc 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .debug_info 0x0004fe7f 0xda c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .debug_info 0x0004ff59 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) + .debug_info 0x0004ff59 0xe5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .debug_info 0x0005003e 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .debug_info 0x0005011e 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .debug_info 0x000501d4 0xb3 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .debug_info 0x00050287 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .debug_info 0x00050338 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + .debug_info 0x00050338 0x219 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .debug_info 0x00050551 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + .debug_info 0x00050551 0xb5 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .debug_info 0x00050606 0xb6 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .debug_info 0x000506bc 0x115 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .debug_info 0x000507d1 0xab c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .debug_info 0x0005087c 0xad c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .debug_info 0x00050929 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) + .debug_info 0x00050929 0xcb c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .debug_info 0x000509f4 0x2c2 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .debug_info 0x00050cb6 0x782 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .debug_info 0x00051438 0x7b8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) -.debug_abbrev 0x00000000 0x6943 +.debug_abbrev 0x00000000 0x69a7 *(.debug_abbrev) .debug_abbrev 0x00000000 0x1f2 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .debug_abbrev 0x000001f2 0x17b build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .debug_abbrev 0x0000036d 0x2bb build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .debug_abbrev 0x00000628 0x268 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .debug_abbrev 0x00000890 0x290 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .debug_abbrev 0x00000b20 0x2dd build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .debug_abbrev 0x00000dfd 0x223 build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .debug_abbrev 0x00001020 0x1a2 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .debug_abbrev 0x000011c2 0x166 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o - .debug_abbrev 0x00001328 0x329 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .debug_abbrev 0x00001651 0x166 build/ChaletDuinoV2_795F512H_/production/Source/system.o - .debug_abbrev 0x000017b7 0x166 build/ChaletDuinoV2_795F512H_/production/Source/template.o - .debug_abbrev 0x0000191d 0x217 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .debug_abbrev 0x00001b34 0x35f build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .debug_abbrev 0x00001e93 0x18e build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .debug_abbrev 0x00002021 0x290 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .debug_abbrev 0x000022b1 0x1c4 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .debug_abbrev 0x00002475 0x18e build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .debug_abbrev 0x00002603 0x1fa build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .debug_abbrev 0x000027fd 0x24d build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .debug_abbrev 0x00002a4a 0x1da build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .debug_abbrev 0x00002c24 0x298 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .debug_abbrev 0x00002ebc 0x20d build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .debug_abbrev 0x000030c9 0x18c build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .debug_abbrev 0x00003255 0x2d1 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .debug_abbrev 0x00003526 0x1b5 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .debug_abbrev 0x000036db 0x1b2 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .debug_abbrev 0x0000388d 0x28f build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .debug_abbrev 0x00003b1c 0x9a build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .debug_abbrev 0x00003bb6 0x1f4 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .debug_abbrev 0x00003daa 0x1e9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .debug_abbrev 0x00003f93 0x27f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .debug_abbrev 0x00004212 0x2f1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .debug_abbrev 0x00004503 0x1f9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .debug_abbrev 0x000046fc 0x1ed build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .debug_abbrev 0x000048e9 0x2d4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .debug_abbrev 0x00004bbd 0x2d5 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .debug_abbrev 0x00004e92 0x29b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .debug_abbrev 0x0000512d 0x225 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .debug_abbrev 0x00005352 0x238 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .debug_abbrev 0x0000558a 0x273 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .debug_abbrev 0x000057fd 0x19d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .debug_abbrev 0x0000599a 0x1b1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .debug_abbrev 0x00005b4b 0x334 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .debug_abbrev 0x00005e7f 0x260 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .debug_abbrev 0x000060df 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_abbrev 0x00006111 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_abbrev 0x00006134 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_abbrev 0x00006157 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_abbrev 0x0000617a 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_abbrev 0x0000619d 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_abbrev 0x000061c0 0x5f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_abbrev 0x0000621f 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_abbrev 0x00006244 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_abbrev 0x00006269 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_abbrev 0x0000628e 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .debug_abbrev 0x000062b3 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_abbrev 0x000062d8 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_abbrev 0x000062d9 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_abbrev 0x000062fe 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_abbrev 0x00006323 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_abbrev 0x00006348 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_abbrev 0x0000636d 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_abbrev 0x00006392 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_abbrev 0x000063b7 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_abbrev 0x000063dc 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_abbrev 0x00006401 0x49 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_abbrev 0x0000644a 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_abbrev 0x0000644b 0x43 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_abbrev 0x0000648e 0x36 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_abbrev 0x000064c4 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_abbrev 0x000064e9 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_abbrev 0x0000650e 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_abbrev 0x00006533 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_abbrev 0x00006534 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_abbrev 0x00006559 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_abbrev 0x0000655a 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_abbrev 0x0000657f 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_abbrev 0x000065a4 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_abbrev 0x000065dc 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_abbrev 0x00006601 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_abbrev 0x00006626 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_abbrev 0x00006627 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_abbrev 0x00006659 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_abbrev 0x000066d2 0x132 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_abbrev 0x00006804 0x13f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .debug_abbrev 0x000001f2 0x1e9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .debug_abbrev 0x000003db 0x27f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .debug_abbrev 0x0000065a 0x2f1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .debug_abbrev 0x0000094b 0x1f9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .debug_abbrev 0x00000b44 0x1ed build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .debug_abbrev 0x00000d31 0x2d4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .debug_abbrev 0x00001005 0x2d5 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .debug_abbrev 0x000012da 0x29b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .debug_abbrev 0x00001575 0x225 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .debug_abbrev 0x0000179a 0x238 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .debug_abbrev 0x000019d2 0x2d7 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .debug_abbrev 0x00001ca9 0x19d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .debug_abbrev 0x00001e46 0x1b1 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .debug_abbrev 0x00001ff7 0x334 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .debug_abbrev 0x0000232b 0x260 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .debug_abbrev 0x0000258b 0x17b build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .debug_abbrev 0x00002706 0x2bb build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .debug_abbrev 0x000029c1 0x268 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .debug_abbrev 0x00002c29 0x290 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .debug_abbrev 0x00002eb9 0x2dd build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .debug_abbrev 0x00003196 0x223 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .debug_abbrev 0x000033b9 0x1a2 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .debug_abbrev 0x0000355b 0x166 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + .debug_abbrev 0x000036c1 0x329 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .debug_abbrev 0x000039ea 0x166 build/ChaletDuinoV2_795F512H_/production/Source/system.o + .debug_abbrev 0x00003b50 0x166 build/ChaletDuinoV2_795F512H_/production/Source/template.o + .debug_abbrev 0x00003cb6 0x217 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .debug_abbrev 0x00003ecd 0x35f build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .debug_abbrev 0x0000422c 0x18e build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .debug_abbrev 0x000043ba 0x290 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .debug_abbrev 0x0000464a 0x1c4 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .debug_abbrev 0x0000480e 0x18e build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .debug_abbrev 0x0000499c 0x1fa build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .debug_abbrev 0x00004b96 0x24d build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .debug_abbrev 0x00004de3 0x1da build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .debug_abbrev 0x00004fbd 0x298 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .debug_abbrev 0x00005255 0x20d build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .debug_abbrev 0x00005462 0x18c build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .debug_abbrev 0x000055ee 0x2d1 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .debug_abbrev 0x000058bf 0x1b5 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .debug_abbrev 0x00005a74 0x1b2 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .debug_abbrev 0x00005c26 0x28f build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .debug_abbrev 0x00005eb5 0x9a build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .debug_abbrev 0x00005f4f 0x1f4 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .debug_abbrev 0x00006143 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .debug_abbrev 0x00006175 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .debug_abbrev 0x00006198 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .debug_abbrev 0x000061bb 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .debug_abbrev 0x000061de 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .debug_abbrev 0x00006201 0x23 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .debug_abbrev 0x00006224 0x5f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .debug_abbrev 0x00006283 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .debug_abbrev 0x000062a8 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .debug_abbrev 0x000062cd 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .debug_abbrev 0x000062f2 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .debug_abbrev 0x00006317 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .debug_abbrev 0x0000633c 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + .debug_abbrev 0x0000633d 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .debug_abbrev 0x00006362 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .debug_abbrev 0x00006387 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .debug_abbrev 0x000063ac 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .debug_abbrev 0x000063d1 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .debug_abbrev 0x000063f6 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .debug_abbrev 0x0000641b 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .debug_abbrev 0x00006440 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .debug_abbrev 0x00006465 0x49 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .debug_abbrev 0x000064ae 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) + .debug_abbrev 0x000064af 0x43 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .debug_abbrev 0x000064f2 0x36 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .debug_abbrev 0x00006528 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .debug_abbrev 0x0000654d 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .debug_abbrev 0x00006572 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .debug_abbrev 0x00006597 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + .debug_abbrev 0x00006598 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .debug_abbrev 0x000065bd 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + .debug_abbrev 0x000065be 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .debug_abbrev 0x000065e3 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .debug_abbrev 0x00006608 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .debug_abbrev 0x00006640 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .debug_abbrev 0x00006665 0x25 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .debug_abbrev 0x0000668a 0x1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) + .debug_abbrev 0x0000668b 0x32 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .debug_abbrev 0x000066bd 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .debug_abbrev 0x00006736 0x132 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .debug_abbrev 0x00006868 0x13f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) -.debug_line 0x00000000 0x89d6 +.debug_line 0x00000000 0x8a56 *(.debug_line) .debug_line 0x00000000 0x210 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .debug_line 0x00000210 0x156 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .debug_line 0x00000366 0x2c8 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .debug_line 0x0000062e 0x262 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .debug_line 0x00000890 0x37b build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .debug_line 0x00000c0b 0x2f6 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .debug_line 0x00000f01 0x25b build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .debug_line 0x0000115c 0x161 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .debug_line 0x000012bd 0x101 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o - .debug_line 0x000013be 0x32d build/ChaletDuinoV2_795F512H_/production/Source/main.o - .debug_line 0x000016eb 0x101 build/ChaletDuinoV2_795F512H_/production/Source/system.o - .debug_line 0x000017ec 0x101 build/ChaletDuinoV2_795F512H_/production/Source/template.o - .debug_line 0x000018ed 0x22f build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .debug_line 0x00001b1c 0x4f6 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .debug_line 0x00002012 0x155 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .debug_line 0x00002167 0x25a build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .debug_line 0x000023c1 0x1ad build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .debug_line 0x0000256e 0x161 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .debug_line 0x000026cf 0x284 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .debug_line 0x00002953 0x23e build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .debug_line 0x00002b91 0x1e9 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .debug_line 0x00002d7a 0x2a0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .debug_line 0x0000301a 0x24d build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .debug_line 0x00003267 0x165 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .debug_line 0x000033cc 0x4b9 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .debug_line 0x00003885 0x193 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .debug_line 0x00003a18 0x19c build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .debug_line 0x00003bb4 0x380 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .debug_line 0x00003f34 0x137 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .debug_line 0x0000406b 0x1bf build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .debug_line 0x0000422a 0x1ec build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .debug_line 0x00004416 0x32e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .debug_line 0x00004744 0x40d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .debug_line 0x00004b51 0x27f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .debug_line 0x00004dd0 0x269 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .debug_line 0x00005039 0x379 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .debug_line 0x000053b2 0x814 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .debug_line 0x00005bc6 0x443 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .debug_line 0x00006009 0x22d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .debug_line 0x00006236 0x2f9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .debug_line 0x0000652f 0x381 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .debug_line 0x000068b0 0x1f2 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .debug_line 0x00006aa2 0x256 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .debug_line 0x00006cf8 0x633 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .debug_line 0x0000732b 0x368 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .debug_line 0x00007693 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_line 0x00007744 0x62 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_line 0x000077a6 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_line 0x00007817 0x72 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_line 0x00007889 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_line 0x000078fc 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_line 0x0000796f 0x8e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_line 0x000079fd 0x97 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_line 0x00007a94 0x84 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_line 0x00007b18 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_line 0x00007ba0 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .debug_line 0x00007c19 0x96 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_line 0x00007caf 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_line 0x00007caf 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_line 0x00007d1f 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_line 0x00007d8d 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_line 0x00007dfd 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_line 0x00007e6e 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_line 0x00007ede 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_line 0x00007f4f 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_line 0x00007fbf 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_line 0x0000802e 0x6d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_line 0x0000809b 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_line 0x0000809b 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_line 0x0000810b 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_line 0x0000817b 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_line 0x000081eb 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_line 0x0000825a 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_line 0x000082c8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_line 0x000082c8 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_line 0x00008338 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_line 0x00008338 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_line 0x000083a8 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_line 0x00008418 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_line 0x00008490 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_line 0x00008508 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_line 0x00008581 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_line 0x00008581 0x93 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_line 0x00008614 0x105 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_line 0x00008719 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_line 0x00008881 0x155 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .debug_line 0x00000210 0x1fc build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .debug_line 0x0000040c 0x32e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .debug_line 0x0000073a 0x40d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .debug_line 0x00000b47 0x27f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .debug_line 0x00000dc6 0x26d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .debug_line 0x00001033 0x379 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .debug_line 0x000013ac 0x814 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .debug_line 0x00001bc0 0x443 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .debug_line 0x00002003 0x22d build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .debug_line 0x00002230 0x2f9 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .debug_line 0x00002529 0x3ed build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .debug_line 0x00002916 0x1f2 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .debug_line 0x00002b08 0x256 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .debug_line 0x00002d5e 0x633 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .debug_line 0x00003391 0x368 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .debug_line 0x000036f9 0x156 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .debug_line 0x0000384f 0x2c8 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .debug_line 0x00003b17 0x262 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .debug_line 0x00003d79 0x37b build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .debug_line 0x000040f4 0x2f6 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .debug_line 0x000043ea 0x25b build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .debug_line 0x00004645 0x161 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .debug_line 0x000047a6 0x101 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + .debug_line 0x000048a7 0x32d build/ChaletDuinoV2_795F512H_/production/Source/main.o + .debug_line 0x00004bd4 0x101 build/ChaletDuinoV2_795F512H_/production/Source/system.o + .debug_line 0x00004cd5 0x101 build/ChaletDuinoV2_795F512H_/production/Source/template.o + .debug_line 0x00004dd6 0x22f build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .debug_line 0x00005005 0x4f6 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .debug_line 0x000054fb 0x155 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .debug_line 0x00005650 0x25a build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .debug_line 0x000058aa 0x1ad build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .debug_line 0x00005a57 0x161 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .debug_line 0x00005bb8 0x284 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .debug_line 0x00005e3c 0x23e build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .debug_line 0x0000607a 0x1e9 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .debug_line 0x00006263 0x2a0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .debug_line 0x00006503 0x24d build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .debug_line 0x00006750 0x165 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .debug_line 0x000068b5 0x4b9 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .debug_line 0x00006d6e 0x193 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .debug_line 0x00006f01 0x19c build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .debug_line 0x0000709d 0x380 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .debug_line 0x0000741d 0x137 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .debug_line 0x00007554 0x1bf build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .debug_line 0x00007713 0xb1 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .debug_line 0x000077c4 0x62 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .debug_line 0x00007826 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .debug_line 0x00007897 0x72 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .debug_line 0x00007909 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .debug_line 0x0000797c 0x73 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .debug_line 0x000079ef 0x8e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .debug_line 0x00007a7d 0x97 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .debug_line 0x00007b14 0x84 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .debug_line 0x00007b98 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .debug_line 0x00007c20 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .debug_line 0x00007c99 0x96 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .debug_line 0x00007d2f 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + .debug_line 0x00007d2f 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .debug_line 0x00007d9f 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .debug_line 0x00007e0d 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .debug_line 0x00007e7d 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .debug_line 0x00007eee 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .debug_line 0x00007f5e 0x71 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .debug_line 0x00007fcf 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .debug_line 0x0000803f 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .debug_line 0x000080ae 0x6d c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .debug_line 0x0000811b 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) + .debug_line 0x0000811b 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .debug_line 0x0000818b 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .debug_line 0x000081fb 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .debug_line 0x0000826b 0x6f c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .debug_line 0x000082da 0x6e c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .debug_line 0x00008348 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + .debug_line 0x00008348 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .debug_line 0x000083b8 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + .debug_line 0x000083b8 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .debug_line 0x00008428 0x70 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .debug_line 0x00008498 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .debug_line 0x00008510 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .debug_line 0x00008588 0x79 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .debug_line 0x00008601 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) + .debug_line 0x00008601 0x93 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .debug_line 0x00008694 0x105 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .debug_line 0x00008799 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .debug_line 0x00008901 0x155 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) -.debug_frame 0x00000000 0x3aa0 +.debug_frame 0x00000000 0x3ac0 *(.debug_frame) .debug_frame 0x00000000 0x2c build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .debug_frame 0x0000002c 0x2c build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .debug_frame 0x00000058 0x138 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .debug_frame 0x00000190 0x130 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .debug_frame 0x000002c0 0xf4 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .debug_frame 0x000003b4 0x128 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .debug_frame 0x000004dc 0x10c build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .debug_frame 0x000005e8 0x2c build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .debug_frame 0x00000614 0x64 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .debug_frame 0x00000678 0x148 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .debug_frame 0x000007c0 0x2b4 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .debug_frame 0x00000a74 0x2c build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .debug_frame 0x00000aa0 0x80 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .debug_frame 0x00000b20 0xb8 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .debug_frame 0x00000bd8 0x48 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .debug_frame 0x00000c20 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .debug_frame 0x00000cf8 0x198 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .debug_frame 0x00000e90 0x9c build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .debug_frame 0x00000f2c 0x17c build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .debug_frame 0x000010a8 0xa0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .debug_frame 0x00001148 0x80 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .debug_frame 0x000011c8 0x1d0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .debug_frame 0x00001398 0x80 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .debug_frame 0x00001418 0x64 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .debug_frame 0x0000147c 0x1b4 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .debug_frame 0x00001630 0x64 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .debug_frame 0x00001694 0x80 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .debug_frame 0x00001714 0x80 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .debug_frame 0x00001794 0x148 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .debug_frame 0x000018dc 0x1ec build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .debug_frame 0x00001ac8 0xb8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .debug_frame 0x00001b80 0xd4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .debug_frame 0x00001c54 0x144 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .debug_frame 0x00001d98 0x8d0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .debug_frame 0x00002668 0x294 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .debug_frame 0x000028fc 0x17c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .debug_frame 0x00002a78 0x128 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .debug_frame 0x00002ba0 0x298 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .debug_frame 0x00002e38 0x2c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .debug_frame 0x00002e64 0x2c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .debug_frame 0x00002e90 0x320 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .debug_frame 0x000031b0 0x17c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .debug_frame 0x0000332c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_frame 0x00003354 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_frame 0x00003384 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_frame 0x000033a4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_frame 0x000033c4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_frame 0x000033e4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_frame 0x00003404 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_frame 0x0000342c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_frame 0x00003454 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_frame 0x00003474 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_frame 0x00003494 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .debug_frame 0x000034b4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_frame 0x000034d4 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_frame 0x00003500 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_frame 0x00003548 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_frame 0x00003580 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_frame 0x000035a0 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_frame 0x000035c8 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_frame 0x000035f4 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_frame 0x0000361c 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_frame 0x00003648 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_frame 0x00003680 0x58 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_frame 0x000036d8 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_frame 0x0000374c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_frame 0x00003774 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_frame 0x000037a4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_frame 0x000037c4 0x120 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_frame 0x000038e4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_frame 0x00003904 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_frame 0x00003934 0x8c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_frame 0x000039c0 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_frame 0x000039ec 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_frame 0x00003a14 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_frame 0x00003a34 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_frame 0x00003a60 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_frame 0x00003a80 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .debug_frame 0x0000002c 0xa0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .debug_frame 0x000000cc 0x148 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .debug_frame 0x00000214 0x1ec build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .debug_frame 0x00000400 0xb8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .debug_frame 0x000004b8 0xd4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .debug_frame 0x0000058c 0x144 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .debug_frame 0x000006d0 0x8d0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .debug_frame 0x00000fa0 0x294 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .debug_frame 0x00001234 0x17c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .debug_frame 0x000013b0 0x128 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .debug_frame 0x000014d8 0x298 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .debug_frame 0x00001770 0x2c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .debug_frame 0x0000179c 0x2c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .debug_frame 0x000017c8 0x320 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .debug_frame 0x00001ae8 0x17c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .debug_frame 0x00001c64 0x2c build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .debug_frame 0x00001c90 0x138 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .debug_frame 0x00001dc8 0x130 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .debug_frame 0x00001ef8 0xf4 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .debug_frame 0x00001fec 0x128 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .debug_frame 0x00002114 0x10c build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .debug_frame 0x00002220 0x2c build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .debug_frame 0x0000224c 0x64 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .debug_frame 0x000022b0 0x148 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .debug_frame 0x000023f8 0x2b4 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .debug_frame 0x000026ac 0x2c build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .debug_frame 0x000026d8 0x80 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .debug_frame 0x00002758 0xb8 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .debug_frame 0x00002810 0x48 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .debug_frame 0x00002858 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .debug_frame 0x00002930 0x198 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .debug_frame 0x00002ac8 0x9c build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .debug_frame 0x00002b64 0x17c build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .debug_frame 0x00002ce0 0xa0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .debug_frame 0x00002d80 0x80 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .debug_frame 0x00002e00 0x1d0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .debug_frame 0x00002fd0 0x80 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .debug_frame 0x00003050 0x64 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .debug_frame 0x000030b4 0x1b4 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .debug_frame 0x00003268 0x64 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .debug_frame 0x000032cc 0x80 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .debug_frame 0x0000334c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .debug_frame 0x00003374 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .debug_frame 0x000033a4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .debug_frame 0x000033c4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .debug_frame 0x000033e4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .debug_frame 0x00003404 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .debug_frame 0x00003424 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .debug_frame 0x0000344c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .debug_frame 0x00003474 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .debug_frame 0x00003494 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .debug_frame 0x000034b4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .debug_frame 0x000034d4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .debug_frame 0x000034f4 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .debug_frame 0x00003520 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .debug_frame 0x00003568 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .debug_frame 0x000035a0 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .debug_frame 0x000035c0 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .debug_frame 0x000035e8 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .debug_frame 0x00003614 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .debug_frame 0x0000363c 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .debug_frame 0x00003668 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .debug_frame 0x000036a0 0x58 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .debug_frame 0x000036f8 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .debug_frame 0x0000376c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .debug_frame 0x00003794 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .debug_frame 0x000037c4 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .debug_frame 0x000037e4 0x120 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .debug_frame 0x00003904 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .debug_frame 0x00003924 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .debug_frame 0x00003954 0x8c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .debug_frame 0x000039e0 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .debug_frame 0x00003a0c 0x28 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .debug_frame 0x00003a34 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .debug_frame 0x00003a54 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .debug_frame 0x00003a80 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .debug_frame 0x00003aa0 0x20 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) -.debug_str 0x00000000 0x44cd +.debug_str 0x00000000 0x44f9 *(.debug_str) .debug_str 0x00000000 0x242 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - .debug_str 0x00000242 0x12f build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - .debug_str 0x00000371 0x21e build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .debug_str 0x0000058f 0x14f build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - .debug_str 0x000006de 0x1ac build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - .debug_str 0x0000088a 0x18a build/ChaletDuinoV2_795F512H_/production/Source/Uart.o - .debug_str 0x00000a14 0x145 build/ChaletDuinoV2_795F512H_/production/Source/Util.o - .debug_str 0x00000b59 0x12f build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - .debug_str 0x00000c88 0x12f build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o - .debug_str 0x00000db7 0x14d build/ChaletDuinoV2_795F512H_/production/Source/main.o - .debug_str 0x00000f04 0x12f build/ChaletDuinoV2_795F512H_/production/Source/system.o - .debug_str 0x00001033 0x12f build/ChaletDuinoV2_795F512H_/production/Source/template.o - .debug_str 0x00001162 0x17f build/ChaletDuinoV2_795F512H_/production/Source/timer.o - .debug_str 0x000012e1 0x289 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .debug_str 0x0000156a 0x146 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - .debug_str 0x000016b0 0x18d build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .debug_str 0x0000183d 0x15b build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - .debug_str 0x00001998 0x138 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - .debug_str 0x00001ad0 0x1d9 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .debug_str 0x00001ca9 0x18b build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - .debug_str 0x00001e34 0x17e build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - .debug_str 0x00001fb2 0x19f build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - .debug_str 0x00002151 0x14b build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .debug_str 0x0000229c 0x15e build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - .debug_str 0x000023fa 0x2cb build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .debug_str 0x000026c5 0x13a build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - .debug_str 0x000027ff 0x159 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .debug_str 0x00002958 0x1fe build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - .debug_str 0x00002b56 0x0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - .debug_str 0x00002b56 0x145 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - .debug_str 0x00002c9b 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - .debug_str 0x00002dca 0x1ba build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - .debug_str 0x00002f84 0x158 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - .debug_str 0x000030dc 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - .debug_str 0x0000320b 0x139 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - .debug_str 0x00003344 0x166 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - .debug_str 0x000034aa 0x406 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .debug_str 0x000038b0 0x15c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - .debug_str 0x00003a0c 0x160 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - .debug_str 0x00003b6c 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - .debug_str 0x00003c9b 0x165 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - .debug_str 0x00003e00 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - .debug_str 0x00003f2f 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - .debug_str 0x0000405e 0x2e5 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - .debug_str 0x00004343 0x18a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - .debug_str 0x000044cd 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + .debug_str 0x00000242 0x141 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + .debug_str 0x00000383 0x1ba build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + .debug_str 0x0000053d 0x158 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + .debug_str 0x00000695 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + .debug_str 0x000007c4 0x139 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + .debug_str 0x000008fd 0x166 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + .debug_str 0x00000a63 0x406 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .debug_str 0x00000e69 0x15c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + .debug_str 0x00000fc5 0x160 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + .debug_str 0x00001125 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + .debug_str 0x00001254 0x17f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + .debug_str 0x000013d3 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + .debug_str 0x00001502 0x12f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + .debug_str 0x00001631 0x2e5 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + .debug_str 0x00001916 0x18a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + .debug_str 0x00001aa0 0x12f build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + .debug_str 0x00001bcf 0x21e build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .debug_str 0x00001ded 0x14f build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + .debug_str 0x00001f3c 0x1ac build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + .debug_str 0x000020e8 0x18a build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + .debug_str 0x00002272 0x145 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + .debug_str 0x000023b7 0x12f build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + .debug_str 0x000024e6 0x12f build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + .debug_str 0x00002615 0x14d build/ChaletDuinoV2_795F512H_/production/Source/main.o + .debug_str 0x00002762 0x12f build/ChaletDuinoV2_795F512H_/production/Source/system.o + .debug_str 0x00002891 0x12f build/ChaletDuinoV2_795F512H_/production/Source/template.o + .debug_str 0x000029c0 0x17f build/ChaletDuinoV2_795F512H_/production/Source/timer.o + .debug_str 0x00002b3f 0x289 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .debug_str 0x00002dc8 0x146 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + .debug_str 0x00002f0e 0x18d build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .debug_str 0x0000309b 0x15b build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + .debug_str 0x000031f6 0x138 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + .debug_str 0x0000332e 0x1d9 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .debug_str 0x00003507 0x18b build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + .debug_str 0x00003692 0x17e build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + .debug_str 0x00003810 0x19f build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + .debug_str 0x000039af 0x14b build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .debug_str 0x00003afa 0x15e build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + .debug_str 0x00003c58 0x2cb build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .debug_str 0x00003f23 0x13a build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + .debug_str 0x0000405d 0x159 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .debug_str 0x000041b6 0x1fe build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + .debug_str 0x000043b4 0x0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + .debug_str 0x000043b4 0x145 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + .debug_str 0x000044f9 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) .debug_loc 0x00000000 0x1489 *(.debug_loc) @@ -2625,106 +2626,106 @@ END GROUP *(.debug_varnames) .debug_pubtypes - 0x00000000 0x43e7 + 0x00000000 0x441a *(.debug_pubtypes) .debug_pubtypes 0x00000000 0x276 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o .debug_pubtypes - 0x00000276 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + 0x00000276 0x133 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o .debug_pubtypes - 0x0000035d 0x1f8 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0x000003a9 0x164 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o .debug_pubtypes - 0x00000555 0x136 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0x0000050d 0x155 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o .debug_pubtypes - 0x0000068b 0x1af build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0x00000662 0x15e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o .debug_pubtypes - 0x0000083a 0x166 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0x000007c0 0x128 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o .debug_pubtypes - 0x000009a0 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x000008e8 0x216 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o .debug_pubtypes - 0x00000a87 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + 0x00000afe 0x756 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o .debug_pubtypes - 0x00000b6e 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + 0x00001254 0x120 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o .debug_pubtypes - 0x00000c55 0x15b build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0x00001374 0x13a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o .debug_pubtypes - 0x00000db0 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/system.o + 0x000014ae 0x14e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o .debug_pubtypes - 0x00000e97 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/template.o + 0x000015fc 0x13f build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o .debug_pubtypes - 0x00000f7e 0x145 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0x0000173b 0x113 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o .debug_pubtypes - 0x000010c3 0x2f4 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0x0000184e 0x11b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o .debug_pubtypes - 0x000013b7 0xfc build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + 0x00001969 0x3c3 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o .debug_pubtypes - 0x000014b3 0x17e build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0x00001d2c 0x120 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .debug_pubtypes - 0x00001631 0x136 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0x00001e4c 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .debug_pubtypes - 0x00001767 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + 0x00001f33 0x1f8 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .debug_pubtypes - 0x0000185f 0x160 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0x0000212b 0x136 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o .debug_pubtypes - 0x000019bf 0x121 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0x00002261 0x1af build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o .debug_pubtypes - 0x00001ae0 0x110 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0x00002410 0x166 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o .debug_pubtypes - 0x00001bf0 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0x00002576 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/Util.o .debug_pubtypes - 0x00001ce8 0x139 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0x0000265d 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o .debug_pubtypes - 0x00001e21 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0x00002744 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o .debug_pubtypes - 0x00001f19 0x344 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0x0000282b 0x15b build/ChaletDuinoV2_795F512H_/production/Source/main.o .debug_pubtypes - 0x0000225d 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + 0x00002986 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/system.o .debug_pubtypes - 0x00002344 0x10d build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0x00002a6d 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/template.o .debug_pubtypes - 0x00002451 0x183 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0x00002b54 0x145 build/ChaletDuinoV2_795F512H_/production/Source/timer.o .debug_pubtypes - 0x000025d4 0x2c build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + 0x00002c99 0x2f4 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o .debug_pubtypes - 0x00002600 0x11e build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0x00002f8d 0xfc build/ChaletDuinoV2_795F512H_/production/Source/SPI.o .debug_pubtypes - 0x0000271e 0x111 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + 0x00003089 0x17e build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o .debug_pubtypes - 0x0000282f 0x164 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + 0x00003207 0x136 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o .debug_pubtypes - 0x00002993 0x155 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0x0000333d 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o .debug_pubtypes - 0x00002ae8 0x15e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + 0x00003435 0x160 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o .debug_pubtypes - 0x00002c46 0x128 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + 0x00003595 0x121 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o .debug_pubtypes - 0x00002d6e 0x216 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + 0x000036b6 0x110 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o .debug_pubtypes - 0x00002f84 0x756 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + 0x000037c6 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o .debug_pubtypes - 0x000036da 0x120 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + 0x000038be 0x139 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o .debug_pubtypes - 0x000037fa 0x13a build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0x000039f7 0xf8 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o .debug_pubtypes - 0x00003934 0x14e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + 0x00003aef 0x344 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o .debug_pubtypes - 0x00003a82 0x12e build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0x00003e33 0xe7 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o .debug_pubtypes - 0x00003bb0 0x113 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + 0x00003f1a 0x10d build/ChaletDuinoV2_795F512H_/production/Source/TC77.o .debug_pubtypes - 0x00003cc3 0x11b build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + 0x00004027 0x183 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .debug_pubtypes - 0x00003dde 0x3c3 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0x000041aa 0x2c build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .debug_pubtypes - 0x000041a1 0x120 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + 0x000041d6 0x11e build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o .debug_pubtypes - 0x000042c1 0x34 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + 0x000042f4 0x34 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) .debug_pubtypes - 0x000042f5 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + 0x00004328 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) .debug_pubtypes - 0x00004335 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + 0x00004368 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) .debug_pubtypes - 0x0000438e 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + 0x000043c1 0x59 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) .debug_ranges 0x00000000 0x270 *(.debug_ranges) @@ -2761,93 +2762,93 @@ END GROUP .gnu.attributes 0x00000000 0x10 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o .gnu.attributes - 0x00000010 0x10 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + 0x00000010 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o .gnu.attributes - 0x00000020 0x10 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0x00000020 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o .gnu.attributes - 0x00000030 0x10 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0x00000030 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o .gnu.attributes - 0x00000040 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0x00000040 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o .gnu.attributes - 0x00000050 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o + 0x00000050 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o .gnu.attributes - 0x00000060 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x00000060 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o .gnu.attributes - 0x00000070 0x10 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + 0x00000070 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o .gnu.attributes - 0x00000080 0x10 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o + 0x00000080 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o .gnu.attributes - 0x00000090 0x10 build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0x00000090 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o .gnu.attributes - 0x000000a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/system.o + 0x000000a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o .gnu.attributes - 0x000000b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/template.o + 0x000000b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o .gnu.attributes - 0x000000c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0x000000c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o .gnu.attributes - 0x000000d0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + 0x000000d0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o .gnu.attributes - 0x000000e0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + 0x000000e0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o .gnu.attributes - 0x000000f0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0x000000f0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o .gnu.attributes - 0x00000100 0x10 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0x00000100 0x10 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o .gnu.attributes - 0x00000110 0x10 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + 0x00000110 0x10 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o .gnu.attributes - 0x00000120 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0x00000120 0x10 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o .gnu.attributes - 0x00000130 0x10 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0x00000130 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o .gnu.attributes - 0x00000140 0x10 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0x00000140 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o .gnu.attributes - 0x00000150 0x10 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0x00000150 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Util.o .gnu.attributes - 0x00000160 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0x00000160 0x10 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o .gnu.attributes - 0x00000170 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0x00000170 0x10 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o .gnu.attributes - 0x00000180 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + 0x00000180 0x10 build/ChaletDuinoV2_795F512H_/production/Source/main.o .gnu.attributes - 0x00000190 0x10 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + 0x00000190 0x10 build/ChaletDuinoV2_795F512H_/production/Source/system.o .gnu.attributes - 0x000001a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0x000001a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/template.o .gnu.attributes - 0x000001b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0x000001b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/timer.o .gnu.attributes - 0x000001c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + 0x000001c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o .gnu.attributes - 0x000001d0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0x000001d0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o .gnu.attributes - 0x000001e0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + 0x000001e0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o .gnu.attributes - 0x000001f0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + 0x000001f0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o .gnu.attributes - 0x00000200 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0x00000200 0x10 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o .gnu.attributes - 0x00000210 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + 0x00000210 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o .gnu.attributes - 0x00000220 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + 0x00000220 0x10 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o .gnu.attributes - 0x00000230 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + 0x00000230 0x10 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o .gnu.attributes - 0x00000240 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + 0x00000240 0x10 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o .gnu.attributes - 0x00000250 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + 0x00000250 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o .gnu.attributes - 0x00000260 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0x00000260 0x10 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o .gnu.attributes - 0x00000270 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + 0x00000270 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o .gnu.attributes - 0x00000280 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0x00000280 0x10 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o .gnu.attributes - 0x00000290 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + 0x00000290 0x10 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o .gnu.attributes - 0x000002a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + 0x000002a0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .gnu.attributes - 0x000002b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + 0x000002b0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o .gnu.attributes - 0x000002c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + 0x000002c0 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o .gnu.attributes 0x000002d0 0x10 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) .gnu.attributes @@ -2956,36 +2957,36 @@ LOAD data_init .stack 0xa00042d8 0x400 .stack 0xa00042d8 0x400 stack -.data 0xa00030a4 0x4bc - .data 0xa00030a4 0x4bc build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o +.data 0xa00030a8 0x4bc + .data 0xa00030a8 0x4bc build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o -.bss 0xa0003560 0x800 - .bss 0xa0003560 0x400 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .bss 0xa0003960 0x400 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o +.bss 0xa0003564 0x800 + .bss 0xa0003564 0x400 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .bss 0xa0003964 0x400 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o -.data 0xa0003d60 0x2c4 - .data 0xa0003d60 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0003d60 _iob - .data 0xa0003e00 0x6c build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o - .data 0xa0003e6c 0x58 build/ChaletDuinoV2_795F512H_/production/Source/main.o - .data 0xa0003ec4 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .data 0xa0003f1c 0x58 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .data 0xa0003f74 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o - .data 0xa0003fcc 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o +.data 0xa0003d64 0x2c4 + .data 0xa0003d64 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + 0xa0003d64 _iob + .data 0xa0003e04 0x6c build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o + .data 0xa0003e70 0x58 build/ChaletDuinoV2_795F512H_/production/Source/main.o + .data 0xa0003ec8 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .data 0xa0003f20 0x58 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .data 0xa0003f78 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o + .data 0xa0003fd0 0x58 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o -.bss 0xa0004024 0x40 - .bss 0xa0004024 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) - 0xa0004024 _sibuf - 0xa0004044 _sobuf +.bss 0xa0004028 0x40 + .bss 0xa0004028 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) + 0xa0004028 _sibuf + 0xa0004048 _sobuf -.data 0xa0004064 0x1c - .data 0xa0004064 0x1c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o +.data 0xa0004068 0x1c + .data 0xa0004068 0x1c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o -.bss 0xa0004080 0x38 - .bss 0xa0004080 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - .bss 0xa000409c 0x14 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - .bss 0xa00040b0 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - .bss 0xa00040b4 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) +.bss 0xa0004084 0x38 + .bss 0xa0004084 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + .bss 0xa00040a0 0x14 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + .bss 0xa00040b4 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + .bss 0xa00040b8 0x4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) .bss%z1 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) @@ -3537,402 +3538,396 @@ LOAD data_init .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) .bss%z184 0x00000000 0x0 - .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) - -.data%z185 0x00000000 0x0 - .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) - -.bss%z186 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) -.data%z187 0x00000000 0x0 +.data%z185 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) -.bss%z188 0x00000000 0x0 +.bss%z186 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) -.data%z189 0x00000000 0x0 +.data%z187 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) -.bss%z190 0x00000000 0x0 +.bss%z188 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) -.data%z191 0x00000000 0x0 +.data%z189 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) -.bss%z192 0x00000000 0x0 +.bss%z190 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) -.data%z193 0x00000000 0x0 +.data%z191 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) -.bss%z194 0x00000000 0x0 +.bss%z192 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) -.data%z195 0x00000000 0x0 +.data%z193 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) -.bss%z196 0x00000000 0x0 +.bss%z194 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) -.data%z197 0x00000000 0x0 +.data%z195 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) -.bss%z198 0x00000000 0x0 +.bss%z196 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) -.data%z199 0x00000000 0x0 +.data%z197 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) -.bss%z200 0x00000000 0x0 +.bss%z198 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) -.data%z201 0x00000000 0x0 +.data%z199 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) -.bss%z202 0x00000000 0x0 +.bss%z200 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) -.data%z203 0x00000000 0x0 +.data%z201 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) -.bss%z204 0x00000000 0x0 +.bss%z202 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) -.data%z205 0x00000000 0x0 +.data%z203 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) -.bss%z206 0x00000000 0x0 +.bss%z204 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) -.data%z207 0x00000000 0x0 +.data%z205 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) -.bss%z208 0x00000000 0x0 +.bss%z206 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) -.data%z209 0x00000000 0x0 +.data%z207 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) -.bss%z210 0x00000000 0x0 +.bss%z208 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) -.data%z211 0x00000000 0x0 +.data%z209 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) -.bss%z212 0x00000000 0x0 +.bss%z210 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcmp.o) -.data%z213 0x00000000 0x0 +.data%z211 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcmp.o) -.bss%z214 0x00000000 0x0 +.bss%z212 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) -.data%z215 0x00000000 0x0 +.data%z213 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) -.bss%z216 0x00000000 0x0 +.bss%z214 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o -.data%z217 0x00000000 0x0 +.data%z215 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o -.bss%z218 0x00000000 0x0 +.bss%z216 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o -.data%z219 0x00000000 0x0 +.data%z217 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o -.bss%z220 0x00000000 0x0 +.bss%z218 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) -.data%z221 0x00000000 0x0 +.data%z219 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) -.bss%z222 0x00000000 0x0 +.bss%z220 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) -.data%z223 0x00000000 0x0 +.data%z221 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) -.bss%z224 0x00000000 0x0 +.bss%z222 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) -.data%z225 0x00000000 0x0 +.data%z223 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) -.bss%z226 0x00000000 0x0 +.bss%z224 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) -.data%z227 0x00000000 0x0 +.data%z225 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) -.bss%z228 0x00000000 0x0 +.bss%z226 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) -.data%z229 0x00000000 0x0 +.data%z227 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) -.bss%z230 0x00000000 0x0 +.bss%z228 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) -.data%z231 0x00000000 0x0 +.data%z229 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) -.bss%z232 0x00000000 0x0 +.bss%z230 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o -.data%z233 0x00000000 0x0 +.data%z231 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o -.bss%z234 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - -.data%z235 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - -.bss%z236 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - -.data%z237 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o - -.bss%z238 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - -.data%z239 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - -.bss%z240 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - -.data%z241 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - -.bss%z242 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - -.data%z243 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - -.bss%z244 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - -.data%z245 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - -.bss%z246 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - -.data%z247 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - -.bss%z248 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - -.data%z249 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o - -.data%z250 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o - -.bss%z251 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - -.data%z252 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - -.bss%z253 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - -.data%z254 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - -.bss%z255 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - -.data%z256 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - -.bss%z257 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - -.bss%z258 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - -.data%z259 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - -.bss%z260 0x00000000 0x0 - .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - -.data%z261 0x00000000 0x0 - .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - -.bss%z262 0x00000000 0x0 +.bss%z232 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o -.data%z263 0x00000000 0x0 +.data%z233 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o -.data%z264 0x00000000 0x0 +.data%z234 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/crc32.o -.bss%z265 0x00000000 0x0 +.bss%z235 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o -.bss%z266 0x00000000 0x0 +.bss%z236 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o -.data%z267 0x00000000 0x0 +.data%z237 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o -.bss%z268 0x00000000 0x0 +.bss%z238 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o -.data%z269 0x00000000 0x0 +.data%z239 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o -.bss%z270 0x00000000 0x0 +.bss%z240 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o -.bss%z271 0x00000000 0x0 +.bss%z241 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o -.data%z272 0x00000000 0x0 +.data%z242 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o -.bss%z273 0x00000000 0x0 +.bss%z243 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o -.bss%z274 0x00000000 0x0 +.bss%z244 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o -.data%z275 0x00000000 0x0 +.data%z245 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o -.bss%z276 0x00000000 0x0 +.bss%z246 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o -.data%z277 0x00000000 0x0 +.data%z247 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o -.bss%z278 0x00000000 0x0 +.bss%z248 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o -.data%z279 0x00000000 0x0 +.data%z249 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o -.bss%z280 0x00000000 0x0 +.bss%z250 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o -.bss%z281 0x00000000 0x0 +.bss%z251 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o -.data%z282 0x00000000 0x0 +.data%z252 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o -.bss%z283 0x00000000 0x0 +.bss%z253 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o -.data%z284 0x00000000 0x0 +.data%z254 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o -.bss%z285 0x00000000 0x0 +.bss%z255 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o -.data%z286 0x00000000 0x0 +.data%z256 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o -.bss%z287 0x00000000 0x0 +.bss%z257 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o -.data%z288 0x00000000 0x0 +.data%z258 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o -.bss%z289 0x00000000 0x0 +.bss%z259 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/timer.o -.data%z290 0x00000000 0x0 +.data%z260 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/timer.o -.bss%z291 0x00000000 0x0 +.bss%z261 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/template.o -.data%z292 0x00000000 0x0 +.data%z262 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/template.o -.bss%z293 0x00000000 0x0 +.bss%z263 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/system.o -.data%z294 0x00000000 0x0 +.data%z264 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/system.o -.bss%z295 0x00000000 0x0 +.bss%z265 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/main.o -.bss%z296 0x00000000 0x0 +.bss%z266 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o -.data%z297 0x00000000 0x0 +.data%z267 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o -.bss%z298 0x00000000 0x0 +.bss%z268 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o -.data%z299 0x00000000 0x0 +.data%z269 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o -.bss%z300 0x00000000 0x0 +.bss%z270 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Util.o -.data%z301 0x00000000 0x0 +.data%z271 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Util.o -.bss%z302 0x00000000 0x0 +.bss%z272 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o -.data%z303 0x00000000 0x0 +.data%z273 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Uart.o -.bss%z304 0x00000000 0x0 +.bss%z274 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o -.bss%z305 0x00000000 0x0 +.bss%z275 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o -.data%z306 0x00000000 0x0 +.data%z276 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o -.bss%z307 0x00000000 0x0 +.bss%z277 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o -.data%z308 0x00000000 0x0 +.data%z278 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o -.bss%z309 0x00000000 0x0 +.bss%z279 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o -.data%z310 0x00000000 0x0 +.data%z280 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o -.bss%z311 0x00000000 0x0 +.bss%z281 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + +.data%z282 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + +.bss%z283 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + +.data%z284 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/socket.o + +.bss%z285 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + +.data%z286 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + +.bss%z287 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + +.data%z288 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + +.bss%z289 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + +.data%z290 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + +.bss%z291 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + +.data%z292 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + +.bss%z293 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + +.data%z294 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + +.bss%z295 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + +.data%z296 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmasic.o + +.data%z297 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o + +.bss%z298 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + +.data%z299 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + +.bss%z300 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + +.data%z301 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + +.bss%z302 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + +.data%z303 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + +.bss%z304 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + +.bss%z305 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + +.data%z306 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + +.bss%z307 0x00000000 0x0 + .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + +.data%z308 0x00000000 0x0 + .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + +.bss%z309 0x00000000 0x0 .bss 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o -.data%z312 0x00000000 0x0 +.data%z310 0x00000000 0x0 .data 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o -.bss%z313 0x00000000 0x0 +.bss%z311 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o -.data%z314 0x00000000 0x0 +.data%z312 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o -.bss%z315 0x00000000 0x0 +.bss%z313 0x00000000 0x0 .bss 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o -.data%z316 0x00000000 0x0 +.data%z314 0x00000000 0x0 .data 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o ._debug_exception @@ -3941,7 +3936,7 @@ LOAD data_init 0xbfc00480 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o 0xbfc00480 __DbgExecReturn -.text 0x9d005800 0xcdbc +.text 0x9d005800 0xe274 .text 0x9d005800 0x4174 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_wifi.o 0x9d006008 m2m_wifi_download_mode 0x9d006334 m2m_wifi_ble_set_gain_table @@ -4116,1063 +4111,1061 @@ LOAD data_init 0x9d0122a8 pullup_ctrl 0x9d012360 nmi_get_otp_mac_address 0x9d0124c0 nmi_get_mac_address + .text 0x9d0125bc 0x14b8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o + 0x9d013504 nm_spi_reset + 0x9d013558 nm_spi_lock_init + 0x9d013578 nm_spi_init + 0x9d013730 nm_spi_deinit + 0x9d013758 nm_spi_read_reg + 0x9d01379c nm_spi_read_reg_with_ret + 0x9d01382c nm_spi_write_reg + 0x9d0138bc nm_spi_read_block + 0x9d0139b0 nm_spi_write_block .text._vfprintf_cdfFnopsuxX - 0x9d0125bc 0x13d4 + 0x9d013a74 0x13d4 .text._vfprintf_cdfFnopsuxX - 0x9d0125bc 0x13d4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) - 0x9d0125bc _vfprintf_cdfFnopsuxX - 0x9d0125bc _vfprintf_cdfFnopuxX - 0x9d0125bc _vfprintf_cdnopsuxX - 0x9d0125bc _vfprintf_fF - 0x9d0125bc _vfprintf_cdnopuxX + 0x9d013a74 0x13d4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) + 0x9d013a74 _vfprintf_cdfFnopsuxX + 0x9d013a74 _vfprintf_cdfFnopuxX + 0x9d013a74 _vfprintf_cdnopsuxX + 0x9d013a74 _vfprintf_fF + 0x9d013a74 _vfprintf_cdnopuxX -.text 0x9d013990 0xa370 - .text 0x9d013990 0x1384 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o - 0x9d013a94 hif_chip_wake - 0x9d013b5c hif_set_sleep_mode - 0x9d013b90 hif_get_sleep_mode - 0x9d013c1c hif_chip_sleep - 0x9d013cc0 hif_init - 0x9d013d20 hif_deinit - 0x9d013d78 hif_check_compatibility - 0x9d013df0 hif_enable_access - 0x9d013f28 hif_check_code - 0x9d01401c hif_send - 0x9d014a14 hif_handle_isr - 0x9d014a50 hif_receive - 0x9d014bfc hif_register_cb - .text 0x9d014d14 0x1310 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o - 0x9d015b54 nm_spi_reset - 0x9d015ba8 nm_spi_lock_init - 0x9d015bc8 nm_spi_init - 0x9d015ce0 nm_spi_deinit - 0x9d015d08 nm_spi_read_reg - 0x9d015d4c nm_spi_read_reg_with_ret - 0x9d015ddc nm_spi_write_reg - 0x9d015e6c nm_spi_read_block - 0x9d015f60 nm_spi_write_block - .text 0x9d016024 0x121c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o - 0x9d016d88 spi_flash_read - 0x9d016e60 spi_flash_write - 0x9d01702c spi_flash_erase - 0x9d0171c0 spi_flash_get_size - .text 0x9d017240 0xf70 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - 0x9d017240 InternalUartInit - 0x9d01741c OpenInternalPort - 0x9d01763c SendInternalUartData - 0x9d017990 SendInternalUartDataBlocking - 0x9d017aa0 TickInternalUart - 0x9d017ac0 InternalUart1AInterrupt - 0x9d017cfc InternalUart2Interrupt - 0x9d017f8c ResetUart1 - 0x9d018094 ResetUart2 - 0x9d018190 process - .text 0x9d0181b0 0xe68 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o - 0x9d0181b0 InitTerminal - 0x9d018230 TickTerminal - 0x9d01828c RxTerminalBuf - 0x9d018318 RxTerminalData - 0x9d018468 ParseNewBuffer - 0x9d018f64 TerminalPrintString - 0x9d018fb8 TerminalPrintChar - 0x9d018ff8 TerminalStateMachine - .text 0x9d019018 0xdd0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o - 0x9d019018 InitSPIFlash - 0x9d019190 SPIFlashCheckAndConfigure - 0x9d01926c SPIFlashIsPresent - 0x9d019290 SPIFlashWriteEnable - 0x9d0192f4 SPIFlashReadStatusReg - 0x9d01939c SPIFlashCheckBusy - 0x9d0193f8 SPIFlashCheckChipID - 0x9d019534 SPIFlashReadBuffer - 0x9d0196b4 SPIFlashEraseSector - 0x9d0197dc SPIFlashErase64KSector - 0x9d019930 SPIFlashWriteSectorWorkingBuffer - 0x9d019aec SPIFlashWriteByte - 0x9d019c40 SPIFlashWriteBuffer - .text 0x9d019de8 0xd98 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o - 0x9d01a0f4 m2m_ssl_init - 0x9d01a154 m2m_ssl_handshake_rsp - 0x9d01a1cc m2m_ssl_send_certs_to_winc - 0x9d01a514 m2m_ssl_retrieve_next_for_verifying - 0x9d01a948 m2m_ssl_retrieve_cert - 0x9d01a9c0 m2m_ssl_retrieve_hash - 0x9d01aa84 m2m_ssl_stop_retrieving - 0x9d01aac4 m2m_ssl_stop_processing_certs - 0x9d01aaf4 m2m_ssl_ecc_process_done - 0x9d01ab18 m2m_ssl_set_active_ciphersuites - .text 0x9d01ab80 0xd54 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o - 0x9d01ab80 BootloaderProtocolInit - 0x9d01abb0 BootloaderProtocolStateMachine - 0x9d01b100 BootloaderProtocolProtocolAnalyzeNewData - 0x9d01b17c BootloaderProtocolResetStateMachine - 0x9d01b1d0 BootloaderProtocolSendFrame - 0x9d01b39c BootloaderProtocolGetDataBufferPtr - 0x9d01b3c0 BootloaderProtocolSendHeartbeat - 0x9d01b408 BootloaderProtocolSendACK - 0x9d01b45c BootloaderProtocolSendNACK - 0x9d01b4ac BootloaderProtocolSendInitUploadResponse - 0x9d01b60c BootloaderProtocolSendDataChunkResult - 0x9d01b700 BootloaderProtocolSendBootloaderState - 0x9d01b764 BootloaderProtocolSendFirmwareUploadResult - 0x9d01b7c8 BootloaderProtocolSendFlashCheckResult - 0x9d01b82c BootloaderProtocolSendStoredFirmwareInfoResponse - .text 0x9d01b8d4 0xce8 build/ChaletDuinoV2_795F512H_/production/Source/Util.o - 0x9d01b8d4 SwapEndianShort - 0x9d01b920 SwapEndianInt - 0x9d01b97c ConvertIntToStrLeadingZero - 0x9d01bda0 ConvertIntToStr - 0x9d01c0f4 ConvertCharToStrLeadingZero - 0x9d01c25c ConvertStrToValue - 0x9d01c448 ConvertCharToStr - 0x9d01c500 Crc8 - 0x9d01c598 Delay - .text 0x9d01c5bc 0xbac build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o - 0x9d01cd00 m2m_flash_erase_sector - 0x9d01ce3c m2m_flash_write - 0x9d01cf74 m2m_flash_read - 0x9d01d0ac m2m_flash_switch_firmware - .text 0x9d01d168 0xb98 build/ChaletDuinoV2_795F512H_/production/Source/timer.o - 0x9d01d168 TimerInit - 0x9d01d238 IsMilliSecTimerExpired - 0x9d01d3a0 IsSecTimerExpired - 0x9d01d504 IsTimerExpired - 0x9d01d8b8 TimerStart - 0x9d01d9e0 TimerStartSeconds - 0x9d01da84 TimerReset - 0x9d01db08 IsTimerRunning - 0x9d01db4c TimerStop - 0x9d01db90 Sleep - 0x9d01dbec Timer1MilliSecInterrupt +.text 0x9d014e48 0x9060 + .text 0x9d014e48 0x1384 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_hif.o + 0x9d014f4c hif_chip_wake + 0x9d015014 hif_set_sleep_mode + 0x9d015048 hif_get_sleep_mode + 0x9d0150d4 hif_chip_sleep + 0x9d015178 hif_init + 0x9d0151d8 hif_deinit + 0x9d015230 hif_check_compatibility + 0x9d0152a8 hif_enable_access + 0x9d0153e0 hif_check_code + 0x9d0154d4 hif_send + 0x9d015ecc hif_handle_isr + 0x9d015f08 hif_receive + 0x9d0160b4 hif_register_cb + .text 0x9d0161cc 0x121c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/spi_flash/source/spi_flash.o + 0x9d016f30 spi_flash_read + 0x9d017008 spi_flash_write + 0x9d0171d4 spi_flash_erase + 0x9d017368 spi_flash_get_size + .text 0x9d0173e8 0xf70 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + 0x9d0173e8 InternalUartInit + 0x9d0175c4 OpenInternalPort + 0x9d0177e4 SendInternalUartData + 0x9d017b38 SendInternalUartDataBlocking + 0x9d017c48 TickInternalUart + 0x9d017c68 InternalUart1AInterrupt + 0x9d017ea4 InternalUart2Interrupt + 0x9d018134 ResetUart1 + 0x9d01823c ResetUart2 + 0x9d018338 process + .text 0x9d018358 0xe68 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o + 0x9d018358 InitTerminal + 0x9d0183d8 TickTerminal + 0x9d018434 RxTerminalBuf + 0x9d0184c0 RxTerminalData + 0x9d018610 ParseNewBuffer + 0x9d01910c TerminalPrintString + 0x9d019160 TerminalPrintChar + 0x9d0191a0 TerminalStateMachine + .text 0x9d0191c0 0xdd0 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o + 0x9d0191c0 InitSPIFlash + 0x9d019338 SPIFlashCheckAndConfigure + 0x9d019414 SPIFlashIsPresent + 0x9d019438 SPIFlashWriteEnable + 0x9d01949c SPIFlashReadStatusReg + 0x9d019544 SPIFlashCheckBusy + 0x9d0195a0 SPIFlashCheckChipID + 0x9d0196dc SPIFlashReadBuffer + 0x9d01985c SPIFlashEraseSector + 0x9d019984 SPIFlashErase64KSector + 0x9d019ad8 SPIFlashWriteSectorWorkingBuffer + 0x9d019c94 SPIFlashWriteByte + 0x9d019de8 SPIFlashWriteBuffer + .text 0x9d019f90 0xd98 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ssl.o + 0x9d01a29c m2m_ssl_init + 0x9d01a2fc m2m_ssl_handshake_rsp + 0x9d01a374 m2m_ssl_send_certs_to_winc + 0x9d01a6bc m2m_ssl_retrieve_next_for_verifying + 0x9d01aaf0 m2m_ssl_retrieve_cert + 0x9d01ab68 m2m_ssl_retrieve_hash + 0x9d01ac2c m2m_ssl_stop_retrieving + 0x9d01ac6c m2m_ssl_stop_processing_certs + 0x9d01ac9c m2m_ssl_ecc_process_done + 0x9d01acc0 m2m_ssl_set_active_ciphersuites + .text 0x9d01ad28 0xd54 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o + 0x9d01ad28 BootloaderProtocolInit + 0x9d01ad58 BootloaderProtocolStateMachine + 0x9d01b2a8 BootloaderProtocolProtocolAnalyzeNewData + 0x9d01b324 BootloaderProtocolResetStateMachine + 0x9d01b378 BootloaderProtocolSendFrame + 0x9d01b544 BootloaderProtocolGetDataBufferPtr + 0x9d01b568 BootloaderProtocolSendHeartbeat + 0x9d01b5b0 BootloaderProtocolSendACK + 0x9d01b604 BootloaderProtocolSendNACK + 0x9d01b654 BootloaderProtocolSendInitUploadResponse + 0x9d01b7b4 BootloaderProtocolSendDataChunkResult + 0x9d01b8a8 BootloaderProtocolSendBootloaderState + 0x9d01b90c BootloaderProtocolSendFirmwareUploadResult + 0x9d01b970 BootloaderProtocolSendFlashCheckResult + 0x9d01b9d4 BootloaderProtocolSendStoredFirmwareInfoResponse + .text 0x9d01ba7c 0xce8 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x9d01ba7c SwapEndianShort + 0x9d01bac8 SwapEndianInt + 0x9d01bb24 ConvertIntToStrLeadingZero + 0x9d01bf48 ConvertIntToStr + 0x9d01c29c ConvertCharToStrLeadingZero + 0x9d01c404 ConvertStrToValue + 0x9d01c5f0 ConvertCharToStr + 0x9d01c6a8 Crc8 + 0x9d01c740 Delay + .text 0x9d01c764 0xbac build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o + 0x9d01cea8 m2m_flash_erase_sector + 0x9d01cfe4 m2m_flash_write + 0x9d01d11c m2m_flash_read + 0x9d01d254 m2m_flash_switch_firmware + .text 0x9d01d310 0xb98 build/ChaletDuinoV2_795F512H_/production/Source/timer.o + 0x9d01d310 TimerInit + 0x9d01d3e0 IsMilliSecTimerExpired + 0x9d01d548 IsSecTimerExpired + 0x9d01d6ac IsTimerExpired + 0x9d01da60 TimerStart + 0x9d01db88 TimerStartSeconds + 0x9d01dc2c TimerReset + 0x9d01dcb0 IsTimerRunning + 0x9d01dcf4 TimerStop + 0x9d01dd38 Sleep + 0x9d01dd94 Timer1MilliSecInterrupt -.dinit 0x9d01dd00 0xb70 - .dinit 0x9d01dd00 0xb70 data_init +.dinit 0x9d01dea8 0xb70 + .dinit 0x9d01dea8 0xb70 data_init -.text 0x9d01e870 0x974 - .text 0x9d01e870 0x974 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o - 0x9d01e870 ProtocolInit - 0x9d01e8a0 StateMachine - 0x9d01ee1c ProtocolAnalyzeNewData - 0x9d01ee5c ResetStateMachine - 0x9d01eea4 ProtocolExecCmd - 0x9d01eee0 ProtocolAcknowledge - 0x9d01ef44 ProtocolCalcCrc - 0x9d01efc0 ProtocolIsReceiving - 0x9d01f000 ProtocolGetFrame - 0x9d01f1bc ProtocolMsgDataPtr +.text 0x9d01ea18 0x974 + .text 0x9d01ea18 0x974 build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o + 0x9d01ea18 ProtocolInit + 0x9d01ea48 StateMachine + 0x9d01efc4 ProtocolAnalyzeNewData + 0x9d01f004 ResetStateMachine + 0x9d01f04c ProtocolExecCmd + 0x9d01f088 ProtocolAcknowledge + 0x9d01f0ec ProtocolCalcCrc + 0x9d01f168 ProtocolIsReceiving + 0x9d01f1a8 ProtocolGetFrame + 0x9d01f364 ProtocolMsgDataPtr .text._vfscanf_s - 0x9d01f1e4 0x868 + 0x9d01f38c 0x868 .text._vfscanf_s - 0x9d01f1e4 0x868 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) - 0x9d01f1e4 _vfscanf_s - 0x9d01f1e4 _vfscanf_0 + 0x9d01f38c 0x868 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) + 0x9d01f38c _vfscanf_s + 0x9d01f38c _vfscanf_0 -.text 0x9d01fa4c 0x7e8 - .text 0x9d01fa4c 0x7e8 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - 0x9d01fa4c ExecuteMasterCommand - 0x9d02009c SendLoraNetworkCommand - 0x9d020144 SendLoraNetworkCommandBlocking - 0x9d0201ec TestTx +.text 0x9d01fbf4 0x7e8 + .text 0x9d01fbf4 0x7e8 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + 0x9d01fbf4 ExecuteMasterCommand + 0x9d020244 SendLoraNetworkCommand + 0x9d0202ec SendLoraNetworkCommandBlocking + 0x9d020394 TestTx -.rodata 0x9d020234 0x7b8 - .rodata 0x9d020234 0x7b8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o +.rodata 0x9d0203dc 0x7b8 + .rodata 0x9d0203dc 0x7b8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o -.text 0x9d0209ec 0x2444 - .text 0x9d0209ec 0x74c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o - 0x9d0209ec nm_get_hif_info - 0x9d020a8c nm_get_firmware_full_info - 0x9d020c1c nm_get_ota_firmware_info - 0x9d020dac nm_drv_init_download_mode - 0x9d020e30 nm_drv_init_hold - 0x9d020eac nm_drv_init_start - 0x9d020ffc nm_drv_init - 0x9d021058 nm_drv_deinit - 0x9d0210dc nm_cpu_start - 0x9d021114 nm_get_state - .text 0x9d021138 0x720 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o - 0x9d021138 InitBoard - .text 0x9d021858 0x654 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o - 0x9d021a60 ina219SetCalibration_13V_10A - 0x9d021ac4 ina219SetCalibration_32V_2A - 0x9d021b28 ina219SetCalibration_32V_1A - 0x9d021b8c ina219SetCalibration_16V_500mA - 0x9d021bf0 ina219SetCalibration_16V_200mA - 0x9d021c54 ina219Init - 0x9d021cd4 ina219GetShuntVoltage - 0x9d021d18 ina219GetBusVoltage - 0x9d021d6c ina219GetPower - 0x9d021db0 ina219GetPower_mW - 0x9d021e0c ina219GetCurrent - 0x9d021e50 ina219GetCurrent_mA - .text 0x9d021eac 0x574 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o - 0x9d021eac I2CInit - 0x9d021f18 I2CWrite - 0x9d0220dc I2CTransmitByte - 0x9d022108 I2CRead - 0x9d0223fc I2CWasLastTransactionOK - .text 0x9d022420 0x52c build/ChaletDuinoV2_795F512H_/production/Source/main.o - 0x9d022420 main - 0x9d02290c _mon_putc - .text 0x9d02294c 0x4e4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o - 0x9d0229b4 nm_bus_iface_init - 0x9d0229f8 nm_bus_iface_deinit - 0x9d022a34 nm_bus_reset - 0x9d022a64 nm_bus_iface_reconfigure - 0x9d022a90 nm_read_reg - 0x9d022ac8 nm_read_reg_with_ret - 0x9d022b08 nm_write_reg - 0x9d022b98 nm_read_block - 0x9d022d0c nm_write_block +.text 0x9d020b94 0x2444 + .text 0x9d020b94 0x74c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmdrv.o + 0x9d020b94 nm_get_hif_info + 0x9d020c34 nm_get_firmware_full_info + 0x9d020dc4 nm_get_ota_firmware_info + 0x9d020f54 nm_drv_init_download_mode + 0x9d020fd8 nm_drv_init_hold + 0x9d021054 nm_drv_init_start + 0x9d0211a4 nm_drv_init + 0x9d021200 nm_drv_deinit + 0x9d021284 nm_cpu_start + 0x9d0212bc nm_get_state + .text 0x9d0212e0 0x720 build/ChaletDuinoV2_795F512H_/production/Source/ChaletduinoV2Board.o + 0x9d0212e0 InitBoard + .text 0x9d021a00 0x654 build/ChaletDuinoV2_795F512H_/production/Source/ina219.o + 0x9d021c08 ina219SetCalibration_13V_10A + 0x9d021c6c ina219SetCalibration_32V_2A + 0x9d021cd0 ina219SetCalibration_32V_1A + 0x9d021d34 ina219SetCalibration_16V_500mA + 0x9d021d98 ina219SetCalibration_16V_200mA + 0x9d021dfc ina219Init + 0x9d021e7c ina219GetShuntVoltage + 0x9d021ec0 ina219GetBusVoltage + 0x9d021f14 ina219GetPower + 0x9d021f58 ina219GetPower_mW + 0x9d021fb4 ina219GetCurrent + 0x9d021ff8 ina219GetCurrent_mA + .text 0x9d022054 0x574 build/ChaletDuinoV2_795F512H_/production/Source/I2C.o + 0x9d022054 I2CInit + 0x9d0220c0 I2CWrite + 0x9d022284 I2CTransmitByte + 0x9d0222b0 I2CRead + 0x9d0225a4 I2CWasLastTransactionOK + .text 0x9d0225c8 0x52c build/ChaletDuinoV2_795F512H_/production/Source/main.o + 0x9d0225c8 main + 0x9d022ab4 _mon_putc + .text 0x9d022af4 0x4e4 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmbus.o + 0x9d022b5c nm_bus_iface_init + 0x9d022ba0 nm_bus_iface_deinit + 0x9d022bdc nm_bus_reset + 0x9d022c0c nm_bus_iface_reconfigure + 0x9d022c38 nm_read_reg + 0x9d022c70 nm_read_reg_with_ret + 0x9d022cb0 nm_write_reg + 0x9d022d40 nm_read_block + 0x9d022eb4 nm_write_block -.rodata 0x9d022e30 0x494 - .rodata 0x9d022e30 0x494 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o +.rodata 0x9d022fd8 0x494 + .rodata 0x9d022fd8 0x494 build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o -.text 0x9d0232c4 0xcd4 - .text 0x9d0232c4 0x45c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) - 0x9d0232c4 __umoddi3 - .text 0x9d023720 0x44c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) - 0x9d023720 __udivdi3 - .text 0x9d023b6c 0x42c build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - 0x9d023b6c InitBatteryMonitor - 0x9d023be4 BatteryMonitorTick - 0x9d023e7c GetBatteryVoltage - 0x9d023ee4 GetSolarPanelCurrent - 0x9d023f10 GetBatterySOC - 0x9d023f34 SendNetworkBatteryData - 0x9d023f74 GetCurrentModuleOK +.text 0x9d02346c 0xcd4 + .text 0x9d02346c 0x45c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_umoddi3.o) + 0x9d02346c __umoddi3 + .text 0x9d0238c8 0x44c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_udivdi3.o) + 0x9d0238c8 __udivdi3 + .text 0x9d023d14 0x42c build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + 0x9d023d14 InitBatteryMonitor + 0x9d023d8c BatteryMonitorTick + 0x9d024024 GetBatteryVoltage + 0x9d02408c GetSolarPanelCurrent + 0x9d0240b8 GetBatterySOC + 0x9d0240dc SendNetworkBatteryData + 0x9d02411c GetCurrentModuleOK -.rodata 0x9d023f98 0x404 - .rodata 0x9d023f98 0x404 build/ChaletDuinoV2_795F512H_/production/Source/Util.o - 0x9d023f9c CRC8_TABLE +.rodata 0x9d024140 0x404 + .rodata 0x9d024140 0x404 build/ChaletDuinoV2_795F512H_/production/Source/Util.o + 0x9d024144 CRC8_TABLE -.text 0x9d02439c 0xa10 - .text 0x9d02439c 0x394 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - 0x9d02439c TC77Configure - 0x9d0245ec TC77GetActualTemp - 0x9d02470c TC77GetDeviceID - .text 0x9d024730 0x340 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o - 0x9d024900 m2m_periph_init - 0x9d024928 m2m_periph_gpio_set_dir - 0x9d024980 m2m_periph_gpio_set_val - 0x9d0249d8 m2m_periph_gpio_get_val - 0x9d024a28 m2m_periph_pullup_ctrl - .text 0x9d024a70 0x33c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o - 0x9d024b2c m2m_ota_init - 0x9d024b88 m2m_ota_start_update - 0x9d024c04 m2m_ota_rollback - 0x9d024cac m2m_ota_abort - 0x9d024d04 m2m_ota_switch_firmware +.text 0x9d024544 0xd2c + .text 0x9d024544 0x394 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + 0x9d024544 TC77Configure + 0x9d024794 TC77GetActualTemp + 0x9d0248b4 TC77GetDeviceID + .text 0x9d0248d8 0x374 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_periph.o + 0x9d024adc m2m_periph_init + 0x9d024b04 m2m_periph_gpio_set_dir + 0x9d024b5c m2m_periph_gpio_set_val + 0x9d024bb4 m2m_periph_gpio_get_val + 0x9d024c04 m2m_periph_pullup_ctrl + .text 0x9d024c4c 0x33c build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_ota.o + 0x9d024d08 m2m_ota_init + 0x9d024d64 m2m_ota_start_update + 0x9d024de0 m2m_ota_rollback + 0x9d024e88 m2m_ota_abort + 0x9d024ee0 m2m_ota_switch_firmware + .text 0x9d024f88 0x2e8 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o + 0x9d024f88 chip_isr + 0x9d025000 nm_sleep + 0x9d025038 nm_reset + 0x9d025150 hexstr_2_bytes -.text.scale 0x9d024dac 0x2a0 - .text.scale 0x9d024dac 0x2a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) +.text.scale 0x9d025270 0x2a0 + .text.scale 0x9d025270 0x2a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) -.text.fpsubadd 0x9d02504c 0x278 +.text.fpsubadd 0x9d025510 0x278 .text.fpsubadd - 0x9d02504c 0x278 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) - 0x9d02504c __subsf3 - 0x9d02504c fpsub - 0x9d025054 __addsf3 - 0x9d025054 fpadd + 0x9d025510 0x278 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) + 0x9d025510 __subsf3 + 0x9d025510 fpsub + 0x9d025518 __addsf3 + 0x9d025518 fpadd -.text 0x9d0252c4 0x988 - .text 0x9d0252c4 0x26c build/ChaletDuinoV2_795F512H_/production/Source/crc32.o - 0x9d0252c4 crc_32 - 0x9d0253bc update_crc_32 - .text 0x9d025530 0x264 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o - 0x9d025530 InitLoraWatchdog - 0x9d025570 TickLoraWatchdog - 0x9d0255a4 LoraWatchdogStateMachine - 0x9d025760 KickLoraWatchdog - .text 0x9d025794 0x260 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o - 0x9d025794 InitChaletPowerRelay - 0x9d0257f0 ChaletPowerRelayTick - 0x9d0258f4 ChaletPowerRelayKickTimer - 0x9d02592c ChaletPowerRelayTurnOn - 0x9d02597c ChaletPowerRelayTurnOff - 0x9d0259cc GetChaletPowerRelayState - .text 0x9d0259f4 0x258 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - 0x9d0259f4 InitSyslog - 0x9d025a48 SyslogTick - 0x9d025ae4 SyslogNewByte - 0x9d025b98 SyslogNewString - 0x9d025c10 SyslogIsBufferEmpty +.text 0x9d025788 0x988 + .text 0x9d025788 0x26c build/ChaletDuinoV2_795F512H_/production/Source/crc32.o + 0x9d025788 crc_32 + 0x9d025880 update_crc_32 + .text 0x9d0259f4 0x264 build/ChaletDuinoV2_795F512H_/production/Source/LoraWatchdog.o + 0x9d0259f4 InitLoraWatchdog + 0x9d025a34 TickLoraWatchdog + 0x9d025a68 LoraWatchdogStateMachine + 0x9d025c24 KickLoraWatchdog + .text 0x9d025c58 0x260 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o + 0x9d025c58 InitChaletPowerRelay + 0x9d025cb4 ChaletPowerRelayTick + 0x9d025db8 ChaletPowerRelayKickTimer + 0x9d025df0 ChaletPowerRelayTurnOn + 0x9d025e40 ChaletPowerRelayTurnOff + 0x9d025e90 GetChaletPowerRelayState + .text 0x9d025eb8 0x258 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + 0x9d025eb8 InitSyslog + 0x9d025f0c SyslogTick + 0x9d025fa8 SyslogNewByte + 0x9d02605c SyslogNewString + 0x9d0260d4 SyslogIsBufferEmpty -.rodata 0x9d025c4c 0x254 - .rodata 0x9d025c4c 0x254 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o +.rodata 0x9d026110 0x254 + .rodata 0x9d026110 0x254 build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o -.text 0x9d025ea0 0x244 - .text 0x9d025ea0 0x244 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o - 0x9d025ea0 inet_addr +.text 0x9d026364 0x244 + .text 0x9d026364 0x244 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_addr.o + 0x9d026364 inet_addr -.text.fp32div 0x9d0260e4 0x230 - .text.fp32div 0x9d0260e4 0x230 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) - 0x9d0260e4 fpdiv - 0x9d0260e4 __divsf3 - -.text 0x9d026314 0x220 - .text 0x9d026314 0x220 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/common/source/nm_common.o - 0x9d026314 nm_sleep - 0x9d026338 nm_reset - 0x9d026414 hexstr_2_bytes +.text.fp32div 0x9d0265a8 0x230 + .text.fp32div 0x9d0265a8 0x230 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) + 0x9d0265a8 fpdiv + 0x9d0265a8 __divsf3 .text.__floatdisf - 0x9d026534 0x220 + 0x9d0267d8 0x220 .text.__floatdisf - 0x9d026534 0x220 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) - 0x9d026534 __floatdisf + 0x9d0267d8 0x220 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) + 0x9d0267d8 __floatdisf -.text 0x9d026754 0x1dc - .text 0x9d026754 0x1dc build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o - 0x9d026754 inet_ntop +.text 0x9d0269f8 0x1dc + .text 0x9d0269f8 0x1dc build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/socket/source/inet_ntop.o + 0x9d0269f8 inet_ntop -.text.fp32mul 0x9d026930 0x1bc - .text.fp32mul 0x9d026930 0x1bc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) - 0x9d026930 __mulsf3 - 0x9d026930 fpmul +.text.fp32mul 0x9d026bd4 0x1bc + .text.fp32mul 0x9d026bd4 0x1bc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) + 0x9d026bd4 __mulsf3 + 0x9d026bd4 fpmul -.text 0x9d026aec 0x1a0 - .text 0x9d026aec 0x1a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) - 0x9d026aec strcpy +.text 0x9d026d90 0x1a0 + .text 0x9d026d90 0x1a0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strcpy.o) + 0x9d026d90 strcpy .text._sbrk_init - 0x9d026c8c 0x194 + 0x9d026f30 0x194 .text._sbrk_init - 0x9d026c8c 0x194 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d026c8c _sbrk_init + 0x9d026f30 0x194 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x9d026f30 _sbrk_init -.text._filbuf 0x9d026e20 0x188 - .text._filbuf 0x9d026e20 0x188 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) - 0x9d026e20 _filbuf +.text._filbuf 0x9d0270c4 0x188 + .text._filbuf 0x9d0270c4 0x188 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) + 0x9d0270c4 _filbuf -.text.read 0x9d026fa8 0x174 - .text.read 0x9d026fa8 0x174 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) - 0x9d026fa8 read +.text.read 0x9d02724c 0x174 + .text.read 0x9d02724c 0x174 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) + 0x9d02724c read -.text 0x9d02711c 0x2d0 - .text 0x9d02711c 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) - 0x9d02711c memcpy - .text 0x9d027284 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) - 0x9d027284 strlen +.text 0x9d0273c0 0x2d0 + .text 0x9d0273c0 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcpy.o) + 0x9d0273c0 memcpy + .text 0x9d027528 0x168 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(strlen.o) + 0x9d027528 strlen -.text.fputc 0x9d0273ec 0x15c - .text.fputc 0x9d0273ec 0x15c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) - 0x9d0273ec fputc +.text.fputc 0x9d027690 0x15c + .text.fputc 0x9d027690 0x15c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) + 0x9d027690 fputc -.text._flsbuf 0x9d027548 0x12c - .text._flsbuf 0x9d027548 0x12c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) - 0x9d027548 _flsbuf +.text._flsbuf 0x9d0277ec 0x12c + .text._flsbuf 0x9d0277ec 0x12c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) + 0x9d0277ec _flsbuf -.text 0x9d027674 0x11c - .text 0x9d027674 0x11c build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o - 0x9d027674 InitTempSensor - 0x9d0276b8 TempSensorCheckAndConfigure - 0x9d027714 TempSensorGetTemp - 0x9d027738 TickTempSensor +.text 0x9d027918 0x11c + .text 0x9d027918 0x11c build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + 0x9d027918 InitTempSensor + 0x9d02795c TempSensorCheckAndConfigure + 0x9d0279b8 TempSensorGetTemp + 0x9d0279dc TickTempSensor -.text.fgetc 0x9d027790 0x108 - .text.fgetc 0x9d027790 0x108 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) - 0x9d027790 fgetc +.text.fgetc 0x9d027a34 0x108 + .text.fgetc 0x9d027a34 0x108 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) + 0x9d027a34 fgetc -.rodata 0x9d027898 0x204 - .rodata 0x9d027898 0x104 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) - 0x9d027898 _ctype - .rodata 0x9d02799c 0x100 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o +.rodata 0x9d027b3c 0x204 + .rodata 0x9d027b3c 0x104 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) + 0x9d027b3c _ctype + .rodata 0x9d027c40 0x100 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/nmspi.o -.text.setvbuf 0x9d027a9c 0xfc - .text.setvbuf 0x9d027a9c 0xfc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - 0x9d027a9c setvbuf +.text.setvbuf 0x9d027d40 0xfc + .text.setvbuf 0x9d027d40 0xfc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + 0x9d027d40 setvbuf -.rodata 0x9d027b98 0xe0 - .rodata 0x9d027b98 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) +.rodata 0x9d027e40 0xe0 + .rodata 0x9d027e40 0xe0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) .text.general_exception - 0x9d027c78 0xdc + 0x9d027f20 0xdc .text.general_exception - 0x9d027c78 0xdc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) - 0x9d027c78 _general_exception_context + 0x9d027f20 0xdc c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) + 0x9d027f20 _general_exception_context -.text 0x9d027d54 0x1ac - .text 0x9d027d54 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o - 0x9d027d54 InitWatchdog - 0x9d027da8 EnableWatchdog - 0x9d027dd4 DisableWatchdog - 0x9d027e00 KickWatchdog - .text 0x9d027e2c 0xd4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - 0x9d027e2c __floatundisf +.text 0x9d027ffc 0x1ac + .text 0x9d027ffc 0xd8 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o + 0x9d027ffc InitWatchdog + 0x9d028050 EnableWatchdog + 0x9d02807c DisableWatchdog + 0x9d0280a8 KickWatchdog + .text 0x9d0280d4 0xd4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) + 0x9d0280d4 __floatundisf -.rodata 0x9d027f00 0xc8 - .rodata 0x9d027f00 0xc8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o +.rodata 0x9d0281a8 0xc8 + .rodata 0x9d0281a8 0xc8 build/ChaletDuinoV2_795F512H_/production/Source/SPI_Flash.o -.text._sbrk 0x9d027fc8 0xc4 - .text._sbrk 0x9d027fc8 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d027fc8 _sbrk +.text._sbrk 0x9d028270 0xc4 + .text._sbrk 0x9d028270 0xc4 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x9d028270 _sbrk -.text 0x9d02808c 0xa8 - .text 0x9d02808c 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) - 0x9d02808c memset +.text 0x9d028334 0xa8 + .text 0x9d028334 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memset.o) + 0x9d028334 memset -.text.atoi 0x9d028134 0xa8 - .text.atoi 0x9d028134 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) - 0x9d028134 atoi +.text.atoi 0x9d0283dc 0xa8 + .text.atoi 0x9d0283dc 0xa8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) + 0x9d0283dc atoi -.text.range 0x9d0281dc 0xa0 - .text.range 0x9d0281dc 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) +.text.range 0x9d028484 0xa0 + .text.range 0x9d028484 0xa0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) -.text.fpcmp 0x9d02827c 0x9c - .text.fpcmp 0x9d02827c 0x9c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) - 0x9d02827c __eqsf2 - 0x9d02827c __lesf2 - 0x9d02827c __gtsf2 - 0x9d02827c __nesf2 - 0x9d02827c fpcmp - 0x9d02827c __gesf2 - 0x9d02827c __ltsf2 +.text.fpcmp 0x9d028524 0x9c + .text.fpcmp 0x9d028524 0x9c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) + 0x9d028524 __eqsf2 + 0x9d028524 __lesf2 + 0x9d028524 __gtsf2 + 0x9d028524 __nesf2 + 0x9d028524 fpcmp + 0x9d028524 __gesf2 + 0x9d028524 __ltsf2 -.text 0x9d028318 0x98 - .text 0x9d028318 0x98 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcmp.o) - 0x9d028318 memcmp +.text 0x9d0285c0 0x98 + .text 0x9d0285c0 0x98 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(memcmp.o) + 0x9d0285c0 memcmp -.text.fflush 0x9d0283b0 0x94 - .text.fflush 0x9d0283b0 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) - 0x9d0283b0 fflush +.text.fflush 0x9d028658 0x94 + .text.fflush 0x9d028658 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) + 0x9d028658 fflush -.text.write 0x9d028444 0x94 - .text.write 0x9d028444 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) - 0x9d028444 write +.text.write 0x9d0286ec 0x94 + .text.write 0x9d0286ec 0x94 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) + 0x9d0286ec write -.text.libm 0x9d0284d8 0x88 - .text.libm 0x9d0284d8 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) - 0x9d0284d8 frexpf - 0x9d0284d8 fpfrexp +.text.libm 0x9d028780 0x88 + .text.libm 0x9d028780 0x88 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) + 0x9d028780 frexpf + 0x9d028780 fpfrexp -.text.fptoul 0x9d028560 0x7c - .text.fptoul 0x9d028560 0x7c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) - 0x9d028560 fptoul - 0x9d028560 fptoui - 0x9d028560 __fixunssfsi +.text.fptoul 0x9d028808 0x7c + .text.fptoul 0x9d028808 0x7c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) + 0x9d028808 fptoul + 0x9d028808 fptoui + 0x9d028808 __fixunssfsi .text.SoftReset - 0x9d0285dc 0x78 + 0x9d028884 0x78 .text.SoftReset - 0x9d0285dc 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) - 0x9d0285dc SoftReset + 0x9d028884 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) + 0x9d028884 SoftReset -.text.fputs 0x9d028654 0x78 - .text.fputs 0x9d028654 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - 0x9d028654 fputs +.text.fputs 0x9d0288fc 0x78 + .text.fputs 0x9d0288fc 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + 0x9d0288fc fputs -.text.strncmp 0x9d0286cc 0x78 - .text.strncmp 0x9d0286cc 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) - 0x9d0286cc strncmp +.text.strncmp 0x9d028974 0x78 + .text.strncmp 0x9d028974 0x78 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) + 0x9d028974 strncmp -.text.ungetc 0x9d028744 0x74 - .text.ungetc 0x9d028744 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) - 0x9d028744 ungetc +.text.ungetc 0x9d0289ec 0x74 + .text.ungetc 0x9d0289ec 0x74 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) + 0x9d0289ec ungetc -.text 0x9d0287b8 0xd8 - .text 0x9d0287b8 0x70 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o - 0x9d0287b8 SPITransaction - .text 0x9d028828 0x68 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o - 0x9d028828 InitHarakiriRelay - 0x9d028858 HarakiriRelayTurnOff +.text 0x9d028a60 0xd8 + .text 0x9d028a60 0x70 build/ChaletDuinoV2_795F512H_/production/Source/SPI.o + 0x9d028a60 SPITransaction + .text 0x9d028ad0 0x68 build/ChaletDuinoV2_795F512H_/production/Source/HarakiriRelay.o + 0x9d028ad0 InitHarakiriRelay + 0x9d028b00 HarakiriRelayTurnOff .text._sprintf_cdfFnopuxX - 0x9d028890 0x68 + 0x9d028b38 0x68 .text._sprintf_cdfFnopuxX - 0x9d028890 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) - 0x9d028890 _sprintf_cdnopuxX - 0x9d028890 _sprintf_cdfFnopuxX + 0x9d028b38 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) + 0x9d028b38 _sprintf_cdnopuxX + 0x9d028b38 _sprintf_cdfFnopuxX -.rodata 0x9d0288f8 0x68 - .rodata 0x9d0288f8 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) - 0x9d0288f8 _powers_f - 0x9d02892c _npowers_f +.rodata 0x9d028ba0 0x68 + .rodata 0x9d028ba0 0x68 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) + 0x9d028ba0 _powers_f + 0x9d028bd4 _npowers_f -.text.sitofp 0x9d028960 0x60 - .text.sitofp 0x9d028960 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) - 0x9d028960 sitofp - 0x9d028960 litofp - 0x9d028960 __floatsisf +.text.sitofp 0x9d028c08 0x60 + .text.sitofp 0x9d028c08 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) + 0x9d028c08 sitofp + 0x9d028c08 litofp + 0x9d028c08 __floatsisf -.text.wspace 0x9d0289c0 0x60 - .text.wspace 0x9d0289c0 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) +.text.wspace 0x9d028c68 0x60 + .text.wspace 0x9d028c68 0x60 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) -.text 0x9d028a20 0x58 - .text 0x9d028a20 0x58 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o - 0x9d028a20 _general_exception_handler +.text 0x9d028cc8 0x58 + .text 0x9d028cc8 0x58 build/ChaletDuinoV2_795F512H_/production/Source/exceptions.o + 0x9d028cc8 _general_exception_handler .text._sscanf_s - 0x9d028a78 0x54 + 0x9d028d20 0x54 .text._sscanf_s - 0x9d028a78 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) - 0x9d028a78 _sscanf_s - 0x9d028a78 _sscanf_0 + 0x9d028d20 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) + 0x9d028d20 _sscanf_s + 0x9d028d20 _sscanf_0 -.text._bufallo 0x9d028acc 0x54 +.text._bufallo 0x9d028d74 0x54 .text._bufallo - 0x9d028acc 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - 0x9d028acc _bufallo + 0x9d028d74 0x54 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + 0x9d028d74 _bufallo -.rodata 0x9d028b20 0x50 - .rodata 0x9d028b20 0x50 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o +.rodata 0x9d028dc8 0x50 + .rodata 0x9d028dc8 0x50 build/ChaletDuinoV2_795F512H_/production/Source/winc3400_142/driver/source/m2m_flash.o -.text.sbrk 0x9d028b70 0x50 - .text.sbrk 0x9d028b70 0x50 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d028b70 sbrk +.text.sbrk 0x9d028e18 0x50 + .text.sbrk 0x9d028e18 0x50 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x9d028e18 sbrk .text.main_entry - 0x9d028bc0 0x4c + 0x9d028e68 0x4c .text.main_entry - 0x9d028bc0 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o - 0x9d028bec __crt0_exit + 0x9d028e68 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o + 0x9d028e94 __crt0_exit -.text 0x9d028c0c 0x4c - .text 0x9d028c0c 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) - 0x9d028c0c __floatunsisf +.text 0x9d028eb4 0x4c + .text 0x9d028eb4 0x4c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(floatunsisf.o) + 0x9d028eb4 __floatunsisf .text._bootstrap_exception_handler - 0x9d028c58 0x48 + 0x9d028f00 0x48 .text._bootstrap_exception_handler - 0x9d028c58 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) - 0x9d028c58 _bootstrap_exception_handler + 0x9d028f00 0x48 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) + 0x9d028f00 _bootstrap_exception_handler -.text 0x9d028ca0 0x44 - .text 0x9d028ca0 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o - 0x9d028ca0 __pic32_software_reset +.text 0x9d028f48 0x44 + .text 0x9d028f48 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\pic32_software_reset.o + 0x9d028f48 __pic32_software_reset -.text.puts 0x9d028ce4 0x44 - .text.puts 0x9d028ce4 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) - 0x9d028ce4 puts +.text.puts 0x9d028f8c 0x44 + .text.puts 0x9d028f8c 0x44 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) + 0x9d028f8c puts .text._printf_cdfFnopsuxX - 0x9d028d28 0x40 + 0x9d028fd0 0x40 .text._printf_cdfFnopsuxX - 0x9d028d28 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) - 0x9d028d28 _printf_cdnopsuxX - 0x9d028d28 _printf_cdnopuxX - 0x9d028d28 _printf_cdfFnopsuxX - 0x9d028d28 _printf_fF + 0x9d028fd0 0x40 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) + 0x9d028fd0 _printf_cdnopsuxX + 0x9d028fd0 _printf_cdnopuxX + 0x9d028fd0 _printf_cdfFnopsuxX + 0x9d028fd0 _printf_fF .vector_default - 0x9d028d68 0x38 + 0x9d029010 0x38 .vector_default - 0x9d028d68 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) - 0x9d028d68 _DefaultInterrupt + 0x9d029010 0x38 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) + 0x9d029010 _DefaultInterrupt -.rodata 0x9d028da0 0x64 - .rodata 0x9d028da0 0x34 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o - .rodata 0x9d028dd4 0x30 build/ChaletDuinoV2_795F512H_/production/Source/main.o +.rodata 0x9d029048 0x64 + .rodata 0x9d029048 0x34 build/ChaletDuinoV2_795F512H_/production/Source/BatteryMonitor.o + .rodata 0x9d02907c 0x30 build/ChaletDuinoV2_795F512H_/production/Source/main.o .text.INTConfigureSystem - 0x9d028e04 0x30 + 0x9d0290ac 0x30 .text.INTConfigureSystem - 0x9d028e04 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) - 0x9d028e04 INTConfigureSystem + 0x9d0290ac 0x30 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) + 0x9d0290ac INTConfigureSystem .text._stub_sbd_memlayout - 0x9d028e34 0x2c + 0x9d0290dc 0x2c .text._stub_sbd_memlayout - 0x9d028e34 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d028e34 _sbd_memlayout - 0x9d028e34 _stub_sbd_memlayout + 0x9d0290dc 0x2c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x9d0290dc _sbd_memlayout + 0x9d0290dc _stub_sbd_memlayout -.rodata 0x9d028e60 0x28 - .rodata 0x9d028e60 0x28 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o +.rodata 0x9d029108 0x28 + .rodata 0x9d029108 0x28 build/ChaletDuinoV2_795F512H_/production/Source/ChaletPowerRelay.o -.text.tolower 0x9d028e88 0x24 - .text.tolower 0x9d028e88 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d028e88 tolower +.text.tolower 0x9d029130 0x24 + .text.tolower 0x9d029130 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029130 tolower -.text.toupper 0x9d028eac 0x24 - .text.toupper 0x9d028eac 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d028eac toupper +.text.toupper 0x9d029154 0x24 + .text.toupper 0x9d029154 0x24 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029154 toupper -.text 0x9d028ed0 0x20 - .text 0x9d028ed0 0x20 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o - 0x9d028ed0 InitDigitalIO +.text 0x9d029178 0x20 + .text 0x9d029178 0x20 build/ChaletDuinoV2_795F512H_/production/Source/DigitalIO.o + 0x9d029178 InitDigitalIO -.rodata 0x9d028ef0 0x1c - .rodata 0x9d028ef0 0x1c build/ChaletDuinoV2_795F512H_/production/Source/Uart.o +.rodata 0x9d029198 0x1c + .rodata 0x9d029198 0x1c build/ChaletDuinoV2_795F512H_/production/Source/Uart.o .text.INTRestoreInterrupts - 0x9d028f0c 0x1c + 0x9d0291b4 0x1c .text.INTRestoreInterrupts - 0x9d028f0c 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) - 0x9d028f0c INTRestoreInterrupts + 0x9d0291b4 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) + 0x9d0291b4 INTRestoreInterrupts -.text.setbuf 0x9d028f28 0x1c - .text.setbuf 0x9d028f28 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) - 0x9d028f28 setbuf +.text.setbuf 0x9d0291d0 0x1c + .text.setbuf 0x9d0291d0 0x1c c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) + 0x9d0291d0 setbuf -.rodata 0x9d028f44 0x30 - .rodata 0x9d028f44 0x18 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o - .rodata 0x9d028f5c 0x18 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o +.rodata 0x9d0291ec 0x30 + .rodata 0x9d0291ec 0x18 build/ChaletDuinoV2_795F512H_/production/Source/InternalUart.o + .rodata 0x9d029204 0x18 build/ChaletDuinoV2_795F512H_/production/Source/Watchdog.o .text.CheKseg0CacheOff - 0x9d028f74 0x18 + 0x9d02921c 0x18 .text.CheKseg0CacheOff - 0x9d028f74 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - 0x9d028f74 CheKseg0CacheOff + 0x9d02921c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + 0x9d02921c CheKseg0CacheOff .text.CheKseg0CacheOn - 0x9d028f8c 0x18 + 0x9d029234 0x18 .text.CheKseg0CacheOn - 0x9d028f8c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) - 0x9d028f8c CheKseg0CacheOn + 0x9d029234 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) + 0x9d029234 CheKseg0CacheOn -.text 0x9d028fa4 0x18 - .text 0x9d028fa4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) - 0x9d028fa4 _nmi_handler +.text 0x9d02924c 0x18 + .text 0x9d02924c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-nmi-handler.o) + 0x9d02924c _nmi_handler -.text.isalnum 0x9d028fbc 0x18 - .text.isalnum 0x9d028fbc 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d028fbc isalnum +.text.isalnum 0x9d029264 0x18 + .text.isalnum 0x9d029264 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029264 isalnum -.text.isalpha 0x9d028fd4 0x18 - .text.isalpha 0x9d028fd4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d028fd4 isalpha +.text.isalpha 0x9d02927c 0x18 + .text.isalpha 0x9d02927c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d02927c isalpha -.text.iscntrl 0x9d028fec 0x18 - .text.iscntrl 0x9d028fec 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d028fec iscntrl +.text.iscntrl 0x9d029294 0x18 + .text.iscntrl 0x9d029294 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029294 iscntrl -.text.isdigit 0x9d029004 0x18 - .text.isdigit 0x9d029004 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029004 isdigit +.text.isdigit 0x9d0292ac 0x18 + .text.isdigit 0x9d0292ac 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0292ac isdigit -.text.isgraph 0x9d02901c 0x18 - .text.isgraph 0x9d02901c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02901c isgraph +.text.isgraph 0x9d0292c4 0x18 + .text.isgraph 0x9d0292c4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0292c4 isgraph -.text.islower 0x9d029034 0x18 - .text.islower 0x9d029034 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029034 islower +.text.islower 0x9d0292dc 0x18 + .text.islower 0x9d0292dc 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0292dc islower -.text.isprint 0x9d02904c 0x18 - .text.isprint 0x9d02904c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02904c isprint +.text.isprint 0x9d0292f4 0x18 + .text.isprint 0x9d0292f4 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0292f4 isprint -.text.ispunct 0x9d029064 0x18 - .text.ispunct 0x9d029064 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029064 ispunct +.text.ispunct 0x9d02930c 0x18 + .text.ispunct 0x9d02930c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d02930c ispunct -.text.isspace 0x9d02907c 0x18 - .text.isspace 0x9d02907c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d02907c isspace +.text.isspace 0x9d029324 0x18 + .text.isspace 0x9d029324 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029324 isspace -.text.isupper 0x9d029094 0x18 - .text.isupper 0x9d029094 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029094 isupper +.text.isupper 0x9d02933c 0x18 + .text.isupper 0x9d02933c 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d02933c isupper -.text.isxdigit 0x9d0290ac 0x18 +.text.isxdigit 0x9d029354 0x18 .text.isxdigit - 0x9d0290ac 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d0290ac isxdigit + 0x9d029354 0x18 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d029354 isxdigit -.text._buffree 0x9d0290c4 0x14 +.text._buffree 0x9d02936c 0x14 .text._buffree - 0x9d0290c4 0x14 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) - 0x9d0290c4 _buffree + 0x9d02936c 0x14 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) + 0x9d02936c _buffree -.rodata 0x9d0290d8 0x28 - .rodata 0x9d0290d8 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o - .rodata 0x9d0290e8 0x8 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o - .rodata 0x9d0290f0 0x8 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o - .rodata 0x9d0290f8 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o +.rodata 0x9d029380 0x28 + .rodata 0x9d029380 0x10 build/ChaletDuinoV2_795F512H_/production/Source/LoraNetworkInterface.o + .rodata 0x9d029390 0x8 build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o + .rodata 0x9d029398 0x8 build/ChaletDuinoV2_795F512H_/production/Source/TC77.o + .rodata 0x9d0293a0 0x8 build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o .text.INTEnableInterrupts - 0x9d029100 0x8 + 0x9d0293a8 0x8 .text.INTEnableInterrupts - 0x9d029100 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) - 0x9d029100 INTEnableInterrupts + 0x9d0293a8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) + 0x9d0293a8 INTEnableInterrupts .text.INTDisableInterrupts - 0x9d029108 0x8 + 0x9d0293b0 0x8 .text.INTDisableInterrupts - 0x9d029108 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) - 0x9d029108 INTDisableInterrupts + 0x9d0293b0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) + 0x9d0293b0 INTDisableInterrupts .text._on_reset - 0x9d029110 0x8 + 0x9d0293b8 0x8 .text._on_reset - 0x9d029110 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) - 0x9d029110 _on_reset + 0x9d0293b8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) + 0x9d0293b8 _on_reset .text._on_bootstrap - 0x9d029118 0x8 + 0x9d0293c0 0x8 .text._on_bootstrap - 0x9d029118 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) - 0x9d029118 _on_bootstrap + 0x9d0293c0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) + 0x9d0293c0 _on_bootstrap -.text.close 0x9d029120 0x8 - .text.close 0x9d029120 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) - 0x9d029120 close +.text.close 0x9d0293c8 0x8 + .text.close 0x9d0293c8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) + 0x9d0293c8 close -.text.isascii 0x9d029128 0x8 - .text.isascii 0x9d029128 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029128 isascii +.text.isascii 0x9d0293d0 0x8 + .text.isascii 0x9d0293d0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0293d0 isascii -.text.toascii 0x9d029130 0x8 - .text.toascii 0x9d029130 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029130 toascii +.text.toascii 0x9d0293d8 0x8 + .text.toascii 0x9d0293d8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0293d8 toascii -.text._tolower 0x9d029138 0x8 +.text._tolower 0x9d0293e0 0x8 .text._tolower - 0x9d029138 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029138 _tolower + 0x9d0293e0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0293e0 _tolower -.text._toupper 0x9d029140 0x8 +.text._toupper 0x9d0293e8 0x8 .text._toupper - 0x9d029140 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) - 0x9d029140 _toupper + 0x9d0293e8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) + 0x9d0293e8 _toupper .text.getpagesize - 0x9d029148 0x8 + 0x9d0293f0 0x8 .text.getpagesize - 0x9d029148 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) - 0x9d029148 getpagesize + 0x9d0293f0 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) + 0x9d0293f0 getpagesize -.rodata 0x9d029150 0xc - .rodata 0x9d029150 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) - .rodata 0x9d029158 0x4 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o +.rodata 0x9d0293f8 0x8 + .rodata 0x9d0293f8 0x8 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2\libgcc.a(_floatundisf.o) -.text%z317 0x00000000 0x0 +.rodata 0x9d027e3c 0x4 + .rodata 0x9d027e3c 0x4 build/ChaletDuinoV2_795F512H_/production/Source/TemperatureSensor.o + +.text%z315 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libe.a(_floatdisf.o) -.text%z318 0x00000000 0x0 +.text%z316 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fptoul.o) -.text%z319 0x00000000 0x0 +.text%z317 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpfrexp.o) -.text%z320 0x00000000 0x0 +.text%z318 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fpcmp.o) -.text%z321 0x00000000 0x0 +.text%z319 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(xc32_uart.o) -.text%z322 0x00000000 0x0 +.text%z320 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(write.o) -.text%z323 0x00000000 0x0 +.text%z321 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(read.o) -.text%z324 0x00000000 0x0 +.text%z322 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(sbrk.o) -.text%z325 0x00000000 0x0 +.text%z323 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(filbuf.o) -.text%z326 0x00000000 0x0 +.text%z324 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ungetc.o) -.text%z327 0x00000000 0x0 +.text%z325 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(powersf.o) -.text%z328 0x00000000 0x0 +.text%z326 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctypef.o) -.text%z329 0x00000000 0x0 +.text%z327 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(ctype.o) -.text%z330 0x00000000 0x0 +.text%z328 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(atoi.o) -.text%z331 0x00000000 0x0 +.text%z329 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fgetc.o) -.text%z332 0x00000000 0x0 +.text%z330 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_flsbuf_simple.o) -.text%z333 0x00000000 0x0 +.text%z331 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doscan_s.eo) -.text%z334 0x00000000 0x0 +.text%z332 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(doprnt_cdfFnopsuxX.eo) -.text%z335 0x00000000 0x0 +.text%z333 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(errno.o) -.text%z336 0x00000000 0x0 +.text%z334 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(buf.o) -.text%z337 0x00000000 0x0 +.text%z335 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_fputc_simple.o) -.text%z338 0x00000000 0x0 +.text%z336 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sscanf_s.eo) -.text%z339 0x00000000 0x0 +.text%z337 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(sprintf_cdfFnopuxX.eo) -.text%z340 0x00000000 0x0 +.text%z338 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(printf_cdfFnopsuxX.eo) -.text%z341 0x00000000 0x0 +.text%z339 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(strncmp.o) -.text%z342 0x00000000 0x0 +.text%z340 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(setbuf.o) -.text%z343 0x00000000 0x0 +.text%z341 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(puts.o) -.text%z344 0x00000000 0x0 +.text%z342 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(fflush.o) -.text%z345 0x00000000 0x0 +.text%z343 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libc.a(_iob.o) -.text%z346 0x00000000 0x0 +.text%z344 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(sitofp.o) -.text%z347 0x00000000 0x0 +.text%z345 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32subadd.o) -.text%z348 0x00000000 0x0 +.text%z346 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32mul.o) -.text%z349 0x00000000 0x0 +.text%z347 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libm.a(fp32div.o) -.text%z350 0x00000000 0x0 +.text%z348 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(defaultinterrupt.o) -.text%z351 0x00000000 0x0 +.text%z349 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector63.o) -.text%z352 0x00000000 0x0 +.text%z350 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector62.o) -.text%z353 0x00000000 0x0 +.text%z351 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector61.o) -.text%z354 0x00000000 0x0 +.text%z352 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector60.o) -.text%z355 0x00000000 0x0 +.text%z353 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector59.o) -.text%z356 0x00000000 0x0 +.text%z354 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector58.o) -.text%z357 0x00000000 0x0 +.text%z355 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector57.o) -.text%z358 0x00000000 0x0 +.text%z356 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector56.o) -.text%z359 0x00000000 0x0 +.text%z357 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector55.o) -.text%z360 0x00000000 0x0 +.text%z358 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector54.o) -.text%z361 0x00000000 0x0 +.text%z359 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector53.o) -.text%z362 0x00000000 0x0 +.text%z360 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector52.o) -.text%z363 0x00000000 0x0 +.text%z361 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector51.o) -.text%z364 0x00000000 0x0 +.text%z362 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector50.o) -.text%z365 0x00000000 0x0 +.text%z363 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector49.o) -.text%z366 0x00000000 0x0 +.text%z364 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector48.o) -.text%z367 0x00000000 0x0 +.text%z365 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector47.o) -.text%z368 0x00000000 0x0 +.text%z366 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector46.o) -.text%z369 0x00000000 0x0 +.text%z367 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector45.o) -.text%z370 0x00000000 0x0 +.text%z368 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector44.o) -.text%z371 0x00000000 0x0 +.text%z369 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector43.o) -.text%z372 0x00000000 0x0 +.text%z370 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector42.o) -.text%z373 0x00000000 0x0 +.text%z371 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector41.o) -.text%z374 0x00000000 0x0 +.text%z372 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector40.o) -.text%z375 0x00000000 0x0 +.text%z373 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector39.o) -.text%z376 0x00000000 0x0 +.text%z374 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector38.o) -.text%z377 0x00000000 0x0 +.text%z375 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector37.o) -.text%z378 0x00000000 0x0 +.text%z376 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector36.o) -.text%z379 0x00000000 0x0 +.text%z377 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector35.o) -.text%z380 0x00000000 0x0 +.text%z378 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector34.o) -.text%z381 0x00000000 0x0 +.text%z379 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector33.o) -.text%z382 0x00000000 0x0 +.text%z380 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector31.o) -.text%z383 0x00000000 0x0 +.text%z381 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector30.o) -.text%z384 0x00000000 0x0 +.text%z382 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector29.o) -.text%z385 0x00000000 0x0 +.text%z383 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector28.o) -.text%z386 0x00000000 0x0 +.text%z384 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector27.o) -.text%z387 0x00000000 0x0 +.text%z385 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector26.o) -.text%z388 0x00000000 0x0 +.text%z386 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector25.o) -.text%z389 0x00000000 0x0 +.text%z387 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector23.o) -.text%z390 0x00000000 0x0 +.text%z388 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector22.o) -.text%z391 0x00000000 0x0 +.text%z389 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector21.o) -.text%z392 0x00000000 0x0 +.text%z390 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector20.o) -.text%z393 0x00000000 0x0 +.text%z391 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector19.o) -.text%z394 0x00000000 0x0 +.text%z392 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector18.o) -.text%z395 0x00000000 0x0 +.text%z393 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector17.o) -.text%z396 0x00000000 0x0 +.text%z394 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector16.o) -.text%z397 0x00000000 0x0 +.text%z395 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector15.o) -.text%z398 0x00000000 0x0 +.text%z396 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector14.o) -.text%z399 0x00000000 0x0 +.text%z397 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector13.o) -.text%z400 0x00000000 0x0 +.text%z398 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector12.o) -.text%z401 0x00000000 0x0 +.text%z399 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector11.o) -.text%z402 0x00000000 0x0 +.text%z400 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector10.o) -.text%z403 0x00000000 0x0 +.text%z401 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector9.o) -.text%z404 0x00000000 0x0 +.text%z402 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector8.o) -.text%z405 0x00000000 0x0 +.text%z403 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector7.o) -.text%z406 0x00000000 0x0 +.text%z404 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector6.o) -.text%z407 0x00000000 0x0 +.text%z405 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector5.o) -.text%z408 0x00000000 0x0 - .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector3.o) - -.text%z409 0x00000000 0x0 +.text%z406 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector2.o) -.text%z410 0x00000000 0x0 +.text%z407 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector1.o) -.text%z411 0x00000000 0x0 +.text%z408 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(vector0.o) -.text%z412 0x00000000 0x0 +.text%z409 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(general-exception.o) -.text%z413 0x00000000 0x0 +.text%z410 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(close.o) -.text%z414 0x00000000 0x0 +.text%z411 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-bootstrap.o) -.text%z415 0x00000000 0x0 +.text%z412 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-on-reset.o) -.text%z416 0x00000000 0x0 +.text%z413 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libpic32.a(default-bootstrap-exception-handler.o) -.text%z417 0x00000000 0x0 +.text%z414 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\default_isr_vectors.o -.text%z418 0x00000000 0x0 +.text%z415 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_restore_interrupts_lib.o) -.text%z419 0x00000000 0x0 +.text%z416 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_disable_interrupts_lib.o) -.text%z420 0x00000000 0x0 +.text%z417 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_enable_interrupts_lib.o) -.text%z421 0x00000000 0x0 +.text%z418 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(int_configure_system_lib.o) -.text%z422 0x00000000 0x0 +.text%z419 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(pcache.o) -.text%z423 0x00000000 0x0 +.text%z420 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\libmchp_peripheral_32MX795F512H.a(soft_reset_lib.o) -.text%z424 0x00000000 0x0 +.text%z421 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H\processor.o -.text%z425 0x00000000 0x0 +.text%z422 0x00000000 0x0 .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/template.o -.text%z426 0x00000000 0x0 +.text%z423 0x00000000 0x0 .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/system.o -.text%z427 0x00000000 0x0 +.text%z424 0x00000000 0x0 .text 0x00000000 0x0 build/ChaletDuinoV2_795F512H_/production/Source/interrupts.o -.text%z428 0x00000000 0x0 +.text%z425 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib\debug-exception-return.o -.text%z429 0x00000000 0x0 +.text%z426 0x00000000 0x0 .text 0x00000000 0x0 c:/program files/microchip/xc32/v1.33/bin/bin/../../lib/gcc/pic32mx/4.5.2/../../../../pic32mx/lib/./proc/32MX795F512H/crt0_mips32r2.o diff --git a/ChaletLora.X/nbproject/Makefile-ChaletDuinoV2_795F512H_.mk b/ChaletLora.X/nbproject/Makefile-ChaletDuinoV2_795F512H_.mk index 6df8b6c..cb12c55 100644 --- a/ChaletLora.X/nbproject/Makefile-ChaletDuinoV2_795F512H_.mk +++ b/ChaletLora.X/nbproject/Makefile-ChaletDuinoV2_795F512H_.mk @@ -57,17 +57,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE} DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} # Source Files Quoted if spaced -SOURCEFILES_QUOTED_IF_SPACED=Source/ChaletduinoV2Board.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/LoraNetworkInterface.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c +SOURCEFILES_QUOTED_IF_SPACED=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/LoraNetworkInterface.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c # Object Files Quoted if spaced -OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o -POSSIBLE_DEPFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o.d ${OBJECTDIR}/Source/DigitalIO.o.d ${OBJECTDIR}/Source/InternalUart.o.d ${OBJECTDIR}/Source/NetworkProtocol.o.d ${OBJECTDIR}/Source/Terminal.o.d ${OBJECTDIR}/Source/Uart.o.d ${OBJECTDIR}/Source/Util.o.d ${OBJECTDIR}/Source/exceptions.o.d ${OBJECTDIR}/Source/interrupts.o.d ${OBJECTDIR}/Source/main.o.d ${OBJECTDIR}/Source/system.o.d ${OBJECTDIR}/Source/template.o.d ${OBJECTDIR}/Source/timer.o.d ${OBJECTDIR}/Source/WiFiCtrl.o.d ${OBJECTDIR}/Source/SPI.o.d ${OBJECTDIR}/Source/LoraNetworkInterface.o.d ${OBJECTDIR}/Source/ChaletPowerRelay.o.d ${OBJECTDIR}/Source/HarakiriRelay.o.d ${OBJECTDIR}/Source/BatteryMonitor.o.d ${OBJECTDIR}/Source/ina219.o.d ${OBJECTDIR}/Source/I2C.o.d ${OBJECTDIR}/Source/SPI_Flash.o.d ${OBJECTDIR}/Source/Syslog.o.d ${OBJECTDIR}/Source/Watchdog.o.d ${OBJECTDIR}/Source/BootloaderInterface.o.d ${OBJECTDIR}/Source/TemperatureSensor.o.d ${OBJECTDIR}/Source/TC77.o.d ${OBJECTDIR}/Source/BootloaderProtocol.o.d ${OBJECTDIR}/Source/crc32.o.d ${OBJECTDIR}/Source/LoraWatchdog.o.d ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d +OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o +POSSIBLE_DEPFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o.d ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d ${OBJECTDIR}/Source/DigitalIO.o.d ${OBJECTDIR}/Source/InternalUart.o.d ${OBJECTDIR}/Source/NetworkProtocol.o.d ${OBJECTDIR}/Source/Terminal.o.d ${OBJECTDIR}/Source/Uart.o.d ${OBJECTDIR}/Source/Util.o.d ${OBJECTDIR}/Source/exceptions.o.d ${OBJECTDIR}/Source/interrupts.o.d ${OBJECTDIR}/Source/main.o.d ${OBJECTDIR}/Source/system.o.d ${OBJECTDIR}/Source/template.o.d ${OBJECTDIR}/Source/timer.o.d ${OBJECTDIR}/Source/WiFiCtrl.o.d ${OBJECTDIR}/Source/SPI.o.d ${OBJECTDIR}/Source/LoraNetworkInterface.o.d ${OBJECTDIR}/Source/ChaletPowerRelay.o.d ${OBJECTDIR}/Source/HarakiriRelay.o.d ${OBJECTDIR}/Source/BatteryMonitor.o.d ${OBJECTDIR}/Source/ina219.o.d ${OBJECTDIR}/Source/I2C.o.d ${OBJECTDIR}/Source/SPI_Flash.o.d ${OBJECTDIR}/Source/Syslog.o.d ${OBJECTDIR}/Source/Watchdog.o.d ${OBJECTDIR}/Source/BootloaderInterface.o.d ${OBJECTDIR}/Source/TemperatureSensor.o.d ${OBJECTDIR}/Source/TC77.o.d ${OBJECTDIR}/Source/BootloaderProtocol.o.d ${OBJECTDIR}/Source/crc32.o.d ${OBJECTDIR}/Source/LoraWatchdog.o.d # Object Files -OBJECTFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o +OBJECTFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o # Source Files -SOURCEFILES=Source/ChaletduinoV2Board.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/LoraNetworkInterface.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c +SOURCEFILES=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/LoraNetworkInterface.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c @@ -114,6 +114,111 @@ ${OBJECTDIR}/Source/ChaletduinoV2Board.o: Source/ChaletduinoV2Board.c nbproject ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/ChaletduinoV2Board.o.d" -o ${OBJECTDIR}/Source/ChaletduinoV2Board.o Source/ChaletduinoV2Board.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) @${FIXDEPS} "${OBJECTDIR}/Source/ChaletduinoV2Board.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o: Source/winc3400_142/common/source/nm_common.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/common/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" -o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o Source/winc3400_142/common/source/nm_common.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o: Source/winc3400_142/driver/source/m2m_flash.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o Source/winc3400_142/driver/source/m2m_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o: Source/winc3400_142/driver/source/m2m_hif.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o Source/winc3400_142/driver/source/m2m_hif.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o: Source/winc3400_142/driver/source/m2m_ota.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o Source/winc3400_142/driver/source/m2m_ota.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o: Source/winc3400_142/driver/source/m2m_periph.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o Source/winc3400_142/driver/source/m2m_periph.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o: Source/winc3400_142/driver/source/m2m_ssl.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o Source/winc3400_142/driver/source/m2m_ssl.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o: Source/winc3400_142/driver/source/m2m_wifi.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o Source/winc3400_142/driver/source/m2m_wifi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o: Source/winc3400_142/driver/source/nmasic.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o Source/winc3400_142/driver/source/nmasic.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o: Source/winc3400_142/driver/source/nmbus.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o Source/winc3400_142/driver/source/nmbus.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o: Source/winc3400_142/driver/source/nmdrv.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o Source/winc3400_142/driver/source/nmdrv.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o: Source/winc3400_142/driver/source/nmspi.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o Source/winc3400_142/driver/source/nmspi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o: Source/winc3400_142/socket/source/inet_addr.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o Source/winc3400_142/socket/source/inet_addr.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o: Source/winc3400_142/socket/source/inet_ntop.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o Source/winc3400_142/socket/source/inet_ntop.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o: Source/winc3400_142/socket/source/socket.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o Source/winc3400_142/socket/source/socket.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o: Source/winc3400_142/spi_flash/source/spi_flash.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o Source/winc3400_142/spi_flash/source/spi_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + ${OBJECTDIR}/Source/DigitalIO.o: Source/DigitalIO.c nbproject/Makefile-${CND_CONF}.mk @${MKDIR} "${OBJECTDIR}/Source" @${RM} ${OBJECTDIR}/Source/DigitalIO.o.d @@ -317,111 +422,6 @@ ${OBJECTDIR}/Source/LoraWatchdog.o: Source/LoraWatchdog.c nbproject/Makefile-${ ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/LoraWatchdog.o.d" -o ${OBJECTDIR}/Source/LoraWatchdog.o Source/LoraWatchdog.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) @${FIXDEPS} "${OBJECTDIR}/Source/LoraWatchdog.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o: Source/winc3400_142/common/source/nm_common.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/common/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" -o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o Source/winc3400_142/common/source/nm_common.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o: Source/winc3400_142/driver/source/m2m_flash.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o Source/winc3400_142/driver/source/m2m_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o: Source/winc3400_142/driver/source/m2m_hif.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o Source/winc3400_142/driver/source/m2m_hif.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o: Source/winc3400_142/driver/source/m2m_ota.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o Source/winc3400_142/driver/source/m2m_ota.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o: Source/winc3400_142/driver/source/m2m_periph.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o Source/winc3400_142/driver/source/m2m_periph.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o: Source/winc3400_142/driver/source/m2m_ssl.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o Source/winc3400_142/driver/source/m2m_ssl.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o: Source/winc3400_142/driver/source/m2m_wifi.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o Source/winc3400_142/driver/source/m2m_wifi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o: Source/winc3400_142/driver/source/nmasic.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o Source/winc3400_142/driver/source/nmasic.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o: Source/winc3400_142/driver/source/nmbus.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o Source/winc3400_142/driver/source/nmbus.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o: Source/winc3400_142/driver/source/nmdrv.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o Source/winc3400_142/driver/source/nmdrv.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o: Source/winc3400_142/driver/source/nmspi.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o Source/winc3400_142/driver/source/nmspi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o: Source/winc3400_142/socket/source/inet_addr.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o Source/winc3400_142/socket/source/inet_addr.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o: Source/winc3400_142/socket/source/inet_ntop.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o Source/winc3400_142/socket/source/inet_ntop.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o: Source/winc3400_142/socket/source/socket.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o Source/winc3400_142/socket/source/socket.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o: Source/winc3400_142/spi_flash/source/spi_flash.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o Source/winc3400_142/spi_flash/source/spi_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - else ${OBJECTDIR}/Source/ChaletduinoV2Board.o: Source/ChaletduinoV2Board.c nbproject/Makefile-${CND_CONF}.mk @${MKDIR} "${OBJECTDIR}/Source" @@ -430,6 +430,111 @@ ${OBJECTDIR}/Source/ChaletduinoV2Board.o: Source/ChaletduinoV2Board.c nbproject ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/ChaletduinoV2Board.o.d" -o ${OBJECTDIR}/Source/ChaletduinoV2Board.o Source/ChaletduinoV2Board.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) @${FIXDEPS} "${OBJECTDIR}/Source/ChaletduinoV2Board.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o: Source/winc3400_142/common/source/nm_common.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/common/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" -o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o Source/winc3400_142/common/source/nm_common.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o: Source/winc3400_142/driver/source/m2m_flash.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o Source/winc3400_142/driver/source/m2m_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o: Source/winc3400_142/driver/source/m2m_hif.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o Source/winc3400_142/driver/source/m2m_hif.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o: Source/winc3400_142/driver/source/m2m_ota.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o Source/winc3400_142/driver/source/m2m_ota.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o: Source/winc3400_142/driver/source/m2m_periph.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o Source/winc3400_142/driver/source/m2m_periph.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o: Source/winc3400_142/driver/source/m2m_ssl.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o Source/winc3400_142/driver/source/m2m_ssl.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o: Source/winc3400_142/driver/source/m2m_wifi.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o Source/winc3400_142/driver/source/m2m_wifi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o: Source/winc3400_142/driver/source/nmasic.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o Source/winc3400_142/driver/source/nmasic.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o: Source/winc3400_142/driver/source/nmbus.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o Source/winc3400_142/driver/source/nmbus.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o: Source/winc3400_142/driver/source/nmdrv.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o Source/winc3400_142/driver/source/nmdrv.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o: Source/winc3400_142/driver/source/nmspi.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o Source/winc3400_142/driver/source/nmspi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o: Source/winc3400_142/socket/source/inet_addr.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o Source/winc3400_142/socket/source/inet_addr.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o: Source/winc3400_142/socket/source/inet_ntop.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o Source/winc3400_142/socket/source/inet_ntop.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o: Source/winc3400_142/socket/source/socket.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o Source/winc3400_142/socket/source/socket.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o: Source/winc3400_142/spi_flash/source/spi_flash.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source" + @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d + @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o + ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o Source/winc3400_142/spi_flash/source/spi_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) + @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + ${OBJECTDIR}/Source/DigitalIO.o: Source/DigitalIO.c nbproject/Makefile-${CND_CONF}.mk @${MKDIR} "${OBJECTDIR}/Source" @${RM} ${OBJECTDIR}/Source/DigitalIO.o.d @@ -633,111 +738,6 @@ ${OBJECTDIR}/Source/LoraWatchdog.o: Source/LoraWatchdog.c nbproject/Makefile-${ ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/LoraWatchdog.o.d" -o ${OBJECTDIR}/Source/LoraWatchdog.o Source/LoraWatchdog.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) @${FIXDEPS} "${OBJECTDIR}/Source/LoraWatchdog.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o: Source/winc3400_142/common/source/nm_common.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/common/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" -o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o Source/winc3400_142/common/source/nm_common.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o: Source/winc3400_142/driver/source/m2m_flash.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o Source/winc3400_142/driver/source/m2m_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o: Source/winc3400_142/driver/source/m2m_hif.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o Source/winc3400_142/driver/source/m2m_hif.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o: Source/winc3400_142/driver/source/m2m_ota.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o Source/winc3400_142/driver/source/m2m_ota.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o: Source/winc3400_142/driver/source/m2m_periph.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o Source/winc3400_142/driver/source/m2m_periph.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o: Source/winc3400_142/driver/source/m2m_ssl.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o Source/winc3400_142/driver/source/m2m_ssl.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o: Source/winc3400_142/driver/source/m2m_wifi.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o Source/winc3400_142/driver/source/m2m_wifi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o: Source/winc3400_142/driver/source/nmasic.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o Source/winc3400_142/driver/source/nmasic.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o: Source/winc3400_142/driver/source/nmbus.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o Source/winc3400_142/driver/source/nmbus.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o: Source/winc3400_142/driver/source/nmdrv.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o Source/winc3400_142/driver/source/nmdrv.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o: Source/winc3400_142/driver/source/nmspi.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/driver/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" -o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o Source/winc3400_142/driver/source/nmspi.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o: Source/winc3400_142/socket/source/inet_addr.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o Source/winc3400_142/socket/source/inet_addr.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o: Source/winc3400_142/socket/source/inet_ntop.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o Source/winc3400_142/socket/source/inet_ntop.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o: Source/winc3400_142/socket/source/socket.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/socket/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" -o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o Source/winc3400_142/socket/source/socket.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o: Source/winc3400_142/spi_flash/source/spi_flash.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source" - @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d - @${RM} ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o - ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" -o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o Source/winc3400_142/spi_flash/source/spi_flash.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD) - @${FIXDEPS} "${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ - endif # ------------------------------------------------------------------------------------ diff --git a/ChaletLora.X/nbproject/Makefile-genesis.properties b/ChaletLora.X/nbproject/Makefile-genesis.properties index 567fc3b..3b59ea4 100644 --- a/ChaletLora.X/nbproject/Makefile-genesis.properties +++ b/ChaletLora.X/nbproject/Makefile-genesis.properties @@ -1,5 +1,5 @@ # -#Wed Dec 29 15:21:04 EST 2021 +#Thu Dec 30 14:57:27 EST 2021 default.languagetoolchain.version=2.41 ChaletDuino_775F512H_.languagetoolchain.version=1.33 default.Pack.dfplocation=C\:\\Users\\JF\\.mchp_packs\\Microchip\\PIC32MX_DFP\\1.2.228 @@ -7,7 +7,7 @@ conf.ids=default,ChaletDuino_775F512H_,ChaletDuinoV2_795F512H_ default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v2.41\\bin ChaletDuino_775F512H_.Pack.dfplocation=C\:\\Program Files (x86)\\Microchip\\MPLABX\\v5.40\\packs\\Microchip\\PIC32MX_DFP\\1.3.231 ChaletDuinoV2_795F512H_.Pack.dfplocation=C\:\\Program Files (x86)\\Microchip\\MPLABX\\v5.40\\packs\\Microchip\\PIC32MX_DFP\\1.3.231 -configurations-xml=cd6bb37a166e3183c9426849b56a853c +configurations-xml=bbb83c38cec5eb460692a21d7e609f51 default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=a5745c99cb5a5032f17cfaf0ff720282 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=9db8f8a224aa17d0023ea7f468f871dc ChaletDuino_775F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin diff --git a/ChaletLora.X/nbproject/configurations.xml b/ChaletLora.X/nbproject/configurations.xml index 7fd2529..055d39e 100644 --- a/ChaletLora.X/nbproject/configurations.xml +++ b/ChaletLora.X/nbproject/configurations.xml @@ -1120,6 +1120,7 @@ + @@ -1344,6 +1345,20 @@ + + + + + + + + + + + + + +

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