diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 437a845d..c818bf9f 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -57,6 +57,8 @@ jobs: - {RTT_BSP: "Edgi_Talk_M33_Blink_LED"} - {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M33_USB_D"} - {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M33_USB_H"} + - {RTT_BSP: "Edgi_Talk_IPC/Edgi_Talk_M33_IPC"} + - {RTT_BSP: "Edgi_Talk_IPC/Edgi_Talk_M55_IPC"} - {RTT_BSP: "Edgi_Talk_M55_Blink_LED"} - {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_D"} - {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_H"} diff --git a/README.md b/README.md index 0ca1fbea..abadded5 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,9 @@ $ sdk-bsp-psoc_e84-edgi-talk │ │ ├── Edgi_Talk_M33_USB_H │ │ ├── Edgi_Talk_M55_USB_D │ │ └── Edgi_Talk_M55_USB_H +│ ├── Edgi_Talk_IPC +│ │ ├── Edgi_Talk_M33_IPC +│ │ └── Edgi_Talk_M55_IPC │ ├── Edgi-Talk_CoreMark │ ├── Edgi-Talk_CDC_Echo │ ├── Edgi-Talk_HyperRam diff --git a/README_zh.md b/README_zh.md index a012d7f1..1d8fb257 100644 --- a/README_zh.md +++ b/README_zh.md @@ -33,6 +33,9 @@ $ sdk-bsp-psoc_e84-edgi-talk │ │ ├── Edgi_Talk_M33_USB_H │ │ ├── Edgi_Talk_M55_USB_D │ │ └── Edgi_Talk_M55_USB_H +│ ├── Edgi_Talk_IPC +│ │ ├── Edgi_Talk_M33_IPC +│ │ └── Edgi_Talk_M55_IPC │ ├── Edgi_Talk_CoreMark │ ├── Edgi_Talk_CDC_Echo │ ├── Edgi_Talk_HyperRam diff --git a/libraries/HAL_Drivers/SConscript b/libraries/HAL_Drivers/SConscript index 06ea04a7..fb871541 100644 --- a/libraries/HAL_Drivers/SConscript +++ b/libraries/HAL_Drivers/SConscript @@ -66,6 +66,12 @@ if GetDepend(['RT_USING_DAC']): if GetDepend(['BSP_USING_TIM']): src += ['drv_hwtimer.c'] +if GetDepend(['RT_USING_CAN']): + src += ['drv_canfd.c'] + +if GetDepend(['BSP_USING_IPC']): + src += ['drv_ipc.c'] + path = [cwd] path += [cwd + '/config'] diff --git a/libraries/HAL_Drivers/canfd_config.h b/libraries/HAL_Drivers/canfd_config.h new file mode 100644 index 00000000..4a50850a --- /dev/null +++ b/libraries/HAL_Drivers/canfd_config.h @@ -0,0 +1,95 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +#ifndef __CANFD_CONFIG_H__ +#define __CANFD_CONFIG_H__ + +#include +#include "board.h" +#include "cy_canfd.h" +#include "cy_sysint.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef BSP_USING_CANFD0 +extern const cy_stc_canfd_config_t CYBSP_CAN_FD_CH_0_config; + +static cy_stc_sysint_t CANFD0_IRQ_cfg = +{ + .intrSrc = canfd_0_interrupts0_0_IRQn, + .intrPriority = 3u, +}; +#endif + +#ifdef BSP_USING_CANFD1 +extern const cy_stc_canfd_config_t CANFD1_config; + +static cy_stc_sysint_t CANFD1_IRQ_cfg = +{ + .intrSrc = canfd_1_interrupts0_0_IRQn, + .intrPriority = 3u, +}; +#endif + +/* CANFD0 */ +#if defined(BSP_USING_CANFD0) +#ifndef CANFD0_CONFIG +#define CANFD0_CONFIG \ + { \ + .name = "canfd0", \ + .base = CANFD0, \ + .channel = 0u, \ + .channel_mask = (1u << 0), \ + .mram_delay_us = 6u, \ + .irq = canfd_0_interrupts0_0_IRQn, \ + .irq_cfg = &CANFD0_IRQ_cfg, \ + .isr = RT_NULL, \ + .canfd_config = &CYBSP_CAN_FD_CH_0_config, \ + .test_mode = CY_CANFD_TEST_MODE_DISABLE, \ + .enable_brs = true, \ + .tx_buffer_index = 0u, \ + } +#endif +#endif /* BSP_USING_CANFD0 */ + +/* CANFD1 */ +#if defined(BSP_USING_CANFD1) +#ifndef CANFD1_CONFIG +#define CANFD1_CONFIG \ + { \ + .name = "canfd1", \ + .base = CANFD1, \ + .channel = 0u, \ + .channel_mask = (1u << 0), \ + .mram_delay_us = 6u, \ + .irq = canfd_1_interrupts0_0_IRQn, \ + .irq_cfg = &CANFD1_IRQ_cfg, \ + .isr = RT_NULL, \ + .canfd_config = &CANFD1_config, \ + .test_mode = CY_CANFD_TEST_MODE_DISABLE, \ + .enable_brs = true, \ + .tx_buffer_index = 0u, \ + } +#endif +#endif /* BSP_USING_CANFD1 */ + +#ifdef __cplusplus +} +#endif + +#endif /* __CANFD_CONFIG_H__ */ diff --git a/libraries/HAL_Drivers/drv_canfd.c b/libraries/HAL_Drivers/drv_canfd.c new file mode 100644 index 00000000..3dfa1c23 --- /dev/null +++ b/libraries/HAL_Drivers/drv_canfd.c @@ -0,0 +1,524 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +#include "drv_canfd.h" +#include "canfd_config.h" + +#ifdef RT_USING_CAN + +enum +{ +#ifdef BSP_USING_CANFD0 + CANFD0_INDEX, +#endif +#ifdef BSP_USING_CANFD1 + CANFD1_INDEX, +#endif +}; + +static struct ifx_canfd_config can_config[] = +{ +#ifdef BSP_USING_CANFD0 + CANFD0_CONFIG, +#endif +#ifdef BSP_USING_CANFD1 + CANFD1_CONFIG, +#endif +}; + +static struct ifx_canfd can_obj[sizeof(can_config) / sizeof(can_config[0])] = {0}; + +#define IFX_CANFD_MAX_DATA_LEN (64U) + +#define IFX_CANFD_ERR_MASK (CY_CANFD_RX_FIFO_0_WATERMARK_REACHED | \ + CY_CANFD_RX_FIFO_0_FULL | \ + CY_CANFD_RX_FIFO_0_MSG_LOST | \ + CY_CANFD_RX_FIFO_1_WATERMARK_REACHED | \ + CY_CANFD_RX_FIFO_1_FULL | \ + CY_CANFD_RX_FIFO_1_MSG_LOST | \ + CY_CANFD_TX_FIFO_1_WATERMARK_REACHED | \ + CY_CANFD_TX_FIFO_1_FULL | \ + CY_CANFD_TX_FIFO_1_MSG_LOST | \ + CY_CANFD_TIMESTAMP_WRAPAROUND | \ + CY_CANFD_MRAM_ACCESS_FAILURE | \ + CY_CANFD_TIMEOUT_OCCURRED | \ + CY_CANFD_BIT_ERROR_CORRECTED | \ + CY_CANFD_BIT_ERROR_UNCORRECTED | \ + CY_CANFD_ERROR_LOG_OVERFLOW | \ + CY_CANFD_ERROR_PASSIVE | \ + CY_CANFD_WARNING_STATUS | \ + CY_CANFD_BUS_OFF_STATUS | \ + CY_CANFD_WATCHDOG_INTERRUPT | \ + CY_CANFD_PROTOCOL_ERROR_ARB_PHASE | \ + CY_CANFD_PROTOCOL_ERROR_DATA_PHASE | \ + CY_CANFD_ACCESS_RESERVED_ADDR) + +static uint8_t ifx_canfd_dlc_to_len(uint8_t dlc) +{ + switch (dlc) + { + case 0: return 0; + case 1: return 1; + case 2: return 2; + case 3: return 3; + case 4: return 4; + case 5: return 5; + case 6: return 6; + case 7: return 7; + case 8: return 8; + case 9: return 12; + case 10: return 16; + case 11: return 20; + case 12: return 24; + case 13: return 32; + case 14: return 48; + case 15: return 64; + default: return 0; + } +} + +static uint8_t ifx_canfd_len_to_dlc(uint8_t len) +{ + if (len <= 8) + { + return len; + } + if (len <= 12) + { + return 9; + } + if (len <= 16) + { + return 10; + } + if (len <= 20) + { + return 11; + } + if (len <= 24) + { + return 12; + } + if (len <= 32) + { + return 13; + } + if (len <= 48) + { + return 14; + } + return 15; +} + +static void ifx_canfd_irq_handler(struct ifx_canfd *can) +{ + Cy_CANFD_IrqHandler(can->config->base, can->config->channel, &can->context); +} + +static void ifx_canfd_tx_callback(struct ifx_canfd *can) +{ + rt_hw_can_isr(&can->can_dev, RT_CAN_EVENT_TX_DONE | ((rt_uint32_t)can->config->tx_buffer_index << 8)); +} + +static void ifx_canfd_rx_callback(struct ifx_canfd *can, bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, + cy_stc_canfd_rx_buffer_t *rxBuffer) +{ + uint8_t data_len; + + can->rx_fifo_msg = rxFIFOMsg; + can->rx_buf_fifo_num = msgBufOrRxFIFONum; + can->rx_id = rxBuffer->r0_f->id; + can->rx_rtr = rxBuffer->r0_f->rtr; + can->rx_xtd = rxBuffer->r0_f->xtd; + + data_len = ifx_canfd_dlc_to_len((uint8_t)rxBuffer->r1_f->dlc); + if (data_len > IFX_CANFD_MAX_DATA_LEN) + { + data_len = IFX_CANFD_MAX_DATA_LEN; + } + can->rx_len = data_len; + + rt_memset(can->rx_data, 0, sizeof(can->rx_data)); + rt_memcpy(can->rx_data, (uint8_t *)rxBuffer->data_area_f, data_len); + can->rx_pending = true; + + rt_hw_can_isr(&can->can_dev, RT_CAN_EVENT_RX_IND | ((rt_uint32_t)msgBufOrRxFIFONum << 8)); + +} + +static void ifx_canfd_error_callback(struct ifx_canfd *can, uint32_t errorMask) +{ + + Cy_CANFD_ClearInterrupt(can->config->base, can->config->channel, errorMask & IFX_CANFD_ERR_MASK); + +} + +#ifdef BSP_USING_CANFD0 +void canfd0_isr_callback(void) +{ + rt_interrupt_enter(); + ifx_canfd_irq_handler(&can_obj[CANFD0_INDEX]); + rt_interrupt_leave(); +} + +static void canfd0_tx_callback(void) +{ + ifx_canfd_tx_callback(&can_obj[CANFD0_INDEX]); +} + +void canfd0_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t *rxBuffer) +{ + ifx_canfd_rx_callback(&can_obj[CANFD0_INDEX], rxFIFOMsg, msgBufOrRxFIFONum, rxBuffer); +} + +static void canfd0_error_callback(uint32_t errorMask) +{ + ifx_canfd_error_callback(&can_obj[CANFD0_INDEX], errorMask); +} +#endif + +#ifdef BSP_USING_CANFD1 +void canfd1_isr_callback(void) +{ + rt_interrupt_enter(); + ifx_canfd_irq_handler(&can_obj[CANFD1_INDEX]); + rt_interrupt_leave(); +} + +static void canfd1_tx_callback(void) +{ + ifx_canfd_tx_callback(&can_obj[CANFD1_INDEX]); +} + +void canfd1_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t *rxBuffer) +{ + ifx_canfd_rx_callback(&can_obj[CANFD1_INDEX], rxFIFOMsg, msgBufOrRxFIFONum, rxBuffer); +} + +static void canfd1_error_callback(uint32_t errorMask) +{ + ifx_canfd_error_callback(&can_obj[CANFD1_INDEX], errorMask); +} +#endif + +static void ifx_canfd_set_interrupt_mask(struct ifx_canfd *can) +{ + Cy_CANFD_SetInterruptMask(can->config->base, can->config->channel, can->irq_mask); + Cy_CANFD_SetInterruptLine(can->config->base, can->config->channel, CY_CANFD_INTERRUPT_LINE_0_EN); + Cy_CANFD_EnableInterruptLine(can->config->base, can->config->channel, CY_CANFD_INTERRUPT_LINE_0_EN); +} + +static rt_err_t ifx_canfd_configure(struct rt_can_device *can_dev, struct can_configure *cfg) +{ + cy_en_canfd_status_t status; + struct ifx_canfd *can; + + RT_ASSERT(can_dev != RT_NULL); + RT_ASSERT(cfg != RT_NULL); + + can = rt_container_of(can_dev, struct ifx_canfd, can_dev); + RT_ASSERT(can != RT_NULL); + RT_ASSERT(can->config != RT_NULL); + RT_ASSERT(can->config->canfd_config != RT_NULL); + + can->user_tx_cb = can->config->canfd_config->txCallback; + can->user_rx_cb = can->config->canfd_config->rxCallback; + can->user_err_cb = can->config->canfd_config->errorCallback; + + Cy_CANFD_EnableMRAM(can->config->base, can->config->channel_mask, can->config->mram_delay_us); + + status = Cy_CANFD_Init(can->config->base, can->config->channel, can->config->canfd_config, &can->context); + if (status != CY_CANFD_SUCCESS) + { + return -RT_ERROR; + } + + can->context.canFDInterruptHandling.canFDTxInterruptFunction = can->tx_cb; + can->context.canFDInterruptHandling.canFDRxInterruptFunction = can->rx_cb; + can->context.canFDInterruptHandling.canFDErrorInterruptFunction = can->err_cb; + + Cy_CANFD_ConfigChangesEnable(can->config->base, can->config->channel); + Cy_CANFD_TestModeConfig(can->config->base, can->config->channel, can->config->test_mode); + Cy_CANFD_ConfigChangesDisable(can->config->base, can->config->channel); + + can->tx_buffer.t0_f = &can->tx_t0; + can->tx_buffer.t1_f = &can->tx_t1; + can->tx_buffer.data_area_f = can->tx_data; + + can->rx_pending = false; + + return RT_EOK; +} + +static rt_err_t ifx_canfd_control(struct rt_can_device *can_dev, int cmd, void *arg) +{ + struct ifx_canfd *can; + rt_uint32_t argval; + + RT_ASSERT(can_dev != RT_NULL); + can = rt_container_of(can_dev, struct ifx_canfd, can_dev); + RT_ASSERT(can != RT_NULL); + RT_ASSERT(can->config != RT_NULL); + + switch (cmd) + { + case RT_DEVICE_CTRL_CLR_INT: + argval = (rt_uint32_t)arg; + if (argval & RT_DEVICE_FLAG_INT_RX) + { + can->irq_mask &= ~(CY_CANFD_RX_BUFFER_NEW_MESSAGE | CY_CANFD_RX_FIFO_0_NEW_MESSAGE | CY_CANFD_RX_FIFO_1_NEW_MESSAGE); + } + if (argval & RT_DEVICE_FLAG_INT_TX) + { + can->irq_mask &= ~(CY_CANFD_TRANSMISSION_COMPLETE | CY_CANFD_TRANSMISSION_CANCEL_FINISHED); + } + if (argval & RT_DEVICE_CAN_INT_ERR) + { + can->irq_mask &= ~IFX_CANFD_ERR_MASK; + } + ifx_canfd_set_interrupt_mask(can); + NVIC_ClearPendingIRQ(can->config->irq); + break; + + case RT_DEVICE_CTRL_SET_INT: + argval = (rt_uint32_t)arg; + if (argval & RT_DEVICE_FLAG_INT_RX) + { + can->irq_mask |= (CY_CANFD_RX_BUFFER_NEW_MESSAGE | CY_CANFD_RX_FIFO_0_NEW_MESSAGE | CY_CANFD_RX_FIFO_1_NEW_MESSAGE); + } + if (argval & RT_DEVICE_FLAG_INT_TX) + { + can->irq_mask |= (CY_CANFD_TRANSMISSION_COMPLETE | CY_CANFD_TRANSMISSION_CANCEL_FINISHED); + } + if (argval & RT_DEVICE_CAN_INT_ERR) + { + can->irq_mask |= IFX_CANFD_ERR_MASK; + } + ifx_canfd_set_interrupt_mask(can); + + if ((can->config->irq_cfg == RT_NULL) || (can->config->isr == RT_NULL)) + { + return -RT_ERROR; + } + Cy_SysInt_Init(can->config->irq_cfg, can->config->isr); + NVIC_EnableIRQ(can->config->irq); + break; + + case RT_CAN_CMD_SET_MODE: + argval = (rt_uint32_t)arg; + if (argval == RT_CAN_MODE_NORMAL) + { + Cy_CANFD_ConfigChangesEnable(can->config->base, can->config->channel); + Cy_CANFD_TestModeConfig(can->config->base, can->config->channel, CY_CANFD_TEST_MODE_DISABLE); + Cy_CANFD_ConfigChangesDisable(can->config->base, can->config->channel); + } + else if (argval == RT_CAN_MODE_LISTEN) + { + Cy_CANFD_ConfigChangesEnable(can->config->base, can->config->channel); + Cy_CANFD_TestModeConfig(can->config->base, can->config->channel, CY_CANFD_TEST_MODE_BUS_MONITORING); + Cy_CANFD_ConfigChangesDisable(can->config->base, can->config->channel); + } + else if (argval == RT_CAN_MODE_LOOPBACK) + { + Cy_CANFD_ConfigChangesEnable(can->config->base, can->config->channel); + Cy_CANFD_TestModeConfig(can->config->base, can->config->channel, CY_CANFD_TEST_MODE_INTERNAL_LOOP_BACK); + Cy_CANFD_ConfigChangesDisable(can->config->base, can->config->channel); + } + else + { + return -RT_ERROR; + } + break; + + case RT_CAN_CMD_SET_BAUD: + return -RT_ERROR; + + case RT_CAN_CMD_GET_STATUS: + { + struct rt_can_status *status = (struct rt_can_status *)arg; + if (status != RT_NULL) + { + rt_memset(status, 0, sizeof(*status)); + status->errcode = (rt_uint32_t)Cy_CANFD_GetLastError(can->config->base, can->config->channel); + } + break; + } + + default: + return -RT_ERROR; + } + + return RT_EOK; +} + +static rt_ssize_t ifx_canfd_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t boxno) +{ + struct ifx_canfd *can; + struct rt_can_msg *msg_rt = (struct rt_can_msg *)buf; + cy_en_canfd_status_t status; + uint8_t data_len; + + RT_ASSERT(can_dev != RT_NULL); + RT_ASSERT(buf != RT_NULL); + + can = rt_container_of(can_dev, struct ifx_canfd, can_dev); + RT_ASSERT(can != RT_NULL); + + if (boxno != can->config->tx_buffer_index) + { + boxno = can->config->tx_buffer_index; + } + + data_len = msg_rt->len; + if (data_len > IFX_CANFD_MAX_DATA_LEN) + { + return -RT_ERROR; + } + + if ((!can->config->canfd_config->canFDMode) && (data_len > 8)) + { + return -RT_ERROR; + } + + can->tx_t0.id = msg_rt->id; + can->tx_t0.rtr = msg_rt->rtr ? CY_CANFD_RTR_REMOTE_FRAME : CY_CANFD_RTR_DATA_FRAME; + can->tx_t0.xtd = msg_rt->ide ? CY_CANFD_XTD_EXTENDED_ID : CY_CANFD_XTD_STANDARD_ID; + can->tx_t0.esi = CY_CANFD_ESI_ERROR_ACTIVE; + + can->tx_t1.dlc = ifx_canfd_len_to_dlc(data_len); + can->tx_t1.brs = can->config->enable_brs; + can->tx_t1.fdf = can->config->canfd_config->canFDMode ? CY_CANFD_FDF_CAN_FD_FRAME : CY_CANFD_FDF_STANDARD_FRAME; + can->tx_t1.efc = false; + can->tx_t1.mm = 0; + + rt_memset(can->tx_data, 0, sizeof(can->tx_data)); + rt_memcpy((uint8_t *)can->tx_data, msg_rt->data, data_len); + + status = Cy_CANFD_UpdateAndTransmitMsgBuffer(can->config->base, can->config->channel, + &can->tx_buffer, (uint8_t)boxno, &can->context); + if (status != CY_CANFD_SUCCESS) + { + return -RT_ERROR; + } + + return RT_EOK; +} + +static rt_ssize_t ifx_canfd_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno) +{ + struct ifx_canfd *can; + struct rt_can_msg *msg_rt = (struct rt_can_msg *)buf; + rt_uint8_t copy_len; + + RT_ASSERT(can_dev != RT_NULL); + RT_ASSERT(buf != RT_NULL); + + can = rt_container_of(can_dev, struct ifx_canfd, can_dev); + RT_ASSERT(can != RT_NULL); + + if (!can->rx_pending) + { + return 0; + } + + if (boxno != can->rx_buf_fifo_num) + { + return 0; + } + + msg_rt->id = can->rx_id; + msg_rt->ide = (can->rx_xtd == CY_CANFD_XTD_EXTENDED_ID) ? 1 : 0; + msg_rt->rtr = (can->rx_rtr == CY_CANFD_RTR_REMOTE_FRAME) ? 1 : 0; + msg_rt->rsv = RT_NULL; + msg_rt->len = can->rx_len; + msg_rt->priv = boxno; + msg_rt->hdr_index = RT_NULL; + + copy_len = can->rx_len; + if (copy_len > sizeof(msg_rt->data)) + { + copy_len = sizeof(msg_rt->data); + msg_rt->len = copy_len; + } + + rt_memcpy(msg_rt->data, can->rx_data, copy_len); + can->rx_pending = false; + + return sizeof(struct rt_can_msg); +} + +static const struct rt_can_ops ifx_can_ops = +{ + .configure = ifx_canfd_configure, + .control = ifx_canfd_control, + .sendmsg = ifx_canfd_sendmsg, + .recvmsg = ifx_canfd_recvmsg +}; + +static void ifx_canfd_get_config(void) +{ + struct can_configure config = CANDEFAULTCONFIG; + + for (rt_size_t i = 0; i < (sizeof(can_obj) / sizeof(can_obj[0])); i++) + { + can_obj[i].can_dev.config = config; + can_obj[i].can_dev.config.msgboxsz = 64; + can_obj[i].can_dev.config.sndboxnumber = 1; + can_obj[i].can_dev.config.ticks = 50; + } +} + +int rt_hw_can_init(void) +{ + rt_err_t result = RT_EOK; + rt_size_t obj_num = sizeof(can_obj) / sizeof(struct ifx_canfd); + + ifx_canfd_get_config(); + + for (rt_size_t i = 0; i < obj_num; i++) + { + can_obj[i].config = &can_config[i]; + can_obj[i].can_dev.ops = &ifx_can_ops; + +#ifdef BSP_USING_CANFD0 + if (i == CANFD0_INDEX) + { + can_obj[i].tx_cb = canfd0_tx_callback; + can_obj[i].rx_cb = canfd0_rx_callback; + can_obj[i].err_cb = canfd0_error_callback; + can_obj[i].config->isr = canfd0_isr_callback; + } +#endif + +#ifdef BSP_USING_CANFD1 + if (i == CANFD1_INDEX) + { + can_obj[i].tx_cb = canfd1_tx_callback; + can_obj[i].rx_cb = canfd1_rx_callback; + can_obj[i].err_cb = canfd1_error_callback; + can_obj[i].config->isr = canfd1_isr_callback; + } +#endif + + result = rt_hw_can_register(&can_obj[i].can_dev, can_obj[i].config->name, can_obj[i].can_dev.ops, RT_NULL); + RT_ASSERT(result == RT_EOK); + } + + return result; +} +INIT_PREV_EXPORT(rt_hw_can_init); + +#endif /* RT_USING_CAN */ diff --git a/libraries/HAL_Drivers/drv_canfd.h b/libraries/HAL_Drivers/drv_canfd.h new file mode 100644 index 00000000..5b743352 --- /dev/null +++ b/libraries/HAL_Drivers/drv_canfd.h @@ -0,0 +1,81 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +#ifndef __DRV_CANFD_H__ +#define __DRV_CANFD_H__ + +#include +#include +#include + +#include "board.h" +#include "cy_canfd.h" +#include "cy_sysint.h" + +#ifdef RT_USING_CAN + +struct ifx_canfd_config +{ + const char *name; + CANFD_Type *base; + uint32_t channel; + uint32_t channel_mask; + uint16_t mram_delay_us; + IRQn_Type irq; + cy_stc_sysint_t *irq_cfg; + cy_israddress isr; + const cy_stc_canfd_config_t *canfd_config; + cy_stc_canfd_test_mode_t test_mode; + bool enable_brs; + uint8_t tx_buffer_index; +}; + +struct ifx_canfd +{ + struct rt_can_device can_dev; + struct ifx_canfd_config *config; + + cy_stc_canfd_context_t context; + uint32_t irq_mask; + + volatile bool rx_pending; + bool rx_fifo_msg; + uint8_t rx_buf_fifo_num; + uint32_t rx_id; + uint8_t rx_len; + cy_en_canfd_rtr_t rx_rtr; + cy_en_canfd_xtd_t rx_xtd; + uint8_t rx_data[64]; + + cy_stc_canfd_t0_t tx_t0; + cy_stc_canfd_t1_t tx_t1; + uint32_t tx_data[CY_CANFD_MESSAGE_DATA_BUFFER_SIZE]; + cy_stc_canfd_tx_buffer_t tx_buffer; + + cy_canfd_tx_msg_func_ptr_t user_tx_cb; + cy_canfd_rx_msg_func_ptr_t user_rx_cb; + cy_canfd_error_func_ptr_t user_err_cb; + + cy_canfd_tx_msg_func_ptr_t tx_cb; + cy_canfd_rx_msg_func_ptr_t rx_cb; + cy_canfd_error_func_ptr_t err_cb; +}; + +int rt_hw_can_init(void); + +#endif /* RT_USING_CAN */ + +#endif /* __DRV_CANFD_H__ */ diff --git a/libraries/HAL_Drivers/drv_ipc.c b/libraries/HAL_Drivers/drv_ipc.c new file mode 100644 index 00000000..3abb77c4 --- /dev/null +++ b/libraries/HAL_Drivers/drv_ipc.c @@ -0,0 +1,364 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ +#include +#include +#include + +#include "board.h" +#include "cy_ipc_pipe.h" + +#include "drv_ipc.h" + +#define EDGE_IPC_RX_QUEUE_SIZE (128U) + +#if defined(COMPONENT_CM33) || ((__CORTEX_M) == 33U) + #define EDGE_IPC_LOCAL_EP_ADDR CM33_IPC_PIPE_EP_ADDR + #define EDGE_IPC_PEER_EP_ADDR CM55_IPC_PIPE_EP_ADDR + #define EDGE_IPC_LOCAL_CLIENT_ID CM33_IPC_PIPE_CLIENT_ID + #define EDGE_IPC_TX_INTR_MASK CY_IPC_CYPIPE_INTR_MASK_EP1 + #define EDGE_IPC_LOCAL_CHAN CY_IPC_CHAN_CYPIPE_EP1 + #define EDGE_IPC_LOCAL_INTR CY_IPC_INTR_CYPIPE_EP1 + #define EDGE_IPC_LOCAL_PRIOR CY_IPC_INTR_CYPIPE_PRIOR_EP1 + #define EDGE_IPC_LOCAL_MUX CY_IPC_INTR_CYPIPE_MUX_EP1 + #define EDGE_IPC_PEER_CHAN CY_IPC_CHAN_CYPIPE_EP2 + #define EDGE_IPC_PEER_INTR CY_IPC_INTR_CYPIPE_EP2 + #define EDGE_IPC_PEER_PRIOR CY_IPC_INTR_CYPIPE_PRIOR_EP2 + #define EDGE_IPC_PEER_MUX CY_IPC_INTR_CYPIPE_MUX_EP2 +#elif defined(COMPONENT_CM55) || ((__CORTEX_M) == 55U) + #define EDGE_IPC_LOCAL_EP_ADDR CM55_IPC_PIPE_EP_ADDR + #define EDGE_IPC_PEER_EP_ADDR CM33_IPC_PIPE_EP_ADDR + #define EDGE_IPC_LOCAL_CLIENT_ID CM55_IPC_PIPE_CLIENT_ID + #define EDGE_IPC_TX_INTR_MASK CY_IPC_CYPIPE_INTR_MASK_EP2 + #define EDGE_IPC_LOCAL_CHAN CY_IPC_CHAN_CYPIPE_EP2 + #define EDGE_IPC_LOCAL_INTR CY_IPC_INTR_CYPIPE_EP2 + #define EDGE_IPC_LOCAL_PRIOR CY_IPC_INTR_CYPIPE_PRIOR_EP2 + #define EDGE_IPC_LOCAL_MUX CY_IPC_INTR_CYPIPE_MUX_EP2 + #define EDGE_IPC_PEER_CHAN CY_IPC_CHAN_CYPIPE_EP1 + #define EDGE_IPC_PEER_INTR CY_IPC_INTR_CYPIPE_EP1 + #define EDGE_IPC_PEER_PRIOR CY_IPC_INTR_CYPIPE_PRIOR_EP1 + #define EDGE_IPC_PEER_MUX CY_IPC_INTR_CYPIPE_MUX_EP1 +#else + #error "Unsupported core for edge_ipc_device" +#endif + +struct edge_ipc_device { + struct rt_device parent; + cy_stc_ipc_pipe_ep_t pipe_ep_array[CY_IPC_MAX_ENDPOINTS]; + cy_ipc_pipe_callback_ptr_t cb_array[CY_IPC_CYPIPE_CLIENT_CNT]; + + edge_rc_frame_t rx_queue[EDGE_IPC_RX_QUEUE_SIZE]; + volatile rt_uint16_t rx_head; + volatile rt_uint16_t rx_tail; + + volatile rt_uint32_t tx_pool_idx; + volatile rt_uint32_t stats_tx_ok; + volatile rt_uint32_t stats_tx_err; + volatile rt_uint32_t stats_rx_ok; + volatile rt_uint32_t stats_rx_err; + volatile rt_uint32_t stats_rx_drop; + volatile rt_uint32_t stats_sema_fail; + + rt_bool_t initialized; +}; + +static struct edge_ipc_device g_edge_ipc_dev; +CY_SECTION_SHAREDMEM static edge_rc_frame_t g_edge_ipc_tx_pool[EDGE_IPC_FRAME_POOL_SIZE]; + +static rt_bool_t edge_ipc_lock_sema(void) +{ + uint32_t retry = 0; + + while (retry++ < EDGE_IPC_SEMA_RETRY_MAX) { + if (Cy_IPC_Sema_Set(IPC_DEMO_SEMA_NUM, false) == CY_IPC_SEMA_SUCCESS) { + return RT_TRUE; + } + } + + return RT_FALSE; +} + +static void edge_ipc_unlock_sema(void) +{ + (void)Cy_IPC_Sema_Clear(IPC_DEMO_SEMA_NUM, false); +} + +static rt_bool_t edge_ipc_rx_queue_push(struct edge_ipc_device* dev, const edge_rc_frame_t* frame) +{ + rt_base_t level; + rt_uint16_t next; + + level = rt_hw_interrupt_disable(); + next = (rt_uint16_t)((dev->rx_head + 1U) % EDGE_IPC_RX_QUEUE_SIZE); + + if (next == dev->rx_tail) { + rt_hw_interrupt_enable(level); + return RT_FALSE; + } + + dev->rx_queue[dev->rx_head] = *frame; + dev->rx_head = next; + rt_hw_interrupt_enable(level); + + return RT_TRUE; +} + +static rt_bool_t edge_ipc_rx_queue_pop(struct edge_ipc_device* dev, edge_rc_frame_t* frame) +{ + rt_base_t level; + + level = rt_hw_interrupt_disable(); + + if (dev->rx_tail == dev->rx_head) { + rt_hw_interrupt_enable(level); + return RT_FALSE; + } + + *frame = dev->rx_queue[dev->rx_tail]; + dev->rx_tail = (rt_uint16_t)((dev->rx_tail + 1U) % EDGE_IPC_RX_QUEUE_SIZE); + + rt_hw_interrupt_enable(level); + return RT_TRUE; +} + +static void edge_ipc_pipe_isr(void) +{ + Cy_IPC_Pipe_ExecuteCallback(EDGE_IPC_LOCAL_EP_ADDR); +} + +static void edge_ipc_rx_callback(uint32_t* msg_data) +{ + struct edge_ipc_device* dev = &g_edge_ipc_dev; + edge_rc_frame_t* rx = (edge_rc_frame_t*)msg_data; + + if (rx == RT_NULL) { + dev->stats_rx_err++; + return; + } + + if (rx->client_id != EDGE_IPC_LOCAL_CLIENT_ID + || rx->magic != RC_MAGIC_WORD + || edge_rc_checksum(rx) != rx->checksum) { + dev->stats_rx_err++; + return; + } + + if (!edge_ipc_rx_queue_push(dev, rx)) { + dev->stats_rx_drop++; + return; + } + + dev->stats_rx_ok++; + + if (dev->parent.rx_indicate) { + dev->parent.rx_indicate(&dev->parent, 1); + } +} + +static rt_err_t edge_ipc_hw_init(struct edge_ipc_device* dev) +{ + cy_en_ipc_pipe_status_t status; + cy_stc_ipc_pipe_config_t ipc_config = { + { .ipcNotifierNumber = EDGE_IPC_LOCAL_INTR, + .ipcNotifierPriority = EDGE_IPC_LOCAL_PRIOR, + .ipcNotifierMuxNumber = EDGE_IPC_LOCAL_MUX, + .epAddress = EDGE_IPC_LOCAL_EP_ADDR, + { .epChannel = EDGE_IPC_LOCAL_CHAN, + .epIntr = EDGE_IPC_LOCAL_INTR, + .epIntrmask = CY_IPC_CYPIPE_INTR_MASK } }, + { .ipcNotifierNumber = EDGE_IPC_PEER_INTR, + .ipcNotifierPriority = EDGE_IPC_PEER_PRIOR, + .ipcNotifierMuxNumber = EDGE_IPC_PEER_MUX, + .epAddress = EDGE_IPC_PEER_EP_ADDR, + { .epChannel = EDGE_IPC_PEER_CHAN, + .epIntr = EDGE_IPC_PEER_INTR, + .epIntrmask = CY_IPC_CYPIPE_INTR_MASK } }, + .endpointClientsCount = CY_IPC_CYPIPE_CLIENT_CNT, + .endpointsCallbacksArray = RT_NULL, + .userPipeIsrHandler = &edge_ipc_pipe_isr + }; + + ipc_config.endpointsCallbacksArray = dev->cb_array; + + Cy_IPC_Pipe_Config(dev->pipe_ep_array); + Cy_IPC_Pipe_Init(&ipc_config); + + status = Cy_IPC_Pipe_RegisterCallback(EDGE_IPC_LOCAL_EP_ADDR, + &edge_ipc_rx_callback, + (uint32_t)EDGE_IPC_LOCAL_CLIENT_ID); + + if (status != CY_IPC_PIPE_SUCCESS) { + return -RT_ERROR; + } + + dev->initialized = RT_TRUE; + return RT_EOK; +} + +static rt_err_t edge_ipc_dev_init(rt_device_t rt_dev) +{ + struct edge_ipc_device* dev = (struct edge_ipc_device*)rt_dev; + + if (dev->initialized) { + return RT_EOK; + } + + return edge_ipc_hw_init(dev); +} + +static rt_err_t edge_ipc_dev_open(rt_device_t rt_dev, rt_uint16_t oflag) +{ + (void)rt_dev; + (void)oflag; + return RT_EOK; +} + +static rt_err_t edge_ipc_dev_close(rt_device_t rt_dev) +{ + (void)rt_dev; + return RT_EOK; +} + +static rt_ssize_t edge_ipc_dev_read(rt_device_t rt_dev, rt_off_t pos, void* buffer, rt_size_t size) +{ + struct edge_ipc_device* dev = (struct edge_ipc_device*)rt_dev; + edge_rc_frame_t* frame = (edge_rc_frame_t*)buffer; + rt_size_t read_cnt = 0; + + (void)pos; + + if (buffer == RT_NULL || size == 0) { + return 0; + } + + while (read_cnt < size) { + if (!edge_ipc_rx_queue_pop(dev, &frame[read_cnt])) { + break; + } + read_cnt++; + } + + return read_cnt; +} + +static rt_ssize_t edge_ipc_dev_write(rt_device_t rt_dev, rt_off_t pos, const void* buffer, rt_size_t size) +{ + struct edge_ipc_device* dev = (struct edge_ipc_device*)rt_dev; + const edge_rc_frame_t* frame = (const edge_rc_frame_t*)buffer; + rt_size_t write_cnt = 0; + cy_en_ipc_pipe_status_t status; + + (void)pos; + + if (buffer == RT_NULL || size == 0) { + return 0; + } + + while (write_cnt < size) { + edge_rc_frame_t* tx; + rt_uint32_t slot = dev->tx_pool_idx++ % EDGE_IPC_FRAME_POOL_SIZE; + + tx = &g_edge_ipc_tx_pool[slot]; + *tx = frame[write_cnt]; + tx->client_id = EDGE_IPC_LOCAL_CLIENT_ID == CM33_IPC_PIPE_CLIENT_ID ? CM55_IPC_PIPE_CLIENT_ID : CM33_IPC_PIPE_CLIENT_ID; + tx->intr_mask = (rt_uint16_t)EDGE_IPC_TX_INTR_MASK; + tx->magic = RC_MAGIC_WORD; + tx->checksum = edge_rc_checksum(tx); + + if (!edge_ipc_lock_sema()) { + dev->stats_sema_fail++; + break; + } + + status = Cy_IPC_Pipe_SendMessage(EDGE_IPC_PEER_EP_ADDR, + EDGE_IPC_LOCAL_EP_ADDR, + (void*)tx, + 0UL); + edge_ipc_unlock_sema(); + + if (status != CY_IPC_PIPE_SUCCESS) { + dev->stats_tx_err++; + break; + } + + dev->stats_tx_ok++; + write_cnt++; + } + + return write_cnt; +} + +static rt_err_t edge_ipc_dev_control(rt_device_t rt_dev, int cmd, void* args) +{ + struct edge_ipc_device* dev = (struct edge_ipc_device*)rt_dev; + + if (cmd == EDGE_IPC_CTRL_GET_STATS) { + edge_ipc_device_stats_t* stats = (edge_ipc_device_stats_t*)args; + + if (stats == RT_NULL) { + return -RT_EINVAL; + } + + stats->tx_ok = dev->stats_tx_ok; + stats->tx_err = dev->stats_tx_err; + stats->rx_ok = dev->stats_rx_ok; + stats->rx_err = dev->stats_rx_err; + stats->rx_drop = dev->stats_rx_drop; + stats->sema_fail = dev->stats_sema_fail; + + return RT_EOK; + } + + return -RT_ENOSYS; +} + +#ifdef RT_USING_DEVICE_OPS +static const struct rt_device_ops edge_ipc_dev_ops = { + edge_ipc_dev_init, + edge_ipc_dev_open, + edge_ipc_dev_close, + edge_ipc_dev_read, + edge_ipc_dev_write, + edge_ipc_dev_control +}; +#endif + +rt_device_t edge_ipc_device_find(void) +{ + return rt_device_find(EDGE_IPC_DEVICE_NAME); +} + +int edge_ipc_device_register(void) +{ + struct edge_ipc_device* dev = &g_edge_ipc_dev; + + rt_memset(dev, 0, sizeof(*dev)); + +#ifdef RT_USING_DEVICE_OPS + dev->parent.ops = &edge_ipc_dev_ops; +#else + dev->parent.init = edge_ipc_dev_init; + dev->parent.open = edge_ipc_dev_open; + dev->parent.close = edge_ipc_dev_close; + dev->parent.read = edge_ipc_dev_read; + dev->parent.write = edge_ipc_dev_write; + dev->parent.control = edge_ipc_dev_control; +#endif + + return rt_device_register(&dev->parent, + EDGE_IPC_DEVICE_NAME, + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX); +} +INIT_PREV_EXPORT(edge_ipc_device_register); diff --git a/libraries/HAL_Drivers/drv_ipc.h b/libraries/HAL_Drivers/drv_ipc.h new file mode 100644 index 00000000..0aa69366 --- /dev/null +++ b/libraries/HAL_Drivers/drv_ipc.h @@ -0,0 +1,46 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ +#ifndef DRV_IPC_H +#define DRV_IPC_H + +#include "ipc_common.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define EDGE_IPC_DEVICE_NAME "ipc0" +#define EDGE_IPC_CTRL_GET_STATS (0x1000) + +typedef struct +{ + rt_uint32_t tx_ok; + rt_uint32_t tx_err; + rt_uint32_t rx_ok; + rt_uint32_t rx_err; + rt_uint32_t rx_drop; + rt_uint32_t sema_fail; +} edge_ipc_device_stats_t; + +rt_device_t edge_ipc_device_find(void); +int edge_ipc_device_register(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libraries/HAL_Drivers/drv_spi.c b/libraries/HAL_Drivers/drv_spi.c index 5bb852fd..fc2fb7e0 100644 --- a/libraries/HAL_Drivers/drv_spi.c +++ b/libraries/HAL_Drivers/drv_spi.c @@ -1,293 +1,245 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. * - * SPDX-License-Identifier: Apache-2.0 + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * Change Logs: - * Date Author Notes - * 2022-07-18 Rbb666 first version - * 2023-03-30 Rbb666 update spi driver - */ + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ -#include +#include "drv_spi.h" -#ifdef RT_USING_SPI +#ifdef BSP_USING_SPI +#include +#include +#include "cy_scb_spi.h" +#include "cy_sysint.h" +#include "mtb_hal_spi.h" -//#define DRV_DEBUG -#define DBG_TAG "drv.spi" -#ifdef DRV_DEBUG - #define DBG_LVL DBG_LOG -#else - #define DBG_LVL DBG_INFO -#endif /* DRV_DEBUG */ -#include +#define GET_PIN(PORTx, PIN) ((((uint8_t)(PORTx)) << 3U) + ((uint8_t)(PIN))) +#define INT_PRIORITY 7u + +struct ifx_spi { + struct rt_spi_bus spi_bus; + const char* name; + + CySCB_Type* base; + cy_stc_scb_spi_config_t runtime_cfg; + const cy_stc_scb_spi_config_t* default_cfg; + const mtb_hal_spi_configurator_t* hal_cfg; + cy_stc_scb_spi_context_t* context; + mtb_hal_spi_t spi_obj; + + uint16_t cs_pin; + + cy_stc_sysint_t intr_cfg; + + uint32_t freq; + struct rt_completion cpt; +}; -#ifdef BSP_USING_SPI0 - static struct rt_spi_bus spi_bus0; -#endif #ifdef BSP_USING_SPI1 - static struct rt_spi_bus spi_bus1; - cy_stc_scb_spi_context_t scb_9_spi_context; -#endif -#ifdef BSP_USING_SPI3 - static struct rt_spi_bus spi_bus3; -#endif -#ifdef BSP_USING_SPI6 - static struct rt_spi_bus spi_bus6; -#endif +static cy_stc_scb_spi_context_t scb_9_spi_context; -static struct ifx_spi_handle spi_bus_obj[] = -{ -#if defined(BSP_USING_SPI0) - { - .bus_name = "spi0", - .sck_pin = GET_PIN(15, 0), - .miso_pin = GET_PIN(15, 2), - .mosi_pin = GET_PIN(15, 1), - }, -#endif -#if defined(BSP_USING_SPI1) - { +extern const cy_stc_scb_spi_config_t CYBSP_SPI_9_config; +extern const mtb_hal_spi_configurator_t CYBSP_SPI_9_hal_config; - .bus_name = "spi1", - .sck_pin = GET_PIN(15, 0), - .miso_pin = GET_PIN(15, 2), - .mosi_pin = GET_PIN(15, 1), +#define scb_9_HW SCB9 +#define scb_9_IRQ scb_9_interrupt_IRQn - .base = scb_9_HW, - .cy_stc_scb_spi_config = &scb_9_config, - .mtb_hal_spi_configurator = &scb_9_hal_config, - .context = &scb_9_spi_context, - .intr_cfg = {.intrSrc = scb_9_IRQ, .intrPriority = INT_PRIORITY }, - }, -#endif -#if defined(BSP_USING_SPI2) - { - .bus_name = "spi2", - .sck_pin = GET_PIN(8, 0), - .miso_pin = GET_PIN(8, 4), - .mosi_pin = GET_PIN(8, 1), - }, +#ifndef BSP_SPI1_CS_PIN +#define BSP_SPI1_CS_PIN GET_PIN(15, 3) #endif -#if defined(BSP_USING_SPI3) - { - .bus_name = "spi3", - .sck_pin = GET_PIN(6, 2), - .miso_pin = GET_PIN(6, 1), - .mosi_pin = GET_PIN(6, 0), - }, #endif -#if defined(BSP_USING_SPI6) + +static struct ifx_spi ifx_spi_obj[] = { +#ifdef BSP_USING_SPI1 { - .bus_name = "spi6", - .sck_pin = GET_PIN(12, 2), - .miso_pin = GET_PIN(12, 1), - .mosi_pin = GET_PIN(12, 0), + .name = "spi1", + .base = scb_9_HW, + .default_cfg = &CYBSP_SPI_9_config, + .hal_cfg = &CYBSP_SPI_9_hal_config, + .context = &scb_9_spi_context, + .cs_pin = BSP_SPI1_CS_PIN, + .intr_cfg = { .intrSrc = scb_9_IRQ, .intrPriority = INT_PRIORITY }, }, #endif }; -static struct ifx_spi spi_config[sizeof(spi_bus_obj) / sizeof(spi_bus_obj[0])] = {0}; - -/* private rt-thread spi ops function */ -static rt_err_t spi_configure(struct rt_spi_device *device, struct rt_spi_configuration *configuration); -static rt_ssize_t spixfer(struct rt_spi_device *device, struct rt_spi_message *message); - -static struct rt_spi_ops ifx_spi_ops = +static void ifx_spi_set_cs(struct ifx_spi* spi, rt_base_t level) { - .configure = spi_configure, - .xfer = spixfer, -}; - + RT_ASSERT(spi); + rt_pin_write(spi->cs_pin, level); +} -static void spi_interrupt_callback() +static void ifx_spi_irq_handler_generic(struct ifx_spi* spi) { rt_interrupt_enter(); - mtb_hal_spi_process_interrupt(spi_bus_obj[0].spi_obj); + mtb_hal_spi_process_interrupt(&spi->spi_obj); + + if (!mtb_hal_spi_is_busy(&spi->spi_obj)) { + rt_completion_done(&spi->cpt); + } rt_interrupt_leave(); } - -static void spi_event_handler(void* handler_arg, mtb_hal_spi_event_t event) +#ifdef BSP_USING_SPI1 +static void ifx_spi1_irq_handler(void) { - rt_kprintf("spi event handler\n"); + ifx_spi_irq_handler_generic(&ifx_spi_obj[0]); } +#endif - -static void ifx_spi_init(struct ifx_spi *spi_device) +static rt_err_t ifx_hw_spi_init(struct ifx_spi* spi) { - RT_ASSERT(spi_device != RT_NULL); - - rt_err_t result = RT_EOK; - - static uint8_t init_flag = 1; - - if (init_flag) - { - - result = Cy_SCB_SPI_Init(spi_device->spi_handle_t->base, spi_device->spi_handle_t->cy_stc_scb_spi_config, spi_device->spi_handle_t->context); - Cy_SCB_SPI_Enable(spi_device->spi_handle_t->base); - result = mtb_hal_spi_setup(spi_device->spi_handle_t->spi_obj, spi_device->spi_handle_t->mtb_hal_spi_configurator, spi_device->spi_handle_t->context, NULL); - Cy_SCB_SPI_SetActiveSlaveSelect(spi_device->spi_handle_t->base, CY_SCB_SPI_SLAVE_SELECT0); + RT_ASSERT(spi); - if (result != RT_EOK) - { - LOG_E("spi%s init fail", spi_device->spi_handle_t->bus_name); - return; - } + /* Configure CS pin as output, set high (inactive) */ + rt_pin_mode(spi->cs_pin, PIN_MODE_OUTPUT); + ifx_spi_set_cs(spi, PIN_HIGH); - Cy_SysInt_Init(&(spi_device->spi_handle_t->intr_cfg), spi_interrupt_callback); - NVIC_EnableIRQ(spi_device->spi_handle_t->intr_cfg.intrSrc); + spi->runtime_cfg = *spi->default_cfg; + if (Cy_SCB_SPI_Init(spi->base, &spi->runtime_cfg, spi->context) != CY_SCB_SPI_SUCCESS) + return -RT_ERROR; + Cy_SCB_SPI_Enable(spi->base); - result = mtb_hal_spi_set_frequency(spi_device->spi_handle_t->spi_obj, spi_device->spi_handle_t->freq); - if (result != CY_RSLT_SUCCESS) - { - LOG_E("%s set frequency fail", spi_device->spi_handle_t->bus_name); - return; - } - LOG_I("[%s] freq:[%d]HZ", spi_device->spi_handle_t->bus_name, spi_device->spi_handle_t->freq); + if (mtb_hal_spi_setup(&spi->spi_obj, spi->hal_cfg, spi->context, NULL) != CY_RSLT_SUCCESS) + return -RT_ERROR; - /* Register a callback function to be called when the interrupt fires */ - mtb_hal_spi_register_callback(spi_device->spi_handle_t->spi_obj, (mtb_hal_spi_event_callback_t)spi_event_handler, NULL); + cy_israddress isr_func = RT_NULL; + if (rt_strcmp(spi->name, "spi1") == 0) + isr_func = ifx_spi1_irq_handler; - /* Enable the events that will trigger the call back function */ - mtb_hal_spi_enable_event(spi_device->spi_handle_t->spi_obj, MTB_HAL_SPI_IRQ_DONE, true); + if (isr_func) { + Cy_SysInt_Init(&spi->intr_cfg, isr_func); + NVIC_EnableIRQ(spi->intr_cfg.intrSrc); } - init_flag = 0; + rt_completion_init(&spi->cpt); + spi->freq = 1000000; + if (mtb_hal_spi_set_frequency(&spi->spi_obj, spi->freq) != CY_RSLT_SUCCESS) + return -RT_ERROR; + + return RT_EOK; } -static rt_err_t spi_configure(struct rt_spi_device *device, - struct rt_spi_configuration *configuration) +static rt_err_t spi_configure(struct rt_spi_device* device, struct rt_spi_configuration* cfg) { - RT_ASSERT(device != RT_NULL); - RT_ASSERT(configuration != RT_NULL); + RT_ASSERT(device); + RT_ASSERT(cfg); - struct ifx_spi *spi_device = rt_container_of(device->bus, struct ifx_spi, spi_bus); + struct ifx_spi* spi = rt_container_of(device->bus, struct ifx_spi, spi_bus); - /* data_width */ - if (configuration->data_width <= 8) - { - spi_device->spi_handle_t->spi_obj->data_bits = 8; - } - else if (configuration->data_width <= 16) - { - spi_device->spi_handle_t->spi_obj->data_bits = 16; - } - else - { - return -RT_EIO; - } + if (cfg->data_width == 0 || cfg->data_width > 16) + return -RT_EINVAL; - uint32_t max_hz; - max_hz = configuration->max_hz; - spi_device->spi_handle_t->freq = max_hz; + spi->spi_obj.data_bits = (cfg->data_width <= 8) ? 8 : 16; + spi->freq = cfg->max_hz; + if (mtb_hal_spi_set_frequency(&spi->spi_obj, spi->freq) != CY_RSLT_SUCCESS) + return -RT_ERROR; - /* MSB or LSB */ - switch (configuration->mode & RT_SPI_MODE_3) - { + spi->runtime_cfg.enableMsbFirst = ((cfg->mode & RT_SPI_MSB) == RT_SPI_MSB) ? true : false; + + switch (cfg->mode & RT_SPI_MODE_3) { case RT_SPI_MODE_0: - spi_device->spi_handle_t->cy_stc_scb_spi_config->sclkMode = CY_SCB_SPI_CPHA0_CPOL0; + spi->runtime_cfg.sclkMode = CY_SCB_SPI_CPHA0_CPOL0; break; case RT_SPI_MODE_1: - spi_device->spi_handle_t->cy_stc_scb_spi_config->sclkMode = CY_SCB_SPI_CPHA0_CPOL1; + spi->runtime_cfg.sclkMode = CY_SCB_SPI_CPHA1_CPOL0; break; case RT_SPI_MODE_2: - spi_device->spi_handle_t->cy_stc_scb_spi_config->sclkMode = CY_SCB_SPI_CPHA1_CPOL0; + spi->runtime_cfg.sclkMode = CY_SCB_SPI_CPHA0_CPOL1; break; case RT_SPI_MODE_3: - spi_device->spi_handle_t->cy_stc_scb_spi_config->sclkMode = CY_SCB_SPI_CPHA1_CPOL1; + spi->runtime_cfg.sclkMode = CY_SCB_SPI_CPHA1_CPOL1; break; } - ifx_spi_init(spi_device); + + Cy_SCB_SPI_Disable(spi->base, spi->context); + if (Cy_SCB_SPI_Init(spi->base, &spi->runtime_cfg, spi->context) != CY_SCB_SPI_SUCCESS) { + rt_kprintf("Cy_SCB_SPI_Init fail!!\n"); + return -RT_ERROR; + } + + Cy_SCB_SPI_Enable(spi->base); return RT_EOK; } -static rt_ssize_t spixfer(struct rt_spi_device *device, struct rt_spi_message *message) +static rt_ssize_t spixfer(struct rt_spi_device* device, struct rt_spi_message* message) { - struct ifx_spi *spi_device = rt_container_of(device->bus, struct ifx_spi, spi_bus); + RT_ASSERT(device); + RT_ASSERT(message); - if (message->cs_take && !(device->config.mode & RT_SPI_NO_CS) && (device->cs_pin != PIN_NONE)) - { - rt_pin_write(device->cs_pin, (device->config.mode & RT_SPI_CS_HIGH) ? PIN_HIGH : PIN_LOW); - } - - int result = RT_EOK; - if (message->length > 0) - { - result = mtb_hal_spi_transfer(spi_device->spi_handle_t->spi_obj, message->send_buf, message->length, message->recv_buf, message->length, 0); - if (result != RT_EOK) - { - rt_kprintf("spi transfer failed.\n"); - } - } + struct ifx_spi* spi = rt_container_of(device->bus, struct ifx_spi, spi_bus); + cy_rslt_t result = CY_RSLT_SUCCESS; + rt_err_t wait_ret = RT_EOK; - if (message->cs_release && !(device->config.mode & RT_SPI_NO_CS) && (device->cs_pin != PIN_NONE)) - { - rt_pin_write(device->cs_pin, (device->config.mode & RT_SPI_CS_HIGH) ? PIN_LOW : PIN_HIGH); + if (message->cs_take && !(device->config.mode & RT_SPI_NO_CS)) { + ifx_spi_set_cs(spi, (device->config.mode & RT_SPI_CS_HIGH) ? PIN_HIGH : PIN_LOW); } - return (result == RT_EOK) ? message->length : -RT_ERROR; -} -/** - * Attach the spi device to SPI bus, this function must be used after initialization. - */ -rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin) -{ - RT_ASSERT(bus_name != RT_NULL); - RT_ASSERT(device_name != RT_NULL); - - rt_err_t result; - struct rt_spi_device *spi_device; + if (message->length > 0) { + if (message->send_buf == RT_NULL && message->recv_buf == RT_NULL) { + result = (cy_rslt_t)-RT_EINVAL; + goto __exit; + } - /* attach the device to spi bus*/ - spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device)); - RT_ASSERT(spi_device != RT_NULL); + mtb_hal_spi_clear(&spi->spi_obj); + rt_completion_init(&spi->cpt); - result = rt_spi_bus_attach_device_cspin(spi_device, device_name, bus_name, cs_pin, RT_NULL); - if (result != RT_EOK) - { - LOG_E("%s attach to %s faild, %d\n", device_name, bus_name, result); + if (message->send_buf == RT_NULL && message->recv_buf != RT_NULL) { + result = mtb_hal_spi_transfer(&spi->spi_obj, RT_NULL, 0x00, message->recv_buf, message->length, 0x00); + } else if (message->send_buf != RT_NULL && message->recv_buf == RT_NULL) { + result = mtb_hal_spi_transfer(&spi->spi_obj, message->send_buf, message->length, RT_NULL, 0x00, 0x00); + } else if (message->send_buf != RT_NULL && message->recv_buf != RT_NULL) { + result = mtb_hal_spi_transfer(&spi->spi_obj, message->send_buf, message->length, message->recv_buf, message->length, 0x00); + } + if (result == CY_RSLT_SUCCESS) { + wait_ret = rt_completion_wait(&spi->cpt, RT_WAITING_FOREVER); + } } - RT_ASSERT(result == RT_EOK); +__exit: + if (message->cs_release && !(device->config.mode & RT_SPI_NO_CS)) { + ifx_spi_set_cs(spi, (device->config.mode & RT_SPI_CS_HIGH) ? PIN_LOW : PIN_HIGH); + } - LOG_D("%s attach to %s done", device_name, bus_name); + if (result != CY_RSLT_SUCCESS || wait_ret != RT_EOK) + return 0; - return result; + return message->length; } -int rt_hw_spi_init(void) -{ - int result = RT_EOK; - - for (int spi_index = 0; spi_index < sizeof(spi_bus_obj) / sizeof(spi_bus_obj[0]); spi_index++) - { - spi_bus_obj[spi_index].spi_obj = rt_malloc(sizeof(mtb_hal_spi_t)); - RT_ASSERT(spi_bus_obj[spi_index].spi_obj != RT_NULL); +static const struct rt_spi_ops ifx_spi_ops = { + .configure = spi_configure, + .xfer = spixfer, +}; - spi_config[spi_index].spi_handle_t = &spi_bus_obj[spi_index]; +static int rt_hw_spi_init(void) +{ + for (int i = 0; i < sizeof(ifx_spi_obj) / sizeof(ifx_spi_obj[0]); i++) { + struct ifx_spi* obj = &ifx_spi_obj[i]; - rt_err_t err = rt_spi_bus_register(&spi_config[spi_index].spi_bus, spi_bus_obj[spi_index].bus_name, &ifx_spi_ops); - if (RT_EOK != err) - { - LOG_E("%s bus register failed.", spi_config[spi_index].spi_handle_t->bus_name); + if (ifx_hw_spi_init(obj) == RT_EOK) { + if (rt_spi_bus_register(&obj->spi_bus, obj->name, &ifx_spi_ops) != RT_EOK) + return -RT_ERROR; + } else { return -RT_ERROR; } - - LOG_D("MOSI PIN:[%d], MISO PIN[%d], CLK PIN[%d]\n", - spi_bus_obj[spi_index].mosi_pin, spi_bus_obj[spi_index].miso_pin, - spi_bus_obj[spi_index].sck_pin); - - /* initialize completion object */ - rt_completion_init(&spi_config[spi_index].cpt); } - - return result; + return RT_EOK; } INIT_BOARD_EXPORT(rt_hw_spi_init); -#endif /* RT_USING_SPI */ + +#endif /* BSP_USING_SPI */ diff --git a/libraries/HAL_Drivers/drv_spi.h b/libraries/HAL_Drivers/drv_spi.h index 78f58f5f..2c53245f 100644 --- a/libraries/HAL_Drivers/drv_spi.h +++ b/libraries/HAL_Drivers/drv_spi.h @@ -1,51 +1,33 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team +/****************************************************************************** + * Copyright 2020-2026 RT-Thread Development Team. All Rights Reserved. * - * SPDX-License-Identifier: Apache-2.0 + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * Change Logs: - * Date Author Notes - * 2022-07-18 Rbb666 first version - */ - -#ifndef __DRV_SPI__ -#define __DRV_SPI__ + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ +#ifndef DRV_SPI_H__ +#define DRV_SPI_H__ #include #include -#include "drv_gpio.h" - -#define INT_PRIORITY 7u - -struct ifx_spi_handle -{ - const char *bus_name; - mtb_hal_spi_t *spi_obj; - - uint16_t sck_pin; - uint16_t miso_pin; - uint16_t mosi_pin; - uint32_t freq; +#include "board.h" - CySCB_Type *base; - cy_stc_scb_spi_config_t *cy_stc_scb_spi_config; - mtb_hal_spi_configurator_t *mtb_hal_spi_configurator; - cy_stc_scb_spi_context_t *context; - cy_stc_sysint_t intr_cfg; -}; - -/* ifx spi dirver class */ -struct ifx_spi -{ - rt_uint32_t cs_pin; - - struct ifx_spi_handle *spi_handle_t; - struct rt_spi_configuration *rt_spi_cfg_t; - struct rt_spi_bus spi_bus; - - struct rt_completion cpt; -}; +#ifdef __cplusplus +extern "C" { +#endif -rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin); +rt_err_t drv_spi_init(void); +#ifdef __cplusplus +} #endif + +#endif /* DRV_SPI_H__ */ diff --git a/libraries/HAL_Drivers/ipc_common.h b/libraries/HAL_Drivers/ipc_common.h new file mode 100644 index 00000000..6677d1d6 --- /dev/null +++ b/libraries/HAL_Drivers/ipc_common.h @@ -0,0 +1,83 @@ +/****************************************************************************** + * Copyright 2020-2026 The RT-Thread Development Team. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ +#ifndef EDGE_IPC_COMMON_H +#define EDGE_IPC_COMMON_H + +#include "cy_ipc_pipe.h" + +#define CY_IPC_MAX_ENDPOINTS (5UL) +#define CY_IPC_CYPIPE_CLIENT_CNT (8UL) + +#define CY_IPC_CHAN_CYPIPE_EP1 (4UL) +#define CY_IPC_INTR_CYPIPE_EP1 (4UL) +#define CY_IPC_CHAN_CYPIPE_EP2 (15UL) +#define CY_IPC_INTR_CYPIPE_EP2 (5UL) + +#define CY_IPC_CYPIPE_CHAN_MASK_EP1 CY_IPC_CH_MASK(CY_IPC_CHAN_CYPIPE_EP1) +#define CY_IPC_CYPIPE_INTR_MASK_EP1 CY_IPC_INTR_MASK(CY_IPC_INTR_CYPIPE_EP1) +#define CY_IPC_INTR_CYPIPE_PRIOR_EP1 (1UL) +#define CY_IPC_INTR_CYPIPE_MUX_EP1 (CY_IPC0_INTR_MUX(CY_IPC_INTR_CYPIPE_EP1)) +#define CM33_IPC_PIPE_EP_ADDR (1UL) +#define CM33_IPC_PIPE_CLIENT_ID (3UL) + +#define CY_IPC_CYPIPE_CHAN_MASK_EP2 CY_IPC_CH_MASK(CY_IPC_CHAN_CYPIPE_EP2) +#define CY_IPC_CYPIPE_INTR_MASK_EP2 CY_IPC_INTR_MASK(CY_IPC_INTR_CYPIPE_EP2) +#define CY_IPC_INTR_CYPIPE_PRIOR_EP2 (1UL) +#define CY_IPC_INTR_CYPIPE_MUX_EP2 (CY_IPC0_INTR_MUX(CY_IPC_INTR_CYPIPE_EP2)) +#define CM55_IPC_PIPE_EP_ADDR (2UL) +#define CM55_IPC_PIPE_CLIENT_ID (5UL) + +#define CY_IPC_CYPIPE_INTR_MASK (CY_IPC_CYPIPE_CHAN_MASK_EP1 | CY_IPC_CYPIPE_CHAN_MASK_EP2) +#define IPC_DEMO_SEMA_NUM (48UL) + +#define RC_CHANNEL_COUNT (8U) +#define RC_MAGIC_WORD (0x5243444DU) +#define RC_ROLE_M33 (0x33U) +#define RC_ROLE_M55_ECHO (0x55U) + +/* Stress-test tuning knobs */ +#define EDGE_IPC_FRAME_POOL_SIZE (64U) +#define EDGE_IPC_ECHO_QUEUE_SIZE (64U) +#define EDGE_IPC_STRESS_HZ (1000U) +#define EDGE_IPC_STRESS_BURST (4U) +#define EDGE_IPC_SEMA_RETRY_MAX (2U) +#define EDGE_IPC_PRINT_INTERVAL_MS (1000U) + +typedef struct +{ + uint8_t client_id; + uint16_t intr_mask; + uint8_t role; + uint32_t magic; + uint32_t seq; + uint16_t channel[RC_CHANNEL_COUNT]; + uint32_t checksum; +} edge_rc_frame_t; + +static inline uint32_t edge_rc_checksum(const edge_rc_frame_t* frame) +{ + uint32_t sum = frame->magic ^ frame->role ^ frame->seq; + uint32_t i; + + for (i = 0; i < RC_CHANNEL_COUNT; i++) { + sum ^= ((uint32_t)frame->channel[i] << (i & 0x7)); + sum = (sum << 3) | (sum >> 29); + } + + return sum; +} + +#endif diff --git a/libraries/M33_Config/Kconfig b/libraries/M33_Config/Kconfig index c1926fff..94bdbe9d 100644 --- a/libraries/M33_Config/Kconfig +++ b/libraries/M33_Config/Kconfig @@ -91,14 +91,17 @@ menu "On-chip Peripheral Drivers" menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_PIN + select RT_USING_SPI default n if BSP_USING_SPI config BSP_USING_SPI1 - bool "Enable SPI1" - default n - config BSP_USING_SPI2 - bool "Enable SPI2" + bool "Enable SPI1 (SCB9)" default n + if BSP_USING_SPI1 + config BSP_SPI1_CS_PIN + int "SPI1 CS PIN number" + default 123 + endif endif menuconfig BSP_USING_ADC @@ -111,6 +114,23 @@ menu "On-chip Peripheral Drivers" default n endif + menuconfig BSP_USING_CANFD + bool "Enable CANFD" + select RT_USING_CAN + default n + if BSP_USING_CANFD + config BSP_USING_CANFD0 + bool "Enable CANFD0" + default n + config BSP_USING_CANFD1 + bool "Enable CANFD1" + default n + endif + + config BSP_USING_IPC + bool "Enable IPC" + default n + menuconfig BSP_USING_I2C bool "Enable I2C" default n diff --git a/libraries/M55_Config/Kconfig b/libraries/M55_Config/Kconfig index ecfb9660..e5204f4b 100644 --- a/libraries/M55_Config/Kconfig +++ b/libraries/M55_Config/Kconfig @@ -82,14 +82,17 @@ menu "On-chip Peripheral Drivers" menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_PIN + select RT_USING_SPI default n if BSP_USING_SPI config BSP_USING_SPI1 - bool "Enable SPI1" - default n - config BSP_USING_SPI2 - bool "Enable SPI2" + bool "Enable SPI1 (SCB9)" default n + if BSP_USING_SPI1 + config BSP_SPI1_CS_PIN + int "SPI1 CS PIN number" + default 123 + endif endif menuconfig BSP_USING_ADC @@ -102,6 +105,23 @@ menu "On-chip Peripheral Drivers" default n endif + menuconfig BSP_USING_CANFD + bool "Enable CANFD" + select RT_USING_CAN + default n + if BSP_USING_CANFD + config BSP_USING_CANFD0 + bool "Enable CANFD0" + default n + config BSP_USING_CANFD1 + bool "Enable CANFD1" + default n + endif + + config BSP_USING_IPC + bool "Enable IPC" + default n + menuconfig BSP_USING_I2C bool "Enable I2C" default n diff --git a/libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript b/libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript index 65b7ccd3..2280d37c 100644 --- a/libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript +++ b/libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript @@ -65,6 +65,9 @@ if GetDepend(['RT_USING_PWM']): if GetDepend(['RT_USING_SPI']): src += ['drivers/source/cy_scb_spi.c'] +if GetDepend(['RT_USING_CAN']): + src += ['drivers/source/cy_canfd.c'] + if GetDepend('BSP_USING_LCD'): src += Split(''' drivers/source/cy_mipidsi.c diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.config b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.config new file mode 100644 index 00000000..dcc0de6f --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.config @@ -0,0 +1,1399 @@ +# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_AMP is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=8 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_HOOK_USING_FUNC_PTR=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=1024 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 + +# +# kservice optimization +# +CONFIG_RT_KSERVICE_USING_STDLIB=y +# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +# CONFIG_RT_USING_TINY_FFS is not set +# CONFIG_RT_KPRINTF_USING_LONGLONG is not set +# end of kservice optimization + +CONFIG_RT_USING_DEBUG=y +CONFIG_RT_DEBUGING_COLOR=y +CONFIG_RT_DEBUGING_CONTEXT=y +# CONFIG_RT_DEBUGING_INIT is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +CONFIG_RT_USING_MEMHEAP=y +CONFIG_RT_MEMHEAP_FAST_MODE=y +# CONFIG_RT_MEMHEAP_BEST_MODE is not set +# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set +CONFIG_RT_USING_MEMHEAP_AS_HEAP=y +CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_DM is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=1024 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart5" +# end of Kernel Device Object + +CONFIG_RT_VER_NUM=0x50002 +# CONFIG_RT_USING_STDC_ATOMIC is not set +# end of RT-Thread Kernel + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +CONFIG_FINSH_USING_OPTION_COMPLETION=y + +# +# DFS: device virtual file system +# +CONFIG_RT_USING_DFS=y +CONFIG_DFS_USING_POSIX=y +CONFIG_DFS_USING_WORKDIR=y +# CONFIG_RT_USING_DFS_MNTTABLE is not set +CONFIG_DFS_FD_MAX=16 +CONFIG_RT_USING_DFS_V1=y +# CONFIG_RT_USING_DFS_V2 is not set +CONFIG_DFS_FILESYSTEMS_MAX=4 +CONFIG_DFS_FILESYSTEM_TYPES_MAX=4 +CONFIG_RT_USING_DFS_ELMFAT=y + +# +# elm-chan's FatFs, Generic FAT Filesystem Module +# +CONFIG_RT_DFS_ELM_CODE_PAGE=437 +CONFIG_RT_DFS_ELM_WORD_ACCESS=y +# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set +CONFIG_RT_DFS_ELM_USE_LFN_3=y +CONFIG_RT_DFS_ELM_USE_LFN=3 +CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y +# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set +CONFIG_RT_DFS_ELM_LFN_UNICODE=0 +CONFIG_RT_DFS_ELM_MAX_LFN=255 +CONFIG_RT_DFS_ELM_DRIVES=2 +CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512 +# CONFIG_RT_DFS_ELM_USE_ERASE is not set +CONFIG_RT_DFS_ELM_REENTRANT=y +CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000 +# end of elm-chan's FatFs, Generic FAT Filesystem Module + +CONFIG_RT_USING_DFS_DEVFS=y +# CONFIG_RT_USING_DFS_ROMFS is not set +# CONFIG_RT_USING_DFS_CROMFS is not set +# CONFIG_RT_USING_DFS_RAMFS is not set +# CONFIG_RT_USING_DFS_TMPFS is not set +# CONFIG_RT_USING_DFS_MQUEUE is not set +# end of DFS: device virtual file system + +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_UNAMED_PIPE_NUMBER=64 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=128 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_NULL is not set +# CONFIG_RT_USING_ZERO is not set +# CONFIG_RT_USING_RANDOM is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_FDT is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_LCD is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_DEV_BUS is not set +# CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_VIRTIO is not set +# CONFIG_RT_USING_KTIME is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB +# end of Device Drivers + +# +# C/C++ and POSIX layer +# + +# +# ISO-ANSI C layer +# + +# +# Timezone and Daylight Saving Time +# +# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set +CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y +CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8 +CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0 +CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 +# end of Timezone and Daylight Saving Time +# end of ISO-ANSI C layer + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# end of Interprocess Communication (IPC) +# end of POSIX (Portable Operating System Interface) layer + +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C/C++ and POSIX layer + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set +# end of Network + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_VAR_EXPORT is not set +# CONFIG_RT_USING_RESOURCE_ID is not set +# CONFIG_RT_USING_ADT is not set +# CONFIG_RT_USING_RT_LINK is not set +# end of Utilities + +# CONFIG_RT_USING_VBUS is not set +# end of RT-Thread Components + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set +# end of RT-Thread Utestcases + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set +# CONFIG_PKG_USING_ESP_HOSTED is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set + +# +# CYW43012 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# end of CYW43012 WiFi + +# +# BL808 WiFi +# +# CONFIG_PKG_USING_WLAN_BL808 is not set +# end of BL808 WiFi + +# +# CYW43439 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43439 is not set +# end of CYW43439 WiFi +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_BT_CYW43012 is not set +# CONFIG_PKG_USING_CYW43XX is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_RYANMQTT is not set +# CONFIG_PKG_USING_RYANW5500 is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set +# CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set +# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set +# CONFIG_PKG_USING_LHC_MODBUS is not set +# CONFIG_PKG_USING_QMODBUS is not set +# CONFIG_PKG_USING_PNET is not set +# CONFIG_PKG_USING_OPENER is not set +# CONFIG_PKG_USING_FREEMQTT is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# CONFIG_PKG_USING_RYAN_JSON is not set +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# end of XML: Extensible Markup Language + +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# end of u8g2: a monochrome graphic library + +# CONFIG_PKG_USING_NES_SIMULATOR is not set +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_VECTOR is not set +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_MCOREDUMP is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set +# CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_ZDEBUG is not set +# CONFIG_PKG_USING_RVBACKTRACE is not set +# CONFIG_PKG_USING_HPATCHLITE is not set +# CONFIG_PKG_USING_THREAD_METRIC is not set +# CONFIG_PKG_USING_UORB is not set +# CONFIG_PKG_USING_RT_TUNNEL is not set +# CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set +# end of enhanced kernel services + +# CONFIG_PKG_USING_AUNITY is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_CORE is not set +# CONFIG_PKG_USING_CMSIS_NN is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# end of Micrium: Micrium software products porting for RT-Thread + +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set +# CONFIG_PKG_USING_LITEOS_SDK is not set +# CONFIG_PKG_USING_TZ_DATABASE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FILEX is not set +# CONFIG_PKG_USING_LEVELX is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RPMSG_LITE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_CHERRYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set +# CONFIG_PKG_USING_AGILE_UPGRADE is not set +# CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set +# CONFIG_PKG_USING_TASK_MSG_BUS is not set +# CONFIG_PKG_USING_UART_FRAMEWORK is not set +# CONFIG_PKG_USING_SFDB is not set +# CONFIG_PKG_USING_RTP is not set +# CONFIG_PKG_USING_REB is not set +# CONFIG_PKG_USING_RMP is not set +# CONFIG_PKG_USING_R_RHEALSTONE is not set +# CONFIG_PKG_USING_HEARTBEAT is not set +# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set +# CONFIG_PKG_USING_CHERRYECAT is not set +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set +# CONFIG_PKG_USING_INFINEON_CMSIS is not set +# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set +# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set +# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set +# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set +# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set +# CONFIG_PKG_USING_INFINEON_USBDEV is not set +# end of Infineon HAL Packages + +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_ESP_IDF is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# end of Kendryte SDK + +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set +# CONFIG_PKG_USING_MM32 is not set + +# +# WCH HAL & SDK Drivers +# +# CONFIG_PKG_USING_CH32V20x_SDK is not set +# CONFIG_PKG_USING_CH32V307_SDK is not set +# end of WCH HAL & SDK Drivers + +# +# AT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set +# end of AT32 HAL & SDK Drivers + +# +# HC32 DDL Drivers +# +# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set +# end of HC32 DDL Drivers + +# +# NXP HAL & SDK Drivers +# +# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set +# end of NXP HAL & SDK Drivers + +# +# NUVOTON Drivers +# +# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set +# end of NUVOTON Drivers + +# +# GD32 Drivers +# +# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32_RISCV_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32VW55X_WIFI is not set +# end of GD32 Drivers + +# +# HPMicro SDK +# +# CONFIG_PKG_USING_HPM_SDK is not set +# end of HPMicro SDK + +# +# FT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_FT32F0_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set +# end of FT32 HAL & SDK Drivers +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# CONFIG_PKG_USING_LSM6DSM is not set +# CONFIG_PKG_USING_LSM6DSL is not set +# CONFIG_PKG_USING_LPS22HB is not set +# CONFIG_PKG_USING_HTS221 is not set +# CONFIG_PKG_USING_LSM303AGR is not set +# CONFIG_PKG_USING_BME280 is not set +# CONFIG_PKG_USING_BME680 is not set +# CONFIG_PKG_USING_BMA400 is not set +# CONFIG_PKG_USING_BMI160_BMX160 is not set +# CONFIG_PKG_USING_SPL0601 is not set +# CONFIG_PKG_USING_MS5805 is not set +# CONFIG_PKG_USING_DA270 is not set +# CONFIG_PKG_USING_DF220 is not set +# CONFIG_PKG_USING_HSHCAL001 is not set +# CONFIG_PKG_USING_BH1750 is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_TSL4531 is not set +# CONFIG_PKG_USING_DS18B20 is not set +# CONFIG_PKG_USING_DHT11 is not set +# CONFIG_PKG_USING_DHTXX is not set +# CONFIG_PKG_USING_GY271 is not set +# CONFIG_PKG_USING_GP2Y10 is not set +# CONFIG_PKG_USING_SGP30 is not set +# CONFIG_PKG_USING_HDC1000 is not set +# CONFIG_PKG_USING_BMP180 is not set +# CONFIG_PKG_USING_BMP280 is not set +# CONFIG_PKG_USING_SHTC1 is not set +# CONFIG_PKG_USING_BMI088 is not set +# CONFIG_PKG_USING_HMC5883 is not set +# CONFIG_PKG_USING_MAX6675 is not set +# CONFIG_PKG_USING_MAX31855 is not set +# CONFIG_PKG_USING_TMP1075 is not set +# CONFIG_PKG_USING_SR04 is not set +# CONFIG_PKG_USING_CCS811 is not set +# CONFIG_PKG_USING_PMSXX is not set +# CONFIG_PKG_USING_RT3020 is not set +# CONFIG_PKG_USING_MLX90632 is not set +# CONFIG_PKG_USING_MLX90382 is not set +# CONFIG_PKG_USING_MLX90384 is not set +# CONFIG_PKG_USING_MLX90393 is not set +# CONFIG_PKG_USING_MLX90392 is not set +# CONFIG_PKG_USING_MLX90394 is not set +# CONFIG_PKG_USING_MLX90396 is not set +# CONFIG_PKG_USING_MLX90397 is not set +# CONFIG_PKG_USING_MS5611 is not set +# CONFIG_PKG_USING_MAX31865 is not set +# CONFIG_PKG_USING_VL53L0X is not set +# CONFIG_PKG_USING_INA260 is not set +# CONFIG_PKG_USING_MAX30102 is not set +# CONFIG_PKG_USING_INA226 is not set +# CONFIG_PKG_USING_LIS2DH12 is not set +# CONFIG_PKG_USING_HS300X is not set +# CONFIG_PKG_USING_ZMOD4410 is not set +# CONFIG_PKG_USING_ISL29035 is not set +# CONFIG_PKG_USING_MMC3680KJ is not set +# CONFIG_PKG_USING_QMP6989 is not set +# CONFIG_PKG_USING_BALANCE is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_SHT4X is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set +# CONFIG_PKG_USING_P3T1755 is not set +# CONFIG_PKG_USING_QMI8658 is not set +# CONFIG_PKG_USING_ICM20948 is not set +# CONFIG_PKG_USING_SCD4X is not set +# end of sensors drivers + +# +# touch drivers +# +# CONFIG_PKG_USING_GT9147 is not set +# CONFIG_PKG_USING_GT1151 is not set +# CONFIG_PKG_USING_GT917S is not set +# CONFIG_PKG_USING_GT911 is not set +# CONFIG_PKG_USING_FT6206 is not set +# CONFIG_PKG_USING_FT5426 is not set +# CONFIG_PKG_USING_FT6236 is not set +# CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set +# CONFIG_PKG_USING_CST812T is not set +# end of touch drivers + +# CONFIG_PKG_USING_LCD_SPI_DRIVER is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set +# CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set +# CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_ST7789 is not set +# CONFIG_PKG_USING_VS1003 is not set +# CONFIG_PKG_USING_X9555 is not set +# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set +# CONFIG_PKG_USING_BT_MX01 is not set +# CONFIG_PKG_USING_RGPOWER is not set +# CONFIG_PKG_USING_BT_MX02 is not set +# CONFIG_PKG_USING_GC9A01 is not set +# CONFIG_PKG_USING_IK485 is not set +# CONFIG_PKG_USING_SERVO is not set +# CONFIG_PKG_USING_SEAN_WS2812B is not set +# CONFIG_PKG_USING_IC74HC165 is not set +# CONFIG_PKG_USING_IST8310 is not set +# CONFIG_PKG_USING_ST7789_SPI is not set +# CONFIG_PKG_USING_CAN_UDS is not set +# CONFIG_PKG_USING_ISOTP_C is not set +# CONFIG_PKG_USING_IKUNLED is not set +# CONFIG_PKG_USING_INS5T8025 is not set +# CONFIG_PKG_USING_IRUART is not set +# CONFIG_PKG_USING_ST7305 is not set +# CONFIG_PKG_USING_TM1668 is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set +# end of peripheral libraries and drivers + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set +# CONFIG_PKG_USING_R_TINYMAIX is not set +# CONFIG_PKG_USING_LLMCHAT is not set +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# CONFIG_PKG_USING_APID is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set +# end of entertainment: terminal games and other interesting software packages + +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_RALARAM is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LIBCRC is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set +# CONFIG_PKG_USING_QPARAM is not set +# CONFIG_PKG_USING_CorevMCU_CLI is not set +# CONFIG_PKG_USING_DRMP is not set +# end of miscellaneous packages + +# +# Arduino libraries +# +# CONFIG_PKG_USING_RTDUINO is not set + +# +# Projects and Demos +# +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set +# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set +# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set +# end of Projects and Demos + +# +# Sensors +# +# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set +# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set +# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set +# end of Sensors + +# +# Display +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set +# CONFIG_PKG_USING_SEEED_TM1637 is not set +# end of Display + +# +# Timing +# +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set +# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set +# end of Timing + +# +# Data Processing +# +# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set +# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set +# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set +# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set +# end of Communication + +# +# Device Control +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# end of Device Control + +# +# Other +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# end of Other + +# +# Signal IO +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +# CONFIG_RT_CHERRYUSB_DEVICE is not set +# CONFIG_RT_CHERRYUSB_HOST is not set + +# +# Hardware Drivers Config +# + +# +# Select SOC Multi Core Mode +# +CONFIG_SOC_Enable_CM55=y +# CONFIG_SOC_Enable_CM33_DeepSleep is not set +# end of Select SOC Multi Core Mode + +CONFIG_SOC_SERIES_IFX_PSOCE84=y +CONFIG_KIT_PROCE84_EVK_M33=y + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_USB_TO_UART=y +# CONFIG_BSP_USING_AUDIO is not set +# CONFIG_BSP_USING_AHT20 is not set +# CONFIG_BSP_USING_USB is not set +# CONFIG_BSP_USING_FREERTOS is not set +# CONFIG_BSP_USING_LSM6DS3 is not set +# end of Onboard Peripheral Drivers + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_CANFD is not set +CONFIG_BSP_USING_IPC=y +# CONFIG_BSP_USING_I2C is not set +CONFIG_BSP_USING_UART=y +# CONFIG_BSP_USING_UART1 is not set +CONFIG_BSP_USING_UART2=y +CONFIG_BSP_USING_UART5=y +# CONFIG_BSP_USING_RTC is not set +# CONFIG_BSP_USING_HYPERAM is not set +# CONFIG_BSP_USING_PWM is not set +# CONFIG_BSP_USING_TIM is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_SDIO is not set +# CONFIG_BSP_USING_LCD is not set +# CONFIG_BSP_USING_FILESYSTEM is not set +# CONFIG_USING_LVGL is not set +# end of On-chip Peripheral Drivers +# end of Hardware Drivers Config diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.cproject b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.cproject new file mode 100644 index 00000000..d0ad74f6 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.cproject @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.gitignore b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.gitignore new file mode 100644 index 00000000..3e1f4fd4 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h +/makefile.targets +!proj_cm33_s_signed.hex \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.project b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.project new file mode 100644 index 00000000..6aa897cc --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.project @@ -0,0 +1,29 @@ + + + project + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + com.cypress.studio.app.cymodusnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + Edgi_Talk_M33_IPC + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.OpenOCD.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.OpenOCD.Debug.rttlaunch new file mode 100644 index 00000000..5bb288b6 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.OpenOCD.Debug.rttlaunch @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.rtmenus b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.rtmenus new file mode 100644 index 00000000..648fcc38 Binary files /dev/null and b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/.rtmenus differ diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.DAPLink.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.DAPLink.Debug.rttlaunch new file mode 100644 index 00000000..ad8f3686 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.DAPLink.Debug.rttlaunch @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.OpenOCD.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.OpenOCD.Debug.rttlaunch new file mode 100644 index 00000000..84d42e9f --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/Edgi_Talk_M33_IPC.OpenOCD.Debug.rttlaunch @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs new file mode 100644 index 00000000..09800d8f --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +toolchain.path.1287942917=${toolchain_install_path}/ARM/GNU_Tools_for_ARM_Embedded_Processors/13.3/bin diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/language.settings.xml b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/language.settings.xml new file mode 100644 index 00000000..3f166b47 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/local_temp_storage.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/local_temp_storage.prefs new file mode 100644 index 00000000..2be04c38 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/local_temp_storage.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +temp.toolchain.exec.path=E\:\\SomeIDE\\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\13.3/bin diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/org.eclipse.core.runtime.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..9f1acfcf --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +content-types/enabled=true +content-types/org.eclipse.cdt.core.asmSource/file-extensions=s +eclipse.preferences.version=1 \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/projcfg.ini b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/projcfg.ini new file mode 100644 index 00000000..dd44fc02 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/.settings/projcfg.ini @@ -0,0 +1,20 @@ +#RT-Thread Studio Project Configuration +#Thu Mar 26 17:40:16 CST 2026 +project_type=rt-thread +chip_name=CY8C624ALQI_S2D42 +os_branch=full +example_name= +os_version=latest +selected_rtt_version=latest +cfg_version=v3.0 +board_base_nano_proj=False +is_use_scons_build=True +output_project_path=D\:\\Desktop\\Talk\\sdk-bsp-psoc_e84-edgi-talk\\projects\\Edgi_Talk_IPC +project_base_bsp=true +hardware_adapter=KitProg3 +project_name=Edgi_Talk_M33_IPC +is_base_example_project=True +board_name=psoce84 +device_vendor=Infineon +bsp_version=1.0.0 +bsp_path=repo/Extract/Board_Support_Packages/Infineon/PSOC62-IFX-PROTO-KIT/1.0.0 diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/Kconfig b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/Kconfig new file mode 100644 index 00000000..4e0bfdd5 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/Kconfig @@ -0,0 +1,34 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "rt-thread" + +# you can change the RTT_ROOT default "rt-thread" +# example : default "F:/git_repositories/rt-thread" + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +config ENV_DIR + string + option env="ENV_ROOT" + default "/" + +config PLATFORM_DIR + string + option env="PLATFORM_DIR" + default "D:/Desktop/Talk/sdk-bsp-psoc_e84-edgi-talk/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/platform" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "$RTT_DIR/../libraries/components/CherryUSB-1.6.0/Kconfig.rtt" +source "$RTT_DIR/../libraries/M33_Config/Kconfig" diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README.md b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README.md new file mode 100644 index 00000000..4aa74e2e --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README.md @@ -0,0 +1,204 @@ +# Edgi_Talk_M33_IPC Dual-Core Communication Example Project + +[**中文**](./README_zh.md) | **English** + +## Overview + +This project implements **IPC (Inter-Processor Communication)** dual-core communication on the **Edgi-Talk M33 core**, demonstrating message passing between **Cortex-M33** and **Cortex-M55**. + +M33 acts as the **sender**, periodically sending "Hello M33" messages to M55 and receiving "Hello M55" replies. + +## Default Configuration + +* Communication frequency: 1000ms +* Message format: ASCII encoded text messages +* Uses Infineon PSoC E84 on-chip IPC Pipe hardware + +## Build and Flash + +1. Build the project using RT-Thread Studio or SCons. +2. Flash firmware to M33 core via KitProg3 (DAP). +3. Both M33 and M55 projects must be built and flashed for dual-core communication. +4. Connect serial port to view communication logs as shown below: + +![alt text](figures/1.png) + +## Important Notes + +### Serial Connection + +This project uses **UART5** as the debug serial port. An external **CH340 USB-to-Serial module** is required: + +* **Serial Port**: UART5 +* **Baud Rate**: 115200 +* **Data Bits**: 8 +* **Stop Bits**: 1 +* **Parity**: None + +### CH340 Module Connection + +Connect the CH340 module to the development board as follows: + +**Connection Diagram**: + +![serial_connection](figures/2.png) + +> ⚠️ **Important Notes**: +> 1. TX and RX must be cross-connected (CH340 TX to board RX) +> 2. Ensure GND is common between both devices + +## Usage + +### 1. Configuration and Build + +Open in RT-Thread Studio: + +``` +RT-Thread Settings -> Hardware Drivers Config -> On-chip Peripheral Drivers +``` + +Check `Enable IPC` option. + +### 2. Run Example + +**Step 1: Start M55 Receiver** + +In M55 serial terminal, type: + +``` +msh> ipc_test_run +``` + +M55 will enter listening mode, waiting for messages from M33. + +**Step 2: Start M33 Sender** + +In M33 serial terminal, type: + +``` +msh> ipc_test_run +``` + +M33 will start sending "Hello M33" messages every second and receive "Hello M55" replies. + +### 3. Observe Output + +**M33 Output Example**: + +``` +======================================== +[M33] IPC Demo Started +---------------------------------------- +Mode: Sender +Target: Cortex-M55 +Message: Hello M33 +Interval: 1000 ms +======================================== + +[M33] TX -> [M55]: "Hello M33" | Seq: 1 | Time: 1234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 1 | Time: 1256 ms +[M33] TX -> [M55]: "Hello M33" | Seq: 2 | Time: 2234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 2 | Time: 2256 ms +---------------------------------------- +[M33] Statistics: TX=10, RX=10 +---------------------------------------- +``` + +**M55 Output Example**: + +``` +======================================== +[M55] IPC Listener Running +---------------------------------------- +Mode: Receiver & Responder +Peer: Cortex-M33 +Response: Hello M55 +======================================== + +[M55] RX <- [M33]: "Hello M33" | Seq: 1 | Time: 1250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 1 | Time: 1252 ms +[M55] RX <- [M33]: "Hello M33" | Seq: 2 | Time: 2250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 2 | Time: 2252 ms +---------------------------------------- +[M55] Statistics: RX=10, TX=10 +---------------------------------------- +``` + +## Data Protocol + +IPC communication uses the `edge_rc_frame_t` structure: + +```c +typedef struct { + uint8_t client_id; // Client ID + uint16_t intr_mask; // Interrupt mask + uint8_t role; // Role identifier (M33/M55_ECHO) + uint32_t magic; // Magic word (0x5243444DU) + uint32_t seq; // Sequence number + uint16_t channel[8]; // 8-channel data (stores ASCII messages) + uint32_t checksum; // Checksum +} edge_rc_frame_t; +``` + +Message "Hello M33" encoding: + +```c +channel[0] = 0x4865 /* 'He' */ +channel[1] = 0x6C6C /* 'll' */ +channel[2] = 0x6F20 /* 'o ' (space) */ +channel[3] = 0x4D33 /* 'M3' */ +channel[4] = 0x0033 /* '3' */ +``` + +## Startup Sequence + +M55 depends on M33 boot flow. Flash in this order: + +``` ++------------------+ +| Secure M33 | +| (Secure Core) | ++------------------+ + | + v ++------------------+ +| M33 | +| (IPC Sender) | ++------------------+ + | + v ++-------------------+ +| M55 | +| (IPC Receiver) | ++-------------------+ +``` + +## Hardware Connection + +This example uses Infineon PSoC E84 on-chip IPC hardware: + +* Uses IPC Pipe hardware in CM0P +* CM33 uses EP1 (Endpoint 1) +* CM55 uses EP2 (Endpoint 2) +* Uses semaphores for mutual exclusion +* No external wiring required + +## Configuration Parameters + +The following parameters can be modified in `libraries/HAL_Drivers/ipc_common.h`: + +* `EDGE_IPC_FRAME_POOL_SIZE`: Transmit buffer pool size (default 64) +* `EDGE_IPC_RX_QUEUE_SIZE`: Receive queue size (default 128) +* `EDGE_IPC_SEMA_RETRY_MAX`: Semaphore retry count (default 2) + +## Notes + +* This project targets M33 core as IPC sender. +* For M55 receiver, see [projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README.md](../Edgi_Talk_M55_IPC/README.md). +* IPC driver is located at `libraries/HAL_Drivers/drv_ipc.c`. +* Ensure both cores are configured with `BSP_USING_IPC`. + +## References + +* IPC driver referenced from `D:\Desktop\Fmt\FMT-Firmware\target\infineon\edge-e83` +* Infineon PSoC E84 Technical Reference Manual diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README_zh.md b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README_zh.md new file mode 100644 index 00000000..041b5fea --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/README_zh.md @@ -0,0 +1,192 @@ +# Edgi_Talk_M33_IPC 双核通信示例工程 + +**中文** | [**English**](./README.md) + +## 简介 + +本工程在 **Edgi-Talk M33 核心**上实现 **IPC(Inter-Processor Communication)** 双核通信功能,演示了 **Cortex-M33** 与 **Cortex-M55** 之间的消息传递机制。 + +M33 作为**发送端**,定期向 M55 发送 "Hello M33" 消息,并接收 M55 的 "Hello M55" 回复。 + +## 默认配置 + +* 通信频率:1000ms +* 消息格式:ASCII 编码的文本消息 +* 使用 Infineon PSoC E84 片内 IPC Pipe 硬件 + +## 编译与下载 + +1. 使用 RT-Thread Studio 或 SCons 编译工程。 +2. 通过 KitProg3 (DAP) 下载固件到 M33 核心。 +3. 同时需要编译并下载 M55 工程才能完成双核通信。 +4. 连接串口查看通信日志,输出如下如图: + +![alt text](figures/1.png) + +## 注意事项 + +### 串口连接 + +本工程使用 **UART5** 作为调试串口,需要外接 **CH340 USB 转串��模块**: + +* **串口**: UART5 +* **波特率**: 115200 +* **数据位**: 8 +* **停止位**: 1 +* **校验位**: None + +### CH340 模块连接 + +请按以下方式连接 CH340 模块到开发板: + +**连接位置示意图**: + +![serial_connection](figures/2.png) + +> ⚠️ **重要提示**: +> 1. TX 和 RX 需要交叉连接(CH340 的 TX 接开发板的 RX) +> 2. 确保两个设备的 GND 共地 + +## 使用方法 + +### 1. 配置和编译 + +在 RT-Thread Studio 中打开: + +``` +RT-Thread Settings -> Hardware Drivers Config -> On-chip Peripheral Drivers +``` + +勾选 `Enable IPC` 选项。 + +### 2. 运行示例 + +**第一步:启动 M55 接收端** + +在 M55 的串口终端输入: + +``` +msh> ipc_test_run +``` + +M55 将进入监听模式,等待来自 M33 的消息。 + +**第二步:启动 M33 发送端** + +在 M33 的串口终端输入: + +``` +msh> ipc_test_run +``` + +M33 将开始每秒发送 "Hello M33" 消息,并接收 M55 的 "Hello M55" 回复。 + +### 3. 观察输出 + +**M33 输出示例:** + +``` +======================================== +[M33] IPC Demo Started +---------------------------------------- +Mode: Sender +Target: Cortex-M55 +Message: Hello M33 +Interval: 1000 ms +======================================== + +[M33] TX -> [M55]: "Hello M33" | Seq: 1 | Time: 1234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 1 | Time: 1256 ms +[M33] TX -> [M55]: "Hello M33" | Seq: 2 | Time: 2234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 2 | Time: 2256 ms +---------------------------------------- +[M33] Statistics: TX=10, RX=10 +---------------------------------------- +``` + +**M55 输出示例:** + +``` +======================================== +[M55] IPC Listener Running +---------------------------------------- +Mode: Receiver & Responder +Peer: Cortex-M33 +Response: Hello M55 +======================================== + +[M55] RX <- [M33]: "Hello M33" | Seq: 1 | Time: 1250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 1 | Time: 1252 ms +[M55] RX <- [M33]: "Hello M33" | Seq: 2 | Time: 2250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 2 | Time: 2252 ms +---------------------------------------- +[M55] Statistics: RX=10, TX=10 +---------------------------------------- +``` + +## 数据协议 + +IPC 通信使用 `edge_rc_frame_t` 结构体: + +```c +typedef struct { + uint8_t client_id; // 客户端 ID + uint16_t intr_mask; // 中断掩码 + uint8_t role; // 角色标识 (M33/M55_ECHO) + uint32_t magic; // 魔术字 (0x5243444DU) + uint32_t seq; // 序列号 + uint16_t channel[8]; // 8通道数据(存储 ASCII 消息) + uint32_t checksum; // 校验和 +} edge_rc_frame_t; +``` + +消息 "Hello M33" 编码方式: + +```c +channel[0] = 0x4865 /* 'He' */ +channel[1] = 0x6C6C /* 'll' */ +channel[2] = 0x6F20 /* 'o ' (space) */ +channel[3] = 0x4D33 /* 'M3' */ +channel[4] = 0x0033 /* '3' */ +``` + +## 启动流程 + +M55 依赖 M33 启动流程,烧录顺序如下: + +``` ++------------------+ +| Secure M33 | +| (安全内核启动) | ++------------------+ + | + v ++------------------+ +| M33 | +| (IPC 发送端) | ++------------------+ + | + v ++-------------------+ +| M55 | +| (IPC 接收端) | ++-------------------+ +``` + +## 硬件连接 + +本示例使用 Infineon PSoC E84 的片内 IPC 硬件: + +* 使用 CM0P 中的 IPC Pipe 硬件 +* CM33 使用 EP1 (Endpoint 1) +* CM55 使用 EP2 (Endpoint 2) +* 使用信号量进行互斥访问 +* 不需要外部连线 + +## 配置参数 + +在 `libraries/HAL_Drivers/ipc_common.h` 中可修改以下参数: + +* `EDGE_IPC_FRAME_POOL_SIZE`: 发送缓冲池大小(默认 64) +* `EDGE_IPC_RX_QUEUE_SIZE`: 接收队列大小(默认 128) +* `EDGE_IPC_SEMA_RETRY_MAX`: 信号量重试次数(默认 2) diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConscript new file mode 100644 index 00000000..20f7689c --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConstruct b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConstruct new file mode 100644 index 00000000..2dd5ea16 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/SConstruct @@ -0,0 +1,166 @@ +import os +import sys +import rtconfig +import platform +import subprocess +import uuid + +if os.path.exists('rt-thread'): + RTT_ROOT = os.path.normpath(os.getcwd() + '/rt-thread') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../rt-thread') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except Exception as e: + print("Error message:", e) + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + sys.exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], ENV=os.environ, + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) +env.AppendUnique(CPPPATH=[os.getcwd()]) + +OBJCOPY = os.path.join(rtconfig.EXEC_PATH, 'arm-none-eabi-objcopy') + +if rtconfig.PLATFORM in ['iccarm']: + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') +if os.path.exists(SDK_ROOT + '/libraries/components'): + libraries_path_prefix = SDK_ROOT + '/libraries/components' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/../../libraries/components' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +IFX_library = 'Packages' +rtconfig.BSP_LIBRARY_TYPE = IFX_library + +# set spawn +def ourspawn(sh, escape, cmd, args, e): + filename = str(uuid.uuid4()) + newargs = ' '.join(args[1:]) + cmdline = cmd + " " + newargs + if (len(cmdline) > 16 * 1024): + f = open(filename, 'w') + f.write(' '.join(args[1:]).replace('\\', '/')) + f.close() + # exec + cmdline = cmd + " @" + filename + proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, shell = False, env = e) + data, err = proc.communicate() + rv = proc.wait() + def res_output(_output, _s): + if len(_s): + if isinstance(_s, str): + _output(_s) + elif isinstance(_s, bytes): + _output(str(_s, 'UTF-8')) + else: + _output(str(_s)) + res_output(sys.stderr.write, err) + res_output(sys.stdout.write, data) + if os.path.isfile(filename): + os.remove(filename) + return rv + +if platform.system() == 'Windows': + env['SPAWN'] = ourspawn + +# Add project libs with VariantDir +if os.path.exists(os.path.join(os.getcwd(), "libs", "SConscript")): + env.VariantDir('build/libs', 'libs', duplicate=0) +else: + env.VariantDir('build/libs', '../../libs', duplicate=0) + objs.extend(SConscript('../../libs/SConscript', variant_dir='build/libs', duplicate=0)) + +if os.path.exists(os.path.join(os.getcwd(), "libraries")): + # Set VariantDir for libraries + env.VariantDir('build/libraries/HAL_Drivers', 'libraries/HAL_Drivers', duplicate=0) + env.VariantDir('build/libraries/components', 'libraries/components', duplicate=0) + env.VariantDir('build/libraries/Common/board', 'libraries/Common/board', duplicate=0) + + objs.extend(SConscript('libraries/HAL_Drivers/SConscript', variant_dir='build/libraries/HAL_Drivers', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_cmsis-latest/SConscript', variant_dir='build/libraries/components/Infineon_cmsis-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_core-lib-latest/SConscript', variant_dir='build/libraries/components/Infineon_core-lib-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/hal/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/hal', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/pdl', duplicate=0)) + objs.extend(SConscript('libraries/components/async-transfer/SConscript', variant_dir='build/libraries/components/async-transfer', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm', duplicate=0)) + objs.extend(SConscript('libraries/components/serial-memory/SConscript', variant_dir='build/libraries/components/serial-memory', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_retarget-io-latest/SConscript', variant_dir='build/libraries/components/Infineon_retarget-io-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/ASRC/SConscript', variant_dir='build/libraries/components/ASRC', duplicate=0)) + objs.extend(SConscript('libraries/components/SConscript', variant_dir='build/libraries/components', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-srf/SConscript', variant_dir='build/libraries/components/mtb-srf', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-ipc/SConscript', variant_dir='build/libraries/components/mtb-ipc', duplicate=0)) + objs.extend(SConscript('libraries/components/littlefs/SConscript', variant_dir='build/libraries/components/littlefs', duplicate=0)) + objs.extend(SConscript('libraries/Common/board/SConscript', variant_dir='build/libraries/Common/board', duplicate=0)) +else: + # Set VariantDir for external libraries + env.VariantDir('build/libraries/HAL_Drivers', '../../../libraries/HAL_Drivers', duplicate=0) + env.VariantDir('build/libraries/components', '../../../libraries/components', duplicate=0) + env.VariantDir('build/libraries/Common/board', '../../../libraries/Common/board', duplicate=0) + + objs.extend(SConscript('../../../libraries/HAL_Drivers/SConscript', variant_dir='build/libraries/HAL_Drivers', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_cmsis-latest/SConscript', variant_dir='build/libraries/components/Infineon_cmsis-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_core-lib-latest/SConscript', variant_dir='build/libraries/components/Infineon_core-lib-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/hal/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/hal', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/pdl', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/async-transfer/SConscript', variant_dir='build/libraries/components/async-transfer', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/serial-memory/SConscript', variant_dir='build/libraries/components/serial-memory', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_retarget-io-latest/SConscript', variant_dir='build/libraries/components/Infineon_retarget-io-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/ASRC/SConscript', variant_dir='build/libraries/components/ASRC', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/SConscript', variant_dir='build/libraries/components', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-srf/SConscript', variant_dir='build/libraries/components/mtb-srf', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-ipc/SConscript', variant_dir='build/libraries/components/mtb-ipc', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/littlefs/SConscript', variant_dir='build/libraries/components/littlefs', duplicate=0)) + objs.extend(SConscript('../../../libraries/Common/board/SConscript', variant_dir='build/libraries/Common/board', duplicate=0)) + +# make a building +DoBuilding(TARGET, objs) + +# Generate HEX file +DEBUG_DIR = 'build' +if not os.path.exists(DEBUG_DIR): + os.makedirs(DEBUG_DIR) +hex_file = env.Command(DEBUG_DIR + '/rtthread.hex', TARGET, OBJCOPY + ' -O ihex $SOURCE $TARGET') + +# Secure image packaging using edgeprotecttools (Windows only) +if platform.system() == 'Windows': + # SDK_ROOT is the project directory, go up 3 levels to reach sdk-bsp root + SDK_BSP_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(SDK_ROOT))) + EDGEPROTECTTOOLS = os.path.join(SDK_BSP_ROOT, 'tools', 'edgeprotecttools', 'bin', 'edgeprotecttools.exe') + BOOT_CONFIG = os.path.join(SDK_ROOT, 'config', 'boot_with_extended_boot_scons.json') + + if os.path.exists(EDGEPROTECTTOOLS) and os.path.exists(BOOT_CONFIG): + secure_image = env.Command( + 'secure_image', # Pseudo target + hex_file, + '"' + EDGEPROTECTTOOLS + '" run-config -i "' + BOOT_CONFIG + '"' + ) + else: + print("edgeprotecttools or boot config not found, skipping secure image packaging") + print("EDGEPROTECTTOOLS:", EDGEPROTECTTOOLS) + print("BOOT_CONFIG:", BOOT_CONFIG) diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/SConscript new file mode 100644 index 00000000..034056ec --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/SConscript @@ -0,0 +1,16 @@ +import rtconfig +from building import * +import os + +cwd = GetCurrentDir() +path = [cwd] +src = Glob('*.c') + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = path) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) + +Return('group') diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/main.c b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/main.c new file mode 100644 index 00000000..9fba07b5 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/applications/main.c @@ -0,0 +1,139 @@ +#include +#include +#include +#include + +#include "drv_ipc.h" + +#define LED_PIN_B GET_PIN(16, 5) +#define MSG_INTERVAL_MS (1000U) + +static void ipc_test_run(void) +{ + rt_device_t ipc_dev; + edge_rc_frame_t tx_frame; + edge_rc_frame_t rx_frame; + rt_uint32_t seq = 0; + rt_tick_t last_send_tick = 0; + rt_uint32_t tx_count = 0; + rt_uint32_t rx_count = 0; + + /* 查找 IPC 设备 */ + ipc_dev = edge_ipc_device_find(); + if (ipc_dev == RT_NULL) { + if (edge_ipc_device_register() != RT_EOK) { + rt_kprintf("[M33] IPC: Device register failed\r\n"); + return; + } + ipc_dev = edge_ipc_device_find(); + if (ipc_dev == RT_NULL) { + rt_kprintf("[M33] IPC: Device not found\r\n"); + return; + } + } + + /* 打开 IPC 设备 */ + if (rt_device_open(ipc_dev, RT_DEVICE_OFLAG_RDWR) != RT_EOK) { + rt_kprintf("[M33] IPC: Open device failed\r\n"); + return; + } + + rt_kprintf("\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("[M33] IPC Demo Started\r\n"); + rt_kprintf("----------------------------------------\r\n"); + rt_kprintf("Mode: Sender\r\n"); + rt_kprintf("Target: Cortex-M55\r\n"); + rt_kprintf("Message: Hello M33\r\n"); + rt_kprintf("Interval: %d ms\r\n", MSG_INTERVAL_MS); + rt_kprintf("========================================\r\n"); + rt_kprintf("\r\n"); + + last_send_tick = rt_tick_get(); + + while (1) { + /* 定时发送消息 */ + if ((rt_tick_get() - last_send_tick) >= rt_tick_from_millisecond(MSG_INTERVAL_MS)) { + /* 准备发送消息 - "Hello M33" */ + memset(&tx_frame, 0, sizeof(tx_frame)); + tx_frame.client_id = CM55_IPC_PIPE_CLIENT_ID; + tx_frame.role = RC_ROLE_M33; + tx_frame.magic = RC_MAGIC_WORD; + tx_frame.seq = ++seq; + /* Encode "Hello M33" into channels (2 chars per channel) */ + tx_frame.channel[0] = 0x4865UL; /* 'He' in ASCII */ + tx_frame.channel[1] = 0x6C6CUL; /* 'll' in ASCII */ + tx_frame.channel[2] = 0x6F20UL; /* 'o ' in ASCII */ + tx_frame.channel[3] = 0x4D33UL; /* 'M3' in ASCII */ + tx_frame.channel[4] = 0x0033UL; /* '3' in ASCII */ + tx_frame.checksum = edge_rc_checksum(&tx_frame); + + /* 发送消息 */ + if (rt_device_write(ipc_dev, 0, &tx_frame, 1) == 1) { + rt_kprintf("[M33] TX -> [M55]: \"Hello M33\" | Seq: %5lu | Time: %8lu ms\r\n", + seq, rt_tick_get() * 1000 / RT_TICK_PER_SECOND); + tx_count++; + } else { + rt_kprintf("[M33] TX Failed\r\n"); + } + + last_send_tick = rt_tick_get(); + } + + /* 接收 M55 的回复 */ + if (rt_device_read(ipc_dev, 0, &rx_frame, 1) == 1) { + if (rx_frame.magic == RC_MAGIC_WORD && + rx_frame.role == RC_ROLE_M55_ECHO && + edge_rc_checksum(&rx_frame) == rx_frame.checksum) { + + /* 解析消息 - Check for "Hello M55" */ + if (rx_frame.channel[0] == 0x4865UL && /* 'He' */ + rx_frame.channel[1] == 0x6C6CUL && /* 'll' */ + rx_frame.channel[2] == 0x6F20UL && /* 'o ' */ + rx_frame.channel[3] == 0x4D35UL && /* 'M5' */ + rx_frame.channel[4] == 0x0035UL) { /* '5' */ + + rt_kprintf("[M33] RX <- [M55]: \"Hello M55\" | Seq: %5lu | Time: %8lu ms\r\n", + rx_frame.seq, rt_tick_get() * 1000 / RT_TICK_PER_SECOND); + rx_count++; + + /* 每 10 次交互打印统计信息 */ + if (rx_count % 10 == 0) { + rt_kprintf("----------------------------------------\r\n"); + rt_kprintf("[M33] Statistics: TX=%lu, RX=%lu\r\n", tx_count, rx_count); + rt_kprintf("----------------------------------------\r\n"); + } + } + } else { + rt_kprintf("[M33] Invalid message received\r\n"); + } + } + + rt_thread_mdelay(10); + } +} +MSH_CMD_EXPORT(ipc_test_run, Start M33 IPC test); + +int main(void) +{ + rt_kprintf("\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf(" RT-Thread on Cortex-M33 Core \r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("Command: ipc_test_run\r\n"); + rt_kprintf("Status: Running\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("\r\n"); + + rt_pin_mode(LED_PIN_B, PIN_MODE_OUTPUT); + + while (1) + { + rt_pin_write(LED_PIN_B, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED_PIN_B, PIN_LOW); + rt_thread_mdelay(500); + } + + return 0; +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/SConscript new file mode 100644 index 00000000..86b45468 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/SConscript @@ -0,0 +1,79 @@ +import os +import rtconfig +from building import * + +Import("SDK_LIB") + +objs = [] +cwd = GetCurrentDir() +list = os.listdir(cwd) + +# add general drivers +src = Glob('*.c') + +path = [cwd] + +startup_path_prefix = SDK_LIB +Tool_path = None +index = "mtb-device-support-pse8xxgp" + +for filename in os.listdir(startup_path_prefix): + if index in filename: + Tool_path = os.path.join(startup_path_prefix, filename) + + + +CPPDEFINES = [ + "BLHS_SUPPORT", + "COMPONENT_55500", + "COMPONENT_55500A1", + "COMPONENT_APP_KIT_PSE84_EVAL_EPC2", + "COMPONENT_CM33", + "COMPONENT_CM33_0", + "COMPONENT_CYW55513_MOD_PSE84_SOM", + "COMPONENT_Debug", + "COMPONENT_GCC_ARM", + "COMPONENT_GFXSS", + "COMPONENT_HCI_UART", + "COMPONENT_MTB_DEVICE_SUPPORT", + "COMPONENT_MTB_HAL", + "COMPONENT_MW_ASYNC_TRANSFER", + "COMPONENT_MW_BT_FW_IFX_CYW55500A1", + "COMPONENT_MW_CMSIS", + "COMPONENT_MW_CORE_LIB", + "COMPONENT_MW_CORE_MAKE", + "COMPONENT_MW_MTB_DSL_PSE8XXGP", + "COMPONENT_MW_MTB_IPC", + "COMPONENT_MW_MTB_SRF", + "COMPONENT_MW_SE_RT_SERVICES_UTILS", + "COMPONENT_NON_SECURE_DEVICE", + "COMPONENT_PSE84", + "COMPONENT_SM", + "COMPONENT_SOFTFP", + "COMPONENT_WIFI_INTERFACE_SDIO", + "COMPONENT_wlbga_iPA_sLNA_ANT0_LHL_XTAL_IN", + "CORE_NAME_CM33_0=1", + "CY_APPNAME_proj_cm33_ns", + "CYBSP_MCUBOOT_HEADER_SIZE=0x400", + "CYBSP_WIFI_WL_HOSTWAKE_DRIVE_MODE=MTB_HAL_GPIO_DRIVE_OPENDRAINDRIVESLOW", + "CYBSP_WIFI_WL_HOSTWAKE_INIT_STATE=WHD_TRUE", + "CY_PDL_FLASH_BOOT", + "CY_RETARGET_IO_CONVERT_LF_TO_CRLF", + "CY_SUPPORTS_DEVICE_VALIDATION", + "CY_TARGET_BOARD=APP_KIT_PSE84_EVAL_EPC2", + "CY_WIFI_COUNTRY=WHD_COUNTRY_UNITED_STATES", + "DEBUG", + "FLASH_BOOT", + "PSE846GPS2DBZC4A", + "TARGET_APP_KIT_PSE84_EVAL_EPC2", + "TRXV5", +] + + +group = DefineGroup("Drivers", src, depend=[""], CPPPATH=path, CPPDEFINES=CPPDEFINES) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) +Return("group") diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.c b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.c new file mode 100644 index 00000000..ac903b98 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.c @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2022-06-29 Rbb666 first version + * 2025-08-20 Hydevcode + */ + +#include "board.h" +#define ES8388_CTRL GET_PIN(16, 2) +#define SPEAKER_OE_CTRL GET_PIN(21, 6) +#define WIFI_OE_CTRL GET_PIN(16, 3) +#define WIFI_WL_REG_OE_CTRL GET_PIN(11, 6) +#define CTRL GET_PIN(7, 2) + +void cy_bsp_all_init(void) +{ + cy_rslt_t result; + + /* Initialize the device and board peripherals */ + result = cybsp_init(); + + /* Board init failed. Stop program execution */ + if (result != CY_RSLT_SUCCESS) + { + CY_ASSERT(0); + } + + if (CY_SYSLIB_RESET_HIB_WAKEUP == (Cy_SysLib_GetResetReason() & + CY_SYSLIB_RESET_HIB_WAKEUP)) + { + Cy_SysLib_ClearResetReason(); + Cy_SysPm_IoUnfreeze(); + Cy_SysPm_TriggerXRes(); + + } +#ifdef SOC_Enable_CM55 + Cy_SysEnableCM55(MXCM55, CY_CM55_APP_BOOT_ADDR, 10); +#ifdef SOC_Enable_CM33_DeepSleep + while (1) + { + Cy_SysPm_CpuEnterDeepSleep(CY_SYSPM_WAIT_FOR_INTERRUPT); + } +#endif +#endif + +} + +void _start(void) +{ + extern int entry(void); + entry(); + while (1); + __builtin_unreachable(); +} + +void poweroff(void) +{ + rt_pin_mode(WIFI_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_OE_CTRL, PIN_LOW); + + rt_pin_mode(WIFI_WL_REG_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_WL_REG_OE_CTRL, PIN_LOW); + + rt_pin_mode(ES8388_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(ES8388_CTRL, PIN_LOW); + + rt_pin_mode(SPEAKER_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(SPEAKER_OE_CTRL, PIN_LOW); + + rt_pin_mode(CTRL, PIN_MODE_OUTPUT); + rt_pin_write(CTRL, PIN_LOW); + + Cy_SysClk_PllDisable(SRSS_DPLL_LP_0_PATH_NUM); + Cy_SysPm_SystemEnterHibernate(); +} + +#ifdef RT_USING_MSH + MSH_CMD_EXPORT(poweroff, The software enables the system to shut down. Simply press the button to restart it.); +#endif + +//Mos管控制 +#define ES8388_CTRL GET_PIN(16, 2) //ES8388 电源 Enable引脚 +#define SPEAKER_OE_CTRL GET_PIN(21, 6) //功放 Enable引脚 +#define WIFI_OE_CTRL GET_PIN(16, 3) //WIFI Enable引脚 +#define WIFI_WL_REG_OE_CTRL GET_PIN(11, 6) //WiFi寄存器开关 +#define CTRL GET_PIN(7, 2) //底板 3V3 DCDC电源控制 +int en_gpio(void) +{ + rt_pin_mode(WIFI_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_OE_CTRL, PIN_HIGH); + + rt_pin_mode(WIFI_WL_REG_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_WL_REG_OE_CTRL, PIN_HIGH); + + rt_pin_mode(ES8388_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(ES8388_CTRL, PIN_HIGH); + + rt_pin_mode(SPEAKER_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(SPEAKER_OE_CTRL, PIN_HIGH); + + return 0; +} +INIT_BOARD_EXPORT(en_gpio); \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.h b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.h new file mode 100644 index 00000000..a42c6841 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2022-06-29 Rbb666 first version + * 2022-07-26 Rbb666 Add Flash Config + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#include "cy_result.h" +#include "cybsp_types.h" +#include "mtb_hal.h" +#include "cybsp.h" + +#ifdef BSP_USING_USBD + #include "cy_usb_dev.h" + #include "cy_usb_dev_hid.h" +#endif + +/*SRAM CONFIG*/ +#define IFX_SRAM_SIZE (256) +#define IFX_SRAM_END (0x240BD000 + IFX_SRAM_SIZE * 1024) + +#ifdef __ARMCC_VERSION + extern int Image$$RW_IRAM1$$ZI$$Limit; + #define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) + #define HEAP_END IFX_SRAM_END +#elif __ICCARM__ + #pragma section="HEAP" + #define HEAP_BEGIN (__segment_end("HEAP")) +#else + extern unsigned int __end__; + extern unsigned int __HeapLimit; + #define HEAP_BEGIN (void*)&__end__ + #define HEAP_END (void*)&__HeapLimit +#endif + +void cy_bsp_all_init(void); + +#endif + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/linker_scripts/link.ld b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/linker_scripts/link.ld new file mode 100644 index 00000000..18112819 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/board/linker_scripts/link.ld @@ -0,0 +1,384 @@ +/***************************************************************************//** +* \file pse84_ns_cm33.ld +* \version 1.0.0 +* +* Linker file for the GNU C compiler. +* +* The main purpose of the linker script is to describe how the sections in the +* input files should be mapped into the output file, and to control the memory +* layout of the output file. +* +* +* \note The linker files included with the PDL template projects must be generic +* and handle all common use cases. Your project may not use every section +* defined in the linker files. In that case you may see warnings during the +* build process. In your project, you can simply comment out or remove the +* relevant code in the linker file. +* +******************************************************************************** +* \copyright +* Copyright (c) (2020-2025), Cypress Semiconductor Corporation (an Infineon company) or +* an affiliate of Cypress Semiconductor Corporation. +* SPDX-License-Identifier: Apache-2.0 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ +/* Specify the output format for the linker script */ +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +/* Search for libraries in the current directory */ +SEARCH_DIR(.) +/* Specify the group of libraries to link against */ +GROUP(-lgcc -lc -lnosys) +/* Define the entry point of the program, which is the reset handler */ +ENTRY(Reset_Handler) + +/* Define the stack size for the application */ +/* To set stack size in application add makefile ldflags: -Wl,--defsym=APP_MSP_STACK_SIZE= */ +PROVIDE(__StackSize = DEFINED(APP_MSP_STACK_SIZE) ? APP_MSP_STACK_SIZE : 0x1000); + +/* Include the device memory definitions generated by the Device Configurator */ +/* This file is automatically generated. */ + +MEMORY +{ + m33_nvm : ORIGIN = 0x60340000, LENGTH = 0x00200000 + m33_nvm_C : ORIGIN = 0x08340000, LENGTH = 0x00200000 + m33_trailer : ORIGIN = 0x60540000, LENGTH = 0x00040000 + m33_trailer_C : ORIGIN = 0x08540000, LENGTH = 0x00040000 + m33_m55_shared : ORIGIN = 0x261C0000, LENGTH = 0x00040000 + m33_m55_shared_C : ORIGIN = 0x061C0000, LENGTH = 0x00040000 + m33_code : ORIGIN = 0x24058000, LENGTH = 0x00065000 + m33_code_C : ORIGIN = 0x04058000, LENGTH = 0x00065000 + m33_data : ORIGIN = 0x240BD000, LENGTH = 0x00040000 + m33_data_C : ORIGIN = 0x040BD000, LENGTH = 0x00040000 + m33_allocatable_shared : ORIGIN = 0x240FE000, LENGTH = 0x00001000 + m33_allocatable_shared_C : ORIGIN = 0x040FE000, LENGTH = 0x00001000 +} + +REGION_ALIAS("m33_nvm_sel", m33_nvm_C) +REGION_ALIAS("m33_trailer_sel", m33_trailer_C) +REGION_ALIAS("m33_m55_shared_sel", m33_m55_shared_C) +REGION_ALIAS("m33_code_sel", m33_code_C) +REGION_ALIAS("m33_data_sel", m33_data_C) +REGION_ALIAS("m33_allocatable_shared_sel", m33_allocatable_shared_C) + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + */ + +/* Device definitions */ +VECTORS_ALIGNMENT = 0x400; + +/* Compute the difference between C-AHB address and S-AHB address for +* section m33_code. This value is used to correctly copy code in the +* copy table. This is needed because the code needs to be accessed from +* the C-AHB address (faster, better performance) but since this is a read-only +* address to perform the copy we need to specify the S-AHB address which +* allows for writes as well. +*/ +m33_code_sel_Offset = ORIGIN(m33_code) - ORIGIN(m33_code_sel); + +/* The size of the MCU boot header area at the start of main code region */ +MCUBOOT_HEADER_SIZE = 0x400; + +/* Define the sections */ +SECTIONS +{ + /* This section reserves a space for MCUBoot header */ + .mcu_boot_header(READONLY) : ALIGN(MCUBOOT_HEADER_SIZE) + { + . += MCUBOOT_HEADER_SIZE; + } > m33_nvm_sel + + /* This section is intended to hold the main non-secure (NS) application code for the Cortex-M33 */ + /* Performance-sensitive or critical functions that need to be executed in sram are manually excluded */ + .app_code_main : ALIGN(VECTORS_ALIGNMENT) + { + /* Keep the vector table */ + KEEP(*(.vectors)) + /* Keep initializers */ + KEEP(*(.init)) + /* Keep finalizers */ + KEEP(*(.fini)) + /* Static constructors */ + *crtbegin.*(.ctors) + *crtbegin?.*(.ctors) + *(EXCLUDE_FILE(*crtend?.* *crtend.*) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + /* Static destructors and atexit() */ + *crtbegin.*(.dtors) + *crtbegin?.*(.dtors) + *(EXCLUDE_FILE(*crtend?.* *crtend.*) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + . = ALIGN(4); + + /* Array of pointers to preinint functions */ + PROVIDE_HIDDEN(__preinit_array_start = .); + + KEEP(*(.preinit_array)) + + PROVIDE_HIDDEN(__preinit_array_end = .); + + . = ALIGN(4); + + /* Array of pointers to init functions */ + PROVIDE_HIDDEN(__init_array_start = .); + + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + + PROVIDE_HIDDEN(__init_array_end = .); + + . = ALIGN(4); + + /* Array of pointers to finalizer functions */ + + PROVIDE_HIDDEN(__fini_array_start = .); + + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + + PROVIDE_HIDDEN(__fini_array_end = .); + + /* Read only code (constants) */ + *(.rodata .rodata.* .constdata .constdata.* .conststring .conststring.*) + /* Exclude certain files from this section as they will be placed in RAM */ + *(EXCLUDE_FILE(*cy_syslib.* *cy_syslib_ext.* *cy_smif.* *cy_smif_memnum.* *cy_smif_memslot.* *cy_smif_sfdp.* *cy_smif_hb_flash.* *mtb_hal_memoryspi.* *mtb_serial_memory.* *freertos/Source*.* *cy_clib_support*.* *cy_mutex_pool*.* *cy_time.* *cyabs_*.* *cy_worker_thread.* *cmsis*.*) .text*) + + + } > m33_nvm_sel + + /* Exception tables for ARM architecture */ + .ARM.extab (READONLY): ALIGN(4) + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + + } > m33_nvm_sel + + /* Exception index tables for ARM architecture */ + .ARM.exidx (READONLY): ALIGN(4) + { + __exidx_start = .; + + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + __exidx_end = .; + + } > m33_nvm_sel + + /* Define copying of data from flash memory to RAM during the startup */ + .copy.table (READONLY): ALIGN(4) + { + __copy_table_start__ = .; + + /* Initialized data in SRAM */ + LONG (LOADADDR(.data)) /* From load address in ext flash */ + LONG (ADDR(.data)) /* To run address in RAM */ + LONG (SIZEOF(.data)/4) /* Size in words */ + + /* Performance-sensitive or critical functions that need to be executed in SRAM */ + LONG(LOADADDR(.app_code_ram)) /* From load address in ext flash */ + LONG(ADDR(.app_code_ram) + m33_code_sel_Offset) /* To run address in RAM - using S-AHB for copying */ + LONG(SIZEOF(.app_code_ram)/4) /* Size in words */ + + __copy_table_end__ = .; + + } > m33_nvm_sel + + /* Define zeroing of the uninitialized data section */ + .zero.table (READONLY): ALIGN(4) + { + __zero_table_start__ = .; + + LONG(__bss_start__) /* Start of the zero-initialized data section */ + LONG((__bss_end__ - __bss_start__)/4) /* Size of the zero-initialized data section in words */ + + __zero_table_end__ = .; + + } > m33_nvm_sel + + /* A section for performance-sensitive or critical functions that need to be executed in SRAM */ + .app_code_ram : ALIGN(4) + { + KEEP(*(.cy_sram_code)) + KEEP(*(.cy_ramfunc)) + KEEP(*(.text.cy_os_common)) + *cy_syslib_ext.*(.text*) + *cy_syslib.*(.text*) + *cy_smif.*(.text*) + *cy_smif_memnum.*(.text*) + *cy_smif_memslot.*(.text*) + *cy_smif_sfdp.*(.text*) + *cy_smif_hb_flash.*(.text*) + *mtb_hal_memoryspi.*(.text*) + *mtb_serial_memory.*(.text*) + *freertos/Source*.*(.text*) + *cy_clib_support*.*(.text*) + *cy_mutex_pool*.*(.text*) + *cy_time.*(.text*) + *cyabs_*.*(.text*) + *cy_worker_thread.*(.text*) + *cmsis*.*(.text*) + + /* section information for utest */ + . = ALIGN(4); + __rt_utest_tc_tab_start = .; + KEEP(*(UtestTcTab)) + __rt_utest_tc_tab_end = .; + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + + /* section information for modules */ + . = ALIGN(4); + __rtmsymtab_start = .; + KEEP(*(RTMSymTab)) + __rtmsymtab_end = .; + + /* section information for initialization */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + __usbh_class_info_start__ = .; + KEEP(*(.usbh_class_info)) + __usbh_class_info_end__ = .; + + . = ALIGN(4); + } > m33_code_sel AT > m33_nvm_sel + + + /* A section for the vector table */ + .ram_vectors (NOLOAD) : ALIGN(VECTORS_ALIGNMENT) + { + KEEP(*(.ram_vectors)) + } > m33_data + + /* A section for initialized data memory */ + .data : ALIGN(4) + { + __data_start__ = .; + + *(.data*) + KEEP(*(.jcr*)) + + . = ALIGN(4); + + __data_end__ = .; + } > m33_data AT > m33_nvm_sel + + /* A section for non-initialized data memory */ + .bss(NOLOAD) : ALIGN(4) + { + __bss_start__ = .; + + *(.bss*) + *(COMMON) + + . = ALIGN(4); + + __bss_end__ = .; + } > m33_data + + /* A section for variables that should not be initialized during the device startup */ + .noinit (NOLOAD) : + { + KEEP(*(.noinit)) + } > m33_data + + /* A section for the heap memory */ + .heap(NOLOAD) : ALIGN(8) + { + __HeapBase = .; + __end__ = .; + end = __end__; + + KEEP(*(.heap*)) + + . = ORIGIN(m33_data) + LENGTH(m33_data) - __StackSize; + __HeapLimit = .; + } > m33_data + + /* Define stack top, and stack limit */ + __StackTop = ORIGIN(m33_data) + LENGTH(m33_data); + __StackLimit = __StackTop - __StackSize; + PROVIDE(__stack = __StackTop); + + /* Check if data + stack still allows for Heap to be placed */ + ASSERT( + __HeapLimit > __HeapBase, + "Error: RAM region overflowed with stack. Ensure that the stack size is within the available RAM." + ) + + /* A section for shared RAM memory where only the Cortex-M33 Non Secure can allocate data but all cores can access */ + .cy_sharedmem(NOLOAD) : ALIGN(4) + { + KEEP(*(.cy_sharedmem)) + + . = ALIGN(4); + } > m33_allocatable_shared + + /* A section for shared SOC memory */ + .cy_shared_socmem (NOLOAD) : ALIGN(4) + { + KEEP(*(.cy_shared_socmem)) + + . = ALIGN(4); + } > m33_m55_shared + + + /* Reserve a trail space for the signature for the bootloader - do not place any code here */ + .cy_trailer(NOLOAD) : + { + } > m33_trailer_sel + +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot.json b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot.json new file mode 100644 index 00000000..843eb74a --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot.json @@ -0,0 +1,65 @@ +{ + "schema-version": 1.0, + "content": [ + { + "name": "relocate_proj_cm33_ns", + "description": "relocate the hex to a programmable (S-BUS) address", + "enabled": true, + "commands": [ + { + "command": "hex-relocate", + "inputs": [ + { + "file": "../Debug/rtthread.hex", + "regions": [ + { "start": "0x02000000", "size": "0x00080000", "dest": "0x22000000" }, + { "start": "0x04000000", "size": "0x00100000", "dest": "0x24000000" }, + { "start": "0x06000000", "size": "0x00500000", "dest": "0x26000000" }, + { "start": "0x08000000", "size": "0x01000000", "dest": "0x60000000" }, + { "start": "0x0C000000", "size": "0x01000000", "dest": "0x64000000" }, + { "start": "0x12000000", "size": "0x00080000", "dest": "0x32000000" }, + { "start": "0x14000000", "size": "0x00100000", "dest": "0x34000000" }, + { "start": "0x16000000", "size": "0x00500000", "dest": "0x36000000" }, + { "start": "0x18000000", "size": "0x01000000", "dest": "0x70000000" }, + { "start": "0x1C000000", "size": "0x01000000", "dest": "0x74000000" } + ] + } + ], + "outputs": [ + { + "file": "../Debug/rtthread.hex" + } + ] + } + ] + }, + { + "name": "merge", + "description": "combine individual project hex files into a single hex", + "enabled": true, + "commands" : + [ + { + "command" : "merge", + "inputs" : + [ + { + "file" : "../Debug/rtthread.hex" + }, + { + "file" : "../tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex" + } + ], + "outputs" : + [ + { + "file" : "../Debug/rtthread.hex", + "format" : "ihex", + "overlap" : "ignore" + } + ] + } + ] + } + ] +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot_scons.json b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot_scons.json new file mode 100644 index 00000000..f8ed7d35 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/config/boot_with_extended_boot_scons.json @@ -0,0 +1,65 @@ +{ + "schema-version": 1.0, + "content": [ + { + "name": "relocate_proj_cm33_ns", + "description": "relocate the hex to a programmable (S-BUS) address", + "enabled": true, + "commands": [ + { + "command": "hex-relocate", + "inputs": [ + { + "file": "rtthread.hex", + "regions": [ + { "start": "0x02000000", "size": "0x00080000", "dest": "0x22000000" }, + { "start": "0x04000000", "size": "0x00100000", "dest": "0x24000000" }, + { "start": "0x06000000", "size": "0x00500000", "dest": "0x26000000" }, + { "start": "0x08000000", "size": "0x01000000", "dest": "0x60000000" }, + { "start": "0x0C000000", "size": "0x01000000", "dest": "0x64000000" }, + { "start": "0x12000000", "size": "0x00080000", "dest": "0x32000000" }, + { "start": "0x14000000", "size": "0x00100000", "dest": "0x34000000" }, + { "start": "0x16000000", "size": "0x00500000", "dest": "0x36000000" }, + { "start": "0x18000000", "size": "0x01000000", "dest": "0x70000000" }, + { "start": "0x1C000000", "size": "0x01000000", "dest": "0x74000000" } + ] + } + ], + "outputs": [ + { + "file": "build/rtthread.hex" + } + ] + } + ] + }, + { + "name": "merge", + "description": "combine individual project hex files into a single hex", + "enabled": true, + "commands" : + [ + { + "command" : "merge", + "inputs" : + [ + { + "file" : "build/rtthread.hex" + }, + { + "file" : "../../../tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex" + } + ], + "outputs" : + [ + { + "file" : "build/rtthread.hex", + "format" : "ihex", + "overlap" : "ignore" + } + ] + } + ] + } + ] +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/1.png b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/1.png new file mode 100644 index 00000000..84f25ca8 Binary files /dev/null and b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/1.png differ diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/2.png b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/2.png new file mode 100644 index 00000000..71b0cdb8 Binary files /dev/null and b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/figures/2.png differ diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/mklinks.bat b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/mklinks.bat new file mode 100644 index 00000000..39e904f2 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/mklinks.bat @@ -0,0 +1,7 @@ +@echo off +cd /d "%~dp0" +@echo on +mklink /J rt-thread ..\..\..\rt-thread +mklink /J libraries ..\..\..\libraries +mklink /J libs ..\..\libs +mklink /J tools ..\..\..\tools \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.h b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.h new file mode 100644 index 00000000..157cb3c9 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.h @@ -0,0 +1,395 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 8 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_HOOK_USING_FUNC_PTR +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 1024 +#define RT_USING_TIMER_SOFT +#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_STACK_SIZE 2048 + +/* kservice optimization */ + +#define RT_KSERVICE_USING_STDLIB +/* end of kservice optimization */ +#define RT_USING_DEBUG +#define RT_DEBUGING_COLOR +#define RT_DEBUGING_CONTEXT + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE +/* end of Inter-Thread communication */ + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_MEMHEAP +#define RT_MEMHEAP_FAST_MODE +#define RT_USING_MEMHEAP_AS_HEAP +#define RT_USING_MEMHEAP_AUTO_BINDING +#define RT_USING_HEAP +/* end of Memory Management */ + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 1024 +#define RT_CONSOLE_DEVICE_NAME "uart5" +/* end of Kernel Device Object */ +#define RT_VER_NUM 0x50002 +/* end of RT-Thread Kernel */ + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 +#define RT_USING_MSH +#define RT_USING_FINSH +#define FINSH_USING_MSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_CMD_SIZE 80 +#define MSH_USING_BUILT_IN_COMMANDS +#define FINSH_USING_DESCRIPTION +#define FINSH_ARG_MAX 10 +#define FINSH_USING_OPTION_COMPLETION + +/* DFS: device virtual file system */ + +#define RT_USING_DFS +#define DFS_USING_POSIX +#define DFS_USING_WORKDIR +#define DFS_FD_MAX 16 +#define RT_USING_DFS_V1 +#define DFS_FILESYSTEMS_MAX 4 +#define DFS_FILESYSTEM_TYPES_MAX 4 +#define RT_USING_DFS_ELMFAT + +/* elm-chan's FatFs, Generic FAT Filesystem Module */ + +#define RT_DFS_ELM_CODE_PAGE 437 +#define RT_DFS_ELM_WORD_ACCESS +#define RT_DFS_ELM_USE_LFN_3 +#define RT_DFS_ELM_USE_LFN 3 +#define RT_DFS_ELM_LFN_UNICODE_0 +#define RT_DFS_ELM_LFN_UNICODE 0 +#define RT_DFS_ELM_MAX_LFN 255 +#define RT_DFS_ELM_DRIVES 2 +#define RT_DFS_ELM_MAX_SECTOR_SIZE 512 +#define RT_DFS_ELM_REENTRANT +#define RT_DFS_ELM_MUTEX_TIMEOUT 3000 +/* end of elm-chan's FatFs, Generic FAT Filesystem Module */ +#define RT_USING_DFS_DEVFS +/* end of DFS: device virtual file system */ + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_UNAMED_PIPE_NUMBER 64 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V1 +#define RT_SERIAL_RB_BUFSZ 128 +#define RT_USING_PIN + +/* Using USB */ + +/* end of Using USB */ +/* end of Device Drivers */ + +/* C/C++ and POSIX layer */ + +/* ISO-ANSI C layer */ + +/* Timezone and Daylight Saving Time */ + +#define RT_LIBC_USING_LIGHT_TZ_DST +#define RT_LIBC_TZ_DEFAULT_HOUR 8 +#define RT_LIBC_TZ_DEFAULT_MIN 0 +#define RT_LIBC_TZ_DEFAULT_SEC 0 +/* end of Timezone and Daylight Saving Time */ +/* end of ISO-ANSI C layer */ + +/* POSIX (Portable Operating System Interface) layer */ + + +/* Interprocess Communication (IPC) */ + + +/* Socket is in the 'Network' category */ + +/* end of Interprocess Communication (IPC) */ +/* end of POSIX (Portable Operating System Interface) layer */ +/* end of C/C++ and POSIX layer */ + +/* Network */ + +/* end of Network */ + +/* Utilities */ + +/* end of Utilities */ +/* end of RT-Thread Components */ + +/* RT-Thread Utestcases */ + +/* end of RT-Thread Utestcases */ + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + +/* end of Marvell WiFi */ + +/* Wiced WiFi */ + +/* end of Wiced WiFi */ + +/* CYW43012 WiFi */ + +/* end of CYW43012 WiFi */ + +/* BL808 WiFi */ + +/* end of BL808 WiFi */ + +/* CYW43439 WiFi */ + +/* end of CYW43439 WiFi */ +/* end of Wi-Fi */ + +/* IoT Cloud */ + +/* end of IoT Cloud */ +/* end of IoT - internet of things */ + +/* security packages */ + +/* end of security packages */ + +/* language packages */ + +/* JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* XML: Extensible Markup Language */ + +/* end of XML: Extensible Markup Language */ +/* end of language packages */ + +/* multimedia packages */ + +/* LVGL: powerful and easy-to-use embedded GUI library */ + +/* end of LVGL: powerful and easy-to-use embedded GUI library */ + +/* u8g2: a monochrome graphic library */ + +/* end of u8g2: a monochrome graphic library */ +/* end of multimedia packages */ + +/* tools packages */ + +/* end of tools packages */ + +/* system packages */ + +/* enhanced kernel services */ + +/* end of enhanced kernel services */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + +/* end of acceleration: Assembly language or algorithmic acceleration packages */ + +/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* Micrium: Micrium software products porting for RT-Thread */ + +/* end of Micrium: Micrium software products porting for RT-Thread */ +/* end of system packages */ + +/* peripheral libraries and drivers */ + +/* HAL & SDK Drivers */ + +/* STM32 HAL & SDK Drivers */ + +/* end of STM32 HAL & SDK Drivers */ + +/* Infineon HAL Packages */ + +/* end of Infineon HAL Packages */ + +/* Kendryte SDK */ + +/* end of Kendryte SDK */ + +/* WCH HAL & SDK Drivers */ + +/* end of WCH HAL & SDK Drivers */ + +/* AT32 HAL & SDK Drivers */ + +/* end of AT32 HAL & SDK Drivers */ + +/* HC32 DDL Drivers */ + +/* end of HC32 DDL Drivers */ + +/* NXP HAL & SDK Drivers */ + +/* end of NXP HAL & SDK Drivers */ + +/* NUVOTON Drivers */ + +/* end of NUVOTON Drivers */ + +/* GD32 Drivers */ + +/* end of GD32 Drivers */ + +/* HPMicro SDK */ + +/* end of HPMicro SDK */ + +/* FT32 HAL & SDK Drivers */ + +/* end of FT32 HAL & SDK Drivers */ +/* end of HAL & SDK Drivers */ + +/* sensors drivers */ + +/* end of sensors drivers */ + +/* touch drivers */ + +/* end of touch drivers */ +/* end of peripheral libraries and drivers */ + +/* AI packages */ + +/* end of AI packages */ + +/* Signal Processing and Control Algorithm Packages */ + +/* end of Signal Processing and Control Algorithm Packages */ + +/* miscellaneous packages */ + +/* project laboratory */ + +/* end of project laboratory */ + +/* samples: kernel and components samples */ + +/* end of samples: kernel and components samples */ + +/* entertainment: terminal games and other interesting software packages */ + +/* end of entertainment: terminal games and other interesting software packages */ +/* end of miscellaneous packages */ + +/* Arduino libraries */ + + +/* Projects and Demos */ + +/* end of Projects and Demos */ + +/* Sensors */ + +/* end of Sensors */ + +/* Display */ + +/* end of Display */ + +/* Timing */ + +/* end of Timing */ + +/* Data Processing */ + +/* end of Data Processing */ + +/* Data Storage */ + +/* Communication */ + +/* end of Communication */ + +/* Device Control */ + +/* end of Device Control */ + +/* Other */ + +/* end of Other */ + +/* Signal IO */ + +/* end of Signal IO */ + +/* Uncategorized */ + +/* end of Arduino libraries */ +/* end of RT-Thread online packages */ + +/* Hardware Drivers Config */ + +/* Select SOC Multi Core Mode */ + +#define SOC_Enable_CM55 +/* end of Select SOC Multi Core Mode */ +#define SOC_SERIES_IFX_PSOCE84 +#define KIT_PROCE84_EVK_M33 + +/* Onboard Peripheral Drivers */ + +#define BSP_USING_USB_TO_UART +/* end of Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_IPC +#define BSP_USING_UART +#define BSP_USING_UART2 +#define BSP_USING_UART5 +/* end of On-chip Peripheral Drivers */ +/* end of Hardware Drivers Config */ + +#endif diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.py b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.py new file mode 100644 index 00000000..b0c9e974 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC/rtconfig.py @@ -0,0 +1,135 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m33' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armclang' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iccarm' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m33 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -nostartfiles' + CFLAGS = DEVICE + ' -g -Wall -pipe' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.ld' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O3 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'armclang': + # toolchains + CC = 'armclang' + CXX = 'armclang' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = ' --target=arm-arm-none-eabi -mcpu=cortex-m4 ' + CFLAGS += ' -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 ' + CFLAGS += ' -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar ' + CFLAGS += ' -gdwarf-3 -ffunction-sections ' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers ' + LFLAGS += ' --list rt-thread.map ' + LFLAGS += r' --strict --scatter "board\linker_scripts\link.sct" ' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCLANG/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCLANG/lib' + + EXEC_PATH += '/ARM/ARMCLANG/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O1' # armclang recommend + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.config b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.config new file mode 100644 index 00000000..72b9f291 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.config @@ -0,0 +1,1397 @@ +# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_AMP is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=8 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_HOOK_USING_FUNC_PTR=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=1024 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 + +# +# kservice optimization +# +CONFIG_RT_KSERVICE_USING_STDLIB=y +# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +# CONFIG_RT_USING_TINY_FFS is not set +# CONFIG_RT_KPRINTF_USING_LONGLONG is not set +# end of kservice optimization + +CONFIG_RT_USING_DEBUG=y +CONFIG_RT_DEBUGING_COLOR=y +CONFIG_RT_DEBUGING_CONTEXT=y +# CONFIG_RT_DEBUGING_INIT is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +CONFIG_RT_USING_MEMHEAP=y +CONFIG_RT_MEMHEAP_FAST_MODE=y +# CONFIG_RT_MEMHEAP_BEST_MODE is not set +# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set +CONFIG_RT_USING_MEMHEAP_AS_HEAP=y +CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_DM is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=1024 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart2" +# end of Kernel Device Object + +CONFIG_RT_VER_NUM=0x50002 +# CONFIG_RT_USING_STDC_ATOMIC is not set +# end of RT-Thread Kernel + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +CONFIG_FINSH_USING_OPTION_COMPLETION=y + +# +# DFS: device virtual file system +# +CONFIG_RT_USING_DFS=y +CONFIG_DFS_USING_POSIX=y +CONFIG_DFS_USING_WORKDIR=y +# CONFIG_RT_USING_DFS_MNTTABLE is not set +CONFIG_DFS_FD_MAX=16 +CONFIG_RT_USING_DFS_V1=y +# CONFIG_RT_USING_DFS_V2 is not set +CONFIG_DFS_FILESYSTEMS_MAX=4 +CONFIG_DFS_FILESYSTEM_TYPES_MAX=4 +CONFIG_RT_USING_DFS_ELMFAT=y + +# +# elm-chan's FatFs, Generic FAT Filesystem Module +# +CONFIG_RT_DFS_ELM_CODE_PAGE=437 +CONFIG_RT_DFS_ELM_WORD_ACCESS=y +# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set +CONFIG_RT_DFS_ELM_USE_LFN_3=y +CONFIG_RT_DFS_ELM_USE_LFN=3 +CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y +# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set +CONFIG_RT_DFS_ELM_LFN_UNICODE=0 +CONFIG_RT_DFS_ELM_MAX_LFN=255 +CONFIG_RT_DFS_ELM_DRIVES=2 +CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512 +# CONFIG_RT_DFS_ELM_USE_ERASE is not set +CONFIG_RT_DFS_ELM_REENTRANT=y +CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000 +# end of elm-chan's FatFs, Generic FAT Filesystem Module + +CONFIG_RT_USING_DFS_DEVFS=y +# CONFIG_RT_USING_DFS_ROMFS is not set +# CONFIG_RT_USING_DFS_CROMFS is not set +# CONFIG_RT_USING_DFS_RAMFS is not set +# CONFIG_RT_USING_DFS_TMPFS is not set +# CONFIG_RT_USING_DFS_MQUEUE is not set +# end of DFS: device virtual file system + +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_UNAMED_PIPE_NUMBER=64 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=128 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_NULL is not set +# CONFIG_RT_USING_ZERO is not set +# CONFIG_RT_USING_RANDOM is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_FDT is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_LCD is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_DEV_BUS is not set +# CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_VIRTIO is not set +# CONFIG_RT_USING_KTIME is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB +# end of Device Drivers + +# +# C/C++ and POSIX layer +# + +# +# ISO-ANSI C layer +# + +# +# Timezone and Daylight Saving Time +# +# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set +CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y +CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8 +CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0 +CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 +# end of Timezone and Daylight Saving Time +# end of ISO-ANSI C layer + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# end of Interprocess Communication (IPC) +# end of POSIX (Portable Operating System Interface) layer + +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C/C++ and POSIX layer + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set +# end of Network + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_VAR_EXPORT is not set +# CONFIG_RT_USING_RESOURCE_ID is not set +# CONFIG_RT_USING_ADT is not set +# CONFIG_RT_USING_RT_LINK is not set +# end of Utilities + +# CONFIG_RT_USING_VBUS is not set +# end of RT-Thread Components + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set +# end of RT-Thread Utestcases + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set +# CONFIG_PKG_USING_ESP_HOSTED is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set + +# +# CYW43012 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# end of CYW43012 WiFi + +# +# BL808 WiFi +# +# CONFIG_PKG_USING_WLAN_BL808 is not set +# end of BL808 WiFi + +# +# CYW43439 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43439 is not set +# end of CYW43439 WiFi +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_BT_CYW43012 is not set +# CONFIG_PKG_USING_CYW43XX is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_RYANMQTT is not set +# CONFIG_PKG_USING_RYANW5500 is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set +# CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set +# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set +# CONFIG_PKG_USING_LHC_MODBUS is not set +# CONFIG_PKG_USING_QMODBUS is not set +# CONFIG_PKG_USING_PNET is not set +# CONFIG_PKG_USING_OPENER is not set +# CONFIG_PKG_USING_FREEMQTT is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# CONFIG_PKG_USING_RYAN_JSON is not set +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# end of XML: Extensible Markup Language + +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# end of u8g2: a monochrome graphic library + +# CONFIG_PKG_USING_NES_SIMULATOR is not set +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_VECTOR is not set +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_MCOREDUMP is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set +# CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_ZDEBUG is not set +# CONFIG_PKG_USING_RVBACKTRACE is not set +# CONFIG_PKG_USING_HPATCHLITE is not set +# CONFIG_PKG_USING_THREAD_METRIC is not set +# CONFIG_PKG_USING_UORB is not set +# CONFIG_PKG_USING_RT_TUNNEL is not set +# CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set +# end of enhanced kernel services + +# CONFIG_PKG_USING_AUNITY is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_CORE is not set +# CONFIG_PKG_USING_CMSIS_NN is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# end of Micrium: Micrium software products porting for RT-Thread + +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set +# CONFIG_PKG_USING_LITEOS_SDK is not set +# CONFIG_PKG_USING_TZ_DATABASE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FILEX is not set +# CONFIG_PKG_USING_LEVELX is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RPMSG_LITE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_CHERRYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set +# CONFIG_PKG_USING_AGILE_UPGRADE is not set +# CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set +# CONFIG_PKG_USING_TASK_MSG_BUS is not set +# CONFIG_PKG_USING_UART_FRAMEWORK is not set +# CONFIG_PKG_USING_SFDB is not set +# CONFIG_PKG_USING_RTP is not set +# CONFIG_PKG_USING_REB is not set +# CONFIG_PKG_USING_RMP is not set +# CONFIG_PKG_USING_R_RHEALSTONE is not set +# CONFIG_PKG_USING_HEARTBEAT is not set +# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set +# CONFIG_PKG_USING_CHERRYECAT is not set +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set +# CONFIG_PKG_USING_INFINEON_CMSIS is not set +# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set +# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set +# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set +# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set +# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set +# CONFIG_PKG_USING_INFINEON_USBDEV is not set +# end of Infineon HAL Packages + +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_ESP_IDF is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# end of Kendryte SDK + +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set +# CONFIG_PKG_USING_MM32 is not set + +# +# WCH HAL & SDK Drivers +# +# CONFIG_PKG_USING_CH32V20x_SDK is not set +# CONFIG_PKG_USING_CH32V307_SDK is not set +# end of WCH HAL & SDK Drivers + +# +# AT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set +# end of AT32 HAL & SDK Drivers + +# +# HC32 DDL Drivers +# +# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set +# end of HC32 DDL Drivers + +# +# NXP HAL & SDK Drivers +# +# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set +# end of NXP HAL & SDK Drivers + +# +# NUVOTON Drivers +# +# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set +# end of NUVOTON Drivers + +# +# GD32 Drivers +# +# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32_RISCV_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32VW55X_WIFI is not set +# end of GD32 Drivers + +# +# HPMicro SDK +# +# CONFIG_PKG_USING_HPM_SDK is not set +# end of HPMicro SDK + +# +# FT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_FT32F0_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set +# end of FT32 HAL & SDK Drivers +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# CONFIG_PKG_USING_LSM6DSM is not set +# CONFIG_PKG_USING_LSM6DSL is not set +# CONFIG_PKG_USING_LPS22HB is not set +# CONFIG_PKG_USING_HTS221 is not set +# CONFIG_PKG_USING_LSM303AGR is not set +# CONFIG_PKG_USING_BME280 is not set +# CONFIG_PKG_USING_BME680 is not set +# CONFIG_PKG_USING_BMA400 is not set +# CONFIG_PKG_USING_BMI160_BMX160 is not set +# CONFIG_PKG_USING_SPL0601 is not set +# CONFIG_PKG_USING_MS5805 is not set +# CONFIG_PKG_USING_DA270 is not set +# CONFIG_PKG_USING_DF220 is not set +# CONFIG_PKG_USING_HSHCAL001 is not set +# CONFIG_PKG_USING_BH1750 is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_TSL4531 is not set +# CONFIG_PKG_USING_DS18B20 is not set +# CONFIG_PKG_USING_DHT11 is not set +# CONFIG_PKG_USING_DHTXX is not set +# CONFIG_PKG_USING_GY271 is not set +# CONFIG_PKG_USING_GP2Y10 is not set +# CONFIG_PKG_USING_SGP30 is not set +# CONFIG_PKG_USING_HDC1000 is not set +# CONFIG_PKG_USING_BMP180 is not set +# CONFIG_PKG_USING_BMP280 is not set +# CONFIG_PKG_USING_SHTC1 is not set +# CONFIG_PKG_USING_BMI088 is not set +# CONFIG_PKG_USING_HMC5883 is not set +# CONFIG_PKG_USING_MAX6675 is not set +# CONFIG_PKG_USING_MAX31855 is not set +# CONFIG_PKG_USING_TMP1075 is not set +# CONFIG_PKG_USING_SR04 is not set +# CONFIG_PKG_USING_CCS811 is not set +# CONFIG_PKG_USING_PMSXX is not set +# CONFIG_PKG_USING_RT3020 is not set +# CONFIG_PKG_USING_MLX90632 is not set +# CONFIG_PKG_USING_MLX90382 is not set +# CONFIG_PKG_USING_MLX90384 is not set +# CONFIG_PKG_USING_MLX90393 is not set +# CONFIG_PKG_USING_MLX90392 is not set +# CONFIG_PKG_USING_MLX90394 is not set +# CONFIG_PKG_USING_MLX90396 is not set +# CONFIG_PKG_USING_MLX90397 is not set +# CONFIG_PKG_USING_MS5611 is not set +# CONFIG_PKG_USING_MAX31865 is not set +# CONFIG_PKG_USING_VL53L0X is not set +# CONFIG_PKG_USING_INA260 is not set +# CONFIG_PKG_USING_MAX30102 is not set +# CONFIG_PKG_USING_INA226 is not set +# CONFIG_PKG_USING_LIS2DH12 is not set +# CONFIG_PKG_USING_HS300X is not set +# CONFIG_PKG_USING_ZMOD4410 is not set +# CONFIG_PKG_USING_ISL29035 is not set +# CONFIG_PKG_USING_MMC3680KJ is not set +# CONFIG_PKG_USING_QMP6989 is not set +# CONFIG_PKG_USING_BALANCE is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_SHT4X is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set +# CONFIG_PKG_USING_P3T1755 is not set +# CONFIG_PKG_USING_QMI8658 is not set +# CONFIG_PKG_USING_ICM20948 is not set +# CONFIG_PKG_USING_SCD4X is not set +# end of sensors drivers + +# +# touch drivers +# +# CONFIG_PKG_USING_GT9147 is not set +# CONFIG_PKG_USING_GT1151 is not set +# CONFIG_PKG_USING_GT917S is not set +# CONFIG_PKG_USING_GT911 is not set +# CONFIG_PKG_USING_FT6206 is not set +# CONFIG_PKG_USING_FT5426 is not set +# CONFIG_PKG_USING_FT6236 is not set +# CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set +# CONFIG_PKG_USING_CST812T is not set +# end of touch drivers + +# CONFIG_PKG_USING_LCD_SPI_DRIVER is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set +# CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set +# CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_ST7789 is not set +# CONFIG_PKG_USING_VS1003 is not set +# CONFIG_PKG_USING_X9555 is not set +# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set +# CONFIG_PKG_USING_BT_MX01 is not set +# CONFIG_PKG_USING_RGPOWER is not set +# CONFIG_PKG_USING_BT_MX02 is not set +# CONFIG_PKG_USING_GC9A01 is not set +# CONFIG_PKG_USING_IK485 is not set +# CONFIG_PKG_USING_SERVO is not set +# CONFIG_PKG_USING_SEAN_WS2812B is not set +# CONFIG_PKG_USING_IC74HC165 is not set +# CONFIG_PKG_USING_IST8310 is not set +# CONFIG_PKG_USING_ST7789_SPI is not set +# CONFIG_PKG_USING_CAN_UDS is not set +# CONFIG_PKG_USING_ISOTP_C is not set +# CONFIG_PKG_USING_IKUNLED is not set +# CONFIG_PKG_USING_INS5T8025 is not set +# CONFIG_PKG_USING_IRUART is not set +# CONFIG_PKG_USING_ST7305 is not set +# CONFIG_PKG_USING_TM1668 is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set +# end of peripheral libraries and drivers + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set +# CONFIG_PKG_USING_R_TINYMAIX is not set +# CONFIG_PKG_USING_LLMCHAT is not set +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# CONFIG_PKG_USING_APID is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set +# end of entertainment: terminal games and other interesting software packages + +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_RALARAM is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LIBCRC is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set +# CONFIG_PKG_USING_QPARAM is not set +# CONFIG_PKG_USING_CorevMCU_CLI is not set +# CONFIG_PKG_USING_DRMP is not set +# end of miscellaneous packages + +# +# Arduino libraries +# +# CONFIG_PKG_USING_RTDUINO is not set + +# +# Projects and Demos +# +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set +# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set +# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set +# end of Projects and Demos + +# +# Sensors +# +# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set +# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set +# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set +# end of Sensors + +# +# Display +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set +# CONFIG_PKG_USING_SEEED_TM1637 is not set +# end of Display + +# +# Timing +# +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set +# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set +# end of Timing + +# +# Data Processing +# +# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set +# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set +# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set +# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set +# end of Communication + +# +# Device Control +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# end of Device Control + +# +# Other +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# end of Other + +# +# Signal IO +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +# CONFIG_RT_CHERRYUSB_DEVICE is not set +# CONFIG_RT_CHERRYUSB_HOST is not set + +# +# Hardware Drivers Config +# +CONFIG_SOC_SERIES_IFX_PSOCE84=y +CONFIG_KIT_PROCE84_EVK_M55=y + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_USB_TO_UART=y +# CONFIG_BSP_USING_AUDIO is not set +# CONFIG_BSP_USING_AHT20 is not set +# CONFIG_BSP_USING_USB is not set +# CONFIG_BSP_USING_FREERTOS is not set +# CONFIG_BSP_USING_LSM6DS3 is not set +# end of Onboard Peripheral Drivers + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_CANFD is not set +CONFIG_BSP_USING_IPC=y +# CONFIG_BSP_USING_I2C is not set +CONFIG_BSP_USING_UART=y +# CONFIG_BSP_USING_UART1 is not set +CONFIG_BSP_USING_UART2=y +# CONFIG_BSP_USING_UART5 is not set +# CONFIG_BSP_USING_RTC is not set +# CONFIG_BSP_USING_HYPERAM is not set +# CONFIG_BSP_USING_PWM is not set +# CONFIG_BSP_USING_TIM is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_SDIO is not set +# CONFIG_BSP_USING_LCD is not set +# CONFIG_BSP_USING_FILESYSTEM is not set +# CONFIG_USING_LVGL is not set +# end of On-chip Peripheral Drivers + +# +# Board extended module Drivers +# +# CONFIG_RT_USING_WIFI_HOST_DRIVER is not set +# end of Board extended module Drivers +# end of Hardware Drivers Config diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.cproject b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.cproject new file mode 100644 index 00000000..d9261db8 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.cproject @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.gitignore b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.gitignore new file mode 100644 index 00000000..f5de05e5 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h +!edgeprotecttools.exe +/makefile.targets diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.project b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.project new file mode 100644 index 00000000..560cbede --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.project @@ -0,0 +1,29 @@ + + + project + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + com.cypress.studio.app.cymodusnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + Edgi_Talk_M55_IPC + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.OpenOCD.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.OpenOCD.Debug.rttlaunch new file mode 100644 index 00000000..5bb288b6 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.OpenOCD.Debug.rttlaunch @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.rtmenus b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.rtmenus new file mode 100644 index 00000000..28dc3462 Binary files /dev/null and b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/.rtmenus differ diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.DAPLink.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.DAPLink.Debug.rttlaunch new file mode 100644 index 00000000..aa717ac4 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.DAPLink.Debug.rttlaunch @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.Debug.rttlaunch b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.Debug.rttlaunch new file mode 100644 index 00000000..2c0a72a8 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/Edgi_Talk_M55_IPC.OpenOCD.Debug.rttlaunch @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs new file mode 100644 index 00000000..09800d8f --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +toolchain.path.1287942917=${toolchain_install_path}/ARM/GNU_Tools_for_ARM_Embedded_Processors/13.3/bin diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/language.settings.xml b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/language.settings.xml new file mode 100644 index 00000000..6abf005e --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/local_temp_storage.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/local_temp_storage.prefs new file mode 100644 index 00000000..2be04c38 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/local_temp_storage.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +temp.toolchain.exec.path=E\:\\SomeIDE\\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\13.3/bin diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/org.eclipse.core.runtime.prefs b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..9f1acfcf --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +content-types/enabled=true +content-types/org.eclipse.cdt.core.asmSource/file-extensions=s +eclipse.preferences.version=1 \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/projcfg.ini b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/projcfg.ini new file mode 100644 index 00000000..63cd06e1 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/.settings/projcfg.ini @@ -0,0 +1,20 @@ +#RT-Thread Studio Project Configuration +#Thu Mar 26 17:40:49 CST 2026 +project_type=rt-thread +chip_name=CY8C624ALQI_S2D42 +os_branch=full +example_name= +os_version=5.0.2 +selected_rtt_version=5.0.2 +cfg_version=v3.0 +board_base_nano_proj=False +is_use_scons_build=True +output_project_path=D\:\\Desktop\\Talk\\sdk-bsp-psoc_e84-edgi-talk\\projects\\Edgi_Talk_IPC +project_base_bsp=true +hardware_adapter=KitProg3 +project_name=Edgi_Talk_M55_IPC +is_base_example_project=True +board_name=psoce84 +device_vendor=Infineon +bsp_path=repo/Extract/Board_Support_Packages/Infineon/PSOC62-IFX-PROTO-KIT/1.0.0 +bsp_version=1.0.0 diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/Kconfig b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/Kconfig new file mode 100644 index 00000000..ed410f25 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/Kconfig @@ -0,0 +1,34 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "rt-thread" + +# you can change the RTT_ROOT default "rt-thread" +# example : default "F:/git_repositories/rt-thread" + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +config ENV_DIR + string + option env="ENV_ROOT" + default "/" + +config PLATFORM_DIR + string + option env="PLATFORM_DIR" + default "D:/Desktop/Talk/sdk-bsp-psoc_e84-edgi-talk/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/platform" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "$RTT_DIR/../libraries/components/CherryUSB-1.6.0/Kconfig.rtt" +source "$RTT_DIR/../libraries/M55_Config/Kconfig" diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README.md b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README.md new file mode 100644 index 00000000..a69fff91 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README.md @@ -0,0 +1,164 @@ +# Edgi_Talk_M55_IPC Dual-Core Communication Example Project + +[**中文**](./README_zh.md) | **English** + +## Overview + +This project implements **IPC (Inter-Processor Communication)** dual-core communication on the **Edgi-Talk M55 core**, demonstrating message passing between **Cortex-M55** and **Cortex-M33**. + +M55 acts as the **receiver and responder**, receiving "Hello M33" messages from M33 and replying with "Hello M55". + +## Default Configuration + +* Response mode: Automatic reply +* Message format: ASCII encoded text messages +* Uses Infineon PSoC E84 on-chip IPC Pipe hardware + +## Build and Flash + +1. Build the project using RT-Thread Studio or SCons. +2. Flash firmware to M55 core via KitProg3 (DAP). +3. Both M33 and M55 projects must be built and flashed for dual-core communication. +4. Connect serial port to view communication logs as shown below: + +![alt text](figures/1.png) + +## Usage + +### 1. Configuration and Build + +Open in RT-Thread Studio: + +``` +RT-Thread Settings -> Hardware Drivers Config -> On-chip Peripheral Drivers +``` + +Check `Enable IPC` option. + +### 2. Run Example + +In M55 serial terminal, type: + +``` +msh> ipc_test_run +``` + +M55 will start a listener thread, waiting for messages from M33 and automatically replying. + +### 3. Observe Output + +**M55 Output Example**: + +``` +======================================== +[M55] IPC Listener Running +---------------------------------------- +Mode: Receiver & Responder +Peer: Cortex-M33 +Response: Hello M55 +======================================== + +[M55] RX <- [M33]: "Hello M33" | Seq: 1 | Time: 1250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 1 | Time: 1252 ms +[M55] RX <- [M33]: "Hello M33" | Seq: 2 | Time: 2250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 2 | Time: 2252 ms +---------------------------------------- +[M55] Statistics: RX=10, TX=10 +---------------------------------------- +``` + +**Corresponding M33 Output**: + +``` +======================================== +[M33] IPC Demo Started +---------------------------------------- +Mode: Sender +Target: Cortex-M55 +Message: Hello M33 +Interval: 1000 ms +======================================== + +[M33] TX -> [M55]: "Hello M33" | Seq: 1 | Time: 1234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 1 | Time: 1256 ms +[M33] TX -> [M55]: "Hello M33" | Seq: 2 | Time: 2234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 2 | Time: 2256 ms +---------------------------------------- +[M33] Statistics: TX=10, RX=10 +---------------------------------------- +``` + +## Data Protocol + +IPC communication uses the `edge_rc_frame_t` structure: + +```c +typedef struct { + uint8_t client_id; // Client ID + uint16_t intr_mask; // Interrupt mask + uint8_t role; // Role identifier (M33/M55_ECHO) + uint32_t magic; // Magic word (0x5243444DU) + uint32_t seq; // Sequence number + uint16_t channel[8]; // 8-channel data (stores ASCII messages) + uint32_t checksum; // Checksum +} edge_rc_frame_t; +``` + +Message "Hello M55" encoding: + +```c +channel[0] = 0x4865 /* 'He' */ +channel[1] = 0x6C6C /* 'll' */ +channel[2] = 0x6F20 /* 'o ' (space) */ +channel[3] = 0x4D35 /* 'M5' */ +channel[4] = 0x0035 /* '5' */ +``` + +## Startup Sequence + +M55 depends on M33 boot flow. Flash in this order: + +``` ++------------------+ +| Secure M33 | +| (Secure Core) | ++------------------+ + | + v ++------------------+ +| M33 | +| (IPC Sender) | ++------------------+ + | + v ++-------------------+ +| M55 | +| (IPC Receiver) | ++-------------------+ +``` + +## Hardware Connection + +This example uses Infineon PSoC E84 on-chip IPC hardware: + +* Uses IPC Pipe hardware in CM0P +* CM33 uses EP1 (Endpoint 1) +* CM55 uses EP2 (Endpoint 2) +* Uses semaphores for mutual exclusion +* No external wiring required + +## Working Principle + +1. **Receive messages**: M55 continuously reads from IPC device in a separate thread +2. **Verify messages**: Check magic word, role identifier, and checksum +3. **Parse messages**: Verify if it's a "Hello M33" message +4. **Send reply**: Construct "Hello M55" message and reply to M33 +5. **Statistics**: Print statistics every 10 messages processed + +## Configuration Parameters + +The following parameters can be modified in `libraries/HAL_Drivers/ipc_common.h`: + +* `EDGE_IPC_FRAME_POOL_SIZE`: Transmit buffer pool size (default 64) +* `EDGE_IPC_RX_QUEUE_SIZE`: Receive queue size (default 128) +* `EDGE_IPC_SEMA_RETRY_MAX`: Semaphore retry count (default 2) diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README_zh.md b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README_zh.md new file mode 100644 index 00000000..6f0dbcf4 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/README_zh.md @@ -0,0 +1,164 @@ +# Edgi_Talk_M55_IPC 双核通信示例工程 + +**中文** | [**English**](./README.md) + +## 简介 + +本工程在 **Edgi-Talk M55 核心**上实现 **IPC(Inter-Processor Communication)** 双核通信功能,演示了 **Cortex-M55** 与 **Cortex-M33** 之间的消息传递机制。 + +M55 作为**接收端和响应端**,接收来自 M33 的 "Hello M33" 消息,并回复 "Hello M55"。 + +## 默认配置 + +* 响应模式:自动回复 +* 消息格式:ASCII 编码的文本消息 +* 使用 Infineon PSoC E84 片内 IPC Pipe 硬件 + +## 编译与下载 + +1. 使用 RT-Thread Studio 或 SCons 编译工程。 +2. 通过 KitProg3 (DAP) 下载固件到 M55 核心。 +3. 同时需要编译并下载 M33 工程才能完成双核通信。 +4. 连接串口查看通信日志,输出如下如图: + +![alt text](figures/1.png) + +## 使用方法 + +### 1. 配置和编译 + +在 RT-Thread Studio 中打开: + +``` +RT-Thread Settings -> Hardware Drivers Config -> On-chip Peripheral Drivers +``` + +勾选 `Enable IPC` 选项。 + +### 2. 运行示例 + +在 M55 的串口终端输入: + +``` +msh> ipc_test_run +``` + +M55 将启动监听线程,等待来自 M33 的消息并自动回复。 + +### 3. 观察输出 + +**M55 输出示例:** + +``` +======================================== +[M55] IPC Listener Running +---------------------------------------- +Mode: Receiver & Responder +Peer: Cortex-M33 +Response: Hello M55 +======================================== + +[M55] RX <- [M33]: "Hello M33" | Seq: 1 | Time: 1250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 1 | Time: 1252 ms +[M55] RX <- [M33]: "Hello M33" | Seq: 2 | Time: 2250 ms +[M55] TX -> [M33]: "Hello M55" | Seq: 2 | Time: 2252 ms +---------------------------------------- +[M55] Statistics: RX=10, TX=10 +---------------------------------------- +``` + +**对应的 M33 输出:** + +``` +======================================== +[M33] IPC Demo Started +---------------------------------------- +Mode: Sender +Target: Cortex-M55 +Message: Hello M33 +Interval: 1000 ms +======================================== + +[M33] TX -> [M55]: "Hello M33" | Seq: 1 | Time: 1234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 1 | Time: 1256 ms +[M33] TX -> [M55]: "Hello M33" | Seq: 2 | Time: 2234 ms +[M33] RX <- [M55]: "Hello M55" | Seq: 2 | Time: 2256 ms +---------------------------------------- +[M33] Statistics: TX=10, RX=10 +---------------------------------------- +``` + +## 数据协议 + +IPC 通信使用 `edge_rc_frame_t` 结构体: + +```c +typedef struct { + uint8_t client_id; // 客户端 ID + uint16_t intr_mask; // 中断掩码 + uint8_t role; // 角色标识 (M33/M55_ECHO) + uint32_t magic; // 魔术字 (0x5243444DU) + uint32_t seq; // 序列号 + uint16_t channel[8]; // 8通道数据(存储 ASCII 消息) + uint32_t checksum; // 校验和 +} edge_rc_frame_t; +``` + +消息 "Hello M55" 编码方式: + +```c +channel[0] = 0x4865 /* 'He' */ +channel[1] = 0x6C6C /* 'll' */ +channel[2] = 0x6F20 /* 'o ' (space) */ +channel[3] = 0x4D35 /* 'M5' */ +channel[4] = 0x0035 /* '5' */ +``` + +## 启动流程 + +M55 依赖 M33 启动流程,烧录顺序如下: + +``` ++------------------+ +| Secure M33 | +| (安全内核启动) | ++------------------+ + | + v ++------------------+ +| M33 | +| (IPC 发送端) | ++------------------+ + | + v ++-------------------+ +| M55 | +| (IPC 接收端) | ++-------------------+ +``` + +## 硬件连接 + +本示例使用 Infineon PSoC E84 的片内 IPC 硬件: + +* 使用 CM0P 中的 IPC Pipe 硬件 +* CM33 使用 EP1 (Endpoint 1) +* CM55 使用 EP2 (Endpoint 2) +* 使用信号量进行互斥访问 +* 不需要外部连线 + +## 工作原理 + +1. **接收消息**:M55 在独立线程中循环读取 IPC 设备 +2. **验证消息**:检查魔术字、角色标识和校验和 +3. **解析消息**:验证是否为 "Hello M33" 消息 +4. **发送回复**:构造 "Hello M55" 消息并回复给 M33 +5. **统计信息**:每处理 10 条消息打印一次统计 + +## 配置参数 + +在 `libraries/HAL_Drivers/ipc_common.h` 中可修改以下参数: + +* `EDGE_IPC_FRAME_POOL_SIZE`: 发送缓冲池大小(默认 64) +* `EDGE_IPC_RX_QUEUE_SIZE`: 接收队列大小(默认 128) +* `EDGE_IPC_SEMA_RETRY_MAX`: 信号量重试次数(默认 2) \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConscript new file mode 100644 index 00000000..20f7689c --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConstruct b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConstruct new file mode 100644 index 00000000..dfd7328c --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/SConstruct @@ -0,0 +1,142 @@ +import os +import sys +import rtconfig +import platform +import subprocess +import uuid + +if os.path.exists('rt-thread'): + RTT_ROOT = os.path.normpath(os.getcwd() + '/rt-thread') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../rt-thread') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except Exception as e: + print("Error message:", e) + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + sys.exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) +env.AppendUnique(CPPPATH=[os.getcwd()]) + +if rtconfig.PLATFORM in ['iccarm']: + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') +if os.path.exists(SDK_ROOT + '/libraries/components'): + libraries_path_prefix = SDK_ROOT + '/libraries/components' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/../../libraries/components' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +IFX_library = 'Packages' +rtconfig.BSP_LIBRARY_TYPE = IFX_library + +# set spawn +def ourspawn(sh, escape, cmd, args, e): + filename = str(uuid.uuid4()) + newargs = ' '.join(args[1:]) + cmdline = cmd + " " + newargs + if (len(cmdline) > 16 * 1024): + f = open(filename, 'w') + f.write(' '.join(args[1:]).replace('\\', '/')) + f.close() + # exec + cmdline = cmd + " @" + filename + proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, shell = False, env = e) + data, err = proc.communicate() + rv = proc.wait() + def res_output(_output, _s): + if len(_s): + if isinstance(_s, str): + _output(_s) + elif isinstance(_s, bytes): + _output(str(_s, 'UTF-8')) + else: + _output(str(_s)) + res_output(sys.stderr.write, err) + res_output(sys.stdout.write, data) + if os.path.isfile(filename): + os.remove(filename) + return rv + +if platform.system() == 'Windows': + env['SPAWN'] = ourspawn + +# Add project libs with VariantDir +if os.path.exists(os.path.join(os.getcwd(), "libs", "SConscript")): + env.VariantDir('build/libs', 'libs', duplicate=0) +else: + env.VariantDir('build/libs', '../../libs', duplicate=0) + objs.extend(SConscript('../../libs/SConscript', variant_dir='build/libs', duplicate=0)) + +if os.path.exists(os.path.join(os.getcwd(), "libraries")): + # Set VariantDir for libraries + env.VariantDir('build/libraries/HAL_Drivers', 'libraries/HAL_Drivers', duplicate=0) + env.VariantDir('build/libraries/components', 'libraries/components', duplicate=0) + env.VariantDir('build/libraries/M55_Config/board', 'libraries/M55_Config/board', duplicate=0) + env.VariantDir('build/libraries/Common/board', 'libraries/Common/board', duplicate=0) + + objs.extend(SConscript('libraries/HAL_Drivers/SConscript', variant_dir='build/libraries/HAL_Drivers', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_cmsis-latest/SConscript', variant_dir='build/libraries/components/Infineon_cmsis-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_core-lib-latest/SConscript', variant_dir='build/libraries/components/Infineon_core-lib-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/hal/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/hal', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/pdl', duplicate=0)) + objs.extend(SConscript('libraries/components/async-transfer/SConscript', variant_dir='build/libraries/components/async-transfer', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm', duplicate=0)) + objs.extend(SConscript('libraries/components/serial-memory/SConscript', variant_dir='build/libraries/components/serial-memory', duplicate=0)) + objs.extend(SConscript('libraries/components/Infineon_retarget-io-latest/SConscript', variant_dir='build/libraries/components/Infineon_retarget-io-latest', duplicate=0)) + objs.extend(SConscript('libraries/components/ASRC/SConscript', variant_dir='build/libraries/components/ASRC', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-srf/SConscript', variant_dir='build/libraries/components/mtb-srf', duplicate=0)) + objs.extend(SConscript('libraries/components/mtb-ipc/SConscript', variant_dir='build/libraries/components/mtb-ipc', duplicate=0)) + objs.extend(SConscript('libraries/components/littlefs/SConscript', variant_dir='build/libraries/components/littlefs', duplicate=0)) + objs.extend(SConscript('libraries/components/SConscript', variant_dir='build/libraries/components', duplicate=0)) + objs.extend(SConscript('libraries/Common/board/SConscript', variant_dir='build/libraries/Common/board', duplicate=0)) +else: + # Set VariantDir for external libraries + env.VariantDir('build/libraries/HAL_Drivers', '../../../libraries/HAL_Drivers', duplicate=0) + env.VariantDir('build/libraries/components', '../../../libraries/components', duplicate=0) + env.VariantDir('build/libraries/M55_Config/board', '../../../libraries/M55_Config/board', duplicate=0) + env.VariantDir('build/libraries/Common/board', '../../../libraries/Common/board', duplicate=0) + + objs.extend(SConscript('../../../libraries/HAL_Drivers/SConscript', variant_dir='build/libraries/HAL_Drivers', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_cmsis-latest/SConscript', variant_dir='build/libraries/components/Infineon_cmsis-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_core-lib-latest/SConscript', variant_dir='build/libraries/components/Infineon_core-lib-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/hal/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/hal', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/pdl/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/pdl', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/async-transfer/SConscript', variant_dir='build/libraries/components/async-transfer', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm/SConscript', variant_dir='build/libraries/components/mtb-device-support-pse8xxgp/device-utils/syspm', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/serial-memory/SConscript', variant_dir='build/libraries/components/serial-memory', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/Infineon_retarget-io-latest/SConscript', variant_dir='build/libraries/components/Infineon_retarget-io-latest', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/ASRC/SConscript', variant_dir='build/libraries/components/ASRC', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-srf/SConscript', variant_dir='build/libraries/components/mtb-srf', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/mtb-ipc/SConscript', variant_dir='build/libraries/components/mtb-ipc', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/littlefs/SConscript', variant_dir='build/libraries/components/littlefs', duplicate=0)) + objs.extend(SConscript('../../../libraries/components/SConscript', variant_dir='build/libraries/components', duplicate=0)) + objs.extend(SConscript('../../../libraries/Common/board/SConscript', variant_dir='build/libraries/Common/board', duplicate=0)) + +# make a building +DoBuilding(TARGET, objs) diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/SConscript new file mode 100644 index 00000000..034056ec --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/SConscript @@ -0,0 +1,16 @@ +import rtconfig +from building import * +import os + +cwd = GetCurrentDir() +path = [cwd] +src = Glob('*.c') + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = path) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) + +Return('group') diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/main.c b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/main.c new file mode 100644 index 00000000..3f8b55f8 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/applications/main.c @@ -0,0 +1,158 @@ +#include +#include +#include +#include + +#include "drv_ipc.h" + +#define LED_PIN_G GET_PIN(16, 6) + +static rt_device_t g_ipc_dev = RT_NULL; +static rt_thread_t g_ipc_thread = RT_NULL; + +static void ipc_demo_run(void) +{ + edge_rc_frame_t rx_frame; + edge_rc_frame_t tx_frame; + rt_uint32_t rx_count = 0; + rt_uint32_t tx_count = 0; + + rt_kprintf("\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("[M55] IPC Listener Running\r\n"); + rt_kprintf("----------------------------------------\r\n"); + rt_kprintf("Mode: Receiver & Responder\r\n"); + rt_kprintf("Peer: Cortex-M33\r\n"); + rt_kprintf("Response: Hello M55\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("\r\n"); + + while (1) { + /* 接收消息 */ + if (rt_device_read(g_ipc_dev, 0, &rx_frame, 1) == 1) { + /* 验证消息 */ + if (rx_frame.magic == RC_MAGIC_WORD && + rx_frame.role == RC_ROLE_M33 && + edge_rc_checksum(&rx_frame) == rx_frame.checksum) { + + /* 检查是否是 "Hello M33" 消息 */ + if (rx_frame.channel[0] == 0x4865UL && /* 'He' */ + rx_frame.channel[1] == 0x6C6CUL && /* 'll' */ + rx_frame.channel[2] == 0x6F20UL && /* 'o ' */ + rx_frame.channel[3] == 0x4D33UL && /* 'M3' */ + rx_frame.channel[4] == 0x0033UL) { /* '3' */ + + rt_kprintf("[M55] RX <- [M33]: \"Hello M33\" | Seq: %5lu | Time: %8lu ms\r\n", + rx_frame.seq, rt_tick_get() * 1000 / RT_TICK_PER_SECOND); + rx_count++; + + /* 准备回复消息 - "Hello M55" */ + memset(&tx_frame, 0, sizeof(tx_frame)); + tx_frame.client_id = CM33_IPC_PIPE_CLIENT_ID; + tx_frame.role = RC_ROLE_M55_ECHO; + tx_frame.magic = RC_MAGIC_WORD; + tx_frame.seq = rx_frame.seq; + /* Encode "Hello M55" into channels (2 chars per channel) */ + tx_frame.channel[0] = 0x4865UL; /* 'He' in ASCII */ + tx_frame.channel[1] = 0x6C6CUL; /* 'll' in ASCII */ + tx_frame.channel[2] = 0x6F20UL; /* 'o ' in ASCII */ + tx_frame.channel[3] = 0x4D35UL; /* 'M5' in ASCII */ + tx_frame.channel[4] = 0x0035UL; /* '5' in ASCII */ + tx_frame.checksum = edge_rc_checksum(&tx_frame); + + /* 发送回复 */ + if (rt_device_write(g_ipc_dev, 0, &tx_frame, 1) == 1) { + rt_kprintf("[M55] TX -> [M33]: \"Hello M55\" | Seq: %5lu | Time: %8lu ms\r\n", + tx_frame.seq, rt_tick_get() * 1000 / RT_TICK_PER_SECOND); + tx_count++; + + /* 每 10 次交互打印统计信息 */ + if (tx_count % 10 == 0) { + rt_kprintf("----------------------------------------\r\n"); + rt_kprintf("[M55] Statistics: RX=%lu, TX=%lu\r\n", rx_count, tx_count); + rt_kprintf("----------------------------------------\r\n"); + } + } else { + rt_kprintf("[M55] Send reply failed\r\n"); + } + } + } else { + rt_kprintf("[M55] Invalid message received\r\n"); + } + } + + rt_thread_mdelay(10); + } +} + +static void ipc_demo_entry(void* parameter) +{ + (void)parameter; + ipc_demo_run(); +} + +static int ipc_test_run(void) +{ + /* 查找 IPC 设备 */ + g_ipc_dev = edge_ipc_device_find(); + if (g_ipc_dev == RT_NULL) { + if (edge_ipc_device_register() != RT_EOK) { + rt_kprintf("[M55] IPC: Device register failed\r\n"); + return -RT_ERROR; + } + g_ipc_dev = edge_ipc_device_find(); + if (g_ipc_dev == RT_NULL) { + rt_kprintf("[M55] IPC: Device not found\r\n"); + return -RT_ERROR; + } + } + + /* 打开 IPC 设备 */ + if (rt_device_open(g_ipc_dev, RT_DEVICE_OFLAG_RDWR) != RT_EOK) { + rt_kprintf("[M55] IPC: Open device failed\r\n"); + return -RT_ERROR; + } + + /* 创建 IPC 处理线程 */ + if (g_ipc_thread == RT_NULL) { + g_ipc_thread = rt_thread_create("ipc_demo", + ipc_demo_entry, + RT_NULL, + 2048, + 25, + 10); + if (g_ipc_thread == RT_NULL) { + rt_kprintf("[M55] IPC: Create thread failed\r\n"); + return -RT_ENOMEM; + } + + rt_thread_startup(g_ipc_thread); + } + + return RT_EOK; +} +MSH_CMD_EXPORT(ipc_test_run, Start M55 IPC test); + +int main(void) +{ + rt_kprintf("\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf(" RT-Thread on Cortex-M55 Core \r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("Command: ipc_test_run\r\n"); + rt_kprintf("Status: Running\r\n"); + rt_kprintf("========================================\r\n"); + rt_kprintf("\r\n"); + + rt_pin_mode(LED_PIN_G, PIN_MODE_OUTPUT); + + while (1) + { + rt_pin_write(LED_PIN_G, PIN_LOW); + rt_thread_mdelay(500); + rt_pin_write(LED_PIN_G, PIN_HIGH); + rt_thread_mdelay(500); + } + + return 0; +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/SConscript b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/SConscript new file mode 100644 index 00000000..b26ca201 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/SConscript @@ -0,0 +1,71 @@ +import os +import rtconfig +from building import * + +Import("SDK_LIB") + +objs = [] +cwd = GetCurrentDir() +list = os.listdir(cwd) + +# add general drivers +src = Glob('*.c') + +path = [cwd] + +startup_path_prefix = SDK_LIB +Tool_path = None +index = "mtb-device-support-pse8xxgp" + +for filename in os.listdir(startup_path_prefix): + if index in filename: + Tool_path = os.path.join(startup_path_prefix, filename) + + + +CPPDEFINES = [ + "BLHS_SUPPORT", + "COMPONENT_55500", + "COMPONENT_55500A1", + "COMPONENT_APP_KIT_PSE84_EVAL_EPC2", + "COMPONENT_CM55", + "COMPONENT_CM55_0", + "COMPONENT_Debug", + "COMPONENT_GCC_ARM", + "COMPONENT_GFXSS", + "COMPONENT_HARDFP", + "COMPONENT_HCI_UART", + "COMPONENT_MTB_DEVICE_SUPPORT", + "COMPONENT_MTB_HAL", + "COMPONENT_MW_ASYNC_TRANSFER", + "COMPONENT_MW_CMSIS", + "COMPONENT_MW_CORE_LIB", + "COMPONENT_MW_CORE_MAKE", + # "COMPONENT_MW_MTB_IPC", + # "COMPONENT_MW_MTB_SRF", + "COMPONENT_MW_RETARGET_IO", + "COMPONENT_NON_SECURE_DEVICE", + "COMPONENT_PSE84", + "COMPONENT_SM", + "CORE_NAME_CM55_0=1", + "CYBSP_MCUBOOT_HEADER_SIZE=0x400", + "CY_APPNAME_proj_cm55", + "CY_RETARGET_IO_CONVERT_LF_TO_CRLF", + "CY_SUPPORTS_DEVICE_VALIDATION", + "CY_TARGET_BOARD=APP_KIT_PSE84_EVAL_EPC2", + "DEBUG", + "PSE846GPS2DBZC4A", + "TARGET_APP_KIT_PSE84_EVAL_EPC2", + "TRXV5", + "_BAREMETAL=0", + "FLASH_BOOT", + "CY_PDL_FLASH_BOOT", + "BUILD_KIT_PROCE84_EVK_M55", +] +group = DefineGroup("Drivers", src, depend=[""], CPPPATH=path, CPPDEFINES=CPPDEFINES) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) +Return("group") diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.c b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.c new file mode 100644 index 00000000..5e8a678b --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2022-06-29 Rbb666 first version + * 2025-08-20 Hydevcode + */ + +#include "board.h" +#define ES8388_CTRL GET_PIN(16, 2) +#define SPEAKER_OE_CTRL GET_PIN(21, 6) +#define WIFI_OE_CTRL GET_PIN(16, 3) +#define WIFI_WL_REG_OE_CTRL GET_PIN(11, 6) +#define CTRL GET_PIN(7, 2) + +void cy_bsp_all_init(void) +{ + cy_rslt_t result; + + /* Initialize the device and board peripherals */ + result = cybsp_init(); + + /* Board init failed. Stop program execution */ + if (result != CY_RSLT_SUCCESS) + { + CY_ASSERT(0); + } +} + +void _start(void) +{ + extern int entry(void); + entry(); + while (1); + __builtin_unreachable(); +} + +void poweroff(void) +{ + rt_pin_mode(WIFI_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_OE_CTRL, PIN_LOW); + + rt_pin_mode(WIFI_WL_REG_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_WL_REG_OE_CTRL, PIN_LOW); + + rt_pin_mode(ES8388_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(ES8388_CTRL, PIN_LOW); + + rt_pin_mode(SPEAKER_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(SPEAKER_OE_CTRL, PIN_LOW); + + rt_pin_mode(CTRL, PIN_MODE_OUTPUT); + rt_pin_write(CTRL, PIN_LOW); + + Cy_SysClk_PllDisable(SRSS_DPLL_LP_0_PATH_NUM); + Cy_SysPm_SystemEnterHibernate(); +} + +#ifdef RT_USING_MSH + MSH_CMD_EXPORT(poweroff, The software enables the system to shut down. Simply press the button to restart it.); +#endif + +//Mos管控制 +#define ES8388_CTRL GET_PIN(16, 2) //ES8388 电源 Enable引脚 +#define SPEAKER_OE_CTRL GET_PIN(21, 6) //功放 Enable引脚 +#define WIFI_OE_CTRL GET_PIN(16, 3) //WIFI Enable引脚 +#define WIFI_WL_REG_OE_CTRL GET_PIN(11, 6) //WiFi寄存器开关 +#define CTRL GET_PIN(7, 2) //底板 3V3 DCDC电源控制 +int en_gpio(void) +{ + rt_pin_mode(WIFI_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_OE_CTRL, PIN_HIGH); + + rt_pin_mode(WIFI_WL_REG_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(WIFI_WL_REG_OE_CTRL, PIN_HIGH); + + rt_pin_mode(ES8388_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(ES8388_CTRL, PIN_HIGH); + + rt_pin_mode(SPEAKER_OE_CTRL, PIN_MODE_OUTPUT); + rt_pin_write(SPEAKER_OE_CTRL, PIN_HIGH); + + return 0; +} +INIT_BOARD_EXPORT(en_gpio); \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.h b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.h new file mode 100644 index 00000000..93078cf7 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2022-06-29 Rbb666 first version + * 2022-07-26 Rbb666 Add Flash Config + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#include "cy_result.h" +#include "cybsp_types.h" +#include "mtb_hal.h" +#include "cybsp.h" + +#ifdef BSP_USING_USBD + #include "cy_usb_dev.h" + #include "cy_usb_dev_hid.h" +#endif + +/*SRAM CONFIG*/ +#define IFX_SRAM_SIZE (1408) +#define IFX_SRAM_END (0x26060000 + IFX_SRAM_SIZE * 1024) + +#ifdef __ARMCC_VERSION + extern int Image$$RW_IRAM1$$ZI$$Limit; + #define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) + #define HEAP_END IFX_SRAM_END +#elif __ICCARM__ + #pragma section="HEAP" + #define HEAP_BEGIN (__segment_end("HEAP")) +#else + extern unsigned int __end__; + extern unsigned int __HeapLimit; + #define HEAP_BEGIN (void*)&__end__ + #define HEAP_END (void*)&__HeapLimit +#endif + +void cy_bsp_all_init(void); + +#endif + diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/linker_scripts/link.ld b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/linker_scripts/link.ld new file mode 100644 index 00000000..cc092732 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/board/linker_scripts/link.ld @@ -0,0 +1,448 @@ +/***************************************************************************//** +* \file pse84_ns_cm55.ld +* \version 1.0.0 +* +* Linker file for the GNU C compiler. +* +* The main purpose of the linker script is to describe how the sections in the +* input files should be mapped into the output file, and to control the memory +* layout of the output file. +* +* +* \note The linker files included with the PDL template projects must be generic +* and handle all common use cases. Your project may not use every section +* defined in the linker files. In that case you may see warnings during the +* build process. In your project, you can simply comment out or remove the +* relevant code in the linker file. +* +******************************************************************************** +* \copyright +* Copyright (c) (2020-2025), Cypress Semiconductor Corporation (an Infineon company) or +* an affiliate of Cypress Semiconductor Corporation. +* SPDX-License-Identifier: Apache-2.0 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ +/* Specify the output format for the linker script */ +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +/* Search for libraries in the current directory */ +SEARCH_DIR(.) +/* Specify the group of libraries to link against */ +GROUP(-lgcc -lc -lnosys) +GROUP(libgcc.a libc.a libm.a libnosys.a) +/* Define the entry point of the program, which is the reset handler */ +ENTRY(Reset_Handler) + +/* Define the stack size for the application */ +/* To set stack size in application add makefile ldflags: -Wl,--defsym=APP_MSP_STACK_SIZE= */ +PROVIDE(__StackSize = DEFINED(APP_MSP_STACK_SIZE) ? APP_MSP_STACK_SIZE : 0x1000); + +/* Include the device memory definitions generated by the Device Configurator */ +/* This file is automatically generated. */ + +MEMORY +{ + m55_data_INTERNAL : ORIGIN = 0x20000000, LENGTH = 0x00040000 + m55_code_INTERNAL : ORIGIN = 0x00000000, LENGTH = 0x00040000 + m55_nvm : ORIGIN = 0x60580000, LENGTH = 0x00800000 + m55_trailer : ORIGIN = 0x60D80000, LENGTH = 0x00040000 + m55_code_secondary : ORIGIN = 0x26000000, LENGTH = 0x00060000 + m55_data_secondary : ORIGIN = 0x26060000, LENGTH = 0x00160000 + m33_m55_shared : ORIGIN = 0x261C0000, LENGTH = 0x00040000 + gfx_mem : ORIGIN = 0x26200000, LENGTH = 0x00300000 + m55_allocatable_shared : ORIGIN = 0x240FF000, LENGTH = 0x00001000 +} + +REGION_ALIAS("m55_data_sel", m55_data_INTERNAL) +REGION_ALIAS("m55_code_sel", m55_code_INTERNAL) +REGION_ALIAS("m55_nvm_sel", m55_nvm) +REGION_ALIAS("m55_trailer_sel", m55_trailer) +REGION_ALIAS("m55_code_secondary_sel", m55_code_secondary) +REGION_ALIAS("m55_data_secondary_sel", m55_data_secondary) +REGION_ALIAS("m33_m55_shared_sel", m33_m55_shared) +REGION_ALIAS("gfx_mem_sel", gfx_mem) +REGION_ALIAS("m55_allocatable_shared_sel", m55_allocatable_shared) + + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + */ + +/* Device definitions */ +VECTORS_ALIGNMENT = 0x400; + +/* The size of the MCU boot header area at the start of main code region */ +MCUBOOT_HEADER_SIZE = 0x400; + +/* Define the sections */ +SECTIONS +{ + /* This section reserves a space for MCUBoot header */ + .mcu_boot_header (READONLY) : ALIGN(MCUBOOT_HEADER_SIZE) + { + . += MCUBOOT_HEADER_SIZE; + } > m55_nvm_sel + + /* This section is intended to hold the main application code for the Cortex-M55 */ + /* Performance-sensitive or critical functions that need to be executed in sram are manually excluded */ + .app_code_main : ALIGN(VECTORS_ALIGNMENT) + { + __text_begin = .; + __Vectors = . ; + /* Keep the vector table */ + KEEP(*(.vectors)) + + . = ALIGN(4); + + __Vectors_End = .; + + /* Keep initializers */ + KEEP(*(.init)) + /* Keep finalizers */ + KEEP(*(.fini)) + /* Static constructors */ + *crtbegin.*(.ctors) + *crtbegin?.*(.ctors) + *(EXCLUDE_FILE(*crtend?.* *crtend.*) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + /* Static destructors and atexit() */ + *crtbegin.*(.dtors) + *crtbegin?.*(.dtors) + *(EXCLUDE_FILE(*crtend?.* *crtend.*) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + /* Read only code (constants) */ + *(.rodata .rodata.* .constdata .constdata.* .conststring .conststring.*) + /* Exclude certain files from this section as they will be placed in RAM */ + *(EXCLUDE_FILE(*cy_syslib.* *cy_syslib_ext.* *cy_smif.* *cy_smif_memnum.* *cy_smif_memslot.* *cy_smif_sfdp.* *cy_smif_hb_flash.* *mtb_hal_memoryspi.* *mtb_serial_memory.* *freertos/Source*.* *cy_clib_support*.* *cy_mutex_pool*.* *cy_time.* *cyabs_*.* *cy_worker_thread.* *cmsis*.*) .text*) + + . = ALIGN(4); + /* section information for utest */ + . = ALIGN(4); + __rt_utest_tc_tab_start = .; + KEEP(*(UtestTcTab)) + __rt_utest_tc_tab_end = .; + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + + /* section information for modules */ + . = ALIGN(4); + __rtmsymtab_start = .; + KEEP(*(RTMSymTab)) + __rtmsymtab_end = .; + + /* section information for initialization */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + __usbh_class_info_start__ = .; + KEEP(*(.usbh_class_info)) + __usbh_class_info_end__ = .; + + __text_end = .; + _etext = .; + _estack = .; + } > m55_nvm_sel + . = ALIGN(4); + .ctors : + { + PROVIDE(__ctors_start__ = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE(__ctors_end__ = .); + } > m55_nvm_sel + + . = ALIGN(4); + .dtors : + { + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + } > m55_nvm_sel + + /* Exception tables for ARM architecture */ + .ARM.extab (READONLY) : ALIGN(4) + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > m55_nvm_sel + + /* Exception index tables for ARM architecture */ + .ARM.exidx (READONLY) : ALIGN(4) + { + __exidx_start = .; + + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + __exidx_end = .; + } > m55_nvm_sel + + + /* Define copying of data from flash memory to RAM during the startup */ + .copy.table (READONLY) : ALIGN(4) + { + __copy_table_start__ = .; + + /* Initialized data in DTCM */ + LONG(LOADADDR(.data)) /* From load address in ext flash */ + LONG(ADDR(.data)) /* To run address in DTCM */ + LONG(SIZEOF(.data)/4) /* Size in words */ + + /* Initialized data in SOC memory */ + LONG(LOADADDR(.cy_socmem_data)) /* From load address in ext flash */ + LONG(ADDR(.cy_socmem_data)) /* To run address in SOCMEM */ + LONG(SIZEOF(.cy_socmem_data)/4) /* Size in words */ + + /* Code in ITCM */ + LONG (LOADADDR(.app_code_itcm)) /* From load address in ext flash */ + LONG (ADDR(.app_code_itcm)) /* To run address in ITCM */ + LONG (SIZEOF(.app_code_itcm)/4) /* Size in words */ + + /* Code in SOC memory */ + LONG (LOADADDR(.app_code_socmem)) /* From load address in ext flash */ + LONG (ADDR(.app_code_socmem)) /* To run address in SOCMEM */ + LONG (SIZEOF(.app_code_socmem)/4) /* Size in words */ + + __copy_table_end__ = .; + } > m55_nvm_sel + + /* Define zeroing of the uninitialized data section */ + .zero.table (READONLY): ALIGN(4) + { + __zero_table_start__ = .; + + LONG(__bss_start__) /* Start of the zero-initialized data section */ + LONG((__bss_end__ - __bss_start__)/4) /* Size of the zero-initialized data section in words */ + + __zero_table_end__ = .; + } > m55_nvm_sel + + /* A section for performance-sensitive or critical functions that need to be executed in ITCM */ + .app_code_itcm : ALIGN(16) + { + /* Reserving the first 16 bytes to avoid debug symbols (that have default address 0x0) to be confused with actual code */ + . += 16; + KEEP(*(.cy_itcm)) + KEEP(*(.cy_sram_code)) + KEEP(*(.cy_ramfunc)) + KEEP(*(.text.cy_os_common)) + *cy_syslib_ext.*(.text*) + *cy_syslib.*(.text*) + *cy_smif.*(.text*) + *cy_smif_memnum.*(.text*) + *cy_smif_memslot.*(.text*) + *cy_smif_sfdp.*(.text*) + *cy_smif_hb_flash.*(.text*) + *mtb_hal_memoryspi.*(.text*) + *mtb_serial_memory.*(.text*) + *freertos/Source*.*(.text*) + *cy_clib_support*.*(.text*) + *cy_mutex_pool*.*(.text*) + *cy_time.*(.text*) + *cyabs_*.*(.text*) + *cy_worker_thread.*(.text*) + *cmsis*.*(.text*) + + . = ALIGN(4); + } > m55_code_INTERNAL AT > m55_nvm_sel + + /* A section for the vector table */ + .ram_vectors (NOLOAD) : ALIGN(VECTORS_ALIGNMENT) + { + __ram_vectors_start__ = .; + + KEEP(*(.ram_vectors)) + + __ram_vectors_end__ = .; + } > m55_code_INTERNAL + + /* A section for less performance-sensitive or critical functions that might be executed in SOC memory */ + .app_code_socmem : ALIGN(4) + { + KEEP(*(.cy_socmem_code)) + + . = ALIGN(4); + } > m55_code_secondary AT > m55_nvm_sel + + /* A section for initialized data memory */ + .data : ALIGN(4) + { + __data_start__ = .; + + *(vtable) + *(.data*) + + . = ALIGN(4); + + /* Array of pointers to preinit functions */ + PROVIDE_HIDDEN (__preinit_array_start = .); + + KEEP(*(.preinit_array)) + + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + + /* Array of pointers to init functions */ + PROVIDE_HIDDEN (__init_array_start = .); + + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + + /* Array of pointers to finalizer functions */ + + PROVIDE_HIDDEN (__fini_array_start = .); + + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + + . = ALIGN(4); + + KEEP(*(.cy_dtcm)) + + . = ALIGN(4); + + __data_end__ = .; + } > m55_data_INTERNAL AT > m55_nvm_sel + + /* A section for variables that should not be initialized during the device startup */ + .noinit (NOLOAD) : ALIGN(8) + { + __noinit_start__ = .; + + KEEP(*(.noinit)) + + . = ALIGN(4); + + __noinit_end__ = .; + } > m55_data_INTERNAL + + /* A section for non-initialized data memory */ + .bss(NOLOAD) : ALIGN(4) + { + __bss_start__ = .; + + *(.bss*) + *(COMMON) + + . = ALIGN(4); + + __bss_end__ = .; + } > m55_data_INTERNAL + + __StackTop = ORIGIN(m55_data_INTERNAL) + LENGTH(m55_data_INTERNAL); + __StackLimit = __StackTop - __StackSize; + PROVIDE(__stack = __StackTop); + + /* Check if .data + .noinit + .bss + stack exceeds RAM limit in region m55_data_INTERNAL */ + ASSERT( + __StackLimit >= __bss_end__, + "Error: m55_data_INTERNAL region overflowed with stack. Ensure that the stack size is within the available RAM." + ) + + /* A section for SOC memory data */ + .cy_socmem_data : ALIGN(4) + { + KEEP(*(.cy_socmem_data)) + + . = ALIGN(4); + + } > m55_data_secondary AT > m55_nvm_sel + + /* A section for the heap memory */ + .heap(NOLOAD) : ALIGN(8) + { + __HeapBase = .; + __end__ = .; + end = __end__; + + KEEP(*(.heap*)) + + . = ORIGIN(m55_data_secondary) + LENGTH(m55_data_secondary); + + __HeapLimit = .; + } > m55_data_secondary + + /* A section for the GPU buffer */ + .cy_gpu_buf(NOLOAD) : + { + KEEP(*(.cy_gpu_buf)) + } > gfx_mem + + .reserved_socmem(NOLOAD) : + { + . = ORIGIN(m33_m55_shared) + LENGTH(m33_m55_shared); /* reserved SOC memory */ + } > m33_m55_shared + + + /* A section for shared RAM memory where only the Cortex-M55 can allocate data but all cores can access */ + .cy_sharedmem(NOLOAD) : ALIGN(4) + { + KEEP(*(.cy_sharedmem)) + + . = ALIGN(4); + } > m55_allocatable_shared + + /* Reserve a trail space for the signature for the bootloader - do not place any code here */ + .cy_trailer(NOLOAD) : + { + } > m55_trailer_sel + +} diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/figures/1.png b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/figures/1.png new file mode 100644 index 00000000..37b145c5 Binary files /dev/null and b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/figures/1.png differ diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/mklinks.bat b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/mklinks.bat new file mode 100644 index 00000000..39e904f2 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/mklinks.bat @@ -0,0 +1,7 @@ +@echo off +cd /d "%~dp0" +@echo on +mklink /J rt-thread ..\..\..\rt-thread +mklink /J libraries ..\..\..\libraries +mklink /J libs ..\..\libs +mklink /J tools ..\..\..\tools \ No newline at end of file diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.h b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.h new file mode 100644 index 00000000..67568432 --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.h @@ -0,0 +1,394 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 8 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_HOOK_USING_FUNC_PTR +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 1024 +#define RT_USING_TIMER_SOFT +#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_STACK_SIZE 2048 + +/* kservice optimization */ + +#define RT_KSERVICE_USING_STDLIB +/* end of kservice optimization */ +#define RT_USING_DEBUG +#define RT_DEBUGING_COLOR +#define RT_DEBUGING_CONTEXT + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE +/* end of Inter-Thread communication */ + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_MEMHEAP +#define RT_MEMHEAP_FAST_MODE +#define RT_USING_MEMHEAP_AS_HEAP +#define RT_USING_MEMHEAP_AUTO_BINDING +#define RT_USING_HEAP +/* end of Memory Management */ + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 1024 +#define RT_CONSOLE_DEVICE_NAME "uart2" +/* end of Kernel Device Object */ +#define RT_VER_NUM 0x50002 +/* end of RT-Thread Kernel */ + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 +#define RT_USING_MSH +#define RT_USING_FINSH +#define FINSH_USING_MSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_CMD_SIZE 80 +#define MSH_USING_BUILT_IN_COMMANDS +#define FINSH_USING_DESCRIPTION +#define FINSH_ARG_MAX 10 +#define FINSH_USING_OPTION_COMPLETION + +/* DFS: device virtual file system */ + +#define RT_USING_DFS +#define DFS_USING_POSIX +#define DFS_USING_WORKDIR +#define DFS_FD_MAX 16 +#define RT_USING_DFS_V1 +#define DFS_FILESYSTEMS_MAX 4 +#define DFS_FILESYSTEM_TYPES_MAX 4 +#define RT_USING_DFS_ELMFAT + +/* elm-chan's FatFs, Generic FAT Filesystem Module */ + +#define RT_DFS_ELM_CODE_PAGE 437 +#define RT_DFS_ELM_WORD_ACCESS +#define RT_DFS_ELM_USE_LFN_3 +#define RT_DFS_ELM_USE_LFN 3 +#define RT_DFS_ELM_LFN_UNICODE_0 +#define RT_DFS_ELM_LFN_UNICODE 0 +#define RT_DFS_ELM_MAX_LFN 255 +#define RT_DFS_ELM_DRIVES 2 +#define RT_DFS_ELM_MAX_SECTOR_SIZE 512 +#define RT_DFS_ELM_REENTRANT +#define RT_DFS_ELM_MUTEX_TIMEOUT 3000 +/* end of elm-chan's FatFs, Generic FAT Filesystem Module */ +#define RT_USING_DFS_DEVFS +/* end of DFS: device virtual file system */ + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_UNAMED_PIPE_NUMBER 64 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V1 +#define RT_SERIAL_RB_BUFSZ 128 +#define RT_USING_PIN + +/* Using USB */ + +/* end of Using USB */ +/* end of Device Drivers */ + +/* C/C++ and POSIX layer */ + +/* ISO-ANSI C layer */ + +/* Timezone and Daylight Saving Time */ + +#define RT_LIBC_USING_LIGHT_TZ_DST +#define RT_LIBC_TZ_DEFAULT_HOUR 8 +#define RT_LIBC_TZ_DEFAULT_MIN 0 +#define RT_LIBC_TZ_DEFAULT_SEC 0 +/* end of Timezone and Daylight Saving Time */ +/* end of ISO-ANSI C layer */ + +/* POSIX (Portable Operating System Interface) layer */ + + +/* Interprocess Communication (IPC) */ + + +/* Socket is in the 'Network' category */ + +/* end of Interprocess Communication (IPC) */ +/* end of POSIX (Portable Operating System Interface) layer */ +/* end of C/C++ and POSIX layer */ + +/* Network */ + +/* end of Network */ + +/* Utilities */ + +/* end of Utilities */ +/* end of RT-Thread Components */ + +/* RT-Thread Utestcases */ + +/* end of RT-Thread Utestcases */ + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + +/* end of Marvell WiFi */ + +/* Wiced WiFi */ + +/* end of Wiced WiFi */ + +/* CYW43012 WiFi */ + +/* end of CYW43012 WiFi */ + +/* BL808 WiFi */ + +/* end of BL808 WiFi */ + +/* CYW43439 WiFi */ + +/* end of CYW43439 WiFi */ +/* end of Wi-Fi */ + +/* IoT Cloud */ + +/* end of IoT Cloud */ +/* end of IoT - internet of things */ + +/* security packages */ + +/* end of security packages */ + +/* language packages */ + +/* JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* XML: Extensible Markup Language */ + +/* end of XML: Extensible Markup Language */ +/* end of language packages */ + +/* multimedia packages */ + +/* LVGL: powerful and easy-to-use embedded GUI library */ + +/* end of LVGL: powerful and easy-to-use embedded GUI library */ + +/* u8g2: a monochrome graphic library */ + +/* end of u8g2: a monochrome graphic library */ +/* end of multimedia packages */ + +/* tools packages */ + +/* end of tools packages */ + +/* system packages */ + +/* enhanced kernel services */ + +/* end of enhanced kernel services */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + +/* end of acceleration: Assembly language or algorithmic acceleration packages */ + +/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* Micrium: Micrium software products porting for RT-Thread */ + +/* end of Micrium: Micrium software products porting for RT-Thread */ +/* end of system packages */ + +/* peripheral libraries and drivers */ + +/* HAL & SDK Drivers */ + +/* STM32 HAL & SDK Drivers */ + +/* end of STM32 HAL & SDK Drivers */ + +/* Infineon HAL Packages */ + +/* end of Infineon HAL Packages */ + +/* Kendryte SDK */ + +/* end of Kendryte SDK */ + +/* WCH HAL & SDK Drivers */ + +/* end of WCH HAL & SDK Drivers */ + +/* AT32 HAL & SDK Drivers */ + +/* end of AT32 HAL & SDK Drivers */ + +/* HC32 DDL Drivers */ + +/* end of HC32 DDL Drivers */ + +/* NXP HAL & SDK Drivers */ + +/* end of NXP HAL & SDK Drivers */ + +/* NUVOTON Drivers */ + +/* end of NUVOTON Drivers */ + +/* GD32 Drivers */ + +/* end of GD32 Drivers */ + +/* HPMicro SDK */ + +/* end of HPMicro SDK */ + +/* FT32 HAL & SDK Drivers */ + +/* end of FT32 HAL & SDK Drivers */ +/* end of HAL & SDK Drivers */ + +/* sensors drivers */ + +/* end of sensors drivers */ + +/* touch drivers */ + +/* end of touch drivers */ +/* end of peripheral libraries and drivers */ + +/* AI packages */ + +/* end of AI packages */ + +/* Signal Processing and Control Algorithm Packages */ + +/* end of Signal Processing and Control Algorithm Packages */ + +/* miscellaneous packages */ + +/* project laboratory */ + +/* end of project laboratory */ + +/* samples: kernel and components samples */ + +/* end of samples: kernel and components samples */ + +/* entertainment: terminal games and other interesting software packages */ + +/* end of entertainment: terminal games and other interesting software packages */ +/* end of miscellaneous packages */ + +/* Arduino libraries */ + + +/* Projects and Demos */ + +/* end of Projects and Demos */ + +/* Sensors */ + +/* end of Sensors */ + +/* Display */ + +/* end of Display */ + +/* Timing */ + +/* end of Timing */ + +/* Data Processing */ + +/* end of Data Processing */ + +/* Data Storage */ + +/* Communication */ + +/* end of Communication */ + +/* Device Control */ + +/* end of Device Control */ + +/* Other */ + +/* end of Other */ + +/* Signal IO */ + +/* end of Signal IO */ + +/* Uncategorized */ + +/* end of Arduino libraries */ +/* end of RT-Thread online packages */ + +/* Hardware Drivers Config */ + +#define SOC_SERIES_IFX_PSOCE84 +#define KIT_PROCE84_EVK_M55 + +/* Onboard Peripheral Drivers */ + +#define BSP_USING_USB_TO_UART +/* end of Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_IPC +#define BSP_USING_UART +#define BSP_USING_UART2 +/* end of On-chip Peripheral Drivers */ + +/* Board extended module Drivers */ + +/* end of Board extended module Drivers */ +/* end of Hardware Drivers Config */ + +#endif diff --git a/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.py b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.py new file mode 100644 index 00000000..bc4522bb --- /dev/null +++ b/projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC/rtconfig.py @@ -0,0 +1,103 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m7' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armclang' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iccarm' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 --specs=nano.specs -mfloat-abi=hard -ffunction-sections -fdata-sections -nostartfiles -nostartfiles' + CFLAGS = DEVICE + ' -g -Wall -pipe' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -flto -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.ld' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O3 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armclang': + # toolchains + CC = 'armclang' + CXX = 'armclang' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = ' --target=arm-arm-none-eabi -mcpu=cortex-m4 ' + CFLAGS += ' -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 ' + CFLAGS += ' -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar ' + CFLAGS += ' -gdwarf-3 -ffunction-sections ' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers ' + LFLAGS += ' --list rt-thread.map ' + LFLAGS += r' --strict --scatter "board\linker_scripts\link.sct" ' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCLANG/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCLANG/lib' + + EXEC_PATH += '/ARM/ARMCLANG/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O1' # armclang recommend + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/.hardware-config-server.generated-files b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/.hardware-config-server.generated-files index 10c5a97b..c9c37f51 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/.hardware-config-server.generated-files +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/.hardware-config-server.generated-files @@ -5,8 +5,6 @@ cycfg_clocks.c cycfg_clocks.h cycfg_connectivity_bt.h cycfg_connectivity_wifi.h -cycfg_dmas.c -cycfg_dmas.h cycfg_memory.h cycfg_notices.h cycfg_peripheral_clocks.c @@ -39,4 +37,5 @@ cymem_ilinkarm_regions_CM33_0_S.icf cymem_ilinkarm_regions_CM55_0.icf cymem_memory_locations.h cymem_memory_types.h +device_mem.json edgeproctectsymbols.json diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.c index f8d3ee0d..7a72d5af 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.c @@ -5,9 +5,9 @@ * Simple wrapper containing all generated files and function to initialize * all generated code. * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.h index afc1decf..459f7db2 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.h @@ -5,9 +5,9 @@ * Simple wrapper containing all generated files and function to initialize * all generated code. * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -42,7 +42,6 @@ #include "cycfg_peripheral_clocks.h" #include "cycfg_system.h" #include "cycfg_ppc.h" -#include "cycfg_dmas.h" #include "cycfg_peripherals.h" #include "cycfg_routing.h" #include "cycfg_pins.h" diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.timestamp b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.timestamp index 0c9dca0e..71100924 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.timestamp +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg.timestamp @@ -4,12 +4,12 @@ * Description: * Sentinel file for determining if generated source is up to date. * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.33.0.9315 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* - * Copyright 2025 Cypress Semiconductor Corporation (an Infineon company) or + * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or * an affiliate of Cypress Semiconductor Corporation. * SPDX-License-Identifier: Apache-2.0 * diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clock_types.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clock_types.h index 97ce622a..98b2953d 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clock_types.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clock_types.h @@ -4,16 +4,23 @@ #include "cy_sysclk.h" +/** HF Clock Configuration */ typedef struct { + /** HF clock source */ cy_en_clkhf_in_sources_t source; + /** HF clock divider */ cy_en_clkhf_dividers_t divider; } cycfg_clkhf_config_t; +/** HF Clock Supervisor Configuration */ typedef struct { + /** HF Clock Supervisor reference clock */ cy_en_clkhf_csv_ref_clk_t refClk; + /** HF Clock Supervisor accuracy */ uint32_t accuracy; + /** HF Clock Supervisor action */ cy_en_clkhf_csv_action_t action; } cycfg_clkhf_csv_config_t; diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.c index 4dae0a7c..605a3cff 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.c @@ -4,9 +4,9 @@ * Description: * Clock configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.h index 45a46285..0450bc4f 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_clocks.h @@ -4,9 +4,9 @@ * Description: * Clock configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_bt.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_bt.h index 94aee9aa..b8cac76d 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_bt.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_bt.h @@ -4,9 +4,9 @@ * Description: * Connectivity BT configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_wifi.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_wifi.h index 9cbe1d82..57ec25c9 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_wifi.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_connectivity_wifi.h @@ -4,9 +4,9 @@ * Description: * Connectivity Wi-Fi configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.c deleted file mode 100644 index 7c9c263a..00000000 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.c +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * File Name: cycfg_dmas.c - * - * Description: - * DMA configuration - * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 - * - ******************************************************************************* - * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or - * an affiliate of Cypress Semiconductor Corporation. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#include "cycfg_dmas.h" - -const cy_stc_dma_descriptor_config_t CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0_config = -{ - .retrigger = CY_DMA_RETRIG_IM, - .interruptType = CY_DMA_DESCR, - .triggerOutType = CY_DMA_1ELEMENT, - .channelState = CY_DMA_CHANNEL_DISABLED, - .triggerInType = CY_DMA_1ELEMENT, - .dataSize = CY_DMA_BYTE, - .srcTransferSize = CY_DMA_TRANSFER_SIZE_DATA, - .dstTransferSize = CY_DMA_TRANSFER_SIZE_WORD, - .descriptorType = CY_DMA_1D_TRANSFER, - .srcAddress = NULL, - .dstAddress = NULL, - .srcXincrement = 1, - .dstXincrement = 0, - .xCount = 12, - .srcYincrement = 0, - .dstYincrement = 0, - .yCount = 1, - .nextDescriptor = &CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0, -}; -CY_SECTION(".cy_socmem_data") CY_ALIGN(8) cy_stc_dma_descriptor_t CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0 = -{ - .ctl = 0UL, - .src = 0UL, - .dst = 0UL, - .xCtl = 0UL, - .yCtl = 0UL, - .nextPtr = 0UL, -}; -const cy_stc_dma_channel_config_t CYBSP_DMA_TX_SPI_CONTROLLER_channelConfig = -{ - .descriptor = &CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0, - .preemptable = false, - .priority = 3, - .enable = false, - .bufferable = false, -}; -const cy_stc_dma_crc_config_t CYBSP_DMA_TX_SPI_CONTROLLER_crcConfig = -{ - .dataReverse = false, - .dataXor = 0, - .reminderReverse = false, - .reminderXor = 0, - .polynomial = 79764919, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_DMA) -const mtb_hal_dma_configurator_t CYBSP_DMA_TX_SPI_CONTROLLER_hal_config = -{ - .dma_type = MTB_HAL_DMA_DW, - .channel = CYBSP_DMA_TX_SPI_CONTROLLER_CHANNEL, - .dw_base = CYBSP_DMA_TX_SPI_CONTROLLER_HW, - .dw_descriptor = &CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_DMA) */ diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.h deleted file mode 100644 index 38d2e902..00000000 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_dmas.h +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * File Name: cycfg_dmas.h - * - * Description: - * DMA configuration - * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 - * - ******************************************************************************* - * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or - * an affiliate of Cypress Semiconductor Corporation. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#if !defined(CYCFG_DMAS_H) -#define CYCFG_DMAS_H - -#include "cycfg_notices.h" -#include "cy_dma.h" - -#if defined (COMPONENT_MTB_HAL) -#include "mtb_hal.h" -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined(__cplusplus) -extern "C" { -#endif /* defined(__cplusplus) */ - -#define CYBSP_DMA_TX_SPI_CONTROLLER_ENABLED 1U -#define CYBSP_DMA_TX_SPI_CONTROLLER_HW DW0 -#define CYBSP_DMA_TX_SPI_CONTROLLER_CHANNEL 1U -#define CYBSP_DMA_TX_SPI_CONTROLLER_IRQ cpuss_interrupts_dw0_1_IRQn - -extern const cy_stc_dma_descriptor_config_t CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0_config; -extern CY_SECTION(".cy_socmem_data") CY_ALIGN(8) cy_stc_dma_descriptor_t CYBSP_DMA_TX_SPI_CONTROLLER_Descriptor_0; -extern const cy_stc_dma_channel_config_t CYBSP_DMA_TX_SPI_CONTROLLER_channelConfig; -extern const cy_stc_dma_crc_config_t CYBSP_DMA_TX_SPI_CONTROLLER_crcConfig; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_DMA) -extern const mtb_hal_dma_configurator_t CYBSP_DMA_TX_SPI_CONTROLLER_hal_config; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_DMA) */ - -#if defined(__cplusplus) -} -#endif /* defined(__cplusplus) */ - -#endif /* CYCFG_DMAS_H */ diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_memory.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_memory.h index e8ce87ef..84876a57 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_memory.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_memory.h @@ -4,9 +4,9 @@ * Description: * Memory configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_notices.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_notices.h index 4412f1ae..101f6189 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_notices.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_notices.h @@ -5,9 +5,9 @@ * Contains warnings and errors that occurred while generating code for the * design. * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.c index 9837c660..9c29db52 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.c @@ -4,9 +4,9 @@ * Description: * Peripheral clock divider configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -46,7 +46,7 @@ void init_cycfg_peripheral_clocks(void) Cy_SysClk_PeriPclkSetDivider((en_clk_dst_t)CYBSP_PWM_DT_CLK_DIV_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 3U, 249U); Cy_SysClk_PeriPclkEnableDivider((en_clk_dst_t)CYBSP_PWM_DT_CLK_DIV_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 3U); Cy_SysClk_PeriPclkDisableDivider((en_clk_dst_t)PERI_0_GROUP_1_DIV_8_4_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 4U); - Cy_SysClk_PeriPclkSetDivider((en_clk_dst_t)PERI_0_GROUP_1_DIV_8_4_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 4U, 0U); + Cy_SysClk_PeriPclkSetDivider((en_clk_dst_t)PERI_0_GROUP_1_DIV_8_4_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 4U, 4U); Cy_SysClk_PeriPclkEnableDivider((en_clk_dst_t)PERI_0_GROUP_1_DIV_8_4_GRP_NUM, CY_SYSCLK_DIV_8_BIT, 4U); Cy_SysClk_PeriPclkDisableDivider((en_clk_dst_t)CYBSP_I2C_CONTROLLER_CLK_DIV_GRP_NUM, CY_SYSCLK_DIV_16_BIT, 0U); Cy_SysClk_PeriPclkSetDivider((en_clk_dst_t)CYBSP_I2C_CONTROLLER_CLK_DIV_GRP_NUM, CY_SYSCLK_DIV_16_BIT, 0U, 9U); diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.h index f5d18f3f..f239d195 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripheral_clocks.h @@ -4,9 +4,9 @@ * Description: * Peripheral clock divider configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.c index b5e74d89..697d6baf 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.c @@ -1,1607 +1,1785 @@ -/******************************************************************************* - * File Name: cycfg_peripherals.c - * - * Description: - * Analog configuration - * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 - * - ******************************************************************************* - * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or - * an affiliate of Cypress Semiconductor Corporation. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#include "cycfg_peripherals.h" - -#define CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED 0x7U -#define emUSB_OS_Timer_INPUT_DISABLED 0x7U -#define CYBSP_PWM_LED_CTRL_INPUT_DISABLED 0x7U -#define CYBSP_DEAD_TIME_PWM_INPUT_DISABLED 0x7U -#define CYBSP_SMARTIO_PWM_INPUT_DISABLED 0x7U -#define tcpwm_0_group_1_cnt_9_INPUT_DISABLED 0x7U - -cy_stc_autanalog_cfg_t autonomous_analog_cfg = -{ - .prb = NULL, - .ac = &CYBSP_AUTONOMOUS_CONTROLLER_cfg, - .ctb = - { - NULL, - NULL, - }, - .ptcomp = - { - NULL, - }, - .dac = - { - NULL, - NULL, - }, - .sar = - { - &CYBSP_SAR_ADC_cfg, - }, -}; -cy_stc_autanalog_stt_t autonomous_analog_stt[] = -{ - { - .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[0U], - .prb = NULL, - .ctb = - { - NULL, - NULL, - }, - .ptcomp = - { - NULL, - }, - .dac = - { - NULL, - NULL, - }, - .sar = - { - &CYBSP_SAR_ADC_stt[0U], - }, - }, - { - .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[1U], - .prb = NULL, - .ctb = - { - NULL, - NULL, - }, - .ptcomp = - { - NULL, - }, - .dac = - { - NULL, - NULL, - }, - .sar = - { - &CYBSP_SAR_ADC_stt[1U], - }, - }, - { - .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[2U], - .prb = NULL, - .ctb = - { - NULL, - NULL, - }, - .ptcomp = - { - NULL, - }, - .dac = - { - NULL, - NULL, - }, - .sar = - { - &CYBSP_SAR_ADC_stt[2U], - }, - }, -}; -cy_stc_autanalog_t autonomous_analog_init = -{ - .configuration = &autonomous_analog_cfg, - .numSttEntries = sizeof(autonomous_analog_stt)/sizeof(autonomous_analog_stt[0U]), - .stateTransitionTable = &autonomous_analog_stt[0U], -}; -cy_en_autanalog_ac_out_trigger_mask_t CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[] = -{ - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, - CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, -}; -cy_stc_autanalog_ac_t CYBSP_AUTONOMOUS_CONTROLLER_cfg = -{ - .gpioOutEn = - CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, - .mask = - { - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[0U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[1U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[2U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[3U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[4U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[5U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[6U], - &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[7U], - }, - .timer = - { - .enable = false, - .clkSrc = CY_AUTANALOG_TIMER_CLK_LP, - .period = 0U, - }, -}; -cy_stc_autanalog_stt_ac_t CYBSP_AUTONOMOUS_CONTROLLER_stt[] = -{ - { - .unlock = true, - .lpMode = false, - .condition = CY_AUTANALOG_STT_AC_CONDITION_BLOCK_READY, - .action = CY_AUTANALOG_STT_AC_ACTION_WAIT_FOR, - .branchState = 1U, - .trigInt = false, - .count = 0U, - .unlockGpioOut = false, - .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, - }, - { - .unlock = false, - .lpMode = false, - .condition = CY_AUTANALOG_STT_AC_CONDITION_SAR_DONE, - .action = CY_AUTANALOG_STT_AC_ACTION_WAIT_FOR, - .branchState = 0U, - .trigInt = false, - .count = 0U, - .unlockGpioOut = false, - .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, - }, - { - .unlock = false, - .lpMode = false, - .condition = CY_AUTANALOG_STT_AC_CONDITION_FALSE, - .action = CY_AUTANALOG_STT_AC_ACTION_STOP, - .branchState = 0U, - .trigInt = false, - .count = 0U, - .unlockGpioOut = false, - .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, - }, -}; -cy_stc_autanalog_sar_hs_chan_t CYBSP_SAR_ADC_gpio_ch_cfg[] = -{ - { - .posPin = CY_AUTANALOG_SAR_PIN_GPIO5, - .hsDiffEn = false, - .sign = false, - .posCoeff = CY_AUTANALOG_SAR_CH_COEFF_DISABLED, - .negPin = CY_AUTANALOG_SAR_PIN_GPIO0, - .accShift = false, - .negCoeff = CY_AUTANALOG_SAR_CH_COEFF_DISABLED, - .hsLimit = CY_AUTANALOG_SAR_LIMIT_STATUS_DISABLED, - .fifoSel = CY_AUTANALOG_FIFO_DISABLED, - }, -}; -cy_stc_autanalog_sar_sta_hs_t CYBSP_SAR_ADC_sta_hs_cfg = -{ - .hsVref = CY_AUTANALOG_SAR_VREF_VDDA, - .hsSampleTime = - { - 31U, - 31U, - 31U, - 31U, - }, - .hsGpioChan = - { - &CYBSP_SAR_ADC_gpio_ch_cfg[0U], - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - }, - .hsGpioResultMask = - CY_AUTANALOG_SAR_CHAN_MASK_GPIO0, -}; -cy_stc_autanalog_sar_sta_t CYBSP_SAR_ADC_sta_cfg = -{ - .lpStaCfg = NULL, - .hsStaCfg = &CYBSP_SAR_ADC_sta_hs_cfg, - .posBufPwr = CY_AUTANALOG_SAR_BUF_PWR_OFF, - .negBufPwr = CY_AUTANALOG_SAR_BUF_PWR_OFF, - .accMode = CY_AUTANALOG_SAR_ACC_DISABLED, - .startupCal = CY_AUTANALOG_SAR_CAL_DISABLED, - .chanID = false, - .shiftMode = false, - .intMuxChan = - { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - }, - .limitCond = - { - NULL, - NULL, - NULL, - NULL, - }, - .muxResultMask = - CY_AUTANALOG_SAR_CHAN_MASK_MUX_DISABLED, - .firResultMask = - CY_AUTANALOG_SAR_MASK_FIR_DISABLED, -}; -cy_stc_autanalog_sar_seq_tab_hs_t CYBSP_SAR_ADC_seq_hs_cfg[] = -{ - { - .chanEn = CY_AUTANALOG_SAR_CHAN_MASK_GPIO0, - .muxMode = CY_AUTANALOG_SAR_CHAN_CFG_MUX_DISABLED, - .mux0Sel = CY_AUTANALOG_SAR_CHAN_CFG_MUX0, - .mux1Sel = CY_AUTANALOG_SAR_CHAN_CFG_MUX0, - .sampleTimeEn = true, - .sampleTime = CY_AUTANALOG_SAR_SAMPLE_TIME0, - .accEn = false, - .accCount = CY_AUTANALOG_SAR_ACC_CNT2, - .calReq = CY_AUTANALOG_SAR_CAL_DISABLED, - .nextAction = CY_AUTANALOG_SAR_NEXT_ACTION_GO_TO_ENTRY_ADDR, - }, -}; -cy_stc_autanalog_sar_t CYBSP_SAR_ADC_cfg = -{ - .sarStaCfg = &CYBSP_SAR_ADC_sta_cfg, - .hsSeqTabNum = sizeof(CYBSP_SAR_ADC_seq_hs_cfg)/sizeof(CYBSP_SAR_ADC_seq_hs_cfg[0U]), - .hsSeqTabArr = &CYBSP_SAR_ADC_seq_hs_cfg[0U], - .lpSeqTabNum = 0U, - .lpSeqTabArr = NULL, - .firNum = 0U, - .firCfg = NULL, - .fifoCfg = NULL, -}; -cy_stc_autanalog_stt_sar_t CYBSP_SAR_ADC_stt[] = -{ - { - .unlock = true, - .enable = true, - .trigger = false, - .entryState = 0U, - }, - { - .unlock = true, - .enable = true, - .trigger = true, - .entryState = 0U, - }, - { - .unlock = true, - .enable = true, - .trigger = false, - .entryState = 0U, - }, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_ADC) -mtb_hal_adc_configurator_t CYBSP_SAR_ADC_hal_config = -{ - .config = &CYBSP_SAR_ADC_cfg, - .num_channels = sizeof(CYBSP_SAR_ADC_seq_hs_cfg)/sizeof(CYBSP_SAR_ADC_seq_hs_cfg[0U]), - .clock = NULL, - .adc_index = 0U, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_ADC) */ - -cy_stc_gfx_layer_config_t GFXSS_graphics_layer = -{ - .layer_type = GFX_LAYER_GRAPHICS, - .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .input_format_type = vivRGB565, - .tiling_type = vivLINEAR, - .pos_x = 0, - .pos_y = 0, - .width = 512, - .height = 800, - .zorder = 0, - .layer_enable = true, - .visibility = true, -}; -cy_stc_gfx_layer_config_t GFXSS_overlay0_layer = -{ - .layer_type = GFX_LAYER_OVERLAY0, - .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .input_format_type = vivRGB565, - .tiling_type = vivLINEAR, - .pos_x = 0, - .pos_y = 0, - .width = 1, - .height = 1, - .zorder = 0, - .layer_enable = false, - .visibility = false, -}; -cy_stc_gfx_layer_config_t GFXSS_overlay1_layer = -{ - .layer_type = GFX_LAYER_OVERLAY1, - .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, - .input_format_type = vivRGB565, - .tiling_type = vivLINEAR, - .pos_x = 0, - .pos_y = 0, - .width = 1, - .height = 1, - .zorder = 0, - .layer_enable = false, - .visibility = false, -}; -cy_stc_gfx_dc_config_t GFXSS_dc_config = -{ - .gfx_layer_config = &GFXSS_graphics_layer, - .ovl0_layer_config = &GFXSS_overlay0_layer, - .ovl1_layer_config = &GFXSS_overlay1_layer, - .display_type = GFX_DISP_TYPE_DSI_DPI, - .display_format = vivD16CFG1, - .display_size = vivDISPLAY_CUSTOMIZED, - .display_width = 512, - .display_height = 800, -}; -cy_stc_gfx_gpu_cfg_t GFXSS_gpu_config = -{ - .enable = true, -}; -cy_stc_mipidsi_display_params_t GFXSS_mipidsi_display_params = -{ - .pixel_clock = 33448, - .hdisplay = 512, - .hsync_width = 2, - .hfp = 36, - .hbp = 40, - .vdisplay = 800, - .vsync_width = 2, - .vfp = 180, - .vbp = 10, - .polarity_flags = 0, -}; -cy_stc_mipidsi_config_t GFXSS_mipi_dsi_config = -{ - .virtual_ch = 0, - .num_of_lanes = 2, - .per_lane_mbps = 1000, - .dpi_fmt = CY_MIPIDSI_FMT_RGB565, - .dsi_mode = DSI_VIDEO_MODE, - .max_phy_clk = 2500000000, - .mode_flags = VID_MODE_TYPE_NON_BURST_SYNC_PULSES | ENABLE_LOW_POWER_CMD | ENABLE_LOW_POWER, - .display_params = &GFXSS_mipidsi_display_params, -}; -cy_stc_gfx_config_t GFXSS_config = -{ - .dc_cfg = &GFXSS_dc_config, - .gpu_cfg = &GFXSS_gpu_config, - .mipi_dsi_cfg = &GFXSS_mipi_dsi_config, - .display_update_type = GFX_DOUBLE_BUFFER, - .clockHz = 399999999U, -}; -const cy_stc_i3c_config_t CYBSP_I3C_CONTROLLER_config = -{ - .i3cMode = CY_I3C_CONTROLLER, - .i3cBusMode = CY_I3C_BUS_PURE, - .useDma = false, - .manualDataRate = false, - .i3cClockHz = 12500000U, - .i3cSclRate = 12500000U, - .openDrainSclRate = 4000000U, - .txEmptyBufThld = CY_I3C_1_WORD_DEPTH, - .rxBufThld = CY_I3C_1_WORD_DEPTH, - .txBufStartThld = CY_I3C_1_WORD_DEPTH, - .rxBufStartThld = CY_I3C_1_WORD_DEPTH, - .ibaInclude = false, - .hotJoinCtrl = false, - .dynamicAddr = 8U, - .cmdQueueEmptyThld = 1U, - .respQueueThld = 0U, - .ibiQueueThld = 0U, - .ibiDataThld = 15U, - .extLowCnt1 = 11U, - .extLowCnt2 = 16U, - .extLowCnt3 = 27U, - .extLowCnt4 = 58U, - .extTerminationLowCnt = 0U, - .sdaHoldTime = 1U, - .busFreeTime = 32U, - .openDrainLowCnt = 0U, - .openDrainHighCnt = 0U, - .pushPullLowCnt = 0U, - .pushPullHighCnt = 0U, - .i2cFMLowCnt = 0U, - .i2cFMHighCnt = 0U, - .i2cFMPlusLowCnt = 0U, - .i2cFMPlusHighCnt = 0U, - .adaptiveI2CI3C = false, - .staticAddress = 0U, - .pid = 0U, - .dcr = 0U, - .speedLimit = false, - .hdrCapable = false, - .deviceRoleCap = CY_I3C_SECONDARY_CONTROLLER, - .hotjoinEnable = false, - .busAvailTime = 0U, - .busIdleTime = 0U, -}; -const cy_stc_pdm_pcm_config_v2_t CYBSP_PDM_config = -{ - .clkDiv = 7, - .clksel = CY_PDM_PCM_SEL_SRSS_CLOCK, - .halverate = CY_PDM_PCM_RATE_FULL, - .route = 4, - .fir0_coeff_user_value = false, - .fir1_coeff_user_value = false, -}; -const cy_stc_pdm_pcm_channel_config_t channel_2_config = -{ - .sampledelay = 1, - .wordSize = CY_PDM_PCM_WSIZE_16_BIT, - .signExtension = true, - .rxFifoTriggerLevel = 31, - .fir0_enable = false, - .cic_decim_code = CY_PDM_PCM_CHAN_CIC_DECIM_32, - .fir0_decim_code = CY_PDM_PCM_CHAN_FIR0_DECIM_1, - .fir0_scale = 0, - .fir1_decim_code = CY_PDM_PCM_CHAN_FIR1_DECIM_3, - .fir1_scale = 10, - .dc_block_disable = false, - .dc_block_code = CY_PDM_PCM_CHAN_DCBLOCK_CODE_16, -}; -const cy_stc_pdm_pcm_channel_config_t channel_3_config = -{ - .sampledelay = 5, - .wordSize = CY_PDM_PCM_WSIZE_16_BIT, - .signExtension = true, - .rxFifoTriggerLevel = 31, - .fir0_enable = false, - .cic_decim_code = CY_PDM_PCM_CHAN_CIC_DECIM_32, - .fir0_decim_code = CY_PDM_PCM_CHAN_FIR0_DECIM_1, - .fir0_scale = 0, - .fir1_decim_code = CY_PDM_PCM_CHAN_FIR1_DECIM_3, - .fir1_scale = 10, - .dc_block_disable = false, - .dc_block_code = CY_PDM_PCM_CHAN_DCBLOCK_CODE_16, -}; -const cy_stc_scb_i2c_config_t CYBSP_I2C_CONTROLLER_config = -{ - .i2cMode = CY_SCB_I2C_MASTER, - .useRxFifo = true, - .useTxFifo = true, - .slaveAddress = 0U, - .slaveAddressMask = 0U, - .acceptAddrInFifo = false, - .ackGeneralAddr = false, - .enableWakeFromSleep = false, - .enableDigitalFilter = false, - .lowPhaseDutyCycle = 16, - .highPhaseDutyCycle = 9, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_I2C_CONTROLLER_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_I2C_CONTROLLER_CLK_DIV_GRP_NUM, - .div_type = CYBSP_I2C_CONTROLLER_CLK_DIV_HW, - .div_num = CYBSP_I2C_CONTROLLER_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_I2C_CONTROLLER_hal_clock = -{ - .clock_ref = &CYBSP_I2C_CONTROLLER_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_I2C) -const mtb_hal_i2c_configurator_t CYBSP_I2C_CONTROLLER_hal_config = -{ - .base = CYBSP_I2C_CONTROLLER_HW, - .config = &CYBSP_I2C_CONTROLLER_config, - .clock = &CYBSP_I2C_CONTROLLER_hal_clock, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_I2C) */ - -const cy_stc_scb_uart_config_t CYBSP_DEBUG_UART_config = -{ - .uartMode = CY_SCB_UART_STANDARD, - .enableMultiProcessorMode = false, - .smartCardRetryOnNack = false, - .irdaInvertRx = false, - .irdaEnableLowPowerReceiver = false, - .oversample = 10, - .enableMsbFirst = false, - .dataWidth = 8UL, - .parity = CY_SCB_UART_PARITY_NONE, - .stopBits = CY_SCB_UART_STOP_BITS_1, - .enableInputFilter = false, - .breakWidth = 11UL, - .dropOnFrameError = false, - .dropOnParityError = false, - .breaklevel = false, - .receiverAddress = 0x0UL, - .receiverAddressMask = 0x0UL, - .acceptAddrInFifo = false, - .enableCts = false, - .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rtsRxFifoLevel = 0UL, - .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rxFifoTriggerLevel = 63UL, - .rxFifoIntEnableMask = 0UL, - .txFifoTriggerLevel = 63UL, - .txFifoIntEnableMask = 0UL, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_DEBUG_UART_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_DEBUG_UART_CLK_DIV_GRP_NUM, - .div_type = CYBSP_DEBUG_UART_CLK_DIV_HW, - .div_num = CYBSP_DEBUG_UART_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_DEBUG_UART_hal_clock = -{ - .clock_ref = &CYBSP_DEBUG_UART_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) -const mtb_hal_uart_configurator_t CYBSP_DEBUG_UART_hal_config = -{ - .base = CYBSP_DEBUG_UART_HW, - .clock = &CYBSP_DEBUG_UART_hal_clock, - .tx_pin = 7, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_pin = 0xFF, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ - .tx_port = 6, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_port = 0xFF, - .rts_enable = 0UL, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ - -const cy_stc_scb_uart_config_t CYBSP_BT_UART_config = -{ - .uartMode = CY_SCB_UART_STANDARD, - .enableMultiProcessorMode = false, - .smartCardRetryOnNack = false, - .irdaInvertRx = false, - .irdaEnableLowPowerReceiver = false, - .oversample = 8, - .enableMsbFirst = false, - .dataWidth = 8UL, - .parity = CY_SCB_UART_PARITY_NONE, - .stopBits = CY_SCB_UART_STOP_BITS_1, - .enableInputFilter = false, - .breakWidth = 11UL, - .dropOnFrameError = false, - .dropOnParityError = false, - .breaklevel = false, - .receiverAddress = 0x0UL, - .receiverAddressMask = 0x0UL, - .acceptAddrInFifo = false, - .enableCts = true, - .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rtsRxFifoLevel = 63, - .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rxFifoTriggerLevel = 63UL, - .rxFifoIntEnableMask = 0UL, - .txFifoTriggerLevel = 63UL, - .txFifoIntEnableMask = 0UL, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_BT_UART_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_BT_UART_CLK_DIV_GRP_NUM, - .div_type = CYBSP_BT_UART_CLK_DIV_HW, - .div_num = CYBSP_BT_UART_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_BT_UART_hal_clock = -{ - .clock_ref = &CYBSP_BT_UART_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) -const mtb_hal_uart_configurator_t CYBSP_BT_UART_hal_config = -{ - .base = CYBSP_BT_UART_HW, - .clock = &CYBSP_BT_UART_hal_clock, - .tx_pin = 1, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_pin = 3, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ - .tx_port = 10, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_port = 10, - .rts_enable = 1UL, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ - -const cy_stc_scb_uart_config_t CYBSP_UART5_config = -{ - .uartMode = CY_SCB_UART_STANDARD, - .enableMultiProcessorMode = false, - .smartCardRetryOnNack = false, - .irdaInvertRx = false, - .irdaEnableLowPowerReceiver = false, - .oversample = 10, - .enableMsbFirst = false, - .dataWidth = 8UL, - .parity = CY_SCB_UART_PARITY_NONE, - .stopBits = CY_SCB_UART_STOP_BITS_1, - .enableInputFilter = false, - .breakWidth = 11UL, - .dropOnFrameError = false, - .dropOnParityError = false, - .breaklevel = false, - .receiverAddress = 0x0UL, - .receiverAddressMask = 0x0UL, - .acceptAddrInFifo = false, - .enableCts = false, - .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rtsRxFifoLevel = 0UL, - .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, - .rxFifoTriggerLevel = 63UL, - .rxFifoIntEnableMask = 0UL, - .txFifoTriggerLevel = 63UL, - .txFifoIntEnableMask = 0UL, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_UART5_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_EZ_I2C_TARGET_CLK_DIV_GRP_NUM, - .div_type = CYBSP_EZ_I2C_TARGET_CLK_DIV_HW, - .div_num = CYBSP_EZ_I2C_TARGET_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_UART5_hal_clock = -{ - .clock_ref = &CYBSP_UART5_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) -const mtb_hal_uart_configurator_t CYBSP_UART5_hal_config = -{ - .base = CYBSP_UART5_HW, - .clock = &CYBSP_UART5_hal_clock, - .tx_pin = 1, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_pin = 0xFF, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ - .tx_port = 17, -#if defined (COMPONENT_MW_ASYNC_TRANSFER) - .rts_port = 0xFF, - .rts_enable = 0UL, -#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ - -const cy_stc_scb_spi_config_t CYBSP_SPI_CONTROLLER_config = -{ - .spiMode = CY_SCB_SPI_MASTER, - .subMode = CY_SCB_SPI_MOTOROLA, - .sclkMode = CY_SCB_SPI_CPHA0_CPOL0, - .parity = CY_SCB_SPI_PARITY_NONE, - .dropOnParityError = false, - .oversample = 10, - .rxDataWidth = 8UL, - .txDataWidth = 8UL, - .enableMsbFirst = true, - .enableInputFilter = false, - .enableFreeRunSclk = false, - .enableMisoLateSample = true, - .enableTransferSeparation = false, - .ssPolarity = ((CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT0) | \ - (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT1) | \ - (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT2) | \ - (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT3)), - .ssSetupDelay = false, - .ssHoldDelay = false, - .ssInterFrameDelay = false, - .enableWakeFromSleep = false, - .rxFifoTriggerLevel = 63UL, - .rxFifoIntEnableMask = 0UL, - .txFifoTriggerLevel = 63UL, - .txFifoIntEnableMask = 0UL, - .masterSlaveIntEnableMask = 0UL, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_SPI_CONTROLLER_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_SCB10_CLOCK_SCB_EN, - .div_type = CY_SYSCLK_DIV_8_BIT, - .div_num = 1, -}; -const mtb_hal_clock_t CYBSP_SPI_CONTROLLER_hal_clock = -{ - .clock_ref = &CYBSP_SPI_CONTROLLER_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) -const mtb_hal_spi_configurator_t CYBSP_SPI_CONTROLLER_hal_config = -{ - .base = CYBSP_SPI_CONTROLLER_HW, - .clock = &CYBSP_SPI_CONTROLLER_hal_clock, - .config = &CYBSP_SPI_CONTROLLER_config, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) */ - -cy_en_sd_host_card_capacity_t CYBSP_SDHC_0_cardCapacity = CY_SD_HOST_SDSC; -cy_en_sd_host_card_type_t CYBSP_SDHC_0_cardType = CY_SD_HOST_NOT_EMMC; -uint32_t CYBSP_SDHC_0_rca = 0u; -const cy_stc_sd_host_init_config_t CYBSP_SDHC_0_config = -{ - .emmc = false, - .dmaType = CY_SD_HOST_DMA_ADMA2, - .enableLedControl = false, -}; -cy_stc_sd_host_sd_card_config_t CYBSP_SDHC_0_card_cfg = -{ - .lowVoltageSignaling = false, - .busWidth = CY_SD_HOST_BUS_WIDTH_4_BIT, - .cardType = &CYBSP_SDHC_0_cardType, - .rca = &CYBSP_SDHC_0_rca, - .cardCapacity = &CYBSP_SDHC_0_cardCapacity, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) -const mtb_hal_peri_div_t CYBSP_SDHC_0_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_SDHC_0_CLK_DIV_GRP_NUM, - .div_type = CYBSP_SDHC_0_CLK_DIV_HW, - .div_num = CYBSP_SDHC_0_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_SDHC_0_hal_clock = -{ - .clock_ref = &CYBSP_SDHC_0_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -const mtb_hal_sdhc_configurator_t CYBSP_SDHC_0_sdhc_hal_config = -{ - .base = CYBSP_SDHC_0_HW, - .host_config = &CYBSP_SDHC_0_config, - .card_config = &CYBSP_SDHC_0_card_cfg, - .clock = &CYBSP_SDHC_0_hal_clock, - .gpios = {.clk = { .pin_num = 0, .port_num = 12}, .cmd = { .pin_num = 0, .port_num = 21}, .data = {{ .pin_num = 1, .port_num = 12}, { .pin_num = 2, .port_num = 12}, { .pin_num = 4, .port_num = 12}, { .pin_num = 5, .port_num = 12}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}}}, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) -const mtb_hal_sdio_configurator_t CYBSP_SDHC_0_sdio_hal_config = -{ - .base = CYBSP_SDHC_0_HW, - .host_config = &CYBSP_SDHC_0_config, - .clock = &CYBSP_SDHC_0_hal_clock, - .gpios = {.clk = { .pin_num = 0, .port_num = 12}, .cmd = { .pin_num = 0, .port_num = 21}, .data = {{ .pin_num = 1, .port_num = 12}, { .pin_num = 2, .port_num = 12}, { .pin_num = 4, .port_num = 12}, { .pin_num = 5, .port_num = 12}}}, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) */ - -cy_en_sd_host_card_capacity_t CYBSP_SDHC_1_cardCapacity = CY_SD_HOST_SDSC; -cy_en_sd_host_card_type_t CYBSP_SDHC_1_cardType = CY_SD_HOST_NOT_EMMC; -uint32_t CYBSP_SDHC_1_rca = 0u; -const cy_stc_sd_host_init_config_t CYBSP_SDHC_1_config = -{ - .emmc = false, - .dmaType = CY_SD_HOST_DMA_ADMA2, - .enableLedControl = false, -}; -cy_stc_sd_host_sd_card_config_t CYBSP_SDHC_1_card_cfg = -{ - .lowVoltageSignaling = false, - .busWidth = CY_SD_HOST_BUS_WIDTH_4_BIT, - .cardType = &CYBSP_SDHC_1_cardType, - .rca = &CYBSP_SDHC_1_rca, - .cardCapacity = &CYBSP_SDHC_1_cardCapacity, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) -const mtb_hal_peri_div_t CYBSP_SDHC_1_clock_ref = -{ - .clk_dst = (en_clk_dst_t)CYBSP_SDHC_1_CLK_DIV_GRP_NUM, - .div_type = CYBSP_SDHC_1_CLK_DIV_HW, - .div_num = CYBSP_SDHC_1_CLK_DIV_NUM, -}; -const mtb_hal_clock_t CYBSP_SDHC_1_hal_clock = -{ - .clock_ref = &CYBSP_SDHC_1_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -const mtb_hal_sdhc_configurator_t CYBSP_SDHC_1_sdhc_hal_config = -{ - .base = CYBSP_SDHC_1_HW, - .host_config = &CYBSP_SDHC_1_config, - .card_config = &CYBSP_SDHC_1_card_cfg, - .clock = &CYBSP_SDHC_1_hal_clock, - .gpios = {.clk = { .pin_num = 1, .port_num = 7}, .cmd = { .pin_num = 0, .port_num = 7}, .data = {{ .pin_num = 3, .port_num = 7}, { .pin_num = 5, .port_num = 7}, { .pin_num = 6, .port_num = 7}, { .pin_num = 7, .port_num = 7}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}}}, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) -const mtb_hal_sdio_configurator_t CYBSP_SDHC_1_sdio_hal_config = -{ - .base = CYBSP_SDHC_1_HW, - .host_config = &CYBSP_SDHC_1_config, - .clock = &CYBSP_SDHC_1_hal_clock, - .gpios = {.clk = { .pin_num = 1, .port_num = 7}, .cmd = { .pin_num = 0, .port_num = 7}, .data = {{ .pin_num = 3, .port_num = 7}, { .pin_num = 5, .port_num = 7}, { .pin_num = 6, .port_num = 7}, { .pin_num = 7, .port_num = 7}}}, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) */ - -const cy_stc_smif_config_t CYBSP_SMIF_CORE_0_XSPI_FLASH_config = -{ - .mode = (uint32_t)CY_SMIF_NORMAL, - .deselectDelay = CYBSP_SMIF_CORE_0_XSPI_FLASH_DESELECT_DELAY, - .blockEvent = (uint32_t)CY_SMIF_BUS_ERROR, - .inputFrequencyMHz = 200, - .enable_internal_dll = false, - .dll_divider_value = CY_SMIF_DLL_DIVIDE_BY_2, - .rx_capture_mode = CY_SMIF_SEL_NORMAL_SPI, - .mdl_tap = CY_SMIF_MDL_8_TAP_DELAY, - .device0_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device1_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device2_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device3_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .tx_sdr_extra = CY_SMIF_TX_TWO_PERIOD_AHEAD, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_hf_clock_t CYBSP_SMIF_CORE_0_XSPI_FLASH_clock_ref = -{ - .inst_num = 3U, -}; -const mtb_hal_clock_t CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_clock = -{ - .clock_ref = &CYBSP_SMIF_CORE_0_XSPI_FLASH_clock_ref, - .interface = &mtb_hal_clock_hf_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) -const mtb_hal_memoryspi_configurator_t CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_config = -{ - .base = SMIF0_CORE, - .clock = &CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_clock, - .config = &CYBSP_SMIF_CORE_0_XSPI_FLASH_config, - .csel = {false, true, false, false}, - .irqs = CYBSP_SMIF_CORE_0_XSPI_FLASH_MEMORY_MODE_ALIGMENT_ERROR << 5 | CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_DATA_FIFO_UNDERFLOW << 4 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_COMMAND_FIFO_OVERFLOW << 3 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_DATA_FIFO_OVERFLOW << 2 | (uint8_t)(CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_FIFO_TRIGGER_LEVEL != 0) << 1 | (uint8_t)(CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_FIFO_TRIGGER_LEVEL != 0) << 0, - .dmas = CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_DMA_TRIGGER_OUT_USED << 1 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_DMA_TRIGGER_OUT_USED << 0, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) */ - -const cy_stc_smif_config_t CYBSP_SMIF_CORE_1_PSRAM_config = -{ - .mode = (uint32_t)CY_SMIF_NORMAL, - .deselectDelay = CYBSP_SMIF_CORE_1_PSRAM_DESELECT_DELAY, - .blockEvent = (uint32_t)CY_SMIF_BUS_ERROR, - .inputFrequencyMHz = 399, - .enable_internal_dll = false, - .dll_divider_value = CY_SMIF_DLL_DIVIDE_BY_2, - .rx_capture_mode = CY_SMIF_SEL_NORMAL_SPI, - .mdl_tap = CY_SMIF_MDL_8_TAP_DELAY, - .device0_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device1_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device2_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .device3_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, - .tx_sdr_extra = CY_SMIF_TX_TWO_PERIOD_AHEAD, -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_hf_clock_t CYBSP_SMIF_CORE_1_PSRAM_clock_ref = -{ - .inst_num = 4U, -}; -const mtb_hal_clock_t CYBSP_SMIF_CORE_1_PSRAM_hal_clock = -{ - .clock_ref = &CYBSP_SMIF_CORE_1_PSRAM_clock_ref, - .interface = &mtb_hal_clock_hf_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) -const mtb_hal_memoryspi_configurator_t CYBSP_SMIF_CORE_1_PSRAM_hal_config = -{ - .base = SMIF1_CORE, - .clock = &CYBSP_SMIF_CORE_1_PSRAM_hal_clock, - .config = &CYBSP_SMIF_CORE_1_PSRAM_config, - .csel = {false, false, true, false}, - .irqs = CYBSP_SMIF_CORE_1_PSRAM_MEMORY_MODE_ALIGMENT_ERROR << 5 | CYBSP_SMIF_CORE_1_PSRAM_RX_DATA_FIFO_UNDERFLOW << 4 | CYBSP_SMIF_CORE_1_PSRAM_TX_COMMAND_FIFO_OVERFLOW << 3 | CYBSP_SMIF_CORE_1_PSRAM_TX_DATA_FIFO_OVERFLOW << 2 | (uint8_t)(CYBSP_SMIF_CORE_1_PSRAM_RX_FIFO_TRIGGER_LEVEL != 0) << 1 | (uint8_t)(CYBSP_SMIF_CORE_1_PSRAM_TX_FIFO_TRIGGER_LEVEL != 0) << 0, - .dmas = CYBSP_SMIF_CORE_1_PSRAM_RX_DMA_TRIGGER_OUT_USED << 1 | CYBSP_SMIF_CORE_1_PSRAM_TX_DMA_TRIGGER_OUT_USED << 0, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) */ - -const cy_stc_mcwdt_config_t CYBSP_CM33_LPTIMER_0_config = -{ - .c0Match = 32768U, - .c1Match = 32768U, - .c0Mode = CY_MCWDT_MODE_INT, - .c1Mode = CY_MCWDT_MODE_INT, - .c2ToggleBit = 0U, - .c2Mode = CY_MCWDT_MODE_NONE, - .c0ClearOnMatch = false, - .c1ClearOnMatch = false, - .c0c1Cascade = true, - .c1c2Cascade = false, - .c0LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, - .c0LowerLimit = 0U, - .c1LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, - .c1LowerLimit = 0U, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) -const mtb_hal_lptimer_configurator_t CYBSP_CM33_LPTIMER_0_hal_config = -{ - .base = CYBSP_CM33_LPTIMER_0_HW, - .lfclk_freqhz = 32768, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) */ - -const cy_stc_mcwdt_config_t CYBSP_CM55_LPTIMER_1_config = -{ - .c0Match = 32768U, - .c1Match = 32768U, - .c0Mode = CY_MCWDT_MODE_INT, - .c1Mode = CY_MCWDT_MODE_INT, - .c2ToggleBit = 0U, - .c2Mode = CY_MCWDT_MODE_NONE, - .c0ClearOnMatch = false, - .c1ClearOnMatch = false, - .c0c1Cascade = true, - .c1c2Cascade = false, - .c0LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, - .c0LowerLimit = 0U, - .c1LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, - .c1LowerLimit = 0U, -}; - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) -const mtb_hal_lptimer_configurator_t CYBSP_CM55_LPTIMER_1_hal_config = -{ - .base = CYBSP_CM55_LPTIMER_1_HW, - .lfclk_freqhz = 32768, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) */ - -cy_stc_tdm_config_tx_t CYBSP_TDM_CONTROLLER_0_tx_config = -{ - .enable = true, - .masterMode = CY_TDM_DEVICE_MASTER, - .wordSize = CY_TDM_SIZE_16, - .format = CY_TDM_LEFT_DELAYED, - .clkDiv = 4, - .clkSel = CY_TDM_SEL_SRSS_CLK0, - .sckPolarity = CY_TDM_CLK, - .fsyncPolarity = CY_TDM_SIGN_INVERTED, - .fsyncFormat = CY_TDM_CH_PERIOD, - .channelNum = 2, - .channelSize = 16, - .fifoTriggerLevel = 64, - .chEn = 0x3, - .signalInput = 0, - .i2sMode = true, -}; -cy_stc_tdm_config_rx_t CYBSP_TDM_CONTROLLER_0_rx_config = -{ - .enable = false, - .masterMode = CY_TDM_DEVICE_SLAVE, - .wordSize = CY_TDM_SIZE_16, - .signExtend = CY_ZERO_EXTEND, - .format = CY_TDM_LEFT_DELAYED, - .clkDiv = 16, - .clkSel = CY_TDM_SEL_SRSS_CLK0, - .sckPolarity = CY_TDM_CLK, - .fsyncPolarity = CY_TDM_SIGN, - .lateSample = false, - .fsyncFormat = CY_TDM_BIT_PERIOD, - .channelNum = 2, - .channelSize = 16, - .fifoTriggerLevel = 0, - .chEn = 0x3, - .signalInput = 0, - .i2sMode = true, -}; -const cy_stc_tdm_config_t CYBSP_TDM_CONTROLLER_0_config = -{ - .tx_config = &CYBSP_TDM_CONTROLLER_0_tx_config, - .rx_config = &CYBSP_TDM_CONTROLLER_0_rx_config, -}; -const cy_stc_tcpwm_counter_config_t CYBSP_GENERAL_PURPOSE_TIMER_config = -{ - .period = 9999, - .clockPrescaler = CY_TCPWM_COUNTER_PRESCALER_DIVBY_1, - .runMode = CY_TCPWM_COUNTER_CONTINUOUS, - .countDirection = CY_TCPWM_COUNTER_COUNT_UP, - .compareOrCapture = CY_TCPWM_COUNTER_MODE_COMPARE, - .compare0 = 9999, - .compare1 = 16384, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC ) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), - .captureInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .captureInput = CY_TCPWM_INPUT_0, - .reloadInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .stopInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .stopInput = CY_TCPWM_INPUT_0, - .countInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .capture1InputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, - .capture1Input = CY_TCPWM_INPUT_0, - .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, - .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, - .enableCompare1Swap = false, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, -#if defined (CY_IP_MXS40TCPWM) - .buffer_swap_enable = false, - .direction_mode = CY_TCPWM_COUNTER_DIRECTION_DISABLE, - .glitch_filter_enable = false, - .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, -#endif /* defined (CY_IP_MXS40TCPWM) */ -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_GENERAL_PURPOSE_TIMER_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN0, - .div_type = CY_SYSCLK_DIV_16_BIT, - .div_num = 2, -}; -const mtb_hal_clock_t CYBSP_GENERAL_PURPOSE_TIMER_hal_clock = -{ - .clock_ref = &CYBSP_GENERAL_PURPOSE_TIMER_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) -const mtb_hal_timer_configurator_t CYBSP_GENERAL_PURPOSE_TIMER_hal_config = -{ - .tcpwm_base = CYBSP_GENERAL_PURPOSE_TIMER_HW, - .clock = &CYBSP_GENERAL_PURPOSE_TIMER_hal_clock, - .tcpwm_cntnum = 0U, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) */ - -cy_stc_tcpwm_counter_config_t emUSB_OS_Timer_config = -{ - .period = 99999, - .clockPrescaler = CY_TCPWM_COUNTER_PRESCALER_DIVBY_1, - .runMode = CY_TCPWM_COUNTER_CONTINUOUS, - .countDirection = CY_TCPWM_COUNTER_COUNT_UP, - .compareOrCapture = CY_TCPWM_COUNTER_MODE_CAPTURE, - .compare0 = 16384U, - .compare1 = 16384U, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0) | (CY_TCPWM_INT_ON_CC1 & 0U), - .captureInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .captureInput = CY_TCPWM_INPUT_0, - .reloadInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .stopInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .stopInput = CY_TCPWM_INPUT_0, - .countInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .capture1InputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, - .capture1Input = CY_TCPWM_INPUT_0, - .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, - .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, - .enableCompare1Swap = false, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, -}; - -#if defined (COMPONENT_MTB_HAL) -mtb_hal_peri_div_t emUSB_OS_Timer_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN1, - .div_type = CY_SYSCLK_DIV_8_BIT, - .div_num = 2, -}; -mtb_hal_clock_t emUSB_OS_Timer_hal_clock = -{ - .clock_ref = &emUSB_OS_Timer_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) -mtb_hal_timer_configurator_t emUSB_OS_Timer_hal_config = -{ - .tcpwm_base = emUSB_OS_Timer_HW, - .clock = &emUSB_OS_Timer_hal_clock, - .tcpwm_cntnum = 1U, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) */ - -const cy_stc_tcpwm_pwm_config_t CYBSP_PWM_LED_CTRL_config = -{ - .pwmMode = CY_TCPWM_PWM_MODE_PWM, - .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, - .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, - .deadTimeClocks = 0, - .runMode = CY_TCPWM_PWM_CONTINUOUS, - .period0 = 2000, - .period1 = 32768, - .enablePeriodSwap = false, - .compare0 = 1000, - .compare1 = 16384, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), - .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, - .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, - .killMode = CY_TCPWM_PWM_ASYNC_KILL, - .swapInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .swapInput = CY_TCPWM_INPUT_0, - .reloadInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .killInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .killInput = CY_TCPWM_INPUT_0, - .countInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .swapOverflowUnderflow = false, - .immediateKill = false, - .tapsEnabled = 45, - .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, - .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, - .enableCompare1Swap = false, - .compare0MatchUp = true, - .compare0MatchDown = false, - .compare1MatchUp = true, - .compare1MatchDown = false, - .kill1InputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, - .kill1Input = CY_TCPWM_INPUT_0, - .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .reloadLineSelect = false, - .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .deadTimeClocks_linecompl_out = 0, -#if defined (CY_IP_MXS40TCPWM) - .hrpwm_enable = false, - .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, - .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, - .deadTimeClocksBuff = 0, - .deadTimeClocksBuff_linecompl_out = 0, - .buffer_swap_enable = false, - .glitch_filter_enable = false, - .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, - .dithering_mode = CY_TCPWM_DITHERING_DISABLE, - .period_dithering_value = 128, - .duty_dithering_value = 128, - .limiter = CY_TCPWM_DITHERING_LIMITER_7, - .pwm_tc_sync_kill_dt = false, - .pwm_sync_kill_dt = false, -#endif /* defined (CY_IP_MXS40TCPWM) */ -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_PWM_LED_CTRL_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN5, - .div_type = CY_SYSCLK_DIV_16_BIT, - .div_num = 3, -}; -const mtb_hal_clock_t CYBSP_PWM_LED_CTRL_hal_clock = -{ - .clock_ref = &CYBSP_PWM_LED_CTRL_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) -const mtb_hal_pwm_configurator_t CYBSP_PWM_LED_CTRL_hal_config = -{ - .base = CYBSP_PWM_LED_CTRL_HW, - .clock = &CYBSP_PWM_LED_CTRL_hal_clock, - .group = 0UL, - .cntnum = 5UL, - .max_count = 2000, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ - -const cy_stc_tcpwm_pwm_config_t CYBSP_DEAD_TIME_PWM_config = -{ - .pwmMode = CY_TCPWM_PWM_MODE_DEADTIME, - .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, - .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, - .deadTimeClocks = 100, - .runMode = CY_TCPWM_PWM_CONTINUOUS, - .period0 = 400, - .period1 = 32768, - .enablePeriodSwap = false, - .compare0 = 200, - .compare1 = 16384, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), - .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, - .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, - .killMode = CY_TCPWM_PWM_STOP_ON_KILL, - .swapInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .swapInput = CY_TCPWM_INPUT_0, - .reloadInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .killInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .killInput = CY_TCPWM_INPUT_0, - .countInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .swapOverflowUnderflow = false, - .immediateKill = false, - .tapsEnabled = 45, - .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, - .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, - .enableCompare1Swap = false, - .compare0MatchUp = true, - .compare0MatchDown = false, - .compare1MatchUp = true, - .compare1MatchDown = false, - .kill1InputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, - .kill1Input = CY_TCPWM_INPUT_0, - .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .reloadLineSelect = false, - .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .deadTimeClocks_linecompl_out = 100, -#if defined (CY_IP_MXS40TCPWM) - .hrpwm_enable = false, - .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, - .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, - .deadTimeClocksBuff = 0, - .deadTimeClocksBuff_linecompl_out = 0, - .buffer_swap_enable = false, - .glitch_filter_enable = false, - .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, - .dithering_mode = CY_TCPWM_DITHERING_DISABLE, - .period_dithering_value = 128, - .duty_dithering_value = 128, - .limiter = CY_TCPWM_DITHERING_LIMITER_7, - .pwm_tc_sync_kill_dt = false, - .pwm_sync_kill_dt = false, -#endif /* defined (CY_IP_MXS40TCPWM) */ -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_DEAD_TIME_PWM_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN7, - .div_type = CY_SYSCLK_DIV_8_BIT, - .div_num = 3, -}; -const mtb_hal_clock_t CYBSP_DEAD_TIME_PWM_hal_clock = -{ - .clock_ref = &CYBSP_DEAD_TIME_PWM_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) -const mtb_hal_pwm_configurator_t CYBSP_DEAD_TIME_PWM_hal_config = -{ - .base = CYBSP_DEAD_TIME_PWM_HW, - .clock = &CYBSP_DEAD_TIME_PWM_hal_clock, - .group = 0UL, - .cntnum = 7UL, - .max_count = 400, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ - -const cy_stc_tcpwm_pwm_config_t CYBSP_SMARTIO_PWM_config = -{ - .pwmMode = CY_TCPWM_PWM_MODE_PWM, - .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, - .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, - .deadTimeClocks = 0, - .runMode = CY_TCPWM_PWM_CONTINUOUS, - .period0 = 399, - .period1 = 32768, - .enablePeriodSwap = false, - .compare0 = 200, - .compare1 = 16384, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), - .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, - .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, - .killMode = CY_TCPWM_PWM_ASYNC_KILL, - .swapInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .swapInput = CY_TCPWM_INPUT_0, - .reloadInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .killInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .killInput = CY_TCPWM_INPUT_0, - .countInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .swapOverflowUnderflow = false, - .immediateKill = false, - .tapsEnabled = 45, - .compare2 = 200, - .compare3 = 16384, - .enableCompare1Swap = false, - .compare0MatchUp = true, - .compare0MatchDown = false, - .compare1MatchUp = true, - .compare1MatchDown = false, - .kill1InputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, - .kill1Input = CY_TCPWM_INPUT_0, - .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .reloadLineSelect = false, - .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .deadTimeClocks_linecompl_out = 0, -#if defined (CY_IP_MXS40TCPWM) - .hrpwm_enable = false, - .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, - .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, - .deadTimeClocksBuff = 0, - .deadTimeClocksBuff_linecompl_out = 0, - .buffer_swap_enable = false, - .glitch_filter_enable = false, - .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, - .dithering_mode = CY_TCPWM_DITHERING_DISABLE, - .period_dithering_value = 128, - .duty_dithering_value = 128, - .limiter = CY_TCPWM_DITHERING_LIMITER_7, - .pwm_tc_sync_kill_dt = false, - .pwm_sync_kill_dt = false, -#endif /* defined (CY_IP_MXS40TCPWM) */ -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t CYBSP_SMARTIO_PWM_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN262, - .div_type = CY_SYSCLK_DIV_16_5_BIT, - .div_num = 1, -}; -const mtb_hal_clock_t CYBSP_SMARTIO_PWM_hal_clock = -{ - .clock_ref = &CYBSP_SMARTIO_PWM_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) -const mtb_hal_pwm_configurator_t CYBSP_SMARTIO_PWM_hal_config = -{ - .base = CYBSP_SMARTIO_PWM_HW, - .clock = &CYBSP_SMARTIO_PWM_hal_clock, - .group = 1UL, - .cntnum = 262UL, - .max_count = 399, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ - -const cy_stc_tcpwm_pwm_config_t tcpwm_0_group_1_cnt_9_config = -{ - .pwmMode = CY_TCPWM_PWM_MODE_PWM, - .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_2, - .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, - .deadTimeClocks = 0, - .runMode = CY_TCPWM_PWM_CONTINUOUS, - .period0 = 65535, - .period1 = 32768, - .enablePeriodSwap = false, - .compare0 = 52428, - .compare1 = 16384, - .enableCompareSwap = false, - .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), - .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, - .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, - .killMode = CY_TCPWM_PWM_STOP_ON_KILL, - .swapInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .swapInput = CY_TCPWM_INPUT_0, - .reloadInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .reloadInput = CY_TCPWM_INPUT_0, - .startInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .startInput = CY_TCPWM_INPUT_0, - .killInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .killInput = CY_TCPWM_INPUT_0, - .countInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .countInput = CY_TCPWM_INPUT_1, - .swapOverflowUnderflow = false, - .immediateKill = false, - .tapsEnabled = 45, - .compare2 = 52428, - .compare3 = 16384, - .enableCompare1Swap = false, - .compare0MatchUp = true, - .compare0MatchDown = false, - .compare1MatchUp = true, - .compare1MatchDown = false, - .kill1InputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, - .kill1Input = CY_TCPWM_INPUT_0, - .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, - .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, - .reloadLineSelect = false, - .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, - .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, - .deadTimeClocks_linecompl_out = 0, -#if defined (CY_IP_MXS40TCPWM) - .hrpwm_enable = false, - .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, - .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, - .deadTimeClocksBuff = 0, - .deadTimeClocksBuff_linecompl_out = 0, - .buffer_swap_enable = false, - .glitch_filter_enable = false, - .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, - .dithering_mode = CY_TCPWM_DITHERING_DISABLE, - .period_dithering_value = 128, - .duty_dithering_value = 128, - .limiter = CY_TCPWM_DITHERING_LIMITER_7, - .pwm_tc_sync_kill_dt = false, - .pwm_sync_kill_dt = false, -#endif /* defined (CY_IP_MXS40TCPWM) */ -}; - -#if defined (COMPONENT_MTB_HAL) -const mtb_hal_peri_div_t tcpwm_0_group_1_cnt_9_clock_ref = -{ - .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN265, - .div_type = CY_SYSCLK_DIV_8_BIT, - .div_num = 4, -}; -const mtb_hal_clock_t tcpwm_0_group_1_cnt_9_hal_clock = -{ - .clock_ref = &tcpwm_0_group_1_cnt_9_clock_ref, - .interface = &mtb_hal_clock_peri_interface, -}; -#endif /* defined (COMPONENT_MTB_HAL) */ - -#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) -const mtb_hal_pwm_configurator_t tcpwm_0_group_1_cnt_9_hal_config = -{ - .base = tcpwm_0_group_1_cnt_9_HW, - .clock = &tcpwm_0_group_1_cnt_9_hal_clock, - .group = 1UL, - .cntnum = 265UL, - .max_count = 65535, -}; -#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ - -void init_cycfg_peripherals(void) -{ - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_PASS_PERI_NR, CY_MMIO_PASS_GROUP_NR, CY_MMIO_PASS_SLAVE_NR, CY_MMIO_PASS_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_GPU_PERI_NR, CY_MMIO_GFXSS_GPU_GROUP_NR, CY_MMIO_GFXSS_GPU_SLAVE_NR, CY_MMIO_GFXSS_GPU_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_DC_PERI_NR, CY_MMIO_GFXSS_DC_GROUP_NR, CY_MMIO_GFXSS_DC_SLAVE_NR, CY_MMIO_GFXSS_DC_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_MIPIDSI_PERI_NR, CY_MMIO_GFXSS_MIPIDSI_GROUP_NR, CY_MMIO_GFXSS_MIPIDSI_SLAVE_NR, CY_MMIO_GFXSS_MIPIDSI_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_I3C_PERI_NR, CY_MMIO_I3C_GROUP_NR, CY_MMIO_I3C_SLAVE_NR, CY_MMIO_I3C_CLK_HF_NR); - Cy_SysClk_PeriphAssignDivider(PCLK_I3C_CLOCK_I3C_EN, CY_SYSCLK_DIV_8_BIT, 0U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_PDM0_PERI_NR, CY_MMIO_PDM0_GROUP_NR, CY_MMIO_PDM0_SLAVE_NR, CY_MMIO_PDM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriPclkAssignDivider(PCLK_PDM0_CLK_IF_SRSS, CY_SYSCLK_DIV_16_5_BIT, 1U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB0_PERI_NR, CY_MMIO_SCB0_GROUP_NR, CY_MMIO_SCB0_SLAVE_NR, CY_MMIO_SCB0_CLK_HF_NR); - Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB0_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_BIT, 0U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB2_PERI_NR, CY_MMIO_SCB2_GROUP_NR, CY_MMIO_SCB2_SLAVE_NR, CY_MMIO_SCB2_CLK_HF_NR); - Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB2_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_BIT, 1U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB4_PERI_NR, CY_MMIO_SCB4_GROUP_NR, CY_MMIO_SCB4_SLAVE_NR, CY_MMIO_SCB4_CLK_HF_NR); - Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB4_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_5_BIT, 0U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB5_PERI_NR, CY_MMIO_SCB5_GROUP_NR, CY_MMIO_SCB5_SLAVE_NR, CY_MMIO_SCB5_CLK_HF_NR); - Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB5_CLOCK_SCB_EN, CY_SYSCLK_DIV_8_BIT, 0U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB10_PERI_NR, CY_MMIO_SCB10_GROUP_NR, CY_MMIO_SCB10_SLAVE_NR, CY_MMIO_SCB10_CLK_HF_NR); - Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB10_CLOCK_SCB_EN, CY_SYSCLK_DIV_8_BIT, 1U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SDHC0_PERI_NR, CY_MMIO_SDHC0_GROUP_NR, CY_MMIO_SDHC0_SLAVE_NR, CY_MMIO_SDHC0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriPclkAssignDivider(PCLK_SDHC0_CLK_HF, CY_SYSCLK_DIV_8_BIT, 0U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SDHC1_PERI_NR, CY_MMIO_SDHC1_GROUP_NR, CY_MMIO_SDHC1_SLAVE_NR, CY_MMIO_SDHC1_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriPclkAssignDivider(PCLK_SDHC1_CLK_HF, CY_SYSCLK_DIV_8_BIT, 0U); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_USBHS_PERI_NR, CY_MMIO_USBHS_GROUP_NR, CY_MMIO_USBHS_SLAVE_NR, CY_MMIO_USBHS_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SMIF0_PERI_NR, CY_MMIO_SMIF0_GROUP_NR, CY_MMIO_SMIF0_SLAVE_NR, CY_MMIO_SMIF0_CLK_HF_NR); - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SMIF01_PERI_NR, CY_MMIO_SMIF01_GROUP_NR, CY_MMIO_SMIF01_SLAVE_NR, CY_MMIO_SMIF01_CLK_HF_NR); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TDM0_PERI_NR, CY_MMIO_TDM0_GROUP_NR, CY_MMIO_TDM0_SLAVE_NR, CY_MMIO_TDM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriPclkAssignDivider(PCLK_TDM0_CLK_IF_SRSS0, CY_SYSCLK_DIV_16_5_BIT, 0U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN0, CY_SYSCLK_DIV_16_BIT, 2U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN1, CY_SYSCLK_DIV_8_BIT, 2U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN5, CY_SYSCLK_DIV_16_BIT, 3U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN7, CY_SYSCLK_DIV_8_BIT, 3U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN262, CY_SYSCLK_DIV_16_5_BIT, 1U); -#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) - Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); -#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ - Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN265, CY_SYSCLK_DIV_8_BIT, 4U); -} +/******************************************************************************* + * File Name: cycfg_peripherals.c + * + * Description: + * Analog configuration + * This file was automatically generated and should not be modified. + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 + * + ******************************************************************************* + * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or + * an affiliate of Cypress Semiconductor Corporation. + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +#include "cycfg_peripherals.h" + +#define CYBSP_CAN_FD_CH_0_STD_ID_FILTER_0 \ +{\ + .sfid2 = 0xFFU, \ + .sfid1 = 0x10U, \ + .sfec = CY_CANFD_SFEC_DISABLE, \ + .sft = CY_CANFD_SFT_RANGE_SFID1_SFID2, \ + } +#define CYBSP_CAN_FD_CH_0_EXT_ID_FILTER_0 \ +{\ + .f0_f = &CYBSP_CAN_FD_CH_0_extIdFilterF0Config_0, \ + .f1_f = &CYBSP_CAN_FD_CH_0_extIdFilterF1Config_0, \ + } +#define CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED 0x7U +#define emUSB_OS_Timer_INPUT_DISABLED 0x7U +#define CYBSP_PWM_LED_CTRL_INPUT_DISABLED 0x7U +#define CYBSP_DEAD_TIME_PWM_INPUT_DISABLED 0x7U +#define CYBSP_SMARTIO_PWM_INPUT_DISABLED 0x7U +#define tcpwm_0_group_1_cnt_9_INPUT_DISABLED 0x7U + +cy_stc_autanalog_cfg_t autonomous_analog_cfg = +{ + .prb = NULL, + .ac = &CYBSP_AUTONOMOUS_CONTROLLER_cfg, + .ctb = + { + NULL, + NULL, + }, + .ptcomp = + { + NULL, + }, + .dac = + { + NULL, + NULL, + }, + .sar = + { + &CYBSP_SAR_ADC_cfg, + }, +}; +cy_stc_autanalog_stt_t autonomous_analog_stt[] = +{ + { + .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[0U], + .prb = NULL, + .ctb = + { + NULL, + NULL, + }, + .ptcomp = + { + NULL, + }, + .dac = + { + NULL, + NULL, + }, + .sar = + { + &CYBSP_SAR_ADC_stt[0U], + }, + }, + { + .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[1U], + .prb = NULL, + .ctb = + { + NULL, + NULL, + }, + .ptcomp = + { + NULL, + }, + .dac = + { + NULL, + NULL, + }, + .sar = + { + &CYBSP_SAR_ADC_stt[1U], + }, + }, + { + .ac = &CYBSP_AUTONOMOUS_CONTROLLER_stt[2U], + .prb = NULL, + .ctb = + { + NULL, + NULL, + }, + .ptcomp = + { + NULL, + }, + .dac = + { + NULL, + NULL, + }, + .sar = + { + &CYBSP_SAR_ADC_stt[2U], + }, + }, +}; +cy_stc_autanalog_t autonomous_analog_init = +{ + .configuration = &autonomous_analog_cfg, + .numSttEntries = sizeof(autonomous_analog_stt)/sizeof(autonomous_analog_stt[0U]), + .stateTransitionTable = &autonomous_analog_stt[0U], +}; +cy_en_autanalog_ac_out_trigger_mask_t CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[] = +{ + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, + CY_AUTANALOG_AC_OUT_TRIG_MASK_EMPTY, +}; +cy_stc_autanalog_ac_t CYBSP_AUTONOMOUS_CONTROLLER_cfg = +{ + .gpioOutEn = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, + .mask = + { + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[0U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[1U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[2U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[3U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[4U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[5U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[6U], + &CYBSP_AUTONOMOUS_CONTROLLER_out_trig_mask[7U], + }, + .timer = + { + .enable = false, + .clkSrc = CY_AUTANALOG_TIMER_CLK_LP, + .period = 0U, + }, +}; +cy_stc_autanalog_stt_ac_t CYBSP_AUTONOMOUS_CONTROLLER_stt[] = +{ + { + .unlock = true, + .lpMode = false, + .condition = CY_AUTANALOG_STT_AC_CONDITION_BLOCK_READY, + .action = CY_AUTANALOG_STT_AC_ACTION_WAIT_FOR, + .branchState = 1U, + .trigInt = false, + .count = 0U, + .unlockGpioOut = false, + .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, + }, + { + .unlock = false, + .lpMode = false, + .condition = CY_AUTANALOG_STT_AC_CONDITION_SAR_DONE, + .action = CY_AUTANALOG_STT_AC_ACTION_WAIT_FOR, + .branchState = 0U, + .trigInt = false, + .count = 0U, + .unlockGpioOut = false, + .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, + }, + { + .unlock = false, + .lpMode = false, + .condition = CY_AUTANALOG_STT_AC_CONDITION_FALSE, + .action = CY_AUTANALOG_STT_AC_ACTION_STOP, + .branchState = 0U, + .trigInt = false, + .count = 0U, + .unlockGpioOut = false, + .gpioOut = CY_AUTANALOG_STT_AC_GPIO_OUT_DISABLED, + }, +}; +cy_stc_autanalog_sar_hs_chan_t CYBSP_SAR_ADC_gpio_ch_cfg[] = +{ + { + .posPin = CY_AUTANALOG_SAR_PIN_GPIO5, + .hsDiffEn = false, + .sign = false, + .posCoeff = CY_AUTANALOG_SAR_CH_COEFF_DISABLED, + .negPin = CY_AUTANALOG_SAR_PIN_GPIO0, + .accShift = false, + .negCoeff = CY_AUTANALOG_SAR_CH_COEFF_DISABLED, + .hsLimit = CY_AUTANALOG_SAR_LIMIT_STATUS_DISABLED, + .fifoSel = CY_AUTANALOG_FIFO_DISABLED, + }, +}; +cy_stc_autanalog_sar_sta_hs_t CYBSP_SAR_ADC_sta_hs_cfg = +{ + .hsVref = CY_AUTANALOG_SAR_VREF_VDDA, + .hsSampleTime = + { + 31U, + 31U, + 31U, + 31U, + }, + .hsGpioChan = + { + &CYBSP_SAR_ADC_gpio_ch_cfg[0U], + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + .hsGpioResultMask = CY_AUTANALOG_SAR_CHAN_MASK_GPIO0, +}; +cy_stc_autanalog_sar_sta_t CYBSP_SAR_ADC_sta_cfg = +{ + .lpStaCfg = NULL, + .hsStaCfg = &CYBSP_SAR_ADC_sta_hs_cfg, + .posBufPwr = CY_AUTANALOG_SAR_BUF_PWR_OFF, + .negBufPwr = CY_AUTANALOG_SAR_BUF_PWR_OFF, + .accMode = CY_AUTANALOG_SAR_ACC_DISABLED, + .startupCal = CY_AUTANALOG_SAR_CAL_DISABLED, + .chanID = false, + .shiftMode = false, + .intMuxChan = + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + .limitCond = + { + NULL, + NULL, + NULL, + NULL, + }, + .muxResultMask = CY_AUTANALOG_SAR_CHAN_MASK_MUX_DISABLED, + .firResultMask = CY_AUTANALOG_SAR_MASK_FIR_DISABLED, +}; +cy_stc_autanalog_sar_seq_tab_hs_t CYBSP_SAR_ADC_seq_hs_cfg[] = +{ + { + .chanEn = CY_AUTANALOG_SAR_CHAN_MASK_GPIO0, + .muxMode = CY_AUTANALOG_SAR_CHAN_CFG_MUX_DISABLED, + .mux0Sel = CY_AUTANALOG_SAR_CHAN_CFG_MUX0, + .mux1Sel = CY_AUTANALOG_SAR_CHAN_CFG_MUX0, + .sampleTimeEn = true, + .sampleTime = CY_AUTANALOG_SAR_SAMPLE_TIME0, + .accEn = false, + .accCount = CY_AUTANALOG_SAR_ACC_CNT2, + .calReq = CY_AUTANALOG_SAR_CAL_DISABLED, + .nextAction = CY_AUTANALOG_SAR_NEXT_ACTION_GO_TO_ENTRY_ADDR, + }, +}; +cy_stc_autanalog_sar_t CYBSP_SAR_ADC_cfg = +{ + .sarStaCfg = &CYBSP_SAR_ADC_sta_cfg, + .hsSeqTabNum = sizeof(CYBSP_SAR_ADC_seq_hs_cfg)/sizeof(CYBSP_SAR_ADC_seq_hs_cfg[0U]), + .hsSeqTabArr = &CYBSP_SAR_ADC_seq_hs_cfg[0U], + .lpSeqTabNum = 0U, + .lpSeqTabArr = NULL, + .firNum = 0U, + .firCfg = NULL, + .fifoCfg = NULL, +}; +cy_stc_autanalog_stt_sar_t CYBSP_SAR_ADC_stt[] = +{ + { + .unlock = true, + .enable = true, + .trigger = false, + .entryState = 0U, + }, + { + .unlock = true, + .enable = true, + .trigger = true, + .entryState = 0U, + }, + { + .unlock = true, + .enable = true, + .trigger = false, + .entryState = 0U, + }, +}; + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_ADC) +mtb_hal_adc_configurator_t CYBSP_SAR_ADC_hal_config = +{ + .config = &CYBSP_SAR_ADC_cfg, + .num_channels = sizeof(CYBSP_SAR_ADC_seq_hs_cfg)/sizeof(CYBSP_SAR_ADC_seq_hs_cfg[0U]), + .clock = NULL, + .adc_index = 0U, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_ADC) */ + +cy_stc_gfx_layer_config_t GFXSS_graphics_layer = +{ + .layer_type = GFX_LAYER_GRAPHICS, + .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .input_format_type = vivRGB565, + .tiling_type = vivLINEAR, + .pos_x = 0, + .pos_y = 0, + .width = 512, + .height = 768, + .zorder = 0, + .layer_enable = true, + .visibility = true, +}; +cy_stc_gfx_layer_config_t GFXSS_overlay0_layer = +{ + .layer_type = GFX_LAYER_OVERLAY0, + .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .input_format_type = vivRGB565, + .tiling_type = vivLINEAR, + .pos_x = 0, + .pos_y = 0, + .width = 1, + .height = 1, + .zorder = 0, + .layer_enable = false, + .visibility = false, +}; +cy_stc_gfx_layer_config_t GFXSS_overlay1_layer = +{ + .layer_type = GFX_LAYER_OVERLAY1, + .buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .uv_buffer_address = (gctADDRESS *)CY_SOCMEM_RAM_BASE, + .input_format_type = vivRGB565, + .tiling_type = vivLINEAR, + .pos_x = 0, + .pos_y = 0, + .width = 1, + .height = 1, + .zorder = 0, + .layer_enable = false, + .visibility = false, +}; +cy_stc_gfx_dc_config_t GFXSS_dc_config = +{ + .gfx_layer_config = &GFXSS_graphics_layer, + .ovl0_layer_config = &GFXSS_overlay0_layer, + .ovl1_layer_config = &GFXSS_overlay1_layer, + .display_type = GFX_DISP_TYPE_DSI_DPI, + .display_format = vivD24, + .display_size = vivDISPLAY_CUSTOMIZED, + .display_width = 512, + .display_height = 768, +}; +cy_stc_gfx_gpu_cfg_t GFXSS_gpu_config = +{ + .enable = true, +}; +cy_stc_mipidsi_display_params_t GFXSS_mipidsi_display_params = +{ + .pixel_clock = 27212, + .hdisplay = 512, + .hsync_width = 10, + .hfp = 20, + .hbp = 20, + .vdisplay = 768, + .vsync_width = 30, + .vfp = 4, + .vbp = 5, + .polarity_flags = 0, +}; +cy_stc_mipidsi_config_t GFXSS_mipi_dsi_config = +{ + .virtual_ch = 0, + .num_of_lanes = 2, + .per_lane_mbps = 500, + .dpi_fmt = CY_MIPIDSI_FMT_RGB888, + .dsi_mode = DSI_VIDEO_MODE, + .max_phy_clk = 2500000000, + .mode_flags = VID_MODE_TYPE_NON_BURST_SYNC_PULSES | ENABLE_LOW_POWER_CMD | ENABLE_LOW_POWER, + .display_params = &GFXSS_mipidsi_display_params, +}; +cy_stc_gfx_config_t GFXSS_config = +{ + .dc_cfg = &GFXSS_dc_config, + .gpu_cfg = &GFXSS_gpu_config, + .mipi_dsi_cfg = &GFXSS_mipi_dsi_config, + .display_update_type = GFX_DOUBLE_BUFFER, + .clockHz = 399999999U, +}; +const cy_stc_i3c_config_t CYBSP_I3C_CONTROLLER_config = +{ + .i3cMode = CY_I3C_CONTROLLER, + .i3cBusMode = CY_I3C_BUS_PURE, + .useDma = false, + .manualDataRate = false, + .i3cClockHz = 12500000U, + .i3cSclRate = 12500000U, + .openDrainSclRate = 4000000U, + .txEmptyBufThld = CY_I3C_1_WORD_DEPTH, + .rxBufThld = CY_I3C_1_WORD_DEPTH, + .txBufStartThld = CY_I3C_1_WORD_DEPTH, + .rxBufStartThld = CY_I3C_1_WORD_DEPTH, + .ibaInclude = false, + .hotJoinCtrl = false, + .dynamicAddr = 8U, + .cmdQueueEmptyThld = 1U, + .respQueueThld = 0U, + .ibiQueueThld = 0U, + .ibiDataThld = 15U, + .extLowCnt1 = 11U, + .extLowCnt2 = 16U, + .extLowCnt3 = 27U, + .extLowCnt4 = 58U, + .extTerminationLowCnt = 0U, + .sdaHoldTime = 1U, + .busFreeTime = 32U, + .openDrainLowCnt = 0U, + .openDrainHighCnt = 0U, + .pushPullLowCnt = 0U, + .pushPullHighCnt = 0U, + .i2cFMLowCnt = 0U, + .i2cFMHighCnt = 0U, + .i2cFMPlusLowCnt = 0U, + .i2cFMPlusHighCnt = 0U, + .adaptiveI2CI3C = false, + .staticAddress = 0U, + .pid = 0U, + .dcr = 0U, + .speedLimit = false, + .hdrCapable = false, + .deviceRoleCap = CY_I3C_SECONDARY_CONTROLLER, + .hotjoinEnable = false, + .busAvailTime = 0U, + .busIdleTime = 0U, +}; +const cy_stc_pdm_pcm_config_v2_t CYBSP_PDM_config = +{ + .clkDiv = 7, + .clksel = CY_PDM_PCM_SEL_SRSS_CLOCK, + .halverate = CY_PDM_PCM_RATE_FULL, + .route = 4, + .fir0_coeff_user_value = false, + .fir1_coeff_user_value = false, +}; +const cy_stc_pdm_pcm_channel_config_t channel_2_config = +{ + .sampledelay = 1, + .wordSize = CY_PDM_PCM_WSIZE_16_BIT, + .signExtension = true, + .rxFifoTriggerLevel = 31, + .fir0_enable = false, + .cic_decim_code = CY_PDM_PCM_CHAN_CIC_DECIM_32, + .fir0_decim_code = CY_PDM_PCM_CHAN_FIR0_DECIM_1, + .fir0_scale = 0, + .fir1_decim_code = CY_PDM_PCM_CHAN_FIR1_DECIM_3, + .fir1_scale = 10, + .dc_block_disable = false, + .dc_block_code = CY_PDM_PCM_CHAN_DCBLOCK_CODE_16, +}; +const cy_stc_pdm_pcm_channel_config_t channel_3_config = +{ + .sampledelay = 5, + .wordSize = CY_PDM_PCM_WSIZE_16_BIT, + .signExtension = true, + .rxFifoTriggerLevel = 31, + .fir0_enable = false, + .cic_decim_code = CY_PDM_PCM_CHAN_CIC_DECIM_32, + .fir0_decim_code = CY_PDM_PCM_CHAN_FIR0_DECIM_1, + .fir0_scale = 0, + .fir1_decim_code = CY_PDM_PCM_CHAN_FIR1_DECIM_3, + .fir1_scale = 10, + .dc_block_disable = false, + .dc_block_code = CY_PDM_PCM_CHAN_DCBLOCK_CODE_16, +}; +const cy_stc_scb_i2c_config_t CYBSP_I2C_CONTROLLER_config = +{ + .i2cMode = CY_SCB_I2C_MASTER, + .useRxFifo = true, + .useTxFifo = true, + .slaveAddress = 0U, + .slaveAddressMask = 0U, + .acceptAddrInFifo = false, + .ackGeneralAddr = false, + .enableWakeFromSleep = false, + .enableDigitalFilter = false, + .lowPhaseDutyCycle = 16, + .highPhaseDutyCycle = 9, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_I2C_CONTROLLER_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_I2C_CONTROLLER_CLK_DIV_GRP_NUM, + .div_type = CYBSP_I2C_CONTROLLER_CLK_DIV_HW, + .div_num = CYBSP_I2C_CONTROLLER_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_I2C_CONTROLLER_hal_clock = +{ + .clock_ref = &CYBSP_I2C_CONTROLLER_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_I2C) +const mtb_hal_i2c_configurator_t CYBSP_I2C_CONTROLLER_hal_config = +{ + .base = CYBSP_I2C_CONTROLLER_HW, + .config = &CYBSP_I2C_CONTROLLER_config, + .clock = &CYBSP_I2C_CONTROLLER_hal_clock, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_I2C) */ + +const cy_stc_scb_uart_config_t CYBSP_DEBUG_UART_config = +{ + .uartMode = CY_SCB_UART_STANDARD, + .enableMultiProcessorMode = false, + .smartCardRetryOnNack = false, + .irdaInvertRx = false, + .irdaEnableLowPowerReceiver = false, + .oversample = 10, + .enableMsbFirst = false, + .dataWidth = 8UL, + .parity = CY_SCB_UART_PARITY_NONE, + .stopBits = CY_SCB_UART_STOP_BITS_1, + .enableInputFilter = false, + .breakWidth = 11UL, + .dropOnFrameError = false, + .dropOnParityError = false, + .breaklevel = false, + .receiverAddress = 0x0UL, + .receiverAddressMask = 0x0UL, + .acceptAddrInFifo = false, + .enableCts = false, + .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rtsRxFifoLevel = 0UL, + .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rxFifoTriggerLevel = 63UL, + .rxFifoIntEnableMask = 0UL, + .txFifoTriggerLevel = 63UL, + .txFifoIntEnableMask = 0UL, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_DEBUG_UART_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_DEBUG_UART_CLK_DIV_GRP_NUM, + .div_type = CYBSP_DEBUG_UART_CLK_DIV_HW, + .div_num = CYBSP_DEBUG_UART_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_DEBUG_UART_hal_clock = +{ + .clock_ref = &CYBSP_DEBUG_UART_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) +const mtb_hal_uart_configurator_t CYBSP_DEBUG_UART_hal_config = +{ + .base = CYBSP_DEBUG_UART_HW, + .clock = &CYBSP_DEBUG_UART_hal_clock, + .tx_pin = 7, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_pin = 0xFF, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ + .tx_port = 6, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_port = 0xFF, + .rts_enable = 0UL, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ + +const cy_stc_scb_uart_config_t CYBSP_BT_UART_config = +{ + .uartMode = CY_SCB_UART_STANDARD, + .enableMultiProcessorMode = false, + .smartCardRetryOnNack = false, + .irdaInvertRx = false, + .irdaEnableLowPowerReceiver = false, + .oversample = 8, + .enableMsbFirst = false, + .dataWidth = 8UL, + .parity = CY_SCB_UART_PARITY_NONE, + .stopBits = CY_SCB_UART_STOP_BITS_1, + .enableInputFilter = false, + .breakWidth = 11UL, + .dropOnFrameError = false, + .dropOnParityError = false, + .breaklevel = false, + .receiverAddress = 0x0UL, + .receiverAddressMask = 0x0UL, + .acceptAddrInFifo = false, + .enableCts = true, + .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rtsRxFifoLevel = 63, + .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rxFifoTriggerLevel = 63UL, + .rxFifoIntEnableMask = 0UL, + .txFifoTriggerLevel = 63UL, + .txFifoIntEnableMask = 0UL, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_BT_UART_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_BT_UART_CLK_DIV_GRP_NUM, + .div_type = CYBSP_BT_UART_CLK_DIV_HW, + .div_num = CYBSP_BT_UART_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_BT_UART_hal_clock = +{ + .clock_ref = &CYBSP_BT_UART_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) +const mtb_hal_uart_configurator_t CYBSP_BT_UART_hal_config = +{ + .base = CYBSP_BT_UART_HW, + .clock = &CYBSP_BT_UART_hal_clock, + .tx_pin = 1, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_pin = 3, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ + .tx_port = 10, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_port = 10, + .rts_enable = 1UL, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ + +const cy_stc_scb_uart_config_t CYBSP_UART5_config = +{ + .uartMode = CY_SCB_UART_STANDARD, + .enableMultiProcessorMode = false, + .smartCardRetryOnNack = false, + .irdaInvertRx = false, + .irdaEnableLowPowerReceiver = false, + .oversample = 10, + .enableMsbFirst = false, + .dataWidth = 8UL, + .parity = CY_SCB_UART_PARITY_NONE, + .stopBits = CY_SCB_UART_STOP_BITS_1, + .enableInputFilter = false, + .breakWidth = 11UL, + .dropOnFrameError = false, + .dropOnParityError = false, + .breaklevel = false, + .receiverAddress = 0x0UL, + .receiverAddressMask = 0x0UL, + .acceptAddrInFifo = false, + .enableCts = false, + .ctsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rtsRxFifoLevel = 0UL, + .rtsPolarity = CY_SCB_UART_ACTIVE_LOW, + .rxFifoTriggerLevel = 63UL, + .rxFifoIntEnableMask = 0UL, + .txFifoTriggerLevel = 63UL, + .txFifoIntEnableMask = 0UL, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_UART5_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_EZ_I2C_TARGET_CLK_DIV_GRP_NUM, + .div_type = CYBSP_EZ_I2C_TARGET_CLK_DIV_HW, + .div_num = CYBSP_EZ_I2C_TARGET_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_UART5_hal_clock = +{ + .clock_ref = &CYBSP_UART5_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) +const mtb_hal_uart_configurator_t CYBSP_UART5_hal_config = +{ + .base = CYBSP_UART5_HW, + .clock = &CYBSP_UART5_hal_clock, + .tx_pin = 1, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_pin = 0xFF, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ + .tx_port = 17, +#if defined (COMPONENT_MW_ASYNC_TRANSFER) + .rts_port = 0xFF, + .rts_enable = 0UL, +#endif /* defined (COMPONENT_MW_ASYNC_TRANSFER) */ +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ + +const cy_stc_scb_spi_config_t CYBSP_SPI_9_config = +{ + .spiMode = CY_SCB_SPI_MASTER, + .subMode = CY_SCB_SPI_MOTOROLA, + .sclkMode = CY_SCB_SPI_CPHA0_CPOL0, + .parity = CY_SCB_SPI_PARITY_NONE, + .dropOnParityError = false, + .oversample = 10, + .rxDataWidth = 8UL, + .txDataWidth = 8UL, + .enableMsbFirst = true, + .enableInputFilter = false, + .enableFreeRunSclk = false, + .enableMisoLateSample = true, + .enableTransferSeparation = false, + .ssPolarity = ((CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT0) | \ + (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT1) | \ + (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT2) | \ + (CY_SCB_SPI_ACTIVE_LOW << CY_SCB_SPI_SLAVE_SELECT3)), + .ssSetupDelay = false, + .ssHoldDelay = false, + .ssInterFrameDelay = false, + .enableWakeFromSleep = false, + .rxFifoTriggerLevel = 63UL, + .rxFifoIntEnableMask = 0UL, + .txFifoTriggerLevel = 63UL, + .txFifoIntEnableMask = 0UL, + .masterSlaveIntEnableMask = 0UL, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_SPI_9_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_SCB9_CLOCK_SCB_EN, + .div_type = CY_SYSCLK_DIV_8_BIT, + .div_num = 1, +}; +const mtb_hal_clock_t CYBSP_SPI_9_hal_clock = +{ + .clock_ref = &CYBSP_SPI_9_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) +const mtb_hal_spi_configurator_t CYBSP_SPI_9_hal_config = +{ + .base = CYBSP_SPI_9_HW, + .clock = &CYBSP_SPI_9_hal_clock, + .config = &CYBSP_SPI_9_config, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) */ + +cy_en_sd_host_card_capacity_t CYBSP_SDHC_0_cardCapacity = CY_SD_HOST_SDSC; +cy_en_sd_host_card_type_t CYBSP_SDHC_0_cardType = CY_SD_HOST_NOT_EMMC; +uint32_t CYBSP_SDHC_0_rca = 0u; +const cy_stc_sd_host_init_config_t CYBSP_SDHC_0_config = +{ + .emmc = false, + .dmaType = CY_SD_HOST_DMA_ADMA2, + .enableLedControl = false, +}; +cy_stc_sd_host_sd_card_config_t CYBSP_SDHC_0_card_cfg = +{ + .lowVoltageSignaling = false, + .busWidth = CY_SD_HOST_BUS_WIDTH_4_BIT, + .cardType = &CYBSP_SDHC_0_cardType, + .rca = &CYBSP_SDHC_0_rca, + .cardCapacity = &CYBSP_SDHC_0_cardCapacity, +}; + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) +const mtb_hal_peri_div_t CYBSP_SDHC_0_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_SDHC_0_CLK_DIV_GRP_NUM, + .div_type = CYBSP_SDHC_0_CLK_DIV_HW, + .div_num = CYBSP_SDHC_0_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_SDHC_0_hal_clock = +{ + .clock_ref = &CYBSP_SDHC_0_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +const mtb_hal_sdhc_configurator_t CYBSP_SDHC_0_sdhc_hal_config = +{ + .base = CYBSP_SDHC_0_HW, + .host_config = &CYBSP_SDHC_0_config, + .card_config = &CYBSP_SDHC_0_card_cfg, + .clock = &CYBSP_SDHC_0_hal_clock, + .gpios = {.clk = { .pin_num = 0, .port_num = 12}, .cmd = { .pin_num = 0, .port_num = 21}, .data = {{ .pin_num = 1, .port_num = 12}, { .pin_num = 2, .port_num = 12}, { .pin_num = 4, .port_num = 12}, { .pin_num = 5, .port_num = 12}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}}}, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) +const mtb_hal_sdio_configurator_t CYBSP_SDHC_0_sdio_hal_config = +{ + .base = CYBSP_SDHC_0_HW, + .host_config = &CYBSP_SDHC_0_config, + .clock = &CYBSP_SDHC_0_hal_clock, + .gpios = {.clk = { .pin_num = 0, .port_num = 12}, .cmd = { .pin_num = 0, .port_num = 21}, .data = {{ .pin_num = 1, .port_num = 12}, { .pin_num = 2, .port_num = 12}, { .pin_num = 4, .port_num = 12}, { .pin_num = 5, .port_num = 12}}}, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) */ + +cy_en_sd_host_card_capacity_t CYBSP_SDHC_1_cardCapacity = CY_SD_HOST_SDSC; +cy_en_sd_host_card_type_t CYBSP_SDHC_1_cardType = CY_SD_HOST_NOT_EMMC; +uint32_t CYBSP_SDHC_1_rca = 0u; +const cy_stc_sd_host_init_config_t CYBSP_SDHC_1_config = +{ + .emmc = false, + .dmaType = CY_SD_HOST_DMA_ADMA2, + .enableLedControl = false, +}; +cy_stc_sd_host_sd_card_config_t CYBSP_SDHC_1_card_cfg = +{ + .lowVoltageSignaling = false, + .busWidth = CY_SD_HOST_BUS_WIDTH_4_BIT, + .cardType = &CYBSP_SDHC_1_cardType, + .rca = &CYBSP_SDHC_1_rca, + .cardCapacity = &CYBSP_SDHC_1_cardCapacity, +}; + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) +const mtb_hal_peri_div_t CYBSP_SDHC_1_clock_ref = +{ + .clk_dst = (en_clk_dst_t)CYBSP_SDHC_1_CLK_DIV_GRP_NUM, + .div_type = CYBSP_SDHC_1_CLK_DIV_HW, + .div_num = CYBSP_SDHC_1_CLK_DIV_NUM, +}; +const mtb_hal_clock_t CYBSP_SDHC_1_hal_clock = +{ + .clock_ref = &CYBSP_SDHC_1_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +const mtb_hal_sdhc_configurator_t CYBSP_SDHC_1_sdhc_hal_config = +{ + .base = CYBSP_SDHC_1_HW, + .host_config = &CYBSP_SDHC_1_config, + .card_config = &CYBSP_SDHC_1_card_cfg, + .clock = &CYBSP_SDHC_1_hal_clock, + .gpios = {.clk = { .pin_num = 1, .port_num = 7}, .cmd = { .pin_num = 0, .port_num = 7}, .data = {{ .pin_num = 3, .port_num = 7}, { .pin_num = 5, .port_num = 7}, { .pin_num = 6, .port_num = 7}, { .pin_num = 7, .port_num = 7}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}, { .pin_num = NC, .port_num = NC}}}, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDHC) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) +const mtb_hal_sdio_configurator_t CYBSP_SDHC_1_sdio_hal_config = +{ + .base = CYBSP_SDHC_1_HW, + .host_config = &CYBSP_SDHC_1_config, + .clock = &CYBSP_SDHC_1_hal_clock, + .gpios = {.clk = { .pin_num = 1, .port_num = 7}, .cmd = { .pin_num = 0, .port_num = 7}, .data = {{ .pin_num = 3, .port_num = 7}, { .pin_num = 5, .port_num = 7}, { .pin_num = 6, .port_num = 7}, { .pin_num = 7, .port_num = 7}}}, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) */ + +void canfd0_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg); +const cy_stc_canfd_bitrate_t CYBSP_CAN_FD_CH_0_nominalBitrateConfig = +{ + .prescaler = 1U - 1U, + .timeSegment1 = 59U - 1U, + .timeSegment2 = 20U - 1U, + .syncJumpWidth = 1U - 1U, +}; +const cy_stc_canfd_bitrate_t CYBSP_CAN_FD_CH_0_dataBitrateConfig = +{ + .prescaler = 1U - 1U, + .timeSegment1 = 29U - 1U, + .timeSegment2 = 10U - 1U, + .syncJumpWidth = 1U - 1U, +}; +const cy_stc_canfd_transceiver_delay_compensation_t CYBSP_CAN_FD_CH_0_tdcConfig = +{ + .tdcEnabled = false, + .tdcOffset = 0U, + .tdcFilterWindow = 0U, +}; +const cy_stc_id_filter_t CYBSP_CAN_FD_CH_0_stdIdFilter_0 = +{ + .sfid2 = 0xFFU, + .sfid1 = 0x10U, + .sfec = CY_CANFD_SFEC_DISABLE, + .sft = CY_CANFD_SFT_RANGE_SFID1_SFID2, +}; +const cy_stc_id_filter_t CYBSP_CAN_FD_CH_0_stdIdFilters[] = +{ + [0] = CYBSP_CAN_FD_CH_0_STD_ID_FILTER_0, +}; +const cy_stc_canfd_sid_filter_config_t CYBSP_CAN_FD_CH_0_sidFiltersConfig = +{ + .numberOfSIDFilters = 1U, + .sidFilter = CYBSP_CAN_FD_CH_0_stdIdFilters, +}; +const cy_stc_canfd_f0_t CYBSP_CAN_FD_CH_0_extIdFilterF0Config_0 = +{ + .efid1 = 0U, + .efec = CY_CANFD_EFEC_DISABLE, +}; +const cy_stc_canfd_f1_t CYBSP_CAN_FD_CH_0_extIdFilterF1Config_0 = +{ + .efid2 = 0U, + .eft = CY_CANFD_EFT_RANGE_EFID1_EFID2, +}; +const cy_stc_extid_filter_t CYBSP_CAN_FD_CH_0_extIdFilter_0 = +{ + .f0_f = &CYBSP_CAN_FD_CH_0_extIdFilterF0Config_0, + .f1_f = &CYBSP_CAN_FD_CH_0_extIdFilterF1Config_0, +}; +const cy_stc_extid_filter_t CYBSP_CAN_FD_CH_0_extIdFilters[] = +{ + [0] = CYBSP_CAN_FD_CH_0_EXT_ID_FILTER_0, +}; +const cy_stc_canfd_extid_filter_config_t CYBSP_CAN_FD_CH_0_extIdFiltersConfig = +{ + .numberOfEXTIDFilters = 1U, + .extidFilter = (cy_stc_extid_filter_t*)&CYBSP_CAN_FD_CH_0_extIdFilters, + .extIDANDMask = 536870911UL, +}; +const cy_stc_canfd_global_filter_config_t CYBSP_CAN_FD_CH_0_globalFilterConfig = +{ + .nonMatchingFramesStandard = CY_CANFD_ACCEPT_IN_RXFIFO_0, + .nonMatchingFramesExtended = CY_CANFD_ACCEPT_IN_RXFIFO_0, + .rejectRemoteFramesStandard = false, + .rejectRemoteFramesExtended = false, +}; +const cy_en_canfd_fifo_config_t CYBSP_CAN_FD_CH_0_rxFifo0Config = +{ + .mode = CY_CANFD_FIFO_MODE_BLOCKING, + .watermark = 0U, + .numberOfFIFOElements = 8U, + .topPointerLogicEnabled = false, +}; +const cy_en_canfd_fifo_config_t CYBSP_CAN_FD_CH_0_rxFifo1Config = +{ + .mode = CY_CANFD_FIFO_MODE_BLOCKING, + .watermark = 0U, + .numberOfFIFOElements = 8U, + .topPointerLogicEnabled = false, +}; +const cy_stc_canfd_config_t CYBSP_CAN_FD_CH_0_config = +{ + .txCallback = NULL, + .rxCallback = canfd0_rx_callback, + .errorCallback = NULL, + .canFDMode = true, + .bitrate = &CYBSP_CAN_FD_CH_0_nominalBitrateConfig, + .fastBitrate = &CYBSP_CAN_FD_CH_0_dataBitrateConfig, + .tdcConfig = &CYBSP_CAN_FD_CH_0_tdcConfig, + .sidFilterConfig = &CYBSP_CAN_FD_CH_0_sidFiltersConfig, + .extidFilterConfig = &CYBSP_CAN_FD_CH_0_extIdFiltersConfig, + .globalFilterConfig = &CYBSP_CAN_FD_CH_0_globalFilterConfig, + .rxBufferDataSize = CY_CANFD_BUFFER_DATA_SIZE_8, + .rxFIFO1DataSize = CY_CANFD_BUFFER_DATA_SIZE_8, + .rxFIFO0DataSize = CY_CANFD_BUFFER_DATA_SIZE_8, + .txBufferDataSize = CY_CANFD_BUFFER_DATA_SIZE_8, + .rxFIFO0Config = &CYBSP_CAN_FD_CH_0_rxFifo0Config, + .rxFIFO1Config = &CYBSP_CAN_FD_CH_0_rxFifo1Config, + .noOfRxBuffers = 4U, + .noOfTxBuffers = 2U, + .messageRAMaddress = CY_CAN0MRAM_BASE + 0U, + .messageRAMsize = 8192U, +}; +cy_stc_canfd_t0_t CYBSP_CAN_FD_CH_0_T0RegisterBuffer_0 = +{ + .id = 0x22U, + .rtr = CY_CANFD_RTR_DATA_FRAME, + .xtd = CY_CANFD_XTD_STANDARD_ID, + .esi = CY_CANFD_ESI_ERROR_ACTIVE, +}; +cy_stc_canfd_t0_t CYBSP_CAN_FD_CH_0_T0RegisterBuffer_1 = +{ + .id = 0U, + .rtr = CY_CANFD_RTR_DATA_FRAME, + .xtd = CY_CANFD_XTD_STANDARD_ID, + .esi = CY_CANFD_ESI_ERROR_ACTIVE, +}; +cy_stc_canfd_t1_t CYBSP_CAN_FD_CH_0_T1RegisterBuffer_0 = +{ + .dlc = 8U, + .brs = true, + .fdf = CY_CANFD_FDF_CAN_FD_FRAME, + .efc = false, + .mm = 0U, +}; +cy_stc_canfd_t1_t CYBSP_CAN_FD_CH_0_T1RegisterBuffer_1 = +{ + .dlc = 0U, + .brs = false, + .fdf = CY_CANFD_FDF_STANDARD_FRAME, + .efc = false, + .mm = 0U, +}; +uint32_t CYBSP_CAN_FD_CH_0_dataBuffer_0[] = +{ + [CYBSP_CAN_FD_CH_0_DATA_0] = 0x04030201U, + [CYBSP_CAN_FD_CH_0_DATA_1] = 0x08070605U, +}; +uint32_t CYBSP_CAN_FD_CH_0_dataBuffer_1[] = +{ + [CYBSP_CAN_FD_CH_0_DATA_0] = 0U, + [CYBSP_CAN_FD_CH_0_DATA_1] = 0U, +}; +cy_stc_canfd_tx_buffer_t CYBSP_CAN_FD_CH_0_txBuffer_0 = +{ + .t0_f = &CYBSP_CAN_FD_CH_0_T0RegisterBuffer_0, + .t1_f = &CYBSP_CAN_FD_CH_0_T1RegisterBuffer_0, + .data_area_f = CYBSP_CAN_FD_CH_0_dataBuffer_0, +}; +cy_stc_canfd_tx_buffer_t CYBSP_CAN_FD_CH_0_txBuffer_1 = +{ + .t0_f = &CYBSP_CAN_FD_CH_0_T0RegisterBuffer_1, + .t1_f = &CYBSP_CAN_FD_CH_0_T1RegisterBuffer_1, + .data_area_f = CYBSP_CAN_FD_CH_0_dataBuffer_1, +}; +const cy_stc_smif_config_t CYBSP_SMIF_CORE_0_XSPI_FLASH_config = +{ + .mode = (uint32_t)CY_SMIF_NORMAL, + .deselectDelay = CYBSP_SMIF_CORE_0_XSPI_FLASH_DESELECT_DELAY, + .blockEvent = (uint32_t)CY_SMIF_BUS_ERROR, + .inputFrequencyMHz = 200, + .enable_internal_dll = false, + .dll_divider_value = CY_SMIF_DLL_DIVIDE_BY_2, + .rx_capture_mode = CY_SMIF_SEL_NORMAL_SPI, + .mdl_tap = CY_SMIF_MDL_8_TAP_DELAY, + .device0_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device1_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device2_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device3_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .tx_sdr_extra = CY_SMIF_TX_TWO_PERIOD_AHEAD, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_hf_clock_t CYBSP_SMIF_CORE_0_XSPI_FLASH_clock_ref = +{ + .inst_num = 3U, +}; +const mtb_hal_clock_t CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_clock = +{ + .clock_ref = &CYBSP_SMIF_CORE_0_XSPI_FLASH_clock_ref, + .interface = &mtb_hal_clock_hf_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) +const mtb_hal_memoryspi_configurator_t CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_config = +{ + .base = SMIF0_CORE, + .clock = &CYBSP_SMIF_CORE_0_XSPI_FLASH_hal_clock, + .config = &CYBSP_SMIF_CORE_0_XSPI_FLASH_config, + .csel = {false, true, false, false}, + .irqs = CYBSP_SMIF_CORE_0_XSPI_FLASH_MEMORY_MODE_ALIGMENT_ERROR << 5 | CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_DATA_FIFO_UNDERFLOW << 4 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_COMMAND_FIFO_OVERFLOW << 3 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_DATA_FIFO_OVERFLOW << 2 | (uint8_t)(CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_FIFO_TRIGGER_LEVEL != 0) << 1 | (uint8_t)(CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_FIFO_TRIGGER_LEVEL != 0) << 0, + .dmas = CYBSP_SMIF_CORE_0_XSPI_FLASH_RX_DMA_TRIGGER_OUT_USED << 1 | CYBSP_SMIF_CORE_0_XSPI_FLASH_TX_DMA_TRIGGER_OUT_USED << 0, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) */ + +const cy_stc_smif_config_t CYBSP_SMIF_CORE_1_PSRAM_config = +{ + .mode = (uint32_t)CY_SMIF_NORMAL, + .deselectDelay = CYBSP_SMIF_CORE_1_PSRAM_DESELECT_DELAY, + .blockEvent = (uint32_t)CY_SMIF_BUS_ERROR, + .inputFrequencyMHz = 399, + .enable_internal_dll = false, + .dll_divider_value = CY_SMIF_DLL_DIVIDE_BY_2, + .rx_capture_mode = CY_SMIF_SEL_NORMAL_SPI, + .mdl_tap = CY_SMIF_MDL_8_TAP_DELAY, + .device0_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device1_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device2_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .device3_sdl_tap = CY_SMIF_SDL_8_TAP_DELAY, + .tx_sdr_extra = CY_SMIF_TX_TWO_PERIOD_AHEAD, +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_hf_clock_t CYBSP_SMIF_CORE_1_PSRAM_clock_ref = +{ + .inst_num = 4U, +}; +const mtb_hal_clock_t CYBSP_SMIF_CORE_1_PSRAM_hal_clock = +{ + .clock_ref = &CYBSP_SMIF_CORE_1_PSRAM_clock_ref, + .interface = &mtb_hal_clock_hf_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) +const mtb_hal_memoryspi_configurator_t CYBSP_SMIF_CORE_1_PSRAM_hal_config = +{ + .base = SMIF1_CORE, + .clock = &CYBSP_SMIF_CORE_1_PSRAM_hal_clock, + .config = &CYBSP_SMIF_CORE_1_PSRAM_config, + .csel = {false, false, true, false}, + .irqs = CYBSP_SMIF_CORE_1_PSRAM_MEMORY_MODE_ALIGMENT_ERROR << 5 | CYBSP_SMIF_CORE_1_PSRAM_RX_DATA_FIFO_UNDERFLOW << 4 | CYBSP_SMIF_CORE_1_PSRAM_TX_COMMAND_FIFO_OVERFLOW << 3 | CYBSP_SMIF_CORE_1_PSRAM_TX_DATA_FIFO_OVERFLOW << 2 | (uint8_t)(CYBSP_SMIF_CORE_1_PSRAM_RX_FIFO_TRIGGER_LEVEL != 0) << 1 | (uint8_t)(CYBSP_SMIF_CORE_1_PSRAM_TX_FIFO_TRIGGER_LEVEL != 0) << 0, + .dmas = CYBSP_SMIF_CORE_1_PSRAM_RX_DMA_TRIGGER_OUT_USED << 1 | CYBSP_SMIF_CORE_1_PSRAM_TX_DMA_TRIGGER_OUT_USED << 0, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_MEMORYSPI) */ + +const cy_stc_mcwdt_config_t CYBSP_CM33_LPTIMER_0_config = +{ + .c0Match = 32768U, + .c1Match = 32768U, + .c0Mode = CY_MCWDT_MODE_INT, + .c1Mode = CY_MCWDT_MODE_INT, + .c2ToggleBit = 0U, + .c2Mode = CY_MCWDT_MODE_NONE, + .c0ClearOnMatch = false, + .c1ClearOnMatch = false, + .c0c1Cascade = true, + .c1c2Cascade = false, + .c0LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, + .c0LowerLimit = 0U, + .c1LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, + .c1LowerLimit = 0U, +}; + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) +const mtb_hal_lptimer_configurator_t CYBSP_CM33_LPTIMER_0_hal_config = +{ + .base = CYBSP_CM33_LPTIMER_0_HW, + .lfclk_freqhz = 32768, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) */ + +const cy_stc_mcwdt_config_t CYBSP_CM55_LPTIMER_1_config = +{ + .c0Match = 32768U, + .c1Match = 32768U, + .c0Mode = CY_MCWDT_MODE_INT, + .c1Mode = CY_MCWDT_MODE_INT, + .c2ToggleBit = 0U, + .c2Mode = CY_MCWDT_MODE_NONE, + .c0ClearOnMatch = false, + .c1ClearOnMatch = false, + .c0c1Cascade = true, + .c1c2Cascade = false, + .c0LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, + .c0LowerLimit = 0U, + .c1LowerLimitMode = CY_MCWDT_LOWER_LIMIT_MODE_NOTHING, + .c1LowerLimit = 0U, +}; + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) +const mtb_hal_lptimer_configurator_t CYBSP_CM55_LPTIMER_1_hal_config = +{ + .base = CYBSP_CM55_LPTIMER_1_HW, + .lfclk_freqhz = 32768, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER) */ + +cy_stc_tdm_config_tx_t CYBSP_TDM_CONTROLLER_0_tx_config = +{ + .enable = true, + .masterMode = CY_TDM_DEVICE_MASTER, + .wordSize = CY_TDM_SIZE_16, + .format = CY_TDM_LEFT_DELAYED, + .clkDiv = 4, + .clkSel = CY_TDM_SEL_SRSS_CLK0, + .sckPolarity = CY_TDM_CLK, + .fsyncPolarity = CY_TDM_SIGN_INVERTED, + .fsyncFormat = CY_TDM_CH_PERIOD, + .channelNum = 2, + .channelSize = 16, + .fifoTriggerLevel = 64, + .chEn = 0x3, + .signalInput = 0, + .i2sMode = true, +}; +cy_stc_tdm_config_rx_t CYBSP_TDM_CONTROLLER_0_rx_config = +{ + .enable = false, + .masterMode = CY_TDM_DEVICE_SLAVE, + .wordSize = CY_TDM_SIZE_16, + .signExtend = CY_ZERO_EXTEND, + .format = CY_TDM_LEFT_DELAYED, + .clkDiv = 16, + .clkSel = CY_TDM_SEL_SRSS_CLK0, + .sckPolarity = CY_TDM_CLK, + .fsyncPolarity = CY_TDM_SIGN, + .lateSample = false, + .fsyncFormat = CY_TDM_BIT_PERIOD, + .channelNum = 2, + .channelSize = 16, + .fifoTriggerLevel = 0, + .chEn = 0x3, + .signalInput = 0, + .i2sMode = true, +}; +const cy_stc_tdm_config_t CYBSP_TDM_CONTROLLER_0_config = +{ + .tx_config = &CYBSP_TDM_CONTROLLER_0_tx_config, + .rx_config = &CYBSP_TDM_CONTROLLER_0_rx_config, +}; +const cy_stc_tcpwm_counter_config_t CYBSP_GENERAL_PURPOSE_TIMER_config = +{ + .period = 9999, + .clockPrescaler = CY_TCPWM_COUNTER_PRESCALER_DIVBY_1, + .runMode = CY_TCPWM_COUNTER_CONTINUOUS, + .countDirection = CY_TCPWM_COUNTER_COUNT_UP, + .compareOrCapture = CY_TCPWM_COUNTER_MODE_COMPARE, + .compare0 = 9999, + .compare1 = 16384, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC ) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), + .captureInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .captureInput = CY_TCPWM_INPUT_0, + .reloadInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .stopInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .stopInput = CY_TCPWM_INPUT_0, + .countInputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .capture1InputMode = CYBSP_GENERAL_PURPOSE_TIMER_INPUT_DISABLED & 0x3U, + .capture1Input = CY_TCPWM_INPUT_0, + .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, + .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, + .enableCompare1Swap = false, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, +#if defined (CY_IP_MXS40TCPWM) + .buffer_swap_enable = false, + .direction_mode = CY_TCPWM_COUNTER_DIRECTION_DISABLE, + .glitch_filter_enable = false, + .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, +#endif /* defined (CY_IP_MXS40TCPWM) */ +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_GENERAL_PURPOSE_TIMER_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN0, + .div_type = CY_SYSCLK_DIV_16_BIT, + .div_num = 2, +}; +const mtb_hal_clock_t CYBSP_GENERAL_PURPOSE_TIMER_hal_clock = +{ + .clock_ref = &CYBSP_GENERAL_PURPOSE_TIMER_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) +const mtb_hal_timer_configurator_t CYBSP_GENERAL_PURPOSE_TIMER_hal_config = +{ + .tcpwm_base = CYBSP_GENERAL_PURPOSE_TIMER_HW, + .clock = &CYBSP_GENERAL_PURPOSE_TIMER_hal_clock, + .tcpwm_cntnum = 0U, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) */ + +cy_stc_tcpwm_counter_config_t emUSB_OS_Timer_config = +{ + .period = 99999, + .clockPrescaler = CY_TCPWM_COUNTER_PRESCALER_DIVBY_1, + .runMode = CY_TCPWM_COUNTER_CONTINUOUS, + .countDirection = CY_TCPWM_COUNTER_COUNT_UP, + .compareOrCapture = CY_TCPWM_COUNTER_MODE_CAPTURE, + .compare0 = 16384U, + .compare1 = 16384U, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0) | (CY_TCPWM_INT_ON_CC1 & 0U), + .captureInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .captureInput = CY_TCPWM_INPUT_0, + .reloadInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .stopInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .stopInput = CY_TCPWM_INPUT_0, + .countInputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .capture1InputMode = emUSB_OS_Timer_INPUT_DISABLED & 0x3U, + .capture1Input = CY_TCPWM_INPUT_0, + .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, + .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, + .enableCompare1Swap = false, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, +}; + +#if defined (COMPONENT_MTB_HAL) +mtb_hal_peri_div_t emUSB_OS_Timer_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN1, + .div_type = CY_SYSCLK_DIV_8_BIT, + .div_num = 2, +}; +mtb_hal_clock_t emUSB_OS_Timer_hal_clock = +{ + .clock_ref = &emUSB_OS_Timer_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) +mtb_hal_timer_configurator_t emUSB_OS_Timer_hal_config = +{ + .tcpwm_base = emUSB_OS_Timer_HW, + .clock = &emUSB_OS_Timer_hal_clock, + .tcpwm_cntnum = 1U, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_TIMER) */ + +const cy_stc_tcpwm_pwm_config_t CYBSP_PWM_LED_CTRL_config = +{ + .pwmMode = CY_TCPWM_PWM_MODE_PWM, + .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, + .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, + .deadTimeClocks = 0, + .runMode = CY_TCPWM_PWM_CONTINUOUS, + .period0 = 2000, + .period1 = 32768, + .enablePeriodSwap = false, + .compare0 = 1000, + .compare1 = 16384, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), + .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, + .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, + .killMode = CY_TCPWM_PWM_ASYNC_KILL, + .swapInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .swapInput = CY_TCPWM_INPUT_0, + .reloadInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .killInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .killInput = CY_TCPWM_INPUT_0, + .countInputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .swapOverflowUnderflow = false, + .immediateKill = false, + .tapsEnabled = 45, + .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, + .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, + .enableCompare1Swap = false, + .compare0MatchUp = true, + .compare0MatchDown = false, + .compare1MatchUp = true, + .compare1MatchDown = false, + .kill1InputMode = CYBSP_PWM_LED_CTRL_INPUT_DISABLED & 0x3U, + .kill1Input = CY_TCPWM_INPUT_0, + .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .reloadLineSelect = false, + .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .deadTimeClocks_linecompl_out = 0, +#if defined (CY_IP_MXS40TCPWM) + .hrpwm_enable = false, + .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, + .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, + .deadTimeClocksBuff = 0, + .deadTimeClocksBuff_linecompl_out = 0, + .buffer_swap_enable = false, + .glitch_filter_enable = false, + .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, + .dithering_mode = CY_TCPWM_DITHERING_DISABLE, + .period_dithering_value = 128, + .duty_dithering_value = 128, + .limiter = CY_TCPWM_DITHERING_LIMITER_7, + .pwm_tc_sync_kill_dt = false, + .pwm_sync_kill_dt = false, +#endif /* defined (CY_IP_MXS40TCPWM) */ +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_PWM_LED_CTRL_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN5, + .div_type = CY_SYSCLK_DIV_16_BIT, + .div_num = 3, +}; +const mtb_hal_clock_t CYBSP_PWM_LED_CTRL_hal_clock = +{ + .clock_ref = &CYBSP_PWM_LED_CTRL_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) +const mtb_hal_pwm_configurator_t CYBSP_PWM_LED_CTRL_hal_config = +{ + .base = CYBSP_PWM_LED_CTRL_HW, + .clock = &CYBSP_PWM_LED_CTRL_hal_clock, + .group = 0UL, + .cntnum = 5UL, + .max_count = 2000, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ + +const cy_stc_tcpwm_pwm_config_t CYBSP_DEAD_TIME_PWM_config = +{ + .pwmMode = CY_TCPWM_PWM_MODE_DEADTIME, + .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, + .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, + .deadTimeClocks = 100, + .runMode = CY_TCPWM_PWM_CONTINUOUS, + .period0 = 400, + .period1 = 32768, + .enablePeriodSwap = false, + .compare0 = 200, + .compare1 = 16384, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), + .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, + .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, + .killMode = CY_TCPWM_PWM_STOP_ON_KILL, + .swapInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .swapInput = CY_TCPWM_INPUT_0, + .reloadInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .killInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .killInput = CY_TCPWM_INPUT_0, + .countInputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .swapOverflowUnderflow = false, + .immediateKill = false, + .tapsEnabled = 45, + .compare2 = CY_TCPWM_GRP_CNT_CC0_DEFAULT, + .compare3 = CY_TCPWM_GRP_CNT_CC0_BUFF_DEFAULT, + .enableCompare1Swap = false, + .compare0MatchUp = true, + .compare0MatchDown = false, + .compare1MatchUp = true, + .compare1MatchDown = false, + .kill1InputMode = CYBSP_DEAD_TIME_PWM_INPUT_DISABLED & 0x3U, + .kill1Input = CY_TCPWM_INPUT_0, + .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .reloadLineSelect = false, + .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .deadTimeClocks_linecompl_out = 100, +#if defined (CY_IP_MXS40TCPWM) + .hrpwm_enable = false, + .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, + .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, + .deadTimeClocksBuff = 0, + .deadTimeClocksBuff_linecompl_out = 0, + .buffer_swap_enable = false, + .glitch_filter_enable = false, + .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, + .dithering_mode = CY_TCPWM_DITHERING_DISABLE, + .period_dithering_value = 128, + .duty_dithering_value = 128, + .limiter = CY_TCPWM_DITHERING_LIMITER_7, + .pwm_tc_sync_kill_dt = false, + .pwm_sync_kill_dt = false, +#endif /* defined (CY_IP_MXS40TCPWM) */ +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_DEAD_TIME_PWM_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN7, + .div_type = CY_SYSCLK_DIV_8_BIT, + .div_num = 3, +}; +const mtb_hal_clock_t CYBSP_DEAD_TIME_PWM_hal_clock = +{ + .clock_ref = &CYBSP_DEAD_TIME_PWM_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) +const mtb_hal_pwm_configurator_t CYBSP_DEAD_TIME_PWM_hal_config = +{ + .base = CYBSP_DEAD_TIME_PWM_HW, + .clock = &CYBSP_DEAD_TIME_PWM_hal_clock, + .group = 0UL, + .cntnum = 7UL, + .max_count = 400, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ + +const cy_stc_tcpwm_pwm_config_t CYBSP_SMARTIO_PWM_config = +{ + .pwmMode = CY_TCPWM_PWM_MODE_PWM, + .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_1, + .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, + .deadTimeClocks = 0, + .runMode = CY_TCPWM_PWM_CONTINUOUS, + .period0 = 399, + .period1 = 32768, + .enablePeriodSwap = false, + .compare0 = 200, + .compare1 = 16384, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), + .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, + .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, + .killMode = CY_TCPWM_PWM_ASYNC_KILL, + .swapInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .swapInput = CY_TCPWM_INPUT_0, + .reloadInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .killInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .killInput = CY_TCPWM_INPUT_0, + .countInputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .swapOverflowUnderflow = false, + .immediateKill = false, + .tapsEnabled = 45, + .compare2 = 200, + .compare3 = 16384, + .enableCompare1Swap = false, + .compare0MatchUp = true, + .compare0MatchDown = false, + .compare1MatchUp = true, + .compare1MatchDown = false, + .kill1InputMode = CYBSP_SMARTIO_PWM_INPUT_DISABLED & 0x3U, + .kill1Input = CY_TCPWM_INPUT_0, + .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .reloadLineSelect = false, + .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .deadTimeClocks_linecompl_out = 0, +#if defined (CY_IP_MXS40TCPWM) + .hrpwm_enable = false, + .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, + .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, + .deadTimeClocksBuff = 0, + .deadTimeClocksBuff_linecompl_out = 0, + .buffer_swap_enable = false, + .glitch_filter_enable = false, + .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, + .dithering_mode = CY_TCPWM_DITHERING_DISABLE, + .period_dithering_value = 128, + .duty_dithering_value = 128, + .limiter = CY_TCPWM_DITHERING_LIMITER_7, + .pwm_tc_sync_kill_dt = false, + .pwm_sync_kill_dt = false, +#endif /* defined (CY_IP_MXS40TCPWM) */ +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t CYBSP_SMARTIO_PWM_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN262, + .div_type = CY_SYSCLK_DIV_16_5_BIT, + .div_num = 1, +}; +const mtb_hal_clock_t CYBSP_SMARTIO_PWM_hal_clock = +{ + .clock_ref = &CYBSP_SMARTIO_PWM_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) +const mtb_hal_pwm_configurator_t CYBSP_SMARTIO_PWM_hal_config = +{ + .base = CYBSP_SMARTIO_PWM_HW, + .clock = &CYBSP_SMARTIO_PWM_hal_clock, + .group = 1UL, + .cntnum = 262UL, + .max_count = 399, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ + +const cy_stc_tcpwm_pwm_config_t tcpwm_0_group_1_cnt_9_config = +{ + .pwmMode = CY_TCPWM_PWM_MODE_PWM, + .clockPrescaler = CY_TCPWM_PWM_PRESCALER_DIVBY_2, + .pwmAlignment = CY_TCPWM_PWM_LEFT_ALIGN, + .deadTimeClocks = 0, + .runMode = CY_TCPWM_PWM_CONTINUOUS, + .period0 = 65535, + .period1 = 32768, + .enablePeriodSwap = false, + .compare0 = 52428, + .compare1 = 16384, + .enableCompareSwap = false, + .interruptSources = (CY_TCPWM_INT_ON_TC & 0U) | (CY_TCPWM_INT_ON_CC0 & 0U) | (CY_TCPWM_INT_ON_CC1 & 0U), + .invertPWMOut = CY_TCPWM_PWM_INVERT_DISABLE, + .invertPWMOutN = CY_TCPWM_PWM_INVERT_DISABLE, + .killMode = CY_TCPWM_PWM_STOP_ON_KILL, + .swapInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .swapInput = CY_TCPWM_INPUT_0, + .reloadInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .reloadInput = CY_TCPWM_INPUT_0, + .startInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .startInput = CY_TCPWM_INPUT_0, + .killInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .killInput = CY_TCPWM_INPUT_0, + .countInputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .countInput = CY_TCPWM_INPUT_1, + .swapOverflowUnderflow = false, + .immediateKill = false, + .tapsEnabled = 45, + .compare2 = 52428, + .compare3 = 16384, + .enableCompare1Swap = false, + .compare0MatchUp = true, + .compare0MatchDown = false, + .compare1MatchUp = true, + .compare1MatchDown = false, + .kill1InputMode = tcpwm_0_group_1_cnt_9_INPUT_DISABLED & 0x3U, + .kill1Input = CY_TCPWM_INPUT_0, + .pwmOnDisable = CY_TCPWM_PWM_OUTPUT_HIGHZ, + .trigger0Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .trigger1Event = CY_TCPWM_CNT_TRIGGER_ON_DISABLED, + .reloadLineSelect = false, + .line_out_sel = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .line_out_sel_buff = CY_TCPWM_OUTPUT_PWM_SIGNAL, + .linecompl_out_sel_buff = CY_TCPWM_OUTPUT_INVERTED_PWM_SIGNAL, + .deadTimeClocks_linecompl_out = 0, +#if defined (CY_IP_MXS40TCPWM) + .hrpwm_enable = false, + .hrpwm_input_freq = CY_TCPWM_HRPWM_FREQ_80MHZ_OR_100MHZ, + .kill_line_polarity = CY_TCPWM_LINEOUT_AND_LINECMPOUT_IS_LOW, + .deadTimeClocksBuff = 0, + .deadTimeClocksBuff_linecompl_out = 0, + .buffer_swap_enable = false, + .glitch_filter_enable = false, + .gf_depth = CY_GLITCH_FILTER_DEPTH_SUPPORT_VALUE_0, + .dithering_mode = CY_TCPWM_DITHERING_DISABLE, + .period_dithering_value = 128, + .duty_dithering_value = 128, + .limiter = CY_TCPWM_DITHERING_LIMITER_7, + .pwm_tc_sync_kill_dt = false, + .pwm_sync_kill_dt = false, +#endif /* defined (CY_IP_MXS40TCPWM) */ +}; + +#if defined (COMPONENT_MTB_HAL) +const mtb_hal_peri_div_t tcpwm_0_group_1_cnt_9_clock_ref = +{ + .clk_dst = (en_clk_dst_t)PCLK_TCPWM0_CLOCK_COUNTER_EN265, + .div_type = CY_SYSCLK_DIV_8_BIT, + .div_num = 4, +}; +const mtb_hal_clock_t tcpwm_0_group_1_cnt_9_hal_clock = +{ + .clock_ref = &tcpwm_0_group_1_cnt_9_clock_ref, + .interface = &mtb_hal_clock_peri_interface, +}; +#endif /* defined (COMPONENT_MTB_HAL) */ + +#if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) +const mtb_hal_pwm_configurator_t tcpwm_0_group_1_cnt_9_hal_config = +{ + .base = tcpwm_0_group_1_cnt_9_HW, + .clock = &tcpwm_0_group_1_cnt_9_hal_clock, + .group = 1UL, + .cntnum = 265UL, + .max_count = 65535, +}; +#endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_PWM) */ + +__WEAK void canfd0_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg); + +__WEAK void canfd0_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg) +{ + (void)rxFIFOMsg; + (void)msgBufOrRxFIFONum; + (void)basemsg; +} +void init_cycfg_peripherals(void) +{ + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_PASS_PERI_NR, CY_MMIO_PASS_GROUP_NR, CY_MMIO_PASS_SLAVE_NR, CY_MMIO_PASS_CLK_HF_NR); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_GPU_PERI_NR, CY_MMIO_GFXSS_GPU_GROUP_NR, CY_MMIO_GFXSS_GPU_SLAVE_NR, CY_MMIO_GFXSS_GPU_CLK_HF_NR); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_DC_PERI_NR, CY_MMIO_GFXSS_DC_GROUP_NR, CY_MMIO_GFXSS_DC_SLAVE_NR, CY_MMIO_GFXSS_DC_CLK_HF_NR); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_GFXSS_MIPIDSI_PERI_NR, CY_MMIO_GFXSS_MIPIDSI_GROUP_NR, CY_MMIO_GFXSS_MIPIDSI_SLAVE_NR, CY_MMIO_GFXSS_MIPIDSI_CLK_HF_NR); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_I3C_PERI_NR, CY_MMIO_I3C_GROUP_NR, CY_MMIO_I3C_SLAVE_NR, CY_MMIO_I3C_CLK_HF_NR); + Cy_SysClk_PeriphAssignDivider(PCLK_I3C_CLOCK_I3C_EN, CY_SYSCLK_DIV_8_BIT, 0U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_PDM0_PERI_NR, CY_MMIO_PDM0_GROUP_NR, CY_MMIO_PDM0_SLAVE_NR, CY_MMIO_PDM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriPclkAssignDivider(PCLK_PDM0_CLK_IF_SRSS, CY_SYSCLK_DIV_16_5_BIT, 1U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB0_PERI_NR, CY_MMIO_SCB0_GROUP_NR, CY_MMIO_SCB0_SLAVE_NR, CY_MMIO_SCB0_CLK_HF_NR); + Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB0_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_BIT, 0U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB2_PERI_NR, CY_MMIO_SCB2_GROUP_NR, CY_MMIO_SCB2_SLAVE_NR, CY_MMIO_SCB2_CLK_HF_NR); + Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB2_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_BIT, 1U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB4_PERI_NR, CY_MMIO_SCB4_GROUP_NR, CY_MMIO_SCB4_SLAVE_NR, CY_MMIO_SCB4_CLK_HF_NR); + Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB4_CLOCK_SCB_EN, CY_SYSCLK_DIV_16_5_BIT, 0U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB5_PERI_NR, CY_MMIO_SCB5_GROUP_NR, CY_MMIO_SCB5_SLAVE_NR, CY_MMIO_SCB5_CLK_HF_NR); + Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB5_CLOCK_SCB_EN, CY_SYSCLK_DIV_8_BIT, 0U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SCB9_PERI_NR, CY_MMIO_SCB9_GROUP_NR, CY_MMIO_SCB9_SLAVE_NR, CY_MMIO_SCB9_CLK_HF_NR); + Cy_SysClk_PeriPclkAssignDivider(PCLK_SCB9_CLOCK_SCB_EN, CY_SYSCLK_DIV_8_BIT, 1U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SDHC0_PERI_NR, CY_MMIO_SDHC0_GROUP_NR, CY_MMIO_SDHC0_SLAVE_NR, CY_MMIO_SDHC0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriPclkAssignDivider(PCLK_SDHC0_CLK_HF, CY_SYSCLK_DIV_8_BIT, 0U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SDHC1_PERI_NR, CY_MMIO_SDHC1_GROUP_NR, CY_MMIO_SDHC1_SLAVE_NR, CY_MMIO_SDHC1_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriPclkAssignDivider(PCLK_SDHC1_CLK_HF, CY_SYSCLK_DIV_8_BIT, 0U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_USBHS_PERI_NR, CY_MMIO_USBHS_GROUP_NR, CY_MMIO_USBHS_SLAVE_NR, CY_MMIO_USBHS_CLK_HF_NR); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_CANFD0_PERI_NR , CY_MMIO_CANFD0_GROUP_NR, CY_MMIO_CANFD0_SLAVE_NR, CY_MMIO_CANFD0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriPclkAssignDivider(PCLK_CANFD0_CLOCK_CAN_EN0, CY_SYSCLK_DIV_8_BIT, 4U); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SMIF0_PERI_NR, CY_MMIO_SMIF0_GROUP_NR, CY_MMIO_SMIF0_SLAVE_NR, CY_MMIO_SMIF0_CLK_HF_NR); + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_SMIF01_PERI_NR, CY_MMIO_SMIF01_GROUP_NR, CY_MMIO_SMIF01_SLAVE_NR, CY_MMIO_SMIF01_CLK_HF_NR); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TDM0_PERI_NR, CY_MMIO_TDM0_GROUP_NR, CY_MMIO_TDM0_SLAVE_NR, CY_MMIO_TDM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriPclkAssignDivider(PCLK_TDM0_CLK_IF_SRSS0, CY_SYSCLK_DIV_16_5_BIT, 0U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN0, CY_SYSCLK_DIV_16_BIT, 2U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN1, CY_SYSCLK_DIV_8_BIT, 2U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN5, CY_SYSCLK_DIV_16_BIT, 3U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN7, CY_SYSCLK_DIV_8_BIT, 3U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN262, CY_SYSCLK_DIV_16_5_BIT, 1U); +#if defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) + Cy_SysClk_PeriGroupSlaveInit(CY_MMIO_TCPWM0_PERI_NR, CY_MMIO_TCPWM0_GROUP_NR, CY_MMIO_TCPWM0_SLAVE_NR, CY_MMIO_TCPWM0_CLK_HF_NR); +#endif /* defined (CY_DEVICE_CONFIGURATOR_IP_ENABLE_FEATURE) */ + Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN265, CY_SYSCLK_DIV_8_BIT, 4U); +} diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.h index 4ccadc40..bcb4fdfd 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_peripherals.h @@ -4,9 +4,9 @@ * Description: * Analog configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -39,6 +39,7 @@ #include "cy_scb_uart.h" #include "cy_scb_spi.h" #include "cy_sd_host.h" +#include "cy_canfd.h" #include "cy_smif.h" #include "cycfg_qspi_memslot.h" #include "cy_mcwdt.h" @@ -98,9 +99,9 @@ extern "C" { #define CYBSP_UART5_ENABLED 1U #define CYBSP_UART5_HW SCB5 #define CYBSP_UART5_IRQ scb_5_interrupt_IRQn -#define CYBSP_SPI_CONTROLLER_ENABLED 1U -#define CYBSP_SPI_CONTROLLER_HW SCB10 -#define CYBSP_SPI_CONTROLLER_IRQ scb_10_interrupt_IRQn +#define CYBSP_SPI_9_ENABLED 1U +#define CYBSP_SPI_9_HW SCB9 +#define CYBSP_SPI_9_IRQ scb_9_interrupt_IRQn #define CYBSP_SDHC_0_ENABLED 1U #define CYBSP_SDHC_0_HW SDHC0 #define CYBSP_SDHC_0_IRQ sdhc_0_interrupt_general_IRQn @@ -108,6 +109,30 @@ extern "C" { #define CYBSP_SDHC_1_HW SDHC1 #define CYBSP_SDHC_1_IRQ sdhc_1_interrupt_general_IRQn #define CYBSP_USB_DEVICE_0_ENABLED 1U +#define CYBSP_CAN_FD_CH_0_ENABLED 1U +#define CYBSP_CAN_FD_CH_0_HW CANFD0 +#define CYBSP_CAN_FD_CH_0_CHANNEL CANFD0_CH0 +#define CYBSP_CAN_FD_CH_0_STD_ID_FILTER_ID_0 0 +#define CYBSP_CAN_FD_CH_0_EXT_ID_FILTER_ID_0 0 +#define CYBSP_CAN_FD_CH_0_DATA_0 0 +#define CYBSP_CAN_FD_CH_0_DATA_1 1 +#define CYBSP_CAN_FD_CH_0_DATA_2 2 +#define CYBSP_CAN_FD_CH_0_DATA_3 3 +#define CYBSP_CAN_FD_CH_0_DATA_4 4 +#define CYBSP_CAN_FD_CH_0_DATA_5 5 +#define CYBSP_CAN_FD_CH_0_DATA_6 6 +#define CYBSP_CAN_FD_CH_0_DATA_7 7 +#define CYBSP_CAN_FD_CH_0_DATA_8 8 +#define CYBSP_CAN_FD_CH_0_DATA_9 9 +#define CYBSP_CAN_FD_CH_0_DATA_10 10 +#define CYBSP_CAN_FD_CH_0_DATA_11 11 +#define CYBSP_CAN_FD_CH_0_DATA_12 12 +#define CYBSP_CAN_FD_CH_0_DATA_13 13 +#define CYBSP_CAN_FD_CH_0_DATA_14 14 +#define CYBSP_CAN_FD_CH_0_DATA_15 15 +#define CYBSP_CAN_FD_CH_0_IRQ_0 canfd_0_interrupts0_0_IRQn +#define CYBSP_CAN_FD_CH_0_IRQ_1 canfd_0_interrupts1_0_IRQn +#define CYBSP_CAN_FD_CH_0_CHANNEL_NUM 0U #define CYBSP_SMIF_CORE_0_XSPI_FLASH_ENABLED 1U #define CYBSP_SMIF_CORE_0_XSPI_FLASH_HW SMIF0_CORE #define CYBSP_SMIF_CORE_0_XSPI_FLASH_IRQ smif_0_smif0_interrupt_nsec_IRQn @@ -254,15 +279,15 @@ extern const mtb_hal_clock_t CYBSP_UART5_hal_clock; extern const mtb_hal_uart_configurator_t CYBSP_UART5_hal_config; #endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_UART) */ -extern const cy_stc_scb_spi_config_t CYBSP_SPI_CONTROLLER_config; +extern const cy_stc_scb_spi_config_t CYBSP_SPI_9_config; #if defined (COMPONENT_MTB_HAL) -extern const mtb_hal_peri_div_t CYBSP_SPI_CONTROLLER_clock_ref; -extern const mtb_hal_clock_t CYBSP_SPI_CONTROLLER_hal_clock; +extern const mtb_hal_peri_div_t CYBSP_SPI_9_clock_ref; +extern const mtb_hal_clock_t CYBSP_SPI_9_hal_clock; #endif /* defined (COMPONENT_MTB_HAL) */ #if defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) -extern const mtb_hal_spi_configurator_t CYBSP_SPI_CONTROLLER_hal_config; +extern const mtb_hal_spi_configurator_t CYBSP_SPI_9_hal_config; #endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SPI) */ extern cy_en_sd_host_card_capacity_t CYBSP_SDHC_0_cardCapacity; @@ -297,6 +322,30 @@ extern const mtb_hal_sdhc_configurator_t CYBSP_SDHC_1_sdhc_hal_config; extern const mtb_hal_sdio_configurator_t CYBSP_SDHC_1_sdio_hal_config; #endif /* defined (COMPONENT_MTB_HAL) && (MTB_HAL_DRIVER_AVAILABLE_SDIO) */ +extern void canfd0_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg); +extern const cy_stc_canfd_bitrate_t CYBSP_CAN_FD_CH_0_nominalBitrateConfig; +extern const cy_stc_canfd_bitrate_t CYBSP_CAN_FD_CH_0_dataBitrateConfig; +extern const cy_stc_canfd_transceiver_delay_compensation_t CYBSP_CAN_FD_CH_0_tdcConfig; +extern const cy_stc_id_filter_t CYBSP_CAN_FD_CH_0_stdIdFilter_0; +extern const cy_stc_id_filter_t CYBSP_CAN_FD_CH_0_stdIdFilters[]; +extern const cy_stc_canfd_sid_filter_config_t CYBSP_CAN_FD_CH_0_sidFiltersConfig; +extern const cy_stc_canfd_f0_t CYBSP_CAN_FD_CH_0_extIdFilterF0Config_0; +extern const cy_stc_canfd_f1_t CYBSP_CAN_FD_CH_0_extIdFilterF1Config_0; +extern const cy_stc_extid_filter_t CYBSP_CAN_FD_CH_0_extIdFilter_0; +extern const cy_stc_extid_filter_t CYBSP_CAN_FD_CH_0_extIdFilters[]; +extern const cy_stc_canfd_extid_filter_config_t CYBSP_CAN_FD_CH_0_extIdFiltersConfig; +extern const cy_stc_canfd_global_filter_config_t CYBSP_CAN_FD_CH_0_globalFilterConfig; +extern const cy_en_canfd_fifo_config_t CYBSP_CAN_FD_CH_0_rxFifo0Config; +extern const cy_en_canfd_fifo_config_t CYBSP_CAN_FD_CH_0_rxFifo1Config; +extern const cy_stc_canfd_config_t CYBSP_CAN_FD_CH_0_config; +extern cy_stc_canfd_t0_t CYBSP_CAN_FD_CH_0_T0RegisterBuffer_0; +extern cy_stc_canfd_t0_t CYBSP_CAN_FD_CH_0_T0RegisterBuffer_1; +extern cy_stc_canfd_t1_t CYBSP_CAN_FD_CH_0_T1RegisterBuffer_0; +extern cy_stc_canfd_t1_t CYBSP_CAN_FD_CH_0_T1RegisterBuffer_1; +extern uint32_t CYBSP_CAN_FD_CH_0_dataBuffer_0[]; +extern uint32_t CYBSP_CAN_FD_CH_0_dataBuffer_1[]; +extern cy_stc_canfd_tx_buffer_t CYBSP_CAN_FD_CH_0_txBuffer_0; +extern cy_stc_canfd_tx_buffer_t CYBSP_CAN_FD_CH_0_txBuffer_1; extern const cy_stc_smif_config_t CYBSP_SMIF_CORE_0_XSPI_FLASH_config; #if defined (COMPONENT_MTB_HAL) diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.c index 41132045..6e470baf 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.c @@ -4,9 +4,9 @@ * Description: * Pin configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -771,8 +771,8 @@ const cy_stc_gpio_pin_config_t CYBSP_WIFI_HOST_WAKE_config = .outVal = 1, .driveMode = CY_GPIO_DM_OD_DRIVESLOW, .hsiom = CYBSP_WIFI_HOST_WAKE_HSIOM, - .intEdge = CY_GPIO_INTR_DISABLE, - .intMask = 0UL, + .intEdge = CY_GPIO_INTR_RISING, + .intMask = 1UL, .vtrip = CY_GPIO_VTRIP_CMOS, .slewRate = CY_GPIO_SLEW_FAST, .driveSel = CY_GPIO_DRIVE_1_2, @@ -951,11 +951,11 @@ const cy_stc_gpio_pin_config_t CYBSP_WIFI_SDIO_D3_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_ADC_6_POT_config = +const cy_stc_gpio_pin_config_t CYBSP_SPI_9_CLK_config = { .outVal = 1, - .driveMode = CY_GPIO_DM_ANALOG, - .hsiom = CYBSP_ADC_6_POT_HSIOM, + .driveMode = CY_GPIO_DM_STRONG_IN_OFF, + .hsiom = CYBSP_SPI_9_CLK_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -969,11 +969,11 @@ const cy_stc_gpio_pin_config_t CYBSP_ADC_6_POT_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_4_config = +const cy_stc_gpio_pin_config_t CYBSP_SPI_9_MOSI_config = { .outVal = 1, .driveMode = CY_GPIO_DM_STRONG_IN_OFF, - .hsiom = CYBSP_ARD_ADC_4_HSIOM, + .hsiom = CYBSP_SPI_9_MOSI_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -987,11 +987,11 @@ const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_4_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_5_config = +const cy_stc_gpio_pin_config_t CYBSP_SPI_9_MISO_config = { .outVal = 1, - .driveMode = CY_GPIO_DM_STRONG_IN_OFF, - .hsiom = CYBSP_ARD_ADC_5_HSIOM, + .driveMode = CY_GPIO_DM_HIGHZ, + .hsiom = CYBSP_SPI_9_MISO_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -1005,11 +1005,11 @@ const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_5_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_SPI_CLK_config = +const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_4_config = { .outVal = 1, .driveMode = CY_GPIO_DM_STRONG_IN_OFF, - .hsiom = CYBSP_SPI_CLK_HSIOM, + .hsiom = CYBSP_ARD_ADC_4_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -1023,11 +1023,11 @@ const cy_stc_gpio_pin_config_t CYBSP_SPI_CLK_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_SPI_MOSI_config = +const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_5_config = { .outVal = 1, .driveMode = CY_GPIO_DM_STRONG_IN_OFF, - .hsiom = CYBSP_SPI_MOSI_HSIOM, + .hsiom = CYBSP_ARD_ADC_5_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -1041,11 +1041,11 @@ const cy_stc_gpio_pin_config_t CYBSP_SPI_MOSI_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_SPI_MISO_config = +const cy_stc_gpio_pin_config_t CYBSP_SPI_CLK_config = { .outVal = 1, .driveMode = CY_GPIO_DM_HIGHZ, - .hsiom = CYBSP_SPI_MISO_HSIOM, + .hsiom = CYBSP_SPI_CLK_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -1059,11 +1059,11 @@ const cy_stc_gpio_pin_config_t CYBSP_SPI_MISO_config = .pullUpRes = CY_GPIO_PULLUP_RES_DISABLE, .nonSec = 1, }; -const cy_stc_gpio_pin_config_t CYBSP_SPI_CS_config = +const cy_stc_gpio_pin_config_t CYBSP_SPI_MOSI_config = { .outVal = 1, - .driveMode = CY_GPIO_DM_STRONG_IN_OFF, - .hsiom = CYBSP_SPI_CS_HSIOM, + .driveMode = CY_GPIO_DM_STRONG, + .hsiom = CYBSP_SPI_MOSI_HSIOM, .intEdge = CY_GPIO_INTR_DISABLE, .intMask = 0UL, .vtrip = CY_GPIO_VTRIP_CMOS, @@ -1419,13 +1419,13 @@ void init_cycfg_pins(void) Cy_GPIO_Pin_Init(CYBSP_I2S_TX_FSYNC_PORT, CYBSP_I2S_TX_FSYNC_PIN, &CYBSP_I2S_TX_FSYNC_config); Cy_GPIO_Pin_Init(CYBSP_WIFI_SDIO_D2_PORT, CYBSP_WIFI_SDIO_D2_PIN, &CYBSP_WIFI_SDIO_D2_config); Cy_GPIO_Pin_Init(CYBSP_WIFI_SDIO_D3_PORT, CYBSP_WIFI_SDIO_D3_PIN, &CYBSP_WIFI_SDIO_D3_config); - Cy_GPIO_Pin_Init(CYBSP_ADC_6_POT_PORT, CYBSP_ADC_6_POT_PIN, &CYBSP_ADC_6_POT_config); + Cy_GPIO_Pin_Init(CYBSP_SPI_9_CLK_PORT, CYBSP_SPI_9_CLK_PIN, &CYBSP_SPI_9_CLK_config); + Cy_GPIO_Pin_Init(CYBSP_SPI_9_MOSI_PORT, CYBSP_SPI_9_MOSI_PIN, &CYBSP_SPI_9_MOSI_config); + Cy_GPIO_Pin_Init(CYBSP_SPI_9_MISO_PORT, CYBSP_SPI_9_MISO_PIN, &CYBSP_SPI_9_MISO_config); Cy_GPIO_Pin_Init(CYBSP_ARD_ADC_4_PORT, CYBSP_ARD_ADC_4_PIN, &CYBSP_ARD_ADC_4_config); Cy_GPIO_Pin_Init(CYBSP_ARD_ADC_5_PORT, CYBSP_ARD_ADC_5_PIN, &CYBSP_ARD_ADC_5_config); Cy_GPIO_Pin_Init(CYBSP_SPI_CLK_PORT, CYBSP_SPI_CLK_PIN, &CYBSP_SPI_CLK_config); Cy_GPIO_Pin_Init(CYBSP_SPI_MOSI_PORT, CYBSP_SPI_MOSI_PIN, &CYBSP_SPI_MOSI_config); - Cy_GPIO_Pin_Init(CYBSP_SPI_MISO_PORT, CYBSP_SPI_MISO_PIN, &CYBSP_SPI_MISO_config); - Cy_GPIO_Pin_Init(CYBSP_SPI_CS_PORT, CYBSP_SPI_CS_PIN, &CYBSP_SPI_CS_config); Cy_GPIO_Pin_Init(CYBSP_USER_LED3_PORT, CYBSP_USER_LED3_PIN, &CYBSP_USER_LED3_config); Cy_GPIO_Pin_Init(CYBSP_USER_LED2_PORT, CYBSP_USER_LED2_PIN, &CYBSP_USER_LED2_config); Cy_GPIO_Pin_Init(CYBSP_USER_LED1_PORT, CYBSP_USER_LED1_PIN, &CYBSP_USER_LED1_config); diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.h index e3a07a34..d4a7cad3 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_pins.h @@ -4,9 +4,9 @@ * Description: * Pin configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -782,18 +782,42 @@ extern "C" { #endif #define CYBSP_WIFI_SDIO_D3_HSIOM ioss_0_port_12_pin_5_HSIOM #define CYBSP_WIFI_SDIO_D3_IRQ ioss_interrupts_gpio_12_IRQn -#define CYBSP_ADC_6_POT_ENABLED 1U -#define CYBSP_ADC_6_POT_PORT GPIO_PRT15 -#define CYBSP_ADC_6_POT_PORT_NUM 15U -#define CYBSP_ADC_6_POT_PIN 1U -#define CYBSP_ADC_6_POT_NUM 1U -#define CYBSP_ADC_6_POT_DRIVEMODE CY_GPIO_DM_ANALOG -#define CYBSP_ADC_6_POT_INIT_DRIVESTATE 1 +#define CYBSP_SPI_9_CLK_ENABLED 1U +#define CYBSP_SPI_9_CLK_PORT GPIO_PRT15 +#define CYBSP_SPI_9_CLK_PORT_NUM 15U +#define CYBSP_SPI_9_CLK_PIN 0U +#define CYBSP_SPI_9_CLK_NUM 0U +#define CYBSP_SPI_9_CLK_DRIVEMODE CY_GPIO_DM_STRONG_IN_OFF +#define CYBSP_SPI_9_CLK_INIT_DRIVESTATE 1 +#ifndef ioss_0_port_15_pin_0_HSIOM + #define ioss_0_port_15_pin_0_HSIOM HSIOM_SEL_GPIO +#endif +#define CYBSP_SPI_9_CLK_HSIOM ioss_0_port_15_pin_0_HSIOM +#define CYBSP_SPI_9_CLK_IRQ ioss_interrupts_gpio_15_IRQn +#define CYBSP_SPI_9_MOSI_ENABLED 1U +#define CYBSP_SPI_9_MOSI_PORT GPIO_PRT15 +#define CYBSP_SPI_9_MOSI_PORT_NUM 15U +#define CYBSP_SPI_9_MOSI_PIN 1U +#define CYBSP_SPI_9_MOSI_NUM 1U +#define CYBSP_SPI_9_MOSI_DRIVEMODE CY_GPIO_DM_STRONG_IN_OFF +#define CYBSP_SPI_9_MOSI_INIT_DRIVESTATE 1 #ifndef ioss_0_port_15_pin_1_HSIOM #define ioss_0_port_15_pin_1_HSIOM HSIOM_SEL_GPIO #endif -#define CYBSP_ADC_6_POT_HSIOM ioss_0_port_15_pin_1_HSIOM -#define CYBSP_ADC_6_POT_IRQ ioss_interrupts_gpio_15_IRQn +#define CYBSP_SPI_9_MOSI_HSIOM ioss_0_port_15_pin_1_HSIOM +#define CYBSP_SPI_9_MOSI_IRQ ioss_interrupts_gpio_15_IRQn +#define CYBSP_SPI_9_MISO_ENABLED 1U +#define CYBSP_SPI_9_MISO_PORT GPIO_PRT15 +#define CYBSP_SPI_9_MISO_PORT_NUM 15U +#define CYBSP_SPI_9_MISO_PIN 2U +#define CYBSP_SPI_9_MISO_NUM 2U +#define CYBSP_SPI_9_MISO_DRIVEMODE CY_GPIO_DM_HIGHZ +#define CYBSP_SPI_9_MISO_INIT_DRIVESTATE 1 +#ifndef ioss_0_port_15_pin_2_HSIOM + #define ioss_0_port_15_pin_2_HSIOM HSIOM_SEL_GPIO +#endif +#define CYBSP_SPI_9_MISO_HSIOM ioss_0_port_15_pin_2_HSIOM +#define CYBSP_SPI_9_MISO_IRQ ioss_interrupts_gpio_15_IRQn #define CYBSP_ARD_ADC_4_ENABLED 1U #define CYBSP_ARD_ADC_4_PORT GPIO_PRT15 #define CYBSP_ARD_ADC_4_PORT_NUM 15U @@ -823,7 +847,7 @@ extern "C" { #define CYBSP_SPI_CLK_PORT_NUM 16U #define CYBSP_SPI_CLK_PIN 0U #define CYBSP_SPI_CLK_NUM 0U -#define CYBSP_SPI_CLK_DRIVEMODE CY_GPIO_DM_STRONG_IN_OFF +#define CYBSP_SPI_CLK_DRIVEMODE CY_GPIO_DM_HIGHZ #define CYBSP_SPI_CLK_INIT_DRIVESTATE 1 #ifndef ioss_0_port_16_pin_0_HSIOM #define ioss_0_port_16_pin_0_HSIOM HSIOM_SEL_GPIO @@ -835,37 +859,13 @@ extern "C" { #define CYBSP_SPI_MOSI_PORT_NUM 16U #define CYBSP_SPI_MOSI_PIN 1U #define CYBSP_SPI_MOSI_NUM 1U -#define CYBSP_SPI_MOSI_DRIVEMODE CY_GPIO_DM_STRONG_IN_OFF +#define CYBSP_SPI_MOSI_DRIVEMODE CY_GPIO_DM_STRONG #define CYBSP_SPI_MOSI_INIT_DRIVESTATE 1 #ifndef ioss_0_port_16_pin_1_HSIOM #define ioss_0_port_16_pin_1_HSIOM HSIOM_SEL_GPIO #endif #define CYBSP_SPI_MOSI_HSIOM ioss_0_port_16_pin_1_HSIOM #define CYBSP_SPI_MOSI_IRQ ioss_interrupts_gpio_16_IRQn -#define CYBSP_SPI_MISO_ENABLED 1U -#define CYBSP_SPI_MISO_PORT GPIO_PRT16 -#define CYBSP_SPI_MISO_PORT_NUM 16U -#define CYBSP_SPI_MISO_PIN 2U -#define CYBSP_SPI_MISO_NUM 2U -#define CYBSP_SPI_MISO_DRIVEMODE CY_GPIO_DM_HIGHZ -#define CYBSP_SPI_MISO_INIT_DRIVESTATE 1 -#ifndef ioss_0_port_16_pin_2_HSIOM - #define ioss_0_port_16_pin_2_HSIOM HSIOM_SEL_GPIO -#endif -#define CYBSP_SPI_MISO_HSIOM ioss_0_port_16_pin_2_HSIOM -#define CYBSP_SPI_MISO_IRQ ioss_interrupts_gpio_16_IRQn -#define CYBSP_SPI_CS_ENABLED 1U -#define CYBSP_SPI_CS_PORT GPIO_PRT16 -#define CYBSP_SPI_CS_PORT_NUM 16U -#define CYBSP_SPI_CS_PIN 3U -#define CYBSP_SPI_CS_NUM 3U -#define CYBSP_SPI_CS_DRIVEMODE CY_GPIO_DM_STRONG_IN_OFF -#define CYBSP_SPI_CS_INIT_DRIVESTATE 1 -#ifndef ioss_0_port_16_pin_3_HSIOM - #define ioss_0_port_16_pin_3_HSIOM HSIOM_SEL_GPIO -#endif -#define CYBSP_SPI_CS_HSIOM ioss_0_port_16_pin_3_HSIOM -#define CYBSP_SPI_CS_IRQ ioss_interrupts_gpio_16_IRQn #define CYBSP_USER_LED3_ENABLED 1U #define CYBSP_LED_BLUE_ENABLED CYBSP_USER_LED3_ENABLED #define CYBSP_USER_LED3_PORT GPIO_PRT16 @@ -1195,13 +1195,13 @@ extern const cy_stc_gpio_pin_config_t CYBSP_WIFI_SDIO_D1_config; extern const cy_stc_gpio_pin_config_t CYBSP_I2S_TX_FSYNC_config; extern const cy_stc_gpio_pin_config_t CYBSP_WIFI_SDIO_D2_config; extern const cy_stc_gpio_pin_config_t CYBSP_WIFI_SDIO_D3_config; -extern const cy_stc_gpio_pin_config_t CYBSP_ADC_6_POT_config; +extern const cy_stc_gpio_pin_config_t CYBSP_SPI_9_CLK_config; +extern const cy_stc_gpio_pin_config_t CYBSP_SPI_9_MOSI_config; +extern const cy_stc_gpio_pin_config_t CYBSP_SPI_9_MISO_config; extern const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_4_config; extern const cy_stc_gpio_pin_config_t CYBSP_ARD_ADC_5_config; extern const cy_stc_gpio_pin_config_t CYBSP_SPI_CLK_config; extern const cy_stc_gpio_pin_config_t CYBSP_SPI_MOSI_config; -extern const cy_stc_gpio_pin_config_t CYBSP_SPI_MISO_config; -extern const cy_stc_gpio_pin_config_t CYBSP_SPI_CS_config; extern const cy_stc_gpio_pin_config_t CYBSP_USER_LED3_config; #define CYBSP_LED_BLUE_config CYBSP_USER_LED3_config diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.c index 83a35889..45e6b0ea 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.c @@ -4,9 +4,9 @@ * Description: * System configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -29,6 +29,11 @@ #include "cycfg_protection.h" #include "cycfg_system.h" +#if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) +#include "cycfg_ppc.h" +#include "ifx_se_platform.h" +#endif /* (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) */ + void init_cycfg_protection(void) { #if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && !defined(CYBSP_SKIP_SAU_INIT) @@ -37,6 +42,9 @@ void init_cycfg_protection(void) #if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) && !defined(CYBSP_SKIP_MPC_INIT) init_cycfg_mpc(); #endif /* (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) && !defined(CYBSP_SKIP_MPC_INIT) */ +#if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) && !defined(CYCFG_PROTECTION_SE_ENABLE) && !defined(CYBSP_SKIP_PPC_INIT) + ifx_se_disable(NULL); +#endif /* (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) && !defined(CYCFG_PROTECTION_SE_ENABLE) && !defined(CYBSP_SKIP_PPC_INIT) */ #if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(CY_PDL_TZ_ENABLED) && !defined(CYBSP_SKIP_PPC_INIT) init_cycfg_ppc0(); init_cycfg_ppc1(); diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.h index 4aea91aa..8a16edca 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_protection.h @@ -4,9 +4,9 @@ * Description: * System configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.c index c19390f2..23f3ec70 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.c @@ -4,7 +4,7 @@ * Description: * Provides definitions of the SMIF-driver memory configuration. * This file was automatically generated and should not be modified. - * QSPI Configurator 4.60.0.2742 + * QSPI Configurator 4.70.0.2834 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.h index 3d8e8f9b..d9e92565 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.h @@ -4,7 +4,7 @@ * Description: * Provides declarations of the SMIF-driver memory configuration. * This file was automatically generated and should not be modified. - * QSPI Configurator 4.60.0.2742 + * QSPI Configurator 4.70.0.2834 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -28,7 +28,7 @@ #define CYCFG_QSPI_MEMSLOT_H #include "cy_smif_memslot.h" -#define CY_SMIF_CFG_TOOL_VERSION (460) +#define CY_SMIF_CFG_TOOL_VERSION (470) /* Supported QSPI Driver version */ #define CY_SMIF_DRV_VERSION_REQUIRED (100) diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.timestamp b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.timestamp index 8d7d13aa..b006ed11 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.timestamp +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_qspi_memslot.timestamp @@ -4,7 +4,7 @@ * Description: * Sentinel file for determining if generated source is up to date. * This file was automatically generated and should not be modified. - * QSPI Configurator 4.60.0.2742 + * QSPI Configurator 4.70.0.2834 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.c deleted file mode 100644 index 163308e3..00000000 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.c +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * File Name: cycfg_routing.c - * - * Description: - * Establishes all necessary connections between hardware elements. - * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 - * - ******************************************************************************* - * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or - * an affiliate of Cypress Semiconductor Corporation. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#include "cycfg_routing.h" -#include "cy_trigmux.h" -#include "stdbool.h" -#include "cy_device_headers.h" - -void init_cycfg_routing(void) -{ - Cy_TrigMux_Connect(PERI_0_TRIG_IN_MUX_0_SCB_TX_TR_OUT10, PERI_0_TRIG_OUT_MUX_0_PDMA0_TR_IN1, false, TRIGGER_TYPE_LEVEL); -} diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.h index 7921e5a1..0e35ecfb 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_routing.h @@ -4,9 +4,9 @@ * Description: * Establishes all necessary connections between hardware elements. * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -64,10 +64,11 @@ extern "C" { #define ioss_0_port_12_pin_3_HSIOM P12_3_TDM_TDM_TX_FSYNC0 #define ioss_0_port_12_pin_4_HSIOM P12_4_SDHC0_CARD_DAT_3TO02 #define ioss_0_port_12_pin_5_HSIOM P12_5_SDHC0_CARD_DAT_3TO03 -#define ioss_0_port_16_pin_0_HSIOM P16_0_SCB10_SPI_CLK -#define ioss_0_port_16_pin_1_HSIOM P16_1_SCB10_SPI_MOSI -#define ioss_0_port_16_pin_2_HSIOM P16_2_SCB10_SPI_MISO -#define ioss_0_port_16_pin_3_HSIOM P16_3_SCB10_SPI_SELECT0 +#define ioss_0_port_15_pin_0_HSIOM P15_0_SCB9_SPI_CLK +#define ioss_0_port_15_pin_1_HSIOM P15_1_SCB9_SPI_MOSI +#define ioss_0_port_15_pin_2_HSIOM P15_2_SCB9_SPI_MISO +#define ioss_0_port_16_pin_0_HSIOM P16_0_CANFD0_TTCAN_RX0 +#define ioss_0_port_16_pin_1_HSIOM P16_1_CANFD0_TTCAN_TX0 #define ioss_0_port_16_pin_5_HSIOM P16_5_TCPWM0_LINE5 #define ioss_0_port_17_pin_0_HSIOM P17_0_SCB5_UART_RX #define ioss_0_port_17_pin_1_HSIOM P17_1_SCB5_UART_TX @@ -76,10 +77,8 @@ extern "C" { #define ioss_0_port_21_pin_1_HSIOM P21_1_TDM_TDM_TX_SD0 #define ioss_0_port_21_pin_2_HSIOM P21_2_TDM_TDM_TX_SCK0 #define ioss_0_port_21_pin_3_HSIOM P21_3_TDM_TDM_TX_MCK0 -#define CYBSP_DMA_TX_SPI_CONTROLLER_tr_in_0_TRIGGER_OUT PERI_0_TRIG_OUT_MUX_0_PDMA0_TR_IN1 -#define CYBSP_SPI_CONTROLLER_tr_tx_req_0_TRIGGER_IN PERI_0_TRIG_IN_MUX_0_SCB_TX_TR_OUT10 -void init_cycfg_routing(void); +static inline void init_cycfg_routing(void) {} #if defined(__cplusplus) } diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.c b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.c index eac5cb5a..b3ec03ea 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.c +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.c @@ -4,9 +4,9 @@ * Description: * System configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or @@ -1261,11 +1261,13 @@ cy_rslt_t cycfg_ppc_init_unsecure(PPC_Type* base, const cy_en_prot_region_t regi } cy_rslt_t init_cycfg_ppc0(void) { - return cycfg_ppc_init_unsecure(PPC0, cycfg_unused_ppc_0_regions, cycfg_unused_ppc_0_regions_count); + cy_rslt_t ret = cycfg_ppc_init_unsecure(PPC0, cycfg_unused_ppc_0_regions, cycfg_unused_ppc_0_regions_count); + return ret; } cy_rslt_t init_cycfg_ppc1(void) { - return cycfg_ppc_init_unsecure(PPC1, cycfg_unused_ppc_1_regions, cycfg_unused_ppc_1_regions_count); + cy_rslt_t ret = cycfg_ppc_init_unsecure(PPC1, cycfg_unused_ppc_1_regions, cycfg_unused_ppc_1_regions_count); + return ret; } void init_cycfg_system(void) { diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.h b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.h index 72f8daa9..f8b2c52b 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.h +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/cycfg_system.h @@ -4,9 +4,9 @@ * Description: * System configuration * This file was automatically generated and should not be modified. - * Configurator Backend 3.60.0 - * device-db 4.34.0.9502 - * mtb-dsl-pse8xxgp 1.1.1.824 + * Configurator Backend 3.70.0 + * device-db 4.35.0.9884 + * mtb-dsl-pse8xxgp 1.4.0.994 * ******************************************************************************* * Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/device_mem.json b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/device_mem.json new file mode 100644 index 00000000..1e747eb9 --- /dev/null +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/device_mem.json @@ -0,0 +1,47 @@ +{ + "version" : 1.0, + "memoryData" : + { + "physical" : + [ + { "name" : "CM55_DTCM_INTERNAL", "size" : "0x00040000", "start" : [ "0x48040000", "0x58040000", "0x20000000" ] }, + { "name" : "CM55_ITCM_INTERNAL", "size" : "0x00040000", "start" : [ "0x48000000", "0x58000000", "0x00000000" ] }, + { "name" : "RRAM", "size" : "0x00080000", "start" : [ "0x22000000", "0x02000000", "0x12000000", "0x32000000" ] }, + { "name" : "SMIF0MEM1", "size" : "0x01000000", "start" : [ "0x60000000", "0x08000000", "0x18000000", "0x70000000" ] }, + { "name" : "SMIF1MEM2", "size" : "0x01000000", "start" : [ "0x64000000", "0x0C000000", "0x1C000000", "0x74000000" ] }, + { "name" : "SOCMEM_RAM", "size" : "0x00500000", "start" : [ "0x26000000", "0x06000000", "0x16000000", "0x36000000" ] }, + { "name" : "SRAM", "size" : "0x00100000", "start" : [ "0x24000000", "0x04000000", "0x14000000", "0x34000000" ] } + ], + "region" : + [ + { "name" : "m55_data", "size" : "0x00040000", "start" : [ "0x48040000", "0x58040000", "0x20000000" ] }, + { "name" : "m55_code", "size" : "0x00040000", "start" : [ "0x48000000", "0x58000000", "0x00000000" ] }, + { "name" : "extended_boot_reserved", "size" : "0x00011000", "start" : [ "0x22000000", "0x02000000", "0x12000000", "0x32000000" ], "reserved" : true }, + { "name" : "user_programmable", "size" : "0x0004A000", "start" : [ "0x22011000", "0x02011000", "0x12011000", "0x32011000" ] }, + { "name" : "user_nvm", "size" : "0x00008000", "start" : [ "0x2205B000", "0x0205B000", "0x1205B000", "0x3205B000" ] }, + { "name" : "reserved_region", "size" : "0x00016000", "start" : [ "0x2206A000", "0x0206A000", "0x1206A000", "0x3206A000" ], "reserved" : true }, + { "name" : "m33s_nvm", "size" : "0x00200000", "start" : [ "0x60100000", "0x08100000", "0x18100000", "0x70100000" ] }, + { "name" : "m33s_trailer", "size" : "0x00040000", "start" : [ "0x60300000", "0x08300000", "0x18300000", "0x70300000" ] }, + { "name" : "m33_nvm", "size" : "0x00200000", "start" : [ "0x60340000", "0x08340000", "0x18340000", "0x70340000" ] }, + { "name" : "m33_trailer", "size" : "0x00040000", "start" : [ "0x60540000", "0x08540000", "0x18540000", "0x70540000" ] }, + { "name" : "m55_nvm", "size" : "0x00A00000", "start" : [ "0x60580000", "0x08580000", "0x18580000", "0x70580000" ] }, + { "name" : "m55_trailer", "size" : "0x00040000", "start" : [ "0x60F80000", "0x08F80000", "0x18F80000", "0x70F80000" ] }, + { "name" : "m33_hyerram", "size" : "0x00200000", "start" : [ "0x64000000", "0x0C000000", "0x1C000000", "0x74000000" ] }, + { "name" : "m55_hyperram", "size" : "0x00200000", "start" : [ "0x64200000", "0x0C200000", "0x1C200000", "0x74200000" ] }, + { "name" : "m33_m55_shared_hyperram", "size" : "0x00C00000", "start" : [ "0x64400000", "0x0C400000", "0x1C400000", "0x74400000" ] }, + { "name" : "m55_code_secondary", "size" : "0x00060000", "start" : [ "0x26000000", "0x06000000", "0x16000000", "0x36000000" ] }, + { "name" : "m55_data_secondary", "size" : "0x00160000", "start" : [ "0x26060000", "0x06060000", "0x16060000", "0x36060000" ] }, + { "name" : "m33_m55_shared", "size" : "0x00040000", "start" : [ "0x261C0000", "0x061C0000", "0x161C0000", "0x361C0000" ] }, + { "name" : "gfx_mem", "size" : "0x00300000", "start" : [ "0x26200000", "0x06200000", "0x16200000", "0x36200000" ] }, + { "name" : "extended_boot_sram_reserved", "size" : "0x00001000", "start" : [ "0x24000000", "0x04000000", "0x14000000", "0x34000000" ], "reserved" : true }, + { "name" : "m33s_shared", "size" : "0x00001000", "start" : [ "0x24001000", "0x04001000", "0x14001000", "0x34001000" ] }, + { "name" : "m33s_code", "size" : "0x00035000", "start" : [ "0x24002000", "0x04002000", "0x14002000", "0x34002000" ] }, + { "name" : "m33s_data", "size" : "0x00021000", "start" : [ "0x24037000", "0x04037000", "0x14037000", "0x34037000" ] }, + { "name" : "m33_code", "size" : "0x00065000", "start" : [ "0x24058000", "0x04058000", "0x14058000", "0x34058000" ] }, + { "name" : "m33_data", "size" : "0x00040000", "start" : [ "0x240BD000", "0x040BD000", "0x140BD000", "0x340BD000" ] }, + { "name" : "m33s_allocatable_shared", "size" : "0x00001000", "start" : [ "0x240FD000", "0x040FD000", "0x140FD000", "0x340FD000" ] }, + { "name" : "m33_allocatable_shared", "size" : "0x00001000", "start" : [ "0x240FE000", "0x040FE000", "0x140FE000", "0x340FE000" ] }, + { "name" : "m55_allocatable_shared", "size" : "0x00001000", "start" : [ "0x240FF000", "0x040FF000", "0x140FF000", "0x340FF000" ] } + ] + } +} diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/qspi_config.cfg b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/qspi_config.cfg index dca59607..288637d5 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/qspi_config.cfg +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/GeneratedSource/qspi_config.cfg @@ -4,7 +4,7 @@ # Description: # This file contains a SMIF Bank layout for use with OpenOCD. # This file was automatically generated and should not be modified. -# QSPI Configurator: 4.60.0.2742 +# QSPI Configurator: 4.70.0.2834 # ################################################################################ # Copyright 2026 Cypress Semiconductor Corporation (an Infineon company) or diff --git a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus index fce4144c..e0559226 100644 --- a/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus +++ b/projects/libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus @@ -1,13 +1,8 @@ - + - - - - - @@ -215,17 +210,6 @@ - - - - - - - - - - - @@ -241,6 +225,16 @@ + + + + + + + + + + @@ -323,6 +317,2016 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1312,7 +3316,7 @@ - + @@ -1561,14 +3565,14 @@ - - + + - + - + @@ -1582,10 +3586,10 @@ - - + + - + @@ -1603,14 +3607,14 @@ - - + + - + - + @@ -1624,10 +3628,10 @@ - - + + - + @@ -1645,10 +3649,10 @@ - - + + - + @@ -1666,10 +3670,10 @@ - - + + - + @@ -1687,14 +3691,14 @@ - - + + - + - + @@ -2051,41 +4055,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2133,6 +4102,10 @@ + + + + @@ -2467,7 +4440,12 @@ - + + + + + + @@ -2552,7 +4530,7 @@ - + @@ -2663,11 +4641,9 @@ - - @@ -2722,11 +4698,8 @@ - - - @@ -2914,10 +4887,10 @@ - - + + - + @@ -4085,6 +6058,14 @@ + + + + + + + + @@ -4266,24 +6247,16 @@ - - - - - - - - - - + + - - + + - - + + @@ -4333,10 +6306,6 @@ - - - - @@ -4371,7 +6340,7 @@ - + @@ -4381,10 +6350,6 @@ - - - - @@ -4425,6 +6390,11 @@ + + + + + diff --git a/sdk-bsp-psoc_e84-edgi-talk.yaml b/sdk-bsp-psoc_e84-edgi-talk.yaml index 23eeb7de..aefffb7f 100644 --- a/sdk-bsp-psoc_e84-edgi-talk.yaml +++ b/sdk-bsp-psoc_e84-edgi-talk.yaml @@ -395,6 +395,80 @@ example_projects: target_path_offset: '' files_and_folders: [] +- project_name: Edgi_Talk_M33_IPC + project_description: M33 双核通信示例 + project_type: rt-thread|@full|@5.0.2 + builtin_files: + - source_path_offset: 'projects/Edgi_Talk_IPC/Edgi_Talk_M33_IPC' + target_path_offset: '' + files_and_folders: + - "*" + - source_path_offset: 'projects/' + target_path_offset: '' + files_and_folders: + - libs + - source_path_offset: '' + target_path_offset: '' + files_and_folders: + - libraries + - rt-thread + - source_path_offset: 'tools' + target_path_offset: 'tools' + files_and_folders: + - "*" + external_files: + - package_name: GNU_Tools_for_ARM_Embedded_Processors + package_type: ToolChain_Support_Packages + package_vendor: 'ARM' + package_version: '13.3' + source_path_offset: '.' + target_path_offset: '.' + files_and_folders: [] + - package_name: OpenOCD-Infineon + package_type: Debugger_Support_Packages + package_vendor: 'Infineon' + package_version: '2.0.0' + source_path_offset: '' + target_path_offset: '' + files_and_folders: [] + +- project_name: Edgi_Talk_M55_IPC + project_description: M55 双核通信示例 + project_type: rt-thread|@full|@5.0.2 + builtin_files: + - source_path_offset: 'projects/Edgi_Talk_IPC/Edgi_Talk_M55_IPC' + target_path_offset: '' + files_and_folders: + - "*" + - source_path_offset: 'projects/' + target_path_offset: '' + files_and_folders: + - libs + - source_path_offset: '' + target_path_offset: '' + files_and_folders: + - libraries + - rt-thread + - source_path_offset: 'tools' + target_path_offset: 'tools' + files_and_folders: + - "*" + external_files: + - package_name: GNU_Tools_for_ARM_Embedded_Processors + package_type: ToolChain_Support_Packages + package_vendor: 'ARM' + package_version: '13.3' + source_path_offset: '.' + target_path_offset: '.' + files_and_folders: [] + - package_name: OpenOCD-Infineon + package_type: Debugger_Support_Packages + package_vendor: 'Infineon' + package_version: '2.0.0' + source_path_offset: '' + target_path_offset: '' + files_and_folders: [] + - project_name: Edgi_Talk_Extend_Screen project_description: M55 CherryUSB USB 拓展屏幕示例 project_type: rt-thread|@full|@5.0.2 diff --git a/tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex b/tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex index d76ce16d..8fb92726 100644 --- a/tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex +++ b/tools/edgeprotecttools/cm33_s_signed_fw/proj_cm33_s_signed.hex @@ -1,5 +1,5 @@ :0200000470107A -:100000003DB8F39600000000000400008C8B010056 +:100000003DB8F3960000000000040000648A01007F :10001000000000000000000000000000FFFFFFFFE4 :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 @@ -63,73 +63,73 @@ :1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D :1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D :1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:100400000080053465431018B3421018BB42101821 -:10041000F7421018034310180F4310181B4310180D -:10042000000000000000000000000000274310183A -:1004300033431018000000003F4310184B431018BE -:1004400057431018574310185743101857431018A4 -:100450005743101857431018574310185743101894 -:100460005743101857431018574310185743101884 -:100470005743101857431018574310185743101874 -:100480005743101857431018574310185743101864 -:100490005743101857431018574310185743101854 -:1004A0005743101857431018574310185743101844 -:1004B0005743101857431018574310185743101834 -:1004C0005743101857431018574310185743101824 -:1004D0005743101857431018574310185743101814 -:1004E0005743101857431018574310185743101804 -:1004F00057431018574310185743101857431018F4 -:1005000057431018574310185743101857431018E3 -:1005100057431018574310185743101857431018D3 -:1005200057431018574310185743101857431018C3 -:1005300057431018574310185743101857431018B3 -:1005400057431018574310185743101857431018A3 -:100550005743101857431018574310185743101893 -:100560005743101857431018574310185743101883 -:100570005743101857431018574310185743101873 -:100580005743101857431018574310185743101863 -:100590005743101857431018574310185743101853 -:1005A0005743101857431018574310185743101843 -:1005B0005743101857431018574310185743101833 -:1005C0005743101857431018574310185743101823 -:1005D0005743101857431018574310185743101813 -:1005E0005743101857431018574310185743101803 -:1005F00057431018574310185743101857431018F3 -:1006000057431018574310185743101857431018E2 -:1006100057431018574310185743101857431018D2 -:1006200057431018574310185743101857431018C2 -:1006300057431018574310185743101857431018B2 -:1006400057431018574310185743101857431018A2 -:100650005743101857431018574310185743101892 -:100660005743101857431018574310185743101882 -:100670005743101857431018574310185743101872 -:100680005743101857431018574310185743101862 -:100690005743101857431018574310185743101852 -:1006A0005743101857431018574310185743101842 -:1006B0005743101857431018574310185743101832 -:1006C0005743101857431018574310185743101822 -:1006D0005743101857431018574310185743101812 -:1006E0005743101857431018574310185743101802 -:1006F00057431018574310185743101857431018F2 -:1007000057431018574310185743101857431018E1 -:1007100057431018574310185743101857431018D1 -:1007200057431018574310185743101857431018C1 -:1007300057431018574310185743101857431018B1 -:1007400057431018574310185743101857431018A1 -:100750005743101857431018574310185743101891 -:100760005743101857431018574310185743101881 -:100770005743101857431018574310185743101871 -:100780005743101857431018574310185743101861 -:100790005743101857431018574310185743101851 -:1007A0005743101857431018574310185743101841 -:1007B0005743101857431018574310185743101831 -:1007C0005743101857431018574310185743101821 -:1007D0005743101857431018574310185743101811 -:1007E0005743101857431018574310185743101801 -:1007F00057431018574310185743101857431018F1 -:1008000057431018FFFFFFFFFFFFFFFFFFFFFFFF32 +:100400000080053481431018CF421018D7421018CD +:10041000134310181F4310182B431018374310189C +:10042000000000000000000000000000434310181E +:100430004F431018000000005B431018674310186A +:100440007343101873431018734310187343101834 +:100450007343101873431018734310187343101824 +:100460007343101873431018734310187343101814 +:100470007343101873431018734310187343101804 +:1004800073431018734310187343101873431018F4 +:1004900073431018734310187343101873431018E4 +:1004A00073431018734310187343101873431018D4 +:1004B00073431018734310187343101873431018C4 +:1004C00073431018734310187343101873431018B4 +:1004D00073431018734310187343101873431018A4 +:1004E0007343101873431018734310187343101894 +:1004F0007343101873431018734310187343101884 +:100500007343101873431018734310187343101873 +:100510007343101873431018734310187343101863 +:100520007343101873431018734310187343101853 +:100530007343101873431018734310187343101843 +:100540007343101873431018734310187343101833 +:100550007343101873431018734310187343101823 +:100560007343101873431018734310187343101813 +:100570007343101873431018734310187343101803 +:1005800073431018734310187343101873431018F3 +:1005900073431018734310187343101873431018E3 +:1005A00073431018734310187343101873431018D3 +:1005B00073431018734310187343101873431018C3 +:1005C00073431018734310187343101873431018B3 +:1005D00073431018734310187343101873431018A3 +:1005E0007343101873431018734310187343101893 +:1005F0007343101873431018734310187343101883 +:100600007343101873431018734310187343101872 +:100610007343101873431018734310187343101862 +:100620007343101873431018734310187343101852 +:100630007343101873431018734310187343101842 +:100640007343101873431018734310187343101832 +:100650007343101873431018734310187343101822 +:100660007343101873431018734310187343101812 +:100670007343101873431018734310187343101802 +:1006800073431018734310187343101873431018F2 +:1006900073431018734310187343101873431018E2 +:1006A00073431018734310187343101873431018D2 +:1006B00073431018734310187343101873431018C2 +:1006C00073431018734310187343101873431018B2 +:1006D00073431018734310187343101873431018A2 +:1006E0007343101873431018734310187343101892 +:1006F0007343101873431018734310187343101882 +:100700007343101873431018734310187343101871 +:100710007343101873431018734310187343101861 +:100720007343101873431018734310187343101851 +:100730007343101873431018734310187343101841 +:100740007343101873431018734310187343101831 +:100750007343101873431018734310187343101821 +:100760007343101873431018734310187343101811 +:100770007343101873431018734310187343101801 +:1007800073431018734310187343101873431018F1 +:1007900073431018734310187343101873431018E1 +:1007A00073431018734310187343101873431018D1 +:1007B00073431018734310187343101873431018C1 +:1007C00073431018734310187343101873431018B1 +:1007D00073431018734310187343101873431018A1 +:1007E0007343101873431018734310187343101891 +:1007F0007343101873431018734310187343101881 +:1008000073431018FFFFFFFFFFFFFFFFFFFFFFFF16 :10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:100820007FE97FE903F022BF000000000000000024 +:100820007FE97FE903F030BF000000000000000016 :1008300000000000000000000000000000000000B8 :10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 :10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 @@ -192,7 +192,7 @@ :100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 :100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 :100C0000F8B500BFF8BC08BC9E467047F8B500BFF9 -:100C1000F8BC08BC9E467047ADBB1018F12E1018EA +:100C1000F8BC08BC9E46704785BA1018F12E101813 :100C2000C92E1018020002000000000000000000A1 :100C30000080BB0006000000020000000000000071 :100C400000010000000000000200000000010000A0 @@ -367,7 +367,7 @@ :1016D0000000000000000000000000000300000007 :1016E00000000000000000000000000000000000FA :1016F00000000000010000000000000001000000E8 -:101700000C000000000000000000000000000000CD +:101700000C000000000000000100000001000000CB :1017100000000000000000000300000000000000C6 :1017200000000000000000000000000000000000B9 :101730000100000000000000010000000C0000009B @@ -397,29 +397,29 @@ :1018B0000000000000000000000000000300000025 :1018C0000000000000000000000000000000000018 :1018D0000000000001000000000000000100000006 -:1018E00000000000000000000000000000000000F8 +:1018E00006000000120000000000000000000000E0 :1018F00000000000000000000300000000000000E5 :1019000000000000000000000000000000000000D7 :1019100001000000000000000100000006000000BF -:1019200000000000000000000000000000000000B7 +:1019200012000000000000000000000000000000A5 :1019300000000000030000000000000000000000A4 :101940000000000000000000000000000100000096 -:101950000000000001000000060000000000000080 +:10195000000000000100000008000000120000006C :101960000000000000000000000000000000000077 :101970000300000000000000000000000000000064 :101980000000000000000000010000000000000056 -:10199000010000000600000012000000000000002E +:101990000100000006000000000000000000000040 :1019A0000000000000000000000000000300000034 :1019B0000000000000000000000000000000000027 :1019C0000000000001000000000000000100000015 -:1019D00006000000120000000000000000000000EF +:1019D0000600000000000000000000000000000001 :1019E00000000000000000000300000000000000F4 :1019F00000000000000000000000000000000000E7 :101A000001000000000000000100000008000000CC -:101A100012000000000000000000000000000000B4 +:101A100010000000000000000000000000000000B6 :101A200000000000030000000000000000000000B3 :101A300000000000000000000000000001000000A5 -:101A4000000000000100000006000000120000007D +:101A400000000000010000000E0000001000000077 :101A50000000000000000000000000000000000086 :101A60000300000000000000000000000000000073 :101A70000000000000000000010000000000000065 @@ -648,9 +648,9 @@ :1028600005000000060000000A0000000D00000046 :10287000010000000B0000000D000000010000003E :102880000700000005000000060000000000000036 -:102890000200000000002A5200001D540FA9101869 -:1028A0004DA91018F1AA101871AB10188DAB1018A3 -:1028B000ADAB10180A0D3D3D3D3D3D3D3D3D3D3D1F +:102890000200000000002A5200001D54E7A7101893 +:1028A00025A81018C9A9101849AA101865AA101847 +:1028B00085AA10180A0D3D3D3D3D3D3D3D3D3D3D48 :1028C0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D38 :1028D0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D28 :1028E0003D3D3D3D3D3D3D3D3D3D0A0D000000006F @@ -754,5646 +754,5627 @@ :102F00000840FFF7CDBF00BF00000000C87C0334BD :102F1000507F0014A3F5803A704700BF174B002B79 :102F200008BF134B9D46FFF7F5FF00218B460F4668 -:102F30001348144A121A08F043FC0E4B002B00D021 +:102F30001348144A121A08F0AFFB0E4B002B00D0B6 :102F400098470D4B002B00D098470020002104002B -:102F50000D000D48002802D00C4808F08FFE08F044 -:102F600051FD2000290008F073F908F077FA00BF3E +:102F50000D000D48002802D00C4808F0FBFD08F0D9 +:102F6000BDFC2000290008F0DFF808F0E3F900BFFD :102F70000000080000000000000000000080053490 -:102F8000C47C0334B88103347DBC101805E91018E3 -:102F900080B400AF00BFBD465DF8047B704780B5CC -:102FA00000AF00F004F8FFF7F3FF00BF80BD80B56D -:102FB00000AF00F003F900F0C9F901F00DF900F0DD -:102FC0003BFB00F09BFE00F029FC00F089FE00BFF7 -:102FD00080BD80B582B000AF78600B46FB701346B1 -:102FE000BB70BB781946786804F024FFFB7819465B -:102FF000786804F0D7FE7B68002B02D0786804F074 -:103000006BFE00BF0837BD4680BD80B586B000AFFF -:10301000F8607A601A460B46FB721346BB72FB6877 -:103020003B61FB7A3B7507F110037968184605F0A0 -:1030300077F8BB7A1946F86805F024F9F86805F0C6 -:1030400049F900BF1837BD4680BD80B483B000AFDA -:10305000786000BFFDE7000080B582B002AF0023BA -:10306000009300230022002112480FF00DFB0023E3 -:1030700000930023002201210E480FF005FB0E48AB -:1030800005F0D2F903460D4A934202D10120FFF721 -:10309000DCFF40F6B83005F01FFA0346084A9342B9 -:1030A00002D10120FFF7D1FF064805F075FA00BFF5 -:1030B000BD4680BD80098152300C101801004A00C5 -:1030C00002004A000080BB0080B500AF05F07CFA2A -:1030D00000BF80BD80B582B002AF00230093002303 -:1030E000002201210B480FF0CFFA002300930023A8 -:1030F0000022002107480FF0C7FA074805F02AF917 -:103100000346002B02D00520FFF79FFF00BFBD46FE -:1031100080BD00BF0009815240420F0080B500AF62 -:1031200005F060F900BF80BD80B500AF002004F05D -:10313000EBFC00BF80BD80B500AF002004F0C2FCF6 -:1031400000BF80BD80B500AF002006F02EFC0B490B -:10315000002006F044FC0346002B02D00320FFF7BA -:1031600074FF42F21071002006F056FC0346002B5B -:1031700002D00320FFF769FF00BF80BDF073033466 -:1031800080B500AF012006F010FC0B49012006F0CD -:1031900026FC0346002B02D00320FFF756FF42F225 -:1031A0001071012006F038FC0346002B02D00320EA -:1031B000FFF74BFF00BF80BD5874033480B588B063 -:1031C00000AFFFF781FF0021032005F005FA03217E -:1031D000002004F0E7FD0021002004F02BFE07F0A2 -:1031E00025FB0223FB6105E0F86906F0DEFBFB69C5 -:1031F000013BFB61FB69002BF6D1FFF78FFFFFF767 -:1032000069FFFFF729FFFFF78FFF0023BB610DE088 -:10321000BB69032B07D0454ABB6932F81330194606 -:10322000B86905F0D9F9BB690133BB61BB69052BEE -:10323000EED900237B6115E07B69002B0FD03C4A5F -:103240007B6952F823303B603B68002B07D03B681A -:1032500019783B685B781A467869FFF7BAFE7B6994 -:1032600001337B617B690D2BE6D9FFF764FF314B9E -:10327000314A1A60314B4FF001621A60FFF762FF6A -:103280002F4B2D4A1A602F4B4FF001621A60FFF747 -:1032900077FF00233B6119E0254A3B6952F8233050 -:1032A0007B607B68002B0BD03B69002B0BD17B68CC -:1032B00019787B685B781A463869FFF78AFE02E066 -:1032C000386904F047FD3B6901333B613B690D2BD5 -:1032D000E2D900231946032005F07EF9C8200FF03B -:1032E000D7F901F0DFF80023FB6017E0164AFB680E -:1032F00052F82330BB60BB68002B09D0BB6819783B -:10330000BB685A68BB681B7AF868FFF77EFE02E06C -:10331000F86804F0FFFFFB680133FB60FB680D2BCE -:10332000E4D900BF00BF2037BD4680BD240C101873 -:1033300058730334183240520A191F921C324052FB -:10334000383240523C324052E07C033480B582B087 -:1033500002AF0121022004F0F9FB012140F201102B -:1033600004F0F4FB032140F2031004F0EFFB002211 -:1033700000214FF4807004F01DFB56230022002131 -:103380004FF4807003F090FF002200214FF4807012 -:1033900004F08CFA012200214FF4807004F00AFB43 -:1033A0000923012200214FF4807003F07DFF0122E8 -:1033B00000214FF4807004F079FA022200214FF4CA -:1033C000807004F0F7FA0023022200214FF480708D -:1033D00003F06AFF022200214FF4807004F066FAC5 -:1033E000032200214FF4807004F0E4FAF923032251 -:1033F00000214FF4807003F057FF032200214FF4A7 -:10340000807004F053FA042200214FF4807004F01D -:10341000D1FA0023042200214FF4807003F044FF0E -:10342000042200214FF4807004F040FA00220121B0 -:103430004FF4807004F0BEFA0923002201214FF4FA -:10344000807003F031FF002201214FF4807004F0FE -:103450002DFA012201214FF4807004F0ABFA5623BB -:10346000012201214FF4807003F01EFF012201218F -:103470004FF4807004F01AFA022201214FF4807098 -:1034800004F098FA42F20F73022201214FF4807087 -:1034900003F00AFF022201214FF4807004F006FAC3 -:1034A000032201214FF4807004F084FA4CF24F3370 -:1034B000032201214FF4807003F0F6FE0322012164 -:1034C0004FF4807004F0F2F9002202214FF4807072 -:1034D00004F070FA102300936B23002202214FF4B2 -:1034E000807003F0E3FF002202214FF4807004F0AB -:1034F000DDF9012202214FF4807004F05BFA002311 -:10350000009341F28733012202214FF4807003F0CF -:10351000CDFF012202214FF4807004F0C7F9002290 -:1035200003214FF4807004F045FA002300933F4BD1 -:10353000002203214FF4807003F0B8FF0022032122 -:103540004FF4807004F0B2F9002202214FF4E060E1 -:1035500004F030FA002300930023002202214FF4EC -:10356000E06003F0A3FF002202214FF4E06004F0CA -:103570009DF9002200214FF4106004F01BFA07238C -:10358000002200214FF4106003F08EFE0022002183 -:103590004FF4106004F08AF900220221244804F05C -:1035A00009FA00230093172300220221204803F088 -:1035B0007DFF002202211E4804F078F90122022139 -:1035C0001B4804F0F7F90023009303230122022192 -:1035D000174803F06BFF01220221154804F066F939 -:1035E000002200214FF4813004F0E4F9012300228D -:1035F00000214FF4813003F057FE002200214FF4E8 -:10360000813004F053F9002200210A4804F0D2F975 -:10361000012300220021074803F046FE002200217A -:10362000044804F043F900BFBD4680BDD9B407008B -:10363000000101000003010080B500AF0923002252 -:103640000521002004F0BEFA0123002203210120FD -:1036500004F0B8FA012301220321012004F0B2FA98 -:10366000012302220321012004F0ACFA0A231122D3 -:103670000121002004F0A6FA002200214FF410607E -:1036800004F00EFA012300220121012004F09AFA2D -:10369000012202215E4804F08DF80A23062201214E -:1036A000002004F08FFA002201214FF4807004F012 -:1036B00081F80A2307220121002004F083FA012265 -:1036C000012140F2011004F075F80A2309220121BA -:1036D000002004F077FA0022022140F2031004F0E7 -:1036E00069F80A230A220121002004F06BFA002263 -:1036F00000214FF4827004F05DF80A230F220121AB -:10370000002004F05FFA0122002140F2091004F0C9 -:1037100051F8012303220321012004F053FA00226F -:1037200000214FF4813004F045F8012304220321E5 -:10373000012004F047FA00220021364804F03AF84C -:10374000012305220321012004F03CFA0123022277 -:103750000121012004F036FA012303220121012076 -:1037600004F030FA012301220121012004F02AFA99 -:1037700000220221284804F01DF80A230422012116 -:10378000002004F01FFA0222012140F20D1004F083 -:1037900087F90A2304220121002004F013FA0222EF -:1037A00000214FF4877004F07BF90A2304220121E1 -:1037B000002004F007FA032201214FF4897004F07D -:1037C0006FF90A2304220121002004F0FBF90322EF -:1037D00000214FF48A7004F063F90A2304220121C6 -:1037E000002004F0EFF90122022140F21B1004F046 -:1037F00057F90A2304220121002004F0E3F90422EE -:1038000000214FF48F7004F04BF900BF80BD00BF62 -:1038100002010100000301000001010080B500AFBA -:10382000B04A0121B04802F0D1FBB04A0021B048B3 -:1038300002F0CCFBAF4A0121AD4802F0C7FBAE4A13 -:103840000221AB4802F0C2FBAC4A0321A84802F0B7 -:10385000BDFBAB4A0021AB4802F0B8FBAA4A0021ED -:10386000AA4802F0B3FBAA4A0121A84802F0AEFB25 -:10387000A84A0021A84802F0A9FBA84A0121A648AD -:1038800002F0A4FBA64A0221A34802F09FFBA54A2E -:103890000321A14802F09AFBA34A04219E4802F0AA -:1038A00095FBA24A05219C4802F090FBA04A062104 -:1038B000994802F08BFB9F4A0721974802F086FB4C -:1038C0009D4A05219D4802F081FB9D4A07219B48A6 -:1038D00002F07CFB9B4A00219B4802F077FB9B4A4D -:1038E0000121994802F072FB994A0321964802F09F -:1038F0006DFB984A0421944802F068FB964A052122 -:10390000914802F063FB954A06218F4802F05EFB66 -:10391000934A07218C4802F059FB924A00219248B1 -:1039200002F054FB914A01218F4802F04FFB904A6C -:1039300003218D4802F04AFB8E4A05218A4802F095 -:1039400045FB8D4A0621884802F040FB8B4A07213F -:10395000854802F03BFB8A4A00218A4802F036FB88 -:10396000894A0221874802F031FB884A00218848B1 -:1039700002F02CFB874A0121854802F027FB864A8A -:103980000221834802F022FB844A0321804802F08E -:103990001DFB834A04217E4802F018FB814A062160 -:1039A0007B4802F013FB804A0021804802F00EFBA6 -:1039B0007F4A03217D4802F009FB7E4A04217B48AF -:1039C00002F004FB7C4A0621784802F0FFFA0A2341 -:1039D00002220121002004F0F5F80022032140F228 -:1039E0002D1003F0E7FE754A0021754802F0EEFA4B -:1039F000744A0121724802F0E9FA734A02217048C0 -:103A000002F0E4FA714A03216D4802F0DFFA704ACD -:103A100004216B4802F0DAFA6E4A0521684802F088 -:103A2000D5FA6D4A01216D4802F0D0FA6C4A0621A0 -:103A30006A4802F0CBFA6B4A0721684802F0C6FADE -:103A4000694A0021694802F0C1FA694A01216748C0 -:103A500002F0BCFA674A0221644802F0B7FA664AEB -:103A60000321624802F0B2FA644A05215F4802F07D -:103A7000ADFA634A06215D4802F0A8FA614A0721BF -:103A80005A4802F0A3FA604A0021604802F09EFA08 -:103A90005F4A01215D4802F099FA5E4A07215B48BE -:103AA00002F094FA5C4A06215C4802F08FFA5C4A04 -:103AB00007215A4802F08AFA5A4A00215A4802F06D -:103AC00085FA5A4A0121584802F080FA584A0221E0 -:103AD000554802F07BFA574A0321534802F076FA20 -:103AE00000BF80BD600D1018000081529C0D1018A1 -:103AF00000004754D80D1018140E1018500E10184E -:103B00008C0E101800018152C80E101880018152CD -:103B1000040F1018400F101800004B547C0F1018A1 -:103B2000B80F1018F40F1018301010186C1010186F -:103B3000A8101018E410101820111018000381525A -:103B40005C1110189811101880038152D4111018AC -:103B5000101210184C12101888121018C4121018D5 -:103B6000001310183C131018000481527813101819 -:103B7000B4131018F01310182C141018681410181F -:103B8000A414101880048152E01410181C15101889 -:103B9000000581525815101894151018D0151018DA -:103BA0000C1610184816101884161018800581522B -:103BB000C0161018FC1610183817101874171018A3 -:103BC00000068152B0171018EC171018281810189A -:103BD00064181018A0181018DC18101880078152EB -:103BE000181910185419101890191018000881523B -:103BF000CC191018081A1018441A1018801A101826 -:103C0000BC1A1018F81A1018341B101880088152AA -:103C1000701B1018AC1B1018E81B1018000A8152FA -:103C2000241C1018601C1018800A81529C1C10184B -:103C3000D81C1018141D101880B487B000AFF8609D -:103C4000B9601346FB71FA79FB685B68DBB29A4294 -:103C500000D901BEFB681B6843F00102FB681A60D3 -:103C60000023FB7530E0FB7D1B01BA6813441B7811 -:103C70001A46FB689A60FB7D1B01BA6813445B68B7 -:103C800023F01F02FB68DA60FB7D1B01BA68134456 -:103C90005A68FB7D1B01B9680B449B681344013BC8 -:103CA00023F01F03FA7D1201B9680A44127B002A2F -:103CB00001D0022200E00022134343F00102FB681E -:103CC0001A61FB7D0133FB75FA7DFB799A42CAD3F9 -:103CD00000BF00BF1C37BD465DF8047B7047000085 -:103CE00080B500AF042203490348FFF7A5FF00BFDA -:103CF00080BD00BF18261018D0ED00E080B500AFE1 -:103D00000023002202493D2006F0EEFC00BF80BDEA -:103D10000100004080B483B000AF78600B46FB70B8 -:103D20007B68002B00D101BEFB78012B06D17B689C -:103D30001B6843F010027B681A6005E07B681B6813 -:103D400023F010027B681A60002318460C37BD462A -:103D50005DF8047B704780B483B000AF78607B6807 -:103D60001B68DB0FDBB218460C37BD465DF8047BE1 -:103D7000704780B483B000AF78607B681B6823F025 -:103D800000427B681A6000BF0C37BD465DF8047BBB -:103D9000704780B500AF06F083F906F055FC06F0D9 -:103DA00087F900F0B3FC012300220421012003F075 -:103DB00009FF0421062006F047F800BF80BD00007F -:103DC000B0B5A0B000AFF860B9601346FB71002336 -:103DD000FB6707F15C0318220021184607F0F0FC8E -:103DE00007F140031C220021184607F0E9FCFB689C -:103DF0005B68FB65FB689B683B6607237B6600236B -:103E0000BB6793E0BA6F13465B001344BA68134470 -:103E10001B78BB66BA6F13465B001344BA68134441 -:103E20005B78FB66BA6F13465B001344BA681344B1 -:103E30009B783B6707F1400407F15C050FCD0FC489 -:103E400095E8030084E8030007F140034FF0FF32D8 -:103E50001946182000F083FD0346BB6507F13803BF -:103E600007F140010022184600F0D8FD344A07F15E -:103E7000300392E8030083E803003A6BBB6B9A427D -:103E80004FD100F096FD034683F00103DBB2002B17 -:103E900047D1BA6B2A4907F1280303C983E8030015 -:103EA000F96A284B4B409A423BD100F082FD034611 -:103EB00083F00103DBB2002B33D1214A07F1200349 -:103EC00092E8030083E8030007F1100307F12002E2 -:103ED00092E8030083E803007A691A4B53407B673A -:103EE0003B697A6F9A4201D000F06BFD012383F0A9 -:103EF0000103DBB2002B14D1114A07F1180392E839 -:103F0000030083E8030007F1380207F118031146A4 -:103F1000184600F06FFD034683F00103DBB2002B6F -:103F200001D0094BFB67BB6F0133BB67FB79BA6FED -:103F30009A42FFF467AFFB6F18468037BD46B0BDAD -:103F40006C2710183C5AC3A50300820190B589B0B4 -:103F500000AFF860B9601346FB710023FB610023DA -:103F60007B610023BB6117E0FB681868FB68596838 -:103F7000FB689C68BA6913465B001344BA68134433 -:103F8000224602F06DFB78617B69002B01D07B69D2 -:103F9000FB61BB690133BB61FB79BA699A42E3D328 -:103FA000FB6918462437BD4690BD000080B596B029 -:103FB00000AF00237B6500233B65002387F84F306B -:103FC0005248FFF7C8FE034683F00103DBB2002B23 -:103FD0000ED0012387F84F303B464FF47A724C499C -:103FE0004A480EF031FB3B46194648480EF054FB58 -:103FF000002387F84E304748FFF7ADFE034683F0B5 -:104000000103DBB2002B0ED0012387F84E303B4674 -:104010004FF47A7240493F480EF016FB3B46194672 -:104020003C480EF039FB012000F0DCFB0023BB64B0 -:104030000FE03A4ABB6C52F833203849BB6CDB00C6 -:104040000B441B7919461046FFF764FEBB6C013325 -:10405000BB640722BB6C9342EBD300237B643DE03F -:104060007B6C1B012E4A1344FB6300233B642CE052 -:10407000FB6B19683A6C13465B0013449B000B44BE -:10408000BB63BB6B1B68274A934209D1FB6B9968E2 -:10409000FB6B1B7B1A46B86BFFF792FE38650CE092 -:1040A000BB6B1B68002B08D0FB6B9968FB6B1B7B01 -:1040B0001A46B86BFFF74AFF38653B6D002B01D0FD -:1040C0003B6D7B653B6C01333B64FB6B1B791A4694 -:1040D0003B6C9342CCD37B6C01337B6405227B6CBD -:1040E0009342BDD397F84E30002B02D00948FFF71A -:1040F00040FE97F84F30002B02D00448FFF739FEFE -:104100007B6D18465837BD4680BD00BF0000465441 -:104110007427101800004A5498271018841E10188D -:10412000BC1E10180010215280B586B000AFF86098 -:10413000B9607A600121F86802F025FB78610023FC -:104140003B611BE03B699B00BA6813441B68114A42 -:104150001946F86802F0AAFB78617B69002B0AD146 -:104160003B699B00BA6813441B68FF221946F86834 -:1041700002F0E0FB78613B6901333B617B69002B16 -:1041800003D13A697B689A42DCD37B6918461837B9 -:10419000BD4680BD401F101880B500AF4FF4897335 -:1041A0001A4603490348FFF7BFFF0346184680BD80 -:1041B000481F10180000025280B500AFA2231A4613 -:1041C00003490448FFF7B0FF0346184680BD00BF0F -:1041D000902310180000025480B500AFFFF7D9FDFE -:1041E00000BF80BD80B584B000AF264B5B68254A18 -:1041F00023F040435360244BD3F88830224A43F4E1 -:104200007003C2F88830214BFB6019E00023BB60CB -:104210000EE0FB681A68BB689B001A44FB6859688B -:10422000BB689B000B4412681A60BB680133BB601B -:10423000FB689B68BA689A42EBD3FB680C33FB605F -:10424000FB68134A9342E1D3124B7B6014E00023D6 -:104250003B6009E07B681A683B689B0013440022BE -:104260001A603B6801333B607B685B683A689A423E -:10427000F0D37B6808337B607B68074A9342E6D3C0 -:10428000FEF74CFE30EF00E000ED00E0B026111824 -:10429000C8261118C8261118D026111880B582B06A -:1042A00000AF786078680EF0D7F900BF0837BD46D8 -:1042B00080BD80B400AF00BFFDE780B400AF1EF04A -:1042C000400F08D01EF0040F0CBFEFF30880EFF38F -:1042D0000980FFF7E3BFEFF3948010F0020F0CBFEB -:1042E000EFF38880EFF38980FFF7D8BF00BFBD46AA -:1042F0005DF8047B704780B500AF0EF0B9F900BFE0 -:1043000080BD80B500AF0EF0B3F900BF80BD80B5B1 -:1043100000AF0EF0ADF900BF80BD80B500AF0EF06C -:10432000A7F900BF80BD80B500AF0EF0A1F900BFB6 -:1043300080BD80B500AF0EF09BF900BF80BD80B599 -:1043400000AF0EF095F900BF80BD80B500AF0EF054 -:104350008FF900BF80BD80B500AF0EF089F900BFB6 -:1043600080BD000080B584B000AF3F4B1B683E4A63 -:1043700023F0004313603C4B1B683B4A43F000436F -:10438000136072B600BFD523FB600023BB6032E030 -:10439000FB68C3F1D503354A52F823203449BB6882 -:1043A00041F82320BA68FB681344D52B08D030BFEE -:1043B000FDE7FCE7FBE7FAE7F9E7F8E7F7E7F6E7F9 -:1043C000FB68C3F1D5032A4A52F823202749BB686A -:1043D00051F823309A4208D030BFFDE7FCE7FBE7F5 -:1043E000FAE7F9E7F8E7F7E7F6E7FB68013BFB6078 -:1043F000BB680133BB60BB68D42BC9D91D4B1C4AB9 -:104400009A60BFF35F8F00BF1A4B9B68184A9342B4 -:1044100008D030BFFDE7FCE7FBE7FAE7F9E7F8E78C -:10442000F7E7F6E7144B3B603B6883F30A8800BF6D -:10443000BFF35F8F00BFEFF30A837B607B680E4A98 -:10444000934208D030BFFDE7FCE7FBE7FAE7F9E766 -:10445000F8E7F7E7F6E700F011F8FFF7C3FE00BF53 -:104460001037BD4680BD00BF003022520004101836 -:104470000070033400ED00E00078053480B500AF33 -:1044800000F008F8024B0F22C3F8C02000BF80BD27 -:104490000000265280B400AF00BF00BFBD465DF8EB -:1044A000047B704780B582B000AF00237B607868E2 -:1044B00003F008FD3860134A3B681360114B1B681A -:1044C000114A1360104B1B6803F5742303F23F235A -:1044D0000E4AA2FB03239B0C0D4A13600A4B1B6878 -:1044E00003F2E7330B4AA2FB03239B090A4A13603A -:1044F000002003F0E7FC0346084A136000BF0837BA -:10450000BD4680BDB4750334BC75033483DE1B43E4 -:10451000C4750334D34D6210C0750334B8750334C9 -:1045200080B400AF124BD3F88830114A43F47003C3 -:10453000C2F888300F4BD3F888300E4A43F470032A -:10454000C2F888300A4BD3F88C30094A43F44063F0 -:10455000C2F88C30084B5B6823F05C43064A43F09A -:104560005043536000BFBD465DF8047B704700BFF9 -:1045700000ED00E000ED02E030EF00E080B400AFBD -:104580000A4B1B69094A23F008031361074BDA68D9 -:1045900049F6F7731340054A43F0BF6343F4103301 -:1045A000D36000BFBD465DF8047B704700ED00E0BE -:1045B00080B400AF124B134AC3F88022104B124A4A -:1045C000C3F884220E4B6FF0C002C3F888220C4B54 -:1045D0004FF0FF32C3F88C22094B4FF0FF32C3F883 -:1045E0009022074B4FF0FF32C3F89422044B1F2256 -:1045F000C3F8982200BFBD465DF8047B704700BF3A -:1046000000E100E0FFFF0F0000FBFF9F80B400AF60 -:1046100000BFBD465DF8047B7047000080B582B0E6 -:1046200000AF00237B60FFF7F1FFFFF7A7FFFFF765 -:10463000BFFFFFF775FFFEF7B2FC0B4800F068FE06 -:1046400078607B68002B01D07B6809E0064802F0A7 -:104650008FF878607B68002B01D07B6800E07B6876 -:1046600018460837BD4680BD187D0334C9B2DBB299 -:1046700080B586B002AFF8607A601A460B46FB72CE -:104680001346BB72FA7ABB7A00937B68F9681E48BE -:1046900000F058FF034618461037BD46BDE880407D -:1046A000714672467346B7EE000AF7EE000AB7EE9F -:1046B000001AF7EE001AB7EE002AF7EE002AB7EE5E -:1046C000003AF7EE003AB7EE004AF7EE004AB7EECE -:1046D000005AF7EE005AB7EE006AF7EE006AB7EE3E -:1046E000007AF7EE007A8EF3008C10B4F1EE10CA67 -:1046F0004FF66074C0F6FF740CEA040CE1EE10CAC9 -:1047000010BCF446744700BF187D033480B582B0F6 -:1047100000AF14237B60012003F002FB034683F00B -:104720000103DBB2002B02D0012003F0D5FA294BA4 -:1047300003F500531A46042313600821264805F0A8 -:104740000BFC0421052005F019FB38603B68002BA9 -:1047500007D001BE05E001200DF09AFF7B68013B08 -:104760007B601D4805F0E8FB0346082B02D07B6800 -:10477000002BF0D17B68002B00D101BE0C200DF086 -:1047800087FF0C237B6005E001200DF081FF7B6833 -:10479000013B7B60114805F0CFFB0346082B02D09C -:1047A0007B68002BF0D17B68002B00D101BE082173 -:1047B0000A4805F0D1FB0A4B03F580535B68084AB1 -:1047C00043F0004302F58052536000BF0837BD46F6 -:1047D00080BD00BF00004152003041520000105423 -:1047E0000000405280B584B000AF0346FB710C233B -:1047F000FB60FB79002B56D0022003F091FA0346B0 -:1048000083F00103DBB2002B07D0022003F064FA2F -:10481000B860BB68002B00D001BE0122022101203C -:1048200003F02CFA034683F00103DBB2002B05D022 -:10483000012301220221012003F0C4F9254B1B684A -:10484000244A23F033031360224B4FF6FF729A6021 -:10485000204B4FF480329A6108211F4805F07CFB01 -:10486000B860BB68002B00D001BE0421072005F012 -:1048700085FAB860BB68002B07D001BE05E00120B7 -:104880000DF006FFFB68013BFB60134805F054FB8D -:104890000346082B02D0FB68002BF0D1FB68002BED -:1048A00013D101BE11E00421072005F0CDFAB86054 -:1048B000BB68002B00D001BE0021074805F04CFB6F -:1048C000B860BB68002B00D001BE00BF1037BD46EA -:1048D00080BD00BF000064540000665480B483B003 -:1048E00000AF786039607B683A681A6000BF0C37A7 -:1048F000BD465DF8047B704780B483B000AF78603C -:104900007B681B6818460C37BD465DF8047B704712 -:1049100080B485B000AF78600B46FB707B681B6885 -:104920001A0EFB785340FB60FB689A04FB685B043B -:104930005A40FB68DB035A40FB689B035340FA680C -:104940005340BB607B681B681A02BB685A407B6897 -:104950001A6000BF1437BD465DF8047B704780B510 -:1049600086B000AFF860B9607A6007F1100379682B -:104970001846FFF7B3FF00237B610CE0BA687B6940 -:1049800013441A7807F1100311461846FFF7C0FFC9 -:104990007B6901337B617A69FB689A42EED307F148 -:1049A00010031846FFF7A8FF034618461837BD4600 -:1049B00080BD80B400AF01231846BD465DF8047B7E -:1049C000704780B400AFFFF7FCBFFFF7FABFFFF7F7 -:1049D000F8BFFFF7F6BFFFF7F4BFFFF7F2BFFFF72F -:1049E000F0BFFFF7EEBFFFF7ECBF00BFBD465DF8BD -:1049F000047B704780B483B000AF786039607B6817 -:104A00005A683B685B689A420CBF01230023DBB203 -:104A100018460C37BD465DF8047B704790B5ADB0C5 -:104A200002AF78613961FA60454A07F1780392E88C -:104A3000030083E8030007F158030433C7F8A430E8 -:104A4000D7F8A4303F4A92E8030083E803003B69AB -:104A5000C7F89830D7F89820D7F898103A4B4B40C1 -:104A6000C7F88020C7F88430D7F8A43003F10804D1 -:104A700007F1400307F1800292E8030083E8030096 -:104A80003B6C3B637B6C7B6307F1380307F13002BF -:104A900092E8030083E80300224607F1380393E815 -:104AA000030082E803001823BB6507F158034FF0A9 -:104AB000FF3219461420FFF752FF0346FB6607F149 -:104AC0005803C7F89C30D7F89C20D7F89C101E4B91 -:104AD0004B40C7F88820C7F88C301823C7F8A0309F -:104AE000D7F8A0303B62D7F8A020174B53407B6229 -:104AF00007F1900307F1200292E8030083E8030026 -:104B00003846FB680193D7F894300093D7F890307B -:104B100007F1880206CA00F019F807F178033A464F -:104B200092E8030083E803007B691A4607F17803E3 -:104B300093E8030082E803007869AC37BD4690BD76 -:104B4000BC2710181C2810183C5AC3A582B080B589 -:104B500084B000AFF860381D80E80600FB61F8689B -:104B60007B6A3A1D06CA00F00DF9F8681037BD4699 -:104B7000BDE8804002B0704780B483B000AF786079 -:104B80007B681F2B00D901BE7B681F2B0DD87B686B -:104B9000002B0AD07B681B09104A52F823207B683F -:104BA00003F00F035B01134411E07B68002B02D17B -:104BB0000A4B1B680BE07B68202B07D1074B5A6818 -:104BC0007B6803F00F035B01134400E000231846E9 -:104BD0000C37BD465DF8047B704700BF9428101861 -:104BE00080B483B000AF786039603B68B3F5803F34 -:104BF00000D301BE3B689AB27B689A6000BF0C3755 -:104C0000BD465DF8047B704780B483B000AF786028 -:104C10007B681C331B68DB0FDBB218460C37BD46C4 -:104C20005DF8047B7047000080B483B000AF78600B -:104C30007B681B68002B01DA002300E0034B184659 -:104C40000C37BD465DF8047B704700BF01008A0049 -:104C500080B485B000AF786039607B68054A92E81F -:104C6000030083E8030078681437BD465DF8047BD1 -:104C7000704700BF3428101880B58AB000AF786044 -:104C8000396000237B620020FFF776FF386202E084 -:104C90007B6A01337B627B6A43F69722934205D895 -:104CA000386AFFF7C1FF0346002BF1D17B6A43F658 -:104CB0009722934207D80D4A07F1180392E80300A0 -:104CC00083E8030006E00A4A07F1180392E80300AC -:104CD00083E803007B681A4607F1180393E8030092 -:104CE00082E8030078682837BD4680BD3428101854 -:104CF0003C28101880B58AB000AF78603960002376 -:104D00007B620020FFF738FF386202E07B6A0133E4 -:104D10007B627B6A134A934205D8386AFFF774FFB7 -:104D20000346002BF2D17B6A0E4A934207D80E4A03 -:104D300007F1180392E8030083E8030006E00B4A3A -:104D400007F1180392E8030083E803007B681A4622 -:104D500007F1180393E8030082E803007868283716 -:104D6000BD4680BDFF933577342810183C281018B5 -:104D700080B483B000AF786000BF0C37BD465DF8EB -:104D8000047B704780B5B8B000AF786107F10C00C4 -:104D900080E80600BB60D14A07F1C40392E8030033 -:104DA00083E8030007F1AC0307F10C0292E803006B -:104DB00083E80300D7F8AC30C7F8A430D7F8B03098 -:104DC000C7F8A83007F1B40307F1A40292E8030082 -:104DD00083E803003B46B9681846FFF739FF07F13F -:104DE000C4033A4692E8030083E80300BC4A07F193 -:104DF0009C0392E8030083E80300D7F89C20D7F8CF -:104E0000C4309A4240F08881FFF7D3FD0346002B5F -:104E100000F08281D7F8C420B14907F1940303C997 -:104E200083E80300D7F89810AE4B4B409A4240F00D -:104E30007381FFF7BEFD0346002B00F06D81A84A89 -:104E400007F18C0392E8030083E8030007F17C0379 -:104E500007F18C0292E8030083E80300D7F8802072 -:104E6000A04B5340C7F8D830FB6FD7F8D8209A42F0 -:104E700001D0FFF7A6FD0123002B00F04D81984AD9 -:104E800007F1840392E8030083E8030007F1C402FA -:104E900007F1840311461846FFF7ACFD0346002BCB -:104EA00000F03A813B46B9681846FFF7E5FE07F186 -:104EB000C4033A4692E8030083E80300884A07F1F6 -:104EC000740392E8030083E803007A6FD7F8C430D4 -:104ED0009A4240F01E81FFF76CFD0346002B00F064 -:104EE0001881D7F8C4207E4907F16C0303C983E811 -:104EF0000300396F7B4B4B409A4240F00A81FFF729 -:104F000058FD0346002B00F00481754A07F1640345 -:104F100092E8030083E8030007F1540307F16402F9 -:104F200092E8030083E80300BA6D6E4B5340C7F864 -:104F3000D4307B6DD7F8D4209A4201D0FFF741FDE1 -:104F40000123002B00F0E580654A07F15C0392E83D -:104F5000030083E8030007F1C40207F15C03114674 -:104F60001846FFF747FD0346002B00F0D2800020D3 -:104F7000FFF702FEC7F8DC00D7F8B420D7F8DC3022 -:104F8000DA60D7F8B820D7F8DC301A61BFF35F8F4A -:104F900000BFBFF34F8F00BFBFF36F8F00BF012172 -:104FA000D7F8DC00FFF71CFE3B46B9681846FFF750 -:104FB000A1FE07F1C4033A4692E8030083E8030028 -:104FC000474A07F14C0392E8030083E80300FA6CB8 -:104FD000D7F8C4309A4240F09C80FFF7EAFC0346C1 -:104FE000002B00F09680D7F8C4203D4907F1440318 -:104FF00003C983E80300B96C3A4B4B409A4240F036 -:105000008880FFF7D6FC0346002B00F08280344AEC -:1050100007F13C0392E8030083E8030007F124034F -:1050200007F13C0292E8030083E80300BA6A2D4BC3 -:105030005340C7F8D0307B6AD7F8D0209A4201D0CD -:10504000FFF7BFFC0123002B63D0254A07F134038F -:1050500092E8030083E8030007F1C40207F1340378 -:1050600011461846FFF7C6FC0346002B51D0D7F86F -:10507000DC30DB68C7F8C430D7F8DC301B69C7F810 -:10508000C830D7F8C420D7F8B4309A4241D1FFF7DE -:1050900090FC0346002B3CD0D7F8B420D7F8C810BA -:1050A000104B4B409A4234D1FFF783FC0346002B50 -:1050B0002FD007F12C0307F1C40292E8030083E824 -:1050C00003003A6B074B5340C7F8CC30FB6AD7F864 -:1050D000CC209A4208D0FFF774FC05E04428101851 -:1050E000342810183C5AC3A50123002B11D007F116 -:1050F000B40207F1C40311461846FFF77BFC0346D0 -:10510000002B06D00A4A07F1C40392E8030083E8A3 -:105110000300B868FFF72CFE7B691A4607F1C40349 -:1051200093E8030082E803007869E037BD4680BD5C -:105130004C28101880B485B000AF786039602D4BD2 -:10514000FB607B681B6B002B05D17B68DB6A002B47 -:1051500001D1002347E07B681B6B002B03D07B68E9 -:10516000DB6A002B07D07B681B6B002B06D17B68AA -:10517000DB6A002B02D001BE1E4B34E00023BB6073 -:1051800029E07B68DA6ABB68DB0013441A683B6875 -:105190005B689A421CD17B68DA6ABB68DB00134407 -:1051A0009B881A463B689B689A4211D17B68DA6AF1 -:1051B000BB68DB0013449B79002B06D17B68DB784E -:1051C00083F00103DBB2002B0BD00023FB6008E06F -:1051D000BB680133BB607B681B6BBA689A42D0D353 -:1051E00000E000BFFB6818461437BD465DF8047B3D -:1051F000704700BF0300660980B489B000AF7860D3 -:1052000039603B68FB613E4B1B787B757B68BB61FB -:10521000BB693C4A934268D9BA69FB6913443A4A6C -:10522000934262D8012365E00023FB7557E0002319 -:10523000BB7549E0FB7D354A52F833303B61BA7D9E -:1052400013465B0013449B001A463B6913441B68DA -:105250001946BA7D13465B0013449B001A463B690E -:1052600013445B680B44FB60BA7D13465B00134438 -:105270009B001A463B6913441B681A46BB6993425C -:105280001FD3BA69FB689A421BD2BA7D13465B00F2 -:1052900013449B001A463B6913441B7A002B01D030 -:1052A000002327E0BA69FB691344FA689A4206D2E0 -:1052B000FA68BB69D31AFB61FB68BB6101E001239B -:1052C00018E0BB7D0133BB75FB7D104ADB00134446 -:1052D0001B79BA7D9A42ADD3FB7D0133FB75FA7D14 -:1052E0007B7D9A42A3D3002304E000BFFB69002B1F -:1052F0009AD1002318462437BD465DF8047B7047D9 -:105300003C1F1018FFFF0348FFFF07480C1F101831 -:1053100080B582B000AF786008220021786806F07E -:105320004FFA002318460837BD4680BD80B588B0C7 -:1053300000AFF8607A601A460B46FB721346BB72E8 -:10534000FB68002B00D101BE7B68002B00D101BEA1 -:10535000BB6A002B00D101BEFB6A002B00D101BE4D -:10536000FA7ABB7A1344042B01D9574BA8E0FA68A8 -:10537000FB7ADB0019461046FFF73EFF034683F039 -:105380000103DBB2002B01D0504B99E07A68BB7A65 -:10539000DB0019461046FFF72FFF034683F0010399 -:1053A000DBB2002B01D0494B8AE00023FB6116E001 -:1053B000FB69DB00FA681A44FB69DB00B96A0B443D -:1053C00012681A60FB69DB00FA681A44FB69DB00AB -:1053D000B96A0B4452685A60FB690133FB61FB7A7E -:1053E000FA699A42E4D30023BB6116E0BB69DB0093 -:1053F0007A681A44BB69DB00F96A0B4412681A60C8 -:10540000BB69DB007A681A44BB69DB00F96A0B44AC -:1054100052685A60BB690133BB61BB7ABA699A4270 -:10542000E4D300237B611FE07B69DB00BA6A13448D -:105430001B68002B15D07B69DB00BA6A13441B681C -:1054400018467B69DB00BA6A13445B681946FFF7AC -:10545000D3FE034683F00103DBB2002B01D01B4BCC -:105460002EE07B6901337B61FB7A7A699A42DBD358 -:1054700000233B611FE03B69DB00FA6A13441B68B1 -:10548000002B15D03B69DB00FA6A13441B681846F1 -:105490003B69DB00FA6A13445B681946FFF7ACFE10 -:1054A000034683F00103DBB2002B01D0074B07E07A -:1054B0003B6901333B61BB7A3A699A42DBD30023F3 -:1054C00018462037BD4680BD000066090300660906 -:1054D00080B588B000AFF860B9607A603B60BB68A7 -:1054E000033323F00303FB61FB69B42B03D8FA6990 -:1054F000BB689A4201D2124B1EE03B681A68FB69F6 -:10550000C3F1B4039A4201D90D4B15E03B681B6807 -:10551000FA691344BB613B681B687A6813447B617A -:10552000BA68F968786906F09DFABB6A7A691A6008 -:105530003B68BA691A60002318462037BD4680BD13 -:1055400008006609B0B5D0B002AF07F59C74A4F5A9 -:105550009674206007F59C70A0F598700160114664 -:1055600007F59C72A2F59C72136007F59C73A3F279 -:1055700031130A461A7007F12003B422002118469D -:1055800006F01EF907F59C73A3F58E7300221A60CE -:105590000023C7F834310023C7F8303197F8484169 -:1055A00007F59C73A3F59C7207F59C73A3F2311366 -:1055B000197807F59C73A3F5987007F1D40301934C -:1055C00007F1F4030093234612680068FFF7AEFE6C -:1055D000C7F83401D7F83431002B0AD1D7F8F430AA -:1055E000002B03D0D7F8D430002B02D1C84BC7F81A -:1055F0003431D7F83431002B0AD1D7F8F8300F2BDB -:1056000003D9D7F8D830072B02D8C14BC7F83431AB -:10561000D7F83431002B0FD1D7F8F400D7F8F810B1 -:1056200007F11C0407F1200207F118030093234639 -:10563000FFF74EFFC7F83401D7F83431002B0FD1F4 -:10564000D7F8D400D7F8D81007F11C0407F12002CE -:1056500007F1140300932346FFF73AFFC7F834011C -:10566000D7F83431002B2FD107F59C73A3F5907335 -:105670001B68C7F82C31D7F82C315B68002B08D099 -:10568000D7F82C315B6843F080531A46D7F82C3199 -:105690005A6007F59C73A3F590731B68DB6803F1F0 -:1056A0001002D7F8F8309A420BD107F59C73A3F596 -:1056B00092731B685B6803F10802D7F8D8309A42EE -:1056C00002D0934BC7F83431D7F83431002B6AD16C -:1056D000D7F82C311B78012B1ED8D7F82C311B782A -:1056E0001A4607F59C73A3F596731B6853F822308E -:1056F000002B11D0D7F82C315B781A46D7F82C3113 -:105700001B78194607F59C73A3F596731B6853F82D -:105710002130DB689A4203D37E4BC7F8343142E034 -:10572000D7F82C311B781A4607F59C73A3F59673AE -:105730001B6853F82230C7F81C31D7F81C319A681F -:10574000D7F82C315B789B0013441B68C7F81831DD -:10575000D7F82C319B781A46D7F81831934212D9D2 -:10576000D7F81C315A68D7F82C315B789B0013446A -:105770001A68D7F82C319B781946342301FB03F3C0 -:105780001344C7F83031D7F83031002B03D1624BC6 -:10579000C7F8343107E0D7F82C11D7F83001FFF7FC -:1057A000C9FCC7F83401D7F83431002B63D107F5B1 -:1057B0009C73A3F590731B68DA68D7F830319B6847 -:1057C0009A420AD307F59C73A3F592731B685A6833 -:1057D000D7F83031DB689A4202D24D4BC7F83431EA -:1057E0000123C7F8283119E0D7F82831DB0003F589 -:1057F0009C733B4453F8402CD7F82831591ED7F8F6 -:105800003031043153F821309A4202D2404BC7F86C -:105810003431D7F828310133C7F8283107F59C73A4 -:10582000A3F231131B78D7F828219A42DCD3012345 -:10583000C7F8243119E0D7F82431DB0003F59C7355 -:105840003B4453F8602CD7F82431591ED7F8303137 -:10585000083153F821309A4202D22D4BC7F8343127 -:10586000D7F824310133C7F8243197F84831D7F8F5 -:1058700024219A42DFD3D7F83431002B4FD10123B2 -:10588000C7F820313AE0D7F82031013BD7F8302172 -:1058900013441B7F002B2CD0D7F82031DB0003F5FD -:1058A0009C733B4453F8440CD7F82031DB0003F5DC -:1058B0009C733B4453F8401C07F11C0407F1200281 -:1058C00007F1100300932346FFF702FEC7F83401E7 -:1058D000D7F83431002B21D107F59C73A3F59473CD -:1058E0001A68D7F82031DB0003F59C733B4443F87A -:1058F000442CD7F820310133C7F8203107F59C73C9 -:10590000A3F231131B78D7F820219A42BBD306E0CB -:1059100000006609040066090100660900BFD7F8A7 -:105920003431002B37D1D7F830315C6807F59C73E0 -:10593000A3F59073186807F59C73A3F59273196823 -:1059400007F59C73A3F231131B78013BDDB297F886 -:105950004831013BDBB207F1F4020832019307F151 -:10596000D403083300932B46A047C7F8140107F56A -:105970009C73A3F592731B68D7F814211A60D7F8AB -:10598000D40007F59C73A3F592731B68D7F8D82051 -:10599000194606F067F8D7F83431184607F59C77B2 -:1059A000BD46B0BD80B582B000AF7860396006F00A -:1059B00023F8034658221A604FF0FF331846083781 -:1059C000BD4680BD80B582B000AF786006F014F8A7 -:1059D000034658221A6001BE4FF0FF3318460837BD -:1059E000BD4680BD80B584B000AFF860B9607A6014 -:1059F00006F002F8034658221A6001BE4FF0FF334A -:105A000018461037BD4680BD80B500AF05F0F4FFE5 -:105A1000034658221A6001BE4FF0FF33184680BD7E -:105A200080B582B000AF786005F0E6FF03465822EB -:105A30001A6001BE4FF0FF3318460837BD4680BDDF -:105A400080B582B000AF7860396005F0D5FF0346BD -:105A500058221A6001BE4FF0FF3318460837BD4682 -:105A600080BD000080B489B000AFF860B9607A6092 -:105A7000BB68072B00D901BE7B681F2B00D901BE74 -:105A8000FB6803F12D4303F5FE03DB09BB61BB6932 -:105A900003F1A56303F580731B01FB61FB68244AD6 -:105AA000934213D0FB68234A93420FD0FB68224AEB -:105AB00093420BD0FB68214A934207D0FB68204AEF -:105AC000934203D0FB681F4A934218D1FB681E4AD9 -:105AD000934202D94FF4802300E000237B61FA68EF -:105AE0007B69D31A03F12B4303F53903DB09BB614F -:105AF000BA69164B13441A017B691344FB61FB69B5 -:105B00001A680121BB6801FA03F3DB4313403B61D0 -:105B10007B6803F00102BB689A403B691A43FB694A -:105B20001A6000BF2437BD465DF8047B704700BF94 -:105B300000004754800047540001475400004B5474 -:105B400080004B5400014B54FFFF4A54006544054C -:105B500080B489B000AFF860B9601346FB71BB68D0 -:105B6000072B00D901BEFB791F2B00D901BEFB68B2 -:105B700003F12D4303F5FE03DB09BB61BB6903F1B0 -:105B8000A5631B01FB61FB68324A934213D0FB689B -:105B9000314A93420FD0FB68304A93420BD0FB68E6 -:105BA0002F4A934207D0FB682E4A934203D0FB68EA -:105BB0002D4A934218D1FB682C4A934202D94FF4E4 -:105BC000802300E000237B61FA687B69D31A03F12C -:105BD0002B4303F53903DB09BB61BA69244B13443A -:105BE0001A017B691344FB61BB68032B14D8FB6962 -:105BF0001A68BB68DB001F2101FA03F3DB43134083 -:105C00003B61FB7903F01F02BB68DB009A403B69F4 -:105C10001A43FB691A6016E0BB68043BBB60FB6972 -:105C20005A68BB68DB001F2101FA03F3DB43134012 -:105C30003B61FB7903F01F02BB68DB009A403B69C4 -:105C40001A43FB695A6000BF2437BD465DF8047BE8 -:105C5000704700BF0000475480004754000147547C -:105C600000004B5480004B5400014B54FFFF4A543A -:105C70000064440580B485B000AFF860B9607A6014 -:105C8000BB68072B00D901BE7B68012B00D901BE80 -:105C90007B68002B05D10122BB689A40FB685A60E3 -:105CA00004E00122BB689A40FB689A6000BF143789 -:105CB000BD465DF8047B704780B48BB000AFF860E0 -:105CC000B9607A60BB68072B00D901BE7B680F2BD7 -:105CD00002D97B68802B05D17B68012B02D07B68C1 -:105CE000092B00D101BEBB689B00FB61FB685A6CAD -:105CF0000F21FB6901FA03F3DB431340BB61FB682F -:105D00001A6F0F21FB6901FA03F3DB4313407B6138 -:105D10007B68802B17D10F22FB6902FA03F3DB4368 -:105D2000BA6913407B620822FB6902FA03F37A6ABC -:105D300013437B627B681A09FB6902FA03F37A69F1 -:105D400013433B6210E07B6803F00F02FB6902FA29 -:105D500003F3BA6913437B620F22FB6902FA03F370 -:105D6000DB437A6913403B62FB687A6A5A64FB68DA -:105D70003A6A1A6700BF2C37BD465DF8047B70474E -:105D800080B487B000AF786039603B68072B00D9DA -:105D900001BE7B685B6C3B613B689B003A6922FA01 -:105DA00003F303F00703002B17D17B681B6FFB6025 -:105DB0003B689B00FA6822FA03F303F00F03082BF9 -:105DC00002D180237B6110E03B689B003A6922FA94 -:105DD00003F303F00F037B6107E03B689B003A6924 -:105DE00022FA03F303F00F037B617B6918461C372B -:105DF000BD465DF8047B704780B487B000AFF860A3 -:105E0000B9607A60BB68072B00D901BE7B68012BA3 -:105E100000D901BEFB689A6C0121BB6801FA03F34B -:105E2000DB4313407B617B6803F00102BB689A404F -:105E30007B691A43FB689A6400BF1C37BD465DF856 -:105E4000047B704780B487B000AFF860B9607A60B7 -:105E5000BB68072B00D901BE7B68012B00D901BEAE -:105E6000BB689B007B61FB685A6E07217B6901FA66 -:105E700003F3DB4313403B617B6803F007027B695C -:105E80009A403B691A43FB685A6600BF1C37BD46FF -:105E90005DF8047B704780B487B000AFF860B960EC -:105EA0007A60BB68072B00D901BE7B681F2B00D925 -:105EB00001BEBB68032B14D8FB689A6EBB68DB007D -:105EC0001F2101FA03F3DB4313407B617B6803F07E -:105ED0001F02BB68DB009A407B691A43FB689A6625 -:105EE00016E0BB68043BBB60FB68DA6EBB68DB0096 -:105EF0001F2101FA03F3DB4313407B617B6803F04E -:105F00001F02BB68DB009A407B691A43FB68DA66B4 -:105F100000BF1C37BD465DF8047B704780B487B076 -:105F200000AFF860B9607A60BB68082B00D901BE89 -:105F30007B68012B00D901BEFB689A690121BB680F -:105F400001FA03F3DB4313407B617B6803F001023A -:105F5000BB689A407B691A43FB689A6100BF1C3793 -:105F6000BD465DF8047B704780B487B000AFF86031 -:105F7000B9607A60BB68082B00D901BE7B68002B32 -:105F800009D07B68012B06D07B68022B03D07B688D -:105F9000032B00D001BEBB685B007B61FB681A6C01 -:105FA00003217B6901FA03F3DB4313403B617B6808 -:105FB00003F003027B699A403B691A43FB681A6449 -:105FC00000BF1C37BD465DF8047B704780B588B0C4 -:105FD00000AFF860B9607A60114BFB61FB68002B81 -:105FE00000F02B817B68002B00F02781BB68072B1A -:105FF00000D901BE7B681B68012B00D901BE7B68FC -:106000005B680F2B03D97B685B68802B0AD17B68A8 -:106010005B68012B06D07B685B68092B03D101E02C -:1060200001005A0001BE7B681B7A1F2B00D901BEFC -:106030007B68DB68002B0CD07B68DB68012B08D009 -:106040007B68DB68022B04D07B68DB68032B00D005 -:1060500001BE7B681B69012B00D901BE7B685B69AF -:10606000012B00D901BE7B681B6A012B00D901BE40 -:106070007B685B6A012B00D901BE7B689B6A012BA0 -:1060800000D901BE7B68DB6A002B0CD07B68DB6A21 -:10609000012B08D07B68DB6A022B04D07B68DB6AAB -:1060A000032B00D001BE7B681B6B002B1CD07B68D0 -:1060B0001B6B012B18D07B681B6B022B14D07B68E9 -:1060C0001B6B032B10D07B681B6B042B0CD07B68E5 -:1060D0001B6B052B08D07B681B6B062B04D07B68E1 -:1060E0001B6B072B00D001BE7B68DB691F2B00D91F -:1060F00001BE7B689B6B002B1CD07B689B6B072BC6 -:1061000018D07B689B6B062B14D07B689B6B052B90 -:1061100010D07B689B6B032B0CD07B689B6B042B94 -:1061200008D07B689B6B022B04D07B689B6B012B98 -:1061300000D001BE7B689B69072B00D901BE0022FD -:10614000B968F868FFF78EFC7B689B691A46B968E6 -:10615000F868FFF777FE7B68DB691A46B968F8686C -:10616000FFF799FE7B681B7A1A46B968F868FFF753 -:10617000EFFC7B685B681A46B968F868FFF79CFD1E -:106180007B68DB681A46B968F868FFF7EDFE7B6844 -:106190001B691A46B968F868FFF7C0FE7B685B693F -:1061A0001A46B968F868FFF727FEFB681B6D23F0F5 -:1061B000FF03BB617B681B6A03F001027B685B6ABB -:1061C0005B0003F002031A437B689B6A9B0003F0A9 -:1061D00004031A437B68DB6ADB0003F018031A43ED -:1061E0007B681B6B5B01DBB21A43BB689B0003F44B -:1061F0007E7302FA03F3BA6913437B61FB687A6921 -:106200001A657B689B6B1A46B968F86800F01AF843 -:106210007B681B681A46B968F868FFF72BFD7B6836 -:106220005B6B012B00D901BE7B685B6B1A46B968BA -:10623000F868FFF717FC0023FB61FB69184620375D -:10624000BD4680BD80B588B000AFF860B9607A60A7 -:10625000BB68072B00D901BE7B68002B15D07B687B -:10626000072B12D07B68062B0FD07B68052B0CD038 -:106270007B68032B09D07B68042B06D07B68022B3C -:1062800003D07B68012B00D001BEB968F868FFF726 -:1062900077FD0346802B01D000237B60BB689B0009 -:1062A000FB61FB685A6F0F21FB6901FA03F3DB43C3 -:1062B0001340BB617B6803F00F02FB6902FA03F332 -:1062C000BA6913437B61FB687A695A6700BF20375C -:1062D000BD4680BD80B483B000AF78600B46FB70D4 -:1062E000FB78002B08D17B68D3F8003223F480724E -:1062F0007B68C3F8002207E07B68D3F8003243F4E0 -:1063000080727B68C3F8002200BF0C37BD465DF881 -:10631000047B704780B485B000AF78600023FB60D9 -:106320007B68224A934202D14FF08063FB607B6816 -:106330001F4A934202D14FF08063FB607B681D4A85 -:10634000934202D14FF08063FB607B681A4A93420C -:1063500002D14FF08063FB607B68184A934202D100 -:106360004FF4A003FB607B68154A934202D14FF4BF -:106370000023FB607B68134A934202D14FF4002351 -:10638000FB607B68104A934202D14FF40023FB600C -:106390007B680E4A934202D14FF40023FB60FB68F6 -:1063A00018461437BD465DF8047B704700404554DD -:1063B000004049540030465400304A540020645490 -:1063C000004023520040245200102152002021524C -:1063D00080B485B000AF78600023FB6009E0FB6803 -:1063E00042F20F72934201D9084B08E0FB68013377 -:1063F000FB607B68D3F80C32002BF0DB00231846DF -:106400001437BD465DF8047B704700BF020082016F -:1064100080B48BB000AFF860B9607A603B60FB6815 -:10642000002B00D101BE00237B6200233B6297F862 -:106430003430002B01D00F2300E00123BB6197F81B -:106440003430002B01D0042300E001237B61BB68C2 -:10645000FB6116E07B69FA6902FB03F3BA6902FA91 -:1064600003F37A6A13437B627B69FA6902FB03F3E5 -:106470003A6802FA03F33A6A13433B62FB69013359 -:10648000FB61FA697B689A42E4D997F83430002BB3 -:1064900015D0FB683A6BC3F8102297F83830002B00 -:1064A00008D0FB68D3F818227B6ADB431A403B6AAA -:1064B000134300E03B6AFA68C2F818320EE0FB684A -:1064C0003A6BC3F80C21FB68D3F810217B6ADB43DD -:1064D0001A403B6A1A43FB68C3F8102100BF2C37EF -:1064E000BD465DF8047B704780B594B004AFF8609A -:1064F000B9607A603B6097F84C30002B01D00823DC -:1065000000E02023BB62BA683B68B2FBF3F3BA6ACF -:10651000B3FBF2F2B96A01FB02F29B1A7B627A6862 -:106520003B68B2FBF3F33B62BA6A7B6AD31AFB6146 -:106530000023FB630023BB6300237B633A6AFB6990 -:106540009A420CD83A6A7B6A1344013BBA6AB3FB9D -:10655000F2F2B96A01FB02F29B1AFB6318E0BB6A14 -:10656000013BFB63BB6A3A6802FB03F3BA68B2FB08 -:10657000F3F301333A6803FB02F2BB6A02FB03F355 -:10658000BB63FB693A6802FB03F37A68D31A7B6347 -:106590003B68BA6A02FB03F3BA68B2FBF3F33B63EE -:1065A0000123029397F84C3001933B6B0093BB6C33 -:1065B000FA6B796AF868FFF72BFF3A6AFB699A422F -:1065C00049D93B68BA6A02FB03F3BA6BB2FBF3F337 -:1065D0003B637A6B3B68B2FBF3F33B623B68BA6A9E -:1065E00002FB03F37A6BB2FBF3F3BB610023FB62A4 -:1065F00013E0BB6A5A1E0023029397F84C300193B4 -:106600003B6B0093BB6C0021F868FFF701FF3B6B0D -:1066100001333B63FB6A0133FB62FA6ABB699A424E -:10662000E7D33B6ABA6AB3FBF2F2B96A01FB02F242 -:106630009B1A7B617B69002B0DD07B695A1E01235D -:10664000029397F84C3001933B6B0093BB6C002195 -:10665000F868FFF7DDFE00BF4037BD4680BD000093 -:1066600080B58AB002AFF860B9607A603B60FB68C1 -:10667000002B00D101BEF868FFF74CFEF861BA6844 -:106680007B681344FA699A4205D37B68002B02D0D9 -:10669000FB69002B01D1344B62E0FB68D3F80C326C -:1066A00003F00F030533012202FA03F3BB61BB6859 -:1066B000BA69B3FBF2F2B96901FB02F29B1A002B33 -:1066C00009D17B68BA69B3FBF2F2B96901FB02F246 -:1066D0009B1A002B01D0244B42E0F868FFF778FEAC -:1066E0000346002B01D0214B3AE03B685B78012B3D -:1066F00003D93B689B78032B0CD83B685B781A4620 -:106700003B689B785B0013437B613B681B78072BDE -:1067100002D924E0144B23E03B681B781A46FB683F -:10672000C3F81422FB68D3F800321B0ADBB203F073 -:106730000103FB740021F868FFF7CCFD01230193EE -:106740007B690093BB697A68B968F868FFF7CCFE8B -:10675000FB7C1946F868FFF7BDFD002300E0024B03 -:1067600018462037BD4680BD01008201020082012B -:1067700080B483B000AF7860002318460C37BD4664 -:106780005DF8047B704780B483B000AF78600B463F -:10679000FB70FB78002B06D17B681B6823F001029D -:1067A0007B681A6005E07B681B6843F001027B6828 -:1067B0001A60002318460C37BD465DF8047B70470D -:1067C00080B489B000AFF860B9607A603B60FB6864 -:1067D00003F50053FB61FB6803F51053BB61FB68D5 -:1067E00003F580437B613B681F2B59D8BB681B793D -:1067F000002B0DD13B689B00FA69134419687B6834 -:10680000DA433B689B00F86903440A401A600BE0D6 -:106810003B689B00FA69134419683B689B00FA695E -:1068200013447A680A431A60BB685B79002B0DD168 -:106830003B689B00BA69134419687B68DA433B687C -:106840009B00B86903440A401A600BE03B689B0058 -:10685000BA69134419683B689B00BA6913447A68A3 -:106860000A431A60BB685B79002B0DD13B689B0023 -:106870007A69134419687B68DA433B689B0078693E -:1068800003440A401A600BE03B689B007A6913449A -:1068900019683B689B007A6913447A680A431A6056 -:1068A00000BF2437BD465DF8047B704780B588B0D3 -:1068B00000AFF860B9607A60FB681A4A934203D16E -:1068C000BB68B3F59F7F0DD9FB68174A934207D188 -:1068D000BB68B3F1805F03D3BB68144A934201D90C -:1068E000134B1AE0FB68104A934203D1BB6823F0B4 -:1068F000805300E0BB68FB61FB6903F01F030122CA -:1069000002FA03F3BB61FB695B097B617B69BA69CE -:106910007968F868FFF754FF002318462037BD4612 -:1069200080BD00BF0000025200000254A30000100E -:106930000100860180B487B000AFF860B9607A606A -:10694000FB68184A934203D1BB68B3F59F7F0DD90A -:10695000FB68154A934207D1BB68B3F1805F03D34C -:10696000BB68124A934201D9114B15E0FB680E4AED -:10697000934203D1BB6823F0805300E0BB687B6186 -:106980007B69B3F5806F06D2FB687A6902F5806295 -:10699000796843F82210002318461C37BD465DF87D -:1069A000047B70470000025200000254A300001054 -:1069B0000100860180B483B000AF78607B68D3F8B3 -:1069C0000832C3F3080318460C37BD465DF8047B54 -:1069D000704780B483B000AF78607B681B689B0B06 -:1069E00003F00303802222FA03F318460C37BD4656 -:1069F0005DF8047B704790B587B000AF7860396070 -:106A000000237B617868FFF7E4FF04467868FFF7AE -:106A1000D1FF03469C420AD07B683B613B68FB6028 -:106A20003B69FA68C3F8402200BF01237B617B69A0 -:106A300018461C37BD4690BD80B483B000AF786067 -:106A40007B681B689B0B03F00303802222FA03F38D -:106A500018460C37BD465DF8047B704790B587B08B -:106A600000AFF860B9607A60FB68002B02D0BB68A9 -:106A7000002B01D1764B38E2BB681B78002B08D085 -:106A8000BB681B78012B04D0BB681B78022B00D09D -:106A900001BEBB685B7B022B18D0BB685B7B032B02 -:106AA00014D0BB685B7B042B10D0BB685B7B052BD1 -:106AB0000CD0BB685B7B062B08D0BB685B7B072BCD -:106AC00004D0BB685B7B082B00D001BEBB689B7BFE -:106AD000002B08D0BB689B7B022B04D0BB689B7B40 -:106AE000032B00D001BEBB6893F82130002B05D0EA -:106AF000BB6893F82130012B00D001BEBB6893F82E -:106B00002830002B05D0BB6893F82830012B00D02B -:106B100001BEBB681B78002B03D0BB681B78012B20 -:106B20000ED1BB685B68072B03D9BB685B68102B71 -:106B300001D9012300E0002303F00103DBB22DE0C3 -:106B4000BB689B7F002B28D0BB685B68012B17D0EC -:106B5000BB685B68022B13D0BB685B68032B0FD04C -:106B6000BB685B68042B0BD0BB685B68052B07D048 -:106B7000BB685B68062B03D0BB685B68072B01D141 -:106B8000012300E0002303F00103DBB283F00103E3 -:106B9000DBB2002B01D0012300E00023002B00D04A -:106BA00001BEBB689B68042B03D9BB689B68092B9B -:106BB00000D901BEBB685B69FF2B00D901BEBB6871 -:106BC0009B69FF2B00D901BEBB689B7C002B0CD0BE -:106BD000BB681B78002B07D1BB689B68092B03D1CE -:106BE000BB689B7B002B00D001BEBB689B6B23F472 -:106BF000366323F00D03002B00D001BEBB681B6C75 -:106C000023F4EE6323F00303002B00D001BEBB6826 -:106C10001B78022B09D1BB689B7F83F00103DBB299 -:106C2000002B02D000237B6103E0BB685B68013B63 -:106C30007B61BB681B7F002B02D04FF4803200E0E9 -:106C40000022BB689B68082B04D94FF4804302E004 -:106C50000160AA0000231A437B6903F00F0313436A -:106C600043F00072FB681A60BB685C6BF868FFF762 -:106C7000E3FE03469C4200D301BEBB68DC6BF868B0 -:106C8000FFF7DAFE03469C4200D301BEBB685C6A94 -:106C9000F868FFF7D1FE03469C4200D301BEBB68F3 -:106CA0001B781B0603F04072FB681A64BB685B7FAD -:106CB000002B01D0402200E00022BB689B7C002B0F -:106CC00002D04FF4806300E000231343BA68127CC3 -:106CD000002A02D04FF4807200E000221343BA6809 -:106CE000527C002A02D04FF4007200E000221A43C6 -:106CF000BB68DB6A013B1B0403F470231A43BB68C7 -:106D00005B7B013B03F007031A43BB689B7B1B01C2 -:106D100003F030031A43FB689A64FB689B6CBA6803 -:106D200092F83020002A02D04FF0807200E000225A -:106D30001A43FB689A64BB681B7B002B02D04FF49C -:106D4000807200E00022BB68DB7B002B03D1BB68B4 -:106D50001B78022B01D1012300E00023002B02D07D -:106D60004FF4007300E000231A43BB689B68013BAB -:106D700003F01F031A43FB68C3F80023BB685B6979 -:106D8000DAB2BB689B691B0403F47F031A43FB68F8 -:106D9000C3F81023BB68DA6AFB68D3F8003303F04A -:106DA0001F0303339A4203D3BB68DB6A102B00D95D -:106DB00001BEBB68DB7F002B05D0BB681B78012BB5 -:106DC00001D1012300E00023002B02D04FF4807298 -:106DD00000E00022BB685B7B013B03F007031A4322 -:106DE000BB689B7B1B0103F030031A43FB685A64AA -:106DF000BB681B7B002B02D04FF4807200E00022A6 -:106E0000BB689B68013B03F01F031343BA68127809 -:106E1000012A02D14FF4803200E000221A43FB68BD -:106E2000C3F80022BB685B6BDAB2FB68C3F80423CB -:106E3000BB6893F82030002B02D04FF0007200E0C6 -:106E40000022BB6893F82130012B02D14FF08073F0 -:106E500000E000231343BA6892F82820012A02D1E7 -:106E60004FF4803200E000221A43BB685B6ADBB259 -:106E70001A43FB681A65BB68DB6BDAB2FB68C3F8C0 -:106E80000422BB689A6B40F66D331340FA68C2F86F -:106E9000C83FBB681A6C40F273731340FA68C2F8BB -:106EA000883F7B68002B1FD07B6800225A607B687C -:106EB00000221A607B6800229A607B680022DA60F8 -:106EC0007B6800221A627B680022DA617B680022FC -:106ED000DA627B6800225A63BB689A7F7B6883F81A -:106EE00030207B68034A9A63002318461C37BD464E -:106EF00090BD00BFEFCDAB0080B485B000AF78602F -:106F000039600023FB607B68002B03D07B68012B7A -:106F10003AD05FE03B68092B34D801A252F823F045 -:106F2000496F10184F6F1018556F10185B6F1018BD -:106F3000616F1018676F10186D6F1018736F10184D -:106F4000796F10187F6F10180023FB601BE005237A -:106F5000FB6018E00423FB6015E00123FB6012E0F6 -:106F60000123FB600FE00023FB600CE00023FB60CB -:106F700009E00023FB6006E00023FB6003E001233F -:106F8000FB6000E000BF25E03B68052B20D801A294 -:106F900052F823F0AD6F1018B36F1018B96F1018B6 -:106FA000BF6F1018C56F1018CB6F10180023FB604F -:106FB0000FE00023FB600CE00123FB6009E00123EC -:106FC000FB6006E00023FB6003E00023FB6000E0C1 -:106FD00000BF00BFFB6818461437BD465DF8047B50 -:106FE000704700BF80B485B000AF7860396000237F -:106FF000FB607B68002B03D07B68012B3AD05FE0FD -:107000003B68092B34D801A252F823F035701018D0 -:107010003B70101841701018477010184D70101800 -:1070200053701018597010185F7010186570101890 -:107030006B7010180023FB601BE00423FB6018E05A -:107040000023FB6015E00023FB6012E00023FB60DF -:107050000FE00023FB600CE00023FB6009E000234D -:10706000FB6006E00123FB6003E00023FB6000E01F -:1070700000BF25E03B68052B20D801A252F823F081 -:10708000997010189F701018A5701018AB70101818 -:10709000B1701018B77010180023FB600FE00023C8 -:1070A000FB600CE00023FB6009E00023FB6006E0CE -:1070B0000023FB6003E00023FB6000E000BF00BF93 -:1070C000FB6818461437BD465DF8047B704700BF67 -:1070D00080B485B000AF786039600023FB607B68C6 -:1070E000002B03D07B68012B3AD05FE03B68092B73 -:1070F00034D801A252F823F021711018277110180A -:107100002D71101833711018397110183F71101843 -:10711000457110184B7110185171101857711018D3 -:107120000023FB601BE00223FB6018E00023FB60F0 -:1071300015E00023FB6012E00023FB600FE000235A -:10714000FB600CE00023FB6009E00123FB6006E02C -:107150000023FB6003E00023FB6000E000BF25E0AC -:107160003B68052B20D801A252F823F08571101836 -:107170008B71101891711018977110189D7110185B -:10718000A37110180023FB600FE00323FB600CE0E9 -:107190000023FB6009E00023FB6006E00023FB60A6 -:1071A00003E00023FB6000E000BF00BFFB6818465F -:1071B0001437BD465DF8047B704700BF80B485B0CE -:1071C00000AF786039600023FB607B68002B03D040 -:1071D0007B68012B3AD05FE03B68092B34D801A2D1 -:1071E00052F823F00D72101813721018197210183B -:1071F0001F721018257210182B7210183172101887 -:10720000377210183D721018437210180023FB607B -:107210001BE00123FB6018E00023FB6015E0002366 -:10722000FB6012E00023FB600FE00023FB600CE03A -:107230000023FB6009E00023FB6006E00023FB6005 -:1072400003E00023FB6000E000BF25E03B68052B66 -:1072500020D801A252F823F071721018777210181A -:107260007D72101883721018897210188F7210189E -:107270000023FB600FE00023FB600CE00023FB60B9 -:1072800009E00023FB6006E00023FB6003E000232D -:10729000FB6000E000BF00BFFB6818461437BD4626 -:1072A0005DF8047B704700BF80B586B000AFF86022 -:1072B0007A603B600B46FB72484B7B610023FB749A -:1072C0000023BB74FB681B0AFB74FB681B0CBB74BC -:1072D000BB7C012B00D901BEFB7CBA7C002A01D10A -:1072E0000A2200E006229A4200D801BEFB7A002B57 -:1072F00033D1BB7CFA7C11461846FFF7FDFD0246F0 -:107300007B68934265D23B68FF2B62D8BB7C5B06EF -:1073100003F1A44303F580231946FB7CDA027B6862 -:10732000134403F5806351F8233023F47F413B6815 -:107330001B029AB2BB7C5B0603F1A44303F58023D6 -:107340001846FB7C0A43D9027B680B4403F5806333 -:1073500040F8232000237B613BE0FB7A012B38D1EE -:10736000BB7CFA7C11461846FFF73CFE02467B6860 -:1073700093422ED23B68B3F5803F2AD2BB7C5B069A -:1073800003F1A44303F580231946FB7CDA027B68F2 -:10739000134403F5A06351F8233023F47F0222F451 -:1073A0007F423B681B0223F07F4323F0FF03B97C3D -:1073B000490601F1A44101F580210846F97C1A43F0 -:1073C000C9027B680B4403F5A06340F82320002327 -:1073D0007B617B6918461837BD4680BD01004A00B5 -:1073E00080B586B000AFF8600B467A60FB72002370 -:1073F000FB740023BB74FB681B0AFB74FB681B0C4B -:10740000BB74BB7C012B00D901BEFB7CBA7C002A7B -:1074100001D10A2200E006229A4200D801BEFB7A7E -:10742000012B00D901BEFB7A002B1DD1BB7CFA7C5D -:1074300011461846FFF760FD02467B68934200D371 -:1074400001BEBB7C5B0603F1A44303F58023194610 -:10745000FB7CDA027B68134403F5806351F8233028 -:107460001B0ADBB27B611CE0BB7CFA7C1146184630 -:10747000FFF7B8FD02467B68934200D301BEBB7C98 -:107480005B0603F1A44303F580231946FB7CDA0273 -:107490007B68134403F5A06351F823301B0A9BB2A9 -:1074A0007B617B6918461837BD4680BD80B586B0C4 -:1074B00000AFF8607A603B600B46FB726E4B7B61FD -:1074C0000023FB740023BB74FB681B0AFB74FB687E -:1074D0001B0CBB74BB7C012B00D901BEFB7CBA7CAE -:1074E000002A01D10A2200E006229A4200D801BEF9 -:1074F000FB7A022B5FD1BB7CFA7C11461846FFF762 -:10750000E7FD02467B68934255D23B68B3F5803F66 -:1075100051D23B6A1F2B4ED8BB7C5B0603F1A443C0 -:1075200003F580231946FB7CDA027B68134403F5DC -:10753000C06351F8233023F47F0222F47F423B687A -:107540001B0223F07F4323F0FF03B97C490601F1BE -:10755000A44101F580210846F97C1A43C9027B68E1 -:107560000B4403F5C06340F82320BB7C5B0603F1AA -:10757000A44303F580231946FB7CDA027B6813449D -:1075800003F5C06351F8233023F0F8013B6ADB00B8 -:10759000DAB2BB7C5B0603F1A44303F580231846F3 -:1075A000FB7C0A43D9027B680B4403F5C06340F8B7 -:1075B000232000237B61FB7A032B58D1BB7CFA7C10 -:1075C00011461846FFF7FAFD02467B6893424ED2F9 -:1075D0003B68B3F1807F4AD23B6A1F2B47D8BB7C04 -:1075E0005B0603F1A44303F580231946FB7CDA0212 -:1075F0007B68134403F5E06351F82330D9B23B684C -:107600001A02BB7C5B0603F1A44303F580231846F2 -:10761000FB7C0A43D9027B680B4403F5E06340F826 -:107620002320BB7C5B0603F1A44303F580231946AA -:10763000FB7CDA027B68134403F5E06351F82330E6 -:1076400023F0F8013B6ADB00DAB2BB7C5B0603F196 -:10765000A44303F580231846FB7C0A43D9027B68C8 -:107660000B4403F5E06340F8232000237B617B6932 -:1076700018461837BD4680BD01004A0080B586B067 -:1076800000AFF8607A603B600B46FB720023FB752D -:107690000023BB75FB681B0AFB75FB681B0CBB75E5 -:1076A000BB7D012B00D901BEFB7DBA7D002A01D133 -:1076B0000A2200E006229A4200D801BEFB7A022B81 -:1076C00002D0FB7A032B05D13B68002B02D03B6A2A -:1076D000002B00D101BEFB7A022B31D1BB7DFA7D9C -:1076E00011461846FFF7F4FC02467B68934200D32C -:1076F00001BEBB7D5B0603F1A44303F5802319465D -:10770000FB7DDA027B68134403F5C06351F8233034 -:107710001B0A9AB23B681A60BB7D5B0603F1A44367 -:1077200003F580231946FB7DDA027B68134403F5D9 -:10773000C06351F82330DB0803F01F023B6A1A6074 -:10774000FB7A032B32D1BB7DFA7D11461846FFF739 -:1077500035FD02467B68934200D301BEBB7D5B06CC -:1077600003F1A44303F580231946FB7DDA027B680D -:10777000134403F5E06351F823301B0A23F07F42E2 -:107780003B681A60BB7D5B0603F1A44303F58023CD -:107790001946FB7DDA027B68134403F5E06351F878 -:1077A0002330DB0803F01F023B6A1A6000BF183762 -:1077B000BD4680BD90B587B000AFF8600B467A60DB -:1077C000FB72394B7B610023FB740023BB740023E5 -:1077D0007B74FB681B0AFB74FB681B0CBB74FB68A7 -:1077E0007B74BB7C012B00D901BEFB7CBA7C002AD8 -:1077F00001D10A2200E006229A4200D801BEFB7A9B -:10780000032B4BD8FB7A002B09D1BB7CFA7C1146A9 -:107810001846FFF771FB02467B68934226D3FB7A3A -:10782000012B09D1BB7CFA7C11461846FFF7DAFB25 -:1078300002467B68934219D3FB7A022B09D1BB7CA9 -:10784000FA7C11461846FFF743FC02467B689342D8 -:107850000CD3FB7A032B21D1BB7CFA7C1146184652 -:10786000FFF7ACFC02467B68934217D2FB7A1B02FF -:1078700003F440707B68DAB2BB7C5B0603F1A4437F -:1078800003F580231C46F97C7B7C0243C9020B4430 -:1078900003F5407344F8232000237B617B6918467D -:1078A0001C37BD4690BD00BF01004A0080B586B0C0 -:1078B00000AFF8600B467A60FB723D4B7B610023A2 -:1078C000FB740023BB74FB681B0AFB74FB681B0C76 -:1078D000BB74BB7C012B00D901BEFB7CBA7C002AA7 -:1078E00001D10A2200E006229A4200D801BEFB7AAA -:1078F000032B57D8FB7A002B09D1BB7CFA7C1146AD -:107900001846FFF7F9FA02467B68934226D3FB7AC2 -:10791000012B09D1BB7CFA7C11461846FFF762FBAC -:1079200002467B68934219D3FB7A022B09D1BB7CB8 -:10793000FA7C11461846FFF7CBFB02467B68934260 -:107940000CD3FB7A032B2DD1BB7CFA7C1146184655 -:10795000FFF734FC02467B68934223D2FB7A1B027A -:1079600003F440727B68DBB242EA0301BB7C5B0636 -:1079700003F1A44303F580231846FA7C41F0034346 -:1079800043F47F03520302441360BB7C5B0603F1A4 -:10799000A44303F580231A46FB7C5B0313441B6856 -:1079A00000237B617B6918461837BD4680BD00BF48 -:1079B00001004A0080B586B000AFF8600B467A60DF -:1079C000FB72364B7B610023FB740023BB74FB68A6 -:1079D0001B0AFB74FB681B0CBB74BB7C012B00D91E -:1079E00001BEFB7CBA7C002A01D10A2200E00622FB -:1079F0009A4200D801BEFB7A032B49D8FB7A002BB0 -:107A000009D1BB7CFA7C11461846FFF775FA02468D -:107A10007B68934226D3FB7A012B09D1BB7CFA7C8D -:107A200011461846FFF7DEFA02467B68934219D3E7 -:107A3000FB7A022B09D1BB7CFA7C11461846FFF772 -:107A400047FB02467B6893420CD3FB7A032B1FD182 -:107A5000BB7CFA7C11461846FFF7B0FB02467B68F8 -:107A6000934215D2FB7A1B0203F440727B68DBB2AF -:107A70001A43BB7C5B0603F1A44303F5802319463C -:107A8000FB7C42F080425B030B441A6000237B6165 -:107A90007B6918461837BD4680BD00BF01004A000B -:107AA00080B584B000AFF8600B467A60FB72FB7A59 -:107AB0007A681946F868FFF77DFE034618461037C6 -:107AC000BD4680BD80B483B000AF0346FB71FB7937 -:107AD000032B00D901BE0B4B03F58053D3F8903331 -:107AE00023F4E062FB791B0203F4E06305491343CE -:107AF00001F58052C2F8903300BF0C37BD465DF8E7 -:107B0000047B70470000405280B483B000AF03464E -:107B1000FB71FB79052B00D901BE0B4B03F580539C -:107B2000D3F8003323F00702FB7903F0070306497B -:107B3000134301F58052C2F8003300BF0C37BD4635 -:107B40005DF8047B704700BF0000405280B487B0EE -:107B500000AF786039601A4B7B617B681B0AFB744D -:107B60007B68DBB2FB60FB7C012B00D901BEFB68AC -:107B7000052B00D901BE3B68FF2B1AD8FB7C2933AB -:107B80005B061A46FB6803F580739B0113441B6870 -:107B900023F47F423B681B029BB2F97C29314906E2 -:107BA0001A43FB6803F580739B010B441A600023A2 -:107BB0007B617B6918461C37BD465DF8047B7047C6 -:107BC00001004A0080B584B000AFF860B9607A6007 -:107BD0003B60FB68012B00D901BEBB68052B00D9B7 -:107BE00001BE3B680D2B00D901BE7B681F2B00D95D -:107BF00001BE386800F094F8034683F00103DBB25D -:107C0000002B02D0386800F067F8FB6829335B0668 -:107C10001A46BB689B01134403F5804314331A686A -:107C200001217B6801FA03F3DB43F9682931490636 -:107C30001A40BB689B010B4403F5804314331A6060 -:107C4000FB6829335B061A46BB689B01134403F5A6 -:107C5000804310331A6801217B6801FA03F3F96845 -:107C6000293149061A43BB689B010B4403F5804345 -:107C700010331A6000BF1037BD4680BD80B485B098 -:107C800000AFF860B9607A60FB68012B00D901BED3 -:107C9000BB68052B00D901BE7B681F2B00D901BE34 -:107CA000FB6829335B061A46BB689B01134403F546 -:107CB000804310331A687B6822FA03F303F0010350 -:107CC000002B14BF01230023DBB218461437BD4636 -:107CD0005DF8047B7047000080B485B000AF786029 -:107CE0000D4BFB607B680D2B0FD80C4A7B6803F5AE -:107CF000926352F82330094943F000427B6803F550 -:107D0000926341F823200023FB60FB681846143778 -:107D1000BD465DF8047B704701004A0000004052F8 -:107D200080B485B000AF78600023FB737B680D2BB7 -:107D300007D8074A7B6803F5926352F82330DB0FBC -:107D4000FB73FB7B18461437BD465DF8047B704718 -:107D50000000405280B485B000AF78600F4BFB60EC -:107D60007B68002B12D07B680D2B0FD80C4A7B68E8 -:107D700003F5926352F82330094923F000427B68EF -:107D800003F5926341F823200023FB60FB6818464B -:107D90001437BD465DF8047B704700BF01004A0000 -:107DA0000000405280B485B000AF78600B46FB7095 -:107DB000114BFB607B680D2B16D8FB780F2B13D86B -:107DC0000E4A7B6803F5926352F8233023F00F02CA -:107DD000FB7803F00F0309491A437B6803F59263AC -:107DE00041F823200023FB60FB6818461437BD468A -:107DF0005DF8047B704700BF01004A00000040525C -:107E000080B483B000AF78607B680D2B00D901BED1 -:107E1000074A7B6803F5926352F82330DBB203F024 -:107E20000F03DBB218460C37BD465DF8047B704784 -:107E30000000405280B485B000AF78600B46FB7004 -:107E4000114BFB607B680D2B17D8FB780F2B14D8D8 -:107E50000E4A7B6803F5926352F8233023F4706274 -:107E6000FB781B0203F4706308491A437B6803F52F -:107E7000926341F823200023FB60FB681846143707 -:107E8000BD465DF8047B704701004A000000405287 -:107E900080B483B000AF78607B680D2B00D901BE41 -:107EA000074A7B6803F5926352F823301B0A03F0FC -:107EB0000F03DBB218460C37BD465DF8047B7047F4 -:107EC0000000405280B586B000AF78607868FFF758 -:107ED000DFFF034601337B617868FFF791FF0346BC -:107EE0003B61386900F066FCF8607B695A08FB6802 -:107EF0001A447B69B2FBF3F318461837BD4680BDC0 -:107F000080B584B000AF0346FB710023FB60FB79B2 -:107F1000042B22D801A252F823F000BF317F1018A1 -:107F2000377F10183F7F10185B7F1018477F10189D -:107F30000D4BFB6012E000F06BFAF8600EE000F011 -:107F40001BFBF8600AE000F037FB0346002B01D072 -:107F5000064B00E00023FB6000E000BFFB68184612 -:107F60001037BD4680BD00BF00127A0080F0FA02D3 -:107F700080B588B000AF786039607B68002B00D195 -:107F800001BE3B68002B00D101BE7B681B680D2B36 -:107F900000D901BE604BFB617B681B681846FFF788 -:107FA00091FFB8617B681B791846FFF7A9FF7861DC -:107FB000BB6907EE903AF8EE677AC7ED047A7B6901 -:107FC00007EE903AF8EE677AC7ED037A3B689B6854 -:107FD000C82B00D801BE3B685A683B689B68013BD0 -:107FE0009A4200D301BE3B681B681A463B68DB68B7 -:107FF000033307EE903AB8EE677A97ED036AD7ED50 -:10800000046AC6EE267A67EE277AFDEEE77A17EE67 -:10801000901A3B689B68CB1A9A4200DA01BE7B68D3 -:108020001B680D2B73D83D4B03F58053D3F80035F7 -:1080300023F007027B681B7903F0070337491343DA -:1080400001F58052C2F80035344A7B681B6803F59D -:10805000A0731B0113441B681B0C1B043A681268B5 -:10806000013A92B22D48796809681A4301F5A07364 -:108070001B0103441A60294A7B681B6803F5A0733F -:108080001B01134404331B681B0C1B043A68526821 -:10809000013A92B22148796809681A4301F5A07340 -:1080A0001B01034404331A601C4A7B681B6803F5F8 -:1080B000A0731B01134404331B6899B23B689B688F -:1080C000013B1A0415487B681B680A4303F5A0733B -:1080D0001B01034404331A60104A7B681B681B01B0 -:1080E000134403F5A05308331B681B0C1B043A68A8 -:1080F000D268013A92B20948796809681A430B01BB -:10810000034403F5A05308331A600023FB61FB69A5 -:1081100018462037BD4680BD01004A00000040528D -:1081200080B58CB000AF786039607B68002B00D1DF -:1081300001BE7B681B680D2B00D901BE4F4BFB6253 -:1081400007F1080300221A605A609A60DA607B68BF -:108150001B680D2B00F28C80C823BB627B681B68F8 -:108160001846FFF7AFFE78627B681B791846FFF769 -:10817000C7FE38627B6A07EE903AF8EE677AC7ED81 -:10818000077A3B6A07EE903AF8EE677AC7ED067A0F -:10819000BB6A07EE903AB8EE677A3B6807EE903A12 -:1081A000F8EE676AB0EE006AC6EE867A77EEA77AD6 -:1081B00077EE677AFCEEE77A17EE903AFB60BB6ADF -:1081C00007EE903AB8EE677A3B6807EE903AF8EE21 -:1081D000676AB0EE006AC6EE867A77EEA77A77EE27 -:1081E000277AFCEEE77A17EE903A3B61BB6A07EE1E -:1081F000903AF8EE676A97ED066AD7ED077A86EE51 -:10820000277AC6EE877AFCEEE77A17EE903A7B6122 -:108210007B69033307EE903AB8EE677A97ED066A0A -:10822000D7ED076AC6EE267A27EE277AD7ED067ACB -:10823000DFED136A67EEA67A37EE277A3B6807EE22 -:10824000903AF8EE676AB0EE006AC6EE867A77EE8C -:10825000A77A77EE277AFCEEE77A17EE903A0133A9 -:10826000BB6007F1080319467868FFF781FEF862E2 -:10827000FB6A18463037BD4680BD00BF01004A008A -:1082800017B7D13880B483B000AF78600B46FB706D -:108290007B680D2B00D901BE0D4A7B6803F5A073E6 -:1082A0001B0113441B6823F08042FB789B0703F0FB -:1082B000804307491A437B6803F5A0731B010B44F5 -:1082C0001A6000BF0C37BD465DF8047B704700BFE5 -:1082D0000000405280B483B000AF78607B680D2B03 -:1082E00000D901BE0A4A7B6803F5A0731B01134441 -:1082F0001B68074943F000427B6803F5A0731B012C -:108300000B441A6000BF0C37BD465DF8047B704714 -:108310000000405280B483B000AF78607B680D2BC2 -:1083200000D901BE0A4A7B6803F5A0731B01134400 -:108330001B68074923F000427B6803F5A0731B010B -:108340000B441A6000BF0C37BD465DF8047B7047D4 -:108350000000405280B584B000AF7860144BFB60E1 -:10836000144B03F58053D3F89033124A43F00803BB -:1083700002F58052C2F8903305E001200AF088F936 -:108380007B68013B7B6000F017F8034683F0010334 -:10839000DBB2002B02D07B68002BEED17B68002B78 -:1083A00001D00023FB60FB6818461037BD4680BD36 -:1083B00002004A000000405280B400AF084B03F5B1 -:1083C0008053D3F8943303F00403002B14BF01232C -:1083D0000023DBB21846BD465DF8047B704700BF42 -:1083E0000000405280B500AF084B03F58053D3F82E -:1083F0007033064A43F0004302F58052C2F87033EE -:10840000FA200AF045F900BF80BD00BF00004052CD -:1084100080B400AF034B1B681846BD465DF8047B73 -:10842000704700BF287D033480B485B000AF78600A -:108430000023FB607B685B681F2B00D901BE7B6853 -:108440009B680F2B00D901BE184B03F58053D3F85E -:108450006033002B01DA164BFB60FB68002B1ED14A -:108460007B685B6803F01F027B689B681B0203F458 -:1084700070630E49134301F58052C2F864330B4B0D -:1084800003F540531B6A7A68127B1146074A0B4377 -:1084900002F5405213627B681B68064A1360FB6852 -:1084A00018461437BD465DF8047B70470000405203 -:1084B00003004A002C7D033480B400AF054B03F564 -:1084C0008053D3F8683303F003031846BD465DF8C4 -:1084D000047B70470000405280B584B000AF7860E4 -:1084E000224BFB607B68002B0CBF01230023FB7237 -:1084F0001F4B03F58053D3F86033002B31DB1C4B4B -:1085000003F58053D3F86033194A43F0004302F572 -:108510008052C2F8603305E001200AF0B9F87B68A8 -:10852000013B7B60FFF7C8FF0346032B02D07B684B -:10853000002BF1D1FB7A002B02D17B68002B02D0FB -:108540000023FB600DE00A4B03F58053D3F8603342 -:10855000074A23F0004302F58052C2F86033054B0E -:10856000FB60FB6818461037BD4680BD03004A001B -:108570000000405202004A0080B500AFFFF79CFFA8 -:108580000346032B02D1034B1B6800E0002318466F -:1085900080BD00BF2C7D033480B483B000AF786011 -:1085A000044A7B68136000BF0C37BD465DF8047B4E -:1085B000704700BF2C7D033480B400AF0123184600 -:1085C000BD465DF8047B704780B400AF00BFBD4678 -:1085D0005DF8047B7047000080B485B000AF786020 -:1085E0000B467B80204BFB607B88002B13D07B8865 -:1085F000012B10D07B88022B0DD07B88032B0AD057 -:108600007B8840F21112934205D07B8840F213120E -:10861000934200D001BE7B68052B1DD87B88FF2BC1 -:108620000FD97B88114903F01F027B68403341F862 -:1086300023200E4A7B6803F59063072142F823103C -:1086400008E07B88094903F007027B6803F5906323 -:1086500041F823200023FB60FB6818461437BD4611 -:108660005DF8047B704700BF01004A0000004052E3 -:1086700080B485B000AF78607B68052B00D901BE5F -:108680000F4A7B6803F5906352F823309BB203F0E6 -:108690000703FB81FB89072B0BD1094A7B68403319 -:1086A00052F823309BB203F01F039BB243F4807354 -:1086B000FB81FB8918461437BD465DF8047B704783 -:1086C0000000405280B584B000AF78607B68052B15 -:1086D00000D901BE0023FB607868FFF7C9FF03469D -:1086E00040F2131293422AD0B3F58A7F56DA40F251 -:1086F0001112934247D0B3F5897F4FDA032B0FDC79 -:10870000002B4BDB032B49D801A252F823F000BF0A -:10871000598710182F8710183787101829871018B5 -:10872000B3F5887F22D039E01F4BFB6037E0FFF7BD -:108730006FFEF86033E0FFF71FFFF8602FE01B4B80 -:1087400003F58053D3F87033002B02DA4FF4004363 -:1087500000E00023FB6022E0FFF72EFF0346002B22 -:1087600001D0134B00E00023FB6018E00F4B03F532 -:108770008053D3F88033002B02DA4FF4004300E03B -:108780000023FB600BE0FFF717FE0346002B02D02F -:108790004FF4004300E00023FB6000E000BFFB68F3 -:1087A00018461037BD4680BD00127A0000004052C6 -:1087B00080F0FA0280B584B000AF78607B68052B4A -:1087C00000D901BE7868FFF77DFFF8607B68022B57 -:1087D00009D8786801F0CFF80346002B03D07868F9 -:1087E00001F037F9F860FB6818461037BD4680BDC8 -:1087F00080B483B000AF78607B68012B00D901BEE4 -:10880000064A7B68B0335B0113441B68DB0FDBB2A5 -:1088100018460C37BD465DF8047B70470000405297 -:1088200080B584B000AF7860164BFB607B68012B8D -:1088300000D901BE144A7B68B0335B0113441B6846 -:1088400023F04053104943F000527B68B0335B0182 -:108850000B441A60012009F01BFF0B4A7B68B03300 -:108860005B0113441B68084923F000427B68B03366 -:108870005B010B441A600023FB60FB68184610374D -:10888000BD4680BD01004A000000405280B584B062 -:1088900000AF786039603B681B6800221A613B6852 -:1088A0001B6800221A753B681B6800225A753B68DA -:1088B0001B6800229A753B681B680022DA753B68CA -:1088C0001B680F229A613B681B6800221A623B6892 -:1088D0001B6828225A623B681B6820229A623B6808 -:1088E0001B682722DA623B681B6823221A633B68F5 -:1088F0001B682C229A633B681B682422DA633B685E -:108900001B6827221A643B681B681C225A643B6858 -:108910001B681C22DA643B681B681C221A653B68D2 -:108920001B6827225A653B681B6823229A6500232F -:10893000FB607B68012B00D901BE7868FFF758FF08 -:108940000346002B02D09C4BFB602FE13B681B6869 -:108950009B78002B18D03B681B689B78102B13D892 -:108960003B681B685B78002B0ED03B681B685B780C -:10897000102B09D83B681B681B780F2B04D93B6868 -:108980001B681B78C82B02D98C4BFB600EE13B683F -:108990001B681B79022B00F0F4803B681B681B7876 -:1089A0001A463B681B685B781B0203F4F8531A43B2 -:1089B0003B681B689B781B0403F4F8131A433B685D -:1089C0001B68DB78DB0603F000637D491A437B6894 -:1089D000B0335B010B441A603B681B689B6823F053 -:1089E0007F423B681B681B7B1B0703F0E0431A4375 -:1089F0003B681B685B7BDB0771491A437B68B033BC -:108A00005B010B4404331A603B681B681B69C3F3AA -:108A100009023B681B681B7D1B0403F4E0231A4317 -:108A20003B681B685B7D1B0603F080731A433B6841 -:108A30001B689B7D1B0703F080531A433B681B6830 -:108A4000DB7DDB075E491A437B685B010B4403F562 -:108A5000B05308331A603B681B689B69C3F30A0272 -:108A60003B681B681B7F5B0303F400531A433B689E -:108A70001B681B6A1B0503F4401351491A437B68AA -:108A80005B010B4403F5B0530C331A603B681B6861 -:108A90005B6A03F03F023B681B689B6ADB0103F4DF -:108AA000FC531A433B681B68DB6A9B0303F47C237B -:108AB0001A433B681B681B6B5B0503F0FC631A439E -:108AC0003B681B685B6B1B0703F0E0433C491A43A0 -:108AD0007B685B010B4403F5B05310331A603B68AD -:108AE0001B689B6B03F03F023B681B68DB6BDB0181 -:108AF00003F4FC531A433B681B681B6C9B0303F491 -:108B00007C231A433B681B685B6C5B0503F0FC63CA -:108B10001A433B681B689B6C1B0703F0E043284922 -:108B20001A437B685B010B4403F5B05314331A609E -:108B30003B681B68DB6C03F03F023B681B681B6DE6 -:108B4000DB0103F4FC531A433B681B685B6D9B031A -:108B500003F47C231A433B681B689B6D5B0503F0A1 -:108B6000FC631A433B681B68DB6D1B0703F0E043A3 -:108B700013491A437B685B010B4403F5B053183368 -:108B80001A600F4A7B68B0335B0113441B6823F003 -:108B900040523B681B681B791B0703F04053084990 -:108BA0001A437B68B0335B010B441A60FB681846BC -:108BB0001037BD4680BD00BF03004A0001004A00D7 -:108BC0000000405280B59CB000AF786039604C4BDB -:108BD000FB667B68012B00D901BE3B681B68184609 -:108BE00060231A46002102F0EBFD464A7B68B03351 -:108BF0005B0113441B68BB663B681B68BA6ED2B24C -:108C00001A70BB6E1B0ADAB23B681B6802F01F02C7 -:108C1000D2B25A70BB6E1B0CDAB23B681B6802F012 -:108C20001F02D2B29A70BB6E03F000623B681B68F1 -:108C3000002A14BF01220022D2B2DA70BB6E1B0FD1 -:108C400003F003023B681B68D2B21A712D4A7B689D -:108C5000B0335B01134404331B68BB663B681B687D -:108C6000BA6E22F07F429A60BB6E03F0E0423B682E -:108C70001B68002A14BF01220022D2B21A73BA6EF6 -:108C80003B681B68D20FD2B25A731E4A7B685B01E5 -:108C9000134403F5B05308331B68BB66BB6EDAB2EE -:108CA0003B681B681A61BB6E1B0CDAB23B681B6821 -:108CB00002F00702D2B21A75BB6E03F080723B68F5 -:108CC0001B68002A14BF01220022D2B25A75BB6E63 -:108CD00003F080523B681B68002A14BF0122002267 -:108CE000D2B29A75BA6E3B681B68D20FD2B2DA75EF -:108CF0000023FB66FB6E18467037BD4680BD00BF83 -:108D000001004A000000405280B584B000AF786096 -:108D100039603D4BFB603B68002B0CBF01230023F7 -:108D2000FB727B68012B00D901BE384A7B68B033E7 -:108D30005B0113441B68354943F000427B68B03344 -:108D40005B010B441A6005E0012009F0A1FC3B68BF -:108D5000013B3B602D4A7B685B01134403F5B05334 -:108D60001C331B6803F00103002B02D13B68002B6E -:108D7000EAD1FB7A002B02D13B68002B1BD0234A9F -:108D80007B68B0335B0113441B6803F04053B3F1BD -:108D9000005F0DD11D4A7B68B0335B0113441B6833 -:108DA0001A4943F040527B68B0335B010B441A60B0 -:108DB0000023FB6022E0154A7B68B0335B0113445B -:108DC0001B6823F04053114943F000527B68B033D5 -:108DD0005B010B441A60012009F05AFC0B4A7B68C6 -:108DE000B0335B0113441B68084923F000427B68E1 -:108DF000B0335B010B441A60054BFB60FB681846FF -:108E00001037BD4680BD00BF01004A00000040523F -:108E100002004A002DE9B04FC6B000AF78630023CE -:108E2000C7F814317B6B012B00D901BE07F1A000FC -:108E300060231A46002102F0C3FC07F1A003BB63C4 -:108E40000023FB6307F138031946786BFFF7BAFE7E -:108E5000786BFFF7CDFC0346002B05D0BB6B1B796D -:108E6000022B01D0012300E0002387F8133197F88B -:108E7000133103F0010387F81331BB6B1B78C7F87C -:108E80000C31BB6B5B78C7F80831BB6B9B78C7F8BC -:108E90000431BB6B9B68C7F8003197F81331002B86 -:108EA00071D0D7F80831002B6DD0D7F80431002BE2 -:108EB00069D0786BFFF706FCC7F81401D7F81431B6 -:108EC0000022BB61FA61D7F80C3100223B617A6164 -:108ED000D7E904120B461B0A7B620B461B063B625A -:108EE000D7F800310022BB60FA603B6AD7E9020183 -:108EF00002469C180B467A6A42EB03031D46D7E9EB -:108F000006010B4604FB03F2034603FB05F313447F -:108F10000246A2FB04894B449946D7F80831002247 -:108F20003B607A60D7F804310022BB62FA62D7E96D -:108F300000010B46D7E90A45224602FB03F2C7E9C6 -:108F40000A452B4604460D46214601FB03F3134414 -:108F50002246B96AA2FB01AB5B449B4652465B4684 -:108F60004046494609F0BAF902460B4610461946F2 -:108F70004FF000024FF00003020E42EA01220B0EF6 -:108F80001346C7F81431D7F81431184607F58C7713 -:108F9000BD46BDE8B08F000080B483B000AF7860FC -:108FA0007B68002B00D001BE064A7B6860339B01C2 -:108FB00013441B68DB0FDBB218460C37BD465DF867 -:108FC000047B70470000405280B584B000AF7860E9 -:108FD000164BFB607B68002B00D001BE144A7B68F7 -:108FE00060339B0113441B6823F04053104943F046 -:108FF00000527B6860339B010B441A60012009F02A -:1090000047FB0B4A7B6860339B0113441B6808498C -:1090100023F000427B6860339B010B441A600023FD -:10902000FB60FB6818461037BD4680BD01004A0052 -:109030000000405280B584B000AF786039600023F2 -:10904000FB607B68012B00D901BE7868FFF7A4FFA5 -:109050000346002B02D0AD4BFB6052E13B685B68DE -:109060001B78062B0ED93B685B681B78F92B09D857 -:109070003B685B685B78072B04D83B685B689B7830 -:10908000072B02D9A24BFB603BE13B685B68DB78B6 -:10909000022B00F021813B685B681B781A463B6815 -:1090A0005B685B781B0203F4E0631A433B685B6810 -:1090B0009B781B0303F4E0431A433B685B681B790E -:1090C000DB0794491A437B6860339B010B441A60A9 -:1090D0003B685B689B68C3F314023B685B681B7B5F -:1090E0005B0503F460031A433B685B685B7B1B060C -:1090F00003F0706387491A437B6860339B010B441C -:1091000004331A603B685B689B7B1A463B685B686C -:10911000DB7B5B0703F000537E491A437B689B01AE -:109120000B4403F5C05308331A603B685B681B7C33 -:1091300003F01F023B685B685B7C5B0103F47873A0 -:109140001A433B685B689B7CDB0203F460531A4361 -:109150003B685B68DB7C1B0403F470231A433B68A9 -:109160005B681B7D1B0503F4E0031A433B685B68E7 -:109170005B7DDB0503F0F0631A433B685B689B7D16 -:10918000DB0603F0F04363491A437B689B010B4401 -:1091900003F5C0530C331A603B685B68DB7D03F05A -:1091A0001F023B685B681B7E5B0103F478731A4304 -:1091B0003B685B685B7E1B0303F4805355491A438D -:1091C0007B689B010B4403F5C05310331A603B6866 -:1091D0005B689B8B1A463B685B68DB8B1B044D49C5 -:1091E0001A437B689B010B4403F5C05314331A6088 -:1091F0003B685B681B6AC3F312023B685B6893F8C9 -:1092000024301B0503F480131A433B685B6893F812 -:1092100025301B0603F080733E491A437B689B018F -:109220000B4403F5C05318331A603B685B6893F82E -:1092300026301A463B685B6893F827305B0003F0E2 -:1092400002031A433B685B6893F828301B0403F45D -:1092500080331A433B685B6893F829301B0503F49D -:1092600080132C491A437B689B010B4403F5C053C0 -:109270001C331A603B685B6893F82A3003F00702DE -:109280003B685B6893F82B30DB0003F008031A435C -:109290003B685B6893F82C301B0103F010031A4302 -:1092A0003B685B68DB8D19041B4B0B401A433B6822 -:1092B0005B6893F830305B0703F000531A433B6858 -:1092C0005B6893F83130DB0712491A437B689B01D6 -:1092D0000B4403F5C1531A600E4A7B6860339B014F -:1092E00013441B6823F040523B685B68DB781B0724 -:1092F00003F0405307491A437B6860339B010B44DA -:109300001A60FB6818461037BD4680BD03004A004E -:1093100001004A00000040520000FF1F80B592B0DB -:1093200000AF78603960A24B7B647B68002B00D073 -:1093300001BE3B685B68184634231A46002102F0E0 -:109340003FFA9C4A7B6860339B0113441B683B6473 -:109350003B685B683A6CD2B21A703B6C1B0ADAB29B -:109360003B685B6802F00702D2B25A703B6C1B0B81 -:10937000DAB23B685B6802F00702D2B29A703B6CCB -:109380001B0F03F003023B685B68D2B2DA703A6CE1 -:109390003B685B68D20FD2B21A71864A7B68603331 -:1093A0009B01134404331B683B643B685B683A6C65 -:1093B000C2F314029A603B6C5B0D03F007023B683A -:1093C0005B68D2B21A733B6C1B0EDAB23B685B6807 -:1093D00002F00F02D2B25A73764A7B689B011344A3 -:1093E00003F5C05308331B683B643B6C03F0010278 -:1093F0003B685B68002A14BF01220022D2B29A7334 -:109400003B6C03F000523B685B68002A14BF0122EA -:109410000022D2B2DA73674A7B689B01134403F5DA -:10942000C0530C331B683B643B6CDAB23B685B682F -:1094300002F01F02D2B21A743B6C5B09DAB23B68CD -:109440005B6802F01F02D2B25A743B6CDB0ADAB2DC -:109450003B685B6802F00702D2B29A743B6C1B0C4B -:10946000DAB23B685B6802F00F02D2B2DA743B6C8E -:109470001B0DDAB23B685B6802F00702D2B21A75C4 -:109480003B6CDB0DDAB23B685B6802F00F02D2B2D4 -:109490005A753B6CDB0EDAB23B685B6802F00F0278 -:1094A000D2B29A75434A7B689B01134403F5C053BB -:1094B00010331B683B643B6CDAB23B685B6802F0BC -:1094C0001F02D2B2DA753B6C5B09DAB23B685B68AB -:1094D00002F01F02D2B21A763B6C03F480523B6852 -:1094E0005B68002A14BF01220022D2B25A76314AA8 -:1094F0007B689B01134403F5C05314331B683B6422 -:109500003B685B683A6C92B29A833B6C1A0C3B687E -:109510005B6892B2DA83274A7B689B01134403F5A8 -:10952000C05318331B683B643B685B683A6CC2F3FA -:1095300012021A623B6C03F480123B685B68002ADB -:1095400014BF01220022D2B283F824203B6C03F026 -:1095500080723B685B68002A14BF01220022D2B2ED -:1095600083F82520134A7B689B01134403F5C053FD -:109570001C331B683B643B6C03F001023B685B6877 -:10958000002A14BF01220022D2B283F826203B6CAD -:1095900003F002023B685B68002A14BF012200222C -:1095A000D2B283F827203B6C03F4803204E000BF82 -:1095B00001004A00000040523B685B68002A14BF6B -:1095C00001220022D2B283F828203B6C03F48012DF -:1095D0003B685B68002A14BF01220022D2B283F8E4 -:1095E0002920264A7B689B01134403F5C1531B685D -:1095F0003B643B6CDAB23B685B6802F00702D2B2B4 -:1096000083F82A203B6C03F008023B685B68002A61 -:1096100014BF01220022D2B283F82B203B6C03F04E -:1096200010023B685B68002A14BF01220022D2B2FC -:1096300083F82C203B6C1B0C9AB23B685B68C2F32E -:109640000C0292B2DA853B6C03F000523B685B6817 -:10965000002A14BF01220022D2B283F830203A6CD3 -:109660003B685B68D20FD2B283F8312000237B6461 -:109670007B6C18464837BD4680BD00BF0000405295 -:1096800080B584B000AF786039603D4BFB603B68CB -:10969000002B0CBF01230023FB727B68002B00D042 -:1096A00001BE384A7B6860339B0113441B6835490F -:1096B00043F000427B6860339B010B441A6005E075 -:1096C000012008F0E5FF3B68013B3B602D4A7B68C9 -:1096D0009B01134403F5C0531C331B6803F00103C3 -:1096E000002B02D13B68002BEAD1FB7A002B02D180 -:1096F0003B68002B1BD0234A7B6860339B011344DB -:109700001B6803F04053B3F1005F0DD11D4A7B6825 -:1097100060339B0113441B681A4943F040527B6835 -:1097200060339B010B441A600023FB6022E0154A62 -:109730007B6860339B0113441B6823F0405311493D -:1097400043F000527B6860339B010B441A60012098 -:1097500008F09EFF0B4A7B6860339B0113441B6833 -:10976000084923F000427B6860339B010B441A6078 -:10977000054BFB60FB6818461037BD4680BD00BF37 -:1097800001004A000000405202004A002DE9B04F9B -:10979000B8B000AF78650023C7F8DC307B6D002BD4 -:1097A00000D001BE07F1940034231A46002102F0D4 -:1097B00007F80023BB6507F19403FB6507F1580325 -:1097C0001946786DFFF7AAFD786DFFF7E5FB0346B4 -:1097D000002B05D0FB6DDB78022B01D0012300E0CC -:1097E000002387F8DB3097F8DB3003F0010387F8BC -:1097F000DB30FB6D1B780133C7F8D430FB6D5B7831 -:109800000133C7F8D030FB6D9B780133C7F8CC30FB -:10981000FB6D9B68C7F8C83097F8DB30002B00F071 -:10982000A3807B6D02331846FEF74CFFC7F8DC00BF -:10983000D7F8C830002B2CD1D7F8DC30D7F8D4209B -:1098400002FB03F30022BB63FA63D7F8D030002297 -:109850003B637A63D7F8CC3000229A469346D7E927 -:109860000C010B460AFB03F2034603FB0BF3134404 -:109870000246A2FB0A894B44994642464B46D7E929 -:109880000E0108F02BFD02460B461346C7F8DC30EC -:109890006AE0D7F8DC300022BB62FA62D7F8D43035 -:1098A00000223B627A62D7E908120B46DB0AFB61B1 -:1098B0000B465B05BB61D7F8C83000223B617A617B -:1098C000D7E906894346D7E9040102469C180B46AE -:1098D0004A4642EB03031D46D7E90A010B4604FB47 -:1098E00003F2034603FB05F313440246A2FB0412F2 -:1098F000FA640A46BA64FA6C1344FB64D7F8D030B1 -:109900000022BB60FA60D7F8CC3000223B607A605E -:10991000D7E902452B46D7E90089424602FB03F20C -:109920004B46214601FB03F3134422464146A2FB6A -:1099300001127A640A463A647A6C13447B64D7E96C -:109940001023D7E9120108F0C9FC02460B46104665 -:1099500019464FF000024FF00003420D42EAC122C7 -:109960004B0D1346C7F8DC30D7F8DC301846E0372B -:10997000BD46BDE8B08F80B582B000AF78607B682F -:10998000022B00D901BE7B68012B04D87868FEF752 -:109990002FFF034605E07B68023B1846FFF7FCFA01 -:1099A000034618460837BD4680BD80B582B000AF7B -:1099B00078607B68022B00D901BE7B68012B04D83C -:1099C0007868FEF72DFF034605E07B68023B1846EA -:1099D000FFF7FAFA034618460837BD4680BD80B542 -:1099E00082B000AF786039607B68022B00D901BE7D -:1099F0007B68012B05D839687868FEF747FF034676 -:109A000006E07B68023B39681846FFF713FB034604 -:109A100018460837BD4680BD80B582B000AF78607B -:109A200039607B68022B00D901BE7B68012B05D809 -:109A300039687868FFF768F9034606E07B68023BFF -:109A400039681846FFF71CFE034618460837BD461E -:109A500080BD80B582B000AF78607B68022B00D9F2 -:109A600001BE7B68012B04D87868FFF7D3F9034661 -:109A700005E07B68023B1846FFF788FE0346184660 -:109A80000837BD4680BD0000B0B495B000AF786027 -:109A90007B681B0ADBB2FB647B681B0CDBB2BB641C -:109AA000BB6C002B01D10A2200E00622FB6C9A421B -:109AB00002D84FF0FF3325E0154B07F120041D4677 -:109AC0000FCD0FC40FCD0FC495E8030084E8030049 -:109AD000104B07F108041D460FCD0FC495E8030095 -:109AE00084E80300BB6C002B06D1FB6C9B00503359 -:109AF0003B4453F8303C05E0FB6C9B0050333B4447 -:109B000053F8483C18465437BD46B0BC704700BFB8 -:109B1000542810187C2810182DE9B04F92B002AFCD -:109B200078610B46FA60FB740023BB6300237B6300 -:109B30007B691B0ADBB2BB637B691B0CDBB27B63FB -:109B40007B6B012B00D901BE7B6B002B01D10A225C -:109B500000E00622BB6B9A4200D801BE0023FB61E5 -:109B60000023FB634FF0FF333B637869FFF78CFF03 -:109B70003863FB7C002B07D1B96B786BFDF7BCF920 -:109B80000246FB68934221D3FB7C012B07D1B96BC2 -:109B9000786BFDF727FA0246FB68934216D3FB7CED -:109BA000022B07D1B96B786BFDF792FA0246FB687E -:109BB00093420BD3FB7C032B07D1B96B786BFDF77A -:109BC000FDFA0246FB68934200D301BE3B6BB3F142 -:109BD000FF3F5DD0386BFEF775F9F863FB7C012B16 -:109BE00002DC002B04DA52E0023B012B4FD811E0DB -:109BF000FB7CFA6819467869FDF7F2FB03460133EE -:109C0000FB61FB695A08FB6B1A44FB69B2FBF3F377 -:109C1000FB633DE00023BB610023FB62FB6B002282 -:109C20001C4615464FF000024FF000036B0143EA5B -:109C3000D4636201C7E9082307F11C02F97C07F12C -:109C4000180300931346FA687869FDF717FDFB695E -:109C500001335A01BB691344FB62FB6A5B080022B3 -:109C600098469146D7E9082318EB020A49EB030B03 -:109C7000FB6A00223B607A60D7E9002350465946D0 -:109C800008F02CFB02460B461346FB6300E000BFC6 -:109C9000FB6B18464037BD46BDE8B08F80B485B039 -:109CA00000AF03460A46FB711346BB710023FB60FD -:109CB000FB79002B18D0FB79012B15D0FB79022BF7 -:109CC00012D0FB79032B0FD0FB79042B0CD0FB793E -:109CD000052B09D0FB79062B06D0FB79072B03D087 -:109CE000FB79082B00D001BEBB79002B18D0BB79C3 -:109CF000012B15D0BB79022B12D0BB79032B0FD0CF -:109D0000BB79042B0CD0BB79052B09D0BB79062B72 -:109D100006D0BB79072B03D0BB79082B00D001BE3E -:109D2000FB791B0103F1A44303F582035B689AB23C -:109D3000BB7922FA03F303F00102FB791B0103F163 -:109D4000A44303F582035B681B0C99B2BB7921FA2B -:109D500003F35B0003F002031343FB60FB68022B79 -:109D600002D0FB68032B01D10223FB60FB68DBB24E -:109D700018461437BD465DF8047B704780B584B043 -:109D800000AF03460A46FB711346BB712D4BFB60C7 -:109D9000FB79002B18D0FB79012B15D0FB79022B16 -:109DA00012D0FB79032B0FD0FB79042B0CD0FB795D -:109DB000052B09D0FB79062B06D0FB79072B03D0A6 -:109DC000FB79082B00D001BEBB79002B18D0BB79E2 -:109DD000012B15D0BB79022B12D0BB79032B0FD0EE -:109DE000BB79042B0CD0BB79052B09D0BB79062B92 -:109DF00006D0BB79072B03D0BB79082B00D001BE5E -:109E0000BA79FB7911461846FFF748FF0346022B43 -:109E100013D1FB791B0103F1A44303F582031968F5 -:109E2000BB7901229A40FB791B0103F1A44303F59E -:109E300082030A431A600023FB60FB681846103750 -:109E4000BD4680BDFF00420080B584B000AF034630 -:109E50000A46FB711346BB712E4BFB60FB79002B4E -:109E600018D0FB79012B15D0FB79022B12D0FB798E -:109E7000032B0FD0FB79042B0CD0FB79052B09D0D9 -:109E8000FB79062B06D0FB79072B03D0FB79082B37 -:109E900000D001BEBB79002B18D0BB79012B15D0A7 -:109EA000BB79022B12D0BB79032B0FD0BB79042BCB -:109EB0000CD0BB79052B09D0BB79062B06D0BB791A -:109EC000072B03D0BB79082B00D001BEBA79FB79F0 -:109ED00011461846FFF7E2FE0346022B15D1FB7927 -:109EE0001B0103F1A44303F582031968BB79012226 -:109EF00002FA03F3DA43FB791B0103F1A44303F5F0 -:109F000082030A401A600023FB60FB681846103782 -:109F1000BD4680BDFF00420080B582B000AF7860D2 -:109F20007B68002B00D101BE786800F0DCFC0346A2 -:109F300018460837BD4680BD80B582B000AF786056 -:109F40007B68002B00D101BE786800F0B8FC0346A6 -:109F500018460837BD4680BD80B584B000AF786034 -:109F600039600B4BFB607B68002B00D101BE3B6866 -:109F70000A2B00D901BE3B68DBB21946786800F0B5 -:109F800075FC0023FB60FB6818461037BD4680BD9A -:109F90000300420080B582B000AF0F4B7B600F4BD7 -:109FA0003B6005E03B68013B3B60012008F070FB33 -:109FB0000B4B03F58053D3F8203C002B02DB3B68AE -:109FC000002BEFD13B68002B01D000237B607B6826 -:109FD00018460837BD4680BD02004200A086010039 -:109FE0000000405280B483B000AF0346FB71FB79A0 -:109FF000022B09D0FB79002B06D0FB79032B03D071 -:10A00000FB79012B00D001BE0A4B03F58053D3F836 -:10A01000143C23F00302FB7903F0030305491343C7 -:10A0200001F58052C2F8143C00BF0C37BD465DF804 -:10A03000047B70470000405280B400AF064B03F52C -:10A040008053D3F8143CDBB203F00303DBB21846B1 -:10A05000BD465DF8047B70470000405280B582B079 -:10A0600000AF0346FB710D4B03F58053D3F8283C3A -:10A0700023F00103FA79002A01D0012200E0002236 -:10A080000649134301F58052C2F8283C00F0B2F8AB -:10A09000034618460837BD4680BD00BF0000405249 -:10A0A00080B500AF012000F06DF800BF80BD00005A -:10A0B00080B500AF00F074F803461A46014B1A60F1 -:10A0C00000BF80BDEC75033480B584B000AF03469B -:10A0D000FB71264BFB60FB79062B2CD0062B3DDC5D -:10A0E000012B02D0052B13D038E005212048FFF7C3 -:10A0F00033FF02211F48FFF72FFF02211E48FFF701 -:10A100002BFF05211D48FFF727FF0023FB6028E0F8 -:10A1100002211748FFF720FF02211648FFF71CFF16 -:10A1200002211548FFF718FF00211448FFF714FF1C -:10A130000023FB6015E000210D48FFF70DFF002113 -:10A140000C48FFF709FF00210B48FFF705FF00212E -:10A150000A48FFF701FF0023FB6002E0084BFB60A9 -:10A1600000BFFB6818461037BD4680BDFF004200A7 -:10A170000010415200002252001022520050225280 -:10A180000100420080B582B000AF0346FB71FB794D -:10A190001846FFF799FF034618460837BD4680BDAD -:10A1A00080B582B000AF0123FB711148FFF7B4FE08 -:10A1B00003463B603B68052B09D03B68052B0FD855 -:10A1C0003B68002B09D03B68022B03D008E0012339 -:10A1D000FB7108E00523FB7105E00623FB7102E03B -:10A1E0000023FB7100BFFB7918460837BD4680BDD0 -:10A1F0000010415280B582B000AF104B7B60104B15 -:10A200003B6005E03B68013B3B60012008F040FA01 -:10A210000C4B03F58053D3F8203C03F00103002BD3 -:10A2200002D13B68002BEDD13B68002B01D000230D -:10A230007B607B6818460837BD4680BD020042003F -:10A24000A08601000000405280B586B000AF0346F2 -:10A250000A46FB711346BB71FB79002B15D0FB79C5 -:10A26000012B12D0FB79052B0FD0FB79062B0CD0DC -:10A27000FB79032B09D0FB79042B06D0FB79072B44 -:10A2800003D0FB79022B00D001BEBB79012B09D092 -:10A29000BB79022B06D0BB79042B03D0BB79082BEA -:10A2A00000D001BE00237B61FB793E4A52F8233087 -:10A2B0003B61BB79042B1FD0BB79012B3AD11BE04A -:10A2C000BA793B699B681340002B12D13B69DB686C -:10A2D0001B68BB603B69DB685B68FB603B691B68B4 -:10A2E000B97907F108021046984778612E4A3B6910 -:10A2F00013603B695B693B613B69002B06D07B695E -:10A300002A4A9342DCD1BB79012BD9D1BB79012BED -:10A3100042D17B69254A934206D1FB79224A1268D1 -:10A32000234941F8232037E0FB79214A002142F8F4 -:10A33000231031E0BB79022B08D002E03B695B6956 -:10A340003B613B695B69002BF8D122E0164B1B682F -:10A350003B613B69002B1CD03B691B693B6118E0EA -:10A36000BA793B699B681340002B0FD13B69DB68CE -:10A370001B68BB603B69DB685B68FB603B691B6813 -:10A38000B97907F108021046984778613B691B6963 -:10A390003B613B69002BE3D17B6918461837BD460A -:10A3A00080BD00BF307D0334707D0334FF00420068 -:10A3B000507D033480B500AFFFF73EFE0346002B0F -:10A3C0000CBF01230023DBB2184680BD80B500AF6F -:10A3D000FFF732FE0346012B0CBF01230023DBB243 -:10A3E000184680BD80B483B000AF03463960FB716E -:10A3F0000549FB793A6841F8232000BF0C37BD4678 -:10A400005DF8047B704700BF0040405280B582B0C9 -:10A4100000AF00237B6040F206610220FFF7E2FFFD -:10A4200040F206610320FFF7DDFF40F206610420E1 -:10A43000FFF7D8FF40F206610520FFF7D3FF40F297 -:10A440003F210620FFF7CEFF40F23F210720FFF714 -:10A45000C9FF40F207610420FFF7C4FF40F2076123 -:10A460000520FFF7BFFF40F20F610420FFF7BAFF9E -:10A4700040F20F610520FFF7B5FF40F20F210420E5 -:10A48000FFF7B0FF40F20F210520FFF7ABFF0220DE -:10A49000FFF7A8FDFFF77EFD0346002B02D0274BF8 -:10A4A0007B6045E040F243310020FFF79BFF40F224 -:10A4B00043310120FFF796FF40F206210220FFF70B -:10A4C00091FF40F206210320FFF78CFF3F21062079 -:10A4D000FFF788FF3F210720FFF784FF0A210820AC -:10A4E000FFF780FF40F242310020FFF77BFF40F290 -:10A4F00042310120FFF776FF40F202210220FFF7F0 -:10A5000071FF40F202210320FFF76CFF40F20B21A4 -:10A510000420FFF767FF40F20B210520FFF762FFE1 -:10A520001B210620FFF75EFF1B210720FFF75AFFC4 -:10A530007B6818460837BD4680BD00BFFF0042005B -:10A5400080B582B000AF00237B6040F2076102203B -:10A55000FFF748FF40F207610320FFF743FF40F297 -:10A5600007610420FFF73EFF40F207610520FFF777 -:10A5700039FF40F23D610620FFF734FF40F23D61B4 -:10A580000720FFF72FFF0F210820FFF72BFF40F2D6 -:10A5900006610220FFF726FF40F206610320FFF765 -:10A5A00021FF40F206610420FFF71CFF40F2066124 -:10A5B0000520FFF717FF40F22D610620FFF712FF7D -:10A5C00040F22D610720FFF70DFF0B210820FFF758 -:10A5D00009FF40F204610220FFF704FF40F204612A -:10A5E0000320FFF7FFFE40F204610420FFF7FAFEAC -:10A5F00040F204610520FFF7F5FE0020FFF7F2FCB2 -:10A60000FFF7C8FC0346002B02D00E4B7B6013E023 -:10A610000020FFF723FD78607B68002B02D0094BF8 -:10A620007B6009E040F22D210620FFF7DBFE40F2BF -:10A630002D210720FFF7D6FE7B6818460837BD4658 -:10A6400080BD00BFFF00420080B584B000AF07238B -:10A65000BB600023FB60224ABB6852F82330002B0A -:10A6600004D001210720FFF7EFFDF860FB68002B05 -:10A670002BD107F0E5FF7860194ABB6852F8233008 -:10A68000002B03D004210720FFF7DEFDFFF792FE29 -:10A690000346002B02D0FFF7B9FE08E0FFF796FE55 -:10A6A0000346002B03D0FFF74BFFFFF7AFFE7868A0 -:10A6B00007F0DAFF0A4ABB6852F82330002B0AD0B1 -:10A6C00008210720FFF7C0FD05E002210720FFF762 -:10A6D000BBFD044BFB60FB6818461037BD4680BDD0 -:10A6E000307D0334FF00420080B586B000AFF860D3 -:10A6F000B96011461A460B46FB711346BB71484BB5 -:10A700007B61BB79012B03D0BB79002B00D001BE4C -:10A71000FA68444B1340002B00D001BEBA68424B8C -:10A720001340002B04D1BB6803F08043002B00D101 -:10A7300001BEFA68BB68534003F4F853002B69D19B -:10A7400007F07EFF3861BB6803F48033002B2ED006 -:10A75000BB681B0A03F01F0303F5A81320331A027A -:10A76000BB68DBB213449B001B6823F47F7323F0A8 -:10A770000303FA68D2B2F979002902D04FF480714C -:10A7800000E000211143BA79520202F40072114331 -:10A79000BA68120A02F01F0202F5A8122032100253 -:10A7A000BA68D2B2024492000B4313602DE0BB683A -:10A7B0001B0A03F01F0303F5A41320331A02BB681E -:10A7C000DBB213449B001B6823F47F7323F0030365 -:10A7D000FA68D2B2F979002902D04FF4807100E012 -:10A7E00000211143BA79520202F400721143BA688F -:10A7F000120A02F01F0202F5A41220321002BA68F7 -:10A80000D2B2024492000B431360386907F02CFF68 -:10A8100000237B617B6918461837BD4680BD00BFA9 -:10A820000100CE0000E0FEFF00E0FEBF80B400AFFC -:10A830000D4B03F540431B6823F040430A4A43F0A5 -:10A84000804302F540421360074B03F540431B6809 -:10A85000054A43F0004302F54042136000BFBD4685 -:10A860005DF8047B704700BF0000405280B485B0A3 -:10A8700000AF78600B46FB707B68002B00D101BEF7 -:10A88000FB780A2B00D901BE7B681B6823F00F03FD -:10A89000FB60FA78FB68134343F480727B681A60AC -:10A8A00000E000BF7B689B6803F48073002BF8D046 -:10A8B00000BF00BF1437BD465DF8047B704780B40D -:10A8C00083B000AF78607B68002B00D101BE7B684D -:10A8D0009B68DBB203F00F03DBB218460C37BD46B2 -:10A8E0005DF8047B704780B483B000AF78607B680C -:10A8F000002B00D101BE7B681B68DBB203F00F03A5 -:10A90000DBB218460C37BD465DF8047B704780B556 -:10A9100086B000AF786000237B617B68002B00D19C -:10A9200001BE7B681B79FB747B689B68FB607B685E -:10A930001B68BB60FB7CFA681946B868FFF7ECF847 -:10A9400078617B6918461837BD4680BDB0B594B0B4 -:10A9500002AFF860B9607A60FB68002B00D101BEDD -:10A96000BB68002B00D101BEFB681B7987F82F3034 -:10A97000FB689B68BB62FB681B687B62F86800F041 -:10A98000DFF838623B6A002B00D101BE3A6ABB682F -:10A99000B2FBF3F3FB6100237B64386A07F0DCF859 -:10A9A00004460D46F86907F0D7F802460B462046E4 -:10A9B000294607F075FA02460B46C7E90E2397F8B9 -:10A9C0002F30012B50D9D7E90E23C7E90C234FF0C4 -:10A9D00000024FF00003C7E9042336E0F86907F0EE -:10A9E000BBF804460D467B6C0133184607F0B4F8FB -:10A9F0004FF000023C4B07F053FA02460B4620464C -:10AA0000294606F06DFF02460B46C7E90423386A63 -:10AA100007F0A2F8D7E9042307F042FA02460B46F2 -:10AA2000C7E90C23B86807F097F802460B46D7E948 -:10AA30000C0107F09BFB0346002B06D07B6C013317 -:10AA40007B64D7E90C23C7E90E23B86807F084F8C4 -:10AA500002460B46D7E90C0107F088FB0346002BA2 -:10AA600002D07B6C1E2BB9D9D7E90E0107F0C6FBCB -:10AA700003461A46B968012000F0A6F90346002BE8 -:10AA8000B8BF5B421A467B68934201D2174B26E05F -:10AA9000FB69013BFB6197F82F30BA6A1946786A67 -:10AAA000FCF788FF97F82F30012B07D897F82F1065 -:10AAB000FB69BA6A786AFCF7F7FB08E097F82F1091 -:10AAC0007B6C0093FB69BA6A786AFCF7EFFC97F835 -:10AAD0002F30BA6A1946786AFCF7E8FE0023184658 -:10AAE0004837BD46B0BD00BF000040400002020430 -:10AAF00080B586B000AF78600B46FB707B68002B9A -:10AB000000D101BE7B681B79FB757B689B683B614C -:10AB10007B681B68FB60FB78002B06D0FB7D3A69E5 -:10AB20001946F868FCF7C2FE05E0FB7D3A69194654 -:10AB3000F868FCF73FFF002318461837BD4680BD74 -:10AB400080B584B000AF78607B68002B00D101BE77 -:10AB50007B681B68FB60F868FEF796FF03461846A3 -:10AB6000FDF7B0F9B860BB6818461037BD4680BD28 -:10AB700080B582B000AF78607B681B681846FDF72F -:10AB8000A1F9034618460837BD4680BD80B485B09C -:10AB900000AFF860B9607A60034B18461437BD46C1 -:10ABA0005DF8047B704700BF0102020480B582B0EB -:10ABB00000AF78600B46FB70FB78002B06D07B68FB -:10ABC0001B681846FDF788F8034605E07B681B689C -:10ABD0001846FDF7BFF8034618460837BD4680BD46 -:10ABE00080B584B000AF7860786800F009F8F8604C -:10ABF000FB68002B00D001BE00BF1037BD4680BDF2 -:10AC000080B582B000AF7860786807F035FD00232A -:10AC100018460837BD4680BD80B483B000AF786069 -:10AC20007B68D3F80832C3F3080318460C37BD46D7 -:10AC30005DF8047B704780B483B000AF78607B68B8 -:10AC4000D3F80832DB0B03F0010318460C37BD467E -:10AC50005DF8047B704790B583B000AF786078688A -:10AC6000FFF7DAFF04467868FFF7E5FF0346234461 -:10AC7000002B0CBF01230023DBB218460C37BD4666 -:10AC800090BD80B584B000AFF860B9607A603B6079 -:10AC9000FB68002B00D101BEBB68002B00D101BEB8 -:10ACA0007B68002B00D101BEBB681B68002B00D164 -:10ACB00001BE38220021F86800F082FDBB681A68E6 -:10ACC000FB681A603B68002B02D1BB685B6800E040 -:10ACD0003B68FA689360FB687A685A60BB681B7AC5 -:10ACE000FF2B09D0BB681B7ADB0103F1A54303F5F9 -:10ACF0008033FA68936102E0FB6800229A61BB68C6 -:10AD00005A7AFB681A77BB689A7AFB6883F8202026 -:10AD1000BB68DB7AFF2B09D0BB68DB7ADB0103F170 -:10AD2000A54303F58033FA68536202E0FB68002212 -:10AD30005A62BB681A7BFB6883F82820FB680022F4 -:10AD40005A61002318461037BD4680BD80B582B0D9 -:10AD500000AF78607B68002B00D101BE7B681B6868 -:10AD6000002B00D101BE7B685B68002B00D101BEC7 -:10AD70007B681B6B002B0AD07B681B6B184600F0AE -:10AD80008DF8034683F00103DBB2002B11D17B6801 -:10AD90005B681B6803F00103002B0AD17B681B680A -:10ADA0001846FFF758FF034683F00103DBB2002B80 -:10ADB00001D0012300E0002303F00103DBB21846B9 -:10ADC0000837BD4680BD00002DE9B04F8EB000AF02 -:10ADD00003463963FA6287F8373097F83730022B29 -:10ADE00015D0022B51DC002B02D0012B04D04CE0FB -:10ADF0003A6BFB6AD31A4AE03A6BFB6AD31A264ACB -:10AE000002FB03F31A463B6B92FBF3F33FE03B6B11 -:10AE100000223B627A62FB6A0022BB61FA613B6AF4 -:10AE2000D7E906010246B3EB02087B6A0A4663EBE8 -:10AE3000020942464B46911839605B417B60D7E975 -:10AE4000002312EB080443EB09054FF000024FF01A -:10AE500000036B0143EAD463620114EB020A45EB81 -:10AE6000030B1AEB08033B614BEB09037B613B6B64 -:10AE70000022BB60FA60D7E90223D7E9040107F09A -:10AE8000DDF902460B46134601E001BE00231846D9 -:10AE90003837BD46BDE8B08F40420F0080B483B064 -:10AEA00000AF78607B68002B00D101BE7B689B6D92 -:10AEB000002B05D17B685B6D002B01D1012300E0E5 -:10AEC000002303F00103DBB218460C37BD465DF8E2 -:10AED000047B704780B485B000AF78607B68FB600E -:10AEE000FB68D3F8403318461437BD465DF8047B41 -:10AEF000704780B582B000AF786039603968786893 -:10AF0000FBF779FD034618460837BD4680BD0000B3 -:10AF100080B586B000AFF860B9607A60FB681B68E6 -:10AF20001846FFF7D7FF78617B683B6114E07B68C8 -:10AF3000002B0BD03B69002B06D00120FFF760FEF1 -:10AF40003B69013B3B6101E00A4B0EE0FB681B687B -:10AF50001846FFF7BFFF78617B69B3F1FF3FE6D08A -:10AF60007B69DAB2BB681A70002318461837BD46F1 -:10AF700080BD00BF0016020480B584B000AF7860C9 -:10AF800039600023FB6006E07B681B68396818465F -:10AF9000FFF7AFFFF860FB68002BF5D000231846E1 -:10AFA0001037BD4680BD80B400AF00231846BD46B3 -:10AFB0005DF8047B704780B400AF00BFBD465DF80C -:10AFC000047B704780B400AF00BFBD465DF8047BD2 -:10AFD0007047000080B582B000AF7860084B1B68F6 -:10AFE000002B00D101BE064B1B6800227968184671 -:10AFF000FFF78EFF034618460837BD4680BD00BFE9 -:10B00000747D033480B582B000AF0346FB71084BFA -:10B010001B68002B00D101BE054B1B68FA79114655 -:10B020001846FFF7A9FF034618460837BD4680BDFE -:10B03000747D033480B586B000AFF860B9607A6083 -:10B0400000237B61BB68002B1ED000233B61FFF710 -:10B05000B2FF11E03B69002B05D1BB681B78184695 -:10B06000FFF7D0FF38613B69002B0AD1BB68013381 -:10B07000BB607B6901337B617A697B689A42E9DB5B -:10B0800000E000BFFFF79EFF7B6918461837BD46FA -:10B0900080BD80B586B000AFF860B9607A600023EB -:10B0A0007B61BB68002B1BD0B868FFF793FF38614A -:10B0B0003B69002B0DD17B6901337B61BB681B7839 -:10B0C0000A2B0DD0BB681B780D2B09D0BB68013350 -:10B0D000BB603B69002B03D17A697B689A42E3DB52 -:10B0E0007B6918461837BD4680BD000080B582B028 -:10B0F00000AF78607B68002B00D101BE044A7B68FA -:10B100001360FFF750FF034618460837BD4680BD61 -:10B11000747D033480B500AF064B1B68002B00D153 -:10B1200001BE044B1B681846FFF710FE0346184685 -:10B1300080BD00BF747D033480B483B000AF7860FD -:10B140007B681B6823F000427B681A6000BF0C37E5 -:10B15000BD465DF8047B704780B400AF72B600BF97 -:10B1600001BE00BFFDE7000080B582B000AF78608F -:10B1700039603B68002B10D00A4800F06DFA7968FE -:10B18000094800F069FA3B681946084800F064FA7B -:10B19000044800F061FA00BFFDE700BF0837BD4674 -:10B1A00080BD00BFB4281018F0281018002910180E -:10B1B00080B586B004AF1D48FFF7BEFF1C4B186872 -:10B1C0001B4B59681B4B42F2107207F03DFA786036 -:10B1D00079681948FFF7C8FF154B1868174B5B686B -:10B1E0001B681978154B5B681B681B7A1A4607F0B9 -:10B1F00047FA0F4B1B680F49184607F04DFA0C4BE6 -:10B200001A680B4B5B6C0D4902910D4901910D4978 -:10B21000009104210C4807F043FA786079680B48E4 -:10B22000FFF7A2FF00BF0837BD4680BD00004A54AB -:10B23000100D1018A07D033414291018A4750334C0 -:10B24000DC7D0334987D0334787D0334282910187D -:10B2500090B59BB000AFF9F7E1F978667B6E002BF3 -:10B2600000D001BE62B600BF0123002204210120EC -:10B27000FCF7A8FC0123022201210120FCF7A2FC1B -:10B280007B6E002B00D001BEF8F790FE78667B6ED7 -:10B29000002B00D001BE00F0A3F8384800F0DCF924 -:10B2A000374800F03BFA374B07F148040FCB84E8EE -:10B2B0000F003B1D44220021184600F081FA0123B3 -:10B2C0003B7101237B7107F1080407F148030FCBA1 -:10B2D00084E80F003B1D19462B4807F0B9F92B48AD -:10B2E00000F01CFAFFF764FF796E2948FFF73CFF76 -:10B2F0000121284807F0A0F97866796E2648FFF703 -:10B3000033FF0121234807F0ABF97866796E2348B3 -:10B31000FFF72AFF224800F001FA224800F0FEF968 -:10B3200000BFFFF7F7FE0346002BFAD1F8F734FF12 -:10B3300078667B6E002B01D0FFF70EFFF8F73CFF1D -:10B3400078667B6E002B01D0FFF706FF164B1B685B -:10B350003B663B6EBB65BB6D83F3888800BF134BB8 -:10B360001B68FB65FB6D1C46640864002046214693 -:10B370002246234606F092FA00BFFDE74429101842 -:10B3800050291018882A10180000495498291018BC -:10B39000B0291018787D0334CC291018F42910181E -:10B3A000202A1018382A101800043460040434606D -:10B3B00080B483B000AF78607B681B6843F00042C4 -:10B3C0007B681A6000BF0C37BD465DF8047B704790 -:10B3D00080B400AF72B600BF01BE00BFFDE7000041 -:10B3E00080B582B000AF00237B60134A1349144834 -:10B3F000FBF734FB78607B68002B01D0FFF7E8FF98 -:10B400000F48FFF7D5FF00230B4A0E490E48FFF700 -:10B4100038FC78607B68002B01D0FFF7D9FF0A4821 -:10B42000FFF764FE78607B68002B01D0FFF7D0FF48 -:10B4300000BF0837BD4680BD2C7E0334780C101841 -:10B4400000009A52D00C1018687E0334062008B50C -:10B4500000F03AFA012007F0EBF800BF08B5002130 -:10B46000044600F0ADFB034B1B6803B19847204630 -:10B4700007F0DEF8D87F0334024A0349034800F09E -:10B48000C9B800BFF0750334BDE11018007603346D -:10B490000C4B4168994210B5044601D002F08EFE73 -:10B4A000A168094B994202D0204602F087FEE1686C -:10B4B000064B994204D02046BDE8104002F07EBE03 -:10B4C00010BD00BFA07E0334087F0334707F0334B7 -:10B4D0002DE9F843314A0025314C04233149DFF886 -:10B4E000D89004F15C00DFF8D4802F4F2F4E11600C -:10B4F0002946082225606566C4E90335C4E901557B -:10B50000C4E9055500F05CF904F15800E662C4E9AD -:10B510000749C4E9098700F09DFA254B294608220E -:10B5200004F1C40063672567C4F8CC50C4F88050A8 -:10B53000C4E91A55C4E91E5500F042F904F1680344 -:10B5400004F1C000C4F88430C4E92298C4E9247628 -:10B5500000F080FA174B294604F596700822C4F8CB -:10B56000DC30C4F8D850C4F83451C4F8E850C4E909 -:10B570003455C4E9385500F023F904F1D00304F53B -:10B580009470C4F8F090C4F8FC60C4F8EC30C4E9DE -:10B590003D87BDE8F84300F05DBA00BFD87F0334B3 -:10B5A000A07E033479B4101891B71018B9B71018E9 -:10B5B00009000100120002002DB7101851B7101831 -:10B5C00010B504460A4800F049FA636B23B9094BE9 -:10B5D000094A1B68626323B10548BDE8104000F0CA -:10B5E0003FBAFFF775FF0248BDE8104000F038BAD7 -:10B5F000E87F0334D87F033491B41018014800F079 -:10B600002DBA00BFE87F0334014800F029BA00BF1B -:10B61000E87F03342DE9F8434FF0000907468846D8 -:10B620001646D6E90154013D0FD4A389012B08D950 -:10B63000B4F90E3021463846013302D0C04749EAFA -:10B640000009013D68346B1CEFD13668002EE8D14B -:10B650004846BDE8F88300BF0FB4084900B583B081 -:10B66000086804AB816853F8042B019300F01CFFB9 -:10B6700003B05DF804EB04B0704700BFFC75033401 -:10B6800030B5054689B008460C4600F061FA224BF9 -:10B6900001220494069304AB8118079201930222BD -:10B6A0006B6BAC680590CDE902216BB3636EB4F9A6 -:10B6B0000C20D80701D491051FD5900405D442F47D -:10B6C000005223F40053A2816366990420D401AA96 -:10B6D0002146284602F098FE636EC8B90A25DA07AB -:10B6E00002D4A3899B0502D5284609B030BDA06DC0 -:10B6F00000F0B6F9284609B030BDA06D00F0AEF9F3 -:10B70000B4F90C20636ED8E72846FFF759FFCDE760 -:10B710004FF0FF35E3E700BF982A1018024B0146AF -:10B720001868FFF7ADBF00BFFC75033410B50C46B9 -:10B73000B1F90E1000F01CF9002803DB236D03445F -:10B74000236510BDA38923F48053A38110BD00BFDE -:10B750002DE9F0410C46B1F90C101F460546CB050A -:10B7600016460BD421F480513B4632462846A1812F -:10B77000B4F90E10BDE8F04100F028B9B4F90E108C -:10B780000223002200F0DEF8B4F90C10EAE700BF53 -:10B7900010B50C46B1F90E1000F0D4F8421CB4F903 -:10B7A0000C3004D043F480532065A38110BD23F4F2 -:10B7B0008053A38110BD00BFB1F90E1000F0B0B8E6 -:10B7C00070B5860747D0541E002A3ED0CAB2034641 -:10B7D00001E0013C39D303F8012B9D07F9D1032C7B -:10B7E0002CD9CDB20F2C05EB052505EB054535D938 -:10B7F000A4F1100C03F1100E1A462CF00F064FEABC -:10B800001C1CB644C2E90055C2E90255103272450B -:10B81000F8D10CF1010214F00C0F04F00F0C03EB43 -:10B82000021213D0ACF1040323F0030304331344D6 -:10B8300042F8045B9342FBD10CF003042CB1C9B273 -:10B840001C4403F8011BA342FBD170BD64461346A0 -:10B85000002CF4D1F9E703461446C0E71A46A44683 -:10B86000E0E700BF40EA01039B0730B501D1032A9E -:10B8700017D8844601F1FF3E07E01EF8011F541E51 -:10B8800003F8011B29B122469C466346002AF4D1E5 -:10B8900030BD002CFCD0944403F8011B6345FBD160 -:10B8A00030BD0C468446256821460434A5F1013399 -:10B8B00023EA050313F0803FDCD1043A4CF8045B23 -:10B8C000032AF0D82146D5E738B51F28134B1D6849 -:10B8D0001ED8D5F83821044662B152F820304BB159 -:10B8E000012B05D0591C0FD0002142F82010984799 -:10B8F000002038BD284600F067F822460146284659 -:10B90000BDE8384000F04AB8162301202B6038BD4E -:10B9100016234FF0FF302B6038BD00BFFC75033499 -:10B9200038B50022064D044608462A60FAF74AF860 -:10B93000431C00D038BD2B68002BFBD0236038BDE2 -:10B94000DC7F033438B50C4684461146074D1A4651 -:10B950000023204664462B60FAF744F8431C00D0CD -:10B9600038BD2B68002BFBD0236038BDDC7F03344F -:10B9700038B50C4684461146074D1A46002320462A -:10B9800064462B60FFF785FB431C00D038BD2B6855 -:10B99000002BFBD0236038BDDC7F033470B50C4630 -:10B9A0000346084D0026204611461C462E60FAF735 -:10B9B00047F8431C00D070BD2B68002BFBD02360E0 -:10B9C00070BD00BFDC7F0334FAF71EB838B50C46F3 -:10B9D00084461146074D1A460023204664462B60D4 -:10B9E000FFF728FB431C00D038BD2B68002BFBD091 -:10B9F000236038BDDC7F0334014B1868704700BFFB -:10BA0000FC7503340F4B70B50F4DAB42A3EB05062D -:10BA100007D0B6100024013455F8043B9847A642DD -:10BA2000F9D80A4DF5F7ECF8094B5E1BAB424FEA2B -:10BA3000A60606D00024013455F8043B9847A642D8 -:10BA4000F9D870BD180C1018180C1018180C101814 -:10BA5000200C1018704700BF704700BF704700BF30 -:10BA6000704700BF844641EA000313F0030349D145 -:10BA7000403A23D30B6803604B6843608B68836054 -:10BA8000CB68C3600B6903614B6943618B69836158 -:10BA9000CB69C3610B6A03624B6A43628B6A836240 -:10BAA000CB6AC3620B6B03634B6B43638B6B836328 -:10BAB000CB6BC36340304031403ADBD230320BD3E2 -:10BAC0000B6803604B6843608B688360CB68C3601E -:10BAD00010301031103AF3D20C3205D351F8043B38 -:10BAE00040F8043B043AF9D2043208D0D2071CBF14 -:10BAF00011F8013B00F8013B01D30B88038060463D -:10BB0000704700BF082A13D38B07B1D010F003038E -:10BB1000AED0C3F10403D21ADB071CBF11F8013BFE -:10BB200000F8013BA4D331F8023B20F8023B9FE729 -:10BB3000043AD9D3013A11F8013B00F8013BF9D29C -:10BB40000B7803704B7843708B7883706046704736 -:10BB500020F0030110F00300C0F1000051F8043B95 -:10BB600000F1040C4FEACC0C6FF000021CBF22FA6B -:10BB70000CF213434FF0010C4CEA0C2C4CEA0C4C29 -:10BB8000A3EB0C0222EA030212EACC1204BF51F822 -:10BB9000043B0430F4D0C2F1000102EA0102B2FA1F -:10BBA00082F2C2F11F0200EBD2007047024B13B1C8 -:10BBB000024800F063B870470000000005E9101863 -:10BBC0002C4B2DE9F04F824683B02B4F8B461868E3 -:10BBD000CDF804A0FFF742FF3E6846B34FF00009DE -:10BBE0004FF001087468651E21D4013406EB84040B -:10BBF000BBF1000F22D173682268013BAB420CBF3E -:10BC00007560C4F8009072B108FA05F3D6F888118F -:10BC1000D6F804A00B421AD1904773683A6853458E -:10BC200021D1B2421FD1013D043C6B1CE0D1114B2C -:10BC3000186803B0BDE8F04FFFF712BFD4F8003129 -:10BC40005B45D8D0013D043C6A1CF7D1EFE7D6F83C -:10BC50008C01D4F88010034209D101989047736891 -:10BC60003A685345DDD0002AE1D01646BAE70846C7 -:10BC70009047D2E740770334EC7F0334002301463A -:10BC80001A46184602F0E2BE2DE9F8430646DFF8F0 -:10BC9000AC800820894602F049FE0546304600F097 -:10BCA000F5FBD8F808305F6827F00307A7F1110407 -:10BCB000A4EB09042C44B4FBF5F4013C05FB04F4AB -:10BCC000A54208DC0021304602F00AFED8F8083010 -:10BCD0003B44984205D0304600F0DEFB0020BDE832 -:10BCE000F8836142304602F0FBFD01300FD03F1B6C -:10BCF000104AD8F80830304647F001075F601368F3 -:10BD00001B1B136000F0C8FB0120BDE8F883002175 -:10BD1000304602F0E5FDD8F80820831A0F2BDADD53 -:10BD200043F0010303495360034B1B68C01A0860CA -:10BD3000D1E700BFF07F03344477033450770334F6 -:10BD400000297CD02DE9F0410C46804600F09EFB96 -:10BD5000764F54F8043CA4F10805BE6823F00101B5 -:10BD600068184268864222F0030200F08380DE07F2 -:10BD700000EB020C426033D454F8084CDCF8043079 -:10BD800007F1080C2D1B214403F00103AC68644546 -:10BD900064D0D5F80CE0C4F80CE0CEF80840002BD5 -:10BDA00000F0818041F001036B600160B1F5007F1C -:10BDB00022D2CB080122490901338A4079680A431B -:10BDC00057F833107A6007EBC302083AC5E902124C -:10BDD00047F83350CD604046BDE8F04100F05CBB11 -:10BDE000DCF80430DB072BD541F00103B1F5007F0F -:10BDF00044F8043C0160DCD3B1F5206F4FEA5123D5 -:10BE000053D28B0903F1390003F13802C300F8184B -:10BE1000FB580838984203D161E09B68984204D0EF -:10BE20005A6822F003028A42F7D8D868C5E902307E -:10BE300085604046DD60BDE8F04100F02DBB7047F5 -:10BE4000114407F1080C836863453FD0C268DA608B -:10BE5000936041F001036B606950A7E7002B5FD14D -:10BE60000A44D0E90213CB60996042F001036B6091 -:10BE7000AA50B0E7DB070A4407D454F8083CED1A8F -:10BE80001A44D5E90213CB60996042F001036B605C -:10BE9000274BBD601B6893429DD8264B40461968CE -:10BEA000FFF7F2FE97E71144CDE7142B08D9542B86 -:10BEB0001DD80B0B03F16F0003F16E02C300A6E760 -:10BEC00003F15C0003F15B02C300A0E741F0010352 -:10BED000C7E90455C5E902CC6B6069507BE70121D5 -:10BEE000921001FA02F279680A437A609EE7B3F58C -:10BEF000AA7F06D8CB0B03F1780003F17702C300C9 -:10BF000085E740F25452934206D88B0C03F17D0032 -:10BF100003F17C02C3007AE74FF47E737E2276E75A -:10BF200041F001036B60016055E700BF50770334B7 -:10BF3000487703342080033401F10B03162B2DE9DD -:10BF4000F04F074683B023D8102900F2AF8000F0ED -:10BF50009DFA102518230220BC4E33445C68A3F1DF -:10BF60000802944200F080816368384623F003039E -:10BF7000D4E902122344CA6091605A68083442F03E -:10BF800001025A6000F088FA204603B0BDE8F08F45 -:10BF9000002B23F00705C0F28980A94200F28680B9 -:10BFA00000F074FAB5F5FC7FC0F0B4816B0A00F0C4 -:10BFB0008180042B00F27E81AB0903F1390003F18B -:10BFC000380EC300A14E3344A3F1080C5C68A445AD -:10BFD00007D10DE0002AE16880F232818C450C46E1 -:10BFE00006D0636823F003035A1B0F2AF2DD704664 -:10BFF000DFF870823469444500F0E780636823F01D -:10C00000030CACEB05030F2B00F39481002BC6E966 -:10C01000048880F28381BCF5007FD6F804E080F0CC -:10C0200029814FEADC0301224FEA5C1C013302FA4A -:10C030000CF256F833104EEA020E06EBC302083A31 -:10C04000C6F804E0C4E9021246F83340CC6083101D -:10C050004FF0010C0CFA03FCF44531D81CEA0E0F2A -:10C0600007D120F003004FEA4C0C04301CEA0E0FFD -:10C07000F9D006EBC00A8146D646DEF80C300BE05C -:10C080005A681C46DB6822F00302511B0F2900F39B -:10C090001D81002980F231819E45F1D109F101090C -:10C0A0000EF1080E19F0030FE7D167E10C233B6096 -:10C0B000002469E74FF4007340204FF03F0E81E702 -:10C0C000B468636823F00309A9EB05030F2B02DDB5 -:10C0D000A94580F0A4805E4B08201B6803F110087E -:10C0E00004EB0903009302F021FC5A4AA84483465A -:10C0F0001368013305D008F1FF384342804403EA56 -:10C1000008084146384602F0EBFBB0F1FF3F82469B -:10C11000504A79D0009B83425AD9B44274D14E4BD5 -:10C120000BF1FF3C186800EB080EC3F800E0116843 -:10C13000013100F07381009AAAEB020272441A6086 -:10C140001AF00702CDE9002300F04281C2F1080293 -:10C15000384692445A44D04408EA0C01521A02EA82 -:10C160000C0B594602F0BCFB421C019B00F06E8197 -:10C17000A0EB0A0000EB0B08196848F00102B4427A -:10C18000C6F808A05944CAF80420196032D0B9F1A1 -:10C190000F0F40F20C816068A9F10C024FF0050C02 -:10C1A00022F0070200F0010010430F2A606004EB48 -:10C1B0000200C0E901CC1DD904F108013846009302 -:10C1C000FFF7BEFD009B196814E0D6F804E03EE7D7 -:10C1D000214B0BF1FF3C196841448E461960A6D1F2 -:10C1E000009810EA0C0FA2D109EB0803B26843F0E3 -:10C1F00001035360194B1A688A4238BF1960184B03 -:10C200001A688A4238BF1960B468626822F0030273 -:10C21000531B0F2B40F3CE80954200F2CB80621966 -:10C2200045F0010543F00103083444F8045C384646 -:10C23000B260536000F030F9204603B0BDE8F08FE3 -:10C24000A26823443846D1608A6096E6507703346A -:10C250002080033444770334F07F03341C8003349C -:10C260001880033458770334DC68A3427FF47CAE33 -:10C270000230BDE6BCF5206F4FEA5C226CD3142A75 -:10C2800000F2B98002F15C035B32DB00F118F35875 -:10C290000839994203D191E09B68994204D05A68C9 -:10C2A00022F003026245F7D8D968C4E902318C60F4 -:10C2B000DC60CCE6142B56D9542B00F2A5802B0B56 -:10C2C00003F16F0003F16E0EC3007BE6D4F808C0E3 -:10C2D0003846671945F001056560CCF80C30C3F8A5 -:10C2E00008C041F00103C6E90477C7E902887B6012 -:10C2F000A150083400F0D0F846E622443846516890 -:10C3000041F00101516054F8082FD3609A6000F0A9 -:10C31000C3F839E6E80805F108031DE6A4443846E9 -:10C320000834DCF8043043F00103CCF8043000F0AA -:10C33000B3F829E6621943F0010145F001053846DA -:10C340006560C6E90422C2E90288516044F80C30F5 -:10C35000083400F0A1F817E64FEA9C1202F1390305 -:10C360003832DB0092E703F15C0003F15B0EC3009F -:10C3700028E65AF80839534540F0858010F0030F3D -:10C3800000F1FF30F5D1736823EA0C0373604FEAC4 -:10C390004C0C0CF1FF329A4204D391E64FEA4C0C5C -:10C3A00009F104091CEA030FF8D0484661E60123AD -:10C3B000CAF80430384600F06FF879E692104FF072 -:10C3C000010C0CFA02F24EEA020EC6F804E06CE729 -:10C3D0000AEB0802384602EA0C02ABEB020B0BEA4E -:10C3E0000C0B594602F07CFA431C019B7FF4C0AE53 -:10C3F000DDF800B0C0E6542A13D84FEA1C3202F12F -:10C400006F036E32DB0041E7B3F5AA7F13D8EB0B65 -:10C4100003F1780003F1770EC300D3E5C2F800A062 -:10C420008EE6B2F5AA7F19D84FEADC3202F1780322 -:10C430007732DB002AE740F25452934219D8AB0C12 -:10C4400003F17D0003F17C0EC300BBE5009A4FF0C1 -:10C45000000B083A9044A8EB0A088DE640F25453CA -:10C460009A420CD84FEA9C4202F17D037C32DB00F9 -:10C470000CE74FF47E737F204FF07E0EA2E54FF461 -:10C480007E737E2202E7736881E700BF0148FFF7F1 -:10C49000E5BA00BFE07F03340148FFF7E1BA00BF0F -:10C4A000E07F0334000000002DE9F04FE1B01C46AE -:10C4B00083460B910DF1C00A0D92129302F00CFA13 -:10C4C000036818461B93FFF743FB08221A900021CC -:10C4D0005046FFF775F9BBF1000F04D0DBF834309C -:10C4E000002B01F0C3800B9A536EB2F90C20DD07CC -:10C4F00002D4900540F1B786910406D40B9942F41A -:10C50000005223F400538A814B669A0401F14F8450 -:10C510000B9AB2F90C301D0740F1CD801269002A48 -:10C5200000F0C98003F01A020A2A00F0D380002329 -:10C530009FED9D7B9E46CDE9353337ABCDF870E05E -:10C54000CDF838E034930A93CDF858E0CDE91DEEEC -:10C55000CDE91FEE8DED187B0D9E954BD3F8E44091 -:10C5600002F0B4F9324603462CA95846CDF800A093 -:10C57000A0470028034600F0CC80C0F2C2802C9A6D -:10C58000252A01D01E44E8E70D9B0546F71A40F026 -:10C59000C48000234FF0FF32741C19468DF8A73079 -:10C5A000109373780C92079101341F46A7F1200372 -:10C5B0005A2B00F2FF80DFE813F04103FD00FD007D -:10C5C0003B03FD00FD00FD006A00FD00FD00900240 -:10C5D000A102FD009B022003FD001A035B005B002B -:10C5E0005B005B005B005B005B005B005B00FD00D1 -:10C5F000FD00FD00FD00FD00FD00FD007D01FD00D2 -:10C600001902B5027D017D017D01FD00FD00FD00E7 -:10C61000FD00AF02FD00FD004B03FD00FD00FD002D -:10C620003702FD00D702FD00FD007E07FD00FD0082 -:10C63000FD00FD00FD00FD00FD00FD007D01FD0091 -:10C64000190269027D017D017D0163036902130204 -:10C65000FD00A602FD007E03A3076C031302FD008C -:10C6600037027C00A607FD00FD00AA07FD007C0044 -:10C67000A7F13003002202EB820214F8017B03EBE6 -:10C680004202A7F13003092BF5D910928EE75846E4 -:10C6900002F022F9436818461F93FFF759FA2090D9 -:10C6A0000546584602F018F983681C93002D40F0A7 -:10C6B000CB85237878E70B9D5846294602F024F86D -:10C6C000002841F0E184B5F90C3003F01A020A2A7F -:10C6D0007FF42DAF0B99B1F90E20002AFFF627AF9A -:10C6E0004A6ED20702D49F0541F1C38123460D9AB9 -:10C6F0000B99584601F012FD0E900E9861B0BDE8FE -:10C70000F08F082200215046FFF75AF801231E44FB -:10C7100023E70D9B0546F71A13D00D9B0A9AC2E931 -:10C720000037369B3B443693359B0133072B3593BB -:10C7300011DC08320A920E9B3B440E93002D7FF4CD -:10C7400028AF369B002B41F08A8100220B9B35924B -:10C75000B3F90C3019E034AA0B99584601F01EFDCC -:10C7600080B937AB0A93E6E734AA0B99584601F033 -:10C7700015FD002800F09380119B1BB111995846BC -:10C78000FFF7DEFA0B9BB3F90C300B9A526ED00711 -:10C7900040F11C815A0601F114830E9861B0BDE886 -:10C7A000F08F00BFAFF30080000000000000000029 -:10C7B000587B03340D94002FC3D00022012347A9D6 -:10C7C0008DF81C718DF8A7200893139111920C928B -:10C7D0000F931792CDE91422079B13F0020302D0A6 -:10C7E0000899023108910799369D11F0840405D10A -:10C7F000109908980E1A002E00F3A8807AB10A98B2 -:10C80000012201350DF1A7014260359A36950132BA -:10C810000160072A359200F3C18308300A9073B192 -:10C82000359B2AAA0A99023501330A600222072B96 -:10C83000369535934A6000F3A58308310A91802C20 -:10C8400000F0A2820C9B0F9A9E1A002E00F3DF824A -:10C85000079BDE0500F13E820A9A139B13600F9B33 -:10C860001D445360359B36950133072B359300F3F8 -:10C87000308308320A92079B5C0705D5109B089A03 -:10C880009E1A002E00F398830E9B109A08998A42F4 -:10C89000ACBF9B185B180E93002D7FF465AF00238F -:10C8A0003593119B1BB111995846FFF749FA37ABE5 -:10C8B0000A9351E6129B4FF0FF320D94073323F099 -:10C8C0000701A54BB1EC027B55EC174B129125F0FB -:10C8D00000418DED227A2391DDE922898DED187BCF -:10C8E0004046494605F04CFC002840F02E854FF0AC -:10C8F000FF32994B4046494605F024FC002840F0A1 -:10C900002485002200232046294605F011FC00283A -:10C9100041F0B6819DF8A720079B00208F4923F0A6 -:10C920008003119007938E4B472FD8BF19460323DE -:10C930000C901391089317900F93CDE91400002ADF -:10C940003FF44AAF089B0133089345E7102E359A10 -:10C95000DFF810922ADD28464FF010084D460A995C -:10C96000B946219327460B9C02E0103E102E17DD9E -:10C9700001321030072AC1E90058CDE9352001F114 -:10C980000801F2DD214634AA584601F007FC37A918 -:10C9900000287FF4F1AE103E102EDDE93520E7DCF3 -:10C9A0003C46219B4F46A94605460A9101320A9909 -:10C9B0003544072AC1F800904E60CDE9352500F3D3 -:10C9C000448608319DF8A7200A9117E799053FF59D -:10C9D000E1AE0B9CA06DFFF743F8B4F90C30D9E63B -:10C9E000079B43F0200307932378DDE5129B432F39 -:10C9F0000D9403F1040500F0D785079BDE0600F1D6 -:10CA0000D385129B47AE1B688DF81C310123089318 -:10CA10000F930022CDE912568DF8A72011920C92A7 -:10CA20001792CDE91422D7E60023129E0D948DF8BB -:10CA3000A73056F8043B1393002B00F0A485532F26 -:10CA400000F02686079B13F01003149340F0208615 -:10CA50000C9B002BC0F2F1871A46DDE9130101F0AF -:10CA600073FF1190002801F0C282119B7327139A63 -:10CA70001296991A149B9DF8A7200F9121EAE17153 -:10CA80000C93089117931593119358E7079B0D94F6 -:10CA90009D064FD5129B073323F007031A465968AA -:10CAA00052F8083B12920A460029C0F234840C99CD -:10CAB0000029C0F2D582079921F08001079140F04A -:10CAC000CF8253EA020114BF0121002140F0C88245 -:10CAD00060AB0C910F9113937BE0129B53F8042BE6 -:10CAE000002A109280F2CD83109A12935242109233 -:10CAF000079B43F004030793237855E52B238DF818 -:10CB0000A730237850E523786C2B00F01185079A25 -:10CB100042F01002079247E5079B43F00803079392 -:10CB2000237841E5079B0D9443F010030793079B7F -:10CB30009D06AFD4129A52F8043B1292079AD4067B -:10CB400000F1E483079A500640F1DC8343F3C032DE -:10CB50001BB21146A8E700BFFFFFEF7FA02A101805 -:10CB60009C2A1018542C1018079B0D9443F01004A5 -:10CB700014F0200200F04983129B0121073323F0B7 -:10CB8000070318465A6850F8083B129000200C9D85 -:10CB90008DF8A700002DC0F26F8124F0800007906F -:10CBA00053EA020040F06781281E18BF0120002DC3 -:10CBB00040F06181002940F03A8214F001030C91A9 -:10CBC0000F9300F0D28230238DF87F310DF27F1366 -:10CBD00013930F9900230C989DF8A720814211937D -:10CBE0001793B8BF0146CDE914330891A7E6079B18 -:10CBF00043F0800307932378D6E4214611F8017BA4 -:10CC00002A2F01F02A82A7F13003092B01F2E780D5 -:10CC1000002202EB820211F8017B03EB4202A7F132 -:10CC20003003092BF5D942EAE2730C460C93BDE4BC -:10CC3000079B43F0010307932378B5E49DF8A720F1 -:10CC40002378002A7FF4B0AC20228DF8A720ABE433 -:10CC5000079B0D9443F010030793079B13F02002EA -:10CC600000F0E182129B073323F0070319465A684C -:10CC700051F8083B1291079921F48064002185E75F -:10CC80002378682B00F06A84079A42F040020792EA -:10CC90008AE4079B7827129A0D9443F0020447F622 -:10CCA00030039249ADF8A83052F8043B1E9102219E -:10CCB000129200226AE7079B0D949C0640F1348390 -:10CCC000129B0E9A1B681A60D2175A60129B04338B -:10CCD000129341E4652F40F30F8100220023DDE928 -:10CCE000180105F01BFA002800F0CA81359B0135B8 -:10CCF0007F4A01330A9936950A60072B4FF00102EB -:10CD000035934A6000F3B78408310A912B9B169A39 -:10CD1000934280F2B1821A9B0A9A1B991D44C2E980 -:10CD20000013359B36950133072B359300F31E8492 -:10CD300008320A92169B5E1E002E7FF79CAD102EC5 -:10CD4000359BDFF8B09140F3B98010274C46DDE900 -:10CD50000A2803E0103E102E40F3AE800133103558 -:10CD6000072BC2E90047CDE9353502F10802F1DDB4 -:10CD700034AA4146584601F011FA00287FF4FCAC71 -:10CD800037AADDE93535E5E7109B089A9E1A002E93 -:10CD90007FF758AD102E359BDFF8589124DD2946DA -:10CDA00010240A9A4D46DDF82C8002E0103E102E29 -:10CDB00017DD01331031072BC2E90054CDE93531BD -:10CDC00002F10802F2DD34AA4146584601F0E6F9C4 -:10CDD00000287FF4D1AC103E37AA102EDDE93531A2 -:10CDE000E7DCA9460D460A9201330A9A3544072B1F -:10CDF000C2F800905660CDE9353500F38C830832D7 -:10CE00000C9B0A920F9A9E1A002E7FF721AD102ECE -:10CE1000359BDFF8E09020DD1024DDE90A2802E0F0 -:10CE2000103E102E18DD013310353249072BC2E9B0 -:10CE30000014CDE9353502F10802F1DD34AA41468E -:10CE4000584601F0ABF937AA00287FF495AC103EA4 -:10CE5000102EDDE93535E6DC0A9201330A9A3544B5 -:10CE6000072BC2F800905660CDE9353500F3C0813C -:10CE700008320A92ECE4079C012900F0F2800229B2 -:10CE800000F0DA8060AD03F00701DB08284643EAD2 -:10CE900042733031D20805F8011D53EA0206F2D17F -:10CEA0003029139502D0E30700F1F98260AB139AA1 -:10CEB00007949B1A0F938CE6A1460A9201330A9AB3 -:10CEC0003544072BC2F800905660CDE935357FF721 -:10CED000D0AC34AA0B99584601F060F900287FF4D1 -:10CEE0004BAC37AB369D0A93C5E400BFAC2A101893 -:10CEF000DC2A1018442C10180A9B0135359E03F1CA -:10CF00000807169B01360A9A012B40F33181139BC7 -:10CF1000072E13604FF00103CDE93565536000F330 -:10CF200088831A9B01361B9A1D44072EC7E90023EC -:10CF3000CDE9356500F371830837169B00225C1E2E -:10CF40000023DDE9180105F0E9F8002840F02A8106 -:10CF50000136139B25447C600133072E3B60CDE9ED -:10CF6000356500F3138108371D9B01361D447B6036 -:10CF7000072E2EABCDE935653B60AADC07F108032F -:10CF80000A9378E434AA0B99584601F007F900286F -:10CF90007FF4F2AB37AB369D0A9350E434AA0B9979 -:10CFA0005846219301F0FAF800287FF4E5AB37AB3F -:10CFB000369D0A93219B32E4102E359BDFF8949521 -:10CFC00021DD10274C46DDE90A2802E0103E102E34 -:10CFD00017DD01331035072BC2E90047CDE93535A0 -:10CFE00002F10802F2DD34AA4146584601F0D6F8B3 -:10CFF00000287FF4C1AB103E37AA102EDDE935358D -:10D00000E7DCA1460A9201330A9A3544072BC2E9AC -:10D010000096CDE935357FF737AC34AA0B995846E1 -:10D0200001F0BCF800287FF4A7AB369D2CE460AB80 -:10D030000C900F901393CCE560A91E9D03F00F0098 -:10D040001B09285C43EA0273120901F8010D53EA37 -:10D050000200F3D160AB139107945B1A0F93B8E50C -:10D06000079C0A2B72F1000180F06983303307942A -:10D070008DF87F3101230F930DF27F131393A8E5F1 -:10D080002B9A002A40F30181149F169B9F42A8BF50 -:10D090001F46002F0DDD139B3D440A9A3695C2E9C9 -:10D0A0000037359B0133072B359300F34086083258 -:10D0B0000A92149E002FA8BFF61B002E00F3AC832B -:10D0C000DDE9132313449946079B590500F1378581 -:10D0D0002B9E169B9E42C0F27F82079BDA0700F1CF -:10D0E0007B82169B139F9E1B1F44A7EB0907B74229 -:10D0F000A8BF3746002F0DDD359B3D440A9A01330A -:10D100003695C2F80090072B5760359300F36C8674 -:10D1100008320A92002FA8BFF61B002E7FF7ABAB98 -:10D12000102E359BDFF830947FF7C8AE10274C46A1 -:10D13000DDE90A2803E0103E102E7FF7BDAE013373 -:10D140001035072BC2E90047CDE9353502F1080259 -:10D15000F1DD34AA4146584601F020F800287FF45A -:10D160000BAB37AADDE93535E5E760AB139330E566 -:10D17000079BDB073FF5CBAE139B072E13604FF0E9 -:10D180000103CDE9356553607FF7EEAE34AA0B9904 -:10D19000584601F003F800287FF4EEAA37AFDDE926 -:10D1A0003565E1E6169B012B7FF7DEAE112BDFF82C -:10D1B000A89340F326834FF0100803E0103C102C96 -:10D1C00040F31F8301361035072EC7E90098CDE9DB -:10D1D000356507F10807F1DD34AA0B99584600F0D0 -:10D1E000DDFF00287FF4C8AA37AFDDE93565E5E744 -:10D1F00034AA0B99584600F0D1FF00287FF4BCAA4E -:10D2000037AB369D0A93FFF723BB129951F8043BC5 -:10D21000129114F0100173D114F040006BD00A4643 -:10D220009BB20121B2E4129951F8043B1291079983 -:10D2300011F010017FF41FAD079A12F0400000F0CA -:10D2400010839BB20A4616E5002B3FF432AA1C9BC2 -:10D250001A782378002A3FF4A7A9079A42F480623B -:10D260000792FFF7A1B90B9DA86DFEF7F7FBB5F983 -:10D270000C206B6EFFF740B9079BDC077FF5FBAA1C -:10D2800049E512932378FFF78FB9359B0135AC49F7 -:10D2900001330A9836950160072B4FF00101359351 -:10D2A000416000F30D8508300A90169B134300F08F -:10D2B0006A851A9B0A991B981D44C1E90003359B96 -:10D2C00036950133072B359300F3148508310C464E -:10D2D000002AC0F2D885139A01332260072B169AD0 -:10D2E00015446260CDE935353FF7F3AD04F108032D -:10D2F0000A93FFF7C0BA14F4007201D0DBB2024601 -:10D30000012143E4079A910500F18B83DA17114656 -:10D310000029BFF6CCAB5B42079C4FF02D004FF0CD -:10D32000010162EB420232E4079BD80600F16382FE -:10D33000079B590600F17B83079B9A0540F15B82AE -:10D34000129B0E9A1B681A70C0E4DDE918010246B0 -:10D350000B4604F015FF002840F0E98527F0200671 -:10D36000412E40F095823023612F8DF8A83014BFF4 -:10D37000582378238DF8A9300C9B632B00F38E8300 -:10D3800047AB11901393DDE91812002A80F26E85E5 -:10D3900002F100434FF02D09269127932BAADDE9D6 -:10D3A000260101F01DFB00224FF07F5304F04EFCDC -:10D3B00002460B46CDE908230022002304F0AEFE0E -:10D3C00008B101232B930C9B5E4A591E5E4B1446F9 -:10D3D0000F97CDF85090612F08BF1C46139E0F4643 -:10D3E0000C94DDE9088908E0002200237D1E04F08A -:10D3F00095FE002840F0E4852F460022534B40461E -:10D40000494604F023FC8946804604F0CFFE0546D9 -:10D4100004F0B2FB02460B464046494604F05EFA71 -:10D42000635D3246804606F8013B7B1C8946DBD1B2 -:10D430001446474B00220F9FCDE90889DDF8509034 -:10D4400004F094FE002800F03C860C9B3294D97BBB -:10D45000334616F8012C914209D1302003F8010C13 -:10D46000329B5A1E329213F8012C9142F6D0392A7F -:10D4700000F006860132D2B203F8012C3346079A37 -:10D48000012142F002020792139A9B1A07F10F0240 -:10D490001693D2B22B9B1493013B2B935AE2302369 -:10D4A000139A0238079402F8013C60AB13901B1AE0 -:10D4B0000F93FFF78EBB234B0D941E93079B13F026 -:10D4C000200200F09980129B073323F007031946CE -:10D4D0005A6851F8083B129153EA02010AD00799A1 -:10D4E000C80707D541F002018DF8A97007913021D6 -:10D4F0008DF8A810079921F480640221FFF746BB3C -:10D500000D94FFF7AABB0D94079CFFF731BB0E4BA0 -:10D510000D941E93D2E734AA0B99584600F03EFEB4 -:10D5200000287FF429A937AB369D0A93FFF78AB903 -:10D53000079B013443F0200307932378FFF734B8A7 -:10D54000DC2A1018C02A1018AC2A1018000030402D -:10D550000000E03F542C1018442C1018079B013495 -:10D5600043F4007307932378FFF71EB834AA0B998E -:10D57000584600F013FE00287FF4FEA837AB369D16 -:10D580000A93FFF7D7BB0C991A460C9306291193FF -:10D59000179328BF06211296CDE91433B94B089191 -:10D5A0000F911393FFF7CBB90822002132A847AEA1 -:10D5B000FEF706F9129A32AB58461268314603F06C -:10D5C00035F803460F90013300F052850F9B23EA94 -:10D5D000E3730893FFF71DBA1A9B0A9A1B991D441F -:10D5E000C2E90013359B36950133072B359300F3C1 -:10D5F000AB8308320A9274E5129951F8043B1291F8 -:10D60000079911F010017FF467AF079A12F04000FC -:10D6100000F030819BB20A465EE734AA0B99584667 -:10D6200000F0BCFD00287FF4A7A837AFDDE9356521 -:10D6300083E434AA0B99584600F0B0FD00287FF42B -:10D640009BA837AFDDE935656BE434AA0B995846E2 -:10D65000219300F0A3FD00287FF48EA837AB9DF83E -:10D66000A720369D0A93219BFFF7C8B85846FDF7BF -:10D67000A7FFFEF738BF34AA0B99584600F08EFD7D -:10D6800000287FF479A837AB369D0A93FFF73EBB9D -:10D6900032AC139B0822002120462D93FEF790F810 -:10D6A0000C9B002BC0F21C8200259946A8460EE078 -:10D6B00047A9584602F0BAFF431C05F1040540444F -:10D6C00000F02A84484507DC00F08A8480462D9AC1 -:10D6D00023465259002AEBD1CDF83C800F9B002BFA -:10D6E00000F0FC82632B40F3C983591C5846FEF7B7 -:10D6F00023FC1390002800F00485139B119308224B -:10D7000000212046FEF75CF800940F9C2DAA139987 -:10D710005846234602F0B0FF844240F0EC840023D8 -:10D72000139A0F991296535421EAE1719DF8A7209C -:10D730000C9308911793CDE91433FFF700B904F463 -:10D74000806100209E460DF5C07C4F4E4FF00509CC -:10D7500080460B46CDF83CB0CDE9077407E0BEF13A -:10D760000A0F72F1000238D3AE462246BC461EEBC9 -:10D77000020008F101080CF1FF3740F10000A6FBA0 -:10D78000001424F0030101EB94014FF0CC34401A53 -:10D79000BEEB000162F1000504FB01F406FB054449 -:10D7A000A1FB06510C4405F001016D08A1FB091B0A -:10D7B00045EAC4750918640830310CF8011C002BC7 -:10D7C000CDD01C9909784145C9D1FF29C7D0BEF1F8 -:10D7D0000A0F72F1000280F0C5823A4660AB1397DF -:10D7E0009B1ADDF83CB0CDF858800F93DDE9077443 -:10D7F0000794FFF7EEB9129B0E9A1B681A60FFF7A9 -:10D8000065BA01362544C7F80090072E7C60CDE943 -:10D8100035657FF7A8ABB9E4102E359BDFF86C9027 -:10D8200040F3F18010274C46DDE90A2803E0103E62 -:10D83000102E40F3E68001331035072BC2E9004774 -:10D84000CDE9353502F10802F1DD34AA41465846EA -:10D8500000F0A4FC00287EF48FAF37AADDE935354F -:10D86000E5E7079A12F400723FF405AADBB202461C -:10D87000FFF701BA079A12F400723FF42DAEDBB243 -:10D88000024629E6D42A1018CDCCCCCC442C101852 -:10D890000C9B5A1C00F0F280472E03D1002B08BFCE -:10D8A00001230C93079ADDE9180142F480740029E2 -:10D8B000C0F24D834FF00009CDE92401652F00F03F -:10D8C000858200F3E281452F00F08082462F40F0F0 -:10D8D000DF81DDF8308003235846CDE9003832ABD4 -:10D8E00004932DAB03932BAB0293DDE9242301F0CA -:10D8F0008BF9462E00EB0805139006D1139B1B787D -:10D90000302B00F081822B9B1D4400220023DDE997 -:10D91000240104F003FC002840F05D82329BAB42FE -:10D9200006D230215A1C32921970329B9D42F9D88E -:10D930002B9A1492139A472EA3EB0203169300F02E -:10D94000BE80462E00F06F82149B013B0021FAB28C -:10D950002B931191002B8DF8B820C0F2D8822B2286 -:10D96000092B8DF8B92040F3BF820DF1CF04DFF809 -:10D9700028C52546ACFB03211E462846013DC908A3 -:10D98000632E01EB8102A3EB42020B4602F130024F -:10D9900000F8012CEEDC303305F8013C831EA34275 -:10D9A00080F058830DF1B90213F8011BA34202F86D -:10D9B000011FF9D160AB181AA0F1AD031D93169B9E -:10D9C0001D9A012B1A440F9240F39C820F9B1A9AC6 -:10D9D00013440F93079B0F9A23F4806322EAE272A9 -:10D9E00043F480730892079300231793CDE914330F -:10D9F000B9F1000F6DD19DF8A720CDF83090FEF75A -:10DA00009EBFA1460A9201330A9A3544072BC2F8F9 -:10DA100000905660CDE9353533DC08320A92FFF7C5 -:10DA20004FBB43F3C0125BB21146FFF73DB8129BE8 -:10DA30000E9A1B681A80FFF749B913987327FEF7EF -:10DA400087F8149B20EAE0719DF8A72012960F90AA -:10DA50000C930891179315931193FEF770BF34AA96 -:10DA60000B99584600F09AFB00283EF46EAEFEF784 -:10DA700089BE886DFDF7F4FFFEF738BE06230C93D0 -:10DA800010E734AA0B99584600F088FB00287EF472 -:10DA900073AE37AB369D0A93FFF712BB591C58463D -:10DAA000FEF74AFA1390002800F0E282139B1193CC -:10DAB00069E4329B139A9B1A16932B9B14930C9A2E -:10DAC000149B9A4201DB033319DA149B023F013B9A -:10DAD0003CE72D2200238DF8A7200C93FEF732BFE0 -:10DAE00000232DAA58460094194602F0C5FD0346AE -:10DAF0000F90013300F01082139B2D93EEE5169BDF -:10DB0000149A934200F3A881079B13F0010F149B12 -:10DB100000F079821A9A13440F93079B5D0503D591 -:10DB2000149B002B00F31C820F9B672723EAE373EF -:10DB300008930023079411931793159358E7159BA7 -:10DB4000002B03DC179B002B40F3D182139B29464B -:10DB5000169ADDF870809C18209D0A9A23464C4640 -:10DB6000DDF85C90B9F1000F32DC159808F1FF3850 -:10DB7000013815901F982944C2E90005359836915F -:10DB80000130072835904DDC08321F1B98F8000043 -:10DB90000A938742A8BF0746002F0BDD359839440A -:10DBA0000130369107283590C2E9004759DC083228 -:10DBB00098F80000002FACBFC61B0646002E0ADCFA -:10DBC000044415980028CDDCB9F1000F40F33382EE -:10DBD00009F1FF39CEE7102E3598DFF8B8C233DDF2 -:10DBE0000C9510270F9434460B9D6646149302E063 -:10DBF000103C102C23DD01301031A64B0728C2E960 -:10DC00000037CDE9350102F10802F1DD34AA2946D9 -:10DC1000584600F0C3FA00287EF4AEAD37AADDE91D -:10DC20003501E5E734AA0B9958460A9300F0B6FA95 -:10DC300000287EF4A1AD369937AA0A9BA5E7B44621 -:10DC40000C9D2646149B0F9C01303144C2F800C045 -:10DC500007285660CDE935015ADC083298F80000F3 -:10DC6000AEE734AA0B9958460C9300F097FA0028B7 -:10DC70007EF482AD98F8000037AA36990C9B99E79C -:10DC80002D228DF8A720FEF747BE662F3FF421AE68 -:10DC90000C9B5846019332AB04932DAB03932BABF3 -:10DCA000029302230093DDE9242300F0ADFF079BDC -:10DCB0001390DB077FF5FDAE139B0C9A9D1824E6AD -:10DCC00034AA0B99584600F069FA00287EF454AD46 -:10DCD00037AB369D2B9A0A93FFF7E7BA0F9B9DF857 -:10DCE000A720129608930C9317931193CDE9143340 -:10DCF000FEF725BE34AA0B99584600F04FFA0028CB -:10DD00007EF43AAD2B9A37ACDDE93535FFF7E0BA52 -:10DD100034AA0B9958460C9300F040FA00287EF480 -:10DD20002BAD98F8000037AA36990C9B48E734AA27 -:10DD30000B99584600F032FA00287EF41DAD37AB3F -:10DD4000369D0A93FFF7B5B934AA0B99584600F0EF -:10DD500025FA00287EF410AD37AB2B9E369D0A9332 -:10DD6000FFF7BFB91193209B1F99FF1A1A46384637 -:10DD7000FDF778FD1C99119B4A780AB101311C917D -:10DD80004FF00008F0E4079BD8077EF574AD1A9BAE -:10DD90000A9A1B991D44C2E90013359B369501333D -:10DDA000072B3593A6DC08321446FFF794BADF0739 -:10DDB00007D40B9B9B899E0503D40B9B986DFDF7A5 -:10DDC0004FFE4FF0FF330E93FEF7E7BC0C9B03F1C1 -:10DDD0000108022380E52B9A2B461492AAE5002322 -:10DDE0000C460C93FEF7E2BB34AA0B99584600F0A0 -:10DDF000D5F900287EF4C0AC169B2B9E369D9E1B49 -:10DE000037AB0A93FFF786B900220023DDE924012E -:10DE100004F084F9002800F062812B9B1D441493C8 -:10DE2000139BEB1A1693079B149903F001030C9AAA -:10DE3000002943EA020340F33481002B40F0BA800A -:10DE4000149B66270F93079B5B0500F18A800F9B4D -:10DE500023EAE37308936CE6169B1A9A9A18149BAC -:10DE6000002B0F9240F3D1806727ECE79DED187BE4 -:10DE70004FF000098DED267BFFF790BA0023119338 -:10DE800047AB13933BE456421032DFF808901EDA9A -:10DE9000102706E0442C1018CDCCCCCC103E102E10 -:10DEA00015DD01331035072BC4E90097CDE9353571 -:10DEB00004F10804F2DD34AA0B99584600F06EF91B -:10DEC00000287EF459AC37ACDDE93535E6E701339F -:10DED0003544C4F80090072B6660CDE9353500F372 -:10DEE0009D800834FFF7F7B900297DD130228DF8E5 -:10DEF000BA200DF1BB02303302F8013B2EABD31A2E -:10DF00001D935CE5079BDE077FF564AD5EE5149B22 -:10DF10002D22C3F1010323E50B9B0022B3F90C3042 -:10DF2000119243F040030B9A9381FEF725BC199B95 -:10DF3000002BC0F28B809DF8A720079B002074491E -:10DF400023F0800311900793724BFEF7EDBCDDE9DF -:10DF500018124FF02D0902F1004324912593ADE4EE -:10DF600067271C990B78FF2B00F0BD800025149AC1 -:10DF7000284603E001300131FF2B08D0934206DA36 -:10DF8000D21A4B78002BF5D10B780135F4E71C91B0 -:10DF9000159017951492159A179B209913440F9A70 -:10DFA000079401FB032300220F9323EAE3731192EA -:10DFB00008931DE51A9B66271A4453180F9342E7EE -:10DFC0003946DDF850900F9F0029FFF657AA4B1CE9 -:10DFD0003022334406F8012BB342FBD1FFF74FBA8E -:10DFE0000C9B0F93FFF77ABB0DF1BA0283E70C9BF2 -:10DFF00073279DF8A720129608930F930C90179003 -:10E000001590FEF79CBC0F9387E5C3F101036727CA -:10E010001A4422EAE2730F9208938AE534AA0B9914 -:10E02000584600F0BBF800287EF4A6AB37ACDDE91B -:10E030003535FFF750B9A1460D460A9BCDF87080E3 -:10E040000A92994528BF9946FFF742B82D228DF8CC -:10E05000A72072E702231D93B1E4129A63780C465D -:10E0600052F8041B41EAE17112920C91FEF79CBA3E -:10E070000B9AB2F90C3043F040039381FEF785BB55 -:10E080000C9A927AFFF7F8B90B9A536ED8073FF5BE -:10E0900098AE938999053FF594AE906DFDF7E0FC3D -:10E0A0008FE623B90123662708930F9341E51A9B56 -:10E0B0005F1C0C9B3B4466270F9323EAE373089392 -:10E0C00037E5DDE908010022134B04F027F80028AA -:10E0D0003FF4D4A9EA077FF5D1A9FFF7B6B9C8F193 -:10E0E00001032B9310E400231793159353E7139B1D -:10E0F000169A1344A5E70B9BB3F90C3043F0400389 -:10E1000011E70B9B1190B3F90C3043F040030AE781 -:10E11000A82A1018A42A10180000E03FF0B51F46E6 -:10E120008B89ADF26C4D154623F00203064616A806 -:10E130000C46ADF80C301AAB009304934FF4806397 -:10E14000029305934B6E1993CB89ADF80E30CB69D2 -:10E1500007934B6A099300230693FDF77BFC2A463D -:10E160003B4669463046FEF79FF9051E07DB6946C8 -:10E17000304600F01FF9002818BF4FF0FF35BDF8FA -:10E180000C305B0603D5A38943F04003A3811698A6 -:10E19000FDF762FC28460DF26C4DF0BD936810B59A -:10E1A00014461BB918460023636010BD00F02CF91B -:10E1B0000023A3600023636010BD00BF70B5002979 -:10E1C0003FD006460C4610B1436B002B3CD0636E2B -:10E1D000B4F90C20DD0732D4900538D521463046FD -:10E1E00000F04CF8E36A054633B1E16930469847E0 -:10E1F0000028B8BF4FF0FF35A3891A0639D4216B28 -:10E2000041B104F14003994202D03046FDF798FD38 -:10E2100000232363616C21B13046FDF791FD00239B -:10E220006364FDF7EBF9636E0022DB07A2811CD566 -:10E23000A06DFDF711FCFDF7E7F9284670BD002A37 -:10E24000CCD10025284670BDFDF7BAF9BFE7A06D17 -:10E25000FDF704FCB4F90C30002BBFD1636ED90775 -:10E26000EFD4A06DFDF7FCFBEBE7A06DFDF7F8FB2D -:10E27000DEE721693046FDF763FDC0E7B1F90C2008 -:10E280002DE9F04116070C4680464ED4496842F409 -:10E2900000630029A38163DDA56A002D42D000211F -:10E2A00012F48052D8F80060C8F80010E16964D117 -:10E2B00001234046A847451C02466DD0B4F90C30F6 -:10E2C000A56AE169580705D56368D21A236B0BB1BB -:10E2D000E36BD21A00234046A847431C4FD1D8F81D -:10E2E0000010B4F90C301D2940D8314ACA40D70774 -:10E2F0003CD523F40062DD04A2814FF0000262608D -:10E300002269226001D5002944D0216BC8F8006041 -:10E3100041B104F14003994202D04046FDF710FD9F -:10E32000002323630020BDE8F0810E69002EF9D0A0 -:10E3300092070D680E600CBF4B690023AD1B8B600C -:10E340000BE02B463246E1694046676AB847B0F1B8 -:10E35000000CA5EB0C05664406DD002DF1DCE1E7C1 -:10E36000E16B002998DCDDE7B4F90C3043F04003A1 -:10E370004FF0FF30A381BDE8F081226DA2E7B4F930 -:10E380000C300022626023F40062DB04A281226967 -:10E390002260BAD52065B8E7D8F80030002B8DD0C0 -:10E3A0001D2B01D0162BDFD1C8F80060BAE700BFE3 -:10E3B0000100402038B505460C4608B1436B03B355 -:10E3C000B4F90C0088B1636EDB0701D481050FD569 -:10E3D00028462146FFF752FF636E0546DA0702D44E -:10E3E000A3899B0508D5284638BD0546284638BD73 -:10E3F000A06DFDF733FBEBE7A06DFDF731FB284681 -:10E4000038BDFDF7DDF8DBE79368002B00F0F980FD -:10E41000B1F90CC01CF0080F2DE9F04F904683B005 -:10E4200081460C4631D00B697BB31CF00207D8F84B -:10E43000006038D00027D4F824B0E169DFF8C4A226 -:10E440003D4655452B463A46484628BF5346C5B13A -:10E45000D847002840F3CB80D8F8083007442D1A5D -:10E460001B1AC8F80830002B00F0B78055452B4622 -:10E47000D4F824B03A46E16928BF53464846002DF7 -:10E48000E6D1D6E900750836DBE72146484600F0BC -:10E490003BF9002840F0B080B4F90CC0D8F8006017 -:10E4A0001CF00207C6D11CF0010A64D1236857464C -:10E4B000A16818468B46002F59D01CF4007F00F04D -:10E4C000B680B9420A4600F2E2801CF4906F30D068 -:10E4D00021695D1A636913EB430348BF01334FEAB7 -:10E4E000630B6B1C3B445A465B4501D99B461A465D -:10E4F0001CF4806F00F0EA8011464846FDF71CFDD1 -:10E50000002800F0F9802A4621690090FDF7AAFA58 -:10E51000A289009B22F4906242F08002A2815819E5 -:10E52000C4F814B0ABEB05053A46BB462361A560C1 -:10E5300020605146009200F049F9A16823683D46E9 -:10E54000009AA1EB0B0100271A44A1602260D8F8C1 -:10E550000830AA445B1BC8F80830002B3DD0236864 -:10E56000A168B4F90CC018468B46002FA5D1D6E996 -:10E5700000A708369DE73846BB463D460097002D6C -:10E5800041D0002846D0009AA168AA426369206859 -:10E5900028BF2A4603EB010A2169884202D9524565 -:10E5A00000F38580934275DC5A46E1694846676A04 -:10E5B000B847B0F1000A1ADD009BB3EB0A030093E1 -:10E5C0000FD00120D8F80830D344A5EB0A05A3EBFF -:10E5D0000A03C8F80830002BD1D1002003B0BDE8F1 -:10E5E000F08F21464846FFF7E5FE0028EAD0B4F94F -:10E5F0000C3043F04003A3814FF0FF3003B0BDE87F -:10E60000F08F00207047756833460836002DFAD029 -:10E61000D3F800B02A460A21584600F095F90028A0 -:10E6200067D00130A0EB0B031A460093ACE72269D8 -:10E630009A4214D36269BA4211D86FF00043656AF6 -:10E64000E1694846BB4228BF3B4693FBF2F302FB1D -:10E6500003F35246A847051EC9DD7F1B77E7B94281 -:10E66000184628BF39460D4651462A4600F0AEF8F6 -:10E67000A1682368491B2B44A16023600029ECD1C9 -:10E6800021464846FFF796FE0028E6D0AFE7BB4696 -:10E690003A464EE75946019200F098F8019AA3686D -:10E6A00092469B1AA36023681344236084E759466B -:10E6B000524600F08BF823682146484653442360B5 -:10E6C000FFF778FE00283FF477AF90E7484601F067 -:10E6D000E7FD034600287FF422AF21694846FDF795 -:10E6E0002FFBB4F90C300C2223F08003C9F8002072 -:10E6F0007FE76A1C009247E70C22B4F90C30C9F896 -:10E70000002076E700FCFF7F38B52F4B05460C460E -:10E710001B6813B15A6B002A45D0B4F90C301807A6 -:10E7200016D52269F2B113F0010107D0616900200A -:10E730004942A060A1613AB1002038BD980758BF96 -:10E740006169A160002AF7D1190638D4104638BD96 -:10E75000D9062CD55A0712D4226943F00803A381A5 -:10E76000002AE0D103F42071B1F5007FDBD021460F -:10E77000284601F08DFFB4F90C302269D3E7216BF4 -:10E7800051B104F14002914204D02846FDF7D8FA75 -:10E79000B4F90C30002222630021226923F0240303 -:10E7A000C4E90021D9E71846FCF70AFFB5E70922BA -:10E7B00043F040032A60A3814FF0FF3038BD43F09F -:10E7C0004003A381F8E700BFFC75033488420ED9EB -:10E7D0008B1883420BD900EB020C002A6ED06246E4 -:10E7E00013F801CD994202F801CDF9D170470F2AF3 -:10E7F0000FD8034602F1FF3C002A5FD00CF1010C58 -:10E80000013B8C4411F8012B614503F8012FF9D12C -:10E81000704740EA01039B0751D1A2F1100301F1B7 -:10E82000200C70B523F00F0501F1100E00F110045B -:10E830001B09AC445EF8105C0EF1100E103444F865 -:10E84000205C5EF81C5C44F81C5C5EF8185C44F8C4 -:10E85000185C5EF8145CE64544F8145CEAD10133B8 -:10E8600012F00C0F02F00F0C01EB031100EB03137D -:10E8700029D0ACF1040C1C1F8E462CF003064FEA85 -:10E880009C0C1E445EF8045B44F8045FB442F9D16A -:10E890000CF1010402F0030203EB840301EB840199 -:10E8A00002F1FF3C4AB10CF1010C013B8C4411F820 -:10E8B000012B614503F8012FF9D170BD704702F1BA -:10E8C000FF3C03469AE76246EAE700BF014B93F834 -:10E8D00028017047587B033400487047487C033454 -:10E8E00038B50022064D044608462A6003F090FE23 -:10E8F000431C00D038BD2B68002BFBD0236038BDF3 -:10E90000DC7F033438B5074D074C2C1BA41005D011 -:10E91000013C55F8043D9847002CF9D1BDE838403A -:10E92000F2F774B9240C1018200C1018082802D122 -:10E930004FF48050704708B5FDF75EF81622034685 -:10E940004FF0FF301A6008BD5FFA81FC810744D0A8 -:10E950000346511E22B909E09A0709D0013905D3AF -:10E960001846013302786245F6D17047002070479F -:10E97000184603290CD80029F8D00346014401E0C9 -:10E980008B42F3D0184613F8012B6245F8D170473B -:10E9900010B50CEB0C24024604EB044402E00439ED -:10E9A000032915D9104652F8043B6340A3F1013EF8 -:10E9B0002EEA030313F0803FF1D00346014401E047 -:10E9C0008B4208D0184613F8012B6245F8D110BDD0 -:10E9D00010460029F1D1002010BD1146C9E700BF43 -:10E9E000F8B5DFF860C021F0004300270446634516 -:10E9F0000D461646176020D8844653EA0C0C1CD0EE -:10EA0000DFF844C00A4601EA0C0CBCF1000F09D142 -:10EA100000220B4B03F01AF96FF0350704460A4643 -:10EA200021F000436FF31E521B1542F07F55A3F2F5 -:10EA3000FE3345F400153B44336020462946F8BDBB -:10EA400000005043FFFFEF7F0000F07F2DE9F84307 -:10EA50001C4D064698460F4628689146FCF7FEFF77 -:10EA6000194B1C682CB3286865681F2D24DC4EB92F -:10EA70006B1C0235636044F82570FCF7F1FF002041 -:10EA8000BDE8F88304EB85010123022EC1F88890CC -:10EA900003FA05F3D4F8882142EA0302C4F8882176 -:10EAA000C1F80881E4D1D4F88C211A43C4F88C2130 -:10EAB000DEE7064C1C60D6E7FCF7D2FF4FF0FF30D4 -:10EAC000DEE700BF40770334EC7F03342480033457 -:10EAD0002DE9F04F036985B00C69A342C0F2908024 -:10EAE000013C01F1140500F11408814655F8243069 -:10EAF0004FEA840C58F8242005EB8407013308EB17 -:10EB0000840B9A42B2FBF3F642D30020AA46C646D3 -:10EB1000CDF80C8003468846CDE901C505465AF874 -:10EB2000042BDEF8001090B257454FEA124C06FB5A -:10EB300000508AB24FEA104580B206FB0C55A2EB9A -:10EB400000021A44ABB24FEA1545C3EB224392B21E -:10EB500003EB114342EA03424FEA23434EF8042BEE -:10EB6000DDD24146DDF80C80DDE901C558F80C30F6 -:10EB700073B9ABF1040BD84504D307E0D84504F1D1 -:10EB8000FF3403D25BF80439002BF7D0C9F81040EA -:10EB9000484601F043FA00282EDB00224146944605 -:10EBA00055F8040B0B681FFA80FEAF429AB24FEA89 -:10EBB0001040A2EB0E026244C0EB224092B200EB86 -:10EBC000134042EA00424FEA204C41F8042BE7D2BE -:10EBD00058F8242008EB84036AB9043B434504D861 -:10EBE00007E0984504F1FF3403D253F80429002AC2 -:10EBF000F7D0C9F810400136304605B0BDE8F08FB7 -:10EC0000002005B0BDE8F08F2DE9F04F816B9DB07D -:10EC100016461F460446299DCDE9046741B1C26BE3 -:10EC2000012393404A608B6000F09AFF0023A363A6 -:10EC3000B7F10009C0F2B48000232B607C4B33EAAB -:10EC4000090300F0B880002200239DED047B51EC05 -:10EC5000170B8DED027B03F061FA804668B101234A -:10EC6000289A13602A9B13B1724B2A9A1360DFF81B -:10EC7000D08140461DB0BDE8F08F1AAB204601930D -:10EC80001BAB0093DDE9022301F0AAFA83465FEA99 -:10EC9000195540F0A780DDE91A85454405F2324355 -:10ECA000202B40F34982C3F1400309FA03F905F22E -:10ECB000124326FA03F349EA030002F04DFF013D37 -:10ECC0000123A1F1F871149300225B4B02F006FEC0 -:10ECD00051A3D3E9002302F0B9FF51A3D3E90023E4 -:10ECE00002F0FEFD06460F46284602F045FF4EA301 -:10ECF000D3E9002302F0AAFF02460B46304639460C -:10ED000002F0EEFD06460F4603F050FA002281465F -:10ED1000089000233046394603F00AFA002840F0F4 -:10ED2000FD81A8EB0508089D162D08F1FF3A00F2B9 -:10ED3000A481424B03EBC503DDE90201D3E90023C3 -:10ED400003F0F6F9002800F081806B1EBAF1000F85 -:10ED500008934FF000031193C0F2958100230A93AA -:10ED6000089B002B78DA089B0A9A0B93D21A0A9216 -:10ED70005A42002310920893269B092B74D8052B26 -:10ED800040F3DF81043B00252693269B023B032BA7 -:10ED900000F28786DFE813F0FF03FC03F203D803D9 -:10EDA000012329F000492B60214BCDF8149033EA60 -:10EDB00009037FF448AFC9F3130942F20F73289A8D -:10EDC00059EA060913601DD02A9BDFF87880002BD2 -:10EDD0003FF44FAF08F103032A9A404613601DB079 -:10EDE000BDE8F08FDDE90212CDF85080A5F2FF35C5 -:10EDF000C2F313030846DDF8688043F07F5141F405 -:10EE0000401161E72A9BDFF84080002B3FF431AFCF -:10EE100008F10803E0E700BF61436F63A787D23FB3 -:10EE2000B3C8608B288AC63FFB799F501344D33FF9 -:10EE30000000F07FDD2A10180000F83F982C101811 -:10EE4000DC2A1018342B1018282B1018B8F1000FDA -:10EE500040F31A8511900A90089B9A440B93002363 -:10EE60001093269B092B8AD900230125CDE926334F -:10EE70004FF0FF330C9509930021099BE163159333 -:10EE8000204600F047FE0790002800F01286099BFC -:10EE90000E2B8CBF002505F00105079BA363002DF9 -:10EEA00000F01E810B99002940F35C81A64B01F014 -:10EEB0000F02C8054FEA211503EBC203D3E900672F -:10EEC00040F12183A14B05F00F054FF00308D3E972 -:10EED0000823DDE9020102F0E3FFCDE90E018DB167 -:10EEE000DFF86892E90709D53046394608F101088C -:10EEF000D9E9002302F0AAFE06460F466D1009F17B -:10EF00000809EFD132463B46DDE90E0102F0C8FFA9 -:10EF1000CDE91201119B53B100228D4BDDE912673F -:10EF20003046394603F004F9002840F0B4844046E6 -:10EF300002F022FEDDE9122302F088FE854B00225A -:10EF400002F0CEFC099B0646A1F15077002B00F0A1 -:10EF5000AE800B9B0E93099B18937B4AB046189B7F -:10EF6000B94602EBC303DDE9126713ED027B3946B4 -:10EF700030468DED167B03F019F9054602F0FCFDD5 -:10EF800002460B4630463946303502F0A7FC079B57 -:10EF90000F460C995A1C0646EDB21292DDE9162373 -:10EFA000002900F0FB8200206B4902F079FF424605 -:10EFB0004B4602F093FC079B324680461D703B4651 -:10EFC000894603F0D3F8002840F05385CDF864A0BB -:10EFD0000025CDF858B0DDF848A0DDF860B01894F1 -:10EFE0002AE001355D4580F2CD8440464946002245 -:10EFF0005A4B02F02BFE0022584B80468946304681 -:10F00000394602F023FE0F46064603F0CFF80446C9 -:10F0100002F0B2FD02460B4630343046394602F06B -:10F020005DFC42464B460AF8014B06460F4603F08C -:10F030007FF8002840F0AD8432463B46002044492A -:10F0400002F04CFC42464B4603F072F80028C8D050 -:10F05000DDF858B05546189C079902E0A94200F027 -:10F060006D842A4615F8013D392BF7D00133DBB208 -:10F070002B70DDF81C8007921BE10123BAF1000F11 -:10F080001193BFF66BAEC8F101034FF0000A0A936B -:10F0900066E6404602F070FDDDE9122302F0D6FD7F -:10F0A00000222C4B02F01CFC0646A1F150770022F6 -:10F0B0002B4BDDE9120102F011FC32463B46804643 -:10F0C000894603F053F8002840F01884404649462A -:10F0D000324607F1004303F02BF8002840F0858109 -:10F0E0001B9B002B03DB0B9A0E2A40F361810C9AC9 -:10F0F000002A68D0269A012A40F3F583099B109ACA -:10F100005D1EAA42C0F22C83002BA2EB050580F203 -:10F110007D84DDE90923A3EB02082EE3484602F0D3 -:10F120002BFD32463B4602F0F9FF00287FF4F9AD93 -:10F1300009F1FF330893F4E5C3F1200306FA03F065 -:10F14000BBE5012521E600BF982C1018702C101883 -:10F150000000F03F00001C400000E03F00002440A1 -:10F160000000144000F0F4820B9B5E42B24B06F0AC -:10F170000F0203EBC203DDE90201D3E9002302F031 -:10F1800065FD3611CDE90E0100F06584AB4F00231B -:10F190004FF00208CDE91201F20706D508F1010887 -:10F1A000D7E9002302F052FD2B46761007F108073D -:10F1B000F2D1CDE91201002B7FF4ACAE9DED0E7BB8 -:10F1C0008DED127BA6E60023109DDDF828801E46FB -:10F1D0000C93B8F1000F0DDDBAF1000F0ADDD04538 -:10F1E00043460A9AA8BF5346D21AA8EB0308AAEBD3 -:10F1F000030A0A92109B53B10C9B13B1002D40F0EF -:10F20000D0825946109A204600F03AFE83460121EA -:10F21000204600F055FD089B0746002B40F05E811C -:10F22000269B012B40F376810123534413F01F03E7 -:10F2300008D0C3F12002042A00F3688208D0C3F189 -:10F240003C0300E01C230A9A98449A441A440A9208 -:10F250000A9B002B05DD59461A46204600F06AFE3F -:10F260008346BAF1000F05DD39465246204600F0CC -:10F2700061FE0746269B022B119BD4BF002501256A -:10F28000002B40F0B580099B002B26DC2DB3099B99 -:10F29000002B00F03E82279BDDF81C80DB430E93A1 -:10F2A0003946204600F05CFC1EB13146204600F095 -:10F2B00057FC5946204600F053FC00220E9B07994C -:10F2C00001330A70289A13602A9B002B3FF4D1ACBB -:10F2D000404619601DB0BDE8F08F0C9B002B00F07C -:10F2E000A480B8F1000F05DD31464246204600F00B -:10F2F00021FE0646089B002B40F02D83B146079D5A -:10F30000099A6B1E02971A44049B03F001030992A9 -:10F310000A9302995846FFF7DBFB3146824658466E -:10F3200000F07CFE029980464A4620460AF13007EA -:10F3300000F096FEC3680146002B40F04D82089015 -:10F34000584600F06BFE08990890204600F008FC33 -:10F35000269B089A134340F07B820A9B002B00F007 -:10F360005E83B8F1000FC0F25783099BA846AB42F9 -:10F3700008F8017B00F03D83594600230A2220460D -:10F3800000F0F8FB4E45834631464FF000034FF046 -:10F390000A02204600F0568200F0ECFB4946064681 -:10F3A00000230A22204600F0E5FB45468146B0E7EF -:10F3B000214B03EBC203D3E9009A279B002B80F279 -:10F3C0000682099B002B00F3028273B900221C4BBA -:10F3D0004846514602F03AFC02460B46DDE902017E -:10F3E00002F0B0FE002800F0898200273E4652E776 -:10F3F0003946584600F012FE0028BFF644AF0B9B7A -:10F4000059460A222046013B0B93002300F0B2FB31 -:10F410000C9B8346002B40F00D83159B002B159B06 -:10F42000099302DC002D7FF432AFDDF81C8001254A -:10F43000DDF824900EE000BF982C1018702C1018E6 -:10F4400000001440594600230A22204600F092FB97 -:10F450000135834639465846FFF73AFB4D4500F1E2 -:10F46000300308F8013BEDDB099A0025002ACCBFE8 -:10F4700090464FF00108079A9044594601222046D1 -:10F48000029300F057FD3946834600F0C7FD00287F -:10F4900040F33982079A02E0904500F0438218F861 -:10F4A000013CC24608F1FF38392BF5D0013388F80A -:10F4B00000300B9B0E933946204600F051FB002E86 -:10F4C00000F037822DB1B54203D02946204600F026 -:10F4D00047FBDDF81C80CDF81CA0E6E601461A4685 -:10F4E000204600F0CDFC269B0746012B40F34B81C4 -:10F4F000002308933B6907EB8303186900F08CFB3A -:10F50000C0F1200391E69DED027B4FF002088DEDE6 -:10F510000E7BE4E4049B002B7FF486AEDDE904124D -:10F52000C2F31303002B7FF47FAEC24B13402BB109 -:10F530000A9B0AF1010A01330A930123089A0893EE -:10F54000002A3FF471AED5E701230C93279B0B9A59 -:10F55000134415930133012B1E460993B8BF0126AE -:10F56000172E40F39482012204235B0011460132DE -:10F5700003F11400B042F8D9E16381E401230C9354 -:10F58000279B002B40F37B811E4615930993E7E7E9 -:10F5900000230C93DAE700230C93F1E74046494639 -:10F5A00002F054FB079B1D70189B012BCDE90C0149 -:10F5B00000F03E82189D079BDDF848801D44002224 -:10F5C0009D4B3046394602F041FB0F46064602F09D -:10F5D000EDFD814602F0D0FA02460B4609F13009F2 -:10F5E0003046394602F07AF908F8019B454506464F -:10F5F0000F46E4D10022914BDDE90C894046494693 -:10F6000002F06EF932463B4602F092FD002840F0CF -:10F610009F8142464B460020884902F05FF93246FE -:10F620003B4602F0A3FD002840F08C801B9B002B82 -:10F63000FFF6C9AD0B9B0E2B3FF7C5AD804B0B9A68 -:10F64000DDF81C8003EBC203D3E9009ADDE9026711 -:10F650004A4653463046394602F022FC02F0A6FDE7 -:10F66000054602F089FA4A46534602F0EFFA02468E -:10F670000B463046394602F031F905F13003079A5E -:10F680001370099B012B129B00F0F881C3F101025A -:10F69000CDF808B0CDF81080984608941446DDF8EF -:10F6A00024B01DE04A4653463046394602F0F8FB86 -:10F6B00002F07CFD054602F05FFA4A46534602F02E -:10F6C000C5FA0B4602463946304602F007F905F105 -:10F6D000300308F8013B08EB04035B4500F063814D -:10F6E0000022554B02F0B2FA0022002306460F46D4 -:10F6F00002F014FD0028D5D0CDF81C80DDF808B04C -:10F70000DDF81080089C0B9B0E93D2E5C3F11C031F -:10F7100099E539460522204600F02CFA074658465E -:10F72000394600F07BFC00287FF7B5ADDDF81C8082 -:10F73000079B013307930B9B01330E93312388F80A -:10F740000030ADE52A4615F8013D302BFAD090E4A3 -:10F750009DED027B4FF002088DED127BFFF7DABBC7 -:10F76000109B089AEB1A109500251A44099B0892E1 -:10F770009A440A9A90461A440A920121204600F0BF -:10F780009FFA064625E5049B002B7FF4B1AEDDE928 -:10F790000401C1F313030A46002B3FF4C6AE0890E0 -:10F7A000A8E631462A46204600F06AFB06465A463D -:10F7B0002046314600F0B2FA59468346204600F012 -:10F7C000CFF9109B5B1B10933FF421AD19E5079B0C -:10F7D0005A1C9846129239E720460897029F00F07B -:10F7E000BFF9B8F1000F089B08DB049A269902F0D4 -:10F7F000010241EA080852EA08023AD159460122B8 -:10F800002046029300F096FB3946834600F006FC42 -:10F810000028029B40F32781392B00F0EF800AF18A -:10F820003103AA460AF8013B35460B9B4E460E9320 -:10F8300041E600BF0000F07F000024400000E03FF0 -:10F84000982C101800F096F945460646814660E56A -:10F85000B8F1000FC0F21F81269B43EA08080A9BFB -:10F8600053EA080800F01781002A7FF77EAD3B4677 -:10F87000029F392B00F0C280AA460133D2E7012350 -:10F8800027930993FFF7F8BAC8F101038246119054 -:10F890000A93FFF7E1BA099B002B3FF4FAAB159DE1 -:10F8A000002D7FF71DAC0B9B304639460022013BF3 -:10F8B0000E93894B02F0CAF902460F4608F1010087 -:10F8C0001646CDE9126702F057F932463B4602F080 -:10F8D000BDF90022814B02F003F818950646A1F10C -:10F8E0005077FFF73ABB149A72B303F233430A9A84 -:10F8F0009A44109D90461A440A923EE70027DDF88C -:10F900001C803E4614E703D1029BDB073FF5C2ADE6 -:10F9100018F8013CC24608F1FF38302BF8D00B9B99 -:10F920000E93C8E50B9B079A01330E933123137096 -:10F93000C1E5DDF81C80CDF81CA0BAE40E9B0133B4 -:10F940000E933123FFF794BB1A9BC3F13603CEE726 -:10F950000799FFF786BB7168204600F0DBF8054683 -:10F96000002800F08D80336906F10C010C30023361 -:10F970009A00FCF777F829460122204600F0DAFACF -:10F980008146BCE4DDF864A0DDF858B0189CFFF7B0 -:10F99000A7BBDDF81C80DDF858B0189CCDF848A056 -:10F9A000CDF81CA085E4CDF81C80DDF808B0DDF8AA -:10F9B0001080089C02460B4601F092FF4A465346CF -:10F9C00006460F4602F0D2FB58B94A465346304627 -:10F9D000394602F0A3FB00283FF495AEE9077FF516 -:10F9E00092AE0B9B4146079D0E93CDF81C80FFF70E -:10F9F00038BB3B463546029F4E463EE5A846392376 -:10FA00003546079A4E4608F8013B48E50A9A9A445B -:10FA100090461A440A92B0E63B46029F01E73B46F5 -:10FA2000029F392BEAD0B8F1000F3FF7F8AEF8E6A5 -:10FA3000129DDFE5314600230A22204600F09AF8A5 -:10FA4000159B0646002B159B09933FF74AAC002DEA -:10FA50007FF41DAC45E49DED0E7B4FF002088DED6B -:10FA6000127BFFF757BA7FF4DCAEDA077FF5D9AE29 -:10FA7000D2E6129BDDF81C8007931AE4079399E7FE -:10FA80000246174B40F2EF21164800F097FE002186 -:10FA9000E163FFF7F5B9002A3B46029F3FF7AEAEA0 -:10FAA000BFE6002520462946E56300F033F80790BD -:10FAB00030B90B4B002240F2AF110A4800F07EFE35 -:10FAC000079B01222795A3634FF0FF330C921593F8 -:10FAD0000993FFF705BB00BF0000244000001C4055 -:10FAE000382B10184C2B101882B049B15AB16BB199 -:10FAF00013780B601278101E18BF012002B07047F7 -:10FB000001A9002AF3D1104602B070476FF001003E -:10FB1000F4E700BF38B5436C05460C464BB153F8CB -:10FB2000240080B1026843F824200023C0E9033395 -:10FB300038BD2122042100F05FFE034668640028DE -:10FB4000EDD1002038BD0121284601FA04F56A1DD7 -:10FB5000920000F051FE0028F3D0C0E90145E4E72F -:10FB600031B1436C4A6853F82200086043F8221010 -:10FB7000704700BF2DE9F04107460E461C460D694F -:10FB800001F1140E0020DEF8001001308BB2854226 -:10FB90004FEA114102FB03434FEA134C9BB202FBB5 -:10FBA00001CC03EB0C434FEA1C444EF8043BEADC67 -:10FBB0003CB1B368AB4207DD06EB850301355C6100 -:10FBC00035613046BDE8F081716838460131FFF794 -:10FBD000A1FF8046A8B1326906F10C010C30023257 -:10FBE0009200FBF73FFF7B6C726853F82210316084 -:10FBF00043F82260464606EB850301355C613561BA -:10FC0000DFE70246024BBA21024800F0D7FD00BFF1 -:10FC1000382B1018A82B1018B0F5803F034618D2C7 -:10FC200003041020B3F1807F01D208301B02B3F12E -:10FC3000805F01D204301B01B3F1804F03D3002B4E -:10FC400006DB013070479B0005D45B0005D4202003 -:10FC500070470020E6E7023070470330704700BF6E -:10FC60000368014613F0070207D0DA071FD498078C -:10FC700021D55B0801200B60704798B2A0B11046F7 -:10FC8000DAB20AB908301B0A1A0701D104301B097D -:10FC90009A0701D102309B08DA0703D45B0800F110 -:10FCA000010006D00B6070471B0C1020E8E7002015 -:10FCB0007047202070479B0802200B60704700BFF0 -:10FCC00038B5436C04460D464BB15868B0B1026874 -:10FCD0005A60002201234561C0E9032338BD212277 -:10FCE000042100F089FD034660640028EDD1094B32 -:10FCF000002240F24511084800F060FD1C2201215D -:10FD0000204600F079FD0028F1D001220223C0E94D -:10FD10000123DEE7382B1018A82B10182DE9F04F1F -:10FD2000D1F8108085B015690E469246A84505DBCE -:10FD30002A46534645468A4690461E4605EB080429 -:10FD4000DAE90113A342B8BF0131FFF7E3FE00284F -:10FD500000F08B8000F1140707EB840E774505D285 -:10FD60003B46002243F8042B9E45FBD814360AF18B -:10FD7000140906EB880809EB8505464568D2A5EB12 -:10FD80000A030AF1150ACDF808E0AE46153B0394C4 -:10FD900023F00303043355452CBF9B464FF0040B5F -:10FDA000824605E0090C2CD1B04507F104074CD977 -:10FDB00056F8041B8DB2002DF4D0CC463C460023EF -:10FDC00001965CF8040B216886B2E6458AB24FEAD8 -:10FDD000104005FB06224FEA11411A4405FB0011B1 -:10FDE00001EB124192B24FEA114342EA014244F858 -:10FDF000042BE6D8019E47F80B3056F8041C090C7A -:10FE0000D2D03B68002248463D461C4694460288B4 -:10FE10009BB201FB02C202EB144243EA024345F8E3 -:10FE2000043B50F8043B2C684FEA134C7045A3B2D6 -:10FE300001FB0C3303EB12434FEA134CE7D3B045FD -:10FE400047F80B3007F10407B2D85046DDE902E469 -:10FE5000002C02DC05E0013C03D05EF8043D002BE1 -:10FE6000F9D0046105B0BDE8F08F0246024B4FF4B3 -:10FE7000B171024800F0A2FC382B1018A82B101802 -:10FE800012F003032DE9F041144607462CD10D462C -:10FE9000A4101CD03E6C86B3E3074FF0000806D4D4 -:10FEA000641014D03068A8B10646E307F8D532468E -:10FEB00029463846FFF732FF35B17B6C696853F845 -:10FEC00021202A6043F8215064100546EAD12846D3 -:10FED000BDE8F081324631463846FFF71FFF3060FB -:10FEE0000646C0F80080E0E7013B0F4A52F82320A5 -:10FEF0000023FFF73FFE0546CAE701213846FFF71A -:10FF000009FE064640B1012340F27122C0E90432E5 -:10FF1000002338640360BFE70246044B40F24511FA -:10FF2000034800F04BFC00BF642C1018382B10184D -:10FF3000A82B10182DE9F0470C46904606464FEACC -:10FF400062192769A36807EB621749687D1C9D4207 -:10FF500003DD5B0001319D42FBDC3046FFF7DAFD3B -:10FF6000002850D0B9F1000F00F1140C0EDD09F19A -:10FF70000502634600214FEA820E00EB820243F83D -:10FF8000041B9342FBD1AEF114039C4404F114030F -:10FF9000216918F01F0803EB81012BD0C8F120095B -:10FFA000E6464FF0000A1A6802FA08F242EA0A022C -:10FFB0004EF8042B53F8042B994222FA09FAF2D88E -:10FFC0000B1B04F11502153B23F00303043391428C -:10FFD00038BF04234CF803A0BAF1000F00D13D460E -:10FFE000736C6268056153F82210216043F8224067 -:10FFF000BDE8F087ACF1040C53F8042B99424CF89F +:102F8000C47C0334B881033455BB1018DDE7101836 +:102F900080B400AF00BFBD465DF8047B704780B4CD +:102FA00000AF00BFBD465DF8047B704780B500AF41 +:102FB00000F004F8FFF7F3FF00BF80BD80B500AF5D +:102FC00000F002F900F0C8F901F014F900F03AFB42 +:102FD000FFF7DEFF00F034FC00F094FE00BF80BD80 +:102FE00080B582B000AF78600B46FB701346BB70B3 +:102FF000BB781946786804F02BFFFB78194678688F +:1030000004F0DEFE7B68002B02D0786804F072FECC +:1030100000BF0837BD4680BD80B586B000AFF86000 +:103020007A601A460B46FB721346BB72FB683B6123 +:10303000FB7A3B7507F110037968184605F07EF8B6 +:10304000BB7A1946F86805F02BF9F86805F050F9D5 +:1030500000BF1837BD4680BD80B483B000AF786034 +:1030600000BFFDE780B582B002AF002300930023CC +:103070000022002112480FF06FFA00230093002372 +:10308000002201210E480FF067FA0E4805F0DAF928 +:1030900003460D4A934202D10120FFF7DDFF40F6BF +:1030A000B83005F027FA0346084A934202D10120BE +:1030B000FFF7D2FF064805F07DFA00BFBD4680BD90 +:1030C00080098152300C101801004A0002004A00A9 +:1030D0000080BB0080B500AF05F084FA00BF80BD62 +:1030E00080B582B002AF00230093002300220121AB +:1030F0000B480FF031FA0023009300230022002137 +:1031000007480FF029FA074805F032F90346002B6B +:1031100002D00520FFF7A0FF00BFBD4680BD00BF65 +:103120000009815240420F0080B500AF05F068F9F8 +:1031300000BF80BD80B500AF002004F0F3FC00BFED +:1031400080BD80B500AF002004F0CAFC00BF80BD88 +:1031500080B500AF002006F036FC0B49002006F0D9 +:103160004CFC0346002B02D00320FFF775FF42F210 +:103170001071002006F05EFC0346002B02D00320F5 +:10318000FFF76AFF00BF80BDF073033480B500AF66 +:10319000012006F018FC0B49012006F02EFC034626 +:1031A000002B02D00320FFF757FF42F210710120DD +:1031B00006F040FC0346002B02D00320FFF74CFF33 +:1031C00000BF80BD5874033480B588B000AFFFF7EE +:1031D00081FF0021032005F00DFA0321002004F0F7 +:1031E000EFFD0021002004F033FE07F08BFA0223EC +:1031F000FB6105E0F86906F0E6FBFB69013BFB615A +:10320000FB69002BF6D1FFF78FFFFFF769FFFFF790 +:1032100029FFFFF78FFF0023BB610DE0BB69032B84 +:1032200007D0454ABB6932F813301946B86905F032 +:10323000E1F9BB690133BB61BB69052BEED9002302 +:103240007B6115E07B69002B0FD03C4A7B6952F80B +:1032500023303B603B68002B07D03B6819783B6804 +:103260005B781A467869FFF7BBFE7B6901337B61A7 +:103270007B690D2BE6D9FFF764FF314B314A1A60A9 +:10328000314B4FF001621A60FFF762FF2F4B2D4A5E +:103290001A602F4B4FF001621A60FFF777FF00238F +:1032A0003B6119E0254A3B6952F823307B607B681B +:1032B000002B0BD03B69002B0BD17B6819787B6806 +:1032C0005B781A463869FFF78BFE02E0386904F034 +:1032D0004FFD3B6901333B613B690D2BE2D9002374 +:1032E0001946032005F086F9C8200FF031F901F0E6 +:1032F000E7F80023FB6017E0164AFB6852F823301A +:10330000BB60BB68002B09D0BB681978BB685A68E2 +:10331000BB681B7AF868FFF77FFE02E0F86805F0EB +:1033200007F8FB680133FB60FB680D2BE4D900BF95 +:1033300000BF2037BD4680BD240C101858730334DD +:10334000183240520A191F921C32405238324052F1 +:103350003C324052E07C033480B582B002AF0121A0 +:10336000022004F001FC012140F2011004F0FCFBFA +:10337000032140F2031004F0F7FB002200214FF478 +:10338000807004F025FB5623002200214FF480704A +:1033900003F098FF002200214FF4807004F094FAAB +:1033A000012200214FF4807004F012FB0923012256 +:1033B00000214FF4807003F085FF012200214FF4BB +:1033C000807004F081FA022200214FF4807004F032 +:1033D000FFFA0023022200214FF4807003F072FFF5 +:1033E000022200214FF4807004F06EFA03220021C3 +:1033F0004FF4807004F0ECFAF923032200214FF41B +:10340000807003F05FFF032200214FF4807004F00E +:103410005BFA042200214FF4807004F0D9FA0423EF +:10342000042200214FF4807003F04CFF042200219D +:103430004FF4807004F048FA002201214FF48070AC +:1034400004F0C6FA0923002201214FF4807003F032 +:1034500039FF002201214FF4807004F035FA012277 +:1034600001214FF4807004F0B3FA562301220121A8 +:103470004FF4807003F026FF012201214FF4807089 +:1034800004F022FA022201214FF4807004F0A0FA25 +:1034900042F20F73022201214FF4807003F012FFF9 +:1034A000022201214FF4807004F00EFA0322012160 +:1034B0004FF4807004F08CFA4CF24F330322012158 +:1034C0004FF4807003F0FEFE032201214FF4807060 +:1034D00004F0FAF9002202214FF4807004F078FA27 +:1034E000102300936B23002202214FF4807003F01D +:1034F000EBFF002202214FF4807004F0E5F9012275 +:1035000002214FF4807004F063FA0023009341F22B +:103510008733012202214FF4807003F0D5FF01228E +:1035200002214FF4807004F0CFF9002203214FF400 +:10353000807004F04DFA002300933F4B00220321DA +:103540004FF4807003F0C0FF002203214FF480701D +:1035500004F0BAF9002202214FF4E06004F038FAD6 +:10356000002300930023002202214FF4E06003F0C7 +:10357000ABFF002202214FF4E06004F0A5F9002225 +:1035800000214FF4106004F023FA072300220021E9 +:103590004FF4106003F096FE002200214FF41060FB +:1035A00004F092F900220221244804F011FA0023C9 +:1035B0000093172300220221204803F085FF0022F8 +:1035C00002211E4804F080F9012202211B4804F068 +:1035D000FFF900230093032301220221174803F07F +:1035E00073FF01220221154804F06EF90022002128 +:1035F0004FF4813004F0ECF90123002200214FF454 +:10360000813003F05FFE002200214FF4813004F08E +:103610005BF9002200210A4804F0DAF901230022B4 +:103620000021074803F04EFE00220021044804F068 +:103630004BF900BFBD4680BDD9B4070000010100B1 +:103640000003010080B500AF0923002205210020FE +:1036500004F0C6FA012300220321012004F0C0FA7D +:10366000012301220321012004F0BAFA01230222DE +:103670000321012004F0B4FA0A23112201210020C1 +:1036800004F0AEFA002200214FF4106004F016FAA4 +:10369000012300220121012004F0A2FA01220221CB +:1036A000644804F095F80A2306220121002004F062 +:1036B00097FA002201214FF4807004F089F80A2360 +:1036C00007220121002004F08BFA0122012140F29F +:1036D000011004F07DF80A2309220121002004F0E2 +:1036E0007FFA0022022140F2031004F071F80A234D +:1036F0000A220121002004F073FA002200214FF475 +:10370000827004F065F80A230E220121002004F0E3 +:1037100067FA012200214FF4847004F059F8012364 +:1037200003220321012004F05BFA002200214FF460 +:10373000813004F04DF8012304220321012004F01C +:103740004FFA002200213C4804F042F801230522F0 +:103750000321012004F044FA0A230322012100205E +:1037600004F03EFA0422002140F20B1004F030F87D +:10377000012302220121012004F032FA0123032255 +:103780000121012004F02CFA012301220121012052 +:1037900004F026FA00220221284804F019F80A232E +:1037A00004220121002004F01BFA0222012140F230 +:1037B0000D1004F083F90A2304220121002004F0F3 +:1037C0000FFA022200214FF4877004F077F90A23E0 +:1037D00004220121002004F003FA032201214FF406 +:1037E000897004F06BF90A2304220121002004F0FF +:1037F000F7F9032200214FF48A7004F05FF90A23DD +:1038000004220121002004F0EBF90122022140F200 +:103810001B1004F053F90A2304220121002004F0B4 +:10382000DFF9042200214FF48F7004F047F900BF44 +:1038300080BD00BF02010100000301000001010082 +:1038400080B500AFB04A0121B04802F0CDFBB04ACC +:103850000021B04802F0C8FBAF4A0121AD4802F098 +:10386000C3FBAE4A0221AB4802F0BEFBAC4A0321C7 +:10387000A84802F0B9FBAB4A0021AB4802F0B4FB08 +:10388000AA4A0021AA4802F0AFFBAA4A0121A8488F +:1038900002F0AAFBA84A0021A84802F0A5FBA84A0A +:1038A0000121A64802F0A0FBA64A0221A34802F08B +:1038B0009BFBA54A0321A14802F096FBA34A0421E1 +:1038C0009E4802F091FBA24A05219C4802F08CFB25 +:1038D000A04A0621994802F087FB9F4A0721974892 +:1038E00002F082FB9D4A05219D4802F07DFB9D4A26 +:1038F00007219B4802F078FB9B4A00219B4802F07D +:1039000073FB9B4A0121994802F06EFB994A0321FF +:10391000964802F069FB984A0421944802F064FB3F +:10392000964A0521914802F05FFB954A06218F488F +:1039300002F05AFB934A07218C4802F055FB924A49 +:103940000021924802F050FB914A01218F4802F079 +:103950004BFB904A03218D4802F046FB8E4A05211D +:103960008A4802F041FB8D4A0621884802F03CFB60 +:103970008B4A0721854802F037FB8A4A00218A4892 +:1039800002F032FB894A0221874802F02DFB884A67 +:103990000021884802F028FB874A0121854802F06F +:1039A00023FB864A0221834802F01EFB844A03213E +:1039B000804802F019FB834A04217E4802F014FB80 +:1039C000814A06217B4802F00FFB804A0021804893 +:1039D00002F00AFB7F4A03217D4802F005FB7E4A84 +:1039E00004217B4802F000FB7C4A0621784802F063 +:1039F000FBFA0A2302220121002004F0F1F8002240 +:103A0000032140F22D1003F0E3FE754A00217548B2 +:103A100002F0EAFA744A0121724802F0E5FA734AA8 +:103A20000221704802F0E0FA714A03216D4802F069 +:103A3000DBFA704A04216B4802F0D6FA6E4A05217F +:103A4000684802F0D1FA6D4A00216D4802F0CCFAC4 +:103A50006C4A01216A4802F0C7FA6B4A02216848A1 +:103A600002F0C2FA694A0621654802F0BDFA684AC6 +:103A70000721634802F0B8FA664A0021664802F05E +:103A8000B3FA664A0121644802F0AEFA644A05219D +:103A9000614802F0A9FA634A06215F4802F0A4FADD +:103AA000614A07215C4802F09FFA604A00216048A1 +:103AB00002F09AFA5F4A01215D4802F095FA5E4AE7 +:103AC00007215B4802F090FA5C4A06215C4802F04C +:103AD0008BFA5C4A07215A4802F086FA5A4A0021BA +:103AE0005A4802F081FA5A4A0121584802F07CFAF9 +:103AF000584A0221554802F077FA574A03215348A1 +:103B000002F072FA00BF80BD600D101800008152F3 +:103B10009C0D101800004754D80D1018140E1018E2 +:103B2000500E10188C0E101800018152C80E10187B +:103B300080018152040F1018400F101800004B54E0 +:103B40007C0F1018B80F1018F40F10183010101840 +:103B50006C101018A8101018E4101018201110186C +:103B6000000381525C1110189811101880038152C3 +:103B7000D4111018101210184C12101888121018A6 +:103B8000C4121018001310183C13101800048152AE +:103B900078131018B4131018F01310182C141018F0 +:103BA00068141018A414101880048152E01410181E +:103BB0001C1510180005815258151018941510186E +:103BC000D01510180C161018481610188416101856 +:103BD00080058152C0161018FC16101838171018DE +:103BE0007417101800068152B0171018EC1710182F +:103BF0002818101864181018A0181018DC181018BD +:103C0000800781521819101854191018901910189B +:103C1000CC191018081A101800088152441A1018EC +:103C2000801A1018BC1A1018F81A1018341B101823 +:103C300080088152701B1018AC1B1018E81B10185C +:103C4000000A8152241C1018601C1018800A81522E +:103C50009C1C1018D81C1018141D101880B487B0A4 +:103C600000AFF860B9601346FB71FA79FB685B68D6 +:103C7000DBB29A4200D901BEFB681B6843F0010227 +:103C8000FB681A600023FB7530E0FB7D1B01BA68FE +:103C900013441B781A46FB689A60FB7D1B01BA68C7 +:103CA00013445B6823F01F02FB68DA60FB7D1B0195 +:103CB000BA6813445A68FB7D1B01B9680B449B68C2 +:103CC0001344013B23F01F03FA7D1201B9680A4433 +:103CD000127B002A01D0022200E00022134343F0AD +:103CE0000102FB681A61FB7D0133FB75FA7DFB79EC +:103CF0009A42CAD300BF00BF1C37BD465DF8047BA3 +:103D00007047000080B500AF042203490348FFF765 +:103D1000A5FF00BF80BD00BF18261018D0ED00E041 +:103D200080B483B000AF78600B46FB707B68002BDB +:103D300000D101BEFB78012B06D17B681B6843F0E4 +:103D400010027B681A6005E07B681B6823F0100294 +:103D50007B681A60002318460C37BD465DF8047B6B +:103D6000704780B483B000AF78607B681B68DB0F5E +:103D7000DBB218460C37BD465DF8047B704780B453 +:103D800083B000AF78607B681B6823F000427B68DB +:103D90001A6000BF0C37BD465DF8047B704780B5E4 +:103DA00000AF06F08BF906F05DFC06F08FF900F02D +:103DB000BBFC012300220421012003F011FF042198 +:103DC000062006F04FF800BF80BD0000B0B5A0B0DF +:103DD00000AFF860B9601346FB710023FB6707F181 +:103DE0005C0318220021184607F056FC07F1400337 +:103DF0001C220021184607F04FFCFB685B68FB653E +:103E0000FB689B683B6607237B660023BB6793E0E8 +:103E1000BA6F13465B001344BA6813441B78BB6641 +:103E2000BA6F13465B001344BA6813445B78FB66B1 +:103E3000BA6F13465B001344BA6813449B783B6720 +:103E400007F1400407F15C050FCD0FC495E80300AE +:103E500084E8030007F140034FF0FF3219461820B1 +:103E600000F08BFD0346BB6507F1380307F1400105 +:103E70000022184600F0E0FD344A07F1300392E8D2 +:103E8000030083E803003A6BBB6B9A424FD100F00A +:103E90009EFD034683F00103DBB2002B47D1BA6BD2 +:103EA0002A4907F1280303C983E80300F96A284B6C +:103EB0004B409A423BD100F08AFD034683F0010358 +:103EC000DBB2002B33D1214A07F1200392E8030033 +:103ED00083E8030007F1100307F1200292E80300D2 +:103EE00083E803007A691A4B53407B673B697A6F1A +:103EF0009A4201D000F073FD012383F00103DBB28D +:103F0000002B14D1114A07F1180392E8030083E84B +:103F1000030007F1380207F118031146184600F0B4 +:103F200077FD034683F00103DBB2002B01D0094B80 +:103F3000FB67BB6F0133BB67FB79BA6F9A42FFF433 +:103F400067AFFB6F18468037BD46B0BD6C271018B1 +:103F50003C5AC3A50300820190B589B000AFF86058 +:103F6000B9601346FB710023FB6100237B610023D2 +:103F7000BB6117E0FB681868FB685968FB689C68C0 +:103F8000BA6913465B001344BA681344224602F030 +:103F900075FB78617B69002B01D07B69FB61BB6994 +:103FA0000133BB61FB79BA699A42E3D3FB691846D6 +:103FB0002437BD4690BD000080B596B000AF002309 +:103FC0007B6500233B65002387F84F305248FFF79D +:103FD000C8FE034683F00103DBB2002B0ED00123A1 +:103FE00087F84F303B464FF47A724C494A480EF0FE +:103FF00093FA3B46194648480EF09AFA002387F890 +:104000004E304748FFF7ADFE034683F00103DBB2B5 +:10401000002B0ED0012387F84E303B464FF47A72C6 +:1040200040493F480EF078FA3B4619463C480EF0AE +:104030007FFA012000F0E4FB0023BB640FE03A4A62 +:10404000BB6C52F833203849BB6CDB000B441B7946 +:1040500019461046FFF764FEBB6C0133BB640722B0 +:10406000BB6C9342EBD300237B643DE07B6C1B0174 +:104070002E4A1344FB6300233B642CE0FB6B19685E +:104080003A6C13465B0013449B000B44BB63BB6B51 +:104090001B68274A934209D1FB6B9968FB6B1B7B1A +:1040A0001A46B86BFFF792FE38650CE0BB6B1B68D5 +:1040B000002B08D0FB6B9968FB6B1B7B1A46B86B17 +:1040C000FFF74AFF38653B6D002B01D03B6D7B65E8 +:1040D0003B6C01333B64FB6B1B791A463B6C934290 +:1040E000CCD37B6C01337B6405227B6C9342BDD3C4 +:1040F00097F84E30002B02D00948FFF740FE97F8A2 +:104100004F30002B02D00448FFF739FE7B6D184674 +:104110005837BD4680BD00BF0000465474271018B4 +:1041200000004A5498271018841E1018BC1E10183E +:104130000010215280B586B000AFF860B9607A6097 +:104140000121F86802F02DFB786100233B611BE040 +:104150003B699B00BA6813441B68114A1946F8680A +:1041600002F0B2FB78617B69002B0AD13B699B00AE +:10417000BA6813441B68FF221946F86802F0E8FB8E +:1041800078613B6901333B617B69002B03D13A695C +:104190007B689A42DCD37B6918461837BD4680BDE0 +:1041A000401F101880B582B000AF4FF489731A46D3 +:1041B00004490548FFF7BEFF78607B68184608375A +:1041C000BD4680BD481F10180000025280B582B065 +:1041D00000AFA2231A4605490548FFF7ABFF7860F8 +:1041E0007B6818460837BD4680BD00BF9023101875 +:1041F0000000025480B500AFFFF7D1FD00BF80BDC5 +:1042000080B584B000AF264B5B68254A23F040435D +:104210005360244BD3F88830224A43F47003C2F829 +:104220008830214BFB6019E00023BB600EE0FB6887 +:104230001A68BB689B001A44FB685968BB689B00FE +:104240000B4412681A60BB680133BB60FB689B6853 +:10425000BA689A42EBD3FB680C33FB60FB68134AE5 +:104260009342E1D3124B7B6014E000233B6009E0F2 +:104270007B681A683B689B00134400221A603B6805 +:1042800001333B607B685B683A689A42F0D37B6895 +:1042900008337B607B68074A9342E6D3FEF73EFE15 +:1042A00030EF00E000ED00E088251118A02511187E +:1042B000A0251118A825111880B582B000AF78602C +:1042C00078680EF041F900BF0837BD4680BD80B464 +:1042D00000AF00BFFDE780B400AF1EF0400F08D074 +:1042E0001EF0040F0CBFEFF30880EFF30980FFF717 +:1042F000E3BFEFF3948010F0020F0CBFEFF3888060 +:10430000EFF38980FFF7D8BF00BFBD465DF8047B9F +:10431000704780B500AF0EF007F900BF80BD80B5D3 +:1043200000AF0EF001F900BF80BD80B500AF0EF008 +:10433000FBF800BF80BD80B500AF0EF0F5F800BF00 +:1043400080BD80B500AF0EF0EFF800BF80BD80B536 +:1043500000AF0EF0E9F800BF80BD80B500AF0EF0F1 +:10436000E3F800BF80BD80B500AF0EF0DDF800BF00 +:1043700080BD80B500AF0EF0D7F800BF80BD000053 +:1043800080B584B000AF3F4B1B683E4A23F000432A +:1043900013603C4B1B683B4A43F00043136072B60A +:1043A00000BFD523FB600023BB6032E0FB68C3F194 +:1043B000D503354A52F823203449BB6841F82320FD +:1043C000BA68FB681344D52B08D030BFFDE7FCE783 +:1043D000FBE7FAE7F9E7F8E7F7E7F6E7FB68C3F189 +:1043E000D5032A4A52F823202749BB6851F82330C5 +:1043F0009A4208D030BFFDE7FCE7FBE7FAE7F9E7B0 +:10440000F8E7F7E7F6E7FB68013BFB60BB680133C1 +:10441000BB60BB68D42BC9D91D4B1C4A9A60BFF343 +:104420005F8F00BF1A4B9B68184A934208D030BF79 +:10443000FDE7FCE7FBE7FAE7F9E7F8E7F7E7F6E778 +:10444000144B3B603B6883F30A8800BFBFF35F8F68 +:1044500000BFEFF30A837B607B680E4A934208D06B +:1044600030BFFDE7FCE7FBE7FAE7F9E7F8E7F7E736 +:10447000F6E700F011F8FFF7C3FE00BF1037BD46A6 +:1044800080BD00BF003022520004101800700334B9 +:1044900000ED00E00078053480B500AF00F008F8CA +:1044A000024B0F22C3F8C02000BF80BD000026527F +:1044B00080B400AF00BF00BFBD465DF8047B70470D +:1044C00080B582B000AF00237B60786803F008FD00 +:1044D0003860134A3B681360114B1B68114A136024 +:1044E000104B1B6803F5742303F23F230E4AA2FB13 +:1044F00003239B0C0D4A13600A4B1B6803F2E7333E +:104500000B4AA2FB03239B090A4A1360002003F015 +:10451000E7FC0346084A136000BF0837BD4680BD6C +:10452000B4750334BC75033483DE1B43C475033494 +:10453000D34D6210C0750334B875033480B400AF36 +:10454000124BD3F88830114A43F47003C2F8883014 +:104550000F4BD3F888300E4A43F47003C2F888300A +:104560000A4BD3F88C30094A43F44063C2F88C30CC +:10457000084B5B6823F05C43064A43F050435360AA +:1045800000BFBD465DF8047B704700BF00ED00E052 +:1045900000ED02E030EF00E080B400AF0A4B1B6991 +:1045A000094A23F008031361074BDA6849F6F773E9 +:1045B0001340054A43F0BF6343F41033D36000BF98 +:1045C000BD465DF8047B704700ED00E080B400AFAD +:1045D000124B134AC3F88022104B124AC3F88422AC +:1045E0000E4B6FF0C002C3F888220C4B4FF0FF3225 +:1045F000C3F88C22094B4FF0FF32C3F89022074BCF +:104600004FF0FF32C3F89422044B1F22C3F89822C4 +:1046100000BFBD465DF8047B704700BF00E100E0CD +:10462000FFFF0F0000FBFF9F80B400AF00BFBD463F +:104630005DF8047B7047000080B582B000AF0023B6 +:104640007B60FFF7F1FFFFF7A7FFFFF7BFFFFFF763 +:1046500075FFFEF7ABFC0B4800F068FE78607B68E6 +:10466000002B01D07B6809E0064802F08FF87860E3 +:104670007B68002B01D07B6800E07B681846083718 +:10468000BD4680BD187D0334C9B2DBB280B586B0AB +:1046900002AFF8607A601A460B46FB721346BB7293 +:1046A000FA7ABB7A00937B68F9681E4800F058FFDD +:1046B000034618461037BD46BDE880407146724635 +:1046C0007346B7EE000AF7EE000AB7EE001AF7EEEF +:1046D000001AB7EE002AF7EE002AB7EE003AF7EE1E +:1046E000003AB7EE004AF7EE004AB7EE005AF7EE8E +:1046F000005AB7EE006AF7EE006AB7EE007AF7EEFE +:10470000007A8EF3008C10B4F1EE10CA4FF660748C +:10471000C0F6FF740CEA040CE1EE10CA10BCF446BB +:10472000744700BF187D033480B582B000AF1423F6 +:104730007B60012003F002FB034683F00103DBB240 +:10474000002B02D0012003F0D5FA294B03F50053CA +:104750001A46042313600821264805F00BFC0421A7 +:10476000052005F019FB38603B68002B07D001BE1F +:1047700005E001200DF0ECFE7B68013B7B601D48ED +:1047800005F0E8FB0346082B02D07B68002BF0D134 +:104790007B68002B00D101BE0C200DF0D9FE0C234C +:1047A0007B6005E001200DF0D3FE7B68013B7B6060 +:1047B000114805F0CFFB0346082B02D07B68002B85 +:1047C000F0D17B68002B00D101BE08210A4805F01A +:1047D000D1FB0A4B03F580535B68084A43F0004362 +:1047E00002F58052536000BF0837BD4680BD00BF50 +:1047F000000041520030415200001054000040526D +:1048000080B584B000AF0346FB710C23FB60FB79DD +:10481000002B56D0022003F091FA034683F00103E7 +:10482000DBB2002B07D0022003F064FAB860BB684B +:10483000002B00D001BE01220221012003F02CFA3E +:10484000034683F00103DBB2002B05D001230122D4 +:104850000221012003F0C4F9254B1B68244A23F0F0 +:1048600033031360224B4FF6FF729A60204B4FF4D4 +:1048700080329A6108211F4805F07CFBB860BB6854 +:10488000002B00D001BE0421072005F085FAB86096 +:10489000BB68002B07D001BE05E001200DF058FEDB +:1048A000FB68013BFB60134805F054FB0346082BF3 +:1048B00002D0FB68002BF0D1FB68002B13D101BEA6 +:1048C00011E00421072005F0CDFAB860BB68002B89 +:1048D00000D001BE0021074805F04CFBB860BB6862 +:1048E000002B00D001BE00BF1037BD4680BD00BF09 +:1048F000000064540000665480B483B000AF786058 +:1049000039607B683A681A6000BF0C37BD465DF8B5 +:10491000047B704780B483B000AF78607B681B680D +:1049200018460C37BD465DF8047B704780B485B0EF +:1049300000AF78600B46FB707B681B681A0EFB7833 +:104940005340FB60FB689A04FB685B045A40FB68B9 +:10495000DB035A40FB689B035340FA685340BB603B +:104960007B681B681A02BB685A407B681A6000BFEC +:104970001437BD465DF8047B704780B586B000AF44 +:10498000F860B9607A6007F1100379681846FFF79C +:10499000B3FF00237B610CE0BA687B6913441A788B +:1049A00007F1100311461846FFF7C0FF7B6901337A +:1049B0007B617A69FB689A42EED307F110031846CF +:1049C000FFF7A8FF034618461837BD4680BD80B4E0 +:1049D00000AF01231846BD465DF8047B704780B4E4 +:1049E00000AFFFF7FCBFFFF7FABFFFF7F8BFFFF715 +:1049F000F6BFFFF7F4BFFFF7F2BFFFF7F0BFFFF717 +:104A0000EEBFFFF7ECBF00BFBD465DF8047B70470B +:104A100080B483B000AF786039607B685A683B68C7 +:104A20005B689A420CBF01230023DBB218460C37A7 +:104A3000BD465DF8047B704790B5ADB002AF7861BC +:104A40003961FA60454A07F1780392E8030083E888 +:104A5000030007F158030433C7F8A430D7F8A43093 +:104A60003F4A92E8030083E803003B69C7F89830A7 +:104A7000D7F89820D7F898103A4B4B40C7F88020C9 +:104A8000C7F88430D7F8A43003F1080407F14003D5 +:104A900007F1800292E8030083E803003B6C3B636C +:104AA0007B6C7B6307F1380307F1300292E8030067 +:104AB00083E80300224607F1380393E8030082E805 +:104AC00003001823BB6507F158034FF0FF32194666 +:104AD0001420FFF752FF0346FB6607F15803C7F89F +:104AE0009C30D7F89C20D7F89C101E4B4B40C7F841 +:104AF0008820C7F88C301823C7F8A030D7F8A0302A +:104B00003B62D7F8A020174B53407B6207F190031C +:104B100007F1200292E8030083E803003846FB68AF +:104B20000193D7F894300093D7F8903007F18802BA +:104B300006CA00F019F807F178033A4692E8030034 +:104B400083E803007B691A4607F1780393E80300C2 +:104B500082E803007869AC37BD4690BDBC271018C9 +:104B60001C2810183C5AC3A582B080B584B000AF91 +:104B7000F860381D80E80600FB61F8687B6A3A1D22 +:104B800006CA00F00DF9F8681037BD46BDE8804050 +:104B900002B0704780B483B000AF78607B681F2B91 +:104BA00000D901BE7B681F2B0DD87B68002B0AD073 +:104BB0007B681B09104A52F823207B6803F00F031F +:104BC0005B01134411E07B68002B02D10A4B1B6888 +:104BD0000BE07B68202B07D1074B5A687B6803F0FA +:104BE0000F035B01134400E0002318460C37BD4659 +:104BF0005DF8047B704700BF9428101880B483B020 +:104C000000AF786039603B68B3F5803F00D301BEE8 +:104C10003B689AB27B689A6000BF0C37BD465DF86E +:104C2000047B704780B483B000AF78607B681C332E +:104C30001B68DB0FDBB218460C37BD465DF8047B02 +:104C40007047000080B483B000AF78607B681B6859 +:104C5000002B01DA002300E0034B18460C37BD4659 +:104C60005DF8047B704700BF01008A0080B485B006 +:104C700000AF786039607B68054A92E8030083E8FA +:104C8000030078681437BD465DF8047B704700BFA9 +:104C90003428101880B58AB000AF786039600023DE +:104CA0007B620020FFF776FF386202E07B6A013307 +:104CB0007B627B6A43F69722934205D8386AFFF7F6 +:104CC000C1FF0346002BF1D17B6A43F69722934242 +:104CD00007D80D4A07F1180392E8030083E80300A0 +:104CE00006E00A4A07F1180392E8030083E803008C +:104CF0007B681A4607F1180393E8030082E8030073 +:104D000078682837BD4680BD342810183C28101814 +:104D100080B58AB000AF7860396000237B620020E4 +:104D2000FFF738FF386202E07B6A01337B627B6AFF +:104D3000134A934205D8386AFFF774FF0346002BE5 +:104D4000F2D17B6A0E4A934207D80E4A07F1180344 +:104D500092E8030083E8030006E00B4A07F118031A +:104D600092E8030083E803007B681A4607F1180302 +:104D700093E8030082E8030078682837BD4680BDC9 +:104D8000FF933577342810183C28101880B483B06E +:104D900000AF786000BF0C37BD465DF8047B7047FC +:104DA00080B5B8B000AF786107F10C0080E806006C +:104DB000BB60D14A07F1C40392E8030083E8030013 +:104DC00007F1AC0307F10C0292E8030083E803004B +:104DD000D7F8AC30C7F8A430D7F8B030C7F8A8304F +:104DE00007F1B40307F1A40292E8030083E803008B +:104DF0003B46B9681846FFF739FF07F1C4033A4646 +:104E000092E8030083E80300BC4A07F19C0392E8A0 +:104E1000030083E80300D7F89C20D7F8C4309A42F7 +:104E200040F08881FFF7D3FD0346002B00F082811C +:104E3000D7F8C420B14907F1940303C983E80300FC +:104E4000D7F89810AE4B4B409A4240F07381FFF771 +:104E5000BEFD0346002B00F06D81A84A07F18C03CC +:104E600092E8030083E8030007F17C0307F18C025A +:104E700092E8030083E80300D7F88020A04B53405A +:104E8000C7F8D830FB6FD7F8D8209A4201D0FFF787 +:104E9000A6FD0123002B00F04D81984A07F1840301 +:104EA00092E8030083E8030007F1C40207F18403DA +:104EB00011461846FFF7ACFD0346002B00F03A817F +:104EC0003B46B9681846FFF7E5FE07F1C4033A46CA +:104ED00092E8030083E80300884A07F1740392E82C +:104EE000030083E803007A6FD7F8C4309A4240F099 +:104EF0001E81FFF76CFD0346002B00F01881D7F8E8 +:104F0000C4207E4907F16C0303C983E80300396FAD +:104F10007B4B4B409A4240F00A81FFF758FD034615 +:104F2000002B00F00481754A07F1640392E8030046 +:104F300083E8030007F1540307F1640292E80300D9 +:104F400083E80300BA6D6E4B5340C7F8D4307B6DD5 +:104F5000D7F8D4209A4201D0FFF741FD0123002B5E +:104F600000F0E580654A07F15C0392E8030083E8FE +:104F7000030007F1C40207F15C0311461846FFF76E +:104F800047FD0346002B00F0D2800020FFF702FE11 +:104F9000C7F8DC00D7F8B420D7F8DC30DA60D7F8EF +:104FA000B820D7F8DC301A61BFF35F8F00BFBFF3C2 +:104FB0004F8F00BFBFF36F8F00BF0121D7F8DC0018 +:104FC000FFF71CFE3B46B9681846FFF7A1FE07F144 +:104FD000C4033A4692E8030083E80300474A07F116 +:104FE0004C0392E8030083E80300FA6CD7F8C4305E +:104FF0009A4240F09C80FFF7EAFC0346002B00F049 +:105000009680D7F8C4203D4907F1440303C983E8DB +:105010000300B96C3A4B4B409A4240F08880FFF74E +:10502000D6FC0346002B00F08280344A07F13C0393 +:1050300092E8030083E8030007F1240307F13C0230 +:1050400092E8030083E80300BA6A2D4B5340C7F887 +:10505000D0307B6AD7F8D0209A4201D0FFF7BFFC4E +:105060000123002B63D0254A07F1340392E80300A3 +:1050700083E8030007F1C40207F134031146184620 +:10508000FFF7C6FC0346002B51D0D7F8DC30DB68B5 +:10509000C7F8C430D7F8DC301B69C7F8C830D7F878 +:1050A000C420D7F8B4309A4241D1FFF790FC0346B0 +:1050B000002B3CD0D7F8B420D7F8C810104B4B4089 +:1050C0009A4234D1FFF783FC0346002B2FD007F11F +:1050D0002C0307F1C40292E8030083E803003A6B53 +:1050E000074B5340C7F8CC30FB6AD7F8CC209A4224 +:1050F00008D0FFF774FC05E0442810183428101875 +:105100003C5AC3A50123002B11D007F1B40207F1CB +:10511000C40311461846FFF77BFC0346002B06D05C +:105120000A4A07F1C40392E8030083E80300B86861 +:10513000FFF72CFE7B691A4607F1C40393E80300CE +:1051400082E803007869E037BD4680BD4C2810181E +:1051500080B485B000AF786039602D4BFB607B6810 +:105160001B6B002B05D17B68DB6A002B01D1002370 +:1051700047E07B681B6B002B03D07B68DB6A002B4E +:1051800007D07B681B6B002B06D17B68DB6A002B8A +:1051900002D001BE1E4B34E00023BB6029E07B68D7 +:1051A000DA6ABB68DB0013441A683B685B689A42A2 +:1051B0001CD17B68DA6ABB68DB0013449B881A4603 +:1051C0003B689B689A4211D17B68DA6ABB68DB0056 +:1051D00013449B79002B06D17B68DB7883F00103B5 +:1051E000DBB2002B0BD00023FB6008E0BB6801336F +:1051F000BB607B681B6BBA689A42D0D300E000BFEB +:10520000FB6818461437BD465DF8047B704700BF45 +:105210000300660980B489B000AF786039603B68EC +:10522000FB613E4B1B787B757B68BB61BB693C4A6D +:10523000934268D9BA69FB6913443A4A934262D8E7 +:10524000012365E00023FB7557E00023BB7549E0AF +:10525000FB7D354A52F833303B61BA7D13465B0023 +:1052600013449B001A463B6913441B681946BA7DD8 +:1052700013465B0013449B001A463B6913445B686A +:105280000B44FB60BA7D13465B0013449B001A4637 +:105290003B6913441B681A46BB6993421FD3BA6922 +:1052A000FB689A421BD2BA7D13465B0013449B00F5 +:1052B0001A463B6913441B7A002B01D0002327E0D8 +:1052C000BA69FB691344FA689A4206D2FA68BB6964 +:1052D000D31AFB61FB68BB6101E0012318E0BB7DD1 +:1052E0000133BB75FB7D104ADB0013441B79BA7D8B +:1052F0009A42ADD3FB7D0133FB75FA7D7B7D9A42EB +:10530000A3D3002304E000BFFB69002B9AD1002344 +:1053100018462437BD465DF8047B70473C1F1018C3 +:10532000FFFF0348FFFF07480C1F101880B582B02D +:1053300000AF786008220021786806F0ADF90023FC +:1053400018460837BD4680BD80B588B000AFF8600C +:105350007A601A460B46FB721346BB72FB68002B41 +:1053600000D101BE7B68002B00D101BEBB6A002BBF +:1053700000D101BEFB6A002B00D101BEFA7ABB7AD4 +:105380001344042B01D9574BA8E0FA68FB7ADB00E1 +:1053900019461046FFF73EFF034683F00103DBB2D8 +:1053A000002B01D0504B99E07A68BB7ADB0019469C +:1053B0001046FFF72FFF034683F00103DBB2002BFB +:1053C00001D0494B8AE00023FB6116E0FB69DB005A +:1053D000FA681A44FB69DB00B96A0B4412681A6068 +:1053E000FB69DB00FA681A44FB69DB00B96A0B440D +:1053F00052685A60FB690133FB61FB7AFA699A4291 +:10540000E4D30023BB6116E0BB69DB007A681A4471 +:10541000BB69DB00F96A0B4412681A60BB69DB00E8 +:105420007A681A44BB69DB00F96A0B4452685A6017 +:10543000BB690133BB61BB7ABA699A42E4D30023EA +:105440007B611FE07B69DB00BA6A13441B68002B99 +:1054500015D07B69DB00BA6A13441B6818467B6968 +:10546000DB00BA6A13445B681946FFF7D3FE0346B4 +:1054700083F00103DBB2002B01D01B4B2EE07B69D4 +:1054800001337B61FB7A7A699A42DBD300233B616B +:105490001FE03B69DB00FA6A13441B68002B15D040 +:1054A0003B69DB00FA6A13441B6818463B69DB0062 +:1054B000FA6A13445B681946FFF7ACFE034683F0B3 +:1054C0000103DBB2002B01D0074B07E03B6901333E +:1054D0003B61BB7A3A699A42DBD3002318462037F6 +:1054E000BD4680BD000066090300660980B588B02E +:1054F00000AFF860B9607A603B60BB68033323F0AB +:105500000303FB61FB69B42B03D8FA69BB689A42B9 +:1055100001D2124B1EE03B681A68FB69C3F1B40369 +:105520009A4201D90D4B15E03B681B68FA69134498 +:10553000BB613B681B687A6813447B61BA68F96891 +:10554000786906F0FBF9BB6A7A691A603B68BA6948 +:105550001A60002318462037BD4680BD0800660942 +:10556000B0B5D0B002AF07F59C74A4F59674206076 +:1055700007F59C70A0F598700160114607F59C72C4 +:10558000A2F59C72136007F59C73A3F231130A46CF +:105590001A7007F12003B4220021184606F07CF8A7 +:1055A00007F59C73A3F58E7300221A600023C7F8D9 +:1055B00034310023C7F8303197F8484107F59C7320 +:1055C000A3F59C7207F59C73A3F23113197807F5C4 +:1055D0009C73A3F5987007F1D403019307F1F403CA +:1055E0000093234612680068FFF7AEFEC7F8340147 +:1055F000D7F83431002B0AD1D7F8F430002B03D080 +:10560000D7F8D430002B02D1C84BC7F83431D7F8C3 +:105610003431002B0AD1D7F8F8300F2B03D9D7F843 +:10562000D830072B02D8C14BC7F83431D7F8343102 +:10563000002B0FD1D7F8F400D7F8F81007F11C04AD +:1056400007F1200207F1180300932346FFF74EFFEE +:10565000C7F83401D7F83431002B0FD1D7F8D40074 +:10566000D7F8D81007F11C0407F1200207F1140342 +:1056700000932346FFF73AFFC7F83401D7F83431D7 +:10568000002B2FD107F59C73A3F590731B68C7F807 +:105690002C31D7F82C315B68002B08D0D7F82C318F +:1056A0005B6843F080531A46D7F82C315A6007F5EF +:1056B0009C73A3F590731B68DB6803F11002D7F8A5 +:1056C000F8309A420BD107F59C73A3F592731B68CF +:1056D0005B6803F10802D7F8D8309A4202D0934BA6 +:1056E000C7F83431D7F83431002B6AD1D7F82C31D0 +:1056F0001B78012B1ED8D7F82C311B781A4607F5DA +:105700009C73A3F596731B6853F82230002B11D0BD +:10571000D7F82C315B781A46D7F82C311B7819460C +:1057200007F59C73A3F596731B6853F82130DB686B +:105730009A4203D37E4BC7F8343142E0D7F82C317C +:105740001B781A4607F59C73A3F596731B6853F8EC +:105750002230C7F81C31D7F81C319A68D7F82C31A1 +:105760005B789B0013441B68C7F81831D7F82C31BD +:105770009B781A46D7F81831934212D9D7F81C31C2 +:105780005A68D7F82C315B789B0013441A68D7F815 +:105790002C319B781946342301FB03F31344C7F8DB +:1057A0003031D7F83031002B03D1624BC7F8343198 +:1057B00007E0D7F82C11D7F83001FFF7C9FCC7F87C +:1057C0003401D7F83431002B63D107F59C73A3F56E +:1057D00090731B68DA68D7F830319B689A420AD315 +:1057E00007F59C73A3F592731B685A68D7F830319C +:1057F000DB689A4202D24D4BC7F834310123C7F817 +:10580000283119E0D7F82831DB0003F59C733B44BD +:1058100053F8402CD7F82831591ED7F830310431CD +:1058200053F821309A4202D2404BC7F83431D7F8AE +:1058300028310133C7F8283107F59C73A3F23113DF +:105840001B78D7F828219A42DCD30123C7F82431EA +:1058500019E0D7F82431DB0003F59C733B4453F87F +:10586000602CD7F82431591ED7F83031083153F85D +:1058700021309A4202D22D4BC7F83431D7F8243167 +:105880000133C7F8243197F84831D7F824219A42D8 +:10589000DFD3D7F83431002B4FD10123C7F82031A3 +:1058A0003AE0D7F82031013BD7F8302113441B7F71 +:1058B000002B2CD0D7F82031DB0003F59C733B4440 +:1058C00053F8440CD7F82031DB0003F59C733B44BC +:1058D00053F8401C07F11C0407F1200207F11003E4 +:1058E00000932346FFF702FEC7F83401D7F834319E +:1058F000002B21D107F59C73A3F594731A68D7F890 +:105900002031DB0003F59C733B4443F8442CD7F86B +:1059100020310133C7F8203107F59C73A3F231130E +:105920001B78D7F820219A42BBD306E00000660915 +:10593000040066090100660900BFD7F83431002B66 +:1059400037D1D7F830315C6807F59C73A3F59073B5 +:10595000186807F59C73A3F59273196807F59C7393 +:10596000A3F231131B78013BDDB297F84831013BBC +:10597000DBB207F1F4020832019307F1D4030833D4 +:1059800000932B46A047C7F8140107F59C73A3F5B5 +:1059900092731B68D7F814211A60D7F8D40007F562 +:1059A0009C73A3F592731B68D7F8D820194605F0AD +:1059B000C5FFD7F83431184607F59C77BD46B0BD12 +:1059C00080B582B000AF7860396005F081FF034692 +:1059D00058221A604FF0FF3318460837BD4680BD85 +:1059E00080B582B000AF786005F072FF03465822A0 +:1059F0001A6001BE4FF0FF3318460837BD4680BD20 +:105A000080B584B000AFF860B9607A6005F060FFDF +:105A1000034658221A6001BE4FF0FF331846103774 +:105A2000BD4680BD80B500AF05F052FF0346582249 +:105A30001A6001BE4FF0FF33184680BD80B582B0BA +:105A400000AF786005F044FF034658221A6001BE9B +:105A50004FF0FF3318460837BD4680BD80B582B091 +:105A600000AF7860396005F033FF034658221A60B2 +:105A700001BE4FF0FF3318460837BD4680BD000019 +:105A800080B489B000AFF860B9607A60BB68072B5A +:105A900000D901BE7B681F2B00D901BEFB6803F152 +:105AA0002D4303F5FE03DB09BB61BB6903F1A5636D +:105AB00003F580731B01FB61FB68244A934213D0FA +:105AC000FB68234A93420FD0FB68224A93420BD0D3 +:105AD000FB68214A934207D0FB68204A934203D0D7 +:105AE000FB681F4A934218D1FB681E4A934202D9B1 +:105AF0004FF4802300E000237B61FA687B69D31AAE +:105B000003F12B4303F53903DB09BB61BA69164B7B +:105B100013441A017B691344FB61FB691A68012174 +:105B2000BB6801FA03F3DB4313403B617B6803F07E +:105B30000102BB689A403B691A43FB691A6000BFC7 +:105B40002437BD465DF8047B704700BF0000475412 +:105B5000800047540001475400004B5480004B54D0 +:105B600000014B54FFFF4A540065440580B489B0DE +:105B700000AFF860B9601346FB71BB68072B00D912 +:105B800001BEFB791F2B00D901BEFB6803F12D4339 +:105B900003F5FE03DB09BB61BB6903F1A5631B01D0 +:105BA000FB61FB68324A934213D0FB68314A93424F +:105BB0000FD0FB68304A93420BD0FB682F4A9342C8 +:105BC00007D0FB682E4A934203D0FB682D4A9342CC +:105BD00018D1FB682C4A934202D94FF4802300E08D +:105BE00000237B61FA687B69D31A03F12B4303F529 +:105BF0003903DB09BB61BA69244B13441A017B6981 +:105C00001344FB61BB68032B14D8FB691A68BB689B +:105C1000DB001F2101FA03F3DB4313403B61FB79F7 +:105C200003F01F02BB68DB009A403B691A43FB6923 +:105C30001A6016E0BB68043BBB60FB695A68BB682E +:105C4000DB001F2101FA03F3DB4313403B61FB79C7 +:105C500003F01F02BB68DB009A403B691A43FB69F3 +:105C60005A6000BF2437BD465DF8047B704700BF13 +:105C700000004754800047540001475400004B5433 +:105C800080004B5400014B54FFFF4A54006444050C +:105C900080B485B000AFF860B9607A60BB68072B4C +:105CA00000D901BE7B68012B00D901BE7B68002BA7 +:105CB00005D10122BB689A40FB685A6004E00122CA +:105CC000BB689A40FB689A6000BF1437BD465DF818 +:105CD000047B704780B48BB000AFF860B9607A6025 +:105CE000BB68072B00D901BE7B680F2B02D97B68EC +:105CF000802B05D17B68012B02D07B68092B00D15A +:105D000001BEBB689B00FB61FB685A6C0F21FB69FD +:105D100001FA03F3DB431340BB61FB681A6F0F21E9 +:105D2000FB6901FA03F3DB4313407B617B68802B43 +:105D300017D10F22FB6902FA03F3DB43BA69134060 +:105D40007B620822FB6902FA03F37A6A13437B62DF +:105D50007B681A09FB6902FA03F37A6913433B6211 +:105D600010E07B6803F00F02FB6902FA03F3BA69E3 +:105D700013437B620F22FB6902FA03F3DB437A6968 +:105D800013403B62FB687A6A5A64FB683A6A1A6796 +:105D900000BF2C37BD465DF8047B704780B487B0E8 +:105DA00000AF786039603B68072B00D901BE7B6883 +:105DB0005B6C3B613B689B003A6922FA03F303F09A +:105DC0000703002B17D17B681B6FFB603B689B00B0 +:105DD000FA6822FA03F303F00F03082B02D18023A1 +:105DE0007B6110E03B689B003A6922FA03F303F001 +:105DF0000F037B6107E03B689B003A6922FA03F3DB +:105E000003F00F037B617B6918461C37BD465DF8C4 +:105E1000047B704780B487B000AFF860B9607A60E7 +:105E2000BB68072B00D901BE7B68012B00D901BEDE +:105E3000FB689A6C0121BB6801FA03F3DB43134052 +:105E40007B617B6803F00102BB689A407B691A435F +:105E5000FB689A6400BF1C37BD465DF8047B704741 +:105E600080B487B000AFF860B9607A60BB68072B78 +:105E700000D901BE7B68012B00D901BEBB689B0025 +:105E80007B61FB685A6E07217B6901FA03F3DB43F0 +:105E900013403B617B6803F007027B699A403B69D2 +:105EA0001A43FB685A6600BF1C37BD465DF8047B89 +:105EB000704780B487B000AFF860B9607A60BB68A3 +:105EC000072B00D901BE7B681F2B00D901BEBB6820 +:105ED000032B14D8FB689A6EBB68DB001F2101FA04 +:105EE00003F3DB4313407B617B6803F01F02BB6855 +:105EF000DB009A407B691A43FB689A6616E0BB6830 +:105F0000043BBB60FB68DA6EBB68DB001F2101FA53 +:105F100003F3DB4313407B617B6803F01F02BB6824 +:105F2000DB009A407B691A43FB68DA6600BF1C37C6 +:105F3000BD465DF8047B704780B487B000AFF86061 +:105F4000B9607A60BB68082B00D901BE7B68012B61 +:105F500000D901BEFB689A690121BB6801FA03F30D +:105F6000DB4313407B617B6803F00102BB689A400E +:105F70007B691A43FB689A6100BF1C37BD465DF818 +:105F8000047B704780B487B000AFF860B9607A6076 +:105F9000BB68082B00D901BE7B68002B09D07B6849 +:105FA000012B06D07B68022B03D07B68032B00D02B +:105FB00001BEBB685B007B61FB681A6C03217B69D7 +:105FC00001FA03F3DB4313403B617B6803F00302F8 +:105FD0007B699A403B691A43FB681A6400BF1C370F +:105FE000BD465DF8047B704780B588B000AFF860AF +:105FF000B9607A60114BFB61FB68002B00F02B81CC +:106000007B68002B00F02781BB68072B00D901BEFD +:106010007B681B68012B00D901BE7B685B680F2B76 +:1060200003D97B685B68802B0AD17B685B68012B96 +:1060300006D07B685B68092B03D101E001005A00A0 +:1060400001BE7B681B7A1F2B00D901BE7B68DB6811 +:10605000002B0CD07B68DB68012B08D07B68DB68E9 +:10606000022B04D07B68DB68032B00D001BE7B6869 +:106070001B69012B00D901BE7B685B69012B00D92C +:1060800001BE7B681B6A012B00D901BE7B685B6A7D +:10609000012B00D901BE7B689B6A012B00D901BE90 +:1060A0007B68DB6A002B0CD07B68DB6A012B08D095 +:1060B0007B68DB6A022B04D07B68DB6A032B00D091 +:1060C00001BE7B681B6B002B1CD07B681B6B012BFC +:1060D00018D07B681B6B022B14D07B681B6B032BC7 +:1060E00010D07B681B6B042B0CD07B681B6B052BC3 +:1060F00008D07B681B6B062B04D07B681B6B072BBF +:1061000000D001BE7B68DB691F2B00D901BE7B6814 +:106110009B6B002B1CD07B689B6B072B18D07B687C +:106120009B6B062B14D07B689B6B052B10D07B6878 +:106130009B6B032B0CD07B689B6B042B08D07B687C +:106140009B6B022B04D07B689B6B012B00D001BEA4 +:106150007B689B69072B00D901BE0022B968F868EB +:10616000FFF78EFC7B689B691A46B968F868FFF7F1 +:1061700077FE7B68DB691A46B968F868FFF799FE15 +:106180007B681B7A1A46B968F868FFF7EFFC7B68F2 +:106190005B681A46B968F868FFF79CFD7B68DB68A6 +:1061A0001A46B968F868FFF7EDFE7B681B691A4666 +:1061B000B968F868FFF7C0FE7B685B691A46B96882 +:1061C000F868FFF727FEFB681B6D23F0FF03BB6138 +:1061D0007B681B6A03F001027B685B6A5B0003F06B +:1061E00002031A437B689B6A9B0003F004031A4373 +:1061F0007B68DB6ADB0003F018031A437B681B6BC8 +:106200005B01DBB21A43BB689B0003F47E7302FAA6 +:1062100003F3BA6913437B61FB687A691A657B688B +:106220009B6B1A46B968F86800F01AF87B681B681F +:106230001A46B968F868FFF72BFD7B685B6B012B8A +:1062400000D901BE7B685B6B1A46B968F868FFF736 +:1062500017FC0023FB61FB6918462037BD4680BD53 +:1062600080B588B000AFF860B9607A60BB68072B72 +:1062700000D901BE7B68002B15D07B68072B12D09C +:106280007B68062B0FD07B68052B0CD07B68032B1B +:1062900009D07B68042B06D07B68022B03D07B6877 +:1062A000012B00D001BEB968F868FFF777FD0346FF +:1062B000802B01D000237B60BB689B00FB61FB68E7 +:1062C0005A6F0F21FB6901FA03F3DB431340BB61F3 +:1062D0007B6803F00F02FB6902FA03F3BA69134308 +:1062E0007B61FB687A695A6700BF2037BD4680BD75 +:1062F00080B483B000AF78600B46FB70FB78002B56 +:1063000008D17B68D3F8003223F480727B68C3F82D +:10631000002207E07B68D3F8003243F480727B6888 +:10632000C3F8002200BF0C37BD465DF8047B704700 +:1063300080B485B000AF78600023FB607B68224AA0 +:10634000934202D14FF08063FB607B681F4A934207 +:1063500002D14FF08063FB607B681D4A934202D1FB +:106360004FF08063FB607B681A4A934202D14FF082 +:106370008063FB607B68184A934202D14FF4A0030C +:10638000FB607B68154A934202D14FF40023FB6007 +:106390007B68134A934202D14FF40023FB607B6871 +:1063A000104A934202D14FF40023FB607B680E4AEF +:1063B000934202D14FF40023FB60FB681846143768 +:1063C000BD465DF8047B7047004045540040495489 +:1063D0000030465400304A54002064540040235298 +:1063E00000402452001021520020215280B485B078 +:1063F00000AF78600023FB6009E0FB6842F20F7297 +:10640000934201D9084B08E0FB680133FB607B68CD +:10641000D3F80C32002BF0DB002318461437BD46AE +:106420005DF8047B704700BF0200820180B48BB02E +:1064300000AFF860B9607A603B60FB68002B00D168 +:1064400001BE00237B6200233B6297F83430002BAF +:1064500001D00F2300E00123BB6197F83430002BFB +:1064600001D0042300E001237B61BB68FB6116E0DF +:106470007B69FA6902FB03F3BA6902FA03F37A6AE9 +:1064800013437B627B69FA6902FB03F33A6802FA01 +:1064900003F33A6A13433B62FB690133FB61FA6918 +:1064A0007B689A42E4D997F83430002B15D0FB680A +:1064B0003A6BC3F8102297F83830002B08D0FB68ED +:1064C000D3F818227B6ADB431A403B6A134300E08F +:1064D0003B6AFA68C2F818320EE0FB683A6BC3F800 +:1064E0000C21FB68D3F810217B6ADB431A403B6A1E +:1064F0001A43FB68C3F8102100BF2C37BD465DF876 +:10650000047B704780B594B004AFF860B9607A60DE +:106510003B6097F84C30002B01D0082300E020238B +:10652000BB62BA683B68B2FBF3F3BA6AB3FBF2F240 +:10653000B96A01FB02F29B1A7B627A683B68B2FB84 +:10654000F3F33B62BA6A7B6AD31AFB610023FB63F5 +:106550000023BB6300237B633A6AFB699A420CD831 +:106560003A6A7B6A1344013BBA6AB3FBF2F2B96A36 +:1065700001FB02F29B1AFB6318E0BB6A013BFB6361 +:10658000BB6A3A6802FB03F3BA68B2FBF3F3013368 +:106590003A6803FB02F2BB6A02FB03F3BB63FB69CD +:1065A0003A6802FB03F37A68D31A7B633B68BA6AE2 +:1065B00002FB03F3BA68B2FBF3F33B6301230293DC +:1065C00097F84C3001933B6B0093BB6CFA6B796A84 +:1065D000F868FFF72BFF3A6AFB699A4249D93B6892 +:1065E000BA6A02FB03F3BA6BB2FBF3F33B637A6B59 +:1065F0003B68B2FBF3F33B623B68BA6A02FB03F30E +:106600007A6BB2FBF3F3BB610023FB6213E0BB6A5E +:106610005A1E0023029397F84C3001933B6B009372 +:10662000BB6C0021F868FFF701FF3B6B01333B6354 +:10663000FB6A0133FB62FA6ABB699A42E7D33B6AA1 +:10664000BA6AB3FBF2F2B96A01FB02F29B1A7B61F0 +:106650007B69002B0DD07B695A1E0123029397F8AA +:106660004C3001933B6B0093BB6C0021F868FFF743 +:10667000DDFE00BF4037BD4680BD000080B58AB05A +:1066800002AFF860B9607A603B60FB68002B00D114 +:1066900001BEF868FFF74CFEF861BA687B681344E6 +:1066A000FA699A4205D37B68002B02D0FB69002B64 +:1066B00001D1344B62E0FB68D3F80C3203F00F03D6 +:1066C0000533012202FA03F3BB61BB68BA69B3FB6D +:1066D000F2F2B96901FB02F29B1A002B09D17B6827 +:1066E000BA69B3FBF2F2B96901FB02F29B1A002B03 +:1066F00001D0244B42E0F868FFF778FE0346002BF8 +:1067000001D0214B3AE03B685B78012B03D93B6811 +:106710009B78032B0CD83B685B781A463B689B78C8 +:106720005B0013437B613B681B78072B02D924E095 +:10673000144B23E03B681B781A46FB68C3F814220D +:10674000FB68D3F800321B0ADBB203F00103FB74D1 +:106750000021F868FFF7CCFD012301937B690093CA +:10676000BB697A68B968F868FFF7CCFEFB7C19460C +:10677000F868FFF7BDFD002300E0024B1846203704 +:10678000BD4680BD010082010200820180B483B059 +:1067900000AF7860002318460C37BD465DF8047BD7 +:1067A000704780B483B000AF78600B46FB70FB7815 +:1067B000002B06D17B681B6823F001027B681A60FE +:1067C00005E07B681B6843F001027B681A600023C8 +:1067D00018460C37BD465DF8047B704780B489B01D +:1067E00000AFF860B9607A603B60FB6803F5005366 +:1067F000FB61FB6803F51053BB61FB6803F5804345 +:106800007B613B681F2B59D8BB681B79002B0DD1CE +:106810003B689B00FA69134419687B68DA433B685C +:106820009B00F86903440A401A600BE03B689B0038 +:10683000FA69134419683B689B00FA6913447A6843 +:106840000A431A60BB685B79002B0DD13B689B0043 +:10685000BA69134419687B68DA433B689B00B869DE +:1068600003440A401A600BE03B689B00BA6913447A +:1068700019683B689B00BA6913447A680A431A6036 +:10688000BB685B79002B0DD13B689B007A69134490 +:1068900019687B68DA433B689B00786903440A40C7 +:1068A0001A600BE03B689B007A69134419683B68E7 +:1068B0009B007A6913447A680A431A6000BF243740 +:1068C000BD465DF8047B704780B588B000AFF860C6 +:1068D000B9607A60FB681A4A934203D1BB68B3F58A +:1068E0009F7F0DD9FB68174A934207D1BB68B3F16C +:1068F000805F03D3BB68144A934201D9134B1AE05B +:10690000FB68104A934203D1BB6823F0805300E038 +:10691000BB68FB61FB6903F01F03012202FA03F36A +:10692000BB61FB695B097B617B69BA697968F8685F +:10693000FFF754FF002318462037BD4680BD00BF37 +:106940000000025200000254A30000100100860162 +:1069500080B487B000AFF860B9607A60FB68184A0D +:10696000934203D1BB68B3F59F7F0DD9FB68154AED +:10697000934207D1BB68B3F1805F03D3BB68124A6F +:10698000934201D9114B15E0FB680E4A934203D1A3 +:10699000BB6823F0805300E0BB687B617B69B3F583 +:1069A000806F06D2FB687A6902F58062796843F8E5 +:1069B0002210002318461C37BD465DF8047B704743 +:1069C0000000025200000254A300001001008601E2 +:1069D00080B483B000AF78607B68D3F80832C3F32B +:1069E000080318460C37BD465DF8047B704780B439 +:1069F00083B000AF78607B681B689B0B03F00303D8 +:106A0000802222FA03F318460C37BD465DF8047B5A +:106A1000704790B587B000AF7860396000237B6124 +:106A20007868FFF7E4FF04467868FFF7D1FF034674 +:106A30009C420AD07B683B613B68FB603B69FA681B +:106A4000C3F8402200BF01237B617B6918461C37D5 +:106A5000BD4690BD80B483B000AF78607B681B6892 +:106A60009B0B03F00303802222FA03F318460C3732 +:106A7000BD465DF8047B704790B587B000AFF86005 +:106A8000B9607A60FB68002B02D0BB68002B01D193 +:106A9000764B38E2BB681B78002B08D0BB681B78AC +:106AA000012B04D0BB681B78022B00D001BEBB6851 +:106AB0005B7B022B18D0BB685B7B032B14D0BB68BD +:106AC0005B7B042B10D0BB685B7B052B0CD0BB68B9 +:106AD0005B7B062B08D0BB685B7B072B04D0BB68B5 +:106AE0005B7B082B00D001BEBB689B7B002B08D0D2 +:106AF000BB689B7B022B04D0BB689B7B032B00D025 +:106B000001BEBB6893F82130002B05D0BB6893F819 +:106B10002130012B00D001BEBB6893F82830002B38 +:106B200005D0BB6893F82830012B00D001BEBB68AC +:106B30001B78002B03D0BB681B78012B0ED1BB68E0 +:106B40005B68072B03D9BB685B68102B01D9012355 +:106B500000E0002303F00103DBB22DE0BB689B7F64 +:106B6000002B28D0BB685B68012B17D0BB685B6823 +:106B7000022B13D0BB685B68032B0FD0BB685B682C +:106B8000042B0BD0BB685B68052B07D0BB685B6828 +:106B9000062B03D0BB685B68072B01D1012300E003 +:106BA000002303F00103DBB283F00103DBB2002B0F +:106BB00001D0012300E00023002B00D001BEBB6800 +:106BC0009B68042B03D9BB689B68092B00D901BEC5 +:106BD000BB685B69FF2B00D901BEBB689B69FF2BBB +:106BE00000D901BEBB689B7C002B0CD0BB681B7816 +:106BF000002B07D1BB689B68092B03D1BB689B7B2B +:106C0000002B00D001BEBB689B6B23F4366323F0DE +:106C10000D03002B00D001BEBB681B6C23F4EE6398 +:106C200023F00303002B00D001BEBB681B78022BAE +:106C300009D1BB689B7F83F00103DBB2002B02D03C +:106C400000237B6103E0BB685B68013B7B61BB6841 +:106C50001B7F002B02D04FF4803200E00022BB6883 +:106C60009B68082B04D94FF4804302E00160AA001E +:106C700000231A437B6903F00F03134343F00072B0 +:106C8000FB681A60BB685C6BF868FFF7E3FE0346BD +:106C90009C4200D301BEBB68DC6BF868FFF7DAFEEC +:106CA00003469C4200D301BEBB685C6AF868FFF7EC +:106CB000D1FE03469C4200D301BEBB681B781B0675 +:106CC00003F04072FB681A64BB685B7F002B01D045 +:106CD000402200E00022BB689B7C002B02D04FF4D6 +:106CE000806300E000231343BA68127C002A02D0BC +:106CF0004FF4807200E000221343BA68527C002AED +:106D000002D04FF4007200E000221A43BB68DB6A35 +:106D1000013B1B0403F470231A43BB685B7B013BFC +:106D200003F007031A43BB689B7B1B0103F030038E +:106D30001A43FB689A64FB689B6CBA6892F830202F +:106D4000002A02D04FF0807200E000221A43FB6854 +:106D50009A64BB681B7B002B02D04FF4807200E06A +:106D60000022BB68DB7B002B03D1BB681B78022BA6 +:106D700001D1012300E00023002B02D04FF4007367 +:106D800000E000231A43BB689B68013B03F01F032C +:106D90001A43FB68C3F80023BB685B69DAB2BB68BF +:106DA0009B691B0403F47F031A43FB68C3F8102399 +:106DB000BB68DA6AFB68D3F8003303F01F030333C0 +:106DC0009A4203D3BB68DB6A102B00D901BEBB68B3 +:106DD000DB7F002B05D0BB681B78012B01D1012381 +:106DE00000E00023002B02D04FF4807200E000226C +:106DF000BB685B7B013B03F007031A43BB689B7BCB +:106E00001B0103F030031A43FB685A64BB681B7B09 +:106E1000002B02D04FF4807200E00022BB689B6818 +:106E2000013B03F01F031343BA681278012A02D111 +:106E30004FF4803200E000221A43FB68C3F80022BE +:106E4000BB685B6BDAB2FB68C3F80423BB6893F8DA +:106E50002030002B02D04FF0007200E00022BB680F +:106E600093F82130012B02D14FF0807300E0002312 +:106E70001343BA6892F82820012A02D14FF48032D5 +:106E800000E000221A43BB685B6ADBB21A43FB686E +:106E90001A65BB68DB6BDAB2FB68C3F80422BB6817 +:106EA0009A6B40F66D331340FA68C2F8C83FBB686E +:106EB0001A6C40F273731340FA68C2F8883F7B681B +:106EC000002B1FD07B6800225A607B6800221A606A +:106ED0007B6800229A607B680022DA607B6800226F +:106EE0001A627B680022DA617B680022DA627B68C2 +:106EF00000225A63BB689A7F7B6883F830207B68E6 +:106F0000034A9A63002318461C37BD4690BD00BF54 +:106F1000EFCDAB0080B485B000AF7860396000235E +:106F2000FB607B68002B03D07B68012B3AD05FE0CD +:106F30003B68092B34D801A252F823F0656F101872 +:106F40006B6F1018716F1018776F10187D6F101815 +:106F5000836F1018896F10188F6F1018956F1018A5 +:106F60009B6F10180023FB601BE00523FB6018E0FB +:106F70000423FB6015E00123FB6012E00123FB60AA +:106F80000FE00023FB600CE00023FB6009E000231E +:106F9000FB6006E00023FB6003E00123FB6000E0F0 +:106FA00000BF25E03B68052B20D801A252F823F052 +:106FB000C96F1018CF6F1018D56F1018DB6F10182D +:106FC000E16F1018E76F10180023FB600FE000233B +:106FD000FB600CE00123FB6009E00123FB6006E09D +:106FE0000023FB6003E00023FB6000E000BF00BF64 +:106FF000FB6818461437BD465DF8047B704700BF38 +:1070000080B485B000AF786039600023FB607B6896 +:10701000002B03D07B68012B3AD05FE03B68092B43 +:1070200034D801A252F823F051701018577010187C +:107030005D70101863701018697010186F70101858 +:10704000757010187B7010188170101887701018E8 +:107050000023FB601BE00423FB6018E00023FB60BF +:1070600015E00023FB6012E00023FB600FE000232B +:10707000FB600CE00023FB6009E00023FB6006E0FE +:107080000123FB6003E00023FB6000E000BF25E07C +:107090003B68052B20D801A252F823F0B5701018D8 +:1070A000BB701018C1701018C7701018CD70101870 +:1070B000D37010180023FB600FE00023FB600CE08E +:1070C0000023FB6009E00023FB6006E00023FB6077 +:1070D00003E00023FB6000E000BF00BFFB68184630 +:1070E0001437BD465DF8047B704700BF80B485B09F +:1070F00000AF786039600023FB607B68002B03D011 +:107100007B68012B3AD05FE03B68092B34D801A2A1 +:1071100052F823F03D71101843711018497110187E +:107120004F711018557110185B711018617110189B +:10713000677110186D711018737110180023FB60BF +:107140001BE00223FB6018E00023FB6015E0002336 +:10715000FB6012E00023FB600FE00023FB600CE00B +:107160000023FB6009E00123FB6006E00023FB60D5 +:1071700003E00023FB6000E000BF25E03B68052B37 +:1071800020D801A252F823F0A1711018A77110188D +:10719000AD711018B3711018B9711018BF711018B3 +:1071A0000023FB600FE00323FB600CE00023FB6087 +:1071B00009E00023FB6006E00023FB6003E00023FE +:1071C000FB6000E000BF00BFFB6818461437BD46F7 +:1071D0005DF8047B704700BF80B485B000AF786075 +:1071E00039600023FB607B68002B03D07B68012B98 +:1071F0003AD05FE03B68092B34D801A252F823F063 +:10720000297210182F721018357210183B7210184E +:1072100041721018477210184D72101853721018DE +:10722000597210185F7210180023FB601BE00123D5 +:10723000FB6018E00023FB6015E00023FB6012E018 +:107240000023FB600FE00023FB600CE00023FB60E9 +:1072500009E00023FB6006E00023FB6003E000235D +:10726000FB6000E000BF25E03B68052B20D801A2B1 +:1072700052F823F08D72101893721018997210182A +:107280009F721018A5721018AB7210180023FB60C3 +:107290000FE00023FB600CE00023FB6009E000230B +:1072A000FB6006E00023FB6003E00023FB6000E0DE +:1072B00000BF00BFFB6818461437BD465DF8047B6D +:1072C000704700BF80B586B000AFF8607A603B6061 +:1072D0000B46FB72484B7B610023FB740023BB749D +:1072E000FB681B0AFB74FB681B0CBB74BB7C012B8B +:1072F00000D901BEFB7CBA7C002A01D10A2200E041 +:1073000006229A4200D801BEFB7A002B33D1BB7C07 +:10731000FA7C11461846FFF7FDFD02467B68934252 +:1073200065D23B68FF2B62D8BB7C5B0603F1A443AC +:1073300003F580231946FB7CDA027B68134403F5CE +:10734000806351F8233023F47F413B681B029AB2DB +:10735000BB7C5B0603F1A44303F580231846FB7C4A +:107360000A43D9027B680B4403F5806340F823206D +:1073700000237B613BE0FB7A012B38D1BB7CFA7C9C +:1073800011461846FFF73CFE02467B6893422ED218 +:107390003B68B3F5803F2AD2BB7C5B0603F1A44374 +:1073A00003F580231946FB7CDA027B68134403F55E +:1073B000A06351F8233023F47F0222F47F423B681C +:1073C0001B0223F07F4323F0FF03B97C490601F140 +:1073D000A44101F580210846F97C1A43C9027B6863 +:1073E0000B4403F5A06340F8232000237B617B69F5 +:1073F00018461837BD4680BD01004A0080B586B0EA +:1074000000AFF8600B467A60FB720023FB74002328 +:10741000BB74FB681B0AFB74FB681B0CBB74BB7C56 +:10742000012B00D901BEFB7CBA7C002A01D10A22C3 +:1074300000E006229A4200D801BEFB7A012B00D957 +:1074400001BEFB7A002B1DD1BB7CFA7C114618468D +:10745000FFF760FD02467B68934200D301BEBB7C10 +:107460005B0603F1A44303F580231946FB7CDA0293 +:107470007B68134403F5806351F823301B0ADBB2A9 +:107480007B611CE0BB7CFA7C11461846FFF7B8FD17 +:1074900002467B68934200D301BEBB7C5B0603F1CE +:1074A000A44303F580231946FB7CDA027B6813446E +:1074B00003F5A06351F823301B0A9BB27B617B6903 +:1074C00018461837BD4680BD80B586B000AFF8605D +:1074D0007A603B600B46FB726E4B7B610023FB7452 +:1074E0000023BB74FB681B0AFB74FB681B0CBB749A +:1074F000BB7C012B00D901BEFB7CBA7C002A01D1E8 +:107500000A2200E006229A4200D801BEFB7A022B32 +:107510005FD1BB7CFA7C11461846FFF7E7FD0246B7 +:107520007B68934255D23B68B3F5803F51D23B6AAA +:107530001F2B4ED8BB7C5B0603F1A44303F58023CD +:107540001946FB7CDA027B68134403F5C06351F8EB +:10755000233023F47F0222F47F423B681B0223F096 +:107560007F4323F0FF03B97C490601F1A44101F5F3 +:1075700080210846F97C1A43C9027B680B4403F555 +:10758000C06340F82320BB7C5B0603F1A44303F5F2 +:1075900080231946FB7CDA027B68134403F5C06341 +:1075A00051F8233023F0F8013B6ADB00DAB2BB7CF0 +:1075B0005B0603F1A44303F580231846FB7C0A43D2 +:1075C000D9027B680B4403F5C06340F823200023F5 +:1075D0007B61FB7A032B58D1BB7CFA7C11461846A1 +:1075E000FFF7FAFD02467B6893424ED23B68B3F147 +:1075F000807F4AD23B6A1F2B47D8BB7C5B0603F1D6 +:10760000A44303F580231946FB7CDA027B6813440C +:1076100003F5E06351F82330D9B23B681A02BB7C12 +:107620005B0603F1A44303F580231846FB7C0A4361 +:10763000D9027B680B4403F5E06340F82320BB7C50 +:107640005B0603F1A44303F580231946FB7CDA02B1 +:107650007B68134403F5E06351F8233023F0F8010D +:107660003B6ADB00DAB2BB7C5B0603F1A44303F5A3 +:1076700080231846FB7C0A43D9027B680B4403F540 +:10768000E06340F8232000237B617B6918461837AC +:10769000BD4680BD01004A0080B586B000AFF860ED +:1076A0007A603B600B46FB720023FB750023BB75C1 +:1076B000FB681B0AFB75FB681B0CBB75BB7D012BB4 +:1076C00000D901BEFB7DBA7D002A01D10A2200E06B +:1076D00006229A4200D801BEFB7A022B02D0FB7A26 +:1076E000032B05D13B68002B02D03B6A002B00D155 +:1076F00001BEFB7A022B31D1BB7DFA7D11461846C3 +:10770000FFF7F4FC02467B68934200D301BEBB7DC9 +:107710005B0603F1A44303F580231946FB7DDA02DF +:107720007B68134403F5C06351F823301B0A9AB2F7 +:107730003B681A60BB7D5B0603F1A44303F580231D +:107740001946FB7DDA027B68134403F5C06351F8E8 +:107750002330DB0803F01F023B6A1A60FB7A032B1D +:1077600032D1BB7DFA7D11461846FFF735FD024642 +:107770007B68934200D301BEBB7D5B0603F1A4434B +:1077800003F580231946FB7DDA027B68134403F579 +:10779000E06351F823301B0A23F07F423B681A60F4 +:1077A000BB7D5B0603F1A44303F580231946FB7DF3 +:1077B000DA027B68134403F5E06351F82330DB08F9 +:1077C00003F01F023B6A1A6000BF1837BD4680BD38 +:1077D00090B587B000AFF8600B467A60FB72394B0A +:1077E0007B610023FB740023BB7400237B74FB6864 +:1077F0001B0AFB74FB681B0CBB74FB687B74BB7CB3 +:10780000012B00D901BEFB7CBA7C002A01D10A22DF +:1078100000E006229A4200D801BEFB7A032B4BD827 +:10782000FB7A002B09D1BB7CFA7C11461846FFF786 +:1078300071FB02467B68934226D3FB7A012B09D168 +:10784000BB7CFA7C11461846FFF7DAFB02467B68E0 +:10785000934219D3FB7A022B09D1BB7CFA7C1146E7 +:107860001846FFF743FC02467B6893420CD3FB7A31 +:10787000032B21D1BB7CFA7C11461846FFF7ACFCE8 +:1078800002467B68934217D2FB7A1B0203F44070D6 +:107890007B68DAB2BB7C5B0603F1A44303F580236B +:1078A0001C46F97C7B7C0243C9020B4403F5407300 +:1078B00044F8232000237B617B6918461C37BD46B2 +:1078C00090BD00BF01004A0080B586B000AFF860EF +:1078D0000B467A60FB723D4B7B610023FB740023F7 +:1078E000BB74FB681B0AFB74FB681B0CBB74BB7C82 +:1078F000012B00D901BEFB7CBA7C002A01D10A22EF +:1079000000E006229A4200D801BEFB7A032B57D82A +:10791000FB7A002B09D1BB7CFA7C11461846FFF795 +:10792000F9FA02467B68934226D3FB7A012B09D1F0 +:10793000BB7CFA7C11461846FFF762FB02467B6867 +:10794000934219D3FB7A022B09D1BB7CFA7C1146F6 +:107950001846FFF7CBFB02467B6893420CD3FB7AB9 +:10796000032B2DD1BB7CFA7C11461846FFF734FC63 +:1079700002467B68934223D2FB7A1B0203F44072D7 +:107980007B68DBB242EA0301BB7C5B0603F1A443E4 +:1079900003F580231846FA7C41F0034343F47F0348 +:1079A000520302441360BB7C5B0603F1A44303F55E +:1079B00080231A46FB7C5B0313441B6800237B6116 +:1079C0007B6918461837BD4680BD00BF01004A00DC +:1079D00080B586B000AFF8600B467A60FB72364B1C +:1079E0007B610023FB740023BB74FB681B0AFB74E0 +:1079F000FB681B0CBB74BB7C012B00D901BEFB7C5C +:107A0000BA7C002A01D10A2200E006229A4200D85C +:107A100001BEFB7A032B49D8FB7A002B09D1BB7C32 +:107A2000FA7C11461846FFF775FA02467B689342C6 +:107A300026D3FB7A012B09D1BB7CFA7C1146184670 +:107A4000FFF7DEFA02467B68934219D3FB7A022BDA +:107A500009D1BB7CFA7C11461846FFF747FB02466A +:107A60007B6893420CD3FB7A032B1FD1BB7CFA7C3F +:107A700011461846FFF7B0FB02467B68934215D2C9 +:107A8000FB7A1B0203F440727B68DBB21A43BB7CB7 +:107A90005B0603F1A44303F580231946FB7C42F007 +:107AA00080425B030B441A6000237B617B691846AC +:107AB0001837BD4680BD00BF01004A0080B584B0C4 +:107AC00000AFF8600B467A60FB72FB7A7A68194661 +:107AD000F868FFF77DFE034618461037BD4680BDA7 +:107AE00080B483B000AF0346FB71FB79032B00D950 +:107AF00001BE0B4B03F58053D3F8903323F4E062BF +:107B0000FB791B0203F4E0630549134301F580523E +:107B1000C2F8903300BF0C37BD465DF8047B704758 +:107B20000000405280B483B000AF0346FB71FB7984 +:107B3000052B00D901BE0B4B03F58053D3F800335E +:107B400023F00702FB7903F007030649134301F50D +:107B50008052C2F8003300BF0C37BD465DF8047B8D +:107B6000704700BF0000405280B487B000AF78601B +:107B700039601A4B7B617B681B0AFB747B68DBB244 +:107B8000FB60FB7C012B00D901BEFB68052B00D9F3 +:107B900001BE3B68FF2B1AD8FB7C29335B061A46D3 +:107BA000FB6803F580739B0113441B6823F47F4239 +:107BB0003B681B029BB2F97C293149061A43FB68DA +:107BC00003F580739B010B441A6000237B617B6982 +:107BD00018461C37BD465DF8047B704701004A001B +:107BE00080B584B000AFF860B9607A603B60FB6834 +:107BF000012B00D901BEBB68052B00D901BE3B6833 +:107C00000D2B00D901BE7B681F2B00D901BE38683F +:107C100000F094F8034683F00103DBB2002B02D09E +:107C2000386800F067F8FB6829335B061A46BB68C2 +:107C30009B01134403F5804314331A6801217B68C8 +:107C400001FA03F3DB43F968293149061A40BB689E +:107C50009B010B4403F5804314331A60FB682933FE +:107C60005B061A46BB689B01134403F5804310333F +:107C70001A6801217B6801FA03F3F9682931490682 +:107C80001A43BB689B010B4403F5804310331A6011 +:107C900000BF1037BD4680BD80B485B000AFF8602E +:107CA000B9607A60FB68012B00D901BEBB68052B67 +:107CB00000D901BE7B681F2B00D901BEFB682933A8 +:107CC0005B061A46BB689B01134403F580431033DF +:107CD0001A687B6822FA03F303F00103002B14BF38 +:107CE00001230023DBB218461437BD465DF8047B40 +:107CF0007047000080B485B000AF78600D4BFB602A +:107D00007B680D2B0FD80C4A7B6803F5926352F801 +:107D10002330094943F000427B6803F5926341F840 +:107D200023200023FB60FB6818461437BD465DF82E +:107D3000047B704701004A000000405280B485B0C7 +:107D400000AF78600023FB737B680D2B07D8074AD0 +:107D50007B6803F5926352F82330DB0FFB73FB7BE8 +:107D600018461437BD465DF8047B7047000040524A +:107D700080B485B000AF78600F4BFB607B68002B50 +:107D800012D07B680D2B0FD80C4A7B6803F59263E9 +:107D900052F82330094923F000427B6803F59263CF +:107DA00041F823200023FB60FB6818461437BD46CA +:107DB0005DF8047B704700BF01004A00000040529C +:107DC00080B485B000AF78600B46FB70114BFB6050 +:107DD0007B680D2B16D8FB780F2B13D80E4A7B68C7 +:107DE00003F5926352F8233023F00F02FB7803F07F +:107DF0000F0309491A437B6803F5926341F8232076 +:107E00000023FB60FB6818461437BD465DF8047B11 +:107E1000704700BF01004A000000405280B483B0A8 +:107E200000AF78607B680D2B00D901BE074A7B68E4 +:107E300003F5926352F82330DBB203F00F03DBB299 +:107E400018460C37BD465DF8047B70470000405271 +:107E500080B485B000AF78600B46FB70114BFB60BF +:107E60007B680D2B17D8FB780F2B14D80E4A7B6834 +:107E700003F5926352F8233023F47062FB781B02FF +:107E800003F4706308491A437B6803F5926341F871 +:107E900023200023FB60FB6818461437BD465DF8BD +:107EA000047B704701004A000000405280B483B058 +:107EB00000AF78607B680D2B00D901BE074A7B6854 +:107EC00003F5926352F823301B0A03F00F03DBB271 +:107ED00018460C37BD465DF8047B704700004052E1 +:107EE00080B586B000AF78607868FFF7DFFF0346A3 +:107EF00001337B617868FFF791FF03463B61386986 +:107F000000F066FCF8607B695A08FB681A447B69DC +:107F1000B2FBF3F318461837BD4680BD80B584B078 +:107F200000AF0346FB710023FB60FB79042B22D8D2 +:107F300001A252F823F000BF4D7F1018537F101894 +:107F40005B7F1018777F1018637F10180D4BFB6054 +:107F500012E000F06BFAF8600EE000F01BFBF86036 +:107F60000AE000F037FB0346002B01D0064B00E08F +:107F70000023FB6000E000BFFB6818461037BD46D9 +:107F800080BD00BF00127A0080F0FA0280B588B090 +:107F900000AF786039607B68002B00D101BE3B6880 +:107FA000002B00D101BE7B681B680D2B00D901BEE0 +:107FB000604BFB617B681B681846FFF791FFB86157 +:107FC0007B681B791846FFF7A9FF7861BB6907EE4C +:107FD000903AF8EE677AC7ED047A7B6907EE903A3B +:107FE000F8EE677AC7ED037A3B689B68C82B00D828 +:107FF00001BE3B685A683B689B68013B9A4200D3CC +:1080000001BE3B681B681A463B68DB68033307EE1A +:10801000903AB8EE677A97ED036AD7ED046AC6EE38 +:10802000267A67EE277AFDEEE77A17EE901A3B681C +:108030009B68CB1A9A4200DA01BE7B681B680D2B45 +:1080400073D83D4B03F58053D3F8003523F0070276 +:108050007B681B7903F007033749134301F580520E +:10806000C2F80035344A7B681B6803F5A0731B0116 +:1080700013441B681B0C1B043A681268013A92B245 +:108080002D48796809681A4301F5A0731B01034460 +:108090001A60294A7B681B6803F5A0731B0113440F +:1080A00004331B681B0C1B043A685268013A92B2F5 +:1080B0002148796809681A4301F5A0731B0103443C +:1080C00004331A601C4A7B681B6803F5A0731B010C +:1080D000134404331B6899B23B689B68013B1A0444 +:1080E00015487B681B680A4303F5A0731B01034412 +:1080F00004331A60104A7B681B681B01134403F5A4 +:10810000A05308331B681B0C1B043A68D268013A61 +:1081100092B20948796809681A430B01034403F5D0 +:10812000A05308331A600023FB61FB69184620370F +:10813000BD4680BD01004A000000405280B58CB0B1 +:1081400000AF786039607B68002B00D101BE7B688E +:108150001B680D2B00D901BE4F4BFB6207F10803D2 +:1081600000221A605A609A60DA607B681B680D2BE7 +:1081700000F28C80C823BB627B681B681846FFF73F +:10818000AFFE78627B681B791846FFF7C7FE38623E +:108190007B6A07EE903AF8EE677AC7ED077A3B6A9A +:1081A00007EE903AF8EE677AC7ED067ABB6A07EEFB +:1081B000903AB8EE677A3B6807EE903AF8EE676A55 +:1081C000B0EE006AC6EE867A77EEA77A77EE677A27 +:1081D000FCEEE77A17EE903AFB60BB6A07EE903A46 +:1081E000B8EE677A3B6807EE903AF8EE676AB0EE51 +:1081F000006AC6EE867A77EEA77A77EE277AFCEEEB +:10820000E77A17EE903A3B61BB6A07EE903AF8EED8 +:10821000676A97ED066AD7ED077A86EE277AC6EE8B +:10822000877AFCEEE77A17EE903A7B617B6903333D +:1082300007EE903AB8EE677A97ED066AD7ED076ACF +:10824000C6EE267A27EE277AD7ED067ADFED136A97 +:1082500067EEA67A37EE277A3B6807EE903AF8EE9B +:10826000676AB0EE006AC6EE867A77EEA77A77EE96 +:10827000277AFCEEE77A17EE903A0133BB6007F1FC +:10828000080319467868FFF781FEF862FB6A184612 +:108290003037BD4680BD00BF01004A0017B7D13856 +:1082A00080B483B000AF78600B46FB707B680D2B09 +:1082B00000D901BE0D4A7B6803F5A0731B0113446E +:1082C0001B6823F08042FB789B0703F0804307493B +:1082D0001A437B6803F5A0731B010B441A6000BFAF +:1082E0000C37BD465DF8047B704700BF000040526C +:1082F00080B483B000AF78607B680D2B00D901BEDD +:108300000A4A7B6803F5A0731B0113441B680749E5 +:1083100043F000427B6803F5A0731B010B441A6015 +:1083200000BF0C37BD465DF8047B7047000040522B +:1083300080B483B000AF78607B680D2B00D901BE9C +:108340000A4A7B6803F5A0731B0113441B680749A5 +:1083500023F000427B6803F5A0731B010B441A60F5 +:1083600000BF0C37BD465DF8047B704700004052EB +:1083700080B584B000AF7860144BFB60144B03F5FC +:108380008053D3F89033124A43F0080302F5805229 +:10839000C2F8903305E001200AF0DAF87B68013B6F +:1083A0007B6000F017F8034683F00103DBB2002B7B +:1083B00002D07B68002BEED17B68002B01D000231C +:1083C000FB60FB6818461037BD4680BD02004A00BE +:1083D0000000405280B400AF084B03F58053D3F83F +:1083E000943303F00403002B14BF01230023DBB2FA +:1083F0001846BD465DF8047B704700BF0000405240 +:1084000080B500AF084B03F58053D3F87033064AAC +:1084100043F0004302F58052C2F87033FA200AF0AC +:1084200097F800BF80BD00BF0000405280B400AF8D +:10843000034B1B681846BD465DF8047B704700BFC0 +:10844000287D033480B485B000AF78600023FB60E2 +:108450007B685B681F2B00D901BE7B689B680F2B74 +:1084600000D901BE184B03F58053D3F86033002BBD +:1084700001DA164BFB60FB68002B1ED17B685B6842 +:1084800003F01F027B689B681B0203F470630E49B4 +:10849000134301F58052C2F864330B4B03F540538C +:1084A0001B6A7A68127B1146074A0B4302F5405259 +:1084B00013627B681B68064A1360FB681846143712 +:1084C000BD465DF8047B70470000405203004A003F +:1084D0002C7D033480B400AF054B03F58053D3F8F3 +:1084E000683303F003031846BD465DF8047B70470C +:1084F0000000405280B584B000AF7860224BFB6032 +:108500007B68002B0CBF01230023FB721F4B03F57C +:108510008053D3F86033002B31DB1C4B03F58053C1 +:10852000D3F86033194A43F0004302F58052C2F891 +:10853000603305E001200AF00BF87B68013B7B60AB +:10854000FFF7C8FF0346032B02D07B68002BF1D155 +:10855000FB7A002B02D17B68002B02D00023FB604A +:108560000DE00A4B03F58053D3F86033074A23F03C +:10857000004302F58052C2F86033054BFB60FB6894 +:1085800018461037BD4680BD03004A000000405227 +:1085900002004A0080B500AFFFF79CFF0346032BA3 +:1085A00002D1034B1B6800E00023184680BD00BFCA +:1085B0002C7D033480B483B000AF7860044A7B68BC +:1085C000136000BF0C37BD465DF8047B704700BFE9 +:1085D0002C7D033480B400AF01231846BD465DF8FE +:1085E000047B704780B400AF00BFBD465DF8047BDC +:1085F0007047000080B485B000AF78600B467B8088 +:10860000204BFB607B88002B13D07B88012B10D084 +:108610007B88022B0DD07B88032B0AD07B8840F20D +:108620001112934205D07B8840F21312934200D07E +:1086300001BE7B68052B1DD87B88FF2B0FD97B885B +:10864000114903F01F027B68403341F823200E4A92 +:108650007B6803F59063072142F8231008E07B88CC +:10866000094903F007027B6803F5906341F8232072 +:108670000023FB60FB6818461437BD465DF8047B99 +:10868000704700BF01004A000000405280B485B02E +:1086900000AF78607B68052B00D901BE0F4A7B686C +:1086A00003F5906352F823309BB203F00703FB817C +:1086B000FB89072B0BD1094A7B68403352F82330E2 +:1086C0009BB203F01F039BB243F48073FB81FB89D1 +:1086D00018461437BD465DF8047B704700004052D1 +:1086E00080B584B000AF78607B68052B00D901BEEF +:1086F0000023FB607868FFF7C9FF034640F21312BE +:1087000093422AD0B3F58A7F56DA40F2111293428F +:1087100047D0B3F5897F4FDA032B0FDC002B4BDBFF +:10872000032B49D801A252F823F000BF7587101817 +:108730004B8710185387101845871018B3F5887F9A +:1087400022D039E01F4BFB6037E0FFF76FFEF86087 +:1087500033E0FFF71FFFF8602FE01B4B03F580535A +:10876000D3F87033002B02DA4FF4004300E000230B +:10877000FB6022E0FFF72EFF0346002B01D0134BD6 +:1087800000E00023FB6018E00F4B03F58053D3F8A3 +:108790008033002B02DA4FF4004300E00023FB603B +:1087A0000BE0FFF717FE0346002B02D04FF4004307 +:1087B00000E00023FB6000E000BFFB6818461037B4 +:1087C000BD4680BD00127A000000405280F0FA02DF +:1087D00080B584B000AF78607B68052B00D901BEFE +:1087E0007868FFF77DFFF8607B68022B09D878680E +:1087F00001F0CFF80346002B03D0786801F037F979 +:10880000F860FB6818461037BD4680BD80B483B061 +:1088100000AF78607B68012B00D901BE064A7B68F7 +:10882000B0335B0113441B68DB0FDBB218460C3717 +:10883000BD465DF8047B70470000405280B584B0AF +:1088400000AF7860164BFB607B68012B00D901BE3E +:10885000144A7B68B0335B0113441B6823F0405318 +:10886000104943F000527B68B0335B010B441A603F +:10887000012009F06DFE0B4A7B68B0335B011344A5 +:108880001B68084923F000427B68B0335B010B444E +:108890001A600023FB60FB6818461037BD4680BD98 +:1088A00001004A000000405280B584B000AF7860FB +:1088B00039603B681B6800221A613B681B68002214 +:1088C0001A753B681B6800225A753B681B680022BA +:1088D0009A753B681B680022DA753B681B680F229B +:1088E0009A613B681B6800221A623B681B68282259 +:1088F0005A623B681B6820229A623B681B682722E9 +:10890000DA623B681B6823221A633B681B682C22CF +:108910009A633B681B682422DA633B681B68272242 +:108920001A643B681B681C225A643B681B681C2243 +:10893000DA643B681B681C221A653B681B682722A7 +:108940005A653B681B6823229A650023FB607B689D +:10895000012B00D901BE7868FFF758FF0346002BB2 +:1089600002D09C4BFB602FE13B681B689B78002B7F +:1089700018D03B681B689B78102B13D83B681B688A +:108980005B78002B0ED03B681B685B78102B09D8F6 +:108990003B681B681B780F2B04D93B681B681B784E +:1089A000C82B02D98C4BFB600EE13B681B681B791E +:1089B000022B00F0F4803B681B681B781A463B686A +:1089C0001B685B781B0203F4F8531A433B681B686F +:1089D0009B781B0403F4F8131A433B681B68DB788D +:1089E000DB0603F000637D491A437B68B0335B010B +:1089F0000B441A603B681B689B6823F07F423B680E +:108A00001B681B7B1B0703F0E0431A433B681B6892 +:108A10005B7BDB0771491A437B68B0335B010B4416 +:108A200004331A603B681B681B69C3F309023B6887 +:108A30001B681B7D1B0403F4E0231A433B681B687F +:108A40005B7D1B0603F080731A433B681B689B7DAC +:108A50001B0703F080531A433B681B68DB7DDB0771 +:108A60005E491A437B685B010B4403F5B05308333E +:108A70001A603B681B689B69C3F30A023B681B686A +:108A80001B7F5B0303F400531A433B681B681B6A9C +:108A90001B0503F4401351491A437B685B010B44E7 +:108AA00003F5B0530C331A603B681B685B6A03F034 +:108AB0003F023B681B689B6ADB0103F4FC531A43CB +:108AC0003B681B68DB6A9B0303F47C231A433B6807 +:108AD0001B681B6B5B0503F0FC631A433B681B6858 +:108AE0005B6B1B0703F0E0433C491A437B685B0167 +:108AF0000B4403F5B05310331A603B681B689B6B43 +:108B000003F03F023B681B68DB6BDB0103F4FC53A3 +:108B10001A433B681B681B6C9B0303F47C231A43BA +:108B20003B681B685B6C5B0503F0FC631A433B68A6 +:108B30001B689B6C1B0703F0E04328491A437B68C2 +:108B40005B010B4403F5B05314331A603B681B6898 +:108B5000DB6C03F03F023B681B681B6DDB0103F419 +:108B6000FC531A433B681B685B6D9B0303F47C2337 +:108B70001A433B681B689B6D5B0503F0FC631A435B +:108B80003B681B68DB6D1B0703F0E04313491A4386 +:108B90007B685B010B4403F5B05318331A600F4A2E +:108BA0007B68B0335B0113441B6823F040523B6881 +:108BB0001B681B791B0703F0405308491A437B6865 +:108BC000B0335B010B441A60FB6818461037BD4692 +:108BD00080BD00BF03004A0001004A00000040526F +:108BE00080B59CB000AF786039604C4BFB667B6809 +:108BF000012B00D901BE3B681B68184660231A464A +:108C0000002102F049FD464A7B68B0335B01134402 +:108C10001B68BB663B681B68BA6ED2B21A70BB6E2B +:108C20001B0ADAB23B681B6802F01F02D2B25A700C +:108C3000BB6E1B0CDAB23B681B6802F01F02D2B29B +:108C40009A70BB6E03F000623B681B68002A14BF79 +:108C500001220022D2B2DA70BB6E1B0F03F00302B6 +:108C60003B681B68D2B21A712D4A7B68B0335B0136 +:108C7000134404331B68BB663B681B68BA6E22F062 +:108C80007F429A60BB6E03F0E0423B681B68002A9B +:108C900014BF01220022D2B21A73BA6E3B681B685D +:108CA000D20FD2B25A731E4A7B685B01134403F59C +:108CB000B05308331B68BB66BB6EDAB23B681B68F7 +:108CC0001A61BB6E1B0CDAB23B681B6802F007022C +:108CD000D2B21A75BB6E03F080723B681B68002A23 +:108CE00014BF01220022D2B25A75BB6E03F080522B +:108CF0003B681B68002A14BF01220022D2B29A7579 +:108D0000BA6E3B681B68D20FD2B2DA750023FB66DD +:108D1000FB6E18467037BD4680BD00BF01004A009B +:108D20000000405280B584B000AF786039603D4BA0 +:108D3000FB603B68002B0CBF01230023FB727B68A8 +:108D4000012B00D901BE384A7B68B0335B01134464 +:108D50001B68354943F000427B68B0335B010B442C +:108D60001A6005E0012009F0F3FB3B68013B3B6022 +:108D70002D4A7B685B01134403F5B0531C331B6819 +:108D800003F00103002B02D13B68002BEAD1FB7AF0 +:108D9000002B02D13B68002B1BD0234A7B68B033E9 +:108DA0005B0113441B6803F04053B3F1005F0DD126 +:108DB0001D4A7B68B0335B0113441B681A4943F0BA +:108DC00040527B68B0335B010B441A600023FB60A8 +:108DD00022E0154A7B68B0335B0113441B6823F023 +:108DE0004053114943F000527B68B0335B010B44A0 +:108DF0001A60012009F0ACFB0B4A7B68B0335B01C1 +:108E000013441B68084923F000427B68B0335B01C0 +:108E10000B441A60054BFB60FB6818461037BD46D3 +:108E200080BD00BF01004A000000405202004A001D +:108E30002DE9B04FC6B000AF78630023C7F81431F6 +:108E40007B6B012B00D901BE07F1A00060231A46FD +:108E5000002102F021FC07F1A003BB630023FB63A8 +:108E600007F138031946786BFFF7BAFE786BFFF706 +:108E7000CDFC0346002B05D0BB6B1B79022B01D028 +:108E8000012300E0002387F8133197F8133103F032 +:108E9000010387F81331BB6B1B78C7F80C31BB6B30 +:108EA0005B78C7F80831BB6B9B78C7F80431BB6BA4 +:108EB0009B68C7F8003197F81331002B71D0D7F8B1 +:108EC0000831002B6DD0D7F80431002B69D0786BB6 +:108ED000FFF706FCC7F81401D7F814310022BB6174 +:108EE000FA61D7F80C3100223B617A61D7E90412AC +:108EF0000B461B0A7B620B461B063B62D7F8003110 +:108F00000022BB60FA603B6AD7E9020102469C1866 +:108F10000B467A6A42EB03031D46D7E906010B466E +:108F200004FB03F2034603FB05F313440246A2FBD2 +:108F300004894B449946D7F8083100223B607A6097 +:108F4000D7F804310022BB62FA62D7E900010B4670 +:108F5000D7E90A45224602FB03F2C7E90A452B4638 +:108F600004460D46214601FB03F313442246B96A29 +:108F7000A2FB01AB5B449B4652465B4640464946DA +:108F800009F018F902460B46104619464FF0000248 +:108F90004FF00003020E42EA01220B0E1346C7F8FF +:108FA0001431D7F81431184607F58C77BD46BDE863 +:108FB000B08F000080B483B000AF78607B68002B76 +:108FC00000D001BE064A7B6860339B0113441B68D6 +:108FD000DB0FDBB218460C37BD465DF8047B7047EB +:108FE0000000405280B584B000AF7860164BFB6043 +:108FF0007B68002B00D001BE144A7B6860339B0164 +:1090000013441B6823F04053104943F000527B681F +:1090100060339B010B441A60012009F099FA0B4A56 +:109020007B6860339B0113441B68084923F00042AE +:109030007B6860339B010B441A600023FB60FB6874 +:1090400018461037BD4680BD01004A00000040525E +:1090500080B584B000AF786039600023FB607B6826 +:10906000012B00D901BE7868FFF7A4FF0346002B4F +:1090700002D0AD4BFB6052E13B685B681B78062B6E +:109080000ED93B685B681B78F92B09D83B685B6895 +:109090005B78072B04D83B685B689B78072B02D969 +:1090A000A24BFB603BE13B685B68DB78022B00F086 +:1090B00021813B685B681B781A463B685B685B787C +:1090C0001B0203F4E0631A433B685B689B781B0355 +:1090D00003F4E0431A433B685B681B79DB07944960 +:1090E0001A437B6860339B010B441A603B685B68E2 +:1090F0009B68C3F314023B685B681B7B5B0503F44E +:1091000060031A433B685B685B7B1B0603F070637C +:1091100087491A437B6860339B010B4404331A6010 +:109120003B685B689B7B1A463B685B68DB7B5B0745 +:1091300003F000537E491A437B689B010B4403F5FF +:10914000C05308331A603B685B681B7C03F01F0246 +:109150003B685B685B7C5B0103F478731A433B6894 +:109160005B689B7CDB0203F460531A433B685B68DB +:10917000DB7C1B0403F470231A433B685B681B7D94 +:109180001B0503F4E0031A433B685B685B7DDB056A +:1091900003F0F0631A433B685B689B7DDB0603F0DA +:1091A000F04363491A437B689B010B4403F5C053AA +:1091B0000C331A603B685B68DB7D03F01F023B6881 +:1091C0005B681B7E5B0103F478731A433B685B6842 +:1091D0005B7E1B0303F4805355491A437B689B0154 +:1091E0000B4403F5C05310331A603B685B689B8BDC +:1091F0001A463B685B68DB8B1B044D491A437B684E +:109200009B010B4403F5C05314331A603B685B6841 +:109210001B6AC3F312023B685B6893F824301B059A +:1092200003F480131A433B685B6893F825301B06F0 +:1092300003F080733E491A437B689B010B4403F59E +:10924000C05318331A603B685B6893F826301A469F +:109250003B685B6893F827305B0003F002031A4316 +:109260003B685B6893F828301B0403F480331A438F +:109270003B685B6893F829301B0503F480132C4985 +:109280001A437B689B010B4403F5C0531C331A60DF +:109290003B685B6893F82A3003F007023B685B6821 +:1092A00093F82B30DB0003F008031A433B685B683C +:1092B00093F82C301B0103F010031A433B685B68E2 +:1092C000DB8D19041B4B0B401A433B685B6893F81A +:1092D00030305B0703F000531A433B685B6893F838 +:1092E0003130DB0712491A437B689B010B4403F5BD +:1092F000C1531A600E4A7B6860339B0113441B689C +:1093000023F040523B685B68DB781B0703F0405357 +:1093100007491A437B6860339B010B441A60FB6862 +:1093200018461037BD4680BD03004A0001004A00C0 +:10933000000040520000FF1F80B592B000AF78607F +:109340003960A24B7B647B68002B00D001BE3B6878 +:109350005B68184634231A46002102F09DF99C4AA6 +:109360007B6860339B0113441B683B643B685B680C +:109370003A6CD2B21A703B6C1B0ADAB23B685B687B +:1093800002F00702D2B25A703B6C1B0BDAB23B6898 +:109390005B6802F00702D2B29A703B6C1B0F03F0BD +:1093A00003023B685B68D2B2DA703A6C3B685B6878 +:1093B000D20FD2B21A71864A7B6860339B01134484 +:1093C00004331B683B643B685B683A6CC2F314026D +:1093D0009A603B6C5B0D03F007023B685B68D2B29E +:1093E0001A733B6C1B0EDAB23B685B6802F00F022B +:1093F000D2B25A73764A7B689B01134403F5C0537B +:1094000008331B683B643B6C03F001023B685B68FC +:10941000002A14BF01220022D2B29A733B6C03F0DF +:1094200000523B685B68002A14BF01220022D2B2BE +:10943000DA73674A7B689B01134403F5C0530C330E +:109440001B683B643B6CDAB23B685B6802F01F024E +:10945000D2B21A743B6C5B09DAB23B685B6802F00B +:109460001F02D2B25A743B6CDB0ADAB23B685B680B +:1094700002F00702D2B29A743B6C1B0CDAB23B6862 +:109480005B6802F00F02D2B2DA743B6C1B0DDAB2E9 +:109490003B685B6802F00702D2B21A753B6CDB0DC9 +:1094A000DAB23B685B6802F00F02D2B25A753B6CCD +:1094B000DB0EDAB23B685B6802F00F02D2B29A753B +:1094C000434A7B689B01134403F5C05310331B6868 +:1094D0003B643B6CDAB23B685B6802F01F02D2B2BD +:1094E000DA753B6C5B09DAB23B685B6802F01F021D +:1094F000D2B21A763B6C03F480523B685B68002A58 +:1095000014BF01220022D2B25A76314A7B689B01F5 +:10951000134403F5C05314331B683B643B685B681A +:109520003A6C92B29A833B6C1A0C3B685B6892B2BD +:10953000DA83274A7B689B01134403F5C053183331 +:109540001B683B643B685B683A6CC2F312021A62A8 +:109550003B6C03F480123B685B68002A14BF012255 +:109560000022D2B283F824203B6C03F080723B6867 +:109570005B68002A14BF01220022D2B283F82520A2 +:10958000134A7B689B01134403F5C0531C331B68CB +:109590003B643B6C03F001023B685B68002A14BF2C +:1095A00001220022D2B283F826203B6C03F0020293 +:1095B0003B685B68002A14BF01220022D2B283F804 +:1095C00027203B6C03F4803204E000BF01004A0016 +:1095D000000040523B685B68002A14BF0122002251 +:1095E000D2B283F828203B6C03F480123B685B689E +:1095F000002A14BF01220022D2B283F82920264A71 +:109600007B689B01134403F5C1531B683B643B6CAF +:10961000DAB23B685B6802F00702D2B283F82A2014 +:109620003B6C03F008023B685B68002A14BF012210 +:109630000022D2B283F82B203B6C03F010023B686F +:109640005B68002A14BF01220022D2B283F82C20CA +:109650003B6C1B0C9AB23B685B68C2F30C0292B283 +:10966000DA853B6C03F000523B685B68002A14BF4C +:1096700001220022D2B283F830203A6C3B685B684A +:10968000D20FD2B283F8312000237B647B6C184662 +:109690004837BD4680BD00BF0000405280B584B051 +:1096A00000AF786039603D4BFB603B68002B0CBF1E +:1096B00001230023FB727B68002B00D001BE384AD7 +:1096C0007B6860339B0113441B68354943F00042BB +:1096D0007B6860339B010B441A6005E0012008F0B1 +:1096E00037FF3B68013B3B602D4A7B689B0113447D +:1096F00003F5C0531C331B6803F00103002B02D198 +:109700003B68002BEAD1FB7A002B02D13B68002B8F +:109710001BD0234A7B6860339B0113441B6803F012 +:109720004053B3F1005F0DD11D4A7B6860339B014C +:1097300013441B681A4943F040527B6860339B0115 +:109740000B441A600023FB6022E0154A7B686033FB +:109750009B0113441B6823F04053114943F000520E +:109760007B6860339B010B441A60012008F0F0FE17 +:109770000B4A7B6860339B0113441B68084923F044 +:1097800000427B6860339B010B441A60054BFB6011 +:10979000FB6818461037BD4680BD00BF01004A0077 +:1097A0000000405202004A002DE9B04FB8B000AFAF +:1097B00078650023C7F8DC307B6D002B00D001BE3C +:1097C00007F1940034231A46002101F065FF0023BD +:1097D000BB6507F19403FB6507F158031946786DE3 +:1097E000FFF7AAFD786DFFF7E5FB0346002B05D0D8 +:1097F000FB6DDB78022B01D0012300E0002387F80A +:10980000DB3097F8DB3003F0010387F8DB30FB6DCA +:109810001B780133C7F8D430FB6D5B780133C7F890 +:10982000D030FB6D9B780133C7F8CC30FB6D9B6863 +:10983000C7F8C83097F8DB30002B00F0A3807B6DB1 +:1098400002331846FEF74CFFC7F8DC00D7F8C830E3 +:10985000002B2CD1D7F8DC30D7F8D42002FB03F34F +:109860000022BB63FA63D7F8D03000223B637A63EF +:10987000D7F8CC3000229A469346D7E90C010B4624 +:109880000AFB03F2034603FB0BF313440246A2FB5D +:109890000A894B44994642464B46D7E90E0108F0E7 +:1098A00089FC02460B461346C7F8DC306AE0D7F85D +:1098B000DC300022BB62FA62D7F8D43000223B626F +:1098C0007A62D7E908120B46DB0AFB610B465B059F +:1098D000BB61D7F8C83000223B617A61D7E90689BD +:1098E0004346D7E9040102469C180B464A4642EB20 +:1098F00003031D46D7E90A010B4604FB03F20346A6 +:1099000003FB05F313440246A2FB0412FA640A4661 +:10991000BA64FA6C1344FB64D7F8D0300022BB6001 +:10992000FA60D7F8CC3000223B607A60D7E9024574 +:109930002B46D7E90089424602FB03F24B462146FB +:1099400001FB03F3134422464146A2FB01127A6451 +:109950000A463A647A6C13447B64D7E91023D7E94A +:10996000120108F027FC02460B46104619464FF03C +:1099700000024FF00003420D42EAC1224B0D134694 +:10998000C7F8DC30D7F8DC301846E037BD46BDE814 +:10999000B08F80B582B000AF78607B68022B00D9B1 +:1099A00001BE7B68012B04D87868FEF72FFF0346C1 +:1099B00005E07B68023B1846FFF7FCFA03461846B1 +:1099C0000837BD4680BD80B582B000AF78607B6847 +:1099D000022B00D901BE7B68012B04D87868FEF702 +:1099E0002DFF034605E07B68023B1846FFF7FAFAB5 +:1099F000034618460837BD4680BD80B582B000AF2B +:109A0000786039607B68022B00D901BE7B68012B2E +:109A100005D839687868FEF747FF034606E07B689B +:109A2000023B39681846FFF713FB03461846083710 +:109A3000BD4680BD80B582B000AF786039607B687C +:109A4000022B00D901BE7B68012B05D839687868E4 +:109A5000FFF768F9034606E07B68023B3968184661 +:109A6000FFF71CFE034618460837BD4680BD80B58B +:109A700082B000AF78607B68022B00D901BE7B68A2 +:109A8000012B04D87868FFF7D3F9034605E07B681B +:109A9000023B1846FFF788FE034618460837BD46C6 +:109AA00080BD0000B0B495B000AF78607B681B0A41 +:109AB000DBB2FB647B681B0CDBB2BB64BB6C002BB2 +:109AC00001D10A2200E00622FB6C9A4202D84FF034 +:109AD000FF3325E0154B07F120041D460FCD0FC4C1 +:109AE0000FCD0FC495E8030084E80300104B07F185 +:109AF00008041D460FCD0FC495E8030084E8030059 +:109B0000BB6C002B06D1FB6C9B0050333B4453F8DD +:109B1000303C05E0FB6C9B0050333B4453F8483C21 +:109B200018465437BD46B0BC704700BF54281018C3 +:109B30007C2810182DE9B04F92B002AF78610B4627 +:109B4000FA60FB740023BB6300237B637B691B0A01 +:109B5000DBB2BB637B691B0CDBB27B637B6B012BD2 +:109B600000D901BE7B6B002B01D10A2200E0062246 +:109B7000BB6B9A4200D801BE0023FB610023FB634C +:109B80004FF0FF333B637869FFF78CFF3863FB7C52 +:109B9000002B07D1B96B786BFDF7BCF90246FB6867 +:109BA000934221D3FB7C012B07D1B96B786BFDF776 +:109BB00027FA0246FB68934216D3FB7C022B07D19F +:109BC000B96B786BFDF792FA0246FB6893420BD3B0 +:109BD000FB7C032B07D1B96B786BFDF7FDFA0246CE +:109BE000FB68934200D301BE3B6BB3F1FF3F5DD0F6 +:109BF000386BFEF775F9F863FB7C012B02DC002B58 +:109C000004DA52E0023B012B4FD811E0FB7CFA68EA +:109C100019467869FDF7F2FB03460133FB61FB69E6 +:109C20005A08FB6B1A44FB69B2FBF3F3FB633DE09C +:109C30000023BB610023FB62FB6B00221C46154620 +:109C40004FF000024FF000036B0143EAD46362015E +:109C5000C7E9082307F11C02F97C07F118030093F8 +:109C60001346FA687869FDF717FDFB6901335A015D +:109C7000BB691344FB62FB6A5B080022984691466D +:109C8000D7E9082318EB020A49EB030BFB6A002211 +:109C90003B607A60D7E900235046594608F08AFABB +:109CA00002460B461346FB6300E000BFFB6B184601 +:109CB0004037BD46BDE8B08F80B485B000AF0346E5 +:109CC0000A46FB711346BB710023FB60FB79002B36 +:109CD00018D0FB79012B15D0FB79022B12D0FB7920 +:109CE000032B0FD0FB79042B0CD0FB79052B09D06B +:109CF000FB79062B06D0FB79072B03D0FB79082BC9 +:109D000000D001BEBB79002B18D0BB79012B15D038 +:109D1000BB79022B12D0BB79032B0FD0BB79042B5C +:109D20000CD0BB79052B09D0BB79062B06D0BB79AB +:109D3000072B03D0BB79082B00D001BEFB791B0198 +:109D400003F1A44303F582035B689AB2BB7922FA5C +:109D500003F303F00102FB791B0103F1A44303F5B4 +:109D600082035B681B0C99B2BB7921FA03F35B0099 +:109D700003F002031343FB60FB68022B02D0FB6875 +:109D8000032B01D10223FB60FB68DBB218461437BA +:109D9000BD465DF8047B704780B584B000AF0346D4 +:109DA0000A46FB711346BB712D4BFB60FB79002B00 +:109DB00018D0FB79012B15D0FB79022B12D0FB793F +:109DC000032B0FD0FB79042B0CD0FB79052B09D08A +:109DD000FB79062B06D0FB79072B03D0FB79082BE8 +:109DE00000D001BEBB79002B18D0BB79012B15D058 +:109DF000BB79022B12D0BB79032B0FD0BB79042B7C +:109E00000CD0BB79052B09D0BB79062B06D0BB79CA +:109E1000072B03D0BB79082B00D001BEBA79FB79A0 +:109E200011461846FFF748FF0346022B13D1FB7972 +:109E30001B0103F1A44303F582031968BB790122D6 +:109E40009A40FB791B0103F1A44303F582030A4303 +:109E50001A600023FB60FB6818461037BD4680BDC2 +:109E6000FF00420080B584B000AF03460A46FB7194 +:109E70001346BB712E4BFB60FB79002B18D0FB798E +:109E8000012B15D0FB79022B12D0FB79032B0FD0BD +:109E9000FB79042B0CD0FB79052B09D0FB79062B21 +:109EA00006D0FB79072B03D0FB79082B00D001BE2D +:109EB000BB79002B18D0BB79012B15D0BB79022BB5 +:109EC00012D0BB79032B0FD0BB79042B0CD0BB79FC +:109ED000052B09D0BB79062B06D0BB79072B03D005 +:109EE000BB79082B00D001BEBA79FB791146184620 +:109EF000FFF7E2FE0346022B15D1FB791B0103F1AC +:109F0000A44303F582031968BB79012202FA03F323 +:109F1000DA43FB791B0103F1A44303F582030A40F2 +:109F20001A600023FB60FB6818461037BD4680BDF1 +:109F3000FF00420080B582B000AF78607B68002BE4 +:109F400000D101BE786800F03AFC03461846083795 +:109F5000BD4680BD80B582B000AF78607B68002BC5 +:109F600000D101BE786800F016FC03461846083799 +:109F7000BD4680BD80B584B000AF786039600B4BC2 +:109F8000FB607B68002B00D101BE3B680A2B00D927 +:109F900001BE3B68DBB21946786800F0D3FB0023B2 +:109FA000FB60FB6818461037BD4680BD03004200C9 +:109FB00080B582B000AF0F4B7B600F4B3B6005E07C +:109FC0003B68013B3B60012008F0C2FA0B4B03F5F4 +:109FD0008053D3F8203C002B02DB3B68002BEFD1F1 +:109FE0003B68002B01D000237B607B681846083754 +:109FF000BD4680BD02004200A08601000000405224 +:10A0000080B483B000AF0346FB71FB79022B09D00B +:10A01000FB79002B06D0FB79032B03D0FB79012BB6 +:10A0200000D001BE0A4B03F58053D3F8143C23F053 +:10A030000302FB7903F003030549134301F5805242 +:10A04000C2F8143C00BF0C37BD465DF8047B704776 +:10A050000000405280B400AF064B03F58053D3F8A4 +:10A06000143CDBB203F00303DBB21846BD465DF8D7 +:10A07000047B70470000405280B582B000AF0346B9 +:10A08000FB710D4B03F58053D3F8283C23F00103FB +:10A09000FA79002A01D0012200E000220649134388 +:10A0A00001F58052C2F8283C00F0B2F80346184689 +:10A0B0000837BD4680BD00BF0000405280B500AFEC +:10A0C000012000F06DF800BF80BD000080B500AF3A +:10A0D00000F074F803461A46014B1A6000BF80BDB9 +:10A0E000EC75033480B584B000AF0346FB71264B9A +:10A0F000FB60FB79062B2CD0062B3DDC012B02D01C +:10A10000052B13D038E005212048FFF733FF02214B +:10A110001F48FFF72FFF02211E48FFF72BFF0521E5 +:10A120001D48FFF727FF0023FB6028E002211748A6 +:10A13000FFF720FF02211648FFF71CFF02211548F8 +:10A14000FFF718FF00211448FFF714FF0023FB60FE +:10A1500015E000210D48FFF70DFF00210C48FFF727 +:10A1600009FF00210B48FFF705FF00210A48FFF710 +:10A1700001FF0023FB6002E0084BFB6000BFFB68AF +:10A1800018461037BD4680BDFF0042000010415206 +:10A1900000002252001022520050225201004200C0 +:10A1A00080B582B000AF0346FB71FB791846FFF71C +:10A1B00099FF034618460837BD4680BD80B582B07A +:10A1C00000AF0123FB711148FFF7B4FE03463B606B +:10A1D0003B68052B09D03B68052B0FD83B68002B4B +:10A1E00009D03B68022B03D008E00123FB7108E093 +:10A1F0000523FB7105E00623FB7102E00023FB71E0 +:10A2000000BFFB7918460837BD4680BD001041529B +:10A2100080B582B000AF104B7B60104B3B6005E017 +:10A220003B68013B3B60012008F092F90C4B03F5C1 +:10A230008053D3F8203C03F00103002B02D13B688C +:10A24000002BEDD13B68002B01D000237B607B68A5 +:10A2500018460837BD4680BD02004200A0860100B6 +:10A260000000405280B586B000AF03460A46FB713D +:10A270001346BB71FB79002B15D0FB79012B12D053 +:10A28000FB79052B0FD0FB79062B0CD0FB79032B28 +:10A2900009D0FB79042B06D0FB79072B03D0FB797F +:10A2A000022B00D001BEBB79012B09D0BB79022B58 +:10A2B00006D0BB79042B03D0BB79082B00D001BE9C +:10A2C00000237B61FB793E4A52F823303B61BB7926 +:10A2D000042B1FD0BB79012B3AD11BE0BA793B6923 +:10A2E0009B681340002B12D13B69DB681B68BB6085 +:10A2F0003B69DB685B68FB603B691B68B97907F108 +:10A3000008021046984778612E4A3B6913603B6902 +:10A310005B693B613B69002B06D07B692A4A93420B +:10A32000DCD1BB79012BD9D1BB79012B42D17B691F +:10A33000254A934206D1FB79224A1268234941F803 +:10A34000232037E0FB79214A002142F8231031E035 +:10A35000BB79022B08D002E03B695B693B613B693A +:10A360005B69002BF8D122E0164B1B683B613B690F +:10A37000002B1CD03B691B693B6118E0BA793B6933 +:10A380009B681340002B0FD13B69DB681B68BB60E7 +:10A390003B69DB685B68FB603B691B68B97907F167 +:10A3A00008021046984778613B691B693B613B692D +:10A3B000002BE3D17B6918461837BD4680BD00BF2E +:10A3C000307D0334707D0334FF004200507D033440 +:10A3D00080B500AFFFF73EFE0346002B0CBF012304 +:10A3E0000023DBB2184680BD80B500AFFFF732FE18 +:10A3F0000346012B0CBF01230023DBB2184680BDAE +:10A4000080B483B000AF03463960FB710549FB7926 +:10A410003A6841F8232000BF0C37BD465DF8047B45 +:10A42000704700BF0040405280B582B000AF0023AB +:10A430007B6040F206610220FFF7E2FF40F2066116 +:10A440000320FFF7DDFF40F206610420FFF7D8FF8D +:10A4500040F206610520FFF7D3FF40F23F210620BE +:10A46000FFF7CEFF40F23F210720FFF7C9FF40F280 +:10A4700007610420FFF7C4FF40F207610520FFF7E2 +:10A48000BFFF40F20F610420FFF7BAFF40F20F61F7 +:10A490000520FFF7B5FF40F20F210420FFF7B0FFC2 +:10A4A00040F20F210520FFF7ABFF0220FFF7A8FDC8 +:10A4B000FFF77EFD0346002B02D0274B7B6045E073 +:10A4C00040F243310020FFF79BFF40F2433101206F +:10A4D000FFF796FF40F206210220FFF791FF40F2BE +:10A4E00006210320FFF78CFF3F210620FFF788FF9E +:10A4F0003F210720FFF784FF0A210820FFF780FF94 +:10A5000040F242310020FFF77BFF40F24231012050 +:10A51000FFF776FF40F202210220FFF771FF40F2C1 +:10A5200002210320FFF76CFF40F20B210420FFF70C +:10A5300067FF40F20B210520FFF762FF1B21062079 +:10A54000FFF75EFF1B210720FFF75AFF7B681846C5 +:10A550000837BD4680BD00BFFF00420080B582B015 +:10A5600000AF00237B6040F207610220FFF748FF45 +:10A5700040F207610320FFF743FF40F20761042028 +:10A58000FFF73EFF40F207610520FFF739FF40F279 +:10A590003D610620FFF734FF40F23D610720FFF7E1 +:10A5A0002FFF0F210820FFF72BFF40F2066102204A +:10A5B000FFF726FF40F206610320FFF721FF40F27C +:10A5C00006610420FFF71CFF40F206610520FFF73B +:10A5D00017FF40F22D610620FFF712FF40F22D61B8 +:10A5E0000720FFF70DFF0B210820FFF709FF40F2BE +:10A5F00004610220FFF704FF40F204610320FFF72B +:10A60000FFFE40F204610420FFF7FAFE40F204610D +:10A610000520FFF7F5FE0020FFF7F2FCFFF7C8FC6E +:10A620000346002B02D00E4B7B6013E00020FFF7A7 +:10A6300023FD78607B68002B02D0094B7B6009E02A +:10A6400040F22D210620FFF7DBFE40F22D210720EE +:10A65000FFF7D6FE7B6818460837BD4680BD00BFB1 +:10A66000FF00420080B584B000AF0723BB60002329 +:10A67000FB60224ABB6852F82330002B04D0012132 +:10A680000720FFF7EFFDF860FB68002B2BD107F0E8 +:10A6900053FF7860194ABB6852F82330002B03D06F +:10A6A00004210720FFF7DEFDFFF792FE0346002B93 +:10A6B00002D0FFF7B9FE08E0FFF796FE0346002B35 +:10A6C00003D0FFF74BFFFFF7AFFE786807F04CFFB2 +:10A6D0000A4ABB6852F82330002B0AD00821072011 +:10A6E000FFF7C0FD05E002210720FFF7BBFD044B8B +:10A6F000FB60FB6818461037BD4680BD307D0334D3 +:10A70000FF00420080B400AF0D4B03F540431B68CF +:10A7100023F040430A4A43F0804302F5404213606D +:10A72000074B03F540431B68054A43F0004302F51D +:10A730004042136000BFBD465DF8047B704700BF18 +:10A740000000405280B485B000AF78600B46FB70CB +:10A750007B68002B00D101BEFB780A2B00D901BE1B +:10A760007B681B6823F00F03FB60FA78FB681343D8 +:10A7700043F480727B681A6000E000BF7B689B68CE +:10A7800003F48073002BF8D000BF00BF1437BD4620 +:10A790005DF8047B704780B483B000AF78607B685D +:10A7A000002B00D101BE7B689B68DBB203F00F0376 +:10A7B000DBB218460C37BD465DF8047B704780B4A9 +:10A7C00083B000AF78607B68002B00D101BE7B684E +:10A7D0001B68DBB203F00F03DBB218460C37BD4633 +:10A7E0005DF8047B704780B586B000AF78600023C9 +:10A7F0007B617B68002B00D101BE7B681B79FB74F9 +:10A800007B689B68FB607B681B68BB60FB7CFA68AD +:10A810001946B868FFF78EF978617B6918461837D2 +:10A82000BD4680BDB0B594B002AFF860B9607A6043 +:10A83000FB68002B00D101BEBB68002B00D101BE1C +:10A84000FB681B7987F82F30FB689B68BB62FB684D +:10A850001B687B62F86800F0DFF838623B6A002B07 +:10A8600000D101BE3A6ABB68B2FBF3F3FB6100237F +:10A870007B64386A07F0DCF804460D46F86907F097 +:10A88000D7F802460B462046294607F075FA0246DD +:10A890000B46C7E90E2397F82F30012B50D9D7E983 +:10A8A0000E23C7E90C234FF000024FF00003C7E965 +:10A8B000042336E0F86907F0BBF804460D467B6CCC +:10A8C0000133184607F0B4F84FF000023C4B07F094 +:10A8D00053FA02460B462046294606F06DFF024613 +:10A8E0000B46C7E90423386A07F0A2F8D7E9042326 +:10A8F00007F042FA02460B46C7E90C23B86807F096 +:10A9000097F802460B46D7E90C0107F09BFB03467C +:10A91000002B06D07B6C01337B64D7E90C23C7E99D +:10A920000E23B86807F084F802460B46D7E90C01FD +:10A9300007F088FB0346002B02D07B6C1E2BB9D995 +:10A94000D7E90E0107F0C6FB03461A46B968012095 +:10A9500000F0A6F90346002BB8BF5B421A467B689D +:10A96000934201D2174B26E0FB69013BFB6197F84C +:10A970002F30BA6A1946786AFDF72AF897F82F300F +:10A98000012B07D897F82F10FB69BA6A786AFCF791 +:10A9900099FC08E097F82F107B6C0093FB69BA6A6A +:10A9A000786AFCF791FD97F82F30BA6A1946786AF1 +:10A9B000FCF78AFF002318464837BD46B0BD00BFEC +:10A9C000000040400002020480B586B000AF78600D +:10A9D0000B46FB707B68002B00D101BE7B681B79A6 +:10A9E000FB757B689B683B617B681B68FB60FB7841 +:10A9F000002B06D0FB7D3A691946F868FCF764FF26 +:10AA000005E0FB7D3A691946F868FCF7E1FF002391 +:10AA100018461837BD4680BD80B584B000AF786059 +:10AA20007B68002B00D101BE7B681B68FB60F86867 +:10AA3000FFF738F803461846FDF752FAB860BB68CE +:10AA400018461037BD4680BD80B582B000AF786033 +:10AA50007B681B681846FDF743FA0346184608371B +:10AA6000BD4680BD80B485B000AFF860B9607A6043 +:10AA7000034B18461437BD465DF8047B704700BF92 +:10AA80000102020480B582B000AF78600B46FB7013 +:10AA9000FB78002B06D07B681B681846FDF72AF967 +:10AAA000034605E07B681B681846FDF761F903461D +:10AAB00018460837BD4680BD80B584B000AF7860C9 +:10AAC000786800F009F8F860FB68002B00D001BE40 +:10AAD00000BF1037BD4680BD80B582B000AF786042 +:10AAE000786807F045FD002318460837BD4680BD4D +:10AAF00080B483B000AF78607B68D3F80832C3F3CA +:10AB0000080318460C37BD465DF8047B704780B4D7 +:10AB100083B000AF78607B68D3F80832DB0B03F0BA +:10AB2000010318460C37BD465DF8047B704790B5AD +:10AB300083B000AF78607868FFF7DAFF0446786882 +:10AB4000FFF7E5FF03462344002B0CBF012300233E +:10AB5000DBB218460C37BD4690BD80B584B000AF5F +:10AB6000F860B9607A603B60FB68002B00D101BEE1 +:10AB7000BB68002B00D101BE7B68002B00D101BE59 +:10AB8000BB681B68002B00D101BE38220021F86889 +:10AB900000F082FDBB681A68FB681A603B68002BF6 +:10ABA00002D1BB685B6800E03B68FA689360FB68B1 +:10ABB0007A685A60BB681B7AFF2B09D0BB681B7A86 +:10ABC000DB0103F1A54303F58033FA68936102E0EA +:10ABD000FB6800229A61BB685A7AFB681A77BB68E7 +:10ABE0009A7AFB6883F82020BB68DB7AFF2B09D0B8 +:10ABF000BB68DB7ADB0103F1A54303F58033FA6818 +:10AC0000536202E0FB6800225A62BB681A7BFB6851 +:10AC100083F82820FB6800225A6100231846103769 +:10AC2000BD4680BD80B582B000AF78607B68002BE8 +:10AC300000D101BE7B681B68002B00D101BE7B6880 +:10AC40005B68002B00D101BE7B681B6B002B0AD018 +:10AC50007B681B6B184600F08DF8034683F00103F8 +:10AC6000DBB2002B11D17B685B681B6803F001032A +:10AC7000002B0AD17B681B681846FFF758FF034674 +:10AC800083F00103DBB2002B01D0012300E000239D +:10AC900003F00103DBB218460837BD4680BD000053 +:10ACA0002DE9B04F8EB000AF03463963FA6287F8E2 +:10ACB000373097F83730022B15D0022B51DC002BA0 +:10ACC00002D0012B04D04CE03A6BFB6AD31A4AE065 +:10ACD0003A6BFB6AD31A264A02FB03F31A463B6B14 +:10ACE00092FBF3F33FE03B6B00223B627A62FB6A2C +:10ACF0000022BB61FA613B6AD7E906010246B3EB69 +:10AD000002087B6A0A4663EB020942464B469118E9 +:10AD100039605B417B60D7E9002312EB080443EB09 +:10AD200009054FF000024FF000036B0143EAD463C2 +:10AD3000620114EB020A45EB030B1AEB08033B61BB +:10AD40004BEB09037B613B6B0022BB60FA60D7E9E8 +:10AD50000223D7E9040107F0DDF902460B4613464A +:10AD600001E001BE002318463837BD46BDE8B08F6C +:10AD700040420F0080B483B000AF78607B68002B46 +:10AD800000D101BE7B689B6D002B05D17B685B6D9C +:10AD9000002B01D1012300E0002303F00103DBB20B +:10ADA00018460C37BD465DF8047B704780B485B00B +:10ADB00000AF78607B68FB60FB68D3F840331846CF +:10ADC0001437BD465DF8047B704780B582B000AF94 +:10ADD0007860396039687868FBF71BFE03461846CF +:10ADE0000837BD4680BD000080B586B000AFF86072 +:10ADF000B9607A60FB681B681846FFF7D7FF786177 +:10AE00007B683B6114E07B68002B0BD03B69002B17 +:10AE100006D00120FFF760FE3B69013B3B6101E08A +:10AE20000A4B0EE0FB681B681846FFF7BFFF78610E +:10AE30007B69B3F1FF3FE6D07B69DAB2BB681A7079 +:10AE4000002318461837BD4680BD00BF0016020417 +:10AE500080B584B000AF786039600023FB6006E005 +:10AE60007B681B6839681846FFF7AFFFF860FB681E +:10AE7000002BF5D0002318461037BD4680BD80B4A6 +:10AE800000AF00231846BD465DF8047B704780B4D0 +:10AE900000AF00BFBD465DF8047B704780B400AFD3 +:10AEA00000BFBD465DF8047B7047000080B582B0EE +:10AEB00000AF7860084B1B68002B00D101BE064B29 +:10AEC0001B68002279681846FFF78EFF0346184674 +:10AED0000837BD4680BD00BF747D033480B582B0A5 +:10AEE00000AF0346FB71084B1B68002B00D101BE6D +:10AEF000054B1B68FA7911461846FFF7A9FF034670 +:10AF000018460837BD4680BD747D033480B586B0D1 +:10AF100000AFF860B9607A6000237B61BB68002BEA +:10AF20001ED000233B61FFF7B2FF11E03B69002B0D +:10AF300005D1BB681B781846FFF7D0FF38613B6925 +:10AF4000002B0AD1BB680133BB607B6901337B6195 +:10AF50007A697B689A42E9DB00E000BFFFF79EFF59 +:10AF60007B6918461837BD4680BD80B586B000AFF6 +:10AF7000F860B9607A6000237B61BB68002B1BD04E +:10AF8000B868FFF793FF38613B69002B0DD17B69EF +:10AF900001337B61BB681B780A2B0DD0BB681B7823 +:10AFA0000D2B09D0BB680133BB603B69002B03D17B +:10AFB0007A697B689A42E3DB7B6918461837BD469D +:10AFC00080BD000080B582B000AF78607B68002B48 +:10AFD00000D101BE044A7B681360FFF750FF0346AF +:10AFE00018460837BD4680BD747D033480B500AF78 +:10AFF000064B1B68002B00D101BE044B1B68184692 +:10B00000FFF710FE0346184680BD00BF747D033471 +:10B0100080B483B000AF78607B681B6823F0004287 +:10B020007B681A6000BF0C37BD465DF8047B704733 +:10B0300080B400AF72B600BF01BE00BFFDE70000E4 +:10B0400080B582B000AF786039603B68002B10D0CB +:10B050000A4800F06DFA7968094800F069FA3B681F +:10B060001946084800F064FA044800F061FA00BF8D +:10B07000FDE700BF0837BD4680BD00BFB4281018EB +:10B08000F02810180029101880B586B004AF1D48AC +:10B09000FFF7BEFF1C4B18681B4B59681B4B42F255 +:10B0A000107207F039FA786079681948FFF7C8FF1D +:10B0B000154B1868174B5B681B681978154B5B6854 +:10B0C0001B681B7A1A4607F057FA0F4B1B680F498B +:10B0D000184607F02DFA0C4B1A680B4B5B6C0D49A8 +:10B0E00002910D4901910D49009104210C4807F08E +:10B0F00037FA786079680B48FFF7A2FF00BF08377E +:10B10000BD4680BD00004A54100D1018A07D0334C8 +:10B1100014291018A4750334DC7D0334987D03349E +:10B12000787D03342829101890B59BB000AFF9F74B +:10B1300083FA78667B6E002B00D001BE62B600BF3A +:10B140000123002204210120FCF74AFD01230222F1 +:10B1500001210120FCF744FD7B6E002B00D001BED5 +:10B16000F8F72AFF78667B6E002B00D001BE00F056 +:10B17000A3F8384800F0DCF9374800F03BFA374BC9 +:10B1800007F148040FCB84E80F003B1D4422002147 +:10B19000184600F081FA01233B7101237B7107F10E +:10B1A000080407F148030FCB84E80F003B1D194644 +:10B1B0002B4807F0C5F92B4800F01CFAFFF764FF95 +:10B1C000796E2948FFF73CFF0121284807F0A8F9CC +:10B1D0007866796E2648FFF733FF0121234807F090 +:10B1E00097F97866796E2348FFF72AFF224800F026 +:10B1F00001FA224800F0FEF900BFFFF7F7FE034610 +:10B20000002BFAD1F8F7CEFF78667B6E002B01D0C9 +:10B21000FFF70EFFF8F7DAFF78667B6E002B01D0A0 +:10B22000FFF706FF164B1B683B663B6EBB65BB6DAD +:10B2300083F3888800BF134B1B68FB65FB6D1C46BE +:10B2400064086400204621462246234606F092FA0E +:10B2500000BFFDE74429101850291018882A10183B +:10B260000000495498291018B0291018787D03342B +:10B27000CC291018F4291018202A1018382A101870 +:10B28000000434600404346080B483B000AF78609C +:10B290007B681B6843F000427B681A6000BF0C3774 +:10B2A000BD465DF8047B704780B400AF72B600BF46 +:10B2B00001BE00BFFDE7000080B582B000AF0023F3 +:10B2C0007B60134A13491448FBF7D6FB78607B6810 +:10B2D000002B01D0FFF7E8FF0F48FFF7D5FF002351 +:10B2E0000B4A0E490E48FFF738FC78607B68002B4C +:10B2F00001D0FFF7D9FF0A48FFF764FE78607B684A +:10B30000002B01D0FFF7D0FF00BF0837BD4680BD3E +:10B310002C7E0334780C101800009A52D00C1018B0 +:10B32000687E0334062008B500F03AFA012007F0E1 +:10B33000EBF800BF08B50021044600F0ADFB034B5D +:10B340001B6803B19847204607F0DEF8D87F033426 +:10B35000024A0349034800F0C9B800BFF07503343E +:10B3600095E01018007603340C4B4168994210B5F3 +:10B37000044601D002F08EFEA168094B994202D02A +:10B38000204602F087FEE168064B994204D0204631 +:10B39000BDE8104002F07EBE10BD00BFA07E0334A9 +:10B3A000087F0334707F03342DE9F843314A0025C8 +:10B3B000314C04233149DFF8D89004F15C00DFF808 +:10B3C000D4802F4F2F4E11602946082225606566D4 +:10B3D000C4E90335C4E90155C4E9055500F05CF939 +:10B3E00004F15800E662C4E90749C4E9098700F09E +:10B3F0009DFA254B2946082204F1C400636725679E +:10B40000C4F8CC50C4F88050C4E91A55C4E91E559C +:10B4100000F042F904F1680304F1C000C4F884307C +:10B42000C4E92298C4E9247600F080FA174B294633 +:10B4300004F596700822C4F8DC30C4F8D850C4F87B +:10B440003451C4F8E850C4E93455C4E9385500F023 +:10B4500023F904F1D00304F59470C4F8F090C4F813 +:10B46000FC60C4F8EC30C4E93D87BDE8F84300F067 +:10B470005DBA00BFD87F0334A07E033451B31018E7 +:10B4800069B6101891B610180900010012000200E8 +:10B4900005B6101829B6101810B504460A4800F071 +:10B4A00049FA636B23B9094B094A1B68626323B1EC +:10B4B0000548BDE8104000F03FBAFFF775FF0248AD +:10B4C000BDE8104000F038BAE87F0334D87F033479 +:10B4D00069B31018014800F02DBA00BFE87F0334AB +:10B4E000014800F029BA00BFE87F03342DE9F84392 +:10B4F0004FF00009074688461646D6E90154013D3B +:10B500000FD4A389012B08D9B4F90E30214638464F +:10B51000013302D0C04749EA0009013D68346B1C81 +:10B52000EFD13668002EE8D14846BDE8F88300BF69 +:10B530000FB4084900B583B0086804AB816853F8BC +:10B54000042B019300F01CFF03B05DF804EB04B082 +:10B55000704700BFFC75033430B5054689B0084616 +:10B560000C4600F061FA224B01220494069304ABCE +:10B5700081180792019302226B6BAC680590CDE9AC +:10B5800002216BB3636EB4F90C20D80701D4910586 +:10B590001FD5900405D442F4005223F40053A28135 +:10B5A0006366990420D401AA2146284602F098FE39 +:10B5B000636EC8B90A25DA0702D4A3899B0502D5B0 +:10B5C000284609B030BDA06D00F0B6F9284609B094 +:10B5D00030BDA06D00F0AEF9B4F90C20636ED8E771 +:10B5E0002846FFF759FFCDE74FF0FF35E3E700BFEF +:10B5F000982A1018024B01461868FFF7ADBF00BF2C +:10B60000FC75033410B50C46B1F90E1000F01CF9AE +:10B61000002803DB236D0344236510BDA38923F4B5 +:10B620008053A38110BD00BF2DE9F0410C46B1F954 +:10B630000C101F460546CB0516460BD421F480514D +:10B640003B4632462846A181B4F90E10BDE8F041D0 +:10B6500000F028B9B4F90E100223002200F0DEF841 +:10B66000B4F90C10EAE700BF10B50C46B1F90E10A2 +:10B6700000F0D4F8421CB4F90C3004D043F48053E9 +:10B680002065A38110BD23F48053A38110BD00BFAA +:10B69000B1F90E1000F0B0B870B5860747D0541E4F +:10B6A000002A3ED0CAB2034601E0013C39D303F878 +:10B6B000012B9D07F9D1032C2CD9CDB20F2C05EB12 +:10B6C000052505EB054535D9A4F1100C03F1100E45 +:10B6D0001A462CF00F064FEA1C1CB644C2E900556E +:10B6E000C2E9025510327245F8D10CF1010214F092 +:10B6F0000C0F04F00F0C03EB021213D0ACF1040397 +:10B7000023F003030433134442F8045B9342FBD158 +:10B710000CF003042CB1C9B21C4403F8011BA34272 +:10B72000FBD170BD64461346002CF4D1F9E7034603 +:10B730001446C0E71A46A446E0E700BF40EA01030A +:10B740009B0730B501D1032A17D8844601F1FF3E8B +:10B7500007E01EF8011F541E03F8011B29B1224601 +:10B760009C466346002AF4D130BD002CFCD09444A2 +:10B7700003F8011B6345FBD130BD0C4684462568A8 +:10B7800021460434A5F1013323EA050313F0803F79 +:10B79000DCD1043A4CF8045B032AF0D82146D5E703 +:10B7A00038B51F28134B1D681ED8D5F8382104461C +:10B7B00062B152F820304BB1012B05D0591C0FD08B +:10B7C000002142F820109847002038BD284600F09C +:10B7D00067F8224601462846BDE8384000F04AB8DE +:10B7E000162301202B6038BD16234FF0FF302B604D +:10B7F00038BD00BFFC75033438B50022064D044641 +:10B8000008462A60FAF7ECF8431C00D038BD2B68D4 +:10B81000002BFBD0236038BDDC7F033438B50C46E9 +:10B8200084461146074D1A460023204664462B6085 +:10B83000FAF7E6F8431C00D038BD2B68002BFBD08C +:10B84000236038BDDC7F033438B50C46844611468E +:10B85000074D1A460023204664462B60FFF785FB00 +:10B86000431C00D038BD2B68002BFBD0236038BDB3 +:10B87000DC7F033470B50C460346084D0026204695 +:10B8800011461C462E60FAF7E9F8431C00D070BD43 +:10B890002B68002BFBD0236070BD00BFDC7F03341E +:10B8A000FAF7C0B838B50C4684461146074D1A461B +:10B8B0000023204664462B60FFF728FB431C00D082 +:10B8C00038BD2B68002BFBD0236038BDDC7F0334F0 +:10B8D000014B1868704700BFFC7503340F4B70B5FF +:10B8E0000F4DAB42A3EB050607D0B6100024013480 +:10B8F00055F8043B9847A642F9D80A4DF5F780F968 +:10B90000094B5E1BAB424FEAA60606D00024013469 +:10B9100055F8043B9847A642F9D870BD180C10188A +:10B92000180C1018180C1018200C1018704700BFB5 +:10B93000704700BF704700BF704700BF844641EAB0 +:10B94000000313F0030349D1403A23D30B6803608B +:10B950004B6843608B688360CB68C3600B6903618D +:10B960004B6943618B698361CB69C3610B6A036275 +:10B970004B6A43628B6A8362CB6AC3620B6B03635D +:10B980004B6B43638B6B8363CB6BC3634030403142 +:10B99000403ADBD230320BD30B6803604B68436014 +:10B9A0008B688360CB68C36010301031103AF3D2DB +:10B9B0000C3205D351F8043B40F8043B043AF9D269 +:10B9C000043208D0D2071CBF11F8013B00F8013B3C +:10B9D00001D30B8803806046704700BF082A13D349 +:10B9E0008B07B1D010F00303AED0C3F10403D21A19 +:10B9F000DB071CBF11F8013B00F8013BA4D331F871 +:10BA0000023B20F8023B9FE7043AD9D3013A11F8F0 +:10BA1000013B00F8013BF9D20B7803704B7843707F +:10BA20008B7883706046704720F0030110F00300AC +:10BA3000C0F1000051F8043B00F1040C4FEACC0CBB +:10BA40006FF000021CBF22FA0CF213434FF0010CFE +:10BA50004CEA0C2C4CEA0C4CA3EB0C0222EA03023D +:10BA600012EACC1204BF51F8043B0430F4D0C2F106 +:10BA7000000102EA0102B2FA82F2C2F11F0200EBF7 +:10BA8000D2007047024B13B1024800F063B8704710 +:10BA900000000000DDE710182C4B2DE9F04F824626 +:10BAA00083B02B4F8B461868CDF804A0FFF742FFF8 +:10BAB0003E6846B34FF000094FF001087468651EF8 +:10BAC00021D4013406EB8404BBF1000F22D173684A +:10BAD0002268013BAB420CBF7560C4F8009072B1A4 +:10BAE00008FA05F3D6F88811D6F804A00B421AD14B +:10BAF000904773683A68534521D1B2421FD1013D46 +:10BB0000043C6B1CE0D1114B186803B0BDE8F04F4A +:10BB1000FFF712BFD4F800315B45D8D0013D043C9B +:10BB20006A1CF7D1EFE7D6F88C01D4F880100342F5 +:10BB300009D10198904773683A685345DDD0002ACF +:10BB4000E1D01646BAE708469047D2E7407703347B +:10BB5000EC7F0334002301461A46184602F0E2BE89 +:10BB60002DE9F8430646DFF8AC800820894602F04C +:10BB700049FE0546304600F0F5FBD8F808305F680E +:10BB800027F00307A7F11104A4EB09042C44B4FB2C +:10BB9000F5F4013C05FB04F4A54208DC0021304625 +:10BBA00002F00AFED8F808303B44984205D03046EF +:10BBB00000F0DEFB0020BDE8F8836142304602F071 +:10BBC000FBFD01300FD03F1B104AD8F8083030463B +:10BBD00047F001075F6013681B1B136000F0C8FB90 +:10BBE0000120BDE8F8830021304602F0E5FDD8F8D9 +:10BBF0000820831A0F2BDADD43F001030349536059 +:10BC0000034B1B68C01A0860D1E700BFF07F033404 +:10BC1000447703345077033400297CD02DE9F04178 +:10BC20000C46804600F09EFB764F54F8043CA4F18D +:10BC30000805BE6823F0010168184268864222F0B8 +:10BC4000030200F08380DE0700EB020C426033D475 +:10BC500054F8084CDCF8043007F1080C2D1B214483 +:10BC600003F00103AC68644564D0D5F80CE0C4F877 +:10BC70000CE0CEF80840002B00F0818041F0010379 +:10BC80006B600160B1F5007F22D2CB080122490927 +:10BC900001338A4079680A4357F833107A6007EB1A +:10BCA000C302083AC5E9021247F83350CD60404656 +:10BCB000BDE8F04100F05CBBDCF80430DB072BD5BD +:10BCC00041F00103B1F5007F44F8043C0160DCD38E +:10BCD000B1F5206F4FEA512353D28B0903F139009C +:10BCE00003F13802C300F818FB580838984203D112 +:10BCF00061E09B68984204D05A6822F003028A42AD +:10BD0000F7D8D868C5E9023085604046DD60BDE8F7 +:10BD1000F04100F02DBB7047114407F1080C836817 +:10BD200063453FD0C268DA60936041F001036B6005 +:10BD30006950A7E7002B5FD10A44D0E90213CB601A +:10BD4000996042F001036B60AA50B0E7DB070A4438 +:10BD500007D454F8083CED1A1A44D5E90213CB6015 +:10BD6000996042F001036B60274BBD601B689342F2 +:10BD70009DD8264B40461968FFF7F2FE97E711441D +:10BD8000CDE7142B08D9542B1DD80B0B03F16F00F2 +:10BD900003F16E02C300A6E703F15C0003F15B024E +:10BDA000C300A0E741F00103C7E90455C5E902CC8F +:10BDB0006B6069507BE70121921001FA02F2796809 +:10BDC0000A437A609EE7B3F5AA7F06D8CB0B03F14E +:10BDD000780003F17702C30085E740F254529342A2 +:10BDE00006D88B0C03F17D0003F17C02C3007AE7D7 +:10BDF0004FF47E737E2276E741F001036B600160B1 +:10BE000055E700BF5077033448770334208003346C +:10BE100001F10B03162B2DE9F04F074683B023D811 +:10BE2000102900F2AF8000F09DFA1025182302209F +:10BE3000BC4E33445C68A3F10802944200F0808158 +:10BE40006368384623F00303D4E902122344CA602E +:10BE500091605A68083442F001025A6000F088FA92 +:10BE6000204603B0BDE8F08F002B23F00705C0F299 +:10BE70008980A94200F2868000F074FAB5F5FC7F53 +:10BE8000C0F0B4816B0A00F08180042B00F27E8147 +:10BE9000AB0903F1390003F1380EC300A14E33445E +:10BEA000A3F1080C5C68A44507D10DE0002AE16805 +:10BEB00080F232818C450C4606D0636823F0030380 +:10BEC0005A1B0F2AF2DD7046DFF870823469444550 +:10BED00000F0E780636823F0030CACEB05030F2B45 +:10BEE00000F39481002BC6E9048880F28381BCF5BD +:10BEF000007FD6F804E080F029814FEADC030122BC +:10BF00004FEA5C1C013302FA0CF256F833104EEA89 +:10BF1000020E06EBC302083AC6F804E0C4E90212B6 +:10BF200046F83340CC6083104FF0010C0CFA03FC50 +:10BF3000F44531D81CEA0E0F07D120F003004FEA78 +:10BF40004C0C04301CEA0E0FF9D006EBC00A8146F7 +:10BF5000D646DEF80C300BE05A681C46DB6822F04F +:10BF60000302511B0F2900F31D81002980F231814A +:10BF70009E45F1D109F101090EF1080E19F0030FE8 +:10BF8000E7D167E10C233B60002469E74FF40073BD +:10BF900040204FF03F0E81E7B468636823F0030947 +:10BFA000A9EB05030F2B02DDA94580F0A4805E4BB1 +:10BFB00008201B6803F1100804EB0903009302F04A +:10BFC00021FC5A4AA84483461368013305D008F17E +:10BFD000FF384342804403EA08084146384602F0ED +:10BFE000EBFBB0F1FF3F8246504A79D0009B834281 +:10BFF0005AD9B44274D14E4B0BF1FF3C186800EB98 +:10C00000080EC3F800E01168013100F07381009A56 +:10C01000AAEB020272441A601AF00702CDE900236B +:10C0200000F04281C2F10802384692445A44D0449A +:10C0300008EA0C01521A02EA0C0B594602F0BCFB4A +:10C04000421C019B00F06E81A0EB0A0000EB0B0884 +:10C05000196848F00102B442C6F808A05944CAF869 +:10C060000420196032D0B9F10F0F40F20C816068E2 +:10C07000A9F10C024FF0050C22F0070200F00100BC +:10C0800010430F2A606004EB0200C0E901CC1DD907 +:10C0900004F1080138460093FFF7BEFD009B1968C4 +:10C0A00014E0D6F804E03EE7214B0BF1FF3C1968A1 +:10C0B00041448E461960A6D1009810EA0C0FA2D117 +:10C0C00009EB0803B26843F001035360194B1A6887 +:10C0D0008A4238BF1960184B1A688A4238BF196003 +:10C0E000B468626822F00302531B0F2B40F3CE802A +:10C0F000954200F2CB80621945F0010543F001033F +:10C10000083444F8045C3846B260536000F030F9FB +:10C11000204603B0BDE8F08FA26823443846D160C2 +:10C120008A6096E6507703342080033444770334E2 +:10C13000F07F03341C8003341880033458770334B1 +:10C14000DC68A3427FF47CAE0230BDE6BCF5206F14 +:10C150004FEA5C226CD3142A00F2B98002F15C032E +:10C160005B32DB00F118F3580839994203D191E0B2 +:10C170009B68994204D05A6822F003026245F7D8BE +:10C18000D968C4E902318C60DC60CCE6142B56D946 +:10C19000542B00F2A5802B0B03F16F0003F16E0E00 +:10C1A000C3007BE6D4F808C03846671945F001059E +:10C1B0006560CCF80C30C3F808C041F00103C6E953 +:10C1C0000477C7E902887B60A150083400F0D0F8FA +:10C1D00046E622443846516841F00101516054F866 +:10C1E000082FD3609A6000F0C3F839E6E80805F13B +:10C1F00008031DE6A44438460834DCF8043043F054 +:10C200000103CCF8043000F0B3F829E6621943F0DA +:10C21000010145F0010538466560C6E90422C2E91E +:10C220000288516044F80C30083400F0A1F817E699 +:10C230004FEA9C1202F139033832DB0092E703F136 +:10C240005C0003F15B0EC30028E65AF80839534539 +:10C2500040F0858010F0030F00F1FF30F5D17368D6 +:10C2600023EA0C0373604FEA4C0C0CF1FF329A4244 +:10C2700004D391E64FEA4C0C09F104091CEA030FC0 +:10C28000F8D0484661E60123CAF80430384600F089 +:10C290006FF879E692104FF0010C0CFA02F24EEAB8 +:10C2A000020EC6F804E06CE70AEB0802384602EA20 +:10C2B0000C02ABEB020B0BEA0C0B594602F07CFABA +:10C2C000431C019B7FF4C0AEDDF800B0C0E6542AE9 +:10C2D00013D84FEA1C3202F16F036E32DB0041E7E4 +:10C2E000B3F5AA7F13D8EB0B03F1780003F1770EB7 +:10C2F000C300D3E5C2F800A08EE6B2F5AA7F19D834 +:10C300004FEADC3202F178037732DB002AE740F2B1 +:10C310005452934219D8AB0C03F17D0003F17C0E0B +:10C32000C300BBE5009A4FF0000B083A9044A8EB1D +:10C330000A088DE640F254539A420CD84FEA9C42C8 +:10C3400002F17D037C32DB000CE74FF47E737F202B +:10C350004FF07E0EA2E54FF47E737E2202E77368F3 +:10C3600081E700BF0148FFF7E5BA00BFE07F033473 +:10C370000148FFF7E1BA00BFE07F0334000000008E +:10C380002DE9F04FE1B01C4683460B910DF1C00A38 +:10C390000D92129302F00CFA036818461B93FFF7F4 +:10C3A00043FB08221A9000215046FFF775F9BBF1B4 +:10C3B000000F04D0DBF83430002B01F0C3800B9A5F +:10C3C000536EB2F90C20DD0702D4900540F1B78618 +:10C3D000910406D40B9942F4005223F400538A814D +:10C3E0004B669A0401F14F840B9AB2F90C301D0789 +:10C3F00040F1CD801269002A00F0C98003F01A02D2 +:10C400000A2A00F0D38000239FED9D7B9E46CDE954 +:10C41000353337ABCDF870E0CDF838E034930A937C +:10C42000CDF858E0CDE91DEECDE91FEE8DED187B7E +:10C430000D9E954BD3F8E44002F0B4F93246034622 +:10C440002CA95846CDF800A0A0470028034600F0CC +:10C45000CC80C0F2C2802C9A252A01D01E44E8E785 +:10C460000D9B0546F71A40F0C48000234FF0FF32C1 +:10C47000741C19468DF8A730109373780C920791AD +:10C4800001341F46A7F120035A2B00F2FF80DFE89A +:10C4900013F04103FD00FD003B03FD00FD00FD0026 +:10C4A0006A00FD00FD009002A102FD009B02200336 +:10C4B000FD001A035B005B005B005B005B005B0040 +:10C4C0005B005B005B00FD00FD00FD00FD00FD006A +:10C4D000FD00FD007D01FD001902B5027D017D0119 +:10C4E0007D01FD00FD00FD00FD00AF02FD00FD002F +:10C4F0004B03FD00FD00FD003702FD00D702FD00EB +:10C50000FD007E07FD00FD00FD00FD00FD00FD00BB +:10C51000FD00FD007D01FD00190269027D017D0124 +:10C520007D01630369021302FD00A602FD007E0384 +:10C53000A3076C031302FD0037027C00A607FD0071 +:10C54000FD00AA07FD007C00A7F13003002202EBEA +:10C55000820214F8017B03EB4202A7F13003092B9E +:10C56000F5D910928EE7584602F022F94368184632 +:10C570001F93FFF759FA20900546584602F018F924 +:10C5800083681C93002D40F0CB85237878E70B9DC2 +:10C590005846294602F024F8002841F0E184B5F914 +:10C5A0000C3003F01A020A2A7FF42DAF0B99B1F96F +:10C5B0000E20002AFFF627AF4A6ED20702D49F054D +:10C5C00041F1C38123460D9A0B99584601F012FDA3 +:10C5D0000E900E9861B0BDE8F08F08220021504601 +:10C5E000FFF75AF801231E4423E70D9B0546F71A6F +:10C5F00013D00D9B0A9AC2E90037369B3B44369311 +:10C60000359B0133072B359311DC08320A920E9BC0 +:10C610003B440E93002D7FF428AF369B002B41F056 +:10C620008A8100220B9B3592B3F90C3019E034AAB1 +:10C630000B99584601F01EFD80B937AB0A93E6E727 +:10C6400034AA0B99584601F015FD002800F093809C +:10C65000119B1BB111995846FFF7DEFA0B9BB3F9FA +:10C660000C300B9A526ED00740F11C815A0601F132 +:10C6700014830E9861B0BDE8F08F00BFAFF3008067 +:10C680000000000000000000587B03340D94002FD0 +:10C69000C3D00022012347A98DF81C718DF8A72073 +:10C6A0000893139111920C920F931792CDE91422D3 +:10C6B000079B13F0020302D00899023108910799F1 +:10C6C000369D11F0840405D1109908980E1A002E99 +:10C6D00000F3A8807AB10A98012201350DF1A70173 +:10C6E0004260359A369501320160072A359200F38F +:10C6F000C18308300A9073B1359B2AAA0A99023582 +:10C7000001330A600222072B369535934A6000F305 +:10C71000A58308310A91802C00F0A2820C9B0F9A0D +:10C720009E1A002E00F3DF82079BDE0500F13E8299 +:10C730000A9A139B13600F9B1D445360359B3695DB +:10C740000133072B359300F3308308320A92079B9D +:10C750005C0705D5109B089A9E1A002E00F398835B +:10C760000E9B109A08998A42ACBF9B185B180E93D7 +:10C77000002D7FF465AF00233593119B1BB11199F8 +:10C780005846FFF749FA37AB0A9351E6129B4FF030 +:10C79000FF320D94073323F00701A54BB1EC027B68 +:10C7A00055EC174B129125F000418DED227A239123 +:10C7B000DDE922898DED187B4046494605F04CFCA9 +:10C7C000002840F02E854FF0FF32994B40464946F5 +:10C7D00005F024FC002840F0248500220023204698 +:10C7E000294605F011FC002841F0B6819DF8A720EC +:10C7F000079B00208F4923F08003119007938E4BF5 +:10C80000472FD8BF194603230C9013910893179014 +:10C810000F93CDE91400002A3FF44AAF089B01337F +:10C82000089345E7102E359ADFF810922ADD284646 +:10C830004FF010084D460A99B946219327460B9CA4 +:10C8400002E0103E102E17DD01321030072AC1E938 +:10C850000058CDE9352001F10801F2DD214634AA66 +:10C86000584601F007FC37A900287FF4F1AE103ECE +:10C87000102EDDE93520E7DC3C46219B4F46A946DA +:10C8800005460A9101320A993544072AC1F80090F9 +:10C890004E60CDE9352500F3448608319DF8A72088 +:10C8A0000A9117E799053FF5E1AE0B9CA06DFFF7E4 +:10C8B00043F8B4F90C30D9E6079B43F02003079303 +:10C8C0002378DDE5129B432F0D9403F1040500F05E +:10C8D000D785079BDE0600F1D385129B47AE1B6808 +:10C8E0008DF81C31012308930F930022CDE91256D5 +:10C8F0008DF8A72011920C921792CDE91422D7E659 +:10C900000023129E0D948DF8A73056F8043B139324 +:10C91000002B00F0A485532F00F02686079B13F010 +:10C920001003149340F020860C9B002BC0F2F1877B +:10C930001A46DDE9130101F073FF1190002801F0A0 +:10C94000C282119B7327139A1296991A149B9DF811 +:10C95000A7200F9121EAE1710C9308911793159389 +:10C96000119358E7079B0D949D064FD5129B0733F3 +:10C9700023F007031A46596852F8083B12920A46F8 +:10C980000029C0F234840C990029C0F2D58207999D +:10C9900021F08001079140F0CF8253EA020114BFD9 +:10C9A0000121002140F0C88260AB0C910F911393DC +:10C9B0007BE0129B53F8042B002A109280F2CD8367 +:10C9C000109A129352421092079B43F0040307936C +:10C9D000237855E52B238DF8A730237850E523786D +:10C9E0006C2B00F01185079A42F01002079247E580 +:10C9F000079B43F008030793237841E5079B0D94B9 +:10CA000043F010030793079B9D06AFD4129A52F888 +:10CA1000043B1292079AD40600F1E483079A500669 +:10CA200040F1DC8343F3C0321BB21146A8E700BFDC +:10CA3000FFFFEF7FA02A10189C2A1018542C101802 +:10CA4000079B0D9443F0100414F0200200F049837A +:10CA5000129B0121073323F0070318465A6850F848 +:10CA6000083B129000200C9D8DF8A700002DC0F20D +:10CA70006F8124F08000079053EA020040F0678144 +:10CA8000281E18BF0120002D40F06181002940F0D0 +:10CA90003A8214F001030C910F9300F0D2823023FC +:10CAA0008DF87F310DF27F1313930F9900230C98AB +:10CAB0009DF8A720814211931793B8BF0146CDE995 +:10CAC00014330891A7E6079B43F08003079323786C +:10CAD000D6E4214611F8017B2A2F01F02A82A7F122 +:10CAE0003003092B01F2E780002202EB820211F8E9 +:10CAF000017B03EB4202A7F13003092BF5D942EA8F +:10CB0000E2730C460C93BDE4079B43F001030793CB +:10CB10002378B5E49DF8A7202378002A7FF4B0ACF1 +:10CB200020228DF8A720ABE4079B0D9443F010035F +:10CB30000793079B13F0200200F0E182129B07335A +:10CB400023F0070319465A6851F8083B12910799D8 +:10CB500021F48064002185E72378682B00F06A8443 +:10CB6000079A42F0400207928AE4079B7827129ABC +:10CB70000D9443F0020447F630039249ADF8A83013 +:10CB800052F8043B1E910221129200226AE7079B91 +:10CB90000D949C0640F13483129B0E9A1B681A6018 +:10CBA000D2175A60129B0433129341E4652F40F36D +:10CBB0000F8100220023DDE9180105F01BFA00288F +:10CBC00000F0CA81359B01357F4A01330A993695B9 +:10CBD0000A60072B4FF0010235934A6000F3B784D7 +:10CBE00008310A912B9B169A934280F2B1821A9BCC +:10CBF0000A9A1B991D44C2E90013359B36950133EF +:10CC0000072B359300F31E8408320A92169B5E1E92 +:10CC1000002E7FF79CAD102E359BDFF8B09140F3CE +:10CC2000B98010274C46DDE90A2803E0103E102E9B +:10CC300040F3AE8001331035072BC2E90047CDE940 +:10CC4000353502F10802F1DD34AA4146584601F0BB +:10CC500011FA00287FF4FCAC37AADDE93535E5E7A9 +:10CC6000109B089A9E1A002E7FF758AD102E359B08 +:10CC7000DFF8589124DD294610240A9A4D46DDF844 +:10CC80002C8002E0103E102E17DD01331031072BEF +:10CC9000C2E90054CDE9353102F10802F2DD34AACF +:10CCA0004146584601F0E6F900287FF4D1AC103E29 +:10CCB00037AA102EDDE93531E7DCA9460D460A9288 +:10CCC00001330A9A3544072BC2F800905660CDE92B +:10CCD000353500F38C8308320C9B0A920F9A9E1A0A +:10CCE000002E7FF721AD102E359BDFF8E09020DD80 +:10CCF0001024DDE90A2802E0103E102E18DD013371 +:10CD000010353249072BC2E90014CDE9353502F15F +:10CD10000802F1DD34AA4146584601F0ABF937AAC2 +:10CD200000287FF495AC103E102EDDE93535E6DCA9 +:10CD30000A9201330A9A3544072BC2F800905660D4 +:10CD4000CDE9353500F3C08108320A92ECE4079C46 +:10CD5000012900F0F280022900F0DA8060AD03F0D2 +:10CD60000701DB08284643EA42733031D20805F850 +:10CD7000011D53EA0206F2D13029139502D0E307D0 +:10CD800000F1F98260AB139A07949B1A0F938CE61B +:10CD9000A1460A9201330A9A3544072BC2F8009043 +:10CDA0005660CDE935357FF7D0AC34AA0B9958469B +:10CDB00001F060F900287FF44BAC37AB369D0A9345 +:10CDC000C5E400BFAC2A1018DC2A1018442C101837 +:10CDD0000A9B0135359E03F10807169B01360A9A16 +:10CDE000012B40F33181139B072E13604FF0010399 +:10CDF000CDE93565536000F388831A9B01361B9A91 +:10CE00001D44072EC7E90023CDE9356500F3718382 +:10CE10000837169B00225C1E0023DDE9180105F08F +:10CE2000E9F8002840F02A810136139B25447C60F4 +:10CE30000133072E3B60CDE9356500F313810837D8 +:10CE40001D9B01361D447B60072E2EABCDE9356559 +:10CE50003B60AADC07F108030A9378E434AA0B9933 +:10CE6000584601F007F900287FF4F2AB37AB369D46 +:10CE70000A9350E434AA0B995846219301F0FAF82A +:10CE800000287FF4E5AB37AB369D0A93219B32E453 +:10CE9000102E359BDFF8949521DD10274C46DDE9F7 +:10CEA0000A2802E0103E102E17DD01331035072B43 +:10CEB000C2E90047CDE9353502F10802F2DD34AAB6 +:10CEC0004146584601F0D6F800287FF4C1AB103E29 +:10CED00037AA102EDDE93535E7DCA1460A92013389 +:10CEE0000A9A3544072BC2E90096CDE935357FF71C +:10CEF00037AC34AA0B99584601F0BCF800287FF4EF +:10CF0000A7AB369D2CE460AB0C900F901393CCE54F +:10CF100060A91E9D03F00F001B09285C43EA027301 +:10CF2000120901F8010D53EA0200F3D160AB13912D +:10CF300007945B1A0F93B8E5079C0A2B72F1000166 +:10CF400080F06983303307948DF87F3101230F938C +:10CF50000DF27F131393A8E52B9A002A40F3018169 +:10CF6000149F169B9F42A8BF1F46002F0DDD139BE9 +:10CF70003D440A9A3695C2E90037359B0133072BA9 +:10CF8000359300F3408608320A92149E002FA8BF02 +:10CF9000F61B002E00F3AC83DDE9132313449946FE +:10CFA000079B590500F137852B9E169B9E42C0F2C8 +:10CFB0007F82079BDA0700F17B82169B139F9E1BE3 +:10CFC0001F44A7EB0907B742A8BF3746002F0DDD66 +:10CFD000359B3D440A9A01333695C2F80090072BE1 +:10CFE0005760359300F36C8608320A92002FA8BF71 +:10CFF000F61B002E7FF7ABAB102E359BDFF830947D +:10D000007FF7C8AE10274C46DDE90A2803E0103E42 +:10D01000102E7FF7BDAE01331035072BC2E9004754 +:10D02000CDE9353502F10802F1DD34AA4146584612 +:10D0300001F020F800287FF40BAB37AADDE9353585 +:10D04000E5E760AB139330E5079BDB073FF5CBAE1D +:10D05000139B072E13604FF00103CDE93565536034 +:10D060007FF7EEAE34AA0B99584601F003F800287A +:10D070007FF4EEAA37AFDDE93565E1E6169B012BBB +:10D080007FF7DEAE112BDFF8A89340F326834FF035 +:10D09000100803E0103C102C40F31F8301361035BC +:10D0A000072EC7E90098CDE9356507F10807F1DDDE +:10D0B00034AA0B99584600F0DDFF00287FF4C8AA77 +:10D0C00037AFDDE93565E5E734AA0B99584600F03E +:10D0D000D1FF00287FF4BCAA37AB369D0A93FFF737 +:10D0E00023BB129951F8043B129114F0100173D133 +:10D0F00014F040006BD00A469BB20121B2E41299B1 +:10D1000051F8043B1291079911F010017FF41FAD03 +:10D11000079A12F0400000F010839BB20A4616E511 +:10D12000002B3FF432AA1C9B1A782378002A3FF484 +:10D13000A7A9079A42F480620792FFF7A1B90B9D55 +:10D14000A86DFEF7F7FBB5F90C206B6EFFF740B941 +:10D15000079BDC077FF5FBAA49E512932378FFF7CD +:10D160008FB9359B0135AC4901330A98369501607A +:10D17000072B4FF001013593416000F30D85083016 +:10D180000A90169B134300F06A851A9B0A991B9814 +:10D190001D44C1E90003359B36950133072B3593B8 +:10D1A00000F3148508310C46002AC0F2D885139A82 +:10D1B00001332260072B169A15446260CDE935359C +:10D1C0003FF7F3AD04F108030A93FFF7C0BA14F474 +:10D1D000007201D0DBB20246012143E4079A9105B7 +:10D1E00000F18B83DA1711460029BFF6CCAB5B4206 +:10D1F000079C4FF02D004FF0010162EB420232E438 +:10D20000079BD80600F16382079B590600F17B83D8 +:10D21000079B9A0540F15B82129B0E9A1B681A705D +:10D22000C0E4DDE9180102460B4604F015FF0028B2 +:10D2300040F0E98527F02006412E40F0958230230A +:10D24000612F8DF8A83014BF582378238DF8A930AA +:10D250000C9B632B00F38E8347AB11901393DDE996 +:10D260001812002A80F26E8502F100434FF02D095A +:10D27000269127932BAADDE9260101F01DFB002250 +:10D280004FF07F5304F04EFC02460B46CDE90823D5 +:10D290000022002304F0AEFE08B101232B930C9B67 +:10D2A0005E4A591E5E4B14460F97CDF85090612F81 +:10D2B00008BF1C46139E0F460C94DDE9088908E060 +:10D2C000002200237D1E04F095FE002840F0E48536 +:10D2D0002F460022534B4046494604F023FC894622 +:10D2E000804604F0CFFE054604F0B2FB02460B4632 +:10D2F0004046494604F05EFA635D3246804606F8D1 +:10D30000013B7B1C8946DBD11446474B00220F9F13 +:10D31000CDE90889DDF8509004F094FE002800F073 +:10D320003C860C9B3294D97B334616F8012C9142F3 +:10D3300009D1302003F8010C329B5A1E329213F8A7 +:10D34000012C9142F6D0392A00F006860132D2B281 +:10D3500003F8012C3346079A012142F0020207929A +:10D36000139A9B1A07F10F021693D2B22B9B1493B8 +:10D37000013B2B935AE23023139A0238079402F8A8 +:10D38000013C60AB13901B1A0F93FFF78EBB234B2E +:10D390000D941E93079B13F0200200F09980129BBE +:10D3A000073323F0070319465A6851F8083B1291D6 +:10D3B00053EA02010AD00799C80707D541F00201D4 +:10D3C0008DF8A970079130218DF8A810079921F4E4 +:10D3D00080640221FFF746BB0D94FFF7AABB0D94B2 +:10D3E000079CFFF731BB0E4B0D941E93D2E734AA76 +:10D3F0000B99584600F03EFE00287FF429A937AB70 +:10D40000369D0A93FFF78AB9079B013443F0200346 +:10D4100007932378FFF734B8DC2A1018C02A1018B5 +:10D42000AC2A1018000030400000E03F542C1018C7 +:10D43000442C1018079B013443F40073079323789E +:10D44000FFF71EB834AA0B99584600F013FE0028C7 +:10D450007FF4FEA837AB369D0A93FFF7D7BB0C9934 +:10D460001A460C9306291193179328BF062112968A +:10D47000CDE91433B94B08910F911393FFF7CBB952 +:10D480000822002132A847AEFEF706F9129A32AB05 +:10D4900058461268314603F035F803460F900133C1 +:10D4A00000F052850F9B23EAE3730893FFF71DBA40 +:10D4B0001A9B0A9A1B991D44C2E90013359B3695A5 +:10D4C0000133072B359300F3AB8308320A9274E5DE +:10D4D000129951F8043B1291079911F010017FF451 +:10D4E00067AF079A12F0400000F030819BB20A4605 +:10D4F0005EE734AA0B99584600F0BCFD00287FF483 +:10D50000A7A837AFDDE9356583E434AA0B995846FF +:10D5100000F0B0FD00287FF49BA837AFDDE935654A +:10D520006BE434AA0B995846219300F0A3FD002820 +:10D530007FF48EA837AB9DF8A720369D0A93219BD8 +:10D54000FFF7C8B85846FDF7A7FFFEF738BF34AA63 +:10D550000B99584600F08EFD00287FF479A837AB70 +:10D56000369D0A93FFF73EBB32AC139B0822002185 +:10D5700020462D93FEF790F80C9B002BC0F21C82E6 +:10D5800000259946A8460EE047A9584602F0BAFF82 +:10D59000431C05F10405404400F02A84484507DC9B +:10D5A00000F08A8480462D9A23465259002AEBD1F6 +:10D5B000CDF83C800F9B002B00F0FC82632B40F3E6 +:10D5C000C983591C5846FEF723FC1390002800F02D +:10D5D0000485139B1193082200212046FEF75CF876 +:10D5E00000940F9C2DAA13995846234602F0B0FFD1 +:10D5F000844240F0EC840023139A0F9912965354FE +:10D6000021EAE1719DF8A7200C9308911793CDE9C9 +:10D610001433FFF700B904F4806100209E460DF535 +:10D62000C07C4F4E4FF0050980460B46CDF83CB00C +:10D63000CDE9077407E0BEF10A0F72F1000238D39A +:10D64000AE462246BC461EEB020008F101080CF172 +:10D65000FF3740F10000A6FB001424F0030101EBAA +:10D6600094014FF0CC34401ABEEB000162F100058A +:10D6700004FB01F406FB0544A1FB06510C4405F034 +:10D6800001016D08A1FB091B45EAC475091864086E +:10D6900030310CF8011C002BCDD01C990978414584 +:10D6A000C9D1FF29C7D0BEF10A0F72F1000280F084 +:10D6B000C5823A4660AB13979B1ADDF83CB0CDF8B3 +:10D6C00058800F93DDE907740794FFF7EEB9129BBA +:10D6D0000E9A1B681A60FFF765BA01362544C7F831 +:10D6E0000090072E7C60CDE935657FF7A8ABB9E4E3 +:10D6F000102E359BDFF86C9040F3F18010274C46DC +:10D70000DDE90A2803E0103E102E40F3E6800133E5 +:10D710001035072BC2E90047CDE9353502F1080283 +:10D72000F1DD34AA4146584600F0A4FC00287EF4FE +:10D730008FAF37AADDE93535E5E7079A12F40072B5 +:10D740003FF405AADBB20246FFF701BA079A12F4CA +:10D7500000723FF42DAEDBB2024629E6D42A10183F +:10D76000CDCCCCCC442C10180C9B5A1C00F0F28071 +:10D77000472E03D1002B08BF01230C93079ADDE944 +:10D78000180142F480740029C0F24D834FF0000963 +:10D79000CDE92401652F00F0858200F3E281452F59 +:10D7A00000F08082462F40F0DF81DDF830800323D7 +:10D7B0005846CDE9003832AB04932DAB03932BAB25 +:10D7C0000293DDE9242301F08BF9462E00EB0805D6 +:10D7D000139006D1139B1B78302B00F081822B9B7A +:10D7E0001D4400220023DDE9240104F003FC00288D +:10D7F00040F05D82329BAB4206D230215A1C3292FD +:10D800001970329B9D42F9D82B9A1492139A472E85 +:10D81000A3EB0203169300F0BE80462E00F06F8249 +:10D82000149B013B0021FAB22B931191002B8DF830 +:10D83000B820C0F2D8822B22092B8DF8B92040F3F2 +:10D84000BF820DF1CF04DFF828C52546ACFB0321CC +:10D850001E462846013DC908632E01EB8102A3EB59 +:10D8600042020B4602F1300200F8012CEEDC3033AC +:10D8700005F8013C831EA34280F058830DF1B902E4 +:10D8800013F8011BA34202F8011FF9D160AB181A6B +:10D89000A0F1AD031D93169B1D9A012B1A440F9204 +:10D8A00040F39C820F9B1A9A13440F93079B0F9A85 +:10D8B00023F4806322EAE27243F4807308920793B0 +:10D8C00000231793CDE91433B9F1000F6DD19DF802 +:10D8D000A720CDF83090FEF79EBFA1460A920133F3 +:10D8E0000A9A3544072BC2F800905660CDE93535C9 +:10D8F00033DC08320A92FFF74FBB43F3C0125BB22E +:10D900001146FFF73DB8129B0E9A1B681A80FFF76D +:10D9100049B913987327FEF787F8149B20EAE07142 +:10D920009DF8A72012960F900C93089117931593CA +:10D930001193FEF770BF34AA0B99584600F09AFB7A +:10D9400000283EF46EAEFEF789BE886DFDF7F4FF49 +:10D95000FEF738BE06230C9310E734AA0B995846FD +:10D9600000F088FB00287EF473AE37AB369D0A9337 +:10D97000FFF712BB591C5846FEF74AFA13900028CD +:10D9800000F0E282139B119369E4329B139A9B1A75 +:10D9900016932B9B14930C9A149B9A4201DB03332E +:10D9A00019DA149B023F013B3CE72D2200238DF83E +:10D9B000A7200C93FEF732BF00232DAA58460094EF +:10D9C000194602F0C5FD03460F90013300F01082A6 +:10D9D000139B2D93EEE5169B149A934200F3A881B6 +:10D9E000079B13F0010F149B00F079821A9A1344DD +:10D9F0000F93079B5D0503D5149B002B00F31C823E +:10DA00000F9B672723EAE37308930023079411937E +:10DA10001793159358E7159B002B03DC179B002BDE +:10DA200040F3D182139B2946169ADDF870809C182A +:10DA3000209D0A9A23464C46DDF85C90B9F1000F10 +:10DA400032DC159808F1FF38013815901F982944E9 +:10DA5000C2E90005359836910130072835904DDC34 +:10DA600008321F1B98F800000A938742A8BF074698 +:10DA7000002F0BDD35983944013036910728359059 +:10DA8000C2E9004759DC083298F80000002FACBF0B +:10DA9000C61B0646002E0ADC044415980028CDDC7F +:10DAA000B9F1000F40F3338209F1FF39CEE7102EB0 +:10DAB0003598DFF8B8C233DD0C9510270F94344643 +:10DAC0000B9D6646149302E0103C102C23DD0130C0 +:10DAD0001031A64B0728C2E90037CDE9350102F124 +:10DAE0000802F1DD34AA2946584600F0C3FA00289E +:10DAF0007EF4AEAD37AADDE93501E5E734AA0B992E +:10DB000058460A9300F0B6FA00287EF4A1AD369983 +:10DB100037AA0A9BA5E7B4460C9D2646149B0F9C8A +:10DB200001303144C2F800C007285660CDE9350104 +:10DB30005ADC083298F80000AEE734AA0B99584630 +:10DB40000C9300F097FA00287EF482AD98F800005C +:10DB500037AA36990C9B99E72D228DF8A720FEF75E +:10DB600047BE662F3FF421AE0C9B5846019332AB63 +:10DB700004932DAB03932BAB029302230093DDE9B7 +:10DB8000242300F0ADFF079B1390DB077FF5FDAE6C +:10DB9000139B0C9A9D1824E634AA0B99584600F062 +:10DBA00069FA00287EF454AD37AB369D2B9A0A9360 +:10DBB000FFF7E7BA0F9B9DF8A720129608930C93E6 +:10DBC00017931193CDE91433FEF725BE34AA0B99B0 +:10DBD000584600F04FFA00287EF43AAD2B9A37AC45 +:10DBE000DDE93535FFF7E0BA34AA0B9958460C93B6 +:10DBF00000F040FA00287EF42BAD98F8000037AA18 +:10DC000036990C9B48E734AA0B99584600F032FA33 +:10DC100000287EF41DAD37AB369D0A93FFF7B5B9EA +:10DC200034AA0B99584600F025FA00287EF410AD6E +:10DC300037AB2B9E369D0A93FFF7BFB91193209BFC +:10DC40001F99FF1A1A463846FDF778FD1C99119B5B +:10DC50004A780AB101311C914FF00008F0E4079BAB +:10DC6000D8077EF574AD1A9B0A9A1B991D44C2E928 +:10DC70000013359B36950133072B3593A6DC08320C +:10DC80001446FFF794BADF0707D40B9B9B899E05C8 +:10DC900003D40B9B986DFDF74FFE4FF0FF330E93AF +:10DCA000FEF7E7BC0C9B03F10108022380E52B9AE9 +:10DCB0002B461492AAE500230C460C93FEF7E2BB18 +:10DCC00034AA0B99584600F0D5F900287EF4C0AC70 +:10DCD000169B2B9E369D9E1B37AB0A93FFF786B98A +:10DCE00000220023DDE9240104F084F9002800F07B +:10DCF00062812B9B1D441493139BEB1A1693079B75 +:10DD0000149903F001030C9A002943EA020340F33B +:10DD10003481002B40F0BA80149B66270F93079B39 +:10DD20005B0500F18A800F9B23EAE37308936CE69E +:10DD3000169B1A9A9A18149B002B0F9240F3D180CD +:10DD40006727ECE79DED187B4FF000098DED267BF2 +:10DD5000FFF790BA0023119347AB13933BE456426D +:10DD60001032DFF808901EDA102706E0442C101855 +:10DD7000CDCCCCCC103E102E15DD01331035072B49 +:10DD8000C4E90097CDE9353504F10804F2DD34AA81 +:10DD90000B99584600F06EF900287EF459AC37AC68 +:10DDA000DDE93535E6E701333544C4F80090072B4B +:10DDB0006660CDE9353500F39D800834FFF7F7B98B +:10DDC00000297DD130228DF8BA200DF1BB0230330D +:10DDD00002F8013B2EABD31A1D935CE5079BDE07CF +:10DDE0007FF564AD5EE5149B2D22C3F1010323E5AD +:10DDF0000B9B0022B3F90C30119243F040030B9AB5 +:10DE00009381FEF725BC199B002BC0F28B809DF8F7 +:10DE1000A720079B0020744923F0800311900793EB +:10DE2000724BFEF7EDBCDDE918124FF02D0902F13F +:10DE3000004324912593ADE467271C990B78FF2BB1 +:10DE400000F0BD800025149A284603E0013001311E +:10DE5000FF2B08D0934206DAD21A4B78002BF5D16B +:10DE60000B780135F4E71C91159017951492159ACB +:10DE7000179B209913440F9A079401FB0323002258 +:10DE80000F9323EAE373119208931DE51A9B66270B +:10DE90001A4453180F9342E73946DDF850900F9F0C +:10DEA0000029FFF657AA4B1C3022334406F8012BF9 +:10DEB000B342FBD1FFF74FBA0C9B0F93FFF77ABB2E +:10DEC0000DF1BA0283E70C9B73279DF8A7201296E9 +:10DED00008930F930C9017901590FEF79CBC0F932E +:10DEE00087E5C3F1010367271A4422EAE2730F9220 +:10DEF00008938AE534AA0B99584600F0BBF800282D +:10DF00007EF4A6AB37ACDDE93535FFF750B9A14655 +:10DF10000D460A9BCDF870800A92994528BF994614 +:10DF2000FFF742B82D228DF8A72072E702231D9338 +:10DF3000B1E4129A63780C4652F8041B41EAE1718D +:10DF400012920C91FEF79CBA0B9AB2F90C3043F086 +:10DF500040039381FEF785BB0C9A927AFFF7F8B9DC +:10DF60000B9A536ED8073FF598AE938999053FF504 +:10DF700094AE906DFDF7E0FC8FE623B90123662790 +:10DF800008930F9341E51A9B5F1C0C9B3B4466274B +:10DF90000F9323EAE373089337E5DDE908010022D4 +:10DFA000134B04F027F800283FF4D4A9EA077FF5C3 +:10DFB000D1A9FFF7B6B9C8F101032B9310E40023F0 +:10DFC0001793159353E7139B169A1344A5E70B9BDE +:10DFD000B3F90C3043F0400311E70B9B1190B3F9F8 +:10DFE0000C3043F040030AE7A82A1018A42A10189E +:10DFF0000000E03FF0B51F468B89ADF26C4D154631 +:10E0000023F00203064616A80C46ADF80C301AABF6 +:10E01000009304934FF48063029305934B6E19931E +:10E02000CB89ADF80E30CB6907934B6A0993002377 +:10E030000693FDF77BFC2A463B4669463046FEF7D1 +:10E040009FF9051E07DB6946304600F01FF90028DE +:10E0500018BF4FF0FF35BDF80C305B0603D5A38920 +:10E0600043F04003A3811698FDF762FC28460DF2A9 +:10E070006C4DF0BD936810B514461BB918460023CB +:10E08000636010BD00F02CF90023A36000236360DF +:10E0900010BD00BF70B500293FD006460C4610B138 +:10E0A000436B002B3CD0636EB4F90C20DD0732D4F7 +:10E0B000900538D52146304600F04CF8E36A054615 +:10E0C00033B1E169304698470028B8BF4FF0FF35BB +:10E0D000A3891A0639D4216B41B104F14003994256 +:10E0E00002D03046FDF798FD00232363616C21B117 +:10E0F0003046FDF791FD00236364FDF7EBF9636E95 +:10E100000022DB07A2811CD5A06DFDF711FCFDF7F5 +:10E11000E7F9284670BD002ACCD10025284670BDFD +:10E12000FDF7BAF9BFE7A06DFDF704FCB4F90C30B8 +:10E13000002BBFD1636ED907EFD4A06DFDF7FCFBB8 +:10E14000EBE7A06DFDF7F8FBDEE721693046FDF750 +:10E1500063FDC0E7B1F90C202DE9F04116070C462C +:10E1600080464ED4496842F400630029A38163DDF0 +:10E17000A56A002D42D0002112F48052D8F8006028 +:10E18000C8F80010E16964D101234046A847451C46 +:10E1900002466DD0B4F90C30A56AE169580705D57F +:10E1A0006368D21A236B0BB1E36BD21A002340468B +:10E1B000A847431C4FD1D8F80010B4F90C301D29E2 +:10E1C00040D8314ACA40D7073CD523F40062DD0469 +:10E1D000A2814FF0000262602269226001D500290D +:10E1E00044D0216BC8F8006041B104F1400399426A +:10E1F00002D04046FDF710FD002323630020BDE858 +:10E20000F0810E69002EF9D092070D680E600CBFE8 +:10E210004B690023AD1B8B600BE02B463246E16956 +:10E220004046676AB847B0F1000CA5EB0C056644A0 +:10E2300006DD002DF1DCE1E7E16B002998DCDDE78C +:10E24000B4F90C3043F040034FF0FF30A381BDE838 +:10E25000F081226DA2E7B4F90C300022626023F451 +:10E260000062DB04A28122692260BAD52065B8E78A +:10E27000D8F80030002B8DD01D2B01D0162BDFD10C +:10E28000C8F80060BAE700BF0100402038B5054675 +:10E290000C4608B1436B03B3B4F90C0088B1636E4C +:10E2A000DB0701D481050FD528462146FFF752FF31 +:10E2B000636E0546DA0702D4A3899B0508D5284674 +:10E2C00038BD0546284638BDA06DFDF733FBEBE7AA +:10E2D000A06DFDF731FB284638BDFDF7DDF8DBE723 +:10E2E0009368002B00F0F980B1F90CC01CF0080F06 +:10E2F0002DE9F04F904683B081460C4631D00B6932 +:10E300007BB31CF00207D8F8006038D00027D4F89F +:10E3100024B0E169DFF8C4A23D4655452B463A4694 +:10E32000484628BF5346C5B1D847002840F3CB80A4 +:10E33000D8F8083007442D1A1B1AC8F80830002BEB +:10E3400000F0B78055452B46D4F824B03A46E16931 +:10E3500028BF53464846002DE6D1D6E90075083659 +:10E36000DBE72146484600F03BF9002840F0B0804A +:10E37000B4F90CC0D8F800601CF00207C6D11CF03C +:10E38000010A64D123685746A16818468B46002FBE +:10E3900059D01CF4007F00F0B680B9420A4600F262 +:10E3A000E2801CF4906F30D021695D1A636913EB31 +:10E3B000430348BF01334FEA630B6B1C3B445A468F +:10E3C0005B4501D99B461A461CF4806F00F0EA8039 +:10E3D00011464846FDF71CFD002800F0F9802A464A +:10E3E00021690090FDF7AAFAA289009B22F49062AD +:10E3F00042F08002A2815819C4F814B0ABEB0505B5 +:10E400003A46BB462361A56020605146009200F069 +:10E4100049F9A16823683D46009AA1EB0B0100274A +:10E420001A44A1602260D8F80830AA445B1BC8F8DF +:10E430000830002B3DD02368A168B4F90CC0184601 +:10E440008B46002FA5D1D6E900A708369DE73846B0 +:10E45000BB463D460097002D41D0002846D0009A8B +:10E46000A168AA426369206828BF2A4603EB010A13 +:10E470002169884202D9524500F38580934275DCB8 +:10E480005A46E1694846676AB847B0F1000A1ADDA2 +:10E49000009BB3EB0A0300930FD00120D8F808309B +:10E4A000D344A5EB0A05A3EB0A03C8F80830002BF8 +:10E4B000D1D1002003B0BDE8F08F21464846FFF7D8 +:10E4C000E5FE0028EAD0B4F90C3043F04003A38104 +:10E4D0004FF0FF3003B0BDE8F08F00207047756843 +:10E4E00033460836002DFAD0D3F800B02A460A2168 +:10E4F000584600F095F9002867D00130A0EB0B03D7 +:10E500001A460093ACE722699A4214D36269BA4270 +:10E5100011D86FF00043656AE1694846BB4228BFE5 +:10E520003B4693FBF2F302FB03F35246A847051E5A +:10E53000C9DD7F1B77E7B942184628BF39460D462B +:10E5400051462A4600F0AEF8A1682368491B2B44C7 +:10E55000A16023600029ECD121464846FFF796FED2 +:10E560000028E6D0AFE7BB463A464EE7594601924F +:10E5700000F098F8019AA36892469B1AA36023685A +:10E580001344236084E75946524600F08BF8236811 +:10E590002146484653442360FFF778FE00283FF4A5 +:10E5A00077AF90E7484601F0E7FD034600287FF487 +:10E5B00022AF21694846FDF72FFBB4F90C300C223D +:10E5C00023F08003C9F800207FE76A1C009247E728 +:10E5D0000C22B4F90C30C9F8002076E700FCFF7F6C +:10E5E00038B52F4B05460C461B6813B15A6B002AF1 +:10E5F00045D0B4F90C30180716D52269F2B113F0E2 +:10E60000010107D0616900204942A060A1613AB1CF +:10E61000002038BD980758BF6169A160002AF7D172 +:10E62000190638D4104638BDD9062CD55A0712D44D +:10E63000226943F00803A381002AE0D103F420718A +:10E64000B1F5007FDBD02146284601F08DFFB4F9FB +:10E650000C302269D3E7216B51B104F140029142A1 +:10E6600004D02846FDF7D8FAB4F90C300022226312 +:10E670000021226923F02403C4E90021D9E71846C8 +:10E68000FCF70AFFB5E7092243F040032A60A381A3 +:10E690004FF0FF3038BD43F04003A381F8E700BFDF +:10E6A000FC75033488420ED98B1883420BD900EBDA +:10E6B000020C002A6ED0624613F801CD994202F88E +:10E6C00001CDF9D170470F2A0FD8034602F1FF3C64 +:10E6D000002A5FD00CF1010C013B8C4411F8012B96 +:10E6E000614503F8012FF9D1704740EA01039B0708 +:10E6F00051D1A2F1100301F1200C70B523F00F05E8 +:10E7000001F1100E00F110041B09AC445EF8105C1E +:10E710000EF1100E103444F8205C5EF81C5C44F8D6 +:10E720001C5C5EF8185C44F8185C5EF8145CE64506 +:10E7300044F8145CEAD1013312F00C0F02F00F0C14 +:10E7400001EB031100EB031329D0ACF1040C1C1FE7 +:10E750008E462CF003064FEA9C0C1E445EF8045BC8 +:10E7600044F8045FB442F9D10CF1010402F0030251 +:10E7700003EB840301EB840102F1FF3C4AB10CF18D +:10E78000010C013B8C4411F8012B614503F8012F6A +:10E79000F9D170BD704702F1FF3C03469AE762462B +:10E7A000EAE700BF014B93F828017047587B033418 +:10E7B00000487047487C033438B50022064D0446B3 +:10E7C00008462A6003F090FE431C00D038BD2B6839 +:10E7D000002BFBD0236038BDDC7F033438B5074DF8 +:10E7E000074C2C1BA41005D0013C55F8043D98475C +:10E7F000002CF9D1BDE83840F2F708BA240C101803 +:10E80000200C1018082802D14FF48050704708B52A +:10E81000FDF75EF8162203464FF0FF301A6008BD80 +:10E820005FFA81FC810744D00346511E22B909E0FA +:10E830009A0709D0013905D3184601330278624599 +:10E84000F6D1704700207047184603290CD80029DC +:10E85000F8D00346014401E08B42F3D0184613F888 +:10E86000012B6245F8D1704710B50CEB0C24024621 +:10E8700004EB044402E00439032915D9104652F888 +:10E88000043B6340A3F1013E2EEA030313F0803FF3 +:10E89000F1D00346014401E08B4208D0184613F83A +:10E8A000012B6245F8D110BD10460029F1D100209E +:10E8B00010BD1146C9E700BFF8B5DFF860C021F010 +:10E8C00000430027044663450D461646176020D8CE +:10E8D000844653EA0C0C1CD0DFF844C00A4601EA17 +:10E8E0000C0CBCF1000F09D100220B4B03F01AF9FC +:10E8F0006FF0350704460A4621F000436FF31E52BD +:10E900001B1542F07F55A3F2FE3345F400153B443E +:10E91000336020462946F8BD00005043FFFFEF7FDB +:10E920000000F07F2DE9F8431C4D064698460F463F +:10E9300028689146FCF7FEFF194B1C682CB3286829 +:10E9400065681F2D24DC4EB96B1C0235636044F8EA +:10E950002570FCF7F1FF0020BDE8F88304EB85018A +:10E960000123022EC1F8889003FA05F3D4F8882118 +:10E9700042EA0302C4F88821C1F80881E4D1D4F83E +:10E980008C211A43C4F88C21DEE7064C1C60D6E7C4 +:10E99000FCF7D2FF4FF0FF30DEE700BF40770334D3 +:10E9A000EC7F0334248003342DE9F04F036985B0F4 +:10E9B0000C69A342C0F29080013C01F1140500F102 +:10E9C0001408814655F824304FEA840C58F8242066 +:10E9D00005EB8407013308EB840B9A42B2FBF3F694 +:10E9E00042D30020AA46C646CDF80C80034688468E +:10E9F000CDE901C505465AF8042BDEF8001090B2A7 +:10EA000057454FEA124C06FB00508AB24FEA1045B8 +:10EA100080B206FB0C55A2EB00021A44ABB24FEADF +:10EA20001545C3EB224392B203EB114342EA034282 +:10EA30004FEA23434EF8042BDDD24146DDF80C802B +:10EA4000DDE901C558F80C3073B9ABF1040BD845BA +:10EA500004D307E0D84504F1FF3403D25BF804394E +:10EA6000002BF7D0C9F81040484601F043FA0028BF +:10EA70002EDB00224146944655F8040B0B681FFA22 +:10EA800080FEAF429AB24FEA1040A2EB0E026244FF +:10EA9000C0EB224092B200EB134042EA00424FEA40 +:10EAA000204C41F8042BE7D258F8242008EB8403CB +:10EAB0006AB9043B434504D807E0984504F1FF34A4 +:10EAC00003D253F80429002AF7D0C9F810400136C0 +:10EAD000304605B0BDE8F08F002005B0BDE8F08FEE +:10EAE0002DE9F04F816B9DB016461F460446299DC7 +:10EAF000CDE9046741B1C26B012393404A608B604A +:10EB000000F09AFF0023A363B7F10009C0F2B480BC +:10EB100000232B607C4B33EA090300F0B88000220D +:10EB200000239DED047B51EC170B8DED027B03F070 +:10EB300061FA804668B10123289A13602A9B13B1B9 +:10EB4000724B2A9A1360DFF8D08140461DB0BDE8B1 +:10EB5000F08F1AAB204601931BAB0093DDE9022333 +:10EB600001F0AAFA83465FEA195540F0A780DDE973 +:10EB70001A85454405F23243202B40F34982C3F104 +:10EB8000400309FA03F905F2124326FA03F349EAAE +:10EB9000030002F04DFF013D0123A1F1F871149330 +:10EBA00000225B4B02F006FE51A3D3E9002302F0E2 +:10EBB000B9FF51A3D3E9002302F0FEFD06460F463C +:10EBC000284602F045FF4EA3D3E9002302F0AAFF36 +:10EBD00002460B463046394602F0EEFD06460F4629 +:10EBE00003F050FA0022814608900023304639464F +:10EBF00003F00AFA002840F0FD81A8EB0508089D03 +:10EC0000162D08F1FF3A00F2A481424B03EBC50335 +:10EC1000DDE90201D3E9002303F0F6F9002800F052 +:10EC200081806B1EBAF1000F08934FF0000311931F +:10EC3000C0F2958100230A93089B002B78DA089B89 +:10EC40000A9A0B93D21A0A925A42002310920893FE +:10EC5000269B092B74D8052B40F3DF81043B00254C +:10EC60002693269B023B032B00F28786DFE813F0F6 +:10EC7000FF03FC03F203D803012329F000492B60B2 +:10EC8000214BCDF8149033EA09037FF448AFC9F360 +:10EC9000130942F20F73289A59EA060913601DD02E +:10ECA0002A9BDFF87880002B3FF44FAF08F1030375 +:10ECB0002A9A404613601DB0BDE8F08FDDE90212CC +:10ECC000CDF85080A5F2FF35C2F313030846DDF8F6 +:10ECD000688043F07F5141F4401161E72A9BDFF8DF +:10ECE0004080002B3FF431AF08F10803E0E700BF9C +:10ECF00061436F63A787D23FB3C8608B288AC63F42 +:10ED0000FB799F501344D33F0000F07FDD2A101899 +:10ED10000000F83F982C1018DC2A1018342B10181B +:10ED2000282B1018B8F1000F40F31A8511900A90A3 +:10ED3000089B9A440B9300231093269B092B8AD996 +:10ED400000230125CDE926334FF0FF330C950993BD +:10ED50000021099BE1631593204600F047FE0790D0 +:10ED6000002800F01286099B0E2B8CBF002505F0B1 +:10ED70000105079BA363002D00F01E810B9900295C +:10ED800040F35C81A64B01F00F02C8054FEA211544 +:10ED900003EBC203D3E9006740F12183A14B05F0E7 +:10EDA0000F054FF00308D3E90823DDE9020102F063 +:10EDB000E3FFCDE90E018DB1DFF86892E90709D5CF +:10EDC0003046394608F10108D9E9002302F0AAFECD +:10EDD00006460F466D1009F10809EFD132463B4651 +:10EDE000DDE90E0102F0C8FFCDE91201119B53B11C +:10EDF00000228D4BDDE912673046394603F004F9F5 +:10EE0000002840F0B484404602F022FEDDE91223DF +:10EE100002F088FE854B002202F0CEFC099B0646DC +:10EE2000A1F15077002B00F0AE800B9B0E93099B55 +:10EE300018937B4AB046189BB94602EBC303DDE941 +:10EE4000126713ED027B394630468DED167B03F0D9 +:10EE500019F9054602F0FCFD02460B4630463946DC +:10EE6000303502F0A7FC079B0F460C995A1C06464A +:10EE7000EDB21292DDE91623002900F0FB8200209A +:10EE80006B4902F079FF42464B4602F093FC079B28 +:10EE9000324680461D703B46894603F0D3F8002871 +:10EEA00040F05385CDF864A00025CDF858B0DDF8CA +:10EEB00048A0DDF860B018942AE001355D4580F285 +:10EEC000CD844046494600225A4B02F02BFE0022D8 +:10EED000584B804689463046394602F023FE0F469D +:10EEE000064603F0CFF8044602F0B2FD02460B4698 +:10EEF00030343046394602F05DFC42464B460AF853 +:10EF0000014B06460F4603F07FF8002840F0AD8421 +:10EF100032463B460020444902F04CFC42464B46F8 +:10EF200003F072F80028C8D0DDF858B05546189C98 +:10EF3000079902E0A94200F06D842A4615F8013DC8 +:10EF4000392BF7D00133DBB22B70DDF81C80079230 +:10EF50001BE10123BAF1000F1193BFF66BAEC8F1AC +:10EF600001034FF0000A0A9366E6404602F070FD86 +:10EF7000DDE9122302F0D6FD00222C4B02F01CFC2E +:10EF80000646A1F1507700222B4BDDE9120102F079 +:10EF900011FC32463B468046894603F053F8002870 +:10EFA00040F0188440464946324607F1004303F0DA +:10EFB0002BF8002840F085811B9B002B03DB0B9A6C +:10EFC0000E2A40F361810C9A002A68D0269A012A01 +:10EFD00040F3F583099B109A5D1EAA42C0F22C8370 +:10EFE000002BA2EB050580F27D84DDE90923A3EB6C +:10EFF00002082EE3484602F02BFD32463B4602F063 +:10F00000F9FF00287FF4F9AD09F1FF330893F4E527 +:10F01000C3F1200306FA03F0BBE5012521E600BF9A +:10F02000982C1018702C10180000F03F00001C40A5 +:10F030000000E03F000024400000144000F0F48293 +:10F040000B9B5E42B24B06F00F0203EBC203DDE9FD +:10F050000201D3E9002302F065FD3611CDE90E016E +:10F0600000F06584AB4F00234FF00208CDE9120198 +:10F07000F20706D508F10108D7E9002302F052FD96 +:10F080002B46761007F10807F2D1CDE91201002BCB +:10F090007FF4ACAE9DED0E7B8DED127BA6E60023DA +:10F0A000109DDDF828801E460C93B8F1000F0DDD91 +:10F0B000BAF1000F0ADDD04543460A9AA8BF53466D +:10F0C000D21AA8EB0308AAEB030A0A92109B53B1C9 +:10F0D0000C9B13B1002D40F0D0825946109A204667 +:10F0E00000F03AFE83460121204600F055FD089BC2 +:10F0F0000746002B40F05E81269B012B40F3768172 +:10F100000123534413F01F0308D0C3F12002042A43 +:10F1100000F3688208D0C3F13C0300E01C230A9A84 +:10F1200098449A441A440A920A9B002B05DD5946DA +:10F130001A46204600F06AFE8346BAF1000F05DD4C +:10F1400039465246204600F061FE0746269B022BB8 +:10F15000119BD4BF00250125002B40F0B580099BF1 +:10F16000002B26DC2DB3099B002B00F03E82279B51 +:10F17000DDF81C80DB430E933946204600F05CFC32 +:10F180001EB13146204600F057FC5946204600F09B +:10F1900053FC00220E9B079901330A70289A1360D2 +:10F1A0002A9B002B3FF4D1AC404619601DB0BDE84E +:10F1B000F08F0C9B002B00F0A480B8F1000F05DD50 +:10F1C00031464246204600F021FE0646089B002BB1 +:10F1D00040F02D83B146079D099A6B1E02971A4491 +:10F1E000049B03F0010309920A9302995846FFF722 +:10F1F000DBFB31468246584600F07CFE0299804691 +:10F200004A4620460AF1300700F096FEC3680146E0 +:10F21000002B40F04D820890584600F06BFE089994 +:10F220000890204600F008FC269B089A134340F003 +:10F230007B820A9B002B00F05E83B8F1000FC0F2C6 +:10F240005783099BA846AB4208F8017B00F03D8339 +:10F25000594600230A22204600F0F8FB4E4583461B +:10F2600031464FF000034FF00A02204600F056826C +:10F2700000F0ECFB4946064600230A22204600F037 +:10F28000E5FB45468146B0E7214B03EBC203D3E9DA +:10F29000009A279B002B80F20682099B002B00F32B +:10F2A000028273B900221C4B4846514602F03AFCD8 +:10F2B00002460B46DDE9020102F0B0FE002800F034 +:10F2C000898200273E4652E73946584600F012FE32 +:10F2D0000028BFF644AF0B9B59460A222046013B4B +:10F2E0000B93002300F0B2FB0C9B8346002B40F0F5 +:10F2F0000D83159B002B159B099302DC002D7FF4D9 +:10F3000032AFDDF81C800125DDF824900EE000BF4F +:10F31000982C1018702C1018000014405946002327 +:10F320000A22204600F092FB0135834639465846B2 +:10F33000FFF73AFB4D4500F1300308F8013BEDDBE8 +:10F34000099A0025002ACCBF90464FF00108079A81 +:10F350009044594601222046029300F057FD394659 +:10F36000834600F0C7FD002840F33982079A02E087 +:10F37000904500F0438218F8013CC24608F1FF387E +:10F38000392BF5D0013388F800300B9B0E933946AA +:10F39000204600F051FB002E00F037822DB1B5421F +:10F3A00003D02946204600F047FBDDF81C80CDF84D +:10F3B0001CA0E6E601461A46204600F0CDFC269B3E +:10F3C0000746012B40F34B81002308933B6907EB71 +:10F3D0008303186900F08CFBC0F1200391E69DEDDA +:10F3E000027B4FF002088DED0E7BE4E4049B002BC2 +:10F3F0007FF486AEDDE90412C2F31303002B7FF421 +:10F400007FAEC24B13402BB10A9B0AF1010A0133B4 +:10F410000A930123089A0893002A3FF471AED5E7B6 +:10F4200001230C93279B0B9A134415930133012B53 +:10F430001E460993B8BF0126172E40F3948201227D +:10F4400004235B001146013203F11400B042F8D9E5 +:10F45000E16381E401230C93279B002B40F37B8124 +:10F460001E4615930993E7E700230C93DAE7002380 +:10F470000C93F1E74046494602F054FB079B1D7090 +:10F48000189B012BCDE90C0100F03E82189D079BD3 +:10F49000DDF848801D4400229D4B3046394602F07D +:10F4A00041FB0F46064602F0EDFD814602F0D0FA20 +:10F4B00002460B4609F130093046394602F07AF926 +:10F4C00008F8019B454506460F46E4D10022914BC2 +:10F4D000DDE90C894046494602F06EF932463B466A +:10F4E00002F092FD002840F09F8142464B460020EA +:10F4F000884902F05FF932463B4602F0A3FD00283E +:10F5000040F08C801B9B002BFFF6C9AD0B9B0E2B94 +:10F510003FF7C5AD804B0B9ADDF81C8003EBC203AF +:10F52000D3E9009ADDE902674A4653463046394638 +:10F5300002F022FC02F0A6FD054602F089FA4A46D6 +:10F54000534602F0EFFA02460B463046394602F0C7 +:10F5500031F905F13003079A1370099B012B129BB7 +:10F5600000F0F881C3F10102CDF808B0CDF81080A9 +:10F57000984608941446DDF824B01DE04A465346E8 +:10F580003046394602F0F8FB02F07CFD054602F0F9 +:10F590005FFA4A46534602F0C5FA0B460246394620 +:10F5A000304602F007F905F1300308F8013B08EB9B +:10F5B00004035B4500F063810022554B02F0B2FA70 +:10F5C0000022002306460F4602F014FD0028D5D085 +:10F5D000CDF81C80DDF808B0DDF81080089C0B9B8E +:10F5E0000E93D2E5C3F11C0399E539460522204666 +:10F5F00000F02CFA07465846394600F07BFC0028FC +:10F600007FF7B5ADDDF81C80079B013307930B9B9B +:10F6100001330E93312388F80030ADE52A4615F802 +:10F62000013D302BFAD090E49DED027B4FF00208B3 +:10F630008DED127BFFF7DABB109B089AEB1A109541 +:10F6400000251A44099B08929A440A9A90461A4443 +:10F650000A920121204600F09FFA064625E5049B08 +:10F66000002B7FF4B1AEDDE90401C1F313030A46B8 +:10F67000002B3FF4C6AE0890A8E631462A46204645 +:10F6800000F06AFB06465A462046314600F0B2FAC0 +:10F6900059468346204600F0CFF9109B5B1B109320 +:10F6A0003FF421AD19E5079B5A1C9846129239E7A1 +:10F6B00020460897029F00F0BFF9B8F1000F089BA1 +:10F6C00008DB049A269902F0010241EA080852EA8E +:10F6D00008023AD1594601222046029300F096FBD7 +:10F6E0003946834600F006FC0028029B40F3278140 +:10F6F000392B00F0EF800AF13103AA460AF8013BEA +:10F7000035460B9B4E460E9341E600BF0000F07F4E +:10F71000000024400000E03F982C101800F096F9FB +:10F7200045460646814660E5B8F1000FC0F21F81EC +:10F73000269B43EA08080A9B53EA080800F0178151 +:10F74000002A7FF77EAD3B46029F392B00F0C28036 +:10F75000AA460133D2E7012327930993FFF7F8BAAA +:10F76000C8F10103824611900A93FFF7E1BA099BA1 +:10F77000002B3FF4FAAB159D002D7FF71DAC0B9BC2 +:10F78000304639460022013B0E93894B02F0CAF9FC +:10F7900002460F4608F101001646CDE9126702F055 +:10F7A00057F932463B4602F0BDF90022814B02F088 +:10F7B00003F818950646A1F15077FFF73ABB149A63 +:10F7C00072B303F233430A9A9A44109D90461A4446 +:10F7D0000A923EE70027DDF81C803E4614E703D17D +:10F7E000029BDB073FF5C2AD18F8013CC24608F1A9 +:10F7F000FF38302BF8D00B9B0E93C8E50B9B079A74 +:10F8000001330E9331231370C1E5DDF81C80CDF870 +:10F810001CA0BAE40E9B01330E933123FFF794BB77 +:10F820001A9BC3F13603CEE70799FFF786BB7168D1 +:10F83000204600F0DBF80546002800F08D80336993 +:10F8400006F10C010C3002339A00FCF777F82946D8 +:10F850000122204600F0DAFA8146BCE4DDF864A01B +:10F86000DDF858B0189CFFF7A7BBDDF81C80DDF869 +:10F8700058B0189CCDF848A0CDF81CA085E4CDF870 +:10F880001C80DDF808B0DDF81080089C02460B46AD +:10F8900001F092FF4A46534606460F4602F0D2FB5D +:10F8A00058B94A4653463046394602F0A3FB002871 +:10F8B0003FF495AEE9077FF592AE0B9B4146079D5D +:10F8C0000E93CDF81C80FFF738BB3B463546029FB0 +:10F8D0004E463EE5A84639233546079A4E4608F877 +:10F8E000013B48E50A9A9A4490461A440A92B0E6C7 +:10F8F0003B46029F01E73B46029F392BEAD0B8F115 +:10F90000000F3FF7F8AEF8E6129DDFE53146002321 +:10F910000A22204600F09AF8159B0646002B159BFC +:10F9200009933FF74AAC002D7FF41DAC45E49DEDF3 +:10F930000E7B4FF002088DED127BFFF757BA7FF474 +:10F94000DCAEDA077FF5D9AED2E6129BDDF81C807B +:10F9500007931AE4079399E70246174B40F2EF2109 +:10F96000164800F097FE0021E163FFF7F5B9002A81 +:10F970003B46029F3FF7AEAEBFE600252046294634 +:10F98000E56300F033F8079030B90B4B002240F2EA +:10F99000AF110A4800F07EFE079B01222795A36362 +:10F9A0004FF0FF330C9215930993FFF705BB00BF8F +:10F9B0000000244000001C40382B10184C2B10185D +:10F9C00082B049B15AB16BB113780B601278101E36 +:10F9D00018BF012002B0704701A9002AF3D11046D8 +:10F9E00002B070476FF00100F4E700BF38B5436C18 +:10F9F00005460C464BB153F8240080B1026843F829 +:10FA000024200023C0E9033338BD2122042100F063 +:10FA10005FFE034668640028EDD1002038BD012157 +:10FA2000284601FA04F56A1D920000F051FE0028F4 +:10FA3000F3D0C0E90145E4E731B1436C4A6853F8BB +:10FA40002200086043F82210704700BF2DE9F04102 +:10FA500007460E461C460D6901F1140E0020DEF823 +:10FA6000001001308BB285424FEA114102FB034383 +:10FA70004FEA134C9BB202FB01CC03EB0C434FEA61 +:10FA80001C444EF8043BEADC3CB1B368AB4207DDF2 +:10FA900006EB850301355C6135613046BDE8F081D8 +:10FAA000716838460131FFF7A1FF8046A8B132697D +:10FAB00006F10C010C3002329200FBF73FFF7B6C29 +:10FAC000726853F82210316043F82260464606EB14 +:10FAD000850301355C613561DFE70246024BBA21DF +:10FAE000024800F0D7FD00BF382B1018A82B1018C3 +:10FAF000B0F5803F034618D203041020B3F1807F95 +:10FB000001D208301B02B3F1805F01D204301B0127 +:10FB1000B3F1804F03D3002B06DB013070479B000D +:10FB200005D45B0005D4202070470020E6E70230B2 +:10FB300070470330704700BF0368014613F00702A7 +:10FB400007D0DA071FD4980721D55B0801200B6086 +:10FB5000704798B2A0B11046DAB20AB908301B0A51 +:10FB60001A0701D104301B099A0701D102309B0802 +:10FB7000DA0703D45B0800F1010006D00B60704780 +:10FB80001B0C1020E8E700207047202070479B08DE +:10FB900002200B60704700BF38B5436C04460D4629 +:10FBA0004BB15868B0B102685A6000220123456128 +:10FBB000C0E9032338BD2122042100F089FD03465A +:10FBC00060640028EDD1094B002240F2451108483D +:10FBD00000F060FD1C220121204600F079FD002884 +:10FBE000F1D001220223C0E90123DEE7382B1018EF +:10FBF000A82B10182DE9F04FD1F8108085B01569A9 +:10FC00000E469246A84505DB2A46534645468A4697 +:10FC100090461E4605EB0804DAE90113A342B8BF7B +:10FC20000131FFF7E3FE002800F08B8000F114079C +:10FC300007EB840E774505D23B46002243F8042BA0 +:10FC40009E45FBD814360AF1140906EB880809EB27 +:10FC50008505464568D2A5EB0A030AF1150ACDF8D9 +:10FC600008E0AE46153B039423F0030304335545E7 +:10FC70002CBF9B464FF0040B824605E0090C2CD1AB +:10FC8000B04507F104074CD956F8041B8DB2002D7E +:10FC9000F4D0CC463C46002301965CF8040B216866 +:10FCA00086B2E6458AB24FEA104005FB06224FEACB +:10FCB00011411A4405FB001101EB124192B24FEAC7 +:10FCC000114342EA014244F8042BE6D8019E47F86A +:10FCD0000B3056F8041C090CD2D03B680022484671 +:10FCE0003D461C46944602889BB201FB02C202EBD1 +:10FCF000144243EA024345F8043B50F8043B2C68A5 +:10FD00004FEA134C7045A3B201FB0C3303EB1243D3 +:10FD10004FEA134CE7D3B04547F80B3007F104071F +:10FD2000B2D85046DDE902E4002C02DC05E0013CDB +:10FD300003D05EF8043D002BF9D0046105B0BDE8A6 +:10FD4000F08F0246024B4FF4B171024800F0A2FC62 +:10FD5000382B1018A82B101812F003032DE9F041CE +:10FD6000144607462CD10D46A4101CD03E6C86B319 +:10FD7000E3074FF0000806D4641014D03068A8B12F +:10FD80000646E307F8D5324629463846FFF732FFE4 +:10FD900035B17B6C696853F821202A6043F8215003 +:10FDA00064100546EAD12846BDE8F0813246314666 +:10FDB0003846FFF71FFF30600646C0F80080E0E7D6 +:10FDC000013B0F4A52F823200023FFF73FFE054670 +:10FDD000CAE701213846FFF709FE064640B1012374 +:10FDE00040F27122C0E90432002338640360BFE7A7 +:10FDF0000246044B40F24511034800F04BFC00BFA3 +:10FE0000642C1018382B1018A82B10182DE9F04767 +:10FE10000C46904606464FEA62192769A36807EB2D +:10FE2000621749687D1C9D4203DD5B0001319D42E4 +:10FE3000FBDC3046FFF7DAFD002850D0B9F1000FA7 +:10FE400000F1140C0EDD09F10502634600214FEAB2 +:10FE5000820E00EB820243F8041B9342FBD1AEF109 +:10FE600014039C4404F11403216918F01F0803EBE8 +:10FE700081012BD0C8F12009E6464FF0000A1A682C +:10FE800002FA08F242EA0A024EF8042B53F8042B55 +:10FE9000994222FA09FAF2D80B1B04F11502153B1C +:10FEA00023F003030433914238BF04234CF803A02A +:10FEB000BAF1000F00D13D46736C6268056153F8DA +:10FEC0002210216043F82240BDE8F087ACF1040C19 +:10FED00053F8042B99424CF8042FF9D8EBE702466B +:10FEE000024B4FF4EF71024800F0D4FB382B10188E +:10FEF000A82B101884460B690069C01A16D10CF1A2 +:10FF0000140C14310CEB830201EB830310B401E0F9 +:10FF1000944508D252F8044D53F8041D8C42F7D092 +:10FF200005D24FF0FF305DF8044B70477047012059 +:10FF30005DF8044B704700BF2DE9F04F15460A6984 +:10FF400083B088462B69D21A002A40F08B8001F1D9 +:10FF5000140605F1140101EB830106EB830302E0B3 +:10FF60009E4280F0828053F8044D51F8042D944253 +:10FF7000F6D078D32B460024454698466968FFF7AB +:10FF800035FD002800F08C802E6905F1140B08F176 +:10FF9000140ED8F8103000F1140A05F110020EEB1F +:10FFA00083094FF0000C0BEB86015746C460CDF877 +:10FFB00004B05EF8044B52F8045F1FFA84FBF1456D +:10FFC000ABB24FEA1444A3EB0B03C4EB15446344F8 +:10FFD00004EB23449BB24FEA244C43EA044347F822 +:10FFE000043BE6D8A9EB080408F11508DDF804B0D5 +:10FFF000C145A4F1150434BF4FF000084FF00108CB :02000004701179 -:10000000042FF9D8EBE70246024B4FF4EF71024898 -:1000100000F0D4FB382B1018A82B101884460B695D -:100020000069C01A16D10CF1140C14310CEB8302C8 -:1000300001EB830310B401E0944508D252F8044D5B -:1000400053F8041D8C42F7D005D24FF0FF305DF815 -:10005000044B7047704701205DF8044B704700BFA8 -:100060002DE9F04F15460A6983B088462B69D21AEC -:10007000002A40F08B8001F1140605F1140101EB18 -:10008000830106EB830302E09E4280F0828053F8F6 -:10009000044D51F8042D9442F6D078D32B46002419 -:1000A000454698466968FFF735FD002800F08C80CA -:1000B0002E6905F1140B08F1140ED8F8103000F178 -:1000C000140A05F110020EEB83094FF0000C0BEB44 -:1000D00086015746C460CDF804B05EF8044B52F870 -:1000E000045F1FFA84FBF145ABB24FEA1444A3EB63 -:1000F0000B03C4EB1544634404EB23449BB24FEA67 -:10010000244C43EA044347F8043BE6D8A9EB08042F -:1001100008F11508DDF804B0C145A4F1150434BF99 -:100120004FF000084FF00108A408B8F1000F04F1E7 -:1001300001024FEA820208BF04220BEB020552447F -:10014000A94231D917462C4654F8043B1FFA83F8CC -:10015000A1424FEA134E6344C4449BB20EEB2C4CB5 -:1001600043EA0C434FEA2C4C47F8043BECD80139E6 -:10017000491B21F003010A4423B952F8043D013E12 -:10018000002BFAD0066103B0BDE8F08F86DA0124B7 -:1001900088E70021FFF7BEFC78B101220023C0E907 -:1001A000042303B0BDE8F08FB8F1000F4FEA8404D8 -:1001B00008BF00240AEB0402DEE70246064B40F2C9 -:1001C0003721064800F0FAFA0246034B40F2452177 -:1001D000024800F0F3FA00BF382B1018A82B1018B3 -:1001E000F0B5012183B016461F46FFF793FC054684 -:1001F000002849D0C7F30A54C7F313030CB143F4E2 -:100200008013002E019315D101A8FFF729FD019954 -:10021000012200F1200369612A611CB3A4F2334476 -:10022000C3F135001C44089B1C60099B18602846DC -:1002300003B0F0BD68460096FFF712FD019A034631 -:1002400000B3C0F1200102FA01F1C240009801920E -:100250000143002AC5E905120CBF012202222A61CE -:10026000002CDBD1A3F23243089805EB8201036036 -:100270000869FFF7D1FC099BC0EB421018602846C3 -:1002800003B0F0BD0099E4E70246034B40F20F31A2 -:10029000024800F093FA00BF382B1018A82B101852 -:1002A0002DE9F04F164683B0002900F09E800C46E1 -:1002B00006F10B058046FCF7E9F854F8040C162DFE -:1002C000A4F1080920F0030762D810220023154684 -:1002D000B542C0F0A280002B40F09F80974261DAC7 -:1002E000DFF828B309EB0701DBF80830D1F804C0C8 -:1002F0008B4200F097802CF001030B445B68DB0716 -:1003000068D42CF0030C07EB0C03934245DAC307C7 -:1003100012D454F8083CA9EB030ADAF8043023F0AD -:10032000030084440CEB070B5A4540F3FE8007EBB7 -:10033000000B5A4540F3D48031464046FBF7FCFDA4 -:100340000646002800F0298154F8043CA0F1080278 -:1003500023F001034B44934200F0B1803A1F242A5A -:1003600000F2DF80132A00F2B080034622461168B3 -:1003700019605168596092689A6021464046FBF7BF -:10038000DFFC4046FCF788F8304603B0BDE8F08F4C -:1003900025F007052A46EB0F9AE71F46D1E902230D -:1003A000D3609A60781BD9F8043009EB07020F2854 -:1003B00003F001031FD83B43C9F80430536843F0EE -:1003C0000103536026464046FCF766F8304603B00A -:1003D000BDE8F08FC307AFD454F8083CA9EB030A7B -:1003E000DAF8043023F00300A1E7114603B0BDE8BA -:1003F000F04FFBF7A1BD2B4309EB050140F00100D5 -:10040000C9F80430083141F8040C4046536843F001 -:1004100001035360FBF794FCD4E70C23C8F80030C9 -:100420000026D3E72CF0030C05F110010CEB0703B9 -:100430008B4280F29280C0073FF57EAF54F8083CB3 -:10044000A9EB030ADAF8043023F0030084440CEB30 -:10045000070399423FF76BAF3A1F5646DAF80C1084 -:1004600056F8080F242AC160886000F2B080132A71 -:1004700040F2AB8021681B2ACAF808106168CAF8EC -:100480000C1000F2AB8008340AF1100221681160F0 -:1004900061685160A16891605B1B0AEB05024046F0 -:1004A00043F00103CBF808205360DAF8043003F07E -:1004B00001032B43CAF80430FBF7EEFF86E750F840 -:1004C000043C23F003031F446CE723681B2A0360EA -:1004D0006368436036D804F1080200F1080346E778 -:1004E0003A1F5646DAF80C30242A56F8081FCB601B -:1004F000996022D8132A1ED923681B2ACAF808300B -:100500006368CAF80C303CD808340AF1100322683A -:100510001A6062685A60A2689A6034465F46D146A3 -:1005200040E72146FEF752F927E7D1E902133A1FC7 -:10053000CB609960D5E73346E9E721463046FEF7C0 -:1005400045F9EAE7A368242A8360E368C36028D0FA -:1005500004F1100200F1100309E75B1B09EB05022F -:100560004046264643F00103CBF80820536054F878 -:10057000043C03F001032B4344F8043CFBF78CFFDD -:1005800024E7A368242ACAF81030E368CAF81430B4 -:1005900010D010340AF11803B9E74046FBF77CFF8E -:1005A0003EE7236904F1180203616369436100F1C6 -:1005B0001803DCE623691834CAF8183054F8043CF0 -:1005C000CAF81C300AF12003A1E732465EE7214653 -:1005D00030460193FEF7FAF8019B5DE7A168242AF3 -:1005E000CAF81010E168CAF8141003D010340AF1E8 -:1005F00018024BE722691834CAF8182054F8042C62 -:10060000CAF81C200AF1200240E700BF50770334EB -:10061000034649B1FF2A02D801200A7070478A2296 -:100620004FF0FF301A6070470846704770B50546B6 -:1006300084B05BB11C460F4BD3F8E060234669B130 -:100640002846B047431C0FD004B070BD094B00F5DD -:100650008274D3F8E06023460029F1D10A46284687 -:1006600001A9B047431CEFD100228A2322602B60EE -:1006700004B070BD587B033410B582B0049C009365 -:100680004FF0FF33019400F06DF902B010BD00BFD0 -:10069000B1F90C302DE9F0410C46990796B008D518 -:1006A00004F1430301222360C4E9043216B0BDE81B -:1006B000F081B4F90E100646002926DB6A4600F0E8 -:1006C00055F800281FDB019D4FF480684FF4006748 -:1006D00005F47045A5F50055B5FA85F56D09414657 -:1006E0003046FBF729FCE8B1B4F90C30C4F81480AB -:1006F00043F0800320602061A3813DBB3B43A38185 -:1007000016B0BDE8F081B4F90C3013F0800519D0B3 -:100710004FF040080025304641462F46FBF70CFCC1 -:100720000028E1D1B4F90C309A05BFD423F00303BB -:1007300004F14302012143F002032260C4E90421D1 -:10074000A381B3E74FF480682F46C8E7B4F90E10D1 -:10075000304600F021F810B9B4F90C30CEE7A38987 -:1007600023F0030343F001031BB2C7E770B50C4647 -:100770000346084D0026204611461C462E60F5F71C -:1007800011F9431C00D070BD2B68002BFBD02360F7 -:1007900070BD00BFDC7F033438B50022064D04462F -:1007A00008462A60F5F73CF9431C00D038BD2B6899 -:1007B000002BFBD0236038BDDC7F03340A4D144688 -:1007C0001A4603462E680D4600B5F06885B044B160 -:1007D00006490095CDE90114054900F0D5F8FAF76E -:1007E00035FE04490C46F4E7FC750334042C10185C -:1007F000142C1018102C101838B5A1FB021434BB9F -:10080000FBF79AFB054630B350F8042C22F00302A4 -:10081000043A242A0CD8132A0FD91B2AC0E9004411 -:1008200012D9242AC0E9024418D000F1100205E0D0 -:100830002146FAF7C5FF284638BD02460023284660 -:10084000C2E90033936038BD00F10802F6E7FBF718 -:10085000D3F80C2303600025284638BD00F11802A8 -:10086000C0E90444EAE700BF2DE9F04F8BB08646AB -:100870001E46DDE9157A002F5AD0156800295CD094 -:10088000149B002B69D0741E4EB3043D0026DDF886 -:1008900050B0049103910592CDE9015E0BE0039BFA -:1008A0000BBB019B1868002836D0DC4557D2013CB1 -:1008B0006646631C13D001993B46029851F8042FF9 -:1008C000DAF8E050019107A9D7E90098A847421C3F -:1008D00037D000EB060CDC45E1D9C7E9009830467B -:1008E0000BB0BDE8F08F00280EDD049B07A9019D29 -:1008F00018445A1E00F1FF3E11F8013B02F8013F77 -:100900007245F9D101950490059B1A6804321A606A -:10091000019B18680028C8D10399059A01B110609D -:100920000CF1FF36002230463A600BB0BDE8F08F84 -:1009300000F5867715680029A2D14FF0FF33149394 -:10094000A1E70646DDF808E08A2100223046CEF80D -:1009500000103A600BB0BDE8F08F149EBFE766460A -:10096000BDE700BF10B584B0054C0698009007980D -:100970000190044800680294FFF776FF04B010BDB0 -:10098000587B0334FC7503340EB410B583B0074CA8 -:10099000014605AB206853F8042B019300F008F8DA -:1009A00003B0BDE8104003B0704700BFFC750334CE -:1009B0002DE9F04FC9B082461C4618AF0591079249 -:1009C0000021082238460B93FAF7FAFEBAF1000F1D -:1009D00004D0DAF83430002B00F03F86059B5A6EC5 -:1009E000B3F90C30D00702D4990540F1FA849E0483 -:1009F00006D4059943F4005322F400528B814A66D1 -:100A0000950400F1CE86059AB2F90C30190740F131 -:100A1000CC801269002A00F0C88003F01A020A2A6A -:100A200000F0D2800023DFF818B99C46CDE91D33D1 -:100A30001FABCDF83CC0CDF820C099461C93CDF833 -:100A400038C0CDE910CC079DDBF8E440FDF73EFF50 -:100A50002A46034616A950460097A0470028034699 -:100A600000F0D180C0F2C780169A252A01D01D441B -:100A7000EAE7079B0446EE1A40F0C98000234FF0D6 -:100A8000FF326C1C69788DF85330099306920393FA -:100A90000134A1F120035A2B00F2FA80DFE813F0B1 -:100AA0006902F800F8006302F800F800F8006A0034 -:100AB000F800F800E701F801F800F2010302F8007D -:100AC000FD015B005B005B005B005B005B005B00AB -:100AD0005B005B00F800F800F800F800F800F80090 -:100AE000F800F800F8009B017302F800F800F80025 -:100AF000F800F800F800F800F800F800F8001E020E -:100B0000F800F800F8007501F8009602F800F80007 -:100B1000DC04F800F800F800F800F800F800F8002D -:100B2000F800F800F8009B01BE01F800F800F8009A -:100B30008D02BE017F00F800F302F800E402DA043F -:100B4000CC027F00F80075017D00D704F800F800A2 -:100B5000FE04F8007D00A1F13003002202EB8202C6 -:100B600014F8011B03EB4202A1F13003092BF5D964 -:100B700009928EE75046FDF7AFFE43681846109382 -:100B8000FAF7E6FF119005465046FDF7A5FE83688B -:100B90000F9315B1002B40F04E84217878E7039B2A -:100BA000217843F02003039372E7059D50462946C0 -:100BB000FDF7AAFD002840F01286B5F90C3003F0CD -:100BC0001A020A2A7FF42EAF0599B1F90E20002AE5 -:100BD000FFF628AF4A6ED60702D49D0540F1B985CD -:100BE0002346079A0599504600F018FE0890089889 -:100BF00049B0BDE8F08F082200213846FAF7E0FD41 -:100C000001231D4420E7079B0446EE1A12D0079BE0 -:100C1000C9E900361E9B33441E931D9B0133072BED -:100C20001D9311DC09F10809089B33440893002C3B -:100C30007FF424AF1E9B002B40F0A6850022059B6D -:100C40001D92B3F90C3018E01CAA05995046FDF727 -:100C5000A5FA78B90DF17C09E6E71CAA059950467A -:100C6000FDF79CFA00287CD00A9B1BB10A995046DC -:100C7000FBF766F8059BB3F90C30059A526ED10765 -:100C80007AD55B0600F19785089849B0BDE8F08FEA -:100C900007940029CED000232FAC8DF8BC108DF81E -:100CA00053300123049300220A9206920C92039877 -:100CB00010F08406DDE91D2105D10998049D451B2E -:100CC000002D00F39D829DF8530078B10132012080 -:100CD0000131C9F80400072A0DF15300CDE91D21A7 -:100CE000C9F8000000F3C88209F108090C9878B12E -:100CF000013215A80231C9F80000072A4FF002009E -:100D0000CDE91D21C9F8040000F3C58209F10809E5 -:100D1000802E00F0E9810698C51A002D00F3278285 -:100D200001321944C9F80040072AC9F80430CDE956 -:100D30001D2100F3598209F10809039B580705D5C5 -:100D4000099B049A9C1A002C00F3B4820498DDE9F4 -:100D500008328242ACBF9B181B18089300297FF40D -:100D60007CAF00231D930A9B1BB10A995046FAF7EA -:100D7000E7FF0DF17C0966E69A0582D4059CA06D1B -:100D8000FAF76EFEB4F90C307BE70B9E0023079454 -:100D900056F8044B8DF85330002C00F0788453291A -:100DA00000F09683039B13F0100540F09183069B9F -:100DB000002BC0F2B2841A4629462046FDF7C4FD36 -:100DC0000A90002800F00885031B0A9523EAE372C5 -:100DD000049200F08BBC0B9B4329079403F104059C -:100DE00003D0039BDC0640F15D83082200211AA892 -:100DF0002FACFAF7E5FC0B9A1AAB50461268214665 -:100E0000FFF714FC0346581C00F0DA8423EAE3726F -:100E1000049200220B958DF8532044E7039B07941E -:100E2000990640F1B9800B9B073323F007031A465C -:100E3000596852F8083B0B920A460029C0F22C81EF -:100E400006990029C0F23581039921F080010391B0 -:100E500040F02F8153EA020114BF0121002140F02C -:100E600028810B469DF8532048AC06912EE10B9B40 -:100E700053F8042B002A099280F2AF82099A0B934F -:100E800052420992039B217843F004030393FFE548 -:100E90002B2321788DF85330FAE5039B217843F01A -:100EA00080030393F4E5204610F8011B2A2900F083 -:100EB000A184A1F13003092B00F26184002202EB2E -:100EC000820210F8011B03EB4202A1F13003092B4F -:100ED000F5D942EAE27304460693DAE5039B0794E8 -:100EE00043F010030393039B13F0200200F055829C -:100EF0000B9B073323F0070319465A6851F8083B48 -:100F00000B910399069C21F4806000218C428DF89E -:100F1000531074DA48AC03F00701DB08254643EAB6 -:100F200042733031D20804F8011D53EA0206F2D1AF -:100F3000302902D0C60700F1648248AB03901B1B26 -:100F4000069A9A42B8BF1A46049200220A92039A5D -:100F500012F002020C923FF4AAAE049A02320492FA -:100F600002220C92A3E6039B217843F00103039332 -:100F70008EE59DF853302178002B7FF489AD202336 -:100F80008DF8533084E5039B079443F010030393DB -:100F9000039B99063FF547AF0B9A52F8043B0B921F -:100FA000039AD20600F12A82039A560640F1228261 -:100FB00043F3C0321BB211463FE72178039B6829F7 -:100FC00000F0788243F04003039361E5039B0794AC -:100FD00043F0100010F0200200F0D0810B9B07338B -:100FE00023F0070319465A6851F8083B0B9100217A -:100FF0008DF8531006990029C0F2BF83012120F01B -:101000008004039453EA020440F09C81069D2C1E48 -:1010100018BF0124002D40F09581002940F0848103 -:1010200010F00103049300F0A38130220DF21F148D -:1010300006918DF81F2183E7039B0B9A43F0020072 -:1010400047F63003BB49ADF8543052F8043B0794DF -:101050000B9200220E9100218DF853100699002961 -:10106000C0F277810221CAE7039B07949C0640F1F6 -:10107000D1810B9B089A1B681A60D2175A600B9B90 -:1010800004330B93DFE42178039B6C2900F0198271 -:1010900043F010030393FBE42D215B428DF85310C2 -:1010A00062EB42020699002903DB039921F08001DB -:1010B00003910A2B72F1000180F0728230339DF8A7 -:1010C00053200DF21F148DF81F3101230699994208 -:1010D000B8BF19460491002A00F04E8100220A92FE -:1010E000049A0132049232E70998049D451B002DB1 -:1010F0007FF711AE102DDFF8408226DD4846994675 -:1011000043461026A0461C4602E0103D102D17DD78 -:1011100001321031072AC0E90046CDE91D2100F156 -:101120000800F2DD1CAA05995046FDF737F80028A3 -:101130007FF49AAD103D1FA8102DDDE91D21E7DCDD -:101140004B46814620464446804601322944C9F830 -:101150000080072AC9F80450CDE91D2100F38282DE -:10116000069809F10809C51A002D7FF7D9AD102D91 -:10117000DFF8C4812ADD2846CC462546C146102624 -:101180009846044602E0103C102C19DD0132103163 -:10119000694B072ACCE90036CDE91D210CF1080C7A -:1011A000F1DD1CAA05995046FCF7F8FF0DF17C0C07 -:1011B00000287FF459AD103C102CDDE91D21E5DC41 -:1011C000204643462C46C8460546E146013229449E -:1011D000C9F80080072AC9F80450CDE91D2100F3A1 -:1011E000ED8009F108099BE51CAA05995046FCF71A -:1011F000D5FF00287FF438AD1E990DF17C099CE5E0 -:101200004E48102D0D9028DDCC46129613944FF0C9 -:1012100010089946059C064602E0103D102D18DD89 -:1012200001321031072ACCE90068CDE91D210CF10B -:10123000080CF2DD1CAA21465046FCF7AFFF0DF169 -:101240007C0C00287FF410AD103D102DDDE91D2130 -:10125000E6DC4B46E146DDE9126401320D98294493 -:10126000C9F80450072AC9F80000CDE91D2100F390 -:10127000878109F1080926E51CAA059950460D93B6 -:10128000FCF78CFF00287FF4EFAC0DF17C090D9B7F -:10129000DDE91D212AE51CAA059950460C93FCF7AF -:1012A0007DFF00287FF4E0AC0DF17C090C9BDDE9AB -:1012B0001D212DE5102C1D9B40F370821F4E102523 -:1012C000DDF814800D9602E0103C102C18DD01337F -:1012D0001031072BC9E90065CDE91D3109F1080975 -:1012E000F2DD1CAA414650460DF17C09FCF756FF81 -:1012F00000287FF4B9AC103C102CDDE91D31E6DC90 -:1013000001330D9A2144072BC9E90024CDE91D3191 -:101310007FF71CAD1CAA05995046FCF73FFF00283B -:101320007FF4A2AC1E9911E523460A9448AC0693BB -:1013300004930CE6AC2A1018642E1018742E1018A2 -:10134000587B033401293FF4B4AE022903987FF49B -:10135000E1AD48AC0E9D03F00F011B09695C43EA47 -:101360000273120904F8011D53EA0201F3D1E4E506 -:101370000A4648AC0B4606910A92E8E50B9951F8EB -:10138000043B0B9110F010017FF431AE10F04004DB -:1013900000F08E819BB20A4629E60B9951F8043B76 -:1013A0000B91039911F010017FF4ABAD039A12F089 -:1013B000400000F075819BB20A46A2E51CAA05997F -:1013C00050460693FCF7EAFE00287FF44DAC0DF181 -:1013D0007C09069BDDE91D21A2E421780B93FFF730 -:1013E00057BB059DA86DFAF739FBB5F90C306A6E4D -:1013F000FFF7FDBA039A950500F18481DA171146CB -:101400001BE53023023D039004F8013C48AB2C4619 -:101410005B1B95E5039BD80600F13481039B5906BD -:1014200000F17681039B9A0540F12C810B9B089A71 -:101430001B681A7023E60F9B21781B78002B3FF462 -:1014400027AB039B43F480630393FFF721BB03980F -:101450000794BFE5079446E5B44B07940E93039BAE -:1014600013F020027CD00B9B073323F007031846B0 -:101470005A6850F8083B0B9053EA02000AD00398D0 -:10148000C40707D58DF8551040F0020103913021B3 -:101490008DF85410039921F48060DCE5A44B079487 -:1014A0000E93DCE70B9B2FAC1B688DF8BC3001233F -:1014B0000493AEE443F40073617801340393FFF7BF -:1014C000E7BA43F02003617801340393FFF7E0BAF1 -:1014D000082200211AA81794FAF772F9069A002A2E -:1014E000C0F2F5800025CDF810909146A8460EE098 -:1014F0002FA95046FFF79AF8431C05F10405404414 -:1015000000F05E81484507DC00F062818046179A52 -:101510001AAB5259002AEBD1DDF810904346002B4C -:1015200000F0E280632B00F3098100222FAC0A92C5 -:10153000082200211AA80493FAF742F91AAB17AA55 -:10154000214600935046049BFFF796F8049B834284 -:1015500040F05B810022E25423EAE3720492C5E08A -:101560000B9850F8043B0B90039810F0100083D1B7 -:10157000039A12F0400400F0A2809BB202467BE77F -:101580001CAA059950460D93FCF708FE00287FF42D -:101590006BAB0DF17C090D9BDDE91D21FFF793BBC2 -:1015A00003994FF0000ECDF830A00DF5907C01F4BA -:1015B0008061DDF83CA09846CDF82890049107E0C2 -:1015C000B8F10A0F72F100023CD3B0462A46A44695 -:1015D00018EB020057490EF1010E0CF1FF3440F1F7 -:1015E00000000B46A1FB001525F0030101EB95015E -:1015F0004FF0CC35401AB8EB000162F1000605FB54 -:1016000001F503FB0655A1FB036105230D4406F01C -:1016100001017608A1FB0319049B46EAC576091867 -:101620006D0830310CF8011C002BC9D09AF800105D -:101630007145C5D1FF29C3D0B8F10A0F72F100027C -:1016400080F08C8048ABCDF83CA0DDF82890DDF828 -:1016500030A01B1B9DF8532038E55046F9F7B0FF2A -:10166000FFF7BCB91CAA059950460C93FCF796FDF0 -:1016700000287FF4F9AA0DF17C090C9BDDE91D21FE -:10168000FFF749BB0B9B089A1B681A60F7E4069B9F -:10169000294C062B0B9628BF06230493FFF703BBA8 -:1016A000039A12F400723FF42CACDBB2024628E439 -:1016B00010F400723FF49BACDBB2224697E4039A2D -:1016C00012F400723FF4D8AEDBB22246D4E61AAB75 -:1016D00017AA5046009300231946FEF7CDFF451C7C -:1016E00003466DD017941AE704930A939DF853208C -:1016F0001AB100220B960692F2E40692CDE90B6233 -:10170000FFF7D5BA43F3C0125BB21146FFF795BBA2 -:101710000B9B089A1B681A80B1E42046FAF718FA66 -:1017200020EAE07203460A950492DFE7C02A101807 -:10173000AC2A1018CDCCCCCCD42A1018591C504649 -:101740000493FAF7F9FB049B0446002838D00A906A -:10175000EEE6886DFAF784F9FFF742BA119B10990B -:10176000E41A1A462046FAF77DF89AF801200AB1E1 -:101770000AF1010A4FF0000E27E7039099E40023D5 -:1017800004460693FFF785B91CAA05995046FCF755 -:1017900005FD00283FF452AAFFF76CBA1E4A0D92CD -:1017A000AEE5D40707D4059B9B89980503D4059B18 -:1017B000986DFAF755F94FF0FF330893FFF764BAC5 -:1017C000059AB2F90C3043F040039381FFF755BA04 -:1017D000DDF81090069BA2E6069B049386E7059A27 -:1017E000536EDB07E7D493899F05E4D4906DFAF735 -:1017F00037F9E0E70B9B6178044653F8042B42EA83 -:10180000E2720B930692FFF743B9059A938943F06E -:1018100040039381FFF728BA742E1018F0B51F46C5 -:101820008B89ADF26C4D154623F00203064616A8CF -:101830000C46ADF80C301AAB009304934FF4806360 -:10184000029305934B6E1993CB89ADF80E30CB699B -:1018500007934B6A099300230693FAF7FBF82A468D -:101860003B4669463046FFF7A3F8051E07DB69468D -:101870003046FCF79FFD002818BF4FF0FF35BDF83C -:101880000C305B0603D5A38943F04003A38116986F -:10189000FAF7E2F828460DF26C4DF0BD2DE9E04F65 -:1018A0002746A046A146A246A346A446A2B02DECD8 -:1018B000000A84F3008825462646A447EFF31485E2 -:1018C00015F0080F18BFB0EE400A3DEC000A22B038 -:1018D000BDE8E08F81F0004102E000BF83F00043EB -:1018E00030B54FEA41044FEA430594EA050F08BFBB -:1018F00090EA020F1FBF54EA000C55EA020C7FEA7F -:10190000645C7FEA655C00F0E2804FEA5454D4EBFB -:101910005555B8BF6D420CDD2C4480EA020281EAC5 -:10192000030382EA000083EA010180EA020281EAFD -:101930000303362D88BF30BD11F0004F4FEA01314F -:101940004FF4801C4CEA113102D0404261EB41015E -:1019500013F0004F4FEA03334CEA133302D05242E4 -:1019600063EB430394EA050F00F0A780A4F10104A0 -:10197000D5F1200E0DDB02FA0EFC22FA05F28018DA -:1019800041F1000103FA0EF2801843FA05F35941C0 -:101990000EE0A5F120050EF1200E012A03FA0EFC3F -:1019A00028BF4CF0020C43FA05F3C01851EBE37169 -:1019B00001F0004507D54FF0000EDCF1000C7EEB86 -:1019C00000006EEB0101B1F5801F1BD3B1F5001FC4 -:1019D0000CD349085FEA30004FEA3C0C04F10104E3 -:1019E0004FEA445212F5800F80F09A80BCF1004F0C -:1019F00008BF5FEA500C50F1000041EB045141EA8E -:101A0000050130BD5FEA4C0C404141EB0101013C56 -:101A100028BFB1F5801FE9D291F0000F04BF014645 -:101A20000020B1FA81F308BF2033A3F10B03B3F117 -:101A300020020CDA0C3208DD02F1140CC2F10C02A7 -:101A400001FA0CF021FA02F10CE002F11402D8BF05 -:101A5000C2F1200C01FA02F120FA0CFCDCBF41EAD1 -:101A60000C019040E41AA2BF01EB0451294330BDA0 -:101A70006FEA04041F3C1CDA0C340EDC04F114047D -:101A8000C4F1200220FA04F001FA02F340EA030054 -:101A900021FA04F345EA030130BDC4F10C04C4F19A -:101AA000200220FA02F001FA04F340EA030029467A -:101AB00030BD21FA04F0294630BD94F0000F83F4C4 -:101AC000801306BF81F480110134013D4EE77FEAA7 -:101AD000645C18BF7FEA655C29D094EA050F08BFF3 -:101AE00090EA020F05D054EA000C04BF19461046D4 -:101AF00030BD91EA030F1EBF0021002030BD5FEA18 -:101B0000545C05D14000494128BF41F0004130BD3F -:101B100014F580043CBF01F5801130BD01F0004593 -:101B200045F0FE4141F470014FF0000030BD7FEA06 -:101B3000645C1ABF194610467FEA655C1CBF0B4601 -:101B4000024650EA013406BF52EA033591EA030F18 -:101B500041F4002130BD00BF90F0000F04BF002110 -:101B6000704730B54FF4806404F132044FF0000543 -:101B70004FF0000150E700BF90F0000F04BF0021BC -:101B8000704730B54FF4806404F1320410F0004522 -:101B900048BF40424FF000013EE700BF42004FEA1D -:101BA000E2014FEA31014FEA02701FBF12F07F439A -:101BB00093F07F4F81F06051704732F07F4208BF51 -:101BC000704793F07F4F04BF41F40021704730B558 -:101BD0004FF4607401F0004521F000411CE700BFA4 -:101BE00050EA010208BF704730B54FF000050AE027 -:101BF00050EA010208BF704730B511F0004502D528 -:101C0000404261EB41014FF4806404F132045FEA29 -:101C1000915C3FF4D8AE4FF003025FEADC0C18BFD2 -:101C200003325FEADC0C18BF033202EBDC02C2F1C4 -:101C3000200300FA03FC20FA02F001FA03FE40EA56 -:101C40000E0021FA02F11444BDE600BF70B54FF05A -:101C5000FF0C4CF4E06C1CEA11541DBF1CEA135538 -:101C600094EA0C0F95EA0C0F00F0DEF82C4481EAA0 -:101C7000030621EA4C5123EA4C5350EA013518BFC0 -:101C800052EA033541F4801143F4801338D0A0FBAD -:101C900002CE4FF00005E1FB02E506F00042E0FB5A -:101CA00003E54FF00006E1FB03569CF0000F18BF60 -:101CB0004EF0010EA4F1FF04B6F5007F64F5407408 -:101CC00004D25FEA4E0E6D4146EB060642EAC6219B -:101CD00041EA55514FEAC52040EA5E504FEACE2E08 -:101CE000B4F1FD0C88BFBCF5E06F1ED8BEF1004F0B -:101CF00008BF5FEA500E50F1000041EB045170BD87 -:101D000006F0004646EA010140EA020081EA0301CA -:101D1000B4EB5C04C2BFD4EB0C0541EA045170BDC6 -:101D200041F480114FF0000E013C00F3AB8014F140 -:101D3000360FDEBF002001F0004170BDC4F1000489 -:101D4000203C35DA0C341BDC04F11404C4F120050A -:101D500000FA05F320FA04F001FA05F240EA020065 -:101D600001F0004221F0004110EBD37021FA04F69B -:101D700042EB06015EEA430E08BF20EAD37070BD55 -:101D8000C4F10C04C4F1200500FA04F320FA05F0B4 -:101D900001FA04F240EA020001F0004110EBD370B6 -:101DA00041F100015EEA430E08BF20EAD37070BD26 -:101DB000C4F1200500FA05F24EEA020E20FA04F3FF -:101DC00001FA05F243EA020321FA04F001F00041AE -:101DD00021FA04F220EA020000EBD3705EEA430E1F -:101DE00008BF20EAD37070BD94F0000F0FD101F04E -:101DF0000046400041EB010111F4801F08BF013C87 -:101E0000F7D041EA060195F0000F18BF704703F0C4 -:101E10000046520043EB030313F4801F08BF013D4B -:101E2000F7D043EA0603704794EA0C0F0CEA135507 -:101E300018BF95EA0C0F0CD050EA410618BF52EAC1 -:101E40004306D1D181EA030101F000414FF00000C7 -:101E500070BD50EA410606BF1046194652EA4306D5 -:101E600019D094EA0C0F02D150EA013613D195EA49 -:101E70000C0F05D152EA03361CBF104619460AD191 -:101E800081EA030101F0004141F0FE4141F470019B -:101E90004FF0000070BD41F0FE4141F4780170BD8B -:101EA00070B54FF0FF0C4CF4E06C1CEA11541DBFF0 -:101EB0001CEA135594EA0C0F95EA0C0F00F0A7F8F2 -:101EC000A4EB050481EA030E52EA03354FEA01311F -:101ED00000F088804FEA03334FF0805545EA131332 -:101EE00043EA12634FEA022245EA111545EA1065FA -:101EF0004FEA00260EF000419D4208BF964244F191 -:101F0000FD0404F5407402D25B084FEA3202B61AAF -:101F100065EB03055B084FEA32024FF480104FF483 -:101F2000002CB6EB020E75EB030E22BFB61A7546F7 -:101F300040EA0C005B084FEA3202B6EB020E75EB8A -:101F4000030E22BFB61A754640EA5C005B084FEAF2 -:101F50003202B6EB020E75EB030E22BFB61A7546BF -:101F600040EA9C005B084FEA3202B6EB020E75EBCA -:101F7000030E22BFB61A754640EADC0055EA060E8B -:101F800018D04FEA051545EA16754FEA06164FEACE -:101F9000C30343EA52734FEAC2025FEA1C1CC0D17A -:101FA00011F4801F0BD141EA00014FF000004FF007 -:101FB000004CB6E711F4801F04BF01430020B4F1C8 -:101FC000FD0C88BFBCF5E06F3FF6AFAEB5EB030C80 -:101FD00004BFB6EB020C5FEA500C50F1000041EB7D -:101FE000045170BD0EF0004E4EEA113114EB5C044A -:101FF000C2BFD4EB0C0541EA045170BD41F480111D -:102000004FF0000E013C90E645EA060E8DE60CEA24 -:10201000135594EA0C0F08BF95EA0C0F3FF43BAF41 -:1020200094EA0C0F0AD150EA01347FF434AF95EAF8 -:102030000C0F7FF425AF104619462CE795EA0C0FDC -:1020400006D152EA03353FF4FDAE1046194622E7A9 -:1020500050EA410618BF52EA43067FF4C5AE50EA83 -:1020600041047FF40DAF52EA43057FF4EBAE12E773 -:102070004FF0FF3C06E000BF4FF0010C02E000BF54 -:102080004FF0010C4DF804CD4FEA410C7FEA6C5C37 -:102090004FEA430C18BF7FEA6C5C1BD001B050EADA -:1020A000410C0CBF52EA430C91EA030F02BF90EAC5 -:1020B000020F0020704710F1000F91EA030F58BF84 -:1020C000994208BF90422CBFD8176FEAE37040F0E6 -:1020D000010070474FEA410C7FEA6C5C02D150EA84 -:1020E000013C07D14FEA430C7FEA6C5CD6D152EA3F -:1020F000033CD3D05DF8040B704700BF8446104604 -:1021000062468C461946634600E000BF01B5FFF702 -:10211000B7FF002848BF10F1000F01BD4DF808EDD2 -:10212000FFF7F4FF0CBF012000205DF808FB00BFA3 -:102130004DF808EDFFF7EAFF34BF012000205DF8FD -:1021400008FB00BF4DF808EDFFF7E0FF94BF01204A -:1021500000205DF808FB00BF4DF808EDFFF7CEFF4B -:1021600094BF012000205DF808FB00BF4DF808ED8A -:10217000FFF7C4FF34BF012000205DF808FB00BF5B -:102180004FEA410C7FEA6C5C02D150EA013C0AD173 -:102190004FEA430C7FEA6C5C02D152EA033C02D165 -:1021A0004FF0000070474FF0010070474FEA4102C6 -:1021B00012F5001215D211D56FF47873B3EB625299 -:1021C00012D94FEAC12343F0004343EA505311F0C0 -:1021D000004F23FA02F018BF404270474FF0000052 -:1021E000704750EA013005D111F0004008BF6FF090 -:1021F000004070474FF00000704700BF4A0011D206 -:1022000012F5001211D20DD56FF47873B3EB625250 -:102210000ED44FEAC12343F0004343EA505323FA5C -:1022200002F070474FF00000704750EA013002D1D1 -:102230004FF0FF3070474FF0000070477BB972B924 -:102240000029BEBF00204FF0004106E008BF002873 -:102250001CBF6FF000414FF0FF3000F0D7B9ADF177 -:10226000080C6DE904CE002909DB002B1ADB00F015 -:102270004DF8DDF804E0DDE9022304B07047404288 -:1022800061EB4101002B1BDB00F040F8DDF804E0BE -:10229000DDE9022304B0404261EB4101524263EBAD -:1022A00043037047524263EB430300F02FF8DDF81D -:1022B00004E0DDE9022304B0404261EB41017047D4 -:1022C000524263EB430300F021F8DDF804E0DDE95E -:1022D000022304B0524263EB4303704753B94AB937 -:1022E000002908BF00281CBF4FF0FF314FF0FF301E -:1022F00000F08CB9ADF1080C6DE904CE00F006F8E1 -:10230000DDF804E0DDE9022304B070472DE9F04F69 -:10231000099D0E4604460F46002B47D18A4294463B -:10232000B2FA82F35AD943B102FA03FCC3F1200294 -:102330009F409C4020FA02F217434FEA1C461FFAC6 -:102340008CFE220CB7FBF6F106FB117701FB0EF0B9 -:1023500042EA0742904208D91CEB020201F1FF3722 -:1023600002D2904200F23C813946121AA4B2B2FB6A -:10237000F6F006FB102200FB0EFE44EA0244A645DE -:1023800008D91CEB040400F1FF3202D2A64500F28A -:102390002A81104640EA0140A4EB0E0400211DB141 -:1023A000DC400023C5E90043BDE8F08F8B4205D92E -:1023B0000DB1C5E9000100210846F5E7B3FA83F144 -:1023C00000294FD1B342C0F00281824240F2FF8027 -:1023D0000846002DE8D0C5E90047E5E7002B40F0AE -:1023E000AF808A1A4FEA1C4E1FFA8CF70121B2FB0C -:1023F000FEF60EFB1620220C42EA004207FB06F016 -:1024000090420FD91CEB020206F1FF382CBF4FF0AF -:1024100001094FF00009904203D9B9F1000F00F013 -:10242000DC804646121AA4B2B2FBFEF00EFB10226C -:1024300000FB07F744EA0244A7420FD91CEB04044F -:1024400000F1FF322CBF4FF0010E4FF0000EA742FB -:1024500003D9BEF1000F00F0C9801046E41B40EA2A -:1024600006409CE7C1F120048B4006FA01FC00FA0B -:1024700001FE22FA04F7E6408A401F4320FA04F3E3 -:102480004FEA174843EA0C031FFA87FC4FEA134947 -:10249000B6FBF8F008FB106649EA064600FB0CF9AB -:1024A000B1450ED9BE1900F1FF3A2CBF4FF0010B18 -:1024B0004FF0000BB14503D9BBF1000F00F0A28033 -:1024C0005046A6EB09061FFA83F9B6FBF8F308FBA2 -:1024D000136603FB0CFC49EA0646B4450ED9BE1947 -:1024E00003F1FF382CBF4FF001094FF00009B4454C -:1024F00003D9B9F1000F00F08280434643EA00405F -:10250000A6EB0C06A0FB028C66454346E14602D3CF -:1025100007D1C64505D2B8EB02036CEB070C0138B6 -:10252000E1465DB1BEEB030266EB090606FA04F470 -:1025300022FA01F3CE401C43C5E90046002133E7EF -:1025400002FA03FCC3F1200299409C40D6404FEAB6 -:102550001C4E20FA02F21FFA8CF7B6FBFEF00A437B -:102560000EFB1066110C41EA064100FB07F68E4295 -:102570000ED91CEB010100F1FF382CBF4FF001090F -:102580004FF000098E4202D9B9F1000F34D0404615 -:10259000891B92B2B1FBFEF60EFB161142EA014214 -:1025A00006FB07F191420ED91CEB020206F1FF383F -:1025B0002CBF4FF001094FF00009914202D9B9F147 -:1025C000000F16D04646521A46EA00410FE7841A19 -:1025D00066EB030201201746FBE6023E624421E758 -:1025E00002396244C1E664440238D3E664440238E6 -:1025F00034E7023E6244E6E702386144C8E7023B42 -:102600003E447BE702383E445BE700BF704700BFB3 -:10261000054A0346106810B103441360704703482D -:1026200003441360704700BFB48103345082033405 -:10263000FEE700BF000000005FF800F0597E0014C4 -:102640005FF800F08B2400145FF800F0192A0014E2 -:102650005FF800F0AD3500145FF800F0312500148C -:102660005FF800F0AD7E00145FF800F093240014D2 -:102670005FF800F0792600145FF800F09924001448 -:102680005FF800F0E72D00145FF800F0012000145F -:102690005FF800F0ED2400145FF800F06B2F0014D9 -:1026A0005FF800F0DD7B00146C08FF7F0100000084 -:1026B000D0261118587303345B0200003C30111807 -:1026C00000200034D4170000C47C03343D01000016 -:1026D000400C1018440C1018480C10184C0C101812 -:1026E000500C1018540C1018580C10185C0C1018C2 -:1026F000600C1018640C1018680C10186C0C101872 -:10270000700C1018740C1018410201010000000038 -:10271000AAAA1A000001000000000000000000004A -:102720000F00000000000000000000000A00000090 -:102730000800000000000000000000000000000091 -:102740000B00000009000000000000000000000075 -:10275000000000000700000007000000000000006B -:10276000000000000000000090730334000000002F -:102770002002040000000000000000000001000032 -:1027800000000000000000000F000000000000003A -:10279000000000000A000000080000000000000027 -:1027A00000000000000000000B0000000900000015 -:1027B0000000000000000000000000000700000012 -:1027C0000700000000000000000000000000000002 -:1027D000F873033400000000EE0000000303000063 -:1027E000FFFFFFFFFF0000000F00000003010100DA -:1027F0000000000000010200EE00000001000000E7 -:102800000600000003FF0000FFFFFFFFFF000000C5 -:1028100000000000FF0000000000000000000200B7 -:1028200006000000010000000400000003FF00009B -:10283000FFFFFFFFFF00000000000000FF0000009E -:102840000000000000000200040000000100000081 -:10285000DE00000003030000FFFFFFFFFF00000099 -:102860000F00000003010100000000000001020051 -:10287000DE00000001000000040000000000000174 -:102880006074033488740334B074033400000000AF -:102890000000000100000000D874033400000001B3 +:10000000A408B8F1000F04F101024FEA820208BF10 +:1000100004220BEB02055244A94231D917462C4663 +:1000200054F8043B1FFA83F8A1424FEA134E63448D +:10003000C4449BB20EEB2C4C43EA0C434FEA2C4CCD +:1000400047F8043BECD80139491B21F003010A446D +:1000500023B952F8043D013E002BFAD0066103B0EB +:10006000BDE8F08F86DA012488E70021FFF7BEFCA7 +:1000700078B101220023C0E9042303B0BDE8F08F6A +:10008000B8F1000F4FEA840408BF00240AEB040211 +:10009000DEE70246064B40F23721064800F0FAFA46 +:1000A0000246034B40F24521024800F0F3FA00BF3C +:1000B000382B1018A82B1018F0B5012183B0164664 +:1000C0001F46FFF793FC0546002849D0C7F30A54A2 +:1000D000C7F313030CB143F48013002E019315D121 +:1000E00001A8FFF729FD0199012200F120036961B0 +:1000F0002A611CB3A4F23344C3F135001C44089BAD +:100100001C60099B1860284603B0F0BD6846009645 +:10011000FFF712FD019A034600B3C0F1200102FA75 +:1001200001F1C240009801920143002AC5E905127D +:100130000CBF012202222A61002CDBD1A3F2324340 +:10014000089805EB820103600869FFF7D1FC099B61 +:10015000C0EB42101860284603B0F0BD0099E4E7F8 +:100160000246034B40F20F31024800F093FA00BF01 +:10017000382B1018A82B10182DE9F04F164683B015 +:10018000002900F09E800C4606F10B058046FCF726 +:10019000E9F854F8040C162DA4F1080920F003071F +:1001A00062D8102200231546B542C0F0A280002B71 +:1001B00040F09F80974261DADFF828B309EB07012E +:1001C000DBF80830D1F804C08B4200F097802CF0A7 +:1001D00001030B445B68DB0768D42CF0030C07EBCE +:1001E0000C03934245DAC30712D454F8083CA9EB38 +:1001F000030ADAF8043023F0030084440CEB070B05 +:100200005A4540F3FE8007EB000B5A4540F3D4807B +:1002100031464046FBF7FCFD0646002800F02981E8 +:1002200054F8043CA0F1080223F001034B4493422C +:1002300000F0B1803A1F242A00F2DF80132A00F276 +:10024000B08003462246116819605168596092686F +:100250009A6021464046FBF7DFFC4046FCF788F8F1 +:10026000304603B0BDE8F08F25F007052A46EB0FB6 +:100270009AE71F46D1E90223D3609A60781BD9F828 +:10028000043009EB07020F2803F001031FD83B439A +:10029000C9F80430536843F00103536026464046D2 +:1002A000FCF766F8304603B0BDE8F08FC307AFD463 +:1002B00054F8083CA9EB030ADAF8043023F00300F1 +:1002C000A1E7114603B0BDE8F04FFBF7A1BD2B43FA +:1002D00009EB050140F00100C9F80430083141F88C +:1002E000040C4046536843F001035360FBF794FC51 +:1002F000D4E70C23C8F800300026D3E72CF0030C19 +:1003000005F110010CEB07038B4280F29280C007CD +:100310003FF57EAF54F8083CA9EB030ADAF8043045 +:1003200023F0030084440CEB070399423FF76BAFC3 +:100330003A1F5646DAF80C1056F8080F242AC16006 +:10034000886000F2B080132A40F2AB8021681B2A3B +:10035000CAF808106168CAF80C1000F2AB800834C3 +:100360000AF110022168116061685160A168916012 +:100370005B1B0AEB0502404643F00103CBF8082063 +:100380005360DAF8043003F001032B43CAF8043059 +:10039000FBF7EEFF86E750F8043C23F003031F440D +:1003A0006CE723681B2A03606368436036D804F156 +:1003B000080200F1080346E73A1F5646DAF80C3007 +:1003C000242A56F8081FCB60996022D8132A1ED918 +:1003D00023681B2ACAF808306368CAF80C303CD876 +:1003E00008340AF1100322681A6062685A60A26831 +:1003F0009A6034465F46D14640E72146FEF752F9FF +:1004000027E7D1E902133A1FCB609960D5E733465D +:10041000E9E721463046FEF745F9EAE7A368242AD2 +:100420008360E368C36028D004F1100200F1100378 +:1004300009E75B1B09EB05024046264643F0010332 +:10044000CBF80820536054F8043C03F001032B431D +:1004500044F8043CFBF78CFF24E7A368242ACAF87D +:100460001030E368CAF8143010D010340AF11803C1 +:10047000B9E74046FBF77CFF3EE7236904F1180229 +:1004800003616369436100F11803DCE623691834F2 +:10049000CAF8183054F8043CCAF81C300AF120039A +:1004A000A1E732465EE7214630460193FEF7FAF8AF +:1004B000019B5DE7A168242ACAF81010E168CAF818 +:1004C000141003D010340AF118024BE722691834D3 +:1004D000CAF8182054F8042CCAF81C200AF120028B +:1004E00040E700BF50770334034649B1FF2A02D8E2 +:1004F00001200A7070478A224FF0FF301A6070475F +:100500000846704770B5054684B05BB11C460F4B7A +:10051000D3F8E060234669B12846B047431C0FD0AA +:1005200004B070BD094B00F58274D3F8E060234637 +:100530000029F1D10A46284601A9B047431CEFD152 +:1005400000228A2322602B6004B070BD587B0334E4 +:1005500010B582B0049C00934FF0FF33019400F07B +:100560006DF902B010BD00BFB1F90C302DE9F041BA +:100570000C46990796B008D504F143030122236085 +:10058000C4E9043216B0BDE8F081B4F90E10064695 +:10059000002926DB6A4600F055F800281FDB019D84 +:1005A0004FF480684FF4006705F47045A5F50055D9 +:1005B000B5FA85F56D0941463046FBF729FCE8B1EF +:1005C000B4F90C30C4F8148043F08003206020613B +:1005D000A3813DBB3B43A38116B0BDE8F081B4F9D4 +:1005E0000C3013F0800519D04FF04008002530463C +:1005F00041462F46FBF70CFC0028E1D1B4F90C3042 +:100600009A05BFD423F0030304F14302012143F010 +:1006100002032260C4E90421A381B3E74FF4806898 +:100620002F46C8E7B4F90E10304600F021F810B993 +:10063000B4F90C30CEE7A38923F0030343F00103A0 +:100640001BB2C7E770B50C460346084D002620468E +:1006500011461C462E60F5F7B3F9431C00D070BD5F +:100660002B68002BFBD0236070BD00BFDC7F033400 +:1006700038B50022064D044608462A60F5F7DEF933 +:10068000431C00D038BD2B68002BFBD0236038BD45 +:10069000DC7F03340A4D14461A4603462E680D4685 +:1006A00000B5F06885B044B106490095CDE9011464 +:1006B000054900F0D5F8FAF735FE04490C46F4E791 +:1006C000FC750334042C1018142C1018102C10185E +:1006D00038B5A1FB021434BBFBF79AFB054630B3D7 +:1006E00050F8042C22F00302043A242A0CD8132ACE +:1006F0000FD91B2AC0E9004412D9242AC0E90244B8 +:1007000018D000F1100205E02146FAF7C5FF28468F +:1007100038BD024600232846C2E90033936038BD45 +:1007200000F10802F6E7FBF7D3F80C23036000257D +:10073000284638BD00F11802C0E90444EAE700BFCA +:100740002DE9F04F8BB086461E46DDE9157A002F65 +:100750005AD0156800295CD0149B002B69D0741EF8 +:100760004EB3043D0026DDF850B00491039105928C +:10077000CDE9015E0BE0039B0BBB019B18680028D1 +:1007800036D0DC4557D2013C6646631C13D0019934 +:100790003B46029851F8042FDAF8E050019107A97E +:1007A000D7E90098A847421C37D000EB060CDC457F +:1007B000E1D9C7E9009830460BB0BDE8F08F0028BA +:1007C0000EDD049B07A9019D18445A1E00F1FF3E4F +:1007D00011F8013B02F8013F7245F9D101950490EF +:1007E000059B1A6804321A60019B18680028C8D15A +:1007F0000399059A01B110600CF1FF3600223046D2 +:100800003A600BB0BDE8F08F00F5867715680029D7 +:10081000A2D14FF0FF331493A1E70646DDF808E0BC +:100820008A2100223046CEF800103A600BB0BDE8B5 +:10083000F08F149EBFE76646BDE700BF10B584B0D9 +:10084000054C0698009007980190044800680294AF +:10085000FFF776FF04B010BD587B0334FC750334FA +:100860000EB410B583B0074C014605AB206853F8B1 +:10087000042B019300F008F803B0BDE8104003B06A +:10088000704700BFFC7503342DE9F04FC9B08246B4 +:100890001C4618AF059107920021082238460B9399 +:1008A000FAF7FAFEBAF1000F04D0DAF83430002B70 +:1008B00000F03F86059B5A6EB3F90C30D00702D486 +:1008C000990540F1FA849E0406D4059943F4005337 +:1008D00022F400528B814A66950400F1CE86059A77 +:1008E000B2F90C30190740F1CC801269002A00F0EF +:1008F000C88003F01A020A2A00F0D2800023DFF831 +:1009000018B99C46CDE91D331FABCDF83CC0CDF8DE +:1009100020C099461C93CDF838C0CDE910CC079D76 +:10092000DBF8E440FDF73EFF2A46034616A9504691 +:100930000097A0470028034600F0D180C0F2C7808E +:10094000169A252A01D01D44EAE7079B0446EE1AB1 +:1009500040F0C98000234FF0FF326C1C69788DF89D +:1009600053300993069203930134A1F120035A2BCB +:1009700000F2FA80DFE813F06902F800F800630281 +:10098000F800F800F8006A00F800F800E701F80144 +:10099000F800F2010302F800FD015B005B005B0060 +:1009A0005B005B005B005B005B005B00F800F80035 +:1009B000F800F800F800F800F800F800F8009B01D3 +:1009C0007302F800F800F800F800F800F800F800EA +:1009D000F800F800F8001E02F800F800F8007501B1 +:1009E000F8009602F800F800DC04F800F800F800BF +:1009F000F800F800F800F800F800F800F8009B0193 +:100A0000BE01F800F800F8008D02BE017F00F8007A +:100A1000F302F800E402DA04CC027F00F80075016A +:100A20007D00D704F800F800FE04F8007D00A1F175 +:100A30003003002202EB820214F8011B03EB420296 +:100A4000A1F13003092BF5D909928EE75046FDF745 +:100A5000AFFE436818461093FAF7E6FF119005467B +:100A60005046FDF7A5FE83680F9315B1002B40F0AB +:100A70004E84217878E7039B217843F02003039389 +:100A800072E7059D50462946FDF7AAFD002840F073 +:100A90001286B5F90C3003F01A020A2A7FF42EAF41 +:100AA0000599B1F90E20002AFFF628AF4A6ED60745 +:100AB00002D49D0540F1B9852346079A0599504611 +:100AC00000F018FE0890089849B0BDE8F08F0822A1 +:100AD00000213846FAF7E0FD01231D4420E7079B7B +:100AE0000446EE1A12D0079BC9E900361E9B334418 +:100AF0001E931D9B0133072B1D9311DC09F108097F +:100B0000089B33440893002C7FF424AF1E9B002BDA +:100B100040F0A6850022059B1D92B3F90C3018E029 +:100B20001CAA05995046FDF7A5FA78B90DF17C0984 +:100B3000E6E71CAA05995046FDF79CFA00287CD0F0 +:100B40000A9B1BB10A995046FBF766F8059BB3F95F +:100B50000C30059A526ED1077AD55B0600F1978565 +:100B6000089849B0BDE8F08F07940029CED0002343 +:100B70002FAC8DF8BC108DF8533001230493002264 +:100B80000A9206920C92039810F08406DDE91D216A +:100B900005D10998049D451B002D00F39D829DF809 +:100BA000530078B1013201200131C9F80400072A4D +:100BB0000DF15300CDE91D21C9F8000000F3C882F2 +:100BC00009F108090C9878B1013215A80231C9F869 +:100BD0000000072A4FF00200CDE91D21C9F80400EA +:100BE00000F3C58209F10809802E00F0E98106981A +:100BF000C51A002D00F3278201321944C9F80040BC +:100C0000072AC9F80430CDE91D2100F3598209F102 +:100C10000809039B580705D5099B049A9C1A002CC8 +:100C200000F3B4820498DDE908328242ACBF9B181D +:100C30001B18089300297FF47CAF00231D930A9BA7 +:100C40001BB10A995046FAF7E7FF0DF17C0966E6F9 +:100C50009A0582D4059CA06DFAF76EFEB4F90C30AB +:100C60007BE70B9E0023079456F8044B8DF8533016 +:100C7000002C00F07884532900F09683039B13F036 +:100C8000100540F09183069B002BC0F2B2841A46F7 +:100C900029462046FDF7C4FD0A90002800F008858B +:100CA000031B0A9523EAE372049200F08BBC0B9BB2 +:100CB0004329079403F1040503D0039BDC0640F1AC +:100CC0005D83082200211AA82FACFAF7E5FC0B9AE5 +:100CD0001AAB504612682146FFF714FC0346581C15 +:100CE00000F0DA8423EAE372049200220B958DF877 +:100CF000532044E7039B0794990640F1B9800B9B6E +:100D0000073323F007031A46596852F8083B0B9241 +:100D10000A460029C0F22C8106990029C0F23581CB +:100D2000039921F08001039140F02F8153EA0201E1 +:100D300014BF0121002140F028810B469DF853206B +:100D400048AC06912EE10B9B53F8042B002A099224 +:100D500080F2AF82099A0B9352420992039B217849 +:100D600043F004030393FFE52B2321788DF85330E0 +:100D7000FAE5039B217843F080030393F4E52046D2 +:100D800010F8011B2A2900F0A184A1F13003092BDE +:100D900000F26184002202EB820210F8011B03EBD7 +:100DA0004202A1F13003092BF5D942EAE27304466D +:100DB0000693DAE5039B079443F010030393039B28 +:100DC00013F0200200F055820B9B073323F007033A +:100DD00019465A6851F8083B0B910399069C21F477 +:100DE000806000218C428DF8531074DA48AC03F017 +:100DF0000701DB08254643EA42733031D20804F884 +:100E0000011D53EA0206F2D1302902D0C60700F1D3 +:100E1000648248AB03901B1B069A9A42B8BF1A46DD +:100E2000049200220A92039A12F002020C923FF4FA +:100E3000AAAE049A0232049202220C92A3E6039B09 +:100E4000217843F0010303938EE59DF85330217818 +:100E5000002B7FF489AD20238DF8533084E5039B6C +:100E6000079443F010030393039B99063FF547AFA4 +:100E70000B9A52F8043B0B92039AD20600F12A8295 +:100E8000039A560640F1228243F3C0321BB2114648 +:100E90003FE72178039B682900F0788243F0400304 +:100EA000039361E5039B079443F0100010F02002C8 +:100EB00000F0D0810B9B073323F0070319465A68D3 +:100EC00051F8083B0B9100218DF853100699002929 +:100ED000C0F2BF83012120F08004039453EA02048E +:100EE00040F09C81069D2C1E18BF0124002D40F06F +:100EF0009581002940F0848110F00103049300F0F3 +:100F0000A38130220DF21F1406918DF81F2183E773 +:100F1000039B0B9A43F0020047F63003BB49ADF840 +:100F2000543052F8043B07940B9200220E9100219A +:100F30008DF8531006990029C0F277810221CAE783 +:100F4000039B07949C0640F1D1810B9B089A1B6878 +:100F50001A60D2175A600B9B04330B93DFE421789D +:100F6000039B6C2900F0198243F010030393FBE408 +:100F70002D215B428DF8531062EB42020699002945 +:100F800003DB039921F0800103910A2B72F1000128 +:100F900080F0728230339DF853200DF21F148DF8CB +:100FA0001F31012306999942B8BF19460491002ABE +:100FB00000F04E8100220A92049A0132049232E734 +:100FC0000998049D451B002D7FF711AE102DDFF809 +:100FD000408226DD4846994643461026A0461C46D8 +:100FE00002E0103D102D17DD01321031072AC0E953 +:100FF0000046CDE91D2100F10800F2DD1CAA05998B +:101000005046FDF737F800287FF49AAD103D1FA831 +:10101000102DDDE91D21E7DC4B4681462046444684 +:10102000804601322944C9F80080072AC9F80450D3 +:10103000CDE91D2100F38282069809F10809C51A3D +:10104000002D7FF7D9AD102DDFF8C4812ADD2846A9 +:10105000CC462546C14610269846044602E0103C80 +:10106000102C19DD01321031694B072ACCE900360A +:10107000CDE91D210CF1080CF1DD1CAA05995046A3 +:10108000FCF7F8FF0DF17C0C00287FF459AD103C03 +:10109000102CDDE91D21E5DC204643462C46C846E0 +:1010A0000546E14601322944C9F80080072AC9F8FB +:1010B0000450CDE91D2100F3ED8009F108099BE5FD +:1010C0001CAA05995046FCF7D5FF00287FF438ADDF +:1010D0001E990DF17C099CE54E48102D0D9028DDE0 +:1010E000CC46129613944FF010089946059C06467C +:1010F00002E0103D102D18DD01321031072ACCE935 +:101100000068CDE91D210CF1080CF2DD1CAA214676 +:101110005046FCF7AFFF0DF17C0C00287FF410ADBA +:10112000103D102DDDE91D21E6DC4B46E146DDE9F1 +:10113000126401320D982944C9F80450072AC9F8ED +:101140000000CDE91D2100F3878109F1080926E59A +:101150001CAA059950460D93FCF78CFF00287FF4DC +:10116000EFAC0DF17C090D9BDDE91D212AE51CAAE0 +:10117000059950460C93FCF77DFF00287FF4E0AC06 +:101180000DF17C090C9BDDE91D212DE5102C1D9B2B +:1011900040F370821F4E1025DDF814800D9602E09A +:1011A000103C102C18DD01331031072BC9E9006504 +:1011B000CDE91D3109F10809F2DD1CAA414650466E +:1011C0000DF17C09FCF756FF00287FF4B9AC103C08 +:1011D000102CDDE91D31E6DC01330D9A2144072B8B +:1011E000C9E90024CDE91D317FF71CAD1CAA059982 +:1011F0005046FCF73FFF00287FF4A2AC1E9911E592 +:1012000023460A9448AC069304930CE6AC2A1018C3 +:10121000642E1018742E1018587B033401293FF4E3 +:10122000B4AE022903987FF4E1AD48AC0E9D03F003 +:101230000F011B09695C43EA0273120904F8011DDE +:1012400053EA0201F3D1E4E50A4648AC0B460691A5 +:101250000A92E8E50B9951F8043B0B9110F010014C +:101260007FF431AE10F0400400F08E819BB20A464C +:1012700029E60B9951F8043B0B91039911F01001E9 +:101280007FF4ABAD039A12F0400000F075819BB281 +:101290000A46A2E51CAA059950460693FCF7EAFE09 +:1012A00000287FF44DAC0DF17C09069BDDE91D2182 +:1012B000A2E421780B93FFF757BB059DA86DFAF7C1 +:1012C00039FBB5F90C306A6EFFF7FDBA039A950544 +:1012D00000F18481DA1711461BE53023023D0390AB +:1012E00004F8013C48AB2C465B1B95E5039BD806F4 +:1012F00000F13481039B590600F17681039B9A0526 +:1013000040F12C810B9B089A1B681A7023E60F9BF7 +:1013100021781B78002B3FF427AB039B43F48063B9 +:101320000393FFF721BB03980794BFE5079446E5B5 +:10133000B44B07940E93039B13F020027CD00B9BBD +:10134000073323F0070318465A6850F8083B0B9000 +:1013500053EA02000AD00398C40707D58DF8551048 +:1013600040F00201039130218DF85410039921F4CB +:101370008060DCE5A44B07940E93DCE70B9B2FAC5D +:101380001B688DF8BC3001230493AEE443F4007372 +:10139000617801340393FFF7E7BA43F020036178E3 +:1013A00001340393FFF7E0BA082200211AA817942A +:1013B000FAF772F9069A002AC0F2F5800025CDF8F6 +:1013C00010909146A8460EE02FA95046FFF79AF8D4 +:1013D000431C05F10405404400F05E81484507DCEC +:1013E00000F062818046179A1AAB5259002AEBD15D +:1013F000DDF810904346002B00F0E280632B00F3F1 +:10140000098100222FAC0A92082200211AA8049315 +:10141000FAF742F91AAB17AA214600935046049BEB +:10142000FFF796F8049B834240F05B810022E25470 +:1014300023EAE3720492C5E00B9850F8043B0B904A +:10144000039810F0100083D1039A12F0400400F0CA +:10145000A2809BB202467BE71CAA059950460D93D9 +:10146000FCF708FE00287FF46BAB0DF17C090D9BA7 +:10147000DDE91D21FFF793BB03994FF0000ECDF876 +:1014800030A00DF5907C01F48061DDF83CA0984619 +:10149000CDF82890049107E0B8F10A0F72F100022C +:1014A0003CD3B0462A46A44618EB020057490EF139 +:1014B000010E0CF1FF3440F100000B46A1FB0015BA +:1014C00025F0030101EB95014FF0CC35401AB8EB44 +:1014D000000162F1000605FB01F503FB0655A1FBC7 +:1014E000036105230D4406F001017608A1FB0319F1 +:1014F000049B46EAC57609186D0830310CF8011CCA +:10150000002BC9D09AF800107145C5D1FF29C3D06E +:10151000B8F10A0F72F1000280F08C8048ABCDF870 +:101520003CA0DDF82890DDF830A01B1B9DF853206F +:1015300038E55046F9F7B0FFFFF7BCB91CAA05998A +:1015400050460C93FCF796FD00287FF4F9AA0DF1A4 +:101550007C090C9BDDE91D21FFF749BB0B9B089A19 +:101560001B681A60F7E4069B294C062B0B9628BFD4 +:1015700006230493FFF703BB039A12F400723FF4AF +:101580002CACDBB2024628E410F400723FF49BACB2 +:10159000DBB2224697E4039A12F400723FF4D8AE0D +:1015A000DBB22246D4E61AAB17AA504600930023BA +:1015B0001946FEF7CDFF451C03466DD017941AE778 +:1015C00004930A939DF853201AB100220B960692B9 +:1015D000F2E40692CDE90B62FFF7D5BA43F3C012ED +:1015E0005BB21146FFF795BB0B9B089A1B681A80EC +:1015F000B1E42046FAF718FA20EAE07203460A95A9 +:101600000492DFE7C02A1018AC2A1018CDCCCCCC3D +:10161000D42A1018591C50460493FAF7F9FB049B7E +:101620000446002838D00A90EEE6886DFAF784F96F +:10163000FFF742BA119B1099E41A1A462046FAF7AE +:101640007DF89AF801200AB10AF1010A4FF0000E64 +:1016500027E7039099E4002304460693FFF785B932 +:101660001CAA05995046FCF705FD00283FF452AA34 +:10167000FFF76CBA1E4A0D92AEE5D40707D4059B5E +:101680009B89980503D4059B986DFAF755F94FF09F +:10169000FF330893FFF764BA059AB2F90C3043F0B0 +:1016A00040039381FFF755BADDF81090069BA2E640 +:1016B000069B049386E7059A536EDB07E7D493896C +:1016C0009F05E4D4906DFAF737F9E0E70B9B61785A +:1016D000044653F8042B42EAE2720B930692FFF79A +:1016E00043B9059A938943F040039381FFF728BAE1 +:1016F000742E1018F0B51F468B89ADF26C4D15464F +:1017000023F00203064616A80C46ADF80C301AABBF +:10171000009304934FF48063029305934B6E1993E7 +:10172000CB89ADF80E30CB6907934B6A0993002340 +:101730000693FAF7FBF82A463B4669463046FFF720 +:10174000A3F8051E07DB69463046FCF79FFD00281D +:1017500018BF4FF0FF35BDF80C305B0603D5A389E9 +:1017600043F04003A3811698FAF7E2F828460DF2F9 +:101770006C4DF0BD2DE9E04F2746A046A146A2469C +:10178000A346A446A2B02DEC000A84F300882546A7 +:101790002646A447EFF3148515F0080F18BFB0EEE6 +:1017A000400A3DEC000A22B0BDE8E08F81F0004124 +:1017B00002E000BF83F0004330B54FEA41044FEA36 +:1017C000430594EA050F08BF90EA020F1FBF54EAD1 +:1017D000000C55EA020C7FEA645C7FEA655C00F06D +:1017E000E2804FEA5454D4EB5555B8BF6D420CDD3E +:1017F0002C4480EA020281EA030382EA000083EAC1 +:10180000010180EA020281EA0303362D88BF30BD60 +:1018100011F0004F4FEA01314FF4801C4CEA1131B6 +:1018200002D0404261EB410113F0004F4FEA033315 +:101830004CEA133302D0524263EB430394EA050FA0 +:1018400000F0A780A4F10104D5F1200E0DDB02FA0F +:101850000EFC22FA05F2801841F1000103FA0EF2A3 +:10186000801843FA05F359410EE0A5F120050EF169 +:10187000200E012A03FA0EFC28BF4CF0020C43FA9A +:1018800005F3C01851EBE37101F0004507D54FF0A7 +:10189000000EDCF1000C7EEB00006EEB0101B1F5F7 +:1018A000801F1BD3B1F5001F0CD349085FEA30003D +:1018B0004FEA3C0C04F101044FEA445212F5800F48 +:1018C00080F09A80BCF1004F08BF5FEA500C50F1E5 +:1018D000000041EB045141EA050130BD5FEA4C0CC8 +:1018E000404141EB0101013C28BFB1F5801FE9D225 +:1018F00091F0000F04BF01460020B1FA81F308BF48 +:101900002033A3F10B03B3F120020CDA0C3208DD13 +:1019100002F1140CC2F10C0201FA0CF021FA02F1EE +:101920000CE002F11402D8BFC2F1200C01FA02F15E +:1019300020FA0CFCDCBF41EA0C019040E41AA2BF83 +:1019400001EB0451294330BD6FEA04041F3C1CDA4B +:101950000C340EDC04F11404C4F1200220FA04F06B +:1019600001FA02F340EA030021FA04F345EA030115 +:1019700030BDC4F10C04C4F1200220FA02F001FAD7 +:1019800004F340EA0300294630BD21FA04F0294659 +:1019900030BD94F0000F83F4801306BF81F48011F2 +:1019A0000134013D4EE77FEA645C18BF7FEA655C65 +:1019B00029D094EA050F08BF90EA020F05D054EA37 +:1019C000000C04BF1946104630BD91EA030F1EBF3C +:1019D0000021002030BD5FEA545C05D14000494140 +:1019E00028BF41F0004130BD14F580043CBF01F533 +:1019F000801130BD01F0004545F0FE4141F4700119 +:101A00004FF0000030BD7FEA645C1ABF19461046F3 +:101A10007FEA655C1CBF0B46024650EA013406BFF4 +:101A200052EA033591EA030F41F4002130BD00BFB3 +:101A300090F0000F04BF0021704730B54FF4806470 +:101A400004F132044FF000054FF0000150E700BFF1 +:101A500090F0000F04BF0021704730B54FF4806450 +:101A600004F1320410F0004548BF40424FF000013D +:101A70003EE700BF42004FEAE2014FEA31014FEA80 +:101A800002701FBF12F07F4393F07F4F81F06051CF +:101A9000704732F07F4208BF704793F07F4F04BF1A +:101AA00041F40021704730B54FF4607401F00045F7 +:101AB00021F000411CE700BF50EA010208BF704757 +:101AC00030B54FF000050AE050EA010208BF704748 +:101AD00030B511F0004502D5404261EB41014FF4B1 +:101AE000806404F132045FEA915C3FF4D8AE4FF0B9 +:101AF00003025FEADC0C18BF03325FEADC0C18BF9C +:101B0000033202EBDC02C2F1200300FA03FC20FAEC +:101B100002F001FA03FE40EA0E0021FA02F1144439 +:101B2000BDE600BF70B54FF0FF0C4CF4E06C1CEA52 +:101B300011541DBF1CEA135594EA0C0F95EA0C0FC3 +:101B400000F0DEF82C4481EA030621EA4C5123EA36 +:101B50004C5350EA013518BF52EA033541F4801165 +:101B600043F4801338D0A0FB02CE4FF00005E1FB18 +:101B700002E506F00042E0FB03E54FF00006E1FB62 +:101B800003569CF0000F18BF4EF0010EA4F1FF04A5 +:101B9000B6F5007F64F5407404D25FEA4E0E6D41E5 +:101BA00046EB060642EAC62141EA55514FEAC520F6 +:101BB00040EA5E504FEACE2EB4F1FD0C88BFBCF572 +:101BC000E06F1ED8BEF1004F08BF5FEA500E50F123 +:101BD000000041EB045170BD06F0004646EA0101E9 +:101BE00040EA020081EA0301B4EB5C04C2BFD4EB1B +:101BF0000C0541EA045170BD41F480114FF0000E14 +:101C0000013C00F3AB8014F1360FDEBF002001F081 +:101C1000004170BDC4F10004203C35DA0C341BDCFB +:101C200004F11404C4F1200500FA05F320FA04F0CD +:101C300001FA05F240EA020001F0004221F0004101 +:101C400010EBD37021FA04F642EB06015EEA430E74 +:101C500008BF20EAD37070BDC4F10C04C4F12005A4 +:101C600000FA04F320FA05F001FA04F240EA020057 +:101C700001F0004110EBD37041F100015EEA430E28 +:101C800008BF20EAD37070BDC4F1200500FA05F248 +:101C90004EEA020E20FA04F301FA05F243EA0203C7 +:101CA00021FA04F001F0004121FA04F220EA0200D6 +:101CB00000EBD3705EEA430E08BF20EAD37070BD1C +:101CC00094F0000F0FD101F00046400041EB0101FC +:101CD00011F4801F08BF013CF7D041EA060195F0DE +:101CE000000F18BF704703F00046520043EB030398 +:101CF00013F4801F08BF013DF7D043EA0603704785 +:101D000094EA0C0F0CEA135518BF95EA0C0F0CD08F +:101D100050EA410618BF52EA4306D1D181EA0301D5 +:101D200001F000414FF0000070BD50EA410606BFCF +:101D30001046194652EA430619D094EA0C0F02D114 +:101D400050EA013613D195EA0C0F05D152EA033659 +:101D50001CBF104619460AD181EA030101F0004177 +:101D600041F0FE4141F470014FF0000070BD41F0C0 +:101D7000FE4141F4780170BD70B54FF0FF0C4CF49A +:101D8000E06C1CEA11541DBF1CEA135594EA0C0FB9 +:101D900095EA0C0F00F0A7F8A4EB050481EA030E06 +:101DA00052EA03354FEA013100F088804FEA0333ED +:101DB0004FF0805545EA131343EA12634FEA0222BB +:101DC00045EA111545EA10654FEA00260EF000417C +:101DD0009D4208BF964244F1FD0404F5407402D2CE +:101DE0005B084FEA3202B61A65EB03055B084FEA5F +:101DF00032024FF480104FF4002CB6EB020E75EB5C +:101E0000030E22BFB61A754640EA0C005B084FEA83 +:101E10003202B6EB020E75EB030E22BFB61A754600 +:101E200040EA5C005B084FEA3202B6EB020E75EB4B +:101E3000030E22BFB61A754640EA9C005B084FEAC3 +:101E40003202B6EB020E75EB030E22BFB61A7546D0 +:101E500040EADC0055EA060E18D04FEA051545EABF +:101E600016754FEA06164FEAC30343EA52734FEA68 +:101E7000C2025FEA1C1CC0D111F4801F0BD141EAE1 +:101E800000014FF000004FF0004CB6E711F4801F46 +:101E900004BF01430020B4F1FD0C88BFBCF5E06F26 +:101EA0003FF6AFAEB5EB030C04BFB6EB020C5FEA36 +:101EB000500C50F1000041EB045170BD0EF0004E8B +:101EC0004EEA113114EB5C04C2BFD4EB0C0541EABD +:101ED000045170BD41F480114FF0000E013C90E6BA +:101EE00045EA060E8DE60CEA135594EA0C0F08BF7E +:101EF00095EA0C0F3FF43BAF94EA0C0F0AD150EA7D +:101F000001347FF434AF95EA0C0F7FF425AF10460F +:101F100019462CE795EA0C0F06D152EA03353FF437 +:101F2000FDAE1046194622E750EA410618BF52EAB4 +:101F300043067FF4C5AE50EA41047FF40DAF52EA88 +:101F400043057FF4EBAE12E74FF0FF3C06E000BF25 +:101F50004FF0010C02E000BF4FF0010C4DF804CD32 +:101F60004FEA410C7FEA6C5C4FEA430C18BF7FEAF2 +:101F70006C5C1BD001B050EA410C0CBF52EA430C20 +:101F800091EA030F02BF90EA020F0020704710F1A0 +:101F9000000F91EA030F58BF994208BF90422CBF2F +:101FA000D8176FEAE37040F0010070474FEA410C28 +:101FB0007FEA6C5C02D150EA013C07D14FEA430C46 +:101FC0007FEA6C5CD6D152EA033CD3D05DF8040BB7 +:101FD000704700BF8446104662468C4619466346E9 +:101FE00000E000BF01B5FFF7B7FF002848BF10F1C0 +:101FF000000F01BD4DF808EDFFF7F4FF0CBF012005 +:1020000000205DF808FB00BF4DF808EDFFF7EAFF80 +:1020100034BF012000205DF808FB00BF4DF808ED3B +:10202000FFF7E0FF94BF012000205DF808FB00BF30 +:102030004DF808EDFFF7CEFF94BF012000205DF8BA +:1020400008FB00BF4DF808EDFFF7C4FF34BF0120C7 +:1020500000205DF808FB00BF4FEA410C7FEA6C5C92 +:1020600002D150EA013C0AD14FEA430C7FEA6C5C92 +:1020700002D152EA033C02D14FF0000070474FF00A +:10208000010070474FEA410212F5001215D211D536 +:102090006FF47873B3EB625212D94FEAC12343F065 +:1020A000004343EA505311F0004F23FA02F018BFE7 +:1020B000404270474FF00000704750EA013005D1B0 +:1020C00011F0004008BF6FF0004070474FF0000073 +:1020D000704700BF4A0011D212F5001211D20DD57F +:1020E0006FF47873B3EB62520ED44FEAC12343F01E +:1020F000004343EA505323FA02F070474FF00000C8 +:10210000704750EA013002D14FF0FF3070474FF076 +:10211000000070477BB972B90029BEBF00204FF0A4 +:10212000004106E008BF00281CBF6FF000414FF0DF +:10213000FF3000F0D7B9ADF1080C6DE904CE0029ED +:1021400009DB002B1ADB00F04DF8DDF804E0DDE9D7 +:10215000022304B07047404261EB4101002B1BDBBE +:1021600000F040F8DDF804E0DDE9022304B040426D +:1021700061EB4101524263EB43037047524263EB10 +:10218000430300F02FF8DDF804E0DDE9022304B09A +:10219000404261EB41017047524263EB430300F060 +:1021A00021F8DDF804E0DDE9022304B0524263EBDC +:1021B0004303704753B94AB9002908BF00281CBF20 +:1021C0004FF0FF314FF0FF3000F08CB9ADF1080C4B +:1021D0006DE904CE00F006F8DDF804E0DDE9022345 +:1021E00004B070472DE9F04F099D0E4604460F4696 +:1021F000002B47D18A429446B2FA82F35AD943B1AE +:1022000002FA03FCC3F120029F409C4020FA02F234 +:1022100017434FEA1C461FFA8CFE220CB7FBF6F15F +:1022200006FB117701FB0EF042EA0742904208D903 +:102230001CEB020201F1FF3702D2904200F23C8116 +:102240003946121AA4B2B2FBF6F006FB102200FBCC +:102250000EFE44EA0244A64508D91CEB040400F132 +:10226000FF3202D2A64500F22A81104640EA014020 +:10227000A4EB0E0400211DB1DC400023C5E900439E +:10228000BDE8F08F8B4205D90DB1C5E900010021F1 +:102290000846F5E7B3FA83F100294FD1B342C0F005 +:1022A0000281824240F2FF800846002DE8D0C5E955 +:1022B0000047E5E7002B40F0AF808A1A4FEA1C4E3A +:1022C0001FFA8CF70121B2FBFEF60EFB1620220C42 +:1022D00042EA004207FB06F090420FD91CEB0202D3 +:1022E00006F1FF382CBF4FF001094FF00009904272 +:1022F00003D9B9F1000F00F0DC804646121AA4B2EF +:10230000B2FBFEF00EFB102200FB07F744EA02448A +:10231000A7420FD91CEB040400F1FF322CBF4FF091 +:10232000010E4FF0000EA74203D9BEF1000F00F0DE +:10233000C9801046E41B40EA06409CE7C1F1200436 +:102340008B4006FA01FC00FA01FE22FA04F7E6408F +:102350008A401F4320FA04F34FEA174843EA0C036C +:102360001FFA87FC4FEA1349B6FBF8F008FB10662A +:1023700049EA064600FB0CF9B1450ED9BE1900F139 +:10238000FF3A2CBF4FF0010B4FF0000BB14503D9C2 +:10239000BBF1000F00F0A2805046A6EB09061FFA21 +:1023A00083F9B6FBF8F308FB136603FB0CFC49EA60 +:1023B0000646B4450ED9BE1903F1FF382CBF4FF0C5 +:1023C00001094FF00009B44503D9B9F1000F00F03D +:1023D0008280434643EA0040A6EB0C06A0FB028C39 +:1023E00066454346E14602D307D1C64505D2B8EB60 +:1023F00002036CEB070C0138E1465DB1BEEB030252 +:1024000066EB090606FA04F422FA01F3CE401C43F7 +:10241000C5E90046002133E702FA03FCC3F12002BC +:1024200099409C40D6404FEA1C4E20FA02F21FFA17 +:102430008CF7B6FBFEF00A430EFB1066110C41EA66 +:10244000064100FB07F68E420ED91CEB010100F19C +:10245000FF382CBF4FF001094FF000098E4202D91E +:10246000B9F1000F34D04046891B92B2B1FBFEF6A1 +:102470000EFB161142EA014206FB07F191420ED90A +:102480001CEB020206F1FF382CBF4FF001094FF0A0 +:102490000009914202D9B9F1000F16D04646521AEE +:1024A00046EA00410FE7841A66EB03020120174653 +:1024B000FBE6023E624421E702396244C1E664441D +:1024C0000238D3E66444023834E7023E6244E6E769 +:1024D00002386144C8E7023B3E447BE702383E4491 +:1024E0005BE700BF704700BF054A0346106810B1A4 +:1024F000034413607047034803441360704700BFF0 +:10250000B481033450820334FEE700BF00000000B2 +:102510005FF800F0AD7E00145FF800F0192A001497 +:102520005FF800F0597E00145FF800F0792600147F +:102530005FF800F06B2F00145FF800F08B2400149C +:102540005FF800F0AD3500145FF800F0312500149D +:102550005FF800F0ED2400145FF800F00120001493 +:102560005FF800F0DD7B00145FF800F093240014A6 +:102570005FF800F0992400145FF800F0E72D0014D4 +:102580009409FF7F01000000A82511185873033437 +:102590005B020000142F111800200034D417000033 +:1025A000C47C03343D010000400C1018440C10188A +:1025B000480C10184C0C1018500C1018540C101813 +:1025C000580C10185C0C1018600C1018640C1018C3 +:1025D000680C10186C0C1018700C1018740C101873 +:1025E0004102010100000000AAAA1A000001000037 +:1025F00000000000000000000F00000000000000CC +:10260000000000000A0000000800000000000000B8 +:1026100000000000000000000B00000009000000A6 +:1026200000000000000000000000000007000000A3 +:102630000700000000000000000000000000000093 +:10264000907303340000000020020400000000002A +:102650000000000000010000000000000000000079 +:102660000F00000000000000000000000A00000051 +:102670000800000000000000000000000000000052 +:102680000B00000009000000000000000000000036 +:10269000000000000700000007000000000000002C +:1026A0000000000000000000F87303340000000088 +:1026B000EE00000003030000FFFFFFFFFF0000002B +:1026C0000F000000030101000000000000010200F3 +:1026D000EE000000010000000600000003FF000003 +:1026E000FFFFFFFFFF00000000000000FF000000F0 +:1026F00000000000000002000600000001000000D1 +:102700000400000003FF0000FFFFFFFFFF000000C8 +:1027100000000000FF0000000000000000000200B8 +:102720000400000001000000DE00000003030000C0 +:10273000FFFFFFFFFF0000000F000000030101008A +:102740000000000000010200DE00000001000000A7 +:102750000400000000000001607403348874033436 +:10276000B07403340000000000000001000000000D +:10277000D8740334000000010000000000000000D5 +:102780000000000000000000000000000000000049 +:102790000100000010000000080000000000000020 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000400000005 +:1027D0001300000000000000000000640000000181 +:1027E000000000000075033400000000000000003D +:1027F0007C75033401000000A07503340200000062 +:102800008200000080F0FA0280F0FA0280F0FA0202 +:1028100050C300003200000096000000C00000001D +:10282000F5000000390100009001000000000000E8 +:102830000000000001000000030000000100000093 +:102840000000000003000000A07E03340076033483 +:1028500000000000A07E0334087F0334707F03343F +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 :1028A0000000000000000000000000000000000028 -:1028B0000000000000000000010000001000000007 -:1028C0000800000000000000000000000000000000 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 :1028D00000000000000000000000000000000000F8 -:1028E00000000000000000000000000000000000E8 -:1028F00000000000040000001300000000000000C1 -:1029000000000064000000010000000000750334B6 -:1029100000000000000000007C750334010000008E -:10292000A0750334020000008200000080F0FA026B -:1029300080F0FA0280F0FA0250C30000320000007A -:1029400096000000C0000000F50000003901000002 -:1029500090010000000000000000000001000000E5 -:102960000300000001000000000000000300000060 -:10297000A07E03340076033400000000A07E033400 -:10298000087F0334707F0334000000000000000063 -:102990000000000000000000000000000000000037 -:1029A0000000000000000000000000000000000027 -:1029B0000000000000000000000000000000000017 -:1029C0000000000000000000000000000000000007 -:1029D00000000000000000000000000000000000F7 -:1029E00000000000000000000000000000000000E7 -:1029F00000000000000000000000000000000000D7 -:102A000000000000000000000000000000000000C6 -:102A100001000000000000000E33CDAB34126DE663 -:102A2000ECDE05000B0000000000000000000000CC -:102A30000000000000000000000000000000000096 -:102A40000000000000000000000000000000000086 -:102A50000000000000000000000000000000000076 -:102A60000000000000000000000000000000000066 -:102A70000000000000000000000000000000000056 -:102A80000000000000000000000000000000000046 -:102A90000000000000000000000000000000000036 -:102AA0000000000000000000000000000000000026 -:102AB0000000000000000000E47F0334FFFFFFFF80 -:102AC0000000020000000000000000000000000004 -:102AD00050770334507703345877033458770334EE -:102AE000607703346077033468770334687703349E -:102AF000707703347077033478770334787703344E -:102B000080770334807703348877033488770334FD -:102B100090770334907703349877033498770334AD -:102B2000A0770334A0770334A8770334A87703345D -:102B3000B0770334B0770334B8770334B87703340D -:102B4000C0770334C0770334C8770334C8770334BD -:102B5000D0770334D0770334D8770334D87703346D -:102B6000E0770334E0770334E8770334E87703341D -:102B7000F0770334F0770334F8770334F8770334CD -:102B80000078033400780334087803340878033479 -:102B90001078033410780334187803341878033429 -:102BA00020780334207803342878033428780334D9 -:102BB0003078033430780334387803343878033489 -:102BC0004078033440780334487803344878033439 -:102BD00050780334507803345878033458780334E9 -:102BE0006078033460780334687803346878033499 -:102BF0007078033470780334787803347878033449 -:102C000080780334807803348878033488780334F8 -:102C100090780334907803349878033498780334A8 -:102C2000A0780334A0780334A8780334A878033458 -:102C3000B0780334B0780334B8780334B878033408 -:102C4000C0780334C0780334C8780334C8780334B8 -:102C5000D0780334D0780334D8780334D878033468 -:102C6000E0780334E0780334E8780334E878033418 -:102C7000F0780334F0780334F8780334F8780334C8 -:102C80000079033400790334087903340879033474 -:102C90001079033410790334187903341879033424 -:102CA00020790334207903342879033428790334D4 -:102CB0003079033430790334387903343879033484 -:102CC0004079033440790334487903344879033434 -:102CD00050790334507903345879033458790334E4 -:102CE0006079033460790334687903346879033494 -:102CF0007079033470790334787903347879033444 -:102D000080790334807903348879033488790334F3 -:102D100090790334907903349879033498790334A3 -:102D2000A0790334A0790334A8790334A879033453 -:102D3000B0790334B0790334B8790334B879033403 -:102D4000C0790334C0790334C8790334C8790334B3 -:102D5000D0790334D0790334D8790334D879033463 -:102D6000E0790334E0790334E8790334E879033413 -:102D7000F0790334F0790334F8790334F8790334C3 -:102D8000007A0334007A0334087A0334087A03346F -:102D9000107A0334107A0334187A0334187A03341F -:102DA000207A0334207A0334287A0334287A0334CF -:102DB000307A0334307A0334387A0334387A03347F -:102DC000407A0334407A0334487A0334487A03342F -:102DD000507A0334507A0334587A0334587A0334DF -:102DE000607A0334607A0334687A0334687A03348F -:102DF000707A0334707A0334787A0334787A03343F -:102E0000807A0334807A0334887A0334887A0334EE -:102E1000907A0334907A0334987A0334987A03349E -:102E2000A07A0334A07A0334A87A0334A87A03344E -:102E3000B07A0334B07A0334B87A0334B87A0334FE -:102E4000C07A0334C07A0334C87A0334C87A0334AE -:102E5000D07A0334D07A0334D87A0334D87A03345E -:102E6000E07A0334E07A0334E87A0334E87A03340E -:102E7000F07A0334F07A0334F87A0334F87A0334BE -:102E8000007B0334007B0334087B0334087B03346A -:102E9000107B0334107B0334187B0334187B03341A -:102EA000207B0334207B0334287B0334287B0334CA -:102EB000307B0334307B0334387B0334387B03347A -:102EC000407B0334407B0334487B0334487B03342A -:102ED00043000000000000000000000000000000AF +:1028E00000000000000000000100000000000000E7 +:1028F0000E33CDAB34126DE6ECDE05000B000000AC +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:10299000E47F0334FFFFFFFF00000200000000009F +:1029A000000000000000000050770334507703342B +:1029B00058770334587703346077033460770334EF +:1029C000687703346877033470770334707703349F +:1029D000787703347877033480770334807703344F +:1029E00088770334887703349077033490770334FF +:1029F0009877033498770334A0770334A0770334AF +:102A0000A8770334A8770334B0770334B07703345E +:102A1000B8770334B8770334C0770334C07703340E +:102A2000C8770334C8770334D0770334D0770334BE +:102A3000D8770334D8770334E0770334E07703346E +:102A4000E8770334E8770334F0770334F07703341E +:102A5000F8770334F87703340078033400780334CC +:102A6000087803340878033410780334107803347A +:102A7000187803341878033420780334207803342A +:102A800028780334287803343078033430780334DA +:102A9000387803343878033440780334407803348A +:102AA000487803344878033450780334507803343A +:102AB00058780334587803346078033460780334EA +:102AC000687803346878033470780334707803349A +:102AD000787803347878033480780334807803344A +:102AE00088780334887803349078033490780334FA +:102AF0009878033498780334A0780334A0780334AA +:102B0000A8780334A8780334B0780334B078033459 +:102B1000B8780334B8780334C0780334C078033409 +:102B2000C8780334C8780334D0780334D0780334B9 +:102B3000D8780334D8780334E0780334E078033469 +:102B4000E8780334E8780334F0780334F078033419 +:102B5000F8780334F87803340079033400790334C7 +:102B60000879033408790334107903341079033475 +:102B70001879033418790334207903342079033425 +:102B800028790334287903343079033430790334D5 +:102B90003879033438790334407903344079033485 +:102BA0004879033448790334507903345079033435 +:102BB00058790334587903346079033460790334E5 +:102BC0006879033468790334707903347079033495 +:102BD0007879033478790334807903348079033445 +:102BE00088790334887903349079033490790334F5 +:102BF0009879033498790334A0790334A0790334A5 +:102C0000A8790334A8790334B0790334B079033454 +:102C1000B8790334B8790334C0790334C079033404 +:102C2000C8790334C8790334D0790334D0790334B4 +:102C3000D8790334D8790334E0790334E079033464 +:102C4000E8790334E8790334F0790334F079033414 +:102C5000F8790334F8790334007A0334007A0334C2 +:102C6000087A0334087A0334107A0334107A033470 +:102C7000187A0334187A0334207A0334207A033420 +:102C8000287A0334287A0334307A0334307A0334D0 +:102C9000387A0334387A0334407A0334407A033480 +:102CA000487A0334487A0334507A0334507A033430 +:102CB000587A0334587A0334607A0334607A0334E0 +:102CC000687A0334687A0334707A0334707A033490 +:102CD000787A0334787A0334807A0334807A033440 +:102CE000887A0334887A0334907A0334907A0334F0 +:102CF000987A0334987A0334A07A0334A07A0334A0 +:102D0000A87A0334A87A0334B07A0334B07A03344F +:102D1000B87A0334B87A0334C07A0334C07A0334FF +:102D2000C87A0334C87A0334D07A0334D07A0334AF +:102D3000D87A0334D87A0334E07A0334E07A03345F +:102D4000E87A0334E87A0334F07A0334F07A03340F +:102D5000F87A0334F87A0334007B0334007B0334BD +:102D6000087B0334087B0334107B0334107B03346B +:102D7000187B0334187B0334207B0334207B03341B +:102D8000287B0334287B0334307B0334307B0334CB +:102D9000387B0334387B0334407B0334407B03347B +:102DA000487B0334487B03344300000000000000EC +:102DB0000000000000000000000000000000000013 +:102DC00000000000000000004300000000000000C0 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000004300000000000000A0 +:102DF00000000000000000000000000000000000D3 +:102E0000000000000000000043000000000000007F +:102E100000000000000000000000000000000000B2 +:102E2000000000000000000043000000000000005F +:102E30000000000000000000000000000000000092 +:102E4000000000000000000043000000000000003F +:102E50000000000000000000000000000000000072 +:102E6000000000000000000043000000000000001F +:102E70000000000000000000000000000000000052 +:102E80000000000000000000E9041118C1F910184A +:102E900000000000602D1018E02A1018102C1018E7 +:102EA000102C1018102C1018102C1018102C101892 +:102EB000102C1018102C1018102C1018102C101882 +:102EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFF000010 +:102ED0000100415343494900000000000000000088 :102EE00000000000000000000000000000000000E2 -:102EF000430000000000000000000000000000008F +:102EF0000000415343494900000000000000000069 :102F000000000000000000000000000000000000C1 -:102F1000430000000000000000000000000000006E -:102F200000000000000000000000000000000000A1 -:102F3000430000000000000000000000000000004E -:102F40000000000000000000000000000000000081 -:102F5000430000000000000000000000000000002E -:102F60000000000000000000000000000000000061 -:102F7000430000000000000000000000000000000E -:102F80000000000000000000000000000000000041 -:102F900043000000000000000000000000000000EE -:102FA0000000000000000000000000000000000021 -:102FB00011061118E9FA101800000000602D101811 -:102FC000E02A1018102C1018102C1018102C1018A3 -:102FD000102C1018102C1018102C1018102C101861 -:102FE000102C1018102C1018FFFFFFFFFFFFFFFF21 -:102FF000FFFFFFFFFFFF000001004153434949006D -:1030000000000000000000000000000000000000C0 -:103010000000000000000000000041534349490047 -:1030200000000000000000000000000000000000A0 -:1030300000000000000000000000000080B586B025 -:1030400000AFF860B9607A603B60BB68072B00D9BD -:1030500001BE7B680F2B02D97B68802B05D17B6872 -:10306000012B02D07B68092B00D101BE3B68012BEC -:1030700000D901BE97F820301F2B00D901BE97F868 -:1030800020301A46B968F86805F074FFFB681A68C2 -:103090000121BB6801FA03F3DB4313407B613B680A -:1030A00003F00102BB689A407B691A43FB681A600F -:1030B000FB685A6CBB689B000F2101FA03F3DB43EA -:1030C00013407B61FB681A6FBB689B000F2101FAFC -:1030D00003F3DB4313403B617B68802B13D1BB6858 -:1030E0009B0008229A407B691A43FB685A647B68FC -:1030F0001B0903F00F02BB689B009A403B691A430F -:10310000FB681A670CE07B6803F00F02BB689B004A -:103110009A407B691A43FB685A64FB683A691A67EC -:1031200000BF1837BD4680BD80B58CB002AF786057 -:103130000B46FB7000233B6200F0C5F938627B68E8 -:10314000894A934210D1FB78012B0BD0FB78022BDC -:1031500006D0FB78042B01D1844815E0844813E0A5 -:10316000844811E084480FE0FB78012B0BD0FB78FA -:10317000022B06D0FB78042B01D1804804E0804864 -:1031800002E07E4800E07F487B68774A934210D196 -:10319000FB78012B0BD0FB78022B06D0FB78042B9D -:1031A00001D1072115E0002113E0002111E00021E9 -:1031B0000FE0FB78012B0BD0FB78022B06D0FB78BD -:1031C000042B01D1012104E0032102E0002100E0F1 -:1031D00000210023009301230E22FFF72FFF7B68BD -:1031E000614A934201D1684800E068480023009397 -:1031F00001230E220021FFF721FF00237B62DCE088 -:103200007B68594A934201D15F4B00E05F4BFB6101 -:103210000023BB61BB69072B00D901BE0122BB693A -:103220009A40FB69DA6000BF7B684F4A934210D135 -:10323000FB78012B0BD0FB78022B06D0FB78042BFC -:1032400001D14A4A15E04A4A13E04A4A11E04A4A83 -:103250000FE0FB78012B0BD0FB78022B06D0FB781C -:10326000042B01D1454A04E0454A02E0434A00E00C -:10327000444A7B683C498B4210D1FB78012B0BD030 -:10328000FB78022B06D0FB78042B01D1072315E035 -:10329000002313E0002311E000230FE0FB78012B53 -:1032A0000BD0FB78022B06D0FB78042B01D1012335 -:1032B00004E0032302E0002300E000237A613B6185 -:1032C0003B69072B00D901BE01223B699A407B690B -:1032D000DA6000BF012000F0FDF87B68224A9342CB -:1032E00010D1FB78012B0BD0FB78022B06D0FB789A -:1032F000042B01D11D4A15E01D4A13E01D4A11E0BF -:103300001D4A0FE0FB78012B0BD0FB78022B06D077 -:10331000FB78042B01D1194A04E0194A02E0174A4C -:1033200000E0184A7B6810498B4210D1FB78012BD2 -:103330000BD0FB78022B06D0FB78042B01D107239E -:1033400029E0002327E0002325E0002323E0FB7889 -:10335000012B1FD0FB78022B1AD0FB78042B01D154 -:10336000012318E0032316E00000465400038152B5 -:1033700080038152000181528002815200008152FB -:1033800000068152800A81520000475400004B54CD -:10339000002300E00023FA60BB60BB68072B00D964 -:1033A00001BE0122BB689A40FB68DA6000BF0120C1 -:1033B00000F090F87B6A01337B627B6A032B7FF716 -:1033C0001FAF7B68314A934210D1FB78012B0BD0A1 -:1033D000FB78022B06D0FB78042B01D12C4815E09A -:1033E0002C4813E02C4811E02C480FE0FB78012B0F -:1033F0000BD0FB78022B06D0FB78042B01D1284898 -:1034000004E0284802E0264800E027487B681F4A7D -:10341000934210D1FB78012B0BD0FB78022B06D006 -:10342000FB78042B01D1072115E0002113E00021D6 -:1034300011E000210FE0FB78012B0BD0FB78022B71 -:1034400006D0FB78042B01D1012104E0032102E026 -:10345000002100E000210823009301230E22FFF742 -:10346000EDFD7B68094A934201D1104800E0104805 -:103470001B23009301230E220021FFF7DFFD386A92 -:1034800000F025F800BF2837BD4680BD0000465437 -:1034900000038152800381520001815280028152D7 -:1034A0000000815200068152800A81520000475478 -:1034B00000004B540230800803D001300238FCD1A8 -:1034C00000BF00BF7047EFF3108072B6704780F303 -:1034D0001088704780B584B000AF7860114B1B68CE -:1034E0004FF0FF32B2FBF3F3FB600BE00D4B1B68B8 -:1034F000FA6802FB03F31846FFF7DCFF7A68FB6803 -:10350000D31A7B607A68FB689A42EFD8054B1B6838 -:103510007A6802FB03F31846FFF7CCFF00BF1037B1 -:10352000BD4680BDC075033480B582B000AF034690 -:10353000FB80FB88054A126802FB03F31846FFF77D -:10354000B9FF00BF0837BD4680BD00BFC475033456 -:1035500080B582B000AF0346FB80FB881846FFF7BA -:10356000E3FF00BF0837BD4680BD000080B582B0D4 -:1035700000AF78607B681B684C4A13607B6804333B -:103580001B684A4A53607B6808331B68474A93604C -:103590007B680C331B68454AD3607B6810331B681B -:1035A000424A13617B6814331B68404A53617B684D -:1035B00018331B683D4A93617B681C331B683B4A88 -:1035C000D3613B4B9B6A394A1362394BDB6A374AFA -:1035D0005362374B5B6A354A9362354B5B6B334AB8 -:1035E000D362334B9B6B314A1363F1EE103A03F015 -:1035F0009003002B54D07B6820331B682B4A536305 -:103600007B6824331B68294A93637B6828331B68D3 -:10361000264AD3637B682C331B68244A13647B6877 -:1036200030331B68214A53647B6834331B681F4A5C -:1036300093647B6838331B681C4AD3647B683C33D3 -:103640001B681A4A13657B6840331B68174A536529 -:103650007B6844331B68154A93657B6848331B6855 -:10366000124AD3657B684C331B68104A13667B682B -:1036700050331B680D4A53667B6854331B680B4AF2 -:1036800093667B6858331B68084AD3667B685C3353 -:103690001B68064A13677B6860331B68034A5367DD -:1036A00000F008F800BF0837BD4680BDD88103345C -:1036B00000ED00E080B400AF00BFFDE780B483B050 -:1036C00000AF786039607B683A68C3F8C82700BFEC -:1036D0000C37BD465DF8047B704780B483B000AF03 -:1036E00078607B68D3F8C83718460C37BD465DF85C -:1036F000047B704780B483B000AF78607B689B6CBC -:1037000003F00F0318460C37BD465DF8047B704785 -:1037100080B483B000AF78607B68D3F8C43003F026 -:103720000F0318460C37BD465DF8047B704780B424 -:1037300083B000AF78607B685B6803F00043B3F14F -:10374000004F0CBF01230023DBB218460C37BD46E7 -:103750005DF8047B704780B586B000AF7860396053 -:103760003B685B693B613B68DB68FB607868FFF73F -:10377000CFFFB860BA683B69934228BF13467B61AC -:10378000B2E07B69082B11D17B68D3F8D8300122D5 -:10379000F968184600F0DAF87B68D3F8D800FB68BF -:1037A00004330122194600F0D1F88BE07B69012B2C -:1037B00006D17B68D3F8D030DAB2FB681A7081E0AA -:1037C0007B69022B08D17B68D3F8D4300022F968DA -:1037D000184600F0BBF875E07B69032B0FD17B68BE -:1037E000D3F8D4300022F968184600F0AFF87B68AF -:1037F000D3F8D020FB680233D2B21A7062E07B6942 -:10380000042B08D17B68D3F8D8300122F968184618 -:1038100000F09CF856E07B69052B0FD17B68D3F84C -:10382000D8300122F968184600F090F87B68D3F888 -:10383000D020FB680433D2B21A7043E07B69062BB8 -:1038400011D17B68D3F8D8300122F968184600F00E -:103850007DF87B68D3F8D400FB6804330022194656 -:1038600000F074F82EE07B69072B18D17B68D3F841 -:10387000D8300122F968184600F068F87B68D3F860 -:10388000D400FB6804330022194600F05FF87B681F -:10389000D3F8D020FB680633D2B21A7012E07B68EE -:1038A000D3F8D8300122F968184600F04FF87B6849 -:1038B000D3F8D800FB6804330122194600F046F81B -:1038C00008237B61FA687B691344FB603A697B6972 -:1038D000D31A3B617868FFF71BFFB860BA683B6991 -:1038E000934228BF13467B617B69002B7FF449AF6D -:1038F0003B68FA68DA603B683A695A613B69002BB9 -:103900001DD17868FFF704FF0346012B02D17B68C5 -:10391000D3F8D0307868FFF7E0FE034623F00203C7 -:1039200019467868FFF7CAFE3B6803221A763B689F -:103930001B6A002B03D03B681B6A032098473B6837 -:103940003A695A6100BF1837BD4680BD80B485B062 -:1039500000AFF860B9601346FB71FB68DAB2BB6870 -:103960001A70FB681A0ABB680133D2B21A70FB796D -:10397000002B0BD0FB681A0CBB680233D2B21A7052 -:10398000FB681A0EBB680333D2B21A7000BF14373B -:10399000BD465DF8047B704780B584B000AF7860A9 -:1039A0000023FB607B681B68002B0FD00120FFF712 -:1039B000BBFD7B681B685A1E7B681A607B681B68AE -:1039C000002B01D1044B00E00023FB60FB6818468C -:1039D0001037BD4680BD00BF0200B20080B485B084 -:1039E00000AF78600B46FB70FB78013B072B27D8B4 -:1039F00001A252F823F000BFDD290014E7290014CA -:103A0000052A0014F1290014052A0014052A0014BF -:103A1000052A0014FB2900147B6803F50063FB6092 -:103A200011E07B6803F50863FB600CE07B6803F53D -:103A30001063FB6007E07B6803F51863FB6002E03E -:103A40000023FB6000BFFB6818461437BD465DF8D5 -:103A5000047B704780B588B000AFF860B9607A60C9 -:103A60003B600023FB61FB68002B05D0BB68002B8B -:103A700002D03B68002B01D1774BE9E0BB681B68A3 -:103A8000DBB2002B05D0BB681B68DBB2012B00D07A -:103A900001BEBB68DB68DBB2002B05D0BB68DB680E -:103AA000DBB2012B00D001BEBB685B68072B00D9DD -:103AB00001BE3B6800221A603B6800225A603B68E6 -:103AC00000229A603B680022DA603B6800221A619B -:103AD0003B6800225A613B6800221A763B6800224C -:103AE000DA613B6800221A623B687A685A623B6876 -:103AF00000221A853B68002283F82A203B680022B6 -:103B000083F82B203B68002283F82C203B6800229E -:103B10001A633B6800225A63FB681B687B617B6900 -:103B2000DB0F012B05D17B6903F00103002B40F073 -:103B30008E804FF44073BB61F868FFF7CEFD0346FB -:103B400023F003031946F868FFF7B8FDBB6923F0BB -:103B50000102BB681B6803F001031343BB61BB692F -:103B600023F08072BB68DB681B0603F0807313438D -:103B7000BB61BB6923F4E022BB685B681B0403F4F0 -:103B8000E0231343BB613A68B968F86800F066F84F -:103B9000F861FB69002B02D001BEFB6958E0BB68ED -:103BA0009B7E1946F86800F0FBFCF861FB69002B6E -:103BB00009D1FB6803F50062BB68DB7E194610463D -:103BC00000F06CF9F861FB69002B09D1FB6803F583 -:103BD0000862BB681B7F1946104600F05FF9F86168 -:103BE000FB69002B09D1FB6803F51062BB685B7FA2 -:103BF0001946104600F052F9F861FB69002B09D113 -:103C0000FB6803F51862BB689B7F1946104600F0FD -:103C100045F9F861BB6923F47003BB61BB685B695C -:103C2000B3F5967F08D3BB6943F40013BB61BB694E -:103C300043F40003BB6107E0BB6943F48013BB613D -:103C4000BB6943F48003BB61FB68BA691A60FB6916 -:103C500018462037BD4680BD0400B20080B489B04C -:103C600000AFF860B9607A60FB68002B05D0BB68D4 -:103C7000002B02D07B68002B01D1544B9FE0BB6826 -:103C80005B7E002B1DD0BB681B68002B0ED17B68B0 -:103C900093F82A30002B09D1BB689B7E012B03D9F6 -:103CA000BB689B7E0C2B0BD9484B88E0BB689B7E86 -:103CB000012B03D9BB689B7E0D2B02D9434B7EE0C1 -:103CC00000BF434BFB61BB681B7E002B44D0BB682D -:103CD0005B69962B08D8FB6943F00403FB61FB6822 -:103CE0000022C3F8D82743E004237B610023BB6193 -:103CF00028E0384ABB6952F82320BB685B699A42C6 -:103D00001DD8BB685A69BB690133324951F8233069 -:103D10009A4214D8BB6903F00303FA691343FB61A9 -:103D20002D4ABB6952F823309B0403F44022FB69FF -:103D3000134343F4203343F08003FB6106E0BB6987 -:103D40000133BB61BA697B699A42D2D3BA697B6994 -:103D50009A420DD11D4B32E0FB6943F00803FB6131 -:103D6000FB6943F00403FB61FB680022C3F8D8271A -:103D7000BB685B7E1B0103F03003FA691343FB61F0 -:103D8000BB689B7E1B0203F47063FA691343FB61FB -:103D9000BB68DB7F1B0503F44013FA691343FB6127 -:103DA000FB6943F40003FB61BB6893F82030DB0739 -:103DB000FA691343FB61FB68FA699A6000231846AD -:103DC0002437BD465DF8047B704700BF0400B20095 -:103DD00000D08000C8750334DC75033480B483B030 -:103DE00000AF78600B46FB70FB78002B03D0FB78AC -:103DF000012B00D001BEFB78002B06D17B681B682D -:103E000023F001027B681A6005E07B681B6843F0C1 -:103E100001027B681A6000BF0C37BD465DF8047B69 -:103E2000704780B584B000AF78600B46FB701346D6 -:103E3000BB70FB78012B0CD0FB78022B09D0FB78F0 -:103E4000042B06D0FB78082B03D0FB78032B00D083 -:103E500001BEBB78002B09D0BB78012B06D0BB7804 -:103E6000022B03D0BB78032B00D001BEFB78194690 -:103E70007868FFF7B3FDF860FB68002B0AD0FB6899 -:103E80001B6823F44072BB781B0203F440731A438F -:103E9000FB681A6000BF1037BD4680BD90B583B087 -:103EA00000AF78600B46FB70FC78786800F022F871 -:103EB0000346013B9C4201D90D4B14E07B689B6A91 -:103EC00023F0F002FB781B01DBB21A437B689A6295 -:103ED0007B689B6A23F00F02FB7803F00F031A4301 -:103EE0007B689A62002318460C37BD4690BD00BF20 -:103EF0000400B20080B483B000AF7860102318468D -:103F00000C37BD465DF8047B704780B58CB008AFB8 -:103F1000F8607B600B46FB721346BB72FB7A99B26A -:103F2000BA7ABB6A07937B6A069397F820300593A9 -:103F3000002304933B7F0393BB6902937B68019347 -:103F40000023009313460022F86800F06DF8034642 -:103F500018461037BD4680BD80B586B002AFF86008 -:103F6000B9607A60FB70FA78BB6901930023009313 -:103F700013467A68B968F86800F0CEF90346184627 -:103F80001037BD4680BD80B582B000AF7860396023 -:103F90003B6800220021786800F03AFA0346184690 -:103FA0000837BD4680BD80B582B000AF786039600B -:103FB0003B6800221A603B6800225A603B6800227E -:103FC0009A603B680022DA603B6800221A613B6815 -:103FD00000225A613B6800221A767B681B6843F016 -:103FE00000427B681A607B689B6803F00403002B27 -:103FF00016D17B689B6803F00803002B10D100BF2B -:104000007B685B6803F00103002BF9D00A20FFF7FF -:104010008BFA00BF7868FFF78AFB0346002BF9D1C3 -:1040200000BF0837BD4680BD80B586B000AF786060 -:10403000084611461A4603467B800B467B701346A2 -:104040003B7000237B613B78002B0CD03B78012B2D -:1040500009D03B78022B06D03B78032B03D03B786A -:10406000FF2B00D001BE97F82C30002B10D097F812 -:104070002C30012B0CD097F82C30022B08D097F85D -:104080002C30032B04D097F82C30FF2B00D001BE2E -:1040900097F83430012B10D097F83430022B0CD025 -:1040A00097F83430042B08D097F83430082B04D01C -:1040B00097F83430032B00D001BE97F82030002B46 -:1040C00004D097F82030012B00D001BE97F8303093 -:1040D000002B04D097F83030012B00D001BEBB6A12 -:1040E000002B03D07B6A002B00D101BEBB6A002BE2 -:1040F00004D097F82C30FF2B00D101BE0023FB74B5 -:1041000097F834301B0503F47003FB60FB6B5B6AAC -:10411000BB607B78002B58D03B78032B26D197F8D7 -:104120002030012B22D13B781B0403F44032FB6882 -:104130001A4397F820309B0403F4802313437A88B2 -:10414000D2B21A437B881B0A9BB2DBB21B029BB222 -:104150001A43BB6A002B04D1BB6BDB0403F40023BE -:1041600000E000231A437B681A6549E03B781B0492 -:1041700003F44032FB681A4397F820309B0403F4A1 -:10418000802313437A88120A92B2D2B21A437B6810 -:104190001A653B781B0403F44032FB681A4397F816 -:1041A00020309B0403F4802313437A88D2B21A434D -:1041B000BB6A002B04D1BB6BDB0403F4002300E0DB -:1041C00000231A437B681A651AE03B781B0403F44A -:1041D0004032FB681A4397F820309B0403F4802395 -:1041E00013437A88D2B21A43BB6A002B04D1BB6B4B -:1041F000DB0403F4002300E000231A437B681A6504 -:1042000097F82C30032B75D197F83030012B71D1F2 -:1042100037E07868FFF76EFA0346072B2BD8FB7C54 -:1042200001337A6A13441B781A46FB681A43FB7CF5 -:10423000796A0B441B781B029BB21A4397F82C3007 -:104240001B0403F440331A4397F830309B0403F403 -:1042500080231A43FB7C0233B96A994204D8BB6BB2 -:10426000DB0403F4002300E000231A437B681A6593 -:10427000FB7C0233FB7407F108031846FFF78CFB45 -:104280007861FB7CBA6A9A423DD97B69214A9342A4 -:10429000BFD138E07868FFF72DFA0346072B23D803 -:1042A000FB7C7A6A13441B781A46FB681A4397F81A -:1042B0002C301B0403F440331A4397F830309B042E -:1042C00003F480231A43FB7C0133B96A994204D872 -:1042D000BB6BDB0403F4002300E000231A437B687C -:1042E0001A65FB7C0133FB7407F108031846FFF7DE -:1042F00053FB7861FB7CBA6A9A4205D97B69054A0F -:104300009342C7D100E000BF7B6918461837BD460D -:1043100080BD00BF0200B20080B596B000AFF8606B -:10432000B9607A60FB70374B7B65FB78002B0CD053 -:10433000FB78012B09D0FB78022B06D0FB78032BEE -:1043400003D0FB78FF2B00D001BE7B68002B54D03C -:104350002D4B7B65F868FFF7CDF90346072B4CD84A -:10436000FB78032B0BD197F86030012B07D17B68CA -:104370005A087B6803F0010313443B6501E07B6846 -:104380003B65FB781B0403F440323B6D013B9BB261 -:104390001A4397F860309B0403F48023134343F0DF -:1043A0000272FB681A650120FFF7BEF800237B65E7 -:1043B000BB68002B21D07B6E5B6AFB64BB683B62F1 -:1043C0007B68BB6200237B63042387F82C300BE0FF -:1043D00007F114031946F868FFF7BDF907F14C031C -:1043E0001846FFF7D9FA786597F82C30DBB2042B22 -:1043F00003D17B6D054A9342EAD17B6D184658374D -:10440000BD4680BD0400B2000100B2000200B2004F -:1044100080B586B000AFF8607B600B46FB72134638 -:10442000BB721A4B7B617B68002B2AD0184B7B61D7 -:1044300000233B61FB689B6803F44013B3F5001F46 -:1044400001D101233B61F868FFF754F90346072BBC -:1044500017D87B68013B9AB2FB7A1B0403F4403304 -:104460001A43BB7A9B0403F480231A433B69DB05A0 -:1044700003F40003134343F04072FB681A65002302 -:104480007B617B6918461837BD4680BD0400B200C9 -:104490000100B20080B485B000AF03463960FB7103 -:1044A0001D4BFB60FB79013B072B2BD801A252F877 -:1044B00023F000BF99340014A5340014C93400144B -:1044C000B1340014C9340014C9340014C9340014C0 -:1044D000BD3400143B6800221A600023FB6014E026 -:1044E0003B6801221A600023FB600EE03B68022259 -:1044F0001A600023FB6008E03B6803221A60002377 -:10450000FB6002E0044BFB6000BFFB6818461437F9 -:10451000BD465DF8047B70470400B20080B584B0EE -:1045200000AF78600B46FB701346BB707B68002BB6 -:1045300000D101BE7B681B68002B01DA174B29E014 -:104540007B689B6823F440127B689A607B689A685A -:10455000FB781B0503F440131A437B689A6007F14C -:104560000C02BB7811461846FFF794FF0346002B58 -:104570000FD1FB687A68DB01134403F628031A683D -:10458000FB6842F080727968DB010B4403F6280374 -:104590001A60002318461037BD4680BD0400B200E3 -:1045A00080B483B000AF78600B46FB70FB780F2BB4 -:1045B00001D90C4B0FE07B689B6823F470627B6829 -:1045C0009A607B689A68FB781B0203F470631A4355 -:1045D0007B689A60002318460C37BD465DF8047B63 -:1045E000704700BF0400B20080B485B000AF7860AF -:1045F00039607B68002B02D03B68002B01D1684BEF -:10460000C8E00023FB607B6803F500532433BB60E4 -:104610003B681B79002B22D03B689B68C3F30B03DC -:10462000002B1AD13B68DB68C3F30B03002B14D1BA -:10463000BB681A1DBA603A6892681A603B681B7CB6 -:104640005B0003F03E023B68DB681A43BB68191D40 -:10465000B96042F001021A6001E0514BFB603B6817 -:104660001B7D002B28D07B6803F500532C33BB60E7 -:104670003B689B69C3F30B03002B1BD13B68DB69D1 -:10468000C3F30B03002B15D1BB681A1DBA603A683F -:1046900092691A603B6893F820305B0003F03E0299 -:1046A0003B68DB691A43BB68191DB96042F001021F -:1046B0001A6001E03A4BFB603B6893F82430002B12 -:1046C00028D07B6803F500533433BB603B689B6A9A -:1046D000C3F30B03002B1BD13B68DB6AC3F30B0353 -:1046E000002B15D1BB681A1DBA603A68926A1A602D -:1046F0003B6893F830305B0003F03E023B68DB6AB6 -:104700001A43BB68191DB96042F001021A6001E04A -:10471000234BFB603B6893F83430002B28D07B6838 -:1047200003F500533C33BB603B689B6BC3F30B0347 -:10473000002B1BD13B68DB6BC3F30B03002B15D1A4 -:10474000BB681A1DBA603A68926B1A603B6893F8AE -:1047500040305B0003F03E023B68DB6B1A43BB68F2 -:10476000191DB96042F001021A6001E00C4BFB60B8 -:10477000FB680B4A93420CD03B681B7843F4E02261 -:104780007B681A613B685B781A467B6803F50053C7 -:10479000DA61FB6818461437BD465DF8047B704744 -:1047A0000400B20080B483B000AF78607B6843F04F -:1047B0008053064A934201D1002300E001231846AA -:1047C0000C37BD465DF8047B704700BF00004654BF -:1047D00080B487B000AF78600B46FB701346BB70A7 -:1047E000FF23FB75BB78032B00D901BE7B6893F8D0 -:1047F0004030002B24D000233B6117E0FB78234A94 -:1048000052F823305B685A683B699B0013441B686D -:104810001B781946BB78012202FA03F3994202D1B0 -:104820003B69FB752AE03B6901333B61FB78174A22 -:1048300052F823305B681B683A699A42DED31DE068 -:104840000023FB6014E07B685B685A68FB689B0090 -:1048500013441B681B781946BB78012202FA03F344 -:10486000994202D1FB68FB7508E0FB680133FB60ED -:104870007B685B681B68FA689A42E4D3FB7D184644 -:104880001C37BD465DF8047B704700BF207D0334B4 -:1048900080B586B000AFF860B9607A60164B7B6176 -:1048A0007B68002283F840207B6893F8403083F0D7 -:1048B0000103DBB2002B1AD07B6808331A46B968B3 -:1048C000F86800F0D1FB78617B69002B0FD17B6821 -:1048D000FA681A607B68BA685A60F868FFF762FF86 -:1048E0000346FB74FB7C05497A6841F823207B6909 -:1048F00018461837BD4680BD8400B200207D0334C1 -:1049000080B58AB000AFF8600B467A60FB72FB6836 -:104910001B681846FFF746FF034687F8213000233F -:104920007B62FA7A97F821301946F868FFF750FF52 -:10493000034687F82030FB6893F84030002B00F0E6 -:104940009B8097F821309E4A52F823305B685A6862 -:1049500097F820309B0013441B689B697B6197F894 -:104960002130974A52F823305B685A6897F8203014 -:104970009B0013441B681B6A3B617B69002B6FD053 -:104980007B6801221A607B695A687B685A607B6980 -:104990009A697B689A607B695A6A7B68DA607B698E -:1049A000DA6C7B681A61002387F8233051E07B6959 -:1049B0001A6D97F823309B0013441B6897F8232047 -:1049C0001968786813465B0013449B000344143352 -:1049D00019607B691A6D97F823309B0013441B689C -:1049E00097F82320D968786813465B0013449B002E -:1049F00003441C3319607B691A6D97F823309B00C0 -:104A000013441B68596897F82320786813465B00A5 -:104A100013449B0003441C331B6803FB01F197F80C -:104A20002320786813465B0013449B00034414332F -:104A30001B6897F823201944786813465B001344D9 -:104A40009B0003441833196097F82330013387F82B -:104A5000233097F823207B681B699A42A7D3A9E0EB -:104A60007B6802221A603B695B681A467B685A6061 -:104A70007B6800229A609DE0FB6893F8403083F0E9 -:104A80000103DBB2002B00F09380FB685B685A687F -:104A900097F820309B0013441B689B69FB61FB68FF -:104AA0005B685A6897F820309B0013441B681B6AA8 -:104AB000BB61FB69002B6FD07B6801221A60FB6928 -:104AC0005A687B685A60FB699A697B689A60FB69DF -:104AD0005A6A7B68DA60FB69DA6C7B681A610023CA -:104AE00087F8223051E0FB691A6D97F822309B005D -:104AF00013441B6897F822201968786813465B00F6 -:104B000013449B00034414331960FB691A6D97F832 -:104B100022309B0013441B6897F82220D9687868DC -:104B200013465B0013449B0003441C331960FB696C -:104B30001A6D97F822309B0013441B68596897F848 -:104B40002220786813465B0013449B0003441C3307 -:104B50001B6803FB01F197F82220786813465B007D -:104B600013449B00034414331B6897F82220194414 -:104B7000786813465B0013449B00034418331960A4 -:104B800097F82230013387F8223097F822207B688B -:104B90001B699A42A7D30DE07B6802221A60BB69A9 -:104BA0005B681A467B685A607B6800229A6001E065 -:104BB000044B7B627B6A18462837BD4680BD00BF28 -:104BC000207D03348400B20080B485B000AF7860EB -:104BD0000B46FB70FB78013B072B27D801A252F84C -:104BE00023F000BFC93B0014D33B0014F13B001479 -:104BF000DD3B0014F13B0014F13B0014F13B0014C9 -:104C0000E73B00147B6803F50063FB6011E07B6801 -:104C100003F50863FB600CE07B6803F51063FB6041 -:104C200007E07B6803F51863FB6002E00023FB608C -:104C300000BFFB6818461437BD465DF8047B70471B -:104C400080B487B000AF786039603B689B697B6156 -:104C50007B699B683B617B691B6AFB603B68DB6827 -:104C600023F0FF027B689A603B681B695B4223F07C -:104C7000FF027B68DA607B691B68013B03F0070376 -:104C80003A685269002A02D04FF4807200E0002294 -:104C90001A437B681A623B685B6803F01003002BC1 -:104CA00000F0ED803B69002B6DD03B691B68B3F1D0 -:104CB000FF3F19D03B691B68DAB23B691B6A1B02D4 -:104CC0009BB21A433B6993F824309B0403F480237E -:104CD0001A433B691B791B0403F440331A433B69B5 -:104CE0009B7F9B07134300E000237A6813643B69B2 -:104CF0005B791B0403F440323B695B7F9B0403F444 -:104D000080231A437B685A643B699B68B3F1FF3F79 -:104D100018D03B699B68DAB23B699B691B029BB266 -:104D20001A433B691B7B1B0403F440331A433B6962 -:104D30001B7F9B0403F480231A433B69DB7D9B07A5 -:104D4000134300E000237A6893643B691B69002BDE -:104D500009D03B691B69013B03F01F023B699B7D46 -:104D60009B07134300E000237A68D3643B691B7DF3 -:104D70001B0403F440323B695B7D9B0403F48023F6 -:104D80001A437B681A65FB68002B00F00881FB68FA -:104D90001B68B3F1FF3F19D0FB681B68DAB2FB68F0 -:104DA0001B6A1B029BB21A43FB6893F824309B04D6 -:104DB00003F480231A43FB681B791B0403F440337C -:104DC0001A43FB689B7F9B07134300E000237A682C -:104DD0001366FB685B791B0403F44032FB685B7F5E -:104DE0009B0403F480231A437B685A66FB689B6824 -:104DF000B3F1FF3F18D0FB689B68DAB2FB689B6990 -:104E00001B029BB21A43FB681B7B1B0403F4403359 -:104E10001A43FB681B7F9B0403F480231A43FB683F -:104E2000DB7D9B07134300E000237A689366FB68F1 -:104E30001B69002B12D0FB681B69013B03F01F02AA -:104E4000FB689B7D9B071343FA68927D002A02D082 -:104E50004FF4003200E00022134300E000237A68A0 -:104E6000D366FB681B7D1B0403F44032FB685B7D4B -:104E70009B0403F480231A437B681A678FE03B6925 -:104E8000002B44D03B691B68B3F1FF3F0BD03B695B -:104E90001B68DAB23B691B791B0403F440331343EC -:104EA00043F0804300E000237A6813643B695B7938 -:104EB0001B0403F440327B685A643B699B68B3F17E -:104EC000FF3F0BD03B699B68DAB23B691B7B1B043D -:104ED00003F44033134343F0804300E000237A6837 -:104EE00093643B691B69002B07D03B691B69013B3D -:104EF00003F01F0343F0804300E000237A68D3648B -:104F00003B691B7D1B0403F440327B681A65FB6818 -:104F1000002B44D0FB681B68B3F1FF3F0BD0FB684C -:104F20001B68DAB2FB681B791B0403F4403313439C -:104F300043F0804300E000237A681366FB685B79E6 -:104F40001B0403F440327B685A66FB689B68B3F12C -:104F5000FF3F0BD0FB689B68DAB2FB681B7B1B042E -:104F600003F44033134343F0804300E000237A68A6 -:104F70009366FB681B69002B07D0FB681B69013B2C -:104F800003F01F0343F0804300E000237A68D366F8 -:104F9000FB681B7D1B0403F440327B681A6700BF6B -:104FA0001C37BD465DF8047B7047000080B58CB0AF -:104FB00006AFF8607A601A460B46FB721346BB7266 -:104FC000184B7B61B97AFB6A049300230393FB7A45 -:104FD000029300230193BB6A00937B6A0022F86866 -:104FE000FEF793FF78617B69002B0AD197F8203098 -:104FF000002B06D097F820301946F868FEF7C3FF5B -:1050000078617B69002B08D1FB6A009300230122A1 -:105010007968F868FEF7A0FF78617B691846183751 -:10502000BD4680BD8000B20080B485B000AFF8609E -:10503000B9607A603B603B68013B3B603A687B68E3 -:105040001344BA681344FA68D2B21A70FB681B0A98 -:10505000FB603B68002BEED100BF00BF1437BD469C -:105060005DF8047B7047000080B58EB002AFF86039 -:10507000B9607A60124BFB620023BB62FB68002BB5 -:1050800000F06B81BB68002B00F06781BB685B6838 -:10509000002B00F062817B68002B00F05E81BB6812 -:1050A0001B68002B00F05981BB681B68FB61BB6863 -:1050B0005B68BB610023FB6200237B6248E100BFA9 -:1050C0000400B2007B6A9B00BA6913441B687B61D1 -:1050D0007B69002B00F039817B691B78012B10D094 -:1050E0007B691B78022B0CD07B691B78042B08D0C2 -:1050F0007B691B78082B04D07B691B78032B00D0BD -:1051000001BE7B691B7A002B0CD07B691B7A012BBB -:1051100008D07B691B7A022B04D07B691B7A032B96 -:1051200000D001BE7B695A687B685A63FB6803F54F -:1051300080431A4641F61B331361FB6803F5804335 -:105140001A461B231362FB6803F580331A46EE23CD -:10515000C2F8C430FB6803F580331A460B23C2F84B -:105160004431FB6803F580331A4640F20773C2F8F6 -:10517000E830FB6803F580331A460723C2F868312C -:10518000FA687B6ADB01134403F628031B6843F0CB -:105190000102F9687B6ADB010B4403F628031A60FD -:1051A000FA687B6ADB01134403F628031B6843F0AB -:1051B0001002F9687B6ADB010B4403F628031A60CE -:1051C0007B699B69002B00F0B2807B691B781946D4 -:1051D000F868FFF7F9FC38613B69002B00F0A48008 -:1051E0003B691B6823F440727B691B7A1B0203F442 -:1051F00040731A433B691A6000233B627B695B681A -:1052000003F00403002B16D07B6999697B691A7837 -:105210007B69187A7B6800930346F86803F02CFAE0 -:1052200038623B6A002B06D008227B6A02FA03F33D -:10523000BA6A1343BB627B699B691B68002B04D06D -:105240007B699B691B68042B00D901BE3B6A002B5C -:105250007BD17B695B6803F00203002B75D0FB6890 -:105260001B6803F00103012B6FD07B69DB687A694F -:105270001269B3FBF2F101FB02F29B1A002B00D082 -:1052800001BE7B691B69B3F5803F07D37B691A694F -:105290007B691B69013B1340002B00D001BE79697B -:1052A0003869FFF7CDFC7B699B699B685A7D7B68F9 -:1052B00083F82C207B6893F82C30012B05D13B69B7 -:1052C0009B6A43F040723B699A62FB689B6803F4F7 -:1052D0004013B3F5001F05D13B699B6A43F0807210 -:1052E0003B699A627B695B6803F001027B695B68DA -:1052F000DB081B0103F010031A437B691B7A1B02B6 -:1053000003F440731A437B695B685B09DB039BB260 -:105310001A437B691B7F1B0303F4E043134343F0F1 -:1053200000423B691A6010E0124BFB6215E07B699A -:105330001B6A002B06D07A687969F86803F006FAD0 -:10534000F86202E00B4BFB6207E07B6A01337B6291 -:105350007A6AFB699A42FFF4B5AEBB6A002B03D0B0 -:10536000BB6A43F43203FB62FB6A18463037BD4622 -:1053700080BD00BF0400B200F0B58FB008AFF86088 -:10538000B9607A60BB689B69DB683B611B4B7B61E2 -:105390003B69002B2DD03B691B689AB23B691B6AA5 -:1053A0009BB21B029BB213439CB23B691B79032B3C -:1053B0000CBF01230023DDB23B691E793B6993F8E2 -:1053C00024303A69527FB9680978786807900120DB -:1053D000069005910492FF2203920022029200227D -:1053E0000192009333462A462146F868FEF71CFED8 -:1053F00078617B6918461C37BD46F0BD8000B2005D -:10540000F0B58FB008AFF860B9607A60BB689B698F -:105410001B693B611B4B7B613B69002B2DD03B69BA -:105420001B689AB23B691B6A9BB21B029BB2134377 -:105430009CB23B691B79032B0CBF01230023DDB217 -:105440003B691E793B6993F824303A69527FB96809 -:105450000978786807900120069005910492FF2250 -:1054600003920022029200220192009333462A46C0 -:105470002146F868FEF7D8FD78617B6918461C372D -:10548000BD46F0BD8000B200F0B591B008AFF86045 -:10549000B9607A600123FB824A4BFB61BB689B6960 -:1054A000BB61BB699B6A002B77D0BB699B6A1B7988 -:1054B000032B64D100233B61BB699B6A1B689AB2D2 -:1054C000BB699B6A1B6A9BB21B029BB213439DB2D2 -:1054D000BB699B6A1E79BB699B6A93F82430BA69E1 -:1054E000926A5279B969896A497FB86800787C689C -:1054F00007940024069405900491039204220292DA -:1055000007F1100201920093334601222946F86800 -:10551000FEF78AFDF861FB69002B11D1BB699B6A1C -:105520001B69002B0CD0BB699B6A5979BB699B6ACC -:105530005A7FBB699B6A1B69F868FEF769FFF861CF -:10554000FB69002B29D1BB699B6A93F82430012B9E -:1055500001D1022000E00120BB699B6A1C79BB6974 -:105560009B6A93F8243007F116017A680192009340 -:1055700023460246F868FEF7CFFEF8610DE0BB69EE -:105580009B6A1B68D9B207F116027B6800930B4631 -:10559000B968F86800F0D8F9F861FB69002B07D109 -:1055A000BB699B6BDBB21A46FB8A13409BB2FB8242 -:1055B000FB8A002B14BF01230023DBB218462437DB -:1055C000BD46F0BD8000B20080B58CB002AFF8607F -:1055D000B9607A605E4B7B620023BB82BB689B69CB -:1055E0003B623B6ADB6A002B00F0AD803B6A1B6BC1 -:1055F000002B00F0A8803B6A9B6A002B00F0A38080 -:105600003B6ADB6A1B68FB773B6A1B6B1B68BB77DB -:105610003B6A9B6A1B687B77F97F07F114027B6802 -:1056200000930B46B968F86800F08EF978627B6ADF -:10563000002B40F088803B6ADB6BBB61BB69802B31 -:1056400059D0BB69802B78D8BB69022B14D0BB69B9 -:10565000402B72D13A7DBB69DBB21343DBB23B75A1 -:10566000B97F07F114027B6800930B46B968F868AC -:1056700000F098F9786266E0797F07F114027B68A0 -:1056800000930B46B968F86800F05EF978627B6AAF -:10569000002B55D1F97F07F114035A1C7B68009346 -:1056A0000B46B968F86800F04FF978627B6A002B06 -:1056B00046D17A7DBB69DBB21343DBB27B75BB7F1E -:1056C000312B0CD1B97F07F114035A1C7B6800936E -:1056D0000B46B968F86800F065F9786230E0B97F88 -:1056E00007F114027B6800930B46B968F86800F074 -:1056F00059F9786224E0F97F07F114035A1C7B689A -:1057000000930B46B968F86800F01EF978627B6A6E -:10571000002B17D17A7DBB69DBB21343DBB27B75FB -:10572000B97F07F114035A1C7B6800930B46B968D4 -:10573000F86800F037F9786204E0064B7B6202E01B -:1057400000BF00E000BF7B6A18462837BD4680BD19 -:105750008000B2000300B20090B593B006AFF860CD -:10576000B9603B601346FB71764BFB62BB689B697B -:10577000BB62FB79012B44D1BB6A5B6EBB61BB6929 -:10578000002B1BD0BB691B78002B17D0BB69987806 -:10579000BB69DC1CBB691B78013BBA6812783968AD -:1057A0000491012103910292002201920093234669 -:1057B00000220146F868FEF7A8FBF862BB69002BDF -:1057C00000F0BA80BB695B78002B00F0B580BB6944 -:1057D000987ABB6903F10B04BB695B78013BBA683B -:1057E00012783968049101210391029200220192FA -:1057F0000093234600220146F868FEF786FBF86214 -:105800009AE0BB6A9B6E002B00F09680BB6ADB6E51 -:10581000002B00F09180BB6A9B6E1B6887F82730D5 -:10582000BB6ADB6E1B6887F82630BB6ADB681B68C7 -:1058300087F8253000237B61BB6A586F07F114019C -:1058400003230022FFF7F0FBBB6A5B6FB3F1FF3F5E -:105850004CD0BB68197897F8270007F11403DA1CBD -:105860003B6803930323029307F11403019300237E -:1058700000930346F868FFF799FBF862FB6A002B78 -:105880005AD1BB6A1B6FFB61FA7DFB69DBB2134324 -:10589000DBB2FB75BB681B7897F825103A68049259 -:1058A000012203920293002301930023009300231B -:1058B0000022F868FEF729FBF862FB6A002B3BD157 -:1058C000BB681B7807F1140097F826103A68049219 -:1058D00001220392029300230193042300930346C1 -:1058E0000022F868FEF711FBF86225E00023FB7444 -:1058F00097F8271007F113023B6800930B46B9682D -:10590000F86800F021F8F862FB6A002B14D1BB6A3A -:105910001B6F3B623B6ADAB2FB7C1343DBB2FB7466 -:1059200097F8261007F113023B6800930B46B968FD -:10593000F86800F037F8F862FB6A18463437BD465D -:1059400090BD00BF8000B20080B58CB006AFF8609B -:10595000B9607A60FB70124B7B61BB681B78F97889 -:105960003A6A0492002203920293FF2301930023D8 -:10597000009300230022F868FEF7C7FA78617B697C -:10598000002B08D13B6A0093002301227968F86854 -:10599000FEF7E2FA78617B6918461837BD4680BD8C -:1059A0008000B20080B58EB006AFF860B9607A6052 -:1059B000FB70BA6AB968F868FFF7DEFCF861FB694A -:1059C000002B22D1BB689B69DB6BBB61BB69022BDF -:1059D00007D1BB689B691B6B1B68012B01D102239C -:1059E00000E001237B61BB681B78F978BA6A0492F6 -:1059F000012203920293002301937B6900937B6849 -:105A00000022F868FEF781FAF861FB691846203732 -:105A1000BD4680BD80B588B000AFF860B9607A60DF -:105A20003B603A68B968F868FFF72EFD0346FB77DC -:105A30003B68002B00D101BE3B681B8D002B36D08C -:105A4000FB7F002B00F087803B681B8D1A467B682C -:105A5000934202D93B681B8D01E07B689BB23B827D -:105A6000FB681B6803F00103002B04D03B8A184637 -:105A7000FDF75AFD03E03B8A1846FDF769FD3A68D9 -:105A8000B968F868FFF700FD0346FB773B8A7A6840 -:105A90009A4203D93B8A7A68D31A00E000237B60DC -:105AA000FB7F002B57D07B68002BD9D153E0FB7FC5 -:105AB000002B50D000237B610023BB6100237B823D -:105AC0007B689B08BB61BB69284A934201D9274B7D -:105AD000BB61BB69002B01D10123BB61BB69244AB7 -:105AE000A2FB03239B097B61BA69214BA3FB021331 -:105AF0009B094FF47A7101FB03F3D31A7B82FB6895 -:105B00001B6803F00103002B07D07869FDF7E2FC66 -:105B10007B8A1846FDF708FD06E0786903F02EFA47 -:105B20007B8A1846FDF714FD3A68B968F868FFF7F4 -:105B3000ABFC0346FB777A68BB699A4203D97A6863 -:105B4000BB69D31A00E000237B60FB7F002B02D0EF -:105B50007B68002BC2D1FB7F002B01D0054B00E0FE -:105B6000002318462037BD4680BD00BF40420F00CD -:105B7000D34D62100200B20080B58AB002AFF86067 -:105B8000B9607A603B600023FB74BB68002B00D1D6 -:105B900001BEBB689B69DB6A1B68FB61BB689B69D4 -:105BA000DB6BFB76FB69D9B207F113023B6800930C -:105BB0000B46B968F868FFF7C7FE78617B6800227A -:105BC0001A707B69002B0BD1FA7CFB7E1340DBB291 -:105BD000FA7E9A420CBF01230023DAB27B681A7066 -:105BE0007B6918462037BD4680BD80B586B000AFC2 -:105BF000F860B9607A603B60BB68002B00D101BEE1 -:105C00003A68B968F868FFF7B7FB78617B69002BE1 -:105C10000FD13A68B968F868FFF7D6FC78617B69FC -:105C2000002B06D13B687A68B968F868FFF7F2FE86 -:105C300078617B6918461837BD4680BD80B485B051 -:105C400000AF78600B46FB700023FB607B6801337C -:105C50001B781B027A6812781343FB60FB78002BD9 -:105C60000BD07B6803331B781A067B6802331B78E2 -:105C70001B041343FA681343FB60FB681846143790 -:105C8000BD465DF8047B704780B485B000AF786096 -:105C90000B46FB70FB78013B072B27D801A252F87B -:105CA00023F000BF894C0014934C0014B14C001435 -:105CB0009D4C0014B14C0014B14C0014B14C0014B4 -:105CC000A74C00147B6803F50063FB6011E07B6860 -:105CD00003F50863FB600CE07B6803F51063FB6071 -:105CE00007E07B6803F51863FB6002E00023FB60BC -:105CF00000BFFB6818461437BD465DF8047B70474B -:105D000080B483B000AF78600B46FB707B68DB6AC1 -:105D1000002B00D101BE7B681B6B002B00D101BEA4 -:105D20007B681B6B00221A71FB78062B77D801A2C7 -:105D300052F823F0154D0014434D00146B4D001420 -:105D4000934D0014434D0014434D0014BB4D0014FB -:105D50007B684FF0FF32DA637B681B6B4FF0FF32DA -:105D60001A607B68DB6A4FF0FF321A607B681B6B3E -:105D700000229A777B68DB6A00229A7750E07B6882 -:105D80000222DA637B681B6B01221A607B68DB6A84 -:105D900035221A607B681B6B01229A777B68DB6A6D -:105DA00001229A773CE07B684022DA637B681B6BB8 -:105DB00001221A607B68DB6A05221A607B681B6B14 -:105DC00001229A777B68DB6A01229A7728E07B6858 -:105DD0008022DA637B681B6B3E221A607B68DB6A79 -:105DE0003F221A607B681B6B01229A777B68DB6A13 -:105DF00001229A7714E07B680222DA637B681B6BCE -:105E000031221A607B68DB6A35221A607B681B6B63 -:105E100001229A777B68DB6A01229A7700E000BF53 -:105E200000BF0C37BD465DF8047B704780B487B077 -:105E300000AF786039603B689B697B617B699B68D8 -:105E40003B617B691B6AFB603B68DB6823F0FF02F8 -:105E50007B689A603B681B695B4223F0FF027B68AA -:105E6000DA607B691B68013B03F007033A685269FB -:105E7000002A02D04FF4807200E000221A437B68AF -:105E80001A623B685B6803F01003002B00F0ED80A2 -:105E90003B69002B6DD03B691B68B3F1FF3F19D004 -:105EA0003B691B68DAB23B691B6A1B029BB21A434F -:105EB0003B6993F824309B0403F480231A433B6925 -:105EC0001B791B0403F440331A433B699B7F9B07F8 -:105ED000134300E000237A6813643B695B791B0479 -:105EE00003F440323B695B7F9B0403F480231A4335 -:105EF0007B685A643B699B68B3F1FF3F18D03B69EC -:105F00009B68DAB23B699B691B029BB21A433B69EF -:105F10001B7B1B0403F440331A433B691B7F9B0428 -:105F200003F480231A433B69DB7D9B07134300E0A6 -:105F300000237A6893643B691B69002B09D03B6995 -:105F40001B69013B03F01F023B699B7D9B071343C9 -:105F500000E000237A68D3643B691B7D1B0403F4D3 -:105F600040323B695B7D9B0403F480231A437B68CA -:105F70001A65FB68002B00F00881FB681B68B3F111 -:105F8000FF3F19D0FB681B68DAB2FB681B6A1B0273 -:105F90009BB21A43FB6893F824309B0403F48023DC -:105FA0001A43FB681B791B0403F440331A43FB6854 -:105FB0009B7F9B07134300E000237A681366FB680E -:105FC0005B791B0403F44032FB685B7F9B0403F4A2 -:105FD00080231A437B685A66FB689B68B3F1FF3FD6 -:105FE00018D0FB689B68DAB2FB689B691B029BB206 -:105FF0001A43FB681B7B1B0403F440331A43FB6802 -:106000001B7F9B0403F480231A43FB68DB7D9B0703 -:10601000134300E000237A689366FB681B69002B3A -:1060200012D0FB681B69013B03F01F02FB689B7DDC -:106030009B071343FA68927D002A02D04FF4003286 -:1060400000E00022134300E000237A68D366FB6877 -:106050001B7D1B0403F44032FB685B7D9B0403F44F -:1060600080231A437B681A678FE03B69002B44D07A -:106070003B691B68B3F1FF3F0BD03B691B68DAB289 -:106080003B691B791B0403F44033134343F0804303 -:1060900000E000237A6813643B695B791B0403F416 -:1060A00040327B685A643B699B68B3F1FF3F0BD079 -:1060B0003B699B68DAB23B691B7B1B0403F44033EA -:1060C000134343F0804300E000237A6893643B6904 -:1060D0001B69002B07D03B691B69013B03F01F03C1 -:1060E00043F0804300E000237A68D3643B691B7D62 -:1060F0001B0403F440327B681A65FB68002B44D014 -:10610000FB681B68B3F1FF3F0BD0FB681B68DAB27A -:10611000FB681B791B0403F44033134343F08043B3 -:1061200000E000237A681366FB685B791B0403F4C4 -:1061300040327B685A66FB689B68B3F1FF3F0BD027 -:10614000FB689B68DAB2FB681B7B1B0403F44033DB -:10615000134343F0804300E000237A689366FB68B2 -:106160001B69002B07D0FB681B69013B03F01F0371 -:1061700043F0804300E000237A68D366FB681B7D10 -:106180001B0403F440327B681A6700BF1C37BD460E -:106190005DF8047B7047000080B58CB006AFF860F6 -:1061A0007A601A460B46FB721346BB72184B7B6132 -:1061B000B97AFB6A049300230393FB7A02930023CA -:1061C0000193BB6A00937B6A0022F868FDF79DFE8D -:1061D00078617B69002B0AD197F82030002B06D01C -:1061E00097F820301946F868FDF7CDFE78617B6995 -:1061F000002B08D1FB6A0093002301227968F8681C -:10620000FDF7AAFE78617B6918461837BD4680BD48 -:106210008000B20080B485B000AFF860B9607A60E9 -:106220003B603B68013B3B603A687B681344BA685B -:106230001344FA68D2B21A70FB681B0AFB603B6811 -:10624000002BEED100BF00BF1437BD465DF8047BC4 -:10625000704780B485B000AF786039600023FB6080 -:106260000023BB600023BB600DE0FB681B02FB60EA -:106270007A68BB6813441B781A46FB681343FB60BB -:10628000BB680133BB60BA683B689A42EDD3FB68D8 -:1062900018461437BD465DF8047B7047F0B591B0E1 -:1062A00008AFF860B9607A60FB70404BFB61BB6877 -:1062B0001B79032B06D1BB6893F82430012B01D145 -:1062C000012300E00023FB75FB7D03F00103FB7558 -:1062D00000233B740023BB610CE0BB697A681A445D -:1062E000BB690133127820333B4403F8102CBB699F -:1062F0000133BB61BB69022BEFDDBB681B689AB23F -:10630000BB681B6A9BB21B029BB213439EB2BB6865 -:1063100093F804E0BB6893F82420FB7D002B02D0A7 -:1063200007F1100300E07B68F97D002901D004210A -:1063300000E00321B8684079BC68647F97F817C013 -:106340003D6C079500250695FD780595049403900E -:10635000029101930092734662463146F868FDF758 -:1063600063FEF861FB69002B1AD1BB685979BB68E1 -:106370005A7FBB681B69F868FEF74AF8F861FB6949 -:10638000002B0DD1BB68197DBB685B7D3A6C019217 -:1063900000930B46BA6BF96BF868FDF7BDFFF86127 -:1063A000FB6918462437BD46F0BD00BF0500B200AA -:1063B00080B487B000AF7860396000237B61002330 -:1063C0003B610823FB602CE07B68DBB23968FA682C -:1063D0000A441278934221D17B681B0ADBB2FA6827 -:1063E000073239680A441278934217D1FB680133A7 -:1063F0003A6813441B781A463B6993420ED8FB68EF -:1064000002333A6813441B78012B07D1FB68013330 -:106410003A6813441B783B61FB687B61FB68083377 -:10642000FB603B6806331B780133DB00FA689A4255 -:10643000CAD97B6918461C37BD465DF8047B704796 -:1064400080B586B000AFF860B9607A603B60B9682B -:10645000F868FFF7ADFF78617B69002B20D07B697E -:106460000433BA681A447B68023312781A707B6965 -:106470000533BA681A447B68013312781A707B6955 -:106480000633BA6813441A787B681A707B69033341 -:10649000BA6813441B789B00DAB23B681A7002E0BA -:1064A0003B6800221A7000BF1837BD4680BD80B41B -:1064B00085B000AF786039600023FB607B680233F1 -:1064C0001B785B0803F00303BB60BB68022B16D08C -:1064D000BB68022B16D8BB68002B03D0BB68012B0E -:1064E00003D00FE00323FB600DE03B68B3F1807F36 -:1064F00002D90423FB6006E00323FB6003E00423CE -:10650000FB6000E000BFFB6818461437BD465DF82D -:10651000047B704780B584B000AF78607B6804333B -:1065200001211846FFF78AFBB860BB68002B04DB2B -:10653000BB680133DB08FB6004E0BB68033B43F04E -:106540000043FB60FB6818461037BD4680BD80B431 -:1065500083B000AF786039607B6841331B781A469E -:106560003B681A603B6801229A773B6800221A71E7 -:106570003B6803225A717B6840331B785B09DBB2AE -:10658000002B04D13B684FF0FF329A6008E03B6873 -:10659000FF229A603B6803221A733B680122DA7576 -:1065A0007B6840331B7803F01F023B681A613B682D -:1065B0001B69002B02D03B6801229A753B680322BD -:1065C0001A7500BF0C37BD465DF8047B704780B478 -:1065D00083B000AF786039607B6843331B781A461C -:1065E0003B681A603B6801229A773B6800221A7167 -:1065F0003B6803225A717B6842331B785B09DBB22C -:10660000002B04D13B684FF0FF329A6008E03B68F2 -:10661000FF229A603B6803221A733B680122DA75F5 -:106620007B6842331B7803F01F023B681A613B68AA -:106630001B69002B02D03B6801229A753B6803223C -:106640001A7500BF0C37BD465DF8047B704780B4F7 -:1066500083B000AF786039607B6859331B781A4685 -:106660003B681A603B68002283F824203B680122C3 -:106670009A773B6800221A713B6802225A713B6884 -:1066800001225A777B6858331B785B09DBB2002BF9 -:1066900004D13B684FF0FF329A600BE03B68FF2269 -:1066A0009A603B6802221A733B6801221A773B68A2 -:1066B0000122DA757B6858331B7803F01F023B68B0 -:1066C0001A613B6801229A753B6802221A753B6881 -:1066D00001225A7500BF0C37BD465DF8047B704738 -:1066E00080B483B000AF786039607B6809331B7871 -:1066F0001A463B681A603B6801229A773B68002281 -:106700001A713B6802225A717B6808331B785B0957 -:10671000DBB2002B04D13B684FF0FF329A6008E0F7 -:106720003B68FF229A603B6802221A733B68012291 -:10673000DA757B6808331B7803F01F023B681A6127 -:106740003B681B69002B02D03B6801229A753B68AD -:1067500002221A7500BF0C37BD465DF8047B7047F6 -:1067600080B483B000AF786039607B680B331B78EE -:106770001A463B681A603B6800221A713B68002287 -:106780005A717B680A331B785B09DBB2002B04D19A -:106790003B684FF0FF329A6008E03B68FF229A6046 -:1067A0003B6800221A733B680122DA757B680A3362 -:1067B0001B7803F01F023B681A613B681B69002BC2 -:1067C00002D03B6801229A753B6802221A7500BF0D -:1067D0000C37BD465DF8047B704780B483B000AFD2 -:1067E000786039607B680F331B781A463B681A6003 -:1067F0003B6800221A713B6801225A717B680E3394 -:106800001B785B09DBB2002B04D13B684FF0FF32F1 -:106810009A6008E03B68FF229A603B6801221A7385 -:106820003B680122DA757B680E331B7803F01F0288 -:106830003B681A613B681B69002B02D03B68012250 -:106840009A753B6801221A7500BF0C37BD465DF88A -:10685000047B704780B483B000AF786039607B6898 -:106860000D331B781A463B681A603B6800221A7188 -:106870003B6800225A717B680C331B785B09DBB2E2 -:10688000002B04D13B684FF0FF329A6008E03B6870 -:10689000FF229A603B6800221A733B680122DA7576 -:1068A0007B680C331B7803F01F023B681A613B685E -:1068B0001B69002B02D03B6801229A753B680122BC -:1068C0001A7500BF0C37BD465DF8047B704780B475 -:1068D00083B000AF786039603B6803221A603B6880 -:1068E00000221A713B6801229A773B6800225A7194 -:1068F0003B684FF0FF329A603B6800221A613B68A8 -:1069000000221A7500BF0C37BD465DF8047B704746 -:1069100080B588B000AFF8607B600B46FB72134611 -:10692000BB72FF23FB770223BB61FB7A012B07D0ED -:10693000FB7A032B04D0BB7A012B01D9012300E0A1 -:106940000023FB75FB7D03F00103FB75FB7D002B32 -:1069500038D0FA68BB6913441B7803F02003002B7E -:106960001ED0FA68BB6913441B7803F00803002BA0 -:106970000FD0FB6A03F04003002B0AD197F82830B0 -:10698000072B06D97968F868FFF761FE0623FB77C5 -:1069900042E07968F868FFF7A3FE0523FB773BE048 -:1069A000FA68BB6913441B7803F04003002B06D040 -:1069B0007968F868FFF7D4FE0423FB772CE0FF2307 -:1069C000FB7729E0FA68BB6913441B7803F01003D6 -:1069D000002B09D0BB7A002B06D07968F868FFF746 -:1069E000FCFE0323FB7717E0FA68BB6913441B78AE -:1069F00003F00103002B09D0BB7A002B06D0796885 -:106A0000F868FFF727FF0223FB7705E07968F8684D -:106A1000FFF75DFF0123FB77FB7F18462037BD465C -:106A200080BD000080B592B004AFF860B9603B60F3 -:106A30001346FB71624B3B63BB685B6DFB62BB68DB -:106A40009B6DBB623B68002B00F0B680FB6A002B9D -:106A500000F0B280BB6A002B00F0AE8000237B63A5 -:106A60001AE007F11C027B6B134400221A7007F135 -:106A700018027B6B134400221A7007F114027B6B1F -:106A8000134400221A7007F110027B6B134400229A -:106A90001A707B6B01337B637B6B032BE1D9032182 -:106AA0003868FFF7D6FB034603F1200007F1180111 -:106AB00003230022FFF7AEFB03213868FFF7C9FB71 -:106AC000034603F1080007F1100103230022FFF73A -:106AD000A1FBBB68596BF87907F118023B6C029374 -:106AE00007F11C030193042300930346F868FFF7A2 -:106AF000D5FB38633B6B002B30D1FB7F5BB2002BA7 -:106B00002CDAFB7F03F007037B62FB7F5B09DBB2C0 -:106B100003F0030387F823307B7F1A46FB6A1A6071 -:106B20003B7F1A46BB6A1A60FB7F03F00803002B09 -:106B300004D1BB7F1A46BB68DA6503E0BB684FF03F -:106B4000FF32DA6597F823300233FF2202FA03F3AB -:106B5000DA437B6A9A40BB681A6607E0FB6A4FF02B -:106B6000FF321A60BB6A4FF0FF321A60BB68596B84 -:106B7000F87907F110023B6C029307F114030193BB -:106B8000042300930346F868FFF788FB38633B6BE8 -:106B9000002B11D1FB7D5BB2002B0DDA3B7D9B09F5 -:106BA000DAB27B7DDB00DBB203F00803DBB2134318 -:106BB000DAB2BB689B6A1A6100BF3837BD4680BD38 -:106BC0008000B20080B487B000AFF8600B467A60F6 -:106BD000FB72FB681B687B61FB7A013B042B3AD894 -:106BE00001A252F823F000BF095C0014F75B001407 -:106BF000E55B0014D35B0014C15B00147B6903F0F8 -:106C00002003002B29D07B68EC221A6025E07B69E9 -:106C100003F01003002B22D07B686C221A601EE068 -:106C20007B6903F00803002B1BD07B68BC221A6031 -:106C300017E07B6903F00403002B14D07B683C222F -:106C40001A6010E07B6903F00203002B0DD07B6813 -:106C50000C221A6009E000BF08E000BF06E000BF98 -:106C600004E000BF02E000BF00E000BF00BF1C372F -:106C7000BD465DF8047B704780B485B000AF786096 -:106C80007B6828331B781B09DBB21A46012393402B -:106C9000FB60FB6818461437BD465DF8047B7047FF -:106CA00080B48DB000AFF860B9607A60BB685B6A91 -:106CB0007B62FB681B3B5B083B627B6A03F00F0354 -:106CC000FB610023BB6100237B610023FB62002387 -:106CD000BB623FE0BA6A1346DB009B1A7A6A22FA6B -:106CE00003F31B093B613B695B0903F00303BB61D1 -:106CF0003B6903F01F037B61BB69002B02D10123B9 -:106D0000FB6211E0BB69012B02D11023FB620BE097 -:106D1000BB69022B02D18023FB6205E0BB69032B18 -:106D200002D14FF47A73FB62FB6901337A69013255 -:106D3000F96A01FB02F202FB03F1BA6A13465B0037 -:106D400013449B001A467B6813444A009A60BB6A4E -:106D50000133BB62BB6A032BBCD93A6A13465B00A2 -:106D600013449B000C3B7A6813449B6818463437E5 -:106D7000BD465DF8047B704780B48BB000AF78608F -:106D80007B685B6A3B627B689B6AFB61FB695B0FAC -:106D900003F00303BB61FB691B0E03F01F037B6160 -:106DA00000237B623B6A03F00F033B61BB69002B4E -:106DB00002D110237B6213E0BB69012B03D14FF496 -:106DC00080737B620CE0BB69022B03D14FF47A63C2 -:106DD0007B6205E0BB69032B02D14FF47A437B62EF -:106DE0003B6901337A690132796A01FB02F202FBE5 -:106DF00003F35B00FB60FB6818462C37BD465DF86B -:106E0000047B704780B489B000AF78607B689B6A70 -:106E1000BB61BB695B0B03F001037B61BB691B0AB0 -:106E200003F01F033B61BB6903F00F03FB607B6949 -:106E3000002B02D10823FB6101E04023FB61FB68CA -:106E400001333A690132F96901FB02F202FB03F3F3 -:106E50005B00BB60BB6818462437BD465DF8047B09 -:106E6000704780B483B000AF78607B6806221A60F8 -:106E70007B6800221A717B6801229A7700BF0C3769 -:106E8000BD465DF8047B704780B483B000AF786086 -:106E90007B6804221A607B6800221A7100BF0C37DD -:106EA000BD465DF8047B704780B483B000AF786066 -:106EB0007B6802221A607B6801229A777B68002235 -:106EC0001A717B6800225A717B684FF0FF329A601A -:106ED0007B6800221A737B6800221A617B6800229B -:106EE0001A7500BF0C37BD465DF8047B704780B44F -:106EF00083B000AF78607B6812221A607B68012241 -:106F00009A777B6800221A717B6800225A717B682D -:106F10004FF0FF329A607B6800221A737B68002270 -:106F20001A617B6800221A7500BF0C37BD465DF8F8 -:106F3000047B704780B483B000AF78607B683422F4 -:106F40001A607B6801229A777B6800221A717B683D -:106F500000225A717B684FF0FF329A607B680022F2 -:106F60001A737B6800221A617B6802221A7500BFBF -:106F70000C37BD465DF8047B704780B483B000AF2A -:106F800078607B683E221A607B6801229A777B6872 -:106F900000221A717B6802225A717B684FF0FF321F -:106FA0009A607B6802221A737B6800221A617B68F0 -:106FB00002221A7500BF0C37BD465DF8047B70478E -:106FC00080B586B000AFF8600B467A60FB72FB6854 -:106FD0001B687B61FB7A013B082B57D801A252F852 -:106FE00023F000BF376000143760001437600014CE -:106FF0000B600014CD5F0014CD5F001451600014CD -:1070000051600014CD5F00147B6903F48073002B82 -:1070100003D07868FFF7B1FF39E07B6903F08003A4 -:10702000002B03D07868FFF785FF30E07B6903F021 -:107030004003002B03D07868FFF759FF27E07868FA -:10704000FFF732FF23E07B6903F08003002B03D0BE -:107050007868FFF76FFF1AE07B6903F04003002BAD -:1070600003D07868FFF743FF11E07868FFF71CFF53 -:107070000DE07B6903F04003002B03D07868FFF735 -:1070800036FF04E07868FFF70FFF00E000BF00BFA5 -:107090001837BD4680BD00BF80B483B000AF7860B4 -:1070A0007B6805221A607B6800221A7100BF0C37CA -:1070B000BD465DF8047B704780B483B000AF786054 -:1070C0007B6860221A607B6800221A7100BF0C374F -:1070D000BD465DF8047B704780B489B000AFF860AE -:1070E000B9607A60FB681B68042B4FD10023FB61F9 -:1070F000FB685B694FF0FF321A60BB6801331B7895 -:107100005B0803F00F033B610023BB610CE001222D -:10711000BB699A400121BB6999403B690B409A4287 -:1071200006D0BB690133BB61BB69042BEFD900E01A -:1071300000BFBB69032B49D8BB690433FB61002343 -:107140007B6110E07B690433BA68D1187A69134611 -:107150005B0013449B001A467B6813440A781A703C -:107160007B6901337B617B69032BEBD9BA68FB69CF -:1071700013441A78FB685B691A60FB685B6901223B -:107180009A77BB695B001D33FB611FE01D23FB6128 -:1071900008E0FB69222B02D90023FB6108E0FB69B0 -:1071A0000233FB61BA68FB6913441B78FF2BF0D0F4 -:1071B000FB69002B0AD0BA68FB6913441A78FB6894 -:1071C0005B691A60FB685B6901229A77FB69002B97 -:1071D00008D0FB685B6900221A71FB685B690022BA -:1071E0005A7103E0FB685B69FF221A71FB6918465C -:1071F0002437BD465DF8047B7047000080B58CB035 -:1072000006AFF8607A601A460B46FB721346BB72F3 -:10721000254B7B61FB7A03F07F03002B3ED00023DC -:107220007B61FB7A03F00203002B19D07B68DB68DB -:107230003B613B69002B13D03B691B68D9B23B69AA -:107240001A793B6A049301230393BB7A0293FF23C9 -:107250000193002300930023F868FCF756FE786141 -:10726000FB7A03F00103002B04D1FB7A03F0020345 -:10727000002B13D07B69002B10D13B6A04930123B0 -:107280000393BB7A0293FF2301930023009300230F -:107290000022B721F868FCF738FE78617B69184650 -:1072A0001837BD4680BD00BF8000B20080B485B0F5 -:1072B00000AF786039600023FB600023BB6024E0EE -:1072C000FB681C337A6813441B781946BA68134666 -:1072D0005B0013449B001A463B68134401228A401A -:1072E0005A60FB681D337A68D118BA6813465B0090 -:1072F00013449B001A463B6813440A781A70FB68D3 -:107300000233FB60BB680133BB60BB68032BD7D97A -:1073100000BF00BF1437BD465DF8047B7047000016 -:1073200080B596B004AFF860B9607A603B60002326 -:1073300087F8463000233B640023FB6300233B6255 -:10734000844BBB6300237B6308E007F110027B6B77 -:10735000134400221A707B6B01337B637B6B032B1E -:10736000F3D98EE03B6C0133BA6813441B78FB778A -:107370003B6C0333BA6813441B78BB770023FB755F -:107380003B6C0233BA6813441B789B09DBB23B6247 -:107390003B6A022B0FD03B6A022B0FD83B6A002BB3 -:1073A00003D03B6A012B03D008E00023FB6309E014 -:1073B0000323FB6306E00423FB6303E03B681B68D5 -:1073C000FB6300BF002387F8333014E03A6CFB6B9B -:1073D0001A4497F83330D31A0333BA681A4497F82B -:1073E0003330127848333B4403F8382C97F8333065 -:1073F000013387F8333097F83330FA6B9A42E5D887 -:107400003B6C0233BA6813441B7803F00F0387F810 -:10741000473097F847300F2B02D1082387F84730C1 -:10742000F87F07F1170297F850107B6D0393FB6B01 -:10743000029307F11003019397F847300093034636 -:10744000F868FEF7A9FEB863BB6B002B0FD197F865 -:1074500046305B00DBB2F97DBA7F0A40D2B2002A27 -:1074600014BF01220022D2B2134387F846303B6C8E -:1074700008333B643A6C7B689A4202D9364BBB6353 -:1074800008E0BA683B6C13441B7803F00203002B3E -:107490003FF468AFBB6B002B1AD110E03B6C02339A -:1074A000BA6813441B7802339B003A6C13443B6464 -:1074B0003A6C7B689A4202D9274BBB6308E03B6C6D -:1074C0000133BA6813441B7897F846209A42E5D1F5 -:1074D000BB6B002B40F0AF803B6C0233BA681344A7 -:1074E0001B7801337B777A7F3B68DA647B7F002BE4 -:1074F00002D1184BBB639EE00023FB620023BB62FA -:10750000002387F8253090E0FA6ABB6A1344FB62D7 -:107510003B6C04333B64002387F82730012387F852 -:107520002630BA683B6C13441B7803F00F033B779B -:1075300014E097F826305B0087F8263097F827305C -:10754000013387F8273097F82730042B06D9024BF0 -:10755000BB630AE00600B2000700B2003A7F97F86A -:1075600026301340DBB2002BE3D0BA683B6C1344E7 -:107570001B681B0A01331B02BB623B681A6D97F83C -:1075800025309B0013441B68BB61BB69FA6A1A6013 -:1075900097F8272013465B0013449B001A46BB6DE7 -:1075A00013441B781A46BB699A6097F82720134644 -:1075B0005B0013449B001A46BB6D13449A68BB6979 -:1075C0001A6197F8272013465B0013449B001A4664 -:1075D000BB6D13445B68BA6A9A4206D2BB69BA6A49 -:1075E000DA60BB6901225A601AE097F82720134637 -:1075F0005B0013449B001A46BB6D13445A68BB6979 -:10760000DA6097F8272013465B0013449B001A4664 -:10761000BB6D13445B68BA6AB2FBF3F2BB695A6094 -:1076200097F82530013387F8253097F825207B7FA0 -:107630009A42FFF469AFBB6B18464837BD4680BD20 -:1076400080B5AEB004AFF860B9607A60FB70FF231C -:1076500087F8A730404BC7F8A0307B685B6BC7F852 -:107660009C307B689B68C7F89830D7F8B03003F43B -:107670000013002B08D0D7F89810B868FEF767FF02 -:10768000082387F8A7300DE0D7F8B03003F4801353 -:10769000002B07D0D7F89810B868FEF798FF07239B -:1076A00087F8A73097F8A730FF2B4ED097F8B8305F -:1076B000F978D7F8BC20029207F1140201920093E6 -:1076C0000B46D7F8B420D7F89C10F868FEF7E6FD13 -:1076D000C7F8A000D7F8A030002B36D107F114036B -:1076E0003B331B68C7F89430D7F89430002B2CDA62 -:1076F000D7F894301B0E03F007027B681A677B688B -:10770000DB6ED7F89420D2B21A60D7F894301A0AF8 -:107710007B689B6ED2B21A60D7F8943003F0805326 -:10772000002B06D0D7F894301B0CDAB27B685A676E -:1077300003E07B684FF0FF325A677B68DB6E012203 -:107740009A777B689B6E01229A7797F8A730184644 -:10775000A837BD4680BD00BF8200B20090B5D1B051 -:1077600004AF07F59874A4F59274206007F598703B -:10777000A0F594700160114607F59872A2F5987211 -:10778000136007F59873A3F229130A461A70A44BE5 -:10779000C7F8203107F59873A3F594731B685B6BEA -:1077A000C7F81C3107F59873A3F594731B689B68A1 -:1077B000C7F81831FF2387F82F310023C7F8283185 -:1077C0000BE007F19402D7F82831134400221A7015 -:1077D000D7F828310133C7F82831D7F828317F2B63 -:1077E000EFD997F8483107F59872A2F2291211786B -:1077F00007F59872A2F59270D7F85421029207F11A -:107800009402019200930B46D7F84421D7F81C113B -:107810000068FEF743FDC7F82001D7F82031002BA0 -:1078200040F0D48197F89530002B00F0CF8197F885 -:1078300095301A46D7F818311A60D7F818311A68F7 -:10784000D7F818311A62D7F8183102229A77D7F888 -:10785000183103221A71D7F81831012283F8242035 -:10786000D7F8183101225A75D7F8183101221A7742 -:10787000D7F8183101225A77D7F8183103225A71F4 -:10788000D7F818314FF0FF329A6097F85031002B3B -:1078900015D007F59873A3F229131A7807F5987392 -:1078A000A3F5947107F59873A3F59270D7F8543146 -:1078B0000093D7F84C3109680068FFF7B3F8D7F8A0 -:1078C000183114221A61D7F8183101229A75D7F8A5 -:1078D000183103221A75092387F82F3107F5987399 -:1078E000A3F594731B68DA6807F59873A3F594738E -:1078F0001B68DB6812681A6207F59873A3F5947326 -:107900001B68DB6803221A7107F59873A3F594735B -:107910001B68DB68012283F8242007F59873A3F520 -:1079200094731B68DB6802229A7707F59873A3F5B6 -:1079300094731B689A6A07F59873A3F594731B6890 -:107940009B6A12681A6207F59873A3F594731B6813 -:107950009B6A03221A7107F59873A3F594731B6849 -:107960009B6A012283F8242007F59873A3F594738A -:107970001B689B6A02229A7707F59873A3F59473A4 -:107980001B689B6A03221A7507F59873A3F5947315 -:107990001B689B6A01225A7507F59873A3F59473C7 -:1079A0001B689B6A01229A7507F59873A3F5947377 -:1079B0001B689B6A03225A7107F59873A3F59473A9 -:1079C0001B689B6A01225A7707F59873A3F5947395 -:1079D0001B68DA6907F59873A3F594731B68DB6974 -:1079E00012681A6207F59873A3F594731B68DB6934 -:1079F00003221A7107F59873A3F594731B68DB696A -:107A0000012283F8242007F59873A3F594731B686B -:107A1000DB6902229A770023C7F8243110E000BF07 -:107A20008200B20007F59873A3F58E72D7F824315F -:107A3000134400221A70D7F824310133C7F82431D7 -:107A4000D7F824317F2BEDD997F8403107F598729C -:107A5000A2F22912147807F59872A2F5987207F528 -:107A60009871A1F59270D7F85411029107F11401A1 -:107A70000191009323461268D7F81C110068FEF7A5 -:107A80000DFCC7F82001D7F82031002B40F09D8075 -:107A900007F59873A3F594731B685B6EC7F81431F0 -:107AA00007F59873A3F58E73DA78D7F814311A7046 -:107AB00007F59873A3F58E73DA7AD7F814315A70F4 -:107AC000D7F814311B78002B3CD0D7F814311B7831 -:107AD000072B37D807F59873A3F58E739A78D7F8E4 -:107AE00014319A7007F59873A3F58E735A78D7F806 -:107AF0001431DA7007F59873A3F58E731A78D7F8F6 -:107B000014311A7107F59873A3F58E73DA79D7F8E3 -:107B100014315A7107F59873A3F58E739A79D7F8D3 -:107B200014319A7107F59873A3F58E735A79D7F8C3 -:107B30001431DA7107F59873A3F58E731A79D7F8B3 -:107B400014311A72D7F814315B78002B3ED0D7F875 -:107B500014315B78072B39D807F59873A3F58E732A -:107B60009A7AD7F814319A7207F59873A3F58E7341 -:107B70005A7AD7F81431DA7207F59873A3F58E7331 -:107B80001A7AD7F814311A7307F59873A3F58E7320 -:107B9000DA7BD7F814315A7307F59873A3F58E730F -:107BA0009A7BD7F814319A7307F59873A3F58E73FF -:107BB0005A7BD7F81431DA7307F59873A3F58E73EF -:107BC0001A7BD7F814311A7400E001BE97F82F31F0 -:107BD000184607F59A77BD4690BD00BFF0B5EDB0E9 -:107BE00006AF07F5CC74A4F5C674206007F5CC7019 -:107BF000A0F5C8700160194607F5CC73A3F2911384 -:107C00001A7007F5CC73A3F5C9730A461A7007F505 -:107C1000CC73A3F5C8731B68002B00D101BE07F518 -:107C2000CC73A3F5C8731B689B69002B00D101BE00 -:107C3000002387F8C730002387F8C630002387F871 -:107C4000C5305C4BC7F8943107F5CC73A3F205132C -:107C500000221A7007F5CC73A3F5837300221A7003 -:107C600007F5CC73A3F2071300221A7007F5CC7343 -:107C7000A3F5C8731B689B69C7F87C3107F5CC7303 -:107C8000A3F5C8731B681B7887F87B3107F5CC73A5 -:107C9000A3F5C8731B681B7A87F87A31D7F87C3153 -:107CA0005B6BC7F87431FBF70EFCC7F8700100235B -:107CB000C7F890310BE007F1E002D7F89031134498 -:107CC00000221A70D7F890310133C7F89031D7F8F5 -:107CD00090317F2BEFD9002387F88F3134E097F86C -:107CE0008F3103F5CC733B44002203F8BC2C97F88A -:107CF0008F3103F5CC733B44002203F8C02C97F876 -:107D00008F3103F5CC733B44002203F8C42C97F861 -:107D10008F3103F5CC733B44002203F8C82C97F84D -:107D20008F3103F5CC733B44002203F8CC2C97F839 -:107D30008F3103F5CC733B44002203F8D02C97F825 -:107D40008F31013387F88F3197F88F31022BC6D9E5 -:107D500097F87A2197F87B1107F5CC73A3F5C673D2 -:107D60001868FCF75EF897F87B2107F5CC73A3F54C -:107D7000C67311461868FBF7D7F9D7F87431002B92 -:107D80001AD097F87B1107F1DC0207F5CC73A3F545 -:107D9000C670D7F8B031029307F1E003019338239E -:107DA00000930B46D7F874110068FEF777FAC7F80E -:107DB000940104E00500B200AF4BC7F89431D7F846 -:107DC0009431002B40F09F8397F8E030532B40F024 -:107DD0009A8397F8E130462B40F0958397F8E2308C -:107DE000442B40F0908397F8E330502B40F08B8386 -:107DF00097F8E530012B40F0868397F8E43087F858 -:107E00006F3107F1930307F1DC0207F1E0014FF452 -:107E10007F40FEF715FB07F5CC73A3F205131B7823 -:107E2000002B00F06C8307F1920307F1D80207F1F1 -:107E3000E0014FF68470FEF703FB07F1910307F1B1 -:107E4000D40207F1E0014FF68170FEF7F9FA07F16D -:107E5000C60307F1D00207F1E0014FF68770FEF785 -:107E6000EFFA07F1C50307F1CC0207F1E0014FF685 -:107E70000570FEF7E5FA07F1C70307F1C80207F13D -:107E8000E0014FF60A70FEF7DBFA07F5CC73A3F2B8 -:107E900007131B78002B0AD1D7F87C310022DA6453 -:107EA000D7F87C3100221A650023C7F8943107F512 -:107EB000CC73A3F205131B78802B06D807F5CC737F -:107EC000A3F207131B78802B02D96C4BC7F89431AF -:107ED000D7F89431002B40F01A83D7F87C31DB6857 -:107EE000002B1ED1D7F87C311B69002B19D1D7F894 -:107EF0007C311B69002B14D1D7F87C315B69002BD6 -:107F00000FD1D7F87C31DB69002B0AD1D7F87C314F -:107F10001B6A002B05D1D7F87C319B6A002B00D15E -:107F200001BE07F5CC73A3F205131B781C4697F826 -:107F30007B1107F1DC0207F5CC73A3F5C670D7F807 -:107F4000B031029307F1E003019300940B46D7F898 -:107F500074110068FEF7A2F9C7F8940107F19402C2 -:107F600007F1E00311461846FFF7A0F907F1E00317 -:107F70001846FEF7CFFA0246D7F87C315A60D7F898 -:107F80007C315A6807F1E00311461846FEF78FFA74 -:107F90000246D7F87C311A60D7F87C31DB68184686 -:107FA000FEF75FFFD7F87C311B691846FEF76CFFC0 -:107FB000D7F87C3101229A63D7F87C319B6A184646 -:107FC000FFF76AF807F5CC73A3F291131B78012B26 -:107FD00019D997F86F31002B0BD097F81A311B097C -:107FE00003F00703DBB21946D7F87C01FDF788FEE2 -:107FF00009E007F5CC73A3F5C9731B781946D7F8C8 -:108000007C01FDF77DFED7F87C31DB691846FFF770 -:1080100053F8D7F87C319B68C7F86831FF2387F89D -:108020008E3197F86F31002B2AD007F1E003184604 -:10803000FEF722FE0246D7F87C315A62D7F87C312F -:108040005B6AB3F5807F04D9D7F87C314FF4807236 -:108050005A6207F1E0031846FEF78EFE0246D7F893 -:108060007C315A6407F1E0031846FEF7CBFE024666 -:10807000D7F87C319A641EE00500B2008100B2009E -:10808000D7F87C314FF480725A62D7F87C314FF4C4 -:108090007A425A64D7F87C31954A9A6407F5CC73D2 -:1080A000A3F5C9731B78002B05D107F5CC73A3F298 -:1080B000911300221A7007F5CC73A3F5C8731B68DF -:1080C0005B6807F5CC72A2F29112127897F87A11D8 -:1080D00007F1E000019397F86F310093D7F868310A -:1080E000FEF716FC034687F88E310123C7F8883166 -:1080F000D7F87C311B68042B40F0738197F88E31E0 -:10810000FF2B12D097F81F1197F87B2107F5CC733E -:10811000A3F5C670D7F8B03100931346D7F87C2189 -:108120000068FFF76BF8C7F894010023C7F88431A3 -:108130000DE007F5CC73A3F5C472D7F8843113446E -:1081400000221A70D7F884310133C7F88431D7F888 -:1081500084317F2BEDD9D7F89431002B1CD107F552 -:10816000CC73A3F583731B781C4697F87B1107F13A -:10817000D80207F5CC73A3F5C670D7F8B0310293D7 -:1081800007F11003019300940B46D7F874110068AF -:10819000FEF784F8C7F89401D7F87C319B6E002B6A -:1081A00000F0A980D7F87C31DB6E002B00F0A380B3 -:1081B000D7F89431002B7AD107F5CC73A3F2911341 -:1081C0001B78032B73D197F86F31062B6FD9FF23E0 -:1081D00087F8833197F8C730002B36D097F8C53031 -:1081E000002B32D0D7F87C315B6E002B2DD007F5F9 -:1081F000CC73A3F5C8731B685B6803F04003002BC6 -:1082000023D197F8C73097F8C52097F8C61007F123 -:10821000C80697F87B5107F5CC70A0F5C670D7F863 -:10822000B0410594049107F1D0010391029207F146 -:10823000CC020192009333462A46D7F87C1100689D -:10824000FFF78CFA034687F8833197F88331092BBF -:1082500024D007F1100301211846FDF7EFFCC7F801 -:10826000640197F8C63097F87B4107F1E00107F504 -:10827000CC72A2F5C670D7F8B0210392029307F131 -:10828000D0030193D7F8643100932346D7F87C21BB -:108290000068FFF7D5F9034687F8833197F88331F3 -:1082A000FF2B27D097F8833187F88E3122E0D7F85B -:1082B0007C31DB6E4FF0FF321A60D7F87C319B6E59 -:1082C0004FF0FF321A60D7F87C314FF0FF325A6717 -:1082D000D7F87C3100221A67D7F87C31DB6E002298 -:1082E0009A77D7F87C319B6E00229A7703E000BF23 -:1082F000A086010000BFD7F89431002B40F08280A7 -:1083000097F88E1107F11003D7F868211846FEF789 -:1083100059FCD7F87C311A6A97F88E1107F11003CF -:108320001846FEF74DFE07F1940207F110031946B7 -:10833000D7F87C01FEF7D0FEC7F8880197F88E3198 -:10834000092B5FD1D7F87C315A69D7F87C315B694A -:1083500012681A62D7F87C315B6903221A71D7F868 -:108360007C315B69012283F82420D7F87C315B697A -:1083700002229A77D7F87C315B6903225A71D7F8C9 -:108380007C315B6901225A77D7F87C311A6AD7F8B9 -:108390007C311B6A12681A62D7F87C311B6A03228F -:1083A0001A71D7F87C311B6A012283F82420D7F890 -:1083B0007C311B6A02229A77D7F87C311B6A032230 -:1083C0005A71D7F87C311B6A01225A77D7F87C3171 -:1083D0001B6A03221A75D7F87C311B6A01225A7571 -:1083E00010E0D7F87C311B6A1846FEF75DFD07F1F7 -:1083F000940207F1E0031946D7F87C01FEF76CFE02 -:10840000C7F88801D7F88831002B25D0D7F88831F4 -:10841000013B03F5CC733B4413F8B83C1A460123E7 -:1084200003FA02F2D7F87C319A6197F86F31002B8A -:108430000DD007F1940207F1E0031946D7F888013F -:10844000FEF72EFC0246D7F87C311A6404E0D7F818 -:108450007C314FF47A721A64D7F87C311B6D002B93 -:1084600055D007F5CC73A3F207131B781C4697F879 -:108470007B1107F1D40207F5CC73A3F5C670D7F8CA -:10848000B031029307F1E003019300940B46D7F853 -:1084900074110068FDF702FFC7F89401D7F8943112 -:1084A000002B34D107F5CC73A3F207131B781A46BF -:1084B00007F1E00107F5CC73A3F5C67007F194034B -:1084C0000293D7F8B031019397F87B310093D7F836 -:1084D0007C310068FEF724FFC7F89401D7F8943187 -:1084E000634A934213D1D7F87C310022DA64D7F87B -:1084F0007C3100221A650023C7F8943107E05D4BF8 -:10850000C7F8943103E05B4BC7F8943100E000BF3B -:10851000D7F89431002B40F09F8007F5CC73A3F57A -:10852000C8731B685B6803F00203002B00F09480A3 -:1085300007F5CC73A3F5C6731B681B6803F0010332 -:10854000012B00F0898007F5CC73A3F5C8731B6875 -:10855000DB6807F5CC72A2F5C87212681269B3FB2A -:10856000F2F101FB02F29B1A002B00D001BE07F5CD -:10857000CC73A3F5C8731B681B69B3F5803F0FD399 -:1085800007F5CC73A3F5C8731B681A6907F5CC739C -:10859000A3F5C8731B681B69013B1340002B00D077 -:1085A00001BE97F87B2107F5CC73A3F5C67311467E -:1085B0001868FDF769FBC7F86001D7F86031002B38 -:1085C00014D007F5CC73A3F5C8731968D7F8600108 -:1085D000FDF72CFC07F5CC73A3F5C8731B689B69EA -:1085E0009B685A7DD7F8B03183F82C2007F5CC73FF -:1085F000A3F5C8731B685B6803F0010207F5CC7331 -:10860000A3F5C8731B685B68DB081B0103F010034C -:108610001A4307F5CC73A3F5C8731B681B7A1B02BA -:1086200003F440731A4307F5CC73A3F5C8731B68B2 -:108630005B685B09DB039BB21A4307F5CC73A3F5B8 -:10864000C8731B681B7F1B0303F4E043134343F011 -:108650000042D7F860311A60D7F87001FAF737FF97 -:10866000D7F89431184607F5CE77BD46F0BD00BF68 -:108670000600B2000500B20080B590B002AFF8600D -:10868000B96011461A460B46FB711346BB71BB68B5 -:10869000002B00D101BE07F114032422002118464B -:1086A00000F070FCFB793B753B6C5B6BBB61BB798D -:1086B0003B77BB68FB6207F114013B6C009300231E -:1086C0000322F868FFF78AFA034618463837BD4692 -:1086D00080BD000080B485B000AF78600B46FB70B1 -:1086E000FB78013B072B27D801A252F823F000BFEB -:1086F000D5760014DF760014FD760014E9760014B8 -:10870000FD760014FD760014FD760014F376001457 -:108710007B6803F50063FB6011E07B6803F5086389 -:10872000FB600CE07B6803F51063FB6007E07B688F -:1087300003F51863FB6002E00023FB6000BFFB68E9 -:1087400018461437BD465DF8047B704780B586B087 -:1087500000AFF860B9607A60BB681B6A7B61BB6878 -:108760001B781946F868FFF7B5FF3861FB689B680E -:1087700003F44013B3F5001F05D13B699B6A43F036 -:1087800080723B699A62FB681B6803F00103012B4E -:108790003BD07B685B6B03F00203002B35D07B6919 -:1087A0001B7843F0804343F4E0233A6913643B6948 -:1087B0004FF4E0225A643B6900229A643B694FF40B -:1087C000E0221A657B695B7843F0804343F4E02341 -:1087D0003A6913663B694FF4E0225A663B6900220E -:1087E0009A663B694FF4E0221A67BB68DB6823F0A6 -:1087F000FF023B699A607B695B685B4223F0FF0282 -:108800003B69DA603B6907221A62FB689B6803F4E4 -:108810004013B3F5001F09D17B6999787B699B6888 -:10882000013B1A46386900F027F807E07B69997820 -:108830007B699B681A46386900F01EF87B699A6864 -:108840007B681A637B68012283F82C20BB685B6815 -:108850005B09DB039AB2BB681B7F1B0303F4E04395 -:10886000134343F0004343F001033A6913600023CC -:1088700018461837BD4680BD80B485B000AFF8609B -:108880000B467A60FB727B68013B03F01F0343F0E9 -:108890008042FB68DA647B6803F01F0343F0004307 -:1088A00043F48813FA689365FB7A002B03D1FB68C5 -:1088B0000022DA660AE07B68013B03F01F0343F005 -:1088C000804343F40033FA68D36600BF1437BD46D3 -:1088D0005DF8047B704780B483B000AF78607B683C -:1088E0001B6823F000427B681A6000BF0C37BD464E -:1088F0005DF8047B7047000080B485B000AF7860FD -:108900007B68013B072B1FD801A252F823F000BF60 -:10891000F5780014FB7800140D7900140179001427 -:108920000D7900140D7900140D79001407790014E5 -:108930000023FB730BE00123FB7308E00223FB73AE -:1089400005E00323FB7302E0FF23FB7300BFFB7B07 -:1089500018461437BD465DF8047B704780B483B079 -:1089600000AF786039607B685A693B681340002B20 -:1089700014BF01230023DBB218460C37BD465DF857 -:10898000047B704780B483B000AF786039607B6847 -:108990005A693B681A437B685A6100BF0C37BD4671 -:1089A0005DF8047B704780B485B000AF78607B6869 -:1089B0009B695B685A687B681B689B0013441B6853 -:1089C000BB60BB689B69002B1ED07B689B695B68A2 -:1089D0005A687B681B689B0013441B689B699B68F3 -:1089E0005B7D012B10D17B689B695B685A687B6853 -:1089F0001B689B0013441B689B691B6A5B7D012BF2 -:108A000002D10123FB7301E00023FB73FB7B1846BB -:108A10001437BD465DF8047B7047000080B584B014 -:108A200000AF78600B46FB700023BB600023FB6047 -:108A30007B685B681846FFF74EFF7B6858687B6869 -:108A40001B69DAB2FB781946FBF768FDB860BB68B2 -:108A5000002B01D0074BFB607B685A687B689B69E1 -:108A6000083319461046FBF79EFAFB681846103784 -:108A7000BD4680BD05008A0680B586B000AF78602F -:108A800000233B6100237B617B689B695B685A68BC -:108A90007B681B689B0013441B68FB60FB689B6939 -:108AA000002B50D07B689B695B685A687B681B68A9 -:108AB0009B0013441B689B69DB6E002B43D07B68D3 -:108AC0009B695B685A687B681B689B0013441B6842 -:108AD0009B699B681B7D032B0DD07B689B695B6842 -:108AE0005A687B681B689B0013441B689B691B6A60 -:108AF0001B7D032B27D17868FFF755FF0346FB72D8 -:108B00007B6858687B689B695B685A687B681B68F0 -:108B10009B00134419687B689B690833FA7AFCF759 -:108B20001BFE38613B69002B0BD1FB7A012B01D175 -:108B3000022300E0002319467868FFF76FFF786191 -:108B400001E0034B7B617B6918461837BD4680BD49 -:108B500004008A0680B586B000AF786000237B6190 -:108B60007B689B695B685A687B681B689B00134441 -:108B70001B683B617B689B695B685A687B681B6804 -:108B80009B0013441B685B6803F00403002B0DD0AB -:108B90007B685B689B6803F44013B3F5001F35D115 -:108BA00000217868FFF73AFF78612FE03B699B6905 -:108BB000002B2BD07B689B695B685A687B681B68BD -:108BC0009B0013441B689B699B681B7D032B0DD086 -:108BD0007B689B695B685A687B681B689B001344D1 -:108BE0001B689B691B6A1B7D032B0FD17868FFF7FD -:108BF000DAFE0346FB73FB7B012B01D1022300E06D -:108C0000002319467868FFF709FF78617B691846E9 -:108C10001837BD4680BD000080B58EB000AFF8604B -:108C20007A603B600B46FB7200237B63FB68002B82 -:108C300000D101BE7B68002B00D101BE3B68002B38 -:108C400000D101BE3B6C002B00D101BE7B6C002B20 -:108C500000D101BEBB6C002B00D101BE3B6CBA6CD5 -:108C60005A60FA7AFB681A61FB687A685A60FB6896 -:108C70003A689A60FB683A6C9A61FB687A6CDA61D0 -:108C8000FB681B691846FFF737FE034687F8233059 -:108C900000233B631BE0BB6C5A683B6B9B00134497 -:108CA0001B681B78FA7A9A4202D1FB683A6B1A6009 -:108CB000FB68DB68BA6C51683A6B92000A44126830 -:108CC00012781A43FB68DA603B6B01333B63BB6C81 -:108CD0001B683A6B9A42DED3BB6C5A68FB681B6810 -:108CE0009B0013441B68FB610023FB6215E0FB68DB -:108CF0005868BB6C5A68FB6A9B0013441B68197860 -:108D0000BB6C5A68FB6A9B0013441B681B7A1A46AB -:108D1000FBF787F8FB6A0133FB62BB6C1B68FA6ADE -:108D20009A42E4D3FB689B681B68184600F01EF962 -:108D30000346554AA2FB03239B0CBB61BB695B083E -:108D4000BB610023BB6214E0BB6C5A68BB6A9B002A -:108D500013441B685B6803F00403002B06D0BB6957 -:108D60004A4A934202D94A4B7B6307E0BB6A01330C -:108D7000BB62BB6C1B68BA6A9A42E5D37B6B002B63 -:108D80006ED1F868FFF7E6FE78637B6B002B67D146 -:108D900000237B6200237B63FB685B683A6CB96CE1 -:108DA0001846FBF775FD78627B6A002B07D197F8B0 -:108DB00023307A6C1946386CFBF7A2FD78627B6A27 -:108DC000002B48D1FB699B69002B44D0BB6C5A68CF -:108DD000FB681B689B0013441B689B699B681B7D99 -:108DE000022B0BD0BB6C5A68FB681B689B001344BA -:108DF0001B689B691B6A1B7D022B2CD10023FB7512 -:108E0000FB685868BB6C5A68FB681B689B0013447E -:108E10001968FB689B69083307F11702FCF7ACFE81 -:108E200078627B6A002B16D1FB7D83F00103DBB2F5 -:108E3000002B10D0FB685868BB6C5A68FB681B6835 -:108E40009B0013441968FB689B69083341F2883220 -:108E5000FCF7CBFE78627B6A002B01D07B6A7B63D8 -:108E60007B6B002B03D1F868FFF706FE78637B6B02 -:108E7000002B03D10121F868FFF784FD7B6B1846B6 -:108E80003837BD4680BD00BF83DE1B4380F0FA0249 -:108E900001008A0680B582B000AF78600B46FB7097 -:108EA0007B68002B00D101BE01217868FFF756FDD9 -:108EB000034683F00103DBB2002B00D001BEFB7838 -:108EC000002B06D07B685B6801211846FAF786FF05 -:108ED00005E07B685B6800211846FAF77FFF0023F6 -:108EE00018460837BD4680BD80B582B000AF7860B7 -:108EF0000B46FB707B68002B00D101BE0121786816 -:108F0000FFF72CFD034683F00103DBB2002B00D0FA -:108F100001BEFB78002B12D07B6858687B689B6988 -:108F20005B685A687B681B689B00134419687B6800 -:108F30009B6908331A46FCF71FFA034612E07B6868 -:108F400058687B689B695B685A687B681B689B00F4 -:108F5000134419687B689B6908331A46FCF750FA7A -:108F6000034600BF18460837BD4680BD5FF800F0D5 -:108F700071AB10185FF800F0515B10185FF800F04B -:108F8000E1AB10185FF800F0C1B7101807692800AE -:108F900010002000EDDC82F1695378840FC9AFA87E -:108FA0008027B88D4E112E2D3E89141C030BEEF632 -:048FB000467628FCDD +:102F10000000000080B586B000AFF860B9607A604C +:102F20003B60BB68072B00D901BE7B680F2B02D921 +:102F30007B68802B05D17B68012B02D07B68092B35 +:102F400000D101BE3B68012B00D901BE97F82030AB +:102F50001F2B00D901BE97F820301A46B968F868CF +:102F600005F070FFFB681A680121BB6801FA03F3E2 +:102F7000DB4313407B613B6803F00102BB689A406E +:102F80007B691A43FB681A60FB685A6CBB689B003C +:102F90000F2101FA03F3DB4313407B61FB681A6FD7 +:102FA000BB689B000F2101FA03F3DB4313403B6135 +:102FB0007B68802B13D1BB689B0008229A407B69F9 +:102FC0001A43FB685A647B681B0903F00F02BB6855 +:102FD0009B009A403B691A43FB681A670CE07B68C8 +:102FE00003F00F02BB689B009A407B691A43FB68A1 +:102FF0005A64FB683A691A6700BF1837BD4680BD3E +:1030000080B58CB002AF78600B46FB7000233B624A +:1030100000F0C5F938627B68894A934210D1FB7889 +:10302000012B0BD0FB78022B06D0FB78042B01D1AF +:10303000844815E0844813E0844811E084480FE098 +:10304000FB78012B0BD0FB78022B06D0FB78042BEE +:1030500001D1804804E0804802E07E4800E07F48DB +:103060007B68774A934210D1FB78012B0BD0FB7819 +:10307000022B06D0FB78042B01D1072115E000219B +:1030800013E0002111E000210FE0FB78012B0BD0B1 +:10309000FB78022B06D0FB78042B01D1012104E040 +:1030A000032102E0002100E000210023009301231E +:1030B0000E22FFF72FFF7B68614A934201D16848D7 +:1030C00000E068480023009301230E220021FFF74F +:1030D00021FF00237B62DCE07B68594A934201D1E7 +:1030E0005F4B00E05F4BFB610023BB61BB69072BBB +:1030F00000D901BE0122BB699A40FB69DA6000BFBA +:103100007B684F4A934210D1FB78012B0BD0FB78A0 +:10311000022B06D0FB78042B01D14A4A15E04A4A1B +:1031200013E04A4A11E04A4A0FE0FB78012B0BD02A +:10313000FB78022B06D0FB78042B01D1454A04E032 +:10314000454A02E0434A00E0444A7B683C498B42DE +:1031500010D1FB78012B0BD0FB78022B06D0FB782B +:10316000042B01D1072315E0002313E0002311E015 +:1031700000230FE0FB78012B0BD0FB78022B06D04D +:10318000FB78042B01D1012304E0032302E0002398 +:1031900000E000237A613B613B69072B00D901BE47 +:1031A00001223B699A407B69DA6000BF012000F090 +:1031B000FDF87B68224A934210D1FB78012B0BD09B +:1031C000FB78022B06D0FB78042B01D11D4A15E0B9 +:1031D0001D4A13E01D4A11E01D4A0FE0FB78012B48 +:1031E0000BD0FB78022B06D0FB78042B01D1194AB7 +:1031F00004E0194A02E0174A00E0184A7B681049C7 +:103200008B4210D1FB78012B0BD0FB78022B06D020 +:10321000FB78042B01D1072329E0002327E00023BA +:1032200025E0002323E0FB78012B1FD0FB78022B45 +:103230001AD0FB78042B01D1012318E0032316E0F8 +:1032400000004654000381528003815200018152E4 +:10325000800281520000815200068152800A815210 +:103260000000475400004B54002300E00023FA60A4 +:10327000BB60BB68072B00D901BE0122BB689A4026 +:10328000FB68DA6000BF012000F090F87B6A013330 +:103290007B627B6A032B7FF71FAF7B68314A9342C7 +:1032A00010D1FB78012B0BD0FB78022B06D0FB78DA +:1032B000042B01D12C4815E02C4813E02C4811E0D8 +:1032C0002C480FE0FB78012B0BD0FB78022B06D0AB +:1032D000FB78042B01D1284804E0284802E0264866 +:1032E00000E027487B681F4A934210D1FB78012BEE +:1032F0000BD0FB78022B06D0FB78042B01D10721E1 +:1033000015E0002113E0002111E000210FE0FB781F +:10331000012B0BD0FB78022B06D0FB78042B01D1BC +:10332000012104E0032102E0002100E00021082344 +:10333000009301230E22FFF7EDFD7B68094A9342BB +:1033400001D1104800E010481B23009301230E22F6 +:103350000021FFF7DFFD386A00F025F800BF2837AD +:10336000BD4680BD00004654000381528003815257 +:103370000001815280028152000081520006815278 +:10338000800A81520000475400004B5402308008EC +:1033900003D001300238FCD100BF00BF7047EFF30B +:1033A000108072B6704780F31088704780B584B083 +:1033B00000AF7860114B1B684FF0FF32B2FBF3F3A4 +:1033C000FB600BE00D4B1B68FA6802FB03F3184629 +:1033D000FFF7DCFF7A68FB68D31A7B607A68FB68CA +:1033E0009A42EFD8054B1B687A6802FB03F3184634 +:1033F000FFF7CCFF00BF1037BD4680BDC07503345A +:1034000080B582B000AF0346FB80FB88054A126896 +:1034100002FB03F31846FFF7B9FF00BF0837BD46AC +:1034200080BD00BFC475033480B582B000AF0346D1 +:10343000FB80FB881846FFF7E3FF00BF0837BD4657 +:1034400080BD000080B582B000AF78607B681B68EB +:103450004C4A13607B6804331B684A4A53607B689C +:1034600008331B68474A93607B680C331B68454AE6 +:10347000D3607B6810331B68424A13617B68143346 +:103480001B68404A53617B6818331B683D4A93614F +:103490007B681C331B683B4AD3613B4B9B6A394AB0 +:1034A0001362394BDB6A374A5362374B5B6A354AE2 +:1034B0009362354B5B6B334AD362334B9B6B314A20 +:1034C0001363F1EE103A03F09003002B54D07B68A5 +:1034D00020331B682B4A53637B6824331B68294ABB +:1034E00093637B6828331B68264AD3637B682C333D +:1034F0001B68244A13647B6830331B68214A536479 +:103500007B6834331B681F4A93647B6838331B68BD +:103510001C4AD3647B683C331B681A4A13657B687A +:1035200040331B68174A53657B6844331B68154A50 +:1035300093657B6848331B68124AD3657B684C33BC +:103540001B68104A13667B6850331B680D4A53662C +:103550007B6854331B680B4A93667B6858331B683F +:10356000084AD3667B685C331B68064A13677B682E +:1035700060331B68034A536700F008F800BF083740 +:10358000BD4680BDD881033400ED00E080B400AFBB +:1035900000BFFDE780B483B000AF786039607B681E +:1035A0003A68C3F8C82700BF0C37BD465DF8047BF6 +:1035B000704780B483B000AF78607B68D3F8C837B9 +:1035C00018460C37BD465DF8047B704780B483B065 +:1035D00000AF78607B689B6C03F00F0318460C37D4 +:1035E000BD465DF8047B704780B483B000AF78605F +:1035F0007B68D3F8C43003F00F0318460C37BD4680 +:103600005DF8047B704780B483B000AF78607B685E +:103610005B6803F00043B3F1004F0CBF01230023AC +:10362000DBB218460C37BD465DF8047B704780B5A9 +:1036300086B000AF786039603B685B693B613B688E +:10364000DB68FB607868FFF7CFFFB860BA683B695A +:10365000934228BF13467B61B2E07B69082B11D1EE +:103660007B68D3F8D8300122F968184600F0DAF800 +:103670007B68D3F8D800FB6804330122194600F0B8 +:10368000D1F88BE07B69012B06D17B68D3F8D03071 +:10369000DAB2FB681A7081E07B69022B08D17B6883 +:1036A000D3F8D4300022F968184600F0BBF875E072 +:1036B0007B69032B0FD17B68D3F8D4300022F968E3 +:1036C000184600F0AFF87B68D3F8D020FB680233CF +:1036D000D2B21A7062E07B69042B08D17B68D3F800 +:1036E000D8300122F968184600F09CF856E07B6952 +:1036F000052B0FD17B68D3F8D8300122F968184622 +:1037000000F090F87B68D3F8D020FB680433D2B285 +:103710001A7043E07B69062B11D17B68D3F8D8304F +:103720000122F968184600F07DF87B68D3F8D400D0 +:10373000FB6804330022194600F074F82EE07B6920 +:10374000072B18D17B68D3F8D8300122F9681846C6 +:1037500000F068F87B68D3F8D400FB6804330022DB +:10376000194600F05FF87B68D3F8D020FB68063379 +:10377000D2B21A7012E07B68D3F8D8300122F9680F +:10378000184600F04FF87B68D3F8D800FB68043384 +:103790000122194600F046F808237B61FA687B692C +:1037A0001344FB603A697B69D31A3B617868FFF781 +:1037B0001BFFB860BA683B69934228BF13467B6120 +:1037C0007B69002B7FF449AF3B68FA68DA603B689D +:1037D0003A695A613B69002B1DD17868FFF704FFF5 +:1037E0000346012B02D17B68D3F8D0307868FFF70D +:1037F000E0FE034623F0020319467868FFF7CAFE8D +:103800003B6803221A763B681B6A002B03D03B6897 +:103810001B6A032098473B683A695A6100BF183712 +:10382000BD4680BD80B485B000AFF860B960134676 +:10383000FB71FB68DAB2BB681A70FB681A0ABB68D6 +:103840000133D2B21A70FB79002B0BD0FB681A0C33 +:10385000BB680233D2B21A70FB681A0EBB6803331E +:10386000D2B21A7000BF1437BD465DF8047B7047B2 +:1038700080B584B000AF78600023FB607B681B6874 +:10388000002B0FD00120FFF7BBFD7B681B685A1E81 +:103890007B681A607B681B68002B01D1044B00E039 +:1038A0000023FB60FB6818461037BD4680BD00BF93 +:1038B0000200B20080B485B000AF78600B46FB70A8 +:1038C000FB78013B072B27D801A252F823F000BF59 +:1038D000DD290014E7290014052A0014F129001439 +:1038E000052A0014052A0014052A0014FB290014D7 +:1038F0007B6803F50063FB6011E07B6803F50863F8 +:10390000FB600CE07B6803F51063FB6007E07B68FD +:1039100003F51863FB6002E00023FB6000BFFB6857 +:1039200018461437BD465DF8047B704780B588B0F3 +:1039300000AFF860B9607A603B600023FB61FB6810 +:10394000002B05D0BB68002B02D03B68002B01D1B7 +:10395000774BE9E0BB681B68DBB2002B05D0BB6886 +:103960001B68DBB2012B00D001BEBB68DB68DBB299 +:10397000002B05D0BB68DB68DBB2012B00D001BE99 +:10398000BB685B68072B00D901BE3B6800221A6048 +:103990003B6800225A603B6800229A603B68002224 +:1039A000DA603B6800221A613B6800225A613B687A +:1039B00000221A763B680022DA613B6800221A6214 +:1039C0003B687A685A623B6800221A853B6800228D +:1039D00083F82A203B68002283F82B203B680022D2 +:1039E00083F82C203B6800221A633B6800225A634C +:1039F000FB681B687B617B69DB0F012B05D17B6951 +:103A000003F00103002B40F08E804FF44073BB6144 +:103A1000F868FFF7CEFD034623F003031946F86864 +:103A2000FFF7B8FDBB6923F00102BB681B6803F018 +:103A300001031343BB61BB6923F08072BB68DB6881 +:103A40001B0603F080731343BB61BB6923F4E022C0 +:103A5000BB685B681B0403F4E0231343BB613A6853 +:103A6000B968F86800F066F8F861FB69002B02D0CD +:103A700001BEFB6958E0BB689B7E1946F86800F000 +:103A8000FBFCF861FB69002B09D1FB6803F50062C0 +:103A9000BB68DB7E1946104600F06CF9F861FB69E3 +:103AA000002B09D1FB6803F50862BB681B7F194630 +:103AB000104600F05FF9F861FB69002B09D1FB6843 +:103AC00003F51062BB685B7F1946104600F052F99F +:103AD000F861FB69002B09D1FB6803F51862BB682C +:103AE0009B7F1946104600F045F9F861BB6923F445 +:103AF0007003BB61BB685B69B3F5967F08D3BB6994 +:103B000043F40013BB61BB6943F40003BB6107E0EE +:103B1000BB6943F48013BB61BB6943F48003BB61A1 +:103B2000FB68BA691A60FB6918462037BD4680BD3C +:103B30000400B20080B489B000AFF860B9607A6068 +:103B4000FB68002B05D0BB68002B02D07B68002BE4 +:103B500001D1544B9FE0BB685B7E002B1DD0BB683E +:103B60001B68002B0ED17B6893F82A30002B09D1FB +:103B7000BB689B7E012B03D9BB689B7E0C2B0BD9AA +:103B8000484B88E0BB689B7E012B03D9BB689B7EBA +:103B90000D2B02D9434B7EE000BF434BFB61BB685A +:103BA0001B7E002B44D0BB685B69962B08D8FB6951 +:103BB00043F00403FB61FB680022C3F8D82743E00D +:103BC00004237B610023BB6128E0384ABB6952F8BB +:103BD0002320BB685B699A421DD8BB685A69BB69E0 +:103BE0000133324951F823309A4214D8BB6903F0AB +:103BF0000303FA691343FB612D4ABB6952F8233072 +:103C00009B0403F44022FB69134343F4203343F045 +:103C10008003FB6106E0BB690133BB61BA697B6964 +:103C20009A42D2D3BA697B699A420DD11D4B32E0D8 +:103C3000FB6943F00803FB61FB6943F00403FB618C +:103C4000FB680022C3F8D827BB685B7E1B0103F02A +:103C50003003FA691343FB61BB689B7E1B0203F4CC +:103C60007063FA691343FB61BB68DB7F1B0503F4D8 +:103C70004013FA691343FB61FB6943F40003FB61E2 +:103C8000BB6893F82030DB07FA691343FB61FB68DC +:103C9000FA699A60002318462437BD465DF8047B14 +:103CA000704700BF0400B20000D08000C875033424 +:103CB000DC75033480B483B000AF78600B46FB70D2 +:103CC000FB78002B03D0FB78012B00D001BEFB78E2 +:103CD000002B06D17B681B6823F001027B681A6009 +:103CE00005E07B681B6843F001027B681A6000BF37 +:103CF0000C37BD465DF8047B704780B584B000AFDB +:103D000078600B46FB701346BB70FB78012B0CD020 +:103D1000FB78022B09D0FB78042B06D0FB78082B0C +:103D200003D0FB78032B00D001BEBB78002B09D059 +:103D3000BB78012B06D0BB78022B03D0BB78032BBA +:103D400000D001BEFB7819467868FFF7B3FDF86034 +:103D5000FB68002B0AD0FB681B6823F44072BB7819 +:103D60001B0203F440731A43FB681A6000BF10374C +:103D7000BD4680BD90B583B000AF78600B46FB7048 +:103D8000FC78786800F022F80346013B9C4201D998 +:103D90000D4B14E07B689B6A23F0F002FB781B015B +:103DA000DBB21A437B689A627B689B6A23F00F023E +:103DB000FB7803F00F031A437B689A6200231846CE +:103DC0000C37BD4690BD00BF0400B20080B483B084 +:103DD00000AF7860102318460C37BD465DF8047BB1 +:103DE000704780B58CB008AFF8607B600B46FB7203 +:103DF0001346BB72FB7A99B2BA7ABB6A07937B6AA5 +:103E0000069397F820300593002304933B7F039398 +:103E1000BB6902937B680193002300931346002241 +:103E2000F86800F06DF8034618461037BD4680BDAF +:103E300080B586B002AFF860B9607A60FB70FA783E +:103E4000BB6901930023009313467A68B968F86848 +:103E500000F0CEF9034618461037BD4680BD80B548 +:103E600082B000AF786039603B680022002178683A +:103E700000F03AFA034618460837BD4680BD80B5C3 +:103E800082B000AF786039603B6800221A603B68FE +:103E900000225A603B6800229A603B680022DA6088 +:103EA0003B6800221A613B6800225A613B6800228D +:103EB0001A767B681B6843F000427B681A607B6857 +:103EC0009B6803F00403002B16D17B689B6803F00A +:103ED0000803002B10D100BF7B685B6803F001036F +:103EE000002BF9D00A20FFF78BFA00BF7868FFF7A4 +:103EF0008AFB0346002BF9D100BF0837BD4680BDC1 +:103F000080B586B000AF7860084611461A46034671 +:103F10007B800B467B7013463B7000237B613B78B4 +:103F2000002B0CD03B78012B09D03B78022B06D01C +:103F30003B78032B03D03B78FF2B00D001BE97F8D2 +:103F40002C30002B10D097F82C30012B0CD097F888 +:103F50002C30022B08D097F82C30032B04D097F884 +:103F60002C30FF2B00D001BE97F83430012B10D03D +:103F700097F83430022B0CD097F83430042B08D04B +:103F800097F83430082B04D097F83430032B00D046 +:103F900001BE97F82030002B04D097F82030012B79 +:103FA00000D001BE97F83030002B04D097F83030A5 +:103FB000012B00D001BEBB6A002B03D07B6A002B13 +:103FC00000D101BEBB6A002B04D097F82C30FF2B28 +:103FD00000D101BE0023FB7497F834301B0503F4B5 +:103FE0007003FB60FB6B5B6ABB607B78002B58D077 +:103FF0003B78032B26D197F82030012B22D13B7838 +:104000001B0403F44032FB681A4397F820309B04EA +:1040100003F4802313437A88D2B21A437B881B0AA5 +:104020009BB2DBB21B029BB21A43BB6A002B04D1CA +:10403000BB6BDB0403F4002300E000231A437B681E +:104040001A6549E03B781B0403F44032FB681A43CD +:1040500097F820309B0403F4802313437A88120AD4 +:1040600092B2D2B21A437B681A653B781B0403F400 +:104070004032FB681A4397F820309B0403F48023F6 +:1040800013437A88D2B21A43BB6A002B04D1BB6BAC +:10409000DB0403F4002300E000231A437B681A6565 +:1040A0001AE03B781B0403F44032FB681A4397F88C +:1040B00020309B0403F4802313437A88D2B21A433E +:1040C000BB6A002B04D1BB6BDB0403F4002300E0CC +:1040D00000231A437B681A6597F82C30032B75D19F +:1040E00097F83030012B71D137E07868FFF76EFA1E +:1040F0000346072B2BD8FB7C01337A6A13441B78C9 +:104100001A46FB681A43FB7C796A0B441B781B0236 +:104110009BB21A4397F82C301B0403F440331A4324 +:1041200097F830309B0403F480231A43FB7C02335E +:10413000B96A994204D8BB6BDB0403F4002300E0A6 +:1041400000231A437B681A65FB7C0233FB7407F17A +:1041500008031846FFF78CFB7861FB7CBA6A9A4229 +:104160003DD97B69214A9342BFD138E07868FFF797 +:104170002DFA0346072B23D8FB7C7A6A13441B785D +:104180001A46FB681A4397F82C301B0403F440339B +:104190001A4397F830309B0403F480231A43FB7CC6 +:1041A0000133B96A994204D8BB6BDB0403F40023E2 +:1041B00000E000231A437B681A65FB7C0133FB7423 +:1041C00007F108031846FFF753FB7861FB7CBA6AD6 +:1041D0009A4205D97B69054A9342C7D100E000BFE6 +:1041E0007B6918461837BD4680BD00BF0200B2008B +:1041F00080B596B000AFF860B9607A60FB70374B5D +:104200007B65FB78002B0CD0FB78012B09D0FB7869 +:10421000022B06D0FB78032B03D0FB78FF2B00D0BA +:1042200001BE7B68002B54D02D4B7B65F868FFF7EF +:10423000CDF90346072B4CD8FB78032B0BD197F80D +:104240006030012B07D17B685A087B6803F00103BB +:1042500013443B6501E07B683B65FB781B0403F47A +:1042600040323B6D013B9BB21A4397F860309B0490 +:1042700003F48023134343F00272FB681A650120A4 +:10428000FFF7BEF800237B65BB68002B21D07B6E57 +:104290005B6AFB64BB683B627B68BB6200237B6339 +:1042A000042387F82C300BE007F114031946F86853 +:1042B000FFF7BDF907F14C031846FFF7D9FA786507 +:1042C00097F82C30DBB2042B03D17B6D054A934267 +:1042D000EAD17B6D18465837BD4680BD0400B20058 +:1042E0000100B2000200B20080B586B000AFF860F5 +:1042F0007B600B46FB721346BB721A4B7B617B687B +:10430000002B2AD0184B7B6100233B61FB689B6824 +:1043100003F44013B3F5001F01D101233B61F8689A +:10432000FFF754F90346072B17D87B68013B9AB275 +:10433000FB7A1B0403F440331A43BB7A9B0403F457 +:1043400080231A433B69DB0503F40003134343F066 +:104350004072FB681A6500237B617B691846183739 +:10436000BD4680BD0400B2000100B20080B485B03B +:1043700000AF03463960FB711D4BFB60FB79013BCD +:10438000072B2BD801A252F823F000BF9934001458 +:10439000A5340014C9340014B1340014C934001415 +:1043A000C9340014C9340014BD3400143B68002221 +:1043B0001A600023FB6014E03B6801221A600023AE +:1043C000FB600EE03B6802221A600023FB6008E0FD +:1043D0003B6803221A600023FB6002E0044BFB6091 +:1043E00000BFFB6818461437BD465DF8047B704774 +:1043F0000400B20080B584B000AF78600B46FB705B +:104400001346BB707B68002B00D101BE7B681B6824 +:10441000002B01DA174B29E07B689B6823F44012DC +:104420007B689A607B689A68FB781B0503F44013ED +:104430001A437B689A6007F10C02BB781146184654 +:10444000FFF794FF0346002B0FD1FB687A68DB016E +:10445000134403F628031A68FB6842F080727968F7 +:10446000DB010B4403F628031A60002318461037BB +:10447000BD4680BD0400B20080B483B000AF786058 +:104480000B46FB70FB780F2B01D90C4B0FE07B68C0 +:104490009B6823F470627B689A607B689A68FB78FB +:1044A0001B0203F470631A437B689A60002318466A +:1044B0000C37BD465DF8047B704700BF0400B200B6 +:1044C00080B485B000AF786039607B68002B02D083 +:1044D0003B68002B01D1684BC8E00023FB607B6880 +:1044E00003F500532433BB603B681B79002B22D0BB +:1044F0003B689B68C3F30B03002B1AD13B68DB6856 +:10450000C3F30B03002B14D1BB681A1DBA603A68C1 +:1045100092681A603B681B7C5B0003F03E023B68BC +:10452000DB681A43BB68191DB96042F001021A60CA +:1045300001E0514BFB603B681B7D002B28D07B6862 +:1045400003F500532C33BB603B689B69C3F30B033B +:10455000002B1BD13B68DB69C3F30B03002B15D188 +:10456000BB681A1DBA603A6892691A603B6893F892 +:1045700020305B0003F03E023B68DB691A43BB68F6 +:10458000191DB96042F001021A6001E03A4BFB606C +:104590003B6893F82430002B28D07B6803F5005348 +:1045A0003433BB603B689B6AC3F30B03002B1BD106 +:1045B0003B68DB6AC3F30B03002B15D1BB681A1DE4 +:1045C000BA603A68926A1A603B6893F830305B00D0 +:1045D00003F03E023B68DB6A1A43BB68191DB960F1 +:1045E00042F001021A6001E0234BFB603B6893F844 +:1045F0003430002B28D07B6803F500533C33BB607C +:104600003B689B6BC3F30B03002B1BD13B68DB6B3D +:10461000C3F30B03002B15D1BB681A1DBA603A68AF +:10462000926B1A603B6893F840305B0003F03E02E7 +:104630003B68DB6B1A43BB68191DB96042F001028D +:104640001A6001E00C4BFB60FB680B4A93420CD0F4 +:104650003B681B7843F4E0227B681A613B685B7817 +:104660001A467B6803F50053DA61FB681846143775 +:10467000BD465DF8047B70470400B20080B483B08F +:1046800000AF78607B6843F08053064A934201D1C3 +:10469000002300E0012318460C37BD465DF8047B7B +:1046A000704700BF0000465480B487B000AF786008 +:1046B0000B46FB701346BB70FF23FB75BB78032BC7 +:1046C00000D901BE7B6893F84030002B24D0002332 +:1046D0003B6117E0FB78234A52F823305B685A6845 +:1046E0003B699B0013441B681B781946BB78012269 +:1046F00002FA03F3994202D13B69FB752AE03B6958 +:1047000001333B61FB78174A52F823305B681B6822 +:104710003A699A42DED31DE00023FB6014E07B6817 +:104720005B685A68FB689B0013441B681B7819463A +:10473000BB78012202FA03F3994202D1FB68FB75B0 +:1047400008E0FB680133FB607B685B681B68FA6804 +:104750009A42E4D3FB7D18461C37BD465DF8047BC6 +:10476000704700BF207D033480B586B000AFF8608D +:10477000B9607A60164B7B617B68002283F8402029 +:104780007B6893F8403083F00103DBB2002B1AD032 +:104790007B6808331A46B968F86800F0D1FB786185 +:1047A0007B69002B0FD17B68FA681A607B68BA6856 +:1047B0005A60F868FFF762FF0346FB74FB7C05490B +:1047C0007A6841F823207B6918461837BD4680BDBA +:1047D0008400B200207D033480B58AB000AFF86059 +:1047E0000B467A60FB72FB681B681846FFF746FFB2 +:1047F000034687F8213000237B62FA7A97F821304C +:104800001946F868FFF750FF034687F82030FB6829 +:1048100093F84030002B00F09B8097F821309E4A9F +:1048200052F823305B685A6897F820309B00134495 +:104830001B689B697B6197F82130974A52F82330B7 +:104840005B685A6897F820309B0013441B681B6A0A +:104850003B617B69002B6FD07B6801221A607B690A +:104860005A687B685A607B699A697B689A607B6941 +:104870005A6A7B68DA607B69DA6C7B681A610023AC +:1048800087F8233051E07B691A6D97F823309B003D +:1048900013441B6897F823201968786813465B0057 +:1048A00013449B000344143319607B691A6D97F815 +:1048B00023309B0013441B6897F82320D96878683D +:1048C00013465B0013449B0003441C3319607B694F +:1048D0001A6D97F823309B0013441B68596897F8AA +:1048E0002320786813465B0013449B0003441C3369 +:1048F0001B6803FB01F197F82320786813465B00DF +:1049000013449B00034414331B6897F82320194475 +:10491000786813465B0013449B0003441833196006 +:1049200097F82330013387F8233097F823207B68EA +:104930001B699A42A7D3A9E07B6802221A603B69EF +:104940005B681A467B685A607B6800229A609DE02B +:10495000FB6893F8403083F00103DBB2002B00F0DA +:104960009380FB685B685A6897F820309B0013447B +:104970001B689B69FB61FB685B685A6897F820308D +:104980009B0013441B681B6ABB61FB69002B6FD043 +:104990007B6801221A60FB695A687B685A60FB6970 +:1049A0009A697B689A60FB695A6A7B68DA60FB697E +:1049B000DA6C7B681A61002387F8223051E0FB69CA +:1049C0001A6D97F822309B0013441B6897F8222039 +:1049D0001968786813465B0013449B000344143342 +:1049E0001960FB691A6D97F822309B0013441B680D +:1049F00097F82220D968786813465B0013449B001F +:104A000003441C331960FB691A6D97F822309B0030 +:104A100013441B68596897F82220786813465B0096 +:104A200013449B0003441C331B6803FB01F197F8FC +:104A30002220786813465B0013449B000344143320 +:104A40001B6897F822201944786813465B001344CA +:104A50009B0003441833196097F82230013387F81C +:104A6000223097F822207B681B699A42A7D30DE079 +:104A70007B6802221A60BB695B681A467B685A60D1 +:104A80007B6800229A6001E0044B7B627B6A1846D7 +:104A90002837BD4680BD00BF207D03348400B200AE +:104AA00080B485B000AF78600B46FB70FB78013BAB +:104AB000072B27D801A252F823F000BFC93B0014EE +:104AC000D33B0014F13B0014DD3B0014F13B001418 +:104AD000F13B0014F13B0014E73B00147B6803F545 +:104AE0000063FB6011E07B6803F50863FB600CE08A +:104AF0007B6803F51063FB6007E07B6803F51863D0 +:104B0000FB6002E00023FB6000BFFB68184614371F +:104B1000BD465DF8047B704780B487B000AF786015 +:104B200039603B689B697B617B699B683B617B6902 +:104B30001B6AFB603B68DB6823F0FF027B689A60BE +:104B40003B681B695B4223F0FF027B68DA607B698C +:104B50001B68013B03F007033A685269002A02D040 +:104B60004FF4807200E000221A437B681A623B68AF +:104B70005B6803F01003002B00F0ED803B69002B15 +:104B80006DD03B691B68B3F1FF3F19D03B691B68CF +:104B9000DAB23B691B6A1B029BB21A433B6993F86A +:104BA00024309B0403F480231A433B691B791B04C4 +:104BB00003F440331A433B699B7F9B07134300E098 +:104BC00000237A6813643B695B791B0403F4403269 +:104BD0003B695B7F9B0403F480231A437B685A6420 +:104BE0003B699B68B3F1FF3F18D03B699B68DAB221 +:104BF0003B699B691B029BB21A433B691B7B1B04ED +:104C000003F440331A433B691B7F9B0403F4802366 +:104C10001A433B69DB7D9B07134300E000237A685E +:104C200093643B691B69002B09D03B691B69013BFD +:104C300003F01F023B699B7D9B07134300E00023A9 +:104C40007A68D3643B691B7D1B0403F440323B69E3 +:104C50005B7D9B0403F480231A437B681A65FB6821 +:104C6000002B00F00881FB681B68B3F1FF3F19D0EF +:104C7000FB681B68DAB2FB681B6A1B029BB21A4313 +:104C8000FB6893F824309B0403F480231A43FB68E9 +:104C90001B791B0403F440331A43FB689B7F9B077B +:104CA000134300E000237A681366FB685B791B04FA +:104CB00003F44032FB685B7F9B0403F480231A43B8 +:104CC0007B685A66FB689B68B3F1FF3F18D0FB68AE +:104CD0009B68DAB2FB689B691B029BB21A43FB68B4 +:104CE0001B7B1B0403F440331A43FB681B7F9B04AC +:104CF00003F480231A43FB68DB7D9B07134300E02A +:104D000000237A689366FB681B69002B12D0FB684E +:104D10001B69013B03F01F02FB689B7D9B0713434C +:104D2000FA68927D002A02D04FF4003200E000229F +:104D3000134300E000237A68D366FB681B7D1B04E5 +:104D400003F44032FB685B7D9B0403F480231A4329 +:104D50007B681A678FE03B69002B44D03B691B6876 +:104D6000B3F1FF3F0BD03B691B68DAB23B691B799B +:104D70001B0403F44033134343F0804300E000235B +:104D80007A6813643B695B791B0403F440327B68E7 +:104D90005A643B699B68B3F1FF3F0BD03B699B684A +:104DA000DAB23B691B7B1B0403F44033134343F02B +:104DB000804300E000237A6893643B691B69002B01 +:104DC00007D03B691B69013B03F01F0343F080439D +:104DD00000E000237A68D3643B691B7D1B0403F465 +:104DE00040327B681A65FB68002B44D0FB681B6867 +:104DF000B3F1FF3F0BD0FB681B68DAB2FB681B798D +:104E00001B0403F44033134343F0804300E00023CA +:104E10007A681366FB685B791B0403F440327B6895 +:104E20005A66FB689B68B3F1FF3F0BD0FB689B6839 +:104E3000DAB2FB681B7B1B0403F44033134343F0DB +:104E4000804300E000237A689366FB681B69002BAF +:104E500007D0FB681B69013B03F01F0343F080434D +:104E600000E000237A68D366FB681B7D1B0403F413 +:104E700040327B681A6700BF1C37BD465DF8047B73 +:104E80007047000080B58CB006AFF8607A601A46B3 +:104E90000B46FB721346BB72184B7B61B97AFB6AF7 +:104EA000049300230393FB7A029300230193BB6ACC +:104EB00000937B6A0022F868FEF793FF78617B69B4 +:104EC000002B0AD197F82030002B06D097F820301D +:104ED0001946F868FEF7C3FF78617B69002B08D19B +:104EE000FB6A0093002301227968F868FEF7A0FFAF +:104EF00078617B6918461837BD4680BD8000B200D6 +:104F000080B485B000AFF860B9607A603B603B6800 +:104F1000013B3B603A687B681344BA681344FA6803 +:104F2000D2B21A70FB681B0AFB603B68002BEED103 +:104F300000BF00BF1437BD465DF8047B704700001A +:104F400080B58EB002AFF860B9607A60124BFB6238 +:104F50000023BB62FB68002B00F06B81BB68002B59 +:104F600000F06781BB685B68002B00F062817B68A2 +:104F7000002B00F05E81BB681B68002B00F059819C +:104F8000BB681B68FB61BB685B68BB610023FB629D +:104F900000237B6248E100BF0400B2007B6A9B00F3 +:104FA000BA6913441B687B617B69002B00F039816F +:104FB0007B691B78012B10D07B691B78022B0CD0EE +:104FC0007B691B78042B08D07B691B78082B04D0E5 +:104FD0007B691B78032B00D001BE7B691B7A002BF9 +:104FE0000CD07B691B7A012B08D07B691B7A022BC2 +:104FF00004D07B691B7A032B00D001BE7B695A6801 +:105000007B685A63FB6803F580431A4641F61B33FD +:105010001361FB6803F580431A461B231362FB6888 +:1050200003F580331A46EE23C2F8C430FB6803F55B +:1050300080331A460B23C2F84431FB6803F58033F2 +:105040001A4640F20773C2F8E830FB6803F5803374 +:105050001A460723C2F86831FA687B6ADB011344F9 +:1050600003F628031B6843F00102F9687B6ADB0141 +:105070000B4403F628031A60FA687B6ADB011344C9 +:1050800003F628031B6843F01002F9687B6ADB0112 +:105090000B4403F628031A607B699B69002B00F020 +:1050A000B2807B691B781946F868FFF7F9FC386114 +:1050B0003B69002B00F0A4803B691B6823F440721D +:1050C0007B691B7A1B0203F440731A433B691A6025 +:1050D00000233B627B695B6803F00403002B16D05E +:1050E0007B6999697B691A787B69187A7B68009378 +:1050F0000346F86803F02CFA38623B6A002B06D0AE +:1051000008227B6A02FA03F3BA6A1343BB627B6923 +:105110009B691B68002B04D07B699B691B68042B6F +:1051200000D901BE3B6A002B7BD17B695B6803F031 +:105130000203002B75D0FB681B6803F00103012BF1 +:105140006FD07B69DB687A691269B3FBF2F101FB0E +:1051500002F29B1A002B00D001BE7B691B69B3F5DC +:10516000803F07D37B691A697B691B69013B134048 +:10517000002B00D001BE79693869FFF7CDFC7B694F +:105180009B699B685A7D7B6883F82C207B6893F829 +:105190002C30012B05D13B699B6A43F040723B697F +:1051A0009A62FB689B6803F44013B3F5001F05D1B6 +:1051B0003B699B6A43F080723B699A627B695B68DA +:1051C00003F001027B695B68DB081B0103F010033D +:1051D0001A437B691B7A1B0203F440731A437B69F1 +:1051E0005B685B09DB039BB21A437B691B7F1B0374 +:1051F00003F4E043134343F000423B691A6010E0BC +:10520000124BFB6215E07B691B6A002B06D07A68A3 +:105210007969F86803F006FAF86202E00B4BFB626A +:1052200007E07B6A01337B627A6AFB699A42FFF48A +:10523000B5AEBB6A002B03D0BB6A43F43203FB62FA +:10524000FB6A18463037BD4680BD00BF0400B2007F +:10525000F0B58FB008AFF860B9607A60BB689B6941 +:10526000DB683B611B4B7B613B69002B2DD03B69AD +:105270001B689AB23B691B6A9BB21B029BB2134329 +:105280009CB23B691B79032B0CBF01230023DDB2C9 +:105290003B691E793B6993F824303A69527FB968BB +:1052A0000978786807900120069005910492FF2202 +:1052B00003920022029200220192009333462A4672 +:1052C0002146F868FEF71CFE78617B6918461C379A +:1052D000BD46F0BD8000B200F0B58FB008AFF860F9 +:1052E000B9607A60BB689B691B693B611B4B7B6142 +:1052F0003B69002B2DD03B691B689AB23B691B6A46 +:105300009BB21B029BB213439CB23B691B79032BDC +:105310000CBF01230023DDB23B691E793B6993F882 +:1053200024303A69527FB96809787868079001207B +:10533000069005910492FF2203920022029200221D +:105340000192009333462A462146F868FEF7D8FDBD +:1053500078617B6918461C37BD46F0BD8000B200FD +:10536000F0B591B008AFF860B9607A600123FB82B4 +:105370004A4BFB61BB689B69BB61BB699B6A002BA5 +:1053800077D0BB699B6A1B79032B64D100233B61F7 +:10539000BB699B6A1B689AB2BB699B6A1B6A9BB21A +:1053A0001B029BB213439DB2BB699B6A1E79BB690A +:1053B0009B6A93F82430BA69926A5279B969896A0A +:1053C000497FB86800787C680794002406940590AB +:1053D000049103920422029207F1100201920093B9 +:1053E000334601222946F868FEF78AFDF861FB6919 +:1053F000002B11D1BB699B6A1B69002B0CD0BB69C8 +:105400009B6A5979BB699B6A5A7FBB699B6A1B6916 +:10541000F868FEF769FFF861FB69002B29D1BB69C9 +:105420009B6A93F82430012B01D1022000E0012077 +:10543000BB699B6A1C79BB699B6A93F8243007F1AE +:1054400016017A680192009323460246F868FEF737 +:10545000CFFEF8610DE0BB699B6A1B68D9B207F10A +:1054600016027B6800930B46B968F86800F0D8F91B +:10547000F861FB69002B07D1BB699B6BDBB21A4655 +:10548000FB8A13409BB2FB82FB8A002B14BF0123D3 +:105490000023DBB218462437BD46F0BD8000B200C1 +:1054A00080B58CB002AFF860B9607A605E4B7B6209 +:1054B0000023BB82BB689B693B623B6ADB6A002BB3 +:1054C00000F0AD803B6A1B6B002B00F0A8803B6AAC +:1054D0009B6A002B00F0A3803B6ADB6A1B68FB77AA +:1054E0003B6A1B6B1B68BB773B6A9B6A1B687B77BD +:1054F000F97F07F114027B6800930B46B968F868DE +:1055000000F08EF978627B6A002B40F088803B6A5D +:10551000DB6BBB61BB69802B59D0BB69802B78D812 +:10552000BB69022B14D0BB69402B72D13A7DBB6999 +:10553000DBB21343DBB23B75B97F07F114027B6822 +:1055400000930B46B968F86800F098F9786266E055 +:10555000797F07F114027B6800930B46B968F868FD +:1055600000F05EF978627B6A002B55D1F97F07F174 +:1055700014035A1C7B6800930B46B968F86800F066 +:105580004FF978627B6A002B46D17A7DBB69DBB22A +:105590001343DBB27B75BB7F312B0CD1B97F07F195 +:1055A00014035A1C7B6800930B46B968F86800F036 +:1055B00065F9786230E0B97F07F114027B680093E7 +:1055C0000B46B968F86800F059F9786224E0F97F71 +:1055D00007F114035A1C7B6800930B46B968F868FE +:1055E00000F01EF978627B6A002B17D17A7DBB69C7 +:1055F000DBB21343DBB27B75B97F07F114035A1C8E +:105600007B6800930B46B968F86800F037F9786258 +:1056100004E0064B7B6202E000BF00E000BF7B6A53 +:1056200018462837BD4680BD8000B2000300B20096 +:1056300090B593B006AFF860B9603B601346FB715C +:10564000764BFB62BB689B69BB62FB79012B44D143 +:10565000BB6A5B6EBB61BB69002B1BD0BB691B784F +:10566000002B17D0BB699878BB69DC1CBB691B7821 +:10567000013BBA68127839680491012103910292C2 +:10568000002201920093234600220146F868FEF7AB +:10569000A8FBF862BB69002B00F0BA80BB695B789D +:1056A000002B00F0B580BB69987ABB6903F10B044D +:1056B000BB695B78013BBA681278396804910121B3 +:1056C0000391029200220192009323460022014698 +:1056D000F868FEF786FBF8629AE0BB6A9B6E002BC7 +:1056E00000F09680BB6ADB6E002B00F09180BB6AF5 +:1056F0009B6E1B6887F82730BB6ADB6E1B6887F8D8 +:105700002630BB6ADB681B6887F8253000237B6185 +:10571000BB6A586F07F1140103230022FFF7F0FB67 +:10572000BB6A5B6FB3F1FF3F4CD0BB68197897F849 +:10573000270007F11403DA1C3B6803930323029349 +:1057400007F114030193002300930346F868FFF761 +:1057500099FBF862FB6A002B5AD1BB6A1B6FFB6195 +:10576000FA7DFB69DBB21343DBB2FB75BB681B78C8 +:1057700097F825103A6804920122039202930023BD +:1057800001930023009300230022F868FEF729FB11 +:10579000F862FB6A002B3BD1BB681B7807F1140051 +:1057A00097F826103A68049201220392029300238C +:1057B00001930423009303460022F868FEF711FBCF +:1057C000F86225E00023FB7497F8271007F1130215 +:1057D0003B6800930B46B968F86800F021F8F8625E +:1057E000FB6A002B14D1BB6A1B6F3B623B6ADAB2C7 +:1057F000FB7C1343DBB2FB7497F8261007F113020E +:105800003B6800930B46B968F86800F037F8F86217 +:10581000FB6A18463437BD4690BD00BF8000B20019 +:1058200080B58CB006AFF860B9607A60FB70124B3F +:105830007B61BB681B78F9783A6A04920022039274 +:105840000293FF2301930023009300230022F868B2 +:10585000FEF7C7FA78617B69002B08D13B6A009399 +:10586000002301227968F868FEF7E2FA78617B6923 +:1058700018461837BD4680BD8000B20080B58EB096 +:1058800006AFF860B9607A60FB70BA6AB968F86808 +:10589000FFF7DEFCF861FB69002B22D1BB689B6936 +:1058A000DB6BBB61BB69022B07D1BB689B691B6BC0 +:1058B0001B68012B01D1022300E001237B61BB683F +:1058C0001B78F978BA6A04920122039202930023AA +:1058D00001937B6900937B680022F868FEF781FAE8 +:1058E000F861FB6918462037BD4680BD80B588B099 +:1058F00000AFF860B9607A603B603A68B968F868F0 +:10590000FFF72EFD0346FB773B68002B00D101BE5D +:105910003B681B8D002B36D0FB7F002B00F087806F +:105920003B681B8D1A467B68934202D93B681B8DEE +:1059300001E07B689BB23B82FB681B6803F00103BC +:10594000002B04D03B8A1846FDF75AFD03E03B8A42 +:105950001846FDF769FD3A68B968F868FFF700FD79 +:105960000346FB773B8A7A689A4203D93B8A7A6876 +:10597000D31A00E000237B60FB7F002B57D07B68AD +:10598000002BD9D153E0FB7F002B50D000237B614B +:105990000023BB6100237B827B689B08BB61BB69E2 +:1059A000284A934201D9274BBB61BB69002B01D127 +:1059B0000123BB61BB69244AA2FB03239B097B61D2 +:1059C000BA69214BA3FB02139B094FF47A7101FBC7 +:1059D00003F3D31A7B82FB681B6803F00103002BDF +:1059E00007D07869FDF7E2FC7B8A1846FDF708FDD1 +:1059F00006E0786903F02EFA7B8A1846FDF714FD5D +:105A00003A68B968F868FFF7ABFC0346FB777A6839 +:105A1000BB699A4203D97A68BB69D31A00E00023B4 +:105A20007B60FB7F002B02D07B68002BC2D1FB7F09 +:105A3000002B01D0054B00E0002318462037BD465F +:105A400080BD00BF40420F00D34D62100200B20083 +:105A500080B58AB002AFF860B9607A603B6000231D +:105A6000FB74BB68002B00D101BEBB689B69DB6A7D +:105A70001B68FB61BB689B69DB6BFB76FB69D9B27A +:105A800007F113023B6800930B46B968F868FFF70B +:105A9000C7FE78617B6800221A707B69002B0BD1EE +:105AA000FA7CFB7E1340DBB2FA7E9A420CBF0123E4 +:105AB0000023DAB27B681A707B6918462037BD462E +:105AC00080BD80B586B000AFF860B9607A603B6099 +:105AD000BB68002B00D101BE3A68B968F868FFF7CF +:105AE000B7FB78617B69002B0FD13A68B968F86819 +:105AF000FFF7D6FC78617B69002B06D13B687A689A +:105B0000B968F868FFF7F2FE78617B6918461837C4 +:105B1000BD4680BD80B485B000AF78600B46FB7099 +:105B20000023FB607B6801331B781B027A681278C4 +:105B30001343FB60FB78002B0BD07B6803331B788F +:105B40001A067B6802331B781B041343FA6813435D +:105B5000FB60FB6818461437BD465DF8047B704750 +:105B600080B485B000AF78600B46FB70FB78013BDA +:105B7000072B27D801A252F823F000BF894C00144C +:105B8000934C0014B14C00149D4C0014B14C001403 +:105B9000B14C0014B14C0014A74C00147B6803F501 +:105BA0000063FB6011E07B6803F50863FB600CE0B9 +:105BB0007B6803F51063FB6007E07B6803F51863FF +:105BC000FB6002E00023FB6000BFFB68184614374F +:105BD000BD465DF8047B704780B483B000AF786049 +:105BE0000B46FB707B68DB6A002B00D101BE7B6833 +:105BF0001B6B002B00D101BE7B681B6B00221A714E +:105C0000FB78062B77D801A252F823F0154D00142B +:105C1000434D00146B4D0014934D0014434D00147C +:105C2000434D0014BB4D00147B684FF0FF32DA6324 +:105C30007B681B6B4FF0FF321A607B68DB6A4FF0AA +:105C4000FF321A607B681B6B00229A777B68DB6AE5 +:105C500000229A7750E07B680222DA637B681B6B34 +:105C600001221A607B68DB6A35221A607B681B6B35 +:105C700001229A777B68DB6A01229A773CE07B6895 +:105C80004022DA637B681B6B01221A607B68DB6A47 +:105C900005221A607B681B6B01229A777B68DB6A9E +:105CA00001229A7728E07B688022DA637B681B6B8D +:105CB0003E221A607B68DB6A3F221A607B681B6B9E +:105CC00001229A777B68DB6A01229A7714E07B686D +:105CD0000222DA637B681B6B31221A607B68DB6A05 +:105CE00035221A607B681B6B01229A777B68DB6A1E +:105CF00001229A7700E000BF00BF0C37BD465DF877 +:105D0000047B704780B487B000AF786039603B682F +:105D10009B697B617B699B683B617B691B6AFB605C +:105D20003B68DB6823F0FF027B689A603B681B6975 +:105D30005B4223F0FF027B68DA607B691B68013BF2 +:105D400003F007033A685269002A02D04FF48072C8 +:105D500000E000221A437B681A623B685B6803F02C +:105D60001003002B00F0ED803B69002B6DD03B69E8 +:105D70001B68B3F1FF3F19D03B691B68DAB23B697E +:105D80001B6A1B029BB21A433B6993F824309B04A5 +:105D900003F480231A433B691B791B0403F440334B +:105DA0001A433B699B7F9B07134300E000237A68FB +:105DB00013643B695B791B0403F440323B695B7FEE +:105DC0009B0403F480231A437B685A643B699B68F5 +:105DD000B3F1FF3F18D03B699B68DAB23B699B691E +:105DE0001B029BB21A433B691B7B1B0403F4403329 +:105DF0001A433B691B7F9B0403F480231A433B69CE +:105E0000DB7D9B07134300E000237A6893643B69C2 +:105E10001B69002B09D03B691B69013B03F01F0282 +:105E20003B699B7D9B07134300E000237A68D364A2 +:105E30003B691B7D1B0403F440323B695B7D9B0483 +:105E400003F480231A437B681A65FB68002B00F07B +:105E50000881FB681B68B3F1FF3F19D0FB681B6822 +:105E6000DAB2FB681B6A1B029BB21A43FB6893F809 +:105E700024309B0403F480231A43FB681B791B0422 +:105E800003F440331A43FB689B7F9B07134300E0F6 +:105E900000237A681366FB685B791B0403F44032C5 +:105EA000FB685B7F9B0403F480231A437B685A667C +:105EB000FB689B68B3F1FF3F18D0FB689B68DAB2C0 +:105EC000FB689B691B029BB21A43FB681B7B1B048C +:105ED00003F440331A43FB681B7F9B0403F48023C5 +:105EE0001A43FB68DB7D9B07134300E000237A68BD +:105EF0009366FB681B69002B12D0FB681B69013B92 +:105F000003F01F02FB689B7D9B071343FA68927D99 +:105F1000002A02D04FF4003200E00022134300E0D8 +:105F200000237A68D366FB681B7D1B0403F44032B0 +:105F3000FB685B7D9B0403F480231A437B681A672C +:105F40008FE03B69002B44D03B691B68B3F1FF3FF6 +:105F50000BD03B691B68DAB23B691B791B0403F465 +:105F60004033134343F0804300E000237A68136416 +:105F70003B695B791B0403F440327B685A643B69DC +:105F80009B68B3F1FF3F0BD03B699B68DAB23B697A +:105F90001B7B1B0403F44033134343F0804300E0B6 +:105FA00000237A6893643B691B69002B07D03B6927 +:105FB0001B69013B03F01F0343F0804300E0002313 +:105FC0007A68D3643B691B7D1B0403F440327B6811 +:105FD0001A65FB68002B44D0FB681B68B3F1FF3FD8 +:105FE0000BD0FB681B68DAB2FB681B791B0403F457 +:105FF0004033134343F0804300E000237A68136684 +:10600000FB685B791B0403F440327B685A66FB68CB +:106010009B68B3F1FF3F0BD0FB689B68DAB2FB686B +:106020001B7B1B0403F44033134343F0804300E025 +:1060300000237A689366FB681B69002B07D0FB6816 +:106040001B69013B03F01F0343F0804300E0002382 +:106050007A68D366FB681B7D1B0403F440327B68BF +:106060001A6700BF1C37BD465DF8047B704700000F +:1060700080B58CB006AFF8607A601A460B46FB72AA +:106080001346BB72184B7B61B97AFB6A04930023F9 +:106090000393FB7A029300230193BB6A00937B6A0C +:1060A0000022F868FDF79DFE78617B69002B0AD11C +:1060B00097F82030002B06D097F820301946F86862 +:1060C000FDF7CDFE78617B69002B08D1FB6A009358 +:1060D000002301227968F868FDF7AAFE78617B69E0 +:1060E00018461837BD4680BD8000B20080B485B028 +:1060F00000AFF860B9607A603B603B68013B3B6091 +:106100003A687B681344BA681344FA68D2B21A70CA +:10611000FB681B0AFB603B68002BEED100BF00BF91 +:106120001437BD465DF8047B704780B485B000AF7E +:10613000786039600023FB600023BB600023BB60F4 +:106140000DE0FB681B02FB607A68BB6813441B7898 +:106150001A46FB681343FB60BB680133BB60BA6837 +:106160003B689A42EDD3FB6818461437BD465DF88C +:10617000047B7047F0B591B008AFF860B9607A6001 +:10618000FB70404BFB61BB681B79032B06D1BB68DE +:1061900093F82430012B01D1012300E00023FB758B +:1061A000FB7D03F00103FB7500233B740023BB61FF +:1061B0000CE0BB697A681A44BB690133127820335A +:1061C0003B4403F8102CBB690133BB61BB69022B54 +:1061D000EFDDBB681B689AB2BB681B6A9BB21B02EF +:1061E0009BB213439EB2BB6893F804E0BB6893F87C +:1061F0002420FB7D002B02D007F1100300E07B6818 +:10620000F97D002901D0042100E00321B86840791C +:10621000BC68647F97F817C03D6C0795002506950C +:10622000FD780595049403900291019300927346C2 +:1062300062463146F868FDF763FEF861FB69002BA2 +:106240001AD1BB685979BB685A7FBB681B69F8686B +:10625000FEF74AF8F861FB69002B0DD1BB68197D88 +:10626000BB685B7D3A6C019200930B46BA6BF96B8D +:10627000F868FDF7BDFFF861FB6918462437BD4695 +:10628000F0BD00BF0500B20080B487B000AF7860F9 +:10629000396000237B6100233B610823FB602CE015 +:1062A0007B68DBB23968FA680A441278934221D1DC +:1062B0007B681B0ADBB2FA68073239680A44127835 +:1062C000934217D1FB6801333A6813441B781A468E +:1062D0003B6993420ED8FB6802333A6813441B783B +:1062E000012B07D1FB6801333A6813441B783B61EB +:1062F000FB687B61FB680833FB603B6806331B78F7 +:106300000133DB00FA689A42CAD97B6918461C3708 +:10631000BD465DF8047B704780B586B000AFF8607D +:10632000B9607A603B60B968F868FFF7ADFF7861E3 +:106330007B69002B20D07B690433BA681A447B68E0 +:10634000023312781A707B690533BA681A447B6885 +:10635000013312781A707B690633BA6813441A78CD +:106360007B681A707B690333BA6813441B789B00FF +:10637000DAB23B681A7002E03B6800221A7000BF74 +:106380001837BD4680BD80B485B000AF78603960F5 +:106390000023FB607B6802331B785B0803F0030378 +:1063A000BB60BB68022B16D0BB68022B16D8BB683B +:1063B000002B03D0BB68012B03D00FE00323FB604D +:1063C0000DE03B68B3F1807F02D90423FB6006E057 +:1063D0000323FB6003E00423FB6000E000BFFB68D5 +:1063E00018461437BD465DF8047B704780B584B00D +:1063F00000AF78607B68043301211846FFF78AFB01 +:10640000B860BB68002B04DBBB680133DB08FB60B2 +:1064100004E0BB68033B43F00043FB60FB681846A5 +:106420001037BD4680BD80B483B000AF786039605E +:106430007B6841331B781A463B681A603B6801222F +:106440009A773B6800221A713B6803225A717B6875 +:1064500040331B785B09DBB2002B04D13B684FF063 +:10646000FF329A6008E03B68FF229A603B68032293 +:106470001A733B680122DA757B6840331B7803F09E +:106480001F023B681A613B681B69002B02D03B6806 +:1064900001229A753B6803221A7500BF0C37BD466E +:1064A0005DF8047B704780B483B000AF78603960DA +:1064B0007B6843331B781A463B681A603B680122AD +:1064C0009A773B6800221A713B6803225A717B68F5 +:1064D00042331B785B09DBB2002B04D13B684FF0E1 +:1064E000FF329A6008E03B68FF229A603B68032213 +:1064F0001A733B680122DA757B6842331B7803F01C +:106500001F023B681A613B681B69002B02D03B6885 +:1065100001229A753B6803221A7500BF0C37BD46ED +:106520005DF8047B704780B483B000AF7860396059 +:106530007B6859331B781A463B681A603B68002217 +:1065400083F824203B6801229A773B6800221A7165 +:106550003B6802225A713B6801225A777B685833A4 +:106560001B785B09DBB2002B04D13B684FF0FF3294 +:106570009A600BE03B68FF229A603B6802221A7324 +:106580003B6801221A773B680122DA757B68583331 +:106590001B7803F01F023B681A613B6801229A7561 +:1065A0003B6802221A753B6801225A7500BF0C37FE +:1065B000BD465DF8047B704780B483B000AF78605F +:1065C00039607B6809331B781A463B681A603B6860 +:1065D00001229A773B6800221A713B6802225A71A5 +:1065E0007B6808331B785B09DBB2002B04D13B6866 +:1065F0004FF0FF329A6008E03B68FF229A603B68E8 +:1066000002221A733B680122DA757B6808331B7813 +:1066100003F01F023B681A613B681B69002B02D024 +:106620003B6801229A753B6802221A7500BF0C373D +:10663000BD465DF8047B704780B483B000AF7860DE +:1066400039607B680B331B781A463B681A603B68DD +:1066500000221A713B6800225A717B680A331B784A +:106660005B09DBB2002B04D13B684FF0FF329A602C +:1066700008E03B68FF229A603B6800221A733B687F +:106680000122DA757B680A331B7803F01F023B682E +:106690001A613B681B69002B02D03B6801229A7586 +:1066A0003B6802221A7500BF0C37BD465DF8047BBB +:1066B000704780B483B000AF786039607B680F3377 +:1066C0001B781A463B681A603B6800221A713B68C7 +:1066D00001225A717B680E331B785B09DBB2002BF9 +:1066E00004D13B684FF0FF329A6008E03B68FF221C +:1066F0009A603B6801221A733B680122DA757B6855 +:106700000E331B7803F01F023B681A613B681B695C +:10671000002B02D03B6801229A753B6801221A7552 +:1067200000BF0C37BD465DF8047B704780B483B072 +:1067300000AF786039607B680D331B781A463B6880 +:106740001A603B6800221A713B6800225A717B680C +:106750000C331B785B09DBB2002B04D13B684FF094 +:10676000FF329A6008E03B68FF229A603B68002293 +:106770001A733B680122DA757B680C331B7803F0CF +:106780001F023B681A613B681B69002B02D03B6803 +:1067900001229A753B6801221A7500BF0C37BD466D +:1067A0005DF8047B704780B483B000AF78603960D7 +:1067B0003B6803221A603B6800221A713B68012281 +:1067C0009A773B6800225A713B684FF0FF329A601B +:1067D0003B6800221A613B6800221A7500BF0C3723 +:1067E000BD465DF8047B704780B588B000AFF860A7 +:1067F0007B600B46FB721346BB72FF23FB770223C1 +:10680000BB61FB7A012B07D0FB7A032B04D0BB7A48 +:10681000012B01D9012300E00023FB75FB7D03F070 +:106820000103FB75FB7D002B38D0FA68BB6913446C +:106830001B7803F02003002B1ED0FA68BB691344B9 +:106840001B7803F00803002B0FD0FB6A03F0400312 +:10685000002B0AD197F82830072B06D97968F868F9 +:10686000FFF761FE0623FB7742E07968F868FFF7DF +:10687000A3FE0523FB773BE0FA68BB6913441B7852 +:1068800003F04003002B06D07968F868FFF7D4FEC8 +:106890000423FB772CE0FF23FB7729E0FA68BB6930 +:1068A00013441B7803F01003002B09D0BB7A002B94 +:1068B00006D07968F868FFF7FCFE0323FB7717E042 +:1068C000FA68BB6913441B7803F00103002B09D05D +:1068D000BB7A002B06D07968F868FFF727FF022300 +:1068E000FB7705E07968F868FFF75DFF0123FB7728 +:1068F000FB7F18462037BD4680BD000080B592B0B2 +:1069000004AFF860B9603B601346FB71624B3B63B8 +:10691000BB685B6DFB62BB689B6DBB623B68002B19 +:1069200000F0B680FB6A002B00F0B280BB6A002B3F +:1069300000F0AE8000237B631AE007F11C027B6B42 +:10694000134400221A7007F118027B6B13440022D3 +:106950001A7007F114027B6B134400221A7007F1BE +:1069600010027B6B134400221A707B6B01337B6334 +:106970007B6B032BE1D903213868FFF7D6FB034675 +:1069800003F1200007F1180103230022FFF7AEFBFB +:1069900003213868FFF7C9FB034603F1080007F13C +:1069A000100103230022FFF7A1FBBB68596BF879A4 +:1069B00007F118023B6C029307F11C0301930423B7 +:1069C00000930346F868FFF7D5FB38633B6B002B59 +:1069D00030D1FB7F5BB2002B2CDAFB7F03F0070387 +:1069E0007B62FB7F5B09DBB203F0030387F8233094 +:1069F0007B7F1A46FB6A1A603B7F1A46BB6A1A60A5 +:106A0000FB7F03F00803002B04D1BB7F1A46BB6851 +:106A1000DA6503E0BB684FF0FF32DA6597F82330A0 +:106A20000233FF2202FA03F3DA437B6A9A40BB681F +:106A30001A6607E0FB6A4FF0FF321A60BB6A4FF03C +:106A4000FF321A60BB68596BF87907F110023B6C92 +:106A5000029307F114030193042300930346F8689B +:106A6000FFF788FB38633B6B002B11D1FB7D5BB2DA +:106A7000002B0DDA3B7D9B09DAB27B7DDB00DBB2BC +:106A800003F00803DBB21343DAB2BB689B6A1A61F6 +:106A900000BF3837BD4680BD8000B20080B487B0EB +:106AA00000AFF8600B467A60FB72FB681B687B6185 +:106AB000FB7A013B042B3AD801A252F823F000BF25 +:106AC000095C0014F75B0014E55B0014D35B001451 +:106AD000C15B00147B6903F02003002B29D07B6885 +:106AE000EC221A6025E07B6903F01003002B22D012 +:106AF0007B686C221A601EE07B6903F00803002BA0 +:106B00001BD07B68BC221A6017E07B6903F004038A +:106B1000002B14D07B683C221A6010E07B6903F0E4 +:106B20000203002B0DD07B680C221A6009E000BF25 +:106B300008E000BF06E000BF04E000BF02E000BFC5 +:106B400000E000BF00BF1C37BD465DF8047B704706 +:106B500080B485B000AF78607B6828331B781B0950 +:106B6000DBB21A4601239340FB60FB6818461437DA +:106B7000BD465DF8047B704780B48DB000AFF8600F +:106B8000B9607A60BB685B6A7B62FB681B3B5B0831 +:106B90003B627B6A03F00F03FB610023BB610023B0 +:106BA0007B610023FB620023BB623FE0BA6A1346AD +:106BB000DB009B1A7A6A22FA03F31B093B613B69EB +:106BC0005B0903F00303BB613B6903F01F037B61B7 +:106BD000BB69002B02D10123FB6211E0BB69012BD1 +:106BE00002D11023FB620BE0BB69022B02D1802390 +:106BF000FB6205E0BB69032B02D14FF47A73FB62A1 +:106C0000FB6901337A690132F96A01FB02F202FB86 +:106C100003F1BA6A13465B0013449B001A467B6873 +:106C200013444A009A60BB6A0133BB62BB6A032B00 +:106C3000BCD93A6A13465B0013449B000C3B7A684C +:106C400013449B6818463437BD465DF8047B704793 +:106C500080B48BB000AF78607B685B6A3B627B6816 +:106C60009B6AFB61FB695B0F03F00303BB61FB697C +:106C70001B0E03F01F037B6100237B623B6A03F062 +:106C80000F033B61BB69002B02D110237B6213E031 +:106C9000BB69012B03D14FF480737B620CE0BB69AD +:106CA000022B03D14FF47A637B6205E0BB69032BAF +:106CB00002D14FF47A437B623B6901337A69013236 +:106CC000796A01FB02F202FB03F35B00FB60FB68E5 +:106CD00018462C37BD465DF8047B704780B489B0F8 +:106CE00000AF78607B689B6ABB61BB695B0B03F09C +:106CF00001037B61BB691B0A03F01F033B61BB6996 +:106D000003F00F03FB607B69002B02D10823FB61BA +:106D100001E04023FB61FB6801333A690132F96904 +:106D200001FB02F202FB03F35B00BB60BB68184689 +:106D30002437BD465DF8047B704780B483B000AF54 +:106D400078607B6806221A607B6800221A717B6873 +:106D500001229A7700BF0C37BD465DF8047B70476F +:106D600080B483B000AF78607B6804221A607B68CF +:106D700000221A7100BF0C37BD465DF8047B7047D6 +:106D800080B483B000AF78607B6802221A607B68B1 +:106D900001229A777B6800221A717B6800225A715F +:106DA0007B684FF0FF329A607B6800221A737B6821 +:106DB00000221A617B6800221A7500BF0C37BD469D +:106DC0005DF8047B704780B483B000AF78607B6867 +:106DD00012221A607B6801229A777B6800221A715E +:106DE0007B6800225A717B684FF0FF329A607B68A3 +:106DF00000221A737B6800221A617B6800221A75D0 +:106E000000BF0C37BD465DF8047B704780B483B08B +:106E100000AF78607B6834221A607B6801229A7721 +:106E20007B6800221A717B6800225A717B684FF0E0 +:106E3000FF329A607B6800221A737B6800221A6115 +:106E40007B6802221A7500BF0C37BD465DF8047BD3 +:106E5000704780B483B000AF78607B683E221A60D0 +:106E60007B6801229A777B6800221A717B68022274 +:106E70005A717B684FF0FF329A607B6802221A7366 +:106E80007B6800221A617B6802221A7500BF0C37EA +:106E9000BD465DF8047B704780B586B000AFF860F2 +:106EA0000B467A60FB72FB681B687B61FB7A013BD7 +:106EB000082B57D801A252F823F000BF3760001406 +:106EC00037600014376000140B600014CD5F0014AD +:106ED000CD5F00145160001451600014CD5F0014A8 +:106EE0007B6903F48073002B03D07868FFF7B1FF50 +:106EF00039E07B6903F08003002B03D07868FFF74B +:106F000085FF30E07B6903F04003002B03D07868F5 +:106F1000FFF759FF27E07868FFF732FF23E07B692E +:106F200003F08003002B03D07868FFF76FFF1AE0AF +:106F30007B6903F04003002B03D07868FFF743FF21 +:106F400011E07868FFF71CFF0DE07B6903F0400358 +:106F5000002B03D07868FFF736FF04E07868FFF76E +:106F60000FFF00E000BF00BF1837BD4680BD00BF67 +:106F700080B483B000AF78607B6805221A607B68BC +:106F800000221A7100BF0C37BD465DF8047B7047C4 +:106F900080B483B000AF78607B6860221A607B6841 +:106FA00000221A7100BF0C37BD465DF8047B7047A4 +:106FB00080B489B000AFF860B9607A60FB681B6884 +:106FC000042B4FD10023FB61FB685B694FF0FF325C +:106FD0001A60BB6801331B785B0803F00F033B6149 +:106FE0000023BB610CE00122BB699A400121BB690F +:106FF00099403B690B409A4206D0BB690133BB61A3 +:10700000BB69042BEFD900E000BFBB69032B49D853 +:10701000BB690433FB6100237B6110E07B690433AF +:10702000BA68D1187A6913465B0013449B001A466C +:107030007B6813440A781A707B6901337B617B6932 +:10704000032BEBD9BA68FB6913441A78FB685B69B8 +:107050001A60FB685B6901229A77BB695B001D338C +:10706000FB611FE01D23FB6108E0FB69222B02D9B5 +:107070000023FB6108E0FB690233FB61BA68FB692E +:1070800013441B78FF2BF0D0FB69002B0AD0BA68A1 +:10709000FB6913441A78FB685B691A60FB685B69DB +:1070A00001229A77FB69002B08D0FB685B690022FC +:1070B0001A71FB685B6900225A7103E0FB685B6927 +:1070C000FF221A71FB6918462437BD465DF8047B20 +:1070D0007047000080B58CB006AFF8607A601A4641 +:1070E0000B46FB721346BB72254B7B61FB7A03F0A8 +:1070F0007F03002B3ED000237B61FB7A03F0020369 +:10710000002B19D07B68DB683B613B69002B13D0F7 +:107110003B691B68D9B23B691A793B6A0493012326 +:107120000393BB7A0293FF23019300230093002370 +:10713000F868FCF756FE7861FB7A03F00103002B38 +:1071400004D1FB7A03F00203002B13D07B69002BE0 +:1071500010D13B6A049301230393BB7A0293FF236C +:1071600001930023009300230022B721F868FCF765 +:1071700038FE78617B6918461837BD4680BD00BF70 +:107180008000B20080B485B000AF78603960002321 +:10719000FB600023BB6024E0FB681C337A68134467 +:1071A0001B781946BA6813465B0013449B001A46C5 +:1071B0003B68134401228A405A60FB681D337A6899 +:1071C000D118BA6813465B0013449B001A463B680B +:1071D00013440A781A70FB680233FB60BB68013302 +:1071E000BB60BB68032BD7D900BF00BF1437BD46B7 +:1071F0005DF8047B7047000080B596B004AFF8607E +:10720000B9607A603B60002387F8463000233B6416 +:107210000023FB6300233B62844BBB6300237B633F +:1072200008E007F110027B6B134400221A707B6B9D +:1072300001337B637B6B032BF3D98EE03B6C013313 +:10724000BA6813441B78FB773B6C0333BA6813446A +:107250001B78BB770023FB753B6C0233BA68134481 +:107260001B789B09DBB23B623B6A022B0FD03B6A67 +:10727000022B0FD83B6A002B03D03B6A012B03D0B3 +:1072800008E00023FB6309E00323FB6306E004231B +:10729000FB6303E03B681B68FB6300BF002387F8C8 +:1072A000333014E03A6CFB6B1A4497F83330D31A3E +:1072B0000333BA681A4497F83330127848333B44A2 +:1072C00003F8382C97F83330013387F8333097F8C8 +:1072D0003330FA6B9A42E5D83B6C0233BA681344F8 +:1072E0001B7803F00F0387F8473097F847300F2BD0 +:1072F00002D1082387F84730F87F07F1170297F883 +:1073000050107B6D0393FB6B029307F11003019305 +:1073100097F8473000930346F868FEF7A9FEB86374 +:10732000BB6B002B0FD197F846305B00DBB2F97DC9 +:10733000BA7F0A40D2B2002A14BF01220022D2B280 +:10734000134387F846303B6C08333B643A6C7B68E8 +:107350009A4202D9364BBB6308E0BA683B6C1344CF +:107360001B7803F00203002B3FF468AFBB6B002BCC +:107370001AD110E03B6C0233BA6813441B78023315 +:107380009B003A6C13443B643A6C7B689A4202D986 +:10739000274BBB6308E03B6C0133BA6813441B788E +:1073A00097F846209A42E5D1BB6B002B40F0AF80A6 +:1073B0003B6C0233BA6813441B7801337B777A7FC6 +:1073C0003B68DA647B7F002B02D1184BBB639EE0E5 +:1073D0000023FB620023BB62002387F8253090E086 +:1073E000FA6ABB6A1344FB623B6C04333B640023C0 +:1073F00087F82730012387F82630BA683B6C13449E +:107400001B7803F00F033B7714E097F826305B00FE +:1074100087F8263097F82730013387F8273097F818 +:107420002730042B06D9024BBB630AE00600B200EA +:107430000700B2003A7F97F826301340DBB2002BEA +:10744000E3D0BA683B6C13441B681B0A01331B0270 +:10745000BB623B681A6D97F825309B0013441B688C +:10746000BB61BB69FA6A1A6097F8272013465B0074 +:1074700013449B001A46BB6D13441B781A46BB6924 +:107480009A6097F8272013465B0013449B001A4626 +:10749000BB6D13449A68BB691A6197F8272013469D +:1074A0005B0013449B001A46BB6D13445B68BA6AC9 +:1074B0009A4206D2BB69BA6ADA60BB6901225A6095 +:1074C0001AE097F8272013465B0013449B001A46E6 +:1074D000BB6D13445A68BB69DA6097F827201346DE +:1074E0005B0013449B001A46BB6D13445B68BA6A89 +:1074F000B2FBF3F2BB695A6097F82530013387F885 +:10750000253097F825207B7F9A42FFF469AFBB6B4B +:1075100018464837BD4680BD80B5AEB004AFF860B0 +:10752000B9607A60FB70FF2387F8A730404BC7F83B +:10753000A0307B685B6BC7F89C307B689B68C7F8A2 +:107540009830D7F8B03003F40013002B08D0D7F8E8 +:107550009810B868FEF767FF082387F8A7300DE09A +:10756000D7F8B03003F48013002B07D0D7F8981069 +:10757000B868FEF798FF072387F8A73097F8A73079 +:10758000FF2B4ED097F8B830F978D7F8BC2002928C +:1075900007F11402019200930B46D7F8B420D7F8F4 +:1075A0009C10F868FEF7E6FDC7F8A000D7F8A030F9 +:1075B000002B36D107F114033B331B68C7F8943016 +:1075C000D7F89430002B2CDAD7F894301B0E03F048 +:1075D00007027B681A677B68DB6ED7F89420D2B20B +:1075E0001A60D7F894301A0A7B689B6ED2B21A6080 +:1075F000D7F8943003F08053002B06D0D7F894309E +:107600001B0CDAB27B685A6703E07B684FF0FF32ED +:107610005A677B68DB6E01229A777B689B6E01223A +:107620009A7797F8A7301846A837BD4680BD00BFA7 +:107630008200B20090B5D1B004AF07F59874A4F5FC +:107640009274206007F59870A0F59470016011465F +:1076500007F59872A2F59872136007F59873A3F274 +:1076600029130A461A70A44BC7F8203107F59873FE +:10767000A3F594731B685B6BC7F81C3107F598730F +:10768000A3F594731B689B68C7F81831FF2387F82C +:107690002F310023C7F828310BE007F19402D7F807 +:1076A0002831134400221A70D7F828310133C7F863 +:1076B0002831D7F828317F2BEFD997F8483107F5D3 +:1076C0009872A2F22912117807F59872A2F59270B9 +:1076D000D7F85421029207F19402019200930B46CD +:1076E000D7F84421D7F81C110068FEF743FDC7F80E +:1076F0002001D7F82031002B40F0D48197F8953045 +:10770000002B00F0CF8197F895301A46D7F8183142 +:107710001A60D7F818311A68D7F818311A62D7F8F2 +:10772000183102229A77D7F8183103221A71D7F844 +:107730001831012283F82420D7F8183101225A7514 +:10774000D7F8183101221A77D7F8183101225A7761 +:10775000D7F8183103225A71D7F818314FF0FF3299 +:107760009A6097F85031002B15D007F59873A3F263 +:1077700029131A7807F59873A3F5947107F5987390 +:10778000A3F59270D7F854310093D7F84C310968BB +:107790000068FFF7B3F8D7F8183114221A61D7F848 +:1077A000183101229A75D7F8183103221A75092366 +:1077B00087F82F3107F59873A3F594731B68DA687F +:1077C00007F59873A3F594731B68DB6812681A6257 +:1077D00007F59873A3F594731B68DB6803221A718D +:1077E00007F59873A3F594731B68DB68012283F88F +:1077F000242007F59873A3F594731B68DB680222B5 +:107800009A7707F59873A3F594731B689A6A07F53E +:107810009873A3F594731B689B6A12681A6207F544 +:107820009873A3F594731B689B6A03221A7107F57A +:107830009873A3F594731B689B6A012283F8242034 +:1078400007F59873A3F594731B689B6A02229A77D5 +:1078500007F59873A3F594731B689B6A03221A7546 +:1078600007F59873A3F594731B689B6A01225A75F8 +:1078700007F59873A3F594731B689B6A01229A75A8 +:1078800007F59873A3F594731B689B6A03225A71DA +:1078900007F59873A3F594731B689B6A01225A77C6 +:1078A00007F59873A3F594731B68DA6907F5987365 +:1078B000A3F594731B68DB6912681A6207F5987365 +:1078C000A3F594731B68DB6903221A7107F598739B +:1078D000A3F594731B68DB69012283F8242007F564 +:1078E0009873A3F594731B68DB6902229A770023CF +:1078F000C7F8243110E000BF8200B20007F598738A +:10790000A3F58E72D7F82431134400221A70D7F8E9 +:1079100024310133C7F82431D7F824317F2BEDD936 +:1079200097F8403107F59872A2F22912147807F5FA +:107930009872A2F5987207F59871A1F59270D7F830 +:107940005411029107F1140101910093234612682A +:10795000D7F81C110068FEF70DFCC7F82001D7F816 +:107960002031002B40F09D8007F59873A3F59473A8 +:107970001B685B6EC7F8143107F59873A3F58E7317 +:10798000DA78D7F814311A7007F59873A3F58E7367 +:10799000DA7AD7F814315A70D7F814311B78002BE3 +:1079A0003CD0D7F814311B78072B37D807F59873DC +:1079B000A3F58E739A78D7F814319A7007F59873F7 +:1079C000A3F58E735A78D7F81431DA7007F59873E7 +:1079D000A3F58E731A78D7F814311A7107F59873D6 +:1079E000A3F58E73DA79D7F814315A7107F59873C5 +:1079F000A3F58E739A79D7F814319A7107F59873B5 +:107A0000A3F58E735A79D7F81431DA7107F59873A4 +:107A1000A3F58E731A79D7F814311A72D7F8143186 +:107A20005B78002B3ED0D7F814315B78072B39D820 +:107A300007F59873A3F58E739A7AD7F814319A7272 +:107A400007F59873A3F58E735A7AD7F81431DA7262 +:107A500007F59873A3F58E731A7AD7F814311A7351 +:107A600007F59873A3F58E73DA7BD7F814315A7340 +:107A700007F59873A3F58E739A7BD7F814319A7330 +:107A800007F59873A3F58E735A7BD7F81431DA7320 +:107A900007F59873A3F58E731A7BD7F814311A740F +:107AA00000E001BE97F82F31184607F59A77BD46DA +:107AB00090BD00BFF0B5EDB006AF07F5CC74A4F5EE +:107AC000C674206007F5CC70A0F5C8700160194637 +:107AD00007F5CC73A3F291131A7007F5CC73A3F5D5 +:107AE000C9730A461A7007F5CC73A3F5C8731B68EF +:107AF000002B00D101BE07F5CC73A3F5C8731B683A +:107B00009B69002B00D101BE002387F8C7300023FA +:107B100087F8C630002387F8C5305C4BC7F894312E +:107B200007F5CC73A3F2051300221A7007F5CC7386 +:107B3000A3F5837300221A7007F5CC73A3F2071321 +:107B400000221A7007F5CC73A3F5C8731B689B69F4 +:107B5000C7F87C3107F5CC73A3F5C8731B681B7895 +:107B600087F87B3107F5CC73A3F5C8731B681B7AC4 +:107B700087F87A31D7F87C315B6BC7F87431FBF743 +:107B80000EFCC7F870010023C7F890310BE007F135 +:107B9000E002D7F89031134400221A70D7F89031E0 +:107BA0000133C7F89031D7F890317F2BEFD90023FC +:107BB00087F88F3134E097F88F3103F5CC733B446D +:107BC000002203F8BC2C97F88F3103F5CC733B44AB +:107BD000002203F8C02C97F88F3103F5CC733B4497 +:107BE000002203F8C42C97F88F3103F5CC733B4483 +:107BF000002203F8C82C97F88F3103F5CC733B446F +:107C0000002203F8CC2C97F88F3103F5CC733B445A +:107C1000002203F8D02C97F88F31013387F88F3189 +:107C200097F88F31022BC6D997F87A2197F87B11F4 +:107C300007F5CC73A3F5C6731868FCF75EF897F8E0 +:107C40007B2107F5CC73A3F5C67311461868FBF7C3 +:107C5000D7F9D7F87431002B1AD097F87B1107F1B8 +:107C6000DC0207F5CC73A3F5C670D7F8B0310293E8 +:107C700007F1E0030193382300930B46D7F8741102 +:107C80000068FEF777FAC7F8940104E00500B20037 +:107C9000AF4BC7F89431D7F89431002B40F09F8355 +:107CA00097F8E030532B40F09A8397F8E130462B59 +:107CB00040F0958397F8E230442B40F0908397F89A +:107CC000E330502B40F08B8397F8E530012B40F0E8 +:107CD000868397F8E43087F86F3107F1930307F153 +:107CE000DC0207F1E0014FF47F40FEF715FB07F5DA +:107CF000CC73A3F205131B78002B00F06C8307F103 +:107D0000920307F1D80207F1E0014FF68470FEF705 +:107D100003FB07F1910307F1D40207F1E0014FF6ED +:107D20008170FEF7F9FA07F1C60307F1D00207F1F7 +:107D3000E0014FF68770FEF7EFFA07F1C50307F190 +:107D4000CC0207F1E0014FF60570FEF7E5FA07F106 +:107D5000C70307F1C80207F1E0014FF60A70FEF70A +:107D6000DBFA07F5CC73A3F207131B78002B0AD1BB +:107D7000D7F87C310022DA64D7F87C3100221A650A +:107D80000023C7F8943107F5CC73A3F205131B78D1 +:107D9000802B06D807F5CC73A3F207131B78802B32 +:107DA00002D96C4BC7F89431D7F89431002B40F0CE +:107DB0001A83D7F87C31DB68002B1ED1D7F87C31D1 +:107DC0001B69002B19D1D7F87C311B69002B14D10A +:107DD000D7F87C315B69002B0FD1D7F87C31DB6998 +:107DE000002B0AD1D7F87C311B6A002B05D1D7F8BC +:107DF0007C319B6A002B00D101BE07F5CC73A3F246 +:107E000005131B781C4697F87B1107F1DC0207F578 +:107E1000CC73A3F5C670D7F8B031029307F1E00335 +:107E2000019300940B46D7F874110068FEF7A2F98D +:107E3000C7F8940107F1940207F1E00311461846D0 +:107E4000FFF7A0F907F1E0031846FEF7CFFA024664 +:107E5000D7F87C315A60D7F87C315A6807F1E003D3 +:107E600011461846FEF78FFA0246D7F87C311A60A1 +:107E7000D7F87C31DB681846FEF75FFFD7F87C3116 +:107E80001B691846FEF76CFFD7F87C3101229A6314 +:107E9000D7F87C319B6A1846FFF76AF807F5CC7370 +:107EA000A3F291131B78012B19D997F86F31002B8E +:107EB0000BD097F81A311B0903F00703DBB2194600 +:107EC000D7F87C01FDF788FE09E007F5CC73A3F530 +:107ED000C9731B781946D7F87C01FDF77DFED7F8EA +:107EE0007C31DB691846FFF753F8D7F87C319B6883 +:107EF000C7F86831FF2387F88E3197F86F31002B70 +:107F00002AD007F1E0031846FEF722FE0246D7F812 +:107F10007C315A62D7F87C315B6AB3F5807F04D933 +:107F2000D7F87C314FF480725A6207F1E0031846AB +:107F3000FEF78EFE0246D7F87C315A6407F1E00363 +:107F40001846FEF7CBFE0246D7F87C319A641EE055 +:107F50000500B2008100B200D7F87C314FF4807286 +:107F60005A62D7F87C314FF47A425A64D7F87C31A0 +:107F7000954A9A6407F5CC73A3F5C9731B78002B57 +:107F800005D107F5CC73A3F2911300221A7007F5FF +:107F9000CC73A3F5C8731B685B6807F5CC72A2F2BB +:107FA0009112127897F87A1107F1E000019397F88F +:107FB0006F310093D7F86831FEF716FC034687F857 +:107FC0008E310123C7F88831D7F87C311B68042B28 +:107FD00040F0738197F88E31FF2B12D097F81F1164 +:107FE00097F87B2107F5CC73A3F5C670D7F8B031AD +:107FF00000931346D7F87C210068FFF76BF8C7F8A9 +:1080000094010023C7F884310DE007F5CC73A3F584 +:10801000C472D7F88431134400221A70D7F884311F +:108020000133C7F88431D7F884317F2BEDD9D7F8E5 +:108030009431002B1CD107F5CC73A3F583731B7807 +:108040001C4697F87B1107F1D80207F5CC73A3F50E +:10805000C670D7F8B031029307F110030193009472 +:108060000B46D7F874110068FEF784F8C7F894013E +:10807000D7F87C319B6E002B00F0A980D7F87C31BB +:10808000DB6E002B00F0A380D7F89431002B7AD15F +:1080900007F5CC73A3F291131B78032B73D197F8D8 +:1080A0006F31062B6FD9FF2387F8833197F8C730DC +:1080B000002B36D097F8C530002B32D0D7F87C3162 +:1080C0005B6E002B2DD007F5CC73A3F5C8731B682E +:1080D0005B6803F04003002B23D197F8C73097F873 +:1080E000C52097F8C61007F1C80697F87B5107F529 +:1080F000CC70A0F5C670D7F8B0410594049107F193 +:10810000D0010391029207F1CC0201920093334611 +:108110002A46D7F87C110068FFF78CFA034687F8E7 +:10812000833197F88331092B24D007F11003012103 +:108130001846FDF7EFFCC7F8640197F8C63097F8CA +:108140007B4107F1E00107F5CC72A2F5C670D7F8C4 +:10815000B0210392029307F1D0030193D7F8643161 +:1081600000932346D7F87C210068FFF7D5F9034632 +:1081700087F8833197F88331FF2B27D097F8833125 +:1081800087F88E3122E0D7F87C31DB6E4FF0FF327A +:108190001A60D7F87C319B6E4FF0FF321A60D7F827 +:1081A0007C314FF0FF325A67D7F87C3100221A67D2 +:1081B000D7F87C31DB6E00229A77D7F87C319B6E42 +:1081C00000229A7703E000BFA086010000BFD7F825 +:1081D0009431002B40F0828097F88E1107F1100344 +:1081E000D7F868211846FEF759FCD7F87C311A6A8F +:1081F00097F88E1107F110031846FEF74DFE07F1B0 +:10820000940207F110031946D7F87C01FEF7D0FE5F +:10821000C7F8880197F88E31092B5FD1D7F87C31E8 +:108220005A69D7F87C315B6912681A62D7F87C31D9 +:108230005B6903221A71D7F87C315B69012283F8EC +:108240002420D7F87C315B6902229A77D7F87C31F9 +:108250005B6903225A71D7F87C315B6901225A7736 +:10826000D7F87C311A6AD7F87C311B6A12681A6217 +:10827000D7F87C311B6A03221A71D7F87C311B6A4C +:10828000012283F82420D7F87C311B6A02229A77D6 +:10829000D7F87C311B6A03225A71D7F87C311B6AEC +:1082A00001225A77D7F87C311B6A03221A75D7F856 +:1082B0007C311B6A01225A7510E0D7F87C311B6AA9 +:1082C0001846FEF75DFD07F1940207F1E003194639 +:1082D000D7F87C01FEF76CFEC7F88801D7F8883123 +:1082E000002B25D0D7F88831013B03F5CC733B44F4 +:1082F00013F8B83C1A46012303FA02F2D7F87C318E +:108300009A6197F86F31002B0DD007F1940207F1B5 +:10831000E0031946D7F88801FEF72EFC0246D7F88D +:108320007C311A6404E0D7F87C314FF47A721A6415 +:10833000D7F87C311B6D002B55D007F5CC73A3F219 +:1083400007131B781C4697F87B1107F1D40207F539 +:10835000CC73A3F5C670D7F8B031029307F1E003F0 +:10836000019300940B46D7F874110068FDF702FFE3 +:10837000C7F89401D7F89431002B34D107F5CC73AA +:10838000A3F207131B781A4607F1E00107F5CC7337 +:10839000A3F5C67007F194030293D7F8B0310193A7 +:1083A00097F87B310093D7F87C310068FEF724FF03 +:1083B000C7F89401D7F89431634A934213D1D7F8A0 +:1083C0007C310022DA64D7F87C3100221A65002360 +:1083D000C7F8943107E05D4BC7F8943103E05B4B7D +:1083E000C7F8943100E000BFD7F89431002B40F07B +:1083F0009F8007F5CC73A3F5C8731B685B6803F017 +:108400000203002B00F0948007F5CC73A3F5C6732C +:108410001B681B6803F00103012B00F0898007F53E +:10842000CC73A3F5C8731B68DB6807F5CC72A2F5A3 +:10843000C87212681269B3FBF2F101FB02F29B1AD7 +:10844000002B00D001BE07F5CC73A3F5C8731B68E1 +:108450001B69B3F5803F0FD307F5CC73A3F5C87341 +:108460001B681A6907F5CC73A3F5C8731B681B69F1 +:10847000013B1340002B00D001BE97F87B2107F58C +:10848000CC73A3F5C67311461868FDF769FBC7F8EE +:108490006001D7F86031002B14D007F5CC73A3F539 +:1084A000C8731968D7F86001FDF72CFC07F5CC7389 +:1084B000A3F5C8731B689B699B685A7DD7F8B031D8 +:1084C00083F82C2007F5CC73A3F5C8731B685B6891 +:1084D00003F0010207F5CC73A3F5C8731B685B6852 +:1084E000DB081B0103F010031A4307F5CC73A3F557 +:1084F000C8731B681B7A1B0203F440731A4307F509 +:10850000CC73A3F5C8731B685B685B09DB039BB284 +:108510001A4307F5CC73A3F5C8731B681B7F1B03B5 +:1085200003F4E043134343F00042D7F860311A608C +:10853000D7F87001FAF737FFD7F89431184607F5E6 +:10854000CE77BD46F0BD00BF0600B2000500B20008 +:1085500080B590B002AFF860B96011461A460B467C +:10856000FB711346BB71BB68002B00D101BE07F144 +:10857000140324220021184600F068FCFB793B75A7 +:108580003B6C5B6BBB61BB793B77BB68FB6207F104 +:1085900014013B6C009300230322F868FFF78AFA6A +:1085A000034618463837BD4680BD000080B485B00C +:1085B00000AF78600B46FB70FB78013B072B27D898 +:1085C00001A252F823F000BFD5760014DF76001424 +:1085D000FD760014E9760014FD760014FD76001493 +:1085E000FD760014F37600147B6803F50063FB60EE +:1085F00011E07B6803F50863FB600CE07B6803F522 +:108600001063FB6007E07B6803F51863FB6002E022 +:108610000023FB6000BFFB6818461437BD465DF8B9 +:10862000047B704780B586B000AFF860B9607A60AF +:10863000BB681B6A7B61BB681B781946F868FFF74B +:10864000B5FF3861FB689B6803F44013B3F5001F66 +:1086500005D13B699B6A43F080723B699A62FB6873 +:108660001B6803F00103012B3BD07B685B6B03F0BD +:108670000203002B35D07B691B7843F0804343F421 +:10868000E0233A6913643B694FF4E0225A643B6982 +:1086900000229A643B694FF4E0221A657B695B789B +:1086A00043F0804343F4E0233A6913663B694FF497 +:1086B000E0225A663B6900229A663B694FF4E02249 +:1086C0001A67BB68DB6823F0FF023B699A607B692D +:1086D0005B685B4223F0FF023B69DA603B6907227B +:1086E0001A62FB689B6803F44013B3F5001F09D1BD +:1086F0007B6999787B699B68013B1A46386900F071 +:1087000027F807E07B6999787B699B681A46386986 +:1087100000F01EF87B699A687B681A637B68012207 +:1087200083F82C20BB685B685B09DB039AB2BB68EB +:108730001B7F1B0303F4E043134343F0004343F068 +:1087400001033A691360002318461837BD4680BDFF +:1087500080B485B000AFF8600B467A60FB727B682E +:10876000013B03F01F0343F08042FB68DA647B683F +:1087700003F01F0343F0004343F48813FA68936542 +:10878000FB7A002B03D1FB680022DA660AE07B68E3 +:10879000013B03F01F0343F0804343F40033FA68C6 +:1087A000D36600BF1437BD465DF8047B704780B4C4 +:1087B00083B000AF78607B681B6823F000427B6861 +:1087C0001A6000BF0C37BD465DF8047B704700009F +:1087D00080B485B000AF78607B68013B072B1FD861 +:1087E00001A252F823F000BFF5780014FB780014C2 +:1087F0000D790014017900140D7900140D7900141D +:108800000D790014077900140023FB730BE001239A +:10881000FB7308E00223FB7305E00323FB7302E014 +:10882000FF23FB7300BFFB7B18461437BD465DF882 +:10883000047B704780B483B000AF786039607B6898 +:108840005A693B681340002B14BF01230023DBB29D +:1088500018460C37BD465DF8047B704780B483B082 +:1088600000AF786039607B685A693B681A437B685F +:108870005A6100BF0C37BD465DF8047B704780B479 +:1088800085B000AF78607B689B695B685A687B68DD +:108890001B689B0013441B68BB60BB689B69002B73 +:1088A0001ED07B689B695B685A687B681B689B006D +:1088B00013441B689B699B685B7D012B10D17B680F +:1088C0009B695B685A687B681B689B0013441B6844 +:1088D0009B691B6A5B7D012B02D10123FB7301E0C5 +:1088E0000023FB73FB7B18461437BD465DF8047B01 +:1088F0007047000080B584B000AF78600B46FB7015 +:108900000023BB600023FB607B685B681846FFF7B1 +:108910004EFF7B6858687B681B69DAB2FB781946A2 +:10892000FBF768FDB860BB68002B01D0074BFB600C +:108930007B685A687B689B69083319461046FBF7C9 +:108940009EFAFB6818461037BD4680BD05008A06B2 +:1089500080B586B000AF786000233B6100237B6167 +:108960007B689B695B685A687B681B689B00134443 +:108970001B68FB60FB689B69002B50D07B689B6980 +:108980005B685A687B681B689B0013441B689B6983 +:10899000DB6E002B43D07B689B695B685A687B6801 +:1089A0001B689B0013441B689B699B681B7D032B02 +:1089B0000DD07B689B695B685A687B681B689B006D +:1089C00013441B689B691B6A1B7D032B27D17868A6 +:1089D000FFF755FF0346FB727B6858687B689B690D +:1089E0005B685A687B681B689B00134419687B6846 +:1089F0009B690833FA7AFCF71BFE38613B69002B50 +:108A00000BD1FB7A012B01D1022300E00023194690 +:108A10007868FFF76FFF786101E0034B7B617B694A +:108A200018461837BD4680BD04008A0680B586B05A +:108A300000AF786000237B617B689B695B685A6844 +:108A40007B681B689B0013441B683B617B689B69C8 +:108A50005B685A687B681B689B0013441B685B68F3 +:108A600003F00403002B0DD07B685B689B6803F464 +:108A70004013B3F5001F35D100217868FFF73AFFA6 +:108A800078612FE03B699B69002B2BD07B689B6949 +:108A90005B685A687B681B689B0013441B689B6972 +:108AA0009B681B7D032B0DD07B689B695B685A68B4 +:108AB0007B681B689B0013441B689B691B6A1B7DBA +:108AC000032B0FD17868FFF7DAFE0346FB73FB7BBD +:108AD000012B01D1022300E0002319467868FFF73B +:108AE00009FF78617B6918461837BD4680BD0000D4 +:108AF00080B58EB000AFF8607A603B600B46FB72C9 +:108B000000237B63FB68002B00D101BE7B68002B38 +:108B100000D101BE3B68002B00D101BE3B6C002B95 +:108B200000D101BE7B6C002B00D101BEBB6C002BC1 +:108B300000D101BE3B6CBA6C5A60FA7AFB681A61CC +:108B4000FB687A685A60FB683A689A60FB683A6C1E +:108B50009A61FB687A6CDA61FB681B691846FFF75B +:108B600037FE034687F8233000233B631BE0BB6CD2 +:108B70005A683B6B9B0013441B681B78FA7A9A4235 +:108B800002D1FB683A6B1A60FB68DB68BA6C51680B +:108B90003A6B92000A44126812781A43FB68DA6052 +:108BA0003B6B01333B63BB6C1B683A6B9A42DED371 +:108BB000BB6C5A68FB681B689B0013441B68FB6115 +:108BC0000023FB6215E0FB685868BB6C5A68FB6ABF +:108BD0009B0013441B681978BB6C5A68FB6A9B00A6 +:108BE00013441B681B7A1A46FBF787F8FB6A0133AC +:108BF000FB62BB6C1B68FA6A9A42E4D3FB689B6811 +:108C00001B68184600F02AF90346554AA2FB0323C5 +:108C10009B0CBB61BB695B08BB610023BB6214E0BA +:108C2000BB6C5A68BB6A9B0013441B685B6803F00B +:108C30000403002B06D0BB694A4A934202D94A4B2F +:108C40007B6307E0BB6A0133BB62BB6C1B68BA6A1B +:108C50009A42E5D37B6B002B6ED1F868FFF7E6FEF6 +:108C600078637B6B002B67D100237B6200237B63DF +:108C7000FB685B683A6CB96C1846FBF775FD786267 +:108C80007B6A002B07D197F823307A6C1946386C31 +:108C9000FBF7A2FD78627B6A002B48D1FB699B69D8 +:108CA000002B44D0BB6C5A68FB681B689B001344C4 +:108CB0001B689B699B681B7D022B0BD0BB6C5A68A1 +:108CC000FB681B689B0013441B689B691B6A1B7D28 +:108CD000022B2CD10023FB75FB685868BB6C5A68CB +:108CE000FB681B689B0013441968FB689B69083389 +:108CF00007F11702FCF7ACFE78627B6A002B16D1F5 +:108D0000FB7D83F00103DBB2002B10D0FB685868B9 +:108D1000BB6C5A68FB681B689B0013441968FB68AE +:108D20009B69083341F28832FCF7CBFE78627B6A9C +:108D3000002B01D07B6A7B637B6B002B03D1F8682F +:108D4000FFF706FE78637B6B002B03D10121F868E7 +:108D5000FFF784FD7B6B18463837BD4680BD00BFEA +:108D600083DE1B4380F0FA0201008A0680B582B0E0 +:108D700000AF78600B46FB707B68002B00D101BE12 +:108D800001217868FFF756FD034683F00103DBB24B +:108D9000002B00D001BEFB78002B06D07B685B68FF +:108DA00001211846FAF786FF05E07B685B68002121 +:108DB0001846FAF77FFF002318460837BD4680BDE6 +:108DC00080B582B000AF78600B46FB707B68002BEB +:108DD00000D101BE01217868FFF72CFD034683F026 +:108DE0000103DBB2002B00D001BEFB78002B12D0B8 +:108DF0007B6858687B689B695B685A687B681B68FE +:108E00009B00134419687B689B6908331A46FCF77A +:108E10001FFA034612E07B6858687B689B695B68B1 +:108E20005A687B681B689B00134419687B689B69C0 +:108E300008331A46FCF750FA034600BF18460837B5 +:108E4000BD4680BD5FF800F06D5B10185FF800F064 +:108E500099B610185FF800F0B9AA10185FF800F082 +:108E600049AA10180769280010002000C10C5356A9 +:108E7000C6033080668DDCB8C20B727806E295DAE4 +:0C8E800000835DDF58A1B82231D7F63323 :00000001FF